diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..e564f9c --- /dev/null +++ b/.gitattributes @@ -0,0 +1,12 @@ +# dmm map merger hook +# needs additional setup, see tools/mapmerge/install.txt +*.dmm merge=merge-dmm + +# dmi icon merger hook +# needs additional setup, see tools/dmitool/merging.txt +*.dmi merge=merge-dmi + +# force changelog merging to use union +html/changelog.html merge=union + + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a044f7f --- /dev/null +++ b/.gitignore @@ -0,0 +1,186 @@ +###Files and folders specified here will never be tracked. + +#Ignore everything in datafolder and subdirectories +/data/**/* + +#Ignore byond config folder. +/cfg/**/* + +#Ignore compiled files and other files generated during compilation. +*.mdme +*.dmb +*.rsc +*.lk +*.int +*.backup +*.int +### https://raw.github.com/github/gitignore/cc542de017c606138a87ee4880e5f06b3a306def/Global/Linux.gitignore + +*~ + +# temporary files which can be created if a process still has a handle open of a deleted file +.fuse_hidden* + +# KDE directory preferences +.directory + +# Linux trash folder which might appear on any partition or disk +.Trash-* + + +### https://raw.github.com/github/gitignore/cc542de017c606138a87ee4880e5f06b3a306def/Global/Vim.gitignore + +# swap +[._]*.s[a-w][a-z] +[._]s[a-w][a-z] +# session +Session.vim +# temporary +.netrwhist +*~ +# auto-generated tag files +tags + + +### https://raw.github.com/github/gitignore/cc542de017c606138a87ee4880e5f06b3a306def/Python.gitignore + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +#*.so + +# Distribution / packaging +.Python +env/ +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +*.egg-info/ +.installed.cfg +*.egg + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*,cover +.hypothesis/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py + +# Flask instance folder +instance/ + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# IPython Notebook +.ipynb_checkpoints + +# pyenv +.python-version + +# celery beat schedule file +celerybeat-schedule + +# dotenv +.env + +# virtualenv +venv/ +ENV/ + +# Spyder project settings +.spyderproject + +# Rope project settings +.ropeproject + + +### https://raw.github.com/github/gitignore/cc542de017c606138a87ee4880e5f06b3a306def/Global/Windows.gitignore + +# Windows image file caches +Thumbs.db +ehthumbs.db + +# Folder config file +Desktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files +#*.cab +#*.msi +#*.msm +#*.msp + +# Windows shortcuts +*.lnk + + +### https://raw.github.com/github/gitignore/cc542de017c606138a87ee4880e5f06b3a306def/Global/OSX.gitignore + +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +*.before diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..e708a53 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,48 @@ +language: generic +sudo: false + +env: + global: + - BYOND_MAJOR="510" + - BYOND_MINOR="1346" + - NODE_VERSION="4" + - BUILD_TOOLS=false + - DM_MAPFILE="" + matrix: + - BUILD_TOOLS=true + - DM_MAPFILE="tgstation2" + - DM_MAPFILE="metastation" + - DM_MAPFILE="ministation" + - DM_MAPFILE="dreamstation" + - DM_MAPFILE="birdstation" + - DM_MAPFILE="efficiencystation" + - DM_MAPFILE="pubbystation" + - DM_MAPFILE="templates" + + +cache: + directories: + - tgui/node_modules + - $HOME/BYOND-${BYOND_MAJOR}.${BYOND_MINOR} + + +addons: + apt: + packages: + - libc6-i386 + - libgcc1:i386 + - libstdc++6:i386 + - python + - python-pip + +install: + - tools/travis/install_build_tools.sh + +before_script: + - tools/travis/before_build_tools.sh + - tools/travis/before_build_byond.sh + +script: + - tools/travis/check_filedirs.sh tgstation.dme + - tools/travis/build_tools.sh + - tools/travis/build_byond.sh diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..368181e --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,290 @@ +#CONTRIBUTING + +##Reporting Issues + +See [this page](http://tgstation13.org/wiki/Reporting_Issues) for a guide and format to issue reports. + +##Introduction + +Hello and welcome to /tg/station's contributing page. You are here because you are curious or interested in contributing. Thanks for being interested. Everyone is free to contribute to this project as long as they follow the simple guidelines and specifications below, because at /tg/station, we have a goal to increase code maintainability and to do that we are going to need all pull requests to hold up to those specifications. This is in order for all of us to benefit, instead of having to fix the same bug more than once because of duplicated code. + +But first we want to make it clear how you can contribute, if contributing is a new experience for you, and what powers the team has over your pull request so you do not get any surprises when submitting pull requests, and it is closed for a reason you did not anticipate. + +##Getting Started +At /tg/station we do not have a list of goals and features to add, we instead allow freedom for contributors to suggest and create their ideas for the game. That does not mean we aren't determined to squash bugs, which unfortunately pop up a lot due to the deep complexity of the game. Here are some useful getting started guides, if you want to contribute or if you want to know what challenges you can tackle with zero knowledge about the game's code structure. + +If you want to contribute the first thing you'll need to do is [set up Git](http://tgstation13.org/wiki/Setting_up_git) so you can download the source code. + +We have a [list of guides on the wiki](http://www.tgstation13.org/wiki/index.php/Guides#Development_and_Contribution_Guides) which will help you get started contributing to /tg/station with git and Dream Maker. For beginners, it is recommended you work on small projects, at first. If you need help learning to program in BYOND check out this [repository of resources](http://www.byond.com/developer/articles/resources). + +There is an open list of approachable issues for [your inspiration here](https://github.com/tgstation/-tg-station/issues?q=is%3Aopen+is%3Aissue+label%3A%22Easy+Task%22). + +You can of course, as always, ask for help at [#coderbus](irc://irc.rizon.net/coderbus) on irc.rizon.net. We are just here to have fun and help so do not expect professional support please. + +##Meet the Team + +**Project Leads** + +Project Leads, which are elected by the maintainers and members of the project, have complete control over what goes through and what is reverted. They are encouraged to take control in what features are added to the game. Project Leads can also act as Project Managers when needed. + +**Project Managers** + +Project Managers are responsible for recruiting and firing maintainers, enforcing coding standards, and reverting changes that should have not been committed. Project Managers are assigned by Project Leads. On things that Project Managers disagree on they are to refer to the Project Leads for advice. It is encouraged that if you do not want to waste time working on a feature, that might be denied, that you ask a Project Manager first. + +**Maintainers** + +Maintainers are quality control. If a proposed pull request does not meet the mentioned quality specifications then it can be closed if you fail to satisfy them. Maintainers are required to give a reason for closing the pull request. + +Maintainers can revert your changes if they feel they are not worth maintaining or if they did not live up to the quality specifications. + +##Specification + +As mentioned before, you are expected to follow these specifications in order to make everyone's lives easier, it will also save you and us time, with having to make the changes and us having to tell you what to change. Thank you for reading this section. + +###Object Oriented code +As BYOND's Dream Maker is an object oriented language, code must be object oriented when possible in order to be more flexible when adding content to it. If you are unfamiliar with this concept, it is highly recommended you look it up. + +###All Byond paths must contain the full path. +(ie: absolute pathing) + +Byond will allow you nest almost any type keyword into a block, such as: + +```c++ +datum + datum1 + var + varname1 = 1 + varname2 + static + varname3 + varname4 + proc + proc1() + code + proc2() + code + + datum2 + varname1 = 0 + proc + proc3() + code + proc2() + ..() + code +``` + +The use of this is not allowed in this project as it makes finding definitions via full text searching next to impossible. The only exception is the variables of an object may be nested to the object, but must not nest further. + +The previous code made compliant: + +```c++ +/datum/datum1 + var/varname1 + var/varname2 + var/static/varname3 + var/static/varname4 + +/datum/datum1/proc/proc1() + code +/datum/datum1/proc/proc2() + code +/datum/datum1/datum2 + varname1 = 0 +/datum/datum1/datum2/proc/proc3() + code +/datum/datum1/datum2/proc2() + ..() + code +``` + +###No overriding type safety checks. +The use of the : operator to override type safety checks is not allowed. You must cast the variable to the proper type. + +###Type paths must began with a / +eg: `/datum/thing` not `datum/thing` + +###Datum type paths must began with "datum" +In byond this is optional, but omitting it makes finding definitions harder. + +###Do not use text/string based type paths +It is rarely allowed to put type paths in a text format, as there are no compile errors if the type path no longer exists. Here is an example: + +```C++ +//Good +var/path_type = /obj/item/weapon/baseball_bat + +//Bad +var/path_type = "/obj/item/weapon/baseball_bat" +``` + +###Tabs not spaces +You must use tabs to indent your code, NOT SPACES. + +(You may use spaces to align something, but you should tab to the block level first, then add the remaining spaces) + +###No Hacky code +Hacky code, such as adding specific checks, is highly discouraged and only allowed when there is ***no*** other option. (Protip: 'I couldn't immediately think of a proper way so thus there must be no other option' is not gonna cut it here ) + +You can avoid hacky code by using object oriented methodologies, such as overriding a function (called procs in DM) or sectioning code into functions and then overriding them as required. + +###No duplicated code. +Copying code from one place to another maybe suitable for small short time projects but /tg/station focuses on the long term and thus discourages this. + +Instead you can use object orientation, or simply placing repeated code in a function, to obey this specification easily. + +###Startup/Runtime tradeoffs with lists and the "hidden" init proc +First, read the comments in this byond thread, starting here:http://www.byond.com/forum/?post=2086980&page=2#comment19776775 + +There are two key points here: + +1) Defining a list in the type definition incurs a hidden proc call - init, if you must define a list at startup, do so in New() and avoid the overhead of a second call (init() and then new()) + +2)Offsets list creation overhead to the point where the list is actually required (which for many objects, may be never at all). + +Remember, this tradeoff makes sense in many cases but not all, you should think carefully about your implementation before deciding if this is an appropriate thing to do + +###No magic numbers or strings +Make these #defines with a name that more clearly states what it's for. + +###Control statements: +(if,while,for,etc) + +* All control statements must not contain code on the same line as the statement (`if (blah) return`) +* All control statements comparing a variable to a number should use the formula of `thing` `operator` `number`, not the reverse (eg: `if (count <= 10)` not `if (10 >= count)`) + +###Use early return. +Do not enclose a proc in an if block when returning on a condition is more feasible +This is bad: +```` +/datum/datum1/proc/proc1() + if (thing1) + if (!thing2) + if (thing3 == 30) + do stuff +```` +This is good: +```` +/datum/datum1/proc/proc1() + if (!thing1) + return + if (thing2) + return + if (thing3 != 30) + return + do stuff +```` +This prevents nesting levels from getting deeper then they need to be. + +###Develop Secure Code + +* Player input must always be escaped safely, we recommend you use stripped_input in all cases where you would use input. Essentially, just always treat input from players as inherently malicious and design with that use case in mind + +* Calls to the database must be escaped properly - use sanitizeSQL to escape text based database entries from players or admins, and isnum() for number based database entries from players or admins. + +* All calls to topics must be checked for correctness, topic href calls can be easily faked by clients, so you should ensure that the call is valid for the state the item is in. Do not rely on the UI code to provide only valid topic calls + +* Information that players could use to metagame (that is to identify the round type and or the antags via information that would not be available to them in character) should be kept as administrator only + +* It is recommended as well you do not expose information about the players - even something as simple as the number of people who have readied up at the start of the round can and has been used to try to identify the round type + +* Where you have code that can cause large scale modification and *FUN* make sure you start it out locked behind one of the default admin roles - use common sense to determine which role fits the level of damage a function could do + +###Other Notes +* Code should be modular where possible, if you are working on a new class then it is best if you put it in a new file. + +* Bloated code may be necessary to add a certain feature, which means there has to be a judgement over whether the feature is worth having or not. You can help make this decision easier by making sure your code is modular. + +* You are expected to help maintain the code that you add, meaning if there is a problem then you are likely to be approached in order to fix any issues, runtimes or bugs. + +* Do not divide when you can easily convert it to a multiplication. (ie `4/2` should be done as `4*0.5`) + +####Enforced not enforced +The following different coding styles are not only not enforced, but it is generally frowned upon to change them over from one to the other for little reason: + +* English/British spelling on var/proc names + * Color/Colour nobody cares, +* Spaces after control statements + * if() if () nobody cares. + +####Operators and spaces: +(this is not strictly enforced, but more a guideline for readability's sake) + +* Operators that should be separated by spaces + * Boolean and logic operators like &&, || <, >, ==, etc (but not !) + * Argument separator operators like , (and ; when used in a forloop) + * Assignment operators like = or += or the like +* Operators that should not be separated by spaces + * Bitwise operators like & or | + * Access operators like . and : + * Parentheses () + * logical not ! + +Math operators like +, -, /, *, etc are up in the air, just choose which version looks more readable. + +###Dream Maker Quirks/Tricks: +Like all languages, Dream Maker has its quirks, some of them are beneficial to us, like these + +* In-To for loops: ```for(var/i = 1, i <= some_value, i++)``` is a fairly standard way to write an incremental for loop in most languages (especially those in the C family) however DM's ```for(var/i in 1 to some_value)``` syntax is oddly faster than its implementation of the former syntax; where possible it's advised to use DM's syntax. (Note, the ```to``` keyword is inclusive, so it automatically defaults to replacing ```<=```, if you want ```<``` then you should write it as ```1 to some_value-1```). +HOWEVER, if either ```some_value``` or ```i``` changes within the body of the for (underneath the ```for(...)``` header) or if you are looping over a list AND changing the length of the list then you can NOT use this type of for loop! + + +* Istypeless for loops: a name for a differing syntax for writing for-each style loops in DM, however it is NOT DM's standard syntax hence why this is considered a quirk. Take a look at this: +``` +var/list/bag_of_items = list(sword, apple, coinpouch, sword, sword) +var/obj/item/sword/best_sword = null +for(var/obj/item/sword/S in bag_of_items) + if(!best_sword || S.damage > best_sword.damage) + best_sword = S +``` +The above is a simple proc for checking all swords in a container and returning the one with the highest damage, it uses DM's standard syntax for a for loop, it does this by specifying a type in the variable of the for header which byond interprets as a type to filter by, it performs this filter using ```istype()``` (or some internal-magic similar to ```istype()```, I wouldn't put it past byond), the above example is fine with the data currently contained in ```bag_of_items```, however if ```bag_of_items``` contained ONLY swords, or only SUBTYPES of swords, then the above is inefficient, for example: +``` +var/list/bag_of_swords = list(sword, sword, sword, sword) +var/obj/item/sword/best_sword = null +for(var/obj/item/sword/S in bag_of_swords) + if(!best_sword || S.damage > best_sword.damage) + best_sword = S +``` +specifies a type for DM to filter by, with the previous example that's perfectly fine, we only want swords, but here the bag only contains swords? is DM still going to try to filter because we gave it a type to filter by? YES, and here comes the inefficiency. Whereever a list (or other container, such as an atom (in which case you're technically accessing their special contents list but I digress)) contains datums of the same datatype or subtypes of the datatype you require for your for body +you can circumvent DM's filtering and automatic ```istype()``` checks by writing the loop as such: +``` +var/list/bag_of_swords = list(sword, sword, sword, sword) +var/obj/item/sword/best_sword = null +for(var/s in bag_of_swords) + var/obj/item/sword/S = s + if(!best_sword || S.damage > best_sword.damage) + best_sword = S +``` +Of course, if the list contains data of a mixed type then the above optimisation is DANGEROUS, as it will blindly typecast all data in the list as the specified type, even if it isn't really that type! which will cause runtime errors. + +* Dot variable: like other languages in the C family, Dream maker has a ```.``` or "Dot" operator, used for accessing variables/members/functions of an object instance. +eg: +``` +var/mob/living/carbon/human/H = YOU_THE_READER +H.gib() +``` +however DM also has a dot variable, accessed just as ```.``` on it's own, defaulting to a value of null, now what's special about the dot operator is that it is automatically returned (as in the ```return``` statment) at the end of a proc, provided the proc does not already manually return (```return count``` for example). Why is this special? well the ```return``` statement should ideally be free from overhead (functionally free, of course nothing's free) but DM fails to fulfill this, DM's return statement is actually fairly costly for what it does and for what it's used for. +With ```.``` being everpresent in every proc can we use it as a temporary variable? Of course we can! However the ```.``` operator cannot replace a typecasted variable, it can hold data any other var in DM can, it just can't be accessed as one, however the ```.``` operator is compatible with a few operators that look weird but work perfectly fine, such as: ```.++``` for incrementing ```.'s``` value, or ```.[1]``` for accessing the first element of ```.``` (provided it's a list). + +##Pull Request Process + +There is no strict process when it comes to merging pull requests, pull requests will sometimes take a while before they are looked at by a maintainer, the bigger the change the more time it will take before they are accepted into the code. Every team member is a volunteer who is giving up their own time to help maintain and contribute, so please be nice. Here are some helpful ways to make it easier for you and for the maintainer when making a pull request. + +* Make sure your pull request complies to the requirements outlined in [this guide](http://tgstation13.org/wiki/Getting_Your_Pull_Accepted) + +* You are going to be expected to document all your changes in the pull request, failing to do so will mean delaying it as we will have to question why you made the change. On the other hand you can speed up the process by making the pull request readable and easy to understand, with diagrams or before/after data. + +* We ask that you use the changelog system to document your change, this prevents our players from being caught unaware by changes - you can find more information about this here http://tgstation13.org/wiki/Guide_to_Changelogs + +* If you are proposing multiple changes, which change many different aspects of the code, you are expected to section them off into different pull requests in order to make it easier to review them and to deny/accept the changes that are deemed acceptable. + +* If your pull request is accepted, the code you add no longer belongs exclusively to you but to everyone; everyone is free to work on it, but you are also free to object to any changes being made, which will be noted by a Project Lead or Project Manager. It is a shame this has to be explicitly said, but there have been cases where this would've saved some trouble. + +## Banned content +Do not add any of the following in a Pull Request or risk getting the PR closed: + - National Socialist Party of Germany content, National Socialist Party of Germany related content, or National Socialist Party of Germany references + +##A word on git +Yes we know that the files have a tonne of mixed windows and linux line endings, attempts to fix this have been met with less than stellar success and as such we have decided to give up caring until such a time as it matters. + +Therefore EOF settings of main repo are forbidden territory one must avoid wandering into diff --git a/ISSUE_TEMPLATE.md b/ISSUE_TEMPLATE.md new file mode 100644 index 0000000..f5cf538 --- /dev/null +++ b/ISSUE_TEMPLATE.md @@ -0,0 +1,3 @@ +[Note]: # (State what the issue is from a "whats wrong" prospective. Issue reports should clearly allow maintainers to understand whats wrong and how to test/reproduce if that is not obvious. Avoid ambiguity. Start your issue report below both of these lines (or remove them)) + +[Admins]: # (If you are reporting a bug that occured AFTER you used varedit/admin buttons to alter an object out of normal operating conditions, please verify that you can re-create the bug without the varedit usage/admin buttons before reporting the issue.) diff --git a/LICENSE-AGPLv3.txt b/LICENSE-AGPLv3.txt new file mode 100644 index 0000000..dba13ed --- /dev/null +++ b/LICENSE-AGPLv3.txt @@ -0,0 +1,661 @@ + GNU AFFERO GENERAL PUBLIC LICENSE + Version 3, 19 November 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU Affero General Public License is a free, copyleft license for +software and other kinds of works, specifically designed to ensure +cooperation with the community in the case of network server software. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +our General Public Licenses are intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + Developers that use our General Public Licenses protect your rights +with two steps: (1) assert copyright on the software, and (2) offer +you this License which gives you legal permission to copy, distribute +and/or modify the software. + + A secondary benefit of defending all users' freedom is that +improvements made in alternate versions of the program, if they +receive widespread use, become available for other developers to +incorporate. Many developers of free software are heartened and +encouraged by the resulting cooperation. However, in the case of +software used on network servers, this result may fail to come about. +The GNU General Public License permits making a modified version and +letting the public access it on a server without ever releasing its +source code to the public. + + The GNU Affero General Public License is designed specifically to +ensure that, in such cases, the modified source code becomes available +to the community. It requires the operator of a network server to +provide the source code of the modified version running there to the +users of that server. Therefore, public use of a modified version, on +a publicly accessible server, gives the public access to the source +code of the modified version. + + An older license, called the Affero General Public License and +published by Affero, was designed to accomplish similar goals. This is +a different license, not a version of the Affero GPL, but Affero has +released a new version of the Affero GPL which permits relicensing under +this license. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU Affero General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Remote Network Interaction; Use with the GNU General Public License. + + Notwithstanding any other provision of this License, if you modify the +Program, your modified version must prominently offer all users +interacting with it remotely through a computer network (if your version +supports such interaction) an opportunity to receive the Corresponding +Source of your version by providing access to the Corresponding Source +from a network server at no charge, through some standard or customary +means of facilitating copying of software. This Corresponding Source +shall include the Corresponding Source for any work covered by version 3 +of the GNU General Public License that is incorporated pursuant to the +following paragraph. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the work with which it is combined will remain governed by version +3 of the GNU General Public License. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU Affero General Public License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU Affero General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU Affero General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU Affero General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If your software can interact with users remotely through a computer +network, you should also make sure that it provides a way for users to +get its source. For example, if your program is a web application, its +interface could display a "Source" link that leads users to an archive +of the code. There are many ways you could offer source, and different +solutions will be better for different programs; see section 13 for the +specific requirements. + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU AGPL, see +. diff --git a/LICENSE-GPLv3.txt b/LICENSE-GPLv3.txt new file mode 100644 index 0000000..20d40b6 --- /dev/null +++ b/LICENSE-GPLv3.txt @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. \ No newline at end of file diff --git a/PULL_REQUEST_TEMPLATE.md b/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..490e045 --- /dev/null +++ b/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,18 @@ +[Changelogs]: # (Please make a changelog if you're adding, removing or changing content that'll affect players. This includes, but is not limited to, new features, sprites, sounds; balance changes; map edits and important fixes) +[]: # (See here for how to easily make a changelog: https://github.com/tgstation/tgstation/wiki/Changelogs. An example changelog has been provided below. Please edit or remove) + + +:cl: optional name here +add: Added new things +add: Added more things +del: Removed old things +tweak: tweaked a few things +fix: fixed a few things +wip: added a few works in progress +soundadd: added a new sound thingy +sounddel: removed an old sound thingy +imageadd: added some icons and images +imagedel: deleted some icons and images +spellcheck: fixed a few typos +experiment: added an experimental thingy +/:cl: diff --git a/README.md b/README.md new file mode 100644 index 0000000..5ba75f9 --- /dev/null +++ b/README.md @@ -0,0 +1,148 @@ +##/tg/station v1.0.1 + +[![Build Status](https://travis-ci.org/tgstation/tgstation.png)](https://travis-ci.org/tgstation/tgstation) + + +**Website:** http://www.tgstation13.org
+**Code:** https://github.com/tgstation/tgstation
+**Wiki** http://tgstation13.org/wiki/Main_Page
+**IRC:** irc://irc.rizon.net/coderbus or if you dont have an IRC client, you can click [here](https://kiwiirc.com/client/irc.rizon.net:6667/?&theme=cli#coderbus).
+ + +##DOWNLOADING + +There are a number of ways to download the source code. Some are described here, an alternative all-inclusive guide is also located at http://www.tgstation13.org/wiki/Downloading_the_source_code + +Option 1: +Follow this: http://www.tgstation13.org/wiki/Setting_up_git + +Option 2: +Install GitHub::windows from http://windows.github.com/ +It handles most of the setup and configuraton of Git for you. +Then you simply search for the tgstation repository and click the big clone +button. + +Option 3: Download the source code as a zip by clicking the ZIP button in the +code tab of https://github.com/tgstation/tgstation +(note: this will use a lot of bandwidth if you wish to update and is a lot of +hassle if you want to make any changes at all, so it's not recommended.) + +##INSTALLATION + +First-time installation should be fairly straightforward. First, you'll need +BYOND installed. You can get it from http://www.byond.com/. Once you've done +that, extract the game files to wherever you want to keep them. This is a +sourcecode-only release, so the next step is to compile the server files. +Open tgstation.dme by double-clicking it, open the Build menu, and click +compile. This'll take a little while, and if everything's done right you'll get +a message like this: + +``` +saving tgstation.dmb (DEBUG mode) +tgstation.dmb - 0 errors, 0 warnings +``` + +If you see any errors or warnings, something has gone wrong - possibly a corrupt +download or the files extracted wrong. If problems persist, ask for assistance +in irc://irc.rizon.net/coderbus + +Once that's done, open up the config folder. You'll want to edit config.txt to +set the probabilities for different gamemodes in Secret and to set your server +location so that all your players don't get disconnected at the end of each +round. It's recommended you don't turn on the gamemodes with probability 0, +except Extended, as they have various issues and aren't currently being tested, +so they may have unknown and bizarre bugs. Extended is essentially no mode, and +isn't in the Secret rotation by default as it's just not very fun. + +You'll also want to edit config/admins.txt to remove the default admins and add +your own. "Game Master" is the highest level of access, and probably the one +you'll want to use for now. You can set up your own ranks and find out more in +config/admin_ranks.txt + +The format is + +``` +byondkey = Rank +``` + +where the admin rank must be properly capitalised. + +Finally, to start the server, run Dream Daemon and enter the path to your +compiled tgstation.dmb file. Make sure to set the port to the one you +specified in the config.txt, and set the Security box to 'Safe'. Then press GO +and the server should start up and be ready to join. It is also recommended that +you set up the SQL backend (see below). + +###HOSTING ON LINUX +If you're not using BYOND version 510, BYGEX will be used for some text replacement related code. Unfortunately, we only have a windows dll included right now. You can find a version known to compile on linux, along with some basic install instructions here: +https://github.com/optimumtact/byond-regex + +##UPDATING + +To update an existing installation, first back up your /config and /data folders +as these store your server configuration, player preferences and banlist. + +Then, extract the new files (preferably into a clean directory, but updating in +place should work fine), copy your /config and /data folders back into the new +install, overwriting when prompted except if we've specified otherwise, and +recompile the game. Once you start the server up again, you should be running +the new version. + +##MAPS + +/tg/station currently comes equipped with seven maps. + +* [tgstation2 (default)](http://tgstation13.org/wiki/Boxstation) +* [MetaStation](https://tgstation13.org/wiki/MetaStation) +* [MiniStation](http://tgstation13.org/wiki/MiniStation) +* [AsteroidStation](https://tgstation13.org/wiki/AsteroidStation) +* [BirdStation](https://tgstation13.org/wiki/BirdStation) +* [DreamStation](https://tgstation13.org/wiki/Dreamstation) +* [EfficiencyStation](https://tgstation13.org/wiki/Efficiency_Station) + +All maps have their own code file that is in the base of the _maps directory. Instead of loading the map directly we instead use a code file to include the map and then include any other code changes that are needed for it; for example MiniStation changes the uplink items for the map. Follow this guideline when adding your own map, to your fork, for easy compatibility. + +If you want to load a different map, just open the corresponding map's code file in Dream Maker, make sure all of the other map code files are unticked in the file tree, in the left side of the screen, and then make sure the map code file you want is ticked. + +If you are hosting a server, and want randomly picked maps to be played each round, you can enable map rotation in [config.txt](config/config.txt) and then set the maps to be picked in the [maps.txt](config/maps.txt) file. + +Anytime you want to make changes to a map it's imperative you use the [Map Merging tools](http://tgstation13.org/wiki/Map_Merger) + +##AWAY MISSIONS + +/tg/station supports loading away missions however they are disabled by default. + +Map files for away missions are located in the _maps/RandomZLevels directory. Each away mission includes it's own code definitions located in /code/modules/awaymissions/mission_code. These files must be included and compiled with the server beforehand otherwise the server will crash upon trying to load away missions that lack their code. + +To enable an away mission open fileList.txt in the _maps/RandomZLevels directory and uncomment one of the .dmm lines by removing the #. If more than one away mission is uncommented then the away mission loader will randomly select one the enabled ones to load. + +##SQL SETUP + +The SQL backend requires a MySQL server. SQL is required for the library, stats tracking, admin notes, and job-only bans, among other features, mostly related to server administration. Your server details go in /config/dbconfig.txt, and the SQL schema is in /SQL/tgstation_schema.sql and /SQL/tgstation_schema_prefix.sql depending on if you want table prefixes. More detailed setup instructions are located here: http://www.tgstation13.org/wiki/Downloading_the_source_code#Setting_up_the_database + +##IRC BOT SETUP + +Included in the repository is a python3 compatible IRC bot capable of relaying adminhelps to a specified +IRC channel/server, see the /bot folder for more + +##CONTRIBUTING + +Please see [CONTRIBUTING.md](CONTRIBUTING.md) + +##LICENSE + +All code after commit 333c566b88108de218d882840e61928a9b759d8f on 2014/31/12 at 4:38 PM PST (https://github.com/tgstation/tgstation/commit/333c566b88108de218d882840e61928a9b759d8f) is licensed under GNU AGPL v3 (http://www.gnu.org/licenses/agpl-3.0.html). + +All code before commit 333c566b88108de218d882840e61928a9b759d8f on 2014/31/12 at 4:38 PM PST (https://github.com/tgstation/tgstation/commit/333c566b88108de218d882840e61928a9b759d8f) is licensed under GNU GPL v3 (https://www.gnu.org/licenses/gpl-3.0.html). +(Including tools unless their readme specifies otherwise.) + +See LICENSE-AGPLv3.txt and LICENSE-GPLv3.txt for more details. + +tgui clientside is licensed as a subproject under the MIT license. +tgui assets are licensed under a Creative Commons Attribution-ShareAlike 4.0 International License +(http://creativecommons.org/licenses/by-sa/4.0/). + +See tgui/LICENSE.md for more details. + +All assets including icons and sound are under a Creative Commons 3.0 BY-SA +license (http://creativecommons.org/licenses/by-sa/3.0/) unless otherwise indicated. diff --git a/SQL/database_changelog.txt b/SQL/database_changelog.txt new file mode 100644 index 0000000..9754c51 --- /dev/null +++ b/SQL/database_changelog.txt @@ -0,0 +1,144 @@ +1 September 2016, by Jordie0608 + +Modified table 'notes', adding column 'secret'. + +ALTER TABLE `feedback`.`notes` ADD COLUMN `secret` TINYINT(1) NOT NULL DEFAULT '1' AFTER `server` + +Remember to add a prefix to the table name if you use them + +---------------------------------------------------- + +19 August 2016, by Shadowlight213 + +Changed appearance bans to be jobbans. + +UPDATE 'feedback'.`ban` SET `job` = "appearance", `bantype` = "JOB_PERMABAN" WHERE `bantype` = "APPEARANCE_PERMABAN" + +Remember to add a prefix to the table name if you use them + +---------------------------------------------------- + +3 July 2016, by Jordie0608 + +Modified table 'poll_question', adding column 'dontshow' which was recently added to the server schema. + +ALTER TABLE `feedback`.`poll_question` ADD COLUMN `dontshow` TINYINT(1) NOT NULL DEFAULT '0' AFTER `for_trialmin` + +Remember to add a prefix to the table name if you use them + +---------------------------------------------------- + +16th April 2016 + +Added ipintel table, only required if ip intel is enabled in the config + +CREATE TABLE `ipintel` ( +`ip` INT UNSIGNED NOT NULL , +`date` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL , +`intel` REAL NOT NULL DEFAULT '0', +PRIMARY KEY ( `ip` ) +) ENGINE = INNODB; + +--------------------------------------------------- + +21 September 2015, by Jordie0608 + +Modified table 'poll_question', adding columns 'createdby_ckey', 'createdby_ip' and 'for_trialmin' to bring it inline with the schema used by the tg servers. + +ALTER TABLE `feedback`.`poll_question` ADD COLUMN `createdby_ckey` VARCHAR(45) NULL DEFAULT NULL AFTER `multiplechoiceoptions`, ADD COLUMN `createdby_ip` VARCHAR(45) NULL DEFAULT NULL AFTER `createdby_ckey`, ADD COLUMN `for_trialmin` VARCHAR(45) NULL DEFAULT NULL AFTER `createdby_ip` + +Remember to add a prefix to the table name if you use them + +---------------------------------------------------- + +27 August 2015, by Jordie0608 + +Modified table 'watch', removing 'id' column, making 'ckey' primary and adding the columns 'timestamp', 'adminckey', 'last_editor' and 'edits'. + +ALTER TABLE `feedback`.`watch` DROP COLUMN `id`, ADD COLUMN `timestamp` datetime NOT NULL AFTER `reason`, ADD COLUMN `adminckey` varchar(32) NOT NULL AFTER `timestamp`, ADD COLUMN `last_editor` varchar(32) NULL AFTER `adminckey`, ADD COLUMN `edits` text NULL AFTER `last_editor`, DROP PRIMARY KEY, ADD PRIMARY KEY (`ckey`) + +Remember to add a prefix to the table name if you use them. + +---------------------------------------------------- + +14 August 2015, by Jordie0608 + +Added new table 'notes' to replace BYOND's .sav note system. + +To create this new table run the following command: + +CREATE TABLE `notes` ( `id` int(11) NOT NULL AUTO_INCREMENT, `ckey` varchar(32) NOT NULL, `notetext` text NOT NULL, `timestamp` datetime NOT NULL, `adminckey` varchar(32) NOT NULL, `last_editor` varchar(32), `edits` text, `server` varchar(50) NOT NULL, PRIMARY KEY (`id`)) + +Remember to add prefix to the table name if you use them. + +---------------------------------------------------- + +28 July 2015, by Jordie0608 + +Modified table 'memo', removing 'id' column and making 'ckey' primary. + +ALTER TABLE `feedback`.`memo` DROP COLUMN `id`, DROP PRIMARY KEY, ADD PRIMARY KEY (`ckey`) + +Remember to add prefix to the table name if you use them. + +---------------------------------------------------- + +19 July 2015, by Jordie0608 + +Added new table 'memo' for use with admin memos. + +To create this new table run the following command: + +CREATE TABLE `memo` (`id` int(11) NOT NULL AUTO_INCREMENT, `ckey` varchar(32) NOT NULL, `memotext` text NOT NULL, `timestamp` datetime NOT NULL, `last_editor` varchar(32), `edits` text, PRIMARY KEY (`id`)) + +Remember to add prefix to the table name if you use them. + +---------------------------------------------------- + +7 July 2015, by MrStonedOne + +Removed the privacy poll and related table. Existing codebases may safely delete the privacy table after updating: + +DROP TABLE `privacy`; + +-------------------------------------------------- + +19 May 2015, by Jordie0608 + +Added new table 'watch' for use in flagging ckeys. It shouldn't ever exist, but also added command to de-erroize this new table just in case someone does make it like that. + +To create this new table run the following command: + +CREATE TABLE `watch` (`id` int(11) NOT NULL AUTO_INCREMENT, `ckey` varchar(32) NOT NULL, `reason` text NOT NULL, PRIMARY KEY (`id`)) + +Remember to add prefix to the table name if you use them. + +---------------------------------------------------- + +19 September 2014, by MrStonedOne + +Removed erro_ from table names. dbconfig.txt has a option allowing you to change the prefix used in code, defaults to "erro_" if left out for legacy reasons. + +If you are creating a new database and want to change the prefix, simply find and replace SS13_ to what ever you want (including nothing) and set the prefix value + +Two schema files are now included, one with prefixes and one without. + +If you have an existing database, and you want to rid your database of erros, you will have to rename all of the tables. A bit sql is included to do just that in errofreedatabase.sql Feel free to find and replace the prefix to what ever you want (or nothing) + +---------------------------------------------------- + +4 November 2013, by Errorage + +The column 'deleted' was added to the erro_library table. If set to anything other than null, the book is interpreted as deleted. + +To update your database, execute the following code in phpmyadmin, mysql workbench or whatever program you use: + +ALTER TABLE erro_library ADD COLUMN deleted TINYINT(1) NULL DEFAULT NULL AFTER datetime; + +If you want to 'soft delete' a book (meaning it remains in the library, but isn't viewable by players), set the value in the 'deleted' column for the row to 1. To undelete, set it back to null. If you're making an admin tool to work with this, execute the following SQL statement to soft-delete the book with id someid: + +UPDATE erro_library SET deleted = 1 WHERE id = someid + +(Replace someid with the id of the book you want to soft delete.) + +---------------------------------------------------- diff --git a/SQL/errofreedatabase.sql b/SQL/errofreedatabase.sql new file mode 100644 index 0000000..7f23fcc --- /dev/null +++ b/SQL/errofreedatabase.sql @@ -0,0 +1,15 @@ +ALTER TABLE erro_admin RENAME TO SS13_admin; +ALTER TABLE erro_admin_log RENAME TO SS13_admin_log; +ALTER TABLE erro_admin_ranks RENAME TO SS13_admin_ranks; +ALTER TABLE erro_ban RENAME TO SS13_ban; +ALTER TABLE erro_connection_log RENAME TO SS13_connection_log; +ALTER TABLE erro_death RENAME TO SS13_death; +ALTER TABLE erro_feedback RENAME TO SS13_feedback; +ALTER TABLE erro_legacy_population RENAME TO SS13_legacy_population; +ALTER TABLE erro_library RENAME TO SS13_library; +ALTER TABLE erro_player RENAME TO SS13_player; +ALTER TABLE erro_poll_option RENAME TO SS13_poll_option; +ALTER TABLE erro_poll_question RENAME TO SS13_poll_question; +ALTER TABLE erro_poll_textreply RENAME TO SS13_poll_textreply; +ALTER TABLE erro_poll_vote RENAME TO SS13_poll_vote; +ALTER TABLE erro_watch RENAME TO SS13_watch; diff --git a/SQL/tgstation_schema.sql b/SQL/tgstation_schema.sql new file mode 100644 index 0000000..60dcde0 --- /dev/null +++ b/SQL/tgstation_schema.sql @@ -0,0 +1,379 @@ +CREATE DATABASE IF NOT EXISTS `feedback` /*!40100 DEFAULT CHARACTER SET latin1 */; +USE `feedback`; + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Table structure for table `admin` +-- + +DROP TABLE IF EXISTS `admin`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `admin` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `ckey` varchar(32) NOT NULL, + `rank` varchar(32) NOT NULL DEFAULT 'Administrator', + `level` int(2) NOT NULL DEFAULT '0', + `flags` int(16) NOT NULL DEFAULT '0', + `email` varchar(45) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `admin_log` +-- + +DROP TABLE IF EXISTS `admin_log`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `admin_log` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `datetime` datetime NOT NULL, + `adminckey` varchar(32) NOT NULL, + `adminip` varchar(18) NOT NULL, + `log` text NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `admin_ranks` +-- + +DROP TABLE IF EXISTS `admin_ranks`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `admin_ranks` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `rank` varchar(40) NOT NULL, + `flags` int(16) NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +insert into admin_ranks (rank, flags) values ('Moderator',2); +insert into admin_ranks (rank, flags) values ('Admin Candidate',2); +insert into admin_ranks (rank, flags) values ('Trial Admin',5638); +insert into admin_ranks (rank, flags) values ('Badmin',5727); +insert into admin_ranks (rank, flags) values ('Game Admin',8063); +insert into admin_ranks (rank, flags) values ('Game Master',65535); +insert into admin_ranks (rank, flags) values ('Host',65535); +insert into admin_ranks (rank, flags) values ('Coder',5168); + +-- +-- Table structure for table `ban` +-- + +DROP TABLE IF EXISTS `ban`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `ban` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `bantime` datetime NOT NULL, + `serverip` varchar(32) NOT NULL, + `bantype` varchar(32) NOT NULL, + `reason` text NOT NULL, + `job` varchar(32) DEFAULT NULL, + `duration` int(11) NOT NULL, + `rounds` int(11) DEFAULT NULL, + `expiration_time` datetime NOT NULL, + `ckey` varchar(32) NOT NULL, + `computerid` varchar(32) NOT NULL, + `ip` varchar(32) NOT NULL, + `a_ckey` varchar(32) NOT NULL, + `a_computerid` varchar(32) NOT NULL, + `a_ip` varchar(32) NOT NULL, + `who` text NOT NULL, + `adminwho` text NOT NULL, + `edits` text, + `unbanned` int(2) DEFAULT NULL, + `unbanned_datetime` datetime DEFAULT NULL, + `unbanned_ckey` varchar(32) DEFAULT NULL, + `unbanned_computerid` varchar(32) DEFAULT NULL, + `unbanned_ip` varchar(32) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `connection_log` +-- + +DROP TABLE IF EXISTS `connection_log`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `connection_log` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `datetime` datetime DEFAULT NULL, + `serverip` varchar(45) DEFAULT NULL, + `ckey` varchar(45) DEFAULT NULL, + `ip` varchar(18) DEFAULT NULL, + `computerid` varchar(45) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `death` +-- + +DROP TABLE IF EXISTS `death`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `death` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `pod` text NOT NULL COMMENT 'Place of death', + `coord` text NOT NULL COMMENT 'X, Y, Z POD', + `tod` datetime NOT NULL COMMENT 'Time of death', + `job` text NOT NULL, + `special` text NOT NULL, + `name` text NOT NULL, + `byondkey` text NOT NULL, + `laname` text NOT NULL COMMENT 'Last attacker name', + `lakey` text NOT NULL COMMENT 'Last attacker key', + `gender` text NOT NULL, + `bruteloss` int(11) NOT NULL, + `brainloss` int(11) NOT NULL, + `fireloss` int(11) NOT NULL, + `oxyloss` int(11) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `feedback` +-- + +DROP TABLE IF EXISTS `feedback`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `feedback` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `time` datetime NOT NULL, + `round_id` int(8) NOT NULL, + `var_name` varchar(32) NOT NULL, + `var_value` int(16) DEFAULT NULL, + `details` text, + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `legacy_population` +-- + +DROP TABLE IF EXISTS `legacy_population`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `legacy_population` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `playercount` int(11) DEFAULT NULL, + `admincount` int(11) DEFAULT NULL, + `time` datetime NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `library` +-- + +DROP TABLE IF EXISTS `library`; +CREATE TABLE `library` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `author` varchar(45) NOT NULL, + `title` varchar(45) NOT NULL, + `content` text NOT NULL, + `category` varchar(45) NOT NULL, + `ckey` varchar(45) DEFAULT 'LEGACY', + `datetime` datetime DEFAULT NULL, + `deleted` tinyint(1) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +-- +-- Create an index to speed up the libary +-- +CREATE INDEX deleted_idx ON `library` (`deleted`); + +-- +-- Table structure for table `player` +-- + +DROP TABLE IF EXISTS `player`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `player` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `ckey` varchar(32) NOT NULL, + `firstseen` datetime NOT NULL, + `lastseen` datetime NOT NULL, + `ip` varchar(18) NOT NULL, + `computerid` varchar(32) NOT NULL, + `lastadminrank` varchar(32) NOT NULL DEFAULT 'Player', + PRIMARY KEY (`id`), + UNIQUE KEY `ckey` (`ckey`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `poll_option` +-- + +DROP TABLE IF EXISTS `poll_option`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `poll_option` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `pollid` int(11) NOT NULL, + `text` varchar(255) NOT NULL, + `percentagecalc` tinyint(1) NOT NULL DEFAULT '1', + `minval` int(3) DEFAULT NULL, + `maxval` int(3) DEFAULT NULL, + `descmin` varchar(32) DEFAULT NULL, + `descmid` varchar(32) DEFAULT NULL, + `descmax` varchar(32) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `poll_question` +-- + +DROP TABLE IF EXISTS `poll_question`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `poll_question` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `polltype` varchar(16) NOT NULL DEFAULT 'OPTION', + `starttime` datetime NOT NULL, + `endtime` datetime NOT NULL, + `question` varchar(255) NOT NULL, + `adminonly` tinyint(1) DEFAULT '0', + `multiplechoiceoptions` int(2) DEFAULT NULL, + `createdby_ckey` varchar(45) NULL DEFAULT NULL, + `createdby_ip` varchar(45) NULL DEFAULT NULL, + `for_trialmin` varchar(45) NULL DEFAULT NULL, + `dontshow` tinyint(1) NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `poll_textreply` +-- + +DROP TABLE IF EXISTS `poll_textreply`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `poll_textreply` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `datetime` datetime NOT NULL, + `pollid` int(11) NOT NULL, + `ckey` varchar(32) NOT NULL, + `ip` varchar(18) NOT NULL, + `replytext` text NOT NULL, + `adminrank` varchar(32) NOT NULL DEFAULT 'Player', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `poll_vote` +-- + +DROP TABLE IF EXISTS `poll_vote`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `poll_vote` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `datetime` datetime NOT NULL, + `pollid` int(11) NOT NULL, + `optionid` int(11) NOT NULL, + `ckey` varchar(255) NOT NULL, + `ip` varchar(16) NOT NULL, + `adminrank` varchar(32) NOT NULL, + `rating` int(2) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `watch` +-- + +DROP TABLE IF EXISTS `watch`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `watch` ( + `ckey` varchar(32) NOT NULL, + `reason` text NOT NULL, + `timestamp` datetime NOT NULL, + `adminckey` varchar(32) NOT NULL, + `last_editor` varchar(32), + `edits` text, + PRIMARY KEY (`ckey`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `memo` +-- + +DROP TABLE IF EXISTS `memo`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `memo` ( + `ckey` varchar(32) NOT NULL, + `memotext` text NOT NULL, + `timestamp` datetime NOT NULL, + `last_editor` varchar(32), + `edits` text, + PRIMARY KEY (`ckey`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `notes` +-- + +DROP TABLE IF EXISTS `notes`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `notes` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `ckey` varchar(32) NOT NULL, + `notetext` text NOT NULL, + `timestamp` datetime NOT NULL, + `adminckey` varchar(32) NOT NULL, + `last_editor` varchar(32), + `edits` text, + `server` varchar(50) NOT NULL, + `secret` tinyint(1) NOT NULL DEFAULT '1', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +DROP TABLE IF EXISTS `ipintel`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `ipintel` ( +`ip` INT UNSIGNED NOT NULL , +`date` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL , +`intel` REAL NOT NULL DEFAULT '0', +PRIMARY KEY ( `ip` ) +) ENGINE = INNODB; +/*!40101 SET character_set_client = @saved_cs_client */; +-- Dump completed on 2013-03-24 18:02:35 diff --git a/SQL/tgstation_schema_prefixed.sql b/SQL/tgstation_schema_prefixed.sql new file mode 100644 index 0000000..f605339 --- /dev/null +++ b/SQL/tgstation_schema_prefixed.sql @@ -0,0 +1,374 @@ +CREATE DATABASE IF NOT EXISTS `feedback` /*!40100 DEFAULT CHARACTER SET latin1 */; +USE `feedback`; + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Table structure for table `SS13_admin` +-- + +DROP TABLE IF EXISTS `SS13_admin`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `SS13_admin` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `ckey` varchar(32) NOT NULL, + `rank` varchar(32) NOT NULL DEFAULT 'Administrator', + `level` int(2) NOT NULL DEFAULT '0', + `flags` int(16) NOT NULL DEFAULT '0', + `email` varchar(45) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `SS13_admin_log` +-- + +DROP TABLE IF EXISTS `SS13_admin_log`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `SS13_admin_log` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `datetime` datetime NOT NULL, + `adminckey` varchar(32) NOT NULL, + `adminip` varchar(18) NOT NULL, + `log` text NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `SS13_admin_ranks` +-- + +DROP TABLE IF EXISTS `SS13_admin_ranks`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `SS13_admin_ranks` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `rank` varchar(40) NOT NULL, + `flags` int(16) NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +insert into SS13_admin_ranks (rank, flags) values ('Moderator',2); +insert into SS13_admin_ranks (rank, flags) values ('Admin Candidate',2); +insert into SS13_admin_ranks (rank, flags) values ('Trial Admin',5638); +insert into SS13_admin_ranks (rank, flags) values ('Badmin',5727); +insert into SS13_admin_ranks (rank, flags) values ('Game Admin',8063); +insert into SS13_admin_ranks (rank, flags) values ('Game Master',65535); +insert into SS13_admin_ranks (rank, flags) values ('Host',65535); +insert into SS13_admin_ranks (rank, flags) values ('Coder',5168); + +-- +-- Table structure for table `SS13_ban` +-- + +DROP TABLE IF EXISTS `SS13_ban`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `SS13_ban` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `bantime` datetime NOT NULL, + `serverip` varchar(32) NOT NULL, + `bantype` varchar(32) NOT NULL, + `reason` text NOT NULL, + `job` varchar(32) DEFAULT NULL, + `duration` int(11) NOT NULL, + `rounds` int(11) DEFAULT NULL, + `expiration_time` datetime NOT NULL, + `ckey` varchar(32) NOT NULL, + `computerid` varchar(32) NOT NULL, + `ip` varchar(32) NOT NULL, + `a_ckey` varchar(32) NOT NULL, + `a_computerid` varchar(32) NOT NULL, + `a_ip` varchar(32) NOT NULL, + `who` text NOT NULL, + `adminwho` text NOT NULL, + `edits` text, + `unbanned` int(2) DEFAULT NULL, + `unbanned_datetime` datetime DEFAULT NULL, + `unbanned_ckey` varchar(32) DEFAULT NULL, + `unbanned_computerid` varchar(32) DEFAULT NULL, + `unbanned_ip` varchar(32) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `SS13_connection_log` +-- + +DROP TABLE IF EXISTS `SS13_connection_log`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `SS13_connection_log` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `datetime` datetime DEFAULT NULL, + `serverip` varchar(45) DEFAULT NULL, + `ckey` varchar(45) DEFAULT NULL, + `ip` varchar(18) DEFAULT NULL, + `computerid` varchar(45) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `SS13_death` +-- + +DROP TABLE IF EXISTS `SS13_death`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `SS13_death` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `pod` text NOT NULL COMMENT 'Place of death', + `coord` text NOT NULL COMMENT 'X, Y, Z POD', + `tod` datetime NOT NULL COMMENT 'Time of death', + `job` text NOT NULL, + `special` text NOT NULL, + `name` text NOT NULL, + `byondkey` text NOT NULL, + `laname` text NOT NULL COMMENT 'Last attacker name', + `lakey` text NOT NULL COMMENT 'Last attacker key', + `gender` text NOT NULL, + `bruteloss` int(11) NOT NULL, + `brainloss` int(11) NOT NULL, + `fireloss` int(11) NOT NULL, + `oxyloss` int(11) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `SS13_feedback` +-- + +DROP TABLE IF EXISTS `SS13_feedback`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `SS13_feedback` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `time` datetime NOT NULL, + `round_id` int(8) NOT NULL, + `var_name` varchar(32) NOT NULL, + `var_value` int(16) DEFAULT NULL, + `details` text, + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `SS13_legacy_population` +-- + +DROP TABLE IF EXISTS `SS13_legacy_population`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `SS13_legacy_population` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `playercount` int(11) DEFAULT NULL, + `admincount` int(11) DEFAULT NULL, + `time` datetime NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `SS13_library` +-- + +DROP TABLE IF EXISTS `SS13_library`; +CREATE TABLE `SS13_library` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `author` varchar(45) NOT NULL, + `title` varchar(45) NOT NULL, + `content` text NOT NULL, + `category` varchar(45) NOT NULL, + `ckey` varchar(45) DEFAULT 'LEGACY', + `datetime` datetime DEFAULT NULL, + `deleted` tinyint(1) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +-- +-- Table structure for table `SS13_player` +-- + +DROP TABLE IF EXISTS `SS13_player`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `SS13_player` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `ckey` varchar(32) NOT NULL, + `firstseen` datetime NOT NULL, + `lastseen` datetime NOT NULL, + `ip` varchar(18) NOT NULL, + `computerid` varchar(32) NOT NULL, + `lastadminrank` varchar(32) NOT NULL DEFAULT 'Player', + PRIMARY KEY (`id`), + UNIQUE KEY `ckey` (`ckey`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `SS13_poll_option` +-- + +DROP TABLE IF EXISTS `SS13_poll_option`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `SS13_poll_option` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `pollid` int(11) NOT NULL, + `text` varchar(255) NOT NULL, + `percentagecalc` tinyint(1) NOT NULL DEFAULT '1', + `minval` int(3) DEFAULT NULL, + `maxval` int(3) DEFAULT NULL, + `descmin` varchar(32) DEFAULT NULL, + `descmid` varchar(32) DEFAULT NULL, + `descmax` varchar(32) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `SS13_poll_question` +-- + +DROP TABLE IF EXISTS `SS13_poll_question`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `SS13_poll_question` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `polltype` varchar(16) NOT NULL DEFAULT 'OPTION', + `starttime` datetime NOT NULL, + `endtime` datetime NOT NULL, + `question` varchar(255) NOT NULL, + `adminonly` tinyint(1) DEFAULT '0', + `multiplechoiceoptions` int(2) DEFAULT NULL, + `createdby_ckey` varchar(45) NULL DEFAULT NULL, + `createdby_ip` varchar(45) NULL DEFAULT NULL, + `for_trialmin` varchar(45) NULL DEFAULT NULL, + `dontshow` tinyint(1) NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `SS13_poll_textreply` +-- + +DROP TABLE IF EXISTS `SS13_poll_textreply`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `SS13_poll_textreply` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `datetime` datetime NOT NULL, + `pollid` int(11) NOT NULL, + `ckey` varchar(32) NOT NULL, + `ip` varchar(18) NOT NULL, + `replytext` text NOT NULL, + `adminrank` varchar(32) NOT NULL DEFAULT 'Player', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `SS13_poll_vote` +-- + +DROP TABLE IF EXISTS `SS13_poll_vote`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `SS13_poll_vote` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `datetime` datetime NOT NULL, + `pollid` int(11) NOT NULL, + `optionid` int(11) NOT NULL, + `ckey` varchar(255) NOT NULL, + `ip` varchar(16) NOT NULL, + `adminrank` varchar(32) NOT NULL, + `rating` int(2) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `SS13_watch` +-- + +DROP TABLE IF EXISTS `SS13_watch`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `SS13_watch` ( + `ckey` varchar(32) NOT NULL, + `reason` text NOT NULL, + `timestamp` datetime NOT NULL, + `adminckey` varchar(32) NOT NULL, + `last_editor` varchar(32), + `edits` text, + PRIMARY KEY (`ckey`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `SS13_memo` +-- + +DROP TABLE IF EXISTS `SS13_memo`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `SS13_memo` ( + `ckey` varchar(32) NOT NULL, + `memotext` text NOT NULL, + `timestamp` datetime NOT NULL, + `last_editor` varchar(32), + `edits` text, + PRIMARY KEY (`ckey`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `SS13_notes` +-- + +DROP TABLE IF EXISTS `SS13_notes`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `SS13_notes` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `ckey` varchar(32) NOT NULL, + `notetext` text NOT NULL, + `timestamp` datetime NOT NULL, + `adminckey` varchar(32) NOT NULL, + `last_editor` varchar(32), + `edits` text, + `server` varchar(50) NOT NULL, + `secret` tinyint(1) NOT NULL DEFAULT '1', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +DROP TABLE IF EXISTS `SS13_ipintel`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `SS13_ipintel` ( +`ip` INT UNSIGNED NOT NULL , +`date` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL , +`intel` REAL NOT NULL DEFAULT '0', +PRIMARY KEY ( `ip` ) +) ENGINE = INNODB; +/*!40101 SET character_set_client = @saved_cs_client */; +-- Dump completed on 2013-03-24 18:02:35 diff --git a/_maps/.gitignore b/_maps/.gitignore new file mode 100644 index 0000000..430f3a0 --- /dev/null +++ b/_maps/.gitignore @@ -0,0 +1,2 @@ +backup/ +templates.dm diff --git a/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm b/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm new file mode 100644 index 0000000..d72da97 --- /dev/null +++ b/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm @@ -0,0 +1,1551 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/template_noop, +/area/template_noop) +"ab" = ( +/turf/closed/wall/r_wall{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"ac" = ( +/turf/closed/wall/r_wall, +/area/ruin/powered) +"ad" = ( +/obj/structure/flora/ausbushes/leafybush, +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) +"ae" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical, +/obj/item/stack/cable_coil, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"af" = ( +/obj/structure/table, +/obj/item/clothing/mask/gas, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"ag" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"ah" = ( +/obj/machinery/power/smes, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"ai" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"aj" = ( +/turf/closed/wall/mineral/sandstone{ + baseturf = /turf/open/floor/plating/beach/sand + }, +/area/ruin/powered) +"ak" = ( +/obj/structure/toilet, +/obj/effect/decal/sandeffect, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"al" = ( +/obj/structure/urinal{ + pixel_y = 32 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"am" = ( +/obj/structure/urinal{ + pixel_y = 32 + }, +/obj/effect/decal/sandeffect, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"an" = ( +/obj/item/device/flashlight/lantern, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"ao" = ( +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/obj/effect/decal/sandeffect, +/obj/structure/mirror{ + pixel_x = 28 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"ap" = ( +/obj/structure/flora/ausbushes/sparsegrass, +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) +"aq" = ( +/obj/structure/flora/ausbushes/sunnybush, +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) +"ar" = ( +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) +"as" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"at" = ( +/obj/item/weapon/tank/internals/oxygen, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"au" = ( +/obj/effect/decal/sandeffect, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"av" = ( +/obj/machinery/door/airlock/hatch, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"aw" = ( +/obj/machinery/door/airlock/sandstone, +/turf/open/floor/wood, +/area/ruin/powered) +"ax" = ( +/obj/structure/extinguisher_cabinet, +/turf/closed/wall/mineral/sandstone{ + baseturf = /turf/open/floor/plating/beach/sand + }, +/area/ruin/powered) +"ay" = ( +/obj/machinery/door/airlock/hatch, +/obj/effect/decal/sandeffect, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"az" = ( +/obj/item/clothing/neck/necklace/dope, +/obj/item/weapon/reagent_containers/spray/spraytan, +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) +"aA" = ( +/obj/effect/decal/sandeffect, +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) +"aB" = ( +/turf/open/floor/plasteel/asteroid/warning{ + baseturf = /turf/open/floor/plating/beach/sand; + dir = 1; + tag = "icon-asteroidwarning (NORTH)" + }, +/area/ruin/powered) +"aC" = ( +/turf/open/floor/wood, +/area/ruin/powered) +"aD" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/drinkingglasses, +/obj/item/weapon/storage/box/drinkingglasses, +/obj/item/weapon/reagent_containers/food/drinks/shaker, +/obj/item/weapon/storage/box/beakers, +/turf/open/floor/wood, +/area/ruin/powered) +"aE" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder, +/turf/open/floor/wood, +/area/ruin/powered) +"aF" = ( +/obj/machinery/vending/boozeomat{ + emagged = 1 + }, +/turf/open/floor/wood, +/area/ruin/powered) +"aG" = ( +/obj/structure/table, +/obj/item/weapon/book/manual/barman_recipes, +/obj/item/weapon/reagent_containers/glass/rag, +/turf/open/floor/wood, +/area/ruin/powered) +"aH" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/donkpockets, +/turf/open/floor/wood, +/area/ruin/powered) +"aI" = ( +/obj/structure/table, +/obj/machinery/microwave, +/turf/open/floor/wood, +/area/ruin/powered) +"aJ" = ( +/obj/structure/closet/crate/bin, +/obj/item/weapon/tank/internals/emergency_oxygen, +/obj/item/trash/candy, +/obj/item/toy/talking/owl, +/turf/open/floor/plasteel/asteroid/warning{ + baseturf = /turf/open/floor/plating/beach/sand; + dir = 1; + tag = "icon-asteroidwarning (NORTH)" + }, +/area/ruin/powered) +"aK" = ( +/turf/open/floor/plasteel/asteroid{ + baseturf = /turf/open/floor/plating/beach/sand + }, +/area/ruin/powered) +"aL" = ( +/obj/effect/mob_spawn/human/bartender/alive{ + name = "beach bum sleeper" + }, +/turf/open/floor/wood, +/area/ruin/powered) +"aM" = ( +/obj/structure/reagent_dispensers/beerkeg, +/turf/open/floor/wood, +/area/ruin/powered) +"aN" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/asteroid{ + baseturf = /turf/open/floor/plating/beach/sand + }, +/area/ruin/powered) +"aO" = ( +/obj/structure/stacklifter, +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) +"aP" = ( +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/ruin/powered) +"aQ" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp, +/turf/open/floor/wood, +/area/ruin/powered) +"aR" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/drinks/bottle/tequila, +/turf/open/floor/wood, +/area/ruin/powered) +"aS" = ( +/obj/machinery/processor, +/turf/open/floor/wood, +/area/ruin/powered) +"aT" = ( +/obj/machinery/vending/cola, +/turf/open/floor/plasteel/asteroid{ + baseturf = /turf/open/floor/plating/beach/sand + }, +/area/ruin/powered) +"aU" = ( +/obj/effect/overlay/palmtree_l, +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) +"aV" = ( +/obj/effect/mob_spawn/human/beach/alive{ + flavour_text = "You're, like, totally a dudebro, bruh. Ch'yea. You came here, like, on spring break, hopin' to pick up some bangin' hot chicks, y'knaw?"; + pocket2 = /obj/item/weapon/reagent_containers/food/snacks/pizzaslice/dank; + uniform = /obj/item/clothing/under/pants/youngfolksjeans + }, +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) +"aW" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/asteroid/warning{ + baseturf = /turf/open/floor/plating/beach/sand; + dir = 1; + tag = "icon-asteroidwarning (NORTH)" + }, +/area/ruin/powered) +"aX" = ( +/obj/structure/closet/secure_closet/freezer/meat, +/turf/open/floor/wood, +/area/ruin/powered) +"aY" = ( +/obj/machinery/vending/snack, +/turf/open/floor/plasteel/asteroid{ + baseturf = /turf/open/floor/plating/beach/sand + }, +/area/ruin/powered) +"aZ" = ( +/obj/effect/overlay/coconut, +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) +"ba" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/pod/dark{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/ruin/powered) +"bb" = ( +/obj/structure/weightlifter, +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) +"bc" = ( +/obj/machinery/door/airlock/sandstone, +/obj/effect/decal/sandeffect, +/turf/open/floor/wood, +/area/ruin/powered) +"bd" = ( +/obj/structure/closet/secure_closet/freezer/kitchen, +/turf/open/floor/wood, +/area/ruin/powered) +"be" = ( +/obj/vehicle/scooter/skateboard{ + dir = 4 + }, +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) +"bf" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/pod/dark{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/ruin/powered) +"bg" = ( +/obj/structure/sign/barsign, +/turf/closed/wall/mineral/sandstone, +/area/ruin/powered) +"bh" = ( +/turf/closed/wall/mineral/sandstone, +/area/ruin/powered) +"bi" = ( +/turf/open/floor/plating/beach/sand{ + density = 1; + opacity = 1 + }, +/area/ruin/powered) +"bj" = ( +/obj/structure/chair/wood/normal{ + icon_state = "wooden_chair"; + dir = 4 + }, +/turf/open/floor/plasteel/asteroid{ + baseturf = /turf/open/floor/plating/beach/sand + }, +/area/ruin/powered) +"bk" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/snacks/pastatomato, +/turf/open/floor/plasteel/asteroid{ + baseturf = /turf/open/floor/plating/beach/sand + }, +/area/ruin/powered) +"bl" = ( +/obj/structure/chair/wood/normal{ + icon_state = "wooden_chair"; + dir = 8 + }, +/turf/open/floor/plasteel/asteroid{ + baseturf = /turf/open/floor/plating/beach/sand + }, +/area/ruin/powered) +"bm" = ( +/mob/living/simple_animal/crab, +/turf/open/floor/plating/beach/sand{ + density = 1; + opacity = 1 + }, +/area/ruin/powered) +"bn" = ( +/obj/structure/closet/athletic_mixed, +/turf/open/floor/pod/dark{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/ruin/powered) +"bo" = ( +/obj/structure/rack, +/obj/item/clothing/shoes/sandal, +/obj/item/clothing/shoes/sandal, +/obj/effect/decal/sandeffect, +/turf/open/floor/pod/dark{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/ruin/powered) +"bp" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"bq" = ( +/obj/structure/closet/athletic_mixed, +/obj/effect/decal/sandeffect, +/turf/open/floor/pod/dark{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/ruin/powered) +"br" = ( +/turf/open/floor/pod/dark{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/ruin/powered) +"bs" = ( +/obj/effect/decal/sandeffect, +/turf/open/floor/pod/dark{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/ruin/powered) +"bt" = ( +/obj/machinery/door/airlock/hatch, +/obj/structure/fans/tiny, +/turf/open/floor/pod/dark{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/ruin/powered) +"bu" = ( +/turf/open/floor/pod/light{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"bv" = ( +/obj/effect/decal/sandeffect, +/turf/open/floor/pod/light{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"bw" = ( +/obj/machinery/door/airlock/sandstone, +/turf/open/floor/pod/dark{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/ruin/powered) +"bx" = ( +/obj/structure/flora/rock, +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) +"by" = ( +/obj/machinery/door/airlock/sandstone, +/obj/effect/decal/sandeffect, +/turf/open/floor/pod/dark{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/ruin/powered) +"bz" = ( +/mob/living/simple_animal/crab, +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) +"bA" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/item/weapon/bikehorn/airhorn, +/obj/structure/table/wood, +/obj/item/weapon/storage/firstaid, +/obj/item/weapon/storage/firstaid/brute, +/turf/open/floor/wood, +/area/ruin/powered) +"bB" = ( +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/structure/chair/stool, +/turf/open/floor/wood, +/area/ruin/powered) +"bC" = ( +/obj/structure/table/wood, +/obj/item/weapon/tank/internals/oxygen, +/obj/item/weapon/pickaxe, +/obj/item/clothing/mask/gas, +/turf/open/floor/pod/dark{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/ruin/powered) +"bD" = ( +/turf/open/floor/pod/dark{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/obj/structure/dresser, +/turf/open/floor/plasteel/sandeffect, +/area/ruin/powered) +"bE" = ( +/obj/item/weapon/reagent_containers/spray/spraytan, +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) +"bF" = ( +/obj/item/toy/beach_ball, +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) +"bG" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, +/obj/item/device/megaphone, +/turf/open/floor/wood, +/area/ruin/powered) +"bH" = ( +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/effect/mob_spawn/human/beach/alive{ + flavour_text = "You're a spunky lifeguard! It's up to you to make sure nobody drowns or gets eaten by sharks and stuff."; + has_id = 1; + id_access = "Medical Doctor"; + id_job = "Lifeguard"; + mob_gender = "female" + }, +/turf/open/floor/wood, +/area/ruin/powered) +"bI" = ( +/obj/structure/dresser, +/turf/open/floor/pod/dark{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/ruin/powered) +"bJ" = ( +/obj/structure/chair, +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) +"bK" = ( +/obj/item/weapon/storage/backpack/dufflebag, +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) +"bL" = ( +/obj/effect/decal/sandeffect{ + density = 1 + }, +/obj/effect/decal/fakelattice, +/turf/open/floor/pod/light{ + baseturf = /turf/open/floor/plating/lava/smooth; + density = 1 + }, +/area/ruin/powered) +"bM" = ( +/turf/open/floor/plasteel/stairs/old, +/area/ruin/powered) +"bN" = ( +/obj/structure/flora/ausbushes/reedbush, +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) +"bO" = ( +/obj/item/device/camera, +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) +"bP" = ( +/obj/item/weapon/reagent_containers/food/drinks/beer, +/turf/open/floor/plating/beach/sand, +/area/ruin/powered) +"bQ" = ( +/obj/structure/flora/ausbushes/reedbush, +/turf/open/floor/plating/beach/coastline_t, +/area/ruin/powered) +"bR" = ( +/turf/open/floor/plating/beach/coastline_t, +/area/ruin/powered) +"bS" = ( +/obj/structure/flora/ausbushes/sparsegrass, +/turf/open/floor/plating/beach/coastline_t, +/area/ruin/powered) +"bT" = ( +/turf/open/floor/plating/beach/coastline_b, +/area/ruin/powered) +"bU" = ( +/turf/open/floor/plating/beach/water, +/area/ruin/powered) +"bV" = ( +/obj/structure/flora/ausbushes/stalkybush, +/turf/open/floor/plating/beach/water, +/area/ruin/powered) + +(1,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +ba +aa +ab +ac +ac +bt +ab +bt +ac +ac +ab +aa +ba +aa +aa +aa +aa +aa +aa +aa +aa +"} +(2,1,1) = {" +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +bn +br +bu +bv +bu +bs +bC +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +"} +(3,1,1) = {" +aa +aa +aa +aa +ab +ab +ab +ap +ar +ar +ar +ab +bo +br +bv +bv +bu +br +bI +ab +ad +bQ +bT +ab +ab +ab +aa +aa +aa +aa +"} +(4,1,1) = {" +aa +aa +aa +ab +ab +ap +ar +ar +ar +ar +ar +ab +bp +bp +bp +bw +bp +bp +bp +ab +ap +bR +bT +bU +bU +ab +ab +aa +aa +aa +"} +(5,1,1) = {" +aa +aa +ab +ab +ad +ar +ar +aO +ar +bb +ar +ar +ar +ar +aA +aA +aA +ar +ar +ar +bN +bR +bT +bU +bU +bU +ab +ab +aa +aa +"} +(6,1,1) = {" +aa +aa +ab +aq +ar +ar +ar +ar +aV +ar +ar +ar +ar +ar +ar +ar +ar +bz +ar +bJ +ar +bS +bT +bU +bU +bU +bU +ab +aa +aa +"} +(7,1,1) = {" +aa +ab +ab +ar +ap +az +ar +aO +ar +bb +ar +ar +ar +aU +aZ +ar +ar +ar +ar +ar +ar +bR +bT +bU +bU +bU +bU +ab +ab +ab +"} +(8,1,1) = {" +aa +ab +ad +ar +ar +ar +ar +ar +ar +ar +ar +ar +ar +ar +ar +ar +ar +ar +ar +bJ +bE +bR +bT +bU +bU +bU +bU +bU +ab +ab +"} +(9,1,1) = {" +aa +ab +ab +ab +ab +aA +aA +aA +aA +aA +aA +aA +aA +aA +ar +ar +ar +ap +ar +ar +bO +bR +bT +bU +bU +bU +bU +bU +ab +ab +"} +(10,1,1) = {" +aa +ac +ae +as +ab +aB +aK +aK +aK +aK +aK +aK +aK +aA +ar +ar +ap +bx +ar +bJ +ar +bR +bT +bU +bU +bV +bU +bU +ab +ab +"} +(11,1,1) = {" +aa +ac +af +as +aj +aj +aj +aj +aB +aK +aK +bj +aK +aA +ar +ar +ar +ar +ar +ar +ar +bR +bT +bU +bU +bU +bU +bU +ab +ab +"} +(12,1,1) = {" +aa +ac +ag +as +aw +aC +aC +aP +aW +aK +aK +bk +aK +aA +ar +ar +ap +ar +ar +bJ +ar +bR +bT +bU +bU +bU +bU +bU +ab +ab +"} +(13,1,1) = {" +aa +ac +ah +as +aj +aD +aC +aQ +aW +aK +aK +bl +aK +aA +ar +bx +ar +ar +ar +bK +ar +bR +bT +bU +bU +bU +bU +bU +ab +ab +"} +(14,1,1) = {" +aa +ac +ai +at +ax +aE +aL +aP +aW +aK +aK +aK +aK +aA +ar +ap +ar +ar +ar +bJ +ar +bR +bT +bU +bU +bU +bU +bU +ab +ab +"} +(15,1,1) = {" +aa +ac +aj +aj +aj +aF +aC +aR +aW +aK +aK +aK +aK +aA +ar +ar +ar +ar +bE +ar +ar +bR +bT +bU +bU +bU +bU +bU +ab +ab +"} +(16,1,1) = {" +aa +ac +ak +au +aj +aG +aC +aj +aj +bc +aj +aB +aK +aA +ar +ar +ar +ar +ar +bJ +ar +bR +bT +bU +bU +bU +bU +bU +ab +ab +"} +(17,1,1) = {" +aa +ac +aj +av +aj +aH +aC +aC +aC +aC +bg +aB +aK +aA +ar +ar +aU +ar +ar +ar +ar +bR +bT +bU +bV +bU +bU +bU +ab +ab +"} +(18,1,1) = {" +aa +ac +al +as +aj +aI +aM +aS +aX +bd +bh +aB +aK +aA +ar +aZ +ar +ar +bF +ar +bz +bR +bT +bU +bU +bU +bU +bU +ab +ab +"} +(19,1,1) = {" +aa +ac +am +as +aj +aj +aj +aj +aj +aj +aj +aB +aK +aA +ar +ar +ar +ar +ar +ar +ar +bR +bT +bU +bU +bU +bU +bU +ab +ab +"} +(20,1,1) = {" +aa +ac +an +au +aj +aJ +aN +aT +aY +aK +aK +aK +aK +aA +ar +ar +ar +bA +bG +bL +ar +bR +bT +bU +bU +bU +bU +bU +ab +ab +"} +(21,1,1) = {" +aa +ac +ao +au +ay +aK +aK +aK +aK +aK +aK +aK +aK +aA +ar +ar +ar +bB +bH +bM +ar +bR +bT +bU +bU +bU +bU +bU +ab +ab +"} +(22,1,1) = {" +aa +ab +ab +ab +ab +aA +aA +aA +aA +aA +aA +aA +aA +aA +ar +ar +ar +ar +ar +ar +bP +bR +bT +bU +bU +bU +bV +bU +ab +ab +"} +(23,1,1) = {" +aa +ab +ap +ar +ar +ar +ar +ar +ar +ar +ar +ar +ar +ar +ar +ar +ar +ar +ar +bJ +ar +bR +bT +bU +bU +bU +bU +bU +ab +ab +"} +(24,1,1) = {" +aa +ab +ab +ar +ap +ar +ar +aU +ar +ar +ar +bz +ar +ar +ar +ar +ar +aZ +ar +ar +ar +bR +bT +bU +bU +bU +bU +ab +ab +ab +"} +(25,1,1) = {" +aa +aa +ab +aq +ar +ar +ar +ar +aZ +ar +ar +ar +ar +ar +ar +ar +ar +ar +ar +ar +ar +bS +bT +bU +bU +bU +bU +ab +aa +aa +"} +(26,1,1) = {" +aa +aa +ab +ab +ap +ar +ar +aq +ar +be +ar +ar +ar +ar +aA +aA +aA +ar +ar +aU +ar +bR +bT +bU +bU +bU +ab +ab +aa +aa +"} +(27,1,1) = {" +aa +aa +aa +ab +ab +ad +ar +ar +ar +ar +ar +ab +bp +bp +bp +by +bp +bp +bp +ab +ap +bR +bT +bU +bU +ab +ab +aa +aa +aa +"} +(28,1,1) = {" +aa +aa +aa +aa +ab +ab +ab +ap +ar +ap +ar +ab +bq +br +bu +bv +bv +bs +bI +ab +bN +bR +bT +ab +ab +ab +aa +aa +aa +aa +"} +(29,1,1) = {" +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +bo +bs +bu +bu +bv +br +bC +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +"} +(30,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +bf +aa +ab +ab +ab +bt +ab +bt +ab +ab +ab +aa +bf +aa +aa +aa +aa +aa +aa +aa +aa +"} diff --git a/_maps/RandomRuins/LavaRuins/lavaland_biodome_clown_planet.dmm b/_maps/RandomRuins/LavaRuins/lavaland_biodome_clown_planet.dmm new file mode 100644 index 0000000..c4e4aed --- /dev/null +++ b/_maps/RandomRuins/LavaRuins/lavaland_biodome_clown_planet.dmm @@ -0,0 +1,2003 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/template_noop, +/area/template_noop) +"ab" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/powered) +"ac" = ( +/turf/open/floor/noslip{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"ad" = ( +/mob/living/simple_animal/hostile/retaliate/clown, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/powered) +"ae" = ( +/obj/machinery/light, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/powered) +"af" = ( +/obj/item/clothing/head/cone, +/turf/open/floor/noslip{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"ag" = ( +/obj/item/weapon/paper/crumpled/bloody{ + info = "Abandon hope, all ye who enter here." + }, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/noslip{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"ah" = ( +/turf/closed/wall/r_wall{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"ai" = ( +/obj/machinery/disposal/deliveryChute{ + desc = "The following is engraved upon the chute: A FATE WORSE THAN DEATH LIES WITHIN"; + dir = 1; + name = "THE TRIAL OF HONKITUDE" + }, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/noslip{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"aj" = ( +/obj/structure/disposalpipe/trunk, +/obj/structure/disposaloutlet{ + dir = 1 + }, +/turf/open/floor/noslip{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"ak" = ( +/turf/open/floor/plating/lava/smooth, +/area/ruin/powered) +"al" = ( +/obj/structure/disposalpipe/segment{ + invisibility = 101 + }, +/turf/closed/wall/r_wall{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"am" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c"; + invisibility = 101 + }, +/turf/closed/wall/r_wall{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"an" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c"; + invisibility = 101 + }, +/turf/closed/wall/r_wall{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"ao" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c"; + invisibility = 101 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"ap" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c"; + invisibility = 101 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"aq" = ( +/obj/structure/disposalpipe/trunk, +/obj/structure/disposaloutlet{ + dir = 1 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"ar" = ( +/obj/structure/disposalpipe/segment{ + invisibility = 101 + }, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"as" = ( +/obj/effect/mob_spawn/human/corpse/damaged, +/obj/effect/decal/cleanable/blood/old, +/obj/structure/disposalpipe/segment{ + invisibility = 101 + }, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"at" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c"; + invisibility = 101 + }, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"au" = ( +/obj/structure/disposalpipe/segment{ + invisibility = 101 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"av" = ( +/obj/structure/disposalpipe/sortjunction{ + dir = 1; + icon_state = "pipe-j2s"; + invisibility = 101; + sortType = 3 + }, +/turf/closed/wall/r_wall{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"aw" = ( +/obj/structure/window/reinforced, +/obj/structure/disposalpipe/segment{ + invisibility = 101 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"ax" = ( +/obj/effect/decal/cleanable/pie_smudge, +/obj/structure/disposalpipe/segment{ + invisibility = 101 + }, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"ay" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c"; + invisibility = 101 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"az" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"aA" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"aB" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c"; + invisibility = 101 + }, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"aC" = ( +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"aD" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"aE" = ( +/obj/effect/decal/cleanable/cobweb{ + icon_state = "cobweb2" + }, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"aF" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/obj/effect/decal/cleanable/cobweb, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"aG" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c"; + invisibility = 101 + }, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"aH" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c"; + invisibility = 101 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"aI" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c"; + invisibility = 101 + }, +/obj/item/weapon/bikehorn, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"aJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c"; + invisibility = 101 + }, +/turf/closed/wall/r_wall{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"aK" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/obj/effect/decal/cleanable/pie_smudge, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"aL" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/turf/closed/wall/r_wall{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"aM" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c"; + invisibility = 101 + }, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"aN" = ( +/obj/structure/disposalpipe/segment{ + invisibility = 101 + }, +/turf/open/floor/plating, +/area/ruin/powered) +"aO" = ( +/obj/item/weapon/bikehorn, +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"aP" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"aQ" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"aR" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c"; + invisibility = 101 + }, +/turf/open/floor/plating, +/area/ruin/powered) +"aS" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c"; + invisibility = 101 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"aT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + invisibility = 101 + }, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"aU" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"aV" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c"; + invisibility = 101 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"aW" = ( +/obj/item/weapon/bikehorn, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + invisibility = 101 + }, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"aX" = ( +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/structure/disposaloutlet{ + dir = 8 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"aY" = ( +/obj/item/weapon/bikehorn, +/obj/structure/disposalpipe/segment{ + invisibility = 101 + }, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"aZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/turf/open/indestructible{ + icon_state = "darkredfull" + }, +/area/ruin/powered) +"ba" = ( +/obj/effect/decal/cleanable/pie_smudge, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"bb" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/turf/open/indestructible{ + icon_state = "white" + }, +/area/ruin/powered) +"bc" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c"; + invisibility = 101 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"bd" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/obj/structure/table, +/obj/item/weapon/paper/crumpled/bloody{ + info = "If you dare not continue down this path of madness, escape can be found through the chute in this room. " + }, +/obj/item/weapon/pen/fourcolor, +/turf/open/indestructible{ + icon_state = "white" + }, +/area/ruin/powered) +"be" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/obj/structure/table, +/obj/item/device/flashlight/lamp/bananalamp, +/turf/open/indestructible{ + icon_state = "white" + }, +/area/ruin/powered) +"bf" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c"; + invisibility = 101 + }, +/obj/effect/decal/cleanable/pie_smudge, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"bg" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/obj/item/weapon/pickaxe, +/turf/open/indestructible{ + icon_state = "white" + }, +/area/ruin/powered) +"bh" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c"; + invisibility = 101 + }, +/turf/open/indestructible{ + icon_state = "white" + }, +/area/ruin/powered) +"bi" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c"; + invisibility = 101 + }, +/turf/open/indestructible{ + icon_state = "white" + }, +/area/ruin/powered) +"bj" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/turf/open/indestructible{ + icon_state = "light_on" + }, +/area/ruin/powered) +"bk" = ( +/obj/structure/disposalpipe/segment{ + invisibility = 101 + }, +/turf/open/indestructible{ + icon_state = "white" + }, +/area/ruin/powered) +"bl" = ( +/turf/open/indestructible{ + icon_state = "light_on" + }, +/area/ruin/powered) +"bm" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c"; + invisibility = 101 + }, +/turf/open/indestructible{ + icon_state = "white" + }, +/area/ruin/powered) +"bn" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c"; + invisibility = 101 + }, +/turf/open/indestructible{ + icon_state = "white" + }, +/area/ruin/powered) +"bo" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/powered) +"bp" = ( +/turf/closed/mineral/clown, +/area/ruin/powered) +"bq" = ( +/obj/item/weapon/pickaxe, +/turf/open/indestructible{ + icon_state = "white" + }, +/area/ruin/powered) +"br" = ( +/turf/open/indestructible{ + icon_state = "white" + }, +/area/ruin/powered) +"bs" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c"; + invisibility = 101 + }, +/turf/open/indestructible{ + icon_state = "darkredfull" + }, +/area/ruin/powered) +"bt" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c"; + invisibility = 101 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"bu" = ( +/obj/item/weapon/bikehorn, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c"; + invisibility = 101 + }, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"bv" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/powered) +"bw" = ( +/turf/open/chasm/straight_down/lava_land_surface, +/area/ruin/powered) +"bx" = ( +/obj/effect/decal/cleanable/cobweb, +/turf/open/indestructible{ + icon_state = "darkredfull"; + wet = 5 + }, +/area/ruin/powered) +"by" = ( +/obj/structure/disposalpipe/segment, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"bz" = ( +/obj/machinery/disposal/deliveryChute{ + dir = 1 + }, +/obj/structure/disposalpipe/trunk, +/turf/open/indestructible{ + icon_state = "white" + }, +/area/ruin/powered) +"bA" = ( +/turf/open/indestructible{ + icon_state = "darkredfull"; + wet = 5 + }, +/area/ruin/powered) +"bB" = ( +/turf/open/indestructible/sound{ + icon_state = "bananium"; + name = "bananium floor"; + sound = 'sound/effects/clownstep1.ogg'; + wet = 5 + }, +/area/ruin/powered) +"bC" = ( +/obj/structure/disposalpipe/junction{ + dir = 1; + icon_state = "pipe-y"; + invisibility = 101 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"bD" = ( +/obj/structure/mecha_wreckage/honker, +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"bE" = ( +/obj/effect/decal/cleanable/oil, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c"; + invisibility = 101 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"bF" = ( +/obj/effect/decal/cleanable/cobweb{ + icon_state = "cobweb2" + }, +/turf/open/indestructible/sound{ + icon_state = "bananium"; + name = "bananium floor"; + sound = 'sound/effects/clownstep1.ogg'; + wet = 5 + }, +/area/ruin/powered) +"bG" = ( +/obj/item/weapon/grown/bananapeel{ + color = "#2F3000"; + name = "stealth banana peel" + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/powered) +"bH" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible/sound{ + icon_state = "bananium"; + name = "bananium floor"; + sound = 'sound/effects/clownstep1.ogg'; + wet = 5 + }, +/area/ruin/powered) +"bI" = ( +/obj/effect/mob_spawn/human/corpse/damaged, +/obj/effect/decal/cleanable/blood/old, +/turf/open/indestructible{ + icon_state = "darkyellowfull"; + wet = 5 + }, +/area/ruin/powered) +"bJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/turf/open/indestructible{ + icon_state = "darkredfull"; + wet = 5 + }, +/area/ruin/powered) +"bK" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c"; + invisibility = 101 + }, +/turf/open/indestructible{ + icon_state = "darkredfull"; + wet = 5 + }, +/area/ruin/powered) +"bL" = ( +/obj/item/weapon/reagent_containers/food/drinks/trophy/gold_cup, +/obj/structure/table/glass, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"bM" = ( +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"bN" = ( +/obj/machinery/disposal/deliveryChute, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"bO" = ( +/obj/effect/decal/cleanable/cobweb, +/turf/open/indestructible/sound{ + icon_state = "bananium"; + name = "bananium floor"; + sound = 'sound/effects/clownstep1.ogg'; + wet = 5 + }, +/area/ruin/powered) +"bP" = ( +/obj/structure/statue/bananium/clown, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"bQ" = ( +/obj/structure/table/glass, +/obj/item/weapon/grown/bananapeel/bluespace, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"bR" = ( +/obj/structure/table/glass, +/obj/item/clothing/shoes/clown_shoes/banana_shoes, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"bS" = ( +/obj/item/weapon/coin/clown, +/obj/item/weapon/coin/clown, +/obj/item/weapon/coin/clown, +/obj/item/weapon/coin/clown, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"bT" = ( +/obj/item/slime_extract/rainbow, +/obj/structure/table/glass, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"bU" = ( +/obj/item/weapon/bikehorn/airhorn, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"bV" = ( +/obj/structure/table/glass, +/obj/item/weapon/gun/magic/staff/honk, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"bW" = ( +/obj/item/weapon/bikehorn, +/turf/open/indestructible/sound{ + icon_state = "bananium"; + name = "bananium floor"; + sound = 'sound/effects/clownstep1.ogg'; + wet = 5 + }, +/area/ruin/powered) +"bX" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/ruin/powered) +"bY" = ( +/obj/effect/mob_spawn/human/corpse/damaged, +/obj/effect/decal/cleanable/blood/old, +/turf/open/indestructible/sound{ + icon_state = "bananium"; + name = "bananium floor"; + sound = 'sound/effects/clownstep1.ogg'; + wet = 5 + }, +/area/ruin/powered) +"bZ" = ( +/obj/machinery/door/airlock/clown, +/turf/open/indestructible/sound{ + icon_state = "bananium"; + name = "bananium floor"; + sound = 'sound/effects/clownstep1.ogg'; + wet = 5 + }, +/area/ruin/powered) +"ca" = ( +/obj/item/weapon/bikehorn, +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible/sound{ + icon_state = "bananium"; + name = "bananium floor"; + sound = 'sound/effects/clownstep1.ogg'; + wet = 5 + }, +/area/ruin/powered) +"cb" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/powered) + +(1,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(2,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ah +ah +ah +ah +ah +ah +ah +bo +ab +bw +ab +ab +bw +bo +ah +ah +ah +ah +ah +aa +aa +aa +aa +aa +aa +"} +(3,1,1) = {" +aa +aa +aa +aa +aa +ah +ah +ah +ak +ak +ak +ak +ak +ah +ah +bw +bw +bG +bw +bw +ah +ah +ak +ak +ak +ah +ah +ah +aa +aa +aa +aa +"} +(4,1,1) = {" +aa +aa +aa +aa +ah +ah +ak +ak +ak +aR +aJ +ao +aJ +ak +ah +ah +bw +bw +bw +ah +ah +ak +ak +bX +aQ +ak +ak +ah +ah +aa +aa +aa +"} +(5,1,1) = {" +aa +aa +aa +ah +ah +ak +ak +am +aN +aS +aV +aH +bf +aJ +ak +ah +ah +ah +ah +ah +bO +bB +bX +ak +ak +ak +ak +ak +ah +ah +aa +aa +"} +(6,1,1) = {" +aa +aa +aa +ah +ak +ak +ah +aF +at +ar +aW +ar +aG +aL +ak +ah +bB +bH +bB +ah +bB +bH +bY +bB +bX +ak +bX +ak +ak +ah +cb +aa +"} +(7,1,1) = {" +aa +aa +ah +ah +ak +am +ax +aB +az +am +ar +aJ +aL +aL +ah +bx +bA +bB +bH +bH +bB +bH +bB +bB +bB +ah +ak +aQ +ak +ah +ah +aa +"} +(8,1,1) = {" +aa +aa +ah +ak +ak +ap +ar +aG +az +aL +aX +aL +bb +bb +bp +ah +bA +bA +bB +ah +ah +bH +ah +bB +bB +bB +bX +ak +ak +ak +ah +aa +"} +(9,1,1) = {" +aa +aa +ah +ak +am +ar +ar +aH +aA +aA +aL +bb +bb +bb +bq +bp +ah +ah +bA +bB +bB +bH +bB +bB +ca +bH +bB +ah +ak +ak +ah +aa +"} +(10,1,1) = {" +aa +ad +ah +ak +an +as +ar +aG +aL +az +aL +bb +bb +bj +bl +br +bA +bA +bA +bB +ah +bB +bB +bH +bH +bB +bB +ak +bX +ak +ah +ah +"} +(11,1,1) = {" +aa +ae +ah +ak +ao +al +ar +aH +az +az +aL +bb +bg +bj +bl +bp +ah +bA +bA +bB +bB +ah +bB +bB +bB +bB +bH +ak +bX +ak +ak +ah +"} +(12,1,1) = {" +aa +ad +ah +ak +ap +ar +ar +aI +az +an +aB +aL +bb +bb +br +ah +ah +bA +bB +bB +ah +ah +bB +bB +ah +bB +bH +ak +aQ +bX +ak +ah +"} +(13,1,1) = {" +ab +ad +ah +ak +ah +at +ar +aB +aM +ax +ar +aB +aL +aL +bs +al +aJ +ah +ah +ah +bP +bS +ah +bB +bB +bH +ca +bB +ak +bX +ak +ah +"} +(14,1,1) = {" +ab +af +ah +ah +ak +an +ar +ar +ar +ar +aY +ar +aH +aA +aV +ay +az +ah +ah +bL +bM +bM +bM +ah +bB +bH +bH +bB +ak +bX +ak +ah +"} +(15,1,1) = {" +ac +ac +ai +al +al +au +ar +al +ar +aT +al +ax +ar +aH +aD +aA +aM +aG +ah +bM +bQ +bT +bM +ah +ah +bH +bB +bB +ak +bX +ak +ah +"} +(16,1,1) = {" +ac +ag +ac +ah +ak +ao +ar +aJ +at +aG +at +ar +ar +au +bt +aM +aG +aV +al +bN +bM +bU +bM +bZ +bB +bH +bB +ah +ak +bX +ak +ah +"} +(17,1,1) = {" +ac +ac +aj +al +al +av +ay +aA +aA +aL +aA +bc +ar +aG +bu +by +bC +aD +ah +bM +bR +bV +bM +ah +bB +bB +bB +bB +ak +bX +ak +ah +"} +(18,1,1) = {" +ab +ac +ah +ah +ak +ah +az +az +az +aA +aA +aA +aC +aM +aG +ba +aL +bI +ah +bL +bM +bM +bM +ah +bB +bB +bB +bB +ak +bX +ak +ah +"} +(19,1,1) = {" +ab +ad +ah +ak +ak +ah +az +az +aO +aA +aA +aL +ah +ah +aZ +ah +bD +ah +bB +ah +bP +bS +ah +bB +bB +bH +bH +bB +ak +bX +ak +ah +"} +(20,1,1) = {" +aa +ad +ah +ak +ah +ah +aA +aA +aA +az +aA +aL +bh +bk +bn +ah +bE +aJ +bB +bB +ah +ah +bY +bB +bB +bH +bB +ak +bX +aQ +ak +ah +"} +(21,1,1) = {" +aa +ae +ah +ak +ah +ah +aA +aK +aL +az +aL +bd +bb +bl +bl +bp +ah +bJ +bA +bB +bB +ah +bB +bH +bB +bB +bB +ak +bX +ak +ak +ah +"} +(22,1,1) = {" +aa +ad +ah +ak +aq +aw +aB +aL +aP +az +aL +be +bb +bl +bl +bz +al +bK +ah +bB +bB +bH +bH +bH +bB +bW +bB +ah +bX +ak +ah +ah +"} +(23,1,1) = {" +aa +aa +ah +ak +ah +ah +aC +aA +aA +aO +aZ +bb +bi +bm +br +bp +ah +bA +bA +bB +bB +bH +bH +bB +bB +ah +ah +ak +aQ +ak +ah +aa +"} +(24,1,1) = {" +aa +aa +ah +ak +ah +ah +aD +aA +aL +aA +aL +aL +bh +bn +bp +ah +bA +bA +bB +bB +bB +bB +bB +ah +bB +bB +ak +aQ +ak +ak +ah +aa +"} +(25,1,1) = {" +aa +aa +ah +ak +ak +ah +aE +aA +aA +aA +aM +aB +aL +ah +ah +bA +bA +bB +bB +bB +bH +bW +bB +bB +bB +ah +ak +bX +ak +ah +ah +aa +"} +(26,1,1) = {" +aa +aa +ah +ah +ak +ah +ah +aM +aB +aM +ar +ar +aS +ah +ak +ah +bF +bB +bB +ah +bB +bB +ah +bB +bB +ak +aQ +ak +ak +ah +cb +aa +"} +(27,1,1) = {" +aa +aa +aa +ah +ah +ak +ak +ah +aQ +ah +ba +aC +aQ +ah +ak +ah +ah +ah +ah +ah +bB +bB +bB +ak +ak +ak +ak +ak +ah +ah +aa +aa +"} +(28,1,1) = {" +aa +aa +aa +aa +ah +ah +ak +ak +ak +aU +aU +aU +ah +ak +ah +ah +bw +bw +bw +ah +ah +ak +ak +aQ +bX +ak +ak +ah +ah +aa +aa +aa +"} +(29,1,1) = {" +aa +aa +aa +aa +aa +ah +ah +ah +ak +ak +ak +ak +ak +ah +ah +bw +bw +bG +bw +bw +ah +ah +ak +ak +ak +ah +ah +ah +aa +aa +aa +aa +"} +(30,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ah +ah +ah +ah +ah +ah +ah +bv +ab +ab +ab +ab +bw +bv +ah +ah +ah +ah +ah +aa +aa +aa +aa +aa +aa +"} +(31,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +bw +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(32,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm new file mode 100644 index 0000000..b07e0c9 --- /dev/null +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm @@ -0,0 +1,1505 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/template_noop, +/area/template_noop) +"ab" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ac" = ( +/turf/open/floor/grass{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/lavaland/surface/outdoors) +"ad" = ( +/obj/structure/flora/ausbushes/brflowers, +/turf/open/floor/grass{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/lavaland/surface/outdoors) +"ae" = ( +/turf/closed/wall/mineral/titanium/nodiagonal{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"af" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"ag" = ( +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"ah" = ( +/obj/structure/toilet, +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"ai" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel/cmo{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"aj" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp, +/turf/open/floor/plasteel/cmo{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"ak" = ( +/obj/structure/table/wood, +/obj/item/device/taperecorder, +/obj/item/weapon/pen/blue, +/turf/open/floor/plasteel/cmo{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"al" = ( +/obj/structure/table/wood, +/obj/item/toy/carpplushie, +/turf/open/floor/plasteel/cmo{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"am" = ( +/obj/machinery/vending/snack, +/turf/open/floor/plasteel/cmo{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"an" = ( +/obj/machinery/sleeper{ + icon_state = "sleeper-open"; + dir = 4 + }, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"ao" = ( +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"ap" = ( +/obj/structure/table, +/obj/item/weapon/circular_saw, +/obj/item/weapon/scalpel{ + pixel_y = 12 + }, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"aq" = ( +/obj/structure/table, +/obj/item/weapon/cautery{ + pixel_x = 4 + }, +/obj/item/weapon/surgicaldrill, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"ar" = ( +/obj/structure/table, +/obj/item/weapon/surgical_drapes, +/obj/item/weapon/razor, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"as" = ( +/turf/open/floor/plasteel/cmo{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"at" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/turf/open/floor/plasteel/cmo{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"au" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/turf/open/floor/plasteel/cmo{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"av" = ( +/obj/item/weapon/reagent_containers/glass/rag, +/obj/item/weapon/reagent_containers/spray/cleaner, +/turf/open/floor/plasteel/blue/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/ruin/powered) +"aw" = ( +/obj/structure/bed/roller, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"ax" = ( +/obj/structure/closet/crate/trashcart, +/obj/item/weapon/storage/bag/trash, +/obj/item/trash/cheesie, +/obj/item/weapon/reagent_containers/syringe/antiviral, +/obj/item/bodybag, +/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka, +/turf/open/floor/grass{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/lavaland/surface/outdoors) +"ay" = ( +/obj/structure/sink{ + icon_state = "sink"; + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/structure/mirror{ + pixel_x = -28 + }, +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"az" = ( +/obj/structure/noticeboard{ + dir = 1; + pixel_y = -27 + }, +/obj/item/weapon/paper{ + info = "Nothing of interest to report."; + name = "Important Notice - Mrs. Henderson" + }, +/turf/open/floor/plasteel/cmo{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"aA" = ( +/obj/structure/closet/secure_closet/medical2, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"aB" = ( +/obj/machinery/computer/operating, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"aC" = ( +/obj/structure/table/optable, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"aD" = ( +/obj/structure/table, +/obj/item/weapon/retractor, +/obj/item/weapon/hemostat, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"aE" = ( +/turf/closed/wall/shuttle/smooth/nodiagonal{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"aF" = ( +/obj/machinery/door/unpowered/shuttle{ + name = "Restroom" + }, +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"aG" = ( +/obj/structure/extinguisher_cabinet, +/turf/closed/wall/mineral/titanium/nodiagonal{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"aH" = ( +/obj/structure/extinguisher_cabinet, +/turf/closed/wall/shuttle/smooth/nodiagonal{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"aI" = ( +/turf/closed/wall/shuttle/smooth, +/area/ruin/powered) +"aJ" = ( +/turf/open/floor/plasteel/grimy{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/lavaland/surface/outdoors) +"aK" = ( +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"aL" = ( +/turf/open/floor/plasteel/blue/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1 + }, +/area/ruin/powered) +"aM" = ( +/obj/effect/mob_spawn/human/doctor/alive/lavaland, +/turf/open/floor/plasteel/blue/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1 + }, +/area/ruin/powered) +"aN" = ( +/obj/structure/closet/crate/freezer, +/obj/item/weapon/reagent_containers/blood/random, +/obj/item/weapon/reagent_containers/blood/random, +/obj/item/weapon/reagent_containers/blood/random, +/obj/item/weapon/reagent_containers/blood/random, +/turf/open/floor/plasteel/blue/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1 + }, +/area/ruin/powered) +"aO" = ( +/obj/machinery/iv_drip, +/turf/open/floor/plasteel/blue/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1 + }, +/area/ruin/powered) +"aP" = ( +/turf/open/floor/plasteel/blue/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 0 + }, +/area/ruin/powered) +"aQ" = ( +/turf/open/floor/plasteel/blue/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/ruin/powered) +"aR" = ( +/turf/open/floor/plasteel/blue/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 4 + }, +/area/ruin/powered) +"aS" = ( +/turf/open/floor/plasteel/blue/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/ruin/powered) +"aT" = ( +/obj/structure/closet, +/obj/effect/decal/cleanable/cobweb, +/obj/item/ammo_casing/shotgun/dart, +/obj/item/ammo_casing/shotgun/dart, +/obj/item/weapon/gun/projectile/revolver/doublebarrel{ + desc = "For putting critters out to pasture." + }, +/obj/item/ammo_casing/shotgun/buckshot, +/obj/item/weapon/storage/box/bodybags, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"aU" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"aV" = ( +/obj/structure/closet/secure_closet/medical1, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"aW" = ( +/obj/machinery/vending/wallmed{ + pixel_y = 28 + }, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"aX" = ( +/obj/item/stack/cable_coil/random, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"aY" = ( +/obj/structure/bodycontainer/morgue, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"aZ" = ( +/obj/effect/decal/cleanable/ash, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"ba" = ( +/obj/structure/table/glass, +/obj/item/weapon/reagent_containers/glass/beaker, +/obj/item/weapon/storage/backpack/dufflebag/med, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bb" = ( +/obj/structure/table/reinforced, +/obj/item/device/laser_pointer, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bc" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bd" = ( +/obj/structure/table/glass, +/obj/item/weapon/storage/box/gloves, +/obj/item/weapon/storage/box/masks{ + pixel_x = 3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"be" = ( +/obj/effect/decal/cleanable/oil, +/obj/item/weapon/storage/toolbox/mechanical, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bf" = ( +/obj/structure/table, +/obj/item/weapon/storage/fancy/cigarettes/dromedaryco, +/obj/item/weapon/storage/box/matches, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bg" = ( +/mob/living/simple_animal/cockroach, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bh" = ( +/obj/structure/table/glass, +/obj/item/weapon/storage/firstaid/brute, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bi" = ( +/obj/item/toy/cattoy, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bj" = ( +/obj/structure/table/glass, +/obj/item/weapon/lazarus_injector, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bk" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bl" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/snacks/cookie{ + name = "doggie biscuit" + }, +/obj/item/weapon/reagent_containers/food/snacks/cookie{ + name = "doggie biscuit" + }, +/obj/item/weapon/reagent_containers/food/snacks/cookie{ + name = "doggie biscuit" + }, +/obj/item/weapon/reagent_containers/food/snacks/cookie{ + name = "doggie biscuit" + }, +/obj/item/weapon/reagent_containers/food/snacks/cookie{ + name = "doggie biscuit" + }, +/obj/item/weapon/reagent_containers/food/snacks/cookie{ + name = "doggie biscuit" + }, +/turf/open/floor/plasteel/blue/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1 + }, +/area/ruin/powered) +"bm" = ( +/obj/structure/chair/comfy/teal{ + dir = 8 + }, +/turf/open/floor/plasteel/blue/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1 + }, +/area/ruin/powered) +"bn" = ( +/obj/structure/bed/dogbed, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bo" = ( +/obj/item/weapon/reagent_containers/glass/bowl, +/obj/item/weapon/reagent_containers/food/snacks/cheesewedge, +/obj/item/weapon/reagent_containers/food/snacks/cheesewedge, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bp" = ( +/obj/structure/closet/crate/bin, +/obj/item/trash/pistachios, +/obj/item/weapon/lipstick/random, +/obj/item/seeds/apple, +/turf/open/floor/plasteel/blue/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/ruin/powered) +"bq" = ( +/obj/structure/filingcabinet/chestdrawer/wheeled, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"br" = ( +/obj/structure/chair/office/dark, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bs" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/phone, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bt" = ( +/obj/item/weapon/twohanded/required/kirbyplants, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bu" = ( +/obj/structure/chair/comfy/teal{ + dir = 8 + }, +/turf/open/floor/plasteel/blue/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 4 + }, +/area/ruin/powered) +"bv" = ( +/obj/effect/mob_spawn/mouse{ + dir = 4; + flavour_text = "You're a mousey! You're getting pretty old as mice go, and you haven't been feeling well as of late. Your master loves you a lot so he took you to this place so you can get better! You can't wait to see him again!"; + mob_name = "Stallman Jr." + }, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bw" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bx" = ( +/obj/machinery/door/airlock/medical{ + name = "Patient Room"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"by" = ( +/obj/structure/table/reinforced, +/obj/item/device/flashlight/lamp, +/turf/open/floor/plasteel/blue/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/ruin/powered) +"bz" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/glasses/regular, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bA" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen/fourcolor, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bB" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/box/hug, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bC" = ( +/obj/structure/chair/office/light{ + dir = 1 + }, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bD" = ( +/obj/structure/table/glass, +/obj/item/weapon/reagent_containers/glass/bottle/cyanide{ + desc = "A cocktail of chemotherpy drugs intended to treat bladder cancer."; + name = "MVAC regimen" + }, +/obj/item/weapon/reagent_containers/syringe, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bE" = ( +/obj/structure/closet/crate/critter, +/turf/open/floor/plasteel/blue/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/ruin/powered) +"bF" = ( +/turf/open/floor/plasteel/blue/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 10 + }, +/area/ruin/powered) +"bG" = ( +/obj/structure/chair/comfy/teal{ + dir = 8 + }, +/turf/open/floor/plasteel/blue/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 6 + }, +/area/ruin/powered) +"bH" = ( +/obj/structure/table, +/obj/item/weapon/tank/internals/oxygen, +/obj/item/weapon/tank/internals/oxygen, +/turf/open/floor/plasteel/blue/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/ruin/powered) +"bI" = ( +/obj/structure/sign/bluecross_2{ + name = "animal hospital" + }, +/turf/closed/wall/mineral/titanium/nodiagonal{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"bJ" = ( +/obj/machinery/door/airlock/glass_large{ + name = "Ian's Pet Care" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bK" = ( +/obj/item/weapon/reagent_containers/glass/bowl, +/obj/item/weapon/reagent_containers/food/snacks/grown/wheat, +/obj/item/weapon/reagent_containers/food/snacks/grown/wheat, +/obj/item/weapon/reagent_containers/food/snacks/grown/wheat, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bL" = ( +/obj/vehicle/scooter/skateboard{ + dir = 4 + }, +/turf/open/floor/grass{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/lavaland/surface/outdoors) +"bM" = ( +/obj/structure/flora/ausbushes/sunnybush, +/turf/open/floor/grass{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/lavaland/surface/outdoors) +"bN" = ( +/obj/effect/mob_spawn/cow{ + dir = 4; + flavour_text = "You're a cow. You've lived a pampered life as a prized show heifer, a real blue-ribbon winner. After showing signs of a minor respiratory infection, your master took you to the hospital right away. He'd better come back soon. You're getting quite impatient."; + mob_name = "Flossie" + }, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bO" = ( +/obj/structure/flora/ausbushes/ppflowers, +/turf/open/floor/grass{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/lavaland/surface/outdoors) +"bP" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bQ" = ( +/obj/structure/table/glass, +/obj/item/clothing/neck/petcollar, +/obj/item/weapon/pen/blue, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"bR" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/weapon/melee/baton/cattleprod{ + desc = "On-the-fly rabies treatment."; + name = "cattle prod" + }, +/obj/item/weapon/stock_parts/cell/high, +/turf/open/floor/plasteel/blue/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 10 + }, +/area/ruin/powered) +"bS" = ( +/obj/structure/closet, +/obj/item/weapon/defibrillator/loaded, +/obj/item/weapon/storage/belt/medical, +/obj/item/clothing/glasses/hud/health, +/turf/open/floor/plasteel/blue/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 6 + }, +/area/ruin/powered) +"bT" = ( +/obj/item/weapon/pickaxe, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"bU" = ( +/obj/effect/decal/remains/human, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"bV" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"bW" = ( +/turf/open/floor/grass, +/area/lavaland/surface/outdoors) +"bX" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 6 + }, +/turf/open/floor/grass{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/lavaland/surface/outdoors) +"bY" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, +/turf/open/floor/grass{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/lavaland/surface/outdoors) +"bZ" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/turf/open/floor/grass{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/lavaland/surface/outdoors) +"ca" = ( +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 4 + }, +/turf/open/floor/grass{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/lavaland/surface/outdoors) +"cb" = ( +/obj/machinery/atmospherics/components/binary/valve, +/turf/open/floor/grass{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/lavaland/surface/outdoors) +"cc" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/closed/wall/mineral/titanium/nodiagonal{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"cd" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/gloves/color/latex, +/obj/item/clothing/mask/surgical, +/obj/item/clothing/suit/apron/surgical, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"ce" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"cf" = ( +/obj/structure/closet/l3closet, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"cg" = ( +/obj/machinery/door/unpowered/shuttle{ + name = "Break Room" + }, +/turf/open/floor/plasteel/cmo{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"ch" = ( +/obj/machinery/door/unpowered/shuttle{ + name = "Emergency Care" + }, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"ci" = ( +/obj/machinery/door/unpowered/shuttle{ + desc = "There's a note wedged in the seam saying something about directing pizza here."; + name = "Staff Entrance" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"cj" = ( +/obj/machinery/door/unpowered/shuttle{ + name = "Morgue" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"ck" = ( +/obj/machinery/door/unpowered/shuttle{ + name = "Medical Supplies" + }, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"cl" = ( +/obj/machinery/door/unpowered/shuttle{ + name = "Safety Supplies" + }, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"cm" = ( +/obj/machinery/door/unpowered/shuttle{ + name = "Tool Storage" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) + +(1,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +aa +ab +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 +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +aa +aa +"} +(3,1,1) = {" +aa +aa +aa +aa +aa +ab +ab +ab +ab +aJ +ab +ab +ac +ab +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +bU +bV +ab +ab +"} +(4,1,1) = {" +aa +aa +aa +aa +aa +ab +ab +ax +ac +aJ +ac +ae +ae +ae +ae +ae +aa +aa +aa +aa +ab +ab +ab +bT +ab +ab +ab +ab +"} +(5,1,1) = {" +aa +aa +aa +aa +ae +ae +ae +ae +ae +ci +ae +ae +aT +aY +bf +ae +ae +ae +ae +ae +ae +ac +ab +ab +ab +ab +ab +ab +"} +(6,1,1) = {" +aa +aa +aa +ab +ae +ag +ag +ay +ae +aK +aK +cj +aU +aZ +bg +cj +aK +bp +by +bF +ae +ac +ac +ab +ab +ab +ab +ab +"} +(7,1,1) = {" +aa +ab +ab +ab +ae +ah +ag +ag +aF +aK +aK +ae +ae +ae +ae +ae +aL +bq +bz +aP +af +ad +ac +ac +ab +ab +bW +bW +"} +(8,1,1) = {" +aa +ab +ab +ac +ae +ae +ae +ae +aG +aL +aP +ae +aV +ba +bh +aG +aL +br +bA +aP +af +bL +ac +ac +ac +ab +ab +ab +"} +(9,1,1) = {" +ab +ab +ac +ac +ae +ai +as +as +cg +aK +aP +ae +aW +ao +bi +ae +aL +bs +bB +aP +bI +bM +ac +ab +ab +ab +ab +ab +"} +(10,1,1) = {" +ab +ab +ab +ac +af +aj +at +as +ae +aM +aK +ck +ao +bb +ao +ck +aK +aK +aK +aK +bJ +aJ +aJ +aJ +ab +ab +ab +ab +"} +(11,1,1) = {" +ab +ac +ac +ac +af +ak +as +az +ae +aM +aP +ae +ae +ae +ae +ae +bl +bt +aK +aK +aK +aJ +aJ +ab +ab +bW +ab +ab +"} +(12,1,1) = {" +ab +ac +ac +ad +af +al +au +as +ae +aM +aK +cl +ao +bc +ao +cl +aK +aK +aK +aP +ae +bM +ac +ac +ab +ab +ab +ab +"} +(13,1,1) = {" +ab +ab +ac +ac +ae +am +as +as +cg +aK +aP +ae +aW +ao +ao +ae +bm +bu +bu +bG +ae +ac +bO +ac +ab +ab +ab +ab +"} +(14,1,1) = {" +ab +ac +bX +ca +ae +ae +ae +ae +aG +aL +aP +ae +cf +bd +bj +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +aa +aa +"} +(15,1,1) = {" +ab +ab +bY +ca +ae +cd +an +aA +ae +aL +aP +ae +ae +ae +ae +ae +bn +bv +bC +ae +bn +bN +bP +ae +ab +ab +aa +aa +"} +(16,1,1) = {" +aa +ab +bZ +cb +cc +ce +ao +ao +ch +aK +aK +cm +aX +be +bk +ae +bo +bw +bD +ae +bK +ao +bQ +ae +ab +aa +aa +aa +"} +(17,1,1) = {" +aa +ab +ab +ac +ae +ap +ao +aB +ae +aL +aP +ae +ae +ae +ae +ae +af +bx +ae +ae +af +bx +ae +ae +aa +aa +aa +aa +"} +(18,1,1) = {" +aa +aa +ab +ac +ae +aq +ao +aC +ae +aN +aQ +aS +aS +aS +aS +aS +av +aK +bE +bH +aS +aK +bR +ae +aa +aa +aa +aa +"} +(19,1,1) = {" +aa +aa +ab +ab +ae +ar +aw +aD +ae +aO +aR +aR +aR +aR +aR +aR +aR +aR +aR +aR +aR +aR +bS +ae +aa +aa +aa +aa +"} +(20,1,1) = {" +aa +aa +aa +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +aa +aa +aa +aa +"} +(21,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm new file mode 100644 index 0000000..dccf2a0 --- /dev/null +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm @@ -0,0 +1,588 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"b" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"c" = ( +/turf/closed/wall/mineral/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"d" = ( +/obj/effect/light_emitter, +/mob/living/simple_animal/hostile/spawner/ash_walker, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"e" = ( +/obj/effect/decal/cleanable/blood, +/obj/effect/mob_spawn/human/ash_walker, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"f" = ( +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"g" = ( +/obj/effect/mob_spawn/human/ash_walker, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"h" = ( +/obj/effect/decal/cleanable/blood, +/obj/item/device/flashlight/lantern, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"i" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"j" = ( +/obj/item/weapon/pickaxe, +/obj/item/weapon/pickaxe, +/obj/structure/closet/crate/internals, +/obj/item/weapon/pickaxe, +/obj/item/weapon/pickaxe, +/obj/item/weapon/pickaxe, +/obj/item/weapon/storage/box/rxglasses, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"k" = ( +/obj/effect/mob_spawn/human/corpse/damaged, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"l" = ( +/obj/structure/closet/crate/radiation, +/obj/item/device/flashlight/lantern, +/obj/item/device/flashlight/lantern, +/obj/item/device/flashlight/lantern, +/obj/item/device/flashlight/flare, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"m" = ( +/obj/structure/closet/crate/medical, +/obj/item/device/malf_upgrade, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"n" = ( +/obj/structure/closet/crate/hydroponics, +/obj/item/weapon/storage/belt, +/obj/item/weapon/scythe, +/obj/item/seeds/glowshroom, +/obj/item/seeds/glowshroom, +/obj/item/weapon/reagent_containers/glass/bucket, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"o" = ( +/obj/item/device/flashlight/lantern, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"p" = ( +/obj/item/device/flashlight/seclite, +/obj/item/device/flashlight, +/obj/structure/closet/crate, +/obj/item/device/flashlight, +/obj/item/device/flashlight, +/obj/item/device/flashlight, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"q" = ( +/obj/item/device/flashlight/flare, +/obj/item/device/flashlight/seclite, +/obj/item/device/flashlight/seclite, +/obj/item/device/flashlight, +/obj/structure/closet/crate, +/obj/item/device/flashlight, +/obj/item/device/flashlight, +/obj/item/device/flashlight, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"r" = ( +/turf/closed/wall/mineral/iron{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"s" = ( +/obj/item/weapon/twohanded/spear, +/obj/structure/mineral_door/iron, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"t" = ( +/obj/structure/mineral_door/iron, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"u" = ( +/obj/structure/closet/crate/engineering, +/obj/item/weapon/rcd/loaded, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"v" = ( +/obj/structure/closet/crate/medical, +/obj/item/weapon/storage/firstaid/regular, +/obj/item/weapon/reagent_containers/blood/random, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"w" = ( +/obj/machinery/the_singularitygen, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"x" = ( +/obj/structure/rack{ + icon = 'icons/obj/stationobjs.dmi'; + icon_state = "minibar_left"; + name = "skeletal minibar" + }, +/obj/item/stack/sheet/cloth/ten, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"y" = ( +/obj/structure/rack{ + icon = 'icons/obj/stationobjs.dmi'; + icon_state = "minibar_right"; + name = "skeletal minibar" + }, +/obj/item/clothing/head/helmet/roman/legionaire, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"z" = ( +/obj/item/weapon/shovel, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"A" = ( +/obj/structure/closet/crate, +/obj/item/weapon/storage/firstaid/regular, +/obj/item/weapon/storage/firstaid/o2, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"B" = ( +/obj/structure/table_frame, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"C" = ( +/obj/structure/table/optable, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"D" = ( +/obj/item/device/flashlight, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"E" = ( +/obj/item/weapon/storage/toolbox/syndicate, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"F" = ( +/obj/structure/closet/crate/miningcar, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"G" = ( +/obj/item/weapon/twohanded/spear, +/obj/structure/rack, +/obj/item/weapon/twohanded/spear, +/obj/item/weapon/twohanded/spear, +/obj/item/weapon/twohanded/spear, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"H" = ( +/obj/item/weapon/twohanded/spear, +/obj/structure/rack, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"I" = ( +/obj/structure/mineral_door/iron, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth; + blocks_air = 1 + }, +/area/ruin/unpowered) +"J" = ( +/turf/closed/wall/mineral/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/lavaland/surface/outdoors) +"K" = ( +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "o2=13;n2=24;TEMP=300" + }, +/area/lavaland/surface/outdoors) +"L" = ( +/obj/item/weapon/twohanded/spear, +/obj/structure/table, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"M" = ( +/obj/item/weapon/pickaxe, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "o2=13;n2=24;TEMP=300" + }, +/area/lavaland/surface/outdoors) +"N" = ( +/obj/structure/ore_box, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"R" = ( +/mob/living/simple_animal/hostile/asteroid/gutlunch/gubbuck, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"Q" = ( +/mob/living/simple_animal/hostile/asteroid/gutlunch/guthen, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"P" = ( +/obj/machinery/iv_drip, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"O" = ( +/obj/item/weapon/reagent_containers/glass/bowl, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) + +(1,1,1) = {" +a +a +a +a +a +b +b +a +a +a +a +a +b +J +J +b +K +a +"} +(2,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +F +K +K +b +b +b +"} +(3,1,1) = {" +b +a +a +a +a +a +a +a +c +c +c +c +r +r +r +b +b +b +"} +(4,1,1) = {" +a +a +a +a +a +c +c +c +c +u +A +C +G +L +r +K +b +b +"} +(5,1,1) = {" +a +a +c +c +c +c +j +m +r +v +P +R +f +L +r +b +b +b +"} +(6,1,1) = {" +a +a +c +d +e +i +f +n +r +w +f +D +H +H +r +b +b +b +"} +(7,1,1) = {" +a +a +c +e +h +f +k +f +s +f +f +f +r +r +r +b +K +b +"} +(8,1,1) = {" +a +a +c +f +i +f +f +o +t +f +k +f +I +K +b +b +b +b +"} +(9,1,1) = {" +a +a +c +g +f +O +f +p +r +x +Q +f +r +b +b +K +K +K +"} +(10,1,1) = {" +a +a +c +c +c +c +l +q +r +y +f +f +r +K +b +b +b +b +"} +(11,1,1) = {" +a +a +a +a +a +c +c +c +c +z +B +E +r +M +b +b +b +b +"} +(12,1,1) = {" +a +a +a +a +a +a +a +a +c +c +c +c +r +N +b +K +b +b +"} +(13,1,1) = {" +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(14,1,1) = {" +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +"} diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_biodome_winter.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_biodome_winter.dmm new file mode 100644 index 0000000..1fa9867 --- /dev/null +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_biodome_winter.dmm @@ -0,0 +1,1357 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/template_noop, +/area/template_noop) +"ab" = ( +/turf/closed/wall/r_wall{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/snow_biodome) +"ac" = ( +/obj/item/stack/medical/ointment, +/obj/structure/table, +/obj/item/stack/medical/bruise_pack, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/snow_biodome) +"ad" = ( +/obj/structure/table, +/obj/item/stack/medical/gauze, +/obj/item/stack/medical/gauze, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/snow_biodome) +"ae" = ( +/obj/machinery/power/smes, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/snow_biodome) +"af" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/snow_biodome) +"ag" = ( +/obj/structure/reagent_dispensers/beerkeg, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/snow_biodome) +"ah" = ( +/obj/item/weapon/reagent_containers/food/drinks/mug, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/snow_biodome) +"ai" = ( +/obj/machinery/shower, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/snow_biodome) +"aj" = ( +/obj/structure/sink, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/snow_biodome) +"ak" = ( +/turf/open/floor/plating/asteroid/snow{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/snow_biodome) +"al" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/snow_biodome) +"am" = ( +/obj/machinery/door/airlock/hatch, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/snow_biodome) +"an" = ( +/obj/structure/toilet{ + dir = 8 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/snow_biodome) +"ao" = ( +/turf/open/floor/plating/ice, +/area/ruin/powered/snow_biodome) +"ap" = ( +/obj/structure/flora/rock/icy, +/turf/open/floor/plating/asteroid/snow{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/snow_biodome) +"aq" = ( +/turf/closed/wall/mineral/wood, +/area/ruin/powered/snow_biodome) +"ar" = ( +/obj/machinery/door/airlock/wood, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/snow_biodome) +"as" = ( +/obj/structure/fans, +/turf/closed/wall/mineral/wood, +/area/ruin/powered/snow_biodome) +"at" = ( +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/lava/smooth; + name = "floor" + }, +/area/ruin/powered/snow_biodome) +"au" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/blue, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/lava/smooth; + name = "floor" + }, +/area/ruin/powered/snow_biodome) +"av" = ( +/obj/structure/bookcase/random, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/lava/smooth; + name = "floor" + }, +/area/ruin/powered/snow_biodome) +"aw" = ( +/obj/structure/table/wood, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/lava/smooth; + name = "floor" + }, +/area/ruin/powered/snow_biodome) +"ax" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/snacks/beans, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/lava/smooth; + name = "floor" + }, +/area/ruin/powered/snow_biodome) +"ay" = ( +/obj/structure/closet/crate/trashcart, +/obj/item/trash/semki, +/obj/item/trash/candy, +/turf/open/floor/plating/asteroid/snow{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/snow_biodome) +"az" = ( +/obj/structure/flora/tree/pine, +/turf/open/floor/plating/asteroid/snow{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/snow_biodome) +"aA" = ( +/obj/structure/chair/comfy/brown{ + tag = "icon-comfychair (EAST)"; + icon_state = "comfychair"; + dir = 4 + }, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/lava/smooth; + name = "floor" + }, +/area/ruin/powered/snow_biodome) +"aB" = ( +/obj/structure/flora/rock/pile/icy, +/turf/open/floor/plating/asteroid/snow{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/snow_biodome) +"aC" = ( +/obj/structure/flora/tree/dead, +/turf/open/floor/plating/asteroid/snow{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/snow_biodome) +"aD" = ( +/obj/machinery/door/airlock/wood, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/lava/smooth; + name = "floor" + }, +/area/ruin/powered/snow_biodome) +"aE" = ( +/obj/structure/extinguisher_cabinet, +/turf/closed/wall/mineral/wood, +/area/ruin/powered/snow_biodome) +"aF" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/drinks/mug/coco, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/lava/smooth; + name = "floor" + }, +/area/ruin/powered/snow_biodome) +"aG" = ( +/obj/structure/chair/comfy/brown{ + tag = "icon-comfychair (WEST)"; + icon_state = "comfychair"; + dir = 8 + }, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/lava/smooth; + name = "floor" + }, +/area/ruin/powered/snow_biodome) +"aH" = ( +/mob/living/simple_animal/hostile/skeleton/eskimo, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/lava/smooth; + name = "floor" + }, +/area/ruin/powered/snow_biodome) +"aI" = ( +/obj/structure/flora/bush, +/turf/open/floor/plating/asteroid/snow{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/snow_biodome) +"aJ" = ( +/obj/vehicle/atv, +/turf/open/floor/plating/asteroid/snow{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/snow_biodome) +"aK" = ( +/turf/closed/wall/mineral/wood{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/snow_biodome) +"aL" = ( +/obj/structure/displaycase/captain, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/lava/smooth; + name = "floor" + }, +/area/ruin/powered/snow_biodome) +"aM" = ( +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/snow_biodome) +"aN" = ( +/obj/structure/bed/dogbed, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/lava/smooth; + name = "floor" + }, +/area/ruin/powered/snow_biodome) +"aO" = ( +/obj/machinery/door/airlock/glass_large, +/obj/structure/fans/tiny, +/turf/open/floor/pod/dark, +/area/ruin/powered/snow_biodome) +"aP" = ( +/obj/structure/fans/tiny, +/turf/open/floor/pod/dark, +/area/ruin/powered/snow_biodome) +"aQ" = ( +/obj/structure/flora/grass/both, +/turf/open/floor/plating/asteroid/snow{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/snow_biodome) +"aR" = ( +/obj/structure/flora/tree/pine/xmas, +/turf/open/floor/plating/asteroid/snow{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/snow_biodome) +"aS" = ( +/obj/structure/rack, +/obj/item/clothing/suit/hooded/wintercoat/science, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/gloves/fingerless, +/turf/open/floor/pod/dark, +/area/ruin/powered/snow_biodome) +"aT" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/snow_biodome) +"aU" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/pod/dark, +/area/ruin/powered/snow_biodome) +"aV" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/turf/open/floor/pod/dark, +/area/ruin/powered/snow_biodome) +"aW" = ( +/turf/open/floor/pod/dark, +/area/ruin/powered/snow_biodome) +"aX" = ( +/turf/open/floor/pod/light, +/area/ruin/powered/snow_biodome) +"aY" = ( +/obj/structure/chair/stool, +/turf/open/floor/pod/dark, +/area/ruin/powered/snow_biodome) +"aZ" = ( +/obj/machinery/door/airlock/hatch, +/obj/structure/fans/tiny, +/turf/open/floor/pod/dark, +/area/ruin/powered/snow_biodome) +"ba" = ( +/obj/machinery/door/airlock/silver, +/turf/open/floor/pod/dark, +/area/ruin/powered/snow_biodome) +"bb" = ( +/obj/machinery/door/airlock/silver, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/snow_biodome) +"bc" = ( +/obj/structure/table, +/turf/open/floor/pod/dark, +/area/ruin/powered/snow_biodome) +"bd" = ( +/obj/structure/table, +/obj/item/weapon/pen, +/obj/item/weapon/paper_bin, +/turf/open/floor/pod/dark, +/area/ruin/powered/snow_biodome) +"be" = ( +/obj/structure/table, +/obj/machinery/microwave, +/turf/open/floor/pod/dark, +/area/ruin/powered/snow_biodome) +"bf" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/pod/dark, +/area/ruin/powered/snow_biodome) +"bg" = ( +/obj/item/weapon/twohanded/required/chainsaw, +/obj/structure/closet, +/turf/open/floor/pod/dark, +/area/ruin/powered/snow_biodome) +"bh" = ( +/obj/structure/filingcabinet, +/turf/open/floor/pod/dark, +/area/ruin/powered/snow_biodome) +"bi" = ( +/obj/machinery/computer/monitor, +/turf/open/floor/pod/dark, +/area/ruin/powered/snow_biodome) +"bj" = ( +/obj/item/weapon/storage/toolbox/mechanical, +/turf/open/floor/pod/dark, +/area/ruin/powered/snow_biodome) +"bk" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/pod/dark, +/area/ruin/powered/snow_biodome) +"bl" = ( +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/lava/smooth; + name = "bridge" + }, +/area/ruin/powered/snow_biodome) +"bm" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/powered/snow_biodome) +"bn" = ( +/obj/item/clothing/mask/balaclava, +/turf/open/floor/pod/dark, +/area/ruin/powered/snow_biodome) +"bo" = ( +/obj/structure/table, +/obj/item/weapon/storage/fancy/cigarettes/cigpack_carp, +/turf/open/floor/pod/dark, +/area/ruin/powered/snow_biodome) +"bp" = ( +/obj/structure/table, +/obj/item/weapon/pen, +/obj/item/weapon/paper, +/turf/open/floor/pod/dark, +/area/ruin/powered/snow_biodome) +"bq" = ( +/obj/machinery/light/built{ + dir = 1 + }, +/turf/open/floor/pod/dark, +/area/ruin/powered/snow_biodome) +"br" = ( +/obj/structure/fans/tiny, +/obj/machinery/door/airlock/glass_large, +/turf/open/floor/pod/dark, +/area/ruin/powered/snow_biodome) + +(1,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +aZ +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(2,1,1) = {" +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +aS +aW +aW +aX +aW +aW +bh +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +"} +(3,1,1) = {" +aa +aa +aa +aa +ab +ab +ab +ak +ak +ak +ab +aS +aW +aW +aX +bd +aY +bi +ab +ak +ak +ak +ab +ab +ab +bm +bm +aa +aa +aa +"} +(4,1,1) = {" +aa +aa +aa +ab +ab +ak +aC +ak +ak +ak +ab +aT +aT +aT +ba +aT +aT +aT +ab +ak +ak +ak +ak +ak +ab +ab +bm +bm +aa +aa +"} +(5,1,1) = {" +aa +aa +ab +ab +ao +ao +ak +aI +ak +ak +ak +az +ak +aB +ak +ak +ak +aI +ak +ak +ak +ak +ak +ak +ak +ab +ab +bm +bm +aa +"} +(6,1,1) = {" +aa +aa +ab +ao +ao +ao +ao +ao +ak +aI +ak +ak +ak +ak +ak +ak +ak +ak +ak +aQ +ak +ak +ak +az +ak +ak +ab +bm +bm +aa +"} +(7,1,1) = {" +aa +ab +ab +ap +ak +ao +ao +ao +ao +ak +ak +ak +ak +ak +az +ak +aC +ak +ak +aI +aI +ak +ak +ak +ak +ak +ab +ab +bm +aa +"} +(8,1,1) = {" +aa +ab +ak +ak +ak +ak +ak +ao +ao +ao +ao +ak +ak +ak +ak +ak +ak +ak +ap +aI +ak +aQ +ak +ak +ak +az +ak +ab +bm +bm +"} +(9,1,1) = {" +aa +ab +ab +ab +ak +az +ak +ak +ao +ao +ao +ao +ao +ak +ak +ak +ak +ak +ak +ak +ak +aC +ak +ak +ak +ak +ak +ab +bq +bm +"} +(10,1,1) = {" +ab +ab +af +ab +ak +ak +ak +ak +ak +ak +ak +ao +ao +ao +ao +ak +aI +az +ak +ak +ak +ak +ak +aI +ak +ak +ak +ab +bm +bm +"} +(11,1,1) = {" +ab +ac +af +aq +aq +aq +aq +aq +aK +aq +ak +ao +ao +ao +ao +ao +ak +ak +bl +bl +ak +aI +ak +ak +ak +ab +ab +ab +ab +bm +"} +(12,1,1) = {" +ab +ad +af +ar +at +at +aD +at +aL +aq +ak +az +ak +ao +ao +ao +ao +ao +bl +bl +ak +ak +ak +az +ak +ab +aS +aS +ab +bm +"} +(13,1,1) = {" +ab +ae +af +aq +au +au +aq +at +at +aq +ak +ak +ak +ao +ao +ao +ao +ao +bl +bl +ao +ak +ak +ak +aI +ab +bn +aW +ab +bm +"} +(14,1,1) = {" +ab +af +al +aq +aq +aq +aE +at +at +aq +ak +ak +aC +ak +ao +ak +ao +ao +bl +bl +ao +ao +aI +ak +ak +ab +aX +aX +ab +bm +"} +(15,1,1) = {" +ab +ae +af +aq +av +at +at +aH +aM +aO +ap +ak +ak +ak +ak +ak +ak +ao +bl +bl +ao +ao +ak +ak +ak +aO +aX +aX +br +bm +"} +(16,1,1) = {" +ab +ag +ah +as +aw +aA +aA +at +aM +aP +ak +ak +aQ +ak +ak +az +ak +ak +bl +bl +ak +ao +ao +ak +ak +aP +aX +aX +aP +bm +"} +(17,1,1) = {" +ab +ah +af +aq +ax +aw +aF +at +at +aq +ak +aI +ak +ak +ak +ak +ak +ak +ak +ak +ak +ao +ao +ao +ak +ab +aX +aX +ab +bm +"} +(18,1,1) = {" +ab +ab +am +aq +av +at +aG +at +at +aq +aR +ak +ak +ak +ak +ak +ak +ak +aC +ak +ak +ak +ao +ao +ao +ab +aW +aW +ab +bm +"} +(19,1,1) = {" +ab +ai +af +aq +av +at +aH +at +aN +aq +ak +ak +ak +az +ak +ak +ak +ak +ak +ak +ak +ak +ak +ao +ao +ab +bo +bp +ab +bm +"} +(20,1,1) = {" +ab +aj +af +aq +aq +aq +aq +aq +aq +aq +ak +ak +ak +ak +ak +aI +ak +az +ak +ak +ak +ak +az +ak +ao +ab +ab +ab +ab +bm +"} +(21,1,1) = {" +ab +ab +an +ab +ay +ak +ak +ak +ak +ak +ak +ak +ak +ak +aC +ak +ak +ak +ak +ap +ak +ak +ak +ak +ak +ak +ak +ab +bm +bm +"} +(22,1,1) = {" +aa +ab +ab +ab +ak +ak +aI +ak +ap +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +aI +ak +ak +aQ +ak +ak +ak +ab +bq +bm +"} +(23,1,1) = {" +aa +ab +ak +ak +az +ak +aJ +ak +ak +ak +ak +ak +ak +az +ak +aQ +ak +aC +ak +aI +ak +az +aI +aI +ak +ak +ak +ab +bm +bm +"} +(24,1,1) = {" +aa +ab +ab +ak +ak +aB +ak +ak +aC +ak +ak +ak +ak +aI +ak +ap +ak +ak +ak +ak +ak +ak +aI +aI +ak +ak +ab +ab +bm +aa +"} +(25,1,1) = {" +aa +aa +ab +ap +ak +ak +ak +ak +ak +aQ +ak +ak +ak +aI +ak +ak +ak +ak +aQ +ak +ak +aB +ak +ak +aC +ak +ab +bm +bm +aa +"} +(26,1,1) = {" +aa +aa +ab +ab +ak +ak +az +ak +ak +ak +ak +ak +ak +ak +ak +ak +az +ak +ak +ak +ak +az +ak +ak +ak +ab +ab +bm +aa +aa +"} +(27,1,1) = {" +aa +aa +aa +ab +ab +ak +ak +ak +ak +ak +ab +aT +aT +aT +bb +aT +aT +aT +ab +ak +ak +ak +ak +ak +ab +ab +bm +bm +aa +aa +"} +(28,1,1) = {" +aa +aa +aa +aa +ab +ab +ab +ak +ak +ak +ab +aU +aW +aX +aX +aX +bf +bj +ab +ak +ak +ak +ab +ab +ab +bm +bm +aa +aa +aa +"} +(29,1,1) = {" +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +aV +aW +aY +bc +be +bg +bk +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +"} +(30,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_cube.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_cube.dmm new file mode 100644 index 0000000..59d066d --- /dev/null +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_cube.dmm @@ -0,0 +1,979 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"b" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"c" = ( +/obj/effect/decal/remains/human, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"d" = ( +/turf/closed/indestructible/riveted, +/area/lavaland/surface/outdoors) +"e" = ( +/obj/machinery/wish_granter, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +b +a +b +b +b +b +b +b +a +a +a +a +a +a +a +b +a +"} +(2,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +b +a +b +b +c +b +b +b +b +a +a +a +a +a +a +a +a +"} +(3,1,1) = {" +a +b +a +a +a +a +b +a +a +a +a +a +a +a +b +a +b +b +b +a +a +b +b +a +a +b +b +a +a +a +"} +(4,1,1) = {" +a +a +a +a +b +b +b +a +a +a +a +a +a +a +b +b +b +a +a +b +b +b +b +b +b +b +b +a +b +b +"} +(5,1,1) = {" +a +a +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 +a +a +b +"} +(6,1,1) = {" +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 +a +b +"} +(7,1,1) = {" +b +a +a +a +a +a +a +a +a +a +b +b +b +b +b +b +b +c +b +b +c +b +b +b +c +b +b +b +b +a +"} +(8,1,1) = {" +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 +a +"} +(9,1,1) = {" +a +a +b +a +a +a +a +a +a +a +b +b +b +b +c +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +"} +(10,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +c +b +b +b +b +b +b +b +b +c +b +b +b +"} +(11,1,1) = {" +a +a +a +b +a +a +a +a +a +a +a +a +a +b +b +b +b +b +b +b +b +b +b +c +b +b +b +b +b +b +"} +(12,1,1) = {" +a +a +b +a +a +a +b +b +a +a +c +b +b +b +b +b +c +b +c +b +b +b +b +b +b +b +b +b +b +b +"} +(13,1,1) = {" +a +a +b +b +b +b +b +b +b +b +b +b +c +c +b +c +c +b +b +b +b +b +b +b +b +b +b +b +c +b +"} +(14,1,1) = {" +a +a +b +c +b +b +b +b +c +b +c +d +d +d +d +d +b +b +b +b +b +b +c +b +b +b +b +b +b +b +"} +(15,1,1) = {" +a +a +b +b +b +b +c +b +b +b +b +d +d +d +d +d +b +c +b +b +c +b +a +b +b +b +b +b +b +b +"} +(16,1,1) = {" +a +a +b +b +b +b +b +b +b +c +b +d +d +e +d +d +b +b +a +a +b +b +a +a +b +b +b +b +b +b +"} +(17,1,1) = {" +a +a +b +b +b +b +b +c +b +b +c +d +d +d +d +d +c +c +a +a +a +a +a +a +a +b +b +a +b +b +"} +(18,1,1) = {" +a +a +b +a +a +a +b +b +b +b +b +d +d +d +d +d +b +c +b +a +a +a +a +a +b +b +b +c +a +a +"} +(19,1,1) = {" +a +a +b +a +a +a +b +b +b +b +b +c +b +c +c +b +c +b +b +a +a +a +a +a +b +a +b +b +a +a +"} +(20,1,1) = {" +a +a +b +b +b +b +b +b +c +b +b +b +c +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +"} +(21,1,1) = {" +a +a +b +b +b +b +b +b +b +b +b +b +b +c +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +"} +(22,1,1) = {" +a +a +b +b +b +b +a +b +b +b +a +b +b +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +"} +(23,1,1) = {" +a +a +a +a +a +a +b +b +b +b +b +b +b +b +b +b +c +b +b +a +a +a +a +a +a +a +a +a +a +a +"} +(24,1,1) = {" +a +a +a +a +a +a +c +b +b +b +b +b +b +b +c +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +"} +(25,1,1) = {" +a +a +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 +"} +(26,1,1) = {" +b +b +b +b +b +b +b +b +b +b +c +b +b +b +b +b +a +a +a +a +a +b +a +a +a +a +a +a +a +a +"} +(27,1,1) = {" +b +b +b +a +a +a +a +a +a +a +a +b +c +b +b +a +b +b +b +b +b +b +a +a +a +a +a +a +a +a +"} +(28,1,1) = {" +b +b +b +a +a +a +a +a +a +a +a +b +b +b +b +b +b +b +b +b +b +b +c +b +b +b +b +b +b +b +"} +(29,1,1) = {" +b +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +b +b +b +b +a +a +a +a +b +a +b +b +b +b +"} +(30,1,1) = {" +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 +"} diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_cultaltar.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_cultaltar.dmm new file mode 100644 index 0000000..762e3df --- /dev/null +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_cultaltar.dmm @@ -0,0 +1,434 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"b" = ( +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"c" = ( +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/ruin/unpowered) +"d" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/turf/closed/wall/mineral/cult{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + }, +/area/ruin/unpowered) +"e" = ( +/obj/effect/decal/remains/human, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered) +"f" = ( +/obj/structure/destructible/cult/pylon, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered) +"g" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/step_trigger/thrower{ + name = "south"; + tiles = 5 + }, +/obj/effect/step_trigger/sound_effect{ + name = "turn around"; + sound = 'sound/hallucinations/turn_around1.ogg'; + triggerer_only = 1 + }, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"h" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"i" = ( +/obj/effect/decal/remains/human, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"j" = ( +/turf/open/floor/plasteel/cult{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/turf/closed/wall/mineral/cult{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + }, +/area/ruin/unpowered) +"k" = ( +/obj/effect/decal/remains/human, +/obj/item/weapon/melee/cultblade, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"l" = ( +/obj/effect/decal/remains/human, +/obj/item/clothing/shoes/cult, +/obj/item/clothing/suit/cultrobes, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"m" = ( +/obj/effect/decal/remains/human, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"n" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/step_trigger/thrower{ + direction = 4; + name = "east"; + tiles = 5 + }, +/obj/effect/step_trigger/sound_effect{ + name = "turn around"; + sound = 'sound/hallucinations/turn_around1.ogg'; + triggerer_only = 1 + }, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"o" = ( +/obj/effect/rune/narsie{ + color = "#ff0000"; + used = 1 + }, +/obj/item/device/cult_shift, +/obj/effect/decal/remains/human, +/obj/item/weapon/melee/cultblade/dagger, +/obj/effect/step_trigger/sound_effect{ + happens_once = 1; + name = "a grave mistake"; + sound = 'sound/hallucinations/i_see_you1.ogg'; + triggerer_only = 1 + }, +/obj/effect/step_trigger/message{ + message = "You've made a grave mistake, haven't you?"; + name = "ohfuck" + }, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"p" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/step_trigger/thrower{ + direction = 8; + name = "west"; + tiles = 5 + }, +/obj/effect/step_trigger/sound_effect{ + name = "turn around"; + sound = 'sound/hallucinations/turn_around1.ogg'; + triggerer_only = 1 + }, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"q" = ( +/obj/effect/decal/remains/human, +/obj/item/clothing/shoes/cult, +/obj/item/clothing/suit/cultrobes, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"r" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/step_trigger/thrower{ + direction = 1; + name = "north"; + tiles = 5 + }, +/obj/effect/step_trigger/sound_effect{ + name = "turn around"; + sound = 'sound/hallucinations/turn_around1.ogg'; + triggerer_only = 1 + }, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"s" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered) + +(1,1,1) = {" +a +a +a +a +a +a +b +c +b +a +a +a +a +a +a +"} +(2,1,1) = {" +a +d +e +c +s +c +b +b +b +c +s +c +s +d +a +"} +(3,1,1) = {" +a +e +f +s +d +c +c +n +c +c +d +e +f +s +a +"} +(4,1,1) = {" +a +c +s +c +c +c +c +b +c +c +c +c +e +c +a +"} +(5,1,1) = {" +a +s +d +c +c +b +b +b +b +b +c +c +d +s +a +"} +(6,1,1) = {" +a +c +c +c +b +b +l +j +k +b +b +c +c +c +a +"} +(7,1,1) = {" +b +b +c +c +h +i +b +b +b +l +b +c +c +b +b +"} +(8,1,1) = {" +c +b +g +b +b +j +b +o +b +j +b +b +r +b +c +"} +(9,1,1) = {" +b +b +c +c +b +k +b +b +b +m +b +c +c +b +b +"} +(10,1,1) = {" +a +c +c +c +h +b +m +j +q +b +b +c +c +c +a +"} +(11,1,1) = {" +a +s +d +c +c +b +b +b +b +b +c +c +d +s +a +"} +(12,1,1) = {" +a +c +s +c +c +c +c +b +c +c +c +c +e +c +a +"} +(13,1,1) = {" +a +e +f +s +d +c +c +p +c +c +d +e +f +s +a +"} +(14,1,1) = {" +a +d +e +c +s +c +b +b +b +c +s +c +s +d +a +"} +(15,1,1) = {" +a +a +a +a +a +a +b +c +b +a +a +a +a +a +a +"} diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_envy.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_envy.dmm new file mode 100644 index 0000000..ce611c6 --- /dev/null +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_envy.dmm @@ -0,0 +1,349 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"b" = ( +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"c" = ( +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"d" = ( +/turf/closed/wall/rust{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"e" = ( +/obj/structure/mirror{ + desc = "This mirror has been shattered. It looks like the bad luck energies spilling from it are taking immediate effect on your surroundings!"; + icon_state = "mirror_broke"; + pixel_x = -28; + broken = 1 + }, +/obj/item/clothing/suit/hooded/bloated_human, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"f" = ( +/obj/structure/mirror{ + desc = "Oh no, seven years of bad luck!"; + icon_state = "mirror_broke"; + pixel_x = 28; + broken = 1 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth; + icon_state = "panelscorched" + }, +/area/ruin/unpowered) +"g" = ( +/obj/effect/decal/cleanable/blood/tracks, +/obj/structure/mirror{ + desc = "This mirror has been shattered. It looks like the bad luck energies spilling from it are taking immediate effect on your surroundings!"; + icon_state = "mirror_broke"; + pixel_x = -28; + broken = 1 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"h" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"i" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"j" = ( +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"k" = ( +/obj/structure/mirror{ + icon_state = "mirror_broke"; + pixel_y = 28; + broken = 1 + }, +/obj/item/weapon/kitchen/knife/envy, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"l" = ( +/obj/structure/mirror{ + desc = "Oh no, seven years of bad luck!"; + icon_state = "mirror_broke"; + pixel_x = 28; + broken = 1 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"m" = ( +/obj/structure/mirror{ + desc = "This mirror has been shattered. It looks like the bad luck energies spilling from it are taking immediate effect on your surroundings!"; + icon_state = "mirror_broke"; + pixel_x = -28; + broken = 1 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"n" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth; + broken = 1; + icon_state = "platingdmg2" + }, +/area/ruin/unpowered) +"o" = ( +/obj/structure/mirror{ + desc = "This mirror has been shattered. It looks like the bad luck energies spilling from it are taking immediate effect on your surroundings!"; + icon_state = "mirror_broke"; + pixel_x = -28; + broken = 1 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth; + broken = 1; + icon_state = "platingdmg1" + }, +/area/ruin/unpowered) +"p" = ( +/obj/machinery/door/airlock/hatch, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +a +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +a +"} +(3,1,1) = {" +b +c +c +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +c +a +"} +(4,1,1) = {" +c +c +d +d +d +e +g +g +g +m +m +m +m +m +o +m +j +d +c +a +"} +(5,1,1) = {" +c +d +d +d +d +d +h +h +i +i +i +i +i +h +i +i +i +d +a +a +"} +(6,1,1) = {" +c +d +d +d +d +d +d +k +i +i +i +i +i +i +i +i +i +p +a +a +"} +(7,1,1) = {" +c +d +d +d +d +d +i +i +i +j +i +n +i +i +i +i +i +d +c +a +"} +(8,1,1) = {" +c +c +d +d +d +f +j +l +l +l +l +l +l +l +l +l +j +d +c +a +"} +(9,1,1) = {" +b +c +c +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +c +a +"} +(10,1,1) = {" +b +b +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +a +"} diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_fountain_hall.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_fountain_hall.dmm new file mode 100644 index 0000000..918b0e8 --- /dev/null +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_fountain_hall.dmm @@ -0,0 +1,171 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"b" = ( +/turf/closed/wall/mineral/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"c" = ( +/obj/structure/healingfountain, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"d" = ( +/obj/structure/fluff/divine/conduit, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"e" = ( +/obj/structure/sacrificealtar, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"f" = ( +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"g" = ( +/mob/living/simple_animal/butterfly, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"h" = ( +/obj/structure/fans/tiny/invisible, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) + +(1,1,1) = {" +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +"} +(2,1,1) = {" +a +b +d +f +f +d +f +f +d +f +f +d +f +f +d +b +"} +(3,1,1) = {" +b +b +e +g +f +f +g +f +f +f +f +g +f +g +f +b +"} +(4,1,1) = {" +b +c +f +f +f +f +f +f +f +f +f +f +f +f +f +h +"} +(5,1,1) = {" +b +b +e +f +f +f +f +g +f +f +f +f +f +f +f +b +"} +(6,1,1) = {" +a +b +d +g +f +d +f +f +d +f +f +d +f +g +d +b +"} +(7,1,1) = {" +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +"} diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_gluttony.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_gluttony.dmm new file mode 100644 index 0000000..1475bc1 --- /dev/null +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_gluttony.dmm @@ -0,0 +1,531 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"b" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"c" = ( +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"d" = ( +/turf/closed/indestructible/riveted/uranium{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"e" = ( +/turf/open/floor/plating/lava/smooth, +/area/ruin/powered) +"f" = ( +/obj/item/weapon/reagent_containers/syringe/gluttony, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"g" = ( +/obj/effect/gluttony, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"h" = ( +/obj/item/weapon/veilrender/vealrender, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"i" = ( +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"j" = ( +/obj/item/trash/plate, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"k" = ( +/obj/machinery/door/airlock/uranium, +/obj/structure/fans/tiny/invisible, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"l" = ( +/obj/item/trash/candy, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"m" = ( +/obj/item/trash/raisins, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"n" = ( +/obj/item/trash/pistachios, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"o" = ( +/obj/item/trash/popcorn, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"p" = ( +/obj/item/trash/semki, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"q" = ( +/obj/item/trash/syndi_cakes, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) + +(1,1,1) = {" +a +a +a +b +b +a +a +b +a +b +b +b +b +b +b +b +a +a +a +a +"} +(2,1,1) = {" +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +"} +(3,1,1) = {" +b +a +a +a +b +b +b +c +c +c +b +c +c +c +b +b +a +a +a +a +"} +(4,1,1) = {" +b +a +a +a +b +b +b +c +d +d +k +d +d +c +b +a +a +a +a +a +"} +(5,1,1) = {" +b +b +a +a +a +b +b +c +d +h +i +o +d +c +b +a +a +a +a +a +"} +(6,1,1) = {" +a +a +a +a +a +b +b +c +d +i +i +i +d +c +b +b +b +b +b +a +"} +(7,1,1) = {" +a +b +b +b +b +b +b +c +d +i +l +i +d +c +b +b +b +b +b +a +"} +(8,1,1) = {" +a +b +c +c +c +c +c +c +d +i +i +m +d +c +c +c +c +c +c +b +"} +(9,1,1) = {" +b +b +c +d +d +d +d +d +d +g +m +i +d +d +d +d +d +d +c +b +"} +(10,1,1) = {" +a +b +c +d +e +d +g +g +g +g +g +i +p +i +j +l +i +d +c +b +"} +(11,1,1) = {" +a +b +c +d +f +g +g +g +g +g +n +i +i +i +i +i +i +k +b +b +"} +(12,1,1) = {" +a +b +c +d +e +d +g +g +g +g +i +g +i +l +i +i +q +d +c +b +"} +(13,1,1) = {" +a +b +c +d +d +d +d +d +d +g +i +i +d +d +d +d +d +d +c +b +"} +(14,1,1) = {" +a +b +c +c +c +c +c +c +d +g +i +i +d +c +c +c +c +c +c +b +"} +(15,1,1) = {" +a +b +b +b +b +b +b +c +d +i +g +i +d +c +b +b +b +b +b +b +"} +(16,1,1) = {" +b +b +b +a +b +b +b +c +d +j +i +i +d +c +b +b +b +a +a +a +"} +(17,1,1) = {" +b +b +b +a +b +b +b +c +d +i +n +i +d +c +b +b +b +a +a +a +"} +(18,1,1) = {" +a +a +a +a +b +b +b +c +d +d +k +d +d +c +b +b +b +a +a +a +"} +(19,1,1) = {" +a +a +a +a +a +a +a +c +c +c +b +c +c +c +b +b +a +a +a +a +"} +(20,1,1) = {" +a +a +a +a +a +a +a +b +b +b +b +b +b +b +a +a +b +a +a +a +"} diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_golem_ship.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_golem_ship.dmm new file mode 100644 index 0000000..c474777 --- /dev/null +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_golem_ship.dmm @@ -0,0 +1,707 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"b" = ( +/turf/closed/wall/mineral/titanium/nodiagonal{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/golem_ship) +"c" = ( +/obj/structure/closet/crate, +/obj/item/weapon/pickaxe, +/obj/item/weapon/pickaxe, +/obj/item/weapon/pickaxe, +/obj/item/weapon/storage/bag/ore, +/obj/item/weapon/storage/bag/ore, +/obj/item/device/mining_scanner, +/obj/item/device/flashlight/lantern, +/obj/item/weapon/card/id/mining, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/golem_ship) +"d" = ( +/obj/structure/closet/crate, +/obj/item/weapon/pickaxe, +/obj/item/weapon/pickaxe, +/obj/item/weapon/storage/bag/ore, +/obj/item/weapon/storage/bag/ore, +/obj/item/device/mining_scanner, +/obj/item/device/flashlight/lantern, +/obj/item/weapon/card/id/mining, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/golem_ship) +"e" = ( +/obj/item/weapon/storage/toolbox/mechanical, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/golem_ship) +"f" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/golem_ship) +"g" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/golem_ship) +"h" = ( +/obj/structure/shuttle/engine/heater{ + icon_state = "heater"; + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/powered/golem_ship) +"i" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion"; + dir = 8 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/powered/golem_ship) +"j" = ( +/obj/machinery/door/airlock/shuttle, +/turf/open/floor/mineral/titanium/purple{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/golem_ship) +"k" = ( +/obj/machinery/computer/arcade/battle, +/turf/open/floor/mineral/titanium/purple{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/golem_ship) +"l" = ( +/turf/open/floor/mineral/titanium/purple{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/golem_ship) +"m" = ( +/obj/effect/mob_spawn/human/golem/adamantine, +/turf/open/floor/mineral/titanium/purple{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/golem_ship) +"n" = ( +/obj/machinery/mineral/equipment_vendor/golem, +/turf/open/floor/mineral/titanium/purple{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/golem_ship) +"o" = ( +/obj/item/weapon/resonator, +/turf/open/floor/mineral/titanium/purple{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/golem_ship) +"p" = ( +/obj/machinery/mineral/ore_redemption, +/turf/open/floor/mineral/titanium/purple{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/golem_ship) +"q" = ( +/obj/structure/statue/gold/rd, +/obj/structure/window/reinforced{ + dir = 4; + name = "shrine of the liberator"; + pixel_x = 0 + }, +/turf/open/floor/mineral/titanium/purple{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/golem_ship) +"r" = ( +/obj/machinery/computer/shuttle, +/turf/open/floor/mineral/titanium/purple{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/golem_ship) +"s" = ( +/obj/machinery/bluespace_beacon, +/turf/open/floor/mineral/titanium/purple{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/golem_ship) +"t" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = 30 + }, +/turf/open/floor/mineral/titanium/purple{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/golem_ship) +"u" = ( +/obj/structure/table/wood, +/obj/item/weapon/bedsheet/rd{ + desc = "Majestic."; + layer = 3; + name = "Royal Cape of the Liberator"; + pixel_x = 5; + pixel_y = 9 + }, +/obj/item/weapon/book/manual/research_and_development{ + name = "Sacred Text of the Liberator"; + pixel_x = -4; + pixel_y = 3 + }, +/obj/structure/window/reinforced{ + dir = 4; + name = "shrine of the liberator"; + pixel_x = 0 + }, +/turf/open/floor/mineral/titanium/purple{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/golem_ship) +"v" = ( +/obj/item/weapon/resonator/upgraded, +/turf/open/floor/mineral/titanium/purple{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/golem_ship) +"w" = ( +/obj/machinery/autolathe, +/turf/open/floor/mineral/titanium/purple{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/golem_ship) +"x" = ( +/obj/structure/table/wood, +/obj/machinery/reagentgrinder, +/turf/open/floor/mineral/titanium/purple{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/golem_ship) +"y" = ( +/obj/machinery/computer/arcade/orion_trail, +/turf/open/floor/mineral/titanium/purple{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/golem_ship) +"z" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = -30 + }, +/turf/open/floor/mineral/titanium/purple{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/golem_ship) +"A" = ( +/obj/structure/table/wood, +/obj/item/weapon/surgical_drapes{ + pixel_x = 15 + }, +/obj/item/weapon/storage/firstaid/fire, +/obj/item/weapon/storage/firstaid/fire, +/turf/open/floor/mineral/titanium/purple{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/golem_ship) +"B" = ( +/obj/item/weapon/storage/firstaid/fire, +/obj/structure/table/wood, +/obj/item/weapon/storage/firstaid/fire, +/turf/open/floor/mineral/titanium/purple{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/golem_ship) +"C" = ( +/obj/item/weapon/storage/firstaid/brute, +/obj/structure/table/wood, +/obj/item/weapon/storage/firstaid/brute, +/obj/item/areaeditor/blueprints{ + desc = "Use to build new structures in the wastes."; + name = "land claim" + }, +/turf/open/floor/mineral/titanium/purple{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/golem_ship) +"D" = ( +/obj/item/weapon/storage/firstaid/brute, +/obj/structure/table/wood, +/obj/item/weapon/storage/firstaid/brute, +/obj/item/weapon/disk/design_disk/golem_shell, +/turf/open/floor/mineral/titanium/purple{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/golem_ship) +"E" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/golem_ship) +"F" = ( +/obj/structure/ore_box, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/golem_ship) +"G" = ( +/turf/closed/wall/mineral/titanium, +/area/ruin/powered/golem_ship) +"H" = ( +/obj/machinery/door/airlock/shuttle, +/obj/structure/fans/tiny, +/turf/open/floor/mineral/titanium/purple{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered/golem_ship) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +b +b +b +b +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +a +a +a +a +a +a +a +b +q +u +G +a +a +a +a +a +a +a +a +"} +(3,1,1) = {" +a +a +a +a +a +b +b +b +b +r +l +G +b +b +b +a +a +a +a +a +"} +(4,1,1) = {" +a +a +a +a +a +b +k +l +j +l +l +j +l +y +b +a +a +a +a +a +"} +(5,1,1) = {" +a +a +a +a +a +b +l +l +j +l +l +j +l +l +b +a +a +a +a +a +"} +(6,1,1) = {" +a +a +b +b +b +b +l +l +b +l +l +G +l +l +b +b +b +b +a +a +"} +(7,1,1) = {" +a +a +b +c +f +j +l +l +b +l +l +G +l +l +j +f +F +b +a +a +"} +(8,1,1) = {" +a +a +b +c +f +j +l +l +b +l +l +G +l +l +j +f +F +b +a +a +"} +(9,1,1) = {" +a +a +b +c +f +b +m +o +b +l +l +G +o +m +b +f +F +b +a +a +"} +(10,1,1) = {" +a +a +b +c +f +b +m +o +b +l +l +G +o +m +b +f +F +b +a +a +"} +(11,1,1) = {" +a +a +b +c +f +b +b +j +b +j +j +G +j +b +b +f +F +b +a +a +"} +(12,1,1) = {" +a +a +b +c +f +b +l +l +l +l +l +l +l +z +b +f +F +b +a +a +"} +(13,1,1) = {" +a +a +b +d +f +j +l +l +l +s +l +l +l +l +j +f +F +b +a +a +"} +(14,1,1) = {" +a +a +b +d +f +j +l +l +l +l +l +l +l +l +j +f +e +b +a +a +"} +(15,1,1) = {" +a +a +b +d +f +b +l +l +l +l +l +l +l +A +b +f +f +b +a +a +"} +(16,1,1) = {" +a +a +b +e +f +b +l +l +l +l +l +v +l +B +b +f +f +b +a +a +"} +(17,1,1) = {" +a +a +b +f +f +b +l +l +p +l +l +w +l +C +b +f +f +b +a +a +"} +(18,1,1) = {" +a +a +b +g +g +b +n +l +b +j +j +b +x +D +b +E +E +b +a +a +"} +(19,1,1) = {" +a +a +b +h +h +b +h +h +b +t +l +b +h +h +b +h +h +b +a +a +"} +(20,1,1) = {" +a +a +b +i +i +b +i +i +b +H +H +b +i +i +b +i +i +b +a +a +"} diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_greed.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_greed.dmm new file mode 100644 index 0000000..8a69cfa --- /dev/null +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_greed.dmm @@ -0,0 +1,571 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"b" = ( +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"c" = ( +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"d" = ( +/turf/closed/wall/mineral/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"e" = ( +/obj/structure/table/wood/poker, +/obj/item/weapon/gun/projectile/revolver/russian/soul, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/lava/smooth; + icon_state = "carpetsymbol" + }, +/area/ruin/powered) +"f" = ( +/obj/structure/cursed_slot_machine, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/lava/smooth; + icon_state = "carpetsymbol" + }, +/area/ruin/powered) +"g" = ( +/obj/structure/table/wood/poker, +/obj/item/weapon/coin/mythril, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/lava/smooth; + icon_state = "carpetsymbol" + }, +/area/ruin/powered) +"h" = ( +/obj/structure/table/wood/poker, +/obj/item/weapon/coin/diamond, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/lava/smooth; + icon_state = "carpetsymbol" + }, +/area/ruin/powered) +"i" = ( +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/lava/smooth; + icon_state = "carpetsymbol" + }, +/area/ruin/powered) +"j" = ( +/obj/structure/table/wood/poker, +/obj/item/weapon/coin/adamantine, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/lava/smooth; + icon_state = "carpetsymbol" + }, +/area/ruin/powered) +"k" = ( +/obj/machinery/computer/arcade/battle{ + emagged = 1 + }, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"l" = ( +/obj/item/weapon/coin/gold, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"m" = ( +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"n" = ( +/obj/structure/table/wood/poker, +/obj/item/stack/spacecash/c1000, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"o" = ( +/obj/item/weapon/storage/bag/money, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"p" = ( +/obj/structure/table/wood/poker, +/obj/item/weapon/ore/gold, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"q" = ( +/obj/structure/table/wood/poker, +/obj/item/stack/spacecash/c20, +/obj/item/stack/spacecash/c50, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"r" = ( +/obj/structure/table/wood/poker, +/obj/item/stack/spacecash/c500, +/obj/item/stack/spacecash/c100, +/obj/item/stack/spacecash/c1000, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"s" = ( +/obj/structure/table/wood/poker, +/obj/item/stack/spacecash/c200, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"t" = ( +/obj/machinery/door/airlock/gold, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth; + blocks_air = 1 + }, +/area/ruin/powered) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +b +b +a +a +a +a +a +a +a +a +b +"} +(2,1,1) = {" +a +b +b +a +a +a +a +a +a +b +b +b +a +a +a +a +a +b +b +b +"} +(3,1,1) = {" +a +b +b +b +b +b +a +a +a +b +a +a +a +a +a +a +b +b +b +b +"} +(4,1,1) = {" +a +a +b +b +b +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +"} +(5,1,1) = {" +a +a +a +b +b +a +a +c +c +c +c +c +c +c +a +a +a +a +b +a +"} +(6,1,1) = {" +b +a +a +a +a +a +c +c +d +d +d +d +d +c +a +a +a +a +b +a +"} +(7,1,1) = {" +b +a +a +a +c +c +c +d +d +n +q +s +d +c +c +c +c +a +a +a +"} +(8,1,1) = {" +a +a +a +a +c +d +d +d +k +o +l +m +d +d +d +d +c +a +a +a +"} +(9,1,1) = {" +a +a +b +a +c +d +e +h +l +m +m +m +l +m +l +d +d +a +a +a +"} +(10,1,1) = {" +b +b +b +a +c +d +f +i +m +l +m +o +m +m +m +m +t +a +a +a +"} +(11,1,1) = {" +a +a +b +a +c +d +g +j +l +m +m +l +m +l +o +d +d +a +a +a +"} +(12,1,1) = {" +a +a +a +a +c +d +d +d +k +o +m +l +d +d +d +d +c +a +a +a +"} +(13,1,1) = {" +a +a +a +a +c +c +c +d +d +p +r +r +d +c +c +c +c +a +a +a +"} +(14,1,1) = {" +b +b +a +a +a +a +c +c +d +d +d +d +d +c +a +a +a +a +a +a +"} +(15,1,1) = {" +b +b +a +a +a +a +a +c +c +c +c +c +c +c +a +a +a +a +a +a +"} +(16,1,1) = {" +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +"} +(17,1,1) = {" +a +a +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +"} +(18,1,1) = {" +a +a +a +b +b +b +b +b +b +b +b +b +b +a +a +b +b +b +b +b +"} +(19,1,1) = {" +a +a +a +b +b +b +b +a +a +a +b +b +b +b +a +b +b +b +b +b +"} +(20,1,1) = {" +a +a +a +a +b +b +a +a +a +a +a +a +b +b +b +b +b +b +b +b +"} diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_hermit.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_hermit.dmm new file mode 100644 index 0000000..320ea38 --- /dev/null +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_hermit.dmm @@ -0,0 +1,526 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"b" = ( +/turf/closed/mineral/volcanic/lava_land_surface, +/area/ruin/powered) +"c" = ( +/turf/closed/wall/mineral/iron{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + }, +/area/ruin/powered) +"d" = ( +/obj/item/clothing/head/helmet/space/orange, +/obj/item/clothing/mask/breath, +/turf/open/floor/plating/asteroid/basalt, +/area/ruin/powered) +"e" = ( +/obj/item/clothing/suit/space/orange, +/turf/open/floor/plating/asteroid/basalt, +/area/ruin/powered) +"f" = ( +/turf/open/floor/plating/asteroid/basalt, +/area/ruin/powered) +"g" = ( +/turf/open/floor/plating/asteroid{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + name = "dirt" + }, +/area/ruin/powered) +"h" = ( +/obj/item/weapon/shovel, +/turf/open/floor/plating/asteroid{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + name = "dirt" + }, +/area/ruin/powered) +"i" = ( +/obj/item/weapon/reagent_containers/glass/bucket, +/turf/open/floor/plating/asteroid{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + name = "dirt" + }, +/area/ruin/powered) +"j" = ( +/obj/structure/sink/puddle, +/turf/open/floor/plating/asteroid{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + name = "dirt" + }, +/area/ruin/powered) +"k" = ( +/obj/structure/glowshroom/single, +/turf/open/floor/plating/asteroid{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + name = "dirt" + }, +/area/ruin/powered) +"l" = ( +/obj/item/weapon/storage/toolbox/emergency, +/turf/open/floor/plating/asteroid{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + name = "dirt" + }, +/area/ruin/powered) +"m" = ( +/obj/structure/rack, +/obj/item/seeds/reishi, +/obj/item/seeds/plump, +/obj/item/seeds/plump, +/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/glowshroom, +/turf/open/floor/plating/asteroid/basalt, +/area/ruin/powered) +"n" = ( +/obj/machinery/hydroponics/soil, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + }, +/area/ruin/powered) +"o" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + }, +/area/ruin/powered) +"p" = ( +/obj/structure/rack, +/obj/item/weapon/storage/bag/ore, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/plating/asteroid/basalt, +/area/ruin/powered) +"q" = ( +/obj/structure/glowshroom/single, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + }, +/area/ruin/powered) +"r" = ( +/obj/structure/rack, +/obj/item/weapon/pickaxe/emergency, +/obj/item/weapon/tank/internals/oxygen, +/turf/open/floor/plating/asteroid/basalt, +/area/ruin/powered) +"s" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"t" = ( +/turf/closed/wall/shuttle/survival/pod{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"u" = ( +/obj/structure/bed/pod, +/obj/item/weapon/bedsheet/black, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + }, +/area/ruin/powered) +"v" = ( +/obj/structure/fans, +/turf/open/floor/pod/dark{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"w" = ( +/obj/machinery/smartfridge/survival_pod, +/turf/open/floor/pod/dark{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"x" = ( +/obj/effect/mob_spawn/human/hermit, +/turf/open/floor/pod/dark{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"y" = ( +/turf/open/floor/pod/dark{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"z" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/tubes, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + }, +/area/ruin/powered) +"A" = ( +/obj/structure/table, +/obj/item/weapon/kitchen/knife/combat/survival, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + }, +/area/ruin/powered) +"B" = ( +/obj/structure/table/survival_pod, +/turf/open/floor/pod/dark{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"C" = ( +/obj/structure/tubes, +/obj/item/weapon/crowbar, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/pod/dark{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"D" = ( +/obj/effect/decal/cleanable/blood/footprints{ + tag = "icon-blood1 (NORTH)"; + icon_state = "blood1"; + dir = 1 + }, +/obj/machinery/door/airlock/survival_pod, +/obj/structure/fans/tiny, +/turf/open/floor/pod/dark{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"E" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/obj/structure/shuttle/engine/propulsion/burst{ + dir = 4 + }, +/turf/closed/wall/mineral/titanium/interior{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"F" = ( +/turf/closed/wall/mineral/titanium{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"G" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/turf/closed/wall/mineral/titanium/interior{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"H" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Escape Pod Airlock" + }, +/turf/open/floor/mineral/titanium/blue{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"I" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/blue{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"J" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/powered) +"K" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/turf/closed/wall/shuttle{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 2; + icon_state = "swall_f9" + }, +/area/ruin/powered) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +s +s +s +s +s +s +s +s +"} +(2,1,1) = {" +a +a +a +a +a +a +a +a +a +a +s +s +s +s +s +s +"} +(3,1,1) = {" +a +a +a +a +a +a +a +a +a +a +s +s +s +s +s +s +"} +(4,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +s +s +s +s +s +"} +(5,1,1) = {" +a +a +a +a +a +b +c +b +t +t +t +t +t +s +s +s +"} +(6,1,1) = {" +a +a +a +a +b +b +n +n +t +v +x +B +t +s +s +s +"} +(7,1,1) = {" +a +a +a +b +b +m +o +o +t +w +y +y +D +s +s +s +"} +(8,1,1) = {" +a +b +b +b +c +f +o +q +o +o +z +C +t +s +s +s +"} +(9,1,1) = {" +b +b +f +i +g +f +f +o +o +o +t +t +t +s +s +s +"} +(10,1,1) = {" +b +d +g +j +g +g +f +f +u +o +A +b +a +s +s +s +"} +(11,1,1) = {" +c +e +h +g +l +c +p +r +c +c +c +b +a +a +s +s +"} +(12,1,1) = {" +b +b +f +k +f +b +b +b +b +a +a +a +a +E +H +E +"} +(13,1,1) = {" +a +b +b +b +b +b +a +a +a +a +a +a +a +F +I +F +"} +(14,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +F +I +F +"} +(15,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +G +J +G +"} +(16,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_hierophant.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_hierophant.dmm new file mode 100644 index 0000000..4426c66 --- /dev/null +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_hierophant.dmm @@ -0,0 +1,64 @@ +"a" = (/turf/closed/indestructible/riveted/hierophant,/area/ruin/unpowered/hierophant) +"b" = (/obj/effect/decal/cleanable/blood/tracks,/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"c" = (/obj/effect/decal/cleanable/cobweb,/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"d" = (/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"e" = (/obj/effect/gibspawner/human,/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"f" = (/obj/effect/decal/cleanable/blood/gibs/limb,/obj/effect/decal/cleanable/blood,/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"g" = (/obj/effect/light_emitter{set_cap = 3; set_luminosity = 7},/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"h" = (/obj/effect/decal/cleanable/blood/tracks{tag = "icon-tracks (EAST)"; icon_state = "tracks"; dir = 4},/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"i" = (/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/blood/tracks{tag = "icon-tracks (EAST)"; icon_state = "tracks"; dir = 4},/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"j" = (/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/remains/human,/obj/effect/light_emitter{set_cap = 3; set_luminosity = 5},/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"k" = (/obj/effect/decal/cleanable/blood/tracks{tag = "icon-tracks (SOUTHWEST)"; icon_state = "tracks"; dir = 10},/obj/effect/decal/cleanable/blood,/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"l" = (/obj/effect/light_emitter{set_cap = 3; set_luminosity = 5},/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"m" = (/obj/effect/gibspawner/generic,/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"n" = (/obj/effect/decal/cleanable/blood,/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"o" = (/obj/effect/decal/cleanable/blood/tracks{tag = "icon-tracks (NORTHEAST)"; icon_state = "tracks"; dir = 5},/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"p" = (/obj/effect/light_emitter,/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"q" = (/obj/effect/decal/cleanable/blood/old,/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"r" = (/obj/effect/decal/cleanable/blood/tracks{tag = "icon-tracks (NORTHWEST)"; icon_state = "tracks"; dir = 9},/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"s" = (/obj/effect/decal/cleanable/blood/gibs/limb,/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"t" = (/obj/effect/decal/cleanable/ash,/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"u" = (/obj/effect/decal/cleanable/blood/tracks{tag = "icon-tracks (SOUTHWEST)"; icon_state = "tracks"; dir = 10},/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"v" = (/obj/effect/decal/remains/human,/obj/effect/decal/cleanable/blood,/obj/effect/decal/cleanable/blood/tracks{tag = "icon-tracks (NORTHEAST)"; icon_state = "tracks"; dir = 5},/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"w" = (/obj/effect/gibspawner/human,/obj/effect/decal/cleanable/blood/tracks{tag = "icon-tracks (SOUTHEAST)"; icon_state = "tracks"; dir = 6},/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"x" = (/obj/effect/decal/cleanable/blood/tracks{tag = "icon-tracks (WEST)"; icon_state = "tracks"; dir = 8},/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"y" = (/obj/effect/decal/cleanable/blood/tracks{tag = "icon-tracks (WEST)"; icon_state = "tracks"; dir = 8},/obj/effect/light_emitter{set_cap = 3; set_luminosity = 7},/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"z" = (/obj/effect/decal/cleanable/blood/tracks{tag = "icon-tracks (NORTHWEST)"; icon_state = "tracks"; dir = 9},/obj/effect/decal/cleanable/blood,/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"A" = (/obj/effect/decal/cleanable/blood/tracks{tag = "icon-tracks (SOUTHEAST)"; icon_state = "tracks"; dir = 6},/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"B" = (/mob/living/simple_animal/hostile/megafauna/hierophant,/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"C" = (/obj/effect/decal/cleanable/blood,/obj/effect/decal/cleanable/blood/tracks{tag = "icon-tracks (WEST)"; icon_state = "tracks"; dir = 8},/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"D" = (/obj/effect/decal/remains/human,/obj/effect/decal/cleanable/blood,/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"E" = (/obj/effect/decal/cleanable/blood/gibs/up,/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"F" = (/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/remains/human,/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"G" = (/obj/effect/decal/cleanable/blood/gibs/core,/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"H" = (/obj/effect/decal/cleanable/blood,/obj/effect/decal/cleanable/blood/tracks{tag = "icon-tracks (SOUTHWEST)"; icon_state = "tracks"; dir = 10},/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"I" = (/obj/effect/gibspawner/human,/obj/effect/light_emitter{set_cap = 3; set_luminosity = 5},/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) +"J" = (/obj/effect/decal/cleanable/blood/gibs/down,/turf/open/indestructible/hierophant,/area/ruin/unpowered/hierophant) + +(1,1,1) = {" +aaaaaaaaaaaabaaaaaaaaaaaa +acdddddddddddddddddddddda +adeddfddddddgdddhhhdiddda +addjddddddddkhhddddddldda +adddadddaaaaaaaaadddaddda +addddmhdhddddddddddmddnda +adddddgdddddddddddgddodda +addddddddkdopddfdddbdddda +adqdadddddadddaddddbaddda +adddadddddrdddddddddaddda +adstadddadudhhdvadhwabdda +adddadrxxmddddduddddaddda +xxyoazApddddBddddpddadyxC +addbabddddddddtdddddaddda +addbabddadDdEdddadddafdda +adddabddddddndddddqdaddda +adddabddddadddadddddadnda +adqedbddsdddpddddddddddda +addddAgddddeddddddgFdddGa +addddmdddddHdehddxdedddda +adddadddaaaaaaaaadddaddda +addlddddddddrdddddAddIdda +adddddJdddddgdddqddddddda +adnddddddFddbdddddddnddda +aaaaaaaaaaaabaaaaaaaaaaaa +"} diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_pizzaparty.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_pizzaparty.dmm new file mode 100644 index 0000000..275c768 --- /dev/null +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_pizzaparty.dmm @@ -0,0 +1,792 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"b" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"c" = ( +/obj/structure/lattice, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"d" = ( +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + }, +/area/ruin/unpowered) +"e" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"f" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/box/cups, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"g" = ( +/obj/structure/reagent_dispensers/water_cooler{ + name = "punch cooler"; + reagent_id = "bacchus_blessing" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"h" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"i" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"j" = ( +/obj/item/weapon/reagent_containers/food/snacks/pizzaslice/mushroom, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"k" = ( +/obj/structure/table/wood, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/pizzabox/margherita = 3, /obj/item/pizzabox/meat = 3, /obj/item/pizzabox/mushroom = 3, /obj/item/pizzabox/bomb = 1); + lootdoubles = 0; + name = "pizza spawner" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"l" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/structure/table/wood, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/pizzabox/margherita = 3, /obj/item/pizzabox/meat = 3, /obj/item/pizzabox/mushroom = 3, /obj/item/pizzabox/bomb = 1); + lootdoubles = 0; + name = "pizza spawner" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"m" = ( +/obj/item/chair/wood/wings, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"n" = ( +/obj/structure/glowshroom/single, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"o" = ( +/obj/item/trash/plate, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"p" = ( +/obj/effect/decal/remains/human, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"q" = ( +/obj/item/chair/wood/wings, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"r" = ( +/obj/structure/chair/wood/wings, +/obj/effect/decal/remains/human, +/obj/item/clothing/head/festive{ + desc = "A festive party hat with the name 'timmy' scribbled on the front."; + name = "party hat" + }, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"s" = ( +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"t" = ( +/obj/structure/chair/wood/wings, +/obj/effect/decal/remains/human, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"u" = ( +/obj/structure/glowshroom/single, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"v" = ( +/obj/structure/lattice, +/obj/item/chair/wood/wings, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"w" = ( +/obj/item/weapon/kitchen/fork, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"x" = ( +/obj/structure/table/wood, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/pizzabox/margherita = 3, /obj/item/pizzabox/meat = 3, /obj/item/pizzabox/mushroom = 3, /obj/item/pizzabox/bomb = 1); + lootdoubles = 0; + name = "pizza spawner" + }, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"y" = ( +/obj/structure/table/wood, +/obj/item/trash/plate, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"z" = ( +/obj/structure/table/wood, +/obj/structure/glowshroom/single, +/obj/item/weapon/a_gift, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"A" = ( +/obj/structure/table/wood, +/obj/item/trash/plate, +/obj/item/weapon/kitchen/fork, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"B" = ( +/obj/structure/lattice, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/space) +"C" = ( +/obj/structure/chair/wood/wings{ + tag = "icon-wooden_chair_wings (EAST)"; + icon_state = "wooden_chair_wings"; + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"D" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/snacks/pizzaslice/margherita, +/obj/item/trash/plate, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"E" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/snacks/pizzaslice/meat, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"F" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/snacks/store/cake/birthday, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"G" = ( +/obj/structure/table/wood, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"H" = ( +/obj/item/chair/wood/wings, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"I" = ( +/obj/item/weapon/kitchen/fork, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"J" = ( +/obj/structure/glowshroom/single, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"K" = ( +/obj/structure/chair/wood/wings{ + tag = "icon-wooden_chair_wings (NORTH)"; + icon_state = "wooden_chair_wings"; + dir = 1 + }, +/obj/effect/decal/remains/human, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"L" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"M" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/a_gift, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"N" = ( +/obj/structure/lattice, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"O" = ( +/obj/item/weapon/kitchen/knife, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"P" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"Q" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +a +a +b +b +a +a +b +b +b +b +b +b +b +b +a +a +a +a +a +"} +(3,1,1) = {" +a +b +b +b +b +b +b +b +b +b +b +c +c +b +b +b +b +a +a +a +"} +(4,1,1) = {" +a +b +b +b +b +b +b +b +b +c +c +e +e +c +c +b +b +b +a +a +"} +(5,1,1) = {" +a +b +b +b +b +d +b +c +c +e +h +h +e +Q +e +d +b +b +a +a +"} +(6,1,1) = {" +a +a +b +b +b +d +b +m +e +w +h +w +h +h +e +d +b +b +b +a +"} +(7,1,1) = {" +a +a +b +b +b +d +f +n +h +h +c +e +M +e +c +b +b +b +b +a +"} +(8,1,1) = {" +a +b +b +b +b +d +g +o +h +h +C +J +h +d +b +b +b +b +b +a +"} +(9,1,1) = {" +a +b +b +b +b +e +h +p +q +x +D +K +M +d +b +b +b +b +b +a +"} +(10,1,1) = {" +a +b +b +b +c +e +i +h +r +y +E +h +h +c +b +b +b +b +b +a +"} +(11,1,1) = {" +a +b +b +b +c +e +j +h +s +z +F +q +N +c +b +b +b +b +b +a +"} +(12,1,1) = {" +a +b +b +b +b +e +e +h +t +A +G +q +h +c +b +b +b +b +b +a +"} +(13,1,1) = {" +a +b +b +b +b +d +k +h +s +s +H +h +O +d +b +b +b +b +b +a +"} +(14,1,1) = {" +a +b +b +b +b +d +k +h +u +s +s +o +n +d +b +b +b +b +a +a +"} +(15,1,1) = {" +a +b +b +b +b +d +l +i +h +e +I +L +P +d +b +b +b +b +a +a +"} +(16,1,1) = {" +a +b +b +b +b +d +d +e +e +N +e +e +d +d +b +b +b +b +a +a +"} +(17,1,1) = {" +a +a +b +b +b +b +b +c +v +b +c +b +b +b +b +b +b +b +a +a +"} +(18,1,1) = {" +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +a +"} +(19,1,1) = {" +a +a +a +a +a +b +b +b +b +b +b +b +b +a +a +a +a +a +a +a +"} +(20,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_pride.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_pride.dmm new file mode 100644 index 0000000..1e5537b --- /dev/null +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_pride.dmm @@ -0,0 +1,270 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"b" = ( +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"c" = ( +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"d" = ( +/turf/closed/wall/mineral/diamond{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"e" = ( +/obj/structure/mirror{ + pixel_x = -32 + }, +/turf/open/floor/mineral/silver{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"f" = ( +/obj/structure/mirror{ + pixel_x = 32 + }, +/turf/open/floor/mineral/silver{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"g" = ( +/turf/open/floor/mineral/silver{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"h" = ( +/obj/structure/mirror/magic/pride, +/turf/closed/wall/mineral/diamond{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"i" = ( +/obj/machinery/door/airlock/diamond, +/turf/open/floor/mineral/silver{ + baseturf = /turf/open/floor/plating/lava/smooth; + blocks_air = 1 + }, +/area/ruin/powered) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +a +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +a +"} +(3,1,1) = {" +b +c +c +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +c +a +"} +(4,1,1) = {" +c +c +d +d +d +e +e +e +e +e +e +e +e +e +e +e +e +d +c +a +"} +(5,1,1) = {" +c +d +d +d +d +d +g +g +g +g +g +g +g +g +g +g +g +d +a +a +"} +(6,1,1) = {" +c +d +d +d +d +d +h +g +g +g +g +g +g +g +g +g +g +i +a +a +"} +(7,1,1) = {" +c +d +d +d +d +d +g +g +g +g +g +g +g +g +g +g +g +d +c +a +"} +(8,1,1) = {" +c +c +d +d +d +f +f +f +f +f +f +f +f +f +f +f +f +d +c +a +"} +(9,1,1) = {" +b +c +c +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +c +a +"} +(10,1,1) = {" +b +b +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +a +"} diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_prisoner_crash.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_prisoner_crash.dmm new file mode 100644 index 0000000..1900c39 --- /dev/null +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_prisoner_crash.dmm @@ -0,0 +1,591 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"b" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"c" = ( +/obj/item/weapon/shard, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"d" = ( +/obj/item/weapon/shard{ + icon_state = "medium" + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"e" = ( +/turf/closed/wall/mineral/plastitanium{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/lavaland/surface/outdoors) +"f" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion"; + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"g" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion"; + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered) +"h" = ( +/turf/closed/wall/mineral/plastitanium{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/unpowered) +"i" = ( +/turf/open/floor/mineral/plastitanium/brig{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/lavaland/surface/outdoors) +"j" = ( +/obj/item/weapon/pickaxe, +/obj/item/weapon/pickaxe, +/obj/item/weapon/pickaxe, +/obj/item/weapon/pickaxe, +/obj/item/device/flashlight/lantern, +/turf/open/floor/mineral/plastitanium/brig{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"k" = ( +/obj/effect/mob_spawn/human/prisoner_transport, +/turf/open/floor/mineral/plastitanium/brig{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"l" = ( +/obj/item/weapon/shard, +/turf/open/floor/mineral/plastitanium/brig{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"m" = ( +/obj/effect/mob_spawn/human/nanotrasensoldier, +/obj/effect/decal/cleanable/blood, +/obj/item/device/flashlight/seclite, +/obj/effect/light_emitter, +/turf/open/floor/mineral/plastitanium/brig{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"n" = ( +/obj/item/weapon/gun/projectile/automatic/pistol/m1911, +/turf/open/floor/mineral/plastitanium/brig{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"o" = ( +/turf/open/floor/mineral/plastitanium/brig{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"p" = ( +/obj/machinery/door/airlock/shuttle, +/turf/open/floor/mineral/plastitanium/brig{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"q" = ( +/obj/item/weapon/shard, +/turf/open/floor/mineral/plastitanium/brig{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/lavaland/surface/outdoors) +"r" = ( +/obj/machinery/door/airlock/shuttle, +/turf/open/floor/plasteel/shuttle/red{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "o2=16;n2=23" + }, +/area/ruin/unpowered) +"s" = ( +/obj/effect/mob_spawn/human/nanotrasensoldier, +/obj/item/weapon/gun/projectile/automatic/pistol/m1911, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/mineral/plastitanium/brig{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"t" = ( +/obj/structure/closet/crate/internals, +/obj/item/weapon/crowbar/large, +/turf/open/floor/mineral/plastitanium/brig{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"u" = ( +/obj/structure/lattice, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"v" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"w" = ( +/obj/item/weapon/shard{ + icon_state = "small" + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"x" = ( +/obj/item/weapon/gun/projectile/automatic/pistol/m1911, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"y" = ( +/obj/effect/mob_spawn/human/nanotrasensoldier, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"z" = ( +/obj/effect/decal/cleanable/blood, +/obj/item/device/flashlight/seclite, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) + +(1,1,1) = {" +a +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +"} +(2,1,1) = {" +b +a +b +b +b +a +a +b +b +b +b +b +b +b +b +b +b +b +a +b +"} +(3,1,1) = {" +b +b +c +b +b +a +a +b +b +b +b +b +b +b +b +b +b +b +b +a +"} +(4,1,1) = {" +b +b +b +b +b +b +a +b +b +g +h +g +h +g +b +b +b +w +b +b +"} +(5,1,1) = {" +b +b +a +a +a +b +b +b +b +h +h +h +h +h +b +b +b +x +b +b +"} +(6,1,1) = {" +b +b +a +a +a +b +b +e +f +h +j +m +t +h +f +e +b +b +y +b +"} +(7,1,1) = {" +b +b +b +b +b +b +b +b +e +h +k +n +k +h +e +b +b +v +z +b +"} +(8,1,1) = {" +a +b +b +b +b +b +b +a +a +h +k +o +k +h +b +b +v +v +b +b +"} +(9,1,1) = {" +b +b +b +d +b +b +b +a +a +h +k +o +k +h +b +b +v +v +b +b +"} +(10,1,1) = {" +b +b +b +b +b +b +b +a +a +h +k +o +k +h +b +b +b +b +a +a +"} +(11,1,1) = {" +a +b +b +b +b +b +b +a +a +h +h +p +h +h +b +b +b +b +a +a +"} +(12,1,1) = {" +a +b +b +b +b +b +b +b +b +e +i +i +i +u +b +b +b +b +a +a +"} +(13,1,1) = {" +b +b +b +a +b +b +b +a +b +i +i +q +i +u +b +b +b +c +a +a +"} +(14,1,1) = {" +b +a +a +b +b +a +a +a +a +i +i +i +i +i +b +b +b +b +a +a +"} +(15,1,1) = {" +b +b +b +a +a +a +a +a +a +h +h +p +e +e +b +b +b +b +a +a +"} +(16,1,1) = {" +b +b +b +a +a +a +a +a +a +h +l +s +a +e +b +b +b +b +a +a +"} +(17,1,1) = {" +b +b +b +a +a +a +a +a +a +e +a +a +a +e +b +b +b +b +a +a +"} +(18,1,1) = {" +b +b +b +b +b +a +a +a +a +a +a +a +e +a +a +b +a +a +a +a +"} +(19,1,1) = {" +b +b +b +b +b +a +a +a +a +a +a +a +a +b +b +b +a +a +a +a +"} +(20,1,1) = {" +b +b +b +b +b +a +a +a +a +a +a +a +a +b +b +b +b +b +a +a +"} diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm new file mode 100644 index 0000000..810310c --- /dev/null +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm @@ -0,0 +1,695 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"b" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"c" = ( +/turf/closed/wall/r_wall, +/area/ruin/powered) +"d" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion"; + dir = 8 + }, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"e" = ( +/obj/machinery/smartfridge, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"f" = ( +/obj/structure/closet/crate/hydroponics, +/obj/item/weapon/cultivator, +/obj/item/weapon/cultivator, +/obj/item/weapon/cultivator, +/obj/item/weapon/cultivator, +/obj/item/weapon/shovel/spade, +/obj/item/weapon/shovel/spade, +/obj/item/weapon/shovel/spade, +/obj/item/weapon/shovel/spade, +/obj/item/weapon/hatchet, +/obj/item/weapon/hatchet, +/obj/item/weapon/hatchet, +/obj/item/weapon/hatchet, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"g" = ( +/obj/machinery/hydroponics/constructable, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"h" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/seed_vault, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"i" = ( +/obj/machinery/plantgenes/seedvault, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"j" = ( +/obj/item/weapon/hatchet, +/obj/item/weapon/storage/bag/plants, +/obj/item/weapon/reagent_containers/glass/bucket, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"k" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/bag/plants, +/obj/item/weapon/storage/bag/plants, +/obj/item/weapon/storage/bag/plants, +/obj/item/weapon/storage/bag/plants, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"l" = ( +/obj/structure/table/wood, +/obj/item/weapon/gun/energy/floragun, +/obj/item/weapon/gun/energy/floragun, +/obj/item/weapon/gun/energy/floragun, +/obj/item/weapon/gun/energy/floragun, +/obj/item/weapon/storage/box/disks_plantgene, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"m" = ( +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"n" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion"; + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"o" = ( +/obj/effect/mob_spawn/human/seed_vault, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"p" = ( +/obj/structure/sink{ + icon_state = "sink"; + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"q" = ( +/obj/machinery/vending/hydronutrients, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"r" = ( +/obj/machinery/vending/hydroseeds, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"s" = ( +/obj/machinery/reagentgrinder{ + pixel_y = 5 + }, +/obj/structure/table/glass, +/obj/item/weapon/reagent_containers/glass/beaker/bluespace, +/obj/item/weapon/reagent_containers/glass/beaker/bluespace, +/obj/item/weapon/reagent_containers/glass/beaker/bluespace, +/obj/item/weapon/reagent_containers/glass/beaker/bluespace, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"t" = ( +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"u" = ( +/obj/machinery/door/airlock, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"v" = ( +/obj/machinery/door/airlock/external, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"w" = ( +/obj/machinery/door/airlock/external, +/obj/structure/fans/tiny, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"x" = ( +/obj/structure/disposalpipe/trunk, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"y" = ( +/obj/machinery/seed_extractor, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"z" = ( +/obj/machinery/biogenerator, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"A" = ( +/obj/machinery/chem_dispenser/mutagen, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"B" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"C" = ( +/obj/structure/closet/crate/hydroponics, +/obj/item/clothing/under/rank/hydroponics, +/obj/item/clothing/under/rank/hydroponics, +/obj/item/clothing/under/rank/hydroponics, +/obj/item/clothing/under/rank/hydroponics, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"D" = ( +/obj/machinery/chem_master/condimaster, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"E" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/glass/bucket, +/obj/item/weapon/reagent_containers/glass/bucket, +/obj/item/weapon/reagent_containers/glass/bucket, +/obj/item/weapon/reagent_containers/glass/bucket, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"F" = ( +/obj/item/weapon/storage/toolbox/syndicate, +/obj/structure/table/wood, +/turf/open/floor/plasteel/freezer{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"G" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall/r_wall, +/area/ruin/powered) +"H" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"I" = ( +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) + +(1,1,1) = {" +a +a +a +a +a +a +a +c +c +c +c +c +c +a +a +a +a +a +b +b +"} +(2,1,1) = {" +a +a +a +a +a +a +a +c +o +o +o +o +c +a +a +a +a +a +b +b +"} +(3,1,1) = {" +b +b +a +a +a +a +c +c +m +m +m +m +c +c +a +a +a +b +a +b +"} +(4,1,1) = {" +b +b +a +a +a +c +c +c +c +u +u +c +c +c +c +a +a +a +a +a +"} +(5,1,1) = {" +a +a +a +a +a +c +e +m +p +m +m +p +m +p +c +a +a +a +a +a +"} +(6,1,1) = {" +a +a +a +a +a +c +f +m +m +m +m +m +m +C +c +a +a +a +a +a +"} +(7,1,1) = {" +a +a +a +a +a +c +g +m +g +m +m +g +m +g +c +a +a +a +a +a +"} +(8,1,1) = {" +a +a +a +a +a +c +h +m +q +m +m +x +B +B +G +H +a +a +a +a +"} +(9,1,1) = {" +a +a +a +a +a +c +i +m +e +m +m +y +m +m +c +I +a +a +a +a +"} +(10,1,1) = {" +a +a +a +a +a +c +g +m +r +m +m +z +m +g +c +b +a +a +a +a +"} +(11,1,1) = {" +a +a +a +a +a +c +j +m +s +m +m +A +m +D +c +a +a +a +a +a +"} +(12,1,1) = {" +a +a +a +a +a +c +g +m +m +m +m +m +m +g +c +a +a +a +a +a +"} +(13,1,1) = {" +a +a +a +a +a +c +k +m +m +g +g +m +m +E +c +a +a +a +a +a +"} +(14,1,1) = {" +a +a +a +a +a +c +l +m +t +m +m +t +m +F +c +a +a +a +a +a +"} +(15,1,1) = {" +a +a +a +a +a +c +c +c +c +v +v +c +c +c +c +a +a +a +a +a +"} +(16,1,1) = {" +a +a +b +a +a +d +c +n +c +m +m +c +n +c +n +a +a +a +a +a +"} +(17,1,1) = {" +a +a +a +a +a +b +a +b +c +w +w +c +b +b +b +a +a +a +b +b +"} +(18,1,1) = {" +a +a +a +b +b +b +b +b +b +b +b +b +b +b +b +a +a +a +b +b +"} +(19,1,1) = {" +a +a +a +a +b +b +a +b +b +b +b +b +b +b +a +a +a +b +b +b +"} +(20,1,1) = {" +a +a +a +b +b +b +a +b +b +b +b +b +b +b +a +a +a +b +b +a +"} diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_sloth.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_sloth.dmm new file mode 100644 index 0000000..b973f30 --- /dev/null +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_sloth.dmm @@ -0,0 +1,654 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/closed/indestructible/riveted{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/unpowered) +"b" = ( +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/ruin/unpowered) +"c" = ( +/obj/item/weapon/paper{ + desc = "have not gotten around to finishing my cursed item yet sorry - sloth"; + name = "note from sloth" + }, +/turf/open/floor/sepia{ + baseturf = /turf/open/floor/plating/lava/smooth; + blocks_air = 0; + slowdown = 10 + }, +/area/ruin/unpowered) +"d" = ( +/turf/open/floor/sepia{ + baseturf = /turf/open/floor/plating/lava/smooth; + blocks_air = 0; + slowdown = 10 + }, +/area/ruin/unpowered) +"e" = ( +/obj/machinery/door/airlock/wood, +/turf/open/floor/sepia{ + baseturf = /turf/open/floor/plating/lava/smooth; + blocks_air = 0; + slowdown = 10 + }, +/area/ruin/unpowered) +"f" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/snacks/grown/citrus/orange, +/turf/open/floor/sepia{ + baseturf = /turf/open/floor/plating/lava/smooth; + blocks_air = 0; + slowdown = 10 + }, +/area/ruin/unpowered) +"g" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/brown, +/turf/open/floor/sepia{ + baseturf = /turf/open/floor/plating/lava/smooth; + blocks_air = 0; + slowdown = 10 + }, +/area/ruin/unpowered) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +b +b +b +b +b +b +b +b +a +"} +(3,1,1) = {" +a +b +a +a +a +a +a +a +b +a +"} +(4,1,1) = {" +a +b +a +c +d +d +f +a +b +a +"} +(5,1,1) = {" +a +b +a +d +d +d +g +a +b +a +"} +(6,1,1) = {" +a +b +a +d +a +a +a +a +b +a +"} +(7,1,1) = {" +a +b +a +d +d +d +d +a +b +a +"} +(8,1,1) = {" +a +b +a +a +a +a +d +a +b +a +"} +(9,1,1) = {" +a +b +a +d +d +d +d +a +b +a +"} +(10,1,1) = {" +a +b +a +d +a +a +a +a +b +a +"} +(11,1,1) = {" +a +b +a +d +d +d +d +a +b +a +"} +(12,1,1) = {" +a +b +a +a +a +a +d +a +b +a +"} +(13,1,1) = {" +a +b +a +d +d +d +d +a +b +a +"} +(14,1,1) = {" +a +b +a +d +a +a +a +a +b +a +"} +(15,1,1) = {" +a +b +a +d +d +d +d +a +b +a +"} +(16,1,1) = {" +a +b +a +a +a +a +d +a +b +a +"} +(17,1,1) = {" +a +b +a +d +d +d +d +a +b +a +"} +(18,1,1) = {" +a +b +a +d +a +a +a +a +b +a +"} +(19,1,1) = {" +a +b +a +d +d +d +d +a +b +a +"} +(20,1,1) = {" +a +b +a +a +a +a +d +a +b +a +"} +(21,1,1) = {" +a +b +a +d +d +d +d +a +b +a +"} +(22,1,1) = {" +a +b +a +d +a +a +a +a +b +a +"} +(23,1,1) = {" +a +b +a +d +d +d +d +a +b +a +"} +(24,1,1) = {" +a +b +a +a +a +a +d +a +b +a +"} +(25,1,1) = {" +a +b +a +d +d +d +d +a +b +a +"} +(26,1,1) = {" +a +b +a +d +a +a +a +a +b +a +"} +(27,1,1) = {" +a +b +a +d +d +d +d +a +b +a +"} +(28,1,1) = {" +a +b +a +a +a +a +d +a +b +a +"} +(29,1,1) = {" +a +b +a +d +d +d +d +a +b +a +"} +(30,1,1) = {" +a +b +a +d +a +a +a +a +b +a +"} +(31,1,1) = {" +a +b +a +d +d +d +d +a +b +a +"} +(32,1,1) = {" +a +b +a +a +a +a +d +a +b +a +"} +(33,1,1) = {" +a +b +a +d +d +d +d +a +b +a +"} +(34,1,1) = {" +a +b +a +d +a +a +a +a +b +a +"} +(35,1,1) = {" +a +b +a +d +d +d +d +a +b +a +"} +(36,1,1) = {" +a +b +a +a +a +a +d +a +b +a +"} +(37,1,1) = {" +a +b +a +d +d +d +d +a +b +a +"} +(38,1,1) = {" +a +b +a +d +a +a +a +a +b +a +"} +(39,1,1) = {" +a +b +a +d +d +d +d +a +b +a +"} +(40,1,1) = {" +a +b +a +a +a +a +d +a +b +a +"} +(41,1,1) = {" +a +b +a +d +d +d +d +a +b +a +"} +(42,1,1) = {" +a +b +a +d +a +a +a +a +b +a +"} +(43,1,1) = {" +a +b +a +d +d +d +d +a +b +a +"} +(44,1,1) = {" +a +b +a +a +a +a +d +a +b +a +"} +(45,1,1) = {" +a +b +a +d +d +d +d +a +b +a +"} +(46,1,1) = {" +a +b +a +d +a +a +a +a +b +a +"} +(47,1,1) = {" +a +b +a +d +d +d +d +a +b +a +"} +(48,1,1) = {" +a +b +a +a +a +a +d +a +b +a +"} +(49,1,1) = {" +a +b +a +d +d +d +d +a +b +a +"} +(50,1,1) = {" +a +a +a +a +e +e +a +a +a +a +"} diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_survivalpod.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_survivalpod.dmm new file mode 100644 index 0000000..5d7751c --- /dev/null +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_survivalpod.dmm @@ -0,0 +1,372 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"b" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"c" = ( +/obj/structure/sign/mining/survival{ + pixel_y = -32 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"d" = ( +/turf/closed/wall/shuttle/survival/pod{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"e" = ( +/obj/structure/sign/mining/survival{ + dir = 4; + icon_state = "survival"; + pixel_x = 32; + tag = "icon-survival (EAST)" + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"f" = ( +/obj/structure/fans, +/turf/open/floor/pod/dark{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"g" = ( +/obj/machinery/smartfridge/survival_pod/empty, +/turf/open/floor/pod/dark{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"h" = ( +/obj/item/device/gps/computer, +/obj/structure/tubes, +/turf/open/floor/pod/dark{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"i" = ( +/obj/structure/sign/mining/survival{ + dir = 8; + icon_state = "survival"; + pixel_x = -32; + tag = "icon-survival (WEST)" + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"j" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"k" = ( +/obj/machinery/sleeper/survival_pod, +/turf/open/floor/pod/dark{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"l" = ( +/obj/item/weapon/pickaxe, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/pod/dark{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"m" = ( +/obj/structure/bed/pod, +/obj/item/weapon/bedsheet/black, +/obj/structure/tubes, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/pod/dark{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"n" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"o" = ( +/obj/effect/decal/cleanable/blood, +/mob/living/simple_animal/hostile/asteroid/goliath/beast{ + health = 0 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"p" = ( +/obj/structure/table/survival_pod, +/obj/item/weapon/kitchen/knife/combat/survival, +/turf/open/floor/pod/dark{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"q" = ( +/obj/effect/mob_spawn/human/miner/explorer{ + brute_damage = 150; + oxy_damage = 50 + }, +/obj/effect/decal/cleanable/blood, +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/blood/footprints{ + tag = "icon-blood1 (NORTH)"; + icon_state = "blood1"; + dir = 1 + }, +/turf/open/floor/pod/dark{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"r" = ( +/obj/structure/tubes, +/obj/item/weapon/crowbar, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/pod/dark{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"s" = ( +/obj/effect/decal/cleanable/blood/footprints{ + icon_state = "blood1" + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"t" = ( +/obj/effect/decal/cleanable/blood/footprints{ + tag = "icon-blood1 (NORTH)"; + icon_state = "blood1"; + dir = 1 + }, +/obj/machinery/door/airlock/survival_pod, +/turf/open/floor/pod/dark{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/ruin/powered) +"u" = ( +/obj/effect/decal/cleanable/blood/footprints{ + tag = "icon-blood1 (WEST)"; + icon_state = "blood1"; + dir = 8 + }, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"v" = ( +/obj/effect/decal/cleanable/blood/footprints{ + tag = "icon-blood1 (WEST)"; + icon_state = "blood1"; + dir = 8 + }, +/obj/effect/decal/cleanable/blood/footprints{ + icon_state = "blood1" + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"w" = ( +/obj/structure/sign/mining/survival{ + pixel_y = 32 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"x" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/blood/footprints{ + tag = "icon-blood1 (NORTH)"; + icon_state = "blood1"; + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"y" = ( +/obj/structure/sign/mining{ + pixel_y = 32 + }, +/obj/effect/decal/cleanable/blood/footprints{ + tag = "icon-blood1 (WEST)"; + icon_state = "blood1"; + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"z" = ( +/obj/effect/decal/cleanable/blood/footprints{ + tag = "icon-blood1 (WEST)"; + icon_state = "blood1"; + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"A" = ( +/obj/effect/decal/cleanable/blood/footprints{ + icon_state = "blood1" + }, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +a +a +a +b +b +b +b +b +a +a +a +"} +(3,1,1) = {" +a +a +a +b +b +e +b +e +b +b +a +a +"} +(4,1,1) = {" +a +a +a +b +d +d +d +d +d +b +a +a +"} +(5,1,1) = {" +a +a +b +c +d +f +k +p +d +w +b +b +"} +(6,1,1) = {" +a +a +b +b +d +g +l +q +t +x +b +b +"} +(7,1,1) = {" +a +b +b +c +d +h +m +r +d +y +b +b +"} +(8,1,1) = {" +a +a +b +b +d +d +d +d +d +z +j +j +"} +(9,1,1) = {" +a +a +a +b +b +i +b +i +u +A +b +b +"} +(10,1,1) = {" +a +a +a +b +b +j +n +s +v +a +a +a +"} +(11,1,1) = {" +a +a +a +a +a +a +o +j +b +a +a +a +"} +(12,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +"} diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_ufo_crash.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_ufo_crash.dmm new file mode 100644 index 0000000..a3a5f90 --- /dev/null +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_ufo_crash.dmm @@ -0,0 +1,573 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"b" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"c" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/turf/closed/indestructible/abductor{ + icon_state = "alien20" + }, +/area/lavaland/surface/outdoors) +"d" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/turf/closed/indestructible/abductor{ + icon_state = "alien21" + }, +/area/ruin/unpowered) +"e" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/turf/closed/indestructible/abductor{ + icon_state = "alien22" + }, +/area/ruin/unpowered) +"f" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/turf/closed/indestructible/abductor{ + icon_state = "alien23" + }, +/area/ruin/unpowered) +"g" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/turf/closed/indestructible/abductor{ + icon_state = "alien24" + }, +/area/lavaland/surface/outdoors) +"h" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/turf/closed/indestructible/abductor{ + icon_state = "alien16" + }, +/area/lavaland/surface/outdoors) +"i" = ( +/turf/closed/indestructible/abductor{ + icon_state = "alien17" + }, +/area/ruin/unpowered) +"j" = ( +/obj/machinery/abductor/experiment{ + team = 100 + }, +/turf/open/floor/plating/abductor{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "o2=16;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"k" = ( +/turf/open/floor/plating/abductor{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "o2=16;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"l" = ( +/obj/machinery/abductor/pad{ + team = 100 + }, +/turf/open/floor/plating/abductor{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "o2=16;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"m" = ( +/turf/closed/indestructible/abductor{ + icon_state = "alien18" + }, +/area/ruin/unpowered) +"n" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/turf/closed/indestructible/abductor{ + icon_state = "alien19" + }, +/area/lavaland/surface/outdoors) +"o" = ( +/obj/item/weapon/hemostat/alien, +/turf/open/floor/plating/abductor{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "o2=16;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"p" = ( +obj/effect/mob_spawn/human/abductor, +/turf/open/floor/plating/abductor{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "o2=16;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"q" = ( +/obj/structure/closet/abductor, +/turf/open/floor/plating/abductor{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "o2=16;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"r" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/turf/closed/indestructible/abductor{ + icon_state = "alien14" + }, +/area/ruin/unpowered) +"s" = ( +/obj/structure/table/optable/abductor, +/obj/item/weapon/cautery/alien, +/turf/open/floor/plating/abductor{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "o2=16;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"t" = ( +/obj/structure/table/abductor, +/obj/item/weapon/storage/box/alienhandcuffs, +/turf/open/floor/plating/abductor{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "o2=16;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"u" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/turf/closed/indestructible/abductor{ + icon_state = "alien12" + }, +/area/ruin/unpowered) +"v" = ( +/obj/item/weapon/scalpel/alien, +/obj/item/weapon/surgical_drapes, +/turf/open/floor/plating/abductor{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "o2=16;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"w" = ( +/obj/item/weapon/retractor/alien, +/obj/item/weapon/paper/abductor, +/turf/open/floor/plating/abductor{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "o2=16;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"x" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/turf/closed/indestructible/abductor{ + icon_state = "alien10" + }, +/area/ruin/unpowered) +"y" = ( +/obj/machinery/abductor/gland_dispenser, +/turf/open/floor/plating/abductor{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "o2=16;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"z" = ( +/obj/structure/table/abductor, +/obj/item/weapon/surgicaldrill/alien, +/obj/item/weapon/circular_saw/alien, +/turf/open/floor/plating/abductor{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "o2=16;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"A" = ( +/obj/structure/bed/abductor, +/turf/open/floor/plating/abductor{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "o2=16;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"B" = ( +/turf/closed/indestructible/abductor{ + icon_state = "alien8" + }, +/area/ruin/unpowered) +"C" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/turf/closed/indestructible/abductor{ + icon_state = "alien9" + }, +/area/lavaland/surface/outdoors) +"D" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/turf/closed/indestructible/abductor{ + icon_state = "alien2" + }, +/area/ruin/unpowered) +"E" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/turf/closed/indestructible/abductor{ + icon_state = "alien3" + }, +/area/ruin/unpowered) +"F" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/turf/closed/indestructible/abductor{ + icon_state = "alien4" + }, +/area/ruin/unpowered) +"G" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/turf/closed/indestructible/abductor{ + icon_state = "alien5" + }, +/area/lavaland/surface/outdoors) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +a +a +a +a +a +a +a +a +a +"} +(3,1,1) = {" +a +a +a +h +a +a +a +a +a +a +"} +(4,1,1) = {" +a +a +c +i +a +a +a +a +a +a +"} +(5,1,1) = {" +a +a +d +j +k +k +a +y +D +a +"} +(6,1,1) = {" +a +a +e +k +o +s +v +z +E +a +"} +(7,1,1) = {" +a +a +f +l +p +k +w +A +F +a +"} +(8,1,1) = {" +a +a +g +m +q +t +q +B +G +a +"} +(9,1,1) = {" +a +a +b +n +r +u +x +C +b +a +"} +(10,1,1) = {" +a +a +b +b +b +b +b +b +a +a +"} +(11,1,1) = {" +a +a +b +b +b +b +b +b +a +a +"} +(12,1,1) = {" +a +a +b +b +b +b +b +b +a +a +"} +(13,1,1) = {" +a +a +b +b +b +b +b +b +a +a +"} +(14,1,1) = {" +a +a +b +b +b +b +b +b +a +a +"} +(15,1,1) = {" +a +a +b +b +b +b +b +b +a +a +"} +(16,1,1) = {" +a +a +b +b +b +b +b +b +a +a +"} +(17,1,1) = {" +a +b +b +b +b +b +b +b +a +a +"} +(18,1,1) = {" +a +a +b +b +b +b +b +b +a +a +"} +(19,1,1) = {" +a +a +b +b +b +b +b +b +b +a +"} +(20,1,1) = {" +a +a +b +b +b +b +b +b +a +a +"} +(21,1,1) = {" +a +b +b +b +b +b +b +b +a +a +"} +(22,1,1) = {" +a +b +b +b +b +b +b +b +a +a +"} +(23,1,1) = {" +a +a +b +b +b +b +b +b +a +a +"} +(24,1,1) = {" +a +a +b +b +b +b +b +b +a +a +"} +(25,1,1) = {" +a +a +b +b +b +b +b +b +a +a +"} +(26,1,1) = {" +a +a +b +b +b +b +b +b +a +a +"} +(27,1,1) = {" +a +a +b +b +b +b +b +b +a +a +"} +(28,1,1) = {" +a +b +b +b +b +b +b +b +a +a +"} +(29,1,1) = {" +a +b +b +b +b +b +b +b +a +a +"} +(30,1,1) = {" +a +b +b +b +b +b +b +b +b +a +"} diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_ww_vault.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_ww_vault.dmm new file mode 100644 index 0000000..56d0ad8 --- /dev/null +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_ww_vault.dmm @@ -0,0 +1,10005 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"b" = ( +/turf/closed/indestructible, +/area/ruin/powered) +"c" = ( +/turf/open/floor/engine/cult, +/area/ruin/powered) +"d" = ( +/obj/structure/destructible/cult/pylon, +/turf/open/floor/engine/cult, +/area/ruin/powered) +"e" = ( +/turf/open/floor/plating{ + icon_state = "cultdamage5" + }, +/area/ruin/powered) +"f" = ( +/mob/living/simple_animal/hostile/faithless, +/turf/open/floor/engine/cult, +/area/ruin/powered) +"g" = ( +/turf/open/floor/plasteel/circuit/off, +/area/ruin/powered) +"h" = ( +/turf/closed/indestructible{ + desc = "The patterns engraved on the wall seem to shift as you try to focus on them. You feel sick."; + icon = 'icons/turf/walls/cult_wall.dmi'; + icon_state = "cult" + }, +/area/ruin/powered) +"i" = ( +/turf/open/floor/plating{ + icon_state = "cultdamage3" + }, +/area/ruin/powered) +"j" = ( +/turf/open/floor/plating{ + icon_state = "cultdamage6" + }, +/area/ruin/powered) +"k" = ( +/obj/effect/gateway, +/turf/open/floor/engine/cult, +/area/ruin/powered) +"l" = ( +/mob/living/simple_animal/hostile/faithless, +/turf/open/floor/plasteel/circuit/off, +/area/ruin/powered) +"m" = ( +/obj/machinery/wish_granter_dark, +/turf/open/floor/plasteel/circuit/gcircuit/off, +/area/ruin/powered) +"n" = ( +/turf/open/floor/plasteel/circuit/gcircuit/off, +/area/ruin/powered) +"o" = ( +/obj/structure/destructible/cult/pylon, +/turf/open/floor/plasteel/circuit/gcircuit/off, +/area/ruin/powered) +"p" = ( +/obj/structure/signpost, +/turf/open/floor/plasteel/circuit/gcircuit/off, +/area/ruin/powered) +"q" = ( +/obj/effect/meatgrinder, +/turf/open/floor/plasteel/circuit/gcircuit/off, +/area/ruin/powered) +"r" = ( +/obj/structure/destructible/cult/pylon, +/turf/open/floor/plasteel/circuit/off, +/area/ruin/powered) +"s" = ( +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"t" = ( +/turf/open/floor/plating{ + icon_state = "cultdamage2" + }, +/area/ruin/powered) +"u" = ( +/turf/open/floor/carpet, +/area/ruin/powered) +"v" = ( +/mob/living/simple_animal/hostile/faithless, +/turf/open/floor/carpet, +/area/ruin/powered) +"w" = ( +/obj/machinery/door/airlock/vault{ + locked = 1 + }, +/turf/open/floor/engine/cult, +/area/ruin/powered) +"x" = ( +/obj/structure/destructible/cult/pylon, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"y" = ( +/mob/living/simple_animal/hostile/faithless, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"z" = ( +/turf/template_noop, +/turf/closed/indestructible{ + desc = "The patterns engraved on the wall seem to shift as you try to focus on them. You feel sick."; + icon = 'icons/turf/walls/cult_wall.dmi'; + icon_state = "cult" + }, +/area/ruin/powered) +"A" = ( +/mob/living/simple_animal/hostile/faithless, +/turf/template_noop, +/area/template_noop) +"B" = ( +/obj/effect/mob_spawn/human/miner/rig, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/ruin/powered) +"C" = ( +/obj/machinery/door/airlock/vault{ + locked = 1 + }, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth; + blocks_air = 1 + }, +/area/ruin/powered) +"D" = ( +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/template_noop) +"E" = ( +/turf/closed/indestructible, +/area/template_noop) +"F" = ( +/obj/item/weapon/paper{ + info = "meat grinder requires sacri" + }, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/template_noop) +"G" = ( +/obj/effect/mob_spawn/human/syndicatecommando, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/template_noop) +"H" = ( +/mob/living/simple_animal/hostile/faithless, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/template_noop) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(3,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +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 +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(4,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +a +a +a +a +a +a +a +a +a +b +b +s +s +s +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 +"} +(5,1,1) = {" +a +a +a +a +a +a +a +a +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 +c +c +b +b +a +a +a +a +a +a +a +a +b +s +s +h +s +s +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 +"} +(6,1,1) = {" +a +a +a +a +a +a +a +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 +c +c +c +c +c +b +b +a +a +a +a +a +a +a +b +s +h +h +h +s +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 +"} +(7,1,1) = {" +a +a +a +a +a +a +a +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 +c +c +c +c +c +c +b +b +a +a +a +a +a +a +b +s +s +h +h +s +s +s +s +s +s +h +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(8,1,1) = {" +a +a +a +a +a +a +a +a +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 +c +c +h +h +c +c +b +b +a +a +a +a +a +b +b +s +s +h +h +h +h +h +h +c +h +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(9,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +f +c +h +c +c +c +b +b +b +b +b +b +b +b +h +s +h +z +s +s +s +s +s +h +s +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(10,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +h +h +c +c +c +c +h +s +s +s +s +h +s +y +h +s +y +h +h +h +h +h +s +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(11,1,1) = {" +a +a +a +a +a +a +a +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 +c +f +c +d +h +c +c +f +c +h +s +s +h +s +h +y +s +h +y +h +h +s +s +s +h +s +s +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(12,1,1) = {" +a +a +a +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 +c +h +c +c +c +h +h +c +f +f +c +h +s +s +h +s +h +s +y +h +s +s +s +s +s +s +h +s +s +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(13,1,1) = {" +a +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 +c +c +c +c +c +h +c +c +h +h +h +h +c +c +f +h +s +s +h +s +s +s +x +h +s +x +s +s +s +s +h +s +s +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(14,1,1) = {" +a +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 +c +c +c +c +c +c +h +h +c +h +c +c +h +c +c +c +h +h +s +h +s +s +s +s +h +s +s +s +h +s +s +h +s +s +b +s +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(15,1,1) = {" +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 +h +c +c +c +c +c +c +c +h +c +h +c +f +h +h +c +c +c +h +s +h +h +h +h +h +h +s +s +s +h +s +s +h +s +s +s +s +s +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(16,1,1) = {" +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 +c +h +c +c +c +h +h +c +c +h +c +h +c +c +c +h +d +c +c +h +s +c +c +c +c +c +h +h +h +h +h +s +s +h +s +x +s +s +s +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(17,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +c +c +h +h +c +c +c +h +c +c +h +c +h +h +c +c +h +h +c +h +h +s +h +c +c +c +c +c +d +c +h +s +s +s +h +s +s +s +s +s +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(18,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +c +c +c +c +c +h +c +c +c +h +d +c +h +c +c +h +c +c +c +c +c +h +s +s +h +h +h +f +f +c +c +c +h +s +s +s +h +s +s +s +s +s +s +b +a +a +a +a +a +a +D +a +a +a +a +a +a +a +"} +(19,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +c +c +c +h +h +c +c +h +c +c +h +c +c +h +h +h +c +c +c +h +s +s +s +s +h +h +h +c +c +c +h +s +s +y +h +s +x +s +s +s +s +b +D +D +D +a +a +a +D +a +a +a +a +a +a +a +"} +(20,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +c +c +c +h +d +c +c +c +h +c +c +h +c +c +h +c +c +c +c +h +h +c +c +h +h +s +s +s +s +s +h +h +c +c +h +s +y +s +w +s +s +s +s +s +s +b +a +a +D +D +D +D +a +a +a +a +a +a +a +a +"} +(21,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +h +c +c +c +h +h +c +f +c +h +c +c +h +c +c +h +d +c +c +c +c +h +h +c +c +h +h +s +s +s +s +s +h +c +c +h +s +s +s +w +s +s +s +s +s +s +b +a +a +a +D +a +a +a +a +a +a +a +a +a +a +"} +(22,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +h +h +h +c +c +h +c +c +c +h +f +c +h +c +c +h +h +c +c +h +c +c +h +c +c +c +h +h +h +x +s +s +h +c +c +h +s +s +s +h +s +x +s +s +s +s +b +D +D +a +a +a +a +a +a +a +a +a +a +a +a +"} +(23,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +h +h +c +c +h +f +c +c +h +c +c +h +c +c +c +h +c +c +h +c +c +h +h +c +c +c +f +h +h +s +s +h +c +c +h +h +h +h +h +s +s +s +s +s +s +b +a +D +D +a +a +a +a +a +a +a +a +a +a +a +"} +(24,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +h +h +c +c +h +c +c +c +h +f +c +h +c +c +c +h +c +c +h +f +c +c +h +h +c +f +c +c +h +h +s +h +c +c +c +c +s +s +h +s +s +s +s +s +s +b +D +D +D +D +a +A +a +a +a +a +a +a +a +a +"} +(25,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +h +c +c +h +c +c +c +h +c +c +h +h +c +c +h +c +c +h +h +c +c +c +h +c +s +s +s +s +h +s +h +h +c +c +c +s +s +h +s +x +B +s +s +s +b +a +D +D +D +a +a +a +a +a +a +a +a +a +a +"} +(26,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +h +c +h +c +f +h +c +c +c +h +c +c +c +h +c +c +h +c +c +c +h +c +f +c +h +h +s +s +s +s +c +s +s +h +c +c +c +s +s +h +s +s +s +s +s +s +b +D +D +D +D +D +D +D +D +a +a +a +a +a +a +"} +(27,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +h +c +f +c +c +h +c +c +h +h +c +c +c +h +c +c +h +h +c +c +h +h +h +h +h +h +s +s +s +s +c +s +h +h +h +h +h +s +s +h +s +s +y +s +s +s +b +a +a +a +a +a +a +a +a +D +D +a +a +a +a +"} +(28,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +h +h +c +c +f +h +c +c +h +d +c +c +c +h +c +c +c +h +h +c +c +c +c +c +c +h +h +s +s +s +h +h +h +s +s +s +s +s +s +h +s +x +s +s +s +s +b +a +a +a +a +a +a +a +a +D +a +a +a +a +a +"} +(29,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +h +d +c +c +h +c +c +h +c +c +c +c +h +h +d +c +c +h +h +h +h +c +c +c +c +h +h +h +h +h +s +s +s +s +s +s +s +s +h +s +s +s +s +s +s +b +E +E +E +E +a +a +a +a +a +a +a +a +a +a +"} +(30,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +h +h +h +h +h +h +c +c +c +c +c +c +c +c +h +h +c +c +c +c +c +h +h +h +c +c +c +h +s +s +s +s +s +s +s +s +x +s +s +h +s +s +s +s +s +s +C +F +G +D +D +D +D +D +a +a +a +a +a +a +a +"} +(31,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +c +c +h +c +c +c +c +c +c +h +h +h +h +c +f +c +c +c +c +d +h +c +f +c +h +s +s +s +s +s +s +h +h +h +s +s +h +s +x +s +s +s +s +C +D +D +D +H +D +D +a +a +a +a +a +a +a +a +"} +(32,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +h +h +h +c +c +h +h +h +c +c +c +h +h +c +c +c +c +c +c +c +c +c +c +h +c +c +h +h +s +s +s +s +h +h +h +s +h +s +s +h +s +s +s +s +s +s +b +E +E +E +E +a +a +D +a +a +a +a +a +a +a +"} +(33,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +c +h +h +c +c +c +h +h +h +c +h +c +c +h +h +h +h +h +h +h +c +c +h +c +c +h +s +s +s +s +h +h +x +s +s +h +s +s +h +s +s +s +s +s +s +b +a +a +a +a +a +a +D +D +a +a +a +a +a +a +"} +(34,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +h +c +c +c +c +d +h +h +h +c +c +h +c +f +f +c +c +h +c +c +c +c +c +h +h +s +s +s +h +s +s +y +s +h +s +s +h +s +x +s +s +s +s +b +a +a +a +a +a +a +D +D +a +a +a +a +a +a +"} +(35,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +h +h +c +c +c +c +c +c +h +c +c +h +f +c +f +f +c +h +h +c +c +c +c +c +h +s +s +s +s +s +s +s +s +h +s +s +h +s +s +s +s +s +s +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(36,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +h +c +c +c +c +c +c +h +c +c +h +h +h +h +c +f +c +h +c +c +c +c +c +h +s +s +s +s +s +s +h +h +h +s +s +h +s +s +s +s +s +s +b +D +D +a +a +a +a +a +a +a +D +a +a +a +a +"} +(37,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +h +c +c +c +c +c +c +h +c +c +c +c +d +h +c +c +c +h +h +h +h +h +h +h +h +s +s +c +s +h +h +s +s +s +s +h +s +x +s +s +s +b +b +a +D +a +a +a +a +a +a +a +a +a +a +a +a +"} +(38,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +h +h +c +c +c +c +c +h +c +c +c +c +c +h +h +c +c +c +c +c +c +c +c +c +h +h +s +h +h +h +s +s +s +s +y +h +s +s +s +b +b +b +a +a +D +a +a +a +a +a +a +a +a +a +a +a +a +"} +(39,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +c +c +c +c +h +h +c +c +c +c +h +h +c +c +c +c +c +h +h +c +c +c +c +c +c +c +c +c +h +h +h +s +s +s +s +s +s +s +h +s +s +b +a +a +a +a +a +D +a +a +a +a +a +a +a +a +a +a +a +a +"} +(40,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +c +c +f +f +c +c +h +h +c +c +c +c +h +c +c +c +c +c +c +h +h +h +h +h +h +d +c +c +c +c +c +c +s +s +s +s +s +s +s +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(41,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +h +h +c +c +c +c +c +c +c +h +c +c +c +c +h +h +h +h +h +c +f +c +c +c +h +c +c +c +c +c +c +c +c +c +s +s +s +s +s +c +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(42,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +h +c +c +c +d +h +h +c +c +h +h +c +f +c +c +c +c +h +c +c +c +c +f +h +h +c +c +c +h +h +h +h +h +c +s +s +s +s +s +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(43,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +c +h +h +c +c +c +h +h +c +c +c +h +h +h +c +c +f +c +h +c +c +h +h +h +h +c +c +c +c +h +f +c +c +h +h +h +h +h +h +h +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(44,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +c +c +c +h +h +c +c +h +h +c +c +c +c +d +h +c +c +c +c +h +c +c +h +c +c +c +c +c +c +c +h +c +f +c +c +c +h +h +c +c +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 +"} +(45,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +c +h +h +c +c +h +h +h +c +c +c +h +h +h +d +c +h +c +c +h +c +c +c +h +h +h +h +h +f +c +c +c +c +c +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(46,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +b +b +c +c +c +c +c +c +h +h +c +c +c +h +h +h +c +c +c +h +h +c +h +c +c +h +c +c +c +h +d +c +c +c +c +h +h +h +h +h +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(47,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +c +c +c +c +h +c +c +c +c +d +h +c +c +c +c +c +c +h +c +c +h +c +c +c +c +c +c +c +c +h +h +d +h +h +c +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(48,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +c +c +c +c +h +c +c +c +c +c +h +h +h +c +c +c +c +h +c +c +h +h +h +c +c +c +c +h +h +h +f +c +f +c +f +c +c +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 +"} +(49,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +b +b +c +c +c +c +c +c +c +c +h +h +c +c +f +f +c +c +h +h +h +h +h +h +c +c +c +f +h +h +h +h +h +h +c +c +c +c +c +c +c +c +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 +"} +(50,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +c +c +c +c +c +c +h +h +h +c +c +c +c +c +c +c +c +d +h +h +c +c +c +c +c +c +c +c +c +c +c +c +h +h +h +h +h +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 +"} +(51,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +c +i +c +c +c +c +c +c +h +h +h +c +c +c +c +c +c +c +c +h +h +d +c +c +f +c +c +c +c +c +c +c +h +c +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(52,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +c +f +c +c +c +d +c +c +c +c +h +c +c +c +c +c +c +c +c +c +h +h +h +h +c +c +c +c +c +c +c +h +h +c +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(53,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +c +c +c +c +c +c +c +c +c +c +h +h +h +h +h +h +c +c +c +c +c +c +c +h +h +c +c +c +h +h +h +h +f +c +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(54,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +h +h +h +c +c +c +f +f +c +h +h +h +h +h +d +c +f +c +c +h +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(55,1,1) = {" +a +a +a +a +a +a +a +a +a +a +b +b +c +c +c +c +c +c +c +j +c +c +c +f +c +c +c +c +c +c +c +c +c +h +h +h +c +c +c +c +c +c +c +c +c +c +c +c +c +f +h +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(56,1,1) = {" +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +d +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +h +h +h +h +c +c +c +c +c +c +c +c +c +h +h +h +c +f +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 +"} +(57,1,1) = {" +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +c +c +c +c +c +c +c +e +c +c +f +c +c +c +c +c +c +c +c +c +c +c +c +h +h +c +c +c +c +c +h +h +h +h +d +c +c +f +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(58,1,1) = {" +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +i +c +c +j +c +c +c +c +c +c +c +c +c +h +h +h +h +h +h +h +c +c +c +c +c +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(59,1,1) = {" +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +c +c +c +c +c +c +k +c +c +c +c +c +c +s +s +s +c +k +c +c +c +c +c +c +c +c +c +c +c +c +h +c +c +c +c +c +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(60,1,1) = {" +a +a +a +a +a +a +a +a +a +a +b +b +c +c +c +c +e +c +c +c +c +c +c +c +c +c +c +c +c +c +f +c +c +c +c +c +c +c +c +c +c +c +c +c +c +h +w +w +h +h +h +h +h +h +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 +"} +(61,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +c +c +f +c +c +c +c +c +c +c +j +c +c +c +c +c +i +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(62,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +c +c +c +c +c +c +c +d +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +f +c +c +c +d +u +u +u +u +d +c +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(63,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +f +c +c +c +c +c +c +c +c +c +c +f +c +d +c +c +f +c +c +c +c +c +c +c +c +c +c +c +c +v +u +u +u +c +c +f +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(64,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +b +b +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +j +c +f +c +c +c +c +c +c +u +u +u +u +c +f +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(65,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +b +b +c +c +c +c +e +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +u +u +v +u +c +c +c +c +c +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 +"} +(66,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +c +c +c +c +j +c +c +f +c +c +c +c +c +e +c +c +c +c +i +c +c +c +c +c +c +f +c +u +u +u +u +c +c +c +c +c +c +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 +"} +(67,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +c +c +c +c +c +c +c +c +c +j +c +c +c +c +c +c +c +c +c +c +c +f +c +k +c +c +d +u +u +u +u +d +c +c +c +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(68,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +u +u +u +u +c +c +c +c +c +c +c +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(69,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +c +k +c +c +f +c +c +c +c +c +c +c +c +f +c +c +c +c +c +d +c +c +c +c +c +c +c +u +u +u +v +c +c +c +c +c +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(70,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +u +u +u +u +c +c +c +c +c +k +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(71,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +c +c +c +c +c +d +c +c +c +c +c +c +c +c +c +c +c +i +c +c +c +c +c +c +f +c +c +u +u +u +u +c +i +c +c +c +c +c +c +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(72,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +i +c +c +c +c +c +c +c +c +e +c +c +c +c +i +c +c +c +c +c +c +c +c +c +c +c +c +d +u +u +u +u +d +c +c +c +c +c +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(73,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +c +c +f +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +j +c +c +c +c +c +c +c +c +u +u +u +u +c +c +c +c +c +c +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(74,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +c +g +g +c +c +c +c +c +f +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +f +c +u +v +u +u +c +c +c +c +f +c +f +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(75,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +c +c +g +g +g +c +c +c +c +c +c +c +c +f +c +c +c +f +c +c +i +c +c +c +c +c +u +u +u +u +c +c +c +c +c +c +c +c +c +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(76,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +c +c +c +c +g +c +c +i +c +g +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +u +u +u +u +c +c +c +c +c +c +c +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(77,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +g +c +c +c +c +c +l +c +c +c +c +g +g +c +f +c +c +c +c +c +c +c +c +c +c +c +c +c +d +u +u +u +u +d +c +c +c +c +c +c +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(78,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +g +c +c +c +c +g +c +c +c +c +g +c +c +c +c +c +c +c +d +c +c +c +c +c +c +c +c +c +u +u +u +u +c +c +c +c +c +c +c +c +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(79,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +g +g +k +c +c +g +c +c +c +g +c +c +c +c +c +c +c +c +c +c +c +c +c +c +f +c +c +c +v +u +u +u +c +c +f +c +c +c +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 +"} +(80,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +g +c +c +c +g +c +c +c +g +c +c +c +c +c +t +c +c +c +c +c +f +c +c +c +c +c +c +u +u +u +u +c +c +c +c +c +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 +"} +(81,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +g +g +c +g +c +c +c +f +g +c +c +d +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +u +u +u +u +c +c +c +c +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 +"} +(82,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +g +c +g +c +g +c +c +c +g +c +c +c +c +c +f +j +c +c +c +c +c +c +c +f +c +d +u +u +u +u +d +c +c +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 +"} +(83,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +g +c +g +c +g +c +c +c +g +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +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 +"} +(84,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +c +c +c +g +c +g +c +c +g +c +g +g +c +g +g +c +c +c +c +c +g +f +c +c +k +c +c +c +c +c +c +c +c +c +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 +"} +(85,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +l +g +g +c +c +g +c +g +c +c +g +c +c +c +c +g +g +g +c +c +c +c +c +c +c +c +c +f +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(86,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +g +g +g +d +g +c +g +c +g +g +c +f +c +c +g +c +c +c +c +c +c +c +c +j +c +c +c +c +k +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(87,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +c +c +c +g +c +g +g +g +g +g +k +g +c +c +c +c +g +g +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +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 +"} +(88,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +g +c +g +g +g +g +c +c +g +c +c +c +g +g +c +c +f +c +c +c +c +d +c +c +c +c +c +c +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(89,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +g +g +i +c +g +f +g +c +c +c +c +g +c +c +c +g +c +c +c +c +c +c +c +c +c +c +c +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(90,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +g +g +g +c +g +g +g +g +g +c +g +g +r +c +g +g +c +c +c +c +c +c +c +c +c +c +c +c +c +c +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 +"} +(91,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +i +c +g +g +g +c +g +g +g +c +g +c +g +g +c +g +g +c +c +c +f +c +c +c +c +j +c +c +c +c +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(92,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +g +g +l +g +g +g +g +g +c +g +g +g +c +g +g +c +c +g +g +c +c +c +c +c +c +c +c +f +c +c +c +c +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 +"} +(93,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +c +c +c +g +g +g +g +c +g +c +g +l +g +c +g +g +c +c +g +g +c +f +c +c +c +c +c +c +c +c +c +c +c +c +c +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 +"} +(94,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +g +g +g +c +d +g +c +g +g +c +g +g +g +g +g +g +c +c +c +c +c +c +c +c +f +c +c +c +c +d +c +c +c +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 +"} +(95,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +g +g +g +g +c +c +g +g +l +g +g +g +g +g +g +f +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +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 +"} +(96,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +g +g +g +c +c +g +g +g +g +g +g +f +g +c +c +c +g +c +c +c +c +c +c +c +e +c +c +c +c +c +c +c +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(97,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +g +g +g +c +g +g +g +g +g +c +g +g +c +g +g +g +c +c +c +g +g +g +c +c +c +c +c +c +j +c +c +c +c +c +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(98,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +c +g +g +g +g +c +g +g +g +g +g +g +g +c +g +l +g +g +g +g +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(99,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +g +g +i +b +b +g +b +b +g +g +g +g +g +g +g +l +g +c +c +c +c +c +g +c +c +c +c +k +c +c +c +c +c +c +j +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(100,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +d +g +g +b +g +g +g +b +g +g +g +g +g +c +c +g +g +g +g +g +g +g +g +c +c +c +c +c +f +c +j +c +c +c +c +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(101,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +b +b +g +b +g +b +b +g +g +g +g +l +g +g +c +c +c +c +c +f +c +c +c +c +c +c +c +c +c +c +c +f +c +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(102,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +c +c +c +b +g +c +g +g +g +b +g +g +g +g +g +g +g +g +g +g +g +c +c +c +c +c +c +d +c +c +c +c +c +c +c +c +c +f +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(103,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +b +g +g +g +g +g +b +g +g +g +c +c +c +c +d +c +c +g +g +g +c +c +c +c +c +c +c +c +c +c +c +d +c +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(104,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +b +c +d +g +r +c +b +c +c +g +g +g +c +c +c +c +c +c +c +c +c +c +c +c +c +j +c +c +c +c +c +c +c +c +f +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(105,1,1) = {" +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 +n +b +b +b +b +b +c +d +g +g +g +g +c +c +f +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(106,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +p +n +n +n +n +n +n +n +n +b +c +c +c +c +c +g +c +c +c +c +c +c +f +c +f +c +c +c +c +f +c +c +j +c +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(107,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +n +n +n +n +n +n +n +n +n +b +c +c +c +f +c +c +c +c +c +k +c +c +c +c +c +c +f +c +c +c +c +c +c +c +f +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(108,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +n +n +n +n +n +n +o +n +n +b +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +e +c +c +c +c +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(109,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +n +n +n +n +n +b +b +b +b +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(110,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +n +n +n +n +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +c +c +c +c +d +c +c +c +c +c +c +c +f +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(111,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +n +n +n +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +c +c +c +c +c +c +c +f +c +c +c +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(112,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +n +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +f +c +c +c +c +f +c +c +c +c +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(113,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +n +q +n +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +c +c +c +c +c +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 +"} +(114,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +n +n +b +n +o +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +c +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 +"} +(115,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +o +n +n +n +n +n +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +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 +"} +(116,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +n +n +n +n +n +n +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 +"} +(117,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +n +n +n +n +n +n +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 +"} +(118,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +m +n +n +n +n +n +n +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 +"} +(119,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +n +n +n +o +n +n +n +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 +"} +(120,1,1) = {" +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 +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_xeno_nest.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_xeno_nest.dmm new file mode 100644 index 0000000..54d7400 --- /dev/null +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_xeno_nest.dmm @@ -0,0 +1,2136 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"b" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/obj/structure/alien/resin/wall, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"c" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/obj/structure/alien/resin/wall, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"d" = ( +/obj/structure/alien/resin/wall, +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"e" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/obj/structure/alien/weeds{ + desc = "A large mottled egg."; + obj_integrity = 100; + icon_state = "egg_hatched"; + name = "egg" + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"f" = ( +/obj/structure/alien/weeds, +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"g" = ( +/obj/structure/alien/weeds, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"h" = ( +/obj/structure/alien/weeds, +/obj/structure/alien/resin/wall, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"i" = ( +/obj/structure/alien/weeds, +/obj/structure/bed/nest, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"j" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/mob/living/simple_animal/hostile/alien, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"k" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/obj/structure/alien/weeds{ + desc = "A large mottled egg."; + obj_integrity = 100; + icon_state = "egg_hatched"; + name = "egg" + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"l" = ( +/obj/structure/alien/weeds/node, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"m" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/obj/structure/bed/nest, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"n" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/obj/structure/bed/nest, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"o" = ( +/obj/structure/alien/weeds, +/obj/structure/bed/nest, +/obj/effect/decal/cleanable/blood/gibs, +/obj/item/clothing/mask/facehugger{ + icon_state = "facehugger_impregnated"; + item_state = "facehugger_impregnated"; + stat = 2 + }, +/obj/item/weapon/gun/projectile/automatic/pistol, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"p" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"q" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"r" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/obj/structure/alien/resin/wall, +/obj/structure/alien/resin/wall, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"s" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/obj/structure/alien/egg, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"t" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/mob/living/simple_animal/hostile/alien/sentinel, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"u" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/obj/effect/decal/cleanable/blood/gibs, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"v" = ( +/obj/structure/alien/weeds/node, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"w" = ( +/obj/structure/alien/weeds, +/obj/effect/decal/cleanable/blood/gibs, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"x" = ( +/obj/structure/alien/weeds, +/obj/structure/alien/weeds{ + desc = "A large mottled egg."; + obj_integrity = 100; + icon_state = "egg_hatched"; + name = "egg" + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"y" = ( +/obj/structure/alien/weeds/node, +/obj/structure/alien/resin/wall, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"z" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/obj/structure/bed/nest, +/obj/effect/decal/cleanable/blood/gibs, +/obj/item/clothing/mask/facehugger{ + icon_state = "facehugger_impregnated"; + item_state = "facehugger_impregnated"; + stat = 2 + }, +/obj/item/clothing/under/rank/security, +/obj/item/clothing/suit/armor/vest, +/obj/item/weapon/melee/baton/loaded, +/obj/item/clothing/head/helmet, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"A" = ( +/obj/structure/alien/weeds, +/obj/structure/alien/egg, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"B" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/obj/structure/alien/weeds{ + desc = "A large mottled egg."; + obj_integrity = 100; + icon_state = "egg_hatched"; + name = "egg" + }, +/obj/effect/decal/cleanable/blood/gibs, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"C" = ( +/obj/structure/alien/weeds, +/obj/structure/alien/weeds{ + desc = "A large mottled egg."; + obj_integrity = 100; + icon_state = "egg_hatched"; + name = "egg" + }, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"D" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/obj/effect/decal/cleanable/blood/gibs, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"E" = ( +/obj/structure/alien/weeds, +/mob/living/simple_animal/hostile/alien/drone{ + plants_off = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"F" = ( +/obj/structure/alien/weeds, +/mob/living/simple_animal/hostile/alien/queen/large{ + desc = "A gigantic alien who is in charge of the hive and all of its loyal servants."; + name = "alien queen"; + pixel_x = -16; + plants_off = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"G" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/mob/living/simple_animal/hostile/alien/drone{ + plants_off = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"H" = ( +/obj/structure/alien/weeds, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"I" = ( +/obj/structure/alien/weeds, +/obj/structure/bed/nest, +/obj/effect/decal/cleanable/blood/gibs, +/obj/effect/decal/cleanable/blood, +/obj/item/clothing/mask/facehugger{ + icon_state = "facehugger_impregnated"; + item_state = "facehugger_impregnated"; + stat = 2 + }, +/obj/item/clothing/under/syndicate, +/obj/item/clothing/glasses/night, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"J" = ( +/obj/structure/alien/weeds, +/mob/living/simple_animal/hostile/alien/sentinel, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"K" = ( +/obj/structure/alien/weeds/node, +/mob/living/simple_animal/hostile/alien, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"L" = ( +/obj/structure/alien/weeds/node, +/mob/living/simple_animal/hostile/alien/drone{ + plants_off = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"M" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/obj/structure/bed/nest, +/obj/effect/decal/cleanable/blood/gibs, +/obj/item/weapon/tank/internals/oxygen, +/obj/item/clothing/suit/space/syndicate/orange, +/obj/item/clothing/mask/gas, +/obj/item/clothing/head/helmet/space/syndicate/orange, +/obj/item/clothing/mask/facehugger{ + icon_state = "facehugger_impregnated"; + item_state = "facehugger_impregnated"; + stat = 2 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"N" = ( +/obj/structure/alien/weeds, +/obj/structure/alien/resin/wall, +/turf/template_noop, +/area/template_noop) +"O" = ( +/obj/structure/alien/weeds/node, +/turf/template_noop, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"P" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/obj/structure/alien/resin/wall, +/turf/template_noop, +/area/template_noop) +"Q" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/obj/effect/decal/cleanable/blood, +/mob/living/simple_animal/hostile/alien/drone{ + plants_off = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"R" = ( +/obj/structure/alien/weeds, +/turf/template_noop, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"S" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/turf/template_noop, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"T" = ( +/obj/structure/alien/weeds/node, +/obj/structure/alien/resin/wall, +/turf/template_noop, +/area/template_noop) +"U" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/obj/structure/alien/resin/wall, +/turf/template_noop, +/area/template_noop) +"V" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/turf/template_noop, +/area/template_noop) + +(1,1,1) = {" +a +a +a +a +a +a +c +h +b +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +a +a +a +b +b +c +A +e +c +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(3,1,1) = {" +a +a +a +a +h +g +e +k +g +s +g +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(4,1,1) = {" +a +a +a +h +c +s +p +g +s +G +q +e +c +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(5,1,1) = {" +a +a +a +c +g +p +y +m +p +q +y +g +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(6,1,1) = {" +a +a +a +b +g +q +m +q +F +u +I +H +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(7,1,1) = {" +a +a +a +h +e +t +g +p +q +H +u +q +c +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(8,1,1) = {" +a +a +a +c +n +u +p +g +l +q +J +k +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(9,1,1) = {" +a +a +a +b +o +v +q +p +p +q +k +p +c +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(10,1,1) = {" +a +a +a +h +p +w +c +p +g +g +y +x +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(11,1,1) = {" +a +a +a +b +c +q +g +q +g +q +q +p +c +a +a +a +a +a +a +a +a +a +a +a +a +c +h +b +h +a +"} +(12,1,1) = {" +a +a +a +a +h +x +p +g +p +g +q +p +h +a +a +a +a +a +a +a +a +a +a +a +h +b +M +i +c +h +"} +(13,1,1) = {" +a +a +a +a +c +h +q +p +l +q +g +c +c +a +a +a +a +a +a +a +a +a +a +b +h +x +D +Q +q +c +"} +(14,1,1) = {" +a +a +a +a +a +c +h +g +q +p +h +b +a +a +a +a +a +a +a +a +a +a +a +c +i +q +l +g +e +b +"} +(15,1,1) = {" +a +a +a +a +a +a +c +c +b +c +c +a +a +a +a +a +a +a +a +a +a +b +h +c +p +g +q +i +h +b +"} +(16,1,1) = {" +a +a +a +a +a +a +h +l +l +h +a +a +a +a +a +a +a +a +a +a +h +h +q +j +g +e +h +c +b +a +"} +(17,1,1) = {" +a +a +a +a +a +a +c +g +p +b +h +a +b +h +c +h +c +b +h +h +c +g +p +h +c +b +h +a +a +a +"} +(18,1,1) = {" +a +a +a +a +a +a +b +q +q +g +c +c +h +q +g +q +p +g +g +c +b +g +c +h +a +a +a +a +a +a +"} +(19,1,1) = {" +a +a +a +a +a +a +h +h +g +g +p +c +g +q +p +g +q +p +l +q +g +p +b +a +a +a +a +a +a +a +"} +(20,1,1) = {" +b +c +h +b +a +a +a +b +c +p +l +p +q +g +c +h +c +h +q +p +q +h +b +a +a +a +a +a +a +a +"} +(21,1,1) = {" +c +e +i +h +c +h +b +h +c +q +p +g +p +h +b +a +a +b +c +g +p +c +a +a +a +a +a +a +a +a +"} +(22,1,1) = {" +d +f +j +g +b +c +q +g +p +g +q +q +c +b +a +a +a +h +q +q +g +h +a +a +a +a +a +a +a +a +"} +(23,1,1) = {" +d +g +k +l +q +g +p +c +h +p +c +h +c +a +a +a +a +c +g +p +c +b +a +a +a +a +a +a +a +a +"} +(24,1,1) = {" +c +c +i +m +b +c +h +b +b +g +b +a +a +a +a +a +a +c +p +g +c +a +a +a +a +a +a +a +a +a +"} +(25,1,1) = {" +a +h +c +c +h +a +a +a +c +E +c +h +a +a +a +a +a +b +g +L +b +c +b +a +a +a +a +a +a +c +"} +(26,1,1) = {" +a +a +a +a +a +a +a +a +c +p +g +h +a +a +a +a +a +h +q +p +q +g +c +h +c +a +a +a +b +h +"} +(27,1,1) = {" +a +a +a +a +a +a +b +c +h +q +q +c +b +a +a +a +a +c +c +g +p +p +g +q +b +c +h +c +y +g +"} +(28,1,1) = {" +a +a +a +a +a +b +h +B +g +q +l +x +h +a +a +a +b +c +g +q +h +c +g +p +q +b +O +R +p +q +"} +(29,1,1) = {" +a +a +a +a +a +c +z +C +j +g +x +m +c +a +a +a +h +g +p +c +h +b +c +g +l +b +O +S +p +g +"} +(30,1,1) = {" +a +a +a +a +a +c +i +D +p +n +m +c +b +a +a +a +c +q +h +c +a +a +h +c +b +c +c +y +q +p +"} +(31,1,1) = {" +a +a +a +a +a +h +b +c +g +c +c +h +a +a +a +a +b +p +c +b +a +a +a +a +a +a +a +c +g +q +"} +(32,1,1) = {" +a +a +a +a +a +a +a +h +p +h +a +a +a +a +a +a +h +g +g +h +a +a +a +a +a +a +a +h +p +g +"} +(33,1,1) = {" +a +a +a +a +a +a +a +b +p +c +a +a +a +a +a +a +h +c +l +c +a +a +a +a +a +a +c +c +q +a +"} +(34,1,1) = {" +a +a +a +a +a +a +a +h +l +b +a +a +a +a +a +a +a +b +p +h +a +a +a +a +a +a +c +a +a +a +"} +(35,1,1) = {" +a +a +a +a +a +a +a +c +p +h +a +a +a +a +a +a +a +c +q +c +a +a +a +a +a +a +a +a +a +a +"} +(36,1,1) = {" +a +a +a +a +a +a +a +h +g +c +a +a +a +a +a +a +c +h +g +h +a +a +a +a +a +a +a +a +a +a +"} +(37,1,1) = {" +a +a +a +a +a +a +a +c +q +h +a +a +a +a +a +b +h +g +p +b +a +a +a +a +a +a +a +a +a +a +"} +(38,1,1) = {" +a +a +a +a +a +a +b +c +p +c +b +h +c +c +b +c +p +q +h +c +a +a +a +a +a +a +a +a +a +a +"} +(39,1,1) = {" +a +a +a +a +a +b +c +q +g +k +h +c +g +q +K +g +q +c +b +a +a +a +a +a +a +a +a +a +a +a +"} +(40,1,1) = {" +a +a +a +a +a +h +m +E +p +g +q +p +p +b +c +h +c +h +a +a +a +a +a +a +a +a +a +a +a +a +"} +(41,1,1) = {" +a +a +a +a +c +c +e +q +l +g +x +c +h +c +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(42,1,1) = {" +a +a +a +a +h +x +q +g +n +m +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(43,1,1) = {" +a +a +a +a +r +c +h +c +b +h +c +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(44,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(45,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} diff --git a/_maps/RandomRuins/SpaceRuins/DJstation.dmm b/_maps/RandomRuins/SpaceRuins/DJstation.dmm new file mode 100644 index 0000000..13fba2f --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/DJstation.dmm @@ -0,0 +1,827 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/open/space, +/area/space) +"ab" = ( +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/djstation/solars) +"ac" = ( +/obj/machinery/power/solar/fake, +/turf/open/floor/plasteel/airless/solarpanel, +/area/djstation/solars) +"ad" = ( +/turf/open/floor/plating/airless, +/area/djstation/solars) +"ae" = ( +/obj/structure/lattice, +/turf/open/space, +/area/space) +"af" = ( +/turf/closed/wall, +/area/djstation) +"ag" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/djstation) +"ah" = ( +/turf/open/floor/plating, +/area/djstation) +"ai" = ( +/obj/machinery/telecomms/relay/preset/ruskie, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating, +/area/djstation) +"aj" = ( +/obj/machinery/power/terminal, +/turf/open/floor/plating, +/area/djstation) +"ak" = ( +/obj/item/device/multitool, +/turf/open/floor/plating, +/area/djstation) +"al" = ( +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/turf/open/floor/plating, +/area/djstation) +"am" = ( +/obj/item/weapon/extinguisher, +/turf/open/floor/plating, +/area/djstation) +"an" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/power/smes/magical{ + desc = "A high-capacity superconducting magnetic energy storage (SMES) unit."; + name = "power storage unit" + }, +/turf/open/floor/plating, +/area/djstation) +"ao" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/djstation) +"ap" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/power/apc{ + dir = 0; + name = "Worn-out APC"; + pixel_y = -24 + }, +/turf/open/floor/plating, +/area/djstation) +"aq" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/item/weapon/storage/box/lights/mixed, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE"; + pixel_x = 0; + pixel_y = -32 + }, +/turf/open/floor/plating, +/area/djstation) +"ar" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/djstation) +"as" = ( +/obj/structure/rack, +/obj/item/clothing/suit/space/syndicate/orange, +/obj/item/clothing/head/helmet/space/syndicate/orange, +/obj/item/clothing/mask/breath, +/turf/open/floor/plating, +/area/djstation) +"at" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/turf/open/floor/plating, +/area/djstation) +"au" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/cafeteria, +/area/djstation) +"av" = ( +/obj/machinery/vending/snack, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/cafeteria, +/area/djstation) +"aw" = ( +/turf/open/floor/plasteel/cafeteria, +/area/djstation) +"ax" = ( +/obj/machinery/light_switch{ + pixel_y = 28 + }, +/turf/open/floor/plasteel/cafeteria, +/area/djstation) +"ay" = ( +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/cafeteria, +/area/djstation) +"az" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/turf/open/floor/plasteel/bar, +/area/djstation) +"aA" = ( +/turf/open/floor/plasteel/bar, +/area/djstation) +"aB" = ( +/obj/effect/spawner/lootdrop/crate_spawner, +/turf/open/floor/plasteel/grimy, +/area/djstation) +"aC" = ( +/obj/machinery/light_switch{ + pixel_y = 28 + }, +/turf/open/floor/plasteel/grimy, +/area/djstation) +"aD" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/turf/open/floor/plasteel/grimy, +/area/djstation) +"aE" = ( +/obj/structure/table, +/obj/item/device/flashlight/lamp, +/turf/open/floor/plasteel/grimy, +/area/djstation) +"aF" = ( +/obj/structure/table, +/obj/machinery/microwave{ + pixel_y = 8 + }, +/turf/open/floor/plasteel/bar, +/area/djstation) +"aG" = ( +/obj/machinery/door/airlock/glass{ + name = "Kitchen" + }, +/turf/open/floor/plasteel/cafeteria, +/area/djstation) +"aH" = ( +/obj/structure/table, +/obj/item/device/radio/intercom{ + broadcasting = 0; + dir = 8; + freerange = 1; + listening = 1; + name = "Pirate Radio Listening Channel"; + pixel_x = 0 + }, +/turf/open/floor/plasteel/cafeteria, +/area/djstation) +"aI" = ( +/obj/structure/chair/office/light, +/turf/open/floor/plasteel/cafeteria, +/area/djstation) +"aJ" = ( +/obj/machinery/door/airlock/glass{ + name = "Rest Room" + }, +/turf/open/floor/plasteel/cafeteria, +/area/djstation) +"aK" = ( +/turf/open/floor/plasteel/grimy, +/area/djstation) +"aL" = ( +/obj/machinery/sleeper{ + icon_state = "sleeper-open"; + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/djstation) +"aM" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/bar, +/area/djstation) +"aN" = ( +/obj/machinery/light/small, +/turf/open/floor/plasteel/bar, +/area/djstation) +"aO" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/bar, +/area/djstation) +"aP" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plasteel/cafeteria, +/area/djstation) +"aQ" = ( +/obj/structure/table, +/obj/item/device/radio/intercom{ + broadcasting = 1; + dir = 8; + freerange = 1; + listening = 0; + name = "Pirate Radio Broadcast Channel"; + pixel_x = 0 + }, +/turf/open/floor/plasteel/cafeteria, +/area/djstation) +"aR" = ( +/obj/structure/table, +/obj/item/weapon/paper/djstation, +/turf/open/floor/plasteel/cafeteria, +/area/djstation) +"aS" = ( +/obj/structure/frame/computer{ + anchored = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/djstation) +"aT" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/djstation) +"aU" = ( +/obj/machinery/light/small, +/turf/open/floor/plasteel/grimy, +/area/djstation) +"aV" = ( +/obj/structure/closet, +/turf/open/floor/plasteel/grimy, +/area/djstation) +"aW" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/djstation) +"aX" = ( +/obj/machinery/door/airlock/hatch{ + name = "Washroom" + }, +/turf/open/floor/plasteel/freezer, +/area/djstation) +"aY" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/djstation) +"aZ" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/airless, +/area/space) +"ba" = ( +/turf/open/floor/plasteel/freezer, +/area/djstation) +"bb" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/djstation) +"bc" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/space_heater, +/turf/open/floor/plasteel/cafeteria, +/area/djstation) +"bd" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/rack{ + dir = 4 + }, +/obj/item/clothing/under/soviet, +/obj/item/clothing/head/ushanka, +/turf/open/floor/plasteel/cafeteria, +/area/djstation) +"be" = ( +/obj/structure/sink{ + icon_state = "sink"; + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/freezer, +/area/djstation) +"bf" = ( +/obj/structure/toilet{ + pixel_y = 8 + }, +/turf/open/floor/plasteel/freezer, +/area/djstation) +"bg" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/cafeteria, +/area/djstation) +"bh" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = -32 + }, +/turf/open/floor/plasteel/cafeteria, +/area/djstation) +"bi" = ( +/obj/machinery/door/airlock/external{ + name = "Ruskie DJ Station"; + req_access = null; + req_access_txt = "0" + }, +/turf/open/floor/plating, +/area/djstation) +"bj" = ( +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/structure/disposaloutlet, +/turf/open/floor/plating/airless, +/area/space) + +(1,1,1) = {" +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +aa +af +ag +ag +ag +af +aa +ae +aa +aa +aa +"} +(2,1,1) = {" +aa +aa +aa +aa +aa +ab +ac +ad +ac +ad +ac +ab +aa +af +az +aF +aM +aW +aZ +aZ +aZ +bj +aa +"} +(3,1,1) = {" +aa +aa +aa +aa +aa +ab +ac +ad +ac +ad +ac +ab +aa +af +aA +aA +aN +af +ae +ae +aa +aa +aa +"} +(4,1,1) = {" +aa +aa +aa +aa +ae +ab +ac +ad +ac +ad +ac +ab +aa +af +aA +aA +aO +af +af +af +af +aa +aa +"} +(5,1,1) = {" +aa +aa +aa +ae +ae +ab +ac +ad +ac +ad +ac +ab +aa +af +aA +aA +aA +aX +ba +be +af +aa +aa +"} +(6,1,1) = {" +ab +ab +ab +ab +ab +af +ag +ag +af +ag +ag +af +af +af +ag +aG +ag +af +af +bf +af +aa +aa +"} +(7,1,1) = {" +ab +ac +ac +ac +ac +ag +ah +ah +ah +am +ah +ap +af +au +aw +aw +aw +aw +af +af +af +aa +aa +"} +(8,1,1) = {" +ab +ad +ad +ad +ad +ag +ah +ah +ah +ah +ah +aq +af +av +aw +aH +aP +aw +bb +bg +af +aa +aa +"} +(9,1,1) = {" +ab +ac +ac +ac +ac +af +ai +ah +aj +an +ao +ar +at +aw +aw +aI +aQ +aw +aw +aw +af +aa +aa +"} +(10,1,1) = {" +ab +ad +ad +ad +ad +ag +ah +ah +ak +ah +ah +ah +af +ax +aw +aH +aR +aw +bc +bh +af +af +af +"} +(11,1,1) = {" +ab +ac +ac +ac +ac +ag +ah +ah +al +ah +ah +as +af +ay +aw +aw +aw +aY +bd +aw +bi +ah +bi +"} +(12,1,1) = {" +ab +ab +ab +ab +ab +af +ag +ag +af +ag +ag +af +af +af +ag +aJ +ag +af +af +af +af +af +af +"} +(13,1,1) = {" +aa +aa +ae +ae +ae +ab +ac +ad +ac +ad +ac +ab +aa +af +aB +aK +aS +af +aa +aa +aa +aa +aa +"} +(14,1,1) = {" +aa +aa +aa +aa +ae +ab +ac +ad +ac +ad +ac +ab +aa +af +aC +aK +aT +af +aa +aa +aa +aa +aa +"} +(15,1,1) = {" +aa +aa +aa +aa +ae +ab +ac +ad +ac +ad +ac +ab +aa +af +aD +aK +aU +af +ae +ae +aa +aa +aa +"} +(16,1,1) = {" +aa +aa +aa +aa +aa +ab +ac +ad +ac +ad +ac +ab +aa +af +aE +aL +aV +af +aa +aa +aa +aa +aa +"} +(17,1,1) = {" +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +aa +af +ag +ag +ag +af +aa +aa +aa +aa +aa +"} +(18,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ae +ae +aa +ae +aa +aa +ae +aa +aa +aa +aa +aa +aa +"} diff --git a/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm b/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm new file mode 100644 index 0000000..a013998 --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm @@ -0,0 +1,872 @@ +"aa" = (/turf/open/space,/area/space) +"ab" = (/obj/structure/lattice,/turf/open/space,/area/space) +"ac" = (/obj/structure/grille,/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"ad" = (/obj/machinery/power/tracker,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plasteel/airless,/area/solar/derelict_starboard) +"ae" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/space,/area/solar/derelict_starboard) +"af" = (/turf/open/floor/plating/airless,/turf/open/floor/plating/airless{icon_state = "platingdmg2"},/area/solar/derelict_starboard) +"ag" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plasteel/airless{icon_state = "damaged5"},/area/solar/derelict_starboard) +"ah" = (/obj/machinery/power/solar{id = "derelictsolar"; name = "Derelict Solar Array"},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plasteel/airless,/area/solar/derelict_starboard) +"ai" = (/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/derelict_starboard) +"aj" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/space,/area/solar/derelict_starboard) +"ak" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/space,/area/solar/derelict_starboard) +"al" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/space,/area/solar/derelict_starboard) +"am" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/space,/area/solar/derelict_starboard) +"an" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/space,/area/solar/derelict_starboard) +"ao" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/space,/area/solar/derelict_starboard) +"ap" = (/obj/machinery/power/solar{id = "derelictsolar"; name = "Derelict Solar Array"},/obj/structure/cable,/turf/open/floor/plasteel/airless,/area/solar/derelict_starboard) +"aq" = (/obj/structure/lattice/catwalk,/obj/structure/cable,/turf/open/space,/area/solar/derelict_starboard) +"ar" = (/obj/structure/lattice/catwalk,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/space,/area/solar/derelict_starboard) +"as" = (/turf/closed/wall,/area/derelict/solar_control) +"at" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating,/area/derelict/solar_control) +"au" = (/obj/machinery/door/airlock/external{name = "External Engineering"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating,/area/derelict/solar_control) +"av" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/derelict/solar_control) +"aw" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating,/area/derelict/solar_control) +"ax" = (/turf/closed/wall/r_wall,/area/derelict/bridge/ai_upload) +"ay" = (/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"az" = (/turf/open/floor/plasteel,/area/derelict/solar_control) +"aA" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel,/area/derelict/solar_control) +"aB" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel,/area/derelict/solar_control) +"aC" = (/obj/machinery/power/smes,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel,/area/derelict/solar_control) +"aD" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar_control{id = "derelictsolar"; name = "Primary Solar Control"; track = 0},/obj/structure/cable,/turf/open/floor/plasteel,/area/derelict/solar_control) +"aE" = (/obj/structure/grille,/turf/open/floor/plating/airless,/area/space) +"aF" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/open/floor/plating,/area/derelict/solar_control) +"aG" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/derelict/solar_control) +"aH" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/derelict/solar_control) +"aI" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel,/area/derelict/solar_control) +"aJ" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel,/area/derelict/solar_control) +"aK" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) +"aL" = (/obj/machinery/door/airlock/external{name = "Air Bridge Access"},/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) +"aM" = (/obj/machinery/door/airlock/external{name = "Air Bridge Access"},/turf/open/floor/plating,/area/derelict/solar_control) +"aN" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/derelict/solar_control) +"aO" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/open/floor/plasteel,/area/derelict/solar_control) +"aP" = (/obj/structure/window/reinforced,/turf/open/floor/plasteel,/area/derelict/solar_control) +"aQ" = (/obj/machinery/door/window,/turf/open/floor/plasteel,/area/derelict/solar_control) +"aR" = (/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) +"aS" = (/turf/closed/wall/r_wall,/area/derelict/solar_control) +"aT" = (/obj/machinery/power/apc{dir = 8; environ = 0; equipment = 0; lighting = 0; locked = 0; name = "Starboard Solar APC"; pixel_x = -24; pixel_y = 0},/obj/structure/cable,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel,/area/derelict/solar_control) +"aU" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel,/area/derelict/solar_control) +"aV" = (/obj/machinery/door/airlock/external{name = "External Engineering"},/turf/open/floor/plating,/area/derelict/solar_control) +"aW" = (/obj/machinery/door/airlock/highsecurity,/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) +"aX" = (/obj/structure/frame/computer,/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) +"aY" = (/turf/closed/wall/r_wall,/area/ruin/unpowered/no_grav) +"aZ" = (/obj/machinery/computer/monitor,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel,/area/derelict/solar_control) +"ba" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light/small,/turf/open/floor/plasteel,/area/derelict/solar_control) +"bb" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/derelict/solar_control) +"bc" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating,/area/derelict/solar_control) +"bd" = (/obj/structure/grille/broken,/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"be" = (/obj/machinery/light/small,/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) +"bf" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/porta_turret_cover,/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) +"bg" = (/obj/machinery/porta_turret_cover,/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) +"bh" = (/obj/machinery/door/airlock/engineering{name = "Starboard Solar Access"; req_access_txt = "10"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/derelict/solar_control) +"bi" = (/obj/structure/grille,/turf/open/space,/area/ruin/unpowered/no_grav) +"bj" = (/obj/structure/grille,/turf/open/floor/plating/airless,/area/derelict/bridge/ai_upload) +"bk" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel,/area/derelict/solar_control) +"bl" = (/turf/closed/wall,/area/derelict/bridge/ai_upload) +"bm" = (/obj/machinery/door/window,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/derelict/solar_control) +"bn" = (/obj/machinery/computer/atmos_alert,/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) +"bo" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) +"bp" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) +"bq" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel,/area/derelict/solar_control) +"br" = (/obj/item/stack/cable_coil/cut{amount = 2; dir = 2; icon_state = "coil_red2"},/turf/open/floor/plasteel,/area/derelict/solar_control) +"bs" = (/turf/open/floor/plasteel{icon_state = "damaged1"},/area/derelict/solar_control) +"bt" = (/obj/machinery/door/window,/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) +"bu" = (/turf/open/floor/plasteel{icon_state = "damaged5"},/area/derelict/solar_control) +"bv" = (/obj/item/weapon/stock_parts/matter_bin,/turf/open/floor/plasteel{icon_state = "damaged4"},/area/derelict/solar_control) +"bw" = (/obj/structure/rack,/obj/item/weapon/circuitboard/machine/smes,/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) +"bx" = (/obj/structure/rack,/obj/item/weapon/circuitboard/machine/microwave,/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) +"by" = (/obj/structure/rack,/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) +"bz" = (/turf/open/floor/plasteel/airless,/area/derelict/bridge/ai_upload) +"bA" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance{lootcount = 3; name = "3maintenance loot spawner"},/turf/open/floor/plasteel,/area/derelict/solar_control) +"bB" = (/turf/open/floor/plasteel{icon_state = "damaged2"},/area/derelict/solar_control) +"bC" = (/obj/item/stack/cable_coil/cut{amount = 2; dir = 2; icon_state = "coil_red2"},/turf/open/floor/plasteel{icon_state = "damaged3"},/area/derelict/solar_control) +"bD" = (/obj/structure/rack,/obj/item/weapon/circuitboard/machine/cryo_tube,/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) +"bE" = (/turf/open/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/bridge/ai_upload) +"bF" = (/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/bridge/ai_upload) +"bG" = (/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/airless,/area/derelict/bridge/ai_upload) +"bH" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plasteel,/area/derelict/solar_control) +"bI" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/airless,/area/derelict/bridge/ai_upload) +"bJ" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/turf/open/floor/plasteel/airless,/area/derelict/bridge/ai_upload) +"bK" = (/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/bridge/ai_upload) +"bL" = (/turf/open/space,/area/derelict/bridge/ai_upload) +"bM" = (/obj/item/weapon/stock_parts/console_screen,/turf/open/space,/area/derelict/bridge/ai_upload) +"bN" = (/turf/open/floor/plasteel/airless/circuit,/area/derelict/bridge/ai_upload) +"bO" = (/turf/open/floor/plating/airless,/area/derelict/bridge/ai_upload) +"bP" = (/obj/machinery/porta_turret_cover,/turf/open/floor/plasteel/airless,/area/derelict/bridge/ai_upload) +"bQ" = (/obj/item/device/aicard,/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/bridge/ai_upload) +"bR" = (/obj/structure/lattice,/turf/open/space,/area/derelict/bridge/ai_upload) +"bS" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel,/area/derelict/solar_control) +"bT" = (/obj/structure/rack,/obj/item/weapon/circuitboard/computer/solar_control,/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) +"bU" = (/obj/structure/rack,/obj/item/weapon/circuitboard/machine/autolathe,/obj/item/weapon/circuitboard/machine/protolathe{pixel_x = -5; pixel_y = -3},/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) +"bV" = (/obj/structure/rack,/obj/item/weapon/circuitboard/machine/circuit_imprinter,/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) +"bW" = (/obj/machinery/power/apc{dir = 8; name = "Worn-out APC"; pixel_x = -24; pixel_y = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel/airless,/area/derelict/bridge/ai_upload) +"bX" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/airless/circuit,/area/derelict/bridge/ai_upload) +"bY" = (/obj/structure/frame/computer,/obj/item/weapon/circuitboard/computer/rdconsole,/turf/open/floor/plasteel/airless,/area/derelict/bridge/ai_upload) +"bZ" = (/obj/structure/frame/computer,/turf/open/floor/plasteel/airless,/area/derelict/bridge/ai_upload) +"ca" = (/obj/machinery/door/airlock/external,/turf/open/floor/plasteel,/area/derelict/solar_control) +"cb" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel/airless{icon_state = "damaged4"},/area/space) +"cc" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/airless/circuit,/area/derelict/bridge/ai_upload) +"cd" = (/obj/machinery/light,/turf/open/floor/plasteel/airless,/area/derelict/bridge/ai_upload) +"ce" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/closed/wall/r_wall,/area/derelict/bridge/ai_upload) +"cf" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/closed/wall/r_wall,/area/derelict/bridge/ai_upload) +"cg" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/closed/wall/r_wall,/area/derelict/bridge/ai_upload) +"ch" = (/turf/closed/wall,/area/ruin/unpowered/no_grav) +"ci" = (/turf/closed/wall/r_wall,/area/space) +"cj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/closed/wall/r_wall,/area/derelict/bridge/ai_upload) +"ck" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel,/area/derelict/solar_control) +"cl" = (/turf/closed/wall/r_wall,/area/derelict/gravity_generator) +"cm" = (/obj/machinery/light/small,/turf/open/floor/plasteel,/area/derelict/solar_control) +"cn" = (/obj/item/weapon/ore/iron,/obj/item/weapon/ore/iron,/obj/item/weapon/ore/iron,/turf/open/space,/area/space) +"co" = (/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/gravity_generator) +"cp" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/airless{icon_state = "damaged5"},/area/derelict/gravity_generator) +"cq" = (/obj/item/weapon/stock_parts/manipulator,/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/gravity_generator) +"cr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/closed/wall,/area/derelict/bridge/access) +"cs" = (/turf/closed/wall,/area/derelict/bridge/access) +"ct" = (/obj/machinery/door/airlock/maintenance,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/derelict/bridge/access) +"cu" = (/turf/open/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/gravity_generator) +"cv" = (/obj/item/weapon/ore/slag,/turf/open/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/gravity_generator) +"cw" = (/turf/open/floor/plasteel/airless{icon_state = "damaged5"},/area/derelict/gravity_generator) +"cx" = (/turf/open/floor/plasteel,/area/derelict/bridge/access) +"cy" = (/obj/structure/rack,/obj/item/weapon/melee/classic_baton,/turf/open/floor/plasteel,/area/derelict/bridge/access) +"cz" = (/obj/structure/rack,/obj/machinery/light/small{dir = 1},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel,/area/derelict/bridge/access) +"cA" = (/obj/structure/rack,/obj/item/clothing/head/helmet/swat,/turf/open/floor/plasteel,/area/derelict/bridge/access) +"cB" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel,/area/derelict/bridge/access) +"cC" = (/obj/structure/rack,/obj/item/weapon/electronics/apc,/turf/open/floor/plasteel,/area/derelict/bridge/access) +"cD" = (/obj/structure/rack,/obj/item/weapon/circuitboard/machine/smes,/turf/open/floor/plasteel,/area/derelict/bridge/access) +"cE" = (/obj/structure/rack,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/manipulator,/turf/open/floor/plasteel,/area/derelict/bridge/access) +"cF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/derelict/bridge/access) +"cG" = (/obj/item/weapon/screwdriver,/turf/open/floor/plasteel/airless{icon_state = "damaged5"},/area/derelict/gravity_generator) +"cH" = (/obj/machinery/gravity_generator/main/station{on = 0},/turf/open/floor/plasteel/airless,/area/derelict/gravity_generator) +"cI" = (/obj/item/weapon/ore/slag,/turf/open/space,/area/space) +"cJ" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/closed/wall,/area/derelict/bridge/access) +"cK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/derelict/bridge/access) +"cL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/derelict/bridge/access) +"cM" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel,/area/derelict/bridge/access) +"cN" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel,/area/derelict/bridge/access) +"cO" = (/turf/open/floor/plasteel/airless,/area/derelict/gravity_generator) +"cP" = (/obj/item/stack/cable_coil/cut,/turf/open/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/gravity_generator) +"cQ" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 0; name = "Worn-out APC"; pixel_y = -24},/turf/open/floor/plasteel,/area/derelict/bridge/access) +"cR" = (/obj/structure/rack,/obj/item/weapon/stock_parts/cell/high,/obj/item/weapon/stock_parts/cell/high,/obj/item/weapon/stock_parts/cell/high,/obj/item/weapon/stock_parts/cell/high,/obj/item/weapon/stock_parts/cell/high,/obj/item/weapon/stock_parts/cell/high,/turf/open/floor/plating,/area/derelict/bridge/access) +"cS" = (/obj/machinery/light/small{dir = 4},/obj/structure/rack,/obj/item/stack/cable_coil/cut,/obj/item/stack/cable_coil/cut,/turf/open/floor/plasteel,/area/derelict/bridge/access) +"cT" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating,/area/derelict/bridge/access) +"cU" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating,/area/derelict/bridge/access) +"cV" = (/obj/machinery/door/airlock/command{name = "E.V.A."; req_access = null; req_access_txt = "18"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/derelict/bridge/access) +"cW" = (/obj/machinery/door/airlock/engineering{name = "Engineering Secure Storage"; req_access_txt = "10"},/turf/open/floor/plasteel,/area/derelict/bridge/access) +"cX" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/derelict/bridge/access) +"cY" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/derelict/gravity_generator) +"cZ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating/airless,/area/derelict/gravity_generator) +"da" = (/obj/machinery/door/airlock/engineering{name = "Engineering Access"; req_access_txt = "10"},/turf/open/floor/plasteel,/area/derelict/gravity_generator) +"db" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating/airless,/area/derelict/gravity_generator) +"dc" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating/airless,/area/derelict/gravity_generator) +"dd" = (/turf/open/floor/plating,/area/derelict/bridge/access) +"de" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel/airless/solarpanel,/area/ruin/unpowered/no_grav) +"df" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/item/wallframe/apc,/turf/open/floor/plating/airless,/area/derelict/gravity_generator) +"dg" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating/airless,/area/derelict/gravity_generator) +"dh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating/airless,/area/derelict/gravity_generator) +"di" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/frame/machine,/obj/item/weapon/stock_parts/console_screen,/turf/open/floor/plating/airless,/area/derelict/gravity_generator) +"dj" = (/turf/open/floor/plasteel/airless/solarpanel,/area/ruin/unpowered/no_grav) +"dk" = (/obj/item/stack/cable_coil/cut,/turf/open/space,/area/space) +"dl" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel,/area/derelict/bridge/access) +"dm" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating,/area/derelict/bridge/access) +"dn" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/derelict/bridge/access) +"do" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/derelict/bridge/access) +"dp" = (/obj/machinery/door/airlock/glass,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/derelict/bridge/access) +"dq" = (/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/derelict/bridge/access) +"dr" = (/turf/closed/wall/r_wall,/area/derelict/singularity_engine) +"ds" = (/obj/machinery/light/small{dir = 8},/obj/structure/table,/obj/item/weapon/paper{info = "If the equipment breaks there should be enough spare parts in our engineering storage near the north east solar array."; name = "Equipment Inventory"},/turf/open/floor/plasteel/airless,/area/derelict/gravity_generator) +"dt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/airless,/area/derelict/gravity_generator) +"du" = (/obj/machinery/light/small{dir = 4},/obj/item/weapon/stock_parts/matter_bin{pixel_x = -10; pixel_y = 5},/obj/item/weapon/stock_parts/matter_bin{pixel_x = 5; pixel_y = 5},/obj/item/weapon/stock_parts/matter_bin,/turf/open/floor/plating/airless,/area/derelict/gravity_generator) +"dv" = (/obj/item/weapon/stock_parts/matter_bin,/turf/open/space,/area/space) +"dw" = (/obj/structure/window/reinforced,/turf/open/floor/plasteel,/area/derelict/bridge/access) +"dx" = (/obj/machinery/door/window,/turf/open/floor/plasteel,/area/derelict/bridge/access) +"dy" = (/obj/structure/window/reinforced,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/derelict/bridge/access) +"dz" = (/turf/closed/wall,/area/derelict/bridge) +"dA" = (/obj/structure/sign/electricshock,/turf/closed/wall/r_wall,/area/derelict/singularity_engine) +"dB" = (/obj/structure/sign/securearea,/turf/closed/wall/r_wall,/area/derelict/singularity_engine) +"dC" = (/obj/machinery/door/airlock/engineering{name = "Engineering Access"; req_access_txt = "10"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/airless,/area/derelict/gravity_generator) +"dD" = (/obj/structure/sign/securearea{name = "ENGINEERING ACCESS"},/turf/closed/wall/r_wall,/area/derelict/gravity_generator) +"dE" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/space,/area/space) +"dF" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel,/area/derelict/bridge/access) +"dG" = (/obj/structure/frame/computer,/turf/open/floor/plasteel,/area/derelict/bridge) +"dH" = (/obj/structure/frame/computer,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plasteel,/area/derelict/bridge) +"dI" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plasteel,/area/derelict/bridge) +"dJ" = (/obj/machinery/computer/security,/turf/open/floor/plasteel,/area/derelict/bridge) +"dK" = (/obj/structure/table,/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/turf/open/floor/plasteel,/area/derelict/bridge) +"dL" = (/obj/structure/table,/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel,/area/derelict/bridge) +"dM" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/turf/open/floor/plasteel,/area/derelict/bridge) +"dN" = (/obj/item/weapon/grenade/empgrenade,/obj/structure/table,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel,/area/derelict/bridge) +"dO" = (/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/singularity_engine) +"dP" = (/turf/open/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/singularity_engine) +"dQ" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel/airless{icon_state = "damaged5"},/area/derelict/singularity_engine) +"dR" = (/obj/item/stack/cable_coil/cut,/obj/machinery/light/small{dir = 1},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"dS" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"dT" = (/obj/machinery/door/airlock/engineering{name = "Engineering Access"; req_access_txt = "10"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/derelict/gravity_generator) +"dU" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/derelict/gravity_generator) +"dV" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel,/area/derelict/gravity_generator) +"dW" = (/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"dX" = (/turf/open/floor/plasteel/airless{icon_state = "damaged5"},/area/derelict/singularity_engine) +"dY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/derelict/bridge/access) +"dZ" = (/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/open/floor/plasteel,/area/derelict/bridge) +"ea" = (/turf/open/floor/plasteel,/area/derelict/bridge) +"eb" = (/turf/open/floor/plating,/area/derelict/bridge) +"ec" = (/obj/structure/table,/obj/item/weapon/paper/crumpled,/turf/open/floor/plasteel,/area/derelict/bridge) +"ed" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel,/area/derelict/bridge) +"ee" = (/obj/structure/window/reinforced,/obj/machinery/portable_atmospherics/canister/toxins,/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/singularity_engine) +"ef" = (/obj/structure/window/reinforced,/turf/open/floor/plasteel/airless{icon_state = "damaged5"},/area/derelict/singularity_engine) +"eg" = (/obj/structure/window/reinforced,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/singularity_engine) +"eh" = (/obj/structure/window/reinforced,/turf/open/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/singularity_engine) +"ei" = (/obj/structure/window/reinforced,/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/singularity_engine) +"ej" = (/turf/open/floor/plasteel,/area/derelict/gravity_generator) +"ek" = (/obj/structure/closet/radiation,/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 32; pixel_y = 0},/turf/open/floor/plasteel,/area/derelict/gravity_generator) +"el" = (/turf/closed/wall,/area/derelict/gravity_generator) +"em" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) +"en" = (/obj/machinery/power/emitter{dir = 1; icon_state = "emitter"},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"eo" = (/obj/machinery/field/generator,/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"ep" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/window/reinforced,/turf/open/floor/plasteel,/area/derelict/bridge/access) +"eq" = (/obj/structure/window/reinforced/fulltile,/turf/open/floor/plasteel,/area/derelict/bridge/access) +"er" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plating,/area/derelict/bridge) +"es" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel,/area/derelict/bridge) +"et" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel,/area/derelict/bridge) +"eu" = (/obj/item/stack/rods,/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"ev" = (/obj/structure/grille,/obj/structure/window/reinforced,/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"ew" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"ex" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"ey" = (/obj/structure/noticeboard,/turf/closed/wall/r_wall,/area/derelict/singularity_engine) +"ez" = (/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) +"eA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel,/area/derelict/bridge/access) +"eB" = (/obj/machinery/door/window/eastleft{name = "Heads of Staff"; req_access_txt = "19"},/turf/open/floor/plasteel,/area/derelict/bridge/access) +"eC" = (/obj/structure/table,/obj/item/device/paicard,/turf/open/floor/plasteel,/area/derelict/bridge) +"eD" = (/obj/structure/chair/stool,/turf/open/floor/plasteel,/area/derelict/bridge) +"eE" = (/obj/structure/table,/obj/item/weapon/stock_parts/cell,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel,/area/derelict/bridge) +"eF" = (/obj/item/weapon/storage/toolbox/syndicate,/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) +"eG" = (/obj/item/stack/cable_coil/cut,/turf/open/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/singularity_engine) +"eH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel,/area/derelict/bridge/access) +"eI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating,/area/derelict/bridge/access) +"eJ" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/derelict/bridge/access) +"eK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/derelict/bridge) +"eL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/derelict/bridge) +"eM" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel,/area/derelict/bridge) +"eN" = (/obj/item/weapon/paper{info = "Objective #1: Destroy the station with a nuclear device."; name = "Objectives of a Nuclear Operative"},/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) +"eO" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating,/area/derelict/bridge/access) +"eP" = (/obj/structure/table,/turf/open/floor/plasteel,/area/derelict/bridge) +"eQ" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel,/area/derelict/bridge) +"eR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel,/area/derelict/bridge) +"eS" = (/obj/structure/chair,/turf/open/floor/plasteel,/area/derelict/bridge) +"eT" = (/obj/structure/table,/obj/item/weapon/screwdriver,/turf/open/floor/plasteel,/area/derelict/bridge) +"eU" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel,/area/derelict/bridge) +"eV" = (/obj/item/stack/rods,/turf/open/space,/area/space) +"eW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"eX" = (/obj/item/weapon/shard,/obj/structure/grille/broken,/obj/effect/decal/remains/human{desc = "This guy seemed to have died in terrible way! Half his remains are dust."; icon_state = "remains"; name = "Syndicate agent remains"},/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) +"eY" = (/obj/item/clothing/suit/space/syndicate/black/engie,/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"eZ" = (/obj/item/stack/rods,/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"fa" = (/obj/item/weapon/shard,/turf/open/floor/plasteel/airless{icon_state = "damaged5"},/area/derelict/singularity_engine) +"fb" = (/obj/structure/grille,/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"fc" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"fd" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"fe" = (/obj/structure/table,/obj/item/weapon/rack_parts,/turf/open/floor/plasteel,/area/derelict/bridge) +"ff" = (/obj/structure/window/fulltile,/turf/open/floor/plasteel,/area/derelict/bridge) +"fg" = (/obj/structure/table,/obj/machinery/power/apc{dir = 0; name = "Worn-out APC"; pixel_y = -24},/obj/structure/cable,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel,/area/derelict/bridge) +"fh" = (/obj/structure/table,/obj/machinery/light/small,/turf/open/floor/plasteel,/area/derelict/bridge) +"fi" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 4},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel,/area/derelict/bridge) +"fj" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) +"fk" = (/obj/item/clothing/head/helmet/space/syndicate/black/engie,/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"fl" = (/obj/item/weapon/shard{icon_state = "small"},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"fm" = (/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"fn" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"fo" = (/turf/closed/wall/r_wall,/area/derelict/bridge) +"fp" = (/obj/machinery/door/window{dir = 2; name = "Captain's Quarters"; req_access_txt = "20"},/obj/structure/grille,/turf/open/floor/plating/airless,/area/derelict/bridge) +"fq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"fr" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) +"fs" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/light/small{dir = 4},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"ft" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"fu" = (/obj/item/stack/cable_coil/cut,/turf/open/floor/plasteel/airless{icon_state = "damaged5"},/area/derelict/singularity_engine) +"fv" = (/obj/effect/spawner/lootdrop/crate_spawner,/turf/open/floor/plasteel/airless,/area/derelict/bridge/access) +"fw" = (/obj/item/drone_shell,/turf/open/floor/plasteel/airless,/area/derelict/bridge/access) +"fx" = (/turf/open/floor/plasteel/airless,/area/derelict/bridge/access) +"fy" = (/obj/structure/table,/obj/item/device/assembly/flash/handheld,/turf/open/floor/plasteel/airless,/area/derelict/bridge/access) +"fz" = (/obj/structure/table,/obj/machinery/light/small{dir = 1},/obj/item/weapon/electronics/airlock,/turf/open/floor/plasteel/airless,/area/derelict/bridge/access) +"fA" = (/obj/structure/table,/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/weapon/stock_parts/matter_bin,/turf/open/floor/plasteel/airless,/area/derelict/bridge/access) +"fB" = (/obj/structure/table,/obj/item/weapon/stock_parts/cell{charge = 100; maxcharge = 15000},/turf/open/floor/plasteel/airless,/area/derelict/bridge/access) +"fC" = (/turf/open/space,/area/derelict/bridge/access) +"fD" = (/obj/structure/girder,/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"fE" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"fF" = (/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/turf/open/floor/plasteel/airless,/area/derelict/bridge/access) +"fG" = (/obj/item/stack/cable_coil/cut,/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/singularity_engine) +"fH" = (/obj/item/stack/cable_coil/cut,/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) +"fI" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) +"fJ" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/singularity_engine) +"fK" = (/obj/machinery/door/window,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/derelict/bridge/access) +"fL" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) +"fM" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"fN" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"fO" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/open/floor/plasteel/airless{icon_state = "damaged5"},/area/derelict/singularity_engine) +"fP" = (/obj/structure/grille,/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/singularity_engine) +"fQ" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/singularity_engine) +"fR" = (/obj/machinery/door/airlock/maintenance{name = "Tech Storage"; req_access_txt = "23"},/turf/open/floor/plasteel/airless,/area/derelict/bridge/access) +"fS" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/open/floor/plating/airless,/area/derelict/bridge/access) +"fT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/airless,/area/derelict/bridge/access) +"fU" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/singularity_engine) +"fV" = (/obj/item/weapon/screwdriver,/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"fW" = (/obj/item/stack/rods,/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) +"fX" = (/obj/item/weapon/shard{icon_state = "medium"},/obj/item/stack/cable_coil/cut,/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"fY" = (/obj/structure/table,/obj/machinery/light/small{dir = 4},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) +"fZ" = (/turf/closed/wall,/area/derelict/hallway/primary) +"ga" = (/obj/item/stack/cable_coil/cut{amount = 2; dir = 2; icon_state = "coil_red2"},/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/hallway/primary) +"gb" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/hallway/primary) +"gc" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"gd" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating/airless,/area/derelict/bridge/access) +"ge" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel/airless,/area/derelict/bridge/access) +"gf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/airless,/area/derelict/bridge/access) +"gg" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/airless,/area/derelict/bridge/access) +"gh" = (/obj/item/weapon/ore/slag,/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"gi" = (/obj/item/weapon/shard,/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"gj" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"gk" = (/turf/closed/wall/r_wall,/area/derelict/hallway/primary) +"gl" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/airless,/area/derelict/hallway/primary) +"gm" = (/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/hallway/primary) +"gn" = (/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/hallway/primary) +"go" = (/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"gp" = (/obj/structure/window/fulltile,/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"gq" = (/turf/open/floor/plating/airless,/area/derelict/bridge/access) +"gr" = (/turf/open/floor/plasteel/airless,/area/ruin/unpowered/no_grav) +"gs" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) +"gt" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/shard{icon_state = "medium"},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"gu" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"gv" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"gw" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"gx" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating/airless,/area/derelict/hallway/primary) +"gy" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating/airless,/area/derelict/hallway/primary) +"gz" = (/turf/open/floor/plasteel/airless{icon_state = "floorscorched2"},/area/derelict/hallway/primary) +"gA" = (/obj/machinery/light/small,/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"gB" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 0; name = "Worn-out APC"; pixel_y = -24},/turf/open/floor/plasteel/airless,/area/derelict/bridge/access) +"gC" = (/turf/open/floor/plasteel/airless{icon_state = "floorscorched2"},/area/ruin/unpowered/no_grav) +"gD" = (/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/ruin/unpowered/no_grav) +"gE" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"gF" = (/obj/machinery/door/window,/turf/open/floor/plating/airless,/area/derelict/hallway/primary) +"gG" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"gH" = (/turf/open/floor/plasteel/airless{icon_state = "floorscorched1"},/area/ruin/unpowered/no_grav) +"gI" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) +"gJ" = (/obj/structure/grille/broken,/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"gK" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/singularity_engine) +"gL" = (/turf/open/floor/plating/airless,/area/derelict/hallway/primary) +"gM" = (/obj/item/weapon/crowbar,/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"gN" = (/obj/structure/grille,/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"gO" = (/obj/structure/girder,/turf/open/floor/plating/airless,/area/derelict/hallway/primary) +"gP" = (/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/ruin/unpowered/no_grav) +"gQ" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel/airless,/area/ruin/unpowered/no_grav) +"gR" = (/obj/item/weapon/shard{icon_state = "small"},/obj/item/weapon/shard{icon_state = "medium"},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"gS" = (/obj/structure/window/reinforced,/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"gT" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"gU" = (/obj/item/stack/cable_coil/cut{amount = 2; dir = 2; icon_state = "coil_red2"},/turf/open/floor/plating/airless,/area/derelict/hallway/primary) +"gV" = (/turf/closed/wall/r_wall,/area/derelict/arrival) +"gW" = (/turf/closed/wall,/area/derelict/arrival) +"gX" = (/turf/closed/wall,/area/derelict/medical/chapel) +"gY" = (/turf/closed/wall,/area/derelict/singularity_engine) +"gZ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"ha" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating/airless,/area/derelict/hallway/primary) +"hb" = (/obj/machinery/light/small,/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/hallway/primary) +"hc" = (/obj/structure/lattice,/obj/structure/window/fulltile,/turf/open/space,/area/ruin/unpowered/no_grav) +"hd" = (/obj/structure/table,/turf/open/floor/plasteel,/area/derelict/arrival) +"he" = (/obj/structure/chair,/turf/open/floor/plasteel,/area/derelict/arrival) +"hf" = (/turf/open/floor/plasteel,/area/derelict/arrival) +"hg" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel,/area/derelict/arrival) +"hh" = (/obj/structure/chair{dir = 8},/obj/item/weapon/pen,/turf/open/floor/plasteel,/area/derelict/arrival) +"hi" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel,/area/derelict/arrival) +"hj" = (/obj/structure/closet/coffin,/turf/open/floor/plasteel/black,/area/derelict/medical/chapel) +"hk" = (/turf/open/floor/plasteel/black,/area/derelict/medical/chapel) +"hl" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/black,/area/derelict/medical/chapel) +"hm" = (/obj/item/weapon/shard,/turf/open/space,/area/space) +"hn" = (/obj/structure/grille,/turf/open/space,/area/derelict/singularity_engine) +"ho" = (/obj/item/weapon/shard,/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) +"hp" = (/turf/open/floor/plasteel/airless{icon_state = "floorscorched2"},/area/derelict/arrival) +"hq" = (/turf/open/floor/plating/airless,/area/derelict/arrival) +"hr" = (/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/arrival) +"hs" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel,/area/derelict/arrival) +"ht" = (/obj/machinery/light/small,/turf/open/floor/plasteel/black,/area/derelict/medical/chapel) +"hu" = (/obj/machinery/door/airlock/medical{name = "Morgue"; req_access_txt = "6"},/turf/open/floor/plasteel/black,/area/derelict/medical/chapel) +"hv" = (/turf/closed/wall,/area/derelict/medical) +"hw" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating/airless,/area/derelict/medical) +"hx" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating/airless,/area/derelict/medical) +"hy" = (/obj/item/weapon/shard,/obj/structure/grille/broken,/turf/open/floor/plating/airless,/area/derelict/medical) +"hz" = (/turf/open/floor/plating/airless,/area/derelict/medical) +"hA" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/open/floor/plating/airless,/area/derelict/medical) +"hB" = (/obj/machinery/door/airlock/external{name = "External Engineering"},/turf/open/floor/plating/airless,/area/space) +"hC" = (/obj/structure/grille,/turf/open/space,/area/space) +"hD" = (/turf/open/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/hallway/primary) +"hE" = (/obj/machinery/door/window{dir = 8},/turf/open/floor/plasteel,/area/derelict/arrival) +"hF" = (/obj/structure/table,/obj/machinery/computer/pod/old{name = "ProComp IIe"; pixel_y = 7; id = "derelict_gun"},/turf/open/floor/plasteel/chapel,/area/derelict/medical/chapel) +"hG" = (/obj/machinery/door/morgue{name = "coffin storage"; req_access_txt = "22"},/turf/open/floor/plasteel/black,/area/derelict/medical/chapel) +"hH" = (/obj/structure/bodycontainer/morgue,/turf/open/floor/plasteel/black,/area/derelict/medical/chapel) +"hI" = (/turf/open/floor/plasteel/airless/white,/area/derelict/medical) +"hJ" = (/obj/item/weapon/firstaid_arm_assembly,/turf/open/floor/plasteel/airless/white,/area/derelict/medical) +"hK" = (/obj/structure/closet,/obj/structure/window/reinforced{dir = 8},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/medical) +"hL" = (/obj/structure/frame/computer,/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/medical) +"hM" = (/obj/machinery/light{dir = 1},/obj/item/weapon/shard{icon_state = "small"},/turf/open/floor/plating/airless,/area/derelict/medical) +"hN" = (/obj/machinery/light/small,/turf/open/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/singularity_engine) +"hO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating/airless,/area/derelict/hallway/primary) +"hP" = (/turf/open/floor/plating,/area/derelict/arrival) +"hQ" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/turf/open/space,/area/space) +"hR" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 8},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel/chapel{dir = 1},/area/derelict/medical/chapel) +"hS" = (/turf/open/floor/plasteel/chapel{dir = 4},/area/derelict/medical/chapel) +"hT" = (/turf/open/floor/plasteel/chapel{dir = 1},/area/derelict/medical/chapel) +"hU" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/chapel{dir = 1},/area/derelict/medical/chapel) +"hV" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/airless/white,/area/derelict/medical) +"hW" = (/obj/item/stack/medical/bruise_pack,/turf/open/floor/plasteel/airless/white,/area/derelict/medical) +"hX" = (/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/medical) +"hY" = (/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/medical) +"hZ" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/derelict/medical) +"ia" = (/turf/open/floor/plasteel/airless{icon_state = "damaged5"},/area/ruin/unpowered/no_grav) +"ib" = (/obj/item/stack/cable_coil/cut,/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"ic" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel,/area/derelict/arrival) +"id" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel,/area/derelict/arrival) +"ie" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 8},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel/chapel{dir = 8},/area/derelict/medical/chapel) +"if" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/chapel,/area/derelict/medical/chapel) +"ig" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel/chapel{dir = 8},/area/derelict/medical/chapel) +"ih" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/chapel,/area/derelict/medical/chapel) +"ii" = (/turf/open/floor/plasteel/chapel{dir = 8},/area/derelict/medical/chapel) +"ij" = (/turf/open/floor/plasteel/chapel,/area/derelict/medical/chapel) +"ik" = (/obj/structure/chair,/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/medical) +"il" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating/airless,/area/derelict/medical) +"im" = (/obj/item/weapon/storage/box/lights/mixed,/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"in" = (/obj/item/drone_shell,/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"io" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating/airless,/area/derelict/singularity_engine) +"ip" = (/obj/item/stack/cable_coil/cut{amount = 2; dir = 2; icon_state = "coil_red2"},/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/hallway/primary) +"iq" = (/turf/open/floor/plasteel/airless{icon_state = "damaged4"},/area/ruin/unpowered/no_grav) +"ir" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel,/area/derelict/arrival) +"is" = (/obj/structure/chair{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel,/area/derelict/arrival) +"it" = (/obj/structure/window/reinforced,/turf/open/space,/area/space) +"iu" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/grille,/turf/open/space,/area/space) +"iv" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel/chapel{dir = 1},/area/derelict/medical/chapel) +"iw" = (/obj/structure/window/reinforced,/turf/open/floor/plasteel/chapel{dir = 4},/area/derelict/medical/chapel) +"ix" = (/obj/structure/window/reinforced,/turf/open/floor/plasteel/chapel{dir = 1},/area/derelict/medical/chapel) +"iy" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/black,/area/derelict/medical/chapel) +"iz" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/derelict/medical/chapel) +"iA" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 4},/turf/open/floor/plasteel/airless/white,/area/derelict/medical) +"iB" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/item/weapon/reagent_containers/glass/beaker,/turf/open/floor/plasteel/airless/white,/area/derelict/medical) +"iC" = (/obj/structure/window/reinforced,/turf/open/floor/plasteel/airless/white,/area/derelict/medical) +"iD" = (/obj/structure/window/reinforced,/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"iE" = (/obj/structure/window/reinforced,/turf/open/floor/plasteel/airless/white,/area/ruin/unpowered/no_grav) +"iF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/hallway/primary) +"iG" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel,/area/derelict/arrival) +"iH" = (/obj/machinery/door/poddoor{id = "derelict_gun"; name = "Derelict Mass Driver"},/turf/open/floor/plating,/area/ruin/unpowered/no_grav) +"iI" = (/turf/open/floor/plating,/area/ruin/unpowered/no_grav) +"iJ" = (/turf/open/floor/plating,/area/derelict/medical/chapel) +"iK" = (/obj/machinery/mass_driver{dir = 8; icon_state = "mass_driver"; id = "derelict_gun"},/obj/machinery/door/window{dir = 4; req_access_txt = "25"},/obj/structure/closet/coffin,/turf/open/floor/plating,/area/derelict/medical/chapel) +"iL" = (/obj/item/weapon/shard{icon_state = "small"},/turf/open/floor/plasteel/airless/white,/area/derelict/medical) +"iM" = (/obj/item/stack/medical/bruise_pack,/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/medical) +"iN" = (/obj/item/stack/medical/ointment,/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/medical) +"iO" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/open/floor/plating/airless,/area/derelict/medical) +"iP" = (/obj/structure/closet/l3closet,/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"iQ" = (/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"iR" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/open/space,/area/space) +"iS" = (/obj/structure/window/reinforced{dir = 1},/turf/open/space,/area/space) +"iT" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/open/space,/area/space) +"iU" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel/chapel{dir = 1},/area/derelict/medical/chapel) +"iV" = (/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plasteel/chapel{dir = 4},/area/derelict/medical/chapel) +"iW" = (/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plasteel/chapel{dir = 1},/area/derelict/medical/chapel) +"iX" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/chapel{dir = 4},/area/derelict/medical/chapel) +"iY" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/airless/white,/area/derelict/medical) +"iZ" = (/obj/item/weapon/cigbutt,/turf/open/floor/plasteel/airless/white,/area/derelict/medical) +"ja" = (/obj/machinery/door/airlock/glass{name = "Med-Sci"; req_access_txt = "9"},/turf/open/floor/plating/airless,/area/derelict/medical) +"jb" = (/obj/structure/table,/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"jc" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"jd" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel,/area/derelict/arrival) +"je" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/chapel,/area/derelict/medical/chapel) +"jf" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/airless/white,/area/derelict/medical) +"jg" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/airless/white,/area/derelict/medical) +"jh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/airless/white,/area/derelict/medical) +"ji" = (/obj/item/stack/cable_coil/cut{amount = 2; dir = 2; icon_state = "coil_red2"},/turf/open/floor/plasteel/airless/white,/area/derelict/medical) +"jj" = (/obj/item/stack/cable_coil/cut{amount = 2; dir = 2; icon_state = "coil_red2"},/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/medical) +"jk" = (/obj/item/weapon/reagent_containers/glass/beaker,/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/medical) +"jl" = (/obj/structure/closet/wardrobe/genetics_white,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plasteel/airless/white,/area/derelict/medical) +"jm" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"jn" = (/obj/item/weapon/shard,/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"jo" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"jp" = (/turf/open/floor/plasteel/airless/white,/area/ruin/unpowered/no_grav) +"jq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"jr" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/hallway/primary) +"js" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"jt" = (/obj/item/weapon/pen,/turf/open/floor/plasteel,/area/derelict/arrival) +"ju" = (/obj/machinery/light/small,/turf/open/floor/plasteel/chapel{dir = 4},/area/derelict/medical/chapel) +"jv" = (/obj/machinery/door/window{dir = 8},/turf/open/floor/plasteel/airless,/area/derelict/medical/chapel) +"jw" = (/turf/open/floor/plasteel/airless,/area/derelict/medical/chapel) +"jx" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/airless,/area/derelict/medical/chapel) +"jy" = (/obj/machinery/power/apc{dir = 4; name = "Worn-out APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plasteel/airless,/area/derelict/medical/chapel) +"jz" = (/obj/machinery/power/apc{dir = 0; name = "Worn-out APC"; pixel_y = -24},/obj/structure/cable,/turf/open/floor/plasteel/airless/white,/area/derelict/medical) +"jA" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/bed,/turf/open/floor/plasteel/airless/white,/area/derelict/medical) +"jB" = (/obj/item/stack/medical/ointment,/turf/open/floor/plasteel/airless/white,/area/derelict/medical) +"jC" = (/obj/structure/bed,/turf/open/floor/plasteel/airless/white,/area/derelict/medical) +"jD" = (/obj/item/stack/cable_coil/cut{amount = 2; dir = 2; icon_state = "coil_red2"},/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/medical) +"jE" = (/obj/machinery/door/airlock/medical{name = "Medical"},/turf/open/floor/plasteel/airless/white,/area/derelict/medical) +"jF" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"jG" = (/obj/structure/window/fulltile,/turf/open/space,/area/ruin/unpowered/no_grav) +"jH" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel,/area/derelict/arrival) +"jI" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/open/floor/plasteel,/area/derelict/arrival) +"jJ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating,/area/derelict/arrival) +"jK" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating,/area/derelict/arrival) +"jL" = (/turf/closed/wall/r_wall,/area/derelict/medical/chapel) +"jM" = (/obj/machinery/door/window,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/airless,/area/derelict/medical/chapel) +"jN" = (/obj/machinery/door/window/southleft,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/airless/white,/area/derelict/medical) +"jO" = (/obj/machinery/door/window/southright,/turf/open/floor/plasteel/airless/white,/area/derelict/medical) +"jP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"jQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/research{name = "Toxins Research"; req_access_txt = "7"},/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"jR" = (/obj/item/stack/cable_coil/cut{amount = 2; dir = 2; icon_state = "coil_red2"},/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"jS" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"jT" = (/obj/structure/lattice,/obj/structure/grille,/turf/open/space,/area/ruin/unpowered/no_grav) +"jU" = (/obj/machinery/door/airlock/external{name = "Arrivals Docking Bay 1"},/turf/open/floor/plating,/area/derelict/arrival) +"jV" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/ruin/unpowered/no_grav) +"jW" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"jX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/airless{icon_state = "floorscorched1"},/area/derelict/hallway/primary) +"jY" = (/turf/open/floor/plasteel/airless{icon_state = "floorscorched1"},/area/derelict/hallway/primary) +"jZ" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"ka" = (/obj/structure/frame/computer,/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"kb" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/airless,/area/ruin/unpowered/no_grav) +"kc" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/airless,/area/ruin/unpowered/no_grav) +"kd" = (/obj/structure/window/fulltile,/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"ke" = (/obj/effect/decal/cleanable/dirt,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"kf" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/airless,/area/ruin/unpowered/no_grav) +"kg" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/window/fulltile,/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"kh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/research{name = "Toxins Research"; req_access_txt = "7"},/turf/open/floor/plasteel/airless,/area/derelict/arrival) +"ki" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/derelict/arrival) +"kj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/derelict/arrival) +"kk" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel,/area/derelict/arrival) +"kl" = (/obj/machinery/door/airlock/command{name = "Teleporter Room"},/turf/open/floor/plasteel/airless,/area/derelict/medical/chapel) +"km" = (/obj/item/stack/cable_coil/cut{amount = 2; dir = 2; icon_state = "coil_red2"},/turf/open/floor/plasteel/airless{icon_state = "floorscorched1"},/area/derelict/hallway/primary) +"kn" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"ko" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"kp" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"kq" = (/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"kr" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 0; name = "Worn-out APC"; pixel_y = -24},/turf/open/floor/plasteel,/area/derelict/arrival) +"ks" = (/obj/machinery/portable_atmospherics/scrubber,/turf/open/floor/plasteel,/area/derelict/arrival) +"kt" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating/airless,/area/derelict/hallway/primary) +"ku" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel/airless{icon_state = "floorscorched1"},/area/derelict/hallway/primary) +"kv" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"kw" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"kx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"ky" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"kz" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"kA" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"kB" = (/obj/structure/window/fulltile,/turf/open/floor/plating/airless,/area/derelict/arrival) +"kC" = (/obj/machinery/portable_atmospherics/pump,/turf/open/floor/plasteel,/area/derelict/arrival) +"kD" = (/obj/machinery/door/window,/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"kE" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"kF" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"kG" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"kH" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"kI" = (/obj/machinery/vending/hydronutrients,/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"kJ" = (/obj/structure/girder,/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"kK" = (/obj/structure/girder,/turf/open/floor/plasteel/airless,/area/ruin/unpowered/no_grav) +"kL" = (/obj/structure/window/fulltile,/turf/open/space,/area/space) +"kM" = (/obj/structure/girder,/turf/open/floor/plating,/area/derelict/arrival) +"kN" = (/obj/structure/bed,/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"kO" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating/airless,/area/derelict/hallway/primary) +"kP" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating/airless,/area/derelict/hallway/primary) +"kQ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/derelict/hallway/primary) +"kR" = (/obj/machinery/door/airlock/security{name = "Security"; req_access = null; req_access_txt = "1"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"kS" = (/obj/machinery/door/window,/turf/open/floor/plasteel/airless,/area/hallway/primary/port) +"kT" = (/obj/machinery/vending/hydroseeds,/turf/open/floor/plasteel/airless,/area/hallway/primary/port) +"kU" = (/obj/item/weapon/cigbutt,/turf/open/space,/area/space) +"kV" = (/obj/machinery/light{dir = 1},/turf/open/floor/plasteel,/area/derelict/arrival) +"kW" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"kX" = (/obj/structure/table,/obj/item/weapon/stock_parts/cell,/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"kY" = (/obj/machinery/vending/sovietsoda,/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"kZ" = (/obj/effect/decal/cleanable/blood/gibs/old,/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"la" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 0; name = "Worn-out APC"; pixel_y = -24},/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"lb" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel/airless,/area/ruin/unpowered/no_grav) +"lc" = (/obj/structure/window/reinforced{dir = 8},/obj/item/stack/cable_coil/cut{amount = 2; dir = 2; icon_state = "coil_red2"},/turf/open/floor/plasteel/airless,/area/ruin/unpowered/no_grav) +"ld" = (/obj/structure/lattice,/obj/item/stack/cable_coil/cut,/turf/open/space,/area/space) +"le" = (/obj/effect/decal/cleanable/blood/splatter,/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"lf" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/obj/effect/decal/cleanable/blood/splatter,/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"lg" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"lh" = (/obj/machinery/door/airlock/maintenance{name = "Atmospherics Access"; req_access_txt = "24"},/turf/open/floor/plating/airless,/area/derelict/hallway/primary) +"li" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/airless,/area/ruin/unpowered/no_grav) +"lj" = (/obj/item/stack/cable_coil/cut{amount = 2; dir = 2; icon_state = "coil_red2"},/turf/open/floor/plasteel/airless,/area/ruin/unpowered/no_grav) +"lk" = (/obj/structure/closet/wardrobe/orange,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/obj/item/weapon/shovel/spade,/obj/item/weapon/cultivator,/turf/open/floor/plasteel/airless,/area/ruin/unpowered/no_grav) +"ll" = (/obj/structure/grille,/turf/open/floor/plating,/area/derelict/arrival) +"lm" = (/obj/structure/closet/wardrobe,/obj/effect/spawner/lootdrop/maintenance{lootcount = 3; name = "3maintenance loot spawner"},/turf/open/floor/plasteel,/area/derelict/arrival) +"ln" = (/obj/item/weapon/stock_parts/manipulator{pixel_x = -15; pixel_y = 10},/obj/item/weapon/stock_parts/manipulator,/turf/open/floor/plating/airless,/area/derelict/hallway/primary) +"lo" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance{lootcount = 3; name = "3maintenance loot spawner"},/turf/open/floor/plating/airless,/area/derelict/hallway/primary) +"lp" = (/obj/structure/chair/stool,/obj/effect/decal/remains/human,/obj/effect/decal/cleanable/blood/old,/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"lq" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/beaker{list_reagents = list("sacid" = 50)},/obj/item/weapon/paper/crumpled/bloody{desc = "Looks like someone started shakily writing a will in space common, but were interrupted by something bloody..."; info = "I, Victor Belyakov, do hereby leave my _- "; name = "unifinished paper scrap"},/obj/item/weapon/pen,/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"lr" = (/obj/structure/table,/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"ls" = (/turf/open/floor/plasteel/airless,/area/derelict/atmospherics) +"lt" = (/turf/open/floor/plating/airless,/area/derelict/atmospherics) +"lu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating/airless,/area/derelict/atmospherics) +"lv" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/derelict/atmospherics) +"lw" = (/obj/machinery/atmospherics/components/unary/tank/air,/turf/open/floor/plating/airless,/area/derelict/atmospherics) +"lx" = (/turf/closed/wall,/area/derelict/atmospherics) +"ly" = (/turf/closed/wall/r_wall,/area/derelict/atmospherics) +"lz" = (/turf/open/space,/area/ruin/unpowered/no_grav) +"lA" = (/obj/structure/lattice,/turf/open/space,/area/ruin/unpowered/no_grav) +"lB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/window/reinforced,/turf/open/floor/plasteel/airless,/area/ruin/unpowered/no_grav) +"lC" = (/obj/structure/window/reinforced,/turf/open/floor/plasteel/airless,/area/ruin/unpowered/no_grav) +"lD" = (/obj/structure/grille,/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"lE" = (/obj/structure/bed,/turf/open/floor/plasteel/airless,/area/ruin/unpowered/no_grav) +"lF" = (/turf/open/floor/plasteel/airless/floorgrime,/area/derelict/hallway/primary) +"lG" = (/turf/open/floor/plasteel/airless{icon_state = "damaged5"},/area/derelict/hallway/primary) +"lH" = (/obj/item/ammo_casing/a357,/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"lI" = (/obj/structure/table,/obj/item/device/healthanalyzer,/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"lJ" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/turf/open/floor/plating/airless,/area/derelict/atmospherics) +"lK" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plating/airless,/area/derelict/atmospherics) +"lL" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{icon_state = "connector_map"; dir = 8},/turf/open/floor/plating/airless,/area/derelict/atmospherics) +"lM" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 6},/turf/open/floor/plating/airless,/area/derelict/atmospherics) +"lN" = (/obj/machinery/atmospherics/pipe/manifold/cyan/hidden,/obj/machinery/meter,/turf/open/floor/plating/airless,/area/derelict/atmospherics) +"lO" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden{icon_state = "intact"; dir = 9},/turf/open/floor/plating/airless,/area/derelict/atmospherics) +"lP" = (/obj/machinery/door/airlock/maintenance{name = "Atmospherics Access"; req_access_txt = "24"},/turf/open/floor/plating/airless,/area/derelict/atmospherics) +"lQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/airless,/area/ruin/unpowered/no_grav) +"lR" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"lS" = (/obj/structure/closet/wardrobe/mixed,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plasteel,/area/derelict/arrival) +"lT" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/turf/open/floor/plasteel/airless,/area/derelict/atmospherics) +"lU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plating/airless,/area/derelict/atmospherics) +"lV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{icon_state = "intact"; dir = 5},/turf/open/floor/plating/airless,/area/derelict/atmospherics) +"lW" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/components/binary/valve,/turf/open/floor/plating/airless,/area/derelict/atmospherics) +"lX" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"lY" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/derelict/arrival) +"lZ" = (/obj/machinery/door/airlock/external{name = "Escape Airlock"},/turf/open/floor/plating,/area/derelict/arrival) +"ma" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/open/floor/plating/airless,/area/derelict/atmospherics) +"mb" = (/obj/structure/lattice,/obj/item/stack/cable_coil/cut,/turf/open/space,/area/ruin/unpowered/no_grav) +"mc" = (/obj/machinery/door/window{dir = 8},/obj/item/weapon/shard{icon_state = "medium"},/turf/open/floor/plasteel/airless,/area/ruin/unpowered/no_grav) +"md" = (/turf/closed/wall,/area/derelict/hallway/secondary) +"me" = (/obj/structure/girder,/turf/open/floor/plating/airless,/area/derelict/hallway/secondary) +"mf" = (/turf/closed/wall/r_wall,/area/derelict/hallway/secondary) +"mg" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"mh" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"mi" = (/obj/item/ammo_casing/a357{pixel_x = -5},/obj/item/ammo_casing/a357{pixel_x = 5; pixel_y = 6},/obj/item/ammo_casing/a357,/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"mj" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plating/airless,/area/derelict/atmospherics) +"mk" = (/turf/open/floor/plasteel/airless{icon_state = "floorscorched1"},/area/derelict/atmospherics) +"ml" = (/obj/structure/window/fulltile,/turf/open/floor/plating/airless,/area/derelict/hallway/secondary) +"mm" = (/obj/structure/grille,/obj/item/weapon/shard,/obj/item/weapon/shard{icon_state = "medium"},/turf/open/floor/plating/airless,/area/space) +"mn" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"mo" = (/obj/structure/window/reinforced,/turf/open/floor/plasteel/airless,/area/derelict/atmospherics) +"mp" = (/turf/open/floor/plasteel/airless{icon_state = "damaged5"},/area/derelict/atmospherics) +"mq" = (/turf/open/floor/plasteel{icon_state = "damaged2"; initial_gas_mix = "TEMP=2.7"},/area/derelict/atmospherics) +"mr" = (/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/atmospherics) +"ms" = (/turf/open/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/atmospherics) +"mt" = (/obj/structure/window/fulltile,/turf/open/space,/area/derelict/atmospherics) +"mu" = (/obj/item/stack/rods,/turf/open/floor/plasteel/airless,/area/derelict/hallway/secondary) +"mv" = (/obj/item/weapon/shard{icon_state = "small"},/turf/open/space,/area/space) +"mw" = (/obj/structure/frame/computer,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/airless,/area/derelict/atmospherics) +"mx" = (/obj/machinery/portable_atmospherics/canister,/turf/open/floor/plasteel/airless,/area/derelict/atmospherics) +"my" = (/obj/machinery/light/small,/turf/open/floor/plasteel/airless{icon_state = "damaged5"},/area/derelict/atmospherics) +"mz" = (/obj/structure/lattice,/turf/open/space,/area/derelict/atmospherics) +"mA" = (/obj/item/stack/cable_coil/cut,/turf/open/space,/area/ruin/unpowered/no_grav) +"mB" = (/obj/structure/door_assembly/door_assembly_mai{name = "airlock assembly"},/turf/open/floor/plasteel/airless,/area/derelict/hallway/secondary) +"mC" = (/obj/item/weapon/wirecutters,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/airless,/area/derelict/hallway/secondary) +"mD" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/derelict/hallway/secondary) +"mE" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plating/airless,/area/derelict/hallway/primary) +"mF" = (/obj/structure/chair{dir = 1},/turf/open/floor/plating/airless,/area/derelict/atmospherics) +"mG" = (/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/atmospherics) +"mH" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/ruin/unpowered/no_grav) +"mI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/airless,/area/derelict/hallway/secondary) +"mJ" = (/obj/item/stack/cable_coil/cut,/turf/open/floor/plating/airless,/area/derelict/hallway/primary) +"mK" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plating/airless,/area/derelict/hallway/primary) +"mL" = (/obj/structure/window/reinforced,/turf/open/floor/plating/airless,/area/derelict/atmospherics) +"mM" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/open/floor/plasteel/airless,/area/derelict/atmospherics) +"mN" = (/turf/open/floor/plasteel/airless{icon_state = "damaged1"},/area/derelict/atmospherics) +"mO" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/space,/area/ruin/unpowered/no_grav) +"mP" = (/obj/machinery/portable_atmospherics/pump,/turf/open/floor/plating/airless,/area/derelict/atmospherics) +"mQ" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance{lootcount = 8; name = "8maintenance loot spawner"},/turf/open/floor/plating/airless,/area/derelict/atmospherics) +"mR" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating/airless,/area/derelict/hallway/primary) +"mS" = (/turf/open/space,/area/derelict/atmospherics) +"mT" = (/obj/machinery/light/small,/turf/open/floor/plasteel/airless,/area/derelict/atmospherics) +"mU" = (/turf/open/floor/plasteel/airless,/area/derelict/hallway/secondary) +"mV" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/airless,/area/derelict/hallway/secondary) +"mW" = (/obj/machinery/door/airlock/maintenance{name = "Aux Storage"; req_access_txt = "23"},/turf/open/floor/plating/airless,/area/derelict/hallway/secondary) +"mX" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/obj/machinery/power/apc{dir = 8; name = "Worn-out APC"; pixel_x = -24; pixel_y = 0},/turf/open/floor/plasteel/airless,/area/derelict/hallway/secondary) +"mY" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/derelict/hallway/secondary) +"mZ" = (/turf/open/floor/plating/airless,/area/derelict/hallway/secondary) +"na" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/airless,/area/derelict/hallway/secondary) +"nb" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/airless,/area/derelict/hallway/secondary) +"nc" = (/obj/machinery/power/apc{dir = 1; name = "Worn-out APC"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel/airless,/area/derelict/atmospherics) +"nd" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/airless,/area/derelict/hallway/secondary) +"ne" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/airless{icon_state = "derelict9"},/area/derelict/hallway/secondary) +"nf" = (/obj/machinery/light/small{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/airless{icon_state = "derelict10"},/area/derelict/hallway/secondary) +"ng" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/airless{icon_state = "derelict11"},/area/derelict/hallway/secondary) +"nh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/airless{icon_state = "derelict12"},/area/derelict/hallway/secondary) +"ni" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/airless{icon_state = "derelict13"},/area/derelict/hallway/secondary) +"nj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/airless{icon_state = "derelict14"},/area/derelict/hallway/secondary) +"nk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/airless{icon_state = "derelict15"},/area/derelict/hallway/secondary) +"nl" = (/obj/machinery/light/small{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/airless{icon_state = "derelict16"},/area/derelict/hallway/secondary) +"nm" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/airless,/area/derelict/hallway/secondary) +"nn" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/airless,/area/derelict/hallway/secondary) +"no" = (/turf/open/floor/plasteel/airless{icon_state = "derelict1"},/area/derelict/hallway/secondary) +"np" = (/turf/open/floor/plasteel/airless{icon_state = "derelict2"},/area/derelict/hallway/secondary) +"nq" = (/turf/open/floor/plasteel/airless{icon_state = "derelict3"},/area/derelict/hallway/secondary) +"nr" = (/turf/open/floor/plasteel/airless{icon_state = "derelict4"},/area/derelict/hallway/secondary) +"ns" = (/turf/open/floor/plasteel/airless{icon_state = "derelict5"},/area/derelict/hallway/secondary) +"nt" = (/turf/open/floor/plasteel/airless{icon_state = "derelict6"},/area/derelict/hallway/secondary) +"nu" = (/turf/open/floor/plasteel/airless{icon_state = "derelict7"},/area/derelict/hallway/secondary) +"nv" = (/turf/open/floor/plasteel/airless{icon_state = "derelict8"},/area/derelict/hallway/secondary) +"nw" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/airless,/area/derelict/hallway/secondary) +"nx" = (/obj/structure/lattice,/turf/open/space,/area/derelict/hallway/secondary) +"ny" = (/obj/structure/grille,/obj/structure/window/reinforced,/turf/open/floor/plating/airless,/area/derelict/hallway/secondary) +"nz" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating/airless,/area/derelict/hallway/secondary) +"nA" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/derelict/hallway/secondary) +"nB" = (/turf/closed/wall/r_wall,/area/derelict/se_solar) +"nC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/engineering{name = "Aft Solar Access"; req_access_txt = "10"},/turf/open/floor/plasteel/airless,/area/derelict/se_solar) +"nD" = (/obj/machinery/door/airlock/external{name = "Escape Airlock"},/turf/open/floor/plating/airless,/area/derelict/hallway/secondary) +"nE" = (/obj/machinery/door/firedoor,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating/airless,/area/derelict/hallway/secondary) +"nF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/turf/open/floor/plasteel/airless,/area/derelict/se_solar) +"nG" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/airless,/area/derelict/hallway/secondary) +"nH" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating/airless,/area/derelict/hallway/secondary) +"nI" = (/obj/structure/girder/reinforced,/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"nJ" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/closed/wall/r_wall,/area/derelict/se_solar) +"nK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/closed/wall/r_wall,/area/derelict/se_solar) +"nL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/door/airlock/engineering{name = "Aft Solar Access"; req_access_txt = "10"},/turf/open/floor/plasteel/airless,/area/derelict/se_solar) +"nM" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating/airless,/area/derelict/se_solar) +"nN" = (/obj/structure/grille,/turf/open/floor/plating/airless,/area/derelict/hallway/secondary) +"nO" = (/obj/machinery/power/smes,/obj/structure/cable,/turf/open/floor/plasteel/airless,/area/derelict/se_solar) +"nP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/airless,/area/derelict/se_solar) +"nQ" = (/turf/open/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/se_solar) +"nR" = (/turf/open/floor/plasteel/airless,/area/derelict/se_solar) +"nS" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel/airless,/area/derelict/se_solar) +"nT" = (/obj/docking_port/stationary{dheight = 0; dir = 2; dwidth = 11; height = 22; id = "whiteship_z4"; name = "KSS13: Derelict"; width = 35},/turf/open/space,/area/space) +"nU" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/item/drone_shell,/turf/open/floor/plasteel/airless,/area/derelict/se_solar) +"nV" = (/turf/open/floor/plating/airless,/area/derelict/se_solar) +"nW" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/airless,/area/derelict/se_solar) +"nX" = (/obj/item/weapon/storage/toolbox/syndicate,/turf/open/floor/plasteel/airless,/area/derelict/se_solar) +"nY" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/obj/machinery/power/solar_control{id = "derelictsolar"; name = "Primary Solar Control"; track = 0},/turf/open/floor/plasteel/airless,/area/derelict/se_solar) +"nZ" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 8; environ = 0; equipment = 0; lighting = 0; locked = 0; name = "Worn-out APC"; pixel_x = -24; pixel_y = 0},/turf/open/floor/plating/airless,/area/derelict/se_solar) +"oa" = (/obj/item/weapon/paper{desc = ""; info = "The Syndicate have cunningly disguised a Syndicate Uplink as your PDA. Simply enter the code \"678 Bravo\" into the ringtone select to unlock its hidden features.

Objective #1. Kill the God damn AI in a fire blast that it rocks the station. Success!
Objective #2. Escape alive. Failed."; name = "Mission Objectives"},/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/se_solar) +"ob" = (/obj/machinery/light/small{dir = 4},/obj/item/clothing/head/helmet/space/syndicate/black/red,/turf/open/floor/plasteel/airless,/area/derelict/se_solar) +"oc" = (/obj/item/stack/rods,/turf/open/floor/plating/airless,/area/derelict/hallway/secondary) +"od" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/turf/open/floor/plasteel/airless,/area/ruin/unpowered/no_grav) +"oe" = (/obj/machinery/light/small,/turf/open/floor/plasteel/airless,/area/derelict/se_solar) +"of" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/airless,/area/derelict/se_solar) +"og" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/turf/open/floor/plasteel/airless,/area/derelict/se_solar) +"oh" = (/obj/item/clothing/suit/space/syndicate/black/red,/turf/open/floor/plasteel/airless,/area/derelict/se_solar) +"oi" = (/obj/effect/decal/remains/human{desc = "This guy seemed to have died in terrible way! Half his remains are dust."; icon_state = "remains"; name = "Syndicate agent remains"},/turf/open/floor/plasteel/airless,/area/derelict/se_solar) +"oj" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/airless,/area/derelict/se_solar) +"ok" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/external,/turf/open/floor/plasteel/airless,/area/derelict/se_solar) +"ol" = (/obj/structure/cable,/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/derelict_aft) +"om" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/derelict_aft) +"on" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar{id = "derelictsolar"; name = "Derelict Solar Array"},/turf/open/floor/plasteel/airless,/area/solar/derelict_aft) +"oo" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/derelict_aft) +"op" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar{id = "derelictsolar"; name = "Derelict Solar Array"},/turf/open/floor/plating/airless{icon_state = "platingdmg3"},/area/solar/derelict_aft) +"oq" = (/turf/open/floor/plating/airless,/turf/open/floor/plating/airless{icon_state = "platingdmg2"},/area/solar/derelict_aft) +"or" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/space,/area/solar/derelict_aft) +"os" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/space,/area/solar/derelict_aft) +"ot" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/space,/area/solar/derelict_aft) +"ou" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/derelict_aft) +"ov" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/space,/area/solar/derelict_aft) +"ow" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/space,/area/solar/derelict_aft) +"ox" = (/obj/structure/cable,/obj/machinery/power/solar{id = "derelictsolar"; name = "Derelict Solar Array"},/turf/open/floor/plasteel/airless,/area/solar/derelict_aft) +"oy" = (/turf/open/floor/plating/airless{icon_state = "platingdmg1"},/area/solar/derelict_aft) +"oz" = (/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/derelict_aft) +"oA" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/space,/area/solar/derelict_aft) +"oB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/derelict_aft) +"oC" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/space,/area/solar/derelict_aft) +"oD" = (/obj/machinery/power/tracker,/obj/structure/cable,/turf/open/floor/plasteel/airless,/area/solar/derelict_aft) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacaaadaaababacacacacacacaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaacaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafagahaaahahahaeahahahaaahahahaaacaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaiaiajakalalalamanananakananaoaaacaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacabapapapaaapapapaqapapapaaapapapababaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaabaaaaaaaaaaaaaraaaaaaaaaaaaabaaacaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaabaaaaaaaaaaaaaeaaaaaaaaaaaaabaaacaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacasatatauavawasacacacacabacaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxaaaxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayasazaAaBaCaDasaEabaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxaxaxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaFaBaGaHaIaJasaEaEaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxaKaLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaMaNaOaPaPaQasasaEaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxaRaxaxaxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaSaTaUazazazazaVaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxaWaxaXaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxayayayayayayaYayayayayayayaYayayayayayayaSaZbabbbbaUazbcbdaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxaRaRbeaWaRbfbgaxaxaxbgaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaSasasasasbhasasbiaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxaxaxaxaxaRaxaRaRaRaxaRaRaRaxaxaxaxaxaxaxbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjasbkaNazasbiaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablbjblaRaxaRaxaRaxaRaxaRaxaxaxbgaxbgaxaxaxaxaxbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjasasbmasasaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablbjblaRaxaRaxaRaxaRaxaRaxaxaRaRbnaRbobpaWaRaxbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjasasbqbrbsasaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablbjblaRaxaRaxaRaxaRaxaRaxaxaRaRaRaRaRaxaxbtaxbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjasbkazbubvasaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablbjblaRaxaRaxaRaxaRaxaRaxaxbwaRbxaRbyaxaxbzbjbjaxaxaxaxaxaxaxaxaxaxaxaxaxbjbjbjbjasbAazbBbCasaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablbjblaRaxaRaxaRaxaRaxaRaxaxbyaRbDaRbyaxaxbzbjbjaxaxbzbzbzbEbzbzbFbGbzaxaxbjbjbjbjasbHazbrbsasbiaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablbjblaRboaRaxaRboaRaxaRbpbpaRbeaRbtbgaxaxbIbzbzbzbJbzbKbEbEbLbMbKbzbNaxaxbjbjbjbjasazazaNazasbiaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablbOblbgaxaxaxbgaxaxaxbgaRaxaRaxaxaWaxaxaxbPbjbjaxaxbNbNbKbQbRbLbKbNbNaxaxbjbjbjbjasazazaNbSasasasaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablbOblaxaxaxaxaxaxaxaxaxaxaxbTaxbUbebVaxaxbjbjbjaxaxbWbXbYbKbFbEbZbNbzaxaxbjbjbjbjasazazaNazazazcaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablcbababaaaaaaaaaaaaaaaaaxaxaxaxaxaxaxaxaxbjbjbjaxaxbPcccdbNbEbNbzbNbzaxaxbjbjbjbjasbHazaNazasasasaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablaaaaababaaaaaaaaayacacacabayaaaaaaaaaaaxaxaxaxaxaxaxcecfcfcfcfcgaxaxaxaxbjbjbjbjasazazaNazasbiaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaababchchchabaaaaaaaaaaaaaaaaaaaaaaaaaaaaciaaaaaacjbjbjbjbjbjbjbjbjasazazckaUasbiaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaciaaaaaacjbjbjbjbjbjbjbjbjasbHazazaNaschaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaabclclclclaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaciaaaaaacjbjbjbjbjbjbjbjbjasasazcmaNasaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaacncocpcocqclaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaciaaaaaacrcscscscscscscscscscscscsctcsaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaabcucvcwcucuabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrcxcxcyczcAcBcscCcDcEcscxcFcsaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcucGcHcucIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacJcKcKcLcKcMcNcscxcxcxcscsctcsaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaclcwcOcOcPcoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacscxcxcxcxcFcQcscRcxcScscxcFcsaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaclcOcOcOcOcuabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacscTcTcTcUcVcscscTcWcTcscscXcsaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababaYaaaaclcYcZdadbdcclabaaaYababaaaaaaaaaaaaaaaaaaaaaaaaaaaacscxcxcxcxcFcscsddcxcxcxcxcFcsaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababaYdeababcldfdgdhdgdiclababdjaYabababaaaaaaaaaaaaaadkdkcicicicsdlcxdmcKdndodpcKcKcKcKcKdqcsacaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababdrdrdrdrdscOdtcOdudrdrdrdrabababababaaaaaaaaaaaaaadvdkcicicsdwdxdydwdwcscscscscscscscscsdzchaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdrdrdrdrdAdrdBcldCcldDdrdrdrdrdrdrababaaaaaaaaaadkaadEaacicicicscxcxcFcxcxdFdGdHdIdJdKdLdIdMdNaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrdrdrdOdPdQdRdSdTdUdVcldWdOdXdOdrdrdrabaaaaaaaaaaaaaadkaaaaaaaacsdlcxdYcxcxdFdZeaebeaeaeaeaecedacaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrdreeefegehehdOeidaejekelemdOdOdOeneodrciaaaaaaaaaaaaaaaaaaaaaaaacsdwdxepdwdweqeaeaereseaeaebeaeteuaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrdrevevevevewdWexdrdreydrdWezdXezezdWdrciaaaaaaaaaaaaaaaaaaaaaaaacscxddeAcxcxeBeaeaeaeaeCeaeaeDeEacaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrdrdWezezezeFdPdOeGezdWezezdOdPdPezezdrciaaaaaaaaaaaaaaaaaaaaaaabcscxcxeHcLeIeJeKeKeLeMebeaeaeaetacaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdrdrezdPdXdOeNdOdXdOdWdWezdOdOdOdOdXdOdrciaaaaaaaaaaaaaaaaaaaaababcscxcxeAcxcxeOePeQeaeReSeaeSeTeUayeVaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababdrdrdOdXdOeWeXeYeZdWfadWdWfbfcfdezdPdXdrciabaaaaaaaaaadkaaaaabababcscscscFcscxdFfeePfffgfhdGdGeQfieuaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababdrdrezdOeWfjfkfldWdWdWdWdWfmfmfnfddOdPdrciababaacicscscscscscscscscscscxcFcscscsfofofpfofofodzdzdzacaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdrdrdrezezfqfrdPdWdWdWdWdWdWdWdWfsftezfudrciciababcicsfvfwfxfyfzfAfBcscscxcFcsfCfCaYabayayaaaYfDaychacaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrdrdrdrdrezezfqfjdPdWdWdWdWdWdWdWdWfEftdWezdrdrdrdrdraacsfFfxfxfxfxfxfxcscscxcFcsfCfCabaaaaaaaaababaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdrdrezfGfHezezfIfJdWeZaaaaaaaaaadWdWfEewdWezdOezdWdrdrabcsfxfxfxfxfxfxfxcscscsfKcscscsabaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrdrfLdOfEfdezdPezfMdWdWaaaaaaaaaadWdWfNfMezfOfPfQdOezdrdrcscsfRcsfSfSfSfScsfxfxfTfxfxcsdkaaaaaaaaaaaaaaaaayayaYchaychayaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrdremdXfUftdPdPdPdXdWdWaaaaaaaaaadWdWfVdWezfWfXfQdOfYdrdrfZgagbgbgcgcgcgcgdgegegffxggcsababaaaaaaaaaaaaaaayayaYchayfDayaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrdrezezfUftezdXeZghdWdWaaaaaaaaaadWdWdWgidWezdOgjdXezgkgkfZglgmgngogogogpcsgqfxfTfxfxcsaaaaaaaaaaaaaaayayaygraYchaychayaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdrdrezgsewdOdPgtgudWdWaaaaaaaaaadWdWgvgwezezfbfJezdrgkgxgygagzgngogAgogpcsfxfxgBfxfxcsaaaaaaaaaaaaayayayaygCaYchgDchayaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdrdrdrdrdrezezfqdWdWdOdWdWdWdWdWdWdWdWgEdPdPdrdrdrdrgkglfZfZfZgFfZfZfZfZfZfZfZcscscscsaaaaayaychayaygDgGgHgraYchgrfDayaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababdrdrdrdOgIgJdWdOdXdWdWdWdPdOdWdWgKgEdXezdrdrdrababglfZgngLgLfZgogMgNfZgOgLcscsaaababayaygCchayaYgrgCgDgPaYchgQchayaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababdrdrdXdPgRdWdWdOgSdOdPdXeheiehgSgTdPdPdrdraaaagxgUfZgngLgngngogogofZfZaaababayaaaaaygrgrchaygVgVgVgVgVgVgWgWgWayaa +aaaagXgXgXgXgXgXgXgXgXgXgXgXgXaaaaaaaaaaaaaaaaaaaaaaaagYdWgYababgJfbftezezezgZevevewdOdOezdrdraagLhagmfZgogogognhbgofZfZfZabhcchchchhcgWgWgWgWgWgWhdhehfhghfhhhigWaaaa +aaaagXhjhjhjhjhkhkhkhkhkhlhjgXaaaaaaaaaaaaaaaaaaaahmaadWdWhnababdWhoezdOdOfWezezdOdPdXezezdrdraagLgLgmfZfZfZgofZfZfZfZfZfZchgCayaygCgChphphqhqhrgWhshdhshfhfhihfgWaaaa +aaaagXgXgXhjhthkhkhkgXgXhugXgXgXgXgXhvhwhwhwhvhxhyhzhAhvhBabhCabezezdOdPdPdPdOezezdOdPdrdrdrdraaglgmgnfZgogzgngzfZgzgzhDgzaygCgCgCaygChqhphrhrhqhEhfhfhfhfhfhfhfgWaaaa +aahCgXhFgXgXgXgXgXhGgXhHhkhlhkhkhkgXhIhIhIhJhIhKhLhzhzhMababababdrdrezhNdXdOezdrdrdrdrdrdrababgLhOgmgngogogngLgzgzhDgzgLgLchchhchchchcgVgVgVgVgVgVhfhfhPhfhfhfhfgWaaaa +aahQhRhShThShUhShThSgXhHhkhHhkhHhkgXhVhIhIhIhIhWhXhYhzhZhzhzababdrdrdrdrdWdrdrdrdrdrdrabaaayfZgUgmgngnfZgogngngLgkgkgkgkgkabababaaaaaaiagDiaayibgVhdhdhfhdichfidgWaaaa +aahQieifigihiiijiiijgXhHhkhHhkhHhkhuhIhIhIhIhIhIhXikilhzhzhzaaababdrdriminiodrdrabababaaaaayfZgmgmipgnfZfZfZfZgzgkgPgCgPiqaaabaaaaaaaaaaaaiaabiqgVirirhfirishfhfgWaaaa +itiuiviwixiwhThShThSgXhHiyhHizhHhkgXiAhIhIhIhIiBiChXhYhzhzhzaaaaababdrdrdrdrdrababaaaaiDiDiEfZgniFgngofZgogzgngzgkgCiqgCgCaaabaaaadkaaaaaaaaiqabgVhfhfhfhfiGhdhsgWaaaa +iHiIiJiJiJiKiiijiiijgXhHhkhHhkhHhkhuhIhIhIhIhIiLhIiMhXiNhYhzhziOhvhvhvhviPiQabaaabaaiRaaaaayfZfZipgnfZfZgLgogLgzgkgCiaaaaaaaabaaaaaaaaaaaaaaaagPgVgWhfhfgWgWgWgWgWaaaa +iSiTiUiViWiVhTiXhUhSgXhHhkhkhkhthkgXhIhIhIhIhIiYhIiZhIhXhXhYhzhzjahzjaiDayayayaaababababaajbfZgojcgogofZgogogogogkiqgCaaaaaaabaaaaaaaaaaaaaaaagVgVgVhfhfgWjdjdjdgWaaaa +aahQieijiijeiiijiiijgXgXgXgXgXgXgXgXhVhIhIhIjfjgjhjijhjihXhYjjjkhvjlhvgPayayayjmjnayayayjojpfZgojqgogofZgojrgojsgkgkgkayababayabayabababayababayaygVhfhfhfhfhfjtgWaaaa +aahQhRhShTjuhThShThSjvjwjwjwjxjwjygXiAhIhIhIjzjAjBjChIhvjDjEhvhvhvhvhvhIjpgPgDjFaygDayaygPjpfZgojqgojsfZgogogogLgogogkfZjGjGchjGaaaaaaaaabaaaaaaabgVjHhfhfhfhfjIgWjJjK +aahCjLjLjLjLjLjLjLjLjLjLjLjLgXgXjMgXfZfZfZfZfZfZfZfZfZfZjNjOfZfZfZfZfZfZfZfZfZfZgDjpjpjpgDjbfZgojPgcgcgcgcgcgbgcgcgcjQgcjRjSjRjGjGjGchchjTchchchhcgVgWhfhfhfhfhfjUhPjU +aaaaaYgPayabaaaaaaababdEjVjLfZjWjXjYgogojZgojWgogofZkagojqgogogofZgogogogogofZfZfZfZfZfZfZfZfZgojqgogofZgogngogogLgogkfZjGchkbaykckdkekfkgkcjRkckckhkikjkkhPhfhfgWjJjK +aaaaaYgHdEaaaaaaaaaaabaygPklgogLgLkmkngogogogokogofZkpgojqgogojsfZkpkngokogofZfZfZfZgogogogogogojqgogofZgokogngngokqgkfDabaajGjGjGayfDchaajGjGjGjGgVgWhfkrhfhfksgWaaaa +aaaaabayaaaaaaaaaaaaayabayjLfZgUgnktkukvkvkvkvkvkvkwkvkvkxgogogofZgogogogogogogojZgokygcgcgcgcgckzkAgkgkgkgogogogogogkfDabaaaaaaaaaaaaaaaaaaaaaaaakBgWhfgWhfhfkCgWaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaYjLfZgngLfZfZfZgofZfZfZkDfZgogokEgcgcgckFgcgckGgcgcgcgcgcgckHgogogogogogojqgkkIgkgkkJgnfZkKchabaaaaaaaaaaaaaaaaaaaaaaaakLkMgWhfgWgWgWgWgWgVaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaafZgLgmfZkNjZgofZkNjZgofZkOkOkOkPkDkQfZkpgojqgogogogogogogogkgkgkgkgkgkkRgkkSkTgkfZfZfZaaaaaaaaaaaaaaaakUaaaaabaaababgWhPkVhfhfjtkVhfgVgVac +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabgnfZkWknkXfZkWknkWfZkYkZkZgogogofZgogolagogogogogogogogkgrgrlbgrgrlcgrgraYaYchchchgDaaaaeVaaaaaaaaaaaaabldldababgWkMhfhfhPhfhfhfhfgVac +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababfZfZfZfZfZfZfZfZfZgolelflggogofZfZfZfZfZfZfZfZfZlhfZgkayayayaygrliljgraYlbgrlkchayabaaabababaaaaaaabababaaabaakLllhfhfhfhfhPhflmgVac +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabgLgLgLlnkajYlojYfZgolplqlrlggofZlsltlultlvlwlwlxltlxlylzlzlAeuaygrlBlClDgrgrlEchabchababdkabababababaaabaaaaaakLllkMhfhfhfhfhfhfgVac +aaaaaaaaaaaaaaaaaaaaaaaaaaababababababgLgLjYlFgolGfZkplHlIlrgojsfZlJlKltlLlMlNlOlxlPlxlylzlAlAlAlAaylQgrlRgrlElEchabaaaaaaaaabababaaabaaaaabaaaakLllhfhfhfhfhfhflSgVac +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababgLgLgLjYgofZgogolrlrgogofZlTlUlVlLlWltlslxlslxlylzlAlzlzlzayljgrlXgrlElEchababaaaaababaaaaaaaaaaaaaaaaaaaalYlZlYjJjJjJjJjJgVac +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagLgLgLfZgogolglggogofZltlsltmamalslslxlPlxlylzlAlAlAmbayaygrmcgrgrgrmdmemfaYaYabaaaaaaaaaaaaaaaaaaaaaamghPjFayayayayaaaYac +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababgLmhmigogogogogofZmjltltltlsltmklxlPlxlyaYaYaYaYlzlzjRaYaYaYaYaYmfmlmfaaayaaaaaaaaaaaaaaaaeVaaaaaammlZmnchaaaachaaaYac +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfZfZfZfZfZfZkDfZgOmoltltltltmpmqmrmrmsmtlzlAlzlAlzlzlzlAaygrgrgrmfmumfaachaaaaaaaaaaaaaaaaaaaaaaaamvaaaaaaaaaaacayaYac +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababaagLgLhDgngolGfZmwmxltltltlsmyltltmtmzlAlAgPaYmAlzlzlAayjRayljmBmCmDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaYac +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababaaaagLgmmEgogofZmFlsltltltlsltltmrmGmtlAlAlAmHlAlAlAlAlzayaygrmfmImDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacayaYac +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaagLmJgLgnmKgofZmLmMlsltlsltltltmrmGlxlzlzlAlAlzlzlzlAlzlzaygrmfmImDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaYac +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaabaagLgLgLgogogmfZltlsltltmNlsltltmGmplxgPlzlAaYaYlzlzlAlAlAaYaYmfmImDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacayaYac +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaabababfZgLfZfZfZfZlsltlsltmGmNltmsmNmpmtgPmOlAayaylzlzlAlzlzlzaymdmImDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaYac +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaagLgLgLgngmgofZltmPmaltltltmQltmpmtmzlzlzlAchlzlzlzlAlzlzaygrmdmImDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayacayaYac +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababaaaaabmEgLmRgnfZlxlxlsmGltlsltltlxlxmzlAlAchchlAlAlAlAayaygrgrmdmImfmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaaYac +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaagLgLgLgmgofZmSmSlxmTmGmGltltlxmSmSlzlzlzchlzlzlzaygrgrgrgrmdmImUmVmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababchmdmemdmdmdmdmWmdmdlxmdmdmdmdmdmdmdmdmdmdmdmdmdmdmdmdmdmdmdmdmdmdmXmUmUmUmYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababmZmUmUmUnanbmUmUmUncndnenfngnhninjnknlndndndndndndndndndndndnmndnnmZmUmUmDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabmZmZmZmUmUmUmUmUmUmUmUnonpnqnrnsntnunvmUmUmUmUmUmUmUmUmUmUmUmImUnwmUmUmUmDaaaaaaaaaamvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababnxnynznznzmdnznznznznzmdnznznznznzmdnznznznznzmdnznznznzmdmImZmZmUmUmUnAitititaaaaaaiRaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayacacacacacacacacacacchacacacacaceueueuacacacaYacacacacnBnCnBmZmUmUmZnDnEmlmlmZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaYaaaaaaaanBnFnBnGnGmfnHmfnHmfiSiSiSaaaaaamvaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanIayaynBnJnKnLnBnMnMmfnNmfnNmfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababaynBnOnBnPnQnRnSmfnNmfnNmfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabayaynBnUnVnPnWnXnRmfnNmfnNmfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabldaygPnBnYnBnZnRoaobmfocmfnNmfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaygPodoeofognRohoinRmfnNmfnNmfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaygrgrnBnPnBnRnRnVojmfnNmfocmfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaYaYaYaanBnBoknBnBnBnBnBmfnNmfocmfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaabolabaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaomaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaonononaaooaaonopoqaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaorososotouotovowdkaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaoxoxoxaaooaaoxoyaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaozaaaaaadkaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaonononaaooaaonononaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacabozoAosoBouoBovovoCababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaoxoxoxaaooaaoxoxoxaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaoDaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacabacacababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +"} diff --git a/_maps/RandomRuins/SpaceRuins/abandonedteleporter.dmm b/_maps/RandomRuins/SpaceRuins/abandonedteleporter.dmm new file mode 100644 index 0000000..58e188a --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/abandonedteleporter.dmm @@ -0,0 +1,44 @@ +"a" = (/turf/open/space,/area/space) +"b" = (/turf/closed/wall/r_wall,/area/AIsattele) +"c" = (/obj/structure/lattice,/turf/open/space,/area/space) +"d" = (/obj/structure/frame/computer,/turf/open/floor/plating/airless,/area/AIsattele) +"e" = (/obj/machinery/teleport/station,/turf/open/floor/plating/airless,/area/AIsattele) +"f" = (/obj/machinery/teleport/hub,/turf/open/floor/plating/airless,/area/AIsattele) +"g" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/open/floor/plating/airless,/area/AIsattele) +"h" = (/turf/open/floor/plating/airless,/area/AIsattele) +"i" = (/obj/structure/rack,/obj/item/clothing/gloves/color/yellow,/turf/open/floor/plating/airless,/area/AIsattele) +"j" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating/airless,/area/AIsattele) +"k" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/turf/open/floor/plating/airless,/area/AIsattele) +"l" = (/obj/item/weapon/stock_parts/cell,/turf/open/floor/plating/airless,/area/AIsattele) +"m" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating/airless,/area/AIsattele) +"n" = (/obj/effect/decal/cleanable/robot_debris/old,/turf/open/floor/plating/airless,/area/AIsattele) +"o" = (/obj/effect/spawner/lootdrop/crate_spawner,/turf/open/floor/plating/airless,/area/AIsattele) +"p" = (/obj/machinery/door/airlock/external,/turf/open/floor/plating/airless,/area/AIsattele) +"q" = (/obj/effect/decal/cleanable/dirt,/obj/item/device/flashlight,/turf/open/floor/plating/airless,/area/AIsattele) +"r" = (/obj/effect/decal/cleanable/dirt,/obj/item/device/radio/beacon,/turf/open/floor/plating/airless,/area/AIsattele) +"s" = (/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plating/airless,/area/AIsattele) +"t" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating/airless,/area/AIsattele) +"u" = (/obj/effect/decal/cleanable/blood/old,/turf/open/floor/plating/airless,/area/AIsattele) +"v" = (/obj/effect/decal/cleanable/oil,/turf/open/floor/plating/airless,/area/AIsattele) +"w" = (/obj/item/weapon/shard,/obj/item/weapon/electronics/apc,/turf/open/floor/plating/airless,/area/AIsattele) +"x" = (/obj/structure/closet,/turf/open/floor/plating/airless,/area/AIsattele) +"y" = (/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1;pixel_y = -1},/turf/open/floor/plating/airless,/area/AIsattele) +"z" = (/obj/structure/closet/crate,/obj/item/device/aicard,/obj/item/device/multitool,/obj/item/weapon/weldingtool,/obj/item/weapon/wrench,/obj/item/weapon/circuitboard/computer/teleporter,/turf/open/floor/plating/airless,/area/AIsattele) +"A" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating/airless,/area/AIsattele) +"B" = (/obj/structure/girder,/turf/open/floor/plating/airless,/area/AIsattele) +"C" = (/obj/structure/lattice,/turf/open/space,/area/AIsattele) + +(1,1,1) = {" +aaaaaabbbbbca +aaaccbbdefbba +acccbbghhhibb +aajkbhlmhnmob +ccphphqnrhhsb +aajtbsuhvhwxb +acccbbhhmhybb +aaaccbbzhAbba +aaaaaabbChBca +aaaaaacccacaa +aaaaaaacaaaaa +aaaaaaaaccaaa +"} diff --git a/_maps/RandomRuins/SpaceRuins/abandonedzoo.dmm b/_maps/RandomRuins/SpaceRuins/abandonedzoo.dmm new file mode 100644 index 0000000..a9c64a3 --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/abandonedzoo.dmm @@ -0,0 +1,1291 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/open/space, +/area/space) +"ab" = ( +/obj/machinery/shieldwallgen{ + active = 2; + anchored = 1; + power = 1 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plating/airless, +/area/ruin/abandonedzoo) +"ac" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/ruin/abandonedzoo) +"ad" = ( +/obj/machinery/shieldwallgen{ + active = 2; + anchored = 1; + power = 1 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating/airless, +/area/ruin/abandonedzoo) +"ae" = ( +/obj/machinery/shieldwallgen{ + active = 2; + anchored = 1; + power = 1 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4"; + tag = "" + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plating/airless, +/area/ruin/abandonedzoo) +"af" = ( +/obj/machinery/shieldwallgen{ + active = 2; + anchored = 1; + power = 1 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating/airless, +/area/ruin/abandonedzoo) +"ag" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/ruin/abandonedzoo) +"ah" = ( +/turf/closed/mineral, +/area/ruin/abandonedzoo) +"ai" = ( +/turf/open/floor/plating/asteroid, +/area/ruin/abandonedzoo) +"aj" = ( +/obj/structure/flora/rock, +/turf/open/floor/plating/asteroid, +/area/ruin/abandonedzoo) +"ak" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/ruin/abandonedzoo) +"al" = ( +/obj/structure/flora/ausbushes/genericbush, +/turf/open/floor/grass, +/area/ruin/abandonedzoo) +"am" = ( +/mob/living/simple_animal/hostile/poison/bees, +/mob/living/simple_animal/hostile/poison/bees, +/mob/living/simple_animal/hostile/poison/bees, +/mob/living/simple_animal/hostile/poison/bees, +/mob/living/simple_animal/hostile/poison/bees, +/mob/living/simple_animal/hostile/poison/bees, +/turf/open/floor/grass, +/area/ruin/abandonedzoo) +"an" = ( +/mob/living/simple_animal/hostile/poison/bees, +/turf/open/floor/grass, +/area/ruin/abandonedzoo) +"ao" = ( +/obj/structure/flora/ausbushes/lavendergrass, +/turf/open/floor/grass, +/area/ruin/abandonedzoo) +"ap" = ( +/mob/living/simple_animal/hostile/asteroid/goldgrub{ + will_burrow = 0 + }, +/turf/open/floor/plating/asteroid, +/area/ruin/abandonedzoo) +"aq" = ( +/obj/structure/flora/ausbushes/grassybush, +/turf/open/floor/grass, +/area/ruin/abandonedzoo) +"ar" = ( +/obj/structure/flora/rock/pile, +/turf/open/floor/plating/asteroid, +/area/ruin/abandonedzoo) +"as" = ( +/mob/living/simple_animal/hostile/asteroid/basilisk, +/turf/open/floor/plating/asteroid, +/area/ruin/abandonedzoo) +"at" = ( +/turf/closed/wall/r_wall, +/area/ruin/abandonedzoo) +"au" = ( +/obj/structure/flora/ausbushes/leafybush, +/mob/living/simple_animal/hostile/poison/bees, +/turf/open/floor/grass, +/area/ruin/abandonedzoo) +"av" = ( +/obj/structure/flora/ausbushes/brflowers, +/turf/open/floor/grass, +/area/ruin/abandonedzoo) +"aw" = ( +/obj/structure/flora/rock, +/obj/machinery/light, +/turf/open/floor/plating/asteroid, +/area/ruin/abandonedzoo) +"ax" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/clipboard, +/obj/item/clothing/mask/surgical, +/obj/item/weapon/razor, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/abandonedzoo) +"ay" = ( +/turf/open/floor/plasteel/darkgreen, +/area/ruin/abandonedzoo) +"az" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/box/syringes{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/weapon/storage/box/beakers, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/abandonedzoo) +"aA" = ( +/obj/structure/flora/ausbushes/ywflowers, +/turf/open/floor/grass, +/area/ruin/abandonedzoo) +"aB" = ( +/obj/machinery/light, +/mob/living/simple_animal/hostile/poison/bees, +/turf/open/floor/grass, +/area/ruin/abandonedzoo) +"aC" = ( +/obj/structure/flora/ausbushes/ppflowers, +/turf/open/floor/grass, +/area/ruin/abandonedzoo) +"aD" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/door/airlock/highsecurity{ + name = "Bio Containment"; + req_one_access_txt = "47" + }, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/abandonedzoo) +"aE" = ( +/obj/machinery/shieldwallgen{ + active = 2; + anchored = 1; + power = 1 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4"; + tag = "" + }, +/turf/open/floor/plating, +/area/ruin/abandonedzoo) +"aF" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/closed/wall/r_wall, +/area/ruin/abandonedzoo) +"aG" = ( +/obj/structure/table/reinforced, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/item/weapon/gun/energy/floragun, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/abandonedzoo) +"aH" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/darkgreen, +/area/ruin/abandonedzoo) +"aI" = ( +/obj/structure/table/reinforced, +/obj/machinery/computer/med_data/laptop, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/abandonedzoo) +"aJ" = ( +/obj/machinery/shieldwallgen{ + active = 2; + anchored = 1; + power = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/ruin/abandonedzoo) +"aK" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/space, +/area/space) +"aL" = ( +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/abandonedzoo) +"aM" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/closed/wall/r_wall, +/area/ruin/abandonedzoo) +"aN" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/abandonedzoo) +"aO" = ( +/obj/structure/chair/office/light{ + dir = 8 + }, +/turf/open/floor/plasteel/darkgreen, +/area/ruin/abandonedzoo) +"aP" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/reagent_containers/glass/bottle/liver_enhance_virion, +/obj/item/weapon/reagent_containers/dropper, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/abandonedzoo) +"aQ" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/space, +/area/space) +"aR" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/abandonedzoo) +"aS" = ( +/obj/machinery/power/apc{ + dir = 8; + environ = 0; + equipment = 0; + lighting = 0; + locked = 0; + name = "Worn-out APC"; + pixel_x = -24; + pixel_y = 0 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/rack, +/obj/item/weapon/melee/baton/cattleprod, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/abandonedzoo) +"aT" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/rack, +/obj/item/clothing/suit/space/hardsuit/medical, +/obj/item/weapon/tank/internals/emergency_oxygen/double, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/abandonedzoo) +"aU" = ( +/obj/structure/rack, +/obj/item/weapon/crowbar, +/obj/item/weapon/shield/riot, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/abandonedzoo) +"aV" = ( +/obj/machinery/smartfridge/chemistry, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/abandonedzoo) +"aW" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/gun/syringe, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/abandonedzoo) +"aX" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/grenade/chem_grenade/antiweed{ + pixel_x = 3; + pixel_y = 5 + }, +/obj/item/weapon/grenade/chem_grenade/antiweed{ + pixel_x = 4 + }, +/obj/item/weapon/grenade/chem_grenade/antiweed{ + pixel_x = -3; + pixel_y = -1 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/abandonedzoo) +"aY" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/gun/energy/temperature{ + pin = /obj/item/device/firing_pin + }, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/abandonedzoo) +"aZ" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/cultivator, +/obj/item/weapon/shovel, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/abandonedzoo) +"ba" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/abandonedzoo) +"bb" = ( +/obj/machinery/door/airlock/hatch{ + name = "Bio-Research Station" + }, +/turf/open/floor/plasteel/darkgreen, +/area/ruin/abandonedzoo) +"bc" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/darkgreen, +/area/ruin/abandonedzoo) +"bd" = ( +/obj/machinery/power/terminal, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/darkgreen, +/area/ruin/abandonedzoo) +"be" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/abandonedzoo) +"bf" = ( +/obj/machinery/power/smes/magical{ + desc = "A high-capacity superconducting magnetic energy storage (SMES) unit."; + name = "power storage unit" + }, +/obj/structure/cable, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/abandonedzoo) +"bg" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/machinery/light, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/abandonedzoo) +"bh" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/abandonedzoo) +"bi" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/reagent_containers/hypospray/medipen/stimpack, +/obj/item/weapon/reagent_containers/glass/bottle/mutagen, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/abandonedzoo) +"bj" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/surgicaldrill, +/obj/item/weapon/hemostat, +/obj/item/weapon/scalpel, +/obj/item/weapon/surgical_drapes, +/obj/item/weapon/retractor, +/obj/item/weapon/cautery, +/obj/item/weapon/circular_saw, +/obj/machinery/light, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/abandonedzoo) +"bk" = ( +/obj/structure/table/optable, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/abandonedzoo) +"bl" = ( +/obj/machinery/computer/operating, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/abandonedzoo) +"bm" = ( +/obj/structure/closet/wardrobe/science_white, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/abandonedzoo) +"bn" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/reagent_containers/food/snacks/carrotfries, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/abandonedzoo) +"bo" = ( +/obj/machinery/shieldwallgen{ + active = 2; + anchored = 1; + power = 1 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/obj/structure/cable, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/ruin/abandonedzoo) +"bp" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/green, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/abandonedzoo) +"bq" = ( +/obj/item/stack/cable_coil/cut, +/obj/item/stack/tile/plasteel{ + pixel_x = 3; + pixel_y = -4 + }, +/obj/item/weapon/wirecutters, +/turf/open/floor/plating, +/area/ruin/abandonedzoo) +"br" = ( +/obj/structure/table/reinforced, +/obj/machinery/microwave, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/abandonedzoo) +"bs" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/shieldwallgen, +/turf/open/floor/plating, +/area/ruin/abandonedzoo) +"bt" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/shieldwallgen, +/turf/open/floor/plating/airless, +/area/ruin/abandonedzoo) +"bu" = ( +/obj/structure/flora/ausbushes/sunnybush, +/turf/open/floor/plating, +/area/ruin/abandonedzoo) +"bv" = ( +/turf/open/floor/plating, +/area/ruin/abandonedzoo) +"bw" = ( +/obj/machinery/light{ + dir = 1 + }, +/mob/living/simple_animal/hostile/carp, +/turf/open/floor/plating, +/area/ruin/abandonedzoo) +"bx" = ( +/obj/structure/flora/ausbushes/palebush, +/turf/open/floor/plating, +/area/ruin/abandonedzoo) +"by" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/closed/wall/r_wall, +/area/ruin/abandonedzoo) +"bz" = ( +/obj/machinery/space_heater, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/abandonedzoo) +"bA" = ( +/obj/structure/table/reinforced, +/obj/machinery/juicer, +/turf/open/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/abandonedzoo) +"bB" = ( +/obj/structure/alien/weeds, +/turf/open/floor/plating/airless, +/area/ruin/abandonedzoo) +"bC" = ( +/obj/structure/alien/weeds/node, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/ruin/abandonedzoo) +"bD" = ( +/obj/item/clothing/mask/facehugger{ + icon_state = "facehugger_dead"; + stat = 2 + }, +/turf/open/floor/plating/airless, +/area/ruin/abandonedzoo) +"bE" = ( +/obj/structure/flora/ausbushes/sparsegrass, +/turf/open/floor/plating, +/area/ruin/abandonedzoo) +"bF" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall/r_wall, +/area/ruin/abandonedzoo) +"bG" = ( +/obj/machinery/door/airlock/external, +/turf/open/floor/plasteel/darkgreen, +/area/ruin/abandonedzoo) +"bH" = ( +/obj/structure/alien/resin/wall, +/turf/open/floor/plating/airless, +/area/ruin/abandonedzoo) +"bI" = ( +/obj/structure/flora/ausbushes/reedbush, +/turf/open/floor/plating, +/area/ruin/abandonedzoo) +"bJ" = ( +/mob/living/simple_animal/crab{ + faction = list("carp") + }, +/turf/open/floor/plating, +/area/ruin/abandonedzoo) +"bK" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/airless, +/area/space) +"bL" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/darkgreen, +/area/ruin/abandonedzoo) +"bM" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/darkgreen, +/area/ruin/abandonedzoo) +"bN" = ( +/obj/structure/grille{ + density = 0; + icon_state = "brokengrille" + }, +/obj/item/weapon/shard{ + icon_state = "small" + }, +/turf/open/floor/plating/airless, +/area/ruin/abandonedzoo) +"bO" = ( +/obj/item/weapon/shard, +/turf/open/floor/plating/airless, +/area/ruin/abandonedzoo) +"bP" = ( +/obj/structure/lattice, +/turf/open/space, +/area/space) +"bQ" = ( +/obj/machinery/shieldwallgen{ + active = 2; + anchored = 1; + power = 1 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/obj/structure/cable, +/turf/open/floor/plating/airless, +/area/ruin/abandonedzoo) +"bR" = ( +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/structure/disposaloutlet, +/turf/open/floor/plating/airless, +/area/space) +"bS" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable, +/obj/machinery/shieldwallgen, +/turf/open/floor/plating/airless, +/area/ruin/abandonedzoo) +"bT" = ( +/obj/structure/grille, +/obj/item/weapon/shard{ + icon_state = "medium" + }, +/turf/open/floor/plating/airless, +/area/ruin/abandonedzoo) +"bU" = ( +/obj/structure/grille{ + density = 0; + icon_state = "brokengrille" + }, +/turf/open/floor/plating/airless, +/area/ruin/abandonedzoo) +"bV" = ( +/obj/machinery/shieldwallgen, +/turf/open/space, +/area/space) +"bW" = ( +/obj/item/weapon/shard, +/turf/open/space, +/area/space) +"bX" = ( +/turf/open/floor/plating/airless, +/area/ruin/abandonedzoo) + +(1,1,1) = {" +aa +ab +ag +ag +ag +ag +ab +aa +aa +aa +aa +aa +aa +ab +ag +ag +ag +ag +ab +aa +"} +(2,1,1) = {" +aa +ac +ah +ai +ar +ah +ac +aK +aK +aK +aK +aK +aK +ac +bu +bv +bI +bv +ac +aa +"} +(3,1,1) = {" +aa +ac +ah +ap +ai +ai +aD +aL +aR +aL +aL +aR +aL +aD +bv +bv +bJ +bv +ac +aa +"} +(4,1,1) = {" +aa +ac +ai +ah +ai +aw +ac +at +at +bb +bb +at +at +ac +bw +bv +bv +bv +ac +aa +"} +(5,1,1) = {" +aa +ac +aj +ai +as +ar +ac +at +aS +ay +ay +be +at +ac +bx +bE +bv +bv +ac +aa +"} +(6,1,1) = {" +aa +ad +ak +ak +ak +ak +aE +aM +aT +bc +bd +bf +aM +bo +ak +ak +ak +ak +bQ +aa +"} +(7,1,1) = {" +aa +aa +aa +aa +at +at +aF +at +aU +ay +ay +bg +at +aF +by +bF +bK +bK +bR +aa +"} +(8,1,1) = {" +aa +aa +aa +aa +ag +ax +aG +aN +aV +ay +ay +bh +bm +bp +bz +at +at +at +aa +aa +"} +(9,1,1) = {" +aa +aa +aa +aa +ag +ay +aH +aO +ay +ay +ay +ay +ay +aH +ay +bG +bL +bG +aa +aa +"} +(10,1,1) = {" +aa +aa +aa +aa +ag +ay +aH +ay +ay +ay +ay +ay +ay +bq +ay +bG +bM +bG +aa +aa +"} +(11,1,1) = {" +aa +aa +aa +aa +ag +az +aI +aP +aW +ay +ay +bi +bn +br +bA +at +at +at +aa +aa +"} +(12,1,1) = {" +aa +aa +aa +aa +at +at +aF +at +aX +ay +ay +bj +at +aF +at +at +aa +aa +aa +aa +"} +(13,1,1) = {" +aa +ae +ak +ak +ak +ak +aJ +at +aY +ay +ay +bk +at +bs +ak +ak +ak +ak +bS +aa +"} +(14,1,1) = {" +aa +ac +al +an +an +aA +ac +at +aZ +ay +ay +bl +at +ac +bB +bB +bD +bH +ac +aa +"} +(15,1,1) = {" +aa +ac +am +am +ao +aB +ac +at +at +bb +bb +at +at +ac +bC +bH +bH +bX +bT +aa +"} +(16,1,1) = {" +aa +ac +an +aq +au +am +aD +aL +ba +aL +aL +ba +aL +aD +bD +bB +bX +bO +bU +bW +"} +(17,1,1) = {" +aa +ac +ao +an +av +aC +ac +aQ +aQ +aQ +aQ +aQ +aQ +ac +bB +bB +bX +bX +bP +aa +"} +(18,1,1) = {" +aa +af +ak +ak +ak +ak +af +aa +aa +aa +aa +aa +aa +bt +ag +ag +bN +bP +aa +aa +"} +(19,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bV +aa +"} +(20,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} diff --git a/_maps/RandomRuins/SpaceRuins/asteroid1.dmm b/_maps/RandomRuins/SpaceRuins/asteroid1.dmm new file mode 100644 index 0000000..7bc6c92 --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/asteroid1.dmm @@ -0,0 +1,26 @@ +"a" = (/turf/open/space,/area/space) +"b" = (/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) +"c" = (/turf/closed/mineral/random/high_chance,/area/ruin/unpowered/no_grav) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabaa +aaaabbaaaaaaaaaaaaaa +aaaabbbaaaaaaaaaaaaa +aaaaaaaaabbcbaaaaaaa +aaaaaaaaaabbaaaaaaaa +aaaaaaaaaabaaaaaaaaa +aaaaaaabaaaaaaaaaaaa +aaaaabbcbaaaaabbbaaa +aaaaabccbaaaaabcbaaa +aaaaccccaaabbccbbaaa +aaabcccbaaabbccaaaaa +aaabccaaaaaabbaaaaaa +aaabbbaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaabcaaaaaaa +aaaabaaaaaabbaaaaaaa +aaaaaaaaaaaaaaaaaaaa +"} diff --git a/_maps/RandomRuins/SpaceRuins/asteroid2.dmm b/_maps/RandomRuins/SpaceRuins/asteroid2.dmm new file mode 100644 index 0000000..c39e9f5 --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/asteroid2.dmm @@ -0,0 +1,27 @@ +"a" = (/turf/open/space,/area/space) +"b" = (/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) +"c" = (/turf/closed/mineral,/area/ruin/unpowered/no_grav) +"d" = (/turf/closed/mineral/random/high_chance,/area/ruin/unpowered/no_grav) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaa +aaaaabbbbaaaaaaaaaab +aaabbbbbbbbaaaaabbaa +aabbbbbcbbbbbbaaabaa +abbbbbcccbbbbbaaaaaa +abbbcccccccddbbaaaaa +abbbcccccccddbbaaaaa +abbbcccdddccdbbbbaaa +aaabcccccdddcccbbaaa +aabbbddcccddccdbbbba +aabbbddcccddccccbbba +aabbbddccdddccccbbba +aabbbddcdddcccddbbba +aaabbddcdcccccddbbba +aaaabbbbdccccdddbbba +aaaaaabbcccdcccbbbba +aaabaabbbbbccccbbaaa +baaaaaaabbbbbccbaaaa +aaaaaaaaaaaabbbbaaaa +"} diff --git a/_maps/RandomRuins/SpaceRuins/asteroid3.dmm b/_maps/RandomRuins/SpaceRuins/asteroid3.dmm new file mode 100644 index 0000000..9820084 --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/asteroid3.dmm @@ -0,0 +1,29 @@ +"a" = (/turf/open/space,/area/space) +"b" = (/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) +"c" = (/turf/closed/mineral,/area/ruin/unpowered/no_grav) +"d" = (/turf/closed/mineral/random/high_chance,/area/ruin/unpowered/no_grav) +"e" = (/obj/effect/decal/remains/human,/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) +"f" = (/obj/item/weapon/pickaxe/diamond,/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaa +aabbbaaaaaaaaabaaaaa +aabbbbabbbbaaaaaaaaa +baabccbbbbbbbbbbaaba +aabbccbccccdddcbbaaa +aabccccccccdddcbbaaa +aabcccdccbcccccccaaa +aaabcccccbccccccccaa +abbbcccbbbccccccddaa +bbbcccbbbbbcdcccddaa +cdddccbbebbccccccaaa +cdddcbbfbbcccccccaaa +ccccccbbbbcccccbbaaa +cccccccbbccccccbbaba +bcdddccccccccbbaaaaa +acdddcccccddcbaaaaaa +acdddccbccddbbaaaaaa +aabbcbbbbcbbbaaaaaba +aaaaaaabbbbbaabaaaaa +"} diff --git a/_maps/RandomRuins/SpaceRuins/asteroid4.dmm b/_maps/RandomRuins/SpaceRuins/asteroid4.dmm new file mode 100644 index 0000000..41de908 --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/asteroid4.dmm @@ -0,0 +1,39 @@ +"a" = (/turf/open/space,/area/space) +"b" = (/turf/closed/mineral,/area/ruin/unpowered/no_grav) +"c" = (/turf/closed/mineral/random/high_chance,/area/ruin/unpowered/no_grav) +"d" = (/turf/closed/mineral,/area/ruin/unpowered) +"e" = (/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) +"f" = (/turf/closed/mineral/random/high_chance,/area/ruin/unpowered) +"g" = (/turf/closed/mineral/clown,/area/ruin/unpowered) +"h" = (/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered) +"i" = (/turf/open/floor/plating/asteroid,/area/ruin/unpowered) +"j" = (/turf/open/floor/plating/asteroid,/turf/closed/wall/mineral/titanium,/area/ruin/unpowered) +"k" = (/turf/open/floor/plating,/obj/item/stack/sheet/mineral/bananium{amount = 15},/turf/closed/wall/mineral/titanium,/area/ruin/unpowered) +"l" = (/turf/closed/wall/mineral/titanium,/area/ruin/unpowered) +"m" = (/obj/structure/chair{dir = 1},/obj/item/weapon/shard,/obj/effect/mob_spawn/human/clown{brute_damage = 120; oxy_damage = 75},/obj/item/weapon/paper{info = "Extraction was successful! The disguise was perfect, the clowns never knew what hit 'em! Once I get back to base with the bananium samples I'll be rich, I tell you! RICH!"},/obj/item/stack/sheet/mineral/bananium{amount = 15},/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"n" = (/obj/structure/chair{dir = 1},/obj/item/weapon/storage/pod{pixel_x = -26},/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"o" = (/obj/structure/shuttle/engine/propulsion/burst,/turf/closed/wall/mineral/titanium/overspace,/area/ruin/unpowered) +"p" = (/obj/machinery/door/airlock/shuttle{name = "Escape Pod Airlock"},/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaa +aabbbaaaaaaaaaaaaaaa +acccbbbbaaaaaaaaaaaa +acccbbcbbbaaaaaadaaa +abbbbbbbbbbaaaaddaaa +abeebbbbbbcaaaadddaa +aaeeebbbbbcaaaaddaaa +aaaeeeeebaaaaadddaaa +aaaaaeeebaaaaaddaaaa +aaaaaaaaaaaaaaddaaaa +aaaaaaaaaaaaffddaaaa +aaabaaaaaaddffdaaaaa +aaabaaaaadddgddaaaaa +aabbbaaahddggidfaaaa +aabbbaaahhdjkjdfaaaa +abbbbaaahhdlmlddaaaa +abbaaaaaaadlnldaaaaa +aaaaabaaaaaopoaaaaaa +aaabaaaaaaaaaaaaaaaa +"} diff --git a/_maps/RandomRuins/SpaceRuins/asteroid5.dmm b/_maps/RandomRuins/SpaceRuins/asteroid5.dmm new file mode 100644 index 0000000..f64660b --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/asteroid5.dmm @@ -0,0 +1,47 @@ +"a" = (/turf/open/space,/area/space) +"b" = (/turf/closed/mineral,/area/ruin/unpowered) +"c" = (/turf/closed/mineral/random/high_chance,/area/ruin/unpowered) +"d" = (/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabbbccccbaaaaaaaaaaaaaaaaa +aaaaaaaaaabbbbbbbbccccbbbbbbaaaaaaaaaaaa +aaaaaaaabbbbbbbbbbdddbbbbbbbbaaaaaaaaaaa +aaaaaccccbbbbbbdddddddddcbbccaaaaaaaaaaa +aaaaaccccbbbbccddddddddddbbccaaaaaaaaaaa +aaabbccccbbbddddddaaaaaddddbbaaaaaaaaaaa +aaabbbccbbcdddaaaaaaaaaadddbbbaaaaaaaaaa +aaacbbbbbdddaaaaaabbbaaadddbbbaaaaaaaaaa +aaacbbbbbddaaaaaaabbbaaaaaaabbaaaaaaaaaa +aaaabbbbdddaaaaaaaabbaaaaaaabbaaaaaaabaa +aaaaabbbddaaaaaaaaaaaaaaaaaabbaaaaaabcaa +aaaaabbbddaaaaabaaaaaaaaaaabbaaaaaabccca +aaaaabbbddddaaaaaaaaaaaaaaabbaaaaaabccca +aaaaaaccbdddaaaaaaaaaaaaaaaaaaaaaaabccca +aaaaaaccbdddaaaaaaabbaabaaaaaaaaadddbbba +aaaaaaccbbcbaaaaabbbbaaaaaaaaaadddddbbaa +aaaaaaaaaaaaaaaaabbcbaaaaaaaaaadddddbbaa +aaaaaaaaaaaaaaaaabbcaaaaaaaadddddddbbbaa +aaaaaaaaaaaaaaaaaabbaaaaaaaaddddbddbbbba +aaaaaaaaaaaaaaaaaaaaaaaaaaaaddddbddbbbba +aaaaaaaaaaaaaaaaaaaaaaaaaaaabcbbbdddbcba +aaaaaaaaaaaaabdddddbbbaaaaabbbbbbcdddcba +aaaaaaaaabdddddddddddddaaaaabbbbbcdddbba +aaaaaaabddddddbbbbbbdddaaaaaaabbbcddbbaa +aaaaaabddddbcccccbbbddddbaaaaabbbbbbbbaa +aaaaaabddbbbcccccbbbbccdcaaaaabbbbbbbbaa +aaaaddddbbcccbbbbbbbbccdddaaaaabccbbaaaa +aaaaddddbbccdddbbbdddccdddaaaaaaabbcaaaa +aaaddddbbbccdddbdddddbbdddaaaaaaaaaaaaaa +aaaddddcccccdcbbddddddddddaaaaaaaaaaaaaa +abbdddbccccdddddddcbddddddaaaaaaaaaaaaaa +accbbbbccccdddddddbbbbbbbcaaaaaaaaaaaaaa +acccbbbccccddddddbbbbbbbbcaaaaaaaaaaaaaa +acccbbbbbbbbbbbbbbccbbbbbbaaaaaaaaabbaaa +aaccbbbbbbbbbbbbbbccbbbbbaaaaaaaaabbbaaa +aabbbbbbccbbbbbbbbbbbbbbbaaaaaaaabbbbaaa +aaabbbbbccbabbbbbccccbbbbaaaaaaaabbbaaaa +aaabbbbbaaaaaaaabccccbbaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +"} diff --git a/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm b/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm new file mode 100644 index 0000000..53a6c41 --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm @@ -0,0 +1,289 @@ +"aa" = (/turf/open/space,/area/space) +"ab" = (/turf/closed/wall,/area/ruin/derelictoutpost/cargobay) +"ac" = (/obj/machinery/door/poddoor{id = "bigderelictshipdock"},/turf/open/floor/plating/airless,/area/ruin/derelictoutpost/cargobay) +"ad" = (/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) +"ae" = (/turf/open/floor/plating,/area/ruin/derelictoutpost/cargobay) +"af" = (/obj/structure/sign/vacuum{pixel_y = 32},/obj/effect/decal/cleanable/cobweb,/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"ag" = (/obj/machinery/door/poddoor{id = "bigderelictshipdock"},/turf/open/floor/plating,/area/ruin/derelictoutpost/cargobay) +"ah" = (/obj/structure/sign/vacuum{pixel_y = 32},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"ai" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"aj" = (/obj/machinery/button/door{name = "tradepost entry doors"; pixel_y = 24},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"ak" = (/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"al" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"am" = (/turf/open/floor/engine,/area/ruin/derelictoutpost/cargobay) +"an" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"ao" = (/obj/machinery/power/apc{cell_type = 0; dir = 4; name = "Cargo Bay APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"ap" = (/obj/structure/table,/obj/machinery/light{dir = 8},/obj/item/weapon/reagent_containers/glass/bucket,/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"aq" = (/turf/open/floor/engine,/turf/closed/wall/mineral/titanium/interior,/area/ruin/derelictoutpost/dockedship) +"ar" = (/obj/structure/shuttle/engine/propulsion/burst/right{dir = 1; icon_state = "burst_r"; name = "shuttle engine"; tag = "icon-burst_r (NORTH)"},/turf/open/floor/plating,/area/ruin/derelictoutpost/dockedship) +"as" = (/obj/structure/shuttle/engine/propulsion/burst/left{dir = 1; icon_state = "burst_l"; name = "shuttle engine"; tag = "icon-burst_l (NORTH)"},/turf/open/floor/plating,/area/ruin/derelictoutpost/dockedship) +"at" = (/turf/closed/wall/mineral/titanium,/area/ruin/derelictoutpost/dockedship) +"au" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"av" = (/obj/structure/table,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"aw" = (/obj/structure/table,/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"ax" = (/obj/structure/window/reinforced{tag = "icon-rwindow (NORTH)"; icon_state = "rwindow"; dir = 1},/obj/structure/window/reinforced{tag = "icon-rwindow (WEST)"; icon_state = "rwindow"; dir = 8},/obj/structure/shuttle/engine/heater{tag = "icon-heater (NORTH)"; icon_state = "heater"; dir = 1},/turf/open/floor/mineral/titanium/yellow,/area/ruin/derelictoutpost/dockedship) +"ay" = (/obj/structure/window/reinforced{tag = "icon-rwindow (NORTH)"; icon_state = "rwindow"; dir = 1},/obj/structure/window/reinforced{tag = "icon-rwindow (EAST)"; icon_state = "rwindow"; dir = 4},/obj/structure/shuttle/engine/heater{tag = "icon-heater (NORTH)"; icon_state = "heater"; dir = 1},/turf/open/floor/mineral/titanium/yellow,/area/ruin/derelictoutpost/dockedship) +"az" = (/obj/structure/table,/obj/item/clothing/head/soft,/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"aA" = (/turf/closed/wall,/area/ruin/derelictoutpost/powerstorage) +"aB" = (/obj/machinery/door/airlock/external,/turf/open/floor/plating,/area/ruin/derelictoutpost/powerstorage) +"aC" = (/turf/closed/mineral,/area/ruin/unpowered/no_grav) +"aD" = (/obj/machinery/door/poddoor{id = "bigderelictship"},/turf/open/floor/mineral/titanium/yellow,/area/ruin/derelictoutpost/dockedship) +"aE" = (/obj/structure/closet/crate/medical,/obj/item/weapon/storage/firstaid/o2,/turf/open/floor/mineral/titanium/yellow,/area/ruin/derelictoutpost/dockedship) +"aF" = (/obj/structure/closet/crate/medical,/obj/item/weapon/storage/firstaid/regular,/turf/open/floor/mineral/titanium/yellow,/area/ruin/derelictoutpost/dockedship) +"aG" = (/obj/structure/closet/crate/medical,/obj/item/weapon/storage/firstaid/brute,/turf/open/floor/mineral/titanium/yellow,/area/ruin/derelictoutpost/dockedship) +"aH" = (/obj/structure/closet/crate/engineering,/obj/item/weapon/storage/toolbox/mechanical,/turf/open/floor/mineral/titanium/yellow,/area/ruin/derelictoutpost/dockedship) +"aI" = (/obj/structure/closet/crate/engineering/electrical,/obj/item/weapon/storage/toolbox/electrical,/obj/item/weapon/stock_parts/cell/hyper,/obj/item/weapon/stock_parts/cell/high,/turf/open/floor/mineral/titanium/yellow,/area/ruin/derelictoutpost/dockedship) +"aJ" = (/obj/structure/table,/obj/item/clothing/gloves/fingerless,/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"aK" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ruin/derelictoutpost) +"aL" = (/obj/machinery/door/airlock/external,/turf/open/floor/plating,/area/ruin/derelictoutpost) +"aM" = (/turf/open/floor/plating,/area/ruin/derelictoutpost/powerstorage) +"aN" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/turf/open/floor/plasteel/delivery,/area/ruin/derelictoutpost/cargobay) +"aO" = (/obj/structure/closet/crate/secure/loot,/turf/open/floor/mineral/titanium/yellow,/area/ruin/derelictoutpost/dockedship) +"aP" = (/obj/structure/closet/crate/internals,/obj/item/weapon/storage/toolbox/emergency,/obj/item/clothing/mask/breath,/obj/item/weapon/tank/internals/emergency_oxygen/engi,/obj/item/weapon/tank/internals/emergency_oxygen/engi,/obj/item/clothing/mask/breath,/turf/open/floor/mineral/titanium/yellow,/area/ruin/derelictoutpost/dockedship) +"aQ" = (/obj/structure/closet/crate/radiation,/obj/item/clothing/head/radiation,/obj/item/clothing/suit/radiation,/obj/item/device/geiger_counter,/turf/open/floor/mineral/titanium/yellow,/area/ruin/derelictoutpost/dockedship) +"aR" = (/turf/open/floor/plating,/area/ruin/derelictoutpost) +"aS" = (/turf/closed/wall/r_wall,/area/ruin/derelictoutpost/powerstorage) +"aT" = (/obj/structure/extinguisher_cabinet{pixel_x = -24},/turf/open/floor/plasteel/delivery,/area/ruin/derelictoutpost/cargobay) +"aU" = (/obj/structure/closet/crate/critter{name = "critter crate - mr.tiggles"; opened = 1},/obj/item/weapon/paper/crumpled/snowdin{info = "A crumpled piece of manifest paper, out of the barely legible pen writing, you can see something about a warning involving whatever was originally in the crate."},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plasteel/shuttle/yellow,/area/ruin/derelictoutpost/dockedship) +"aV" = (/obj/structure/closet/crate/engineering,/obj/item/weapon/storage/toolbox/mechanical,/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plasteel/shuttle/yellow,/area/ruin/derelictoutpost/dockedship) +"aW" = (/obj/structure/closet/crate/engineering/electrical,/obj/item/weapon/storage/toolbox/electrical,/obj/item/weapon/stock_parts/cell/hyper,/turf/open/floor/mineral/titanium/yellow,/area/ruin/derelictoutpost/dockedship) +"aX" = (/obj/structure/closet/crate,/turf/open/floor/plasteel/delivery,/area/ruin/derelictoutpost/cargobay) +"aY" = (/obj/structure/lattice,/turf/open/space,/area/space) +"aZ" = (/turf/closed/wall,/area/ruin/derelictoutpost) +"ba" = (/obj/item/clothing/head/helmet,/turf/open/floor/plasteel,/area/ruin/derelictoutpost/powerstorage) +"bb" = (/obj/machinery/power/smes,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/powerstorage) +"bc" = (/obj/structure/table,/obj/item/weapon/stock_parts/cell/hyper,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/powerstorage) +"bd" = (/obj/machinery/power/smes,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/powerstorage) +"be" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plasteel/shuttle,/area/ruin/derelictoutpost/dockedship) +"bf" = (/obj/effect/decal/cleanable/blood/old,/turf/open/floor/mineral/titanium/blue,/area/ruin/derelictoutpost/dockedship) +"bg" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/glowshroom/single,/turf/open/floor/plasteel/shuttle,/area/ruin/derelictoutpost/dockedship) +"bh" = (/obj/machinery/button/door{id = "bigderelictship"; name = "shuttle cargo doors"; pixel_x = 24},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plasteel/shuttle,/area/ruin/derelictoutpost/dockedship) +"bi" = (/obj/effect/decal/cleanable/cobweb,/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"bj" = (/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"bk" = (/obj/structure/sign/vacuum{pixel_y = 32},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"bl" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"bm" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (NORTHWEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 9},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"bn" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (EAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 4},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"bo" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/glowshroom/single,/obj/structure/sign/vacuum{pixel_y = 32},/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (EAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 4},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"bp" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (NORTHEAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 5},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"bq" = (/obj/effect/mob_spawn/human/corpse/nanotrasensoldier{helmet = null; id_job = "Tradepost Officer"; name = "Tradeport Officer"; random = 1},/obj/item/weapon/paper/crumpled/snowdin{icon_state = "scrap_bloodied"; info = "If anyone finds this, please, don't let my kids know I died a coward.."},/obj/effect/decal/cleanable/blood/old{name = "dried blood splatter"; pixel_x = -29},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/powerstorage) +"br" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/powerstorage) +"bs" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/powerstorage) +"bt" = (/obj/machinery/door/airlock/shuttle,/turf/open/floor/mineral/titanium/blue,/area/ruin/derelictoutpost/dockedship) +"bu" = (/turf/open/floor/mineral/titanium/blue,/area/ruin/derelictoutpost/dockedship) +"bv" = (/obj/item/chair,/obj/effect/decal/cleanable/blood/old,/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plasteel/shuttle,/area/ruin/derelictoutpost/dockedship) +"bw" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (NORTHEAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 5},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plasteel/shuttle,/area/ruin/derelictoutpost/dockedship) +"bx" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"by" = (/obj/machinery/door/airlock/glass_security{id_tag = "innerbrig"; name = "Security Checkpoint"; req_access_txt = "63"},/turf/open/floor/plasteel/darkred,/area/ruin/derelictoutpost) +"bz" = (/turf/open/floor/plasteel/darkred,/area/ruin/derelictoutpost) +"bA" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plasteel/darkred,/area/ruin/derelictoutpost) +"bB" = (/obj/effect/decal/cleanable/cobweb{icon_state = "cobweb2"},/obj/structure/table,/obj/machinery/recharger,/turf/open/floor/plasteel/darkred,/area/ruin/derelictoutpost) +"bC" = (/turf/closed/wall/r_wall,/area/ruin/derelictoutpost) +"bD" = (/obj/machinery/light{dir = 8},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"bE" = (/obj/effect/decal/cleanable/blood/old{icon_state = "trails_1"; name = "dried blood trail"},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"bF" = (/obj/structure/alien/resin/wall{color = "#8EC127"; desc = "Thick material shaped into a wall. Eugh."; icon_state = "smooth"; name = "gelatinous wall"},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"bG" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (NORTH)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 1},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"bH" = (/obj/item/ammo_casing/c45{caliber = null; desc = "A .45 bullet casing. This one is spent."; icon_state = "s-casing"; name = "spent bullet casing"},/obj/machinery/light{dir = 8},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/powerstorage) +"bI" = (/obj/item/weapon/gun/projectile/automatic/pistol/m1911{spawnwithmagazine = 0},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/powerstorage) +"bJ" = (/turf/open/floor/plasteel,/area/ruin/derelictoutpost/powerstorage) +"bK" = (/obj/structure/table,/obj/machinery/light{dir = 8},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"bL" = (/obj/structure/table,/turf/open/floor/mineral/titanium/blue,/area/ruin/derelictoutpost/dockedship) +"bM" = (/obj/machinery/computer,/turf/open/floor/mineral/titanium/blue,/area/ruin/derelictoutpost/dockedship) +"bN" = (/obj/structure/table_frame,/obj/item/stack/sheet/metal,/obj/effect/decal/cleanable/blood/old{icon_state = "trails_1"; name = "dried blood trail"},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plasteel/shuttle,/area/ruin/derelictoutpost/dockedship) +"bO" = (/obj/item/weapon/shard,/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plasteel/shuttle,/area/ruin/derelictoutpost/dockedship) +"bP" = (/obj/effect/gibspawner/human,/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"bQ" = (/obj/structure/filingcabinet,/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/darkred,/area/ruin/derelictoutpost) +"bR" = (/obj/item/weapon/shard,/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plasteel/darkred,/area/ruin/derelictoutpost) +"bS" = (/obj/item/chair,/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plasteel/darkred,/area/ruin/derelictoutpost) +"bT" = (/obj/effect/decal/cleanable/blood/old,/obj/machinery/button/door{id = "bigderelictcheckpoint"; name = "security checkpoint control"; pixel_y = -24},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plasteel/darkred,/area/ruin/derelictoutpost) +"bU" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (EAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 4},/turf/open/floor/plating{icon_plating = "wall_thermite"; icon_state = "wall_thermite"; name = "melted wall"},/area/ruin/derelictoutpost) +"bV" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (EAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 4},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"bW" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (SOUTHEAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 6},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"bX" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (NORTH)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 1},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"bY" = (/obj/item/device/gps{gpstag = "Distress Signal"},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/powerstorage) +"bZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/powerstorage) +"ca" = (/obj/machinery/power/apc{cell_type = 0; dir = 4; name = "Power Storage APC"; pixel_x = 23; pixel_y = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/powerstorage) +"cb" = (/obj/structure/closet/wardrobe/cargotech,/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"cc" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/ruin/derelictoutpost/dockedship) +"cd" = (/obj/structure/grille/broken,/obj/item/weapon/shard,/obj/effect/decal/cleanable/blood/old{icon_state = "trails_1"; name = "dried blood trail"},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plating,/area/ruin/derelictoutpost/dockedship) +"ce" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"cf" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{tag = "icon-rwindow (NORTH)"; icon_state = "rwindow"; dir = 1},/turf/open/floor/plasteel/darkred,/area/ruin/derelictoutpost) +"cg" = (/obj/item/weapon/shard,/obj/item/stack/cable_coil{amount = 2; icon_state = "coil_red2"; item_state = "coil_red"},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/table_frame,/obj/item/stack/sheet/metal,/obj/item/stack/sheet/plasteel,/turf/open/floor/plasteel/darkred,/area/ruin/derelictoutpost) +"ch" = (/obj/structure/extinguisher_cabinet{pixel_x = -24},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"ci" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/glowshroom/single,/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"cj" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"ck" = (/obj/machinery/power/apc{cell_type = 0; dir = 2; name = "Tradepost APC"; pixel_x = 0; pixel_y = -24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"cl" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/glowshroom/single,/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (NORTH)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 1},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"cm" = (/obj/structure/alien/resin/wall{color = "#8EC127"; desc = "Thick material shaped into a wall. Eugh."; icon_state = "smooth"; name = "gelatinous wall"},/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) +"cn" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/electrical,/obj/item/stack/cable_coil,/turf/open/floor/plasteel,/area/ruin/derelictoutpost/powerstorage) +"co" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical,/turf/open/floor/plasteel,/area/ruin/derelictoutpost/powerstorage) +"cp" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/powerstorage) +"cq" = (/obj/structure/barricade/wooden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/powerstorage) +"cr" = (/obj/machinery/door/airlock/engineering{name = "Power Storage"; req_access_txt = "10"},/obj/structure/barricade/wooden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/powerstorage) +"cs" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"ct" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"cu" = (/obj/effect/decal/cleanable/blood/old{icon_state = "trails_1"; name = "dried blood trail"},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plating,/area/ruin/derelictoutpost/cargobay) +"cv" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plating,/area/ruin/derelictoutpost/cargobay) +"cw" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"cx" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"cy" = (/obj/machinery/door/airlock/glass,/obj/machinery/door/poddoor{id = "bigderelictcheckpoint"; name = "checkpoint security doors"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"cz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"cA" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"cB" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"cC" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/mob/living/simple_animal/hostile/creature{desc = "Awh its so sm-OH GOD WHAT THE FUCK."; health = 25; maxHealth = 25; name = "hatchling"; resize = 0.85},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"cD" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (SOUTHWEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 10},/mob/living/simple_animal/hostile/creature{desc = "Awh its so sm-OH GOD WHAT THE FUCK."; health = 25; maxHealth = 25; name = "hatchling"; resize = 0.85},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"cE" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (EAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 4},/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) +"cF" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (NORTHEAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 5},/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) +"cG" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"cH" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"cI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/janitorialcart,/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"cJ" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/item/weapon/mop,/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"cK" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (SOUTHWEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 10},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"cL" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (NORTHEAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 5},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"cM" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/glowshroom/single,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"cN" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"cO" = (/obj/machinery/light,/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"cP" = (/obj/item/weapon/shard,/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"cQ" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"cR" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) +"cS" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (NORTH)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 1},/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) +"cT" = (/obj/item/ammo_casing/c45{caliber = null; desc = "A .45 bullet casing. This one is spent."; icon_state = "s-casing"; name = "spent bullet casing"},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"cU" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"cV" = (/obj/effect/decal/cleanable/xenoblood/xsplatter,/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"cW" = (/turf/open/floor/plasteel/delivery,/area/ruin/derelictoutpost/cargobay) +"cX" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (NORTH)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 1},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"cY" = (/obj/structure/grille/broken,/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plating,/area/ruin/derelictoutpost) +"cZ" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (NORTH)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 1},/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) +"da" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/glowshroom/single,/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"db" = (/obj/item/ammo_casing/c45{caliber = null; desc = "A .45 bullet casing. This one is spent."; icon_state = "s-casing"; name = "spent bullet casing"},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"dc" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/machinery/light,/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"dd" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (SOUTHWEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 10},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"de" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (EAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 4},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"df" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (EAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 4},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/machinery/light,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"dg" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (EAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 4},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"dh" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (EAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 4},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/door_assembly/door_assembly_mai{density = 0; desc = "A pried-open airlock. Scratch marks mark the sidings of the door."; name = "pried-open airlock"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/open/floor/plating,/area/ruin/derelictoutpost/cargobay) +"di" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (NORTHEAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 5},/obj/effect/decal/cleanable/cobweb{icon_state = "cobweb2"},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating,/area/ruin/derelictoutpost) +"dj" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/item/weapon/shard,/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) +"dk" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/effect/decal/cleanable/blood/old,/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"dl" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/mob/living/simple_animal/hostile/creature{name = "Miss Tiggles"},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"dm" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/effect/decal/cleanable/blood/old,/obj/structure/alien/gelpod,/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"dn" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (WEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 8},/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) +"do" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (SOUTHEAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 6},/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) +"dp" = (/obj/machinery/light{dir = 8},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"dq" = (/obj/effect/decal/cleanable/xenoblood/xsplatter,/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"dr" = (/obj/effect/decal/cleanable/blood/old{icon_state = "trails_1"; name = "dried blood trail"},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/ruin/derelictoutpost) +"ds" = (/turf/closed/mineral,/area/ruin/derelictoutpost) +"dt" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/glowshroom/single,/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) +"du" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/item/weapon/gun/projectile/automatic/pistol/m1911{spawnwithmagazine = 0},/obj/item/ammo_box/magazine/m45,/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) +"dv" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (NORTHWEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 9},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) +"dw" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (EAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 4},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) +"dx" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (EAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 4},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) +"dy" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (EAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 4},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/glowshroom/single,/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) +"dz" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (NORTHEAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 5},/obj/effect/decal/cleanable/cobweb{icon_state = "cobweb2"},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) +"dA" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (EAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 4},/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) +"dB" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (SOUTHEAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 6},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/ruin/derelictoutpost) +"dC" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/effect/decal/cleanable/blood/old{icon_state = "trails_1"; name = "dried blood trail"},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"dD" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/effect/decal/cleanable/blood/old,/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) +"dE" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) +"dF" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (SOUTHWEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 10},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) +"dG" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (WEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 8},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) +"dH" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (SOUTHEAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 6},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) +"dI" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/ruin/derelictoutpost) +"dJ" = (/obj/item/weapon/gun/projectile/automatic/pistol/m1911{spawnwithmagazine = 0},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/effect/decal/cleanable/blood/old,/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"dK" = (/obj/item/ammo_casing/c45{caliber = null; desc = "A .45 bullet casing. This one is spent."; icon_state = "s-casing"; name = "spent bullet casing"},/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (NORTHEAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 5},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"dL" = (/turf/closed/wall,/area/ruin/derelictoutpost/cargostorage) +"dM" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (NORTHWEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 9},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/ruin/derelictoutpost) +"dN" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (WEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 8},/turf/open/floor/plating{icon_plating = "wall_thermite"; icon_state = "wall_thermite"; name = "melted wall"},/area/ruin/derelictoutpost) +"dO" = (/obj/structure/alien/resin/membrane{color = "#4BAE56"; desc = "A strange combination of thin, gelatinous material."; icon_state = "smooth"; name = "gelatinous membrane"},/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (WEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 8},/turf/open/floor/plating{icon_plating = "wall_thermite"; icon_state = "wall_thermite"; name = "melted wall"},/area/ruin/derelictoutpost) +"dP" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/glowshroom/single,/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (WEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 8},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"dQ" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (SOUTHEAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 6},/turf/open/floor/plasteel,/area/ruin/derelictoutpost) +"dR" = (/obj/structure/alien/resin/membrane{color = "#4BAE56"; desc = "A strange combination of thin, gelatinous material."; icon_state = "smooth"; name = "gelatinous membrane"},/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) +"dS" = (/obj/item/ammo_box/magazine/m45,/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/effect/decal/cleanable/blood/old{icon_state = "trails_1"; name = "dried blood trail"},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"dT" = (/obj/machinery/suit_storage_unit/standard_unit,/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargostorage) +"dU" = (/obj/machinery/suit_storage_unit/standard_unit,/obj/machinery/light{dir = 1},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargostorage) +"dV" = (/obj/structure/closet/crate,/obj/item/stack/sheet/glass/fifty,/obj/item/stack/sheet/glass/fifty,/turf/open/floor/plasteel/delivery,/area/ruin/derelictoutpost/cargostorage) +"dW" = (/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargostorage) +"dX" = (/obj/structure/closet/crate/secure/loot,/turf/open/floor/plasteel/delivery,/area/ruin/derelictoutpost/cargostorage) +"dY" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/item/stack/sheet/plasteel/twenty,/turf/open/floor/plasteel/delivery,/area/ruin/derelictoutpost/cargostorage) +"dZ" = (/obj/structure/extinguisher_cabinet{pixel_y = 32},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargostorage) +"ea" = (/obj/structure/closet/crate,/obj/item/weapon/storage/pill_bottle/stimulant,/turf/open/floor/plasteel/delivery,/area/ruin/derelictoutpost/cargostorage) +"eb" = (/obj/structure/closet/crate,/obj/item/target/syndicate,/obj/item/target/clown,/obj/item/target/clown,/obj/item/target/alien,/obj/item/target,/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/delivery,/area/ruin/derelictoutpost/cargostorage) +"ec" = (/obj/structure/closet/crate/medical,/obj/item/weapon/storage/firstaid/regular{empty = 1; name = "First-Aid (empty)"},/turf/open/floor/plasteel/delivery,/area/ruin/derelictoutpost/cargostorage) +"ed" = (/obj/structure/closet/crate/medical,/obj/item/weapon/storage/firstaid/regular{empty = 1; name = "First-Aid (empty)"},/obj/item/weapon/storage/firstaid/o2,/turf/open/floor/plasteel/delivery,/area/ruin/derelictoutpost/cargostorage) +"ee" = (/obj/effect/decal/cleanable/blood/old{icon_state = "trails_1"; name = "dried blood trail"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/ruin/derelictoutpost) +"ef" = (/obj/structure/alien/resin/membrane{color = "#4BAE56"; desc = "A strange combination of thin, gelatinous material."; icon_state = "smooth"; name = "gelatinous membrane"},/turf/open/floor/plating/asteroid/airless,/area/ruin/derelictoutpost) +"eg" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/mob/living/simple_animal/hostile/creature{desc = "Awh its so sm-OH GOD WHAT THE FUCK."; health = 25; maxHealth = 25; name = "hatchling"; resize = 0.85},/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) +"eh" = (/obj/effect/decal/cleanable/blood/old{icon_state = "trails_1"; name = "dried blood trail"},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargobay) +"ei" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargostorage) +"ej" = (/obj/structure/closet/crate,/obj/item/stack/sheet/cloth/ten,/obj/item/stack/sheet/cloth/ten,/turf/open/floor/plasteel/delivery,/area/ruin/derelictoutpost/cargostorage) +"ek" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/item/stack/sheet/cardboard/fifty,/turf/open/floor/plasteel/delivery,/area/ruin/derelictoutpost/cargostorage) +"el" = (/obj/machinery/power/apc{cell_type = 0; dir = 4; name = "Cargo Storage APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargostorage) +"em" = (/turf/closed/wall,/area/ruin/unpowered/no_grav) +"en" = (/obj/structure/alien/resin/wall{color = "#8EC127"; desc = "Thick material shaped into a wall. Eugh."; icon_state = "smooth"; name = "gelatinous wall"},/turf/open/floor/plating/asteroid,/area/ruin/unpowered/no_grav) +"eo" = (/obj/structure/closet/crate/internals,/obj/item/weapon/storage/toolbox/emergency,/obj/item/clothing/mask/breath,/turf/open/floor/plasteel/delivery,/area/ruin/derelictoutpost/cargostorage) +"ep" = (/obj/structure/closet/crate/engineering/electrical,/obj/item/weapon/storage/toolbox/electrical,/obj/item/stack/cable_coil,/turf/open/floor/plasteel/delivery,/area/ruin/derelictoutpost/cargostorage) +"eq" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/item/weapon/crowbar,/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargostorage) +"er" = (/obj/structure/closet/crate/medical,/obj/item/weapon/storage/firstaid/regular,/turf/open/floor/plasteel/delivery,/area/ruin/derelictoutpost/cargostorage) +"es" = (/obj/structure/closet/crate/engineering,/obj/item/weapon/storage/toolbox/mechanical,/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargostorage) +"et" = (/obj/structure/closet/crate/medical,/obj/item/weapon/storage/firstaid/brute,/obj/item/weapon/storage/firstaid/fire,/turf/open/floor/plasteel/delivery,/area/ruin/derelictoutpost/cargostorage) +"eu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargostorage) +"ev" = (/obj/structure/alien/weeds{color = "#4BAE56"; desc = "A thick gelatinous surface covers the floor. Someone get the golashes."; name = "gelatinous floor"},/obj/structure/alien/gelpod,/turf/open/floor/plating/asteroid,/area/ruin/derelictoutpost) +"ew" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (WEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 8},/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargostorage) +"ex" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (WEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 8},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargostorage) +"ey" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (WEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 8},/turf/open/floor/plasteel/delivery,/area/ruin/derelictoutpost/cargostorage) +"ez" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (NORTHEAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 5},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargostorage) +"eA" = (/obj/structure/closet/crate,/obj/item/stack/sheet/metal/fifty,/obj/item/stack/sheet/metal/fifty,/turf/open/floor/plasteel/delivery,/area/ruin/derelictoutpost/cargostorage) +"eB" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/item/device/paicard,/obj/machinery/light,/turf/open/floor/plasteel/delivery,/area/ruin/derelictoutpost/cargostorage) +"eC" = (/obj/structure/closet/crate,/obj/item/device/pda/clear,/turf/open/floor/plasteel/delivery,/area/ruin/derelictoutpost/cargostorage) +"eD" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargostorage) +"eE" = (/obj/structure/closet/crate/internals,/obj/item/weapon/tank/internals/emergency_oxygen/engi,/obj/item/weapon/tank/internals/emergency_oxygen/engi,/obj/item/weapon/storage/firstaid/toxin,/turf/open/floor/plasteel/delivery,/area/ruin/derelictoutpost/cargostorage) +"eF" = (/obj/structure/closet/crate,/turf/open/floor/plasteel/delivery,/area/ruin/derelictoutpost/cargostorage) +"eG" = (/obj/machinery/light,/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargostorage) +"eH" = (/obj/structure/closet/crate/engineering,/obj/item/device/multitool,/turf/open/floor/plasteel/delivery,/area/ruin/derelictoutpost/cargostorage) +"eI" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (SOUTHWEST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 10},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/open/floor/plasteel,/area/ruin/derelictoutpost/cargostorage) +"eJ" = (/obj/structure/door_assembly/door_assembly_mai{density = 0; desc = "A pried-open airlock. Scratch marks mark the sidings of the door."; name = "pried-open airlock"},/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (EAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/open/floor/plating,/area/ruin/derelictoutpost/cargostorage) +"eK" = (/obj/effect/decal/cleanable/blood/old{tag = "icon-trails_1 (SOUTHEAST)"; name = "dried blood trail"; icon_state = "trails_1"; dir = 6},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating,/area/ruin/derelictoutpost) +"eL" = (/obj/machinery/door/airlock/maintenance,/turf/open/floor/plating,/area/ruin/derelictoutpost/cargobay) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabacacacacacacacacacabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaadabababaeaeaeaeaeaeaeaeaeabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaadabafabagagagagagagagagagabahabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaadadabaiajaeaeaeaeaeaeaeaeaeajakabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaadadabalakaeamamamamamamamaeanaoabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaadadabapakaeaqarasatarasaqaeauavabadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaadadabawakaeataxayataxayataeauazabadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaAaBaAaCaCabawakaeaDaEaFaGaHaIaDaeauaJabadadaaaaaaaaaaaKaLaKadadadaKaLaKaaaaaa +aaaAaMaAaCaCabaNakaeaDaOaPaQaHaIaDaeauaNabadaaaaaaaaaaadaKaRaKadadadaKaRaKadadaa +aaaAaBaAaAaAaSaTakaeaDaOaPaUaVaWaDaeauaXabadaYaYaYaYaYaZaZaLaZaZaZaZaZaLaZaZadad +aaaAbabbbcbdaSaJakaeatbebfbebgbhataeauavabaZaKaKaKaKaZaZbibjbkblbmbnbobnbpaZaCad +aaaAbqbrbsbraSazakaebtbubebvbwbebtaeaubxbxbybzbzbAbBbCbDbjblblblbEbFbFbFbGaZaCad +aaaAbHbIbsbJaSbKakaeatbebLbMbNbOataeaubPbxbCbQbRbSbTbUbnbnbnbnbVbWaZblblbXaZaCaC +aaaAbJbYbZcaaScbakaeaqatcccccdataqaecebxakbCbCcfcgbCbCchbjcicjckbjbFbFbFclaZcmcm +aaaAcncocpcqcrcsctaeaeaeaeaecucvaecvcwcxcscyczczcAczcycAczcAcBaZbFbFcCbFcDcEcFcm +aaaAaAaSaSaSaScGcHcscIcJcxcxcKcLcMcxcNakakbCcOcPblcQbCbFbFbFbFbFbFblblbFcRcRcScm +aaadadabcTcTcUakcVbxbxbxaXcWcWcXbxbxceakabaZaZaKcYaKaZblciblblbFciblbFbFcmcmcZcm +adadaCabakbxdadbdcbxcVakcWaNcWdddededfdgdhdiaZcRdjcRaZdkblbldlbFbldkbFcidmdndocm +adaCaCabdpdqabababababababababababababababdraZdsdtcRaZbldmbFbFbFbFcCbFbFcmducRcm +adadaCabcTbxabdvdwdxdydzdsdsdvdxdAdAdAdxbUdBaZcRcRdsaZbldCbFblcCbFblblbldDcRcmcm +adaCaCabbxbxabdmdEcmdsdFdGdGdHdsdscmcRcRaZdIaZcRcRdsaZbldCbFciblbFbFbFbFcmdtcmaa +aaadaCabdJdKdLdLdLdLdLdLdLdLdLdLdLdLdLdLdLdMdNdndndndOdPdQbFblcCblbldkblcmcRdRad +aaadaCabbxdSdLdTdUdVdWdXdXdYdZeadWebeceddLeeaZefefefaZcRegcRcRdDcRblcRcmcmcRdRad +aaadaCabbxeheidWdWejdWdWdWdWdWekdWdWdWeldLeeemaCaCadencRcRcRdDcmcmcmcmcmcRcRdRaa +aaadadabdpeheidWdWeodWdWepeqdWerdWeseteudLeeemaCaCadencRcRevblcmcRdtcRegblevcmaa +aaadadabakddewexexexexexeyexexexexexeyezdLeeemaCaCadencmcRdDcRcmcRcmcmdRdRcmcmaa +aaadadabakakdLeAeBeCdWeDeEdWdXdXeFeGeHeIeJeKemaCaCadadcmcmcRegcmcRcmaaaaaaaaaaaa +aaadadabeLabdLdLdLdLdLdLdLdLdLdLdLdLdLdLdLaRemadadadadaacmcRcRcRcRcmaaaaaaaaaaaa +aaadadaZaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRemadadaaaaaacmcmdRdRcmcmaaaaaaaaaaaa +aaaaadaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZemadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaadadadadadadadadaCaCaCaCaCaCaCaCaCaCaCaCadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaadadaaaaadadadadadaCaCaCaCaCaCaCadadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaadadadadadadadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +"} diff --git a/_maps/RandomRuins/SpaceRuins/bus.dmm b/_maps/RandomRuins/SpaceRuins/bus.dmm new file mode 100644 index 0000000..ce578a0 --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/bus.dmm @@ -0,0 +1,821 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/open/space, +/area/space) +"ab" = ( +/turf/closed/mineral/ash_rock, +/area/ruin/unpowered/no_grav) +"ac" = ( +/obj/item/trash/sosjerky, +/turf/open/space, +/area/space) +"ad" = ( +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"ae" = ( +/mob/living/simple_animal/hostile/lizard, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"af" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"ag" = ( +/obj/item/stack/rods{ + amount = 50 + }, +/obj/item/weapon/stock_parts/manipulator/femto, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"ah" = ( +/obj/item/stack/cable_coil{ + amount = 5 + }, +/obj/item/weapon/shard{ + icon_state = "small" + }, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"ai" = ( +/obj/item/weapon/book/random, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"aj" = ( +/obj/structure/fluff/bus/dense, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"ak" = ( +/obj/structure/fluff/bus/passable{ + tag = "icon-wheredahoodat"; + icon_state = "wheredahoodat" + }, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"al" = ( +/obj/effect/decal/cleanable/salt, +/obj/item/weapon/reagent_containers/food/condiment/saltshaker, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"am" = ( +/obj/structure/fluff/bus/passable/seat{ + tag = "icon-backseat"; + icon_state = "backseat" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/airless/black{ + icon_state = "bus" + }, +/area/ruin/unpowered/no_grav) +"an" = ( +/obj/structure/fluff/bus/passable/seat{ + tag = "icon-backseat"; + icon_state = "backseat" + }, +/obj/item/weapon/reagent_containers/food/snacks/faggot, +/turf/open/floor/plasteel/airless/black{ + icon_state = "bus" + }, +/area/ruin/unpowered/no_grav) +"ao" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/airless/black{ + icon_state = "bus" + }, +/area/ruin/unpowered/no_grav) +"ap" = ( +/obj/structure/fluff/bus/passable/seat{ + icon_state = "backseat"; + pixel_y = 15; + tag = "icon-backseat" + }, +/turf/open/floor/plasteel/airless/black{ + icon_state = "bus" + }, +/area/ruin/unpowered/no_grav) +"aq" = ( +/obj/structure/fluff/bus/passable/seat{ + tag = "icon-backseat"; + icon_state = "backseat" + }, +/obj/item/weapon/reagent_containers/food/snacks/faggot, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/airless/black{ + icon_state = "bus" + }, +/area/ruin/unpowered/no_grav) +"ar" = ( +/obj/structure/fluff/bus/passable/seat{ + tag = "icon-backseat"; + icon_state = "backseat" + }, +/obj/item/weapon/reagent_containers/food/snacks/grown/citrus/orange, +/turf/open/floor/plasteel/airless/black{ + icon_state = "bus" + }, +/area/ruin/unpowered/no_grav) +"as" = ( +/obj/structure/fluff/bus/passable/seat/driver{ + icon_state = "driverseat"; + pixel_y = 17; + tag = "icon-driverseat" + }, +/obj/item/weapon/reagent_containers/food/snacks/grown/cherry_bomb, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/airless/black{ + icon_state = "bus" + }, +/area/ruin/unpowered/no_grav) +"at" = ( +/obj/structure/fluff/bus/dense{ + tag = "icon-hoodtop"; + icon_state = "hoodtop" + }, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"au" = ( +/obj/item/clothing/head/cone, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"av" = ( +/obj/structure/table, +/obj/item/device/paicard, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"aw" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"ax" = ( +/obj/structure/fluff/bus/passable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/airless/black{ + icon_state = "bus" + }, +/area/ruin/unpowered/no_grav) +"ay" = ( +/obj/structure/fluff/bus/passable, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/plasteel/airless/black{ + icon_state = "bus" + }, +/area/ruin/unpowered/no_grav) +"az" = ( +/obj/structure/fluff/bus/passable, +/turf/open/floor/plasteel/airless/black{ + icon_state = "bus" + }, +/area/ruin/unpowered/no_grav) +"aA" = ( +/obj/structure/fluff/bus/passable, +/obj/structure/closet/crate/freezer, +/obj/item/weapon/reagent_containers/food/snacks/faggot, +/obj/item/weapon/reagent_containers/food/snacks/faggot, +/obj/item/weapon/reagent_containers/food/snacks/faggot, +/turf/open/floor/plasteel/airless/black{ + icon_state = "bus" + }, +/area/ruin/unpowered/no_grav) +"aB" = ( +/obj/structure/fluff/bus/passable, +/obj/effect/mine/sound/bwoink, +/turf/open/floor/plasteel/airless/black{ + icon_state = "bus" + }, +/area/ruin/unpowered/no_grav) +"aC" = ( +/obj/structure/fluff/bus/passable, +/obj/item/weapon/reagent_containers/food/condiment/saltshaker, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/airless/black{ + icon_state = "bus" + }, +/area/ruin/unpowered/no_grav) +"aD" = ( +/obj/structure/fluff/bus/passable, +/obj/item/weapon/reagent_containers/food/snacks/faggot, +/turf/open/floor/plasteel/airless/black{ + icon_state = "bus" + }, +/area/ruin/unpowered/no_grav) +"aE" = ( +/obj/structure/fluff/bus/passable{ + tag = "icon-topdoor"; + icon_state = "topdoor" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/airless/black{ + icon_state = "bus" + }, +/area/ruin/unpowered/no_grav) +"aF" = ( +/obj/structure/fluff/bus/dense{ + tag = "icon-hoodbottom"; + icon_state = "hoodbottom" + }, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"aG" = ( +/obj/structure/fluff/bus/passable/seat{ + tag = "icon-backseat"; + icon_state = "backseat" + }, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"aH" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/drinks/coffee, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"aI" = ( +/obj/structure/fluff/bus/dense{ + tag = "icon-frontwallbottomrear"; + icon_state = "frontwallbottomrear" + }, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"aJ" = ( +/obj/structure/fluff/bus/dense{ + tag = "icon-frontwallbottom"; + icon_state = "frontwallbottom" + }, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"aK" = ( +/obj/structure/fluff/bus/dense{ + tag = "icon-reartire"; + icon_state = "reartire" + }, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"aL" = ( +/obj/structure/fluff/bus/dense{ + tag = "icon-frontwallbottom"; + icon_state = "frontwallbottom" + }, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"aM" = ( +/obj/structure/fluff/bus/passable{ + icon_state = "bottomdoor"; + layer = 3; + tag = "icon-bottomdoor" + }, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"aN" = ( +/obj/structure/fluff/bus/dense{ + tag = "icon-fronttire"; + icon_state = "fronttire" + }, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"aO" = ( +/obj/effect/decal/cleanable/robot_debris/old, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"aP" = ( +/obj/item/weapon/reagent_containers/food/snacks/faggot, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"aQ" = ( +/obj/item/weapon/reagent_containers/glass/rag, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"aR" = ( +/obj/item/weapon/storage/toolbox/mechanical, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"aS" = ( +/obj/item/clothing/head/helmet/space, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"aT" = ( +/obj/effect/decal/remains/human, +/obj/item/clothing/head/helmet/space, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"aU" = ( +/obj/structure/fluff/bus/passable/seat{ + tag = "icon-backseat"; + icon_state = "backseat" + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/reagent_containers/food/snacks/faggot, +/turf/open/floor/plasteel/airless/black{ + icon_state = "bus" + }, +/area/ruin/unpowered/no_grav) +"aV" = ( +/obj/structure/fluff/bus/passable/seat{ + tag = "icon-backseat"; + icon_state = "backseat" + }, +/obj/effect/decal/remains/human, +/turf/open/floor/plasteel/airless/black{ + icon_state = "bus" + }, +/area/ruin/unpowered/no_grav) +"aW" = ( +/obj/structure/fluff/bus/passable/seat/driver{ + icon_state = "driverseat"; + pixel_y = 17; + tag = "icon-driverseat" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/airless/black{ + icon_state = "bus" + }, +/area/ruin/unpowered/no_grav) +"aX" = ( +/obj/effect/decal/cleanable/shreds, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"aY" = ( +/obj/effect/decal/remains/human, +/obj/item/clothing/suit/space, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) +"aZ" = ( +/obj/structure/fluff/bus/passable, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/reagent_containers/food/snacks/faggot, +/turf/open/floor/plasteel/airless/black{ + icon_state = "bus" + }, +/area/ruin/unpowered/no_grav) +"ba" = ( +/obj/structure/fluff/bus/passable, +/obj/item/weapon/banhammer, +/turf/open/floor/plasteel/airless/black{ + icon_state = "bus" + }, +/area/ruin/unpowered/no_grav) +"bb" = ( +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered/no_grav) + +(1,1,1) = {" +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 +ab +ab +ab +ad +ad +ad +au +aa +ad +ad +ad +aa +aa +"} +(3,1,1) = {" +aa +aa +aa +aa +ab +ab +ab +ab +ad +ad +aw +ad +ad +ad +ad +ad +ad +aa +"} +(4,1,1) = {" +aa +aa +aa +ab +ab +ab +ab +ab +ad +aw +ad +aP +aj +aU +az +aI +ad +ad +"} +(5,1,1) = {" +aa +aa +aa +ab +ab +ab +ab +ad +al +ad +ad +ad +aj +am +aZ +aK +ad +ad +"} +(6,1,1) = {" +aa +aa +ab +ab +ab +ab +ad +ad +ad +ad +aw +ad +aj +aV +ba +aL +ad +ad +"} +(7,1,1) = {" +aa +aa +ab +ab +ab +ad +ad +aj +am +ax +aI +ad +aj +aU +az +aJ +ad +ad +"} +(8,1,1) = {" +aa +ab +ab +ab +ab +ad +ad +aj +an +ay +aJ +ad +aj +aW +aE +aM +ad +ad +"} +(9,1,1) = {" +aa +ab +ab +ab +ab +ae +ad +aj +am +az +aK +ad +ak +at +aF +aN +ad +ad +"} +(10,1,1) = {" +ab +ab +ab +ab +ab +ab +ad +aj +ao +aA +aJ +aQ +ad +aX +ad +ad +ad +aa +"} +(11,1,1) = {" +ab +ab +ab +ab +ab +ab +ad +aj +ap +aB +aJ +ad +aR +ad +ad +au +ad +aa +"} +(12,1,1) = {" +ab +ab +ab +ab +ab +ab +ad +aj +aq +aC +aL +ad +ad +aY +ad +ad +aa +aa +"} +(13,1,1) = {" +aa +ab +ab +ab +ab +af +ad +aj +ar +ax +aJ +ad +aS +ad +bb +ad +aa +aa +"} +(14,1,1) = {" +ab +ab +ab +ab +ab +ag +ad +aj +am +aD +aJ +ad +aO +ad +ad +ad +aa +aa +"} +(15,1,1) = {" +ab +ab +ab +ab +ab +ah +ad +aj +as +aE +aM +ad +ad +aP +ad +aa +aa +aa +"} +(16,1,1) = {" +ab +ab +ab +ab +ab +ab +ai +ak +at +aF +aN +ad +ad +ad +ad +aa +aa +aa +"} +(17,1,1) = {" +aa +ab +ab +ab +ab +ab +ab +ad +au +ad +ad +au +ad +ad +ad +aa +aa +aa +"} +(18,1,1) = {" +aa +aa +ab +ab +ab +ab +ab +ab +ad +ad +aO +ad +ad +ad +ad +aa +aa +aa +"} +(19,1,1) = {" +aa +aa +aa +ab +ab +ab +ab +ab +ab +ad +ad +ad +aT +ad +ad +aa +aa +aa +"} +(20,1,1) = {" +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ad +ad +ad +ad +aa +aa +aa +aa +"} +(21,1,1) = {" +aa +aa +aa +aa +aa +ab +ab +ab +ad +aG +ad +ad +ad +ad +aa +aa +aa +aa +"} +(22,1,1) = {" +aa +ac +aa +aa +aa +aa +aa +ad +av +aH +ad +ad +aa +aa +aa +aa +aa +aa +"} +(23,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} diff --git a/_maps/RandomRuins/SpaceRuins/caravanambush.dmm b/_maps/RandomRuins/SpaceRuins/caravanambush.dmm new file mode 100644 index 0000000..664806d --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/caravanambush.dmm @@ -0,0 +1,230 @@ +"aa" = (/turf/open/space,/area/space) +"ab" = (/turf/closed/wall/mineral/plastitanium,/area/ruin/powered) +"ac" = (/obj/machinery/door/airlock/external{icon_state = "door_locked"; locked = 1},/turf/open/floor/plasteel,/area/ruin/powered) +"ad" = (/turf/closed/wall,/area/ruin/powered) +"ae" = (/turf/open/space,/turf/closed/wall/mineral/plastitanium{dir = 1; icon_state = "diagonalWall3"},/area/ruin/powered) +"af" = (/obj/machinery/suit_storage_unit,/turf/open/floor/plasteel,/area/ruin/powered) +"ag" = (/turf/open/floor/plasteel,/area/ruin/powered) +"ah" = (/turf/open/floor/plating/airless,/area/ruin/powered) +"ai" = (/obj/machinery/door/airlock/external,/turf/open/floor/plasteel,/area/ruin/powered) +"aj" = (/obj/structure/statue/silver/medborg,/turf/open/floor/plasteel,/area/ruin/powered) +"ak" = (/mob/living/simple_animal/hostile/pirate/ranged{environment_smash = 0},/turf/open/floor/plasteel,/area/ruin/powered) +"al" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel,/area/ruin/powered) +"am" = (/obj/structure/closet{name = "pirate outfits"},/obj/item/clothing/head/collectable/pirate,/obj/item/clothing/suit/pirate,/obj/item/clothing/under/pirate,/obj/item/clothing/shoes/jackboots,/obj/item/clothing/head/bandana,/turf/open/floor/plasteel,/area/ruin/powered) +"an" = (/obj/structure/table,/obj/item/stack/sheet/mineral/gold{amount = 25},/obj/item/weapon/coin/plasma,/turf/open/floor/plasteel,/area/ruin/powered) +"ao" = (/obj/structure/table,/obj/item/stack/sheet/mineral/gold{amount = 25},/obj/item/weapon/coin/gold,/obj/item/weapon/coin/gold,/obj/item/weapon/coin/mythril,/obj/item/weapon/coin/plasma,/turf/open/floor/plasteel,/area/ruin/powered) +"ap" = (/obj/structure/table,/obj/item/weapon/coin/gold,/obj/item/weapon/coin/gold,/obj/item/weapon/coin/gold,/obj/item/weapon/coin/mythril,/obj/item/weapon/coin/plasma,/turf/open/floor/plasteel,/area/ruin/powered) +"aq" = (/obj/structure/table,/mob/living/simple_animal/parrot{faction = list("pirate"); name = "Pegwing"},/turf/open/floor/plasteel,/area/ruin/powered) +"ar" = (/obj/structure/shuttle/engine/propulsion/burst{dir = 4},/turf/open/floor/plating/airless,/area/ruin/powered) +"as" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 8},/turf/closed/wall/mineral/plastitanium,/area/ruin/powered) +"at" = (/obj/structure/bed,/obj/item/weapon/bedsheet/brown,/turf/open/floor/plasteel,/area/ruin/powered) +"au" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel,/area/ruin/powered) +"av" = (/obj/structure/rack,/obj/item/weapon/storage/bag/money/vault,/turf/open/floor/plasteel,/area/ruin/powered) +"aw" = (/obj/structure/closet/crate/secure/loot,/turf/open/floor/plasteel,/area/ruin/powered) +"ax" = (/obj/structure/table,/turf/open/floor/plasteel,/area/ruin/powered) +"ay" = (/obj/machinery/computer,/turf/open/floor/plasteel,/area/ruin/powered) +"az" = (/obj/structure/table,/obj/item/weapon/storage/bag/money/vault,/turf/open/floor/plasteel,/area/ruin/powered) +"aA" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/item/stack/sheet/mineral/gold{amount = 25},/obj/item/stack/sheet/mineral/bananium{amount = 5},/obj/item/stack/sheet/mineral/silver{amount = 25},/obj/item/stack/sheet/mineral/uranium{amount = 10},/obj/item/stack/sheet/mineral/diamond{amount = 5},/turf/open/floor/plasteel,/area/ruin/powered) +"aB" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ruin/powered) +"aC" = (/turf/closed/mineral,/area/ruin/unpowered/no_grav) +"aD" = (/obj/item/stack/rods,/turf/open/space,/area/space) +"aE" = (/obj/structure/fluff/broken_flooring{tag = "icon-pile (EAST)"; icon_state = "pile"; dir = 4},/turf/open/space,/area/space) +"aF" = (/mob/living/simple_animal/hostile/pirate,/turf/open/floor/plasteel,/area/ruin/powered) +"aG" = (/obj/structure/chair{dir = 1},/mob/living/simple_animal/hostile/pirate,/turf/open/floor/plasteel,/area/ruin/powered) +"aH" = (/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) +"aI" = (/turf/closed/wall/mineral/plastitanium,/area/ruin/unpowered/no_grav) +"aJ" = (/obj/machinery/door/airlock/external{icon_state = "door_locked"; locked = 1},/turf/open/floor/plating,/area/ruin/unpowered/no_grav) +"aK" = (/turf/closed/wall/mineral/iron,/area/ruin/unpowered/no_grav) +"aL" = (/obj/item/weapon/coin/mythril,/turf/open/floor/plasteel,/area/ruin/powered) +"aM" = (/obj/structure/chair,/turf/open/floor/plasteel,/area/ruin/powered) +"aN" = (/obj/structure/shuttle/engine/propulsion/burst{dir = 4},/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"aO" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 8},/turf/closed/wall/mineral/plastitanium,/area/ruin/unpowered/no_grav) +"aP" = (/obj/structure/chair,/obj/item/weapon/shard,/obj/item/stack/sheet/metal,/turf/open/floor/plasteel/airless/shuttle/red,/area/ruin/unpowered/no_grav) +"aQ" = (/obj/structure/chair,/obj/effect/decal/cleanable/shreds,/turf/open/floor/plasteel/airless/shuttle/red,/area/ruin/unpowered/no_grav) +"aR" = (/obj/item/weapon/shard,/turf/open/floor/plasteel/airless/shuttle/red,/area/ruin/unpowered/no_grav) +"aS" = (/turf/open/floor/plating/airless{icon_plating = "platingdmg1"; icon_state = "platingdmg1"},/area/ruin/unpowered/no_grav) +"aT" = (/obj/structure/fluff/broken_flooring{tag = "icon-singular"; icon_state = "singular"},/turf/open/space,/area/space) +"aU" = (/obj/structure/rack,/obj/item/weapon/tank/internals/plasma/full,/obj/item/weapon/tank/internals/plasma/full,/obj/item/weapon/tank/internals/plasma/full,/turf/open/floor/plasteel,/area/ruin/powered) +"aV" = (/obj/structure/fluff/broken_flooring{tag = "icon-singular"; icon_state = "singular"},/obj/effect/decal/cleanable/shreds,/turf/open/floor/plasteel/airless/shuttle/red,/area/ruin/unpowered/no_grav) +"aW" = (/obj/effect/gibspawner/human,/turf/open/floor/plasteel/airless/shuttle/red,/area/ruin/unpowered/no_grav) +"aX" = (/turf/open/space,/turf/open/floor/plating/airless{icon = 'icons/obj/smooth_structures/lattice.dmi'; icon_plating = "lattice"; icon_state = "lattice"; name = "anchor chain"},/area/space) +"aY" = (/obj/structure/statue/gold/cmo,/turf/open/floor/plasteel,/area/ruin/powered) +"aZ" = (/obj/structure/table,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/turf/open/floor/plasteel,/area/ruin/powered) +"ba" = (/obj/structure/table,/obj/item/stack/sheet/mineral/gold{amount = 25},/turf/open/floor/plasteel,/area/ruin/powered) +"bb" = (/turf/open/space,/turf/closed/wall/mineral/plastitanium{dir = 4; icon_state = "diagonalWall3"},/area/ruin/powered) +"bc" = (/obj/structure/chair{dir = 1},/obj/item/stack/rods,/obj/effect/gibspawner/human,/turf/open/floor/plasteel/airless/shuttle/red,/area/ruin/unpowered/no_grav) +"bd" = (/obj/structure/chair{dir = 1},/obj/item/weapon/shard,/obj/item/stack/sheet/metal,/obj/effect/decal/cleanable/shreds,/turf/open/floor/plasteel/airless/shuttle/red,/area/ruin/unpowered/no_grav) +"be" = (/turf/open/floor/plasteel/airless/shuttle/red,/area/ruin/unpowered/no_grav) +"bf" = (/obj/item/stack/sheet/metal,/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) +"bg" = (/turf/open/floor/wood/airless,/area/ruin/unpowered/no_grav) +"bh" = (/obj/structure/closet/crate/secure/weapon,/obj/item/weapon/gun/projectile/automatic/pistol/APS,/turf/open/floor/wood/airless,/area/ruin/unpowered/no_grav) +"bi" = (/mob/living/simple_animal/hostile/pirate/space{environment_smash = 0},/turf/open/floor/wood/airless,/area/ruin/unpowered/no_grav) +"bj" = (/obj/structure/closet/crate/secure/weapon,/obj/item/weapon/gun/projectile/shotgun/automatic/dual_tube,/turf/open/floor/wood/airless,/area/ruin/unpowered/no_grav) +"bk" = (/obj/structure/girder,/turf/open/space,/area/space) +"bl" = (/turf/closed/wall/mineral/titanium,/area/ruin/unpowered) +"bm" = (/turf/open/floor/plating,/obj/machinery/door/poddoor{id = "caravantrade1"; name = "cargo blastdoor"},/turf/open/floor/plating/airless{icon_plating = "platingdmg2"; icon_state = "platingdmg2"},/area/ruin/unpowered) +"bn" = (/turf/open/floor/plating/airless{icon_plating = "platingdmg1"; icon_state = "platingdmg1"},/area/ruin/unpowered) +"bo" = (/turf/open/floor/mineral/titanium/yellow,/obj/structure/door_assembly/door_assembly_shuttle{density = 0; name = "broken airlock"},/turf/open/floor/plating/airless{icon_plating = "platingdmg2"; icon_state = "platingdmg2"},/area/ruin/unpowered) +"bp" = (/turf/closed/wall/mineral/titanium/overspace,/area/ruin/unpowered) +"bq" = (/obj/structure/fluff/broken_flooring{tag = "icon-pile (WEST)"; icon_state = "pile"; dir = 8},/turf/open/space,/area/space) +"br" = (/obj/item/stack/sheet/metal,/turf/open/space,/area/space) +"bs" = (/obj/structure/lattice,/turf/open/space,/area/space) +"bt" = (/turf/open/floor/plating/airless{icon_plating = "platingdmg3"; icon_state = "platingdmg3"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating/airless{icon_plating = "platingdmg2"; icon_state = "platingdmg2"},/area/ruin/unpowered) +"bu" = (/obj/item/stack/sheet/metal,/obj/effect/decal/cleanable/dirt,/obj/item/stack/rods,/turf/open/floor/plating/airless{icon_plating = "platingdmg3"; icon_state = "platingdmg3"},/area/ruin/unpowered) +"bv" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"bw" = (/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"bx" = (/obj/machinery/button/door{pixel_x = 24},/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"by" = (/obj/structure/bed,/obj/item/weapon/bedsheet/black,/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"bz" = (/turf/open/floor/mineral/titanium/blue,/turf/closed/wall/mineral/titanium/interior,/area/ruin/unpowered) +"bA" = (/obj/structure/fluff/broken_flooring{tag = "icon-pile"; icon_state = "pile"},/turf/open/space,/area/space) +"bB" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating/airless{icon_plating = "platingdmg1"; icon_state = "platingdmg1"},/area/ruin/unpowered) +"bC" = (/turf/open/floor/plating/airless{icon_plating = "platingdmg3"; icon_state = "platingdmg3"},/area/ruin/unpowered) +"bD" = (/obj/structure/closet/crate/secure/gear,/obj/item/ammo_casing/shotgun/techshell,/obj/item/ammo_casing/shotgun/techshell,/obj/item/ammo_casing/shotgun/techshell,/obj/item/ammo_casing/shotgun/pulseslug,/obj/item/weapon/storage/box/lethalshot,/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"bE" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"bF" = (/mob/living/simple_animal/hostile/pirate/space/ranged{environment_smash = 0},/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"bG" = (/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"bH" = (/mob/living/simple_animal/hostile/pirate/space{environment_smash = 0},/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"bI" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular,/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"bJ" = (/turf/open/floor/plating,/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating/airless{icon_plating = "platingdmg2"; icon_state = "platingdmg2"},/area/ruin/unpowered) +"bK" = (/obj/structure/fluff/broken_flooring{tag = "icon-plating (NORTH)"; icon_state = "plating"; dir = 1},/turf/open/space,/area/space) +"bL" = (/obj/machinery/door/airlock/shuttle,/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"bM" = (/obj/effect/decal/cleanable/blood,/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"bN" = (/obj/structure/table,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"bO" = (/obj/machinery/door/airlock/shuttle,/turf/open/floor/plating/airless{icon_plating = "platingdmg3"; icon_state = "platingdmg3"},/area/ruin/unpowered) +"bP" = (/turf/open/space,/turf/closed/wall/mineral/plastitanium{dir = 8; icon_state = "diagonalWall3"},/area/ruin/powered) +"bQ" = (/obj/structure/fluff/broken_flooring{tag = "icon-plating (NORTH)"; icon_state = "plating"; dir = 1},/obj/structure/lattice,/turf/open/space,/area/space) +"bR" = (/obj/structure/girder,/turf/open/floor/plating/airless{icon_plating = "platingdmg3"; icon_state = "platingdmg3"},/area/ruin/unpowered) +"bS" = (/obj/structure/girder,/turf/open/floor/plating/airless{icon_plating = "platingdmg2"; icon_state = "platingdmg2"},/area/ruin/unpowered) +"bT" = (/obj/item/stack/sheet/metal,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating/airless{icon_plating = "platingdmg1"; icon_state = "platingdmg1"},/area/ruin/unpowered) +"bU" = (/obj/item/stack/rods,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating/airless{icon_plating = "platingdmg3"; icon_state = "platingdmg3"},/area/ruin/unpowered) +"bV" = (/obj/structure/closet/crate/secure/gear,/obj/item/ammo_casing/shotgun/frag12,/obj/item/ammo_casing/shotgun/frag12,/obj/item/ammo_casing/shotgun/frag12,/obj/item/ammo_casing/shotgun/frag12,/obj/item/weapon/storage/box/beanbag,/obj/item/weapon/storage/box/rubbershot,/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"bW" = (/obj/structure/closet/crate/secure/gear,/obj/item/ammo_box/c10mm,/obj/item/ammo_casing/shotgun/meteorshot,/obj/item/ammo_casing/shotgun/meteorshot,/obj/item/ammo_casing/shotgun/meteorshot,/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"bX" = (/obj/structure/closet/crate/secure/gear,/obj/item/ammo_box/a40mm,/obj/item/ammo_box/a40mm,/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"bY" = (/obj/structure/chair{dir = 4},/obj/effect/mob_spawn/human/corpse/nanotrasensoldier,/obj/effect/decal/cleanable/blood,/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"bZ" = (/obj/machinery/computer,/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"ca" = (/obj/structure/shuttle/engine/propulsion/burst/left{tag = "icon-burst_l (EAST)"; icon_state = "burst_l"; dir = 4},/turf/open/floor/plating/airless,/area/ruin/unpowered) +"cb" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 8},/turf/closed/wall/mineral/titanium,/area/ruin/unpowered) +"cc" = (/obj/structure/table,/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"cd" = (/obj/effect/decal/cleanable/dirt,/obj/structure/bed,/obj/item/weapon/bedsheet/black,/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"ce" = (/obj/structure/table,/turf/open/floor/mineral/plastitanium,/area/ruin/powered) +"cf" = (/obj/machinery/computer,/turf/open/floor/mineral/plastitanium,/area/ruin/powered) +"cg" = (/obj/structure/fluff/broken_flooring{tag = "icon-plating (EAST)"; icon_state = "plating"; dir = 4},/obj/structure/lattice,/turf/open/space,/area/space) +"ch" = (/turf/open/space,/obj/item/stack/rods,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating/airless{icon_plating = "platingdmg2"; icon_state = "platingdmg2"},/area/ruin/unpowered) +"ci" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating/airless{icon_plating = "platingdmg3"; icon_state = "platingdmg3"},/area/ruin/unpowered) +"cj" = (/turf/open/floor/plating/airless,/area/ruin/unpowered) +"ck" = (/obj/structure/closet/crate/secure/weapon,/obj/item/weapon/gun/projectile/revolver/grenadelauncher/unrestricted,/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"cl" = (/mob/living/simple_animal/hostile/pirate/space{environment_smash = 0},/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"cm" = (/obj/structure/door_assembly/door_assembly_shuttle{density = 0; name = "broken airlock"},/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"cn" = (/obj/structure/table,/obj/item/device/gps{gpstag = "Distress Signal"},/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"co" = (/obj/structure/shuttle/engine/propulsion/burst{dir = 4},/turf/open/floor/plating/airless,/area/ruin/unpowered) +"cp" = (/obj/structure/closet/crate/secure/engineering,/obj/item/weapon/storage/toolbox/mechanical,/obj/item/weapon/storage/toolbox/mechanical,/obj/item/weapon/storage/toolbox/electrical,/obj/item/weapon/storage/toolbox/electrical,/obj/item/clothing/gloves/color/yellow,/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"cq" = (/obj/item/weapon/shard,/obj/effect/decal/cleanable/dirt,/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"cr" = (/obj/structure/table_frame,/obj/effect/decal/cleanable/dirt,/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"cs" = (/turf/open/floor/mineral/plastitanium,/area/ruin/powered) +"ct" = (/obj/structure/chair{dir = 1},/mob/living/simple_animal/hostile/syndicate{environment_smash = 0; name = "Syndicate Salvage Pilot"},/turf/open/floor/mineral/plastitanium,/area/ruin/powered) +"cu" = (/obj/structure/closet/crate/secure/engineering,/obj/item/weapon/wrench{color = "#ff0000"; desc = "A prototype of a new wrench design, allegedly the red color scheme makes it go faster."; name = "experimental wrench"; toolspeed = 3},/obj/item/weapon/screwdriver{color = "#ff0000"; desc = "A prototype of a new screwdriver design, allegedly the red color scheme makes it go faster."; name = "experimental screwdriver"; toolspeed = 3},/obj/item/weapon/wirecutters{color = "#ff0000"; desc = "A prototype of a new wirecutter design, allegedly the red color scheme makes it go faster."; name = "experimental wirecutters"; toolspeed = 3},/obj/item/weapon/crowbar/red{color = "#ff0000"; desc = "A prototype of a new crowbar design, allegedly the red color scheme makes it go faster."; name = "experimental crowbar"; toolspeed = 3},/turf/open/floor/mineral/plastitanium,/area/ruin/powered) +"cv" = (/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/syndicate/ranged/space{environment_smash = 0; name = "Syndicate Salvage Worker"},/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"cw" = (/obj/item/stack/rods,/turf/open/floor/plating/airless{icon_plating = "platingdmg3"; icon_state = "platingdmg3"},/area/ruin/unpowered) +"cx" = (/turf/open/space,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating/airless{icon_plating = "platingdmg2"; icon_state = "platingdmg2"},/area/ruin/unpowered) +"cy" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/structure/girder,/turf/open/floor/plating/airless{icon_plating = "platingdmg3"; icon_state = "platingdmg3"},/area/ruin/unpowered) +"cz" = (/obj/item/stack/sheet/metal,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating/airless{icon_plating = "platingdmg3"; icon_state = "platingdmg3"},/area/ruin/unpowered) +"cA" = (/obj/structure/closet/crate/secure/weapon,/obj/item/weapon/gun/projectile/shotgun/riot,/obj/item/weapon/gun/projectile/shotgun/riot,/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"cB" = (/obj/structure/closet/crate/secure/weapon,/obj/item/weapon/gun/syringe/syndicate,/obj/item/weapon/gun/syringe/rapidsyringe,/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"cC" = (/obj/structure/closet/crate/secure/weapon,/obj/item/weapon/gun/projectile/automatic/c20r/toy/unrestricted,/obj/item/weapon/gun/projectile/automatic/c20r/toy/unrestricted,/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"cD" = (/mob/living/simple_animal/hostile/pirate/space/ranged{environment_smash = 0},/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"cE" = (/obj/structure/table,/obj/item/weapon/clipboard,/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"cF" = (/obj/structure/shuttle/engine/propulsion/burst/right{tag = "icon-burst_r (EAST)"; icon_state = "burst_r"; dir = 4},/turf/open/floor/plating/airless,/area/ruin/unpowered) +"cG" = (/mob/living/simple_animal/hostile/syndicate/melee/space{environment_smash = 0; name = "Syndicate Salvage Worker"},/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"cH" = (/obj/item/stack/rods,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating/airless{icon_plating = "platingdmg1"; icon_state = "platingdmg1"},/area/ruin/unpowered) +"cI" = (/obj/structure/grille/broken,/obj/item/weapon/shard,/turf/open/floor/plating/airless{icon_plating = "platingdmg1"; icon_state = "platingdmg1"},/area/ruin/unpowered) +"cJ" = (/obj/structure/closet/crate/secure/engineering,/obj/item/clothing/gloves/color/yellow,/obj/item/clothing/gloves/color/yellow,/turf/open/floor/mineral/plastitanium,/area/ruin/powered) +"cK" = (/obj/structure/closet/crate,/obj/item/stack/sheet/plasteel/twenty,/obj/item/stack/sheet/plasteel/twenty,/obj/effect/decal/cleanable/dirt,/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"cL" = (/obj/item/stack/sheet/metal,/obj/effect/decal/cleanable/dirt,/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"cM" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating/airless{icon_plating = "platingdmg3"; icon_state = "platingdmg3"},/area/ruin/unpowered) +"cN" = (/obj/structure/closet/crate/secure/plasma,/obj/item/weapon/tank/internals/plasma/full,/obj/item/weapon/tank/internals/plasma/full,/obj/item/stack/sheet/mineral/plasma{amount = 25},/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"cO" = (/obj/item/weapon/shard,/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"cP" = (/obj/item/chair,/obj/effect/mob_spawn/human/corpse/nanotrasensoldier,/obj/effect/decal/cleanable/blood,/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"cQ" = (/obj/item/stack/rods,/obj/item/stack/sheet/metal,/turf/open/floor/plating/airless{icon_plating = "platingdmg1"; icon_state = "platingdmg1"},/area/ruin/unpowered) +"cR" = (/obj/structure/fluff/broken_flooring{tag = "icon-plating (WEST)"; icon_state = "plating"; dir = 8},/obj/structure/lattice,/turf/open/space,/area/space) +"cS" = (/obj/machinery/door/airlock/external{icon_state = "door_locked"; locked = 1},/turf/open/floor/plating,/area/ruin/powered) +"cT" = (/obj/machinery/porta_turret/syndicate/pod,/turf/open/floor/plating/airless,/area/ruin/powered) +"cU" = (/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/syndicate/melee/space/stormtrooper{environment_smash = 0; name = "Syndicate Salvage Leader"},/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"cV" = (/obj/structure/chair{dir = 4},/obj/effect/decal/cleanable/blood,/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"cW" = (/obj/structure/closet/crate/secure/plasma,/obj/item/weapon/tank/internals/plasma/full,/obj/item/stack/sheet/mineral/plasma{amount = 25},/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"cX" = (/obj/structure/closet/crate/secure/engineering,/obj/item/organ/cyberimp/arm/toolset,/obj/item/organ/cyberimp/arm/toolset,/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"cY" = (/obj/structure/closet/crate/secure/plasma,/obj/item/mecha_parts/mecha_equipment/weapon/energy/plasma,/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"cZ" = (/mob/living/simple_animal/hostile/syndicate/ranged/space/stormtrooper{environment_smash = 0; name = "Syndicate Salvage Leader"},/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"da" = (/obj/item/stack/rods,/obj/item/weapon/shard,/mob/living/simple_animal/hostile/syndicate/melee/space{environment_smash = 0; name = "Syndicate Salvage Worker"},/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"db" = (/obj/item/weapon/shard,/turf/open/floor/plating/airless{icon_plating = "platingdmg1"; icon_state = "platingdmg1"},/area/ruin/unpowered) +"dc" = (/obj/item/weapon/shard,/turf/open/space,/area/space) +"dd" = (/obj/structure/chair{dir = 4},/turf/open/floor/mineral/plastitanium,/area/ruin/powered) +"de" = (/obj/structure/closet/crate/secure/plasma,/obj/item/stack/sheet/mineral/plasma{amount = 25},/obj/item/stack/sheet/mineral/plasma{amount = 25},/obj/item/weapon/tank/internals/plasma/full,/obj/item/weapon/tank/internals/plasma/full,/turf/open/floor/mineral/plastitanium,/area/ruin/powered) +"df" = (/obj/structure/chair{dir = 8},/turf/open/floor/mineral/plastitanium,/area/ruin/powered) +"dg" = (/obj/structure/closet/crate,/obj/item/stack/sheet/rglass{amount = 20},/obj/item/stack/sheet/rglass{amount = 20},/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"dh" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/item/stack/sheet/mineral/gold{amount = 25},/obj/item/stack/sheet/mineral/bananium{amount = 5},/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"di" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/item/stack/sheet/mineral/silver{amount = 25},/obj/item/stack/sheet/mineral/uranium{amount = 10},/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"dj" = (/obj/effect/mob_spawn/human/corpse/nanotrasensoldier,/obj/effect/decal/cleanable/blood,/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"dk" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"dl" = (/obj/structure/closet/crate/secure/plasma,/obj/item/stack/sheet/mineral/plasma{amount = 25},/obj/item/weapon/tank/internals/plasma/full,/turf/open/floor/mineral/plastitanium,/area/ruin/powered) +"dm" = (/obj/structure/chair,/turf/open/floor/mineral/plastitanium,/area/ruin/powered) +"dn" = (/obj/structure/closet/crate,/obj/item/stack/sheet/mineral/gold{amount = 25},/obj/item/stack/sheet/mineral/silver{amount = 25},/turf/open/floor/mineral/plastitanium,/area/ruin/powered) +"do" = (/obj/structure/closet/crate,/obj/item/stack/sheet/metal/fifty,/obj/item/stack/sheet/metal/fifty,/obj/item/stack/sheet/glass/fifty,/obj/item/stack/sheet/glass/fifty,/obj/effect/decal/cleanable/dirt,/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"dp" = (/obj/structure/closet/crate,/obj/item/stack/sheet/mineral/silver{amount = 25},/turf/open/floor/mineral/titanium/yellow,/area/ruin/unpowered) +"dq" = (/mob/living/simple_animal/hostile/syndicate/ranged/space{environment_smash = 0; name = "Syndicate Salvage Worker"},/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"dr" = (/obj/effect/decal/cleanable/dirt,/obj/item/weapon/clipboard,/turf/open/floor/mineral/titanium/blue,/area/ruin/unpowered) +"ds" = (/obj/structure/shuttle/engine/heater,/turf/closed/wall/mineral/plastitanium,/area/ruin/powered) +"dt" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/item/stack/sheet/mineral/diamond{amount = 5},/obj/item/stack/sheet/mineral/gold{amount = 25},/turf/open/floor/mineral/plastitanium,/area/ruin/powered) +"du" = (/obj/structure/chair{dir = 4},/mob/living/simple_animal/hostile/syndicate{environment_smash = 0; name = "Syndicate Salvage Pilot"},/turf/open/floor/mineral/plastitanium,/area/ruin/powered) +"dv" = (/obj/structure/shuttle/engine/propulsion/burst,/turf/open/floor/plating/airless,/area/ruin/powered) +"dw" = (/obj/structure/chair{dir = 1},/turf/open/floor/mineral/plastitanium,/area/ruin/powered) +"dx" = (/obj/structure/closet/crate,/obj/item/stack/sheet/mineral/diamond{amount = 5},/obj/item/stack/sheet/mineral/uranium{amount = 10},/obj/item/stack/sheet/mineral/silver{amount = 25},/turf/open/floor/mineral/plastitanium,/area/ruin/powered) +"dy" = (/mob/living/simple_animal/hostile/syndicate/ranged/space/stormtrooper{environment_smash = 0; name = "Syndicate Salvage Leader"},/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) +"dz" = (/mob/living/simple_animal/hostile/syndicate/ranged/space{environment_smash = 0; name = "Syndicate Salvage Worker"},/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababacacadaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadafagagafabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabafagagafabahadahadaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababaiaiadadadababababaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabadadajagakagalamanaoapaqabadababababadaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarasatatagatatagatatagauabavawaxayazaAaBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCaCaCaCaCaCaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDaaaEaaaaaaaaaaaaaaaaaaaaaaarasawaFagagagagagagakagagagagagaGagagaBaaaaaaaaaaaaaaaCaCaCaCaCaCaHaHaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaHaHaHaHaHaCaCaCaCaCaaaaaaaaaaaaaIaIaIaIaJaIaKaaaaaaaaaaaaaaaaaaaaaaaaaaaaarasawaLagagagagagagagagagagagagaMagagaBaaaaaaaaaaaaaaaCaCaCaCaCaCaHaHaHaHaHaHaHaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaCaCaHaHaHaHaHaHaCaCaCaCaCaCaaaaaaaaaNaOaPaQaRaKaSaTaDaaaaaaaaaaaaaaaaaaaaaaaaarasatatakatatagatataFaMabaUawaxayaxagaBaaaaaaaaaaaaaCaCaCaCaCaCaCaCaHaHaHaHaHaHaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaCaCaCaCaCaCaCaHaHaHaCaCaCaCaaaaaaaaaIaIaVaWaKaKaKaKaKaXaXaXaXaXaaaaaaaaaaaaabadadaYagagagalamazaZbaazabadadabababadbbaaaaaaaaaCaCaCaCaCaCaCaCaCaCaCaCaHaHaHaHaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaCaCaCaCaCaCaCaCaHaHaHaCaCaCaCaCaCaaaNaObcbdbeaKbeaSaaaDaaaaaaaXaXaXaXaXaXaXaXaXadadabaiaiabadadababababbbaaaaaaaaaaaaaaaaaaaCaCaCaCaCaCaCaCaCaCaCaCaHaHaCaCaCaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaCaCaCaCaCaCaCaCaHaHaHaHaCaCaCaaaIaIaIaIaJaIaKaIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabafagagafabahadahadbbaaaaaaaaaaaaaaaaaaaaaCaCaCaCaCaCaCaCaCaCaCaCaHaCaCaCaCaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaCaCaCaCaCaCaCaCaCaCaCaHaHaCaCaaaaaaaaaaaaaaaDaaaaaTaaaaaaaaaaaaaaaaaaaaaaaaaaabafagagafabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCaCaCaCaCaCaCaCaCaCaCaHaCaCaCaCaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaCaCaCaCaCaCaCaCaHaHaHaHaCaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabadacacadbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaHaHaHaCaCaCaCaCaCaCaHaHaCaCaCaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaHaHaHaHaHbfaHaHaHaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabgbgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaHaHaHaHaHaHaHaHaHaHaHaHaCaCaCaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaHaHaHaHaHaHaHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabgbhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaHaHaHaHaHaHaHaCaCaCaCaCaCaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabgbiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaHaHaHaHaHaHaHaHaCaCaCaCaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjbgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabgbgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTbkblblblbmbmbnbnblboblbpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTbraabsbtbubvbwbwbxblbwbybzbpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEaDbBbCbDbEbFbGblbwbHbIbJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDaaaabraabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsaabKbBbCbEbGbGbGbLbMbwbNbJaaaaaaaaaaaaaaaaaablblblblblblbmbmbmbmblbOblbpaaaaaabPaBaBaBaeaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablblblblbsaaaTaaaaaaaaaabQbRaaaaaaaaaaaaaaaaaaaaaaaaaablbSblbTbUbVbGbFbWbXblbwbYbZbJaaaaaaaaaaaaaaaaaaaacacbbwbwccbwbwbwbxblbwcdbzbpaaaaabcecfceabaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacbbvbCcgbraabsbschbBcibzbpaaaaaaaaaaaaaaaaaaaaaaaaaacjcbcibEbGckbGclbGcmbwbwcnbJaaaaaaaaaaaaaaaaaaaacocbbwbwbGbGbGcpbGblbwcqcrbnaaaaabcsctcuabaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacocbbwcvcicicwcxcicyczciccbJaaaaaaaaaaaaaaaaaaaaaaaaaacocbbwbwcAcBbGbGcCblbwcDcEbJaaaaaaaaaaaaaaaaaaaacFcbbwbGbGbGcGbGbGcmbwbvcHcIaaaaabcscJcsabaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFcbbwcKbEcLcicMcLbEbGbwbNbJaaaaaaaaaaaaaaaaaaaaaaaaaacFcbbwbHccbwbwbwbxblbwbwbzbpaaaaaaaaaaaaaaaaaablblblbwbGcNbGbGcGbGblcOcPcQcRaaaacScscscscSaaaaaaaaaa +aaaaaaaaaaaaaaaacTaaaaaaaaaaaaaaaaaablblblbwbGbGbGbEcUbGblbGcVbZbJaaaaaaaaaaaaaaaaaaaaaaaablblblblblblbmbmbmbmblbOblbpaaaaaaaaaaaaaaaaaaaaaacacbbwcWbGcXbGcYcZcmbMdadbbsaadcabdddedfabaaaaaaaaaa +aaaaaaaaaaaaaaababababcSabababaeaaaaaacacbbwbGdgdhbGbGdicmdjbwccbJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacocbbwbwbGbGbGbGbGblbwbvdkbnaaaaabdddldfabaaaaaaaaaa +aaaaaaaaaaaaaaarasdmdmcsdncsceaBaaaaaacocbbwbwbGcGdobGdpbldqbwcEbJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFcbbwbwccbwbwbwbxbldrbwbzbpaacTabdsabdsabcTaaaaaaaa +aaaaaaaaaaaaaaababdtcscscsducfaBaaaaaacFcbbwbwccbwbwbwbxblbwbwbzbpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCaCaHaHaHaCaCaCaaaaaaaaaaaaaaaaaaaaaablblblblblblbmbmbmbmblbOblbpaaaaaaabdvabdvabaaaaaaaaaa +aaaaaaaaaaaaaaarasdwdwcsdxcsceaBaaaablblblblblblbmbmbmbmblbOblbpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCaCaCaCaCaCaHaHaCaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaababababcSabababbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCaCaCaCaCaCaCaHdyaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaacTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCaCaCaCaCaCaCaCaCaHaHaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaCaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCaCaCaCaCaCaCaCaHdzaCaCaCaCaaaaaaaacTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCaCaCaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaCaCaCaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCaCaCaCaCaCaCaHaHaCaCaCaCaCaaaaaaababababcSabababaeaaaaaaaaaaaaaaaaaaaaaCaCaCaCaCaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaCaCaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCaaaaaaaCaaaaaaaaaaaaaaaaaaaaaaaaaCaCaCaCaCaCaCaHaHaCaCaCaHaHaaaaaaarasdmdmcscscsceaBaaaaaaaaaaaaaaaaaaaCaCaCaCaCaCaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaCaCaCaCaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCaaaCaaaaaaaaaaaaaaaaaaaaaaaaaaaCaCaCaCdzaHaHaHaHaHaCaaaaaaababcscscscsducfaBaaaaaaaaaaaaaaaaaCaCaCaCaCaCaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaCaCaCaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCaaaCaCaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCaCaHaHdzaHaCaCaCaaaaaaarasdwdwcscscsceaBaaaaaaaaaaaaaaaaaCaCaCaCaCaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaCaCaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCaaaaaaaCaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCaCaCaCaCaCaCaaaaaaaaaaababababcSabababbbaaaaaaaaaaaaaaaaaCaCaCaCaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +"} diff --git a/_maps/RandomRuins/SpaceRuins/crashedclownship.dmm b/_maps/RandomRuins/SpaceRuins/crashedclownship.dmm new file mode 100644 index 0000000..f571785 --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/crashedclownship.dmm @@ -0,0 +1,46 @@ +"a" = (/turf/open/space,/area/space) +"b" = (/turf/closed/mineral/random,/area/ruin/unpowered/no_grav) +"c" = (/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) +"d" = (/turf/closed/wall/mineral/clown,/area/ruin/unpowered) +"e" = (/obj/machinery/door/airlock/clown,/turf/open/floor/mineral/bananium/airless,/area/ruin/unpowered) +"f" = (/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered) +"g" = (/obj/effect/mob_spawn/human/clown,/turf/open/floor/mineral/bananium/airless,/area/ruin/unpowered) +"h" = (/turf/open/floor/mineral/bananium/airless,/area/ruin/unpowered) +"i" = (/obj/structure/closet/crate,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/turf/open/floor/mineral/bananium/airless,/area/ruin/unpowered) +"j" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/item/weapon/ore/bananium,/turf/open/floor/mineral/bananium/airless,/area/ruin/unpowered) +"k" = (/obj/structure/closet/secure_closet{name = "clown locker"; req_access_txt = "46"},/obj/item/clothing/shoes/clown_shoes/banana_shoes,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/mineral/bananium/airless,/area/ruin/unpowered) +"l" = (/obj/structure/shuttle/engine/heater{color = "#FFFF00"; dir = 4; icon_state = "heater"},/obj/structure/window/reinforced{color = "#FFFF00"; dir = 8},/turf/open/floor/plating/airless{color = "#FFFF00"},/area/ruin/unpowered) +"m" = (/obj/structure/shuttle/engine/propulsion{color = "#FFFF00"; dir = 8; icon_state = "propulsion_l"},/turf/open/space,/area/ruin/unpowered) +"n" = (/turf/closed/mineral/random,/area/ruin/unpowered) +"o" = (/obj/item/weapon/shard{icon_state = "small"},/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered) +"p" = (/obj/item/weapon/ore/bananium,/turf/open/floor/mineral/bananium/airless,/area/ruin/unpowered) +"q" = (/obj/item/weapon/shard{icon_state = "medium"},/obj/structure/chair{dir = 8},/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered) +"r" = (/obj/effect/mob_spawn/human/clown{name = "Clown Pilot"},/turf/open/floor/mineral/bananium/airless,/area/ruin/unpowered) +"s" = (/obj/item/weapon/paper{info = "The call has gone out! Our ancestral home has been rediscovered! Not a small patch of land, but a true clown nation, a true Clown Planet! We're on our way home at last!"},/turf/open/floor/mineral/bananium/airless,/area/ruin/unpowered) +"t" = (/obj/structure/grille{color = "#FFFF00"},/obj/structure/window/reinforced{color = "#FFFF00"},/obj/structure/window/reinforced{color = "#FFFF00"; dir = 4},/obj/structure/window/reinforced{color = "#FFFF00"; dir = 8},/turf/open/floor/plating/airless{color = "#FFFF00"},/area/ruin/unpowered) +"u" = (/obj/item/weapon/shard,/obj/structure/chair{dir = 8},/turf/open/floor/mineral/bananium/airless,/area/ruin/unpowered) +"v" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/open/floor/mineral/bananium/airless,/area/ruin/unpowered) +"w" = (/obj/item/weapon/storage/bag/ore,/turf/open/floor/mineral/bananium/airless,/area/ruin/unpowered) +"x" = (/obj/item/weapon/pickaxe,/turf/open/floor/mineral/bananium/airless,/area/ruin/unpowered) +"y" = (/obj/structure/closet/crate,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/turf/open/floor/mineral/bananium/airless,/area/ruin/unpowered) +"z" = (/obj/item/weapon/shovel,/turf/open/floor/mineral/bananium/airless,/area/ruin/unpowered) + +(1,1,1) = {" +abbaaaaccccccaaaaaaaaaaaaaaa +bbbbaabbbbbccbbbaaaaaaaaaaaa +bbbbbbbbbbbccbbaaaaaaaaaaaaa +abbbbbbbbbbbbbbaaaaaaaaaaaaa +abbbbbbbbbbbbccaadddeeddddda +aabbbbbbbbbbbbcdddfghhiijklm +aaabbbbbbbbbbbbnnnohhhhhphlm +aabbbbbbbbbbbbbnnqrhsphphplm +aabbbbbbbbbbbbbthuhvhghhhplm +aabbbbbbbbbbbbbdddwxhhyyizlm +aabbbbbbbbbbbbbbbdddeeddddda +abbbbbbbbbbbbbbbbbbbbbbbbaaa +abbabbbbbccbbbbbbbbbbbaaaaaa +aaaabbbbcccbbbbbbbbbaaaaaaaa +aaaabbaaaaccbcbbcccaaaaaaaaa +aaaabaaaaaacbbbbbbcaaaaaaaaa +aaaaaaaaaaaaaabbbbcaaaaaaaaa +"} diff --git a/_maps/RandomRuins/SpaceRuins/crashedship.dmm b/_maps/RandomRuins/SpaceRuins/crashedship.dmm new file mode 100644 index 0000000..dfa9a8c --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/crashedship.dmm @@ -0,0 +1,439 @@ +"aa" = (/turf/open/space,/area/space) +"ab" = (/obj/item/weapon/circular_saw,/obj/structure/lattice,/turf/open/space,/area/space) +"ac" = (/turf/closed/wall/mineral/titanium,/area/awaymission/BMPship/Aft) +"ad" = (/turf/closed/wall/mineral/titanium/interior,/area/awaymission/BMPship/Aft) +"ae" = (/turf/closed/wall/mineral/titanium/overspace,/area/awaymission/BMPship/Aft) +"af" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/open/floor/engine,/area/awaymission/BMPship/Aft) +"ag" = (/obj/machinery/porta_turret{dir = 8; emagged = 1; installation = /obj/item/weapon/gun/energy/lasercannon},/turf/open/floor/engine,/area/awaymission/BMPship/Aft) +"ah" = (/turf/open/floor/engine,/area/awaymission/BMPship/Aft) +"ai" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"aj" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/open/floor/engine,/area/awaymission/BMPship/Aft) +"ak" = (/obj/machinery/door/unpowered/shuttle,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"al" = (/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"am" = (/obj/structure/lattice,/turf/open/space,/area/space) +"an" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/open/floor/engine,/area/awaymission/BMPship/Aft) +"ao" = (/obj/machinery/light/small,/turf/open/floor/engine,/area/awaymission/BMPship/Aft) +"ap" = (/turf/closed/wall/mineral/titanium/overspace,/area/awaymission/BMPship/Midship) +"aq" = (/turf/closed/wall/mineral/titanium,/area/awaymission/BMPship/Midship) +"ar" = (/obj/machinery/door/airlock/silver{locked = 1},/turf/open/floor/plating{icon_state = "panelscorched"},/area/awaymission/BMPship/Aft) +"as" = (/obj/structure/bed/roller,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"at" = (/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"au" = (/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/restraints/handcuffs,/obj/structure/closet/crate,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"av" = (/obj/item/weapon/scalpel,/obj/structure/closet/crate,/obj/item/weapon/tank/internals/anesthetic,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"aw" = (/obj/item/bodybag,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"ax" = (/obj/item/weapon/storage/box/syringes,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"ay" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"az" = (/obj/structure/table/optable,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"aA" = (/obj/machinery/computer/operating,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"aB" = (/turf/open/floor/plating/warnplate{dir = 9},/area/awaymission/BMPship/Aft) +"aC" = (/obj/structure/closet/crate/freezer,/obj/item/organ/appendix,/obj/item/weapon/reagent_containers/food/snacks/meat/slab,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/golem,/turf/open/floor/plating/warnplate{dir = 1},/area/awaymission/BMPship/Aft) +"aD" = (/obj/structure/closet/crate/freezer,/obj/item/organ/brain,/obj/item/weapon/reagent_containers/food/snacks/meat/slab,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/slime,/turf/open/floor/plating/warnplate{dir = 1},/area/awaymission/BMPship/Aft) +"aE" = (/obj/structure/table,/obj/item/stack/packageWrap,/turf/open/floor/plating/warnplate{dir = 1},/area/awaymission/BMPship/Aft) +"aF" = (/obj/structure/table,/obj/item/weapon/storage/box,/obj/machinery/light/small{dir = 1},/turf/open/floor/plating/warnplate{dir = 1},/area/awaymission/BMPship/Aft) +"aG" = (/turf/open/floor/plating/warnplate{dir = 1},/area/awaymission/BMPship/Aft) +"aH" = (/turf/closed/wall/mineral/titanium/interior,/area/awaymission/BMPship/Fore) +"aI" = (/turf/closed/wall/mineral/titanium/overspace,/area/awaymission/BMPship/Fore) +"aJ" = (/turf/open/floor/plating/airless{icon_state = "platingdmg2"},/area/awaymission/BMPship/Midship) +"aK" = (/turf/open/floor/plating/airless{icon_state = "platingdmg3"},/area/awaymission/BMPship/Midship) +"aL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"aM" = (/turf/open/floor/plating/warnplate{dir = 8},/area/awaymission/BMPship/Aft) +"aN" = (/obj/item/weapon/storage/box,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"aO" = (/obj/item/weapon/hand_labeler,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"aP" = (/obj/structure/closet/crate/large,/turf/open/floor/plating/warnplate{dir = 4},/area/awaymission/BMPship/Aft) +"aQ" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Fore) +"aR" = (/obj/structure/table/wood,/obj/item/stack/spacecash/c500,/obj/item/stack/spacecash/c100,/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/open/floor/wood,/area/awaymission/BMPship/Fore) +"aS" = (/obj/structure/bed,/obj/item/weapon/bedsheet/yellow,/turf/open/floor/wood,/area/awaymission/BMPship/Fore) +"aT" = (/turf/closed/wall/mineral/titanium,/area/awaymission/BMPship/Fore) +"aU" = (/turf/open/floor/plating/warnplate{dir = 9},/area/awaymission/BMPship/Fore) +"aV" = (/obj/structure/rack,/turf/open/floor/plating/warnplate{dir = 1},/area/awaymission/BMPship/Fore) +"aW" = (/turf/open/floor/plating/warnplate{dir = 1},/area/awaymission/BMPship/Fore) +"aX" = (/turf/open/floor/plating/warnplate{dir = 5},/area/awaymission/BMPship/Fore) +"aY" = (/obj/structure/sign/vacuum,/turf/closed/wall/mineral/titanium,/area/awaymission/BMPship/Fore) +"aZ" = (/turf/open/floor/plating/airless{icon_state = "platingdmg1"},/area/awaymission/BMPship/Midship) +"ba" = (/turf/open/floor/plating/airless{icon_state = "panelscorched"},/area/awaymission/BMPship/Midship) +"bb" = (/obj/effect/decal/cleanable/blood/gibs/old,/obj/effect/gibspawner/human,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"bc" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/item/clothing/glasses/regular/hipster,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"bd" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"be" = (/obj/machinery/door/unpowered/shuttle,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf,/area/awaymission/BMPship/Midship) +"bf" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plating/warnplate{dir = 8},/area/awaymission/BMPship/Aft) +"bg" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"bh" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"bi" = (/obj/machinery/computer/teleporter,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"bj" = (/obj/machinery/teleport/station,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"bk" = (/obj/machinery/teleport/hub,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"bl" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Fore) +"bm" = (/turf/open/floor/wood,/area/awaymission/BMPship/Fore) +"bn" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/wood,/area/awaymission/BMPship/Fore) +"bo" = (/turf/open/floor/plating/warnplate{dir = 8},/area/awaymission/BMPship/Fore) +"bp" = (/turf/open/floor/plating,/area/awaymission/BMPship/Fore) +"bq" = (/obj/machinery/door/airlock/external,/turf/open/floor/plating,/area/awaymission/BMPship/Fore) +"br" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"bs" = (/obj/structure/closet/crate,/obj/item/stack/spacecash/c1000,/obj/item/stack/spacecash/c50,/turf/open/floor/plating/warnplate{dir = 4},/area/awaymission/BMPship/Aft) +"bt" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Fore) +"bu" = (/turf/open/floor/plasteel{icon_state = "wood-broken"},/area/awaymission/BMPship/Fore) +"bv" = (/turf/open/floor/plating/warnplate{dir = 2},/area/awaymission/BMPship/Fore) +"bw" = (/obj/machinery/light/small,/turf/open/floor/plating/warnplate{dir = 2},/area/awaymission/BMPship/Fore) +"bx" = (/turf/open/floor/plating/warnplate{dir = 6},/area/awaymission/BMPship/Fore) +"by" = (/obj/machinery/light,/obj/effect/decal/cleanable/blood/gibs/old,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"bz" = (/obj/machinery/button/door{id = "packerMed"; pixel_y = -24},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"bA" = (/obj/machinery/sleeper{dir = 1},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"bB" = (/obj/machinery/sleep_console,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"bC" = (/obj/machinery/light,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"bD" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"bE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/item/weapon/hand_labeler,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"bF" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"bG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/item/weapon/storage/box,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"bH" = (/turf/open/floor/plating/warnplate{dir = 4},/area/awaymission/BMPship/Aft) +"bI" = (/obj/machinery/door/unpowered/shuttle,/turf/open/floor/plasteel{icon_state = "carpetside"; dir = 1},/area/awaymission/BMPship/Fore) +"bJ" = (/obj/machinery/door/airlock/silver,/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"bK" = (/obj/machinery/door/poddoor/shutters{id = "packerMed"},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"bL" = (/obj/structure/closet/crate/large,/turf/open/floor/plating/warnplate{dir = 10},/area/awaymission/BMPship/Aft) +"bM" = (/turf/open/floor/plating/warnplate{dir = 2},/area/awaymission/BMPship/Aft) +"bN" = (/obj/machinery/light/small,/turf/open/floor/plating/warnplate{dir = 2},/area/awaymission/BMPship/Aft) +"bO" = (/obj/structure/kitchenspike,/turf/open/floor/plating/warnplate{dir = 2},/area/awaymission/BMPship/Aft) +"bP" = (/obj/structure/closet/crate,/obj/item/device/analyzer,/obj/item/stack/spacecash/c10,/turf/open/floor/plating/warnplate{dir = 2},/area/awaymission/BMPship/Aft) +"bQ" = (/obj/structure/closet/crate,/obj/item/stack/spacecash/c1000,/obj/item/stack/spacecash/c200,/obj/item/stack/spacecash/c500,/turf/open/floor/plating/warnplate{dir = 2},/area/awaymission/BMPship/Aft) +"bR" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice,/obj/item/organ/appendix,/obj/item/weapon/reagent_containers/food/snacks/meat/slab,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/golem/adamantine,/turf/open/floor/plating/warnplate{dir = 2},/area/awaymission/BMPship/Aft) +"bS" = (/obj/machinery/button/door{id = "packerCargo"; pixel_y = -24},/obj/machinery/light/small,/turf/open/floor/plating/warnplate{dir = 2},/area/awaymission/BMPship/Aft) +"bT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/warnplate{dir = 2},/area/awaymission/BMPship/Aft) +"bU" = (/turf/open/floor/plating/warnplate{dir = 6},/area/awaymission/BMPship/Aft) +"bV" = (/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"bW" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 1; environ = 0; equipment = 3; locked = 0; pixel_y = 32; req_access = ""},/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"bX" = (/obj/structure/table,/obj/item/weapon/screwdriver,/obj/item/weapon/screwdriver,/obj/item/weapon/paper{info = "The next person who takes one of my screwdrivers gets stabbed with one. They are MINE. - Love, Madsen"; name = "scribbled note"},/obj/item/weapon/screwdriver,/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"bY" = (/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"bZ" = (/obj/machinery/hydroponics,/turf/open/floor/plasteel/green/side{dir = 8},/area/awaymission/BMPship/Midship) +"ca" = (/obj/structure/sink{dir = 2},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/awaymission/BMPship/Midship) +"cb" = (/obj/machinery/vending/hydroseeds{slogan_delay = 700},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/awaymission/BMPship/Midship) +"cc" = (/obj/machinery/vending/hydronutrients,/turf/open/floor/plasteel/yellow/side{dir = 1},/area/awaymission/BMPship/Midship) +"cd" = (/obj/machinery/hydroponics,/turf/open/floor/plasteel/green/side{dir = 4},/area/awaymission/BMPship/Midship) +"ce" = (/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"cf" = (/obj/structure/table,/obj/item/weapon/kitchen/knife/butcher,/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/item/weapon/reagent_containers/food/snacks/meat,/turf/open/floor/plasteel/barber,/area/awaymission/BMPship/Midship) +"cg" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/open/floor/plasteel/barber,/area/awaymission/BMPship/Midship) +"ch" = (/obj/structure/table,/obj/machinery/microwave,/turf/open/floor/plasteel/barber,/area/awaymission/BMPship/Midship) +"ci" = (/obj/machinery/processor,/obj/machinery/light{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/barber,/area/awaymission/BMPship/Midship) +"cj" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"ck" = (/obj/structure/table,/obj/item/weapon/kitchen/knife,/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"cl" = (/obj/structure/table,/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"cm" = (/obj/structure/table,/obj/effect/decal/cleanable/cobweb/cobweb2,/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"cn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/poddoor/shutters{id = "packerCargo"},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"co" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"cp" = (/obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice,/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"cq" = (/turf/open/floor/plasteel,/area/awaymission/BMPship/Midship) +"cr" = (/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/open/floor/plasteel,/area/awaymission/BMPship/Midship) +"cs" = (/turf/open/floor/plasteel/barber,/area/awaymission/BMPship/Midship) +"ct" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/barber,/area/awaymission/BMPship/Midship) +"cu" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"cv" = (/obj/structure/kitchenspike,/turf/open/floor/plasteel/showroomfloor,/area/awaymission/BMPship/Aft) +"cw" = (/turf/open/floor/plasteel/showroomfloor,/area/awaymission/BMPship/Aft) +"cx" = (/obj/machinery/door/airlock/silver,/turf/open/floor/plasteel/showroomfloor,/area/awaymission/BMPship/Aft) +"cy" = (/turf/open/floor/plasteel/white,/area/awaymission/BMPship/Aft) +"cz" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/white,/area/awaymission/BMPship/Aft) +"cA" = (/obj/effect/decal/cleanable/blood/gibs/old,/turf/open/floor/plasteel/white,/area/awaymission/BMPship/Aft) +"cB" = (/obj/machinery/gibber,/turf/open/floor/plasteel/white,/area/awaymission/BMPship/Aft) +"cC" = (/turf/open/floor/plasteel/hydrofloor,/area/awaymission/BMPship/Aft) +"cD" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"cE" = (/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"cF" = (/turf/closed/wall/mineral/titanium/overspace,/area/space) +"cG" = (/turf/open/floor/carpet,/turf/closed/wall/mineral/titanium/interior,/area/awaymission/BMPship/Fore) +"cH" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"cI" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"cJ" = (/obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice,/turf/open/floor/plasteel,/area/awaymission/BMPship/Midship) +"cK" = (/obj/machinery/door/unpowered/shuttle,/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"cL" = (/obj/structure/window/reinforced,/turf/open/floor/plasteel/barber,/area/awaymission/BMPship/Midship) +"cM" = (/obj/structure/window/reinforced,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/open/floor/plasteel/barber,/area/awaymission/BMPship/Midship) +"cN" = (/obj/machinery/door/window,/turf/open/floor/plasteel/barber,/area/awaymission/BMPship/Midship) +"cO" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/open/floor/plasteel/barber,/area/awaymission/BMPship/Midship) +"cP" = (/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"cQ" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/open/floor/plasteel/showroomfloor,/area/awaymission/BMPship/Aft) +"cR" = (/obj/structure/closet/secure_closet/freezer/meat{opened = 1},/turf/open/floor/plasteel/white,/area/awaymission/BMPship/Aft) +"cS" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/food/snacks/meat/slab,/obj/item/weapon/reagent_containers/food/snacks/meat/slab,/turf/open/floor/plasteel/white,/area/awaymission/BMPship/Aft) +"cT" = (/obj/effect/decal/cleanable/blood/splatter,/turf/open/floor/plasteel/white,/area/awaymission/BMPship/Aft) +"cU" = (/obj/item/weapon/crowbar,/turf/open/floor/plasteel/white,/area/awaymission/BMPship/Aft) +"cV" = (/turf/open/floor/plasteel/warning{dir = 8},/area/awaymission/BMPship/Aft) +"cW" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/power/apc{dir = 1; environ = 0; equipment = 3; locked = 0; pixel_y = 32; req_access = ""},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"cX" = (/turf/open/floor/plasteel/warning{dir = 4},/area/awaymission/BMPship/Aft) +"cY" = (/obj/structure/table,/obj/item/weapon/paper{info = "I'm no scientist, but judging from the design and components, it seems to be some kind of teleporter. This thing is gonna be worth a lot of cash to the right man. The boys are excited, as they have every right to be, and I've let them crack into that case of beer we got. I normally wouldn't allow such a thing, but this is a time for celebration! It's not like a couple drinks will hurt anything."; name = "Captain's log entry"},/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"cZ" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"da" = (/obj/structure/frame/computer{anchored = 1},/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"db" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"dc" = (/obj/machinery/hydroponics,/turf/open/floor/plasteel/green/side{dir = 10},/area/awaymission/BMPship/Midship) +"dd" = (/turf/open/floor/plasteel/green/side,/area/awaymission/BMPship/Midship) +"de" = (/obj/machinery/seed_extractor,/obj/item/seeds/plump/walkingmushroom,/turf/open/floor/plasteel/green/side,/area/awaymission/BMPship/Midship) +"df" = (/obj/machinery/hydroponics,/turf/open/floor/plasteel/green/side{dir = 6},/area/awaymission/BMPship/Midship) +"dg" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"dh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"di" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"dj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/showroomfloor,/area/awaymission/BMPship/Aft) +"dk" = (/turf/closed/wall/mineral/titanium/nodiagonal,/area/awaymission/BMPship/Aft) +"dl" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"dm" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"dn" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"do" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"dp" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/warning{dir = 4},/area/awaymission/BMPship/Aft) +"dq" = (/obj/item/device/multitool,/turf/open/floor/engine,/area/awaymission/BMPship/Aft) +"dr" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/engine/airless,/area/awaymission/BMPship/Aft) +"ds" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 8},/turf/open/space,/area/awaymission/BMPship/Aft) +"dt" = (/obj/structure/table,/obj/machinery/recharger,/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"du" = (/obj/structure/chair/stool,/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"dv" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"dw" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"dx" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"dy" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"dz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"dA" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"dB" = (/turf/closed/wall/r_wall,/area/awaymission/BMPship/Midship) +"dC" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/showroomfloor,/area/awaymission/BMPship/Aft) +"dD" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/warning{dir = 8},/area/awaymission/BMPship/Aft) +"dE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"dF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/warning{dir = 4},/area/awaymission/BMPship/Aft) +"dG" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/open/floor/plating,/area/awaymission/BMPship/Fore) +"dH" = (/obj/item/weapon/shard,/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"dI" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"dJ" = (/obj/machinery/door/airlock/silver,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"dK" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"dL" = (/obj/machinery/shieldwallgen,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating,/area/awaymission/BMPship/Midship) +"dM" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"dN" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 1; locked = 0; pixel_y = 28; req_access = ""},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"dO" = (/turf/open/floor/plasteel/loadingarea/dirtydirty{dir = 4},/area/awaymission/BMPship/Midship) +"dP" = (/obj/machinery/conveyor{dir = 4; id = "meatConvey1"},/turf/open/floor/plating,/area/awaymission/BMPship/Midship) +"dQ" = (/obj/machinery/conveyor{dir = 4; id = "meatConvey1"},/obj/structure/plasticflaps,/turf/open/floor/plating,/area/awaymission/BMPship/Midship) +"dR" = (/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/disposal/deliveryChute{dir = 8},/turf/open/floor/plating,/area/awaymission/BMPship/Midship) +"dS" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/closed/wall/r_wall,/area/awaymission/BMPship/Midship) +"dT" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"dU" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"dV" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"dW" = (/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"dX" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"dY" = (/obj/structure/rack,/obj/item/weapon/storage/box/lights,/turf/open/floor/plasteel/warning{dir = 8},/area/awaymission/BMPship/Aft) +"dZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/hydrofloor,/area/awaymission/BMPship/Aft) +"ea" = (/obj/machinery/power/smes/magical{desc = "A high-capacity superconducting magnetic energy storage (SMES) unit."; name = "power storage unit"},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"eb" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/terminal{dir = 8},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"ec" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/warning{dir = 4},/area/awaymission/BMPship/Aft) +"ed" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/turf/open/floor/plating,/area/awaymission/BMPship/Fore) +"ee" = (/obj/structure/table,/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"ef" = (/obj/structure/chair/office{dir = 8},/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"eg" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"eh" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating,/area/awaymission/BMPship/Midship) +"ei" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating,/area/awaymission/BMPship/Midship) +"ej" = (/turf/open/floor/plating,/area/awaymission/BMPship/Midship) +"ek" = (/obj/item/weapon/reagent_containers/glass/bucket,/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"el" = (/obj/machinery/conveyor_switch/oneway{id = "meatConvey1"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"em" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"en" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"eo" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/showroomfloor,/area/awaymission/BMPship/Aft) +"ep" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/showroomfloor,/area/awaymission/BMPship/Aft) +"eq" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/disposaloutlet{dir = 4},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"er" = (/obj/effect/decal/cleanable/blood/gibs/old,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"es" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"et" = (/obj/structure/rack,/obj/item/weapon/storage/belt/utility/full,/turf/open/floor/plasteel/warning{dir = 8},/area/awaymission/BMPship/Aft) +"eu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/warning{dir = 4},/area/awaymission/BMPship/Aft) +"ev" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"ew" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"ex" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"ey" = (/obj/effect/decal/cleanable/dirt,/obj/effect/gibspawner/xeno,/turf/open/floor/plating,/area/awaymission/BMPship/Midship) +"ez" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"eA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"eB" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"eC" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"eD" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"eE" = (/obj/effect/gibspawner/human,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"eF" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"eG" = (/obj/structure/rack,/obj/item/weapon/stock_parts/cell/high,/turf/open/floor/plasteel/warning{dir = 8},/area/awaymission/BMPship/Aft) +"eH" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/grille,/turf/open/floor/plating,/area/awaymission/BMPship/Fore) +"eI" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 8},/turf/open/floor/plating,/area/awaymission/BMPship/Midship) +"eJ" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/turf/open/floor/plating,/area/awaymission/BMPship/Midship) +"eK" = (/obj/machinery/light,/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"eL" = (/obj/effect/gibspawner/generic,/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"eM" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"eN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel/showroomfloor,/area/awaymission/BMPship/Aft) +"eO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/showroomfloor,/area/awaymission/BMPship/Aft) +"eP" = (/obj/structure/rack,/turf/open/floor/plasteel/warning{dir = 8},/area/awaymission/BMPship/Aft) +"eQ" = (/obj/machinery/power/smes/magical{desc = "A high-capacity superconducting magnetic energy storage (SMES) unit."; name = "power storage unit"},/obj/structure/cable,/obj/structure/cable,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"eR" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/warning{dir = 4},/area/awaymission/BMPship/Aft) +"eS" = (/obj/effect/decal/cleanable/cobweb,/obj/machinery/power/port_gen/pacman/super,/turf/open/floor/engine,/area/awaymission/BMPship/Aft) +"eT" = (/obj/structure/closet,/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"eU" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/closet,/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"eV" = (/obj/item/weapon/wrench,/turf/open/floor/plating,/area/awaymission/BMPship/Midship) +"eW" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"eX" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"eY" = (/obj/structure/mopbucket,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"eZ" = (/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/kitchen/knife,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"fa" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/item/weapon/stock_parts/cell/high,/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"fb" = (/obj/machinery/door/unpowered/shuttle,/turf/closed/wall/mineral/titanium/interior,/area/awaymission/BMPship/Aft) +"fc" = (/obj/machinery/door/unpowered/shuttle,/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"fd" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/unpowered/shuttle,/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"fe" = (/obj/effect/gibspawner/xeno,/turf/open/floor/plating,/area/awaymission/BMPship/Midship) +"ff" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel{icon_state = "panelscorched"},/area/awaymission/BMPship/Midship) +"fg" = (/obj/structure/kitchenspike,/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"fh" = (/turf/open/floor/plasteel/loadingarea/dirty{dir = 4},/area/awaymission/BMPship/Midship) +"fi" = (/obj/machinery/conveyor{dir = 4; id = "meatConvey2"},/obj/item/weapon/kitchen/knife,/turf/open/floor/plating,/area/awaymission/BMPship/Midship) +"fj" = (/obj/machinery/conveyor{dir = 4; id = "meatConvey2"},/obj/structure/plasticflaps,/turf/open/floor/plating,/area/awaymission/BMPship/Midship) +"fk" = (/obj/machinery/conveyor{dir = 4; id = "meatConvey2"},/turf/open/floor/plating,/area/awaymission/BMPship/Midship) +"fl" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"fm" = (/turf/closed/wall/mineral/titanium/interior,/area/awaymission/BMPship/Midship) +"fn" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"fo" = (/obj/structure/window/reinforced,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"fp" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"fq" = (/obj/item/stack/cable_coil,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"fr" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/warning{dir = 4},/area/awaymission/BMPship/Aft) +"fs" = (/obj/item/stack/sheet/mineral/uranium{amount = 50},/turf/open/floor/engine,/area/awaymission/BMPship/Aft) +"ft" = (/turf/open/floor/plating/airless{icon_state = "platingdmg1"},/area/awaymission/BMPship/Fore) +"fu" = (/obj/structure/lattice,/turf/open/space,/area/awaymission/BMPship/Fore) +"fv" = (/turf/open/floor/plating/airless{icon_state = "platingdmg3"},/area/awaymission/BMPship/Fore) +"fw" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Fore) +"fx" = (/obj/item/weapon/shard{icon_state = "small"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Fore) +"fy" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating/airless{icon_state = "panelscorched"},/area/awaymission/BMPship/Fore) +"fz" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating/airless{icon_state = "platingdmg3"},/area/awaymission/BMPship/Fore) +"fA" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/item/weapon/kitchen/knife,/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"fB" = (/obj/machinery/conveyor_switch/oneway{id = "meatConvey2"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"fC" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/showroomfloor,/area/awaymission/BMPship/Aft) +"fD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/showroomfloor,/area/awaymission/BMPship/Aft) +"fE" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/showroomfloor,/area/awaymission/BMPship/Aft) +"fF" = (/obj/item/weapon/mop,/turf/open/floor/plasteel/showroomfloor,/area/awaymission/BMPship/Aft) +"fG" = (/obj/effect/decal/cleanable/oil,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"fH" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel/warning{dir = 4},/area/awaymission/BMPship/Aft) +"fI" = (/turf/open/floor/plating/airless{icon_state = "platingdmg2"},/area/awaymission/BMPship/Fore) +"fJ" = (/obj/item/weapon/shard,/turf/open/floor/plating/airless{icon_state = "platingdmg1"},/area/awaymission/BMPship/Fore) +"fK" = (/obj/structure/chair/stool,/turf/open/floor/plating/airless{icon_state = "platingdmg3"},/area/awaymission/BMPship/Fore) +"fL" = (/obj/item/stack/cable_coil{amount = 5},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Fore) +"fM" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Fore) +"fN" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"fO" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/food/snacks/meat,/turf/open/floor/plasteel/showroomfloor,/area/awaymission/BMPship/Aft) +"fP" = (/obj/item/weapon/reagent_containers/glass/bucket,/turf/open/floor/plasteel/showroomfloor,/area/awaymission/BMPship/Aft) +"fQ" = (/obj/structure/reagent_dispensers,/turf/open/floor/plasteel/showroomfloor,/area/awaymission/BMPship/Aft) +"fR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"fS" = (/turf/open/floor/plating/asteroid/airless,/area/awaymission/BMPship) +"fT" = (/obj/structure/frame/computer{anchored = 1},/turf/open/floor/plating/airless{icon_state = "panelscorched"},/area/awaymission/BMPship/Fore) +"fU" = (/obj/structure/frame/computer{anchored = 1},/turf/open/floor/plating/airless{icon_state = "platingdmg1"},/area/awaymission/BMPship/Fore) +"fV" = (/obj/machinery/light/small,/turf/open/floor/plasteel/bar,/area/awaymission/BMPship/Midship) +"fW" = (/turf/open/floor/plasteel{icon_state = "platingdmg3"},/area/awaymission/BMPship/Midship) +"fX" = (/turf/open/floor/plasteel{icon_state = "platingdmg1"},/area/awaymission/BMPship/Midship) +"fY" = (/obj/machinery/door/airlock/silver{locked = 1},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"fZ" = (/obj/machinery/door/airlock/silver{locked = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"ga" = (/obj/machinery/door/unpowered/shuttle,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"gb" = (/turf/closed/mineral/random,/area/awaymission/BMPship) +"gc" = (/obj/item/device/multitool,/turf/open/floor/plating/airless{icon_state = "platingdmg2"},/area/awaymission/BMPship) +"gd" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/silver,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Fore) +"ge" = (/turf/closed/mineral/random,/area/awaymission/BMPship/Midship) +"gf" = (/obj/machinery/light{dir = 1},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"gg" = (/obj/structure/chair/stool,/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"gh" = (/obj/structure/table,/obj/item/weapon/paper{info = "DEAR DAIRY: So we was doing our typpical route when the captain says we've been picking up weird signals on some backwatter planet. Madsen wanted to stay on course but he ain't the captain, so we went out of the way to check it out. There was lots of rocks on the way, but we got to the planet fine. Found a big fancy camp with nobody around and this big metal donut thing with NT stamps all over it right in the middle. Case of beer too. Captain reckons we can pass it off to some buyer in the Syndicate. Ingram says it's bad luck and that someone is going to come look for it but it sounds like better money than selling bad meat to jerky companies."; name = "Old Diary"},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"gi" = (/obj/structure/table,/obj/item/weapon/pen/red,/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"gj" = (/obj/structure/closet,/obj/item/clothing/under/overalls,/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"gk" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Fore) +"gl" = (/obj/machinery/porta_turret{dir = 8; emagged = 1; installation = /obj/item/weapon/gun/energy/lasercannon},/turf/open/floor/engine,/area/awaymission/BMPship/Fore) +"gm" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/engine,/area/awaymission/BMPship/Fore) +"gn" = (/obj/structure/cable,/turf/open/floor/plating/airless{icon_state = "platingdmg3"},/area/awaymission/BMPship/Fore) +"go" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Fore) +"gp" = (/turf/open/floor/plating/asteroid/airless,/area/awaymission/BMPship/Fore) +"gq" = (/obj/structure/rack,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Fore) +"gr" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plating/asteroid/airless,/area/awaymission/BMPship/Fore) +"gs" = (/turf/open/floor/plating/asteroid/airless,/area/awaymission/BMPship/Midship) +"gt" = (/turf/open/floor/plating/airless{broken = 1; icon_state = "platingdmg1"},/area/awaymission/BMPship/Midship) +"gu" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"gv" = (/obj/item/wallframe/apc,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"gw" = (/obj/structure/ore_box,/obj/machinery/light/small{dir = 1},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"gx" = (/obj/item/stack/cable_coil{amount = 5},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"gy" = (/obj/structure/ore_box,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"gz" = (/obj/machinery/computer/arcade,/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"gA" = (/obj/effect/decal/remains/human,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"gB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"gC" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"gD" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/item/wallframe/apc,/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"gE" = (/obj/effect/decal/remains/human,/obj/item/clothing/head/helmet/space/syndicate/green/dark,/obj/effect/gibspawner/generic,/turf/open/floor/plating/asteroid/airless,/area/awaymission/BMPship) +"gF" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/item/weapon/shard{icon_state = "small"},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Fore) +"gG" = (/turf/open/floor/engine,/area/awaymission/BMPship/Fore) +"gH" = (/obj/machinery/door/unpowered/shuttle,/turf,/area/awaymission/BMPship/Fore) +"gI" = (/turf/open/floor/plating/airless,/area/awaymission/BMPship/Fore) +"gJ" = (/obj/effect/gibspawner/robot,/turf/open/floor/plasteel/airless{icon_state = "floorscorched2"},/area/awaymission/BMPship/Fore) +"gK" = (/turf/closed/mineral/random,/area/awaymission/BMPship/Fore) +"gL" = (/turf/open/floor/plating/airless{broken = 1; icon_state = "platingdmg2"},/area/awaymission/BMPship/Midship) +"gM" = (/obj/structure/mecha_wreckage/ripley,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"gN" = (/obj/structure/bed,/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"gO" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/item/weapon/storage/wallet/random,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"gP" = (/obj/structure/closet,/obj/item/clothing/under/lawyer/bluesuit,/obj/item/clothing/suit/apron,/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"gQ" = (/obj/item/clothing/suit/space/syndicate/green/dark,/turf/open/floor/plating/asteroid/airless,/area/awaymission/BMPship) +"gR" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/grille,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Fore) +"gS" = (/turf/closed/wall/mineral/titanium,/area/awaymission/BMPship) +"gT" = (/obj/effect/gibspawner/robot,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"gU" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"gV" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"gW" = (/obj/machinery/door/unpowered/shuttle,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/closed/wall/mineral/titanium/interior,/area/awaymission/BMPship/Midship) +"gX" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"gY" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"gZ" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/open/space,/area/space) +"ha" = (/turf/open/floor/plating/airless{broken = 1; icon_state = "panelscorched"},/area/awaymission/BMPship/Midship) +"hb" = (/obj/effect/decal/remains/human,/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"hc" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"hd" = (/obj/machinery/door/unpowered/shuttle,/turf/open/floor/plasteel/cafeteria{dir = 2},/area/awaymission/BMPship/Aft) +"he" = (/obj/structure/mirror{pixel_y = 28},/turf/open/floor/plasteel/cafeteria{dir = 2},/area/awaymission/BMPship/Aft) +"hf" = (/obj/structure/toilet{dir = 8},/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/cafeteria{dir = 2},/area/awaymission/BMPship/Aft) +"hg" = (/turf/open/floor/plating/airless{broken = 1; icon_state = "platingdmg3"},/area/awaymission/BMPship/Midship) +"hh" = (/obj/item/weapon/caution,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"hi" = (/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plating/airless,/area/awaymission/BMPship/Midship) +"hj" = (/obj/structure/closet/crate,/obj/item/stack/spacecash/c10,/obj/item/stack/spacecash/c200,/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"hk" = (/obj/structure/closet/crate,/obj/item/stack/spacecash/c10,/turf/open/floor/plasteel,/area/awaymission/BMPship/Aft) +"hl" = (/obj/structure/sink{dir = 2},/turf/open/floor/plasteel/cafeteria{dir = 2},/area/awaymission/BMPship/Aft) +"hm" = (/turf/open/floor/plasteel/cafeteria{dir = 2},/turf/closed/wall/mineral/titanium/interior,/area/awaymission/BMPship/Aft) +"hn" = (/obj/item/clothing/gloves/color/fyellow,/turf/open/floor/plating/asteroid/airless,/area/awaymission/BMPship) +"ho" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/open/floor/engine,/area/awaymission/BMPship/Aft) +"hp" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/engine,/area/awaymission/BMPship/Aft) +"hq" = (/obj/item/weapon/storage/box/matches,/obj/item/weapon/storage/fancy/cigarettes/dromedaryco,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"hr" = (/obj/item/weapon/poster/contraband,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"hs" = (/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/open/floor/plating,/area/awaymission/BMPship/Aft) +"ht" = (/turf/open/floor/plating,/turf/closed/wall/mineral/titanium/interior,/area/awaymission/BMPship/Aft) +"hu" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/grille,/turf/open/floor/engine,/area/awaymission/BMPship/Aft) +"hv" = (/turf/closed/mineral/diamond,/area/awaymission/BMPship) +"hw" = (/turf/closed/mineral/clown,/area/awaymission/BMPship) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacadadadadaeaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafagahacaiadaeaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajahahakalaladaeaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaaaaaaaaaaaaaaanagaoacalalaladaeaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamapaqaqaqaqaqaqaqaqaqaqacacacacacaracadadadadaeaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaamaqasatauavawaxayazaAaqaBaCaDaEaFaGaGaGaGaGaGadaeaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaHaHaHaHaHaHaHaHaHaHaHaIaaaaaaaaaaaaamaJaKatatatatatataLatataqaMalalaNalalalalalalaOaPadaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaQaRaSaTaUaVaWaVaWaVaXaYaaaaaaaaaaamaZaKatbabbatatasatbcbdbdbebfbgalbhalalbibjbkalalaPadaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaablbmbnaTbobpbpbpbpbpbpbqaaaaaaamapaqatbaaKatbaatatatatatatataqaMbralalalalalalalalalbsadaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaabtbubmaTbpbvbvbwbvbvbxaTaaaaaaapaqaZbaatbybzatatatbAbBbCbAbBaqaMbDbEbFbFbGbFbFbFbFbgbHadaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaTaTbIaTbJaTaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqbKbKbKaqaqaqaqaqaqbLbMbNbObMbMbPbQbRbSbTbUadaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaIaTbVbVbWbVaTbXbYbZcacbcccacdbYceaqcfcgchcicececececjckclcjcmaqacacacacacacacacadaccnadadaeaaaaaaaaaa +aaaaaaaaaaaaaaaaaIaTbVbVbVcobVaTcecpbZcqcqcqcrcdceceaqcscscsctcececececucucecuceaqcvcvcwcxcyczcAcBadcCcDcEadacacacaeaaaa +aaaaaaaaaaaaaacFcGbVbVbVbVcHcIaTcecebZcqcJcqcqcdcececKcLcMcNcOcececececececPceceaqcwcQcwaccRcScTcUadcVcDcCcCcWcXadadadae +aaaaaaaaaaaaaIaTbVbVcYcZdabVdbaTcecedcdddddedddfceceaqcedgdhdhdhdhdhdhdhdhdhdiceaqcwdjcwdkacacacacadcVdldmdndodpaddqdrds +aaaaaaaaaaaaaTbVbVbVdtdubVbVdvaTdwdxdydydydydydydiceaqcedzcedAdBdBdBdBdBdBdBdzceaqcwdjcwcwcwcwcwdCaddDdEalbraldFakahdrds +aaaaaaaaaaaadGdadHbVbVbVbVbVdIdJdydKdBdBdBdBdBdLdMcedNcedzdOdPdQdPdPdPdPdRdSdTdUaqcwdjdVdWdWdXcwcwaddYdZaleaebecadahdrds +aaaaaaaaaaaaedeeefbVegbVbVbVdbaTcecedBeheheheiejdzekdzcedzceeldBdBdBdBdBdBdBdzemeneoepeqererescwcwadetdZalbraleuadadadae +aaaaaaaaaaaaedeeefbVbVevewewexaTcecedBeheyejeiejezdyeAdyeBcececececeeCcececedzcececwdjeDaleEeFcwcwadeGdEalbraldFacadadae +aaaaaaaaaaaaeHbVbVbVbVcobVbVbVbJcecedBeIehejeJejdzceeKcedzceceeLcecececececeeMdhdheNeOeDeraleFcwcwadePdEaleQebeRadeSdrds +aaaaaaaaaaaaaTbVbVbVbVcobVeTeUaTdwcedBehejejeieVdzceaqcedzcedAdBdBdBdBdBdBdBdzeWeXeoepeqeYaleZcwdCaddDfaalalalcXfbahdrds +aaaaaaaaaaaaaIaTaTaTfcfdaTaTaTaTcecedBejejfeffejdzfgaqcedzfhfifjfkfkfkfkdRdSdTflfmcwdjfnfofofpcwcwadcVdZalfqalfradfsdrds +aaaaaaaaaaaaaaaIftfufvfwfxfyfzaTcecedBdBdBdBdBdLfAcecKcedzcefBdBdBdBdBdBdBdBdzcefmcwfCfDfDfDfEcwfFadcVdEcEcCfGfHadadadae +aaaaaaaaaaaaaaaafufIfJfufKfLfMaTcecececececececeejceaqcefNdydydydydydydhdhdhdKcefmfOcwcwcwcwdjfPfQadcVfRaladadadadaeaaaa +aafSfSaaaaamaaaaaaaaaHfTfUfvfMaTcefVcecececefWcefXfWaqcefVcececefVcecececefVcecefmacacfYacacfZacacadacgaacadaeaaaaaaaaaa +gbgbgbfSaaamaagcamaaaHaHaHaHgdaTaqaqaqaqaqaqaqaqgefmfmfmfmfmfmfmfmfmfmfmfmfmfmfmfmcEcEcEcEgfcDggghgigfdEgjadaaaaaaaaaaaa +gbgbgbgbfSaaaaaaaaaagkglgmaHgngogpgqftgrfvaTgbgbgbgbaqgsgsatgtgsguatgsgtgvgwgxgyfmgzcEalcEcEgAgBgBgBgBgCgDadaaaaaaaaaaaa +gbgbgbgbgEaaaaaaaaaagFgGgGgHgIfIgIgpgJgIgpgKgbgbgbgbgbaqgsgLgMatgsgtatatatatatatfmggcEcEgNcEgOcEgNcEcEcEgPadaaaaaaaaaaaa +aaaagbfSgQaaaaaaaaaagRglgGaHfvfvgpftgpfvgpaTgbgbgbgSgbgbgbgsgTgsatatatatatatgUgVgWgXgXgXgXgXgYcEcEcEadadadadaaaaaaaaaaaa +aaaaaafSaaaaaaaagZfSaHaHaHaHaHaHgKgpaTgbgbgbgbgbgbgbgbgbgbgbgtgLatatgsatathaatatfmcEcEhbhccEgNcEgNcEhdhehfadaaaaaaaaaaaa +aaaaaaaaaaaaaaaafSfSfSgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbaqgsgLatathghhhhhhhifmhjhkcEalcEcEcEcEcEadhlhmaeaaaaaaaaaaaa +aaaaaaaaaaaaaahnfSfSfSgbgbgbgbgbgbgbgbgbgbgbgSgbgbgbgbgbgbgbgbfmfmfmfmfmfmfmfmfmfmadadadadadfYadadadadadaeaaaaaaaaaaaaaa +aaaaaaaaaaaafSfSfSfSgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbfSfSaaaaaaaaaahoaghpachqalhracaeaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaafSfSfSfSfSgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbfSfSaaaaaaaaaaajahahakalhshtaeaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaafSfSfSfSfSgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbfSfSaaaaaaaaaahuagahacaihtaeaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaafSgbgbfSfSgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbfSfSaaaaaaaaaadkacacacacaeaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaagbgbgbfSfSfSgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbfSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaagbgbgbgbgbfSfSgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbfSfSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaagbgbgbgbgbfSfSfSgbgbhvgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbfSfSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaagbgbgbgbgbfSfSfSgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbfSfSfSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaagbgbgbgbgbfSfSfSgbgbgbgbgbgbhwgbgbgbgbgbgbgbgbgbgbgbfSfSfSfSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaagbgbgbgbgbfSfSfSgbgbgbhwgbgbhwgbgbgbgbgbgbgbgbgbfSfSfSfSgbgbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaagbgbgbgbfSfSfSfSgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbfSfSgbgbgbgbgbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaagbgbfSfSfSfSfSfSgbgbgbgbgbgbgbgbgbgbgbgbfSfSfSfSgbgbgbgbgbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaafSfSfSfSfSfSgbgbgbgbgbgbgbgbfSfSfSfSaaaaaagbgbgbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafSfSfSfSfSfSfSfSfSfSfSfSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +"} diff --git a/_maps/RandomRuins/SpaceRuins/deepstorage.dmm b/_maps/RandomRuins/SpaceRuins/deepstorage.dmm new file mode 100644 index 0000000..20f6c5a --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/deepstorage.dmm @@ -0,0 +1,185 @@ +"aa" = (/turf/open/space,/area/space) +"ab" = (/turf/closed/mineral/random/low_chance,/area/ruin/unpowered) +"ac" = (/turf/closed/wall/mineral/iron,/area/ruin/deepstorage) +"ad" = (/obj/structure/closet/cardboard,/obj/item/stack/sheet/mineral/silver,/obj/item/stack/sheet/mineral/gold,/obj/item/stack/sheet/mineral/silver,/obj/item/stack/sheet/mineral/silver,/obj/item/stack/sheet/mineral/gold,/obj/item/stack/sheet/mineral/gold,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"ae" = (/obj/structure/closet/cardboard,/obj/item/weapon/storage/box/monkeycubes,/obj/item/weapon/storage/box/monkeycubes,/obj/item/weapon/storage/box/monkeycubes,/obj/item/weapon/storage/toolbox/drone,/obj/item/weapon/storage/toolbox/drone,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"af" = (/obj/structure/closet/cardboard,/obj/item/stack/sheet/cardboard,/obj/item/stack/cable_coil,/obj/item/stack/sheet/mineral/wood,/obj/item/stack/sheet/mineral/wood,/obj/item/stack/packageWrap,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"ag" = (/obj/structure/closet/cardboard,/obj/item/weapon/storage/box/mousetraps,/obj/item/weapon/storage/box/mousetraps,/obj/item/weapon/storage/box/drinkingglasses,/obj/item/weapon/storage/box/zipties,/obj/item/weapon/switchblade,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"ah" = (/obj/structure/closet/cardboard,/obj/item/stack/sheet/metal{amount = 50;pixel_x = 2;pixel_y = 2},/obj/item/stack/sheet/metal{amount = 50;pixel_x = 2;pixel_y = 2},/obj/item/stack/sheet/metal{amount = 50;pixel_x = 2;pixel_y = 2},/obj/item/stack/sheet/metal{amount = 50;pixel_x = 2;pixel_y = 2},/obj/item/stack/rods{amount = 50},/obj/item/stack/rods{amount = 50},/obj/item/stack/rods{amount = 50},/obj/item/stack/rods{amount = 50},/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"ai" = (/obj/structure/closet/cardboard,/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/plasteel{amount = 10},/obj/item/stack/sheet/plasteel{amount = 10},/obj/item/stack/sheet/plasteel{amount = 10},/obj/item/stack/sheet/plasteel{amount = 10},/obj/item/clothing/shoes/combat,/obj/item/clothing/shoes/combat,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"aj" = (/obj/structure/closet/cardboard,/obj/machinery/light{icon_state = "tube1";dir = 8},/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/item/weapon/shovel,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"ak" = (/obj/structure/closet/cardboard,/obj/item/device/flashlight/lantern,/obj/item/device/flashlight/lantern,/obj/item/device/flashlight/lantern,/obj/item/device/tape/random,/obj/item/device/tape/random,/obj/item/device/tape/random,/obj/item/weapon/storage/box/rxglasses,/obj/item/weapon/extinguisher,/obj/item/weapon/extinguisher,/obj/item/clothing/glasses/night,/obj/item/clothing/glasses/night,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"al" = (/obj/structure/closet/cardboard,/obj/item/weapon/storage/box/syringes,/obj/item/weapon/storage/box/syringes,/obj/item/weapon/storage/box/beakers,/obj/item/weapon/storage/box/beakers,/obj/item/weapon/storage/box/matches,/obj/item/weapon/storage/box/bodybags,/obj/item/clothing/glasses/meson/engine,/obj/item/clothing/glasses/meson/engine,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"am" = (/obj/structure/closet/cardboard,/obj/item/weapon/kitchen/knife,/obj/item/weapon/kitchen/knife,/obj/item/weapon/cultivator,/obj/item/weapon/hatchet,/obj/item/weapon/kitchen/rollingpin,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"an" = (/obj/structure/closet/cardboard,/obj/item/weapon/defibrillator,/obj/item/weapon/storage/box/medipens,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"ao" = (/obj/structure/closet/cardboard,/obj/machinery/light{dir = 4;icon_state = "tube1"},/obj/item/ammo_box/c9mm,/obj/item/ammo_box/c9mm,/obj/item/ammo_box/c9mm,/obj/item/ammo_box/c9mm,/obj/item/ammo_box/c9mm,/obj/item/ammo_box/c9mm,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"ap" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/random,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"aq" = (/obj/machinery/iv_drip,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"ar" = (/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"as" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"at" = (/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"au" = (/obj/machinery/door/airlock/highsecurity{name = "Bunker"},/turf/open/floor/plasteel,/area/ruin/deepstorage) +"av" = (/obj/structure/toilet{dir = 4},/turf/open/floor/plasteel/freezer,/area/ruin/deepstorage) +"aw" = (/obj/structure/mirror{pixel_x = 30},/obj/structure/sink{dir = 4;icon_state = "sink";pixel_x = 11;pixel_y = 0},/turf/open/floor/plasteel/freezer,/area/ruin/deepstorage) +"ax" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/drone,/obj/item/device/flashlight,/obj/item/device/flashlight,/turf/open/floor/plasteel,/area/ruin/deepstorage) +"ay" = (/obj/structure/table,/obj/item/weapon/gun/projectile/automatic/wt550{pixel_x = -3;pixel_y = 6},/obj/item/weapon/gun/projectile/automatic/wt550{pixel_x = 2;pixel_y = 0},/obj/structure/reagent_dispensers/peppertank{pixel_y = 30},/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"az" = (/obj/structure/table,/obj/item/weapon/storage/backpack/dufflebag/sec{contents = newlist(/obj/item/weapon/scalpel,/obj/item/weapon/hemostat,/obj/item/weapon/retractor,/obj/item/weapon/cautery,/obj/item/weapon/circular_saw,/obj/item/weapon/surgical_drapes,/obj/item/clothing/mask/surgical);desc = "A large dufflebag for holding extra supplies - this one has a material inlay with space for various sharp-looking tools.";name = "dufflebag";pixel_y = 5},/turf/open/floor/plasteel,/area/ruin/deepstorage) +"aA" = (/obj/structure/table,/obj/item/device/radio{pixel_x = -4},/obj/item/device/radio,/obj/item/device/radio{pixel_x = 4},/turf/open/floor/plasteel,/area/ruin/deepstorage) +"aB" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50;pixel_x = 2;pixel_y = 2},/obj/item/stack/rods{amount = 50},/obj/item/stack/cable_coil,/obj/item/stack/cable_coil,/turf/open/floor/plasteel,/area/ruin/deepstorage) +"aC" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/brute{pixel_x = 4;pixel_y = 4},/obj/item/weapon/storage/firstaid/brute,/turf/open/floor/plasteel,/area/ruin/deepstorage) +"aD" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 4;pixel_y = 4},/obj/item/weapon/storage/firstaid/regular,/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel,/area/ruin/deepstorage) +"aE" = (/obj/structure/closet/crate/radiation,/turf/open/floor/plasteel,/area/ruin/deepstorage) +"aF" = (/obj/structure/closet/cardboard,/obj/item/weapon/reagent_containers/food/snacks/beans,/obj/item/weapon/reagent_containers/food/snacks/beans,/obj/item/weapon/reagent_containers/food/snacks/beans,/obj/item/weapon/reagent_containers/food/snacks/beans,/obj/item/weapon/reagent_containers/food/snacks/beans,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"aG" = (/obj/structure/closet/cardboard,/obj/item/weapon/reagent_containers/food/snacks/beans,/obj/item/weapon/reagent_containers/food/snacks/beans,/obj/item/weapon/reagent_containers/food/snacks/beans,/obj/machinery/light{dir = 4;icon_state = "tube1"},/obj/item/weapon/reagent_containers/food/snacks/beans,/obj/item/weapon/reagent_containers/food/snacks/beans,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"aH" = (/obj/structure/closet/cardboard,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/turf/open/floor/plasteel,/area/ruin/deepstorage) +"aI" = (/obj/machinery/vending/clothing,/turf/open/floor/wood,/area/ruin/deepstorage) +"aJ" = (/turf/open/floor/wood{icon_state = "wood-broken3"},/area/ruin/deepstorage) +"aK" = (/obj/structure/bed,/turf/open/floor/wood,/area/ruin/deepstorage) +"aL" = (/turf/open/floor/plasteel/freezer,/area/ruin/deepstorage) +"aM" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/freezer,/area/ruin/deepstorage) +"aN" = (/obj/structure/table,/obj/item/clothing/gloves/combat{pixel_x = -3;pixel_y = 4},/obj/item/clothing/gloves/combat{pixel_x = 3;pixel_y = -2},/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"aO" = (/turf/open/floor/plasteel,/area/ruin/deepstorage) +"aP" = (/obj/structure/table,/obj/item/device/mass_spectrometer/adv,/obj/item/device/mass_spectrometer/adv,/obj/item/device/healthanalyzer,/obj/item/device/healthanalyzer,/obj/item/stack/medical/gauze,/obj/item/stack/medical/gauze,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"aQ" = (/obj/structure/closet/radiation,/obj/machinery/light{icon_state = "tube1";dir = 8},/turf/open/floor/plasteel,/area/ruin/deepstorage) +"aR" = (/obj/structure/closet/cardboard,/obj/item/weapon/reagent_containers/food/snacks/beans,/obj/item/weapon/reagent_containers/food/snacks/beans,/obj/item/weapon/reagent_containers/food/snacks/beans,/obj/item/weapon/reagent_containers/food/snacks/beans,/obj/item/weapon/reagent_containers/food/snacks/beans,/turf/open/floor/plasteel,/area/ruin/deepstorage) +"aS" = (/obj/structure/closet/cardboard,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"aT" = (/obj/structure/closet/wardrobe/pink,/turf/open/floor/wood{icon_state = "wood-broken"},/area/ruin/deepstorage) +"aU" = (/turf/open/floor/wood,/area/ruin/deepstorage) +"aV" = (/obj/structure/bed,/turf/open/floor/wood{icon_state = "wood-broken7"},/area/ruin/deepstorage) +"aW" = (/obj/machinery/shower{dir = 4},/turf/open/floor/plasteel/freezer,/area/ruin/deepstorage) +"aX" = (/obj/machinery/shower{dir = 8},/turf/open/floor/plasteel/freezer,/area/ruin/deepstorage) +"aY" = (/obj/machinery/light/small{dir = 8},/obj/structure/table,/obj/item/weapon/storage/firstaid/toxin{pixel_x = 4;pixel_y = 4},/obj/item/weapon/storage/firstaid/toxin,/obj/item/weapon/storage/pill_bottle/charcoal,/turf/open/floor/plasteel,/area/ruin/deepstorage) +"aZ" = (/obj/structure/table,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare{pixel_y = 6},/obj/item/device/flashlight/flare,/obj/item/weapon/crowbar/red,/turf/open/floor/plasteel,/area/ruin/deepstorage) +"ba" = (/obj/machinery/suit_storage_unit/standard_unit,/turf/open/floor/plasteel,/area/ruin/deepstorage) +"bb" = (/obj/structure/closet/wardrobe/pjs,/obj/machinery/light/small{dir = 8},/turf/open/floor/wood,/area/ruin/deepstorage) +"bc" = (/turf/open/floor/wood{icon_state = "wood-broken4"},/area/ruin/deepstorage) +"bd" = (/obj/structure/bed,/turf/open/floor/wood{icon_state = "wood-broken3"},/area/ruin/deepstorage) +"be" = (/obj/machinery/shower{dir = 4},/obj/item/weapon/soap,/turf/open/floor/plasteel/freezer,/area/ruin/deepstorage) +"bf" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ruin/deepstorage) +"bg" = (/obj/structure/closet/cardboard,/obj/item/weapon/storage/box/donkpockets,/obj/item/weapon/storage/box/donkpockets,/obj/item/weapon/storage/box/donkpockets,/obj/item/weapon/storage/box/donkpockets,/obj/item/weapon/storage/box/donkpockets,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"bh" = (/obj/structure/closet/cardboard,/obj/item/weapon/storage/box/donkpockets,/obj/item/weapon/storage/box/donkpockets,/obj/item/weapon/storage/box/donkpockets,/obj/item/weapon/storage/box/donkpockets,/obj/item/weapon/storage/box/donkpockets,/turf/open/floor/plasteel,/area/ruin/deepstorage) +"bi" = (/obj/machinery/door/airlock/highsecurity{name = "Bunker"},/turf/open/floor/wood,/area/ruin/deepstorage) +"bj" = (/obj/machinery/door/airlock/highsecurity{name = "Bunker"},/turf/open/floor/plasteel/freezer,/area/ruin/deepstorage) +"bk" = (/obj/structure/fireaxecabinet{pixel_y = 30},/turf/open/floor/plasteel,/area/ruin/deepstorage) +"bl" = (/obj/machinery/sleeper{icon_state = "sleeper-open";dir = 4},/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"bm" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"bn" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"bo" = (/obj/machinery/sleeper{icon_state = "sleeper-open";dir = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"bp" = (/obj/machinery/door/airlock/highsecurity{name = "Bunker"},/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"bq" = (/obj/machinery/processor{name = "processor"},/turf/open/floor/plasteel,/area/ruin/deepstorage) +"br" = (/obj/structure/table,/obj/item/weapon/storage/box/matches,/turf/open/floor/plasteel,/area/ruin/deepstorage) +"bs" = (/obj/structure/table,/obj/machinery/reagentgrinder,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"bt" = (/obj/structure/table,/obj/machinery/recharger,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"bu" = (/obj/machinery/light{dir = 1},/obj/machinery/hydroponics/constructable,/turf/open/floor/light,/area/ruin/deepstorage) +"bv" = (/obj/machinery/hydroponics/constructable,/turf/open/floor/light,/area/ruin/deepstorage) +"bw" = (/obj/machinery/blackbox_recorder,/turf/open/floor/plasteel,/area/ruin/deepstorage) +"bx" = (/obj/structure/cable{icon_state = "0-4";d2 = 4},/obj/machinery/power/port_gen/pacman,/turf/open/floor/plasteel,/area/ruin/deepstorage) +"by" = (/obj/machinery/power/smes/magical{desc = "A high-capacity superconducting magnetic energy storage (SMES) unit.";name = "power storage unit"},/obj/structure/cable,/obj/structure/cable{icon_state = "0-2";pixel_y = 1;d2 = 2},/obj/structure/cable{d1 = 2;d2 = 8;icon_state = "2-8"},/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"bz" = (/obj/machinery/telecomms/relay/preset/telecomms,/turf/open/floor/plasteel,/area/ruin/deepstorage) +"bA" = (/obj/machinery/light/small{dir = 1},/obj/structure/tank_dispenser/oxygen,/turf/open/floor/plasteel,/area/ruin/deepstorage) +"bB" = (/obj/machinery/biogenerator,/turf/open/floor/plasteel,/area/ruin/deepstorage) +"bC" = (/obj/machinery/light,/obj/machinery/hydroponics/constructable,/turf/open/floor/light,/area/ruin/deepstorage) +"bD" = (/obj/machinery/autolathe,/turf/open/floor/plasteel,/area/ruin/deepstorage) +"bE" = (/obj/structure/cable{d1 = 1;d2 = 2;icon_state = "1-2"},/obj/machinery/power/terminal{icon_state = "term";dir = 1},/turf/open/floor/plasteel,/area/ruin/deepstorage) +"bF" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"bG" = (/obj/structure/table,/obj/machinery/microwave,/turf/open/floor/plasteel/bar,/area/ruin/deepstorage) +"bH" = (/turf/open/floor/plasteel/bar,/area/ruin/deepstorage) +"bI" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/open/floor/plasteel/bar,/area/ruin/deepstorage) +"bJ" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/snacks/beans,/turf/open/floor/plasteel/bar,/area/ruin/deepstorage) +"bK" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/bar,/area/ruin/deepstorage) +"bL" = (/obj/machinery/seed_extractor,/turf/open/floor/plasteel,/area/ruin/deepstorage) +"bM" = (/obj/machinery/power/apc{dir = 8;name = "Bunker APC";pixel_x = -24;pixel_y = 0},/obj/structure/cable{icon_state = "0-4";d2 = 4},/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"bN" = (/obj/structure/cable{d1 = 4;d2 = 8;icon_state = "4-8";pixel_y = 0;tag = ""},/turf/open/floor/plasteel,/area/ruin/deepstorage) +"bO" = (/obj/structure/cable{d1 = 1;d2 = 8;icon_state = "1-8";tag = ""},/turf/open/floor/plasteel,/area/ruin/deepstorage) +"bP" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"bQ" = (/obj/structure/table,/obj/item/weapon/kitchen/knife,/turf/open/floor/plasteel/bar,/area/ruin/deepstorage) +"bR" = (/obj/structure/table,/turf/open/floor/plasteel/bar,/area/ruin/deepstorage) +"bS" = (/obj/structure/table,/obj/item/weapon/kitchen/fork,/turf/open/floor/plasteel/bar,/area/ruin/deepstorage) +"bT" = (/obj/machinery/vending/hydronutrients,/turf/open/floor/plasteel,/area/ruin/deepstorage) +"bU" = (/obj/machinery/space_heater,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"bV" = (/obj/structure/chair/office/dark{dir = 4},/turf/open/floor/plasteel,/area/ruin/deepstorage) +"bW" = (/obj/structure/table/reinforced,/turf/open/floor/plasteel,/area/ruin/deepstorage) +"bX" = (/obj/machinery/smartfridge,/turf/open/floor/plasteel/bar,/area/ruin/deepstorage) +"bY" = (/obj/machinery/light/small,/turf/open/floor/plasteel/bar,/area/ruin/deepstorage) +"bZ" = (/obj/machinery/vending/hydroseeds{slogan_delay = 700},/turf/open/floor/plasteel,/area/ruin/deepstorage) +"ca" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"cb" = (/obj/structure/chair/office/dark,/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"cc" = (/obj/structure/frame/computer,/turf/open/floor/plasteel,/area/ruin/deepstorage) +"cd" = (/obj/structure/table/reinforced,/obj/machinery/computer/security/telescreen{dir = 1;name = "Bunker Entrance";network = list("Bunker1");pixel_x = 0;pixel_y = 2},/turf/open/floor/plasteel,/area/ruin/deepstorage) +"ce" = (/obj/structure/table/reinforced,/obj/machinery/button/door{id = "bunker1";name = "Inner Doors";pixel_y = 6},/obj/machinery/button/door{id = "bunker2";name = "Outer Doors";pixel_y = -4},/turf/open/floor/plasteel/floorgrime,/area/ruin/deepstorage) +"cf" = (/obj/machinery/door/poddoor{id = "bunker1";name = "Bunker Door";tag = "inner"},/turf/open/floor/plating,/area/ruin/deepstorage) +"cg" = (/turf/open/floor/plating,/area/ruin/deepstorage) +"ch" = (/obj/machinery/camera{network = list("Bunker1")},/turf/open/floor/plating,/area/ruin/deepstorage) +"ci" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plating,/area/ruin/deepstorage) +"cj" = (/obj/machinery/door/poddoor{id = "bunker2";name = "Bunker Door";tag = "outer"},/turf/open/floor/plating,/area/ruin/deepstorage) +"ck" = (/turf/open/floor/plating/asteroid/airless,/area/ruin/deepstorage) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababab +aaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababaaaaababababab +aaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababaa +aaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaababababababababababababababababaaaa +aaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaababababababababababababababababababaaaa +aaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa +aaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa +aaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa +aaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa +aaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa +aaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +aaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +aaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +aaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaa +aaabababababababababababababababababababababababababababababababababababababababacacacacacacacacababababababababababababababababababababababababababababababababababaaaaaa +aaabababababababababababababababababababababababababababababababababababababababacadaeafagahaiacabababababababababababababababababababababababababababababababababaaaaaaaa +aaabababababababababababababababababababababababababababababababababababababababacajakalamanaoacababababababababababababababababababababababababababababababababaaaaaaaaaa +ababababababababababababababababababababababababababababababababababababababababacapaqararasatacababababababababababababababababababababababababababababababababaaaaaaaaaa +ababababababababababababababababababababababababababababababacacacacacacacacacacacacacauacacacacacabababababababababababababababababababababababababababababababaaaaaaaaaa +aaabababababababababababababababababababababababababacacacacacavawacaxayazaAaBaCaDacaEaraFaGaHaHacabababababababababababababababababababababababababababababababaaaaaaaaaa +aaabababababababababababababababababababababababababacaIaJaKacaLaMacaNaraOararaOaPacaQaraRaRaSaHacababababababababababababababababababababababababababababababababaaaaaaaa +aaaaababababababababababababababababababababababababacaTaUaVacaWaXacaYaraOaOaOaraZacbaaOaRaRaHaHacababababababababababababababababababababababababababababababababaaaaaaaa +aaaaaaabababababababababababababababababababababababacbbbcbdacbeaXacacbfbfaubfbfacacbaaOarbgbhbgacababababababababababababababababababababababababababababababababaaaaaaaa +aaaaaaaaabababababababababababababababababababacacacacacbiacacacbjacbkaraOaOaOaOauaOaOararbgbhbhacabababababababababababababababababababababababababababababababababaaaaaa +aaaaaaaaabababababababababababababababababababacblaracarararbmaOaOaOarararaOaObnacacacacacacacacacabababababababababababababababababababababababababababababababababaaaaaa +aaaaaaaaabababababababababababababababababababacboarbpaOaraOaOaOaOaObqbrbsbtaOaOacbubvbvbuacababababababababababababababababababababababababababababababababababababaaaaaa +aaaaaaaaabababababababababababababababababababacacacacacacauacacaraOacacacacaOaOauaOaOaOaOacabababababababababababababababababababababababababababababababababababababaaaa +aaaaaaaaaaababababababababababababababababababacbwbxbybzaOarbAacarararaOaOaraObBacbCbvbvbCacabababababababababababababababababababababababababababababababababababababaaaa +aaaaaaaaaaaaabababababababababababababababababacbDarbEaOararbFacbGbHbIbJbKararbLacacacacacacabababababababababababababababababababababababababababababababababababababaaaa +aaaaaaaaaaaaabababababababababababababababababacbMbNbOaOaOaObPacbQbHbRbSbKararbTacabababababababababababababababababababababababababababababababababababababababababababaa +aaaaaaaaaaaaaaababababababababababababababababacbUaraOararbVbWacbXbYbHbHbHaraObZacabababababababababababababababababababababababababababababababababababababababababababaa +aaaaaaaaaaaaaaababababababababababababababababaccaaOaraOcbaOccacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababaa +aaaaaaaaaaaaabababababababababababababababababacararaOcdcccebWacababababababababababababababababababababababababababababababababababababababababababababababababababababaa +aaaaaaaaaaaaabababababababababababababababababaccfcfacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababaa +aaaaaaaaaaaaabababababababababababababababababaccgcgcgchciacababababababababababababababababababababababababababababababababababababababababababababababababababababababaa +aaaaaaaaaaaaaaababababababababababababababababaccgcgcgcgcgacababababababababababababababababababababababababababababababababababababababababababababababababababababababaa +aaaaaaaaaaaaaaaaabababababababababababababababacacacaccjcjacababababababababababababababababababababababababababababababababababababababababababababababababababababababaa +aaaaaaaaaaaaaaaaababababababababababababababababckckckckckckabababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaaaaaaaaaaaaaabababababababababababababababckckckckckckckabababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaaaaaaaaaaaaaabababababababababababababababckckckckckckabababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaa +aaaaaaaaaaaaaaaaabababababababababababababababckckckckckckabababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaa +aaaaaaaaaaaaaaaaababababababababababababababckckckckckababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaa +aaaaaaaaaaaaaaaaababababababababababababababckckckckckababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaa +aaaaaaaaaaaaaaaaaaabababababababababababababckckckckckabababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaababababababababababababababckckckckckabababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaababababababababababababababckckckckckckababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaabababababababababababababckckckckckababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababckckckckckababababababababaaaaaaababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababckckckckckababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +"} diff --git a/_maps/RandomRuins/SpaceRuins/derelict1.dmm b/_maps/RandomRuins/SpaceRuins/derelict1.dmm new file mode 100644 index 0000000..22d3823 --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/derelict1.dmm @@ -0,0 +1,61 @@ +"a" = (/turf/open/space,/area/space) +"b" = (/obj/structure/lattice,/turf/open/space,/area/space) +"c" = (/turf/closed/wall,/area/ruin/unpowered) +"d" = (/obj/structure/alien/weeds,/obj/structure/alien/resin/membrane,/turf/open/floor/plating/airless,/area/ruin/unpowered) +"e" = (/obj/structure/girder,/obj/structure/alien/weeds,/turf/open/floor/plating/airless,/area/ruin/unpowered) +"f" = (/obj/structure/alien/weeds,/turf/open/floor/plating/airless,/area/ruin/unpowered) +"g" = (/obj/structure/alien/weeds,/obj/structure/table_frame,/turf/open/floor/plating/airless,/area/ruin/unpowered) +"h" = (/obj/structure/alien/weeds/node,/turf/open/floor/plating/airless,/area/ruin/unpowered) +"i" = (/obj/structure/alien/weeds,/obj/structure/bed/nest,/turf/open/floor/plating/airless,/area/ruin/unpowered) +"j" = (/obj/structure/alien/weeds,/obj/structure/bed/nest,/obj/effect/decal/remains/human,/turf/open/floor/plating/airless,/area/ruin/unpowered) +"k" = (/obj/structure/alien/resin/wall,/turf/open/floor/plating/airless,/area/ruin/unpowered) +"l" = (/obj/structure/alien/resin/membrane,/turf/open/floor/plating/airless,/area/ruin/unpowered) +"m" = (/obj/structure/alien/weeds,/obj/structure/table,/turf/open/floor/plating/airless,/area/ruin/unpowered) +"n" = (/obj/structure/alien/weeds,/obj/effect/decal/remains/robot,/turf/open/floor/plating/airless,/area/ruin/unpowered) +"o" = (/obj/structure/alien/weeds/node,/obj/structure/table,/turf/open/floor/plating/airless,/area/ruin/unpowered) +"p" = (/obj/structure/girder,/turf/open/floor/plating/airless,/area/ruin/unpowered) +"q" = (/turf/open/floor/plating/airless,/area/ruin/unpowered) +"r" = (/obj/structure/alien/weeds,/obj/structure/bed/nest,/obj/effect/decal/remains/xeno,/turf/open/floor/plating/airless,/area/ruin/unpowered) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaabbbbaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabbbaabbbbbbbaaaaaaaaaaaaaaa +aaaaaaaaaaabbbbbcccccdcccaaaaaaaaaaaaaaa +aaaaaaaaaabbbbbefcghcfijcbbbbbaaaaaaaaaa +aaaaaaaaabbbbkkffcffcfffccbbbbbaaaaaaaaa +aaaaaaaaabbbkffhfcffcfhffcclbbbaaaaaaaaa +aaaaaaaaaabkffiffcffcfffffmlbbbaaaaaaaaa +aaaaaaaaaabcfffffffffffffnopbbaaaaaaaaaa +aaaaaaaaaaaaecceccffcccecccpbaaaaaaaaaaa +aaaaaaaaaaaaacmfjffffffifcaaaaaaaaaaaaaa +aaaaaaaaaaabccmhfjffffhficaaaaaaaaaaaaaa +aaaaaaaaaabbdffffffffiffkqbaaaaaaaaaaaaa +aaaaaaaaaabbpcccccffccckqbbaaaaaaaaaaaaa +aaaaaaaaaabbbbbchfffficqpbaaaaaaaaaaaaaa +aaaaaaaaaabbbaacfffffgcbbbaaaaaaaaaaaaaa +aaaaaaaaaabbaaacelfrfdhbbaaaaaaaaaaaaaaa +aaaaaaaaaabaaaaabblddbbbbaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabqbbbbbaaaaaaaaaaaaaaaa +aaaaaaaaabaaaaaaaabbbaaaaaaaaaaaaaaaaaaa +aaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaabaacbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aabbbcqqbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +abbqqqqqbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +bpcqqqqqbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +bpqqqqcbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +bpqqqqqbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +accccpbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaabbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +"} diff --git a/_maps/RandomRuins/SpaceRuins/derelict2.dmm b/_maps/RandomRuins/SpaceRuins/derelict2.dmm new file mode 100644 index 0000000..dd90813 --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/derelict2.dmm @@ -0,0 +1,61 @@ +"a" = (/turf/open/space,/area/space) +"b" = (/obj/structure/window/reinforced{tag = "icon-rwindow (EAST)";icon_state = "rwindow";dir = 4},/turf/open/space,/area/space) +"c" = (/obj/machinery/door/airlock/external,/turf/open/floor/plating,/area/ruin/powered/dinner_for_two) +"d" = (/obj/structure/window/reinforced{tag = "icon-rwindow (WEST)";icon_state = "rwindow";dir = 8},/turf/open/space,/area/space) +"e" = (/obj/structure/window/reinforced{tag = "icon-rwindow (EAST)";icon_state = "rwindow";dir = 4},/obj/structure/window/reinforced{tag = "icon-rwindow (WEST)";icon_state = "rwindow";dir = 8},/turf/open/floor/plating,/area/ruin/powered/dinner_for_two) +"f" = (/turf/closed/wall,/area/ruin/powered/dinner_for_two) +"g" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ruin/powered/dinner_for_two) +"h" = (/obj/machinery/light/small{tag = "icon-bulb1 (NORTH)";icon_state = "bulb1";dir = 1},/turf/open/floor/plasteel,/area/ruin/powered/dinner_for_two) +"i" = (/turf/open/floor/plasteel,/area/ruin/powered/dinner_for_two) +"j" = (/obj/machinery/light/small{tag = "icon-bulb1 (EAST)";icon_state = "bulb1";dir = 4},/turf/open/floor/plasteel,/area/ruin/powered/dinner_for_two) +"k" = (/obj/structure/window/reinforced,/turf/open/space,/area/space) +"l" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{tag = "icon-rwindow (NORTH)";icon_state = "rwindow";dir = 1},/turf/open/floor/plating,/area/ruin/powered/dinner_for_two) +"m" = (/obj/structure/chair{tag = "icon-chair (EAST)";icon_state = "chair";dir = 4},/obj/effect/decal/remains/human,/turf/open/floor/plasteel,/area/ruin/powered/dinner_for_two) +"n" = (/obj/structure/table,/obj/item/candle{pixel_y = 5},/obj/item/trash/plate{pixel_x = 10},/obj/item/trash/plate{pixel_x = -10},/turf/open/floor/plasteel,/area/ruin/powered/dinner_for_two) +"o" = (/obj/structure/chair{tag = "icon-chair (WEST)";icon_state = "chair";dir = 8},/obj/effect/decal/remains/human,/turf/open/floor/plasteel,/area/ruin/powered/dinner_for_two) +"p" = (/obj/structure/window/reinforced{tag = "icon-rwindow (NORTH)";icon_state = "rwindow";dir = 1},/turf/open/space,/area/space) +"q" = (/obj/machinery/light/small{tag = "icon-bulb1 (WEST)";icon_state = "bulb1";dir = 8},/turf/open/floor/plasteel,/area/ruin/powered/dinner_for_two) +"r" = (/obj/machinery/light/small,/turf/open/floor/plasteel,/area/ruin/powered/dinner_for_two) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaabcdaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaabedaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaabedaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaabedaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaafgcgfaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaafhiiiifaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaafiiiiiijfaaaaaaaaaaaaaaa +aaaaaaaaaaaakkkkgiiiiiiigkkkkaaaaaaaaaaa +aaaaaaaaaaaaclllciimnoiiclllcaaaaaaaaaaa +aaaaaaaaaaaappppgiiiiiiigppppaaaaaaaaaaa +aaaaaaaaaaaaaaaafqiiiiiifaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaafiiiirfaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaafgcgfaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaabedaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaabedaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaabedaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaabcdaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +"} diff --git a/_maps/RandomRuins/SpaceRuins/derelict3.dmm b/_maps/RandomRuins/SpaceRuins/derelict3.dmm new file mode 100644 index 0000000..5e85e5a --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/derelict3.dmm @@ -0,0 +1,48 @@ +"a" = (/turf/open/space,/area/space) +"b" = (/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"c" = (/turf/closed/wall,/area/ruin/unpowered/no_grav) +"d" = (/obj/structure/lattice,/turf/open/space,/area/space) +"e" = (/obj/structure/lattice,/obj/structure/lattice,/turf/open/space,/area/space) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaabbbbbbbaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaabbbcbbbaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaadbbbcccbbbdaaaaaaaaa +aaaaaaaaaaaaaaaaaaaadbbcbcbcbbdaaaaaaaaa +aaaaaaaaaaaaaaaaaaaadbbbbcbcbbddaaaaaaaa +aaaaaaaaaaaaaaaaaaadddbbbbbbbbdddaaaaaaa +aaaaaaaaaaaaaaaaaaadddddbbbddddbddaaaaaa +aaaaaaaaaaaaaaaaaadbddddddddddddddaaaaaa +aaaaaaaaaaaaaaaaadddddddddddddddddaaaaaa +aaaaaaaaaaaaaaaaddbbbbbddbdddbbbbdaaaaaa +aaaaaaaaaaaaaaaadbbccbbbdddbbbbbbdaaaaaa +aaaaaaaaaaaaaaaabbbcbbbbdddbbbbcbbaaaaaa +aaaaaaaaaaaaaaabbbbcbbbbddbbbbbcbbaaaaaa +aaaaaaaaaaaaaaabcccbbbddddbbbbcbbbaaaaaa +aaaaaaaaaaaaaadbbbbcbbddddbbbccccbaaaaaa +aaaaaaaaaaaaaadbbbbbbddbddbbbbcbbaaaaaaa +aaaaaaaaaaaaadddbbbbbdddddbbbbcbbaaaaaaa +aaaaaaaaaaaaaddddddddddaaddbbbbbaaaaaaaa +aaaaaaaaaaaaadddaaaaaaaaaaddabbaaaaaaaaa +aaaaaaaaaaaaddaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaabbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aacbbdddaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aacbbbdddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aacbbbddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aacbbbbbddeaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aacbbbbbbbdaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaacbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaacccccaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +"} diff --git a/_maps/RandomRuins/SpaceRuins/derelict4.dmm b/_maps/RandomRuins/SpaceRuins/derelict4.dmm new file mode 100644 index 0000000..5e7f802 --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/derelict4.dmm @@ -0,0 +1,1782 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/open/space, +/area/space) +"b" = ( +/turf/closed/mineral, +/area/ruin/unpowered) +"c" = ( +/turf/open/floor/plating/asteroid/airless, +/area/ruin/unpowered) +"d" = ( +/turf/closed/mineral/random/high_chance, +/area/ruin/unpowered) +"e" = ( +/turf/closed/wall/mineral/titanium, +/area/ruin/unpowered) +"f" = ( +/obj/machinery/door/airlock/shuttle, +/turf/open/floor/plating/airless, +/area/ruin/unpowered) +"g" = ( +/turf/open/floor/plating/airless, +/area/ruin/unpowered) +"h" = ( +/turf/open/floor/plasteel/airless/shuttle, +/area/ruin/unpowered) +"i" = ( +/obj/structure/chair, +/obj/structure/window/reinforced{ + tag = "icon-rwindow (WEST)"; + icon_state = "rwindow"; + dir = 8 + }, +/turf/open/floor/plasteel/airless/shuttle, +/area/ruin/unpowered) +"j" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/airless/shuttle, +/area/ruin/unpowered) +"k" = ( +/obj/effect/spawner/lootdrop/crate_spawner, +/turf/open/floor/plasteel/airless/shuttle, +/area/ruin/unpowered) +"l" = ( +/obj/structure/shuttle/engine/propulsion{ + tag = "icon-propulsion (WEST)"; + icon_state = "propulsion"; + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/ruin/unpowered) +"m" = ( +/obj/item/weapon/shard, +/turf/open/floor/plating/airless, +/area/ruin/unpowered) +"n" = ( +/obj/structure/chair{ + tag = "icon-chair (WEST)"; + icon_state = "chair"; + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/ruin/unpowered) +"o" = ( +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/ruin/unpowered) +"p" = ( +/obj/structure/table, +/turf/open/floor/plasteel/airless/shuttle, +/area/ruin/unpowered) +"q" = ( +/obj/item/weapon/shard, +/obj/structure/chair{ + tag = "icon-chair (WEST)"; + icon_state = "chair"; + dir = 8 + }, +/turf/open/floor/plasteel/airless/shuttle, +/area/ruin/unpowered) +"r" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/structure/window/reinforced{ + tag = "icon-rwindow (WEST)"; + icon_state = "rwindow"; + dir = 8 + }, +/turf/open/floor/plasteel/airless/shuttle, +/area/ruin/unpowered) +"s" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/ruin/unpowered) +"t" = ( +/obj/structure/girder, +/turf/open/floor/plating/airless, +/area/ruin/unpowered) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(3,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(4,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(5,1,1) = {" +a +a +a +a +a +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 +a +a +a +a +a +a +a +a +a +"} +(6,1,1) = {" +a +a +a +a +a +a +a +c +c +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +a +a +a +a +a +a +a +a +a +"} +(7,1,1) = {" +a +a +a +a +a +a +b +c +c +c +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +a +a +a +b +b +a +a +a +a +a +a +a +a +a +a +"} +(8,1,1) = {" +a +a +a +a +a +b +b +c +c +c +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(9,1,1) = {" +a +a +a +a +a +b +b +b +b +b +a +a +a +a +a +a +c +c +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(10,1,1) = {" +a +a +a +a +a +b +b +b +b +b +a +a +a +a +a +a +c +c +c +c +c +c +c +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(11,1,1) = {" +a +a +a +a +a +a +a +b +b +a +a +a +a +a +a +a +c +c +c +c +c +c +c +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(12,1,1) = {" +a +a +a +a +a +a +a +b +b +a +a +a +a +a +b +c +c +c +c +c +c +c +c +c +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(13,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +c +c +c +c +c +c +c +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(14,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +b +c +c +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +"} +(15,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +d +d +b +b +b +b +b +b +b +b +d +a +a +a +a +a +a +a +b +b +b +a +a +"} +(16,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +d +d +b +b +d +d +b +b +b +d +b +b +b +b +b +a +a +a +a +a +a +a +a +b +b +b +a +"} +(17,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +d +d +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 +"} +(18,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +d +d +d +b +b +b +g +g +o +b +b +c +b +b +d +d +a +a +a +a +a +d +b +b +b +c +c +"} +(19,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +d +d +b +b +c +e +g +m +p +g +e +c +b +b +d +d +a +a +a +a +d +d +b +b +d +c +c +"} +(20,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +d +b +b +b +c +e +g +n +q +h +e +c +b +b +d +d +a +a +a +d +b +b +b +c +c +c +a +"} +(21,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +c +e +g +h +h +h +e +c +c +b +b +b +a +a +a +b +b +b +b +c +c +c +a +"} +(22,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +c +c +e +h +h +h +h +e +c +c +c +c +b +a +a +d +b +b +c +c +c +c +c +a +"} +(23,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +c +c +f +h +h +h +h +f +c +c +c +c +b +a +b +b +b +b +c +c +c +a +a +a +"} +(24,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +c +e +i +h +h +r +e +c +c +c +c +a +a +b +b +b +c +c +c +a +a +a +a +"} +(25,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +b +a +a +b +b +b +c +e +j +h +h +s +t +c +c +c +c +a +a +b +b +c +a +a +a +a +a +a +a +"} +(26,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +d +c +e +k +h +g +g +g +c +c +a +a +a +a +a +b +c +a +a +a +a +a +a +a +"} +(27,1,1) = {" +a +a +a +a +a +a +a +a +b +b +a +a +a +b +b +b +d +c +e +e +e +e +e +e +c +c +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(28,1,1) = {" +a +a +a +a +a +a +a +b +b +b +a +a +a +b +b +b +d +c +e +l +l +l +l +e +c +c +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(29,1,1) = {" +a +a +a +a +a +a +a +a +b +b +a +a +a +b +b +b +b +b +c +c +c +c +c +c +c +c +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(30,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +c +c +c +c +c +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(31,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +c +c +c +c +c +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(32,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(33,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(34,1,1) = {" +a +a +a +a +a +a +a +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 +c +c +a +a +a +a +a +a +"} +(35,1,1) = {" +a +a +a +a +a +a +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 +c +b +b +a +a +a +a +a +a +"} +(36,1,1) = {" +a +a +a +a +a +a +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 +c +d +b +a +a +a +a +a +a +"} +(37,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +a +b +d +b +b +a +a +a +a +a +a +"} +(38,1,1) = {" +a +a +a +a +a +a +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 +a +a +a +a +a +a +a +a +"} +(39,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(40,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} diff --git a/_maps/RandomRuins/SpaceRuins/derelict5.dmm b/_maps/RandomRuins/SpaceRuins/derelict5.dmm new file mode 100644 index 0000000..c64c449 --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/derelict5.dmm @@ -0,0 +1,62 @@ +"a" = (/turf/open/space,/area/space) +"b" = (/turf/closed/mineral,/area/ruin/unpowered/no_grav) +"c" = (/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) +"d" = (/turf/closed/mineral,/area/ruin/unpowered) +"e" = (/turf/closed/wall,/area/ruin/unpowered) +"f" = (/turf/closed/wall/rust,/area/ruin/unpowered) +"g" = (/turf/open/floor/plating,/area/ruin/unpowered) +"h" = (/obj/structure/closet/crate,/turf/open/floor/plating,/area/ruin/unpowered) +"i" = (/obj/effect/spawner/lootdrop/crate_spawner,/turf/open/floor/plating,/area/ruin/unpowered) +"j" = (/obj/structure/barricade/wooden,/obj/structure/door_assembly,/turf/open/floor/plating,/area/ruin/unpowered) +"k" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/electrical,/turf/open/floor/plating,/area/ruin/unpowered) +"l" = (/obj/structure/closet/crate,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/ruin/unpowered) +"m" = (/obj/effect/decal/remains/human,/turf/open/floor/plating,/area/ruin/unpowered) +"n" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/syndicate,/turf/open/floor/plating,/area/ruin/unpowered) +"o" = (/obj/structure/table,/turf/open/floor/plating,/area/ruin/unpowered) +"p" = (/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered) +"q" = (/obj/structure/barricade/wooden,/turf/open/floor/plating,/area/ruin/unpowered) +"r" = (/obj/structure/barricade/wooden,/obj/machinery/door/airlock/external,/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered) +"s" = (/obj/machinery/door/airlock/external,/turf/open/floor/plating,/area/ruin/unpowered) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbabbaaaa +aaaaaaaaaaaaaaaaaaaaaaaaabaaaabbbbaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbaaaaaa +aaaaaaaaaaabbbbbaaaaaaaaaaaaaaaaaaaabaaa +aaaaaaaabbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaabbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaa +aaaaaacbbbbbbbbbbbbbbbaaaaaaaaaaaabaaaaa +aaaaaacbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaa +aaaaaccbbbbbbbddeefddeeddbbbbbaaaaaaaaaa +aaaaaccbbbbbbbdgggeggghfibbbbbbbaaaaaaaa +aaaaaccccbbbbbfiggjggghfhebbbbbbaaaaaaaa +aaaaaccccbbbbbfigkflgggjgfbbbbbbbbaaaaaa +aaaaaaaccbbbbbemgnfhggoffebbbbbbbbaaaaaa +aaaaaaacccbbbbfghielgggglbbbbbbbbbbbaaaa +aaaaaaaaccbbbbeffeeeejeeebbbbbbbbbbbaaaa +aaaaaaaaccbbbbegggpggggpebbbbbbbbbbbaaaa +aaaaaaaaccccbbeggglgpgpqdbbbbbbbbbbbaaaa +aaabaaaaacccccddedeffeerebbbbbbbbbbbaaaa +aaaaaaaaaaacccbbbbbbbbeqebbbbbbbbbbbbaaa +aaaaaaaaaaacccccccbbbbesebbbbbbbbbbbbaaa +aaaaaaaaaaaaacccccbbbbbcbbbbbbbbbbbbbaaa +aaaaabaaaaaaacccccccccccccbbbbbbbbbbbaaa +aaaaaaaaaaaaaaaaacccccccccbbbbbbbbbbbaaa +aaaaaaabbaaaaaaaaaccccccccbbbbbbbbbbbaaa +aaaaaaabbbbaaaaaaacccccccccbbccbbbbbbaaa +aaaaaaabbbbaaaaaaacccccccccccccccbbbbbaa +aaaaaaaaabbaaaaaaaaccccccccccccccbbbbbaa +aaaaaaaaabbaaaaaaaaccccccccccccccbbbbbaa +aaaaaaaaaaaaaaaaaaaccccccccccccccbbbbbaa +aaaaaaaaaaaaaaaaabbcccccccccccccccbbbbaa +abbaaaaaaaaaaaaaabbcccccccccccccccbbbbaa +abbaaaaaaaaaaaaaabbbbcccccccccccbbbbbbaa +abbbaaaaaaaaaaaaaabbbcccccccccccbbbbbaaa +aaaaaaaaaaaaaaaaaabbbbbbbcccccbbbbbbbaaa +aaaaaaaaaaaaaaaaaaaabbbbbbccccbbbbbbbaaa +aaaaabaaaaaaaaaaaaaabbbbbbbbbbbbbbaaaaaa +aaabaaaaaaaaaaaaaaaaaabbbbbbbbbaaaaaaaaa +"} diff --git a/_maps/RandomRuins/SpaceRuins/derelict6.dmm b/_maps/RandomRuins/SpaceRuins/derelict6.dmm new file mode 100644 index 0000000..7942c5c --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/derelict6.dmm @@ -0,0 +1,1249 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/open/space, +/area/space) +"ab" = ( +/obj/structure/lattice, +/turf/open/space, +/area/space) +"ac" = ( +/turf/open/floor/plating/airless{ + icon_plating = "platingdmg3"; + icon_state = "platingdmg3" + }, +/turf/open/floor/plating/airless{ + icon_plating = "platingdmg2"; + icon_state = "platingdmg2" + }, +/area/ruin/unpowered) +"ad" = ( +/turf/open/floor/plating/airless{ + icon_plating = "platingdmg3"; + icon_state = "platingdmg3" + }, +/obj/structure/girder, +/turf/open/floor/plating/airless{ + icon_plating = "platingdmg2"; + icon_state = "platingdmg2" + }, +/area/ruin/unpowered) +"ae" = ( +/obj/item/stack/sheet/metal, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"af" = ( +/turf/open/floor/plating/airless{ + icon_plating = "platingdmg3"; + icon_state = "platingdmg3" + }, +/obj/item/stack/sheet/metal, +/turf/open/floor/plating/airless{ + icon_plating = "platingdmg2"; + icon_state = "platingdmg2" + }, +/area/ruin/unpowered) +"ag" = ( +/turf/open/floor/plasteel/airless, +/area/ruin/unpowered) +"ah" = ( +/turf/open/floor/plating/airless{ + icon_plating = "platingdmg1"; + icon_state = "platingdmg1" + }, +/area/ruin/unpowered) +"ai" = ( +/turf/closed/wall, +/area/ruin/unpowered) +"aj" = ( +/obj/structure/fluff/broken_flooring{ + tag = "icon-pile (EAST)"; + icon_state = "pile"; + dir = 4 + }, +/turf/open/space, +/area/space) +"ak" = ( +/turf/open/floor/plating/airless{ + icon_plating = "platingdmg3"; + icon_state = "platingdmg3" + }, +/obj/item/stack/rods, +/turf/open/floor/plating/airless{ + icon_plating = "platingdmg2"; + icon_state = "platingdmg2" + }, +/area/ruin/unpowered) +"al" = ( +/turf/open/floor/plating/airless, +/turf/open/floor/plating/airless{ + icon_plating = "platingdmg2"; + icon_state = "platingdmg2" + }, +/area/ruin/unpowered) +"am" = ( +/obj/item/stack/rods, +/turf/open/floor/plating/airless, +/area/ruin/unpowered) +"an" = ( +/obj/machinery/light{ + dir = 8; + icon_state = "tube-broken"; + status = 2 + }, +/turf/open/floor/plasteel/airless, +/area/ruin/unpowered) +"ao" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating/airless{ + icon_plating = "platingdmg3"; + icon_state = "platingdmg3" + }, +/area/ruin/unpowered) +"ap" = ( +/turf/open/floor/plating/airless{ + icon_plating = "platingdmg3"; + icon_state = "platingdmg3" + }, +/area/ruin/unpowered) +"aq" = ( +/obj/structure/girder, +/turf/open/floor/plating/airless{ + icon_plating = "platingdmg3"; + icon_state = "platingdmg3" + }, +/area/ruin/unpowered) +"ar" = ( +/obj/structure/girder, +/turf/open/floor/plating/airless, +/area/ruin/unpowered) +"as" = ( +/turf/open/floor/plating/airless, +/obj/item/stack/sheet/metal, +/turf/open/floor/plating/airless{ + icon_plating = "platingdmg2"; + icon_state = "platingdmg2" + }, +/area/ruin/unpowered) +"at" = ( +/obj/item/stack/rods, +/turf/open/floor/plasteel/airless, +/area/ruin/unpowered) +"au" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/plating/airless{ + icon_plating = "platingdmg3"; + icon_state = "platingdmg3" + }, +/area/ruin/unpowered) +"av" = ( +/obj/effect/decal/remains/human, +/turf/open/floor/plasteel/airless, +/area/ruin/unpowered) +"aw" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/plasteel/airless, +/area/ruin/unpowered) +"ax" = ( +/mob/living/simple_animal/hostile/retaliate/ghost, +/turf/open/floor/plasteel/airless, +/area/ruin/unpowered) +"ay" = ( +/turf/open/floor/plating/airless, +/obj/item/stack/tile/plasteel, +/turf/open/floor/plating/airless{ + icon_plating = "platingdmg2"; + icon_state = "platingdmg2" + }, +/area/ruin/unpowered) +"az" = ( +/obj/structure/fluff/broken_flooring{ + tag = "icon-plating (WEST)"; + name = "broken plating"; + icon_state = "plating"; + dir = 8 + }, +/obj/structure/lattice, +/turf/open/space, +/area/ruin/unpowered) +"aA" = ( +/obj/structure/fluff/broken_flooring{ + tag = "icon-pile (NORTH)"; + icon_state = "pile"; + dir = 1 + }, +/turf/open/space, +/area/space) +"aB" = ( +/obj/item/stack/tile/plasteel, +/turf/open/floor/plating/airless{ + icon_plating = "platingdmg1"; + icon_state = "platingdmg1" + }, +/area/ruin/unpowered) +"aC" = ( +/obj/machinery/light{ + icon_state = "tube-broken"; + status = 2 + }, +/turf/open/floor/plasteel/airless, +/area/ruin/unpowered) +"aD" = ( +/turf/open/space, +/turf/open/floor/plating/airless{ + icon_plating = "platingdmg2"; + icon_state = "platingdmg2" + }, +/area/ruin/unpowered) +"aE" = ( +/obj/structure/door_assembly/door_assembly_mhatch{ + name = "broken airlock" + }, +/turf/open/floor/plating/airless, +/area/ruin/unpowered) +"aF" = ( +/obj/machinery/door/airlock/glass, +/turf/open/floor/plasteel/airless/bar, +/area/ruin/unpowered) +"aG" = ( +/obj/structure/door_assembly/door_assembly_glass{ + name = "broken airlock" + }, +/turf/open/floor/plasteel/airless/bar, +/area/ruin/unpowered) +"aH" = ( +/turf/open/floor/plating/airless, +/area/ruin/unpowered) +"aI" = ( +/obj/structure/table, +/obj/machinery/microwave, +/turf/open/floor/plasteel/airless/cafeteria, +/area/ruin/unpowered) +"aJ" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/drinkingglasses, +/turf/open/floor/plasteel/airless/cafeteria, +/area/ruin/unpowered) +"aK" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/obj/machinery/light{ + dir = 1; + icon_state = "tube-broken"; + status = 2 + }, +/turf/open/floor/plasteel/airless/cafeteria, +/area/ruin/unpowered) +"aL" = ( +/obj/structure/closet/secure_closet/freezer/kitchen, +/turf/open/floor/plasteel/airless/cafeteria, +/area/ruin/unpowered) +"aM" = ( +/turf/open/floor/plasteel/airless/bar, +/area/ruin/unpowered) +"aN" = ( +/obj/item/trash/plate, +/turf/open/floor/plasteel/airless/bar, +/area/ruin/unpowered) +"aO" = ( +/obj/item/chair, +/turf/open/floor/plasteel/airless/bar, +/area/ruin/unpowered) +"aP" = ( +/obj/machinery/light{ + dir = 1; + icon_state = "tube-broken"; + status = 2 + }, +/turf/open/floor/plating/airless{ + icon_plating = "platingdmg3"; + icon_state = "platingdmg3" + }, +/area/ruin/unpowered) +"aQ" = ( +/obj/item/stack/tile/plasteel, +/turf/open/floor/plating/airless, +/area/ruin/unpowered) +"aR" = ( +/turf/open/floor/plasteel/airless/cafeteria, +/area/ruin/unpowered) +"aS" = ( +/obj/structure/table_frame, +/turf/open/floor/plasteel/airless/cafeteria, +/area/ruin/unpowered) +"aT" = ( +/obj/item/weapon/kitchen/fork, +/turf/open/floor/plasteel/airless/bar, +/area/ruin/unpowered) +"aU" = ( +/obj/structure/table/wood, +/obj/item/weapon/shard, +/turf/open/floor/plating/airless{ + icon_plating = "platingdmg3"; + icon_state = "platingdmg3" + }, +/area/ruin/unpowered) +"aV" = ( +/obj/structure/table/wood, +/obj/item/trash/plate, +/turf/open/floor/plating/airless{ + icon_plating = "platingdmg3"; + icon_state = "platingdmg3" + }, +/area/ruin/unpowered) +"aW" = ( +/obj/structure/table, +/turf/open/floor/plasteel/airless/cafeteria, +/area/ruin/unpowered) +"aX" = ( +/obj/item/chair/stool/bar, +/turf/open/floor/plasteel/airless/bar, +/area/ruin/unpowered) +"aY" = ( +/turf/open/floor/plasteel/bar{ + initial_gas_mix = "TEMP=2.7" + }, +/obj/item/stack/sheet/metal, +/turf/open/floor/plating/airless{ + icon_plating = "platingdmg2"; + icon_state = "platingdmg2" + }, +/area/ruin/unpowered) +"aZ" = ( +/obj/structure/fluff/broken_flooring{ + tag = "icon-pile (WEST)"; + icon_state = "pile"; + dir = 8 + }, +/turf/open/space, +/area/space) +"ba" = ( +/mob/living/simple_animal/hostile/retaliate/ghost, +/turf/open/floor/plasteel/airless/cafeteria, +/area/ruin/unpowered) +"bb" = ( +/obj/item/weapon/reagent_containers/food/snacks/donkpocket, +/turf/open/floor/plasteel/airless/cafeteria, +/area/ruin/unpowered) +"bc" = ( +/obj/structure/table, +/obj/item/weapon/shard, +/turf/open/floor/plasteel/airless/cafeteria, +/area/ruin/unpowered) +"bd" = ( +/obj/structure/chair/stool/bar, +/turf/open/floor/plasteel/airless/bar, +/area/ruin/unpowered) +"be" = ( +/turf/open/floor/plasteel/bar{ + initial_gas_mix = "TEMP=2.7" + }, +/turf/open/floor/plating/airless{ + icon_plating = "platingdmg2"; + icon_state = "platingdmg2" + }, +/area/ruin/unpowered) +"bf" = ( +/obj/structure/lattice, +/obj/item/stack/sheet/metal, +/turf/open/space, +/area/space) +"bg" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/plating/airless{ + icon_plating = "platingdmg1"; + icon_state = "platingdmg1" + }, +/area/ruin/unpowered) +"bh" = ( +/obj/machinery/light{ + dir = 8; + icon_state = "tube-broken"; + status = 2 + }, +/obj/structure/table_frame, +/turf/open/floor/plasteel/airless/cafeteria, +/area/ruin/unpowered) +"bi" = ( +/obj/item/stack/sheet/metal, +/obj/item/clothing/head/chefhat, +/turf/open/floor/plating/airless{ + icon_plating = "platingdmg3"; + icon_state = "platingdmg3" + }, +/area/ruin/unpowered) +"bj" = ( +/obj/item/trash/plate, +/obj/effect/decal/remains/human, +/turf/open/floor/plasteel/airless/cafeteria, +/area/ruin/unpowered) +"bk" = ( +/obj/structure/table_frame/wood, +/turf/open/floor/plating/airless{ + icon_plating = "platingdmg3"; + icon_state = "platingdmg3" + }, +/area/ruin/unpowered) +"bl" = ( +/obj/structure/girder, +/turf/open/floor/plating/airless{ + icon_plating = "platingdmg1"; + icon_state = "platingdmg1" + }, +/area/ruin/unpowered) +"bm" = ( +/obj/item/chair, +/turf/open/floor/plating/airless{ + icon_plating = "platingdmg3"; + icon_state = "platingdmg3" + }, +/area/ruin/unpowered) +"bn" = ( +/obj/structure/lattice, +/obj/item/weapon/shard, +/turf/open/space, +/area/space) +"bo" = ( +/obj/item/stack/rods, +/turf/open/space, +/area/space) +"bp" = ( +/obj/item/stack/sheet/metal, +/obj/structure/girder, +/turf/open/floor/plating/airless{ + icon_plating = "platingdmg1"; + icon_state = "platingdmg1" + }, +/area/ruin/unpowered) +"bq" = ( +/obj/item/stack/tile/plasteel, +/turf/open/floor/plating/airless{ + icon_plating = "platingdmg3"; + icon_state = "platingdmg3" + }, +/area/ruin/unpowered) +"br" = ( +/obj/structure/girder, +/obj/item/stack/sheet/metal, +/turf/open/floor/plating/airless{ + icon_plating = "platingdmg1"; + icon_state = "platingdmg1" + }, +/area/ruin/unpowered) +"bs" = ( +/obj/structure/lattice, +/obj/structure/fluff/broken_flooring{ + tag = "icon-singular (NORTH)"; + icon_state = "singular"; + dir = 1 + }, +/turf/open/space, +/area/space) +"bt" = ( +/obj/structure/fluff/broken_flooring{ + tag = "icon-side (NORTH)"; + icon_state = "side"; + dir = 1 + }, +/obj/structure/lattice, +/turf/open/space, +/area/ruin/unpowered) +"bu" = ( +/obj/structure/fluff/broken_flooring, +/turf/open/space, +/area/ruin/unpowered) +"bv" = ( +/obj/structure/fluff/broken_flooring{ + icon_state = "pile" + }, +/turf/open/space, +/area/space) +"bw" = ( +/obj/structure/lattice, +/obj/structure/fluff/broken_flooring{ + tag = "icon-plating (NORTH)"; + name = "broken plating"; + icon_state = "plating"; + dir = 1 + }, +/turf/open/space, +/area/ruin/unpowered) +"bx" = ( +/obj/structure/fluff/broken_flooring{ + tag = "icon-plating (EAST)"; + name = "broken plating"; + icon_state = "plating"; + dir = 4 + }, +/obj/structure/lattice, +/turf/open/space, +/area/ruin/unpowered) +"by" = ( +/obj/structure/fluff/broken_flooring{ + tag = "icon-pile (EAST)"; + icon_state = "pile"; + dir = 4 + }, +/turf/open/floor/plasteel/airless, +/area/ruin/unpowered) +"bz" = ( +/obj/structure/lattice, +/obj/structure/fluff/broken_flooring{ + tag = "icon-plating (EAST)"; + name = "broken plating"; + icon_state = "plating"; + dir = 4 + }, +/turf/open/space, +/area/ruin/unpowered) +"bA" = ( +/obj/structure/fluff/broken_flooring{ + icon_state = "singular" + }, +/turf/open/space, +/area/space) +"bB" = ( +/obj/structure/fluff/broken_flooring{ + tag = "icon-singular (EAST)"; + icon_state = "singular"; + dir = 4 + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"bC" = ( +/obj/structure/lattice, +/obj/structure/fluff/broken_flooring{ + tag = "icon-corner (NORTH)"; + icon_state = "corner"; + dir = 1 + }, +/turf/open/space, +/area/ruin/unpowered) +"bD" = ( +/obj/structure/fluff/broken_flooring{ + tag = "icon-singular (EAST)"; + icon_state = "singular"; + dir = 4 + }, +/turf/open/floor/plasteel/airless, +/area/ruin/unpowered) +"bE" = ( +/obj/structure/lattice, +/obj/structure/fluff/broken_flooring{ + tag = "icon-corner (WEST)"; + icon_state = "corner"; + dir = 8 + }, +/turf/open/space, +/area/ruin/unpowered) +"bF" = ( +/obj/structure/lattice, +/obj/structure/fluff/broken_flooring{ + tag = "icon-side (EAST)"; + icon_state = "side"; + dir = 4 + }, +/turf/open/space, +/area/ruin/unpowered) +"bG" = ( +/obj/structure/fluff/broken_flooring{ + tag = "icon-singular (EAST)"; + icon_state = "singular"; + dir = 4 + }, +/turf/open/space, +/area/space) +"bH" = ( +/obj/structure/fluff/broken_flooring{ + icon_state = "plating"; + name = "broken plating" + }, +/obj/structure/lattice, +/turf/open/space, +/area/ruin/unpowered) +"bI" = ( +/obj/structure/lattice, +/obj/structure/fluff/broken_flooring{ + tag = "icon-plating (WEST)"; + name = "broken plating"; + icon_state = "plating"; + dir = 8 + }, +/turf/open/space, +/area/ruin/unpowered) + +(1,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(2,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +bA +aa +ab +ab +aa +aa +aa +aj +aa +aa +aa +aa +aa +aa +aa +aa +aZ +aa +"} +(3,1,1) = {" +aa +aa +aa +aa +aa +aa +ab +aa +ab +bC +bE +aa +aa +aa +ab +ab +aa +ab +ab +aa +aa +aa +aa +aa +aa +"} +(4,1,1) = {" +aa +aa +aa +aa +aa +aa +ab +ac +aw +ag +ag +aD +bH +aa +ab +ab +aa +ab +ab +ab +aa +aa +aa +aa +aa +"} +(5,1,1) = {" +aa +aa +aa +aa +aa +aa +bw +ad +ag +ag +ag +ah +al +al +al +al +al +al +al +al +bH +aa +aa +aa +aa +"} +(6,1,1) = {" +aa +aa +aa +aa +aa +ab +ac +ac +at +bD +ag +ai +ai +ai +aq +ah +bg +bl +ah +ay +al +ab +aa +aa +aa +"} +(7,1,1) = {" +aa +aa +aa +ab +ab +ab +al +ai +aw +ag +ag +aE +aH +aQ +aH +ap +ap +ah +ah +al +al +aa +aa +aa +aa +"} +(8,1,1) = {" +aa +aa +aa +ab +ab +ac +am +ai +ag +ag +ag +ai +ai +ai +ai +ai +ai +aq +bp +ah +as +ab +aa +aa +aa +"} +(9,1,1) = {" +aa +aa +aa +ab +ab +ac +ah +ai +av +ag +aC +ai +aI +aR +aW +aW +bh +ap +ap +br +ab +ab +aa +aa +aa +"} +(10,1,1) = {" +aa +aa +aa +aa +aa +ac +ah +aq +ag +aw +ag +ai +aJ +aR +aR +aR +bi +ap +bq +bl +ab +ab +aa +aa +aa +"} +(11,1,1) = {" +aa +aa +aa +aa +bw +af +ai +ai +ag +ax +ag +ai +aK +aR +aR +ba +bj +au +ap +aq +ab +ab +bs +aa +aa +"} +(12,1,1) = {" +aa +aa +bs +ab +ag +ag +an +ag +ag +ag +ag +ai +aL +aR +aR +bb +aR +aR +aR +ai +ab +ab +ab +aa +aa +"} +(13,1,1) = {" +aa +aa +ab +bt +ag +by +ag +ag +ag +ag +ag +ai +ai +aS +aW +bc +aR +aS +ai +ai +ab +ab +ab +aa +aa +"} +(14,1,1) = {" +aa +aa +aa +bu +ag +ag +ag +ag +ag +ag +ag +ai +aM +aM +aX +bd +aM +aX +aM +ai +ab +ab +ab +aa +aa +"} +(15,1,1) = {" +aa +aa +aa +aa +ad +ai +ai +ai +ag +ag +ag +aF +aN +aT +ah +aM +aT +au +be +ai +ab +aa +aa +aa +aa +"} +(16,1,1) = {" +aa +aa +aa +ab +ac +ap +ao +ai +ag +ag +ag +aG +aO +bI +ab +be +ap +ab +au +aq +aa +aa +aa +aa +aa +"} +(17,1,1) = {" +aa +aa +aa +ab +bx +ak +ap +ai +ag +ag +ag +ai +aM +aU +aB +ap +bk +bm +az +ab +bo +aa +aa +aa +aa +"} +(18,1,1) = {" +aa +aa +aa +aa +ae +ac +ap +aq +ag +ag +aC +ai +aM +ap +ap +ap +ab +ac +ab +aa +aa +aa +aa +aa +aa +"} +(19,1,1) = {" +aa +aa +aa +aa +aa +bz +ac +ai +ag +ag +ag +ai +aP +ap +ab +be +ac +bn +aa +aa +aa +aa +aa +aa +aa +"} +(20,1,1) = {" +aa +aa +aa +aa +aa +ab +ac +ai +ag +ag +ag +ai +ap +aV +aY +ac +ab +ab +aa +aa +aa +aA +aa +aa +aa +"} +(21,1,1) = {" +aa +aa +aa +aa +aa +aa +af +ar +ag +ag +ag +ai +au +ap +ac +bf +ab +ab +aa +aa +aa +aa +aa +aa +aa +"} +(22,1,1) = {" +aa +aa +aa +aa +aa +aa +ab +ac +aw +at +ag +ai +ai +ai +aq +ab +aa +bo +aa +aa +aa +aa +aa +aa +aa +"} +(23,1,1) = {" +aa +aa +aa +bv +aa +aa +aa +aa +bB +ab +bF +ai +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(24,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(25,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} diff --git a/_maps/RandomRuins/SpaceRuins/emptyshell.dmm b/_maps/RandomRuins/SpaceRuins/emptyshell.dmm new file mode 100644 index 0000000..e6d2316 --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/emptyshell.dmm @@ -0,0 +1,345 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/open/space, +/area/space) +"b" = ( +/obj/structure/lattice, +/turf/open/space, +/area/space) +"c" = ( +/turf/closed/wall/r_wall, +/area/ruin/unpowered) +"d" = ( +/turf/open/floor/plating, +/area/ruin/unpowered) +"e" = ( +/obj/effect/spawner/lootdrop/crate_spawner, +/turf/open/floor/plating, +/area/ruin/unpowered) +"f" = ( +/obj/item/ammo_box/magazine/sniper_rounds, +/turf/open/floor/plating, +/area/ruin/unpowered) +"g" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/ruin/unpowered) +"h" = ( +/obj/item/stack/rods, +/turf/open/floor/plating, +/area/ruin/unpowered) +"i" = ( +/turf/open/floor/plating/airless, +/area/ruin/unpowered) +"j" = ( +/obj/machinery/door/airlock, +/turf/open/floor/plating, +/area/ruin/unpowered) +"k" = ( +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/ruin/unpowered) +"l" = ( +/obj/item/stack/cable_coil, +/turf/open/floor/plating, +/area/ruin/unpowered) +"m" = ( +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 4; + name = "4maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/ruin/unpowered) + +(1,1,1) = {" +a +a +a +a +a +a +b +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +a +a +a +b +b +b +a +a +b +a +a +a +a +a +"} +(3,1,1) = {" +a +a +a +b +a +a +b +i +i +b +a +a +a +b +a +"} +(4,1,1) = {" +a +b +b +c +c +c +i +i +i +i +c +c +c +a +a +"} +(5,1,1) = {" +a +b +c +c +c +c +c +j +j +c +c +c +c +c +b +"} +(6,1,1) = {" +a +a +c +c +c +d +d +d +d +d +l +c +c +c +b +"} +(7,1,1) = {" +a +a +c +c +d +d +h +d +d +d +d +d +c +c +a +"} +(8,1,1) = {" +a +a +c +c +e +d +d +h +k +d +e +d +c +c +a +"} +(9,1,1) = {" +a +b +c +c +d +d +d +d +d +d +d +d +c +c +a +"} +(10,1,1) = {" +b +a +c +c +d +d +d +g +d +d +d +d +c +c +a +"} +(11,1,1) = {" +a +b +c +c +f +d +d +d +d +d +m +d +c +c +a +"} +(12,1,1) = {" +a +a +c +c +d +g +d +d +d +h +d +e +c +c +a +"} +(13,1,1) = {" +a +a +c +c +c +d +d +d +d +d +d +c +c +c +a +"} +(14,1,1) = {" +a +b +c +c +c +c +c +c +c +c +c +c +c +c +a +"} +(15,1,1) = {" +a +a +a +c +c +c +c +c +c +c +c +c +c +a +a +"} +(16,1,1) = {" +a +a +b +a +b +b +b +a +b +b +b +a +b +a +a +"} +(17,1,1) = {" +a +a +a +a +a +b +b +a +b +b +b +a +a +a +a +"} diff --git a/_maps/RandomRuins/SpaceRuins/gasthelizards.dmm b/_maps/RandomRuins/SpaceRuins/gasthelizards.dmm new file mode 100644 index 0000000..fd610fd --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/gasthelizards.dmm @@ -0,0 +1,66 @@ +"a" = (/turf/open/space,/area/space) +"b" = (/obj/structure/lattice,/turf/open/space,/area/space) +"c" = (/turf/closed/wall,/area/ruin/gasthelizard) +"d" = (/obj/machinery/light{dir = 1},/obj/structure/bed,/obj/effect/decal/remains/human,/turf/open/floor/plasteel/airless/darkwarning{dir = 8},/area/ruin/gasthelizard) +"e" = (/obj/structure/window/reinforced{dir = 4;pixel_x = 0},/turf/open/floor/plasteel/airless/darkwarning{dir = 4},/area/ruin/gasthelizard) +"f" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/light{dir = 1},/obj/structure/bed,/obj/effect/decal/remains/human,/turf/open/floor/plasteel/airless/darkwarning{dir = 8},/area/ruin/gasthelizard) +"g" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/light{dir = 1},/obj/structure/bed,/turf/open/floor/plasteel/airless/darkwarning{dir = 8},/area/ruin/gasthelizard) +"h" = (/turf/open/floor/plasteel/airless/darkwarning{dir = 4},/area/ruin/gasthelizard) +"i" = (/turf/open/floor/plasteel/airless/darkwarning{dir = 8},/area/ruin/gasthelizard) +"j" = (/obj/structure/window/reinforced{dir = 4;pixel_x = 0},/obj/machinery/atmospherics/components/unary/outlet_injector,/turf/open/floor/plasteel/airless/darkwarning{dir = 4},/area/ruin/gasthelizard) +"k" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/airless/darkwarning{dir = 8},/area/ruin/gasthelizard) +"l" = (/obj/machinery/atmospherics/components/unary/outlet_injector,/turf/open/floor/plasteel/airless/darkwarning{dir = 4},/area/ruin/gasthelizard) +"m" = (/obj/structure/closet/crate/freezer,/obj/item/stack/sheet/animalhide/lizard,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/gasthelizard) +"n" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/machinery/light{dir = 1},/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/gasthelizard) +"o" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/item/clothing/under/rank/prisoner,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/gasthelizard) +"p" = (/obj/structure/window/reinforced{dir = 1;layer = 2.9},/turf/open/floor/plasteel{dir = 1;icon_state = "blue"},/area/ruin/gasthelizard) +"q" = (/obj/machinery/door/window/brigdoor/northleft,/obj/machinery/atmospherics/components/binary/pump{dir = 1},/turf/open/floor/plasteel{dir = 1;icon_state = "blue"},/area/ruin/gasthelizard) +"r" = (/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/gasthelizard) +"s" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/canister/nitrous_oxide,/turf/open/floor/plasteel,/area/ruin/gasthelizard) +"t" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 1},/obj/machinery/power/apc{cell_type = 2500;dir = 1;name = "Worn-out APC";pixel_x = 1;pixel_y = 26},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel,/area/ruin/gasthelizard) +"u" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/open/floor/plasteel,/area/ruin/gasthelizard) +"v" = (/obj/machinery/atmospherics/pipe/manifold/general/visible,/turf/open/floor/plasteel,/area/ruin/gasthelizard) +"w" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 9},/obj/machinery/light{dir = 4;icon_state = "tube1"},/turf/open/floor/plasteel,/area/ruin/gasthelizard) +"x" = (/obj/structure/kitchenspike,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/gasthelizard) +"y" = (/obj/structure/table/reinforced,/obj/item/weapon/kitchen/knife/butcher,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/reagent_containers/spray/pepper,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/gasthelizard) +"z" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/turf/open/floor/plasteel,/area/ruin/gasthelizard) +"A" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 4;initialize_directions = 11},/turf/open/floor/plasteel,/area/ruin/gasthelizard) +"B" = (/turf/open/floor/plasteel,/area/ruin/gasthelizard) +"C" = (/obj/machinery/gibber,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/gasthelizard) +"D" = (/obj/structure/table/reinforced,/obj/item/clothing/suit/straight_jacket,/obj/item/weapon/reagent_containers/syringe/lethal,/obj/item/weapon/reagent_containers/syringe/lethal/choral,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/gasthelizard) +"E" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/canister/toxins,/turf/open/floor/plasteel,/area/ruin/gasthelizard) +"F" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 9},/turf/open/floor/plasteel,/area/ruin/gasthelizard) +"G" = (/obj/structure/chair/office/dark,/turf/open/floor/plasteel,/area/ruin/gasthelizard) +"H" = (/obj/machinery/door/airlock/security,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/gasthelizard) +"I" = (/obj/item/weapon/reagent_containers/glass/bottle/morphine{pixel_x = -4;pixel_y = 1},/obj/item/weapon/reagent_containers/glass/bottle/chloralhydrate{name = "chloral hydrate bottle"},/obj/item/weapon/reagent_containers/glass/bottle/toxin{pixel_x = 6;pixel_y = 8},/obj/item/weapon/reagent_containers/glass/bottle/morphine{pixel_x = 5;pixel_y = 1},/obj/item/weapon/reagent_containers/glass/bottle/facid{name = "fluorosulfuric acid bottle";pixel_x = -3;pixel_y = 6},/obj/structure/table/reinforced,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/gasthelizard) +"J" = (/obj/structure/rack,/obj/item/weapon/storage/toolbox/drone,/obj/item/weapon/melee/baton/cattleprod,/turf/open/floor/plasteel,/area/ruin/gasthelizard) +"K" = (/obj/structure/table,/obj/item/weapon/pen/red,/turf/open/floor/plasteel,/area/ruin/gasthelizard) +"L" = (/obj/structure/table,/obj/item/weapon/paper_bin,/turf/open/floor/plasteel,/area/ruin/gasthelizard) +"M" = (/obj/structure/table,/obj/item/weapon/storage/box/prisoner,/turf/open/floor/plasteel,/area/ruin/gasthelizard) +"N" = (/obj/structure/window/reinforced{dir = 4;pixel_x = 0},/obj/machinery/light,/obj/structure/table,/turf/open/floor/plasteel,/area/ruin/gasthelizard) +"O" = (/obj/machinery/portable_atmospherics/scrubber,/turf/open/floor/plasteel{icon_state = "bot";dir = 1},/area/ruin/gasthelizard) +"P" = (/obj/structure/table/reinforced,/obj/item/weapon/surgicaldrill,/obj/item/weapon/hemostat,/obj/item/weapon/scalpel,/obj/item/weapon/surgical_drapes,/obj/item/weapon/retractor,/obj/item/weapon/cautery,/obj/item/weapon/circular_saw,/obj/machinery/light,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/gasthelizard) +"Q" = (/obj/structure/table/optable,/obj/effect/decal/cleanable/blood/old,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/gasthelizard) +"R" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/glass/bottle/mutagen,/obj/item/weapon/reagent_containers/glass/bottle/mutagen,/obj/item/weapon/razor,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/gasthelizard) +"S" = (/obj/machinery/suit_storage_unit/security,/turf/open/floor/plasteel,/area/ruin/gasthelizard) +"T" = (/obj/machinery/light,/turf/open/floor/plasteel,/area/ruin/gasthelizard) +"U" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel,/area/ruin/gasthelizard) +"V" = (/obj/machinery/door/airlock/external,/turf/open/floor/plating,/area/ruin/gasthelizard) +"W" = (/turf/open/floor/plating,/area/ruin/gasthelizard) + +(1,1,1) = {" +aaaababababbaaaaaaa +aaababbbbababbbbaaa +aaabccccccccccbbbba +abbbcdefegefhccccca +abbbcijkjkjklcmnocb +abcccpqpqpqpqcrrrcb +abcstuvuvuvuwcxryca +aaczABBBBBBBBcCrDca +bbcEFBBBGBBBBHrrIcb +abcJBBBKLMNOOcPQRcb +abcSTBUcccccccccccb +aacccVccbbbbbbaabba +aabbcWcbbaaaaaaabaa +aaabcVcbaaaaaaaaaaa +"} diff --git a/_maps/RandomRuins/SpaceRuins/intactemptyship.dmm b/_maps/RandomRuins/SpaceRuins/intactemptyship.dmm new file mode 100644 index 0000000..3346128 --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/intactemptyship.dmm @@ -0,0 +1,333 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/open/space, +/area/space) +"b" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 8; + icon_state = "diagonalWall3" + }, +/area/ruin/powered/authorship) +"c" = ( +/turf/closed/wall/shuttle{ + icon_state = "wall3" + }, +/area/ruin/powered/authorship) +"d" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 1; + icon_state = "diagonalWall3" + }, +/area/ruin/powered/authorship) +"e" = ( +/obj/structure/shuttle/engine/propulsion{ + tag = "icon-propulsion (EAST)"; + icon_state = "propulsion"; + dir = 4 + }, +/turf/open/space, +/area/ruin/powered/authorship) +"f" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/shuttle/engine/heater{ + tag = "icon-heater (WEST)"; + icon_state = "heater"; + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/ruin/powered/authorship) +"g" = ( +/obj/structure/table/wood, +/obj/item/clothing/under/shorts/black, +/turf/open/floor/plasteel/shuttle/purple, +/area/ruin/powered/authorship) +"h" = ( +/turf/open/floor/plasteel/shuttle/purple, +/area/ruin/powered/authorship) +"i" = ( +/obj/structure/table, +/obj/item/device/flashlight/lamp, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/shuttle/purple, +/area/ruin/powered/authorship) +"j" = ( +/obj/structure/closet, +/turf/open/floor/plasteel/shuttle/purple, +/area/ruin/powered/authorship) +"k" = ( +/obj/machinery/vending/assist, +/turf/open/floor/plasteel/shuttle/purple, +/area/ruin/powered/authorship) +"l" = ( +/obj/structure/table/wood, +/obj/item/clothing/shoes/sandal, +/turf/open/floor/plasteel/shuttle/purple, +/area/ruin/powered/authorship) +"m" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/shuttle/purple, +/area/ruin/powered/authorship) +"n" = ( +/obj/structure/table/wood, +/turf/open/floor/plasteel/shuttle/purple, +/area/ruin/powered/authorship) +"o" = ( +/obj/structure/table/wood, +/obj/machinery/computer/libraryconsole/bookmanagement, +/turf/open/floor/plasteel/shuttle/purple, +/area/ruin/powered/authorship) +"p" = ( +/obj/structure/window/reinforced/fulltile, +/obj/structure/grille, +/turf/open/floor/plating, +/area/ruin/powered/authorship) +"q" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/ruin/powered/authorship) +"r" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/shuttle/purple, +/area/ruin/powered/authorship) +"s" = ( +/obj/machinery/door/poddoor{ + id = "goonwizship1" + }, +/obj/machinery/button/door{ + id = "goonwizship1"; + name = "Strange Ship Door Button"; + pixel_y = 32 + }, +/turf/open/floor/plasteel/shuttle/purple, +/area/ruin/powered/authorship) +"t" = ( +/obj/machinery/door/airlock/external, +/turf/open/floor/plasteel/shuttle/purple, +/area/ruin/powered/authorship) +"u" = ( +/obj/machinery/door/airlock/glass, +/turf/open/floor/plasteel/shuttle/purple, +/area/ruin/powered/authorship) +"v" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/shuttle/purple, +/area/ruin/powered/authorship) +"w" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/shuttle/purple, +/area/ruin/powered/authorship) +"x" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/shuttle/purple, +/area/ruin/powered/authorship) +"y" = ( +/mob/living/simple_animal/bot/medbot, +/turf/open/floor/plasteel/shuttle/purple, +/area/ruin/powered/authorship) +"z" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + icon_state = "diagonalWall3" + }, +/area/ruin/powered/authorship) +"A" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/shuttle/purple, +/area/ruin/powered/authorship) +"B" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" + }, +/area/ruin/powered/authorship) +"C" = ( +/obj/machinery/light, +/obj/structure/bed, +/turf/open/floor/plasteel/shuttle/purple, +/area/ruin/powered/authorship) + +(1,1,1) = {" +a +a +a +b +c +s +c +z +a +a +a +"} +(2,1,1) = {" +a +e +e +c +n +h +h +c +e +e +a +"} +(3,1,1) = {" +b +f +f +c +o +h +x +c +f +f +z +"} +(4,1,1) = {" +c +g +l +c +p +t +p +c +A +n +c +"} +(5,1,1) = {" +c +h +h +c +h +h +y +c +h +n +c +"} +(6,1,1) = {" +c +i +h +m +h +h +h +m +h +C +c +"} +(7,1,1) = {" +c +j +h +h +h +h +h +h +h +h +c +"} +(8,1,1) = {" +c +k +h +h +h +h +h +h +h +j +c +"} +(9,1,1) = {" +d +c +c +c +q +u +q +c +c +c +B +"} +(10,1,1) = {" +a +a +c +m +h +h +h +m +c +a +a +"} +(11,1,1) = {" +a +a +c +h +h +v +h +h +c +a +a +"} +(12,1,1) = {" +a +a +c +j +r +w +n +j +c +a +a +"} +(13,1,1) = {" +a +a +d +c +c +c +c +c +B +a +a +"} diff --git a/_maps/RandomRuins/SpaceRuins/listeningstation.dmm b/_maps/RandomRuins/SpaceRuins/listeningstation.dmm new file mode 100644 index 0000000..efbcfee --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/listeningstation.dmm @@ -0,0 +1,127 @@ +"a" = (/turf/open/space,/area/space) +"b" = (/turf/closed/mineral,/area/ruin/unpowered/no_grav) +"c" = (/turf/closed/wall/r_wall,/area/awaymission/listeningpost) +"d" = (/turf/open/floor/plating,/area/awaymission/listeningpost) +"e" = (/obj/machinery/power/smes/magical{desc = "A high-capacity superconducting magnetic energy storage (SMES) unit.";name = "power storage unit"},/turf/open/floor/plating,/area/awaymission/listeningpost) +"f" = (/obj/machinery/door/airlock,/turf/open/floor/plasteel,/area/awaymission/listeningpost) +"g" = (/turf/closed/wall,/area/awaymission/listeningpost) +"h" = (/obj/structure/table,/obj/item/weapon/paper/monitorkey,/obj/item/device/radio/intercom{desc = "Talk through this. Evilly";freerange = 1;frequency = 1213;name = "Syndicate Intercom";pixel_x = 32;subspace_transmission = 1;syndie = 1},/obj/item/clothing/glasses/regular,/turf/open/floor/plasteel,/area/awaymission/listeningpost) +"i" = (/obj/structure/table,/turf/open/floor/plasteel,/area/awaymission/listeningpost) +"j" = (/turf/open/floor/plasteel,/area/awaymission/listeningpost) +"k" = (/obj/machinery/door/airlock/external,/turf/open/floor/plating,/area/awaymission/listeningpost) +"l" = (/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) +"m" = (/obj/machinery/computer/message_monitor,/turf/open/floor/plasteel,/area/awaymission/listeningpost) +"n" = (/obj/structure/chair{dir = 4},/mob/living/simple_animal/hostile/syndicate{desc = "A weary looking syndicate operative."},/turf/open/floor/plasteel,/area/awaymission/listeningpost) +"o" = (/obj/structure/table,/obj/item/weapon/paper{info = "Nothing of interest to report.";name = "november report"},/obj/item/weapon/pen,/turf/open/floor/plasteel,/area/awaymission/listeningpost) +"p" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly";freerange = 1;frequency = 1213;name = "Syndicate Intercom";pixel_x = 32;subspace_transmission = 1;syndie = 1},/turf/open/floor/plasteel,/area/awaymission/listeningpost) +"q" = (/obj/structure/rack,/obj/item/clothing/suit/space/syndicate,/obj/item/clothing/mask/gas,/obj/item/clothing/head/helmet/space/syndicate,/turf/open/floor/plasteel,/area/awaymission/listeningpost) +"r" = (/obj/machinery/door/airlock,/obj/structure/safe/floor,/obj/item/weapon/paper{info = "I wonder how much longer they will accept my empty reports. They will cancel the case soon without results. When the pickup comes, I will tell them I have lost faith in our cause, and beg them to consider a diplomatic solution. How many nuclear teams have been dispatched with those nukes? I must try and prevent more from ever being sent. If they will not listen to reason, I will detonate the warehouse myself. Maybe some day in the immediate future, space will be peaceful, though I don't intend to live to see it. And that is why I write this down- it is my sacrifice that stabilised your worlds, traveller. Spare a thought for me, and please attempt to prevent nuclear proliferation, should it ever rear it's ugly head again. -Donk Co. Operative #451";name = "odd report"},/obj/item/weapon/gun/projectile/automatic/pistol,/turf/open/floor/plasteel,/area/awaymission/listeningpost) +"s" = (/obj/structure/disposalpipe/segment{dir = 4;icon_state = "pipe-c"},/turf/closed/mineral,/area/ruin/unpowered/no_grav) +"t" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/closed/mineral,/area/ruin/unpowered/no_grav) +"u" = (/obj/structure/disposaloutlet{dir = 4},/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"v" = (/obj/structure/bed,/obj/item/weapon/bedsheet/brown,/turf/open/floor/plasteel,/area/awaymission/listeningpost) +"w" = (/obj/structure/table,/obj/item/device/flashlight/lamp,/turf/open/floor/plasteel,/area/awaymission/listeningpost) +"x" = (/obj/machinery/vending/snack,/turf/open/floor/plasteel,/area/awaymission/listeningpost) +"y" = (/obj/structure/disposalpipe/segment,/turf/closed/mineral,/area/ruin/unpowered/no_grav) +"z" = (/obj/machinery/vending/cola,/turf/open/floor/plasteel,/area/ruin/unpowered/no_grav) +"A" = (/obj/structure/closet,/obj/item/clothing/gloves/boxing,/turf/open/floor/plasteel,/area/ruin/unpowered/no_grav) +"B" = (/obj/structure/filingcabinet,/obj/item/weapon/paper{info = "A good start to the operation: intercepted Nanotrasen military communications. A convoy is scheduled to transfer nuclear warheads to a new military base. This is as good a chance as any to get our hands on some heavy weaponry, I suggest we take it.";name = "april report"},/obj/item/weapon/paper{info = "Nothing of real interest to report this month. I have intercepted faint transmissions from what appears to be some sort of pirate radio station. They do not appear to be relevant to my assignment.";name = "may report"},/obj/item/weapon/paper{info = "Nanotrasen communications have been noticably less frequent recently. The pirate radio station I found last month has been transmitting pro-Nanotrasen propaganda. I will continue to monitor it.";name = "june report"},/obj/item/weapon/paper{info = "Nothing of interest to report.";name = "july report"},/obj/item/weapon/paper{info = "Nothing of interest to report.";name = "august report"},/obj/item/weapon/paper{info = "Nothing of interest to report.";name = "september report"},/obj/item/weapon/paper{info = "Nothing of interest to report.";name = "october report"},/obj/item/weapon/paper{info = "1 x Stechtkin pistol - $600
1 x silencer - $200
shipping charge - $4360
total - $5160";name = "receipt"},/turf/open/floor/plasteel,/area/ruin/unpowered/no_grav) +"C" = (/obj/structure/table,/obj/item/weapon/paper{info = "Mission Details: You have been assigned to a newly constructed listening post constructed within an asteroid in Nanotrasen space to monitor their plasma mining operations. Accurate intel is crucial to the success of our operatives onboard, do not fail us.";name = "mission briefing"},/turf/open/floor/plasteel,/area/ruin/unpowered/no_grav) +"D" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 4},/turf/open/floor/plasteel,/area/ruin/unpowered/no_grav) +"E" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/closed/wall/r_wall,/area/ruin/unpowered/no_grav) +"F" = (/obj/structure/disposalpipe/segment{dir = 8;icon_state = "pipe-c"},/turf/closed/mineral,/area/ruin/unpowered/no_grav) +"G" = (/obj/machinery/door/airlock{name = "Toilet"},/turf/open/floor/plasteel,/area/ruin/unpowered/no_grav) +"H" = (/turf/open/floor/plasteel/freezer,/area/ruin/unpowered/no_grav) +"I" = (/obj/machinery/shower{icon_state = "shower";dir = 8},/turf/open/floor/plasteel/freezer,/area/ruin/unpowered/no_grav) +"J" = (/obj/structure/toilet{icon_state = "toilet00";dir = 8},/turf/open/floor/plasteel/freezer,/area/ruin/unpowered/no_grav) +"K" = (/turf/closed/mineral/clown,/area/ruin/unpowered/no_grav) +"L" = (/turf/closed/wall/shuttle{icon_state = "wall3"},/area/ruin/unpowered/no_grav) +"M" = (/turf/open/floor/plasteel/airless/circuit/gcircuit,/area/ruin/unpowered/no_grav) +"N" = (/turf/closed/wall/r_wall,/area/ruin/unpowered/no_grav) +"O" = (/turf/open/space,/area/ruin/unpowered/no_grav) +"P" = (/turf/open/floor/plasteel,/area/ruin/unpowered/no_grav) +"Q" = (/obj/machinery/door/airlock,/turf/open/floor/plasteel,/area/ruin/unpowered/no_grav) +"R" = (/turf/closed/wall,/area/ruin/unpowered/no_grav) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbaaaaaaaaaaaaabbbbbbbbbbaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbaaaaaabbbbbbbbbbbbbbbbaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbccccbbbbbaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbcdecbbbbbaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbNccfgccccaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbcchijjkddkaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalbbbbbbbbbbbbbbbbbbcmnojjkddkaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbOlbbbbbbbbbbbbbbbbbbccpijjccccaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbllbbbbbbbbbbbbbbbbbbbcjjjqcbbbbaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbblbbbbbbbbbbbbbbbbccccrgggcbsttuaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcvwgjjjxcbybbbbbbaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbNPPQPPPzNbybbbbbbba +aaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbNABRCPDEEtFbbbbbaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbNNNNNGRNbbbbbbbbbaa +aaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbNHINbbbbbbbbbaa +aaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbNHJNbbbbbbbbbba +aaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbNNNNbbbbbbbbbbb +aaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +aaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +aaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +aaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbba +aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbba +aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaa +aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaa +aaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbblllbbbbbbbbbbbbbbbbbbbbaaaaaa +aaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbKKbbbbbbbllaaabbbbbbbbbbbbbbbbbaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbKbbKbbblllaaaabbbbbbbbbbbbbbaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbKbbbbbbbbbbbblaaaaabbbbbbbbbbbbbbaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbKKbbbbbbbbbbblaaaabbbbbbbbbbbbbaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbKKbbbbbbbbbbblaabbbbbbbbbbbbbbaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbKbbbbbbaabbbbbbbbbbbbbaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbabbbbbbbbbbbbaaaaaaaaaaaaaaaa +aaaaaabbbbaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaa +aaaaabbbbbbbaaaaaabbbbbbbbbbbbbbbbbbbbKKbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaa +aaaabbbbbbbbbbbaaabbbbbbbbbbbbbbbbKbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaa +aaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbKbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaa +aaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaa +aaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbKKbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaa +aabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbblllllbbbbaaaaaaaaaaaaaaaaaa +aabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbblaaaabbaaaaaaaaaaaaaaaaaaa +aabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbllbaaaaaaaaaaaaaaaaaaaaaa +aabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaa +abbbbbbbbbbbbbbbbbbbbbbbbbbbbbLLLLLLLbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaa +abbbbbbbbbbbbbbbbbbbbbbbbbbbbblMMMMMLbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaa +abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbMMMMMLbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaa +bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbMMMMLbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaa +bbbbbbbbbbbbbbbblbbbbbbbbbbbbbbMMMMMLbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaa +bbbbbbbbbbbbbbbbllbbbbbbbbbbbbblMMMMLbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaa +bbbbbbbbbbbbbbbaalbbbbbbbbbbbbllLLLLLbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaa +bbbbbbbbbbbbbaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaa +abbbbbbbbbbbaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaa +aaaaabbbbbbaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabbbbbbbbbblbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaabbbbbbbbllbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaabbbbbbbbalbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaabbbbbbbaalbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaabbbbaaabbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +"} diff --git a/_maps/RandomRuins/SpaceRuins/mechtransport.dmm b/_maps/RandomRuins/SpaceRuins/mechtransport.dmm new file mode 100644 index 0000000..21462e9 --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/mechtransport.dmm @@ -0,0 +1,382 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/open/space, +/area/space) +"b" = ( +/turf/closed/wall/mineral/titanium/overspace, +/area/ruin/powered/mechtransport) +"c" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/ruin/powered/mechtransport) +"d" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s10"; + dir = 2 + }, +/area/ruin/powered/mechtransport) +"e" = ( +/turf/closed/wall/mineral/titanium, +/area/ruin/powered/mechtransport) +"f" = ( +/obj/structure/closet/crate/secure/loot, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/mineral/titanium/blue, +/area/ruin/powered/mechtransport) +"g" = ( +/obj/structure/closet/crate/secure/loot, +/turf/open/floor/mineral/titanium/blue, +/area/ruin/powered/mechtransport) +"h" = ( +/obj/structure/table, +/obj/machinery/button/door{ + id = "mechaship1"; + name = "Mecha Cargo Ship Doors" + }, +/turf/open/floor/mineral/titanium/blue, +/area/ruin/powered/mechtransport) +"i" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/titanium/blue, +/area/ruin/powered/mechtransport) +"j" = ( +/obj/machinery/computer/shuttle, +/turf/open/floor/mineral/titanium/blue, +/area/ruin/powered/mechtransport) +"k" = ( +/obj/effect/decal/cleanable/vomit/old, +/turf/open/floor/mineral/titanium/blue, +/area/ruin/powered/mechtransport) +"l" = ( +/obj/effect/decal/remains/human, +/turf/open/floor/mineral/titanium/blue, +/area/ruin/powered/mechtransport) +"m" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/titanium/blue, +/area/ruin/powered/mechtransport) +"n" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/blue, +/area/ruin/powered/mechtransport) +"o" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall13"; + dir = 2 + }, +/area/ruin/powered/mechtransport) +"p" = ( +/obj/machinery/door/airlock/hatch{ + name = "Cockpit"; + req_access_txt = "101" + }, +/turf/open/floor/mineral/titanium, +/area/ruin/powered/mechtransport) +"q" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall12"; + dir = 2 + }, +/area/ruin/powered/mechtransport) +"r" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/mineral/titanium, +/area/ruin/powered/mechtransport) +"s" = ( +/turf/open/floor/mineral/titanium, +/area/ruin/powered/mechtransport) +"t" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/titanium, +/area/ruin/powered/mechtransport) +"u" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/mineral/titanium, +/area/ruin/powered/mechtransport) +"v" = ( +/obj/structure/mecha_wreckage/phazon, +/turf/open/floor/mineral/titanium/yellow, +/area/ruin/powered/mechtransport) +"w" = ( +/turf/open/floor/mineral/titanium/yellow, +/area/ruin/powered/mechtransport) +"x" = ( +/obj/structure/mecha_wreckage/ripley/firefighter, +/turf/open/floor/mineral/titanium/yellow, +/area/ruin/powered/mechtransport) +"y" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/titanium/yellow, +/area/ruin/powered/mechtransport) +"z" = ( +/obj/structure/mecha_wreckage/ripley, +/turf/open/floor/mineral/titanium/yellow, +/area/ruin/powered/mechtransport) +"A" = ( +/obj/mecha/working/ripley, +/turf/open/floor/mineral/titanium/yellow, +/area/ruin/powered/mechtransport) +"B" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/mineral/titanium/yellow, +/area/ruin/powered/mechtransport) +"C" = ( +/obj/effect/decal/cleanable/robot_debris/up, +/turf/open/floor/mineral/titanium/yellow, +/area/ruin/powered/mechtransport) +"D" = ( +/obj/machinery/door/poddoor{ + id = "mechaship1"; + name = "Cargo Bay Door" + }, +/turf/open/floor/mineral/titanium/yellow, +/area/ruin/powered/mechtransport) +"E" = ( +/obj/effect/decal/cleanable/robot_debris, +/turf/open/floor/mineral/titanium/yellow, +/area/ruin/powered/mechtransport) +"F" = ( +/obj/structure/mecha_wreckage/durand, +/turf/open/floor/mineral/titanium/yellow, +/area/ruin/powered/mechtransport) +"G" = ( +/obj/item/stack/tile/plasteel, +/turf/open/floor/plating/airless, +/area/ruin/powered/mechtransport) +"H" = ( +/turf/open/floor/plating/airless, +/area/ruin/powered/mechtransport) +"I" = ( +/obj/structure/lattice, +/turf/open/space, +/area/space) +"J" = ( +/obj/machinery/computer/mecha, +/turf/open/floor/mineral/titanium/blue, +/area/ruin/powered/mechtransport) +"K" = ( +/obj/effect/decal/cleanable/robot_debris/gib, +/turf/open/floor/plating/airless, +/area/ruin/powered/mechtransport) +"L" = ( +/obj/effect/decal/cleanable/robot_debris, +/obj/item/stack/tile/plasteel, +/turf/open/floor/mineral/titanium/yellow, +/area/ruin/powered/mechtransport) +"M" = ( +/turf/open/floor/plating/airless{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/ruin/powered/mechtransport) +"N" = ( +/turf/open/floor/plating/airless{ + icon_state = "platingdmg2" + }, +/area/ruin/powered/mechtransport) +"O" = ( +/obj/structure/mecha_wreckage/odysseus, +/turf/open/floor/mineral/titanium/yellow, +/area/ruin/powered/mechtransport) +"P" = ( +/obj/item/stack/sheet/metal, +/turf/open/space, +/area/space) +"Q" = ( +/obj/structure/mecha_wreckage/gygax, +/turf/open/floor/mineral/titanium, +/area/ruin/powered/mechtransport) +"R" = ( +/turf/open/floor/plating/airless{ + icon_state = "platingdmg3" + }, +/area/space) +"S" = ( +/obj/item/stack/rods, +/turf/open/floor/plating/airless, +/area/ruin/powered/mechtransport) +"T" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall14"; + dir = 2 + }, +/area/ruin/powered/mechtransport) +"U" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s9"; + dir = 2 + }, +/area/ruin/powered/mechtransport) +"V" = ( +/obj/item/stack/rods, +/turf/open/space, +/area/space) +"W" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall15"; + dir = 2 + }, +/area/ruin/powered/mechtransport) +"X" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/open/space, +/area/ruin/powered/mechtransport) + +(1,1,1) = {" +a +a +a +b +e +e +e +e +G +I +M +P +a +a +a +"} +(2,1,1) = {" +b +e +e +e +r +v +B +E +H +S +H +I +R +V +a +"} +(3,1,1) = {" +c +f +k +p +s +w +w +F +w +H +N +I +I +a +a +"} +(4,1,1) = {" +c +g +l +e +t +w +C +G +F +w +G +H +P +a +a +"} +(5,1,1) = {" +c +h +m +e +s +x +w +w +y +K +O +s +S +I +a +"} +(6,1,1) = {" +c +i +n +e +t +y +z +w +H +L +O +H +H +a +a +"} +(7,1,1) = {" +c +j +J +e +t +z +w +w +y +w +w +Q +e +b +X +"} +(8,1,1) = {" +b +e +e +e +u +A +y +w +w +B +y +s +e +e +X +"} +(9,1,1) = {" +a +a +a +b +e +e +D +D +D +D +D +e +b +b +X +"} diff --git a/_maps/RandomRuins/SpaceRuins/miracle.dmm b/_maps/RandomRuins/SpaceRuins/miracle.dmm new file mode 100644 index 0000000..40a4e2b --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/miracle.dmm @@ -0,0 +1,5 @@ +"a" = (/obj/item/weapon/storage/backpack/satchel/flat/secret{reward_all_of_these = list(/obj/item/weapon/gun/energy/pulse/prize)},/turf/open/floor/fakespace,/area/ruin/fakespace) + +(1,1,1) = {" +a +"} diff --git a/_maps/RandomRuins/SpaceRuins/oldAIsat.dmm b/_maps/RandomRuins/SpaceRuins/oldAIsat.dmm new file mode 100644 index 0000000..de102b7 --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/oldAIsat.dmm @@ -0,0 +1,217 @@ +"aa" = (/turf/open/space,/area/space) +"ab" = (/obj/structure/lattice,/turf/open/space,/area/space) +"ac" = (/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"ad" = (/obj/structure/lattice,/obj/structure/grille/broken,/turf/open/space,/area/space) +"ae" = (/obj/structure/lattice,/obj/structure/grille,/turf/open/space,/area/space) +"af" = (/obj/structure/grille,/turf/open/floor/plating/airless,/area/space) +"ag" = (/turf/closed/wall/r_wall,/area/tcommsat/chamber) +"ah" = (/obj/structure/girder,/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"ai" = (/obj/structure/window/reinforced{dir = 4},/turf/open/space,/area/space) +"aj" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"ak" = (/obj/machinery/power/apc{cell_type = 2500; dir = 1; name = "Worn-out APC"; pixel_x = 1; pixel_y = 26},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"al" = (/obj/machinery/light/small{dir = 1},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"am" = (/obj/item/weapon/stock_parts/cell,/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"an" = (/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"ao" = (/obj/item/weapon/coin/clown,/turf/open/floor/engine,/area/tcommsat/chamber) +"ap" = (/obj/structure/bed,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"aq" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"ar" = (/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/tcommsat/chamber) +"as" = (/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/tcommsat/chamber) +"at" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 4},/turf/open/space,/area/space) +"au" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"av" = (/obj/item/weapon/wrench,/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"aw" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"ax" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/turf/open/space,/area/space) +"ay" = (/obj/effect/spawner/lootdrop/crate_spawner,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"az" = (/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"aA" = (/obj/structure/table,/obj/item/weapon/paper,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"aB" = (/obj/structure/table,/obj/item/weapon/paper_bin,/obj/item/weapon/pen/blue,/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"aC" = (/obj/structure/frame/computer,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"aD" = (/obj/structure/table,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"aE" = (/obj/item/weapon/reagent_containers/food/snacks/meat/slab/synthmeat{name = "Cuban Pete-Meat"},/turf/open/floor/engine,/area/tcommsat/chamber) +"aF" = (/obj/structure/grille,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"aG" = (/obj/structure/grille/broken,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"aH" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"aI" = (/obj/structure/window/reinforced,/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"aJ" = (/obj/item/stack/cable_coil/cut{amount = 1},/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"aK" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/closet,/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"aL" = (/obj/structure/window/reinforced{dir = 8},/turf/open/space,/area/space) +"aM" = (/obj/item/weapon/folder/yellow,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"aN" = (/obj/structure/bed,/obj/effect/decal/remains/human,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"aO" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/turf/open/space,/area/space) +"aP" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/turf/open/space,/area/space) +"aQ" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"aR" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/open/space,/area/space) +"aS" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/open/space,/area/space) +"aT" = (/obj/structure/window/reinforced,/turf/open/space,/area/space) +"aU" = (/obj/structure/sign/securearea,/turf/closed/wall/r_wall,/area/tcommsat/chamber) +"aV" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"aW" = (/obj/item/weapon/paper/crumpled,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"aX" = (/obj/item/weapon/reagent_containers/food/snacks/meat/slab/synthmeat{name = "Cuban Pete-Meat"},/obj/item/stack/spacecash,/turf/open/floor/engine,/area/tcommsat/chamber) +"aY" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"aZ" = (/obj/structure/table,/obj/item/weapon/storage/fancy/cigarettes,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"ba" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"bb" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) +"bc" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) +"bd" = (/obj/structure/window/reinforced,/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) +"be" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/item/weapon/electronics/airlock,/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) +"bf" = (/obj/structure/door_assembly/door_assembly_hatch,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"bg" = (/obj/item/weapon/cigbutt,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"bh" = (/obj/machinery/vending/snack,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"bi" = (/obj/machinery/vending/cola,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"bj" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"bk" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 4},/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"bl" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/closed/wall/r_wall,/area/tcommsat/chamber) +"bm" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/grille/broken,/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"bn" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"bo" = (/obj/structure/disposaloutlet{dir = 4},/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"bp" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) +"bq" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/open/space,/area/space) +"br" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/turf/open/space,/area/space) +"bs" = (/obj/structure/window/reinforced{dir = 1},/turf/open/space,/area/space) +"bt" = (/obj/structure/table,/obj/item/device/radio/off,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"bu" = (/obj/structure/chair,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"bv" = (/obj/machinery/door/airlock/maintenance_hatch,/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) +"bw" = (/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) +"bx" = (/obj/machinery/door/airlock/hatch,/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) +"by" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/lattice,/turf/open/space,/area/space) +"bz" = (/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/shard{icon_state = "medium"},/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) +"bA" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"bB" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"bC" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"bD" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"bE" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) +"bF" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/turf/open/space,/area/space) +"bG" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/item/stack/rods,/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) +"bH" = (/obj/item/stack/rods,/obj/item/weapon/shard{icon_state = "medium"},/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"bI" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) +"bJ" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) +"bK" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating,/area/tcommsat/chamber) +"bL" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/open/floor/plating,/area/tcommsat/chamber) +"bM" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/open/floor/plating,/area/tcommsat/chamber) +"bN" = (/obj/effect/decal/cleanable/blood,/obj/item/weapon/scalpel{pixel_y = 12},/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) +"bO" = (/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/shard{icon_state = "medium"},/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) +"bP" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating,/area/tcommsat/chamber) +"bQ" = (/obj/structure/rack,/obj/item/weapon/circuitboard/computer/teleporter,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"bR" = (/obj/item/device/radio/off,/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) +"bS" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/open/floor/plating,/area/tcommsat/chamber) +"bT" = (/obj/effect/decal/cleanable/oil,/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"bU" = (/obj/effect/decal/cleanable/blood,/obj/structure/chair,/obj/item/clothing/under/rank/centcom_officer,/obj/item/weapon/restraints/handcuffs,/obj/effect/decal/remains/human,/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"bV" = (/obj/structure/table,/obj/item/device/flashlight/lamp,/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"bW" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) +"bX" = (/obj/structure/door_assembly/door_assembly_mhatch,/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) +"bY" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"bZ" = (/obj/item/weapon/cigbutt,/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"ca" = (/obj/effect/decal/cleanable/blood,/obj/item/device/assembly/signaler,/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) +"cb" = (/obj/structure/table,/obj/item/weapon/reagent_containers/syringe/lethal/choral,/obj/item/weapon/reagent_containers/syringe/lethal{pixel_y = 4},/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) +"cc" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating,/area/tcommsat/chamber) +"cd" = (/obj/item/weapon/storage/toolbox/syndicate,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"ce" = (/obj/structure/table,/obj/item/device/electropack,/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"cf" = (/obj/structure/table,/obj/item/weapon/hemostat,/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) +"cg" = (/obj/structure/table,/obj/item/weapon/circular_saw,/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) +"ch" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/open/floor/plating,/area/tcommsat/chamber) +"ci" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/item/stack/rods,/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) +"cj" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/open/space,/area/space) +"ck" = (/obj/structure/window/reinforced,/obj/structure/lattice,/turf/open/space,/area/space) +"cl" = (/turf/open/floor/plasteel/airless/warning{dir = 9},/area/tcommsat/chamber) +"cm" = (/turf/open/floor/plasteel/airless/warning/corner{dir = 4},/area/tcommsat/chamber) +"cn" = (/turf/open/floor/plasteel/airless/warning{dir = 1},/area/tcommsat/chamber) +"co" = (/turf/open/floor/plasteel/airless/warning{dir = 5},/area/tcommsat/chamber) +"cp" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/open/space,/area/space) +"cq" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) +"cr" = (/obj/item/weapon/paper/crumpled,/turf/open/floor/plasteel/airless/warning{dir = 8},/area/tcommsat/chamber) +"cs" = (/obj/item/stack/rods,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"ct" = (/turf/open/floor/plasteel/airless/warning{dir = 4},/area/tcommsat/chamber) +"cu" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/airless/black,/area/tcommsat/chamber) +"cv" = (/turf/open/floor/plasteel/airless/warning{dir = 10},/area/tcommsat/chamber) +"cw" = (/obj/machinery/light/small,/obj/item/weapon/paper,/turf/open/floor/plasteel/airless/warning/corner{dir = 1},/area/tcommsat/chamber) +"cx" = (/turf/open/floor/plasteel/airless/warning{dir = 6},/area/tcommsat/chamber) +"cy" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/open/space,/area/space) +"cz" = (/obj/structure/lattice,/obj/item/stack/rods,/obj/item/weapon/shard{icon_state = "medium"},/turf/open/space,/area/space) +"cA" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"cB" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/open/floor/plating,/area/tcommsat/chamber) +"cC" = (/obj/structure/grille/broken,/turf/open/space,/area/space) +"cD" = (/obj/machinery/door/airlock/hatch,/turf/open/floor/plasteel,/area/tcommsat/chamber) +"cE" = (/turf/open/floor/plasteel/warning{dir = 9},/area/tcommsat/chamber) +"cF" = (/turf/open/floor/plasteel/warning{dir = 1},/area/tcommsat/chamber) +"cG" = (/turf/open/floor/plasteel/warning{dir = 5},/area/tcommsat/chamber) +"cH" = (/turf/open/floor/plasteel/warning/corner{dir = 4},/area/tcommsat/chamber) +"cI" = (/turf/open/floor/plasteel,/area/tcommsat/chamber) +"cJ" = (/turf/open/floor/plasteel/warning/corner{dir = 8},/area/tcommsat/chamber) +"cK" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel,/area/tcommsat/chamber) +"cL" = (/obj/structure/sign/vacuum,/turf/closed/wall/r_wall,/area/tcommsat/chamber) +"cM" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/warning{dir = 9},/area/tcommsat/chamber) +"cN" = (/obj/item/weapon/paper/crumpled,/turf/open/floor/plasteel,/area/tcommsat/chamber) +"cO" = (/obj/structure/closet/malf/suits,/turf/open/floor/plasteel,/area/tcommsat/chamber) +"cP" = (/obj/structure/door_assembly/door_assembly_ext,/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"cQ" = (/obj/machinery/door/airlock/external,/turf/open/floor/plating,/area/tcommsat/chamber) +"cR" = (/turf/open/floor/plasteel/warning{dir = 8},/area/tcommsat/chamber) +"cS" = (/obj/item/weapon/crowbar,/turf/open/floor/plating/airless,/area/tcommsat/chamber) +"cT" = (/obj/structure/closet/crate,/obj/item/clothing/glasses/night,/turf/open/floor/plasteel/warning{dir = 10},/area/tcommsat/chamber) +"cU" = (/turf/open/floor/plasteel/warning/corner{dir = 1},/area/tcommsat/chamber) +"cV" = (/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/turf/open/floor/plasteel/warning{dir = 10},/area/tcommsat/chamber) +"cW" = (/turf/open/floor/plasteel/warning{dir = 2},/area/tcommsat/chamber) +"cX" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/warning{dir = 6},/area/tcommsat/chamber) +"cY" = (/obj/structure/frame/computer,/turf/open/floor/plating,/area/tcommsat/chamber) +"cZ" = (/obj/machinery/teleport/station,/turf/open/floor/plating,/area/tcommsat/chamber) +"da" = (/obj/machinery/teleport/hub,/turf/open/floor/plating,/area/tcommsat/chamber) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaababaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababaaaaaaababaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacabaaaaaaacabaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaabacaaaaaaaaacacabaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaabacaaaaaaaaabacabaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaabaaaaaaaaabababaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeababacacacacacacacababaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaeaaaaabaaaaacaaaaabaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeadadaaaaabadaeaeaeaeaeaeaeafaeadaeaeaeaeaeaeadabaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeagahahacahagagagagagagagagagagagagagagagagagagahacababaaabaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaadaeagagagagagagagagagagagagagagagagagagagagagagagahacabababababaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaeagagagabaaaiajakalamanagagagagagagagagagaoagapaqarasacacabacahadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaeagagabababatajacauavawaxagayazaAaBaCaDagaEagaFaGazarasasacahagaeaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaeagagaaabaaaiaHaIaJaIaKaLagazaMazazazaCagaEagaNaFazazararagagagaeaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaadagagaaabaaaaaOaPaQaRaSaTaUaVazaWazazaCagaXagaFaFazaYaZbaagagagaeaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaeagagaaabaaaibbbcbdbcbdbebfazazbgazazagagagagbhbiazbgbjbkblblblbmbnboaaaaaaaaaa +aaaaaaaaaaaaaaaaababadaeaeaeagagaaabaaaibpbqbrbsbsbsagazbtbuazazbvbwagagagagbxagagagagagagaeaeadabaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaabaeagagabababbybzaxagagagagagbAbBbCbCbDagbvagagagbybEbFabababagagaeaeaeaaaaaaaaaa +aaaaaaababacacacacacababaaaeagagaaabaaaibGbFagacacacacacbHacacacacbwbwacagbybEaaaaabaaagagaeaeaaabaaaaaaaa +ababababababababacacacacaaaeagagaaabaaaibIbFagacacbwbwacbwbwbwbwbwbwacacagbybJaLbKbLbMagagagaeabacababaaaa +aaaaaaaaaaababababacacacaaaeagagaaabaaaabpbFagacbwbwbwbwbwacbwbNbwbwbwacagbybOaLbPazazbQagagaeaaabaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaacaaaeagagaaabaaaibEaLagacbwbwbwbwbwacbwbRbwbwbwacagbybEaTbSazazaDagagaeaaabaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaacacafagagabababbybpaxagacbwbwbwacbTbUacbVbwbwbwacagbybIbWbXazazbYagagafacabaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaacaaaeagagaaabaaaibpaLagacbwbwacbwbwbZcacbbwbwbwacagaibEbsccazcdazagagaeaaabaaaaaaaa +aaaaaaaaaaaaabababacacacaaaeagagaaabaaaabEaaagacbwbwbwbwbwcecfcgbwbwacacagaabEaLbPazazaDagagaeaaacaaaaaaaa +aaaaaaaaaaabababacacacacaaaeagagaaabaaaibpaLagacbwacbwbwbwbwbwbwbwbwbwacagaibEaLchbLbMagagagaeabacabababab +aaaaaaabababababababababaaaeagagaaabaaaaciaLagacacacacacacacacacacacacacagaibJaLaaabaaagagaeaeaaabababaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaeaeagagabababbybOaxagagagagagagagagagagagagagagagbybEaxabababagahaeaeaeaaaaaaaaaa +aaaaaaaaaaaaabababababadaeaeahagaaaaaaaibEcjckaTaaagclcmarcncmascoagaTaTaTcpbEaLaaabaaahabaeaeaeadabababaa +aaaaaaaaaaaaaaaaaaaaaaaaaaadacahaaaaaaaicqbdbcbcbcbxcrazazazazcsctbxbcbdbcbccuaLaaabaaacabadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaabacabaaaaaaaabsbsbrbsbsagcvcwararazarcxagbsbsbscybsaaaaabaaabaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaababaaaaaaaaaaaaabaaagagagagagasahagagagagaaaaaaaaaaaaabaaaaaaaaabaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaababababczcAarazagazarazagazaCcBababababaaaaaaaaaaaaaaabcCaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagagazazazazazazaqazazagagaaaaaaaaaaaaaaaaaaabacaeaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacahagagagagagagagagagagcDagagagagagagagahacababaaaaaaaaacahaeaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacahagagagagagagagagagagcEcFcGagagagagacabababaaaaaaabababahagadaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaeadaeaeaeaeaeaeaeagagcHcIcJagagaeaeaeadaaaaaaaaaaaaabagagagaeaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadacacaeaeagagcKcIcIcIcIagagaeaeaaaaaaaaabacacahagagaeaeaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacagagcLcMcIcIcIcIcNcOagaeadaaaaaaaaaaababacagaeaeaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaccPaccQcRcIcIcIcIcIcIagaeaeaaaaaaaaaaabadaeaeaeaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSacacagagcLcTcUcIcIcIcIcOagaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacaeaeagagcVcWcWcWcXagagaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabadadaeaeaeagagcYcZdaagagaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaeaeaeagagagagagaeaeaeadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaaaeaeaeafaeaeaeaaaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaabaaaaacaaaaabaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaabacabacacacabababaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaabaaaaaaaaabababaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaabaaaaaaaaababaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaacaaaaaaaaaaabaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaabaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +"} diff --git a/_maps/RandomRuins/SpaceRuins/oldteleporter.dmm b/_maps/RandomRuins/SpaceRuins/oldteleporter.dmm new file mode 100644 index 0000000..94c5a7c --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/oldteleporter.dmm @@ -0,0 +1,29 @@ +"a" = (/turf/open/space,/area/space) +"b" = (/obj/structure/lattice,/turf/open/space,/area/ruin/oldteleporter) +"c" = (/turf/open/floor/plating/airless,/area/ruin/oldteleporter) +"d" = (/turf/closed/wall/r_wall,/area/ruin/oldteleporter) +"e" = (/turf/open/floor/plasteel/airless,/area/ruin/oldteleporter) +"f" = (/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/ruin/oldteleporter) +"g" = (/obj/structure/light_construct/small{dir = 1},/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/ruin/oldteleporter) +"h" = (/obj/machinery/computer/teleporter,/turf/open/floor/plasteel/airless,/area/ruin/oldteleporter) +"i" = (/obj/machinery/teleport/station,/turf/open/floor/plasteel/airless,/area/ruin/oldteleporter) +"j" = (/obj/machinery/teleport/hub,/turf/open/floor/plasteel/airless,/area/ruin/oldteleporter) +"k" = (/obj/structure/light_construct/small{dir = 4},/turf/open/floor/plating/airless,/area/ruin/oldteleporter) +"l" = (/obj/structure/table,/obj/item/weapon/stock_parts/cell{charge = 100;maxcharge = 15000},/turf/open/floor/plasteel/airless,/area/ruin/oldteleporter) +"m" = (/turf/open/floor/plasteel/airless{icon_state = "damaged4"},/area/ruin/oldteleporter) +"n" = (/obj/machinery/power/apc{dir = 0;name = "Worn-out APC";pixel_y = -24},/turf/open/floor/plasteel/airless,/area/ruin/oldteleporter) + +(1,1,1) = {" +aaaaaaaaaababbbbbaaba +aaaaaaaaaabbbbbbbbbbb +aaaaaaaaaababbbbbbbba +aabbbbbbbbbbbbbbbbbaa +bbbbbbbccccbbbbbbabbb +abbbbdddcdddcccbaabbb +aaaaddccefeccbbaaabaa +aaaadgeeeeeedbaaaaaaa +aaaadeehijekdbaaaaaaa +aaaadlmceeefdaaaaaaaa +aaaaddeneecddaaaaaaaa +aaaaadddddccaaaaaaaaa +"} diff --git a/_maps/RandomRuins/SpaceRuins/onehalf.dmm b/_maps/RandomRuins/SpaceRuins/onehalf.dmm new file mode 100644 index 0000000..f3fefdb --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/onehalf.dmm @@ -0,0 +1,191 @@ +"aa" = (/turf/open/space,/area/space) +"ab" = (/obj/structure/lattice,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/space,/area/space) +"ac" = (/obj/structure/lattice,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/space,/area/space) +"ad" = (/obj/structure/lattice,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/space,/area/space) +"ae" = (/obj/structure/lattice,/obj/item/stack/cable_coil/cut{amount = 2; dir = 2; icon_state = "coil_red2"},/turf/open/space,/area/space) +"af" = (/obj/structure/lattice,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/space,/area/space) +"ag" = (/turf/closed/wall,/area/ruin/onehalf/dorms_med) +"ah" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ruin/onehalf/dorms_med) +"ai" = (/obj/structure/lattice,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/space,/area/space) +"aj" = (/turf/open/floor/plating/airless,/area/ruin/onehalf/hallway) +"ak" = (/turf/closed/wall,/area/ruin/onehalf/hallway) +"al" = (/obj/machinery/sleeper/syndie{dir = 4},/turf/open/floor/plasteel/white,/area/ruin/onehalf/dorms_med) +"am" = (/turf/open/floor/plasteel/white,/area/ruin/onehalf/dorms_med) +"an" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/toxin{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/fire,/turf/open/floor/plasteel/white,/area/ruin/onehalf/dorms_med) +"ao" = (/obj/structure/bed,/obj/item/weapon/bedsheet/black,/turf/open/floor/plasteel,/area/ruin/onehalf/dorms_med) +"ap" = (/turf/open/floor/plasteel,/area/ruin/onehalf/dorms_med) +"aq" = (/obj/machinery/door/airlock/external,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/ruin/onehalf/drone_bay) +"ar" = (/turf/closed/wall,/area/ruin/onehalf/drone_bay) +"as" = (/obj/machinery/door/poddoor{id = "onehalf_drone1ext"; name = "mining drone bay blast door"},/turf/open/floor/plating/airless{dir = 1; icon_state = "warnplate"},/area/ruin/onehalf/drone_bay) +"at" = (/obj/machinery/door/poddoor{id = "onehalf_drone2ext"; name = "mining drone bay blast door"},/turf/open/floor/plating/airless{dir = 1; icon_state = "warnplate"},/area/ruin/onehalf/drone_bay) +"au" = (/obj/machinery/door/poddoor/preopen{id = "onehalf_drone3ext"; name = "mining drone bay blast door"},/turf/open/floor/plating/airless{dir = 1; icon_state = "warnplate"},/area/ruin/onehalf/drone_bay) +"av" = (/obj/machinery/door/poddoor{id = "onehalf_drone4ext"; name = "mining drone bay blast door"},/turf/open/floor/plating/airless{dir = 1; icon_state = "warnplate"},/area/ruin/onehalf/drone_bay) +"aw" = (/obj/structure/lattice,/turf/open/space,/area/space) +"ax" = (/obj/structure/lattice,/turf/open/space,/area/ruin/onehalf/hallway) +"ay" = (/obj/structure/table_frame,/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/ruin/onehalf/hallway) +"az" = (/obj/machinery/washing_machine,/turf/open/floor/plasteel/airless,/area/ruin/onehalf/hallway) +"aA" = (/obj/item/roller,/turf/open/floor/plasteel/white,/area/ruin/onehalf/dorms_med) +"aB" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/table,/obj/item/weapon/storage/firstaid/brute{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/regular,/turf/open/floor/plasteel/white,/area/ruin/onehalf/dorms_med) +"aC" = (/obj/machinery/light{dir = 8},/turf/open/floor/plasteel,/area/ruin/onehalf/dorms_med) +"aD" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light/small{dir = 8},/turf/open/floor/plating,/area/ruin/onehalf/drone_bay) +"aE" = (/obj/structure/disposalpipe/trunk,/turf/open/floor/plating/airless,/area/ruin/onehalf/drone_bay) +"aF" = (/obj/structure/disposalpipe/trunk,/obj/item/weapon/ore/diamond,/turf/open/floor/plating/airless,/area/ruin/onehalf/drone_bay) +"aG" = (/turf/open/floor/plating/airless{dir = 1; icon_state = "warnplate"},/area/ruin/onehalf/drone_bay) +"aH" = (/obj/item/stack/rods,/turf/open/space,/area/ruin/onehalf/hallway) +"aI" = (/turf/open/floor/plating/airless{icon_state = "platingdmg3"},/area/ruin/onehalf/hallway) +"aJ" = (/turf/open/floor/plasteel/airless{icon_state = "damaged5"},/area/ruin/onehalf/hallway) +"aK" = (/obj/machinery/iv_drip,/turf/open/floor/plasteel/white,/area/ruin/onehalf/dorms_med) +"aL" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/white,/area/ruin/onehalf/dorms_med) +"aM" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/closet/crate/medical,/obj/item/clothing/neck/stethoscope,/obj/item/device/healthanalyzer,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/machinery/power/apc{dir = 4; name = "Crew Quarters APC"; pixel_x = 26; pixel_y = 0},/turf/open/floor/plasteel/white,/area/ruin/onehalf/dorms_med) +"aN" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/poddoor{id = "onehalf_drone1int"; name = "mining drone bay blast door"},/turf/open/floor/plating,/area/ruin/onehalf/drone_bay) +"aO" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/poddoor{id = "onehalf_drone2int"; name = "mining drone bay blast door"},/turf/open/floor/plating,/area/ruin/onehalf/drone_bay) +"aP" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/poddoor{id = "onehalf_drone3int"; name = "mining drone bay blast door"},/turf/open/floor/plating,/area/ruin/onehalf/drone_bay) +"aQ" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/poddoor{id = "onehalf_drone4int"; name = "mining drone bay blast door"},/turf/open/floor/plating,/area/ruin/onehalf/drone_bay) +"aR" = (/obj/structure/disposaloutlet{dir = 1},/obj/structure/disposalpipe/trunk,/turf/open/floor/plating/airless,/area/ruin/onehalf/drone_bay) +"aS" = (/obj/structure/lattice,/obj/item/weapon/storage/toolbox/syndicate,/turf/open/space,/area/space) +"aT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/ruin/onehalf/hallway) +"aU" = (/turf/open/floor/plasteel/airless{icon_state = "damaged1"},/area/ruin/onehalf/hallway) +"aV" = (/obj/machinery/door/airlock/glass_medical,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/white,/area/ruin/onehalf/dorms_med) +"aW" = (/obj/machinery/door/airlock,/turf/open/floor/plasteel,/area/ruin/onehalf/dorms_med) +"aX" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/warning{dir = 9},/area/ruin/onehalf/drone_bay) +"aY" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{cell_type = 2500; dir = 1; name = "Mining Drone Bay APC"; pixel_y = 24},/turf/open/floor/plasteel/warning{dir = 1},/area/ruin/onehalf/drone_bay) +"aZ" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/warning{dir = 1},/area/ruin/onehalf/drone_bay) +"ba" = (/obj/machinery/button/door{id = "onehalf_drone2int"; name = "Drone 2 Internal Hatch Override"; pixel_x = 8; pixel_y = 27},/obj/machinery/button/door{id = "onehalf_drone2ext"; name = "Drone 2 External Hatch Override"; pixel_x = 8; pixel_y = 37},/obj/machinery/button/door{id = "onehalf_drone1int"; name = "Drone 1 Internal Hatch Override"; pixel_x = -8; pixel_y = 27},/obj/machinery/button/door{id = "onehalf_drone1ext"; name = "Drone 1 External Hatch Override"; pixel_x = -8; pixel_y = 37},/turf/open/floor/plasteel/warning{dir = 1},/area/ruin/onehalf/drone_bay) +"bb" = (/turf/open/floor/plasteel/warning{dir = 1},/area/ruin/onehalf/drone_bay) +"bc" = (/obj/machinery/button/door{id = "onehalf_drone3int"; name = "Drone 3 Internal Hatch Override"; pixel_x = -8; pixel_y = 27},/obj/machinery/button/door{id = "onehalf_drone3ext"; name = "Drone 3 External Hatch Override"; pixel_x = -8; pixel_y = 37},/obj/machinery/button/door{id = "onehalf_drone4ext"; name = "Drone 4 External Hatch Override"; pixel_x = 8; pixel_y = 37},/obj/machinery/button/door{id = "onehalf_drone4int"; name = "Drone 4 Internal Hatch Override"; pixel_x = 8; pixel_y = 27},/turf/open/floor/plasteel/warning{dir = 1},/area/ruin/onehalf/drone_bay) +"bd" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/warning{dir = 5},/area/ruin/onehalf/drone_bay) +"be" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ruin/onehalf/drone_bay) +"bf" = (/obj/item/stack/sheet/metal,/turf/open/floor/plating/airless{broken = 1; icon_state = "platingdmg1"},/area/ruin/onehalf/hallway) +"bg" = (/obj/structure/disposalpipe/broken{tag = "icon-pipe-b (EAST)"; icon_state = "pipe-b"; dir = 4},/obj/item/stack/cable_coil/cut{amount = 2; dir = 2; icon_state = "coil_red2"},/turf/open/floor/plating/airless{broken = 1; icon_state = "platingdmg2"},/area/ruin/onehalf/hallway) +"bh" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/ruin/onehalf/hallway) +"bi" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/airless{icon_state = "damaged5"},/area/ruin/onehalf/hallway) +"bj" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/airless,/area/ruin/onehalf/hallway) +"bk" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j1"; dir = 4},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/airless{icon_state = "damaged1"},/area/ruin/onehalf/hallway) +"bl" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/airless,/area/ruin/onehalf/hallway) +"bm" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j1"; dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/airless,/area/ruin/onehalf/hallway) +"bn" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/glass,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/ruin/onehalf/drone_bay) +"bo" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/ruin/onehalf/drone_bay) +"bp" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/ruin/onehalf/drone_bay) +"bq" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/ruin/onehalf/drone_bay) +"br" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/maintenance_hatch,/turf/open/floor/plasteel,/area/ruin/onehalf/drone_bay) +"bs" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel{icon_state = "floorgrime"},/area/ruin/onehalf/drone_bay) +"bt" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-y"; dir = 1},/turf/open/floor/plasteel{icon_state = "floorgrime"},/area/ruin/onehalf/drone_bay) +"bu" = (/obj/structure/disposalpipe/trunk{dir = 8},/obj/machinery/disposal/bin,/turf/open/floor/plating,/area/ruin/onehalf/drone_bay) +"bv" = (/obj/structure/disposalpipe/broken{tag = "icon-pipe-b (EAST)"; icon_state = "pipe-b"; dir = 4},/turf/open/floor/plating/airless{icon_state = "platingdmg3"},/area/ruin/onehalf/hallway) +"bw" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/ruin/onehalf/hallway) +"bx" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/airless,/area/ruin/onehalf/hallway) +"by" = (/obj/structure/disposalpipe/segment,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/airless{icon_state = "damaged1"},/area/ruin/onehalf/hallway) +"bz" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable,/obj/machinery/power/apc{dir = 2; name = "Hallway APC"; pixel_y = -24},/turf/open/floor/plasteel/airless,/area/ruin/onehalf/hallway) +"bA" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/airless{icon_state = "damaged4"},/area/ruin/onehalf/hallway) +"bB" = (/obj/structure/disposalpipe/segment,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/airless,/area/ruin/onehalf/hallway) +"bC" = (/obj/machinery/door/airlock/glass,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/ruin/onehalf/drone_bay) +"bD" = (/obj/structure/disposalpipe/junction{dir = 8; icon_state = "pipe-j1"},/turf/open/floor/plasteel,/area/ruin/onehalf/drone_bay) +"bE" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light,/turf/open/floor/plasteel,/area/ruin/onehalf/drone_bay) +"bF" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/ruin/onehalf/drone_bay) +"bG" = (/turf/open/floor/plasteel,/area/ruin/onehalf/drone_bay) +"bH" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/plasteel{icon_state = "floorgrime"},/area/ruin/onehalf/drone_bay) +"bI" = (/turf/open/floor/plasteel{icon_state = "floorgrime"},/area/ruin/onehalf/drone_bay) +"bJ" = (/obj/structure/chair/office{tag = "icon-chair (EAST)"; icon_state = "chair"; dir = 4},/turf/open/floor/plasteel{icon_state = "floorgrime"},/area/ruin/onehalf/drone_bay) +"bK" = (/obj/structure/girder,/turf/open/floor/plating/airless,/area/ruin/onehalf/hallway) +"bL" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/airless{icon_state = "damaged4"},/area/ruin/onehalf/hallway) +"bM" = (/obj/machinery/vending/coffee,/turf/open/floor/plasteel/airless{icon_state = "damaged4"},/area/ruin/onehalf/hallway) +"bN" = (/obj/machinery/vending/snack,/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/ruin/onehalf/hallway) +"bO" = (/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/disposal/bin,/turf/open/floor/plasteel/airless,/area/ruin/onehalf/hallway) +"bP" = (/obj/structure/girder/reinforced,/obj/item/stack/sheet/plasteel,/turf/open/floor/plating/airless,/area/ruin/onehalf/hallway) +"bQ" = (/obj/structure/girder/reinforced,/turf/open/floor/plating/airless,/area/ruin/onehalf/hallway) +"bR" = (/turf/closed/wall/r_wall,/area/ruin/onehalf/hallway) +"bS" = (/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/ruin/onehalf/hallway) +"bT" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/airless,/area/ruin/onehalf/hallway) +"bU" = (/turf/closed/wall/r_wall,/area/ruin/onehalf/bridge) +"bV" = (/obj/item/stack/sheet/metal,/turf/open/space,/area/space) +"bW" = (/turf/open/floor/plating/airless{broken = 1; icon_state = "platingdmg1"},/area/ruin/onehalf/hallway) +"bX" = (/obj/structure/disposalpipe/segment,/obj/item/stack/rods,/turf/open/floor/plasteel/airless{icon_state = "damaged5"},/area/ruin/onehalf/hallway) +"bY" = (/obj/structure/grille,/turf/open/floor/plating/airless,/area/ruin/onehalf/hallway) +"bZ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "bridge_onehalf"; name = "bridge blast door"},/turf/open/floor/plating,/area/ruin/onehalf/bridge) +"ca" = (/obj/structure/table/reinforced,/obj/item/device/flashlight/lamp,/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) +"cb" = (/obj/structure/table/reinforced,/obj/item/weapon/paper,/obj/item/weapon/pen,/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) +"cc" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) +"cd" = (/obj/machinery/light{dir = 1},/obj/structure/frame/computer,/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) +"ce" = (/obj/structure/frame/computer,/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) +"cf" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{cell_type = 2500; dir = 1; name = "Bridge APC"; pixel_y = 24},/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) +"cg" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/table/reinforced,/obj/item/stack/spacecash/c500{pixel_y = 8},/obj/item/stack/spacecash/c1000,/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) +"ch" = (/obj/structure/disposalpipe/junction{tag = "icon-pipe-j1 (NORTH)"; icon_state = "pipe-j1"; dir = 1},/obj/item/weapon/shard,/turf/open/floor/plating/airless{broken = 1; icon_state = "platingdmg2"},/area/ruin/onehalf/hallway) +"ci" = (/obj/structure/lattice,/obj/structure/disposalpipe/broken{tag = "icon-pipe-b (EAST)"; icon_state = "pipe-b"; dir = 4},/obj/structure/disposalpipe/broken{tag = "icon-pipe-b (WEST)"; icon_state = "pipe-b"; dir = 8},/obj/item/stack/rods,/turf/open/space,/area/ruin/onehalf/hallway) +"cj" = (/obj/structure/lattice,/obj/structure/disposalpipe/segment{dir = 4},/obj/item/weapon/shard{icon_state = "small"},/turf/open/space,/area/space) +"ck" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/poddoor/preopen{id = "bridge_onehalf"; name = "bridge blast door"},/turf/open/floor/plating,/area/ruin/onehalf/bridge) +"cl" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{amount = 12},/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) +"cm" = (/obj/structure/chair/office{dir = 8},/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) +"cn" = (/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) +"co" = (/obj/structure/chair/office{tag = "icon-chair (NORTH)"; icon_state = "chair"; dir = 1},/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) +"cp" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/table/reinforced,/obj/item/weapon/lighter,/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) +"cq" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "bridge_onehalf"; name = "bridge blast door"},/turf/open/floor/plating,/area/ruin/onehalf/bridge) +"cr" = (/obj/item/stack/rods,/turf/open/space,/area/space) +"cs" = (/obj/item/stack/sheet/plasteel{amount = 10},/obj/structure/lattice,/turf/open/space,/area/space) +"ct" = (/obj/structure/lattice,/obj/item/weapon/shard{icon_state = "medium"},/turf/open/space,/area/ruin/onehalf/hallway) +"cu" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/airless{icon_state = "damaged5"},/area/ruin/onehalf/hallway) +"cv" = (/obj/structure/girder/reinforced,/turf/open/floor/plating/airless,/area/ruin/onehalf/bridge) +"cw" = (/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/disposal/bin,/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) +"cx" = (/obj/item/stack/tile/plasteel,/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) +"cy" = (/obj/machinery/power/solar_control,/obj/structure/cable,/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) +"cz" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/door/poddoor/preopen{id = "bridge_onehalf"; name = "bridge blast door"},/turf/open/floor/plating,/area/ruin/onehalf/bridge) +"cA" = (/obj/item/stack/tile/wood,/turf/open/space,/area/space) +"cB" = (/turf/open/space,/area/ruin/onehalf/hallway) +"cC" = (/obj/structure/lattice,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/space,/area/ruin/onehalf/hallway) +"cD" = (/obj/structure/lattice,/obj/structure/disposalpipe/broken{tag = "icon-pipe-b (WEST)"; icon_state = "pipe-b"; dir = 8},/obj/structure/disposalpipe/broken{tag = "icon-pipe-b (NORTH)"; icon_state = "pipe-b"; dir = 1},/turf/open/space,/area/ruin/onehalf/hallway) +"cE" = (/obj/machinery/door/airlock/glass_command{name = "Bridge"},/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) +"cF" = (/obj/machinery/light/small,/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) +"cG" = (/obj/machinery/door/poddoor/preopen{id = "bridge_onehalf"; name = "bridge blast door"},/obj/machinery/door/airlock/glass_command{name = "Bridge"},/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) +"cH" = (/obj/item/weapon/crowbar/red,/obj/item/device/multitool,/turf/open/floor/plating,/area/ruin/onehalf/bridge) +"cI" = (/obj/structure/safe/floor,/obj/item/weapon/tank/internals/oxygen/red,/obj/item/clothing/mask/gas/syndicate,/obj/item/clothing/suit/space/hardsuit/syndi,/obj/item/weapon/reagent_containers/food/drinks/bottle/rum,/obj/item/weapon/reagent_containers/food/drinks/bottle/rum,/obj/item/weapon/folder/syndicate/mining,/turf/open/floor/plating,/area/ruin/onehalf/bridge) +"cJ" = (/obj/structure/chair/comfy/black{dir = 4},/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) +"cK" = (/obj/structure/lattice,/obj/item/stack/cable_coil/cut{amount = 2; dir = 2; icon_state = "coil_red2"},/turf/open/space,/area/ruin/onehalf/hallway) +"cL" = (/turf/open/floor/plating/airless{broken = 1; icon_state = "platingdmg2"},/area/ruin/onehalf/hallway) +"cM" = (/obj/machinery/light{dir = 8},/obj/machinery/vending/sovietsoda,/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) +"cN" = (/obj/item/stack/sheet/plasteel,/turf/open/space,/area/space) +"cO" = (/obj/structure/lattice,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/space,/area/ruin/onehalf/hallway) +"cP" = (/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/ruin/onehalf/hallway) +"cQ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ruin/onehalf/hallway) +"cR" = (/obj/structure/table/reinforced,/obj/machinery/recharger,/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) +"cS" = (/obj/structure/chair/office,/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) +"cT" = (/obj/machinery/button/door{id = "bridge_onehalf"; name = "Bridge Blast Door"; pixel_x = 32; pixel_y = 5},/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) +"cU" = (/obj/structure/table/reinforced,/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) +"cV" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable,/obj/machinery/door/poddoor/preopen{id = "bridge_onehalf"; name = "bridge blast door"},/turf/open/floor/plating,/area/ruin/onehalf/bridge) +"cW" = (/obj/structure/lattice,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/space,/area/space) +"cX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/airless{icon_state = "damaged5"},/area/ruin/onehalf/hallway) +"cY" = (/obj/structure/table/reinforced,/obj/item/device/flashlight,/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) +"cZ" = (/obj/structure/table/reinforced,/obj/item/weapon/ore/bluespace_crystal,/obj/item/weapon/coin/plasma,/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) +"da" = (/obj/structure/closet/firecloset/full,/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) +"db" = (/obj/machinery/light,/obj/structure/table/reinforced,/obj/item/weapon/storage/firstaid/regular,/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) +"dc" = (/obj/structure/grille{density = 0; icon_state = "brokengrille"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/airless{broken = 1; icon_state = "platingdmg1"},/area/ruin/onehalf/hallway) +"dd" = (/obj/structure/grille,/obj/item/weapon/shard,/turf/open/floor/plating/airless{icon_state = "platingdmg3"},/area/ruin/onehalf/hallway) +"de" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/poddoor/preopen{id = "bridge_onehalf"; name = "bridge blast door"},/turf/open/floor/plating,/area/ruin/onehalf/bridge) +"df" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "bridge_onehalf"; name = "bridge blast door"},/turf/open/floor/plating,/area/ruin/onehalf/bridge) +"dg" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "bridge_onehalf"; name = "bridge blast door"},/turf/open/floor/plating,/area/ruin/onehalf/bridge) +"dh" = (/obj/structure/lattice,/obj/item/stack/sheet/plasteel,/turf/open/space,/area/space) +"di" = (/obj/structure/lattice,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/item/weapon/shard{icon_state = "medium"},/turf/open/space,/area/space) +"dj" = (/obj/structure/lattice,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/item/stack/rods,/turf/open/space,/area/space) +"dk" = (/obj/structure/lattice,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/space,/area/space) +"dl" = (/obj/item/stack/cable_coil/cut{amount = 2; dir = 2; icon_state = "coil_red2"},/turf/open/space,/area/space) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabacacacacacacacacacadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaeacafagagagagagagahagagaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaajakakakagalamanagaoapaoagaqarasaratarauaravaraaaaaaaaaaaa +aaaaawaxaxayazagaAamaBagaCapaoagaDaraEaraFaraEaraEarawaraGaraaaa +aaaaaaaHaIaxaJagaKaLaMagaoapaoagaqaraNaraOaraParaQaraaaraRaraaaa +aaaaaSajaxaTaUagagaVagagagaWagagaXaYaZbaaZbbaZbcbdarararbeararaa +aaaaawbfbgbhbibjbjbkbibiblbjbmbnbobpbqbpbqbpbqbpbqbpbrbsbtbubeaa +aaaaaabvbwbwbxbxbwbybxbxbzbAbBbCbpbpbDbEbDbpbDbEbFbGarbHbIbJbeaa +aaaaaabKajakbLbMbNbObPbQbRbSbTbUbUbUbUbUbUbUbUbUbUbUararbeararaa +aaaaaaaabVbWbKakbQbRajawbRbWbXbYaabZcacbcccdcecfcgbUawaaaaaaaaaa +aaaaaaaaaaaaaaaabQaaaabVaxaxchcicjckclcmcncocncncpcqadaaaaaaaaaa +aaaaaaaaaaaaaacrajcsaaaaajctcucvbUbUcwcncxcncncncyczaiaaaaaaaaaa +aaaaaaaaaaaaaaaaaaawcAaacBcCcDcEcFcGcncxcHcIcncJceczaiaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaacrawajcKcLbUbUbUcMcncncncncnceczaiaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaacNcAaxcOcPcQawbZcRcmcncScncTcUcVcWaaaaaaaaaa +aaaaaaaaaaaaaaaaaacraaaabRcXaJcQaabZcYcZdacececndbbUaiaaaaaaaaaa +aaaaaaaaaaaaaaaaaabPawcLbQdcddbUbUbUbUdedfdfdfdgbUbUaiaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaadhdidjacacacacacdkacacacdkacacafaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaadlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +"} diff --git a/_maps/RandomRuins/SpaceRuins/originalcontent.dmm b/_maps/RandomRuins/SpaceRuins/originalcontent.dmm new file mode 100644 index 0000000..e4eaf7c --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/originalcontent.dmm @@ -0,0 +1,175 @@ +"aa" = (/turf/open/space,/area/space) +"ab" = (/obj/structure/fluff/paper/corner,/turf/open/space,/area/space) +"ac" = (/obj/structure/fluff/paper,/turf/open/space,/area/space) +"ad" = (/obj/structure/fluff/paper/corner{tag = "icon-papercorner (WEST)"; icon_state = "papercorner"; dir = 8},/turf/open/space,/area/space) +"ae" = (/obj/structure/fluff/paper{tag = "icon-paper (EAST)"; icon_state = "paper"; dir = 4},/turf/open/space,/area/space) +"af" = (/turf/closed/indestructible/paper,/area/ruin/powered) +"ag" = (/obj/structure/fluff/paper{tag = "icon-paper (SOUTHWEST)"; icon_state = "paper"; dir = 10},/turf/open/space,/area/space) +"ah" = (/obj/structure/fluff/paper/corner,/obj/structure/fluff/paper/corner{tag = "icon-papercorner (WEST)"; icon_state = "papercorner"; dir = 8},/turf/open/space,/area/space) +"ai" = (/obj/structure/fluff/paper{tag = "icon-paper (SOUTHEAST)"; icon_state = "paper"; dir = 6},/turf/open/space,/area/space) +"aj" = (/obj/machinery/door/airlock/freezer{name = "airlock"; opacity = 0},/obj/structure/fluff/paper{tag = "icon-paper (WEST)"; icon_state = "paper"; dir = 8},/obj/structure/fluff/paper{tag = "icon-paper (EAST)"; icon_state = "paper"; dir = 4},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"ak" = (/obj/structure/fluff/paper{tag = "icon-paper (NORTHWEST)"; icon_state = "paper"; dir = 9},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"al" = (/obj/structure/fluff/paper{tag = "icon-paper (NORTH)"; icon_state = "paper"; dir = 1},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"am" = (/obj/structure/fluff/paper{tag = "icon-paper (NORTHEAST)"; icon_state = "paper"; dir = 5},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"an" = (/obj/structure/fluff/paper{tag = "icon-paper (EAST)"; icon_state = "paper"; dir = 4},/obj/structure/fluff/paper{tag = "icon-paper (WEST)"; icon_state = "paper"; dir = 8},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"ao" = (/obj/structure/fluff/paper/corner{tag = "icon-papercorner (EAST)"; icon_state = "papercorner"; dir = 4},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"ap" = (/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aq" = (/obj/structure/fluff/paper{tag = "icon-paper (EAST)"; icon_state = "paper"; dir = 4},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"ar" = (/obj/structure/fluff/paper{tag = "icon-paper (WEST)"; icon_state = "paper"; dir = 8},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"as" = (/obj/item/weapon/paper/crumpled{desc = "Various scrawled out drawings and sketches reside on the paper, apparently he didn't much care for these drawings."},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"at" = (/mob/living/simple_animal/hostile/stickman,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"au" = (/obj/structure/fluff/paper/stack{tag = "icon-paperstack (EAST)"; icon_state = "paperstack"; dir = 4},/obj/structure/fluff/paper/corner{tag = "icon-papercorner (NORTH)"; icon_state = "papercorner"; dir = 1},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"av" = (/obj/structure/fluff/paper/corner{tag = "icon-papercorner (NORTH)"; icon_state = "papercorner"; dir = 1},/obj/structure/fluff/paper/corner{tag = "icon-papercorner (EAST)"; icon_state = "papercorner"; dir = 4},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aw" = (/obj/structure/fluff/paper{tag = "icon-paper (WEST)"; icon_state = "paper"; dir = 8},/turf/open/space,/area/space) +"ax" = (/obj/structure/fluff/paper/corner{tag = "icon-papercorner (NORTH)"; icon_state = "papercorner"; dir = 1},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"ay" = (/obj/structure/fluff/paper{tag = "icon-paper (SOUTHWEST)"; icon_state = "paper"; dir = 10},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"az" = (/obj/structure/fluff/paper,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aA" = (/obj/structure/fluff/paper/corner{tag = "icon-papercorner (WEST)"; icon_state = "papercorner"; dir = 8},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aB" = (/obj/structure/fluff/paper/stack,/obj/structure/fluff/paper/stack{tag = "icon-paperstack (NORTH)"; icon_state = "paperstack"; dir = 1},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aC" = (/obj/structure/fluff/paper{tag = "icon-paper (NORTHEAST)"; icon_state = "paper"; dir = 5},/obj/structure/fluff/paper{tag = "icon-paper (NORTHWEST)"; icon_state = "paper"; dir = 9},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aD" = (/obj/structure/fluff/paper/corner{tag = "icon-papercorner (WEST)"; icon_state = "papercorner"; dir = 8},/obj/structure/fluff/paper/corner,/mob/living/simple_animal/hostile/stickman,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aE" = (/obj/structure/fluff/paper{tag = "icon-paper (WEST)"; icon_state = "paper"; dir = 8},/obj/structure/fluff/paper/corner{tag = "icon-papercorner (NORTH)"; icon_state = "papercorner"; dir = 1},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aF" = (/obj/structure/fluff/paper{tag = "icon-paper (WEST)"; icon_state = "paper"; dir = 8},/obj/structure/fluff/paper{tag = "icon-paper (EAST)"; icon_state = "paper"; dir = 4},/obj/structure/barricade/wooden,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aG" = (/obj/structure/fluff/paper{tag = "icon-paper (SOUTHWEST)"; icon_state = "paper"; dir = 10},/obj/structure/fluff/paper/corner{tag = "icon-papercorner (NORTH)"; icon_state = "papercorner"; dir = 1},/obj/structure/barricade/wooden,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aH" = (/obj/structure/fluff/paper/corner{tag = "icon-papercorner (WEST)"; icon_state = "papercorner"; dir = 8},/obj/structure/fluff/paper{tag = "icon-paper (NORTHEAST)"; icon_state = "paper"; dir = 5},/obj/structure/barricade/wooden,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aI" = (/obj/structure/fluff/paper/stack{tag = "icon-paperstack (NORTH)"; icon_state = "paperstack"; dir = 1},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aJ" = (/obj/structure/fluff/paper/corner{tag = "icon-papercorner (NORTH)"; icon_state = "papercorner"; dir = 1},/obj/structure/fluff/paper/corner,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aK" = (/obj/structure/fluff/paper{tag = "icon-paper (NORTH)"; icon_state = "paper"; dir = 1},/obj/structure/fluff/paper,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aL" = (/obj/structure/fluff/paper{tag = "icon-paper (NORTH)"; icon_state = "paper"; dir = 1},/obj/structure/fluff/paper/corner{tag = "icon-papercorner (WEST)"; icon_state = "papercorner"; dir = 8},/mob/living/simple_animal/hostile/stickman,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aM" = (/obj/structure/fluff/paper/stack{tag = "icon-paperstack (SOUTHWEST)"; icon_state = "paperstack"; dir = 10},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aN" = (/obj/structure/fluff/paper/corner{tag = "icon-papercorner (WEST)"; icon_state = "papercorner"; dir = 8},/obj/structure/fluff/paper{tag = "icon-paper (EAST)"; icon_state = "paper"; dir = 4},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aO" = (/obj/structure/fluff/paper,/mob/living/simple_animal/hostile/stickman/dog,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aP" = (/obj/structure/fluff/paper{tag = "icon-paper (WEST)"; icon_state = "paper"; dir = 8},/obj/structure/fluff/paper{tag = "icon-paper (EAST)"; icon_state = "paper"; dir = 4},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aQ" = (/obj/structure/fluff/paper{tag = "icon-paper (SOUTHWEST)"; icon_state = "paper"; dir = 10},/obj/structure/fluff/paper/corner{tag = "icon-papercorner (NORTH)"; icon_state = "papercorner"; dir = 1},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aR" = (/obj/structure/fluff/paper{tag = "icon-paper (NORTH)"; icon_state = "paper"; dir = 1},/obj/structure/fluff/paper/corner{tag = "icon-papercorner (WEST)"; icon_state = "papercorner"; dir = 8},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aS" = (/obj/structure/fluff/paper/corner,/mob/living/simple_animal/hostile/stickman/dog,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aT" = (/obj/structure/fluff/paper{tag = "icon-paper (SOUTHEAST)"; icon_state = "paper"; dir = 6},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aU" = (/obj/structure/fluff/paper/corner{tag = "icon-papercorner (NORTH)"; icon_state = "papercorner"; dir = 1},/obj/structure/fluff/paper,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aV" = (/obj/structure/fluff/paper{tag = "icon-paper (SOUTHEAST)"; icon_state = "paper"; dir = 6},/obj/structure/fluff/paper/corner{tag = "icon-papercorner (EAST)"; icon_state = "papercorner"; dir = 4},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aW" = (/obj/structure/fluff/paper{tag = "icon-paper (NORTH)"; icon_state = "paper"; dir = 1},/obj/structure/fluff/paper/stack,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aX" = (/obj/structure/fluff/paper/stack,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aY" = (/obj/structure/fluff/paper/corner,/obj/structure/fluff/paper/corner{tag = "icon-papercorner (EAST)"; icon_state = "papercorner"; dir = 4},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"aZ" = (/obj/structure/fluff/paper/corner{tag = "icon-papercorner (WEST)"; icon_state = "papercorner"; dir = 8},/obj/structure/fluff/paper/corner{tag = "icon-papercorner (NORTH)"; icon_state = "papercorner"; dir = 1},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"ba" = (/obj/structure/fluff/paper{tag = "icon-paper (NORTH)"; icon_state = "paper"; dir = 1},/mob/living/simple_animal/hostile/stickman/dog,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bb" = (/obj/structure/fluff/paper/corner{tag = "icon-papercorner (NORTH)"; icon_state = "papercorner"; dir = 1},/obj/structure/fluff/paper/corner{tag = "icon-papercorner (WEST)"; icon_state = "papercorner"; dir = 8},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bc" = (/obj/structure/fluff/paper{tag = "icon-paper (NORTHWEST)"; icon_state = "paper"; dir = 9},/turf/open/space,/area/space) +"bd" = (/obj/structure/fluff/paper{tag = "icon-paper (NORTH)"; icon_state = "paper"; dir = 1},/turf/open/space,/area/space) +"be" = (/obj/structure/fluff/paper/corner{tag = "icon-papercorner (EAST)"; icon_state = "papercorner"; dir = 4},/turf/open/space,/area/space) +"bf" = (/obj/structure/fluff/paper{tag = "icon-paper (EAST)"; icon_state = "paper"; dir = 4},/obj/structure/fluff/paper/stack{tag = "icon-paperstack (NORTHWEST)"; icon_state = "paperstack"; dir = 9},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bg" = (/obj/structure/fluff/paper{tag = "icon-paper (WEST)"; icon_state = "paper"; dir = 8},/obj/item/toy/crayon/yellow,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bh" = (/obj/structure/fluff/paper{tag = "icon-paper (NORTH)"; icon_state = "paper"; dir = 1},/obj/item/toy/crayon/red,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bi" = (/obj/structure/fluff/paper{tag = "icon-paper (NORTH)"; icon_state = "paper"; dir = 1},/obj/structure/fluff/paper/corner,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bj" = (/obj/structure/fluff/paper,/obj/structure/fluff/paper/corner{tag = "icon-papercorner (EAST)"; icon_state = "papercorner"; dir = 4},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bk" = (/obj/structure/fluff/paper/corner{tag = "icon-papercorner (WEST)"; icon_state = "papercorner"; dir = 8},/obj/structure/fluff/paper/corner{tag = "icon-papercorner (NORTH)"; icon_state = "papercorner"; dir = 1},/mob/living/simple_animal/hostile/stickman,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bl" = (/obj/structure/fluff/paper/stack{tag = "icon-paperstack (NORTHWEST)"; icon_state = "paperstack"; dir = 9},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bm" = (/obj/structure/fluff/paper,/mob/living/simple_animal/hostile/stickman,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bn" = (/obj/structure/fluff/paper{tag = "icon-paper (NORTHWEST)"; icon_state = "paper"; dir = 9},/obj/structure/fluff/paper{tag = "icon-paper (SOUTHWEST)"; icon_state = "paper"; dir = 10},/turf/open/space,/area/space) +"bo" = (/obj/structure/fluff/paper/corner{tag = "icon-papercorner (EAST)"; icon_state = "papercorner"; dir = 4},/obj/structure/fluff/paper/corner{tag = "icon-papercorner (WEST)"; icon_state = "papercorner"; dir = 8},/turf/open/space,/area/space) +"bp" = (/obj/structure/fluff/paper{tag = "icon-paper (WEST)"; icon_state = "paper"; dir = 8},/obj/item/toy/crayon/rainbow,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bq" = (/obj/structure/fluff/paper{tag = "icon-paper (EAST)"; icon_state = "paper"; dir = 4},/obj/structure/fluff/paper/stack{tag = "icon-paperstack (EAST)"; icon_state = "paperstack"; dir = 4},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"br" = (/obj/structure/fluff/paper{tag = "icon-paper (WEST)"; icon_state = "paper"; dir = 8},/obj/structure/fluff/paper/stack{tag = "icon-paperstack (EAST)"; icon_state = "paperstack"; dir = 4},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bs" = (/obj/item/toy/crayon/spraycan,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bt" = (/obj/item/weapon/storage/crayons,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bu" = (/mob/living/simple_animal/hostile/stickman/ranged,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bv" = (/obj/structure/fluff/paper/corner{tag = "icon-papercorner (WEST)"; icon_state = "papercorner"; dir = 8},/obj/structure/fluff/paper{tag = "icon-paper (EAST)"; icon_state = "paper"; dir = 4},/obj/structure/fluff/paper/stack{tag = "icon-paperstack (NORTH)"; icon_state = "paperstack"; dir = 1},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bw" = (/obj/structure/fluff/paper/corner{tag = "icon-papercorner (NORTH)"; icon_state = "papercorner"; dir = 1},/turf/open/space,/area/space) +"bx" = (/obj/structure/fluff/paper{tag = "icon-paper (NORTHEAST)"; icon_state = "paper"; dir = 5},/turf/open/space,/area/space) +"by" = (/obj/structure/fluff/paper/corner,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bz" = (/obj/structure/fluff/paper/stack{tag = "icon-paperstack (NORTHWEST)"; icon_state = "paperstack"; dir = 9},/obj/structure/fluff/paper,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bA" = (/obj/item/device/toner,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bB" = (/obj/structure/easel,/obj/item/weapon/paper/pamphlet{icon = 'icons/obj/fluff.dmi'; icon_state = "painting4"; info = "This picture depicts a crudely-drawn stickman firing a crudely-drawn gun."; name = "Painting - 'BANG' "},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bC" = (/obj/item/toy/crayon/yellow,/obj/structure/fluff/paper{tag = "icon-paper (WEST)"; icon_state = "paper"; dir = 8},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bD" = (/obj/structure/fluff/paper{tag = "icon-paper (EAST)"; icon_state = "paper"; dir = 4},/obj/structure/fluff/paper/corner{tag = "icon-papercorner (WEST)"; icon_state = "papercorner"; dir = 8},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bE" = (/mob/living/simple_animal/hostile/stickman/dog,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bF" = (/obj/structure/fluff/paper/stack{tag = "icon-paperstack (NORTH)"; icon_state = "paperstack"; dir = 1},/obj/structure/fluff/paper/stack,/obj/structure/fluff/paper/corner{tag = "icon-papercorner (NORTH)"; icon_state = "papercorner"; dir = 1},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bG" = (/obj/item/toy/crayon/blue,/mob/living/simple_animal/hostile/stickman/ranged,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bH" = (/obj/structure/fluff/paper{tag = "icon-paper (EAST)"; icon_state = "paper"; dir = 4},/obj/item/toy/crayon/yellow,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bI" = (/obj/structure/fluff/paper{tag = "icon-paper (NORTHWEST)"; icon_state = "paper"; dir = 9},/obj/structure/closet/crate/bin,/obj/item/weapon/paper/crumpled{desc = "Various scrawled out drawings and sketches reside on the paper, apparently he didn't much care for these drawings."},/obj/item/weapon/paper/crumpled{desc = "Various scrawled out drawings and sketches reside on the paper, apparently he didn't much care for these drawings."},/obj/item/weapon/paper/crumpled{desc = "Various scrawled out drawings and sketches reside on the paper, apparently he didn't much care for these drawings."},/obj/item/device/gps{gpstag = "Pulpy Signal"},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bJ" = (/obj/structure/fluff/paper{tag = "icon-paper (NORTH)"; icon_state = "paper"; dir = 1},/obj/structure/easel,/obj/item/weapon/paper/pamphlet{icon = 'icons/obj/fluff.dmi'; icon_state = "painting1"; info = "This picture depicts a sunny day on a lush hillside, set under a shaded tree."; name = "Painting - 'Treeside' "},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bK" = (/obj/structure/fluff/paper{tag = "icon-paper (NORTHEAST)"; icon_state = "paper"; dir = 5},/obj/structure/table/wood,/obj/item/weapon/storage/crayons,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bL" = (/obj/structure/fluff/paper{tag = "icon-paper (EAST)"; icon_state = "paper"; dir = 4},/obj/structure/fluff/paper/stack{tag = "icon-paperstack (SOUTHEAST)"; icon_state = "paperstack"; dir = 6},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bM" = (/obj/item/toy/crayon/purple,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bN" = (/obj/structure/fluff/paper/corner,/obj/structure/fluff/paper/corner{tag = "icon-papercorner (NORTH)"; icon_state = "papercorner"; dir = 1},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bO" = (/obj/machinery/door/airlock/freezer{name = "airlock"; opacity = 0},/obj/structure/fluff/paper{tag = "icon-paper (NORTH)"; icon_state = "paper"; dir = 1},/obj/structure/fluff/paper,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bP" = (/obj/structure/fluff/paper{tag = "icon-paper (NORTH)"; icon_state = "paper"; dir = 1},/obj/structure/fluff/paper/corner{tag = "icon-papercorner (WEST)"; icon_state = "papercorner"; dir = 8},/obj/structure/fluff/paper/stack{tag = "icon-paperstack (EAST)"; icon_state = "paperstack"; dir = 4},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bQ" = (/obj/structure/fluff/paper{tag = "icon-paper (NORTH)"; icon_state = "paper"; dir = 1},/obj/structure/fluff/paper/stack,/obj/structure/fluff/paper/stack{tag = "icon-paperstack (NORTH)"; icon_state = "paperstack"; dir = 1},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bR" = (/obj/structure/fluff/paper/stack{tag = "icon-paperstack (EAST)"; icon_state = "paperstack"; dir = 4},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bS" = (/obj/structure/fluff/paper/stack{tag = "icon-paperstack (NORTH)"; icon_state = "paperstack"; dir = 1},/obj/structure/fluff/paper/stack,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bT" = (/obj/structure/fluff/paper/corner{tag = "icon-papercorner (NORTH)"; icon_state = "papercorner"; dir = 1},/obj/structure/fluff/paper/stack{tag = "icon-paperstack (SOUTHEAST)"; icon_state = "paperstack"; dir = 6},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bU" = (/obj/structure/fluff/paper{tag = "icon-paper (EAST)"; icon_state = "paper"; dir = 4},/mob/living/simple_animal/hostile/stickman,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bV" = (/obj/item/toy/crayon/yellow,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bW" = (/obj/structure/fluff/paper{tag = "icon-paper (WEST)"; icon_state = "paper"; dir = 8},/obj/structure/easel,/obj/item/weapon/paper/pamphlet{icon = 'icons/obj/fluff.dmi'; icon_state = "painting3"; info = "This picture depicts a smiling clown. Something doesn't feel right about this.."; name = "Painting - 'Pennywise' "},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bX" = (/obj/item/toy/crayon/blue,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bY" = (/obj/item/toy/crayon/red,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"bZ" = (/obj/structure/fluff/paper{tag = "icon-paper (EAST)"; icon_state = "paper"; dir = 4},/obj/structure/bed,/obj/item/weapon/bedsheet/rainbow,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"ca" = (/obj/structure/fluff/paper{tag = "icon-paper (SOUTHWEST)"; icon_state = "paper"; dir = 10},/obj/structure/table/wood,/obj/item/weapon/storage/crayons,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"cb" = (/obj/structure/fluff/paper/stack{tag = "icon-paperstack (NORTHWEST)"; icon_state = "paperstack"; dir = 9},/obj/item/toy/crayon/purple,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"cc" = (/mob/living/simple_animal/hostile/boss/paper_wizard,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"cd" = (/obj/structure/fluff/paper{tag = "icon-paper (EAST)"; icon_state = "paper"; dir = 4},/obj/structure/table/wood,/obj/item/toy/crayon/rainbow,/obj/item/toy/crayon/spraycan,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"ce" = (/obj/structure/fluff/paper{tag = "icon-paper (EAST)"; icon_state = "paper"; dir = 4},/obj/structure/fluff/paper/corner{tag = "icon-papercorner (EAST)"; icon_state = "papercorner"; dir = 4},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"cf" = (/obj/structure/fluff/paper{tag = "icon-paper (WEST)"; icon_state = "paper"; dir = 8},/obj/structure/fluff/paper/stack,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"cg" = (/obj/structure/fluff/paper{tag = "icon-paper (EAST)"; icon_state = "paper"; dir = 4},/obj/structure/table/wood,/obj/item/weapon/paper_bin,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"ch" = (/obj/structure/fluff/paper,/obj/item/weapon/paper/crumpled{desc = "Various scrawled out drawings and sketches reside on the paper, apparently he didn't much care for these drawings."},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"ci" = (/obj/structure/fluff/paper,/obj/structure/fluff/paper/corner{tag = "icon-papercorner (NORTH)"; icon_state = "papercorner"; dir = 1},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"cj" = (/obj/structure/fluff/paper{tag = "icon-paper (NORTH)"; icon_state = "paper"; dir = 1},/mob/living/simple_animal/hostile/stickman,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"ck" = (/obj/structure/fluff/paper{tag = "icon-paper (SOUTHEAST)"; icon_state = "paper"; dir = 6},/obj/structure/fluff/paper{tag = "icon-paper (NORTHEAST)"; icon_state = "paper"; dir = 5},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"cl" = (/obj/structure/fluff/paper/corner,/obj/structure/fluff/paper/stack{tag = "icon-paperstack (EAST)"; icon_state = "paperstack"; dir = 4},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"cm" = (/obj/structure/fluff/paper,/obj/structure/table/wood,/obj/item/weapon/storage/crayons,/obj/item/weapon/storage/crayons,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"cn" = (/obj/structure/fluff/paper{tag = "icon-paper (SOUTHEAST)"; icon_state = "paper"; dir = 6},/obj/structure/table/wood,/obj/item/weapon/canvas/twentythreeXtwentythree,/obj/item/weapon/canvas,/obj/item/weapon/canvas/nineteenXnineteen,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"co" = (/obj/structure/fluff/paper,/obj/structure/fluff/paper/stack{tag = "icon-paperstack (NORTHWEST)"; icon_state = "paperstack"; dir = 9},/obj/item/toy/crayon/blue,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"cp" = (/obj/structure/fluff/paper{tag = "icon-paper (SOUTHWEST)"; icon_state = "paper"; dir = 10},/obj/machinery/photocopier,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"cq" = (/obj/structure/fluff/paper,/obj/structure/table/wood,/obj/item/weapon/storage/crayons,/obj/item/weapon/pen/fourcolor,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"cr" = (/obj/structure/fluff/paper,/obj/structure/easel,/obj/item/weapon/paper/pamphlet{icon = 'icons/obj/fluff.dmi'; icon_state = "painting2"; info = "This picture depicts a man yelling on a bridge for no apparent reason."; name = "Painting - 'Hands-On-Face' "},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"cs" = (/obj/structure/fluff/paper,/obj/structure/fluff/paper{tag = "icon-paper (NORTH)"; icon_state = "paper"; dir = 1},/mob/living/simple_animal/hostile/stickman/dog,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"ct" = (/obj/structure/fluff/paper,/obj/structure/fluff/paper{tag = "icon-paper (NORTH)"; icon_state = "paper"; dir = 1},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"cu" = (/obj/structure/fluff/paper{tag = "icon-paper (WEST)"; icon_state = "paper"; dir = 8},/obj/structure/fluff/paper/stack{tag = "icon-paperstack (SOUTHEAST)"; icon_state = "paperstack"; dir = 6},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"cv" = (/obj/structure/fluff/paper,/obj/structure/fluff/paper/stack{tag = "icon-paperstack (SOUTHEAST)"; icon_state = "paperstack"; dir = 6},/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) +"cw" = (/obj/structure/fluff/paper{tag = "icon-paper (NORTH)"; icon_state = "paper"; dir = 1},/mob/living/simple_animal/hostile/stickman/ranged,/turf/open/indestructible{desc = "A floor made of invulernable notebook paper."; icon_state = "paperfloor"; name = "notebook floor"},/area/ruin/powered) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacadaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafafafafafafafafafagacacacacahacadaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacaiafafafafafafafafafafafafafafajafagadaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacaiafafafafafafafafafakalalalalamafanafafagadaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafafafafafafafafakalalalaoapapapapaqafajafafafagadaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaabacaiafafafafafafafafarapasapapapatapapaualavamafafafawaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafafafafafafafafafafarapapapapapapapapapapapaxamafafagacadaa +aaaaaaaaaaaaaaaaaaaaaaabacacaiafafafafafafafafafafayazazaAaBapapapapapapapapaqafafafafawaa +aaaaaaaaaaaaaaaaaaabacaiafafafafafafafafaCafafafafafafafayaDazazaAapapatapapaqafafafafawaa +aaaaaaaaaaaaaaaaaaaeafafafafafafafafafafaEamafafafafafafafaFafafayaAapasapapaxamafafafagad +aaaaaaaaaaaaaaabacaiafafafafafafafakalalaoaqafafafafafafafaGaHafafarapapapapapaqafafafafaw +aaaaaaaaaaaaaaaeafafafafafafafafafayazaAaIaJaKaLalalamafafafanafafayazaAapaMapaqafafafafaw +aaaaaaaaaaaaaaaeafafafafafafafafafafafayazaNafayazaOaNafafafanafafafafayaAapapaxamafafafaw +aaaaaaaaaaaaaaaeafafafafafafafafafafafafafaPafafafafaQaRamafanafafafafafarapaSazaTafafafaw +aaaaaaaaaaaaabaiafafafafafafafafafafafafafaEalamafafafayaUaKaVafafafafafayazaTafafafafafaw +aaaaaaaaabacaiafafafafakalaWalamafafafafafaraXaqafafafafafafafafafafafafafafafafafafafafaw +aaaaaaaaaeafafafafafakaYazazazaZalbaamafafayazbbalamafafafafafafafafafafafafafafafafbcbdbe +aaaaaaaaaeafafafafafaraqafafafayazaAaqafafafafarapbfafafafakalalalamafafafafafafafafawaaaa +aaaaabacaiafafafafafaraqafafafafafbgaxalamafafayazaZbhalbibjazazazbbalamafafafafafafawaaaa +abacaiafafafafafafafaybkamafafafafarapblaxamafafafayazbmaTafafafafayazbbalamafafafbnboaaaa +aeafafafafafafafafafafbpbqafafafakaoapapapaxamafafafafafafafafafafafafbrbsaqafafafafawaaaa +aeafafafafafafafafafakaYaTafakalaoblapbtapbuaxalalalalalalalamafafafafayazbvafafafafawaaaa +bwbdbxafafafafafafafaraqafafarapapapapapapbyazbzaAapapapaXapaqafafafafafafaEalamafafawaaaa +aaaabwbdbdbdbxafafafaraqafafarapapbuapapapaqafafarapaIapapapaqafafafafafafarbuaqafafagaaaa +aaaaaaaaaaaaaeafafafaraqafafarapapapbAapbBaqafafbCapbyazazazaTafafafafafafayazbDafafafawaa +aaaaaaaaaaaaaeafafafaraqafafayaAapapbEapapbFalalaobGbHafafafafafbIbJbKafafafafanafafafawaa +aaaaaaaaaaaabwbxafafarbLafafafarapaMapapapapasbMapapbNbObPalbQalaobAaqafafafafanafafafawaa +aaaaaaaaaaaaaaaeafafaraqafafafayazazaAapapapbRapapbMaqafayaAapbSbMapbTamafafafanafafafawaa +aaaaaaaaaaaaaaaeafafarbUafafafafafafarapbubtapapbVapaqafafbWapbXbtbYapbZafafafanafafafawaa +aaaaaaaaaaaaaaaeafafaraxamafafafafafayazazazazaAapapaxamafcaaAapcbccapcdafafakceafafafawaa +aaaaaaaaaaaaaaaeafafarapaqafafafafafafafafafafayazazazaNafafcfbRapapapcgafafarbqafafafawaa +aaaaaaaaaaaaaaaeafafaychciaRcjalamafafafafafafafafafafaQckafarapapclcmcnafafaraqafafafawaa +aaaaaaaaaaaaaabwbxafafafafaycoazaZalalamafafafafafafafafafafcpcqcraTafafafakaYaTafafafawaa +aaaaaaaaaaaaaaaaaeafafafafafafafayazazaZalalalbicsctctaRamafafafafafafafafcuaqafafafafawaa +aaaaaaaaaaaaaaaabwbxafafafafafafafafafayazazcvaTafafafayciaRalamafafakalcwaYaTafafafafawaa +aaaaaaaaaaaaaaaaaaaeafafafafafafafafafafafafafafafafafafafayazaZalalaoapapaqafafafafbcbeaa +aaaaaaaaaaaaaaaaaaaeafafafafbcbdbdbdbdbxafafafafafafafafafafafayazazazazazaTafafafafawaaaa +aaaaaaaaaaaaaaaaaaaeafafafafawaaaaaaaaaeafafafafafafafafafafafafafafafafafafafafafafawaaaa +aaaaaaaaaaaaaaaaaaaeafafafafawaaaaaaaabwbdbdbdbdbdbdbdbdbdbdbdbdbxafafafafafafbcbdbdbeaaaa +aaaaaaaaaaaaaaaaaabwbxafafbcbeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwbdbdbdbdbdbdbeaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaeafafawaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaeafafawaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaabwbdbdbeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +"} diff --git a/_maps/RandomRuins/SpaceRuins/shuttlerelic.dmm b/_maps/RandomRuins/SpaceRuins/shuttlerelic.dmm new file mode 100644 index 0000000..00fd844 --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/shuttlerelic.dmm @@ -0,0 +1,508 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/open/space, +/area/space) +"b" = ( +/turf/open/space, +/turf/closed/indestructible/oldshuttle/corner{ + tag = "icon-corner (WEST)"; + icon_state = "corner"; + dir = 8 + }, +/area/ruin/powered) +"c" = ( +/turf/closed/indestructible/oldshuttle, +/area/ruin/powered) +"d" = ( +/obj/machinery/door/airlock/glass, +/turf/open/floor/oldshuttle{ + baseturf = /turf/open/space; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15" + }, +/area/ruin/powered) +"e" = ( +/turf/open/space, +/turf/closed/indestructible/oldshuttle/corner, +/area/ruin/powered) +"f" = ( +/turf/open/floor/oldshuttle{ + baseturf = /turf/open/space; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15" + }, +/turf/closed/indestructible/oldshuttle/corner{ + tag = "icon-corner (NORTH)"; + icon_state = "corner"; + dir = 1 + }, +/area/ruin/powered) +"g" = ( +/turf/open/floor/oldshuttle{ + baseturf = /turf/open/space; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15" + }, +/area/ruin/powered) +"h" = ( +/turf/open/floor/oldshuttle{ + baseturf = /turf/open/space; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15" + }, +/turf/closed/indestructible/oldshuttle/corner{ + tag = "icon-corner (EAST)"; + icon_state = "corner"; + dir = 4 + }, +/area/ruin/powered) +"i" = ( +/obj/structure/closet{ + icon_state = "oldcloset"; + name = "strange closet" + }, +/turf/open/floor/oldshuttle{ + baseturf = /turf/open/space; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15" + }, +/area/ruin/powered) +"j" = ( +/obj/structure/shuttle/engine/propulsion/burst{ + tag = "icon-propulsion (NORTH)"; + icon_state = "propulsion"; + dir = 1 + }, +/turf/open/space, +/area/ruin/powered) +"k" = ( +/mob/living/simple_animal/hostile/retaliate/spaceman, +/turf/open/floor/oldshuttle{ + baseturf = /turf/open/space; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15" + }, +/area/ruin/powered) +"l" = ( +/turf/closed/indestructible/oldshuttle{ + tag = "icon-orange"; + icon_state = "orange" + }, +/area/ruin/powered) +"m" = ( +/obj/structure/chair/old{ + tag = "icon-chairold (NORTH)"; + icon_state = "chairold"; + dir = 1 + }, +/turf/open/floor/oldshuttle{ + baseturf = /turf/open/space; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15" + }, +/area/ruin/powered) +"n" = ( +/obj/structure/chair/old{ + tag = "icon-chairold (NORTH)"; + icon_state = "chairold"; + dir = 1 + }, +/obj/item/weapon/crowbar/large{ + desc = "It's a big crowbar. It doesn't fit in your pockets, because it's big. It feels oddly heavy.."; + force = 20; + name = "heavy crowbar" + }, +/turf/open/floor/oldshuttle{ + baseturf = /turf/open/space; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15" + }, +/area/ruin/powered) +"o" = ( +/obj/structure/chair/old{ + tag = "icon-chairold (NORTH)"; + icon_state = "chairold"; + dir = 1 + }, +/mob/living/simple_animal/hostile/retaliate/spaceman, +/turf/open/floor/oldshuttle{ + baseturf = /turf/open/space; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15" + }, +/area/ruin/powered) +"p" = ( +/turf/open/floor/oldshuttle{ + baseturf = /turf/open/space; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15" + }, +/turf/closed/indestructible/oldshuttle/corner{ + tag = "icon-corner (WEST)"; + icon_state = "corner"; + dir = 8 + }, +/area/ruin/powered) +"q" = ( +/turf/open/floor/oldshuttle{ + baseturf = /turf/open/space; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15" + }, +/turf/closed/indestructible/oldshuttle/corner, +/area/ruin/powered) +"r" = ( +/turf/open/space, +/turf/closed/indestructible/oldshuttle/corner{ + tag = "icon-corner (NORTH)"; + icon_state = "corner"; + dir = 1 + }, +/area/ruin/powered) +"s" = ( +/turf/open/space, +/turf/closed/indestructible/oldshuttle/corner{ + tag = "icon-corner (EAST)"; + icon_state = "corner"; + dir = 4 + }, +/area/ruin/powered) +"t" = ( +/obj/machinery/power/generator, +/turf/open/floor/oldshuttle{ + baseturf = /turf/open/space; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15" + }, +/area/ruin/powered) +"u" = ( +/obj/machinery/power/smes, +/turf/open/floor/oldshuttle{ + baseturf = /turf/open/space; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15" + }, +/area/ruin/powered) +"v" = ( +/obj/structure/shuttle/engine/propulsion/burst/left, +/turf/open/space, +/area/ruin/powered) +"w" = ( +/obj/structure/shuttle/engine/propulsion/burst/right, +/turf/open/space, +/area/ruin/powered) +"x" = ( +/obj/structure/shuttle/engine/propulsion/burst, +/turf/open/space, +/area/ruin/powered) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +a +b +c +l +v +a +"} +(2,1,1) = {" +a +a +a +a +a +a +a +b +c +c +f +g +l +l +x +"} +(3,1,1) = {" +a +a +a +a +a +b +d +f +g +g +g +g +l +l +x +"} +(4,1,1) = {" +a +a +a +a +j +l +g +g +g +g +p +d +l +w +a +"} +(5,1,1) = {" +a +a +a +a +b +c +g +g +g +p +r +a +a +a +a +"} +(6,1,1) = {" +a +a +b +c +c +c +c +c +c +c +c +c +c +s +a +"} +(7,1,1) = {" +a +b +f +i +c +i +i +i +i +i +i +c +u +c +s +"} +(8,1,1) = {" +b +f +i +i +c +m +m +m +o +m +m +c +g +q +c +"} +(9,1,1) = {" +c +g +g +g +g +m +m +m +m +m +p +c +g +g +c +"} +(10,1,1) = {" +d +g +g +g +k +g +g +g +g +g +c +t +g +g +d +"} +(11,1,1) = {" +c +g +g +g +g +m +m +m +m +m +q +c +g +g +c +"} +(12,1,1) = {" +e +h +i +i +c +n +m +m +o +m +m +c +g +p +c +"} +(13,1,1) = {" +a +e +h +i +c +i +i +i +i +i +i +c +u +c +r +"} +(14,1,1) = {" +a +a +e +c +c +c +c +c +c +c +c +c +c +r +a +"} +(15,1,1) = {" +a +a +a +a +e +c +g +g +g +q +s +a +a +a +a +"} +(16,1,1) = {" +a +a +a +a +j +l +g +g +g +g +q +d +l +v +a +"} +(17,1,1) = {" +a +a +a +a +a +e +d +h +g +g +g +g +l +l +x +"} +(18,1,1) = {" +a +a +a +a +a +a +a +e +c +c +h +g +l +l +x +"} +(19,1,1) = {" +a +a +a +a +a +a +a +a +a +a +e +c +l +w +a +"} diff --git a/_maps/RandomRuins/SpaceRuins/spacebar.dmm b/_maps/RandomRuins/SpaceRuins/spacebar.dmm new file mode 100644 index 0000000..8a3274f --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/spacebar.dmm @@ -0,0 +1,161 @@ +"aa" = (/turf/open/space,/area/space) +"ab" = (/turf/closed/mineral,/area/ruin/unpowered/no_grav) +"ac" = (/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) +"ad" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ruin/powered/spacebar) +"ae" = (/turf/closed/wall,/area/ruin/powered/spacebar) +"af" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ruin/powered/spacebar) +"ag" = (/turf/open/floor/plating/asteroid,/area/ruin/powered/spacebar) +"ah" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating/asteroid,/area/ruin/powered/spacebar) +"ai" = (/turf/closed/mineral,/area/ruin/powered/spacebar) +"aj" = (/turf/open/floor/plating/asteroid,/turf/closed/wall/mineral/titanium/interior,/area/ruin/powered/spacebar) +"ak" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/ruin/powered/spacebar) +"al" = (/turf/closed/wall,/area/ruin/powered/spacebar/bar) +"am" = (/turf/closed/wall/mineral/titanium,/area/ruin/powered/spacebar) +"an" = (/obj/structure/chair{dir = 1},/turf/open/floor/mineral/titanium/blue,/area/ruin/powered/spacebar) +"ao" = (/obj/structure/table,/obj/machinery/chem_dispenser/drinks/beer,/turf/open/floor/wood,/area/ruin/powered/spacebar/bar) +"ap" = (/obj/structure/table,/obj/machinery/chem_dispenser/drinks,/turf/open/floor/wood,/area/ruin/powered/spacebar/bar) +"aq" = (/obj/structure/table,/obj/machinery/light/small{dir = 1},/obj/item/weapon/book/manual/barman_recipes,/turf/open/floor/wood,/area/ruin/powered/spacebar/bar) +"ar" = (/turf/open/floor/wood,/area/ruin/powered/spacebar/bar) +"as" = (/obj/structure/table,/obj/item/toy/figure/bartender,/turf/open/floor/wood,/area/ruin/powered/spacebar/bar) +"at" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/shaker,/turf/open/floor/wood,/area/ruin/powered/spacebar/bar) +"au" = (/obj/effect/mob_spawn/human/bartender/alive,/turf/open/floor/wood,/area/ruin/powered/spacebar/bar) +"av" = (/obj/structure/reagent_dispensers/beerkeg,/turf/open/floor/wood,/area/ruin/powered/spacebar/bar) +"aw" = (/turf/open/floor/mineral/titanium/blue,/area/ruin/powered/spacebar) +"ax" = (/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/open/floor/wood,/area/ruin/powered/spacebar/bar) +"ay" = (/obj/machinery/door/airlock{name = "Bar Storage"; req_access_txt = "25"},/turf/open/floor/wood,/area/ruin/powered/spacebar/bar) +"az" = (/obj/machinery/atmospherics/components/unary/vent_scrubber,/turf/open/floor/wood,/area/ruin/powered/spacebar/bar) +"aA" = (/obj/machinery/atmospherics/components/unary/vent_pump,/turf/open/floor/wood,/area/ruin/powered/spacebar/bar) +"aB" = (/obj/structure/table,/obj/machinery/reagentgrinder,/turf/open/floor/wood,/area/ruin/powered/spacebar/bar) +"aC" = (/turf/open/floor/plating,/obj/structure/shuttle/engine/propulsion/burst,/turf/closed/wall/mineral/titanium/interior,/area/ruin/powered/spacebar) +"aD" = (/obj/machinery/door/airlock/shuttle{name = "Escape Pod Airlock"},/turf/open/floor/mineral/titanium/blue,/area/ruin/powered/spacebar) +"aE" = (/obj/machinery/button/door{id = "spacebardock"; name = "pod dock door cycle"; pixel_x = -32},/turf/open/floor/wood,/area/ruin/powered/spacebar/bar) +"aF" = (/obj/machinery/vending/boozeomat,/turf/closed/wall,/area/ruin/powered/spacebar/bar) +"aG" = (/obj/structure/closet/secure_closet/freezer/kitchen,/turf/open/floor/wood,/area/ruin/powered/spacebar/bar) +"aH" = (/obj/machinery/light/small,/obj/structure/table,/obj/machinery/microwave,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/wood,/area/ruin/powered/spacebar/bar) +"aI" = (/obj/structure/closet/secure_closet/freezer/fridge,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/ruin/powered/spacebar/bar) +"aJ" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 10},/turf/open/floor/wood,/area/ruin/powered/spacebar/bar) +"aK" = (/turf/closed/wall,/area/ruin/powered/spacebar) +"aL" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1},/turf/open/floor/plating/asteroid,/area/ruin/powered/spacebar) +"aM" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating/asteroid,/area/ruin/powered/spacebar) +"aN" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/ruin/powered/spacebar/bar) +"aO" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/wood,/area/ruin/powered/spacebar/bar) +"aP" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/item/weapon/reagent_containers/glass/rag,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/wood,/area/ruin/powered/spacebar/bar) +"aQ" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/ruin/powered/spacebar/bar) +"aR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/ruin/powered/spacebar/bar) +"aS" = (/obj/machinery/door/airlock{name = "Bar Storage"; req_access_txt = "25"},/turf/open/floor/plasteel{icon_state = "wood"},/area/ruin/powered/spacebar/bar) +"aT" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plating/asteroid,/area/ruin/powered/spacebar) +"aU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating/asteroid,/area/ruin/powered/spacebar) +"aV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/ruin/powered/spacebar/bar) +"aW" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"aX" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"aY" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"aZ" = (/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"ba" = (/obj/machinery/atmospherics/components/unary/vent_scrubber,/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"bb" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"bc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"bd" = (/obj/machinery/airalarm{frequency = 1439; locked = 0; pixel_y = 23},/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"be" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ruin/powered/spacebar/bar) +"bf" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/closed/wall,/area/ruin/powered/spacebar/bar) +"bg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"bh" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"bi" = (/obj/machinery/computer/teleporter,/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"bj" = (/obj/machinery/door/airlock/external,/turf/open/floor/plating,/area/ruin/powered/spacebar/bar) +"bk" = (/turf/open/floor/plating,/area/ruin/powered/spacebar/bar) +"bl" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"bm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"bn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"bo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"bp" = (/obj/machinery/teleport/station,/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"bq" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"br" = (/obj/structure/chair{tag = "icon-chair (EAST)"; icon_state = "chair"; dir = 4},/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"bs" = (/obj/structure/table/wood,/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"bt" = (/obj/structure/chair{tag = "icon-chair (WEST)"; icon_state = "chair"; dir = 8},/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"bu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"bv" = (/obj/machinery/teleport/hub,/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"bw" = (/obj/structure/chair,/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"bx" = (/obj/machinery/bluespace_beacon,/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"by" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"bz" = (/obj/machinery/vending/cola,/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"bA" = (/obj/machinery/vending/cigarette,/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"bB" = (/obj/machinery/vending/coffee,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"bC" = (/obj/machinery/vending/snack,/obj/machinery/light,/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"bD" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"bE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/ruin/powered/spacebar/bar) +"bF" = (/obj/machinery/door/airlock{name = "Unisex Bathroom"},/turf/open/floor/plasteel/freezer,/area/ruin/powered/spacebar/bar) +"bG" = (/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"bH" = (/obj/structure/urinal{pixel_x = -32},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/freezer,/area/ruin/powered/spacebar/bar) +"bI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/freezer,/area/ruin/powered/spacebar/bar) +"bJ" = (/obj/machinery/atmospherics/components/unary/vent_scrubber,/turf/open/floor/plasteel/freezer,/area/ruin/powered/spacebar/bar) +"bK" = (/turf/open/floor/plasteel/freezer,/area/ruin/powered/spacebar/bar) +"bL" = (/obj/structure/urinal{pixel_x = -32},/turf/open/floor/plasteel/freezer,/area/ruin/powered/spacebar/bar) +"bM" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plasteel/freezer,/area/ruin/powered/spacebar/bar) +"bN" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/freezer,/area/ruin/powered/spacebar/bar) +"bO" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/mirror{pixel_x = 28},/turf/open/floor/plasteel/freezer,/area/ruin/powered/spacebar/bar) +"bP" = (/obj/structure/table/wood,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/open/floor/plasteel/bar,/area/ruin/powered/spacebar/bar) +"bQ" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/freezer,/area/ruin/powered/spacebar/bar) +"bR" = (/obj/structure/toilet{dir = 4},/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/freezer,/area/ruin/powered/spacebar/bar) +"bS" = (/obj/machinery/door/airlock{name = "Toilet"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/freezer,/area/ruin/powered/spacebar/bar) +"bT" = (/obj/structure/glowshroom/single,/turf/open/floor/plasteel/freezer,/area/ruin/powered/spacebar/bar) +"bU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating/asteroid,/area/ruin/powered/spacebar) +"bV" = (/obj/machinery/door/airlock/external,/turf/open/floor/plating,/area/ruin/powered/spacebar) +"bW" = (/turf/open/floor/plating,/area/ruin/powered/spacebar) +"bX" = (/obj/machinery/atmospherics/components/unary/tank/air,/turf/open/floor/plating/asteroid,/area/ruin/powered/spacebar) +"bY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating/asteroid,/area/ruin/powered/spacebar) +"bZ" = (/obj/machinery/button/door{id = "spacebardock"; name = "Podbay Airlock"; pixel_y = -24},/turf/open/floor/plating/asteroid,/area/ruin/powered/spacebar) +"ca" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating/asteroid,/area/ruin/powered/spacebar) +"cb" = (/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/obj/machinery/meter,/turf/open/floor/plating/asteroid,/area/ruin/powered/spacebar) +"cc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/plating/asteroid,/area/ruin/powered/spacebar) +"cd" = (/obj/machinery/atmospherics/components/binary/valve/open,/turf/open/floor/plating/asteroid,/area/ruin/powered/spacebar) +"ce" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plating/asteroid,/area/ruin/powered/spacebar) +"cf" = (/turf/open/floor/plating/asteroid,/area/ruin/unpowered/no_grav) +"cg" = (/obj/machinery/door/poddoor/preopen{id = "spacebardock"; name = "airlock dock"},/turf/open/floor/plating,/area/ruin/powered/spacebar) +"ch" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/obj/machinery/meter,/turf/open/floor/plating/asteroid,/area/ruin/powered/spacebar) +"ci" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plating/asteroid,/area/ruin/powered/spacebar) +"cj" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/ruin/powered/spacebar) +"ck" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) +"cl" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/mineral,/area/ruin/unpowered/no_grav) +"cm" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 1},/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) +"cn" = (/obj/machinery/door/poddoor{id = "spacebardock"; name = "airlock dock"},/turf/open/floor/plating,/area/ruin/powered/spacebar) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacababacacacacacaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaacacacacacadadaeadadacacacacacacacacacacacacacaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaacacacafafafagagagagagafafacacafafafafafafahacacacacaaaaaaaaaa +aaaaaaaaaaaaaaaaacacacafagagagagagagaiagagagafafagagagagagagagafafacacacaaaaaaaa +aaaaaaaaaaaaaaacacacafagagagagagagaiaiaiaiagagagagagagagagagagagagafacacaaaaaaaa +aaaaaaaaaaacacacacafagajakajagagaiaiaialalalalalalalalalalalalagagafacacaaaaaaaa +aaaaaaaaaaacacacafagagamanamagagaiaiaialaoapaqaralasatauaravalagagafacacacaaaaaa +aaaaaaaaacacafafagagagamawamagagaiaiaialaxarararayarazaAaraBalagagagafacacaaaaaa +aaaaaaababacafagagagagaCaDaCagagagaiaialaEarararaFaGaHaIaraJalagagagafacacaaaaaa +aaaaaaaaabacaKagagagagagagagagaLaMaMaMaNaOaOaPaOaNaNaQaRaSalalagagagaKacaaaaaaaa +aaaaaaaaabacafafagagagagagagagaTaUaUaUaVaWaXaYaYaZbabbbcaZbdalagagagafacabaaaaaa +aaaaaaaaacacacacafagagagagagagagalbebfalaZbcaZaZaZbgbhbcaZbibeagagafacacababaaaa +aaaaaaaaaaacacafagagagagagagagagbjbkbkbjaZblbmbmbmbmbnboaZbpbeagagafacabababaaaa +aaaaaaaaaaacacafagagagagagagagagalbebealbqbcbrbsbtaZbuaZaZbvbeagagafacacaaaaaaaa +aaaaaaaaacacafagagagagagagagagagagagagalbwbcaZaZaZbxbuaZaZaZbeagagafacacaaaaaaaa +aaaaaaaaabacafagagagagagagagagagagagagalbsblbyaZbzbAbBbCaZaZalagagafacacacaaaaaa +aaaaaaababacafagagagagagagagagagagagagalbDbcaZaZalalbEalalbFalaiagagafacacacaaaa +aaaaaaaaabacafagagagagagagagagajakajagalbGblbmbmaVbHbIbJbKbKalaiagagagafacabaaaa +aaaaaaaaacacafagagagagagagagagamanamagbeaZbcaZbwalbLbMbNbKbOalaiaiagagafacabaaaa +aaaaaaaaacacacafagagagagagagagamawamagagbebcaZbPalalbEbQbKbOalaiaiagagafacabaaaa +aaaaaaaaaaacacafagagagagagagagaCaDaCagagagbeaZbDalbRbSbKbTbKalaiaiagagafacacaaaa +aaaaaaaaaaacaKaKaKaKagagagagagagagagagagagbUbealalalbEalalalalaiaiagafacacacaaaa +aaaaaaaaaaaabVbWbWbVagagagagagagagagagagaibUbXbXbXaibYaiaiaiaiaiagagafacacacaaaa +aaaaaaaaaaaaaKaKaKaKagagagagagagagbZagaiaibUcacbccagbYaiaiaiaiaiagafacacacaaaaaa +aaaaaaaaaaaaacacaKagaKbWbWbWbWbWbWaKagagaibUagcdagaLceagagaiaiagagafaccfaaaaaaaa +aaaaaaaaaaaaacabaKagaKcgcgcgcgcgcgaKagagagcaaUchciagbYagagagagagafaKacabaaaaaaaa +aaaaaaaaaaaaababaKaKaKbWbWbWbWbWbWaKaKaKaKafafafafafcjafafafafaKacacacacaaaaaaaa +aaaaaaaaaaaaababababaKbWbWbWbWbWbWaKacacacacacacacacckacacacacacacacacaaaaaaaaaa +aaaaaaaaaaaaaaaaababaKbWbWbWbWbWbWaKacacacacacacacacclacacacacacacaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaKbWbWbWbWbWbWaKacacacacaaaaaaaccmacababaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaKcncncncncncnaKacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaKaaaaaaaaaaaaaKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +"} diff --git a/_maps/RandomRuins/SpaceRuins/spacehotel.dmm b/_maps/RandomRuins/SpaceRuins/spacehotel.dmm new file mode 100644 index 0000000..d28dada --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/spacehotel.dmm @@ -0,0 +1,743 @@ +"aa" = (/turf/open/space,/area/space) +"ab" = (/obj/structure/grille,/turf/open/space,/area/space) +"ac" = (/obj/structure/lattice,/turf/open/space,/area/space) +"ad" = (/obj/machinery/power/solar,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"ae" = (/obj/machinery/power/solar,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"af" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"ag" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"ah" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"ai" = (/obj/machinery/power/tracker,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"aj" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"ak" = (/obj/machinery/power/solar,/obj/structure/cable/yellow,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"al" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"am" = (/turf/closed/wall,/area/ruin/hotel) +"an" = (/turf/closed/wall,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 3"}) +"ao" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 3"}) +"ap" = (/turf/closed/wall,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 4"}) +"aq" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 4"}) +"ar" = (/turf/closed/wall,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 5"}) +"as" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 5"}) +"at" = (/turf/closed/wall,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 6"}) +"au" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 6"}) +"av" = (/obj/effect/decal/cleanable/cobweb,/turf/open/floor/plating,/area/ruin/hotel) +"aw" = (/turf/open/floor/plating,/area/ruin/hotel) +"ax" = (/obj/machinery/shower{dir = 4},/obj/item/weapon/soap,/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 3"}) +"ay" = (/obj/structure/window{icon_state = "window"; dir = 8},/obj/structure/toilet,/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 3"}) +"az" = (/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 3"}) +"aA" = (/obj/machinery/door/airlock{name = "Bathroom"},/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 3"}) +"aB" = (/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 3"}) +"aC" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 3"}) +"aD" = (/obj/item/weapon/twohanded/required/kirbyplants{tag = "icon-plant-02"; icon_state = "plant-02"},/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 3"}) +"aE" = (/obj/structure/dresser,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 3"}) +"aF" = (/obj/machinery/shower{dir = 4},/obj/item/weapon/soap,/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 4"}) +"aG" = (/obj/structure/window{icon_state = "window"; dir = 8},/obj/structure/toilet,/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 4"}) +"aH" = (/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 4"}) +"aI" = (/obj/machinery/door/airlock{name = "Bathroom"},/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 4"}) +"aJ" = (/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 4"}) +"aK" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 4"}) +"aL" = (/obj/item/weapon/twohanded/required/kirbyplants{tag = "icon-plant-16"; icon_state = "plant-16"},/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 4"}) +"aM" = (/obj/structure/dresser,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 4"}) +"aN" = (/obj/machinery/shower{dir = 4},/obj/item/weapon/soap,/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 5"}) +"aO" = (/obj/structure/window{icon_state = "window"; dir = 8},/obj/structure/toilet,/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 5"}) +"aP" = (/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 5"}) +"aQ" = (/obj/machinery/door/airlock{name = "Bathroom"},/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 5"}) +"aR" = (/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 5"}) +"aS" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 5"}) +"aT" = (/obj/item/weapon/twohanded/required/kirbyplants{tag = "icon-plant-16"; icon_state = "plant-16"},/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 5"}) +"aU" = (/obj/structure/dresser,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 5"}) +"aV" = (/obj/machinery/shower{dir = 4},/obj/item/weapon/soap,/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 6"}) +"aW" = (/obj/structure/window{icon_state = "window"; dir = 8},/obj/structure/toilet,/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 6"}) +"aX" = (/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 6"}) +"aY" = (/obj/machinery/door/airlock{name = "Bathroom"},/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 6"}) +"aZ" = (/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 6"}) +"ba" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 6"}) +"bb" = (/obj/item/weapon/twohanded/required/kirbyplants{tag = "icon-plant-18"; icon_state = "plant-18"},/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 6"}) +"bc" = (/obj/structure/dresser,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 6"}) +"bd" = (/obj/machinery/power/solar,/obj/structure/cable/yellow,/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"be" = (/obj/structure/window{icon_state = "window"; dir = 8},/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 3"}) +"bf" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 3"}) +"bg" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 3"}) +"bh" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 3"}) +"bi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 3"}) +"bj" = (/obj/structure/bed,/obj/item/weapon/bedsheet/red,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 3"}) +"bk" = (/obj/structure/window{icon_state = "window"; dir = 8},/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 4"}) +"bl" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 4"}) +"bm" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 4"}) +"bn" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 4"}) +"bo" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 4"}) +"bp" = (/obj/structure/bed,/obj/item/weapon/bedsheet/blue,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 4"}) +"bq" = (/obj/structure/window{icon_state = "window"; dir = 8},/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 5"}) +"br" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 5"}) +"bs" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 5"}) +"bt" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 5"}) +"bu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 5"}) +"bv" = (/obj/structure/bed,/obj/item/weapon/bedsheet/black,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 5"}) +"bw" = (/obj/structure/window{icon_state = "window"; dir = 8},/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 6"}) +"bx" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 6"}) +"by" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 6"}) +"bz" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 6"}) +"bA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 6"}) +"bB" = (/obj/structure/bed,/obj/item/weapon/bedsheet/purple,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 6"}) +"bC" = (/obj/item/clothing/head/cone,/turf/open/floor/plating,/area/ruin/hotel) +"bD" = (/obj/machinery/light{dir = 8},/obj/structure/table/wood,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 3"}) +"bE" = (/obj/structure/chair{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 3"}) +"bF" = (/obj/machinery/light{dir = 8},/obj/structure/table/wood,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 4"}) +"bG" = (/obj/structure/chair{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 4"}) +"bH" = (/obj/machinery/light{dir = 8},/obj/structure/table/wood,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 5"}) +"bI" = (/obj/structure/chair{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 5"}) +"bJ" = (/obj/machinery/light{dir = 8},/obj/structure/table/wood,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 6"}) +"bK" = (/obj/structure/chair{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 6"}) +"bL" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plating,/area/ruin/hotel) +"bM" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/mirror{pixel_x = 32},/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 3"}) +"bN" = (/obj/machinery/power/apc{cell_type = 5000; dir = 2; name = "Guest Room APC"; pixel_y = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 3"}) +"bO" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 3"}) +"bP" = (/obj/machinery/button/door{id = "a3"; name = "privacy button"; pixel_y = -24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 3"}) +"bQ" = (/obj/machinery/light_switch{pixel_y = -24},/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 3"}) +"bR" = (/obj/structure/table/wood,/obj/item/clothing/head/sombrero,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 3"}) +"bS" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/mirror{pixel_x = 32},/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 4"}) +"bT" = (/obj/machinery/power/apc{cell_type = 5000; dir = 2; name = "Guest Room APC"; pixel_y = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 4"}) +"bU" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 4"}) +"bV" = (/obj/machinery/button/door{id = "a4"; name = "privacy button"; pixel_y = -24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 4"}) +"bW" = (/obj/machinery/light_switch{pixel_y = -24},/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 4"}) +"bX" = (/obj/structure/table/wood,/obj/item/weapon/lipstick,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 4"}) +"bY" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/mirror{pixel_x = 32},/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 5"}) +"bZ" = (/obj/machinery/power/apc{cell_type = 5000; dir = 2; name = "Guest Room APC"; pixel_y = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 5"}) +"ca" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 5"}) +"cb" = (/obj/machinery/button/door{id = "a5"; name = "privacy button"; pixel_y = -24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 5"}) +"cc" = (/obj/machinery/light_switch{pixel_y = -24},/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 5"}) +"cd" = (/obj/structure/table/wood,/obj/item/clothing/head/collectable/kitty,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 5"}) +"ce" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/mirror{pixel_x = 32},/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 6"}) +"cf" = (/obj/machinery/power/apc{cell_type = 5000; dir = 2; name = "Guest Room APC"; pixel_y = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 6"}) +"cg" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 6"}) +"ch" = (/obj/machinery/button/door{id = "a6"; name = "privacy button"; pixel_y = -24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 6"}) +"ci" = (/obj/machinery/light_switch{pixel_y = -24},/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 6"}) +"cj" = (/obj/structure/table/wood,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 6"}) +"ck" = (/obj/structure/grille,/turf/open/floor/plating,/area/ruin/hotel) +"cl" = (/obj/machinery/door/airlock{id_tag = "a3"; name = "Guest Room A3"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 3"}) +"cm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 3"}) +"cn" = (/obj/machinery/door/airlock{id_tag = "a4"; name = "Guest Room A4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 4"}) +"co" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 4"}) +"cp" = (/obj/machinery/door/airlock{id_tag = "a5"; name = "Guest Room A5"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 5"}) +"cq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 5"}) +"cr" = (/obj/machinery/door/airlock{id_tag = "a6"; name = "Guest Room A6"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 6"}) +"cs" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 6"}) +"ct" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/closed/wall,/area/ruin/hotel) +"cu" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/ruin/hotel) +"cv" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/ruin/hotel) +"cw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/ruin/hotel) +"cx" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/carpet,/area/ruin/hotel) +"cy" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/carpet,/area/ruin/hotel) +"cz" = (/obj/structure/sign/fire{desc = "A sign that states the labeled room's number."; dir = 4; icon_state = "roomnum"; name = "Room Number 3"; pixel_y = 24; tag = "icon-roomnum (EAST)"},/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,/turf/open/floor/carpet,/area/ruin/hotel) +"cA" = (/obj/structure/sign/fire{desc = "A sign that states the labeled room's number."; dir = 8; icon_state = "roomnum"; name = "Room Number 4"; pixel_y = 24; tag = "icon-roomnum (WEST)"},/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,/turf/open/floor/carpet,/area/ruin/hotel) +"cB" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/carpet,/area/ruin/hotel) +"cC" = (/obj/structure/sign/fire{desc = "A sign that states the labeled room's number."; dir = 6; icon_state = "roomnum"; name = "Room Number 5"; pixel_y = 24; tag = "icon-roomnum (SOUTHEAST)"},/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,/turf/open/floor/carpet,/area/ruin/hotel) +"cD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/extinguisher_cabinet{pixel_y = 30},/turf/open/floor/carpet,/area/ruin/hotel) +"cE" = (/obj/structure/sign/fire{desc = "A sign that states the labeled room's number."; dir = 10; icon_state = "roomnum"; name = "Room Number 6"; pixel_y = 24; tag = "icon-roomnum (SOUTHWEST)"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/carpet,/area/ruin/hotel) +"cF" = (/turf/open/floor/carpet,/area/ruin/hotel) +"cG" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/firedoor,/turf/open/floor/plating,/area/ruin/hotel) +"cH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/ruin/hotel) +"cI" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating,/area/ruin/hotel) +"cJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/ruin/hotel) +"cK" = (/obj/machinery/door/airlock/maintenance{name = "Hotel Maintenance"; req_access_txt = "201"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/ruin/hotel) +"cL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/carpet,/area/ruin/hotel) +"cM" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/carpet,/area/ruin/hotel) +"cN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/carpet,/area/ruin/hotel) +"cO" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/carpet,/area/ruin/hotel) +"cP" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/carpet,/area/ruin/hotel) +"cQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/ruin/hotel) +"cR" = (/obj/machinery/light,/turf/open/floor/carpet,/area/ruin/hotel) +"cS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/carpet,/area/ruin/hotel) +"cT" = (/obj/structure/sign/fire{desc = "A sign that states the labeled room's number."; dir = 1; icon_state = "roomnum"; name = "Room Number 2"; pixel_y = -24; tag = "icon-roomnum (NORTH)"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/carpet,/area/ruin/hotel) +"cU" = (/obj/structure/extinguisher_cabinet{pixel_y = -30},/turf/open/floor/carpet,/area/ruin/hotel) +"cV" = (/obj/structure/sign/fire{desc = "A sign that states the labeled room's number."; icon_state = "roomnum"; name = "Room Number 1"; pixel_y = -24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/carpet,/area/ruin/hotel) +"cW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/carpet,/area/ruin/hotel) +"cX" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/carpet,/area/ruin/hotel) +"cY" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/carpet,/area/ruin/hotel) +"cZ" = (/turf/closed/wall,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 2"}) +"da" = (/obj/machinery/door/airlock{id_tag = "a2"; name = "Guest Room A2"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 2"}) +"db" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 2"}) +"dc" = (/turf/closed/wall,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 1"}) +"dd" = (/obj/machinery/door/airlock{id_tag = "a1"; name = "Guest Room A1"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 1"}) +"de" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 1"}) +"df" = (/obj/machinery/door/airlock/glass,/obj/machinery/door/firedoor,/turf/open/floor/carpet,/area/ruin/hotel) +"dg" = (/obj/machinery/door/airlock/glass,/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/carpet,/area/ruin/hotel) +"dh" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/ruin/hotel/workroom) +"di" = (/turf/closed/wall,/area/ruin/hotel/workroom) +"dj" = (/obj/machinery/door/airlock/centcom{name = "Hotel Staff Storage"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/ruin/hotel/workroom) +"dk" = (/obj/machinery/shower{dir = 4},/obj/item/weapon/soap,/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 2"}) +"dl" = (/obj/structure/window{icon_state = "window"; dir = 8},/obj/structure/toilet,/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 2"}) +"dm" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/mirror{pixel_x = 32},/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 2"}) +"dn" = (/obj/machinery/power/apc{cell_type = 5000; dir = 1; name = "Guest Room APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 2"}) +"do" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 2"}) +"dp" = (/obj/machinery/button/door{id = "a2"; name = "privacy button"; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 2"}) +"dq" = (/obj/item/weapon/twohanded/required/kirbyplants{tag = "icon-plant-21"; icon_state = "plant-21"},/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 2"}) +"dr" = (/obj/structure/dresser,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 2"}) +"ds" = (/obj/machinery/shower{dir = 4},/obj/item/weapon/soap,/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 1"}) +"dt" = (/obj/structure/window{icon_state = "window"; dir = 8},/obj/structure/toilet,/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 1"}) +"du" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/mirror{pixel_x = 32},/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 1"}) +"dv" = (/obj/machinery/power/apc{cell_type = 5000; dir = 1; name = "Guest Room APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 1"}) +"dw" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 1"}) +"dx" = (/obj/machinery/button/door{id = "a1"; name = "privacy button"; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 1"}) +"dy" = (/obj/item/weapon/twohanded/required/kirbyplants{tag = "icon-plant-14"; icon_state = "plant-14"},/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 1"}) +"dz" = (/obj/structure/dresser,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 1"}) +"dA" = (/obj/machinery/airalarm{pixel_y = 24},/turf/open/floor/plasteel/white,/area/ruin/hotel/workroom) +"dB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/ruin/hotel/workroom) +"dC" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/ruin/hotel/workroom) +"dD" = (/obj/structure/table,/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/white,/area/ruin/hotel/workroom) +"dE" = (/obj/structure/table,/obj/item/weapon/soap,/turf/open/floor/plasteel/white,/area/ruin/hotel/workroom) +"dF" = (/obj/machinery/washing_machine,/turf/open/floor/plasteel/white,/area/ruin/hotel/workroom) +"dG" = (/obj/structure/table,/obj/structure/bedsheetbin,/turf/open/floor/plasteel/white,/area/ruin/hotel/workroom) +"dH" = (/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 2"}) +"dI" = (/obj/structure/window{icon_state = "window"; dir = 8},/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 2"}) +"dJ" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 2"}) +"dK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 2"}) +"dL" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 2"}) +"dM" = (/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 2"}) +"dN" = (/obj/structure/bed,/obj/item/weapon/bedsheet/yellow,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 2"}) +"dO" = (/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 1"}) +"dP" = (/obj/structure/window{icon_state = "window"; dir = 8},/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 1"}) +"dQ" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 1"}) +"dR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 1"}) +"dS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 1"}) +"dT" = (/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 1"}) +"dU" = (/obj/structure/bed,/obj/item/weapon/bedsheet/ian,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 1"}) +"dV" = (/turf/open/floor/plasteel/white,/area/ruin/hotel/workroom) +"dW" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/ruin/hotel/workroom) +"dX" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/white,/area/ruin/hotel/workroom) +"dY" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/ruin/hotel/workroom) +"dZ" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/ruin/hotel/workroom) +"ea" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/ruin/hotel/workroom) +"eb" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/ruin/hotel/workroom) +"ec" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/firedoor,/turf/open/floor/plating,/area/ruin/hotel/workroom) +"ed" = (/obj/effect/decal/cleanable/oil,/turf/open/floor/plating,/area/ruin/hotel) +"ee" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 2"}) +"ef" = (/obj/machinery/light{dir = 8},/obj/structure/table/wood,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 2"}) +"eg" = (/obj/structure/chair{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 2"}) +"eh" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 2"}) +"ei" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 1"}) +"ej" = (/obj/machinery/light{dir = 8},/obj/structure/table/wood,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 1"}) +"ek" = (/obj/structure/chair{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 1"}) +"el" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 1"}) +"em" = (/obj/machinery/light{dir = 8},/turf/open/floor/carpet,/area/ruin/hotel) +"en" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/plasteel/white,/area/ruin/hotel/workroom) +"eo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/white,/area/ruin/hotel/workroom) +"ep" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/ruin/hotel/workroom) +"eq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/ruin/hotel/workroom) +"er" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/white,/area/ruin/hotel/workroom) +"es" = (/obj/machinery/door/airlock{name = "Bathroom"},/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 2"}) +"et" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 2"}) +"eu" = (/obj/structure/table/wood,/obj/item/weapon/storage/pill_bottle/dice,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 2"}) +"ev" = (/obj/machinery/door/airlock{name = "Bathroom"},/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 1"}) +"ew" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 1"}) +"ex" = (/obj/structure/table/wood,/turf/open/floor/wood,/area/ruin/hotel/guestroom{name = "Hotel Guest Room 1"}) +"ey" = (/obj/structure/closet/wardrobe/mixed,/turf/open/floor/plasteel/white,/area/ruin/hotel/workroom) +"ez" = (/obj/structure/closet/crate/bin,/turf/open/floor/plasteel/white,/area/ruin/hotel/workroom) +"eA" = (/obj/machinery/power/apc{cell_type = 5000; dir = 2; name = "Laundry APC"; pixel_y = -24},/obj/structure/cable,/turf/open/floor/plasteel/white,/area/ruin/hotel/workroom) +"eB" = (/obj/machinery/light,/turf/open/floor/plasteel/white,/area/ruin/hotel/workroom) +"eC" = (/obj/structure/closet/crate,/turf/open/floor/plasteel/whitebot,/area/ruin/hotel/workroom) +"eD" = (/obj/structure/closet/crate,/obj/item/clothing/head/rice_hat,/turf/open/floor/plasteel/whitebot,/area/ruin/hotel/workroom) +"eE" = (/obj/structure/closet/crate,/obj/item/weapon/bedsheet/patriot,/turf/open/floor/plasteel/whitebot,/area/ruin/hotel/workroom) +"eF" = (/obj/structure/closet/crate,/obj/item/weapon/card/id/away/hotel,/turf/open/floor/plasteel/whitebot,/area/ruin/hotel/workroom) +"eG" = (/turf/closed/wall,/area/ruin/hotel/dock) +"eH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/closed/wall,/area/ruin/hotel) +"eI" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/ruin/hotel) +"eJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/open/floor/plating,/area/ruin/hotel) +"eK" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating,/area/ruin/hotel) +"eL" = (/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -24; tag = "icon-alarm0 (NORTH)"},/turf/open/floor/plating,/area/ruin/hotel/bar) +"eM" = (/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -24; tag = "icon-alarm0 (NORTH)"},/turf/open/floor/plating,/area/ruin/hotel) +"eN" = (/obj/machinery/door/airlock/maintenance{name = "Hotel Maintenance"; req_access_txt = "201"},/turf/open/floor/plating,/area/ruin/hotel) +"eO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/extinguisher_cabinet{pixel_y = 30},/turf/open/floor/wood,/area/ruin/hotel) +"eP" = (/obj/structure/flora/ausbushes/fernybush,/turf/open/floor/grass,/area/ruin/hotel) +"eQ" = (/obj/structure/flora/ausbushes/ywflowers,/turf/open/floor/grass,/area/ruin/hotel) +"eR" = (/obj/machinery/light{dir = 1},/obj/structure/flora/ausbushes/fullgrass,/turf/open/floor/grass,/area/ruin/hotel) +"eS" = (/obj/structure/flora/ausbushes/fullgrass,/turf/open/floor/grass,/area/ruin/hotel) +"eT" = (/turf/open/floor/wood,/area/ruin/hotel) +"eU" = (/obj/machinery/vending/cola,/turf/open/floor/wood,/area/ruin/hotel) +"eV" = (/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/turf/open/floor/wood,/area/ruin/hotel/dock) +"eW" = (/turf/open/floor/wood,/area/ruin/hotel/dock) +"eX" = (/obj/structure/chair/comfy/brown{dir = 4},/turf/open/floor/wood,/area/ruin/hotel/dock) +"eY" = (/obj/structure/table/wood,/turf/open/floor/wood,/area/ruin/hotel/dock) +"eZ" = (/obj/structure/chair/comfy/brown{dir = 8},/turf/open/floor/wood,/area/ruin/hotel/dock) +"fa" = (/obj/structure/extinguisher_cabinet{pixel_y = 30},/turf/open/floor/wood,/area/ruin/hotel/dock) +"fb" = (/obj/machinery/light{dir = 1},/turf/open/floor/wood,/area/ruin/hotel/dock) +"fc" = (/obj/machinery/airalarm{pixel_y = 24},/turf/open/floor/wood,/area/ruin/hotel/dock) +"fd" = (/obj/effect/decal/cleanable/cobweb,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating,/area/ruin/hotel) +"fe" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/plating,/area/ruin/hotel) +"ff" = (/obj/structure/closet/crate,/obj/item/clothing/head/papersack/smiley,/turf/open/floor/plating,/area/ruin/hotel) +"fg" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating,/area/ruin/hotel) +"fh" = (/obj/machinery/power/apc{cell_type = 5000; dir = 2; name = "Kitchen APC"; pixel_y = -24},/obj/structure/cable,/turf/open/floor/plating,/area/ruin/hotel/bar) +"fi" = (/turf/closed/wall,/area/ruin/hotel/bar) +"fj" = (/obj/machinery/door/airlock/maintenance{name = "Hotel Maintenance"; req_access_txt = "200,201"},/turf/open/floor/plating,/area/ruin/hotel/bar) +"fk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/carpet,/area/ruin/hotel) +"fl" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/wood,/area/ruin/hotel) +"fm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/grass,/area/ruin/hotel) +"fn" = (/obj/structure/flora/ausbushes/ywflowers,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/grass,/area/ruin/hotel) +"fo" = (/obj/structure/flora/ausbushes/fullgrass,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/grass,/area/ruin/hotel) +"fp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/wood,/area/ruin/hotel) +"fq" = (/obj/machinery/vending/cigarette,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/wood,/area/ruin/hotel) +"fr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/ruin/hotel/dock) +"fs" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/wood,/area/ruin/hotel/dock) +"ft" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/wood,/area/ruin/hotel/dock) +"fu" = (/turf/open/floor/carpet,/area/ruin/hotel/dock) +"fv" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/firedoor,/turf/open/floor/plating,/area/ruin/hotel/dock) +"fw" = (/obj/structure/closet/chefcloset,/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/cafeteria,/area/ruin/hotel/bar) +"fx" = (/turf/open/floor/plasteel/cafeteria,/area/ruin/hotel/bar) +"fy" = (/obj/structure/sink/kitchen{pixel_y = 28},/turf/open/floor/plasteel/cafeteria,/area/ruin/hotel/bar) +"fz" = (/obj/machinery/processor,/turf/open/floor/plasteel/cafeteria,/area/ruin/hotel/bar) +"fA" = (/obj/structure/table/reinforced,/turf/open/floor/plasteel/cafeteria,/area/ruin/hotel/bar) +"fB" = (/obj/structure/table,/obj/machinery/chem_dispenser/drinks/beer,/turf/open/floor/plasteel/bar,/area/ruin/hotel/bar) +"fC" = (/obj/structure/table,/obj/machinery/chem_dispenser/drinks,/turf/open/floor/plasteel/bar,/area/ruin/hotel/bar) +"fD" = (/obj/structure/table,/obj/machinery/reagentgrinder,/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/bar,/area/ruin/hotel/bar) +"fE" = (/obj/machinery/vending/boozeomat{req_access_txt = "200"},/turf/open/floor/plasteel/bar,/area/ruin/hotel/bar) +"fF" = (/obj/structure/table,/obj/item/weapon/book/manual/barman_recipes,/obj/item/weapon/reagent_containers/food/drinks/shaker,/turf/open/floor/plasteel/bar,/area/ruin/hotel/bar) +"fG" = (/turf/open/floor/plasteel/bar,/area/ruin/hotel/bar) +"fH" = (/obj/structure/table/reinforced,/turf/open/floor/plasteel/bar,/area/ruin/hotel/bar) +"fI" = (/obj/item/weapon/twohanded/required/kirbyplants{tag = "icon-plant-02"; icon_state = "plant-02"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/wood,/area/ruin/hotel) +"fJ" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/wood,/area/ruin/hotel) +"fK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/carpet,/area/ruin/hotel) +"fL" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/carpet,/area/ruin/hotel) +"fM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/wood,/area/ruin/hotel) +"fN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/wood,/area/ruin/hotel) +"fO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/carpet,/area/ruin/hotel/dock) +"fP" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/open/floor/plasteel/freezer,/area/ruin/hotel/bar) +"fQ" = (/turf/open/floor/plasteel/freezer,/area/ruin/hotel/bar) +"fR" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/food/snacks/grown/wheat,/obj/item/weapon/reagent_containers/food/snacks/grown/wheat,/obj/item/weapon/reagent_containers/food/snacks/grown/wheat,/obj/item/weapon/reagent_containers/food/snacks/grown/wheat,/obj/item/weapon/reagent_containers/food/snacks/grown/wheat,/obj/item/weapon/reagent_containers/food/snacks/grown/wheat,/obj/item/weapon/reagent_containers/food/snacks/grown/wheat,/obj/item/weapon/reagent_containers/food/snacks/grown/potato,/obj/item/weapon/reagent_containers/food/snacks/grown/potato,/obj/item/weapon/reagent_containers/food/snacks/grown/potato,/obj/item/weapon/reagent_containers/food/snacks/grown/potato,/obj/item/weapon/reagent_containers/food/snacks/grown/potato,/obj/item/weapon/reagent_containers/food/snacks/grown/carrot,/obj/item/weapon/reagent_containers/food/snacks/grown/carrot,/obj/item/weapon/reagent_containers/food/snacks/grown/carrot,/obj/item/weapon/reagent_containers/food/snacks/grown/carrot,/obj/item/weapon/reagent_containers/food/snacks/grown/carrot,/obj/item/weapon/reagent_containers/food/snacks/grown/carrot,/obj/item/weapon/reagent_containers/food/snacks/grown/tomato,/obj/item/weapon/reagent_containers/food/snacks/grown/tomato,/obj/item/weapon/reagent_containers/food/snacks/grown/tomato,/obj/item/weapon/reagent_containers/food/snacks/grown/tomato,/obj/item/weapon/reagent_containers/food/snacks/grown/tomato,/turf/open/floor/plasteel/freezer,/area/ruin/hotel/bar) +"fS" = (/obj/machinery/chem_master/condimaster{name = "CondiMaster Neo"},/turf/open/floor/plasteel/freezer,/area/ruin/hotel/bar) +"fT" = (/obj/machinery/door/airlock/freezer{name = "Freezer"; req_access_txt = "200"},/turf/open/floor/plasteel/freezer,/area/ruin/hotel/bar) +"fU" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/open/floor/plasteel/bar,/area/ruin/hotel/bar) +"fV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/carpet,/area/ruin/hotel) +"fW" = (/obj/machinery/door/airlock/glass,/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/carpet,/area/ruin/hotel/dock) +"fX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/carpet,/area/ruin/hotel/dock) +"fY" = (/obj/structure/table,/obj/item/weapon/kitchen/knife,/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/freezer,/area/ruin/hotel/bar) +"fZ" = (/obj/structure/table,/turf/open/floor/plasteel/freezer,/area/ruin/hotel/bar) +"ga" = (/obj/structure/table,/obj/machinery/microwave,/turf/open/floor/plasteel/cafeteria,/area/ruin/hotel/bar) +"gb" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/enzyme,/obj/item/weapon/reagent_containers/food/condiment/enzyme,/turf/open/floor/plasteel/cafeteria,/area/ruin/hotel/bar) +"gc" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/sugar,/obj/item/weapon/reagent_containers/food/condiment/sugar,/turf/open/floor/plasteel/cafeteria,/area/ruin/hotel/bar) +"gd" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/glass/rag,/turf/open/floor/plasteel/bar,/area/ruin/hotel/bar) +"ge" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/carpet,/area/ruin/hotel) +"gf" = (/obj/machinery/door/airlock/glass,/obj/machinery/door/firedoor,/turf/open/floor/carpet,/area/ruin/hotel/dock) +"gg" = (/turf/open/floor/carpet{icon_state = "carpetsymbol"},/area/ruin/hotel/dock) +"gh" = (/obj/item/weapon/twohanded/required/kirbyplants{tag = "icon-plant-22"; icon_state = "plant-22"},/turf/open/floor/wood,/area/ruin/hotel/dock) +"gi" = (/obj/structure/table/wood,/obj/machinery/light{tag = "icon-tube1 (EAST)"; icon_state = "tube1"; dir = 4},/turf/open/floor/carpet,/area/ruin/hotel/dock) +"gj" = (/obj/effect/decal/cleanable/oil,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/ruin/hotel) +"gk" = (/obj/structure/kitchenspike,/turf/open/floor/plasteel/freezer,/area/ruin/hotel/bar) +"gl" = (/obj/effect/decal/cleanable/blood/old,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel/freezer,/area/ruin/hotel/bar) +"gm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/freezer,/area/ruin/hotel/bar) +"gn" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/freezer,/area/ruin/hotel/bar) +"go" = (/obj/structure/kitchenspike,/obj/effect/decal/cleanable/blood/old,/turf/open/floor/plasteel/freezer,/area/ruin/hotel/bar) +"gp" = (/obj/structure/table,/turf/open/floor/plasteel/cafeteria,/area/ruin/hotel/bar) +"gq" = (/obj/structure/table,/obj/item/weapon/kitchen/rollingpin,/turf/open/floor/plasteel/cafeteria,/area/ruin/hotel/bar) +"gr" = (/obj/structure/chair/stool/bar,/turf/open/floor/plasteel/bar,/area/ruin/hotel/bar) +"gs" = (/obj/machinery/door/airlock/centcom{name = "Hotel Staff Room"; req_access_txt = "200"},/turf/open/floor/plasteel/black,/area/ruin/hotel/workroom) +"gt" = (/obj/structure/table/wood,/obj/structure/window/reinforced{dir = 1; layer = 2.9},/obj/machinery/light/small{tag = "icon-bulb1 (WEST)"; icon_state = "bulb1"; dir = 8},/turf/open/floor/plasteel/grimy,/area/ruin/hotel/dock) +"gu" = (/obj/structure/table/wood,/obj/structure/window/reinforced{dir = 1; layer = 2.9},/turf/open/floor/plasteel/grimy,/area/ruin/hotel/dock) +"gv" = (/obj/structure/table/wood,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1; layer = 2.9},/obj/item/device/gps{gpstag = "Twin-Nexus Hotel Retreat"; name = "hotel gps"},/turf/open/floor/plasteel/grimy,/area/ruin/hotel/dock) +"gw" = (/turf/open/floor/plasteel/black,/area/ruin/hotel/dock) +"gx" = (/obj/structure/table,/obj/item/weapon/screwdriver,/obj/item/device/multitool,/obj/item/weapon/wirecutters,/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/black,/area/ruin/hotel/dock) +"gy" = (/obj/structure/chair/comfy/brown{dir = 8},/turf/open/floor/carpet,/area/ruin/hotel/dock) +"gz" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/freezer,/area/ruin/hotel/bar) +"gA" = (/obj/effect/decal/cleanable/blood/old,/turf/open/floor/plasteel/freezer,/area/ruin/hotel/bar) +"gB" = (/obj/machinery/gibber,/turf/open/floor/plasteel/freezer,/area/ruin/hotel/bar) +"gC" = (/obj/structure/closet/secure_closet/freezer/meat{req_access_txt = "200"},/turf/open/floor/plasteel/cafeteria,/area/ruin/hotel/bar) +"gD" = (/obj/structure/table,/obj/item/weapon/kitchen/knife,/turf/open/floor/plasteel/cafeteria,/area/ruin/hotel/bar) +"gE" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/pack/hotsauce,/obj/item/weapon/reagent_containers/food/condiment/pack/hotsauce,/obj/item/weapon/reagent_containers/food/condiment/pack/ketchup,/obj/item/weapon/reagent_containers/food/condiment/pack/ketchup,/obj/item/weapon/reagent_containers/glass/beaker,/turf/open/floor/plasteel/cafeteria,/area/ruin/hotel/bar) +"gF" = (/obj/machinery/vending/cola,/turf/open/floor/plasteel/black,/area/ruin/hotel/workroom) +"gG" = (/turf/open/floor/plasteel/black,/area/ruin/hotel/workroom) +"gH" = (/obj/structure/table,/obj/machinery/light{dir = 1},/obj/item/weapon/crowbar,/turf/open/floor/plasteel/black,/area/ruin/hotel/workroom) +"gI" = (/obj/structure/noticeboard{pixel_y = 32},/obj/item/weapon/paper{info = "!NOTICE!

We are expecting arriving guests soon from a nearby station! Stay sharp and make sure guests enjoy their time spent here. Don't think you can sneak off while they're here, either.
"; name = "!NOTICE!"},/turf/open/floor/plasteel/black,/area/ruin/hotel/workroom) +"gJ" = (/obj/structure/closet/secure_closet/freezer/kitchen/mining,/turf/open/floor/plasteel/black,/area/ruin/hotel/workroom) +"gK" = (/obj/structure/table,/obj/machinery/microwave,/turf/open/floor/plasteel/black,/area/ruin/hotel/workroom) +"gL" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/obj/structure/sign/nosmoking_1{pixel_y = 32},/turf/open/floor/plasteel/black,/area/ruin/hotel/workroom) +"gM" = (/obj/effect/mob_spawn/human/hotel_staff,/turf/open/floor/plasteel/black,/area/ruin/hotel/workroom) +"gN" = (/obj/structure/filingcabinet,/turf/open/floor/plasteel/grimy,/area/ruin/hotel/dock) +"gO" = (/obj/structure/chair/office/light{dir = 4},/turf/open/floor/plasteel/grimy,/area/ruin/hotel/dock) +"gP" = (/obj/structure/table/wood,/turf/open/floor/plasteel/grimy,/area/ruin/hotel/dock) +"gQ" = (/obj/machinery/computer/teleporter,/turf/open/floor/plasteel/black,/area/ruin/hotel/dock) +"gR" = (/obj/machinery/teleport/station,/turf/open/floor/plasteel/black,/area/ruin/hotel/dock) +"gS" = (/obj/machinery/teleport/hub,/turf/open/floor/plasteel/black,/area/ruin/hotel/dock) +"gT" = (/obj/machinery/light{dir = 8},/obj/item/weapon/reagent_containers/food/condiment/milk,/obj/item/weapon/reagent_containers/food/condiment/milk,/obj/item/weapon/reagent_containers/food/condiment/milk,/obj/structure/closet/secure_closet/freezer/fridge{req_access_txt = "200"},/turf/open/floor/plasteel/cafeteria,/area/ruin/hotel/bar) +"gU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel/cafeteria,/area/ruin/hotel/bar) +"gV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/cafeteria,/area/ruin/hotel/bar) +"gW" = (/obj/structure/table/reinforced,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/cafeteria,/area/ruin/hotel/bar) +"gX" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/bar,/area/ruin/hotel/bar) +"gY" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_x = 4},/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = -4},/turf/open/floor/plasteel/bar,/area/ruin/hotel/bar) +"gZ" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/bar,/area/ruin/hotel/bar) +"ha" = (/obj/machinery/vending/wallmed{pixel_x = -32},/turf/open/floor/plasteel/black,/area/ruin/hotel/workroom) +"hb" = (/turf/open/floor/plasteel/grimy,/area/ruin/hotel/dock) +"hc" = (/obj/structure/table/wood,/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/paper/pamphlet{info = "
The Twin Nexus Hotel

A place of Sanctuary


Welcome to The Twin-Nexus Hotel, \[insert name here]! The loyal staff stride to their best effort to cater for the best possible experience for all space(wo)men! If you have any questions or comments, please ask one of our on-board staff for more infomation.
"; name = "hotel pamphlet"},/obj/item/weapon/paper/pamphlet{info = "
The Twin Nexus Hotel

A place of Sanctuary


Welcome to The Twin-Nexus Hotel, \[insert name here]! The loyal staff stride to their best effort to cater for the best possible experience for all space(wo)men! If you have any questions or comments, please ask one of our on-board staff for more infomation.
"; name = "hotel pamphlet"},/obj/item/weapon/paper/pamphlet{info = "
The Twin Nexus Hotel

A place of Sanctuary


Welcome to The Twin-Nexus Hotel, \[insert name here]! The loyal staff stride to their best effort to cater for the best possible experience for all space(wo)men! If you have any questions or comments, please ask one of our on-board staff for more infomation.
"; name = "hotel pamphlet"},/obj/item/weapon/paper/pamphlet{info = "
The Twin Nexus Hotel

A place of Sanctuary


Welcome to The Twin-Nexus Hotel, \[insert name here]! The loyal staff stride to their best effort to cater for the best possible experience for all space(wo)men! If you have any questions or comments, please ask one of our on-board staff for more infomation.
"; name = "hotel pamphlet"},/obj/item/weapon/paper/pamphlet{info = "
The Twin Nexus Hotel

A place of Sanctuary


Welcome to The Twin-Nexus Hotel, \[insert name here]! The loyal staff stride to their best effort to cater for the best possible experience for all space(wo)men! If you have any questions or comments, please ask one of our on-board staff for more infomation.
"; name = "hotel pamphlet"},/turf/open/floor/plasteel/grimy,/area/ruin/hotel/dock) +"hd" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/drinks/mug/tea,/turf/open/floor/carpet,/area/ruin/hotel/dock) +"he" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/closed/wall,/area/ruin/hotel) +"hf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/ruin/hotel) +"hg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/ruin/hotel/bar) +"hh" = (/obj/structure/kitchenspike,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/freezer,/area/ruin/hotel/bar) +"hi" = (/obj/effect/decal/cleanable/blood/old,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/freezer,/area/ruin/hotel/bar) +"hj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/freezer,/area/ruin/hotel/bar) +"hk" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/freezer,/area/ruin/hotel/bar) +"hl" = (/obj/structure/kitchenspike,/obj/machinery/light{tag = "icon-tube1 (EAST)"; icon_state = "tube1"; dir = 4},/turf/open/floor/plasteel/freezer,/area/ruin/hotel/bar) +"hm" = (/obj/item/weapon/reagent_containers/food/condiment/rice,/obj/item/weapon/reagent_containers/food/condiment/rice,/obj/item/weapon/reagent_containers/food/condiment/flour,/obj/item/weapon/reagent_containers/food/condiment/flour,/obj/structure/closet/secure_closet/freezer/kitchen{req_access = null; req_access_txt = "200"},/turf/open/floor/plasteel/cafeteria,/area/ruin/hotel/bar) +"hn" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/cafeteria,/area/ruin/hotel/bar) +"ho" = (/obj/structure/table/reinforced,/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/cafeteria,/area/ruin/hotel/bar) +"hp" = (/obj/machinery/light{tag = "icon-tube1 (EAST)"; icon_state = "tube1"; dir = 4},/turf/open/floor/carpet,/area/ruin/hotel) +"hq" = (/obj/item/weapon/twohanded/required/kirbyplants{tag = "icon-plant-18"; icon_state = "plant-18"},/turf/open/floor/plasteel/black,/area/ruin/hotel/workroom) +"hr" = (/obj/item/device/radio/beacon,/turf/open/floor/plasteel/black,/area/ruin/hotel/dock) +"hs" = (/obj/structure/table/wood,/turf/open/floor/carpet,/area/ruin/hotel/dock) +"ht" = (/obj/structure/table,/obj/item/weapon/storage/box/monkeycubes,/obj/item/weapon/storage/box/monkeycubes,/turf/open/floor/plasteel/freezer,/area/ruin/hotel/bar) +"hu" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/bear,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/bear,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/corgi,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/corgi,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/monkey,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/monkey,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/pug,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/pug,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/xeno,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/xeno,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/plant,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/plant,/turf/open/floor/plasteel/freezer,/area/ruin/hotel/bar) +"hv" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/bear,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/bear,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/bear,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/corgi,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/corgi,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/monkey,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/monkey,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/pug,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/pug,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/xeno,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/xeno,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/plant,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/plant,/turf/open/floor/plasteel/freezer,/area/ruin/hotel/bar) +"hw" = (/obj/structure/table,/obj/item/weapon/kitchen/knife,/turf/open/floor/plasteel/freezer,/area/ruin/hotel/bar) +"hx" = (/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_x = 4},/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = -4},/obj/structure/table,/turf/open/floor/plasteel/cafeteria,/area/ruin/hotel/bar) +"hy" = (/obj/structure/table,/obj/item/weapon/book/manual/chef_recipes,/turf/open/floor/plasteel/cafeteria,/area/ruin/hotel/bar) +"hz" = (/obj/structure/table/reinforced,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/cafeteria,/area/ruin/hotel/bar) +"hA" = (/obj/machinery/power/apc{cell_type = 5000; dir = 2; name = "Staff Room APC"; pixel_y = -24},/mob/living/simple_animal/bot/medbot{name = "Accidents Happen"},/turf/open/floor/plasteel/black,/area/ruin/hotel/workroom) +"hB" = (/obj/structure/mirror{pixel_y = -32},/turf/open/floor/plasteel/black,/area/ruin/hotel/workroom) +"hC" = (/obj/structure/closet/crate/bin,/obj/structure/extinguisher_cabinet{pixel_y = -30},/turf/open/floor/plasteel/black,/area/ruin/hotel/workroom) +"hD" = (/obj/structure/reagent_dispensers/water_cooler,/turf/open/floor/plasteel/black,/area/ruin/hotel/workroom) +"hE" = (/obj/structure/table,/obj/item/weapon/card/id/away/hotel,/obj/item/weapon/card/id/away/hotel,/obj/item/weapon/card/id/away/hotel,/obj/item/weapon/card/id/away/hotel,/obj/item/weapon/card/id/away/hotel,/obj/item/weapon/card/id/away/hotel,/turf/open/floor/plasteel/black,/area/ruin/hotel/workroom) +"hF" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular,/turf/open/floor/plasteel/black,/area/ruin/hotel/workroom) +"hG" = (/obj/effect/mob_spawn/human/hotel_staff{tag = "icon-sleeper_s (NORTH)"; icon_state = "sleeper_s"; dir = 1},/obj/machinery/light,/turf/open/floor/plasteel/black,/area/ruin/hotel/workroom) +"hH" = (/obj/effect/mob_spawn/human/hotel_staff{tag = "icon-sleeper_s (NORTH)"; icon_state = "sleeper_s"; dir = 1},/turf/open/floor/plasteel/black,/area/ruin/hotel/workroom) +"hI" = (/obj/machinery/door/airlock/maintenance{name = "Hotel Maintenance"; req_access_txt = "200,201"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/ruin/hotel/bar) +"hJ" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/soysauce,/turf/open/floor/plasteel/cafeteria,/area/ruin/hotel/bar) +"hK" = (/obj/structure/table,/obj/machinery/reagentgrinder,/turf/open/floor/plasteel/cafeteria,/area/ruin/hotel/bar) +"hL" = (/obj/structure/table/wood,/obj/structure/window/reinforced,/obj/machinery/light/small{tag = "icon-bulb1 (WEST)"; icon_state = "bulb1"; dir = 8},/turf/open/floor/plasteel/grimy,/area/ruin/hotel/dock) +"hM" = (/obj/structure/table/wood,/obj/structure/window/reinforced,/turf/open/floor/plasteel/grimy,/area/ruin/hotel/dock) +"hN" = (/obj/structure/table/wood,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/open/floor/plasteel/grimy,/area/ruin/hotel/dock) +"hO" = (/obj/machinery/light,/turf/open/floor/plasteel/black,/area/ruin/hotel/dock) +"hP" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/ruin/hotel) +"hQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plating,/area/ruin/hotel) +"hR" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plating,/area/ruin/hotel) +"hS" = (/obj/effect/decal/cleanable/cobweb{icon_state = "cobweb2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/ruin/hotel) +"hT" = (/obj/machinery/vending/dinnerware{req_access_txt = "200"},/turf/open/floor/plasteel/cafeteria,/area/ruin/hotel/bar) +"hU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/ruin/hotel/bar) +"hV" = (/obj/structure/table/wood,/obj/item/device/instrument/guitar,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plasteel/grimy,/area/ruin/hotel/bar) +"hW" = (/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plasteel/grimy,/area/ruin/hotel/bar) +"hX" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/piano{tag = "icon-piano"; icon_state = "piano"},/turf/open/floor/plasteel/grimy,/area/ruin/hotel/bar) +"hY" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/chair/stool,/turf/open/floor/plasteel/grimy,/area/ruin/hotel/bar) +"hZ" = (/obj/machinery/light{dir = 1},/turf/open/floor/carpet,/area/ruin/hotel) +"ia" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/closed/wall,/area/ruin/hotel) +"ib" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/closed/wall,/area/ruin/hotel/power) +"ic" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/ruin/hotel/power) +"id" = (/obj/machinery/door/airlock/engineering{name = "Power Storage"; req_access_txt = "200,201"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/ruin/hotel/power) +"ie" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/closed/wall,/area/ruin/hotel/power) +"if" = (/obj/machinery/smartfridge,/turf/open/floor/plasteel/cafeteria,/area/ruin/hotel/bar) +"ig" = (/obj/structure/table/wood,/obj/item/device/instrument/violin,/turf/open/floor/plasteel/grimy,/area/ruin/hotel/bar) +"ih" = (/turf/open/floor/plasteel/grimy,/area/ruin/hotel/bar) +"ii" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/grimy,/area/ruin/hotel/bar) +"ij" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/carpet,/area/ruin/hotel) +"ik" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/carpet,/area/ruin/hotel) +"il" = (/obj/machinery/door/airlock/glass,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/carpet,/area/ruin/hotel/dock) +"im" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/carpet,/area/ruin/hotel/dock) +"in" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/carpet,/area/ruin/hotel/dock) +"io" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/carpet,/area/ruin/hotel/dock) +"ip" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"iq" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"ir" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/ruin/hotel/power) +"is" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel/yellow/side{tag = "icon-yellow (NORTHWEST)"; icon_state = "yellow"; dir = 9},/area/ruin/hotel/power) +"it" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/yellow/side{tag = "icon-yellow (NORTH)"; icon_state = "yellow"; dir = 1},/area/ruin/hotel/power) +"iu" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/sign/fire{desc = "A poster designed to remind the reader to wear appropriate insulation and head protection when working with material."; icon_state = "safety"; name = "Safety Poster"; pixel_x = 0; pixel_y = 32},/turf/open/floor/plasteel/yellow/side{tag = "icon-yellow (NORTH)"; icon_state = "yellow"; dir = 1},/area/ruin/hotel/power) +"iv" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/airalarm{pixel_y = 24},/turf/open/floor/plasteel/yellow/side{tag = "icon-yellow (NORTH)"; icon_state = "yellow"; dir = 1},/area/ruin/hotel/power) +"iw" = (/obj/machinery/power/apc{cell_type = 5000; dir = 1; name = "Power Storage APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel/yellow/side{tag = "icon-yellow (NORTH)"; icon_state = "yellow"; dir = 1},/area/ruin/hotel/power) +"ix" = (/obj/structure/table,/obj/item/stack/sheet/metal/fifty,/obj/item/stack/sheet/metal/fifty,/turf/open/floor/plasteel/yellow/side{tag = "icon-yellow (NORTHEAST)"; icon_state = "yellow"; dir = 5},/area/ruin/hotel/power) +"iy" = (/obj/machinery/light,/turf/open/floor/plasteel/cafeteria,/area/ruin/hotel/bar) +"iz" = (/obj/structure/extinguisher_cabinet{pixel_y = -30},/turf/open/floor/plasteel/cafeteria,/area/ruin/hotel/bar) +"iA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/airlock{name = "Theatre"; req_access_txt = "200"},/turf/open/floor/plasteel/grimy,/area/ruin/hotel/bar) +"iB" = (/obj/machinery/light,/turf/open/floor/plasteel/grimy,/area/ruin/hotel/bar) +"iC" = (/obj/machinery/light,/turf/open/floor/wood,/area/ruin/hotel) +"iD" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/carpet,/area/ruin/hotel) +"iE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/wood,/area/ruin/hotel) +"iF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/carpet,/area/ruin/hotel/dock) +"iG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/carpet,/area/ruin/hotel/dock) +"iH" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/electrical,/obj/item/clothing/gloves/color/yellow,/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/yellow/side{tag = "icon-yellow (WEST)"; icon_state = "yellow"; dir = 8},/area/ruin/hotel/power) +"iI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/ruin/hotel/power) +"iJ" = (/obj/structure/closet/crate,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/turf/open/floor/plasteel,/area/ruin/hotel/power) +"iK" = (/turf/open/floor/plasteel,/area/ruin/hotel/power) +"iL" = (/obj/structure/table,/obj/item/stack/sheet/glass/fifty,/obj/item/stack/sheet/glass/fifty,/turf/open/floor/plasteel/yellow/side{tag = "icon-yellow (EAST)"; icon_state = "yellow"; dir = 4},/area/ruin/hotel/power) +"iM" = (/obj/item/weapon/twohanded/required/kirbyplants,/turf/open/floor/wood,/area/ruin/hotel) +"iN" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/wood,/area/ruin/hotel) +"iO" = (/obj/machinery/vending/coffee,/turf/open/floor/wood,/area/ruin/hotel) +"iP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/wood,/area/ruin/hotel/dock) +"iQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/ruin/hotel/dock) +"iR" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical,/obj/item/clothing/head/welding,/turf/open/floor/plasteel/yellow/side{tag = "icon-yellow (WEST)"; icon_state = "yellow"; dir = 8},/area/ruin/hotel/power) +"iS" = (/obj/structure/tank_dispenser/oxygen,/turf/open/floor/plasteel,/area/ruin/hotel/power) +"iT" = (/obj/structure/table,/obj/item/stack/sheet/plasteel/twenty,/obj/item/stack/rods{amount = 60},/turf/open/floor/plasteel/yellow/side{tag = "icon-yellow (EAST)"; icon_state = "yellow"; dir = 4},/area/ruin/hotel/power) +"iU" = (/obj/machinery/power/apc{cell_type = 5000; dir = 2; name = "Security APC"; pixel_y = -24},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/ruin/hotel/security) +"iV" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plating,/area/ruin/hotel) +"iW" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/ruin/hotel) +"iX" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plating,/area/ruin/hotel) +"iY" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -24; tag = "icon-alarm0 (NORTH)"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/ruin/hotel/pool) +"iZ" = (/obj/machinery/power/apc{cell_type = 5000; dir = 2; name = "Pool APC"; pixel_y = -24},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/ruin/hotel/pool) +"ja" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/wood,/area/ruin/hotel) +"jb" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/carpet,/area/ruin/hotel) +"jc" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/wood,/area/ruin/hotel) +"jd" = (/obj/machinery/vending/snack,/turf/open/floor/wood,/area/ruin/hotel) +"je" = (/obj/machinery/light{dir = 8},/obj/machinery/power/apc{cell_type = 5000; dir = 2; name = "Dock APC"; pixel_y = -24},/obj/structure/cable,/turf/open/floor/wood,/area/ruin/hotel/dock) +"jf" = (/obj/machinery/light,/turf/open/floor/wood,/area/ruin/hotel/dock) +"jg" = (/obj/structure/chair/comfy/brown{dir = 8},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/wood,/area/ruin/hotel/dock) +"jh" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/wood,/area/ruin/hotel/dock) +"ji" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high,/obj/item/weapon/stock_parts/cell/high,/turf/open/floor/plasteel/yellow/side{tag = "icon-yellow (WEST)"; icon_state = "yellow"; dir = 8},/area/ruin/hotel/power) +"jj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel,/area/ruin/hotel/power) +"jk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/ruin/hotel/power) +"jl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel,/area/ruin/hotel/power) +"jm" = (/obj/structure/table,/obj/item/stack/sheet/rglass{amount = 50},/turf/open/floor/plasteel/yellow/side{tag = "icon-yellow (EAST)"; icon_state = "yellow"; dir = 4},/area/ruin/hotel/power) +"jn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/closed/wall,/area/ruin/hotel/power) +"jo" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/ruin/hotel/security) +"jp" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/closed/wall,/area/ruin/hotel/security) +"jq" = (/obj/machinery/door/airlock/glass_security{name = "Hotel Security Checkpoint"; req_access_txt = "203"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/ruin/hotel/security) +"jr" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/closed/wall,/area/ruin/hotel/security) +"js" = (/obj/structure/closet,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/ruin/hotel) +"jt" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/ruin/hotel/pool) +"ju" = (/obj/machinery/door/airlock/glass,/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/carpet,/area/ruin/hotel/pool) +"jv" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/ruin/hotel/pool) +"jw" = (/obj/machinery/door/airlock/glass,/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/carpet,/area/ruin/hotel/pool) +"jx" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/closed/wall,/area/ruin/hotel/pool) +"jy" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/closed/wall,/area/ruin/hotel/pool) +"jz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/closed/wall,/area/ruin/hotel/dock) +"jA" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high,/obj/item/weapon/stock_parts/cell/high,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/yellow/side{tag = "icon-yellow (WEST)"; icon_state = "yellow"; dir = 8},/area/ruin/hotel/power) +"jB" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/ruin/hotel/power) +"jC" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel,/area/ruin/hotel/power) +"jD" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/ruin/hotel/power) +"jE" = (/turf/open/floor/plasteel/yellow/corner{tag = "icon-yellowcorner (EAST)"; icon_state = "yellowcorner"; dir = 4},/area/ruin/hotel/power) +"jF" = (/obj/structure/extinguisher_cabinet{pixel_x = 30},/turf/open/floor/plasteel/yellow/side{tag = "icon-yellow (NORTHEAST)"; icon_state = "yellow"; dir = 5},/area/ruin/hotel/power) +"jG" = (/turf/closed/wall,/area/ruin/hotel/security) +"jH" = (/turf/open/floor/plasteel/red/side{tag = "icon-red (NORTHWEST)"; icon_state = "red"; dir = 9},/area/ruin/hotel/security) +"jI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/side{tag = "icon-red (NORTH)"; icon_state = "red"; dir = 1},/area/ruin/hotel/security) +"jJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/red/side{tag = "icon-red (NORTH)"; icon_state = "red"; dir = 1},/area/ruin/hotel/security) +"jK" = (/obj/machinery/airalarm{pixel_y = 24},/turf/open/floor/plasteel/red/side{tag = "icon-red (NORTH)"; icon_state = "red"; dir = 1},/area/ruin/hotel/security) +"jL" = (/obj/structure/extinguisher_cabinet{pixel_y = 30},/turf/open/floor/plasteel/red/side{tag = "icon-red (NORTHEAST)"; icon_state = "red"; dir = 5},/area/ruin/hotel/security) +"jM" = (/obj/structure/table,/turf/open/floor/plasteel/darkyellow,/area/ruin/hotel/security) +"jN" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/darkyellow,/area/ruin/hotel/security) +"jO" = (/obj/structure/closet,/obj/item/weapon/dice/d20,/turf/open/floor/plasteel/darkyellow,/area/ruin/hotel/security) +"jP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/ruin/hotel/security) +"jQ" = (/turf/closed/wall,/area/ruin/hotel/pool) +"jR" = (/turf/open/floor/plasteel,/area/ruin/hotel/pool) +"jS" = (/obj/machinery/computer/arcade,/turf/open/floor/plasteel,/area/ruin/hotel/pool) +"jT" = (/obj/structure/extinguisher_cabinet{pixel_y = 30},/turf/open/floor/plasteel,/area/ruin/hotel/pool) +"jU" = (/obj/machinery/light{dir = 1},/turf/open/floor/plasteel,/area/ruin/hotel/pool) +"jV" = (/obj/machinery/firealarm{pixel_y = 24},/turf/open/floor/wood,/area/ruin/hotel/pool) +"jW" = (/turf/open/floor/carpet,/area/ruin/hotel/pool) +"jX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/carpet,/area/ruin/hotel/pool) +"jY" = (/turf/open/floor/wood,/area/ruin/hotel/pool) +"jZ" = (/obj/structure/sign/nosmoking_2{pixel_y = 32},/turf/open/floor/plasteel,/area/ruin/hotel/pool) +"ka" = (/obj/machinery/computer/arcade,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/ruin/hotel/pool) +"kb" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/closed/wall,/area/ruin/hotel/power) +"kc" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/yellow/side{tag = "icon-yellow (WEST)"; icon_state = "yellow"; dir = 8},/area/ruin/hotel/power) +"kd" = (/obj/machinery/power/terminal,/obj/structure/cable/yellow{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel,/area/ruin/hotel/power) +"ke" = (/obj/machinery/power/terminal,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel,/area/ruin/hotel/power) +"kf" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/components/binary/valve{name = "Air Release Valve"; open = 1},/turf/open/floor/plasteel,/area/ruin/hotel/power) +"kg" = (/obj/machinery/light{tag = "icon-tube1 (EAST)"; icon_state = "tube1"; dir = 4},/turf/open/floor/plasteel/yellow/side{tag = "icon-yellow (EAST)"; icon_state = "yellow"; dir = 4},/area/ruin/hotel/power) +"kh" = (/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/red/side{tag = "icon-red (WEST)"; icon_state = "red"; dir = 8},/area/ruin/hotel/security) +"ki" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/ruin/hotel/security) +"kj" = (/obj/structure/chair,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/ruin/hotel/security) +"kk" = (/turf/open/floor/plasteel,/area/ruin/hotel/security) +"kl" = (/turf/open/floor/plasteel/red/side{tag = "icon-red (EAST)"; icon_state = "red"; dir = 4},/area/ruin/hotel/security) +"km" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ruin/hotel/security) +"kn" = (/turf/open/floor/plasteel/darkyellow,/area/ruin/hotel/security) +"ko" = (/obj/structure/chair/stool,/turf/open/floor/plasteel,/area/ruin/hotel/pool) +"kp" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/ruin/hotel/pool) +"kq" = (/obj/machinery/suit_storage_unit/standard_unit,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/yellow/side{tag = "icon-yellow (SOUTHWEST)"; icon_state = "yellow"; dir = 10},/area/ruin/hotel/power) +"kr" = (/obj/machinery/power/smes/engineering,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/sign/electricshock{pixel_y = -32},/turf/open/floor/plasteel/yellow/side,/area/ruin/hotel/power) +"ks" = (/obj/machinery/power/smes/engineering,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel/yellow/side,/area/ruin/hotel/power) +"kt" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/yellow/side,/area/ruin/hotel/power) +"ku" = (/obj/machinery/power/solar_control,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel/yellow/side,/area/ruin/hotel/power) +"kv" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/sign/vacuum{pixel_y = -32},/turf/open/floor/plasteel/yellow/side,/area/ruin/hotel/power) +"kw" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/open/floor/plasteel/yellow/side{tag = "icon-yellow (SOUTHEAST)"; icon_state = "yellow"; dir = 6},/area/ruin/hotel/power) +"kx" = (/turf/open/floor/plasteel/red/side{tag = "icon-red (WEST)"; icon_state = "red"; dir = 8},/area/ruin/hotel/security) +"ky" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/ruin/hotel/security) +"kz" = (/obj/structure/table,/obj/item/weapon/folder/red,/obj/item/weapon/folder/blue,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/ruin/hotel/security) +"kA" = (/obj/structure/table,/obj/item/weapon/storage/fancy/donut_box,/turf/open/floor/plasteel,/area/ruin/hotel/security) +"kB" = (/obj/machinery/door/window/brigdoor{base_state = "rightsecure"; dir = 4; icon_state = "rightsecure"; name = "Cell Door"; req_access = null; req_access_txt = "203"},/turf/open/floor/plasteel/red,/area/ruin/hotel/security) +"kC" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/darkyellow,/area/ruin/hotel/security) +"kD" = (/turf/open/floor/plasteel/vault{dir = 5},/area/ruin/hotel/pool) +"kE" = (/obj/structure/chair,/turf/open/floor/plasteel/vault{dir = 5},/area/ruin/hotel/pool) +"kF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/ruin/hotel/pool) +"kG" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/ruin/hotel/pool) +"kH" = (/turf/closed/wall,/area/ruin/hotel/power) +"kI" = (/obj/machinery/door/airlock/engineering{name = "Air Supply"; req_access_txt = "200,201"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/ruin/hotel/power) +"kJ" = (/obj/machinery/door/airlock/glass_external,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/ruin/hotel/power) +"kK" = (/obj/structure/table,/obj/item/weapon/book/manual/wiki/security_space_law,/turf/open/floor/plasteel/red/side{tag = "icon-red (WEST)"; icon_state = "red"; dir = 8},/area/ruin/hotel/security) +"kL" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/coffee,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/ruin/hotel/security) +"kM" = (/obj/structure/table,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/turf/open/floor/plasteel,/area/ruin/hotel/security) +"kN" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/red/side{tag = "icon-red (EAST)"; icon_state = "red"; dir = 4},/area/ruin/hotel/security) +"kO" = (/turf/open/floor/plasteel/darkyellow,/turf/open/floor/plasteel/warningline,/area/ruin/hotel/security) +"kP" = (/turf/open/floor/plasteel/darkyellow,/turf/open/floor/plasteel/warningline/corner{tag = "icon-warninglinecorners (WEST)"; icon_state = "warninglinecorners"; dir = 8},/area/ruin/hotel/security) +"kQ" = (/obj/machinery/light{dir = 8},/turf/open/floor/plasteel,/area/ruin/hotel/pool) +"kR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/vault{dir = 5},/area/ruin/hotel/pool) +"kS" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/vault{dir = 5},/area/ruin/hotel/pool) +"kT" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/ruin/hotel/pool) +"kU" = (/obj/machinery/light{tag = "icon-tube1 (EAST)"; icon_state = "tube1"; dir = 4},/turf/open/floor/plasteel,/area/ruin/hotel/pool) +"kV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating,/area/ruin/hotel/power) +"kW" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plating,/area/ruin/hotel/power) +"kX" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/structure/sign/atmosplaque{pixel_y = 32},/turf/open/floor/plating,/area/ruin/hotel/power) +"kY" = (/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plating,/area/ruin/hotel/power) +"kZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/ruin/hotel/power) +"la" = (/obj/machinery/light/small{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/ruin/hotel/power) +"lb" = (/obj/structure/table,/obj/machinery/recharger,/obj/structure/sign/goldenplaque{pixel_x = -32},/turf/open/floor/plasteel/red/side{tag = "icon-red (WEST)"; icon_state = "red"; dir = 8},/area/ruin/hotel/security) +"lc" = (/obj/structure/table,/obj/item/weapon/papercutter,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel,/area/ruin/hotel/security) +"ld" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular,/turf/open/floor/plasteel,/area/ruin/hotel/security) +"le" = (/obj/structure/toilet{dir = 4},/turf/open/floor/plating,/area/ruin/hotel/security) +"lf" = (/turf/open/floor/plasteel/darkyellow,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (WEST)"; icon_state = "warningline"; dir = 8},/area/ruin/hotel/security) +"lg" = (/obj/structure/bed,/turf/open/floor/plasteel/darkyellow,/area/ruin/hotel/security) +"lh" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/vault{dir = 5},/area/ruin/hotel/pool) +"li" = (/obj/effect/light_emitter,/turf/open/floor/plating/beach/water{baseturf = /turf/open/space},/area/ruin/hotel/pool) +"lj" = (/turf/open/floor/plating/beach/water{baseturf = /turf/open/space},/area/ruin/hotel/pool) +"lk" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/vault{dir = 5},/area/ruin/hotel/pool) +"ll" = (/obj/structure/table,/turf/open/floor/plasteel,/area/ruin/hotel/pool) +"lm" = (/obj/machinery/shower{dir = 4},/turf/open/floor/plasteel/freezer,/area/ruin/hotel/pool) +"ln" = (/obj/structure/mirror{pixel_y = 32},/obj/structure/sink{pixel_y = 24},/turf/open/floor/plasteel/freezer,/area/ruin/hotel/pool) +"lo" = (/obj/structure/closet/athletic_mixed,/turf/open/floor/plasteel/freezer,/area/ruin/hotel/pool) +"lp" = (/obj/machinery/atmospherics/components/unary/tank/air{dir = 1},/turf/open/floor/plating,/area/ruin/hotel/power) +"lq" = (/obj/machinery/light/small,/obj/machinery/atmospherics/components/unary/tank/air{dir = 1},/turf/open/floor/plating,/area/ruin/hotel/power) +"lr" = (/obj/structure/table,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/restraints/handcuffs,/turf/open/floor/plasteel/red/side{tag = "icon-red (WEST)"; icon_state = "red"; dir = 8},/area/ruin/hotel/security) +"ls" = (/obj/structure/chair{tag = "icon-chair (NORTH)"; icon_state = "chair"; dir = 1},/turf/open/floor/plasteel,/area/ruin/hotel/security) +"lt" = (/obj/structure/table,/obj/item/toy/beach_ball,/obj/item/clothing/glasses/sunglasses,/turf/open/floor/plasteel,/area/ruin/hotel/pool) +"lu" = (/turf/open/floor/plasteel/freezer,/area/ruin/hotel/pool) +"lv" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 2},/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"lw" = (/turf/open/floor/plasteel/red/side{tag = "icon-red (SOUTHWEST)"; icon_state = "red"; dir = 10},/area/ruin/hotel/security) +"lx" = (/turf/open/floor/plasteel/red/side,/area/ruin/hotel/security) +"ly" = (/turf/open/floor/plasteel/red/corner{tag = "icon-redcorner (WEST)"; icon_state = "redcorner"; dir = 8},/area/ruin/hotel/security) +"lz" = (/obj/machinery/light{tag = "icon-tube1 (EAST)"; icon_state = "tube1"; dir = 4},/turf/open/floor/plasteel/red/side{tag = "icon-red (EAST)"; icon_state = "red"; dir = 4},/area/ruin/hotel/security) +"lA" = (/obj/structure/closet,/obj/item/weapon/dice/d1,/obj/effect/decal/cleanable/cobweb{icon_state = "cobweb2"},/turf/open/floor/plasteel/darkyellow,/area/ruin/hotel/security) +"lB" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"lC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"lD" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"lE" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"lF" = (/obj/machinery/door/airlock/glass_security{name = "Hotel Security Checkpoint"; req_access_txt = "203"},/turf/open/floor/plasteel/darkred,/area/ruin/hotel/security) +"lG" = (/obj/structure/window{tag = "icon-window (NORTH)"; icon_state = "window"; dir = 1},/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/pool) +"lH" = (/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/pool) +"lI" = (/obj/structure/closet/crate,/obj/item/clothing/shoes/sandal,/obj/item/clothing/shoes/sandal,/obj/item/clothing/shoes/sandal,/obj/item/clothing/shoes/sandal,/obj/item/clothing/shoes/sandal,/obj/item/clothing/shoes/sandal,/obj/item/clothing/shoes/sandal,/obj/item/clothing/shoes/sandal,/obj/item/clothing/shoes/sandal,/obj/item/clothing/shoes/sandal,/obj/structure/window{tag = "icon-window (NORTH)"; icon_state = "window"; dir = 1},/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/pool) +"lJ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"lK" = (/obj/effect/mob_spawn/human/hotel_staff/security,/turf/open/floor/plasteel/darkred,/area/ruin/hotel/security) +"lL" = (/turf/open/floor/plasteel/darkred,/area/ruin/hotel/security) +"lM" = (/obj/machinery/door/airlock{name = "Men's Changing"},/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/pool) +"lN" = (/obj/machinery/light/small{tag = "icon-bulb1 (WEST)"; icon_state = "bulb1"; dir = 8},/turf/open/floor/plasteel/darkred,/area/ruin/hotel/security) +"lO" = (/obj/structure/mirror{pixel_x = 32},/turf/open/floor/plasteel/darkred,/area/ruin/hotel/security) +"lP" = (/obj/item/weapon/bikehorn/rubberducky,/turf/open/floor/plating/beach/water{baseturf = /turf/open/space},/area/ruin/hotel/pool) +"lQ" = (/obj/structure/table,/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/pool) +"lR" = (/obj/structure/dresser,/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/pool) +"lS" = (/obj/structure/table,/obj/item/weapon/card/id/away/hotel/securty,/turf/open/floor/plasteel/darkred,/area/ruin/hotel/security) +"lT" = (/obj/structure/closet/secure_closet/security{req_access = null; req_access_txt = "203"},/obj/item/weapon/gun/energy/laser/scatter/shotty,/obj/item/clothing/head/helmet/justice,/turf/open/floor/plasteel/darkred,/area/ruin/hotel/security) +"lU" = (/turf/open/floor/plasteel/red/side{tag = "icon-red (SOUTHEAST)"; icon_state = "red"; dir = 6},/area/ruin/hotel/security) +"lV" = (/obj/machinery/power/solar,/obj/structure/cable/yellow{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"lW" = (/obj/machinery/power/solar,/obj/structure/cable/yellow{icon_state = "0-4"; d2 = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"lX" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"lY" = (/obj/machinery/power/solar,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"lZ" = (/obj/machinery/power/solar,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"ma" = (/obj/structure/closet,/turf/open/floor/plating,/area/ruin/hotel) +"mb" = (/obj/structure/table,/obj/item/weapon/lipstick,/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/pool) +"mc" = (/obj/structure/mirror{pixel_y = 32},/obj/structure/sink{pixel_y = 24},/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/pool) +"md" = (/turf/closed/wall,/area/ruin/hotel/custodial) +"me" = (/mob/living/simple_animal/bot/cleanbot,/turf/open/floor/plasteel/neutral,/area/ruin/hotel/custodial) +"mf" = (/obj/structure/reagent_dispensers/watertank,/obj/machinery/light/small{tag = "icon-bulb1 (NORTH)"; icon_state = "bulb1"; dir = 1},/turf/open/floor/plasteel/neutral,/area/ruin/hotel/custodial) +"mg" = (/obj/structure/janitorialcart,/obj/item/weapon/mop,/turf/open/floor/plasteel/neutral,/area/ruin/hotel/custodial) +"mh" = (/obj/structure/closet/l3closet/janitor,/turf/open/floor/plasteel/neutral,/area/ruin/hotel/custodial) +"mi" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/bucket,/obj/item/weapon/reagent_containers/spray/cleaner,/turf/open/floor/plasteel/neutral,/area/ruin/hotel/custodial) +"mj" = (/obj/structure/table,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/turf/open/floor/plasteel/neutral,/area/ruin/hotel/custodial) +"mk" = (/obj/structure/table,/obj/machinery/light/small{tag = "icon-bulb1 (NORTH)"; icon_state = "bulb1"; dir = 1},/obj/item/device/lightreplacer,/turf/open/floor/plasteel/neutral,/area/ruin/hotel/custodial) +"ml" = (/turf/open/floor/plasteel/neutral,/area/ruin/hotel/custodial) +"mm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/ruin/hotel/custodial) +"mn" = (/obj/machinery/door/airlock{name = "Women's Changing"},/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/pool) +"mo" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/neutral,/area/ruin/hotel/custodial) +"mp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/neutral,/area/ruin/hotel/custodial) +"mq" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/closed/wall,/area/ruin/hotel/custodial) +"mr" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/ruin/hotel/pool) +"ms" = (/obj/structure/window,/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/pool) +"mt" = (/obj/structure/closet/crate,/obj/item/clothing/shoes/sandal,/obj/item/clothing/shoes/sandal,/obj/item/clothing/shoes/sandal,/obj/item/clothing/shoes/sandal,/obj/item/clothing/shoes/sandal,/obj/item/clothing/shoes/sandal,/obj/item/clothing/shoes/sandal,/obj/item/clothing/shoes/sandal,/obj/item/clothing/shoes/sandal,/obj/item/clothing/shoes/sandal,/obj/structure/window,/turf/open/floor/plasteel/showroomfloor,/area/ruin/hotel/pool) +"mu" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/neutral,/area/ruin/hotel/custodial) +"mv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral,/area/ruin/hotel/custodial) +"mw" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral,/area/ruin/hotel/custodial) +"mx" = (/obj/machinery/door/airlock{name = "Custodial Closet"; req_access_txt = "200,201"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/ruin/hotel/custodial) +"my" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plating,/area/ruin/hotel) +"mz" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/ruin/hotel) +"mA" = (/obj/machinery/door/airlock/maintenance{name = "Hotel Maintenance"; req_access_txt = "201"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/ruin/hotel/pool) +"mB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/ruin/hotel/pool) +"mC" = (/obj/structure/chair{tag = "icon-chair (NORTH)"; icon_state = "chair"; dir = 1},/turf/open/floor/plasteel/vault{dir = 5},/area/ruin/hotel/pool) +"mD" = (/obj/item/weapon/twohanded/required/kirbyplants{tag = "icon-plant-25"; icon_state = "plant-25"},/turf/open/floor/plasteel/neutral,/area/ruin/hotel/custodial) +"mE" = (/obj/structure/table,/turf/open/floor/plasteel/neutral,/area/ruin/hotel/custodial) +"mF" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/neutral,/area/ruin/hotel/custodial) +"mG" = (/obj/machinery/light/small,/turf/open/floor/plasteel/neutral,/area/ruin/hotel/custodial) +"mH" = (/obj/structure/closet/crate/trashcart,/turf/open/floor/plasteel/neutral,/area/ruin/hotel/custodial) +"mI" = (/obj/structure/table,/obj/item/weapon/storage/bag/trash,/turf/open/floor/plasteel/neutral,/area/ruin/hotel/custodial) +"mJ" = (/obj/machinery/power/apc{cell_type = 5000; dir = 2; name = "Custodial APC"; pixel_y = -24},/obj/structure/cable,/turf/open/floor/plasteel/neutral,/area/ruin/hotel/custodial) +"mK" = (/obj/structure/closet/secure_closet/personal,/turf/open/floor/plasteel,/area/ruin/hotel/pool) +"mL" = (/obj/machinery/light,/obj/structure/table,/obj/item/toy/beach_ball,/obj/item/clothing/glasses/sunglasses,/turf/open/floor/plasteel,/area/ruin/hotel/pool) +"mM" = (/obj/machinery/light,/obj/structure/table,/turf/open/floor/plasteel,/area/ruin/hotel/pool) +"mN" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/firedoor,/turf/open/floor/plating,/area/ruin/hotel/pool) +"mO" = (/obj/machinery/power/tracker,/obj/structure/cable/yellow,/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaacaaaaacaaaaacaaaaacaaabaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaacaaaaacaaaaacaaaaacaaaaabaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaadaaaaadaaaaadaaaaadaaaaabaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaeaaaaaeaaaaaeaaaaaeaaaaabaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacaeaaaaaeaaaaaeaaaaaeaaaaabaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaeaaaaaeaaaaaeaaaaaeaaaaabaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaeaaaaaeaaaaaeaaaaaeaaaaabaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababaaaaafagahagagahagagahagagahaiacacabaaaaaaaaaa +aaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababaaacacaaajaaakaaaaakaaaaakaaaaakaaaaabaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabaaaaaaacaaaaaaaaaaacaaaaaaaaaaacaaaaaaacaaaaaaaaaaacaaaaaaacaaaaaaaaaaacaaaaaaacaaaaaaacaaajaaakaaaaakaaaaakaaaaakaaaaabaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabaaafagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagalaaakaaaaakaaaaakaaaaakaaaaabaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabaaajamamamananananananaoaoaoananapapapapapaqaqaqapaparararararasasasararatatatatatauauauatataaakaaaaakaaaaakaaaaakaaaaabaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabaaajamavawanaxayazaAaBaBaCaDaEanaFaGaHaIaJaJaKaLaMapaNaOaPaQaRaRaSaTaUaraVaWaXaYaZaZbabbbcataabdaaaabdaaaabdaaaabdaaaaabaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabacajamawawanazbebfanbgbhbiaBbjanaHbkblapbmbnboaJbpapaPbqbrarbsbtbuaRbvaraXbwbxatbybzbAaZbBataaaaaaaaacaaaaacaaaaacaaaaabaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabaaajambCawanazbeazanbDbEbiaBbjanaHbkaHapbFbGboaJbpapaPbqaParbHbIbuaRbvaraXbwaXatbJbKbAaZbBataaaaaaaaacaaaaacaaaaacaaabaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabaaajambLawanazazbManbNbObPbQbRanaHaHbSapbTbUbVbWbXapaPaPbYarbZcacbcccdaraXaXceatcfcgchcicjatacacacabababababababababaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabaaajamckawananananananclcmanananapapapapapcncoapapaparararararcpcqarararatatatatatcrcsatatataaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabaaajctcucvcwcxcxcxcxcxcyczcxcxcxcxcxcxcxcxcycAcxcxcxcxcxcxcBcxcycCcxcxcxcDcxcxcxcxcycEcFcFcGaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabaaajcHcIcJcKcLcLcLcLcLcMcNcLcLcLcLcLcLcLcLcMcNcLcLcLcLcLcOcNcLcMcNcLcLcLcLcLcLcLcLcPcFcFcFcGaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabacajcHcQawamcFcFcFcRcFcScTcFcFcUcFcRcFcFcFcScVcFcFcRcFcFcWcXcFcScYcFcFcFcFcFcFcFcRcFcFcFcFcGaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabaaajcHcQawcZcZcZcZcZcZdadbcZcZcZdcdcdcdcdcdddedcdcdcdfamdgdhdidjdhdididididididiamcGcGcGamamacacabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabaaajcHcQbCcZdkdldmcZdndodpdqdrcZdsdtdudcdvdwdxdydzdccFcFcWdhdAdBdCdDdEdidFdGdFdiacacacacacacaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabaaajcHcQawcZdHdIdHcZdJdKdLdMdNcZdOdPdOdcdQdRdSdTdUdccFcFcWdhdVdWdXdYdZeaeaeaebdidiecececdidiaaaaaaabababababaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabacajcHcQedcZdHdIeecZefegehdMdNcZdOdPeidcejekeldTdUdcemcFcWdheneoepepeqepeperdVdVdVdVdVdVdVdiaaaaaaaaaaacaaaaabaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaacajcHcQawcZdHdHdHesdMetdMdMeucZdOdOdOevdTewdTdTexdccFcFcWdheyeyeyezeAdVdFdGdFdVeBeCeDeEeFdiaaaaaaaaaaacaaaaabaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabaaafagalcHcQawcZcZcZcZcZcZcZcZcZcZcZdcdcdcdcdcdcdcdcdcdcdfamdgdhdidididididididididididididididieGeGeGeGeGeGaaaaabaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabaaajctcweHeIeJeJeJeJeJeKawawaweLawawawawawawawawawaweMeNcFcFcWeOePeQeQeReSeTeUeGeVeWeXeYeZeWfafbfceXeYeZeWeGaaaaabaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabaaajcHfdcJfeawckfffgawfhfififjfifififififififififjfictcwcxcxfkflfmfnfnfofmfpfqfrfsftfufufufufufufufufufueWfvaaaaabaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabaaajcHcQfififjfififififififwfxfxfyfzfAfBfCfDfEfFfGfHfIfJfKfKfLfMfMfMfMfMfMfNameGfOfufufufufufufufufufufufufvaaaaabaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabacajcHcQfifPfQfRfRfSfQfQfTfxfxfxfxfxfxfGfGfGfGfGfGfUcFcFcFcFcFcFcFcFcFcFcFfVfKfWfXfufufufufufufufufufufufufvaaaaabaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabaaajcHcQfifYfQfQfQfQfQfZfigafxgbgcfxfAfHfUfHfHgdfHfHcFcFcFcRcFgecFcFcFcFcFcFcFgffufufufugggheGeGeGghggfugieGacacabaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabaaajcHgjfigkglgmgnfQfQgofigafxgpgqfxfAgrfGgrfGgrfGgrcFcFdidigsdididididididididigtgugvfueWeWgwgxgweWeWfugyfvaaaaabaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabaaajcHcQfigkgzgAgBfQfQgkfigCfxgDgEfxfAfGfGfGfGfGfGfGcFcFdigFgGgHgIgJgKgLgMgMgMdigNgOgPfueWgwgQgRgSgweWfugyfvaaaaabaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabaaajcHcQfigkgzfQfQfQfQgofigTgUgVgVgVgWgrgXgYgZgXgYgZcFcFdihagGgGgGgGgGgGgGgGgGgshbhbhcfueWgwgwgwgwgweWfuhdfvaaaaabaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabacajhehfhghhhihjhkfQgAhlfihmhnfxfxfxhofGfGfGfGfGfGfGcFhpdihqgGgGgGgGgGgGgGgGgGgshbhbhcfueWgwgwhrgwgweWfuhsfvaaaaabaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabaaajcHcQfihtgzhuhvfQfQhwfigahnhxhyfxhzgrgXgYgZgXgYgZcFcFdihAgGhBhChDhEhFhGhHhHdigNgOgPfueWgwgwgwgwgweWfugyfvaaaaabaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabaaajcHcQfifihIfifififififigahnhJhKfxhzfGfGfGfGfGfGfGcFcFdidigsdididididididididihLhMhNfueWeWgwhOgweWeWfugyfvaaaaabaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabaaajcHhPcJhQhRcJcJcJcJhSfihThngpgpfxhUhVhWhWhWhWhXhYcFcFcFcFcFcFcFcFcFcFcFhZcFgffufufufugggheGeGeGghggfugieGacacabaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabaaajiaibicidiciciciciecQfiifhnfxfxfxhUigihihihihihiicFcFcFcFcFcFcFcFcFcFijikcLiliminininininininininininiofvaaaaabaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabacipiqirisitiuiviwixircQfiiyhnfxizfxiAihihihiBihihiieTeTiCeTeTeTeTeTcFcFiDiEameGiFfufufufufufufufufufufuiGfvaaaaabaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaajiriHiIiJiJiKiLircQfifihIfififihUfififififififiamamamamamamamiMcFcFcWiNiOeGiPeWfufufufufufufufufufuiQfvaaaaabaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaajiriRiIiSiSiKiTirhPcJiUiVcJcJcJiWcJcJcJcJiXcJcJcJcJiYiZcJcJcKjacLcLjbjcjdeGjeeWeXeYeZeWeWjfeWeXeYjgjheGaaaaabaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaajirjijjjkjliKjmjnjojojpjqjojojojrjojojpjshfjtjtjtjtjtjtjtjtjtjtjujvjwjxjtjtjtjtjtjtjyjtjtfrfrfrfrjzeGeGaaaaabaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaajirjAjBiKjCjDjEjFjGjHjIjJjKjLjGjMjNjOjPckcQjQjRjSjSjSjRjTjUjRjVjWjWjXjYjZjUjRjRjSjSkajRjQaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabacajkbkckdkekfiKiKkgjGkhkikjkkklkmknknknjPbLcQjQjRkokokojRjRjRjRjYjWjWjXjYjRjRjRjRkokokpjRjQaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaajirkqkrksktkukvkwjGkxkykzkAklkBknknkCjPawcQjQjRjRkDkDkEkEkEkDjYjYjYkFjYkDkEkEkEkDkDkGjRjQaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaajirkHkHkHkIkHkHkJjGkKkkkLkMkNkmkOkPknjPawcQjQkQjRkDkDkDkDkDkDkDkDkDkRkSkSkSkSkSkSkSkTkUjQjQjQjQjQjQacacacabaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaajirkVkWkXkYkZkHlajGlbkklcldkljGlelflgjPawcQjQjRjRlhkDliljljljljljljljljljljljlikDlkjRlljQlmlnlnlojQaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabaaaaajirlplplqlplpkHkJjGlrkklskkkljGjGjGjGjPedcQjQjRjRlhkDljljljljljljljljljljljljljkDlkjRltjQlmlululojQaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaabaalvaaajirkHkHkHkHkHkHajjGlwlxlxlylzjGjMjNlAjPawcQjQjRjRlhkDljljljljljljljljljljljljljkDlkjRlljQlmlululojQaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaabaaaalBlClDlEaaaaaaaaaaaaajjGjGlFjGkxklkmknknknjPawcQjQjRjRkDkDljljljljljljljljljljljljljkDkDjRjRjQlGlHlHlIjQaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaabacacacacaclJagagagagagagaljGlKlLjGkxklkBknknkCjPawcQjQjRjRkDkDljljljljljljliljljljljljljkDkDjRjRlMlHlHlHlHjQacacabaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaabaaaaaaaaaaajaaaaaaaaaaaaaajGlNlOjGkxklkmkOkPknjPawcQjQkQjRkDkDljljljljlPljljljljljljljljkDkDjRkUjQlQlHlHlRjQaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaabaaaaaaaaaaaaajaaaaaaaaaaaaaajGlSlTjGlwlUjGlelflgjPcIfejQjRjRlhkDljljljljljljljljljljljljljkDlkjRjRjQjQjQjQjQjQaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaabaclVlWlWlWlWlXlYlYlYlYlZacacjGjGjGjGjGjGjGjGjGjGjPcQmajQjRjRlhkDljljljljljljljljljljljljljkDlkjRjRjQmbmcmclRjQaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaabaaaaaaaaaaaaajaaaaaaaaaaaaaaaamdmemfmgmhmimjmkmlmmcQckjQjRjRlhkDliljljljljljljljljljljljlikDlkjRjRmnlHlHlHlHjQaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaabaaaaaaaaaaaaajaaaaaaaaaaaaaaaamdmlmlmlmlmompmpmpmqhfcvjtmrjRkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDkDjRjRjQmslHlHmtjQaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaabaclVlWlWlWlWlXlYlYlYlYlZacacacmdmlmlmlmumvmvmvmwmxmymzmAmBkTkDkDmCmCmCkDkDmCmCmCkDkDmCmCmCkDkDjRjRjQlmlululojQacacabaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaabaaaaaaaaaaaaajaaaaaaaaaaaaaaaamdmDmEmFmGmHmImlmJmdawedjQkQjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRjRkUjQlmlululojQaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaabaaaaaaaaaaaaajaaaaaaaaaaaaaaaamdmdmdmdmdmdmdmdmdmdawfgjQjRmKmKmKmKmKmLllmKmKmKmKmKllmMmKmKmKmKmKjRjQlmlululojQaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaabaclVlWlWlWlWlXlYlYlYlYlZacacacacacaaaaaaaaacaaaaamamamjQjQjQmNmNmNmNjQjQmNmNmNmNmNjQjQmNmNmNmNjQjQjQjQjQjQjQjQaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaabaaaaaaaaaaaaajaaaaaaaaaaaaaaaaaaacaaaaaaaaacaaaaaaaaaaaaaaacaaaaaaaaaaacaaaaaaaaaaacaaaaaaaaaaacaaaaaaaaaaaaacaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaabaaaaaaaaaaaaajaaaaaaaaaaaaaaabababababababababaaaaaaaaaaaaacaaaaaaaaaaacaaaaaaaaaaacaaaaaaaaaaacaaaaaaaaaaaaacaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaabaclVlWlWlWlWajlYlYlYlYlZacabaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaabaaaaaaaaaaaamOaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaabababababaaacaaabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +"} diff --git a/_maps/RandomRuins/SpaceRuins/turretedoutpost.dmm b/_maps/RandomRuins/SpaceRuins/turretedoutpost.dmm new file mode 100644 index 0000000..fad4029 --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/turretedoutpost.dmm @@ -0,0 +1,69 @@ +"a" = (/turf/open/space,/area/space) +"b" = (/obj/structure/lattice,/turf/open/space,/area/space) +"c" = (/obj/structure/grille,/turf/open/floor/plating,/area/ruin/turretedoutpost) +"d" = (/turf/closed/wall/r_wall,/area/ruin/turretedoutpost) +"e" = (/obj/structure/table/reinforced,/obj/item/weapon/stock_parts/cell/hyper,/turf/open/floor/plasteel,/area/ruin/turretedoutpost) +"f" = (/obj/structure/frame/computer,/turf/open/floor/plasteel,/area/ruin/turretedoutpost) +"g" = (/turf/open/floor/plasteel,/area/ruin/turretedoutpost) +"h" = (/obj/machinery/light{dir = 1},/turf/open/floor/plasteel,/area/ruin/turretedoutpost) +"i" = (/obj/machinery/door/airlock/external,/turf/open/floor/plating,/area/ruin/turretedoutpost) +"j" = (/obj/machinery/light{dir = 1},/turf/open/floor/plating,/area/ruin/turretedoutpost) +"k" = (/turf/open/floor/plating,/area/ruin/turretedoutpost) +"l" = (/turf/open/floor/plating/airless,/area/ruin/turretedoutpost) +"m" = (/obj/structure/table/reinforced,/obj/item/weapon/folder,/obj/item/device/radio,/turf/open/floor/plasteel,/area/ruin/turretedoutpost) +"n" = (/obj/structure/chair/office/dark{dir = 8},/turf/open/floor/plasteel,/area/ruin/turretedoutpost) +"o" = (/obj/machinery/porta_turret,/turf/open/floor/plating/airless,/area/ruin/turretedoutpost) +"p" = (/obj/structure/filingcabinet,/turf/open/floor/plasteel,/area/ruin/turretedoutpost) +"q" = (/obj/machinery/light,/turf/open/floor/plasteel,/area/ruin/turretedoutpost) +"r" = (/obj/machinery/power/apc{dir = 0;name = "Worn-out APC";pixel_y = -24},/turf/open/floor/plasteel,/area/ruin/turretedoutpost) +"s" = (/obj/structure/rack,/turf/open/floor/plasteel{icon_state = "vault";dir = 8},/area/ruin/turretedoutpost) +"t" = (/obj/item/weapon/rack_parts,/turf/open/floor/plasteel{icon_state = "vault";dir = 8},/area/ruin/turretedoutpost) +"u" = (/obj/item/weapon/rack_parts,/obj/machinery/light{dir = 1},/turf/open/floor/plasteel{icon_state = "vault";dir = 8},/area/ruin/turretedoutpost) +"v" = (/obj/structure/rack,/obj/item/device/firing_pin,/turf/open/floor/plasteel{icon_state = "vault";dir = 8},/area/ruin/turretedoutpost) +"w" = (/obj/machinery/door/airlock/glass,/turf/open/floor/plasteel,/area/ruin/turretedoutpost) +"x" = (/obj/machinery/door/airlock,/turf/open/floor/plasteel,/area/ruin/turretedoutpost) +"y" = (/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/turretedoutpost) +"z" = (/obj/structure/tank_dispenser/oxygen,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/turretedoutpost) +"A" = (/obj/structure/table/reinforced,/obj/item/clothing/head/ushanka,/turf/open/floor/plasteel{dir = 4;icon_state = "darkredfull"},/area/ruin/turretedoutpost) +"B" = (/obj/structure/table/reinforced,/obj/structure/reagent_dispensers/peppertank{pixel_y = 32},/turf/open/floor/plasteel,/area/ruin/turretedoutpost) +"C" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/obj/machinery/light{dir = 1},/obj/item/device/radio,/turf/open/floor/plasteel,/area/ruin/turretedoutpost) +"D" = (/obj/machinery/vending/clothing,/turf/open/floor/plasteel,/area/ruin/turretedoutpost) +"E" = (/obj/structure/rack,/obj/item/ammo_box/c9mm,/turf/open/floor/plasteel{icon_state = "vault";dir = 8},/area/ruin/turretedoutpost) +"F" = (/obj/machinery/door/airlock/glass,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/turretedoutpost) +"G" = (/turf/open/floor/plasteel{dir = 4;icon_state = "darkredfull"},/area/ruin/turretedoutpost) +"H" = (/obj/structure/bed,/obj/item/weapon/bedsheet/orange,/obj/machinery/light{dir = 4;icon_state = "tube1"},/turf/open/floor/plasteel,/area/ruin/turretedoutpost) +"I" = (/obj/structure/rack,/obj/item/clothing/head/helmet/swat,/turf/open/floor/plasteel{icon_state = "vault";dir = 8},/area/ruin/turretedoutpost) +"J" = (/obj/structure/rack,/obj/item/weapon/crowbar/red,/obj/item/weapon/paper/crumpled,/turf/open/floor/plasteel{icon_state = "vault";dir = 8},/area/ruin/turretedoutpost) +"K" = (/obj/structure/chair/office/dark,/turf/open/floor/plasteel,/area/ruin/turretedoutpost) +"L" = (/obj/structure/chair/comfy/beige{dir = 4},/turf/open/floor/plasteel,/area/ruin/turretedoutpost) +"M" = (/obj/structure/bed,/obj/item/weapon/bedsheet/orange,/turf/open/floor/plasteel,/area/ruin/turretedoutpost) +"N" = (/obj/structure/rack,/obj/item/weapon/grenade/chem_grenade/teargas,/turf/open/floor/plasteel{icon_state = "dark"},/area/ruin/turretedoutpost) +"O" = (/obj/structure/table/reinforced,/obj/item/weapon/paper/crumpled,/turf/open/floor/plasteel{dir = 4;icon_state = "darkredfull"},/area/ruin/turretedoutpost) +"P" = (/obj/structure/table/reinforced,/obj/machinery/light,/obj/item/device/camera_bug,/turf/open/floor/plasteel,/area/ruin/turretedoutpost) +"Q" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/open/floor/plasteel,/area/ruin/turretedoutpost) +"R" = (/obj/structure/table/reinforced,/obj/item/weapon/pen/blue,/turf/open/floor/plasteel,/area/ruin/turretedoutpost) +"S" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka{pixel_x = -4;pixel_y = 4},/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka/badminka{pixel_x = 3},/turf/open/floor/plasteel,/area/ruin/turretedoutpost) +"T" = (/obj/structure/rack,/obj/item/weapon/storage/belt/military,/obj/machinery/light,/turf/open/floor/plasteel{icon_state = "vault";dir = 8},/area/ruin/turretedoutpost) +"U" = (/obj/structure/rack,/obj/item/clothing/head/helmet/riot,/turf/open/floor/plasteel{icon_state = "vault";dir = 8},/area/ruin/turretedoutpost) +"V" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/snacks/breadslice/meat,/obj/machinery/light{icon_state = "tube1";dir = 8},/turf/open/floor/plasteel,/area/ruin/turretedoutpost) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaabbab +aaaaabaabbaaaaabababbb +aaaaababbacccccccccccc +aaaaabbbbbcddddddddddd +aaaaabaaaacdefffghijki +aaalllllllcdmnggggikki +aaloddddddcdpqgggrdddd +aalddstuvdddddwdxddkkc +aaldtyyyyzdABCgdgDdddc +aaldsysEyyFGgggdgggHdc +bbldIysJyyFGgKgdLggMdc +abldsyyyyNdOPQRdSggMdc +ablddstTUdddddddVggMdc +aaloddddddolllcddddddc +abbllllllllbbacccccccc +aabbbbbabbbbaabbbaaaba +aaabaabaaaabaababaaabb +aaaaaaaaaaaaaabaaaaaaa +"} diff --git a/_maps/RandomRuins/SpaceRuins/vaporwave.dmm b/_maps/RandomRuins/SpaceRuins/vaporwave.dmm new file mode 100644 index 0000000..09649f6 --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/vaporwave.dmm @@ -0,0 +1,58 @@ +"a" = (/turf/open/space,/area/space) +"b" = (/obj/structure/lattice,/turf/open/space,/area/space) +"c" = (/obj/structure/lattice,/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) +"d" = (/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) +"e" = (/obj/structure/lattice,/turf/open/floor/plating/airless,/area/ruin/unpowered/no_grav) +"f" = (/turf/closed/wall,/area/ruin/powered/aesthetic) +"g" = (/turf/closed/wall/rust,/area/ruin/powered/aesthetic) +"h" = (/obj/effect/overlay/palmtree_r,/turf/open/floor/holofloor/beach,/area/ruin/powered/aesthetic) +"i" = (/obj/structure/piano,/obj/structure/window{icon_state = "rwindow"; dir = 8},/turf/open/floor/plasteel/vaporwave,/area/ruin/powered/aesthetic) +"j" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/vaporwave,/area/ruin/powered/aesthetic) +"k" = (/turf/open/floor/plasteel/vaporwave,/area/ruin/powered/aesthetic) +"l" = (/obj/structure/chair/comfy/black{dir = 4},/turf/open/floor/plasteel/vaporwave,/area/ruin/powered/aesthetic) +"m" = (/obj/structure/table/reinforced,/obj/item/device/taperecorder,/turf/open/floor/plasteel/vaporwave,/area/ruin/powered/aesthetic) +"n" = (/obj/structure/chair/comfy/black{dir = 8},/turf/open/floor/plasteel/vaporwave,/area/ruin/powered/aesthetic) +"o" = (/obj/structure/window{icon_state = "rwindow"; dir = 4},/turf/open/floor/plasteel/vaporwave,/area/ruin/powered/aesthetic) +"p" = (/obj/effect/overlay/palmtree_l,/turf/open/floor/holofloor/beach,/area/ruin/powered/aesthetic) +"q" = (/turf/open/floor/holofloor/beach,/area/ruin/powered/aesthetic) +"r" = (/obj/structure/window{icon_state = "rwindow"; dir = 8},/turf/open/floor/plasteel/vaporwave,/area/ruin/powered/aesthetic) +"s" = (/obj/structure/table/reinforced,/obj/item/clothing/glasses/sunglasses/big{name = "aesthetic sunglasses"},/turf/open/floor/plasteel/vaporwave,/area/ruin/powered/aesthetic) +"t" = (/obj/item/device/instrument/eguitar,/turf/open/floor/holofloor/beach,/area/ruin/powered/aesthetic) +"u" = (/turf/open/floor/holofloor/beach/coast_t,/area/ruin/powered/aesthetic) +"v" = (/obj/item/weapon/statuebust,/turf/open/floor/plasteel/vaporwave,/area/ruin/powered/aesthetic) +"w" = (/mob/living/simple_animal/butterfly,/turf/open/floor/plasteel/vaporwave,/area/ruin/powered/aesthetic) +"x" = (/obj/structure/closet/crate/bin,/obj/item/device/tape/random,/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) +"y" = (/turf/open/floor/holofloor/beach/coast_b,/area/ruin/powered/aesthetic) +"z" = (/obj/structure/fans/tiny,/obj/machinery/door/airlock/hatch,/turf/open/floor/pod/dark,/area/ruin/powered/aesthetic) +"A" = (/obj/effect/decal/sandeffect,/turf/open/floor/plating/astplate,/area/ruin/unpowered/no_grav) +"B" = (/turf/open/floor/plating/astplate,/area/ruin/unpowered/no_grav) +"C" = (/obj/structure/statue/sandstone/venus{desc = "Ugh, this is merely an ugly amateurish replica of the other statue! The letters RIPGOAT are scribbled onto the base."; dir = 8},/turf/open/floor/plating/astplate,/area/ruin/unpowered/no_grav) +"D" = (/turf/open/floor/plasteel/airless/asteroid{tag = "icon-recharge_floor_asteroid"; icon_state = "recharge_floor_asteroid"},/area/ruin/unpowered/no_grav) +"E" = (/turf/open/floor/plasteel/airless/asteroid,/area/ruin/unpowered/no_grav) +"F" = (/obj/structure/statue/sandstone/venus{dir = 4},/turf/open/floor/plating/astplate,/area/ruin/unpowered/no_grav) +"G" = (/turf/open/floor/plating/astplate/warning,/area/ruin/unpowered/no_grav) +"H" = (/obj/effect/overlay/palmtree_l,/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) +"I" = (/turf/open/space,/obj/effect/decal/sandeffect,/turf/open/floor/plasteel/airless/asteroid{tag = "icon-platingsandeffect"; icon_state = "platingsandeffect"},/area/ruin/unpowered/no_grav) +"J" = (/turf/open/floor/plasteel/airless/asteroid{tag = "icon-stairs-l"; icon_state = "stairs-l"},/area/ruin/unpowered/no_grav) +"K" = (/turf/open/floor/plasteel/airless/asteroid{tag = "icon-stairs-m"; icon_state = "stairs-m"},/area/ruin/unpowered/no_grav) +"L" = (/turf/open/floor/plasteel/airless/asteroid{tag = "icon-stairs-r"; icon_state = "stairs-r"},/area/ruin/unpowered/no_grav) +"M" = (/obj/effect/overlay/palmtree_r,/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav) +"N" = (/obj/effect/decal/sandeffect,/turf/open/floor/plasteel/airless/asteroid,/area/ruin/unpowered/no_grav) + +(1,1,1) = {" +aaaaaaaaaaaabaaaaaa +aaaaaabaaaaabaaaaaa +aaaaaccdddddcddaaaa +aaadddeddcccedddaaa +aaddffgfffggfgfdaaa +adddfhijklmnopfddaa +bccegqrkklsnotgecbb +addcghrkkkkkopfcdda +aaddgurvkkkwougxdda +abcefyrkkkkkoygecda +aaddgffffzfgfggddda +aaddABBCDEDFGBAddaa +aaadddHIJKLIMddddaa +aaaadddANEEAdddaaaa +aaaaaadddNNAdaaaaaa +"} diff --git a/_maps/RandomRuins/SpaceRuins/way_home.dmm b/_maps/RandomRuins/SpaceRuins/way_home.dmm new file mode 100644 index 0000000..11ebd09 --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/way_home.dmm @@ -0,0 +1,37 @@ +"a" = (/turf/open/space,/area/space) +"b" = (/turf/closed/mineral/random,/area/ruin/unpowered/no_grav/way_home) +"c" = (/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav/way_home) +"d" = (/obj/structure/signpost/salvation,/turf/open/floor/plating/asteroid/airless,/area/ruin/unpowered/no_grav/way_home) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaabaaaaaaaaaaaaaaa +aaaaaaaaaaaaabbbaaaaaaaaaaaaaa +aaaaaaaaaabbbbbbbbbaaaaaaaaaaa +aaaaaaaaaaabbbbbbbbaaaaaaaaaaa +aaaaaaaaaabbbbbbbbaaaaaaaaaaaa +aaaaaaaaabbbbbbbbbaaaaaaaaaaaa +aaaaaaaaabbbbbbbbbbaaaaaaaaaaa +aaaaaaaabbbbbbbbbbbbaaaaaaaaaa +aaaaaaabbbbbbbbcbbbaaaaaaaaaaa +aaaaaaabbbbbbbcccaaaaaaaaaaaaa +aaaaaabbbbbbbbccaaaaaaaaaaaaaa +aaaaaabbbbbbcccaaaaaaaaaaaaaaa +aaaaaaabbbcccccaaaaaaaaaaaaaaa +aaaaaaabbaacccccaaaaaaaaaaaaaa +aaaaaaaaaaaaaccccaaaaaaaaaaaaa +aaaaaaaaaaaaaccdccaaaaaaaaaaaa +aaaaaaaaaaaaaccccccaaaaaaaaaaa +aaaaaaaaaaaaaaccccccaaaaaaaaaa +aaaaaaaaaaaaaacccbccaaaaaaaaaa +aaaaaaaaaaaaaaaccbbccaaaaaaaaa +aaaaaaaaaaaaaaacbbbbbaaaaaaaaa +aaaaaaaaaaaaaaacbbbbbbaaaaaaaa +aabbaaaaaaaaaaaabbbbbbbaaaaaaa +aabbbaaaaaaaaaabbbbbbbbbaaaaaa +aaabaaaaaaaaaabbaaabbbabaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +"} diff --git a/_maps/RandomZLevels/Academy.dmm b/_maps/RandomZLevels/Academy.dmm new file mode 100644 index 0000000..f7026bd --- /dev/null +++ b/_maps/RandomZLevels/Academy.dmm @@ -0,0 +1,21186 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/open/space, +/area/space) +"ab" = ( +/turf/closed/wall/r_wall, +/area/awaymission/academy/headmaster) +"ac" = ( +/mob/living/simple_animal/hostile/carp/ranged{ + faction = list("wizard") + }, +/turf/open/space, +/area/space) +"ad" = ( +/obj/structure/filingcabinet/filingcabinet, +/turf/open/floor/carpet, +/area/awaymission/academy/headmaster) +"ae" = ( +/obj/structure/frame/computer{ + anchored = 1 + }, +/turf/open/floor/carpet, +/area/awaymission/academy/headmaster) +"af" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/pen/red, +/turf/open/floor/carpet, +/area/awaymission/academy/headmaster) +"ag" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder/blue, +/turf/open/floor/carpet, +/area/awaymission/academy/headmaster) +"ah" = ( +/turf/open/floor/carpet, +/area/awaymission/academy/headmaster) +"ai" = ( +/obj/structure/chair/office/light{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/awaymission/academy/headmaster) +"aj" = ( +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/obj/machinery/power/apc{ + dir = 1; + environ = 3; + equipment = 3; + locked = 0; + pixel_y = 32; + req_access = "" + }, +/turf/open/floor/carpet, +/area/awaymission/academy/headmaster) +"ak" = ( +/obj/structure/table/reinforced, +/turf/open/floor/carpet, +/area/awaymission/academy/headmaster) +"al" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/carpet, +/area/awaymission/academy/headmaster) +"am" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/light/small, +/turf/open/floor/carpet, +/area/awaymission/academy/headmaster) +"an" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/carpet, +/area/awaymission/academy/headmaster) +"ao" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/carpet, +/area/awaymission/academy/headmaster) +"ap" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/carpet, +/area/awaymission/academy/headmaster) +"aq" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/reagent_containers/food/drinks/coffee, +/turf/open/floor/carpet, +/area/awaymission/academy/headmaster) +"ar" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/paper{ + info = "We're upgrading to the latest mainframes for our consoles, the shipment should be in before spring break is over!"; + name = "Console Maintenance" + }, +/turf/open/floor/carpet, +/area/awaymission/academy/headmaster) +"as" = ( +/turf/closed/wall, +/area/awaymission/academy/headmaster) +"at" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/door/airlock/wood{ + name = "Headmaster Room" + }, +/turf/open/floor/carpet, +/area/awaymission/academy/headmaster) +"au" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/carpet, +/area/awaymission/academy/headmaster) +"av" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/carpet, +/area/awaymission/academy/headmaster) +"aw" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin, +/turf/open/floor/carpet, +/area/awaymission/academy/headmaster) +"ax" = ( +/obj/structure/chair/stool, +/turf/open/floor/carpet, +/area/awaymission/academy/headmaster) +"ay" = ( +/obj/effect/decal/cleanable/cobweb, +/obj/structure/mirror/magic/lesser{ + pixel_y = 32 + }, +/turf/open/floor/wood, +/area/awaymission/academy/headmaster) +"az" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/item/stack/sheet/animalhide/monkey, +/turf/open/floor/wood, +/area/awaymission/academy/headmaster) +"aA" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/wood, +/area/awaymission/academy/headmaster) +"aB" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/purple, +/turf/open/floor/wood, +/area/awaymission/academy/headmaster) +"aC" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/reagent_containers/food/drinks/mug/tea, +/turf/open/floor/carpet, +/area/awaymission/academy/headmaster) +"aD" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/carpet, +/area/awaymission/academy/headmaster) +"aE" = ( +/obj/structure/filingcabinet, +/turf/open/floor/wood, +/area/awaymission/academy/headmaster) +"aF" = ( +/turf/open/floor/wood, +/area/awaymission/academy/headmaster) +"aG" = ( +/turf/closed/indestructible/rock, +/area/space) +"aH" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/carpet, +/area/awaymission/academy/headmaster) +"aI" = ( +/obj/structure/table/reinforced, +/obj/item/device/laser_pointer/upgraded, +/turf/open/floor/carpet, +/area/awaymission/academy/headmaster) +"aJ" = ( +/obj/structure/destructible/cult/tome, +/obj/item/weapon/dice/d20/fate, +/turf/open/floor/wood, +/area/awaymission/academy/headmaster) +"aK" = ( +/mob/living/simple_animal/hostile/morph{ + faction = list("skeleton") + }, +/turf/open/floor/engine/cult, +/area/awaymission/academy/academycellar) +"aL" = ( +/turf/closed/wall/mineral/wood, +/area/awaymission/academy/academycellar) +"aM" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/briefcase, +/turf/open/floor/carpet, +/area/awaymission/academy/headmaster) +"aN" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/coin/plasma, +/turf/open/floor/carpet, +/area/awaymission/academy/headmaster) +"aO" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/awaymission/academy/headmaster) +"aP" = ( +/obj/structure/lattice, +/turf/open/space, +/area/space) +"aQ" = ( +/obj/machinery/door/airlock/gold{ + locked = 1 + }, +/turf/open/floor/carpet, +/area/awaymission/academy/headmaster) +"aR" = ( +/obj/machinery/door/airlock/gold{ + locked = 1 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/carpet, +/area/awaymission/academy/headmaster) +"aS" = ( +/turf/closed/mineral/random/high_chance, +/area/awaymission/academy) +"aT" = ( +/obj/structure/noticeboard, +/turf/closed/wall, +/area/awaymission/academy/headmaster) +"aU" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/wood, +/area/awaymission/academy/headmaster) +"aV" = ( +/obj/structure/chair/office/dark, +/turf/open/floor/carpet, +/area/awaymission/academy/headmaster) +"aW" = ( +/obj/structure/reagent_dispensers/water_cooler, +/turf/open/floor/wood, +/area/awaymission/academy/headmaster) +"aX" = ( +/obj/machinery/photocopier, +/turf/open/floor/wood, +/area/awaymission/academy/headmaster) +"aY" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin, +/turf/open/floor/carpet, +/area/awaymission/academy/headmaster) +"aZ" = ( +/obj/structure/table/wood, +/obj/item/weapon/folder/blue, +/turf/open/floor/carpet, +/area/awaymission/academy/headmaster) +"ba" = ( +/obj/structure/table/wood, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/item/weapon/pen/red, +/turf/open/floor/carpet, +/area/awaymission/academy/headmaster) +"bb" = ( +/obj/structure/table/wood, +/obj/item/weapon/staff, +/turf/open/floor/carpet, +/area/awaymission/academy/headmaster) +"bc" = ( +/obj/structure/table/wood, +/obj/item/weapon/hand_labeler, +/turf/open/floor/wood, +/area/awaymission/academy/headmaster) +"bd" = ( +/obj/structure/table/wood, +/obj/item/weapon/pen/invisible, +/turf/open/floor/wood, +/area/awaymission/academy/headmaster) +"be" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/awaymission/academy/headmaster) +"bf" = ( +/obj/structure/table/wood, +/obj/item/weapon/pen/red, +/turf/open/floor/carpet, +/area/awaymission/academy/headmaster) +"bg" = ( +/obj/structure/table/wood, +/turf/open/floor/carpet, +/area/awaymission/academy/headmaster) +"bh" = ( +/obj/structure/table/wood, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/item/weapon/dice/d20, +/turf/open/floor/carpet, +/area/awaymission/academy/headmaster) +"bi" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/drinks/mug/tea, +/turf/open/floor/carpet, +/area/awaymission/academy/headmaster) +"bj" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin, +/turf/open/floor/wood, +/area/awaymission/academy/headmaster) +"bk" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/carpet, +/area/awaymission/academy/headmaster) +"bl" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/awaymission/academy/headmaster) +"bm" = ( +/obj/structure/table/wood, +/obj/item/weapon/folder/blue, +/turf/open/floor/wood, +/area/awaymission/academy/headmaster) +"bn" = ( +/obj/machinery/light, +/turf/open/floor/wood, +/area/awaymission/academy/headmaster) +"bo" = ( +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/wood, +/area/awaymission/academy/headmaster) +"bp" = ( +/obj/machinery/door/airlock/gold, +/turf/open/floor/carpet, +/area/awaymission/academy/headmaster) +"bq" = ( +/obj/machinery/door/airlock/gold, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/carpet, +/area/awaymission/academy/headmaster) +"br" = ( +/turf/open/floor/plasteel, +/area/awaymission/academy/headmaster) +"bs" = ( +/turf/closed/wall/r_wall, +/area/awaymission/academy/classrooms) +"bt" = ( +/obj/machinery/door/poddoor/shutters{ + id = "AcademyAuto" + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/awaymission/academy/classrooms) +"bu" = ( +/obj/machinery/door/poddoor/shutters{ + id = "AcademyAuto" + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/awaymission/academy/classrooms) +"bv" = ( +/obj/machinery/door/poddoor/shutters{ + id = "AcademyAuto" + }, +/turf/open/floor/plating, +/area/awaymission/academy/classrooms) +"bw" = ( +/obj/machinery/door/poddoor/shutters{ + id = "AcademyAuto" + }, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/awaymission/academy/classrooms) +"bx" = ( +/turf/open/floor/plasteel/chapel{ + dir = 1 + }, +/area/awaymission/academy/headmaster) +"by" = ( +/turf/open/floor/plasteel/chapel{ + dir = 4 + }, +/area/awaymission/academy/headmaster) +"bz" = ( +/turf/open/floor/plasteel, +/area/awaymission/academy/classrooms) +"bA" = ( +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/awaymission/academy/classrooms) +"bB" = ( +/turf/open/floor/plating, +/area/awaymission/academy/classrooms) +"bC" = ( +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/awaymission/academy/classrooms) +"bD" = ( +/obj/machinery/button/door{ + id = "AcademyAuto"; + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/awaymission/academy/classrooms) +"bE" = ( +/turf/closed/wall, +/area/awaymission/academy/classrooms) +"bF" = ( +/turf/closed/wall/mineral/titanium, +/area/awaymission/academy/classrooms) +"bG" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall12"; + dir = 2 + }, +/area/awaymission/academy/classrooms) +"bH" = ( +/turf/closed/wall/shuttle{ + icon_state = "swallc1" + }, +/area/awaymission/academy/classrooms) +"bI" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/awaymission/academy/headmaster) +"bJ" = ( +/turf/open/floor/plasteel/chapel{ + dir = 8 + }, +/area/awaymission/academy/headmaster) +"bK" = ( +/turf/open/floor/plasteel/chapel, +/area/awaymission/academy/headmaster) +"bL" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/awaymission/academy/headmaster) +"bM" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/awaymission/academy/headmaster) +"bN" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/black, +/area/awaymission/academy/headmaster) +"bO" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/awaymission/academy/headmaster) +"bP" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/black, +/area/awaymission/academy/headmaster) +"bQ" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/awaymission/academy/headmaster) +"bR" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/awaymission/academy/headmaster) +"bS" = ( +/obj/structure/academy_wizard_spawner, +/turf/open/floor/wood, +/area/awaymission/academy/headmaster) +"bT" = ( +/turf/open/floor/plasteel/showroomfloor, +/area/awaymission/academy/headmaster) +"bU" = ( +/obj/machinery/autolathe, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/turf/open/floor/plasteel, +/area/awaymission/academy/classrooms) +"bV" = ( +/turf/open/floor/plasteel/floorgrime, +/area/awaymission/academy/classrooms) +"bW" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall3"; + dir = 2 + }, +/area/awaymission/academy/classrooms) +"bX" = ( +/obj/effect/decal/cleanable/ash, +/turf/open/floor/engine, +/area/awaymission/academy/classrooms) +"bY" = ( +/obj/structure/target_stake, +/turf/open/floor/engine, +/area/awaymission/academy/classrooms) +"bZ" = ( +/turf/open/floor/engine, +/area/awaymission/academy/classrooms) +"ca" = ( +/obj/structure/target_stake, +/obj/item/target/alien, +/turf/open/floor/engine, +/area/awaymission/academy/classrooms) +"cb" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel, +/area/awaymission/academy/headmaster) +"cc" = ( +/obj/structure/table, +/obj/item/weapon/lighter/greyscale, +/turf/open/floor/plasteel, +/area/awaymission/academy/headmaster) +"cd" = ( +/turf/open/floor/plasteel/black, +/area/awaymission/academy/headmaster) +"ce" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/awaymission/academy/headmaster) +"cf" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/obj/structure/cable, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/awaymission/academy/headmaster) +"cg" = ( +/obj/machinery/portable_atmospherics/canister/toxins, +/turf/open/floor/plasteel/showroomfloor, +/area/awaymission/academy/headmaster) +"ch" = ( +/obj/structure/chair/stool, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/awaymission/academy/headmaster) +"ci" = ( +/obj/structure/table, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/floorgrime, +/area/awaymission/academy/classrooms) +"cj" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating, +/area/awaymission/academy/classrooms) +"ck" = ( +/obj/machinery/door/airlock/plasma, +/turf/open/floor/carpet, +/area/awaymission/academy/headmaster) +"cl" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/awaymission/academy/headmaster) +"cm" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/black, +/area/awaymission/academy/headmaster) +"cn" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/awaymission/academy/headmaster) +"co" = ( +/obj/machinery/portable_atmospherics/scrubber/huge, +/turf/open/floor/plating, +/area/awaymission/academy/headmaster) +"cp" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/showroomfloor, +/area/awaymission/academy/headmaster) +"cq" = ( +/obj/structure/table, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/item/weapon/pen/red, +/turf/open/floor/plasteel, +/area/awaymission/academy/classrooms) +"cr" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/awaymission/academy/classrooms) +"cs" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall1" + }, +/area/awaymission/academy/classrooms) +"ct" = ( +/obj/structure/chair, +/turf/open/floor/plasteel, +/area/awaymission/academy/headmaster) +"cu" = ( +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/awaymission/academy/headmaster) +"cv" = ( +/obj/machinery/door/window{ + dir = 8 + }, +/turf/open/floor/plating, +/area/awaymission/academy/headmaster) +"cw" = ( +/turf/open/floor/plating, +/area/awaymission/academy/headmaster) +"cx" = ( +/obj/machinery/door/window{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/awaymission/academy/headmaster) +"cy" = ( +/obj/structure/table, +/turf/open/floor/plasteel/showroomfloor, +/area/awaymission/academy/headmaster) +"cz" = ( +/obj/structure/table, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/item/stack/cable_coil/random, +/turf/open/floor/plasteel, +/area/awaymission/academy/classrooms) +"cA" = ( +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/awaymission/academy/classrooms) +"cB" = ( +/obj/item/target, +/turf/open/floor/engine, +/area/awaymission/academy/classrooms) +"cC" = ( +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/awaymission/academy/classrooms) +"cD" = ( +/obj/structure/table, +/turf/open/floor/plasteel, +/area/awaymission/academy/headmaster) +"cE" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/carpet, +/area/awaymission/academy/headmaster) +"cF" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/door/airlock/plasma, +/turf/open/floor/carpet, +/area/awaymission/academy/headmaster) +"cG" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/black, +/area/awaymission/academy/headmaster) +"cH" = ( +/obj/structure/sign/nosmoking_1, +/turf/closed/wall, +/area/awaymission/academy/headmaster) +"cI" = ( +/obj/structure/trap/damage, +/turf/open/floor/carpet, +/area/awaymission/academy/headmaster) +"cJ" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/plating, +/area/awaymission/academy/classrooms) +"cK" = ( +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/awaymission/academy/classrooms) +"cL" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/awaymission/academy/headmaster) +"cM" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/awaymission/academy/classrooms) +"cN" = ( +/turf/open/floor/plating/warnplate{ + dir = 10 + }, +/area/awaymission/academy/classrooms) +"cO" = ( +/turf/open/floor/plating/warnplate{ + dir = 6 + }, +/area/awaymission/academy/classrooms) +"cP" = ( +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/awaymission/academy/classrooms) +"cQ" = ( +/turf/open/floor/plasteel/red/side, +/area/awaymission/academy/classrooms) +"cR" = ( +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/awaymission/academy/classrooms) +"cS" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/awaymission/academy/headmaster) +"cT" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/awaymission/academy/headmaster) +"cU" = ( +/obj/structure/closet/crate/internals, +/obj/item/weapon/tank/internals/oxygen, +/obj/item/weapon/tank/internals/oxygen/red, +/turf/open/floor/plasteel/black, +/area/awaymission/academy/headmaster) +"cV" = ( +/obj/structure/closet/crate, +/obj/item/weapon/crowbar/red, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/awaymission/academy/headmaster) +"cW" = ( +/obj/structure/grille, +/obj/structure/cable, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/awaymission/academy/headmaster) +"cX" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/awaymission/academy/classrooms) +"cY" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/awaymission/academy/classrooms) +"cZ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/floorgrime, +/area/awaymission/academy/classrooms) +"da" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/awaymission/academy/classrooms) +"db" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/wood, +/area/awaymission/academy/classrooms) +"dc" = ( +/turf/open/floor/wood, +/area/awaymission/academy/classrooms) +"dd" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/wood, +/area/awaymission/academy/classrooms) +"de" = ( +/turf/open/floor/greengrid, +/area/awaymission/academy/classrooms) +"df" = ( +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/awaymission/academy/classrooms) +"dg" = ( +/obj/structure/table/wood, +/obj/item/weapon/gun/magic/wand/fireball, +/turf/open/floor/wood, +/area/awaymission/academy/classrooms) +"dh" = ( +/turf/open/floor/plasteel/green/side{ + dir = 9 + }, +/area/awaymission/academy/classrooms) +"di" = ( +/turf/open/floor/plasteel/green/side{ + dir = 1 + }, +/area/awaymission/academy/classrooms) +"dj" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/green/side{ + dir = 1 + }, +/area/awaymission/academy/classrooms) +"dk" = ( +/obj/structure/sink/kitchen{ + pixel_y = 28 + }, +/turf/open/floor/plasteel/green/side{ + dir = 1 + }, +/area/awaymission/academy/classrooms) +"dl" = ( +/turf/open/floor/plasteel/green/side{ + dir = 5 + }, +/area/awaymission/academy/classrooms) +"dm" = ( +/turf/open/floor/plasteel/white, +/area/awaymission/academy/classrooms) +"dn" = ( +/obj/machinery/gibber, +/turf/open/floor/plasteel/white, +/area/awaymission/academy/classrooms) +"do" = ( +/obj/machinery/mech_bay_recharge_port, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/turf/open/floor/plating, +/area/awaymission/academy/classrooms) +"dp" = ( +/turf/open/floor/mech_bay_recharge_floor, +/area/awaymission/academy/classrooms) +"dq" = ( +/obj/machinery/computer/mech_bay_power_console, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/turf/open/floor/greengrid, +/area/awaymission/academy/classrooms) +"dr" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/awaymission/academy/classrooms) +"ds" = ( +/obj/structure/chair/wood/normal{ + dir = 1 + }, +/turf/open/floor/wood, +/area/awaymission/academy/classrooms) +"dt" = ( +/turf/open/floor/plasteel/green/side{ + dir = 8 + }, +/area/awaymission/academy/classrooms) +"du" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel, +/area/awaymission/academy/classrooms) +"dv" = ( +/obj/item/seeds/eggplant/eggy, +/obj/machinery/hydroponics/constructable, +/turf/open/floor/plasteel, +/area/awaymission/academy/classrooms) +"dw" = ( +/obj/machinery/hydroponics/constructable, +/turf/open/floor/plasteel, +/area/awaymission/academy/classrooms) +"dx" = ( +/turf/open/floor/plasteel/green/side{ + dir = 4 + }, +/area/awaymission/academy/classrooms) +"dy" = ( +/mob/living/simple_animal/hostile/wizard, +/turf/open/floor/plasteel, +/area/awaymission/academy/headmaster) +"dz" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/greengrid, +/area/awaymission/academy/classrooms) +"dA" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/greengrid, +/area/awaymission/academy/classrooms) +"dB" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/awaymission/academy/classrooms) +"dC" = ( +/turf/open/floor/grass, +/area/awaymission/academy/headmaster) +"dD" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/glass/bucket, +/turf/open/floor/plasteel, +/area/awaymission/academy/classrooms) +"dE" = ( +/obj/structure/closet/crate/hydroponics, +/turf/open/floor/plasteel, +/area/awaymission/academy/classrooms) +"dF" = ( +/obj/machinery/door/airlock/freezer, +/turf/open/floor/plasteel/white, +/area/awaymission/academy/classrooms) +"dG" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/chem_master/condimaster, +/turf/open/floor/plasteel/white, +/area/awaymission/academy/classrooms) +"dH" = ( +/obj/machinery/mech_bay_recharge_port, +/obj/structure/cable, +/turf/open/floor/plating, +/area/awaymission/academy/classrooms) +"dI" = ( +/obj/machinery/computer/mech_bay_power_console, +/obj/structure/cable, +/turf/open/floor/greengrid, +/area/awaymission/academy/classrooms) +"dJ" = ( +/obj/machinery/hydroponics/constructable, +/obj/item/seeds/replicapod, +/turf/open/floor/plasteel, +/area/awaymission/academy/classrooms) +"dK" = ( +/turf/open/floor/engine/cult, +/area/awaymission/academy/academycellar) +"dL" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/awaymission/academy/classrooms) +"dM" = ( +/obj/machinery/hydroponics/constructable, +/obj/item/seeds/tomato/blue/bluespace, +/turf/open/floor/plasteel, +/area/awaymission/academy/classrooms) +"dN" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/awaymission/academy/classrooms) +"dO" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/green/side{ + dir = 4 + }, +/area/awaymission/academy/classrooms) +"dP" = ( +/obj/machinery/door/airlock/freezer, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/white, +/area/awaymission/academy/classrooms) +"dQ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/white, +/area/awaymission/academy/classrooms) +"dR" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/white, +/area/awaymission/academy/classrooms) +"dS" = ( +/obj/structure/kitchenspike, +/turf/open/floor/plasteel/white, +/area/awaymission/academy/classrooms) +"dT" = ( +/obj/structure/mineral_door/iron, +/turf/open/floor/plasteel, +/area/awaymission/academy/classrooms) +"dU" = ( +/obj/structure/mineral_door/iron, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/awaymission/academy/classrooms) +"dV" = ( +/obj/structure/mineral_door/wood, +/turf/open/floor/carpet, +/area/awaymission/academy/classrooms) +"dW" = ( +/obj/machinery/seed_extractor, +/turf/open/floor/plasteel, +/area/awaymission/academy/classrooms) +"dX" = ( +/obj/structure/cable, +/turf/open/floor/plasteel, +/area/awaymission/academy/classrooms) +"dY" = ( +/obj/structure/closet/crate/freezer, +/turf/open/floor/plasteel/white, +/area/awaymission/academy/classrooms) +"dZ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/white, +/area/awaymission/academy/classrooms) +"ea" = ( +/obj/machinery/igniter, +/turf/open/floor/plating, +/area/awaymission/academy/classrooms) +"eb" = ( +/turf/open/floor/plasteel/yellow/corner, +/area/awaymission/academy/classrooms) +"ec" = ( +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/yellow/side, +/area/awaymission/academy/classrooms) +"ed" = ( +/turf/open/floor/plasteel/yellow/corner{ + dir = 8 + }, +/area/awaymission/academy/classrooms) +"ee" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/awaymission/academy/classrooms) +"ef" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/awaymission/academy/classrooms) +"eg" = ( +/obj/structure/noticeboard{ + pixel_y = 32 + }, +/obj/item/weapon/paper{ + name = "Automotive Repair 101" + }, +/turf/open/floor/plasteel/grimy, +/area/awaymission/academy/classrooms) +"eh" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/awaymission/academy/classrooms) +"ei" = ( +/obj/structure/noticeboard{ + pixel_y = 32 + }, +/obj/item/weapon/paper{ + name = "Pyromancy 250" + }, +/turf/open/floor/plasteel/grimy, +/area/awaymission/academy/classrooms) +"ej" = ( +/turf/open/floor/plasteel/grimy, +/area/awaymission/academy/classrooms) +"ek" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/power/apc{ + dir = 1; + environ = 3; + equipment = 3; + locked = 0; + pixel_y = 32; + req_access = "" + }, +/turf/open/floor/plasteel/grimy, +/area/awaymission/academy/classrooms) +"el" = ( +/turf/open/floor/carpet, +/area/awaymission/academy/classrooms) +"em" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/carpet, +/area/awaymission/academy/classrooms) +"en" = ( +/turf/open/floor/plasteel/green/side{ + dir = 10 + }, +/area/awaymission/academy/classrooms) +"eo" = ( +/turf/open/floor/plasteel/green/side, +/area/awaymission/academy/classrooms) +"ep" = ( +/obj/machinery/vending/hydroseeds{ + slogan_delay = 700 + }, +/turf/open/floor/plasteel, +/area/awaymission/academy/classrooms) +"eq" = ( +/obj/machinery/vending/hydronutrients, +/turf/open/floor/plasteel/green/side{ + dir = 6 + }, +/area/awaymission/academy/classrooms) +"er" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/turf/open/floor/plasteel/white, +/area/awaymission/academy/classrooms) +"es" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/awaymission/academy/classrooms) +"et" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 6 + }, +/area/awaymission/academy/classrooms) +"eu" = ( +/obj/singularity/academy, +/turf/open/space, +/area/space) +"ev" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 10 + }, +/area/awaymission/academy/classrooms) +"ew" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/grimy, +/area/awaymission/academy/classrooms) +"ex" = ( +/obj/structure/mineral_door/wood, +/turf/open/floor/plasteel, +/area/awaymission/academy/classrooms) +"ey" = ( +/obj/machinery/door/airlock/freezer, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/white, +/area/awaymission/academy/classrooms) +"ez" = ( +/turf/open/floor/plating/warnplate{ + dir = 9 + }, +/area/awaymission/academy) +"eA" = ( +/obj/machinery/door/airlock/glass, +/obj/machinery/door/airlock/external, +/turf/open/floor/plating, +/area/awaymission/academy/classrooms) +"eB" = ( +/obj/machinery/door/airlock/glass, +/turf/open/floor/plating, +/area/awaymission/academy/classrooms) +"eC" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/awaymission/academy/classrooms) +"eD" = ( +/turf/open/floor/plasteel/escape{ + dir = 6 + }, +/area/awaymission/academy/classrooms) +"eE" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/escape{ + dir = 6 + }, +/area/awaymission/academy/classrooms) +"eF" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/escape{ + dir = 6 + }, +/area/awaymission/academy/classrooms) +"eG" = ( +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/barber{ + dir = 8 + }, +/area/awaymission/academy/classrooms) +"eH" = ( +/turf/open/floor/plasteel/barber{ + dir = 8 + }, +/area/awaymission/academy/classrooms) +"eI" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/barber{ + dir = 8 + }, +/area/awaymission/academy/classrooms) +"eJ" = ( +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/awaymission/academy) +"eK" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/awaymission/academy/classrooms) +"eL" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 5 + }, +/area/awaymission/academy/classrooms) +"eM" = ( +/turf/open/floor/plasteel/chapel{ + dir = 1 + }, +/area/awaymission/academy/classrooms) +"eN" = ( +/turf/open/floor/plasteel/chapel{ + dir = 4 + }, +/area/awaymission/academy/classrooms) +"eO" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/chapel{ + dir = 1 + }, +/area/awaymission/academy/classrooms) +"eP" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/awaymission/academy/classrooms) +"eQ" = ( +/obj/structure/table, +/turf/open/floor/plasteel/escape{ + dir = 6 + }, +/area/awaymission/academy/classrooms) +"eR" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/bag/tray, +/turf/open/floor/plasteel/barber{ + dir = 8 + }, +/area/awaymission/academy/classrooms) +"eS" = ( +/obj/machinery/processor, +/turf/open/floor/plasteel/barber{ + dir = 8 + }, +/area/awaymission/academy/classrooms) +"eT" = ( +/turf/open/floor/plasteel/yellow/side, +/area/awaymission/academy/classrooms) +"eU" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 6 + }, +/area/awaymission/academy/classrooms) +"eV" = ( +/turf/open/floor/plasteel/chapel{ + dir = 8 + }, +/area/awaymission/academy/classrooms) +"eW" = ( +/turf/open/floor/plasteel/chapel, +/area/awaymission/academy/classrooms) +"eX" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/chapel{ + dir = 8 + }, +/area/awaymission/academy/classrooms) +"eY" = ( +/obj/structure/mineral_door/wood, +/turf/open/floor/plasteel/bar, +/area/awaymission/academy/classrooms) +"eZ" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/escape{ + dir = 6 + }, +/area/awaymission/academy/classrooms) +"fa" = ( +/obj/structure/table, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/obj/item/weapon/reagent_containers/food/snacks/burger/spell, +/turf/open/floor/plasteel/barber{ + dir = 8 + }, +/area/awaymission/academy/classrooms) +"fb" = ( +/turf/open/floor/plating/warnplate{ + dir = 10 + }, +/area/awaymission/academy) +"fc" = ( +/obj/structure/window/reinforced, +/turf/open/floor/plasteel, +/area/awaymission/academy/classrooms) +"fd" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/carpet, +/area/awaymission/academy/classrooms) +"fe" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/carpet, +/area/awaymission/academy/classrooms) +"ff" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/carpet, +/area/awaymission/academy/classrooms) +"fg" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/grimy, +/area/awaymission/academy/classrooms) +"fh" = ( +/obj/structure/mineral_door/wood, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/bar, +/area/awaymission/academy/classrooms) +"fi" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/escape{ + dir = 6 + }, +/area/awaymission/academy/classrooms) +"fj" = ( +/obj/structure/table, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/escape{ + dir = 6 + }, +/area/awaymission/academy/classrooms) +"fk" = ( +/obj/structure/table/reinforced, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/barber{ + dir = 8 + }, +/area/awaymission/academy/classrooms) +"fl" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/barber{ + dir = 8 + }, +/area/awaymission/academy/classrooms) +"fm" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/barber{ + dir = 8 + }, +/area/awaymission/academy/classrooms) +"fn" = ( +/obj/structure/table, +/obj/machinery/microwave, +/turf/open/floor/plasteel/barber{ + dir = 8 + }, +/area/awaymission/academy/classrooms) +"fo" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 5 + }, +/area/awaymission/academy/classrooms) +"fp" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 9 + }, +/area/awaymission/academy/classrooms) +"fq" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/escape{ + dir = 6 + }, +/area/awaymission/academy/classrooms) +"fr" = ( +/obj/structure/table, +/obj/item/trash/semki, +/turf/open/floor/plasteel/escape{ + dir = 6 + }, +/area/awaymission/academy/classrooms) +"fs" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/escape{ + dir = 6 + }, +/area/awaymission/academy/classrooms) +"ft" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder, +/turf/open/floor/plasteel/barber{ + dir = 8 + }, +/area/awaymission/academy/classrooms) +"fu" = ( +/turf/open/floor/plasteel/caution/corner{ + dir = 4 + }, +/area/awaymission/academy/classrooms) +"fv" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/awaymission/academy/classrooms) +"fw" = ( +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/awaymission/academy/classrooms) +"fx" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/awaymission/academy/classrooms) +"fy" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/noticeboard{ + pixel_y = -32 + }, +/obj/item/weapon/paper{ + name = "Biology Lab" + }, +/turf/open/floor/plasteel/grimy, +/area/awaymission/academy/classrooms) +"fz" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/grimy, +/area/awaymission/academy/classrooms) +"fA" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/grimy, +/area/awaymission/academy/classrooms) +"fB" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/carpet, +/area/awaymission/academy/classrooms) +"fC" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/escape{ + dir = 6 + }, +/area/awaymission/academy/classrooms) +"fD" = ( +/turf/closed/wall, +/area/awaymission/academy/academyaft) +"fE" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/carpet, +/area/awaymission/academy/academyaft) +"fF" = ( +/turf/open/floor/carpet, +/area/awaymission/academy/academyaft) +"fG" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/awaymission/academy/classrooms) +"fH" = ( +/obj/machinery/shieldwallgen, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/awaymission/academy/classrooms) +"fI" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/awaymission/academy/classrooms) +"fJ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/awaymission/academy/classrooms) +"fK" = ( +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/awaymission/academy/classrooms) +"fL" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/white, +/area/awaymission/academy/classrooms) +"fM" = ( +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/wood, +/area/awaymission/academy/classrooms) +"fN" = ( +/turf/open/floor/plasteel/grimy, +/area/awaymission/academy/academyaft) +"fO" = ( +/obj/structure/closet/crate/trashcart, +/turf/open/floor/plasteel/grimy, +/area/awaymission/academy/academyaft) +"fP" = ( +/turf/open/floor/plasteel/vault, +/area/awaymission/academy/classrooms) +"fQ" = ( +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/turf/open/floor/plasteel/vault, +/area/awaymission/academy/classrooms) +"fR" = ( +/mob/living/simple_animal/hostile/wizard, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/awaymission/academy/classrooms) +"fS" = ( +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/awaymission/academy/classrooms) +"fT" = ( +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/awaymission/academy/classrooms) +"fU" = ( +/obj/item/target, +/turf/open/floor/plasteel, +/area/awaymission/academy/classrooms) +"fV" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/awaymission/academy/classrooms) +"fW" = ( +/obj/structure/target_stake, +/turf/open/floor/plasteel, +/area/awaymission/academy/classrooms) +"fX" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/awaymission/academy/classrooms) +"fY" = ( +/mob/living/simple_animal/hostile/wizard, +/turf/open/floor/plasteel/red/side, +/area/awaymission/academy/classrooms) +"fZ" = ( +/obj/structure/grille, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/awaymission/academy/classrooms) +"ga" = ( +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/awaymission/academy/classrooms) +"gb" = ( +/obj/structure/table, +/obj/item/weapon/pen/red, +/turf/open/floor/plasteel, +/area/awaymission/academy/classrooms) +"gc" = ( +/obj/structure/table, +/obj/item/weapon/lazarus_injector, +/turf/open/floor/plasteel/white/side{ + dir = 4 + }, +/area/awaymission/academy/classrooms) +"gd" = ( +/obj/structure/chair/wood/normal, +/turf/open/floor/wood, +/area/awaymission/academy/classrooms) +"ge" = ( +/obj/item/candle/infinite, +/turf/open/floor/engine/cult, +/area/awaymission/academy/academycellar) +"gf" = ( +/obj/structure/holohoop, +/turf/open/floor/engine/cult, +/area/awaymission/academy/academycellar) +"gg" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/awaymission/academy/classrooms) +"gh" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/grimy, +/area/awaymission/academy/academyaft) +"gi" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/carpet, +/area/awaymission/academy/academyaft) +"gj" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/awaymission/academy/classrooms) +"gk" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/recharger, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/awaymission/academy/classrooms) +"gl" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/pen/red, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/awaymission/academy/classrooms) +"gm" = ( +/obj/structure/filingcabinet/filingcabinet, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/awaymission/academy/classrooms) +"gn" = ( +/obj/machinery/door/window{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/awaymission/academy/classrooms) +"go" = ( +/obj/item/weapon/storage/box/monkeycubes, +/turf/open/floor/plating, +/area/awaymission/academy/classrooms) +"gp" = ( +/obj/machinery/door/window{ + dir = 4 + }, +/obj/machinery/door/window{ + dir = 8 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/awaymission/academy/classrooms) +"gq" = ( +/obj/structure/table, +/turf/open/floor/plasteel, +/area/awaymission/academy/classrooms) +"gr" = ( +/turf/open/floor/plasteel/white/side{ + dir = 4 + }, +/area/awaymission/academy/classrooms) +"gs" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/obj/structure/cable, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/awaymission/academy/classrooms) +"gt" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/awaymission/academy/classrooms) +"gu" = ( +/obj/structure/window/reinforced, +/turf/open/floor/plating, +/area/awaymission/academy/classrooms) +"gv" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 4 + }, +/area/awaymission/academy/classrooms) +"gw" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/wood, +/area/awaymission/academy/classrooms) +"gx" = ( +/obj/structure/closet/athletic_mixed, +/turf/open/floor/engine/cult, +/area/awaymission/academy/academycellar) +"gy" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/awaymission/academy/academyaft) +"gz" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/awaymission/academy/classrooms) +"gA" = ( +/obj/machinery/door/window{ + dir = 4 + }, +/obj/item/ammo_casing, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/awaymission/academy/classrooms) +"gB" = ( +/obj/machinery/light/small, +/turf/open/floor/plasteel, +/area/awaymission/academy/classrooms) +"gC" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating, +/area/awaymission/academy/classrooms) +"gD" = ( +/obj/structure/table, +/obj/item/weapon/scalpel, +/turf/open/floor/plasteel, +/area/awaymission/academy/classrooms) +"gE" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/awaymission/academy/classrooms) +"gF" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/carpet, +/area/awaymission/academy/academyaft) +"gG" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/carpet, +/area/awaymission/academy/academyaft) +"gH" = ( +/obj/structure/table, +/obj/item/weapon/paper{ + info = "Grade: A+ Educator's Notes: Excellent form."; + name = "Summoning Midterm Exam" + }, +/obj/item/weapon/gun/projectile/shotgun/automatic/combat, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/awaymission/academy/classrooms) +"gI" = ( +/obj/structure/table, +/obj/item/weapon/gun/projectile/revolver/russian, +/obj/item/weapon/paper{ + info = "Grade: B- Educator's Notes: Keep applying yourself, you're showing improvement."; + name = "Summoning Midterm Exam" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/awaymission/academy/classrooms) +"gJ" = ( +/obj/structure/table, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/awaymission/academy/classrooms) +"gK" = ( +/obj/structure/window/reinforced, +/obj/item/ammo_casing, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/awaymission/academy/classrooms) +"gL" = ( +/mob/living/simple_animal/hostile/bear, +/turf/open/floor/plating, +/area/awaymission/academy/classrooms) +"gM" = ( +/obj/item/toy/beach_ball/holoball, +/turf/open/floor/engine/cult, +/area/awaymission/academy/academycellar) +"gN" = ( +/obj/structure/mineral_door/wood, +/turf/open/floor/engine/cult, +/area/awaymission/academy/academycellar) +"gO" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/awaymission/academy/classrooms) +"gP" = ( +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/awaymission/academy/classrooms) +"gQ" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/mob/living/simple_animal/hostile/bear, +/turf/open/floor/plating, +/area/awaymission/academy/classrooms) +"gR" = ( +/obj/structure/mineral_door/iron, +/turf/open/floor/carpet, +/area/awaymission/academy/classrooms) +"gS" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/carpet, +/area/awaymission/academy/academyaft) +"gT" = ( +/obj/machinery/door/airlock/gold{ + locked = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/carpet, +/area/awaymission/academy/classrooms) +"gU" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/awaymission/academy/classrooms) +"gV" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/awaymission/academy/classrooms) +"gW" = ( +/obj/structure/table, +/obj/item/weapon/gun/energy/floragun, +/obj/item/weapon/paper{ + info = "Grade: D- Educator's Notes: SEE ME AFTER CLASS."; + name = "Summoning Midterm Exam" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/awaymission/academy/classrooms) +"gX" = ( +/obj/structure/closet/crate, +/obj/item/stack/sheet/glass, +/obj/item/target, +/obj/item/target, +/turf/open/floor/plasteel, +/area/awaymission/academy/classrooms) +"gY" = ( +/obj/structure/grille, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/awaymission/academy/classrooms) +"gZ" = ( +/obj/machinery/shieldwallgen, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/awaymission/academy/classrooms) +"ha" = ( +/turf/open/floor/plasteel/white/side{ + dir = 2 + }, +/area/awaymission/academy/classrooms) +"hb" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/white/side{ + dir = 2 + }, +/area/awaymission/academy/classrooms) +"hc" = ( +/turf/closed/wall/r_wall, +/area/awaymission/academy/academyaft) +"hd" = ( +/obj/structure/mineral_door/wood, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/carpet, +/area/awaymission/academy/academyaft) +"he" = ( +/obj/structure/mineral_door/wood, +/turf/open/floor/carpet, +/area/awaymission/academy/academyaft) +"hf" = ( +/turf/open/floor/plating, +/area/awaymission/academy/academyaft) +"hg" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/awaymission/academy/academyaft) +"hh" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/awaymission/academy/academyaft) +"hi" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/hydrofloor, +/area/awaymission/academy/academyaft) +"hj" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/hydrofloor, +/area/awaymission/academy/academyaft) +"hk" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/hydrofloor, +/area/awaymission/academy/academyaft) +"hl" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/power/apc{ + dir = 1; + environ = 3; + equipment = 3; + locked = 0; + pixel_y = 32; + req_access = "" + }, +/turf/open/floor/plasteel, +/area/awaymission/academy/academyaft) +"hm" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/turf/open/floor/plating, +/area/awaymission/academy/academyaft) +"hn" = ( +/turf/open/floor/plasteel/green/side{ + dir = 8 + }, +/area/awaymission/academy/academyaft) +"ho" = ( +/turf/open/floor/plasteel, +/area/awaymission/academy/academyaft) +"hp" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/awaymission/academy/academyaft) +"hq" = ( +/turf/open/floor/plasteel/green/side{ + dir = 4 + }, +/area/awaymission/academy/academyaft) +"hr" = ( +/obj/item/weapon/crowbar/red, +/turf/open/floor/plasteel/green/side{ + dir = 4 + }, +/area/awaymission/academy/academyaft) +"hs" = ( +/turf/open/floor/plasteel/hydrofloor, +/area/awaymission/academy/academyaft) +"ht" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/awaymission/academy/academyaft) +"hu" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel/hydrofloor, +/area/awaymission/academy/academyaft) +"hv" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel, +/area/awaymission/academy/academyaft) +"hw" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plating, +/area/awaymission/academy/academyaft) +"hx" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/awaymission/academy/academyaft) +"hy" = ( +/obj/machinery/power/smes/magical, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plating, +/area/awaymission/academy/academyaft) +"hz" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plating, +/area/awaymission/academy/academyaft) +"hA" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/hydrofloor, +/area/awaymission/academy/academyaft) +"hB" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/hydrofloor, +/area/awaymission/academy/academyaft) +"hC" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/hydrofloor, +/area/awaymission/academy/academyaft) +"hD" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/door/airlock/maintenance_hatch, +/turf/open/floor/plating, +/area/awaymission/academy/academyaft) +"hE" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/awaymission/academy/academyaft) +"hF" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/green/side{ + dir = 8 + }, +/area/awaymission/academy/academyaft) +"hG" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/awaymission/academy/academyaft) +"hH" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/green/side{ + dir = 4 + }, +/area/awaymission/academy/academyaft) +"hI" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/carpet, +/area/awaymission/academy/academyaft) +"hJ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/carpet, +/area/awaymission/academy/academyaft) +"hK" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/item/weapon/caution, +/turf/open/floor/plasteel/green/side{ + dir = 4 + }, +/area/awaymission/academy/academyaft) +"hL" = ( +/obj/structure/mecha_wreckage/durand, +/turf/open/floor/plating, +/area/awaymission/academy/classrooms) +"hM" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/hydrofloor, +/area/awaymission/academy/academyaft) +"hN" = ( +/obj/structure/frame/machine, +/turf/open/floor/plating, +/area/awaymission/academy/academyaft) +"hO" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/awaymission/academy/academyaft) +"hP" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/hydrofloor, +/area/awaymission/academy/academyaft) +"hQ" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel/hydrofloor, +/area/awaymission/academy/academyaft) +"hR" = ( +/obj/structure/grille, +/obj/structure/cable, +/turf/open/floor/plating, +/area/awaymission/academy/academyaft) +"hS" = ( +/obj/structure/closet, +/obj/item/candle, +/obj/item/candle, +/obj/item/weapon/storage/box/matches, +/turf/open/floor/plasteel, +/area/awaymission/academy/academyaft) +"hT" = ( +/obj/structure/closet, +/obj/item/weapon/storage/belt/soulstone, +/obj/item/clothing/under/schoolgirl, +/turf/open/floor/plasteel, +/area/awaymission/academy/academyaft) +"hU" = ( +/obj/structure/closet, +/obj/item/clothing/under/skirt/black, +/obj/item/clothing/glasses/regular, +/turf/open/floor/plasteel, +/area/awaymission/academy/academyaft) +"hV" = ( +/obj/structure/closet, +/obj/item/clothing/under/color/lightpurple, +/obj/item/clothing/shoes/sandal, +/turf/open/floor/plasteel, +/area/awaymission/academy/academyaft) +"hW" = ( +/obj/structure/closet, +/obj/item/weapon/lipstick/random, +/obj/item/clothing/under/schoolgirl, +/turf/open/floor/plasteel, +/area/awaymission/academy/academyaft) +"hX" = ( +/turf/open/floor/wood, +/area/awaymission/academy/academyaft) +"hY" = ( +/obj/structure/closet, +/obj/item/clothing/under/color/lightpurple, +/obj/item/weapon/staff, +/turf/open/floor/plasteel, +/area/awaymission/academy/academyaft) +"hZ" = ( +/obj/structure/closet, +/obj/item/weapon/storage/wallet/random, +/obj/item/clothing/glasses/regular/hipster, +/turf/open/floor/plasteel, +/area/awaymission/academy/academyaft) +"ia" = ( +/obj/structure/closet, +/obj/item/clothing/head/wizard/fake, +/obj/item/clothing/suit/wizrobe/fake, +/turf/open/floor/plasteel, +/area/awaymission/academy/academyaft) +"ib" = ( +/obj/structure/closet, +/obj/item/weapon/reagent_containers/food/drinks/beer, +/obj/item/clothing/under/color/purple, +/obj/item/weapon/poster/contraband, +/turf/open/floor/plasteel, +/area/awaymission/academy/academyaft) +"ic" = ( +/obj/structure/closet, +/obj/item/weapon/storage/box/snappops, +/obj/item/weapon/storage/backpack, +/obj/item/weapon/paper{ + info = "Current Grade: F. Educator's Notes: No improvement shown despite multiple private lessons. Suggest additional tutilage."; + name = "Pyromancy Evaluation" + }, +/turf/open/floor/plasteel, +/area/awaymission/academy/academyaft) +"id" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/hydrofloor, +/area/awaymission/academy/academyaft) +"ie" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plasteel, +/area/awaymission/academy/academyaft) +"if" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/awaymission/academy/academyaft) +"ig" = ( +/obj/item/stack/cable_coil/random, +/turf/open/floor/plasteel/hydrofloor, +/area/awaymission/academy/academyaft) +"ih" = ( +/obj/structure/rack, +/obj/item/stack/sheet/mineral/plasma{ + amount = 50 + }, +/turf/open/floor/plasteel/hydrofloor, +/area/awaymission/academy/academyaft) +"ii" = ( +/turf/open/floor/grass, +/area/awaymission/academy/academyaft) +"ij" = ( +/obj/structure/rack, +/obj/item/weapon/circuitboard/machine/telecomms/broadcaster, +/obj/item/weapon/circuitboard/machine/telecomms/receiver, +/obj/item/weapon/circuitboard/machine/telecomms/relay, +/turf/open/floor/plasteel/hydrofloor, +/area/awaymission/academy/academyaft) +"ik" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/awaymission/academy/academyaft) +"il" = ( +/turf/open/floor/plasteel/cafeteria{ + dir = 2 + }, +/area/awaymission/academy/academyaft) +"im" = ( +/obj/structure/mirror{ + pixel_y = 28 + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 2 + }, +/area/awaymission/academy/academyaft) +"in" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plasteel/cafeteria{ + dir = 2 + }, +/area/awaymission/academy/academyaft) +"io" = ( +/obj/structure/rack, +/obj/item/weapon/stock_parts/manipulator, +/obj/item/weapon/stock_parts/manipulator, +/obj/item/weapon/stock_parts/subspace/crystal, +/obj/item/weapon/stock_parts/subspace/filter, +/obj/item/weapon/stock_parts/micro_laser/high, +/obj/item/weapon/stock_parts/micro_laser/high, +/turf/open/floor/plasteel, +/area/awaymission/academy/academyaft) +"ip" = ( +/obj/machinery/power/smes/magical, +/obj/structure/cable, +/turf/open/floor/plating, +/area/awaymission/academy/academyaft) +"iq" = ( +/obj/structure/rack, +/obj/item/clothing/glasses/welding, +/turf/open/floor/plasteel, +/area/awaymission/academy/academyaft) +"ir" = ( +/obj/structure/mineral_door/iron, +/turf/open/floor/plasteel/cafeteria{ + dir = 2 + }, +/area/awaymission/academy/academyaft) +"is" = ( +/obj/structure/rack, +/obj/item/weapon/stock_parts/scanning_module, +/obj/item/weapon/stock_parts/micro_laser, +/obj/item/weapon/stock_parts/subspace/filter, +/obj/item/weapon/stock_parts/subspace/ansible, +/turf/open/floor/plasteel, +/area/awaymission/academy/academyaft) +"it" = ( +/obj/item/weapon/stock_parts/manipulator, +/turf/open/floor/plasteel/hydrofloor, +/area/awaymission/academy/academyaft) +"iu" = ( +/obj/structure/rack, +/obj/item/weapon/storage/toolbox/mechanical, +/turf/open/floor/plasteel, +/area/awaymission/academy/academyaft) +"iv" = ( +/obj/structure/sink{ + icon_state = "sink"; + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 2 + }, +/area/awaymission/academy/academyaft) +"iw" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 2 + }, +/area/awaymission/academy/academyaft) +"ix" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/wood, +/area/awaymission/academy/academyaft) +"iy" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/wood, +/area/awaymission/academy/academyaft) +"iz" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 2 + }, +/area/awaymission/academy/academyaft) +"iA" = ( +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 2 + }, +/area/awaymission/academy/academyaft) +"iB" = ( +/obj/structure/rack, +/obj/item/weapon/stock_parts/manipulator, +/obj/item/weapon/stock_parts/subspace/filter, +/turf/open/floor/plasteel/hydrofloor, +/area/awaymission/academy/academyaft) +"iC" = ( +/mob/living/simple_animal/hostile/wizard, +/turf/open/floor/carpet, +/area/awaymission/academy/headmaster) +"iD" = ( +/obj/structure/toilet{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 2 + }, +/area/awaymission/academy/academyaft) +"iE" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/structure/rack, +/obj/item/stack/sheet/metal, +/turf/open/floor/plasteel/hydrofloor, +/area/awaymission/academy/academyaft) +"iF" = ( +/obj/machinery/power/port_gen/pacman, +/turf/open/floor/plasteel/hydrofloor, +/area/awaymission/academy/academyaft) +"iG" = ( +/obj/structure/toilet{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 2 + }, +/area/awaymission/academy/academyaft) +"iH" = ( +/obj/item/weapon/paper, +/turf/open/floor/wood, +/area/awaymission/academy/academyaft) +"iI" = ( +/obj/item/stack/cable_coil/random, +/turf/open/floor/plasteel, +/area/awaymission/academy/academyaft) +"iJ" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/turf/open/floor/plating, +/area/awaymission/academy/academyaft) +"iK" = ( +/obj/item/device/multitool, +/turf/open/floor/engine, +/area/awaymission/academy/academyaft) +"iL" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/engine, +/area/awaymission/academy/academyaft) +"iM" = ( +/turf/open/floor/engine, +/area/awaymission/academy/academyaft) +"iN" = ( +/obj/structure/toilet{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/decal/cleanable/vomit, +/turf/open/floor/plasteel/cafeteria{ + dir = 2 + }, +/area/awaymission/academy/academyaft) +"iO" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/wood, +/area/awaymission/academy/academyaft) +"iP" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/engine, +/area/awaymission/academy/academyaft) +"iQ" = ( +/obj/structure/shuttle/engine/heater, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating, +/area/awaymission/academy/academyaft) +"iR" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/table, +/obj/item/toy/beach_ball/holoball, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/awaymission/academy/academyaft) +"iS" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/awaymission/academy/academyaft) +"iT" = ( +/obj/structure/grille, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/awaymission/academy/academyaft) +"iU" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/carpet, +/area/awaymission/academy/academyaft) +"iV" = ( +/obj/structure/grille, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/cable, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/awaymission/academy/academyaft) +"iW" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/airless/white{ + dir = 4 + }, +/area/awaymission/academy/academyaft) +"iX" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/table, +/obj/item/device/soulstone, +/turf/open/floor/plasteel/airless{ + icon_state = "whitered"; + dir = 4 + }, +/area/awaymission/academy/academyaft) +"iY" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_l" + }, +/turf/open/space, +/area/awaymission/academy/academyaft) +"iZ" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/open/space, +/area/awaymission/academy/academyaft) +"ja" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_r" + }, +/turf/open/space, +/area/awaymission/academy/academyaft) +"jb" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/awaymission/academy/academyaft) +"jc" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/awaymission/academy/academyaft) +"jd" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/obj/structure/cable, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/awaymission/academy/academyaft) +"je" = ( +/obj/structure/grille, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/awaymission/academy/academyaft) +"jf" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/airless/white{ + dir = 4 + }, +/area/awaymission/academy/academyaft) +"jg" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/airless{ + icon_state = "whitered"; + dir = 4 + }, +/area/awaymission/academy/academyaft) +"jh" = ( +/obj/structure/grille, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/awaymission/academy/academyaft) +"ji" = ( +/obj/structure/table, +/obj/item/clothing/glasses/meson/truesight, +/turf/open/floor/plasteel, +/area/awaymission/academy/academyaft) +"jj" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/awaymission/academy/academyaft) +"jk" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/carpet, +/area/awaymission/academy/academyaft) +"jl" = ( +/obj/structure/noticeboard, +/turf/closed/wall, +/area/awaymission/academy/academyaft) +"jm" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/carpet, +/area/awaymission/academy/academyaft) +"jn" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/airless/white{ + dir = 4 + }, +/area/awaymission/academy/academyaft) +"jo" = ( +/obj/structure/table, +/obj/item/organ/brain{ + name = "The preserved brain of Harry Houdini" + }, +/turf/open/floor/plasteel/airless{ + icon_state = "whitered"; + dir = 4 + }, +/area/awaymission/academy/academyaft) +"jp" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/item/weapon/weldingtool, +/turf/open/floor/greengrid, +/area/awaymission/academy/classrooms) +"jq" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/awaymission/academy/academyaft) +"jr" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/awaymission/academy/academyaft) +"js" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/airless/white{ + dir = 4 + }, +/area/awaymission/academy/academyaft) +"jt" = ( +/obj/structure/grille, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/item/weapon/shard, +/turf/open/floor/plating/airless, +/area/awaymission/academy/academyaft) +"ju" = ( +/obj/structure/window/reinforced, +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/drinks/trophy/gold_cup, +/turf/open/floor/plasteel/red/side, +/area/awaymission/academy/academyaft) +"jv" = ( +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/awaymission/academy/academyaft) +"jw" = ( +/obj/structure/destructible/cult/pylon, +/turf/open/floor/plasteel/yellow/side{ + dir = 10 + }, +/area/awaymission/academy/academyaft) +"jx" = ( +/turf/open/floor/plasteel/yellow/side, +/area/awaymission/academy/academyaft) +"jy" = ( +/obj/structure/destructible/cult/pylon, +/turf/open/floor/plasteel/yellow/side{ + dir = 6 + }, +/area/awaymission/academy/academyaft) +"jz" = ( +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/airless/white{ + dir = 4 + }, +/area/awaymission/academy/academyaft) +"jA" = ( +/obj/structure/table, +/obj/structure/window/reinforced, +/obj/item/device/batterer, +/turf/open/floor/plasteel/airless{ + icon_state = "whitered"; + dir = 4 + }, +/area/awaymission/academy/academyaft) +"jB" = ( +/obj/item/weapon/shard{ + icon_state = "medium" + }, +/turf/open/space, +/area/space) +"jC" = ( +/obj/machinery/igniter, +/turf/open/floor/plating, +/area/awaymission/academy/academyaft) +"jD" = ( +/obj/structure/window/reinforced, +/turf/open/floor/carpet, +/area/awaymission/academy/academyaft) +"jE" = ( +/obj/structure/grille, +/obj/structure/cable, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/awaymission/academy/academyaft) +"jF" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/awaymission/academy/academyaft) +"jG" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/awaymission/academy/academyaft) +"jH" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/awaymission/academy/academyaft) +"jI" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/carpet, +/area/awaymission/academy/academyaft) +"jJ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/awaymission/academy/academyaft) +"jK" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/awaymission/academy/academyaft) +"jL" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 9 + }, +/area/awaymission/academy/academyaft) +"jM" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/yellow/side{ + dir = 5 + }, +/area/awaymission/academy/academyaft) +"jN" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/yellow/side{ + dir = 9 + }, +/area/awaymission/academy/academyaft) +"jO" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 5 + }, +/area/awaymission/academy/academyaft) +"jP" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/awaymission/academy/academyaft) +"jQ" = ( +/obj/machinery/door/airlock/hatch, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/carpet, +/area/awaymission/academy/academyaft) +"jR" = ( +/obj/machinery/door/airlock/hatch, +/turf/open/floor/carpet, +/area/awaymission/academy/academyaft) +"jS" = ( +/turf/closed/wall/r_wall, +/area/awaymission/academy/academygate) +"jT" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/grass, +/area/awaymission/academy/academygate) +"jU" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/carpet, +/area/awaymission/academy/academygate) +"jV" = ( +/turf/open/floor/grass, +/area/awaymission/academy/academygate) +"jW" = ( +/turf/open/floor/carpet, +/area/awaymission/academy/academygate) +"jX" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/awaymission/academy/academygate) +"jY" = ( +/obj/structure/window/reinforced, +/turf/open/floor/grass, +/area/awaymission/academy/academygate) +"jZ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/door/window, +/turf/open/floor/carpet, +/area/awaymission/academy/academygate) +"ka" = ( +/obj/machinery/door/window, +/turf/open/floor/carpet, +/area/awaymission/academy/academygate) +"kb" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/carpet, +/area/awaymission/academy/academygate) +"kc" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/carpet, +/area/awaymission/academy/academygate) +"kd" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/carpet, +/area/awaymission/academy/academygate) +"ke" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/awaymission/academy/academygate) +"kf" = ( +/turf/open/floor/plating, +/area/awaymission/academy/academygate) +"kg" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/carpet, +/area/awaymission/academy/academygate) +"kh" = ( +/obj/machinery/power/apc{ + dir = 1; + environ = 3; + equipment = 3; + locked = 0; + pixel_y = 32; + req_access = "" + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/carpet, +/area/awaymission/academy/academygate) +"ki" = ( +/obj/item/stack/cable_coil/random, +/turf/open/floor/plating, +/area/awaymission/academy/academygate) +"kj" = ( +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/turf/open/floor/plating, +/area/awaymission/academy/academygate) +"kk" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/awaymission/academy/academygate) +"kl" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/carpet, +/area/awaymission/academy/academygate) +"km" = ( +/obj/machinery/gateway{ + dir = 9 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/awaymission/academy/academygate) +"kn" = ( +/obj/machinery/gateway{ + dir = 1 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/awaymission/academy/academygate) +"ko" = ( +/obj/machinery/gateway{ + dir = 5 + }, +/turf/open/floor/plating, +/area/awaymission/academy/academygate) +"kp" = ( +/obj/machinery/gateway{ + dir = 8 + }, +/turf/open/floor/plating, +/area/awaymission/academy/academygate) +"kq" = ( +/mob/living/simple_animal/hostile/wizard, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/awaymission/academy/classrooms) +"kr" = ( +/obj/machinery/gateway{ + dir = 4 + }, +/turf/open/floor/plating, +/area/awaymission/academy/academygate) +"ks" = ( +/obj/machinery/gateway{ + dir = 10 + }, +/turf/open/floor/plating, +/area/awaymission/academy/academygate) +"kt" = ( +/obj/machinery/gateway, +/turf/open/floor/plating, +/area/awaymission/academy/academygate) +"ku" = ( +/obj/machinery/gateway{ + dir = 6 + }, +/turf/open/floor/plating, +/area/awaymission/academy/academygate) +"kv" = ( +/obj/machinery/light, +/turf/open/floor/carpet, +/area/awaymission/academy/academygate) +"kw" = ( +/turf/closed/indestructible/fakeglass{ + icon_state = "fakewindows"; + dir = 8 + }, +/area/awaymission/academy/headmaster) +"kx" = ( +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/awaymission/academy/academygate) +"ky" = ( +/obj/machinery/door/poddoor/shutters{ + id = "AcademyGate" + }, +/turf/open/floor/plating/warnplate{ + dir = 2 + }, +/area/awaymission/academy/academygate) +"kz" = ( +/mob/living/simple_animal/hostile/wizard, +/turf/open/floor/carpet, +/area/awaymission/academy/classrooms) +"kA" = ( +/mob/living/simple_animal/hostile/wizard, +/turf/open/floor/plasteel/escape{ + dir = 6 + }, +/area/awaymission/academy/classrooms) +"kB" = ( +/obj/structure/chair, +/mob/living/simple_animal/hostile/wizard, +/turf/open/floor/plasteel/vault, +/area/awaymission/academy/classrooms) +"kC" = ( +/mob/living/simple_animal/hostile/wizard, +/turf/open/floor/carpet, +/area/awaymission/academy/academyaft) +"kD" = ( +/mob/living/simple_animal/hostile/wizard, +/turf/open/floor/plasteel, +/area/awaymission/academy/academyaft) +"kE" = ( +/mob/living/simple_animal/hostile/wizard, +/turf/open/floor/plasteel/hydrofloor, +/area/awaymission/academy/academyaft) +"kF" = ( +/turf/closed/indestructible/fakeglass{ + icon_state = "fakewindows2"; + dir = 8 + }, +/area/awaymission/academy/headmaster) +"kG" = ( +/mob/living/simple_animal/hostile/wizard, +/turf/open/floor/plasteel/cafeteria{ + dir = 2 + }, +/area/awaymission/academy/academyaft) +"kH" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/awaymission/academy/academyaft) +"kI" = ( +/obj/structure/cable, +/obj/machinery/gateway/centeraway{ + calibrated = 1 + }, +/turf/open/floor/plating, +/area/awaymission/academy/academygate) +"kJ" = ( +/obj/structure/mecha_wreckage/honker, +/turf/open/floor/plating, +/area/awaymission/academy/classrooms) +"kK" = ( +/obj/structure/table, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/item/weapon/book/manual/ripley_build_and_repair, +/turf/open/floor/plasteel, +/area/awaymission/academy/classrooms) +"kL" = ( +/obj/item/weapon/bikehorn, +/turf/open/floor/plating, +/area/awaymission/academy/classrooms) +"kM" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/trap/chill, +/turf/open/floor/plating, +/area/awaymission/academy/academyaft) +"kN" = ( +/obj/structure/trap/fire, +/turf/open/floor/engine, +/area/awaymission/academy/academyaft) +"kO" = ( +/mob/living/simple_animal/hostile/retaliate/clown, +/turf/open/floor/engine/cult, +/area/awaymission/academy/academycellar) +"kP" = ( +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/engine/cult, +/area/awaymission/academy/academycellar) +"kQ" = ( +/mob/living/simple_animal/hostile/syndicate, +/turf/open/floor/engine/cult, +/area/awaymission/academy/academycellar) +"kR" = ( +/obj/effect/rune/malformed, +/mob/living/simple_animal/hostile/skeleton, +/turf/open/floor/engine/cult, +/area/awaymission/academy/academycellar) +"kS" = ( +/obj/structure/table/wood, +/obj/item/candle/infinite, +/turf/open/floor/engine/cult, +/area/awaymission/academy/academycellar) +"kT" = ( +/obj/structure/table/wood, +/obj/item/weapon/kitchen/knife/ritual, +/obj/item/candle/infinite, +/turf/open/floor/engine/cult, +/area/awaymission/academy/academycellar) +"kU" = ( +/obj/effect/decal/remains/human, +/obj/effect/rune/malformed, +/turf/open/floor/engine/cult, +/area/awaymission/academy/academycellar) +"kV" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/engine/cult, +/area/awaymission/academy/academycellar) +"kW" = ( +/obj/structure/ladder/unbreakable/rune{ + id = "academy_cellar" + }, +/turf/open/floor/engine/cult, +/area/awaymission/academy/academycellar) +"kX" = ( +/obj/structure/bookcase/random, +/turf/open/floor/engine/cult, +/area/awaymission/academy/academycellar) +"kY" = ( +/obj/effect/decal/cleanable/xenoblood, +/turf/open/floor/engine/cult, +/area/awaymission/academy/academycellar) +"kZ" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/remains/human, +/turf/open/floor/engine/cult, +/area/awaymission/academy/academycellar) +"la" = ( +/obj/structure/trap/damage, +/turf/open/floor/engine/cult, +/area/awaymission/academy/academycellar) +"lb" = ( +/mob/living/simple_animal/hostile/retaliate/bat, +/turf/open/floor/engine/cult, +/area/awaymission/academy/academycellar) +"lc" = ( +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/mineral/uranium, +/area/awaymission/academy/academycellar) +"ld" = ( +/turf/open/floor/mineral/uranium, +/area/awaymission/academy/academycellar) +"le" = ( +/obj/structure/spider/stickyweb, +/turf/open/floor/engine/cult, +/area/awaymission/academy/academycellar) +"lf" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/engine/cult, +/area/awaymission/academy/academycellar) +"lg" = ( +/obj/structure/table/wood, +/obj/item/weapon/guardiancreator/choose, +/turf/open/floor/engine/cult, +/area/awaymission/academy/academycellar) +"lh" = ( +/obj/structure/falsewall/wood, +/turf/open/floor/engine/cult, +/area/awaymission/academy/academycellar) +"li" = ( +/mob/living/simple_animal/hostile/retaliate/bat, +/turf/open/floor/mineral/uranium, +/area/awaymission/academy/academycellar) +"lj" = ( +/mob/living/simple_animal/hostile/poison/giant_spider/hunter, +/turf/open/floor/engine/cult, +/area/awaymission/academy/academycellar) +"lk" = ( +/obj/structure/safe/floor, +/obj/item/voodoo, +/obj/item/weapon/gun/magic/wand/fireball, +/obj/item/clothing/suit/space/hardsuit/wizard, +/turf/open/floor/wood, +/area/awaymission/academy/headmaster) +"ll" = ( +/turf/closed/indestructible/riveted, +/area/awaymission/academy/academyengine) +"lm" = ( +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/awaymission/academy/headmaster) +"ln" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/vault, +/area/awaymission/academy/academyengine) +"lo" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/vault, +/area/awaymission/academy/academyengine) +"lp" = ( +/obj/machinery/power/apc{ + dir = 1; + pixel_y = 32 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/vault, +/area/awaymission/academy/academyengine) +"lq" = ( +/turf/closed/wall/rust, +/area/awaymission/academy/academyengine) +"lr" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/vault, +/area/awaymission/academy/academyengine) +"ls" = ( +/obj/machinery/power/smes/magical, +/obj/structure/cable, +/turf/open/floor/vault, +/area/awaymission/academy/academyengine) +"lt" = ( +/turf/open/floor/vault, +/area/awaymission/academy/academyengine) +"lu" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating, +/area/awaymission/academy/academyengine) +"lv" = ( +/turf/open/floor/plating, +/area/awaymission/academy/academyengine) +"lw" = ( +/obj/item/weapon/ectoplasm, +/turf/open/floor/plating, +/area/awaymission/academy/academyengine) +"lx" = ( +/obj/effect/rune/malformed, +/turf/open/floor/plating, +/area/awaymission/academy/academyengine) +"ly" = ( +/obj/effect/decal/cleanable/oil, +/obj/structure/table, +/obj/item/weapon/staff, +/turf/open/floor/plating, +/area/awaymission/academy/academyengine) +"lz" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/electrical, +/turf/open/floor/plating, +/area/awaymission/academy/academyengine) +"lA" = ( +/obj/structure/table, +/obj/item/stack/rods, +/turf/open/floor/plating, +/area/awaymission/academy/academyengine) +"lB" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating, +/area/awaymission/academy/academyengine) +"lC" = ( +/mob/living/simple_animal/hostile/wizard, +/turf/open/floor/plating, +/area/awaymission/academy/academyengine) +"lD" = ( +/obj/structure/table, +/obj/item/weapon/weldingtool, +/turf/open/floor/plating, +/area/awaymission/academy/academyengine) +"lE" = ( +/obj/structure/rack, +/obj/item/stack/cable_coil, +/turf/open/floor/plating, +/area/awaymission/academy/academyengine) +"lF" = ( +/turf/closed/indestructible/fakeglass, +/area/awaymission/academy/academyengine) +"lG" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/awaymission/academy/academyengine) +"lH" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/awaymission/academy/academyengine) +"lI" = ( +/obj/structure/ladder/unbreakable/rune{ + id = "academy_engine" + }, +/turf/open/floor/plating, +/area/awaymission/academy/academyengine) +"lJ" = ( +/obj/structure/mineral_door/iron, +/turf/open/floor/plating, +/area/awaymission/academy/academyengine) +"lK" = ( +/obj/effect/immovablerod{ + dir = 4 + }, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/turf/open/floor/plating, +/area/awaymission/academy/academyengine) +"lL" = ( +/mob/living/simple_animal/slaughter{ + name = "engine demon" + }, +/turf/open/floor/plating, +/area/awaymission/academy/academyengine) +"lM" = ( +/obj/machinery/light, +/turf/open/floor/plating, +/area/awaymission/academy/academyengine) +"lN" = ( +/obj/structure/rack, +/obj/item/weapon/storage/toolbox/mechanical, +/turf/open/floor/plating, +/area/awaymission/academy/academyengine) +"lO" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/awaymission/academy/academyengine) +"lP" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/awaymission/academy/academyengine) +"lQ" = ( +/obj/structure/table, +/obj/item/weapon/gun/magic/wand/polymorph, +/turf/open/floor/plating, +/area/awaymission/academy/academyengine) +"lR" = ( +/obj/structure/table, +/obj/item/stack/sheet/animalhide/monkey, +/turf/open/floor/plating, +/area/awaymission/academy/academyengine) +"lS" = ( +/obj/structure/table, +/obj/item/stack/sheet/runed_metal, +/obj/item/stack/sheet/mineral/wood, +/turf/open/floor/plating, +/area/awaymission/academy/academyengine) +"lT" = ( +/obj/structure/table, +/obj/item/stack/cable_coil, +/obj/item/stack/sheet/xenochitin, +/turf/open/floor/plating, +/area/awaymission/academy/academyengine) +"lU" = ( +/obj/structure/closet/radiation, +/turf/open/floor/plating, +/area/awaymission/academy/academyengine) +"lV" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/awaymission/academy/academyengine) +"lW" = ( +/obj/structure/ladder/unbreakable/rune{ + height = 1; + id = "academy_storage" + }, +/turf/open/floor/plating, +/area/awaymission/academy/classrooms) +"lX" = ( +/obj/structure/ladder/unbreakable/rune{ + height = 1; + id = "academy_coldroom" + }, +/turf/open/floor/plasteel/white, +/area/awaymission/academy/classrooms) +"lY" = ( +/obj/structure/table/wood, +/obj/item/seeds/kudzu, +/turf/open/floor/plasteel, +/area/awaymission/academy/classrooms) +"lZ" = ( +/obj/structure/bookcase/random, +/turf/open/floor/wood, +/area/awaymission/academy/classrooms) +"ma" = ( +/obj/structure/ladder/unbreakable/rune{ + height = 1; + id = "academy_cellar" + }, +/turf/open/floor/wood, +/area/awaymission/academy/classrooms) +"mb" = ( +/obj/structure/ladder/unbreakable/rune{ + height = 1; + id = "academy_engine" + }, +/turf/open/floor/plasteel, +/area/awaymission/academy/academyaft) +"mc" = ( +/turf/closed/wall, +/area/awaymission/academy/academyengine) +"md" = ( +/turf/closed/wall/r_wall, +/area/awaymission/academy/academyengine) +"me" = ( +/obj/structure/constructshell, +/turf/open/floor/plating, +/area/awaymission/academy/academyengine) +"mf" = ( +/obj/structure/constructshell, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating, +/area/awaymission/academy/academyengine) +"mg" = ( +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/vault, +/area/awaymission/academy/academyengine) +"mh" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/vault, +/area/awaymission/academy/academyengine) +"mi" = ( +/obj/machinery/door/airlock/vault, +/turf/open/floor/vault, +/area/awaymission/academy/academyengine) +"mj" = ( +/obj/structure/rack, +/obj/item/weapon/spellbook/oneuse/summonitem, +/obj/item/weapon/pen/fourcolor, +/turf/open/floor/vault, +/area/awaymission/academy/academyengine) +"mk" = ( +/obj/structure/rack, +/obj/item/weapon/claymore, +/obj/item/toy/figure/wizard, +/turf/open/floor/vault, +/area/awaymission/academy/academyengine) +"ml" = ( +/mob/living/simple_animal/hostile/creature, +/turf/open/floor/vault, +/area/awaymission/academy/academyengine) +"mm" = ( +/obj/structure/closet/coffin, +/turf/open/floor/plating, +/area/awaymission/academy/academyengine) +"mn" = ( +/obj/structure/rack, +/obj/item/weapon/gun/magic/wand, +/turf/open/floor/plating, +/area/awaymission/academy/academyengine) +"mo" = ( +/obj/structure/rack, +/obj/item/weapon/staff, +/turf/open/floor/plating, +/area/awaymission/academy/academyengine) +"mp" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/awaymission/academy/academyengine) +"mq" = ( +/turf/open/floor/plasteel, +/area/awaymission/academy/academyengine) +"mr" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/awaymission/academy/academyengine) +"ms" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/light, +/area/awaymission/academy/academyengine) +"mt" = ( +/turf/open/floor/light, +/area/awaymission/academy/academyengine) +"mu" = ( +/turf/open/floor/wood, +/area/awaymission/academy/academyengine) +"mv" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/wood, +/area/awaymission/academy/academyengine) +"mw" = ( +/obj/item/target, +/turf/open/floor/plasteel, +/area/awaymission/academy/academyengine) +"mx" = ( +/mob/living/simple_animal/hostile/wizard, +/turf/open/floor/light, +/area/awaymission/academy/academyengine) +"my" = ( +/obj/structure/chair/wood/normal, +/turf/open/floor/wood, +/area/awaymission/academy/academyengine) +"mz" = ( +/obj/structure/table/wood/poker, +/obj/item/toy/cards/deck, +/turf/open/floor/wood, +/area/awaymission/academy/academyengine) +"mA" = ( +/obj/structure/chair/wood/normal{ + dir = 4 + }, +/turf/open/floor/wood, +/area/awaymission/academy/academyengine) +"mB" = ( +/mob/living/simple_animal/hostile/wizard, +/turf/open/floor/wood, +/area/awaymission/academy/academyengine) +"mC" = ( +/obj/structure/chair/wood/normal{ + dir = 8 + }, +/turf/open/floor/wood, +/area/awaymission/academy/academyengine) +"mD" = ( +/turf/closed/mineral/random, +/area/awaymission/academy/academycellar) +"mE" = ( +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/awaymission/academy/academygate) +"mF" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating, +/area/awaymission/academy/academygate) +"mG" = ( +/mob/living/simple_animal/hostile/skeleton, +/turf/open/floor/plating, +/area/awaymission/academy/academygate) +"mH" = ( +/obj/effect/decal/remains/robot, +/turf/open/floor/plating, +/area/awaymission/academy/academygate) +"mI" = ( +/mob/living/simple_animal/hostile/wizard, +/turf/open/floor/plasteel, +/area/awaymission/academy/academyengine) +"mJ" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/drinks/bottle/gin, +/turf/open/floor/wood, +/area/awaymission/academy/academyengine) +"mK" = ( +/obj/machinery/vending/magivend, +/turf/open/floor/wood, +/area/awaymission/academy/academyengine) +"mL" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass, +/turf/open/floor/wood, +/area/awaymission/academy/academyengine) +"mM" = ( +/obj/structure/chair/wood/normal{ + dir = 1 + }, +/turf/open/floor/wood, +/area/awaymission/academy/academyengine) +"mN" = ( +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/academy/academycellar) +"mO" = ( +/obj/structure/reagent_dispensers/beerkeg, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/academy/academycellar) +"mP" = ( +/obj/effect/decal/remains/human, +/turf/open/floor/plating, +/area/awaymission/academy/academygate) +"mQ" = ( +/obj/structure/ladder/unbreakable/rune{ + id = "academy_storage" + }, +/turf/open/floor/plasteel, +/area/awaymission/academy/academyengine) +"mR" = ( +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/awaymission/academy/academyengine) +"mS" = ( +/obj/structure/ladder/unbreakable/rune{ + id = "academy_coldroom" + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/academy/academycellar) +"mT" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/academy/academycellar) +"mU" = ( +/obj/item/weapon/reagent_containers/food/snacks/meat/slab, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/academy/academycellar) +"mV" = ( +/obj/item/clothing/gloves/combat, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/academy/academycellar) +"mW" = ( +/turf/closed/indestructible/fakeglass{ + icon_state = "fakewindows"; + dir = 4 + }, +/area/awaymission/academy/headmaster) +"mX" = ( +/obj/item/clothing/under/syndicate, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/academy/academycellar) +"mY" = ( +/turf/closed/mineral/random, +/area/space) +"mZ" = ( +/turf/closed/indestructible/fakeglass{ + icon_state = "fakewindows"; + dir = 1 + }, +/area/awaymission/academy/headmaster) +"na" = ( +/turf/closed/indestructible/fakeglass{ + icon_state = "fakewindows2"; + dir = 1 + }, +/area/awaymission/academy/headmaster) +"nb" = ( +/obj/structure/chair/wood/wings{ + dir = 8 + }, +/obj/machinery/button/door{ + id = "AcademyGate"; + name = "Skeleton Storage Control"; + pixel_y = -24 + }, +/turf/open/floor/wood, +/area/awaymission/academy/headmaster) +"nc" = ( +/turf/closed/indestructible/fakeglass, +/area/awaymission/academy/headmaster) +"nd" = ( +/turf/closed/indestructible/fakeglass{ + icon_state = "fakewindows"; + dir = 1 + }, +/area/awaymission/academy/academyengine) +"ne" = ( +/turf/closed/indestructible/fakeglass{ + icon_state = "fakewindows2"; + dir = 1 + }, +/area/awaymission/academy/academyengine) +"nf" = ( +/turf/closed/indestructible/fakeglass{ + icon_state = "fakewindows2"; + dir = 6 + }, +/area/awaymission/academy/headmaster) +"ng" = ( +/turf/closed/indestructible/fakeglass{ + icon_state = "fakewindows"; + dir = 8 + }, +/area/awaymission/academy/academyengine) +"nh" = ( +/turf/closed/indestructible/fakeglass{ + icon_state = "fakewindows2"; + dir = 8 + }, +/area/awaymission/academy/academyengine) +"ni" = ( +/turf/closed/indestructible/fakeglass{ + icon_state = "fakewindows"; + dir = 4 + }, +/area/awaymission/academy/academyengine) +"nj" = ( +/obj/structure/rack, +/obj/item/weapon/reagent_containers/food/drinks/bottle/wine, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/academy/academycellar) +"nk" = ( +/obj/effect/decal/remains/human, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/academy/academycellar) +"nl" = ( +/obj/item/clothing/mask/gas/syndicate, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/academy/academycellar) +"nm" = ( +/mob/living/simple_animal/hostile/bear, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/academy/academycellar) + +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(8,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aG +aG +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(9,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +mD +mD +mD +mD +mD +mD +mD +aG +aa +aa +aa +aa +aa +aa +aa +aa +"} +(10,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +mD +mD +mN +mN +nj +nj +nj +mD +mD +aG +aa +aa +aa +aa +aa +aa +aa +"} +(11,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +mD +mN +mN +mN +mN +mN +mU +mN +mD +aG +aa +aa +aa +aa +aa +aa +aa +"} +(12,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +mD +mN +mS +mN +mT +mN +mN +mN +mD +mD +aG +aa +aa +aa +aa +aa +aa +"} +(13,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +mD +mN +mN +mN +mU +mN +mN +mN +mN +mD +aG +aa +aa +aa +aa +aa +aa +"} +(14,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +mD +mN +mN +mU +mN +mU +mT +mN +mN +mD +aG +aa +aa +aa +aa +aa +aa +"} +(15,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +mD +mD +mN +mN +mN +mU +mN +mN +mN +mN +mD +mD +aG +aa +aa +aa +aa +aa +"} +(16,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +mD +mN +mN +mT +mN +mN +mN +mN +mU +mN +mN +mD +aG +aa +aa +aa +aa +aa +"} +(17,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +mD +mN +mN +mN +mN +mN +mN +mN +mN +mN +mN +mD +aG +aa +aa +aa +aa +aa +"} +(18,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +mD +mO +mO +mO +mN +mN +mD +mD +mN +mN +mN +mD +aG +aa +aa +aa +aa +aa +"} +(19,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +mD +mO +mO +mO +mD +mD +mD +mD +mN +mN +mN +mD +aG +aa +aa +aa +aa +aa +"} +(20,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +mD +mD +mD +mD +mD +mD +mD +mD +mN +mN +mD +mD +aG +aa +aa +aa +aa +aa +"} +(21,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aG +mD +mD +mD +mN +mN +mN +mN +mN +mD +mY +aa +aa +aa +aa +aa +aa +"} +(22,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +mD +mD +mN +mN +mN +nm +mN +mN +mD +aG +aa +aa +aa +aa +aa +aa +"} +(23,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aG +mD +mV +nk +mN +mN +mU +mT +mD +aG +aa +aa +aa +aa +aa +aa +"} +(24,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aS +aS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +mD +mX +nl +mN +mN +mN +mN +mD +aG +aa +aa +aa +aa +aa +aa +"} +(25,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aS +aS +aS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aS +aS +aS +aS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +mD +mD +mN +nm +mN +nm +mN +mD +aG +aa +aa +aa +aa +aa +aa +"} +(26,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aS +aS +aS +aS +aS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aS +aS +aS +aS +aS +aS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +mD +mN +mN +mN +mN +mD +mD +aG +aa +aa +aa +aa +aa +aa +"} +(27,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aS +aS +aS +aS +aS +aa +aa +aS +aS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aS +aS +aS +aS +aS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +mD +mD +mD +mD +mD +mD +aG +aa +aa +aa +aa +aa +aa +aa +"} +(28,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aS +aS +aS +aS +aS +aa +aa +aS +aS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aS +aS +aS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +"} +(29,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(30,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aS +aS +aa +aa +aa +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(31,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aS +aS +aS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aS +aS +aS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(32,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aS +aS +aa +aa +aa +aa +aa +aS +aS +aS +aS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aS +aS +aS +aS +aS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(33,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 +aS +aS +aS +aS +aS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aS +aS +aS +aS +aS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(34,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 +aS +aS +aS +aS +aS +aS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aS +aS +aS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aS +aS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(35,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 +aS +aS +aS +aS +aS +aS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aS +aS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aS +aS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(36,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 +aS +aS +aS +aS +aS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aS +aS +aa +aa +aS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(37,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 +aS +aS +aS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(38,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 +ac +aS +aS +aS +aS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(39,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 +aS +aS +aS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(40,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(41,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(42,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(43,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 +ez +eJ +eJ +fb +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(44,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 +bs +bs +bs +eA +bs +bs +eA +bs +bs +bs +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(45,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 +bs +bs +bs +bs +bs +bs +bs +bs +bs +bs +bs +bs +bs +bs +ea +es +bB +bB +bB +bB +es +ea +bs +bs +bs +bs +bs +bs +bs +bs +bs +hc +hc +hc +hc +hc +hc +hc +hc +hc +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(46,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 +bs +bs +bU +ci +cq +cz +kK +cM +cX +de +do +jp +dH +de +bs +ea +es +bB +bB +bB +bB +es +ea +bs +bB +fX +go +gu +gC +bB +gQ +bB +hc +hf +hf +hf +hf +hf +hf +hf +hc +hc +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(47,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 +bt +bz +bz +bz +bV +bz +bz +bz +cY +de +dp +dz +dp +de +bs +bs +bs +eB +es +es +eB +bs +bs +bs +bB +bB +bB +gu +gC +gL +bB +bB +hc +hg +hy +hO +hy +hO +ip +hf +hs +hc +hc +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(48,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 +bu +bA +bB +bB +bB +kJ +kL +cN +cZ +de +dq +dA +dI +de +bE +eb +et +bz +eK +eT +bz +fo +fu +bs +bB +bB +bB +gu +gC +bB +bB +gL +hc +hh +hz +hf +hz +hf +hz +hf +ho +hs +hc +hc +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(49,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 +bv +bB +bB +cj +bB +bB +bB +bB +cZ +bV +bV +cY +bV +bz +bE +ec +eu +eC +kq +eT +fc +eu +fv +bs +fG +fZ +gp +fZ +fZ +gp +fZ +gY +hc +hh +hh +hf +hh +hf +hh +hf +ig +hs +hs +hc +hc +hc +hc +hc +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(50,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 +bv +bB +bB +hL +bB +lW +cJ +bB +cZ +bV +bz +cY +bz +bV +bE +ed +ev +bz +eK +eT +bz +fp +fw +bE +fH +ga +ga +ga +ga +ga +ga +gZ +hc +hi +hA +hP +if +ik +hM +kE +hs +mb +ho +hc +iK +kN +iQ +iY +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(51,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 +bw +bC +bB +bB +bB +bB +bB +cO +cZ +bz +bz +cY +bz +bz +dT +ee +ee +bz +eL +eU +bz +ee +ee +dT +fI +bz +bz +bz +bz +bz +bz +ha +hc +hj +ho +hs +ig +hs +hs +ho +hs +ho +hs +hc +iL +kN +iQ +iZ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(52,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 +bt +bz +bV +bz +bz +bz +bz +bz +da +cM +cM +dB +cM +cM +dU +ef +ef +ef +ef +ef +ef +ef +fx +dU +fJ +bz +gq +du +gD +du +gq +hb +hc +hk +hB +hs +ho +hs +hs +hs +ho +hs +hs +iJ +iM +kN +iQ +iZ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(53,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 +bs +bD +bz +bz +cr +bz +bV +bV +bz +bz +dr +bz +bz +bz +bE +eg +ej +ej +ej +ej +ej +ej +fy +bE +fK +bz +bz +bz +bz +bz +bz +ha +hc +hl +hC +hQ +ih +ih +iq +iu +hQ +iF +ho +hc +iM +kN +iQ +ja +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(54,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 +bs +bE +bE +bE +bE +bE +bE +bE +bE +bE +bE +bE +bE +bE +bE +eh +ej +el +el +el +el +ej +fg +bE +fK +gb +bz +bz +gq +du +gq +hb +hc +hc +hD +hc +hc +hc +hc +hc +hc +hc +hc +hc +hc +hc +hc +hc +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(55,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 +bs +bF +bF +bF +bF +cA +cA +cP +db +dc +dc +dc +dc +dc +bE +ei +ej +el +eM +eV +el +ej +fg +bE +fL +gc +gr +gv +gr +gr +gr +dm +hc +hm +hE +hR +hc +ac +aa +aa +aa +aa +aP +aa +aP +aP +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(56,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 +bs +bF +bX +bZ +bZ +cB +cK +cQ +dc +dc +dc +dc +dc +dc +dV +ej +ej +el +eN +eW +el +ej +fg +bE +bE +bE +bE +bE +bE +bE +bE +bE +hc +hc +hD +hc +hc +hc +hc +hc +hc +hc +hc +hc +hc +hc +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(57,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 +aP +bs +bF +bY +bZ +bZ +bZ +cK +fY +dc +df +ds +dc +dc +dc +dV +ej +ej +el +el +kz +el +ej +fg +bE +fM +dc +dc +gw +dc +dc +dc +ma +fD +hn +hF +hn +fD +il +il +iv +il +iv +il +iv +il +hc +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(58,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 +aP +aP +bs +bF +bZ +bZ +bZ +bZ +cK +cQ +dc +dc +dc +dc +dc +dc +bE +ej +ej +el +eM +eV +el +ej +fz +es +dc +gd +df +ds +gd +df +ds +dc +fD +ho +hG +hS +fD +il +il +il +il +il +il +il +il +hc +hc +jb +hc +jb +hc +hc +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(59,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 +aP +aP +aa +bs +bF +bZ +bX +bZ +bZ +cK +cQ +dc +df +ds +df +ds +dc +bE +ej +ej +el +eN +eW +el +ej +ej +es +dc +dc +dc +dc +dc +dc +dc +dc +fD +ho +hG +hT +fD +il +il +il +il +il +il +kG +il +fD +iR +hG +ji +hG +ju +hc +hc +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(60,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 +aP +ab +aP +aP +bs +bF +ca +bZ +bZ +bZ +fR +cQ +dc +dc +dc +dc +dc +dc +bE +ej +ej +el +el +el +el +ej +ej +es +dc +lZ +dc +lZ +dc +lZ +dc +dc +fD +hp +hG +hU +fD +im +il +iw +il +il +il +iw +il +fD +iS +jc +jj +kH +jv +jC +hc +hc +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(61,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 +aP +aP +aP +aa +aa +bs +bF +bZ +bZ +bZ +bZ +cK +cQ +dc +dg +ds +df +ds +dc +bE +ek +ew +em +eO +eX +em +ew +fA +es +dc +lZ +dc +lZ +dc +lZ +dc +dc +fD +ho +hG +hV +fD +il +il +fD +ir +fD +ir +fD +ir +fD +iT +jd +jd +jd +jd +jd +jE +hc +hc +hc +hc +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(62,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +mZ +na +na +na +na +na +nc +ab +aP +aP +aP +aP +aP +aP +aa +aP +aa +aa +bs +bF +bF +bF +bF +cC +cC +cR +dd +dc +dc +dc +dc +dc +bE +ej +ej +el +eN +eW +el +ej +fg +bE +dc +dc +dc +dc +dc +dc +dc +dc +fD +ho +hG +hW +fD +in +il +fD +iG +fD +iG +fD +iN +fD +gh +fN +fN +fN +fN +fN +fN +fN +fN +fN +jP +aa +aa +aa +aa +aa +jS +jS +jS +jS +jS +jS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(63,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ak +ar +ae +aC +ae +aM +aN +ab +ab +ab +ab +nf +ab +ab +nf +ab +ab +ab +ab +as +as +as +as +as +as +as +as +as +as +as +as +as +as +eh +ej +el +el +el +el +ej +fg +bE +bE +gg +gs +gs +gE +bE +gR +bE +fD +hq +hH +fD +fD +fD +ir +fD +fD +fD +fD +fD +fD +fD +iU +fE +jk +fE +fE +fE +jF +jI +fN +jL +hc +jS +aa +aa +aa +jS +jS +jW +jW +jW +jW +jS +jS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(64,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ah +ah +ah +ax +ah +ax +ah +ah +ah +ab +aT +aF +aF +aX +bd +aF +aF +as +br +br +bI +br +br +br +br +br +cS +br +br +aF +aF +aF +aF +as +ej +ej +el +eM +eV +el +ej +fg +fD +fN +gh +fN +fN +gh +fN +fF +fN +fD +fF +gF +hX +hX +hX +hX +ix +hX +hX +iH +hX +hX +fD +gF +fF +fD +fF +fF +jD +eu +jJ +fN +jM +hc +jS +jX +jX +jX +jS +jW +jW +kf +kf +jW +kv +jS +jS +jS +jS +jS +jS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(65,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +aa +aa +aa +aa +aa +kw +ad +ah +ah +ah +ah +aD +ah +ah +ah +ah +ab +aF +aF +ah +ah +ah +ah +bn +as +br +bx +bJ +cb +br +ct +cD +cL +bx +bJ +br +aF +dC +dC +dC +as +ej +ej +el +eN +eW +fd +ew +fB +fE +fE +gi +fF +fF +gF +fF +fF +fF +fD +kC +gF +hX +ii +ii +ii +ii +ii +ii +ii +ii +hX +fD +gF +fF +fD +jq +jw +fF +jG +gF +fN +fN +hc +jT +jV +jV +jY +jW +jW +ki +kf +kf +kf +jW +kx +jS +mE +kf +kf +jS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(66,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +kF +ae +ai +ah +as +as +as +as +as +ah +ah +ab +aF +aF +ah +ah +be +ah +aF +as +br +by +bK +cc +br +ct +cD +br +by +bK +br +aF +dC +dC +dC +as +ej +ej +el +kz +el +fe +ej +el +fF +fF +fF +fF +fF +gG +fE +gS +fE +hd +fE +hI +hX +hX +hX +hX +hX +hX +hX +hX +hX +iO +hd +hI +fF +jl +kD +jx +fF +fF +gG +fE +fE +jQ +jU +jU +jU +jZ +kb +ke +kj +km +kp +ks +kf +kf +ky +kf +mG +mF +jS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(67,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +kF +af +ah +ah +as +ay +aE +aJ +as +ah +ah +aQ +cI +ah +ah +aY +bf +ah +aF +as +br +br +br +br +br +dy +br +br +br +br +br +aF +aF +aF +aF +as +ej +ej +el +eM +eV +fe +ej +ej +fD +fN +fN +fN +fN +fN +fN +gh +fN +fD +fF +hJ +fE +fE +fE +fE +fE +fE +fE +fE +fE +gi +fD +gF +fF +fD +ho +jx +fF +fF +fF +fF +fF +hc +jV +jV +jV +jY +kc +jW +kf +kn +kI +kt +kf +kf +ky +mF +kf +mG +jS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(68,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +kF +ae +ah +al +at +az +aF +nb +as +aO +ah +ab +aF +aF +aV +aZ +bg +ah +ah +bp +ah +ah +ah +ah +ah +ah +ah +ah +iC +ah +ah +ah +ah +ah +ah +ah +el +ej +el +eN +eW +fe +ej +ej +fD +fN +fN +fN +fN +fN +fN +gh +fN +fD +fF +gF +fF +fF +kC +fF +fF +fF +fF +fF +fF +fF +fD +gF +fF +fD +ho +jx +fF +fF +fF +fF +fF +hc +jV +jV +jV +jY +kc +jW +kf +ko +kr +ku +kf +kf +ky +kf +mP +kf +jS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(69,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +kF +ae +ah +am +as +aA +aF +bS +as +ah +ah +ab +aF +aU +ap +ba +bh +bk +ap +bq +ap +ap +ap +ap +ap +ap +cE +ap +ap +ap +ap +ap +ap +ap +ap +ap +em +ew +em +em +em +ff +ej +el +fF +fF +fF +fF +fF +fF +fF +gF +fF +he +fF +gF +hX +hX +hX +hX +hX +hX +hX +hX +hX +hX +he +gF +kC +jl +ho +jx +fF +fF +fF +fF +fF +jR +jW +jW +jW +ka +kc +kf +kf +kf +kf +kf +kf +kf +ky +mG +mF +mG +jS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(70,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +kF +ag +ai +an +as +aB +lk +lm +as +al +ap +aR +ap +av +ah +bb +bi +bl +aF +as +br +br +br +br +ah +cu +an +br +br +br +br +aF +aF +aF +aF +as +ej +ej +el +eM +eV +fe +ej +el +fF +fF +fF +fF +fF +fF +fF +gF +fF +fD +fF +gF +hX +ii +ii +ii +ii +ii +ii +ii +ii +hX +fD +gF +fF +fD +jr +jy +fF +jH +fF +fN +fN +hc +jT +jV +jV +jY +kd +kg +kk +kf +kf +kf +jW +kx +jS +mH +kf +kf +jS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(71,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +kF +ae +ah +an +as +as +as +as +as +an +ah +ab +aF +aF +ah +ah +ah +ah +aF +as +br +bx +bJ +dy +ah +ah +an +dy +bx +bJ +br +aF +dC +dC +dC +as +ej +ej +el +eN +eW +fe +ej +ej +fD +fO +fN +fN +gy +fN +fN +gF +fN +fD +fF +gF +hX +hX +hX +hX +iy +hX +hX +hX +hX +hX +fD +gF +fF +fD +fF +fF +jD +eu +jK +fN +jN +hc +jS +jX +jX +jX +jS +kh +kl +kf +kf +jW +kv +jS +jS +jS +jS +jS +jS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(72,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +mW +ah +ah +ao +au +ap +aH +ap +ap +av +ah +ab +aF +aF +ah +ah +ah +ah +bn +as +br +by +bK +br +ah +cu +an +br +by +bK +br +aF +dC +dC +dC +as +ej +ej +el +el +el +fe +ej +ej +bE +bE +bE +bE +bE +bE +bE +gT +bE +fD +hn +hF +fD +fD +fD +ir +fD +fD +fD +fD +fD +fD +fD +gF +fF +jm +fF +fF +fF +jG +fF +fN +jO +hc +jS +aa +aa +aa +jS +jS +jW +jW +jW +jW +jS +jS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(73,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +aj +ap +av +ax +ah +ax +ah +ah +ah +ab +as +aF +aW +bc +bj +bm +bo +as +br +br +bL +br +ah +ah +an +br +bL +br +br +aF +aF +aF +aF +as +ej +ej +ej +eP +ej +fg +ej +ej +bE +fP +gj +gj +gz +gj +gj +gU +gj +fD +ho +hG +hY +fD +il +il +fD +iD +fD +iD +fD +iD +fD +gh +fN +fN +fN +fN +fN +fN +fN +fN +fN +jP +aa +aa +aa +aa +aa +jS +jS +jS +jS +jS +jS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(74,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +aq +aw +ae +aI +ae +ak +af +ab +ab +ab +ab +nf +ab +ab +nf +ab +ab +ab +ab +as +ab +ck +ab +cF +ab +as +as +as +as +as +as +as +as +bE +bE +bE +bE +eY +fh +bE +bE +bE +fQ +gk +gt +gt +gt +gt +gV +gj +fD +ho +hG +hZ +fD +il +il +fD +ir +fD +ir +fD +ir +fD +iV +je +je +je +je +je +jE +hc +hc +hc +hc +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(75,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +mZ +na +na +na +na +na +nc +ab +aP +aP +aP +aP +aP +aP +aa +aP +aa +aa +ab +bM +cd +cl +cd +bO +cd +cT +as +dh +dt +dt +dt +dt +dt +en +bE +eD +eD +eD +fi +eD +eD +bE +kB +gl +gj +gj +gH +gO +gJ +gO +fD +hp +hG +ia +fD +im +il +iz +il +il +il +iz +il +fD +iW +jf +jn +js +jz +jC +hc +hc +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aP +aP +aP +aa +aa +ab +bN +ce +cm +ce +cG +cl +cd +as +di +du +bz +du +bz +du +eo +bE +eD +eD +eD +fi +fq +eD +bE +fP +gm +gj +gj +gI +gO +gJ +gO +fD +ho +hG +ib +fD +il +il +il +il +il +il +il +il +fD +iX +jg +jo +jg +jA +hc +hc +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aP +ab +aP +aP +ab +bO +cd +cl +cd +cl +cd +cl +as +dj +dv +bz +dw +bz +dw +eo +bE +eD +eD +eD +fi +fr +eD +bE +fP +gj +gj +gj +gJ +gO +gW +gO +fD +ho +hG +ic +fD +il +il +il +il +il +il +kG +il +hc +hc +jh +hc +jt +hc +hc +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aP +aP +aa +ab +bP +as +as +cv +cH +cl +cU +as +dk +bz +bz +bz +bz +bz +eo +bE +eE +eQ +eZ +fi +fs +eD +bE +cA +cA +cA +cA +cA +cA +cA +cA +fD +hr +hK +hq +fD +il +il +iA +il +iA +il +iA +il +hc +aa +aa +aa +aa +jB +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(79,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aP +aP +ab +bQ +as +co +cw +as +cd +cV +as +di +du +bz +du +bz +bz +eo +bE +eF +eD +eD +fi +eD +fC +bE +fS +bz +fS +bz +gK +bz +gX +bs +hc +hc +hD +hc +hc +hc +hc +hc +hc +hc +hc +hc +hc +hc +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(80,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 +aP +ab +bR +cf +cf +cx +cf +cf +cW +as +di +dw +bz +dJ +bz +dW +eo +bE +eD +kA +eE +fj +eZ +eD +bE +fT +gn +fT +gA +fT +gP +bs +bs +hc +hm +kM +hR +hc +aa +aa +aa +aa +aa +aP +aa +aP +aP +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(81,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +bT +bT +bT +bT +bT +cg +bT +as +di +bz +bz +bz +bz +bz +bz +ex +eD +eD +eD +fi +eD +eD +bE +fU +bz +bz +bz +fW +bs +bs +aP +hc +hc +hD +hc +hc +hc +hc +hc +hc +hc +hc +hc +hc +hc +hc +hc +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(82,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +bT +cg +bT +bT +bT +bT +bT +as +dj +bz +dD +lY +dM +bz +bz +ex +eD +eD +eD +fi +kA +eD +bE +fV +bz +bz +gB +bs +bs +aP +aa +hc +hs +hj +id +ij +io +is +iB +iE +ho +ho +hc +iM +kN +iQ +iY +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(83,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ch +cp +cy +cp +ch +ab +ab +di +bz +dE +dL +dN +dX +ep +bE +eD +eD +eD +fi +eD +eD +bE +bz +bz +fW +bs +bs +aP +aa +aa +hc +ht +hM +ie +hs +hs +it +hs +ho +ho +hs +iJ +iM +kN +iQ +iZ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(84,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +bs +dl +dx +dx +dx +dO +dx +eq +bE +eG +eR +eG +fk +eG +eG +bE +bz +bz +bs +bs +aP +aa +aa +aa +hc +hu +hs +hs +hs +kD +hs +kE +hs +hs +hs +hc +iL +kN +iQ +iZ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(85,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bs +bE +bE +dF +bE +dP +bE +bE +bE +eH +eH +eH +fl +eH +eH +bE +fW +bs +bs +aP +aa +aa +aa +aa +hc +hv +ho +hs +hs +hs +hs +hs +hs +hs +hs +hc +iP +kN +iQ +ja +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(86,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bs +lX +dm +dm +dm +dQ +dY +dY +bE +eH +eH +eH +fl +eH +eH +bE +bs +bs +aP +aa +aa +aa +aa +aa +hc +hw +hf +hf +hf +hf +hf +hf +hs +ho +iI +hc +hc +hc +hc +hc +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(87,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bs +dm +dm +dm +dm +dR +dZ +dZ +ey +eI +eI +eI +fm +eH +eH +bs +bs +aP +aa +aa +aa +aa +aa +aa +hc +hx +hf +hf +hf +hf +hf +hf +ho +hs +hc +hc +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(88,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bs +dn +dm +dm +dm +dm +dm +dm +bE +eH +eS +fa +fn +ft +bs +bs +aP +aP +aP +aP +aP +aP +aP +aP +hc +hf +hN +hf +hN +hf +hN +hf +hs +hc +hc +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(89,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +aa +bs +bs +dm +dG +dm +dS +dS +er +bs +bs +bs +bs +bs +bs +bs +aP +aa +aa +aa +aa +aa +aa +aa +aa +hc +hf +hf +hf +hf +hf +hf +hf +hc +hc +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(90,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bs +bs +bs +bs +bs +bs +bs +bs +bs +aP +aP +aP +aP +aP +aP +aP +aP +aP +aP +aP +aP +aP +aP +hc +hc +hc +hc +hc +hc +hc +hc +hc +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(91,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aG +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(92,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(93,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aG +aG +aG +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aG +aG +aG +aG +aG +aG +aG +mc +mc +mc +mc +mc +mc +mc +mc +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(94,1,1) = {" +aa +aa +aa +aa +aa +aa +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aa +aa +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +mc +mc +mc +mc +mc +mc +mc +mc +mc +mq +mq +mq +mw +mw +mw +mc +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(95,1,1) = {" +aa +aa +aa +aa +aa +aa +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +mc +me +me +me +lv +mm +mm +mm +mc +mr +mq +mq +mq +mQ +mq +mc +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(96,1,1) = {" +aa +aa +aa +aa +aa +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +mc +mf +me +me +lv +mm +mm +mm +mc +mq +mq +mq +mq +mq +mq +mc +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(97,1,1) = {" +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aL +aL +aL +aL +aL +aG +aG +aG +aG +aG +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +mc +lv +lv +lv +lv +lv +lv +lM +mc +mw +mq +mq +mq +mq +mq +mc +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(98,1,1) = {" +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aL +la +lg +la +aL +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +mc +lv +lv +lv +lv +mn +mo +mo +mc +mw +mq +mq +mq +mq +mR +mc +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(99,1,1) = {" +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aL +aL +aL +aL +aL +aL +aL +la +la +la +aL +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +mc +lv +lv +lB +lv +mn +mo +mo +mc +mw +mq +mq +mI +mq +mq +mc +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(100,1,1) = {" +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aL +dK +dK +dK +dK +aK +aL +dK +dK +dK +aL +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +mc +lu +lv +lv +lv +mc +mc +mc +mc +mq +mq +mq +mq +mq +mq +mc +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(101,1,1) = {" +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aL +dK +kR +dK +dK +kX +aL +aL +lh +aL +aL +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +mc +lv +lv +lv +lv +mc +mp +mq +mq +mq +mq +mq +mq +mq +mq +mc +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(102,1,1) = {" +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aL +dK +kS +dK +dK +kX +aL +lc +lb +ld +aL +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +mc +lv +lv +lv +lv +mc +mq +mc +mc +mc +mc +mc +mc +mc +mc +mc +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(103,1,1) = {" +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aL +dK +dK +dK +dK +kX +aL +lb +ld +dK +aL +aG +aG +aG +aG +aG +lq +lq +lq +lq +lq +lq +lq +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +mc +lv +lv +lC +lv +mc +mq +mc +mc +mc +mc +mc +mc +mc +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(104,1,1) = {" +aG +aG +aG +aG +aL +aL +aL +aL +aG +aG +aG +aL +dK +kU +dK +dK +kX +aL +ld +dK +li +aL +aG +aG +aG +aG +aG +lq +lv +lv +lI +lv +lv +lq +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +mc +lu +lv +lv +lv +lJ +mq +mc +mt +mt +mt +mu +mK +mc +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(105,1,1) = {" +aG +aG +aG +aL +aL +gx +gx +aL +aL +aG +aG +aL +dK +kT +dK +dK +kX +aL +dK +li +dK +aL +aG +aG +aG +aG +aG +lq +lu +lv +lv +lv +lv +lq +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +md +md +mi +md +md +mc +mq +mc +ms +mt +mt +mu +mJ +mc +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(106,1,1) = {" +aG +aG +aL +aL +dK +dK +dK +dK +aL +aL +aG +aL +aL +aL +gN +aL +aL +aL +ld +lb +ld +aL +aG +aG +aG +aG +aG +lq +lv +lB +lv +lv +lM +lq +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +md +mg +lt +lt +lt +md +mq +mc +mt +mt +mx +mu +mL +mc +aG +aa +aa +aa +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(107,1,1) = {" +aG +aG +aL +dK +dK +dK +dK +dK +dK +aL +aL +aG +aG +aL +dK +aL +aG +aL +lb +ld +dK +aL +aG +aG +aG +aG +aG +lq +lv +lv +lv +lv +lv +lq +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +md +lt +mj +mk +ml +md +mr +mc +mu +mu +mu +mu +mu +ng +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(108,1,1) = {" +aG +aG +aL +dK +dK +dK +dK +dK +dK +dK +aL +aL +aG +aL +dK +aL +aG +aL +aL +aL +lh +aL +aG +aG +aG +aG +aG +lq +lv +lv +lv +lB +lR +lq +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +md +mh +lt +lt +lt +md +mq +mc +mu +mu +mu +mA +mu +nh +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(109,1,1) = {" +aG +aG +aL +ge +dK +dK +ge +dK +dK +dK +ge +aL +aL +ge +dK +ge +aL +aL +le +le +le +aL +aG +aG +aG +aG +aG +lq +lw +lv +lv +lv +lQ +lq +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +md +md +md +md +md +md +mq +mc +mu +mu +my +mz +mM +nh +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(110,1,1) = {" +aG +aG +aL +gf +dK +dK +dK +gM +dK +dK +dK +gN +dK +dK +kW +dK +dK +gN +dK +dK +le +aL +aG +aG +aG +aG +aG +lq +lx +lC +lv +lv +lT +lq +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aG +aG +aG +aG +mc +mq +lJ +mu +mu +mu +mC +mu +nh +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(111,1,1) = {" +aG +aG +aL +ge +dK +dK +ge +dK +dK +dK +ge +aL +aL +ge +dK +ge +aL +aL +dK +lj +dK +aL +aG +aG +aG +aG +aG +lq +lv +lw +lv +lv +lS +lq +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aG +aG +aG +mc +mc +mc +mu +mu +mu +mB +mu +nh +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(112,1,1) = {" +aG +aG +aL +dK +dK +dK +dK +dK +dK +dK +aL +aL +aG +aL +dK +aL +aG +aL +lf +dK +lj +aL +aG +aG +aG +aG +aG +lq +lu +lv +lv +lv +lv +lq +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aG +aG +aG +aG +mc +mv +mu +mu +mu +mu +ni +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(113,1,1) = {" +aG +aG +aL +dK +dK +dK +dK +dK +dK +aL +aL +aG +aG +aL +dK +aL +aG +aL +aL +aL +aL +aL +aG +aG +aG +aG +aG +lq +lv +lv +lv +lB +lM +lq +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aG +aG +aG +aG +mc +mc +mc +mc +mc +mc +mc +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(114,1,1) = {" +aG +aG +aL +aL +dK +dK +dK +dK +aL +aL +aG +aL +aL +aL +gN +aL +aL +aL +aG +aG +aG +aG +aG +aG +aG +aG +aG +lq +lz +lv +lv +lv +lv +lq +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(115,1,1) = {" +aG +aG +aG +aL +aL +dK +dK +aL +aL +aG +aG +aL +kO +kV +dK +kV +kY +aL +aG +aG +aG +aG +aG +aG +aG +aG +aG +lq +ly +lv +lv +lv +lU +lq +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(116,1,1) = {" +aG +aG +aG +aG +aL +aL +aL +aL +aG +aG +aG +aL +aL +aL +dK +aL +aL +aL +aG +aG +aG +aG +aG +aG +aG +aG +aG +lq +lA +lD +lv +lv +lV +lq +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(117,1,1) = {" +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aL +aL +aL +dK +aL +aL +aL +aG +aG +aG +aG +aG +aG +aG +aG +aG +lq +lq +lq +lJ +lq +lq +lq +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aG +aG +aG +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(118,1,1) = {" +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aL +kP +kV +dK +kV +dK +aL +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +lq +lE +lv +lN +lq +aG +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aG +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(119,1,1) = {" +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aL +aL +aL +dK +aL +aL +aL +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +lq +lu +lv +lM +lq +aG +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(120,1,1) = {" +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aL +aL +aL +dK +aL +aL +aL +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +lq +lB +lv +lv +lq +aG +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(121,1,1) = {" +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aL +kQ +kV +dK +kV +kZ +aL +aG +aG +aG +aG +aG +aG +aG +ll +ll +ll +ll +nd +ne +lF +ll +aG +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(122,1,1) = {" +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aL +aL +aL +ge +aL +aL +aL +aG +aG +aG +aG +aG +aG +aG +ll +lo +ls +ll +lH +lv +lP +ll +aG +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(123,1,1) = {" +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aL +aL +aL +aL +aL +aL +aL +aG +aG +aG +aG +aG +aG +aG +ll +ln +lr +ll +lG +lK +lO +ll +aG +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(124,1,1) = {" +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +ll +lp +lt +ll +lv +lL +lv +ll +aG +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(125,1,1) = {" +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +ll +ll +ll +ll +ll +ll +ll +ll +aG +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(126,1,1) = {" +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(127,1,1) = {" +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(128,1,1) = {" +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} diff --git a/_maps/RandomZLevels/Cabin.dmm b/_maps/RandomZLevels/Cabin.dmm new file mode 100644 index 0000000..2aa4616 --- /dev/null +++ b/_maps/RandomZLevels/Cabin.dmm @@ -0,0 +1,66537 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/closed/indestructible/rock/snow, +/area/space) +"ab" = ( +/turf/closed/indestructible/rock/snow, +/area/awaymission/snowforest) +"ac" = ( +/turf/open/floor/plating/asteroid/snow/temperatre, +/area/awaymission/snowforest) +"ad" = ( +/turf/closed/wall/mineral/wood, +/area/awaymission/snowforest/lumbermill) +"ae" = ( +/obj/item/weapon/grown/log/tree, +/turf/open/floor/plating/asteroid/snow/temperatre, +/area/awaymission/snowforest) +"af" = ( +/turf/open/floor/wood/cold, +/area/awaymission/snowforest/lumbermill) +"ag" = ( +/obj/machinery/conveyor_switch/oneway{ + id = "lumbermill" + }, +/turf/open/floor/wood/cold, +/area/awaymission/snowforest/lumbermill) +"ah" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "lumbermill" + }, +/turf/open/floor/wood/cold, +/area/awaymission/snowforest/lumbermill) +"ai" = ( +/obj/machinery/recycler/lumbermill, +/obj/machinery/conveyor{ + dir = 4; + id = "lumbermill" + }, +/turf/open/floor/wood/cold, +/area/awaymission/snowforest/lumbermill) +"aj" = ( +/obj/item/weapon/grown/log/tree, +/turf/open/floor/wood/cold, +/area/awaymission/snowforest/lumbermill) +"ak" = ( +/obj/structure/table/wood, +/turf/open/floor/wood/cold, +/area/awaymission/snowforest/lumbermill) +"al" = ( +/obj/structure/table/wood, +/obj/item/weapon/grown/log/tree, +/turf/open/floor/wood/cold, +/area/awaymission/snowforest/lumbermill) +"am" = ( +/obj/structure/table/wood, +/obj/item/weapon/twohanded/required/chainsaw, +/turf/open/floor/wood/cold, +/area/awaymission/snowforest/lumbermill) +"an" = ( +/turf/closed/wall/mineral/wood, +/area/awaymission/cabin) +"ao" = ( +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/awaymission/cabin) +"ap" = ( +/obj/structure/closet/crate/bin, +/turf/open/floor/wood, +/area/awaymission/cabin) +"aq" = ( +/turf/open/floor/wood, +/area/awaymission/cabin) +"ar" = ( +/obj/machinery/door/airlock/wood{ + name = "bathroom" + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"as" = ( +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/obj/structure/mirror{ + pixel_y = 28 + }, +/turf/open/floor/plasteel/freezer, +/area/awaymission/cabin) +"at" = ( +/obj/structure/sink{ + icon_state = "sink"; + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/structure/mirror{ + pixel_y = 28 + }, +/turf/open/floor/plasteel/freezer, +/area/awaymission/cabin) +"au" = ( +/obj/structure/dresser, +/turf/open/floor/wood, +/area/awaymission/cabin) +"av" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "cabin APC" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plating, +/area/awaymission/cabin) +"aw" = ( +/obj/machinery/power/smes/magical, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/awaymission/cabin) +"ax" = ( +/obj/structure{ + density = 1; + desc = "Generates power from lava!"; + dir = 2; + icon = 'icons/obj/atmospherics/pipes/simple.dmi'; + icon_state = "turbine"; + name = "geothermal generator" + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/awaymission/cabin) +"ay" = ( +/obj/machinery/light/small, +/obj/structure/table/wood, +/obj/item/toy/syndicateballoon, +/turf/open/floor/wood, +/area/awaymission/cabin) +"az" = ( +/turf/open/floor/carpet, +/area/awaymission/cabin) +"aA" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/brown, +/turf/open/floor/wood, +/area/awaymission/cabin) +"aB" = ( +/obj/structure/toilet{ + icon_state = "toilet00"; + dir = 8 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/freezer, +/area/awaymission/cabin) +"aC" = ( +/obj/structure/toilet{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/awaymission/cabin) +"aD" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/awaymission/cabin) +"aE" = ( +/obj/machinery/power/terminal{ + icon_state = "term"; + dir = 1 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plating, +/area/awaymission/cabin) +"aF" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plating, +/area/awaymission/cabin) +"aG" = ( +/obj/item/weapon/reagent_containers/pill/patch/styptic, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/snowforest) +"aH" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"aI" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/awaymission/cabin) +"aJ" = ( +/obj/machinery/shower{ + icon_state = "shower"; + dir = 8 + }, +/obj/machinery/door/window/northright, +/turf/open/floor/plasteel/freezer, +/area/awaymission/cabin) +"aK" = ( +/obj/machinery/shower{ + icon_state = "shower"; + dir = 4 + }, +/obj/machinery/door/window/northleft, +/turf/open/floor/plasteel/freezer, +/area/awaymission/cabin) +"aL" = ( +/turf/open/floor/plating, +/area/awaymission/cabin) +"aM" = ( +/obj/machinery/telecomms/relay/preset/mining, +/turf/open/floor/plating, +/area/awaymission/cabin) +"aN" = ( +/obj/structure/chair/wood{ + dir = 4 + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"aO" = ( +/obj/structure/table/wood, +/turf/open/floor/carpet, +/area/awaymission/cabin) +"aP" = ( +/obj/structure/chair/wood{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/awaymission/cabin) +"aQ" = ( +/obj/machinery/door/airlock/wood{ + name = "maintence" + }, +/turf/open/floor/plating, +/area/awaymission/cabin) +"aR" = ( +/obj/machinery/door/window/westright{ + name = "fireplace" + }, +/obj/structure/fireplace, +/turf/open/floor/plating, +/area/awaymission/cabin) +"aS" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = 24 + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"aT" = ( +/obj/machinery/door/window/eastleft{ + name = "fireplace" + }, +/obj/structure/fireplace, +/turf/open/floor/plating, +/area/awaymission/cabin) +"aU" = ( +/obj/structure/fireplace, +/obj/machinery/door/window/westright{ + name = "fireplace" + }, +/turf/open/floor/plating, +/area/awaymission/cabin) +"aV" = ( +/obj/machinery/space_heater, +/turf/open/floor/wood, +/area/awaymission/cabin) +"aW" = ( +/obj/structure/fireplace, +/obj/machinery/door/window/eastleft{ + name = "fireplace" + }, +/turf/open/floor/plating, +/area/awaymission/cabin) +"aX" = ( +/obj/structure/closet/crate/bin, +/turf/open/floor/carpet, +/area/awaymission/cabin) +"aY" = ( +/obj/structure/table/wood, +/obj/item/weapon/phone, +/turf/open/floor/carpet, +/area/awaymission/cabin) +"aZ" = ( +/obj/structure/guncase/shotgun, +/obj/item/weapon/gun/projectile/shotgun/riot, +/turf/open/floor/carpet, +/area/awaymission/cabin) +"ba" = ( +/obj/machinery/door/airlock/wood, +/turf/open/floor/wood, +/area/awaymission/cabin) +"bb" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/awaymission/cabin) +"bc" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/drinks/britcup, +/turf/open/floor/carpet, +/area/awaymission/cabin) +"bd" = ( +/obj/structure/chair/office/dark, +/turf/open/floor/carpet, +/area/awaymission/cabin) +"be" = ( +/obj/machinery/computer/crew, +/turf/open/floor/carpet, +/area/awaymission/cabin) +"bf" = ( +/obj/machinery/door/airlock/wood{ + name = "manager's office" + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"bg" = ( +/obj/machinery/door/window/westright{ + name = "manager's desk" + }, +/turf/open/floor/carpet, +/area/awaymission/cabin) +"bh" = ( +/obj/machinery/light, +/turf/open/floor/wood, +/area/awaymission/cabin) +"bi" = ( +/obj/machinery/door/airlock/wood{ + name = "manager's bedroom" + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"bj" = ( +/obj/structure/toilet, +/turf/open/floor/plasteel/freezer, +/area/awaymission/cabin) +"bk" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/awaymission/cabin) +"bl" = ( +/obj/machinery/vending/autodrobe{ + req_access_txt = "0" + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"bm" = ( +/obj/machinery/door/airlock/wood{ + name = "stage left" + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"bn" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"bo" = ( +/obj/structure/window{ + dir = 4 + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"bp" = ( +/obj/structure/chair/wood{ + dir = 8 + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"bq" = ( +/obj/structure/table/wood, +/obj/machinery/chem_dispenser/drinks, +/turf/open/floor/wood, +/area/awaymission/cabin) +"br" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/computer/arcade/orion_trail, +/turf/open/floor/wood, +/area/awaymission/cabin) +"bs" = ( +/obj/machinery/computer/arcade/battle, +/turf/open/floor/wood, +/area/awaymission/cabin) +"bt" = ( +/obj/machinery/computer/slot_machine, +/turf/open/floor/wood, +/area/awaymission/cabin) +"bu" = ( +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/awaymission/cabin) +"bv" = ( +/obj/structure/table/wood, +/obj/machinery/chem_dispenser/drinks/beer, +/turf/open/floor/wood, +/area/awaymission/cabin) +"bw" = ( +/obj/machinery/vending/dinnerware, +/turf/open/floor/plasteel/cafeteria, +/area/awaymission/cabin) +"bx" = ( +/obj/machinery/smartfridge, +/turf/open/floor/plasteel/cafeteria, +/area/awaymission/cabin) +"by" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder, +/turf/open/floor/plasteel/cafeteria, +/area/awaymission/cabin) +"bz" = ( +/obj/structure/closet/secure_closet/freezer/kitchen, +/turf/open/floor/plasteel/cafeteria, +/area/awaymission/cabin) +"bA" = ( +/obj/machinery/chem_master/condimaster, +/turf/open/floor/plasteel/freezer, +/area/awaymission/cabin) +"bB" = ( +/turf/open/floor/plasteel/freezer, +/area/awaymission/cabin) +"bC" = ( +/obj/machinery/gibber, +/turf/open/floor/plasteel/freezer, +/area/awaymission/cabin) +"bD" = ( +/obj/structure/table/optable, +/turf/open/floor/plasteel/white, +/area/awaymission/cabin) +"bE" = ( +/obj/machinery/computer/operating, +/turf/open/floor/plasteel/white, +/area/awaymission/cabin) +"bF" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plasteel/white, +/area/awaymission/cabin) +"bG" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + target_temperature = 80; + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/awaymission/cabin) +"bH" = ( +/turf/open/floor/plasteel/white, +/area/awaymission/cabin) +"bI" = ( +/obj/machinery/shower{ + icon_state = "shower"; + dir = 4 + }, +/obj/machinery/door/window/eastright, +/obj/structure/window{ + icon_state = "window"; + dir = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/awaymission/cabin) +"bJ" = ( +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/turf/open/floor/plasteel/freezer, +/area/awaymission/cabin) +"bK" = ( +/obj/effect/decal/cleanable/blood, +/obj/item/weapon/reagent_containers/pill/patch/styptic, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/snowforest) +"bL" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/patriot, +/turf/open/floor/wood, +/area/awaymission/cabin) +"bM" = ( +/obj/machinery/vending/clothing, +/turf/open/floor/wood, +/area/awaymission/cabin) +"bN" = ( +/obj/machinery/vending/boozeomat{ + req_access_txt = "0" + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"bO" = ( +/turf/open/floor/plasteel/cafeteria, +/area/awaymission/cabin) +"bP" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/awaymission/cabin) +"bQ" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/white, +/area/awaymission/cabin) +"bR" = ( +/obj/machinery/atmospherics/components/unary/cryo_cell, +/turf/open/floor/plasteel/white, +/area/awaymission/cabin) +"bS" = ( +/turf/open/floor/wood/cold, +/area/awaymission/snowforest) +"bT" = ( +/obj/structure/table/wood, +/obj/item/device/instrument/violin, +/turf/open/floor/wood, +/area/awaymission/cabin) +"bU" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/drinks/shaker, +/turf/open/floor/wood, +/area/awaymission/cabin) +"bV" = ( +/obj/structure/table, +/obj/item/weapon/kitchen/knife/butcher, +/turf/open/floor/plasteel/cafeteria, +/area/awaymission/cabin) +"bW" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/structure/table, +/obj/machinery/microwave, +/turf/open/floor/plasteel/cafeteria, +/area/awaymission/cabin) +"bX" = ( +/obj/structure/closet/crate/bin, +/turf/open/floor/plasteel/freezer, +/area/awaymission/cabin) +"bY" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/processor, +/turf/open/floor/plasteel/freezer, +/area/awaymission/cabin) +"bZ" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/table, +/obj/item/weapon/surgicaldrill, +/obj/item/weapon/circular_saw, +/obj/item/weapon/cautery, +/obj/item/weapon/surgical_drapes, +/obj/item/weapon/scalpel, +/obj/item/weapon/hemostat, +/turf/open/floor/plasteel/white, +/area/awaymission/cabin) +"ca" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/awaymission/cabin) +"cb" = ( +/obj/machinery/gateway{ + dir = 9 + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"cc" = ( +/obj/machinery/gateway{ + dir = 1 + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"cd" = ( +/obj/machinery/gateway{ + dir = 5 + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"ce" = ( +/obj/structure/chair/wood{ + dir = 4 + }, +/turf/open/floor/wood/cold, +/area/awaymission/snowforest) +"cf" = ( +/obj/structure/table/wood, +/turf/open/floor/wood/cold, +/area/awaymission/snowforest) +"cg" = ( +/obj/structure/chair/wood{ + dir = 8 + }, +/turf/open/floor/wood/cold, +/area/awaymission/snowforest) +"ch" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/table/wood, +/obj/item/device/instrument/guitar, +/turf/open/floor/wood, +/area/awaymission/cabin) +"ci" = ( +/obj/structure/chair/wood, +/turf/open/floor/wood, +/area/awaymission/cabin) +"cj" = ( +/obj/structure/table, +/turf/open/floor/plasteel/cafeteria, +/area/awaymission/cabin) +"ck" = ( +/obj/structure/table, +/obj/machinery/microwave, +/turf/open/floor/plasteel/cafeteria, +/area/awaymission/cabin) +"cl" = ( +/obj/structure/kitchenspike, +/turf/open/floor/plasteel/freezer, +/area/awaymission/cabin) +"cm" = ( +/obj/structure/table, +/turf/open/floor/plasteel/white, +/area/awaymission/cabin) +"cn" = ( +/obj/structure/bed/roller, +/obj/item/weapon/bedsheet, +/turf/open/floor/plasteel/white, +/area/awaymission/cabin) +"co" = ( +/obj/machinery/gateway{ + dir = 8 + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"cp" = ( +/obj/machinery/gateway/centeraway, +/turf/open/floor/wood, +/area/awaymission/cabin) +"cq" = ( +/obj/machinery/gateway{ + dir = 4 + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"cr" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/wood/cold, +/area/awaymission/snowforest) +"cs" = ( +/obj/structure/table/wood, +/obj/item/weapon/wrench, +/turf/open/floor/wood, +/area/awaymission/cabin) +"ct" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/turf/open/floor/plasteel/freezer, +/area/awaymission/cabin) +"cu" = ( +/obj/machinery/sleeper{ + icon_state = "sleeper-open"; + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/awaymission/cabin) +"cv" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular, +/obj/item/weapon/storage/firstaid/brute, +/obj/item/weapon/storage/firstaid/fire, +/turf/open/floor/plasteel/white, +/area/awaymission/cabin) +"cw" = ( +/obj/machinery/gateway{ + dir = 10 + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"cx" = ( +/obj/machinery/gateway, +/turf/open/floor/wood, +/area/awaymission/cabin) +"cy" = ( +/obj/machinery/gateway{ + dir = 6 + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"cz" = ( +/obj/structure/piano, +/turf/open/floor/wood, +/area/awaymission/cabin) +"cA" = ( +/obj/machinery/door/airlock/wood{ + name = "stage right" + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"cB" = ( +/obj/machinery/door/window/eastleft, +/turf/open/floor/wood, +/area/awaymission/cabin) +"cC" = ( +/obj/structure/chair/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"cD" = ( +/obj/machinery/door/window/westright{ + name = "bar" + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"cE" = ( +/obj/machinery/door/airlock/wood{ + name = "kitchen" + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"cF" = ( +/obj/machinery/door/airlock/wood{ + name = "kitchen cold room" + }, +/turf/open/floor/plasteel/freezer, +/area/awaymission/cabin) +"cG" = ( +/obj/structure/closet/secure_closet/freezer/meat, +/turf/open/floor/plasteel/freezer, +/area/awaymission/cabin) +"cH" = ( +/obj/effect/landmark{ + name = "awaystart" + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"cI" = ( +/obj/machinery/door/airlock/wood{ + name = "backstage" + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"cJ" = ( +/obj/machinery/door/airlock/glass_large{ + name = "medbay" + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"cK" = ( +/obj/machinery/door/airlock/wood{ + name = "cabin" + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"cL" = ( +/obj/structure/sign/barsign{ + pixel_x = 0; + pixel_y = 32; + req_access = null + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"cM" = ( +/obj/machinery/door/airlock/wood{ + name = "gateway" + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"cN" = ( +/obj/machinery/vending/snack, +/turf/open/floor/wood, +/area/awaymission/cabin) +"cO" = ( +/obj/machinery/light, +/obj/machinery/vending/cola, +/turf/open/floor/wood, +/area/awaymission/cabin) +"cP" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/wood, +/area/awaymission/cabin) +"cQ" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/carpet, +/area/awaymission/cabin) +"cR" = ( +/obj/machinery/door/poddoor/shutters{ + id = 42; + name = "garage door" + }, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin) +"cS" = ( +/obj/machinery/button/door{ + id = 42; + pixel_y = 24 + }, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin) +"cT" = ( +/obj/vehicle/atv, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin) +"cU" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin) +"cV" = ( +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin) +"cW" = ( +/obj/structure/closet, +/obj/item/key, +/obj/item/key, +/obj/item/key, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin) +"cX" = ( +/obj/machinery/light, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin) +"cY" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/asteroid/snow/temperatre, +/area/awaymission/snowforest) +"cZ" = ( +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/snowforest) +"da" = ( +/obj/structure/chair, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/snowforest) +"db" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/snowforest) +"dc" = ( +/obj/structure/chair, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/snowforest) +"dd" = ( +/obj/effect/decal/cleanable/blood/gibs, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/snowforest) +"de" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/snowforest) +"df" = ( +/obj/structure/kitchenspike, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/snowforest) +"dg" = ( +/obj/structure/table, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/snowforest) +"dh" = ( +/obj/structure/kitchenspike, +/obj/effect/decal/cleanable/blood/gibs, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/snowforest) +"di" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/snowforest) +"dj" = ( +/turf/open/floor/plating/ice/temperate, +/area/awaymission/snowforest) +"dk" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/snowforest) +"dl" = ( +/obj/item/weapon/shard, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/snowforest) +"dm" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/snowforest) +"dn" = ( +/obj/effect/decal/cleanable/blood/gibs/limb, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/snowforest) +"do" = ( +/obj/item/chair, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/snowforest) +"dp" = ( +/obj/effect/decal/cleanable/blood/gibs/body, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/snowforest) +"dq" = ( +/obj/item/weapon/shard, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/snowforest) +"dr" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/snowforest) +"ds" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/snowforest) +"dt" = ( +/obj/effect/landmark/mapGenerator/snowy{ + endTurfX = 159; + endTurfY = 157; + startTurfX = 37; + startTurfY = 35 + }, +/turf/open/floor/plating/asteroid/snow/temperatre, +/area/awaymission/snowforest) +"du" = ( +/obj/structure/closet/toolcloset, +/obj/item/device/lightreplacer, +/obj/item/weapon/storage/toolbox/mechanical, +/turf/open/floor/plating, +/area/awaymission/cabin) +"dv" = ( +/obj/structure{ + density = 1; + desc = "Generates power from lava!"; + dir = 1; + icon = 'icons/obj/atmospherics/pipes/simple.dmi'; + icon_state = "compressor"; + name = "geothermal generator" + }, +/turf/open/floor/plating, +/area/awaymission/cabin) + +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(8,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(9,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(10,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(11,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(12,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(13,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(14,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(15,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(16,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(17,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(18,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(19,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(20,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(21,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(22,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(23,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(24,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(25,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(26,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(27,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(28,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(29,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(30,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(31,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(32,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(33,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(34,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(35,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(36,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(37,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dt +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 +"} +(38,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(39,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(40,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(41,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(42,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(43,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(44,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(45,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(46,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(47,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(48,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(49,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(50,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(51,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(52,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(53,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(54,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(55,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(56,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(57,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(58,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(59,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(60,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(61,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(62,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(63,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(64,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(65,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(66,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(67,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(68,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(69,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(70,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(71,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(72,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bS +bS +bS +bS +bS +bS +bS +bS +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bS +ce +ce +ce +bS +bS +bS +bS +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bS +cf +cf +cf +bS +bS +bS +bS +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bS +cg +cg +cg +bS +bS +bS +bS +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bS +bS +cr +bS +bS +bS +bS +bS +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +an +an +an +an +an +an +an +ao +ao +an +an +an +an +an +an +an +an +cK +cK +an +cR +cR +cR +cR +an +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +an +ap +au +aH +aN +aq +an +aq +aq +an +bl +bM +bT +ch +cs +cz +an +aq +aq +an +cS +cV +cV +cV +an +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ao +aq +az +az +aO +aq +ba +aq +aq +an +aq +aq +aq +aq +aq +aq +cI +aq +aq +an +cT +cT +cT +cT +an +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(80,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ao +aq +az +az +aP +aq +an +aq +bh +an +bm +an +an +an +an +cA +an +aq +aq +an +cU +cV +cV +cX +an +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(81,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ao +aq +az +az +az +aq +an +aq +aq +an +aq +aq +aq +aq +aq +aq +an +aq +aq +an +cT +cT +cT +cT +an +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(82,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +an +aq +aA +aI +aA +aq +an +aq +aq +an +bn +aq +aq +aq +aq +bh +an +aq +bh +an +cV +cV +cV +cV +an +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dj +dj +dj +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(83,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +an +ar +an +an +an +aR +an +aq +aq +an +aq +aq +aq +aq +aq +aq +an +aq +aq +an +cU +cV +cV +cX +an +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(84,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +an +as +aB +aJ +an +an +an +aq +aq +an +bn +aq +aq +aq +aq +bh +an +aq +aq +an +cV +cV +cV +cV +an +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(85,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +an +an +an +an +an +aS +ba +aq +bh +an +bo +bo +bo +bo +bo +cB +an +aq +aq +ba +cV +cV +cV +cV +an +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(86,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +an +at +aC +aK +an +an +an +aq +aq +an +bp +bp +bp +bp +bp +aq +aq +aq +aq +an +cV +cV +cW +cW +an +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(87,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +an +ar +an +an +an +aT +an +aq +aq +an +bp +bp +bp +bp +bp +aq +aq +aq +cN +an +an +an +an +an +an +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(88,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +an +aq +ap +aH +aN +aq +an +aq +aq +ba +aq +aq +aq +aq +aq +aq +aq +aq +cO +an +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +ac +ac +ac +ac +ac +ac +ac +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 +"} +(89,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ao +aq +az +az +aO +aq +an +aq +aq +an +bq +aq +aq +aq +aq +aq +aq +aq +cP +an +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +ac +ac +ac +ac +ac +ac +ac +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 +"} +(90,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ao +aq +az +az +aP +aq +an +aq +bh +an +br +aq +aq +aq +aN +aq +aq +aq +aq +ao +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +ac +ac +ac +ac +ac +ac +ac +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 +"} +(91,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ao +aq +az +az +az +aq +ba +aq +aq +an +bs +aq +aq +ci +bu +cC +aq +aq +aq +ao +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +ac +ac +ac +ac +ac +ac +ac +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 +"} +(92,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +an +au +aA +aI +aA +aq +an +aq +aq +an +bt +aq +aq +aq +bp +aq +aq +aq +aq +ao +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +ac +ac +ac +ac +ac +ac +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 +"} +(93,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +an +an +an +an +an +an +an +aq +aq +an +ap +aq +aq +aq +aq +aq +aq +aq +aq +an +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +ac +ac +ac +ac +ac +ac +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 +"} +(94,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +an +ap +au +aH +aN +aq +an +aq +aq +an +aN +aN +aN +aN +aN +aq +aq +aq +bh +an +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +ac +ac +ac +ac +ac +ac +ac +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 +"} +(95,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ao +aq +az +az +aO +aq +ba +aq +bh +an +bu +bu +bu +bu +bu +cD +an +cL +aq +an +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +ac +ac +ac +ac +ac +ac +ac +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 +"} +(96,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ao +aq +az +az +aP +aq +an +aq +aq +an +aq +aq +aq +aq +aq +aq +an +aq +aq +ao +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +ac +ac +ac +ac +ac +ac +ac +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 +"} +(97,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ao +aq +az +az +az +aq +an +aq +aq +an +bv +bN +bU +aq +ap +aq +an +aq +aq +ao +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +ac +ac +ac +ac +ac +ac +ac +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 +"} +(98,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +an +aq +aA +aI +aA +aq +an +aq +aq +an +an +an +an +bu +an +cE +an +aq +aq +ao +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(99,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +an +ar +an +an +an +aU +an +aq +aq +an +bw +bO +bO +bO +bO +bO +cE +aq +aq +an +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(100,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +an +as +aB +aJ +an +an +an +aq +aq +an +bx +bO +bV +cj +cj +bO +an +aq +bh +an +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +ac +ac +ac +ac +ac +ac +ac +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 +"} +(101,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +an +an +an +an +an +aV +ba +aq +aq +an +by +bO +bO +bO +bO +bO +an +aq +aq +an +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +ac +ac +ac +ac +ac +ac +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 +"} +(102,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +an +at +aC +aK +an +an +an +aq +bh +an +bz +bO +bW +ck +cj +bO +an +aq +aq +ao +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +ac +ac +ac +ac +ac +ac +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 +"} +(103,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +an +ar +an +an +an +aW +an +aq +aq +an +an +an +an +an +an +cF +an +aq +aq +ao +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +ac +ac +ac +ac +ac +ac +ac +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 +"} +(104,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +an +aq +ap +aH +aN +aq +an +aq +aq +an +bA +bB +bX +cl +cl +bB +an +aq +aq +ao +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +ac +ac +ac +ac +ac +ac +ac +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 +"} +(105,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ao +aq +az +az +aO +aq +an +aq +aq +an +bB +bB +bB +bB +bB +bB +an +aq +aq +an +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(106,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ao +aq +az +az +aP +aq +an +aq +aq +an +bC +bB +bY +bB +ct +cG +an +aq +bh +an +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dj +dj +dj +dj +dj +dj +dj +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(107,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ao +aq +az +az +az +aq +ba +aq +aq +an +an +an +an +an +an +an +an +aq +aq +an +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dj +dj +dj +dj +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(108,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +an +au +aA +aI +aA +aq +an +aq +aq +an +bD +bH +bZ +cm +cu +cu +an +aq +aq +ao +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(109,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +an +an +an +an +an +an +an +aq +bh +an +bE +bH +bH +bH +bH +bH +an +aq +aq +ao +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(110,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +an +ap +au +aH +aN +aq +an +aq +aq +an +bF +bP +bH +bH +bH +bH +cJ +aq +aq +ao +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(111,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ao +aq +az +az +aO +aq +ba +aq +aq +an +bG +bQ +bP +bH +bH +bH +aq +aq +aq +an +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(112,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ao +aq +az +az +aP +aq +an +aq +aq +an +bH +bR +ca +cn +cv +cn +an +aq +aq +an +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(113,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ao +aq +az +az +az +aq +an +aq +aq +an +an +an +an +an +an +an +an +aq +aq +an +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(114,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +an +aq +aA +aI +aA +aq +an +aq +aq +aq +aq +aq +aH +aq +aq +aq +aq +aq +bh +an +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(115,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +an +ar +an +an +an +aU +an +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +an +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(116,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +an +as +aB +aJ +an +an +an +bf +an +an +an +an +an +an +an +an +an +cM +cM +an +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(117,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +an +an +an +an +an +aX +bb +az +an +bj +bI +an +aq +aH +aq +cH +bu +az +az +an +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(118,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +an +av +aD +aL +aQ +az +az +az +an +bk +bJ +an +cb +co +cw +cH +bu +az +az +an +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(119,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +an +aw +aE +aL +an +aY +bc +bg +an +ar +an +an +cc +cp +cx +cH +aq +az +az +an +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(120,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +an +du +aF +aL +an +az +bd +az +an +aq +ay +an +cd +cq +cy +cH +bu +az +az +an +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(121,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +an +dv +ax +aM +an +aZ +be +az +bi +aq +bL +an +aq +aq +aq +cH +bu +az +cQ +an +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(122,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +an +an +an +an +an +ao +ao +ao +an +an +ao +an +an +ao +ao +ao +ao +ao +an +an +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(123,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(124,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +cY +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(125,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +cZ +cZ +cZ +de +de +de +de +de +de +dk +dk +cZ +cZ +cZ +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(126,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +cZ +db +cZ +de +dk +de +dk +de +de +de +de +db +aG +cZ +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(127,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +cY +cZ +cZ +cZ +dd +cZ +cZ +cZ +cZ +dd +cZ +cZ +cZ +db +cZ +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(128,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +da +da +cZ +df +df +df +df +dh +df +dg +df +cZ +dr +dr +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(129,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +da +da +bK +dg +cZ +cZ +do +cZ +cZ +db +df +cZ +dr +dr +cY +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(130,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +da +da +cZ +df +dl +cZ +db +cZ +dn +dq +df +cZ +dr +dr +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(131,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +da +dc +cZ +df +cZ +dn +cZ +cZ +cZ +cZ +df +cZ +ds +dr +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(132,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +da +da +dd +df +cZ +dl +cZ +db +cZ +db +df +cZ +dr +dr +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(133,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +da +da +cZ +df +cZ +db +cZ +cZ +cZ +dl +df +cZ +dr +ds +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(134,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ae +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +da +dc +cZ +dh +cZ +cZ +dp +cZ +do +dp +dg +db +ds +dr +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(135,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ae +ae +ac +ae +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +da +da +cZ +df +dg +df +df +df +df +df +df +cZ +dr +dr +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(136,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 +ab +ac +ac +ac +ac +ac +ac +ac +ad +af +ag +ah +aj +ak +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +cY +cZ +cZ +cZ +db +cZ +cZ +aG +dd +cZ +cZ +cZ +cZ +cZ +cZ +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(137,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 +ab +ac +ac +ac +ac +ac +ac +ac +ad +af +af +ah +aj +al +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +cZ +aG +db +di +dm +di +di +di +dm +di +di +cZ +aG +cZ +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(138,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 +ab +ac +ac +ac +ac +ac +ac +ac +ad +af +af +ah +af +ak +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +cZ +cZ +cZ +di +di +di +dm +di +di +di +di +cZ +cZ +cZ +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(139,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 +ab +ac +ac +ac +ac +ac +ac +ac +ad +af +af +ah +af +am +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +cY +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(140,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 +ab +ac +ac +ac +ac +ac +ac +ac +ad +af +af +ah +af +am +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +cY +ac +ac +ac +ac +ac +cY +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(141,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 +ab +ac +ac +ac +ac +ac +ac +ac +ad +af +af +ah +af +am +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(142,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 +ab +ac +ac +ac +ac +ac +ac +ac +ad +af +af +ah +af +am +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(143,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 +ab +ac +ac +ac +ac +ac +ac +ac +ad +af +af +ai +af +ak +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(144,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 +ab +ac +ac +ac +ac +ac +ac +ac +ad +af +af +ah +af +ak +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(145,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 +ab +ac +ac +ac +ac +ac +ac +ac +ad +af +ag +ah +af +ak +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(146,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(147,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(148,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(149,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(150,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(151,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(152,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(153,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(154,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(155,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(156,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(157,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(158,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(159,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(160,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(161,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(174,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(175,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(176,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(177,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(178,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(179,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(180,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(181,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(182,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(183,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(184,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(185,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(186,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(187,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(188,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(189,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(190,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(191,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(192,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(193,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(194,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(195,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(196,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(197,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(198,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(199,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(200,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(201,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(202,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(203,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(204,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(205,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(206,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(207,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(208,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(209,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(210,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(211,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(212,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(213,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(214,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(215,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(216,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(217,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(218,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(219,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(220,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(221,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(222,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(223,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(224,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(225,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(226,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(227,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(228,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(229,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(230,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(231,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(232,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(233,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(234,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(235,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(236,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(237,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(238,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(239,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(240,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(241,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(242,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(243,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(244,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(245,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(246,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(247,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(248,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} diff --git a/_maps/RandomZLevels/beach.dmm b/_maps/RandomZLevels/beach.dmm new file mode 100644 index 0000000..0f7e67d --- /dev/null +++ b/_maps/RandomZLevels/beach.dmm @@ -0,0 +1,65977 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/open/space, +/area/space) +"ab" = ( +/turf/closed/indestructible{ + desc = "Very dense sand, very difficult to pass."; + icon = 'icons/misc/beach.dmi'; + icon_state = "sand"; + name = "dense sand"; + opacity = 0 + }, +/area/space) +"ac" = ( +/turf/open/floor/plating/beach/sand, +/area/space) +"ad" = ( +/obj/effect/overlay/coconut, +/turf/open/floor/plating/beach/sand, +/area/space) +"ae" = ( +/obj/effect/overlay/palmtree_r, +/obj/effect/overlay/coconut, +/turf/open/floor/plating/beach/sand, +/area/space) +"af" = ( +/obj/effect/overlay/palmtree_l, +/obj/effect/overlay/coconut, +/turf/open/floor/plating/beach/sand, +/area/space) +"ag" = ( +/obj/effect/overlay/palmtree_l, +/turf/open/floor/plating/beach/sand, +/area/space) +"ah" = ( +/obj/effect/overlay/palmtree_l, +/turf/closed/indestructible{ + desc = "Very dense sand, very difficult to pass."; + icon = 'icons/misc/beach.dmi'; + icon_state = "sand"; + name = "dense sand"; + opacity = 0 + }, +/area/space) +"ai" = ( +/turf/open/floor/plating/beach/sand, +/area/awaymission/beach) +"aj" = ( +/turf/closed/wall/mineral/sandstone, +/area/awaymission/beach) +"ak" = ( +/obj/effect/overlay/palmtree_l, +/turf/open/floor/plating/beach/sand, +/area/awaymission/beach) +"al" = ( +/obj/structure/toilet{ + tag = "icon-toilet00 (EAST)"; + icon_state = "toilet00"; + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/white, +/area/awaymission/beach) +"am" = ( +/turf/open/floor/plasteel/white, +/area/awaymission/beach) +"an" = ( +/obj/structure/sink{ + pixel_y = 28 + }, +/turf/open/floor/plasteel/white, +/area/awaymission/beach) +"ao" = ( +/obj/structure/sink{ + pixel_y = 28 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/white, +/area/awaymission/beach) +"ap" = ( +/turf/open/floor/plasteel/white, +/obj/structure/mirror{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/sandeffect, +/area/awaymission/beach) +"aq" = ( +/turf/open/floor/plasteel/white, +/obj/structure/mirror{ + pixel_x = -28 + }, +/turf/open/floor/plasteel/sandeffect, +/area/awaymission/beach) +"ar" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/white, +/area/awaymission/beach) +"as" = ( +/obj/structure/toilet{ + tag = "icon-toilet00 (WEST)"; + icon_state = "toilet00"; + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/awaymission/beach) +"at" = ( +/obj/effect/overlay/palmtree_r, +/obj/effect/overlay/coconut, +/turf/open/floor/plating/beach/sand, +/area/awaymission/beach) +"au" = ( +/obj/structure/toilet{ + tag = "icon-toilet00 (EAST)"; + icon_state = "toilet00"; + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/awaymission/beach) +"av" = ( +/obj/machinery/shower{ + tag = "icon-shower (NORTH)"; + icon_state = "shower"; + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/white, +/area/awaymission/beach) +"aw" = ( +/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/sandeffect, +/area/awaymission/beach) +"ax" = ( +/obj/machinery/shower{ + tag = "icon-shower (NORTH)"; + icon_state = "shower"; + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/awaymission/beach) +"ay" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/drinkingglasses, +/obj/item/weapon/storage/box/drinkingglasses, +/obj/item/weapon/reagent_containers/food/drinks/shaker, +/obj/item/weapon/storage/box/beakers, +/turf/open/floor/wood, +/area/awaymission/beach) +"az" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder, +/turf/open/floor/wood, +/area/awaymission/beach) +"aA" = ( +/obj/machinery/vending/boozeomat{ + emagged = 1 + }, +/turf/open/floor/wood, +/area/awaymission/beach) +"aB" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/glass/rag, +/turf/open/floor/wood, +/area/awaymission/beach) +"aC" = ( +/obj/effect/mob_spawn/human/cook{ + helmet = null; + id_access = "Bartender"; + id_job = "Bartender"; + suit = /obj/item/clothing/suit/armor/vest; + uniform = /obj/item/clothing/under/rank/bartender; + death = 0; + desc = "Looks secure."; + flavour_text = "You are a bartender for the beach!"; + icon = 'icons/obj/Cryogenic2.dmi'; + icon_state = "sleeper"; + mob_name = "Jerry Thomas"; + name = "bartenders cryosleeper"; + roundstart = 1 + }, +/turf/open/floor/wood, +/area/awaymission/beach) +"aD" = ( +/turf/open/floor/wood, +/area/awaymission/beach) +"aE" = ( +/obj/structure/table, +/obj/machinery/microwave, +/turf/open/floor/wood, +/area/awaymission/beach) +"aF" = ( +/turf/open/floor/plating/beach/sand, +/obj/structure/closet/crate/bin, +/turf/open/floor/plasteel/sandeffect, +/area/awaymission/beach) +"aG" = ( +/turf/open/floor/plating/beach/sand, +/turf/open/floor/plasteel/sandeffect, +/area/awaymission/beach) +"aH" = ( +/turf/open/floor/plasteel/white, +/obj/machinery/door/airlock/sandstone, +/turf/open/floor/plasteel/sandeffect, +/area/awaymission/beach) +"aI" = ( +/obj/structure/table, +/turf/open/floor/wood, +/area/awaymission/beach) +"aJ" = ( +/turf/open/floor/plating/beach/sand, +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/sandeffect, +/area/awaymission/beach) +"aK" = ( +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/awaymission/beach) +"aL" = ( +/obj/machinery/processor, +/turf/open/floor/wood, +/area/awaymission/beach) +"aM" = ( +/turf/open/floor/plating/beach/sand, +/obj/machinery/vending/cola, +/turf/open/floor/plasteel/sandeffect, +/area/awaymission/beach) +"aN" = ( +/turf/open/floor/plating/beach/sand, +/obj/structure/chair/stool, +/turf/open/floor/plasteel/sandeffect, +/area/awaymission/beach) +"aO" = ( +/obj/structure/closet/secure_closet/freezer/meat, +/turf/open/floor/wood, +/area/awaymission/beach) +"aP" = ( +/turf/open/floor/plating/beach/sand, +/obj/machinery/vending/snack, +/turf/open/floor/plasteel/sandeffect, +/area/awaymission/beach) +"aQ" = ( +/obj/effect/overlay/palmtree_r, +/turf/open/floor/plating/beach/sand, +/area/space) +"aR" = ( +/turf/open/floor/plating/beach/sand{ + density = 1; + opacity = 1 + }, +/area/awaymission/beach) +"aS" = ( +/obj/machinery/door/airlock/sandstone, +/turf/open/floor/wood, +/area/awaymission/beach) +"aT" = ( +/obj/structure/closet/secure_closet/freezer/kitchen, +/turf/open/floor/wood, +/area/awaymission/beach) +"aU" = ( +/obj/effect/overlay/palmtree_l, +/obj/effect/overlay/coconut, +/turf/open/floor/plating/beach/sand, +/area/awaymission/beach) +"aV" = ( +/turf/open/floor/plating/beach/sand, +/obj/machinery/gateway{ + dir = 9 + }, +/turf/open/floor/plasteel/sandeffect/warning{ + tag = "icon-warningsandeffect (NORTHWEST)"; + dir = 9 + }, +/area/awaymission/beach) +"aW" = ( +/turf/open/floor/plating/beach/sand, +/obj/machinery/gateway{ + dir = 1 + }, +/turf/open/floor/plasteel/sandeffect/warning{ + tag = "icon-warningsandeffect (NORTH)"; + dir = 1 + }, +/area/awaymission/beach) +"aX" = ( +/turf/open/floor/plating/beach/sand, +/obj/machinery/gateway{ + dir = 5 + }, +/turf/open/floor/plasteel/sandeffect/warning{ + tag = "icon-warningsandeffect (NORTHEAST)"; + dir = 5 + }, +/area/awaymission/beach) +"aY" = ( +/obj/structure/sign/barsign, +/turf/closed/wall/mineral/sandstone, +/area/awaymission/beach) +"aZ" = ( +/obj/effect/overlay/palmtree_r, +/turf/open/floor/plating/beach/sand, +/area/awaymission/beach) +"ba" = ( +/turf/open/floor/plating/beach/sand, +/obj/machinery/gateway{ + dir = 8 + }, +/turf/open/floor/plasteel/sandeffect/warning{ + tag = "icon-warningsandeffect (WEST)"; + dir = 8 + }, +/area/awaymission/beach) +"bb" = ( +/turf/open/floor/plating/beach/sand, +/obj/machinery/gateway/centeraway, +/turf/open/floor/plasteel/sandeffect, +/area/awaymission/beach) +"bc" = ( +/turf/open/floor/plating/beach/sand, +/obj/machinery/gateway{ + dir = 4 + }, +/turf/open/floor/plasteel/sandeffect/warning{ + tag = "icon-warningsandeffect (EAST)"; + dir = 4 + }, +/area/awaymission/beach) +"bd" = ( +/turf/open/floor/plating/beach/sand, +/obj/machinery/gateway{ + dir = 10 + }, +/turf/open/floor/plasteel/sandeffect/warning{ + tag = "icon-warningsandeffect (SOUTHWEST)"; + dir = 10 + }, +/area/awaymission/beach) +"be" = ( +/turf/open/floor/plating/beach/sand, +/turf/open/floor/plasteel/sandeffect/warning/corner{ + tag = "icon-warningsandeffectcorners (NORTH)"; + dir = 1 + }, +/obj/machinery/gateway, +/turf/open/floor/plasteel/sandeffect/warning/corner, +/area/awaymission/beach) +"bf" = ( +/turf/open/floor/plating/beach/sand, +/obj/machinery/gateway{ + dir = 6 + }, +/turf/open/floor/plasteel/sandeffect/warning{ + tag = "icon-warningsandeffect (SOUTHEAST)"; + dir = 6 + }, +/area/awaymission/beach) +"bg" = ( +/turf/open/floor/plating/beach/sand, +/obj/structure/closet/athletic_mixed, +/turf/open/floor/plasteel/sandeffect, +/area/awaymission/beach) +"bh" = ( +/turf/open/floor/plating/beach/sand, +/obj/item/clothing/shoes/sandal, +/obj/item/clothing/shoes/sandal, +/obj/item/clothing/shoes/sandal, +/obj/structure/closet/crate, +/turf/open/floor/plasteel/sandeffect, +/area/awaymission/beach) +"bi" = ( +/obj/effect/overlay/palmtree_l, +/obj/effect/overlay/coconut, +/turf/closed/indestructible{ + desc = "Very dense sand, very difficult to pass."; + icon = 'icons/misc/beach.dmi'; + icon_state = "sand"; + name = "dense sand"; + opacity = 0 + }, +/area/space) +"bj" = ( +/obj/item/toy/beach_ball, +/turf/open/floor/plating/beach/sand, +/area/awaymission/beach) +"bk" = ( +/mob/living/simple_animal/crab, +/turf/open/floor/plating/beach/sand, +/area/awaymission/beach) +"bl" = ( +/obj/effect/overlay/coconut, +/turf/open/floor/plating/beach/sand, +/area/awaymission/beach) +"bm" = ( +/mob/living/simple_animal/crab/Coffee, +/turf/open/floor/plating/beach/sand, +/area/awaymission/beach) +"bn" = ( +/obj/structure/chair, +/turf/open/floor/plating/beach/sand, +/area/awaymission/beach) +"bo" = ( +/turf/open/floor/plating/beach/coastline_t, +/area/space) +"bp" = ( +/turf/open/floor/plating/beach/coastline_t{ + density = 1 + }, +/area/space) +"bq" = ( +/turf/open/floor/plating/beach/coastline_t, +/area/awaymission/beach) +"br" = ( +/turf/open/floor/plating/beach/coastline_b, +/area/space) +"bs" = ( +/turf/open/floor/plating/beach/coastline_b{ + density = 1 + }, +/area/space) +"bt" = ( +/turf/open/floor/plating/beach/coastline_b, +/area/awaymission/beach) +"bu" = ( +/turf/closed/indestructible{ + desc = "Very dense water, very difficult to pass."; + icon = 'icons/misc/beach.dmi'; + icon_state = "water"; + name = "dense water"; + opacity = 0 + }, +/area/space) +"bv" = ( +/turf/open/floor/plating/beach/water, +/area/space) +"bw" = ( +/turf/open/floor/plating/beach/water, +/area/awaymission/beach) +"bx" = ( +/turf/open/floor/plating/beach/water{ + density = 1; + opacity = 1 + }, +/area/awaymission/beach) + +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(8,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(9,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(10,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(11,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(12,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(13,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(14,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(15,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(16,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(17,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(18,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(19,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(20,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(21,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(22,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(23,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(24,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(25,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(26,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(27,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(28,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(29,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(30,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(31,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(32,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(33,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(34,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(35,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(36,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(37,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(38,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(39,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(40,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(41,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(42,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(43,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(44,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(45,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(46,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(47,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(48,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(49,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(50,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(51,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(52,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(53,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(54,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(55,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(56,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(57,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(58,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(59,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(60,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(61,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(62,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(63,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(64,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(65,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(66,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(67,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(68,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(69,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(70,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(71,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(72,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(80,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(81,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(82,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(83,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(84,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(85,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(86,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(87,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ab +ac +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bi +ab +ab +ab +ab +ab +ab +bo +br +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(88,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aQ +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bo +br +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(89,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bo +br +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(90,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ab +ac +ac +ac +ac +ac +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bo +br +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(91,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bo +br +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(92,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bo +br +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(93,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bo +br +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(94,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ab +ac +ac +ae +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bo +br +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(95,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aQ +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bo +br +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(96,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aQ +ac +ac +ac +ac +ac +ac +bo +br +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(97,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +bp +bs +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(98,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ab +ac +ab +ai +ai +ai +ai +ak +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ak +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(99,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ab +ac +ab +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ak +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(100,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ab +ac +ab +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ak +ai +ai +ai +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(101,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ab +ac +ab +ai +ai +ai +ai +ai +ai +ai +ai +ai +aU +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(102,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ab +ac +ab +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(103,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ae +ac +ab +ac +ab +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(104,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ab +ac +ab +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(105,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ab +ac +ab +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(106,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ab +ac +ab +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(107,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 +ab +ac +ac +ac +ac +ac +ac +ab +ac +ab +ai +ai +ai +ai +ai +ai +ai +ai +aR +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(108,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 +ab +ac +ac +ac +ac +ac +ac +ab +ac +ab +ai +ai +ai +ai +ai +ai +ai +ai +aR +aV +ba +bd +aG +aG +aG +ai +ai +ai +ai +ai +ai +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(109,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 +ab +ac +ac +ac +ac +ac +ac +ab +ag +ab +ai +ai +ai +ai +ai +ai +ai +ai +aR +aW +bb +be +aG +aG +aG +aZ +ai +ai +ai +ai +ai +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(110,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 +ab +ac +ac +ac +ac +ac +ac +ab +ac +ab +ai +ai +ai +ai +ai +ai +ai +ai +aR +aX +bc +bf +aG +aG +aG +ai +ai +ai +bk +ai +bj +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(111,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 +ab +ac +ac +ac +ac +ac +ac +ab +ac +ab +ai +ai +ai +ai +ai +ai +ai +ai +aR +ai +ai +ai +ai +aG +aG +ai +ai +ai +ai +ai +ai +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(112,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 +ab +ac +ac +ac +ac +ac +ac +ab +ac +ab +ai +ai +ai +ai +ai +ai +ai +ai +aR +ai +ai +ai +ai +aG +aG +ai +ai +ai +ai +ai +ai +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(113,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 +ab +ac +ac +ac +ac +ac +ac +ab +ac +ab +ai +ai +ai +ai +ai +ai +ai +ai +aR +ai +ai +ai +ai +aG +aG +ai +ai +ai +ai +ak +ai +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(114,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 +ab +ac +ac +ac +ac +ac +ac +ab +ac +ab +ai +ai +ai +ai +ai +ai +ai +ai +aR +ai +ai +ai +ai +aG +aG +ai +ai +ai +ai +bl +ai +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(115,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 +ab +ac +ac +ac +ac +af +ac +ab +ac +ab +ai +ai +ai +ai +ai +ai +ai +ai +aR +ai +aU +ai +ai +aG +aG +ai +ai +ai +ai +ai +ai +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(116,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 +ab +ac +ac +ac +ac +ac +ac +ab +ac +ab +ai +ai +ai +ai +ai +ai +ak +ai +aR +ai +ai +ai +ai +aG +aG +ai +ai +ai +ai +ai +ai +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(117,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 +ab +ac +ac +ac +ac +ac +ac +ab +ac +ab +ai +ai +ak +ai +ai +aG +aG +aG +aG +ai +ai +ai +ai +aG +aG +ai +ai +ai +ai +ai +bk +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(118,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 +ab +ac +ac +ac +ac +ac +ac +ab +ac +ab +ai +ai +ai +aj +aj +aj +aj +aG +aG +aG +ai +ai +ai +aG +aG +ai +ai +ai +ai +ai +ai +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(119,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 +ab +ac +ac +ac +ac +ac +ac +ab +ac +ab +ai +ai +ai +aj +ay +aD +aK +aN +aG +aG +ai +ai +ai +aG +aG +ai +ai +ai +ai +ai +ai +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(120,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 +ab +ac +ac +ac +ac +ac +ac +ab +ac +ab +ai +ai +ai +aj +az +aD +aK +aN +aG +aG +ai +ai +ai +aG +aG +ai +ai +ai +ai +ai +bn +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(121,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 +ab +ac +ac +ac +ac +ac +ac +ab +ac +ab +ai +ai +ai +aj +aA +aD +aK +aN +aG +aG +ai +ai +ai +aG +aG +ai +ai +ai +ai +ai +ai +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(122,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 +ab +ac +ac +ac +ac +ac +ac +ab +ac +ab +ai +ai +ai +aj +aB +aD +aK +aN +aG +aG +aG +aG +aG +aG +aG +ai +ai +ai +ai +ai +bn +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(123,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 +ab +ac +ac +ac +ac +ac +ac +ab +ac +ab +ai +ai +ai +aj +aC +aD +aK +aN +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +ai +ai +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(124,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 +ab +ac +ac +ac +ac +ac +ac +ab +ac +ab +ai +ai +ai +aj +aD +aD +aK +aN +aG +aG +aG +aG +aG +aG +aG +ai +ai +ai +ai +ai +bn +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(125,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 +ab +ac +ac +ac +ac +ac +ac +ah +ac +ab +ai +ai +ai +aj +aD +aD +aj +aj +aS +aj +aG +ai +ai +aG +aG +ai +ai +ai +ai +ai +ai +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(126,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 +ab +ac +ac +ac +ac +ac +ac +ab +ac +ab +ai +ai +ai +aj +aD +aD +aD +aD +aD +aY +aG +ai +ai +aG +aG +ai +ai +ai +ai +ai +bn +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(127,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 +ab +ac +ac +ac +ac +ac +ac +ab +ac +ab +ai +ai +ai +aj +aE +aI +aL +aO +aT +aj +aG +ai +ai +aG +aG +ai +ai +ai +ai +ai +ai +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(128,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ab +ac +ab +ai +ai +ai +aj +aj +aj +aj +aj +aj +aj +aG +ai +ai +aG +aG +ai +ai +ai +ai +ai +bn +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(129,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 +ab +ac +ac +ac +ac +ac +ac +ab +ac +ab +ai +ai +ai +ai +aF +aJ +aM +aP +aG +aG +aG +ai +ai +aG +aG +ai +ai +ai +ai +ak +ai +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(130,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 +ab +ac +ac +ac +ac +ac +ac +ab +ac +ab +ai +ai +ai +ai +aG +aG +aG +aG +aG +ai +ai +ai +ai +aG +aG +ai +ai +ai +ai +ai +bn +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(131,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 +ab +ac +ac +ac +ac +ac +ac +ab +ac +ab +ai +ai +ai +ai +ai +aG +aG +ai +aR +ai +ai +ai +ai +aG +aG +ai +ai +ai +ai +ai +ai +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(132,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 +ab +ac +ac +ac +ac +ac +ac +ab +ac +ab +ai +ai +ai +ai +ai +aG +aG +ai +aR +ai +ai +ai +ai +aG +aG +ai +ai +ai +ai +ai +ai +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(133,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 +ab +ac +ac +ac +ac +ac +ac +ab +ac +ab +ai +ai +ai +at +ai +aG +aG +ai +aR +ai +ai +bg +aG +aG +aG +ai +ai +ai +ai +ai +ai +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(134,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 +ab +ac +ac +ac +ac +ac +ac +ab +ac +ab +ai +ai +ai +ai +ai +aG +aG +ai +aR +ai +ai +bh +aG +aG +aG +ak +ai +ai +ai +ai +ai +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(135,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 +ab +ac +ac +ac +ac +ac +ac +ab +ac +ab +ai +ai +ai +ai +ai +aG +aG +ai +aR +ai +ai +bg +aG +ai +ai +ai +ai +ai +ai +bm +ai +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(136,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 +ab +ac +ac +ad +ac +ac +ac +ab +ac +ab +ai +aj +aj +aj +aj +aG +aG +ai +aR +ai +ai +bh +aG +ai +ai +ai +ai +ai +ai +ai +ai +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(137,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 +ab +ac +ac +ac +ac +ac +ac +ab +ac +ab +ai +aj +al +au +aj +aG +aG +ai +aR +ai +ai +bg +aG +ai +ai +bj +ai +ai +ai +ai +ai +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(138,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 +ab +ac +ac +ac +ac +ac +ac +ab +ac +ab +ai +aj +am +am +aj +aG +aG +ai +aR +ai +ai +bh +aG +ai +ai +ai +ai +ai +aZ +ai +ai +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(139,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 +ab +ac +ac +ac +ac +ac +ac +ab +ac +ab +ai +aj +an +av +aj +aG +aG +ai +aR +ai +ai +bg +aG +ai +ai +ai +ai +ai +ai +bl +ai +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(140,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 +ab +ac +ac +ac +ac +ac +ag +ab +ac +ab +ai +aj +ao +aw +aj +aG +aG +ai +aR +ai +ai +bh +aG +ai +ak +ai +ai +ai +ai +ai +ai +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(141,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 +ab +ac +ac +ac +ac +ac +ac +ab +ac +ab +ai +aj +ap +aw +aH +aG +aG +ai +aR +ai +ai +bg +aG +ai +ai +ai +ai +ai +ai +ai +bn +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(142,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 +ab +ac +ac +ac +ac +ac +ac +ab +ac +ab +ai +aj +aj +aj +aj +aG +aG +ai +aR +ai +ai +bh +aG +ai +ai +ai +ai +ai +ai +ai +ai +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(143,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 +ab +ac +ac +ac +ac +ac +ac +ab +ac +ab +ai +aj +aq +aw +aH +aG +aG +ai +aR +ai +ai +bg +aG +ai +ai +ai +ai +ai +ai +ai +bn +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(144,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 +ab +ac +ac +ac +ac +ac +ac +ab +ac +ab +ai +aj +an +aw +aj +aG +aG +ai +aR +aZ +ai +bh +aG +ai +ai +ai +ai +ai +ai +ai +ai +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(145,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 +ab +ac +ac +ac +ac +ac +ac +ab +ac +ab +ai +aj +an +ax +aj +aG +aG +ai +aR +ai +ai +bg +aG +ai +ai +ai +ai +ai +ai +aZ +ai +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(146,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 +ab +ac +ac +ac +ac +ac +ac +ab +ac +ab +ai +aj +ar +am +aj +ai +ai +ai +aR +aR +aR +aR +aR +aR +aR +aR +aR +aR +aR +aR +aR +aR +bq +bt +bx +bx +bx +bx +bx +bx +bx +bx +bx +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(147,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 +ab +ac +ac +ac +ac +ac +ac +ab +ac +ab +ai +aj +as +as +aj +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(148,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 +ab +ac +ac +ac +ac +ac +ac +ab +ad +ab +ai +aj +aj +aj +aj +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(149,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 +ab +ac +ac +ac +ac +ac +ac +ab +ac +ab +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +aU +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(150,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 +ab +ac +ac +ac +ac +ac +ag +ab +ac +ab +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +aZ +ai +ai +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(151,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 +ab +ac +ac +ac +ac +ac +ac +ab +ac +ab +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +bq +bt +bw +bw +bw +bw +bw +bw +bw +bw +bw +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(152,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 +ab +ac +ac +ac +ac +ac +ac +ab +ac +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bi +ab +ab +ab +ab +ab +ab +bp +bs +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(153,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 +ab +ac +ac +ac +ac +ac +ac +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aQ +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bo +br +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(154,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 +ab +ac +ac +ac +ac +ac +ac +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bo +br +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(155,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 +ab +ac +ac +ac +ac +ac +ac +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bo +br +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(156,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 +ab +ac +ac +ac +ac +ac +ac +ab +ac +ac +ac +ac +ac +ag +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bo +br +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(157,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 +ab +ac +ac +ac +ac +ac +ac +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bo +br +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(158,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 +ab +ac +ac +ac +ac +ac +ac +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bo +br +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(159,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 +ab +ac +ac +ac +ac +ac +ac +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ag +ac +ac +ac +ac +ac +ac +ac +ac +ac +bo +br +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(160,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 +ab +ac +ac +ac +ac +ac +ac +ab +ac +ac +ag +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bo +br +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(161,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 +ab +ac +ac +ac +ac +ac +ac +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bo +br +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bv +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ac +bo +br +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(174,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(175,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(176,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(177,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(178,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(179,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(180,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(181,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(182,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(183,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(184,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(185,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(186,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(187,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(188,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(189,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(190,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(191,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(192,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(193,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(194,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(195,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(196,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(197,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(198,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(199,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(200,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(201,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(202,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(203,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(204,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(205,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(206,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(207,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(208,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(209,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(210,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(211,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(212,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(213,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(214,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(215,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(216,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(217,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(218,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(219,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(220,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(221,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(222,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(223,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(224,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(225,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(226,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(227,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(228,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(229,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(230,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(231,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(232,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(233,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(234,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(235,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(236,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(237,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(238,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(239,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(240,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(241,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(242,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(243,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(244,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(245,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(246,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(247,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(248,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} diff --git a/_maps/RandomZLevels/beach2.dmm b/_maps/RandomZLevels/beach2.dmm new file mode 100644 index 0000000..ec4111b --- /dev/null +++ b/_maps/RandomZLevels/beach2.dmm @@ -0,0 +1,65960 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/open/space, +/area/space) +"ab" = ( +/turf/closed/indestructible/rock, +/area/awaymission/beach) +"ac" = ( +/turf/open/floor/plating/beach/sand, +/area/awaymission/beach) +"ad" = ( +/obj/machinery/gateway{ + dir = 9 + }, +/turf/open/floor/plating/beach/sand, +/area/awaymission/beach) +"ae" = ( +/obj/machinery/gateway{ + dir = 1 + }, +/turf/open/floor/plating/beach/sand, +/area/awaymission/beach) +"af" = ( +/obj/machinery/gateway{ + dir = 5 + }, +/turf/open/floor/plating/beach/sand, +/area/awaymission/beach) +"ag" = ( +/obj/machinery/gateway{ + dir = 8 + }, +/turf/open/floor/plating/beach/sand, +/area/awaymission/beach) +"ah" = ( +/obj/machinery/gateway/centeraway, +/turf/open/floor/plating/beach/sand, +/area/awaymission/beach) +"ai" = ( +/obj/machinery/gateway{ + dir = 4 + }, +/turf/open/floor/plating/beach/sand, +/area/awaymission/beach) +"aj" = ( +/obj/machinery/gateway{ + density = 0; + dir = 10 + }, +/turf/open/floor/plating/beach/sand, +/area/awaymission/beach) +"ak" = ( +/obj/machinery/gateway, +/turf/open/floor/plasteel/sandy, +/area/awaymission/beach) +"al" = ( +/obj/machinery/gateway{ + density = 0; + dir = 6 + }, +/turf/open/floor/plating/beach/sand, +/area/awaymission/beach) +"am" = ( +/obj/effect/overlay/palmtree_l, +/obj/effect/overlay/coconut, +/turf/open/floor/plating/beach/sand, +/area/awaymission/beach) +"an" = ( +/obj/effect/overlay/palmtree_r, +/turf/open/floor/plating/beach/sand, +/area/awaymission/beach) +"ao" = ( +/obj/machinery/telecomms/relay/preset/mining, +/turf/open/floor/plasteel/sandy, +/area/awaymission/beach) +"ap" = ( +/turf/open/floor/plasteel/sandy, +/area/awaymission/beach) +"aq" = ( +/turf/closed/wall/mineral/sandstone, +/area/awaymission/beach) +"ar" = ( +/obj/effect/overlay/palmtree_l, +/turf/open/floor/plating/beach/sand, +/area/awaymission/beach) +"as" = ( +/obj/structure/dresser{ + density = 0; + pixel_x = 0; + pixel_y = 18 + }, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/beach/sand + }, +/area/awaymission/beach) +"at" = ( +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/beach/sand + }, +/area/awaymission/beach) +"au" = ( +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = 32 + }, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/beach/sand + }, +/area/awaymission/beach) +"av" = ( +/obj/structure/toilet{ + pixel_y = 8 + }, +/turf/open/floor/plasteel/sandy, +/area/awaymission/beach) +"aw" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/beach/sand + }, +/area/awaymission/beach) +"ax" = ( +/obj/item/weapon/bedsheet/rainbow, +/obj/structure/bed, +/obj/machinery/button/door{ + id = "loveshack"; + name = "love shack lock"; + normaldoorcontrol = 1; + pixel_x = 24; + specialfunctions = 4 + }, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/beach/sand + }, +/area/awaymission/beach) +"ay" = ( +/obj/effect/overlay/palmtree_r, +/obj/effect/overlay/coconut, +/turf/open/floor/plating/beach/sand, +/area/awaymission/beach) +"az" = ( +/obj/structure/mineral_door/wood{ + name = "toilet" + }, +/turf/open/floor/plasteel/sandy, +/area/awaymission/beach) +"aA" = ( +/obj/item/weapon/reagent_containers/food/drinks/bottle/wine, +/obj/item/weapon/reagent_containers/food/drinks/bottle/rum, +/obj/structure/table/wood, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/beach/sand + }, +/area/awaymission/beach) +"aB" = ( +/obj/effect/overlay/coconut, +/turf/open/floor/plating/beach/sand, +/area/awaymission/beach) +"aC" = ( +/obj/structure/signpost, +/turf/open/floor/plating/beach/sand, +/area/awaymission/beach) +"aD" = ( +/obj/machinery/door/airlock/sandstone{ + id_tag = "loveshack"; + name = "Beach Hut" + }, +/turf/open/floor/wood, +/area/awaymission/beach) +"aE" = ( +/obj/structure/mirror{ + pixel_y = 28 + }, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/beach/sand + }, +/area/awaymission/beach) +"aF" = ( +/obj/machinery/button/door{ + id = "changing1"; + name = "changing room lock"; + normaldoorcontrol = 1; + pixel_x = 24; + specialfunctions = 4 + }, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/beach/sand + }, +/area/awaymission/beach) +"aG" = ( +/obj/machinery/button/door{ + id = "changing2"; + name = "changing room lock"; + normaldoorcontrol = 1; + pixel_x = 24; + specialfunctions = 4 + }, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/beach/sand + }, +/area/awaymission/beach) +"aH" = ( +/obj/machinery/door/airlock/sandstone{ + id_tag = "changing1"; + name = "changing room" + }, +/turf/open/floor/wood, +/area/awaymission/beach) +"aI" = ( +/obj/machinery/door/airlock/sandstone{ + id_tag = "changing2"; + name = "changing room" + }, +/turf/open/floor/wood, +/area/awaymission/beach) +"aJ" = ( +/obj/structure/bedsheetbin{ + pixel_y = -6 + }, +/turf/open/floor/plasteel/sandy, +/area/awaymission/beach) +"aK" = ( +/obj/item/clothing/shoes/sandal, +/obj/item/clothing/shoes/sandal, +/obj/item/clothing/shoes/sandal, +/obj/structure/closet/crate, +/turf/open/floor/plasteel/sandy, +/area/awaymission/beach) +"aL" = ( +/obj/structure/closet/athletic_mixed, +/turf/open/floor/plasteel/sandy, +/area/awaymission/beach) +"aM" = ( +/obj/structure/closet/gmcloset, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/beach/sand + }, +/area/awaymission/beach) +"aN" = ( +/obj/structure/closet/secure_closet/bar, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/beach/sand + }, +/area/awaymission/beach) +"aO" = ( +/obj/structure/table/wood, +/obj/item/weapon/book/manual/barman_recipes, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/beach/sand + }, +/area/awaymission/beach) +"aP" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/drinks/shaker, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/beach/sand + }, +/area/awaymission/beach) +"aQ" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/drinks/beer, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/beach/sand + }, +/area/awaymission/beach) +"aR" = ( +/obj/structure/table/wood, +/obj/item/clothing/glasses/sunglasses, +/obj/item/weapon/reagent_containers/food/drinks/beer, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/beach/sand + }, +/area/awaymission/beach) +"aS" = ( +/obj/effect/mob_spawn/human/bartender/alive, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/beach/sand + }, +/area/awaymission/beach) +"aT" = ( +/obj/machinery/vending/boozeomat, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/beach/sand + }, +/area/awaymission/beach) +"aU" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/beach/sand + }, +/area/awaymission/beach) +"aV" = ( +/obj/machinery/vending/cola, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/beach/sand + }, +/area/awaymission/beach) +"aW" = ( +/obj/machinery/vending/snack, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/beach/sand + }, +/area/awaymission/beach) +"aX" = ( +/obj/structure/mineral_door/wood{ + name = "bar" + }, +/turf/open/floor/wood, +/area/awaymission/beach) +"aY" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/drinks/ale, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/beach/sand + }, +/area/awaymission/beach) +"aZ" = ( +/obj/structure/table/wood, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/beach/sand + }, +/area/awaymission/beach) +"ba" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/drinks/soda_cans/dr_gibb, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/beach/sand + }, +/area/awaymission/beach) +"bb" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/drinks/soda_cans/lemon_lime, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/beach/sand + }, +/area/awaymission/beach) +"bc" = ( +/obj/item/toy/beach_ball, +/turf/open/floor/plating/beach/sand, +/area/awaymission/beach) +"bd" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/drinks/beer, +/obj/item/weapon/reagent_containers/food/drinks/beer, +/obj/item/weapon/reagent_containers/food/drinks/beer, +/obj/item/weapon/reagent_containers/food/drinks/beer, +/obj/item/weapon/reagent_containers/food/drinks/beer, +/obj/item/weapon/reagent_containers/food/drinks/beer, +/turf/open/floor/plating/beach/sand, +/area/awaymission/beach) +"be" = ( +/obj/structure/table, +/obj/item/clothing/under/color/rainbow, +/obj/item/clothing/glasses/sunglasses, +/obj/item/clothing/head/collectable/petehat{ + pixel_y = 5 + }, +/turf/open/floor/plating/beach/sand, +/area/awaymission/beach) +"bf" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/sandy, +/area/awaymission/beach) +"bg" = ( +/obj/structure/sign/barsign{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/sandy, +/area/awaymission/beach) +"bh" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/snacks/chips, +/turf/open/floor/plating/beach/sand, +/area/awaymission/beach) +"bi" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola, +/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola, +/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola, +/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola, +/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola, +/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola, +/turf/open/floor/plating/beach/sand, +/area/awaymission/beach) +"bj" = ( +/mob/living/simple_animal/crab, +/turf/open/floor/plating/beach/sand, +/area/awaymission/beach) +"bk" = ( +/obj/structure/chair, +/turf/open/floor/plating/beach/sand, +/area/awaymission/beach) +"bl" = ( +/obj/item/weapon/reagent_containers/food/drinks/soda_cans/lemon_lime, +/turf/open/floor/plating/beach/sand, +/area/awaymission/beach) +"bm" = ( +/obj/item/weapon/reagent_containers/food/drinks/soda_cans/dr_gibb, +/turf/open/floor/plating/beach/sand, +/area/awaymission/beach) +"bn" = ( +/obj/item/weapon/reagent_containers/food/drinks/soda_cans/starkist, +/turf/open/floor/plating/beach/sand, +/area/awaymission/beach) +"bo" = ( +/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola, +/turf/open/floor/plating/beach/sand, +/area/awaymission/beach) +"bp" = ( +/obj/item/weapon/reagent_containers/food/drinks/soda_cans/space_mountain_wind, +/turf/open/floor/plating/beach/sand, +/area/awaymission/beach) +"bq" = ( +/obj/item/clothing/head/collectable/paper, +/turf/open/floor/plating/beach/sand, +/area/awaymission/beach) +"br" = ( +/turf/open/floor/plating/beach/coastline_t, +/area/awaymission/beach) +"bs" = ( +/turf/open/floor/plating/beach/coastline_b, +/area/awaymission/beach) +"bt" = ( +/turf/open/floor/plating/beach/water, +/area/awaymission/beach) + +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(8,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(9,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(10,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(11,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(12,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(13,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(14,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(15,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(16,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(17,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(18,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(19,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(20,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(21,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(22,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(23,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(24,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(25,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(26,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(27,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(28,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(29,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(30,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(31,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(32,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(33,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(34,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(35,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(36,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(37,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(38,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(39,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(40,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(41,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(42,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(43,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(44,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(45,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(46,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(47,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(48,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(49,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(50,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(51,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(52,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(53,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(54,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(55,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(56,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(57,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(58,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(59,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(60,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(61,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(62,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(63,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(64,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(65,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(66,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(67,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(68,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(69,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(70,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(71,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(72,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(80,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(81,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(82,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(83,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(84,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(85,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(86,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(87,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(88,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(89,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(90,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(91,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(92,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(93,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(94,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(95,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(96,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(97,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(98,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(99,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(100,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(101,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(102,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(103,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(104,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(105,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(106,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(107,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(108,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(109,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(110,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +an +ac +ac +ac +ac +ac +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(111,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(112,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bj +ac +bc +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(113,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +aB +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(114,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ar +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(115,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ar +ac +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(116,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aB +ac +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(117,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +am +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(118,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +an +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(119,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bj +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(120,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ac +ac +ac +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(121,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ap +ap +aJ +aq +aq +aq +aX +aq +ap +ap +ac +ac +ac +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(122,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +an +ac +ac +ac +ac +ac +ac +aq +aq +aq +aq +ap +ap +aK +aq +aM +at +at +aY +bf +ap +ac +ac +bk +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(123,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aq +as +at +aq +ap +ap +aL +aq +aN +at +at +aY +bf +ap +ac +ac +bl +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(124,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ar +aq +aE +aF +aH +ap +ap +aK +aq +aO +at +at +aZ +bf +ap +ac +ac +bk +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(125,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ao +ac +ac +ac +ac +ac +aB +aq +aq +aq +aq +ap +ap +aL +aq +aP +at +at +aZ +bf +ap +ac +ac +bm +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(126,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ad +ag +aj +ap +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ap +ap +aK +aq +aQ +at +at +aZ +bf +ap +ac +ac +bk +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(127,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ae +ah +ak +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +aL +aq +aR +at +at +ba +bf +ap +ac +ac +bn +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(128,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ac +af +ai +al +ac +ac +ac +ac +aC +ap +ac +ac +ac +ac +ac +ap +ap +aK +aq +aS +at +at +bb +bf +ap +ac +ac +bk +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(129,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ap +ac +aq +aq +aq +aq +ap +ap +aL +aq +aT +at +at +aZ +bf +ap +ac +ac +bo +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(130,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ap +ac +aq +as +at +aq +ap +ap +aK +aq +aU +at +at +aZ +bf +ap +ac +ac +bk +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(131,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ap +ac +aq +aE +aG +aI +ap +ap +aL +aq +aV +at +at +aZ +bf +ap +ac +ar +bm +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(132,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ap +ac +aq +aq +aq +aq +ap +ap +aK +aq +aW +at +at +aq +bg +ap +ac +ac +bk +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(133,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ap +ac +ac +ac +ac +ac +ap +ap +aL +aq +aq +aq +aq +aq +ap +ap +ac +ac +bp +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(134,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +am +ac +ac +ac +ac +ac +ap +ac +ac +ac +ac +ac +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ac +ac +ac +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(135,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ap +ac +an +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(136,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ap +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ar +ac +ac +ac +ac +ac +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(137,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ap +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bj +ac +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(138,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ap +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(139,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ap +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bc +ac +ac +ac +ac +ac +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(140,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ap +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +an +ac +ac +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(141,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +an +ac +ac +ap +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aB +ac +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(142,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ap +ac +ac +ac +ac +ar +ac +ac +ac +ac +ac +ac +ar +ac +ac +ac +ac +ac +ac +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(143,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +aq +aq +aq +ac +ap +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bk +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(144,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +aq +av +az +ap +ap +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bo +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(145,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +aq +aq +aq +ac +ap +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bk +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(146,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ap +ac +ac +ac +ac +ac +ac +ay +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bp +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(147,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ap +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +an +ac +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(148,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ap +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(149,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +aq +aq +aq +aq +aq +ap +ac +ac +ar +ac +ac +ac +ac +ac +ac +ac +an +ac +ac +ac +ac +ac +bj +ac +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(150,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +aq +as +aw +aA +aq +ap +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aB +ac +ac +ac +ac +ac +ac +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(151,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +aq +at +at +at +aD +ap +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aB +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(152,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +aq +au +ax +at +aq +ap +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(153,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +aq +aq +aq +aq +aq +ap +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +an +ac +ac +ac +ac +ac +ac +ac +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(154,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aB +ac +bd +bh +ac +ac +ac +bq +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(155,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +be +bi +ac +ac +ac +ac +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(156,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bk +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(157,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bl +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(158,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ar +ac +ac +ac +ac +ac +ac +ar +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bk +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(159,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +an +ac +ac +ac +bo +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(160,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bk +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(161,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bc +ac +ac +ac +bn +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(162,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ay +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ar +ac +ac +ac +ac +ac +ac +ac +bj +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(163,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(164,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(165,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +an +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ar +aB +ac +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(166,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ay +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +br +bs +bt +bt +bt +bt +bt +bt +bt +bt +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(174,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(175,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(176,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(177,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(178,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(179,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(180,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(181,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(182,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(183,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(184,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(185,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(186,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(187,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(188,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(189,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(190,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(191,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(192,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(193,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(194,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(195,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(196,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(197,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(198,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(199,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(200,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(201,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(202,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(203,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(204,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(205,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(206,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(207,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(208,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(209,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(210,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(211,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(212,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(213,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(214,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(215,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(216,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(217,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(218,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(219,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(220,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(221,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(222,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(223,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(224,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(225,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(226,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(227,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(228,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(229,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(230,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(231,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(232,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(233,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(234,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(235,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(236,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(237,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(238,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(239,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(240,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(241,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(242,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(243,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(244,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(245,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(246,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(247,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(248,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} diff --git a/_maps/RandomZLevels/caves.dmm b/_maps/RandomZLevels/caves.dmm new file mode 100644 index 0000000..a375cab --- /dev/null +++ b/_maps/RandomZLevels/caves.dmm @@ -0,0 +1,68575 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/closed/indestructible/rock, +/area/space) +"ab" = ( +/turf/open/space, +/area/space) +"ac" = ( +/turf/closed/mineral/volcanic, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 3" + }) +"ad" = ( +/turf/open/floor/plating/lava/smooth{ + baseturf = /turf/open/floor/plating/lava/smooth; + desc = "Looks hot."; + luminosity = 5; + name = "lava"; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 4" + }) +"ae" = ( +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 3" + }) +"af" = ( +/obj/item/weapon/greentext, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 3" + }) +"ag" = ( +/obj/structure/barricade/wooden, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 3" + }) +"ah" = ( +/turf/open/floor/plating/lava/smooth{ + baseturf = /turf/open/floor/plating/lava/smooth; + desc = "Looks hot."; + luminosity = 5; + name = "lava"; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 3" + }) +"ai" = ( +/turf/open/floor/plating/asteroid/basalt/lava{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 4" + }) +"aj" = ( +/obj/structure/flora/rock, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 3" + }) +"ak" = ( +/turf/closed/mineral/random/high_chance, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 3" + }) +"al" = ( +/obj/effect/forcefield/cult, +/turf/open/floor/plating/asteroid/basalt/lava{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 4" + }) +"am" = ( +/obj/effect/decal/remains/human, +/turf/open/floor/plating/asteroid/basalt/lava{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 4" + }) +"an" = ( +/obj/structure/destructible/cult/pylon, +/turf/open/floor/plating/asteroid/basalt/lava{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 4" + }) +"ao" = ( +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 4" + }) +"ap" = ( +/obj/structure/destructible/cult/pylon, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 4" + }) +"aq" = ( +/obj/item/weapon/ectoplasm, +/turf/open/floor/plating/asteroid/basalt/lava{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 4" + }) +"ar" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 4" + }) +"as" = ( +/obj/effect/decal/cleanable/blood/gibs/old, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 4" + }) +"at" = ( +/mob/living/simple_animal/hostile/spawner/skeleton, +/turf/open/floor/plating/asteroid/basalt/lava{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 4" + }) +"au" = ( +/obj/structure/destructible/cult/talisman, +/obj/effect/decal/remains/human, +/obj/item/stack/sheet/runed_metal{ + amount = 25 + }, +/obj/item/weapon/veilrender/honkrender, +/obj/item/clothing/mask/gas/clown_hat, +/obj/item/organ/heart/demon, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 4" + }) +"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{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 4" + }) +"aw" = ( +/obj/effect/decal/remains/human, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 4" + }) +"ax" = ( +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "n2=23;o2=14" + }, +/turf/closed/wall/mineral/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 4" + }) +"ay" = ( +/obj/structure/destructible/cult/tome, +/obj/item/weapon/tome, +/obj/item/stack/sheet/runed_metal{ + amount = 25 + }, +/obj/item/weapon/coin/antagtoken, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 4" + }) +"az" = ( +/obj/structure/constructshell, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 4" + }) +"aA" = ( +/obj/structure/girder/cult, +/obj/item/stack/sheet/runed_metal, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 4" + }) +"aB" = ( +/mob/living/simple_animal/hostile/spawner/skeleton, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 4" + }) +"aC" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/cult, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 4" + }) +"aD" = ( +/obj/item/stack/sheet/runed_metal, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 4" + }) +"aE" = ( +/obj/structure/destructible/cult/tome, +/obj/item/stack/sheet/runed_metal{ + amount = 25 + }, +/obj/item/weapon/coin/antagtoken, +/obj/item/weapon/spellbook/oneuse/summonitem{ + name = "an extremely flamboyant book" + }, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 4" + }) +"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{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 4" + }) +"aG" = ( +/obj/item/weapon/ectoplasm, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 4" + }) +"aH" = ( +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 3" + }) +"aI" = ( +/obj/machinery/door/airlock/external, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 3" + }) +"aJ" = ( +/turf/closed/wall/rust{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 3" + }) +"aK" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 3" + }) +"aL" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 3" + }) +"aM" = ( +/obj/structure/ladder/unbreakable{ + anchored = 1; + height = 1; + id = "minedeep" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 3" + }) +"aN" = ( +/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/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 3" + }) +"aO" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 3" + }) +"aP" = ( +/obj/structure/ladder/unbreakable{ + anchored = 1; + height = 1; + id = "dungeon"; + name = "rusty ladder" + }, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 4" + }) +"aQ" = ( +/obj/item/stack/rods, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 3" + }) +"aR" = ( +/obj/effect/forcefield/cult, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 4" + }) +"aS" = ( +/obj/structure/girder/cult, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 4" + }) +"aT" = ( +/obj/structure/ore_box, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 3" + }) +"aU" = ( +/obj/machinery/light/small/built{ + tag = "icon-bulb1 (EAST)"; + icon_state = "bulb1"; + dir = 4 + }, +/obj/structure/sign/pods{ + 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"; + pixel_x = 32 + }, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 3" + }) +"aV" = ( +/obj/effect/forcefield/cult, +/turf/open/floor/plating/lava/smooth{ + baseturf = /turf/open/floor/plating/lava/smooth; + desc = "Looks hot."; + luminosity = 5; + name = "lava"; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 4" + }) +"aW" = ( +/obj/structure/barricade/wooden, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 3" + }) +"aX" = ( +/obj/effect/bump_teleporter{ + id = "minedeepdown"; + id_target = "minedeepup" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 3" + }) +"aY" = ( +/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/plating/asteroid/basalt/lava{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 4" + }) +"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{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 4" + }) +"ba" = ( +/obj/structure/destructible/cult/talisman, +/obj/item/weapon/plasma_fist_scroll, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 4" + }) +"bb" = ( +/mob/living/simple_animal/hostile/poison/giant_spider/hunter, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 3" + }) +"bc" = ( +/obj/structure/spider/stickyweb, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 3" + }) +"bd" = ( +/turf/open/floor/plating/asteroid/basalt/lava{ + initial_gas_mix = "n2=23;o2=14" + }, +/turf/closed/wall/mineral/cult{ + baseturf = /turf/open/floor/plating/lava/smooth + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 4" + }) +"be" = ( +/mob/living/simple_animal/hostile/spawner/mining/goliath, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 3" + }) +"bf" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 4" + }) +"bg" = ( +/mob/living/simple_animal/hostile/poison/giant_spider/nurse, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 3" + }) +"bh" = ( +/mob/living/simple_animal/hostile/skeleton, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 3" + }) +"bi" = ( +/obj/machinery/gateway{ + dir = 9 + }, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 4" + }) +"bj" = ( +/obj/machinery/gateway{ + dir = 1 + }, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 4" + }) +"bk" = ( +/obj/machinery/gateway{ + dir = 5 + }, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 4" + }) +"bl" = ( +/obj/machinery/gateway{ + dir = 8 + }, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 4" + }) +"bm" = ( +/obj/machinery/gateway/centeraway{ + calibrated = 0 + }, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 4" + }) +"bn" = ( +/obj/machinery/gateway{ + dir = 4 + }, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 4" + }) +"bo" = ( +/obj/structure/flora/rock, +/obj/item/device/soulstone/anybody, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 3" + }) +"bp" = ( +/obj/machinery/gateway{ + dir = 10 + }, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 4" + }) +"bq" = ( +/obj/machinery/gateway, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 4" + }) +"br" = ( +/obj/machinery/gateway{ + dir = 6 + }, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 4" + }) +"bs" = ( +/obj/structure/trap/stun{ + desc = "A rune inscribed in the floor, the air feeling electrified around it."; + name = "shock rune" + }, +/turf/open/floor/plating/asteroid/basalt/lava{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 4" + }) +"bt" = ( +/obj/structure/spider/stickyweb, +/mob/living/simple_animal/hostile/poison/giant_spider/hunter, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 3" + }) +"bu" = ( +/obj/structure/spider/cocoon, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 3" + }) +"bv" = ( +/obj/structure/destructible/cult/pylon, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 3" + }) +"bw" = ( +/obj/effect/decal/cleanable/blood, +/mob/living/simple_animal/hostile/spawner/skeleton, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 4" + }) +"bx" = ( +/obj/item/organ/brain/alien, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 3" + }) +"by" = ( +/obj/item/weapon/twohanded/mjollnir, +/mob/living/simple_animal/hostile/poison/giant_spider/nurse, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 3" + }) +"bz" = ( +/obj/effect/decal/remains/human, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 4" + }) +"bA" = ( +/obj/structure/destructible/cult/tome, +/obj/item/device/necromantic_stone, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 4" + }) +"bB" = ( +/obj/item/clothing/head/collectable/wizard, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 3" + }) +"bC" = ( +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 3" + }) +"bD" = ( +/mob/living/simple_animal/hostile/skeleton, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 3" + }) +"bE" = ( +/obj/structure/destructible/cult/pylon, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 4" + }) +"bF" = ( +/obj/structure/ladder/unbreakable{ + anchored = 1; + height = 2; + id = "dungeon"; + name = "rusty ladder" + }, +/turf/open/floor/engine/cult{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 3" + }) +"bG" = ( +/obj/item/weapon/gun/projectile/automatic/pistol/deagle/gold, +/turf/open/floor/plating/asteroid/basalt/lava{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 4" + }) +"bH" = ( +/obj/effect/decal/remains/human, +/obj/item/clothing/under/patriotsuit, +/turf/open/floor/plating/asteroid/basalt/lava{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 4" + }) +"bI" = ( +/obj/item/weapon/bedsheet/patriot, +/turf/open/floor/plating/asteroid/basalt/lava{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 4" + }) +"bJ" = ( +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"bK" = ( +/turf/closed/mineral/volcanic, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"bL" = ( +/turf/closed/mineral/volcanic, +/area/awaymission/BMPship) +"bM" = ( +/turf/open/floor/plating/lava/smooth{ + baseturf = /turf/open/floor/plating/lava/smooth; + desc = "Looks hot."; + luminosity = 5; + name = "lava"; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) +"bN" = ( +/turf/closed/mineral/random/high_chance, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"bO" = ( +/turf/open/floor/plating/lava/smooth{ + baseturf = /turf/open/floor/plating/lava/smooth; + desc = "Looks hot."; + luminosity = 5; + name = "lava"; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"bP" = ( +/obj/structure/sign/pods{ + 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 B1"; + pixel_x = 32 + }, +/obj/machinery/light/small/built{ + tag = "icon-bulb1 (EAST)"; + icon_state = "bulb1"; + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"bQ" = ( +/turf/closed/wall/rust{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"bR" = ( +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"bS" = ( +/obj/structure/barricade/wooden, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"bT" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"bU" = ( +/obj/effect/bump_teleporter{ + id = "minedeepdown"; + id_target = "minedeepup" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"bV" = ( +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) +"bW" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"bX" = ( +/obj/structure/table, +/obj/item/weapon/paper/crumpled{ + info = "
WARNING


Majority of this area is consitered 'unsafe' past this point. Theres an outpost directly south of here where you can get your bearing and travel further down if needed. Traveling in groups is HIGHLY advised, the shit out there can be extremely deadly if you're alone.
" + }, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"bY" = ( +/mob/living/simple_animal/hostile/skeleton, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"bZ" = ( +/mob/living/simple_animal/hostile/retaliate/bat{ + desc = "A rare breed of bat which roosts deep in caves."; + name = "Cave Bat" + }, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) +"ca" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) +"cb" = ( +/obj/structure/closet/crate/miningcar{ + name = "Mining cart" + }, +/obj/item/weapon/pickaxe{ + attack_verb = list("ineffectively hit"); + desc = "A pickaxe thats been left to rust."; + force = 1; + name = "rusty pickaxe"; + pixel_x = 5; + throwforce = 1 + }, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"cc" = ( +/obj/structure/ore_box, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"cd" = ( +/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/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"ce" = ( +/obj/structure/ladder/unbreakable{ + anchored = 1; + height = 1; + id = "mineintro" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"cf" = ( +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"cg" = ( +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/research) +"ch" = ( +/turf/closed/wall/rust{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/research) +"ci" = ( +/obj/item/weapon/shard, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) +"cj" = ( +/obj/structure/flora/rock, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) +"ck" = ( +/obj/structure/sign/xeno_warning_mining{ + pixel_y = -32 + }, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"cl" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"cm" = ( +/turf/closed/mineral/random/low_chance, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"cn" = ( +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/research) +"co" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/filingcabinet, +/obj/item/weapon/paper{ + info = "
Testing Notes


Subject appears unresponsive to most interactions, refusing to move away from the corners or face any scientists. Subject appears to move between the two back corners every observation. A strange humming can be heard from inside the cell, appears to be originating from the subject itself, further testing is necessary to confirm or deny this.
"; + name = "Subject Omega Notes" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/research) +"cp" = ( +/obj/structure/table, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/research) +"cq" = ( +/obj/structure/flora/rock, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"cr" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/research) +"cs" = ( +/obj/item/weapon/shard, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/research) +"ct" = ( +/obj/item/weapon/shard, +/obj/item/stack/rods, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/research) +"cu" = ( +/obj/effect/decal/cleanable/blood/gibs, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/research) +"cv" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/research) +"cw" = ( +/obj/item/stack/rods, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/research) +"cx" = ( +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) +"cy" = ( +/obj/effect/decal/remains/human, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) +"cz" = ( +/obj/effect/landmark{ + name = "awaystart" + }, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) +"cA" = ( +/obj/effect/decal/remains/xeno, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/research) +"cB" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/effect/decal/cleanable/xenoblood, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/research) +"cC" = ( +/obj/structure/table, +/obj/item/weapon/restraints/handcuffs/cable, +/obj/item/weapon/restraints/handcuffs/cable, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/research) +"cD" = ( +/obj/effect/decal/remains/human, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/research) +"cE" = ( +/obj/structure/sign/vacuum{ + name = "\improper LOW AIR AREA"; + pixel_x = 32; + pixel_y = 0 + }, +/obj/item/stack/rods, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/research) +"cF" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/research) +"cG" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) +"cH" = ( +/obj/machinery/door/airlock/external, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"cI" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"cJ" = ( +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"cK" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HOLY SHIT NIGGA WHAT ARE YOU DOING'."; + name = "\improper HOLY SHIT NIGGA WHAT ARE YOU DOING" + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"cL" = ( +/mob/living/simple_animal/hostile/spawner/mining/basilisk, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"cM" = ( +/obj/machinery/light{ + tag = "icon-tube1 (WEST)"; + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/research) +"cN" = ( +/obj/machinery/door/window/eastleft, +/obj/effect/decal/cleanable/xenoblood/xgibs, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/research) +"cO" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/door/window/eastleft, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/research) +"cP" = ( +/obj/machinery/door/airlock/external, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/research) +"cQ" = ( +/obj/item/weapon/pickaxe{ + attack_verb = list("ineffectively hit"); + desc = "A pickaxe thats been left to rust."; + force = 1; + name = "rusty pickaxe"; + pixel_x = 5; + throwforce = 1 + }, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"cR" = ( +/obj/effect/landmark{ + name = "awaystart" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/research) +"cS" = ( +/obj/machinery/door/window{ + base_state = "right"; + dir = 4; + icon_state = "right" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/research) +"cT" = ( +/obj/structure/window/reinforced, +/obj/machinery/door/window{ + base_state = "right"; + dir = 4; + icon_state = "right" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/research) +"cU" = ( +/mob/living/simple_animal/hostile/retaliate/bat{ + desc = "A rare breed of bat which roosts deep in caves."; + name = "Cave Bat" + }, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"cV" = ( +/obj/effect/decal/cleanable/xenoblood/xgibs, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/research) +"cW" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/research) +"cX" = ( +/obj/structure/table, +/obj/item/weapon/melee/baton, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/research) +"cY" = ( +/obj/structure/glowshroom/single, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/research) +"cZ" = ( +/obj/structure/sign/vacuum{ + name = "\improper LOW AIR AREA"; + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/research) +"da" = ( +/obj/structure/barricade/wooden, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) +"db" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/weapon/stock_parts/cell/crap, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/research) +"dc" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/sign/pods{ + 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"; + pixel_x = -32 + }, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"dd" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/research) +"de" = ( +/obj/machinery/light, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/research) +"df" = ( +/obj/structure/closet/secure_closet/miner{ + name = "weapon equipment" + }, +/obj/item/weapon/grenade/syndieminibomb/concussion, +/obj/item/weapon/grenade/syndieminibomb/concussion, +/obj/item/weapon/grenade/syndieminibomb/concussion, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/research) +"dg" = ( +/obj/effect/bump_teleporter{ + id = "mineintrodown"; + id_target = "mineintroup" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"dh" = ( +/obj/machinery/door/airlock/external, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"di" = ( +/obj/structure/table, +/obj/item/weapon/paper{ + info = "
Mining is hell down here, you can feel the heat of the magma no matter how thick the suit is. Conditions are barely managble as is, restless nights and horrid work conditions. The ore maybe rich down here, but we've already lost a few men to the faults shifting, god knows how much longer till it all just collapses down and consumes everyone with it.
" + }, +/obj/item/weapon/pen, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"dj" = ( +/obj/structure/ladder/unbreakable{ + anchored = 1; + height = 2; + id = "minedeep" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"dk" = ( +/obj/structure/table, +/obj/machinery/microwave, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"dl" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"dm" = ( +/obj/structure/spider/stickyweb, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"dn" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"do" = ( +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"dp" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/donkpockets, +/obj/item/clothing/glasses/meson, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"dq" = ( +/obj/machinery/light/small/built{ + tag = "icon-bulb1 (EAST)"; + icon_state = "bulb1"; + dir = 4 + }, +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"dr" = ( +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"ds" = ( +/obj/structure/closet/secure_closet/personal, +/obj/item/weapon/pickaxe{ + attack_verb = list("ineffectively hit"); + desc = "A pickaxe thats been left to rust."; + force = 1; + name = "rusty pickaxe"; + pixel_x = 5; + throwforce = 1 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"dt" = ( +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/northblock) +"du" = ( +/turf/closed/wall/rust{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/northblock) +"dv" = ( +/obj/machinery/suit_storage_unit/mining{ + desc = "An industrial unit made to hold space suits. Age has seemed to rust the sliding door mechanisms, making it difficult to open."; + name = "rusted suit storage unit" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"dw" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/obj/effect/landmark{ + name = "awaystart" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"dx" = ( +/obj/structure/closet/secure_closet/personal, +/obj/effect/decal/cleanable/cobweb, +/obj/item/weapon/sord, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/northblock) +"dy" = ( +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/northblock) +"dz" = ( +/obj/structure/table/wood, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/northblock) +"dA" = ( +/obj/structure/closet/secure_closet/personal, +/obj/item/weapon/gun/energy/kinetic_accelerator, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/northblock) +"dB" = ( +/obj/structure/dresser, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/northblock) +"dC" = ( +/obj/structure/closet/secure_closet/personal, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/northblock) +"dD" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/northblock) +"dE" = ( +/obj/machinery/light/small/built{ + tag = "icon-bulb1 (WEST)"; + icon_state = "bulb1"; + dir = 8 + }, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/northblock) +"dF" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/northblock) +"dG" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/northblock) +"dH" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/obj/effect/landmark{ + name = "awaystart" + }, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/northblock) +"dI" = ( +/obj/machinery/door/airlock{ + name = "Dorm" + }, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/northblock) +"dJ" = ( +/obj/item/stack/rods, +/obj/structure/spider/stickyweb, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/northblock) +"dK" = ( +/obj/structure/girder, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/northblock) +"dL" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/northblock) +"dM" = ( +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/northblock) +"dN" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/northblock) +"dO" = ( +/mob/living/simple_animal/hostile/retaliate/bat{ + desc = "A rare breed of bat which roosts deep in caves."; + name = "Cave Bat" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/northblock) +"dP" = ( +/obj/item/stack/rods, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/northblock) +"dQ" = ( +/obj/machinery/door/airlock/mining{ + name = "Dorm Access" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/northblock) +"dR" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/northblock) +"dS" = ( +/obj/machinery/light/small, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/northblock) +"dT" = ( +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/northblock) +"dU" = ( +/obj/structure/closet/crate/miningcar{ + name = "Mining cart" + }, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) +"dV" = ( +/obj/machinery/door/airlock{ + name = "Dorm" + }, +/turf/open/floor/wood, +/area/awaymission/northblock) +"dW" = ( +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"dX" = ( +/turf/closed/wall/rust{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"dY" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/landmark{ + name = "awaystart" + }, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/northblock) +"dZ" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/northblock) +"ea" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/northblock) +"eb" = ( +/obj/machinery/light/small/built{ + tag = "icon-bulb1 (WEST)"; + icon_state = "bulb1"; + dir = 8 + }, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/northblock) +"ec" = ( +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/northblock) +"ed" = ( +/obj/structure/bed, +/obj/effect/landmark{ + name = "awaystart" + }, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/northblock) +"ee" = ( +/obj/structure/girder, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/northblock) +"ef" = ( +/obj/effect/decal/cleanable/ash, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) +"eg" = ( +/obj/effect/decal/cleanable/robot_debris/old, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"eh" = ( +/obj/structure/table, +/obj/item/device/radio, +/obj/item/device/radio, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"ei" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"ej" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"ek" = ( +/obj/structure/window{ + icon_state = "window"; + dir = 8 + }, +/mob/living/simple_animal/hostile/mining_drone, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"el" = ( +/obj/structure/closet/secure_closet/personal, +/obj/item/weapon/gun/energy/laser/captain/scattershot, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/northblock) +"em" = ( +/obj/structure/closet/secure_closet/personal, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/northblock) +"en" = ( +/obj/effect/decal/cleanable/shreds, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/northblock) +"eo" = ( +/obj/item/stack/rods, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/northblock) +"ep" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/northblock) +"eq" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"er" = ( +/obj/structure/chair/stool, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"es" = ( +/obj/structure/window{ + icon_state = "window"; + dir = 8 + }, +/obj/structure/window, +/mob/living/simple_animal/hostile/mining_drone, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"et" = ( +/obj/effect/decal/cleanable/shreds, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/northblock) +"eu" = ( +/obj/item/stack/rods, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) +"ev" = ( +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"ew" = ( +/obj/structure/table, +/obj/item/device/mining_scanner, +/obj/item/device/mining_scanner, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"ex" = ( +/obj/structure/closet/secure_closet/miner, +/obj/effect/decal/cleanable/cobweb, +/obj/item/weapon/survivalcapsule, +/obj/item/weapon/extinguisher/mini, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"ey" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"ez" = ( +/obj/machinery/light/small/built{ + tag = "icon-bulb1 (NORTH)"; + icon_state = "bulb1"; + dir = 1 + }, +/obj/machinery/suit_storage_unit/mining{ + desc = "An industrial unit made to hold space suits. Age has seemed to rust the sliding door mechanisms, making it difficult to open."; + name = "rusted suit storage unit" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"eA" = ( +/obj/structure/table, +/obj/item/weapon/paper{ + info = "
Survival Info For Miners


The caves are an unforgiving place, the only thing you'll have to traverse is the supplies in your locker and your own wit. Travel in packs when mining and try to shut down the monster dens before they overwhelm you. The job is dangerous but the haul is good, so remember this infomation and hopefully we'll all go home alive.
"; + name = "work notice" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"eB" = ( +/obj/structure/barricade/wooden, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"eC" = ( +/obj/structure/table, +/obj/item/device/gps/mining, +/obj/item/device/gps/mining, +/obj/item/clothing/glasses/meson, +/obj/item/clothing/glasses/meson, +/obj/item/clothing/glasses/meson, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"eD" = ( +/obj/structure/closet/secure_closet/miner, +/obj/item/weapon/survivalcapsule, +/obj/item/weapon/extinguisher/mini, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"eE" = ( +/obj/effect/landmark{ + name = "awaystart" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"eF" = ( +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/listeningpost) +"eG" = ( +/turf/closed/wall/rust{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/listeningpost) +"eH" = ( +/obj/machinery/vending/sustenance, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"eI" = ( +/obj/structure/closet/crate/trashcart, +/obj/item/weapon/switchblade, +/obj/item/weapon/switchblade, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/listeningpost) +"eJ" = ( +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/listeningpost) +"eK" = ( +/obj/structure/table, +/obj/item/weapon/gun/energy/kinetic_accelerator, +/obj/item/weapon/gun/energy/kinetic_accelerator, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/listeningpost) +"eL" = ( +/obj/machinery/vending/sovietsoda, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"eM" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/table, +/obj/item/weapon/storage/toolbox/electrical, +/obj/item/device/multitool, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/listeningpost) +"eN" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/listeningpost) +"eO" = ( +/obj/effect/landmark{ + name = "awaystart" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/listeningpost) +"eP" = ( +/obj/structure/table, +/obj/item/weapon/pickaxe{ + attack_verb = list("ineffectively hit"); + desc = "A pickaxe thats been left to rust."; + force = 1; + name = "rusty pickaxe"; + pixel_x = 5; + throwforce = 1 + }, +/obj/item/weapon/pickaxe{ + attack_verb = list("ineffectively hit"); + desc = "A pickaxe thats been left to rust."; + force = 1; + name = "rusty pickaxe"; + pixel_x = 5; + throwforce = 1 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/listeningpost) +"eQ" = ( +/obj/machinery/mineral/mint, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) +"eR" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"eS" = ( +/obj/machinery/light/small/built, +/obj/machinery/suit_storage_unit/mining{ + desc = "An industrial unit made to hold space suits. Age has seemed to rust the sliding door mechanisms, making it difficult to open."; + name = "rusted suit storage unit" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"eT" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"eU" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical, +/obj/item/weapon/storage/toolbox/mechanical, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/listeningpost) +"eV" = ( +/obj/structure/closet/crate/bin, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/listeningpost) +"eW" = ( +/obj/structure/barricade/wooden, +/turf/open/floor/plasteel, +/area/awaymission/listeningpost) +"eX" = ( +/obj/structure/table, +/obj/item/weapon/paper/pamphlet, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/listeningpost) +"eY" = ( +/obj/structure/table, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/listeningpost) +"eZ" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/listeningpost) +"fa" = ( +/obj/structure/noticeboard{ + pixel_y = 32 + }, +/obj/item/weapon/paper{ + info = "
We were suppose to get a shipment of these special laser rifles and a couple 'nades to help combat the wildlife down here, but its been weeks since we last heard from the caravan carrying the shit down here. At this point we can only assume they fell victim to one of the monster nests or the dumbasses managed to trip into the lava. So much for that shipment, I guess.
"; + name = "shipment notice" + }, +/obj/item/weapon/paper{ + info = "
Some of the miners have gone to laying some mine traps among the lower levels of the mine to keep the monsters at bay. This probably isn't the smartest idea in a cavern like this but the boys seem to get a chuckle out of every distant blast they hear go off, so I guess it works
"; + name = "safety notice" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/listeningpost) +"fb" = ( +/mob/living/simple_animal/hostile/spawner/mining/hivelord, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"fc" = ( +/obj/structure/closet/crate, +/obj/item/weapon/paper{ + info = "
CARAVAN SERVICES

Quality service since 2205


SHIPMENT CONTENTS:


4 scattershot rifles
6 grenades
1 laser rifle
1 blowup doll"; + name = "Shipment Receipt" + }, +/obj/item/weapon/gun/energy/laser/captain/scattershot, +/obj/item/weapon/gun/energy/laser/captain/scattershot, +/obj/item/weapon/gun/energy/laser, +/obj/item/weapon/grenade/syndieminibomb/concussion, +/obj/item/weapon/grenade/syndieminibomb/concussion, +/obj/item/weapon/grenade/syndieminibomb/concussion, +/obj/item/slimepotion/fireproof, +/obj/item/slimepotion/fireproof, +/obj/item/clothing/glasses/thermal, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"fd" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"fe" = ( +/obj/effect/decal/cleanable/blood/gibs/old, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"ff" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) +"fg" = ( +/obj/structure/ore_box, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) +"fh" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/listeningpost) +"fi" = ( +/obj/machinery/door/airlock/external, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/listeningpost) +"fj" = ( +/obj/effect/mob_spawn/human/skeleton/alive{ + name = "spooky skeleton remains" + }, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"fk" = ( +/obj/item/weapon/grenade/syndieminibomb/concussion, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"fl" = ( +/obj/effect/decal/remains/human, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"fm" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/listeningpost) +"fn" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/obj/item/weapon/paper{ + info = "
CARAVAN SERVICES

Quality service since 2205


SHIPMENT CONTENTS:


4 scattershot rifles
6 grenades
1 laser rifle
1 blowup doll"; + name = "Shipment Receipt" + }, +/obj/item/organ/cyberimp/eyes/thermals, +/obj/item/weapon/gun/energy/laser/captain/scattershot, +/obj/item/slimepotion/fireproof, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"fo" = ( +/mob/living/simple_animal/hostile/asteroid/fugu, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"fp" = ( +/obj/structure/sign/pods{ + desc = "A warning sign which warns of potential mech traffic to and from different levels of the mine."; + name = "\improper MECH TUNNEL PASSAGE A1 TO A2"; + pixel_x = -32 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) +"fq" = ( +/obj/structure/bed, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"fr" = ( +/obj/machinery/light/small/built{ + tag = "icon-bulb1 (NORTH)"; + icon_state = "bulb1"; + dir = 1 + }, +/obj/structure/spider/stickyweb, +/mob/living/simple_animal/hostile/poison/giant_spider/hunter, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"fs" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"ft" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/fire, +/obj/item/weapon/storage/firstaid/fire, +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"fu" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/brute, +/obj/item/weapon/reagent_containers/blood/OPlus, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"fv" = ( +/obj/structure/glowshroom/single, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"fw" = ( +/obj/item/weapon/gun/energy/laser/captain/scattershot, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"fx" = ( +/obj/effect/bump_teleporter{ + id = "mineintroup"; + id_target = "mineintrodown" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) +"fy" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) +"fz" = ( +/obj/structure/barricade/wooden, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) +"fA" = ( +/obj/structure/bed, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"fB" = ( +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"fC" = ( +/mob/living/simple_animal/hostile/poison/giant_spider/hunter, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"fD" = ( +/obj/structure/spider/stickyweb, +/obj/machinery/sleeper{ + icon_state = "sleeper-open"; + dir = 8 + }, +/mob/living/simple_animal/hostile/poison/giant_spider/hunter, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"fE" = ( +/obj/machinery/light/small, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) +"fF" = ( +/obj/item/slimepotion/fireproof, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"fG" = ( +/obj/machinery/door/airlock/medical{ + name = "Medical" + }, +/obj/structure/barricade/wooden, +/turf/open/floor/plasteel, +/area/awaymission/BMPship) +"fH" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"fI" = ( +/obj/structure/sign/bluecross{ + pixel_x = -32 + }, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) +"fJ" = ( +/obj/structure/grille, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"fK" = ( +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"fL" = ( +/obj/structure/sign/examroom{ + pixel_y = 32 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"fM" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"fN" = ( +/obj/machinery/door/airlock/external, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"fO" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) +"fP" = ( +/obj/structure/grille, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) +"fQ" = ( +/turf/open/floor/plasteel/elevatorshaft{ + name = "elevator flooring"; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) +"fR" = ( +/obj/structure/grille, +/obj/structure/barricade/wooden, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"fS" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/toxin, +/obj/item/weapon/storage/firstaid/toxin, +/obj/item/weapon/reagent_containers/blood/OPlus, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"fT" = ( +/obj/machinery/iv_drip, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"fU" = ( +/obj/effect/landmark{ + name = "awaystart" + }, +/turf/open/floor/plasteel/elevatorshaft{ + name = "elevator flooring"; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) +"fV" = ( +/turf/open/floor/plasteel/elevatorshaft{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + name = "elevator flooring"; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) +"fW" = ( +/obj/structure/girder, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) +"fX" = ( +/obj/structure/closet/crate/miningcar{ + name = "Mining cart" + }, +/obj/item/weapon/pickaxe{ + attack_verb = list("ineffectively hit"); + desc = "A pickaxe thats been left to rust."; + force = 1; + name = "rusty pickaxe"; + pixel_x = 5; + throwforce = 1 + }, +/obj/item/stack/sheet/mineral/adamantine{ + amount = 15 + }, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"fY" = ( +/obj/structure/table, +/obj/machinery/microwave, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"fZ" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) +"ga" = ( +/obj/structure/ladder/unbreakable{ + anchored = 1; + height = 2; + id = "mineintro" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) +"gb" = ( +/obj/structure/closet/secure_closet/freezer/kitchen, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"gc" = ( +/obj/item/stack/rods, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) +"gd" = ( +/obj/item/toy/beach_ball{ + desc = "Its a beachball with a face crudely drawn onto it with some soot."; + name = "wilson" + }, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"ge" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) +"gf" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"gg" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/box/donkpockets, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) +"gh" = ( +/obj/structure/table/reinforced, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) +"gi" = ( +/obj/structure/table/reinforced, +/obj/item/stack/rods, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) +"gj" = ( +/obj/machinery/door/airlock/mining{ + name = "Kitchen" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"gk" = ( +/obj/effect/landmark{ + name = "awaystart" + }, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"gl" = ( +/obj/item/trash/plate, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"gm" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"gn" = ( +/obj/item/weapon/grown/log, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"go" = ( +/obj/structure/chair/stool, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) +"gp" = ( +/obj/structure/table_frame, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) +"gq" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"gr" = ( +/obj/structure/table, +/obj/item/weapon/kitchen/fork, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"gs" = ( +/obj/item/device/assembly/igniter, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship{ + name = "\improper BMP Asteroid Level 2" + }) +"gt" = ( +/obj/structure/table_frame, +/obj/item/stack/sheet/metal, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"gu" = ( +/obj/item/stack/rods, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"gv" = ( +/obj/structure/table_frame, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"gw" = ( +/obj/structure/reagent_dispensers/beerkeg, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"gx" = ( +/obj/structure/table, +/obj/item/weapon/kitchen/fork, +/obj/item/trash/plate, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"gy" = ( +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"gz" = ( +/obj/machinery/door/airlock/external{ + name = "Mess Hall" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"gA" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) +"gB" = ( +/obj/machinery/mech_bay_recharge_port, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) +"gC" = ( +/obj/mecha/working/ripley/mining, +/turf/open/floor/plasteel/recharge_floor, +/area/awaymission/BMPship) +"gD" = ( +/mob/living/simple_animal/hostile/spawner/mining/hivelord, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) +"gE" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) +"gF" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical, +/obj/item/clothing/glasses/material, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) +"gG" = ( +/obj/structure/mecha_wreckage/durand, +/turf/open/floor/plasteel/recharge_floor, +/area/awaymission/BMPship) +"gH" = ( +/obj/structure/table, +/obj/item/mecha_parts/mecha_equipment/drill/diamonddrill, +/obj/item/weapon/paper{ + info = "
NOTICE!!


Although you may seem indestructible in a mech, remember, THIS SHIT ISN'T LAVA PROOF!! The boys have already had to deal with loosing the last two to salvage because the dumbass thought he could just wade through the lower lakes like it was nothing. The fact he even managed to get back without being fused with what was left of the mech is a miracle in itself. They're built to be resistant against extreme heat, not heat PROOF!


Robotics Team"; + name = "NOTICE!! paper" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"gI" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) +"gJ" = ( +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) +"gK" = ( +/obj/structure/girder, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"gL" = ( +/obj/item/stack/rods, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"gM" = ( +/obj/structure/mecha_wreckage/ripley, +/turf/open/floor/plasteel/recharge_floor, +/area/awaymission/BMPship) +"gN" = ( +/obj/structure/holohoop, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) +"gO" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) +"gP" = ( +/obj/item/toy/beach_ball/holoball, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) +"gQ" = ( +/mob/living/simple_animal/hostile/spawner/mining/basilisk, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) +"gR" = ( +/obj/structure/closet/crate/miningcar{ + name = "Mining cart" + }, +/obj/item/stack/sheet/mineral/mythril{ + amount = 12 + }, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) +"gS" = ( +/obj/structure/girder, +/turf/open/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) +"gT" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/basalt + }, +/area/awaymission/BMPship) +"gU" = ( +/obj/structure/holohoop{ + dir = 1 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/basalt; + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) +"gV" = ( +/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/floor/plating/asteroid/basalt{ + initial_gas_mix = "n2=23;o2=14" + }, +/area/awaymission/BMPship) + +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(8,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +dX +fx +fx +dX +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(9,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ae +ae +ae +ae +ae +ac +ac +ac +ac +ac +ac +ak +ak +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +dX +fy +fy +dW +bL +dW +dW +dW +dW +dW +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(10,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ak +ak +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +dW +fy +fy +dW +bL +dW +fy +fy +fy +dX +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(11,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ae +ae +ae +ae +ah +ah +ah +ah +ae +ae +ae +ae +ae +ae +ak +ak +ak +ak +ak +ak +ak +ac +ac +ac +ac +ak +ak +ak +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bc +bc +bc +bc +ae +ae +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 +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +dX +fy +fy +dX +bL +dX +fy +ga +fy +dX +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bM +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(12,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ae +ae +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +aj +ae +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ac +ac +ac +ac +ak +ak +ak +ak +ak +ak +ak +ac +ac +ac +ac +ac +ac +ac +ac +ac +ae +ae +ae +bc +bc +ae +bb +bx +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 +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +dt +dt +dt +du +dL +dK +du +dt +dt +du +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +dW +fy +fy +dX +bL +dW +fy +fy +fy +dW +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bM +bM +bM +bM +bM +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(13,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ae +aj +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ae +ae +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ac +ac +ac +ac +ac +ac +ac +ae +bc +ae +bg +ae +bc +bc +ae +bc +bc +bc +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 +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +dt +dx +dE +dI +dM +dP +dI +dG +dA +du +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +dW +fy +fy +dW +bL +dW +bV +bV +bV +dW +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bM +bM +bM +bM +bM +bM +bM +bM +bM +bM +bL +bL +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(14,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ae +ae +ae +ah +ah +ah +ah +ah +ae +ae +ae +ae +ah +ah +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ac +ac +ac +ac +ac +bb +ae +ae +ae +ae +bc +ae +bb +ae +ae +bc +bc +bc +bg +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +ab +bJ +ab +bJ +ab +bJ +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +du +dy +dy +dJ +dM +dM +dt +dy +dB +du +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +dX +fz +fz +dW +bL +cG +bV +bV +bV +cG +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bM +bM +bM +bM +bM +bM +bM +bM +bM +bM +bM +bL +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(15,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ae +ae +ah +ah +ah +ah +ae +ae +ae +ae +ae +ae +ae +ah +ah +ah +ah +ah +ah +ae +ae +ae +ae +ae +ae +ae +ae +ae +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ac +ac +ac +ac +aJ +bc +bb +bc +ae +ac +ac +bc +ae +ae +bt +bc +bc +ae +bc +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +ab +bJ +ab +bJ +ab +bJ +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bJ +ab +ab +bJ +ab +ab +aa +aa +aa +aa +aa +aa +aa +bL +bL +bL +bL +bL +bL +bL +bL +bL +bV +bV +bL +bL +bL +bL +bL +bL +bL +du +dz +dF +du +dM +dM +dt +dY +dz +dt +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +dX +fy +fy +dW +bV +bV +bV +bV +bV +cj +bV +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bM +bM +bM +bM +bM +bM +bM +bM +bM +bM +bM +bL +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(16,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ae +ae +ae +ah +ah +ah +ah +ae +ae +ae +ae +ac +ac +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ae +ae +ae +ae +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ac +ac +ac +ac +ae +aJ +ac +ac +ac +ac +ac +ac +ae +bc +bc +bc +by +bB +ae +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +ab +ab +bJ +ab +bJ +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bJ +bJ +bJ +bJ +bJ +ab +ab +aa +aa +aa +aa +aa +aa +aa +bL +bL +bL +bL +bL +bL +bL +bL +bV +bV +bV +bV +bL +bL +bL +bL +bL +bL +du +du +du +dt +dN +dM +du +du +du +dt +bL +bL +bL +bL +bL +bL +bL +bL +bV +bV +bV +fp +bV +bV +fp +cj +bV +bV +bV +bV +bV +bV +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bM +bM +bM +bM +bM +bM +bM +bM +bM +bM +bM +bL +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(17,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ae +ae +ae +ah +ah +ah +ah +ae +aj +ac +ac +ac +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +aj +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ac +ac +ac +ac +ac +ac +ae +bc +bc +ae +bt +bc +ae +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 +bJ +ab +ab +aa +aa +aa +aa +aa +aa +aa +bL +bL +bL +bL +bL +bL +bL +bV +bV +cy +bV +bV +bV +bL +bL +bL +bL +bL +du +dA +dG +dI +dO +dP +dI +dZ +el +dt +bL +bL +bL +bL +bL +bL +bL +bV +bV +bM +bM +bM +bV +bV +bV +bV +bV +bV +bV +bV +bM +bM +bM +bM +bM +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bM +bM +bM +bM +bM +bM +bM +bM +bM +bM +bM +bL +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(18,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ae +ae +ah +ah +ah +ah +ae +ae +ac +ac +ac +ac +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ac +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +aj +ae +ae +ae +ae +ac +ac +ac +ac +ac +ac +ac +ac +ae +bg +bc +bc +bu +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +ab +bJ +bJ +bJ +bJ +bJ +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bJ +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +bL +bL +bL +bL +bL +bL +bV +bV +bV +cz +bV +bV +bV +bL +bL +bL +bL +bL +du +dB +dy +dK +dP +dM +dR +ea +dy +dt +bL +bL +bL +bL +bL +bL +bV +bV +bM +bM +bM +bM +bM +bM +bM +bM +bM +bV +bV +bV +bV +bM +bM +bM +bM +bM +bM +bM +bM +bM +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +bL +bM +bM +bM +bM +bM +bM +bM +bM +bL +bL +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(19,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ae +ae +ah +ah +ah +ah +ae +ae +ac +ac +ac +ac +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ac +ac +ac +ac +ac +ac +ac +ac +bu +ae +ae +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +ab +bJ +ab +bJ +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bJ +ab +bJ +ab +bJ +ab +ab +aa +aa +aa +aa +aa +aa +aa +bL +bL +bL +bL +bL +bL +bV +bV +bV +bV +bV +bV +cj +bL +bL +bL +bL +bL +dt +dz +dH +dt +dM +dP +dK +dF +dz +dt +bL +bL +bL +bV +bV +bV +bV +bM +bM +bM +bM +bL +bL +bL +bL +bL +bL +bV +bV +bV +bV +bL +bL +bM +bM +bM +bM +bM +bM +bM +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +bL +bM +bM +bM +bM +bM +bM +bM +bM +bL +bL +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(20,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ae +ae +ah +ah +ah +ah +ae +ae +ae +ac +ac +ac +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ae +ae +ac +ac +ac +ac +ac +ac +ac +ak +ak +ak +ak +ak +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +ab +ab +bJ +ab +bJ +bJ +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bJ +ab +bJ +ab +bJ +ab +ab +aa +aa +aa +aa +aa +aa +aa +bL +bL +bL +bL +bL +bL +bL +bV +cj +bV +bV +bV +bV +bV +bL +bL +bL +bL +dt +dt +du +du +dM +dS +dt +dt +dt +du +bL +bL +bV +bV +bM +bM +bM +bM +bM +bL +dX +dW +dX +dW +dW +dW +dX +bL +bL +bV +bV +bL +bL +bL +bL +bL +bL +bL +bM +bM +bM +bM +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +bL +bM +bM +bM +bM +bM +bM +bL +bL +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(21,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ae +ae +ah +ah +ah +ah +ae +ae +ae +ae +ae +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ah +ah +ah +ah +ah +ae +ae +ae +ae +ae +ah +ah +ah +ah +ah +ah +ah +ae +ae +ae +ae +ae +ae +ae +ak +ak +ak +ac +ak +ak +ak +ak +ak +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 +bJ +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bV +da +bL +bL +bL +bL +dt +dC +dE +dI +dM +dT +dV +eb +em +du +bV +bV +bV +bM +bM +bM +bM +bM +bL +bL +dW +fq +fA +dW +fK +fS +dX +bL +bL +bV +bV +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bM +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bM +bM +bM +bL +bL +bL +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(22,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ae +aj +ah +ah +ah +ah +ah +ah +ah +ae +ae +aj +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ae +ah +ah +ah +ah +ah +ah +ae +ae +ae +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ae +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +ab +bJ +bJ +bJ +bJ +bJ +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bV +da +da +bL +bL +bL +dt +dy +dy +dt +dQ +dQ +dt +ec +en +ee +bV +bL +bL +bM +bM +bM +bL +bL +bL +bL +dW +fr +fB +dW +fL +ev +dX +bL +bL +bV +bV +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bM +bM +bM +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +bL +bM +bM +bM +bL +bL +bL +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(23,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ae +ae +ae +ae +ae +ah +ah +ah +ah +ae +ae +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ae +ae +ac +ac +ac +ah +ah +ah +ah +ah +ae +aj +ae +ae +ae +ak +ak +ak +ak +ak +ak +ak +ak +ak +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +ab +bJ +ab +ab +ab +bJ +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bJ +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +da +bL +bL +bL +dt +dD +dF +dt +dR +dR +dt +ed +eo +ep +ef +bM +bM +bM +bM +bL +bL +bL +bL +bL +dX +fs +fC +fG +fB +fT +dX +bL +bL +cj +bV +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bM +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(24,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ae +ae +ae +ae +ah +ah +ah +ah +ae +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ae +ae +ae +ac +ac +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +ab +ab +bJ +bJ +bJ +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bJ +bJ +bJ +bJ +bJ +ab +ab +aa +aa +aa +aa +aa +aa +aa +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bV +bV +bV +bV +du +du +du +dt +dQ +dQ +du +ee +ep +et +bV +bM +bM +bM +bL +bL +bL +bL +bL +bL +dW +ft +ev +dW +fM +ev +dW +bL +bL +bV +bV +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bM +bM +bM +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(25,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ac +ac +ac +ac +ah +ah +ah +ah +ah +ah +ah +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +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 +bJ +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bV +bV +bV +bV +bV +bV +cx +cx +cx +bV +bV +ef +eu +bM +bM +bM +bM +bV +bV +bV +bL +bL +bL +dX +fu +fD +dX +ev +fB +dW +bL +bL +bV +bV +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bM +bM +bM +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(26,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ae +ae +ae +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +aj +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ac +ac +ac +ac +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ac +ac +ac +ac +ae +ae +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 +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bM +bM +bV +bV +bV +cx +cx +cx +cj +bV +bM +bM +bM +bV +bV +cj +cx +cx +cx +cx +cx +dW +dX +dX +dW +fN +dW +dX +bL +bL +bV +bV +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bM +bM +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(27,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ae +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ac +ac +ac +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ac +ac +ac +ac +ae +ae +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 +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bM +bM +bM +bV +bV +bV +bV +bV +ef +bV +bM +bM +bM +bV +bV +bV +bV +cx +cx +cx +cx +cx +cx +bV +fH +ej +fH +bV +bL +bL +bV +bV +bV +bV +bV +bV +bV +bV +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(28,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ae +ae +ae +ae +ae +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ac +ac +ac +ah +ah +ae +ae +ae +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ac +ae +ae +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 +bL +bL +bL +bL +bL +bL +cg +cg +cg +cg +cg +cg +cg +cg +bL +bL +bM +bM +bM +bM +bM +bV +bM +bM +bM +bM +bM +bM +bM +bL +bL +eQ +eQ +bV +bV +bV +ff +cx +cx +cx +dW +fN +dX +bV +bL +bL +bL +bV +bV +bV +bV +bV +bV +bV +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(29,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ae +aj +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ac +ac +ac +ah +ah +ae +ae +ac +ac +ae +ae +ae +ae +ae +ae +ah +ah +ah +ah +ah +ac +ae +ae +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 +bL +bL +bL +bL +bL +bL +ch +cr +cA +cM +cR +cV +cr +cg +bL +bL +bL +bL +bM +bM +bM +bM +bM +bM +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +dW +bV +cx +cx +fI +bV +bV +bV +bV +bL +bL +bL +bV +bV +bV +bV +bV +bV +bV +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bM +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(30,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ac +af +ac +ac +ac +ac +ak +ak +ak +ak +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ac +ac +ac +ah +ah +ae +ae +ae +ac +ac +ac +ac +ac +ae +ae +ah +ah +ah +ah +ah +ac +ae +ae +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 +bL +bL +bL +bL +bL +bL +ch +cs +cB +cN +cS +cW +cB +cg +bL +bL +bL +bL +bL +bM +bM +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bV +cx +cx +bV +bV +bV +bV +bV +bL +bL +bL +bL +bL +bL +bL +bL +cj +bV +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bM +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(31,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ac +ae +ac +ac +ac +ak +ak +ak +ak +ak +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +aj +ac +ac +ah +ah +ah +ah +ah +ae +ac +ac +ac +ac +ac +ac +ae +ah +ah +ah +ah +ah +ac +ae +ae +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 +bL +bL +bL +bL +bL +cg +cg +ct +cC +cO +cT +cX +db +cg +cg +bL +bL +bL +bL +bM +bL +bL +bL +bL +bL +bL +dX +dX +dW +dW +dW +dW +dW +bL +bL +bL +fg +bV +cx +cx +cx +cx +bV +bV +bV +bL +bL +bL +bL +bL +bL +bL +bL +bV +bV +bL +bL +bL +bL +bL +bL +bL +bM +bL +bL +bL +bL +bL +bM +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(32,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ae +ae +ac +ac +ak +ak +ak +ak +ak +ak +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ac +ah +ah +ah +ah +ah +ae +ac +ac +ac +ae +ae +ae +ae +ae +ac +ac +ah +ah +ac +ae +ae +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 +bL +bL +bL +bL +bL +cg +cn +cu +cD +cu +cn +cY +cn +dd +cg +bL +bL +bL +bL +bM +bL +bL +bL +bL +bL +bL +dX +ex +eD +eD +eD +eD +dX +bL +bL +bL +fg +bV +bV +cx +cx +cx +cx +bV +bV +bL +bL +bL +bL +bL +bL +bL +bL +bV +bV +bL +bL +bL +bL +cx +ej +bV +bM +bM +bV +bV +ej +bM +bM +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(33,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ae +ae +ac +ac +ak +ak +ak +ak +ak +ak +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ae +ah +ah +ah +ah +ah +ae +ac +ac +ac +ae +ac +ac +ae +ae +ac +ac +ah +ah +ac +ae +ae +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 +bL +bL +bL +bL +bL +ch +co +cv +cv +cn +cn +cn +cn +de +ch +bL +bL +bL +bL +bM +bM +bL +bL +bL +bL +bL +dW +ey +ev +ev +ev +eR +dX +bL +bL +bL +bV +bV +bV +bV +bV +cx +cx +bV +bV +bV +bV +bV +bL +bL +bL +bL +bL +bV +bV +bL +bL +bL +bL +cx +cx +ej +bV +bM +bV +bM +bM +bM +bM +bM +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(34,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ae +ae +ac +ak +ak +ak +ak +ak +ak +ak +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +aN +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ah +ah +ah +ah +ah +ae +ac +ac +ae +aj +ac +ac +ae +ae +ae +ae +ah +ah +ae +ae +ae +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 +bL +bL +bL +bL +bL +ch +cp +cn +cE +cn +cn +cZ +cn +df +ch +bV +bL +bL +bL +bL +bM +bL +bL +bL +bL +bL +dX +ez +eE +ev +ev +eS +dX +bL +bL +bL +bV +bV +bV +bV +bV +cx +cx +cx +cx +cx +cx +bV +bV +bV +bV +bV +bV +cj +bV +bL +bL +bL +dW +gN +cx +ej +bV +bM +bM +bM +bV +cx +gU +dW +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(35,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ae +ac +ac +ak +ak +ak +ak +ak +ak +ak +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ae +ae +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ah +ah +ah +ah +ah +ae +ae +bh +ae +ac +ac +ac +ae +ae +ae +ae +ah +ah +ae +ae +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 +bL +bL +bL +bL +bL +ch +cg +cw +cg +cP +cP +cg +cF +cg +cg +bV +bL +bL +bL +bL +bM +bL +bL +bL +bL +bL +dX +eA +ev +ev +ev +eT +dW +bL +bV +bV +ff +bV +bV +bV +bV +fO +cx +cx +cx +cx +bV +bV +ff +bV +bV +bV +bV +bV +bL +bL +bL +bL +bL +cx +gP +cx +ej +bV +bV +bV +ej +cx +cx +bL +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(36,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ae +ac +ac +ak +ak +ak +ak +ak +ak +ak +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ae +ae +ae +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ah +ah +ah +ah +ah +ae +ae +ae +ac +ac +ac +ae +bh +ac +ac +ac +ah +ah +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 +bL +bL +bL +bL +bL +bV +bV +bV +ci +cF +cr +cr +cF +bV +bV +bV +bV +bL +bL +bL +bL +bM +bL +bL +bL +bL +bL +dX +ev +ev +ev +ev +ev +eF +eG +eG +eG +eF +bV +bV +bV +bV +dW +cx +cx +bV +bV +bV +bV +dW +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +cx +cx +cx +fO +cx +bV +gT +cx +cx +cx +bL +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(37,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ae +ac +ac +ak +ak +ak +ak +ak +ak +ak +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ae +ah +ah +ah +ae +ac +ac +ac +ac +ac +ae +ac +ac +ah +ah +ah +ah +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 +bL +bL +bL +bV +bV +bV +ci +bV +bV +ch +cP +cP +ch +bV +bV +bV +bL +bL +bL +bL +bL +bV +bV +bL +dW +dX +dX +dX +eB +dW +eH +eL +ev +eW +eN +eJ +eO +fh +bV +bV +bV +bV +bV +cx +cx +bV +bV +bV +bV +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bV +fP +fP +fP +dW +cx +cx +dW +fP +bL +bL +bL +bL +bM +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(38,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ae +ae +ac +ac +ak +ak +ak +ak +ak +ak +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +aH +aJ +aI +aJ +aJ +ae +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ae +ae +ah +ah +ae +ac +ac +ac +ac +ac +ae +ac +ac +ah +ah +ah +ah +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 +bL +bL +bL +bV +bV +bV +bV +bV +bV +cG +cx +cx +cG +bV +bV +bV +bV +bV +bL +bL +bL +bV +bV +bL +dW +eg +eq +ev +ev +eF +eF +eF +eG +eG +eX +eJ +eJ +fh +bV +bV +bV +bV +bV +cx +cx +bV +cj +bV +bV +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +cj +bV +bV +bV +cG +cx +cx +cG +bV +bL +bL +bL +bL +bM +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(39,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ae +ae +ac +ac +ac +ak +ak +ak +ak +ac +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +aH +aK +aK +aO +aH +aQ +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ae +ae +ah +ah +ae +ae +ac +ac +ac +ae +ae +ac +ac +ac +ah +ah +ah +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 +bL +bL +bL +bV +bV +bV +bV +bV +bV +bV +cx +cx +bV +bV +bV +bV +bV +bV +bL +bL +bL +bV +bV +bL +dX +eh +ej +eg +ev +eF +eI +eM +eU +eG +eY +eJ +eJ +eF +fh +eF +bV +bV +bV +cx +cx +bV +bV +bV +bV +bV +bV +bV +bL +bL +bL +bL +bL +bL +bV +bV +bV +gQ +bV +bV +cx +cx +bV +bV +bL +bL +bL +bL +bM +bM +bM +bM +bV +bV +bV +bV +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(40,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ac +ae +ac +ac +ac +ak +ak +ak +ak +ac +ae +ae +ae +ae +ae +ah +ae +ae +ae +ae +ah +ah +ae +ae +aI +aK +aM +aK +aI +ae +ae +ae +ae +ae +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ah +ah +ah +ah +ah +ae +ac +ac +ac +ae +ae +ae +ag +aJ +ac +ah +ah +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 +bL +bL +bL +bV +bV +bZ +bV +bV +bV +bV +cx +cx +bV +bV +bV +bZ +bV +bV +bL +bL +bL +bV +bV +bL +dX +ei +er +ej +ev +eG +eJ +eN +eJ +eF +eZ +eJ +eJ +fi +fm +fi +cx +cx +cx +cx +cx +bV +bV +bV +bV +bV +bV +bV +bV +bV +bV +bV +bV +bV +bV +cx +cx +cx +cx +cx +cx +cx +bV +bL +bL +bL +bV +bV +gV +bV +bM +bM +bM +bM +bV +bV +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(41,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ae +ae +ae +ac +ac +ac +ac +ac +ac +ac +ac +ae +aj +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +aJ +aL +aK +aK +aJ +ae +ae +ae +ae +ae +aN +ae +ae +ae +ae +ae +ah +ah +ah +ah +ah +ah +ae +ae +ae +ah +ah +ah +ah +ah +ae +ac +ac +ac +bo +bv +ac +ag +ag +aJ +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 +bL +bL +bL +bV +bV +bV +bV +bV +bV +cx +cx +cx +bV +bV +bV +bV +bV +bV +bV +bL +bL +bV +bV +bL +dX +ej +ej +ev +ev +eG +eJ +eO +eJ +eF +fa +eJ +eJ +eF +fh +eF +bV +bV +bV +cx +cx +cx +cx +cx +cx +cx +cx +bV +cx +cx +cx +cx +cx +cx +cx +cx +cx +cx +cx +cx +cx +bV +bV +bV +bV +bV +bV +bV +bV +bV +bV +bL +bM +bM +bL +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(42,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ac +ae +ag +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ae +ae +ae +ae +ah +ah +ae +ae +ae +ae +ae +aH +aJ +aI +aH +aH +ae +ae +ae +ah +ah +ah +ae +ae +ae +aj +ae +ae +ae +ae +ah +ah +ae +ae +ae +ah +ah +ah +ah +ah +ah +ae +ac +ac +ak +ak +ac +ac +aJ +ag +aJ +aJ +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 +bL +bL +bL +bV +bV +bV +bV +bV +bV +cx +cx +bV +bV +bV +bV +bV +bV +bV +bV +bL +bL +bV +bV +bL +dW +ek +es +ew +eC +eF +eJ +eJ +eJ +eJ +eJ +eJ +eN +fh +bV +bV +bV +bV +bV +cx +cx +cx +cx +cx +cx +cx +cx +cx +cx +cx +cx +cx +cx +cx +cx +cx +bV +fg +fg +gR +bV +bV +bV +bV +bV +bV +bV +bL +bL +bL +bL +bL +bM +bM +bM +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(43,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ac +ag +ag +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ae +ae +ah +ah +ah +ah +ah +ah +ah +ae +ae +ae +ae +ae +ae +ae +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ae +ae +ae +ae +ae +ae +ah +ah +ah +ah +ah +ah +ah +ae +ac +ac +ak +ak +ac +ac +aJ +bC +bC +aJ +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 +bL +bL +bL +bV +bV +bV +bV +bV +bV +cx +cx +bV +bV +bV +bV +bV +bV +bV +bV +bL +bL +bV +bV +bV +dW +dW +dX +dX +dW +eF +eK +eP +eV +eF +eJ +eJ +eJ +fh +bV +bV +bV +ff +bV +cx +cx +bV +ff +bV +bV +bV +cx +cx +bV +bV +bV +bV +bV +bV +bV +bV +bV +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bM +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(44,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ac +ag +ag +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ae +ae +ae +ae +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ae +ak +ak +ak +ak +ac +ac +aJ +bD +bF +aJ +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 +bL +bL +bL +bV +bZ +bV +bV +bV +cx +cx +cx +bV +bV +bV +bV +bV +bV +bV +bL +bL +bV +bV +bV +bV +bV +bV +bV +bV +bL +eF +eF +eF +eG +eG +eF +eF +eF +eG +bV +bV +bV +dW +fP +cx +cx +fJ +dW +bV +bV +bV +cx +cx +bV +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bM +bM +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(45,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ae +ae +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ae +aj +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ah +ah +ah +ah +ah +ae +ae +ae +ae +ak +ak +ak +ac +ac +ac +aJ +aJ +aJ +aJ +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 +bL +bL +bL +bL +bV +bV +cj +bV +cx +cx +bV +bV +bZ +bV +bV +bV +bV +bV +bL +bL +bV +bV +bM +bM +bM +bM +bV +bV +bL +bL +bL +bL +bL +bL +bL +bL +bV +cG +bV +cj +bV +fJ +fQ +fQ +fQ +fQ +fJ +bV +bV +bV +cx +cx +bV +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bM +bM +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(46,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ae +ae +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ae +ae +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ah +ae +ae +ae +ae +ae +ae +ae +ae +ak +ak +ak +ac +ac +ac +ac +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 +bL +bL +bL +bL +bV +bV +bV +bV +cx +cx +bV +bV +bV +bV +bV +bV +bV +bV +bL +bV +bV +bV +bM +bM +bM +bM +bM +bM +bV +bV +bV +bL +bL +bL +bL +bL +bV +bV +bV +bV +bV +fJ +fQ +fQ +fQ +fQ +fJ +bV +bV +bV +bV +cx +cx +bV +bV +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bM +bM +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(47,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ae +ae +ae +aj +ae +ae +ae +ae +ae +ac +ac +ac +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +aN +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ae +ac +ak +ak +ak +ae +ae +ae +ak +ak +ak +ac +ac +ac +ac +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 +bL +bL +bL +bL +bV +bV +bV +bV +cx +cx +bV +bV +bV +cj +bV +bL +bL +bL +bL +bV +bV +bM +bM +bM +bM +bM +bM +bM +bM +bM +bV +bV +bL +bL +bL +bL +bV +bV +bV +bV +bV +fJ +fQ +fU +fQ +fQ +fJ +bV +bV +bV +bV +cx +cx +cx +cx +bV +bL +bL +bL +bL +bM +bM +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bM +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(48,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ac +ac +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ae +ac +ak +ak +ak +ae +ae +ae +ak +ak +ak +ak +ak +ak +ac +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 +bL +bL +bL +bL +bL +bV +bV +bV +cx +bV +bV +bV +bL +bL +bL +bL +bL +bL +bL +bV +bM +bM +bM +bM +bM +bM +bM +bM +bM +bM +bM +bM +bM +bL +dW +bV +bV +bV +cj +bV +bV +fJ +fQ +fQ +fV +fQ +fJ +bV +bV +bV +bL +dW +ge +cx +cx +bV +bL +bL +bL +bM +bM +bM +bM +bM +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bM +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(49,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ac +ae +ae +ae +ae +ah +ah +ah +ah +ah +ae +ae +ac +ac +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ae +ae +ae +ak +ak +ac +ae +ae +ak +ak +ak +ak +ak +ak +ac +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 +bL +bM +bM +bL +bL +bV +bV +bV +bV +bV +bV +bV +bL +bL +bL +bL +bL +bL +bL +bV +bM +bM +bM +bM +bM +bM +bM +bM +bM +bM +bM +bM +bM +ca +cG +bV +bV +bV +bV +bV +fE +dW +fJ +fJ +fJ +fJ +dW +ge +bV +bV +bL +bL +bV +bV +cx +cx +bV +bL +bL +bL +bM +bM +bM +bM +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bM +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(50,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ac +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ac +ac +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +aj +ae +ae +ae +ak +ak +ae +ae +ac +ac +ac +ak +ak +ak +ak +ak +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 +bL +bM +bM +bL +bL +bL +bV +bV +bV +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bV +bM +bM +bM +bM +bM +bM +bM +bM +bM +bM +bM +bM +bM +ca +bV +bV +bL +bL +fg +fg +bV +bV +bV +bV +bV +bL +bL +bL +bL +bL +bL +bL +bL +bV +cx +cx +bV +bL +bL +bL +bM +bM +bM +bM +bM +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bM +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(51,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ae +ae +ae +ah +ah +ah +ae +ae +ae +ah +ah +ah +ac +ac +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ae +ae +ae +ae +ak +ak +ae +be +ac +ac +ac +ac +ac +ak +ak +ak +ak +ak +ak +ak +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 +bL +bL +bL +bV +bV +bV +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bV +bM +bM +bM +bM +bM +bM +bM +bM +bM +bM +bM +bM +bM +ca +bV +bV +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bV +cx +cx +bV +bL +bL +bL +bL +bM +bM +bM +bM +bM +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(52,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ae +ae +ah +ah +ah +ah +ae +ae +ae +ah +ah +ah +ac +ac +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ae +ae +ae +ae +ak +ae +ae +ae +ac +ac +ac +ac +ac +ac +ac +ac +ak +ak +ak +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 +bL +bM +bM +bL +bL +bL +bV +bV +bV +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bV +bM +bM +bM +bM +bM +bM +bM +bM +bM +bM +bM +bM +bM +ca +bV +bV +bL +bL +bL +bL +bL +bL +bL +bL +dX +dW +dW +dX +dX +dX +dW +dX +dW +dW +cx +cx +bV +bL +bL +bL +bL +bL +bM +bM +bM +bM +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(53,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ae +ae +ah +ah +ae +ae +ae +ae +ae +ah +ah +ah +ac +ac +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ac +ak +ak +ak +ak +ae +ae +ac +ac +ac +ac +ac +ac +ac +ac +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 +bL +bM +bM +bL +bL +bL +bV +bV +bV +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bV +bM +bM +bM +bM +bM +bM +bM +bM +bM +bM +bM +bM +bM +ca +bV +bV +bL +bL +bL +bL +bL +bL +bL +bL +dX +fY +gb +dX +gl +ev +ev +fN +ej +gz +cx +cx +bV +bL +bL +bL +bM +bM +bM +bM +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(54,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ae +ae +ah +ah +ae +ae +ae +ae +ae +ah +ah +ah +ac +ac +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ae +ak +ak +ak +ak +ae +ae +ae +ac +ac +ac +ac +ac +ac +ac +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 +bL +bM +bM +bM +ca +bV +bV +bV +bV +bV +bV +bL +bL +bL +bL +bL +bL +bL +bL +bV +bM +bM +bM +bM +bM +bM +bM +bM +bM +bM +bM +bM +bM +ca +bV +bV +bL +bL +bL +bL +bM +bM +bM +bM +fW +fZ +ev +gf +gm +ev +ev +fN +ej +gz +cx +cx +bV +bL +bL +bL +bM +bM +bL +bL +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(55,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ae +ae +ah +ah +ae +ae +ae +ah +ah +ah +ac +ac +ac +ac +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ae +ae +ae +ae +ae +ae +ac +ac +ac +ak +ak +ac +ac +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 +bL +bM +bM +bM +bM +ca +bV +bV +bV +bV +cj +bV +bL +bL +bL +bL +bL +bL +bL +bV +bM +bM +bM +bM +bM +bM +bM +bM +bM +bM +bM +bM +bM +ca +bV +bV +bL +bL +bL +bM +bM +bM +bM +bM +bM +fZ +gc +gg +fZ +ev +gm +dW +dX +dW +gA +cx +bV +bV +bM +bM +bM +bL +bL +bL +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(56,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ae +ae +ah +ah +aj +ae +ae +ah +ah +ah +ac +ac +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ae +ac +ak +ak +ac +ac +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 +bL +bM +bM +bM +bM +ca +bV +bV +bV +bV +bV +bV +bV +bV +bV +bV +bV +bL +bL +bL +bL +bM +bM +bM +bM +bM +bM +bM +bM +bM +bM +bM +bL +bL +bV +bV +bL +bL +bL +bM +bM +bM +bM +bM +bM +bM +fZ +gh +bM +go +gq +gw +fH +bV +bV +cx +cx +bV +bM +bM +bM +bM +bL +bM +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(57,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ae +ae +ah +ah +ae +ae +ae +ah +ah +ah +ac +ac +ah +ah +ah +ah +ae +ae +ae +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ac +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ae +ae +ae +ae +ac +ac +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 +bL +bM +bM +bM +bM +bM +bL +bL +bL +bL +bV +bV +bV +bV +cj +bV +bV +bL +bL +bL +bL +bL +ca +ca +ca +ca +ca +bL +bM +bM +bM +bM +bL +bV +bV +bV +bL +bL +bL +bL +bL +bM +bM +bM +bM +bM +bM +bM +bM +gp +gt +gx +fH +bV +bV +cx +cx +bM +bM +bM +bM +bM +bM +bM +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(58,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ae +ae +ah +ah +ae +ae +ae +ae +ae +ae +ac +ac +ah +ah +ah +ah +ae +aj +ae +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ac +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ae +ae +ae +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 +bL +bM +bM +bM +bM +bM +bL +bL +bL +bL +bV +bV +bV +bV +bV +bV +bV +bV +bV +bV +bV +bV +bV +bV +bV +bV +bV +bL +bL +bL +bL +bL +bV +bV +bV +bV +bL +bL +bL +bL +bL +bM +bM +bM +bM +fZ +fZ +gi +fZ +fZ +gq +gy +fH +cj +bV +bV +cx +cx +cx +bM +bM +bM +bM +bM +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(59,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ae +ae +ah +ah +ah +ae +ae +ae +ae +ac +ac +ac +ah +ah +ah +ah +ae +ae +ac +ae +ae +ae +ae +ae +ae +ae +ae +ah +ah +ah +ah +ah +ae +ae +ah +ah +ah +ah +ah +ah +ah +ae +ae +ae +ac +ac +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ae +ae +ae +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 +bL +bM +bM +bM +bM +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +bV +bV +bV +bV +bV +bV +bV +bV +bV +bV +bV +bV +bV +cj +bV +bV +bV +bV +bV +bV +bV +bL +bL +bL +bL +bL +bM +bM +bM +bM +bM +fZ +dW +fZ +gq +gu +gq +dX +bL +bL +bL +bL +bL +bV +bM +bM +bV +fN +fH +bM +bM +bL +bL +bL +bL +bL +bL +bL +bM +bM +bM +bL +bM +bM +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(60,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ae +ae +ae +ah +ah +ac +ac +ac +ac +ac +ah +ah +ah +ah +ah +ah +ae +ae +ac +ac +ac +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +aj +ae +ae +ah +ah +ah +ah +ah +ah +ae +ae +ae +ac +ac +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +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 +bL +bM +bM +bM +bM +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +bV +bV +bV +bV +bV +cj +bV +bV +dU +bV +bV +bV +bV +bV +bV +bV +bV +bV +bV +bV +bL +bL +bL +bL +bL +bL +bM +bM +bM +bM +bM +fZ +gj +ev +gr +gv +gt +dW +bL +bL +bL +bL +bL +bV +bV +fH +ej +ej +fH +bM +bM +bM +bL +bL +bL +bL +bL +bL +bM +bM +bM +bM +bM +bM +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(61,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ac +ae +ae +ah +ah +ac +ac +ac +ac +ac +ah +ah +ah +ae +ae +ae +ae +ae +ak +ak +ak +ak +ak +ac +ac +ac +ae +ae +ae +ae +ae +ae +ae +ae +ae +ah +ah +ah +ae +ae +ae +ae +ae +aU +ak +ac +ac +ac +ae +ae +ae +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +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 +bL +bM +bM +bM +bM +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bV +bV +bV +bV +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bM +bM +bM +bM +fZ +fW +ev +gq +gm +gq +dW +bL +bL +bL +bL +dW +gK +dW +dX +fN +fN +dX +bM +bM +bM +bL +bL +bL +bL +bL +bM +bM +bM +bM +bM +bM +bM +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(62,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ac +ae +ae +ah +ah +ah +ah +ac +ac +ac +ah +ah +ah +ae +ae +ae +ae +ac +ac +ak +ak +ak +ak +ak +ak +ac +ac +ac +ak +ak +ak +ak +ac +ac +ac +ah +ah +ah +ae +ae +aU +ae +ae +aJ +ak +ac +ac +ac +ak +ak +ak +ae +ae +ae +ae +ae +ae +ae +ae +ah +ah +ah +ae +ae +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 +bL +bM +bM +bM +bM +bM +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bM +bM +bM +bM +bM +dW +dX +dW +dW +dX +dX +bL +bV +dW +dX +dW +gL +ej +ej +bV +ej +dX +bM +bM +bM +bL +bL +bL +bL +bL +bM +bM +bM +bM +bM +bM +bM +bM +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(63,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ac +ae +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ac +ac +ac +ac +ac +ac +ac +ac +ak +ak +ak +ak +ak +ak +ak +ak +ak +ac +ac +ac +ah +ah +ah +ae +ae +aJ +ae +aK +aJ +ak +ac +ac +ac +ak +ak +ak +ak +ak +ak +ac +ac +ac +ae +ae +ah +ah +ah +ah +ae +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 +bL +bM +bM +bM +bM +bM +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bM +bM +bM +bM +bM +bL +bL +bL +bL +bL +bL +bV +bV +fZ +gF +gH +ej +ej +bV +bV +bV +gS +bM +bM +bV +bV +bV +bL +bL +bL +bL +bM +bM +bM +bM +bM +bM +bM +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(64,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ae +ae +ah +ah +ah +ah +ah +ah +ah +ae +ae +ae +ae +ac +ac +ac +ah +ah +ah +ah +ah +ah +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ah +ah +ah +ae +ae +aJ +aW +aW +aJ +ac +ac +ac +ac +ac +ac +ak +ak +ak +ak +ac +ac +ae +ae +ae +ah +ah +ah +ah +ae +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 +bL +bM +bM +bM +bM +bM +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bV +bV +bV +bV +fZ +gI +fZ +gD +eu +eu +bM +bM +bM +bM +bV +cj +bV +bL +bL +bL +bL +bM +bM +bM +bM +bM +bM +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(65,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ae +ae +ae +ah +ah +ah +ah +ah +ah +ae +ae +ae +ae +ac +ac +ae +ae +ae +ae +ae +ah +ah +ah +ah +ah +ah +ac +ac +ac +ac +ac +ac +ac +ah +ah +ah +ae +aT +aJ +aK +aK +aH +ac +ac +ac +ac +ac +ac +ak +ak +ac +ac +ac +ae +ae +ah +ah +ah +ah +ah +ah +ae +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 +bL +bL +bL +bL +bL +bM +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bM +bM +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bV +bV +bV +bV +gD +fZ +fZ +fZ +bV +bV +bV +bM +bM +bM +bM +bV +bV +bV +bL +bL +bL +bL +bM +bM +bM +bM +bM +bM +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(66,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ae +ae +ae +ae +ae +ae +aj +ae +ae +ae +ac +ac +ac +ac +ae +ae +ae +ae +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ac +ah +ah +ah +ah +ae +ae +ae +ae +aJ +aK +aK +aH +ac +ac +ac +ac +ac +ac +ak +ak +ae +ae +ae +ae +ae +ah +ah +ah +ah +ah +ah +ae +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 +bL +bL +bL +bL +bL +bM +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bM +bM +bM +bM +bL +bL +bL +bL +bL +bL +bM +bM +bM +bM +bM +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bV +fW +gB +fZ +gB +gJ +fZ +fZ +bM +eu +bV +bV +bM +bV +bV +bV +bV +bL +bL +bL +bL +bM +bM +bM +bM +bM +bM +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(67,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ae +ae +ae +ae +ae +ae +ae +ac +ac +ac +ac +ac +ac +ac +ac +ac +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ae +ak +aH +aK +aK +aJ +ac +ac +ac +ac +ac +ae +ae +ae +ae +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +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 +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bM +bM +bM +bM +bM +bM +bM +bL +bL +bL +bL +bL +bM +bM +bM +bM +bM +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +dX +gC +gE +gG +gJ +gB +fZ +bM +bV +eu +ej +bV +bV +bL +bL +bL +bL +bL +bL +bL +bL +bL +bM +bM +bM +bL +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(68,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ae +ae +ae +ae +ae +ae +ah +ah +ah +ah +ah +ah +ae +ae +ae +ae +ak +ak +ak +aH +aK +aK +aH +ac +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ae +ae +ae +ae +ae +ae +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 +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bM +bM +bM +bM +bM +bM +bM +bM +bM +bL +bL +bL +bL +bL +bM +bM +bM +bM +bM +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +dW +dW +dW +dX +gJ +gM +gJ +gO +dX +gK +dW +bV +bV +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(69,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ak +ak +ak +aJ +aK +aK +aH +ac +ac +ac +ac +ac +ac +ah +ah +ah +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +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 +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bM +bM +bM +bM +bM +bM +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +bL +bM +bM +bM +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bV +bV +dX +dX +dX +dW +dW +dX +bV +bV +bV +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(70,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ae +ae +ae +ae +ae +ae +ae +ac +ac +ac +ac +ak +ak +ak +aJ +aK +aK +aJ +ac +ac +ac +ac +ac +ac +ae +ae +ae +ae +ae +ac +ac +ac +ac +ac +ac +ac +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 +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bM +bM +bM +bM +bM +bM +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bV +bV +bV +bV +bV +bV +bV +bV +bV +bV +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(71,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aH +aK +aK +aJ +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bM +bM +bM +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bV +bV +cj +bV +bV +bV +bV +bV +bV +bV +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(72,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aH +aX +aX +aJ +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +"} +(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 +"} +(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 +"} +(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 +"} +(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 +"} +(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 +"} +(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 +"} +(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 +"} +(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 +"} +(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 +"} +(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 +"} +(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 +"} +(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 +"} +(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 +"} +(174,1,1) = {" +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 +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 +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(175,1,1) = {" +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 +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 +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(176,1,1) = {" +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 +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 +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(177,1,1) = {" +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 +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 +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(178,1,1) = {" +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 +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 +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(179,1,1) = {" +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 +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 +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(180,1,1) = {" +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 +ai +ai +ai +ai +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 +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(181,1,1) = {" +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 +ai +ai +ai +ai +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 +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(182,1,1) = {" +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 +ai +ai +ai +ai +ai +ai +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 +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(183,1,1) = {" +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 +ai +ai +ai +ai +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 +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(184,1,1) = {" +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 +ai +ai +ai +ai +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 +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(185,1,1) = {" +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 +ai +ai +ai +ai +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 +ai +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(186,1,1) = {" +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 +ai +ai +ai +ai +ai +ai +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 +ai +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(187,1,1) = {" +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 +ai +ai +ai +ai +ai +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 +ai +ai +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(188,1,1) = {" +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 +ai +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ai +ai +ai +ai +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ai +ad +ai +ad +ai +ai +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(189,1,1) = {" +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 +ai +ai +ai +ai +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ai +ai +ai +ai +ad +ai +ai +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ai +ai +ai +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(190,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ai +ai +ai +ad +ad +ai +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ai +ai +ai +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ai +ai +ai +ai +ai +ai +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ai +ai +ai +ai +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(191,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ai +ai +ai +ad +ai +ai +ad +ai +ad +ad +ad +ad +ad +ai +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ai +ai +ai +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ai +ai +bG +bI +ai +ai +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ai +ai +ai +ai +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(192,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ai +ai +ai +ai +ai +ad +ai +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ai +ai +ai +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 +ai +ai +bH +ai +ai +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ai +ai +ai +ai +ai +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(193,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ai +ai +ai +ai +ai +ai +ai +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ai +ai +ai +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 +ai +ai +ai +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ai +ai +ai +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(194,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ai +ai +ai +ai +ad +ad +ad +ad +ai +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ai +ai +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 +ad +ai +ai +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 +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 +aa +aa +aa +aa +aa +aa +aa +"} +(195,1,1) = {" +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 +ai +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ai +ai +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 +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 +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 +aa +aa +aa +aa +aa +aa +aa +"} +(196,1,1) = {" +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 +ai +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ai +ai +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 +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 +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 +bJ +bJ +bJ +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +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 +"} +(197,1,1) = {" +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 +ai +ai +ai +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ai +ai +ai +ai +ai +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 +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 +bJ +bJ +bJ +bJ +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bK +bK +bK +bK +bK +bK +bK +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 +"} +(198,1,1) = {" +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 +ai +ai +ai +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ai +ai +ai +ai +ai +ai +ai +ai +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 +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 +bJ +bJ +bJ +bJ +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bK +bK +bK +bK +bK +bK +bK +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 +"} +(199,1,1) = {" +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 +ai +ai +ai +ai +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +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 +bK +bJ +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 +bJ +bJ +bJ +fb +bJ +bJ +bK +bK +bK +bK +bK +bK +bK +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bK +bK +bK +bK +bK +bK +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 +"} +(200,1,1) = {" +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 +ai +ai +ai +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ai +ai +ai +ai +ai +ao +ai +ai +ao +ao +ai +ai +ai +ai +ai +ai +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 +bK +bJ +bR +bJ +cf +ck +bR +bJ +bK +bK +bK +bK +bR +bT +bT +bR +bJ +bJ +bJ +bJ +bJ +bJ +bN +bN +bN +bN +bK +bK +bK +bK +bK +bJ +bJ +bJ +bJ +bJ +bJ +bK +bK +bK +bK +bK +bJ +bJ +bJ +gd +bJ +gn +bJ +bJ +bJ +bJ +bO +bO +bO +bO +bO +bO +bO +bJ +bJ +bJ +bJ +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 +"} +(201,1,1) = {" +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 +ai +ai +ai +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ai +ao +ao +ai +ai +am +ai +ai +ao +ao +ao +aw +ao +ao +ai +ai +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 +bK +bJ +bW +bJ +cf +cf +bW +bJ +bJ +bK +bK +bK +dc +bJ +bJ +dc +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bK +bK +bK +bK +bK +bJ +bK +bK +bK +bK +bJ +bK +bK +bK +bK +bK +bJ +bJ +fv +bJ +fl +gn +gn +bJ +bJ +bJ +bK +bK +bK +bO +bO +bO +bO +bO +bO +bO +bJ +bJ +bJ +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +aa +aa +aa +aa +aa +aa +aa +"} +(202,1,1) = {" +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 +ai +ai +ai +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ai +ai +ao +ai +ai +ai +ai +ai +ai +at +ai +ai +ai +ai +ai +ao +ao +ai +ai +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 +bK +bJ +bJ +bJ +cf +cf +cf +cf +cf +bJ +bK +bK +bJ +bJ +bJ +bJ +bJ +bO +bO +bO +bO +bJ +bJ +bJ +cq +bJ +bJ +bJ +bK +bK +bJ +bJ +bK +bK +bK +bK +bJ +bK +bK +bK +bK +bJ +bJ +bJ +bJ +cQ +gk +bJ +gs +bJ +bJ +bJ +bK +bK +bK +bK +bK +bK +bK +bO +bO +bO +bO +bO +bO +bJ +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +aa +aa +aa +aa +aa +aa +aa +"} +(203,1,1) = {" +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 +ai +ai +ai +ai +ai +ai +ai +ai +ad +ad +ad +ad +ad +ad +ad +ad +ad +ai +ao +ao +ao +ai +bd +ad +ad +ad +ai +am +ai +am +ai +ai +ad +ad +ai +ao +ai +ai +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 +bK +bK +bX +cb +cf +cf +cf +cf +cf +cf +bK +bK +bJ +bJ +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bJ +bJ +bJ +bJ +cd +bJ +bJ +bJ +bK +bK +bK +bJ +bK +bK +bK +bK +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bO +bO +bO +bO +bJ +bJ +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +aa +aa +aa +aa +aa +aa +aa +"} +(204,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ai +al +al +al +al +al +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ad +ad +ad +ad +ad +ad +ai +ai +ao +am +ai +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ai +ai +ai +ai +ai +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 +bJ +bJ +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +cc +bJ +bJ +bJ +bJ +cf +cf +bK +bK +bJ +bJ +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bJ +bJ +bJ +bJ +cd +bJ +bJ +bJ +bJ +bK +bK +bK +bK +bK +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bO +bO +bO +bO +bJ +bJ +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +aa +aa +aa +aa +aa +aa +aa +"} +(205,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ai +al +am +am +at +am +ai +al +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ai +ai +ai +ai +ai +ai +ai +ad +ai +ai +ai +ai +ad +ad +ai +ai +ai +ai +ai +ai +ao +ai +ai +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +bd +ao +ai +ao +ai +ai +ai +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 +bJ +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +bK +bJ +cq +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bK +bK +bJ +bJ +bJ +bJ +bK +bK +bK +bK +bK +bK +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bO +bO +bO +bO +bO +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +aa +aa +aa +aa +aa +aa +aa +"} +(206,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +al +am +ao +ao +ap +ao +am +ai +al +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ai +ai +ax +ax +ax +ax +ax +ax +ax +ax +ax +ax +ax +aV +aV +ax +aA +ao +ax +ax +ai +ai +ai +bd +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ao +ai +ai +ai +ai +ai +ai +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 +bJ +bJ +bJ +bJ +bJ +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +bO +bO +cl +bT +bT +cl +bJ +bJ +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bJ +bJ +bJ +bJ +bO +bO +bO +bO +bK +bK +bJ +bJ +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bJ +bJ +bJ +bJ +bJ +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bO +bO +bO +bJ +bJ +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +aa +aa +aa +aa +aa +aa +aa +"} +(207,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +al +am +ao +ar +as +ar +ao +am +al +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ao +ad +ad +ad +ao +ao +ao +ao +ao +ao +ao +ao +ao +ao +ao +ao +ao +ad +ad +ad +ao +ao +ao +aB +ax +ai +ai +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +bd +ao +ai +ai +ai +ai +ai +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 +bK +bK +bK +bK +bQ +cl +cl +bQ +cH +cH +bR +bJ +bO +bO +bO +bO +bO +bO +bJ +bJ +bK +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bJ +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 +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +aa +aa +aa +aa +aa +aa +aa +"} +(208,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +al +am +ap +as +au +as +ap +am +al +ad +ad +ad +ad +ad +ad +ad +ad +ao +ad +ao +ad +ad +ad +ad +ad +ao +ao +ao +ap +ad +ad +ad +ao +ao +ap +ao +ad +ad +ao +ao +ao +ap +ao +ax +ai +ai +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ao +ao +ai +ai +ai +ai +ai +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 +bJ +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bO +bO +bO +bJ +bJ +bJ +bJ +bJ +bK +bK +bK +bK +bK +bK +cd +bJ +bJ +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 +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +aa +aa +aa +aa +aa +aa +aa +"} +(209,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +al +am +ao +ar +as +ar +ao +am +al +ad +ad +ad +ad +ad +ad +ad +ad +ao +ad +ad +ao +ad +ad +ad +ad +ao +ao +ad +ad +ao +ao +ad +ad +ao +ao +ao +ad +ad +ao +ao +ao +ao +aR +ax +ai +ai +ai +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ao +ai +am +at +am +ai +ai +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 +bJ +bJ +bJ +bJ +bJ +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bJ +ab +ab +bJ +bJ +ab +aa +aa +aa +aa +aa +aa +aa +bK +bK +bK +bK +bK +bJ +bJ +bJ +bJ +bJ +bO +bO +bO +bO +bO +bO +bO +bJ +bJ +bJ +bJ +cq +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bJ +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 +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +aa +aa +aa +aa +aa +aa +aa +"} +(210,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +al +am +ao +ao +ap +ao +am +ai +al +ad +ad +ad +ad +ad +ad +ad +ad +ao +ao +ad +ad +ad +ad +ad +ad +ai +ai +ad +ad +ad +ax +ax +ax +ax +ax +ax +ax +aV +aV +ax +aR +ao +ao +ax +ai +ai +ai +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +bd +ao +ai +ai +ai +ai +ai +ai +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 +bJ +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bJ +ab +bJ +ab +bJ +ab +aa +aa +aa +aa +aa +aa +aa +bK +bK +bK +bK +bK +bJ +bJ +bJ +bJ +bJ +cI +cI +cI +cI +cI +cI +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bJ +cU +bJ +bJ +bJ +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 +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +aa +aa +aa +aa +aa +aa +aa +"} +(211,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ai +al +am +ao +ao +am +ai +al +ad +ad +ad +ad +ad +ad +ad +ad +ad +ao +ao +ao +ad +ad +ad +ad +ai +ai +ai +ad +ad +ad +ad +ai +ai +ai +ai +ai +ai +ad +ad +ax +ao +ao +ao +ax +ai +ai +ai +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +bd +ao +ao +ai +ai +ai +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 +bJ +ab +ab +bJ +ab +aa +aa +aa +aa +aa +aa +aa +bK +bK +bK +bK +bK +bJ +bJ +bJ +bJ +bO +bO +bO +bO +bO +bO +bJ +bJ +bJ +bK +bK +bK +bJ +bJ +bJ +bK +bK +bK +bK +bK +bJ +bJ +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 +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +aa +aa +aa +aa +aa +aa +aa +"} +(212,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ai +al +al +ao +al +al +ai +ad +ad +ad +ad +ax +ax +ax +ax +ax +ao +ao +ao +ad +ad +ai +ai +ai +aq +ai +ad +ai +ad +ad +ai +ax +aR +aR +aR +ax +ad +ai +ax +ao +ao +ao +ax +ai +ai +ai +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +bd +ao +am +ai +ai +ad +ao +ai +ai +ai +ai +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 +bJ +bJ +bJ +bJ +bJ +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +bJ +bO +bO +bO +bO +bO +bO +bO +bJ +bJ +bJ +bN +bK +bK +bK +bK +bK +bK +bK +bK +bJ +bJ +bJ +bJ +bJ +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 +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +aa +aa +aa +aa +aa +aa +aa +"} +(213,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ai +aq +ai +ao +ai +ai +ad +ad +ad +ad +ad +ax +ay +ao +aD +ax +ao +ao +ao +ad +ad +ai +ai +ai +ai +ax +aR +aR +aR +ax +ai +ax +ao +ao +ao +ax +ad +ai +ax +ao +av +ao +ax +ai +ai +ai +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aR +ao +ao +ao +ao +ai +ao +ao +ao +ao +ai +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 +bJ +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bJ +bJ +bJ +bJ +bJ +ab +aa +aa +aa +aa +aa +aa +aa +bK +bK +bK +bK +bK +bJ +bJ +bO +bO +bO +bO +bO +bO +bJ +bJ +bJ +bJ +bN +bK +bK +bK +bK +bK +bK +bK +bK +bJ +cq +bO +bO +cI +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 +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +aa +aa +aa +aa +aa +aa +aa +"} +(214,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ai +ai +an +av +an +ai +ad +ad +ad +ad +ad +ax +az +ao +ao +ax +ao +ao +ao +ai +ai +ai +ai +ai +ai +ax +ao +ao +ao +ax +ai +ax +ao +ao +ao +ad +ad +ai +ax +ao +ao +ao +ax +ai +ai +ai +ai +ad +ad +ai +ai +ai +aR +aR +aR +aR +ad +ad +ad +bd +bd +ao +bd +ad +ad +ai +ai +ai +ao +ai +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 +bJ +bJ +bJ +bJ +bJ +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bJ +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +bK +bK +bK +bK +bK +cd +bJ +bO +bO +bO +bO +bO +bJ +bJ +bJ +bR +dl +bR +bQ +bQ +bR +bK +bK +bK +bK +bK +bJ +bJ +bO +bO +cI +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 +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bO +bJ +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +aa +aa +aa +aa +aa +aa +aa +"} +(215,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ai +ai +ai +aw +ai +ai +ad +ad +ad +ad +ad +ax +ao +ao +av +aF +ao +ao +ao +ai +ai +ai +aq +ai +ai +ax +ao +ao +ao +ax +ai +ax +ao +ao +aR +ax +ai +ai +ax +ao +ao +ao +ax +ai +ai +ai +ad +ad +ad +ai +ai +bd +ao +ao +ao +ao +aR +aR +ad +ad +ad +ad +ad +ad +ad +ad +ad +ai +ai +ao +ao +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 +bJ +bJ +bJ +ab +aa +aa +aa +aa +aa +aa +aa +bK +bK +bN +bN +bJ +bJ +bJ +bO +bO +bO +bO +bO +bJ +bJ +bJ +dh +dm +dh +do +dv +bR +bK +bK +bK +bK +bK +bJ +bJ +bO +bO +cI +bO +bJ +bJ +bJ +bK +bK +bK +bK +bK +bK +bN +bN +bN +bK +cm +cm +cm +cm +bO +bO +bO +bO +bO +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bO +bO +bO +bJ +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +aa +aa +aa +aa +aa +aa +aa +"} +(216,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +an +ai +ai +ao +ai +ai +ai +an +ad +ad +ad +ax +ao +av +ao +ax +ao +ao +ao +ai +ai +ai +ai +ai +ai +ax +ao +ao +aG +ax +ai +ax +ao +ao +ao +ax +ai +ai +ax +ao +aG +ao +ax +ai +ai +ad +ad +ad +ad +ai +aR +ao +ao +bf +ao +ao +ao +ao +aR +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +bd +ao +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 +bN +bN +bJ +bO +bO +bO +bO +bO +bO +bO +bJ +bJ +bQ +bR +dl +bR +dr +do +bR +bK +bK +bK +bJ +bJ +bJ +bJ +bO +bO +cI +bO +bJ +cm +cm +cm +cm +cm +bK +bK +bK +bK +bN +bN +bK +bK +bK +cm +cm +bK +bK +bK +bO +bO +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bO +bO +bO +bJ +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +aa +aa +aa +aa +aa +aa +aa +"} +(217,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ai +ai +ai +ao +ao +ai +ai +ai +ai +ai +ai +ax +aA +ax +ax +ax +ao +ao +ao +ai +ai +ai +ax +ax +ax +ax +ao +ax +ao +ax +ax +ax +ao +ap +ao +ax +ax +ax +ax +ao +ao +aR +ax +ax +ax +ad +ad +bd +bd +aR +ao +ao +bf +ap +bf +ao +ao +ao +ao +bd +ai +ad +ad +ad +ad +ad +ad +ad +aR +ao +ai +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 +bJ +bJ +bJ +bJ +bJ +ab +aa +aa +aa +aa +aa +aa +aa +bK +bK +bJ +bJ +bJ +bO +bO +bO +bO +bO +bO +bJ +bJ +cc +bR +di +dn +do +do +dr +bQ +bK +bK +bK +bJ +cd +bO +bO +bO +bO +cI +bO +bJ +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 +bJ +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +aa +aa +aa +aa +aa +aa +aa +"} +(218,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ai +ai +ao +ao +ao +ai +ai +ai +ai +ai +ao +ao +ao +ao +ao +ao +ao +ao +ai +ai +ai +ax +ao +ao +ax +ao +ao +av +ad +ad +ad +ad +ao +ao +ao +ao +ao +ad +ad +ao +ao +ao +al +ad +ad +al +ao +ao +ao +ao +bf +bi +bl +bp +aw +ao +bz +ao +aR +am +ai +ad +ad +ad +ad +ad +ad +bd +ao +ai +ai +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 +bJ +ab +ab +ab +bJ +ab +aa +aa +aa +aa +aa +aa +aa +bK +bJ +bJ +bO +bO +bO +bO +bO +bO +bO +bO +bJ +bJ +cc +bQ +dj +do +do +do +do +bR +bK +bK +cm +bJ +bJ +bO +bO +bO +bJ +bJ +bJ +bJ +cm +cm +cm +cm +cm +bK +bK +cm +cm +bK +bN +bN +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 +bJ +bJ +bJ +bJ +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +aa +aa +aa +aa +aa +aa +aa +"} +(219,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ai +ai +ai +ai +ao +ao +ai +ao +ao +ao +ao +aB +av +ao +ao +ao +ap +ao +ai +ai +ai +ax +aP +aw +aF +ao +ap +ao +ad +ad +ao +ao +ao +ao +ao +ao +ao +ao +ao +ap +ao +al +ad +ad +ad +ad +al +ao +ao +bf +ap +bj +bm +bq +bf +bw +bA +bE +aR +ai +ai +ad +ad +ad +ad +ad +bd +ao +ao +am +ai +ai +ai +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 +bJ +bJ +bJ +ab +ab +aa +aa +aa +aa +aa +aa +aa +bK +bJ +bO +bO +bO +bO +bO +bO +bO +bO +bO +cd +bJ +cm +bQ +dk +dp +dq +ds +dw +bR +bK +bK +cm +bJ +bJ +bO +bO +bO +bJ +bJ +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 +bK +bK +bK +bK +bK +bK +bK +bK +bK +bO +bO +bO +bO +bJ +bJ +bJ +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +aa +aa +aa +aa +aa +aa +aa +"} +(220,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ai +ai +ai +ao +ao +ao +ai +ai +ao +ao +ao +ao +ao +ao +aG +ao +ai +ai +ai +ax +ao +ao +ax +ao +ao +ao +ao +ao +ao +ao +av +ad +ad +ad +ao +ao +ao +ao +ao +ao +al +ad +ad +al +ao +ao +ao +ao +bf +bk +bn +br +ao +ao +bz +ao +aR +ai +ai +ad +ad +ad +ad +ad +bd +ao +ao +ai +ai +ai +ai +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 +bJ +bO +bO +bO +bO +bO +bO +bO +bJ +bJ +bJ +bJ +cm +bR +bR +bR +bR +bQ +bQ +bQ +cm +cm +cm +bJ +bJ +bO +bO +bO +bJ +bJ +bK +cm +cm +cm +cm +cm +bK +bJ +bJ +bJ +bJ +cm +bK +bK +bN +bN +bN +bN +bN +bK +bK +bO +bO +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bO +bO +bO +bO +bJ +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +aa +aa +aa +aa +aa +aa +aa +"} +(221,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ai +ai +ai +ai +ai +ao +ai +ai +ai +ax +ax +ax +ax +ax +ao +ao +ao +ai +ai +ai +ax +ax +ax +ax +ao +ax +ao +ax +ax +ax +ao +ap +ao +ax +ax +ax +ax +aR +ao +ao +ax +ax +ad +ad +ai +bd +bd +aR +aR +ao +bf +ap +bf +ao +ao +ao +ao +bd +ai +ai +ad +ad +ad +ad +bd +aw +aB +ai +ai +ai +ai +ai +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 +bJ +bO +bO +bO +bO +bO +bO +bO +bJ +cm +cm +bK +bK +bK +bK +bK +bK +bK +bK +cm +cm +cm +bK +bJ +bJ +bO +bO +bO +bJ +bK +bK +cm +cm +cm +cm +cm +bK +bJ +bJ +bJ +bJ +cm +bK +bK +bK +bK +bN +bN +bN +bK +bK +bO +bO +bO +bO +bO +bO +bO +bO +bO +bK +bK +bK +bK +bK +bO +bO +bO +bO +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +aa +aa +aa +aa +aa +aa +aa +"} +(222,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +ai +ai +ai +ai +ai +ai +ad +ax +ao +ao +ao +ax +ao +ao +ao +ad +ai +ai +ai +ai +ai +ax +aR +ao +ao +ax +ai +ax +ao +ao +ao +ax +ai +ai +ax +ao +ao +ao +ax +ai +ad +ad +ai +ai +ai +ad +ad +aR +ao +bf +ao +ao +ao +ao +aR +ai +ai +ad +ad +ad +ad +ad +bd +ao +am +ai +bs +ai +ai +ai +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 +bJ +bO +bO +bO +bO +bO +bJ +bJ +bJ +cm +cm +bK +bK +bK +bK +bK +bK +bK +cm +cm +cm +cm +bK +cd +bJ +bO +bO +bO +bJ +cm +cm +cm +cm +cm +bK +bK +bK +bJ +bJ +fv +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bK +bK +bK +bO +bO +bO +bO +bO +bO +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +aa +aa +aa +aa +aa +aa +aa +"} +(223,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ax +ao +ao +ao +aF +ao +ao +ao +ad +ai +ai +ai +ai +ai +ax +ao +ao +ao +ax +ai +ax +ao +ao +aR +ax +ai +ai +ax +ao +ao +ao +ax +ai +ad +ad +ad +ai +ai +ad +ad +aR +ao +ao +ao +ao +ao +aR +ai +ai +ai +ad +ad +ad +ad +ad +aR +ao +ai +ai +ai +ai +ai +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 +bJ +bO +bO +bO +bO +bO +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +cm +cm +bJ +bJ +bJ +bJ +bJ +bO +bO +bO +bJ +cm +cm +cm +cm +cm +bK +bK +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bK +bK +bK +bK +bK +bK +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bJ +bJ +bJ +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +aa +aa +aa +aa +aa +aa +aa +"} +(224,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ax +ao +ao +ao +ax +ao +ao +ao +ai +ai +ai +ai +ai +ai +ax +ao +ao +ao +ax +ai +ax +ao +ao +ao +ax +ad +ad +ax +ao +ao +ao +ax +ai +ai +ad +ad +ai +ad +ad +ad +ai +bd +ao +ao +ao +bd +ai +ai +ai +ad +ad +ad +ad +ad +ad +bd +ao +ai +ai +ai +ai +ai +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 +bJ +bO +bO +bO +bO +bO +bJ +cm +cm +bK +bR +bR +bK +bK +bK +bK +bK +bK +bK +bK +bJ +bO +bO +bO +bO +bO +bJ +bJ +bJ +cm +cm +cm +cm +bK +bK +bK +bJ +bJ +cq +bJ +bJ +bJ +bJ +fR +bK +bK +bK +bK +bK +bK +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bJ +bJ +bJ +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +aa +aa +aa +aa +aa +aa +aa +"} +(225,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ax +aC +ao +aE +ax +ao +ao +ao +ai +ai +ai +ai +ai +ai +ax +aR +aR +ao +ax +ai +ax +ao +ao +ao +ax +ad +ad +ax +ao +ao +ao +ax +ai +ai +ad +ad +ad +ad +ad +ad +ai +ai +ai +ai +ai +ai +ai +ai +ai +ad +ad +ad +ad +ad +ad +ao +ao +ai +ai +ai +ai +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 +bJ +bO +bO +bO +bO +bJ +bJ +cm +cm +bR +bJ +bJ +cK +bK +bK +bN +bJ +bJ +bJ +bJ +bJ +bO +bO +bO +bO +bO +bJ +bJ +bJ +cm +cm +cm +cm +bK +bK +bJ +bJ +fj +fd +bK +bK +bJ +bJ +fR +bJ +bJ +bK +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bJ +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +aa +aa +aa +aa +aa +aa +aa +"} +(226,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ax +ax +ax +ax +ax +ao +ao +ao +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ax +ao +aR +aR +ax +ad +ai +ax +aw +ao +aR +ax +ai +ai +ai +ad +ad +ad +ad +al +an +ai +ai +ai +al +al +ai +ai +ai +ad +ad +ad +ad +bd +bd +ao +ao +am +ai +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 +bJ +bJ +bO +bJ +bJ +bJ +bK +bK +bK +bR +bJ +bJ +bR +bK +bK +bK +bJ +bJ +bO +bO +bO +bO +bO +bO +bO +bO +bJ +bJ +bK +cm +cm +cm +bK +bK +bK +bJ +fd +bJ +bJ +bK +bK +bJ +fR +bJ +bJ +bJ +bK +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +aa +aa +aa +aa +aa +aa +aa +"} +(227,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ai +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ao +ao +ao +ad +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ad +ai +ax +ao +aw +ao +ax +ai +ai +ai +ad +ad +ad +ad +ad +ad +al +ao +al +ad +ad +ad +ad +ad +ad +ad +bd +al +ai +ao +ao +ai +ai +ai +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 +bJ +bO +bJ +bK +bK +bK +bK +bR +bJ +bJ +bJ +bJ +bR +bN +bN +bJ +bJ +bO +bO +bO +bO +bJ +bJ +bJ +bJ +bJ +bK +cm +cm +bK +bK +bK +bK +bK +bJ +bJ +bK +bK +bK +bK +bK +fR +bJ +bJ +bJ +bK +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +aa +aa +aa +aa +aa +aa +aa +"} +(228,1,1) = {" +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 +ao +ao +ad +ai +ai +ai +ai +ai +ax +aS +ao +aS +ax +ax +ax +ax +ax +ax +ax +ad +ad +ax +ao +av +ao +ax +ai +ai +ad +ad +ad +ad +ad +ad +ai +ao +ai +bd +ad +ad +ad +ad +ad +ad +ad +ao +ao +ai +ai +ai +ai +ai +ai +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 +bJ +bO +bJ +bK +bK +bK +bK +bR +bJ +cQ +bJ +bJ +bR +bN +bN +bJ +bO +bO +bO +bO +bO +bK +bK +bK +bK +bK +cm +cm +cm +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bJ +bJ +bJ +bJ +bK +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +aa +aa +aa +aa +aa +aa +aa +"} +(229,1,1) = {" +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 +ao +ao +ao +ao +ad +ad +ao +ao +ao +ao +ao +ao +ao +ao +ao +ao +aG +ao +ao +ad +ad +ad +ao +ao +ao +ax +ai +ai +ad +ad +ad +ad +ad +ad +ai +ao +ai +ad +ad +ad +ad +ad +ad +ad +ad +ao +ao +ai +ai +ai +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 +bJ +bO +bJ +bJ +bJ +bK +bK +bK +cK +bJ +bJ +bR +bN +bK +bK +bJ +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 +bJ +bJ +bJ +bJ +bJ +bJ +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +aa +aa +aa +aa +aa +aa +aa +"} +(230,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ai +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ao +ao +ao +ad +ad +ao +ao +ao +ao +ap +av +ao +ad +ad +ad +ap +ad +ao +ao +ad +ad +ao +ap +ao +ax +ai +ai +ad +ad +ad +ad +ad +ad +ai +ai +aq +ad +al +bd +bd +ai +ad +bd +ai +ao +ai +ai +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 +bJ +bO +bO +bO +bJ +cm +cm +bK +bK +bR +bR +bN +bK +bK +bK +bJ +bJ +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 +bJ +bJ +cq +bJ +bJ +bJ +bJ +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bJ +bJ +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +aa +aa +aa +aa +aa +aa +aa +"} +(231,1,1) = {" +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 +ao +ao +ao +ao +ao +ad +ad +ad +ad +ao +ao +ad +ad +ao +ao +ao +ao +ao +aB +ax +ai +ad +ad +ad +ad +ad +ad +ad +ai +ai +ai +ao +ai +ai +ai +ai +ao +ao +ai +ai +ai +ai +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 +bJ +bO +bO +bO +bJ +cm +cm +bK +bK +bK +bK +bK +bK +bK +bJ +bJ +bJ +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 +fX +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +aa +aa +aa +aa +aa +aa +aa +"} +(232,1,1) = {" +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 +ai +al +ax +ax +ad +ad +ad +ad +ax +ax +ax +ax +ax +ax +ax +ax +ax +ax +ax +ax +ai +ai +ad +ad +ad +ad +ad +ad +ad +ad +ai +ao +ao +ao +ao +ai +ai +ai +ai +ai +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 +bJ +bO +bO +bO +bJ +bJ +bJ +bK +bK +bK +bK +bK +bK +bK +bJ +bJ +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 +cd +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bJ +cq +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +aa +aa +aa +aa +aa +aa +aa +"} +(233,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ai +ai +ai +ai +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ai +ai +ai +ai +ad +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ad +ad +ad +ad +ad +ad +ad +ad +ai +bs +ai +ai +ai +ai +ai +ai +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 +bJ +bO +bO +bO +bO +bO +bJ +bJ +bJ +bJ +bK +bK +bK +bK +bJ +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 +bJ +bJ +bO +bO +bO +bJ +cq +bJ +bJ +bJ +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +aa +aa +aa +aa +aa +aa +aa +"} +(234,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ai +ad +ai +ai +ai +ai +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ai +ai +ai +ai +ad +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ad +ad +ad +ad +ad +ad +ad +ad +ad +ai +ai +ai +ai +ai +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 +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 +bJ +bJ +bJ +bO +bO +bO +bO +bO +bO +bJ +bK +bK +bK +bK +bJ +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 +bJ +bJ +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +aa +aa +aa +aa +aa +aa +aa +"} +(235,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ai +ai +ai +ai +ai +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 +ai +ai +ai +ai +ad +ad +ad +ai +ai +ai +ai +ai +ad +ad +ad +ad +ad +ad +ad +ai +ai +ai +ai +ai +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 +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 +bJ +bJ +bJ +bJ +bJ +bO +bO +bO +bO +cq +bJ +bJ +bJ +bJ +bJ +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 +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +aa +aa +aa +aa +aa +aa +aa +"} +(236,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ai +ai +ai +ai +ai +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 +ad +ai +ai +ai +ai +ai +ai +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 +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 +bP +bJ +bJ +bJ +bJ +bJ +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 +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +aa +aa +aa +aa +aa +aa +aa +"} +(237,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ai +ai +ai +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 +ad +ad +ai +ai +ai +ai +ai +ai +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 +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 +bJ +bJ +bP +bJ +bJ +bJ +bJ +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 +bJ +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 +ai +ai +ai +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 +ad +ad +ad +ai +ai +ai +ai +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 +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 +bJ +bJ +bQ +bJ +bJ +bJ +bJ +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 +bJ +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ai +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 +ai +ai +ai +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 +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 +bJ +bT +bQ +bJ +bJ +bJ +bJ +bJ +bK +bK +bK +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 +bJ +bJ +bJ +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bJ +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ai +ad +ai +ai +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ai +ad +ad +ai +ad +ad +ad +ad +ad +ai +ad +an +ai +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 +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 +bJ +bJ +cq +bJ +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bJ +bJ +bJ +bJ +bJ +bJ +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +aa +aa +aa +aa +aa +aa +aa +"} +(241,1,1) = {" +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 +ai +ad +ai +ai +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ai +ai +ai +ad +ad +ad +ad +ai +ai +aY +ao +aZ +ai +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 +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 +bJ +bJ +bJ +bJ +bJ +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bJ +bJ +bJ +bJ +cq +bJ +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +aa +aa +aa +aa +aa +aa +aa +"} +(242,1,1) = {" +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 +ai +ai +ai +ai +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ai +ai +ai +ad +ad +ad +ad +ad +an +ao +ba +ao +an +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 +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 +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bK +bN +bN +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bJ +bJ +cq +bJ +bJ +bJ +bJ +bJ +bK +bK +bK +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bJ +bJ +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +aa +aa +aa +aa +aa +aa +aa +"} +(243,1,1) = {" +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 +ai +ai +ai +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ai +ai +ad +ad +ad +ad +ad +ad +ai +aZ +ao +aY +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 +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 +bJ +bJ +cL +bJ +bJ +bJ +bJ +bJ +bK +bN +bN +bN +bK +bK +bK +bK +bK +bK +bK +bK +bK +bJ +bJ +bJ +cU +bJ +bJ +bJ +bJ +bK +bK +bK +fw +bJ +bJ +cq +bJ +bK +bK +bK +bK +bK +bK +bJ +bJ +bJ +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +aa +aa +aa +aa +aa +aa +aa +"} +(244,1,1) = {" +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 +ai +an +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 +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 +bJ +bJ +bJ +cU +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bK +bK +bK +bK +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bK +bJ +bJ +bJ +fe +fk +fn +fd +bJ +bJ +bJ +bJ +bK +bK +bK +bK +bK +bK +bK +bJ +bJ +bJ +bJ +bJ +bJ +bJ +cq +bJ +bO +bO +bO +bO +bO +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +aa +aa +aa +aa +aa +aa +aa +"} +(245,1,1) = {" +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 +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 +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 +bT +bT +bQ +bK +bK +bK +bK +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bK +bK +bK +bK +bK +bJ +bJ +fc +bJ +fl +fo +bJ +fF +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bJ +bJ +bJ +bJ +bJ +bJ +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +aa +aa +aa +aa +aa +aa +aa +"} +(246,1,1) = {" +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 +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 +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 +bQ +bT +bT +bR +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bJ +bJ +bJ +cq +cU +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +bJ +bJ +bJ +fd +bJ +bJ +bJ +bJ +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +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 +"} +(247,1,1) = {" +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 +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 +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 +bQ +bT +bT +bQ +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bJ +bJ +bJ +bJ +bJ +bJ +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +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 +"} +(248,1,1) = {" +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 +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 +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 +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 +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +"} +(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 +"} +(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 +"} +(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 +"} +(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 +"} +(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 +"} diff --git a/_maps/RandomZLevels/centcomAway.dmm b/_maps/RandomZLevels/centcomAway.dmm new file mode 100644 index 0000000..b5be786 --- /dev/null +++ b/_maps/RandomZLevels/centcomAway.dmm @@ -0,0 +1,21001 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/open/space, +/area/space) +"ab" = ( +/turf/closed/wall/r_wall, +/area/awaymission/centcomAway/maint) +"ac" = ( +/turf/closed/wall/r_wall, +/area/awaymission/centcomAway/cafe) +"ad" = ( +/obj/structure/grille, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/cafe) +"ae" = ( +/obj/structure/grille, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/cafe) +"af" = ( +/obj/structure/grille, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/cafe) +"ag" = ( +/turf/open/floor/plating, +/area/awaymission/centcomAway/maint) +"ah" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + req_access_txt = "101" + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/maint) +"ai" = ( +/turf/open/floor/plasteel/bar{ + dir = 2 + }, +/area/awaymission/centcomAway/cafe) +"aj" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/bar{ + dir = 2 + }, +/area/awaymission/centcomAway/cafe) +"ak" = ( +/turf/closed/wall, +/area/awaymission/centcomAway/cafe) +"al" = ( +/obj/machinery/vending/dinnerware, +/turf/open/floor/plasteel/green{ + dir = 1 + }, +/area/awaymission/centcomAway/cafe) +"am" = ( +/obj/structure/closet/chefcloset, +/turf/open/floor/plasteel/green{ + dir = 1 + }, +/area/awaymission/centcomAway/cafe) +"an" = ( +/obj/structure/table, +/turf/open/floor/plasteel/green{ + dir = 1 + }, +/area/awaymission/centcomAway/cafe) +"ao" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/green{ + dir = 1 + }, +/area/awaymission/centcomAway/cafe) +"ap" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/turf/open/floor/plasteel/green{ + dir = 1 + }, +/area/awaymission/centcomAway/cafe) +"aq" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder, +/turf/open/floor/plasteel/green{ + dir = 1 + }, +/area/awaymission/centcomAway/cafe) +"ar" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/donkpockets{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/kitchen/rollingpin, +/turf/open/floor/plasteel/green{ + dir = 1 + }, +/area/awaymission/centcomAway/cafe) +"as" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/glass/beaker, +/obj/item/weapon/reagent_containers/food/condiment/enzyme, +/turf/open/floor/plasteel/green{ + dir = 1 + }, +/area/awaymission/centcomAway/cafe) +"at" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/cafe) +"au" = ( +/obj/machinery/hydroponics, +/turf/open/floor/plasteel/black, +/area/awaymission/centcomAway/cafe) +"av" = ( +/obj/item/weapon/reagent_containers/glass/bucket, +/turf/open/floor/plasteel/black, +/area/awaymission/centcomAway/cafe) +"aw" = ( +/turf/open/floor/plasteel/green{ + dir = 1 + }, +/area/awaymission/centcomAway/cafe) +"ax" = ( +/turf/open/floor/plasteel/cafeteria, +/area/awaymission/centcomAway/cafe) +"ay" = ( +/obj/structure/table, +/obj/item/weapon/kitchen/knife/butcher, +/turf/open/floor/plasteel/cafeteria, +/area/awaymission/centcomAway/cafe) +"az" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/cafeteria, +/area/awaymission/centcomAway/cafe) +"aA" = ( +/obj/structure/closet/secure_closet/freezer/kitchen, +/turf/open/floor/plasteel/green{ + dir = 1 + }, +/area/awaymission/centcomAway/cafe) +"aB" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/cafe) +"aC" = ( +/turf/open/floor/plasteel/green/side{ + dir = 9 + }, +/area/awaymission/centcomAway/cafe) +"aD" = ( +/turf/open/floor/plasteel/green/side{ + dir = 5 + }, +/area/awaymission/centcomAway/cafe) +"aE" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating, +/area/awaymission/centcomAway/maint) +"aF" = ( +/obj/structure/table, +/turf/open/floor/carpet, +/area/awaymission/centcomAway/cafe) +"aG" = ( +/turf/open/floor/carpet, +/area/awaymission/centcomAway/cafe) +"aH" = ( +/obj/structure/closet/secure_closet/personal, +/turf/open/floor/carpet, +/area/awaymission/centcomAway/cafe) +"aI" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/plasteel/bar{ + dir = 2 + }, +/area/awaymission/centcomAway/cafe) +"aJ" = ( +/obj/structure/table, +/turf/open/floor/plasteel/redyellow, +/area/awaymission/centcomAway/cafe) +"aK" = ( +/obj/structure/grille, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/cafe) +"aL" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/drinks/shaker, +/turf/open/floor/plasteel/cafeteria, +/area/awaymission/centcomAway/cafe) +"aM" = ( +/obj/structure/table, +/obj/machinery/microwave{ + pixel_x = -3; + pixel_y = 6 + }, +/turf/open/floor/plasteel/green{ + dir = 1 + }, +/area/awaymission/centcomAway/cafe) +"aN" = ( +/turf/open/floor/plasteel/green/side{ + dir = 8 + }, +/area/awaymission/centcomAway/cafe) +"aO" = ( +/turf/open/floor/plasteel/green/side{ + dir = 4 + }, +/area/awaymission/centcomAway/cafe) +"aP" = ( +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/plating, +/area/awaymission/centcomAway/maint) +"aQ" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/turf/open/floor/carpet, +/area/awaymission/centcomAway/cafe) +"aR" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + req_access_txt = "101" + }, +/turf/open/floor/plasteel/bar{ + dir = 2 + }, +/area/awaymission/centcomAway/maint) +"aS" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/closed/wall/r_wall, +/area/awaymission/centcomAway/maint) +"aT" = ( +/obj/structure/grille, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/closed/wall/r_wall, +/area/awaymission/centcomAway/maint) +"aU" = ( +/obj/structure/grille, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/awaymission/centcomAway/maint) +"aV" = ( +/turf/closed/wall/r_wall, +/area/awaymission/centcomAway/hangar) +"aW" = ( +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/green{ + dir = 1 + }, +/area/awaymission/centcomAway/cafe) +"aX" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/green{ + dir = 1 + }, +/area/awaymission/centcomAway/cafe) +"aY" = ( +/obj/structure/sink, +/turf/open/floor/plasteel/green{ + dir = 1 + }, +/area/awaymission/centcomAway/cafe) +"aZ" = ( +/obj/structure/table, +/obj/machinery/processor{ + pixel_x = 0; + pixel_y = 10 + }, +/turf/open/floor/plasteel/green{ + dir = 1 + }, +/area/awaymission/centcomAway/cafe) +"ba" = ( +/obj/structure/grille, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/cafe) +"bb" = ( +/obj/item/device/radio, +/turf/open/floor/plating, +/area/awaymission/centcomAway/maint) +"bc" = ( +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/awaymission/centcomAway/hangar) +"bd" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/awaymission/centcomAway/hangar) +"be" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/awaymission/centcomAway/hangar) +"bf" = ( +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/bar{ + dir = 2 + }, +/area/awaymission/centcomAway/cafe) +"bg" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/condiment/peppermill, +/obj/item/weapon/reagent_containers/food/condiment/saltshaker, +/turf/open/floor/plasteel/green{ + dir = 1 + }, +/area/awaymission/centcomAway/cafe) +"bh" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/maint) +"bi" = ( +/obj/machinery/door/airlock/centcom, +/turf/open/floor/plasteel/green{ + dir = 1 + }, +/area/awaymission/centcomAway/cafe) +"bj" = ( +/obj/structure/rack, +/obj/item/clothing/suit/fire, +/turf/open/floor/plating, +/area/awaymission/centcomAway/maint) +"bk" = ( +/obj/structure/lattice, +/turf/open/space, +/area/space) +"bl" = ( +/obj/machinery/door/poddoor{ + id = "XCCHangar1"; + name = "XCC Main Hangar" + }, +/turf/open/floor/plasteel/delivery, +/area/awaymission/centcomAway/hangar) +"bm" = ( +/turf/open/floor/plasteel/vault{ + dir = 9 + }, +/area/awaymission/centcomAway/hangar) +"bn" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/turf/closed/wall/mineral/titanium/interior, +/area/awaymission/centcomAway/hangar) +"bo" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_r"; + dir = 1 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/hangar) +"bp" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion"; + dir = 1 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/hangar) +"bq" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_l"; + dir = 1 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/hangar) +"br" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/turf/closed/wall/shuttle{ + icon_state = "swall_f10"; + dir = 2 + }, +/area/awaymission/centcomAway/hangar) +"bs" = ( +/obj/structure/closet/crate, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/awaymission/centcomAway/hangar) +"bt" = ( +/obj/machinery/door/airlock/centcom, +/turf/open/floor/carpet, +/area/awaymission/centcomAway/cafe) +"bu" = ( +/obj/structure/closet/secure_closet/freezer/meat, +/turf/open/floor/plasteel/freezer{ + dir = 2 + }, +/area/awaymission/centcomAway/cafe) +"bv" = ( +/turf/open/floor/plasteel/freezer{ + dir = 2 + }, +/area/awaymission/centcomAway/cafe) +"bw" = ( +/obj/machinery/chem_master/condimaster{ + name = "CondiMaster Neo" + }, +/turf/open/floor/plasteel/freezer{ + dir = 2 + }, +/area/awaymission/centcomAway/cafe) +"bx" = ( +/obj/structure/disposalpipe/trunk, +/obj/machinery/disposal/bin, +/turf/open/floor/plating, +/area/awaymission/centcomAway/cafe) +"by" = ( +/turf/open/floor/plasteel, +/area/awaymission/centcomAway/cafe) +"bz" = ( +/obj/structure/closet/secure_closet/hydroponics, +/turf/open/floor/plasteel/black, +/area/awaymission/centcomAway/cafe) +"bA" = ( +/obj/structure/rack, +/obj/item/weapon/extinguisher/mini, +/obj/item/clothing/head/hardhat/red, +/obj/item/clothing/gloves/color/black, +/turf/open/floor/plating, +/area/awaymission/centcomAway/maint) +"bB" = ( +/turf/closed/wall/mineral/titanium, +/area/awaymission/centcomAway/hangar) +"bC" = ( +/obj/structure/window/reinforced, +/obj/structure/shuttle/engine/heater{ + icon_state = "heater"; + dir = 1 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/hangar) +"bD" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall7"; + dir = 2 + }, +/area/awaymission/centcomAway/hangar) +"bE" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall8"; + dir = 2 + }, +/area/awaymission/centcomAway/hangar) +"bF" = ( +/obj/machinery/door/airlock/external{ + name = "Salvage Shuttle Dock" + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/hangar) +"bG" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall4"; + dir = 2 + }, +/area/awaymission/centcomAway/hangar) +"bH" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall12"; + dir = 2 + }, +/area/awaymission/centcomAway/hangar) +"bI" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall11"; + dir = 2 + }, +/area/awaymission/centcomAway/hangar) +"bJ" = ( +/obj/structure/chair/comfy/brown, +/turf/open/floor/plasteel/bar{ + dir = 2 + }, +/area/awaymission/centcomAway/cafe) +"bK" = ( +/obj/structure/reagent_dispensers/beerkeg, +/turf/open/floor/plasteel/green{ + dir = 1 + }, +/area/awaymission/centcomAway/cafe) +"bL" = ( +/obj/structure/kitchenspike, +/turf/open/floor/plasteel/freezer{ + dir = 2 + }, +/area/awaymission/centcomAway/cafe) +"bM" = ( +/obj/machinery/gibber, +/turf/open/floor/plasteel/freezer{ + dir = 2 + }, +/area/awaymission/centcomAway/cafe) +"bN" = ( +/obj/machinery/autolathe, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/awaymission/centcomAway/general) +"bO" = ( +/turf/open/floor/plasteel/green/side{ + dir = 2 + }, +/area/awaymission/centcomAway/cafe) +"bP" = ( +/turf/open/floor/plasteel/green/side{ + dir = 6 + }, +/area/awaymission/centcomAway/cafe) +"bQ" = ( +/obj/structure/table, +/obj/item/clothing/glasses/welding, +/turf/open/floor/plating, +/area/awaymission/centcomAway/hangar) +"bR" = ( +/turf/open/floor/plating, +/area/awaymission/centcomAway/hangar) +"bS" = ( +/turf/open/floor/plating, +/turf/closed/wall/mineral/titanium/interior, +/area/awaymission/centcomAway/hangar) +"bT" = ( +/turf/open/floor/mineral/titanium/blue, +/turf/closed/wall/mineral/titanium/interior, +/area/awaymission/centcomAway/hangar) +"bU" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/mineral/titanium/blue, +/area/awaymission/centcomAway/hangar) +"bV" = ( +/turf/open/floor/mineral/titanium, +/area/awaymission/centcomAway/hangar) +"bW" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/toxin{ + pixel_x = -2; + pixel_y = 4 + }, +/obj/item/weapon/storage/firstaid/toxin, +/turf/open/floor/mineral/titanium/blue, +/area/awaymission/centcomAway/hangar) +"bX" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/fire, +/obj/item/weapon/storage/firstaid/fire{ + pixel_x = -2; + pixel_y = 4 + }, +/turf/open/floor/mineral/titanium/blue, +/area/awaymission/centcomAway/hangar) +"bY" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 2; + pixel_y = 0 + }, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = -2; + pixel_y = 4 + }, +/turf/open/floor/mineral/titanium/blue, +/area/awaymission/centcomAway/hangar) +"bZ" = ( +/turf/open/floor/plasteel/shuttle, +/turf/closed/wall/shuttle{ + icon_state = "swall_f5"; + dir = 2 + }, +/area/awaymission/centcomAway/hangar) +"ca" = ( +/turf/open/floor/plating, +/turf/closed/wall/shuttle{ + dir = 2; + icon_state = "swall_f10"; + layer = 2 + }, +/area/awaymission/centcomAway/hangar) +"cb" = ( +/obj/item/weapon/paper_bin, +/obj/structure/table, +/turf/open/floor/plasteel/redyellow, +/area/awaymission/centcomAway/cafe) +"cc" = ( +/obj/item/weapon/clipboard, +/obj/structure/table, +/turf/open/floor/plasteel/redyellow, +/area/awaymission/centcomAway/cafe) +"cd" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/awaymission/centcomAway/general) +"ce" = ( +/obj/structure/grille, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/awaymission/centcomAway/cafe) +"cf" = ( +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/awaymission/centcomAway/cafe) +"cg" = ( +/obj/structure/sign/botany, +/turf/closed/wall/r_wall, +/area/awaymission/centcomAway/cafe) +"ch" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/reagent_containers/spray/plantbgone{ + pixel_x = 0; + pixel_y = 3 + }, +/turf/open/floor/plasteel/hydrofloor, +/area/awaymission/centcomAway/cafe) +"ci" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/maint) +"cj" = ( +/obj/machinery/door/airlock/external, +/turf/open/floor/plating, +/area/awaymission/centcomAway/maint) +"ck" = ( +/obj/machinery/door/airlock/external, +/turf/open/floor/plating/airless, +/area/awaymission/centcomAway/maint) +"cl" = ( +/turf/open/floor/plating/airless, +/area/awaymission/centcomAway/maint) +"cm" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/awaymission/centcomAway/hangar) +"cn" = ( +/turf/open/floor/mineral/titanium/blue, +/area/awaymission/centcomAway/hangar) +"co" = ( +/obj/item/weapon/pen, +/obj/structure/table, +/turf/open/floor/plasteel/redyellow, +/area/awaymission/centcomAway/cafe) +"cp" = ( +/turf/open/floor/plasteel/grimy, +/area/awaymission/centcomAway/cafe) +"cq" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/grimy, +/area/awaymission/centcomAway/cafe) +"cr" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/awaymission/centcomAway/cafe) +"cs" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 5 + }, +/area/awaymission/centcomAway/general) +"ct" = ( +/turf/open/floor/plasteel/hydrofloor, +/area/awaymission/centcomAway/cafe) +"cu" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/maint) +"cv" = ( +/obj/structure/sign/vacuum, +/turf/closed/wall/r_wall, +/area/awaymission/centcomAway/maint) +"cw" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/turf/closed/wall/shuttle{ + icon_state = "swall_f5"; + dir = 2 + }, +/area/awaymission/centcomAway/hangar) +"cx" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + req_access_txt = "101" + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/hangar) +"cy" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/turf/closed/wall/shuttle{ + icon_state = "swall_f9"; + dir = 2 + }, +/area/awaymission/centcomAway/hangar) +"cz" = ( +/turf/closed/wall, +/area/awaymission/centcomAway/hangar) +"cA" = ( +/turf/closed/wall, +/area/awaymission/centcomAway/maint) +"cB" = ( +/obj/machinery/door/window/westleft, +/turf/open/floor/plasteel/grimy, +/area/awaymission/centcomAway/cafe) +"cC" = ( +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/grimy, +/area/awaymission/centcomAway/cafe) +"cD" = ( +/turf/open/floor/plating, +/area/awaymission/centcomAway/cafe) +"cE" = ( +/obj/machinery/seed_extractor, +/turf/open/floor/plasteel/hydrofloor, +/area/awaymission/centcomAway/cafe) +"cF" = ( +/obj/machinery/vending/hydroseeds{ + slogan_delay = 700 + }, +/turf/open/floor/plasteel/hydrofloor, +/area/awaymission/centcomAway/cafe) +"cG" = ( +/obj/machinery/vending/hydronutrients, +/turf/open/floor/plasteel/hydrofloor, +/area/awaymission/centcomAway/cafe) +"cH" = ( +/obj/machinery/biogenerator, +/turf/open/floor/plasteel/hydrofloor, +/area/awaymission/centcomAway/cafe) +"cI" = ( +/turf/closed/wall/shuttle{ + icon_state = "swallc1"; + dir = 2 + }, +/area/awaymission/centcomAway/hangar) +"cJ" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin, +/turf/open/floor/mineral/titanium/yellow, +/area/awaymission/centcomAway/hangar) +"cK" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/fancy/donut_box, +/turf/open/floor/mineral/titanium/yellow, +/area/awaymission/centcomAway/hangar) +"cL" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/pen, +/turf/open/floor/mineral/titanium/yellow, +/area/awaymission/centcomAway/hangar) +"cM" = ( +/obj/structure/table/reinforced, +/turf/open/floor/mineral/titanium/yellow, +/area/awaymission/centcomAway/hangar) +"cN" = ( +/obj/machinery/sleeper{ + icon_state = "sleeper-open"; + dir = 8 + }, +/turf/open/floor/mineral/titanium/blue, +/area/awaymission/centcomAway/hangar) +"cO" = ( +/obj/machinery/sleep_console{ + icon_state = "console"; + dir = 8 + }, +/turf/open/floor/mineral/titanium/blue, +/area/awaymission/centcomAway/hangar) +"cP" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/blue, +/area/awaymission/centcomAway/hangar) +"cQ" = ( +/turf/closed/wall/shuttle{ + icon_state = "swallc2"; + dir = 2 + }, +/area/awaymission/centcomAway/hangar) +"cR" = ( +/turf/open/floor/plating, +/area/awaymission/centcomAway/hangar) +"cS" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/grimy, +/area/awaymission/centcomAway/cafe) +"cT" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/neck/stethoscope, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 1 + }, +/area/awaymission/centcomAway/general) +"cU" = ( +/obj/machinery/computer/secure_data, +/turf/open/floor/mineral/titanium/yellow, +/area/awaymission/centcomAway/hangar) +"cV" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/awaymission/centcomAway/hangar) +"cW" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/awaymission/centcomAway/hangar) +"cX" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/clipboard, +/obj/item/weapon/stamp, +/turf/open/floor/mineral/titanium/yellow, +/area/awaymission/centcomAway/hangar) +"cY" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 9 + }, +/area/awaymission/centcomAway/general) +"cZ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/maint) +"da" = ( +/obj/structure/table, +/obj/item/device/assembly/flash/handheld, +/turf/open/floor/mineral/titanium/yellow, +/area/awaymission/centcomAway/hangar) +"db" = ( +/turf/open/floor/mineral/titanium/yellow, +/area/awaymission/centcomAway/hangar) +"dc" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/blue, +/area/awaymission/centcomAway/hangar) +"dd" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/awaymission/centcomAway/hangar) +"de" = ( +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/awaymission/centcomAway/hangar) +"df" = ( +/turf/open/floor/plasteel/red, +/area/awaymission/centcomAway/cafe) +"dg" = ( +/obj/structure/reagent_dispensers/beerkeg, +/turf/open/floor/plasteel/red, +/area/awaymission/centcomAway/cafe) +"dh" = ( +/obj/structure/table, +/turf/open/floor/plasteel/red, +/area/awaymission/centcomAway/cafe) +"di" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/red, +/area/awaymission/centcomAway/cafe) +"dj" = ( +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/awaymission/centcomAway/cafe) +"dk" = ( +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/awaymission/centcomAway/cafe) +"dl" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/handcuffs, +/turf/open/floor/mineral/titanium/yellow, +/area/awaymission/centcomAway/hangar) +"dm" = ( +/obj/machinery/door/window/northright{ + base_state = "right"; + dir = 4; + icon_state = "right"; + name = "Security Desk"; + req_access_txt = "103" + }, +/turf/open/floor/mineral/titanium/yellow, +/area/awaymission/centcomAway/hangar) +"dn" = ( +/obj/structure/closet/crate, +/turf/open/floor/plating/warnplate{ + dir = 9 + }, +/area/awaymission/centcomAway/hangar) +"do" = ( +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/awaymission/centcomAway/hangar) +"dp" = ( +/obj/structure/closet/crate/large, +/turf/open/floor/plating/warnplate{ + dir = 5 + }, +/area/awaymission/centcomAway/hangar) +"dq" = ( +/obj/structure/dresser, +/turf/open/floor/carpet, +/area/awaymission/centcomAway/cafe) +"dr" = ( +/obj/structure/table/reinforced, +/obj/item/device/t_scanner, +/turf/open/floor/plasteel/yellow/side, +/area/awaymission/centcomAway/general) +"ds" = ( +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/plating, +/area/awaymission/centcomAway/cafe) +"dt" = ( +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/awaymission/centcomAway/cafe) +"du" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall0"; + dir = 2 + }, +/area/awaymission/centcomAway/hangar) +"dv" = ( +/obj/structure/closet/crate, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/awaymission/centcomAway/hangar) +"dw" = ( +/obj/structure/tank_dispenser, +/turf/open/floor/plasteel/yellow/side{ + dir = 6 + }, +/area/awaymission/centcomAway/general) +"dx" = ( +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/awaymission/centcomAway/cafe) +"dy" = ( +/obj/structure/closet/firecloset/full, +/turf/open/floor/plating, +/area/awaymission/centcomAway/maint) +"dz" = ( +/obj/structure/bed, +/turf/open/floor/mineral/titanium/blue, +/area/awaymission/centcomAway/hangar) +"dA" = ( +/obj/structure/grille, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/hangar) +"dB" = ( +/obj/structure/ore_box, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/awaymission/centcomAway/hangar) +"dC" = ( +/obj/structure/table, +/obj/item/weapon/storage/fancy/donut_box, +/turf/open/floor/plasteel/redyellow, +/area/awaymission/centcomAway/cafe) +"dD" = ( +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/red, +/area/awaymission/centcomAway/cafe) +"dE" = ( +/obj/structure/sink/kitchen{ + pixel_y = 28 + }, +/turf/open/floor/plasteel/red, +/area/awaymission/centcomAway/cafe) +"dF" = ( +/obj/structure/table, +/obj/machinery/processor{ + pixel_x = 0; + pixel_y = 10 + }, +/turf/open/floor/plasteel/red, +/area/awaymission/centcomAway/cafe) +"dG" = ( +/obj/structure/bed, +/turf/open/floor/mineral/titanium, +/area/awaymission/centcomAway/hangar) +"dH" = ( +/obj/structure/table, +/obj/machinery/microwave{ + pixel_x = -3; + pixel_y = 6 + }, +/turf/open/floor/plasteel/red, +/area/awaymission/centcomAway/cafe) +"dI" = ( +/turf/open/floor/plasteel/black/corner{ + dir = 1 + }, +/area/awaymission/centcomAway/general) +"dJ" = ( +/turf/open/floor/plasteel/black/corner{ + dir = 4 + }, +/area/awaymission/centcomAway/general) +"dK" = ( +/turf/open/floor/plasteel/yellow/side, +/area/awaymission/centcomAway/general) +"dL" = ( +/obj/machinery/door/airlock/hatch{ + name = "Rest Room"; + req_access_txt = "0" + }, +/turf/open/floor/mineral/titanium, +/area/awaymission/centcomAway/hangar) +"dM" = ( +/obj/structure/closet/crate/large, +/turf/open/floor/plating/warnplate{ + dir = 10 + }, +/area/awaymission/centcomAway/hangar) +"dN" = ( +/obj/structure/closet/crate, +/turf/open/floor/plating/warnplate{ + dir = 2 + }, +/area/awaymission/centcomAway/hangar) +"dO" = ( +/turf/open/floor/plating/warnplate{ + dir = 6 + }, +/area/awaymission/centcomAway/hangar) +"dP" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 10 + }, +/area/awaymission/centcomAway/general) +"dQ" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + req_access_txt = "101" + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/cafe) +"dR" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall2"; + dir = 2 + }, +/area/awaymission/centcomAway/hangar) +"dS" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plating, +/area/awaymission/centcomAway/cafe) +"dT" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plating, +/area/awaymission/centcomAway/cafe) +"dU" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plating, +/area/awaymission/centcomAway/cafe) +"dV" = ( +/obj/structure/closet/secure_closet/freezer/kitchen, +/turf/open/floor/plasteel/red, +/area/awaymission/centcomAway/cafe) +"dW" = ( +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/awaymission/centcomAway/cafe) +"dX" = ( +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/awaymission/centcomAway/cafe) +"dY" = ( +/obj/machinery/door/airlock/centcom, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/awaymission/centcomAway/general) +"dZ" = ( +/obj/structure/table, +/obj/structure/bedsheetbin, +/turf/open/floor/mineral/titanium/blue, +/area/awaymission/centcomAway/hangar) +"ea" = ( +/obj/structure/table, +/obj/item/weapon/hand_labeler, +/turf/open/floor/mineral/titanium/blue, +/area/awaymission/centcomAway/hangar) +"eb" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/donkpockets, +/turf/open/floor/mineral/titanium/blue, +/area/awaymission/centcomAway/hangar) +"ec" = ( +/obj/structure/flora/ausbushes, +/turf/open/floor/plasteel{ + name = "plating"; + icon_state = "asteroid2" + }, +/area/awaymission/centcomAway/cafe) +"ed" = ( +/obj/structure/flora/ausbushes, +/turf/open/floor/plasteel{ + name = "plating"; + icon_state = "asteroid11" + }, +/area/awaymission/centcomAway/cafe) +"ee" = ( +/obj/structure/flora/ausbushes, +/turf/open/floor/plasteel{ + name = "plating"; + icon_state = "asteroid" + }, +/area/awaymission/centcomAway/cafe) +"ef" = ( +/obj/structure/flora/ausbushes, +/turf/open/floor/plasteel{ + name = "plating"; + icon_state = "asteroid3" + }, +/area/awaymission/centcomAway/cafe) +"eg" = ( +/obj/structure/flora/ausbushes, +/turf/open/floor/plasteel{ + name = "plating"; + icon_state = "asteroid10" + }, +/area/awaymission/centcomAway/cafe) +"eh" = ( +/obj/structure/flora/ausbushes, +/turf/open/floor/plasteel{ + name = "plating"; + icon_state = "asteroid9" + }, +/area/awaymission/centcomAway/cafe) +"ei" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/cafe) +"ej" = ( +/obj/machinery/vending/dinnerware, +/turf/open/floor/plasteel/red, +/area/awaymission/centcomAway/cafe) +"ek" = ( +/obj/structure/closet/chefcloset, +/turf/open/floor/plasteel/red, +/area/awaymission/centcomAway/cafe) +"el" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/red, +/area/awaymission/centcomAway/cafe) +"em" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/turf/open/floor/plasteel/red, +/area/awaymission/centcomAway/cafe) +"en" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder, +/turf/open/floor/plasteel/red, +/area/awaymission/centcomAway/cafe) +"eo" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/donkpockets{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/kitchen/rollingpin, +/turf/open/floor/plasteel/red, +/area/awaymission/centcomAway/cafe) +"ep" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/glass/beaker, +/obj/item/weapon/reagent_containers/food/condiment/enzyme, +/turf/open/floor/plasteel/red, +/area/awaymission/centcomAway/cafe) +"eq" = ( +/turf/open/floor/plating, +/turf/closed/wall/shuttle{ + icon_state = "swall_f5"; + dir = 2 + }, +/area/awaymission/centcomAway/hangar) +"er" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall14"; + dir = 2 + }, +/area/awaymission/centcomAway/hangar) +"es" = ( +/turf/closed/wall/shuttle{ + icon_state = "swallc4"; + dir = 2 + }, +/area/awaymission/centcomAway/hangar) +"et" = ( +/obj/machinery/door/airlock/hatch{ + name = "Cockpit"; + req_access_txt = "109" + }, +/turf/open/floor/mineral/titanium, +/area/awaymission/centcomAway/hangar) +"eu" = ( +/turf/closed/wall/r_wall, +/area/awaymission/centcomAway/general) +"ev" = ( +/turf/open/floor/plasteel/black, +/area/awaymission/centcomAway/general) +"ew" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/awaymission/centcomAway/maint) +"ex" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/awaymission/centcomAway/maint) +"ey" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/maint) +"ez" = ( +/obj/structure/table, +/obj/item/device/radio/off, +/turf/open/floor/mineral/titanium/blue, +/area/awaymission/centcomAway/hangar) +"eA" = ( +/obj/structure/chair{ + dir = 4; + name = "Prosecution" + }, +/turf/open/floor/mineral/titanium/blue, +/area/awaymission/centcomAway/hangar) +"eB" = ( +/obj/structure/filingcabinet, +/turf/open/floor/mineral/titanium/blue, +/area/awaymission/centcomAway/hangar) +"eC" = ( +/turf/open/floor/plasteel/green/side{ + dir = 9 + }, +/area/awaymission/centcomAway/general) +"eD" = ( +/turf/open/floor/plasteel{ + icon_state = "floor" + }, +/area/awaymission/centcomAway/general) +"eE" = ( +/turf/open/floor/plasteel/green/side{ + dir = 5 + }, +/area/awaymission/centcomAway/general) +"eF" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/awaymission/centcomAway/general) +"eG" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 6 + }, +/area/awaymission/centcomAway/general) +"eH" = ( +/obj/machinery/sleeper{ + icon_state = "sleeper-open"; + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/awaymission/centcomAway/general) +"eI" = ( +/obj/machinery/sleep_console{ + icon_state = "console"; + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/awaymission/centcomAway/general) +"eJ" = ( +/turf/open/floor/plasteel/white, +/area/awaymission/centcomAway/general) +"eK" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/tank/internals/anesthetic, +/obj/item/clothing/mask/breath/medical, +/turf/open/floor/plasteel/white, +/area/awaymission/centcomAway/general) +"eL" = ( +/obj/machinery/implantchair, +/turf/open/floor/plasteel/white, +/area/awaymission/centcomAway/general) +"eM" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/extinguisher/mini, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 1 + }, +/area/awaymission/centcomAway/general) +"eN" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/wood, +/area/awaymission/centcomAway/courtroom) +"eO" = ( +/obj/machinery/clonepod, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 1 + }, +/area/awaymission/centcomAway/general) +"eP" = ( +/obj/machinery/computer/cloning, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 1 + }, +/area/awaymission/centcomAway/general) +"eQ" = ( +/obj/machinery/dna_scannernew, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 1 + }, +/area/awaymission/centcomAway/general) +"eR" = ( +/obj/structure/chair, +/turf/open/floor/mineral/titanium/blue, +/area/awaymission/centcomAway/hangar) +"eS" = ( +/obj/machinery/telecomms/relay/preset/ruskie, +/turf/open/floor/plasteel/delivery, +/area/awaymission/centcomAway/general) +"eT" = ( +/obj/machinery/door/airlock/engineering{ + name = "Engineering Access"; + req_access_txt = "10" + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/general) +"eU" = ( +/obj/machinery/door/window/northleft, +/obj/structure/chair, +/turf/open/floor/carpet, +/area/awaymission/centcomAway/courtroom) +"eV" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/general) +"eW" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/awaymission/centcomAway/general) +"eX" = ( +/turf/open/floor/plasteel/whitepurple/side{ + dir = 4 + }, +/area/awaymission/centcomAway/general) +"eY" = ( +/turf/closed/wall, +/area/awaymission/centcomAway/courtroom) +"eZ" = ( +/obj/structure/table, +/obj/item/weapon/storage/lockbox, +/turf/open/floor/mineral/titanium/blue, +/area/awaymission/centcomAway/hangar) +"fa" = ( +/obj/structure/table, +/turf/open/floor/mineral/titanium/blue, +/area/awaymission/centcomAway/hangar) +"fb" = ( +/obj/structure/frame/computer, +/turf/open/floor/mineral/titanium/blue, +/area/awaymission/centcomAway/hangar) +"fc" = ( +/obj/structure/table, +/obj/item/weapon/clipboard, +/obj/item/weapon/pen, +/turf/open/floor/mineral/titanium/blue, +/area/awaymission/centcomAway/hangar) +"fd" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin, +/turf/open/floor/mineral/titanium/blue, +/area/awaymission/centcomAway/hangar) +"fe" = ( +/turf/open/floor/plasteel/green/side{ + dir = 10 + }, +/area/awaymission/centcomAway/general) +"ff" = ( +/turf/open/floor/plasteel/green/side, +/area/awaymission/centcomAway/general) +"fg" = ( +/obj/structure/table/wood, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/wood, +/area/awaymission/centcomAway/courtroom) +"fh" = ( +/obj/structure/table/wood, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/awaymission/centcomAway/courtroom) +"fi" = ( +/turf/open/floor/plasteel/purple/side{ + dir = 1 + }, +/area/awaymission/centcomAway/general) +"fj" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/turf/open/floor/carpet, +/area/awaymission/centcomAway/courtroom) +"fk" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/prisoner, +/turf/open/floor/carpet, +/area/awaymission/centcomAway/courtroom) +"fl" = ( +/obj/structure/closet/secure_closet/security, +/turf/open/floor/carpet, +/area/awaymission/centcomAway/courtroom) +"fm" = ( +/turf/open/floor/plasteel/black, +/area/awaymission/centcomAway/courtroom) +"fn" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plating, +/area/awaymission/centcomAway/hangar) +"fo" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plating, +/area/awaymission/centcomAway/hangar) +"fp" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/hangar) +"fq" = ( +/obj/machinery/power/terminal, +/turf/open/floor/plating, +/area/awaymission/centcomAway/general) +"fr" = ( +/turf/open/floor/plating, +/area/awaymission/centcomAway/general) +"fs" = ( +/turf/open/floor/plasteel/purple/corner{ + dir = 4 + }, +/area/awaymission/centcomAway/general) +"ft" = ( +/obj/structure/sign/electricshock, +/turf/closed/wall/r_wall, +/area/awaymission/centcomAway/general) +"fu" = ( +/obj/structure/grille, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/general) +"fv" = ( +/obj/structure/grille, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/general) +"fw" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/general) +"fx" = ( +/obj/structure/grille, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/general) +"fy" = ( +/obj/structure/sign/bluecross_2, +/turf/closed/wall/r_wall, +/area/awaymission/centcomAway/general) +"fz" = ( +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/awaymission/centcomAway/general) +"fA" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/item/weapon/storage/box/monkeycubes, +/turf/open/floor/plasteel{ + icon_state = "floor" + }, +/area/awaymission/centcomAway/general) +"fB" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plasteel{ + icon_state = "floor" + }, +/area/awaymission/centcomAway/general) +"fC" = ( +/obj/machinery/computer/scan_consolenew, +/obj/item/weapon/dnainjector/telemut/darkbundle, +/turf/open/floor/plasteel/white, +/area/awaymission/centcomAway/general) +"fD" = ( +/obj/machinery/dna_scannernew, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 4 + }, +/area/awaymission/centcomAway/general) +"fE" = ( +/turf/open/floor/carpet, +/area/awaymission/centcomAway/courtroom) +"fF" = ( +/obj/structure/table/wood, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/awaymission/centcomAway/courtroom) +"fG" = ( +/obj/machinery/door/airlock/glass_engineering{ + name = "Engineering"; + req_access_txt = "32" + }, +/turf/open/floor/plasteel{ + icon_state = "floor" + }, +/area/awaymission/centcomAway/general) +"fH" = ( +/obj/structure/table/wood, +/turf/open/floor/plasteel/black, +/area/awaymission/centcomAway/courtroom) +"fI" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/black, +/area/awaymission/centcomAway/courtroom) +"fJ" = ( +/obj/structure/table/wood, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/wood, +/area/awaymission/centcomAway/courtroom) +"fK" = ( +/obj/machinery/door/window/northleft, +/turf/open/floor/wood, +/area/awaymission/centcomAway/courtroom) +"fL" = ( +/obj/structure/table/wood, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/wood, +/area/awaymission/centcomAway/courtroom) +"fM" = ( +/obj/machinery/power/smes, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/general) +"fN" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/general) +"fO" = ( +/obj/machinery/power/smes, +/obj/structure/cable, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/general) +"fP" = ( +/turf/open/floor/plasteel/green/side{ + dir = 6 + }, +/area/awaymission/centcomAway/general) +"fQ" = ( +/obj/structure/sign/science, +/turf/closed/wall/r_wall, +/area/awaymission/centcomAway/general) +"fR" = ( +/obj/machinery/door/window/eastright, +/turf/open/floor/plasteel{ + icon_state = "floor" + }, +/area/awaymission/centcomAway/general) +"fS" = ( +/obj/machinery/door/airlock/centcom, +/turf/open/floor/plasteel/black, +/area/awaymission/centcomAway/courtroom) +"fT" = ( +/obj/machinery/door/airlock/centcom{ + name = "Centcom Security"; + opacity = 1; + req_access_txt = "101" + }, +/turf/open/floor/carpet, +/area/awaymission/centcomAway/courtroom) +"fU" = ( +/obj/machinery/door/airlock/glass{ + name = "Med-Sci"; + req_access_txt = "9" + }, +/turf/open/floor/plasteel/white, +/area/awaymission/centcomAway/general) +"fV" = ( +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/awaymission/centcomAway/general) +"fW" = ( +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/awaymission/centcomAway/general) +"fX" = ( +/turf/open/floor/plasteel/green/corner, +/area/awaymission/centcomAway/general) +"fY" = ( +/turf/open/floor/plasteel/green/corner{ + dir = 8 + }, +/area/awaymission/centcomAway/general) +"fZ" = ( +/obj/structure/table, +/turf/open/floor/wood, +/area/awaymission/centcomAway/courtroom) +"ga" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/wood, +/area/awaymission/centcomAway/courtroom) +"gb" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/awaymission/centcomAway/maint) +"gc" = ( +/turf/open/floor/plasteel/green/side{ + dir = 4 + }, +/area/awaymission/centcomAway/general) +"gd" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/general) +"ge" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/general) +"gf" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/general) +"gg" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plating, +/area/awaymission/centcomAway/general) +"gh" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/general) +"gi" = ( +/turf/open/floor/plasteel/green/side{ + dir = 8 + }, +/area/awaymission/centcomAway/general) +"gj" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/awaymission/centcomAway/courtroom) +"gk" = ( +/obj/machinery/door/airlock/centcom{ + name = "Centcom Security"; + opacity = 1; + req_access_txt = "101" + }, +/turf/open/floor/plasteel/black, +/area/awaymission/centcomAway/courtroom) +"gl" = ( +/obj/item/xenos_claw, +/turf/open/floor/engine, +/area/awaymission/centcomAway/general) +"gm" = ( +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/awaymission/centcomAway/hangar) +"gn" = ( +/turf/open/floor/plating/warnplate{ + dir = 9 + }, +/area/awaymission/centcomAway/hangar) +"go" = ( +/obj/structure/table, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/awaymission/centcomAway/hangar) +"gp" = ( +/obj/machinery/shieldgen, +/turf/open/floor/plating, +/area/awaymission/centcomAway/maint) +"gq" = ( +/turf/open/floor/plasteel/green/corner{ + dir = 4 + }, +/area/awaymission/centcomAway/general) +"gr" = ( +/obj/structure/grille, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/general) +"gs" = ( +/obj/machinery/pdapainter, +/turf/open/floor/plasteel{ + icon_state = "floor" + }, +/area/awaymission/centcomAway/general) +"gt" = ( +/obj/machinery/photocopier, +/obj/item/weapon/paper/ccaMemo, +/turf/open/floor/plasteel{ + icon_state = "floor" + }, +/area/awaymission/centcomAway/general) +"gu" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger{ + pixel_y = 4 + }, +/turf/open/floor/plasteel{ + icon_state = "floor" + }, +/area/awaymission/centcomAway/general) +"gv" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/hand_labeler, +/obj/item/hand_labeler_refill, +/turf/open/floor/plasteel{ + icon_state = "floor" + }, +/area/awaymission/centcomAway/general) +"gw" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin, +/turf/open/floor/plasteel{ + icon_state = "floor" + }, +/area/awaymission/centcomAway/general) +"gx" = ( +/obj/structure/filingcabinet, +/turf/open/floor/plasteel{ + icon_state = "floor" + }, +/area/awaymission/centcomAway/general) +"gy" = ( +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/plasteel{ + icon_state = "floor" + }, +/area/awaymission/centcomAway/general) +"gz" = ( +/turf/open/floor/plasteel/green/corner{ + dir = 1 + }, +/area/awaymission/centcomAway/general) +"gA" = ( +/turf/closed/wall/r_wall, +/area/awaymission/centcomAway/courtroom) +"gB" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/awaymission/centcomAway/courtroom) +"gC" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/awaymission/centcomAway/courtroom) +"gD" = ( +/turf/open/floor/plasteel/black, +/area/awaymission/centcomAway/hangar) +"gE" = ( +/obj/structure/closet/secure_closet/engineering_welding, +/turf/open/floor/plating, +/area/awaymission/centcomAway/hangar) +"gF" = ( +/obj/machinery/door/airlock/glass_command{ + name = "Bridge"; + req_access_txt = "19" + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/general) +"gG" = ( +/obj/structure/chair/comfy/beige{ + dir = 1; + icon_state = "comfychair_beige" + }, +/turf/open/floor/plasteel{ + icon_state = "floor" + }, +/area/awaymission/centcomAway/general) +"gH" = ( +/obj/structure/chair, +/turf/open/floor/carpet, +/area/awaymission/centcomAway/courtroom) +"gI" = ( +/obj/machinery/portable_atmospherics/canister/carbon_dioxide, +/turf/open/floor/plating, +/area/awaymission/centcomAway/maint) +"gJ" = ( +/obj/structure/bodycontainer/morgue, +/turf/open/floor/engine, +/area/awaymission/centcomAway/general) +"gK" = ( +/turf/open/floor/engine, +/area/awaymission/centcomAway/general) +"gL" = ( +/obj/machinery/door/airlock/centcom{ + name = "Special Operations"; + opacity = 1; + req_access_txt = "103" + }, +/turf/open/floor/plasteel/black, +/area/awaymission/centcomAway/general) +"gM" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/general) +"gN" = ( +/obj/machinery/computer/robotics, +/turf/open/floor/plasteel{ + icon_state = "floor" + }, +/area/awaymission/centcomAway/general) +"gO" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/plasteel{ + icon_state = "floor" + }, +/area/awaymission/centcomAway/general) +"gP" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/turf/open/floor/plasteel{ + icon_state = "floor" + }, +/area/awaymission/centcomAway/general) +"gQ" = ( +/obj/machinery/computer/med_data, +/turf/open/floor/plasteel{ + icon_state = "floor" + }, +/area/awaymission/centcomAway/general) +"gR" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plasteel/black, +/area/awaymission/centcomAway/hangar) +"gS" = ( +/turf/open/floor/plating, +/obj/structure/shuttle/engine/propulsion/burst{ + dir = 4 + }, +/turf/closed/wall/mineral/titanium/interior, +/area/awaymission/centcomAway/hangar) +"gT" = ( +/turf/open/floor/plasteel/black, +/turf/closed/wall/mineral/titanium/interior, +/area/awaymission/centcomAway/hangar) +"gU" = ( +/obj/structure/table, +/obj/item/weapon/paper/ccaMemo, +/turf/open/floor/plating, +/area/awaymission/centcomAway/hangar) +"gV" = ( +/turf/open/floor/plasteel/black/corner, +/area/awaymission/centcomAway/general) +"gW" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/awaymission/centcomAway/general) +"gX" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/general) +"gY" = ( +/obj/machinery/computer/card, +/turf/open/floor/plasteel{ + icon_state = "floor" + }, +/area/awaymission/centcomAway/general) +"gZ" = ( +/obj/structure/chair/office/dark, +/turf/open/floor/plasteel{ + icon_state = "floor" + }, +/area/awaymission/centcomAway/general) +"ha" = ( +/obj/machinery/computer/crew, +/turf/open/floor/plasteel{ + icon_state = "floor" + }, +/area/awaymission/centcomAway/general) +"hb" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/black, +/area/awaymission/centcomAway/courtroom) +"hc" = ( +/obj/machinery/door/unpowered/shuttle, +/turf/open/floor/mineral/titanium/blue, +/area/awaymission/centcomAway/hangar) +"hd" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + pixel_y = 25 + }, +/turf/open/floor/mineral/titanium/blue, +/area/awaymission/centcomAway/hangar) +"he" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/hangar) +"hf" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/awaymission/centcomAway/hangar) +"hg" = ( +/obj/structure/table, +/obj/item/stack/cable_coil, +/turf/open/floor/plating, +/area/awaymission/centcomAway/hangar) +"hh" = ( +/obj/structure/closet/body_bag, +/turf/open/floor/engine, +/area/awaymission/centcomAway/general) +"hi" = ( +/obj/structure/sign/biohazard, +/turf/closed/wall/r_wall, +/area/awaymission/centcomAway/general) +"hj" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/box/PDAs, +/turf/open/floor/plasteel{ + icon_state = "floor" + }, +/area/awaymission/centcomAway/general) +"hk" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder/red, +/turf/open/floor/plasteel{ + icon_state = "floor" + }, +/area/awaymission/centcomAway/general) +"hl" = ( +/obj/machinery/computer/secure_data, +/turf/open/floor/plasteel{ + icon_state = "floor" + }, +/area/awaymission/centcomAway/general) +"hm" = ( +/obj/machinery/computer/communications, +/turf/open/floor/plasteel{ + icon_state = "floor" + }, +/area/awaymission/centcomAway/general) +"hn" = ( +/obj/machinery/computer/security, +/turf/open/floor/plasteel{ + icon_state = "floor" + }, +/area/awaymission/centcomAway/general) +"ho" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder/blue, +/turf/open/floor/plasteel{ + icon_state = "floor" + }, +/area/awaymission/centcomAway/general) +"hp" = ( +/obj/structure/table/reinforced, +/turf/open/floor/plasteel{ + icon_state = "floor" + }, +/area/awaymission/centcomAway/general) +"hq" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/closed/wall/r_wall, +/area/awaymission/centcomAway/courtroom) +"hr" = ( +/obj/structure/grille, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/courtroom) +"hs" = ( +/obj/machinery/door/airlock/centcom, +/turf/open/floor/carpet, +/area/awaymission/centcomAway/courtroom) +"ht" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/courtroom) +"hu" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/hangar) +"hv" = ( +/turf/open/floor/plating, +/obj/structure/shuttle/engine/propulsion/burst{ + dir = 4 + }, +/turf/closed/wall/shuttle{ + icon_state = "swall_f5"; + dir = 2 + }, +/area/awaymission/centcomAway/hangar) +"hw" = ( +/turf/open/floor/plasteel/black, +/turf/closed/wall/shuttle{ + icon_state = "swall_f9"; + dir = 2 + }, +/area/awaymission/centcomAway/hangar) +"hx" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/yellow, +/obj/item/weapon/storage/toolbox/electrical{ + pixel_y = 5 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/hangar) +"hy" = ( +/obj/structure/sign/securearea, +/turf/closed/wall/r_wall, +/area/awaymission/centcomAway/general) +"hz" = ( +/turf/closed/wall, +/area/awaymission/centcomAway/general) +"hA" = ( +/obj/structure/sink{ + icon_state = "sink"; + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/structure/mirror{ + pixel_x = -28 + }, +/turf/open/floor/plasteel/white, +/area/awaymission/centcomAway/general) +"hB" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/awaymission/centcomAway/courtroom) +"hC" = ( +/turf/open/floor/plasteel/white, +/area/awaymission/centcomAway/courtroom) +"hD" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/awaymission/centcomAway/courtroom) +"hE" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/awaymission/centcomAway/courtroom) +"hF" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/courtroom) +"hG" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical, +/turf/open/floor/plating, +/area/awaymission/centcomAway/hangar) +"hH" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/box/bodybags, +/turf/open/floor/engine, +/area/awaymission/centcomAway/general) +"hI" = ( +/turf/open/floor/plasteel/green/side{ + dir = 1 + }, +/area/awaymission/centcomAway/general) +"hJ" = ( +/obj/structure/toilet{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/awaymission/centcomAway/general) +"hK" = ( +/obj/machinery/button/door{ + id = "XCCHangar1"; + name = "Hangar Bay Blast Doors"; + pixel_x = -28; + pixel_y = 7; + req_access_txt = "2" + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/awaymission/centcomAway/hangar) +"hL" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plasteel/black, +/area/awaymission/centcomAway/hangar) +"hM" = ( +/obj/structure/rack, +/obj/item/clothing/ears/earmuffs{ + pixel_x = -3; + pixel_y = -2 + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/awaymission/centcomAway/hangar) +"hN" = ( +/obj/structure/rack, +/obj/item/clothing/ears/earmuffs{ + pixel_x = -3; + pixel_y = -2 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/hangar) +"hO" = ( +/obj/structure/closet, +/turf/open/floor/plating, +/area/awaymission/centcomAway/hangar) +"hP" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/hangar) +"hQ" = ( +/obj/machinery/power/solar/fake, +/turf/open/floor/plasteel/airless/solarpanel, +/area/awaymission/centcomAway/maint) +"hR" = ( +/obj/structure/closet/secure_closet/medical2, +/turf/open/floor/plasteel/white, +/area/awaymission/centcomAway/courtroom) +"hS" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin, +/turf/open/floor/wood, +/area/awaymission/centcomAway/courtroom) +"hT" = ( +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/awaymission/centcomAway/courtroom) +"hU" = ( +/obj/structure/sign/vacuum, +/turf/closed/wall/r_wall, +/area/awaymission/centcomAway/hangar) +"hV" = ( +/obj/structure/bodycontainer/crematorium, +/turf/open/floor/engine, +/area/awaymission/centcomAway/general) +"hW" = ( +/obj/item/weapon/twohanded/required/kirbyplants, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/awaymission/centcomAway/general) +"hX" = ( +/obj/machinery/button/crematorium{ + pixel_x = 0; + pixel_y = 25 + }, +/turf/open/floor/engine, +/area/awaymission/centcomAway/general) +"hY" = ( +/obj/structure/closet/secure_closet/injection, +/turf/open/floor/plasteel/white, +/area/awaymission/centcomAway/courtroom) +"hZ" = ( +/obj/structure/bed, +/turf/open/floor/plasteel/white, +/area/awaymission/centcomAway/courtroom) +"ia" = ( +/obj/structure/closet/secure_closet/courtroom, +/turf/open/floor/wood, +/area/awaymission/centcomAway/courtroom) +"ib" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/wood, +/area/awaymission/centcomAway/courtroom) +"ic" = ( +/turf/open/floor/wood, +/area/awaymission/centcomAway/courtroom) +"id" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plating, +/area/awaymission/centcomAway/courtroom) +"ie" = ( +/obj/machinery/vending/snack, +/turf/open/floor/plasteel/black, +/area/awaymission/centcomAway/courtroom) +"if" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/awaymission/centcomAway/courtroom) +"ig" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel/black, +/area/awaymission/centcomAway/courtroom) +"ih" = ( +/obj/machinery/mech_bay_recharge_port, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/hangar) +"ii" = ( +/turf/open/floor/mech_bay_recharge_floor, +/area/awaymission/centcomAway/hangar) +"ij" = ( +/obj/machinery/computer/mech_bay_power_console, +/turf/open/floor/bluegrid, +/area/awaymission/centcomAway/hangar) +"ik" = ( +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/awaymission/centcomAway/hangar) +"il" = ( +/obj/structure/mecha_wreckage/ripley, +/turf/open/floor/plasteel/black, +/area/awaymission/centcomAway/hangar) +"im" = ( +/obj/structure/closet/secure_closet/personal, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/awaymission/centcomAway/hangar) +"in" = ( +/obj/structure/rack, +/obj/item/clothing/glasses/night, +/turf/open/floor/plating, +/area/awaymission/centcomAway/hangar) +"io" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/awaymission/centcomAway/hangar) +"ip" = ( +/obj/structure/bookcase, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plasteel/grimy, +/area/awaymission/centcomAway/general) +"iq" = ( +/obj/structure/closet/secure_closet/hos, +/turf/open/floor/plasteel/grimy, +/area/awaymission/centcomAway/general) +"ir" = ( +/obj/structure/closet/crate/trashcart, +/obj/item/weapon/reagent_containers/spray/cleaner, +/obj/item/weapon/reagent_containers/glass/bucket, +/turf/open/floor/plasteel/black, +/area/awaymission/centcomAway/general) +"is" = ( +/obj/structure/bookcase, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plasteel/grimy, +/area/awaymission/centcomAway/general) +"it" = ( +/obj/machinery/door/poddoor/shutters{ + id = "XCCsec3"; + name = "XCC Main Access Shutters" + }, +/turf/open/floor/plasteel/delivery, +/area/awaymission/centcomAway/general) +"iu" = ( +/obj/structure/flora/ausbushes, +/turf/open/floor/plasteel{ + icon_state = "asteroid6"; + name = "sand" + }, +/area/awaymission/centcomAway/general) +"iv" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating, +/area/space) +"iw" = ( +/obj/structure/grille, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/closed/wall/r_wall, +/area/awaymission/centcomAway/courtroom) +"ix" = ( +/obj/structure/grille, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/awaymission/centcomAway/courtroom) +"iy" = ( +/obj/machinery/door/poddoor{ + id = "XCCMechs"; + name = "XCC Mech Bay" + }, +/turf/open/floor/plasteel/delivery, +/area/awaymission/centcomAway/hangar) +"iz" = ( +/turf/open/floor/plasteel/bot, +/area/awaymission/centcomAway/hangar) +"iA" = ( +/obj/machinery/mass_driver{ + dir = 8; + id = "XCCMechs"; + name = "gravpult" + }, +/turf/open/floor/plasteel/bot, +/area/awaymission/centcomAway/hangar) +"iB" = ( +/turf/open/floor/plasteel/loadingarea{ + dir = 8 + }, +/area/awaymission/centcomAway/hangar) +"iC" = ( +/obj/structure/grille, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/general) +"iD" = ( +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/awaymission/centcomAway/general) +"iE" = ( +/turf/open/floor/plasteel/grimy, +/area/awaymission/centcomAway/general) +"iF" = ( +/obj/machinery/recharge_station, +/turf/open/floor/plasteel/black, +/area/awaymission/centcomAway/hangar) +"iG" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/awaymission/centcomAway/hangar) +"iH" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/awaymission/centcomAway/general) +"iI" = ( +/turf/open/floor/plasteel{ + icon_state = "ironsand3"; + dir = 8; + heat_capacity = 1 + }, +/area/awaymission/centcomAway/general) +"iJ" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/awaymission/centcomAway/general) +"iK" = ( +/obj/machinery/door/airlock/centcom{ + name = "Thunderdome Administration"; + opacity = 1; + req_access_txt = "102" + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/general) +"iL" = ( +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/awaymission/centcomAway/general) +"iM" = ( +/obj/structure/closet/wardrobe/red, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/awaymission/centcomAway/general) +"iN" = ( +/obj/structure/mecha_wreckage/seraph, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/awaymission/centcomAway/hangar) +"iO" = ( +/turf/open/floor/plasteel/black/corner{ + dir = 8 + }, +/area/awaymission/centcomAway/general) +"iP" = ( +/turf/open/floor/plasteel{ + icon_state = "ironsand11"; + dir = 8; + heat_capacity = 1 + }, +/area/awaymission/centcomAway/general) +"iQ" = ( +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/black, +/area/awaymission/centcomAway/general) +"iR" = ( +/obj/structure/closet/secure_closet/security, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/awaymission/centcomAway/general) +"iS" = ( +/turf/open/floor/plasteel{ + icon_state = "ironsand9"; + dir = 8; + heat_capacity = 1 + }, +/area/awaymission/centcomAway/general) +"iT" = ( +/obj/structure/table/wood{ + dir = 9 + }, +/obj/item/clothing/mask/cigarette/cigar/havana, +/obj/item/weapon/reagent_containers/food/drinks/sillycup, +/turf/open/floor/plasteel/grimy, +/area/awaymission/centcomAway/general) +"iU" = ( +/obj/structure/table/wood{ + dir = 5 + }, +/obj/item/weapon/lighter, +/turf/open/floor/plasteel/grimy, +/area/awaymission/centcomAway/general) +"iV" = ( +/obj/structure/table/wood{ + dir = 5 + }, +/obj/item/weapon/storage/backpack/satchel, +/turf/open/floor/plasteel/grimy, +/area/awaymission/centcomAway/general) +"iW" = ( +/obj/machinery/computer/card/centcom, +/obj/item/weapon/card/id/centcom, +/turf/open/floor/plasteel/grimy, +/area/awaymission/centcomAway/general) +"iX" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder/red, +/turf/open/floor/plasteel/black, +/area/awaymission/centcomAway/general) +"iY" = ( +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "XCCsec3"; + name = "XCC Shutter 3 Control" + }, +/turf/open/floor/plasteel/black, +/area/awaymission/centcomAway/general) +"iZ" = ( +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/awaymission/centcomAway/general) +"ja" = ( +/obj/machinery/button/massdriver{ + id = "XCCMechs"; + name = "XCC Mechbay Mass Driver"; + pixel_x = 25 + }, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/awaymission/centcomAway/hangar) +"jb" = ( +/obj/machinery/mecha_part_fabricator, +/turf/open/floor/plasteel/black, +/area/awaymission/centcomAway/hangar) +"jc" = ( +/turf/open/floor/plasteel{ + icon_state = "ironsand4"; + dir = 8; + heat_capacity = 1 + }, +/area/awaymission/centcomAway/general) +"jd" = ( +/obj/structure/table/wood{ + dir = 10 + }, +/turf/open/floor/plasteel/grimy, +/area/awaymission/centcomAway/general) +"je" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/awaymission/centcomAway/general) +"jf" = ( +/obj/structure/frame/computer, +/turf/open/floor/plasteel/grimy, +/area/awaymission/centcomAway/general) +"jg" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/black, +/area/awaymission/centcomAway/general) +"jh" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/awaymission/centcomAway/general) +"ji" = ( +/obj/structure/closet/secure_closet/personal, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/awaymission/centcomAway/hangar) +"jj" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/awaymission/centcomAway/general) +"jk" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plasteel/grimy, +/area/awaymission/centcomAway/general) +"jl" = ( +/turf/open/floor/plasteel/green/corner{ + dir = 8 + }, +/area/awaymission/centcomAway/general) +"jm" = ( +/turf/open/floor/plasteel/green/corner{ + dir = 2 + }, +/area/awaymission/centcomAway/general) +"jn" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin, +/turf/open/floor/plasteel/black, +/area/awaymission/centcomAway/general) +"jo" = ( +/obj/machinery/computer/secure_data, +/turf/open/floor/plasteel/black, +/area/awaymission/centcomAway/general) +"jp" = ( +/obj/machinery/computer/card, +/turf/open/floor/plasteel/black, +/area/awaymission/centcomAway/general) +"jq" = ( +/obj/item/weapon/stamp, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/awaymission/centcomAway/general) +"jr" = ( +/obj/structure/table, +/obj/item/weapon/firstaid_arm_assembly, +/turf/open/floor/plasteel/vault, +/area/awaymission/centcomAway/hangar) +"js" = ( +/obj/structure/table, +/obj/item/device/assembly/flash/handheld, +/obj/item/device/assembly/flash/handheld, +/turf/open/floor/plasteel/vault, +/area/awaymission/centcomAway/hangar) +"jt" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/turf/open/floor/plasteel/vault, +/area/awaymission/centcomAway/hangar) +"ju" = ( +/obj/structure/table, +/obj/item/device/mmi, +/turf/open/floor/plasteel/vault, +/area/awaymission/centcomAway/hangar) +"jv" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical, +/turf/open/floor/plasteel/vault, +/area/awaymission/centcomAway/hangar) +"jw" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + req_access_txt = "101" + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/general) +"jx" = ( +/obj/machinery/door/window, +/obj/machinery/door/window/northright, +/turf/open/floor/plasteel{ + icon_state = "floor" + }, +/area/awaymission/centcomAway/general) +"jy" = ( +/obj/structure/sink/puddle, +/turf/open/floor/plasteel{ + icon_state = "asteroid6"; + name = "sand" + }, +/area/awaymission/centcomAway/general) +"jz" = ( +/obj/structure/flora/ausbushes, +/turf/open/floor/plasteel{ + name = "plating"; + icon_state = "asteroid10" + }, +/area/awaymission/centcomAway/general) +"jA" = ( +/obj/structure/flora/ausbushes, +/turf/open/floor/plasteel{ + name = "plating"; + icon_state = "asteroid4" + }, +/area/awaymission/centcomAway/general) +"jB" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/green/side{ + dir = 8 + }, +/area/awaymission/centcomAway/general) +"jC" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/green/side{ + dir = 4 + }, +/area/awaymission/centcomAway/general) +"jD" = ( +/obj/structure/flora/ausbushes, +/turf/open/floor/plasteel{ + name = "plating"; + icon_state = "asteroid" + }, +/area/awaymission/centcomAway/general) +"jE" = ( +/obj/structure/flora/ausbushes, +/turf/open/floor/plasteel{ + name = "plating"; + icon_state = "asteroid11" + }, +/area/awaymission/centcomAway/general) +"jF" = ( +/obj/structure/flora/ausbushes, +/turf/open/floor/plasteel{ + name = "plating"; + icon_state = "asteroid9" + }, +/area/awaymission/centcomAway/general) +"jG" = ( +/obj/structure/flora/ausbushes, +/turf/open/floor/plasteel{ + name = "plating"; + icon_state = "asteroid8" + }, +/area/awaymission/centcomAway/general) +"jH" = ( +/obj/structure/grille, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel{ + name = "plating" + }, +/area/awaymission/centcomAway/general) +"jI" = ( +/obj/structure/grille, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plasteel{ + name = "plating" + }, +/area/awaymission/centcomAway/general) +"jJ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plasteel{ + name = "plating" + }, +/area/awaymission/centcomAway/general) +"jK" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plating, +/area/awaymission/centcomAway/general) +"jL" = ( +/obj/machinery/door/poddoor/shutters{ + id = "XCCFerry"; + name = "XCC Ferry Hangar" + }, +/turf/open/floor/plasteel/delivery, +/area/awaymission/centcomAway/hangar) +"jM" = ( +/obj/structure/chair, +/turf/open/floor/plasteel{ + icon_state = "floor" + }, +/area/awaymission/centcomAway/general) +"jN" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel/green/side{ + dir = 8 + }, +/area/awaymission/centcomAway/general) +"jO" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/green/side{ + dir = 4 + }, +/area/awaymission/centcomAway/general) +"jP" = ( +/obj/machinery/door/airlock/external{ + name = "Arrival Airlock" + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/general) +"jQ" = ( +/obj/structure/table, +/obj/item/weapon/paper/pamphlet/ccaInfo, +/turf/open/floor/plasteel{ + icon_state = "floor" + }, +/area/awaymission/centcomAway/general) +"jR" = ( +/obj/machinery/door/poddoor/shutters{ + id = "XCCsec1"; + name = "XCC Checkpoint 1 Shutters" + }, +/turf/open/floor/plasteel/delivery, +/area/awaymission/centcomAway/general) +"jS" = ( +/obj/machinery/door/poddoor/shutters{ + id = "XCCsec2"; + name = "XCC Checkpoint 2 Shutters" + }, +/turf/open/floor/plasteel/delivery, +/area/awaymission/centcomAway/general) +"jT" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plating, +/area/awaymission/centcomAway/general) +"jU" = ( +/obj/structure/sign/vacuum, +/turf/closed/wall/r_wall, +/area/awaymission/centcomAway/general) +"jV" = ( +/obj/structure/flora/ausbushes, +/turf/open/floor/plasteel{ + dir = 6; + icon_state = "asteroid8"; + name = "sand" + }, +/area/awaymission/centcomAway/general) +"jW" = ( +/obj/structure/flora/ausbushes, +/turf/open/floor/plasteel{ + name = "plating"; + icon_state = "asteroid5" + }, +/area/awaymission/centcomAway/general) +"jX" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel{ + icon_state = "floor" + }, +/area/awaymission/centcomAway/general) +"jY" = ( +/obj/machinery/gateway{ + dir = 9 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/hangar) +"jZ" = ( +/obj/machinery/gateway{ + dir = 1 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/hangar) +"ka" = ( +/obj/machinery/gateway{ + dir = 5 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/hangar) +"kb" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/general) +"kc" = ( +/obj/machinery/gateway{ + dir = 8 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/hangar) +"kd" = ( +/obj/machinery/gateway/centeraway, +/turf/open/floor/plating, +/area/awaymission/centcomAway/hangar) +"ke" = ( +/obj/machinery/gateway{ + dir = 4 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/hangar) +"kf" = ( +/obj/machinery/button/door{ + id = "XCCFerry"; + name = "Hangar Bay Shutters"; + pixel_x = -28; + pixel_y = 7; + req_access_txt = "2" + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/awaymission/centcomAway/hangar) +"kg" = ( +/obj/machinery/gateway{ + dir = 10 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/hangar) +"kh" = ( +/obj/machinery/gateway, +/turf/open/floor/plating, +/area/awaymission/centcomAway/hangar) +"ki" = ( +/obj/machinery/gateway{ + dir = 6 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/hangar) +"kj" = ( +/turf/open/floor/plasteel/delivery{ + dir = 6 + }, +/area/awaymission/centcomAway/general) +"kk" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/general) +"kl" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plating, +/area/awaymission/centcomAway/general) +"km" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plating, +/area/awaymission/centcomAway/general) +"kn" = ( +/obj/structure/table, +/obj/item/device/flashlight/flare, +/turf/open/floor/plasteel/black, +/area/awaymission/centcomAway/hangar) +"ko" = ( +/obj/structure/table, +/obj/item/device/flashlight/flare, +/turf/open/floor/plating, +/area/awaymission/centcomAway/hangar) +"kp" = ( +/obj/structure/table, +/obj/item/device/multitool, +/turf/open/floor/plating, +/area/awaymission/centcomAway/hangar) +"kq" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/paper/pamphlet/ccaInfo, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/awaymission/centcomAway/general) +"kr" = ( +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "XCCsec1"; + name = "XCC Shutter 1 Control" + }, +/turf/open/floor/plasteel/black, +/area/awaymission/centcomAway/general) +"ks" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/awaymission/centcomAway/general) +"kt" = ( +/obj/machinery/computer/secure_data, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/awaymission/centcomAway/general) +"ku" = ( +/obj/item/weapon/paper_bin, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel{ + icon_state = "floor" + }, +/area/awaymission/centcomAway/general) +"kv" = ( +/obj/structure/grille, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/general) +"kw" = ( +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/awaymission/centcomAway/general) +"kx" = ( +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/awaymission/centcomAway/general) +"ky" = ( +/obj/machinery/computer/card, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/awaymission/centcomAway/general) +"kz" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel{ + icon_state = "floor" + }, +/area/awaymission/centcomAway/general) +"kA" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel{ + icon_state = "floor" + }, +/area/awaymission/centcomAway/general) +"kB" = ( +/obj/machinery/photocopier, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/awaymission/centcomAway/general) +"kC" = ( +/obj/item/weapon/clipboard, +/obj/structure/table, +/obj/item/device/taperecorder, +/obj/item/weapon/stamp, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/awaymission/centcomAway/general) +"kD" = ( +/obj/machinery/door/window/northright{ + icon_state = "right"; + dir = 2 + }, +/turf/open/floor/plasteel{ + icon_state = "floor" + }, +/area/awaymission/centcomAway/general) +"kE" = ( +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "XCCsec2"; + name = "XCC Shutter 2 Control" + }, +/turf/open/floor/plasteel/black, +/area/awaymission/centcomAway/general) +"kF" = ( +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/awaymission/centcomAway/general) +"kG" = ( +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/awaymission/centcomAway/general) +"kH" = ( +/turf/open/floor/plasteel/red/side{ + dir = 2 + }, +/area/awaymission/centcomAway/general) +"kI" = ( +/turf/open/floor/plasteel/red/corner{ + dir = 8 + }, +/area/awaymission/centcomAway/general) +"kJ" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/handcuffs, +/obj/item/weapon/stamp, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/awaymission/centcomAway/general) +"kK" = ( +/obj/machinery/door/airlock/external, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/awaymission/centcomAway/general) +"kL" = ( +/obj/machinery/door/airlock/external, +/turf/open/floor/plasteel/green/side{ + dir = 6 + }, +/area/awaymission/centcomAway/general) +"kM" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/general) +"kN" = ( +/obj/structure/table/wood, +/obj/item/clothing/tie/medal, +/turf/open/floor/carpet, +/area/awaymission/centcomAway/general) +"kO" = ( +/obj/structure/table/wood, +/turf/open/floor/carpet, +/area/awaymission/centcomAway/general) +"kP" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/drinks/trophy/gold_cup, +/turf/open/floor/carpet, +/area/awaymission/centcomAway/general) +"kQ" = ( +/obj/structure/table/wood, +/obj/item/clothing/tie/medal/gold, +/turf/open/floor/carpet, +/area/awaymission/centcomAway/general) +"kR" = ( +/obj/machinery/door/airlock/external, +/turf/open/floor/plating, +/area/awaymission/centcomAway/general) +"kS" = ( +/turf/closed/wall/r_wall, +/area/awaymission/centcomAway/thunderdome) +"kT" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_r"; + dir = 1 + }, +/turf/open/space, +/area/space) +"kU" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion"; + dir = 1 + }, +/turf/open/space, +/area/space) +"kV" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_l"; + dir = 1 + }, +/turf/open/space, +/area/space) +"kW" = ( +/obj/structure/table, +/obj/item/device/paicard, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/awaymission/centcomAway/thunderdome) +"kX" = ( +/obj/structure/table, +/obj/item/device/camera, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/awaymission/centcomAway/thunderdome) +"kY" = ( +/obj/machinery/door/airlock/external, +/turf/open/floor/plating, +/area/awaymission/centcomAway/thunderdome) +"kZ" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/awaymission/centcomAway/thunderdome) +"la" = ( +/obj/structure/table, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/awaymission/centcomAway/thunderdome) +"lb" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/awaymission/centcomAway/thunderdome) +"lc" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/awaymission/centcomAway/thunderdome) +"ld" = ( +/turf/open/floor/plating, +/area/awaymission/centcomAway/thunderdome) +"le" = ( +/obj/machinery/door/window/southleft, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/awaymission/centcomAway/thunderdome) +"lf" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/thunderdome) +"lg" = ( +/obj/machinery/door/window/southright, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/awaymission/centcomAway/thunderdome) +"lh" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/awaymission/centcomAway/thunderdome) +"li" = ( +/turf/open/floor/plasteel/barber{ + dir = 8; + heat_capacity = 1 + }, +/area/awaymission/centcomAway/thunderdome) +"lj" = ( +/obj/structure/chair/comfy/black{ + dir = 1 + }, +/turf/open/floor/plasteel/redyellow{ + dir = 5 + }, +/area/awaymission/centcomAway/thunderdome) +"lk" = ( +/turf/open/floor/plasteel/redblue{ + dir = 8 + }, +/area/awaymission/centcomAway/thunderdome) +"ll" = ( +/obj/structure/reagent_dispensers/beerkeg, +/turf/open/floor/plasteel/redblue{ + dir = 8 + }, +/area/awaymission/centcomAway/thunderdome) +"lm" = ( +/obj/structure/closet/crate/trashcart, +/turf/open/floor/plasteel/redblue{ + dir = 8 + }, +/area/awaymission/centcomAway/thunderdome) +"ln" = ( +/obj/structure/reagent_dispensers/water_cooler, +/turf/open/floor/plasteel/redblue{ + dir = 8 + }, +/area/awaymission/centcomAway/thunderdome) +"lo" = ( +/obj/machinery/vending/snack, +/turf/open/floor/plasteel/redblue{ + dir = 8 + }, +/area/awaymission/centcomAway/thunderdome) +"lp" = ( +/obj/structure/table, +/obj/item/weapon/lipstick, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/awaymission/centcomAway/thunderdome) +"lq" = ( +/obj/structure/table/wood, +/obj/item/device/radio/off, +/turf/open/floor/plasteel/redyellow{ + dir = 5 + }, +/area/awaymission/centcomAway/thunderdome) +"lr" = ( +/obj/machinery/icecream_vat, +/turf/open/floor/plasteel/barber{ + dir = 8; + heat_capacity = 1 + }, +/area/awaymission/centcomAway/thunderdome) +"ls" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/awaymission/centcomAway/thunderdome) +"lt" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/redblue{ + dir = 8 + }, +/area/awaymission/centcomAway/thunderdome) +"lu" = ( +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/awaymission/centcomAway/thunderdome) +"lv" = ( +/obj/structure/rack, +/obj/item/weapon/restraints/legcuffs/beartrap, +/obj/item/weapon/twohanded/fireaxe, +/turf/open/floor/plasteel/black, +/area/awaymission/centcomAway/thunderdome) +"lw" = ( +/obj/structure/grille, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/thunderdome) +"lx" = ( +/obj/structure/grille, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/thunderdome) +"ly" = ( +/obj/structure/grille, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/thunderdome) +"lz" = ( +/turf/open/floor/plasteel/green/side{ + dir = 4 + }, +/area/awaymission/centcomAway/thunderdome) +"lA" = ( +/obj/machinery/door/poddoor{ + id = "XCCtdomemelee"; + name = "XCC Thunderdome Melee" + }, +/turf/open/floor/plasteel/delivery, +/area/awaymission/centcomAway/thunderdome) +"lB" = ( +/obj/item/weapon/reagent_containers/glass/rag, +/turf/open/floor/plasteel/black, +/area/awaymission/centcomAway/general) +"lC" = ( +/turf/open/floor/plasteel{ + icon_state = "floor" + }, +/area/awaymission/centcomAway/thunderdome) +"lD" = ( +/obj/structure/sink{ + icon_state = "sink"; + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/structure/mirror{ + pixel_x = -28 + }, +/turf/open/floor/plasteel/white, +/area/awaymission/centcomAway/thunderdome) +"lE" = ( +/turf/open/floor/plasteel/white, +/area/awaymission/centcomAway/thunderdome) +"lF" = ( +/obj/structure/closet/secure_closet/personal, +/turf/open/floor/plasteel/white, +/area/awaymission/centcomAway/thunderdome) +"lG" = ( +/obj/structure/rack, +/obj/item/clothing/under/color/red, +/obj/item/clothing/shoes/sneakers/brown, +/obj/item/clothing/suit/armor/tdome/red, +/obj/item/clothing/head/helmet/thunderdome, +/obj/item/weapon/hatchet, +/obj/item/weapon/shield/riot, +/turf/open/floor/plasteel/black, +/area/awaymission/centcomAway/thunderdome) +"lH" = ( +/turf/open/floor/plasteel/black, +/area/awaymission/centcomAway/thunderdome) +"lI" = ( +/obj/machinery/recharger{ + pixel_y = 4 + }, +/turf/open/floor/plating, +/area/awaymission/centcomAway/thunderdome) +"lJ" = ( +/obj/machinery/door/poddoor{ + id = "XCCtdome"; + name = "XCC Thunderdome" + }, +/turf/open/floor/plasteel/delivery, +/area/awaymission/centcomAway/thunderdome) +"lK" = ( +/obj/machinery/igniter, +/turf/open/floor/plasteel{ + icon_state = "floor" + }, +/area/awaymission/centcomAway/thunderdome) +"lL" = ( +/obj/structure/rack, +/obj/item/clothing/under/color/green, +/obj/item/clothing/shoes/sneakers/brown, +/obj/item/clothing/suit/armor/tdome/green, +/obj/item/clothing/head/helmet/thunderdome, +/obj/item/weapon/hatchet, +/obj/item/weapon/shield/riot, +/turf/open/floor/plasteel/black, +/area/awaymission/centcomAway/thunderdome) +"lM" = ( +/obj/structure/table/reinforced, +/obj/item/device/taperecorder, +/obj/item/device/tape/random, +/turf/open/floor/plasteel{ + icon_state = "floor" + }, +/area/awaymission/centcomAway/general) +"lN" = ( +/obj/structure/mirror{ + pixel_x = 28 + }, +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/turf/open/floor/plasteel/white, +/area/awaymission/centcomAway/thunderdome) +"lO" = ( +/obj/machinery/door/airlock/centcom{ + name = "Centcom Security"; + opacity = 1; + req_access_txt = "101" + }, +/turf/open/floor/plasteel/white, +/area/awaymission/centcomAway/courtroom) +"lP" = ( +/turf/open/floor/plasteel/whitered/side{ + dir = 1 + }, +/area/awaymission/centcomAway/thunderdome) +"lQ" = ( +/turf/open/floor/plasteel/green/side{ + dir = 2 + }, +/area/awaymission/centcomAway/general) +"lR" = ( +/obj/machinery/door/airlock/centcom, +/turf/open/floor/plasteel/white, +/area/awaymission/centcomAway/general) +"lS" = ( +/obj/machinery/chem_master, +/turf/open/floor/plasteel/green{ + dir = 1 + }, +/area/awaymission/centcomAway/cafe) +"lT" = ( +/turf/open/floor/plasteel/whitegreen/side{ + dir = 1 + }, +/area/awaymission/centcomAway/thunderdome) +"lU" = ( +/obj/structure/urinal{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/white, +/area/awaymission/centcomAway/thunderdome) +"lV" = ( +/obj/machinery/shower{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/awaymission/centcomAway/thunderdome) +"lW" = ( +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/awaymission/centcomAway/thunderdome) +"lX" = ( +/obj/machinery/chem_dispenser, +/obj/item/weapon/storage/box/beakers, +/turf/open/floor/plasteel/green{ + dir = 1 + }, +/area/awaymission/centcomAway/cafe) +"lY" = ( +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/awaymission/centcomAway/thunderdome) +"lZ" = ( +/obj/machinery/shower{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/awaymission/centcomAway/thunderdome) +"ma" = ( +/obj/machinery/door/airlock/freezer, +/turf/open/floor/plasteel/freezer{ + dir = 2 + }, +/area/awaymission/centcomAway/cafe) +"mb" = ( +/obj/machinery/door/poddoor{ + id = "XCCtdomeguns"; + name = "XCC Thunderdome Guns" + }, +/turf/open/floor/plasteel/delivery, +/area/awaymission/centcomAway/thunderdome) +"mc" = ( +/obj/item/weapon/soap/nanotrasen, +/turf/open/floor/plasteel/white, +/area/awaymission/centcomAway/thunderdome) +"md" = ( +/obj/structure/rack, +/obj/item/weapon/gun/energy/laser/retro, +/turf/open/floor/plasteel/black, +/area/awaymission/centcomAway/thunderdome) +"me" = ( +/obj/machinery/vending/boozeomat{ + req_access_txt = "" + }, +/turf/closed/wall/r_wall, +/area/awaymission/centcomAway/cafe) +"mf" = ( +/turf/open/floor/plasteel/redyellow{ + dir = 5 + }, +/area/awaymission/centcomAway/thunderdome) +"mg" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/turf/open/floor/plasteel/redyellow{ + dir = 5 + }, +/area/awaymission/centcomAway/thunderdome) +"mh" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/snacks/popcorn, +/turf/open/floor/plasteel/redyellow{ + dir = 5 + }, +/area/awaymission/centcomAway/thunderdome) +"mi" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/awaymission/centcomAway/cafe) +"mj" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/door/window/southright, +/turf/open/floor/plasteel/green{ + dir = 1 + }, +/area/awaymission/centcomAway/cafe) +"mk" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/reagent_containers/food/snacks/popcorn, +/turf/open/floor/plasteel/barber{ + dir = 8; + heat_capacity = 1 + }, +/area/awaymission/centcomAway/thunderdome) +"ml" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/awaymission/centcomAway/cafe) +"mm" = ( +/obj/structure/table, +/obj/machinery/recharger{ + pixel_y = 4 + }, +/turf/open/floor/plasteel/redyellow{ + dir = 5 + }, +/area/awaymission/centcomAway/thunderdome) +"mn" = ( +/obj/structure/table, +/turf/open/floor/plasteel/redyellow{ + dir = 5 + }, +/area/awaymission/centcomAway/thunderdome) +"mo" = ( +/obj/structure/frame/computer, +/turf/open/floor/plasteel/redyellow{ + dir = 5 + }, +/area/awaymission/centcomAway/thunderdome) +"mp" = ( +/obj/structure/closet/secure_closet/bar, +/turf/open/floor/plasteel/redyellow{ + dir = 5 + }, +/area/awaymission/centcomAway/thunderdome) +"mq" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/handcuffs, +/turf/open/floor/plasteel/redyellow{ + dir = 5 + }, +/area/awaymission/centcomAway/thunderdome) +"mr" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/electrical, +/turf/open/floor/plasteel/redyellow{ + dir = 5 + }, +/area/awaymission/centcomAway/thunderdome) +"ms" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical, +/turf/open/floor/plasteel/redyellow{ + dir = 5 + }, +/area/awaymission/centcomAway/thunderdome) +"mt" = ( +/obj/machinery/button/door{ + id = "XCCtdomemelee"; + name = "XCC Thunderdome Melee!" + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel{ + icon_state = "floor" + }, +/area/awaymission/centcomAway/thunderdome) +"mu" = ( +/obj/structure/chair/comfy/teal, +/turf/open/floor/plasteel{ + icon_state = "floor" + }, +/area/awaymission/centcomAway/thunderdome) +"mv" = ( +/obj/machinery/button/door{ + id = "XCCtdomeguns"; + name = "XCC Thunderdome Guns!" + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel{ + icon_state = "floor" + }, +/area/awaymission/centcomAway/thunderdome) +"mw" = ( +/obj/machinery/button/door{ + id = "XCCtdome"; + name = "XCC Thunderdome Go!" + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel{ + icon_state = "floor" + }, +/area/awaymission/centcomAway/thunderdome) +"mx" = ( +/obj/machinery/door/airlock/external, +/turf/open/floor/plasteel/bar{ + dir = 2 + }, +/area/awaymission/centcomAway/maint) +"my" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/awaymission/centcomAway/cafe) +"mz" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/door/window/northright, +/turf/open/floor/plasteel/red, +/area/awaymission/centcomAway/cafe) +"mA" = ( +/obj/machinery/vending/boozeomat{ + req_access_txt = "" + }, +/turf/closed/wall, +/area/awaymission/centcomAway/cafe) +"mB" = ( +/obj/machinery/chem_dispenser, +/obj/item/weapon/storage/box/beakers, +/turf/open/floor/plasteel/red, +/area/awaymission/centcomAway/cafe) +"mC" = ( +/obj/machinery/chem_master, +/turf/open/floor/plasteel/red, +/area/awaymission/centcomAway/cafe) +"mD" = ( +/obj/machinery/door/airlock/centcom, +/turf/open/floor/plasteel/cafeteria, +/area/awaymission/centcomAway/cafe) +"mE" = ( +/turf/open/floor/plating/warnplate{ + dir = 5 + }, +/area/awaymission/centcomAway/cafe) +"mF" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating/warnplate{ + dir = 9 + }, +/area/awaymission/centcomAway/cafe) +"mG" = ( +/obj/machinery/shieldgen, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/awaymission/centcomAway/cafe) +"mH" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/awaymission/centcomAway/cafe) +"mI" = ( +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/plating/warnplate{ + dir = 6 + }, +/area/awaymission/centcomAway/cafe) +"mJ" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating/warnplate{ + dir = 10 + }, +/area/awaymission/centcomAway/cafe) +"mK" = ( +/turf/open/floor/plating/warnplate{ + dir = 2 + }, +/area/awaymission/centcomAway/cafe) +"mL" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/condiment/peppermill, +/obj/item/weapon/reagent_containers/food/condiment/saltshaker, +/turf/open/floor/plasteel/red, +/area/awaymission/centcomAway/cafe) +"mM" = ( +/obj/machinery/door/airlock/centcom, +/turf/open/floor/plasteel/bar{ + dir = 2 + }, +/area/awaymission/centcomAway/cafe) +"mN" = ( +/obj/machinery/door/airlock/centcom, +/turf/open/floor/plasteel{ + icon_state = "floor" + }, +/area/awaymission/centcomAway/hangar) +"mO" = ( +/obj/machinery/door/airlock/centcom, +/turf/open/floor/plasteel{ + icon_state = "floor" + }, +/area/awaymission/centcomAway/general) +"mP" = ( +/obj/machinery/door/airlock/centcom{ + name = "Centcom Security"; + opacity = 1; + req_access_txt = "101" + }, +/turf/open/floor/plasteel/black, +/area/awaymission/centcomAway/general) +"mQ" = ( +/obj/structure/safe/floor, +/obj/item/clothing/under/rank/centcom_officer, +/obj/item/clothing/suit/det_suit, +/obj/item/weapon/gun/projectile/revolver/mateba, +/turf/open/floor/plasteel/grimy, +/area/awaymission/centcomAway/general) +"mR" = ( +/obj/machinery/door/airlock/centcom, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/awaymission/centcomAway/hangar) +"mS" = ( +/obj/machinery/door/airlock/external, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/awaymission/centcomAway/hangar) +"mT" = ( +/obj/machinery/door/airlock/external, +/turf/open/floor/plasteel/black, +/area/awaymission/centcomAway/hangar) +"mU" = ( +/obj/structure/rack, +/obj/item/weapon/storage/secure/briefcase, +/obj/item/weapon/storage/belt/utility/full, +/turf/open/floor/plasteel/grimy, +/area/awaymission/centcomAway/general) +"mV" = ( +/turf/open/floor/plasteel/redyellow{ + dir = 5 + }, +/area/awaymission/centcomAway/thunderdome) +"mW" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/plasteel/redyellow{ + dir = 5 + }, +/area/awaymission/centcomAway/thunderdome) +"mX" = ( +/obj/machinery/door/airlock/centcom{ + name = "Thunderdome Administration"; + opacity = 1; + req_access_txt = "102" + }, +/turf/open/floor/plasteel/redyellow{ + dir = 5 + }, +/area/awaymission/centcomAway/thunderdome) +"mY" = ( +/obj/machinery/door/airlock/external, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/awaymission/centcomAway/thunderdome) +"mZ" = ( +/obj/machinery/door/airlock/centcom, +/turf/open/floor/plasteel/barber{ + dir = 8; + heat_capacity = 1 + }, +/area/awaymission/centcomAway/thunderdome) +"na" = ( +/turf/open/floor/plasteel/green/corner{ + dir = 1 + }, +/area/awaymission/centcomAway/thunderdome) +"nb" = ( +/turf/open/floor/plasteel/red/corner{ + dir = 4 + }, +/area/awaymission/centcomAway/thunderdome) +"nc" = ( +/turf/open/floor/plasteel/green/corner{ + dir = 2 + }, +/area/awaymission/centcomAway/thunderdome) +"nd" = ( +/turf/open/floor/plasteel/green/side{ + dir = 1 + }, +/area/awaymission/centcomAway/thunderdome) +"ne" = ( +/turf/open/floor/plasteel/red/corner{ + dir = 8 + }, +/area/awaymission/centcomAway/thunderdome) +"nf" = ( +/obj/machinery/portable_atmospherics/scrubber/huge, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/awaymission/centcomAway/thunderdome) +"ng" = ( +/turf/open/floor/plasteel/red/side, +/area/awaymission/centcomAway/thunderdome) +"nh" = ( +/obj/machinery/door/airlock/centcom{ + name = "Thunderdome"; + opacity = 1; + req_access_txt = "101" + }, +/turf/open/floor/plasteel/black, +/area/awaymission/centcomAway/thunderdome) +"ni" = ( +/obj/machinery/portable_atmospherics/scrubber/huge, +/turf/open/floor/plasteel/green/side{ + dir = 6 + }, +/area/awaymission/centcomAway/thunderdome) +"nj" = ( +/turf/open/floor/plasteel/green/side{ + dir = 2 + }, +/area/awaymission/centcomAway/thunderdome) +"nk" = ( +/turf/open/floor/plasteel/green/side{ + dir = 10 + }, +/area/awaymission/centcomAway/thunderdome) +"nl" = ( +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/awaymission/centcomAway/thunderdome) +"nm" = ( +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/awaymission/centcomAway/thunderdome) +"nn" = ( +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/awaymission/centcomAway/thunderdome) +"no" = ( +/turf/open/floor/plasteel/green/corner{ + dir = 4 + }, +/area/awaymission/centcomAway/thunderdome) +"np" = ( +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/awaymission/centcomAway/thunderdome) +"nq" = ( +/turf/open/floor/plasteel/green/side{ + dir = 9 + }, +/area/awaymission/centcomAway/thunderdome) +"nr" = ( +/obj/machinery/portable_atmospherics/scrubber/huge, +/turf/open/floor/plasteel/green/side{ + dir = 5 + }, +/area/awaymission/centcomAway/thunderdome) +"ns" = ( +/obj/machinery/portable_atmospherics/scrubber/huge, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/awaymission/centcomAway/thunderdome) +"nt" = ( +/turf/open/floor/plasteel/red/corner{ + dir = 2 + }, +/area/awaymission/centcomAway/thunderdome) +"nu" = ( +/turf/open/floor/plasteel/green/corner{ + dir = 8 + }, +/area/awaymission/centcomAway/thunderdome) +"nv" = ( +/obj/machinery/door/airlock/centcom, +/turf/open/floor/plasteel/white, +/area/awaymission/centcomAway/thunderdome) +"nw" = ( +/turf/open/floor/goonplaque, +/area/awaymission/centcomAway/thunderdome) +"nx" = ( +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/awaymission/centcomAway/thunderdome) +"ny" = ( +/turf/open/floor/plasteel/green/side{ + dir = 8 + }, +/area/awaymission/centcomAway/thunderdome) +"nz" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/condiment/sugar, +/obj/item/weapon/reagent_containers/food/condiment/milk, +/obj/item/weapon/reagent_containers/food/drinks/ice, +/turf/open/floor/plasteel/barber{ + dir = 8; + heat_capacity = 1 + }, +/area/awaymission/centcomAway/thunderdome) + +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(8,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(9,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(10,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(11,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(12,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(13,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(14,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(15,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(16,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(17,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(18,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(19,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(20,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(21,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(22,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(23,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(24,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(25,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(26,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(27,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(28,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(29,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(30,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(31,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aV +aV +bl +bl +bl +bl +bl +bl +bl +bl +bl +bl +bl +bl +bl +bl +bl +bl +bl +bl +bl +bl +bl +bl +bl +bl +bl +bl +bl +bl +bl +bl +aV +aV +aV +iy +aV +iy +aV +iy +aV +iy +aV +aV +jL +jL +jL +jL +jL +jL +jL +aV +aV +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(32,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aV +bc +bm +bm +bm +bm +bm +bm +bm +bm +bm +bm +bm +bm +bm +bm +bm +bm +bm +bm +bm +bm +bm +bm +bm +bm +bm +bm +bm +bm +bm +bm +hK +hU +aV +iz +cz +iz +cz +iz +cz +iz +aV +bc +bm +bm +bm +bm +bm +bm +bm +kf +hU +aV +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(33,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 +aV +bd +bd +bd +bd +bd +bd +bd +bd +bd +bd +bd +bd +bd +bd +bd +bd +bd +bd +bd +bd +bd +bd +bd +bd +gm +gD +gD +gD +gD +gD +gD +gD +aV +ih +iA +ih +iA +ih +iA +ih +iA +aV +gD +gD +gD +gD +gD +gD +gD +gD +gD +bR +aV +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(34,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 +aV +bd +bn +bB +bB +bB +bn +bd +be +be +bd +bR +bd +bd +bd +bd +bd +bd +bd +bd +bd +bd +bd +bd +bd +gm +gD +gD +gD +gS +hc +gS +gD +aV +ii +iB +ii +iB +ii +iB +ii +iB +aV +bR +gD +gD +gD +gD +gD +gD +bR +bR +bR +aV +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(35,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 +aV +bd +bo +bC +bR +bR +bS +bn +bd +bR +bd +be +bd +bd +bd +bd +bd +bd +bd +bd +bR +bd +bd +bd +bd +gm +gD +gD +gD +bB +hd +bB +gD +aV +ij +gm +ij +gm +ij +gm +ij +gm +aV +bR +gD +gD +gD +gD +gD +bR +bR +gD +bR +aV +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(36,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 +aV +bd +bp +bC +bR +bR +bR +bB +bd +bd +bd +bd +bd +bd +bd +bd +bR +bR +bR +bd +bd +bd +bd +be +bd +gm +gD +gD +gD +bB +dc +bB +gD +aV +gm +gm +gm +gm +gm +gm +gm +gm +aV +gD +gD +bR +gD +gD +bR +jY +kc +kg +bR +aV +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(37,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 +aV +bd +bq +bC +bS +cm +cx +cm +bB +bB +bB +bB +bB +bB +bB +bB +bB +bS +bR +bR +bd +bd +bd +bd +bd +gm +gD +gD +gD +gT +he +gT +gD +aV +il +gD +gD +gm +gm +gD +gD +gD +aV +bR +bR +gD +gD +gD +bR +jZ +kd +kh +bR +aV +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(38,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 +aV +bd +bn +bB +bT +cn +cn +cJ +cU +da +dl +bB +dz +dz +dz +dz +dz +bB +bS +bR +bR +bd +bd +bd +bd +gm +gD +gD +gR +gD +gD +gD +gD +aV +im +im +de +bm +bm +ja +ji +ji +aV +bR +bR +gD +gD +gD +gD +ka +ke +ki +bR +aV +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(39,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 +aV +bd +bd +bB +bU +cn +bV +cK +cV +db +db +bB +bV +bV +bV +bV +bV +bB +bB +bB +bB +bn +bd +bd +bd +gm +gD +gD +gD +gD +gD +gD +gD +aV +cz +cz +cz +mS +mS +aV +aV +aV +aV +bR +gD +gD +gD +gD +gD +bR +bR +bR +gD +aV +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(40,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 +aV +bd +bd +bF +bV +bV +bV +cL +cW +db +db +bB +dz +dG +bV +dz +dz +bB +ez +eb +eZ +fn +bd +bd +bd +gm +gD +gD +gS +hc +gS +gD +gD +aV +in +cz +iF +bd +bd +gD +gD +jr +aV +gD +gD +gD +gR +gD +gD +gD +gD +bR +gD +aV +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(41,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 +aV +be +bd +bB +bW +cn +bV +cM +cX +cM +dm +cm +bB +bB +dL +bB +bB +cm +cP +cn +fa +fo +bd +bd +bd +gm +gD +gD +bB +hd +bB +gD +gD +aV +bR +cz +gD +iN +bd +jb +gD +js +aV +gD +gD +gD +gR +gD +gD +gD +gD +gD +bR +aV +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(42,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 +aV +bd +bd +bB +bX +cn +bV +bV +bV +bV +bV +bV +bV +bV +bV +bV +bV +et +bV +eR +fb +fo +bd +bd +bd +gm +gD +gD +bB +dc +bB +gD +gD +mT +bR +mS +bd +bd +bd +gD +gD +jt +aV +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +aV +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(43,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 +aV +bd +bd +bB +bY +cn +bV +cN +cn +cP +cP +cn +cP +cP +bV +cn +dZ +bB +eA +cn +fc +fo +bd +bd +bd +gm +gD +gD +gT +he +gT +gD +gD +aV +bR +cz +gD +bd +bd +jb +gD +ju +aV +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +aV +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(44,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 +aV +bd +bd +bF +bV +bV +bV +cO +cn +dc +dc +cn +dc +dc +bV +cn +ea +bB +eB +ez +fd +fp +bd +be +bd +gm +gD +gD +gD +gD +gD +gD +hL +aV +io +cz +iF +bd +bd +gD +gD +jv +aV +gD +gR +gD +gD +gD +gD +gD +bR +gD +gD +aV +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(45,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 +aV +bd +bd +bB +bU +cn +bV +bV +bV +bV +bV +bV +bV +bV +bV +cn +eb +bB +bB +bB +bB +bn +bd +bd +bd +gm +gm +gm +gm +gm +gm +gm +gm +aV +cz +cz +cz +mR +mR +aV +aV +aV +aV +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +aV +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(46,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 +aV +bd +bn +bB +bT +cn +cn +cP +cP +cP +bV +cP +cP +cP +bV +cn +bU +bB +bn +bd +bd +bd +bd +bd +bd +gn +bc +bc +bc +bc +bc +bc +hM +aV +aa +fu +ev +gW +gW +ev +fu +aa +aV +gD +gD +gD +gD +gD +gD +gD +gD +gD +kn +aV +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +kS +kS +kS +kS +kS +kS +kS +kS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(47,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 +aV +bd +bo +bC +bS +cm +cx +cm +bB +bB +bF +bB +dA +bB +bF +bB +bB +bn +bd +bd +bd +bd +bR +bd +bd +do +bR +bR +bR +bR +bR +bR +hN +aV +aa +fv +ev +gW +gW +ev +fv +aa +aV +gD +gD +gD +gD +gD +gD +gD +gD +bR +ko +aV +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +kS +lD +lE +lE +lP +lE +lE +kS +kS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(48,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 +aV +bd +bp +bC +bR +bR +bR +bB +bd +dd +bd +bd +bd +bd +bd +bd +bd +bd +bd +bd +bd +bd +bd +bd +bd +do +bR +bR +bR +bR +bR +bR +hO +aV +aa +fv +ev +gW +gW +ev +fv +aa +aV +bR +gD +gD +gD +gD +gD +gD +bR +bR +kp +aV +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +kS +lE +lE +lF +kS +lU +lE +lE +kS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(49,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 +aV +bd +bq +bC +bR +bR +bS +bn +bd +bd +bd +bd +bd +bd +bd +bd +be +bd +bd +bd +bd +bd +bd +bd +bd +do +bR +bR +bR +bR +bR +bR +hP +aV +aa +fv +ev +gW +gW +ev +fv +aa +aV +bR +bR +gD +gD +gD +gD +bR +bR +bR +hG +aV +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +kS +lE +lE +lF +kS +lE +lE +mc +kS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(50,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 +aV +bd +bn +bB +bB +bB +bn +bd +bd +bd +bd +bd +bd +bd +bd +bd +bd +bd +bd +bR +bR +bd +bd +bd +bd +do +bR +bR +bR +hf +bR +bR +bQ +aV +aa +fv +ev +gW +gW +ev +fv +aa +aV +gD +gD +gD +gD +gD +gD +gD +gD +bR +aV +aV +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +kS +kS +lF +lE +lF +kS +lV +lV +lV +kS +kS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(51,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 +aV +bd +bd +bd +bd +bd +bd +bd +bd +de +bm +bm +bm +bm +bm +aV +bs +bd +bR +bR +bR +bR +bd +bd +bd +go +gE +gE +gU +hg +hx +hG +hG +aV +aa +iC +ev +gW +gW +ev +iC +aa +aV +aV +aV +mN +aV +aV +aV +mN +aV +aV +aV +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +kS +kS +kS +kS +nv +kS +kS +kS +kS +kS +kS +kS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(52,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 +aV +bd +be +bd +bd +bd +bd +bR +bd +de +dn +bc +bc +bc +dM +aV +aV +aV +aV +aV +aV +aV +aV +aV +aV +aV +aV +aV +aV +aV +aV +aV +aV +aV +eu +eu +ev +gW +gW +ev +eu +eu +eu +eu +hI +eD +fu +iu +fu +eD +ff +eu +bk +bk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +kS +kS +kS +kS +kS +kS +kS +lu +lu +lu +lu +lu +lu +lu +lu +lu +lu +kS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(53,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 +ab +ab +ab +aV +bd +bs +bd +bd +bd +cz +bR +bR +cz +do +bR +bR +bR +dN +aV +bb +ag +ag +ag +ag +ag +ag +ag +ag +dy +eu +hV +gK +gJ +gJ +gJ +eu +hW +ev +ev +ev +gW +gW +ev +ev +ev +hW +eu +hI +eD +fv +jV +fv +eD +ff +fu +aa +bk +bk +aa +aa +aa +aa +aa +aa +aa +aa +aa +kS +kS +lc +lc +lc +lc +lc +lc +lc +lc +lc +lc +lc +lc +lc +lc +lc +lc +kS +kS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(54,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 +ab +ab +aE +aP +aV +aV +aV +aV +aV +aV +aV +cj +cj +aV +dp +dv +dB +dB +dO +aV +ag +ag +ag +ag +ag +ag +ag +ag +ag +bj +eu +hX +gl +gK +gK +gK +eu +gW +ev +gW +iH +iH +iH +iH +gW +ev +gW +eu +hI +eD +fv +iu +fv +eD +ff +fv +aa +aa +bk +bk +aa +aa +aa +aa +aa +aa +aa +kS +kS +lc +lc +lc +lc +lc +lc +lc +lc +kS +kS +kS +kS +kS +kS +kS +lc +lc +lc +kS +kS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(55,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 +ab +ab +ag +ag +ag +ag +ag +ag +ag +ag +ag +cA +ag +ag +aV +aV +aV +aV +aV +aV +aV +ag +eu +eu +eu +eu +eu +eu +eu +ag +ew +eu +gK +gK +gK +gK +gK +eu +gW +ev +iD +iI +iP +iS +jc +jj +ev +gW +eu +hI +eD +fv +jD +fv +eD +ff +fv +aa +aa +aa +bk +bk +aa +aa +aa +aa +aa +aa +kS +kW +lc +lc +kS +kS +kS +kS +kS +kS +kS +lG +lG +lG +lG +lW +nh +lc +lc +lc +lc +kS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(56,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 +ab +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ah +ag +ag +ah +ag +ag +ag +ag +ag +ag +ag +eu +cY +eD +eD +eD +dP +eu +ag +ag +eu +gK +gK +hh +hh +hH +eu +gW +ev +gW +iJ +iJ +iJ +iJ +gW +ev +gW +eu +hI +eD +fv +jW +fv +eD +ff +iC +aa +aa +aa +aa +bk +bk +aa +aa +aa +aa +aa +kS +kX +lc +lc +mZ +li +li +nz +kS +kS +kS +lH +lH +lH +lH +lH +kS +kS +kS +lc +lc +kS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(57,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 +ab +ag +ak +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +ag +ak +ak +ak +ak +ak +ak +ak +ac +eu +eD +eD +eD +fq +fM +eu +ag +ey +eu +eu +gL +hi +hy +eu +eu +hW +ev +ev +ev +gW +gW +ev +ev +ev +hW +eu +hI +eD +iC +jD +iC +eD +ff +eu +aa +aa +aa +aa +aa +bk +bk +aa +aa +aa +aa +kS +kX +lc +lc +kS +li +li +nz +kS +lv +lA +lI +lI +ld +lI +lI +mb +md +kS +lc +lc +kS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(58,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 +ab +ag +ak +aF +aQ +ak +aF +aQ +ak +aF +aQ +ak +mx +mx +ak +aF +aQ +ak +aF +aQ +ak +ec +eu +eD +eS +eD +fr +fN +eu +ag +ag +eu +ev +gW +ev +ev +ev +eu +eu +eu +ev +ev +gW +gW +ev +ev +eu +eu +eu +eu +mO +eu +eu +eu +mO +eu +eu +eu +eu +eu +eu +eu +eu +eu +aa +aa +aa +aa +kS +kS +lc +lc +kS +li +li +lr +kS +lv +lA +ld +ld +ld +ld +ld +mb +md +kS +lc +lc +kS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(59,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 +ab +ag +ak +aG +aG +ak +aG +aG +ak +aG +aG +ak +ai +ai +ak +dq +aG +ak +dq +aG +dS +ed +eu +eD +eD +eD +fq +fO +eu +ag +gp +eu +lB +gW +gW +gW +gW +dY +gW +dY +gW +gW +gW +gW +gW +gW +jw +fr +jw +eD +eD +eD +eD +eD +eD +eD +kj +kq +iZ +iZ +kB +iZ +iR +eu +aa +aa +aa +aa +kT +kS +lc +lc +kS +li +li +lr +kS +lv +lA +ld +ld +ld +ld +ld +mb +md +kS +lc +lc +kS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(60,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 +ab +ag +ak +aH +aG +ak +aH +aG +ak +aH +aG +ak +ai +ai +ak +aH +aG +ak +aH +aG +dT +ee +eu +cs +eD +eD +eD +eG +eu +ag +gp +eu +ir +gW +ev +ev +ev +eu +eu +eu +eu +iK +eu +eu +eu +eu +eu +eu +eu +eD +eD +eD +eD +eD +eD +eD +kj +iQ +ev +ev +ev +ev +iM +eu +aa +aa +aa +aa +kU +kS +lc +lc +kS +li +li +li +kS +lv +lA +ld +ld +ld +ld +ld +mb +md +kS +lc +lc +kS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(61,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 +ab +aR +ak +ak +bt +ak +ak +bt +ak +ak +bt +ak +ai +ai +ak +ak +bt +ak +ak +bt +ak +ee +eu +eu +eT +eu +eu +eu +eu +ah +eu +eu +eu +dY +eu +eu +eu +eu +eu +ip +iE +iE +iE +iE +iE +fr +eu +iu +jH +jM +jQ +jQ +jX +eD +eD +eD +kj +iX +kr +ev +ev +ev +ev +eu +aa +aa +aa +aa +kV +kS +lc +lc +kS +mk +mk +mk +kS +kS +kS +lJ +lJ +lJ +lJ +lJ +kS +kS +kS +kS +mX +kS +kS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(62,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 +ac +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ak +ef +eu +cY +eD +dP +fG +eD +eD +fV +eD +eD +iO +eD +dI +eD +eD +eD +eu +iq +iE +iE +iE +iT +jd +jk +eu +jy +jI +jM +jQ +jQ +jX +eD +eD +eD +kj +jg +ks +ev +ev +ev +iL +eu +aa +aa +aa +aa +kS +kS +lc +lc +kS +lk +lk +lk +lt +lw +ns +lu +lu +lu +lu +lu +nf +lw +mf +mf +mf +mm +kS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(63,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 +ad +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ak +ee +eu +cd +eD +dK +ft +eF +eD +eD +eD +eD +eD +eD +eD +eD +eD +eD +eu +fr +iE +iE +iE +iU +je +mQ +eu +jz +jJ +eD +eD +eD +eD +eD +eD +eD +kj +jn +kt +ky +kC +iL +iL +eu +aa +aa +aa +aa +aa +kS +lc +lc +kS +lk +lk +lk +lt +lx +nm +lC +lC +lC +lC +lC +ng +lx +mf +mf +mf +mn +kS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(64,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 +ae +ai +ai +aI +aI +ai +ai +ai +ai +aI +aI +aI +aI +aI +ai +ai +ai +aI +aI +ai +dS +eg +eu +bN +eD +dr +fu +eF +fX +gc +gq +eD +fX +gc +gc +gc +gq +eD +eu +mU +iE +fr +iE +iV +jf +iE +eu +eu +eu +eu +mO +eu +eV +eu +mO +eu +eu +eu +eu +eu +eu +eu +mP +eu +bk +bk +bk +bk +aa +kS +lc +lc +kS +lk +lk +lk +lt +lx +nn +lC +nt +nx +nb +lC +nl +lx +mg +mf +mf +mo +kS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(65,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 +ae +ai +ai +aJ +aJ +ai +ai +ai +bJ +cb +co +aJ +aJ +aJ +ai +ai +ai +aJ +aJ +ai +dU +ee +eu +cd +eD +dr +fv +eF +ff +gd +gr +gF +gM +gX +gr +eu +hI +eD +eu +is +iE +fr +fr +iW +je +iE +eu +jA +iu +eu +jR +jR +jR +jR +jR +jR +jR +eu +hp +eD +eV +kF +kG +eu +kM +gX +jK +eu +aa +kS +lc +lc +kS +lk +lk +lk +lt +lx +nm +lC +lC +lC +lC +lC +ng +lx +mg +mf +mW +mo +kS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(66,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 +ae +ai +ai +aJ +aJ +ai +ai +ai +bJ +cc +aJ +aJ +aJ +aJ +ai +ai +ai +dC +aJ +ai +dT +eh +eu +cs +eD +dw +fw +eF +ff +ge +gs +eD +gN +gY +hj +fu +hI +eD +eu +eu +eu +eu +eu +eu +eu +eu +eu +gM +jK +eu +mO +eu +eV +eu +mO +eu +kk +eu +ku +kz +kD +eD +kH +eu +kN +kP +kP +eu +aa +kS +lc +lc +kS +ll +lk +lk +lt +lx +nn +lC +lC +lK +lC +lC +nl +lx +mg +mf +mf +mf +kS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(67,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 +ae +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ak +ac +eu +eu +eu +eu +eu +fz +ff +eu +gt +eD +gO +eD +hk +fv +hI +jm +eu +eu +eu +eC +eC +gi +fe +fe +fv +jB +jB +jN +eD +jB +gi +jB +eD +jB +fe +gd +kv +hp +eV +eD +kH +eu +gM +gX +gX +gX +jK +kS +kS +mY +kS +lk +lk +lk +lt +lx +nm +lK +lC +lC +lC +lK +ng +lx +mg +mf +mf +mf +kS +kS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(68,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 +ae +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +mM +gW +gW +dY +dI +eD +eD +ff +gf +gu +eD +eD +gZ +hl +fv +hI +lQ +eu +it +eV +gz +eD +eD +eD +fY +fx +eD +eD +eD +eD +eD +eD +eD +eD +eD +ff +fx +kw +kw +kw +eD +kI +kK +gW +gW +gW +kR +fr +kY +lc +lc +le +lk +lk +lk +lt +lx +np +lC +np +nx +ne +lC +ne +lx +mf +mf +mf +mf +mt +kS +kS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(69,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 +af +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ei +gW +gW +eV +eD +eD +eD +ff +gg +gv +gG +eD +eD +hm +fv +hI +eD +mO +it +mO +eD +eD +eD +eD +eD +jx +eD +eD +eD +eD +eD +eD +eD +eD +eD +ff +gW +gW +gW +gW +gM +jK +hz +gW +gW +gW +kM +jK +kS +lc +lc +lf +lk +lk +lk +lt +lx +lC +lC +ng +nw +nd +lC +lC +lx +lq +lj +mf +mf +mu +mw +kS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(70,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 +ac +aj +ai +aw +aw +aw +aI +aI +aI +ai +ai +ai +ai +ai +aI +aI +aI +df +df +df +ai +mM +gW +gW +dY +dJ +eD +eD +ff +ge +gw +eD +eD +gZ +hn +fv +hI +lQ +eu +it +eV +gq +eD +eD +eD +jm +fu +eD +eD +eD +eD +eD +eD +eD +eD +eD +ff +fu +kx +kx +kx +eD +jm +kL +gW +gW +gW +kR +fr +kY +lc +lc +lg +lk +lk +lk +lt +lx +no +lC +no +ny +nc +lC +nc +lx +mf +mf +mf +mf +mv +kS +kS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(71,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 +ac +ak +ak +aK +bi +aK +bf +bf +bf +ak +aK +cB +aK +ak +bf +bf +bf +aK +mD +aK +ak +ak +eu +eu +eu +eu +eu +fs +ff +eu +gx +eD +gP +eD +ho +fv +hI +fY +eu +eu +eu +eE +eE +gc +fP +fP +fv +jC +jC +jO +eD +jC +gc +jC +eD +jC +fP +gh +gr +hp +eV +eD +ff +eu +gM +gX +gX +gX +jK +kS +kS +mY +kS +lk +lk +lk +lt +lx +nd +lK +lC +lC +lC +lK +nj +lx +mg +mf +mf +mf +kS +kS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(72,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 +ac +al +aw +aw +aw +aW +aw +aw +aw +ak +cp +cp +cp +ak +df +df +df +dD +df +df +df +ej +eu +eH +eJ +eH +fu +fi +ff +gf +gy +eD +gQ +ha +lM +fx +hI +eD +eu +iu +eu +eu +iQ +iX +jg +jn +eu +gM +jK +eu +mO +eu +eV +eu +mO +eu +kl +eu +ku +kA +kD +eD +ff +eu +kO +kP +kQ +eu +aa +kS +lc +lc +kS +ll +lk +lk +lt +lx +nq +lC +lC +lK +lC +lC +nk +lx +mg +mf +mf +mp +kS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +ac +am +ax +ax +ax +ax +ax +ax +bK +ak +cp +cp +cp +ak +dg +ax +ax +ax +ax +ax +ax +ek +eu +eI +eJ +eI +fv +fi +ff +gh +gr +gF +gM +gX +gr +eu +hI +gV +eu +eV +eu +iL +ev +iY +jh +jo +eu +iu +jF +eu +jS +jS +jS +jS +jS +jS +jS +eu +hp +eD +eV +gc +fP +eu +kM +gX +jK +eu +aa +kS +lc +lc +kS +lm +lk +lk +lt +lx +nd +lC +lC +lC +lC +lC +nj +lx +mg +mf +mf +mq +kS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +ac +bg +ay +aL +ax +ax +ax +ax +an +aK +cp +cC +cp +aK +dh +ax +ax +ax +ax +aL +ay +mL +eu +eJ +eJ +eJ +fx +fi +fY +gi +gz +eD +fY +gi +gi +gi +gz +eD +mP +ev +mP +ev +ev +ev +ev +jp +eu +eu +eu +eu +mO +eu +eV +eu +mO +eu +eu +eu +eu +eu +eu +eu +mP +eu +bk +bk +bk +bk +aa +kS +lc +lc +kS +ll +lk +lk +lt +lx +nq +lC +nu +ny +na +lC +nk +lx +mg +mf +mf +mh +kS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +ac +ao +az +az +az +aX +aX +aX +aX +mj +cq +cC +cS +mz +di +di +di +di +az +az +az +el +eu +eK +eJ +eJ +fy +fi +eD +eD +eD +eD +eD +eD +eD +eD +eD +iO +eu +iv +eu +iM +iR +iZ +iZ +jq +eu +jD +fu +eD +eD +eD +eD +eD +eD +eD +eD +eD +kj +iQ +iZ +iZ +iZ +eu +aa +aa +aa +aa +aa +kS +lc +lc +kS +ln +lk +lk +lt +lx +nd +lC +lC +lC +lC +lC +nj +lx +mf +mf +mf +mr +kS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +ac +ap +ax +ax +ax +aw +ak +me +ak +ak +cr +cC +cr +ak +ak +mA +ak +df +ax +ax +ax +em +eu +eL +eW +eJ +fU +eD +eD +fW +eD +eD +gV +eD +dJ +eD +eD +eD +eu +aa +eu +eu +eu +eu +eu +eu +eu +jE +fv +jM +eD +eD +eD +eD +eD +eD +eD +eD +kj +iX +kE +ev +iZ +eu +aa +aa +aa +aa +kS +kS +lc +lc +kS +lo +lk +lk +lt +ly +nr +lz +lz +lz +lz +lz +ni +ly +mf +mf +mf +ms +kS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +ac +aq +ax +ax +ax +aY +ak +bu +bL +ak +cr +cp +cr +ak +bL +bu +ak +dE +ax +ax +ax +en +eu +eu +eX +eX +eu +fQ +eu +ah +gA +gA +gA +fS +gA +hz +lR +hz +eu +bk +bk +bk +bk +bk +bk +bk +eu +jF +fv +jM +eD +eD +eD +eD +eD +eD +eD +eD +kj +jg +ks +ev +iL +eu +aa +aa +aa +aa +kT +kS +lc +lc +kS +kS +kS +kS +kS +kS +kS +lJ +lJ +lJ +lJ +lJ +kS +kS +kS +kS +mX +kS +kS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +ac +ar +ax +ax +ax +aw +ma +bv +bv +ak +cr +cp +cr +ak +bv +bv +ma +df +ax +ax +ax +eo +eu +eM +eJ +eJ +fA +eD +eu +ag +gA +gH +fm +fm +gA +hA +eJ +eJ +eu +aa +aa +aa +aa +aa +aa +aa +eu +jG +iC +eD +eD +eD +eD +eD +eD +eD +eD +eD +kj +jn +kt +ky +kJ +eu +aa +aa +aa +aa +kU +kS +lc +lc +lc +lc +lc +lc +kS +lv +lA +ld +ld +ld +ld +ld +mb +md +kS +lc +lc +kS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +ac +as +aA +aM +aM +aZ +ak +bw +bM +ak +cr +cp +cr +ak +bM +bw +ak +dF +dH +dH +dV +ep +eu +cT +eJ +eJ +fB +fR +eu +ag +gA +gH +fm +fm +gA +eJ +hJ +eJ +eu +aa +aa +aa +aa +aa +aa +aa +eu +eu +eu +jP +jT +jU +eu +jU +kb +jP +gf +jP +fu +eu +eu +eu +eu +eu +aa +aa +aa +aa +kV +kS +lc +lc +lh +la +lp +ls +kS +lv +lA +ld +ld +ld +ld +ld +mb +md +kS +lc +lc +kS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(80,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 +ac +at +aB +aB +aB +ba +ak +ak +ak +ak +cr +cp +cr +ak +ak +ak +ak +at +aB +aB +aB +ba +eu +eO +eJ +eJ +eJ +eJ +eu +ag +gA +gH +fm +fm +gA +eu +eu +eu +eu +aa +aa +aa +aa +aa +aa +aa +aa +aa +fu +fr +fv +aa +aa +aa +fv +fr +gg +fr +fv +aa +aa +aa +aa +aa +aa +aa +aa +aa +kS +kS +lc +lc +lh +la +la +ls +kS +lv +lA +ld +ld +ld +ld +ld +mb +md +kS +lc +lc +kS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(81,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +au +au +au +au +au +lX +bx +mi +ce +ml +cf +my +ce +mi +ds +mB +au +au +au +au +au +eu +eP +eW +eJ +fC +eW +eu +ag +gA +gH +fm +fm +hq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +iC +jP +iC +aa +aa +aa +iC +jP +km +jP +iC +aa +aa +aa +aa +aa +aa +aa +aa +aa +kS +kZ +lc +lc +lh +la +la +ls +kS +lv +lA +lI +lI +ld +lI +lI +mb +md +kS +lc +lc +kS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(82,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +av +aC +aN +aN +aN +aN +by +bO +cf +ct +ct +ct +cf +dj +by +dx +dx +dx +dx +dW +av +eu +eQ +eX +eX +fD +eX +eu +ag +gA +gH +fm +fm +hr +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +kS +la +lc +lc +lc +lc +lc +lc +kS +kS +kS +lH +lH +lH +lH +lH +kS +kS +kS +lc +lc +kS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(83,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +av +aD +aO +aO +aO +aO +aO +bP +cf +ct +cE +ct +cf +dk +dt +dt +dt +dt +dt +dX +av +eu +eu +eu +eu +eu +eu +eu +ag +gA +gA +fm +fm +gA +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +kS +lb +lc +lc +lc +lc +lc +lc +lc +lc +kS +lL +lL +lL +lL +lY +nh +lc +lc +lc +lc +kS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(84,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +au +au +au +au +au +lS +bz +bz +aK +ct +cF +ct +aK +bz +bz +mC +au +au +au +au +au +ak +ag +ag +ag +ag +ag +ag +ag +gB +gA +fS +fS +gA +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +kS +kS +lc +lc +lc +lc +lc +lc +lc +lc +kS +kS +kS +kS +kS +kS +kS +lc +lc +lc +kS +kS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(85,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ak +ak +ak +ak +ak +ak +ak +ak +cg +ct +cG +ct +cg +ak +ak +ak +ak +ak +ak +ak +ak +ak +ag +eY +eY +eY +eY +eY +eY +eY +gA +fm +fm +gA +gA +gA +gA +gA +gA +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +kS +kS +lc +lc +lc +lc +lc +lc +lc +lc +lc +lc +lc +lc +lc +lc +lc +lc +kS +kS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(86,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ag +bj +bA +ak +ch +ct +cH +ct +ch +ak +bA +dy +ak +mF +mH +mJ +ak +ew +ag +eY +fj +fE +eY +gj +gj +ia +gA +fm +fm +gA +hB +hB +hR +hY +gA +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +kS +kS +kS +kS +kS +kS +kS +lz +lz +lz +lz +lz +lz +lz +lz +lz +lz +kS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(87,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aS +ag +ag +ag +ak +ch +ct +ct +ct +ch +ak +ag +ag +ak +mG +cD +mK +ak +ex +ag +eY +fk +fE +eY +fE +ic +ic +fT +fm +fm +lO +hC +hC +hC +hZ +gA +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +kS +kS +kS +kS +nv +kS +kS +kS +kS +kS +kS +kS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(88,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aT +bh +ag +ag +ac +at +aB +aB +aB +ba +ac +ag +ag +ak +mE +cD +mI +ak +bb +ag +eY +fl +fE +eY +fj +fZ +fZ +gA +fm +fm +gA +gA +gA +gA +gA +gA +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +kS +kS +lF +lE +lF +kS +lZ +lZ +lZ +kS +kS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(89,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aT +bh +ag +ag +ab +aa +aa +aa +aa +aa +ab +ag +ag +ak +ak +dQ +ak +ak +ag +ag +eY +eY +fT +eY +eY +eY +eY +gA +fm +fm +gA +fE +fE +hS +ia +hq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +kS +lE +lE +lF +kS +lE +lE +lE +kS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(90,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aU +ag +ag +ag +ab +ci +cu +cu +cu +cZ +ab +ag +ag +ag +ag +ag +ag +ag +ag +ag +eY +fm +fm +fm +fm +fm +fm +gA +fm +fm +gA +fE +gH +hT +ib +iw +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +kS +lE +lE +lF +kS +lU +lE +lE +kS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(91,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +bb +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +eY +fm +fm +fm +fm +fm +fm +gk +fm +fm +fT +fE +fE +hT +ic +iw +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +kS +lE +lN +lE +lT +lE +lE +kS +kS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(92,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ab +ab +ab +ab +ey +ag +eY +fm +fm +fm +fm +fm +fm +gA +fm +fm +gA +fE +fE +ic +ic +ix +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +kS +kS +kS +kS +kS +kS +kS +kS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(93,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +cj +cv +ab +ab +cv +cj +ab +ab +ab +ab +aa +aa +ab +ag +ag +eY +eY +fS +eY +eY +eY +eY +gA +fS +fS +gA +gA +gA +gA +gA +gA +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(94,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ag +ab +aa +aa +ab +ag +ab +aa +aa +aa +aa +aa +ab +ag +ag +eY +fm +fm +eU +ga +hT +ib +ic +ic +ic +ic +ic +gA +aa +aa +bk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(95,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bk +bk +ab +ck +ab +bk +bk +ab +cj +ab +bk +bk +bk +bk +bk +ab +ag +ag +eY +fm +fH +fF +ga +hT +ib +ic +gC +gC +gC +fE +gA +aa +aa +bk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(96,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bk +cl +bk +aa +aa +bk +cl +bk +bk +bk +bk +bk +bk +ab +ag +ag +eY +fm +gH +fH +ga +ic +ic +ic +gC +gC +gC +fE +gA +aa +aa +bk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(97,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +hQ +cl +hQ +aa +aa +hQ +cl +hQ +aa +aa +aa +aa +aa +ab +ag +ag +eY +fm +fH +fh +ga +hT +ib +ic +gC +gC +gC +fE +gA +aa +aa +bk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(98,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +hQ +cl +hQ +aa +aa +hQ +cl +hQ +aa +aa +aa +aa +aa +aS +ag +ag +eY +fm +fm +eU +ga +hT +ib +ic +ic +ic +ic +ic +gA +aa +aa +bk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(99,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +hQ +cl +hQ +aa +aa +hQ +cl +hQ +aa +aa +aa +aa +aa +aT +ag +ag +eY +fm +fL +fg +fg +fg +fg +fg +eY +eY +eY +eY +gA +ht +id +gA +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(100,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +hQ +cl +hQ +aa +aa +hQ +cl +hQ +aa +aa +aa +aa +aa +aT +ag +ag +eY +fm +fJ +eN +eN +eN +eN +eN +eY +fm +fm +fm +fm +fm +ie +gA +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(101,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +hQ +cl +hQ +aa +aa +hQ +cl +hQ +aa +aa +aa +aa +aa +aU +ag +ag +eY +fm +fK +eN +eN +eN +eN +eN +hs +fm +fm +hD +hD +hD +fm +gA +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(102,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +hQ +cl +hQ +aa +aa +hQ +cl +hQ +aa +aa +aa +aa +aa +ab +ag +ag +eY +eY +eY +eY +eY +eY +eY +eY +eY +fm +fI +fH +fH +fH +if +gA +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(103,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +hQ +cl +hQ +aa +aa +hQ +cl +hQ +aa +aa +aa +aa +aa +ab +ab +ag +ag +ag +ag +ag +ag +ag +ag +ag +ah +fm +fI +fH +fH +fH +if +gA +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(104,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +hQ +cl +hQ +aa +aa +hQ +cl +hQ +aa +aa +aa +aa +aa +aa +ab +ex +bb +ag +ag +ag +gb +ag +aE +gI +eY +fm +fm +hE +hE +hE +fm +gA +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(105,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +hQ +cl +hQ +aa +aa +hQ +cl +hQ +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gA +hb +fm +fm +fm +fm +ig +gA +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(106,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +hQ +cl +hQ +aa +aa +hQ +cl +hQ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +gA +gA +ht +hF +hF +hF +id +gA +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(107,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 +hQ +cl +hQ +aa +aa +hQ +cl +hQ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(108,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 +hQ +cl +hQ +aa +aa +hQ +cl +hQ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(109,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(110,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(111,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(112,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(113,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(114,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(115,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(116,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(117,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(118,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(119,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(120,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(121,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(122,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(123,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(124,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(125,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(126,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(127,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(128,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} diff --git a/_maps/RandomZLevels/challenge.dmm b/_maps/RandomZLevels/challenge.dmm new file mode 100644 index 0000000..79a8b40 --- /dev/null +++ b/_maps/RandomZLevels/challenge.dmm @@ -0,0 +1,66836 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/open/space, +/area/space) +"ab" = ( +/turf/closed/indestructible{ + icon_state = "iron0" + }, +/area/awaymission/challenge/start) +"ac" = ( +/obj/structure/girder, +/turf/open/floor/plating/airless, +/area/awaymission/challenge/start) +"ad" = ( +/turf/open/floor/plating, +/area/awaymission/challenge/start) +"ae" = ( +/turf/open/floor/plasteel/airless{ + icon_state = "damaged5" + }, +/area/awaymission/challenge/start) +"af" = ( +/turf/open/floor/plasteel/airless{ + icon_state = "damaged2" + }, +/area/awaymission/challenge/start) +"ag" = ( +/obj/item/clothing/suit/space/syndicate/blue, +/obj/item/clothing/head/helmet/space/syndicate/blue, +/turf/open/floor/plasteel/airless{ + icon_state = "damaged2" + }, +/area/awaymission/challenge/start) +"ah" = ( +/turf/open/floor/plasteel/airless, +/area/awaymission/challenge/start) +"ai" = ( +/obj/item/device/flashlight{ + icon_state = "flashlight-on"; + item_state = "flashlight"; + on = 1 + }, +/turf/open/floor/plasteel/airless, +/area/awaymission/challenge/start) +"aj" = ( +/obj/effect/landmark{ + name = "awaystart" + }, +/turf/open/floor/plasteel/airless{ + icon_state = "damaged3" + }, +/area/awaymission/challenge/start) +"ak" = ( +/obj/effect/decal/remains/human, +/turf/open/floor/plasteel/airless{ + icon_state = "damaged4" + }, +/area/awaymission/challenge/start) +"al" = ( +/obj/effect/landmark{ + name = "awaystart" + }, +/turf/open/floor/plasteel/airless, +/area/awaymission/challenge/start) +"am" = ( +/obj/item/clothing/suit/space/syndicate/green, +/obj/item/clothing/head/helmet/space/syndicate/green, +/turf/open/floor/plasteel/airless{ + icon_state = "damaged2" + }, +/area/awaymission/challenge/start) +"an" = ( +/turf/open/floor/plasteel/airless{ + icon_state = "damaged3" + }, +/area/awaymission/challenge/start) +"ao" = ( +/obj/item/clothing/suit/space/syndicate/orange, +/obj/item/clothing/head/helmet/space/syndicate/orange, +/turf/open/floor/plasteel/airless, +/area/awaymission/challenge/start) +"ap" = ( +/obj/item/weapon/gun/energy/laser/retro, +/turf/open/floor/plasteel/airless, +/area/awaymission/challenge/start) +"aq" = ( +/obj/item/stack/rods, +/turf/open/floor/plasteel, +/area/awaymission/challenge/start) +"ar" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plasteel/airless, +/area/awaymission/challenge/start) +"as" = ( +/obj/effect/decal/remains/robot, +/turf/open/floor/plasteel/airless{ + icon_state = "damaged2" + }, +/area/awaymission/challenge/start) +"at" = ( +/obj/structure/girder, +/turf/open/floor/plating, +/area/awaymission/challenge/start) +"au" = ( +/turf/closed/wall, +/area/awaymission/challenge/start) +"av" = ( +/turf/open/floor/plasteel/airless{ + icon_state = "damaged4" + }, +/area/awaymission/challenge/start) +"aw" = ( +/obj/item/stack/rods, +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/floor/plasteel/airless{ + icon_state = "damaged2" + }, +/area/awaymission/challenge/start) +"ax" = ( +/obj/effect/decal/cleanable/oil, +/mob/living/simple_animal/hostile/syndicate, +/turf/open/floor/plating, +/area/awaymission/challenge/start) +"ay" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel/airless, +/area/awaymission/challenge/start) +"az" = ( +/obj/item/clothing/suit/space/syndicate/black, +/obj/item/clothing/head/helmet/space/syndicate/black, +/turf/open/floor/plasteel/airless{ + icon_state = "damaged2" + }, +/area/awaymission/challenge/start) +"aA" = ( +/turf/closed/indestructible{ + icon_state = "iron0" + }, +/area/awaymission/challenge/main) +"aB" = ( +/obj/structure/girder, +/turf/open/floor/plating, +/area/awaymission/challenge/main) +"aC" = ( +/turf/open/floor/plating, +/area/awaymission/challenge/main) +"aD" = ( +/turf/open/floor/plasteel/airless{ + icon_state = "damaged3" + }, +/area/awaymission/challenge/main) +"aE" = ( +/turf/closed/wall, +/area/awaymission/challenge/main) +"aF" = ( +/turf/open/floor/plating/airless, +/area/awaymission/challenge/main) +"aG" = ( +/turf/open/floor/plasteel/airless{ + icon_state = "damaged2" + }, +/area/awaymission/challenge/main) +"aH" = ( +/turf/open/floor/plasteel/airless, +/area/awaymission/challenge/main) +"aI" = ( +/obj/machinery/power/emitter{ + active = 1; + active_power_usage = 0; + anchored = 1; + dir = 2; + idle_power_usage = 0; + locked = 1; + name = "Energy Cannon"; + req_access_txt = "100"; + state = 2; + use_power = 0 + }, +/turf/open/floor/plating/airless, +/area/awaymission/challenge/main) +"aJ" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/airless, +/area/awaymission/challenge/main) +"aK" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel/airless, +/area/awaymission/challenge/main) +"aL" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plasteel/airless, +/area/awaymission/challenge/main) +"aM" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/airless, +/area/awaymission/challenge/main) +"aN" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating/airless, +/area/awaymission/challenge/main) +"aO" = ( +/obj/structure/window/reinforced, +/obj/machinery/power/emitter{ + active = 1; + active_power_usage = 0; + anchored = 1; + dir = 2; + idle_power_usage = 0; + locked = 1; + name = "Energy Cannon"; + req_access_txt = "100"; + state = 2; + use_power = 0 + }, +/turf/open/floor/plating/airless, +/area/awaymission/challenge/main) +"aP" = ( +/obj/structure/window/reinforced, +/turf/open/floor/plating/airless, +/area/awaymission/challenge/main) +"aQ" = ( +/obj/structure/window/reinforced, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating/airless, +/area/awaymission/challenge/main) +"aR" = ( +/turf/open/floor/plasteel/warning, +/area/awaymission/challenge/main) +"aS" = ( +/obj/machinery/power/emitter{ + active = 1; + active_power_usage = 0; + anchored = 1; + dir = 4; + idle_power_usage = 0; + locked = 1; + name = "Energy Cannon"; + req_access_txt = "100"; + state = 2; + use_power = 0 + }, +/turf/open/floor/plating/airless, +/area/awaymission/challenge/main) +"aT" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/awaymission/challenge/main) +"aU" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/airless, +/area/awaymission/challenge/main) +"aV" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/awaymission/challenge/main) +"aW" = ( +/obj/machinery/power/emitter{ + active = 1; + active_power_usage = 0; + anchored = 1; + dir = 8; + idle_power_usage = 0; + locked = 1; + name = "Energy Cannon"; + req_access_txt = "100"; + state = 2; + use_power = 0 + }, +/turf/open/floor/plating/airless, +/area/awaymission/challenge/main) +"aX" = ( +/obj/machinery/porta_turret{ + dir = 8; + emagged = 1; + installation = /obj/item/weapon/gun/energy/lasercannon + }, +/turf/open/floor/plating/airless, +/area/awaymission/challenge/main) +"aY" = ( +/obj/structure/grille, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/awaymission/challenge/main) +"aZ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/awaymission/challenge/main) +"ba" = ( +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/awaymission/challenge/main) +"bb" = ( +/obj/item/device/multitool, +/turf/open/floor/plasteel/airless, +/area/awaymission/challenge/main) +"bc" = ( +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/floor/plasteel/airless, +/area/awaymission/challenge/main) +"bd" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating/warnplate{ + dir = 9 + }, +/area/awaymission/challenge/main) +"be" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/awaymission/challenge/main) +"bf" = ( +/obj/machinery/power/emitter{ + active = 1; + active_power_usage = 0; + anchored = 1; + dir = 1; + idle_power_usage = 0; + locked = 1; + name = "Energy Cannon"; + req_access_txt = "100"; + state = 2; + use_power = 0 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/awaymission/challenge/main) +"bg" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating/warnplate{ + dir = 5 + }, +/area/awaymission/challenge/main) +"bh" = ( +/turf/open/floor/plasteel, +/area/awaymission/challenge/main) +"bi" = ( +/obj/machinery/power/emitter{ + active = 1; + active_power_usage = 0; + anchored = 1; + dir = 1; + idle_power_usage = 0; + locked = 1; + name = "Energy Cannon"; + req_access_txt = "100"; + state = 2; + use_power = 0 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/awaymission/challenge/main) +"bj" = ( +/obj/machinery/light, +/turf/open/floor/plating, +/area/awaymission/challenge/main) +"bk" = ( +/obj/machinery/power/emitter{ + active = 1; + active_power_usage = 0; + anchored = 1; + dir = 1; + idle_power_usage = 0; + locked = 1; + name = "Energy Cannon"; + req_access_txt = "100"; + state = 2; + use_power = 0 + }, +/obj/machinery/light, +/turf/open/floor/plating, +/area/awaymission/challenge/main) +"bl" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/power/emitter{ + active = 1; + active_power_usage = 0; + anchored = 1; + dir = 1; + idle_power_usage = 0; + locked = 1; + name = "Energy Cannon"; + req_access_txt = "100"; + state = 2; + use_power = 0 + }, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/awaymission/challenge/main) +"bm" = ( +/obj/machinery/door/window, +/turf/open/floor/plasteel/airless, +/area/awaymission/challenge/main) +"bn" = ( +/turf/closed/wall/shuttle{ + icon_state = "wall3" + }, +/area/awaymission/challenge/main) +"bo" = ( +/obj/machinery/power/emitter{ + active = 1; + active_power_usage = 0; + anchored = 1; + dir = 2; + idle_power_usage = 0; + locked = 1; + name = "Energy Cannon"; + req_access_txt = "100"; + state = 2; + use_power = 0 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/awaymission/challenge/main) +"bp" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating, +/area/awaymission/challenge/main) +"bq" = ( +/obj/machinery/porta_turret{ + dir = 8; + emagged = 1; + installation = /obj/item/weapon/gun/energy/lasercannon + }, +/turf/open/floor/plating, +/area/awaymission/challenge/main) +"br" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/awaymission/challenge/main) +"bs" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating/airless, +/area/awaymission/challenge/main) +"bt" = ( +/obj/item/weapon/storage/toolbox/electrical, +/turf/open/floor/plasteel/airless, +/area/awaymission/challenge/main) +"bu" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plating/warnplate{ + dir = 10 + }, +/area/awaymission/challenge/main) +"bv" = ( +/obj/structure/window/reinforced, +/turf/open/floor/plating/warnplate{ + dir = 2 + }, +/area/awaymission/challenge/main) +"bw" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plating/warnplate{ + dir = 6 + }, +/area/awaymission/challenge/main) +"bx" = ( +/obj/machinery/power/emitter{ + active = 1; + active_power_usage = 0; + anchored = 1; + dir = 8; + idle_power_usage = 0; + locked = 1; + name = "Energy Cannon"; + req_access_txt = "100"; + state = 2; + use_power = 0 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/awaymission/challenge/main) +"by" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/warning, +/area/awaymission/challenge/main) +"bz" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/warning, +/area/awaymission/challenge/main) +"bA" = ( +/obj/structure/grille, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/awaymission/challenge/main) +"bB" = ( +/obj/item/clothing/gloves/color/yellow, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/awaymission/challenge/main) +"bC" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/power/emitter{ + active = 1; + active_power_usage = 0; + anchored = 1; + dir = 8; + idle_power_usage = 0; + locked = 1; + name = "Energy Cannon"; + req_access_txt = "100"; + state = 2; + use_power = 0 + }, +/turf/open/floor/plating/airless, +/area/awaymission/challenge/main) +"bD" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/power/emitter{ + active = 1; + active_power_usage = 0; + anchored = 1; + dir = 4; + idle_power_usage = 0; + locked = 1; + name = "Energy Cannon"; + req_access_txt = "100"; + state = 2; + use_power = 0 + }, +/turf/open/floor/plating/airless, +/area/awaymission/challenge/main) +"bE" = ( +/obj/item/weapon/storage/firstaid/fire, +/turf/open/floor/plasteel/airless, +/area/awaymission/challenge/main) +"bF" = ( +/turf/open/floor/plasteel/white/corner{ + dir = 2 + }, +/area/awaymission/challenge/main) +"bG" = ( +/turf/open/floor/plasteel/white/side{ + dir = 2 + }, +/area/awaymission/challenge/main) +"bH" = ( +/turf/open/floor/plasteel/white/corner{ + dir = 8 + }, +/area/awaymission/challenge/main) +"bI" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/awaymission/challenge/main) +"bJ" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/awaymission/challenge/main) +"bK" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/awaymission/challenge/main) +"bL" = ( +/obj/machinery/power/emitter{ + active = 1; + active_power_usage = 0; + anchored = 1; + dir = 1; + idle_power_usage = 0; + locked = 1; + name = "Energy Cannon"; + req_access_txt = "100"; + state = 2; + use_power = 0 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/awaymission/challenge/main) +"bM" = ( +/obj/machinery/power/emitter{ + active = 1; + active_power_usage = 0; + anchored = 1; + dir = 1; + idle_power_usage = 0; + locked = 1; + name = "Energy Cannon"; + req_access_txt = "100"; + state = 2; + use_power = 0 + }, +/turf/open/floor/plating/airless, +/area/awaymission/challenge/main) +"bN" = ( +/obj/machinery/power/emitter{ + active = 1; + active_power_usage = 0; + anchored = 1; + dir = 1; + idle_power_usage = 0; + locked = 1; + name = "Energy Cannon"; + req_access_txt = "100"; + state = 2; + use_power = 0 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/awaymission/challenge/main) +"bO" = ( +/obj/machinery/power/emitter{ + active = 1; + active_power_usage = 0; + anchored = 1; + dir = 1; + idle_power_usage = 0; + locked = 1; + name = "Energy Cannon"; + req_access_txt = "100"; + state = 2; + use_power = 0 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/awaymission/challenge/main) +"bP" = ( +/turf/closed/indestructible{ + icon_state = "iron0" + }, +/area/awaymission/challenge/end) +"bQ" = ( +/obj/item/weapon/gun/projectile/revolver/russian, +/turf/open/floor/plasteel/white/side{ + dir = 2 + }, +/area/awaymission/challenge/main) +"bR" = ( +/obj/structure/table/reinforced, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/recharger{ + pixel_y = 4 + }, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/challenge/end) +"bS" = ( +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching evil areas."; + name = "Security Monitor"; + network = ""; + pixel_x = 0; + pixel_y = 30 + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/black, +/area/awaymission/challenge/end) +"bT" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/light, +/turf/open/floor/plating/airless, +/area/awaymission/challenge/main) +"bU" = ( +/turf/open/floor/plasteel/warnwhite{ + dir = 2 + }, +/area/awaymission/challenge/main) +"bV" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/light, +/turf/open/floor/plating/airless, +/area/awaymission/challenge/main) +"bW" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/filingcabinet, +/turf/open/floor/carpet, +/area/awaymission/challenge/end) +"bX" = ( +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching evil areas."; + name = "Security Monitor"; + network = ""; + pixel_x = 0; + pixel_y = 30 + }, +/turf/open/floor/carpet, +/area/awaymission/challenge/end) +"bY" = ( +/turf/open/floor/carpet, +/area/awaymission/challenge/end) +"bZ" = ( +/obj/structure/mirror{ + pixel_y = 28 + }, +/turf/open/floor/wood, +/area/awaymission/challenge/end) +"ca" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/rack, +/obj/item/clothing/suit/armor/heavy, +/turf/open/floor/wood, +/area/awaymission/challenge/end) +"cb" = ( +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/challenge/end) +"cc" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/item/device/radio/intercom{ + dir = 0; + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = 28 + }, +/turf/open/floor/plasteel/black, +/area/awaymission/challenge/end) +"cd" = ( +/turf/open/floor/plasteel/black, +/area/awaymission/challenge/end) +"ce" = ( +/mob/living/simple_animal/hostile/syndicate/ranged/space{ + name = "Syndicate Officer" + }, +/turf/open/floor/plasteel/black, +/area/awaymission/challenge/end) +"cf" = ( +/obj/machinery/door/airlock/centcom{ + name = "Airlock"; + opacity = 1; + req_access_txt = "109" + }, +/turf/open/floor/plating, +/area/awaymission/challenge/end) +"cg" = ( +/obj/item/device/radio/intercom{ + dir = 0; + name = "Station Intercom (General)"; + pixel_x = -27 + }, +/turf/open/floor/carpet, +/area/awaymission/challenge/end) +"ch" = ( +/obj/structure/chair/comfy/black, +/mob/living/simple_animal/hostile/syndicate{ + name = "Syndicate Commander" + }, +/turf/open/floor/carpet, +/area/awaymission/challenge/end) +"ci" = ( +/obj/structure/table/wood, +/obj/machinery/recharger{ + pixel_y = 4 + }, +/turf/open/floor/carpet, +/area/awaymission/challenge/end) +"cj" = ( +/turf/open/floor/wood, +/area/awaymission/challenge/end) +"ck" = ( +/obj/structure/rack, +/obj/item/weapon/gun/projectile/revolver/mateba, +/turf/open/floor/wood, +/area/awaymission/challenge/end) +"cl" = ( +/mob/living/simple_animal/hostile/syndicate/melee, +/turf/open/floor/plasteel/black, +/area/awaymission/challenge/end) +"cm" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/space, +/area/space) +"cn" = ( +/turf/open/floor/bluegrid, +/area/awaymission/challenge/end) +"co" = ( +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/awaymission/challenge/end) +"cp" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/space, +/area/space) +"cq" = ( +/obj/structure/table/wood, +/obj/item/weapon/melee/chainofcommand, +/obj/item/weapon/stamp, +/turf/open/floor/carpet, +/area/awaymission/challenge/end) +"cr" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper{ + info = "Congratulations,

Your station has been selected to carry out the Gateway Project.

The equipment will be shipped to you at the start of the next quarter.
You are to prepare a secure location to house the equipment as outlined in the attached documents.

--Nanotrasen Blue Space Research"; + name = "Confidential Correspondence, Pg 1"; + pixel_x = 0; + pixel_y = 0 + }, +/obj/item/weapon/folder/blue, +/turf/open/floor/carpet, +/area/awaymission/challenge/end) +"cs" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp/green{ + pixel_x = 1; + pixel_y = 5 + }, +/turf/open/floor/carpet, +/area/awaymission/challenge/end) +"ct" = ( +/obj/structure/rack, +/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/silenced, +/turf/open/floor/wood, +/area/awaymission/challenge/end) +"cu" = ( +/mob/living/simple_animal/hostile/syndicate/melee, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/challenge/end) +"cv" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/wood, +/area/awaymission/challenge/end) +"cw" = ( +/obj/structure/rack, +/obj/item/weapon/gun/projectile/automatic/l6_saw, +/turf/open/floor/wood, +/area/awaymission/challenge/end) +"cx" = ( +/obj/machinery/door/airlock/centcom{ + name = "Security"; + opacity = 1; + req_access_txt = "109" + }, +/turf/open/floor/plasteel/black, +/area/awaymission/challenge/end) +"cy" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/space, +/area/space) +"cz" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/space, +/area/space) +"cA" = ( +/obj/structure/sign/securearea, +/turf/closed/indestructible{ + icon_state = "iron0" + }, +/area/awaymission/challenge/end) +"cB" = ( +/obj/machinery/door/airlock/centcom{ + name = "Administrator"; + opacity = 1; + req_access_txt = "109" + }, +/turf/open/floor/plasteel/black, +/area/awaymission/challenge/end) +"cC" = ( +/obj/item/weapon/storage/toolbox/electrical, +/turf/open/floor/bluegrid, +/area/awaymission/challenge/end) +"cD" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/bluegrid, +/area/awaymission/challenge/end) +"cE" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/bluegrid, +/area/awaymission/challenge/end) +"cF" = ( +/mob/living/simple_animal/hostile/syndicate/ranged, +/turf/open/floor/plasteel/black, +/area/awaymission/challenge/end) +"cG" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/bluegrid, +/area/awaymission/challenge/end) +"cH" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/space, +/area/space) +"cI" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/space, +/area/space) +"cJ" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/space, +/area/space) +"cK" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/space, +/area/space) +"cL" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/space, +/area/space) +"cM" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plating, +/area/awaymission/challenge/end) +"cN" = ( +/obj/structure/grille, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating, +/area/awaymission/challenge/end) +"cO" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating, +/area/awaymission/challenge/end) +"cP" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating, +/area/awaymission/challenge/end) +"cQ" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/bluegrid, +/area/awaymission/challenge/end) +"cR" = ( +/obj/machinery/gateway{ + dir = 9 + }, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/awaymission/challenge/end) +"cS" = ( +/obj/machinery/gateway{ + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/awaymission/challenge/end) +"cT" = ( +/obj/machinery/gateway{ + dir = 5 + }, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/awaymission/challenge/end) +"cU" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/bluegrid, +/area/awaymission/challenge/end) +"cV" = ( +/obj/machinery/gateway{ + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/awaymission/challenge/end) +"cW" = ( +/obj/machinery/gateway/centeraway{ + calibrated = 0 + }, +/turf/open/floor/plasteel/black, +/area/awaymission/challenge/end) +"cX" = ( +/obj/machinery/gateway{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/awaymission/challenge/end) +"cY" = ( +/obj/machinery/gateway{ + dir = 10 + }, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/awaymission/challenge/end) +"cZ" = ( +/obj/machinery/gateway, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/awaymission/challenge/end) +"da" = ( +/obj/machinery/gateway{ + dir = 6 + }, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/awaymission/challenge/end) +"db" = ( +/obj/structure/window/reinforced, +/turf/open/floor/bluegrid, +/area/awaymission/challenge/end) +"dc" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/black, +/area/awaymission/challenge/end) +"dd" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, +/turf/open/space, +/area/space) +"de" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plating, +/area/awaymission/challenge/end) +"df" = ( +/obj/structure/table, +/obj/item/weapon/paper/pamphlet, +/turf/open/floor/plasteel/black, +/area/awaymission/challenge/end) +"dg" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/plasteel/black, +/area/awaymission/challenge/end) +"dh" = ( +/obj/structure/table, +/obj/machinery/recharger{ + pixel_y = 4 + }, +/turf/open/floor/plasteel/black, +/area/awaymission/challenge/end) +"di" = ( +/obj/structure/table, +/obj/item/weapon/implanter/explosive, +/obj/item/weapon/implanter/explosive{ + pixel_y = 4 + }, +/obj/item/weapon/implanter/explosive{ + pixel_y = 8 + }, +/obj/item/weapon/implanter/explosive{ + pixel_y = 12 + }, +/turf/open/floor/plasteel/black, +/area/awaymission/challenge/end) +"dj" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced, +/turf/open/space, +/area/space) +"dk" = ( +/obj/machinery/door/airlock/centcom{ + name = "Gateway Access"; + opacity = 1; + req_access_txt = "109" + }, +/turf/open/floor/plasteel/black, +/area/awaymission/challenge/end) +"dl" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating, +/area/awaymission/challenge/end) +"dm" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/mob/living/simple_animal/hostile/syndicate{ + name = "Syndicate Technician" + }, +/turf/open/floor/plasteel/black, +/area/awaymission/challenge/end) +"dn" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/black, +/area/awaymission/challenge/end) +"do" = ( +/obj/machinery/light, +/turf/open/floor/bluegrid, +/area/awaymission/challenge/end) +"dp" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/bluegrid, +/area/awaymission/challenge/end) +"dq" = ( +/obj/structure/cable, +/obj/machinery/power/smes/magical, +/turf/open/floor/bluegrid, +/area/awaymission/challenge/end) +"dr" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/bluegrid, +/area/awaymission/challenge/end) +"ds" = ( +/obj/structure/closet/l3closet, +/turf/open/floor/bluegrid, +/area/awaymission/challenge/end) + +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(8,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(9,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(10,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(11,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(12,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(13,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(14,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(15,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(16,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(17,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(18,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(19,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(20,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(21,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(22,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(23,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(24,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(25,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(26,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(27,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(28,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(29,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(30,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(31,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(32,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(33,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(34,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(35,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(36,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(37,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(38,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(39,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(40,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(41,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(42,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(43,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(44,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(45,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(46,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(47,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(48,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(49,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(50,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(51,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(52,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(53,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(54,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(55,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(56,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(57,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(58,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(59,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(60,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(61,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(62,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(63,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(64,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(65,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(66,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(67,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(68,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(69,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(70,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(71,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(72,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(80,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(81,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(82,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(83,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(84,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(85,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(86,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(87,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(88,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(89,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(90,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(91,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(92,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(93,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(94,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(95,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(96,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(97,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(98,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(99,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aA +aA +aA +aA +aA +aA +aA +aA +aA +aA +aA +aA +aA +aA +aA +aA +aA +aA +aA +aA +aA +aA +aA +aA +aA +aA +aA +aA +aA +aA +aa +aa +bP +bP +bP +bP +bP +bP +bP +bP +bP +bP +bP +bP +bP +bP +bP +bP +bP +bP +bP +bP +bP +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(100,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aA +aF +aF +aF +aF +aX +aS +aF +aF +aS +aF +aF +aS +aF +aF +aS +aF +aF +aF +aF +aF +aF +aF +aF +aS +aF +aF +aF +aF +aA +aa +aa +bP +bR +cb +cb +cb +bP +cn +cn +cE +cn +cH +aa +aa +aa +aa +aa +aa +aa +aa +aa +bP +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(101,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aA +aS +aF +aF +aF +aF +aF +aF +aF +aF +aF +aS +aF +aF +aF +aF +aF +aF +aF +aF +aS +aF +aF +aF +aF +aF +aN +aF +aF +aA +aa +aa +bP +bS +cc +cl +cb +bP +cC +cd +cd +cn +cI +cm +cm +cm +cm +cm +cm +cm +cm +cm +bP +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(102,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aA +aA +aA +aA +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +bs +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +bD +aT +aT +aA +aA +aA +bP +bS +cd +cd +cd +cx +co +cd +cd +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +bP +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(103,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aA +aF +aF +aO +aH +aH +aH +aH +aJ +aH +aH +aH +aH +bh +aJ +aH +aH +aH +aH +aJ +aH +aH +aH +by +aY +ba +aH +aH +aH +aJ +aH +aH +bI +aF +aF +bP +bS +ce +cd +cd +cx +co +cd +cd +cd +cd +cd +cd +cd +cd +cd +cd +cd +cF +do +bP +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(104,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aA +aF +aF +aP +aH +aH +aH +aH +aH +aH +aH +aH +aH +aR +aY +ba +bt +aH +aH +aH +aH +aH +aH +aR +bA +ba +aH +aH +aH +aH +bE +aH +bI +bM +aF +bP +bS +cc +cd +cu +bP +cn +cd +cd +cd +cd +cd +cd +cd +cd +cd +cd +cd +cd +cn +bP +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(105,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aA +aF +aI +aQ +aH +aH +aK +aH +aH +aH +aH +aH +aH +aR +aZ +ba +aH +aH +aH +aH +aH +aH +aH +aR +bA +ba +aH +aH +aH +aH +aH +aH +bI +aF +aF +bP +bR +cb +cb +cb +bP +cn +cd +cd +cn +cn +cn +cn +cn +cn +cn +cn +cd +cn +cn +bP +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(106,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +af +an +ah +ad +an +ax +aA +aF +aF +aP +aH +aH +aH +aR +aY +ba +aH +aH +aH +bh +bm +aH +aH +aH +aH +aH +aR +aY +ba +aR +aZ +ba +aH +aH +aR +aY +ba +aH +bI +aF +bM +bP +bP +bP +bP +bP +bP +cD +cd +cd +cn +cJ +cp +cp +cp +cp +cp +dd +co +cJ +cp +bP +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(107,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 +ab +ad +aj +an +ao +af +an +av +aA +aA +aA +aA +aU +aH +aH +aR +aZ +ba +aH +aH +bd +bi +bn +bo +bu +aH +aH +aH +aR +aZ +ba +aH +aH +aH +aH +aH +aR +aZ +ba +aH +bI +aF +aF +aF +aF +bP +cm +cm +cy +cn +cd +cd +cn +cH +cM +cP +cP +cP +cP +de +dk +dl +de +bP +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(108,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 +ab +ae +ak +al +af +ad +aw +av +aB +aC +aJ +aR +aH +aH +aH +aH +aH +bb +aH +aH +be +bj +bn +bp +bv +aH +aK +aH +aH +aH +aH +aR +aY +ba +aH +aH +aH +bm +aH +bF +bJ +bN +aT +aT +bT +bP +cn +cn +cn +cn +cd +cd +cn +cH +cN +cQ +cn +cn +db +df +cd +cd +dp +bP +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(109,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 +ab +af +al +ah +af +at +af +an +aC +aG +aK +aR +aH +aH +aH +aH +aH +aH +aH +aH +bf +aC +bn +bq +bv +aH +aH +aH +aH +aH +aH +aR +bA +ba +aH +aH +aR +aY +ba +bG +bG +bG +bG +bQ +bU +cf +co +cd +cd +cd +cd +cd +cn +cH +cN +cR +cV +cY +db +dg +cd +cd +cn +bP +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(110,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 +ab +ag +ah +al +ap +au +af +ay +aD +aC +aL +aR +aH +aH +aH +aH +aH +aH +aH +aH +be +aC +bn +bq +bv +aH +aH +aH +aH +aH +aH +aR +bA +ba +aH +aH +aR +aZ +ba +bG +bG +bG +bG +bG +bU +cf +co +cd +cd +cd +cd +cd +cn +cH +cN +cS +cW +cZ +dc +dc +dc +dm +dq +bP +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(111,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 +ab +ah +al +ah +aq +at +an +az +aE +aH +aM +aR +aH +aH +aH +aH +aH +aH +aH +aH +be +bk +bn +bp +bv +aH +aH +aH +aH +aH +aH +aR +aZ +ba +aH +aH +aH +bm +aH +bH +bK +aV +bO +aV +bV +bP +cn +cn +cn +cn +cd +cd +cn +cH +cN +cT +cX +da +db +dh +cd +dn +dr +bP +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(112,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 +ab +ai +ah +al +ar +af +av +ad +aA +aA +aA +aA +aU +aH +aH +aR +aY +ba +aH +aH +bg +bl +bn +br +bw +aH +aH +aH +aR +aY +ba +aH +aH +aH +aH +aH +aR +aY +ba +aH +bI +aN +aF +aF +bM +bP +cp +cp +cz +cn +cd +cd +cn +cH +cN +cU +cn +cn +db +di +cd +cd +ds +bP +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(113,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 +ab +ah +am +ad +as +av +ae +av +aA +aF +aN +aP +aH +aH +aH +aR +aZ +ba +aH +aH +aH +bh +bm +aH +aH +aH +aH +aH +aR +aZ +ba +aR +aY +ba +aH +aH +aR +aZ +ba +aH +bI +aF +bM +bP +bP +bP +bP +bP +bP +cD +cd +cd +cn +cH +cO +cP +cP +cP +cP +de +dk +dl +de +bP +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(114,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 +ab +ab +ab +ab +ab +ab +ab +ab +aA +aF +aF +aO +aH +aH +aH +aH +aH +aH +bc +aH +aH +aR +aY +ba +aH +aH +aH +aH +aH +aH +aH +aR +bA +ba +aH +aH +aH +aH +aH +aH +bI +aF +aF +bP +bW +cg +cq +cj +bP +cn +cd +cd +cn +cK +cm +cm +cm +cm +cm +dj +co +cK +cm +bP +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(115,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aA +aF +aF +aP +aH +aH +aH +aH +aH +aH +aH +aH +aH +aR +aZ +ba +aH +aH +aH +aH +aH +aH +aH +aR +bA +bB +aH +aH +aH +aH +aH +aH +bL +aF +aF +bP +bX +ch +cr +cv +bP +cn +cd +cF +cn +cn +cn +cn +cn +cn +cn +cn +cd +cn +cn +bP +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(116,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aA +aI +aF +aP +aH +aH +aH +aH +aM +aH +aH +aH +aH +bh +aM +aH +aH +aH +aH +aM +aH +aH +aH +bz +aZ +ba +aH +aH +aH +aM +aH +aH +bI +aF +aF +bP +bY +ci +cs +cj +cA +cd +cd +cd +cd +cd +cd +cd +cd +cd +cd +cd +cd +cd +cn +bP +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(117,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aA +aA +aA +aA +aV +aV +aV +aV +aV +aV +aV +aV +aV +aV +aV +aV +aV +aV +aV +aV +aV +bx +aV +aV +aV +aV +aV +aV +bC +aV +aV +aV +aA +aA +aA +bP +bY +bY +bY +cj +cB +co +cd +cd +cd +cd +cd +cd +cd +cd +cd +cd +cd +cd +do +bP +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(118,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aA +aF +aF +aF +aF +aN +aF +aF +aF +aW +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aF +aA +aa +aa +bP +bZ +cj +cj +cj +bP +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +bP +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(119,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aA +aF +aF +aW +aF +aX +aF +aW +aF +aF +aF +aF +aF +aW +aF +aF +aW +aF +aF +aF +aF +aF +aF +aW +aF +aF +aF +aF +aW +aA +aa +aa +bP +ca +ck +ct +cw +bP +cn +cn +cG +cn +cL +cp +cp +cp +cp +cp +cp +cp +cp +cp +bP +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(120,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aA +aA +aA +aA +aA +aA +aA +aA +aA +aA +aA +aA +aA +aA +aA +aA +aA +aA +aA +aA +aA +aA +aA +aA +aA +aA +aA +aA +aA +aA +aa +aa +bP +bP +bP +bP +bP +bP +bP +bP +bP +bP +bP +bP +bP +bP +bP +bP +bP +bP +bP +bP +bP +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(121,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(122,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(123,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(124,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(125,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(126,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(127,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(128,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(129,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(130,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(131,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(132,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(133,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(134,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(135,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(136,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(137,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(138,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(139,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(140,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(141,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(142,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(143,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(144,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(145,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(146,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(147,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(148,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(149,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(150,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(151,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(152,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(153,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(154,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(155,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(156,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(157,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(158,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(159,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(160,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(161,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(174,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(175,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(176,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(177,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(178,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(179,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(180,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(181,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(182,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(183,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(184,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(185,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(186,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(187,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(188,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(189,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(190,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(191,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(192,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(193,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(194,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(195,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(196,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(197,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(198,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(199,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(200,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(201,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(202,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(203,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(204,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(205,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(206,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(207,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(208,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(209,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(210,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(211,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(212,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(213,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(214,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(215,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(216,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(217,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(218,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(219,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(220,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(221,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(222,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(223,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(224,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(225,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(226,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(227,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(228,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(229,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(230,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(231,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(232,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(233,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(234,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(235,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(236,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(237,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(238,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(239,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(240,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(241,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(242,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(243,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(244,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(245,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(246,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(247,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(248,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} diff --git a/_maps/RandomZLevels/moonoutpost19.dmm b/_maps/RandomZLevels/moonoutpost19.dmm new file mode 100644 index 0000000..0edafbf --- /dev/null +++ b/_maps/RandomZLevels/moonoutpost19.dmm @@ -0,0 +1,76433 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/open/space, +/area/space) +"ab" = ( +/turf/closed/indestructible/riveted, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"ac" = ( +/turf/closed/mineral/random/labormineral, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"ad" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/obj/structure/alien/resin/wall, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"ae" = ( +/obj/structure/alien/weeds, +/obj/structure/alien/resin/wall, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"af" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/obj/structure/alien/resin/wall, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"ag" = ( +/obj/structure/alien/weeds, +/obj/structure/alien/weeds{ + desc = "A large mottled egg."; + obj_integrity = 100; + icon_state = "egg_hatched"; + name = "egg" + }, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"ah" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/obj/structure/alien/weeds{ + desc = "A large mottled egg."; + obj_integrity = 100; + icon_state = "egg_hatched"; + name = "egg" + }, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"ai" = ( +/obj/structure/alien/weeds, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"aj" = ( +/obj/structure/alien/weeds, +/obj/structure/bed/nest, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"ak" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/mob/living/simple_animal/hostile/alien, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"al" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/obj/structure/alien/weeds{ + desc = "A large mottled egg."; + obj_integrity = 100; + icon_state = "egg_hatched"; + name = "egg" + }, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"am" = ( +/obj/structure/alien/weeds/node, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"an" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/obj/structure/bed/nest, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"ao" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/obj/structure/bed/nest, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"ap" = ( +/obj/structure/alien/weeds, +/obj/structure/bed/nest, +/obj/effect/decal/cleanable/blood/gibs, +/obj/item/clothing/mask/facehugger{ + icon_state = "facehugger_impregnated"; + item_state = "facehugger_impregnated"; + stat = 2 + }, +/obj/item/weapon/gun/projectile/automatic/pistol, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"aq" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"ar" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"as" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/obj/structure/alien/resin/wall, +/obj/structure/alien/resin/wall, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"at" = ( +/turf/closed/wall/r_wall, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"au" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/mob/living/simple_animal/hostile/alien/sentinel, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"av" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/obj/effect/decal/cleanable/blood/gibs, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"aw" = ( +/obj/structure/alien/weeds/node, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"ax" = ( +/obj/structure/alien/weeds, +/obj/effect/decal/cleanable/blood/gibs, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"ay" = ( +/turf/open/floor/plasteel/darkred/side{ + dir = 9; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"az" = ( +/turf/open/floor/plasteel/darkred/corner{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"aA" = ( +/turf/open/floor/plasteel/black{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"aB" = ( +/turf/open/floor/plasteel/darkred/corner{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"aC" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/darkred/side{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"aD" = ( +/obj/structure/alien/weeds/node, +/obj/structure/alien/resin/wall, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"aE" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/obj/structure/bed/nest, +/obj/effect/decal/cleanable/blood/gibs, +/obj/item/clothing/mask/facehugger{ + icon_state = "facehugger_impregnated"; + item_state = "facehugger_impregnated"; + stat = 2 + }, +/obj/item/clothing/under/rank/security, +/obj/item/clothing/suit/armor/vest, +/obj/item/weapon/melee/baton/loaded, +/obj/item/clothing/head/helmet, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"aF" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/darkred/corner{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"aG" = ( +/obj/machinery/gateway{ + dir = 9 + }, +/turf/open/floor/plasteel/vault{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"aH" = ( +/obj/machinery/gateway{ + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"aI" = ( +/obj/machinery/gateway{ + dir = 5 + }, +/turf/open/floor/plasteel/vault{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"aJ" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/obj/structure/alien/weeds{ + desc = "A large mottled egg."; + obj_integrity = 100; + icon_state = "egg_hatched"; + name = "egg" + }, +/obj/effect/decal/cleanable/blood/gibs, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"aK" = ( +/obj/structure/alien/weeds, +/obj/structure/alien/weeds{ + desc = "A large mottled egg."; + obj_integrity = 100; + icon_state = "egg_hatched"; + name = "egg" + }, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"aL" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/obj/effect/decal/cleanable/blood/gibs, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"aM" = ( +/obj/structure/alien/weeds, +/mob/living/simple_animal/hostile/alien/drone{ + plants_off = 1 + }, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"aN" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/black{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"aO" = ( +/obj/machinery/gateway{ + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"aP" = ( +/obj/machinery/gateway/centeraway{ + calibrated = 0 + }, +/turf/open/floor/plasteel/black{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"aQ" = ( +/obj/machinery/gateway{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"aR" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel/black{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"aS" = ( +/obj/item/weapon/ore/iron{ + pixel_x = 7; + pixel_y = -6 + }, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"aT" = ( +/obj/structure/alien/weeds, +/mob/living/simple_animal/hostile/alien/queen/large{ + desc = "A gigantic alien who is in charge of the hive and all of its loyal servants."; + name = "alien queen"; + pixel_x = -16; + plants_off = 1 + }, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"aU" = ( +/turf/closed/wall, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"aV" = ( +/turf/open/floor/plasteel/darkred/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"aW" = ( +/obj/machinery/gateway{ + dir = 10 + }, +/turf/open/floor/plasteel/vault{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"aX" = ( +/obj/machinery/gateway, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plasteel/vault{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"aY" = ( +/obj/machinery/gateway{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"aZ" = ( +/turf/open/floor/plasteel/darkred/corner{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"ba" = ( +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"bb" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/mob/living/simple_animal/hostile/alien/drone{ + plants_off = 1 + }, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"bc" = ( +/obj/structure/alien/weeds, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"bd" = ( +/obj/machinery/vending/cola, +/turf/open/floor/plasteel/black, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"be" = ( +/obj/machinery/vending/cigarette, +/obj/structure/sign/poster{ + icon_state = "poster7"; + pixel_y = 32; + serial_number = 7 + }, +/turf/open/floor/plasteel/black, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"bf" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/darkred/side{ + dir = 10; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"bg" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/black{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"bh" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/darkred/corner{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"bi" = ( +/turf/open/floor/plasteel/darkred/side{ + dir = 6; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"bj" = ( +/obj/structure/alien/weeds, +/obj/structure/bed/nest, +/obj/effect/decal/cleanable/blood/gibs, +/obj/effect/decal/cleanable/blood, +/obj/item/clothing/mask/facehugger{ + icon_state = "facehugger_impregnated"; + item_state = "facehugger_impregnated"; + stat = 2 + }, +/obj/item/clothing/under/syndicate, +/obj/item/clothing/glasses/night, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"bk" = ( +/obj/structure/alien/weeds, +/mob/living/simple_animal/hostile/alien/sentinel, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"bl" = ( +/turf/closed/mineral/random/high_chance, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"bm" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/sign/poster{ + icon_state = "poster17"; + pixel_x = -32; + pixel_y = 0; + serial_number = 17 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"bn" = ( +/obj/item/weapon/cigbutt, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"bo" = ( +/obj/machinery/airalarm{ + frequency = 1439; + locked = 1; + pixel_y = 23; + req_access = "150" + }, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"bp" = ( +/obj/structure/table, +/obj/machinery/microwave{ + pixel_x = -3; + pixel_y = 6 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"bq" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/table, +/obj/item/device/radio/off{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/device/radio/off{ + pixel_x = 2 + }, +/turf/open/floor/plasteel/warning{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"br" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/table, +/obj/item/weapon/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/weapon/pen, +/obj/item/weapon/paper{ + info = "Log 1:
We got our promised supply drop today. We were only meant to get it, what, a week ago? This bloody gateway keeps desyncing itself, and that means subsisting off recycled water and carb packs. No clue where the damn thing connects to on its off days, and HQ say we are 'not to touch it if it isn't linking to command.' We dumped off the assload of crates Jim filled, got our boxes of oxygen, food and drink, and closed the portal.

Log 2:
Damn thing is acting up again. Three days no contact this time. I thought I heard clanking noises from it yesterday. Jim is going on about the NT base or some shit. We've been over this before - They don't know we're here, that engineer was too drunk to recognise his suit, especially since I had it painted orange. He's starting to get annoying. We're safe.

Log 3:
Gateway synced itself up automatically today. I opened it for an instant to spy through it, got a glimpse of the inside of a transport container. Either HQ's redecorating or something, or there's more than two of these things."; + name = "Personal Log" + }, +/turf/open/floor/plasteel/warning{ + dir = 6; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"bs" = ( +/obj/machinery/door/window{ + dir = 1; + name = "Gateway Access"; + req_access_txt = "150" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"bt" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 10; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"bu" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/table, +/obj/machinery/recharger{ + pixel_y = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"bv" = ( +/obj/structure/sink{ + pixel_y = 28 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"bw" = ( +/obj/machinery/door/airlock{ + name = "Unisex Restrooms"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"bx" = ( +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"by" = ( +/obj/structure/chair/stool, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"bz" = ( +/obj/structure/table, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = 32; + pixel_y = 0 + }, +/obj/item/trash/plate, +/obj/item/weapon/cigbutt, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"bA" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/chair/stool, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"bB" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"bC" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"bD" = ( +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"bE" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 8; + frequency = 1439; + locked = 1; + pixel_x = 23; + pixel_y = 0; + req_access = "150" + }, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"bF" = ( +/obj/structure/toilet{ + dir = 1 + }, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"bG" = ( +/obj/structure/closet/crate/bin, +/obj/item/trash/syndi_cakes, +/obj/item/trash/sosjerky, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"bH" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"bI" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"bJ" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/donkpockets, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"bK" = ( +/turf/open/floor/plasteel/red/side{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"bL" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/red/side{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"bM" = ( +/obj/structure/closet/emcloset, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/red/side{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"bN" = ( +/obj/structure/closet/l3closet, +/turf/open/floor/plasteel/red/side{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"bO" = ( +/obj/machinery/door/airlock/glass{ + name = "Break Room" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"bP" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"bQ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/door/airlock/highsecurity{ + icon_state = "closed"; + locked = 1; + name = "Gateway"; + req_access_txt = "150" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"bR" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/clothing/gloves/color/yellow, +/obj/item/device/multitool, +/turf/open/floor/plating/warnplate{ + dir = 9; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"bS" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/computer/monitor, +/turf/open/floor/plating/warnplate{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"bT" = ( +/obj/machinery/power/smes{ + charge = 0; + input_level = 10000; + inputting = 0; + output_level = 15000; + outputting = 1 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"bU" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/machinery/airalarm{ + frequency = 1439; + locked = 1; + pixel_y = 23; + req_access = "150" + }, +/turf/open/floor/plating/warnplate{ + dir = 9; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"bV" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating/warnplate{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"bW" = ( +/obj/structure/alien/weeds/node, +/mob/living/simple_animal/hostile/alien, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"bX" = ( +/obj/machinery/conveyor{ + dir = 2; + id = "awaysyndie" + }, +/turf/open/floor/plating/warnplate{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 4; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"bY" = ( +/obj/machinery/mineral/unloading_machine{ + dir = 1; + icon_state = "unloader-corner"; + input_dir = 4; + output_dir = 8 + }, +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/turf/open/floor/plating{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"bZ" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/obj/structure/sign/poster{ + icon_state = "poster5"; + pixel_x = 0; + pixel_y = 32; + serial_number = 5 + }, +/turf/open/floor/plasteel/loadingarea{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 8; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"ca" = ( +/turf/open/floor/plasteel/floorgrime{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 8; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"cb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/turf/open/floor/plasteel/red/side{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 4; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"cc" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/red/side{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 8; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"cd" = ( +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23; + req_access = "150" + }, +/turf/open/floor/plasteel{ + burnt = 1; + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 8; + heat_capacity = 1e+006; + icon_state = "floorscorched2"; + temperature = 251 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"ce" = ( +/obj/structure/sign/biohazard{ + pixel_y = 32 + }, +/obj/structure/alien/weeds/node, +/turf/open/floor/plasteel/warning/corner{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 8; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"cf" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 1; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"cg" = ( +/obj/structure/sign/securearea{ + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plasteel/warning/corner{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 4; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"ch" = ( +/obj/machinery/light/small{ + active_power_usage = 0; + dir = 4; + icon_state = "bulb-broken"; + status = 2 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/red/side{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 4; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"ci" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/item/weapon/stock_parts/cell/high, +/obj/item/weapon/paper{ + info = "Alright, listen up. If you're reading this, I'm either taking a shit or I've been recalled back to Command. Either way, you'll need to know how to restore power. We've stolen this stuff from Nanotrasen, so all the equipment is jury-rigged. We have generators that work on both plasma and uranium, about 50 sheets should power the outpost for quite a while. If the generators aren't working, which is very likely, take the power cell on the desk and put it into the APC in the hallway. That should get the place running, at least for a little while."; + name = "Engineering Instructions" + }, +/turf/open/floor/plating/warnplate{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"cj" = ( +/obj/structure/chair/stool, +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg3" + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"ck" = ( +/obj/machinery/power/terminal{ + icon_state = "term"; + dir = 1 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plating/warnplate{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"cl" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/warnplate/corner{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"cm" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/sign/poster{ + icon_state = "poster10"; + pixel_x = 32; + pixel_y = 0; + serial_number = 10 + }, +/turf/open/floor/plating/warnplate{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"cn" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"co" = ( +/turf/open/floor/plasteel/warning{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 8; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"cp" = ( +/turf/open/floor/plasteel{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"cq" = ( +/turf/open/floor/plasteel/red/side{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 4; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"cr" = ( +/obj/machinery/door/airlock/glass{ + density = 0; + emagged = 1; + icon_state = "open"; + locked = 1; + name = "Dormitories" + }, +/obj/item/stack/rods, +/obj/item/weapon/shard{ + icon_state = "small" + }, +/turf/open/floor/plasteel{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"cs" = ( +/turf/open/floor/plasteel/red/side{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 8; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"ct" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"cu" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel/floorgrime{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 8; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"cv" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel/red/side{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 4; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"cw" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/door/airlock/engineering{ + name = "Power Maintenance"; + req_access_txt = "150" + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"cx" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"cy" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"cz" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"cA" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating{ + burnt = 1; + heat_capacity = 1e+006; + icon_state = "panelscorched" + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"cB" = ( +/obj/machinery/space_heater, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/warnplate{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"cC" = ( +/obj/machinery/mineral/processing_unit{ + dir = 1; + output_dir = 2 + }, +/turf/open/floor/plating/warnplate{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 4; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"cD" = ( +/obj/machinery/mineral/processing_unit_console{ + machinedir = 8 + }, +/turf/closed/wall, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"cE" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 8; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"cF" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/red/side{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 4; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"cG" = ( +/obj/structure/grille{ + density = 0; + broken = 1; + icon_state = "brokengrille" + }, +/obj/item/stack/rods, +/obj/item/stack/rods, +/obj/item/weapon/shard, +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/turf/open/floor/plating{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"cH" = ( +/turf/open/floor/plasteel/red/side{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 10; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"cI" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/red/side{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"cJ" = ( +/turf/open/floor/plasteel/red/side{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"cK" = ( +/obj/structure/cable, +/obj/machinery/power/apc{ + cell_type = 15000; + dir = 2; + locked = 1; + name = "Worn-out APC"; + pixel_x = 0; + pixel_y = -25; + req_access = "150"; + start_charge = 0 + }, +/turf/open/floor/plasteel/red/side{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"cL" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/turf/open/floor/plasteel/red/side{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 6; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"cM" = ( +/obj/item/weapon/storage/box/lights/mixed, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/warnplate{ + dir = 10; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"cN" = ( +/obj/structure/cable, +/obj/machinery/power/port_gen/pacman{ + desc = "A portable generator for emergency backup power."; + name = "P.A.C.M.A.N.-type portable generator" + }, +/turf/open/floor/plating/warnplate{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"cO" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/port_gen/pacman/super{ + desc = "A portable generator for emergency backup power."; + name = "S.U.P.E.R.P.A.C.M.A.N.-type portable generator" + }, +/turf/open/floor/plating/warnplate{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"cP" = ( +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plating/warnplate{ + dir = 6; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"cQ" = ( +/obj/machinery/conveyor_switch/oneway{ + id = "awaysyndie"; + layer = 3.1; + name = "mining conveyor" + }, +/turf/open/floor/plasteel/warning{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 8; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"cR" = ( +/turf/open/floor/plasteel{ + broken = 1; + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 8; + heat_capacity = 1e+006; + icon_state = "damaged4"; + temperature = 251 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"cS" = ( +/obj/machinery/airalarm{ + dir = 8; + frequency = 1439; + locked = 1; + pixel_x = 23; + pixel_y = 0; + req_access = "150" + }, +/obj/machinery/light{ + active_power_usage = 0; + dir = 4; + icon_state = "tube-broken"; + status = 2 + }, +/turf/open/floor/plasteel/red/side{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 4; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"cT" = ( +/obj/machinery/door/airlock{ + density = 0; + emagged = 1; + icon_state = "open"; + id_tag = "awaydorm4"; + locked = 1; + name = "Dorm 1"; + opacity = 0 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"cU" = ( +/obj/machinery/door/airlock{ + id_tag = "awaydorm5"; + name = "Dorm 2" + }, +/turf/open/floor/wood{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"cV" = ( +/obj/structure/alien/weeds/node, +/turf/open/floor/plasteel/warning{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 8; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"cW" = ( +/turf/open/floor/plasteel{ + broken = 1; + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 8; + heat_capacity = 1e+006; + icon_state = "damaged2"; + temperature = 251 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"cX" = ( +/turf/open/floor/plasteel{ + broken = 1; + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 8; + heat_capacity = 1e+006; + icon_state = "damaged3"; + temperature = 251 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"cY" = ( +/obj/structure/closet/crate, +/obj/item/stack/sheet/metal{ + amount = 12 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/turf/open/floor/plasteel/bot{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 1; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"cZ" = ( +/obj/machinery/button/door{ + id = "awaydorm4"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 0; + pixel_y = 25; + req_access_txt = "0"; + specialfunctions = 4 + }, +/obj/structure/bed, +/obj/item/weapon/bedsheet/syndie, +/turf/open/floor/wood{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"da" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"db" = ( +/turf/open/floor/wood{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"dc" = ( +/obj/machinery/button/door{ + id = "awaydorm5"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 0; + pixel_y = 25; + req_access_txt = "0"; + specialfunctions = 4 + }, +/obj/structure/dresser, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"dd" = ( +/obj/structure/alien/weeds/node, +/mob/living/simple_animal/hostile/alien/drone{ + plants_off = 1 + }, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"de" = ( +/obj/machinery/mineral/stacking_machine{ + dir = 1; + input_dir = 1; + output_dir = 2 + }, +/turf/open/floor/plating/warnplate{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 4; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"df" = ( +/obj/machinery/mineral/stacking_unit_console{ + machinedir = 8 + }, +/turf/closed/wall, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"dg" = ( +/obj/structure/closet/crate, +/obj/item/stack/sheet/glass{ + amount = 10 + }, +/obj/structure/alien/weeds, +/turf/open/floor/plasteel/bot{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 1; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"dh" = ( +/obj/structure/chair/wood/normal, +/obj/machinery/airalarm{ + dir = 4; + frequency = 1439; + locked = 1; + pixel_x = -23; + pixel_y = 0; + req_access = "150" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"di" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/wood{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"dj" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/wood{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"dk" = ( +/obj/machinery/airalarm{ + dir = 8; + frequency = 1439; + locked = 1; + pixel_x = 23; + pixel_y = 0; + req_access = "150" + }, +/turf/open/floor/wood{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"dl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/turf/open/floor/plasteel/loadingarea{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"dm" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 1; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"dn" = ( +/turf/open/floor/plasteel/warning/corner{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 4; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"do" = ( +/turf/open/floor/plasteel{ + broken = 1; + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 8; + heat_capacity = 1e+006; + icon_state = "damaged1"; + temperature = 251 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"dp" = ( +/obj/structure/closet/crate, +/obj/item/weapon/storage/bag/ore, +/obj/structure/alien/weeds, +/obj/item/device/mining_scanner, +/obj/item/weapon/shovel, +/obj/item/weapon/pickaxe, +/turf/open/floor/plating{ + broken = 1; + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006; + icon_state = "platingdmg3"; + temperature = 251 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"dq" = ( +/obj/structure/table/wood, +/obj/structure/sign/poster{ + icon_state = "poster24"; + pixel_x = 0; + pixel_y = -32; + serial_number = 24 + }, +/obj/item/weapon/pen, +/obj/item/weapon/paper{ + info = "Log 1:
While mining today I noticed the NT station was finished with its renovations. They placed some huge reinforced tumor on the station, looks so ugly. I wouldn't be surprised if those pigs decided to turn that little astronomy outpost into a prison with that thing, it'd be pretty typical of them.

Log 2:
Really dumb of me but I just waved at an engineer in the outpost, and he waved back. I hope to god he was too dumb or drunk to recognize the suit, because if he isn't then we might have to pull out before they come looking for us.

Log 3:
That huge reinforced tumor in their science section has been making a lot of noise lately. I've been hearing some banging and scratching from the other side and I'm kind of glad now that they reinforced this thing so much. I'll be sleeping with my gun under my pillow from now on."; + name = "Personal Log" + }, +/turf/open/floor/wood{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"dr" = ( +/obj/structure/closet/secure_closet{ + desc = "It's a secure locker for personnel. The first card swiped gains control."; + icon_state = "cabinet"; + locked = 1; + name = "personal closet"; + req_access_txt = "150" + }, +/obj/item/ammo_box/magazine/m10mm{ + icon_state = "9x19p-8" + }, +/obj/item/ammo_box/magazine/m10mm{ + icon_state = "9x19p-8" + }, +/obj/item/weapon/suppressor, +/turf/open/floor/wood{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"ds" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/syndie, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"dt" = ( +/obj/structure/closet/secure_closet{ + desc = "It's a secure locker for personnel. The first card swiped gains control."; + icon_state = "cabinet"; + locked = 0; + name = "personal closet"; + req_access_txt = "150" + }, +/obj/item/stack/spacecash/c50, +/turf/open/floor/wood{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"du" = ( +/obj/machinery/door/airlock/external{ + density = 0; + emagged = 1; + icon_state = "open"; + locked = 1; + opacity = 0; + req_access_txt = "150" + }, +/turf/open/floor/plating{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"dv" = ( +/obj/item/weapon/ore/iron, +/obj/item/weapon/ore/iron{ + pixel_x = -7; + pixel_y = -4 + }, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"dw" = ( +/obj/structure/tank_dispenser/oxygen{ + oxygentanks = 9 + }, +/obj/machinery/light/small{ + active_power_usage = 0; + dir = 1; + icon_state = "bulb-broken"; + status = 2 + }, +/turf/open/floor/plating/warnplate{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 9; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"dx" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"dy" = ( +/obj/structure/rack, +/obj/item/clothing/suit/space/syndicate/orange, +/obj/item/clothing/mask/gas, +/obj/item/weapon/pickaxe/drill, +/obj/item/clothing/head/helmet/space/syndicate/orange, +/turf/open/floor/plating/warnplate{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 5; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"dz" = ( +/obj/item/weapon/ore/iron{ + pixel_x = -3; + pixel_y = 9 + }, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"dA" = ( +/turf/closed/mineral, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"dB" = ( +/obj/structure/sign/vacuum{ + desc = "A warning sign which reads 'HOSTILE ATMOSPHERE AHEAD'"; + name = "\improper HOSTILE ATMOSPHERE AHEAD"; + pixel_x = 0; + pixel_y = -32 + }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plating/warnplate{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 10; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"dC" = ( +/turf/open/floor/plating{ + broken = 1; + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006; + icon_state = "platingdmg1"; + temperature = 251 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"dD" = ( +/obj/structure/rack, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/warnplate{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 6; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"dE" = ( +/obj/effect/decal/cleanable/blood/tracks{ + desc = "Your instincts say you shouldn't be following these."; + dir = 8; + icon_state = "ltrails_1" + }, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"dF" = ( +/obj/effect/decal/cleanable/blood/tracks{ + desc = "Your instincts say you shouldn't be following these."; + dir = 8; + icon_state = "ltrails_2" + }, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"dG" = ( +/obj/effect/decal/cleanable/blood/tracks{ + desc = "Your instincts say you shouldn't be following these."; + dir = 8; + icon_state = "ltrails_1" + }, +/obj/item/device/mining_scanner, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"dH" = ( +/obj/item/device/flashlight/lantern{ + icon_state = "lantern-on"; + on = 1 + }, +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"dI" = ( +/obj/machinery/door/airlock/external{ + density = 0; + emagged = 1; + icon_state = "open"; + locked = 1; + opacity = 0; + req_access_txt = "150" + }, +/turf/open/floor/plating{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006; + icon_plating = "asteroidplating"; + icon_state = "asteroidplating"; + temperature = 251 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"dJ" = ( +/obj/item/weapon/storage/bag/ore, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"dK" = ( +/obj/item/weapon/pickaxe/drill, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"dL" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006; + icon_plating = "asteroidplating"; + icon_state = "asteroidplating"; + temperature = 251 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "Syndicate Outpost" + }) +"dM" = ( +/turf/open/floor/plating{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006; + icon_plating = "asteroidplating"; + icon_state = "asteroidplating"; + temperature = 251 + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"dN" = ( +/obj/item/weapon/ore/iron{ + pixel_x = -7; + pixel_y = -4 + }, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"dO" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/obj/structure/bed/nest, +/obj/effect/decal/cleanable/blood/gibs, +/obj/item/weapon/tank/internals/oxygen, +/obj/item/clothing/suit/space/syndicate/orange, +/obj/item/clothing/mask/gas, +/obj/item/clothing/head/helmet/space/syndicate/orange, +/obj/item/clothing/mask/facehugger{ + icon_state = "facehugger_impregnated"; + item_state = "facehugger_impregnated"; + stat = 2 + }, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"dP" = ( +/obj/structure/alien/weeds, +/obj/structure/alien/resin/wall, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"dQ" = ( +/obj/structure/alien/weeds/node, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"dR" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/obj/structure/alien/resin/wall, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"dS" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/obj/effect/decal/cleanable/blood, +/mob/living/simple_animal/hostile/alien/drone{ + plants_off = 1 + }, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"dT" = ( +/obj/structure/alien/weeds, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"dU" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"dV" = ( +/obj/structure/alien/weeds/node, +/obj/structure/alien/resin/wall, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"dW" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/obj/structure/alien/resin/wall, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"dX" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"dY" = ( +/obj/machinery/light/small, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"dZ" = ( +/turf/closed/wall/r_wall/rust, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"ea" = ( +/turf/closed/wall/r_wall, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"eb" = ( +/obj/structure/grille, +/obj/machinery/door/poddoor/preopen{ + desc = "A heavy duty blast door that opens mechanically. This one has been applied with an acid-proof coating."; + id = "Awaybiohazard"; + name = "Acid-Proof biohazard containment door" + }, +/obj/machinery/door/poddoor{ + desc = "A heavy duty blast door that opens mechanically. This one has been applied with an acid-proof coating."; + id = "Awaybiohazard"; + layer = 2.9; + name = "Acid-Proof biohazard containment door" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"ec" = ( +/obj/structure/sign/biohazard, +/turf/closed/wall/r_wall, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"ed" = ( +/obj/machinery/vending/snack, +/turf/open/floor/plasteel/black, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"ee" = ( +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"ef" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"eg" = ( +/obj/machinery/atmospherics/components/unary/portables_connector{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister, +/obj/structure/alien/weeds, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"eh" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"ei" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/turf/open/floor/plasteel/white, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"ej" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/turf/open/floor/plasteel/warning{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"ek" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/shieldwallgen{ + locked = 0; + req_access = null + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"el" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/obj/structure/bed/nest, +/obj/effect/decal/cleanable/blood/gibs, +/turf/open/floor/engine, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"em" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/obj/effect/decal/cleanable/blood/gibs, +/turf/open/floor/engine, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"en" = ( +/obj/structure/alien/weeds, +/turf/open/floor/engine, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"eo" = ( +/obj/machinery/light{ + active_power_usage = 0; + dir = 1; + icon_state = "tube-broken"; + status = 2 + }, +/obj/structure/alien/weeds, +/obj/structure/alien/weeds{ + desc = "A large mottled egg."; + obj_integrity = 100; + icon_state = "egg_hatched"; + name = "egg" + }, +/obj/machinery/camera{ + c_tag = "Xenobiology Containment North"; + network = list("MO19X") + }, +/turf/open/floor/engine, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"ep" = ( +/obj/machinery/sparker{ + desc = "A wall-mounted ignition device. This one has been applied with an acid-proof coating."; + id = "awayxenobio"; + name = "Acid-Proof mounted igniter"; + pixel_x = 0; + pixel_y = 25 + }, +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/obj/structure/alien/resin/wall, +/turf/open/floor/engine, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"eq" = ( +/obj/structure/alien/weeds, +/obj/structure/alien/resin/wall, +/turf/open/floor/engine, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"er" = ( +/obj/structure/alien/weeds, +/obj/structure/bed/nest, +/obj/effect/decal/cleanable/blood/gibs, +/obj/item/clothing/mask/facehugger{ + icon_state = "facehugger_impregnated"; + item_state = "facehugger_impregnated"; + stat = 2 + }, +/turf/open/floor/engine, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"es" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/obj/structure/bed/nest, +/obj/effect/decal/cleanable/blood/gibs, +/turf/open/floor/engine, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"et" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel/black, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"eu" = ( +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"ev" = ( +/obj/machinery/light/small{ + active_power_usage = 0; + dir = 4; + icon_state = "bulb-broken"; + status = 2 + }, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"ew" = ( +/obj/machinery/atmospherics/components/unary/portables_connector{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister, +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"ex" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/manifold{ + dir = 4; + icon_state = "manifold"; + level = 2 + }, +/turf/open/floor/plasteel/white, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"ey" = ( +/obj/structure/table/reinforced, +/obj/structure/alien/weeds, +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the contents of the xenobiology containment pen."; + dir = 8; + name = "xenobiology monitor"; + network = list("MO19X") + }, +/turf/open/floor/plasteel/warning{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"ez" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/door/poddoor/preopen{ + desc = "A heavy duty blast door that opens mechanically. This one has been applied with an acid-proof coating."; + id = "Awaylab"; + name = "Acid-Proof containment chamber blast door" + }, +/obj/structure/cable, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"eA" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE" + }, +/turf/closed/wall/r_wall, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"eB" = ( +/obj/structure/alien/weeds/node, +/turf/open/floor/engine, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"eC" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/turf/open/floor/engine, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"eD" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/obj/structure/alien/resin/wall, +/turf/open/floor/engine, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"eE" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/obj/structure/alien/resin/wall, +/turf/open/floor/engine, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"eF" = ( +/obj/structure/alien/weeds, +/obj/structure/bed/nest, +/turf/open/floor/engine, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"eG" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/obj/effect/decal/cleanable/blood/gibs, +/turf/open/floor/engine, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"eH" = ( +/obj/structure/alien/weeds, +/obj/structure/alien/weeds{ + desc = "A large mottled egg."; + obj_integrity = 100; + icon_state = "egg_hatched"; + name = "egg" + }, +/turf/open/floor/engine, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"eI" = ( +/turf/closed/wall, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"eJ" = ( +/turf/closed/wall/rust, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"eK" = ( +/turf/open/floor/plasteel/white/side{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"eL" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/turf/open/floor/plasteel/white/side{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"eM" = ( +/obj/machinery/light/small{ + active_power_usage = 0; + dir = 8; + icon_state = "bulb-broken"; + status = 2 + }, +/obj/machinery/camera{ + c_tag = "Xenobiology"; + dir = 4; + network = list("MO19","MO19R") + }, +/turf/open/floor/plasteel/white/side{ + dir = 6; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"eN" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/structure/chair/office/light{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"eO" = ( +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "Awaylab"; + name = "Containment Chamber Blast Doors"; + pixel_x = 4; + pixel_y = -2; + req_access_txt = "201" + }, +/obj/machinery/button/ignition{ + id = "awayxenobio"; + pixel_x = 4; + pixel_y = 8 + }, +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/turf/open/floor/plasteel/warning{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"eP" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/obj/structure/alien/weeds{ + desc = "A large mottled egg."; + obj_integrity = 100; + icon_state = "egg_hatched"; + name = "egg" + }, +/turf/open/floor/engine, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"eQ" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/engine, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"eR" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/turf/open/floor/engine, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"eS" = ( +/obj/machinery/power/port_gen/pacman{ + desc = "A portable generator for emergency backup power."; + name = "P.A.C.M.A.N.-type portable generator" + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"eT" = ( +/obj/machinery/power/port_gen/pacman/super{ + desc = "A portable generator for emergency backup power."; + name = "S.U.P.E.R.P.A.C.M.A.N.-type portable generator" + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg2" + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"eU" = ( +/obj/machinery/space_heater, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/sign/poster{ + icon_state = "poster5_legit"; + pixel_x = 0; + pixel_y = 32; + serial_number = 21 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"eV" = ( +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23; + req_access = null + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"eW" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/power/smes{ + charge = 1.5e+006; + input_level = 10000; + inputting = 0; + output_level = 15000; + outputting = 1 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"eX" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"eY" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/item/weapon/newspaper, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"eZ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg1" + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"fa" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/effect/decal/cleanable/blood/tracks{ + desc = "Your instincts say you shouldn't be following these."; + dir = 8; + icon_state = "ltrails_1" + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"fb" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"fc" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "201"; + req_one_access_txt = "0" + }, +/obj/effect/decal/cleanable/blood/tracks{ + desc = "Your instincts say you shouldn't be following these."; + dir = 8; + icon_state = "ltrails_1" + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"fd" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/effect/decal/cleanable/blood/tracks{ + desc = "Your instincts say you shouldn't be following these."; + dir = 5; + icon_state = "ltrails_1" + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"fe" = ( +/obj/structure/sign/securearea{ + pixel_x = 32 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"ff" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder, +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"fg" = ( +/obj/structure/table, +/obj/item/stack/sheet/mineral/plasma{ + layer = 2.9 + }, +/obj/machinery/light/small{ + active_power_usage = 0; + dir = 1; + icon_state = "bulb-broken"; + status = 2 + }, +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23; + req_access = null + }, +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"fh" = ( +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/obj/structure/table, +/obj/item/weapon/storage/box/beakers{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/weapon/storage/box/syringes, +/obj/structure/alien/weeds, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"fi" = ( +/obj/structure/closet/crate/freezer, +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/obj/item/clothing/mask/facehugger{ + icon_state = "facehugger_impregnated"; + item_state = "facehugger_impregnated"; + stat = 2 + }, +/obj/item/xenos_claw, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"fj" = ( +/obj/machinery/door/firedoor, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"fk" = ( +/turf/open/floor/plasteel/white, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"fl" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/open/floor/plasteel/white, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"fm" = ( +/obj/structure/closet/l3closet/scientist, +/obj/structure/window/reinforced, +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/turf/open/floor/plasteel/warning{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"fn" = ( +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/door/poddoor/preopen{ + desc = "A heavy duty blast door that opens mechanically. This one has been applied with an acid-proof coating."; + id = "Awaylab"; + name = "Acid-Proof containment chamber blast door" + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"fo" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/obj/structure/alien/weeds{ + desc = "A large mottled egg."; + obj_integrity = 100; + icon_state = "egg_hatched"; + name = "egg" + }, +/turf/open/floor/engine, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"fp" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/obj/structure/bed/nest, +/obj/item/clothing/mask/facehugger{ + icon_state = "facehugger_impregnated"; + item_state = "facehugger_impregnated"; + stat = 2 + }, +/turf/open/floor/engine, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"fq" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"fr" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/generic, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"fs" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"ft" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg1" + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"fu" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"fv" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/effect/decal/cleanable/blood/tracks{ + desc = "Your instincts say you shouldn't be following these."; + icon_state = "ltrails_2" + }, +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"fw" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/alien/weeds, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"fx" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research{ + density = 0; + emagged = 1; + icon_state = "open"; + locked = 1; + name = "Xenobiology Lab"; + opacity = 0; + req_access_txt = "201" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"fy" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"fz" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"fA" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warning{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"fB" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/alien/weeds/node, +/turf/open/floor/plasteel/white, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"fC" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"fD" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + desc = "A one meter section of pipe. This one has been applied with an acid-proof coating."; + dir = 4; + name = "Acid-Proof Pipe" + }, +/obj/item/stack/rods, +/obj/item/stack/cable_coil{ + amount = 5 + }, +/obj/item/weapon/shard{ + icon_state = "small" + }, +/turf/open/floor/plasteel/warning{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"fE" = ( +/obj/machinery/door/poddoor/preopen{ + desc = "A heavy duty blast door that opens mechanically. This one has been applied with an acid-proof coating."; + id = "Awaylab"; + name = "Acid-Proof containment chamber blast door" + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + desc = "A one meter section of pipe. This one has been applied with an acid-proof coating."; + dir = 4; + name = "Acid-Proof Pipe" + }, +/obj/item/stack/rods, +/obj/item/stack/cable_coil{ + amount = 5 + }, +/obj/item/weapon/shard{ + icon_state = "medium" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/engine, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"fF" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + desc = "A one meter section of pipe. This one has been applied with an acid-proof coating."; + dir = 4; + name = "Acid-Proof Pipe" + }, +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/turf/open/floor/engine, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"fG" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + desc = "A one meter section of pipe. This one has been applied with an acid-proof coating."; + dir = 4; + name = "Acid-Proof Pipe" + }, +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/engine, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"fH" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + desc = "A one meter section of pipe. This one has been applied with an acid-proof coating."; + dir = 4; + name = "Acid-Proof Pipe" + }, +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/obj/structure/alien/resin/wall, +/turf/open/floor/engine, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"fI" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + desc = "A one meter section of pipe. This one has been applied with an acid-proof coating."; + dir = 4; + name = "Acid-Proof Pipe" + }, +/obj/structure/alien/weeds, +/obj/structure/alien/resin/wall, +/turf/open/floor/engine, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"fJ" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector{ + desc = "Has a valve and pump attached to it. This one has been applied with an acid-proof coating."; + dir = 8; + icon_state = "on"; + name = "Acid-Proof Air Injector"; + on = 1 + }, +/obj/structure/alien/weeds, +/turf/open/floor/engine, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"fK" = ( +/obj/machinery/light{ + active_power_usage = 0; + dir = 4; + icon_state = "tube-broken"; + status = 2 + }, +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/obj/machinery/camera{ + c_tag = "Xenobiology Containment East"; + dir = 8; + network = list("MO19X") + }, +/turf/open/floor/engine, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"fL" = ( +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"fM" = ( +/obj/item/weapon/cigbutt, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"fN" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"fO" = ( +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"fP" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"fQ" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "0"; + req_one_access_txt = "0" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"fR" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"fS" = ( +/obj/structure/filingcabinet, +/obj/item/weapon/paper{ + info = "Entry One - 27/05/2554:
I just arrived, and already I hate my job. I'm stuck on this shithole of an outpost, trying to avoid these damn eggheads running all over the place preparing for god knows what. There's no crimes to stop, no syndies to kill, and I'm not even allowed to beat the fuckin' assistant senseless! They said I was transferred from Space Station 13 for 'good behavior', but this feels more like a punishment than a reward. All I know is that if I don't get some action soon, I'm going to go insane.

Entry Two - 03/06/2554:
Okay, so get this: we got a fuckin' deathsquad coming in today! I thought the day I saw one of them would be the day my employment was 'terminated', if you get my drift. They're escorting some sort of weird alien creature for the eggheads to study. I heard one of the docs telling the chef that this thing killed a whole security force before it was captured. I sure as hell hope that I don't have to fight it.

Entry Three - 08/06/2554:
My first real bit of 'action' today, if you could call it that. Crazy Ivan got in a fight with Kuester today about his Booze-O-Mat. Apparently one of the crewmembers had stolen a couple bottles of booze from the machine after Ivan disabled the ID lock. Tell you the truth, I don't blame the thief. Everyone is going a little stir-crazy in here, and the bartender is being damn stingy with the alcohol. Either way, once they started to pick a fight, I had to take them down. It's a damn shame that we don't have a brig, though. I had to lock Ivan in a fuckin' freezer, for god's sake. Let's hope that we can keep our sanity together, at least for a while.

Entry Four - 10/06/2554:
Jesus fucking Christ riding on a motorbike. These things the scientists are studying are terrifying! Fucking great huge purple bug things as tall as the ceiling, with blades for arms and drooling at the mouth. I don't think my taser will do jack shit against these damn things, but the eggheads say that they're safely contained. If they do, I have a feeling that it's only a matter of time before we're all screwed. These bastards look like walking death.

Entry Five - 18/06/2554:
Finally caught who stole the booze from Kuester. It was that fuckin' loser assistant Steve! He was in the dorms, chugging his worries away. I took one of the bottles back to the barkeep, but no one has to know about this second one. I think I'm gonna enjoy this while watching tomorrow's Thunderdome match.

Entry Six - 19/06/2554:
Oh, great. The chef is still sleeping, so we get Ivan's gruel for breakfast today. I overheard Sano and Douglas saying something about the aliens being restless, so we might get some action today. As long as it happens after the big game, I'm fine with it. I still got one beer to drink before I'm ready to die."; + name = "Personal Log - Kenneth Cunningham" + }, +/turf/open/floor/plasteel/red/side{ + dir = 9; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"fT" = ( +/obj/structure/closet/secure_closet{ + icon_state = "sec"; + locked = 1; + name = "security officer's locker"; + req_access_txt = "201" + }, +/obj/item/clothing/suit/armor/vest, +/obj/item/weapon/reagent_containers/spray/pepper, +/obj/item/weapon/grenade/flashbang, +/obj/item/weapon/storage/belt/security, +/obj/item/weapon/reagent_containers/food/drinks/beer{ + pixel_x = -3; + pixel_y = -2 + }, +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23; + req_access = null + }, +/turf/open/floor/plasteel/red/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"fU" = ( +/obj/structure/sign/poster{ + icon_state = "poster21_legit"; + pixel_y = 32; + serial_number = 21 + }, +/obj/item/device/radio/off, +/obj/item/weapon/screwdriver{ + pixel_y = 10 + }, +/turf/open/floor/plasteel/red/side{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"fV" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"fW" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"fX" = ( +/obj/structure/sign/biohazard{ + pixel_x = 32 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"fY" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"fZ" = ( +/obj/machinery/door/firedoor, +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = -29 + }, +/turf/open/floor/plasteel/warning{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"ga" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/closet/l3closet/scientist, +/obj/structure/alien/weeds, +/turf/open/floor/plasteel/warning{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"gb" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/grille, +/obj/machinery/door/poddoor/preopen{ + desc = "A heavy duty blast door that opens mechanically. This one has been applied with an acid-proof coating."; + id = "Awaylab"; + name = "Acid-Proof containment chamber blast door" + }, +/obj/item/stack/cable_coil/cut{ + amount = 1; + icon_state = "coil_red1"; + item_state = "coil_red1" + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"gc" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/obj/effect/decal/cleanable/blood, +/obj/item/stack/rods, +/obj/item/weapon/shard{ + icon_state = "small" + }, +/turf/open/floor/engine, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"gd" = ( +/obj/structure/alien/weeds, +/obj/structure/bed/nest, +/obj/effect/decal/cleanable/blood/gibs, +/turf/open/floor/engine, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"ge" = ( +/obj/structure/alien/weeds, +/obj/structure/bed/nest, +/obj/item/clothing/mask/facehugger{ + icon_state = "facehugger_impregnated"; + item_state = "facehugger_impregnated"; + stat = 2 + }, +/turf/open/floor/engine, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"gf" = ( +/obj/structure/chair/stool, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"gg" = ( +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg3" + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"gh" = ( +/obj/effect/decal/cleanable/oil, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"gi" = ( +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = -30; + pixel_y = 0 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"gj" = ( +/turf/open/floor/plasteel/red/side{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"gk" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Security Post"; + req_access_txt = "201" + }, +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"gl" = ( +/obj/effect/decal/cleanable/blood/tracks{ + desc = "Your instincts say you shouldn't be following these."; + icon_state = "ltrails_1" + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"gm" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 28 + }, +/obj/structure/alien/weeds, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"gn" = ( +/obj/structure/table, +/obj/item/weapon/scalpel{ + pixel_y = 12 + }, +/obj/item/weapon/circular_saw, +/obj/item/weapon/razor{ + pixel_y = 5 + }, +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"go" = ( +/obj/structure/alien/weeds/node, +/turf/open/floor/plasteel/warnwhite{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"gp" = ( +/turf/open/floor/plasteel/warnwhite{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"gq" = ( +/obj/structure/table, +/obj/item/device/mmi, +/obj/item/device/mmi, +/obj/item/device/mmi, +/obj/structure/alien/weeds, +/turf/open/floor/plasteel/warnwhite{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"gr" = ( +/obj/structure/sink{ + dir = 8; + icon_state = "sink"; + pixel_x = -12; + pixel_y = 2 + }, +/turf/open/floor/plasteel/white, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"gs" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + desc = "An underfloor disposal pipe. This one has been applied with an acid-proof coating."; + dir = 4; + name = "Acid-Proof disposal pipe" + }, +/obj/structure/alien/weeds, +/turf/open/floor/plasteel/warning{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"gt" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/disposalpipe/segment{ + desc = "An underfloor disposal pipe. This one has been applied with an acid-proof coating."; + dir = 4; + name = "Acid-Proof disposal pipe" + }, +/obj/machinery/door/poddoor/preopen{ + desc = "A heavy duty blast door that opens mechanically. This one has been applied with an acid-proof coating."; + id = "Awaylab"; + name = "Acid-Proof containment chamber blast door" + }, +/obj/structure/cable, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"gu" = ( +/obj/structure/disposalpipe/segment{ + desc = "An underfloor disposal pipe. This one has been applied with an acid-proof coating."; + dir = 4; + name = "Acid-Proof disposal pipe" + }, +/obj/structure/alien/weeds, +/obj/structure/alien/resin/wall, +/turf/open/floor/engine, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"gv" = ( +/obj/structure/disposalpipe/segment{ + desc = "An underfloor disposal pipe. This one has been applied with an acid-proof coating."; + dir = 2; + icon_state = "pipe-c"; + name = "Acid-Proof disposal pipe" + }, +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/turf/open/floor/engine, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"gw" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/cell_charger, +/obj/item/weapon/stock_parts/cell/high, +/obj/item/device/radio/off, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"gx" = ( +/obj/structure/table, +/obj/item/weapon/paper{ + info = "Ivan Volodin Stories:

Entry Won - 28/05/2554:
Hello. I am Crazy Ivan. Boss say I must write. I do good job fixing outpost. Is very good job. Much better than mines. Many nice people. I cause no trouble.

Entry Too - 05/06/2554:
I am finding problem with Booze-O-Mat. Is not problem. I solve very easy. Use yellow tool to make purple light go off. I am good engineer! Bartender will be very happy.

Entry Tree - 08/06/2554:
Bartender is not happy. Security man is not happy. Cannot feel legs, is very cold in freezer. Is not good. Table is jammed into door, have no tools. Is very not good. But, on bright side, found meat! Shall chew to keep spirits up.

Entry Fore - 12/06/2554:
Big nasty purple bug looked at me today. Make nervous. Blue wall wire can be broken, then bad thing happens. Very very bad thing. Man in orange spacesuit wave at me today too. He seem nice. Wonder who was?

Entry Fiv - 15/06/2554:
I eat cornflakes today. Is good day. Sun shine for a while. Was nice. I also take ride on disposals chute. Was fun, but tiny. Get clog out of pipes, was vodka bottle. Is empty. This make many sads.

Entry Sex: 19/06/2554:
Purple bugs jumpy today. When waved, get hiss. Maybe very bad. Maybe just ill. Do not know. Is science problem, is not engineer problem. I eat sandwich. Is glorious job. Wish to never end."; + name = "Personal Log - Ivan Volodin" + }, +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg3" + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"gy" = ( +/obj/machinery/light/small, +/obj/structure/closet/toolcloset, +/obj/item/clothing/gloves/color/yellow, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"gz" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"gA" = ( +/obj/machinery/computer/monitor, +/obj/structure/cable, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"gB" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/newscaster/security_unit{ + pixel_x = -30; + pixel_y = 0 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"gC" = ( +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"gD" = ( +/obj/item/stack/rods, +/obj/item/weapon/shard{ + icon_state = "small" + }, +/obj/effect/decal/cleanable/blood/tracks{ + desc = "Your instincts say you shouldn't be following these."; + dir = 8; + icon_state = "ltrails_1" + }, +/turf/open/floor/plasteel/red/side{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"gE" = ( +/obj/structure/grille{ + density = 0; + broken = 1; + icon_state = "brokengrille" + }, +/obj/item/stack/rods, +/obj/item/stack/rods, +/obj/item/weapon/shard, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"gF" = ( +/obj/effect/decal/cleanable/blood/tracks{ + desc = "Your instincts say you shouldn't be following these."; + dir = 6; + icon_state = "ltrails_1" + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"gG" = ( +/obj/structure/cable, +/obj/machinery/power/apc{ + cell_type = 15000; + dir = 4; + locked = 0; + name = "Worn-out APC"; + pixel_x = 25; + req_access = null; + start_charge = 100 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"gH" = ( +/obj/structure/table, +/obj/item/weapon/retractor, +/obj/item/weapon/hemostat, +/obj/structure/alien/weeds, +/turf/open/floor/plasteel/white, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"gI" = ( +/obj/structure/table, +/obj/item/weapon/surgical_drapes, +/obj/machinery/light/small{ + active_power_usage = 0; + dir = 4; + icon_state = "bulb-broken"; + status = 2 + }, +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/turf/open/floor/plasteel/white, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"gJ" = ( +/obj/structure/filingcabinet/filingcabinet, +/obj/machinery/light/small{ + active_power_usage = 0; + dir = 8; + icon_state = "bulb-broken"; + status = 2 + }, +/obj/item/weapon/paper{ + info = "Researcher: Dr. Sakuma Sano
Date: 04/06/2554

Report:
As expected, all that is left of the monkeys we sent in earlier is a group of xenomorph larvae. It is quite clear that the facehuggers are not selective in their hosts, and so far the gestation process has been shown to have a 100% success rate.

The larvae themselves have been behaving very differently from the lone larva we first observed, and despite shying away from humans they are clearly comfortable with others of their kind. Our previous suspicions on larvae have been confirmed with their demonstration of playfulness: they are not nearly as aggressive or violent when young, before molting to adulthood.

The majority of the play we observed involved a sort of hide-and-seek, and occasionally wrestling by tangling themselves and struggling out of it. While normally we would write these off as instinctual play for honing their skills when they molt, their growth period is so incredibly fast and they are still such adept killers that it would serve no practical purpose. The only explanation for this is perhaps to create bonds and friendships with each other, if that is even possible for such an incredibly hostile race. It may be that they are much more reasonable with each other than other life forms.

It had become clear that now was the best time to extract a xenomorph for dissecting, as these were all still larvae and the queen was still attached to its ovipositor and would be immobile. With the approval of the research director, we sent in our medical robot that had been dubbed 'Head Surgeon' into the containment pen, dropping the shields for only a fraction of a second to allow it entry. The larvae were cautious, but the curiosity of one had him within grabbing range of our robot. It was brought out and quickly euthanized through lethal injection, courtesy of our mechanical doctor."; + name = "Larva Xenomorph Social Interactions & Capturing Procedure" + }, +/obj/item/weapon/paper{ + info = "Researcher: Dr. Sakuma Sano
Date: 04/06/2554

Report:
I have studied many interesting and diverse life-forms as a xenobiologist ranging from creatures as large as cows, to specimens too small see with the naked eye. This is by far the largest alien I have ever seen. The alien we were previously studying has molted and has become an absolutely enormous creature. Standing at over 15 feet tall and weighing in at likely two tons or more, the xenomorph queen is an absolutely breathtakingly large and cruel monster. Its behavior has changed drastically from when it was a drone, having become far more comfortable with sitting and staring at us, rather than smashing at the windows.

The queen, physiologically speaking, is fairly similar to the other xenomorphs, with a few key differences. Its enormous size demands large legs, while the back seems to be always hunched forward. The dorsal tubes on the back have changed to several large spikes, and we observed the alien now sports a second pair of smaller arms on its chest. The purpose of these secondary arms is still unknown. Finally, the queen's crown has become incredibly large, with what seems to be a retractable slot to hide its head in. The dome appears to be extremely thick near the front, and will likely be able to resist a lot of trauma. Despite the enormous size it has grown to, it is not that much slower than it used to be.

After two hours of doing relatively nothing but staring, the queen began to produce an unusually large amount of resin and weeds, quickly shaping up a large nest that it then hid behind. It then proceeded to smash out all the lights, leaving us with very little to see with our cameras. When we looked through the back cameras, we had discovered that it had grown a large ovipositor, and was releasing large eggs onto the ground. This had us all in agreement that this stage of the life cycle was the queen.

Over the next few hours, the eggs grew to their full sizes, and we provided the subject with new monkey hosts. When they approached the eggs, they opened to release more facehuggers. It seems that we have observed the full cycle of reproduction for this species. We can expect more larvae in the next few hours."; + name = "Queen Xenomorph Physiology & Behavior Observation" + }, +/obj/item/weapon/paper{ + info = "Researcher: Dr. Sakuma Sano
Date: 03/06/2554

Report:
The other scientists and I can hardly believe our eyes. The snake-like larva has molted into a 7 foot tall insectoid nightmare in just a few hours. It's obvious now as to why such heavy duty containment was needed. It immediately tried to escape however by flinging itself at the window in a flurry of swipes and stabs. It seems its behavior has returned to a state that is very similar to the facehugger, though I doubt with the same intent! Thankfully, our glass and shields have shown to be more than sturdy enough for such a violent creature, and so far, any attempts at the creature escaping have been in vain.

As for its physiology, the creature has an elongated head with what appears to be have an exoskeleton resembling an external rib-cage on the torso. The alien is also fairly skinny with a lean body. The little amount of meat on the alien appears to be entirely muscle. We assume this makes it deceptively strong, while remaining agile at the same time. One of the most interesting things we have seen is its pharyngeal jaw. It has some what of an inner mouth capable of being fired externally at extremely high speeds. It has already caused many dents in the walls and a few small cracks in the window with it. The alien also has a couple of dorsal tubes on its back, their purpose unknown. Finally, this monster sports a long ridged tail, complete with a large and extremely sharp blade at the tip.

Normally I would be absolutely terrified of something like this, but I'm putting my trust in Nanotrasen with the containment. After all, they wouldn't build a cell that could fail to contain its subject, would they?"; + name = "Adult Xenomorph Physiology & Behavior Observation" + }, +/obj/item/weapon/paper{ + info = "Researcher: Dr. Sakuma Sano
Date: 03/06/2554

Report:
When the larva first emerged from the chest of the monkey, it seemed very curious. It would wander around aimlessly for awhile and then sit still. We are unable to determine the gender of the larva, or even determine if it has a gender. After some time had passed, it seemed to lose interest in its surroundings and sat mostly still while occasionally wagging its tail. We decided to throw in a live mouse to see if it would consume it. The larva quickly attacked and ate the mouse and seemed to get larger very suddenly, this suggests that the larvae are capable of metabolizing and directing all the energy towards growth at previously thought impossible speeds. It is a shame that we cannot observe the process more closely, as we do not currently know how dangerous or violent this creature is or will become as it matures fully.

It is tempting to imagine the possibilities of utilizing such a mechanism. The capability of skipping years of growth time for children, repairing bodily damage in a matter of moments, even its usage in existing cloning technology."; + name = "Larva Xenomorph Physiology & Behavior Observation" + }, +/obj/item/weapon/paper{ + info = "Researcher: Dr. Sakuma Sano
Date: 03/06/2554

Report:
The test subject we were provided with truly is alien. It is a small spider-like creature with bony legs leading to a smooth body. It has a long tail connected to it, and it has shown extremely aggressive behavior by flinging its entire body at the glass and shields to no avail. While doing so, we noticed there was a small pink hole in the middle of the body.

When we sent in a monkey through the crude but effective disposal tube, the alien immediately jumped at its face and latched on. The monkey was quickly suffocated by its constricting tail, unable to pry off the fingers. The monkey at first seemed to be dead, but was observed to be breathing. The recently named alien 'facehugger' fell off dead and curled its legs up like a spider moments after it had finished with the monkey's body.

While the monkey appeared to be unharmed, we kept it in the cell for a couple more hours until we were horrified to discover it screaming out in pain as a snake-like creature erupted from the monkey's chest! It appears that the 'facehugger' is only the start of this life cycle. The impregnation cycle involving the creatures growing inside the chests of their hosts seems to only be the beginning."; + name = "'Facehugger' Xenomorph Physiology & Behavior Observation" + }, +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/turf/open/floor/plasteel/white, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"gK" = ( +/obj/structure/table/reinforced, +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/obj/item/weapon/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/weapon/pen, +/obj/item/device/radio/off, +/turf/open/floor/plasteel/warning{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"gL" = ( +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + desc = "A heavy duty blast door that opens mechanically. This one has been applied with an acid-proof coating."; + id = "Awaylab"; + name = "Acid-Proof containment chamber blast door" + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"gM" = ( +/obj/structure/disposalpipe/segment{ + desc = "An underfloor disposal pipe. This one has been applied with an acid-proof coating."; + name = "Acid-Proof disposal pipe" + }, +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/turf/open/floor/engine, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"gN" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/item/stack/rods, +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg3" + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"gO" = ( +/obj/machinery/button/door{ + id = "Awaybiohazard"; + name = "Biohazard Shutter Control"; + pixel_x = -25; + pixel_y = 0; + req_access_txt = "201" + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/computer/security{ + desc = "Used to access the various cameras on the outpost."; + network = list("MO19R","MO19") + }, +/turf/open/floor/plasteel/red/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"gP" = ( +/obj/structure/chair/office/dark, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"gQ" = ( +/obj/structure/table, +/obj/machinery/recharger{ + pixel_y = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"gR" = ( +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"gS" = ( +/obj/machinery/light{ + active_power_usage = 0; + dir = 4; + icon_state = "tube-broken"; + status = 2 + }, +/obj/machinery/airalarm{ + dir = 8; + frequency = 1439; + locked = 0; + pixel_x = 23; + pixel_y = 0; + req_access = null + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"gT" = ( +/obj/structure/table/optable, +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/turf/open/floor/plasteel/white/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"gU" = ( +/obj/machinery/computer/operating, +/obj/structure/alien/weeds, +/turf/open/floor/plasteel/white/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"gV" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/latex, +/obj/item/clothing/mask/surgical, +/obj/item/clothing/suit/apron/surgical, +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/turf/open/floor/plasteel/white/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"gW" = ( +/obj/structure/filingcabinet/filingcabinet, +/obj/item/weapon/paper{ + info = "Researcher: Dr. Mark Douglas
Date: 17/06/2554

Report:
Earlier today we have observed a new phenomenon with our subjects. While feeding them our last monkey subject and throwing out the box, the aliens merely looked at us instead of infecting the monkey right away. They looked to be collectively distressed as they would no longer be given hosts, where instead we would move to the next phase of the experiment. When I glanced at the gas tanks and piping leading to their cell, I looked back to see all of them were up against the glass, even the queen! It was as if they all understood what was going to happen, even though we knew only the queen had the cognitive capability to do so.

The only explanation for this is a form of communication between the aliens, but we have seen no such action take place anywhere in the cell until now. We also know that regular drone and hunter xenomorphs have no personality or instinct to survive by themselves. Perhaps the queen has a direct link to them? A form of a commander or overseer that controls their every move? A hivemind?"; + name = "The Hivemind Hypothesis" + }, +/obj/item/weapon/paper{ + info = "Researcher: Dr. Sakuma Sano
Date: 08/06/2554

Report:
The xenomorphs we have come to study here are a remarkable species. They are almost universally aggressive across all castes, showing no remorse or guilt or pause before or after acts of violence. They appear to be a species entirely designed to kill. Oddly enough, even their method of reproduction is a brutal two-for-one method of birthing a new xenomorph and killing its host.

The lone xenomorph we studied only five days ago showed little sign of intelligence. Only a simple drone that flung itself at the safety glass and shields repeatedly and thankfully without success. Once the drone molted into a queen, it became much more calm and calculating, merely looking at us and waiting while building its nest. As the hive grew in size and in numbers, so too did the intelligence of the common hunter and drone. We are still researching how they can communicate with one another and the relationship between the different castes and the queen. We will continue to update our research as we learn more about the species."; + name = "A Preliminary Study of Alien Behavior" + }, +/obj/item/weapon/paper{ + info = "Researcher: Dr. Mark Douglas
Date: 06/06/2554

Report:
While observing the growing number of aliens in the containment cell, we began to notice subtle differences that were consistently repeating. Like ants, these creatures clearly have different specialized variations that determine their roles in the hive. We have dubbed the three currently observed castes as Hunters, Drones, and Sentinels.

Hunters have been observed to be by far the most aggressive and agile of the three, constantly running on every surface and frequently swiping at the windows. They are also remarkably good at camouflaging themselves in darkness and on their resin structures, appearing almost invisible to the unwary observer. They are always the first to reach the monkeys we send in leading us to believe that this caste is primarily used for finding and retrieving hosts.

Drones on the other hand are much more docile and seem more shy by comparison, though not any less aggressive than the other castes. They have been observed to have a much wider head and lack dorsal tubes. They have shown to be less agile and visibly more fragile than any other caste. The drone however has never been observed to interact with the monkeys directly and instead preferring maintenance of the hive by building walls of resin and moving eggs around the nest. As far as we know, we have only ever observed a drone become a queen, and we have no way of knowing if the other castes have that capability.

Lastly, we have the Sentinels, which appear at first glance to be the guards of the hive. They have so far been only observed to remain near the queen and the eggs, frequently curled up against the walls. We have only observed one instance where they have interacted with a monkey who strayed too closely to the queen, and was pounced and held down immediately until it was applied with a facehugger. Their lack of movement makes it difficult to determine their exact purpose as guards, sentries, or other role."; + name = "The Xenomorph 'Castes'" + }, +/obj/item/weapon/paper{ + info = "Researcher: Dr. Mark Douglas
Date: 04/06/2554

Report:
After an extremely dangerous, time consuming and costly dissection, we have managed to record and identify several of the organs inside of the first stage of the xenomorph cycle: the larva. This procedure took an extensive amount of time because these creatures have incredibly, almost-comically acidic blood that can melt through almost anything in a few moments. We had to use over a dozen scalpels and retractors to complete the autopsy.

The larva seems to possess far fewer and quite different organs than that of a human. There is a stomach, with no digestive tract, a heart, which seems to lack any blood-oxygen circulation purpose, and an elongated brain, even though its as dumb as any large cat. It also lacks any liver, kidneys, or other basic organs.

We can't determine the exact nature of how these creatures grow, nor if they gain organs as they become adults. The larger breeds of xenomorph are too dangerous to kill and capture to give us an accurate answer to these questions. All that we can conclude is that being able to function with so little and yet be so deadly means that these creatures are highly evolved and likely to be extremely durable to various hazards that would otherwise be lethal to humans."; + name = "Larva Xenomorph Autopsy Report" + }, +/obj/structure/alien/weeds, +/turf/open/floor/plasteel/white, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"gX" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/turf/open/floor/plasteel/white, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"gY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/turf/open/floor/plasteel/warning{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"gZ" = ( +/obj/machinery/shieldwallgen{ + locked = 0; + req_access = null + }, +/obj/structure/cable, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"ha" = ( +/obj/structure/disposaloutlet{ + desc = "An outlet for the pneumatic disposal system. This one has been applied with an acid-proof coating."; + dir = 1; + name = "Acid-Proof disposal outlet" + }, +/obj/structure/disposalpipe/trunk{ + desc = "An underfloor disposal pipe. This one has been applied with an acid-proof coating."; + dir = 1; + name = "Acid-Proof disposal pipe" + }, +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/turf/open/floor/engine, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"hb" = ( +/obj/machinery/light{ + active_power_usage = 0; + dir = 2; + icon_state = "tube-broken"; + status = 2 + }, +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/obj/machinery/camera{ + c_tag = "Xenobiology Containment South"; + dir = 1; + network = list("MO19X") + }, +/turf/open/floor/engine, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"hc" = ( +/obj/machinery/sparker{ + desc = "A wall-mounted ignition device. This one has been applied with an acid-proof coating."; + id = "awayxenobio"; + name = "Acid-Proof mounted igniter"; + pixel_x = 0; + pixel_y = -25 + }, +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/obj/structure/alien/resin/wall, +/turf/open/floor/engine, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"hd" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"he" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"hf" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"hg" = ( +/obj/structure/table, +/obj/item/weapon/book/manual/wiki/security_space_law, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = -32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/red/side{ + dir = 10; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"hh" = ( +/obj/structure/table, +/obj/item/weapon/folder/red, +/turf/open/floor/plasteel/red/side{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"hi" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/red/side{ + dir = 6; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"hj" = ( +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"hk" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/obj/structure/alien/egg, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"hl" = ( +/obj/structure/alien/weeds, +/obj/structure/alien/egg, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + always_unpowered = 1; + has_gravity = 1; + name = "The Hive"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"hm" = ( +/obj/machinery/vending/medical{ + req_access_txt = "201" + }, +/turf/open/floor/plasteel/white/side{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"hn" = ( +/obj/structure/closet/crate/bin, +/obj/item/clothing/gloves/color/latex, +/obj/item/trash/chips, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + active_power_usage = 0; + dir = 1; + icon_state = "bulb-broken"; + status = 2 + }, +/turf/open/floor/plasteel/white/side{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"ho" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/gloves{ + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"hp" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg3" + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"hq" = ( +/obj/structure/closet/secure_closet{ + icon_state = "rd"; + locked = 1; + name = "research director's locker"; + req_access_txt = "201" + }, +/obj/item/weapon/storage/backpack/satchel/tox, +/obj/item/clothing/gloves/color/latex, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"hr" = ( +/obj/structure/table, +/obj/item/weapon/cartridge/signal/toxins, +/obj/item/weapon/cartridge/signal/toxins{ + pixel_x = -4; + pixel_y = 2 + }, +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"hs" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/machinery/light/small{ + active_power_usage = 0; + dir = 1; + icon_state = "bulb-broken"; + status = 2 + }, +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23; + req_access = null + }, +/obj/item/weapon/paper{ + info = "Personal Log for Research Director Gerald Rosswell

Entry One - 17/05/2554:
You know, I can't believe I took this position so suddenly. I saw that corporate needed a research director for one of it's outposts and thought it would be a cakewalk, there isn't going to be a lot of research to be done on a tiny outpost. Mainly just running scans on the gas giant we are orbiting or some basic RnD. However, they conveniently forgot to tell me that me and my science staff would have to pull double duty as medical staff and that there is no one higher up on the chain of command here, so I get to pull triple duty as acting captain as well! This shit is probably allowed in some 3 point fine print buried underneath the literally thousands of pages of contracts. Well, at least the research will be easy work.

Entry Two - 25/05/2554:
Well, we all expected it at the outpost, CentComm has decided to completely change what research we are doing. They've decided that we should be research the species known as 'xenomporphs'. They announced this change 4 days ago and along with it, sadly, the termination of our current science staff barring me. Not to mention the constant noise made by the construction detail they sent to staple on an xenobiology lab ensuring no one has been able to sleep decently ever since they announced the shift. To make matters worse our current security guard actually died of a heart attack today. Just goes to show that 75 year old men shouldn't be security guards. Still can't believe that they decided to do this major change less than a month after the outpost was established.

Entry Three - 27/05/2554:
The new security guard arrived today. Apparently transferred here from the research station that also is orbiting the gas giant. He seems to be rather angry about his transfer. Considering the rumors I've heard about the research station he's probably caught off guard by the fact that Steve hasn't tried to force an IED down his throat.

Entry Four - 06/06/2554:
My requests for additional security and containment measures for the 'xenomorph' has been denied. Does Central Command not notice how dangerous these creatures are? The only thing keeping them in is a force field, a minor problem with the power grid and the entire hive is loose. What would stop them then, the lone security guard with a dinky little taser? Kenneth can barely handle a short-tempered engineer. We are under equipped and under staffed, we are inevitably going to be destroyed unless we get the equipment and staff we need.

Entry Five - 10/06/2554:
Cunningham got a good look at the xenomorph in containment. He was frightened for the rest of the day, rather amusing if it wasn't for the fact that we are all trapped on this scrap heap with naught but a force field keeping those xenomorphs in.

Entry Six - 17/06/2554:
The reactions from the specimens today has shown that they possess strange mental properties. Mark hypothesizes that they possibly have a sort of hive mind, while nothing is certain this would explain how xenomorphs seem to have vastly increased intellect when a 'queen' is present. Of course, to test this hypothesis would require many complicated procedures which we will not be able to undertake. But we do not know the full extend of the xenomorph mind, it may or may not be able to find a way to circumvent our containment system. I will resend my request for additional security measures along with this new found information."; + name = "Personal Log - Gerald Rosswell" + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"ht" = ( +/obj/structure/closet/crate/bin, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"hu" = ( +/obj/structure/grille, +/obj/machinery/door/poddoor{ + id = "AwayRD"; + layer = 2.9; + name = "privacy shutter" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"hv" = ( +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"hw" = ( +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"hx" = ( +/obj/structure/grille{ + density = 0; + broken = 1; + icon_state = "brokengrille" + }, +/obj/item/stack/rods, +/obj/item/stack/rods, +/obj/item/weapon/shard{ + icon_state = "medium" + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"hy" = ( +/obj/item/stack/rods, +/obj/item/weapon/shard{ + icon_state = "small" + }, +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"hz" = ( +/obj/effect/decal/cleanable/robot_debris, +/obj/effect/decal/cleanable/oil, +/obj/item/weapon/storage/firstaid/regular{ + empty = 1; + name = "First-Aid (empty)" + }, +/obj/item/device/healthanalyzer{ + pixel_x = 6; + pixel_y = -5 + }, +/obj/item/device/assembly/prox_sensor{ + pixel_x = -5; + pixel_y = -2 + }, +/obj/item/bodypart/l_arm/robot, +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"hA" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/fire{ + pixel_x = 0; + pixel_y = 0 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 28 + }, +/turf/open/floor/plasteel/white/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"hB" = ( +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"hC" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"hD" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + density = 0; + emagged = 1; + icon_state = "open"; + locked = 1; + name = "Research Director's Office"; + opacity = 0; + req_access_txt = "201"; + req_one_access_txt = "0" + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"hE" = ( +/obj/structure/noticeboard{ + dir = 1; + pixel_y = -32 + }, +/obj/machinery/light/small{ + active_power_usage = 0; + dir = 2; + icon_state = "bulb-broken"; + status = 2 + }, +/obj/item/weapon/paper{ + info = "

In The Event of Xenobiology Breach: Evacuate staff, Lock down Xenobiology, Notify on-site superiors and/or Central Command immediatly.



Current Xenobiology Containment Level:Secure RUN

"; + name = "Evacuation Procedure" + }, +/obj/machinery/camera{ + c_tag = "Research Division"; + dir = 1; + network = list("MO19","MO19R") + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"hF" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"hG" = ( +/obj/machinery/door/airlock/glass_research{ + name = "Research Storage"; + req_access_txt = "201" + }, +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"hH" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 0; + pixel_y = 0 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm{ + dir = 8; + frequency = 1439; + locked = 0; + pixel_x = 23; + pixel_y = 0; + req_access = null + }, +/turf/open/floor/plasteel/white/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"hI" = ( +/turf/closed/wall/rust, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"hJ" = ( +/turf/closed/wall, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"hK" = ( +/obj/structure/closet/crate, +/obj/item/weapon/storage/box/lights/mixed, +/obj/item/weapon/poster/contraband, +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg1" + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"hL" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"hM" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"hN" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor{ + desc = "A heavy duty blast door that opens mechanically. This one has been applied with an acid-proof coating."; + id = "Awaybiohazard"; + layer = 2.9; + name = "Acid-Proof biohazard containment door" + }, +/turf/open/floor/plasteel/delivery{ + heat_capacity = 1e+006; + name = "floor" + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"hO" = ( +/obj/structure/table, +/turf/open/floor/plasteel/white/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"hP" = ( +/obj/structure/toilet{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"hQ" = ( +/obj/machinery/door/airlock{ + name = "Unit 2" + }, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"hR" = ( +/obj/structure/urinal{ + pixel_y = 29 + }, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"hS" = ( +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/obj/structure/urinal{ + pixel_y = 29 + }, +/obj/structure/mirror{ + pixel_x = 28 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"hT" = ( +/obj/machinery/shower{ + pixel_y = 16 + }, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"hU" = ( +/obj/machinery/shower{ + pixel_y = 16 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"hV" = ( +/obj/machinery/light/small, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"hW" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plating{ + burnt = 1; + heat_capacity = 1e+006; + icon_state = "panelscorched" + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"hX" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/item/weapon/folder/white, +/obj/item/weapon/stamp/rd{ + pixel_x = 3; + pixel_y = -2 + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"hY" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"hZ" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/computer/security/telescreen{ + desc = "Used for monitoring the research division and the labs within."; + name = "research monitor"; + network = list("MO19X","MO19R") + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"ia" = ( +/obj/machinery/computer/aifixer, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"ib" = ( +/obj/structure/rack, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/item/weapon/circuitboard/computer/teleporter, +/turf/open/floor/plasteel/warnwhite{ + dir = 9; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"ic" = ( +/obj/structure/rack, +/obj/item/device/paicard{ + pixel_x = 4 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"id" = ( +/obj/structure/rack, +/turf/open/floor/plasteel/warnwhite{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"ie" = ( +/obj/machinery/door/airlock/glass_medical{ + glass = 0; + id_tag = ""; + name = "Research Division"; + opacity = 1; + req_access_txt = "201"; + req_one_access_txt = "0" + }, +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"if" = ( +/obj/structure/closet/l3closet, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/white/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"ig" = ( +/obj/structure/closet/l3closet, +/obj/machinery/light/small{ + active_power_usage = 0; + dir = 2; + icon_state = "bulb-broken"; + status = 2 + }, +/turf/open/floor/plasteel/white/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"ih" = ( +/obj/structure/table, +/obj/item/clothing/glasses/hud/health, +/obj/item/clothing/glasses/hud/health, +/obj/machinery/newscaster{ + pixel_x = 0; + pixel_y = -30 + }, +/turf/open/floor/plasteel/white/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"ii" = ( +/obj/structure/table, +/turf/open/floor/plasteel/white/corner{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"ij" = ( +/obj/machinery/airalarm{ + dir = 4; + frequency = 1439; + locked = 0; + pixel_x = -23; + pixel_y = 0; + req_access = null + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"ik" = ( +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/obj/structure/mirror{ + desc = "Oh no, seven years of bad luck!"; + icon_state = "mirror_broke"; + pixel_x = 28; + broken = 1 + }, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"il" = ( +/obj/item/weapon/soap/nanotrasen, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"im" = ( +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"in" = ( +/obj/machinery/shower{ + dir = 8 + }, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"io" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"ip" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/button/door{ + id = "Awaybiohazard"; + name = "Biohazard Shutter Control"; + pixel_x = 0; + pixel_y = 8; + req_access_txt = "201" + }, +/obj/machinery/button/door{ + id = "AwayRD"; + name = "Privacy Shutter Control"; + pixel_x = 0; + pixel_y = -2; + req_access_txt = "201" + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"iq" = ( +/obj/structure/chair/office/light{ + dir = 1; + pixel_y = 3 + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"ir" = ( +/turf/open/floor/plasteel/warnwhite{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"is" = ( +/obj/effect/decal/cleanable/blood/tracks{ + desc = "Your instincts say you shouldn't be following these."; + dir = 8; + icon_state = "ltrails_1" + }, +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"it" = ( +/obj/item/weapon/storage/secure/safe{ + pixel_x = 32; + pixel_y = 0 + }, +/obj/effect/decal/cleanable/blood/splatter, +/obj/item/weapon/pen, +/obj/item/weapon/paper/crumpled{ + info = "19 06 2554

I fucking knew it. There was a major breach, that idiotic force field failed and the xenomorphs rushed out and took out the scientists. I've managed to make it to my office and closed the blast doors. I can hear them trying to pry open the doors. Probably don't have long. I have no clue what has happened to the rest of the crew, for all I know they've been killed to produce more of the fucks."; + name = "Hastily Written Note" + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"iu" = ( +/obj/structure/sign/securearea{ + pixel_y = 32 + }, +/obj/machinery/shower{ + dir = 4; + icon_state = "shower"; + name = "emergency shower" + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 9; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"iv" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plasteel/warnwhite{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"iw" = ( +/obj/structure/toilet{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"ix" = ( +/obj/machinery/door/airlock{ + name = "Unit 1" + }, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"iy" = ( +/obj/machinery/door/airlock{ + name = "Unisex Showers" + }, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"iz" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"iA" = ( +/obj/machinery/shower{ + dir = 8 + }, +/obj/item/weapon/bikehorn/rubberducky, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"iB" = ( +/obj/structure/table, +/obj/item/trash/plate, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"iC" = ( +/obj/structure/table, +/obj/item/weapon/cigbutt, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"iD" = ( +/obj/structure/table, +/obj/item/trash/raisins, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"iE" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"iF" = ( +/obj/structure/sink{ + pixel_y = 28 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"iG" = ( +/obj/machinery/door/airlock{ + name = "Private Restroom" + }, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"iH" = ( +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = 0; + pixel_y = -32 + }, +/obj/machinery/light/small{ + active_power_usage = 0; + dir = 2; + icon_state = "bulb-broken"; + status = 2 + }, +/obj/machinery/camera{ + c_tag = "Research Director's Office"; + dir = 1; + network = list("MO19","MO19R") + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"iI" = ( +/obj/machinery/newscaster{ + pixel_x = 0; + pixel_y = -30 + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"iJ" = ( +/obj/structure/table, +/obj/item/device/radio/off, +/obj/item/device/laser_pointer, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"iK" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 10; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"iL" = ( +/obj/machinery/light/small, +/turf/open/floor/plasteel/warnwhite{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"iM" = ( +/obj/structure/table, +/obj/item/weapon/storage/secure/briefcase, +/obj/item/device/taperecorder{ + pixel_x = -3 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 6; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"iN" = ( +/obj/structure/sink{ + dir = 8; + icon_state = "sink"; + pixel_x = -12; + pixel_y = 2 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warnwhite{ + dir = 10; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"iO" = ( +/obj/structure/closet/emcloset, +/obj/machinery/light/small, +/turf/open/floor/plasteel/warnwhite{ + dir = 6; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"iP" = ( +/obj/machinery/shower{ + dir = 1; + pixel_y = 0 + }, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"iQ" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"iR" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"iS" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"iT" = ( +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = 0; + pixel_y = 0 + }, +/turf/closed/wall/rust, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"iU" = ( +/obj/machinery/vending/boozeomat{ + req_access_txt = "0" + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"iV" = ( +/obj/structure/table, +/obj/machinery/microwave{ + pixel_x = -3; + pixel_y = 6 + }, +/turf/open/floor/plasteel{ + burnt = 1; + dir = 8; + heat_capacity = 1e+006; + icon_state = "floorscorched2" + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"iW" = ( +/obj/structure/table, +/obj/machinery/microwave{ + pixel_x = -3; + pixel_y = 6 + }, +/turf/open/floor/plasteel{ + burnt = 1; + dir = 8; + heat_capacity = 1e+006; + icon_state = "floorscorched1" + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"iX" = ( +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"iY" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"iZ" = ( +/obj/structure/toilet{ + dir = 1 + }, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"ja" = ( +/obj/item/stack/rods, +/obj/item/weapon/shard, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"jb" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"jc" = ( +/obj/structure/table, +/obj/item/weapon/book/manual/detective, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"jd" = ( +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"je" = ( +/turf/open/floor/plasteel{ + burnt = 1; + dir = 8; + heat_capacity = 1e+006; + icon_state = "floorscorched2" + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"jf" = ( +/obj/machinery/vending/cola, +/turf/open/floor/plasteel/black, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"jg" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel/black, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"jh" = ( +/obj/machinery/door/airlock{ + name = "Unisex Restrooms"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"ji" = ( +/obj/structure/closet/crate/bin, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/item/trash/cheesie, +/obj/item/trash/can, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"jj" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"jk" = ( +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"jl" = ( +/obj/structure/chair/stool, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"jm" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/item/weapon/reagent_containers/food/condiment/peppermill{ + pixel_x = 3 + }, +/obj/item/weapon/reagent_containers/food/condiment/saltshaker{ + pixel_x = -3; + pixel_y = 0 + }, +/obj/machinery/door/poddoor/shutters{ + id = "awaykitchen"; + name = "Serving Hatch" + }, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"jn" = ( +/obj/effect/decal/cleanable/flour, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"jo" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"jp" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"jq" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + desc = "A plastic potted plant."; + layer = 4.1; + pixel_y = 3 + }, +/turf/open/floor/plasteel{ + burnt = 1; + dir = 8; + heat_capacity = 1e+006; + icon_state = "floorscorched1" + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"jr" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"js" = ( +/obj/structure/chair, +/obj/effect/decal/cleanable/generic, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"jt" = ( +/obj/structure/table, +/obj/item/weapon/newspaper, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"ju" = ( +/obj/structure/chair, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"jv" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = 30 + }, +/turf/open/floor/plasteel{ + burnt = 1; + dir = 8; + heat_capacity = 1e+006; + icon_state = "floorscorched1" + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"jw" = ( +/obj/machinery/vending/snack, +/obj/structure/sign/poster{ + icon_state = "poster14"; + pixel_x = 0; + pixel_y = 32; + serial_number = 14 + }, +/turf/open/floor/plasteel{ + burnt = 1; + dir = 8; + heat_capacity = 1e+006; + icon_state = "floorscorched2" + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"jx" = ( +/obj/structure/sign/science{ + pixel_x = 0; + pixel_y = 32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/purple/side{ + dir = 9; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"jy" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/purple/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"jz" = ( +/turf/open/floor/plasteel/purple/side{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"jA" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating{ + broken = 1; + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006; + icon_state = "platingdmg1"; + temperature = 251 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"jB" = ( +/obj/structure/grille, +/turf/open/floor/plating{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"jC" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"jD" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"jE" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"jF" = ( +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"jG" = ( +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"jH" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/power/apc{ + cell_type = 15000; + dir = 1; + locked = 0; + name = "Worn-out APC"; + pixel_x = 0; + pixel_y = 25; + req_access = null; + start_charge = 100 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"jI" = ( +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23; + req_access = null + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"jJ" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = 30 + }, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"jK" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"jL" = ( +/obj/structure/noticeboard{ + pixel_y = 32 + }, +/obj/item/weapon/paper{ + info = "

I Can't Believe It's Not Pasta: Half off on Wednesdays



Burger night every Friday 6PM-10PM, free drinks with purchase of meal!



Premiering Tonight: The comedy stylings of Shoe Snatching Willy! 11AM-7PM

"; + name = "Specials This Week" + }, +/turf/open/floor/plasteel{ + burnt = 1; + dir = 8; + heat_capacity = 1e+006; + icon_state = "floorscorched1" + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"jM" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"jN" = ( +/obj/item/weapon/cigbutt, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"jO" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters{ + id = "awaykitchen"; + name = "Serving Hatch" + }, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"jP" = ( +/obj/structure/table, +/obj/item/weapon/book/manual/barman_recipes{ + pixel_y = 5 + }, +/obj/item/weapon/reagent_containers/food/drinks/shaker, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"jQ" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/donkpockets{ + pixel_x = 3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"jR" = ( +/obj/machinery/vending/dinnerware, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"jS" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg1" + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"jT" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"jU" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"jV" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"jW" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"jX" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/item/weapon/cigbutt, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"jY" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23; + req_access = null + }, +/turf/open/floor/plasteel/purple/corner{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"jZ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel/purple/corner{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"ka" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/purple/corner{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"kb" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/door/firedoor{ + density = 1; + icon_state = "door_closed"; + opacity = 0 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"kc" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel{ + burnt = 1; + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 8; + heat_capacity = 1e+006; + icon_state = "floorscorched2"; + temperature = 251 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"kd" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel{ + broken = 1; + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 8; + heat_capacity = 1e+006; + icon_state = "damaged1"; + temperature = 251 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"ke" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/floorgrime{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 8; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"kf" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel/floorgrime{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 8; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"kg" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel{ + burnt = 1; + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 8; + heat_capacity = 1e+006; + icon_state = "floorscorched1"; + temperature = 251 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"kh" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plating{ + broken = 1; + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006; + icon_state = "platingdmg1"; + temperature = 251 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"ki" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel{ + broken = 1; + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 8; + heat_capacity = 1e+006; + icon_state = "damaged3"; + temperature = 251 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"kj" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/firedoor{ + density = 1; + icon_state = "door_closed"; + opacity = 0 + }, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"kk" = ( +/obj/machinery/light/small, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"kl" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"km" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Diner" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"kn" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/item/weapon/reagent_containers/glass/rag{ + pixel_y = 5 + }, +/obj/machinery/door/poddoor/shutters{ + id = "awaykitchen"; + name = "Serving Hatch" + }, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"ko" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"kp" = ( +/obj/structure/table, +/obj/item/weapon/kitchen/rollingpin, +/obj/item/weapon/kitchen/knife, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"kq" = ( +/obj/structure/table, +/obj/item/weapon/book/manual/chef_recipes{ + pixel_x = 2; + pixel_y = 6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"kr" = ( +/obj/effect/decal/cleanable/egg_smudge, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"ks" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/obj/machinery/processor, +/obj/machinery/airalarm{ + dir = 8; + frequency = 1439; + locked = 0; + pixel_x = 23; + pixel_y = 0; + req_access = null + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"kt" = ( +/obj/structure/closet/crate/bin, +/obj/item/trash/candy, +/obj/item/trash/can, +/turf/open/floor/plasteel/arrival{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"ku" = ( +/turf/open/floor/plasteel/arrival{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"kv" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/arrival{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"kw" = ( +/obj/machinery/light/small, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = 0; + pixel_y = -32 + }, +/obj/machinery/camera{ + c_tag = "Arrivals North"; + dir = 1; + network = list("MO19") + }, +/turf/open/floor/plasteel/arrival{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"kx" = ( +/obj/structure/sign/poster{ + icon_state = "poster2_legit"; + pixel_x = 0; + pixel_y = -32; + serial_number = 2 + }, +/turf/open/floor/plasteel/arrival{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"ky" = ( +/turf/open/floor/plasteel/white/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"kz" = ( +/obj/machinery/light/small, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"kA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/firedoor{ + density = 1; + icon_state = "door_closed"; + opacity = 0 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"kB" = ( +/turf/open/floor/plasteel{ + broken = 1; + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 8; + heat_capacity = 1e+006; + icon_state = "damaged2"; + temperature = 251 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"kC" = ( +/turf/open/floor/plating{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"kD" = ( +/obj/effect/decal/cleanable/generic, +/obj/effect/decal/remains/human{ + desc = "They look like human remains. The skeleton is curled up in fetal position with the hands placed near the throat." + }, +/turf/open/floor/plasteel{ + broken = 1; + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 8; + heat_capacity = 1e+006; + icon_state = "damaged4"; + temperature = 251 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"kE" = ( +/turf/open/floor/plasteel/floorgrime{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 8; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"kF" = ( +/turf/open/floor/plasteel{ + broken = 1; + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 8; + heat_capacity = 1e+006; + icon_state = "damaged5"; + temperature = 251 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"kG" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/floorgrime{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 8; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"kH" = ( +/obj/machinery/door/firedoor{ + density = 1; + icon_state = "door_closed"; + opacity = 0 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"kI" = ( +/obj/effect/decal/cleanable/generic, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"kJ" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"kK" = ( +/obj/effect/decal/cleanable/xenoblood, +/obj/effect/decal/cleanable/xenoblood/xgibs, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"kL" = ( +/obj/effect/decal/cleanable/xenoblood, +/obj/effect/decal/remains/xeno{ + desc = "They look like the remains of something... alien. The front of skull appears to have been completely obliterated." + }, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"kM" = ( +/obj/structure/closet/crate/bin, +/obj/item/trash/plate, +/obj/item/weapon/reagent_containers/food/snacks/badrecipe, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"kN" = ( +/turf/open/floor/plasteel/arrival{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"kO" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"kP" = ( +/obj/item/stack/rods, +/obj/structure/grille{ + density = 0; + broken = 1; + icon_state = "brokengrille" + }, +/obj/item/stack/rods, +/obj/item/weapon/shard{ + icon_state = "medium" + }, +/turf/open/floor/plating{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"kQ" = ( +/obj/structure/grille{ + density = 0; + broken = 1; + icon_state = "brokengrille" + }, +/obj/item/stack/rods, +/turf/open/floor/plating{ + broken = 1; + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006; + icon_state = "platingdmg3"; + temperature = 251 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"kR" = ( +/obj/machinery/door/firedoor{ + density = 1; + icon_state = "door_closed"; + opacity = 0 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"kS" = ( +/obj/machinery/door/firedoor{ + density = 1; + icon_state = "door_closed"; + opacity = 0 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"kT" = ( +/obj/machinery/button/door{ + id = "awaydorm1"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + pixel_x = -25; + pixel_y = 0; + req_access_txt = "0"; + specialfunctions = 4 + }, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"kU" = ( +/obj/structure/closet/secure_closet{ + desc = "It's a secure locker for personnel. The first card swiped gains control."; + icon_state = "cabinet"; + locked = 0; + name = "personal closet"; + req_access_txt = "201" + }, +/obj/item/clothing/under/suit_jacket/navy, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"kV" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "0"; + req_one_access_txt = "0" + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"kW" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/blue/side{ + dir = 0; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"kX" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/device/multitool, +/turf/open/floor/plasteel/blue/side{ + dir = 0; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"kY" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/weapon/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 0; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"kZ" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/blue/side{ + dir = 0; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"la" = ( +/obj/structure/chair, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"lb" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 26; + pixel_y = 0 + }, +/obj/machinery/camera{ + c_tag = "Kitchen"; + dir = 8; + network = list("MO19") + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"lc" = ( +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/turf/closed/wall/mineral/titanium/interior, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"ld" = ( +/turf/closed/wall/mineral/titanium, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"le" = ( +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/turf/closed/wall/shuttle{ + dir = 3; + icon_state = "swall_f10"; + layer = 2 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"lf" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/arrival{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"lg" = ( +/obj/item/weapon/cigbutt, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"lh" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"li" = ( +/obj/item/stack/rods, +/obj/item/weapon/shard{ + icon_state = "small" + }, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"lj" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"lk" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/neutral/corner{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 8; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"ll" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral/side{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 4; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"lm" = ( +/obj/machinery/door/airlock{ + id_tag = "awaydorm1"; + name = "Dorm 1" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"ln" = ( +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"lo" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/chair/wood/normal, +/obj/machinery/airalarm{ + dir = 8; + frequency = 1439; + locked = 0; + pixel_x = 23; + pixel_y = 0; + req_access = null + }, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"lp" = ( +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg3" + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"lq" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/table, +/obj/item/weapon/storage/box, +/obj/machinery/airalarm{ + dir = 4; + frequency = 1439; + locked = 0; + pixel_x = -23; + pixel_y = 0; + req_access = null + }, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"lr" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"ls" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/camera{ + c_tag = "Bar"; + dir = 8; + network = list("MO19") + }, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"lt" = ( +/obj/machinery/button/door{ + id = "awaykitchen"; + name = "Kitchen Shutters Control"; + pixel_x = -25; + pixel_y = 0; + req_access_txt = "0" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"lu" = ( +/obj/machinery/door/airlock{ + name = "Kitchen Cold Room"; + req_access_txt = "201" + }, +/turf/open/floor/plasteel/showroomfloor{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"lv" = ( +/turf/open/floor/plasteel/showroomfloor{ + heat_capacity = 1e+006; + temperature = 273.15 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"lw" = ( +/obj/structure/sink/kitchen{ + desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; + name = "old sink"; + pixel_y = 28 + }, +/turf/open/floor/plasteel/showroomfloor{ + heat_capacity = 1e+006; + temperature = 273.15 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"lx" = ( +/obj/structure/closet/crate{ + desc = "It's a storage unit for kitchen clothes and equipment."; + name = "Kitchen Crate" + }, +/obj/item/weapon/storage/box/mousetraps, +/obj/item/clothing/under/waiter, +/turf/open/floor/plasteel/showroomfloor{ + heat_capacity = 1e+006; + temperature = 273.15 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"ly" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall14"; + dir = 2 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"lz" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall8"; + dir = 2 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"lA" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"lB" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall4"; + dir = 2 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"lC" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall1"; + dir = 2 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"lD" = ( +/obj/structure/shuttle/engine/heater{ + icon_state = "heater"; + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plating{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + temperature = 251 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"lE" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "burst_r"; + dir = 8 + }, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"lF" = ( +/turf/open/floor/plasteel/warning{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"lG" = ( +/turf/open/floor/plasteel/warning/corner{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"lH" = ( +/obj/structure/table, +/obj/item/weapon/storage/fancy/cigarettes/dromedaryco, +/turf/open/floor/plasteel/warning{ + dir = 6; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"lI" = ( +/turf/open/floor/plasteel/neutral/corner{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 8; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"lJ" = ( +/turf/open/floor/plasteel/neutral/corner{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 4; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"lK" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"lL" = ( +/obj/structure/table/wood, +/obj/item/weapon/lighter, +/obj/machinery/newscaster{ + pixel_x = 30; + pixel_y = 0 + }, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"lM" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"lN" = ( +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"lO" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"lP" = ( +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg1" + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"lQ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Kitchen"; + req_access_txt = "201" + }, +/turf/open/floor/plasteel/black, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"lR" = ( +/turf/open/floor/plasteel/black, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"lS" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/black, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"lT" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/clothing/suit/hooded/chaplain_hoodie, +/turf/open/floor/plasteel/black, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"lU" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/decal/remains/human{ + desc = "They look like human remains. The skeleton is sitting upright with its legs tucked in and hands still holding onto its arms." + }, +/obj/item/weapon/gun/projectile/shotgun/sc_pump, +/turf/open/floor/plasteel/showroomfloor{ + heat_capacity = 1e+006; + temperature = 273.15 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"lV" = ( +/turf/open/floor/mineral/titanium/blue, +/turf/closed/wall/mineral/titanium/interior, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"lW" = ( +/obj/structure/table, +/obj/item/weapon/storage/lockbox, +/turf/open/floor/mineral/titanium/blue, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"lX" = ( +/obj/structure/table, +/obj/item/device/radio/off, +/turf/open/floor/mineral/titanium/yellow, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"lY" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall3"; + dir = 2 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"lZ" = ( +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = -32; + pixel_y = 0 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"ma" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/blue, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"mb" = ( +/turf/open/floor/mineral/titanium/blue, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"mc" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/blue, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"md" = ( +/obj/machinery/newscaster{ + pixel_x = 0; + pixel_y = 30 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/blue, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"me" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/mineral/titanium/blue, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"mf" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "burst_l"; + dir = 8 + }, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"mg" = ( +/turf/open/floor/plasteel/warning{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"mh" = ( +/turf/open/floor/plasteel/neutral/corner{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 2; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"mi" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/effect/decal/cleanable/dirt, +/obj/structure/window{ + icon_state = "window"; + dir = 1 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"mj" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"mk" = ( +/obj/machinery/light/small, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"ml" = ( +/obj/structure/table, +/obj/item/weapon/storage/backpack/satchel/leather/withwallet, +/turf/open/floor/plasteel/black, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"mm" = ( +/obj/structure/closet/secure_closet{ + icon_state = "secure"; + locked = 0; + name = "kitchen Cabinet"; + req_access_txt = "201" + }, +/obj/item/weapon/reagent_containers/food/condiment/flour, +/obj/item/weapon/reagent_containers/food/condiment/flour, +/obj/item/weapon/reagent_containers/food/condiment/sugar, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/showroomfloor{ + heat_capacity = 1e+006; + temperature = 273.15 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"mn" = ( +/obj/structure/closet/secure_closet{ + icon_state = "freezer"; + locked = 0; + name = "meat fridge"; + req_access_txt = "201" + }, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/monkey, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/monkey, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/monkey, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/monkey, +/turf/open/floor/plasteel/showroomfloor{ + heat_capacity = 1e+006; + temperature = 273.15 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"mo" = ( +/obj/structure/closet/secure_closet{ + icon_state = "freezer"; + locked = 0; + name = "refrigerator"; + req_access_txt = "201" + }, +/obj/item/weapon/reagent_containers/food/condiment/milk, +/obj/item/weapon/reagent_containers/food/condiment/milk, +/obj/item/weapon/reagent_containers/food/condiment/milk, +/obj/item/weapon/storage/fancy/egg_box, +/turf/open/floor/plasteel/showroomfloor{ + heat_capacity = 1e+006; + temperature = 273.15 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"mp" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/donkpockets, +/turf/open/floor/mineral/titanium/blue, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"mq" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"mr" = ( +/turf/open/floor/mineral/titanium/yellow, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"ms" = ( +/obj/effect/landmark{ + name = "awaystart" + }, +/turf/open/floor/mineral/titanium/blue, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"mt" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/landmark{ + name = "awaystart" + }, +/turf/open/floor/mineral/titanium/blue, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"mu" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"mv" = ( +/obj/structure/grille, +/obj/structure/sign/vacuum{ + desc = "A warning sign which reads 'HOSTILE ATMOSPHERE AHEAD'"; + name = "\improper HOSTILE ATMOSPHERE AHEAD"; + pixel_x = 0 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"mw" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"mx" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral/corner{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 2; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"my" = ( +/obj/structure/table/wood, +/obj/machinery/button/door{ + id = "awaydorm2"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + pixel_x = -25; + pixel_y = 0; + req_access_txt = "0"; + specialfunctions = 4 + }, +/obj/machinery/newscaster{ + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"mz" = ( +/obj/structure/chair/wood/normal{ + dir = 8 + }, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"mA" = ( +/obj/structure/closet/emcloset, +/obj/structure/window, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"mB" = ( +/obj/machinery/computer/arcade, +/turf/open/floor/plasteel/black, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"mC" = ( +/obj/machinery/vending/cigarette, +/obj/structure/sign/poster{ + icon_state = "poster7"; + pixel_y = -32; + serial_number = 7 + }, +/turf/open/floor/plasteel/black, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"mD" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/chair/comfy/beige, +/turf/open/floor/plasteel/black, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"mE" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey{ + pixel_x = -6; + pixel_y = 6 + }, +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass{ + pixel_x = 6; + pixel_y = 8 + }, +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass{ + pixel_x = 3; + pixel_y = 0 + }, +/turf/open/floor/plasteel/black, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"mF" = ( +/obj/structure/chair/comfy/beige, +/turf/open/floor/plasteel/black, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"mG" = ( +/obj/machinery/computer/shuttle, +/turf/open/floor/mineral/titanium/blue, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"mH" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Shuttle Cockpit" + }, +/turf/open/floor/mineral/titanium/yellow, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"mI" = ( +/obj/effect/landmark{ + name = "awaystart" + }, +/turf/open/floor/mineral/titanium/yellow, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"mJ" = ( +/obj/structure/sign/vacuum{ + desc = "A beacon used by a teleporter."; + icon = 'icons/obj/radio.dmi'; + icon_state = "beacon"; + name = "tracking beacon" + }, +/obj/effect/landmark{ + name = "awaystart" + }, +/turf/open/floor/mineral/titanium/yellow, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"mK" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Shuttle Airlock" + }, +/turf/open/floor/mineral/titanium/blue, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"mL" = ( +/obj/machinery/door/airlock/external, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"mM" = ( +/obj/machinery/door/airlock/external, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"mN" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/noticeboard{ + dir = 8; + pixel_x = 32; + pixel_y = 0 + }, +/obj/item/weapon/paper{ + info = "

Welcome to Moon Outpost 19! Property of Nanotrasen Inc.




Staff Roster:
-Dr. Gerald Rosswell: Research Director & Acting Captain
-Dr. Sakuma Sano: Xenobiologist
-Dr. Mark Douglas: Xenobiologist
-Kenneth Cunningham: Security Officer-Ivan Volodin: Engineer
-Mathias Kuester: Bartender
-Sven Edling: Chef
-Steve: Assistant

Please enjoy your stay, and report any abnormalities to an officer."; + name = "Welcome Notice" + }, +/obj/machinery/camera{ + c_tag = "Arrivals South"; + dir = 8; + network = list("MO19") + }, +/turf/open/floor/plasteel/warning{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"mO" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"mP" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood/tracks{ + desc = "Your instincts say you shouldn't be following these."; + dir = 9; + icon_state = "ltrails_1" + }, +/turf/open/floor/plasteel/neutral/corner{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 8; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"mQ" = ( +/obj/effect/decal/cleanable/blood/tracks{ + desc = "Your instincts say you shouldn't be following these."; + dir = 8; + icon_state = "ltrails_1" + }, +/turf/open/floor/plasteel{ + burnt = 1; + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 8; + heat_capacity = 1e+006; + icon_state = "floorscorched2"; + temperature = 251 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"mR" = ( +/obj/machinery/door/airlock{ + id_tag = "awaydorm2"; + name = "Dorm 2" + }, +/obj/effect/decal/cleanable/blood/tracks{ + desc = "Your instincts say you shouldn't be following these."; + dir = 8; + icon_state = "ltrails_1" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"mS" = ( +/obj/effect/decal/cleanable/blood/tracks{ + desc = "Your instincts say you shouldn't be following these."; + dir = 5; + icon_state = "ltrails_1" + }, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"mT" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 8; + frequency = 1439; + locked = 0; + pixel_x = 23; + pixel_y = 0; + req_access = null + }, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"mU" = ( +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"mV" = ( +/obj/structure/table, +/obj/item/weapon/clipboard, +/obj/item/weapon/pen, +/turf/open/floor/mineral/titanium/blue, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"mW" = ( +/obj/structure/chair, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"mX" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall2"; + dir = 2 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"mY" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/window/reinforced, +/turf/open/floor/mineral/titanium/yellow, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"mZ" = ( +/obj/effect/decal/cleanable/blood/tracks{ + desc = "Your instincts say you shouldn't be following these."; + icon_state = "ltrails_1" + }, +/turf/open/floor/plasteel/neutral/corner{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 8; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"na" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"nb" = ( +/obj/structure/closet/secure_closet{ + desc = "It's a secure locker for personnel. The first card swiped gains control."; + icon_state = "cabinet"; + locked = 0; + name = "personal closet"; + req_access_txt = "201" + }, +/obj/item/clothing/under/assistantformal, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"nc" = ( +/obj/machinery/space_heater, +/obj/effect/decal/cleanable/generic, +/obj/structure/window, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"nd" = ( +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/turf/closed/wall/shuttle{ + icon_state = "swall_f5"; + dir = 2 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"ne" = ( +/turf/open/floor/plasteel/shuttle, +/turf/closed/wall/shuttle{ + icon_state = "swall_f10"; + dir = 2 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"nf" = ( +/obj/structure/filingcabinet, +/turf/open/floor/mineral/titanium/blue, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"ng" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/light/small, +/turf/open/floor/mineral/titanium/blue, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"nh" = ( +/obj/machinery/newscaster{ + pixel_x = 0; + pixel_y = -30 + }, +/obj/machinery/light/small, +/turf/open/floor/mineral/titanium/blue, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"ni" = ( +/turf/open/floor/plasteel{ + burnt = 1; + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 8; + heat_capacity = 1e+006; + icon_state = "floorscorched2"; + temperature = 251 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"nj" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plasteel{ + broken = 1; + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 8; + heat_capacity = 1e+006; + icon_state = "damaged2"; + temperature = 251 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"nk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/trash/candy, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"nl" = ( +/obj/item/weapon/cigbutt, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"nm" = ( +/obj/structure/sign/vacuum{ + desc = "A warning sign which reads 'HOSTILE ATMOSPHERE AHEAD'"; + name = "\improper HOSTILE ATMOSPHERE AHEAD"; + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"nn" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall13"; + dir = 2 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"no" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"np" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"nq" = ( +/obj/effect/decal/cleanable/blood/tracks{ + desc = "Your instincts say you shouldn't be following these."; + icon_state = "ltrails_2" + }, +/obj/machinery/camera{ + c_tag = "Dormitories"; + dir = 4; + network = list("MO19") + }, +/turf/open/floor/plasteel{ + broken = 1; + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 8; + heat_capacity = 1e+006; + icon_state = "damaged1"; + temperature = 251 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"nr" = ( +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg2" + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"ns" = ( +/obj/structure/grille{ + density = 0; + broken = 1; + icon_state = "brokengrille" + }, +/obj/item/stack/rods, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"nt" = ( +/obj/structure/grille, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"nu" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006; + icon_plating = "asteroidplating"; + icon_state = "asteroidplating"; + temperature = 251 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"nv" = ( +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/turf/closed/wall/shuttle{ + icon_state = "swall_f9"; + dir = 2 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"nw" = ( +/obj/machinery/washing_machine, +/turf/open/floor/plasteel/barber{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"nx" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4; + layer = 2.9 + }, +/obj/structure/table, +/obj/structure/bedsheetbin, +/obj/item/clothing/neck/tie/black, +/obj/item/clothing/under/lawyer/blacksuit, +/turf/open/floor/plasteel/barber{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"ny" = ( +/obj/machinery/airalarm{ + dir = 8; + frequency = 1439; + locked = 0; + pixel_x = 23; + pixel_y = 0; + req_access = null + }, +/turf/open/floor/plasteel/neutral/corner{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 2; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"nz" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "201"; + req_one_access_txt = "0" + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"nA" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"nB" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"nC" = ( +/obj/item/stack/rods, +/obj/item/weapon/shard{ + icon_state = "small" + }, +/obj/effect/decal/cleanable/blood/tracks{ + desc = "Your instincts say you shouldn't be following these."; + dir = 9; + icon_state = "ltrails_1" + }, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"nD" = ( +/obj/structure/grille{ + density = 0; + broken = 1; + icon_state = "brokengrille" + }, +/obj/item/stack/rods, +/obj/item/weapon/shard, +/obj/effect/decal/cleanable/blood/tracks{ + desc = "Your instincts say you shouldn't be following these."; + dir = 8; + icon_state = "ltrails_2" + }, +/turf/open/floor/plating{ + broken = 1; + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006; + icon_state = "platingdmg1"; + temperature = 251 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"nE" = ( +/obj/effect/decal/cleanable/blood/tracks{ + desc = "Your instincts say you shouldn't be following these."; + dir = 8; + icon_state = "ltrails_2" + }, +/turf/open/floor/plating{ + broken = 1; + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006; + icon_state = "platingdmg3"; + temperature = 251 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"nF" = ( +/obj/effect/decal/cleanable/blood/tracks{ + desc = "Your instincts say you shouldn't be following these."; + dir = 8; + icon_state = "ltrails_1" + }, +/turf/open/floor/plasteel/floorgrime{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 8; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"nG" = ( +/obj/effect/decal/cleanable/blood/tracks{ + desc = "Your instincts say you shouldn't be following these."; + dir = 6; + icon_state = "ltrails_1" + }, +/turf/open/floor/plasteel/floorgrime{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 8; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"nH" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/obj/machinery/button/door{ + id = "awaydorm3"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + pixel_x = -25; + pixel_y = 0; + req_access_txt = "0"; + specialfunctions = 4 + }, +/obj/effect/decal/remains/human{ + desc = "They look like human remains. The skeleton is laid out on its side and there seems to have been no sign of struggle."; + layer = 4.1 + }, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"nI" = ( +/obj/structure/dresser, +/obj/item/weapon/paper{ + info = "Bugs break out. I run to here and lock door. I hear door next to me break open and screams. All nice people here dead now. I no want to be eaten, and bottle always said to be coward way out, but person who say that is stupid. Mira, there is no escape for me, tell Alexis and Elena that father will never come home, and that I love you all."; + name = "Note" + }, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"nJ" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg3" + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"nK" = ( +/obj/structure/sign/vacuum{ + desc = "A warning sign which reads 'HOSTILE ATMOSPHERE AHEAD'"; + name = "\improper HOSTILE ATMOSPHERE AHEAD"; + pixel_x = -32 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"nL" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"nM" = ( +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral/corner{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 8; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"nN" = ( +/turf/open/floor/plasteel/neutral/side{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 4; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"nO" = ( +/obj/machinery/door/airlock{ + icon_state = "closed"; + id_tag = "awaydorm3"; + locked = 1; + name = "Dorm 3" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"nP" = ( +/obj/item/weapon/pen, +/obj/item/weapon/storage/pill_bottle{ + pixel_y = 6 + }, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"nQ" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"nR" = ( +/obj/structure/closet, +/obj/item/weapon/storage/box/lights/mixed, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"nS" = ( +/obj/structure/table, +/obj/item/toy/cards/deck, +/turf/open/floor/plasteel{ + broken = 1; + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 8; + heat_capacity = 1e+006; + icon_state = "damaged1"; + temperature = 251 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"nT" = ( +/obj/structure/closet/secure_closet{ + desc = "It's a secure locker for personnel. The first card swiped gains control."; + icon_state = "cabinet"; + locked = 0; + name = "personal closet"; + req_access_txt = "201" + }, +/obj/item/clothing/under/suit_jacket/burgundy, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"nU" = ( +/obj/machinery/newscaster{ + pixel_x = 30; + pixel_y = 0 + }, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"nV" = ( +/obj/structure/grille, +/obj/structure/disposalpipe/segment, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"nW" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006; + icon_plating = "asteroidplating"; + icon_state = "asteroidplating"; + temperature = 251 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"nX" = ( +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/turf/open/floor/plasteel{ + burnt = 1; + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 8; + heat_capacity = 1e+006; + icon_state = "floorscorched2"; + temperature = 251 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"nY" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/decal/cleanable/generic, +/turf/open/floor/plasteel/neutral/corner{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 2; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"nZ" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006; + icon_plating = "asteroidplating"; + icon_state = "asteroidplating"; + temperature = 251 + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"oa" = ( +/obj/structure/chair/comfy/black, +/turf/open/floor/plating{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"ob" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + desc = "A plastic potted plant."; + layer = 4.1; + pixel_y = 3 + }, +/turf/open/floor/plasteel/neutral/side{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "MO19 Arrivals" + }) +"oc" = ( +/obj/structure/disposaloutlet, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plating{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006; + icon_plating = "asteroidplating"; + icon_state = "asteroidplating"; + temperature = 251 + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"od" = ( +/obj/item/weapon/shard{ + icon_state = "small" + }, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"oe" = ( +/obj/item/trash/candy, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"of" = ( +/obj/item/weapon/shard, +/turf/open/floor/mineral/titanium, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"og" = ( +/obj/item/weapon/shard{ + icon_state = "medium" + }, +/turf/open/floor/mineral/titanium, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"oh" = ( +/obj/item/weapon/shard{ + icon_state = "small" + }, +/turf/open/floor/mineral/titanium, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"oi" = ( +/turf/open/floor/mineral/titanium, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"oj" = ( +/obj/structure/grille{ + density = 0; + broken = 1; + icon_state = "brokengrille" + }, +/turf/open/floor/mineral/titanium, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"ok" = ( +/obj/item/stack/rods, +/turf/open/floor/mineral/titanium, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"ol" = ( +/obj/item/stack/cable_coil, +/turf/open/floor/mineral/titanium, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"om" = ( +/obj/item/stack/cable_coil{ + amount = 5 + }, +/turf/open/floor/mineral/titanium, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"on" = ( +/obj/item/stack/cable_coil{ + amount = 2; + icon_state = "coil_red2"; + item_state = "coil_red2" + }, +/turf/open/floor/mineral/titanium, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"oo" = ( +/obj/item/stack/cable_coil{ + amount = 1; + icon_state = "coil_red1"; + item_state = "coil_red1" + }, +/turf/open/floor/mineral/titanium, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"op" = ( +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"oq" = ( +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"or" = ( +/turf/open/floor/plasteel{ + broken = 1; + dir = 8; + heat_capacity = 1e+006; + icon_state = "damaged1" + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"os" = ( +/turf/open/floor/plasteel{ + broken = 1; + dir = 8; + heat_capacity = 1e+006; + icon_state = "damaged2" + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"ot" = ( +/turf/open/floor/plasteel{ + broken = 1; + dir = 8; + heat_capacity = 1e+006; + icon_state = "damaged3" + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"ou" = ( +/turf/open/floor/plasteel{ + broken = 1; + dir = 8; + heat_capacity = 1e+006; + icon_state = "damaged4" + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"ov" = ( +/turf/open/floor/plasteel{ + broken = 1; + dir = 8; + heat_capacity = 1e+006; + icon_state = "damaged5" + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"ow" = ( +/turf/open/floor/plasteel{ + burnt = 1; + dir = 8; + heat_capacity = 1e+006; + icon_state = "floorscorched1" + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"ox" = ( +/turf/open/floor/plasteel{ + burnt = 1; + dir = 8; + heat_capacity = 1e+006; + icon_state = "floorscorched2" + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"oy" = ( +/turf/open/floor/mineral/titanium/blue, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"oz" = ( +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"oA" = ( +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg1" + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"oB" = ( +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg2" + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"oC" = ( +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg3" + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"oD" = ( +/turf/open/floor/plating{ + burnt = 1; + heat_capacity = 1e+006; + icon_state = "panelscorched" + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"oE" = ( +/turf/open/floor/plasteel{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"oF" = ( +/turf/open/floor/plasteel/floorgrime{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 8; + heat_capacity = 1e+006; + temperature = 251 + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"oG" = ( +/turf/open/floor/plasteel{ + broken = 1; + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 8; + heat_capacity = 1e+006; + icon_state = "damaged1"; + temperature = 251 + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"oH" = ( +/turf/open/floor/plasteel{ + broken = 1; + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 8; + heat_capacity = 1e+006; + icon_state = "damaged2"; + temperature = 251 + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"oI" = ( +/turf/open/floor/plasteel{ + broken = 1; + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 8; + heat_capacity = 1e+006; + icon_state = "damaged3"; + temperature = 251 + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"oJ" = ( +/turf/open/floor/plasteel{ + broken = 1; + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 8; + heat_capacity = 1e+006; + icon_state = "damaged4"; + temperature = 251 + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"oK" = ( +/turf/open/floor/plasteel{ + broken = 1; + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 8; + heat_capacity = 1e+006; + icon_state = "damaged5"; + temperature = 251 + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"oL" = ( +/turf/open/floor/plasteel{ + burnt = 1; + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 8; + heat_capacity = 1e+006; + icon_state = "floorscorched1"; + temperature = 251 + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"oM" = ( +/turf/open/floor/plasteel{ + burnt = 1; + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + dir = 8; + heat_capacity = 1e+006; + icon_state = "floorscorched2"; + temperature = 251 + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"oN" = ( +/turf/open/floor/mineral/titanium/yellow, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"oO" = ( +/turf/open/floor/plating{ + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"oP" = ( +/turf/open/floor/plating{ + broken = 1; + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006; + icon_state = "platingdmg1"; + temperature = 251 + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"oQ" = ( +/turf/open/floor/plating{ + broken = 1; + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006; + icon_state = "platingdmg2"; + temperature = 251 + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"oR" = ( +/turf/open/floor/plating{ + broken = 1; + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006; + icon_state = "platingdmg3"; + temperature = 251 + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"oS" = ( +/turf/open/floor/plating{ + burnt = 1; + initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; + heat_capacity = 1e+006; + icon_state = "panelscorched"; + temperature = 251 + }, +/area/awaycontent/a3{ + always_unpowered = 1; + ambientsounds = list('sound/ambience/ambimine.ogg'); + has_gravity = 1; + name = "Khonsu 19"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"oT" = ( +/obj/structure/closet/secure_closet{ + icon_state = "science"; + locked = 0; + name = "scientist's locker"; + req_access_txt = "201" + }, +/obj/item/clothing/suit/toggle/labcoat, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) +"oU" = ( +/obj/structure/window/reinforced, +/obj/structure/closet/secure_closet{ + icon_state = "science"; + locked = 1; + name = "scientist's locker"; + req_access_txt = "201" + }, +/obj/item/clothing/suit/toggle/labcoat, +/obj/item/weapon/tank/internals/air, +/obj/item/clothing/mask/gas, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "MO19 Research" + }) + +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(8,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(9,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(10,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(11,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(12,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(13,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(14,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(15,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(16,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(17,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(18,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(19,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(20,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(21,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(22,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(23,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(24,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(25,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(26,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(27,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(28,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(29,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(30,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(31,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(32,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(33,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(34,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(35,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(36,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(37,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(38,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(39,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(40,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(41,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(42,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(43,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(44,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(45,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(46,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(47,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(48,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(49,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(50,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(51,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(52,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(53,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(54,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(55,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(56,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(57,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(58,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(59,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(60,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(61,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(62,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(63,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(64,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(65,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(66,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(67,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(68,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(69,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(70,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +of +oj +ab +op +oz +ab +oE +oO +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 +"} +(71,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +og +oi +ab +oq +ab +ab +oF +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 +"} +(72,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +oh +ok +ab +ab +oA +ab +ab +oP +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 +"} +(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 +aa +aa +aa +aa +aa +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 +oi +ol +ab +or +oB +ab +oG +oQ +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 +"} +(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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +oi +om +ab +os +oC +ab +oH +oR +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 +"} +(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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +oi +on +ab +ot +ab +ab +oI +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 +"} +(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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +af +ae +ad +ae +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +ab +ab +ab +ab +ab +ab +oi +oo +ab +ou +oD +ab +oJ +oS +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 +"} +(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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ad +ad +af +hl +ah +af +ad +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ov +ab +ab +oK +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 +"} +(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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ae +ai +ah +al +ai +hk +ai +af +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ae +af +hk +aq +ai +hk +bb +ar +ah +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ow +ab +ab +oL +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 +"} +(80,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +af +ai +aq +aD +an +aq +ar +aD +ai +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ox +ab +ab +oM +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 +"} +(81,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ac +ac +ac +ac +ad +ai +ar +an +ar +aT +av +bj +bc +ae +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(82,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ac +ac +ac +ac +ae +ah +au +ai +aq +ar +bc +av +ar +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +oy +oy +ab +oN +oN +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 +"} +(83,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ac +ac +ac +ac +af +ao +av +aq +ai +am +ar +bk +al +ae +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(84,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ac +ac +ac +ac +ad +ap +aw +ar +aq +aq +ar +al +aq +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dA +dA +dA +dA +dA +dA +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +dA +dA +dA +dA +dA +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(85,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ae +aq +ax +af +aq +ai +ai +aD +ag +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dA +dA +dA +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +dA +dA +dA +dA +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(86,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ad +af +ar +ai +ar +ai +ar +ar +aq +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +ae +ad +ae +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dA +dA +dA +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +dA +dA +dA +dA +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(87,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ae +ag +aq +ai +aq +ai +ar +aq +ae +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ae +ad +dO +aj +af +ae +ac +ac +ac +ac +ac +ac +ac +ac +dA +dA +dA +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +dA +dA +dA +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(88,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +af +ae +ar +aq +am +ar +ai +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ad +ae +ag +aL +dS +ar +af +ac +ac +ac +ac +ac +ac +dA +dA +dA +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +dA +dA +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(89,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +af +ae +ai +ar +aq +ae +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +aj +ar +am +ai +ah +ad +ac +ac +ac +ac +ac +dA +dA +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +dA +dA +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(90,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +af +af +ad +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ad +ae +af +aq +ai +ar +aj +ae +ad +ac +ac +ac +ac +dA +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +dA +dA +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(91,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ae +am +am +ae +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ae +ae +ar +ak +ai +ah +ae +af +ad +ac +ac +ac +ac +dA +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +dA +dA +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(92,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +af +ai +aq +ad +ae +ac +ad +ae +af +ae +af +ad +ae +ae +af +ai +aq +ae +af +ad +ae +ac +ac +ac +ac +dA +dA +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +dA +dA +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(93,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ac +ac +ac +ac +ac +ac +ac +ad +ar +ar +ai +af +af +ae +ar +ai +ar +aq +ai +ai +af +ad +ai +af +ae +ac +ac +ac +ac +ac +ac +ac +dA +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +dA +dA +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(94,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ae +ae +ai +ai +aq +af +ai +ar +aq +ai +ar +aq +am +ar +ai +aq +ad +ac +ac +ac +ac +ac +ac +ac +ac +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +dA +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(95,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ac +ad +af +ae +ad +ac +ac +ac +ad +af +aq +am +aq +ar +ai +af +ae +af +ae +ar +aq +ar +ae +ad +ac +ac +ac +ac +ac +ac +ac +dA +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +dA +dA +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(96,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ad +af +ah +aj +ae +af +ae +ad +ae +af +ar +aq +ai +aq +ae +ad +bl +bl +ad +af +ai +aq +af +ac +ac +ac +ac +ac +ac +ac +dA +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +dA +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(97,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ae +ag +ai +ak +ai +ad +af +ar +ai +aq +ai +ar +ar +af +ad +bl +bl +bl +ae +ar +ar +ai +ae +ac +ac +ac +ac +ac +ac +ac +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +dA +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(98,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ad +ah +ai +al +am +ar +ai +aq +af +ae +aq +af +ae +af +bl +bl +bl +bl +af +ai +aq +af +ad +ac +ac +ac +ac +ac +ac +dA +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +lc +lA +lA +lA +lc +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(99,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ae +af +af +aj +an +ad +af +ae +ad +ad +ai +ad +bl +bl +bl +bl +bl +bl +af +aq +ai +af +ac +ac +ac +ac +ac +ac +dA +dA +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +lc +lV +mp +mG +mV +lV +lc +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +dA +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(100,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ac +ac +ae +af +af +ae +ac +ac +ac +af +aM +af +ae +bl +bl +bl +bl +bl +ad +ai +dd +ad +af +ad +ac +ac +ac +dA +dA +dA +dR +dU +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ld +lW +mb +mc +mb +nf +ld +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +dA +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(101,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +aq +ai +ae +bl +bl +bl +bl +bl +ae +ar +aq +ar +ai +af +ae +af +ac +dA +dA +dW +dP +dT +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +eI +eJ +eJ +eJ +eI +eI +eI +eJ +eI +ba +ba +ld +lX +mq +mr +mW +lX +ld +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(102,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ad +af +ae +ar +ar +af +ad +bl +bl +bl +bl +af +af +ai +aq +aq +ai +ar +ad +af +dP +dR +dV +dT +dU +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +eI +eI +eI +eJ +eI +eJ +eJ +ba +ba +ba +eJ +hK +eX +fu +iE +fu +jp +jS +eI +ba +ba +ld +ld +ld +mH +ld +ld +ld +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +dA +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(103,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ad +ae +aJ +ai +ar +am +ag +ae +bl +bl +bl +ad +af +ai +ar +ae +af +ai +aq +ar +ad +dQ +dT +dX +dU +dX +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +eI +eS +fq +fL +fL +gw +eJ +eI +eJ +eI +eI +hL +hW +ea +ea +dZ +dZ +fb +eJ +ba +ba +ld +lZ +mr +mr +mr +lZ +ld +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +dA +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(104,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ac +ac +ac +ac +ac +ac +af +aE +aK +ak +ai +ag +an +af +bl +bl +bl +ae +ai +aq +af +ae +ad +af +ai +am +ad +dQ +dU +dX +dT +dU +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +eJ +eT +fr +fM +gf +gx +eI +hd +fu +hp +ft +fu +hf +dZ +iF +iZ +dZ +fQ +eJ +hI +ba +ld +ma +mc +mr +mc +ng +ld +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(105,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +af +aj +aL +aq +ao +an +af +ad +bl +bl +bl +af +ar +ae +af +ac +ac +ae +af +ad +af +dR +dV +dU +dX +dU +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +eJ +eU +fb +fN +fN +gy +eI +fb +ea +ea +dZ +dZ +ea +ea +iG +dZ +ea +jT +kt +hI +ba +lA +mb +ms +mI +ms +mb +lA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(106,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ae +ad +af +ai +af +af +ae +bl +bl +bl +bl +ad +aq +af +ad +ac +ac +ac +ac +ac +dA +dA +dR +dT +dU +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +eJ +eV +fs +fO +gg +gz +eI +fb +ea +hq +hB +hB +hB +hB +hC +ea +jq +jU +ku +io +ba +ld +mc +mt +mJ +mt +mc +ld +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(107,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ae +aq +ae +bl +bl +bl +bl +bl +bl +ae +ai +ai +ae +ac +ac +ac +ac +ac +dA +dA +dP +dX +dT +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +eI +eW +ft +fP +gh +gA +eJ +he +ea +hr +hB +hC +hX +ip +hB +dZ +jr +jU +kv +io +ba +ld +md +ms +mI +ms +nh +ld +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +dA +ac +ac +ac +ac +ac +ac +ac +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 +"} +(108,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ad +aq +af +bl +bl +bl +bl +bl +bl +ae +af +am +af +ac +ac +ac +ac +dA +dA +dR +dR +dU +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +eJ +eI +eJ +fQ +eJ +eJ +eI +fb +ea +hs +hB +hM +hY +iq +iH +ea +js +jV +ku +io +ba +lA +mc +mc +mr +mc +mc +lA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +dA +ac +ac +ac +ac +ac +ac +ac +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 +"} +(109,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ae +am +ad +bl +bl +bl +bl +bl +bl +bl +ad +aq +ae +ac +ac +ac +ac +dA +dA +dR +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +eI +eX +fu +fR +fu +fu +gN +hf +dZ +ht +hC +hB +hZ +hC +iI +ea +jt +jV +kw +hI +lc +ld +me +mb +mr +mb +me +ld +lc +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +dA +ac +ac +ac +ac +ac +ac +ac +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 +"} +(110,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +af +aq +ae +bl +bl +bl +bl +bl +bl +bl +af +ar +af +ac +ac +ac +ac +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +eI +eY +ea +ea +ea +dZ +dZ +ea +ea +hu +hD +hu +ia +hB +iJ +ea +ju +jU +ku +io +ld +lD +lD +mu +mr +mY +lD +lD +ld +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +dA +ac +ac +ac +ac +ac +ac +ac +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 +"} +(111,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ae +ai +af +bl +bl +bl +bl +bl +bl +af +ae +ai +ae +ac +ac +ac +ac +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +eI +eZ +ea +fS +gi +gB +gO +hg +fV +hv +gR +hu +ib +ir +iK +dZ +jr +jW +kv +io +lc +lE +mf +ld +mK +ld +lE +mf +lc +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +ac +ac +ac +ac +ac +ac +ac +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 +"} +(112,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +af +ar +ae +bl +bl +bl +bl +bl +ad +ae +ai +aq +ad +ac +ac +ac +ac +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +eJ +fa +dZ +fT +eu +gC +gP +hh +fV +hv +gR +hu +ic +is +iL +ea +jv +jV +kv +io +ba +ba +ba +io +mL +io +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +ac +ac +ac +ac +ac +ac +ac +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 +"} +(113,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ad +af +aq +af +ad +ae +af +af +ad +af +aq +ar +ae +af +ac +ac +ac +dA +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dZ +dZ +ea +ea +fb +ea +fU +gj +gD +gQ +hi +fV +hv +gR +hu +id +it +iM +ea +jw +jX +ku +hI +ba +ba +ba +mv +lM +io +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +dA +ac +ac +ac +ac +ac +ac +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 +"} +(114,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ad +af +ar +ai +al +ae +af +ai +ar +bW +ai +ar +af +ad +ac +ac +ac +ac +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ea +ed +et +ea +fc +ea +fV +gk +gE +fV +fV +fV +hv +hE +eI +ea +dZ +dZ +ea +hJ +jY +kx +hI +hI +io +io +io +mM +io +io +io +hI +hI +hI +hI +nW +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +dA +ac +ac +ac +ac +ac +ac +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 +"} +(115,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ae +an +aM +aq +ai +ar +aq +aq +ad +af +ae +af +ae +ac +ac +ac +ac +ac +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +eb +ee +eu +eK +fd +fv +fW +gl +gF +gR +gR +gR +fk +hj +hN +ea +iu +iN +eI +jx +jZ +ky +kN +lf +lF +lF +lF +jG +lF +lF +no +mM +nA +nK +mM +dM +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +dA +ac +ac +ac +ac +ac +ac +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 +"} +(116,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +af +af +ah +ar +am +ai +ag +af +ae +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +eb +ef +ev +eL +fe +fw +fX +gm +gG +gS +hj +hj +hj +hF +hN +ie +hj +hj +ie +jy +jU +jE +jG +lg +lG +mg +mw +mN +mg +mg +mg +mM +lM +lN +mM +dM +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +ac +ac +ac +ac +ac +ac +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 +"} +(117,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ae +ag +ar +ai +ao +an +af +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dY +ea +ea +dZ +ea +ea +fx +dZ +ea +dZ +dZ +oT +oU +hw +hw +hN +ea +iv +iO +eI +jz +ka +jF +kO +lh +lH +io +io +hI +io +io +io +hI +nB +nL +hI +nW +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +ac +ac +ac +ac +ac +ac +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 +"} +(118,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +as +af +ae +af +ad +ae +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ea +ff +fy +eu +gn +gH +dZ +ea +fV +hx +hG +eI +dZ +ea +ea +ea +hI +jZ +kz +hJ +hJ +hJ +io +ba +mO +ba +ba +ba +hI +hI +hI +hI +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +ac +ac +ac +ac +ac +ac +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 +"} +(119,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ea +fg +fy +eu +go +fk +gT +ea +hm +hy +hj +hj +if +dZ +ba +ba +hJ +kb +kA +hI +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +ac +ac +ac +ac +ac +ac +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 +"} +(120,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dZ +fh +fz +fY +gp +fk +gU +dZ +hn +hj +hj +hj +ig +dZ +ba +ba +io +kc +kB +jC +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +dA +ac +ac +ac +ac +ac +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 +"} +(121,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dZ +dZ +ea +ea +fi +fz +ee +gq +gI +gV +ea +eK +hz +hj +hF +ih +ea +ba +ba +io +kd +kC +kP +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +dA +ac +ac +ac +ac +ac +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 +"} +(122,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ea +eg +ew +eI +fj +fA +fZ +eJ +eI +eJ +ea +ho +hA +hH +hO +ii +ea +ba +ba +io +ke +kD +kQ +li +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +dA +ac +ac +ac +ac +ac +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 +"} +(123,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dZ +eh +eh +eM +fk +fB +fk +gr +gJ +gW +ea +dZ +ea +ea +ea +dZ +ea +ba +hV +hI +kf +kE +hI +lj +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +dA +ac +ac +ac +ac +ac +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 +"} +(124,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dZ +ei +ex +eN +fl +fC +fk +fk +fk +gX +dZ +ba +ba +ba +ba +ba +ba +ba +ba +jA +kg +kE +io +ba +ba +ba +ba +ba +ba +ba +np +ba +nC +ja +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +dA +ac +ac +ac +ac +ac +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 +"} +(125,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ea +ej +ey +eO +fm +fD +ga +gs +gK +gY +dZ +ba +ba +ba +ba +ba +ba +ba +ja +jB +kh +kF +io +ba +ba +ba +ba +ba +ba +ba +hI +jC +nD +jC +jC +jC +jC +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +dA +ac +ac +ac +ac +ac +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 +"} +(126,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dA +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dZ +ek +ez +ez +fn +fE +gb +gt +gL +gZ +ea +ba +ba +ba +ba +ba +ba +ba +ba +jC +ki +kG +io +ba +ba +ba +ba +ba +ba +ba +hI +nw +nE +nM +nS +nX +jC +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +dA +ac +ac +ac +ac +ac +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 +"} +(127,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aU +aU +aU +aU +aU +aU +aU +aU +aU +aU +aU +aU +ac +ac +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ea +ea +eA +eq +eD +fF +gc +gu +eA +ea +ea +ba +ba +ba +ba +ba +ba +hJ +hI +hI +kj +kH +hJ +hJ +hJ +hI +hJ +hI +hI +hJ +hJ +nx +nF +kE +kB +kC +jC +jC +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +dA +ac +ac +ac +ac +ac +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 +"} +(128,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aU +bv +bF +aU +bX +bX +cC +bX +bX +de +dl +aU +ac +ac +dA +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ea +el +er +eE +en +fG +eG +gv +gM +ha +ea +ba +ba +ba +ba +ba +hV +hJ +jb +jD +jU +jF +kS +lk +lI +lI +lI +mP +mZ +ni +nq +kG +nG +kE +kE +kE +oa +jC +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +dA +ac +ac +ac +ac +ac +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 +"} +(129,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +aU +aU +aU +bw +aU +aU +bY +cn +cD +cn +cn +df +dm +aU +aU +aU +aU +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ea +em +eB +eG +eR +fH +gd +eC +eB +eE +ea +ba +ba +ba +ba +ba +ba +io +jc +jE +jV +jG +kR +ll +lJ +mh +mx +mQ +kF +nj +mh +ny +mx +nN +lJ +nY +ob +jC +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +dA +ac +ac +ac +ac +ac +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 +"} +(130,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +aU +bd +bm +bx +bG +aU +bZ +co +cE +cQ +cV +cE +dn +aU +dw +dB +aU +dL +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ea +en +eC +eP +eE +fI +eE +eD +eC +eq +ea +ba +ba +ba +ba +ba +ba +io +jd +jF +jU +hI +hI +lm +hJ +hI +hI +mR +hJ +hJ +kV +hI +hJ +nO +hJ +hI +hI +hJ +lj +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +dA +ac +ac +ac +ac +ac +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 +"} +(131,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +aU +be +bn +bx +bH +bO +ca +cp +ca +cR +cW +ca +ca +du +dx +dC +dI +dM +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ec +eo +eD +eq +eq +fJ +eE +eq +en +hb +ec +ba +ba +ba +ba +ba +ba +hJ +je +jG +jU +hJ +kT +ln +lK +hJ +my +mS +na +hJ +lM +hJ +nH +nP +nT +hI +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +dA +ac +ac +ac +ac +ac +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 +"} +(132,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +aU +aU +bo +by +bI +bP +cb +cq +cF +cS +cX +cF +do +aU +dy +dD +aU +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ea +ep +eE +eP +eD +eD +eE +eq +eQ +hc +ea +ba +ba +hI +hI +hJ +hJ +hJ +jf +jF +jU +hI +kU +lo +lL +hJ +mz +mT +nb +hJ +nr +hI +nI +ln +nU +hJ +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +dA +ac +ac +ac +ac +ac +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 +"} +(133,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aU +bp +bz +bJ +aU +bP +cr +cG +aU +cY +dg +dp +aU +aU +aU +aU +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ea +eq +eF +eQ +fo +eC +ge +eq +en +eq +ea +ba +ba +hI +hP +hJ +iw +hJ +jg +jF +kk +hI +hJ +hJ +hI +hI +hJ +hJ +hJ +hI +lp +hI +hJ +hJ +hJ +hJ +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +ac +ac +ac +ac +ac +ac +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 +"} +(134,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +at +at +at +at +at +at +at +at +at +at +cc +cs +cH +aU +aU +aU +aU +aU +ac +ac +dA +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ea +er +eG +eR +en +eQ +eC +eR +eB +eq +ea +ba +ba +hJ +hQ +hI +ix +hJ +hI +jH +kl +kI +kV +lp +lM +lN +lN +lN +lO +nk +ns +hJ +lM +lN +hI +dM +ba +ba +ba +dM +dM +dM +od +ba +ba +ba +ba +ba +ba +ba +dA +dA +ac +ac +ac +ac +ac +ac +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 +"} +(135,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +at +ay +aF +aN +aV +bf +bq +bA +bK +at +cd +ca +cI +aU +cZ +dh +dq +aU +ac +ac +ac +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ea +es +eH +eB +fp +fK +eH +fo +eD +eq +ea +ba +ba +hI +hR +ij +im +iz +jh +jF +jG +kJ +hJ +hJ +lN +mi +mA +mU +nc +nl +nt +nz +lN +nQ +nV +nZ +nZ +nZ +nZ +nZ +oc +dM +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +ac +ac +ac +ac +ac +ac +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 +"} +(136,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +at +az +aG +aO +aW +aV +br +bB +bL +at +ce +ca +cJ +cT +da +di +dr +aU +ac +ac +ac +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ea +ea +ea +ea +ea +ec +ea +ea +ea +ea +ea +ba +ba +hI +hS +ik +im +im +hJ +jI +jG +jF +kW +hJ +lO +hI +hJ +hI +hI +mM +hI +hI +nJ +nR +hJ +dM +ba +ba +ba +dM +dM +dM +ba +oe +ba +ba +ba +ba +ba +ba +dA +dA +ac +ac +ac +ac +ac +ac +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 +"} +(137,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +at +aA +aH +aP +aX +bg +bs +bC +bC +bQ +cf +ct +cK +aU +aU +aU +aU +aU +ac +ac +ac +dA +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +hI +hI +hI +iy +hJ +hI +jJ +jG +jG +kX +hI +lM +hI +ba +ba +hI +nm +lP +hI +hJ +hJ +hJ +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +ac +ac +ac +ac +ac +ac +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 +"} +(138,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +at +aB +aI +aQ +aY +bh +bt +bD +bM +at +cg +cu +cI +cU +db +dj +ds +aU +ac +ac +ac +ac +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +hI +hT +il +iz +iP +hI +jK +jF +jF +kY +hJ +lP +hI +ba +ba +hI +mM +hI +hI +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +ac +ac +ac +ac +ac +ac +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 +"} +(139,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +at +aC +aB +aR +aZ +bi +bu +bE +bN +at +ch +cv +cL +aU +dc +dk +dt +aU +ac +ac +ac +ac +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +hI +hU +im +im +iP +hI +jL +jF +jG +kZ +hJ +lN +hJ +ba +ba +dM +dM +nu +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +ac +ac +ac +ac +ac +ac +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 +"} +(140,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +at +at +at +at +at +at +at +at +at +at +at +cw +at +at +aU +aU +aU +aU +ac +ac +ac +ac +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +hI +hI +in +iA +hI +hI +jM +km +km +jM +hJ +kV +hJ +hJ +hJ +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +dA +ac +ac +ac +ac +ac +ac +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 +"} +(141,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +at +bR +ci +cx +cM +at +ac +ac +ac +ac +ac +ac +ac +ac +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +hI +hJ +hJ +hJ +ji +jk +jk +jk +la +lq +jk +mj +mB +hJ +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +dA +ac +ac +ac +ac +ac +ac +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 +"} +(142,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +at +bS +cj +cy +cN +at +ac +ac +ac +ac +ac +ac +ac +ac +ac +ba +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +io +iB +iQ +jj +jk +jk +jk +jN +lr +jj +mj +mB +hI +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +ac +ac +ac +ac +ac +ac +ac +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 +"} +(143,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +at +bT +ck +cz +cO +at +ac +ac +ac +ac +ac +ac +ac +ac +ba +ba +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +io +iC +iR +jj +jk +jk +kK +jk +jk +jk +jj +mC +hI +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +ac +ac +ac +ac +ac +ac +ac +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 +"} +(144,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +at +bU +cl +cA +cN +at +ac +ac +ac +ac +ac +ac +ac +ac +ba +ac +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +io +iD +iS +jk +jN +jk +kL +jk +ls +jk +mk +hI +hJ +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +ac +ac +ac +ac +ac +ac +ac +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 +"} +(145,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +at +bV +cm +cB +cP +at +ac +ac +ac +ac +ac +ac +ac +ba +ba +ac +dA +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +hV +hJ +hJ +iT +jl +jl +jl +jl +jl +hJ +lQ +hJ +hJ +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +ac +ac +ac +ac +ac +ac +ac +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 +"} +(146,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +at +at +at +at +at +at +ac +ac +ac +ac +ac +ac +ba +ba +ac +ac +ac +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +hJ +hJ +jm +jO +kn +jO +jO +hJ +lR +lR +hJ +hJ +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +dA +ac +ac +ac +ac +ac +ac +ac +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 +"} +(147,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ba +ba +ac +ac +ac +ac +dA +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +hJ +iU +iX +iX +ko +iX +iX +lt +lR +lS +mD +io +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(148,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ba +ba +ac +ac +ac +ac +ac +ac +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +hI +iV +jn +jP +kp +iX +iX +iX +lS +lR +mE +io +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +dA +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(149,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ba +ac +ac +ac +ac +ac +ac +ac +dA +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +hI +iW +iX +jQ +kq +ko +iX +iX +lR +lR +mF +io +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(150,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ba +ba +ac +ac +ac +ac +ac +ac +ac +ac +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +hJ +iX +iX +jn +kr +iX +lb +iX +lT +ml +hI +hI +lj +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +dA +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(151,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ba +ba +ba +ba +ba +ba +ba +ba +ac +ac +ac +ac +ac +ac +ac +dA +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +hI +iY +jo +jR +ks +kM +hJ +lu +hJ +hJ +hI +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(152,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ba +ba +ac +ac +ba +ac +ac +ac +ac +ac +ac +ac +ac +dA +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +hJ +hJ +hI +io +hJ +hJ +hJ +lv +lv +mm +hJ +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +dA +dA +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(153,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ba +ba +ac +ac +ac +ba +ac +ac +ac +ac +ac +ac +ac +ac +dA +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +hI +lw +lv +mn +hJ +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +dA +dA +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(154,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ba +ac +ac +ac +ac +ac +ac +ac +ba +ba +ba +ac +ac +ac +ac +ba +ac +ac +ac +ac +ac +ac +ac +ac +ac +dA +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +hI +lx +lU +mo +hI +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(155,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +aS +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ac +ac +ac +ac +ba +ba +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +hJ +hJ +hJ +hI +hI +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +dA +dA +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(156,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ba +ac +ac +ac +ac +ac +ac +ac +ac +ba +dE +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dA +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +dA +dA +dA +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(157,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ba +ac +ac +ac +ac +ac +ac +ac +ac +ba +dF +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dA +dA +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +dA +dA +dA +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(158,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ba +ac +ac +ac +ac +ac +ac +ac +ac +ba +ba +ba +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dA +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +dA +dA +dA +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(159,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ba +ac +ac +ac +ac +ac +ac +ac +ac +ba +ba +ba +dN +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dA +dA +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +dA +dA +dA +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(160,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ba +ba +dE +ba +ba +ba +ac +ac +ac +ac +ac +ac +ac +ac +ac +dA +dA +dA +dA +dA +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +dA +dA +dA +dA +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(161,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ba +ba +ba +ba +ba +ba +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +ba +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(162,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dv +ba +dG +ba +ba +ba +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(163,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dH +dJ +ba +ba +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +dA +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(164,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ba +dK +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(165,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(166,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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(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 +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(174,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(175,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(176,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(177,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(178,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(179,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(180,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(181,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(182,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(183,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(184,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(185,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(186,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(187,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(188,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(189,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(190,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(191,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(192,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(193,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(194,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(195,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(196,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(197,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(198,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(199,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(200,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(201,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(202,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(203,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(204,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(205,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(206,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(207,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(208,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(209,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(210,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(211,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(212,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(213,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(214,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(215,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(216,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(217,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(218,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(219,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(220,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(221,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(222,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(223,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(224,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(225,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(226,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(227,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(228,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(229,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(230,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(231,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(232,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(233,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(234,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(235,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(236,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(237,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(238,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(239,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(240,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(241,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(242,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(243,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(244,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(245,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(246,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(247,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(248,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} diff --git a/_maps/RandomZLevels/research.dmm b/_maps/RandomZLevels/research.dmm new file mode 100644 index 0000000..243ef86 --- /dev/null +++ b/_maps/RandomZLevels/research.dmm @@ -0,0 +1,70451 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/open/space, +/area/space) +"ab" = ( +/turf/closed/mineral, +/area/space) +"ac" = ( +/turf/open/floor/plating/asteroid/airless, +/area/space) +"ad" = ( +/turf/closed/mineral, +/area/awaymission/research/exterior) +"ae" = ( +/turf/open/floor/plating/asteroid/airless, +/area/awaymission/research/exterior) +"af" = ( +/mob/living/simple_animal/hostile/syndicate/ranged/space, +/turf/open/floor/plating/asteroid/airless, +/area/awaymission/research/exterior) +"ag" = ( +/turf/open/floor/plating/asteroid/airless, +/turf/closed/wall/mineral/plastitanium{ + dir = 8; + icon_state = "diagonalWall3" + }, +/area/awaymission/research/interior/engineering) +"ah" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_r"; + dir = 1 + }, +/turf/open/space, +/area/awaymission/research/interior/engineering) +"ai" = ( +/obj/machinery/door/airlock/external, +/turf/open/floor/plating, +/area/awaymission/research/interior/engineering) +"aj" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_l"; + dir = 1 + }, +/turf/open/space, +/area/awaymission/research/interior/engineering) +"ak" = ( +/turf/open/floor/plating/asteroid/airless, +/turf/closed/wall/mineral/plastitanium{ + dir = 1; + icon_state = "diagonalWall3" + }, +/area/awaymission/research/interior/engineering) +"al" = ( +/turf/closed/wall/mineral/plastitanium, +/area/awaymission/research/interior/engineering) +"am" = ( +/obj/structure/window/reinforced, +/obj/structure/shuttle/engine/heater{ + icon_state = "heater"; + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/awaymission/research/interior/engineering) +"an" = ( +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/research/interior/engineering) +"ao" = ( +/obj/structure/window/reinforced, +/obj/structure/shuttle/engine/heater{ + icon_state = "heater"; + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/awaymission/research/interior/engineering) +"ap" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/research/interior/engineering) +"aq" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/research/interior/engineering) +"ar" = ( +/turf/closed/wall/r_wall, +/area/awaymission/research/interior/engineering) +"as" = ( +/mob/living/simple_animal/hostile/syndicate/ranged, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/research/interior/engineering) +"at" = ( +/obj/machinery/suit_storage_unit/engine, +/turf/open/floor/plating, +/area/awaymission/research/interior/engineering) +"au" = ( +/turf/open/floor/plating, +/area/awaymission/research/interior/engineering) +"av" = ( +/obj/item/weapon/shard{ + icon_state = "small" + }, +/obj/structure/frame/machine, +/obj/item/weapon/circuitboard/machine/smes, +/obj/item/weapon/stock_parts/cell/high, +/obj/item/weapon/stock_parts/cell/high/empty, +/turf/open/floor/plating, +/area/awaymission/research/interior/engineering) +"aw" = ( +/obj/item/weapon/shard{ + icon_state = "small" + }, +/turf/open/floor/plasteel/whiteyellow/side, +/area/awaymission/research/interior/engineering) +"ax" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-20"; + layer = 4.1; + pixel_y = 3 + }, +/turf/open/floor/plasteel/whiteyellow/corner{ + tag = "icon-whiteyellowcorner (WEST)"; + dir = 8 + }, +/area/awaymission/research/interior/engineering) +"ay" = ( +/obj/structure/chair{ + dir = 8 + }, +/mob/living/simple_animal/hostile/syndicate, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/research/interior/engineering) +"az" = ( +/obj/effect/gibspawner/human, +/obj/item/weapon/stock_parts/cell/high, +/turf/open/floor/plating, +/area/awaymission/research/interior/engineering) +"aA" = ( +/obj/item/stack/sheet/plasteel, +/obj/item/weapon/stock_parts/cell/high, +/turf/open/floor/plating, +/area/awaymission/research/interior/engineering) +"aB" = ( +/turf/open/floor/plasteel/whiteyellow/side{ + tag = "icon-whiteyellow (WEST)"; + dir = 8 + }, +/area/awaymission/research/interior/engineering) +"aC" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/awaymission/research/interior/engineering) +"aD" = ( +/obj/machinery/power/port_gen/pacman, +/turf/open/floor/plating, +/area/awaymission/research/interior/engineering) +"aE" = ( +/obj/effect/gibspawner/human, +/turf/open/floor/plating, +/area/awaymission/research/interior/engineering) +"aF" = ( +/obj/item/stack/rods, +/obj/item/stack/sheet/metal, +/obj/item/weapon/stock_parts/cell/high/empty, +/turf/open/floor/plating, +/area/awaymission/research/interior/engineering) +"aG" = ( +/obj/item/weapon/stock_parts/cell/high, +/turf/open/floor/plating, +/area/awaymission/research/interior/engineering) +"aH" = ( +/turf/closed/wall/r_wall, +/area/awaymission/research/interior/maint) +"aI" = ( +/obj/structure/girder, +/turf/open/floor/plating, +/area/awaymission/research/interior/engineering) +"aJ" = ( +/obj/machinery/computer/pod{ + id = "spacebattlepod2"; + name = "Hull Door Control" + }, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/research/interior/engineering) +"aK" = ( +/obj/effect/mob_spawn/human/syndicatesoldier{ + brute_damage = 200 + }, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/research/interior/engineering) +"aL" = ( +/obj/structure/table, +/obj/item/weapon/c4, +/obj/item/weapon/c4, +/obj/item/weapon/storage/toolbox/syndicate, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/research/interior/engineering) +"aM" = ( +/obj/item/weapon/stock_parts/cell/high/empty, +/turf/open/floor/plating, +/area/awaymission/research/interior/engineering) +"aN" = ( +/obj/item/weapon/shard{ + icon_state = "small" + }, +/obj/item/stack/cable_coil{ + amount = 1 + }, +/turf/open/floor/plasteel/whiteyellow, +/area/awaymission/research/interior/engineering) +"aO" = ( +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"aP" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"aQ" = ( +/turf/open/floor/plasteel/whiteyellow/corner, +/area/awaymission/research/interior/engineering) +"aR" = ( +/obj/item/stack/sheet/plasteel, +/obj/item/stack/cable_coil{ + amount = 1 + }, +/turf/open/floor/plating, +/area/awaymission/research/interior/engineering) +"aS" = ( +/turf/open/floor/plasteel{ + icon_state = "damaged4" + }, +/turf/closed/wall/mineral/plastitanium{ + icon_state = "diagonalWall3" + }, +/area/awaymission/research/interior/engineering) +"aT" = ( +/mob/living/simple_animal/hostile/syndicate/melee, +/turf/open/floor/plating, +/area/awaymission/research/interior/engineering) +"aU" = ( +/turf/open/floor/plasteel{ + icon_state = "damaged1" + }, +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" + }, +/area/awaymission/research/interior/engineering) +"aV" = ( +/obj/item/stack/sheet/plasteel, +/turf/open/floor/plasteel/whiteyellow, +/area/awaymission/research/interior/engineering) +"aW" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/tank_dispenser, +/turf/open/floor/plasteel/whiteyellow/side{ + tag = "icon-whiteyellow (WEST)"; + dir = 8 + }, +/area/awaymission/research/interior/engineering) +"aX" = ( +/obj/item/stack/sheet/mineral/bananium{ + amount = 50 + }, +/turf/open/floor/plating/asteroid/airless, +/area/space) +"aY" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"aZ" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -32; + tag = "icon-alarm0 (EAST)" + }, +/turf/open/floor/plasteel/whiteyellow/side{ + tag = "icon-whiteyellow (EAST)"; + dir = 4 + }, +/area/awaymission/research/interior/engineering) +"ba" = ( +/turf/open/floor/plasteel/whiteyellow, +/area/awaymission/research/interior/engineering) +"bb" = ( +/obj/item/weapon/shard{ + icon_state = "small" + }, +/turf/open/floor/plasteel{ + icon_state = "damaged4" + }, +/area/awaymission/research/interior/engineering) +"bc" = ( +/turf/open/floor/plasteel{ + icon_state = "damaged5" + }, +/turf/closed/wall/mineral/plastitanium{ + icon_state = "diagonalWall3" + }, +/area/awaymission/research/interior/engineering) +"bd" = ( +/turf/open/floor/plasteel{ + icon_state = "damaged3" + }, +/area/awaymission/research/interior/engineering) +"be" = ( +/obj/item/stack/rods, +/obj/item/ammo_casing/c45, +/turf/open/floor/plasteel{ + icon_state = "damaged5" + }, +/area/awaymission/research/interior/engineering) +"bf" = ( +/turf/open/floor/plasteel{ + icon_state = "damaged3" + }, +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" + }, +/area/awaymission/research/interior/engineering) +"bg" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel{ + icon_state = "damaged5" + }, +/area/awaymission/research/interior/engineering) +"bh" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/plasteel/whiteyellow, +/area/awaymission/research/interior/engineering) +"bi" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/electrical, +/obj/item/clothing/gloves/color/yellow, +/turf/open/floor/plasteel/whiteyellow/side{ + tag = "icon-whiteyellow (WEST)"; + dir = 8 + }, +/area/awaymission/research/interior/engineering) +"bj" = ( +/obj/machinery/light/small, +/turf/open/floor/plating/asteroid/airless, +/area/awaymission/research/exterior) +"bk" = ( +/obj/item/weapon/bikehorn, +/turf/open/floor/plating/asteroid/airless, +/area/space) +"bl" = ( +/turf/closed/wall/r_wall, +/area/awaymission/research/interior/gateway) +"bm" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/power/apc{ + auto_name = 1; + cell_type = 9000; + dir = 4; + name = "Engineering APC"; + pixel_x = 27; + pixel_y = 2 + }, +/turf/open/floor/plating, +/area/awaymission/research/interior/engineering) +"bn" = ( +/turf/open/floor/plasteel/whiteyellow/side{ + tag = "icon-whiteyellow (EAST)"; + dir = 4 + }, +/area/awaymission/research/interior/engineering) +"bo" = ( +/obj/item/weapon/screwdriver, +/obj/item/stack/cable_coil{ + amount = 1 + }, +/obj/item/ammo_casing/c45, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel/whiteyellow, +/area/awaymission/research/interior/engineering) +"bp" = ( +/obj/effect/mob_spawn/human/engineer{ + brute_damage = 200 + }, +/turf/open/floor/plasteel/whiteyellow, +/area/awaymission/research/interior/engineering) +"bq" = ( +/obj/item/stack/rods, +/obj/item/ammo_casing/c45, +/obj/item/ammo_casing/c45, +/turf/open/floor/plasteel/whiteyellow, +/area/awaymission/research/interior/engineering) +"br" = ( +/obj/item/weapon/shard{ + icon_state = "small" + }, +/turf/open/floor/plasteel{ + icon_state = "damaged5" + }, +/area/awaymission/research/interior/engineering) +"bs" = ( +/obj/item/ammo_casing/c45, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/plasteel{ + icon_state = "damaged5" + }, +/area/awaymission/research/interior/engineering) +"bt" = ( +/obj/effect/gibspawner/human, +/obj/item/stack/cable_coil{ + amount = 1 + }, +/obj/item/ammo_casing/c45, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/plasteel/whiteyellow, +/area/awaymission/research/interior/engineering) +"bu" = ( +/obj/item/stack/rods, +/turf/open/floor/plasteel/whiteyellow, +/area/awaymission/research/interior/engineering) +"bv" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/plasteel/whiteyellow, +/area/awaymission/research/interior/engineering) +"bw" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical, +/turf/open/floor/plasteel/whiteyellow/side{ + tag = "icon-whiteyellow (WEST)"; + dir = 8 + }, +/area/awaymission/research/interior/engineering) +"bx" = ( +/obj/machinery/door/airlock/external{ + req_access_txt = "13" + }, +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"by" = ( +/obj/item/clothing/mask/gas/clown_hat, +/turf/open/floor/plating/asteroid/airless, +/area/space) +"bz" = ( +/turf/open/floor/plasteel/black, +/area/awaymission/research/interior/gateway) +"bA" = ( +/obj/machinery/gateway{ + dir = 9 + }, +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (NORTHWEST)"; + dir = 9 + }, +/area/awaymission/research/interior/gateway) +"bB" = ( +/obj/machinery/gateway{ + dir = 1 + }, +/turf/open/floor/plasteel/darkwarning{ + dir = 1 + }, +/area/awaymission/research/interior/gateway) +"bC" = ( +/obj/machinery/gateway{ + dir = 5 + }, +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (NORTHEAST)"; + dir = 5 + }, +/area/awaymission/research/interior/gateway) +"bD" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"bE" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/turf/open/floor/plasteel/whiteyellow/corner{ + tag = "icon-whiteyellowcorner (EAST)"; + dir = 4 + }, +/area/awaymission/research/interior/engineering) +"bF" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/turf/open/floor/plasteel/whiteyellow/side{ + tag = "icon-whiteyellow (NORTH)"; + dir = 1 + }, +/area/awaymission/research/interior/engineering) +"bG" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/plasteel/whiteyellow/side{ + tag = "icon-whiteyellow (NORTH)"; + dir = 1 + }, +/area/awaymission/research/interior/engineering) +"bH" = ( +/obj/item/ammo_casing/c9mm, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel/whiteyellow/side{ + tag = "icon-whiteyellow (NORTH)"; + dir = 1 + }, +/area/awaymission/research/interior/engineering) +"bI" = ( +/obj/effect/mob_spawn/human/syndicatesoldier{ + brute_damage = 200 + }, +/obj/item/ammo_casing/c45, +/obj/item/ammo_casing/c45, +/obj/item/ammo_casing/c45, +/obj/item/ammo_casing/c45, +/turf/open/floor/plasteel/whiteyellow/side{ + tag = "icon-whiteyellow (NORTHEAST)"; + dir = 5 + }, +/area/awaymission/research/interior/engineering) +"bJ" = ( +/obj/item/ammo_casing/c45, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/plasteel/whiteyellow, +/area/awaymission/research/interior/engineering) +"bK" = ( +/obj/item/weapon/wrench, +/turf/open/floor/plasteel/whiteyellow/side{ + tag = "icon-whiteyellow (NORTHWEST)"; + dir = 9 + }, +/area/awaymission/research/interior/engineering) +"bL" = ( +/obj/item/stack/sheet/plasteel, +/turf/open/floor/plasteel/whiteyellow/side{ + tag = "icon-whiteyellow (NORTH)"; + dir = 1 + }, +/area/awaymission/research/interior/engineering) +"bM" = ( +/obj/item/weapon/storage/toolbox/mechanical, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel/whiteyellow/side{ + tag = "icon-whiteyellow (NORTH)"; + dir = 1 + }, +/area/awaymission/research/interior/engineering) +"bN" = ( +/obj/effect/mob_spawn/human/engineer{ + brute_damage = 200 + }, +/turf/open/floor/plasteel/whiteyellow/side{ + tag = "icon-whiteyellow (NORTH)"; + dir = 1 + }, +/area/awaymission/research/interior/engineering) +"bO" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/whiteyellow/corner{ + tag = "icon-whiteyellowcorner (NORTH)"; + dir = 1 + }, +/area/awaymission/research/interior/engineering) +"bP" = ( +/obj/structure/sign/vacuum{ + pixel_x = 32 + }, +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"bQ" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/black, +/area/awaymission/research/interior/gateway) +"bR" = ( +/obj/effect/landmark{ + name = "awaystart" + }, +/turf/open/floor/plasteel/black, +/area/awaymission/research/interior/gateway) +"bS" = ( +/obj/machinery/gateway{ + dir = 8 + }, +/turf/open/floor/plasteel/darkwarning{ + dir = 8 + }, +/area/awaymission/research/interior/gateway) +"bT" = ( +/obj/machinery/gateway/centeraway{ + calibrated = 0 + }, +/turf/open/floor/plasteel/black, +/area/awaymission/research/interior/gateway) +"bU" = ( +/obj/machinery/gateway{ + dir = 4 + }, +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (EAST)"; + dir = 4 + }, +/area/awaymission/research/interior/gateway) +"bV" = ( +/obj/structure/sign/nosmoking_1{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/whiteyellow/side{ + tag = "icon-whiteyellow (EAST)"; + dir = 4 + }, +/area/awaymission/research/interior/engineering) +"bW" = ( +/obj/item/ammo_casing/c45, +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/plasteel/whiteyellow, +/area/awaymission/research/interior/engineering) +"bX" = ( +/obj/effect/mob_spawn/human/engineer{ + brute_damage = 200 + }, +/obj/item/ammo_casing/c45, +/obj/item/ammo_casing/c9mm, +/obj/effect/decal/cleanable/blood, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/plasteel/whiteyellow/side{ + tag = "icon-whiteyellow (WEST)"; + dir = 8 + }, +/area/awaymission/research/interior/engineering) +"bY" = ( +/obj/machinery/gateway{ + dir = 10 + }, +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (SOUTHWEST)"; + dir = 10 + }, +/area/awaymission/research/interior/gateway) +"bZ" = ( +/obj/machinery/gateway, +/obj/effect/landmark{ + name = "awaystart" + }, +/turf/open/floor/plasteel/darkwarning, +/area/awaymission/research/interior/gateway) +"ca" = ( +/obj/machinery/gateway{ + dir = 6 + }, +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (SOUTHEAST)"; + dir = 6 + }, +/area/awaymission/research/interior/gateway) +"cb" = ( +/obj/machinery/power/apc{ + cell_type = 12000; + dir = 4; + name = "Gateway APC"; + pixel_x = 24; + pixel_y = 0 + }, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/turf/open/floor/plasteel/black, +/area/awaymission/research/interior/gateway) +"cc" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"cd" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"ce" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"cf" = ( +/obj/item/ammo_casing/c46x30mm, +/turf/open/floor/plasteel/whiteyellow/side{ + tag = "icon-whiteyellow (EAST)"; + dir = 4 + }, +/area/awaymission/research/interior/engineering) +"cg" = ( +/obj/effect/mob_spawn/human/syndicatesoldier{ + brute_damage = 200 + }, +/turf/open/floor/plasteel{ + icon_state = "damaged3" + }, +/area/awaymission/research/interior/engineering) +"ch" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"ci" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/window/reinforced, +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/black, +/area/awaymission/research/interior/gateway) +"cj" = ( +/obj/structure/window/reinforced, +/obj/effect/landmark{ + name = "awaystart" + }, +/turf/open/floor/plasteel/black, +/area/awaymission/research/interior/gateway) +"ck" = ( +/obj/machinery/door/window/eastright{ + tag = "icon-right"; + icon_state = "right"; + dir = 2 + }, +/obj/effect/landmark{ + name = "awaystart" + }, +/turf/open/floor/plasteel/black, +/area/awaymission/research/interior/gateway) +"cl" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/black, +/area/awaymission/research/interior/gateway) +"cm" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"cn" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"co" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"cp" = ( +/turf/closed/wall/r_wall, +/area/awaymission/research/interior) +"cq" = ( +/obj/machinery/door/airlock/engineering{ + name = "Engine Room"; + req_access_txt = "10" + }, +/turf/open/floor/plasteel/whiteyellow/side{ + tag = "icon-whiteyellow (EAST)"; + dir = 4 + }, +/area/awaymission/research/interior/engineering) +"cr" = ( +/obj/effect/mob_spawn/human/nanotrasensoldier{ + brute_damage = 200 + }, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel{ + icon_state = "damaged4" + }, +/area/awaymission/research/interior) +"cs" = ( +/obj/machinery/door/airlock/engineering{ + name = "Engine Room"; + req_access_txt = "10" + }, +/turf/open/floor/plasteel/whiteyellow/side{ + tag = "icon-whiteyellow (WEST)"; + dir = 8 + }, +/area/awaymission/research/interior/engineering) +"ct" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular, +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -32; + tag = "icon-alarm0 (EAST)" + }, +/turf/open/floor/plasteel/black, +/area/awaymission/research/interior/gateway) +"cu" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/black, +/area/awaymission/research/interior/gateway) +"cv" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/table, +/turf/open/floor/plasteel/black, +/area/awaymission/research/interior/gateway) +"cw" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"cx" = ( +/turf/closed/wall/r_wall, +/area/awaymission/research/interior/genetics) +"cy" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Genetics Maintenance"; + req_access_txt = "9" + }, +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"cz" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/mob/living/simple_animal/hostile/syndicate/ranged, +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"cA" = ( +/obj/item/ammo_casing/c46x30mm, +/turf/open/floor/plasteel{ + icon_state = "damaged4" + }, +/area/awaymission/research/interior) +"cB" = ( +/obj/item/ammo_casing/c46x30mm, +/obj/item/ammo_casing/c9mm, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/plasteel/whiteyellow, +/area/awaymission/research/interior) +"cC" = ( +/turf/open/floor/plasteel/whiteyellow/side{ + tag = "icon-whiteyellow (WEST)"; + dir = 8 + }, +/area/awaymission/research/interior) +"cD" = ( +/obj/structure/table, +/obj/item/device/radio, +/obj/item/device/radio, +/turf/open/floor/plasteel/black, +/area/awaymission/research/interior/gateway) +"cE" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel/black, +/area/awaymission/research/interior/gateway) +"cF" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/table, +/obj/item/weapon/paper/pamphlet, +/obj/item/weapon/paper/pamphlet, +/turf/open/floor/plasteel/black, +/area/awaymission/research/interior/gateway) +"cG" = ( +/obj/structure/reagent_dispensers/peppertank{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/darkpurple, +/area/awaymission/research/interior/genetics) +"cH" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/spray/pepper, +/obj/machinery/button/door{ + id = "cryopodg2"; + name = "panic lockdown button" + }, +/obj/machinery/airalarm{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/darkpurple, +/area/awaymission/research/interior/genetics) +"cI" = ( +/obj/machinery/computer/scan_consolenew, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/darkpurple, +/area/awaymission/research/interior/genetics) +"cJ" = ( +/obj/machinery/dna_scannernew, +/turf/open/floor/plasteel/darkpurple, +/area/awaymission/research/interior/genetics) +"cK" = ( +/turf/open/floor/plasteel/darkpurple, +/area/awaymission/research/interior/genetics) +"cL" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/mob/living/simple_animal/hostile/syndicate/ranged, +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"cM" = ( +/turf/open/floor/plasteel{ + icon_state = "damaged4" + }, +/area/awaymission/research/interior) +"cN" = ( +/obj/item/ammo_casing/c9mm, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/plasteel{ + icon_state = "damaged4" + }, +/area/awaymission/research/interior) +"cO" = ( +/obj/item/ammo_casing/c46x30mm, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel/whiteyellow, +/area/awaymission/research/interior) +"cP" = ( +/obj/effect/mob_spawn/human/nanotrasensoldier{ + brute_damage = 200 + }, +/turf/open/floor/plasteel/whiteyellow/side{ + tag = "icon-whiteyellow (WEST)"; + dir = 8 + }, +/area/awaymission/research/interior) +"cQ" = ( +/turf/closed/wall/r_wall, +/area/awaymission/research/interior/secure) +"cR" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/door/airlock/highsecurity{ + aiDisabledIdScanner = 1; + name = "Gateway Access"; + req_access_txt = "36" + }, +/turf/open/floor/plating, +/area/awaymission/research/interior/gateway) +"cS" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 4; + name = "Genetics APC"; + pixel_x = 24; + pixel_y = 0 + }, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/turf/open/floor/plating, +/area/awaymission/research/interior/genetics) +"cT" = ( +/mob/living/carbon/monkey, +/turf/open/floor/plasteel/purple, +/area/awaymission/research/interior/genetics) +"cU" = ( +/obj/machinery/door/window/eastright, +/turf/open/floor/plasteel/purple, +/area/awaymission/research/interior/genetics) +"cV" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/turf/open/floor/plasteel/darkpurple, +/area/awaymission/research/interior/genetics) +"cW" = ( +/obj/machinery/door/window/westleft, +/turf/open/floor/plasteel/purple, +/area/awaymission/research/interior/genetics) +"cX" = ( +/mob/living/carbon/human, +/turf/open/floor/plasteel/purple, +/area/awaymission/research/interior/genetics) +"cY" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/item/ammo_casing/c9mm, +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"cZ" = ( +/obj/machinery/door/airlock/engineering{ + name = "Engine Room"; + req_access_txt = "10" + }, +/turf/open/floor/plasteel/whiteyellow/side{ + tag = "icon-whiteyellow (EAST)"; + dir = 4 + }, +/area/awaymission/research/interior) +"da" = ( +/obj/machinery/door/airlock/engineering{ + name = "Engine Room"; + req_access_txt = "10" + }, +/turf/open/floor/plasteel/whiteyellow/side{ + tag = "icon-whiteyellow (WEST)"; + dir = 8 + }, +/area/awaymission/research/interior) +"db" = ( +/obj/structure/filingcabinet, +/turf/open/floor/plasteel/black, +/area/awaymission/research/interior/secure) +"dc" = ( +/turf/open/floor/plasteel/black, +/area/awaymission/research/interior/secure) +"dd" = ( +/obj/structure/closet/crate, +/obj/item/weapon/disk/data{ + desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, infomation will turn up blank on most DNA machines."; + name = "encrypted genetic data disk"; + read_only = 1 + }, +/obj/item/device/firing_pin/dna, +/turf/open/floor/plasteel/black, +/area/awaymission/research/interior/secure) +"de" = ( +/obj/structure/filingcabinet, +/obj/structure/filingcabinet, +/turf/open/floor/plasteel/black, +/area/awaymission/research/interior/secure) +"df" = ( +/obj/structure/closet/crate, +/obj/item/weapon/disk/data{ + desc = "A data disk used to store cloning and genetic records. The name on the label appears to be scratched off."; + fields = list("label" = "Buffer1:Kr-$$@##", "UI" = "f8f603857000f930127c4", "SE" = "414401462231053131010241514651403453121613263463440351136366", "UE" = "340008485c321e542aed4df7032ac04d", "name" = "Krystal Symers", "blood_type" = "A+"); + name = "dusty genetics data disk"; + read_only = 1 + }, +/obj/item/weapon/disk/data{ + desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, infomation will turn up blank on most DNA machines."; + name = "encrypted genetic data disk"; + read_only = 1 + }, +/obj/item/weapon/dnainjector/xraymut, +/obj/item/weapon/dnainjector/xraymut, +/turf/open/floor/plasteel/black, +/area/awaymission/research/interior/secure) +"dg" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/awaymission/research/interior) +"dh" = ( +/turf/open/floor/plasteel/purple, +/area/awaymission/research/interior/genetics) +"di" = ( +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/mob/living/carbon/monkey, +/turf/open/floor/plasteel/purple, +/area/awaymission/research/interior/genetics) +"dj" = ( +/obj/effect/decal/cleanable/blood, +/obj/item/stack/rods, +/turf/open/floor/plasteel/darkpurple, +/area/awaymission/research/interior/genetics) +"dk" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"dl" = ( +/turf/open/floor/plasteel/whiteyellow/side{ + tag = "icon-whiteyellow (EAST)"; + dir = 4 + }, +/area/awaymission/research/interior) +"dm" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/plasteel/whiteyellow, +/area/awaymission/research/interior) +"dn" = ( +/obj/item/ammo_casing/c45, +/mob/living/simple_animal/hostile/syndicate, +/turf/open/floor/plasteel/whiteyellow/side{ + tag = "icon-whiteyellow (WEST)"; + dir = 8 + }, +/area/awaymission/research/interior) +"do" = ( +/turf/closed/wall/r_wall, +/area/awaymission/research/interior/security) +"dp" = ( +/obj/structure/closet/crate, +/obj/item/weapon/disk/data{ + desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, infomation will turn up blank on most DNA machines."; + name = "encrypted genetic data disk"; + read_only = 1 + }, +/obj/item/weapon/dnainjector/telemut, +/obj/item/weapon/dnainjector/telemut, +/obj/item/weapon/dnainjector/chavmut, +/turf/open/floor/plasteel/black, +/area/awaymission/research/interior/secure) +"dq" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/purple, +/area/awaymission/research/interior/genetics) +"dr" = ( +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/turf/open/floor/plasteel/purple, +/area/awaymission/research/interior/genetics) +"ds" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel/darkpurple, +/area/awaymission/research/interior/genetics) +"dt" = ( +/obj/item/weapon/shard{ + icon_state = "small" + }, +/turf/open/floor/plasteel/darkpurple, +/area/awaymission/research/interior/genetics) +"du" = ( +/obj/item/stack/rods, +/turf/open/floor/plasteel/purple, +/area/awaymission/research/interior/genetics) +"dv" = ( +/obj/machinery/light{ + tag = "icon-tube1 (EAST)"; + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel/purple, +/area/awaymission/research/interior/genetics) +"dw" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"dx" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/item/ammo_casing/c9mm, +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"dy" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"dz" = ( +/obj/effect/mob_spawn/human/nanotrasensoldier{ + brute_damage = 200 + }, +/turf/open/floor/plasteel/whiteyellow/side{ + tag = "icon-whiteyellow (EAST)"; + dir = 4 + }, +/area/awaymission/research/interior) +"dA" = ( +/obj/effect/decal/cleanable/blood, +/obj/item/ammo_casing/c45, +/turf/open/floor/plasteel/whiteyellow, +/area/awaymission/research/interior) +"dB" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/plasteel/whiteyellow/side{ + tag = "icon-whiteyellow (WEST)"; + dir = 8 + }, +/area/awaymission/research/interior) +"dC" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"dD" = ( +/obj/structure/closet, +/turf/open/floor/plasteel/red, +/area/awaymission/research/interior/security) +"dE" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/red, +/area/awaymission/research/interior/security) +"dF" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/turf/open/floor/plasteel/red, +/area/awaymission/research/interior/security) +"dG" = ( +/obj/structure/rack, +/obj/item/clothing/suit/armor/riot, +/obj/item/clothing/head/helmet/riot, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/red, +/area/awaymission/research/interior/security) +"dH" = ( +/turf/open/floor/plasteel/red, +/area/awaymission/research/interior/security) +"dI" = ( +/mob/living/simple_animal/hostile/nanotrasen/ranged, +/turf/open/floor/plasteel/red, +/area/awaymission/research/interior/security) +"dJ" = ( +/obj/structure/rack, +/obj/item/clothing/suit/armor/bulletproof, +/obj/item/clothing/suit/armor/bulletproof, +/obj/item/clothing/head/helmet/alt, +/obj/item/clothing/head/helmet/alt, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/red, +/area/awaymission/research/interior/security) +"dK" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/awaymission/research/interior/secure) +"dL" = ( +/obj/structure/closet/crate, +/obj/item/weapon/disk/data{ + desc = "A data disk used to store cloning and genetic records. The name on the label appears to be scratched off with the words 'DO NOT CLONE' hastely written over it."; + fields = list("label" = "Buffer1:George Melons", "UI" = "3c300f11b5421ca7014d8", "SE" = "430431205660551642142504334461413202111310233445620533134255", "UE" = "6893e6a0b0076a41897776b10cc2b324", "name" = "George Melons", "blood_type" = "B+"); + name = "old genetics data disk" + }, +/obj/item/weapon/disk/data{ + desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, infomation will turn up blank on most DNA machines."; + name = "encrypted genetic data disk"; + read_only = 1 + }, +/obj/item/device/firing_pin/dna, +/obj/item/weapon/dnainjector/dwarf, +/obj/item/weapon/dnainjector/dwarf, +/turf/open/floor/plasteel/black, +/area/awaymission/research/interior/secure) +"dM" = ( +/obj/structure/closet/crate, +/obj/item/weapon/disk/data{ + desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, infomation will turn up blank on most DNA machines."; + name = "encrypted genetic data disk"; + read_only = 1 + }, +/obj/item/weapon/disk/data{ + desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, infomation will turn up blank on most DNA machines."; + name = "encrypted genetic data disk"; + read_only = 1 + }, +/obj/item/weapon/dnainjector/chameleonmut, +/turf/open/floor/plasteel/black, +/area/awaymission/research/interior/secure) +"dN" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-16"; + layer = 4.1 + }, +/turf/open/floor/plasteel/darkpurple, +/area/awaymission/research/interior/genetics) +"dO" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/plasteel/darkpurple, +/area/awaymission/research/interior/genetics) +"dP" = ( +/mob/living/carbon/human/interactive/greytide, +/turf/open/floor/plasteel/darkpurple, +/area/awaymission/research/interior/genetics) +"dQ" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/mob/living/carbon/human, +/turf/open/floor/plasteel/purple, +/area/awaymission/research/interior/genetics) +"dR" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/item/ammo_casing/c45, +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"dS" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"dT" = ( +/obj/structure/table, +/turf/open/floor/plasteel/red, +/area/awaymission/research/interior/security) +"dU" = ( +/obj/structure/rack, +/obj/item/weapon/gun/projectile/automatic/wt550, +/obj/item/weapon/gun/projectile/automatic/wt550, +/obj/item/ammo_box/magazine/wt550m9, +/obj/item/ammo_box/magazine/wt550m9, +/turf/open/floor/plasteel/red, +/area/awaymission/research/interior/security) +"dV" = ( +/obj/structure/rack, +/obj/item/clothing/suit/armor/vest, +/obj/item/clothing/suit/armor/vest, +/obj/item/clothing/head/helmet, +/obj/item/clothing/head/helmet, +/turf/open/floor/plasteel/red, +/area/awaymission/research/interior/security) +"dW" = ( +/obj/machinery/door/airlock/highsecurity{ + aiDisabledIdScanner = 1; + locked = 1; + name = "Secure Storage C"; + req_access_txt = "36" + }, +/turf/open/floor/plasteel/black, +/area/awaymission/research/interior/secure) +"dX" = ( +/obj/machinery/door/airlock/highsecurity{ + aiDisabledIdScanner = 1; + locked = 1; + name = "Secure Storage D"; + req_access_txt = "36" + }, +/turf/open/floor/plasteel/black, +/area/awaymission/research/interior/secure) +"dY" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/awaymission/research/interior) +"dZ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"ea" = ( +/turf/closed/wall/r_wall, +/area/awaymission/research/interior/cryo) +"eb" = ( +/obj/machinery/door/poddoor{ + id = "cryopodg2"; + name = "cryogenetic genetics blastdoor" + }, +/turf/open/floor/plasteel/stairs, +/area/awaymission/research/interior/genetics) +"ec" = ( +/mob/living/simple_animal/hostile/syndicate/ranged, +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"ed" = ( +/obj/item/ammo_casing/c45, +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"ee" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"ef" = ( +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/closet/crate, +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"eg" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/effect/decal/cleanable/blood/drip, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"eh" = ( +/turf/open/floor/plasteel/white/corner, +/area/awaymission/research/interior) +"ei" = ( +/turf/open/floor/plasteel/whiteyellow/side, +/area/awaymission/research/interior) +"ej" = ( +/obj/machinery/airalarm{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/whiteyellow/side, +/area/awaymission/research/interior) +"ek" = ( +/turf/open/floor/plasteel/whiteyellow/side{ + tag = "icon-whiteyellow (SOUTHEAST)"; + dir = 6 + }, +/area/awaymission/research/interior) +"el" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/whiteyellow, +/area/awaymission/research/interior) +"em" = ( +/turf/open/floor/plasteel/whiteyellow/side{ + tag = "icon-whiteyellow (SOUTHWEST)"; + dir = 10 + }, +/area/awaymission/research/interior) +"en" = ( +/turf/open/floor/plasteel/white/corner{ + tag = "icon-whitecorner (WEST)"; + dir = 8 + }, +/area/awaymission/research/interior) +"eo" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/red, +/area/awaymission/research/interior/security) +"ep" = ( +/obj/structure/rack, +/obj/item/weapon/gun/projectile/automatic/pistol/m1911, +/obj/item/weapon/gun/projectile/automatic/pistol/m1911, +/obj/item/ammo_box/magazine/m45, +/obj/item/ammo_box/magazine/m45, +/turf/open/floor/plasteel/red, +/area/awaymission/research/interior/security) +"eq" = ( +/obj/structure/rack, +/obj/item/clothing/suit/armor/laserproof, +/turf/open/floor/plasteel/red, +/area/awaymission/research/interior/security) +"er" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/awaymission/research/interior/secure) +"es" = ( +/turf/open/floor/plating, +/area/awaymission/research/interior) +"et" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + req_access_txt = "12" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"eu" = ( +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (NORTHWEST)"; + dir = 9 + }, +/area/awaymission/research/interior/cryo) +"ev" = ( +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (NORTH)"; + dir = 1 + }, +/area/awaymission/research/interior/cryo) +"ew" = ( +/obj/machinery/airalarm{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (NORTH)"; + dir = 1 + }, +/area/awaymission/research/interior/cryo) +"ex" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (NORTHEAST)"; + dir = 5 + }, +/area/awaymission/research/interior/cryo) +"ey" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/plasteel/purple, +/area/awaymission/research/interior/cryo) +"ez" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (NORTHWEST)"; + dir = 9 + }, +/area/awaymission/research/interior/cryo) +"eA" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (NORTH)"; + dir = 1 + }, +/area/awaymission/research/interior/cryo) +"eB" = ( +/mob/living/simple_animal/hostile/nanotrasen/ranged, +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (NORTH)"; + dir = 1 + }, +/area/awaymission/research/interior/cryo) +"eC" = ( +/obj/item/ammo_casing/c9mm, +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (NORTH)"; + dir = 1 + }, +/area/awaymission/research/interior/cryo) +"eD" = ( +/obj/structure/barricade/security, +/turf/open/floor/plasteel{ + icon_state = "damaged4" + }, +/area/awaymission/research/interior/cryo) +"eE" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"eF" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"eG" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"eH" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + req_access_txt = "12" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"eI" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (EAST)"; + dir = 4 + }, +/area/awaymission/research/interior) +"eJ" = ( +/turf/open/floor/plasteel/white, +/area/awaymission/research/interior) +"eK" = ( +/turf/open/floor/plasteel/whiteyellow/side{ + tag = "icon-whiteyellow (NORTH)"; + dir = 1 + }, +/area/awaymission/research/interior) +"eL" = ( +/mob/living/simple_animal/hostile/syndicate, +/turf/open/floor/plasteel/whiteyellow/side{ + tag = "icon-whiteyellow (NORTHEAST)"; + dir = 5 + }, +/area/awaymission/research/interior) +"eM" = ( +/obj/item/ammo_casing/c45, +/obj/item/ammo_casing/c45, +/turf/open/floor/plasteel/whiteyellow, +/area/awaymission/research/interior) +"eN" = ( +/turf/open/floor/plasteel/whiteyellow/side{ + tag = "icon-whiteyellow (NORTHWEST)"; + dir = 9 + }, +/area/awaymission/research/interior) +"eO" = ( +/turf/open/floor/plasteel/whitered/side{ + tag = "icon-whitered (WEST)"; + dir = 8 + }, +/area/awaymission/research/interior) +"eP" = ( +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"eQ" = ( +/obj/machinery/door/window/northright{ + name = "Cell Door"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/awaymission/research/interior/security) +"eR" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plating, +/area/awaymission/research/interior/security) +"eS" = ( +/obj/machinery/door/airlock/glass_security{ + id_tag = "outerbrig"; + name = "Brig"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/awaymission/research/interior/security) +"eT" = ( +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -32; + tag = "icon-alarm0 (EAST)" + }, +/turf/open/floor/plasteel/black, +/area/awaymission/research/interior/secure) +"eU" = ( +/obj/item/weapon/paper/crumpled{ + info = "Theres a lot of sensitive info on these disks, try and keep them secure! If these backup copies get into the wrong hands, god knows what they could do with the genetic research on these disk.." + }, +/turf/open/floor/plasteel/black, +/area/awaymission/research/interior/secure) +"eV" = ( +/mob/living/simple_animal/hostile/nanotrasen/ranged/smg, +/turf/open/floor/plasteel/black, +/area/awaymission/research/interior/secure) +"eW" = ( +/obj/structure/barricade/security, +/turf/open/floor/plasteel/black, +/area/awaymission/research/interior/secure) +"eX" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/awaymission/research/interior) +"eY" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/awaymission/research/interior) +"eZ" = ( +/turf/open/floor/plasteel/whitepurple, +/area/awaymission/research/interior) +"fa" = ( +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 4; + name = "Cryostatis APC"; + pixel_x = 24; + pixel_y = 0 + }, +/obj/structure/cable, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/whitepurple, +/area/awaymission/research/interior/cryo) +"fb" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (WEST)"; + dir = 8 + }, +/area/awaymission/research/interior/cryo) +"fc" = ( +/obj/machinery/atmospherics/components/unary/cryo_cell, +/turf/open/floor/plasteel/white, +/area/awaymission/research/interior/cryo) +"fd" = ( +/obj/structure/table/glass, +/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{ + pixel_x = -7; + pixel_y = 1 + }, +/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{ + pixel_x = -7; + pixel_y = 1 + }, +/turf/open/floor/plasteel/white, +/area/awaymission/research/interior/cryo) +"fe" = ( +/obj/structure/table/glass, +/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{ + pixel_x = 7; + pixel_y = 1 + }, +/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{ + pixel_x = 7; + pixel_y = 1 + }, +/turf/open/floor/plasteel/white, +/area/awaymission/research/interior/cryo) +"ff" = ( +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (EAST)"; + dir = 4 + }, +/area/awaymission/research/interior/cryo) +"fg" = ( +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (WEST)"; + dir = 8 + }, +/area/awaymission/research/interior/cryo) +"fh" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/machinery/atmospherics/components/unary/cryo_cell, +/turf/open/floor/plasteel/white, +/area/awaymission/research/interior/cryo) +"fi" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (EAST)"; + dir = 4 + }, +/area/awaymission/research/interior/cryo) +"fj" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (EAST)"; + dir = 4 + }, +/area/awaymission/research/interior) +"fk" = ( +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (WEST)"; + dir = 8 + }, +/area/awaymission/research/interior) +"fl" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/item/ammo_casing/c45, +/turf/open/floor/plasteel/white, +/area/awaymission/research/interior) +"fm" = ( +/turf/open/floor/plasteel/whiteyellow, +/area/awaymission/research/interior) +"fn" = ( +/mob/living/simple_animal/hostile/syndicate/melee, +/turf/open/floor/plasteel/white, +/area/awaymission/research/interior) +"fo" = ( +/turf/open/floor/plasteel/whitered/side{ + tag = "icon-whitered (EAST)"; + dir = 4 + }, +/area/awaymission/research/interior) +"fp" = ( +/turf/open/floor/plasteel/whitered/corner, +/area/awaymission/research/interior/security) +"fq" = ( +/turf/open/floor/plasteel/whitered/side, +/area/awaymission/research/interior/security) +"fr" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/whitered/side, +/area/awaymission/research/interior/security) +"fs" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/whitered/side, +/area/awaymission/research/interior/security) +"ft" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/whitered/side, +/area/awaymission/research/interior/security) +"fu" = ( +/obj/machinery/airalarm{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/whitered/side, +/area/awaymission/research/interior/security) +"fv" = ( +/obj/structure/sign/goldenplaque{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/whitered/corner{ + tag = "icon-whiteredcorner (WEST)"; + dir = 8 + }, +/area/awaymission/research/interior/security) +"fw" = ( +/obj/machinery/power/smes{ + capacity = 9e+006; + charge = 10000 + }, +/turf/open/floor/plasteel/black, +/area/awaymission/research/interior/secure) +"fx" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/awaymission/research/interior/secure) +"fy" = ( +/obj/machinery/power/apc{ + cell_type = 12000; + dir = 4; + name = "Vault APC"; + pixel_x = 24; + pixel_y = 0 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plasteel/black, +/area/awaymission/research/interior/secure) +"fz" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/awaymission/research/interior/secure) +"fA" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/mob/living/simple_animal/hostile/nanotrasen/ranged/smg, +/turf/open/floor/plasteel/black, +/area/awaymission/research/interior/secure) +"fB" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/whitepurple, +/area/awaymission/research/interior) +"fC" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/whitepurple, +/area/awaymission/research/interior) +"fD" = ( +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (SOUTHWEST)"; + dir = 10 + }, +/area/awaymission/research/interior/cryo) +"fE" = ( +/turf/open/floor/plasteel/whitepurple/side, +/area/awaymission/research/interior/cryo) +"fF" = ( +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (SOUTHEAST)"; + dir = 6 + }, +/area/awaymission/research/interior/cryo) +"fG" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/plasteel/whitepurple, +/area/awaymission/research/interior/cryo) +"fH" = ( +/obj/effect/mob_spawn/human/syndicatesoldier{ + brute_damage = 200 + }, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel/whitepurple/side, +/area/awaymission/research/interior/cryo) +"fI" = ( +/obj/item/ammo_casing/c9mm, +/turf/open/floor/plasteel/whitepurple/side, +/area/awaymission/research/interior/cryo) +"fJ" = ( +/obj/structure/barricade/security, +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (SOUTHEAST)"; + dir = 6 + }, +/area/awaymission/research/interior/cryo) +"fK" = ( +/obj/machinery/door/airlock/research{ + name = "Cryogenetics Research"; + req_access_txt = "9" + }, +/turf/open/floor/plasteel/whitepurple/side, +/area/awaymission/research/interior/cryo) +"fL" = ( +/turf/open/floor/plasteel/whitepurple/side, +/area/awaymission/research/interior) +"fM" = ( +/obj/machinery/door/airlock/research{ + name = "Cryogenetics Research"; + req_access_txt = "9" + }, +/turf/open/floor/plasteel/whitepurple/side, +/area/awaymission/research/interior) +"fN" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (SOUTHEAST)"; + dir = 6 + }, +/area/awaymission/research/interior) +"fO" = ( +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (SOUTHWEST)"; + dir = 10 + }, +/area/awaymission/research/interior) +"fP" = ( +/obj/item/ammo_casing/c45, +/turf/open/floor/plasteel/whiteyellow, +/area/awaymission/research/interior) +"fQ" = ( +/turf/open/floor/plasteel/whitered/side{ + tag = "icon-whitered (SOUTHEAST)"; + dir = 6 + }, +/area/awaymission/research/interior) +"fR" = ( +/turf/open/floor/plasteel/whitered/side{ + tag = "icon-whitered (SOUTHWEST)"; + dir = 10 + }, +/area/awaymission/research/interior) +"fS" = ( +/obj/machinery/door/airlock/glass_security{ + id_tag = "outerbrig"; + name = "Brig"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/whitered/side, +/area/awaymission/research/interior) +"fT" = ( +/turf/open/floor/plasteel/whitered/side, +/area/awaymission/research/interior) +"fU" = ( +/obj/structure/barricade/security, +/turf/open/floor/plasteel/whitered/side, +/area/awaymission/research/interior/security) +"fV" = ( +/turf/open/floor/plasteel/whitered/side{ + tag = "icon-whitered (SOUTHEAST)"; + dir = 6 + }, +/area/awaymission/research/interior/security) +"fW" = ( +/turf/open/floor/plasteel/whitered, +/area/awaymission/research/interior/security) +"fX" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/whitered, +/area/awaymission/research/interior/security) +"fY" = ( +/mob/living/simple_animal/hostile/nanotrasen/ranged/smg, +/turf/open/floor/plasteel/whitered, +/area/awaymission/research/interior/security) +"fZ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/whitered, +/area/awaymission/research/interior/security) +"ga" = ( +/obj/structure/table, +/obj/item/weapon/book/manual/wiki/security_space_law, +/obj/item/weapon/book/manual/wiki/security_space_law, +/turf/open/floor/plasteel/whitered, +/area/awaymission/research/interior/security) +"gb" = ( +/obj/structure/table, +/obj/item/weapon/storage/fancy/donut_box, +/turf/open/floor/plasteel/whitered, +/area/awaymission/research/interior/security) +"gc" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/whitered/side{ + tag = "icon-whitered (WEST)"; + dir = 8 + }, +/area/awaymission/research/interior/security) +"gd" = ( +/obj/machinery/power/terminal{ + icon_state = "term"; + dir = 1 + }, +/obj/structure/cable{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/turf/open/floor/plasteel/black, +/area/awaymission/research/interior/secure) +"ge" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/black, +/area/awaymission/research/interior/secure) +"gf" = ( +/obj/machinery/power/terminal, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/cable{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/turf/open/floor/plasteel/black, +/area/awaymission/research/interior/secure) +"gg" = ( +/obj/machinery/door/airlock/highsecurity{ + aiDisabledIdScanner = 1; + name = "Power Storage"; + req_access_txt = "36" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel/black, +/area/awaymission/research/interior/secure) +"gh" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel/black, +/area/awaymission/research/interior/secure) +"gi" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/black, +/area/awaymission/research/interior/secure) +"gj" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/mob/living/simple_animal/hostile/nanotrasen/ranged/smg, +/turf/open/floor/plasteel/black, +/area/awaymission/research/interior/secure) +"gk" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/barricade/security, +/turf/open/floor/plasteel/black, +/area/awaymission/research/interior/secure) +"gl" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/highsecurity{ + aiDisabledIdScanner = 0; + name = "Vault Storage"; + req_access_txt = "36" + }, +/turf/open/floor/plasteel/black, +/area/awaymission/research/interior/secure) +"gm" = ( +/obj/structure/barricade/security, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/black, +/area/awaymission/research/interior/secure) +"gn" = ( +/obj/machinery/door/airlock/research{ + name = "Secure Storage"; + req_access_txt = "9,63" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/awaymission/research/interior/secure) +"go" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/awaymission/research/interior) +"gp" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/light/small, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/awaymission/research/interior) +"gq" = ( +/obj/machinery/door/airlock/research{ + name = "Cryogenetics Research"; + req_access_txt = "9" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/awaymission/research/interior) +"gr" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/whitepurple, +/area/awaymission/research/interior) +"gs" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/whitepurple, +/area/awaymission/research/interior) +"gt" = ( +/obj/machinery/door/airlock/research{ + name = "Cryogenetics Research"; + req_access_txt = "9" + }, +/turf/open/floor/plasteel/whitepurple, +/area/awaymission/research/interior/cryo) +"gu" = ( +/turf/open/floor/plasteel/whitepurple, +/area/awaymission/research/interior/cryo) +"gv" = ( +/mob/living/simple_animal/hostile/nanotrasen/ranged, +/turf/open/floor/plasteel/whitepurple, +/area/awaymission/research/interior/cryo) +"gw" = ( +/obj/effect/mob_spawn/human/doctor{ + brute_damage = 145; + id_job = "Geneticist"; + oxy_damage = 55; + suit = /obj/item/clothing/suit/toggle/labcoat/genetics; + uniform = /obj/item/clothing/under/rank/geneticist; + name = "Geneticist" + }, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel/whitepurple, +/area/awaymission/research/interior/cryo) +"gx" = ( +/obj/item/ammo_casing/c9mm, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/plasteel/whitepurple, +/area/awaymission/research/interior/cryo) +"gy" = ( +/obj/item/ammo_casing/c9mm, +/turf/open/floor/plasteel/whitepurple, +/area/awaymission/research/interior/cryo) +"gz" = ( +/obj/machinery/light{ + tag = "icon-tube1 (EAST)"; + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple, +/area/awaymission/research/interior) +"gA" = ( +/obj/machinery/light{ + tag = "icon-tube1 (WEST)"; + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/whitepurple, +/area/awaymission/research/interior) +"gB" = ( +/obj/structure/sign/science, +/turf/closed/wall/r_wall, +/area/awaymission/research/interior) +"gC" = ( +/obj/machinery/light{ + tag = "icon-tube1 (WEST)"; + icon_state = "tube1"; + dir = 8 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/whitepurple, +/area/awaymission/research/interior) +"gD" = ( +/turf/open/floor/plasteel, +/area/awaymission/research/interior) +"gE" = ( +/turf/open/floor/plasteel/whitered, +/area/awaymission/research/interior) +"gF" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/plasteel/whitered, +/area/awaymission/research/interior) +"gG" = ( +/obj/machinery/light{ + tag = "icon-tube1 (EAST)"; + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel/whitered, +/area/awaymission/research/interior) +"gH" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/whitered, +/area/awaymission/research/interior) +"gI" = ( +/obj/structure/barricade/security, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/whitered, +/area/awaymission/research/interior/security) +"gJ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/whitered, +/area/awaymission/research/interior/security) +"gK" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/whitered, +/area/awaymission/research/interior/security) +"gL" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/whitered, +/area/awaymission/research/interior/security) +"gM" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/table, +/turf/open/floor/plasteel/whitered, +/area/awaymission/research/interior/security) +"gN" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/table, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/whitered, +/area/awaymission/research/interior/security) +"gO" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/whitered, +/area/awaymission/research/interior/security) +"gP" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/whitered/side{ + tag = "icon-whitered (WEST)"; + dir = 8 + }, +/area/awaymission/research/interior/security) +"gQ" = ( +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (NORTHEAST)"; + dir = 5 + }, +/area/awaymission/research/interior/cryo) +"gR" = ( +/obj/item/weapon/melee/classic_baton/telescopic, +/turf/open/floor/plasteel/whitepurple, +/area/awaymission/research/interior/cryo) +"gS" = ( +/obj/item/weapon/reagent_containers/spray/pepper, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (NORTHWEST)"; + dir = 9 + }, +/area/awaymission/research/interior/cryo) +"gT" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (NORTH)"; + dir = 1 + }, +/area/awaymission/research/interior/cryo) +"gU" = ( +/obj/structure/barricade/security, +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (NORTHEAST)"; + dir = 5 + }, +/area/awaymission/research/interior/cryo) +"gV" = ( +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (NORTH)"; + dir = 1 + }, +/area/awaymission/research/interior) +"gW" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/whitepurple, +/area/awaymission/research/interior) +"gX" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (NORTHWEST)"; + dir = 9 + }, +/area/awaymission/research/interior) +"gY" = ( +/obj/item/ammo_casing/c45, +/obj/item/ammo_casing/c45, +/turf/open/floor/plasteel/whitegreen, +/area/awaymission/research/interior) +"gZ" = ( +/turf/open/floor/plasteel/whitered/side{ + tag = "icon-whitered (NORTHEAST)"; + dir = 5 + }, +/area/awaymission/research/interior) +"ha" = ( +/turf/open/floor/plasteel/whitered/side{ + tag = "icon-whitered (NORTHWEST)"; + dir = 9 + }, +/area/awaymission/research/interior) +"hb" = ( +/obj/machinery/door/airlock/glass_security{ + id_tag = "outerbrig"; + name = "Brig"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/whitered/side{ + tag = "icon-whitered (NORTH)"; + dir = 1 + }, +/area/awaymission/research/interior) +"hc" = ( +/turf/open/floor/plasteel/whitered/side{ + tag = "icon-whitered (NORTH)"; + dir = 1 + }, +/area/awaymission/research/interior) +"hd" = ( +/obj/structure/barricade/security, +/turf/open/floor/plasteel/whitered/side{ + tag = "icon-whitered (NORTH)"; + dir = 1 + }, +/area/awaymission/research/interior/security) +"he" = ( +/turf/open/floor/plasteel/whitered/side{ + tag = "icon-whitered (NORTHEAST)"; + dir = 5 + }, +/area/awaymission/research/interior/security) +"hf" = ( +/obj/structure/table, +/obj/item/weapon/folder, +/obj/item/weapon/folder, +/turf/open/floor/plasteel/whitered, +/area/awaymission/research/interior/security) +"hg" = ( +/obj/structure/table, +/turf/open/floor/plasteel/whitered, +/area/awaymission/research/interior/security) +"hh" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/whitered, +/area/awaymission/research/interior/security) +"hi" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/whitered/side{ + tag = "icon-whitered (WEST)"; + dir = 8 + }, +/area/awaymission/research/interior/security) +"hj" = ( +/mob/living/simple_animal/hostile/nanotrasen, +/turf/open/floor/plasteel/purple, +/area/awaymission/research/interior/cryo) +"hk" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (WEST)"; + dir = 8 + }, +/area/awaymission/research/interior) +"hl" = ( +/turf/open/floor/plasteel/whitegreen, +/area/awaymission/research/interior) +"hm" = ( +/turf/open/floor/plasteel/whitered/corner{ + tag = "icon-whiteredcorner (EAST)"; + dir = 4 + }, +/area/awaymission/research/interior/security) +"hn" = ( +/turf/open/floor/plasteel/whitered/side{ + tag = "icon-whitered (NORTH)"; + dir = 1 + }, +/area/awaymission/research/interior/security) +"ho" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/whitered/side{ + tag = "icon-whitered (NORTH)"; + dir = 1 + }, +/area/awaymission/research/interior/security) +"hp" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/whitered/side{ + tag = "icon-whitered (NORTH)"; + dir = 1 + }, +/area/awaymission/research/interior/security) +"hq" = ( +/mob/living/simple_animal/hostile/nanotrasen/ranged/smg, +/turf/open/floor/plasteel/whitered/side{ + tag = "icon-whitered (NORTH)"; + dir = 1 + }, +/area/awaymission/research/interior/security) +"hr" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/light{ + tag = "icon-tube1 (EAST)"; + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel/whitered/side{ + tag = "icon-whitered (WEST)"; + dir = 8 + }, +/area/awaymission/research/interior/security) +"hs" = ( +/obj/machinery/light/small, +/turf/open/floor/plasteel/black, +/area/awaymission/research/interior/secure) +"ht" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (SOUTHEAST)"; + dir = 6 + }, +/area/awaymission/research/interior/cryo) +"hu" = ( +/turf/open/floor/plasteel/purple, +/area/awaymission/research/interior/cryo) +"hv" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (SOUTHWEST)"; + dir = 10 + }, +/area/awaymission/research/interior/cryo) +"hw" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"hx" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"hy" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (EAST)"; + dir = 4 + }, +/area/awaymission/research/interior) +"hz" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/plasteel/whitegreen/side, +/area/awaymission/research/interior) +"hA" = ( +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (SOUTHEAST)"; + dir = 6 + }, +/area/awaymission/research/interior) +"hB" = ( +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (SOUTHWEST)"; + dir = 10 + }, +/area/awaymission/research/interior) +"hC" = ( +/turf/open/floor/plasteel/whitegreen/side, +/area/awaymission/research/interior) +"hD" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"hE" = ( +/obj/machinery/door/window/southright{ + name = "Cell Door"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/red/side, +/area/awaymission/research/interior/security) +"hF" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/awaymission/research/interior/security) +"hG" = ( +/obj/structure/closet/secure_closet/security, +/turf/open/floor/plasteel/whitered/side{ + tag = "icon-whitered (EAST)"; + dir = 4 + }, +/area/awaymission/research/interior/security) +"hH" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/vending/security, +/turf/open/floor/plasteel/whitered/side{ + tag = "icon-whitered (WEST)"; + dir = 8 + }, +/area/awaymission/research/interior/security) +"hI" = ( +/obj/machinery/door/airlock/highsecurity{ + aiDisabledIdScanner = 1; + locked = 1; + name = "Secure Storage A"; + req_access_txt = "36" + }, +/turf/open/floor/plasteel/black, +/area/awaymission/research/interior/secure) +"hJ" = ( +/obj/machinery/door/airlock/highsecurity{ + aiDisabledIdScanner = 1; + locked = 1; + name = "Secure Storage B"; + req_access_txt = "36" + }, +/turf/open/floor/plasteel/black, +/area/awaymission/research/interior/secure) +"hK" = ( +/obj/machinery/door/poddoor{ + id = "cryopodg1"; + name = "cryogenetic genetics blastdoor" + }, +/turf/open/floor/plasteel/stairs{ + tag = "icon-stairs (NORTH)"; + dir = 1 + }, +/area/awaymission/research/interior/genetics) +"hL" = ( +/turf/open/floor/plasteel/white/corner{ + tag = "icon-whitecorner (EAST)"; + dir = 4 + }, +/area/awaymission/research/interior) +"hM" = ( +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (NORTH)"; + dir = 1 + }, +/area/awaymission/research/interior) +"hN" = ( +/obj/effect/mob_spawn/human/doctor{ + brute_damage = 200 + }, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (NORTH)"; + dir = 1 + }, +/area/awaymission/research/interior) +"hO" = ( +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (NORTHEAST)"; + dir = 5 + }, +/area/awaymission/research/interior) +"hP" = ( +/obj/structure/sign/directions/medical{ + pixel_x = 32; + pixel_y = -32 + }, +/obj/structure/sign/directions/evac{ + pixel_x = 32; + pixel_y = -24 + }, +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (NORTHWEST)"; + dir = 9 + }, +/area/awaymission/research/interior) +"hQ" = ( +/turf/open/floor/plasteel/white/corner{ + tag = "icon-whitecorner (NORTH)"; + dir = 1 + }, +/area/awaymission/research/interior) +"hR" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/table, +/turf/open/floor/plasteel/whitered/side{ + tag = "icon-whitered (WEST)"; + dir = 8 + }, +/area/awaymission/research/interior/security) +"hS" = ( +/obj/structure/closet/crate, +/obj/item/weapon/disk/data{ + desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, infomation will turn up blank on most DNA machines."; + name = "encrypted genetic data disk"; + read_only = 1 + }, +/obj/item/weapon/disk/data{ + desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, infomation will turn up blank on most DNA machines. This one has the initials 'C.P' marked on the front. "; + name = "encrypted genetic data disk"; + read_only = 1 + }, +/obj/item/clothing/head/collectable/petehat{ + name = "dusty hat" + }, +/obj/item/device/firing_pin/dna, +/turf/open/floor/plasteel/black, +/area/awaymission/research/interior/secure) +"hT" = ( +/obj/structure/closet/crate, +/obj/item/weapon/disk/data{ + desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, infomation will turn up blank on most DNA machines."; + name = "encrypted genetic data disk"; + read_only = 1 + }, +/obj/item/weapon/disk/data{ + desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, infomation will turn up blank on most DNA machines."; + name = "encrypted genetic data disk"; + read_only = 1 + }, +/obj/item/device/firing_pin/dna, +/obj/item/weapon/dnainjector/hulkmut, +/turf/open/floor/plasteel/black, +/area/awaymission/research/interior/secure) +"hU" = ( +/obj/item/weapon/shard, +/turf/open/floor/plasteel/purple, +/area/awaymission/research/interior/genetics) +"hV" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-10"; + layer = 4.1 + }, +/turf/open/floor/plasteel/darkpurple, +/area/awaymission/research/interior/genetics) +"hW" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/mob/living/carbon/monkey, +/turf/open/floor/plasteel/purple, +/area/awaymission/research/interior/genetics) +"hX" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"hY" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"hZ" = ( +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (EAST)"; + dir = 4 + }, +/area/awaymission/research/interior) +"ia" = ( +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (WEST)"; + dir = 8 + }, +/area/awaymission/research/interior) +"ib" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/purple, +/area/awaymission/research/interior/genetics) +"ic" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel/purple, +/area/awaymission/research/interior/genetics) +"id" = ( +/turf/closed/wall, +/area/awaymission/research/interior/maint) +"ie" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"if" = ( +/mob/living/simple_animal/hostile/syndicate/ranged, +/turf/open/floor/plasteel/whitegreen, +/area/awaymission/research/interior) +"ig" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"ih" = ( +/obj/machinery/light/small, +/turf/open/floor/plasteel/red, +/area/awaymission/research/interior/security) +"ii" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + desc = "A potted plant, it doesn't look very healthy..."; + name = "dead potted plant" + }, +/turf/open/floor/plasteel/whitered/corner{ + tag = "icon-whiteredcorner (EAST)"; + dir = 4 + }, +/area/awaymission/research/interior/security) +"ij" = ( +/mob/living/simple_animal/bot/secbot/beepsky{ + desc = "A beefy variant of the standard securitron model."; + emagged = 1; + faction = list("nanotrasenprivate"); + health = 50; + maxHealth = 50; + name = "Officer Genesky" + }, +/turf/open/floor/plasteel/whitered/side{ + tag = "icon-whitered (NORTH)"; + dir = 1 + }, +/area/awaymission/research/interior/security) +"ik" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/whitered/corner{ + tag = "icon-whiteredcorner (NORTH)"; + dir = 1 + }, +/area/awaymission/research/interior/security) +"il" = ( +/obj/structure/closet/crate, +/obj/item/weapon/disk/data{ + desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, infomation will turn up blank on most DNA machines."; + name = "encrypted genetic data disk"; + read_only = 1 + }, +/obj/item/device/firing_pin/dna/dredd, +/obj/item/device/firing_pin/dna/dredd, +/obj/item/weapon/dnainjector/lasereyesmut, +/obj/item/weapon/dnainjector/lasereyesmut, +/turf/open/floor/plasteel/black, +/area/awaymission/research/interior/secure) +"im" = ( +/obj/item/stack/rods, +/turf/open/floor/plasteel/darkpurple, +/area/awaymission/research/interior/genetics) +"in" = ( +/obj/effect/mob_spawn/human/doctor{ + brute_damage = 145; + id_job = "Geneticist"; + oxy_damage = 55; + suit = /obj/item/clothing/suit/toggle/labcoat/genetics; + uniform = /obj/item/clothing/under/rank/geneticist; + name = "Geneticist" + }, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel/darkpurple, +/area/awaymission/research/interior/genetics) +"io" = ( +/obj/structure/mirror{ + pixel_x = -32 + }, +/obj/structure/sink{ + icon_state = "sink"; + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/turf/open/floor/plasteel/freezer, +/area/awaymission/research/interior/bathroom) +"ip" = ( +/obj/structure/urinal{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/freezer, +/area/awaymission/research/interior/bathroom) +"iq" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"ir" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (EAST)"; + dir = 4 + }, +/area/awaymission/research/interior) +"is" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/whitegreen, +/area/awaymission/research/interior) +"it" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (WEST)"; + dir = 8 + }, +/area/awaymission/research/interior) +"iu" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"iv" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Security Maintenance"; + req_access_txt = "63" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"iw" = ( +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 4; + name = "Genetics APC"; + pixel_x = 24; + pixel_y = 0 + }, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/awaymission/research/interior/genetics) +"ix" = ( +/obj/machinery/door/window/eastleft, +/turf/open/floor/plasteel/purple, +/area/awaymission/research/interior/genetics) +"iy" = ( +/obj/structure/chair/office/dark, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel/darkpurple, +/area/awaymission/research/interior/genetics) +"iz" = ( +/obj/machinery/door/window/westright, +/turf/open/floor/plasteel/purple, +/area/awaymission/research/interior/genetics) +"iA" = ( +/turf/open/floor/plasteel/freezer, +/area/awaymission/research/interior/bathroom) +"iB" = ( +/obj/machinery/door/airlock{ + name = "Stall" + }, +/turf/open/floor/plasteel/freezer, +/area/awaymission/research/interior/bathroom) +"iC" = ( +/obj/structure/toilet{ + icon_state = "toilet00"; + dir = 8 + }, +/obj/effect/landmark{ + name = "awaystart" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/awaymission/research/interior/bathroom) +"iD" = ( +/turf/closed/wall, +/area/awaymission/research/interior) +"iE" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (WEST)"; + dir = 8 + }, +/area/awaymission/research/interior) +"iF" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Security APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/awaymission/research/interior/security) +"iG" = ( +/obj/machinery/computer/scan_consolenew, +/obj/machinery/light, +/turf/open/floor/plasteel/darkpurple, +/area/awaymission/research/interior/genetics) +"iH" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/spray/pepper, +/obj/machinery/button/door{ + id = "cryopodg1"; + name = "panic lockdown button" + }, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -32; + tag = "icon-alarm0 (NORTH)" + }, +/turf/open/floor/plasteel/darkpurple, +/area/awaymission/research/interior/genetics) +"iI" = ( +/obj/structure/reagent_dispensers/peppertank{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/darkpurple, +/area/awaymission/research/interior/genetics) +"iJ" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/freezer, +/area/awaymission/research/interior/bathroom) +"iK" = ( +/obj/structure/window/reinforced/tinted, +/turf/open/floor/plasteel/freezer, +/area/awaymission/research/interior/bathroom) +"iL" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/awaymission/research/interior/bathroom) +"iM" = ( +/turf/closed/wall, +/area/awaymission/research/interior/bathroom) +"iN" = ( +/obj/machinery/shower{ + icon_state = "shower"; + dir = 8 + }, +/turf/open/floor/plasteel/freezer, +/area/awaymission/research/interior/bathroom) +"iO" = ( +/obj/structure/window/reinforced/tinted{ + tag = "icon-rwindow (WEST)"; + icon_state = "rwindow"; + dir = 8 + }, +/turf/open/floor/plasteel/freezer, +/area/awaymission/research/interior/bathroom) +"iP" = ( +/obj/machinery/door/airlock{ + name = "Unisex Bathroom" + }, +/turf/open/floor/plasteel/freezer, +/area/awaymission/research/interior/bathroom) +"iQ" = ( +/mob/living/simple_animal/hostile/syndicate, +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (EAST)"; + dir = 4 + }, +/area/awaymission/research/interior) +"iR" = ( +/turf/open/floor/plasteel, +/area/awaymission/research/interior/maint) +"iS" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/awaymission/research/interior/maint) +"iT" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/maintenance_hatch{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"iU" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/awaymission/research/interior/maint) +"iV" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"iW" = ( +/turf/closed/wall/r_wall, +/area/awaymission/research/interior/medbay) +"iX" = ( +/turf/closed/wall, +/area/awaymission/research/interior/dorm) +"iY" = ( +/obj/machinery/door/airlock{ + name = "Bathroom" + }, +/turf/open/floor/plasteel, +/area/awaymission/research/interior/dorm) +"iZ" = ( +/obj/machinery/airalarm{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/whiteblue/corner, +/area/awaymission/research/interior/medbay) +"ja" = ( +/obj/machinery/sleeper, +/turf/open/floor/plasteel/whiteblue/side, +/area/awaymission/research/interior/medbay) +"jb" = ( +/obj/structure/table, +/turf/open/floor/plasteel/whiteblue/side, +/area/awaymission/research/interior/medbay) +"jc" = ( +/obj/structure/table, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/whiteblue/side, +/area/awaymission/research/interior/medbay) +"jd" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/plasteel/whiteblue/side, +/area/awaymission/research/interior/medbay) +"je" = ( +/turf/open/floor/plasteel/whiteblue/corner{ + tag = "icon-whitebluecorner (WEST)"; + dir = 8 + }, +/area/awaymission/research/interior/medbay) +"jf" = ( +/turf/closed/wall, +/area/awaymission/research/interior/medbay) +"jg" = ( +/obj/structure/sink{ + icon_state = "sink"; + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/turf/open/floor/plasteel/whiteblue/corner, +/area/awaymission/research/interior/medbay) +"jh" = ( +/turf/open/floor/plasteel/whiteblue/side, +/area/awaymission/research/interior/medbay) +"ji" = ( +/obj/machinery/door/airlock/glass_large, +/turf/closed/mineral, +/area/awaymission/research/exterior) +"jj" = ( +/obj/structure/dresser, +/turf/open/floor/wood, +/area/awaymission/research/interior/dorm) +"jk" = ( +/turf/open/floor/wood, +/area/awaymission/research/interior/dorm) +"jl" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/turf/open/floor/wood, +/area/awaymission/research/interior/dorm) +"jm" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-14"; + layer = 4.1 + }, +/turf/open/floor/plasteel/yellowsiding{ + tag = "icon-yellowsiding (NORTHWEST)"; + dir = 9 + }, +/area/awaymission/research/interior/dorm) +"jn" = ( +/turf/open/floor/plasteel/yellowsiding{ + dir = 1 + }, +/area/awaymission/research/interior/dorm) +"jo" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/yellowsiding{ + dir = 1 + }, +/area/awaymission/research/interior/dorm) +"jp" = ( +/obj/structure/barricade/wooden{ + desc = "A wooden table hastely flipped over for cover."; + obj_integrity = 55; + icon = 'icons/obj/smooth_structures/wood_table.dmi'; + icon_state = "wood_table"; + max_integrity = 55; + name = "flipped table" + }, +/turf/open/floor/plasteel/yellowsiding{ + dir = 1 + }, +/area/awaymission/research/interior/dorm) +"jq" = ( +/turf/open/floor/plasteel/green/side{ + dir = 5 + }, +/area/awaymission/research/interior) +"jr" = ( +/obj/structure/sign/directions/security{ + dir = 1; + icon_state = "direction_sec"; + pixel_x = 32; + pixel_y = 40 + }, +/obj/structure/sign/directions/engineering{ + dir = 1; + icon_state = "direction_eng"; + pixel_x = 32; + pixel_y = 33; + tag = "icon-direction_eng (NORTH)" + }, +/obj/structure/sign/directions/science{ + dir = 1; + icon_state = "direction_sci"; + pixel_x = 32; + pixel_y = 26; + tag = "icon-direction_sci (NORTH)" + }, +/mob/living/simple_animal/hostile/syndicate/ranged, +/turf/open/floor/plasteel/whitegreen, +/area/awaymission/research/interior) +"js" = ( +/turf/open/floor/plasteel/whiteblue/side, +/area/awaymission/research/interior) +"jt" = ( +/obj/machinery/door/airlock/medical{ + name = "Medical" + }, +/turf/open/floor/plasteel/whiteblue/side, +/area/awaymission/research/interior) +"ju" = ( +/obj/item/ammo_casing/c45, +/turf/open/floor/plasteel/whiteblue/side, +/area/awaymission/research/interior/medbay) +"jv" = ( +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (SOUTHEAST)"; + dir = 6 + }, +/area/awaymission/research/interior/medbay) +"jw" = ( +/turf/open/floor/plasteel/whiteblue, +/area/awaymission/research/interior/medbay) +"jx" = ( +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (WEST)"; + dir = 8 + }, +/area/awaymission/research/interior/medbay) +"jy" = ( +/obj/machinery/door/airlock/medical{ + name = "Medical Surgey" + }, +/turf/open/floor/plasteel/whiteblue, +/area/awaymission/research/interior/medbay) +"jz" = ( +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (EAST)"; + dir = 4 + }, +/area/awaymission/research/interior/medbay) +"jA" = ( +/obj/structure/table/optable, +/turf/open/floor/plasteel/whiteblue, +/area/awaymission/research/interior/medbay) +"jB" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (WEST)"; + dir = 8 + }, +/area/awaymission/research/interior/medbay) +"jC" = ( +/obj/structure/table/wood, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/wood, +/area/awaymission/research/interior/dorm) +"jD" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/wood, +/area/awaymission/research/interior/dorm) +"jE" = ( +/turf/open/floor/plasteel/yellowsiding{ + dir = 8 + }, +/area/awaymission/research/interior/dorm) +"jF" = ( +/turf/open/floor/plasteel, +/area/awaymission/research/interior/dorm) +"jG" = ( +/obj/structure/barricade/wooden{ + desc = "A wooden table hastely flipped over for cover."; + obj_integrity = 55; + icon = 'icons/obj/smooth_structures/wood_table.dmi'; + icon_state = "wood_table"; + max_integrity = 55; + name = "flipped table" + }, +/turf/open/floor/plasteel, +/area/awaymission/research/interior/dorm) +"jH" = ( +/turf/open/floor/plasteel/green/side{ + dir = 4 + }, +/area/awaymission/research/interior) +"jI" = ( +/turf/open/floor/plasteel/whiteblue, +/area/awaymission/research/interior) +"jJ" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue, +/area/awaymission/research/interior) +"jK" = ( +/obj/structure/sign/bluecross, +/turf/closed/wall/r_wall, +/area/awaymission/research/interior) +"jL" = ( +/obj/machinery/light{ + tag = "icon-tube1 (EAST)"; + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue, +/area/awaymission/research/interior) +"jM" = ( +/obj/machinery/light{ + tag = "icon-tube1 (WEST)"; + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/whiteblue, +/area/awaymission/research/interior) +"jN" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/whiteblue, +/area/awaymission/research/interior/medbay) +"jO" = ( +/obj/item/ammo_casing/c45, +/turf/open/floor/plasteel/whiteblue, +/area/awaymission/research/interior/medbay) +"jP" = ( +/mob/living/simple_animal/hostile/syndicate/ranged, +/turf/open/floor/plasteel/whiteblue, +/area/awaymission/research/interior/medbay) +"jQ" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/plasteel/whiteblue, +/area/awaymission/research/interior/medbay) +"jR" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/awaymission/research/interior/medbay) +"jS" = ( +/obj/structure/table, +/obj/item/weapon/surgical_drapes, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (EAST)"; + dir = 4 + }, +/area/awaymission/research/interior/medbay) +"jT" = ( +/obj/machinery/button/door{ + id = "Dorm1"; + name = "Privacy Button"; + pixel_y = -28 + }, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/awaymission/research/interior/dorm) +"jU" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/blue, +/obj/effect/landmark{ + name = "awaystart" + }, +/turf/open/floor/wood, +/area/awaymission/research/interior/dorm) +"jV" = ( +/obj/machinery/button/door{ + id = "Dorm2"; + name = "Privacy Button"; + pixel_y = -28 + }, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/awaymission/research/interior/dorm) +"jW" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/purple, +/turf/open/floor/wood, +/area/awaymission/research/interior/dorm) +"jX" = ( +/obj/machinery/button/door{ + id = "Dorm3"; + name = "Privacy Button"; + pixel_y = -28 + }, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/awaymission/research/interior/dorm) +"jY" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/clown, +/turf/open/floor/wood, +/area/awaymission/research/interior/dorm) +"jZ" = ( +/obj/effect/mob_spawn/human/doctor{ + brute_damage = 200 + }, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel, +/area/awaymission/research/interior/dorm) +"ka" = ( +/turf/open/floor/plasteel/yellowsiding/corner, +/area/awaymission/research/interior/dorm) +"kb" = ( +/obj/structure/barricade/wooden{ + desc = "A wooden table hastely flipped over for cover."; + obj_integrity = 55; + icon = 'icons/obj/smooth_structures/wood_table.dmi'; + icon_state = "wood_table"; + max_integrity = 55; + name = "flipped table" + }, +/turf/open/floor/plasteel/yellowsiding, +/area/awaymission/research/interior/dorm) +"kc" = ( +/turf/open/floor/plasteel/yellowsiding, +/area/awaymission/research/interior/dorm) +"kd" = ( +/turf/open/floor/plasteel/green/side{ + dir = 6 + }, +/area/awaymission/research/interior) +"ke" = ( +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (NORTH)"; + dir = 1 + }, +/area/awaymission/research/interior) +"kf" = ( +/obj/machinery/door/airlock/medical{ + name = "Medical" + }, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (NORTH)"; + dir = 1 + }, +/area/awaymission/research/interior) +"kg" = ( +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (NORTH)"; + dir = 1 + }, +/area/awaymission/research/interior/medbay) +"kh" = ( +/obj/item/ammo_casing/c45, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (NORTH)"; + dir = 1 + }, +/area/awaymission/research/interior/medbay) +"ki" = ( +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (NORTHEAST)"; + dir = 5 + }, +/area/awaymission/research/interior/medbay) +"kj" = ( +/obj/effect/mob_spawn/human/doctor{ + brute_damage = 145; + id_job = "Geneticist"; + oxy_damage = 55; + suit = /obj/item/clothing/suit/toggle/labcoat/genetics; + uniform = /obj/item/clothing/under/rank/geneticist; + name = "Geneticist" + }, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel/whiteblue, +/area/awaymission/research/interior/medbay) +"kk" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel/whiteblue, +/area/awaymission/research/interior/medbay) +"kl" = ( +/obj/structure/table, +/turf/open/floor/plasteel/whiteblue/corner{ + tag = "icon-whitebluecorner (EAST)"; + dir = 4 + }, +/area/awaymission/research/interior/medbay) +"km" = ( +/obj/structure/table, +/obj/item/weapon/circular_saw, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (NORTH)"; + dir = 1 + }, +/area/awaymission/research/interior/medbay) +"kn" = ( +/obj/structure/table, +/obj/item/weapon/scalpel, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (NORTH)"; + dir = 1 + }, +/area/awaymission/research/interior/medbay) +"ko" = ( +/turf/open/floor/plasteel/whiteblue/corner{ + tag = "icon-whitebluecorner (NORTH)"; + dir = 1 + }, +/area/awaymission/research/interior/medbay) +"kp" = ( +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 4; + name = "Dorms APC"; + pixel_x = 24; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/turf/open/floor/plating, +/area/awaymission/research/interior/dorm) +"kq" = ( +/obj/machinery/door/airlock{ + id_tag = "Dorm1"; + name = "Dorm 1" + }, +/turf/open/floor/wood, +/area/awaymission/research/interior/dorm) +"kr" = ( +/obj/machinery/door/airlock{ + id_tag = "Dorm2"; + name = "Dorm 2" + }, +/turf/open/floor/wood, +/area/awaymission/research/interior/dorm) +"ks" = ( +/obj/machinery/door/airlock{ + id_tag = "Dorm3"; + name = "Dorm 3" + }, +/turf/open/floor/wood, +/area/awaymission/research/interior/dorm) +"kt" = ( +/obj/item/weapon/gun/projectile/automatic/pistol/m1911, +/turf/open/floor/plasteel, +/area/awaymission/research/interior/dorm) +"ku" = ( +/obj/structure/closet/wardrobe/pjs, +/turf/open/floor/plasteel/yellowsiding{ + tag = "icon-yellowsiding (EAST)"; + dir = 4 + }, +/area/awaymission/research/interior/dorm) +"kv" = ( +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (NORTHWEST)"; + dir = 9 + }, +/area/awaymission/research/interior) +"kw" = ( +/turf/open/floor/plasteel/whiteblue/corner{ + tag = "icon-whitebluecorner (EAST)"; + dir = 4 + }, +/area/awaymission/research/interior/medbay) +"kx" = ( +/obj/item/stack/rods, +/obj/item/weapon/shard{ + icon_state = "small" + }, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (NORTH)"; + dir = 1 + }, +/area/awaymission/research/interior/medbay) +"ky" = ( +/obj/structure/table, +/obj/machinery/light, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (NORTH)"; + dir = 1 + }, +/area/awaymission/research/interior/medbay) +"kz" = ( +/obj/machinery/iv_drip, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (NORTH)"; + dir = 1 + }, +/area/awaymission/research/interior/medbay) +"kA" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (NORTH)"; + dir = 1 + }, +/area/awaymission/research/interior/medbay) +"kB" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/tinted/fulltile, +/turf/open/floor/plating, +/area/awaymission/research/interior/medbay) +"kC" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/plasteel/yellowsiding{ + tag = "icon-yellowsiding (NORTHWEST)"; + dir = 9 + }, +/area/awaymission/research/interior/dorm) +"kD" = ( +/turf/open/floor/plasteel/yellowsiding/corner{ + dir = 1 + }, +/area/awaymission/research/interior/dorm) +"kE" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel, +/area/awaymission/research/interior/dorm) +"kF" = ( +/obj/structure/closet/wardrobe/green, +/turf/open/floor/plasteel/yellowsiding{ + tag = "icon-yellowsiding (EAST)"; + dir = 4 + }, +/area/awaymission/research/interior/dorm) +"kG" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/door/airlock/maintenance_hatch{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"kH" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (EAST)"; + dir = 4 + }, +/area/awaymission/research/interior) +"kI" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/whitegreen, +/area/awaymission/research/interior) +"kJ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (WEST)"; + dir = 8 + }, +/area/awaymission/research/interior) +"kK" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"kL" = ( +/turf/open/floor/plating, +/area/awaymission/research/interior/medbay) +"kM" = ( +/obj/machinery/door/airlock/medical{ + name = "Medical Storage" + }, +/turf/open/floor/plasteel/whiteblue, +/area/awaymission/research/interior/medbay) +"kN" = ( +/obj/machinery/vending/cola, +/turf/open/floor/plasteel/whiteblue/corner, +/area/awaymission/research/interior/medbay) +"kO" = ( +/obj/structure/chair/comfy/beige, +/turf/open/floor/plasteel/whiteblue/side, +/area/awaymission/research/interior/medbay) +"kP" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"kQ" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/yellowsiding{ + dir = 8 + }, +/area/awaymission/research/interior/dorm) +"kR" = ( +/obj/structure/table/wood, +/turf/open/floor/plasteel, +/area/awaymission/research/interior/dorm) +"kS" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/pill_bottle/dice, +/turf/open/floor/plasteel, +/area/awaymission/research/interior/dorm) +"kT" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen/fourcolor, +/turf/open/floor/plasteel, +/area/awaymission/research/interior/dorm) +"kU" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel, +/area/awaymission/research/interior/dorm) +"kV" = ( +/obj/structure/closet/wardrobe/grey, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/yellowsiding{ + tag = "icon-yellowsiding (EAST)"; + dir = 4 + }, +/area/awaymission/research/interior/dorm) +"kW" = ( +/turf/open/floor/plasteel/whiteblue/corner, +/area/awaymission/research/interior/medbay) +"kX" = ( +/obj/item/stack/rods, +/obj/item/weapon/shard{ + icon_state = "small" + }, +/turf/open/floor/plasteel/whiteblue/side, +/area/awaymission/research/interior/medbay) +"kY" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel/whiteblue/corner, +/area/awaymission/research/interior/medbay) +"kZ" = ( +/obj/item/stack/rods, +/turf/open/floor/plasteel/whiteblue/side, +/area/awaymission/research/interior/medbay) +"la" = ( +/obj/item/weapon/shard{ + icon_state = "small" + }, +/turf/open/floor/plasteel/whiteblue/corner{ + tag = "icon-whitebluecorner (WEST)"; + dir = 8 + }, +/area/awaymission/research/interior/medbay) +"lb" = ( +/obj/structure/table, +/obj/machinery/microwave, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (WEST)"; + dir = 8 + }, +/area/awaymission/research/interior/medbay) +"lc" = ( +/obj/structure/window/reinforced, +/obj/structure/closet/wardrobe/mixed, +/turf/open/floor/plasteel/yellowsiding{ + tag = "icon-yellowsiding (EAST)"; + dir = 4 + }, +/area/awaymission/research/interior/dorm) +"ld" = ( +/obj/structure/closet/crate/freezer, +/obj/item/weapon/reagent_containers/blood/random, +/obj/item/weapon/reagent_containers/blood/random, +/obj/item/weapon/reagent_containers/blood/random, +/obj/item/weapon/reagent_containers/blood/random, +/obj/item/weapon/reagent_containers/blood/random, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (EAST)"; + dir = 4 + }, +/area/awaymission/research/interior/medbay) +"le" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (WEST)"; + dir = 8 + }, +/area/awaymission/research/interior/medbay) +"lf" = ( +/obj/item/ammo_casing/c45, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (EAST)"; + dir = 4 + }, +/area/awaymission/research/interior/medbay) +"lg" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/item/ammo_casing/c45, +/obj/item/weapon/shard{ + icon_state = "small" + }, +/turf/open/floor/plasteel/whiteblue, +/area/awaymission/research/interior/medbay) +"lh" = ( +/obj/item/stack/rods, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (WEST)"; + dir = 8 + }, +/area/awaymission/research/interior/medbay) +"li" = ( +/obj/effect/decal/cleanable/blood, +/obj/item/stack/rods, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (EAST)"; + dir = 4 + }, +/area/awaymission/research/interior/medbay) +"lj" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/item/ammo_casing/c45, +/turf/open/floor/plasteel/whiteblue, +/area/awaymission/research/interior/medbay) +"lk" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/whiteblue, +/area/awaymission/research/interior/medbay) +"ll" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/donkpockets, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (WEST)"; + dir = 8 + }, +/area/awaymission/research/interior/medbay) +"lm" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/yellowsiding{ + dir = 8 + }, +/area/awaymission/research/interior/dorm) +"ln" = ( +/turf/open/floor/plasteel, +/area/space) +"lo" = ( +/obj/structure/table/wood, +/obj/structure/bedsheetbin, +/turf/open/floor/plasteel, +/area/awaymission/research/interior/dorm) +"lp" = ( +/obj/machinery/washing_machine, +/turf/open/floor/plasteel/yellowsiding{ + tag = "icon-yellowsiding (EAST)"; + dir = 4 + }, +/area/awaymission/research/interior/dorm) +"lq" = ( +/obj/machinery/iv_drip, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (EAST)"; + dir = 4 + }, +/area/awaymission/research/interior/medbay) +"lr" = ( +/mob/living/simple_animal/hostile/syndicate, +/turf/open/floor/plasteel/whiteblue, +/area/awaymission/research/interior/medbay) +"ls" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular, +/obj/item/weapon/storage/firstaid/toxin, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (WEST)"; + dir = 8 + }, +/area/awaymission/research/interior/medbay) +"lt" = ( +/obj/effect/decal/cleanable/blood, +/obj/item/ammo_casing/c45, +/turf/open/floor/plasteel/whiteblue, +/area/awaymission/research/interior/medbay) +"lu" = ( +/obj/item/ammo_casing/c45, +/obj/item/ammo_casing/c45, +/obj/item/weapon/shard{ + icon_state = "small" + }, +/turf/open/floor/plating, +/area/awaymission/research/interior/medbay) +"lv" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/item/ammo_casing/c45, +/obj/item/stack/rods, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (EAST)"; + dir = 4 + }, +/area/awaymission/research/interior/medbay) +"lw" = ( +/obj/effect/mob_spawn/human/doctor{ + brute_damage = 200 + }, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel/whiteblue, +/area/awaymission/research/interior/medbay) +"lx" = ( +/obj/structure/table, +/obj/item/weapon/storage/fancy/cigarettes/dromedaryco, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (WEST)"; + dir = 8 + }, +/area/awaymission/research/interior/medbay) +"ly" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-16"; + layer = 4.1 + }, +/turf/open/floor/plasteel/yellowsiding{ + tag = "icon-yellowsiding (SOUTHWEST)"; + dir = 10 + }, +/area/awaymission/research/interior/dorm) +"lz" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/yellowsiding, +/area/awaymission/research/interior/dorm) +"lA" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/yellowsiding, +/area/awaymission/research/interior/dorm) +"lB" = ( +/turf/open/floor/plasteel/yellowsiding/corner{ + dir = 8 + }, +/area/awaymission/research/interior/dorm) +"lC" = ( +/obj/machinery/iv_drip, +/turf/open/floor/plasteel/whiteblue/corner{ + tag = "icon-whitebluecorner (EAST)"; + dir = 4 + }, +/area/awaymission/research/interior/medbay) +"lD" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (NORTH)"; + dir = 1 + }, +/area/awaymission/research/interior/medbay) +"lE" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/brute, +/obj/item/weapon/storage/firstaid/fire, +/turf/open/floor/plasteel/whiteblue/corner{ + tag = "icon-whitebluecorner (NORTH)"; + dir = 1 + }, +/area/awaymission/research/interior/medbay) +"lF" = ( +/obj/effect/mob_spawn/human/doctor{ + brute_damage = 200 + }, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel/whiteblue/corner{ + tag = "icon-whitebluecorner (EAST)"; + dir = 4 + }, +/area/awaymission/research/interior/medbay) +"lG" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/plasteel/whiteblue/corner{ + tag = "icon-whitebluecorner (NORTH)"; + dir = 1 + }, +/area/awaymission/research/interior/medbay) +"lH" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/whiteblue/corner{ + tag = "icon-whitebluecorner (EAST)"; + dir = 4 + }, +/area/awaymission/research/interior/medbay) +"lI" = ( +/obj/machinery/vending/snack, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (NORTH)"; + dir = 1 + }, +/area/awaymission/research/interior/medbay) +"lJ" = ( +/obj/structure/closet/crate/bin, +/obj/item/trash/can, +/obj/item/trash/chips, +/turf/open/floor/plasteel/whiteblue/corner{ + tag = "icon-whitebluecorner (NORTH)"; + dir = 1 + }, +/area/awaymission/research/interior/medbay) +"lK" = ( +/obj/machinery/door/airlock{ + id_tag = "Dorm6"; + name = "Dorm 6" + }, +/turf/open/floor/wood, +/area/awaymission/research/interior/dorm) +"lL" = ( +/obj/machinery/door/airlock{ + id_tag = "Dorm5"; + name = "Dorm 5" + }, +/turf/open/floor/wood, +/area/awaymission/research/interior/dorm) +"lM" = ( +/obj/machinery/door/airlock{ + id_tag = "Dorm4"; + name = "Dorm 4" + }, +/turf/open/floor/wood, +/area/awaymission/research/interior/dorm) +"lN" = ( +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 32; + tag = "icon-alarm0 (WEST)" + }, +/turf/open/floor/plasteel/yellowsiding{ + tag = "icon-yellowsiding (EAST)"; + dir = 4 + }, +/area/awaymission/research/interior/dorm) +"lO" = ( +/obj/machinery/button/door{ + id = "Dorm6"; + name = "Privacy Button"; + pixel_y = 28 + }, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/awaymission/research/interior/dorm) +"lP" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/rainbow, +/turf/open/floor/wood, +/area/awaymission/research/interior/dorm) +"lQ" = ( +/obj/machinery/button/door{ + id = "Dorm5"; + name = "Privacy Button"; + pixel_y = 28 + }, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/awaymission/research/interior/dorm) +"lR" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/green, +/turf/open/floor/wood, +/area/awaymission/research/interior/dorm) +"lS" = ( +/obj/machinery/button/door{ + id = "Dorm4"; + name = "Privacy Button"; + pixel_y = 28 + }, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/awaymission/research/interior/dorm) +"lT" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/patriot, +/obj/effect/landmark{ + name = "awaystart" + }, +/turf/open/floor/wood, +/area/awaymission/research/interior/dorm) +"lU" = ( +/obj/machinery/computer/arcade, +/turf/open/floor/plasteel/yellowsiding{ + tag = "icon-yellowsiding (EAST)"; + dir = 4 + }, +/area/awaymission/research/interior/dorm) +"lV" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plating, +/area/awaymission/research/interior/maint) +"lW" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Medbay APC"; + pixel_y = 24 + }, +/turf/open/floor/plating, +/area/awaymission/research/interior/medbay) +"lX" = ( +/obj/structure/closet/crate/bin, +/turf/open/floor/plasteel/yellowsiding{ + tag = "icon-yellowsiding (SOUTHWEST)"; + dir = 10 + }, +/area/awaymission/research/interior/dorm) +"lY" = ( +/turf/open/floor/plasteel/yellowsiding{ + tag = "icon-yellowsiding (SOUTHEAST)"; + dir = 6 + }, +/area/awaymission/research/interior/dorm) +"lZ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Escape APC"; + pixel_y = -24 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/awaymission/research/interior/escapepods) +"ma" = ( +/turf/closed/wall/r_wall, +/area/awaymission/research/interior/escapepods) +"mb" = ( +/turf/closed/wall, +/area/awaymission/research/interior/escapepods) +"mc" = ( +/obj/item/stack/rods, +/obj/item/weapon/shard, +/turf/open/floor/plating/asteroid, +/area/awaymission/research/exterior) +"md" = ( +/turf/open/floor/plating/asteroid, +/area/awaymission/research/exterior) +"me" = ( +/turf/closed/wall/mineral/titanium, +/area/awaymission/research/exterior) +"mf" = ( +/turf/open/floor/plating/asteroid/airless, +/obj/structure/shuttle/engine/propulsion/burst{ + tag = "icon-propulsion (WEST)"; + icon_state = "propulsion"; + dir = 8 + }, +/turf/closed/wall/mineral/titanium/interior, +/area/awaymission/research/exterior) +"mg" = ( +/obj/structure/closet/emcloset, +/obj/structure/sign/vacuum{ + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/awaymission/research/interior/escapepods) +"mh" = ( +/obj/structure/sign/pods{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/whitegreen/corner, +/area/awaymission/research/interior/escapepods) +"mi" = ( +/turf/open/floor/plasteel/whitegreen/side, +/area/awaymission/research/interior/escapepods) +"mj" = ( +/obj/structure/table, +/turf/open/floor/plasteel/whitegreen/side, +/area/awaymission/research/interior/escapepods) +"mk" = ( +/obj/machinery/computer/arcade, +/turf/open/floor/plasteel/whitegreen/side, +/area/awaymission/research/interior/escapepods) +"ml" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/whitegreen/side, +/area/awaymission/research/interior/escapepods) +"mm" = ( +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (SOUTHEAST)"; + dir = 6 + }, +/area/awaymission/research/interior/escapepods) +"mn" = ( +/turf/open/floor/plasteel/whitegreen, +/area/awaymission/research/interior/escapepods) +"mo" = ( +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (SOUTHWEST)"; + dir = 10 + }, +/area/awaymission/research/interior/escapepods) +"mp" = ( +/turf/open/floor/plasteel/whitegreen/corner{ + tag = "icon-whitegreencorner (WEST)"; + dir = 8 + }, +/area/awaymission/research/interior/escapepods) +"mq" = ( +/turf/open/floor/plating, +/area/awaymission/research/exterior) +"mr" = ( +/obj/item/stack/rods, +/obj/item/weapon/shard, +/obj/effect/mob_spawn/human/doctor{ + brute_damage = 200 + }, +/turf/open/floor/plasteel/shuttle, +/area/awaymission/research/exterior) +"ms" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/mob_spawn/human/doctor{ + brute_damage = 145; + id_job = "Geneticist"; + oxy_damage = 55; + suit = /obj/item/clothing/suit/toggle/labcoat/genetics; + uniform = /obj/item/clothing/under/rank/geneticist; + name = "Geneticist" + }, +/turf/open/floor/plasteel/shuttle, +/area/awaymission/research/exterior) +"mt" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Escape Pod Airlock" + }, +/turf/open/floor/plasteel/shuttle, +/area/awaymission/research/exterior) +"mu" = ( +/obj/machinery/door/airlock/external{ + name = "Escape Pod One" + }, +/turf/open/floor/plating, +/area/awaymission/research/interior/escapepods) +"mv" = ( +/turf/open/floor/plating, +/area/awaymission/research/interior/escapepods) +"mw" = ( +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (EAST)"; + dir = 4 + }, +/area/awaymission/research/interior/escapepods) +"mx" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (WEST)"; + dir = 8 + }, +/area/awaymission/research/interior/escapepods) +"my" = ( +/turf/open/floor/plating/asteroid/airless, +/turf/closed/wall/mineral/titanium/interior, +/area/awaymission/research/exterior) +"mz" = ( +/turf/open/floor/plating/asteroid/airless, +/obj/structure/shuttle/engine/propulsion/burst{ + tag = "icon-propulsion (WEST)"; + icon_state = "propulsion"; + dir = 8 + }, +/turf/closed/wall/shuttle{ + icon_state = "swall_f9"; + dir = 2 + }, +/area/awaymission/research/exterior) +"mA" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (WEST)"; + dir = 8 + }, +/area/awaymission/research/interior/escapepods) +"mB" = ( +/turf/closed/wall, +/area/awaymission/research/exterior) +"mC" = ( +/obj/machinery/light{ + tag = "icon-tube1 (WEST)"; + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (EAST)"; + dir = 4 + }, +/area/awaymission/research/interior/escapepods) +"mD" = ( +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (NORTHWEST)"; + dir = 9 + }, +/area/awaymission/research/interior/escapepods) +"mE" = ( +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (NORTH)"; + dir = 1 + }, +/area/awaymission/research/interior/escapepods) +"mF" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (NORTH)"; + dir = 1 + }, +/area/awaymission/research/interior/escapepods) +"mG" = ( +/obj/structure/table, +/obj/machinery/light, +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (NORTH)"; + dir = 1 + }, +/area/awaymission/research/interior/escapepods) +"mH" = ( +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (NORTHEAST)"; + dir = 5 + }, +/area/awaymission/research/interior/escapepods) +"mI" = ( +/obj/structure/sign/pods{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (EAST)"; + dir = 4 + }, +/area/awaymission/research/interior/escapepods) +"mJ" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + layer = 4.1 + }, +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (WEST)"; + dir = 8 + }, +/area/awaymission/research/interior/escapepods) +"mK" = ( +/obj/structure/flora/ausbushes/brflowers, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/turf/open/floor/grass, +/area/awaymission/research/interior/escapepods) +"mL" = ( +/obj/structure/flora/ausbushes/fernybush, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/turf/open/floor/grass, +/area/awaymission/research/interior/escapepods) +"mM" = ( +/obj/structure/flora/ausbushes/grassybush, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/turf/open/floor/grass, +/area/awaymission/research/interior/escapepods) +"mN" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "applebush"; + layer = 4.1 + }, +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (EAST)"; + dir = 4 + }, +/area/awaymission/research/interior/escapepods) +"mO" = ( +/obj/machinery/door/airlock/external{ + name = "Escape Pod Two" + }, +/turf/open/floor/plating, +/area/awaymission/research/interior/escapepods) +"mP" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/whitegreen/side, +/area/awaymission/research/interior/escapepods) +"mQ" = ( +/obj/structure/table, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/whitegreen/side, +/area/awaymission/research/interior/escapepods) +"mR" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (EAST)"; + dir = 4 + }, +/area/awaymission/research/interior/escapepods) +"mS" = ( +/obj/machinery/door/airlock/external{ + name = "Escape Pod Three"; + req_access_txt = "0" + }, +/turf/open/floor/plating, +/area/awaymission/research/interior/escapepods) +"mT" = ( +/turf/open/floor/plasteel/whitegreen/corner{ + tag = "icon-whitegreencorner (EAST)"; + dir = 4 + }, +/area/awaymission/research/interior/escapepods) +"mU" = ( +/obj/structure/sign/vacuum{ + pixel_y = -32 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (NORTH)"; + dir = 1 + }, +/area/awaymission/research/interior/escapepods) +"mV" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (NORTH)"; + dir = 1 + }, +/area/awaymission/research/interior/escapepods) +"mW" = ( +/obj/structure/sign/vacuum{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (NORTH)"; + dir = 1 + }, +/area/awaymission/research/interior/escapepods) +"mX" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 32; + tag = "icon-alarm0 (WEST)" + }, +/turf/open/floor/plasteel/whitegreen/corner{ + tag = "icon-whitegreencorner (NORTH)"; + dir = 1 + }, +/area/awaymission/research/interior/escapepods) +"mY" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/awaymission/research/interior/escapepods) +"mZ" = ( +/obj/machinery/door/airlock/external{ + name = "Escape Airlock" + }, +/turf/open/floor/plating, +/area/awaymission/research/interior/escapepods) +"na" = ( +/turf/closed/wall/mineral/plasma, +/area/space) +"nb" = ( +/obj/structure/table/wood, +/obj/item/weapon/spellbook/oneuse/random, +/turf/open/floor/mineral/plasma, +/area/space) +"nc" = ( +/mob/living/simple_animal/hostile/creature, +/turf/open/floor/mineral/plasma, +/area/space) +"nd" = ( +/obj/structure/healingfountain, +/turf/open/floor/mineral/plasma, +/area/space) +"ne" = ( +/turf/open/floor/mineral/plasma, +/area/space) + +(1,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(8,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(9,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(10,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(11,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(12,1,1) = {" +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(13,1,1) = {" +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(14,1,1) = {" +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(15,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(16,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(17,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +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 +na +na +na +na +na +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 +"} +(18,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +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 +na +nb +nb +nb +na +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 +"} +(19,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +na +nc +ne +nc +na +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 +"} +(20,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +na +nd +ne +nd +na +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 +"} +(21,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +na +na +ne +na +na +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 +"} +(22,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +na +ne +na +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 +"} +(23,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +na +na +ne +na +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 +"} +(24,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +na +ne +ne +na +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 +"} +(25,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +na +na +na +na +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 +"} +(26,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +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 +"} +(27,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +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 +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 +"} +(28,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +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 +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 +"} +(29,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +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 +"} +(30,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +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 +"} +(31,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +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 +"} +(32,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +"} +(33,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +"} +(34,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +"} +(35,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(36,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +"} +(37,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(38,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(39,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(40,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(41,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(42,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(43,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(44,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(45,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(46,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(47,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(48,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(49,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 +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(50,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 +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ac +ac +ac +ac +ac +ac +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 +"} +(51,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 +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ac +ac +ac +ac +ac +ac +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 +"} +(52,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 +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(53,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 +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(54,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 +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(55,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 +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(56,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 +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(57,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 +ab +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ab +ab +ac +ac +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 +"} +(58,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 +ab +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ab +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 +"} +(59,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 +ab +ab +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ab +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 +"} +(60,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 +ab +ab +ab +ab +ab +ab +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ab +ab +ab +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 +"} +(61,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 +ab +ab +ab +ab +ab +ab +ab +ab +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ab +ab +ab +ab +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 +"} +(62,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 +ab +ab +ab +ab +ab +ab +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(63,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 +ab +ab +ab +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(64,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 +ab +ab +ab +ab +ab +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(65,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 +ab +ab +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 +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(66,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 +ab +ab +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 +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(67,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 +ab +ab +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 +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(68,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 +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 +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(69,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 +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 +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(70,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 +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 +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(71,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 +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 +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(72,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 +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 +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(80,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 +ad +ad +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(81,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +aa +aa +aa +ae +ae +ae +ae +ae +ae +ae +ae +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(82,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ad +ad +ad +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(83,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ad +ad +ad +ad +ad +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(84,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(85,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ae +ae +ae +ae +ae +ae +ae +ae +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(86,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ae +ae +ae +ae +ae +ae +ae +ae +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(87,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ae +ae +ae +ae +ae +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(88,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ae +ae +ae +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 +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(89,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +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 +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(90,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +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 +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(91,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +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 +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(92,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +cQ +cQ +cQ +cQ +cQ +cQ +cQ +cQ +cQ +cQ +cQ +cQ +cQ +cQ +cQ +cQ +cQ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(93,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +cQ +db +db +dK +cQ +er +cQ +fw +gd +dc +cQ +hs +cQ +db +db +dK +cQ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(94,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ad +ad +ad +ad +ad +ad +ad +cQ +dc +dc +dc +dW +dc +cQ +fx +ge +dc +cQ +dc +hI +dc +dc +dc +cQ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(95,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +cQ +dc +dc +dc +cQ +dc +cQ +fy +gf +fw +cQ +dc +cQ +dc +dc +dc +cQ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(96,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +cQ +dd +dp +dL +cQ +dc +cQ +cQ +gg +cQ +cQ +dc +cQ +hS +dM +il +cQ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(97,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +cQ +cQ +cQ +cQ +cQ +dc +eT +dK +gh +dK +dc +dc +cQ +cQ +cQ +cQ +cQ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aa +aa +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(98,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +cQ +de +db +dK +cQ +dc +eU +dc +gi +dc +dc +dc +cQ +db +db +dK +cQ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aa +aa +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(99,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +aa +aa +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +cQ +dc +dc +dc +dX +dc +dc +dc +gj +dc +dc +dc +hJ +dc +dc +dc +cQ +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(100,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +cQ +dc +dc +dc +cQ +dc +eV +eW +gk +eW +eV +dc +cQ +dc +dc +dc +cQ +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(101,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ad +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +cQ +df +dd +dM +cQ +dc +eW +fz +gi +fz +eW +dc +cQ +hT +hT +dd +cQ +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(102,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +cQ +cQ +cQ +cQ +cQ +cQ +cQ +cQ +gl +cQ +cQ +cQ +cQ +cQ +cQ +cQ +cQ +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(103,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +cQ +dc +dc +fA +gi +fA +dc +dc +cQ +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(104,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +cQ +dc +dc +dc +gi +dc +dc +dc +cQ +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 +ae +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(105,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +cQ +dc +dc +dc +gm +dc +dc +dc +cQ +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 +ae +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +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 +"} +(106,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +cQ +cQ +cQ +cQ +gn +cQ +cQ +cQ +cQ +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 +ae +ae +ae +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +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 +"} +(107,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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ae +ae +ae +dY +go +dY +ae +ae +ae +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 +ae +ae +ae +ae +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +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 +"} +(108,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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +bl +bl +bl +bl +bl +bl +ad +ad +ad +ae +ae +ae +ae +dY +go +dY +ae +ae +ae +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 +mc +mq +my +ae +ae +ae +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +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 +"} +(109,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +bl +bl +bQ +bQ +ci +ct +bl +bl +ad +ae +ae +ae +ae +ae +dY +go +dY +ae +ae +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 +md +mr +me +ae +ae +ae +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +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 +"} +(110,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +bl +bz +bR +bR +cj +bz +cD +bl +ad +ae +ae +dY +dY +cp +dY +go +dY +ae +ae +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 +me +ms +me +ae +ae +ae +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +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 +"} +(111,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +bl +bA +bS +bY +cj +bz +bz +bl +cp +cp +cp +dY +es +eX +es +go +dY +ae +ae +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 +mf +mt +mf +ae +ae +ae +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +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 +"} +(112,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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +bl +bB +bT +bZ +ck +bz +cu +cR +dg +dg +dg +dg +dg +dg +dg +gp +cp +ae +ae +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 +ae +ae +ae +ae +ae +ae +ae +ae +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +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 +"} +(113,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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +bl +bC +bU +ca +cj +bz +cE +bl +cp +cp +cp +dY +es +eY +es +go +dY +ae +ae +ae +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +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 +"} +(114,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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +bl +bz +bR +bR +cj +cu +cF +bl +ad +ae +ae +dY +dY +cp +dY +go +dY +ae +ae +ae +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ab +ab +ab +ac +ac +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 +"} +(115,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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +bl +bl +bz +cb +cl +cv +bl +bl +ad +ae +ae +ae +ae +ae +dY +go +dY +ae +ae +ae +ae +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ac +ac +ac +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 +"} +(116,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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +bl +bl +bl +bl +bl +bl +ad +ad +ad +ae +ae +ae +ae +dY +go +dY +ae +ae +ae +ae +ae +ae +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(117,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 +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 +ae +ae +ae +dY +go +dY +ae +ae +ae +ae +ae +ae +ae +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(118,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 +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 +aH +cp +cp +gq +cp +cp +aH +ad +ad +ad +ad +ae +ae +ad +ad +ad +ad +ad +ji +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(119,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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aH +aH +aH +aH +eZ +fB +gr +fB +eZ +aH +aH +aH +aH +ad +ad +ae +ae +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(120,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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aH +cm +dZ +et +fa +fC +gs +fC +fC +et +dZ +cc +aH +ad +ad +ae +ae +ae +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(121,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 +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aH +cd +ea +ea +ea +ea +gt +ea +ea +ea +ea +cd +aH +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(122,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 +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aH +aH +aH +aH +aH +aH +cd +ea +eu +fb +fD +gu +eu +fb +fD +ea +cd +aH +aH +aH +aH +aH +aH +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(123,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 +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aH +cm +co +cS +co +co +cw +ea +ev +fc +fE +gu +ev +fc +fE +ea +ce +co +co +iw +co +cc +aH +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(124,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aH +aH +cd +cx +cx +cx +cx +cx +ea +ev +fd +fE +gv +ev +fd +fE +ea +cx +cx +cx +cx +cx +hw +aH +aH +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(125,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 +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aH +cm +cw +cx +cT +dh +dq +cT +ea +ev +fc +fE +gu +ev +fc +fE +ea +hU +dq +dh +dh +cx +ce +cc +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(126,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 +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aH +cd +cx +cx +cU +di +dr +dr +ea +ew +fe +fE +gu +ev +fe +fE +ea +dr +du +dh +ix +cx +cx +hw +id +cm +co +co +co +co +kp +co +kP +co +co +co +co +co +co +co +co +cc +aH +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(127,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 +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aH +cd +cx +cG +cK +cK +cK +dN +ea +ev +fc +fE +gu +ev +fc +fE +ea +cK +dP +dt +cK +cK +cy +hw +id +hw +iX +iX +iX +iX +iX +iX +iX +aP +iX +iX +iX +iX +iX +iX +iX +hw +aH +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(128,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aH +cd +cx +cH +cK +cK +ds +cK +ea +ex +ff +fF +gu +gQ +ff +ht +ea +cK +cK +im +cK +cJ +cx +hD +id +hw +iX +jj +jC +jT +iX +kC +kQ +jE +lm +ly +iX +lO +jC +jj +iX +hw +aH +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(129,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 +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aH +cd +cx +cI +cV +cK +cK +dO +eb +ey +ey +fG +gw +gR +hj +hu +hK +cK +cK +cK +iy +iG +cx +hw +id +hw +iX +jk +jD +jk +kq +jn +kR +kR +jF +kc +lK +jk +jD +jk +iX +hw +aH +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(130,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 +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aH +cd +cx +cJ +cK +cK +cK +dP +ea +ez +fg +fD +gu +gS +fg +hv +ea +cK +ds +in +cK +iH +cx +hw +id +hw +iX +jl +jk +jU +iX +jn +kS +kR +kU +kc +iX +lP +jk +jl +iX +hw +aH +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(131,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 +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 +ad +ad +ad +ad +ad +ae +ae +ae +ad +ad +ad +ad +ad +ad +ad +ad +aH +cd +cy +cK +cK +dj +dt +cK +ea +ev +fc +fE +gu +ev +fc +fE +ea +hV +cK +cK +dP +iI +cx +hw +id +hw +iX +iX +iX +iX +iX +jn +kT +kR +jF +kc +iX +iX +iX +iX +iX +hw +aH +ae +ae +ae +mB +ae +ae +ae +mB +ae +ae +ae +mB +ae +ae +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(132,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 +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 +ad +ad +ad +ad +ae +ae +ae +ae +ad +ad +ad +ad +ad +ad +ad +ad +aH +cn +cx +cx +cW +dh +du +dQ +ea +eA +fd +fE +gu +ev +fd +fE +ea +hW +ib +ib +iz +cx +cx +hw +id +hw +iX +jj +jC +jV +iX +jn +kU +jF +jF +kc +iX +lQ +jC +jj +iX +hw +ma +mb +mu +mb +mb +mb +mO +mb +mb +mb +mS +mb +mb +ae +ae +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(133,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 +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 +ad +ad +ae +ae +ae +ae +ae +ae +ae +ae +ad +ad +ad +ad +ad +ad +aH +ce +cc +cx +cX +dh +dv +dh +ea +eB +fc +fH +gx +ev +fc +fE +ea +dh +ic +dh +cT +cx +cm +cw +id +hw +iX +jk +jD +jk +kr +jn +jF +jF +ln +kc +lL +jk +jD +jk +iX +hw +ma +mg +mv +mv +mb +mg +mv +mv +mb +mg +mv +mv +mb +ae +ae +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(134,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 +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 +ad +ad +ae +ae +ae +ae +ae +ae +ae +ae +ad +ad +ad +ad +ad +ad +aH +aH +cd +cx +cx +cx +cx +cx +ea +eC +fe +fI +gu +gT +fe +fE +ea +cx +cx +cx +cx +cx +hw +id +id +hw +iX +jl +jk +jW +iX +jn +jF +jF +jF +kc +iX +lR +jk +jl +iX +hw +ma +mb +mu +mb +mb +mb +mO +mb +mb +mb +mS +mb +mb +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(135,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 +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 +ad +ae +ae +ae +ae +ae +ae +ae +ae +ad +ad +ad +ad +ad +ad +ad +ad +aH +cz +co +co +co +co +cc +ea +ev +fh +fI +gv +ev +fc +fE +ea +cm +bD +bD +bD +bD +cw +id +aO +hw +iX +iX +iX +iX +iX +jn +jF +jF +jF +kc +iX +iX +iX +iX +iX +hw +mb +mh +mw +mw +mC +mI +mw +mw +mR +mI +mT +mb +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(136,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 +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 +ad +ae +ae +ae +ae +ae +ae +ae +ae +ad +ad +ad +ad +ad +ad +ad +ad +aH +aH +aH +aH +aH +aH +dR +ea +eD +fi +fJ +gy +gU +fi +fF +ea +hw +id +id +id +id +id +id +aO +hw +iX +jj +jC +jX +iX +jn +jF +jF +jF +lz +iX +lS +jC +jj +iX +hw +mb +mi +mn +mn +mn +mn +mn +mn +mn +mn +mE +mb +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(137,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 +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aH +dR +ea +ea +cp +fK +cp +fK +cp +ea +ea +hw +id +io +io +iJ +iA +iM +aO +hw +iX +jk +jD +jk +ks +jn +jF +jF +kU +kc +lM +jk +jD +jk +iX +hw +mb +mj +mn +mn +mn +mn +mn +mn +mn +mn +mE +mY +mY +mY +mY +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(138,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 +ae +ae +ae +ae +ae +ae +ae +ae +ae +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aH +dR +ec +eE +cp +fL +eZ +gV +cp +cm +bD +cw +id +ip +iA +iK +iA +iM +aO +hw +iX +jl +jk +jY +iX +jn +kU +kR +jF +kc +iX +lT +jk +jl +iX +hw +mb +mj +mn +mn +mD +mJ +mo +mn +mn +mn +mE +mZ +mv +mv +mZ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(139,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 +ae +ae +ae +ae +ae +ae +ae +ae +ae +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aH +cd +ed +eF +cp +fL +gz +gV +cp +hw +eF +hX +id +ip +iA +iK +iN +iM +id +iT +iX +iX +iX +iX +iX +jn +jF +kR +jF +lA +iX +iX +iX +iX +iX +hw +mb +mk +mn +mn +mE +mb +mi +mn +mn +mn +mE +mY +mY +mY +mY +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(140,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 +ae +ae +ae +ae +ae +ae +ae +ae +ae +ad +ad +aH +aH +aH +aH +aH +aH +aH +aH +ad +ad +ad +ad +aH +cd +ee +ee +cp +fM +cp +fM +cp +hw +ee +ee +id +ip +iA +iA +iO +iM +iR +iU +iX +jm +jE +jE +jE +kD +jF +jF +lo +lB +jE +jE +jE +lX +iX +lZ +mb +ml +mn +mn +mF +mK +mP +mn +mn +mn +mU +mb +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(141,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 +ae +ae +ae +ae +ae +ae +ae +ae +ae +ad +ad +aH +aO +aY +bm +bD +bD +cc +aH +ad +ad +ad +aH +aH +cd +ef +eG +cp +fL +gA +gV +cp +hw +aO +hY +id +id +iA +iL +iA +iP +iR +iU +iY +jn +jF +jF +kt +kE +jF +jF +kU +jF +jF +jF +jF +lz +iX +hw +mb +mi +mn +mn +mF +mL +mP +mn +mn +mn +mE +mY +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(142,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 +ae +ae +ae +ae +ae +ae +ae +ar +ar +ar +ar +ar +aP +ar +ar +ar +ar +cd +aH +ad +ad +ad +aH +dw +dS +eg +cc +cp +fL +eZ +gV +cp +hx +aY +bD +cc +id +iB +iM +iB +iM +iS +iU +iX +jo +jF +jZ +jF +jF +jF +jF +jF +jF +jF +kU +kU +kc +iX +hD +mb +mi +mn +mn +mG +mb +mQ +mn +mn +mn +mE +mY +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(143,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 +ae +ae +af +ae +ae +ae +ae +ar +at +at +aD +ar +aQ +aZ +bn +bE +ar +cd +aH +ad +ad +ad +aH +cd +cp +cp +eH +cp +fM +gB +fM +cp +eH +cp +cp +hw +id +iC +iM +iC +iM +iR +iU +iX +jn +jF +ka +ku +kF +kV +lc +lp +lp +lN +lU +lU +lY +aP +cd +mb +mi +mn +mn +mG +mb +mQ +mn +mn +mn +mE +mY +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(144,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 +ae +ae +ae +ae +ae +ae +ae +ar +au +au +aE +aI +aR +ba +bh +bF +ar +cd +aH +aH +aH +aH +aH +dx +cp +eh +eI +fj +fN +gC +gW +fj +hy +hL +cp +hw +id +id +id +id +id +id +iT +iX +jp +jG +kb +iX +iX +iX +iX +iX +iX +iX +iX +iX +iX +iX +cd +aP +mi +mn +mn +mF +mM +mP +mn +mn +mn +mE +mY +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(145,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 +ae +ae +ae +ag +al +al +al +al +al +al +al +al +aS +bb +bo +bG +ar +ce +co +co +cL +cY +dk +dy +cp +ei +eJ +fk +fO +eZ +gX +hk +eJ +hM +cp +ie +iq +bD +bD +bD +bD +dZ +cw +iX +jn +jF +kc +iX +cm +co +co +co +co +co +co +co +co +co +cw +mb +ml +mn +mn +mF +mL +mP +mn +mn +mn +mV +mb +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(146,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 +ae +ae +ae +ah +am +ap +ap +ap +ap +ap +an +aJ +al +bc +bp +bH +ar +ar +cp +cp +cM +cp +aP +cp +cp +ej +eK +eJ +eJ +eZ +eJ +eJ +hz +hN +cp +cp +eH +iD +iD +iD +iD +iD +iD +iD +jq +jH +kd +iD +kG +iD +iD +iD +iD +iD +iD +iD +iD +iD +iD +iD +mi +mn +mn +mE +mb +mi +mn +mn +mn +mE +mY +mY +mY +mY +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(147,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 +ae +ae +ae +ai +an +an +an +as +an +an +an +an +aT +bd +bq +bI +bV +cf +cq +cA +cN +cZ +dl +dz +cZ +ek +eL +fl +eJ +eZ +eJ +eJ +hA +hO +hZ +hZ +ir +hZ +hZ +hZ +iQ +hZ +hZ +hA +hl +hl +hl +hO +kH +hZ +hZ +hZ +hZ +hZ +hZ +hZ +hZ +hZ +hZ +hZ +mm +mn +mn +mH +mN +mm +mn +mn +mn +mE +mZ +mv +mv +mZ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(148,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 +ae +ae +ae +ae +ai +an +an +an +an +an +an +an +aK +au +be +br +bJ +bW +cg +cr +cB +cO +cp +dm +dA +cp +el +eM +fm +fP +gD +gY +hl +hl +hl +hl +if +is +hl +hl +hl +hl +hl +hl +hl +hl +hl +hl +hl +kI +hl +hl +hl +hl +hl +hl +hl +hl +hl +hl +hl +mn +mn +mn +mn +mn +mn +mn +mn +mn +mE +mY +mY +mY +mY +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(149,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 +ae +ae +ae +ae +aj +ao +aq +aq +aq +aq +ay +an +aL +al +bf +bs +bK +bX +bd +cs +cC +cP +da +dn +dB +da +em +eN +eJ +eJ +gE +eJ +eJ +hB +hP +ia +ia +it +iE +ia +ia +ia +ia +ia +ia +jr +jI +hl +kv +kJ +ia +iE +ia +ia +ia +ia +ia +ia +iE +ia +ia +mo +mn +mn +mn +mn +mn +mn +mn +mn +mW +mb +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(150,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 +ae +ae +ae +ae +ak +al +al +al +al +al +al +al +al +aU +bg +bt +bL +ar +ar +cp +cp +cp +cp +aP +cp +cp +ei +eK +fn +eJ +gE +eJ +eJ +hC +hM +cp +cp +eH +cp +cp +cp +cp +cp +cp +cp +js +jJ +ke +cp +kG +iD +iD +iD +iD +iD +iD +iD +iD +iD +aP +iD +mp +mx +mA +mx +mx +mx +mx +mA +mx +mX +mb +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(151,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 +ae +ae +ae +ae +ae +ae +ae +ae +ar +av +az +aF +aM +au +aN +bu +bM +ar +aO +aO +aO +aO +aO +aO +dC +cp +ei +eJ +fo +fQ +gF +gZ +fo +eJ +hM +cp +ig +iu +co +co +co +co +co +cc +cp +jt +jK +kf +cp +cd +dC +aO +aO +aO +aO +aO +aO +aO +dC +aO +id +mb +mb +mb +mb +mb +mb +mb +mb +mb +mb +mb +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(152,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 +ae +ae +ae +ae +ae +ae +ae +ae +ar +aw +aA +aG +aN +aV +bh +bv +bN +ar +aO +aH +aH +aH +aH +aH +aO +cp +en +eO +eO +fR +gG +ha +eO +eO +hQ +cp +hw +aH +aH +aH +aH +aH +aH +cd +cp +js +jI +ke +cp +cd +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(153,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 +ae +ae +af +ae +ae +ae +ae +ae +ar +ax +aB +aB +aB +aW +bi +bw +bO +ar +aO +aH +ad +ad +ad +aH +aO +cp +cp +cp +cp +fS +cp +hb +cp +cp +cp +cp +hw +aH +ad +ad +ad +ad +aH +cd +cp +js +jL +ke +cp +cd +aH +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(154,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 +ae +ae +ae +ae +ae +ae +ae +ae +ar +ar +aC +aC +aC +ar +ar +ar +ar +ar +aO +aH +ad +ad +ad +aH +aO +aO +aH +aH +cp +fT +gE +hc +cp +aH +aH +cm +cw +aH +ad +ad +ad +ad +aH +cd +cp +jt +cp +kf +cp +cd +aH +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(155,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 +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +bx +bP +bx +ch +aH +ad +ad +ad +aH +aH +aO +aO +aO +aP +fT +gG +hc +aP +cm +bD +cw +aH +aH +ad +ad +ad +ad +aH +cd +cp +js +jM +ke +cp +cd +aH +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(156,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 +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +bj +aH +aH +aH +aH +aH +ad +ad +ad +ad +aH +aH +aH +eP +cp +fS +cp +hb +cp +hD +aH +aH +aH +ad +ad +ad +ad +ad +aH +cd +cp +js +jI +ke +cp +cd +aH +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 +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +"} +(157,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 +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aH +aO +cp +fT +gH +hc +cp +hw +aH +ad +ad +ad +ad +ad +ad +ad +aH +cd +cp +jt +cp +kf +cp +cd +aH +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 +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +"} +(158,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 +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ad +ad +ad +ad +ad +ad +aH +aH +aH +aH +aH +aH +aO +cp +fT +gE +hc +cp +hw +aH +aH +aH +aH +aH +aH +ad +aH +aH +iV +iW +jh +jN +kg +iW +kK +aH +aH +aH +aH +aH +aH +aH +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 +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +"} +(159,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 +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ad +ad +ad +ad +ad +ad +ad +aH +aO +aO +aO +aO +aO +aO +cp +fS +cp +hb +cp +ce +bD +bD +bD +bD +cc +aH +ad +aH +aO +aO +iW +jh +jO +kh +iW +ce +bD +bD +bD +bD +bD +cc +aH +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +"} +(160,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 +ad +ad +ae +ae +ae +ae +ae +ad +ae +ae +ae +ae +ad +ad +ad +ad +ad +ad +ad +ad +aH +aO +do +do +do +do +do +do +fU +gI +hd +do +do +do +do +do +do +hw +aH +ad +aH +aO +iW +iW +ju +jP +kh +iW +iW +iW +iW +iW +iW +iW +kK +aH +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +"} +(161,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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aH +aO +do +dD +dH +dH +do +fp +fV +fW +he +hm +do +dH +dH +dD +do +hw +aH +ad +aH +aO +iW +iZ +jv +jO +ki +kw +jf +kW +ld +lq +lC +iW +kK +aH +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +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) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aH +aO +do +dE +dH +dH +eQ +fq +fW +fW +fW +hn +hE +dH +dH +ih +do +hw +aH +ad +aH +aO +iW +ja +jw +jQ +jw +kx +kL +kX +jw +jw +lD +iW +kK +aH +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aH +aO +do +dF +dT +eo +eR +fr +fW +fW +fW +ho +hF +eo +dT +dF +do +hw +aH +ad +aH +aO +iW +ja +jw +jw +jQ +kg +kM +jh +jw +lr +kg +iW +kK +aH +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aH +aO +do +do +do +do +do +fs +fX +gJ +fX +hp +do +do +do +do +do +hw +aH +ad +aH +aO +iW +jb +jw +jw +kj +kg +jR +je +le +ls +lE +iW +kK +aH +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aH +aO +do +dD +dH +dH +do +fq +fW +gK +fW +hq +do +dH +dH +dD +do +hw +aH +ad +aH +aO +iW +jc +jw +jw +kk +ky +jf +jR +jR +jR +jR +iW +kK +aH +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aH +aO +do +dE +dH +dH +eQ +fq +fW +gK +fW +hn +hE +dH +dH +ih +do +hw +aH +ad +aH +aO +iW +jd +jw +jQ +jw +kz +jR +kY +lf +jz +lF +iW +lV +aH +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aH +aO +do +dF +dT +eo +eR +fr +fY +gK +fW +ho +hF +eo +dT +dF +do +hw +aH +ad +aH +aO +iW +ja +jw +jw +jw +kA +kM +jh +lg +lt +kh +aP +kK +aH +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aH +aO +do +do +do +do +do +ft +fZ +gL +fX +hp +do +do +do +do +do +hw +aH +ad +aH +aO +iW +ja +jw +jw +jw +kg +kL +kZ +lg +lr +lD +iW +lW +aH +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aH +aO +do +dG +dU +ep +do +fu +ga +gM +hf +he +hG +hG +hG +ii +do +iF +aH +ad +aH +aO +iW +je +jx +jx +jx +ko +jf +la +lh +jx +lG +iW +aO +aH +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aH +aO +do +dH +dH +dH +eS +fq +gb +gN +hg +fW +fW +fW +fW +hn +do +hw +aH +ad +aH +aO +iW +jf +jy +jR +jR +jf +jf +kB +jy +lu +jf +iW +aO +aH +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aH +aO +do +dI +dH +dH +eS +fq +fW +gO +hh +fW +fW +fW +fW +ij +do +hD +aH +ad +aH +aO +iW +jg +jz +jS +kl +jf +kN +jz +li +lv +lH +iW +aO +aH +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aH +aO +do +dJ +dV +eq +do +fv +gc +gP +hi +hr +hH +hR +hR +ik +iv +cw +aH +ad +aH +aO +iW +jh +jw +jw +km +kB +kO +jP +lj +lw +lI +iW +aO +aH +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aH +aO +do +do +do +do +do +do +do +do +do +do +do +do +do +do +do +aO +aH +ad +aH +aO +iW +jh +jA +jw +kn +kB +kO +jw +lk +jw +kg +iW +aO +aH +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(174,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 +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aH +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aH +ad +aH +aO +iW +je +jB +jx +ko +jf +je +lb +ll +lx +lJ +iW +aO +aH +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(175,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 +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +ad +aH +aO +iW +iW +iW +iW +iW +iW +iW +iW +iW +iW +iW +iW +aO +aH +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(176,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 +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 +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 +aH +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aO +aH +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(177,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 +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 +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 +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(178,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 +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 +ad +ae +ae +ae +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 +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(179,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 +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 +ae +ae +ae +ae +ae +ae +ae +ae +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(180,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 +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 +ad +ae +ae +ae +ae +ae +ae +ae +ae +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(181,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 +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 +ae +ae +ae +ae +ae +ae +ae +ae +ae +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(182,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 +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 +ac +ae +ae +ae +ae +ae +ae +ae +ae +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 +ae +ae +ae +ae +ae +ae +ad +ad +ad +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(183,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 +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 +ae +ae +ae +ae +ae +ae +ae +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 +ae +ae +ae +ae +ae +ae +ae +ae +ad +ad +ad +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(184,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 +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 +ae +ae +ae +ae +ae +ae +ae +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 +ae +ae +ae +ae +ae +ae +ae +ae +ad +ad +ad +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(185,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 +ae +ae +ae +ae +ae +ae +ae +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 +ae +ae +ae +ae +ae +ae +ae +ae +ad +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(186,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 +ae +ae +ae +ae +ae +ae +ae +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 +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(187,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 +ae +ae +ae +ae +ae +ae +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 +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(188,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 +ae +ae +ae +ae +ae +ae +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 +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(189,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 +ae +ae +ae +ae +ae +ae +ad +ad +ad +ad +ad +ad +ad +ad +ad +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(190,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 +ae +ae +ae +ad +ad +ad +ad +ad +ad +ad +ad +ad +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(191,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 +ae +ae +ae +ae +ad +ad +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +aa +ae +ae +ae +ae +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(192,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 +ae +ae +ae +ae +ad +ad +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +aa +aa +ae +ae +ae +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(193,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ae +ae +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +aa +aa +aa +aa +ae +ae +ae +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(194,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ae +ae +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +aa +aa +aa +aa +aa +ae +ae +ae +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(195,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ae +ae +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(196,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ad +ae +ae +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ae +ae +ae +ae +ae +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(197,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ad +ad +ae +ae +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ae +ae +ae +ae +ae +ae +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(198,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ae +ae +ae +ae +ae +ae +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(199,1,1) = {" +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ae +ae +ae +ae +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(200,1,1) = {" +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ae +ae +ae +ae +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +"} +(201,1,1) = {" +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(202,1,1) = {" +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(203,1,1) = {" +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +"} +(204,1,1) = {" +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +"} +(205,1,1) = {" +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +"} +(206,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 +ab +ab +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(207,1,1) = {" +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +"} +(208,1,1) = {" +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +"} +(209,1,1) = {" +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +"} +(210,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +"} +(211,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 +ab +ab +ab +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 +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +"} +(212,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 +ab +ab +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 +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +"} +(213,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 +ab +ab +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 +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(214,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 +ab +ab +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 +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(215,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 +ab +ab +ab +ab +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 +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(216,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +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 +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 +"} +(217,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +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 +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 +"} +(218,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +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 +"} +(219,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +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 +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 +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 +"} +(220,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +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 +ac +ac +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(221,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +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 +ac +ac +ac +ac +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(222,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +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 +ac +ac +ac +ac +ac +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(223,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +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 +ac +ac +ac +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(224,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +ac +ac +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(225,1,1) = {" +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 +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +aX +ac +ac +ac +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(226,1,1) = {" +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 +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +ac +bk +ac +ac +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(227,1,1) = {" +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 +ac +ac +ac +ac +ac +ac +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 +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +by +ac +ac +ac +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(228,1,1) = {" +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 +ac +ac +ac +ac +ac +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 +ab +ab +aa +aa +aa +aa +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(229,1,1) = {" +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 +ac +ac +ac +ac +ac +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 +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +ac +ac +ac +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(230,1,1) = {" +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 +ac +ac +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 +ab +ab +ac +ab +ab +aa +aa +aa +aa +aa +aa +ac +ac +ac +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(231,1,1) = {" +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 +ac +ac +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 +ab +ab +ac +ac +ac +ab +ab +aa +aa +aa +aa +aa +aa +ac +ac +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(232,1,1) = {" +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 +ac +ac +ab +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 +ab +ab +ab +ac +ac +ac +ab +ab +aa +aa +aa +aa +aa +aa +ac +ac +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(233,1,1) = {" +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ac +ac +ac +ac +ac +ab +ab +aa +aa +aa +aa +aa +ac +ac +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(234,1,1) = {" +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ac +ac +ac +ac +ac +ab +ab +aa +aa +aa +aa +aa +ac +ac +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(235,1,1) = {" +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(236,1,1) = {" +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(237,1,1) = {" +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(238,1,1) = {" +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(239,1,1) = {" +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(240,1,1) = {" +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(241,1,1) = {" +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(242,1,1) = {" +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(243,1,1) = {" +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(244,1,1) = {" +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(245,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(246,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(247,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(248,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 +ab +ab +ab +ab +ab +ab +ab +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 +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +ab +ab +ab +ab +ab +ab +ab +aa +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 +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 +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +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 +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} diff --git a/_maps/RandomZLevels/snowdin.dmm b/_maps/RandomZLevels/snowdin.dmm new file mode 100644 index 0000000..95a0676 --- /dev/null +++ b/_maps/RandomZLevels/snowdin.dmm @@ -0,0 +1,70885 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/closed/indestructible/rock/snow, +/area/awaymission/snowdin) +"ab" = ( +/turf/open/space, +/area/space) +"ac" = ( +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin) +"ad" = ( +/turf/closed/wall/ice{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"ae" = ( +/obj/effect/decal/cleanable/oil, +/obj/vehicle/atv, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"af" = ( +/turf/open/floor/plating/ice, +/area/awaymission/snowdin) +"ag" = ( +/obj/effect/decal/cleanable/oil, +/obj/structure/table, +/obj/item/weapon/tank/internals/plasma{ + desc = "An emptied plasma tank, the oil on the nozzle seems to implied it was used for more than plasma storage."; + name = "dusty plasma tank" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"ah" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"ai" = ( +/obj/vehicle/atv, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"aj" = ( +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/post) +"ak" = ( +/obj/structure/door_assembly/door_assembly_centcom, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"al" = ( +/turf/closed/wall/ice{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"am" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile/ice, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"an" = ( +/obj/structure/table, +/obj/item/weapon/wrench, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"ao" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"ap" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/post) +"aq" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/westright, +/obj/item/weapon/paper/crumpled/snowdin/keys, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/post) +"ar" = ( +/obj/machinery/light/small{ + active_power_usage = 0; + dir = 4; + icon_state = "bulb-broken"; + status = 2 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/post) +"as" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/darkred{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"at" = ( +/obj/structure/filingcabinet, +/obj/item/weapon/paper/snowdin/secnotice, +/turf/open/floor/plasteel/darkred{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"au" = ( +/obj/item/weapon/gun/projectile/shotgun/boltaction, +/obj/item/ammo_box/a762, +/obj/item/ammo_box/a762, +/obj/structure/closet/secure_closet{ + icon_state = "sec"; + locked = 1; + name = "security officer's locker"; + req_access_txt = "201" + }, +/obj/item/weapon/restraints/handcuffs, +/obj/item/device/assembly/flash, +/obj/item/weapon/storage/box/lethalshot, +/turf/open/floor/plasteel/darkred{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"av" = ( +/obj/effect/decal/cleanable/oil, +/obj/item/weapon/tank/internals/plasma{ + desc = "An emptied plasma tank, the oil on the nozzle seems to implied it was used for more than plasma storage."; + name = "dusty plasma tank" + }, +/obj/machinery/button/door{ + id = "garagesnow"; + name = "garage door button"; + pixel_x = 32 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"aw" = ( +/obj/structure/chair/office/dark, +/turf/open/floor/plasteel/darkred{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"ax" = ( +/obj/item/ammo_casing/a762, +/turf/open/floor/plasteel/darkred{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"ay" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/obj/item/key, +/turf/open/floor/plasteel/darkred{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"az" = ( +/obj/machinery/door/poddoor/shutters{ + id = "garagesnow" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"aA" = ( +/obj/machinery/door/airlock/external, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"aB" = ( +/obj/structure/table/reinforced, +/obj/structure/barricade/wooden, +/turf/open/floor/plasteel/darkred{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"aC" = ( +/obj/structure/barricade/wooden, +/obj/machinery/door/airlock/glass_security{ + name = "Security Office"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/darkred{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"aD" = ( +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"aE" = ( +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"aF" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile/ice, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"aG" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin/post) +"aH" = ( +/obj/item/ammo_casing/a762, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/base) +"aI" = ( +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/base) +"aJ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/base) +"aK" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/base) +"aL" = ( +/obj/structure/flora/grass/brown, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin) +"aM" = ( +/obj/machinery/recharge_station, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"aN" = ( +/obj/item/trash/sosjerky, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/base) +"aO" = ( +/obj/machinery/gateway{ + dir = 9 + }, +/turf/open/floor/plasteel/bot{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"aP" = ( +/obj/machinery/gateway{ + dir = 5 + }, +/turf/open/floor/plasteel/bot{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"aQ" = ( +/obj/machinery/gateway{ + dir = 1 + }, +/turf/open/floor/plasteel/bot{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"aR" = ( +/obj/structure/closet/crate, +/obj/item/weapon/survivalcapsule, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/shoes/winterboots, +/turf/open/floor/plasteel/bot{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"aS" = ( +/obj/structure/closet/crate, +/obj/item/weapon/storage/firstaid/regular, +/obj/item/weapon/storage/firstaid/fire, +/obj/item/weapon/storage/pill_bottle/stimulant, +/turf/open/floor/plasteel/bot{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"aT" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating/snowed, +/area/awaymission/snowdin/post) +"aU" = ( +/turf/open/space, +/area/awaymission/snowdin) +"aV" = ( +/obj/structure/flora/bush, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin) +"aW" = ( +/obj/structure/flora/tree/pine, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin) +"aX" = ( +/mob/living/simple_animal/hostile/skeleton/eskimo, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin) +"aY" = ( +/obj/structure/guncase/shotgun, +/obj/item/weapon/gun/projectile/shotgun/automatic, +/obj/item/weapon/gun/projectile/shotgun/automatic, +/obj/item/weapon/gun/projectile/shotgun/automatic, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"aZ" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"ba" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"bb" = ( +/obj/machinery/gateway{ + dir = 8 + }, +/turf/open/floor/plasteel/bot{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"bc" = ( +/obj/machinery/gateway{ + dir = 4 + }, +/turf/open/floor/plasteel/bot{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"bd" = ( +/obj/machinery/gateway/centeraway{ + calibrated = 0 + }, +/turf/open/floor/plasteel/bot{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"be" = ( +/turf/open/floor/plasteel/bot{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"bf" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/obj/item/weapon/reagent_containers/spray/cleaner, +/obj/item/weapon/soap/nanotrasen, +/turf/open/floor/plasteel/bot{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"bg" = ( +/obj/machinery/iv_drip, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/base) +"bh" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"bi" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"bj" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"bk" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"bl" = ( +/obj/structure/table, +/obj/item/weapon/shovel, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"bm" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/base) +"bn" = ( +/obj/machinery/gateway{ + dir = 10 + }, +/turf/open/floor/plasteel/bot{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"bo" = ( +/obj/machinery/gateway{ + dir = 6 + }, +/turf/open/floor/plasteel/bot{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"bp" = ( +/obj/machinery/gateway, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/turf/open/floor/plasteel/bot{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"bq" = ( +/obj/structure/closet/crate, +/obj/item/weapon/reagent_containers/food/snacks/grown/wheat, +/obj/item/weapon/reagent_containers/food/snacks/grown/wheat, +/obj/item/weapon/reagent_containers/food/snacks/grown/wheat, +/obj/item/weapon/reagent_containers/food/snacks/grown/wheat, +/obj/item/weapon/reagent_containers/food/snacks/grown/tomato, +/obj/item/weapon/reagent_containers/food/snacks/grown/tomato, +/obj/item/weapon/reagent_containers/food/snacks/grown/tomato, +/obj/item/weapon/reagent_containers/food/snacks/grown/corn, +/obj/item/weapon/reagent_containers/food/snacks/grown/corn, +/obj/item/weapon/reagent_containers/food/snacks/grown/corn, +/obj/item/weapon/reagent_containers/food/snacks/grown/cocoapod, +/obj/item/weapon/reagent_containers/food/snacks/grown/cocoapod, +/turf/open/floor/plasteel/bot{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"br" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/iv_drip, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/base) +"bs" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/electrical, +/obj/item/weapon/storage/toolbox/electrical, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"bt" = ( +/obj/structure/table, +/obj/item/weapon/shovel, +/obj/item/weapon/paper/crumpled/snowdin/shovel, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"bu" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/base) +"bv" = ( +/obj/machinery/power/smes/magical{ + desc = "A high-capacity superconducting magnetic energy storage (SMES) unit."; + name = "power storage unit" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/base) +"bw" = ( +/obj/effect/landmark{ + name = "awaystart" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/base) +"bx" = ( +/obj/effect/landmark{ + name = "awaystart" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/base) +"by" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/landmark{ + name = "awaystart" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/base) +"bz" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/base) +"bA" = ( +/obj/structure/closet/crate/freezer, +/obj/item/weapon/reagent_containers/blood/random, +/obj/item/weapon/reagent_containers/blood/random, +/obj/item/weapon/reagent_containers/blood/random, +/obj/item/weapon/reagent_containers/blood/random, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/base) +"bB" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical, +/obj/item/weapon/storage/toolbox/mechanical, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"bC" = ( +/obj/structure/showcase{ + desc = "A strange machine thats supposedly used to help pick up and decypth wave signals. "; + icon = 'icons/obj/machines/telecomms.dmi'; + icon_state = "processor"; + name = "subsystem signal decrypher" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"bD" = ( +/obj/machinery/space_heater, +/obj/machinery/light/small, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"bE" = ( +/obj/structure/closet/crate/trashcart, +/obj/item/trash/can, +/obj/item/trash/semki, +/obj/item/toy/figure/captain{ + name = "Central command action figure"; + toysay = "Fire the BSA cannons!" + }, +/obj/item/weapon/storage/box/rubbershot, +/obj/item/key, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"bF" = ( +/obj/machinery/power/port_gen/pacman, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"bG" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"bH" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/base) +"bI" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/landmark{ + name = "awaystart" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/base) +"bJ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/landmark{ + name = "awaystart" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/base) +"bK" = ( +/obj/item/trash/pistachios, +/obj/effect/landmark{ + name = "awaystart" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/base) +"bL" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/effect/landmark{ + name = "awaystart" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/base) +"bM" = ( +/obj/structure/flora/tree/dead, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin) +"bN" = ( +/obj/machinery/door/airlock/glass, +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"bO" = ( +/obj/structure/dresser, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"bP" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/obj/effect/landmark{ + name = "awaystart" + }, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"bQ" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"bR" = ( +/obj/structure/bookcase/random/fiction, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"bS" = ( +/obj/structure/fireaxecabinet{ + pixel_y = 32 + }, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"bT" = ( +/obj/structure/bookcase/random/nonfiction, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"bU" = ( +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"bV" = ( +/obj/structure/table/wood, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"bW" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/filingcabinet, +/turf/open/floor/plasteel/darkbrown{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"bX" = ( +/obj/structure/table, +/turf/open/floor/plasteel/darkbrown{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"bY" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/darkbrown{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"bZ" = ( +/obj/structure/table, +/obj/item/device/flashlight/lamp, +/turf/open/floor/plasteel/darkbrown{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"ca" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"cb" = ( +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"cc" = ( +/obj/structure/table, +/obj/machinery/microwave, +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"cd" = ( +/obj/structure/closet/cabinet, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/gloves/color/black, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"ce" = ( +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"cf" = ( +/obj/machinery/door/airlock{ + name = "Dorm Room" + }, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"cg" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"ch" = ( +/turf/open/floor/plasteel/darkbrown{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"ci" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/darkbrown{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"cj" = ( +/obj/structure/chair/comfy/beige, +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"ck" = ( +/obj/item/weapon/cigbutt, +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"cl" = ( +/obj/structure/chair/stool, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"cm" = ( +/obj/machinery/hydroponics/constructable, +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"cn" = ( +/obj/structure/table/wood, +/obj/item/trash/cheesie, +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"co" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"cp" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"cq" = ( +/obj/structure/table/wood, +/obj/item/toy/cards/deck, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"cr" = ( +/obj/structure/table/wood, +/obj/item/trash/candle, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"cs" = ( +/obj/machinery/door/airlock/hatch, +/turf/open/floor/plasteel/darkbrown{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"ct" = ( +/obj/structure/table/wood, +/obj/item/pizzabox/mushroom, +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"cu" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/pill_bottle/dice, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"cv" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper/crumpled/snowdin/snowdingatewaynotice, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"cw" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/obj/effect/decal/cleanable/blood/gibs, +/obj/effect/gibspawner/human, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"cx" = ( +/obj/structure/table/wood, +/obj/item/key, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"cy" = ( +/obj/structure/table/wood, +/obj/item/trash/can, +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"cz" = ( +/obj/machinery/door/airlock{ + name = "Dorm Room" + }, +/obj/structure/barricade/wooden, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"cA" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"cB" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/mob/living/simple_animal/hostile/bear/snow, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"cC" = ( +/obj/effect/decal/cleanable/blood/gibs, +/obj/effect/decal/remains/human, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"cD" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/darkbrown{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"cE" = ( +/obj/structure/chair/comfy/beige{ + dir = 1; + icon_state = "comfychair" + }, +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"cF" = ( +/obj/machinery/light, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"cG" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/filingcabinet, +/obj/item/weapon/paper/snowdin/snowdinlog, +/turf/open/floor/plasteel/darkbrown{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"cH" = ( +/obj/machinery/light, +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"cI" = ( +/obj/structure/table, +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"cJ" = ( +/obj/machinery/door/airlock{ + name = "Dorms" + }, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"cK" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/base) +"cL" = ( +/obj/machinery/door/airlock/external, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/base) +"cM" = ( +/obj/structure/statue/snow/snowman, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin) +"cN" = ( +/turf/closed/indestructible/rock/snow/ice, +/area/awaymission/snowdin/dungeon1) +"cO" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin/base) +"cP" = ( +/turf/closed/wall/mineral/snow, +/area/awaymission/snowdin/igloo) +"cQ" = ( +/turf/open/floor/plating, +/area/awaymission/snowdin) +"cR" = ( +/turf/open/floor/plating{ + temperature = 220 + }, +/area/awaymission/snowdin/igloo) +"cS" = ( +/obj/item/stack/sheet/mineral/snow{ + amount = 25 + }, +/turf/open/floor/plating{ + temperature = 220 + }, +/area/awaymission/snowdin/igloo) +"cT" = ( +/obj/item/weapon/shovel, +/turf/open/floor/plating{ + temperature = 220 + }, +/area/awaymission/snowdin/igloo) +"cU" = ( +/obj/effect/landmark{ + name = "awaystart" + }, +/turf/open/floor/plating{ + temperature = 220 + }, +/area/awaymission/snowdin/igloo) +"cV" = ( +/obj/item/toy/snowball, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin) +"cW" = ( +/obj/structure/mineral_door/wood, +/turf/open/floor/plating{ + temperature = 220 + }, +/area/awaymission/snowdin/igloo) +"cX" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/flare/torch, +/turf/open/floor/plating{ + temperature = 220 + }, +/area/awaymission/snowdin/igloo) +"cY" = ( +/turf/closed/indestructible/rock/snow/ice, +/area/awaymission/snowdin/post) +"cZ" = ( +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"da" = ( +/obj/effect/decal/remains/human, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin) +"db" = ( +/obj/item/clothing/shoes/winterboots, +/turf/open/floor/plating{ + temperature = 220 + }, +/area/awaymission/snowdin/igloo) +"dc" = ( +/obj/effect/decal/remains/human, +/turf/open/floor/plating{ + temperature = 220 + }, +/area/awaymission/snowdin/igloo) +"dd" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating{ + temperature = 140 + }, +/area/awaymission/snowdin/post) +"de" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 140 + }, +/area/awaymission/snowdin/post) +"df" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + icon = 'icons/turf/snow.dmi'; + temperature = 140 + }, +/area/awaymission/snowdin/post) +"dg" = ( +/turf/open/floor/plating{ + temperature = 140 + }, +/area/awaymission/snowdin/post) +"dh" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/emergency, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 140 + }, +/area/awaymission/snowdin/post) +"di" = ( +/obj/item/clothing/suit/hooded/wintercoat, +/turf/open/floor/plating{ + temperature = 220 + }, +/area/awaymission/snowdin/igloo) +"dj" = ( +/obj/structure/ladder/unbreakable{ + height = 1; + id = "snow" + }, +/turf/open/floor/plating{ + temperature = 140 + }, +/area/awaymission/snowdin/post) +"dk" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 140 + }, +/area/awaymission/snowdin/post) +"dl" = ( +/turf/open/floor/plating/asteroid/snow{ + temperature = 140 + }, +/area/awaymission/snowdin/dungeon1) +"dm" = ( +/obj/structure/flora/rock/icy, +/turf/open/floor/plating/asteroid/snow{ + temperature = 140 + }, +/area/awaymission/snowdin/dungeon1) +"dn" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + icon = 'icons/turf/snow.dmi'; + temperature = 140 + }, +/area/awaymission/snowdin/post) +"do" = ( +/mob/living/simple_animal/hostile/skeleton/ice, +/turf/open/floor/plating/asteroid/snow{ + temperature = 140 + }, +/area/awaymission/snowdin/dungeon1) +"dp" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + icon = 'icons/turf/snow.dmi'; + temperature = 140 + }, +/area/awaymission/snowdin) +"dq" = ( +/obj/structure/flora/rock/pile/icy, +/turf/open/floor/plating/asteroid/snow{ + temperature = 140 + }, +/area/awaymission/snowdin/dungeon1) +"dr" = ( +/obj/structure/closet/emcloset, +/obj/item/weapon/tank/internals/emergency_oxygen/engi, +/obj/item/clothing/mask/breath, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 140 + }, +/area/awaymission/snowdin/post) +"ds" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/obj/effect/spawner/lootdrop/snowdin/dungeonlite, +/obj/effect/spawner/lootdrop/snowdin/dungeonmisc, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + icon = 'icons/turf/snow.dmi'; + temperature = 140 + }, +/area/awaymission/snowdin/post) +"dt" = ( +/obj/item/weapon/paper/crumpled/snowdin/lootstructures, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + icon = 'icons/turf/snow.dmi'; + temperature = 140 + }, +/area/awaymission/snowdin/post) +"du" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/snow{ + temperature = 140 + }, +/area/awaymission/snowdin/post) +"dv" = ( +/turf/open/floor/plating/asteroid/snow{ + temperature = 140 + }, +/area/awaymission/snowdin/post) +"dw" = ( +/obj/structure/barricade/wooden, +/turf/open/floor/plating/asteroid/snow{ + temperature = 140 + }, +/area/awaymission/snowdin/post) +"dx" = ( +/turf/open/floor/plating/lava{ + temperature = 140 + }, +/area/awaymission/snowdin/dungeon1) +"dy" = ( +/turf/open/floor/plating/asteroid/basalt{ + temperature = 140 + }, +/area/awaymission/snowdin/dungeon1) +"dz" = ( +/turf/open/floor/plating/snowed, +/area/awaymission/snowdin) +"dA" = ( +/obj/item/clothing/shoes/winterboots, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + icon = 'icons/turf/snow.dmi'; + temperature = 140 + }, +/area/awaymission/snowdin/post) +"dB" = ( +/obj/item/clothing/shoes/winterboots, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 140 + }, +/area/awaymission/snowdin/post) +"dC" = ( +/obj/structure/table, +/obj/item/clothing/suit/hooded/wintercoat, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + icon = 'icons/turf/snow.dmi'; + temperature = 140 + }, +/area/awaymission/snowdin/post) +"dD" = ( +/turf/open/floor/plating/ice/colder, +/area/awaymission/snowdin/dungeon1) +"dE" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/snowdin/dungeonmisc, +/obj/effect/spawner/lootdrop/snowdin/dungeonmisc, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 140 + }, +/area/awaymission/snowdin/post) +"dF" = ( +/mob/living/simple_animal/hostile/skeleton/eskimo, +/turf/open/floor/plating/asteroid/snow{ + temperature = 140 + }, +/area/awaymission/snowdin/dungeon1) +"dG" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/snowdin/dungeonmisc, +/obj/effect/spawner/lootdrop/snowdin/dungeonlite, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 140 + }, +/area/awaymission/snowdin/post) +"dH" = ( +/obj/machinery/light/small{ + active_power_usage = 0; + dir = 4; + icon_state = "bulb-broken"; + status = 2 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + icon = 'icons/turf/snow.dmi'; + temperature = 140 + }, +/area/awaymission/snowdin/post) +"dI" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 140 + }, +/area/awaymission/snowdin/post) +"dJ" = ( +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"dK" = ( +/obj/structure/closet/cabinet, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/gloves/color/black, +/obj/item/weapon/shovel, +/obj/item/weapon/switchblade, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"dL" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/snowdin/dungeonmisc, +/obj/effect/spawner/lootdrop/snowdin/dungeonmid, +/obj/effect/spawner/lootdrop/snowdin/dungeonmid, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 140; + wet = 0 + }, +/area/awaymission/snowdin/post) +"dM" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 140; + wet = 0 + }, +/area/awaymission/snowdin/post) +"dN" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"dO" = ( +/obj/machinery/door/airlock{ + locked = 1; + name = "Dorm Room"; + req_access_txt = "150" + }, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"dP" = ( +/turf/open/floor/plating/asteroid/basalt{ + temperature = 140 + }, +/area/awaymission/snowdin/post) +"dQ" = ( +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 140; + wet = 0 + }, +/area/awaymission/snowdin/post) +"dR" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/obj/effect/spawner/lootdrop/snowdin/dungeonmisc, +/obj/effect/spawner/lootdrop/snowdin/dungeonmisc, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 140 + }, +/area/awaymission/snowdin/post) +"dS" = ( +/obj/structure/bed, +/obj/effect/decal/remains/human, +/obj/effect/decal/cleanable/blood/gibs/old, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"dT" = ( +/turf/open/floor/plating/lava{ + temperature = 140 + }, +/area/awaymission/snowdin/post) +"dU" = ( +/mob/living/simple_animal/hostile/skeleton/eskimo, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"dV" = ( +/obj/machinery/door/airlock/glass{ + req_access_txt = "150" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/post) +"dW" = ( +/mob/living/simple_animal/hostile/bear/snow, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin) +"dX" = ( +/obj/structure/table, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/post) +"dY" = ( +/obj/machinery/light/small{ + active_power_usage = 0; + dir = 4; + icon_state = "bulb-broken"; + status = 2 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 140 + }, +/area/awaymission/snowdin/post) +"dZ" = ( +/obj/structure/table, +/obj/item/weapon/paper/crumpled/snowdin/syndielava, +/obj/machinery/light/small{ + active_power_usage = 0; + dir = 4; + icon_state = "bulb-broken"; + status = 2 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/post) +"ea" = ( +/obj/effect/bump_teleporter{ + id = "down"; + id_target = "up" + }, +/turf/open/floor/plasteel/stairs/right{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 140 + }, +/area/awaymission/snowdin/post) +"eb" = ( +/obj/effect/bump_teleporter{ + id = "down"; + id_target = "up" + }, +/turf/open/floor/plasteel/stairs/left{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 140 + }, +/area/awaymission/snowdin/post) +"ec" = ( +/obj/machinery/door/airlock/external, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + icon = 'icons/turf/snow.dmi'; + temperature = 140 + }, +/area/awaymission/snowdin/post) +"ed" = ( +/turf/open/floor/plasteel/stairs/right{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 140 + }, +/area/awaymission/snowdin/post) +"ee" = ( +/turf/open/floor/plasteel/stairs/left{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 140 + }, +/area/awaymission/snowdin/post) +"ef" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile/ice, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + icon = 'icons/turf/snow.dmi'; + temperature = 140 + }, +/area/awaymission/snowdin/post) +"eg" = ( +/obj/machinery/light/small, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + icon = 'icons/turf/snow.dmi'; + temperature = 140 + }, +/area/awaymission/snowdin/post) +"eh" = ( +/turf/open/floor/plating/snowed/colder, +/area/awaymission/snowdin/dungeon1) +"ei" = ( +/mob/living/simple_animal/hostile/poison/giant_spider/hunter/ice, +/turf/open/floor/plating/asteroid/snow{ + temperature = 140 + }, +/area/awaymission/snowdin/dungeon1) +"ej" = ( +/mob/living/simple_animal/hostile/poison/giant_spider/nurse/ice, +/turf/open/floor/plating/asteroid/snow{ + temperature = 140 + }, +/area/awaymission/snowdin/dungeon1) +"ek" = ( +/obj/structure/spider/stickyweb, +/obj/structure/spider/stickyweb, +/turf/open/floor/plating/asteroid/snow{ + temperature = 140 + }, +/area/awaymission/snowdin/dungeon1) +"el" = ( +/obj/structure/spider/stickyweb, +/obj/effect/spawner/lootdrop/snowdin/dungeonheavy, +/turf/open/floor/plating/asteroid/snow{ + temperature = 140 + }, +/area/awaymission/snowdin/dungeon1) +"em" = ( +/obj/structure/spider/stickyweb, +/mob/living/simple_animal/hostile/poison/giant_spider/hunter/ice, +/turf/closed/wall/mineral/snow, +/area/awaymission/snowdin/dungeon1) +"en" = ( +/obj/structure/spider/stickyweb, +/mob/living/simple_animal/hostile/poison/giant_spider/nurse/ice, +/turf/open/floor/plating/asteroid/snow{ + temperature = 140 + }, +/area/awaymission/snowdin/dungeon1) +"eo" = ( +/obj/structure/spider/stickyweb, +/turf/open/floor/plating/ice/colder, +/area/awaymission/snowdin/dungeon1) +"ep" = ( +/obj/structure/spider/stickyweb, +/turf/open/floor/plating/asteroid/snow{ + temperature = 140 + }, +/area/awaymission/snowdin/dungeon1) +"eq" = ( +/turf/closed/wall/mineral/snow, +/area/awaymission/snowdin/dungeon1) +"er" = ( +/obj/structure/spider/stickyweb, +/turf/closed/wall/mineral/snow, +/area/awaymission/snowdin/dungeon1) +"es" = ( +/obj/structure/spider/stickyweb, +/obj/structure/barricade/wooden, +/turf/open/floor/plating/asteroid/snow{ + temperature = 140 + }, +/area/awaymission/snowdin/dungeon1) +"et" = ( +/obj/structure/table/wood, +/turf/open/floor/plating/snowed/colder, +/area/awaymission/snowdin/dungeon1) +"eu" = ( +/obj/structure/table/wood, +/obj/effect/spawner/lootdrop/snowdin/dungeonlite, +/turf/open/floor/plating/snowed/colder, +/area/awaymission/snowdin/dungeon1) +"ev" = ( +/obj/structure/barricade/wooden, +/turf/open/floor/plating/asteroid/snow{ + temperature = 140 + }, +/area/awaymission/snowdin/dungeon1) +"ew" = ( +/obj/structure/spider/stickyweb, +/mob/living/simple_animal/hostile/poison/giant_spider/hunter/ice, +/turf/open/floor/plating/asteroid/snow{ + temperature = 140 + }, +/area/awaymission/snowdin/dungeon1) +"ex" = ( +/mob/living/simple_animal/hostile/skeleton, +/turf/open/floor/plating/asteroid/snow{ + temperature = 140 + }, +/area/awaymission/snowdin/dungeon1) +"ey" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/snowdin/dungeonlite, +/obj/effect/spawner/lootdrop/snowdin/dungeonlite, +/obj/effect/spawner/lootdrop/snowdin/dungeonlite, +/turf/open/floor/plating/snowed/colder, +/area/awaymission/snowdin/dungeon1) +"ez" = ( +/turf/open/space, +/turf/open/floor/plating/snowed, +/area/awaymission/snowdin/post) +"eA" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/snowdin/dungeonlite, +/obj/effect/spawner/lootdrop/snowdin/dungeonheavy, +/turf/open/floor/plating/snowed/colder, +/area/awaymission/snowdin/dungeon1) +"eB" = ( +/obj/structure/table/wood, +/obj/effect/spawner/lootdrop/snowdin/dungeonmisc, +/turf/open/floor/plating/snowed/colder, +/area/awaymission/snowdin/dungeon1) +"eC" = ( +/turf/open/floor/plating/snowed, +/area/awaymission/snowdin/post) +"eD" = ( +/turf/closed/wall/ice{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/dungeon1) +"eE" = ( +/obj/structure/table/wood, +/obj/effect/spawner/lootdrop/snowdin/dungeonmid, +/turf/open/floor/plating/snowed/colder, +/area/awaymission/snowdin/dungeon1) +"eF" = ( +/obj/structure/barricade/wooden, +/turf/open/floor/plating/snowed/colder, +/area/awaymission/snowdin/dungeon1) +"eG" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/snowdin/dungeonmid, +/turf/open/floor/plating/snowed/colder, +/area/awaymission/snowdin/dungeon1) +"eH" = ( +/obj/structure/flora/rock/pile/icy, +/turf/open/floor/plating/snowed/colder, +/area/awaymission/snowdin/dungeon1) +"eI" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/snowdin/dungeonmid, +/obj/effect/spawner/lootdrop/snowdin/dungeonmid, +/turf/open/floor/plating/snowed/colder, +/area/awaymission/snowdin/dungeon1) +"eJ" = ( +/obj/structure/barricade/wooden, +/turf/open/floor/plating/ice/colder, +/area/awaymission/snowdin/dungeon1) +"eK" = ( +/turf/open/space, +/obj/structure/girder, +/turf/open/floor/plating/snowed, +/area/awaymission/snowdin/post) +"eL" = ( +/obj/machinery/button/door{ + id = "garagesnow2"; + name = "garage door button"; + pixel_x = 32 + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin) +"eM" = ( +/mob/living/simple_animal/hostile/skeleton/eskimo, +/turf/open/floor/plasteel/darkbrown{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin/post) +"eN" = ( +/obj/structure/table/wood, +/obj/effect/spawner/lootdrop/snowdin/dungeonlite, +/obj/effect/spawner/lootdrop/snowdin/dungeonlite, +/turf/open/floor/plating/snowed/colder, +/area/awaymission/snowdin/dungeon1) +"eO" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/snowdin/dungeonmid, +/obj/effect/spawner/lootdrop/snowdin/dungeonlite, +/turf/open/floor/plating/snowed/colder, +/area/awaymission/snowdin/dungeon1) +"eP" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/snowdin/dungeonmid, +/obj/effect/spawner/lootdrop/snowdin/dungeonlite, +/obj/effect/spawner/lootdrop/snowdin/dungeonlite, +/turf/open/floor/plating/snowed/colder, +/area/awaymission/snowdin/dungeon1) +"eQ" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/table, +/obj/item/weapon/surgicaldrill, +/obj/item/weapon/hemostat, +/obj/item/weapon/scalpel{ + pixel_y = 12 + }, +/obj/item/weapon/cautery{ + pixel_x = 4 + }, +/turf/open/floor/plasteel/whiteblue{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"eR" = ( +/turf/closed/indestructible/rock/snow, +/area/awaymission/snowdin/cave) +"eS" = ( +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin/cave) +"eT" = ( +/turf/open/floor/plating/ice, +/area/awaymission/snowdin/cave) +"eU" = ( +/mob/living/simple_animal/hostile/bear/snow, +/turf/open/floor/plating/ice/colder, +/area/awaymission/snowdin/dungeon1) +"eV" = ( +/obj/effect/spawner/lootdrop/snowdin/dungeonmid, +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/snowdin/dungeonmid, +/turf/open/floor/plating/asteroid/snow{ + temperature = 140 + }, +/area/awaymission/snowdin/dungeon1) +"eW" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/snowdin/dungeonlite, +/obj/effect/spawner/lootdrop/snowdin/dungeonmid, +/turf/open/floor/plating/snowed/colder, +/area/awaymission/snowdin/dungeon1) +"eX" = ( +/obj/item/device/instrument/guitar{ + desc = "It's made of wood and has bronze strings. Apparently looks like a ship, too."; + name = "ship-shaped guitar" + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin) +"eY" = ( +/obj/effect/decal/remains/human{ + desc = "They look like human remains. The teeth seem to be oddly sharp." + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin) +"eZ" = ( +/obj/vehicle/atv, +/turf/open/floor/plating/asteroid/snow{ + temperature = 140 + }, +/area/awaymission/snowdin/dungeon1) +"fa" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/snowdin/dungeonlite, +/obj/effect/spawner/lootdrop/snowdin/dungeonmid, +/obj/effect/spawner/lootdrop/snowdin/dungeonmid, +/turf/open/floor/plating/snowed/colder, +/area/awaymission/snowdin/dungeon1) +"fb" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/snowdin/dungeonheavy, +/turf/open/floor/plating/snowed/colder, +/area/awaymission/snowdin/dungeon1) +"fc" = ( +/mob/living/simple_animal/hostile/skeleton/eskimo, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin/cave) +"fd" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"fe" = ( +/obj/machinery/door/airlock{ + name = "Dorm Room" + }, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"ff" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"fg" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"fh" = ( +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"fi" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/closet/crate, +/obj/item/weapon/implanter/storage, +/obj/item/clothing/shoes/jackboots, +/obj/item/weapon/switchblade, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"fj" = ( +/obj/machinery/recharge_station, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"fk" = ( +/turf/open/floor/plating/ice, +/area/awaymission/snowdin/post) +"fl" = ( +/obj/machinery/power/port_gen/pacman, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"fm" = ( +/turf/open/floor/plating/ice/colder, +/area/awaymission/snowdin/post) +"fn" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile/ice, +/turf/open/floor/plating/snowed/colder, +/area/awaymission/snowdin/post) +"fo" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/snow{ + temperature = 140 + }, +/area/awaymission/snowdin/post) +"fp" = ( +/obj/structure/closet/cabinet, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/gloves/color/black, +/obj/item/weapon/shovel, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"fq" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"fr" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"fs" = ( +/obj/item/weapon/cigbutt/cigarbutt, +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"ft" = ( +/obj/effect/landmark{ + name = "awaystart" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"fu" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"fv" = ( +/turf/open/floor/plating/snowed/colder, +/area/awaymission/snowdin/post) +"fw" = ( +/obj/machinery/door/airlock/external{ + req_access_txt = "150" + }, +/turf/open/floor/plating/snowed/colder, +/area/awaymission/snowdin/post) +"fx" = ( +/mob/living/simple_animal/hostile/bear/snow, +/turf/open/floor/plating/asteroid/snow{ + temperature = 140 + }, +/area/awaymission/snowdin/dungeon1) +"fy" = ( +/obj/machinery/door/airlock/hatch, +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"fz" = ( +/obj/machinery/power/terminal{ + dir = 4 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"fA" = ( +/obj/structure/table, +/obj/item/key, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"fB" = ( +/obj/machinery/power/smes/magical{ + desc = "A high-capacity superconducting magnetic energy storage (SMES) unit."; + name = "power storage unit" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"fC" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin) +"fD" = ( +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin/post) +"fE" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/post) +"fF" = ( +/obj/structure/girder, +/turf/open/floor/plating/snowed/colder, +/area/awaymission/snowdin/post) +"fG" = ( +/obj/item/weapon/shard{ + icon_state = "medium" + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin) +"fH" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/post) +"fI" = ( +/obj/structure/door_assembly/door_assembly_centcom, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 140; + wet = 0 + }, +/area/awaymission/snowdin/post) +"fJ" = ( +/obj/item/weapon/shard, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin) +"fK" = ( +/obj/structure/girder, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin/post) +"fL" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/post) +"fM" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + icon = 'icons/turf/snow.dmi'; + temperature = 140 + }, +/area/awaymission/snowdin/post) +"fN" = ( +/obj/structure/table/wood, +/obj/machinery/light/built{ + tag = "icon-tube1 (EAST)"; + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/post) +"fO" = ( +/obj/structure/barricade/wooden, +/turf/open/floor/plating/snowed/colder, +/area/awaymission/snowdin/post) +"fP" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating/snowed, +/area/awaymission/snowdin/post) +"fQ" = ( +/obj/structure/grille, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + icon = 'icons/turf/snow.dmi'; + temperature = 140 + }, +/area/awaymission/snowdin/post) +"fR" = ( +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/post) +"fS" = ( +/obj/item/weapon/storage/toolbox/mechanical, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 140; + wet = 0 + }, +/area/awaymission/snowdin/post) +"fT" = ( +/mob/living/simple_animal/hostile/bear/snow, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/post) +"fU" = ( +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 140 + }, +/area/awaymission/snowdin/post) +"fV" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass, +/obj/item/key, +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 140 + }, +/area/awaymission/snowdin/post) +"fW" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 140 + }, +/area/awaymission/snowdin/post) +"fX" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/snowdin/dungeonmid, +/obj/effect/spawner/lootdrop/snowdin/dungeonmid, +/obj/effect/spawner/lootdrop/snowdin/dungeonheavy, +/turf/open/floor/plating/snowed/colder, +/area/awaymission/snowdin/post) +"fY" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/snowdin/dungeonmid, +/obj/effect/spawner/lootdrop/snowdin/dungeonmid, +/obj/effect/spawner/lootdrop/snowdin/dungeonlite, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 140; + wet = 0 + }, +/area/awaymission/snowdin/post) +"fZ" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/snowdin/dungeonmid, +/obj/effect/spawner/lootdrop/snowdin/dungeonmid, +/turf/open/floor/plating/snowed/colder, +/area/awaymission/snowdin/post) +"ga" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/donkpockets, +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 140 + }, +/area/awaymission/snowdin/post) +"gb" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin/post) +"gc" = ( +/obj/machinery/door/poddoor/shutters{ + id = "garagesnow2" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"gd" = ( +/obj/structure/ladder/unbreakable{ + height = 2; + id = "snow" + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin/cave) +"ge" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/machinery/button/door{ + id = "sekret"; + name = "shutter control"; + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/darkred{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"gf" = ( +/mob/living/simple_animal/hostile/skeleton/ice, +/turf/open/floor/plating/ice, +/area/awaymission/snowdin/cave) +"gg" = ( +/obj/item/weapon/wrench, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin) +"gh" = ( +/mob/living/simple_animal/hostile/skeleton/ice, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin/cave) +"gi" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/snowdin/dungeonmid, +/obj/effect/spawner/lootdrop/snowdin/dungeonmid, +/obj/effect/spawner/lootdrop/snowdin/dungeonmisc, +/turf/open/floor/plating/snowed/colder, +/area/awaymission/snowdin/dungeon1) +"gj" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/snowdin/dungeonmid, +/obj/effect/spawner/lootdrop/snowdin/dungeonmid, +/obj/effect/spawner/lootdrop/snowdin/dungeonlite, +/turf/open/floor/plating/snowed/colder, +/area/awaymission/snowdin/dungeon1) +"gk" = ( +/obj/structure/barricade/wooden, +/turf/open/floor/plating/asteroid/basalt{ + temperature = 140 + }, +/area/awaymission/snowdin/dungeon1) +"gl" = ( +/obj/machinery/button/door{ + id = "garagesnow3"; + name = "garage door button"; + pixel_x = 32 + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin) +"gm" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/snowdin/dungeonmid, +/obj/effect/spawner/lootdrop/snowdin/dungeonmisc, +/obj/effect/spawner/lootdrop/snowdin/dungeonlite, +/obj/effect/spawner/lootdrop/snowdin/dungeonlite, +/turf/open/floor/plating/snowed/colder, +/area/awaymission/snowdin/dungeon1) +"gn" = ( +/obj/effect/bump_teleporter{ + id = "up"; + id_target = "down" + }, +/turf/open/floor/plasteel/stairs/left{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 140 + }, +/area/awaymission/snowdin/cave) +"go" = ( +/obj/effect/bump_teleporter{ + id = "up"; + id_target = "down" + }, +/turf/open/floor/plasteel/stairs/right{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 140 + }, +/area/awaymission/snowdin/cave) +"gp" = ( +/turf/open/floor/plasteel/stairs/left{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 140 + }, +/area/awaymission/snowdin/cave) +"gq" = ( +/turf/open/floor/plasteel/stairs/right{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 140 + }, +/area/awaymission/snowdin/cave) +"gr" = ( +/turf/open/floor/plating, +/turf/open/floor/plating/snowed, +/area/awaymission/snowdin/post) +"gs" = ( +/obj/structure/girder, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + icon = 'icons/turf/snow.dmi'; + temperature = 140 + }, +/area/awaymission/snowdin/post) +"gt" = ( +/obj/structure/frame/machine, +/obj/item/weapon/circuitboard/machine/smes, +/obj/item/weapon/stock_parts/cell/high, +/obj/item/weapon/stock_parts/cell/high, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"gu" = ( +/obj/item/weapon/stock_parts/cell/high/empty, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"gv" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"gw" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/electrical, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"gx" = ( +/obj/machinery/telecomms/allinone{ + intercept = 1 + }, +/turf/open/floor/plasteel/purple{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"gy" = ( +/obj/structure/table, +/turf/open/floor/plasteel/darkbrown{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin/post) +"gz" = ( +/turf/open/floor/plasteel/darkbrown{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin/post) +"gA" = ( +/obj/structure/closet/secure_closet{ + anchored = 1; + name = "Contraband Locker"; + req_access_txt = "3" + }, +/obj/item/weapon/gun/projectile/automatic/speargun, +/obj/item/weapon/twohanded/spear, +/obj/item/weapon/twohanded/spear, +/obj/item/weapon/twohanded/spear, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"gB" = ( +/obj/structure/table, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel/darkbrown{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin/post) +"gC" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/darkbrown{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin/post) +"gD" = ( +/obj/structure/table, +/obj/item/weapon/shovel, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"gE" = ( +/obj/item/weapon/pen, +/turf/open/floor/plasteel/darkbrown{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin/post) +"gF" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin, +/turf/open/floor/plasteel/darkbrown{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin/post) +"gG" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/obj/effect/spawner/lootdrop/snowdin/dungeonlite, +/obj/effect/spawner/lootdrop/snowdin/dungeonmid, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"gH" = ( +/obj/structure/filingcabinet, +/turf/open/floor/plasteel/darkbrown{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin/post) +"gI" = ( +/obj/machinery/light/built{ + tag = "icon-tube1 (WEST)"; + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/darkbrown{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin/post) +"gJ" = ( +/obj/machinery/door/airlock/glass, +/obj/structure/barricade/wooden, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/post) +"gK" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"gL" = ( +/obj/machinery/light/small, +/obj/structure/showcase{ + desc = "A strange machine thats supposedly used to help pick up and decypth wave signals. "; + icon = 'icons/obj/machines/telecomms.dmi'; + icon_state = "processor"; + name = "subsystem signal decrypher" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"gM" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"gN" = ( +/turf/open/floor/plating, +/area/awaymission/snowdin/post) +"gO" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/snowdin/dungeonlite, +/obj/effect/spawner/lootdrop/snowdin/dungeonmisc, +/obj/effect/spawner/lootdrop/snowdin/dungeonmid, +/turf/open/floor/plating/snowed/colder, +/area/awaymission/snowdin/dungeon1) +"gP" = ( +/obj/machinery/door/airlock/glass, +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin/post) +"gQ" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/post) +"gR" = ( +/obj/structure/closet/cabinet, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/gloves/color/black, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"gS" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"gT" = ( +/obj/structure/closet/cabinet, +/obj/effect/spawner/lootdrop/snowdin/dungeonlite, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"gU" = ( +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin/post) +"gV" = ( +/obj/structure/table, +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin/post) +"gW" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/post) +"gX" = ( +/obj/machinery/door/airlock/glass, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/post) +"gY" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating/snowed, +/area/awaymission/snowdin/post) +"gZ" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"ha" = ( +/obj/structure/barricade/wooden, +/obj/machinery/door/airlock/glass_security{ + name = "Security Office"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/darkred{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"hb" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"hc" = ( +/obj/structure/table/reinforced, +/obj/structure/barricade/wooden, +/turf/open/floor/plasteel/darkred{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"hd" = ( +/obj/machinery/light/built{ + tag = "icon-tube1 (WEST)"; + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/post) +"he" = ( +/obj/machinery/door/airlock/external, +/obj/structure/barricade/wooden, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + icon = 'icons/turf/snow.dmi'; + temperature = 140 + }, +/area/awaymission/snowdin/post) +"hf" = ( +/obj/effect/decal/remains/human, +/obj/effect/gibspawner/human, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin) +"hg" = ( +/obj/machinery/light/small{ + active_power_usage = 0; + dir = 4; + icon_state = "bulb-broken"; + status = 2 + }, +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin/post) +"hh" = ( +/turf/open/floor/plasteel/darkred{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"hi" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/darkred{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"hj" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/turf/open/floor/plasteel/darkred{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"hk" = ( +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"hl" = ( +/obj/machinery/door/airlock{ + name = "Dorms" + }, +/obj/structure/barricade/wooden, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"hm" = ( +/obj/item/weapon/gun/projectile/shotgun/boltaction, +/obj/item/ammo_box/a762, +/obj/item/ammo_box/a762, +/obj/structure/closet/secure_closet{ + icon_state = "sec"; + locked = 1; + name = "security officer's locker"; + req_access_txt = "201" + }, +/obj/item/weapon/restraints/handcuffs, +/obj/item/device/assembly/flash, +/turf/open/floor/plasteel/darkred{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"hn" = ( +/obj/structure/filingcabinet, +/obj/item/weapon/paper/snowdin/secnotice, +/turf/open/floor/plasteel/darkred{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"ho" = ( +/obj/machinery/door/airlock{ + name = "Dorm Room" + }, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin/post) +"hp" = ( +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin) +"hq" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin/post) +"hr" = ( +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin/post) +"hs" = ( +/obj/structure/closet/cabinet, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"ht" = ( +/mob/living/simple_animal/hostile/skeleton/eskimo, +/turf/open/floor/plating{ + temperature = 220 + }, +/area/awaymission/snowdin/igloo) +"hu" = ( +/obj/structure/table/wood, +/obj/effect/spawner/lootdrop/snowdin/dungeonlite, +/obj/effect/spawner/lootdrop/snowdin/dungeonmid, +/turf/open/floor/plating/snowed/colder, +/area/awaymission/snowdin/dungeon1) +"hv" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/snowdin/dungeonmid, +/obj/effect/spawner/lootdrop/snowdin/dungeonheavy, +/turf/open/floor/plating/snowed/colder, +/area/awaymission/snowdin/dungeon1) +"hw" = ( +/obj/effect/decal/cleanable/blood/gibs/old, +/turf/open/floor/plating/ice, +/area/awaymission/snowdin/cave) +"hx" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/snowdin/dungeonlite, +/obj/effect/spawner/lootdrop/snowdin/dungeonlite, +/obj/effect/spawner/lootdrop/snowdin/dungeonheavy, +/turf/open/floor/plating/snowed/colder, +/area/awaymission/snowdin/dungeon1) +"hy" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating/ice, +/area/awaymission/snowdin/cave) +"hz" = ( +/obj/effect/decal/cleanable/blood/gibs/old, +/obj/item/weapon/twohanded/spear, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin/cave) +"hA" = ( +/obj/effect/decal/remains/human, +/turf/open/floor/plating/ice, +/area/awaymission/snowdin/cave) +"hB" = ( +/mob/living/simple_animal/hostile/bear/snow, +/turf/open/floor/plating/ice, +/area/awaymission/snowdin/cave) +"hC" = ( +/obj/effect/decal/remains/human, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin/cave) +"hD" = ( +/obj/effect/decal/cleanable/blood/gibs/old, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin/cave) +"hE" = ( +/mob/living/simple_animal/hostile/bear/snow, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin/cave) +"hF" = ( +/obj/item/weapon/twohanded/fireaxe, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin/cave) +"hG" = ( +/obj/item/weapon/twohanded/spear, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin/cave) +"hH" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin/cave) +"hI" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/snowdin/dungeonlite, +/obj/effect/spawner/lootdrop/snowdin/dungeonmisc, +/turf/open/floor/plating/snowed/colder, +/area/awaymission/snowdin/dungeon1) +"hJ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile/ice, +/obj/structure/barricade/wooden, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + icon = 'icons/turf/snow.dmi'; + temperature = 140 + }, +/area/awaymission/snowdin/post) +"hK" = ( +/obj/structure/table, +/obj/item/weapon/shovel, +/obj/item/key, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"hL" = ( +/obj/structure/table, +/obj/item/weapon/shovel, +/obj/item/weapon/storage/toolbox/mechanical, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"hM" = ( +/obj/machinery/space_heater, +/obj/machinery/light/small{ + active_power_usage = 0; + dir = 4; + icon_state = "bulb-broken"; + status = 2 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"hN" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin) +"hO" = ( +/obj/machinery/door/airlock/glass_large, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/post) +"hP" = ( +/turf/open/floor/plating/snowed, +/area/awaymission/snowdin/cave) +"hQ" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/post) +"hR" = ( +/obj/effect/spawner/lootdrop/snowdin/dungeonlite, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin/cave) +"hS" = ( +/obj/structure/table/wood, +/obj/effect/spawner/lootdrop/snowdin/dungeonmid, +/obj/effect/spawner/lootdrop/snowdin/dungeonmid, +/turf/open/floor/plating/snowed/colder, +/area/awaymission/snowdin/dungeon1) +"hT" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/snowdin/dungeonlite, +/turf/open/floor/plating/snowed/colder, +/area/awaymission/snowdin/dungeon1) +"hV" = ( +/turf/closed/wall/r_wall{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"hW" = ( +/obj/structure/closet/emcloset, +/obj/item/weapon/tank/internals/emergency_oxygen/engi, +/obj/item/clothing/mask/breath, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"hX" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"hY" = ( +/obj/machinery/power/port_gen/pacman, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"hZ" = ( +/obj/machinery/light, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + icon = 'icons/turf/snow.dmi'; + temperature = 140 + }, +/area/awaymission/snowdin/post) +"ia" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"ib" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/electrical, +/obj/item/weapon/storage/toolbox/electrical, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"ic" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"id" = ( +/mob/living/simple_animal/hostile/skeleton/templar, +/turf/open/floor/plating/asteroid/snow{ + temperature = 140 + }, +/area/awaymission/snowdin/dungeon1) +"ie" = ( +/obj/structure/table, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/item/weapon/storage/toolbox/mechanical, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"if" = ( +/obj/structure/table, +/obj/item/weapon/shovel, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"ig" = ( +/turf/open/floor/plasteel/darkbrown{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"ih" = ( +/obj/machinery/door/poddoor/shutters{ + id = "sekret" + }, +/turf/open/floor/plasteel/darkbrown{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"ii" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/darkbrown{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"ij" = ( +/obj/machinery/porta_turret/syndicate, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + icon = 'icons/turf/snow.dmi'; + temperature = 140 + }, +/area/awaymission/snowdin/dungeon1) +"ik" = ( +/obj/structure/table, +/obj/item/weapon/shovel, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"il" = ( +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/darkred{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"im" = ( +/obj/machinery/power/terminal{ + dir = 4 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"in" = ( +/obj/machinery/power/smes/magical{ + desc = "A high-capacity superconducting magnetic energy storage (SMES) unit."; + name = "power storage unit" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"ip" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"iq" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"ir" = ( +/obj/item/weapon/gun/projectile/shotgun/boltaction, +/obj/item/ammo_box/a762, +/obj/item/ammo_box/a762, +/obj/structure/closet/secure_closet{ + icon_state = "sec"; + locked = 1; + name = "security officer's locker"; + req_access_txt = "201" + }, +/obj/item/weapon/restraints/handcuffs, +/obj/item/device/assembly/flash, +/obj/item/weapon/storage/box/lethalshot, +/turf/open/floor/plasteel/darkred{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"is" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Security Office"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/darkred{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"it" = ( +/obj/machinery/light/small, +/turf/open/floor/plasteel/darkbrown{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"iu" = ( +/obj/machinery/door/airlock/highsecurity{ + name = "Maint"; + req_access_txt = "150" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"iv" = ( +/obj/item/device/multitool, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin) +"iw" = ( +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/sekret) +"ix" = ( +/obj/machinery/vending/snack, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/sekret) +"iy" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/toxin, +/obj/item/weapon/storage/firstaid/toxin, +/turf/open/floor/plasteel/cmo{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"iz" = ( +/obj/machinery/iv_drip, +/turf/open/floor/plasteel/cmo{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"iA" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/o2, +/obj/item/weapon/storage/firstaid/o2, +/turf/open/floor/plasteel/cmo{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"iB" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/plasteel/cmo{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"iC" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/fire, +/obj/item/weapon/storage/firstaid/fire, +/turf/open/floor/plasteel/cmo{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"iD" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/brute, +/obj/item/weapon/storage/firstaid/brute, +/turf/open/floor/plasteel/cmo{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"iE" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/sekret) +"iF" = ( +/obj/machinery/porta_turret/syndicate, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/sekret) +"iG" = ( +/obj/item/stack/sheet/glass{ + amount = 10 + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin) +"iH" = ( +/obj/structure/statue/snow/snowman, +/turf/open/floor/plating/asteroid/snow{ + temperature = 140 + }, +/area/awaymission/snowdin/dungeon1) +"iI" = ( +/turf/open/floor/plasteel/cmo{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"iJ" = ( +/obj/structure/table/reinforced, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/sekret) +"iK" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile/ice, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + icon = 'icons/turf/snow.dmi'; + temperature = 140 + }, +/area/awaymission/snowdin) +"iL" = ( +/obj/structure/grille, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + icon = 'icons/turf/snow.dmi'; + temperature = 140 + }, +/area/awaymission/snowdin) +"iM" = ( +/obj/structure/girder, +/turf/open/floor/plating, +/area/awaymission/snowdin) +"iN" = ( +/turf/closed/wall/shuttle{ + baseturf = /turf/open/floor/plating/asteroid/snow; + icon_state = "wall3" + }, +/area/awaymission/snowdin) +"iO" = ( +/obj/effect/spawner/lootdrop/snowdin/dungeonheavy, +/turf/open/floor/plating/asteroid/snow{ + temperature = 140 + }, +/area/awaymission/snowdin/dungeon1) +"iP" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating/snowed/colder, +/area/awaymission/snowdin/sekret) +"iQ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile/ice, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + icon = 'icons/turf/snow.dmi'; + temperature = 140 + }, +/area/awaymission/snowdin/sekret) +"iR" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/sekret) +"iS" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/cmo{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"iU" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plasteel/whiteblue{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"iV" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plasteel/whiteblue{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"iW" = ( +/obj/structure/sign/bluecross{ + pixel_x = -32 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/sekret) +"iX" = ( +/turf/open/floor/plasteel/warning{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"iY" = ( +/obj/machinery/light/small, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin) +"iZ" = ( +/obj/machinery/light/small, +/turf/open/floor/plating/snowed, +/area/awaymission/snowdin) +"ja" = ( +/obj/item/weapon/shard, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + icon = 'icons/turf/snow.dmi'; + temperature = 140 + }, +/area/awaymission/snowdin) +"jb" = ( +/obj/structure/frame/computer, +/turf/open/floor/plasteel/shuttle/red{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin) +"jc" = ( +/obj/machinery/door/poddoor/shutters{ + id = "garagesnow3" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/post) +"jd" = ( +/obj/machinery/door/airlock/external{ + req_access_txt = "150" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + icon = 'icons/turf/snow.dmi'; + temperature = 140 + }, +/area/awaymission/snowdin/sekret) +"je" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + icon = 'icons/turf/snow.dmi'; + temperature = 140 + }, +/area/awaymission/snowdin/sekret) +"jf" = ( +/obj/machinery/door/airlock/highsecurity{ + name = "Medical Wing"; + req_access_txt = "150" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/sekret) +"jg" = ( +/obj/structure/table/optable, +/turf/open/floor/plasteel/whiteblue{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"jh" = ( +/turf/open/floor/plasteel/whiteblue{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"ji" = ( +/obj/machinery/door/airlock/highsecurity{ + name = "Armory"; + req_access_txt = "150" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/sekret) +"jj" = ( +/turf/closed/wall/ice{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin) +"jk" = ( +/obj/machinery/door/airlock/external, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin) +"jl" = ( +/obj/structure/table, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + icon = 'icons/turf/snow.dmi'; + temperature = 140 + }, +/area/awaymission/snowdin) +"jm" = ( +/turf/open/floor/plasteel/shuttle/red{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin) +"jo" = ( +/obj/machinery/porta_turret/syndicate, +/turf/open/floor/plating/snowed/colder, +/area/awaymission/snowdin/dungeon1) +"jp" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/sekret) +"jq" = ( +/obj/machinery/sleeper{ + icon_state = "sleeper-open"; + dir = 4 + }, +/turf/open/floor/plasteel/cmo{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"jr" = ( +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/whiteblue{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"js" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/whiteblue{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"jt" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"ju" = ( +/obj/machinery/sleeper{ + icon_state = "sleeper-open"; + dir = 8 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/cmo{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"jv" = ( +/obj/machinery/light, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/sekret) +"jw" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin) +"jx" = ( +/obj/effect/decal/cleanable/blood, +/obj/effect/gibspawner/human, +/turf/open/floor/plasteel/shuttle/red{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin) +"jy" = ( +/obj/item/weapon/storage/box/donkpockets{ + pixel_x = 3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/shuttle/red{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin) +"jz" = ( +/obj/effect/decal/cleanable/vomit/old, +/turf/open/floor/plasteel/shuttle/red{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin) +"jA" = ( +/obj/item/device/radio/intercom{ + desc = "Talk through this. Evilly"; + freerange = 1; + frequency = 1213; + name = "Syndicate Intercom"; + pixel_y = -32; + subspace_transmission = 1; + syndie = 1 + }, +/turf/open/floor/plasteel/shuttle/red{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin) +"jB" = ( +/obj/effect/gibspawner/human, +/turf/open/floor/plasteel/shuttle/red{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin) +"jC" = ( +/obj/item/weapon/tank/internals/plasma{ + desc = "An emptied plasma tank, the oil on the nozzle seems to implied it was used for more than plasma storage."; + name = "dusty plasma tank" + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin) +"jD" = ( +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"jE" = ( +/obj/machinery/vending/coffee, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"jF" = ( +/obj/structure/table/wood, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"jG" = ( +/obj/structure/chair/comfy/beige{ + dir = 8 + }, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"jH" = ( +/obj/machinery/sleeper{ + icon_state = "sleeper-open"; + dir = 8 + }, +/turf/open/floor/plasteel/cmo{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"jI" = ( +/obj/machinery/door/airlock/glass_large{ + locked = 1; + name = "Armory"; + req_access_txt = "150" + }, +/turf/open/floor/plasteel/darkwarning{ + baseturf = /turf/open/floor/plating/asteroid/snow; + dir = 9; + tag = "icon-warndark (NORTHWEST)" + }, +/area/awaymission/snowdin/sekret) +"jJ" = ( +/turf/open/floor/plasteel/darkwarning{ + baseturf = /turf/open/floor/plating/asteroid/snow; + dir = 5; + tag = "icon-warndark (NORTHEAST)" + }, +/area/awaymission/snowdin/sekret) +"jK" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin) +"jL" = ( +/turf/open/floor/plating, +/turf/closed/wall/shuttle{ + dir = 2; + icon_state = "diagonalWall3" + }, +/area/awaymission/snowdin) +"jM" = ( +/obj/machinery/door/window{ + name = "Cockpit"; + req_access_txt = "150" + }, +/turf/open/floor/plasteel/shuttle/red{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin) +"jN" = ( +/turf/open/floor/plating, +/turf/closed/wall/shuttle{ + dir = 4; + icon_state = "diagonalWall3" + }, +/area/awaymission/snowdin) +"jO" = ( +/obj/machinery/door/airlock/glass_large{ + locked = 1; + name = "Armory"; + req_access_txt = "150" + }, +/turf/open/floor/plasteel/darkwarning{ + dir = 8 + }, +/area/awaymission/snowdin/sekret) +"jP" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"jQ" = ( +/obj/structure/table, +/turf/open/floor/plasteel/cmo{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"jR" = ( +/obj/structure/closet/crate/freezer, +/obj/item/weapon/reagent_containers/blood/random, +/obj/item/weapon/reagent_containers/blood/random, +/obj/item/weapon/reagent_containers/blood/random, +/obj/item/weapon/reagent_containers/blood/random, +/obj/item/weapon/reagent_containers/blood/random, +/obj/item/weapon/reagent_containers/blood/random, +/turf/open/floor/plasteel/cmo{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"jS" = ( +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (EAST)"; + dir = 4; + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"jT" = ( +/obj/structure/girder, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + icon = 'icons/turf/snow.dmi'; + temperature = 140 + }, +/area/awaymission/snowdin) +"jU" = ( +/obj/effect/mob_spawn/human/syndicatesoldier, +/obj/effect/decal/cleanable/vomit, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin) +"jV" = ( +/obj/structure/table, +/obj/item/weapon/paper/crumpled/snowdin/misc1, +/turf/open/floor/plasteel/shuttle/red{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin) +"jW" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/drinks/beer, +/turf/open/floor/plasteel/shuttle/red{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin) +"jX" = ( +/obj/machinery/door/airlock/glass_large{ + req_access_txt = "150" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/sekret) +"jY" = ( +/obj/machinery/door/airlock/glass_large{ + name = "Training Grounds"; + req_access_txt = "150" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/sekret) +"jZ" = ( +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"ka" = ( +/obj/structure/closet/syndicate, +/obj/item/ammo_box/a357, +/obj/item/ammo_box/a357, +/obj/item/ammo_box/c10mm, +/obj/item/ammo_box/c10mm, +/obj/item/ammo_box/c45, +/obj/item/ammo_box/c45, +/obj/item/ammo_box/c9mm, +/obj/item/ammo_box/c9mm, +/obj/item/ammo_box/magazine/smgm45, +/obj/item/ammo_box/magazine/smgm9mm, +/obj/item/ammo_box/a40mm, +/obj/item/ammo_box/foambox/riot, +/turf/open/floor/plasteel/darkwarning{ + baseturf = /turf/open/floor/plating/asteroid/snow; + dir = 9; + tag = "icon-warndark (NORTHWEST)" + }, +/area/awaymission/snowdin/sekret) +"kb" = ( +/obj/machinery/porta_turret/syndicate, +/turf/open/floor/plasteel/darkwarning{ + baseturf = /turf/open/floor/plating/asteroid/snow; + dir = 5; + tag = "icon-warndark (NORTHEAST)" + }, +/area/awaymission/snowdin/sekret) +"kc" = ( +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin) +"kd" = ( +/obj/structure/grille{ + color = "#FFFF00" + }, +/obj/structure/window/reinforced/fulltile/ice, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + icon = 'icons/turf/snow.dmi'; + temperature = 140 + }, +/area/awaymission/snowdin) +"ke" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin) +"kf" = ( +/obj/item/stack/cable_coil, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + icon = 'icons/turf/snow.dmi'; + temperature = 140 + }, +/area/awaymission/snowdin) +"kg" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel/shuttle/red{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin) +"kh" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/shuttle/red{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin) +"ki" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/shuttle/red{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin) +"kj" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"kk" = ( +/obj/structure/mirror/magic/lesser{ + desc = "A collab of the Wizard Federation and the Syndicate, a specialized mirror to help our operatives personalize themselves while stuck in this icy hell-hole."; + pixel_x = -32 + }, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"kl" = ( +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"km" = ( +/obj/effect/mob_spawn/human/syndicatesoldier/coldres/alive, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"kn" = ( +/obj/structure/bookcase/random/reference, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"ko" = ( +/obj/structure/bookcase/random/adult, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"kp" = ( +/obj/structure/bookcase/random/religion, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"kq" = ( +/turf/open/floor/plasteel/darkred{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"kr" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/darkred{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"ks" = ( +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/darkred{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"kt" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/turf/open/floor/plasteel/darkred{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"ku" = ( +/obj/structure/rack, +/obj/item/weapon/gun/projectile/automatic/speargun, +/obj/item/weapon/twohanded/spear, +/obj/item/weapon/twohanded/spear, +/turf/open/floor/plasteel/darkwarning{ + dir = 8 + }, +/area/awaymission/snowdin/sekret) +"kv" = ( +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"kw" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"kx" = ( +/obj/structure/rack, +/obj/item/weapon/gun/projectile/automatic/l6_saw/unrestricted, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka/badminka, +/obj/item/weapon/paper{ + info = "YOU SEEN IVAN, WHEN YOU HOLD SAAW LIKE PEESTOL, YOU STRONGER THAN RECOIL FOR FEAR OF HITTING FACE!"; + name = "SAW Usage" + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"ky" = ( +/obj/machinery/door/window/brigdoor/westleft{ + name = "SAW Security Door"; + req_access_txt = "150" + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"kz" = ( +/obj/item/weapon/shard, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin) +"kA" = ( +/obj/structure/grille{ + density = 0; + icon_state = "brokengrille" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + icon = 'icons/turf/snow.dmi'; + temperature = 140 + }, +/area/awaymission/snowdin) +"kB" = ( +/obj/item/weapon/c4{ + pixel_x = 2; + pixel_y = 1 + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin) +"kC" = ( +/obj/item/weapon/crowbar/red, +/obj/effect/decal/cleanable/vomit, +/turf/open/floor/plasteel/shuttle/red{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin) +"kD" = ( +/obj/structure/dresser, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"kE" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper/snowdin/syndienotice, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"kF" = ( +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"kG" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"kH" = ( +/obj/item/weapon/gun/projectile/shotgun/boltaction, +/obj/item/ammo_box/a762, +/obj/item/ammo_box/a762, +/obj/structure/closet/secure_closet{ + icon_state = "sec"; + locked = 1; + name = "security officer's locker"; + req_access_txt = "201" + }, +/obj/item/weapon/restraints/handcuffs, +/obj/item/device/assembly/flash, +/obj/item/weapon/storage/box/lethalshot, +/turf/open/floor/plasteel/darkred{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"kI" = ( +/obj/structure/rack, +/obj/item/weapon/gun/projectile/automatic/c20r/unrestricted, +/obj/item/weapon/gun/projectile/automatic/c20r/unrestricted, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/darkwarning{ + dir = 8 + }, +/area/awaymission/snowdin/sekret) +"kJ" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Security Office"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/darkred{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"kK" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"kL" = ( +/obj/structure/rack, +/obj/item/weapon/gun/projectile/revolver, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"kM" = ( +/obj/machinery/light/built, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin) +"kN" = ( +/obj/item/clothing/suit/space/syndicate/black/red, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin) +"kO" = ( +/obj/machinery/door/airlock{ + name = "Dorm Room" + }, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"kP" = ( +/obj/machinery/door/airlock/glass_large{ + name = "Dorms"; + req_access_txt = "150" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/sekret) +"kQ" = ( +/turf/open/floor/plasteel/darkwarning, +/area/awaymission/snowdin/sekret) +"kR" = ( +/obj/structure/table, +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"kS" = ( +/obj/structure/rack, +/obj/item/weapon/gun/projectile/automatic/mini_uzi, +/obj/item/weapon/gun/projectile/automatic/mini_uzi, +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (SOUTHWEST)"; + dir = 10; + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"kT" = ( +/obj/structure/rack, +/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/unrestricted, +/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/unrestricted, +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (SOUTHEAST)"; + dir = 6; + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"kU" = ( +/obj/structure/girder, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin) +"kV" = ( +/obj/structure/table, +/turf/open/floor/plasteel/shuttle/red{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin) +"kW" = ( +/obj/item/weapon/storage/box/zipties{ + pixel_x = 1; + pixel_y = 2 + }, +/turf/open/floor/plasteel/shuttle/red{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin) +"kX" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/item/weapon/reagent_containers/food/drinks/ale, +/turf/open/floor/plasteel/shuttle/red{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin) +"kY" = ( +/obj/structure/bookcase/random/fiction, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"kZ" = ( +/obj/machinery/space_heater, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"la" = ( +/obj/structure/bed/dogbed, +/mob/living/simple_animal/pet/dog/corgi/puppy{ + name = "Mr.Kempsy" + }, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"lb" = ( +/obj/structure/bookcase/random/nonfiction, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"lc" = ( +/obj/structure/chair/stool, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"ld" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"le" = ( +/obj/structure/table, +/obj/item/pizzabox/mushroom, +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"lf" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/obj/effect/landmark{ + name = "awaystart" + }, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin) +"lg" = ( +/obj/structure/closet/cabinet, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/gloves/color/black, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin) +"lh" = ( +/obj/structure/table/wood, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin) +"li" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + icon = 'icons/turf/snow.dmi'; + temperature = 140 + }, +/area/awaymission/snowdin) +"lj" = ( +/obj/item/weapon/reagent_containers/food/drinks/beer, +/turf/open/floor/plasteel/shuttle/red{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin) +"lk" = ( +/obj/item/clothing/head/helmet/space/syndicate/black/red, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin) +"ll" = ( +/obj/machinery/light, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"lm" = ( +/obj/structure/table/wood, +/obj/item/trash/candle, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen/fourcolor, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"ln" = ( +/obj/structure/table/wood, +/obj/item/toy/cards/deck, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"lo" = ( +/obj/structure/table, +/turf/open/floor/plasteel/purple{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"lp" = ( +/obj/structure/filingcabinet, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"lq" = ( +/turf/open/floor/plasteel/purple{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"lr" = ( +/obj/structure/table, +/obj/item/device/radio/intercom{ + broadcasting = 0; + dir = 8; + freerange = 1; + listening = 1; + name = "Pirate Radio Listening Channel"; + pixel_x = 0 + }, +/turf/open/floor/plasteel/purple{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"ls" = ( +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin) +"lt" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin) +"lu" = ( +/obj/item/weapon/shard{ + icon_state = "medium" + }, +/turf/open/floor/plasteel/shuttle/red{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin) +"lv" = ( +/obj/machinery/door/window{ + dir = 4; + name = "EVA Storage"; + req_access_txt = "150" + }, +/turf/open/floor/plasteel/shuttle/red{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin) +"lw" = ( +/obj/machinery/door/airlock/external{ + req_access_txt = "150" + }, +/turf/open/floor/plasteel/shuttle/red{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin) +"lx" = ( +/obj/structure/table/wood, +/obj/item/weapon/book/manual/nuclear, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"ly" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/pill_bottle/dice, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"lz" = ( +/obj/structure/table, +/obj/machinery/microwave, +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"lA" = ( +/obj/machinery/door/airlock/highsecurity{ + name = "Communications"; + req_access_txt = "150" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/sekret) +"lB" = ( +/obj/structure/table, +/obj/item/device/radio/intercom{ + broadcasting = 1; + dir = 8; + freerange = 1; + listening = 0; + name = "Pirate Radio Broadcast Channel"; + pixel_x = 0 + }, +/turf/open/floor/plasteel/purple{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"lC" = ( +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"lD" = ( +/obj/structure/chair/office/light{ + dir = 8 + }, +/turf/open/floor/plasteel/purple{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"lE" = ( +/obj/machinery/door/airlock/glass, +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin) +"lF" = ( +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin) +"lG" = ( +/obj/machinery/door/airlock{ + name = "Dorm Room" + }, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin) +"lH" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/obj/machinery/light/built{ + tag = "icon-tube1 (EAST)"; + icon_state = "tube1"; + dir = 4 + }, +/obj/effect/landmark{ + name = "awaystart" + }, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin) +"lI" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + icon = 'icons/turf/snow.dmi'; + temperature = 140 + }, +/area/awaymission/snowdin) +"lJ" = ( +/obj/machinery/suit_storage_unit/syndicate{ + icon_state = "open"; + mask_type = null; + storage_type = null; + suit_type = null + }, +/turf/open/floor/plasteel/shuttle/red{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin) +"lK" = ( +/obj/effect/decal/cleanable/vomit, +/turf/open/floor/plasteel/shuttle/red{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin) +"lL" = ( +/obj/machinery/door/window{ + base_state = "right"; + dir = 4; + icon_state = "right"; + name = "EVA Storage"; + req_access_txt = "150" + }, +/turf/open/floor/plasteel/shuttle/red{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin) +"lM" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plasteel/shuttle/red{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin) +"lN" = ( +/obj/item/weapon/gun/projectile/automatic/pistol, +/turf/open/floor/plasteel/shuttle/red{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin) +"lO" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/donkpockets, +/obj/item/weapon/storage/box/donkpockets, +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"lP" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen/fourcolor, +/turf/open/floor/plasteel/purple{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"lQ" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + icon = 'icons/turf/snow.dmi'; + temperature = 140 + }, +/area/awaymission/snowdin) +"lR" = ( +/turf/open/floor/plating/asteroid/snow, +/turf/closed/wall/shuttle{ + dir = 8; + icon_state = "diagonalWall3" + }, +/area/awaymission/snowdin) +"lS" = ( +/obj/item/device/radio/intercom{ + desc = "Talk through this. Evilly"; + freerange = 1; + frequency = 1213; + name = "Syndicate Intercom"; + pixel_x = -32; + subspace_transmission = 1; + syndie = 1 + }, +/obj/item/weapon/reagent_containers/food/drinks/ale, +/turf/open/floor/plasteel/shuttle/red{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin) +"lT" = ( +/obj/effect/mob_spawn/human/syndicatesoldier, +/obj/effect/decal/cleanable/vomit, +/turf/open/floor/plasteel/shuttle/red{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin) +"lU" = ( +/obj/machinery/light/small, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"lV" = ( +/obj/effect/mob_spawn/human/syndicatesoldier/coldres/alive/female, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"lW" = ( +/obj/structure/table/wood, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"lX" = ( +/obj/structure/chair/comfy/beige{ + tag = "icon-comfychair (EAST)"; + icon_state = "comfychair"; + dir = 4 + }, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"lY" = ( +/obj/structure/table/wood, +/obj/machinery/light, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"lZ" = ( +/obj/structure/chair/comfy/beige{ + dir = 8 + }, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"ma" = ( +/obj/structure/table/wood, +/obj/item/weapon/gun/projectile/automatic/c20r/toy, +/turf/open/floor/wood{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"mb" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"mc" = ( +/obj/machinery/light, +/obj/structure/table, +/obj/item/weapon/storage/box/drinkingglasses, +/turf/open/floor/plasteel/cafeteria{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"md" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"me" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"mf" = ( +/obj/machinery/recharge_station, +/turf/open/floor/plasteel/shuttle/red{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin) +"mg" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/turf/open/floor/plasteel/shuttle/red{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin) +"mh" = ( +/obj/item/device/assembly/voice{ + pixel_y = 3 + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin) +"mi" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin) +"mj" = ( +/obj/item/weapon/reagent_containers/syringe/charcoal{ + pixel_y = 4 + }, +/turf/open/floor/plasteel/shuttle/red{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin) +"mk" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/shuttle/red{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin) +"ml" = ( +/obj/machinery/door/window{ + dir = 4; + name = "Infirmary"; + req_access_txt = "150" + }, +/obj/item/weapon/reagent_containers/syringe/charcoal{ + pixel_y = 4 + }, +/turf/open/floor/plasteel/shuttle/red{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin) +"mm" = ( +/obj/machinery/door/window/westright{ + name = "Tool Storage"; + req_access_txt = "150" + }, +/turf/open/floor/plasteel/shuttle/red{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin) +"mn" = ( +/obj/item/weapon/stock_parts/cell/high, +/turf/open/floor/plasteel/shuttle/red{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin) +"mo" = ( +/obj/item/target/alien, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/sekret) +"mp" = ( +/obj/item/target/clown, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/sekret) +"mq" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/item/ammo_casing/c10mm, +/turf/open/floor/plasteel/warning{ + baseturf = /turf/open/floor/plating/asteroid/snow; + dir = 8 + }, +/area/awaymission/snowdin/sekret) +"mr" = ( +/obj/structure/table/reinforced, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/sekret) +"ms" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'WEAPONS HOT'."; + name = "WEAPONS HOT"; + pixel_y = 32 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/sekret) +"mt" = ( +/obj/item/ammo_casing/c10mm, +/obj/item/ammo_casing/c10mm, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/sekret) +"mu" = ( +/mob/living/simple_animal/bot/medbot{ + name = "Accidents Happen"; + faction = list("syndicate") + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/sekret) +"mv" = ( +/obj/structure/table/reinforced, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/weapon/storage/firstaid/tactical, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/sekret) +"mw" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/firstaid/tactical, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/sekret) +"mx" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/backpack/dufflebag/syndie/ammo/smg, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/sekret) +"my" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + icon = 'icons/turf/snow.dmi'; + temperature = 140 + }, +/area/awaymission/snowdin) +"mz" = ( +/obj/machinery/light/built{ + tag = "icon-tube1 (NORTH)"; + icon_state = "tube1"; + dir = 1 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + icon = 'icons/turf/snow.dmi'; + temperature = 140 + }, +/area/awaymission/snowdin) +"mA" = ( +/obj/item/stack/medical/bruise_pack, +/turf/open/floor/plasteel/shuttle/red{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin) +"mB" = ( +/obj/machinery/door/window{ + base_state = "right"; + dir = 4; + icon_state = "right"; + name = "Infirmary"; + req_access_txt = "150" + }, +/obj/item/stack/medical/ointment, +/turf/open/floor/plasteel/shuttle/red{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin) +"mC" = ( +/obj/machinery/door/window{ + dir = 8; + name = "Tool Storage"; + req_access_txt = "150" + }, +/turf/open/floor/plasteel/shuttle/red{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin) +"mD" = ( +/obj/item/weapon/storage/toolbox/syndicate, +/turf/open/floor/plasteel/shuttle/red{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin) +"mE" = ( +/obj/item/weapon/screwdriver{ + pixel_y = 9 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + icon = 'icons/turf/snow.dmi'; + temperature = 140 + }, +/area/awaymission/snowdin) +"mF" = ( +/obj/machinery/porta_turret/syndicate, +/turf/open/floor/plating/asteroid/snow{ + temperature = 140 + }, +/area/awaymission/snowdin/dungeon1) +"mG" = ( +/obj/item/target, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/sekret) +"mH" = ( +/obj/structure/window/reinforced, +/obj/item/ammo_casing/c10mm, +/turf/open/floor/plasteel/warning{ + baseturf = /turf/open/floor/plating/asteroid/snow; + dir = 8 + }, +/area/awaymission/snowdin/sekret) +"mI" = ( +/obj/item/ammo_casing/c10mm, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/sekret) +"mJ" = ( +/obj/machinery/telecomms/relay/preset/ruskie{ + use_power = 0 + }, +/turf/open/floor/plasteel/purple{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin/sekret) +"mK" = ( +/obj/machinery/light/built, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + icon = 'icons/turf/snow.dmi'; + temperature = 140 + }, +/area/awaymission/snowdin) +"mL" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin) +"mM" = ( +/obj/item/weapon/shard{ + icon_state = "medium" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + icon = 'icons/turf/snow.dmi'; + temperature = 140 + }, +/area/awaymission/snowdin) +"mN" = ( +/obj/machinery/door/window{ + dir = 1; + name = "Secure Storage"; + req_access_txt = "150" + }, +/turf/open/floor/plasteel/shuttle/red{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin) +"mO" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plasteel/shuttle/red{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin) +"mP" = ( +/obj/item/weapon/stock_parts/cell/high, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + icon = 'icons/turf/snow.dmi'; + temperature = 140 + }, +/area/awaymission/snowdin) +"mQ" = ( +/obj/structure/flora/grass/both, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin) +"mR" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plasteel/warning{ + baseturf = /turf/open/floor/plating/asteroid/snow; + dir = 8 + }, +/area/awaymission/snowdin/sekret) +"mS" = ( +/obj/structure/table/reinforced, +/obj/item/ammo_box/a357, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/sekret) +"mT" = ( +/obj/item/weapon/gun/syringe{ + pixel_x = 1; + pixel_y = 2 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + icon = 'icons/turf/snow.dmi'; + temperature = 140 + }, +/area/awaymission/snowdin) +"mU" = ( +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/obj/structure/mirror{ + pixel_x = 30 + }, +/turf/open/floor/plasteel/shuttle/red{ + baseturf = /turf/open/floor/plating/asteroid/snow; + temperature = 180 + }, +/area/awaymission/snowdin) +"mW" = ( +/obj/structure/flora/grass/green, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin) +"mX" = ( +/obj/item/target/alien, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/sekret) +"mY" = ( +/obj/structure/window/reinforced, +/obj/item/ammo_casing/c10mm, +/obj/item/ammo_casing/c10mm, +/turf/open/floor/plasteel/warning{ + baseturf = /turf/open/floor/plating/asteroid/snow; + dir = 8 + }, +/area/awaymission/snowdin/sekret) +"mZ" = ( +/obj/structure/table/reinforced, +/obj/item/ammo_box/c10mm, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/sekret) +"na" = ( +/turf/open/floor/plasteel/darkbrown{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin) +"nb" = ( +/mob/living/simple_animal/bot/cleanbot{ + name = "\improper Cleanksy" + }, +/turf/open/floor/plasteel/darkbrown{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin) +"nc" = ( +/obj/structure/table, +/obj/item/weapon/paper/crumpled/snowdin/shovel, +/turf/open/floor/plasteel/darkbrown{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin) +"nd" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/darkbrown{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin) +"ne" = ( +/obj/structure/table, +/obj/item/device/flashlight/lamp, +/turf/open/floor/plasteel/darkbrown{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin) +"nf" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + icon = 'icons/turf/snow.dmi'; + temperature = 140 + }, +/area/awaymission/snowdin) +"ng" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/electrical, +/obj/item/weapon/storage/toolbox/electrical, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + icon = 'icons/turf/snow.dmi'; + temperature = 140 + }, +/area/awaymission/snowdin) +"nh" = ( +/obj/structure/shuttle/engine/heater, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating, +/area/awaymission/snowdin) +"ni" = ( +/obj/structure/flora/grass/green, +/obj/item/weapon/a_gift, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin) +"nj" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/item/ammo_casing/a357, +/turf/open/floor/plasteel/warning{ + baseturf = /turf/open/floor/plating/asteroid/snow; + dir = 8 + }, +/area/awaymission/snowdin/sekret) +"nk" = ( +/mob/living/simple_animal/hostile/syndicate{ + health = 50; + maxHealth = 50; + name = "Weakened Syndicate Operative"; + speed = 2 + }, +/turf/open/floor/plasteel/darkbrown{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin) +"nl" = ( +/obj/structure/filingcabinet, +/turf/open/floor/plasteel/darkbrown{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin) +"nm" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/darkbrown{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin) +"nn" = ( +/obj/item/weapon/shovel, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + icon = 'icons/turf/snow.dmi'; + temperature = 140 + }, +/area/awaymission/snowdin) +"no" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical, +/obj/item/weapon/storage/toolbox/mechanical, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + icon = 'icons/turf/snow.dmi'; + temperature = 140 + }, +/area/awaymission/snowdin) +"np" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_l" + }, +/turf/open/floor/plating, +/area/awaymission/snowdin) +"nq" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/open/floor/plating, +/area/awaymission/snowdin) +"nr" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_r" + }, +/turf/open/floor/plating, +/area/awaymission/snowdin) +"ns" = ( +/obj/structure/window/reinforced, +/obj/item/ammo_casing/a357, +/turf/open/floor/plasteel/warning{ + baseturf = /turf/open/floor/plating/asteroid/snow; + dir = 8 + }, +/area/awaymission/snowdin/sekret) +"nt" = ( +/obj/structure/table/reinforced, +/obj/machinery/light, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/sekret) +"nu" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'WEAPONS HOT'."; + name = "WEAPONS HOT"; + pixel_y = -32 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/sekret) +"nv" = ( +/obj/item/ammo_casing/a357, +/obj/item/ammo_casing/a357, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/sekret) +"nw" = ( +/obj/structure/closet/crate, +/obj/item/target/alien, +/obj/item/target/alien, +/obj/item/target, +/obj/item/target, +/obj/item/target/clown, +/obj/item/target/clown, +/obj/machinery/light, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/sekret) +"nx" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/gun/projectile/automatic/pistol, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/sekret) +"ny" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/box/lethalshot, +/obj/item/weapon/storage/box/lethalshot, +/obj/item/weapon/storage/box/lethalshot, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/sekret) +"nz" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/gun/projectile/shotgun/automatic/combat, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/asteroid/snow; + wet = 0 + }, +/area/awaymission/snowdin/sekret) +"nA" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin) +"nB" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/filingcabinet, +/obj/item/weapon/paper/snowdin/snowdinlog2, +/turf/open/floor/plasteel/darkbrown{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin) +"nC" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/plasteel/darkbrown{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin) +"nD" = ( +/obj/machinery/door/airlock/hatch, +/turf/open/floor/plasteel/darkbrown{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin) +"nE" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin) +"nF" = ( +/obj/machinery/power/smes/magical{ + desc = "A high-capacity superconducting magnetic energy storage (SMES) unit."; + name = "power storage unit" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + icon = 'icons/turf/snow.dmi'; + temperature = 140 + }, +/area/awaymission/snowdin) +"nG" = ( +/obj/machinery/power/terminal{ + dir = 4 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + icon = 'icons/turf/snow.dmi'; + temperature = 140 + }, +/area/awaymission/snowdin) +"nH" = ( +/obj/effect/decal/cleanable/vomit, +/turf/open/floor/plasteel/darkbrown{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin) +"nI" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/darkbrown{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin) +"nJ" = ( +/obj/machinery/power/port_gen/pacman, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + icon = 'icons/turf/snow.dmi'; + temperature = 140 + }, +/area/awaymission/snowdin) +"nK" = ( +/obj/structure/flora/grass/green, +/obj/structure/flora/tree/pine/xmas, +/obj/item/weapon/a_gift, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin) +"nL" = ( +/obj/effect/spawner/lootdrop/snowdin/dungeonlite, +/turf/open/floor/plasteel/darkbrown{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin) +"nM" = ( +/obj/structure/table, +/turf/open/floor/plasteel/darkbrown{ + baseturf = /turf/open/floor/plating/asteroid/snow + }, +/area/awaymission/snowdin) +"nN" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + icon = 'icons/turf/snow.dmi'; + temperature = 140 + }, +/area/awaymission/snowdin) +"nO" = ( +/obj/structure/closet/crate, +/obj/item/weapon/survivalcapsule, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + icon = 'icons/turf/snow.dmi'; + temperature = 140 + }, +/area/awaymission/snowdin) +"nP" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/asteroid/snow; + icon = 'icons/turf/snow.dmi'; + temperature = 140 + }, +/area/awaymission/snowdin) +"nQ" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/snowdin) + +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(8,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(9,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(10,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(11,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(12,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(13,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +aL +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +aL +ac +ac +aL +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(14,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +aL +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aV +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(15,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +aL +aL +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dW +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(16,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +aL +aL +aL +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bM +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(17,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +aL +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +cP +cP +cP +cP +cP +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +aL +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(18,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +cP +cP +cR +cX +cR +cP +cP +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dW +ac +ac +ac +ac +dW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +aL +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(19,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +aL +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +cP +cR +cR +cR +cR +cR +cP +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +aL +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(20,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bM +ac +ac +ac +aL +aL +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +cP +cR +cR +ht +cR +cR +cP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(21,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aV +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +cP +cR +cR +cR +cR +cR +cP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +dW +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(22,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +cP +cP +cR +cR +cR +cP +cP +ac +ac +ac +ac +ac +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(23,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +cP +cP +cR +cP +cP +ac +ac +ac +ac +ac +aL +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(24,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aV +ac +ac +aL +ac +ac +ac +ac +cP +cR +cP +ac +ac +ac +bM +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(25,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +aV +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +cP +cW +cP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +mi +ac +ac +mi +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(26,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +jj +jk +jk +jj +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(27,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +aL +ac +ac +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +iK +jw +jw +iK +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(28,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +aL +ac +ac +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +iK +jw +jw +iK +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(29,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +aL +aL +aL +aL +ac +ac +af +af +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +jj +jj +jj +jj +jj +jk +jk +jj +jj +jj +jj +jj +jj +jj +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(30,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +aL +ac +ac +ac +af +af +af +af +af +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +fJ +dp +dp +dp +ac +ac +ac +ac +dp +dp +dp +dp +kc +kc +kc +iK +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(31,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ja +dp +kc +ac +kc +kA +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(32,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +al +al +al +al +al +al +aF +aF +aF +aF +al +al +al +al +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +aL +aL +ac +ac +ac +ac +bM +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +cM +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dp +dp +ac +ac +ac +ac +nA +dp +ac +kc +kc +ja +kA +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(33,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +al +bs +bB +aD +bO +cd +aD +bU +bU +bU +bU +aD +aI +aI +al +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +aL +aL +aL +ac +ac +bM +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +aL +aL +aL +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +fJ +ac +ac +kU +jj +jj +jj +dp +ac +jj +jj +jj +jj +jj +jj +jj +ac +dp +dp +jj +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(34,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +bi +bk +aZ +aD +bQ +ce +cf +cp +bU +bU +bU +aD +aK +aI +aF +ac +ac +ac +ac +ac +ac +cM +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +af +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aV +ac +ac +ac +ac +ac +ac +fC +ac +ac +dp +lF +jj +dp +ac +jj +nb +nl +nB +nl +nL +jj +dp +dp +dp +jj +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(35,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +aF +bh +aZ +bC +aD +bP +bV +aD +co +bU +bU +bU +aD +aI +aI +aF +ac +ac +ac +ac +ac +ac +cV +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +bM +ac +ac +ac +aL +ac +ac +ac +ac +ac +ac +ac +bM +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +aL +aL +aL +ac +ac +ac +aV +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +kU +ac +ac +ac +lQ +dp +jj +dp +dp +jj +na +nk +na +nH +na +jj +dp +ac +dp +jj +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(36,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +aF +bj +aZ +bE +aD +aD +aD +aD +cl +bU +bU +bU +cJ +aI +cK +aF +ac +ac +ac +ac +cM +cV +da +cV +cM +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +dz +af +af +af +af +af +af +af +af +af +af +af +af +ac +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +bM +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dp +dp +jj +my +mK +jj +nd +na +na +na +ne +jj +dp +ac +ac +jj +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(37,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +aF +aY +aZ +aZ +bD +aD +bR +bU +bU +cq +cu +cl +cp +aD +aI +cK +aF +ac +ac +ac +ac +ac +ac +cV +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +fJ +ac +kU +dp +dp +dp +dp +lF +jj +dp +dp +jj +nc +nm +nC +nI +nM +jj +dp +ac +ac +jj +ac +ac +ac +ac +ac +ac +ac +ac +ac +aV +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(38,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +al +aZ +aZ +bk +bG +aD +bT +bU +cl +cr +cv +bU +bU +aD +aI +aI +aF +ac +ac +ac +ac +ac +ac +cM +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +hf +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bM +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +jj +dp +dp +lF +lF +lF +jj +kc +dp +jj +ne +na +na +na +nd +jj +dp +ac +ac +jj +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(39,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +al +aM +aZ +bk +aZ +bF +aD +bS +bU +bU +bU +cl +cp +cF +aD +aI +cK +aF +ac +ac +ac +aV +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +bM +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +iY +jj +iK +iK +jj +dp +ac +dp +jj +jj +jj +lE +jj +jj +jj +kc +dp +jj +jj +jj +nD +jj +jj +jj +dp +ac +ac +jj +kA +dp +jj +nQ +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(40,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +al +aM +aZ +bl +bt +bl +aD +bU +bU +bU +bU +bU +cA +bU +aD +aI +aI +al +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dp +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +jk +jw +jw +jk +dp +ac +dp +kc +kc +kc +kc +kc +kc +kc +kc +kc +kc +dp +li +dp +dp +ac +ac +ac +ac +ac +jk +ac +ac +jk +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(41,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +al +al +al +al +aD +aD +ba +aD +aD +aD +aD +aD +cf +aD +aD +aD +cz +aD +aD +aI +aI +al +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +af +af +dz +dz +dz +dp +dp +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +aL +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +ac +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +ac +ac +dz +dz +dz +dz +dz +ac +ac +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +jk +jw +jw +jk +dp +dp +dp +kc +kc +kc +kc +kc +kc +kc +kc +kc +dp +dp +dp +dp +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(42,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +al +at +ax +aC +aI +aI +aI +bm +bv +bv +aD +bV +ce +cd +aD +cx +cC +cd +aD +aI +aI +aD +aF +aF +al +cO +ac +ac +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +ac +ac +ac +dz +dz +ac +af +af +af +dz +dz +dp +dp +dp +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +aV +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +iZ +jj +iK +iK +jj +dp +dp +dp +jj +jj +jj +lG +jj +jj +jj +kc +mL +jj +jj +jj +nE +jj +jj +jj +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(43,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +al +as +aw +aB +aH +aN +aI +aI +bu +bH +aD +bP +cg +bO +aD +cw +cB +bO +aD +aI +aI +cL +aZ +aZ +cL +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +dz +dp +dp +dp +dz +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +aV +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +cQ +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +ac +ac +dz +dz +dz +dz +ac +jj +kc +dp +dp +jj +lf +ls +ls +ls +lt +jj +dp +kc +jj +nf +nn +dp +dp +nN +jj +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(44,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +al +au +ay +aE +aJ +aJ +aJ +aJ +bx +bJ +aD +aD +aD +aD +aD +aD +aD +aD +aD +aK +aI +aD +bi +bi +al +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +dp +dp +dp +dz +dz +ac +ac +aV +ac +ac +ac +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +cQ +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +jj +kc +dp +kc +jj +lh +ls +ls +ls +lh +jj +dp +dp +jT +nf +dp +nG +dp +nP +jj +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(45,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +al +al +al +aD +aI +aO +bb +bn +bw +bI +aD +bW +ch +ch +ch +ch +ch +cG +aD +aI +aI +cL +aZ +aZ +cL +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +dp +dp +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dW +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +aL +aL +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +jT +kc +kc +kM +jj +lg +ls +ls +ls +lg +jj +mz +dp +jj +lQ +dp +nF +dp +nO +jj +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(46,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +al +aI +aQ +bd +bp +by +bL +aD +bY +ch +ch +ch +ch +ch +bZ +aD +aI +aI +aD +aF +aF +al +cO +ac +dz +dz +dz +dz +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +af +dp +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +aL +ac +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +aL +ac +ac +jT +kc +kz +kc +jj +lg +ls +ls +ls +lg +jj +dp +dp +jj +dp +dp +dp +dp +ac +ac +ac +ac +ac +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(47,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +al +aI +aP +bc +bo +bw +bK +aD +bX +ci +ch +ch +ch +cD +bX +aD +aI +aI +al +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bM +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +ac +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +ac +aL +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +jj +kc +kc +kc +jj +lh +lt +lH +lt +lh +jj +ac +ac +jj +ng +no +dp +nJ +ac +ac +ac +ac +ac +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(48,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +al +aK +aI +aI +aI +bw +bw +aD +bZ +ch +ch +ch +ch +ch +bY +aD +aI +aI +al +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bM +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +ac +dz +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +ac +ac +ac +ac +ac +jj +kc +kc +kc +jj +jj +jj +jj +jj +jj +jj +ac +ke +jj +jj +jj +kU +fC +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(49,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +al +aI +aR +be +bq +aI +aI +aD +aD +aD +aD +cs +aD +aD +aD +aD +aI +aI +al +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +ac +ac +ac +dz +ac +ac +ac +ac +ac +ac +ac +cQ +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +ac +ac +ac +ac +kd +kc +kc +kc +kc +kc +lI +dp +dp +dp +ac +ac +ac +ac +ac +ac +ac +fJ +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(50,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +al +aI +aI +aI +aI +aI +aI +bN +cb +cb +cm +ck +cm +cb +cb +bN +aI +aI +al +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bM +ac +ac +ac +ac +aW +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +kA +kc +kz +kc +dp +dp +ac +ac +ac +ac +ac +ac +ac +ke +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(51,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +al +aI +aS +bf +be +bz +aI +aD +ca +cb +cb +cb +cb +cb +cH +aD +aI +aI +al +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aV +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dp +kc +dp +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(52,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +aF +aI +aI +aI +aI +aI +aI +aD +cc +ck +cb +cb +cb +cb +cI +aD +aK +aI +al +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +aW +ac +ac +ac +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bM +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +bM +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +jj +jj +jj +jj +jj +ac +ac +ac +jk +jj +jj +jj +jj +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(53,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +aF +aI +bg +br +bA +aI +aD +cc +cj +cn +ct +cy +cE +cI +aD +aI +aI +al +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +cM +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bM +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aV +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(54,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +aF +al +al +al +al +al +al +aF +aF +aF +aF +aF +al +al +al +al +al +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +ac +ac +ac +ac +ac +ac +fP +dz +fP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ke +ac +ac +ac +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(55,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aV +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ad +ec +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bM +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bM +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(56,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ad +ef +ef +ad +ac +fG +ac +ef +df +ef +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +aL +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(57,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +fd +dS +ad +fC +ac +fJ +fQ +df +ef +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(58,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ff +fp +cZ +ad +fD +fK +cZ +ec +ad +ac +gb +ac +eL +gg +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ke +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(59,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ad +ad +am +ad +ad +aG +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +fe +cZ +ad +fD +fD +fD +fD +aj +ad +ac +ad +gc +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(60,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ad +ag +an +ao +az +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +aL +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ad +fh +fq +fy +aj +fD +fM +df +aj +ad +ac +ad +ai +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +ac +ac +ac +ac +ac +ac +aL +aL +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +bM +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(61,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ad +ae +ai +ah +az +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ad +fg +fh +ad +fE +aj +fL +df +aj +ad +ac +ad +ad +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(62,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ad +ai +ah +ao +az +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +aU +aW +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +aW +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ad +fh +fs +ad +aj +fH +fN +fR +fT +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ke +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(63,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ad +ah +ao +av +az +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +ac +ac +ac +ac +dz +dz +dz +dz +dz +ac +aW +ac +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ad +cZ +fr +cZ +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +aW +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(64,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ad +ak +aq +ad +ad +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ad +fj +ao +fA +ad +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aV +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(65,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ad +aj +ap +aj +ad +am +ad +aT +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +aL +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ad +fi +ft +fz +ad +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cZ +fj +gA +gD +gD +ao +gK +cZ +gR +dJ +fe +hk +fe +dJ +hs +cZ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +eR +eR +eR +eR +eR +eR +eR +eR +eR +eR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ke +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(66,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ad +aj +ar +aj +aA +ao +aA +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ad +fl +fu +fB +ad +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cZ +gu +ao +ao +ao +ao +gM +cZ +gS +gZ +cZ +hk +cZ +gZ +gS +cZ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +eR +eR +eR +eR +eR +eR +eR +eR +eR +eR +eR +eR +eR +eR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(67,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +am +ad +aG +ac +ac +ac +bM +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +eY +ac +ac +ac +ad +ad +ad +ad +ad +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +eR +eR +eR +eR +eR +eR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cZ +gt +gu +ao +gG +ao +gL +cZ +cZ +cZ +cZ +hk +cZ +ad +ad +cZ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +eR +eR +eR +eR +eS +eS +eT +eT +eT +eT +eR +eR +eR +eR +eR +eR +eR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(68,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +aV +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +eX +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +eR +eR +eR +eR +eR +eR +eS +eS +eT +eT +eT +eR +eR +eR +eR +aa +aa +aa +aa +aa +aa +aa +aa +cZ +gw +ao +ao +ao +ao +fu +cZ +gT +dJ +fe +hk +ho +hr +hr +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +eR +eR +eS +eS +eS +eS +hw +eT +eT +eT +eT +eR +eR +eR +eR +eR +eR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(69,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +eR +eR +eR +eR +gh +eS +eS +eS +eT +eT +eT +eS +eS +eS +eR +aa +aa +aa +aa +aa +aa +aa +aa +cZ +gv +ao +ao +ao +ao +fu +cZ +gS +gZ +cZ +hk +ad +hq +hr +gs +eR +eR +eR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +eR +eS +hC +eS +eS +eS +eT +eT +hA +eT +eT +eS +eS +eS +eR +eR +eR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ke +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(70,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +eR +eR +eS +eT +eS +eS +eS +eS +eS +eS +eS +eS +eS +eS +eR +eR +eR +eR +aa +aa +aa +aa +aa +ad +ad +ad +fr +ad +ad +ad +cZ +ad +ad +ad +hl +ad +ad +gr +gr +eS +eR +eR +eR +eR +eR +eR +aa +aa +aa +eR +eR +eR +eT +hD +eS +eS +hE +eS +eT +eT +eT +eS +hG +eS +eS +hH +eR +eR +eR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +aL +aL +ac +ac +ac +ac +ac +ac +ac +jK +jU +ke +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(71,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bM +ac +ac +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +aW +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +eR +eS +gd +eS +eS +eS +gf +eT +eT +eR +eR +eS +eS +eT +eS +eS +eS +eR +eR +eR +eR +eR +eR +ez +eC +eC +eC +ez +gI +gz +gs +gU +gU +gr +gU +gU +df +gr +gr +eS +eS +eS +eR +eR +eR +eR +aa +aa +aa +eR +eR +eT +eT +eT +eS +eS +eS +eS +eT +eT +hB +eS +eS +hD +eS +eS +eS +eS +eR +eR +eR +eR +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +jK +ac +kB +ac +ac +ac +fC +ac +lR +iN +iN +jT +dp +lQ +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(72,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +eR +eR +eR +eR +eR +eR +eR +eR +eR +eR +eR +eR +eS +eS +eS +eT +eS +eS +eR +eR +eR +eT +eT +eC +eC +eC +eC +gz +gz +gz +gP +gU +gU +gU +df +gr +gr +gr +fk +eT +eS +eS +eS +eS +eS +eT +eT +eR +eR +eR +eS +eT +eT +hw +hC +eS +hF +eS +eS +eS +eS +eS +eS +eS +eS +eS +eS +eS +eS +eS +eR +eR +eR +eR +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ke +ac +ac +ac +ac +ac +jT +iN +jm +jm +dp +dp +dp +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(73,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +aW +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +eR +eR +eR +eR +eR +eR +eS +eS +eS +eS +eS +eS +eS +eS +eR +eS +eS +eC +eC +ez +gz +ez +gz +ez +cZ +gV +gU +hg +gU +df +gr +fk +fk +eT +eT +eT +eS +eS +eS +eS +eT +eR +eR +eS +eS +eS +eS +eT +eS +eS +eS +hD +eS +eS +eS +eS +eS +eS +eS +hE +eS +eS +eS +eS +eS +eS +eR +eR +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ke +ac +ac +ac +lJ +iN +mf +mj +mA +mM +mT +dp +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(74,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +aW +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +eR +eR +eR +eR +eR +eR +eR +eS +eS +eS +eS +eS +eS +eC +fk +eC +eM +gz +ad +ad +cZ +cZ +ad +ad +ad +ad +ad +fk +fk +eS +eS +eS +eT +eS +eS +eS +eS +eS +eS +eS +eS +eS +eS +eS +hE +eS +eS +eS +eS +eS +eS +hH +eS +eS +eS +eS +hH +eS +eS +hC +eS +eS +eS +eR +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dp +dp +jm +iN +jm +jm +jm +jm +mU +dp +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(75,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +dz +dp +dp +dp +dp +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +eR +eR +eR +eR +eS +eT +eT +eS +eR +eK +eC +ez +gz +gz +ad +dX +gQ +gW +ha +hh +hm +hp +aa +aa +aa +eR +eR +eS +eS +eS +eS +eS +eS +eS +eS +eS +eS +hz +eS +eS +eS +eS +eS +eS +eS +hC +hG +eS +eR +eR +eS +eS +eS +eS +eS +eS +eS +eS +eS +eR +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +iG +ac +ac +iN +iN +jL +ac +ac +ac +ac +ac +li +lu +lK +iN +mg +mk +jm +kV +iN +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(76,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +dp +dp +dp +dp +dp +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +eR +eR +eR +eR +eR +ad +eC +gz +gz +gz +gJ +aj +aj +aj +hc +hj +hh +hp +aa +aa +aa +eR +eR +eR +eR +eR +eR +eS +eT +eT +eS +eS +eS +eS +eS +eS +eS +eS +eS +hE +eT +eS +eR +eR +eR +eR +eR +eR +eR +eR +eS +eS +eS +hH +eS +eR +eR +eR +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +jl +jl +iN +ac +kf +dp +dp +kV +kV +kg +jm +iN +kV +jm +mj +kV +iN +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(77,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +dp +dp +af +dp +dp +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +eR +eR +eS +ez +ez +ez +gE +gz +ad +aj +aj +aj +hb +hi +hn +hp +aa +aa +aa +eR +eR +eR +eR +eR +eR +eR +eR +eT +eS +eS +eS +hC +eS +hE +eS +hy +eT +eT +eT +eS +eR +eR +eR +eR +eR +eR +eR +eR +eS +eS +eS +eS +eS +eS +eS +hP +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dp +dp +jx +iN +iN +dp +dp +dp +iN +iN +lv +lL +iN +iN +ml +mB +iN +iN +iN +jL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(78,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +dp +af +af +dp +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +eR +eR +eR +eR +eS +eS +ez +gz +gC +gz +gz +ad +cZ +cZ +gX +cZ +cZ +cZ +hp +aa +aa +aa +aa +aa +aa +aa +aa +aa +eR +eR +eR +eR +eR +eR +eR +eR +eS +eT +eT +eT +hw +eT +eR +eR +eR +eR +eR +eR +eR +eR +eR +eR +eS +eS +eS +eS +eS +eS +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +iv +ac +ac +ja +dp +jy +iN +jV +kh +kh +kh +kh +lj +jm +jm +lS +jm +jm +jm +mO +jm +nh +np +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(79,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +eR +gn +gp +eS +eS +eS +cZ +gy +gB +gF +gH +cZ +aj +aj +aj +hd +aj +cZ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +eR +eR +eR +eR +eR +eT +eT +eT +eT +eT +eR +eR +eR +eR +eR +eR +eR +eR +eR +eR +eR +eR +eS +hD +eS +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +fJ +ac +dp +dp +dp +jm +jM +jm +kg +kC +jm +kW +jm +jm +jm +kg +jm +jm +jm +mN +jm +nh +nq +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(80,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +dp +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +ac +ac +ac +aa +aa +aa +aa +aa +eR +go +gq +eS +eS +eR +cZ +cZ +cZ +cZ +cZ +cZ +aj +aj +aj +aj +aj +ad +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +eR +eR +eR +eR +eR +eT +eT +eT +eR +eR +eR +eR +eR +eR +eR +eR +aa +aa +aa +eR +eR +eR +eS +eS +ac +ac +ac +hN +ac +ac +ac +ac +ac +ac +ac +ac +ac +fG +iL +dp +dp +jA +iN +jW +ki +ki +ki +kX +kg +jm +lN +lT +kg +jm +jm +mO +jm +nh +nr +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(81,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +dp +dp +af +dp +dp +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +eR +eR +eR +eR +eR +eR +aa +aa +aa +aa +aa +cZ +aj +aj +aj +dX +aj +ad +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +eR +eR +eR +eR +eR +eR +eR +eR +eR +eR +eR +eR +eR +eR +eR +eR +aa +aa +aa +eR +eR +eR +eS +ac +hN +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +iK +dp +jm +jz +iN +iN +iN +iN +iN +iN +iN +lw +lM +iN +iN +mm +mC +iN +iN +iN +jN +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(82,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +dp +dp +dp +dp +dp +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +aL +aL +aL +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ad +ad +ad +ad +he +ad +ad +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +da +ac +ac +ac +ac +ac +ac +ac +ac +fJ +ac +iN +jb +jm +jB +iN +ac +ac +ac +ac +ac +dp +jm +jm +iN +kV +mn +jm +dp +iN +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(83,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +dp +dp +dp +dp +dp +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bM +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +am +df +am +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +iM +iN +iN +iN +jN +ac +ac +ac +ac +ac +lk +dp +jm +iN +kV +mk +mD +dp +iN +iN +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(84,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +aV +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +dp +dp +dp +dp +dp +dz +dz +ac +ac +ac +ac +ac +ac +ac +bM +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ad +he +ad +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dp +dp +iN +cQ +dp +lQ +dp +dp +dp +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(85,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +dp +dp +dp +dp +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +gY +dz +gY +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +jT +iN +iN +mh +ac +dp +mP +dp +dp +dp +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(86,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +dp +dp +dp +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +bM +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +ac +ac +ac +cM +ac +ac +ac +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +aL +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +kN +ac +ac +ac +ac +ac +ac +fC +mE +dp +dp +dp +dp +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(87,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +iN +iN +iN +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(88,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(89,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +dz +dz +dz +ac +ac +ac +dW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +dz +dz +dz +dz +ac +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +dW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(90,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +dz +dz +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +ac +ac +ac +ac +ac +ac +aV +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(91,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +ac +ac +ac +ac +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +aL +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +aL +ac +ac +ac +ac +ac +ac +bM +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bM +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(92,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +dp +dp +dp +dz +dz +dz +dz +dz +dz +dz +ac +ac +ac +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +ac +ac +ac +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +ac +ac +ac +ac +bM +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bM +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(93,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +bM +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +ac +dz +dz +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +dp +dp +dp +dp +dz +dz +dz +dz +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(94,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +bM +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +af +dp +dp +dp +dp +dp +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +aL +ac +ac +ac +dz +ac +ac +dz +dz +dz +ac +ac +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +aW +ac +dz +dz +dz +dz +dz +ac +ac +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bM +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bM +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(95,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +af +af +af +af +af +af +ac +ac +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +ac +ac +dz +ac +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +dp +dp +dp +dp +dp +af +ac +ac +ac +ac +ac +dz +dz +ac +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +bM +ac +ac +ac +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(96,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bM +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +dp +dp +dp +dp +dp +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(97,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +dp +dp +dp +dp +dp +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +ac +ac +ac +ac +ac +ac +bM +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +ac +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +dW +ac +ac +ac +ac +ac +ac +dW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(98,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +ac +aL +aL +ac +ac +dW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dW +ac +ac +ac +ac +ac +dz +ac +ac +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +dp +dp +dp +dp +dp +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(99,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +dp +dp +dp +dp +dp +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bM +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(100,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bM +ac +aL +aL +ac +ac +ac +aV +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +ac +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +dz +ac +dp +dp +dp +dp +dp +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bM +ac +ac +ac +aL +aL +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(101,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dp +dp +dp +dp +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(102,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +dz +dz +dz +dp +dp +dp +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +hf +ac +ac +ac +ac +aV +ac +ac +ac +ac +ac +ac +ac +ac +bM +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(103,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +aL +aL +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +dz +dz +dz +ac +ac +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(104,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +aL +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dW +ac +ac +ac +ac +ac +ac +ac +ac +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +ac +dz +dz +dz +ac +ac +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aV +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(105,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +aL +aL +aL +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +dz +dz +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(106,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +cM +ac +aL +aL +aL +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +aL +ac +ac +ac +ac +ac +ac +ac +ac +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aV +ac +ac +bM +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(107,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +aL +aL +ac +ac +ac +ac +ac +ac +aL +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aV +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(108,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +ac +ac +ac +ac +cP +cW +cP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dW +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(109,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +ac +ac +ac +ac +ac +cP +cR +cP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bM +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +dz +dz +ac +ac +ac +ac +bM +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(110,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +aX +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +cP +cP +cR +cP +cP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +aL +aL +aL +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +aL +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +cP +cW +cP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(111,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +cP +cP +cR +cR +db +cP +cP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bM +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +dW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +cP +cR +cP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(112,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +cP +cS +cU +cR +cR +cR +cP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bM +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +cP +cP +db +cP +cP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(113,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +cP +cR +cR +cR +dc +cR +cP +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +ac +ac +ac +ac +af +af +af +af +af +af +af +af +af +aa +aa +aa +aa +aa +aa +aa +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +cP +cP +cR +cR +cT +cP +cP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(114,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +cP +cT +cR +cR +cR +di +cP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bM +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +cP +cR +cU +dc +cR +cR +cP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(115,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +cP +cP +cR +cX +cR +cP +cP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +eS +eS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +aL +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +ac +ac +ac +ac +ac +ac +ac +cP +cR +cR +cR +cR +cR +cP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dz +dz +dz +dz +dz +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(116,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +cP +cP +cP +cP +cP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +eS +eS +eS +eS +eS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +cP +cR +cR +cR +cR +di +cP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +fP +dz +fP +ac +ac +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bM +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(117,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 +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aV +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +eR +eS +eS +eS +eS +eR +eR +eR +eR +eR +eR +eR +eR +eR +eR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +aL +ac +ac +ac +ac +ac +cP +cP +cR +cX +cR +cP +cP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ad +ec +ad +ac +ac +ac +dz +dz +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(118,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 +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +eR +eS +eS +eS +eS +eS +eS +eT +eS +eR +eR +eR +eR +eR +eR +aa +aa +aa +aa +aa +eR +eR +eR +eR +eR +eR +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +aL +ac +ac +ac +ac +ac +ac +cP +cP +cP +cP +cP +ac +ac +ac +ac +ac +ac +ac +ac +ac +cM +ac +ac +ac +ac +ac +ef +df +ef +ac +ac +ac +ac +dz +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(119,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 +ac +ac +ac +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +eR +eR +eR +eR +eS +eS +eS +eS +eS +eR +eR +eR +eR +eR +eR +eR +eR +eR +eR +eR +eR +eR +eR +eS +eS +eS +ac +af +ac +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ef +df +ef +ac +ac +ac +ac +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(120,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 +ac +aL +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +ac +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +eR +eR +eT +eT +eT +eS +eS +eS +eS +eS +eS +eS +eR +eR +eR +eR +eR +eR +eS +eS +eS +eS +eS +eT +ac +ac +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +dW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ad +ad +hJ +hJ +hJ +ad +cZ +ec +cZ +ad +ad +ad +ac +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(121,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 +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +eR +eR +eR +eT +eT +eS +eS +eS +eT +eT +eT +eT +eS +eS +eS +eS +eS +eR +eR +eR +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ad +hJ +hJ +hJ +ad +cZ +aj +dX +dX +dX +aj +cZ +ig +il +hh +ir +ad +ac +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(122,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 +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +aL +ac +ac +ac +ac +bM +ac +ac +ac +ac +ac +ac +aL +aL +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +eR +eR +eR +eS +fc +eS +eS +eS +eS +eS +eS +eT +eS +eR +eR +eR +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ad +gM +ao +ao +ao +cZ +aj +aj +aj +aj +aj +cZ +ig +il +ge +hh +ad +ac +dz +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +aL +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(123,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 +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bM +ac +ac +ac +ac +ac +ac +ac +ac +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +eR +eR +eR +eR +eR +eR +eR +eR +eR +eR +eR +eR +eR +eR +eR +eR +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +ac +ac +ac +ac +ac +ac +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ad +gK +ao +ao +ao +cZ +aj +aj +aj +aj +aj +cZ +ih +cZ +cZ +is +ad +ac +ac +dz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +mQ +mQ +mQ +mQ +mQ +aL +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(124,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 +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +eR +eR +eR +eR +eR +eR +eR +eR +eR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +ac +ac +ac +aW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ad +ao +ao +ao +ao +cZ +hQ +aj +df +aj +aj +hO +ig +ig +ig +ig +ad +ac +gb +dz +gl +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +mQ +mW +mW +mW +mW +mQ +mQ +aL +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(125,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 +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aW +ac +ac +ac +ac +bM +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ad +hK +ao +ao +ao +hO +df +df +df +df +aj +aj +ig +ig +ig +ig +ad +ac +ad +jc +ad +jC +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +mQ +mW +mW +mW +ni +ni +mW +mQ +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(126,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 +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ad +hL +ao +ao +ao +aj +df +df +df +df +hZ +cZ +ii +ig +ig +it +ad +ac +ad +ai +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +mQ +mW +ni +ni +mW +ni +ni +mQ +aL +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(127,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 +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +aW +ac +ac +ac +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cZ +cZ +ao +ao +ao +cZ +df +gN +gN +gN +df +cZ +ig +ig +ig +ig +ad +ac +ad +ad +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +mW +ni +mW +mW +nK +ni +mW +mQ +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(128,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +aL +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cZ +cZ +hM +fu +cZ +gN +gN +fD +gN +gN +cZ +ig +ig +ig +ig +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aL +mW +ni +ni +mW +ni +mW +ni +mQ +aL +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(129,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 +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cZ +cZ +cZ +cZ +df +gN +fD +fD +gN +cZ +cZ +cZ +cZ +cZ +ad +ac +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +mQ +mW +mW +ni +ni +ni +mW +mQ +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(130,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 +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cZ +cZ +fD +fD +fD +cZ +cZ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +aL +aL +mW +mW +mW +mW +mW +mQ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(131,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +gh +eS +eS +eS +eS +eR +eR +eR +eR +eR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +mQ +mQ +mQ +mQ +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(132,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +eS +eS +eS +eR +eS +eS +eS +eR +eR +eR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +mQ +mQ +mQ +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(133,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +eR +hR +eR +eR +eR +eS +gh +eS +eS +eS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(134,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +eR +eR +eR +eR +eR +eR +eR +eR +eR +hR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(135,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(136,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(137,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(138,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(139,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(140,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(141,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +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 +cN +cN +cN +cN +cN +cN +cY +ad +cY +cY +ad +cZ +cZ +cY +cY +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +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 +cN +cN +cN +cN +cN +cN +cZ +dd +dj +dg +df +de +dr +dr +ad +cY +cY +cY +cY +cY +cY +cY +cY +cY +cY +cY +cY +cY +cY +cZ +cZ +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +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 +cN +cN +cN +cN +cN +cN +cZ +df +dg +df +de +de +df +df +df +cY +cZ +ad +cZ +cZ +cZ +ad +ad +cY +cY +cY +eb +ee +df +df +cZ +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +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 +cN +cN +cN +cN +cN +cN +cY +de +de +de +de +dg +df +ad +df +de +dE +dG +de +dI +de +de +de +cZ +cZ +cY +ea +ed +df +eg +cZ +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +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 +cN +cN +cN +cN +cN +cN +cY +de +df +df +df +df +df +ad +df +dB +de +de +dg +de +de +de +dg +de +de +de +cY +cY +de +df +cZ +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +iO +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +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 +cN +cN +cN +cN +cN +cN +cZ +dg +df +ad +ad +df +df +ad +dA +df +de +de +cY +ad +ad +dR +de +de +de +de +de +de +de +df +cZ +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +eq +eq +eq +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +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 +cN +cN +cN +cN +cN +cN +cY +de +df +df +df +df +dt +df +df +df +df +dH +df +df +ad +cZ +cZ +cZ +cZ +dY +dg +de +de +de +cZ +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +eq +eq +eq +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +do +dl +dl +dl +dD +dD +dl +dl +do +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +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 +cN +cN +cN +cN +cN +cN +ad +dh +dk +de +de +df +ds +dg +df +dC +dC +ad +ad +ad +cY +cY +cY +cY +cY +cZ +cZ +cZ +cZ +cZ +cZ +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +cN +cN +eq +eq +eq +eq +eh +eh +eq +eq +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dD +dD +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +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 +cN +cN +cN +cN +cN +cN +cY +ad +cY +de +dg +df +ad +ad +dg +ad +ad +ad +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +eq +eq +eq +eq +eh +eh +eq +eq +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +iO +dl +dl +dD +dD +dD +dD +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +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 +cN +cN +cN +cN +cN +cN +cN +cN +cY +ad +df +df +dg +dv +dv +ad +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +eq +eq +cN +cN +cN +dl +dl +eq +eh +eq +eh +eh +eh +eh +eq +eq +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dD +dD +dD +dD +dD +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +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 +cN +cN +cN +cN +cN +cN +cN +cN +ad +df +df +dg +du +dw +dw +ad +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +ep +er +ep +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +cN +eq +et +et +eq +eq +eq +dl +dl +eq +eh +eq +eh +dl +eh +eh +eE +eq +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dD +dD +dD +dD +dD +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +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 +cN +cN +cN +cN +cN +cN +cN +cN +ad +df +df +ad +ad +ad +dw +dw +dl +dm +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +ei +dl +ep +ei +ep +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +eq +eh +eh +eh +eq +eq +eq +dl +eq +eh +eh +eq +dl +fx +dl +eh +hv +eq +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dD +dD +dD +dD +dD +dD +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +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 +cN +cN +cN +cN +cN +cN +cN +cN +ad +dn +ad +ad +dl +dl +dl +dl +dl +dl +dl +do +dl +dl +dl +dl +dl +dl +cN +cN +cN +dl +dl +ep +ep +er +ep +ep +dl +dl +dl +ei +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +eq +eh +eh +dl +eh +eq +gO +eq +eq +eh +eh +eq +dl +dl +dl +eh +eh +eq +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dD +dD +dD +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +ad +ad +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dq +dl +dl +cN +cN +cN +dl +dl +ep +dl +ep +ep +ep +dl +dl +dl +ep +ep +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +eZ +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +eq +eh +eh +eh +fx +dl +eh +eh +eh +eh +eh +eq +eh +dl +eh +eh +et +eq +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +dl +dm +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +do +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +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 +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +cN +cN +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +dl +ei +dl +dl +cN +cN +cN +cN +dl +ej +ep +er +dl +dl +iO +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dD +dD +dD +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +eq +eF +eF +dl +dl +eh +eh +eh +eh +eh +eq +eh +dl +eh +eh +eq +eq +dl +dl +dl +dl +dl +dD +dD +dD +dD +dl +dl +dl +dl +dl +dl +dl +fx +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +cN +cN +dl +do +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +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 +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +dl +ep +ep +dl +cN +cN +cN +cN +dl +dl +ep +ep +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dD +dD +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +dl +ev +eF +eF +eh +eh +eh +eh +eh +eh +eq +eh +eq +dl +eh +eh +eq +eq +dl +dl +dl +dl +dl +dD +dD +dD +dD +dl +dl +dl +dl +cN +cN +cN +dl +dl +dl +dl +dD +dD +dD +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +cN +cN +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +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 +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +cN +cN +cN +cN +cN +cN +dl +dq +dl +dl +dl +dl +dl +dl +dl +dq +cN +cN +cN +dl +ep +ep +dl +dl +cN +cN +cN +cN +cN +ep +dl +dl +ep +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dy +dy +dy +dy +dl +dq +dl +dl +dl +dl +dl +dl +dl +dl +ev +eq +eq +eh +eh +eh +eq +eq +eh +eh +eh +eh +eq +eq +dl +dl +dl +dl +fx +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dD +dD +dD +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(167,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 +cN +cN +cN +cN +cN +cN +cN +cN +dl +do +cN +cN +cN +cN +cN +cN +dl +dl +dl +dq +dq +dl +dl +dl +dl +dl +cN +cN +cN +dl +ep +dl +ej +dl +cN +cN +cN +cN +cN +el +ep +dl +ep +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dm +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +eF +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dy +dy +dx +dy +dy +dl +dl +dl +dl +fx +dl +dl +dl +dl +dD +dD +dl +eq +eh +eh +eh +eh +eh +fx +dl +eh +eq +eq +dl +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dD +dD +dD +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(168,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 +cN +cN +cN +cN +cN +cN +cN +cN +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dq +dq +dl +do +dl +dl +dl +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +ep +ep +dl +ei +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dq +dl +dl +dl +dl +dl +dl +dl +dl +dl +dq +dl +cN +cN +cN +cN +eF +eF +eF +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dy +dy +dx +dy +dy +dy +dy +dl +dl +dl +dl +dl +dq +dl +dl +dD +dD +dD +eq +eq +fa +eh +eh +dl +eh +eh +eh +eq +eq +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dD +dD +dD +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(169,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 +cN +cN +cN +cN +cN +cN +cN +cN +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +ep +ep +ei +er +ep +cN +cN +dl +ep +ep +ep +eq +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +dl +dl +dD +dD +dl +dl +dl +cN +cN +cN +cN +cN +eF +eF +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dy +dy +dy +dy +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dD +dD +dD +dD +dl +eq +eh +eh +eh +eh +eh +eh +eq +eq +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dD +dD +dD +dD +dD +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dy +dy +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(170,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 +cN +cN +cN +cN +cN +cN +cN +cN +dm +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dD +dD +dD +dD +cN +cN +cN +cN +cN +cN +ek +ek +dl +ep +er +cN +cN +cN +ep +ep +el +ep +ep +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +cN +cN +dl +dl +dl +dl +dl +dl +dD +dD +ad +cZ +cZ +fF +fF +fO +ad +cZ +cZ +cZ +cZ +cN +cN +cN +cN +cN +dl +fx +dl +dy +dy +dy +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dD +dD +dD +dD +dl +eq +eq +eh +eq +eh +eq +eq +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dD +dD +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dy +dy +dy +dy +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(171,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 +cN +cN +cN +cN +cN +cN +cN +cN +dl +cN +cN +cN +cN +cN +cN +cN +dm +dD +dD +dD +dD +dD +dD +dD +dD +dD +cN +cN +cN +cN +cN +cN +em +ep +eq +er +ep +cN +cN +cN +cN +cN +dl +ep +ep +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dD +dD +dl +cN +cN +cN +cN +cN +cN +cN +cN +dD +dD +fm +fm +fv +fv +ad +dQ +fS +dQ +fv +fX +cZ +cN +cN +cN +cN +cN +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dD +dD +dD +dD +dD +dD +cN +eq +eh +eF +eF +eq +eq +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dD +dD +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dy +dy +dy +dx +dx +dx +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(172,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 +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +cN +cN +cN +cN +cN +cN +dD +dD +dD +dD +dD +dD +dD +dD +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +eq +cN +cN +cN +cN +cN +ep +en +ep +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dD +dD +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dD +fm +fm +fm +fv +fI +dQ +dQ +fv +fm +fZ +cZ +cN +cN +cN +cN +cN +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dD +dD +dD +dD +dD +dD +cN +eq +eq +eF +eF +eq +eq +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dy +dy +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(173,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 +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +cN +cN +cN +cN +cN +dD +dD +dD +dD +dD +dD +dD +dD +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +eq +es +es +cN +cN +cN +cN +cN +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ad +fm +fm +fv +ad +fv +fv +dQ +fv +fY +cZ +cN +cN +cN +dl +dl +dl +dq +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dD +dD +dD +dl +eq +dl +eq +ev +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +fx +dl +dD +dD +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dy +dy +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(174,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 +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +cN +cN +cN +cN +cN +dD +dD +dD +dD +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dD +eo +eo +dD +cN +cN +cN +cN +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dD +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +ad +fv +fv +fv +ad +fm +fF +ad +fI +ad +ad +cN +cN +cN +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dD +dD +dD +dD +dD +dD +dD +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dD +dD +dl +dl +cN +cN +cN +cN +eq +eq +eq +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dx +dx +dy +dy +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(175,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 +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +cN +cN +cN +cN +cN +dD +dD +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dD +dD +dD +dD +cN +cN +cN +cN +ep +ew +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +dm +dl +dl +dl +dl +dl +dl +dl +dl +ad +fv +fv +fv +ad +fm +fv +fv +fU +fU +ad +cN +cN +cN +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dq +dl +dl +dl +dl +dD +dD +dD +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +cN +eq +eq +eq +hS +eu +eB +eq +eq +cN +cN +cN +cN +cN +cN +cN +cN +dx +dy +dy +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +iO +dl +dl +dl +dl +id +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(176,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 +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +cN +cN +cN +dD +dD +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +dD +dD +eo +eo +ep +dl +cN +cN +cN +cN +er +ep +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dq +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +ad +fv +fv +fv +ad +fv +fm +fv +fU +fU +ad +cN +cN +cN +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +do +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dm +dl +dl +dl +ev +cN +eq +eh +eh +eh +eh +eh +eI +eq +cN +cN +cN +cN +cN +cN +cN +cN +dy +dy +dy +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +cN +cN +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(177,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +eo +eo +eo +eo +ep +dl +cN +cN +cN +cN +ep +ep +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dD +dD +dD +dl +dl +dl +dl +dl +ad +fw +ad +ad +ad +fv +fv +fv +fU +fv +fv +cN +cN +cN +dl +dl +dm +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +ev +eF +eF +eh +eh +eq +eh +eh +eh +eh +eq +cN +cN +cN +cN +cN +cN +cN +cN +dy +dy +dx +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +cN +cN +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(178,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +cN +cN +cN +cN +cN +dl +dl +dl +dl +do +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +es +es +ev +cN +cN +cN +cN +cN +cN +cN +ep +el +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +fn +fv +fn +dl +fF +fv +fv +fv +fU +fv +fF +cN +cN +cN +cN +cN +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dq +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +ev +eF +eh +eh +eh +eq +eh +eq +eq +eh +eq +cN +cN +dl +dl +dl +dl +cN +cN +dy +dy +dx +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(179,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +do +dl +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dm +dl +dl +dl +dl +dl +dl +dl +dl +dl +ep +ep +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +eq +eq +eq +eq +eq +eq +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dq +dl +ad +fw +ad +dl +fv +fm +fF +ad +fU +fv +fv +cN +cN +cN +cN +cN +dl +dD +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +eq +eq +eh +eh +eh +eh +eh +eh +eh +eh +eh +eq +eq +eq +eq +dF +dl +id +dl +dl +dl +dy +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +id +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(180,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dq +dl +dl +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dD +dl +dl +dF +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +eq +eO +eh +eq +eh +eq +eq +eq +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +fo +dl +fo +dl +dl +dl +dl +ad +fW +fU +ad +cN +cN +cN +cN +cN +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dy +dy +dy +dl +dm +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +eq +eh +eh +eh +eh +eq +eq +eq +eh +fx +dl +eF +eF +eF +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +id +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(181,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dq +dl +dl +cN +cN +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dq +dq +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +eq +eN +eh +eF +do +dl +eh +eq +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dm +dl +dl +dl +dl +dl +dD +dl +dl +ad +fV +ga +ad +cN +cN +cN +cN +cN +dl +dl +dl +dq +dl +cN +cN +cN +cN +dx +dx +dy +dy +dy +dy +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dy +dx +dy +dy +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +eq +eh +fx +dl +eh +eh +eh +eh +eq +dl +dl +eq +eq +dl +dl +cN +cN +cN +cN +cN +cN +dl +id +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +iO +dl +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(182,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +dl +dl +dq +dq +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +eq +eP +eh +eq +dl +do +dl +ex +eq +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +fx +dl +dl +dl +dl +dl +ad +fn +fn +ad +cN +cN +cN +cN +eq +eq +eq +eq +ev +ev +eq +eq +cN +cN +dx +dy +dy +dy +dy +dy +dy +dy +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dy +dy +dy +dy +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +eq +hI +dl +eh +eh +eh +eh +eh +eq +eq +eh +eq +dl +dl +dl +cN +cN +cN +cN +cN +cN +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +iO +cN +cN +cN +cN +cN +cN +cN +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(183,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +eq +eq +eq +eq +eq +eq +dl +dl +eq +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +eq +eh +eh +eh +eh +eh +eh +dy +gk +dy +dy +dy +dy +dy +dx +dy +dy +dy +dy +cN +cN +cN +cN +cN +cN +cN +cN +cN +dy +dy +dy +cN +cN +dy +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +eq +eq +eh +eh +eh +eh +eh +eh +hT +eq +eq +eq +dl +dl +cN +cN +cN +cN +cN +cN +cN +dl +dl +ev +ev +ev +dl +dl +dl +cN +cN +cN +cN +cN +cN +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(184,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dD +dD +dD +dD +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +eq +eh +eh +dl +dl +eh +dl +eh +eq +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dq +dl +dl +dl +cN +cN +eq +eI +gi +eh +eh +eh +dy +dy +gk +dy +dy +dy +cN +cN +cN +cN +dy +dy +dy +dy +dx +dx +dx +cN +cN +cN +dy +dy +dy +dy +dy +cN +cN +dy +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +eq +eq +eh +eh +eh +eh +eq +et +eq +cN +cN +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ev +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +dl +iO +dl +dl +dl +cN +cN +cN +cN +cN +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(185,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +du +dl +du +dl +dl +dl +dD +dD +dD +dl +dl +dl +dl +dl +dD +dl +dy +dx +dy +dy +cN +cN +cN +eq +eq +eh +ex +dl +eh +eh +eq +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +cN +cN +eq +eq +eq +eq +eq +eh +dx +dy +eq +cN +cN +cN +cN +cN +cN +cN +cN +cN +dy +dy +dy +dx +dx +dx +cN +cN +dy +dy +dy +dx +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dm +dl +dl +eq +eh +eh +eq +eq +eq +eq +eq +cN +cN +cN +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +dl +dl +dl +iO +dl +dl +cN +cN +cN +cN +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(186,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cZ +cZ +cZ +cZ +cZ +cN +dl +ad +ec +ad +dl +dl +dl +dD +dD +dD +dl +dl +dD +dD +dl +dl +dy +dy +dy +dy +dy +cN +cN +cN +cN +eq +eh +eh +eq +eh +eq +eq +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dD +dl +dl +eq +eq +eh +eh +dx +dx +eh +eh +eh +eq +eq +cN +cN +cN +cN +cN +cN +cN +cN +dy +dy +dy +dy +dy +dy +dy +dy +dy +dy +dy +dx +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +eq +eh +eh +eq +cN +cN +cN +cN +cN +dl +dl +id +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +cN +cN +cN +cN +cN +dl +id +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(187,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cZ +dJ +dN +dS +cZ +cN +cN +cY +df +ef +dl +dl +dl +dl +dl +dl +dl +dl +dD +dD +dl +dy +dy +dy +dy +dy +dy +dy +dl +dm +dl +eq +eq +eF +eq +eh +eq +eq +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dm +eq +eh +eh +dx +dx +dx +eh +eh +eh +eh +eq +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dy +dy +dy +dy +dy +dy +dx +dx +dx +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dq +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +eq +eh +eh +eq +cN +cN +cN +cN +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dD +dD +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(188,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cZ +dK +dJ +dU +cZ +cZ +cZ +cZ +ec +cZ +cN +cN +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dy +dy +dy +dy +dy +dy +dy +dy +dl +eq +eF +eF +eq +eq +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +dl +dq +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +eq +eh +eh +eh +dx +dx +eh +eh +dl +dl +eq +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +eq +eq +eq +fx +dl +eq +cN +cN +cN +cN +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dD +dD +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(189,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cZ +cZ +dO +cZ +cZ +aj +aj +aj +aj +cZ +cN +cN +cN +cN +dl +dl +dl +dm +dl +dl +cN +cN +cN +cN +cN +cN +dy +dx +dy +dy +dy +dl +dl +dl +dl +cN +cN +cN +dl +dl +dl +dm +dl +dl +dl +dl +cN +cN +cN +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +eq +eh +eh +eh +eh +dx +dx +eh +dl +dl +eq +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dm +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +eq +eh +eh +eh +dl +dl +eq +cN +cN +cN +cN +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dD +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(190,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cZ +dM +dQ +dQ +dV +aj +aj +aj +aj +cZ +cN +cN +cN +cN +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dy +dy +dy +dy +dy +dy +dl +dl +dl +cN +cN +cN +dl +dq +dl +dl +dD +dD +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +dq +dl +eq +eq +eq +eh +dx +dx +dD +eq +fx +eh +eq +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +eq +eF +eF +eh +eh +eh +hv +eq +cN +cN +cN +cN +dl +dF +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dD +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ev +ev +ev +ev +ev +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(191,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cZ +dL +dQ +dP +cZ +aj +dX +dZ +dX +cZ +cN +cN +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dy +dy +dy +dy +dy +dy +dy +dy +dl +cN +cN +cN +dl +dl +dl +dD +eU +dD +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +cN +cN +cN +cN +cN +cN +dl +dl +cN +cN +eq +dx +dD +dx +dD +eq +eh +eq +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dq +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +dl +dl +dl +eq +eF +eF +eq +eq +eq +eq +eq +cN +cN +cN +cN +dl +dl +dl +dl +cN +cN +cN +dl +dl +cN +cN +cN +cN +cN +cN +dl +dl +dD +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ev +ev +ev +ev +ev +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(192,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cZ +cZ +dP +dT +cZ +cZ +cZ +cZ +cZ +cZ +cN +cN +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dy +dy +dy +dy +dx +dy +dl +cN +cN +cN +dl +dl +dl +dD +dD +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +cN +cN +cN +cN +cN +cN +dl +dl +cN +cN +eq +dx +dD +dD +eh +eq +eh +eq +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +do +dl +dl +dl +cN +cN +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +dm +dl +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +cN +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ev +ev +ev +ev +ev +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(193,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dy +dy +dy +cN +cN +cN +dy +dy +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +cN +cN +cN +cN +cN +eq +eD +eq +cN +cN +cN +cN +cN +dy +dy +dy +dy +dy +dy +dy +dl +dl +dl +dD +dD +dD +dD +dD +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +cN +cN +cN +cN +cN +cN +dl +dl +cN +cN +eq +dD +dD +eh +eh +eq +eh +eq +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +do +dl +dl +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +cN +cN +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +eq +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +jo +eh +eh +eh +dl +dl +dl +cN +cN +cN +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +ev +ev +ev +ev +ev +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(194,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dx +dx +dy +dy +dy +dy +dx +dy +dy +cN +cN +cN +cN +cN +cN +cN +cN +dl +dm +dl +cN +cN +cN +cN +eq +eA +dl +dl +eq +cN +cN +cN +cN +cN +cN +cN +cN +cN +dy +dy +dl +dl +dl +dD +dD +dD +dD +dD +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +cN +cN +cN +cN +dl +dl +cN +cN +eq +eh +dD +dD +eh +eq +eh +eq +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +dl +dl +dq +cN +cN +cN +cN +dl +eq +dy +dl +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +eh +eh +eh +eh +cN +cN +cN +cN +cN +cN +cN +cN +dl +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(195,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dx +dx +dx +dy +dy +dx +dx +dy +dl +dl +dq +dl +cN +cN +cN +cN +dl +dl +dl +dl +cN +cN +cN +cN +eq +eh +eq +do +eq +eD +cN +cN +cN +cN +cN +cN +cN +cN +dy +dy +dq +dl +dD +dD +dD +dD +dD +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +cN +cN +cN +cN +dl +dl +cN +cN +eq +eh +dD +dD +dD +eq +gm +eq +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +dl +dl +cN +cN +cN +cN +dy +dy +dy +dy +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +eh +eh +eh +hV +hV +hV +hV +hV +hV +hV +hV +hV +hV +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +cN +cN +cN +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(196,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dy +dx +dx +dy +dx +dx +dy +dl +dl +dl +dl +dl +dl +dl +dl +cN +dl +dl +dl +dl +cN +cN +cN +cN +eq +eh +eh +eF +eF +eh +eD +cN +cN +cN +cN +cN +cN +dy +dl +dl +dl +dl +eU +dD +dD +dD +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dq +dl +dl +cN +cN +cN +cN +dl +dl +cN +cN +eq +eh +dD +dD +dl +eq +eq +eq +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +cN +cN +cN +cN +dl +dl +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dy +dx +dx +dy +dl +dq +dl +dl +dl +dl +dD +dD +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +eh +eh +eh +hV +kk +jD +kO +kF +kF +kO +jD +kk +hV +dl +cN +cN +cN +cN +cN +dl +dl +dl +dl +cN +cN +cN +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(197,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dy +dy +dy +dy +dy +dy +cN +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +eq +eD +eq +eF +eq +eq +cN +cN +cN +cN +cN +cN +dl +dl +dl +dD +dD +dD +dD +dD +dD +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +fx +dl +dl +dl +dl +dl +dl +cN +cN +eq +eh +eh +dl +do +eh +eq +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +dl +dl +dD +dD +dl +dl +dy +dy +dy +dl +dl +dl +dl +dD +dD +dD +dD +dD +dD +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +eh +eh +eh +eh +hV +kj +kD +kl +kF +ll +kl +kD +lU +hV +dl +dl +cN +cN +cN +cN +dl +dl +dl +dl +cN +cN +cN +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(198,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dy +dy +dx +dx +dy +dy +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +eq +eH +dl +dl +eq +cN +cN +cN +cN +cN +dl +dl +dl +dD +dD +dD +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +eq +eh +dl +dl +dl +eh +eq +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dq +dl +dl +dl +cN +cN +cN +cN +cN +do +dl +dl +dD +dD +dD +dD +dD +dD +dD +dl +dl +dl +dl +do +dD +dD +dD +dD +dD +dD +dD +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +eh +eh +eh +jo +hV +km +kE +kl +kF +kF +kl +kE +lV +hV +cN +dl +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(199,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dx +dx +dx +dy +cN +cN +cN +cN +dl +dl +cN +cN +cN +cN +cN +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +eq +eh +dD +do +eq +cN +cN +cN +cN +cN +dl +dl +dl +dD +dD +dl +dl +dl +cN +cN +cN +cN +eq +eq +eq +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +eq +dl +dl +eh +eh +eq +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dl +dD +dD +dD +dD +dD +dD +dD +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +eh +eh +eh +eh +dl +hV +kl +kl +kl +kF +kF +kl +kl +kl +hV +cN +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(200,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dx +dx +dy +cN +cN +cN +dl +dl +dq +dl +cN +cN +cN +cN +cN +cN +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +eq +eI +eh +eh +eq +cN +cN +cN +dl +dm +dl +dl +dl +dD +dD +dl +dl +dl +cN +cN +eq +eq +eh +eh +eq +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +eq +dl +dl +eh +gj +eq +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dy +dy +dy +dy +dl +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +iH +eh +eh +eh +eh +dl +hV +kk +jD +kO +kF +kF +kO +jD +kk +hV +dl +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(201,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dy +dy +dl +cN +cN +cN +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +eq +eq +eh +eq +cN +cN +cN +dl +dl +dl +cN +cN +cN +dD +dD +dl +dl +dl +dl +eq +eq +eh +eh +eh +eq +eq +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +eq +eq +eq +eq +eq +cN +cN +cN +cN +eq +dl +dl +eq +eq +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dy +dy +dx +dy +dl +dl +dl +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +eh +eh +eh +eh +dl +hV +kj +kD +kl +kF +ll +kl +kD +lU +hV +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +fx +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(202,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dq +dl +dl +dl +dl +dm +dl +dl +cN +cN +cN +cN +cN +cN +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +eq +eh +eq +cN +cN +cN +dl +dl +dl +cN +cN +cN +dl +dl +dl +ev +eq +dl +eq +eW +eh +eh +eh +eq +eq +cN +cN +cN +cN +cN +cN +cN +cN +cN +eq +eq +eh +eh +dy +dx +eq +cN +cN +cN +cN +ev +ev +eq +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dy +dy +dy +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dy +dx +dx +dy +dl +dl +dl +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +iP +eh +eh +iP +dl +hV +km +kE +kl +kF +kF +kl +kE +lV +hV +dl +dl +dl +dl +dl +dl +dl +cN +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(203,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dD +dD +dD +dl +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +eq +eh +eh +eh +eq +cN +cN +dl +dl +dl +cN +cN +cN +dl +dl +eF +eF +eq +eq +eq +eq +eh +eh +eh +eh +fa +eq +cN +cN +cN +cN +cN +cN +cN +eq +eq +eq +eh +eh +dy +dy +dx +eq +cN +cN +cN +ev +ev +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +do +dl +dq +dl +dy +dy +dy +dy +dy +dy +dy +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dq +dy +dy +dy +dy +dl +dl +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dD +dD +dD +dl +hV +jd +jd +hV +dl +hV +kl +kl +kl +kF +kF +kl +kl +kl +hV +dl +mF +dl +dl +dl +dl +dl +cN +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(204,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dF +dl +dD +dD +dD +dD +dD +dl +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +eq +eJ +eJ +eq +cN +cN +cN +dl +dl +dq +cN +cN +cN +cN +eq +eF +eF +eh +eh +eq +eq +eh +eh +eh +eh +eh +eq +cN +cN +cN +cN +cN +cN +cN +eq +eq +eI +eh +eh +eh +dy +dy +eq +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +cN +cN +dl +dl +dy +dy +dx +dy +dy +dy +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +cN +dy +dy +dl +dl +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dl +dq +dl +cN +cN +cN +cN +cN +cN +cN +dl +dl +dD +dD +dD +dD +dl +iQ +je +je +iQ +dl +hV +kk +jD +kO +kF +kF +kO +jD +kk +hV +dl +dl +dl +dl +dl +dl +dl +cN +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(205,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dD +dD +dD +dD +dl +dl +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +dm +dl +dl +dl +dl +dl +dl +dl +dm +dl +cN +dl +dl +dD +dl +dl +cN +cN +cN +cN +eq +eq +eh +dl +eh +eh +eq +eh +dl +do +dl +eh +eh +eq +cN +cN +cN +cN +cN +dl +eq +eq +eh +eh +eh +dl +dF +eh +eq +eq +dl +dl +dq +dl +dl +dl +cN +cN +cN +dl +dD +dD +dl +dl +dl +cN +cN +cN +cN +dy +dy +dy +dy +dy +dy +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +dl +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +dl +dl +dD +dD +dl +dl +dl +iQ +je +je +iQ +dl +hV +kj +kD +kl +kF +kF +kl +kD +lU +hV +hV +hV +hV +hV +hV +hV +hV +cN +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(206,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dD +dD +dD +dD +dl +dl +cN +cN +cN +cN +dl +dl +dD +dl +cN +cN +dl +dl +dl +dl +do +dl +dl +dl +dl +do +cN +cN +dl +dl +dD +dl +dl +cN +cN +cN +cN +eq +eq +eh +dl +eh +eh +eq +eh +dl +dl +dl +eh +eh +eq +cN +cN +cN +cN +cN +dl +eq +dy +dy +eh +eh +dl +dl +eh +eq +eq +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dD +dD +dl +dl +cN +cN +cN +cN +dl +dy +dy +dy +dx +dx +dy +dy +dy +dy +dy +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +iQ +je +je +iQ +dl +hV +km +kE +kl +kF +kF +kl +kE +lV +hV +mo +iw +iR +mX +iw +mo +hV +cN +cN +cN +cN +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(207,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dD +dD +dD +dl +cN +cN +cN +cN +cN +dD +dD +dD +dD +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +eq +eq +eh +dl +eh +eh +eh +dl +eh +eh +eh +fb +eq +cN +cN +cN +cN +cN +dl +eq +dx +dy +eh +eh +eh +eh +eh +eq +eq +dl +dl +dl +dl +dl +dl +dl +dq +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dy +dy +dx +dx +dx +dx +dy +dy +dy +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dq +dl +dl +dl +dl +cN +cN +cN +cN +cN +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +hV +hV +hV +hV +jd +jd +hV +hV +hV +kl +kl +kl +kF +kF +kl +kl +kl +hV +iw +mG +iw +iw +iw +iw +hV +cN +cN +cN +cN +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(208,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dD +dl +dl +dl +dl +dl +dD +dD +dD +dD +dD +dD +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +eq +eq +eh +do +dl +dl +dl +dl +eh +eq +eq +eq +eq +cN +cN +cN +cN +cN +fx +eq +dy +dy +dy +eh +eh +eh +eh +eW +eq +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dy +dy +dy +dy +dx +dx +dx +dy +dy +dl +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +hV +iw +iw +iR +iw +iw +jE +jP +hV +ko +kG +kF +kF +kF +kF +kG +lX +hV +iw +iw +iw +mp +iw +mG +hV +cN +cN +cN +cN +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(209,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +dl +dD +dD +dD +dD +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +eq +dl +dl +dl +dl +dl +eq +eh +eF +eq +cN +cN +cN +dl +dl +dl +dl +eq +dy +dF +eh +eh +eh +eh +eh +eq +dD +dl +dl +dl +dD +dD +dD +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dy +dy +dy +dx +dx +dy +dy +dl +cN +dl +cN +dl +dl +do +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +hV +iw +iw +iw +iw +iw +jD +jD +hV +kn +kF +kF +kF +kF +kF +kF +lW +hV +iw +iw +iw +iw +iw +iw +hV +cN +cN +cN +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(210,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +eq +eq +eh +eh +eh +dF +dl +eh +eF +ev +dl +dl +dl +dl +dl +dl +dl +dl +eq +eh +eh +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dl +dD +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dy +dy +dy +dy +dy +dy +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +hV +iw +iw +iw +iw +iw +jF +jF +hV +kp +kF +kF +kF +kF +kF +kF +kF +hV +mp +iw +mG +iw +mp +iw +hV +cN +cN +cN +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(211,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +eq +eq +eq +eh +dl +dl +dl +eF +ev +dl +dl +dl +dl +dl +dl +dl +dl +dl +eq +eh +dD +dD +eq +dD +dD +dD +dD +dD +dD +dD +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dy +dy +dy +dy +dy +dl +dl +dl +dq +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +dD +dD +dD +dD +dl +do +dl +dl +dD +dD +dl +dl +dl +dl +dm +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +hV +iw +iw +iw +iw +iw +jF +jF +hV +hV +hV +hV +kF +kF +kF +kF +kF +hV +iw +iw +iw +iw +iw +iw +hV +cN +cN +cN +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(212,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +eq +eG +eh +eq +eq +eq +eq +dl +dl +dl +dl +dD +dD +dD +dl +dl +dD +eq +dD +dD +dD +dD +dD +eq +dD +dD +dD +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dD +dD +dD +dD +cN +cN +cN +dl +dD +dD +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +hV +ix +iw +iw +iw +jp +jG +jG +hV +kr +kH +hV +kZ +kF +kF +kF +lX +hV +mr +iJ +iJ +iJ +iJ +nt +hV +cN +cN +cN +ev +ev +ev +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(213,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +eq +eq +eq +cN +cN +cN +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +eq +eq +cN +dl +dl +dl +dl +dl +dl +dl +dl +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dl +dl +dl +dq +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dm +dD +dD +dD +cN +cN +cN +dq +dl +dD +dD +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +hV +hV +hV +hV +jf +hV +hV +hV +hV +kq +kq +hV +kY +kF +kF +kF +lY +hV +mq +mH +mR +mY +nj +ns +hV +cN +cN +cN +ev +ev +ev +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(214,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +eq +eq +eB +eE +eh +eq +cN +cN +dl +dm +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +cN +cN +cN +cN +dl +dl +cN +cN +cN +dl +dD +dD +dD +dl +dl +dq +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +hV +iz +iI +iS +iI +jq +jq +jQ +hV +kt +kq +hV +lb +kF +kF +kF +ma +hV +mt +mI +mI +mI +iw +nv +hV +cN +ev +ev +ev +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(215,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +eq +eq +eh +eh +eh +eh +eh +eq +cN +dl +dl +dl +dq +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +cN +cN +cN +dl +dq +dl +cN +cN +cN +dl +dD +dD +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +hV +iy +iI +iI +iI +iI +iI +iI +hV +ks +kJ +hV +la +kF +kF +kF +lZ +hV +ms +iw +iw +iw +iw +nu +hV +cN +dl +ev +ev +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(216,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +eq +ey +eh +eh +eh +eh +dD +eq +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +fx +cN +cN +cN +cN +dl +dl +cN +cN +cN +dl +dD +dD +dl +cN +cN +cN +cN +cN +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +hV +iB +iI +iU +jh +js +iI +iI +jX +iw +iw +kP +kF +kF +kF +kF +kF +hV +iw +iw +mS +mZ +iw +iw +hV +cN +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(217,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +eq +eh +do +dl +eq +dD +dD +eq +ev +do +dD +do +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +eV +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dD +dD +dD +dD +dD +eq +dD +dD +dD +dD +dD +dD +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +dD +dD +dD +dl +cN +cN +cN +cN +cN +dy +dy +dy +dy +dy +dx +dx +cN +cN +cN +cN +cN +cN +cN +cN +hV +iA +iI +eQ +jg +jr +iI +iI +iw +iw +iw +iw +kF +lc +kF +kF +lX +hV +mu +iw +iw +iw +iw +iw +hV +cN +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(218,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +eq +eq +eh +eh +dl +dl +eq +dD +dD +eJ +ev +dl +dl +dl +dD +dD +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dl +dl +fx +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +cN +cN +cN +dl +dl +dl +dD +dD +dD +dl +cN +cN +cN +cN +cN +cN +dy +dy +dy +dy +dy +dy +cN +cN +cN +cN +cN +dl +dl +dl +hV +iD +iI +iV +jh +jt +iI +iI +hV +iE +iw +hV +ld +ln +ly +kF +lW +hV +mw +iw +iw +iw +iw +iw +hV +cN +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(219,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +eq +eh +eh +cN +eh +eh +eq +dD +dD +eJ +ev +cN +dl +dl +dD +dD +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dq +dl +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dD +dD +dl +dl +cN +cN +cN +cN +cN +cN +dx +dx +dy +dy +dy +dy +dy +dl +dl +dl +dl +dl +dl +dl +hV +iC +iI +iI +iI +iI +iI +iI +hV +iw +iw +hV +lc +lm +lx +kF +lW +hV +mv +iw +iw +iw +iw +nw +hV +cN +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(220,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +eq +eh +dl +eh +dl +dl +eq +eh +eh +eq +cN +cN +cN +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dm +dl +dl +dl +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dm +dl +dl +dD +dD +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dy +dy +dl +dl +dl +dl +dl +dl +cN +cN +hV +iz +iI +iI +iI +ju +jH +jR +hV +iw +iw +hV +kZ +kF +lc +kF +lZ +hV +mx +iw +iw +iw +iw +nx +hV +cN +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(221,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +eq +et +do +eh +dl +dF +dl +eq +eq +eq +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dF +dl +dl +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dl +dl +dl +dl +dl +dm +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dq +dl +dl +dl +dl +dD +dD +dD +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +ij +cN +cN +hV +hV +hV +hV +jf +hV +hV +hV +hV +hV +hV +hV +hV +hV +hV +hV +hV +hV +iJ +iw +iw +iw +iw +nx +hV +cN +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(222,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +eq +eu +eh +eq +eh +dl +dl +eh +eG +eq +cN +cN +cN +cN +dl +dl +dl +dl +dl +dD +dl +dl +dl +dy +dy +dy +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +dl +dm +dl +dl +dl +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dD +dl +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dD +dD +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +hV +hV +hV +hV +hV +iE +iw +iW +iw +iw +iw +jv +hV +kw +kK +kR +kK +kv +lz +lz +mb +hV +iw +iw +iw +iw +iw +nz +hV +cN +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +iO +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(223,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +eq +eq +eq +cN +eh +eh +eh +cN +eq +cN +cN +cN +cN +dl +dl +dl +dl +dF +dl +dl +dD +dl +dl +dy +dx +dy +dl +cN +cN +dy +dy +dy +dx +dl +dl +dl +dl +dl +cN +cN +cN +dl +dl +dl +dl +dl +dD +dD +dD +dD +dD +dD +dD +dD +dD +dl +dl +dD +dD +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +eq +eq +eq +eq +eq +eq +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +fx +dl +dl +dD +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +hV +hV +hV +hV +hW +hW +hW +hV +iw +iw +iw +iw +iw +iw +iw +jY +kv +kv +kv +kv +kv +kv +kv +kv +jY +iw +iw +iw +iw +iw +ny +hV +cN +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(224,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +eq +eq +eq +eq +eq +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +dq +dy +dy +dy +dy +dy +dy +dy +dy +dy +cN +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +dl +dl +dl +dD +dD +dD +dD +dD +dD +dD +dD +dl +dl +dl +dl +dl +dl +dl +cN +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +eq +eh +eh +eh +hx +eh +eq +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dD +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +hV +hW +ib +ie +ia +ia +ia +iu +iw +iw +iw +iw +iw +iw +iw +iw +kv +kv +kv +kv +kv +kv +kv +kv +iw +iw +iw +iw +iw +iw +iw +hV +cN +dl +dl +id +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +iO +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(225,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dy +dy +dy +dx +dy +dy +cN +cN +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +eq +eq +et +eh +eh +eh +eh +eh +eq +eq +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dD +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +hV +hW +ia +ia +ia +ia +ip +hV +iE +iw +iw +iw +iw +iw +jv +hV +kw +kv +kK +le +kK +kv +lO +mc +hV +iE +iw +iw +iw +iw +jv +hV +cN +cN +cN +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(226,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dy +dy +cN +cN +cN +cN +cN +dl +dl +dq +dl +dl +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +eq +eq +eq +hu +eh +eh +eh +eh +eh +eq +eq +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dD +dD +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +hV +hX +ia +ia +ia +ia +iq +hV +hV +hV +hV +ji +hV +hV +hV +hV +hV +hV +hV +hV +hV +lA +hV +hV +hV +hV +hV +hV +hV +hV +hV +hV +cN +cN +cN +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +id +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(227,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dD +dD +dl +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dm +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +eq +eh +eh +eh +eq +eq +eq +eq +eh +eh +eh +eW +eq +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dD +dD +dD +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +hV +hX +ia +ia +ia +im +im +hV +iF +iJ +iX +iw +jv +hV +hV +hV +hV +hV +hV +hV +hV +iw +iw +iR +iw +iw +iw +hV +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +id +dl +cN +cN +cN +cN +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(228,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dD +dD +dD +dD +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +cN +cN +cN +cN +cN +dl +dl +fx +dl +dl +dl +dl +dl +dq +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +eq +eq +eh +eh +eh +eq +eq +eh +eh +eh +eh +eq +eq +eq +eq +dl +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dD +dD +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +hV +hY +ic +if +ik +in +in +hV +iw +iJ +iX +iw +iw +hV +hV +ka +ku +kI +kS +hV +hV +iw +iw +iw +iw +iw +iw +hV +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +cN +cN +cN +cN +dl +iO +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(229,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dD +dD +dD +dl +dl +dl +cN +cN +cN +cN +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +cN +cN +cN +cN +eq +eW +eh +dl +dl +eh +eh +eh +eq +eh +eh +eh +eq +eq +eq +ev +dl +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dD +dD +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +hV +hV +hV +hV +hV +hV +hV +hV +iw +iJ +iX +iw +iw +jI +jO +jZ +jZ +jZ +kQ +hV +hV +iw +iw +jp +iw +iw +iw +hV +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +id +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(230,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dD +dD +dD +dD +dD +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +fx +dl +dl +dl +cN +cN +cN +cN +eq +eh +eh +fx +dl +eh +eh +eh +eq +eh +dl +fx +eq +eh +eF +eF +dl +dl +dl +dl +cN +cN +cN +cN +dl +dq +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +hV +iw +iJ +iX +iw +iw +jJ +jS +jZ +jZ +jZ +kQ +hV +hV +hV +hV +hV +hV +lA +hV +hV +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +iO +dl +dl +iO +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(231,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +dD +dD +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +eF +eF +eh +eh +eh +eh +eh +eh +eh +dl +dl +eq +eh +eF +ev +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +hV +iw +iJ +iX +iw +iw +hV +hV +kb +jS +kL +kT +hV +hV +lp +lp +md +lC +lC +lC +hV +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(232,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +ev +ev +eq +eq +eq +eh +eh +eh +eh +eh +eh +eq +eh +eq +eq +dl +dl +dl +dl +dl +fx +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +hV +iF +iJ +iX +iw +jv +hV +hV +hV +ky +hV +hV +hV +lp +lC +lC +lC +lC +lC +lC +hV +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(233,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +cN +cN +cN +cN +cN +dl +dl +dl +dl +dm +eq +eq +eq +eh +eh +et +hu +eh +eh +eh +eh +eq +eq +dl +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +hV +hV +hV +hV +hV +hV +hV +hV +hV +kx +hV +cN +hV +lo +lB +lP +lC +lP +lB +lo +hV +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(234,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dq +cN +cN +cN +cN +cN +dl +dl +dl +dl +cN +cN +cN +cN +eq +eq +eq +eq +eq +eq +eq +eq +dl +dl +dl +dl +dq +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +hV +hV +hV +cN +hV +lr +lD +lr +lC +lr +lD +lr +hV +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(235,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +cN +cN +cN +cN +cN +dl +dq +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +hV +gx +lq +lq +me +lq +lq +mJ +hV +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(236,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +hV +hV +hV +hV +hV +hV +hV +hV +hV +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(237,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(238,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +dl +dl +dl +dl +dl +dl +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(239,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(240,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(241,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(242,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(243,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(244,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(245,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(246,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(247,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(248,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 +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +ab +"} +(249,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 +"} +(250,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 +"} +(251,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 +"} +(252,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 +"} +(253,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 +"} +(254,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 +"} +(255,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 +"} diff --git a/_maps/RandomZLevels/spacebattle.dmm b/_maps/RandomZLevels/spacebattle.dmm new file mode 100644 index 0000000..bef870b --- /dev/null +++ b/_maps/RandomZLevels/spacebattle.dmm @@ -0,0 +1,68836 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/closed/mineral/random, +/area/space) +"ab" = ( +/turf/open/space, +/area/space) +"ac" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 8; + icon_state = "diagonalWall3" + }, +/area/awaymission/spacebattle/syndicate2) +"ad" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_r"; + dir = 1 + }, +/turf/open/space, +/area/awaymission/spacebattle/syndicate2) +"ae" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion"; + dir = 1 + }, +/turf/open/space, +/area/awaymission/spacebattle/syndicate2) +"af" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_l"; + dir = 1 + }, +/turf/open/space, +/area/awaymission/spacebattle/syndicate2) +"ag" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 1; + icon_state = "diagonalWall3" + }, +/area/awaymission/spacebattle/syndicate2) +"ah" = ( +/turf/closed/wall/mineral/plastitanium, +/area/awaymission/spacebattle/syndicate2) +"ai" = ( +/obj/structure/shuttle/engine/heater{ + icon_state = "heater"; + dir = 1 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/syndicate2) +"aj" = ( +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate2) +"ak" = ( +/obj/machinery/door/airlock/external, +/turf/open/floor/plasteel/shuttle{ + icon_state = "floor4" + }, +/area/awaymission/spacebattle/syndicate2) +"al" = ( +/mob/living/simple_animal/hostile/syndicate, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate2) +"am" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/suit/space/hardsuit/syndi, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate2) +"an" = ( +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate2) +"ao" = ( +/obj/machinery/sleeper, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate2) +"ap" = ( +/mob/living/simple_animal/hostile/syndicate/ranged{ + loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/item/weapon/shield/energy) + }, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate2) +"aq" = ( +/obj/machinery/door/unpowered/shuttle, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate2) +"ar" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/grenade/empgrenade, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate2) +"as" = ( +/obj/structure/table/reinforced, +/obj/item/ammo_casing/c10mm, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate2) +"at" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/gun/projectile/automatic/c20r, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate2) +"au" = ( +/obj/machinery/door/unpowered/shuttle, +/turf/open/floor/plasteel/shuttle{ + icon_state = "floor4" + }, +/area/awaymission/spacebattle/syndicate2) +"av" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 8; + icon_state = "diagonalWall3" + }, +/area/awaymission/spacebattle/syndicate3) +"aw" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_r"; + dir = 1 + }, +/turf/open/space, +/area/awaymission/spacebattle/syndicate3) +"ax" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion"; + dir = 1 + }, +/turf/open/space, +/area/awaymission/spacebattle/syndicate3) +"ay" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_l"; + dir = 1 + }, +/turf/open/space, +/area/awaymission/spacebattle/syndicate3) +"az" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 1; + icon_state = "diagonalWall3" + }, +/area/awaymission/spacebattle/syndicate3) +"aA" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/gun/projectile/automatic/pistol, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate2) +"aB" = ( +/turf/closed/wall/mineral/plastitanium, +/area/awaymission/spacebattle/syndicate3) +"aC" = ( +/obj/structure/shuttle/engine/heater{ + icon_state = "heater"; + dir = 1 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/syndicate3) +"aD" = ( +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate3) +"aE" = ( +/obj/machinery/door/airlock/external, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate3) +"aF" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + icon_state = "diagonalWall3" + }, +/area/awaymission/spacebattle/syndicate2) +"aG" = ( +/mob/living/simple_animal/hostile/syndicate/melee{ + deathmessage = "\[src] falls limp as they release their grip from the energy weapons, activating their self-destruct function!"; + loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier) + }, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate2) +"aH" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" + }, +/area/awaymission/spacebattle/syndicate2) +"aI" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/suit/space/hardsuit/syndi, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate3) +"aJ" = ( +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate3) +"aK" = ( +/obj/machinery/computer/shuttle, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate2) +"aL" = ( +/turf/open/floor/plasteel/shuttle/red/syndicate, +/turf/closed/wall/mineral/plastitanium{ + dir = 8; + icon_state = "diagonalWall3" + }, +/area/awaymission/spacebattle/syndicate2) +"aM" = ( +/obj/machinery/door/airlock/external, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate2) +"aN" = ( +/turf/open/floor/plasteel/shuttle/red/syndicate, +/turf/closed/wall/mineral/plastitanium{ + dir = 1; + icon_state = "diagonalWall3" + }, +/area/awaymission/spacebattle/syndicate2) +"aO" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 8; + icon_state = "diagonalWall3" + }, +/area/awaymission/spacebattle/syndicate1) +"aP" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_r"; + dir = 1 + }, +/turf/open/space, +/area/awaymission/spacebattle/syndicate1) +"aQ" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion"; + dir = 1 + }, +/turf/open/space, +/area/awaymission/spacebattle/syndicate1) +"aR" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_l"; + dir = 1 + }, +/turf/open/space, +/area/awaymission/spacebattle/syndicate1) +"aS" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 1; + icon_state = "diagonalWall3" + }, +/area/awaymission/spacebattle/syndicate1) +"aT" = ( +/obj/machinery/sleeper, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate3) +"aU" = ( +/turf/closed/wall/mineral/plastitanium, +/area/awaymission/spacebattle/syndicate1) +"aV" = ( +/obj/structure/shuttle/engine/heater{ + icon_state = "heater"; + dir = 1 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/syndicate1) +"aW" = ( +/obj/structure/window/reinforced, +/obj/structure/shuttle/engine/heater{ + icon_state = "heater"; + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/syndicate2) +"aX" = ( +/obj/structure/window/reinforced, +/obj/structure/shuttle/engine/heater{ + icon_state = "heater"; + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/syndicate2) +"aY" = ( +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate1) +"aZ" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate2) +"ba" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate2) +"bb" = ( +/obj/machinery/door/airlock/external, +/turf/open/floor/plasteel/shuttle{ + icon_state = "floor4" + }, +/area/awaymission/spacebattle/syndicate1) +"bc" = ( +/obj/machinery/porta_turret{ + dir = 8; + emagged = 1; + installation = /obj/item/weapon/gun/energy/lasercannon + }, +/turf/open/floor/plating, +/area/awaymission/spacebattle/syndicate2) +"bd" = ( +/obj/machinery/door/unpowered/shuttle, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate3) +"be" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/suit/space/hardsuit/syndi, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate1) +"bf" = ( +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate1) +"bg" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/gloves/combat, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate1) +"bh" = ( +/obj/machinery/sleeper, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate1) +"bi" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/head/helmet/swat, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate3) +"bj" = ( +/obj/machinery/computer/pod{ + id = "spacebattlepod3"; + name = "Hull Door Control" + }, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate2) +"bk" = ( +/obj/machinery/door/poddoor{ + icon_state = "pdoor1"; + id = "spacebattlepod3"; + name = "Front Hull Door"; + opacity = 1 + }, +/turf/open/floor/plating, +/area/awaymission/spacebattle/syndicate2) +"bl" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/c4, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate3) +"bm" = ( +/obj/machinery/door/unpowered/shuttle, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate1) +"bn" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/c4, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate1) +"bo" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/grenade/spawnergrenade/manhacks, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate1) +"bp" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/restraints/handcuffs, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate1) +"bq" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + icon_state = "diagonalWall3" + }, +/area/awaymission/spacebattle/syndicate3) +"br" = ( +/mob/living/simple_animal/hostile/syndicate, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate3) +"bs" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" + }, +/area/awaymission/spacebattle/syndicate3) +"bt" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/melee/energy/sword/saber/red, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate1) +"bu" = ( +/obj/machinery/computer/shuttle, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate3) +"bv" = ( +/turf/open/floor/plasteel/shuttle/red/syndicate, +/turf/closed/wall/mineral/plastitanium{ + dir = 8; + icon_state = "diagonalWall3" + }, +/area/awaymission/spacebattle/syndicate3) +"bw" = ( +/turf/open/floor/plasteel/shuttle/red/syndicate, +/turf/closed/wall/mineral/plastitanium{ + dir = 1; + icon_state = "diagonalWall3" + }, +/area/awaymission/spacebattle/syndicate3) +"bx" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/head/helmet/swat, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate1) +"by" = ( +/obj/machinery/porta_turret{ + dir = 8; + emagged = 1; + installation = /obj/item/weapon/gun/energy/lasercannon + }, +/turf/open/floor/plating, +/area/awaymission/spacebattle/syndicate3) +"bz" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + icon_state = "diagonalWall3" + }, +/area/awaymission/spacebattle/syndicate1) +"bA" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate2) +"bB" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" + }, +/area/awaymission/spacebattle/syndicate1) +"bC" = ( +/obj/machinery/computer/shuttle, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate1) +"bD" = ( +/turf/open/floor/plasteel/shuttle/red/syndicate, +/turf/closed/wall/mineral/plastitanium{ + dir = 8; + icon_state = "diagonalWall3" + }, +/area/awaymission/spacebattle/syndicate1) +"bE" = ( +/obj/machinery/door/airlock/external, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate1) +"bF" = ( +/turf/open/floor/plasteel/shuttle/red/syndicate, +/turf/closed/wall/mineral/plastitanium{ + dir = 1; + icon_state = "diagonalWall3" + }, +/area/awaymission/spacebattle/syndicate1) +"bG" = ( +/obj/machinery/porta_turret{ + dir = 8; + emagged = 1; + installation = /obj/item/weapon/gun/energy/lasercannon + }, +/turf/open/floor/plating, +/area/awaymission/spacebattle/syndicate1) +"bH" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 8; + icon_state = "diagonalWall3" + }, +/area/awaymission/spacebattle/cruiser) +"bI" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_r"; + dir = 1 + }, +/turf/open/space, +/area/awaymission/spacebattle/cruiser) +"bJ" = ( +/obj/machinery/door/airlock/external, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"bK" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_l"; + dir = 1 + }, +/turf/open/space, +/area/awaymission/spacebattle/cruiser) +"bL" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 1; + icon_state = "diagonalWall3" + }, +/area/awaymission/spacebattle/cruiser) +"bM" = ( +/turf/closed/wall/mineral/plastitanium, +/area/awaymission/spacebattle/cruiser) +"bN" = ( +/obj/structure/window/reinforced, +/obj/structure/shuttle/engine/heater{ + icon_state = "heater"; + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/cruiser) +"bO" = ( +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/cruiser) +"bP" = ( +/obj/structure/window/reinforced, +/obj/structure/shuttle/engine/heater{ + icon_state = "heater"; + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/cruiser) +"bQ" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/cruiser) +"bR" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/cruiser) +"bS" = ( +/turf/closed/wall/mineral/titanium/overspace, +/area/awaymission/spacebattle/cruiser) +"bT" = ( +/turf/closed/wall/mineral/titanium, +/area/awaymission/spacebattle/cruiser) +"bU" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall14" + }, +/area/awaymission/spacebattle/cruiser) +"bV" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall12" + }, +/area/awaymission/spacebattle/cruiser) +"bW" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s10"; + dir = 2 + }, +/area/awaymission/spacebattle/cruiser) +"bX" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "burst_l"; + dir = 4 + }, +/turf/open/space, +/area/awaymission/spacebattle/cruiser) +"bY" = ( +/obj/structure/shuttle/engine/heater{ + icon_state = "heater"; + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/engine, +/area/awaymission/spacebattle/cruiser) +"bZ" = ( +/obj/machinery/computer/telecomms/monitor, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"ca" = ( +/turf/open/floor/plasteel{ + icon_state = "damaged5" + }, +/area/awaymission/spacebattle/cruiser) +"cb" = ( +/obj/machinery/computer/pod{ + id = "spacebattlepod"; + name = "Hull Door Control" + }, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/cruiser) +"cc" = ( +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"cd" = ( +/obj/machinery/door/unpowered/shuttle, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"ce" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall3" + }, +/area/awaymission/spacebattle/cruiser) +"cf" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion"; + dir = 4 + }, +/turf/open/space, +/area/awaymission/spacebattle/cruiser) +"cg" = ( +/obj/structure/table/reinforced, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"ch" = ( +/turf/open/floor/plasteel{ + icon_state = "damaged5" + }, +/turf/closed/wall/mineral/plastitanium{ + icon_state = "diagonalWall3" + }, +/area/awaymission/spacebattle/cruiser) +"ci" = ( +/obj/machinery/door/poddoor/preopen{ + id = "spacebattlepod"; + name = "Front Hull Door" + }, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"cj" = ( +/turf/open/floor/plasteel{ + icon_state = "damaged4" + }, +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" + }, +/area/awaymission/spacebattle/cruiser) +"ck" = ( +/mob/living/simple_animal/hostile/syndicate, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate1) +"cl" = ( +/turf/open/floor/plasteel{ + icon_state = "damaged2" + }, +/turf/closed/wall/mineral/plastitanium{ + icon_state = "diagonalWall3" + }, +/area/awaymission/spacebattle/cruiser) +"cm" = ( +/turf/open/floor/plasteel{ + icon_state = "damaged4" + }, +/area/awaymission/spacebattle/cruiser) +"cn" = ( +/turf/open/floor/plasteel{ + icon_state = "damaged3" + }, +/area/awaymission/spacebattle/cruiser) +"co" = ( +/turf/open/floor/plasteel{ + icon_state = "damaged5" + }, +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" + }, +/area/awaymission/spacebattle/cruiser) +"cp" = ( +/turf/open/floor/plasteel{ + icon_state = "damaged1" + }, +/area/awaymission/spacebattle/cruiser) +"cq" = ( +/obj/effect/mob_spawn/human/engineer{ + mob_name = "Rosen Miller"; + name = "Rosen Miller" + }, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"cr" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"cs" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall7" + }, +/area/awaymission/spacebattle/cruiser) +"ct" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/awaymission/spacebattle/cruiser) +"cu" = ( +/turf/closed/wall/shuttle{ + icon_state = "swallc2" + }, +/area/awaymission/spacebattle/cruiser) +"cv" = ( +/obj/machinery/power/smes/magical{ + desc = "A high-capacity superconducting magnetic energy storage (SMES) unit."; + name = "power storage unit" + }, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"cw" = ( +/obj/item/ammo_casing/c10mm, +/obj/item/ammo_casing/c10mm, +/turf/open/floor/plasteel{ + icon_state = "damaged2" + }, +/area/awaymission/spacebattle/cruiser) +"cx" = ( +/obj/item/stack/sheet/metal, +/obj/item/ammo_casing/c10mm, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"cy" = ( +/obj/item/ammo_casing/c10mm, +/obj/item/ammo_casing/c10mm, +/obj/item/ammo_casing/c10mm, +/obj/item/ammo_casing/c10mm, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"cz" = ( +/obj/structure/closet/cabinet, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"cA" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"cB" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"cC" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/reagent_containers/food/snacks/sausage, +/turf/open/floor/plasteel/cafeteria{ + dir = 2 + }, +/area/awaymission/spacebattle/cruiser) +"cD" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/reagent_containers/food/condiment/enzyme, +/turf/open/floor/plasteel/cafeteria{ + dir = 2 + }, +/area/awaymission/spacebattle/cruiser) +"cE" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/kitchen/knife, +/turf/open/floor/plasteel/cafeteria{ + dir = 2 + }, +/area/awaymission/spacebattle/cruiser) +"cF" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/kitchen/rollingpin, +/turf/open/floor/plasteel/cafeteria{ + dir = 2 + }, +/area/awaymission/spacebattle/cruiser) +"cG" = ( +/obj/structure/closet/secure_closet/freezer/kitchen, +/turf/open/floor/plasteel/cafeteria{ + dir = 2 + }, +/area/awaymission/spacebattle/cruiser) +"cH" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/turf/open/floor/plasteel/cafeteria{ + dir = 2 + }, +/area/awaymission/spacebattle/cruiser) +"cI" = ( +/obj/structure/table/reinforced, +/obj/machinery/microwave, +/turf/open/floor/plasteel/cafeteria{ + dir = 2 + }, +/area/awaymission/spacebattle/cruiser) +"cJ" = ( +/obj/machinery/door/unpowered/shuttle, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"cK" = ( +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"cL" = ( +/obj/item/ammo_casing/c10mm, +/obj/item/ammo_casing/c10mm, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"cM" = ( +/obj/item/ammo_casing/c10mm, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"cN" = ( +/turf/open/floor/plasteel{ + icon_state = "damaged2" + }, +/area/awaymission/spacebattle/cruiser) +"cO" = ( +/obj/effect/landmark{ + name = "awaystart" + }, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"cP" = ( +/turf/open/floor/plasteel/cafeteria{ + dir = 2 + }, +/area/awaymission/spacebattle/cruiser) +"cQ" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"cR" = ( +/turf/closed/wall/shuttle{ + icon_state = "swallc3" + }, +/area/awaymission/spacebattle/cruiser) +"cS" = ( +/obj/effect/mob_spawn/human/engineer{ + mob_name = "Bill Sanchez"; + name = "Bill Sanchez" + }, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"cT" = ( +/obj/machinery/door/unpowered/shuttle, +/turf/open/floor/plasteel/cafeteria{ + dir = 2 + }, +/area/awaymission/spacebattle/cruiser) +"cU" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/reagent_containers/food/snacks/fries, +/turf/open/floor/plasteel/cafeteria{ + dir = 2 + }, +/area/awaymission/spacebattle/cruiser) +"cV" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/reagent_containers/food/snacks/soup/stew, +/turf/open/floor/plasteel/cafeteria{ + dir = 2 + }, +/area/awaymission/spacebattle/cruiser) +"cW" = ( +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/cafeteria{ + dir = 2 + }, +/area/awaymission/spacebattle/cruiser) +"cX" = ( +/mob/living/simple_animal/hostile/syndicate/melee, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"cY" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"cZ" = ( +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/cruiser) +"da" = ( +/turf/open/floor/plasteel/bar, +/area/awaymission/spacebattle/cruiser) +"db" = ( +/mob/living/simple_animal/hostile/syndicate/ranged{ + loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/item/weapon/shield/energy) + }, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate3) +"dc" = ( +/obj/machinery/computer/pod{ + id = "spacebattlepod2"; + name = "Hull Door Control" + }, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/cruiser) +"dd" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"de" = ( +/obj/machinery/shieldgen{ + anchored = 1 + }, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/cruiser) +"df" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_r"; + dir = 4 + }, +/turf/open/space, +/area/awaymission/spacebattle/cruiser) +"dg" = ( +/obj/effect/mob_spawn/human/engineer{ + mob_name = "John Locke"; + name = "John Locke" + }, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"dh" = ( +/obj/structure/rack, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"di" = ( +/obj/structure/closet/secure_closet/engineering_electrical, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"dj" = ( +/obj/structure/closet/secure_closet/engineering_welding, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"dk" = ( +/obj/structure/closet/wardrobe/engineering_yellow, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"dl" = ( +/obj/structure/closet/toolcloset, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"dm" = ( +/obj/effect/mob_spawn/human/doctor{ + mob_name = "Daniel Kalla"; + name = "Daniel Kalla" + }, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"dn" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel/bar, +/area/awaymission/spacebattle/cruiser) +"do" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall7"; + dir = 2 + }, +/area/awaymission/spacebattle/cruiser) +"dp" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall11"; + dir = 2 + }, +/area/awaymission/spacebattle/cruiser) +"dq" = ( +/turf/open/floor/plasteel{ + icon_state = "damaged4" + }, +/turf/closed/wall/mineral/plastitanium{ + icon_state = "diagonalWall3" + }, +/area/awaymission/spacebattle/cruiser) +"dr" = ( +/obj/machinery/door/poddoor/preopen{ + id = "spacebattlepod2"; + name = "Front Hull Door" + }, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"ds" = ( +/turf/open/floor/plasteel{ + icon_state = "damaged1" + }, +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" + }, +/area/awaymission/spacebattle/cruiser) +"dt" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s5"; + dir = 2 + }, +/area/awaymission/spacebattle/cruiser) +"du" = ( +/obj/effect/decal/cleanable/blood, +/turf/closed/wall/mineral/titanium, +/area/awaymission/spacebattle/cruiser) +"dv" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall15" + }, +/area/awaymission/spacebattle/cruiser) +"dw" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall11" + }, +/area/awaymission/spacebattle/cruiser) +"dx" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/bar, +/area/awaymission/spacebattle/cruiser) +"dy" = ( +/obj/structure/rack, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/awaymission/spacebattle/cruiser) +"dz" = ( +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/awaymission/spacebattle/cruiser) +"dA" = ( +/obj/effect/landmark{ + name = "awaystart" + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/awaymission/spacebattle/cruiser) +"dB" = ( +/obj/structure/closet/secure_closet/security, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/awaymission/spacebattle/cruiser) +"dC" = ( +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/awaymission/spacebattle/cruiser) +"dD" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/cruiser) +"dE" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/engine, +/area/awaymission/spacebattle/cruiser) +"dF" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced, +/turf/open/floor/engine, +/area/awaymission/spacebattle/cruiser) +"dG" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/engine, +/area/awaymission/spacebattle/cruiser) +"dH" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/engine, +/area/awaymission/spacebattle/cruiser) +"dI" = ( +/turf/open/floor/plasteel{ + icon_state = "damaged3" + }, +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" + }, +/area/awaymission/spacebattle/cruiser) +"dJ" = ( +/obj/item/stack/rods, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"dK" = ( +/obj/mecha/medical/odysseus, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"dL" = ( +/obj/mecha/working/ripley/firefighter, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"dM" = ( +/obj/structure/closet/crate{ + name = "Gold Crate" + }, +/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"dN" = ( +/obj/machinery/mech_bay_recharge_port{ + tag = "icon-recharge_port"; + icon_state = "recharge_port"; + dir = 2 + }, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/cruiser) +"dO" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"dP" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"dQ" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/bar, +/area/awaymission/spacebattle/cruiser) +"dR" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/reagent_containers/food/condiment/peppermill, +/turf/open/floor/plasteel/bar, +/area/awaymission/spacebattle/cruiser) +"dS" = ( +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/bar, +/area/awaymission/spacebattle/cruiser) +"dT" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/bar, +/area/awaymission/spacebattle/cruiser) +"dU" = ( +/obj/structure/rack, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/awaymission/spacebattle/cruiser) +"dV" = ( +/obj/structure/closet/secure_closet/security, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/awaymission/spacebattle/cruiser) +"dW" = ( +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/awaymission/spacebattle/cruiser) +"dX" = ( +/obj/effect/mob_spawn/human/engineer/rig{ + id_job = "Gunner"; + mob_name = "Andrew Thorn"; + name = "Andrew Thorn" + }, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/cruiser) +"dY" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/engine, +/area/awaymission/spacebattle/cruiser) +"dZ" = ( +/obj/machinery/porta_turret{ + dir = 8; + emagged = 1; + installation = /obj/item/weapon/gun/energy/lasercannon + }, +/turf/open/floor/engine, +/area/awaymission/spacebattle/cruiser) +"ea" = ( +/obj/effect/mob_spawn/human/engineer{ + mob_name = "Clay Dawson"; + name = "Clay Dawson" + }, +/turf/open/floor/plasteel{ + icon_state = "damaged5" + }, +/area/awaymission/spacebattle/cruiser) +"eb" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"ec" = ( +/obj/machinery/gateway{ + dir = 9 + }, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"ed" = ( +/obj/machinery/gateway{ + dir = 1 + }, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"ee" = ( +/obj/machinery/gateway{ + dir = 5 + }, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"ef" = ( +/mob/living/simple_animal/hostile/syndicate/melee{ + deathmessage = "\[src] falls limp as they release their grip from the energy weapons, activating their self-destruct function!"; + loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier) + }, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate3) +"eg" = ( +/obj/structure/closet/crate{ + name = "Gold Crate" + }, +/obj/item/mecha_parts/mecha_equipment/repair_droid, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"eh" = ( +/mob/living/simple_animal/hostile/syndicate/melee{ + deathmessage = "\[src] falls limp as they release their grip from the energy weapons, activating their self-destruct function!"; + loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier) + }, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate1) +"ei" = ( +/obj/structure/closet/l3closet/security, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/awaymission/spacebattle/cruiser) +"ej" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/awaymission/spacebattle/cruiser) +"ek" = ( +/obj/structure/grille, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/engine, +/area/awaymission/spacebattle/cruiser) +"el" = ( +/turf/open/floor/engine, +/area/awaymission/spacebattle/cruiser) +"em" = ( +/obj/machinery/gateway{ + dir = 8 + }, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"en" = ( +/obj/machinery/gateway/centeraway{ + calibrated = 0 + }, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"eo" = ( +/obj/machinery/gateway{ + dir = 4 + }, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"ep" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/bar, +/area/awaymission/spacebattle/cruiser) +"eq" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 8; + icon_state = "diagonalWall3" + }, +/area/awaymission/spacebattle/syndicate4) +"er" = ( +/turf/closed/wall/mineral/plastitanium, +/area/awaymission/spacebattle/syndicate4) +"es" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 1; + icon_state = "diagonalWall3" + }, +/area/awaymission/spacebattle/syndicate4) +"et" = ( +/obj/machinery/gateway{ + dir = 10 + }, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"eu" = ( +/obj/machinery/gateway, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"ev" = ( +/obj/machinery/gateway{ + dir = 6 + }, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"ew" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate3) +"ex" = ( +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/awaymission/spacebattle/cruiser) +"ey" = ( +/obj/effect/mob_spawn/human/bridgeofficer{ + mob_name = "Davis Hume"; + name = "Davis Hume" + }, +/obj/item/weapon/gun/projectile/shotgun/automatic/combat, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"ez" = ( +/obj/item/ammo_casing/shotgun, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"eA" = ( +/mob/living/simple_animal/hostile/syndicate/ranged{ + loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/item/weapon/shield/energy) + }, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate1) +"eB" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall3"; + dir = 2 + }, +/area/awaymission/spacebattle/cruiser) +"eC" = ( +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/blue/side{ + dir = 9 + }, +/area/awaymission/spacebattle/cruiser) +"eD" = ( +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/blue/side{ + dir = 1 + }, +/area/awaymission/spacebattle/cruiser) +"eE" = ( +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/blue, +/area/awaymission/spacebattle/cruiser) +"eF" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"eG" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate1) +"eH" = ( +/obj/effect/mob_spawn/human/engineer/rig{ + id_job = "Gunner"; + mob_name = "Peter West"; + name = "Peter West" + }, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/cruiser) +"eI" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall13"; + dir = 2 + }, +/area/awaymission/spacebattle/cruiser) +"eJ" = ( +/turf/closed/wall/shuttle{ + icon_state = "swallc4" + }, +/area/awaymission/spacebattle/cruiser) +"eK" = ( +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate4) +"eL" = ( +/obj/machinery/computer/shuttle, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate4) +"eM" = ( +/turf/open/floor/plasteel/blue/side{ + dir = 8 + }, +/area/awaymission/spacebattle/cruiser) +"eN" = ( +/obj/item/weapon/shield/energy, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"eO" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"eP" = ( +/obj/machinery/computer/med_data, +/turf/open/floor/plasteel/blue, +/area/awaymission/spacebattle/cruiser) +"eQ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"eR" = ( +/obj/machinery/sleeper, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate4) +"eS" = ( +/obj/structure/chair{ + dir = 1 + }, +/mob/living/simple_animal/hostile/syndicate, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate4) +"eT" = ( +/obj/structure/closet/crate, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"eU" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/reagent_containers/food/condiment/saltshaker, +/turf/open/floor/plasteel/bar, +/area/awaymission/spacebattle/cruiser) +"eV" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/kitchen/fork, +/turf/open/floor/plasteel/bar, +/area/awaymission/spacebattle/cruiser) +"eW" = ( +/obj/effect/mob_spawn/human/syndicatesoldier, +/obj/item/weapon/melee/energy/sword/saber/red, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"eX" = ( +/obj/effect/mob_spawn/human/bridgeofficer{ + mob_name = "Kurt Kliest"; + name = "Kurt Kliest" + }, +/obj/item/weapon/gun/projectile/shotgun/automatic/combat, +/obj/item/ammo_casing/shotgun, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"eY" = ( +/obj/item/ammo_casing/shotgun, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"eZ" = ( +/obj/machinery/computer/crew, +/turf/open/floor/plasteel/blue, +/area/awaymission/spacebattle/cruiser) +"fa" = ( +/obj/effect/mob_spawn/human/engineer/rig{ + id_job = "Gunner"; + mob_name = "Eric Abnett"; + name = "Eric Abnett" + }, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/cruiser) +"fb" = ( +/obj/structure/closet/crate, +/obj/item/clothing/glasses/night, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"fc" = ( +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/awaymission/spacebattle/cruiser) +"fd" = ( +/turf/open/floor/plasteel/red/side, +/area/awaymission/spacebattle/cruiser) +"fe" = ( +/obj/structure/chair{ + dir = 4 + }, +/mob/living/simple_animal/hostile/syndicate, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/cruiser) +"ff" = ( +/obj/machinery/button/door{ + dir = 2; + id = "spacebattlestorage"; + name = "Secure Storage"; + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"fg" = ( +/obj/item/weapon/hand_labeler, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"fh" = ( +/obj/machinery/door/poddoor{ + id = "spacebattlestorage"; + name = "Secure Storage" + }, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"fi" = ( +/obj/structure/chair{ + dir = 8 + }, +/mob/living/simple_animal/hostile/syndicate, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/cruiser) +"fj" = ( +/obj/machinery/computer/security/telescreen, +/turf/closed/wall/mineral/titanium, +/area/awaymission/spacebattle/cruiser) +"fk" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s9"; + dir = 2 + }, +/area/awaymission/spacebattle/cruiser) +"fl" = ( +/obj/machinery/door/airlock/external, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate4) +"fm" = ( +/mob/living/simple_animal/hostile/syndicate/melee{ + deathmessage = "\[src] falls limp as they release their grip from the energy weapons, activating their self-destruct function!"; + loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier) + }, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"fn" = ( +/obj/structure/closet/crate, +/obj/item/weapon/light/tube, +/obj/item/weapon/light/tube, +/obj/item/weapon/light/tube, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"fo" = ( +/turf/open/floor/plasteel/blue/side{ + dir = 1 + }, +/area/awaymission/spacebattle/cruiser) +"fp" = ( +/obj/effect/mob_spawn/human/syndicatesoldier, +/obj/item/weapon/gun/projectile/automatic/c20r, +/obj/item/ammo_casing/c10mm, +/obj/item/ammo_casing/c10mm, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel/blue/side{ + dir = 1 + }, +/area/awaymission/spacebattle/cruiser) +"fq" = ( +/obj/item/ammo_casing/c10mm, +/obj/item/ammo_casing/c10mm, +/turf/open/floor/plasteel/blue/side{ + dir = 1 + }, +/area/awaymission/spacebattle/cruiser) +"fr" = ( +/obj/effect/mob_spawn/human/nanotrasensoldier, +/obj/item/weapon/gun/projectile/automatic/wt550, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"fs" = ( +/obj/item/ammo_casing/shotgun, +/turf/open/floor/plasteel/blue/corner{ + dir = 1 + }, +/area/awaymission/spacebattle/cruiser) +"ft" = ( +/obj/item/ammo_casing/a357, +/obj/item/ammo_casing/a357, +/obj/item/weapon/gun/projectile/revolver/mateba, +/obj/effect/mob_spawn/human/commander{ + mob_name = "Aaron Bowden"; + name = "Aaron Bowden" + }, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"fu" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"fv" = ( +/obj/machinery/computer/shuttle, +/turf/open/floor/plasteel/blue, +/area/awaymission/spacebattle/cruiser) +"fw" = ( +/obj/structure/artilleryplaceholder{ + icon_state = "1" + }, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/cruiser) +"fx" = ( +/obj/structure/artilleryplaceholder{ + icon_state = "2" + }, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/cruiser) +"fy" = ( +/obj/structure/artilleryplaceholder{ + icon_state = "3" + }, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/cruiser) +"fz" = ( +/obj/structure/artilleryplaceholder{ + icon_state = "4" + }, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/cruiser) +"fA" = ( +/obj/structure/artilleryplaceholder{ + icon_state = "5" + }, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/cruiser) +"fB" = ( +/obj/structure/artilleryplaceholder{ + icon_state = "6" + }, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/cruiser) +"fC" = ( +/obj/structure/artilleryplaceholder{ + icon_state = "7" + }, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/cruiser) +"fD" = ( +/obj/structure/artilleryplaceholder{ + icon_state = "8" + }, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/cruiser) +"fE" = ( +/obj/structure/artilleryplaceholder{ + icon_state = "9" + }, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/cruiser) +"fF" = ( +/obj/structure/artilleryplaceholder{ + icon_state = "10" + }, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/cruiser) +"fG" = ( +/obj/structure/artilleryplaceholder{ + icon_state = "11" + }, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/cruiser) +"fH" = ( +/obj/structure/artilleryplaceholder{ + icon_state = "12" + }, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/cruiser) +"fI" = ( +/obj/effect/landmark{ + name = "awaystart" + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 2 + }, +/area/awaymission/spacebattle/cruiser) +"fJ" = ( +/turf/open/floor/plasteel/blue/side{ + dir = 0 + }, +/area/awaymission/spacebattle/cruiser) +"fK" = ( +/obj/item/ammo_casing/c10mm, +/obj/item/ammo_casing/c10mm, +/turf/open/floor/plasteel/blue/side{ + dir = 0 + }, +/area/awaymission/spacebattle/cruiser) +"fL" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/plasteel{ + icon_state = "damaged1" + }, +/area/awaymission/spacebattle/cruiser) +"fM" = ( +/obj/item/ammo_casing/shotgun, +/turf/open/floor/plasteel/blue/side{ + dir = 0 + }, +/area/awaymission/spacebattle/cruiser) +"fN" = ( +/obj/effect/mob_spawn/human/syndicatesoldier, +/obj/item/weapon/gun/projectile/automatic/c20r, +/obj/item/ammo_casing/c10mm, +/obj/item/ammo_casing/c10mm, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel/blue/side{ + dir = 0 + }, +/area/awaymission/spacebattle/cruiser) +"fO" = ( +/obj/item/ammo_casing/c10mm, +/turf/open/floor/plasteel/blue/corner{ + dir = 8 + }, +/area/awaymission/spacebattle/cruiser) +"fP" = ( +/obj/machinery/computer/communications, +/turf/open/floor/plasteel/blue, +/area/awaymission/spacebattle/cruiser) +"fQ" = ( +/obj/structure/artilleryplaceholder{ + icon_state = "13" + }, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/cruiser) +"fR" = ( +/obj/structure/artilleryplaceholder{ + icon_state = "14" + }, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/cruiser) +"fS" = ( +/obj/structure/artilleryplaceholder{ + icon_state = "15" + }, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/cruiser) +"fT" = ( +/obj/structure/artilleryplaceholder{ + icon_state = "16" + }, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/cruiser) +"fU" = ( +/obj/structure/artilleryplaceholder{ + icon_state = "17" + }, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/cruiser) +"fV" = ( +/obj/structure/artilleryplaceholder{ + icon_state = "18" + }, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/cruiser) +"fW" = ( +/obj/structure/artilleryplaceholder{ + icon_state = "19" + }, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/cruiser) +"fX" = ( +/obj/structure/artilleryplaceholder{ + icon_state = "20" + }, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/cruiser) +"fY" = ( +/obj/structure/artilleryplaceholder{ + icon_state = "21" + }, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/cruiser) +"fZ" = ( +/obj/structure/artilleryplaceholder{ + icon_state = "22" + }, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/cruiser) +"ga" = ( +/obj/structure/artilleryplaceholder{ + icon_state = "23" + }, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/cruiser) +"gb" = ( +/obj/structure/artilleryplaceholder{ + icon_state = "24" + }, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/cruiser) +"gc" = ( +/obj/structure/closet/crate, +/obj/item/weapon/poster/contraband, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"gd" = ( +/obj/effect/mob_spawn/human/bridgeofficer{ + mob_name = "Robert Faver"; + name = "Robert Faver" + }, +/obj/item/ammo_casing/shotgun, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"ge" = ( +/obj/structure/artilleryplaceholder/decorative{ + icon_state = "25" + }, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/cruiser) +"gf" = ( +/obj/structure/artilleryplaceholder/decorative{ + icon_state = "26" + }, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/cruiser) +"gg" = ( +/obj/structure/artilleryplaceholder/decorative{ + icon_state = "27" + }, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/cruiser) +"gh" = ( +/obj/structure/artilleryplaceholder/decorative{ + icon_state = "28" + }, +/obj/machinery/artillerycontrol, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/cruiser) +"gi" = ( +/obj/structure/artilleryplaceholder/decorative{ + icon_state = "29" + }, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/cruiser) +"gj" = ( +/obj/structure/artilleryplaceholder/decorative{ + icon_state = "30" + }, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/cruiser) +"gk" = ( +/obj/structure/artilleryplaceholder/decorative{ + icon_state = "31" + }, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/cruiser) +"gl" = ( +/obj/structure/artilleryplaceholder/decorative{ + icon_state = "32" + }, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/cruiser) +"gm" = ( +/obj/structure/artilleryplaceholder/decorative{ + icon_state = "33" + }, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/cruiser) +"gn" = ( +/obj/structure/artilleryplaceholder/decorative{ + icon_state = "34" + }, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/cruiser) +"go" = ( +/obj/structure/artilleryplaceholder{ + icon_state = "35" + }, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/cruiser) +"gp" = ( +/obj/structure/closet/crate/secure/weapon, +/obj/item/ammo_casing/a357, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"gq" = ( +/obj/structure/closet/crate, +/obj/item/weapon/lipstick/black, +/obj/item/weapon/lipstick/jade, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"gr" = ( +/obj/machinery/button/door{ + dir = 2; + id = "spacebattlestorage"; + name = "Secure Storage"; + pixel_x = 24; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"gs" = ( +/obj/machinery/computer/operating, +/turf/open/floor/plasteel/white/side{ + dir = 2 + }, +/area/awaymission/spacebattle/cruiser) +"gt" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/scalpel, +/obj/item/weapon/circular_saw, +/turf/open/floor/plasteel/white/side{ + dir = 2 + }, +/area/awaymission/spacebattle/cruiser) +"gu" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/retractor, +/turf/open/floor/plasteel/white/side{ + dir = 2 + }, +/area/awaymission/spacebattle/cruiser) +"gv" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/hemostat, +/turf/open/floor/plasteel/white/side{ + dir = 2 + }, +/area/awaymission/spacebattle/cruiser) +"gw" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/scalpel, +/turf/open/floor/plasteel/white/side{ + dir = 2 + }, +/area/awaymission/spacebattle/cruiser) +"gx" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/wood, +/area/awaymission/spacebattle/cruiser) +"gy" = ( +/turf/open/floor/wood, +/area/awaymission/spacebattle/cruiser) +"gz" = ( +/obj/item/weapon/gun/projectile/shotgun/automatic/combat, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"gA" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + icon_state = "diagonalWall3" + }, +/area/awaymission/spacebattle/syndicate4) +"gB" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" + }, +/area/awaymission/spacebattle/syndicate4) +"gC" = ( +/obj/structure/closet/crate/secure/weapon, +/obj/item/weapon/gun/energy/laser, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"gD" = ( +/obj/structure/closet/crate, +/obj/item/stack/spacecash/c10, +/obj/item/stack/spacecash/c10, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"gE" = ( +/obj/effect/decal/cleanable/blood, +/turf/closed/wall/shuttle{ + icon_state = "swall3" + }, +/area/awaymission/spacebattle/cruiser) +"gF" = ( +/obj/effect/mob_spawn/human/doctor{ + mob_name = "Adam Smith"; + name = "Adam Smith" + }, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"gG" = ( +/obj/structure/table/optable, +/turf/open/floor/plasteel/white, +/area/awaymission/spacebattle/cruiser) +"gH" = ( +/turf/open/floor/plasteel/white, +/area/awaymission/spacebattle/cruiser) +"gI" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/wood, +/area/awaymission/spacebattle/cruiser) +"gJ" = ( +/mob/living/simple_animal/hostile/syndicate, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/cruiser) +"gK" = ( +/obj/machinery/computer/security, +/turf/open/floor/plasteel/blue, +/area/awaymission/spacebattle/cruiser) +"gL" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp/green, +/turf/open/floor/wood, +/area/awaymission/spacebattle/cruiser) +"gM" = ( +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/awaymission/spacebattle/cruiser) +"gN" = ( +/obj/machinery/computer/secure_data, +/turf/open/floor/plasteel/blue, +/area/awaymission/spacebattle/cruiser) +"gO" = ( +/obj/effect/mob_spawn/human/engineer/rig{ + id_job = "Gunner"; + name = "Jeremy Tailor" + }, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/cruiser) +"gP" = ( +/obj/machinery/porta_turret{ + dir = 8; + emagged = 1; + installation = /obj/item/weapon/gun/energy/lasercannon + }, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/syndicate7) +"gQ" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 1; + icon_state = "diagonalWall3" + }, +/area/awaymission/spacebattle/syndicate7) +"gR" = ( +/obj/structure/shuttle/engine/heater, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/syndicate4) +"gS" = ( +/obj/structure/reagent_dispensers/beerkeg, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"gT" = ( +/obj/item/weapon/ore/bananium, +/obj/item/weapon/ore/bananium, +/obj/item/weapon/ore/bananium, +/obj/item/weapon/ore/bananium, +/obj/item/weapon/ore/bananium, +/obj/structure/closet/crate, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"gU" = ( +/obj/machinery/computer/operating, +/turf/open/floor/plasteel/white, +/area/awaymission/spacebattle/cruiser) +"gV" = ( +/obj/effect/mob_spawn/human/doctor{ + mob_name = "Allan Yoshimaru"; + name = "Allan Yoshimaru" + }, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel/white, +/area/awaymission/spacebattle/cruiser) +"gW" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel/white, +/area/awaymission/spacebattle/cruiser) +"gX" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/wood, +/area/awaymission/spacebattle/cruiser) +"gY" = ( +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/blue/side{ + dir = 10 + }, +/area/awaymission/spacebattle/cruiser) +"gZ" = ( +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/blue/side{ + dir = 0 + }, +/area/awaymission/spacebattle/cruiser) +"ha" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"hb" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 8; + icon_state = "diagonalWall3" + }, +/area/awaymission/spacebattle/syndicate7) +"hc" = ( +/turf/closed/wall/mineral/plastitanium, +/area/awaymission/spacebattle/syndicate7) +"hd" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/open/space, +/area/awaymission/spacebattle/syndicate4) +"he" = ( +/obj/item/weapon/pickaxe, +/obj/item/weapon/gun/energy/plasmacutter, +/obj/structure/closet/crate, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"hf" = ( +/obj/item/weapon/circular_saw, +/turf/open/floor/plasteel/white, +/area/awaymission/spacebattle/cruiser) +"hg" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin, +/turf/open/floor/wood, +/area/awaymission/spacebattle/cruiser) +"hh" = ( +/obj/effect/mob_spawn/human/engineer/rig{ + id_job = "Gunner"; + mob_name = "Dan Hedricks"; + name = "Dan Hedricks" + }, +/obj/effect/decal/cleanable/blood, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/cruiser) +"hi" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating, +/area/awaymission/spacebattle/syndicate7) +"hj" = ( +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate7) +"hk" = ( +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate7) +"hl" = ( +/obj/structure/shuttle/engine/heater{ + icon_state = "heater"; + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/syndicate7) +"hm" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_r"; + dir = 8 + }, +/turf/open/space, +/area/awaymission/spacebattle/syndicate7) +"hn" = ( +/obj/structure/closet/crate/large, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"ho" = ( +/obj/structure/closet/crate/secure/plasma, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"hp" = ( +/obj/structure/closet/crate/medical, +/obj/item/weapon/storage/firstaid/fire, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"hq" = ( +/obj/structure/rack, +/obj/item/clothing/suit/space/hardsuit, +/obj/item/clothing/head/helmet/space/hardsuit, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"hr" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/awaymission/spacebattle/cruiser) +"hs" = ( +/obj/structure/girder, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"ht" = ( +/turf/closed/wall/r_wall, +/area/awaymission/spacebattle/cruiser) +"hu" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating, +/area/awaymission/spacebattle/syndicate7) +"hv" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_l"; + dir = 8 + }, +/turf/open/space, +/area/awaymission/spacebattle/syndicate7) +"hw" = ( +/obj/structure/closet/crate/large, +/mob/living/simple_animal/pet/dog/corgi/puppy, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"hx" = ( +/obj/structure/closet/crate, +/obj/item/weapon/paint/anycolor, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"hy" = ( +/obj/machinery/computer/mech_bay_power_console, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/cruiser) +"hz" = ( +/obj/structure/closet/crate/medical, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"hA" = ( +/obj/structure/closet/crate/medical, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"hB" = ( +/obj/machinery/door/unpowered/shuttle, +/turf/open/floor/plasteel/white, +/area/awaymission/spacebattle/cruiser) +"hC" = ( +/obj/structure/chair, +/obj/effect/landmark{ + name = "awaystart" + }, +/turf/open/floor/plasteel/bar, +/area/awaymission/spacebattle/cruiser) +"hD" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/plasteel/white, +/area/awaymission/spacebattle/cruiser) +"hE" = ( +/obj/structure/table/wood, +/obj/item/device/instrument/violin, +/turf/open/floor/wood, +/area/awaymission/spacebattle/cruiser) +"hF" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/plasteel{ + icon_state = "damaged3" + }, +/area/awaymission/spacebattle/cruiser) +"hG" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" + }, +/area/awaymission/spacebattle/syndicate7) +"hH" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall14"; + dir = 2 + }, +/area/awaymission/spacebattle/cruiser) +"hI" = ( +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/white, +/area/awaymission/spacebattle/cruiser) +"hJ" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/captain, +/turf/open/floor/wood, +/area/awaymission/spacebattle/cruiser) +"hK" = ( +/obj/structure/closet/secure_closet/captains, +/turf/open/floor/wood, +/area/awaymission/spacebattle/cruiser) +"hL" = ( +/obj/effect/mob_spawn/human/engineer{ + id_job = "Gunner"; + mob_name = "William Gannon"; + name = "William Gannon" + }, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"hM" = ( +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/awaymission/spacebattle/cruiser) +"hN" = ( +/obj/structure/rack, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/engine, +/area/awaymission/spacebattle/cruiser) +"hO" = ( +/obj/structure/rack, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/engine, +/area/awaymission/spacebattle/cruiser) +"hP" = ( +/obj/structure/rack, +/turf/open/floor/engine, +/area/awaymission/spacebattle/cruiser) +"hQ" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/plasteel{ + icon_state = "damaged4" + }, +/area/awaymission/spacebattle/cruiser) +"hR" = ( +/mob/living/simple_animal/hostile/syndicate/ranged{ + loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/item/weapon/shield/energy) + }, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"hS" = ( +/obj/machinery/computer/shuttle, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate7) +"hT" = ( +/obj/structure/chair{ + dir = 8 + }, +/mob/living/simple_animal/hostile/syndicate, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate7) +"hU" = ( +/obj/machinery/door/airlock/external, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate7) +"hV" = ( +/obj/machinery/shower{ + icon_state = "shower"; + dir = 4 + }, +/obj/item/weapon/bikehorn/rubberducky, +/turf/open/floor/plasteel/freezer, +/area/awaymission/spacebattle/cruiser) +"hW" = ( +/turf/open/floor/plasteel/freezer, +/area/awaymission/spacebattle/cruiser) +"hX" = ( +/obj/machinery/shower{ + icon_state = "shower"; + dir = 8 + }, +/turf/open/floor/plasteel/freezer, +/area/awaymission/spacebattle/cruiser) +"hY" = ( +/obj/structure/toilet, +/turf/open/floor/plasteel/freezer, +/area/awaymission/spacebattle/cruiser) +"hZ" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/firstaid/fire, +/turf/open/floor/plasteel/white, +/area/awaymission/spacebattle/cruiser) +"ia" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s9" + }, +/area/awaymission/spacebattle/cruiser) +"ib" = ( +/obj/machinery/door/unpowered/shuttle, +/turf/open/floor/plasteel/freezer, +/area/awaymission/spacebattle/cruiser) +"ic" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall1" + }, +/area/awaymission/spacebattle/cruiser) +"id" = ( +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/plasteel/white, +/area/awaymission/spacebattle/cruiser) +"ie" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/firstaid/o2, +/turf/open/floor/plasteel/white, +/area/awaymission/spacebattle/cruiser) +"if" = ( +/obj/machinery/shower{ + icon_state = "shower"; + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/awaymission/spacebattle/cruiser) +"ig" = ( +/obj/machinery/shower{ + icon_state = "shower"; + dir = 8 + }, +/obj/item/weapon/soap, +/turf/open/floor/plasteel/freezer, +/area/awaymission/spacebattle/cruiser) +"ih" = ( +/obj/structure/rack, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/item/weapon/gun/energy/laser, +/obj/item/weapon/gun/energy/laser, +/turf/open/floor/engine, +/area/awaymission/spacebattle/cruiser) +"ii" = ( +/obj/effect/mob_spawn/human/doctor{ + mob_name = "Herbert West"; + name = "Herbert West" + }, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel/white, +/area/awaymission/spacebattle/cruiser) +"ij" = ( +/obj/effect/mob_spawn/human/engineer{ + mob_name = "Carth Robinson"; + name = "Carth Robinson" + }, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel/freezer, +/area/awaymission/spacebattle/cruiser) +"ik" = ( +/obj/structure/rack, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/engine, +/area/awaymission/spacebattle/cruiser) +"il" = ( +/obj/machinery/sleeper, +/turf/open/floor/plasteel/white, +/area/awaymission/spacebattle/cruiser) +"im" = ( +/obj/machinery/sleep_console, +/turf/open/floor/plasteel/white, +/area/awaymission/spacebattle/cruiser) +"in" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + icon_state = "diagonalWall3" + }, +/area/awaymission/spacebattle/syndicate7) +"io" = ( +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/turf/open/floor/plasteel/freezer, +/area/awaymission/spacebattle/cruiser) +"ip" = ( +/obj/machinery/sleeper, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/awaymission/spacebattle/cruiser) +"iq" = ( +/obj/machinery/sleep_console, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/awaymission/spacebattle/cruiser) +"ir" = ( +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/awaymission/spacebattle/cruiser) +"is" = ( +/obj/effect/mob_spawn/human/engineer{ + mob_name = "Cyrion"; + name = "Cyrion" + }, +/obj/item/weapon/flamethrower/full, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"it" = ( +/mob/living/simple_animal/hostile/syndicate/ranged, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"iu" = ( +/obj/effect/mob_spawn/human/syndicatesoldier, +/obj/item/weapon/gun/projectile/automatic/c20r, +/turf/open/floor/plasteel{ + icon_state = "damaged2" + }, +/area/awaymission/spacebattle/cruiser) +"iv" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "burst_r"; + dir = 4 + }, +/turf/open/space, +/area/awaymission/spacebattle/cruiser) +"iw" = ( +/obj/effect/mob_spawn/human/engineer{ + mob_name = "Mercutio"; + name = "Mercutio" + }, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"ix" = ( +/obj/structure/lattice, +/turf/open/space, +/area/space) +"iy" = ( +/obj/effect/mob_spawn/human/syndicatesoldier, +/turf/open/space, +/area/space) +"iz" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"iA" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 1; + icon_state = "diagonalWall3" + }, +/area/space) +"iB" = ( +/obj/machinery/sleeper, +/turf/open/floor/plasteel/airless/shuttle/red{ + dir = 10 + }, +/area/space) +"iC" = ( +/turf/open/floor/plasteel/airless/shuttle/red{ + dir = 10 + }, +/area/space) +"iD" = ( +/obj/effect/mob_spawn/human/syndicatesoldier, +/turf/open/floor/plasteel/airless/shuttle/red{ + dir = 10 + }, +/area/space) +"iE" = ( +/turf/closed/mineral/clown, +/area/space) +"iF" = ( +/obj/machinery/door/airlock/external, +/turf/open/floor/plasteel/airless{ + icon_state = "floor4"; + dir = 10 + }, +/area/space) +"iG" = ( +/obj/item/stack/rods, +/turf/open/floor/plasteel/airless/shuttle/red{ + dir = 10 + }, +/area/space) +"iH" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 8; + icon_state = "diagonalWall3" + }, +/area/awaymission/spacebattle/syndicate5) +"iI" = ( +/turf/closed/wall/mineral/plastitanium, +/area/awaymission/spacebattle/syndicate5) +"iJ" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 1; + icon_state = "diagonalWall3" + }, +/area/awaymission/spacebattle/syndicate5) +"iK" = ( +/obj/machinery/sleeper, +/turf/open/floor/plasteel/airless, +/area/space) +"iL" = ( +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate5) +"iM" = ( +/obj/machinery/computer/shuttle, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate5) +"iN" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + icon_state = "diagonalWall3" + }, +/area/space) +"iO" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" + }, +/area/space) +"iP" = ( +/obj/machinery/sleeper, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate5) +"iQ" = ( +/obj/structure/chair{ + dir = 1 + }, +/mob/living/simple_animal/hostile/syndicate, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate5) +"iR" = ( +/obj/structure/shuttle/engine/heater, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/space) +"iS" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/open/space, +/area/space) +"iT" = ( +/obj/machinery/door/airlock/external, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate5) +"iU" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + icon_state = "diagonalWall3" + }, +/area/awaymission/spacebattle/syndicate5) +"iV" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" + }, +/area/awaymission/spacebattle/syndicate5) +"iW" = ( +/obj/structure/shuttle/engine/heater, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/syndicate5) +"iX" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/open/space, +/area/awaymission/spacebattle/syndicate5) +"iY" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 8; + icon_state = "diagonalWall3" + }, +/area/awaymission/spacebattle/syndicate6) +"iZ" = ( +/turf/closed/wall/mineral/plastitanium, +/area/awaymission/spacebattle/syndicate6) +"ja" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 1; + icon_state = "diagonalWall3" + }, +/area/awaymission/spacebattle/syndicate6) +"jb" = ( +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate6) +"jc" = ( +/obj/machinery/computer/shuttle, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate6) +"jd" = ( +/obj/machinery/sleeper, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate6) +"je" = ( +/obj/structure/chair{ + dir = 1 + }, +/mob/living/simple_animal/hostile/syndicate, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate6) +"jf" = ( +/obj/machinery/door/airlock/external, +/turf/open/floor/plasteel/shuttle/red/syndicate, +/area/awaymission/spacebattle/syndicate6) +"jg" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + icon_state = "diagonalWall3" + }, +/area/awaymission/spacebattle/syndicate6) +"jh" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" + }, +/area/awaymission/spacebattle/syndicate6) +"ji" = ( +/obj/structure/shuttle/engine/heater, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/syndicate6) +"jj" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/open/space, +/area/awaymission/spacebattle/syndicate6) +"jk" = ( +/turf/open/floor/plating/asteroid/airless, +/area/space) +"jl" = ( +/turf/closed/wall/mineral/plasma, +/area/awaymission/spacebattle/secret) +"jm" = ( +/turf/open/floor/plasteel/rockvault/alien, +/area/awaymission/spacebattle/secret) +"jn" = ( +/obj/machinery/door/airlock/plasma, +/turf/closed/wall/mineral/plasma, +/area/awaymission/spacebattle/secret) +"jo" = ( +/obj/item/clothing/suit/space/hardsuit/wizard, +/turf/open/floor/plasteel/rockvault/alien, +/area/awaymission/spacebattle/secret) +"jp" = ( +/obj/mecha/combat/gygax, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"jq" = ( +/obj/structure/closet/crate{ + name = "Gold Crate" + }, +/obj/item/weapon/gun/medbeam/mech, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"jr" = ( +/mob/living/simple_animal/hostile/syndicate/melee/space{ + deathmessage = "\[src] falls limp as they release their grip from the energy weapons, activating their self-destruct function!"; + loot = list(/obj/effect/mob_spawn/human/corpse/syndicatecommando) + }, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/cruiser) +"js" = ( +/obj/structure/rack, +/obj/item/weapon/gun/projectile/automatic/laser, +/turf/open/floor/engine, +/area/awaymission/spacebattle/cruiser) +"jt" = ( +/obj/structure/rack, +/obj/item/weapon/gun/energy/gun/advtaser, +/turf/open/floor/engine, +/area/awaymission/spacebattle/cruiser) +"ju" = ( +/obj/structure/rack, +/obj/structure/window/reinforced, +/obj/item/weapon/gun/energy/laser, +/turf/open/floor/engine, +/area/awaymission/spacebattle/cruiser) +"jv" = ( +/mob/living/simple_animal/hostile/nanotrasen/ranged, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"jw" = ( +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + dir = 2; + id = "spacebattlearmory"; + name = "Weapon Cache"; + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 1 + }, +/area/awaymission/spacebattle/cruiser) +"jx" = ( +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + dir = 2; + id = "spacebattlearmory2"; + name = "Weapon Cache"; + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 1 + }, +/area/awaymission/spacebattle/cruiser) +"jy" = ( +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + dir = 2; + id = "spacebattlearmory1"; + name = "Weapon Cache"; + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 1 + }, +/area/awaymission/spacebattle/cruiser) +"jz" = ( +/mob/living/simple_animal/hostile/syndicate/mecha_pilot{ + spawn_mecha_type = /obj/mecha/combat/gygax/dark/loaded + }, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"jA" = ( +/mob/living/simple_animal/hostile/nanotrasen/ranged/smg, +/turf/open/floor/engine, +/area/awaymission/spacebattle/cruiser) +"jB" = ( +/obj/structure/rack, +/obj/structure/window/reinforced, +/obj/item/weapon/gun/energy/gun/advtaser, +/turf/open/floor/engine, +/area/awaymission/spacebattle/cruiser) +"jC" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/landmark{ + name = "awaystart" + }, +/turf/open/floor/plasteel/bar, +/area/awaymission/spacebattle/cruiser) +"jD" = ( +/obj/structure/barricade/security, +/turf/open/floor/engine, +/area/awaymission/spacebattle/cruiser) +"jE" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"jF" = ( +/obj/structure/closet/crate, +/obj/item/ammo_box/magazine/recharge, +/obj/item/ammo_box/magazine/recharge, +/obj/item/ammo_box/magazine/recharge, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"jG" = ( +/obj/machinery/door/poddoor{ + id = "spacebattlearmory1"; + name = "Secure Cache 1" + }, +/turf/open/floor/engine, +/area/awaymission/spacebattle/cruiser) +"jH" = ( +/mob/living/simple_animal/hostile/nanotrasen/ranged, +/turf/open/floor/engine, +/area/awaymission/spacebattle/cruiser) +"jI" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/engine, +/area/awaymission/spacebattle/cruiser) +"jJ" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/armory_contraband, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"jK" = ( +/mob/living/simple_animal/hostile/syndicate/melee{ + deathmessage = "\[src] falls limp as they release their grip from the energy weapons, activating their self-destruct function!"; + loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier) + }, +/turf/open/floor/plasteel/blue/side{ + dir = 8 + }, +/area/awaymission/spacebattle/cruiser) +"jL" = ( +/obj/machinery/door/poddoor{ + id = "spacebattlearmory"; + name = "Secure Armory" + }, +/turf/open/floor/engine, +/area/awaymission/spacebattle/cruiser) +"jM" = ( +/obj/effect/mob_spawn/human/bridgeofficer{ + mob_name = "Walter Strider"; + name = "Walter Strider" + }, +/obj/item/weapon/gun/projectile/shotgun/automatic/combat, +/obj/item/ammo_casing/c10mm, +/obj/item/ammo_casing/c10mm, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel{ + icon_state = "damaged3" + }, +/area/awaymission/spacebattle/cruiser) +"jN" = ( +/obj/structure/closet/crate, +/obj/item/ammo_box/magazine/recharge, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"jO" = ( +/obj/item/ammo_casing/shotgun, +/obj/item/ammo_casing/c10mm, +/obj/item/ammo_casing/c10mm, +/obj/item/stack/sheet/metal, +/turf/open/floor/plasteel/blue/side{ + dir = 0 + }, +/area/awaymission/spacebattle/cruiser) +"jP" = ( +/obj/structure/closet/crate/internals, +/obj/item/weapon/storage/firstaid/o2, +/turf/open/floor/engine, +/area/awaymission/spacebattle/cruiser) +"jQ" = ( +/obj/machinery/door/poddoor{ + id = "spacebattlearmory2"; + name = "Secure Cache 2" + }, +/turf/open/floor/engine, +/area/awaymission/spacebattle/cruiser) +"jR" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/wood, +/area/awaymission/spacebattle/cruiser) +"jS" = ( +/turf/open/floor/plasteel/airless, +/area/awaymission/spacebattle/cruiser) +"jT" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/plasteel/airless, +/area/awaymission/spacebattle/cruiser) +"jU" = ( +/mob/living/simple_animal/hostile/syndicate/ranged/space{ + loot = list(/obj/effect/mob_spawn/human/corpse/syndicatecommando,/obj/item/weapon/gun/projectile/automatic/c20r) + }, +/turf/open/floor/plasteel/airless, +/area/awaymission/spacebattle/cruiser) +"jV" = ( +/mob/living/simple_animal/hostile/syndicate/mecha_pilot{ + spawn_mecha_type = /obj/mecha/combat/gygax/dark/loaded + }, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/cruiser) +"jW" = ( +/mob/living/simple_animal/hostile/syndicate/mecha_pilot{ + spawn_mecha_type = /obj/mecha/combat/gygax/dark/loaded + }, +/turf/open/floor/plasteel/airless, +/area/awaymission/spacebattle/cruiser) +"jX" = ( +/obj/structure/rack, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/item/weapon/gun/energy/pulse/pistol/loyalpin, +/obj/item/weapon/gun/energy/pulse/pistol/loyalpin, +/turf/open/floor/engine, +/area/awaymission/spacebattle/cruiser) +"jY" = ( +/mob/living/simple_animal/hostile/syndicate/ranged/space{ + loot = list(/obj/effect/mob_spawn/human/corpse/syndicatecommando,/obj/item/weapon/gun/projectile/automatic/c20r) + }, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/cruiser) +"jZ" = ( +/obj/structure/rack, +/obj/item/weapon/gun/projectile/automatic/laser, +/obj/item/weapon/gun/projectile/automatic/laser, +/turf/open/floor/engine, +/area/awaymission/spacebattle/cruiser) +"ka" = ( +/obj/effect/spawner/lootdrop/crate_spawner, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"kb" = ( +/obj/structure/girder, +/turf/open/floor/plating/airless, +/area/awaymission/spacebattle/cruiser) +"kc" = ( +/obj/structure/rack, +/obj/item/weapon/gun/energy/laser/scatter, +/turf/open/floor/engine, +/area/awaymission/spacebattle/cruiser) +"kd" = ( +/turf/open/floor/engine/vacuum, +/area/awaymission/spacebattle/cruiser) +"ke" = ( +/obj/item/stack/rods, +/turf/open/floor/engine/vacuum, +/area/awaymission/spacebattle/cruiser) +"kf" = ( +/obj/structure/rack, +/obj/structure/window/reinforced, +/obj/item/weapon/gun/energy/laser/scatter, +/turf/open/floor/engine, +/area/awaymission/spacebattle/cruiser) +"kg" = ( +/obj/structure/rack, +/obj/structure/window/reinforced, +/turf/open/floor/engine, +/area/awaymission/spacebattle/cruiser) +"kh" = ( +/mob/living/simple_animal/hostile/syndicate, +/turf/open/floor/plasteel/white, +/area/awaymission/spacebattle/cruiser) +"ki" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/engine/vacuum, +/area/awaymission/spacebattle/cruiser) +"kj" = ( +/turf/open/floor/mech_bay_recharge_floor, +/area/awaymission/spacebattle/cruiser) +"kk" = ( +/obj/item/weapon/shard, +/turf/open/floor/engine/vacuum, +/area/awaymission/spacebattle/cruiser) +"kl" = ( +/obj/effect/mob_spawn/human/nanotrasensoldier, +/obj/item/weapon/gun/projectile/automatic/wt550, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"km" = ( +/obj/structure/closet/crate{ + name = "Gold Crate" + }, +/obj/item/mecha_parts/mecha_equipment/drill, +/obj/item/mecha_parts/mecha_equipment/weapon/energy/laser, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"kn" = ( +/obj/machinery/computer/mech_bay_power_console, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"ko" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/engine/vacuum, +/area/awaymission/spacebattle/cruiser) +"kp" = ( +/obj/structure/rack, +/obj/item/weapon/gun/energy/xray, +/turf/open/floor/engine, +/area/awaymission/spacebattle/cruiser) +"kq" = ( +/obj/machinery/porta_turret{ + dir = 8; + emagged = 1; + installation = /obj/item/weapon/gun/energy/lasercannon + }, +/turf/open/floor/engine/vacuum, +/area/awaymission/spacebattle/cruiser) +"kr" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/engine/vacuum, +/area/awaymission/spacebattle/cruiser) +"ks" = ( +/obj/machinery/mech_bay_recharge_port{ + tag = "icon-recharge_port"; + icon_state = "recharge_port"; + dir = 2 + }, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"kt" = ( +/obj/structure/barricade/security, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"ku" = ( +/mob/living/simple_animal/hostile/syndicate/ranged{ + loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/item/weapon/shield/energy) + }, +/turf/open/floor/plasteel/white, +/area/awaymission/spacebattle/cruiser) +"kv" = ( +/obj/structure/grille, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/engine/vacuum, +/area/awaymission/spacebattle/cruiser) +"kw" = ( +/obj/structure/grille, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/engine/vacuum, +/area/awaymission/spacebattle/cruiser) +"kx" = ( +/obj/structure/grille, +/obj/structure/window/reinforced, +/turf/open/floor/engine/vacuum, +/area/awaymission/spacebattle/cruiser) +"ky" = ( +/obj/structure/grille, +/turf/open/floor/engine/vacuum, +/area/awaymission/spacebattle/cruiser) +"kz" = ( +/obj/structure/grille, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/engine/vacuum, +/area/awaymission/spacebattle/cruiser) +"kA" = ( +/obj/effect/mob_spawn/human/engineer{ + mob_name = "Javier Wismer"; + name = "Javier Wismer" + }, +/turf/open/floor/plasteel/airless, +/area/awaymission/spacebattle/cruiser) +"kB" = ( +/obj/structure/rack, +/obj/item/weapon/storage/toolbox/electrical, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"kC" = ( +/obj/structure/rack, +/obj/item/weapon/storage/toolbox/mechanical, +/obj/item/weapon/storage/toolbox/electrical, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"kD" = ( +/obj/structure/rack, +/obj/item/weapon/storage/toolbox/mechanical, +/turf/open/floor/plasteel, +/area/awaymission/spacebattle/cruiser) +"kE" = ( +/obj/item/weapon/shard, +/turf/open/space, +/area/space) +"kF" = ( +/obj/item/stack/rods, +/turf/open/space, +/area/space) +"kG" = ( +/obj/item/ammo_casing/c10mm, +/obj/item/ammo_casing/c10mm, +/obj/item/ammo_casing/c10mm, +/obj/item/ammo_casing/c10mm, +/mob/living/simple_animal/hostile/syndicate/ranged, +/turf/open/floor/plasteel/freezer, +/area/awaymission/spacebattle/cruiser) +"kH" = ( +/obj/machinery/mech_bay_recharge_port{ + tag = "icon-recharge_port (NORTH)"; + icon_state = "recharge_port"; + dir = 1 + }, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) +"kI" = ( +/obj/item/stack/sheet/metal, +/turf/open/space, +/area/space) +"kJ" = ( +/obj/item/weapon/shard, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"kK" = ( +/obj/structure/lattice, +/obj/item/stack/rods, +/turf/open/space, +/area/space) +"kL" = ( +/obj/structure/closet/crate, +/obj/item/weapon/stock_parts/cell/high, +/obj/item/weapon/stock_parts/cell/high, +/obj/item/mecha_parts/mecha_equipment/weapon/energy/ion, +/turf/open/floor/plating, +/area/awaymission/spacebattle/cruiser) + +(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 +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(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 +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(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 +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(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 +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(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 +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(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 +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +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 +"} +(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 +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +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 +"} +(8,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +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 +"} +(9,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +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 +"} +(10,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +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 +"} +(11,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +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 +"} +(12,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +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 +"} +(13,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +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 +"} +(14,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +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 +"} +(15,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +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 +"} +(16,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +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 +"} +(17,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +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 +"} +(18,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +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 +"} +(19,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +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 +"} +(20,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +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 +"} +(21,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +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 +"} +(22,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +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 +"} +(23,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +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 +"} +(24,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +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 +"} +(25,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +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 +"} +(26,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +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 +"} +(27,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +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 +"} +(28,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +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 +"} +(29,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +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 +"} +(30,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +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 +"} +(31,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +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 +"} +(32,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ab +ab +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 +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(33,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 +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 +ab +ab +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 +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(34,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 +ab +ab +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 +ab +ab +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 +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(35,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 +ab +ab +ab +ab +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 +ab +ab +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 +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(36,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 +ab +ab +ab +ab +ab +ab +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 +ab +ab +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(37,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 +ab +ab +ab +ab +ab +ab +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 +ab +ab +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(38,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(39,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(40,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +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 +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(41,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +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 +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(42,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(43,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(44,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(45,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(46,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +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 +"} +(47,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +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 +"} +(48,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +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 +"} +(49,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +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 +"} +(50,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +eq +er +er +fl +fl +er +er +gA +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +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 +"} +(51,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +eq +er +eK +eK +eK +eK +eK +eR +er +gA +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +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 +"} +(52,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +eq +er +eR +eK +eK +eK +eK +eK +eK +eR +er +gA +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +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 +"} +(53,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +er +eK +eK +eK +eK +eK +eK +eK +eK +eK +eR +er +gA +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +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 +"} +(54,1,1) = {" +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 +er +eL +eS +eK +eK +eK +eK +eK +eK +eK +eK +gR +hd +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +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 +"} +(55,1,1) = {" +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 +er +eK +eK +eK +eK +eK +eK +eK +eK +eK +eK +gR +hd +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(56,1,1) = {" +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 +er +eK +eK +eK +eK +eK +eK +eK +eK +eK +eK +gR +hd +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(57,1,1) = {" +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 +er +eL +eS +eK +eK +eK +eK +eK +eK +eK +eK +gR +hd +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(58,1,1) = {" +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 +er +eK +eK +eK +eK +eK +eK +eK +eK +eK +eR +er +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(59,1,1) = {" +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 +es +er +eR +eK +eK +eK +eK +eK +eK +eR +er +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(60,1,1) = {" +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 +es +er +eK +eK +eK +eK +eK +eR +er +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(61,1,1) = {" +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 +es +er +er +fl +fl +er +er +gB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(62,1,1) = {" +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 +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(63,1,1) = {" +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 +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(64,1,1) = {" +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 +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(65,1,1) = {" +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(66,1,1) = {" +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(67,1,1) = {" +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(68,1,1) = {" +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(69,1,1) = {" +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(70,1,1) = {" +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(71,1,1) = {" +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(72,1,1) = {" +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 +aO +aU +aU +bb +bb +aU +aU +aU +aU +aU +aU +aU +aU +aU +aU +aU +aU +aU +aU +aU +aU +aU +aU +bz +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +iH +iI +iI +iT +iT +iI +iI +iU +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(73,1,1) = {" +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 +aP +aV +aY +aY +aY +be +aU +bh +aY +bh +aY +bh +aY +aU +bf +bo +bo +bf +bf +bx +aU +bh +bh +aU +aU +bz +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bS +bX +cf +cf +cf +cf +cf +cf +cf +df +bS +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bS +bX +cf +cf +cf +cf +cf +cf +cf +iv +bS +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +iH +iI +iL +iL +iL +iL +iL +iP +iI +iU +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(74,1,1) = {" +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 +aQ +aV +ck +aY +aY +be +aU +aY +aY +aY +ck +aY +aY +aU +bf +aY +aY +aY +aY +aY +aU +aY +aY +eG +bC +aU +aU +aU +aU +bz +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bT +bY +bY +bY +bY +bY +bY +bY +bY +bY +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bT +bY +bY +bY +bY +bY +bY +bY +bY +bY +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +iH +iI +iP +iL +iL +iL +iL +iL +iL +iP +iI +iU +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(75,1,1) = {" +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 +aQ +aV +aY +aY +aY +bf +aU +aY +aY +aY +aY +aY +aY +aU +bf +aY +ck +aY +aY +aY +aU +aY +aY +eG +bC +aU +aU +aU +aU +bG +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bT +bZ +cg +cg +cv +cv +cv +cg +cg +cg +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bT +cg +cg +cg +cv +cv +cv +cg +cg +bZ +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +iI +iL +iL +iL +iL +iL +iL +iL +iL +iL +iP +iI +iU +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(76,1,1) = {" +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 +aQ +aV +aY +aY +aY +bf +aU +aY +aY +aY +aY +aY +aY +aU +bf +aY +aY +aY +aY +aY +aU +aY +aY +aY +bD +aU +aU +aU +aU +aU +bz +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bT +ca +cc +cc +cc +cc +cc +cc +cQ +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bT +cc +cc +cc +cc +cc +cc +cc +cc +iw +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +iI +iM +iQ +iL +iL +iL +iL +iL +iL +iL +iL +iW +iX +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(77,1,1) = {" +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 +aQ +aV +aY +aY +aY +bf +aU +bh +aY +bh +aY +aY +aY +aU +bf +bp +bf +bf +aY +aY +aU +aY +aY +aY +aU +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bH +bM +bM +bM +bM +bM +bM +bM +bM +ch +cc +cp +cc +cr +kl +cc +dg +du +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bT +cc +cc +cc +cc +cc +cc +cc +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +iI +iL +iL +iL +iL +iL +iL +iL +iL +iL +iL +iW +iX +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(78,1,1) = {" +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 +aQ +aV +aY +aY +aY +bf +aU +aU +aU +aU +aU +bm +bm +aU +aU +aU +aU +aU +bm +bm +aU +aY +aY +aY +aU +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bI +bN +bQ +fe +bQ +bQ +bO +bO +cb +bM +cl +cc +cL +cc +cr +cr +cr +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bT +cc +cc +cc +cc +cc +cc +cc +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +iI +iL +iL +iL +iL +iL +iL +iL +iL +iL +iL +iW +iX +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(79,1,1) = {" +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 +aQ +aV +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +eh +aY +aY +aY +aY +aY +aY +aY +aY +aY +bE +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bJ +bO +bO +bO +bO +bO +bO +bO +bO +ci +cm +cw +cp +cc +cQ +cc +dh +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bT +kB +cc +cc +cc +cc +cc +cc +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +iI +iM +iQ +iL +iL +iL +iL +iL +iL +iL +iL +iW +iX +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(80,1,1) = {" +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 +aQ +aV +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +aY +eh +aY +aY +aY +aY +aY +aY +aY +aY +aY +bE +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bJ +bO +bO +bO +bO +bO +hy +bO +bO +ci +cn +cm +cM +cc +cc +cc +dh +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bT +kD +cc +cc +cc +cc +cc +cc +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +iI +iL +iL +iL +iL +iL +iL +iL +iL +iL +iP +iI +iV +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(81,1,1) = {" +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 +aQ +aV +aY +aY +aY +bf +aU +aU +aU +aU +aU +bm +bm +aU +aU +aU +aU +aU +bm +bm +aU +aY +aY +aY +aU +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bK +bP +bR +fi +bR +bR +dN +kj +bO +bM +co +cx +cN +cM +cc +cc +dh +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bT +kC +cc +cc +cc +cc +cc +cc +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +iJ +iI +iP +iL +iL +iL +iL +iL +iL +iP +iI +iV +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(82,1,1) = {" +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 +aQ +aV +aY +aY +aY +bg +aU +bh +aY +bh +aY +aY +aY +aU +bf +bf +bf +bf +aY +aY +aU +aY +aY +aY +aU +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bL +bM +bM +bM +bM +bM +bM +bM +bM +cj +cp +cc +cN +cc +cc +cr +di +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bT +di +cc +cc +cc +cc +cc +cc +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +iJ +iI +iL +iL +iL +iL +iL +iP +iI +iV +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(83,1,1) = {" +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 +aQ +aV +aY +aY +aY +bf +aU +aY +aY +aY +aY +aY +aY +aU +bf +aY +aY +aY +aY +aY +aU +aY +aY +aY +bF +aU +aU +aU +aU +aU +bB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bT +cc +cc +cc +cc +cc +cc +cS +cc +di +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bT +di +cc +cc +cc +cc +cr +cc +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +iJ +iI +iI +iT +iT +iI +iI +iV +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(84,1,1) = {" +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 +aQ +aV +aY +ck +aY +bf +aU +aY +aY +ck +aY +aY +aY +aU +bn +aY +aY +aY +eA +aY +aU +aY +aY +eG +bC +aU +aU +aU +aU +bG +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bT +cc +cc +cc +cc +cL +cQ +cc +cc +dj +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +ht +dj +cc +cc +cc +cc +cc +cc +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(85,1,1) = {" +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 +aQ +aV +aY +aY +aY +bf +aU +aY +aY +aY +aY +aY +aY +aU +bn +aY +aY +aY +aY +aY +aU +aY +aY +eG +bC +aU +aU +aU +aU +bB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bT +cc +cc +kl +cy +cM +cc +cc +cc +dj +ht +el +ih +js +ju +jA +jD +ht +el +el +el +el +ht +jD +jA +ik +kc +kf +el +ht +dj +cc +cc +cc +cc +cc +is +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(86,1,1) = {" +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 +aR +aV +aY +aY +aY +bf +aU +bh +aY +bh +aY +bh +aY +aU +bf +bf +bf +bt +bf +bf +aU +bh +bh +aU +aU +bB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bT +cc +cr +cc +cc +cc +cc +cc +cc +dk +ht +el +el +el +el +el +jD +jG +el +el +el +el +jQ +jD +el +el +el +el +el +ht +dk +cc +cc +cc +cc +cc +cc +it +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(87,1,1) = {" +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 +aS +aU +aU +bb +bb +aU +aU +aU +aU +aU +aU +aU +aU +aU +aU +aU +aU +aU +aU +aU +aU +aU +aU +bB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bT +cc +cc +cc +cc +cc +cc +cc +cc +dk +ht +hN +el +el +el +jA +jD +ht +el +el +el +el +ht +jD +jA +el +el +el +hN +ht +dk +cc +cc +cc +cc +cc +cc +cc +cL +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(88,1,1) = {" +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 +bT +cc +cc +cc +cc +cc +cO +cO +cO +dk +ht +hP +el +el +el +el +el +ht +el +el +el +el +ht +el +el +el +el +el +kp +ht +dk +cc +cc +cc +cc +cc +cN +cc +cL +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(89,1,1) = {" +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 +bT +cc +cc +cc +cr +cc +cO +cO +cO +dl +ht +hO +el +el +el +el +el +ht +el +el +el +el +ht +el +el +el +el +el +hO +ht +dl +cc +cc +cc +cc +cX +cM +cN +cN +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(90,1,1) = {" +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 +bT +cc +cc +cq +cc +cc +cc +cc +cc +dl +ht +el +el +el +el +el +el +ht +jH +el +el +jH +ht +el +el +el +el +el +el +ht +dl +cc +cc +cc +cc +cc +cc +iu +cp +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(91,1,1) = {" +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 +bT +cc +cc +cr +cc +cc +cc +cc +cc +dl +ht +el +ik +jt +jt +jB +el +ht +jD +jD +jD +jD +ht +el +jX +jZ +hP +kg +el +ht +dl +cc +cc +cc +cc +cc +cp +cN +cN +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(92,1,1) = {" +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 +bT +cd +cd +bT +bT +bT +bT +bT +bT +bT +ht +ht +ht +ht +ht +ht +ht +ht +ht +jL +jL +ht +ht +ht +ht +ht +ht +ht +ht +ht +bT +bT +bT +bT +bT +bT +bT +cd +cd +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(93,1,1) = {" +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 +bT +cc +cc +bT +cz +cz +cz +cz +cz +cz +bT +cK +cK +cK +cK +cK +jE +jE +jI +el +el +jP +gp +gC +gC +gS +gS +hn +hw +bT +hV +hW +if +hW +if +hW +bT +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(94,1,1) = {" +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 +bT +cc +cc +bT +cc +cc +cc +cc +cc +cc +bT +cK +ec +em +et +cK +cK +cK +el +el +el +el +cK +cK +cK +gS +gS +hn +hn +bT +hW +hW +hW +hW +hW +hW +bT +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(95,1,1) = {" +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 +bT +cc +cc +bT +cA +cc +cA +cc +cA +cc +bT +cK +ed +en +eu +cK +cK +cK +cK +cK +cK +cK +cK +cK +cK +gT +he +hn +hn +bT +hX +hW +ig +hW +hX +hW +bT +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(96,1,1) = {" +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 +bT +cc +cc +bT +cc +cc +cc +cc +cc +cc +bT +cK +ee +eo +ev +cK +jF +fb +jE +jE +eT +gc +gq +gD +cK +ka +ka +hn +hn +bT +bT +bT +bT +du +bT +ib +bT +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +iY +iZ +iZ +jf +jf +iZ +iZ +jg +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(97,1,1) = {" +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 +bT +cc +cc +bT +cA +cc +cA +cc +cA +cc +bT +cK +cK +cK +cK +cK +cK +cK +cK +cK +cK +cK +cK +cK +cK +ka +ka +hn +hn +bT +hY +ib +hW +ij +hW +hW +bT +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +iY +iZ +jb +jb +jb +jb +jb +jd +iZ +jg +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(98,1,1) = {" +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 +bT +cc +cc +bT +cc +cc +cc +cc +cc +cc +bT +dK +jp +cK +cK +cK +cK +cK +cK +cK +cK +cK +cK +cK +cK +cK +cK +ho +ho +bT +bT +bT +hW +hW +hW +hW +bT +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +iY +iZ +jd +jb +jb +jb +jb +jb +jb +jd +iZ +jg +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(99,1,1) = {" +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 +bT +cc +cc +bT +cA +cO +cA +cc +cA +cc +bT +dL +dL +cK +cK +cK +eT +eT +jJ +fn +jN +jN +eT +eT +cK +cK +cK +ho +ho +bT +hY +ib +hW +hW +hW +hW +bT +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +iZ +jb +jb +jb +jb +jb +jb +jb +jb +jb +jd +iZ +jg +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(100,1,1) = {" +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 +bT +cc +cc +bT +cc +cc +cc +cc +cc +cc +bT +dM +jq +cK +cK +cK +cK +cK +cK +cK +cK +cK +cK +cK +cK +cK +cK +eT +hx +bT +bT +bT +hW +hW +hW +hW +bT +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +iZ +jc +je +jb +jb +jb +jb +jb +jb +jb +jb +ji +jj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(101,1,1) = {" +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 +bT +cc +cc +bT +cA +cc +cA +cc +cA +cc +bT +km +eg +cK +cK +cK +cK +cK +fg +cK +cK +cK +cK +cK +jv +cK +cK +eT +kL +bT +hY +ib +hW +hW +hW +hW +bT +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +iZ +jb +jb +jb +jb +jb +jb +jb +jb +jb +jb +ji +jj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(102,1,1) = {" +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 +bT +cc +cc +bT +cc +cc +cc +cc +cc +cc +bT +dO +dO +cK +jv +cK +cK +cK +cK +cK +cK +cK +cK +cK +cK +cK +cK +jJ +eT +bT +bT +bT +hW +hW +hW +hW +bT +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +iZ +jb +jb +jb +jb +jb +jb +jb +jb +jb +jb +ji +jj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(103,1,1) = {" +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 +bT +cc +cc +bT +cA +cc +cA +cc +cA +cr +bT +dO +dO +cK +cK +cK +cK +cK +cK +cK +cK +cK +cK +cK +cK +cK +cK +eT +hz +bT +hY +ib +hW +kG +hW +hW +bT +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +iZ +jc +je +jb +jb +jb +jb +jb +jb +jb +jb +ji +jj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(104,1,1) = {" +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 +bT +cc +cc +bT +cc +cc +cc +cc +cc +dm +bT +dP +dP +cK +cK +cK +cK +cK +cK +cK +cK +cK +cK +cK +cK +cK +cK +hp +hz +bT +bT +bT +hW +hW +hW +hW +bT +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +iZ +jb +jb +jb +jb +jb +jb +jb +jb +jb +jd +iZ +jh +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(105,1,1) = {" +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 +bT +cc +cc +bT +cB +cc +cc +cc +cc +cr +bT +dP +dP +cK +kn +ks +kj +cK +kt +kt +kt +kt +gr +kj +kH +kn +cK +hp +hA +bT +hY +ib +hW +hW +io +io +bT +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +iE +aa +iE +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ja +iZ +jd +jb +jb +jb +jb +jb +jb +jd +iZ +jh +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(106,1,1) = {" +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 +bT +cc +cc +ct +bT +bT +cd +cd +bT +bT +bT +bT +bT +bT +bT +bT +bT +bT +fh +fh +fh +fh +bT +du +bT +bT +bT +bT +bT +bT +bT +bT +cd +cd +bT +bT +ct +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ja +iZ +jb +jb +jb +jb +jb +jd +iZ +jh +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(107,1,1) = {" +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 +bT +cc +fm +cc +cc +cc +cc +cc +cc +cc +cc +fr +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +gF +cr +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +fm +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ja +iZ +iZ +jf +jf +iZ +iZ +jh +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(108,1,1) = {" +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 +bT +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +fm +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +iE +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(109,1,1) = {" +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 +bT +cc +cc +ct +bT +bT +bT +bT +bT +bT +cd +cd +bT +bT +bT +bT +bT +bT +ct +cc +cc +ct +bT +bT +bT +bT +bT +bT +hB +hB +bT +bT +bT +bT +bT +bT +ct +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +iE +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(110,1,1) = {" +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 +bT +cc +cc +bT +cC +cP +cP +bT +da +da +da +da +da +da +da +dQ +dQ +da +bT +cc +cc +bT +gs +gG +gH +gU +gG +gH +gH +gH +gH +gH +gH +il +gH +ip +bT +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +iE +iE +iE +iE +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(111,1,1) = {" +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 +bT +cc +cc +bT +cD +cP +cP +cT +da +da +da +da +da +da +dx +dS +eU +ep +bT +cc +cc +bT +gt +gH +gH +gH +gH +gH +gH +gH +gH +kh +gH +im +gH +iq +bT +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +iE +aa +aa +aa +aa +aa +iE +iE +iE +iE +aa +aa +iE +iE +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(112,1,1) = {" +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 +bT +cc +cc +bT +cE +cP +fI +bT +da +dn +da +da +da +da +dx +dS +dS +ep +bT +cc +cc +bT +gt +gH +gH +gH +gH +gH +gH +gH +gH +gH +gH +gH +gH +ir +bT +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +iE +iE +iE +iE +aa +aa +iE +iE +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(113,1,1) = {" +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 +bT +cc +cc +bT +cF +cP +cP +cU +da +dn +dn +da +da +da +da +jC +jC +da +bT +cc +cc +bT +gu +gH +gH +gH +gH +gH +gH +ku +gH +gH +gH +il +gH +ip +bT +cc +cc +bT +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(114,1,1) = {" +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 +bT +cc +cc +bT +cG +cP +cP +cU +da +da +da +dQ +dQ +da +da +dQ +dQ +da +bT +cc +cc +bT +gv +gH +gH +gV +hf +gH +gH +gH +gH +gH +gH +im +gH +iq +bT +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +iE +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(115,1,1) = {" +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 +bT +cc +cc +bT +cH +cP +cP +cV +da +da +hC +dR +dS +ep +dx +dR +dS +ep +bT +cc +cc +bT +gw +gH +gH +gW +gW +kh +gH +gH +gH +gH +ii +gH +gH +ir +bT +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +iE +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(116,1,1) = {" +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 +bT +cc +cc +bT +cI +cP +cP +cW +da +da +hC +dS +dS +ep +dx +dS +eV +ep +bT +cc +cc +bT +gt +gH +gH +gH +gH +gH +gH +gH +gH +id +gW +il +gH +ip +bT +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(117,1,1) = {" +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 +bT +cc +cc +bT +cI +cP +cP +cW +da +da +da +dT +dT +da +da +dT +dT +da +bT +cc +cc +bT +gs +gG +gH +gU +gG +gH +hD +hI +hZ +ie +gH +im +gH +iq +bT +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(118,1,1) = {" +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 +bT +cc +cc +ct +bT +bT +bT +bT +bT +bT +bT +bT +bT +bT +bT +bT +bT +bT +ct +cc +cc +ct +bT +bT +bT +bT +bT +bT +bT +bT +bT +bT +bT +bT +bT +bT +ct +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(119,1,1) = {" +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 +bT +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +cn +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(120,1,1) = {" +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 +bT +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +hR +cc +fL +cn +cn +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +jz +cc +cc +cc +cc +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(121,1,1) = {" +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 +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 +bS +bT +bT +bT +cJ +cJ +ct +cc +cc +ct +bT +bT +bT +bT +bT +cK +hs +bT +bT +cd +cd +bT +bT +bT +bT +bT +bT +bT +bT +bT +ct +cc +cc +ct +cJ +cJ +bT +bT +bT +bS +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(122,1,1) = {" +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 +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 +bT +cK +cK +bT +cc +cc +bT +dy +dU +dU +dU +ex +cp +fL +fc +bT +fo +fJ +bT +gx +gI +gy +gy +gy +gy +hE +hJ +bT +cc +cc +bT +cK +cK +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(123,1,1) = {" +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 +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 +bT +cK +cK +bT +cc +cc +bT +dz +cc +cc +cc +ey +cQ +cc +fd +bT +fp +fK +bT +gy +gy +gy +gy +gy +gy +gy +gy +bT +cp +cc +bT +cK +cK +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(124,1,1) = {" +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 +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 +bT +cK +cK +bT +cc +cc +bT +dz +cc +cc +cc +ez +cc +cc +cp +cd +fq +jO +cd +jR +gy +gy +gy +gy +gy +gy +gy +cK +cp +cp +bT +cK +cK +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(125,1,1) = {" +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 +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 +bT +cK +cK +bT +cc +cc +bT +dA +cc +cc +cc +cc +cc +cQ +cn +hs +jM +cp +cK +gy +gy +gL +gM +hg +gy +gy +gy +hs +cQ +cc +bT +cK +cK +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(126,1,1) = {" +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 +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 +bT +cK +cK +bT +cc +cc +bT +dB +dV +ei +ei +cn +cm +cm +cn +cK +hF +fM +bT +gy +gy +gM +gX +gy +gy +gy +hK +bT +cc +cQ +bT +cK +cK +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(127,1,1) = {" +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 +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 +bT +cK +cK +bT +cc +cc +bT +bT +bT +bT +bT +bT +hs +cK +bT +ct +fo +fN +ct +bT +bT +bT +bT +bT +bT +bT +bT +bT +cc +cc +bT +cK +cK +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(128,1,1) = {" +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 +aa +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 +bS +cJ +cJ +bT +cc +cc +bT +dh +dh +dh +bT +eC +cn +fL +cp +jK +fs +fO +jK +eM +eM +eM +gY +bT +hq +dh +dh +bT +cp +cc +bT +cJ +cJ +bS +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(129,1,1) = {" +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 +aa +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 +bT +cc +cm +cK +cm +cc +cc +bT +jw +eN +eW +cc +cL +cM +cc +cM +cc +cr +cc +gZ +bT +cc +cQ +cn +hs +cn +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(130,1,1) = {" +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 +aa +aa +aa +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 +bT +fL +cp +hs +cm +hQ +cc +bT +jy +cc +cc +cr +cM +cL +cM +cM +cc +cc +cc +gZ +bT +cc +cc +cp +bT +cn +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(131,1,1) = {" +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 +aa +aa +aa +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 +bT +cc +cp +hs +hF +cc +cc +bT +jx +cc +cc +cc +cc +cr +cc +gd +gz +cc +hR +gZ +bT +cc +cc +hL +bT +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(132,1,1) = {" +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ah +ah +ak +ak +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +aF +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bT +cc +cc +cd +cc +cc +cc +bT +eD +cc +cc +cc +cc +cc +cc +eY +cc +cc +cc +gZ +bT +cc +cc +cc +cd +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +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 +"} +(133,1,1) = {" +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ad +ai +aj +aj +aj +am +ah +ao +aj +ao +aj +ao +aj +ah +ar +an +an +an +at +an +ah +ao +ao +ah +ah +aF +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bT +cc +cc +bT +cc +cc +cc +bT +eD +cr +eX +ez +cc +cr +cc +cc +cc +cc +cc +gZ +bT +cc +cc +cc +bT +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +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 +"} +(134,1,1) = {" +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ae +ai +aj +aj +aj +am +ah +aj +aj +aj +aj +aj +aj +ah +an +aj +aj +aj +aj +aj +ah +aj +aj +bA +aK +ah +ah +ah +ah +aF +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bT +cc +cc +bT +cc +cc +cc +bT +eD +cc +eY +cc +hR +ft +cc +cc +cc +cc +cc +gZ +bT +cc +cc +cc +bT +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +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 +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(135,1,1) = {" +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ae +ai +aj +aj +aj +an +ah +aj +aj +aG +aj +aj +aj +ah +an +aj +aj +al +aj +aj +ah +aj +aj +bA +aK +ah +ah +ah +ah +bc +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bT +cc +cc +bT +cc +cc +cc +bT +eD +eO +eO +ff +eO +fu +eO +eO +cc +eO +eO +gZ +bT +cc +cc +cc +bT +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +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 +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(136,1,1) = {" +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ae +ai +aj +al +aj +an +ah +aj +aj +aj +aj +aj +aj +ah +an +aj +aj +aj +aj +aj +ah +aG +aj +aj +aL +ah +ah +ah +ah +ah +aF +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bT +cc +cc +bT +dC +dW +ej +bT +eE +eP +eZ +eE +fj +fv +fP +fj +eE +gK +gN +eE +bT +hr +dW +hM +bT +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +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 +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(137,1,1) = {" +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ae +ai +aj +aj +aj +an +ah +ao +aj +ao +aj +aj +aj +ah +an +as +an +an +aj +aj +ah +aj +aj +aj +ah +ac +ah +ah +ah +ah +ah +ah +ah +ah +aF +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bT +cc +cc +bT +bT +cd +bT +bT +eF +eQ +eQ +eQ +eQ +eQ +eQ +eQ +eQ +eQ +eQ +ha +bT +bT +cd +bT +bT +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +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 +"} +(138,1,1) = {" +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ae +ai +aj +aj +aj +an +ah +ah +ah +ah +ah +aq +aq +ah +ah +ah +ah +ah +aq +aq +ah +aj +aj +aj +ah +ad +aW +aZ +aZ +aZ +aZ +aZ +aj +bj +ah +aF +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bT +cc +cc +bT +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +bT +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +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 +"} +(139,1,1) = {" +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ae +ai +aj +aj +aj +aj +aj +aj +aj +aj +ap +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aM +aM +aj +aj +aj +aj +aj +aj +aj +aj +bk +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bT +cc +cc +bT +cZ +cZ +cZ +cZ +cZ +cZ +jr +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +bT +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +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 +"} +(140,1,1) = {" +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ae +ai +aj +aj +aj +aj +ap +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aM +aM +aj +aj +aj +aj +aj +aj +aj +aj +bk +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bT +cc +cc +bT +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +gO +cZ +cZ +cZ +cZ +cZ +bT +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +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 +"} +(141,1,1) = {" +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ae +ai +aj +aj +aj +an +ah +ah +ah +ah +ah +aq +aq +ah +ah +ah +ah +ah +au +aq +ah +aj +aj +aj +ah +af +aX +ba +ba +ba +ba +ba +aj +aj +ah +aH +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bT +cc +cc +bT +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +fw +fQ +ge +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +bT +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +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 +"} +(142,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ae +ai +aj +aj +aj +an +ah +ao +aj +ao +aj +aj +aj +ah +an +as +an +an +aj +aj +ah +aj +aj +aj +ah +ag +ah +ah +ah +ah +ah +ah +ah +ah +aH +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +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 +bT +cc +cc +bT +dD +dX +cZ +cZ +cZ +cZ +cZ +cZ +cZ +fx +fR +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +bT +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +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 +"} +(143,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ae +ai +aj +aj +al +an +ah +aj +aj +aj +aj +aj +aj +ah +as +aj +aj +aj +aj +aj +ah +aj +aj +aj +aN +ah +ah +ah +ah +ah +aH +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bT +cc +cc +bT +cZ +cZ +cZ +cZ +cZ +cZ +fa +cZ +cZ +fy +fS +gf +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +bT +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +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 +"} +(144,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ae +ai +aj +aj +aj +an +ah +aj +aj +aj +aj +aj +aj +ah +an +aj +aj +aj +aG +aj +ah +aj +aj +bA +aK +ah +ah +ah +ah +bc +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bT +cc +cc +bT +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +fz +fT +gg +cZ +cZ +cZ +cZ +cZ +cZ +jr +cZ +bT +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +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 +"} +(145,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ae +ai +aj +aj +aj +an +ah +aj +aj +aj +al +aj +aj +ah +an +aj +aj +aj +aj +aj +ah +aj +aj +bA +aK +ah +ah +ah +ah +aH +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bT +cc +it +bT +cZ +cZ +jr +cZ +cZ +cZ +cZ +cZ +cZ +fA +fU +gh +cZ +jV +cZ +cZ +hh +dD +cZ +cZ +bT +it +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +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 +"} +(146,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +ai +aj +aj +aj +an +ah +ao +aj +ao +aj +ao +aj +ah +an +an +an +an +an +aA +ah +ao +ao +ah +ah +aH +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bT +cc +cc +bT +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +fB +fV +gi +cZ +cZ +cZ +cZ +cZ +dD +cZ +cZ +bT +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(147,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ag +ah +ah +ak +ak +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +aH +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bT +cc +cc +bT +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +fC +fW +gj +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +bT +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(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 +bT +cc +cc +bT +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +fD +fX +gk +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +bT +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(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 +bT +cc +cc +bT +cZ +cZ +cZ +dD +eH +dD +cZ +cZ +cZ +fE +fY +gl +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +bT +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(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 +bT +cc +cc +bT +cZ +cZ +cZ +cZ +dD +dD +cZ +cZ +cZ +fF +fZ +gm +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +bT +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(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 +bT +cc +cc +bT +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +fG +ga +gn +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +bT +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(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 +bT +cc +cc +bT +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +fH +gb +go +cZ +cZ +jY +cZ +cZ +cZ +cZ +cZ +bT +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(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 +bT +cc +cc +bT +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +bT +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(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 +bT +cc +cc +ct +bT +bT +bT +bT +bT +bT +bT +bT +ct +ab +ab +ct +bT +bT +bT +bT +bT +bT +bT +bT +ct +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(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 +bT +cc +cc +cd +cc +cc +cc +cc +cc +cc +cc +cc +bT +ab +ab +bT +jS +jS +jS +jS +jS +jS +jS +jS +cd +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(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 +bT +cc +cc +cd +cc +cc +cc +cc +cc +cc +cc +cc +bT +ab +ab +bT +jS +jS +jS +jS +jS +jS +jS +jS +cd +cc +cc +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(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 +bS +bT +bT +bT +bT +bT +bT +bT +ct +cc +cc +cc +bT +ab +ab +bT +jS +jS +jS +ct +bT +bT +bT +bT +bT +bT +bT +bS +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(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 +bS +bT +bT +bT +bT +bT +cc +cc +cc +bT +ab +ab +bT +jS +jS +jS +bT +bT +bT +bT +bT +bS +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(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 +ct +bT +bT +bT +bT +cc +cc +cc +bT +ab +ab +bT +jS +jS +jS +bT +bT +bT +bT +ct +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(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 +dE +dY +ek +el +bT +cc +cc +cc +bT +ab +ab +bT +jS +jS +jS +bT +kd +ki +kr +kw +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(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 +dF +dZ +el +el +bT +cc +cc +cc +bT +ab +ab +bT +jS +jS +jS +bT +kd +kd +kq +kv +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(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 +dG +dY +ek +el +bT +cc +cc +cc +bT +ab +ab +bT +jS +jS +jS +bT +kd +ki +kr +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(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 +dF +dZ +el +el +bT +cc +cc +cc +bT +ab +ab +bT +jS +jU +jS +bT +kd +kd +kq +kd +ab +ab +kE +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ix +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(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 +dG +dY +ek +el +bT +cc +cr +cc +bT +ab +ab +bT +jT +jS +jS +bT +kd +ki +kd +ix +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(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 +dF +dZ +el +el +bT +cc +kl +cr +bT +ab +ab +bT +jS +jS +jS +bT +kd +kd +ix +kJ +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(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 +dG +dY +ek +el +bT +cc +cc +cc +bT +ab +ab +bT +jS +jT +jS +kb +kd +kk +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(167,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 +dF +dZ +el +el +bT +cc +cc +cc +bT +ab +ab +bT +jS +jS +jS +cZ +kd +kI +kF +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ix +ix +iF +iF +iz +iz +iN +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(168,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 +dG +dY +ek +el +bT +cc +it +cc +bT +ab +ab +bT +jS +jW +jS +cZ +ke +ix +ab +ab +ab +ab +ab +ab +kE +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ix +iC +iC +iC +iC +iC +iK +iz +iN +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(169,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 +dF +dZ +el +el +bT +cc +cc +cc +bT +ab +ab +bT +jS +jS +jS +kb +kd +ix +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +iz +iB +iC +iC +iG +iC +iC +iC +iB +iz +iN +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(170,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 +dG +dY +ek +el +bT +cc +cc +cc +bT +ab +ab +bT +jS +jT +jS +kb +kd +ix +ix +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +iC +iD +iC +iC +iC +iC +iC +iB +iz +iN +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(171,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 +dF +dZ +el +el +cd +cc +cc +cc +bT +ab +ab +bT +jS +jS +jS +cd +kd +kJ +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +iC +iC +iC +iC +iC +iC +iC +iC +iR +iS +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(172,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 +dG +dY +ek +el +bT +cc +cc +cc +bT +ab +ab +bT +jU +jS +jS +bT +kd +ix +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ix +iC +iC +iC +iC +iC +iC +iC +iR +iS +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(173,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 +dF +dZ +el +el +bT +cc +cc +cc +bT +ab +ab +bT +jS +jT +jS +bT +kd +kK +ab +ab +ab +ab +kF +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ix +ab +ab +ab +ix +iC +iC +iC +iC +iC +iC +iR +iS +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(174,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 +dG +dY +ek +el +bT +cc +cc +cc +bT +ab +ab +bT +jS +jS +jS +bT +kd +kd +ab +ab +kE +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ix +ab +ix +iC +iC +iC +iC +iC +iR +iS +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(175,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 +dF +dZ +el +el +bT +cc +cc +cc +bT +ab +ab +bT +jS +jS +jS +bT +kd +kk +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +iC +ix +iC +iC +iC +iC +iC +iB +iz +iO +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(176,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 +dG +dY +ek +el +bT +cc +cc +cc +bT +ab +ab +bT +jS +jS +jS +bT +kd +ko +ix +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +iy +ab +ix +iB +iC +iC +iC +iG +iC +iC +iB +iz +iO +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(177,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 +dF +dZ +el +el +bT +cc +cc +cc +bT +ab +ab +bT +jS +jS +jS +bT +kd +kd +kd +ky +ab +ab +kE +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +iA +iz +iC +iC +iC +iC +iC +iB +iz +iO +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(178,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 +dG +dY +ek +el +bT +cc +cc +cc +bT +ab +ab +bT +jS +jS +jS +bT +kd +ko +kr +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +iA +iz +iz +iF +iF +iz +iz +iO +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(179,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 +dF +dZ +el +el +bT +cc +cc +cc +bT +ab +ab +bT +jS +jS +jS +bT +kd +kd +kq +kv +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(180,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 +dG +dY +ek +el +bT +cc +cc +cc +bT +ab +ab +bT +jS +jS +jS +bT +kd +ko +kr +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ix +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(181,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 +dF +dZ +el +el +bT +cc +cc +cc +bT +ab +ab +bT +jS +jS +jS +bT +kd +kd +kq +kv +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(182,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 +dH +dY +ek +el +bT +cc +cc +cc +bT +ab +ab +bT +jS +jS +jS +bT +kd +ko +kr +kz +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(183,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 +ct +bT +bT +bT +bT +cc +cc +cc +bT +ab +ab +bT +jS +jS +jS +bT +bT +bT +bT +ct +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(184,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 +av +aB +aB +aE +aE +aB +aB +aB +aB +aB +aB +aB +aB +aB +aB +aB +aB +aB +aB +aB +aB +aB +aB +bq +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bS +bT +bT +bT +bT +bT +cc +cc +cc +bT +ab +ab +bT +jS +jS +jS +bT +bT +bT +bT +bT +bS +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(185,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 +aw +aC +aD +aD +aD +aI +aB +aT +aD +aT +aD +aT +aD +aB +aJ +aJ +bl +aJ +aJ +aJ +aB +aT +aT +aB +aB +bq +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bS +bT +bT +bT +bT +bT +bT +bT +ct +cc +cc +cc +bT +ab +ab +bT +jS +jS +jS +ct +bT +bT +bT +bT +bT +bT +bT +bS +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(186,1,1) = {" +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 +ax +aC +aD +aD +br +aI +aB +aD +aD +aD +aD +aD +aD +aB +aJ +aD +aD +aD +aD +aD +aB +aD +aD +ew +bu +aB +aB +aB +aB +bq +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bT +cc +cc +cc +cQ +cc +cc +cc +cc +cc +cc +cc +bT +ab +ab +bT +jS +jS +jS +jS +jS +jS +jS +jS +jS +jS +jS +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(187,1,1) = {" +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 +ax +aC +aD +aD +aD +aJ +aB +aD +aD +aD +db +aD +aD +aB +aJ +aD +aD +aD +aD +aD +aB +aD +aD +ew +bu +aB +aB +aB +aB +by +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bT +cc +cm +cc +cc +cc +cc +cc +cc +cc +cc +cc +bT +ab +ab +bT +jS +jS +jS +jS +jS +jS +jS +jS +jS +jS +jS +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(188,1,1) = {" +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 +ax +aC +aD +aD +aD +aJ +aB +aD +aD +aD +aD +aD +aD +aB +aJ +aD +aD +aD +ef +aD +aB +aD +aD +aD +bv +aB +aB +aB +aB +aB +bq +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bT +cm +cn +cp +cp +cn +cc +dJ +cc +cc +fr +cc +bT +ab +ab +bT +jS +jS +jS +jS +jS +jS +jS +jS +jS +jS +jS +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(189,1,1) = {" +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 +ax +aC +aD +aD +aD +aJ +aB +aT +aD +aT +aD +aD +aD +aB +aJ +aJ +aJ +aJ +aD +aD +aB +aD +ef +aD +aB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bH +bM +bM +bM +bM +bM +bM +bM +bM +dq +cm +hR +cc +cc +cc +cc +cc +cc +bT +ab +ab +bT +jS +jS +jS +jS +jS +jS +jS +jS +jS +jS +jS +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(190,1,1) = {" +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 +ax +aC +aD +aD +aD +aJ +aB +aB +aB +aB +aB +bd +bd +aB +aB +aB +aB +aB +bd +bd +aB +aD +aD +aD +aB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bI +bN +fe +bQ +bQ +bQ +bO +bO +dc +bM +ch +cp +cc +cc +cQ +cc +cc +cc +bT +ab +ab +bT +jS +jS +jS +jS +jS +jU +jS +jS +jS +jS +jS +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(191,1,1) = {" +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 +ax +aC +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aE +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bJ +bO +bO +bO +bO +bO +gJ +bO +bO +dr +cn +cp +cn +cc +jz +cc +cc +cc +bT +ab +ab +bT +jS +jS +jS +jS +jS +jS +jS +kA +jS +jS +jS +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +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 +"} +(192,1,1) = {" +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 +ax +aC +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +aE +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bJ +bO +bO +bO +bO +bO +hy +bO +bO +dr +ca +ea +cc +cc +cc +cc +cc +cQ +bT +ab +ab +bT +jS +jS +jS +jS +jS +jS +jS +jS +jS +jS +jS +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +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 +"} +(193,1,1) = {" +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 +ax +aC +aD +aD +aD +aJ +aB +aB +aB +aB +aB +bd +bd +aB +aB +aB +aB +aB +bd +bd +aB +aD +aD +aD +aB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bK +bP +bR +bR +bR +bR +dN +kj +bO +bM +dI +cc +ca +cc +cc +dJ +cc +cc +bT +ab +ab +bT +jS +jS +jS +jS +jS +jS +jS +jS +jS +jS +jS +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +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 +"} +(194,1,1) = {" +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 +ax +aC +aD +aD +aD +aJ +aB +aT +aD +aT +aD +aD +aD +aB +aJ +aJ +aJ +aJ +aD +aD +aB +aD +aD +aD +aB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bL +bM +bM +bM +bM +bM +bM +bM +bM +ds +cc +cn +cp +cQ +cc +cc +cc +cc +bT +ab +ab +bT +jS +jS +jS +jS +jS +jS +jS +jS +jS +jS +jS +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +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 +"} +(195,1,1) = {" +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 +ax +aC +aD +aD +br +aJ +aB +aD +aD +aD +aD +aD +aD +aB +aJ +aD +aD +aD +aD +aD +aB +aD +db +aD +bw +aB +aB +aB +aB +aB +bs +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bT +cc +cN +cc +cc +cc +cc +cc +hR +cc +cc +cc +bT +ab +ab +bT +jS +jU +jS +jS +jS +jS +jS +jS +jS +jS +jS +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +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 +"} +(196,1,1) = {" +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 +ax +aC +aD +aD +aD +aJ +aB +aD +aD +aD +br +aD +aD +aB +aJ +aD +db +aD +aD +aD +aB +aD +aD +ew +bu +aB +aB +aB +aB +by +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bT +cp +cc +cc +dJ +cc +cc +cc +cc +cc +cc +fr +bT +ab +ab +bT +jS +jS +jS +jS +jS +jS +jS +jS +jS +jS +jS +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +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 +"} +(197,1,1) = {" +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 +ax +aC +aD +aD +aD +aJ +aB +aD +aD +aD +aD +aD +aD +aB +aJ +aD +aD +aD +aD +aD +aB +aD +aD +ew +bu +aB +aB +aB +aB +bs +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bT +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +cc +bT +ab +ab +bT +jS +jS +jS +jS +jS +jS +jS +jS +jS +jS +jS +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +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 +"} +(198,1,1) = {" +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 +ay +aC +aD +aD +aD +aJ +aB +aT +aD +aT +aD +aT +aD +aB +bi +aJ +aJ +aJ +aJ +aJ +aB +aT +aT +aB +aB +bs +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bT +cY +dd +cJ +cY +eb +eb +eb +dd +cJ +cY +dd +bT +ab +ab +bT +cY +dd +cJ +cY +eb +eb +eb +dd +cJ +cY +dd +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +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 +jk +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +"} +(199,1,1) = {" +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 +az +aB +aB +aE +aE +aB +aB +aB +aB +aB +aB +aB +aB +aB +aB +aB +aB +aB +aB +aB +aB +aB +aB +bs +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bT +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +bT +ab +ab +bT +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +cZ +bT +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +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 +jk +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +"} +(200,1,1) = {" +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 +bS +cZ +de +cZ +de +cZ +de +cZ +de +cZ +de +cZ +bS +ab +ab +bS +cZ +de +cZ +de +cZ +de +cZ +de +cZ +de +cZ +bS +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +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 +jk +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +"} +(201,1,1) = {" +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 +ab +ab +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 +ab +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 +jk +jk +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +"} +(202,1,1) = {" +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 +ab +ab +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 +ab +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 +jk +jk +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +"} +(203,1,1) = {" +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 +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +jk +jk +jk +jk +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +"} +(204,1,1) = {" +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 +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +jk +jk +jk +jk +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +"} +(205,1,1) = {" +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 +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +jk +jk +jk +jk +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +"} +(206,1,1) = {" +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 +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +jk +jk +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +"} +(207,1,1) = {" +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 +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +jk +jk +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +"} +(208,1,1) = {" +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 +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +jk +jk +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +"} +(209,1,1) = {" +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 +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +jk +jk +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +"} +(210,1,1) = {" +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 +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +jk +jk +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +"} +(211,1,1) = {" +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 +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(212,1,1) = {" +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 +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(213,1,1) = {" +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 +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(214,1,1) = {" +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 +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(215,1,1) = {" +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 +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(216,1,1) = {" +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 +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(217,1,1) = {" +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 +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(218,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(219,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(220,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(221,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(222,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(223,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(224,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(225,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(226,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(227,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(228,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(229,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +hb +hi +hu +hu +hu +hu +hu +hu +in +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(230,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +hc +hj +hj +hj +hS +hj +hj +hj +hc +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(231,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gP +hc +hk +hk +hk +hT +hk +hk +hk +hc +gP +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(232,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gQ +hc +hk +hk +hk +hk +hk +hk +hk +hc +hG +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(233,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +hc +hk +hk +hk +hk +hk +hk +hk +hc +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(234,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 +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +hc +hk +hk +hk +hk +hk +hk +hk +hc +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(235,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 +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +hc +hk +hk +hk +hk +hk +hk +hk +hc +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +jk +jk +jk +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(236,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 +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +hc +hk +hk +hk +hk +hk +hk +hk +hc +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +jk +jk +jk +jk +jk +jk +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(237,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 +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +hc +hk +hk +hk +hk +hk +hk +hk +hc +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +jk +jk +jk +jk +jk +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +jk +jk +jk +jk +jk +jk +jk +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(238,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 +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +hc +hl +hl +hc +hU +hc +hl +hl +hc +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +jk +jk +jk +aa +jk +jk +jk +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +jk +jk +aa +aa +aa +aa +aa +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(239,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 +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gQ +hm +hv +hG +ab +gQ +hm +hv +hG +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +jk +jk +jk +aa +jk +jk +jk +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +jk +jk +jk +aa +jl +jl +jl +jl +jl +jn +jl +jl +jl +jl +jl +aa +aa +aa +aa +aa +aa +"} +(240,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 +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +jk +jk +jk +aa +aa +aa +aa +jk +jk +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +jk +jk +jk +aa +jl +jm +jm +jm +jm +jm +jm +jm +jm +jm +jl +aa +aa +aa +aa +aa +aa +"} +(241,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 +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +jk +jk +jk +aa +aa +aa +aa +jk +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +jk +jk +jk +aa +jl +jm +jm +jm +jm +jm +jm +jm +jm +jm +jl +aa +aa +aa +aa +aa +aa +"} +(242,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 +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +jk +aa +aa +aa +aa +aa +aa +jk +jk +jk +jk +jk +aa +aa +jk +jk +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +jk +jk +aa +jl +jm +jm +jm +jm +jm +jm +jm +jm +jm +jl +aa +aa +aa +aa +aa +aa +"} +(243,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 +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +jk +aa +aa +aa +aa +aa +aa +jk +jk +jk +jk +jk +jk +jk +jk +jk +jk +jk +jk +jk +jk +jk +jk +jk +jk +aa +jk +jk +jk +aa +jl +jm +jm +jm +jm +jm +jm +jm +jm +jm +jl +aa +aa +aa +aa +aa +aa +"} +(244,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 +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +jk +jk +jk +jk +jk +jk +jk +jk +jk +jk +jk +jk +jk +jk +jk +jk +jk +jk +jk +jk +aa +jl +jm +jm +jm +jm +jm +jm +jm +jm +jm +jl +aa +aa +aa +aa +aa +aa +"} +(245,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 +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +jk +jk +jk +jk +jk +jk +jk +jk +jk +jk +jk +jk +jk +jk +jk +jk +jk +jk +jk +aa +jl +jm +jm +jm +jm +jm +jm +jm +jm +jm +jl +aa +aa +aa +aa +aa +aa +"} +(246,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 +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +jk +jk +jk +jk +jk +jk +jk +jk +aa +aa +aa +jk +jk +jk +jk +aa +aa +jl +jm +jm +jm +jm +jm +jm +jm +jm +jm +jl +aa +aa +aa +aa +aa +aa +"} +(247,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 +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +jl +jm +jm +jm +jm +jm +jm +jm +jm +jm +jl +aa +aa +aa +aa +aa +aa +"} +(248,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +jl +jm +jm +jm +jm +jm +jm +jm +jm +jm +jl +aa +aa +aa +aa +aa +aa +"} +(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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +jl +jm +jm +jm +jm +jm +jm +jm +jm +jm +jl +aa +aa +aa +aa +aa +aa +"} +(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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +jl +jm +jm +jm +jm +jo +jm +jm +jm +jm +jl +aa +aa +aa +aa +aa +aa +"} +(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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +jl +jl +jl +jl +jl +jl +jl +jl +jl +jl +jl +aa +aa +aa +aa +aa +aa +"} +(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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +jk +jk +jk +jk +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} diff --git a/_maps/RandomZLevels/undergroundoutpost45.dmm b/_maps/RandomZLevels/undergroundoutpost45.dmm new file mode 100644 index 0000000..3113d7f --- /dev/null +++ b/_maps/RandomZLevels/undergroundoutpost45.dmm @@ -0,0 +1,83925 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/open/space, +/area/space) +"ab" = ( +/turf/closed/indestructible/riveted, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"ac" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel{ + broken = 1; + dir = 8; + heat_capacity = 1e+006; + icon_state = "damaged2" + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"ad" = ( +/turf/closed/mineral/random/labormineral, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"ae" = ( +/turf/closed/wall/r_wall, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"af" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"ag" = ( +/turf/closed/wall/mineral/titanium, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"ah" = ( +/turf/closed/wall/shuttle{ + icon_state = "swallc1"; + dir = 2 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"ai" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall3"; + dir = 2 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"aj" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel{ + broken = 1; + dir = 8; + heat_capacity = 1e+006; + icon_state = "damaged1" + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"ak" = ( +/obj/machinery/light/small{ + active_power_usage = 0; + dir = 8; + icon_state = "bulb-broken"; + status = 2 + }, +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg1" + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"al" = ( +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg1" + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"am" = ( +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg3" + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"an" = ( +/turf/closed/wall/r_wall/rust, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"ao" = ( +/turf/open/floor/plasteel/black{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"ap" = ( +/obj/machinery/light/small{ + active_power_usage = 0; + dir = 4; + icon_state = "bulb-broken"; + status = 2 + }, +/turf/open/floor/plasteel{ + burnt = 1; + dir = 8; + heat_capacity = 1e+006; + icon_state = "floorscorched2" + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"aq" = ( +/obj/machinery/button/door{ + desc = "A remote control-switch for the elevator doors."; + id = "UO45_Elevator"; + name = "Elevator Doors"; + pixel_x = 6; + pixel_y = -24; + req_access_txt = "0" + }, +/obj/machinery/button/door{ + desc = "A remote control-switch to call the elevator to your level."; + id = "UO45_useless"; + name = "B1"; + pixel_x = -6; + pixel_y = -24; + req_access_txt = "0" + }, +/obj/machinery/button/door{ + desc = "A remote control-switch to call the elevator to your level."; + id = "UO45_useless"; + name = "B2"; + pixel_x = -6; + pixel_y = -34; + req_access_txt = "0" + }, +/turf/open/floor/plasteel{ + broken = 1; + dir = 8; + heat_capacity = 1e+006; + icon_state = "damaged4" + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"ar" = ( +/turf/open/floor/plasteel{ + broken = 1; + dir = 8; + heat_capacity = 1e+006; + icon_state = "damaged3" + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"as" = ( +/obj/machinery/door/poddoor{ + id = "UO45_Elevator" + }, +/turf/open/floor/plasteel/delivery{ + heat_capacity = 1e+006; + name = "floor" + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"at" = ( +/turf/open/floor/plasteel/warning{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"au" = ( +/obj/structure/closet/emcloset, +/obj/item/clothing/mask/breath, +/turf/open/floor/plasteel/black{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"av" = ( +/turf/closed/wall/shuttle{ + icon_state = "swallc3"; + dir = 2 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"aw" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall8"; + dir = 2 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"ax" = ( +/obj/effect/landmark{ + name = "awaystart" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"ay" = ( +/obj/structure/chair/comfy/beige{ + icon_state = "comfychair"; + dir = 4 + }, +/obj/effect/landmark{ + name = "awaystart" + }, +/turf/open/floor/plasteel/grimy{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"az" = ( +/obj/structure/sign/vacuum{ + desc = "A beacon used by a teleporter."; + icon = 'icons/obj/radio.dmi'; + icon_state = "beacon"; + name = "tracking beacon" + }, +/obj/effect/landmark{ + name = "awaystart" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"aA" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall4"; + dir = 2 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"aB" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/effect/landmark{ + name = "awaystart" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"aC" = ( +/turf/closed/wall, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"aD" = ( +/turf/closed/wall/rust, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"aE" = ( +/turf/closed/wall/shuttle{ + icon_state = "swallc4" + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"aF" = ( +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"aG" = ( +/obj/machinery/button/door{ + desc = "A remote control-switch to call the elevator to your level."; + id = "UO45_useless"; + name = "Call Elevator"; + pixel_x = -6; + pixel_y = 24; + req_access_txt = "0" + }, +/obj/machinery/button/door{ + desc = "A remote control-switch for the elevator doors."; + id = "UO45_Elevator"; + name = "Elevator Doors"; + pixel_x = 6; + pixel_y = 24; + req_access_txt = "0" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"aH" = ( +/obj/structure/sign/poster{ + icon_state = "poster2_legit"; + pixel_x = 0; + pixel_y = 32; + serial_number = 2 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"aI" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"aJ" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/black{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"aK" = ( +/obj/structure/closet/emcloset, +/obj/item/clothing/mask/breath, +/obj/structure/sign/poster{ + icon_state = "poster19_legit"; + pixel_x = -32; + pixel_y = 0; + serial_number = 19 + }, +/turf/open/floor/plasteel/black{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"aL" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"aM" = ( +/obj/machinery/vending/cola, +/turf/open/floor/plasteel/black{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"aN" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"aO" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/neutral/corner{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"aP" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"aQ" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"aR" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"aS" = ( +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"aT" = ( +/obj/effect/landmark{ + name = "awaystart" + }, +/turf/open/floor/plasteel/grimy{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"aU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/closet/secure_closet{ + desc = "It's a secure locker for personnel. The first card swiped gains control."; + icon_state = "cabinet"; + locked = 0; + name = "personal closet"; + req_access_txt = "201" + }, +/obj/item/clothing/under/pj/blue, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"aV" = ( +/obj/structure/table/wood, +/obj/item/weapon/newspaper, +/turf/open/floor/plasteel/grimy{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"aW" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola, +/turf/open/floor/plasteel/grimy{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"aX" = ( +/obj/structure/chair/comfy/beige{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/grimy{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"aY" = ( +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"aZ" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/closet/secure_closet{ + desc = "It's a secure locker for personnel. The first card swiped gains control."; + icon_state = "cabinet"; + locked = 0; + name = "personal closet"; + req_access_txt = "201" + }, +/obj/item/clothing/under/suit_jacket/female, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"ba" = ( +/obj/structure/table/wood, +/turf/open/floor/plasteel/grimy{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"bb" = ( +/obj/structure/table/wood, +/obj/item/weapon/book/manual/ripley_build_and_repair, +/turf/open/floor/plasteel/grimy{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"bc" = ( +/obj/structure/chair/comfy/beige{ + dir = 8 + }, +/turf/open/floor/plasteel/grimy{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"bd" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/space, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"be" = ( +/obj/structure/closet/secure_closet{ + icon_state = "hydro"; + locked = 0; + name = "botanist's locker"; + req_access_txt = "201" + }, +/obj/item/weapon/storage/bag/plants/portaseeder, +/obj/item/device/plant_analyzer, +/obj/item/clothing/mask/bandana, +/obj/item/weapon/hatchet, +/turf/open/floor/plasteel/vault{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"bf" = ( +/obj/item/weapon/storage/belt/security, +/obj/item/device/assembly/flash/handheld, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/secure_closet{ + icon_state = "sec"; + locked = 1; + name = "security officer's locker"; + req_access_txt = "201" + }, +/turf/open/floor/plasteel/red/side{ + dir = 9; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"bg" = ( +/turf/open/floor/plasteel/grimy{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"bh" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"bi" = ( +/obj/structure/sink{ + pixel_y = 25 + }, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"bj" = ( +/obj/structure/sink{ + pixel_y = 25 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"bk" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -25; + pixel_y = 0 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"bl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"bm" = ( +/obj/structure/chair/comfy/beige{ + dir = 1; + icon_state = "comfychair" + }, +/turf/open/floor/plasteel/grimy{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"bn" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp/green{ + pixel_x = 1; + pixel_y = 5 + }, +/turf/open/floor/plasteel/grimy{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"bo" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/fancy/cigarettes{ + pixel_y = 2 + }, +/obj/item/weapon/lighter{ + pixel_x = 4; + pixel_y = 2 + }, +/turf/open/floor/plasteel/grimy{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"bp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"bq" = ( +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"br" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "0"; + req_one_access_txt = "0" + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"bs" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"bt" = ( +/obj/machinery/light/small, +/obj/machinery/airalarm{ + dir = 1; + frequency = 1439; + locked = 0; + pixel_y = -23; + req_access = null + }, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"bu" = ( +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"bv" = ( +/obj/machinery/door/airlock{ + name = "Unisex Restrooms"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"bw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/camera{ + c_tag = "Arrivals"; + dir = 8; + network = list("UO45") + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"bx" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"by" = ( +/obj/machinery/door/airlock{ + name = "Unit 2" + }, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"bz" = ( +/obj/machinery/door/airlock{ + name = "Unit 1" + }, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"bA" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"bB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5; + level = 1 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"bC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"bD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10; + level = 1 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"bE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"bF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"bG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"bH" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"bI" = ( +/obj/structure/toilet{ + dir = 1 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"bJ" = ( +/obj/structure/toilet{ + dir = 1 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"bK" = ( +/obj/structure/sign/poster{ + icon_state = "poster2_legit"; + pixel_x = 0; + pixel_y = -32; + serial_number = 2 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"bL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"bM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"bN" = ( +/obj/structure/sign/poster{ + icon_state = "poster2_legit"; + pixel_x = 0; + pixel_y = -32; + serial_number = 2 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"bO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/closed/wall, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"bP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"bQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/rust, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"bR" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/closed/wall, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"bS" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"bT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"bU" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/closed/wall/rust, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"bV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10; + level = 1 + }, +/turf/closed/wall, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"bW" = ( +/obj/structure/glowshroom/single, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 351.9 + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"bX" = ( +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 351.9 + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"bY" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"bZ" = ( +/turf/open/floor/plating{ + burnt = 1; + heat_capacity = 1e+006; + icon_state = "panelscorched" + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"ca" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"cb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"cc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"cd" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"ce" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg1" + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"cf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"cg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "0"; + req_one_access_txt = "0" + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"ch" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"ci" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"cj" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"ck" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + burnt = 1; + heat_capacity = 1e+006; + icon_state = "panelscorched" + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"cl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg2" + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"cm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"cn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg1" + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"co" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/rust, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"cp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"cq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"cr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/rust, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"cs" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"ct" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"cu" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"cv" = ( +/obj/structure/closet, +/obj/item/weapon/storage/box/lights/mixed, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"cw" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/table/wood, +/obj/machinery/newscaster{ + pixel_x = -30; + pixel_y = 0 + }, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"cx" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23; + req_access = null + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"cy" = ( +/obj/structure/closet/secure_closet{ + icon_state = "hydro"; + locked = 0; + name = "botanist's locker"; + req_access_txt = "201" + }, +/obj/item/clothing/suit/apron, +/obj/item/weapon/storage/bag/plants/portaseeder, +/obj/item/clothing/mask/bandana, +/obj/item/weapon/cultivator, +/turf/open/floor/plasteel/vault{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"cz" = ( +/obj/machinery/airalarm{ + dir = 4; + frequency = 1439; + locked = 0; + pixel_x = -23; + pixel_y = 0; + req_access = null + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/filingcabinet, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"cA" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23; + req_access = null + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/chair/wood/normal{ + icon_state = "wooden_chair"; + dir = 4 + }, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"cB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/table/wood, +/obj/machinery/newscaster{ + pixel_x = 30; + pixel_y = 0 + }, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"cC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg3" + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"cD" = ( +/obj/structure/closet/emcloset, +/obj/item/clothing/mask/breath, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"cE" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"cF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/grille, +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg3" + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"cG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg2" + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"cH" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/obj/structure/chair/wood/normal{ + icon_state = "wooden_chair"; + dir = 1 + }, +/obj/machinery/button/door{ + id = "awaydorm2"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 0; + pixel_y = -25; + req_access_txt = "0"; + specialfunctions = 4 + }, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"cI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"cJ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"cK" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"cL" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/machinery/button/door{ + id = "awaydorm1"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 0; + pixel_y = -25; + req_access_txt = "0"; + specialfunctions = 4 + }, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"cM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5; + level = 2 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"cN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"cO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg3" + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"cP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"cQ" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"cR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + burnt = 1; + heat_capacity = 1e+006; + icon_state = "panelscorched" + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"cS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/scrubber, +/obj/structure/window{ + icon_state = "window"; + dir = 8 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"cT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"cU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/reagent_dispensers/fueltank, +/obj/structure/window{ + icon_state = "window"; + dir = 4 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"cV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10; + level = 1 + }, +/turf/closed/wall/rust, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"cW" = ( +/obj/structure/grille, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"cX" = ( +/obj/item/stack/rods, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"cY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/grille, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"cZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock{ + id_tag = "awaydorm2"; + name = "Dorm 2" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"da" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Central Access" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"db" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock{ + id_tag = "awaydorm1"; + name = "Dorm 1" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"dc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/structure/closet, +/obj/item/weapon/poster/contraband, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"dd" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plating{ + burnt = 1; + heat_capacity = 1e+006; + icon_state = "panelscorched" + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"de" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"df" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/rust, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"dg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/item/stack/rods, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"dh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"di" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating{ + burnt = 1; + heat_capacity = 1e+006; + icon_state = "panelscorched" + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"dj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg3" + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"dk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"dl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"dm" = ( +/obj/machinery/firealarm{ + dir = 2; + pixel_x = 0; + pixel_y = 24 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"dn" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"do" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + layer = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/green/corner{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"dp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"dq" = ( +/obj/machinery/vending/hydronutrients, +/turf/open/floor/plasteel/vault{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"dr" = ( +/obj/machinery/vending/hydroseeds{ + slogan_delay = 700 + }, +/turf/open/floor/plasteel/vault{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"ds" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/obj/structure/sign/deathsposal{ + desc = "A warning sign which reads 'DISPOSAL: LEADS TO EXTERIOR'"; + name = "\improper DISPOSAL: LEADS TO EXTERIOR"; + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plasteel/vault{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"dt" = ( +/obj/machinery/seed_extractor, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"du" = ( +/obj/machinery/biogenerator, +/turf/open/floor/plasteel/vault{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"dv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"dw" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 4; + frequency = 1439; + locked = 0; + pixel_x = -23; + pixel_y = 0; + req_access = null + }, +/turf/open/floor/plasteel{ + burnt = 1; + dir = 8; + heat_capacity = 1e+006; + icon_state = "floorscorched1" + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"dx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"dy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"dz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"dA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"dB" = ( +/turf/open/floor/plasteel/green/side{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"dC" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/reagent_dispensers/watertank, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/green/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"dD" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/sink{ + pixel_y = 25 + }, +/turf/open/floor/plasteel/green/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"dE" = ( +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23; + req_access = null + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/green/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"dF" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/green/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"dG" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/green/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"dH" = ( +/obj/structure/disposalpipe/junction{ + dir = 4; + icon_state = "pipe-j2" + }, +/turf/open/floor/plasteel/green/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"dI" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/reagent_containers/glass/bucket, +/turf/open/floor/plasteel/green/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"dJ" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 2; + pixel_x = 0; + pixel_y = 24 + }, +/turf/open/floor/plasteel/green/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"dK" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/sink{ + pixel_y = 25 + }, +/turf/open/floor/plasteel/green/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"dL" = ( +/turf/open/floor/plasteel/green/side{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"dM" = ( +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/monkey, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/monkey, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/monkey, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/monkey, +/obj/structure/closet/secure_closet{ + icon_state = "freezer"; + locked = 0; + name = "meat fridge"; + req_access_txt = "201" + }, +/turf/open/floor/plasteel/showroomfloor{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"dN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + burnt = 1; + heat_capacity = 1e+006; + icon_state = "panelscorched" + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"dO" = ( +/obj/item/weapon/reagent_containers/food/condiment/milk, +/obj/item/weapon/reagent_containers/food/condiment/milk, +/obj/item/weapon/reagent_containers/food/condiment/milk, +/obj/item/weapon/storage/fancy/egg_box, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/secure_closet{ + icon_state = "freezer"; + locked = 0; + name = "refrigerator"; + req_access_txt = "201" + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"dP" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/structure/chair, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = 0; + pixel_y = 30 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"dQ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/red/side{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"dR" = ( +/obj/machinery/door/airlock/security{ + name = "Security Checkpoint"; + req_access_txt = "201" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"dS" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"dT" = ( +/turf/open/floor/plasteel/neutral/side{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"dU" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral/side{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"dV" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"dW" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"dX" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/green/side{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"dY" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/glass{ + name = "Hydroponics"; + req_access_txt = "201" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"dZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"ea" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"eb" = ( +/obj/machinery/hydroponics/constructable, +/turf/open/floor/plasteel/black{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"ec" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"ed" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/door/airlock/command{ + icon_state = "closed"; + lockdownbyai = 0; + locked = 0; + name = "Gateway Chamber"; + req_access_txt = "201" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"ee" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"ef" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance{ + name = "Security Checkpoint Maintenance"; + req_access_txt = "201"; + req_one_access_txt = "0" + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"eg" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"eh" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"ei" = ( +/turf/open/floor/plasteel/red/side{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"ej" = ( +/turf/open/floor/plasteel/red/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"ek" = ( +/turf/open/floor/plasteel/neutral/side{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"el" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"em" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"en" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"eo" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Hydroponics"; + req_access_txt = "201" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"ep" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"eq" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"er" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder, +/turf/open/floor/plasteel/vault{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"es" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/closed/wall, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"et" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg1" + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"eu" = ( +/turf/open/floor/plating{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + icon_plating = "asteroidplating"; + icon_state = "asteroidplating"; + temperature = 363.9 + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"ev" = ( +/obj/item/clothing/under/pj/red, +/obj/structure/closet/secure_closet{ + desc = "It's a secure locker for personnel. The first card swiped gains control."; + icon_state = "cabinet"; + locked = 0; + name = "personal closet"; + req_access_txt = "201" + }, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"ew" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/red/side{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"ex" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/item/weapon/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/weapon/pen, +/obj/machinery/door/window/southleft{ + base_state = "right"; + dir = 8; + icon_state = "right"; + name = "Security Checkpoint"; + req_access_txt = "201" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"ey" = ( +/turf/open/floor/plasteel/red/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"ez" = ( +/obj/structure/chair/office{ + icon_state = "chair"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"eA" = ( +/obj/structure/flora/ausbushes/ppflowers, +/turf/open/floor/grass{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"eB" = ( +/obj/structure/flora/ausbushes/brflowers, +/turf/open/floor/grass{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"eC" = ( +/obj/structure/chair/office{ + icon_state = "chair"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"eD" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"eE" = ( +/obj/structure/table, +/obj/item/weapon/book/manual/hydroponics_pod_people, +/obj/item/weapon/paper/hydroponics, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/vault{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"eF" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"eG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/external, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"eH" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"eI" = ( +/obj/machinery/door/airlock/external, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"eJ" = ( +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 363.9 + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"eK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/table, +/obj/machinery/recharger{ + pixel_y = 4 + }, +/obj/machinery/newscaster/security_unit{ + pixel_x = -30; + pixel_y = 0 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/red/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"eL" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"eM" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/item/weapon/folder/red, +/obj/machinery/door/window/southleft{ + base_state = "left"; + dir = 8; + icon_state = "left"; + name = "Security Checkpoint"; + req_access_txt = "201" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"eN" = ( +/obj/structure/chair/office{ + icon_state = "chair"; + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral/side{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"eO" = ( +/obj/structure/flora/ausbushes/ywflowers, +/turf/open/floor/grass{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"eP" = ( +/turf/open/floor/plasteel/green/corner{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"eQ" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/window/southleft{ + base_state = "left"; + dir = 4; + icon_state = "left"; + name = "Hydroponics Desk"; + req_access_txt = "201" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"eR" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"eS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/reagent_containers/glass/bucket, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"eT" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/green/side{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"eU" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/spray/plantbgone{ + pixel_x = 13; + pixel_y = 5 + }, +/obj/item/weapon/reagent_containers/spray/plantbgone{ + pixel_x = 8; + pixel_y = 8 + }, +/obj/item/weapon/reagent_containers/spray/plantbgone{ + pixel_x = 0; + pixel_y = 3 + }, +/obj/item/weapon/watertank, +/turf/open/floor/plasteel/vault{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"eV" = ( +/obj/structure/closet/emcloset, +/obj/item/clothing/mask/breath, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = -32 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"eW" = ( +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/weapon/book/manual/wiki/security_space_law, +/turf/open/floor/plasteel/red/side{ + dir = 10; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"eX" = ( +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/item/device/radio/off, +/obj/item/weapon/screwdriver{ + pixel_y = 10 + }, +/obj/structure/sign/poster{ + icon_state = "poster21_legit"; + pixel_y = -32; + serial_number = 21 + }, +/turf/open/floor/plasteel/red/side{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"eY" = ( +/obj/machinery/computer/security{ + network = list("UO45") + }, +/turf/open/floor/plasteel/red/side{ + dir = 6; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"eZ" = ( +/turf/open/floor/plasteel/red/corner{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"fa" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral/side{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"fb" = ( +/turf/open/floor/plasteel/green/corner{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"fc" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/green/side{ + dir = 6; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"fd" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/window/southleft{ + base_state = "right"; + dir = 4; + icon_state = "right"; + name = "Hydroponics Desk"; + req_access_txt = "201" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"fe" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/green/side{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"ff" = ( +/turf/open/floor/plasteel/green/side{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"fg" = ( +/obj/machinery/camera{ + c_tag = "Hydroponics"; + dir = 1; + network = list("UO45") + }, +/obj/machinery/power/apc{ + cell_type = 15000; + dir = 2; + locked = 0; + name = "Hydroponics APC"; + pixel_x = 0; + pixel_y = -25; + req_access = null; + start_charge = 100 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plasteel/green/side{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"fh" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = -28 + }, +/turf/open/floor/plasteel/green/side{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"fi" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/green/side{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"fj" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel/green/side{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"fk" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel/green/side{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"fl" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/green/side{ + dir = 6; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"fm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall/rust, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"fn" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 363.9 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"fo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"fp" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"fq" = ( +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"fr" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"fs" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 8; + frequency = 1439; + locked = 0; + pixel_x = 23; + pixel_y = 0; + req_access = null + }, +/turf/open/floor/plasteel/green/side{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"ft" = ( +/obj/structure/closet/crate/hydroponics, +/obj/item/weapon/shovel/spade, +/obj/item/weapon/wrench, +/obj/item/weapon/screwdriver, +/obj/item/weapon/reagent_containers/glass/bucket, +/turf/open/floor/plasteel/black{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"fu" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/black{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"fv" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/vault{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"fw" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/black{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"fx" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance{ + name = "Hydroponics Maintenance"; + req_access_txt = "201" + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"fy" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"fz" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg1" + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"fA" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/obj/structure/chair/wood/normal, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"fB" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"fC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "awaydorm3"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 0; + pixel_y = 25; + req_access_txt = "0"; + specialfunctions = 4 + }, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"fD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock{ + id_tag = "awaydorm3"; + name = "Dorm 3" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"fE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"fF" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"fG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"fH" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"fI" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/structure/sign/poster{ + icon_state = "poster14"; + pixel_x = 32; + pixel_y = 0; + serial_number = 14 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/green/corner{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"fJ" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 363.9 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"fK" = ( +/turf/closed/wall/r_wall, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"fL" = ( +/obj/machinery/smartfridge, +/turf/closed/wall, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"fM" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/window/eastleft{ + dir = 1; + name = "Hydroponics Desk"; + req_access_txt = "201" + }, +/turf/open/floor/plasteel/black{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"fN" = ( +/turf/closed/wall/rust, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"fO" = ( +/turf/closed/wall, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"fP" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg2" + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"fQ" = ( +/obj/structure/table/wood, +/obj/machinery/newscaster{ + pixel_x = 0; + pixel_y = -28 + }, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"fR" = ( +/obj/machinery/light/small, +/obj/machinery/airalarm{ + dir = 1; + frequency = 1439; + locked = 0; + pixel_y = -23; + req_access = null + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/structure/dresser, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"fS" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"fT" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + layer = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"fU" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_x = 0; + pixel_y = -24 + }, +/obj/machinery/camera{ + c_tag = "Central Hallway"; + dir = 1; + network = list("UO45") + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"fV" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = -28 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"fW" = ( +/obj/machinery/vending/snack, +/turf/open/floor/plasteel/black{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"fX" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel/black{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"fY" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/structure/sign/deathsposal{ + desc = "A warning sign which reads 'DISPOSAL: LEADS TO EXTERIOR'"; + name = "\improper DISPOSAL: LEADS TO EXTERIOR"; + pixel_x = 0; + pixel_y = -32 + }, +/turf/open/floor/plasteel/black{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"fZ" = ( +/turf/open/floor/plasteel/showroomfloor{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"ga" = ( +/obj/structure/sink/kitchen{ + pixel_y = 28 + }, +/turf/open/floor/plasteel/showroomfloor{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"gb" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"gc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5; + level = 1 + }, +/turf/closed/wall/r_wall, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"gd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10; + level = 1 + }, +/turf/closed/wall/r_wall, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"ge" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock/glass{ + name = "Central Access" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"gf" = ( +/obj/structure/glowshroom/single, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 363.9 + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"gg" = ( +/turf/closed/wall/r_wall/rust, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"gh" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"gi" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Kitchen Maintenance"; + req_access_txt = "201" + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"gj" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"gk" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"gl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"gm" = ( +/obj/structure/closet/crate{ + desc = "It's a storage unit for kitchen clothes and equipment."; + name = "Kitchen Crate" + }, +/obj/item/weapon/storage/box/mousetraps, +/obj/item/clothing/under/waiter, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/showroomfloor{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"gn" = ( +/obj/item/weapon/tank/internals/air, +/obj/item/clothing/mask/gas, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"go" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/rods, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"gp" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg1" + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"gq" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"gr" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"gs" = ( +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"gt" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"gu" = ( +/obj/machinery/door/airlock{ + name = "Kitchen Cold Room"; + req_access_txt = "201" + }, +/turf/open/floor/plasteel/showroomfloor{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"gv" = ( +/turf/closed/wall/r_wall, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"gw" = ( +/turf/closed/wall/r_wall/rust, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"gx" = ( +/turf/closed/wall/rust, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"gy" = ( +/turf/closed/wall, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"gz" = ( +/turf/closed/wall/r_wall, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"gA" = ( +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"gB" = ( +/obj/machinery/light/small, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 363.9 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"gC" = ( +/obj/machinery/vending/dinnerware, +/turf/open/floor/plasteel/cafeteria{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"gD" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/cafeteria{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"gE" = ( +/obj/structure/sink/kitchen{ + pixel_y = 28 + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"gF" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/donkpockets{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/reagent_containers/glass/beaker{ + pixel_x = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/cafeteria{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"gG" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder, +/turf/open/floor/plasteel/cafeteria{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"gH" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"gI" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/black{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"gJ" = ( +/turf/open/floor/plasteel/black{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"gK" = ( +/turf/closed/wall, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"gL" = ( +/turf/closed/wall/rust, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"gM" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass{ + amount = 16; + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stack/sheet/metal{ + amount = 23 + }, +/turf/open/floor/plasteel/white/side{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"gN" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plasteel/white/side{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"gO" = ( +/turf/open/floor/plasteel/cafeteria{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"gP" = ( +/obj/structure/table, +/obj/machinery/microwave{ + pixel_x = -3; + pixel_y = 6 + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"gQ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg1" + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"gR" = ( +/obj/machinery/gateway{ + dir = 9 + }, +/turf/open/floor/plasteel/vault{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"gS" = ( +/obj/machinery/gateway{ + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"gT" = ( +/obj/machinery/gateway{ + dir = 5 + }, +/turf/open/floor/plasteel/vault{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"gU" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"gV" = ( +/obj/structure/table, +/obj/item/weapon/folder/white, +/turf/open/floor/plasteel/black{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"gW" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/black{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"gX" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"gY" = ( +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23; + req_access = null + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Research Lab"; + dir = 2; + network = list("UO45","UO45R") + }, +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"gZ" = ( +/obj/machinery/firealarm{ + dir = 2; + pixel_x = 0; + pixel_y = 24 + }, +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"ha" = ( +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"hb" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/table/glass, +/obj/item/weapon/reagent_containers/glass/beaker/large{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/reagent_containers/glass/beaker{ + pixel_x = 8; + pixel_y = 2 + }, +/obj/item/weapon/reagent_containers/dropper, +/turf/open/floor/plasteel/white/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"hc" = ( +/turf/closed/wall/r_wall/rust, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"hd" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 363.9 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"he" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 363.9 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"hf" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"hg" = ( +/obj/machinery/airalarm{ + dir = 8; + frequency = 1439; + locked = 0; + pixel_x = 23; + pixel_y = 0; + req_access = null + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"hh" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 363.9 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"hi" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"hj" = ( +/obj/machinery/vending/snack, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"hk" = ( +/obj/machinery/vending/cola, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"hl" = ( +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"hm" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"hn" = ( +/obj/structure/table, +/obj/item/stack/packageWrap, +/obj/item/weapon/reagent_containers/glass/rag, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"ho" = ( +/obj/machinery/vending/boozeomat{ + req_access_txt = "0" + }, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"hp" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -25; + pixel_y = 0 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/cafeteria{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"hq" = ( +/obj/structure/table, +/obj/item/stack/packageWrap, +/obj/item/weapon/reagent_containers/food/condiment/enzyme{ + layer = 5 + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"hr" = ( +/obj/structure/table, +/turf/open/floor/plasteel/cafeteria{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"hs" = ( +/obj/machinery/airalarm{ + dir = 8; + frequency = 1439; + locked = 0; + pixel_x = 23; + pixel_y = 0; + req_access = null + }, +/obj/machinery/camera{ + c_tag = "Kitchen"; + dir = 8; + network = list("UO45") + }, +/obj/structure/table, +/obj/machinery/microwave{ + pixel_x = -3; + pixel_y = 6 + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"ht" = ( +/obj/machinery/gateway{ + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"hu" = ( +/obj/machinery/gateway/centeraway{ + calibrated = 0 + }, +/turf/open/floor/plasteel/black{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"hv" = ( +/obj/machinery/gateway{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"hw" = ( +/obj/structure/chair{ + icon_state = "chair"; + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/black{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"hx" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/structure/chair{ + icon_state = "chair"; + dir = 8 + }, +/turf/open/floor/plasteel/black{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"hy" = ( +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plating{ + burnt = 1; + heat_capacity = 1e+006; + icon_state = "panelscorched" + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"hz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/item/weapon/storage/box/lights/mixed, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"hA" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"hB" = ( +/obj/machinery/r_n_d/destructive_analyzer, +/turf/open/floor/plasteel/warning{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"hC" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"hD" = ( +/obj/machinery/r_n_d/protolathe, +/turf/open/floor/plasteel/warning{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"hE" = ( +/turf/open/floor/plasteel/warnwhite{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"hF" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"hG" = ( +/obj/structure/table/glass, +/obj/item/weapon/stock_parts/manipulator, +/obj/item/weapon/stock_parts/manipulator, +/obj/item/weapon/stock_parts/capacitor, +/obj/item/weapon/stock_parts/capacitor, +/obj/item/weapon/stock_parts/micro_laser, +/obj/item/weapon/stock_parts/micro_laser, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/white/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"hH" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"hI" = ( +/obj/structure/table, +/obj/item/trash/chips, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"hJ" = ( +/obj/structure/chair{ + icon_state = "chair"; + dir = 8 + }, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"hK" = ( +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"hL" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"hM" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/lighter, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"hN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"hO" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"hP" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Kitchen"; + req_access_txt = "201" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"hQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"hR" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/condiment/saltshaker{ + pixel_x = -3; + pixel_y = 0 + }, +/obj/item/weapon/reagent_containers/food/condiment/peppermill{ + pixel_x = 3 + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"hS" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/snacks/mint, +/turf/open/floor/plasteel/cafeteria{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"hT" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"hU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4; + level = 2 + }, +/obj/structure/table, +/obj/item/weapon/book/manual/chef_recipes, +/turf/open/floor/plasteel/cafeteria{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"hV" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4; + level = 2 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"hW" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"hX" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"hY" = ( +/obj/machinery/gateway{ + dir = 10 + }, +/turf/open/floor/plasteel/vault{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"hZ" = ( +/obj/machinery/gateway, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plasteel/vault{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"ia" = ( +/obj/machinery/gateway{ + dir = 6 + }, +/turf/open/floor/plasteel/vault{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"ib" = ( +/obj/structure/chair{ + icon_state = "chair"; + dir = 8 + }, +/turf/open/floor/plasteel/black{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"ic" = ( +/obj/machinery/airalarm{ + dir = 8; + frequency = 1439; + locked = 0; + pixel_x = 23; + pixel_y = 0; + req_access = null + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/chair{ + icon_state = "chair"; + dir = 8 + }, +/turf/open/floor/plasteel/black{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"id" = ( +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"ie" = ( +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"if" = ( +/obj/structure/closet/emcloset, +/obj/item/clothing/mask/breath, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"ig" = ( +/obj/machinery/computer/rdconsole/core{ + id = 3; + req_access = null + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"ih" = ( +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"ii" = ( +/obj/machinery/r_n_d/circuit_imprinter, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"ij" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"ik" = ( +/obj/structure/table/glass, +/obj/item/weapon/stock_parts/console_screen, +/obj/item/weapon/stock_parts/console_screen, +/obj/item/weapon/stock_parts/console_screen, +/obj/item/weapon/stock_parts/matter_bin, +/obj/item/weapon/stock_parts/matter_bin, +/turf/open/floor/plasteel/white/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"il" = ( +/obj/structure/table, +/obj/item/trash/plate, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"im" = ( +/obj/structure/chair{ + icon_state = "chair"; + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"in" = ( +/obj/structure/chair/stool, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"io" = ( +/obj/structure/table, +/obj/item/weapon/book/manual/barman_recipes, +/obj/item/weapon/reagent_containers/food/drinks/shaker, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"ip" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/cafeteria{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"iq" = ( +/obj/structure/table, +/obj/item/weapon/kitchen/rollingpin, +/turf/open/floor/plasteel/cafeteria{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"ir" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/obj/machinery/processor, +/turf/open/floor/plasteel/cafeteria{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"is" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/black{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"it" = ( +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/black{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"iu" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/door/window{ + name = "Gateway Chamber"; + req_access_txt = "201" + }, +/turf/open/floor/plasteel/black{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"iv" = ( +/obj/structure/window/reinforced, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/black{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"iw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/chair{ + icon_state = "chair"; + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/nosmoking_2{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/black{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"ix" = ( +/obj/machinery/door/airlock{ + name = "Emergency Supplies" + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"iy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/structure/table, +/obj/item/stack/cable_coil, +/obj/item/stack/cable_coil{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/stock_parts/scanning_module{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/weapon/stock_parts/scanning_module, +/obj/structure/sign/nosmoking_2{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"iz" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"iA" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"iB" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warnwhite/corner{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"iC" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"iD" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/white/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"iE" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"iF" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"iG" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"iH" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"iI" = ( +/obj/machinery/door/firedoor, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"iJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"iK" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"iL" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/item/clothing/gloves/color/latex, +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"iM" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating{ + burnt = 1; + heat_capacity = 1e+006; + icon_state = "panelscorched" + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"iN" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular, +/obj/structure/sign/biohazard{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"iO" = ( +/obj/structure/table, +/obj/item/device/radio/off, +/obj/item/device/radio/off, +/turf/open/floor/plasteel{ + burnt = 1; + dir = 8; + heat_capacity = 1e+006; + icon_state = "floorscorched1" + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"iP" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"iQ" = ( +/obj/structure/table, +/obj/machinery/recharger, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"iR" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/structure/table, +/obj/item/weapon/paper/pamphlet, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"iS" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"iT" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/chair{ + icon_state = "chair"; + dir = 8 + }, +/turf/open/floor/plasteel/black{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"iU" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/chair{ + icon_state = "chair"; + dir = 8 + }, +/turf/open/floor/plasteel/black{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"iV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"iW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"iX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10; + level = 1 + }, +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"iY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/weapon/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000 + }, +/obj/item/weapon/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"iZ" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"ja" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"jb" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 4; + frequency = 1439; + locked = 0; + pixel_x = -23; + pixel_y = 0; + req_access = null + }, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"jc" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"jd" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/structure/sign/deathsposal{ + desc = "A warning sign which reads 'DISPOSAL: LEADS TO EXTERIOR'"; + name = "\improper DISPOSAL: LEADS TO EXTERIOR"; + pixel_x = 0; + pixel_y = -32 + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"je" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/junction, +/turf/open/floor/plasteel/cafeteria{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"jf" = ( +/obj/structure/closet/secure_closet{ + icon_state = "secure"; + locked = 0; + name = "kitchen Cabinet"; + req_access_txt = "201" + }, +/obj/item/weapon/reagent_containers/food/condiment/flour, +/obj/item/weapon/reagent_containers/food/condiment/flour, +/obj/item/weapon/reagent_containers/food/condiment/sugar, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/cafeteria{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"jg" = ( +/obj/machinery/airalarm{ + dir = 4; + frequency = 1439; + locked = 0; + pixel_x = -23; + pixel_y = 0; + req_access = null + }, +/obj/machinery/camera{ + c_tag = "Gateway Chamber"; + dir = 4; + network = list("UO45","UO45R") + }, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"jh" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"ji" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"jj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"jk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/chair/stool, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"jl" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"jm" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/black{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"jn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"jo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/research{ + name = "Gateway Observation"; + req_access_txt = "201" + }, +/turf/open/floor/plasteel/black{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"jp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"jq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"jr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/table, +/obj/item/weapon/folder/white, +/obj/item/weapon/disk/tech_disk{ + pixel_x = 0; + pixel_y = 0 + }, +/obj/item/weapon/disk/design_disk, +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"js" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"jt" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/glass{ + name = "Central Access" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"ju" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Central Access" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"jv" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"jw" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"jx" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/reagent_containers/food/drinks/beer, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"jy" = ( +/obj/machinery/door/window/southright{ + name = "Bar Door"; + req_access_txt = "201"; + req_one_access_txt = "0" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"jz" = ( +/obj/machinery/camera{ + c_tag = "Bar"; + dir = 8; + network = list("UO45") + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"jA" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/machinery/door/airlock{ + name = "Kitchen"; + req_access_txt = "201" + }, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"jB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"jC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/rust, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"jD" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg2" + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"jE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"jF" = ( +/obj/structure/closet/l3closet/scientist, +/turf/open/floor/plasteel/warning{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"jG" = ( +/obj/structure/closet/l3closet/scientist, +/turf/open/floor/plasteel/warning{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"jH" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"jI" = ( +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"jJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"jK" = ( +/obj/machinery/airalarm{ + dir = 8; + frequency = 1439; + locked = 0; + pixel_x = 23; + pixel_y = 0; + req_access = null + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"jL" = ( +/obj/machinery/light/small, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 363.9 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"jM" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/window/fulltile, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"jN" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/research{ + name = "Research Lab"; + req_access_txt = "201"; + req_one_access_txt = "0" + }, +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"jO" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"jP" = ( +/obj/machinery/light/small, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 363.9 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"jQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"jR" = ( +/obj/structure/closet/emcloset, +/obj/item/clothing/mask/breath, +/obj/structure/sign/poster{ + icon_state = "poster19_legit"; + pixel_x = 0; + pixel_y = 32; + serial_number = 19 + }, +/turf/open/floor/plasteel{ + burnt = 1; + dir = 8; + heat_capacity = 1e+006; + icon_state = "floorscorched1" + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"jS" = ( +/obj/structure/chair{ + icon_state = "chair"; + dir = 4 + }, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"jT" = ( +/obj/structure/table, +/obj/item/weapon/kitchen/fork, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"jU" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"jV" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/power/apc{ + cell_type = 15000; + dir = 1; + locked = 0; + name = "UO45 Bar APC"; + pixel_x = 0; + pixel_y = 25; + req_access = null; + start_charge = 100 + }, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"jW" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"jX" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-j2"; + dir = 2 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"jY" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "0"; + req_one_access_txt = "0" + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"jZ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"ka" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"kb" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg1" + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"kc" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"kd" = ( +/obj/item/weapon/storage/backpack/satchel/tox, +/obj/item/clothing/gloves/color/latex, +/obj/item/clothing/suit/toggle/labcoat/science, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/secure_closet{ + icon_state = "rd"; + locked = 1; + name = "research director's locker"; + req_access_txt = "201" + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"ke" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/turf/open/floor/plasteel/vault{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"kf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"kg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"kh" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + layer = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"ki" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"kj" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"kk" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"kl" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/command{ + icon_state = "closed"; + lockdownbyai = 0; + locked = 0; + name = "Gateway EVA"; + req_access_txt = "201" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"km" = ( +/obj/item/clothing/under/suit_jacket/navy, +/obj/structure/closet/secure_closet{ + desc = "It's a secure locker for personnel. The first card swiped gains control."; + icon_state = "cabinet"; + locked = 0; + name = "personal closet"; + req_access_txt = "201" + }, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"kn" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"ko" = ( +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23; + req_access = null + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"kp" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Diner" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"kq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"kr" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"ks" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"kt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"ku" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"kv" = ( +/obj/structure/closet/emcloset, +/obj/item/clothing/mask/breath, +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg1" + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"kw" = ( +/obj/structure/closet/l3closet, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"kx" = ( +/obj/structure/closet/crate, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/device/multitool, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a1{ + has_gravity = 1; + name = "UO45 Central Hall" + }) +"ky" = ( +/obj/structure/table, +/obj/item/weapon/storage/belt/utility, +/obj/item/clothing/head/welding, +/obj/structure/sign/biohazard{ + pixel_x = 0; + pixel_y = 32 + }, +/obj/item/device/assembly/prox_sensor, +/obj/item/device/assembly/prox_sensor, +/turf/open/floor/plasteel/darkwarning{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"kz" = ( +/obj/structure/sign/securearea{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"kA" = ( +/obj/structure/tank_dispenser/oxygen, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"kB" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"kC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"kD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/sign/securearea{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"kE" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"kF" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/research{ + name = "Research Division Access"; + req_access_txt = "201" + }, +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"kG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"kH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"kI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"kJ" = ( +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23; + req_access = null + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"kK" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"kL" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/research{ + name = "Research Division Access"; + req_access_txt = "201" + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"kM" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"kN" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"kO" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"kP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"kQ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"kR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"kS" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"kT" = ( +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23; + req_access = null + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"kU" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"kV" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"kW" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = 30 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"kX" = ( +/turf/open/floor/plasteel/whitepurple/side{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"kY" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/preopen{ + id = "UO45_biohazard"; + name = "biohazard containment door" + }, +/turf/open/floor/plasteel/delivery{ + heat_capacity = 1e+006; + name = "floor" + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"kZ" = ( +/obj/structure/sink{ + pixel_y = 25 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/nosmoking_2{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 9; + heat_capacity = 1e+006 + }, +/area/space) +"la" = ( +/obj/machinery/shower{ + pixel_y = 15 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"lb" = ( +/obj/structure/sink{ + pixel_y = 25 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"lc" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/sign/science{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/purple/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"ld" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"le" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"lf" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_x = 0; + pixel_y = -24 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"lg" = ( +/obj/machinery/light/small, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"lh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/newscaster{ + pixel_x = 0; + pixel_y = -28 + }, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"li" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"lj" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"lk" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 1; + frequency = 1439; + locked = 0; + pixel_y = -23; + req_access = null + }, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"ll" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"lm" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/junction, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"ln" = ( +/turf/closed/wall/r_wall, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"lo" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/device/multitool, +/obj/structure/sign/nosmoking_2{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/darkwarning{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"lp" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"lq" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"lr" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23; + req_access = null + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Gateway Ready Room"; + dir = 2; + network = list("UO45","UO45R") + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"ls" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"lt" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"lu" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/item/weapon/restraints/handcuffs, +/obj/item/device/assembly/flash/handheld, +/obj/item/weapon/reagent_containers/spray/pepper, +/obj/structure/closet/secure_closet{ + icon_state = "sec"; + locked = 1; + name = "security officer's locker"; + req_access_txt = "201" + }, +/turf/open/floor/plasteel/red/side{ + dir = 6; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"lv" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"lw" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"lx" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/research{ + name = "Research Division Access"; + req_access_txt = "201" + }, +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"ly" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"lz" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"lA" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_x = 0; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Research Division West"; + dir = 1; + network = list("UO45","UO45R") + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"lB" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"lC" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"lD" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/research{ + name = "Research Division Access"; + req_access_txt = "201" + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"lE" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"lF" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"lG" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/light, +/obj/structure/disposalpipe/junction{ + dir = 8; + icon_state = "pipe-j1" + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_x = 0; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"lH" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + cell_type = 15000; + dir = 2; + locked = 0; + name = "UO45 Research Division APC"; + pixel_x = 0; + pixel_y = -25; + req_access = null; + start_charge = 100 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"lI" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"lJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"lK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"lL" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"lM" = ( +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"lN" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_x = 0; + pixel_y = -24 + }, +/obj/machinery/camera{ + c_tag = "Research Division East"; + dir = 1; + network = list("UO45","UO45R") + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"lO" = ( +/obj/machinery/door/airlock/research{ + name = "Research Division Access"; + req_access_txt = "201" + }, +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"lP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/purple/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"lQ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"lR" = ( +/obj/structure/chair{ + icon_state = "chair"; + dir = 8 + }, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"lS" = ( +/obj/structure/chair{ + icon_state = "chair"; + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"lT" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/condiment/saltshaker{ + pixel_x = -3; + pixel_y = 0 + }, +/obj/item/weapon/reagent_containers/food/condiment/peppermill{ + pixel_x = 3 + }, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"lU" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/structure/sign/deathsposal{ + desc = "A warning sign which reads 'DISPOSAL: LEADS TO EXTERIOR'"; + name = "\improper DISPOSAL: LEADS TO EXTERIOR"; + pixel_x = 0; + pixel_y = -32 + }, +/turf/open/floor/plasteel/bar{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"lV" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/glass{ + name = "Diner" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"lW" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock/glass{ + name = "Diner" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"lX" = ( +/obj/structure/closet/crate, +/obj/item/stack/sheet/mineral/plasma{ + amount = 26 + }, +/obj/item/weapon/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000 + }, +/obj/item/weapon/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"lY" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Engineering Secure Storage"; + dir = 2; + network = list("UO45") + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"lZ" = ( +/obj/machinery/suit_storage_unit/engine, +/turf/open/floor/plating/warnplate{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"ma" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/weapon/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000 + }, +/obj/item/stack/cable_coil{ + pixel_x = 3; + pixel_y = -7 + }, +/turf/open/floor/plasteel/darkwarning{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"mb" = ( +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"mc" = ( +/turf/open/floor/plasteel{ + burnt = 1; + dir = 8; + heat_capacity = 1e+006; + icon_state = "floorscorched1" + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"md" = ( +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"me" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"mf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/portable_atmospherics/scrubber, +/obj/structure/window{ + icon_state = "window"; + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"mg" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"mh" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/command{ + name = "Research Director's Office"; + req_access_txt = "201" + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"mi" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "UO45_rdprivacy"; + name = "privacy shutters" + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"mj" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "UO45_rdprivacy"; + name = "privacy shutters" + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"mk" = ( +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"ml" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plasteel/warnwhite{ + dir = 10; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"mm" = ( +/obj/structure/closet/firecloset, +/obj/machinery/light/small, +/obj/structure/sign/securearea{ + pixel_x = 0; + pixel_y = -32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warnwhite{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"mn" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/warnwhite{ + dir = 6; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"mo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/sign/securearea{ + pixel_x = -32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/purple/corner{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"mp" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"mq" = ( +/obj/structure/table, +/obj/item/weapon/newspaper, +/obj/machinery/newscaster{ + pixel_x = 30; + pixel_y = 0 + }, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"mr" = ( +/obj/structure/table/wood, +/obj/machinery/newscaster{ + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"ms" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23; + req_access = null + }, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"mt" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"mu" = ( +/obj/structure/table/wood, +/obj/machinery/newscaster{ + pixel_x = -30; + pixel_y = 0 + }, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"mv" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23; + req_access = null + }, +/obj/structure/chair/wood/normal{ + dir = 8 + }, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"mw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/item/weapon/storage/backpack/satchel/eng, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/mask/gas, +/obj/item/clothing/glasses/meson, +/obj/structure/closet/secure_closet{ + icon_state = "eng_secure"; + locked = 0; + name = "engineer's locker"; + req_access_txt = "201" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"mx" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"my" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"mz" = ( +/obj/structure/closet/crate, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"mA" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"mB" = ( +/obj/structure/table, +/obj/item/weapon/hand_labeler, +/obj/item/device/flashlight, +/obj/item/device/flashlight, +/obj/item/device/flashlight, +/turf/open/floor/plasteel/darkwarning/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"mC" = ( +/turf/open/floor/plasteel/darkwarning{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"mD" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = -28 + }, +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/tank/jetpack/carbondioxide, +/turf/open/floor/plasteel/darkwarning{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"mE" = ( +/obj/structure/cable, +/obj/machinery/power/apc{ + cell_type = 15000; + dir = 2; + locked = 0; + name = "UO45 Gateway APC"; + pixel_x = 0; + pixel_y = -25; + req_access = null; + start_charge = 100 + }, +/obj/machinery/light/small, +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/clothing/shoes/magboots, +/turf/open/floor/plasteel/darkwarning{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"mF" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_x = 0; + pixel_y = -24 + }, +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/clothing/shoes/magboots, +/turf/open/floor/plasteel/darkwarning{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"mG" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plasteel/darkwarning{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"mH" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/darkwarning{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"mI" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 363.9 + }, +/area/awaycontent/a6{ + has_gravity = 1; + name = "UO45 Gateway" + }) +"mJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall/rust, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"mK" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/maintenance{ + name = "Research Maintenance"; + req_access_txt = "201" + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"mL" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"mM" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"mN" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/cafeteria{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"mO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/cafeteria{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"mP" = ( +/turf/open/floor/plasteel/cafeteria{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"mQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/twohanded/required/kirbyplants{ + layer = 5 + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"mR" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/weapon/pen, +/obj/machinery/newscaster{ + pixel_x = -30 + }, +/turf/open/floor/plasteel/red/side{ + dir = 9; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"mS" = ( +/obj/structure/table, +/obj/item/weapon/book/manual/wiki/security_space_law, +/turf/open/floor/plasteel/red/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"mT" = ( +/obj/structure/table, +/obj/machinery/recharger{ + pixel_y = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"mU" = ( +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"mV" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/glass{ + name = "Dormitories" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"mW" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock/glass{ + name = "Dormitories" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"mX" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/machinery/button/door{ + id = "awaydorm5"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 0; + pixel_y = -25; + req_access_txt = "0"; + specialfunctions = 4 + }, +/obj/structure/chair/wood/normal{ + icon_state = "wooden_chair"; + dir = 1 + }, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"mY" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"mZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Air to Distro"; + on = 1 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"na" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"nb" = ( +/obj/machinery/button/door{ + id = "awaydorm7"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 0; + pixel_y = -25; + req_access_txt = "0"; + specialfunctions = 4 + }, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"nc" = ( +/obj/machinery/vending/cola, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral/side{ + dir = 9; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"nd" = ( +/obj/structure/chair/comfy/black{ + icon_state = "comfychair"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"ne" = ( +/obj/structure/table/wood, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"nf" = ( +/obj/structure/chair/comfy/black{ + icon_state = "comfychair"; + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral/side{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"ng" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"nh" = ( +/obj/machinery/door/poddoor{ + id = "UO45_Secure Storage"; + name = "secure storage" + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"ni" = ( +/turf/closed/wall/r_wall/rust, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"nj" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"nk" = ( +/obj/structure/table, +/obj/item/weapon/cartridge/signal/toxins, +/obj/item/weapon/cartridge/signal/toxins{ + pixel_x = -4; + pixel_y = 2 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/cafeteria{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"nl" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/cafeteria{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"nm" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"nn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/chair, +/turf/open/floor/plasteel/cafeteria{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"no" = ( +/obj/machinery/computer/security{ + network = list("UO45") + }, +/turf/open/floor/plasteel/red/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"np" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"nq" = ( +/obj/structure/table, +/obj/machinery/computer/security/telescreen{ + desc = "Used for monitoring the research division and the labs within."; + dir = 8; + name = "research monitor"; + network = list("UO45R") + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/red/side{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"nr" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"ns" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"nt" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + burnt = 1; + heat_capacity = 1e+006; + icon_state = "panelscorched" + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"nu" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"nv" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "0"; + req_one_access_txt = "0" + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"nw" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 9; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"nx" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral/side{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"ny" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel/black{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"nz" = ( +/obj/machinery/vending/cigarette, +/obj/structure/sign/poster{ + icon_state = "poster7"; + pixel_y = 32; + serial_number = 7 + }, +/turf/open/floor/plasteel/black{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"nA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"nB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock{ + id_tag = "awaydorm5"; + name = "Dorm 5" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"nC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock{ + id_tag = "awaydorm7"; + name = "Dorm 7" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"nD" = ( +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"nE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"nF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"nG" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/glass{ + name = "Dormitories" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"nH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"nI" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"nJ" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/darkwarning/corner{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"nK" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel/darkwarning{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"nL" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/darkwarning/corner{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"nM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"nN" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"nO" = ( +/obj/machinery/airalarm{ + dir = 4; + frequency = 1439; + locked = 0; + pixel_x = -23; + pixel_y = 0; + req_access = null + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/table, +/obj/item/device/radio/off, +/obj/item/device/laser_pointer, +/turf/open/floor/plasteel/cafeteria{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"nP" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/item/weapon/folder/white, +/obj/item/weapon/stamp/rd{ + pixel_x = 3; + pixel_y = -2 + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"nQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/cafeteria{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"nR" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/computer/security/telescreen{ + desc = "Used for monitoring the research division and the labs within."; + dir = 2; + name = "research monitor"; + network = list("UO45R") + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"nS" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/table/reinforced, +/obj/item/device/taperecorder{ + pixel_x = -3 + }, +/obj/item/device/paicard{ + pixel_x = 4 + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"nT" = ( +/obj/machinery/airalarm{ + dir = 4; + frequency = 1439; + locked = 0; + pixel_x = -23; + pixel_y = 0; + req_access = null + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/item/device/radio/off, +/obj/item/weapon/screwdriver{ + pixel_y = 10 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"nU" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"nV" = ( +/turf/open/floor/plasteel/red/side{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"nW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"nX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"nY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall/rust, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"nZ" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 4; + frequency = 1439; + locked = 0; + pixel_x = -23; + pixel_y = 0; + req_access = null + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"oa" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"ob" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"oc" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"od" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"oe" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/machinery/camera{ + c_tag = "Dormitories"; + dir = 2; + network = list("UO45") + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"of" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"og" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"oh" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23; + req_access = null + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"oi" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"oj" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"ok" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"ol" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"om" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"on" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"oo" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/junction{ + dir = 2; + icon_state = "pipe-y" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"op" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/glass{ + name = "Dormitories" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"oq" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"or" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-y"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"os" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/darkwarning{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"ot" = ( +/obj/structure/cable, +/obj/machinery/power/smes{ + charge = 1.5e+006; + input_level = 10000; + inputting = 0; + output_level = 7000; + outputting = 1 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"ou" = ( +/obj/structure/cable, +/obj/machinery/power/smes{ + charge = 1.5e+006; + input_level = 30000; + inputting = 0; + output_level = 7000; + outputting = 1 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"ov" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/darkwarning{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"ow" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg3" + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"ox" = ( +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/plasteel/cafeteria{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"oy" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/button/door{ + desc = "A remote control-switch whichs locks the research division down in the event of a biohazard leak or contamination."; + id = "UO45_biohazard"; + name = "Biohazard Door Control"; + pixel_x = 0; + pixel_y = 8; + req_access_txt = "201" + }, +/obj/machinery/button/door{ + desc = "A remote control-switch that controls the privacy shutters."; + id = "UO45_rdprivacy"; + name = "Privacy Shutter Control"; + pixel_x = 0; + pixel_y = -2; + req_access_txt = "201" + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"oz" = ( +/obj/structure/chair/office/light{ + dir = 1; + pixel_y = 3 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/cafeteria{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"oA" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/cafeteria{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"oB" = ( +/obj/machinery/computer/aifixer, +/turf/open/floor/plasteel/cafeteria{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"oC" = ( +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = -30; + pixel_y = 0 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/red/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"oD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"oE" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Security Office"; + req_access_txt = "201" + }, +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"oF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"oG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"oH" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"oI" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"oJ" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral/corner{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"oK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = -28 + }, +/turf/open/floor/plasteel/neutral/side{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"oL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_x = 0; + pixel_y = -24 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"oM" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/neutral/corner{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"oN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"oO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"oP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"oQ" = ( +/obj/machinery/light/small, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"oR" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 6; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"oS" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"oT" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/airalarm{ + dir = 8; + frequency = 1439; + locked = 0; + pixel_x = 23; + pixel_y = 0; + req_access = null + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"oU" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/darkwarning{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"oV" = ( +/obj/machinery/power/terminal{ + icon_state = "term"; + dir = 1 + }, +/obj/machinery/power/port_gen/pacman{ + desc = "A portable generator for emergency backup power."; + name = "P.A.C.M.A.N.-type portable generator" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"oW" = ( +/obj/machinery/power/terminal{ + icon_state = "term"; + dir = 1 + }, +/obj/machinery/power/port_gen/pacman/super{ + desc = "A portable generator for emergency backup power."; + name = "S.U.P.E.R.P.A.C.M.A.N.-type portable generator" + }, +/obj/item/weapon/wrench, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"oX" = ( +/obj/machinery/power/terminal{ + icon_state = "term"; + dir = 1 + }, +/obj/machinery/power/port_gen/pacman{ + desc = "A portable generator for emergency backup power."; + name = "P.A.C.M.A.N.-type portable generator" + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"oY" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/darkwarning{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"oZ" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/engine/air, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"pa" = ( +/obj/machinery/air_sensor{ + frequency = 1441; + id_tag = "UO45_air_sensor" + }, +/turf/open/floor/engine/air, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"pb" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"pc" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg1" + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"pd" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/structure/sign/deathsposal{ + desc = "A warning sign which reads 'DISPOSAL: LEADS TO EXTERIOR'"; + name = "\improper DISPOSAL: LEADS TO EXTERIOR"; + pixel_x = 0; + pixel_y = -32 + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"pe" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/cafeteria{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"pf" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"pg" = ( +/obj/item/weapon/storage/secure/safe{ + pixel_x = 5; + pixel_y = -27 + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"ph" = ( +/obj/structure/filingcabinet, +/turf/open/floor/plasteel/red/side{ + dir = 10; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"pi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/button/door{ + desc = "A remote control-switch whichs locks the research division down in the event of a biohazard leak or contamination."; + id = "UO45_biohazard"; + name = "Biohazard Door Control"; + pixel_x = 0; + pixel_y = -24; + req_access_txt = "201" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/red/side{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"pj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"pk" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg3" + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"pl" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + layer = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral/side{ + dir = 10; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"pm" = ( +/turf/open/floor/plasteel/neutral/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"pn" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"po" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock{ + id_tag = "awaydorm4"; + name = "Dorm 4" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"pp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/rust, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"pq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock{ + id_tag = "awaydorm6"; + name = "Dorm 6" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"pr" = ( +/obj/machinery/door/airlock{ + name = "Unisex Restrooms"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"ps" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "0"; + req_one_access_txt = "0" + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"pt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"pu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 363.9 + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"pv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 363.9 + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"pw" = ( +/obj/machinery/light/small, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 363.9 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"px" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/closed/wall/rust, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"py" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"pz" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/darkwarning/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"pA" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/darkwarning{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"pB" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/darkwarning{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"pC" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel/darkwarning{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"pD" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/darkwarning/corner{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"pE" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume{ + dir = 2; + external_pressure_bound = 0; + frequency = 1441; + icon_state = "in"; + id_tag = "UO45_air_out"; + internal_pressure_bound = 2000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine{ + name = "air floor"; + initial_gas_mix = "n2=10580;o2=2644" + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"pF" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 2; + frequency = 1441; + id = "UO45_air_in" + }, +/turf/open/floor/engine{ + name = "air floor"; + initial_gas_mix = "n2=10580;o2=2644" + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"pG" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"pH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"pI" = ( +/obj/machinery/door/airlock/command{ + name = "Server Room"; + req_access_txt = "201" + }, +/turf/open/floor/plasteel/black{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"pJ" = ( +/obj/machinery/door/airlock{ + name = "Private Restroom" + }, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"pK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"pL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/rust, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"pM" = ( +/obj/machinery/door/airlock/glass_research{ + name = "Research Storage"; + req_access_txt = "201" + }, +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"pN" = ( +/obj/structure/chair/comfy/black, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral/side{ + dir = 10; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"pO" = ( +/obj/structure/chair/comfy/black, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral/side{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"pP" = ( +/obj/structure/chair/comfy/black, +/turf/open/floor/plasteel/neutral/side{ + dir = 6; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"pQ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/obj/machinery/button/door{ + id = "awaydorm4"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + pixel_x = -25; + pixel_y = 0; + req_access_txt = "0"; + specialfunctions = 4 + }, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"pR" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"pS" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/closed/wall, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"pT" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"pU" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/obj/machinery/button/door{ + id = "awaydorm6"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 25; + pixel_y = 0; + req_access_txt = "0"; + specialfunctions = 4 + }, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"pV" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/toilet{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"pW" = ( +/obj/machinery/door/airlock{ + name = "Unit 1" + }, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"pX" = ( +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"pY" = ( +/obj/structure/mirror{ + pixel_x = 28 + }, +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"pZ" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg3" + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"qa" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 363.9 + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"qb" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"qc" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/door/airlock/glass_engineering{ + name = "SMES Room"; + req_access_txt = "201"; + req_one_access_txt = "0" + }, +/turf/open/floor/plasteel/black{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"qd" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/meter{ + layer = 3.3; + name = "Mixed Air Tank Out" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"qe" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/meter{ + layer = 3.3; + name = "Mixed Air Tank In" + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"qf" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating{ + burnt = 1; + heat_capacity = 1e+006; + icon_state = "panelscorched" + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"qg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall/rust, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"qh" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + external_pressure_bound = 120; + initialize_directions = 1; + internal_pressure_bound = 4000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/bluegrid{ + name = "Server Base"; + initial_gas_mix = "n2=500,TEMP=80" + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"qi" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 10 + }, +/turf/open/floor/plasteel/black{ + name = "Server Walkway"; + initial_gas_mix = "n2=500,TEMP=80" + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"qj" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'SERVER ROOM'."; + name = "SERVER ROOM"; + pixel_y = 32 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"qk" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/black{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"ql" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + target_temperature = 80; + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/black{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"qm" = ( +/obj/machinery/light/small, +/obj/structure/sink{ + dir = 8; + icon_state = "sink"; + pixel_x = -11; + pixel_y = 0 + }, +/obj/structure/mirror{ + pixel_x = -28 + }, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"qn" = ( +/obj/structure/toilet{ + icon_state = "toilet00"; + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"qo" = ( +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/weapon/reagent_containers/spray/cleaner, +/obj/item/clothing/glasses/hud/health, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/white/corner{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"qp" = ( +/obj/structure/table, +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23; + req_access = null + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/item/weapon/hand_labeler, +/obj/item/clothing/neck/stethoscope, +/turf/open/floor/plasteel/white/side{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"qq" = ( +/obj/machinery/vending/medical{ + req_access_txt = "201" + }, +/turf/open/floor/plasteel/white/side{ + dir = 6; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"qr" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/white/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"qs" = ( +/obj/structure/chair/wood/normal, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"qt" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 8; + frequency = 1439; + locked = 0; + pixel_x = 23; + pixel_y = 0; + req_access = null + }, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"qu" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/dresser, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"qv" = ( +/obj/machinery/airalarm{ + dir = 8; + frequency = 1439; + locked = 0; + pixel_x = 23; + pixel_y = 0; + req_access = null + }, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"qw" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 4; + frequency = 1439; + locked = 0; + pixel_x = -23; + pixel_y = 0; + req_access = null + }, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"qx" = ( +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"qy" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"qz" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 4 + }, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 363.9 + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"qA" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 363.9 + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"qB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 363.9 + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"qC" = ( +/obj/machinery/vending/cola, +/turf/open/floor/plasteel/black{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"qD" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/black{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"qE" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/computer/monitor{ + name = "primary power monitoring console" + }, +/obj/structure/sign/nosmoking_2{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"qF" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/yellow/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"qG" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 5 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"qH" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"qI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 4; + layer = 2.9 + }, +/obj/structure/closet/secure_closet/engineering_personal{ + req_access = list(201) + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/yellow/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"qJ" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + icon_state = "intact"; + dir = 10 + }, +/obj/machinery/camera{ + c_tag = "Atmospherics"; + dir = 2; + network = list("UO45") + }, +/obj/structure/table, +/obj/item/clothing/gloves/color/yellow, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_y = 5 + }, +/obj/machinery/firealarm{ + dir = 2; + pixel_x = 0; + pixel_y = 24 + }, +/obj/item/device/multitool, +/turf/open/floor/plasteel/yellow/corner{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"qK" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/computer/atmos_control/tank{ + frequency = 1441; + input_tag = "UO45_air_in"; + name = "Mixed Air Supply Control"; + output_tag = "UO45_air_out"; + sensors = list("UO45_air_sensor" = "Tank") + }, +/turf/open/floor/plasteel/arrival{ + dir = 9; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"qL" = ( +/obj/machinery/atmospherics/components/trinary/mixer{ + dir = 1; + node1_concentration = 0.8; + node2_concentration = 0.2; + on = 1; + pixel_x = 0; + pixel_y = 0; + req_access = null; + target_pressure = 4500 + }, +/turf/open/floor/plasteel/arrival{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"qM" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 10; + initialize_directions = 10 + }, +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plasteel/bot{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"qN" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plasteel/bot{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"qO" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"qP" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/airalarm/server{ + dir = 4; + pixel_x = -22; + pixel_y = 0 + }, +/obj/machinery/r_n_d/server/core{ + id_with_download_string = "3"; + id_with_upload_string = "3"; + req_access = null + }, +/turf/open/floor/bluegrid{ + name = "Server Base"; + initial_gas_mix = "n2=500,TEMP=80" + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"qQ" = ( +/obj/machinery/atmospherics/pipe/manifold{ + dir = 8 + }, +/turf/open/floor/plasteel/black{ + name = "Server Walkway"; + initial_gas_mix = "n2=500,TEMP=80" + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"qR" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 4 + }, +/obj/machinery/door/airlock/glass_command{ + name = "Server Room"; + req_access_txt = "201" + }, +/turf/open/floor/plasteel/black{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"qS" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 4 + }, +/turf/open/floor/plasteel/black{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"qT" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple{ + dir = 9 + }, +/obj/structure/chair/office/light, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/black{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"qU" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/white/side{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"qV" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"qW" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/white/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"qX" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating{ + burnt = 1; + heat_capacity = 1e+006; + icon_state = "panelscorched" + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"qY" = ( +/obj/structure/table/wood, +/obj/machinery/newscaster{ + pixel_x = 0; + pixel_y = -28 + }, +/obj/item/weapon/pen, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"qZ" = ( +/obj/structure/chair/wood/normal{ + dir = 8 + }, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"ra" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/toilet{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"rb" = ( +/obj/machinery/door/airlock{ + name = "Unit 2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"rc" = ( +/obj/structure/mirror{ + pixel_x = 28 + }, +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"rd" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"re" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/extinguisher_cabinet{ + pixel_x = -25; + pixel_y = 0 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"rf" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"rg" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"rh" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel{ + burnt = 1; + dir = 8; + heat_capacity = 1e+006; + icon_state = "floorscorched1" + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"ri" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"rj" = ( +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"rk" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + layer = 5 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"rl" = ( +/obj/machinery/firealarm{ + dir = 2; + pixel_x = 0; + pixel_y = 24 + }, +/obj/structure/tank_dispenser{ + pixel_x = -1 + }, +/turf/open/floor/plasteel/red/side{ + dir = 9; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"rm" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/table, +/obj/item/weapon/tank/internals/emergency_oxygen{ + pixel_x = -8; + pixel_y = 0 + }, +/obj/item/weapon/tank/internals/emergency_oxygen{ + pixel_x = -8; + pixel_y = 0 + }, +/obj/item/clothing/mask/breath{ + pixel_x = 4; + pixel_y = 0 + }, +/obj/item/clothing/mask/breath{ + pixel_x = 4; + pixel_y = 0 + }, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/red/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"rn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/structure/table, +/obj/item/weapon/storage/box, +/obj/item/weapon/storage/box, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = 0; + pixel_y = 30 + }, +/turf/open/floor/plasteel/red/side{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"ro" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"rp" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/power/apc{ + cell_type = 15000; + dir = 8; + locked = 1; + name = "UO45 Engineering APC"; + pixel_x = -25; + pixel_y = 0; + req_access = list(201); + start_charge = 100 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"rq" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/visible, +/obj/machinery/meter{ + frequency = 1441; + id_tag = "UO45_distro_meter"; + name = "Distribution Loop" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"rr" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/machinery/button/door{ + desc = "A remote control-switch for the engineering security doors."; + id = "UO45_Engineering"; + name = "Engineering Lockdown"; + pixel_x = 24; + pixel_y = 6; + req_access_txt = "201" + }, +/obj/item/clothing/suit/armor/vest, +/obj/item/clothing/head/helmet, +/obj/structure/closet/secure_closet{ + icon_state = "sec"; + locked = 1; + name = "security officer's locker"; + req_access_txt = "201" + }, +/turf/open/floor/plasteel/red/side{ + dir = 6; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"rs" = ( +/obj/structure/closet/secure_closet{ + desc = "It's a secure locker for personnel. The first card swiped gains control."; + icon_state = "cabinet"; + locked = 0; + name = "personal closet"; + req_access_txt = "201" + }, +/obj/item/clothing/under/pj/red, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"rt" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"ru" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Mix to Exterior"; + on = 1 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"rv" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 9 + }, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"rw" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"rx" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plasteel/bot{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"ry" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg2" + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"rz" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 9 + }, +/turf/open/floor/plasteel/black{ + name = "Server Walkway"; + initial_gas_mix = "n2=500,TEMP=80" + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"rA" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'SERVER ROOM'."; + name = "SERVER ROOM"; + pixel_y = -32 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"rB" = ( +/obj/structure/table, +/obj/item/weapon/folder/white, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/black{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"rC" = ( +/obj/machinery/computer/rdservercontrol, +/turf/open/floor/plasteel/black{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"rD" = ( +/obj/structure/closet/crate, +/obj/item/weapon/storage/box/lights/mixed, +/obj/item/weapon/poster/contraband, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + burnt = 1; + heat_capacity = 1e+006; + icon_state = "panelscorched" + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"rE" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"rF" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4; + level = 2 + }, +/obj/machinery/door/airlock/maintenance{ + name = "Research Maintenance"; + req_access_txt = "201" + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"rG" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/white/side{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"rH" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"rI" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/white{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"rJ" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/gloves{ + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plasteel/white/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"rK" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg1" + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"rL" = ( +/obj/machinery/door/airlock{ + name = "Unisex Showers" + }, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"rM" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + burnt = 1; + heat_capacity = 1e+006; + icon_state = "panelscorched" + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"rN" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Engineering Hallway"; + dir = 4; + network = list("UO45") + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"rO" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"rP" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"rQ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"rR" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"rS" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/yellow/corner{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"rT" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23; + req_access = null + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"rU" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"rV" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"rW" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"rX" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/glass_engineering{ + name = "Engineering Reception"; + req_access_txt = "0" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"rY" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"rZ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"sa" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"sb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/yellow/side{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"sc" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "UO45_EngineeringOffice"; + name = "Privacy Shutters" + }, +/obj/machinery/door/window/southleft{ + base_state = "left"; + dir = 4; + icon_state = "left"; + name = "Engineering Reception"; + req_access_txt = "201" + }, +/obj/item/weapon/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/weapon/pen, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"sd" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"se" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"sf" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/table, +/obj/machinery/recharger{ + pixel_y = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/red/side{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"sg" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/poddoor/preopen{ + id = "UO45_Engineering"; + layer = 2.9; + name = "engineering security door" + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"sh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + icon_state = "intact"; + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"si" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/structure/closet/secure_closet{ + desc = "It's a secure locker for personnel. The first card swiped gains control."; + icon_state = "cabinet"; + locked = 0; + name = "personal closet"; + req_access_txt = "201" + }, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"sj" = ( +/obj/structure/cable, +/obj/machinery/power/apc{ + cell_type = 15000; + dir = 2; + locked = 0; + name = "UO45 Mining APC"; + pixel_x = 0; + pixel_y = -25; + req_access = null; + start_charge = 100 + }, +/obj/machinery/light/small, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/closet/secure_closet/engineering_personal{ + icon_state = "mining"; + locked = 0; + name = "miner's equipment"; + req_access = list(201) + }, +/obj/item/weapon/storage/backpack/satchel/eng, +/obj/item/clothing/gloves/fingerless, +/turf/open/floor/plasteel/brown/corner{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"sk" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Mix to Distro"; + on = 0 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"sl" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 1 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"sm" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"sn" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"so" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"sp" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/green/side{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"sq" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/machinery/meter{ + layer = 3.3 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"sr" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + external_pressure_bound = 0; + frequency = 1441; + id_tag = "UO45_mix_in"; + initialize_directions = 1; + internal_pressure_bound = 4000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine/vacuum, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"ss" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/engine/vacuum, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"st" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"su" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"sv" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/structure/sign/deathsposal{ + desc = "A warning sign which reads 'DISPOSAL: LEADS TO EXTERIOR'"; + name = "\improper DISPOSAL: LEADS TO EXTERIOR"; + pixel_x = 0; + pixel_y = -32 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"sw" = ( +/obj/structure/closet/l3closet, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"sx" = ( +/obj/structure/closet/l3closet, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/white/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"sy" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/toxin{ + pixel_x = 2; + pixel_y = 6 + }, +/obj/item/weapon/storage/firstaid/toxin{ + pixel_x = -2; + pixel_y = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/white/side{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"sz" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 2; + pixel_y = 6 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"sA" = ( +/obj/machinery/shower{ + dir = 4 + }, +/obj/item/weapon/soap/nanotrasen, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"sB" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"sC" = ( +/obj/machinery/shower{ + dir = 8 + }, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"sD" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"sE" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"sF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/caution/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"sG" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/caution/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"sH" = ( +/obj/machinery/light/small, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_x = 0; + pixel_y = -24 + }, +/turf/open/floor/plasteel/caution/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"sI" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/caution/corner{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"sJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"sK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/yellow/side{ + dir = 6; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"sL" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/glass_engineering{ + name = "Engineering Reception"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"sM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"sN" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"sO" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"sP" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "UO45_EngineeringOffice"; + name = "Privacy Shutters" + }, +/obj/machinery/door/window/southleft{ + base_state = "right"; + dir = 4; + icon_state = "right"; + name = "Engineering Reception"; + req_access_txt = "201" + }, +/obj/item/weapon/folder/red, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"sQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/red/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"sR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"sS" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/structure/table, +/obj/item/weapon/book/manual/wiki/security_space_law, +/turf/open/floor/plasteel/red/side{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"sT" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/poddoor/preopen{ + id = "UO45_Engineering"; + layer = 2.9; + name = "engineering security door" + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"sU" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Waste In"; + on = 1 + }, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"sV" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 1 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"sW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"sX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"sY" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 0; + name = "Mix to Filter"; + on = 1 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"sZ" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 6; + initialize_directions = 6 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"ta" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 9 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"tb" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"tc" = ( +/obj/machinery/computer/atmos_control/tank{ + frequency = 1441; + input_tag = "UO45_mix_in"; + name = "Gas Mix Tank Control"; + output_tag = "UO45_mix_in"; + sensors = list("UO45_mix_sensor" = "Tank") + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/green/side{ + dir = 6; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"td" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/meter{ + layer = 3.3 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"te" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 8; + frequency = 1441; + id = "UO45_mix_in" + }, +/turf/open/floor/engine/vacuum, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"tf" = ( +/obj/machinery/air_sensor{ + frequency = 1441; + id_tag = "UO45_mix_sensor" + }, +/turf/open/floor/engine/vacuum, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"tg" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"th" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"ti" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg3" + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"tj" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"tk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"tl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg1" + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"tm" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"tn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"to" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"tp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall/rust, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"tq" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/closed/wall/r_wall/rust, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"tr" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"ts" = ( +/obj/machinery/shower{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"tt" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"tu" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"tv" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 2 + }, +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/plasteel/arrival{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"tw" = ( +/obj/machinery/light/small, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 2 + }, +/obj/structure/window/reinforced{ + dir = 4; + layer = 2.9 + }, +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plasteel/escape{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"tx" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/yellow/side{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"ty" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/structure/sign/securearea{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 6; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"tz" = ( +/obj/machinery/computer/security{ + network = list("UO45") + }, +/obj/machinery/button/door{ + desc = "A remote control-switch for the security privacy shutters."; + id = "UO45_EngineeringOffice"; + name = "Privacy Shutters"; + pixel_x = -24; + pixel_y = 6; + req_access_txt = "201" + }, +/turf/open/floor/plasteel/red/side{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"tA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"tB" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/item/weapon/screwdriver{ + pixel_y = 10 + }, +/obj/item/device/radio/off, +/turf/open/floor/plasteel/red/side{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"tC" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 6 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"tD" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"tE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"tF" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 8 + }, +/obj/machinery/meter{ + frequency = 1441; + id_tag = "UO45_waste_meter"; + name = "Waste Loop" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"tG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"tH" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "N2 Outlet Pump"; + on = 1 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"tI" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "O2 Outlet Pump"; + on = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"tJ" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Unfiltered to Mix"; + on = 1 + }, +/obj/structure/sign/nosmoking_2{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"tK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5; + level = 1 + }, +/turf/closed/wall/rust, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"tL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/engineering{ + name = "Engineering Maintenance"; + req_access_txt = "201" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"tM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"tN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/rust, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"tO" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"tP" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"tQ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/junction{ + dir = 4; + icon_state = "pipe-j2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg3" + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"tR" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"tS" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg2" + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"tT" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + burnt = 1; + heat_capacity = 1e+006; + icon_state = "panelscorched" + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"tU" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"tV" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/item/stack/rods, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"tW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"tX" = ( +/obj/machinery/shower{ + dir = 1; + pixel_y = 0 + }, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"tY" = ( +/obj/machinery/shower{ + dir = 1; + pixel_y = 0 + }, +/obj/item/weapon/bikehorn/rubberducky, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"tZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/brown/corner{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"ua" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/brown/corner{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"ub" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 363.9 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"uc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/meter, +/turf/closed/wall/r_wall, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"ud" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/meter, +/turf/closed/wall/r_wall, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"ue" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock/engineering{ + name = "Engineering Foyer"; + req_access_txt = "201" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"uf" = ( +/obj/structure/filingcabinet, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/red/side{ + dir = 10; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"ug" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/red/side{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"ui" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plasteel/bot{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"uj" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "External to Filter"; + on = 1 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"uk" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 0; + name = "Air to External"; + on = 1 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"ul" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 5 + }, +/obj/machinery/airalarm{ + dir = 1; + frequency = 1439; + locked = 0; + pixel_y = -23; + req_access = null + }, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"um" = ( +/obj/machinery/atmospherics/components/trinary/filter{ + dir = 4; + filter_type = "n2"; + on = 1; + req_access = null + }, +/turf/open/floor/plasteel/red/side{ + dir = 10; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"un" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/computer/atmos_control/tank{ + frequency = 1441; + input_tag = "UO45_n2_in"; + name = "Nitrogen Supply Control"; + output_tag = "UO45_n2_out"; + sensors = list("UO45_n2_sensor" = "Tank") + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plasteel/red/side{ + dir = 6; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"uo" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = -30 + }, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"up" = ( +/obj/machinery/atmospherics/components/trinary/filter{ + dir = 4; + filter_type = "o2"; + on = 1; + req_access = null + }, +/turf/open/floor/plasteel/blue/side{ + dir = 10; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"uq" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/computer/atmos_control/tank{ + frequency = 1441; + input_tag = "UO45_o2_in"; + name = "Oxygen Supply Control"; + output_tag = "UO45_o2_out"; + sensors = list("UO45_o2_sensor" = "Tank") + }, +/turf/open/floor/plasteel/blue/side{ + dir = 6; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"ur" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 9 + }, +/turf/open/floor/plasteel{ + burnt = 1; + dir = 8; + heat_capacity = 1e+006; + icon_state = "floorscorched2" + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"us" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plating/warnplate{ + dir = 9; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"ut" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plating/warnplate{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"uu" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 10 + }, +/obj/structure/table/reinforced, +/obj/item/weapon/wrench, +/turf/open/floor/plating/warnplate{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"uv" = ( +/turf/closed/mineral/random/labormineral, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"uw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/external, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"ux" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"uy" = ( +/obj/structure/closet, +/obj/item/weapon/storage/belt/utility, +/turf/open/floor/plating{ + burnt = 1; + heat_capacity = 1e+006; + icon_state = "panelscorched" + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"uz" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "0"; + req_one_access_txt = "0" + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"uA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/computer/atmos_control{ + frequency = 1441; + name = "Tank Monitor"; + sensors = list("UO45_n2_sensor" = "Nitrogen", "UO45_o2_sensor" = "Oxygen", "UO45_mix_sensor" = "Gas Mix Tank") + }, +/turf/open/floor/plasteel/caution{ + dir = 9; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"uB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"uC" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"uD" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"uE" = ( +/turf/closed/wall, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"uF" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Security Office"; + req_access_txt = "201" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"uG" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/door/airlock/engineering{ + name = "Engineering"; + req_access_txt = "201" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"uH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/turf/closed/wall/r_wall, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"uI" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + icon_state = "intact"; + dir = 1; + initialize_directions = 12 + }, +/obj/machinery/meter{ + layer = 3.3 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"uJ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/meter{ + layer = 3.3 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"uK" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/warnplate{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"uL" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 2 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"uM" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 2 + }, +/turf/open/floor/plating/warnplate{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"uN" = ( +/obj/structure/closet/emcloset, +/obj/item/clothing/mask/breath, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = -32; + pixel_y = 0 + }, +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg1" + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"uO" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + burnt = 1; + heat_capacity = 1e+006; + icon_state = "panelscorched" + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"uP" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"uQ" = ( +/obj/structure/chair{ + icon_state = "chair"; + dir = 8 + }, +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg2" + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"uR" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"uS" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg3" + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"uT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/brown/corner{ + dir = 1; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"uU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/computer/atmos_control{ + frequency = 1441; + level = 3; + name = "Distribution and Waste Monitor"; + sensors = list("UO45_air_sensor" = "Mixed Air Supply Tank", "UO45_distro_meter" = "Distribution Loop", "UO45_waste_meter" = "Waste Loop") + }, +/turf/open/floor/plasteel/caution{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"uV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5; + level = 1 + }, +/obj/structure/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"uW" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"uX" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23; + req_access = null + }, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"uY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/sign/securearea{ + pixel_x = 32; + pixel_y = 0 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/yellow/side{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"uZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"va" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/preopen{ + id = "UO45_Engineering"; + name = "engineering security door" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery{ + heat_capacity = 1e+006; + name = "floor" + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"vb" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/door/poddoor/preopen{ + id = "UO45_Engineering"; + name = "engineering security door" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/delivery{ + heat_capacity = 1e+006; + name = "floor" + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"vc" = ( +/obj/machinery/door/firedoor, +/obj/structure/sign/securearea{ + pixel_y = 32 + }, +/obj/machinery/door/poddoor/preopen{ + id = "UO45_Engineering"; + name = "engineering security door" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/delivery{ + heat_capacity = 1e+006; + name = "floor" + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"vd" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 1; + frequency = 1441; + id = "UO45_n2_in" + }, +/turf/open/floor/engine/n2, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"ve" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 0; + frequency = 1441; + id_tag = "UO45_n2_out"; + initialize_directions = 1; + internal_pressure_bound = 4000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine/n2, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"vf" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 1; + frequency = 1441; + id = "UO45_o2_in" + }, +/turf/open/floor/engine/o2, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"vg" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 0; + frequency = 1441; + id_tag = "UO45_o2_out"; + initialize_directions = 1; + internal_pressure_bound = 4000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine/o2, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"vh" = ( +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plating/warnplate{ + dir = 10; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"vi" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating/warnplate{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"vj" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating/warnplate{ + dir = 6; + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"vk" = ( +/obj/machinery/door/airlock/external, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"vl" = ( +/obj/structure/disposaloutlet{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 363.9 + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"vm" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"vn" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/item/stack/rods, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"vo" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg1" + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"vp" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"vq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/brown{ + dir = 10; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"vr" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/brown{ + dir = 6; + heat_capacity = 1e+006 + }, +/area/awaycontent/a2{ + has_gravity = 1; + name = "UO45 Crew Quarters" + }) +"vs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/computer/atmos_alert, +/turf/open/floor/plasteel/caution{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"vt" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"vu" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"vv" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"vw" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"vx" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"vy" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"vz" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/door/airlock/engineering{ + name = "Engineering"; + req_access_txt = "201" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"vA" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"vB" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"vC" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"vD" = ( +/obj/machinery/air_sensor{ + frequency = 1441; + id_tag = "UO45_n2_sensor" + }, +/obj/machinery/light/small, +/turf/open/floor/engine/n2, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"vE" = ( +/obj/machinery/portable_atmospherics/canister/nitrogen, +/turf/open/floor/engine/n2, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"vF" = ( +/obj/machinery/air_sensor{ + frequency = 1441; + id_tag = "UO45_o2_sensor" + }, +/obj/machinery/light/small, +/turf/open/floor/engine/o2, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"vG" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/engine/o2, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"vH" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 363.9 + }, +/area/awaycontent/a5{ + has_gravity = 1; + name = "UO45 Research" + }) +"vI" = ( +/turf/closed/wall/r_wall/rust, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"vJ" = ( +/turf/closed/wall/r_wall, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"vK" = ( +/turf/closed/wall, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"vL" = ( +/turf/closed/wall/rust, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"vM" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Mining Maintenance"; + req_access_txt = "201" + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"vN" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/glass_mining{ + name = "Mining Foyer"; + req_access_txt = "201" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"vO" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock/glass_mining{ + name = "Mining Foyer"; + req_access_txt = "201" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"vP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/computer/station_alert, +/turf/open/floor/plasteel/caution{ + dir = 10; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"vQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/noticeboard{ + dir = 1; + pixel_y = -27 + }, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"vR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"vS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"vT" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"vU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE"; + pixel_y = -32 + }, +/obj/machinery/vending/engivend{ + req_access_txt = "0" + }, +/obj/machinery/camera{ + c_tag = "Engineering Foyer"; + dir = 1; + network = list("UO45") + }, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"vV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/vending/tool, +/obj/structure/sign/poster{ + icon_state = "poster5_legit"; + pixel_x = 0; + pixel_y = -32; + serial_number = 21 + }, +/turf/open/floor/plasteel{ + burnt = 1; + dir = 8; + heat_capacity = 1e+006; + icon_state = "floorscorched2" + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"vW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/weapon/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 6; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"vX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"vY" = ( +/obj/structure/closet/emcloset, +/obj/item/clothing/mask/breath, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"vZ" = ( +/obj/structure/closet/firecloset, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"wa" = ( +/obj/structure/closet/firecloset, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/bot{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"wb" = ( +/obj/structure/table/wood, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"wc" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/chair/wood/normal{ + dir = 8 + }, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"wd" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"we" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"wf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + burnt = 1; + dir = 8; + heat_capacity = 1e+006; + icon_state = "floorscorched1" + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"wg" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + layer = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"wh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"wi" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"wj" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 363.9 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"wk" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"wl" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"wm" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/door/airlock/glass_command{ + name = "Chief Engineer"; + req_access_txt = "201" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"wn" = ( +/turf/closed/wall/rust, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"wp" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"wq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "awaydorm8"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 0; + pixel_y = -25; + req_access_txt = "0"; + specialfunctions = 4 + }, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"wr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock{ + id_tag = "awaydorm8"; + name = "Mining Dorm 1" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"ws" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"wt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"wu" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"wv" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"ww" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"wx" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/structure/sign/deathsposal{ + desc = "A warning sign which reads 'DISPOSAL: LEADS TO EXTERIOR'"; + name = "\improper DISPOSAL: LEADS TO EXTERIOR"; + pixel_x = -32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"wy" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"wz" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"wA" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"wB" = ( +/obj/structure/toilet{ + pixel_y = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"wC" = ( +/obj/machinery/airalarm{ + dir = 4; + frequency = 1439; + locked = 0; + pixel_x = -23; + pixel_y = 0; + req_access = null + }, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"wD" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"wE" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"wF" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"wG" = ( +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/plasteel/neutral{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"wH" = ( +/obj/structure/chair/office, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"wI" = ( +/turf/open/floor/plasteel/neutral{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"wJ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"wK" = ( +/obj/machinery/door/airlock{ + name = "Private Restroom" + }, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"wL" = ( +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/obj/machinery/light/small, +/obj/structure/mirror{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/freezer{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"wM" = ( +/obj/structure/chair/wood/normal, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"wN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "awaydorm9"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 0; + pixel_y = 25; + req_access_txt = "0"; + specialfunctions = 4 + }, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"wO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock{ + id_tag = "awaydorm9"; + name = "Mining Dorm 2" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"wP" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"wQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"wR" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/clipboard, +/obj/item/clothing/glasses/meson{ + pixel_y = 4 + }, +/obj/item/weapon/stamp/ce, +/turf/open/floor/plasteel/neutral{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"wS" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder/yellow, +/turf/open/floor/plasteel/neutral{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"wT" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/weapon/pen, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"wU" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 8; + frequency = 1439; + locked = 0; + pixel_x = 23; + pixel_y = 0; + req_access = null + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"wV" = ( +/obj/machinery/light/small, +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/turf/open/floor/carpet{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"wX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_x = 0; + pixel_y = -24 + }, +/obj/structure/closet/secure_closet/miner{ + req_access = list(201) + }, +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"wZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"xa" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/brown{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"xb" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/fancy/cigarettes{ + pixel_x = -2 + }, +/obj/item/weapon/lighter{ + pixel_x = 4 + }, +/turf/open/floor/plasteel/neutral{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"xc" = ( +/obj/structure/chair/office/light{ + dir = 1; + pixel_y = 3 + }, +/turf/open/floor/plasteel/neutral{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"xd" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/neutral{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"xe" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/obj/machinery/newscaster{ + pixel_y = -28 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/neutral{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"xf" = ( +/obj/structure/bookcase/manuals/engineering, +/turf/open/floor/plasteel/neutral{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"xg" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/mining{ + name = "Processing Area"; + req_access_txt = "201" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"xh" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock/mining{ + name = "Processing Area"; + req_access_txt = "201" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"xi" = ( +/obj/machinery/computer/station_alert, +/turf/open/floor/plasteel/neutral{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"xj" = ( +/obj/machinery/light/small, +/obj/machinery/computer/atmos_alert, +/obj/machinery/button/door{ + desc = "A remote control-switch for the engineering security doors."; + id = "UO45_Engineering"; + name = "Engineering Lockdown"; + pixel_x = -6; + pixel_y = -24; + req_access_txt = "201" + }, +/obj/machinery/button/door{ + desc = "A remote control-switch for secure storage."; + id = "UO45_Secure Storage"; + name = "Engineering Secure Storage"; + pixel_x = 6; + pixel_y = -24; + req_access_txt = "201" + }, +/turf/open/floor/plasteel/neutral{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"xk" = ( +/obj/machinery/computer/monitor{ + name = "primary power monitoring console" + }, +/obj/structure/cable, +/turf/open/floor/plasteel/neutral{ + dir = 2; + heat_capacity = 1e+006 + }, +/area/awaycontent/a3{ + has_gravity = 1; + name = "UO45 Engineering" + }) +"xl" = ( +/obj/machinery/conveyor{ + dir = 2; + id = "UO45_mining" + }, +/turf/open/floor/plating/warnplate{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"xm" = ( +/obj/machinery/mineral/unloading_machine{ + dir = 1; + icon_state = "unloader-corner"; + input_dir = 4; + output_dir = 8 + }, +/turf/open/floor/plating/warnplate{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"xn" = ( +/turf/open/floor/plasteel/loadingarea{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"xo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"xp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/airalarm{ + dir = 8; + frequency = 1439; + locked = 0; + pixel_x = 23; + pixel_y = 0; + req_access = null + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/floorgrime{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"xq" = ( +/obj/machinery/conveyor{ + dir = 2; + id = "UO45_mining" + }, +/obj/structure/sign/nosmoking_2{ + pixel_x = -32 + }, +/turf/open/floor/plating/warnplate{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"xr" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"xs" = ( +/obj/machinery/conveyor_switch/oneway{ + id = "UO45_mining"; + name = "mining conveyor" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"xt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"xu" = ( +/obj/machinery/suit_storage_unit/mining, +/turf/open/floor/plasteel/floorgrime{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"xv" = ( +/obj/structure/table, +/obj/item/weapon/pickaxe, +/obj/item/device/radio/off, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"xw" = ( +/obj/machinery/mineral/processing_unit{ + dir = 1; + output_dir = 2 + }, +/turf/open/floor/plating/warnplate{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"xx" = ( +/obj/machinery/mineral/processing_unit_console{ + machinedir = 8 + }, +/turf/closed/wall/rust, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"xy" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Mining"; + dir = 4; + network = list("UO45") + }, +/turf/open/floor/plasteel/floorgrime{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"xz" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"xA" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"xB" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/floorgrime{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"xC" = ( +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"xD" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/turf/open/floor/plasteel{ + burnt = 1; + dir = 8; + heat_capacity = 1e+006; + icon_state = "floorscorched2" + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"xE" = ( +/obj/machinery/conveyor{ + dir = 2; + id = "UO45_mining" + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating/warnplate{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"xF" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"xG" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"xH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"xI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/glass_mining{ + name = "Mining EVA"; + req_access_txt = "201" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"xJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"xK" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"xL" = ( +/obj/structure/tank_dispenser/oxygen, +/turf/open/floor/plasteel/floorgrime{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"xM" = ( +/obj/machinery/mineral/stacking_unit_console{ + machinedir = 2 + }, +/turf/closed/wall, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"xN" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"xO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"xP" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/closet/crate, +/obj/item/stack/sheet/metal{ + amount = 26 + }, +/obj/item/stack/sheet/glass{ + amount = 19 + }, +/turf/open/floor/plasteel/floorgrime{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"xQ" = ( +/obj/machinery/computer/mech_bay_power_console, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"xR" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/mech_bay_recharge_floor, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"xS" = ( +/obj/machinery/mech_bay_recharge_port{ + icon_state = "recharge_port"; + dir = 8 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"xT" = ( +/obj/machinery/mineral/stacking_machine{ + dir = 1; + input_dir = 8; + output_dir = 4 + }, +/turf/open/floor/plating/warnplate{ + dir = 5; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"xU" = ( +/turf/open/floor/plasteel/loadingarea{ + dir = 4; + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"xV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/floorgrime{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"xW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/structure/closet/crate, +/obj/item/stack/sheet/mineral/plasma{ + amount = 6 + }, +/turf/open/floor/plasteel{ + burnt = 1; + dir = 8; + heat_capacity = 1e+006; + icon_state = "floorscorched1" + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"xX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/external{ + name = "Mining External Airlock"; + req_access_txt = "201" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/floorgrime{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"xY" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"xZ" = ( +/obj/machinery/airalarm{ + dir = 4; + frequency = 1439; + locked = 0; + pixel_x = -23; + pixel_y = 0; + req_access = null + }, +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/floorgrime{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"ya" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel/floorgrime{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"yb" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel{ + burnt = 1; + dir = 8; + heat_capacity = 1e+006; + icon_state = "floorscorched1" + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"yc" = ( +/obj/structure/ore_box, +/turf/open/floor/plasteel/warning{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"yd" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"ye" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 32; + pixel_y = 0 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/warning{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"yf" = ( +/obj/machinery/door/airlock/external{ + name = "Mining External Airlock"; + req_access_txt = "201" + }, +/turf/open/floor/plasteel/asteroid{ + heat_capacity = 1e+006; + temperature = 273.15 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"yg" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 363.9 + }, +/area/awaycontent/a4{ + has_gravity = 1; + name = "UO45 Mining" + }) +"yh" = ( +/obj/structure/ore_box, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 363.9 + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"yi" = ( +/obj/structure/closet/crate, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 363.9 + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"yj" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/obj/structure/bed/nest, +/obj/effect/mob_spawn/human, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 363.9 + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"yk" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/obj/structure/bed/nest, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 363.9 + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"yl" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/obj/structure/glowshroom/single, +/obj/effect/decal/cleanable/blood/gibs/down, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 363.9 + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"ym" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/obj/effect/decal/cleanable/blood/gibs/core, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 363.9 + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"yn" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 363.9 + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"yo" = ( +/obj/structure/alien/weeds, +/obj/structure/alien/resin/wall, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 363.9 + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"yp" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/obj/effect/mob_spawn/human, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 363.9 + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"yq" = ( +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 363.9 + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"yr" = ( +/obj/effect/decal/cleanable/blood/gibs/up, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 363.9 + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"ys" = ( +/obj/structure/alien/weeds, +/obj/structure/bed/nest, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 363.9 + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"yt" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/obj/structure/glowshroom/single, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 363.9 + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"yu" = ( +/obj/structure/alien/resin/wall, +/obj/structure/alien/weeds, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 363.9 + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"yv" = ( +/obj/structure/alien/weeds, +/obj/effect/decal/cleanable/blood/gibs/core, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 363.9 + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"yw" = ( +/obj/structure/alien/weeds, +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 363.9 + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"yx" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 363.9 + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"yy" = ( +/obj/structure/alien/weeds, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 363.9 + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"yz" = ( +/obj/structure/alien/resin/membrane, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 363.9 + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"yA" = ( +/obj/structure/alien/weeds, +/obj/effect/decal/cleanable/blood/gibs/down, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 363.9 + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"yB" = ( +/obj/effect/decal/cleanable/blood/gibs/limb, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 363.9 + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"yC" = ( +/obj/effect/decal/cleanable/blood/splatter, +/obj/effect/mob_spawn/human, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 363.9 + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"yD" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/obj/effect/decal/cleanable/blood/splatter, +/obj/effect/mob_spawn/human, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 363.9 + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"yE" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 363.9 + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"yF" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/obj/effect/decal/cleanable/blood/gibs/down, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 363.9 + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"yG" = ( +/obj/structure/alien/weeds, +/obj/structure/bed/nest, +/obj/effect/mob_spawn/human, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 363.9 + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"yH" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds1" + }, +/obj/effect/decal/cleanable/blood/gibs/down, +/obj/effect/mob_spawn/human, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 363.9 + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"yI" = ( +/obj/structure/alien/weeds, +/obj/effect/mob_spawn/human, +/turf/open/floor/plating/asteroid{ + initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; + heat_capacity = 1e+006; + name = "Cave Floor"; + temperature = 363.9 + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"yJ" = ( +/obj/item/weapon/shard, +/turf/open/floor/plasteel/shuttle{ + icon_state = "floor3" + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"yK" = ( +/obj/item/weapon/shard{ + icon_state = "medium" + }, +/turf/open/floor/plasteel/shuttle{ + icon_state = "floor3" + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"yL" = ( +/obj/item/weapon/shard{ + icon_state = "small" + }, +/turf/open/floor/plasteel/shuttle{ + icon_state = "floor3" + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"yM" = ( +/turf/open/floor/plasteel/shuttle{ + icon_state = "floor3" + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"yN" = ( +/obj/structure/grille{ + density = 0; + broken = 1; + icon_state = "brokengrille" + }, +/turf/open/floor/plasteel/shuttle{ + icon_state = "floor3" + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"yO" = ( +/obj/item/stack/rods, +/turf/open/floor/plasteel/shuttle{ + icon_state = "floor3" + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"yP" = ( +/obj/item/stack/cable_coil, +/turf/open/floor/plasteel/shuttle{ + icon_state = "floor3" + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"yQ" = ( +/obj/item/stack/cable_coil{ + amount = 5 + }, +/turf/open/floor/plasteel/shuttle{ + icon_state = "floor3" + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"yR" = ( +/obj/item/stack/cable_coil{ + amount = 2; + icon_state = "coil_red2"; + item_state = "coil_red2" + }, +/turf/open/floor/plasteel/shuttle{ + icon_state = "floor3" + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"yS" = ( +/obj/item/stack/cable_coil{ + amount = 1; + icon_state = "coil_red1"; + item_state = "coil_red1" + }, +/turf/open/floor/plasteel/shuttle{ + icon_state = "floor3" + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"yT" = ( +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"yU" = ( +/turf/open/floor/plasteel/floorgrime{ + dir = 8; + heat_capacity = 1e+006 + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"yV" = ( +/turf/open/floor/plasteel{ + broken = 1; + dir = 8; + heat_capacity = 1e+006; + icon_state = "damaged1" + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"yW" = ( +/turf/open/floor/plasteel{ + broken = 1; + dir = 8; + heat_capacity = 1e+006; + icon_state = "damaged2" + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"yX" = ( +/turf/open/floor/plasteel{ + broken = 1; + dir = 8; + heat_capacity = 1e+006; + icon_state = "damaged3" + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"yY" = ( +/turf/open/floor/plasteel{ + broken = 1; + dir = 8; + heat_capacity = 1e+006; + icon_state = "damaged4" + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"yZ" = ( +/turf/open/floor/plasteel{ + broken = 1; + dir = 8; + heat_capacity = 1e+006; + icon_state = "damaged5" + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"za" = ( +/turf/open/floor/plasteel{ + burnt = 1; + dir = 8; + heat_capacity = 1e+006; + icon_state = "floorscorched1" + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"zb" = ( +/turf/open/floor/plasteel{ + burnt = 1; + dir = 8; + heat_capacity = 1e+006; + icon_state = "floorscorched2" + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"zc" = ( +/turf/open/floor/plasteel/shuttle, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"zd" = ( +/turf/open/floor/plating{ + heat_capacity = 1e+006 + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"ze" = ( +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg1" + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"zf" = ( +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg2" + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"zg" = ( +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg3" + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) +"zh" = ( +/turf/open/floor/plating{ + burnt = 1; + heat_capacity = 1e+006; + icon_state = "panelscorched" + }, +/area/awaycontent/a7{ + always_unpowered = 1; + has_gravity = 1; + name = "UO45 Caves"; + power_environ = 0; + power_equip = 0; + power_light = 0; + poweralm = 0 + }) + +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(8,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(9,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(10,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(11,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(12,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(13,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(14,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(15,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(16,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(17,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(18,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(19,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(20,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(21,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(22,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(23,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(24,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(25,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(26,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(27,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(28,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(29,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(30,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(31,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(32,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(33,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(34,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(35,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(36,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(37,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(38,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(39,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(40,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(41,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(42,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(43,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(44,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(45,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(46,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(47,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(48,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(49,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(50,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(51,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(52,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(53,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(54,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(55,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(56,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(57,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(58,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(59,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(60,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(61,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(62,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(63,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +yJ +yN +ab +yT +zd +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 +"} +(64,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +yK +yM +ab +yU +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 +"} +(65,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +yL +yO +ab +ab +ze +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 +"} +(66,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +yM +yP +ab +yV +zf +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 +"} +(67,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +yM +yQ +ab +yW +zg +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 +"} +(68,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +yM +yR +ab +yX +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 +"} +(69,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 +ab +ab +ab +ab +ab +ab +ab +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 +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 +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 +ab +ab +ab +ab +ab +ab +ab +yM +yS +ab +yY +zh +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 +"} +(70,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 +ab +ab +ab +ab +ab +ab +ab +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 +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 +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +yZ +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 +"} +(71,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 +ab +ab +ab +ab +ab +ab +ab +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 +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 +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 +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 +"} +(72,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 +ab +ab +ab +ab +ab +ab +ab +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 +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +yj +ym +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +za +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 +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +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 +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ys +yw +yx +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +zb +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 +"} +(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 +ab +ab +ab +ab +ab +ab +ab +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 +gv +gw +gw +gv +gv +gw +gw +gw +gv +gw +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +yt +yn +eJ +yz +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(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 +ab +ab +ab +ab +ab +ab +ab +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 +gv +gI +gI +gJ +gJ +is +iN +jg +jF +gv +gK +gK +gL +gK +gK +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 +ad +ad +ad +ad +ad +ad +ad +yx +eJ +yB +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +zc +zc +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 +"} +(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 +ab +ab +ab +ab +ab +ab +ab +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 +gv +gJ +gR +ht +hY +it +iO +jh +jG +gw +ky +lo +ma +mB +gK +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 +ad +ad +ad +ad +ad +ad +ad +ad +eJ +eJ +yr +ad +yF +yG +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(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 +ab +ab +ab +ab +ab +ab +ab +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 +gv +gJ +gS +hu +hZ +iu +iP +ji +iP +ed +iP +lp +jI +mC +gL +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +yC +eJ +yE +yv +yH +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(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 +ab +ab +ab +ab +ab +ab +ab +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 +gw +gJ +gT +hv +ia +iv +iQ +jj +jH +gv +kz +lq +jH +mD +gL +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 +ad +ad +ad +yj +ym +yo +yu +ad +ad +ad +eJ +yx +eJ +yz +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(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 +ab +ab +ab +ab +ab +ab +ab +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 +gv +gJ +gI +gJ +gJ +it +iR +jk +jI +gv +gK +lr +iP +mE +gK +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 +ad +ad +yj +yk +yn +yp +yo +ad +ad +ad +gf +eJ +yq +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(80,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 +ab +ab +ab +ab +ab +ab +ab +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 +gv +gv +gU +gU +gU +gU +iS +jl +gv +gv +kA +ls +mb +mF +gv +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 +ad +ad +ad +yl +eJ +yq +yv +ad +ad +yz +eJ +eJ +yz +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(81,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +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 +gK +gV +hw +ib +ib +iT +jm +gK +ke +kB +lt +mb +mG +gw +eJ +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 +ad +ad +ad +eJ +eJ +eJ +yy +ad +yD +eJ +eJ +ad +ad +ad +ad +ad +yG +yy +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(82,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +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 +gL +gW +hx +ic +iw +iU +jn +gL +ke +kC +ls +mc +mH +gw +eJ +eJ +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 +ad +ad +ad +yr +yn +yy +yn +yx +eJ +eJ +ad +ad +ad +ad +yI +yv +yA +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(83,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +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 +gK +gK +gL +gL +gK +iV +jo +gL +gL +iV +kl +gK +gw +gv +eJ +gf +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 +ad +ad +ad +ad +ad +yx +eJ +eJ +eJ +eJ +yC +yz +yr +gf +yq +eJ +yo +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(84,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +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 +gL +hy +id +gK +iW +jp +jJ +kf +kD +lv +md +gU +eJ +eJ +eJ +eJ +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 +ad +ad +ad +ad +yz +eJ +eJ +eJ +yy +eJ +eJ +eJ +eJ +eJ +yo +yu +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(85,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +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 +gK +hz +ie +ix +iX +jq +jK +kg +kE +lw +me +gU +eJ +eJ +eJ +eJ +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 +ad +ad +ad +ad +yp +yq +eJ +yy +yn +yv +eJ +yy +yy +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(86,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +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 +gL +hA +if +gv +gv +gw +gw +gv +kF +lx +gw +gv +mI +eJ +eJ +eJ +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 +ad +ad +ad +ad +yA +yx +eJ +yn +ad +ad +yw +yG +ys +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(87,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +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 +gL +gv +gv +gv +gf +eJ +eJ +gv +kG +ly +gw +eJ +eJ +eJ +eJ +gf +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 +ad +ad +ad +ad +ad +yn +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(88,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +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 +ad +ad +eJ +eJ +eJ +eJ +eJ +gU +kH +ly +gU +eJ +eJ +eJ +eJ +eJ +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 +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +yz +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(89,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +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 +ad +eJ +eJ +eJ +eJ +eJ +eJ +gU +kI +lz +gU +eJ +eJ +eJ +eJ +eJ +gf +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 +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(90,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +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 +ad +gf +eJ +gf +eJ +eJ +eJ +gU +kH +ly +gU +eJ +eJ +eJ +eJ +eJ +eJ +eJ +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 +eJ +eJ +ad +ad +ad +ad +ad +ad +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(91,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +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 +ad +ad +eJ +eJ +eJ +eJ +jL +gw +kJ +lA +gw +mI +eJ +eJ +eJ +eJ +eJ +eJ +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 +eJ +eJ +ad +ad +ad +ad +ad +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(92,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +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 +ad +ad +eJ +eJ +eJ +eJ +eJ +gU +kH +ly +gU +eJ +eJ +gf +eJ +eJ +gf +eJ +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 +eJ +eJ +ad +ad +ad +ad +ad +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(93,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +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 +ad +eJ +gf +eJ +eJ +eJ +eJ +gU +kK +lB +gU +eJ +eJ +eJ +eJ +eJ +eJ +eJ +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 +eJ +eJ +ad +ad +ad +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(94,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +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 +ad +eJ +eJ +eJ +eJ +eJ +eJ +gU +kG +ly +gU +eJ +eJ +eJ +eJ +eJ +eJ +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 +eJ +eJ +ad +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(95,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +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 +ad +ad +eJ +eJ +eJ +eJ +gf +gw +kH +lC +gv +eJ +gf +eJ +eJ +gf +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 +ad +eJ +ad +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(96,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +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 +ad +ad +ad +eJ +gf +eJ +gz +gw +kL +lD +gv +hc +eJ +ad +gz +hc +hc +gy +gy +gx +gx +gx +gy +gx +gy +gy +gy +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 +eJ +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(97,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +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 +gx +gy +gx +gz +gz +hc +gz +gz +kh +kM +lE +mf +mJ +mJ +nM +nM +pb +pG +qf +qO +ry +qO +tg +tK +us +uK +vh +gy +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 +eJ +eJ +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 +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 +"} +(98,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +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 +gx +gX +hB +ig +iy +iY +jr +jM +ki +kN +lF +mg +mK +nj +nN +ow +pc +pH +qg +pH +qg +qg +th +tL +ut +uL +vi +gx +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 +eJ +eJ +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 +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 +"} +(99,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +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 +gy +gY +hC +ih +iz +iZ +js +jN +kj +kO +lG +gy +gz +gz +gz +gz +gz +gz +qh +qP +qh +gz +nt +tM +uu +uM +vj +gx +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 +eJ +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 +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 +"} +(100,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +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 +gx +gy +gZ +hD +ii +iA +ha +gX +jO +kk +kP +lH +gy +kd +nk +nO +ox +pd +gy +qi +qQ +rz +gz +ti +tN +gy +gy +gx +gy +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 +eJ +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 +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 +"} +(101,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +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 +gx +gM +ha +hE +hE +iB +gz +gz +gz +gz +kQ +lI +gy +mM +nl +nl +nl +pe +gy +qj +qR +rA +gz +nu +tN +uv +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 +eJ +eJ +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 +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 +"} +(102,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +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 +gy +gN +gX +hF +ij +iC +hc +eJ +eJ +gz +kR +lJ +mh +mN +nm +nP +oy +mP +pI +qk +qS +rB +hc +nu +tM +gy +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 +eJ +eJ +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 +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 +"} +(103,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +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 +gz +gz +hb +hG +ik +iD +hc +eJ +eJ +hH +kS +lK +mi +mO +nn +nQ +oz +pf +gy +ql +qT +rC +hc +tj +tO +gy +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 +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(104,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +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 +gz +hc +hH +hH +hc +gz +eJ +eJ +hH +kR +lL +mj +mP +mP +nR +oA +pg +gy +gx +gz +gz +gz +tk +tP +gy +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 +eJ +eJ +ad +ad +ad +ad +ad +eJ +gf +eJ +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(105,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +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 +eJ +hd +eJ +eJ +eJ +eJ +eJ +eJ +hH +kR +lM +mj +mQ +mP +nS +oB +oA +pJ +qm +hc +rD +st +tl +tP +gy +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 +eJ +eJ +ad +ad +ad +ad +ad +eJ +eJ +eJ +eJ +gf +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(106,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +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 +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +jP +gz +kT +lN +gx +gy +gx +gx +gx +gy +gy +qn +hc +rE +su +tm +tQ +gx +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 +eJ +eJ +ad +ad +ad +ad +eJ +eJ +eJ +eJ +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(107,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 +ab +ab +ab +ab +ab +ab +ab +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 +eJ +eJ +eJ +gf +eJ +eJ +eJ +eJ +eJ +hH +kR +lM +hH +mR +no +nT +oC +ph +gy +gy +gz +rF +gz +tn +tP +gx +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 +eJ +ad +ad +ad +ad +gf +eJ +eJ +eJ +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(108,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 +ab +ab +ab +ab +ab +ab +ab +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 +gf +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +hH +kU +lM +hH +mS +np +nU +oD +pi +pK +qo +qU +rG +sv +tn +tP +gz +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 +eJ +eJ +ad +ad +ad +eJ +eJ +eJ +eJ +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(109,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 +ab +ab +ab +ab +ab +ab +ab +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 +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +gf +eJ +hH +kV +lM +hH +mT +nq +nV +nV +lu +pL +qp +qV +rH +sw +to +tR +gz +eJ +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 +eJ +ad +ad +ad +ad +eJ +eJ +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(110,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 +ab +ab +ab +ab +ab +ab +ab +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 +aC +aC +aC +aD +aD +aC +aC +aC +aC +ad +ad +ad +ad +ad +ad +ad +eJ +eJ +eJ +eJ +eJ +eJ +gf +eJ +eJ +gz +gz +kW +lM +hH +hH +hH +hH +oE +hH +gx +qq +ha +kP +sx +tn +tP +hc +eJ +eJ +eJ +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 +eJ +eJ +ad +ad +ad +gf +eJ +eJ +gf +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(111,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 +ab +ab +ab +ab +ab +ab +ab +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aC +aD +aD +aD +aC +aC +aC +cu +cD +cW +di +cq +cq +ee +aC +ad +ad +ad +ad +ad +ad +ad +ad +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +gz +gn +kV +ha +mk +mk +mk +mk +mk +mk +pM +ha +ha +rI +sy +tn +tS +hc +hc +hc +vH +eJ +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 +eJ +ad +ad +ad +ad +eJ +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(112,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 +ab +ab +ab +ab +ab +ab +ab +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aC +bq +bq +bq +am +bY +aC +al +bY +cX +cm +ae +ae +ef +ae +an +an +ae +aC +aC +aC +ad +ad +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +gz +iL +kX +kX +kX +mU +nr +mU +mU +kV +jO +qr +qW +rJ +sz +tp +tT +gy +uN +hH +eu +eJ +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 +eJ +eJ +eJ +eJ +eJ +ad +ad +ad +ad +eJ +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(113,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 +ab +ab +ab +ab +ab +ab +ab +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aC +aC +br +aC +aC +aC +bZ +aC +cv +cE +cW +dj +ae +bf +eg +cz +eK +eW +fo +fA +fQ +aC +ad +ad +eJ +eJ +eJ +eJ +eJ +eJ +eJ +ad +gz +gz +kY +kY +kY +gz +hc +hc +gz +hc +gz +gz +gz +gz +gz +tq +tU +uw +uO +vk +eu +eJ +eJ +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 +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +ad +ad +eJ +eJ +gf +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(114,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 +ab +ab +ab +ab +ab +ab +ab +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aC +bi +bs +by +bI +bO +ca +cp +cp +cF +cY +cf +dv +dP +eh +bL +bL +eX +fm +fB +fR +aC +ad +ad +eJ +eJ +eJ +eJ +eJ +eJ +gf +ad +ad +gz +gz +lO +gz +gz +ns +nN +nj +pk +nN +nN +qX +rK +nN +tr +tV +ux +uP +hH +eu +eJ +eJ +eJ +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 +eJ +eJ +eJ +gf +ad +ad +ad +ad +eJ +ad +ad +ad +eJ +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(115,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 +ab +ab +ab +ab +ab +ab +ab +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aC +bj +bt +aC +aC +bP +cb +cq +ct +cG +cq +dk +an +dQ +ei +ew +eL +eY +an +fC +fS +aC +ad +gf +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +ad +gy +kZ +ha +ml +gx +nt +nW +mJ +mJ +nM +mJ +mJ +mJ +mJ +nM +tW +hc +hc +hc +eJ +eJ +eJ +eJ +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 +eJ +eJ +eJ +eJ +ad +ad +ad +ad +ad +ad +eJ +eJ +ad +ad +ad +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(116,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 +ab +ab +ab +ab +ab +ab +ab +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aC +aC +aC +aC +ad +ad +aC +bi +bu +bz +bJ +bQ +cc +aC +aC +aC +ae +br +an +dR +aP +ex +eM +aP +ae +fD +aC +aC +ad +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +ad +gx +la +ha +mm +gy +nu +nX +eJ +eJ +gf +eJ +eJ +eJ +ad +ad +ad +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +gf +eJ +eJ +gf +ad +ad +ad +ad +ad +ad +ad +ad +eJ +ad +ad +ad +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(117,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 +ab +ab +ab +ab +ab +ab +ab +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aC +au +aK +aC +aP +aP +aC +aC +bv +aC +aC +bQ +cd +cr +cw +cH +ae +aF +dw +aS +ej +ey +ey +eZ +bA +fE +fT +aC +ad +ad +eJ +eJ +he +eJ +eJ +eJ +eJ +gf +ad +gy +lb +ha +mn +gy +nu +nY +eJ +eJ +eJ +eJ +eJ +eJ +gf +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +gf +eJ +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 +eJ +ad +ad +ad +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(118,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 +ab +ab +ab +ab +ab +ab +ab +ad +ad +ad +ad +ad +ad +ad +ae +ae +ae +ae +ae +ae +ae +aS +aS +aN +ax +ax +ax +bk +aS +bA +aF +bP +ce +aC +cx +cI +cZ +dl +dx +aS +aS +aS +aS +aS +aS +fE +aS +aC +fO +gr +gr +gr +gg +gr +gr +gr +gg +gg +fK +gy +gy +lO +gy +gx +nv +nY +gr +gr +gr +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +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 +eJ +eJ +ad +eJ +eJ +eJ +ad +ad +ad +ad +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(119,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 +ab +ab +ab +ab +ab +ab +ab +ad +ad +ad +ad +ad +ad +ad +ae +af +ag +ag +ag +af +an +aS +aS +aO +ax +az +aB +bl +bw +bB +bK +bR +cf +cp +aU +cJ +ae +aL +dy +dS +ek +ez +eN +fa +fp +bS +aS +da +gk +gs +gA +gs +hf +gs +gs +iE +ja +jt +jQ +kn +lc +lP +mo +mV +nw +nZ +oF +pl +gr +gr +eJ +gf +eJ +eJ +eJ +gf +eJ +eJ +eJ +eJ +eJ +gf +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 +eJ +ad +eJ +ad +eJ +ad +ad +ad +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(120,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 +ab +ab +ab +ab +ab +ab +ab +ad +ad +ad +ad +ad +ad +ad +ae +ag +aj +ak +aq +ag +an +aF +aS +aP +ay +ay +aT +bm +aC +bC +aS +bQ +cg +ae +ae +ae +ae +aS +aS +dT +el +el +el +el +fq +fF +bL +ge +gl +gt +gk +gs +hg +gk +gk +gA +gA +ju +gs +gs +ld +lQ +gl +mW +nx +oa +ld +pm +pN +gr +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +ad +ad +eJ +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 +eJ +eJ +eJ +ad +eJ +ad +ad +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(121,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 +ab +ab +ab +ab +ab +ab +ab +ad +ad +ad +ad +ad +ad +ad +ae +ag +ac +ao +bY +as +at +aS +aS +aP +aV +ba +bg +bn +aC +bD +bL +bS +ch +cs +aI +aS +da +aS +aS +dT +el +eA +eB +el +fq +fE +fU +ae +fK +gr +gr +gr +fK +gr +gr +gr +gg +gg +jR +gs +ld +gk +mp +fN +ny +ob +ld +gs +pO +gr +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +ad +ad +eJ +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 +eJ +ad +ad +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(122,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 +ab +ab +ab +ab +ab +ab +ab +ad +ad +ad +ad +ad +ad +ad +ae +ag +al +am +ar +as +at +aS +aL +aP +aW +bb +bg +bo +aC +bE +bM +bT +ci +aS +aS +aS +da +aS +aS +dT +el +eB +eO +el +fq +fE +fV +ae +eJ +eJ +eJ +eJ +hh +eJ +eJ +eJ +gf +gg +gg +ko +le +lR +mq +fN +nz +oc +oG +pn +pP +gr +eJ +eJ +gf +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +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 +eJ +ad +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(123,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 +ab +ab +ab +ab +ab +ab +ab +ad +ad +ad +ad +ad +ad +ad +ae +ag +am +ap +fu +ag +ae +aG +aL +aP +aX +bc +bg +bm +aC +bF +aL +bP +cg +aC +aC +aC +aC +dm +aS +dU +el +el +el +el +fq +fE +aF +aP +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +fK +gs +lf +fO +fO +fO +fO +od +oH +fO +fN +fK +gg +gg +eJ +eJ +eJ +eJ +gf +eJ +eJ +eJ +eJ +eJ +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 +eJ +ad +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(124,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 +ab +ab +ab +ab +ab +ab +ab +ad +ad +ad +ad +ad +ad +ad +ae +af +ag +ag +ag +af +an +aH +aS +aQ +aY +aY +bh +bp +bp +bG +bN +bP +cj +cr +aZ +cK +aC +dn +dz +dV +em +eC +eC +aY +fr +fG +fW +aP +eJ +eJ +eJ +gf +eJ +eJ +gf +eJ +eJ +eJ +gr +gk +gs +fN +mr +mX +nA +oe +oI +po +pQ +qs +qY +gg +eJ +eJ +eJ +eJ +eJ +ad +ad +eJ +eJ +eJ +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 +eJ +ad +ad +ad +ad +eJ +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(125,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 +ab +ab +ab +ab +ab +ab +ab +ad +ad +ad +ad +ad +ad +ad +ae +ae +an +ae +ae +ae +ae +aI +aS +aR +aS +aS +aS +aS +bx +bH +aS +bQ +ck +aC +cA +cI +db +bM +dA +dW +en +en +en +en +en +fH +fX +aP +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +gr +gs +gs +fO +ms +mY +nB +of +oJ +fO +pR +qt +mt +gg +eJ +eJ +eJ +eJ +ad +ad +ad +eJ +eJ +eJ +eJ +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 +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(126,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 +ab +ab +ab +ab +ab +ab +ab +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aC +aJ +aM +aC +aP +aP +aP +aP +aC +aC +aD +bU +cl +co +cB +cL +aC +do +dB +dX +dB +dB +eP +fb +fs +fI +fY +an +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +gg +gs +lg +fO +mt +km +fO +og +oK +pp +pS +fO +fO +gg +ad +eJ +eJ +eJ +eJ +ad +eJ +eJ +eJ +eJ +eJ +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 +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(127,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 +ab +ab +ab +ab +ab +ab +ab +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aC +aD +aD +aC +ad +ad +ad +ad +ad +ad +ad +bP +cm +aC +aC +aC +aC +aC +aP +dY +eo +aP +dL +fc +ae +ae +an +an +eJ +eJ +eJ +gf +gg +gr +gr +gr +fK +gg +gg +kp +kp +fN +fN +fO +fN +oh +oL +fN +pT +qu +mu +fO +ad +eJ +eJ +eJ +eJ +gf +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +gf +eJ +eJ +eJ +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 +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(128,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +bP +cn +ct +cC +ct +dc +aD +bd +dZ +aS +aP +eQ +fd +ae +ad +ad +gf +eJ +eJ +eJ +gg +gg +hI +il +iF +jb +jv +jS +hK +hK +fN +mu +na +nA +oi +oI +pq +pU +qv +qZ +fN +ad +ad +gf +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +gf +eJ +eJ +eJ +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 +eJ +eJ +eJ +eJ +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(129,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 +ab +ab +ab +ab +ab +ab +ab +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +bV +co +cp +cp +cM +cm +aD +dC +ea +aS +aS +eR +fe +ae +eJ +eJ +eJ +eJ +eJ +gB +gg +hi +hJ +im +hJ +hK +jw +jT +hK +iH +fO +mv +mY +nC +of +oM +fO +fN +fO +fO +fO +fO +fK +gg +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +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 +eJ +eJ +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(130,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 +ab +ab +ab +ab +ab +ab +ab +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 +ae +cN +dd +dp +dD +bM +ep +aS +aS +ff +aP +eJ +eJ +eJ +eJ +eJ +eJ +gr +hj +hK +hK +hK +iH +hK +hJ +hK +hK +fO +ev +nb +fO +oj +oN +fO +pV +fO +ra +fN +sA +ts +gg +gg +eJ +eJ +vI +vI +vI +vI +vJ +vI +vI +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +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 +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(131,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 +ab +ab +ab +ab +ab +ab +ab +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 +ae +cN +de +aC +dE +eb +eb +eb +eb +ff +aP +eJ +eJ +gf +eJ +eJ +eJ +gr +hk +hL +in +in +hL +iH +jU +kq +lh +fO +fN +fN +fO +ok +oO +fN +pW +fO +rb +fN +sB +pX +tX +gg +eJ +vl +vJ +wb +rs +vK +wM +wb +vI +ad +ad +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +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 +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(132,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 +ab +ab +ab +ab +ab +ab +ab +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 +ae +cN +de +dq +dF +aL +aS +aS +eS +ff +aP +eJ +eJ +eJ +eJ +eJ +eJ +gr +hl +hM +hl +iG +hl +hl +hL +iH +li +lS +fN +nc +nD +ol +oP +pr +pX +qw +pX +rL +pX +pX +tY +gg +gr +vm +vJ +wc +wp +vL +wp +wV +vJ +ad +ad +ad +ad +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +eJ +ad +ad +ad +ad +ad +ad +ad +ad +eJ +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(133,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 +ab +ab +ab +ab +ab +ab +ab +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 +bX +an +cN +de +dr +dG +eb +eb +eb +eb +fe +aP +eJ +eJ +eJ +eJ +eJ +eJ +gr +hm +hN +hK +hK +hK +jx +hL +hK +li +lT +fO +nd +gk +om +oJ +fO +pY +qx +rc +fO +sC +sC +fN +fN +uQ +vn +vK +wd +wq +vL +wN +si +vJ +vJ +vJ +vJ +vI +vI +vJ +vI +eJ +eJ +eJ +eJ +eJ +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +eJ +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(134,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 +ab +ab +ab +ab +ab +ab +ab +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 +bX +bW +ae +cN +df +ds +dH +aS +aS +aS +aS +fg +an +fJ +eJ +eJ +eJ +gf +eJ +gg +hn +hO +hK +hK +hK +jy +hK +kr +li +hJ +fO +ne +nE +on +oQ +fO +fN +fN +fO +fO +fN +fN +fN +uy +uR +vo +vL +we +wr +vL +wO +we +vK +xl +xq +xw +xE +xl +xl +vJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +yh +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +eJ +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +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 +"} +(135,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 +ab +ab +ab +ab +ab +ab +ab +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +bW +bX +bX +an +cN +de +dt +dG +eb +eb +eb +eb +fh +an +an +eJ +eJ +eJ +ad +ad +fK +ho +hO +io +iH +jc +jz +hK +ks +lj +lU +fN +nf +nF +oo +oR +ps +pZ +qy +rd +rM +rd +rd +qy +rd +uS +vp +vM +wf +ws +wC +wt +wX +vK +xm +xr +xx +xr +xM +xT +vI +vI +vI +vI +yg +eJ +eJ +eJ +yi +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +eJ +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(136,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 +ab +ab +ab +ab +ab +ab +ab +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +bX +bX +bX +an +cO +df +du +dI +aS +aS +aS +aS +fi +ft +fK +fK +gg +gg +gg +fK +fK +fO +hP +fN +iI +fO +fO +jV +ks +lk +fO +fO +fO +nG +op +fO +fO +fN +fO +fO +fN +fN +fO +fO +uz +fO +fN +vK +wg +wt +wD +wP +sj +vL +xn +xs +xy +xF +xN +xU +ww +xZ +yc +ww +eu +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(137,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 +ab +ab +ab +ab +ab +ab +ab +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +bX +bX +bX +aP +cP +df +aC +dJ +eb +eb +eb +eb +fj +fu +fL +fZ +gh +gm +fN +gC +gO +hp +hQ +ip +iJ +jd +fO +jW +kt +ll +lV +mx +ng +nH +oq +oS +pt +ja +ja +re +rN +jQ +tt +tZ +tZ +uT +vq +vN +wh +wu +wE +wu +wZ +xg +xo +xo +wu +xG +xO +xV +xX +ya +yd +yf +eu +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +ad +ad +ad +ad +eJ +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(138,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 +ab +ab +ab +ab +ab +ab +ab +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 +bW +bX +aP +cQ +dg +co +dK +ec +eq +eD +en +fk +fv +fM +fZ +fZ +fZ +gu +gD +gO +hq +hR +hr +iK +je +jA +jX +ku +lm +lW +my +my +nI +or +oT +my +my +my +rf +rO +sD +tu +ua +ua +ua +vr +vO +wi +wv +wF +wQ +xa +xh +xp +xt +xz +xH +xP +xW +xY +yb +ye +ww +eu +eJ +eJ +eJ +eJ +eJ +ad +ad +ad +eJ +eJ +eJ +eJ +eJ +eJ +eJ +ad +ad +ad +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +ad +ad +eJ +eJ +gf +ad +ad +ad +ad +ad +ad +ad +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 +"} +(139,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 +ab +ab +ab +ab +ab +ab +ab +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 +bX +bX +an +cR +cc +aC +dL +dB +dB +dB +eT +fl +fw +fN +ga +fZ +dM +fO +gE +gO +hr +hS +iq +gO +gO +jB +jY +fO +fK +gg +gg +gr +gr +gr +gg +gr +gr +gr +fK +rP +sE +gg +gr +gr +gr +fK +vI +vI +ww +ww +ww +vI +vI +vJ +ww +xA +xI +ww +vI +vI +vI +vI +vI +yg +eJ +eJ +eJ +eJ +eJ +ad +ad +ad +ad +eJ +ad +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +ad +ad +eJ +ad +ad +ad +ad +eJ +eJ +eJ +eJ +eJ +gf +eJ +eJ +eJ +eJ +ad +ad +ad +ad +ad +ad +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 +"} +(140,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 +ab +ab +ab +ab +ab +ab +ab +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 +bX +bX +an +cS +ce +aC +be +cy +er +eE +eU +aC +fx +fO +fO +gi +fO +fO +gF +gO +gO +hT +gO +gO +gD +jB +jZ +kv +ae +eJ +eJ +eJ +eJ +eJ +hh +eJ +eJ +eJ +gr +rQ +sF +gr +eJ +eJ +eJ +eJ +eJ +wj +eJ +eJ +eJ +eJ +ad +vJ +xu +xB +xJ +xQ +vI +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +eJ +eJ +eJ +eJ +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +ad +ad +ad +ad +ad +ad +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 +"} +(141,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 +ab +ab +ab +ab +ab +ab +ab +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 +bW +bX +an +cT +cc +aC +aC +aC +aC +aC +aC +aC +fy +bq +bZ +bq +go +fN +gG +gP +hs +hU +ir +dO +jf +jC +ka +kw +an +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +gr +rR +sG +gr +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +ad +vI +xu +xC +xK +xR +vJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +eJ +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +gf +eJ +eJ +eJ +eJ +eJ +eJ +eJ +ad +ad +ad +ad +ad +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 +"} +(142,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 +ab +ab +ab +ab +ab +ab +ab +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 +bX +bX +ae +cU +dh +cq +dN +cC +ct +eF +ct +ct +fz +fP +gb +gj +gp +fO +fN +fN +fN +hV +fO +fN +fO +jC +kb +kx +an +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +gr +rS +sF +gr +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +vI +xv +xD +xL +xS +vI +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +eJ +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +eJ +eJ +eJ +eJ +eJ +eJ +ad +ad +ad +ad +ad +ad +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 +"} +(143,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 +ab +ab +ab +ab +ab +ab +ab +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 +ae +cV +cp +co +co +cp +es +eG +cp +fm +fm +fm +gc +dh +gq +gb +gH +gQ +gb +hW +gH +iM +gb +jD +kc +an +an +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +gB +gg +rT +sH +gg +ub +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +vI +vI +vJ +vI +vJ +vI +eJ +eJ +eJ +eJ +eJ +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +eJ +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +eJ +gf +eJ +ad +ad +ad +ad +ad +ad +ad +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 +"} +(144,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 +ab +ab +ab +ab +ab +ab +ab +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 +ae +et +eH +eV +an +eJ +eJ +gd +fm +fm +fm +dv +dv +fm +hX +fm +fm +fm +jE +an +ae +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +gr +rQ +sF +gr +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(145,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 +ab +ab +ab +ab +ab +ab +ab +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 +ae +aP +eI +aP +an +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +fn +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +qz +gr +rU +sI +gr +qz +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(146,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 +ab +ab +ab +ab +ab +ab +ab +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 +eu +eu +eu +fn +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +qA +rg +rV +sJ +rg +qB +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +eJ +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(147,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 +ab +ab +ab +ab +ab +ab +ab +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 +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +ad +ad +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +ad +eJ +eJ +eJ +eJ +eJ +pu +qa +qB +fK +rW +sK +fK +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +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 +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +eJ +ad +ad +ad +ad +ad +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(148,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 +ab +ab +ab +ab +ab +ab +ab +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 +eJ +eJ +eJ +eJ +eJ +ad +ad +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +ad +ad +ad +eJ +eJ +eJ +eJ +pv +ni +ni +ln +rX +sL +ln +ni +ni +qb +qb +ni +ni +eJ +eJ +eJ +eJ +eJ +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 +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(149,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 +ab +ab +ab +ab +ab +ab +ab +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 +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +ad +ad +ad +eJ +eJ +eJ +eJ +pv +ni +qC +rh +rY +sM +tv +uc +uA +uU +vs +vP +ni +ln +qb +qb +qb +ln +ln +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 +eJ +eJ +eJ +ad +ad +ad +ad +ad +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(150,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 +ab +ab +ab +ab +ab +ab +ab +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 +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +ad +eJ +eJ +eJ +eJ +eJ +pv +qb +qD +ri +rZ +sM +tw +ud +uB +uV +rj +vQ +uE +wx +wG +wR +xb +xi +ni +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 +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(151,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 +ab +ab +ab +ab +ab +ab +ab +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 +eJ +eJ +eJ +eJ +ad +ad +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +pv +qb +qD +rj +sa +sN +tx +ue +uC +uW +vt +vR +wk +wy +wH +wS +xc +xj +ni +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 +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(152,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 +ab +ab +ab +ab +ab +ab +ab +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 +eJ +eJ +eJ +ad +ad +ad +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +pw +ni +ln +rk +sb +sO +ty +ln +uD +sM +vu +vS +wl +wz +wI +wT +xd +xk +ln +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 +eJ +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(153,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 +ab +ab +ab +ab +ab +ab +ab +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 +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +pv +eJ +ni +ni +sc +sP +ln +ln +uE +uX +vv +vT +wm +wA +wJ +wU +xe +ln +ln +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 +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(154,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 +ab +ab +ab +ab +ab +ab +ab +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 +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +ad +ad +ad +eJ +eJ +pv +eJ +ni +rl +sd +sQ +tz +uf +qb +sM +vw +vU +wn +uE +wK +uE +xf +ln +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 +eJ +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(155,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 +ab +ab +ab +ab +ab +ab +ab +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 +ad +ad +ad +eJ +eJ +eJ +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +pv +eJ +ni +rm +se +sR +tA +ug +uF +sR +vx +vV +uE +wB +wL +ln +ln +ni +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 +eJ +eJ +eJ +eJ +eJ +eJ +ad +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(156,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 +ab +ab +ab +ab +ab +ab +ab +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +px +ad +ln +rn +sf +sS +tB +rr +qb +uY +vy +vW +ni +ln +ni +ni +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 +eJ +eJ +eJ +eJ +ad +ad +eJ +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(157,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 +ab +ab +ab +ab +ab +ab +ab +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ln +ni +ni +ln +py +ln +ln +ro +sg +sT +sT +ln +ln +uZ +vz +vX +ni +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 +eJ +ad +ad +ad +ad +eJ +eJ +eJ +eJ +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(158,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 +ab +ab +ab +ab +ab +ab +ab +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 +ad +ad +ad +ad +ad +ad +ad +ad +ln +ln +ln +ln +nJ +os +oU +pz +qb +qE +rp +sh +sU +tC +ui +ln +va +vA +vY +ln +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 +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(159,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 +ab +ab +ab +ab +ab +ab +ab +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 +ad +ad +ad +ad +ad +ad +ad +ad +ln +lX +mz +ln +nK +ot +oV +pA +qb +qF +mL +qH +sV +tD +uj +uG +vb +vB +vZ +ln +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 +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(160,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 +ab +ab +ab +ab +ab +ab +ab +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 +ad +ad +ad +ad +ad +ad +ad +ad +ln +lY +mA +nh +nK +ou +oW +pB +qc +qG +pj +rq +sW +tE +uk +uH +vc +vC +wa +ni +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 +eJ +eJ +eJ +eJ +eJ +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(161,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 +ab +ab +ab +ab +ab +ab +ab +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 +ad +ad +ad +ad +ad +ad +ad +ad +ln +lZ +lZ +ni +nK +ot +oX +pC +qb +mw +mZ +sk +sX +tF +ul +ln +ln +ln +ln +ni +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 +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(162,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 +ab +ab +ab +ab +ab +ab +ab +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 +ad +ad +ad +ad +ad +ad +ad +ad +ln +ln +ln +ni +nL +ov +oY +pD +qb +qI +rt +sl +sY +tG +um +uI +vd +vD +ln +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 +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(163,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 +ab +ab +ab +ab +ab +ab +ab +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ln +ln +ln +ln +ni +ln +qJ +ru +sm +sZ +tH +un +uJ +ve +vE +ln +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 +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(164,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 +ab +ab +ab +ab +ab +ab +ab +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ln +oZ +pE +qd +qK +rv +sn +rt +rj +uo +ni +ln +ln +ln +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 +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(165,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 +ab +ab +ab +ab +ab +ab +ab +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ln +pa +pF +qe +qL +rw +so +ta +rj +up +uI +vf +vF +ln +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 +eJ +gf +ad +ad +ad +ad +ad +ad +ad +ad +ad +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(166,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 +ab +ab +ab +ab +ab +ab +ab +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ln +ln +ln +ln +qM +rx +so +tb +tI +uq +uJ +vg +vG +ln +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +eJ +eJ +eJ +eJ +eJ +eJ +eJ +ad +ad +ad +ad +ad +ad +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(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 +ab +ab +ab +ab +ab +ab +ab +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ln +qN +qN +sp +tc +tJ +ur +ni +ln +ln +ln +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +eJ +gf +eJ +ad +ad +ad +eJ +ad +ad +ad +ad +ad +ad +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(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 +ab +ab +ab +ab +ab +ab +ab +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ln +ln +ln +sq +td +ln +ni +ni +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 +eJ +eJ +eJ +eJ +eJ +gf +eJ +eJ +eJ +ad +ad +ad +ad +ad +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(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 +ab +ab +ab +ab +ab +ab +ab +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ln +sr +te +ln +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 +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +gf +eJ +ad +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(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 +ab +ab +ab +ab +ab +ab +ab +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ni +ss +tf +ni +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 +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(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 +ab +ab +ab +ab +ab +ab +ab +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ni +ni +ln +ni +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 +gf +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +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 +"} +(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 +ab +ab +ab +ab +ab +ab +ab +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 +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 +ad +ad +ad +ad +ad +ad +eJ +gf +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +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 +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 +"} +(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 +ab +ab +ab +ab +ab +ab +ab +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 +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +eJ +gf +eJ +eJ +eJ +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 +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 +"} +(174,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 +ab +ab +ab +ab +ab +ab +ab +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 +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 +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 +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 +"} +(175,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 +ab +ab +ab +ab +ab +ab +ab +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 +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 +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 +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 +"} +(176,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 +ab +ab +ab +ab +ab +ab +ab +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 +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 +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 +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 +"} +(177,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 +ab +ab +ab +ab +ab +ab +ab +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 +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 +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 +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 +"} +(178,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 +ab +ab +ab +ab +ab +ab +ab +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 +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 +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 +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 +"} +(179,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 +ab +ab +ab +ab +ab +ab +ab +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 +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 +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 +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 +"} +(180,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 +ab +ab +ab +ab +ab +ab +ab +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 +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 +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 +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 +"} +(181,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 +ab +ab +ab +ab +ab +ab +ab +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 +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 +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 +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 +"} +(182,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(183,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(184,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(185,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(186,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(187,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(188,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +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 +"} +(189,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(190,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(191,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(192,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(193,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(194,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(195,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(196,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(197,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(198,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(199,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(200,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(201,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(202,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(203,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(204,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(205,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(206,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(207,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(208,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(209,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(210,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(211,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(212,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(213,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(214,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(215,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(216,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(217,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(218,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(219,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(220,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(221,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(222,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(223,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(224,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(225,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(226,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(227,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(228,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(229,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(230,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(231,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(232,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(233,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(234,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(235,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(236,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(237,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(238,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(239,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(240,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(241,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(242,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(243,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(244,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(245,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(246,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(247,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(248,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} diff --git a/_maps/RandomZLevels/wildwest.dmm b/_maps/RandomZLevels/wildwest.dmm new file mode 100644 index 0000000..025f32a --- /dev/null +++ b/_maps/RandomZLevels/wildwest.dmm @@ -0,0 +1,67743 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/open/space, +/area/space) +"ab" = ( +/turf/closed/indestructible, +/area/awaymission/wwvault) +"ac" = ( +/turf/open/floor/engine/cult, +/area/awaymission/wwvault) +"ad" = ( +/obj/structure/destructible/cult/pylon, +/turf/open/floor/engine/cult, +/area/awaymission/wwvault) +"ae" = ( +/turf/open/floor/plating{ + icon_state = "cultdamage5" + }, +/area/awaymission/wwvault) +"af" = ( +/mob/living/simple_animal/hostile/faithless, +/turf/open/floor/engine/cult, +/area/awaymission/wwvault) +"ag" = ( +/turf/open/floor/plasteel/circuit/off, +/area/awaymission/wwvault) +"ah" = ( +/turf/closed/indestructible{ + desc = "The patterns engraved on the wall seem to shift as you try to focus on them. You feel sick."; + icon = 'icons/turf/walls/cult_wall.dmi'; + icon_state = "cult" + }, +/area/awaymission/wwvault) +"ai" = ( +/turf/open/space, +/turf/closed/indestructible{ + desc = "The patterns engraved on the wall seem to shift as you try to focus on them. You feel sick."; + icon = 'icons/turf/walls/cult_wall.dmi'; + icon_state = "cult" + }, +/area/awaymission/wwvault) +"aj" = ( +/turf/open/floor/plating{ + icon_state = "cultdamage3" + }, +/area/awaymission/wwvault) +"ak" = ( +/turf/open/floor/plating{ + icon_state = "cultdamage6" + }, +/area/awaymission/wwvault) +"al" = ( +/obj/effect/gateway, +/turf/open/floor/engine/cult, +/area/awaymission/wwvault) +"am" = ( +/mob/living/simple_animal/hostile/faithless, +/turf/open/floor/plasteel/circuit/off, +/area/awaymission/wwvault) +"an" = ( +/turf/open/floor/plasteel/cult{ + name = "engraved floor"; + tag = "icon-cult" + }, +/area/awaymission/wwvault) +"ao" = ( +/turf/open/floor/plasteel/circuit/gcircuit/off, +/area/awaymission/wwvault) +"ap" = ( +/obj/machinery/wish_granter_dark, +/turf/open/floor/plasteel/circuit/gcircuit/off, +/area/awaymission/wwvault) +"aq" = ( +/obj/structure/destructible/cult/pylon, +/turf/open/floor/plasteel/circuit/gcircuit/off, +/area/awaymission/wwvault) +"ar" = ( +/obj/machinery/gateway{ + dir = 9 + }, +/turf/open/floor/plasteel/circuit/gcircuit/off, +/area/awaymission/wwvault) +"as" = ( +/obj/machinery/gateway{ + dir = 1 + }, +/turf/open/floor/plasteel/circuit/gcircuit/off, +/area/awaymission/wwvault) +"at" = ( +/obj/machinery/gateway{ + dir = 5 + }, +/turf/open/floor/plasteel/circuit/gcircuit/off, +/area/awaymission/wwvault) +"au" = ( +/obj/machinery/gateway{ + dir = 8 + }, +/turf/open/floor/plasteel/circuit/gcircuit/off, +/area/awaymission/wwvault) +"av" = ( +/obj/machinery/gateway/centeraway{ + calibrated = 0 + }, +/turf/open/floor/plasteel/circuit/gcircuit/off, +/area/awaymission/wwvault) +"aw" = ( +/obj/machinery/gateway{ + dir = 4 + }, +/turf/open/floor/plasteel/circuit/gcircuit/off, +/area/awaymission/wwvault) +"ax" = ( +/obj/machinery/gateway{ + dir = 10 + }, +/turf/open/floor/plasteel/circuit/gcircuit/off, +/area/awaymission/wwvault) +"ay" = ( +/obj/machinery/gateway, +/turf/open/floor/plasteel/circuit/gcircuit/off, +/area/awaymission/wwvault) +"az" = ( +/obj/machinery/gateway{ + dir = 6 + }, +/turf/open/floor/plasteel/circuit/gcircuit/off, +/area/awaymission/wwvault) +"aA" = ( +/obj/effect/meatgrinder, +/turf/open/floor/plasteel/circuit/gcircuit/off, +/area/awaymission/wwvault) +"aB" = ( +/obj/structure/destructible/cult/pylon, +/turf/open/floor/plasteel/circuit/off, +/area/awaymission/wwvault) +"aC" = ( +/turf/open/floor/plating{ + icon_state = "cultdamage2" + }, +/area/awaymission/wwvault) +"aD" = ( +/turf/open/floor/carpet, +/area/awaymission/wwvault) +"aE" = ( +/mob/living/simple_animal/hostile/faithless, +/turf/open/floor/carpet, +/area/awaymission/wwvault) +"aF" = ( +/obj/machinery/door/airlock/vault{ + locked = 1 + }, +/turf/open/floor/engine/cult, +/area/awaymission/wwvaultdoors) +"aG" = ( +/turf/closed/mineral, +/area/space) +"aH" = ( +/turf/closed/mineral/diamond, +/area/awaymission/wwmines) +"aI" = ( +/turf/closed/mineral/gold, +/area/awaymission/wwmines) +"aJ" = ( +/obj/machinery/door/airlock/vault{ + locked = 1 + }, +/turf/open/floor/engine/cult, +/area/awaymission/wwvault) +"aK" = ( +/obj/effect/mob_spawn/human/miner/rig, +/turf/open/floor/engine/cult, +/area/awaymission/wwvault) +"aL" = ( +/obj/item/weapon/paper{ + info = "meat grinder requires sacri" + }, +/turf/open/floor/plasteel/cult{ + name = "engraved floor"; + tag = "icon-cult" + }, +/area/awaymission/wwvault) +"aM" = ( +/turf/closed/mineral/silver, +/area/awaymission/wwmines) +"aN" = ( +/turf/closed/mineral, +/area/awaymission/wwmines) +"aO" = ( +/obj/effect/mob_spawn/human/syndicatecommando, +/turf/open/floor/plasteel/cult{ + name = "engraved floor"; + tag = "icon-cult" + }, +/area/awaymission/wwvault) +"aP" = ( +/obj/effect/decal/cleanable/blood/splatter, +/turf/closed/mineral, +/area/awaymission/wwmines) +"aQ" = ( +/obj/effect/decal/cleanable/blood, +/turf/closed/mineral, +/area/awaymission/wwmines) +"aR" = ( +/obj/structure/ore_box, +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wwmines) +"aT" = ( +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wwmines) +"aV" = ( +/turf/closed/mineral, +/area/awaymission/wwrefine) +"aW" = ( +/turf/closed/wall/mineral/sandstone, +/area/awaymission/wwrefine) +"aY" = ( +/obj/effect/decal/cleanable/blood/gibs/body{ + icon_state = "gibup1" + }, +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wwmines) +"aZ" = ( +/obj/effect/mine/sound/bwoink, +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wwmines) +"ba" = ( +/obj/effect/mine/sound/bwoink, +/obj/item/ammo_box/c10mm, +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wwmines) +"bb" = ( +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/awaymission/wwrefine) +"bc" = ( +/turf/open/floor/plating, +/area/awaymission/wwrefine) +"bd" = ( +/obj/machinery/door/airlock/sandstone, +/turf/open/floor/plating, +/area/awaymission/wwrefine) +"be" = ( +/obj/item/ammo_box/c10mm, +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wwmines) +"bf" = ( +/mob/living/simple_animal/hostile/syndicate/ranged, +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wwmines) +"bg" = ( +/turf/closed/wall/mineral/sandstone, +/area/space) +"bh" = ( +/obj/structure/closet/crate/large, +/turf/open/floor/plating, +/area/awaymission/wwrefine) +"bi" = ( +/obj/effect/mob_spawn/human/miner/rig, +/obj/effect/mine/sound/bwoink, +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wwmines) +"bj" = ( +/turf/open/floor/wood, +/area/awaymission/wwmines) +"bk" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"bl" = ( +/obj/effect/decal/cleanable/blood/gibs/body{ + icon_state = "gibup1" + }, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"bm" = ( +/obj/effect/mine/sound/bwoink, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"bn" = ( +/mob/living/simple_animal/hostile/syndicate/ranged, +/turf/open/floor/plating, +/area/awaymission/wwrefine) +"bo" = ( +/obj/structure/closet/crate, +/turf/open/floor/plating, +/area/awaymission/wwrefine) +"bp" = ( +/obj/effect/decal/cleanable/blood/gibs/body, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"bq" = ( +/obj/effect/mob_spawn/human/miner/rig, +/turf/open/floor/plating, +/area/awaymission/wwrefine) +"br" = ( +/obj/structure/lattice, +/turf/open/space, +/area/space) +"bs" = ( +/obj/effect/mine/sound/bwoink, +/obj/item/ammo_box/c10mm, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"bt" = ( +/obj/structure/closet/crate, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/awaymission/wwrefine) +"bu" = ( +/turf/closed/wall/mineral/sandstone, +/area/awaymission/wwmines) +"bv" = ( +/obj/structure/window/reinforced{ + icon_state = "fwindow" + }, +/turf/open/space, +/area/space) +"bw" = ( +/obj/structure/lattice, +/obj/structure/window/reinforced{ + icon_state = "fwindow" + }, +/turf/open/space, +/area/space) +"bx" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/awaymission/wwmines) +"by" = ( +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/awaymission/wwmines) +"bz" = ( +/mob/living/simple_animal/hostile/syndicate/ranged, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/awaymission/wwmines) +"bA" = ( +/obj/structure/closet/cabinet, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"bB" = ( +/obj/structure/bed, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"bC" = ( +/obj/structure/table/wood, +/obj/item/weapon/gun/projectile, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"bD" = ( +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"bE" = ( +/mob/living/simple_animal/hostile/syndicate/ranged, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"bF" = ( +/turf/open/floor/carpet, +/area/awaymission/wwmines) +"bG" = ( +/obj/structure/table/wood, +/obj/item/weapon/book/manual/barman_recipes, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"bH" = ( +/obj/machinery/vending/dinnerware, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"bI" = ( +/obj/machinery/vending/boozeomat, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"bJ" = ( +/obj/structure/closet/secure_closet/freezer/kitchen, +/obj/item/weapon/reagent_containers/food/condiment/flour, +/obj/item/weapon/reagent_containers/food/condiment/flour, +/obj/item/weapon/reagent_containers/food/condiment/flour, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/awaymission/wwmines) +"bK" = ( +/obj/structure/table/wood, +/obj/item/weapon/book/manual/chef_recipes, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/awaymission/wwmines) +"bL" = ( +/obj/structure/table/wood, +/obj/machinery/microwave, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/awaymission/wwmines) +"bM" = ( +/obj/structure/table/wood, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/awaymission/wwmines) +"bN" = ( +/obj/structure/closet/secure_closet/freezer/meat, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/synthmeat, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/synthmeat, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/synthmeat, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/synthmeat, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/synthmeat, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/awaymission/wwmines) +"bO" = ( +/obj/structure/lattice, +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 4 + }, +/turf/open/space, +/area/space) +"bP" = ( +/turf/closed/wall/mineral/sandstone, +/area/awaymission/wwgov) +"bQ" = ( +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 1 + }, +/obj/structure/window/reinforced{ + icon_state = "fwindow" + }, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wwgov) +"bR" = ( +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 1 + }, +/obj/structure/window/reinforced{ + icon_state = "fwindow" + }, +/obj/structure/grille, +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wwgov) +"bS" = ( +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 1 + }, +/obj/structure/window/reinforced{ + icon_state = "fwindow" + }, +/obj/structure/grille, +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 4 + }, +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wwgov) +"bT" = ( +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 8 + }, +/turf/open/space, +/area/space) +"bU" = ( +/obj/structure/chair/wood/normal{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/awaymission/wwmines) +"bV" = ( +/obj/structure/chair/wood/normal{ + dir = 8 + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/awaymission/wwmines) +"bW" = ( +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 4 + }, +/turf/open/space, +/area/space) +"bX" = ( +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 8 + }, +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 4 + }, +/obj/structure/grille, +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 1 + }, +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wwgov) +"bY" = ( +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wwgov) +"bZ" = ( +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand2" + }, +/area/awaymission/wwgov) +"ca" = ( +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 4 + }, +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 8 + }, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wwgov) +"cb" = ( +/obj/machinery/door/window, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"cc" = ( +/turf/closed/wall/mineral/sandstone, +/area/awaymission/wwmines) +"cd" = ( +/obj/effect/mob_spawn/human/cook{ + mob_name = "Chef" + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/awaymission/wwmines) +"ce" = ( +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 8 + }, +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 4 + }, +/obj/structure/grille, +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wwgov) +"cf" = ( +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 4 + }, +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 8 + }, +/obj/structure/grille, +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wwgov) +"cg" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper{ + info = " The miners in the town have become sick and almost all production has stopped. They, in a fit of delusion, tossed all of their mining equipment into the furnaces. They all claimed the same thing. A voice beckoning them to lay down their arms. Stupid miners."; + name = "Planer Saul's Journal: Page 4" + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/awaymission/wwmines) +"ch" = ( +/obj/structure/table/wood, +/obj/item/weapon/gun/projectile, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/awaymission/wwmines) +"ci" = ( +/obj/structure/mineral_door/wood{ + icon_state = "wood" + }, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"cj" = ( +/obj/structure/chair/stool, +/turf/open/floor/carpet, +/area/awaymission/wwmines) +"ck" = ( +/obj/item/ammo_box/c10mm, +/turf/open/floor/carpet, +/area/awaymission/wwmines) +"cl" = ( +/obj/structure/chair/stool, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"cm" = ( +/obj/structure/bookcase{ + icon_state = "book-5" + }, +/turf/open/floor/wood, +/area/awaymission/wwgov) +"cn" = ( +/turf/open/floor/wood, +/area/awaymission/wwgov) +"co" = ( +/obj/item/weapon/storage/bag/money, +/turf/open/floor/wood, +/area/awaymission/wwgov) +"cp" = ( +/obj/structure/closet/secure_closet/freezer/kitchen, +/turf/open/floor/plasteel/stage_bleft, +/area/awaymission/wwgov) +"cq" = ( +/obj/structure/table/wood, +/turf/open/floor/plasteel/stage_bleft, +/area/awaymission/wwgov) +"cr" = ( +/obj/structure/table/wood, +/obj/machinery/microwave, +/turf/open/floor/plasteel/stage_bleft, +/area/awaymission/wwgov) +"cs" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/turf/open/floor/plasteel/stage_bleft, +/area/awaymission/wwgov) +"ct" = ( +/obj/structure/lattice, +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 8 + }, +/turf/open/space, +/area/space) +"cu" = ( +/obj/structure/lattice, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"cv" = ( +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/floor/carpet, +/area/awaymission/wwmines) +"cw" = ( +/turf/open/floor/carpet, +/area/awaymission/wwgov) +"cx" = ( +/obj/item/weapon/storage/bag/money, +/turf/open/floor/carpet, +/area/awaymission/wwgov) +"cy" = ( +/obj/structure/chair/wood/wings, +/turf/open/floor/wood, +/area/awaymission/wwgov) +"cz" = ( +/turf/open/floor/plasteel/stage_bleft, +/area/awaymission/wwgov) +"cA" = ( +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"cB" = ( +/obj/effect/mine/gas/plasma, +/obj/item/ammo_box/c10mm, +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wwmines) +"cC" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/toolbox/electrical, +/turf/open/floor/wood, +/area/awaymission/wwgov) +"cD" = ( +/obj/structure/table/wood, +/obj/item/clothing/gloves/color/yellow, +/obj/item/device/multitool, +/turf/open/floor/wood, +/area/awaymission/wwgov) +"cE" = ( +/obj/structure/chair/wood/normal{ + dir = 4 + }, +/turf/open/floor/wood, +/area/awaymission/wwgov) +"cF" = ( +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/awaymission/wwgov) +"cG" = ( +/mob/living/simple_animal/hostile/creature, +/turf/open/floor/plasteel/stage_bleft, +/area/awaymission/wwgov) +"cH" = ( +/obj/effect/mob_spawn/human/cook{ + mob_name = "Chef" + }, +/turf/open/floor/plasteel/stage_bleft, +/area/awaymission/wwgov) +"cI" = ( +/obj/structure/bookcase{ + icon_state = "book-5" + }, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"cJ" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/condiment/peppermill, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"cK" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/condiment/saltshaker, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"cL" = ( +/obj/structure/table/wood, +/obj/item/weapon/twohanded/dualsaber, +/turf/open/floor/wood, +/area/awaymission/wwgov) +"cM" = ( +/obj/effect/mob_spawn/human/miner/rig, +/turf/open/floor/wood, +/area/awaymission/wwgov) +"cN" = ( +/mob/living/simple_animal/hostile/creature, +/turf/open/floor/wood, +/area/awaymission/wwgov) +"cO" = ( +/obj/structure/mineral_door/wood{ + icon_state = "wood" + }, +/turf/open/floor/wood, +/area/awaymission/wwgov) +"cP" = ( +/mob/living/simple_animal/hostile/creature, +/turf/open/floor/carpet, +/area/awaymission/wwgov) +"cQ" = ( +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 8 + }, +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 4 + }, +/obj/structure/grille, +/obj/structure/window/reinforced{ + icon_state = "fwindow" + }, +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wwgov) +"cR" = ( +/obj/structure/chair/wood/wings{ + dir = 4 + }, +/turf/open/floor/wood, +/area/awaymission/wwgov) +"cS" = ( +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 4 + }, +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 8 + }, +/obj/structure/grille, +/obj/structure/window/reinforced{ + icon_state = "fwindow" + }, +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wwgov) +"cT" = ( +/obj/effect/decal/remains/human, +/mob/living/simple_animal/hostile/syndicate/ranged/space{ + name = "Syndicate Commander" + }, +/turf/open/floor/plating, +/area/awaymission/wwrefine) +"cU" = ( +/obj/item/weapon/paper{ + info = "We've discovered something floating in space. We can't really tell how old it is, but it is scraped and bent to hell. There object is the size of about a room with double doors that we have yet to break into. It is a lot sturdier than we could have imagined. We have decided to call it 'The Vault' "; + name = "Planer Saul's Journal: Page 1" + }, +/turf/open/floor/carpet, +/area/awaymission/wwgov) +"cV" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/snacks/soup/monkeysdelight, +/turf/open/floor/plasteel/stage_bleft, +/area/awaymission/wwgov) +"cW" = ( +/obj/structure/table/wood, +/obj/item/weapon/kitchen/knife/butcher, +/turf/open/floor/plasteel/stage_bleft, +/area/awaymission/wwgov) +"cX" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/snacks/soup/stew, +/turf/open/floor/plasteel/stage_bleft, +/area/awaymission/wwgov) +"cY" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"cZ" = ( +/obj/structure/chair/comfy/teal{ + dir = 8 + }, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"da" = ( +/obj/structure/chair/wood/normal{ + dir = 4 + }, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"db" = ( +/obj/structure/chair/wood/normal{ + dir = 8 + }, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"dc" = ( +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 8 + }, +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 4 + }, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wwgov) +"dd" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/snacks/store/bread/creamcheese, +/turf/open/floor/plasteel/stage_bleft, +/area/awaymission/wwgov) +"de" = ( +/obj/structure/table/wood, +/obj/item/weapon/kitchen/rollingpin, +/turf/open/floor/plasteel/stage_bleft, +/area/awaymission/wwgov) +"df" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/snacks/grown/citrus/lemon, +/turf/open/floor/plasteel/stage_bleft, +/area/awaymission/wwgov) +"dg" = ( +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 4 + }, +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 8 + }, +/obj/structure/grille, +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 1 + }, +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wwgov) +"dh" = ( +/obj/effect/mob_spawn/human/syndicatecommando{ + mob_name = "Syndicate Commando" + }, +/turf/open/floor/carpet, +/area/awaymission/wwgov) +"di" = ( +/obj/machinery/mineral/mint, +/turf/open/floor/plating, +/area/awaymission/wwrefine) +"dj" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"dk" = ( +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/awaymission/wwmines) +"dl" = ( +/turf/closed/wall/mineral/sandstone, +/area/awaymission/wwmines) +"dm" = ( +/obj/structure/mineral_door/wood{ + icon_state = "wood" + }, +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wwmines) +"dn" = ( +/obj/structure/mineral_door/wood{ + icon_state = "wood" + }, +/obj/effect/decal/cleanable/blood/tracks, +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wwmines) +"do" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/space, +/area/space) +"dp" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/brown, +/turf/open/floor/wood, +/area/awaymission/wwgov) +"dq" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/drinks/bottle/wine, +/turf/open/floor/plasteel/stage_bleft, +/area/awaymission/wwgov) +"dr" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass, +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass, +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass, +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass, +/turf/open/floor/plasteel/stage_bleft, +/area/awaymission/wwgov) +"ds" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/drinks/bottle/patron, +/turf/open/floor/plasteel/stage_bleft, +/area/awaymission/wwgov) +"dt" = ( +/obj/effect/decal/cleanable/blood/tracks, +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wwmines) +"du" = ( +/obj/effect/decal/cleanable/blood/tracks, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"dv" = ( +/obj/effect/mine/gas/plasma, +/obj/item/ammo_box/c10mm, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"dw" = ( +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wwmines) +"dx" = ( +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand4" + }, +/area/awaymission/wwgov) +"dy" = ( +/obj/effect/mob_spawn/human/miner/rig, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"dz" = ( +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand12" + }, +/area/awaymission/wwgov) +"dA" = ( +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand14" + }, +/area/awaymission/wwgov) +"dB" = ( +/obj/structure/toilet, +/mob/living/simple_animal/hostile/creature, +/turf/open/floor/plasteel/white, +/area/awaymission/wwgov) +"dC" = ( +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand9" + }, +/area/awaymission/wwgov) +"dD" = ( +/obj/structure/mineral_door/wood{ + icon_state = "wood" + }, +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wwgov) +"dE" = ( +/obj/structure/closet/crate/large, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"dF" = ( +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand7" + }, +/area/awaymission/wwgov) +"dG" = ( +/obj/machinery/washing_machine, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/awaymission/wwmines) +"dH" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/blue, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"dI" = ( +/obj/effect/decal/cleanable/blood/gibs/body{ + icon_state = "gibdown1" + }, +/turf/open/floor/carpet, +/area/awaymission/wwmines) +"dJ" = ( +/obj/structure/chair/comfy/brown, +/turf/open/floor/carpet, +/area/awaymission/wwmines) +"dK" = ( +/obj/structure/chair/comfy/beige, +/turf/open/floor/carpet, +/area/awaymission/wwmines) +"dL" = ( +/obj/machinery/door/airlock/sandstone, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"dM" = ( +/obj/structure/table/wood, +/obj/machinery/computer/security/telescreen/entertainment, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"dN" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/awaymission/wwmines) +"dO" = ( +/obj/structure/chair/comfy/beige{ + dir = 1; + icon_state = "comfychair" + }, +/turf/open/floor/carpet, +/area/awaymission/wwmines) +"dP" = ( +/obj/effect/decal/cleanable/blood/gibs/body{ + icon_state = "gibdown1" + }, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"dQ" = ( +/obj/machinery/computer/security/telescreen/entertainment, +/turf/closed/wall/mineral/sandstone, +/area/awaymission/wwmines) +"dR" = ( +/obj/structure/window/reinforced{ + icon_state = "fwindow" + }, +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 1 + }, +/obj/structure/grille, +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 8 + }, +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wwgov) +"dS" = ( +/obj/structure/window/reinforced{ + icon_state = "fwindow" + }, +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 1 + }, +/obj/structure/grille, +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wwgov) +"dT" = ( +/obj/structure/window/reinforced{ + icon_state = "fwindow" + }, +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 1 + }, +/obj/structure/grille, +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 4 + }, +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wwgov) +"dU" = ( +/obj/machinery/door/airlock/sandstone, +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wwgov) +"dV" = ( +/obj/machinery/shower{ + icon_state = "shower"; + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/awaymission/wwmines) +"dW" = ( +/obj/machinery/shower{ + icon_state = "shower"; + dir = 8 + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/awaymission/wwmines) +"dX" = ( +/obj/structure/chair/comfy/beige{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/awaymission/wwmines) +"dY" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/snacks/donut/jelly/slimejelly, +/turf/open/floor/carpet, +/area/awaymission/wwmines) +"dZ" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/drinks/coffee, +/turf/open/floor/carpet, +/area/awaymission/wwmines) +"ea" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/snacks/donut/jelly, +/turf/open/floor/carpet, +/area/awaymission/wwmines) +"eb" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/snacks/donut, +/turf/open/floor/carpet, +/area/awaymission/wwmines) +"ec" = ( +/obj/structure/chair/comfy/beige{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/awaymission/wwmines) +"ed" = ( +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 1 + }, +/turf/open/space, +/area/space) +"ee" = ( +/obj/structure/lattice, +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 1 + }, +/turf/open/space, +/area/space) +"ef" = ( +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/space, +/area/space) +"eg" = ( +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 8 + }, +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wwgov) +"eh" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wwgov) +"ei" = ( +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 1 + }, +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 8 + }, +/turf/open/space, +/area/space) +"ej" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wwmines) +"ek" = ( +/obj/effect/mine/gas/plasma, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/awaymission/wwmines) +"el" = ( +/obj/effect/decal/cleanable/blood, +/obj/machinery/washing_machine, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/awaymission/wwmines) +"en" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wwmines) +"eo" = ( +/obj/structure/table/wood, +/turf/open/floor/carpet, +/area/awaymission/wwmines) +"eq" = ( +/obj/item/weapon/gun/projectile/shotgun, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"er" = ( +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 8 + }, +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand12" + }, +/area/awaymission/wwgov) +"es" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand2" + }, +/area/awaymission/wwgov) +"et" = ( +/turf/closed/wall/r_wall, +/area/awaymission/wwrefine) +"eu" = ( +/turf/open/floor/plasteel, +/area/awaymission/wwrefine) +"ev" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/awaymission/wwmines) +"ew" = ( +/mob/living/simple_animal/hostile/syndicate/ranged, +/turf/open/floor/carpet, +/area/awaymission/wwmines) +"ex" = ( +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 8 + }, +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand7" + }, +/area/awaymission/wwgov) +"ey" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand4" + }, +/area/awaymission/wwgov) +"ez" = ( +/obj/machinery/mineral/input, +/turf/open/floor/plasteel, +/area/awaymission/wwrefine) +"eA" = ( +/obj/machinery/mineral/mint, +/turf/open/floor/plasteel, +/area/awaymission/wwrefine) +"eB" = ( +/obj/machinery/mineral/output, +/turf/open/floor/plasteel, +/area/awaymission/wwrefine) +"eC" = ( +/obj/structure/chair/comfy/brown, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"eD" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand12" + }, +/area/awaymission/wwgov) +"eE" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/blue, +/obj/item/weapon/gun/projectile, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"eF" = ( +/obj/effect/decal/cleanable/blood, +/obj/structure/bed, +/obj/item/weapon/bedsheet/blue, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"eG" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/drinks/coffee, +/obj/item/weapon/reagent_containers/food/snacks/donut/jelly/slimejelly, +/turf/open/floor/carpet, +/area/awaymission/wwmines) +"eH" = ( +/obj/structure/chair/comfy/beige{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood/gibs/body{ + icon_state = "gibdown1" + }, +/turf/open/floor/carpet, +/area/awaymission/wwmines) +"eI" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand7" + }, +/area/awaymission/wwgov) +"eJ" = ( +/obj/structure/sign/vacuum, +/turf/closed/wall/r_wall, +/area/awaymission/wwrefine) +"eK" = ( +/obj/structure/mecha_wreckage/gygax{ + anchored = 1 + }, +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wwmines) +"eL" = ( +/obj/effect/decal/cleanable/blood/splatter, +/obj/effect/mob_spawn/human/miner/rig, +/turf/open/floor/carpet, +/area/awaymission/wwmines) +"eM" = ( +/obj/effect/decal/cleanable/blood/splatter, +/turf/closed/wall/mineral/sandstone, +/area/awaymission/wwmines) +"eN" = ( +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 8 + }, +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand14" + }, +/area/awaymission/wwgov) +"eO" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 8 + }, +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 1 + }, +/obj/structure/grille, +/turf/open/floor/plasteel, +/area/awaymission/wwrefine) +"eP" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 1 + }, +/obj/structure/grille, +/turf/open/floor/plasteel, +/area/awaymission/wwrefine) +"eQ" = ( +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 1 + }, +/obj/structure/window/reinforced{ + icon_state = "fwindow" + }, +/obj/structure/grille, +/turf/open/floor/plasteel, +/area/awaymission/wwrefine) +"eR" = ( +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 4 + }, +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 1 + }, +/obj/structure/window/reinforced{ + icon_state = "fwindow" + }, +/obj/structure/grille, +/turf/open/floor/plasteel, +/area/awaymission/wwrefine) +"eS" = ( +/obj/effect/mine/gas/plasma, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"eT" = ( +/obj/structure/mecha_wreckage/gygax{ + anchored = 1 + }, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"eV" = ( +/obj/structure/chair/comfy/brown{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/awaymission/wwmines) +"eW" = ( +/obj/effect/decal/cleanable/blood/gibs/body{ + icon_state = "gibup1" + }, +/turf/open/floor/carpet, +/area/awaymission/wwmines) +"eX" = ( +/turf/open/floor/plasteel/barber{ + dir = 8 + }, +/area/awaymission/wwmines) +"eY" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/barber{ + dir = 8 + }, +/area/awaymission/wwmines) +"eZ" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel/barber{ + dir = 8 + }, +/area/awaymission/wwmines) +"fa" = ( +/obj/machinery/vending/snack, +/turf/open/floor/plasteel/barber{ + dir = 8 + }, +/area/awaymission/wwmines) +"fb" = ( +/obj/machinery/vending/cola, +/turf/open/floor/plasteel/barber{ + dir = 8 + }, +/area/awaymission/wwmines) +"fc" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand9" + }, +/area/awaymission/wwgov) +"fd" = ( +/obj/machinery/door/airlock/external, +/turf/open/floor/plasteel, +/area/awaymission/wwrefine) +"fe" = ( +/obj/structure/sink, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"ff" = ( +/obj/structure/mecha_wreckage/durand{ + anchored = 1 + }, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"fg" = ( +/obj/effect/decal/cleanable/blood/gibs/body{ + icon_state = "gibdown1" + }, +/turf/open/floor/plasteel/barber{ + dir = 8 + }, +/area/awaymission/wwmines) +"fh" = ( +/obj/effect/mob_spawn/human/doctor{ + mob_name = "Doctor Mugabee" + }, +/turf/open/floor/plasteel/barber{ + dir = 8 + }, +/area/awaymission/wwmines) +"fi" = ( +/obj/item/stack/medical/bruise_pack, +/turf/open/floor/plasteel/barber{ + dir = 8 + }, +/area/awaymission/wwmines) +"fj" = ( +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 4 + }, +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 1 + }, +/obj/structure/grille, +/turf/open/floor/plasteel, +/area/awaymission/wwrefine) +"fk" = ( +/obj/structure/mecha_wreckage/seraph{ + anchored = 1 + }, +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wwmines) +"fl" = ( +/obj/structure/mecha_wreckage/ripley/deathripley{ + anchored = 1 + }, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"fn" = ( +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/floor/plasteel/barber{ + dir = 8 + }, +/area/awaymission/wwmines) +"fo" = ( +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 8 + }, +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 4 + }, +/obj/structure/grille, +/turf/open/floor/plasteel, +/area/awaymission/wwrefine) +"fp" = ( +/obj/structure/toilet{ + dir = 1 + }, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"fr" = ( +/obj/structure/mecha_wreckage/ripley/deathripley{ + anchored = 1 + }, +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wwmines) +"fs" = ( +/obj/effect/decal/cleanable/blood, +/turf/closed/wall/mineral/sandstone, +/area/awaymission/wwmines) +"ft" = ( +/obj/effect/decal/cleanable/blood/gibs/body{ + icon_state = "gibdown1" + }, +/turf/closed/wall/mineral/sandstone, +/area/awaymission/wwmines) +"fu" = ( +/obj/structure/chair/comfy/beige{ + dir = 4 + }, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"fv" = ( +/obj/structure/chair/wood/normal{ + dir = 4 + }, +/turf/open/floor/plasteel/barber{ + dir = 8 + }, +/area/awaymission/wwmines) +"fw" = ( +/obj/structure/table/wood, +/turf/open/floor/plasteel/barber{ + dir = 8 + }, +/area/awaymission/wwmines) +"fx" = ( +/obj/structure/chair/wood/normal{ + dir = 8 + }, +/turf/open/floor/plasteel/barber{ + dir = 8 + }, +/area/awaymission/wwmines) +"fy" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + icon_state = "fwindow" + }, +/turf/open/space, +/area/space) +"fz" = ( +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 8 + }, +/obj/structure/window/reinforced{ + icon_state = "fwindow" + }, +/turf/open/space, +/area/space) +"fA" = ( +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 8 + }, +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 4 + }, +/obj/structure/grille, +/obj/structure/window/reinforced, +/turf/open/floor/plasteel, +/area/awaymission/wwrefine) +"fB" = ( +/obj/effect/mine/gas/plasma, +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wwmines) +"fC" = ( +/obj/effect/decal/cleanable/blood/gibs/body{ + icon_state = "gibdown1" + }, +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wwmines) +"fD" = ( +/obj/structure/mecha_wreckage/mauler{ + anchored = 1 + }, +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wwmines) +"fE" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"fF" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"fG" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"fH" = ( +/obj/structure/chair/office/light{ + dir = 8 + }, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"fI" = ( +/obj/effect/decal/cleanable/blood/gibs/body{ + icon_state = "gibup1" + }, +/turf/open/floor/plasteel/barber{ + dir = 8 + }, +/area/awaymission/wwmines) +"fJ" = ( +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 1 + }, +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 8 + }, +/turf/open/floor/grass, +/area/awaymission/wwgov) +"fK" = ( +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 1 + }, +/turf/open/floor/grass, +/area/awaymission/wwgov) +"fL" = ( +/turf/open/floor/grass, +/area/awaymission/wwgov) +"fM" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 1 + }, +/turf/open/floor/grass, +/area/awaymission/wwgov) +"fN" = ( +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 8 + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"fO" = ( +/mob/living/simple_animal/hostile/syndicate, +/turf/open/floor/plasteel, +/area/awaymission/wwrefine) +"fP" = ( +/obj/structure/mecha_wreckage/ripley/deathripley{ + anchored = 1 + }, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wwmines) +"fQ" = ( +/obj/effect/decal/cleanable/blood/gibs/body, +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wwmines) +"fR" = ( +/obj/effect/mine/sound/bwoink, +/obj/effect/mob_spawn/human/miner/rig, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"fS" = ( +/obj/structure/table/wood, +/obj/item/weapon/gun/projectile/shotgun, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"fT" = ( +/obj/structure/chair/wood/normal, +/turf/open/floor/plasteel/barber{ + dir = 8 + }, +/area/awaymission/wwmines) +"fU" = ( +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 8 + }, +/turf/open/floor/grass, +/area/awaymission/wwgov) +"fV" = ( +/obj/machinery/hydroponics/soil, +/turf/open/floor/grass, +/area/awaymission/wwgov) +"fW" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/grass, +/area/awaymission/wwgov) +"fX" = ( +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 8 + }, +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 4 + }, +/obj/structure/grille, +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/awaymission/wwrefine) +"fY" = ( +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"fZ" = ( +/obj/item/weapon/paper{ + info = "The Vault...it just keeps growing and growing. I went on my daily walk through the garden and now its just right outside the mansion... a few days ago it was only barely visible. But whatever is inside...its calling to me."; + name = "Planer Sauls' Journal: Page 7" + }, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"ga" = ( +/obj/structure/window/reinforced{ + icon_state = "fwindow" + }, +/turf/open/floor/grass, +/area/awaymission/wwgov) +"gb" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + icon_state = "fwindow" + }, +/turf/open/floor/grass, +/area/awaymission/wwgov) +"gc" = ( +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 8 + }, +/turf/open/floor/plasteel/airless, +/area/space) +"gd" = ( +/turf/open/floor/plasteel/airless, +/area/space) +"ge" = ( +/obj/effect/mob_spawn/human/miner/rig, +/turf/open/floor/plasteel, +/area/awaymission/wwrefine) +"gf" = ( +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"gg" = ( +/obj/structure/table/wood, +/obj/item/weapon/gun/projectile/revolver/russian, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"gh" = ( +/obj/structure/chair/wood/normal{ + dir = 1 + }, +/turf/open/floor/plasteel/barber{ + dir = 8 + }, +/area/awaymission/wwmines) +"gi" = ( +/obj/machinery/door/airlock/external, +/turf/open/floor/grass, +/area/awaymission/wwgov) +"gj" = ( +/obj/effect/decal/cleanable/blood/gibs/core, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"gk" = ( +/mob/living/simple_animal/hostile/syndicate, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"gl" = ( +/obj/machinery/photocopier, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"gm" = ( +/obj/item/weapon/gun/projectile, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"gn" = ( +/mob/living/simple_animal/hostile/creature, +/turf/open/floor/grass, +/area/awaymission/wwgov) +"go" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/grass, +/area/awaymission/wwgov) +"gq" = ( +/obj/effect/decal/cleanable/blood/gibs/up, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"gr" = ( +/obj/effect/decal/cleanable/blood/gibs/down, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"gs" = ( +/obj/structure/chair/comfy/beige{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/gibs/body{ + icon_state = "gibdown1" + }, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"gt" = ( +/obj/machinery/washing_machine, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"gu" = ( +/obj/effect/decal/cleanable/blood/gibs/body{ + icon_state = "gibup1" + }, +/obj/structure/chair/wood/normal, +/turf/open/floor/plasteel/barber{ + dir = 8 + }, +/area/awaymission/wwmines) +"gv" = ( +/obj/item/weapon/hatchet, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"gw" = ( +/obj/item/weapon/gun/projectile/automatic/pistol, +/turf/open/floor/wood, +/area/awaymission/wwmines) +"gx" = ( +/obj/item/weapon/gun/projectile/shotgun, +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wwmines) +"gy" = ( +/obj/effect/mob_spawn/human/syndicatecommando{ + mob_name = "Syndicate Commando" + }, +/turf/open/floor/grass, +/area/awaymission/wwgov) +"gz" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 1 + }, +/obj/structure/grille, +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/awaymission/wwrefine) +"gA" = ( +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 8 + }, +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 1 + }, +/obj/structure/grille, +/turf/open/floor/plasteel, +/area/awaymission/wwrefine) +"gB" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 1 + }, +/obj/structure/grille, +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/awaymission/wwrefine) +"gC" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 1 + }, +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 4 + }, +/obj/structure/grille, +/turf/open/floor/plasteel, +/area/awaymission/wwrefine) +"gD" = ( +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 8 + }, +/obj/structure/window/reinforced, +/turf/open/floor/grass, +/area/awaymission/wwgov) +"gE" = ( +/obj/structure/window/reinforced, +/turf/open/floor/grass, +/area/awaymission/wwgov) +"gF" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced, +/turf/open/floor/grass, +/area/awaymission/wwgov) +"gG" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 4 + }, +/obj/structure/window/reinforced{ + icon_state = "fwindow"; + dir = 8 + }, +/obj/structure/grille, +/turf/open/floor/plasteel, +/area/awaymission/wwrefine) +"gH" = ( +/obj/structure/sign/barsign, +/turf/closed/wall/mineral/sandstone, +/area/awaymission/wwmines) +"gI" = ( +/turf/closed/wall/mineral/titanium/overspace, +/area/awaymission/wwrefine) +"gJ" = ( +/turf/closed/wall/mineral/titanium, +/area/awaymission/wwrefine) +"gK" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall8" + }, +/area/awaymission/wwrefine) +"gL" = ( +/obj/machinery/door/unpowered/shuttle, +/turf/open/floor/plasteel/shuttle/yellow, +/area/awaymission/wwrefine) +"gM" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall4" + }, +/area/awaymission/wwrefine) +"gN" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s10" + }, +/area/awaymission/wwrefine) +"gO" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall3" + }, +/area/awaymission/wwrefine) +"gP" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/shuttle/yellow, +/area/awaymission/wwrefine) +"gQ" = ( +/turf/open/floor/plasteel/shuttle/yellow, +/area/awaymission/wwrefine) +"gR" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s5" + }, +/area/awaymission/wwrefine) +"gS" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/awaymission/wwrefine) +"gT" = ( +/turf/closed/wall/shuttle{ + icon_state = "swallc2" + }, +/area/awaymission/wwrefine) +"gU" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s9" + }, +/area/awaymission/wwrefine) +"gV" = ( +/obj/effect/landmark{ + name = "awaystart" + }, +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wwmines) +"gW" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/suit/space/syndicate/black/orange, +/obj/item/clothing/head/helmet/space/syndicate/black/orange, +/obj/item/clothing/mask/gas/syndicate, +/obj/item/weapon/tank/internals/oxygen, +/turf/open/floor/plasteel/shuttle/yellow, +/area/awaymission/wwrefine) +"gX" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + icon_state = "fwindow" + }, +/turf/open/floor/plasteel/shuttle/yellow, +/area/awaymission/wwrefine) +"gY" = ( +/obj/item/weapon/paper{ + info = "The syndicate have invaded. Their ships appeared out of nowhere and now they likely intend to kill us all and take everything. On the off-chance that the Vault may grant us sanctuary, many of us have decided to force our way inside and bolt the door, taking as many provisions with us as we can carry. In case you find this, send for help immediately and open the Vault. Find us inside."; + name = "Planer Saul's Journal: Page 8" + }, +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wwmines) + +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(8,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(9,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(10,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(11,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(12,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(13,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(14,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(15,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(16,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(17,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(18,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(19,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(20,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(21,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(22,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(23,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(24,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(25,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(26,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(27,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(28,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(29,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(30,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(31,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(32,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(33,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(34,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(35,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(36,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(37,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(38,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(39,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(40,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(41,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(42,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(43,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(44,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(45,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(46,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(47,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(48,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(49,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(50,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(51,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(52,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(53,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(54,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(55,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(56,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(57,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(58,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +br +br +br +br +br +br +br +br +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(59,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +br +br +br +br +cu +br +aa +aa +aa +aa +aa +aa +br +br +aa +br +br +aa +aa +aa +aa +aa +aa +aa +aa +bW +bW +bW +bW +bW +bW +bW +bW +bW +bW +bW +bW +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(60,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +br +br +br +br +br +br +aa +aa +aa +br +aa +aa +aa +aa +aa +aa +aa +aa +br +br +br +br +br +aa +aa +aa +aa +aa +aa +bv +fJ +fU +fU +fU +fU +fU +fU +fU +fU +fU +fU +gD +ed +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(61,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +br +br +bO +bW +bW +bW +bW +bO +bW +bW +bO +bO +bW +do +do +do +do +do +do +do +do +do +aa +aa +br +aa +aa +aa +aa +aa +aa +bv +fK +fL +fL +fL +fL +fL +fL +fL +fL +fL +fL +gE +ed +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(62,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +br +br +bv +bP +bX +ce +ce +ce +ce +ce +cQ +bP +dc +ce +ce +ce +ce +ce +ce +ce +ce +cQ +bP +ed +aa +br +br +aa +aa +aa +aa +aa +bv +fK +fV +fL +fV +fL +fV +fL +fV +fL +fV +fL +gE +ed +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(63,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +br +bw +bQ +bY +bY +bY +bY +bY +bY +bY +bY +bY +bY +bY +bY +bY +bY +bY +bY +dA +bY +dR +ed +aa +aa +br +aa +aa +aa +aa +aa +bv +fK +fV +fL +fV +gn +fV +fL +fV +fL +fV +fL +gE +ed +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(64,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bw +bR +bY +bP +bP +bP +bP +bP +bP +bP +bP +bP +bP +bP +bY +dx +bY +bY +bY +bY +dS +ed +aa +aa +br +aa +aa +aa +aa +aa +bv +fK +fV +fL +fV +fL +fV +fL +fV +fL +fV +fL +gE +ed +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(65,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bw +bR +bY +bP +cm +cn +cC +cL +cC +cn +cn +cn +cn +bP +bY +bY +bY +bY +bY +bY +dS +ed +aa +aa +br +aa +aa +aa +aa +aa +bv +fK +fV +fL +fV +fL +fV +fL +fV +fL +fV +fL +gE +ed +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(66,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bw +bR +bY +bP +cm +cn +cD +cM +cD +cn +cn +cn +dp +bP +bY +bY +bP +bP +bP +bY +dS +ed +aa +aa +br +aa +aa +aa +aa +aa +bv +fK +fV +fL +fV +fL +fV +fL +fV +fL +fV +fL +gE +ed +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(67,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bw +bR +bY +bP +cm +cn +cn +cn +cn +cn +cN +cn +co +bP +bY +bY +bP +dB +dD +bY +dS +ed +aa +aa +br +aa +aa +aa +aa +aa +bv +fK +fL +fL +fL +fL +fL +fL +fL +fL +fL +fL +gE +ed +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(68,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +br +bw +bR +bY +bP +cm +co +cn +cn +cn +cn +cn +cn +cn +bP +bY +bY +bP +bP +bP +bY +dS +ed +aa +aa +br +aa +aa +aa +aa +aa +bv +fK +fL +fL +fL +fL +fL +fL +fL +fL +fL +gn +gE +ed +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(69,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +br +bv +bR +bY +bP +cm +cn +cn +cN +cn +cn +co +cn +cn +bP +bY +bY +bY +bY +bY +bY +dS +ed +aa +br +br +aa +aa +aa +aa +aa +bv +fK +fL +fL +fL +fL +fL +fL +fL +fL +fL +fL +gE +ed +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(70,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +br +bv +bR +bY +bP +cm +cn +cn +cn +cn +cn +cn +co +cn +bP +dx +bY +bY +bY +bY +bY +dS +ed +br +br +aa +aa +aa +aa +aa +aa +bv +fK +fL +fL +fL +fL +fL +fL +fL +fL +fL +fL +gE +ed +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(71,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +br +bv +bR +bY +bP +bP +bP +bP +cO +bP +bP +bP +bP +bP +bP +bY +bY +bY +bY +bY +bY +dS +ed +br +aa +aa +aa +aa +aa +aa +aa +bv +fK +fL +fL +fL +fL +fL +fL +fL +fL +fL +fL +gE +ed +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(72,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +br +bv +bR +bZ +bP +cn +cn +cn +cn +cn +cn +cn +cn +cn +bP +bY +bY +bY +dA +bY +bY +dS +ed +br +aa +aa +aa +aa +aa +aa +aa +bv +fK +fL +fL +fL +fL +fL +fL +fL +fL +fL +fL +gE +ed +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +br +bv +bR +bY +bP +co +cw +cx +cw +cw +cw +cw +cx +cn +bP +bY +bY +bY +bY +bY +bY +dS +ee +br +aa +aa +aa +aa +aa +aa +aa +bv +fK +fL +fL +fL +fL +fL +fL +fL +gy +fL +fL +gE +ed +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +br +bw +bR +bY +bP +cn +cw +cw +cw +cw +cw +cw +cw +cn +bP +bY +bY +bY +bY +bY +bY +dT +ef +do +do +do +do +do +do +do +do +fy +fK +fL +fL +fL +fL +fL +fL +fL +fL +fL +fL +gE +ed +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ac +ac +ac +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 +br +bw +bR +bY +bP +co +cw +cw +cw +cw +cU +cw +dh +cn +cO +bY +bY +bY +bY +bY +bY +dU +eg +er +ex +eg +er +eN +eg +ex +eg +dU +fL +fL +fL +fL +fL +fL +fL +fL +fL +fL +fL +gE +ed +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +ab +ab +ab +ac +ac +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ah +ac +ac +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 +br +bv +bR +bY +bP +co +cw +cw +cw +cw +cw +cw +cw +cn +cO +bY +dz +bZ +bY +bY +bY +dU +eh +es +ey +eD +eI +eh +fc +eh +es +dU +fL +fL +fL +fL +fL +fL +fL +fL +fL +fL +fL +gE +ed +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +ab +ab +ac +ac +ac +ac +ac +ab +ab +aa +aa +aa +aa +aa +aa +aa +ab +ac +ah +ah +ah +ac +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 +br +br +bv +bR +bY +bP +cn +cx +cw +cP +cw +cw +cw +cw +cn +bP +bY +bY +bY +bY +bY +bY +dR +ei +bT +bT +bT +bT +bT +bT +bT +bT +fz +fK +fL +fL +fL +fL +fL +fL +fL +fL +fL +fL +gE +ed +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +ab +ab +ac +ac +ac +ac +ac +ac +ab +ab +aa +aa +aa +aa +aa +aa +ab +ac +ac +ah +ah +ac +ac +ac +ac +ac +ac +ah +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +br +aa +bv +bR +bY +bP +co +cw +cw +cw +cw +cw +cw +cw +cn +bP +bY +bY +bY +bY +bY +bY +dS +ed +aa +aa +aa +aa +aa +aa +aa +aa +bv +fK +fL +fL +fL +fL +fL +fL +fL +fL +fL +fL +gE +ed +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +ab +ab +ac +ac +ah +ah +ac +ac +ab +ab +aa +aa +aa +aa +aa +ab +ab +ac +ac +ah +ah +ah +ah +ah +ah +ac +ah +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +br +br +bw +bR +bY +bP +co +cx +cw +cw +cw +cw +cw +cw +cN +bP +bY +bY +bY +bY +bY +bY +dS +ed +aa +aa +aa +aa +aa +aa +aa +aa +bv +fK +fL +fL +fL +fL +fL +fL +fL +fL +fL +fL +gE +ed +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(80,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 +ab +ac +ac +ac +ah +ac +ac +ac +ab +ab +ab +ab +ab +ab +ab +ab +ah +ac +ah +ai +ac +ac +ac +ac +ac +ah +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +br +aa +bv +bR +bY +bP +cn +cn +cE +cE +cR +cR +cR +cn +cn +bP +bY +bY +bY +bY +bY +dF +dS +ed +aa +aa +aa +aa +aa +aa +aa +aa +bv +fK +fL +fL +fL +fL +fL +fL +fL +fL +fL +fL +gE +ed +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(81,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ah +ah +ac +ac +ac +ac +ah +ac +ac +ac +ac +ah +ac +ac +ah +ac +af +ah +ah +ah +ah +ah +ac +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +br +br +bv +bR +bY +bP +cn +cy +cF +cF +cF +cF +cF +cn +cn +bP +bY +bY +bY +bY +bY +bY +dS +ed +aa +aa +aa +aa +aa +aa +aa +aa +bv +fK +fL +ga +gi +fK +fL +fL +fL +fL +fL +fL +gE +ed +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(82,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ac +af +ac +ad +ah +ac +ac +ac +ac +ah +ac +ac +ah +ac +ah +af +ac +ah +ac +ah +ah +ac +ac +ac +ah +ac +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +br +bv +bR +bY +bP +cn +cy +cF +cF +cF +cF +cF +cn +cn +bP +bY +bY +bY +bY +bY +bY +dS +ed +aa +aa +aa +aa +aa +aa +aa +aa +bv +fK +fL +ga +fL +fK +fL +fL +fL +fL +fL +fL +gE +ed +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(83,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ac +ah +ac +ac +ac +ah +ah +ac +ac +af +ac +ah +ac +ac +ah +ac +ah +ac +ac +ah +ac +ac +ac +ac +ac +ac +ah +ac +ac +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +br +bv +bR +bZ +bP +cn +co +cn +cn +cn +cn +cn +cn +cn +bP +bY +dx +dz +bY +bY +bY +dS +ed +aa +aa +aa +aa +aa +aa +aa +aa +bv +fM +fW +gb +gi +go +fW +fW +fW +fW +fW +fW +gF +ed +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(84,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ac +ac +ac +ac +ac +ah +ac +ac +ah +ah +ah +ah +ac +ac +ac +ah +ac +ac +ah +ac +ac +ac +ad +ah +ac +ad +ac +ac +ac +ac +ah +ac +ac +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +br +bw +bR +bY +bP +co +cn +cn +cn +cn +cn +cn +cn +cn +bP +bY +bY +bY +bY +bY +bY +dS +ee +br +aa +aa +aa +aa +aa +aa +aa +aa +fN +fN +gc +gd +gc +fN +bT +bT +bT +bT +bT +bT +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(85,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ac +ac +ac +ac +ac +ac +ah +ah +ac +ah +ac +ac +ah +ac +ac +ac +ah +ah +ac +ah +ac +ac +ac +ac +ah +ac +ac +ac +ah +ac +ac +ah +ac +ac +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bw +bR +bY +bP +bP +bP +bP +bP +cO +bP +bP +bP +bP +bP +bY +bY +dA +bY +dx +bY +dS +ed +br +aa +aa +aa +aa +aa +aa +aa +aa +br +br +gd +gd +gd +br +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(86,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ah +ac +ac +ac +ac +ac +ac +ac +ah +ac +ah +ac +af +ah +ah +ac +ac +ac +ah +ac +ah +ah +ah +ah +ah +ah +ac +ac +ac +ah +ac +ac +ah +ac +ac +ac +ac +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bw +bR +bY +bP +cp +cz +cz +cz +cz +cz +cG +cz +dq +bP +bY +bY +bY +bY +bY +bY +dS +ed +br +aa +aa +aa +aa +aa +aa +aa +aa +br +br +gd +gd +br +br +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(87,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ac +ah +ac +ac +ac +ah +ah +ac +ac +ah +ac +ah +ac +ac +ac +ah +ad +ac +ac +ah +ac +ac +ac +ac +ac +ac +ah +ah +ah +ah +ah +ac +ac +ah +ac +ad +ac +ac +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bw +bR +bY +bP +cq +cz +cz +cz +cz +cV +dd +cz +dq +bP +bY +dA +bY +bY +bY +bY +dS +ed +br +aa +aa +aa +aa +aa +aa +aa +aa +br +br +br +br +br +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(88,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ac +ac +ah +ah +ac +ac +ac +ah +ac +ac +ah +ac +ah +ah +ac +ac +ah +ah +ac +ah +ah +ac +ah +ac +ac +ac +ac +ac +ad +ac +ah +ac +ac +ac +ah +ac +ac +ac +ac +ac +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +br +bw +bR +bY +bP +cr +cz +cG +cz +cz +cW +de +cz +dr +bP +bY +bY +bY +bY +dA +bY +dS +ed +br +aa +aa +aa +aa +aa +aa +aa +aa +br +br +br +br +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(89,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ac +ac +ac +ac +ac +ah +ac +ac +ac +ah +ad +ac +ah +ac +ac +ah +ac +ac +ac +ac +ac +ah +ac +ac +ah +ah +ah +af +ac +ac +ac +ac +ah +ac +ac +ac +ah +ac +ac +ac +ac +ac +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +br +bv +bR +bY +bP +cq +cz +cH +cz +cz +cX +df +cz +ds +bP +bY +bY +bY +dC +bY +bY +dS +ed +br +aa +aa +aa +aa +aa +aa +br +br +br +aa +br +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(90,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ac +ah +ah +ac +ac +ah +ac +ac +ah +ac +ac +ah +ah +ah +ac +ac +ac +ah +ac +ac +ac +ac +ah +ah +ah +ac +ac +ac +ah +ac +ac +ac +ah +ac +ad +ac +ac +ac +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +br +bv +bR +bY +bP +cs +cz +cz +cz +cz +cz +cz +cz +ds +bP +bY +bY +bZ +bY +bY +bY +dS +ed +br +aa +aa +aa +aa +aa +aa +br +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(91,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ac +ac +ac +ah +ad +ac +ac +ac +ah +ac +ac +ah +ac +ac +ah +ac +ac +ac +ac +ah +ah +ac +ac +ah +ah +ac +ac +ac +ac +ac +ah +ah +ac +ac +ah +ac +af +ac +aJ +ac +ac +ac +ac +ac +ac +ab +an +an +an +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +br +bv +bR +bY +bP +bP +bP +bP +bP +bP +bP +bP +bP +bP +bP +bY +bY +bY +bY +bZ +bY +dS +ee +br +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(92,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ah +ac +ac +ac +ah +ah +ac +af +ac +ah +ac +ac +ah +ac +ac +ah +ad +ac +ac +ac +ac +ah +ah +ac +ac +ah +ah +ac +ac +ac +ac +ac +ah +ac +ac +ah +ac +ac +ac +aJ +ac +ac +ac +ac +ac +ac +ab +aa +aa +an +an +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +br +bv +bS +bY +bY +bY +bZ +bY +bZ +bY +bY +bY +bY +bY +bY +dx +bY +bY +bY +bY +bY +dT +ed +br +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(93,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ah +ah +ah +ac +ac +ah +ac +ac +ac +ah +af +ac +ah +ac +ac +ah +ah +ac +ac +ah +ac +ac +ah +ac +ac +ac +ah +ah +ah +ad +ac +ac +ah +ac +ac +ah +ac +ac +ac +ah +ac +ad +ac +ac +ac +ac +ab +aa +aa +aa +an +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +br +bv +bP +ca +cf +cf +cf +cf +cf +cS +bP +dg +cf +cf +cf +cf +cf +cf +cf +cf +cS +bP +ed +br +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(94,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ah +ah +ac +ac +ah +ac +ac +ac +ah +ac +ac +ah +ac +ac +ac +ah +ac +ac +ah +ac +ac +ah +ah +ac +ac +ac +af +ah +ah +ac +ac +ah +ac +ac +ah +ah +ah +ah +ah +ac +ac +ac +ac +ac +ac +ab +an +an +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +br +aa +bT +bT +bT +ct +ct +ct +bT +bT +bT +bT +bT +ct +ct +ct +bT +bT +bT +bT +bT +bT +br +br +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(95,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ah +ah +ac +ac +ah +ac +ac +ac +ah +ac +ac +ah +ac +ac +ac +ah +ac +ac +ah +ac +ac +ac +ah +ah +ac +ac +ac +ac +ah +ah +ac +ah +ac +ac +ac +ac +ac +ac +ah +ac +ac +ac +ac +ac +ac +ab +aa +an +an +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +br +br +aa +aa +aa +aa +aa +br +aa +aa +aa +aa +br +br +aa +br +br +br +br +br +br +br +cu +br +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(96,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ah +ac +ac +ah +ac +ac +ac +ah +ac +ac +ah +ah +ac +ac +ah +ac +ac +ah +ah +ac +ac +ac +ah +ac +ac +ac +ac +ac +ah +ac +ah +ah +ac +ac +ac +ac +ac +ah +ac +ad +aK +ac +ac +ac +ab +an +an +an +an +an +aa +aa +aa +aa +aa +aa +aa +aa +aa +br +aa +aa +aa +aa +aa +aa +br +cu +br +br +br +br +aa +aa +aa +aa +aa +br +br +aa +aa +aa +br +br +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(97,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ah +ac +ah +ac +ac +ah +ac +ac +ac +ah +ac +ac +ac +ah +ac +ac +ah +ac +ac +ac +ah +ac +af +ac +ah +ah +ac +ac +ac +ac +ac +ac +ac +ah +ac +ac +ac +ac +ac +ah +ac +ac +ac +ac +ac +ac +ab +aa +an +an +an +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +br +br +aa +aa +aa +aa +aa +aa +br +aa +aa +br +br +aa +aa +aa +aa +aa +aa +br +br +aa +aa +aa +br +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(98,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ah +ac +af +ac +ac +ah +ac +ac +ah +ah +ac +ac +ac +ah +ac +ac +ah +ah +ac +ac +ah +ah +ah +ah +ah +ah +ac +ac +ac +ac +ac +ac +ah +ah +ah +ah +ah +ac +ac +ah +ac +ac +af +ac +ac +ac +ab +an +an +an +an +an +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +br +br +aa +aa +aa +aa +br +br +aa +aa +aa +br +br +aa +aa +aa +aa +aa +aa +br +br +br +aa +br +aa +aa +eO +fd +eO +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(99,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ah +ah +ac +ac +ac +ah +ac +ac +ah +ad +ac +ac +ac +ah +ac +ac +ac +ah +ah +ac +ac +ac +ac +ac +ac +ah +ah +ac +ac +ac +ah +ah +ah +ac +ac +ac +ac +ac +ac +ah +ac +ad +ac +ac +ac +ac +ab +aa +aa +aa +aa +an +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +br +br +aa +aa +aa +br +aa +aa +aa +aa +aa +br +aa +aa +aa +aa +aa +aa +br +aG +br +aa +br +aa +aa +eP +eu +eP +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(100,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ah +ad +ac +ac +ah +ac +ac +ah +ac +ac +ac +ac +ah +ah +ad +ac +ac +ah +ah +ah +ah +ac +ac +ac +ac +ah +ah +ah +ah +ah +ac +ac +ac +ac +ac +ac +ac +ac +ah +ac +ac +ac +ac +ac +ac +ab +aa +aa +aa +aa +an +an +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +br +br +aa +br +br +aa +aa +aa +aa +aa +br +aa +aa +aa +aa +aa +aG +aG +aG +br +cu +br +aa +aa +eQ +eu +eP +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(101,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ah +ah +ah +ah +ah +ah +ac +ac +ac +ac +ac +ac +ac +ac +ah +ah +ac +ac +ac +ac +ac +ah +ah +ah +ac +ac +ac +ah +ac +ac +ac +ac +ac +ac +ac +ac +ad +ac +ac +ah +ac +ac +ac +ac +ac +ac +ab +ab +ab +ab +ab +an +an +an +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +br +br +br +aa +aa +aa +aa +aa +aa +br +br +aa +aa +aa +aa +aG +aG +aG +aG +aG +et +et +eJ +eR +fd +fj +fo +fA +et +fX +fo +fA +et +fX +fo +fA +et +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(102,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ah +ac +ac +ac +ac +ac +ac +ah +ah +ah +ah +ac +af +ac +ac +ac +ac +ad +ah +ac +af +ac +ah +ac +ac +ac +ac +ac +ac +ah +ah +ah +ac +ac +ah +ac +ad +ac +ac +ac +ac +aF +aL +aO +an +an +an +an +an +an +an +an +aa +aa +aa +aa +aa +aa +aa +aa +aa +cu +br +aa +aa +aa +aa +aa +aa +aa +br +aa +aa +aG +aG +aG +aG +aG +aG +aG +et +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +gz +aa +aa +aa +gI +gJ +gJ +gJ +gI +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(103,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ah +ah +ah +ac +ac +ah +ah +ah +ac +ac +ac +ah +ah +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ah +ac +ac +ah +ah +ac +ac +ac +ac +ah +ah +ah +ac +ah +ac +ac +ah +ac +ac +ac +ac +ac +ac +aF +an +an +an +an +an +an +an +an +an +an +an +aa +aa +aa +aa +aa +aa +aa +aa +br +br +aa +aa +aa +aa +aa +aa +aa +br +aG +aG +aG +aG +aG +aG +aG +aG +et +et +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eP +aa +aa +aa +gJ +gP +gP +gP +gS +gJ +gJ +gJ +gI +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(104,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ac +ah +ah +ac +ac +ac +ah +ah +ah +ac +ah +ac +ac +ah +ah +ah +ah +ah +ah +ah +ac +ac +ah +ac +ac +ah +ac +ac +ac +ac +ah +ah +ad +ac +ac +ah +ac +ac +ah +ac +ac +ac +ac +ac +ac +ab +ab +ab +ab +ab +an +an +an +an +an +an +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +br +br +aa +aa +aa +aa +aa +aa +aG +aG +aG +aG +aG +aG +aG +aG +aG +et +ez +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +fj +fo +fo +gG +gJ +gP +gP +gP +gQ +gQ +gQ +gW +gJ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(105,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ah +ac +ac +ac +ac +ad +ah +ah +ah +ac +ac +ah +ac +af +ac +ac +ac +ah +ac +ac +ac +ac +ac +ah +ah +ac +ac +ac +ah +ac +ac +af +ac +ah +ac +ac +ah +ac +ad +ac +ac +ac +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +br +br +aa +aa +aa +aa +aa +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +et +eA +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +fd +eu +eu +fd +gL +gQ +gQ +gQ +gQ +gQ +gP +gW +gX +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(106,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ah +ah +ac +ac +ac +ac +ac +ac +ah +ac +ac +ah +ac +ac +ac +ac +ac +ah +ah +ac +ac +ac +ac +ac +ah +ac +ac +ac +ac +ac +ac +ac +ac +ah +ac +ac +ah +ac +ac +ac +ac +ac +ac +ab +aa +aa +an +an +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +br +aa +aa +aa +aa +aa +aG +aG +aW +aW +aW +aW +aW +aW +aW +aW +et +eB +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +gA +fo +fo +gG +gJ +gP +gP +gP +gQ +gQ +gQ +gW +gJ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(107,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 +ab +ac +ac +ac +ah +ac +ac +ac +ac +ac +ac +ah +ac +ac +ah +ah +ah +ah +ac +ac +ac +ah +ac +ac +ac +ac +ac +ah +ac +ac +ac +ac +ac +ac +ah +ah +ah +ac +ac +ah +ac +ac +ac +ac +ac +ac +ab +an +an +an +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +br +br +aa +aa +aG +aG +aG +aG +aW +bb +bc +bc +bc +bo +bc +bd +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +gB +aa +aa +aa +gJ +gP +gP +gP +gS +gJ +gJ +gJ +gI +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(108,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 +ab +ac +ac +ac +ah +ac +ac +ac +ac +ac +ac +ah +ac +ac +ac +ac +ad +ah +ac +ac +ac +ah +ah +ah +ah +ah +ah +ah +ah +ac +ac +ac +ac +ah +ah +ac +ac +ac +ac +ah +ac +ad +ac +ac +ac +ac +ab +an +an +an +an +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +br +aa +aa +aG +aG +aG +aG +aW +bc +bc +bh +bc +bc +bc +bd +eu +eu +eu +eu +eu +eu +eu +eu +eu +fO +eu +ge +eu +eu +eu +eu +eu +eJ +aa +aa +aa +gI +gJ +gJ +gJ +gI +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(109,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 +ab +ac +ac +ac +ah +ah +ac +ac +ac +ac +ac +ah +ac +ac +ac +ac +ac +ah +ah +ac +ac +ac +ac +ac +ac +ac +ac +ac +ah +ah +ac +ah +ah +ah +ac +ac +ac +ac +af +ah +ac +ac +ac +ac +ac +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +br +br +aG +aG +aG +aG +aG +aW +bo +bc +bc +bc +bc +bc +aW +et +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +gz +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(110,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 +ab +ab +ac +ac +ac +ac +ah +ah +ac +ac +ac +ac +ah +ah +ac +ac +ac +ac +ac +ah +ah +ac +ac +ac +ac +ac +ac +ac +ac +ac +ah +ah +ah +ac +ac +ac +ac +ac +ac +ac +ah +ac +ac +ab +ab +ab +ab +an +an +an +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aG +aG +aG +aW +bc +bc +bc +bc +bc +bc +aW +et +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eP +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(111,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 +ab +ab +ac +ac +af +ac +ac +ac +ah +ah +ac +ac +ac +ac +ah +ac +ac +ac +ac +ac +ac +ah +ah +ah +ah +ah +ah +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +ab +ab +ab +aa +an +aa +aa +aa +an +an +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aG +aG +aG +aG +aW +bc +bc +bc +bc +bh +bc +aW +et +et +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +gC +aa +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(112,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 +ab +ah +ah +ac +ac +ac +ac +ac +ac +ac +ah +ac +ac +ac +ac +ah +ah +ah +ah +ah +ac +ac +ac +ac +ac +ah +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +ab +aa +aa +aa +aa +an +aa +aa +aa +aa +an +an +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aa +aa +aa +aa +aa +aG +aG +aG +aG +aG +aG +aG +aG +aW +bh +bc +bn +bc +bc +bc +aW +aW +et +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +et +aG +aG +aG +aG +aG +aa +aa +aG +aG +aG +aG +aG +aG +aG +aa +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(113,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 +ab +ab +ah +ac +ac +ac +ad +ah +ah +ac +ac +ah +ah +ac +ac +ac +ac +ac +ac +ah +ac +ac +ac +ac +af +ah +ah +ac +ac +ac +ah +ah +ah +ah +ah +ac +ac +ac +ac +ac +ac +ab +ab +aa +aa +aa +aa +aa +an +an +an +aa +aa +aa +an +aa +aa +aa +aa +aa +aa +aa +aa +aG +aa +aG +aG +aa +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aW +bc +bc +bc +bc +bc +bo +bc +aW +et +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +eu +et +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(114,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 +ab +ab +ac +ah +ah +ac +ac +ac +ah +ah +ac +ac +ac +ah +ah +ah +ac +ac +af +ac +ah +ac +ac +ah +ah +ah +ah +ac +ac +ac +ac +ah +af +ac +ac +ah +ah +ah +ah +ah +ah +ah +ab +aa +aa +aa +aa +aa +aa +aa +aa +an +aa +aa +aa +an +aG +aa +aa +aa +aa +aa +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aW +aW +aW +bc +bc +bc +bc +bc +bc +bo +aW +et +et +et +et +et +et +et +et +et +et +et +et +et +et +et +et +et +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aN +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(115,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 +ab +ab +ac +ac +ac +ah +ah +ac +ac +ah +ah +ac +ac +ac +ac +ad +ah +ac +ac +ac +ac +ah +ac +ac +ah +ac +ac +ac +ac +ac +ac +ac +ah +ac +ac +ac +ac +ac +ah +ah +ac +ac +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aG +aa +aa +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aW +aW +bb +bc +bc +bo +bc +bc +bc +bc +aW +aW +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aG +aG +aG +aG +aN +aN +aN +aG +aG +aN +aN +aN +aN +aN +aN +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(116,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 +ab +ac +ac +ac +ac +ac +ah +ah +ac +ac +ah +ah +ah +ac +ac +ac +ah +ah +ah +ad +ac +ah +ac +ac +ah +ac +ac +ac +ah +ah +ah +ah +ah +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aW +aW +aW +aW +aW +aW +aW +aW +aW +aW +aW +aW +aW +aW +bh +bc +bc +bc +bc +bc +bh +aW +aW +aW +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aR +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aT +aT +aT +aN +aN +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(117,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 +ab +ab +ac +ac +ac +ac +ac +ac +ah +ah +ac +ac +ac +ah +ah +ah +ac +ac +ac +ah +ah +ac +ah +ac +ac +ah +ac +ac +ac +ah +ad +ac +ac +ac +ac +ah +ah +ah +ah +ah +ac +ac +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aG +aG +aG +aG +aG +aW +aW +aW +aW +aW +bt +bc +bc +bh +bc +bc +bc +bc +bh +bc +bc +bc +bc +bo +bc +bc +bc +bc +bc +bc +aW +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aT +aT +aT +aT +aT +aN +aN +aN +aN +aN +aN +aN +aN +aN +aT +aT +aT +aT +aN +aN +aN +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(118,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ah +ac +ac +ac +ac +ad +ah +ac +ac +ac +ac +ac +ac +ah +ac +ac +ah +ac +ac +ac +ac +ac +ac +ac +ac +ah +ah +ad +ah +ah +ac +ac +ac +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aG +aG +aG +aG +aG +bg +bg +aW +bh +bc +bc +bc +bc +bc +bc +bc +bc +bc +bo +bc +bc +bh +bc +bc +bc +bc +bc +bc +bc +bh +bc +bc +aW +aN +aN +aN +aN +aT +aT +aN +aN +aN +aN +aN +aR +aT +aT +aT +aT +aT +aN +aN +aN +aN +aT +aN +aN +aN +aT +aT +aT +aT +aT +aN +aT +aN +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(119,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ah +ac +ac +ac +ac +ac +ah +ah +ah +ac +ac +ac +ac +ah +ac +ac +ah +ah +ah +ac +ac +ac +ac +ah +ah +ah +ac +ac +af +ac +ac +ac +ac +ab +ab +aa +aa +aa +aa +aa +aa +aG +aG +aG +aG +aG +aG +aG +aG +aW +aW +aW +aW +bc +bc +bc +bc +bc +bc +bc +bc +bc +bc +bc +bc +bc +bc +bc +bc +bc +bc +bc +bc +bc +bc +bc +bc +aW +aW +aW +aN +aN +aN +aN +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aN +aN +aN +aT +aT +aT +aN +aN +aT +aT +aT +aT +aT +aT +aT +aT +aN +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(120,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 +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ah +ah +ac +ac +ac +af +ac +ac +ah +ah +ah +ah +ah +ah +ac +ac +ac +af +ah +ah +ah +ah +ah +ah +ac +ac +ac +ac +ac +ac +ac +ac +ab +ab +aa +aa +aa +aa +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aW +bb +bc +bc +bh +bc +bc +bc +bq +bc +bc +bc +bh +bc +bc +bc +bo +bc +bc +cT +bc +bc +bc +bc +bc +bh +bo +aW +aW +aN +aN +aN +aN +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aN +aN +aT +aT +aT +aT +aN +aN +aT +aT +aT +aT +aT +aT +aT +aT +aN +aN +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(121,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ah +ah +ah +ac +ac +ac +ac +ac +ac +ac +ac +ad +ah +ah +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ah +ah +ah +ah +ah +ab +aa +aa +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aW +bc +bc +bc +bc +bc +bn +bc +bc +bh +bc +bc +bc +bc +bc +bc +bc +bc +bc +bc +bc +bh +bc +bo +bc +bc +bc +aW +aN +aN +aN +aN +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aN +aN +aT +aT +aT +aT +aT +aN +aN +aT +aT +aT +aT +aT +aT +aT +aT +aN +aN +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(122,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 +ab +ac +ac +ac +ac +ac +aj +ac +ac +ac +ac +ac +ac +ah +ah +ah +ac +ac +ac +ac +ac +ac +ac +ac +ah +ah +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ah +ac +ac +ac +ac +ab +aa +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aV +aW +bc +bc +bc +bc +bc +bc +bc +bc +bc +bc +bc +bc +bh +bc +bc +bc +bc +bc +bc +bc +bc +bc +bc +bc +aW +aW +aW +aN +aN +aN +aN +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aN +aN +aT +aT +aT +aT +aT +aN +aN +aT +aT +aT +aT +aT +aT +aT +aT +aN +aN +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(123,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 +ab +ac +ac +ac +ac +ac +af +ac +ac +ac +ad +ac +ac +ac +ac +ah +ac +ac +ac +ac +ac +ac +ac +ac +ac +ah +ah +ah +ah +ac +ac +ac +ac +ac +ac +ac +ah +ah +ac +ac +ac +ac +ab +aa +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aV +aW +bc +bc +bc +bc +bc +bo +bc +bh +bc +bc +bc +bc +bc +bc +bo +bc +bc +bc +bc +bc +bc +di +bc +bh +aW +aN +aN +aN +aN +aT +aT +aT +aT +aT +aT +aT +aT +aZ +aT +aT +aT +aT +aT +aT +aN +aN +aT +aT +aT +aT +aT +aT +aT +aN +aN +aT +aT +aT +aT +gV +gV +gV +aN +aN +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(124,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ah +ah +ah +ah +ah +ah +ac +ac +ac +ac +ac +ac +ac +ah +ah +ac +ac +ac +ah +ah +ah +ah +af +ac +ac +ac +ac +ab +aa +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aW +aW +bc +bc +aW +aW +aW +aW +aW +aW +aW +aW +aW +aW +aW +aW +aW +aW +aW +aW +aW +aW +aW +aW +aW +aW +aW +aN +aN +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aN +aN +aT +aT +aT +aT +aT +aT +aT +aP +aN +aN +aT +aT +aT +gV +gV +gV +aN +aN +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(125,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ah +ah +ah +ac +ac +ac +ac +af +ac +ah +ah +ah +ah +ah +ad +ac +ac +ac +ac +ah +ac +ac +ab +aa +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aN +aN +aN +bu +aW +bd +bd +aW +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aT +aT +aT +aT +aT +aZ +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aN +aN +aT +aT +aN +aN +aT +aT +aT +aN +aN +aN +aN +aT +aT +aT +aT +aT +aN +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(126,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 +ab +ab +ac +ac +ac +ac +ac +ac +ac +ak +ac +ac +ac +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ah +ah +ah +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ah +ac +ac +ab +aa +aa +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aN +aN +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aN +aN +aT +aT +aN +aN +aT +aT +aT +aN +aN +aN +aN +aT +aT +aT +aT +aT +aN +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(127,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 +ab +ac +ac +ac +ac +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ah +ah +ah +ah +ac +ac +ac +ac +ac +ac +ac +ac +ac +ah +ah +ah +ac +af +ab +ab +aa +aG +aG +aG +aG +aG +aG +aG +aG +aG +aN +aN +aR +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aY +aT +aT +aT +aT +aT +ba +aT +aT +aT +aT +aT +aT +aT +aY +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +bf +aT +aT +aT +aR +aN +aN +aT +gx +aN +aN +aT +aT +aT +aT +aN +aN +aN +aN +aN +aT +aT +aT +aP +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(128,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ae +ac +ac +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ah +ah +ac +ac +ac +ac +ac +ah +ah +ah +ah +ad +ac +ac +ac +ac +ab +aa +aG +aG +aG +aG +aG +aG +aG +aG +aG +aN +aN +aI +aT +aT +aT +aT +aT +aT +aT +aT +aT +aZ +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aN +aN +aT +aT +aP +aN +aT +aT +aT +aT +aT +aN +aN +aN +aP +aN +aT +aT +aN +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(129,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aj +ac +ac +ak +ac +ac +ac +ac +ac +ac +ac +ac +ac +ah +ah +ah +ah +ah +ah +ah +ac +ac +ac +ac +ac +ac +ac +ac +ab +aa +aG +aG +aG +aG +aG +aG +aG +aG +aG +aH +aT +aI +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aN +aN +aN +aT +aT +aT +aN +aN +aT +aT +aT +aT +aN +aN +aN +aT +aT +aT +aT +aN +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(130,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +al +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +al +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ah +ac +ac +ac +ac +ac +ac +ac +ac +ab +aa +aG +aG +aG +aG +aG +aG +aG +aG +aG +aM +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +bf +aT +aT +aT +aT +aT +aZ +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aN +aN +aT +aT +aT +aT +aN +aN +aN +aT +aT +aT +aN +aN +aT +aT +aT +aT +aT +aN +aN +aT +aT +aT +gY +aN +aN +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(131,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 +ab +ab +ac +ac +ac +ac +ae +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ah +aF +aF +ah +ah +ah +ah +ah +ah +ab +aa +aG +aG +aG +aG +aG +aG +aG +aG +aG +aI +aT +aT +aT +aT +aT +aZ +aT +aT +aT +bj +bl +bj +bj +bj +bm +bj +bj +bj +bj +bk +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bk +bs +aT +aY +aT +aT +ej +aT +aT +aT +aT +aT +aN +aN +aN +aT +aT +aT +aN +aN +aN +dw +aT +aT +aN +aN +aT +aT +aT +aT +aT +aT +aN +aN +aT +aT +aT +aT +aN +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(132,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 +ab +ac +ac +ac +ac +ac +ac +af +ac +ac +ac +ac +ac +ac +ac +ak +ac +ac +ac +ac +ac +aj +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +aa +aG +aG +aG +aG +aG +aG +aG +aG +aN +aI +aT +aT +aT +aT +aT +aT +aT +aT +aT +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bk +bj +bj +bj +bj +bj +bj +bj +bj +bj +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aN +aN +aN +aT +aT +aN +aN +aN +aT +aT +aT +aT +aN +aP +aT +aT +aT +aT +aT +aT +aN +aN +aT +aT +aT +aN +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(133,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ad +aD +aD +aD +aD +ad +ac +ac +ac +ac +ab +aa +aG +aG +aG +aG +aG +aG +aG +aG +aN +aR +aT +aT +aT +aT +aT +aT +be +aT +aT +bj +bj +bj +bj +bj +bj +bj +bj +bj +bm +bj +bj +bj +bj +bj +bj +bm +bj +bj +bk +dy +bj +bj +aT +aT +aT +aT +aT +aT +aT +aZ +aT +aT +aT +aT +aN +aN +aN +aT +aN +aN +aN +aT +aT +aT +aT +aN +aN +aN +aT +aT +aT +aT +aT +aN +aN +aT +aT +aT +aN +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(134,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 +ab +ac +ac +ac +ac +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ad +ac +ac +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aE +aD +aD +aD +ac +ac +ac +ac +ac +ab +aa +aG +aG +aG +aG +aG +aG +aG +aG +aN +aM +aT +aT +aT +aT +aT +aT +aT +aT +aT +bj +bj +bp +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +aT +aT +aT +aT +aZ +aT +aT +aT +aT +aT +aT +aT +aT +aN +aN +aN +aN +aN +aP +aT +ej +aT +aT +aN +aN +aN +aT +aT +aT +aT +aT +aN +aN +aT +aT +aT +aN +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(135,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 +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ak +ac +af +ac +ac +ac +ac +ac +ac +aD +aD +aD +aD +ac +ac +ac +ac +ac +ab +aa +aa +aG +aG +aG +aG +aG +aG +aG +aM +aM +aT +aT +aT +aT +aY +aT +aT +aT +aT +bj +bj +bj +bj +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +bj +bj +bj +bj +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aN +aN +aN +aN +aN +aN +aT +aT +ej +aT +aN +aN +aN +aT +aT +aT +aT +aN +aN +aT +aT +aT +aP +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(136,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 +ab +ab +ac +ac +ac +ac +ae +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aD +aD +aD +aD +ac +ac +ac +ac +ac +ab +ab +aa +aG +aG +aG +aG +aG +aG +aG +aG +aH +aT +aT +aT +aT +aT +aT +aT +aT +aT +bj +bj +bj +bj +aT +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +aT +bj +bj +bj +bj +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aN +aN +aN +aT +aT +aT +aT +aN +aN +aN +aN +aT +aT +aN +aN +aT +aT +aT +aN +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(137,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ak +ac +ac +af +ac +ac +ac +ac +ac +ae +ac +ac +ac +ac +aj +ac +ac +ac +ac +ac +ac +ac +ac +aD +aD +aD +aD +ac +ac +ac +ac +ac +ac +ab +ab +aa +aG +aG +aG +aG +aG +aG +aG +aN +aH +aT +aT +aT +aT +aT +aT +aT +aT +bj +bj +bj +bj +aT +bu +bx +by +by +by +by +bu +cI +cI +cI +cI +cI +bu +aT +bj +bj +bj +bj +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aN +aN +aT +aT +aT +aT +aN +aN +aN +aN +aT +aT +aP +aN +aT +aT +aT +aN +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(138,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ak +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +al +ac +ac +ad +aD +aD +aD +aD +ad +ac +ac +ac +ac +ac +ac +ab +aa +aa +aG +aG +aG +aG +aG +aG +aN +aH +aT +aT +aT +aT +aT +aT +aT +aT +bj +bj +bj +bj +aT +bu +by +bU +by +bU +by +bu +bj +bj +bE +bj +bj +bu +aT +bj +bj +bj +bp +aT +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +aT +aT +aT +aT +aT +aT +aN +aN +aT +aT +aT +aT +aN +aN +aN +aT +aT +aN +aN +aN +aT +aT +aN +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(139,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aD +aD +aD +aD +ac +ac +ac +ac +ac +ac +ac +ab +ab +aa +aG +aG +aG +aG +aG +aG +aN +aH +aT +aT +aT +aT +aT +aT +aT +aT +bj +bj +bj +bj +aT +bu +by +bM +bM +cg +by +bu +bj +bj +bj +bj +bj +bu +aT +bj +bj +bj +bj +aT +bu +by +dV +dV +dV +dV +bu +bj +bj +bj +bj +fp +bu +aT +aT +aT +aT +aT +aT +aT +aN +aN +aT +ej +aT +aT +aN +aN +aN +aT +aT +aN +aN +aT +aT +aN +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(140,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 +ab +ac +ac +ac +ac +ac +al +ac +ac +af +ac +ac +ac +ac +ac +ac +ac +ac +af +ac +ac +ac +ac +ac +ad +ac +ac +ac +ac +ac +ac +ac +aD +aD +aD +aE +ac +ac +ac +ac +ac +ac +ac +ac +ab +aa +aG +aG +aG +aG +aG +aG +aG +aM +aT +aT +aT +aT +aT +aT +aT +aT +bj +bj +bj +bj +aT +bu +bz +bM +bM +ch +by +bu +bj +bu +cI +cI +cI +bu +aT +bj +bj +bj +bj +aT +bu +by +by +bz +by +by +bu +bj +bj +bj +bj +bu +bu +aT +aT +aT +aT +aT +aT +aT +aT +aN +aP +aT +aT +aT +aT +aN +aN +aT +aT +aT +aT +aT +aT +aN +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(141,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aD +aD +aD +aD +ac +ac +ac +ac +ac +al +ac +ac +ab +aa +aa +aG +aG +aG +aG +aG +aN +aH +aT +aT +aT +aT +aT +aT +aT +aT +bk +bk +bj +bj +aT +bu +by +bM +bM +bM +by +bu +bj +bu +bu +bu +bu +bu +aT +bj +bj +bj +bj +aT +bu +by +by +ek +by +by +by +bj +eS +bj +bj +fp +bu +aT +aT +aT +aT +aT +aT +aT +aT +aN +aN +aT +aT +aY +aT +aT +aN +aN +aN +aT +aT +aT +aT +aN +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(142,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aj +ac +ac +ac +ac +ac +ac +af +ac +ac +aD +aD +aD +aD +ac +aj +ac +ac +ac +ac +ac +ac +ab +ab +aa +aG +aG +aG +aG +aG +aM +aT +aT +aT +aT +aT +aT +aT +aT +aT +bj +bm +bj +bj +aT +bu +by +bV +by +bV +by +bu +bj +bj +bj +bj +bj +ci +dt +du +du +bj +bj +aT +bu +by +by +by +ev +by +by +bj +bj +bj +bj +bu +bu +aT +bu +bu +bu +bu +bu +bu +bu +bu +aN +aN +aQ +ej +aT +aY +aQ +aN +aN +aN +aP +aT +aT +aN +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(143,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 +ab +ac +ac +ac +aj +ac +ac +ac +ac +ac +ac +ac +ac +ae +ac +ac +ac +ac +aj +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ad +aD +aD +aD +aD +ad +ac +ac +ac +ac +ac +ac +ac +ac +ab +aa +aG +aG +aG +aG +aG +aM +aT +aT +aT +aT +aT +aT +aT +aT +aT +bj +bj +bj +bj +aT +bu +by +by +by +by +by +bu +bj +bj +bj +bj +bj +ci +aT +bm +bj +bj +bj +aT +bu +by +by +by +by +by +bu +bj +bu +bj +dy +fp +bu +aT +bu +gf +bj +bj +bj +bj +bj +bu +aT +aT +aT +aT +ej +aT +aT +aT +aN +aN +aN +aN +aN +aN +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(144,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 +ab +ab +ac +ac +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ak +ac +ac +ac +ac +ac +ac +ac +ac +aD +aD +aD +aD +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +aa +aa +aG +aG +aG +aG +aN +aT +aT +aT +aT +aT +aT +aT +aT +aT +bj +bj +bj +bj +aT +bu +bu +bu +bu +bu +ci +bu +bj +bu +bu +bu +bu +bu +aT +bj +bj +bj +bj +aT +bu +by +dW +dW +dW +dW +bu +bj +bu +fe +bk +bu +bu +aT +bu +bj +bj +bj +dy +bj +bj +bu +aT +aT +aY +aT +aT +aT +aT +aT +aN +aN +aG +aG +aG +aN +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(145,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 +ab +ac +ac +ac +ac +ac +ag +ag +ac +ac +ac +ac +ac +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aD +aD +aD +aD +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +aa +aa +aG +aG +aG +aG +aN +aR +aT +aT +aT +aT +aT +bf +aT +aT +bj +bj +bj +bj +aT +bu +bA +bj +bj +bu +bj +bj +bj +bu +bj +cY +cY +bu +aT +bj +bj +bj +bj +aT +bu +bu +bu +bu +bu +bu +bu +bj +bu +fe +bj +fp +bu +aT +bu +bj +bj +bj +bj +bl +bj +bu +aT +ej +aT +aT +aQ +aN +aN +aN +aN +aG +aG +aG +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(146,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 +ab +ac +ac +ac +ac +ac +ac +ag +ag +ag +ac +ac +ac +ac +ac +ac +ac +ac +af +ac +ac +ac +af +ac +ac +aj +ac +ac +ac +ac +ac +aD +aD +aD +aD +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +ab +aa +aG +aG +aG +aG +aN +aN +aT +aT +aT +aT +aT +aT +aT +aT +bj +bj +bj +bj +aT +bu +bB +bj +bj +bu +bj +bj +bj +bj +bj +bj +bj +dj +aT +bj +bj +bk +du +dt +ci +bj +bj +bj +bj +bj +ci +bj +bu +fe +bj +bu +bu +aT +bu +bj +bj +bj +bj +bj +bj +bu +aT +aT +aT +aT +aN +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(147,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 +ab +ac +ac +ac +ac +ac +ac +ac +ac +ag +ac +ac +aj +ac +ag +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aD +aD +aD +aD +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +aa +aa +aa +aa +aG +aN +aN +aT +aT +aT +aT +aT +aT +aT +aT +bj +bj +bj +bj +aT +bu +bC +bj +bj +bu +bj +bj +bj +bj +bj +bj +bj +dj +aT +bj +bj +bj +bj +aT +bu +bu +bu +bu +bu +bu +bu +bj +bu +fe +bj +bu +bu +aT +bu +bj +bl +bj +bj +bp +bj +fs +aT +aN +aP +aN +aN +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(148,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 +ab +ac +ag +ac +ac +ac +ac +ac +am +ac +ac +ac +ac +ag +ag +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ad +aD +aD +aD +aD +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +aa +aa +aa +aG +aG +aG +aN +aT +aT +aT +aT +aT +aT +aY +aT +bj +bj +bj +bj +aT +bu +bB +bj +bj +bu +bj +bj +bj +bu +bj +bj +bj +bu +aT +bj +bj +bj +bm +aT +bu +dG +dG +el +dG +dG +bu +bj +bu +bj +bj +fp +bu +aT +bu +bj +bj +gk +bj +bj +bj +en +aT +aN +aN +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(149,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 +ab +ac +ac +ag +ac +ac +ac +ac +ag +ac +ac +ac +ac +ag +ac +ac +ac +ac +ac +ac +ac +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +aD +aD +aD +aD +ac +ac +ac +ac +ac +ac +ac +ac +ab +ab +ab +aa +aa +aG +aG +aG +aN +aN +aT +aT +aT +aT +aT +aT +aT +aT +bj +bj +bj +bj +aT +bu +bD +bj +bj +ci +bj +bj +bj +bu +bj +cZ +cZ +bu +aT +bj +bj +bj +bj +aT +bu +by +by +by +by +by +by +bj +bj +bj +bj +bu +fs +aT +bu +bj +gj +gq +bj +bj +bj +bu +fs +aN +aN +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(150,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 +ab +ac +ac +ag +ag +al +ac +ac +ag +ac +ac +ac +ag +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +af +ac +ac +ac +aE +aD +aD +aD +ac +ac +ac +ac +ac +ac +ab +ab +ab +aa +aa +aa +aa +aa +aa +aG +aN +aT +aT +aT +aT +aZ +aT +aT +aT +aT +bj +bj +bj +bj +aT +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +aT +bj +bj +bj +bj +aT +bu +by +by +ek +by +by +by +bj +bj +bj +bj +fp +bu +aT +bu +bj +bj +dy +bj +dy +bj +bu +bu +aN +aN +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(151,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 +ab +ac +ac +ac +ag +ac +ac +ac +ag +ac +ac +ac +ag +ac +ac +ac +ac +ac +aC +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aD +aD +aD +aD +ac +ac +ac +ac +ac +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aG +aN +aN +aT +aT +aT +aT +aT +aT +aT +aT +bj +bj +bj +bj +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +bj +bj +bj +bj +aT +bu +by +by +by +bz +by +bu +bj +bj +bj +bj +bu +bu +aT +bu +bj +bl +bj +gv +bj +dP +bu +bu +aN +aN +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(152,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 +ab +ac +ac +ac +ag +ag +ac +ag +ac +ac +ac +af +ag +ac +ac +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aD +aD +aD +aD +ac +ac +ac +ac +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aN +aT +aT +aT +aT +aT +aT +aT +aT +bj +bj +bj +bj +bs +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bm +bj +bj +bj +bj +bj +bj +aT +bu +by +by +by +by +by +bu +bj +bj +bj +bj +fp +bu +aT +bu +bj +dP +gr +bj +bj +bj +bu +aT +aN +aN +aG +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(153,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 +ab +ac +ac +ac +ac +ag +ac +ag +ac +ag +ac +ac +ac +ag +ac +ac +ac +ac +ac +ac +ak +ac +ac +ac +ac +ac +ac +ac +ac +ac +ad +aD +aD +aD +aD +ad +ac +ac +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aT +aT +aT +aT +aY +aT +aT +aT +bi +bl +bj +bj +bj +bj +bj +bj +bj +bm +bp +bj +cA +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +aT +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +fP +bu +bj +bj +bj +bj +bj +bj +bu +aT +aN +aN +aG +aG +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(154,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 +ab +ac +ac +ac +ac +ag +ac +ag +ac +ag +ac +ac +ac +ag +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aG +aN +aT +aT +aT +aT +aT +aT +aT +aT +bj +bj +bj +bj +bj +bj +bE +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bl +bj +bj +bj +bj +bj +aT +aT +aT +aT +aT +aT +aT +aY +dt +dt +dt +dt +fr +aT +aY +fs +bu +bu +ci +eM +bu +bu +bu +aT +aN +aN +aG +aG +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(155,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 +ab +ab +ac +ac +ac +ag +ac +ag +ac +ac +ag +ac +ag +ag +ac +ag +ag +ac +ac +ac +ac +ac +ag +ac +ac +ac +al +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aN +aN +aT +aT +aT +aT +aT +aT +aT +aT +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bm +bj +bj +bj +bj +cA +bj +bj +aT +aT +aT +aT +aT +aT +aT +aT +aT +aY +aT +fk +aZ +aT +fQ +dt +dt +fC +aT +aT +aY +aT +aT +aT +aT +aN +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(156,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 +ab +ac +ac +ac +am +ag +ag +ac +ac +ag +ac +ag +ac +ac +ag +ac +ac +ac +ac +ag +ag +ag +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aN +aT +aT +aT +aT +aT +aT +aT +aT +aT +bj +bj +bj +bj +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +bj +bj +bj +bj +aT +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +fs +fB +fs +bu +eM +bu +bu +bu +bu +bu +bu +aT +aT +aN +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(157,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 +ab +ac +ac +ac +ac +ag +ag +ag +ad +ag +ac +ag +ac +ag +ag +ac +af +ac +ac +ag +ac +ac +ac +ac +ac +ac +ac +ac +ak +ac +ac +ac +ac +al +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aN +aT +aT +aT +aT +aT +aT +aT +aT +aT +bj +bj +bj +bj +aT +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +aT +bj +bj +bj +bj +aT +bu +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bu +aT +bu +fY +bj +bj +bj +bj +bj +bj +bu +aT +aN +aN +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(158,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 +ab +ab +ac +ac +ac +ag +ac +ag +ag +ag +ag +ag +al +ag +ac +ac +ac +ac +ag +ag +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aN +aN +aT +aT +aT +aT +aT +aZ +aT +aT +bj +bj +bj +bj +aT +bu +bF +bF +bF +bF +bF +bF +bD +bj +bj +da +bj +bu +aT +bj +bj +bj +bj +aT +bu +dH +bj +dH +bj +bj +eE +bj +dH +bj +bj +bu +aY +bu +bj +bj +bj +bj +bj +bj +bj +bu +aT +aN +aN +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(159,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 +ab +ac +ac +ac +ag +ac +ag +ag +ag +ag +ac +ac +ag +ac +ac +ac +ag +ag +ac +ac +af +ac +ac +ac +ac +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aN +aT +aT +aT +aT +aT +aT +aT +aT +bj +bm +bj +bj +aT +bu +bF +bF +bF +cj +bF +bF +bD +cl +bj +bD +bj +bu +aT +bj +bj +bj +bj +aT +bu +bj +bj +bj +bk +bj +bj +bj +bj +bj +bj +bu +aT +bu +bj +bj +dP +bj +bj +cA +bj +bu +aT +aN +aN +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(160,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 +ab +ac +ac +ac +ac +ag +ag +aj +ac +ag +af +ag +ac +ac +ac +ac +ag +ac +ac +ac +ag +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aG +aG +aN +aT +aT +aT +aT +aT +aT +aT +aT +bj +bj +bj +bj +aT +bu +bF +bF +bF +bF +bF +bF +bD +cl +bj +db +bj +bu +aT +bj +bj +bm +bj +aT +bu +dH +bj +dH +bj +bj +dH +bj +eF +bj +bj +eM +aT +bu +bj +bj +bj +bj +bj +bj +bj +eM +aT +aN +aN +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(161,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 +ab +ac +ac +ac +ac +ag +ag +ag +ac +ag +ag +ag +ag +ag +ac +ag +ag +aB +ac +ag +ag +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aG +aG +aN +aT +aT +aT +aT +aT +aT +aT +aT +bj +bj +bj +bj +aT +bu +bF +bF +bF +bF +cv +bF +bD +cl +bj +bj +bj +dj +aT +bj +bj +bj +bj +aT +bu +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bu +aT +bu +bj +dy +bj +bj +gw +bj +bj +dj +aT +aN +aN +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +aj +ac +ag +ag +ag +ac +ag +ag +ag +ac +ag +ac +ag +ag +ac +ag +ag +ac +ac +ac +ac +ac +ac +ac +ac +ak +ac +ac +ac +ac +ac +ac +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aN +aN +aT +aT +aT +aZ +aT +aT +aT +bj +bj +bj +bj +aT +bu +bF +bF +bF +ck +bF +bF +bD +cl +bj +da +bj +dj +aT +bj +bj +bj +bj +aT +bu +dH +bj +dH +bj +bE +dH +bj +dH +bj +bj +bu +aT +eM +bj +cA +bj +bj +bj +bj +bj +dj +aT +aT +aN +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ag +ag +ag +ag +ag +ag +ag +ag +ac +ag +ag +ag +ac +ag +ag +ac +ac +ag +ag +ac +ac +ac +ac +ac +ac +ac +ac +af +ac +ac +ac +ac +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aN +aT +aT +aT +aT +aT +aT +aT +aT +bj +bj +bj +bj +aT +bu +bF +bF +bF +cj +bF +bF +bD +cl +bj +bD +bj +dj +aT +bj +bj +bj +bj +aT +bu +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bu +fC +bu +bj +bj +bj +bj +dy +bk +bj +bu +aT +aT +aN +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ac +ac +ac +ag +ag +ag +ag +ac +ag +ac +ag +am +ag +ac +ag +ag +ac +ac +ag +ag +ac +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aN +aT +aT +aT +aT +aT +aT +aT +aT +bj +bj +bj +bm +aT +bu +bF +bF +bF +bF +bF +bF +bD +cl +bj +db +bj +bu +aT +bj +bj +bj +bj +aT +bu +dH +bj +dH +bj +bj +eF +bj +dH +bj +bj +bu +fD +bu +bj +bj +bj +bj +bj +bj +bj +bu +aT +aN +aN +aN +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ag +ag +ag +ac +ad +ag +ac +ag +ag +ac +ag +ag +ag +ag +ag +ag +ac +ac +ac +ac +ac +ac +ac +ac +af +ac +ac +ac +ac +ad +ac +ac +ac +ab +ab +aa +aa +aa +aa +aa +aa +aa +aG +aG +aG +aN +aN +aT +aT +aT +aT +aT +aT +aT +bj +bj +bj +bj +aT +bu +bD +bj +bD +bD +bD +bD +bD +bj +bj +bj +bj +bu +aT +bj +bj +bj +bj +aT +bu +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bu +aY +bu +bj +bj +bj +bj +bj +bj +bj +bu +aT +aN +aN +aN +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ag +ag +ag +ag +ac +ac +ag +ag +ag +ag +ag +ag +ag +ag +ag +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +ab +aa +aa +aa +aa +aa +aa +aG +aG +aG +aN +aT +aT +aT +aT +aT +aT +aT +aT +bj +bj +bj +bj +aT +gH +bD +bj +bD +cl +bj +bj +bj +bj +bj +da +bj +bu +aT +dv +bj +bj +bj +aT +bu +dH +bj +dH +bj +bj +dH +bj +dH +bj +bj +bu +aT +bu +bj +bj +cA +bj +dP +bj +bj +bu +aT +aT +aN +aN +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ag +ag +ag +ac +ac +ag +ag +ag +ag +ag +ag +ac +ag +ac +ac +ac +ag +ac +ac +ac +ac +ac +ac +ac +ae +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +aa +aa +aa +aa +aa +aa +aG +aG +aG +aN +aT +aT +aT +aT +aT +aT +aT +aT +bk +bj +bj +bj +aT +bu +bD +bj +bD +cl +bj +bj +bj +bj +bj +bD +bj +bu +aT +bj +bk +bj +bj +aT +bu +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bu +aT +bu +bj +bj +bj +bj +bj +bj +bj +bu +aT +aT +aN +aN +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ag +ag +ag +ac +ag +ag +ag +ag +ag +ac +ag +ag +ac +ag +ag +ag +ac +ac +ac +ag +ag +ag +ac +ac +ac +ac +ac +ac +ak +ac +ac +ac +ac +ac +ab +ab +aa +aa +aa +aa +aa +aG +aG +aG +aN +aN +aT +aT +aT +aT +aT +aT +aT +bj +bj +bj +bj +aT +bu +bG +bj +bD +cl +bj +bj +bj +bj +bj +db +bj +gH +aT +bj +bj +bj +bj +aT +bu +bu +bu +bu +bu +ci +bu +bu +bu +bu +bu +bu +aT +bu +bu +dm +bu +bu +eM +bu +fs +bu +fr +aN +aN +aN +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +ab +ac +ac +ac +ac +ac +ag +ag +ag +ag +ac +ag +ag +ag +ag +ag +ag +ag +ac +ag +am +ag +ag +ag +ag +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +ab +aa +aa +aa +aG +aG +aG +aN +aN +aT +aT +aT +ba +aT +aT +bf +aT +bj +bj +bj +bj +aT +bu +bD +bj +bD +cl +bj +bj +cA +bj +bj +bj +bj +bu +aT +bj +bj +bj +bj +aT +aT +aT +aT +aT +aT +aT +aT +eK +aT +aT +aT +fr +aT +aT +aT +aT +aT +dw +aT +aT +aT +aT +aT +aT +aT +aN +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +ab +ac +ac +ag +ag +aj +ab +ab +ag +ab +ab +ag +ag +ag +ag +ag +ag +ag +am +ag +ac +ac +ac +ac +ac +ag +ac +ac +ac +ac +al +ac +ac +ac +ac +ac +ac +ak +ac +ac +ac +ab +aa +aa +aa +aG +aG +aG +aN +aT +aT +aT +aT +aT +aT +aT +aT +aT +bj +bj +bj +bj +aT +bu +bH +bj +bD +cl +bj +bj +bj +bj +bj +da +bj +bu +aT +bj +bj +bj +bj +bj +bl +bj +bm +bj +bj +bj +bj +bj +eT +bj +bj +bj +bj +bl +bj +bj +bj +bj +bj +aT +aZ +aT +aT +aT +aN +aN +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +ab +ac +ac +ad +ag +ag +ab +ag +ag +ag +ab +ag +ag +ag +ag +ag +ac +ac +ag +ag +ag +ag +ag +ag +ag +ag +ac +ac +ac +ac +ac +ac +ac +ak +ac +ac +ac +ac +ac +ac +ac +ab +aa +aa +aa +aG +aG +aN +aN +aN +aT +aT +aT +aT +aT +aT +aT +aT +bj +bj +bj +bk +aT +bu +bI +bj +bD +cl +bj +bj +bj +bj +bj +bD +bj +dm +aZ +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +dy +bj +ff +bj +bj +bj +bj +fZ +bl +gk +bj +bj +aT +aT +aT +aT +aT +aN +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +ab +ac +ac +ac +ac +ab +ab +ag +ab +ag +ab +ab +ag +ag +ag +ag +am +ag +ag +ac +ac +ac +ac +ac +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +aa +aa +aG +aG +aG +aG +aN +aN +aT +aT +aT +aT +aT +aT +aT +aT +bj +bj +bj +bj +aT +bu +bD +bj +bC +cl +bj +bj +bj +bj +bj +db +bj +dn +dt +du +du +du +du +dy +bj +bj +bj +bj +bj +bp +bj +bj +bj +ff +bj +cA +bj +bj +bj +bj +bj +bj +bj +aT +aT +aT +aT +aT +aN +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +ab +ab +ac +ac +ac +ab +ag +ac +ag +ag +ag +ab +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ac +ac +ac +ac +ac +ac +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +aa +aa +aG +aG +aG +aG +aN +aT +aT +aT +aT +aT +aT +aT +aT +aT +bj +bj +bj +bj +aT +bu +bD +bj +bD +cl +bj +bj +bj +bj +bj +bj +bj +bu +aT +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +fl +bj +bj +fR +bj +bj +bj +bj +bj +aT +aT +aT +aT +aN +aN +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(174,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 +ab +ac +ac +ac +ab +ag +ag +ag +ag +ag +ab +ag +ag +ag +ac +ac +ac +ac +ad +ac +ac +ag +ag +ag +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ad +ac +ac +ac +ac +ab +aa +aa +aG +aG +aG +aG +aN +aN +aT +aT +aT +aT +aT +aT +aT +aT +bj +bp +bj +bj +aT +bu +bj +bj +cb +bj +bj +bj +bj +bj +bj +da +bj +bu +aT +bj +bj +bj +bj +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +ft +bu +ci +ci +bu +bu +eM +bu +bu +bu +bu +aN +aN +aN +aN +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(175,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 +ab +ac +ac +ac +ab +ac +ad +ag +aB +ac +ab +ac +ac +ag +ag +ag +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ak +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +aa +aG +aG +aG +aG +aG +aN +aN +aN +aT +aT +aT +aT +aT +aT +aT +bj +bj +bj +bj +aT +bu +bj +bj +bD +bj +bj +bj +bj +bj +bj +bD +bj +bu +aT +bj +bj +bj +bj +bu +bj +bj +bj +bj +bj +bj +dP +bj +bj +bj +bu +fu +fu +bj +bj +fu +fu +gs +fu +bj +bj +bu +aN +aN +aN +aN +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(176,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 +ab +ab +ab +ab +ab +ab +ab +ao +ab +ab +ab +ab +ab +ac +ad +ag +ag +ag +ag +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +aa +aG +aG +aG +aG +aG +aN +aN +aT +aT +aT +aT +aT +aT +aT +aT +bj +bj +bj +bj +aT +bu +bj +bj +bD +bj +bj +bj +bj +bj +bj +db +bj +bu +aT +bm +bj +bj +bj +bu +bj +bF +bF +bF +bF +bF +bF +bF +bF +bj +bu +bj +bj +bj +bj +bl +bj +bj +bj +bj +bj +bu +aN +aN +aN +aN +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(177,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 +ab +ab +ab +ar +au +ax +ao +ao +ao +ao +ao +ao +ab +ac +ac +ac +ac +ac +ag +ac +ac +ac +ac +ac +ac +ac +ac +af +ac +ac +ac +ac +ac +ac +ac +ak +ac +ac +ac +ac +ab +aa +aG +aG +aG +aG +aG +aN +aN +aT +aT +aT +aT +aY +aT +aT +aT +bj +bj +bj +bj +aT +bu +bj +bj +bD +bj +bj +bj +bj +bj +bj +bj +bj +bu +aT +bj +bj +bl +bj +bu +bj +dI +dX +dk +dX +dk +dX +dk +bF +bj +bu +bj +bj +bj +bj +bj +bj +bj +bj +cA +bj +bu +aN +aN +aN +aN +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(178,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 +ab +ab +ab +as +av +ay +ao +ao +ao +ao +ao +ao +ab +ac +ac +ac +af +ac +ac +ac +ac +ac +al +ac +ac +ac +ac +ac +ac +af +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +aa +aG +aG +aG +aG +aG +aN +aT +aT +aT +aT +aT +aT +aT +aT +aT +bj +bj +bj +bj +aT +bu +bj +bj +bD +bD +bD +bD +bD +bj +bj +da +bj +bu +aT +bj +bj +bj +bj +bu +bj +bF +dY +dZ +eb +ea +dZ +eb +bF +bj +bu +bD +bD +bD +bD +bD +bD +bD +bD +bD +bj +bu +aN +aN +aN +aN +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(179,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 +ab +ab +at +aw +az +ao +ao +ao +aq +ao +ao +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ae +ac +ac +ac +ac +ac +ac +ac +ab +aa +aa +aa +aG +aG +aG +aN +aN +aN +aT +aT +aT +aT +aT +aT +aT +bj +bj +bj +bj +aT +bu +by +by +by +by +by +by +bD +cl +bj +bD +bj +bu +aT +bj +bj +bj +bj +bu +bj +dJ +dZ +eo +eo +eo +eo +dZ +dO +bj +bu +bj +fE +bj +fE +bj +bj +fE +bj +bD +bj +bu +aN +aN +aN +aN +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(180,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 +ab +ab +ab +ao +ao +ao +ao +ao +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +aa +aa +aa +aG +aG +aG +aN +aN +aN +aT +aT +aT +aT +aT +aT +aT +bm +bj +bj +bj +aT +bu +by +by +by +by +by +by +bD +cl +bj +db +bj +dj +aT +bj +bj +cA +bj +bu +bj +dK +ea +eo +eo +eo +eo +dY +eV +bj +bu +bj +bj +bj +bj +bj +bj +bj +bj +bj +cA +bu +aN +aN +aN +aN +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(181,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 +ab +ab +ab +ao +ao +ao +ao +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +aa +aa +aa +aa +aG +aG +aN +aN +aN +aT +aT +aT +aT +aT +aT +aT +bm +bj +bj +bj +aT +bu +bJ +by +by +by +by +by +cJ +cl +bj +bj +bj +dj +aT +bj +bj +bj +bj +bu +bj +bF +eb +dZ +eb +ea +eG +ea +eW +bj +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +ci +bu +aN +aN +aN +aN +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(182,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 +ab +ab +ao +ao +ao +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +ab +aa +aa +aa +aG +aG +aN +aN +aT +aT +aT +aT +aT +aT +aT +aT +bj +bj +bj +bj +aT +bu +bK +by +by +by +by +by +cK +cl +bj +da +bj +dj +aT +bj +bj +bm +bj +bu +bk +bF +ec +dN +ec +dN +eH +dN +bF +bj +bu +bj +bj +bj +bj +bj +bj +bj +bu +bj +bj +bu +aN +aN +aN +aN +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(183,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 +ab +ab +ab +ao +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +ab +aa +aa +aa +aG +aG +aN +aN +aT +aT +aT +aT +aT +aT +aT +aT +bj +bj +bj +bj +aT +bu +bL +by +cd +by +by +by +bD +cl +bj +bD +bj +bu +aT +bj +bj +bj +bj +bu +bj +bF +bF +dI +ew +bF +bF +eL +bF +bj +bu +bj +fF +bj +fF +bj +fF +bj +bu +bj +bj +bu +aN +aN +aN +aN +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(184,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 +ab +ab +ao +aA +ao +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ac +ac +ab +ab +ab +ab +aa +aa +aa +aa +aG +aG +aN +aN +aT +aT +aT +aT +aT +aT +aT +aT +bj +bj +bj +bj +aT +bu +bM +by +by +by +by +by +bD +cl +bj +db +bj +bu +aT +bj +bj +bj +bj +bu +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bu +bj +bD +fS +bD +bD +bD +bj +ci +bl +bj +bu +aN +aN +aN +aN +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(185,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 +ab +ab +ao +ao +ab +ao +aq +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aG +aG +aG +aN +aN +aT +aT +aT +aT +aT +aT +aT +aT +bj +bj +bj +bj +aT +bu +bN +by +by +by +by +by +bD +bj +bj +bj +bj +bu +aT +bj +bj +bj +bj +bu +bu +dL +bu +bu +bu +bu +bu +bu +dL +bu +bu +bj +fE +bj +fE +bj +fE +bj +bu +bj +bj +bu +aN +aN +aN +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(186,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 +ab +aq +ao +ao +ao +ao +ao +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aG +aG +aN +aT +aT +aT +aT +aT +aT +aT +aT +aT +bj +bj +bj +bj +aT +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +aT +bj +bj +bj +bj +bu +dE +bj +bj +dE +dE +bu +bA +bj +bj +bj +bu +bj +bj +bE +bl +bj +bj +bj +eM +bj +dP +bu +aN +aN +aN +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(187,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 +ab +ao +ao +ao +ao +ao +ao +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 +aG +aG +aG +aG +aG +aN +aT +aT +aT +aT +aT +aT +aT +aT +aT +bj +bj +bj +bj +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +bj +bj +bj +bp +bu +dE +bj +bj +eq +dE +bu +bA +bj +cA +bj +bu +bu +bu +bu +bu +bu +bu +bu +bu +cA +bj +bu +aN +aN +aN +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(188,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 +ab +ab +ao +ao +ao +ao +ao +ao +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 +aG +aG +aG +aG +aN +aT +aT +aT +aT +aT +aT +aT +aT +aT +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bm +bj +bj +bj +bj +cA +bj +bl +bj +bj +bj +bu +dE +bj +bj +bj +bj +bu +bA +bj +bj +bj +bu +bj +bj +bl +bj +bj +bj +bj +bu +bj +bj +bu +aN +aN +aN +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(189,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 +ab +ao +ao +ao +ao +ao +ao +ao +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 +aG +aG +aG +aN +aN +aT +aT +aT +aT +aZ +aT +aT +aT +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bu +dE +bj +bj +bj +bj +bu +bA +bj +bj +bj +bu +bj +fG +bj +fG +cA +fG +bj +bu +bj +bj +bu +aN +aN +aN +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(190,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 +ab +ao +ao +ao +ao +ao +ao +ao +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 +aG +aG +aG +aN +aN +aT +aT +aT +aT +aT +aT +aT +aT +bj +bj +bm +bj +bj +bj +bj +bj +bj +bE +bj +bj +bp +bj +bj +bj +bj +bm +bj +bj +bj +bm +bj +bu +dE +bj +dP +bj +bj +bu +bA +bj +bl +bj +bu +bj +bD +bD +bD +gg +bD +bj +ci +bj +bj +bu +aN +aN +aN +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(191,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 +ab +ap +ao +aq +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 +aG +aG +aG +aN +aN +aT +aT +aT +aT +aT +aT +aT +aT +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bu +bj +bj +bj +bj +cA +bu +bA +bj +bj +bj +bu +bj +fH +bj +fH +bj +fH +bj +bu +bj +bj +bu +aN +aN +aN +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(192,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 +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 +aG +aG +aG +aN +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +bu +dE +bj +bj +bj +bj +bu +bA +bj +bj +bj +bu +bj +bj +bj +bj +bj +bj +bj +bu +bj +bj +bu +aN +aN +aN +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(193,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aN +aT +aT +aT +aT +aT +aT +aT +aT +aT +bf +aT +aT +aT +aT +aT +aT +aZ +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +bu +bu +bu +bu +bu +dL +bu +bu +bu +dL +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bj +gk +bu +aN +aN +aN +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(194,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aN +aN +aN +aT +aT +aT +aT +aT +aT +aT +aT +aY +aT +aT +aT +aT +aT +aT +aT +aT +aT +cB +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +bu +bj +dM +bD +dM +bj +bj +bj +bu +eX +eX +eX +fv +eX +dj +bj +bu +gl +gt +bu +bj +cA +bu +aN +aN +aN +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(195,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aN +aN +aN +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aZ +aT +aT +ba +aT +aT +aT +aT +aT +bu +bj +cA +bj +bj +bj +eC +dM +bu +eX +eX +eX +fw +eX +dj +bj +bu +gm +bj +eM +bj +bj +bu +aN +aN +aN +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(196,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aN +aN +aN +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +dw +aT +aT +aT +bu +bj +bj +bj +bj +bj +eC +bD +bu +eY +eX +fn +fx +eX +dj +bj +bu +bu +ci +bu +bj +bj +bu +aN +aN +aN +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(197,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aN +aN +aN +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +dj +bj +bj +bj +bj +dP +eC +bD +bu +eZ +fg +eX +eX +fI +bu +bj +bj +dP +bj +bj +bl +bj +bu +aN +aN +aN +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(198,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aG +aN +aN +aT +aT +aT +aT +aT +aT +aT +aT +aT +aZ +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +dj +bj +bl +bj +bj +bj +eC +dM +bu +fa +fh +eX +fv +eX +dL +bj +bj +bj +bj +bj +bj +bj +bu +aN +aN +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(199,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aG +aN +aN +aN +aN +aN +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aZ +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aZ +aT +aT +bu +bj +bj +bj +cA +bj +bj +bj +eM +fa +fi +fi +fw +eX +bu +dj +dj +dj +dj +dj +bu +bu +bu +aN +aN +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(200,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aG +aG +aN +aN +aN +aN +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aY +aT +aT +aT +aT +aT +aT +aT +aT +aT +bu +bj +bj +bj +bj +bj +bj +bj +bu +fb +eX +eX +fx +eX +eX +eX +eX +eX +eX +eX +eX +eX +bu +aN +aG +aG +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(201,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aG +aG +aG +aN +aN +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +bu +bj +dP +bj +bj +bj +bj +bj +bu +fb +eX +eX +eX +fI +fT +fw +gh +eX +gu +fw +gh +eX +bu +aN +aG +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(202,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aG +aN +aN +aN +aN +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +bu +bj +bj +bj +bj +bj +bj +bj +bu +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +eX +bu +aN +aG +aG +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(203,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aG +aG +aG +aN +aN +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aN +aN +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +bu +bu +dQ +bu +dQ +bu +dQ +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +aN +aG +aG +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(204,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aG +aG +aG +aG +aG +aG +aN +aN +aT +aT +aT +aN +aN +aT +aT +aT +aT +aT +aT +aT +aN +aN +aN +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aG +aG +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(205,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aG +aG +aG +aG +aG +aG +aN +aN +aN +aN +aN +aN +aN +aN +aT +aT +aN +aN +aN +aT +aT +aT +aN +aN +aT +aT +aT +aT +aN +aT +aN +aN +aT +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aG +aG +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(206,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aG +aN +aN +aN +aN +aN +aG +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(207,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aG +aa +aG +aG +aG +aG +aG +aG +aG +aG +aN +aN +aN +aN +aN +aG +aG +aG +aG +aG +aN +aN +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(208,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aa +aa +aa +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(209,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aa +aa +aG +aG +aG +aG +aG +aG +aG +aG +aa +aa +aa +aa +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aG +aa +aG +aG +aG +aG +aG +aG +aa +aa +aa +aG +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(210,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aG +aG +aG +aG +aG +aa +aG +aG +aG +aG +aG +aG +aa +aa +aG +aG +aa +aa +aG +aG +aa +aa +aa +aa +aa +aG +aG +aG +aG +aa +aG +aG +aG +aG +aG +aG +aG +aG +aG +aa +aa +aG +aG +aG +aG +aG +aG +aa +aa +aa +aa +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(211,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aG +aG +aG +aa +aa +aa +aG +aa +aG +aG +aG +aa +aa +aa +aa +aG +aa +aa +aG +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aa +aG +aa +aa +aG +aa +aG +aG +aa +aa +aa +aa +aG +aG +aa +aa +aG +aa +aa +aa +aa +aa +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(212,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aG +aa +aa +aa +aa +aa +aa +aG +aG +aa +aa +aa +aa +aa +aa +aa +aG +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aa +aa +aa +aa +aa +aa +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(213,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aa +aa +aa +aa +aa +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aG +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aa +aa +aa +aa +aa +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(214,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aa +aa +aa +aa +aa +aa +aG +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(215,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aG +aG +aa +aa +aa +aa +aa +aa +aG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(216,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(217,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(218,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(219,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(220,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(221,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(222,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(223,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(224,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(225,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(226,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(227,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(228,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(229,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(230,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(231,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(232,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(233,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(234,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(235,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(236,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(237,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(238,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(239,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(240,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(241,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(242,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(243,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(244,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(245,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(246,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(247,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(248,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} diff --git a/_maps/__MAP_DEFINES.dm b/_maps/__MAP_DEFINES.dm new file mode 100644 index 0000000..e1e113a --- /dev/null +++ b/_maps/__MAP_DEFINES.dm @@ -0,0 +1,31 @@ +/* +The /tg/ codebase currently requires you to have 11 z-levels of the same size dimensions. +z-level order is important, the order you put them in inside the map config.dm will determine what z level number they are assigned ingame. +Names of z-level do not matter, but order does greatly, for instances such as checking alive status of revheads on z1 + +current as of 2016/6/2 +z1 = station +z2 = centcomm +z5 = mining +Everything else = randomized space +Last space-z level = empty +*/ + +#define CROSSLINKED 2 +#define SELFLOOPING 1 +#define UNAFFECTED 0 + +#define MAIN_STATION "Main Station" +#define CENTCOMM "CentComm" +#define EMPTY_AREA_1 "Empty Area 1" +#define EMPTY_AREA_2 "Empty Area 2" +#define MINING "Mining Asteroid" +#define EMPTY_AREA_3 "Empty Area 3" +#define EMPTY_AREA_4 "Empty Area 4" +#define EMPTY_AREA_5 "Empty Area 5" +#define EMPTY_AREA_6 "Empty Area 6" +#define EMPTY_AREA_7 "Empty Area 7" +#define EMPTY_AREA_8 "Empty Area 8" +#define AWAY_MISSION "Away Mission" +#define AWAY_MISSION_LIST list(AWAY_MISSION = SELFLOOPING) +#define DEFAULT_MAP_TRANSITION_CONFIG list(MAIN_STATION = CROSSLINKED, CENTCOMM = SELFLOOPING, EMPTY_AREA_1 = CROSSLINKED, EMPTY_AREA_2 = CROSSLINKED, MINING = SELFLOOPING, EMPTY_AREA_3 = CROSSLINKED, EMPTY_AREA_4 = CROSSLINKED, EMPTY_AREA_5 = CROSSLINKED, EMPTY_AREA_6 = CROSSLINKED, EMPTY_AREA_7 = CROSSLINKED, EMPTY_AREA_8 = CROSSLINKED) diff --git a/_maps/birdstation.dm b/_maps/birdstation.dm new file mode 100644 index 0000000..434912f --- /dev/null +++ b/_maps/birdstation.dm @@ -0,0 +1,43 @@ +/* +Birdstation by Tokiko1 + +A small map intended for lowpop(40 players and less). + +*/ + + +#if !defined(MAP_FILE) + + #define TITLESCREEN "title" //Add an image in misc/fullscreen.dmi, and set this define to the icon_state, to set a custom titlescreen for your map + + #define MINETYPE "lavaland" + + #include "map_files\BirdStation\BirdStation.dmm" + #include "map_files\generic\z2.dmm" + #include "map_files\generic\z3.dmm" + #include "map_files\generic\z4.dmm" + #include "map_files\generic\lavaland.dmm" + #include "map_files\generic\z6.dmm" + #include "map_files\generic\z7.dmm" + #include "map_files\generic\z8.dmm" + #include "map_files\generic\z9.dmm" + #include "map_files\generic\z10.dmm" + #include "map_files\generic\z11.dmm" + + #define MAP_PATH "map_files/BirdStation" + #define MAP_FILE "BirdStation.dmm" + #define MAP_NAME "BirdboatStation" + + #define MAP_TRANSITION_CONFIG DEFAULT_MAP_TRANSITION_CONFIG + + #if !defined(MAP_OVERRIDE_FILES) + #define MAP_OVERRIDE_FILES + #include "map_files\BirdStation\job\job_changes.dm" + #include "map_files\BirdStation\job\removed_jobs.dm" + #endif + +#elif !defined(MAP_OVERRIDE) + + #warn a map has already been included, ignoring birdstation. + +#endif diff --git a/_maps/dreamstation.dm b/_maps/dreamstation.dm new file mode 100644 index 0000000..a015a9f --- /dev/null +++ b/_maps/dreamstation.dm @@ -0,0 +1,29 @@ +#if !defined(MAP_FILE) + + #define TITLESCREEN "title" //Add an image in misc/fullscreen.dmi, and set this define to the icon_state, to set a custom titlescreen for your map + + #define MINETYPE "lavaland" + + #include "map_files\DreamStation\dreamstation04.dmm" + #include "map_files\generic\z2.dmm" + #include "map_files\generic\z3.dmm" + #include "map_files\generic\z4.dmm" + #include "map_files\generic\lavaland.dmm" + #include "map_files\generic\z6.dmm" + #include "map_files\generic\z7.dmm" + #include "map_files\generic\z8.dmm" + #include "map_files\generic\z9.dmm" + #include "map_files\generic\z10.dmm" + #include "map_files\generic\z11.dmm" + + #define MAP_PATH "map_files/DreamStation" + #define MAP_FILE "dreamstation04.dmm" + #define MAP_NAME "DreamStation" + + #define MAP_TRANSITION_CONFIG DEFAULT_MAP_TRANSITION_CONFIG + +#elif !defined(MAP_OVERRIDE) + + #warn a map has already been included, ignoring DreamStation. + +#endif diff --git a/_maps/efficiencystation.dm b/_maps/efficiencystation.dm new file mode 100644 index 0000000..8c2840d --- /dev/null +++ b/_maps/efficiencystation.dm @@ -0,0 +1,29 @@ +#if !defined(MAP_FILE) + + #define TITLESCREEN "title" //Add an image in misc/fullscreen.dmi, and set this define to the icon_state, to set a custom titlescreen for your map + + #define MINETYPE "lavaland" + + #include "map_files\EfficiencyStation\EfficiencyStation.dmm" + #include "map_files\generic\z2.dmm" + #include "map_files\generic\z3.dmm" + #include "map_files\generic\z4.dmm" + #include "map_files\generic\lavaland.dmm" + #include "map_files\generic\z6.dmm" + #include "map_files\generic\z7.dmm" + #include "map_files\generic\z8.dmm" + #include "map_files\generic\z9.dmm" + #include "map_files\generic\z10.dmm" + #include "map_files\generic\z11.dmm" + + #define MAP_PATH "map_files/EfficiencyStation" + #define MAP_FILE "EfficiencyStation.dmm" + #define MAP_NAME "Efficiency Station" + + #define MAP_TRANSITION_CONFIG DEFAULT_MAP_TRANSITION_CONFIG + +#elif !defined(MAP_OVERRIDE) + + #warn a map has already been included, ignoring Efficiency Station. + +#endif diff --git a/_maps/map_files/BirdStation/BirdStation.dmm b/_maps/map_files/BirdStation/BirdStation.dmm new file mode 100644 index 0000000..d3e61a2 --- /dev/null +++ b/_maps/map_files/BirdStation/BirdStation.dmm @@ -0,0 +1,89336 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aaa" = ( +/turf/open/space, +/area/space) +"aab" = ( +/obj/docking_port/stationary{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 22; + id = "syndicate_n"; + name = "north of station"; + turf_type = /turf/open/space; + width = 18 + }, +/turf/open/space, +/area/space) +"aac" = ( +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/syndicate) +"aad" = ( +/obj/structure/table, +/obj/machinery/microwave, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"aae" = ( +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"aaf" = ( +/turf/open/space, +/obj/machinery/porta_turret/syndicate, +/turf/closed/wall/shuttle{ + dir = 1; + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) +"aag" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/donkpockets{ + pixel_x = 3; + pixel_y = 3 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"aah" = ( +/obj/item/device/radio/intercom{ + desc = "Talk through this. Evilly"; + freerange = 1; + frequency = 1213; + name = "Syndicate Intercom"; + pixel_y = -32; + subspace_transmission = 1; + syndie = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"aai" = ( +/obj/structure/table, +/obj/item/device/flashlight/lamp{ + pixel_x = 4; + pixel_y = 1 + }, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/syndicate) +"aaj" = ( +/obj/structure/chair/comfy/beige{ + dir = 1; + icon_state = "comfychair" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"aak" = ( +/obj/structure/table, +/obj/machinery/button/door{ + id = "syndieshutters"; + name = "remote shutter control"; + req_access_txt = "150" + }, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/syndicate) +"aal" = ( +/obj/structure/frame/computer, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/syndicate) +"aam" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass{ + amount = 10 + }, +/obj/item/device/multitool, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"aan" = ( +/obj/structure/chair/comfy/black{ + dir = 1; + icon_state = "comfychair"; + name = "pilot's chair" + }, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/syndicate) +"aao" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass{ + amount = 10 + }, +/obj/item/device/multitool, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/syndicate) +"aap" = ( +/obj/item/device/radio/intercom{ + desc = "Talk through this. Evilly"; + freerange = 1; + frequency = 1213; + name = "Syndicate Intercom"; + pixel_y = -32; + subspace_transmission = 1; + syndie = 1 + }, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/syndicate) +"aaq" = ( +/obj/structure/closet/syndicate/personal, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/syndicate) +"aar" = ( +/turf/open/space, +/area/shuttle/syndicate) +"aas" = ( +/obj/machinery/door/window{ + name = "Cockpit"; + req_access_txt = "150" + }, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/syndicate) +"aat" = ( +/turf/open/space, +/obj/machinery/porta_turret/syndicate{ + dir = 6 + }, +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) +"aau" = ( +/obj/structure/table, +/obj/item/stack/cable_coil, +/obj/item/weapon/crowbar/red, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/syndicate) +"aav" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"aaw" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/syndicate) +"aax" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/syndicate) +"aay" = ( +/obj/structure/lattice, +/turf/open/space, +/area/space) +"aaz" = ( +/turf/open/space, +/turf/closed/wall/shuttle{ + dir = 8; + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) +"aaA" = ( +/obj/machinery/porta_turret/syndicate, +/turf/closed/wall/shuttle{ + icon_state = "wall3" + }, +/area/shuttle/syndicate) +"aaB" = ( +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/space) +"aaC" = ( +/obj/machinery/suit_storage_unit/syndicate, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/syndicate) +"aaD" = ( +/obj/structure/table, +/obj/item/device/aicard, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"aaE" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/syndicate) +"aaF" = ( +/obj/structure/table, +/obj/item/weapon/c4{ + pixel_x = 2; + pixel_y = -5 + }, +/obj/item/weapon/c4{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/c4{ + pixel_x = 2; + pixel_y = -3 + }, +/obj/item/weapon/c4{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/weapon/c4{ + pixel_x = 3; + pixel_y = 3 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"aaG" = ( +/obj/machinery/door/poddoor{ + id = "smindicate"; + name = "outer blast door" + }, +/obj/machinery/button/door{ + id = "smindicate"; + name = "external door control"; + pixel_x = -26; + pixel_y = 0; + req_access_txt = "150" + }, +/obj/docking_port/mobile{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 22; + id = "syndicate"; + name = "syndicate infiltrator"; + roundstart_move = "syndicate_away"; + port_angle = 180; + width = 18 + }, +/obj/docking_port/stationary{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 22; + id = "syndicate_nw"; + name = "northwest of station"; + turf_type = /turf/open/space; + width = 18 + }, +/turf/open/floor/plating, +/area/shuttle/syndicate) +"aaH" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0 + }, +/turf/closed/wall/shuttle{ + icon_state = "wall3" + }, +/area/shuttle/syndicate) +"aaI" = ( +/turf/open/space, +/turf/closed/wall/shuttle{ + dir = 1; + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) +"aaJ" = ( +/turf/closed/mineral, +/area/space) +"aaK" = ( +/obj/structure/table, +/obj/item/weapon/c4{ + pixel_x = 2; + pixel_y = 1 + }, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/syndicate) +"aaL" = ( +/obj/machinery/door/window{ + base_state = "right"; + dir = 4; + icon_state = "right"; + name = "EVA Storage"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"aaM" = ( +/obj/machinery/door/airlock/external{ + req_access_txt = "150" + }, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/syndicate) +"aaN" = ( +/turf/closed/wall, +/area/space) +"aaO" = ( +/obj/machinery/door/window{ + base_state = "right"; + dir = 4; + icon_state = "right"; + name = "EVA Storage"; + req_access_txt = "150" + }, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/syndicate) +"aaP" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/shuttle/syndicate) +"aaQ" = ( +/obj/structure/rack, +/obj/item/clothing/suit/space/syndicate/black/red, +/obj/item/clothing/head/helmet/space/syndicate/black/red, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/syndicate) +"aaR" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/cyan{ + icon_state = "0-2" + }, +/turf/open/space, +/area/space) +"aaS" = ( +/obj/item/device/radio/intercom{ + desc = "Talk through this. Evilly"; + freerange = 1; + frequency = 1213; + name = "Syndicate Intercom"; + pixel_x = -32; + subspace_transmission = 1; + syndie = 1 + }, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/syndicate) +"aaT" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/space, +/area/space) +"aaU" = ( +/obj/structure/bed/roller, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"aaV" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/syndicate) +"aaW" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/syndicate) +"aaX" = ( +/obj/structure/table, +/obj/item/stack/medical/ointment, +/obj/item/stack/medical/bruise_pack, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/syndicate) +"aaY" = ( +/obj/structure/table, +/obj/item/weapon/stock_parts/cell/high{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/stock_parts/cell/high, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/syndicate) +"aaZ" = ( +/obj/structure/table, +/obj/item/weapon/screwdriver{ + pixel_y = 9 + }, +/obj/item/device/assembly/voice{ + pixel_y = 3 + }, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/syndicate) +"aba" = ( +/obj/structure/table, +/obj/item/weapon/wrench, +/obj/item/device/assembly/infra, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/syndicate) +"abb" = ( +/obj/structure/table, +/obj/item/device/assembly/signaler, +/obj/item/device/assembly/signaler, +/obj/item/device/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/device/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/syndicate) +"abc" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/syndicate, +/obj/item/weapon/crowbar/red, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"abd" = ( +/obj/machinery/door/window{ + dir = 4; + name = "Infirmary"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"abe" = ( +/obj/machinery/door/window/westright{ + name = "Tool Storage"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"abf" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/syndicate, +/obj/item/weapon/crowbar/red, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/syndicate) +"abg" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/table, +/obj/item/bodypart/r_arm/robot, +/obj/item/bodypart/l_arm/robot, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"abh" = ( +/obj/machinery/door/window{ + base_state = "right"; + dir = 4; + icon_state = "right"; + name = "Infirmary"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"abi" = ( +/obj/machinery/door/window{ + dir = 8; + name = "Tool Storage"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"abj" = ( +/obj/structure/table, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/firstaid/brute, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = -3; + pixel_y = -3 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"abk" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/firstaid/fire, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = -3; + pixel_y = -3 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"abl" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/syndicate) +"abm" = ( +/obj/machinery/door/window{ + dir = 1; + name = "Secure Storage"; + req_access_txt = "150" + }, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/syndicate) +"abn" = ( +/obj/structure/table, +/obj/item/device/sbeacondrop/bomb{ + pixel_y = 5 + }, +/obj/item/device/sbeacondrop/bomb, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"abo" = ( +/obj/structure/table, +/obj/item/weapon/grenade/syndieminibomb{ + pixel_x = 4; + pixel_y = 2 + }, +/obj/item/weapon/grenade/syndieminibomb{ + pixel_x = -1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"abp" = ( +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/obj/structure/mirror{ + pixel_x = 30 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"abq" = ( +/obj/machinery/telecomms/allinone{ + intercept = 1 + }, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/syndicate) +"abr" = ( +/obj/machinery/nuclearbomb/syndicate, +/obj/machinery/door/window{ + dir = 1; + name = "Secure Storage"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"abs" = ( +/turf/closed/wall, +/area/engine/engineering) +"abt" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/engineering) +"abu" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"abv" = ( +/obj/structure/table, +/obj/item/weapon/cautery, +/obj/item/weapon/scalpel, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"abw" = ( +/obj/structure/table/optable, +/obj/item/weapon/surgical_drapes, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"abx" = ( +/obj/structure/table, +/obj/item/weapon/retractor, +/obj/item/weapon/hemostat, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"aby" = ( +/obj/structure/shuttle/engine/heater, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating, +/area/shuttle/syndicate) +"abz" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"abA" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"abB" = ( +/obj/structure/rack, +/obj/item/clothing/suit/space/syndicate/black/red, +/obj/item/clothing/head/helmet/space/syndicate/black/red, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"abC" = ( +/turf/open/floor/plasteel/black, +/area/engine/engineering) +"abD" = ( +/obj/structure/reflector/single{ + anchored = 1 + }, +/turf/open/floor/plasteel/black, +/area/engine/engineering) +"abE" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/engine/engineering) +"abF" = ( +/obj/machinery/camera/autoname, +/turf/open/floor/plasteel/black, +/area/engine/engineering) +"abG" = ( +/obj/docking_port/stationary{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 22; + id = "syndicate_ne"; + name = "northeast of station"; + turf_type = /turf/open/space; + width = 18 + }, +/turf/open/space, +/area/space) +"abH" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_l" + }, +/turf/open/floor/plating, +/area/shuttle/syndicate) +"abI" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/open/floor/plating, +/area/shuttle/syndicate) +"abJ" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_r" + }, +/turf/open/floor/plating, +/area/shuttle/syndicate) +"abK" = ( +/turf/open/floor/plasteel, +/area/engine/engineering) +"abL" = ( +/obj/structure/reflector/single{ + tag = "icon-reflector (WEST)"; + icon_state = "reflector"; + dir = 8; + anchored = 1 + }, +/turf/open/floor/plasteel/black, +/area/engine/engineering) +"abM" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"abN" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 6 + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"abO" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 10 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/space) +"abP" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 10 + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"abQ" = ( +/obj/structure/lattice, +/obj/effect/landmark{ + name = "carpspawn" + }, +/turf/open/space, +/area/space) +"abR" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + icon_state = "intact"; + dir = 6 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/space) +"abS" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + icon_state = "intact"; + dir = 4 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/space) +"abT" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + icon_state = "intact"; + dir = 4 + }, +/obj/machinery/door/airlock/external{ + name = "engineering external airlock"; + req_access_txt = "10" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"abU" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"abV" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + icon_state = "pump_map"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"abW" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"abX" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/engine/engineering) +"abY" = ( +/obj/structure/reflector/double{ + anchored = 1 + }, +/turf/open/floor/plasteel/black, +/area/engine/engineering) +"abZ" = ( +/obj/structure/reflector/double{ + tag = "icon-reflector_double (NORTH)"; + icon_state = "reflector_double"; + dir = 1; + anchored = 1 + }, +/turf/open/floor/plasteel/black, +/area/engine/engineering) +"aca" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + icon_state = "pump_map"; + target_pressure = 2000.32 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"acb" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"acc" = ( +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/engineering) +"acd" = ( +/obj/machinery/power/port_gen/pacman{ + anchored = 1 + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/cable/cyan{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/bot, +/area/engine/engineering) +"ace" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"acf" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/space) +"acg" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/space) +"ach" = ( +/obj/structure/table, +/obj/item/clothing/glasses/meson/engine, +/obj/item/clothing/glasses/meson/engine, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aci" = ( +/obj/structure/table, +/obj/item/device/analyzer, +/obj/item/device/analyzer, +/obj/item/device/analyzer, +/turf/open/floor/plasteel, +/area/engine/engineering) +"acj" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 6 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ack" = ( +/obj/machinery/atmospherics/components/trinary/filter{ + dir = 4; + filter_type = 3; + icon_state = "filter_off"; + req_access = null + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"acl" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/engineering) +"acm" = ( +/obj/machinery/door/airlock/glass_engineering{ + name = "engineering door"; + req_access_txt = "10"; + req_one_access_txt = "0" + }, +/turf/open/floor/plasteel/black, +/area/engine/engineering) +"acn" = ( +/obj/structure/reflector/box{ + anchored = 1; + dir = 4; + icon_state = "reflector_box"; + tag = "icon-reflector_box (EAST)" + }, +/turf/open/floor/plasteel/black, +/area/engine/engineering) +"aco" = ( +/obj/structure/reflector/box{ + anchored = 1; + layer = 3 + }, +/turf/open/floor/plasteel/black, +/area/engine/engineering) +"acp" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/engineering) +"acq" = ( +/obj/structure/reflector/single{ + tag = "icon-reflector (EAST)"; + icon_state = "reflector"; + dir = 4; + anchored = 1 + }, +/turf/open/floor/plasteel/black, +/area/engine/engineering) +"acr" = ( +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"acs" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"act" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/turf/open/space, +/area/space) +"acu" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"acv" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + name = "waste pipe"; + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"acw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + name = "waste pipe"; + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"acx" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + icon_state = "pump_map"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"acy" = ( +/obj/machinery/atmospherics/pipe/manifold/green/visible{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"acz" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"acA" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + icon_state = "intact"; + dir = 4 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/engineering) +"acB" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + icon_state = "intact"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/open/floor/plasteel, +/area/engine/engineering) +"acC" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/warning/corner, +/area/engine/engineering) +"acD" = ( +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/engine/engineering) +"acE" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel/black, +/area/engine/engineering) +"acF" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/black, +/area/engine/engineering) +"acG" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"acH" = ( +/obj/machinery/power/emitter{ + anchored = 1; + dir = 1; + state = 2 + }, +/obj/structure/cable/cyan{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/bot, +/area/engine/engineering) +"acI" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 1 + }, +/area/engine/engineering) +"acJ" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/binary/pump/on{ + icon_state = "pump_map"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"acK" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/engineering) +"acL" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/space) +"acM" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 9 + }, +/turf/open/space, +/area/space) +"acN" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 5 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/space) +"acO" = ( +/obj/structure/grille{ + density = 0; + icon_state = "brokengrille" + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"acP" = ( +/obj/machinery/button/door{ + id = "heater vent"; + name = "heating chamber venting switch"; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + name = "waste pipe"; + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"acQ" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + name = "waste pipe"; + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"acR" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/components/binary/pump{ + icon_state = "pump_map"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"acS" = ( +/obj/machinery/atmospherics/components/trinary/filter/flipped{ + req_access = null + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"acT" = ( +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/engineering) +"acU" = ( +/turf/closed/wall/r_wall, +/area/engine/engineering) +"acV" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + icon_state = "manifold"; + dir = 8 + }, +/obj/machinery/camera/autoname{ + icon_state = "camera"; + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/engineering) +"acW" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10; + pixel_x = 0; + initialize_directions = 10 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"acX" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"acY" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 9 + }, +/turf/open/space, +/area/space) +"acZ" = ( +/obj/structure/grille, +/turf/closed/wall/r_wall, +/area/space) +"ada" = ( +/obj/machinery/door/poddoor{ + id = "heater vent"; + name = "heat chamber vent" + }, +/turf/open/space, +/area/engine/engineering) +"adb" = ( +/obj/machinery/atmospherics/components/binary/pump, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"adc" = ( +/obj/machinery/atmospherics/components/binary/pump/on, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"add" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ade" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"adf" = ( +/obj/machinery/atmospherics/pipe/manifold/general/hidden{ + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"adg" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"adh" = ( +/obj/machinery/atmospherics/components/binary/pump, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/engineering) +"adi" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/binary/pump, +/turf/open/floor/plasteel, +/area/engine/engineering) +"adj" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 5 + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"adk" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 10 + }, +/turf/open/space, +/area/space) +"adl" = ( +/obj/structure/lattice, +/obj/structure/grille{ + density = 0; + icon_state = "brokengrille" + }, +/turf/open/space, +/area/space) +"adm" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/door/airlock/external{ + name = "engineering external airlock"; + req_access_txt = "10" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"adn" = ( +/turf/open/floor/engine, +/area/engine/engineering) +"ado" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 6 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"adp" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 10 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"adq" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 6 + }, +/obj/machinery/camera{ + c_tag = "Heating chamber north"; + network = list("heating") + }, +/turf/open/floor/engine, +/area/engine/engineering) +"adr" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"ads" = ( +/obj/machinery/meter, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23; + pixel_y = 0; + req_access = null + }, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + icon_state = "manifold"; + dir = 8 + }, +/obj/machinery/camera/autoname{ + icon_state = "camera"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"adt" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + icon_state = "pump_map"; + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/engineering) +"adu" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"adv" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"adw" = ( +/obj/machinery/power/supermatter_shard{ + anchored = 1; + base_icon_state = "darkmatter"; + explosion_power = 20; + gasefficency = 0.15; + icon_state = "darkmatter"; + name = "supermatter crystal" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + name = "supermatter chamber air scrubber"; + on = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/general/hidden{ + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"adx" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/engineering) +"ady" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/binary/pump/on{ + icon_state = "pump_map"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/open/floor/plasteel, +/area/engine/engineering) +"adz" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 10 + }, +/turf/open/space, +/area/space) +"adA" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 6 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/space) +"adB" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plating, +/area/engine/engineering) +"adC" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/turf/open/floor/engine, +/area/engine/engineering) +"adD" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"adE" = ( +/obj/machinery/igniter, +/turf/open/floor/engine, +/area/engine/engineering) +"adF" = ( +/obj/machinery/atmospherics/components/binary/pump{ + icon_state = "pump_map"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"adG" = ( +/obj/machinery/atmospherics/pipe/manifold/general/hidden, +/turf/open/floor/engine, +/area/engine/engineering) +"adH" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 6 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/engineering) +"adI" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"adJ" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/turf/open/space, +/area/space) +"adK" = ( +/turf/closed/wall/r_wall, +/area/space) +"adL" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai{ + name = "\improper AI Core" + }) +"adM" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 5 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"adN" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/obj/structure/alien/weeds, +/turf/open/floor/engine, +/area/engine/engineering) +"adO" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"adP" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + icon_state = "connector_map"; + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/engineering) +"adQ" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/engineering) +"adR" = ( +/obj/structure/grille, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"adS" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plasteel, +/area/engine/engineering) +"adT" = ( +/obj/machinery/suit_storage_unit/atmos, +/turf/open/floor/plasteel, +/area/engine/engineering) +"adU" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/obj/structure/alien/weeds, +/turf/open/floor/engine, +/area/engine/engineering) +"adV" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 9 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"adW" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + icon_state = "manifold"; + dir = 8 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"adX" = ( +/obj/machinery/power/rad_collector{ + anchored = 1 + }, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"adY" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"adZ" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 9 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/space) +"aea" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 9 + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"aeb" = ( +/obj/machinery/porta_turret/ai{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai{ + name = "\improper AI Core" + }) +"aec" = ( +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai{ + name = "\improper AI Core" + }) +"aed" = ( +/obj/machinery/camera/autoname, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai{ + name = "\improper AI Core" + }) +"aee" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aef" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/camera/autoname{ + icon_state = "camera"; + dir = 6 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai{ + name = "\improper AI Core" + }) +"aeg" = ( +/obj/machinery/porta_turret/ai{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai{ + name = "\improper AI Core" + }) +"aeh" = ( +/turf/open/floor/engine{ + name = "high pressure o2 floor"; + initial_gas_mix = "o2=500000;TEMP=293.15" + }, +/area/engine/engineering) +"aei" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/engine{ + name = "high pressure o2 floor"; + initial_gas_mix = "o2=500000;TEMP=293.15" + }, +/area/engine/engineering) +"aej" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + icon_state = "pump_map"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aek" = ( +/obj/machinery/atmospherics/components/binary/pump{ + icon_state = "pump_map"; + dir = 1 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ael" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 8 + }, +/area/engine/engineering) +"aem" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/engine/engineering) +"aen" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/engine/engineering) +"aeo" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/open/floor/plasteel/warning/corner{ + dir = 4 + }, +/area/engine/engineering) +"aep" = ( +/obj/machinery/ai_slipper{ + icon_state = "motion0"; + uses = 10 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai{ + name = "\improper AI Core" + }) +"aeq" = ( +/obj/machinery/computer/telecomms/server{ + network = "tcommsat" + }, +/turf/open/floor/plasteel, +/area/ai_monitored/turret_protected/tcomeast{ + name = "\improper Telecommunications Chamber" + }) +"aer" = ( +/obj/effect/landmark{ + name = "ninjaspawn" + }, +/turf/open/space, +/area/space) +"aes" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/engine{ + name = "high pressure o2 floor"; + initial_gas_mix = "o2=500000;TEMP=293.15" + }, +/area/engine/engineering) +"aet" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/engine{ + name = "high pressure o2 floor"; + initial_gas_mix = "o2=500000;TEMP=293.15" + }, +/area/engine/engineering) +"aeu" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + external_pressure_bound = 0; + initialize_directions = 1; + internal_pressure_bound = 4000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine{ + name = "high pressure o2 floor"; + initial_gas_mix = "o2=500000;TEMP=293.15" + }, +/area/engine/engineering) +"aev" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/space, +/area/space) +"aew" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aex" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 5 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aey" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 4 + }, +/obj/machinery/camera/autoname{ + dir = 1; + network = list("SS13") + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aez" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aeA" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aeB" = ( +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai{ + name = "\improper AI Core" + }) +"aeC" = ( +/turf/open/floor/plasteel/brownold{ + tag = "icon-brownold (NORTHEAST)"; + dir = 5 + }, +/area/engine/engineering) +"aeD" = ( +/obj/machinery/light/small, +/turf/open/floor/engine{ + name = "high pressure o2 floor"; + initial_gas_mix = "o2=500000;TEMP=293.15" + }, +/area/engine/engineering) +"aeE" = ( +/obj/machinery/atmospherics/components/binary/pump, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aeF" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical, +/obj/item/weapon/storage/toolbox/mechanical, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aeG" = ( +/obj/machinery/door/airlock/glass_engineering{ + name = "engineering door"; + req_access_txt = "10"; + req_one_access_txt = "0" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aeH" = ( +/obj/machinery/door/airlock/glass_engineering{ + name = "engineering door"; + req_access_txt = "10"; + req_one_access_txt = "0" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aeI" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/ai_monitored/turret_protected/tcomeast{ + name = "\improper Telecommunications Chamber" + }) +"aeJ" = ( +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/engine/engineering) +"aeK" = ( +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/engine/engineering) +"aeL" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aeM" = ( +/obj/structure/table, +/obj/item/weapon/pipe_dispenser, +/obj/item/weapon/pipe_dispenser, +/obj/item/weapon/pipe_dispenser, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aeN" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/turf/open/floor/engine, +/area/engine/engineering) +"aeO" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aeP" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aeQ" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 6 + }, +/turf/open/space, +/area/space) +"aeR" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/turf/open/space, +/area/space) +"aeS" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/obj/structure/lattice/catwalk, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/space, +/area/space) +"aeT" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 10 + }, +/turf/open/space, +/area/space) +"aeU" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/tcomeast{ + name = "\improper Telecommunications Chamber" + }) +"aeV" = ( +/obj/machinery/camera/autoname{ + icon_state = "camera"; + dir = 5 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai{ + name = "\improper AI Core" + }) +"aeW" = ( +/obj/machinery/camera/autoname, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 4 + }, +/area/engine/engineering) +"aeX" = ( +/obj/machinery/camera/autoname{ + icon_state = "camera"; + dir = 9 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai{ + name = "\improper AI Core" + }) +"aeY" = ( +/turf/open/floor/engine/n2o, +/area/engine/engineering) +"aeZ" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/engine/n2o, +/area/engine/engineering) +"afa" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"afb" = ( +/obj/machinery/camera/autoname{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"afc" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on, +/turf/open/floor/engine, +/area/engine/engineering) +"afd" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on, +/obj/machinery/camera{ + c_tag = "Heating chamber south"; + dir = 1; + network = list("heating") + }, +/turf/open/floor/engine, +/area/engine/engineering) +"afe" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"aff" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 6 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"afg" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"afh" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/turf/open/floor/plasteel, +/area/engine/engineering) +"afi" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/obj/machinery/camera/autoname{ + dir = 1; + network = list("SS13") + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"afj" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/turf/open/space, +/area/space) +"afk" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 9 + }, +/turf/open/space, +/area/space) +"afl" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-17"; + layer = 4.1 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/tcomeast{ + name = "\improper Telecommunications Chamber" + }) +"afm" = ( +/obj/machinery/camera/autoname, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/tcomeast{ + name = "\improper Telecommunications Chamber" + }) +"afn" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/ntnet_relay, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/tcomeast{ + name = "\improper Telecommunications Chamber" + }) +"afo" = ( +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/tcomeast{ + name = "\improper Telecommunications Chamber" + }) +"afp" = ( +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai{ + name = "\improper AI Core" + }) +"afq" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/engineering) +"afr" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/engine/n2o, +/area/engine/engineering) +"afs" = ( +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/turf/open/floor/engine/n2o, +/area/engine/engineering) +"aft" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + external_pressure_bound = 0; + initialize_directions = 1; + internal_pressure_bound = 4000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine/n2o, +/area/engine/engineering) +"afu" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 10 + }, +/turf/open/space, +/area/space) +"afv" = ( +/obj/item/clothing/head/cone, +/obj/item/clothing/head/cone, +/obj/item/clothing/head/cone, +/obj/item/clothing/head/cone, +/obj/item/clothing/head/cone, +/obj/item/clothing/head/cone, +/turf/open/floor/plasteel, +/area/engine/engineering) +"afw" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"afx" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ + icon_state = "intact"; + dir = 1 + }, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"afy" = ( +/obj/machinery/atmospherics/components/binary/pump{ + icon_state = "pump_map"; + dir = 1 + }, +/turf/open/floor/plasteel/warning, +/area/engine/engineering) +"afz" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warning, +/area/engine/engineering) +"afA" = ( +/obj/machinery/atmospherics/components/binary/pump, +/turf/open/floor/plasteel/warning, +/area/engine/engineering) +"afB" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 5 + }, +/turf/open/space, +/area/space) +"afC" = ( +/obj/machinery/telecomms/bus/preset_one/birdstation, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/tcomeast{ + name = "\improper Telecommunications Chamber" + }) +"afD" = ( +/obj/machinery/blackbox_recorder, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/tcomeast{ + name = "\improper Telecommunications Chamber" + }) +"afE" = ( +/obj/machinery/telecomms/broadcaster/preset_left/birdstation, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/tcomeast{ + name = "\improper Telecommunications Chamber" + }) +"afF" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai{ + name = "\improper AI Core" + }) +"afG" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"afH" = ( +/obj/machinery/camera/autoname{ + icon_state = "camera"; + dir = 10 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai{ + name = "\improper AI Core" + }) +"afI" = ( +/obj/machinery/light/small, +/turf/open/floor/engine/n2o, +/area/engine/engineering) +"afJ" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/open/space, +/area/space) +"afK" = ( +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/engine/engineering) +"afL" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"afM" = ( +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the heating area."; + name = "Heating chamber monitor"; + network = list("heating"); + pixel_y = 28 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/engineering) +"afN" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/machinery/meter, +/turf/open/floor/engine, +/area/engine/engineering) +"afO" = ( +/obj/machinery/atmospherics/components/binary/pump{ + icon_state = "pump_map"; + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"afP" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"afQ" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"afR" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"afS" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"afT" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"afU" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"afV" = ( +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"afW" = ( +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"afX" = ( +/obj/machinery/telecomms/server/presets/common/birdstation, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/tcomeast{ + name = "\improper Telecommunications Chamber" + }) +"afY" = ( +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/tcomeast{ + name = "\improper Telecommunications Chamber" + }) +"afZ" = ( +/obj/machinery/telecomms/hub/preset, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/tcomeast{ + name = "\improper Telecommunications Chamber" + }) +"aga" = ( +/obj/machinery/announcement_system, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/tcomeast{ + name = "\improper Telecommunications Chamber" + }) +"agb" = ( +/obj/machinery/door/airlock/highsecurity{ + name = "telecomms and ai module door"; + req_access_txt = "61" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai{ + name = "\improper AI Core" + }) +"agc" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 5 + }, +/turf/open/space, +/area/space) +"agd" = ( +/obj/machinery/atmospherics/components/binary/pump{ + icon_state = "pump_map"; + dir = 4 + }, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/engine/engineering) +"age" = ( +/obj/machinery/atmospherics/pipe/manifold4w/yellow/visible, +/turf/open/floor/plasteel, +/area/engine/engineering) +"agf" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"agg" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"agh" = ( +/obj/machinery/atmospherics/components/binary/pump, +/turf/open/floor/engine, +/area/engine/engineering) +"agi" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"agj" = ( +/obj/machinery/atmospherics/pipe/manifold4w/general/visible, +/turf/open/floor/engine, +/area/engine/engineering) +"agk" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"agl" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/open/floor/engine, +/area/engine/engineering) +"agm" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"agn" = ( +/obj/machinery/power/smes{ + charge = 1e+006 + }, +/obj/structure/cable/cyan, +/turf/open/floor/plasteel/darkwarning{ + dir = 9 + }, +/area/engine/engineering) +"ago" = ( +/obj/machinery/power/smes{ + charge = 1e+006 + }, +/obj/structure/cable/cyan, +/turf/open/floor/plasteel/darkwarning{ + dir = 1 + }, +/area/engine/engineering) +"agp" = ( +/obj/machinery/power/smes{ + charge = 1e+006 + }, +/obj/structure/cable/cyan, +/turf/open/floor/plasteel/darkwarning{ + dir = 5 + }, +/area/engine/engineering) +"agq" = ( +/obj/machinery/atmospherics/components/binary/pump, +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"agr" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"ags" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/obj/structure/lattice/catwalk, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/space, +/area/space) +"agt" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/turf/open/space, +/area/space) +"agu" = ( +/obj/structure/lattice, +/obj/structure/grille, +/turf/open/space, +/area/space) +"agv" = ( +/obj/machinery/telecomms/processor/preset_one/birdstation, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/tcomeast{ + name = "\improper Telecommunications Chamber" + }) +"agw" = ( +/obj/machinery/message_server, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/tcomeast{ + name = "\improper Telecommunications Chamber" + }) +"agx" = ( +/obj/machinery/telecomms/receiver/preset_left/birdstation, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/tcomeast{ + name = "\improper Telecommunications Chamber" + }) +"agy" = ( +/obj/machinery/porta_turret/ai{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/aisat_interior{ + name = "\improper AI Core Lobby" + }) +"agz" = ( +/obj/effect/landmark/start{ + name = "Cyborg" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/aisat_interior{ + name = "\improper AI Core Lobby" + }) +"agA" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/aisat_interior{ + name = "\improper AI Core Lobby" + }) +"agB" = ( +/obj/machinery/porta_turret/ai{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/aisat_interior{ + name = "\improper AI Core Lobby" + }) +"agC" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/aisat_interior{ + name = "\improper AI Core Lobby" + }) +"agD" = ( +/turf/open/floor/engine{ + name = "high pressure plasma floor"; + initial_gas_mix = "plasma=240000;TEMP=293.15" + }, +/area/engine/engineering) +"agE" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/engine{ + name = "high pressure plasma floor"; + initial_gas_mix = "plasma=240000;TEMP=293.15" + }, +/area/engine/engineering) +"agF" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"agG" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + icon_state = "connector_map"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"agH" = ( +/obj/item/weapon/wrench, +/turf/open/floor/plasteel, +/area/engine/engineering) +"agI" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/structure/window/reinforced, +/obj/machinery/meter, +/turf/open/floor/engine, +/area/engine/engineering) +"agJ" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/window/reinforced, +/turf/open/floor/engine, +/area/engine/engineering) +"agK" = ( +/obj/machinery/meter, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/structure/window/reinforced, +/turf/open/floor/engine, +/area/engine/engineering) +"agL" = ( +/obj/machinery/power/terminal{ + icon_state = "term"; + dir = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plasteel/darkwarning{ + dir = 8 + }, +/area/engine/engineering) +"agM" = ( +/obj/machinery/power/terminal{ + icon_state = "term"; + dir = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plasteel/black, +/area/engine/engineering) +"agN" = ( +/obj/machinery/power/terminal{ + icon_state = "term"; + dir = 1 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plasteel/darkwarning{ + dir = 4 + }, +/area/engine/engineering) +"agO" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 5 + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"agP" = ( +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/tcomeast{ + name = "\improper Telecommunications Chamber" + }) +"agQ" = ( +/obj/machinery/door/window/southright, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/tcomeast{ + name = "\improper Telecommunications Chamber" + }) +"agR" = ( +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/aisat_interior{ + name = "\improper AI Core Lobby" + }) +"agS" = ( +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/aisat_interior{ + name = "\improper AI Core Lobby" + }) +"agT" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/aisat_interior{ + name = "\improper AI Core Lobby" + }) +"agU" = ( +/turf/closed/wall/r_wall, +/area/security/nuke_storage) +"agV" = ( +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"agW" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/engine{ + name = "high pressure plasma floor"; + initial_gas_mix = "plasma=240000;TEMP=293.15" + }, +/area/engine/engineering) +"agX" = ( +/obj/machinery/portable_atmospherics/canister/toxins, +/turf/open/floor/engine{ + name = "high pressure plasma floor"; + initial_gas_mix = "plasma=240000;TEMP=293.15" + }, +/area/engine/engineering) +"agY" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + external_pressure_bound = 0; + initialize_directions = 1; + internal_pressure_bound = 4000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine{ + name = "high pressure plasma floor"; + initial_gas_mix = "plasma=240000;TEMP=293.15" + }, +/area/engine/engineering) +"agZ" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + icon_state = "intact"; + dir = 4 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aha" = ( +/obj/machinery/atmospherics/components/binary/pump{ + icon_state = "pump_map"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ahb" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/engineering) +"ahc" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"ahd" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"ahe" = ( +/obj/machinery/atmospherics/components/binary/circulator, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ahf" = ( +/obj/structure/cable, +/obj/machinery/power/generator{ + cold_dir = 4; + hot_dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ahg" = ( +/obj/machinery/atmospherics/components/binary/circulator{ + icon_state = "circ2-off" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ahh" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/darkwarning{ + dir = 10 + }, +/area/engine/engineering) +"ahi" = ( +/obj/machinery/computer/monitor, +/obj/structure/cable/cyan{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel/darkwarning, +/area/engine/engineering) +"ahj" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/darkwarning{ + dir = 6 + }, +/area/engine/engineering) +"ahk" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 6 + }, +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"ahl" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/tcomeast{ + name = "\improper Telecommunications Chamber" + }) +"ahm" = ( +/obj/machinery/computer/telecomms/monitor{ + network = "tcommsat" + }, +/turf/open/floor/plasteel, +/area/ai_monitored/turret_protected/tcomeast{ + name = "\improper Telecommunications Chamber" + }) +"ahn" = ( +/obj/machinery/turretid{ + control_area = "AI Core Lobby"; + pixel_x = 24 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-17"; + layer = 4.1 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/turret_protected/tcomeast{ + name = "\improper Telecommunications Chamber" + }) +"aho" = ( +/obj/structure/table, +/obj/item/weapon/paper/monitorkey{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/weapon/pen, +/turf/open/floor/plasteel, +/area/ai_monitored/turret_protected/tcomeast{ + name = "\improper Telecommunications Chamber" + }) +"ahp" = ( +/turf/open/floor/plasteel/neutral, +/area/ai_monitored/turret_protected/tcomeast{ + name = "\improper Telecommunications Chamber" + }) +"ahq" = ( +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/obj/machinery/camera/autoname{ + icon_state = "camera"; + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/aisat_interior{ + name = "\improper AI Core Lobby" + }) +"ahr" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/aisat_interior{ + name = "\improper AI Core Lobby" + }) +"ahs" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/brownold{ + tag = "icon-brownold (NORTHEAST)"; + dir = 5 + }, +/area/engine/engineering) +"aht" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/aisat_interior{ + name = "\improper AI Core Lobby" + }) +"ahu" = ( +/obj/structure/table, +/obj/item/areaeditor/blueprints, +/turf/open/floor/plasteel/black, +/area/security/nuke_storage) +"ahv" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/nuclearbomb/selfdestruct, +/turf/open/floor/plasteel/black, +/area/security/nuke_storage) +"ahw" = ( +/obj/structure/filingcabinet, +/obj/item/weapon/folder/documents, +/turf/open/floor/plasteel/black, +/area/security/nuke_storage) +"ahx" = ( +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/engine/gravity_generator) +"ahy" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/gravity_generator) +"ahz" = ( +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/engine/gravity_generator) +"ahA" = ( +/obj/machinery/light/small, +/turf/open/floor/engine{ + name = "high pressure plasma floor"; + initial_gas_mix = "plasma=240000;TEMP=293.15" + }, +/area/engine/engineering) +"ahB" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/engineering) +"ahC" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"ahD" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 6 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"ahE" = ( +/obj/machinery/atmospherics/pipe/simple{ + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ahF" = ( +/obj/machinery/atmospherics/pipe/simple{ + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ahG" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 4 + }, +/obj/machinery/meter, +/turf/open/floor/engine, +/area/engine/engineering) +"ahH" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"ahI" = ( +/obj/machinery/atmospherics/components/binary/pump{ + icon_state = "pump_map"; + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"ahJ" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/obj/structure/lattice/catwalk, +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/turf/open/space, +/area/space) +"ahK" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/obj/structure/lattice/catwalk, +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/turf/open/space, +/area/space) +"ahL" = ( +/obj/item/device/radio/beacon, +/turf/open/floor/plasteel/neutral, +/area/ai_monitored/turret_protected/tcomeast{ + name = "\improper Telecommunications Chamber" + }) +"ahM" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/neutral, +/area/ai_monitored/turret_protected/tcomeast{ + name = "\improper Telecommunications Chamber" + }) +"ahN" = ( +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/neutral, +/area/ai_monitored/turret_protected/tcomeast{ + name = "\improper Telecommunications Chamber" + }) +"ahO" = ( +/obj/machinery/door/airlock/highsecurity{ + name = "telecomms and ai module door"; + req_access_txt = "61" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/tcomeast{ + name = "\improper Telecommunications Chamber" + }) +"ahP" = ( +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/aisat_interior{ + name = "\improper AI Core Lobby" + }) +"ahQ" = ( +/turf/open/floor/plasteel/black, +/area/security/nuke_storage) +"ahR" = ( +/obj/machinery/camera/autoname{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/security/nuke_storage) +"ahS" = ( +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/gravity_generator) +"ahT" = ( +/turf/open/floor/plasteel/black, +/area/engine/gravity_generator) +"ahU" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 6 + }, +/turf/open/space, +/area/space) +"ahV" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"ahW" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"ahX" = ( +/obj/machinery/camera/autoname{ + dir = 1; + network = list("SS13") + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"ahY" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"ahZ" = ( +/turf/open/floor/plasteel/stairs, +/area/engine/engineering) +"aia" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"aib" = ( +/obj/machinery/light, +/turf/open/floor/engine, +/area/engine/engineering) +"aic" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/neutral, +/area/ai_monitored/turret_protected/tcomeast{ + name = "\improper Telecommunications Chamber" + }) +"aid" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "Telecommunications Chamber APC"; + pixel_x = 24 + }, +/obj/structure/cable/cyan{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel/neutral, +/area/ai_monitored/turret_protected/tcomeast{ + name = "\improper Telecommunications Chamber" + }) +"aie" = ( +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral, +/area/ai_monitored/turret_protected/tcomeast{ + name = "\improper Telecommunications Chamber" + }) +"aif" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-02"; + layer = 4.1 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/aisat_interior{ + name = "\improper AI Core Lobby" + }) +"aig" = ( +/obj/machinery/power/apc{ + name = "AI Core Lobby APC"; + pixel_y = -24 + }, +/obj/structure/cable/cyan, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/aisat_interior{ + name = "\improper AI Core Lobby" + }) +"aih" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Vault APC"; + pixel_x = -24 + }, +/obj/structure/cable/cyan{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel/black, +/area/security/nuke_storage) +"aii" = ( +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/black, +/area/security/nuke_storage) +"aij" = ( +/obj/structure/safe, +/obj/item/weapon/grenade/clusterbuster/metalfoam, +/obj/item/weapon/grenade/clusterbuster/metalfoam, +/obj/item/weapon/c4, +/obj/item/weapon/lazarus_injector, +/obj/item/slimepotion/sentience, +/turf/open/floor/plasteel/black, +/area/security/nuke_storage) +"aik" = ( +/obj/machinery/gravity_generator/main/station, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/gravity_generator) +"ail" = ( +/obj/structure/grille, +/turf/closed/wall, +/area/space) +"aim" = ( +/obj/effect/landmark{ + name = "carpspawn" + }, +/turf/open/space, +/area/space) +"ain" = ( +/turf/open/floor/engine{ + name = "high pressure co2 floor"; + initial_gas_mix = "co2=200000;TEMP=293.15" + }, +/area/engine/engineering) +"aio" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/engine{ + name = "high pressure co2 floor"; + initial_gas_mix = "co2=200000;TEMP=293.15" + }, +/area/engine/engineering) +"aip" = ( +/turf/open/floor/plating/warnplate/corner{ + dir = 8 + }, +/area/engine/engineering) +"aiq" = ( +/obj/machinery/atmospherics/components/binary/pump{ + icon_state = "pump_map"; + dir = 1 + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/engine/engineering) +"air" = ( +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/engine/engineering) +"ais" = ( +/obj/machinery/camera/autoname{ + icon_state = "camera"; + dir = 10 + }, +/turf/open/floor/plating/warnplate{ + dir = 5 + }, +/area/engine/engineering) +"ait" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aiu" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 8 + }, +/area/engine/engineering) +"aiv" = ( +/obj/structure/grille, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"aiw" = ( +/obj/structure/grille, +/obj/structure/lattice/catwalk, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/space, +/area/space) +"aix" = ( +/obj/machinery/door/airlock/highsecurity{ + name = "telecomms and ai module door"; + req_access_txt = "61" + }, +/turf/open/floor/plasteel/neutral, +/area/ai_monitored/turret_protected/tcomeast{ + name = "\improper Telecommunications Chamber" + }) +"aiy" = ( +/obj/machinery/door/airlock/highsecurity{ + name = "telecomms and ai module door"; + req_access_txt = "61" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral, +/area/ai_monitored/turret_protected/tcomeast{ + name = "\improper Telecommunications Chamber" + }) +"aiz" = ( +/obj/machinery/door/airlock/vault{ + locked = 1; + req_access_txt = "53" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black, +/area/security/nuke_storage) +"aiA" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/brownold{ + tag = "icon-brownold (NORTHWEST)"; + dir = 9 + }, +/area/engine/engineering) +"aiB" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aiC" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/engine{ + name = "high pressure co2 floor"; + initial_gas_mix = "co2=200000;TEMP=293.15" + }, +/area/engine/engineering) +"aiD" = ( +/obj/machinery/portable_atmospherics/canister/carbon_dioxide, +/turf/open/floor/engine{ + name = "high pressure co2 floor"; + initial_gas_mix = "co2=200000;TEMP=293.15" + }, +/area/engine/engineering) +"aiE" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + external_pressure_bound = 0; + initialize_directions = 1; + internal_pressure_bound = 4000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine{ + name = "high pressure co2 floor"; + initial_gas_mix = "co2=200000;TEMP=293.15" + }, +/area/engine/engineering) +"aiF" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 9 + }, +/turf/open/space, +/area/space) +"aiG" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/open/floor/plating, +/area/engine/engineering) +"aiH" = ( +/obj/item/device/radio/beacon, +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aiI" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aiJ" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 8 + }, +/area/engine/engineering) +"aiK" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/engine/engineering) +"aiL" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 4 + }, +/area/engine/engineering) +"aiM" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/primary/fore{ + name = "\improper Command Hallway" + }) +"aiN" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "\improper Command Hallway" + }) +"aiO" = ( +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "\improper Command Hallway" + }) +"aiP" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + anchored = 1; + icon_state = "plant-05"; + layer = 4.1; + name = "incredibly heavy plant" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "\improper Command Hallway" + }) +"aiQ" = ( +/turf/closed/wall, +/area/engine/gravity_generator) +"aiR" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/brownold{ + tag = "icon-brownold (NORTHEAST)"; + dir = 5 + }, +/area/engine/engineering) +"aiS" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"aiT" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/brownold{ + tag = "icon-brownold (NORTHWEST)"; + dir = 9 + }, +/area/engine/engineering) +"aiU" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/gravity_generator) +"aiV" = ( +/obj/machinery/light/small, +/turf/open/floor/engine{ + name = "high pressure co2 floor"; + initial_gas_mix = "co2=200000;TEMP=293.15" + }, +/area/engine/engineering) +"aiW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + name = "waste pipe" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aiX" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/visible{ + icon_state = "manifold"; + dir = 8 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aiY" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/visible{ + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aiZ" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aja" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 4 + }, +/obj/structure/reflector/box{ + anchored = 1; + layer = 3 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"ajb" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "\improper Command Hallway" + }) +"ajc" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/brownold{ + tag = "icon-brownold (NORTHWEST)"; + dir = 9 + }, +/area/engine/engineering) +"ajd" = ( +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aje" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 4 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/engine/engineering) +"ajf" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "Engineering APC"; + pixel_x = 24 + }, +/obj/structure/cable/cyan, +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ajg" = ( +/turf/closed/wall, +/area/hallway/primary/fore{ + name = "\improper Command Hallway" + }) +"ajh" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/brownold{ + tag = "icon-brownold (NORTHWEST)"; + dir = 9 + }, +/area/engine/engineering) +"aji" = ( +/turf/open/floor/engine{ + name = "high pressure n2 floor"; + initial_gas_mix = "n2=400000;TEMP=293.15" + }, +/area/engine/engineering) +"ajj" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 0; + initialize_directions = 1; + internal_pressure_bound = 4000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine{ + name = "high pressure n2 floor"; + initial_gas_mix = "n2=400000;TEMP=293.15" + }, +/area/engine/engineering) +"ajk" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + name = "waste pipe"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/engine/engineering) +"ajl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + name = "waste pipe"; + icon_state = "intact"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/engine/engineering) +"ajm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + name = "waste pipe"; + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/engine/engineering) +"ajn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/engine/engineering) +"ajo" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + icon_state = "pump_map"; + dir = 4 + }, +/turf/closed/wall, +/area/engine/engineering) +"ajp" = ( +/obj/structure/tank_dispenser, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ajq" = ( +/obj/machinery/vending/engivend, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ajr" = ( +/obj/machinery/vending/tool, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ajs" = ( +/obj/machinery/suit_storage_unit/engine, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ajt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aju" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ajv" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/primary/fore{ + name = "\improper Command Hallway" + }) +"ajw" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/engine{ + name = "high pressure n2 floor"; + initial_gas_mix = "n2=400000;TEMP=293.15" + }, +/area/engine/engineering) +"ajx" = ( +/obj/machinery/portable_atmospherics/canister/nitrogen, +/turf/open/floor/engine{ + name = "high pressure n2 floor"; + initial_gas_mix = "n2=400000;TEMP=293.15" + }, +/area/engine/engineering) +"ajy" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/engine{ + name = "high pressure n2 floor"; + initial_gas_mix = "n2=400000;TEMP=293.15" + }, +/area/engine/engineering) +"ajz" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + name = "waste pipe" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"ajA" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plating, +/area/engine/engineering) +"ajB" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ajC" = ( +/obj/effect/landmark/start{ + name = "Station Engineer" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ajD" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ajE" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/black, +/area/hallway/primary/fore{ + name = "\improper Command Hallway" + }) +"ajF" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel/black, +/area/hallway/primary/fore{ + name = "\improper Command Hallway" + }) +"ajG" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + icon_state = "vent_map" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "\improper Command Hallway" + }) +"ajH" = ( +/obj/machinery/light/small, +/turf/open/floor/engine{ + name = "high pressure n2 floor"; + initial_gas_mix = "n2=400000;TEMP=293.15" + }, +/area/engine/engineering) +"ajI" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"ajJ" = ( +/obj/machinery/button/door{ + id = "secure storage"; + name = "secure storage button"; + pixel_x = -24 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ajK" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "\improper Command Hallway" + }) +"ajL" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "\improper Command Hallway" + }) +"ajM" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Command Hallway APC"; + pixel_y = 24 + }, +/obj/structure/cable/cyan{ + icon_state = "0-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "\improper Command Hallway" + }) +"ajN" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "\improper Command Hallway" + }) +"ajO" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "\improper Command Hallway" + }) +"ajP" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "\improper Command Hallway" + }) +"ajQ" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-17"; + layer = 4.1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "\improper Command Hallway" + }) +"ajR" = ( +/obj/machinery/camera/autoname{ + icon_state = "camera"; + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 2 + }, +/area/engine/engineering) +"ajS" = ( +/turf/open/floor/plasteel/warning{ + dir = 2 + }, +/area/engine/engineering) +"ajT" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/glasses/meson/engine, +/obj/item/clothing/glasses/meson/engine, +/obj/item/clothing/glasses/meson/engine, +/obj/item/clothing/glasses/meson/engine, +/obj/machinery/light/small, +/turf/open/floor/plasteel/warning/corner{ + dir = 1 + }, +/area/engine/engineering) +"ajU" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal{ + amount = 50; + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/stack/sheet/metal{ + amount = 50; + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/stack/sheet/metal{ + amount = 50; + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/stack/sheet/glass{ + amount = 50; + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stack/sheet/glass{ + amount = 50; + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stack/sheet/plasteel{ + amount = 10 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/obj/item/weapon/stock_parts/cell/high, +/obj/item/weapon/stock_parts/cell/high, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ajV" = ( +/obj/machinery/door/airlock/glass_engineering{ + name = "engineering door"; + req_access_txt = "10"; + req_one_access_txt = "0" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ajW" = ( +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "\improper Command Hallway" + }) +"ajX" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "\improper Command Hallway" + }) +"ajY" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "\improper Command Hallway" + }) +"ajZ" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/obj/machinery/camera/autoname{ + icon_state = "camera"; + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "\improper Command Hallway" + }) +"aka" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "\improper Command Hallway" + }) +"akb" = ( +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "\improper Command Hallway" + }) +"akc" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "\improper Command Hallway" + }) +"akd" = ( +/turf/open/floor/engine{ + name = "high pressure air floor"; + initial_gas_mix = "o2=10000;n2=40015;TEMP=293.15" + }, +/area/engine/engineering) +"ake" = ( +/obj/machinery/door/poddoor{ + id = "secure storage"; + name = "secure storage blast door" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"akf" = ( +/turf/open/floor/plasteel/brownold{ + dir = 8 + }, +/area/hallway/primary/fore{ + name = "\improper Command Hallway" + }) +"akg" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "\improper Command Hallway" + }) +"akh" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai_upload) +"aki" = ( +/turf/closed/wall, +/area/gateway) +"akj" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/gateway) +"akk" = ( +/turf/closed/wall, +/area/maintenance/fsmaint) +"akl" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/engine{ + name = "high pressure air floor"; + initial_gas_mix = "o2=10000;n2=40015;TEMP=293.15" + }, +/area/engine/engineering) +"akm" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/engine{ + name = "high pressure air floor"; + initial_gas_mix = "o2=10000;n2=40015;TEMP=293.15" + }, +/area/engine/engineering) +"akn" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + external_pressure_bound = 0; + initialize_directions = 1; + internal_pressure_bound = 4000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine{ + name = "high pressure air floor"; + initial_gas_mix = "o2=10000;n2=40015;TEMP=293.15" + }, +/area/engine/engineering) +"ako" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + icon_state = "intact"; + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/engineering) +"akp" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + icon_state = "manifold"; + dir = 4 + }, +/turf/open/space, +/area/space) +"akq" = ( +/obj/structure/closet/radiation, +/turf/open/floor/plating, +/area/engine/engineering) +"akr" = ( +/turf/open/floor/plating, +/area/engine/engineering) +"aks" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plating, +/area/engine/engineering) +"akt" = ( +/obj/machinery/portable_atmospherics/canister/carbon_dioxide, +/turf/open/floor/plating, +/area/engine/engineering) +"aku" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"akv" = ( +/obj/machinery/door/airlock/glass_engineering{ + name = "engineering door"; + req_access_txt = "10"; + req_one_access_txt = "0" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"akw" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/brownold{ + dir = 8 + }, +/area/hallway/primary/fore{ + name = "\improper Command Hallway" + }) +"akx" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "\improper Command Hallway" + }) +"aky" = ( +/obj/machinery/camera/autoname{ + icon_state = "camera"; + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "\improper Command Hallway" + }) +"akz" = ( +/obj/machinery/turretid{ + control_area = "AI Upload Chamber"; + pixel_x = 28; + pixel_y = 0 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai_upload) +"akA" = ( +/obj/machinery/porta_turret/ai, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai_upload) +"akB" = ( +/obj/structure/table, +/obj/item/weapon/aiModule/reset, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai_upload) +"akC" = ( +/obj/structure/table, +/obj/item/weapon/aiModule/core/full/asimov, +/obj/item/weapon/aiModule/core/full/asimovpp, +/obj/item/weapon/aiModule/core/full/corp, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai_upload) +"akD" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-02"; + layer = 4.1 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/gateway) +"akE" = ( +/obj/machinery/gateway{ + dir = 9 + }, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/gateway) +"akF" = ( +/obj/machinery/gateway{ + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/gateway) +"akG" = ( +/obj/machinery/gateway{ + dir = 5 + }, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/gateway) +"akH" = ( +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/gateway) +"akI" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-02"; + layer = 4.1 + }, +/turf/open/floor/plasteel, +/area/gateway) +"akJ" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/black, +/area/maintenance/fsmaint) +"akK" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-02"; + layer = 4.1 + }, +/turf/open/floor/plasteel/black, +/area/maintenance/fsmaint) +"akL" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"akM" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/space, +/area/space) +"akN" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/closet/radiation, +/turf/open/floor/plating, +/area/engine/engineering) +"akO" = ( +/obj/structure/closet/secure_closet/engineering_welding, +/turf/open/floor/plating, +/area/engine/engineering) +"akP" = ( +/obj/machinery/portable_atmospherics/canister/carbon_dioxide, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"akQ" = ( +/obj/machinery/camera/autoname{ + icon_state = "camera"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"akR" = ( +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "\improper Command Hallway" + }) +"akS" = ( +/obj/machinery/door/airlock/command{ + name = "command door"; + req_access_txt = "19" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/ai_monitored/turret_protected/ai_upload) +"akT" = ( +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai_upload) +"akU" = ( +/obj/machinery/door/airlock/command{ + name = "command door"; + req_access_txt = "19" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai_upload) +"akV" = ( +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai_upload) +"akW" = ( +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai_upload) +"akX" = ( +/obj/machinery/computer/upload/borg, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/door/window/westright{ + req_access_txt = "55" + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai_upload) +"akY" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + anchored = 1; + icon_state = "plant-05"; + layer = 4.1; + name = "incredibly heavy plant" + }, +/obj/machinery/camera/autoname{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai_upload) +"akZ" = ( +/turf/closed/wall/r_wall, +/area/maintenance/fsmaint) +"ala" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + anchored = 1; + icon_state = "plant-05"; + layer = 4.1; + name = "incredibly heavy plant" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"alb" = ( +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"alc" = ( +/obj/effect/spawner/lootdrop/crate_spawner, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"ald" = ( +/obj/structure/bookcase, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"ale" = ( +/obj/structure/table_frame/wood, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"alf" = ( +/obj/structure/table/wood, +/obj/item/clothing/under/skirt/red, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"alg" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/gateway) +"alh" = ( +/obj/machinery/gateway{ + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/gateway) +"ali" = ( +/obj/machinery/gateway/centerstation, +/turf/open/floor/plasteel/black, +/area/gateway) +"alj" = ( +/obj/machinery/gateway{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/gateway) +"alk" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/closet/cardboard, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/effect/decal/cleanable/blood/old = 10, /obj/item/voodoo = 1); + name = "vodoo doll spawner" + }, +/obj/item/weapon/coin/diamond, +/turf/open/floor/plating, +/area/gateway) +"all" = ( +/turf/closed/wall/rust, +/area/gateway) +"alm" = ( +/obj/structure/chair/comfy/beige{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/maintenance/fsmaint) +"aln" = ( +/obj/machinery/power/emitter, +/turf/open/floor/plating, +/area/engine/engineering) +"alo" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plating, +/area/engine/engineering) +"alp" = ( +/obj/structure/closet/crate, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/weapon/electronics/airlock, +/obj/item/weapon/electronics/airlock, +/obj/item/weapon/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000 + }, +/obj/item/stack/sheet/mineral/plasma{ + amount = 30 + }, +/obj/item/device/gps/engineering, +/obj/item/device/gps/engineering, +/obj/item/clothing/shoes/magboots/advance, +/turf/open/floor/plating, +/area/engine/engineering) +"alq" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-16"; + layer = 4.1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "\improper Command Hallway" + }) +"alr" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-16"; + layer = 4.1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "\improper Command Hallway" + }) +"als" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai_upload) +"alt" = ( +/obj/machinery/computer/upload/ai, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/door/window/westleft{ + req_access_txt = "55" + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai_upload) +"alu" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + anchored = 1; + icon_state = "plant-05"; + layer = 4.1; + name = "incredibly heavy plant" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai_upload) +"alv" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "\improper Command Hallway" + }) +"alw" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "\improper Command Hallway" + }) +"alx" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "\improper Command Hallway" + }) +"aly" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "\improper Command Hallway" + }) +"alz" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-04"; + layer = 4.1 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"alA" = ( +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"alB" = ( +/obj/structure/bookcase, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"alC" = ( +/obj/structure/chair/comfy/beige{ + dir = 4 + }, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"alD" = ( +/obj/structure/table/wood, +/obj/item/weapon/relic, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"alE" = ( +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/gateway) +"alF" = ( +/obj/machinery/gateway{ + dir = 10 + }, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/gateway) +"alG" = ( +/obj/machinery/gateway, +/obj/structure/cable/cyan{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/gateway) +"alH" = ( +/obj/machinery/gateway{ + dir = 6 + }, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/gateway) +"alI" = ( +/obj/structure/table/wood, +/turf/open/floor/plasteel, +/area/gateway) +"alJ" = ( +/turf/open/floor/plasteel/black, +/area/maintenance/fsmaint) +"alK" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/glass_engineering{ + name = "engineering door"; + req_access_txt = "10"; + req_one_access_txt = "0" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"alL" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/hallway/primary/fore{ + name = "\improper Command Hallway" + }) +"alM" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/power/apc{ + dir = 8; + name = "AI Upload APC"; + pixel_x = -24; + pixel_y = 0 + }, +/obj/structure/cable/cyan{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai_upload) +"alN" = ( +/obj/machinery/porta_turret/ai{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai_upload) +"alO" = ( +/obj/structure/table, +/obj/item/weapon/aiModule/supplied/freeform, +/obj/machinery/light/small, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai_upload) +"alP" = ( +/obj/structure/table, +/obj/item/weapon/aiModule/core/full/tyrant, +/obj/item/weapon/aiModule/core/full/antimov, +/obj/item/weapon/aiModule/reset/purge, +/obj/item/weapon/aiModule/zeroth/oneHuman, +/obj/item/weapon/aiModule/supplied/quarantine, +/obj/item/weapon/aiModule/supplied/oxygen, +/obj/item/weapon/aiModule/supplied/protectStation, +/obj/item/weapon/aiModule/supplied/safeguard, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai_upload) +"alQ" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/camera/autoname{ + dir = 1; + network = list("SS13") + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "\improper Command Hallway" + }) +"alR" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + icon_state = "vent_map"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "\improper Command Hallway" + }) +"alS" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "\improper Command Hallway" + }) +"alT" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "\improper Command Hallway" + }) +"alU" = ( +/obj/machinery/door/airlock/command{ + name = "command door"; + req_access_txt = "19" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"alV" = ( +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/obj/item/weapon/storage/box/lights/mixed, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"alW" = ( +/obj/structure/chair/comfy/beige, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"alX" = ( +/obj/structure/spirit_board{ + anchored = 1 + }, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"alY" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance door"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/gateway) +"alZ" = ( +/turf/open/floor/plasteel/warning/corner{ + dir = 8 + }, +/area/gateway) +"ama" = ( +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/gateway) +"amb" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/gateway) +"amc" = ( +/turf/open/floor/plasteel/warning/corner{ + dir = 4 + }, +/area/gateway) +"amd" = ( +/turf/open/floor/plasteel, +/area/gateway) +"ame" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/atmos{ + name = "Emergency Air Pumps" + }) +"amf" = ( +/obj/machinery/camera/autoname{ + icon_state = "camera"; + dir = 6 + }, +/turf/open/floor/plasteel, +/area/atmos{ + name = "Emergency Air Pumps" + }) +"amg" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/atmos{ + name = "Emergency Air Pumps" + }) +"amh" = ( +/turf/open/floor/plasteel, +/area/atmos{ + name = "Emergency Air Pumps" + }) +"ami" = ( +/obj/machinery/door/airlock/atmos{ + name = "atmospherics door"; + req_access_txt = "24" + }, +/turf/open/floor/plasteel, +/area/atmos{ + name = "Emergency Air Pumps" + }) +"amj" = ( +/turf/open/floor/plasteel/blue/side{ + dir = 8 + }, +/area/engine/engineering) +"amk" = ( +/turf/open/floor/plasteel/brownold{ + dir = 1 + }, +/area/engine/engineering) +"aml" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/brownold{ + dir = 1 + }, +/area/engine/engineering) +"amm" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/space, +/area/space) +"amn" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/camera/autoname{ + icon_state = "camera"; + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai_upload) +"amo" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"amp" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"amq" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance door"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"amr" = ( +/obj/structure/table/wood, +/obj/item/weapon/coin/silver, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"ams" = ( +/turf/open/floor/plating, +/area/gateway) +"amt" = ( +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/gateway) +"amu" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/gateway) +"amv" = ( +/obj/machinery/power/apc{ + dir = 2; + name = "Gateway APC"; + pixel_y = -24 + }, +/obj/structure/cable/cyan{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/gateway) +"amw" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"amx" = ( +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"amy" = ( +/obj/machinery/door/airlock/external{ + req_access_txt = "13" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"amz" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/cyan{ + icon_state = "0-8" + }, +/turf/open/space, +/area/space) +"amA" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + icon_state = "intact"; + dir = 5 + }, +/turf/open/space, +/area/space) +"amB" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + icon_state = "intact"; + dir = 10 + }, +/turf/open/space, +/area/space) +"amC" = ( +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/atmos{ + name = "Emergency Air Pumps" + }) +"amD" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/atmos{ + name = "Emergency Air Pumps" + }) +"amE" = ( +/obj/machinery/door/airlock/atmos{ + name = "atmospherics door"; + req_access_txt = "24" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/atmos{ + name = "Emergency Air Pumps" + }) +"amF" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/blue/side{ + dir = 8 + }, +/area/engine/engineering) +"amG" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"amH" = ( +/turf/open/floor/plating/airless, +/area/space) +"amI" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on, +/turf/open/floor/plating/airless, +/area/hallway/primary/port{ + name = "\improper Northwest Hallway" + }) +"amJ" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/primary/port{ + name = "\improper Northwest Hallway" + }) +"amK" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/hallway/primary/port{ + name = "\improper Northwest Hallway" + }) +"amL" = ( +/turf/closed/wall/r_wall, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"amM" = ( +/obj/machinery/door/airlock/command{ + name = "command door"; + req_access_txt = "19" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"amN" = ( +/turf/closed/wall, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"amO" = ( +/obj/item/stack/sheet/rglass{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/obj/item/device/flashlight, +/obj/structure/closet/crate, +/obj/item/stack/sheet/plasteel{ + amount = 10 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/bot, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"amP" = ( +/obj/machinery/computer/teleporter, +/turf/open/floor/plasteel, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"amQ" = ( +/obj/machinery/teleport/station, +/turf/open/floor/plasteel, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"amR" = ( +/obj/machinery/teleport/hub, +/turf/open/floor/plasteel, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"amS" = ( +/obj/machinery/suit_storage_unit/captain, +/turf/open/floor/wood, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"amT" = ( +/obj/machinery/button/door{ + id = "hallway shutter"; + name = "hallway shutter button"; + pixel_y = 24 + }, +/turf/open/floor/carpet, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"amU" = ( +/obj/structure/dresser, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"amV" = ( +/obj/machinery/computer/communications, +/turf/open/floor/carpet, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"amW" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "\improper Command Hallway" + }) +"amX" = ( +/turf/open/floor/wood{ + icon_state = "wood-broken3" + }, +/area/maintenance/fsmaint) +"amY" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance door"; + req_access_txt = "12" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/gateway) +"amZ" = ( +/obj/machinery/door/airlock/external{ + req_access_txt = "13" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"ana" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/atmos{ + name = "Emergency Air Pumps" + }) +"anb" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/hallway/primary/port{ + name = "\improper Northwest Hallway" + }) +"anc" = ( +/obj/item/weapon/twohanded/required/kirbyplants, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "\improper Northwest Hallway" + }) +"and" = ( +/obj/item/weapon/twohanded/required/kirbyplants, +/obj/machinery/camera/autoname{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "\improper Northwest Hallway" + }) +"ane" = ( +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/camera/autoname{ + icon_state = "camera"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"anf" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Teleporter Room APC"; + pixel_y = 24 + }, +/obj/structure/cable/cyan{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"ang" = ( +/turf/open/floor/plasteel, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"anh" = ( +/obj/machinery/bluespace_beacon, +/turf/open/floor/plasteel, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"ani" = ( +/obj/structure/closet/secure_closet/captains, +/obj/item/weapon/stamp/captain, +/obj/item/weapon/reagent_containers/food/drinks/flask, +/obj/machinery/power/apc{ + dir = 8; + name = "Captain's Quarters APC"; + pixel_x = -24 + }, +/obj/item/weapon/gun/energy/laser/captain, +/obj/structure/cable/cyan{ + icon_state = "0-4" + }, +/turf/open/floor/wood, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"anj" = ( +/obj/effect/landmark/start{ + name = "Captain" + }, +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/turf/open/floor/carpet, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"ank" = ( +/obj/structure/chair/comfy/beige{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"anl" = ( +/obj/structure/table/wood, +/obj/item/weapon/hand_tele, +/obj/item/weapon/bikehorn/rubberducky{ + pixel_x = -5; + pixel_y = 5 + }, +/obj/item/toy/carpplushie{ + attack_verb = list("bitten","pecked","wing slapped"); + desc = "An adorable stuffed toy that resembles a parrot."; + icon = 'icons/mob/animal.dmi'; + icon_state = "parrot_sit"; + name = "parrot plushie" + }, +/turf/open/floor/carpet, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"anm" = ( +/turf/closed/wall/rust, +/area/maintenance/fsmaint) +"ann" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/book{ + icon_state = "book2"; + name = "Cute Happy Parrot Adventure" + }, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"ano" = ( +/obj/machinery/bookbinder, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"anp" = ( +/obj/structure/barricade/wooden, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"anq" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/barricade/wooden, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"anr" = ( +/obj/machinery/computer/arcade, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"ans" = ( +/obj/structure/chair/stool, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"ant" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + anchored = 1; + icon_state = "plant-05"; + layer = 4.1; + name = "incredibly heavy plant" + }, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"anu" = ( +/obj/structure/closet/crate{ + name = "solar pack crate" + }, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/weapon/circuitboard/computer/solar_control, +/obj/item/weapon/electronics/tracker, +/obj/item/weapon/paper/solar, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"anv" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"anw" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/maintenance/fsmaint) +"anx" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"any" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/closed/wall, +/area/engine/engineering) +"anz" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "\improper Northwest Hallway" + }) +"anA" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "\improper Northwest Hallway" + }) +"anB" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/scrubber/huge/movable, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "\improper Northwest Hallway" + }) +"anC" = ( +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "\improper Northwest Hallway" + }) +"anD" = ( +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "\improper Northwest Hallway" + }) +"anE" = ( +/obj/machinery/door/airlock/command{ + name = "teleporter door"; + req_access_txt = "17" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"anF" = ( +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"anG" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"anH" = ( +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"anI" = ( +/obj/structure/table, +/obj/item/device/aicard, +/obj/item/weapon/hand_tele, +/turf/open/floor/plasteel, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"anJ" = ( +/obj/structure/table/wood, +/obj/item/weapon/pinpointer, +/obj/item/weapon/disk/nuclear, +/obj/machinery/camera/autoname{ + icon_state = "camera"; + dir = 5 + }, +/turf/open/floor/wood, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"anK" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/carpet, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"anL" = ( +/obj/machinery/computer/card, +/turf/open/floor/carpet, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"anM" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/lockbox/medal, +/obj/item/weapon/card/id/captains_spare, +/turf/open/floor/carpet, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"anN" = ( +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"anO" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"anP" = ( +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"anQ" = ( +/obj/structure/table/wood, +/obj/item/weapon/bikehorn/rubberducky, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"anR" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp/green, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"anS" = ( +/turf/open/floor/wood{ + icon_state = "wood-broken4" + }, +/area/maintenance/fsmaint) +"anT" = ( +/obj/machinery/photocopier, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"anU" = ( +/obj/structure/grille{ + density = 0; + icon_state = "brokengrille" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"anV" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"anW" = ( +/obj/structure/chair/stool, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"anX" = ( +/obj/item/weapon/coin/iron, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"anY" = ( +/obj/structure/chair/stool, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"anZ" = ( +/turf/open/floor/plasteel/blue/side, +/area/atmos{ + name = "Emergency Air Pumps" + }) +"aoa" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/blue/side, +/area/atmos{ + name = "Emergency Air Pumps" + }) +"aob" = ( +/obj/machinery/door/airlock/glass_engineering{ + name = "engineering door"; + req_access_txt = "10"; + req_one_access_txt = "0" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aoc" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/closed/wall, +/area/engine/engineering) +"aod" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/pump, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "\improper Northwest Hallway" + }) +"aoe" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/scrubber/huge/movable, +/obj/machinery/camera/autoname{ + icon_state = "camera"; + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "\improper Northwest Hallway" + }) +"aof" = ( +/turf/closed/wall, +/area/hallway/primary/port{ + name = "\improper Northwest Hallway" + }) +"aog" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Northwest Hallway APC"; + pixel_x = -24 + }, +/obj/structure/cable/cyan{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "\improper Northwest Hallway" + }) +"aoh" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "\improper Northwest Hallway" + }) +"aoi" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"aoj" = ( +/obj/effect/landmark/start{ + name = "AI" + }, +/obj/machinery/turretid{ + control_area = "AI Core"; + pixel_x = 24 + }, +/obj/item/device/radio/intercom{ + name = "AI Intercom"; + pixel_y = -29 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai{ + name = "\improper AI Core" + }) +"aok" = ( +/obj/machinery/door/airlock/command{ + name = "captain office door"; + req_access_txt = "20" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/wood, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"aol" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai{ + name = "\improper AI Core" + }) +"aom" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai{ + name = "\improper AI Core" + }) +"aon" = ( +/turf/closed/wall/r_wall, +/area/bridge) +"aoo" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance door"; + req_access_txt = "12" + }, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"aop" = ( +/obj/machinery/computer/arcade, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"aoq" = ( +/obj/structure/chair/stool, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"aor" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel, +/area/maintenance/fsmaint) +"aos" = ( +/turf/open/floor/plasteel, +/area/maintenance/fsmaint) +"aot" = ( +/turf/closed/wall/r_wall, +/area/atmos{ + name = "Emergency Air Pumps" + }) +"aou" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/closed/wall/r_wall, +/area/atmos{ + name = "Emergency Air Pumps" + }) +"aov" = ( +/obj/machinery/door/airlock/atmos{ + name = "atmospherics door"; + req_access_txt = "24" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/atmos{ + name = "Emergency Air Pumps" + }) +"aow" = ( +/turf/open/floor/plasteel/brownold{ + dir = 1 + }, +/area/hallway/primary/port{ + name = "\improper Northwest Hallway" + }) +"aox" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/camera/autoname{ + dir = 8 + }, +/turf/open/floor/plasteel/brownold{ + dir = 1 + }, +/area/hallway/primary/port{ + name = "\improper Northwest Hallway" + }) +"aoy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/closed/wall, +/area/hallway/primary/port{ + name = "\improper Northwest Hallway" + }) +"aoz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "\improper Northwest Hallway" + }) +"aoA" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/blue/side, +/area/hallway/primary/port{ + name = "\improper Northwest Hallway" + }) +"aoB" = ( +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/blue/side, +/area/hallway/primary/port{ + name = "\improper Northwest Hallway" + }) +"aoC" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"aoD" = ( +/obj/structure/table, +/obj/item/stack/rods{ + amount = 50 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/obj/item/weapon/rcd, +/obj/item/weapon/rcd, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"aoE" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal{ + amount = 50; + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/stack/sheet/metal{ + amount = 50; + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/stack/sheet/glass{ + amount = 50; + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stack/sheet/glass{ + amount = 50; + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stack/sheet/plasteel{ + amount = 10 + }, +/obj/item/stack/sheet/plasteel{ + amount = 10 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"aoF" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/turf/open/floor/plasteel/bot, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"aoG" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"aoH" = ( +/obj/structure/table, +/obj/item/clothing/shoes/magboots{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/clothing/shoes/magboots, +/obj/item/clothing/shoes/magboots{ + pixel_x = -5; + pixel_y = -5 + }, +/obj/machinery/power/apc{ + dir = 4; + name = "E.V.A. APC"; + pixel_x = 24 + }, +/obj/structure/cable/cyan{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"aoI" = ( +/turf/closed/wall, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"aoJ" = ( +/turf/open/floor/plasteel, +/area/bridge) +"aoK" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/yellowsiding/corner, +/area/bridge) +"aoL" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/camera/autoname, +/turf/open/floor/plasteel/yellowsiding, +/area/bridge) +"aoM" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/yellowsiding, +/area/bridge) +"aoN" = ( +/obj/machinery/keycard_auth{ + pixel_y = 24 + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/yellowsiding, +/area/bridge) +"aoO" = ( +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/yellowsiding, +/area/bridge) +"aoP" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel/yellowsiding, +/area/bridge) +"aoQ" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/yellowsiding/corner{ + dir = 8 + }, +/area/bridge) +"aoR" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aoS" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/maintenance/fsmaint) +"aoT" = ( +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"aoU" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"aoV" = ( +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"aoW" = ( +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"aoX" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plasteel, +/area/maintenance/fsmaint) +"aoY" = ( +/obj/machinery/atmospherics/components/binary/pump, +/turf/open/floor/plating, +/area/atmos{ + name = "Emergency Air Pumps" + }) +"aoZ" = ( +/turf/open/floor/plating, +/area/atmos{ + name = "Emergency Air Pumps" + }) +"apa" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel, +/area/atmos{ + name = "Emergency Air Pumps" + }) +"apb" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/atmos{ + name = "Emergency Air Pumps" + }) +"apc" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/atmos{ + name = "Emergency Air Pumps" + }) +"apd" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-16"; + layer = 4.1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/hallway/primary/port{ + name = "\improper Northwest Hallway" + }) +"ape" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "\improper Northwest Hallway" + }) +"apf" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "\improper Northwest Hallway" + }) +"apg" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "\improper Northwest Hallway" + }) +"aph" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "\improper Northwest Hallway" + }) +"api" = ( +/obj/machinery/door/airlock/glass{ + name = "glass door" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "\improper Northwest Hallway" + }) +"apj" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "\improper Northwest Hallway" + }) +"apk" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "\improper Northwest Hallway" + }) +"apl" = ( +/obj/machinery/door/airlock/command{ + name = "E.V.A. door"; + req_access_txt = "18" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"apm" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"apn" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"apo" = ( +/obj/machinery/door/airlock/command{ + name = "command door"; + req_access_txt = "19" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"app" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/bridge) +"apq" = ( +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/yellowsiding{ + dir = 4 + }, +/area/bridge) +"apr" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-05"; + layer = 4.1 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aps" = ( +/turf/open/floor/plasteel/black, +/area/bridge) +"apt" = ( +/obj/item/device/radio/beacon, +/turf/open/floor/plasteel/black, +/area/bridge) +"apu" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-05"; + layer = 4.1 + }, +/turf/open/floor/plasteel, +/area/bridge) +"apv" = ( +/turf/open/floor/plasteel/yellowsiding{ + dir = 8 + }, +/area/bridge) +"apw" = ( +/obj/machinery/computer/message_monitor, +/turf/open/floor/plasteel, +/area/bridge) +"apx" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall/r_wall, +/area/maintenance/fsmaint) +"apy" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"apz" = ( +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"apA" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"apB" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plating, +/area/atmos{ + name = "Emergency Air Pumps" + }) +"apC" = ( +/obj/item/weapon/wrench, +/turf/open/floor/plasteel, +/area/atmos{ + name = "Emergency Air Pumps" + }) +"apD" = ( +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/atmos{ + name = "Emergency Air Pumps" + }) +"apE" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/atmos{ + name = "Emergency Air Pumps" + }) +"apF" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "Emergency Air Pumps APC"; + pixel_x = 24 + }, +/obj/structure/cable/cyan{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel, +/area/atmos{ + name = "Emergency Air Pumps" + }) +"apG" = ( +/obj/machinery/disposal/bin, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/hallway/primary/port{ + name = "\improper Northwest Hallway" + }) +"apH" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "\improper Northwest Hallway" + }) +"apI" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "\improper Northwest Hallway" + }) +"apJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + icon_state = "vent_map"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "\improper Northwest Hallway" + }) +"apK" = ( +/obj/machinery/door/airlock/glass{ + name = "glass door" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "\improper Northwest Hallway" + }) +"apL" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "\improper Northwest Hallway" + }) +"apM" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "\improper Northwest Hallway" + }) +"apN" = ( +/obj/machinery/door/airlock/command{ + name = "E.V.A. door"; + req_access_txt = "18" + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"apO" = ( +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"apP" = ( +/obj/machinery/door/airlock/command{ + name = "command door"; + req_access_txt = "19" + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"apQ" = ( +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/yellowsiding/corner{ + dir = 4 + }, +/area/bridge) +"apR" = ( +/obj/machinery/computer/robotics, +/turf/open/floor/plasteel/black, +/area/bridge) +"apS" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/black, +/area/bridge) +"apT" = ( +/obj/structure/bed/dogbed{ + anchored = 1; + desc = "A comfy-looking bird bed. You can even strap your pet in, in case the gravity turns off."; + name = "bird bed" + }, +/mob/living/simple_animal/parrot/Poly, +/turf/open/floor/plasteel/black, +/area/bridge) +"apU" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/yellowsiding/corner{ + dir = 1 + }, +/area/bridge) +"apV" = ( +/obj/structure/table, +/obj/machinery/recharger, +/turf/open/floor/plasteel, +/area/bridge) +"apW" = ( +/obj/structure/table/wood, +/obj/item/clothing/suit/monkeysuit, +/obj/item/clothing/mask/gas/monkeymask, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"apX" = ( +/obj/structure/table/wood, +/obj/item/clothing/suit/suspenders, +/obj/item/clothing/under/syndicate/tacticool, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"apY" = ( +/obj/structure/table/wood, +/obj/item/clothing/head/rabbitears, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"apZ" = ( +/obj/structure/dresser, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"aqa" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"aqb" = ( +/obj/structure/chair/comfy/beige{ + dir = 1 + }, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"aqc" = ( +/obj/item/weapon/gun/projectile/shotgun/toy, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"aqd" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/maintenance{ + name = "maintenance door"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"aqe" = ( +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"aqf" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/meter, +/turf/open/floor/plating, +/area/atmos{ + name = "Emergency Air Pumps" + }) +"aqg" = ( +/turf/closed/wall, +/area/atmos{ + name = "Emergency Air Pumps" + }) +"aqh" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/atmos{ + name = "Emergency Air Pumps" + }) +"aqi" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + icon_state = "vent_map"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/atmos{ + name = "Emergency Air Pumps" + }) +"aqj" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/storage/primary{ + name = "Tool Storage" + }) +"aqk" = ( +/obj/machinery/door/airlock/glass{ + name = "glass door" + }, +/turf/open/floor/plasteel, +/area/storage/primary{ + name = "Tool Storage" + }) +"aql" = ( +/obj/machinery/door/airlock/glass{ + name = "glass door" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/storage/primary{ + name = "Tool Storage" + }) +"aqm" = ( +/turf/closed/wall, +/area/storage/primary{ + name = "Tool Storage" + }) +"aqn" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/blue/side{ + dir = 1 + }, +/area/hallway/primary/port{ + name = "\improper Northwest Hallway" + }) +"aqo" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/blue/side{ + dir = 1 + }, +/area/hallway/primary/port{ + name = "\improper Northwest Hallway" + }) +"aqp" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, +/obj/item/weapon/storage/belt/utility, +/obj/item/weapon/storage/belt/utility, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = 5; + pixel_y = 5 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"aqq" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/weapon/stock_parts/cell/high, +/obj/item/weapon/stock_parts/cell/high, +/obj/item/weapon/stock_parts/cell/high, +/obj/machinery/light, +/obj/item/device/gps, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"aqr" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/obj/machinery/camera/autoname{ + dir = 1; + network = list("SS13") + }, +/turf/open/floor/plasteel/bot, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"aqs" = ( +/obj/structure/tank_dispenser, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"aqt" = ( +/obj/structure/table, +/obj/item/weapon/tank/jetpack/carbondioxide{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/tank/jetpack/carbondioxide, +/obj/item/weapon/tank/jetpack/carbondioxide{ + pixel_x = -3; + pixel_y = -3 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"aqu" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aqv" = ( +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/bridge) +"aqw" = ( +/obj/machinery/computer/crew, +/turf/open/floor/plasteel/black, +/area/bridge) +"aqx" = ( +/obj/machinery/computer/communications, +/turf/open/floor/plasteel/black, +/area/bridge) +"aqy" = ( +/obj/machinery/computer/cargo, +/turf/open/floor/plasteel/black, +/area/bridge) +"aqz" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aqA" = ( +/obj/structure/table, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/item/weapon/paper/monitorkey{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/weapon/phone{ + force = 1 + }, +/obj/item/weapon/pen, +/turf/open/floor/plasteel, +/area/bridge) +"aqB" = ( +/obj/structure/closet/cardboard, +/obj/item/clothing/suit/toggle/owlwings, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"aqC" = ( +/obj/machinery/vending/autodrobe{ + req_access_txt = "" + }, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"aqD" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"aqE" = ( +/turf/closed/wall, +/area/quartermaster/storage) +"aqF" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/quartermaster/storage) +"aqG" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plating, +/area/atmos{ + name = "Emergency Air Pumps" + }) +"aqH" = ( +/obj/machinery/atmospherics/components/binary/valve{ + icon_state = "mvalve_map"; + dir = 4 + }, +/turf/open/floor/plating, +/area/atmos{ + name = "Emergency Air Pumps" + }) +"aqI" = ( +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 8 + }, +/turf/open/floor/engine, +/area/atmos{ + name = "Emergency Air Pumps" + }) +"aqJ" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/closet/secure_closet/atmospherics, +/turf/open/floor/plasteel, +/area/atmos{ + name = "Emergency Air Pumps" + }) +"aqK" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plasteel, +/area/atmos{ + name = "Emergency Air Pumps" + }) +"aqL" = ( +/obj/machinery/pipedispenser, +/turf/open/floor/plasteel, +/area/atmos{ + name = "Emergency Air Pumps" + }) +"aqM" = ( +/turf/open/floor/plasteel, +/area/storage/primary{ + name = "Tool Storage" + }) +"aqN" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/storage/primary{ + name = "Tool Storage" + }) +"aqO" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/yellow, +/turf/open/floor/plasteel, +/area/storage/primary{ + name = "Tool Storage" + }) +"aqP" = ( +/obj/structure/table, +/obj/item/stack/rods{ + amount = 50 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/turf/open/floor/plasteel, +/area/storage/primary{ + name = "Tool Storage" + }) +"aqQ" = ( +/obj/structure/closet/toolcloset, +/obj/item/weapon/storage/belt/utility, +/turf/open/floor/plasteel, +/area/storage/primary{ + name = "Tool Storage" + }) +"aqR" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "\improper Northwest Hallway" + }) +"aqS" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/heads) +"aqT" = ( +/turf/closed/wall, +/area/crew_quarters/heads) +"aqU" = ( +/obj/machinery/computer/mecha, +/turf/open/floor/plasteel/black, +/area/bridge) +"aqV" = ( +/obj/machinery/computer/security, +/turf/open/floor/plasteel/black, +/area/bridge) +"aqW" = ( +/obj/machinery/computer/secure_data, +/turf/open/floor/plasteel/black, +/area/bridge) +"aqX" = ( +/obj/item/device/aicard, +/obj/structure/table, +/obj/item/device/gps, +/turf/open/floor/plasteel, +/area/bridge) +"aqY" = ( +/obj/structure/closet{ + name = "jackboot locker" + }, +/obj/item/clothing/shoes/jackboots, +/obj/item/clothing/shoes/jackboots, +/obj/item/clothing/shoes/jackboots, +/obj/item/clothing/shoes/jackboots, +/obj/item/clothing/shoes/jackboots, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"aqZ" = ( +/obj/machinery/computer/slot_machine, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"ara" = ( +/turf/closed/wall/mineral/titanium/overspace, +/area/shuttle/supply) +"arb" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/supply) +"arc" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s10"; + dir = 2 + }, +/area/shuttle/supply) +"ard" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "cargo"; + name = "cargo conveyor belt" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"are" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "cargo"; + name = "cargo conveyor belt" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"arf" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/conveyor{ + dir = 4; + id = "cargo"; + name = "cargo conveyor belt" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"arg" = ( +/obj/machinery/camera/autoname, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"arh" = ( +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"ari" = ( +/obj/machinery/pipedispenser/disposal/transit_tube, +/turf/open/floor/plasteel, +/area/atmos{ + name = "Emergency Air Pumps" + }) +"arj" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal{ + amount = 50; + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/stack/sheet/metal{ + amount = 50; + pixel_x = 2; + pixel_y = 2 + }, +/turf/open/floor/plasteel, +/area/storage/primary{ + name = "Tool Storage" + }) +"ark" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/weapon/stock_parts/cell/high, +/turf/open/floor/plasteel, +/area/storage/primary{ + name = "Tool Storage" + }) +"arl" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel, +/area/storage/primary{ + name = "Tool Storage" + }) +"arm" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "\improper Northwest Hallway" + }) +"arn" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "hop shutter"; + name = "HoP Office shutter" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads) +"aro" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/box/silver_ids{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/weapon/storage/box/ids, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"arp" = ( +/obj/structure/filingcabinet/employment, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"arq" = ( +/obj/machinery/vending/cart, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"arr" = ( +/obj/machinery/photocopier, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"ars" = ( +/obj/structure/closet/secure_closet/hop, +/obj/item/clothing/suit/armor/reactive, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"art" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "HoP Office APC"; + pixel_x = 24 + }, +/obj/machinery/keycard_auth{ + pixel_y = 24 + }, +/obj/structure/cable/cyan{ + icon_state = "0-2" + }, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"aru" = ( +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/yellowsiding/corner, +/area/bridge) +"arv" = ( +/obj/machinery/computer/monitor, +/obj/structure/cable/cyan{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"arw" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"arx" = ( +/obj/machinery/computer/aifixer, +/turf/open/floor/plasteel/black, +/area/bridge) +"ary" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/yellowsiding/corner{ + dir = 8 + }, +/area/bridge) +"arz" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel, +/area/bridge) +"arA" = ( +/turf/open/floor/carpet, +/area/maintenance/fsmaint) +"arB" = ( +/obj/item/clothing/under/rank/clown, +/obj/item/clothing/mask/gas/clown_hat, +/turf/open/floor/carpet, +/area/maintenance/fsmaint) +"arC" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"arD" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"arE" = ( +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"arF" = ( +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"arG" = ( +/obj/structure/chair/stool, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"arH" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall3"; + dir = 2 + }, +/area/shuttle/supply) +"arI" = ( +/obj/machinery/conveyor{ + dir = 2; + id = "cargoshuttle"; + name = "cargo shuttle conveyor belt" + }, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/supply) +"arJ" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "cargoshuttle"; + name = "cargo shuttle conveyor belt" + }, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/supply) +"arK" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "cargo"; + name = "cargo conveyor belt" + }, +/obj/machinery/status_display{ + name = "cargo status display"; + pixel_x = -32; + supply_display = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"arL" = ( +/obj/structure/closet/crate, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"arM" = ( +/obj/structure/closet/crate/medical, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"arN" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, +/obj/structure/closet/secure_closet/engineering_welding, +/turf/open/floor/plasteel, +/area/atmos{ + name = "Emergency Air Pumps" + }) +"arO" = ( +/obj/structure/table, +/obj/item/weapon/pipe_dispenser, +/obj/item/weapon/pipe_dispenser, +/turf/open/floor/plasteel, +/area/atmos{ + name = "Emergency Air Pumps" + }) +"arP" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass{ + amount = 50; + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stack/sheet/glass{ + amount = 50; + pixel_x = 3; + pixel_y = 3 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/storage/primary{ + name = "Tool Storage" + }) +"arQ" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "Tool Storage APC"; + pixel_x = 24 + }, +/obj/structure/cable/cyan{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel, +/area/storage/primary{ + name = "Tool Storage" + }) +"arR" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "\improper Northwest Hallway" + }) +"arS" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "\improper Northwest Hallway" + }) +"arT" = ( +/obj/machinery/door/airlock/command{ + name = "HoP office door"; + req_access_txt = "0"; + req_one_access_txt = "19;57" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/wood, +/area/crew_quarters/heads) +"arU" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads) +"arV" = ( +/obj/effect/landmark/start{ + name = "Head of Personnel" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads) +"arW" = ( +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads) +"arX" = ( +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/yellowsiding{ + dir = 4 + }, +/area/bridge) +"arY" = ( +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 0 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-05"; + layer = 4.1 + }, +/turf/open/floor/plasteel, +/area/bridge) +"arZ" = ( +/obj/machinery/power/smes{ + charge = 3e+006; + input_level = 10000; + output_level = 2000 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai{ + name = "\improper AI Core" + }) +"asa" = ( +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 0 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-05"; + layer = 4.1 + }, +/turf/open/floor/plasteel, +/area/bridge) +"asb" = ( +/obj/machinery/vending/snack, +/turf/open/floor/plasteel, +/area/bridge) +"asc" = ( +/obj/item/clothing/shoes/clown_shoes/banana_shoes, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/maintenance/fsmaint) +"asd" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken6" + }, +/area/maintenance/fsmaint) +"ase" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"asf" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + icon_state = "vent_map"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"asg" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"ash" = ( +/turf/closed/wall/rust, +/area/crew_quarters/sleep) +"asi" = ( +/turf/closed/wall, +/area/crew_quarters/sleep) +"asj" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance door"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/crew_quarters/sleep) +"ask" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"asl" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/carpet, +/area/maintenance/fsmaint) +"asm" = ( +/obj/machinery/mineral/mint{ + input_dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/fsmaint) +"asn" = ( +/turf/open/floor/plasteel/loadingarea{ + tag = "icon-loadingarea (WEST)"; + dir = 8 + }, +/area/maintenance/fsmaint) +"aso" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "cargoshuttle"; + name = "cargo shuttle conveyor belt" + }, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/supply) +"asp" = ( +/obj/machinery/conveyor{ + dir = 9; + id = "cargoshuttle"; + name = "cargo shuttle conveyor belt" + }, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/supply) +"asq" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "cargoshuttle"; + name = "cargo shuttle conveyor belt" + }, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/supply) +"asr" = ( +/obj/effect/landmark{ + name = "lightsout" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"ass" = ( +/obj/machinery/atmospherics/components/binary/pump, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plating, +/area/atmos{ + name = "Emergency Air Pumps" + }) +"ast" = ( +/mob/living/carbon/monkey{ + name = "Linda"; + unique_name = 0 + }, +/turf/open/floor/plating, +/area/atmos{ + name = "Emergency Air Pumps" + }) +"asu" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical, +/turf/open/floor/plasteel, +/area/atmos{ + name = "Emergency Air Pumps" + }) +"asv" = ( +/obj/machinery/autolathe{ + icon_state = "autolathe"; + name = "public autolathe" + }, +/turf/open/floor/plasteel, +/area/storage/primary{ + name = "Tool Storage" + }) +"asw" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/storage/primary{ + name = "Tool Storage" + }) +"asx" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/storage/primary{ + name = "Tool Storage" + }) +"asy" = ( +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/storage/primary{ + name = "Tool Storage" + }) +"asz" = ( +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/storage/primary{ + name = "Tool Storage" + }) +"asA" = ( +/obj/machinery/camera/autoname{ + icon_state = "camera"; + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "\improper Northwest Hallway" + }) +"asB" = ( +/obj/structure/chair/office/light, +/obj/machinery/camera/autoname{ + icon_state = "camera"; + dir = 4 + }, +/obj/machinery/button/door{ + id = "hop shutter"; + name = "HoP office shutter button"; + pixel_x = -24 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads) +"asC" = ( +/obj/machinery/computer/card, +/turf/open/floor/carpet, +/area/crew_quarters/heads) +"asD" = ( +/obj/structure/chair/comfy/beige{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads) +"asE" = ( +/obj/structure/table/wood, +/obj/item/weapon/clipboard, +/obj/item/weapon/hand_labeler, +/obj/item/weapon/pen, +/turf/open/floor/carpet, +/area/crew_quarters/heads) +"asF" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + dir = 1; + name = "AI Core APC"; + pixel_y = 24 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai{ + name = "\improper AI Core" + }) +"asG" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-17"; + layer = 4.1 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads) +"asH" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Bridge APC"; + pixel_x = -24 + }, +/obj/structure/cable/cyan{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel, +/area/bridge) +"asI" = ( +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/yellowsiding/corner{ + dir = 4 + }, +/area/bridge) +"asJ" = ( +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/yellowsiding{ + dir = 1 + }, +/area/bridge) +"asK" = ( +/turf/open/floor/plasteel/yellowsiding{ + dir = 1 + }, +/area/bridge) +"asL" = ( +/obj/machinery/keycard_auth{ + pixel_y = -24 + }, +/turf/open/floor/plasteel/yellowsiding{ + dir = 1 + }, +/area/bridge) +"asM" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/yellowsiding{ + dir = 1 + }, +/area/bridge) +"asN" = ( +/obj/machinery/camera/autoname{ + icon_state = "camera"; + dir = 10 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/yellowsiding{ + dir = 1 + }, +/area/bridge) +"asO" = ( +/turf/open/floor/plasteel/yellowsiding/corner{ + dir = 1 + }, +/area/bridge) +"asP" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel, +/area/bridge) +"asQ" = ( +/obj/item/weapon/storage/box/lights/mixed, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"asR" = ( +/obj/structure/toilet{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/crew_quarters/sleep) +"asS" = ( +/obj/machinery/door/airlock{ + name = "door" + }, +/turf/open/floor/plating, +/area/crew_quarters/sleep) +"asT" = ( +/turf/open/floor/plating, +/area/crew_quarters/sleep) +"asU" = ( +/obj/machinery/shower{ + icon_state = "shower"; + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/crew_quarters/sleep) +"asV" = ( +/obj/machinery/shower{ + icon_state = "shower"; + dir = 8 + }, +/obj/item/weapon/bikehorn/rubberducky, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"asW" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"asX" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance door"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"asY" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"asZ" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"ata" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + icon_state = "vent_map"; + dir = 8 + }, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"atb" = ( +/obj/structure/table/wood, +/obj/item/device/electropack, +/obj/item/weapon/restraints/handcuffs, +/turf/open/floor/carpet, +/area/maintenance/fsmaint) +"atc" = ( +/obj/structure/chair/wood/normal{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/maintenance/fsmaint) +"atd" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plating/asteroid{ + name = "dirt" + }, +/area/maintenance/fsmaint) +"ate" = ( +/turf/open/floor/plating/asteroid{ + name = "dirt" + }, +/area/maintenance/fsmaint) +"atf" = ( +/obj/machinery/conveyor{ + dir = 10; + id = "cargoshuttle"; + name = "cargo shuttle conveyor belt" + }, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/supply) +"atg" = ( +/obj/machinery/conveyor{ + dir = 6; + id = "cargoshuttle"; + name = "cargo shuttle conveyor belt" + }, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/supply) +"ath" = ( +/obj/machinery/door/poddoor{ + id = "QMLoaddoor2"; + name = "supply dock loading door" + }, +/obj/machinery/conveyor{ + dir = 8; + id = "cargoshuttle"; + name = "cargo shuttle conveyor belt" + }, +/turf/open/floor/plating, +/area/shuttle/supply) +"ati" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "cargo"; + name = "cargo conveyor belt" + }, +/obj/machinery/door/poddoor{ + id = "cargo blast"; + name = "cargo conveyor blast door" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"atj" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plating, +/area/atmos{ + name = "Emergency Air Pumps" + }) +"atk" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plating, +/area/atmos{ + name = "Emergency Air Pumps" + }) +"atl" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos{ + name = "Emergency Air Pumps" + }) +"atm" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + icon_state = "manifold"; + dir = 4 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/atmos{ + name = "Emergency Air Pumps" + }) +"atn" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-02"; + layer = 4.1 + }, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plasteel, +/area/atmos{ + name = "Emergency Air Pumps" + }) +"ato" = ( +/obj/machinery/vending/assist, +/obj/machinery/camera/autoname{ + icon_state = "camera"; + dir = 5 + }, +/turf/open/floor/plasteel, +/area/storage/primary{ + name = "Tool Storage" + }) +"atp" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + icon_state = "vent_map"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "\improper Northwest Hallway" + }) +"atq" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "\improper Northwest Hallway" + }) +"atr" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "hop shutter"; + name = "HoP Office shutter" + }, +/obj/machinery/door/window/southright, +/obj/machinery/door/window/northright{ + name = "HoP desk door"; + req_one_access_txt = "19;57" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads) +"ats" = ( +/obj/machinery/power/terminal{ + icon_state = "term"; + dir = 1 + }, +/obj/structure/cable/cyan{ + icon_state = "0-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai{ + name = "\improper AI Core" + }) +"att" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai{ + name = "\improper AI Core" + }) +"atu" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/sleep) +"atv" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall/r_wall, +/area/crew_quarters/sleep) +"atw" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance door"; + req_access_txt = "12" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/crew_quarters/sleep) +"atx" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/crew_quarters/sleep) +"aty" = ( +/obj/machinery/shower{ + icon_state = "shower"; + dir = 4 + }, +/obj/item/weapon/soap, +/turf/open/floor/plating, +/area/crew_quarters/sleep) +"atz" = ( +/obj/machinery/shower{ + icon_state = "shower"; + dir = 8 + }, +/turf/open/floor/plating, +/area/crew_quarters/sleep) +"atA" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + icon_state = "vent_map"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"atB" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"atC" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"atD" = ( +/obj/structure/table/wood, +/obj/item/weapon/relic, +/turf/open/floor/carpet, +/area/maintenance/fsmaint) +"atE" = ( +/obj/structure/table/wood, +/obj/machinery/computer/stockexchange, +/turf/open/floor/carpet, +/area/maintenance/fsmaint) +"atF" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/loadingarea, +/area/maintenance/fsmaint) +"atG" = ( +/turf/open/floor/plasteel/shuttle, +/area/shuttle/supply) +"atH" = ( +/turf/open/floor/plasteel/shuttle/white, +/area/shuttle/supply) +"atI" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Supply Shuttle Airlock"; + req_access_txt = "31" + }, +/turf/open/floor/plating, +/area/shuttle/supply) +"atJ" = ( +/obj/machinery/door/airlock/external{ + name = "cargo bay airlock"; + req_access_txt = "31" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"atK" = ( +/turf/open/floor/plating, +/area/quartermaster/storage) +"atL" = ( +/turf/open/floor/plasteel/yellow/corner, +/area/quartermaster/storage) +"atM" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side, +/area/quartermaster/storage) +"atN" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/closed/wall/r_wall, +/area/atmos{ + name = "Emergency Air Pumps" + }) +"atO" = ( +/obj/machinery/vending/tool, +/turf/open/floor/plasteel, +/area/storage/primary{ + name = "Tool Storage" + }) +"atP" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/weapon/storage/toolbox/mechanical, +/turf/open/floor/plasteel, +/area/storage/primary{ + name = "Tool Storage" + }) +"atQ" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/electrical, +/turf/open/floor/plasteel, +/area/storage/primary{ + name = "Tool Storage" + }) +"atR" = ( +/obj/structure/table, +/obj/item/weapon/storage/belt/utility, +/turf/open/floor/plasteel, +/area/storage/primary{ + name = "Tool Storage" + }) +"atS" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/primary/central) +"atT" = ( +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"atU" = ( +/obj/machinery/camera/autoname{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"atV" = ( +/turf/closed/wall/r_wall, +/area/hallway/primary/central) +"atW" = ( +/obj/structure/flora/ausbushes/palebush, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating/asteroid{ + name = "dirt" + }, +/area/hallway/primary/central) +"atX" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/stairs/left, +/area/hallway/primary/central) +"atY" = ( +/turf/open/floor/plasteel/stairs/right, +/area/hallway/primary/central) +"atZ" = ( +/obj/structure/flora/ausbushes/sunnybush, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating/asteroid{ + name = "dirt" + }, +/area/hallway/primary/central) +"aua" = ( +/obj/machinery/vending/clothing, +/turf/open/floor/plasteel/black, +/area/crew_quarters/sleep) +"aub" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"auc" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/closet/wardrobe/grey, +/obj/item/weapon/storage/backpack/satchel, +/obj/item/weapon/storage/backpack/satchel, +/obj/item/weapon/storage/backpack/satchel, +/obj/item/weapon/storage/backpack/dufflebag, +/obj/item/weapon/storage/backpack/dufflebag, +/obj/item/weapon/storage/backpack/dufflebag, +/obj/item/clothing/under/assistantformal, +/obj/item/clothing/under/assistantformal, +/obj/item/clothing/head/bowler, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"aud" = ( +/obj/structure/closet/lasertag/blue, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"aue" = ( +/obj/structure/closet/lasertag/red, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"auf" = ( +/obj/structure/closet/wardrobe/mixed, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"aug" = ( +/obj/structure/closet/wardrobe/black, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"auh" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"aui" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"auj" = ( +/obj/machinery/recharge_station, +/turf/open/floor/plating, +/area/crew_quarters/sleep) +"auk" = ( +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"aul" = ( +/obj/machinery/door/airlock{ + name = "door" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"aum" = ( +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"aun" = ( +/obj/machinery/navbeacon{ + codes = ""; + codes_txt = "delivery;dir=1"; + freq = 1400; + location = "Dorm Maint"; + name = "navigation beacon" + }, +/turf/open/floor/carpet, +/area/maintenance/fsmaint) +"auo" = ( +/obj/structure/flora/ausbushes/pointybush{ + icon_state = "pointybush_2"; + layer = 4.1; + name = "tree"; + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plating/asteroid{ + name = "dirt" + }, +/area/maintenance/fsmaint) +"aup" = ( +/obj/machinery/button/door{ + dir = 2; + id = "QMLoaddoor2"; + name = "Loading Doors"; + pixel_x = 24; + pixel_y = 8 + }, +/obj/machinery/button/door{ + id = "QMLoaddoor"; + name = "Loading Doors"; + pixel_x = 24; + pixel_y = -8 + }, +/obj/machinery/conveyor_switch/oneway{ + id = "cargoshuttle" + }, +/turf/open/floor/plasteel/shuttle/white, +/area/shuttle/supply) +"auq" = ( +/obj/machinery/button/door{ + id = "cargo blast"; + name = "cargo blast door button"; + pixel_x = -24; + pixel_y = 0 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/computer/cargo, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"aur" = ( +/obj/machinery/conveyor_switch/oneway{ + convdir = -1; + id = "cargo"; + name = "shuttle conveyor switch" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"aus" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"aut" = ( +/obj/effect/landmark/start{ + name = "Cargo Technician" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/quartermaster/storage) +"auu" = ( +/obj/machinery/navbeacon{ + codes = ""; + codes_txt = "delivery;dir=4"; + freq = 1400; + location = "Cargo #1"; + name = "navigation beacon" + }, +/mob/living/simple_animal/bot/mulebot{ + beacon_freq = 1400; + home_destination = "Cargo #1"; + suffix = "#1" + }, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/storage) +"auv" = ( +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"auw" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"aux" = ( +/obj/structure/table, +/obj/item/weapon/clipboard, +/obj/item/weapon/folder/yellow, +/obj/item/weapon/hand_labeler, +/obj/machinery/status_display{ + name = "cargo status display"; + pixel_x = 0; + pixel_y = 32; + supply_display = 1 + }, +/obj/item/weapon/paper_bin{ + pixel_y = 5 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"auy" = ( +/obj/machinery/autolathe, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"auz" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/device/multitool, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"auA" = ( +/turf/open/floor/plasteel/loadingarea, +/area/hallway/primary/central) +"auB" = ( +/turf/open/floor/plasteel/loadingarea{ + dir = 1 + }, +/area/hallway/primary/central) +"auC" = ( +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plasteel/neutral, +/area/maintenance/fsmaint) +"auD" = ( +/obj/machinery/ai_slipper{ + icon_state = "motion0"; + uses = 10 + }, +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/obj/machinery/holopad, +/mob/living/simple_animal/bot/ed209{ + name = "Officer Pingsky II"; + radio_channel = "AI Private" + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/aisat_interior{ + name = "\improper AI Core Lobby" + }) +"auE" = ( +/obj/machinery/vending/autodrobe{ + req_access_txt = "" + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/sleep) +"auF" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"auG" = ( +/obj/structure/disposalpipe/junction{ + dir = 8; + icon_state = "pipe-j1" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"auH" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"auI" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera/autoname, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"auJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"auK" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"auL" = ( +/obj/item/device/assembly/mousetrap/armed{ + icon_state = "mousetraparmed"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"auM" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-06"; + level = 4.1 + }, +/obj/structure/mirror{ + pixel_y = 28 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"auN" = ( +/obj/structure/sink/kitchen{ + desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; + name = "old sink"; + pixel_y = 28 + }, +/turf/open/floor/plating, +/area/crew_quarters/sleep) +"auO" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"auP" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"auQ" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"auR" = ( +/obj/structure/cable/cyan{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Dormitory Maintenance APC"; + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"auS" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"auT" = ( +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"auU" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Supply Shuttle Airlock"; + req_access_txt = "31" + }, +/obj/docking_port/mobile/supply{ + dwidth = 3; + width = 10 + }, +/obj/docking_port/stationary{ + dir = 8; + dwidth = 3; + height = 7; + id = "supply_home"; + name = "Cargo Bay"; + width = 10 + }, +/turf/open/floor/plating, +/area/shuttle/supply) +"auV" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"auW" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/quartermaster/storage) +"auX" = ( +/obj/machinery/navbeacon{ + codes = ""; + codes_txt = "delivery;dir=4"; + freq = 1400; + location = "Cargo #2"; + name = "navigation beacon" + }, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/storage) +"auY" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"auZ" = ( +/obj/structure/table, +/obj/item/weapon/cartridge/quartermaster, +/obj/item/weapon/cartridge/quartermaster, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"ava" = ( +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"avb" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"avc" = ( +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"avd" = ( +/obj/machinery/power/smes{ + charge = 5e+006; + input_level = 10000; + output_level = 4000 + }, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/turf/open/floor/plasteel/black, +/area/engine/gravity_generator) +"ave" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"avf" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + icon_state = "vent_map" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"avg" = ( +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"avh" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "hallway shutter"; + name = "hallway shutter" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"avi" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/blue/side{ + dir = 1 + }, +/area/hallway/primary/central) +"avj" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/blue/side{ + dir = 1 + }, +/area/hallway/primary/central) +"avk" = ( +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"avl" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"avm" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-02"; + layer = 4.1 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/sleep) +"avn" = ( +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"avo" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"avp" = ( +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"avq" = ( +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"avr" = ( +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"avs" = ( +/obj/structure/table, +/obj/item/weapon/cultivator, +/obj/item/weapon/storage/bag/plants, +/obj/item/weapon/hatchet, +/obj/item/weapon/reagent_containers/glass/bucket, +/obj/item/weapon/reagent_containers/glass/bucket, +/turf/open/floor/plasteel/white, +/area/crew_quarters/sleep) +"avt" = ( +/obj/machinery/seed_extractor, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/sleep) +"avu" = ( +/obj/machinery/light/small, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"avv" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"avw" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"avx" = ( +/turf/open/floor/plasteel/neutral, +/area/maintenance/fsmaint) +"avy" = ( +/turf/closed/mineral, +/area/maintenance/fsmaint) +"avz" = ( +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plating/asteroid{ + name = "dirt" + }, +/area/maintenance/fsmaint) +"avA" = ( +/obj/machinery/door/poddoor{ + id = "QMLoaddoor"; + name = "supply dock loading door" + }, +/obj/machinery/conveyor{ + dir = 4; + id = "cargoshuttle"; + name = "cargo shuttle conveyor belt" + }, +/turf/open/floor/plating, +/area/shuttle/supply) +"avB" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "cargo"; + name = "cargo conveyor belt" + }, +/obj/machinery/door/poddoor{ + id = "cargo blast"; + name = "cargo conveyor blast door" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"avC" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "cargo"; + name = "cargo conveyor belt" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"avD" = ( +/obj/effect/landmark/start{ + name = "Cargo Technician" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"avE" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + icon_state = "vent_map"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"avF" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"avG" = ( +/obj/machinery/mineral/ore_redemption{ + input_dir = 8; + output_dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"avH" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/bot, +/area/hallway/primary/central) +"avI" = ( +/obj/structure/cable/cyan{ + icon_state = "0-2" + }, +/obj/machinery/power/terminal{ + tag = "icon-term (EAST)"; + icon_state = "term"; + dir = 4 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-02"; + layer = 4.1 + }, +/turf/open/floor/plasteel/black, +/area/engine/gravity_generator) +"avJ" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"avK" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"avL" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"avM" = ( +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-y"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"avN" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"avO" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"avP" = ( +/obj/machinery/light, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"avQ" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "hallway shutter"; + name = "hallway shutter" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"avR" = ( +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-j1"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"avS" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera/autoname{ + dir = 1; + network = list("SS13") + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"avT" = ( +/obj/structure/table, +/obj/item/weapon/paper/gravity_gen, +/turf/open/floor/plasteel/black, +/area/engine/gravity_generator) +"avU" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"avV" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/sleep) +"avW" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"avX" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"avY" = ( +/obj/structure/sink{ + dir = 8; + icon_state = "sink"; + pixel_x = -12 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/sleep) +"avZ" = ( +/obj/machinery/hydroponics/soil, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/sleep) +"awa" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/sleep) +"awb" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"awc" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"awd" = ( +/turf/open/floor/plasteel/white, +/area/crew_quarters/sleep) +"awe" = ( +/obj/machinery/biogenerator, +/turf/open/floor/plasteel/white, +/area/crew_quarters/sleep) +"awf" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/blood/empty, +/obj/item/weapon/reagent_containers/syringe, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"awg" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/vending/snack, +/turf/open/floor/plasteel/neutral, +/area/maintenance/fsmaint) +"awh" = ( +/turf/open/space, +/turf/closed/wall/shuttle{ + icon_state = "swall_f6"; + dir = 2 + }, +/area/shuttle/mining) +"awi" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/mining) +"awj" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/mining) +"awk" = ( +/turf/open/space, +/turf/closed/wall/shuttle{ + dir = 2; + icon_state = "swall_f10"; + layer = 2 + }, +/area/shuttle/mining) +"awl" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/supply) +"awm" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall14"; + dir = 2 + }, +/area/shuttle/supply) +"awn" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/shuttle/engine/heater, +/turf/open/floor/plating/airless, +/area/shuttle/supply) +"awo" = ( +/turf/closed/wall/shuttle{ + icon_state = "swallc4"; + dir = 2 + }, +/area/shuttle/supply) +"awp" = ( +/turf/open/floor/plasteel/yellow/corner{ + dir = 4 + }, +/area/quartermaster/storage) +"awq" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/quartermaster/storage) +"awr" = ( +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 5 + }, +/area/quartermaster/storage) +"aws" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"awt" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"awu" = ( +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"awv" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aww" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"awx" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/hallway/primary/central) +"awy" = ( +/obj/machinery/door/airlock/glass{ + name = "glass door" + }, +/turf/open/floor/carpet, +/area/library) +"awz" = ( +/obj/machinery/door/airlock/glass{ + name = "glass door" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet, +/area/library) +"awA" = ( +/turf/closed/wall, +/area/hallway/primary/central) +"awB" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/hallway/primary/central) +"awC" = ( +/obj/machinery/vending/snack, +/turf/open/floor/plasteel/black, +/area/hallway/primary/central) +"awD" = ( +/obj/machinery/vending/cola, +/turf/open/floor/plasteel/black, +/area/hallway/primary/central) +"awE" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"awF" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=6-DormsN"; + location = "5-CNE"; + name = "bot patrol navigation beacon" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"awG" = ( +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"awH" = ( +/obj/machinery/camera/autoname{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"awI" = ( +/obj/machinery/vending/hydronutrients, +/turf/open/floor/plasteel/white, +/area/crew_quarters/sleep) +"awJ" = ( +/obj/machinery/hydroponics/soil, +/turf/open/floor/plasteel/white, +/area/crew_quarters/sleep) +"awK" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"awL" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"awM" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + icon_state = "vent_map"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"awN" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-06"; + level = 4.1 + }, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"awO" = ( +/obj/structure/table/wood, +/obj/item/weapon/pen, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"awP" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/pill_bottle/dice{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/weapon/storage/pill_bottle/dice, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"awQ" = ( +/obj/structure/table/wood, +/obj/item/toy/cards/deck, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"awR" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall3"; + dir = 2 + }, +/area/shuttle/mining) +"awS" = ( +/obj/structure/table, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/mining) +"awT" = ( +/obj/machinery/computer/shuttle/mining, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/mining) +"awU" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "burst_l" + }, +/turf/open/floor/plating/airless, +/area/shuttle/supply) +"awV" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/open/floor/plating/airless, +/area/shuttle/supply) +"awW" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "burst_r" + }, +/turf/open/floor/plating/airless, +/area/shuttle/supply) +"awX" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Cargo Bay APC"; + pixel_x = -24 + }, +/obj/structure/cable/cyan{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"awY" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"awZ" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"axa" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 4; + name = "4maintenance loot spawner" + }, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"axb" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/quartermaster/storage) +"axc" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin{ + pixel_y = 5 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"axd" = ( +/obj/structure/table, +/obj/item/weapon/stamp/denied{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/weapon/stamp, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"axe" = ( +/obj/structure/chair/office/light, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"axf" = ( +/obj/machinery/computer/cargo, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"axg" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/camera/autoname{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"axh" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"axi" = ( +/obj/machinery/libraryscanner, +/turf/open/floor/wood, +/area/library) +"axj" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/wood, +/area/library) +"axk" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin, +/turf/open/floor/wood, +/area/library) +"axl" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/wood, +/area/library) +"axm" = ( +/turf/open/floor/carpet, +/area/library) +"axn" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet, +/area/library) +"axo" = ( +/obj/machinery/camera/autoname{ + icon_state = "camera"; + dir = 5 + }, +/turf/open/floor/plasteel/black, +/area/engine/gravity_generator) +"axp" = ( +/obj/machinery/photocopier, +/turf/open/floor/wood, +/area/library) +"axq" = ( +/obj/structure/chair/comfy/beige, +/turf/open/floor/wood, +/area/library) +"axr" = ( +/turf/closed/wall, +/area/library) +"axs" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-06"; + level = 4.1 + }, +/turf/open/floor/wood, +/area/library) +"axt" = ( +/obj/structure/chair/wood/normal, +/turf/open/floor/wood, +/area/library) +"axu" = ( +/turf/closed/wall, +/area/crew_quarters/theatre) +"axv" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-j2"; + dir = 2 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"axw" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"axx" = ( +/obj/machinery/light, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"axy" = ( +/obj/machinery/vending/hydroseeds{ + slogan_delay = 700 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/sleep) +"axz" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/white, +/area/crew_quarters/sleep) +"axA" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"axB" = ( +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"axC" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=7-DormsS"; + location = "6-DormsN"; + name = "bot patrol navigation beacon" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"axD" = ( +/obj/machinery/camera/autoname{ + icon_state = "camera"; + dir = 9 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"axE" = ( +/obj/structure/table/wood, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"axF" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"axG" = ( +/obj/structure/flora/ausbushes/pointybush{ + icon_state = "pointybush_3"; + layer = 4.1; + name = "tree"; + pixel_x = -4; + pixel_y = 10 + }, +/turf/open/floor/plating/asteroid{ + name = "dirt" + }, +/area/maintenance/fsmaint) +"axH" = ( +/turf/open/floor/plasteel/shuttle, +/area/shuttle/mining) +"axI" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/mining) +"axJ" = ( +/turf/closed/wall, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"axK" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"axL" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/obj/machinery/status_display{ + name = "cargo status display"; + pixel_x = -32; + supply_display = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"axM" = ( +/obj/structure/closet/crate/freezer, +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"axN" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 4; + name = "4maintenance loot spawner" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"axO" = ( +/obj/structure/closet/crate/medical, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"axP" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"axQ" = ( +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/obj/machinery/status_display{ + name = "cargo status display"; + pixel_x = 0; + pixel_y = -32; + supply_display = 1 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/quartermaster/storage) +"axR" = ( +/obj/structure/closet/wardrobe/cargotech, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"axS" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/southright{ + name = "cargo door"; + req_access_txt = "31" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"axT" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/quartermaster/storage) +"axU" = ( +/obj/machinery/door/airlock/glass_mining{ + name = "cargo bay door"; + req_access_txt = "31" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"axV" = ( +/obj/structure/chair/wood/normal{ + icon_state = "wooden_chair"; + dir = 4 + }, +/turf/open/floor/wood, +/area/library) +"axW" = ( +/obj/structure/table/wood, +/obj/machinery/computer/libraryconsole/bookmanagement, +/turf/open/floor/wood, +/area/library) +"axX" = ( +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/library) +"axY" = ( +/turf/open/floor/wood, +/area/library) +"axZ" = ( +/obj/machinery/door/airlock{ + name = "door" + }, +/turf/open/floor/wood, +/area/library) +"aya" = ( +/obj/structure/table/wood, +/obj/item/clothing/mask/gas/clown_hat, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"ayb" = ( +/obj/structure/table/wood, +/obj/item/weapon/lipstick/random, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"ayc" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Theatre APC"; + pixel_y = 24 + }, +/obj/structure/cable/cyan{ + icon_state = "0-4" + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"ayd" = ( +/obj/machinery/door/airlock/maintenance{ + name = "theater door"; + req_access_txt = "46" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"aye" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"ayf" = ( +/turf/closed/wall, +/area/maintenance/disposal) +"ayg" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"ayh" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"ayi" = ( +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"ayj" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Mining Shuttle Airlock"; + req_access_txt = "0" + }, +/obj/docking_port/mobile{ + dir = 8; + dwidth = 3; + height = 5; + id = "mining"; + name = "mining shuttle"; + port_angle = 270; + width = 7 + }, +/obj/docking_port/stationary{ + dir = 8; + dwidth = 3; + height = 5; + id = "mining_home"; + name = "mining shuttle bay"; + width = 7 + }, +/turf/open/floor/plating, +/area/shuttle/mining) +"ayk" = ( +/obj/machinery/door/airlock/external{ + name = "cargo bay airlock"; + req_access_txt = "31" + }, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"ayl" = ( +/obj/machinery/camera/autoname, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"aym" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"ayn" = ( +/obj/machinery/door/airlock/external{ + name = "cargo bay airlock"; + req_access_txt = "31" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"ayo" = ( +/turf/open/floor/plasteel, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"ayp" = ( +/obj/effect/landmark/start{ + name = "Shaft Miner" + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Mining Office APC"; + pixel_y = 24 + }, +/obj/structure/cable/cyan{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"ayq" = ( +/obj/effect/landmark/start{ + name = "Shaft Miner" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/camera/autoname, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"ayr" = ( +/obj/effect/landmark/start{ + name = "Shaft Miner" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"ays" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"ayt" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"ayu" = ( +/obj/machinery/door/airlock/glass_mining{ + name = "cargo bay door"; + req_access_txt = "31" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"ayv" = ( +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"ayw" = ( +/obj/machinery/status_display{ + name = "cargo status display"; + pixel_x = -32; + supply_display = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"ayx" = ( +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"ayy" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/quartermaster/storage) +"ayz" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"ayA" = ( +/obj/effect/landmark/start{ + name = "Librarian" + }, +/turf/open/floor/carpet, +/area/library) +"ayB" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/black, +/area/engine/gravity_generator) +"ayC" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black, +/area/engine/gravity_generator) +"ayD" = ( +/obj/effect/landmark{ + name = "lightsout" + }, +/turf/open/floor/wood, +/area/library) +"ayE" = ( +/obj/structure/table/wood, +/obj/item/weapon/book/codex_gigas, +/obj/item/weapon/storage/pill_bottle/dice, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/wood, +/area/library) +"ayF" = ( +/obj/effect/landmark/start{ + name = "Clown" + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"ayG" = ( +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"ayH" = ( +/obj/machinery/camera/autoname{ + dir = 8 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"ayI" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"ayJ" = ( +/obj/structure/closet/l3closet/janitor, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"ayK" = ( +/obj/structure/closet/jcloset, +/obj/item/weapon/restraints/legcuffs/beartrap, +/obj/item/weapon/restraints/legcuffs/beartrap, +/obj/item/clothing/under/janimaid, +/obj/item/weapon/reagent_containers/spray/cleaner, +/obj/item/weapon/mop/advanced, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"ayL" = ( +/obj/structure/janitorialcart, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"ayM" = ( +/obj/structure/mopbucket, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"ayN" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/mousetraps, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"ayO" = ( +/obj/structure/table, +/obj/item/weapon/mop, +/obj/item/weapon/reagent_containers/glass/bucket, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"ayP" = ( +/obj/structure/table, +/obj/item/weapon/grenade/chem_grenade/cleaner, +/obj/item/weapon/grenade/chem_grenade/cleaner, +/obj/item/weapon/grenade/chem_grenade/cleaner, +/obj/item/weapon/grenade/chem_grenade/cleaner, +/obj/item/weapon/grenade/chem_grenade/cleaner, +/obj/item/weapon/reagent_containers/spray/cleaner, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"ayQ" = ( +/obj/structure/chair/wood/normal{ + icon_state = "wooden_chair"; + dir = 4 + }, +/obj/structure/mirror{ + pixel_y = 28 + }, +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"ayR" = ( +/obj/structure/table/wood, +/obj/item/weapon/bikehorn/rubberducky, +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"ayS" = ( +/obj/structure/table/wood, +/obj/item/weapon/pen, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"ayT" = ( +/obj/structure/table/wood, +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"ayU" = ( +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 4; + name = "4maintenance loot spawner" + }, +/obj/structure/closet/cardboard, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"ayV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"ayW" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/fsmaint) +"ayX" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/spawner/lootdrop/crate_spawner, +/obj/structure/closet/cardboard, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"ayY" = ( +/obj/structure/disposaloutlet, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/maintenance/fsmaint) +"ayZ" = ( +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"aza" = ( +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"azb" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"azc" = ( +/obj/machinery/door/airlock/glass_mining{ + name = "cargo bay door"; + req_access_txt = "31" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"azd" = ( +/obj/machinery/conveyor_switch/oneway{ + convdir = -1; + id = "cargoIN"; + name = "cargo crate conveyor switch" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"aze" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/neutral, +/area/maintenance/fsmaint) +"azf" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "cargoIN"; + name = "cargo conveyor belt" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"azg" = ( +/obj/structure/plasticflaps, +/obj/machinery/conveyor{ + dir = 4; + id = "cargoIN"; + name = "cargo conveyor belt" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"azh" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"azi" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"azj" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/quartermaster/storage) +"azk" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"azl" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"azm" = ( +/obj/machinery/light, +/turf/open/floor/wood, +/area/library) +"azn" = ( +/obj/machinery/camera/autoname{ + dir = 1; + network = list("SS13") + }, +/turf/open/floor/wood, +/area/library) +"azo" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-06"; + level = 4.1 + }, +/obj/machinery/power/apc{ + name = "Library APC"; + pixel_y = -24 + }, +/obj/structure/cable/cyan{ + icon_state = "0-4" + }, +/turf/open/floor/wood, +/area/library) +"azp" = ( +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/turf/open/floor/wood, +/area/library) +"azq" = ( +/obj/structure/dresser, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"azr" = ( +/obj/machinery/vending/autodrobe, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"azs" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"azt" = ( +/obj/structure/sink{ + dir = 8; + icon_state = "sink"; + pixel_x = -12 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"azu" = ( +/obj/machinery/navbeacon{ + codes = ""; + codes_txt = "delivery;dir=4"; + freq = 1400; + location = "Disposals"; + name = "navigation beacon" + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/disposal) +"azv" = ( +/turf/open/floor/plasteel/bot, +/area/maintenance/disposal) +"azw" = ( +/obj/vehicle/janicart, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"azx" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/lights/mixed, +/obj/item/key/janitor, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"azy" = ( +/obj/effect/landmark/start{ + name = "Janitor" + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"azz" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "Waste Disposal APC"; + pixel_x = 24 + }, +/obj/structure/cable/cyan{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"azA" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"azB" = ( +/obj/machinery/door/airlock{ + name = "door" + }, +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"azC" = ( +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"azD" = ( +/obj/structure/dresser, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"azE" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"azF" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + icon_state = "vent_map"; + dir = 4 + }, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"azG" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/fsmaint) +"azH" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"azI" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"azJ" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"azK" = ( +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 4; + name = "4maintenance loot spawner" + }, +/obj/structure/closet/cardboard, +/obj/item/weapon/coin/silver, +/turf/open/floor/plasteel, +/area/maintenance/fsmaint) +"azL" = ( +/turf/closed/wall, +/area/maintenance/asmaint2) +"azM" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance door"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"azN" = ( +/obj/structure/ore_box, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/mining) +"azO" = ( +/obj/structure/shuttle/engine/heater, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/shuttle/mining) +"azP" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"azQ" = ( +/obj/structure/table, +/obj/item/weapon/twohanded/spear{ + pixel_x = -7; + pixel_y = 7 + }, +/obj/item/weapon/twohanded/spear{ + pixel_x = -5; + pixel_y = 0 + }, +/obj/item/stack/medical/ointment, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"azR" = ( +/obj/machinery/mineral/equipment_vendor, +/obj/machinery/light/small, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"azS" = ( +/obj/machinery/computer/shuttle/mining{ + req_access = "0"; + req_one_access = "0" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"azT" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"azU" = ( +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"azV" = ( +/obj/machinery/camera/autoname{ + icon_state = "camera"; + dir = 10 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"azW" = ( +/obj/machinery/conveyor_switch/oneway{ + convdir = -1; + id = "cargoOUT"; + name = "cargo crate conveyor switch" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"azX" = ( +/obj/structure/closet/cardboard, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/obj/item/weapon/coin/gold, +/turf/open/floor/plasteel/neutral, +/area/maintenance/fsmaint) +"azY" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "cargoOUT"; + name = "cargo conveyor belt" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"azZ" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "cargoOUT"; + name = "cargo conveyor belt" + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"aAa" = ( +/obj/structure/plasticflaps, +/obj/machinery/conveyor{ + dir = 8; + id = "cargoOUT"; + name = "cargo conveyor belt" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"aAb" = ( +/obj/machinery/computer/cargo/request, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"aAc" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/wood, +/area/hallway/primary/central) +"aAd" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/machinery/camera/autoname{ + dir = 1; + network = list("SS13") + }, +/turf/open/floor/wood, +/area/library) +"aAe" = ( +/obj/structure/chair/comfy/beige{ + dir = 4 + }, +/turf/open/floor/wood, +/area/library) +"aAf" = ( +/obj/structure/chair/comfy/beige{ + dir = 8 + }, +/turf/open/floor/wood, +/area/library) +"aAg" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/wood, +/area/library) +"aAh" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/wood, +/area/library) +"aAi" = ( +/obj/machinery/bookbinder, +/turf/open/floor/wood, +/area/library) +"aAj" = ( +/obj/machinery/camera/autoname{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "\improper Command Hallway" + }) +"aAk" = ( +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"aAl" = ( +/turf/closed/wall, +/area/maintenance/maintcentral{ + name = "Central Maintenance" + }) +"aAm" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/maintenance{ + name = "service maintenance door"; + req_one_access_txt = "12;25;28;37;46" + }, +/turf/open/floor/plating, +/area/maintenance/maintcentral{ + name = "Central Maintenance" + }) +"aAn" = ( +/obj/machinery/door/airlock/maintenance{ + name = "theater door"; + req_access_txt = "46" + }, +/turf/open/floor/wood, +/area/maintenance/maintcentral{ + name = "Central Maintenance" + }) +"aAo" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance door"; + req_access_txt = "12" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"aAp" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"aAq" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"aAr" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"aAs" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"aAt" = ( +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"aAu" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"aAv" = ( +/obj/effect/spawner/lootdrop/crate_spawner, +/obj/item/candle, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"aAw" = ( +/obj/item/clothing/neck/petcollar, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plasteel, +/area/maintenance/fsmaint) +"aAx" = ( +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aAy" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/table, +/obj/item/device/geiger_counter, +/obj/item/device/geiger_counter{ + pixel_x = 4; + pixel_y = 4 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"aAz" = ( +/obj/item/weapon/shard, +/obj/structure/mirror{ + pixel_y = 28 + }, +/turf/open/floor/plasteel/white, +/area/maintenance/asmaint2) +"aAA" = ( +/obj/structure/table, +/obj/item/weapon/hatchet, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = 5; + pixel_y = 5 + }, +/turf/open/floor/plasteel/white, +/area/maintenance/asmaint2) +"aAB" = ( +/obj/structure/table, +/obj/structure/bedsheetbin, +/turf/open/floor/plasteel/white, +/area/space) +"aAC" = ( +/turf/open/space, +/turf/closed/wall/shuttle{ + icon_state = "swall_f5"; + dir = 2 + }, +/area/shuttle/mining) +"aAD" = ( +/obj/structure/shuttle/engine/propulsion/burst, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/turf/open/floor/plating/airless, +/area/shuttle/mining) +"aAE" = ( +/turf/open/space, +/turf/closed/wall/shuttle{ + icon_state = "swall_f9"; + dir = 2 + }, +/area/shuttle/mining) +"aAF" = ( +/obj/structure/closet/secure_closet/miner, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"aAG" = ( +/obj/structure/closet/secure_closet/miner, +/obj/item/weapon/storage/toolbox/mechanical, +/obj/item/device/gps/mining, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"aAH" = ( +/obj/machinery/door/airlock/mining{ + name = "cargo door"; + req_access_txt = "31" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"aAI" = ( +/turf/closed/wall, +/area/hallway/secondary/exit) +"aAJ" = ( +/turf/closed/wall, +/area/hydroponics) +"aAK" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "hallway shutter"; + name = "hallway shutter" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aAL" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "hallway shutter"; + name = "hallway shutter" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aAM" = ( +/obj/machinery/door/airlock/maintenance{ + name = "service maintenance door"; + req_one_access_txt = "12;25;28;37;46" + }, +/turf/open/floor/plating, +/area/maintenance/maintcentral{ + name = "Central Maintenance" + }) +"aAN" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Central Maintenance APC"; + pixel_y = 24 + }, +/obj/structure/cable/cyan{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/maintenance/maintcentral{ + name = "Central Maintenance" + }) +"aAO" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/maintcentral{ + name = "Central Maintenance" + }) +"aAP" = ( +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/maintcentral{ + name = "Central Maintenance" + }) +"aAQ" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/wood, +/area/maintenance/maintcentral{ + name = "Central Maintenance" + }) +"aAR" = ( +/obj/machinery/door/airlock/maintenance{ + name = "service maintenance door"; + req_one_access_txt = "12;25;28;37;46" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/maintcentral{ + name = "Central Maintenance" + }) +"aAS" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aAT" = ( +/obj/machinery/button/door{ + id = "crusherdoor"; + name = "crusher blast door button"; + pixel_y = -24 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"aAU" = ( +/turf/open/floor/plasteel/warning{ + dir = 2 + }, +/area/maintenance/disposal) +"aAV" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"aAW" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/conveyor_switch/oneway{ + convdir = -1; + id = "garbage" + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"aAX" = ( +/obj/machinery/mineral/stacking_unit_console{ + machinedir = 10; + pixel_y = -32 + }, +/mob/living/simple_animal/bot/cleanbot{ + on = 0 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"aAY" = ( +/obj/structure/table/wood, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/item/weapon/storage/backpack/satchel, +/obj/item/weapon/storage/backpack/satchel, +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"aAZ" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aBa" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aBb" = ( +/turf/open/floor/plasteel, +/area/maintenance/asmaint2) +"aBc" = ( +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aBd" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aBe" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aBf" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/maintenance/asmaint2) +"aBg" = ( +/obj/item/clothing/gloves/color/latex/nitrile, +/turf/open/floor/plasteel/white, +/area/maintenance/asmaint2) +"aBh" = ( +/turf/open/floor/plasteel/white, +/area/maintenance/asmaint2) +"aBi" = ( +/obj/structure/table, +/obj/item/weapon/wirerod, +/obj/item/weapon/reagent_containers/syringe, +/obj/item/weapon/restraints/handcuffs, +/obj/item/clothing/neck/stethoscope, +/turf/open/floor/plasteel/white, +/area/space) +"aBj" = ( +/obj/machinery/light, +/obj/structure/closet/secure_closet/miner, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"aBk" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"aBl" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"aBm" = ( +/obj/structure/flora/ausbushes/pointybush{ + layer = 4.1; + name = "tree"; + pixel_x = -4; + pixel_y = 10 + }, +/obj/structure/flora/ausbushes/pointybush{ + icon_state = "pointybush_2"; + layer = 4.1; + name = "tree"; + pixel_x = 10; + pixel_y = 6 + }, +/obj/structure/flora/ausbushes/pointybush{ + layer = 4.1; + name = "tree"; + pixel_x = -1; + pixel_y = -3 + }, +/obj/structure/flora/ausbushes/pointybush{ + layer = 4.1; + name = "tree"; + pixel_x = 14; + pixel_y = -8 + }, +/turf/open/floor/plating/asteroid{ + name = "dirt" + }, +/area/hallway/secondary/exit) +"aBn" = ( +/obj/structure/flora/ausbushes/pointybush{ + layer = 4.1; + name = "tree"; + pixel_x = 4; + pixel_y = 10 + }, +/obj/structure/flora/ausbushes/pointybush{ + layer = 4.1; + name = "tree"; + pixel_x = -5; + pixel_y = -1 + }, +/turf/open/floor/plating/asteroid{ + name = "dirt" + }, +/area/hallway/secondary/exit) +"aBo" = ( +/obj/structure/flora/ausbushes/pointybush{ + layer = 4.1; + name = "tree"; + pixel_x = -8; + pixel_y = 11 + }, +/obj/structure/flora/ausbushes/pointybush{ + layer = 4.1; + name = "tree"; + pixel_x = -5; + pixel_y = -1 + }, +/obj/structure/flora/ausbushes/pointybush{ + layer = 4.1; + name = "tree"; + pixel_x = 10; + pixel_y = 6 + }, +/turf/open/floor/plating/asteroid{ + name = "dirt" + }, +/area/hallway/secondary/exit) +"aBp" = ( +/obj/structure/flora/ausbushes/pointybush{ + layer = 4.1; + name = "tree"; + pixel_x = 4; + pixel_y = 10 + }, +/obj/structure/flora/ausbushes/pointybush{ + icon_state = "pointybush_2"; + layer = 4.1; + name = "tree"; + pixel_x = 0; + pixel_y = 0 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating/asteroid{ + name = "dirt" + }, +/area/hallway/secondary/exit) +"aBq" = ( +/turf/open/floor/plating/asteroid{ + name = "dirt" + }, +/area/hallway/secondary/exit) +"aBr" = ( +/obj/structure/flora/ausbushes/pointybush{ + layer = 4.1; + name = "tree"; + pixel_x = 4; + pixel_y = 10 + }, +/obj/structure/flora/ausbushes/pointybush{ + layer = 4.1; + name = "tree"; + pixel_x = -2; + pixel_y = 5 + }, +/turf/open/floor/plating/asteroid{ + name = "dirt" + }, +/area/hallway/secondary/exit) +"aBs" = ( +/obj/structure/flora/ausbushes/pointybush{ + layer = 4.1; + name = "tree"; + pixel_x = 4; + pixel_y = 10 + }, +/turf/open/floor/plating/asteroid{ + name = "dirt" + }, +/area/hallway/secondary/exit) +"aBt" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"aBu" = ( +/obj/structure/table/glass, +/obj/machinery/reagentgrinder{ + pixel_y = 12 + }, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 1 + }, +/area/hydroponics) +"aBv" = ( +/obj/structure/table/glass, +/obj/item/weapon/shovel/spade, +/obj/item/weapon/storage/bag/plants, +/obj/item/weapon/storage/bag/plants, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 1 + }, +/area/hydroponics) +"aBw" = ( +/obj/structure/closet/crate/hydroponics, +/obj/item/weapon/reagent_containers/food/snacks/grown/blumpkin, +/obj/item/weapon/reagent_containers/food/snacks/grown/cabbage, +/obj/item/weapon/reagent_containers/food/snacks/grown/carrot, +/obj/item/weapon/reagent_containers/food/snacks/grown/chili, +/obj/item/weapon/reagent_containers/food/snacks/grown/ghost_chili, +/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/chanterelle, +/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/walkingmushroom, +/obj/item/weapon/reagent_containers/food/snacks/grown/poppy/lily, +/obj/item/weapon/reagent_containers/food/snacks/grown/rice, +/obj/item/weapon/reagent_containers/food/snacks/grown/tomato, +/obj/item/weapon/reagent_containers/food/snacks/grown/wheat, +/obj/item/weapon/reagent_containers/food/snacks/grown/potato, +/obj/item/weapon/reagent_containers/food/snacks/grown/parsnip, +/obj/item/weapon/reagent_containers/food/snacks/grown/eggplant, +/obj/item/weapon/reagent_containers/food/snacks/grown/corn, +/obj/item/weapon/reagent_containers/food/snacks/grown/cocoapod, +/obj/item/weapon/reagent_containers/food/snacks/grown/holymelon, +/obj/item/weapon/reagent_containers/food/snacks/grown/bluecherries, +/obj/item/weapon/reagent_containers/food/snacks/grown/potato/sweet, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 1 + }, +/area/hydroponics) +"aBx" = ( +/obj/structure/closet/secure_closet/hydroponics, +/obj/item/weapon/watertank, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 1 + }, +/area/hydroponics) +"aBy" = ( +/obj/structure/closet/wardrobe/botanist, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 5 + }, +/area/hydroponics) +"aBz" = ( +/turf/open/floor/plating, +/area/maintenance/maintcentral{ + name = "Central Maintenance" + }) +"aBA" = ( +/obj/item/weapon/storage/box/lights/mixed, +/turf/open/floor/plating, +/area/maintenance/maintcentral{ + name = "Central Maintenance" + }) +"aBB" = ( +/obj/machinery/navbeacon{ + codes = ""; + codes_txt = "delivery;dir=1"; + freq = 1400; + location = "Central Maint"; + name = "navigation beacon" + }, +/turf/open/floor/plating, +/area/maintenance/maintcentral{ + name = "Central Maintenance" + }) +"aBC" = ( +/obj/machinery/camera/autoname{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aBD" = ( +/turf/closed/wall/r_wall, +/area/maintenance/disposal) +"aBE" = ( +/obj/machinery/door/airlock/glass{ + name = "maintenance glass door"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"aBF" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/cyan, +/turf/open/floor/plating, +/area/maintenance/disposal) +"aBG" = ( +/obj/machinery/mineral/stacking_machine{ + input_dir = 2; + output_dir = 1; + stack_amt = 10 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"aBH" = ( +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"aBI" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"aBJ" = ( +/obj/effect/landmark{ + name = "lightsout" + }, +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"aBK" = ( +/obj/structure/reagent_dispensers/water_cooler, +/turf/open/floor/plasteel/black, +/area/crew_quarters/sleep) +"aBL" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/drinks/sillycup, +/turf/open/floor/plasteel/black, +/area/crew_quarters/sleep) +"aBM" = ( +/obj/structure/chair/comfy/beige{ + dir = 8 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/sleep) +"aBN" = ( +/obj/structure/chair/comfy/beige{ + dir = 4 + }, +/obj/machinery/camera/autoname{ + icon_state = "camera"; + dir = 6 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/sleep) +"aBO" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/drinks/soda_cans/tonic, +/turf/open/floor/plasteel/black, +/area/crew_quarters/sleep) +"aBP" = ( +/obj/structure/chair/comfy/beige{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/sleep) +"aBQ" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aBR" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aBS" = ( +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/weapon/storage/bag/trash, +/obj/structure/closet/cardboard, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aBT" = ( +/obj/effect/spawner/lootdrop/crate_spawner, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aBU" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance door"; + req_access_txt = "12" + }, +/turf/open/floor/plasteel/white, +/area/maintenance/asmaint2) +"aBV" = ( +/obj/machinery/iv_drip{ + density = 0 + }, +/turf/open/floor/plasteel/white, +/area/maintenance/asmaint2) +"aBW" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-02"; + layer = 4.1 + }, +/turf/open/floor/plasteel/neutral, +/area/maintenance/fsmaint) +"aBX" = ( +/obj/structure/table, +/obj/item/weapon/tank/internals/anesthetic, +/obj/item/clothing/mask/breath/medical, +/turf/open/floor/plasteel/white, +/area/space) +"aBY" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"aBZ" = ( +/obj/structure/flora/ausbushes/pointybush{ + icon_state = "pointybush_4"; + layer = 4.1; + name = "tree"; + pixel_x = 0; + pixel_y = 0 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plating/asteroid{ + name = "dirt" + }, +/area/hallway/secondary/exit) +"aCa" = ( +/obj/structure/flora/ausbushes/pointybush{ + layer = 4.1; + name = "tree"; + pixel_x = -6; + pixel_y = 11 + }, +/obj/structure/flora/ausbushes/pointybush{ + icon_state = "pointybush_3"; + layer = 4.1; + name = "tree"; + pixel_x = 10; + pixel_y = 6 + }, +/obj/structure/flora/ausbushes/pointybush{ + icon_state = "pointybush_4"; + layer = 4.1; + name = "tree"; + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plating/asteroid{ + name = "dirt" + }, +/area/hallway/secondary/exit) +"aCb" = ( +/turf/open/floor/wood, +/area/hallway/secondary/exit) +"aCc" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plating/asteroid{ + name = "dirt" + }, +/area/hallway/secondary/exit) +"aCd" = ( +/obj/structure/sink{ + dir = 8; + icon_state = "sink"; + pixel_x = -12 + }, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 8 + }, +/area/hydroponics) +"aCe" = ( +/turf/open/floor/plasteel/white, +/area/hydroponics) +"aCf" = ( +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 4 + }, +/area/hydroponics) +"aCg" = ( +/obj/machinery/door/airlock/maintenance{ + name = "bar door"; + req_one_access_txt = "25;28" + }, +/turf/open/floor/plasteel/black, +/area/maintenance/maintcentral{ + name = "Central Maintenance" + }) +"aCh" = ( +/obj/machinery/icecream_vat, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/maintenance/maintcentral{ + name = "Central Maintenance" + }) +"aCi" = ( +/turf/open/floor/plasteel, +/area/maintenance/maintcentral{ + name = "Central Maintenance" + }) +"aCj" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/crew_quarters/theatre) +"aCk" = ( +/turf/open/floor/carpet, +/area/crew_quarters/theatre) +"aCl" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + icon_state = "vent_map"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aCm" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "garbage" + }, +/obj/structure/disposaloutlet{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plating, +/area/maintenance/disposal) +"aCn" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "garbage" + }, +/obj/machinery/light, +/turf/open/floor/plating, +/area/maintenance/disposal) +"aCo" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "garbage" + }, +/obj/machinery/door/poddoor{ + id = "crusherdoor"; + layer = 3.1; + name = "crusher safety blast door" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"aCp" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "garbage" + }, +/obj/machinery/recycler/deathtrap, +/turf/open/floor/plating, +/area/maintenance/disposal) +"aCq" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "garbage" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"aCr" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "garbage" + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/disposal/deliveryChute{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"aCs" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/maintenance/disposal) +"aCt" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"aCu" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-02"; + layer = 4.1 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/sleep) +"aCv" = ( +/turf/open/floor/plasteel/black, +/area/crew_quarters/sleep) +"aCw" = ( +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/sleep) +"aCx" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/closed/wall, +/area/maintenance/asmaint2) +"aCy" = ( +/turf/closed/wall/r_wall, +/area/maintenance/asmaint2) +"aCz" = ( +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"aCA" = ( +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"aCB" = ( +/obj/structure/flora/ausbushes/pointybush{ + layer = 4.1; + name = "tree"; + pixel_x = 4; + pixel_y = 10 + }, +/obj/structure/flora/ausbushes/pointybush{ + icon_state = "pointybush_2"; + layer = 4.1; + name = "tree"; + pixel_x = 14; + pixel_y = -8 + }, +/obj/structure/flora/ausbushes/pointybush{ + layer = 4.1; + name = "tree"; + pixel_x = -5; + pixel_y = -1 + }, +/turf/open/floor/plating/asteroid{ + name = "dirt" + }, +/area/hallway/secondary/exit) +"aCC" = ( +/obj/structure/flora/ausbushes/reedbush{ + pixel_x = 6 + }, +/turf/open/floor/plating/asteroid{ + name = "dirt" + }, +/area/hallway/secondary/exit) +"aCD" = ( +/turf/closed/wall/mineral/wood{ + desc = "A tiny shrine to the moon lady."; + name = "Change'e shrine"; + opacity = 0 + }, +/area/hallway/secondary/exit) +"aCE" = ( +/obj/structure/flora/ausbushes/pointybush{ + layer = 4.1; + name = "tree"; + pixel_x = -5; + pixel_y = -1 + }, +/turf/open/floor/plating/asteroid{ + name = "dirt" + }, +/area/hallway/secondary/exit) +"aCF" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/camera/autoname{ + icon_state = "camera"; + dir = 4 + }, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 8 + }, +/area/hydroponics) +"aCG" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/white, +/area/hydroponics) +"aCH" = ( +/obj/machinery/hydroponics/constructable, +/turf/open/floor/plasteel/white, +/area/hydroponics) +"aCI" = ( +/obj/machinery/newscaster{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 4 + }, +/area/hydroponics) +"aCJ" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + icon_state = "vent_map"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aCK" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "\improper Bar and Kitchen" + }) +"aCL" = ( +/obj/structure/table/wood, +/obj/machinery/chem_dispenser/drinks, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar{ + name = "\improper Bar and Kitchen" + }) +"aCM" = ( +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar{ + name = "\improper Bar and Kitchen" + }) +"aCN" = ( +/obj/machinery/chem_master/condimaster{ + name = "CondiMaster Neo"; + pixel_x = -4 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchen shutter"; + name = "kitchen shutter" + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar{ + name = "\improper Bar and Kitchen" + }) +"aCO" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/obj/machinery/camera/autoname, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar{ + name = "\improper Bar and Kitchen" + }) +"aCP" = ( +/obj/structure/kitchenspike, +/turf/open/floor/plasteel/white, +/area/crew_quarters/bar{ + name = "\improper Bar and Kitchen" + }) +"aCQ" = ( +/obj/machinery/processor, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/bar{ + name = "\improper Bar and Kitchen" + }) +"aCR" = ( +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"aCS" = ( +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"aCT" = ( +/obj/machinery/food_cart, +/obj/structure/window/reinforced, +/turf/open/floor/plasteel, +/area/maintenance/maintcentral{ + name = "Central Maintenance" + }) +"aCU" = ( +/obj/effect/landmark/start{ + name = "Mime" + }, +/turf/open/floor/carpet, +/area/crew_quarters/theatre) +"aCV" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "hallway shutter"; + name = "hallway shutter" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aCW" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall/r_wall, +/area/maintenance/disposal) +"aCX" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/camera/autoname{ + icon_state = "camera"; + dir = 5 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"aCY" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"aCZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/sleep) +"aDa" = ( +/obj/machinery/navbeacon{ + codes = ""; + codes_txt = "delivery;dir=8"; + freq = 1400; + location = "Dorms"; + name = "navigation beacon" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/crew_quarters/sleep) +"aDb" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Dormitories APC"; + pixel_y = 24 + }, +/obj/structure/cable/cyan{ + icon_state = "0-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"aDc" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"aDd" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"aDe" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/asmaint2) +"aDf" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aDg" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aDh" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aDi" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aDj" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/asmaint2) +"aDk" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aDl" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aDm" = ( +/obj/item/device/mmi, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aDn" = ( +/turf/closed/wall/mineral/titanium/overspace, +/area/shuttle/escape) +"aDo" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"aDp" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall14"; + dir = 2 + }, +/area/shuttle/escape) +"aDq" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s10"; + dir = 2 + }, +/area/shuttle/escape) +"aDr" = ( +/obj/item/weapon/storage/box/lights/mixed, +/turf/open/floor/plating, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"aDs" = ( +/obj/structure/flora/ausbushes/lavendergrass{ + pixel_x = 6 + }, +/obj/machinery/camera/autoname{ + icon_state = "camera"; + dir = 4 + }, +/turf/open/floor/plating/asteroid{ + name = "dirt" + }, +/area/hallway/secondary/exit) +"aDt" = ( +/obj/structure/flora/ausbushes/pointybush{ + layer = 4.1; + name = "tree"; + pixel_x = 4; + pixel_y = 10 + }, +/obj/machinery/camera/autoname{ + dir = 8 + }, +/turf/open/floor/plating/asteroid{ + name = "dirt" + }, +/area/hallway/secondary/exit) +"aDu" = ( +/obj/machinery/seed_extractor, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 8 + }, +/area/hydroponics) +"aDv" = ( +/obj/effect/landmark/start{ + name = "Botanist" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/hydroponics) +"aDw" = ( +/obj/effect/landmark/start{ + name = "Botanist" + }, +/turf/open/floor/plasteel/white, +/area/hydroponics) +"aDx" = ( +/turf/open/floor/plasteel/whitegreen/side{ + dir = 4 + }, +/area/hydroponics) +"aDy" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hydroponics) +"aDz" = ( +/obj/structure/table/wood, +/obj/machinery/chem_dispenser/drinks/beer, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar{ + name = "\improper Bar and Kitchen" + }) +"aDA" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchen shutter"; + name = "kitchen shutter" + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar{ + name = "\improper Bar and Kitchen" + }) +"aDB" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar{ + name = "\improper Bar and Kitchen" + }) +"aDC" = ( +/turf/open/floor/plasteel/white, +/area/crew_quarters/bar{ + name = "\improper Bar and Kitchen" + }) +"aDD" = ( +/obj/machinery/door/airlock/maintenance{ + name = "bar door"; + req_one_access_txt = "25;28" + }, +/turf/open/floor/plating, +/area/maintenance/maintcentral{ + name = "Central Maintenance" + }) +"aDE" = ( +/turf/open/floor/plasteel/loadingarea{ + tag = "icon-loadingarea (WEST)"; + dir = 8 + }, +/area/quartermaster/storage) +"aDF" = ( +/obj/structure/piano, +/turf/open/floor/carpet, +/area/crew_quarters/theatre) +"aDG" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-y"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aDH" = ( +/obj/machinery/door/airlock{ + name = "door" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/maintcentral{ + name = "Central Maintenance" + }) +"aDI" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/maintcentral{ + name = "Central Maintenance" + }) +"aDJ" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/maintcentral{ + name = "Central Maintenance" + }) +"aDK" = ( +/obj/machinery/door/airlock{ + name = "door" + }, +/turf/open/floor/plating, +/area/maintenance/maintcentral{ + name = "Central Maintenance" + }) +"aDL" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"aDM" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"aDN" = ( +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"aDO" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + icon_state = "vent_map"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"aDP" = ( +/obj/machinery/door/airlock/maintenance{ + name = "science maintenance door"; + req_one_access_txt = "47;12;29" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aDQ" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aDR" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aDS" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + icon_state = "vent_map"; + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aDT" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aDU" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/maintenance/asmaint2) +"aDV" = ( +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/warning/corner, +/area/maintenance/asmaint2) +"aDW" = ( +/obj/item/weapon/ed209_assembly, +/obj/structure/cable/cyan{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aDX" = ( +/obj/structure/table, +/obj/item/weapon/circuitboard/machine/circuit_imprinter, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aDY" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall8"; + dir = 2 + }, +/area/shuttle/escape) +"aDZ" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/escape) +"aEa" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall4"; + dir = 2 + }, +/area/shuttle/escape) +"aEb" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall11"; + dir = 2 + }, +/area/shuttle/escape) +"aEc" = ( +/obj/structure/table, +/obj/item/weapon/scalpel, +/obj/item/weapon/retractor{ + pixel_x = 0; + pixel_y = 5 + }, +/obj/item/weapon/hemostat, +/turf/open/floor/plasteel/white, +/area/shuttle/escape) +"aEd" = ( +/obj/structure/table, +/obj/item/weapon/cautery, +/obj/item/weapon/surgicaldrill, +/obj/item/weapon/circular_saw{ + pixel_y = 9 + }, +/turf/open/floor/plasteel/white, +/area/shuttle/escape) +"aEe" = ( +/turf/open/floor/plasteel/white, +/area/shuttle/escape) +"aEf" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall3"; + dir = 2 + }, +/area/shuttle/escape) +"aEg" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_r"; + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"aEh" = ( +/obj/structure/closet/cardboard, +/obj/item/weapon/coin/silver, +/obj/item/weapon/coin/silver, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"aEi" = ( +/obj/structure/flora/ausbushes/pointybush{ + icon_state = "pointybush_4"; + layer = 4.1; + name = "tree"; + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plating/asteroid{ + name = "dirt" + }, +/area/hallway/secondary/exit) +"aEj" = ( +/obj/structure/flora/ausbushes/pointybush{ + layer = 4.1; + name = "tree"; + pixel_x = 14; + pixel_y = -8 + }, +/obj/structure/flora/ausbushes/pointybush{ + icon_state = "pointybush_2"; + layer = 4.1; + name = "tree"; + pixel_x = -5; + pixel_y = -1 + }, +/turf/open/floor/plating/asteroid{ + name = "dirt" + }, +/area/hallway/secondary/exit) +"aEk" = ( +/obj/structure/flora/ausbushes/pointybush{ + icon_state = "pointybush_3"; + layer = 4.1; + name = "tree"; + pixel_x = 4; + pixel_y = 10 + }, +/obj/structure/flora/ausbushes/pointybush{ + icon_state = "pointybush_4"; + layer = 4.1; + name = "tree"; + pixel_x = -5; + pixel_y = -1 + }, +/turf/open/floor/plating/asteroid{ + name = "dirt" + }, +/area/hallway/secondary/exit) +"aEl" = ( +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"aEm" = ( +/obj/structure/flora/ausbushes/pointybush{ + icon_state = "pointybush_2"; + layer = 4.1; + name = "tree"; + pixel_x = 0; + pixel_y = 4 + }, +/turf/open/floor/plating/asteroid{ + name = "dirt" + }, +/area/hallway/secondary/exit) +"aEn" = ( +/obj/machinery/biogenerator, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 8 + }, +/area/hydroponics) +"aEo" = ( +/obj/structure/table/wood, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar{ + name = "\improper Bar and Kitchen" + }) +"aEp" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar{ + name = "\improper Bar and Kitchen" + }) +"aEq" = ( +/obj/machinery/vending/boozeomat, +/turf/closed/wall, +/area/crew_quarters/bar{ + name = "\improper Bar and Kitchen" + }) +"aEr" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/crew_quarters/bar{ + name = "\improper Bar and Kitchen" + }) +"aEs" = ( +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "\improper Command Hallway" + }) +"aEt" = ( +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"aEu" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/glass_engineering{ + name = "engineering command door"; + req_access_txt = "0"; + req_one_access_txt = "10, 19" + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"aEv" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/chair/wood/normal{ + icon_state = "wooden_chair"; + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"aEw" = ( +/obj/structure/chair/wood/normal{ + icon_state = "wooden_chair"; + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"aEx" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/obj/machinery/door/airlock/glass, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aEy" = ( +/obj/structure/closet/emcloset, +/obj/item/weapon/storage/box/metalfoam, +/turf/open/floor/plating, +/area/maintenance/maintcentral{ + name = "Central Maintenance" + }) +"aEz" = ( +/obj/structure/closet/emcloset, +/obj/item/clothing/shoes/griffin{ + name = "bird boots" + }, +/turf/open/floor/plating, +/area/maintenance/maintcentral{ + name = "Central Maintenance" + }) +"aEA" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plating, +/area/maintenance/maintcentral{ + name = "Central Maintenance" + }) +"aEB" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/maintcentral{ + name = "Central Maintenance" + }) +"aEC" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/maintenance/maintcentral{ + name = "Central Maintenance" + }) +"aED" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"aEE" = ( +/obj/machinery/door/airlock/glass, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"aEF" = ( +/turf/closed/wall, +/area/crew_quarters/fitness) +"aEG" = ( +/obj/machinery/door/airlock/maintenance{ + name = "science maintenance door"; + req_one_access_txt = "47;12;29" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aEH" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters{ + id = "xenozoo shutter"; + name = "xenozoo shutters" + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"aEI" = ( +/obj/machinery/door/poddoor/shutters{ + id = "xenozoo shutter"; + name = "xenozoo shutters" + }, +/obj/machinery/door/airlock/glass{ + name = "glass door" + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"aEJ" = ( +/obj/machinery/door/poddoor/shutters{ + id = "xenozoo shutter"; + name = "xenozoo shutters" + }, +/obj/machinery/door/airlock/glass{ + name = "glass door" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"aEK" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/maintenance/asmaint2) +"aEL" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance door"; + req_access_txt = "12" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aEM" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aEN" = ( +/obj/structure/cable/cyan{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aEO" = ( +/obj/machinery/computer/rdconsole/robotics, +/turf/open/floor/plasteel, +/area/maintenance/asmaint2) +"aEP" = ( +/obj/structure/table, +/obj/item/device/assembly/prox_sensor, +/obj/item/device/assembly/prox_sensor, +/obj/item/device/assembly/prox_sensor, +/turf/open/floor/plasteel, +/area/maintenance/asmaint2) +"aEQ" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/escape) +"aER" = ( +/obj/machinery/computer/emergency_shuttle, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/escape) +"aES" = ( +/turf/open/floor/plasteel/shuttle, +/area/shuttle/escape) +"aET" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/escape) +"aEU" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall1"; + dir = 2 + }, +/area/shuttle/escape) +"aEV" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/escape) +"aEW" = ( +/obj/structure/table/optable, +/obj/item/weapon/surgical_drapes, +/turf/open/floor/plasteel/white, +/area/shuttle/escape) +"aEX" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion"; + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"aEY" = ( +/obj/machinery/door/airlock/maintenance{ + name = "cargo maintenance door"; + req_one_access_txt = "12;31" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/quartermaster/miningdock{ + name = "\improper Mining Office" + }) +"aEZ" = ( +/obj/structure/flora/ausbushes/pointybush{ + icon_state = "pointybush_4"; + layer = 4.1; + name = "tree"; + pixel_x = -4; + pixel_y = 10 + }, +/obj/structure/flora/ausbushes/pointybush{ + layer = 4.1; + name = "tree"; + pixel_x = 10; + pixel_y = 6 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plating/asteroid{ + name = "dirt" + }, +/area/hallway/secondary/exit) +"aFa" = ( +/obj/structure/flora/ausbushes/pointybush{ + layer = 4.1; + name = "tree"; + pixel_x = 10; + pixel_y = 6 + }, +/turf/open/floor/plating/asteroid{ + name = "dirt" + }, +/area/hallway/secondary/exit) +"aFb" = ( +/obj/structure/flora/ausbushes/pointybush{ + layer = 4.1; + name = "tree"; + pixel_x = 4; + pixel_y = 10 + }, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plating/asteroid{ + name = "dirt" + }, +/area/hallway/secondary/exit) +"aFc" = ( +/obj/machinery/vending/hydroseeds, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 8 + }, +/area/hydroponics) +"aFd" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/westright{ + name = "hydroponics door"; + req_access_txt = "35" + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"aFe" = ( +/obj/structure/chair/stool, +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "\improper Bar and Kitchen" + }) +"aFf" = ( +/obj/structure/table/wood, +/obj/item/toy/cards/deck, +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "\improper Bar and Kitchen" + }) +"aFg" = ( +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "\improper Bar and Kitchen" + }) +"aFh" = ( +/obj/structure/table/wood, +/obj/item/weapon/gun/projectile/revolver/doublebarrel, +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "\improper Bar and Kitchen" + }) +"aFi" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/condiment/sugar, +/obj/item/weapon/reagent_containers/food/condiment/peppermill{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/weapon/reagent_containers/food/condiment/saltshaker{ + pixel_x = 10; + pixel_y = 10 + }, +/obj/item/weapon/reagent_containers/food/condiment/enzyme{ + layer = 5 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/bar{ + name = "\improper Bar and Kitchen" + }) +"aFj" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/glass/beaker/large{ + pixel_x = -2 + }, +/obj/item/weapon/reagent_containers/glass/beaker/large{ + pixel_x = 2; + pixel_y = 4 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/bar{ + name = "\improper Bar and Kitchen" + }) +"aFk" = ( +/obj/machinery/vending/dinnerware, +/turf/open/floor/plasteel/white, +/area/crew_quarters/bar{ + name = "\improper Bar and Kitchen" + }) +"aFl" = ( +/obj/structure/chair/wood/normal{ + icon_state = "wooden_chair"; + dir = 1 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"aFm" = ( +/obj/structure/chair/wood/normal{ + icon_state = "wooden_chair"; + dir = 1 + }, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"aFn" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating, +/area/maintenance/maintcentral{ + name = "Central Maintenance" + }) +"aFo" = ( +/obj/machinery/shieldgen, +/turf/open/floor/plating, +/area/maintenance/maintcentral{ + name = "Central Maintenance" + }) +"aFp" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/washing_machine, +/turf/open/floor/plasteel/white, +/area/crew_quarters/fitness) +"aFq" = ( +/obj/machinery/washing_machine, +/turf/open/floor/plasteel/white, +/area/crew_quarters/fitness) +"aFr" = ( +/obj/structure/table, +/obj/item/clothing/under/suit_jacket/female{ + pixel_x = -5 + }, +/obj/item/clothing/suit/toggle/lawyer/black, +/obj/item/clothing/under/sundress{ + pixel_x = 5 + }, +/obj/item/clothing/under/rank/det/grey, +/turf/open/floor/plasteel/white, +/area/crew_quarters/fitness) +"aFs" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aFt" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"aFu" = ( +/turf/open/floor/engine, +/area/toxins/xenobiology) +"aFv" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"aFw" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"aFx" = ( +/turf/closed/wall/r_wall, +/area/toxins/xenobiology) +"aFy" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"aFz" = ( +/obj/structure/disposaloutlet{ + icon_state = "outlet"; + dir = 8 + }, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"aFA" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/maintenance/asmaint2) +"aFB" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/maintenance/asmaint2) +"aFC" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance door"; + req_access_txt = "12" + }, +/turf/open/floor/plasteel, +/area/maintenance/asmaint2) +"aFD" = ( +/obj/item/device/assembly/prox_sensor, +/turf/open/floor/plasteel, +/area/maintenance/asmaint2) +"aFE" = ( +/obj/machinery/mecha_part_fabricator, +/turf/open/floor/plasteel, +/area/maintenance/asmaint2) +"aFF" = ( +/obj/structure/table, +/obj/item/weapon/stock_parts/matter_bin, +/obj/item/weapon/stock_parts/manipulator, +/turf/open/floor/plasteel, +/area/maintenance/asmaint2) +"aFG" = ( +/obj/machinery/computer/communications, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/escape) +"aFH" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/escape) +"aFI" = ( +/obj/structure/cable, +/obj/machinery/power/apc{ + name = "Gravity Generator APC"; + pixel_y = -24 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"aFJ" = ( +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/escape) +"aFK" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_l"; + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"aFL" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/secondary/exit) +"aFM" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + anchored = 1; + icon_state = "plant-05"; + layer = 4.1; + name = "heavy plant" + }, +/obj/machinery/camera/autoname, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"aFN" = ( +/obj/machinery/computer/slot_machine, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"aFO" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"aFP" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/hallway/secondary/exit) +"aFQ" = ( +/obj/structure/flora/ausbushes/pointybush{ + icon_state = "pointybush_3"; + layer = 4.1; + name = "tree"; + pixel_x = -3; + pixel_y = -10 + }, +/obj/structure/flora/ausbushes/pointybush{ + layer = 4.1; + name = "tree"; + pixel_x = 4; + pixel_y = 10 + }, +/turf/open/floor/plating/asteroid{ + name = "dirt" + }, +/area/hallway/secondary/exit) +"aFR" = ( +/obj/structure/flora/ausbushes/pointybush{ + layer = 4.1; + name = "tree"; + pixel_x = 4; + pixel_y = 10 + }, +/obj/structure/flora/ausbushes/pointybush{ + icon_state = "pointybush_2"; + layer = 4.1; + name = "tree"; + pixel_x = -1; + pixel_y = -3 + }, +/obj/structure/flora/ausbushes/pointybush{ + icon_state = "pointybush_2"; + layer = 4.1; + name = "tree"; + pixel_x = 14; + pixel_y = -8 + }, +/turf/open/floor/plating/asteroid{ + name = "dirt" + }, +/area/hallway/secondary/exit) +"aFS" = ( +/obj/structure/flora/ausbushes/pointybush{ + layer = 4.1; + name = "tree"; + pixel_x = 4; + pixel_y = 10 + }, +/obj/structure/flora/ausbushes/pointybush{ + icon_state = "pointybush_2"; + layer = 4.1; + name = "tree"; + pixel_x = 14; + pixel_y = -8 + }, +/turf/open/floor/plating/asteroid{ + name = "dirt" + }, +/area/hallway/secondary/exit) +"aFT" = ( +/obj/machinery/vending/hydronutrients, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 8 + }, +/area/hydroponics) +"aFU" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/hydroponics) +"aFV" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/westleft{ + name = "hydroponics door"; + req_access_txt = "35" + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"aFW" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "\improper Bar and Kitchen" + }) +"aFX" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/glass/rag, +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "\improper Bar and Kitchen" + }) +"aFY" = ( +/obj/effect/landmark/start{ + name = "Bartender" + }, +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "\improper Bar and Kitchen" + }) +"aFZ" = ( +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"aGa" = ( +/obj/structure/table, +/obj/machinery/microwave, +/turf/open/floor/plasteel/white, +/area/crew_quarters/bar{ + name = "\improper Bar and Kitchen" + }) +"aGb" = ( +/obj/structure/sink/kitchen{ + dir = 8; + icon_state = "sink_alt"; + pixel_x = 12 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/bar{ + name = "\improper Bar and Kitchen" + }) +"aGc" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-16"; + layer = 4.1 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"aGd" = ( +/obj/structure/table/wood, +/obj/item/device/instrument/guitar, +/obj/item/device/instrument/violin, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"aGe" = ( +/obj/machinery/camera/autoname{ + dir = 1; + network = list("SS13") + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"aGf" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"aGg" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/fitness) +"aGh" = ( +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/fitness) +"aGi" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/camera/autoname{ + icon_state = "camera"; + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/fitness) +"aGj" = ( +/obj/item/weapon/storage/box/lights/mixed, +/obj/item/weapon/storage/box/lights/mixed, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aGk" = ( +/obj/machinery/camera/autoname{ + dir = 1; + network = list("SS13") + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"aGl" = ( +/mob/living/simple_animal/slime, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"aGm" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"aGn" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 8 + }, +/area/maintenance/asmaint2) +"aGo" = ( +/obj/item/weapon/secbot_assembly, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aGp" = ( +/obj/machinery/light, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aGq" = ( +/obj/item/weapon/toolbox_tiles_sensor, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aGr" = ( +/obj/machinery/recharge_station, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aGs" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/escape) +"aGt" = ( +/obj/structure/table, +/obj/machinery/recharger{ + active_power_usage = 0; + idle_power_usage = 0; + pixel_y = 4; + use_power = 0 + }, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/escape) +"aGu" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/handcuffs, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/escape) +"aGv" = ( +/turf/closed/wall/shuttle{ + icon_state = "swallc2"; + dir = 2 + }, +/area/shuttle/escape) +"aGw" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall15"; + dir = 2 + }, +/area/shuttle/escape) +"aGx" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s9"; + dir = 2 + }, +/area/shuttle/escape) +"aGy" = ( +/obj/item/device/radio/beacon, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"aGz" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Hydroponics APC"; + pixel_x = -24 + }, +/obj/structure/cable/cyan{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 10 + }, +/area/hydroponics) +"aGA" = ( +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whitegreen/side, +/area/hydroponics) +"aGB" = ( +/turf/open/floor/plasteel/whitegreen/side, +/area/hydroponics) +"aGC" = ( +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 6 + }, +/area/hydroponics) +"aGD" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aGE" = ( +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "\improper Bar and Kitchen" + }) +"aGF" = ( +/mob/living/carbon/monkey/punpun, +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "\improper Bar and Kitchen" + }) +"aGG" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/light, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchen shutter"; + name = "kitchen shutter" + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar{ + name = "\improper Bar and Kitchen" + }) +"aGH" = ( +/obj/effect/landmark/start{ + name = "Cook" + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/bar{ + name = "\improper Bar and Kitchen" + }) +"aGI" = ( +/obj/machinery/power/apc{ + name = "Bar and Kitchen APC"; + pixel_y = -24 + }, +/obj/structure/cable/cyan{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/bar{ + name = "\improper Bar and Kitchen" + }) +"aGJ" = ( +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/obj/machinery/newscaster{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/bar{ + name = "\improper Bar and Kitchen" + }) +"aGK" = ( +/turf/open/floor/plasteel/stairs/left, +/area/crew_quarters/theatre) +"aGL" = ( +/turf/open/floor/plasteel/stairs/right, +/area/crew_quarters/theatre) +"aGM" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + anchored = 1; + icon_state = "plant-05"; + layer = 4.1; + name = "incredibly heavy plant" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"aGN" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"aGO" = ( +/obj/machinery/door/window/westright{ + req_access_txt = "55" + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/fitness) +"aGP" = ( +/turf/open/floor/plasteel/black, +/area/crew_quarters/fitness) +"aGQ" = ( +/obj/machinery/camera/autoname, +/turf/open/floor/plasteel/black, +/area/crew_quarters/fitness) +"aGR" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/fitness) +"aGS" = ( +/obj/structure/table, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/device/paicard, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"aGT" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"aGU" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"aGV" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"aGW" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"aGX" = ( +/obj/machinery/door/airlock/maintenance{ + name = "science maintenance door"; + req_one_access_txt = "47;12;29" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aGY" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/research{ + name = "xenobiology door"; + req_access_txt = "55"; + req_one_access_txt = "0" + }, +/turf/open/floor/plasteel, +/area/toxins/xenobiology) +"aGZ" = ( +/obj/machinery/door/window/northright{ + req_access_txt = "55" + }, +/obj/machinery/door/window/southright, +/turf/open/floor/plasteel, +/area/toxins/xenobiology) +"aHa" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"aHb" = ( +/obj/machinery/door/window/northleft{ + req_access_txt = "55" + }, +/obj/machinery/door/window/southleft, +/turf/open/floor/plasteel, +/area/toxins/xenobiology) +"aHc" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"aHd" = ( +/obj/machinery/door/airlock/maintenance{ + name = "science maintenance door"; + req_one_access_txt = "47;12;29" + }, +/turf/open/floor/plasteel, +/area/maintenance/asmaint2) +"aHe" = ( +/obj/machinery/door/airlock/maintenance{ + name = "science maintenance door"; + req_one_access_txt = "47;12;29" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/maintenance/asmaint2) +"aHf" = ( +/turf/closed/wall/shuttle, +/area/shuttle/escape) +"aHg" = ( +/obj/machinery/door/airlock/glass_security{ + name = "security airlock"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/escape) +"aHh" = ( +/obj/machinery/door/airlock/glass, +/turf/open/floor/plasteel/white, +/area/shuttle/escape) +"aHi" = ( +/turf/closed/wall/shuttle{ + icon_state = "swallc3" + }, +/area/shuttle/escape) +"aHj" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall13"; + dir = 2 + }, +/area/shuttle/escape) +"aHk" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + icon_state = "vent_map" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"aHl" = ( +/obj/structure/flora/ausbushes/pointybush{ + icon_state = "pointybush_3"; + layer = 4.1; + name = "tree"; + pixel_x = -4; + pixel_y = 10 + }, +/turf/open/floor/plating/asteroid{ + name = "dirt" + }, +/area/hallway/secondary/exit) +"aHm" = ( +/obj/machinery/door/airlock/glass_virology{ + name = "hydroponics door"; + req_access_txt = "35" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hydroponics) +"aHn" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/box/matches{ + pixel_y = 8 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar{ + name = "\improper Bar and Kitchen" + }) +"aHo" = ( +/obj/machinery/smartfridge, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchen shutter"; + name = "kitchen shutter" + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/bar{ + name = "\improper Bar and Kitchen" + }) +"aHp" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchen shutter"; + name = "kitchen shutter" + }, +/obj/item/weapon/reagent_containers/food/snacks/pastatomato{ + name = "pasghetti" + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/bar{ + name = "\improper Bar and Kitchen" + }) +"aHq" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchen shutter"; + name = "kitchen shutter" + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/bar{ + name = "\improper Bar and Kitchen" + }) +"aHr" = ( +/turf/closed/wall, +/area/crew_quarters/bar{ + name = "\improper Bar and Kitchen" + }) +"aHs" = ( +/obj/machinery/door/airlock/freezer{ + name = "kitchen door"; + req_one_access_txt = "25;28" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/bar{ + name = "\improper Bar and Kitchen" + }) +"aHt" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-05"; + layer = 4.1 + }, +/turf/open/floor/plasteel/black, +/area/hallway/primary/central) +"aHu" = ( +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"aHv" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"aHw" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/fitness) +"aHx" = ( +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/crew_quarters/fitness) +"aHy" = ( +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/crew_quarters/fitness) +"aHz" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/brute, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"aHA" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"aHB" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + icon_state = "vent_map"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"aHC" = ( +/obj/structure/table, +/obj/item/weapon/storage/pill_bottle/dice, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"aHD" = ( +/obj/structure/closet/boxinggloves, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"aHE" = ( +/obj/structure/closet/athletic_mixed, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"aHF" = ( +/obj/structure/closet/masks, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"aHG" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aHH" = ( +/obj/structure/table, +/obj/item/stack/sheet/plasteel{ + amount = 10 + }, +/obj/machinery/camera/autoname{ + icon_state = "camera"; + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"aHI" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aHJ" = ( +/turf/open/floor/plasteel/warnwhite/corner, +/area/toxins/xenobiology) +"aHK" = ( +/turf/open/floor/plasteel/warnwhite, +/area/toxins/xenobiology) +"aHL" = ( +/obj/machinery/button/door{ + id = "xenozoo shutter"; + name = "xeno zoo shutter button"; + pixel_x = 0; + pixel_y = 24 + }, +/turf/open/floor/plasteel/warnwhite, +/area/toxins/xenobiology) +"aHM" = ( +/turf/open/floor/plasteel/warnwhite/corner{ + dir = 1 + }, +/area/toxins/xenobiology) +"aHN" = ( +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aHO" = ( +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/obj/machinery/camera/autoname{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aHP" = ( +/turf/open/floor/plasteel/loadingarea{ + tag = "icon-loadingarea (EAST)"; + dir = 4 + }, +/area/quartermaster/storage) +"aHQ" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/glass/beaker/large, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aHR" = ( +/obj/item/weapon/relic, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aHS" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/plasteel/shuttle/white, +/area/shuttle/escape) +"aHT" = ( +/turf/open/floor/plasteel/shuttle/white, +/area/shuttle/escape) +"aHU" = ( +/turf/open/floor/plasteel/black, +/area/shuttle/escape) +"aHV" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/shuttle/escape) +"aHW" = ( +/obj/structure/table, +/turf/open/floor/plasteel/black, +/area/shuttle/escape) +"aHX" = ( +/obj/machinery/door/airlock/shuttle, +/turf/open/floor/plasteel/shuttle/white, +/area/shuttle/escape) +"aHY" = ( +/obj/machinery/door/airlock/external, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/hallway/secondary/exit) +"aHZ" = ( +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/hallway/secondary/exit) +"aIa" = ( +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/hallway/secondary/exit) +"aIb" = ( +/obj/machinery/door/airlock/external, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"aIc" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"aId" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"aIe" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"aIf" = ( +/obj/machinery/door/airlock/glass{ + name = "glass door" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"aIg" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"aIh" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"aIi" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"aIj" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"aIk" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/glass_engineering{ + name = "engineering command door"; + req_access_txt = "0"; + req_one_access_txt = "10, 19" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "\improper Command Hallway" + }) +"aIl" = ( +/obj/structure/closet/radiation, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "\improper Command Hallway" + }) +"aIm" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/obj/machinery/camera/autoname, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aIn" = ( +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aIo" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aIp" = ( +/obj/machinery/camera/autoname, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aIq" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "hallway shutter"; + name = "hallway shutter" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aIr" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Central Primary Hallway APC"; + pixel_y = 24 + }, +/obj/structure/cable/cyan{ + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aIs" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/mob/living/simple_animal/bot/secbot/beepsky{ + desc = "It's Officer Beepsky! Powered by a potato and a shot of whiskey, and with a sturdier reinforced chassis, too. "; + health = 45; + maxHealth = 45; + name = "Officer Beepsky" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aIt" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/space/nearstation) +"aIu" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"aIv" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/fitness) +"aIw" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/crew_quarters/fitness) +"aIx" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/crew_quarters/fitness) +"aIy" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/fitness) +"aIz" = ( +/obj/structure/table, +/obj/item/weapon/storage/crayons, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"aIA" = ( +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"aIB" = ( +/obj/item/device/assembly/mousetrap/armed, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aIC" = ( +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aID" = ( +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 4 + }, +/area/toxins/xenobiology) +"aIE" = ( +/obj/machinery/processor{ + desc = "A machine used to process slimes and retrieve their extract."; + name = "Slime Processor" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/black, +/area/toxins/xenobiology) +"aIF" = ( +/obj/machinery/smartfridge/extract, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/black, +/area/toxins/xenobiology) +"aIG" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 8 + }, +/area/toxins/xenobiology) +"aIH" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/item/weapon/extinguisher, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aII" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aIJ" = ( +/obj/item/weapon/reagent_containers/blood/empty, +/obj/item/clothing/glasses/sunglasses/blindfold, +/turf/open/floor/plasteel/white, +/area/maintenance/asmaint2) +"aIK" = ( +/obj/structure/closet/chefcloset, +/obj/item/clothing/under/skirt/blue, +/obj/item/clothing/under/janimaid, +/obj/item/clothing/under/sundress, +/obj/item/clothing/glasses/sunglasses/reagent, +/turf/open/floor/plasteel/white, +/area/crew_quarters/bar{ + name = "\improper Bar and Kitchen" + }) +"aIL" = ( +/obj/structure/table, +/obj/item/weapon/coin/plasma, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aIM" = ( +/obj/machinery/camera/autoname, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"aIN" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/shuttle/escape) +"aIO" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/snacks/boiledspaghetti{ + name = "pasghetti"; + pixel_x = 4; + pixel_y = 7 + }, +/turf/open/floor/plasteel/black, +/area/shuttle/escape) +"aIP" = ( +/obj/machinery/door/airlock/shuttle, +/obj/docking_port/mobile/emergency{ + dheight = 0; + dir = 8; + dwidth = 6; + height = 18; + port_angle = 90; + width = 14; + name = "Birdboat emergency shuttle" + }, +/obj/docking_port/stationary{ + dheight = 0; + dir = 8; + dwidth = 10; + height = 51; + id = "emergency_home"; + name = "emergency evac bay"; + width = 21 + }, +/turf/open/floor/plasteel/shuttle/white, +/area/shuttle/escape) +"aIQ" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"aIR" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aIS" = ( +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"aIT" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/glass{ + name = "glass door" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"aIU" = ( +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"aIV" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"aIW" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"aIX" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"aIY" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-j1"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"aIZ" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/light, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"aJa" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-j2"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"aJb" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/red/corner, +/area/hallway/secondary/exit) +"aJc" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side, +/area/hallway/secondary/exit) +"aJd" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + icon_state = "vent_map"; + dir = 1 + }, +/turf/open/floor/plasteel/red/side, +/area/hallway/secondary/exit) +"aJe" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side, +/area/hallway/secondary/exit) +"aJf" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 8 + }, +/area/hallway/secondary/exit) +"aJg" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aJh" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aJi" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aJj" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-j2"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aJk" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + icon_state = "vent_map"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aJl" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/light, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aJm" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aJn" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aJo" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "hallway shutter"; + name = "hallway shutter" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aJp" = ( +/obj/structure/lattice, +/turf/open/space, +/area/space/nearstation) +"aJq" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"aJr" = ( +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"aJs" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/fitness) +"aJt" = ( +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/black, +/area/crew_quarters/fitness) +"aJu" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/door/window/southright, +/turf/open/floor/plasteel/black, +/area/crew_quarters/fitness) +"aJv" = ( +/obj/structure/table, +/obj/item/device/camera, +/obj/item/weapon/reagent_containers/spray/cleaner, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"aJw" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"aJx" = ( +/obj/machinery/space_heater, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/maintcentral{ + name = "Central Maintenance" + }) +"aJy" = ( +/turf/closed/wall, +/area/toxins/xenobiology) +"aJz" = ( +/obj/structure/sink{ + dir = 8; + icon_state = "sink"; + pixel_x = -12 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aJA" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warnwhite/corner{ + dir = 8 + }, +/area/toxins/xenobiology) +"aJB" = ( +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/toxins/xenobiology) +"aJC" = ( +/turf/open/floor/plasteel/warnwhite/corner{ + dir = 4 + }, +/area/toxins/xenobiology) +"aJD" = ( +/obj/structure/bookcase/random/adult, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"aJE" = ( +/obj/structure/chair/wood/normal{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/crew_quarters/theatre) +"aJF" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"aJG" = ( +/obj/machinery/door/airlock/research{ + name = "xenobiology door"; + req_access_txt = "55"; + req_one_access_txt = "0" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"aJH" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/mob/living/simple_animal/mouse/brown, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aJI" = ( +/turf/open/floor/plating, +/area/toxins/xenobiology) +"aJJ" = ( +/mob/living/carbon/monkey, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"aJK" = ( +/obj/item/device/radio/beacon, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"aJL" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/snacks/chocolatebar, +/turf/open/floor/plasteel/black, +/area/shuttle/escape) +"aJM" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/black, +/area/shuttle/escape) +"aJN" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall2"; + dir = 2 + }, +/area/shuttle/escape) +"aJO" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + anchored = 1; + icon_state = "plant-05"; + layer = 4.1; + name = "heavy plant" + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 0 + }, +/turf/open/floor/plasteel/black, +/area/hallway/secondary/exit) +"aJP" = ( +/obj/machinery/computer/arcade/battle, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 0 + }, +/turf/open/floor/plasteel/black, +/area/hallway/secondary/exit) +"aJQ" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black, +/area/hallway/secondary/exit) +"aJR" = ( +/obj/structure/chair/comfy/beige{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/hallway/secondary/exit) +"aJS" = ( +/obj/structure/table, +/obj/structure/disposalpipe/segment, +/obj/item/weapon/paper_bin, +/turf/open/floor/plasteel/black, +/area/hallway/secondary/exit) +"aJT" = ( +/obj/structure/table, +/obj/item/toy/cards/deck, +/turf/open/floor/plasteel/black, +/area/hallway/secondary/exit) +"aJU" = ( +/obj/structure/chair/comfy/beige{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/black, +/area/hallway/secondary/exit) +"aJV" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + anchored = 1; + icon_state = "plant-21"; + layer = 4.1; + name = "heavy potted plant" + }, +/turf/open/floor/plasteel/black, +/area/hallway/secondary/exit) +"aJW" = ( +/turf/closed/wall/r_wall, +/area/security/brig) +"aJX" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "security lockdown"; + name = "brig blast door" + }, +/obj/structure/cable/cyan{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/security/brig) +"aJY" = ( +/obj/machinery/door/airlock/glass_security{ + name = "security airlock"; + req_access_txt = "63" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aJZ" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-02"; + layer = 4.1 + }, +/turf/open/floor/plasteel/black, +/area/hallway/primary/central) +"aKa" = ( +/turf/open/floor/plasteel/black, +/area/hallway/primary/central) +"aKd" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-02"; + layer = 4.1 + }, +/turf/open/floor/plasteel/black, +/area/hallway/primary/central) +"aKe" = ( +/turf/closed/wall/r_wall, +/area/medical/genetics_cloning) +"aKf" = ( +/turf/closed/wall, +/area/medical/genetics_cloning) +"aKg" = ( +/obj/machinery/smartfridge/chemistry, +/turf/closed/wall, +/area/medical/medbay) +"aKh" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "chem shutter"; + name = "chem shutter" + }, +/obj/machinery/door/window/southright{ + name = "chemistry door"; + req_one_access_txt = "5;33" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aKi" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "chem shutter"; + name = "chem shutter" + }, +/turf/open/floor/plating, +/area/medical/medbay) +"aKj" = ( +/turf/closed/wall, +/area/medical/medbay) +"aKk" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"aKl" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=1-medbay"; + location = "8-CSE2"; + name = "bot patrol navigation beacon" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"aKm" = ( +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"aKn" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"aKo" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=8-CSE2"; + location = "7-DormsS"; + name = "bot patrol navigation beacon" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"aKp" = ( +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"aKq" = ( +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"aKr" = ( +/obj/machinery/door/airlock/maintenance{ + name = "science maintenance door"; + req_one_access_txt = "47;12;29" + }, +/turf/open/floor/plating, +/area/maintenance/maintcentral{ + name = "Central Maintenance" + }) +"aKs" = ( +/obj/structure/bookcase/random/reference, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"aKt" = ( +/obj/structure/bookcase/random/nonfiction, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"aKu" = ( +/obj/structure/bookcase/random/religion, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"aKv" = ( +/obj/structure/bookcase/random/fiction, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"aKw" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"aKx" = ( +/obj/machinery/camera/autoname{ + icon_state = "camera"; + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aKy" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aKz" = ( +/obj/structure/chair, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 2 + }, +/turf/open/floor/plasteel/black, +/area/shuttle/escape) +"aKA" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/turf/open/floor/plasteel/white, +/area/shuttle/escape) +"aKB" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + anchored = 1; + icon_state = "plant-05"; + layer = 4.1; + name = "heavy plant" + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/hallway/secondary/exit) +"aKC" = ( +/turf/open/floor/plasteel/black, +/area/hallway/secondary/exit) +"aKD" = ( +/obj/structure/table, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/black, +/area/hallway/secondary/exit) +"aKE" = ( +/obj/structure/table, +/turf/open/floor/plasteel/black, +/area/hallway/secondary/exit) +"aKF" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + anchored = 1; + icon_state = "plant-21"; + layer = 4.1; + name = "heavy potted plant" + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 + }, +/turf/open/floor/plasteel/black, +/area/hallway/secondary/exit) +"aKG" = ( +/obj/structure/closet/secure_closet/brig{ + id = "Cell 1"; + name = "cell 1 locker" + }, +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aKH" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aKI" = ( +/obj/structure/bed, +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aKJ" = ( +/turf/closed/wall, +/area/security/brig) +"aKK" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aKL" = ( +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aKM" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aKN" = ( +/obj/structure/bed, +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aKO" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aKP" = ( +/obj/structure/closet/secure_closet/brig{ + id = "Cell 2"; + name = "cell 2 locker" + }, +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aKQ" = ( +/obj/machinery/dna_scannernew, +/turf/open/floor/plasteel/black, +/area/medical/genetics_cloning) +"aKR" = ( +/obj/machinery/computer/scan_consolenew, +/turf/open/floor/plasteel/black, +/area/medical/genetics_cloning) +"aKS" = ( +/obj/structure/table/glass, +/obj/item/weapon/storage/pill_bottle/mannitol, +/turf/open/floor/plasteel/warnwhite{ + dir = 8 + }, +/area/medical/genetics_cloning) +"aKT" = ( +/obj/machinery/camera/autoname, +/obj/structure/mirror{ + pixel_y = 28 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics_cloning) +"aKU" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics_cloning) +"aKV" = ( +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics_cloning) +"aKW" = ( +/obj/machinery/button/door{ + id = "chem shutter"; + name = "chemistry shutter button"; + pixel_x = -24 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aKX" = ( +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aKY" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"aKZ" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"aLa" = ( +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"aLb" = ( +/obj/machinery/power/apc{ + name = "Fitness APC"; + pixel_y = -24 + }, +/obj/structure/cable/cyan, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"aLc" = ( +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plating, +/area/maintenance/maintcentral{ + name = "Central Maintenance" + }) +"aLd" = ( +/obj/machinery/door/airlock/glass_command{ + name = "bridge door"; + req_access_txt = "19" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"aLe" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/toxins/xenobiology) +"aLf" = ( +/obj/structure/table/glass, +/obj/item/weapon/storage/box/syringes, +/obj/machinery/reagentgrinder{ + pixel_x = 0; + pixel_y = 8 + }, +/obj/item/stack/sheet/mineral/plasma{ + amount = 5 + }, +/turf/open/floor/plasteel/black, +/area/toxins/xenobiology) +"aLg" = ( +/obj/item/weapon/tank/internals/oxygen/yellow, +/obj/structure/closet/cardboard, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"aLh" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder{ + pixel_x = 0; + pixel_y = 8 + }, +/turf/open/floor/plasteel/white, +/area/maintenance/asmaint2) +"aLi" = ( +/obj/machinery/chem_heater, +/turf/open/floor/plasteel/white, +/area/maintenance/asmaint2) +"aLj" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aLk" = ( +/obj/machinery/chem_master, +/turf/open/floor/plasteel/white, +/area/maintenance/asmaint2) +"aLl" = ( +/mob/living/simple_animal/bot/medbot/derelict{ + name = "\improper Dangerous Old Medibot"; + radio_channel = null; + remote_disabled = 1; + treatment_brute = "itching_powder"; + treatment_fire = "formaldehyde"; + treatment_oxy = "itching_powder"; + treatment_tox = "formaldehyde" + }, +/turf/open/floor/plasteel/white, +/area/maintenance/asmaint2) +"aLm" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + name = "acidproof air injector" + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"aLn" = ( +/obj/structure/disposaloutlet{ + dir = 1 + }, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"aLo" = ( +/obj/machinery/door/airlock/research{ + name = "xenobiology door"; + req_access_txt = "55"; + req_one_access_txt = "0" + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"aLp" = ( +/obj/structure/table/glass, +/obj/item/weapon/storage/firstaid/fire{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/weapon/storage/firstaid/toxin, +/turf/open/floor/plasteel/white, +/area/shuttle/escape) +"aLq" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-05"; + layer = 4.1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/hallway/secondary/exit) +"aLr" = ( +/obj/machinery/computer/arcade/orion_trail, +/turf/open/floor/plasteel/black, +/area/hallway/secondary/exit) +"aLs" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-05"; + layer = 4.1 + }, +/obj/machinery/power/apc{ + name = "Escape Shuttle Hallway APC"; + pixel_y = -24 + }, +/obj/structure/cable/cyan, +/turf/open/floor/plasteel/black, +/area/hallway/secondary/exit) +"aLt" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + anchored = 1; + icon_state = "plant-05"; + layer = 4.1; + name = "heavy plant" + }, +/obj/machinery/light, +/turf/open/floor/plasteel/black, +/area/hallway/secondary/exit) +"aLu" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + anchored = 1; + icon_state = "plant-21"; + layer = 4.1; + name = "heavy potted plant" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/camera/autoname{ + dir = 1; + network = list("SS13") + }, +/turf/open/floor/plasteel/black, +/area/hallway/secondary/exit) +"aLv" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/hallway/secondary/exit) +"aLw" = ( +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aLx" = ( +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/flasher{ + id = "Cell 1"; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aLy" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aLz" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aLA" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aLB" = ( +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/flasher{ + id = "Cell 2"; + pixel_x = -24 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aLC" = ( +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aLD" = ( +/turf/open/floor/plating/asteroid{ + name = "dirt" + }, +/area/hallway/primary/central) +"aLE" = ( +/obj/structure/flora/ausbushes/pointybush{ + icon_state = "pointybush_4"; + layer = 4.1; + name = "tree"; + pixel_x = -5; + pixel_y = -1 + }, +/obj/structure/flora/ausbushes/pointybush{ + icon_state = "pointybush_2"; + layer = 4.1; + name = "tree"; + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plating/asteroid{ + name = "dirt" + }, +/area/hallway/primary/central) +"aLF" = ( +/obj/structure/flora/ausbushes/pointybush{ + icon_state = "pointybush_2"; + layer = 4.1; + name = "tree"; + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plating/asteroid{ + name = "dirt" + }, +/area/hallway/primary/central) +"aLG" = ( +/obj/structure/flora/ausbushes/pointybush{ + icon_state = "pointybush_4"; + layer = 4.1; + name = "tree"; + pixel_x = -5; + pixel_y = -1 + }, +/turf/open/floor/plating/asteroid{ + name = "dirt" + }, +/area/hallway/primary/central) +"aLH" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Cloning Lab APC"; + pixel_x = -24 + }, +/obj/structure/cable/cyan{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/medical/genetics_cloning) +"aLI" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/medical/genetics_cloning) +"aLJ" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warnwhite/corner{ + dir = 4 + }, +/area/medical/genetics_cloning) +"aLK" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics_cloning) +"aLL" = ( +/obj/machinery/door/airlock/glass_command{ + name = "bridge door"; + req_access_txt = "19" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/bridge) +"aLM" = ( +/obj/structure/dresser, +/turf/open/floor/plasteel/white, +/area/medical/genetics_cloning) +"aLN" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "chem shutter"; + name = "chem shutter" + }, +/turf/open/floor/plating, +/area/medical/genetics_cloning) +"aLO" = ( +/obj/machinery/chem_heater, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aLP" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "chem shutter"; + name = "chem shutter" + }, +/obj/machinery/door/window/westright{ + name = "chemistry door"; + req_one_access_txt = "33;5" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aLQ" = ( +/turf/closed/wall, +/area/medical/robotics) +"aLR" = ( +/obj/machinery/door/airlock/glass_command{ + name = "bridge door"; + req_access_txt = "19" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/bridge) +"aLS" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"aLT" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/storage/primary{ + name = "Tool Storage" + }) +"aLU" = ( +/obj/effect/landmark{ + name = "lightsout" + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel/black, +/area/bridge) +"aLV" = ( +/obj/structure/table/glass, +/obj/item/weapon/storage/box/monkeycubes{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/weapon/storage/box/monkeycubes, +/turf/open/floor/plasteel/black, +/area/toxins/xenobiology) +"aLW" = ( +/obj/machinery/light, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"aLX" = ( +/obj/machinery/holopad, +/mob/living/simple_animal/pet/dog/corgi/Ian, +/turf/open/floor/carpet, +/area/crew_quarters/heads) +"aLY" = ( +/turf/open/floor/plasteel/bot, +/area/maintenance/asmaint2) +"aLZ" = ( +/obj/structure/closet/secure_closet/chemical, +/obj/item/weapon/storage/box/pillbottles, +/obj/item/weapon/storage/bag/chemistry, +/obj/item/weapon/hand_labeler, +/obj/item/clothing/glasses/science, +/obj/item/clothing/glasses/science, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aMa" = ( +/obj/machinery/shieldwallgen{ + req_access = list(55) + }, +/obj/structure/cable/cyan{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"aMb" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"aMc" = ( +/obj/machinery/door/window/northleft{ + req_access_txt = "55" + }, +/obj/machinery/door/window/southleft, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"aMd" = ( +/obj/machinery/door/window/northright{ + req_access_txt = "55" + }, +/obj/machinery/door/window/southright, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"aMe" = ( +/turf/open/floor/plasteel/warnwhite{ + dir = 8 + }, +/area/toxins/xenobiology) +"aMf" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s5"; + dir = 2 + }, +/area/shuttle/escape) +"aMg" = ( +/turf/closed/wall/shuttle{ + icon_state = "swallc1"; + dir = 2 + }, +/area/shuttle/escape) +"aMh" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/shuttle/escape) +"aMi" = ( +/obj/structure/table/glass, +/obj/item/weapon/storage/firstaid/brute{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/weapon/storage/firstaid/brute, +/turf/open/floor/plasteel/white, +/area/shuttle/escape) +"aMj" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"aMk" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall/r_wall, +/area/security/brig) +"aMl" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/cyan, +/turf/open/floor/plating, +/area/security/brig) +"aMm" = ( +/obj/machinery/door/window/brigdoor/northleft{ + id = "Cell 1"; + name = "cell 1 door"; + req_access_txt = "63" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aMn" = ( +/obj/machinery/door/window/brigdoor/northleft{ + id = "Cell 2"; + name = "cell 2 door"; + req_access_txt = "63" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aMo" = ( +/obj/machinery/shower{ + icon_state = "shower"; + dir = 4 + }, +/turf/open/floor/plasteel/warnwhite, +/area/medical/genetics_cloning) +"aMp" = ( +/turf/open/floor/plasteel/warnwhite, +/area/medical/genetics_cloning) +"aMq" = ( +/obj/effect/landmark/start{ + name = "Medical Doctor" + }, +/turf/open/floor/plasteel/warnwhite, +/area/medical/genetics_cloning) +"aMr" = ( +/turf/open/floor/plasteel/warnwhite/corner{ + dir = 1 + }, +/area/medical/genetics_cloning) +"aMs" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics_cloning) +"aMt" = ( +/obj/structure/table/glass, +/obj/item/weapon/storage/box/monkeycubes{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/weapon/storage/box/monkeycubes, +/turf/open/floor/plasteel/white, +/area/medical/genetics_cloning) +"aMu" = ( +/obj/machinery/chem_dispenser{ + layer = 2.7 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aMv" = ( +/obj/effect/landmark/start{ + name = "Medical Doctor" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aMw" = ( +/obj/machinery/chem_master, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aMx" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rnd shutter"; + name = "research shutter" + }, +/turf/open/floor/plating, +/area/toxins/lab) +"aMy" = ( +/turf/open/floor/plasteel/warnwhite{ + dir = 4 + }, +/area/toxins/lab) +"aMz" = ( +/obj/machinery/r_n_d/destructive_analyzer, +/turf/open/floor/plasteel, +/area/toxins/lab) +"aMA" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/r_n_d/protolathe, +/turf/open/floor/plasteel, +/area/toxins/lab) +"aMB" = ( +/obj/machinery/r_n_d/circuit_imprinter, +/turf/open/floor/plasteel, +/area/toxins/lab) +"aMC" = ( +/turf/open/floor/plasteel/warnwhite{ + dir = 8 + }, +/area/toxins/lab) +"aMD" = ( +/turf/closed/wall, +/area/toxins/lab) +"aME" = ( +/obj/machinery/mecha_part_fabricator, +/turf/open/floor/plasteel, +/area/medical/robotics) +"aMF" = ( +/obj/machinery/computer/rdconsole/robotics, +/turf/open/floor/plasteel, +/area/medical/robotics) +"aMG" = ( +/obj/item/drone_shell, +/obj/machinery/power/apc{ + dir = 1; + name = "Robotics APC"; + pixel_y = 24 + }, +/obj/structure/cable/cyan{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel, +/area/medical/robotics) +"aMH" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal{ + amount = 50; + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/stack/sheet/metal{ + amount = 50; + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/stack/sheet/metal{ + amount = 50; + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/stack/sheet/metal{ + amount = 50; + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/stack/sheet/metal{ + amount = 50; + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/stack/sheet/metal{ + amount = 50; + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/stack/sheet/glass{ + amount = 50; + pixel_x = 3; + pixel_y = 3 + }, +/turf/open/floor/plasteel, +/area/medical/robotics) +"aMI" = ( +/obj/structure/table, +/obj/item/stack/sheet/plasteel{ + amount = 10 + }, +/obj/item/device/assembly/prox_sensor, +/obj/item/device/assembly/prox_sensor, +/obj/item/device/assembly/prox_sensor, +/obj/item/device/assembly/prox_sensor, +/obj/item/device/assembly/prox_sensor, +/obj/item/device/assembly/prox_sensor, +/turf/open/floor/plasteel, +/area/medical/robotics) +"aMJ" = ( +/obj/structure/table, +/obj/item/device/assembly/flash/handheld, +/obj/item/device/assembly/flash/handheld, +/obj/item/device/assembly/flash/handheld, +/obj/item/device/assembly/flash/handheld, +/obj/item/device/assembly/flash/handheld, +/obj/item/device/assembly/flash/handheld, +/obj/item/stack/cable_coil, +/turf/open/floor/plasteel, +/area/medical/robotics) +"aMK" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/weapon/storage/toolbox/mechanical, +/turf/open/floor/plasteel, +/area/medical/robotics) +"aML" = ( +/obj/machinery/door/airlock/maintenance{ + name = "science maintenance door"; + req_one_access_txt = "47;12;29" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aMM" = ( +/obj/machinery/door/airlock/research{ + name = "xenobiology door"; + req_access_txt = "55"; + req_one_access_txt = "0" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/toxins/xenobiology) +"aMN" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + icon_state = "vent_map"; + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aMO" = ( +/obj/machinery/droneDispenser{ + pixel_x = 0 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aMP" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aMQ" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aMR" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/camera/autoname, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aMS" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aMT" = ( +/obj/machinery/door/airlock/research{ + name = "xenobiology door"; + req_access_txt = "55"; + req_one_access_txt = "0" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/warnwhite/corner{ + dir = 8 + }, +/area/toxins/xenobiology) +"aMU" = ( +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/toxins/xenobiology) +"aMV" = ( +/obj/machinery/atmospherics/components/binary/volume_pump{ + icon_state = "volpump_map"; + dir = 1 + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/toxins/xenobiology) +"aMW" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/toxins/xenobiology) +"aMX" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/toxins/xenobiology) +"aMY" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/toxins/xenobiology) +"aMZ" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/toxins/xenobiology) +"aNa" = ( +/obj/machinery/atmospherics/components/binary/volume_pump{ + icon_state = "volpump_map"; + dir = 1 + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/toxins/xenobiology) +"aNb" = ( +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/toxins/xenobiology) +"aNc" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/shuttle/white, +/area/shuttle/escape) +"aNd" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/black, +/area/shuttle/escape) +"aNe" = ( +/obj/machinery/sleeper{ + icon_state = "sleeper-open"; + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/shuttle/escape) +"aNf" = ( +/obj/structure/table/glass, +/obj/item/weapon/defibrillator/loaded, +/turf/open/floor/plasteel/white, +/area/shuttle/escape) +"aNg" = ( +/obj/structure/flora/ausbushes/pointybush{ + layer = 4.1; + name = "tree"; + pixel_x = 14; + pixel_y = -8 + }, +/obj/structure/flora/ausbushes/pointybush{ + layer = 4.1; + name = "tree"; + pixel_x = 4; + pixel_y = 10 + }, +/turf/open/floor/plating/asteroid{ + name = "dirt" + }, +/area/hallway/secondary/exit) +"aNh" = ( +/obj/structure/flora/ausbushes/pointybush{ + icon_state = "pointybush_2"; + layer = 4.1; + name = "tree"; + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plating/asteroid{ + name = "dirt" + }, +/area/hallway/secondary/exit) +"aNi" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"aNj" = ( +/obj/structure/chair/comfy/beige{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"aNk" = ( +/obj/structure/table, +/obj/item/weapon/storage/fancy/donut_box, +/turf/open/floor/plasteel/black, +/area/security/brig) +"aNl" = ( +/obj/structure/chair/comfy/beige{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"aNm" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-02"; + layer = 4.1 + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"aNn" = ( +/turf/open/floor/plasteel, +/area/security/brig) +"aNo" = ( +/obj/machinery/door_timer{ + dir = 1; + id = "Cell 1"; + name = "cell 1 door timer"; + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plasteel/bot, +/area/security/brig) +"aNp" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-02"; + layer = 4.1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aNq" = ( +/obj/machinery/door_timer{ + dir = 1; + id = "Cell 2"; + name = "cell 2 door timer"; + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plasteel/bot, +/area/security/brig) +"aNr" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "brig window shutter"; + name = "brig window shutter" + }, +/turf/open/floor/plating, +/area/security/brig) +"aNs" = ( +/obj/machinery/computer/cloning, +/turf/open/floor/plasteel/black, +/area/medical/genetics_cloning) +"aNt" = ( +/obj/machinery/clonepod, +/turf/open/floor/plasteel/black, +/area/medical/genetics_cloning) +"aNu" = ( +/obj/structure/closet/secure_closet/personal/patient, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 8 + }, +/area/medical/genetics_cloning) +"aNv" = ( +/obj/machinery/button/door{ + id = "geneticsdoor"; + name = "cloning door button"; + normaldoorcontrol = 1; + pixel_x = 24 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics_cloning) +"aNw" = ( +/obj/structure/table/glass, +/obj/machinery/reagentgrinder{ + pixel_x = 0; + pixel_y = 8 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aNx" = ( +/obj/structure/table/glass, +/obj/item/weapon/reagent_containers/glass/beaker/large{ + pixel_x = 2; + pixel_y = 4 + }, +/obj/item/weapon/reagent_containers/glass/beaker/large{ + pixel_y = 2 + }, +/obj/item/weapon/reagent_containers/glass/beaker/large{ + pixel_x = -2 + }, +/obj/item/weapon/reagent_containers/dropper, +/obj/machinery/camera/autoname{ + icon_state = "camera"; + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aNy" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rnd shutter"; + name = "research shutter" + }, +/obj/machinery/door/window/eastright{ + name = "research door"; + req_one_access_txt = "47;29" + }, +/turf/open/floor/plasteel, +/area/toxins/lab) +"aNz" = ( +/turf/open/floor/plasteel, +/area/toxins/lab) +"aNA" = ( +/turf/open/floor/plasteel, +/area/medical/robotics) +"aNB" = ( +/obj/effect/landmark/start{ + name = "Scientist" + }, +/turf/open/floor/plasteel, +/area/medical/robotics) +"aNC" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/medical/robotics) +"aND" = ( +/obj/machinery/door/airlock/glass_command{ + name = "bridge door"; + req_access_txt = "19" + }, +/turf/open/floor/plasteel/blue, +/area/bridge) +"aNE" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/maintenance/asmaint2) +"aNF" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel, +/area/maintenance/asmaint2) +"aNG" = ( +/obj/structure/closet/wardrobe/science_white, +/obj/item/clothing/under/plaid_skirt/purple, +/obj/item/clothing/under/plaid_skirt/purple, +/obj/item/clothing/under/plaid_skirt/purple, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"aNH" = ( +/obj/structure/closet/bombcloset, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"aNI" = ( +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"aNJ" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"aNK" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"aNL" = ( +/obj/machinery/door/airlock/research{ + name = "research door"; + req_access_txt = "0"; + req_one_access_txt = "47;29" + }, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"aNM" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/toxins/misc_lab) +"aNN" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-05"; + layer = 4.1 + }, +/obj/machinery/camera/autoname{ + icon_state = "camera"; + dir = 6 + }, +/turf/open/floor/plasteel/black, +/area/toxins/misc_lab) +"aNO" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + target_temperature = 80; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/toxins/misc_lab) +"aNP" = ( +/turf/closed/wall/r_wall, +/area/toxins/misc_lab) +"aNQ" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aNR" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-02"; + layer = 4.1 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aNS" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aNT" = ( +/obj/machinery/power/apc{ + name = "Xenobiology APC"; + pixel_y = -24 + }, +/obj/structure/cable/cyan{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aNU" = ( +/obj/machinery/door/airlock/research{ + name = "xenobiology door"; + req_access_txt = "55"; + req_one_access_txt = "0" + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aNV" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aNW" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aNX" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aNY" = ( +/obj/machinery/atmospherics/pipe/manifold4w/general/visible, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aNZ" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aOa" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aOb" = ( +/obj/structure/flora/ausbushes/pointybush{ + icon_state = "pointybush_2"; + layer = 4.1; + name = "tree"; + pixel_x = -1; + pixel_y = -3 + }, +/turf/open/floor/plating/asteroid{ + name = "dirt" + }, +/area/hallway/secondary/exit) +"aOc" = ( +/obj/structure/flora/ausbushes/pointybush{ + icon_state = "pointybush_4"; + layer = 4.1; + name = "tree"; + pixel_x = -5; + pixel_y = -1 + }, +/turf/open/floor/plating/asteroid{ + name = "dirt" + }, +/area/hallway/secondary/exit) +"aOd" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-02"; + layer = 4.1 + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"aOe" = ( +/turf/open/floor/plasteel/black, +/area/security/brig) +"aOf" = ( +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aOg" = ( +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aOh" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aOi" = ( +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aOj" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aOk" = ( +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aOl" = ( +/obj/machinery/door/airlock/glass_command{ + name = "bridge door"; + req_access_txt = "19" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/blue, +/area/bridge) +"aOm" = ( +/obj/machinery/door/airlock/medical{ + id_tag = "geneticsdoor"; + name = "cloning and genetics airlock"; + req_one_access_txt = "5;9" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics_cloning) +"aOn" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/medical/genetics_cloning) +"aOo" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aOp" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/medical/medbay) +"aOq" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-j2"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"aOr" = ( +/obj/machinery/computer/rdconsole/core, +/turf/open/floor/plasteel, +/area/toxins/lab) +"aOs" = ( +/obj/effect/landmark/start{ + name = "Scientist" + }, +/turf/open/floor/plasteel, +/area/toxins/lab) +"aOt" = ( +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/toxins/lab) +"aOu" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 8 + }, +/area/toxins/lab) +"aOv" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rnd shutter"; + name = "research shutter" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/toxins/lab) +"aOw" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/medical/robotics) +"aOx" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/bot, +/area/medical/robotics) +"aOy" = ( +/obj/machinery/navbeacon{ + codes = ""; + codes_txt = "delivery;dir=8"; + freq = 1400; + location = "Robotics"; + name = "navigation beacon" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/medical/robotics) +"aOz" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/medical/robotics) +"aOA" = ( +/obj/machinery/door/airlock/research{ + name = "research door"; + req_access_txt = "0"; + req_one_access_txt = "47;29" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/maintenance/asmaint2) +"aOB" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/maintenance/asmaint2) +"aOC" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"aOD" = ( +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"aOE" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning/corner, +/area/toxins/misc_lab) +"aOF" = ( +/obj/structure/window/reinforced, +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"aOG" = ( +/obj/structure/window/reinforced, +/obj/effect/landmark{ + name = "lightsout" + }, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"aOH" = ( +/obj/structure/window/reinforced, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"aOI" = ( +/turf/closed/wall, +/area/toxins/misc_lab) +"aOJ" = ( +/turf/open/floor/plasteel/black, +/area/toxins/misc_lab) +"aOK" = ( +/obj/machinery/computer/rdservercontrol, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/open/floor/plasteel/black, +/area/toxins/misc_lab) +"aOL" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aOM" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/white, +/area/maintenance/asmaint2) +"aON" = ( +/obj/item/clothing/glasses/science, +/turf/open/floor/plasteel/white, +/area/maintenance/asmaint2) +"aOO" = ( +/obj/machinery/chem_dispenser/constructable, +/turf/open/floor/plasteel/white, +/area/maintenance/asmaint2) +"aOP" = ( +/turf/open/floor/plasteel/whitebot, +/area/toxins/xenobiology) +"aOQ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + icon_state = "vent_map"; + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aOR" = ( +/obj/effect/landmark/start{ + name = "Scientist" + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aOS" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aOT" = ( +/obj/machinery/camera/autoname{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aOU" = ( +/obj/machinery/camera/autoname{ + dir = 1; + network = list("SS13") + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"aOV" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aOW" = ( +/obj/machinery/door/airlock/research{ + name = "xenobiology door"; + req_access_txt = "55"; + req_one_access_txt = "0" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aOX" = ( +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/security/brig) +"aOY" = ( +/obj/machinery/camera/autoname{ + dir = 1; + network = list("SS13") + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aOZ" = ( +/obj/structure/table/glass, +/obj/item/weapon/storage/firstaid/brute{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/weapon/storage/firstaid/brute, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aPa" = ( +/obj/structure/closet/secure_closet/medical3, +/obj/item/weapon/gun/syringe, +/obj/item/weapon/reagent_containers/hypospray/CMO, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/item/weapon/storage/box/syringes, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aPb" = ( +/obj/structure/closet/wardrobe/white/medical, +/obj/item/clothing/neck/stethoscope, +/obj/item/clothing/neck/stethoscope, +/obj/item/clothing/under/skirt/blue, +/obj/item/clothing/under/plaid_skirt/blue, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aPc" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/medical/medbay) +"aPd" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aPe" = ( +/obj/machinery/atmospherics/components/unary/cryo_cell, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aPf" = ( +/obj/machinery/door/airlock/medical{ + name = "chemistry airlock"; + req_one_access_txt = "33;5" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aPg" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"aPh" = ( +/obj/machinery/button/door{ + id = "rnd shutter"; + name = "R&D shutter button"; + pixel_x = -24 + }, +/turf/open/floor/plasteel/warnwhite/corner{ + dir = 8 + }, +/area/toxins/lab) +"aPi" = ( +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/toxins/lab) +"aPj" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/toxins/lab) +"aPk" = ( +/turf/open/floor/plasteel/warnwhite/corner{ + dir = 4 + }, +/area/toxins/lab) +"aPl" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/medical/robotics) +"aPm" = ( +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 0 + }, +/obj/structure/table/optable, +/obj/item/weapon/surgical_drapes, +/turf/open/floor/plasteel/white, +/area/medical/robotics) +"aPn" = ( +/obj/structure/table, +/obj/item/weapon/scalpel, +/obj/item/weapon/retractor{ + pixel_x = 0; + pixel_y = 5 + }, +/obj/item/weapon/hemostat, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/robotics) +"aPo" = ( +/obj/machinery/recharge_station, +/turf/open/floor/plasteel, +/area/medical/robotics) +"aPp" = ( +/obj/structure/plasticflaps{ + opacity = 1 + }, +/obj/machinery/door/window/westleft{ + req_access_txt = "55" + }, +/obj/machinery/door/window/eastright, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aPq" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/camera/autoname{ + icon_state = "camera"; + dir = 5 + }, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"aPr" = ( +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/toxins/misc_lab) +"aPs" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical, +/obj/item/weapon/storage/toolbox/mechanical, +/obj/item/device/gps/science, +/turf/open/floor/engine, +/area/toxins/misc_lab) +"aPt" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/weapon/pipe_dispenser, +/turf/open/floor/engine, +/area/toxins/misc_lab) +"aPu" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass{ + amount = 50; + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/mineral/plasma{ + layer = 2.9 + }, +/turf/open/floor/engine, +/area/toxins/misc_lab) +"aPv" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/beakers{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/weapon/grenade/chem_grenade, +/obj/item/weapon/grenade/chem_grenade, +/obj/item/weapon/grenade/chem_grenade, +/obj/item/weapon/grenade/chem_grenade, +/obj/item/weapon/grenade/chem_grenade, +/obj/item/weapon/grenade/chem_grenade, +/obj/item/weapon/grenade/chem_grenade, +/obj/item/weapon/reagent_containers/glass/beaker/large{ + pixel_y = 0 + }, +/obj/item/weapon/reagent_containers/glass/beaker/large{ + pixel_y = 0 + }, +/turf/open/floor/engine, +/area/toxins/misc_lab) +"aPw" = ( +/obj/machinery/door/airlock/glass_research{ + name = "research door"; + req_one_access_txt = "47;29" + }, +/turf/open/floor/plating, +/area/toxins/misc_lab) +"aPx" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plating, +/area/toxins/misc_lab) +"aPy" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plating, +/area/toxins/misc_lab) +"aPz" = ( +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"aPA" = ( +/obj/machinery/door/airlock/research{ + name = "xenobiology door"; + req_access_txt = "55"; + req_one_access_txt = "0" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aPB" = ( +/obj/structure/table, +/obj/machinery/microwave{ + desc = "It looks really dirty."; + name = "maint microwave"; + pixel_y = 5 + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"aPC" = ( +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/obj/structure/closet/cardboard, +/obj/item/weapon/coin/silver, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"aPD" = ( +/obj/structure/table, +/obj/item/weapon/wrench, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aPE" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aPF" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aPG" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aPH" = ( +/turf/closed/wall, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aPI" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/closed/wall, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aPJ" = ( +/obj/machinery/door/airlock/maintenance{ + name = "security maintenance door"; + req_one_access_txt = "12;63" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aPK" = ( +/turf/closed/wall/r_wall, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aPL" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/warden) +"aPM" = ( +/obj/machinery/door/airlock/glass_security{ + name = "central security door"; + req_one_access_txt = "1;2;4" + }, +/turf/open/floor/plasteel/black, +/area/security/warden) +"aPN" = ( +/turf/closed/wall/r_wall, +/area/security/warden) +"aPO" = ( +/turf/closed/wall, +/area/security/warden) +"aPP" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/cyan, +/turf/open/floor/plating, +/area/security/warden) +"aPQ" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/box/handcuffs, +/obj/machinery/door/window/southright{ + name = "brig counter door"; + req_one_access_txt = "1;2;4" + }, +/turf/open/floor/plasteel, +/area/security/warden) +"aPR" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aPS" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/prisoner{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/weapon/storage/box/hug, +/turf/open/floor/plasteel, +/area/security/brig) +"aPT" = ( +/obj/structure/table/glass, +/obj/item/weapon/storage/firstaid/fire{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/weapon/storage/firstaid/fire, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aPU" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aPV" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aPW" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aPX" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aPY" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"aPZ" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/weapon/storage/toolbox/mechanical, +/obj/machinery/camera/autoname{ + icon_state = "camera"; + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"aQa" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal{ + amount = 50; + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/stack/sheet/glass{ + amount = 50; + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/stock_parts/console_screen, +/obj/item/weapon/stock_parts/console_screen, +/obj/item/weapon/stock_parts/console_screen, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"aQb" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/weapon/stock_parts/cell/high, +/obj/item/weapon/stock_parts/cell/high, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"aQc" = ( +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"aQd" = ( +/obj/machinery/power/apc{ + name = "R&D APC"; + pixel_y = -24 + }, +/obj/structure/cable/cyan{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"aQe" = ( +/obj/machinery/door/airlock/research{ + name = "research door"; + req_access_txt = "0"; + req_one_access_txt = "47;29" + }, +/turf/open/floor/plasteel, +/area/toxins/lab) +"aQf" = ( +/obj/machinery/button/door{ + id = "robotics shutter"; + name = "robotics shutter button"; + pixel_y = -24 + }, +/turf/open/floor/plasteel, +/area/medical/robotics) +"aQg" = ( +/turf/open/floor/plasteel/white, +/area/medical/robotics) +"aQh" = ( +/obj/structure/table, +/obj/item/weapon/cautery, +/obj/item/weapon/surgicaldrill, +/obj/item/weapon/circular_saw{ + pixel_y = 9 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/robotics) +"aQi" = ( +/obj/machinery/recharge_station, +/obj/machinery/camera/autoname{ + dir = 1; + network = list("SS13") + }, +/turf/open/floor/plasteel, +/area/medical/robotics) +"aQj" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/weapon/stock_parts/cell/high, +/obj/item/weapon/stock_parts/cell/high, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel, +/area/medical/robotics) +"aQk" = ( +/turf/open/floor/engine, +/area/toxins/misc_lab) +"aQl" = ( +/turf/open/floor/plasteel/black{ + name = "Server Walkway"; + initial_gas_mix = "n2=500;TEMP=80" + }, +/area/toxins/misc_lab) +"aQm" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plasteel/black{ + name = "Server Walkway"; + initial_gas_mix = "n2=500;TEMP=80" + }, +/area/toxins/misc_lab) +"aQn" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 0; + initialize_directions = 1; + internal_pressure_bound = 101.325; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/plasteel/black{ + name = "Server Walkway"; + initial_gas_mix = "n2=500;TEMP=80" + }, +/area/toxins/misc_lab) +"aQo" = ( +/obj/structure/girder/reinforced, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"aQp" = ( +/obj/item/weapon/storage/box/lights/mixed, +/turf/open/floor/plating, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aQq" = ( +/turf/open/floor/plasteel, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aQr" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aQs" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aQt" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aQu" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aQv" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aQw" = ( +/obj/structure/closet/secure_closet/security, +/obj/item/clothing/glasses/hud/security, +/turf/open/floor/plasteel/black, +/area/security/warden) +"aQx" = ( +/turf/open/floor/plasteel/black, +/area/security/warden) +"aQy" = ( +/obj/structure/closet/cardboard, +/obj/machinery/camera/autoname{ + dir = 1 + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"aQz" = ( +/obj/structure/rack, +/obj/item/weapon/gun/energy/gun/advtaser, +/obj/item/weapon/gun/energy/gun/advtaser{ + pixel_x = 5; + pixel_y = -5 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/warden) +"aQA" = ( +/obj/structure/rack, +/obj/item/weapon/gun/energy/laser, +/obj/item/weapon/gun/energy/laser{ + pixel_x = 5; + pixel_y = -5 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/warden) +"aQB" = ( +/obj/item/clothing/head/cone, +/obj/item/clothing/head/cone, +/obj/item/clothing/head/cone, +/obj/item/clothing/head/cone, +/obj/item/clothing/head/cone, +/obj/item/clothing/head/cone, +/obj/item/clothing/head/cone, +/turf/open/floor/plasteel/bot, +/area/security/brig) +"aQC" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/syndicatebomb/training, +/turf/open/floor/plasteel/bot, +/area/security/brig) +"aQD" = ( +/obj/machinery/computer/crew, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"aQE" = ( +/obj/structure/chair/comfy/beige{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"aQF" = ( +/obj/machinery/computer/security, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"aQG" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/cyan{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/security/warden) +"aQH" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aQI" = ( +/obj/structure/table, +/obj/item/device/electropack{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/device/electropack, +/obj/item/device/assembly/signaler, +/obj/item/device/assembly/signaler, +/turf/open/floor/plasteel, +/area/security/brig) +"aQJ" = ( +/obj/structure/table/glass, +/obj/item/weapon/storage/firstaid/o2{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aQK" = ( +/obj/machinery/door/airlock/medical{ + name = "medbay airlock"; + req_access_txt = "5" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aQL" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aQM" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/open/floor/plasteel/warnwhite/corner, +/area/medical/medbay) +"aQN" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warnwhite, +/area/medical/medbay) +"aQO" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + icon_state = "vent_map" + }, +/turf/open/floor/plasteel/warnwhite, +/area/medical/medbay) +"aQP" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warnwhite/corner{ + dir = 1 + }, +/area/medical/medbay) +"aQQ" = ( +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aQR" = ( +/obj/machinery/door/airlock/research{ + name = "research door"; + req_access_txt = "0"; + req_one_access_txt = "47;29" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"aQS" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/northleft{ + name = "research door"; + req_one_access_txt = "47;29" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "robotics shutter"; + name = "robotics shutter" + }, +/turf/open/floor/plasteel, +/area/medical/robotics) +"aQT" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/northright{ + name = "research door"; + req_one_access_txt = "47;29" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "robotics shutter"; + name = "robotics shutter" + }, +/turf/open/floor/plasteel, +/area/medical/robotics) +"aQU" = ( +/obj/machinery/door/airlock/research{ + name = "research door"; + req_access_txt = "0"; + req_one_access_txt = "47;29" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/medical/robotics) +"aQV" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aQW" = ( +/obj/machinery/door/airlock/glass_command{ + name = "bridge door"; + req_access_txt = "19" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aQX" = ( +/obj/structure/closet/l3closet/scientist, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"aQY" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"aQZ" = ( +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/toxins/misc_lab) +"aRa" = ( +/obj/machinery/computer/rdconsole/experiment, +/turf/open/floor/engine, +/area/toxins/misc_lab) +"aRb" = ( +/obj/machinery/r_n_d/experimentor, +/turf/open/floor/engine, +/area/toxins/misc_lab) +"aRc" = ( +/obj/machinery/r_n_d/server/robotics, +/turf/open/floor/bluegrid{ + name = "Server Base"; + initial_gas_mix = "n2=500;TEMP=80" + }, +/area/toxins/misc_lab) +"aRd" = ( +/obj/machinery/r_n_d/server/core, +/turf/open/floor/bluegrid{ + name = "Server Base"; + initial_gas_mix = "n2=500;TEMP=80" + }, +/area/toxins/misc_lab) +"aRe" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = -32 + }, +/obj/vehicle/secway, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/item/key/security, +/turf/open/floor/plasteel/bot, +/area/security/brig) +"aRf" = ( +/obj/structure/table, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aRg" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/item/weapon/storage/box/lights/mixed, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"aRh" = ( +/obj/structure/table, +/obj/item/weapon/scalpel, +/obj/item/weapon/retractor{ + pixel_x = 0; + pixel_y = 5 + }, +/obj/item/weapon/hemostat, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aRi" = ( +/turf/open/floor/plasteel/warning, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aRj" = ( +/turf/open/floor/plasteel/warning/corner{ + dir = 1 + }, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aRk" = ( +/turf/open/floor/plating, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aRl" = ( +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aRm" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aRn" = ( +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aRo" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aRp" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/security/warden) +"aRq" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/security/warden) +"aRr" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/security/warden) +"aRs" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/cyan{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/security/warden) +"aRt" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/teargas, +/obj/item/weapon/storage/box/teargas{ + pixel_x = 5; + pixel_y = 5 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"aRu" = ( +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"aRv" = ( +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"aRw" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"aRx" = ( +/obj/machinery/door/airlock/glass_security{ + name = "central security door"; + req_one_access_txt = "1;2;4" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"aRy" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aRz" = ( +/obj/machinery/shieldwallgen{ + anchored = 1; + locked = 0; + req_access = list(2) + }, +/obj/structure/cable/cyan{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/security/brig) +"aRA" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "perma shutter"; + name = "perma brig window shutter" + }, +/obj/structure/cable/cyan{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/security/brig) +"aRB" = ( +/obj/structure/table/glass, +/obj/item/weapon/storage/firstaid/toxin{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/weapon/storage/firstaid/toxin, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aRC" = ( +/obj/machinery/light/small, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aRD" = ( +/obj/machinery/vending/medical, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aRE" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/gloves, +/obj/item/weapon/storage/box/masks{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aRF" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 4 + }, +/area/medical/medbay) +"aRG" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + icon_state = "connector_map"; + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/medical/medbay) +"aRH" = ( +/obj/machinery/sleeper{ + dir = 4; + icon_state = "sleeper-open" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/medical/medbay) +"aRI" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 8 + }, +/area/medical/medbay) +"aRJ" = ( +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aRK" = ( +/obj/machinery/door/airlock/glass{ + name = "glass door" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aRL" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=2-CSE"; + location = "1-medbay"; + name = "bot patrol navigation beacon" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"aRM" = ( +/obj/machinery/door/airlock/glass_command{ + name = "bridge door"; + req_access_txt = "19" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aRN" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/purple/side{ + dir = 8 + }, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"aRO" = ( +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/sign/directions/medical{ + dir = 4; + icon_state = "direction_med"; + pixel_x = -32; + pixel_y = 32 + }, +/obj/structure/sign/directions/science{ + dir = 4; + icon_state = "direction_sci"; + pixel_x = -32; + pixel_y = 40 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aRP" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=5-CNE"; + location = "4-CNW"; + name = "bot patrol navigation beacon" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 6 + }, +/obj/structure/sign/directions/engineering{ + dir = 1; + icon_state = "direction_eng"; + pixel_x = 32; + pixel_y = -40; + tag = "icon-direction_eng (NORTH)" + }, +/obj/structure/sign/directions/security{ + pixel_x = 32; + pixel_y = -32 + }, +/obj/structure/sign/directions/evac{ + pixel_x = 32; + pixel_y = -24 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aRQ" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/obj/structure/sign/directions/engineering{ + dir = 8; + icon_state = "direction_eng"; + pixel_x = -32; + pixel_y = -24; + tag = "icon-direction_eng (WEST)" + }, +/obj/structure/sign/directions/medical{ + pixel_x = -32; + pixel_y = -32 + }, +/obj/structure/sign/directions/science{ + pixel_x = -32; + pixel_y = -40 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aRR" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"aRS" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + icon_state = "vent_map" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"aRT" = ( +/obj/machinery/door/poddoor/shutters{ + id = "charge shutter"; + name = "recharging room shutter" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/medical/robotics) +"aRU" = ( +/obj/machinery/button/door{ + id = "charge shutter"; + name = "recharger room shutter button"; + pixel_y = 24 + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/medical/robotics) +"aRV" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/medical/robotics) +"aRW" = ( +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/medical/robotics) +"aRX" = ( +/obj/machinery/recharge_station, +/obj/machinery/camera/autoname, +/turf/open/floor/plasteel, +/area/medical/robotics) +"aRY" = ( +/obj/item/clothing/head/cone, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aRZ" = ( +/obj/item/clothing/head/cone, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aSa" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Testing Lab APC"; + pixel_x = -24 + }, +/obj/structure/cable/cyan, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"aSb" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 8 + }, +/area/toxins/misc_lab) +"aSc" = ( +/obj/structure/girder/reinforced, +/obj/structure/grille, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"aSd" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/monkeycubes, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aSe" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aSf" = ( +/obj/structure/table/wood, +/obj/item/weapon/dice, +/obj/item/weapon/dice, +/obj/item/weapon/dice, +/obj/item/weapon/dice, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"aSg" = ( +/obj/structure/table/optable, +/obj/item/weapon/surgical_drapes, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aSh" = ( +/obj/structure/table, +/obj/item/weapon/cautery, +/obj/item/weapon/surgicaldrill, +/obj/item/weapon/circular_saw{ + pixel_y = 9 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aSi" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance door"; + req_access_txt = "12" + }, +/turf/open/floor/plasteel/white, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aSj" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aSk" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aSl" = ( +/obj/structure/tank_dispenser/oxygen{ + layer = 2.9; + pixel_x = -1; + pixel_y = 2 + }, +/obj/machinery/camera/autoname{ + icon_state = "camera"; + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/warden) +"aSm" = ( +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/turf/open/floor/plasteel/black, +/area/security/warden) +"aSn" = ( +/obj/machinery/door/airlock/glass_security{ + name = "armory door"; + req_access_txt = "3"; + req_one_access_txt = "0" + }, +/turf/open/floor/plasteel/black, +/area/security/warden) +"aSo" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/security/warden) +"aSp" = ( +/obj/machinery/computer/camera_advanced/xenobio, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aSq" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"aSr" = ( +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/security/warden) +"aSs" = ( +/obj/machinery/door/airlock/glass_security{ + name = "armory door"; + req_access_txt = "3"; + req_one_access_txt = "0" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"aSt" = ( +/obj/effect/landmark/start{ + name = "Head of Security" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"aSu" = ( +/obj/structure/bookcase/random/fiction, +/turf/open/floor/wood, +/area/library) +"aSv" = ( +/obj/structure/table, +/obj/machinery/recharger{ + pixel_x = -5 + }, +/obj/machinery/recharger{ + pixel_x = 5 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"aSw" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/cyan{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/security/brig) +"aSx" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/flasher{ + id = "permaflash"; + pixel_y = 28 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aSy" = ( +/obj/machinery/computer/arcade/orion_trail, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aSz" = ( +/obj/structure/table, +/obj/item/toy/carpplushie{ + attack_verb = list("bitten","pecked","wing slapped"); + desc = "An adorable stuffed toy that resembles a parrot."; + icon = 'icons/mob/animal.dmi'; + icon_state = "parrot_sit"; + name = "parrot plushie" + }, +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aSA" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{ + pixel_y = 7 + }, +/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/item/clothing/neck/stethoscope, +/obj/machinery/camera/autoname{ + icon_state = "camera"; + dir = 4 + }, +/obj/item/device/healthanalyzer, +/obj/item/device/healthanalyzer, +/obj/item/device/healthanalyzer, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aSB" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 4 + }, +/area/medical/medbay) +"aSC" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + icon_state = "connector_map"; + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plasteel/black, +/area/medical/medbay) +"aSD" = ( +/obj/machinery/sleeper{ + dir = 4; + icon_state = "sleeper-open" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/black, +/area/medical/medbay) +"aSE" = ( +/turf/open/floor/plasteel/warnwhite{ + dir = 8 + }, +/area/medical/medbay) +"aSF" = ( +/obj/machinery/door/airlock/glass{ + name = "glass door" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aSG" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/mob/living/simple_animal/bot/medbot{ + auto_patrol = 1; + name = "Medibird" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"aSH" = ( +/turf/open/floor/plasteel/purple/side{ + dir = 8 + }, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"aSI" = ( +/obj/structure/bookcase/random/reference, +/turf/open/floor/wood, +/area/library) +"aSJ" = ( +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"aSK" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"aSL" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"aSM" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"aSN" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"aSO" = ( +/obj/machinery/camera/autoname{ + dir = 1; + network = list("SS13") + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"aSP" = ( +/obj/machinery/door/poddoor/shutters{ + id = "charge shutter"; + name = "recharging room shutter" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/medical/robotics) +"aSQ" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/medical/robotics) +"aSR" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/medical/robotics) +"aSS" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 8 + }, +/turf/closed/wall, +/area/maintenance/asmaint2) +"aST" = ( +/obj/structure/bookcase/random/nonfiction, +/turf/open/floor/wood, +/area/library) +"aSU" = ( +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"aSV" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + icon_state = "vent_map" + }, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"aSW" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"aSX" = ( +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/warning/corner, +/area/toxins/misc_lab) +"aSY" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/magnetic_controller{ + autolink = 1 + }, +/turf/open/floor/plating, +/area/toxins/misc_lab) +"aSZ" = ( +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/toxins/misc_lab) +"aTa" = ( +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/toxins/misc_lab) +"aTb" = ( +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/toxins/xenobiology) +"aTc" = ( +/obj/machinery/portable_atmospherics/canister/toxins, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/toxins/xenobiology) +"aTd" = ( +/obj/machinery/computer/operating, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aTe" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/plasteel/whitebot, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aTf" = ( +/turf/open/floor/plasteel/white, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aTg" = ( +/obj/structure/easel, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aTh" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/easel, +/turf/open/floor/plasteel, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aTi" = ( +/obj/item/weapon/canvas/twentythreeXtwentythree, +/obj/item/weapon/canvas/twentythreeXtwentythree, +/obj/item/weapon/canvas/twentythreeXtwentythree, +/obj/item/weapon/canvas/twentythreeXnineteen, +/obj/item/weapon/canvas/twentythreeXnineteen, +/obj/item/weapon/canvas/twentythreeXnineteen, +/obj/item/weapon/canvas/nineteenXnineteen, +/obj/item/weapon/canvas/nineteenXnineteen, +/obj/item/weapon/canvas/nineteenXnineteen, +/obj/item/weapon/canvas, +/obj/item/weapon/canvas, +/obj/item/weapon/canvas, +/obj/item/toy/crayon/rainbow, +/obj/item/toy/crayon/rainbow, +/obj/item/toy/crayon/rainbow, +/obj/structure/closet/crate/trashcart{ + desc = "A heavy, metal cart with wheels."; + name = "paint cart" + }, +/turf/open/floor/plasteel, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aTj" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + icon_state = "vent_map"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aTk" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aTl" = ( +/obj/machinery/suit_storage_unit/security, +/turf/open/floor/plasteel/black, +/area/security/warden) +"aTm" = ( +/obj/structure/closet{ + name = "Evidence Locker" + }, +/turf/open/floor/plasteel/black, +/area/security/warden) +"aTn" = ( +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/warning, +/area/security/warden) +"aTo" = ( +/turf/open/floor/plasteel/warning, +/area/security/warden) +"aTp" = ( +/turf/open/floor/plasteel/warning/corner{ + dir = 1 + }, +/area/security/warden) +"aTq" = ( +/turf/open/floor/plasteel, +/area/security/warden) +"aTr" = ( +/obj/structure/closet{ + name = "chemical locker" + }, +/obj/item/weapon/reagent_containers/glass/beaker/noreact, +/obj/item/weapon/reagent_containers/glass/bottle/cyanide, +/obj/item/weapon/reagent_containers/glass/bottle/chloralhydrate, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"aTs" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-05"; + layer = 4.1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"aTt" = ( +/obj/structure/table, +/obj/machinery/recharger, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"aTu" = ( +/obj/structure/table, +/obj/machinery/button/door{ + id = "brig window shutter"; + name = "brig window shutter button" + }, +/obj/machinery/button/door{ + id = "security lockdown"; + name = "brig blast door button"; + pixel_y = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"aTv" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/cyan{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/security/brig) +"aTw" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/mob/living/carbon/monkey{ + name = "Crimelord Pon Pon"; + unique_name = 0 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aTx" = ( +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aTy" = ( +/obj/structure/bed, +/turf/open/floor/plasteel, +/area/security/brig) +"aTz" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aTA" = ( +/obj/effect/landmark{ + name = "lightsout" + }, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/open/floor/plasteel/warnwhite/corner{ + dir = 8 + }, +/area/medical/medbay) +"aTB" = ( +/obj/item/device/radio/beacon, +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/medical/medbay) +"aTC" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + icon_state = "vent_map"; + dir = 1 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/medical/medbay) +"aTD" = ( +/turf/open/floor/plasteel/warnwhite/corner{ + dir = 4 + }, +/area/medical/medbay) +"aTE" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"aTF" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"aTG" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"aTH" = ( +/obj/structure/bookcase/random/religion, +/turf/open/floor/wood, +/area/library) +"aTI" = ( +/obj/structure/bookcase/random/adult, +/turf/open/floor/wood, +/area/library) +"aTJ" = ( +/obj/structure/bed, +/obj/item/clothing/suit/apron/chef, +/obj/item/clothing/suit/apron/chef, +/turf/open/floor/plasteel/white, +/area/maintenance/asmaint2) +"aTK" = ( +/turf/closed/wall, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"aTL" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"aTM" = ( +/obj/structure/closet/crate/hydroponics, +/obj/item/weapon/shovel/spade, +/obj/item/weapon/wrench, +/obj/item/weapon/reagent_containers/glass/bucket, +/obj/item/weapon/wirecutters, +/obj/item/weapon/reagent_containers/glass/bucket, +/obj/item/weapon/reagent_containers/glass/bucket, +/obj/item/weapon/twohanded/required/chainsaw, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 9 + }, +/area/hydroponics) +"aTN" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"aTO" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"aTP" = ( +/obj/effect/landmark/start{ + name = "Scientist" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"aTQ" = ( +/obj/effect/landmark/start{ + name = "Scientist" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/toxins/misc_lab) +"aTR" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plating, +/area/toxins/misc_lab) +"aTS" = ( +/obj/machinery/camera/autoname{ + icon_state = "camera"; + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"aTT" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/asmaint2) +"aTU" = ( +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aTV" = ( +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aTW" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/warnwhite{ + dir = 8 + }, +/area/toxins/xenobiology) +"aTX" = ( +/obj/structure/rack, +/obj/item/weapon/gun/energy/disabler{ + pixel_x = 0; + pixel_y = 5 + }, +/obj/item/weapon/gun/energy/disabler{ + pixel_x = 5 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/warden) +"aTY" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-06"; + level = 4.1 + }, +/turf/open/floor/plasteel/whitebot, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aTZ" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-06"; + level = 4.1 + }, +/turf/open/floor/plasteel/whitebot, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aUa" = ( +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aUb" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aUc" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aUd" = ( +/obj/structure/closet/wardrobe/red, +/obj/machinery/light, +/obj/item/clothing/under/skirt/red, +/obj/item/clothing/under/plaid_skirt, +/turf/open/floor/plasteel/black, +/area/security/warden) +"aUe" = ( +/obj/structure/rack, +/obj/item/clothing/suit/armor/laserproof, +/obj/item/weapon/gun/energy/ionrifle, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/security/warden) +"aUf" = ( +/obj/structure/rack, +/obj/item/weapon/gun/energy/temperature/security{ + pixel_x = -5; + pixel_y = 5 + }, +/obj/item/weapon/gun/energy/temperature/security, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/warden) +"aUg" = ( +/obj/structure/table, +/obj/item/weapon/storage/lockbox/loyalty, +/obj/item/weapon/storage/box/firingpins{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/weapon/storage/box/firingpins{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/security/warden) +"aUh" = ( +/obj/machinery/computer/secure_data, +/obj/machinery/camera/autoname{ + icon_state = "camera"; + dir = 5 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"aUi" = ( +/obj/machinery/door/airlock/glass_security{ + name = "central security door"; + req_one_access_txt = "1;2;4" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"aUj" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/newscaster/security_unit{ + pixel_x = -28 + }, +/obj/machinery/camera/autoname{ + icon_state = "camera"; + dir = 5 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aUk" = ( +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aUl" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-05"; + layer = 4.1 + }, +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aUm" = ( +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aUn" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aUo" = ( +/obj/machinery/power/apc{ + name = "Medbay APC"; + pixel_y = -24 + }, +/obj/structure/cable/cyan{ + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aUp" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"aUq" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/obj/item/weapon/reagent_containers/food/condiment/rice, +/obj/item/weapon/reagent_containers/food/condiment/flour, +/obj/item/weapon/reagent_containers/food/condiment/flour, +/obj/item/weapon/reagent_containers/food/condiment/flour, +/obj/item/weapon/kitchen/rollingpin, +/turf/open/floor/plasteel/white, +/area/crew_quarters/bar{ + name = "\improper Bar and Kitchen" + }) +"aUr" = ( +/turf/open/floor/plating/asteroid{ + name = "dirt" + }, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"aUs" = ( +/obj/machinery/mech_bay_recharge_port, +/obj/structure/cable/cyan{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel, +/area/medical/robotics) +"aUt" = ( +/turf/open/floor/mech_bay_recharge_floor, +/area/medical/robotics) +"aUu" = ( +/obj/machinery/computer/mech_bay_power_console, +/obj/structure/cable/cyan{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel, +/area/medical/robotics) +"aUv" = ( +/obj/machinery/shieldwallgen{ + req_access = null + }, +/turf/open/floor/plasteel/bot, +/area/toxins/misc_lab) +"aUw" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/bot, +/area/toxins/misc_lab) +"aUx" = ( +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plasteel/bot, +/area/toxins/misc_lab) +"aUy" = ( +/obj/machinery/chem_master, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"aUz" = ( +/obj/effect/landmark/start{ + name = "Scientist" + }, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"aUA" = ( +/obj/effect/landmark/start{ + name = "Scientist" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/toxins/misc_lab) +"aUB" = ( +/turf/open/floor/plating, +/area/toxins/misc_lab) +"aUC" = ( +/obj/machinery/magnetic_module, +/obj/effect/landmark{ + name = "blobstart" + }, +/obj/structure/target_stake, +/turf/open/floor/plasteel/bot{ + dir = 2 + }, +/area/toxins/misc_lab) +"aUD" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"aUE" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Science Maintenance APC"; + pixel_x = -24 + }, +/obj/structure/cable/cyan, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aUF" = ( +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aUG" = ( +/obj/machinery/door/airlock/external{ + req_access_txt = "13" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aUH" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/space, +/area/space) +"aUI" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/plasteel/whitebot, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aUJ" = ( +/mob/living/simple_animal/mouse/white, +/turf/open/floor/plasteel/white, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aUK" = ( +/obj/machinery/autolathe{ + name = "maint autolathe" + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aUL" = ( +/obj/item/stack/sheet/rglass{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/obj/item/device/flashlight, +/obj/structure/closet/crate, +/turf/open/floor/plasteel/bot, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aUM" = ( +/obj/item/weapon/grenade/barrier, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/security/warden) +"aUN" = ( +/obj/item/weapon/grenade/barrier, +/turf/open/floor/plasteel/black, +/area/security/warden) +"aUO" = ( +/obj/machinery/vending/security, +/turf/open/floor/plasteel/black, +/area/security/warden) +"aUP" = ( +/obj/machinery/door/airlock/glass_security{ + name = "permabrig door"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aUQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "perma shutter"; + name = "perma brig window shutter" + }, +/obj/structure/cable/cyan, +/turf/open/floor/plating, +/area/security/brig) +"aUR" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel/warnwhite/corner, +/area/medical/medbay) +"aUS" = ( +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/warnwhite, +/area/medical/medbay) +"aUT" = ( +/obj/machinery/computer/crew, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aUU" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aUV" = ( +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aUW" = ( +/obj/machinery/door/window/northright{ + name = "medbay door"; + req_access_txt = "5" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aUX" = ( +/obj/structure/flora/ausbushes/pointybush{ + icon_state = "pointybush_2"; + layer = 4.1; + name = "tree"; + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plating/asteroid{ + name = "dirt" + }, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"aUY" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/medical/robotics) +"aUZ" = ( +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/medical/robotics) +"aVa" = ( +/obj/effect/landmark{ + name = "blobstart" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/medical/robotics) +"aVb" = ( +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/medical/robotics) +"aVc" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/light/small, +/turf/open/floor/plasteel/bot, +/area/toxins/misc_lab) +"aVd" = ( +/obj/machinery/chem_dispenser/constructable, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"aVe" = ( +/obj/effect/landmark/start{ + name = "Scientist" + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"aVf" = ( +/obj/effect/landmark/start{ + name = "Scientist" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 8 + }, +/area/toxins/misc_lab) +"aVg" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/recharger, +/obj/item/weapon/gun/energy/laser/practice, +/obj/item/weapon/gun/energy/laser/practice, +/obj/item/weapon/gun/energy/laser/practice, +/obj/item/weapon/gun/energy/laser/practice, +/turf/open/floor/plating, +/area/toxins/misc_lab) +"aVh" = ( +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/toxins/misc_lab) +"aVi" = ( +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/toxins/misc_lab) +"aVj" = ( +/obj/structure/grille, +/turf/open/space, +/area/space) +"aVk" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-05"; + layer = 4.1 + }, +/turf/open/floor/plasteel/whitebot, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aVl" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/electrical, +/turf/open/floor/plasteel, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aVm" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aVn" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aVo" = ( +/obj/machinery/door/airlock/maintenance{ + name = "security maintenance door"; + req_one_access_txt = "12;63" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aVp" = ( +/obj/effect/spawner/lootdrop/crate_spawner, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aVq" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/brute, +/obj/item/weapon/storage/firstaid/fire{ + pixel_x = 5; + pixel_y = 5 + }, +/turf/open/floor/plasteel/white, +/area/security/warden) +"aVr" = ( +/obj/structure/closet/wardrobe/white/medical, +/obj/item/weapon/storage/box/bodybags, +/turf/open/floor/plasteel/white, +/area/security/warden) +"aVs" = ( +/obj/structure/closet{ + name = "chem implant closet" + }, +/obj/item/weapon/reagent_containers/glass/bottle/cyanide, +/obj/item/weapon/reagent_containers/glass/bottle/initropidril, +/obj/item/weapon/reagent_containers/glass/bottle/coniine, +/obj/item/weapon/reagent_containers/glass/bottle/sodium_thiopental, +/obj/item/weapon/storage/box/chemimp, +/obj/item/weapon/storage/box/trackimp, +/obj/item/weapon/gun/syringe, +/obj/item/weapon/storage/box/syringes, +/turf/open/floor/plasteel/white, +/area/security/warden) +"aVt" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular, +/obj/item/clothing/mask/surgical, +/obj/item/weapon/reagent_containers/spray/cleaner, +/obj/machinery/camera/autoname{ + icon_state = "camera"; + dir = 6 + }, +/obj/item/clothing/gloves/color/latex/nitrile, +/turf/open/floor/plasteel/white, +/area/security/warden) +"aVu" = ( +/obj/structure/closet/crate{ + name = "solar pack crate" + }, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/weapon/circuitboard/computer/solar_control, +/obj/item/weapon/electronics/tracker, +/obj/item/weapon/paper/solar, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"aVv" = ( +/obj/machinery/button/flasher{ + id = "permaflash"; + name = "perma flasher button"; + pixel_x = 0; + pixel_y = 28 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aVw" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "perma shutter"; + name = "perma brig window shutter" + }, +/turf/open/floor/plating, +/area/security/brig) +"aVx" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 4 + }, +/area/medical/medbay) +"aVy" = ( +/obj/machinery/iv_drip{ + density = 0 + }, +/turf/open/floor/plasteel, +/area/medical/medbay) +"aVz" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aVA" = ( +/obj/machinery/mech_bay_recharge_port, +/obj/structure/cable/cyan, +/turf/open/floor/plasteel, +/area/medical/robotics) +"aVB" = ( +/obj/machinery/computer/mech_bay_power_console, +/obj/structure/cable/cyan, +/turf/open/floor/plasteel, +/area/medical/robotics) +"aVC" = ( +/obj/item/weapon/coin/iron, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aVD" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/toxins/misc_lab) +"aVE" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-02"; + layer = 4.1 + }, +/turf/open/floor/plasteel/whitebot, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aVF" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-02"; + layer = 4.1 + }, +/turf/open/floor/plasteel/whitebot, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aVG" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel/white, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aVH" = ( +/obj/structure/table, +/obj/item/weapon/storage/belt/utility, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aVI" = ( +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/warning, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aVJ" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aVK" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 1 + }, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aVL" = ( +/obj/machinery/door/airlock/maintenance{ + name = "security maintenance door"; + req_one_access_txt = "12;63" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aVM" = ( +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aVN" = ( +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aVO" = ( +/obj/structure/table, +/obj/item/weapon/scalpel, +/obj/item/weapon/retractor{ + pixel_x = 0; + pixel_y = 5 + }, +/obj/item/weapon/hemostat, +/obj/machinery/light{ + dir = 8 + }, +/obj/item/weapon/surgical_drapes, +/turf/open/floor/plasteel/white, +/area/security/warden) +"aVP" = ( +/turf/open/floor/plasteel/white, +/area/security/warden) +"aVQ" = ( +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/turf/open/floor/plasteel/white, +/area/security/warden) +"aVR" = ( +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/white, +/area/security/warden) +"aVS" = ( +/obj/machinery/door/airlock/glass_security{ + name = "central security door"; + req_one_access_txt = "1;2;4" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/security/warden) +"aVT" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/warden) +"aVU" = ( +/obj/machinery/button/door{ + id = "perma shutter"; + name = "perma window button"; + pixel_x = 24 + }, +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aVV" = ( +/turf/closed/wall, +/area/medical/virology) +"aVW" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "viro shutter"; + name = "viro shutter" + }, +/turf/open/floor/plating, +/area/medical/virology) +"aVX" = ( +/turf/closed/wall/r_wall, +/area/medical/medbay) +"aVY" = ( +/obj/machinery/camera/autoname{ + icon_state = "camera"; + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aVZ" = ( +/obj/machinery/computer/med_data, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aWa" = ( +/obj/structure/flora/ausbushes/pointybush{ + layer = 4.1; + name = "tree"; + pixel_x = -8; + pixel_y = 11 + }, +/turf/open/floor/plating/asteroid{ + name = "dirt" + }, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"aWb" = ( +/turf/closed/wall/mineral/sandstone, +/area/maintenance/asmaint2) +"aWc" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-17"; + layer = 4.1 + }, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"aWd" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning/corner, +/area/toxins/misc_lab) +"aWe" = ( +/obj/machinery/camera/autoname, +/turf/open/floor/engine, +/area/toxins/misc_lab) +"aWf" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/engine, +/area/toxins/misc_lab) +"aWg" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/maintenance/asmaint2) +"aWh" = ( +/obj/structure/table, +/obj/machinery/recharger, +/turf/open/floor/plasteel/showroomfloor, +/area/maintenance/asmaint2) +"aWi" = ( +/obj/structure/table, +/obj/item/device/flashlight/seclite, +/obj/item/clothing/suit/armor/vest, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/weapon/restraints/legcuffs/beartrap, +/obj/item/weapon/restraints/legcuffs/beartrap, +/turf/open/floor/plasteel/showroomfloor, +/area/maintenance/asmaint2) +"aWj" = ( +/obj/item/weapon/circuitboard/computer/security, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aWk" = ( +/obj/structure/window/reinforced, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-17"; + layer = 4.1 + }, +/turf/open/floor/plasteel/whitebot, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aWl" = ( +/obj/machinery/vending/assist, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aWm" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/fyellow, +/obj/item/clothing/gloves/color/fyellow, +/obj/item/clothing/gloves/color/fyellow, +/turf/open/floor/plasteel/warning, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aWn" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "Security Maintenance APC"; + pixel_x = 24 + }, +/obj/structure/cable/cyan, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aWo" = ( +/obj/structure/table, +/obj/item/weapon/cautery, +/obj/item/weapon/surgicaldrill, +/obj/item/weapon/circular_saw{ + pixel_y = 9 + }, +/turf/open/floor/plasteel/white, +/area/security/warden) +"aWp" = ( +/obj/structure/bodycontainer/morgue, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/turf/open/floor/plasteel/white, +/area/security/warden) +"aWq" = ( +/turf/open/floor/plasteel/whitebot/delivery, +/area/security/warden) +"aWr" = ( +/obj/machinery/power/apc{ + name = "Brig Control APC"; + pixel_y = -24 + }, +/obj/structure/cable/cyan, +/mob/living/simple_animal/pet/dog/pug{ + desc = "It's security veteran Lucky. Super adorable."; + name = "Lucky" + }, +/turf/open/floor/plasteel/white, +/area/security/warden) +"aWs" = ( +/obj/structure/closet/bombcloset, +/turf/open/floor/plasteel/black, +/area/security/warden) +"aWt" = ( +/obj/structure/closet/l3closet/security, +/turf/open/floor/plasteel/black, +/area/security/warden) +"aWu" = ( +/obj/structure/closet/secure_closet/warden, +/obj/item/clothing/glasses/hud/security/sunglasses/eyepatch, +/obj/item/clothing/under/rank/head_of_security/alt{ + name = "security turtleneck" + }, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/item/weapon/cartridge/hos, +/obj/item/weapon/cartridge/hos, +/obj/item/weapon/stamp/hos, +/obj/item/clothing/suit/armor/hos, +/obj/item/clothing/suit/armor/hos/trenchcoat, +/turf/open/floor/plasteel/black, +/area/security/warden) +"aWv" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Brig APC"; + pixel_x = -24 + }, +/obj/structure/cable/cyan{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aWw" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aWx" = ( +/obj/structure/table, +/obj/item/weapon/wrench, +/obj/item/clothing/mask/breath/medical, +/obj/item/weapon/tank/internals/anesthetic, +/obj/item/clothing/mask/muzzle, +/obj/item/clothing/glasses/sunglasses/blindfold, +/turf/open/floor/plasteel, +/area/security/brig) +"aWy" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/monkeycubes, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"aWz" = ( +/obj/structure/bed, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"aWA" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 4 + }, +/area/medical/medbay) +"aWB" = ( +/obj/structure/closet/crate/freezer, +/obj/item/weapon/reagent_containers/blood/empty, +/obj/item/weapon/reagent_containers/blood/empty{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/weapon/reagent_containers/blood/AMinus, +/obj/item/weapon/reagent_containers/blood/BMinus{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/weapon/reagent_containers/blood/BPlus{ + pixel_x = 1; + pixel_y = 2 + }, +/obj/item/weapon/reagent_containers/blood/OMinus, +/obj/item/weapon/reagent_containers/blood/OPlus{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/weapon/reagent_containers/blood/random, +/obj/item/weapon/reagent_containers/blood/random, +/obj/item/weapon/reagent_containers/blood/random, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel, +/area/medical/medbay) +"aWC" = ( +/obj/machinery/door/airlock/medical{ + name = "surgery airlock"; + req_one_access_txt = "5;45" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aWD" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/camera/autoname{ + icon_state = "camera"; + dir = 5 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + icon_state = "vent_map"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"aWE" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"aWF" = ( +/turf/open/floor/plating/asteroid{ + name = "dirt" + }, +/turf/closed/wall/shuttle{ + icon_state = "swall_f6"; + dir = 2 + }, +/area/shuttle/arrival) +"aWG" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/arrival) +"aWH" = ( +/obj/item/device/assembly/mousetrap/armed, +/turf/open/floor/plasteel, +/area/toxins/xenobiology) +"aWI" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/arrival) +"aWJ" = ( +/turf/open/floor/plating/asteroid{ + name = "dirt" + }, +/turf/closed/wall/shuttle{ + dir = 2; + icon_state = "swall_f10"; + layer = 2 + }, +/area/shuttle/arrival) +"aWK" = ( +/turf/open/floor/plating{ + icon_plating = "asteroidplating"; + icon_state = "asteroidplating" + }, +/area/maintenance/asmaint2) +"aWL" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating{ + icon_plating = "asteroidplating"; + icon_state = "asteroidplating" + }, +/area/maintenance/asmaint2) +"aWM" = ( +/turf/open/floor/plasteel/asteroid, +/area/maintenance/asmaint2) +"aWN" = ( +/obj/structure/table, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"aWO" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"aWP" = ( +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/toxins/misc_lab) +"aWQ" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/toxins/misc_lab) +"aWR" = ( +/obj/machinery/telepad, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/item/device/gps/science, +/turf/open/floor/engine, +/area/toxins/misc_lab) +"aWS" = ( +/obj/item/device/radio/beacon, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/toxins/misc_lab) +"aWT" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/warning/corner, +/area/maintenance/asmaint2) +"aWU" = ( +/obj/structure/table, +/obj/item/clothing/under/rank/security, +/obj/item/weapon/reagent_containers/spray/pepper, +/obj/item/weapon/melee/baton/cattleprod, +/turf/open/floor/plasteel/showroomfloor, +/area/maintenance/asmaint2) +"aWV" = ( +/obj/item/device/flashlight/seclite, +/turf/open/floor/plasteel/showroomfloor, +/area/maintenance/asmaint2) +"aWW" = ( +/turf/open/floor/plasteel/showroomfloor, +/area/maintenance/asmaint2) +"aWX" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/white, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aWY" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aWZ" = ( +/obj/machinery/vending/snack, +/turf/open/floor/plasteel/white, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aXa" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + icon_state = "vent_map"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aXb" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "interro shutter"; + name = "interrogation shutter" + }, +/turf/open/floor/plating, +/area/security/warden) +"aXc" = ( +/obj/machinery/door/airlock/security{ + name = "central security door"; + req_one_access_txt = "1;2;4" + }, +/turf/open/floor/plasteel/black, +/area/security/warden) +"aXd" = ( +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-02"; + layer = 4.1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aXe" = ( +/obj/structure/closet/wardrobe/orange, +/turf/open/floor/plasteel, +/area/security/brig) +"aXf" = ( +/turf/open/floor/plasteel/white, +/area/medical/virology) +"aXg" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warnwhite/corner{ + dir = 8 + }, +/area/medical/medbay) +"aXh" = ( +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/medical/medbay) +"aXi" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall3"; + dir = 2 + }, +/area/shuttle/arrival) +"aXj" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/arrival) +"aXk" = ( +/obj/machinery/vending/clothing, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/arrival) +"aXl" = ( +/obj/machinery/computer/arcade, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/arrival) +"aXm" = ( +/obj/structure/closet/wardrobe/grey, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/arrival) +"aXn" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/arrival) +"aXo" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/arrival) +"aXp" = ( +/turf/open/floor/plasteel/shuttle, +/area/shuttle/arrival) +"aXq" = ( +/turf/open/floor/plating/asteroid{ + name = "dirt" + }, +/area/maintenance/asmaint2) +"aXr" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"aXs" = ( +/obj/structure/closet{ + name = "chemical locker" + }, +/obj/item/weapon/reagent_containers/glass/bottle/formaldehyde, +/obj/item/weapon/reagent_containers/glass/bottle/diethylamine, +/obj/item/weapon/reagent_containers/glass/bottle/curare, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"aXt" = ( +/obj/machinery/computer/telescience, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"aXu" = ( +/obj/item/device/multitool, +/turf/open/floor/plasteel/warning/corner{ + dir = 8 + }, +/area/toxins/misc_lab) +"aXv" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/maintenance/asmaint2) +"aXw" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/maintenance/asmaint2) +"aXx" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance door"; + req_access_txt = "12" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/maintenance/asmaint2) +"aXy" = ( +/obj/item/clothing/neck/stethoscope, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aXz" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aXA" = ( +/obj/structure/table, +/obj/item/weapon/storage/crayons, +/turf/open/floor/plasteel/white, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aXB" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin{ + pixel_x = 2; + pixel_y = 6 + }, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/white, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aXC" = ( +/obj/structure/table, +/obj/item/weapon/flamethrower, +/turf/open/floor/plasteel/white, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aXD" = ( +/obj/structure/table, +/obj/item/stack/sheet/mineral/sandstone{ + amount = 10 + }, +/obj/item/device/camera, +/turf/open/floor/plasteel/white, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aXE" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/white, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aXF" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel/white, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aXG" = ( +/obj/machinery/navbeacon{ + codes = ""; + codes_txt = "delivery;dir=2"; + freq = 1400; + location = "Security Maint"; + name = "navigation beacon" + }, +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aXH" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aXI" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aXJ" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/mob/living/simple_animal/mouse/brown, +/turf/open/floor/plasteel, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aXK" = ( +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plating, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aXL" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-05"; + layer = 4.1 + }, +/turf/open/floor/plasteel/black, +/area/security/warden) +"aXM" = ( +/obj/structure/closet{ + name = "truth incentive tool locker" + }, +/obj/item/weapon/gavelblock, +/obj/item/weapon/gavelhammer, +/obj/item/device/laser_pointer, +/obj/item/weapon/reagent_containers/food/condiment/saltshaker, +/obj/item/clothing/head/rabbitears, +/obj/item/toy/carpplushie{ + attack_verb = list("bitten","pecked","wing slapped"); + desc = "An adorable stuffed toy that resembles a parrot."; + icon = 'icons/mob/animal.dmi'; + icon_state = "parrot_sit"; + name = "parrot plushie" + }, +/obj/item/weapon/bikehorn/rubberducky, +/obj/item/weapon/bikehorn/airhorn, +/turf/open/floor/plasteel/black, +/area/security/warden) +"aXN" = ( +/obj/machinery/door/airlock/security{ + name = "central security door"; + req_one_access_txt = "1;2;4" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/wood, +/area/security/brig) +"aXO" = ( +/obj/machinery/door/airlock/glass_virology{ + name = "virology airlock"; + req_access_txt = "39" + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"aXP" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/medical/virology) +"aXQ" = ( +/obj/structure/table, +/obj/item/weapon/scalpel, +/obj/item/weapon/retractor{ + pixel_x = 0; + pixel_y = 5 + }, +/obj/item/weapon/hemostat, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aXR" = ( +/obj/structure/table/optable, +/obj/item/weapon/surgical_drapes, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aXS" = ( +/obj/machinery/camera/autoname{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aXT" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/landmark{ + name = "JoinLate" + }, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/arrival) +"aXU" = ( +/obj/effect/landmark{ + name = "JoinLate" + }, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/arrival) +"aXV" = ( +/obj/item/device/flashlight/seclite{ + name = "dusty seclite"; + on = 1 + }, +/turf/open/floor/plating/asteroid{ + name = "dirt" + }, +/area/maintenance/asmaint2) +"aXW" = ( +/obj/item/weapon/circuitboard/computer/card, +/turf/open/floor/plasteel/showroomfloor, +/area/maintenance/asmaint2) +"aXX" = ( +/obj/structure/frame/computer, +/turf/open/floor/plasteel/showroomfloor, +/area/maintenance/asmaint2) +"aXY" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-16"; + layer = 4.1 + }, +/turf/open/floor/plasteel/white, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aXZ" = ( +/turf/open/floor/plasteel/bot, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aYa" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aYb" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/warden) +"aYc" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp, +/turf/open/floor/plasteel/black, +/area/security/warden) +"aYd" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/security/warden) +"aYe" = ( +/obj/machinery/button/door{ + id = "interro shutter"; + name = "interrogation shutter button"; + pixel_y = -24 + }, +/turf/open/floor/plasteel/black, +/area/security/warden) +"aYf" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/wood, +/area/security/brig) +"aYg" = ( +/obj/machinery/computer/secure_data, +/turf/open/floor/wood, +/area/security/brig) +"aYh" = ( +/obj/machinery/computer/med_data, +/turf/open/floor/wood, +/area/security/brig) +"aYi" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/glass/beaker/large{ + pixel_y = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"aYj" = ( +/obj/machinery/smartfridge/chemistry/virology, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"aYk" = ( +/obj/machinery/button/door{ + id = "viro shutter"; + name = "virology shutter button"; + pixel_y = 24 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"aYl" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Virology APC"; + pixel_y = 24 + }, +/obj/structure/cable/cyan{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"aYm" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"aYn" = ( +/obj/machinery/door/airlock/virology{ + name = "virology airlock"; + req_access_txt = "39" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aYo" = ( +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aYp" = ( +/obj/structure/table, +/obj/item/weapon/cautery, +/obj/item/weapon/surgicaldrill, +/obj/item/weapon/circular_saw{ + pixel_y = 9 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aYq" = ( +/obj/machinery/computer/operating, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aYr" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"aYs" = ( +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"aYt" = ( +/obj/structure/statue/sandstone/assistant{ + anchored = 1 + }, +/turf/open/floor/plating{ + icon_plating = "asteroidplating"; + icon_state = "asteroidplating" + }, +/area/maintenance/asmaint2) +"aYu" = ( +/obj/effect/landmark{ + name = "revenantspawn" + }, +/turf/open/floor/plating/asteroid{ + name = "dirt" + }, +/area/maintenance/asmaint2) +"aYv" = ( +/obj/item/clothing/head/cone, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/maintenance/asmaint2) +"aYw" = ( +/obj/structure/cable/cyan{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aYx" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/maintenance/asmaint2) +"aYy" = ( +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 8 + }, +/area/maintenance/asmaint2) +"aYz" = ( +/obj/item/clothing/shoes/jackboots, +/turf/open/floor/plasteel/showroomfloor, +/area/maintenance/asmaint2) +"aYA" = ( +/obj/item/stack/sheet/glass, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aYB" = ( +/obj/structure/table/wood, +/obj/machinery/chem_dispenser/drinks/beer, +/turf/open/floor/plating, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aYC" = ( +/obj/structure/table/wood, +/obj/machinery/chem_dispenser/drinks, +/turf/open/floor/plating, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aYD" = ( +/obj/structure/table/wood, +/obj/item/weapon/gun/projectile/revolver/doublebarrel/improvised, +/turf/open/floor/wood, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aYE" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance door"; + req_access_txt = "12" + }, +/turf/open/floor/wood, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aYF" = ( +/obj/machinery/door/airlock/maintenance{ + name = "security maintenance door"; + req_one_access_txt = "12;63" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aYG" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/wood, +/area/security/brig) +"aYH" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Detective" + }, +/turf/open/floor/wood, +/area/security/brig) +"aYI" = ( +/obj/structure/table/wood, +/obj/machinery/recharger, +/turf/open/floor/wood, +/area/security/brig) +"aYJ" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/syringes, +/obj/item/stack/sheet/mineral/plasma{ + layer = 2.9 + }, +/obj/item/stack/sheet/mineral/plasma{ + layer = 2.9 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"aYK" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"aYL" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/camera/autoname{ + icon_state = "camera"; + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aYM" = ( +/obj/structure/closet/secure_closet/medical2, +/obj/item/clothing/glasses/sunglasses/blindfold, +/obj/item/clothing/glasses/sunglasses/blindfold, +/obj/item/clothing/mask/muzzle, +/obj/item/clothing/mask/muzzle, +/obj/item/clothing/suit/straight_jacket, +/obj/item/clothing/suit/straight_jacket, +/obj/item/clothing/suit/apron/surgical, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aYN" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aYO" = ( +/obj/effect/landmark{ + name = "JoinLate" + }, +/obj/item/device/radio/beacon, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/arrival) +"aYP" = ( +/obj/item/clothing/head/cone, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/maintenance/asmaint2) +"aYQ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + icon_state = "vent_map"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aYR" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/maintenance/asmaint2) +"aYS" = ( +/obj/machinery/navbeacon{ + codes = ""; + codes_txt = "delivery;dir=8"; + freq = 1400; + location = "Science Maint"; + name = "navigation beacon" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/asmaint2) +"aYT" = ( +/obj/structure/closet/cardboard, +/obj/item/weapon/coin/iron, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aYU" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aYV" = ( +/obj/structure/bed, +/obj/item/weapon/restraints/handcuffs, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aYW" = ( +/obj/machinery/flasher/portable, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aYX" = ( +/turf/open/floor/wood, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aYY" = ( +/mob/living/carbon/monkey{ + bruteloss = 100; + fireloss = 100; + health = -100; + name = "Mr. Deempisi"; + stat = 2; + unique_name = 0 + }, +/turf/open/floor/wood, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aYZ" = ( +/obj/structure/chair/stool, +/turf/open/floor/wood, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aZa" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass, +/turf/open/floor/wood, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aZb" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aZc" = ( +/obj/machinery/biogenerator, +/turf/open/floor/plasteel/white, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aZd" = ( +/obj/machinery/seed_extractor, +/turf/open/floor/plasteel/white, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aZe" = ( +/obj/structure/sink/kitchen{ + desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; + name = "old sink"; + pixel_y = 28 + }, +/obj/item/weapon/reagent_containers/spray/plantbgone, +/turf/open/floor/plasteel/white, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aZf" = ( +/obj/structure/closet/crate/secure/hydroponics{ + req_access_txt = "35" + }, +/obj/item/seeds/kudzu{ + potency = 0; + production = 8 + }, +/obj/item/seeds/chili/ghost, +/obj/item/seeds/berry/death, +/obj/item/device/gps, +/turf/open/floor/plasteel/white, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aZg" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/camera/autoname{ + icon_state = "camera"; + dir = 5 + }, +/turf/open/floor/wood, +/area/security/brig) +"aZh" = ( +/obj/structure/closet/secure_closet/detective, +/obj/item/device/camera/detective, +/turf/open/floor/wood, +/area/security/brig) +"aZi" = ( +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/security/brig) +"aZj" = ( +/obj/machinery/computer/pandemic{ + layer = 2.5; + pixel_x = -4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"aZk" = ( +/obj/structure/reagent_dispensers/virusfood{ + density = 0; + pixel_y = -32 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"aZl" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder{ + pixel_x = 0; + pixel_y = 8 + }, +/obj/machinery/camera/autoname{ + dir = 1; + network = list("SS13") + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"aZm" = ( +/obj/structure/table, +/obj/item/weapon/restraints/handcuffs, +/obj/item/weapon/melee/baton/cattleprod, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"aZn" = ( +/obj/machinery/button/door{ + id = "kitchen shutter"; + name = "kitchen shutter button"; + pixel_x = 24 + }, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/structure/table, +/obj/item/weapon/kitchen/knife, +/obj/machinery/reagentgrinder, +/turf/open/floor/plasteel/white, +/area/crew_quarters/bar{ + name = "\improper Bar and Kitchen" + }) +"aZo" = ( +/obj/machinery/newscaster{ + pixel_x = 28 + }, +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"aZp" = ( +/turf/closed/wall/r_wall, +/area/maintenance/asmaint) +"aZq" = ( +/obj/machinery/door/airlock/medical{ + name = "medbay airlock"; + req_access_txt = "5" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aZr" = ( +/turf/closed/wall, +/area/maintenance/asmaint) +"aZs" = ( +/obj/machinery/door/airlock/medical{ + name = "surgery airlock"; + req_one_access_txt = "5;45" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aZt" = ( +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"aZu" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "South Hallway APC"; + pixel_x = 24 + }, +/obj/structure/cable/cyan{ + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"aZv" = ( +/obj/machinery/camera/autoname{ + dir = 1; + network = list("SS13") + }, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/arrival) +"aZw" = ( +/obj/structure/spider/stickyweb, +/turf/open/floor/plating{ + icon_plating = "asteroidplating"; + icon_state = "asteroidplating" + }, +/area/maintenance/asmaint2) +"aZx" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/closed/wall, +/area/maintenance/asmaint2) +"aZy" = ( +/obj/machinery/door/airlock/maintenance{ + name = "science maintenance door"; + req_one_access_txt = "47;12;29" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aZz" = ( +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aZA" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass, +/turf/open/floor/wood, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aZB" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka, +/turf/open/floor/wood, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aZC" = ( +/obj/structure/chair/stool, +/turf/open/floor/plating, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aZD" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aZE" = ( +/obj/machinery/hydroponics/soil, +/obj/item/seeds/eggplant, +/turf/open/floor/plasteel/white, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aZF" = ( +/obj/machinery/hydroponics/soil, +/turf/open/floor/plasteel/white, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aZG" = ( +/obj/item/seeds/cherry, +/obj/item/seeds/chili/ghost, +/obj/item/seeds/carrot, +/obj/item/seeds/banana{ + potency = 80 + }, +/obj/item/seeds/harebell, +/obj/item/seeds/poppy/geranium, +/obj/item/seeds/poppy/geranium, +/obj/item/seeds/nettle, +/obj/item/seeds/nettle, +/turf/open/floor/plasteel/white, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aZH" = ( +/obj/item/weapon/reagent_containers/glass/bucket, +/obj/item/weapon/reagent_containers/glass/bucket, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/item/weapon/storage/bag/plants, +/obj/item/weapon/cultivator, +/turf/open/floor/plasteel/white, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aZI" = ( +/obj/machinery/door/airlock/security{ + name = "central security door"; + req_one_access_txt = "1;2;4" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aZJ" = ( +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/maintenance/asmaint) +"aZK" = ( +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/maintenance/asmaint) +"aZL" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aZM" = ( +/obj/machinery/door/airlock/maintenance{ + name = "medbay maintenance door"; + req_one_access_txt = "12;5;9;39;33" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aZN" = ( +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"aZO" = ( +/turf/open/floor/plating/asteroid{ + name = "dirt" + }, +/turf/closed/wall/shuttle{ + icon_state = "swall_f5"; + dir = 2 + }, +/area/shuttle/arrival) +"aZP" = ( +/obj/machinery/holopad, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"aZQ" = ( +/obj/machinery/camera/autoname{ + icon_state = "camera"; + dir = 5 + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"aZR" = ( +/turf/open/floor/plating/asteroid{ + name = "dirt" + }, +/turf/closed/wall/shuttle{ + icon_state = "swall_f9"; + dir = 2 + }, +/area/shuttle/arrival) +"aZS" = ( +/obj/item/device/soulstone/anybody/chaplain, +/turf/open/floor/plating{ + icon_plating = "asteroidplating"; + icon_state = "asteroidplating" + }, +/area/maintenance/asmaint2) +"aZT" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-17"; + layer = 4.1 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aZU" = ( +/obj/item/weapon/stock_parts/cell/high, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aZV" = ( +/obj/machinery/power/emitter, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aZW" = ( +/obj/machinery/power/emitter, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aZX" = ( +/obj/structure/closet/cardboard, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/obj/item/toy/toy_xeno, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"aZY" = ( +/obj/structure/table/wood/poker, +/obj/item/toy/cards/deck, +/turf/open/floor/wood, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"aZZ" = ( +/obj/item/weapon/reagent_containers/glass/rag, +/turf/open/floor/plating, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"baa" = ( +/obj/machinery/light, +/turf/open/floor/wood, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"bab" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/chanterelle, +/obj/item/weapon/reagent_containers/food/snacks/grown/chili, +/obj/item/weapon/reagent_containers/food/snacks/grown/cabbage, +/obj/item/weapon/reagent_containers/food/snacks/grown/potato, +/obj/item/weapon/reagent_containers/food/snacks/grown/poppy/geranium, +/obj/item/weapon/reagent_containers/food/snacks/grown/sugarcane, +/obj/item/weapon/reagent_containers/food/snacks/grown/wheat, +/obj/item/weapon/reagent_containers/food/snacks/grown/tomato, +/obj/item/weapon/reagent_containers/food/snacks/grown/rice, +/obj/item/weapon/reagent_containers/food/snacks/grown/banana, +/turf/open/floor/plasteel/white, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"bac" = ( +/obj/item/weapon/secbot_assembly, +/turf/open/floor/plating, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"bad" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"bae" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/maintenance/asmaint) +"baf" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bag" = ( +/obj/machinery/door/airlock/medical{ + name = "medbay airlock"; + req_access_txt = "5" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bah" = ( +/obj/machinery/door/airlock/glass_command{ + name = "bridge door"; + req_access_txt = "19" + }, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/escape) +"bai" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchen shutter"; + name = "kitchen shutter" + }, +/obj/machinery/holopad, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar{ + name = "\improper Bar and Kitchen" + }) +"baj" = ( +/obj/machinery/door/airlock/external, +/turf/open/floor/plating, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"bak" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_plating = "asteroidplating"; + icon_state = "asteroidplating" + }, +/area/maintenance/asmaint2) +"bal" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating{ + icon_plating = "asteroidplating"; + icon_state = "asteroidplating" + }, +/area/maintenance/asmaint2) +"bam" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"ban" = ( +/obj/structure/closet/cardboard, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/obj/item/weapon/coin/silver, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/maintenance/asmaint2) +"bao" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Medbay Maintenance APC"; + pixel_x = -24 + }, +/obj/structure/cable/cyan{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bap" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"baq" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/bodybags, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bar" = ( +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bas" = ( +/obj/structure/bodycontainer/morgue, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bat" = ( +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/medical/morgue) +"bau" = ( +/turf/closed/wall, +/area/medical/morgue) +"bav" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"baw" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"bax" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=4-CNW"; + location = "3-CSW"; + name = "bot patrol navigation beacon" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/obj/structure/sign/directions/engineering{ + dir = 1; + icon_state = "direction_eng"; + pixel_x = -32; + pixel_y = 40; + tag = "icon-direction_eng (NORTH)" + }, +/obj/structure/sign/directions/medical{ + dir = 4; + icon_state = "direction_med"; + pixel_x = -32; + pixel_y = 32 + }, +/obj/structure/sign/directions/evac{ + dir = 1; + icon_state = "direction_evac"; + pixel_x = -32; + pixel_y = 24; + tag = "icon-direction_evac (NORTH)" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bay" = ( +/obj/structure/sign/directions/science{ + pixel_x = 32; + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"baz" = ( +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"baA" = ( +/obj/item/weapon/relic, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"baB" = ( +/obj/effect/spawner/lootdrop{ + loot = list(/obj/effect/decal/cleanable/blood/old = 1, /mob/living/simple_animal/hostile/poison/giant_spider/nurse = 1); + name = "spider spawner" + }, +/turf/open/floor/plating{ + icon_plating = "asteroidplating"; + icon_state = "asteroidplating" + }, +/area/maintenance/asmaint2) +"baC" = ( +/obj/machinery/power/smes{ + name = "maint power storage unit" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"baD" = ( +/obj/structure/grille, +/obj/structure/cable/cyan{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"baE" = ( +/obj/structure/cable/cyan{ + icon_state = "0-2" + }, +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"baF" = ( +/obj/structure/cable/cyan{ + icon_state = "0-8" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"baG" = ( +/obj/structure/cable/cyan{ + icon_state = "0-8" + }, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"baH" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/maintenance/asmaint2) +"baI" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + icon_state = "vent_map"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/maintenance/asmaint2) +"baJ" = ( +/obj/effect/decal/cleanable/vomit/old, +/obj/item/trash/can, +/turf/open/floor/wood, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"baK" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin, +/turf/open/floor/wood, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"baL" = ( +/obj/item/weapon/paper/crumpled, +/turf/open/floor/wood, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"baM" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"baN" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"baO" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"baP" = ( +/obj/item/weapon/shovel/spade, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"baQ" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"baR" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + icon_state = "connector_map"; + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"baS" = ( +/turf/open/floor/plating, +/area/maintenance/asmaint) +"baT" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/maintenance/asmaint) +"baU" = ( +/obj/machinery/door/airlock/medical{ + name = "medbay airlock"; + req_access_txt = "5" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"baV" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"baW" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "Morgue APC"; + pixel_x = 24 + }, +/obj/structure/cable/cyan{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"baX" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/sign/directions/medical{ + pixel_x = 32; + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"baY" = ( +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"baZ" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"bba" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + icon_state = "vent_map"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"bbb" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=3-CSW"; + location = "2-CSE"; + name = "bot patrol navigation beacon"; + pixel_x = 0; + pixel_y = 0 + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-j2"; + dir = 1 + }, +/obj/structure/sign/directions/evac{ + dir = 1; + icon_state = "direction_evac"; + pixel_x = -32; + pixel_y = -40; + tag = "icon-direction_evac (NORTH)" + }, +/obj/structure/sign/directions/security{ + dir = 8; + icon_state = "direction_sec"; + pixel_x = -32; + pixel_y = -32; + tag = "icon-direction_sec (WEST)" + }, +/obj/structure/sign/directions/engineering{ + dir = 8; + icon_state = "direction_eng"; + pixel_x = -32; + pixel_y = -24; + tag = "icon-direction_eng (WEST)" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bbc" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"bbd" = ( +/obj/machinery/computer/camera_advanced/xenobio, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/toxins/xenobiology) +"bbe" = ( +/obj/item/stack/sheet/mineral/plasma{ + layer = 2.9 + }, +/turf/open/floor/plating{ + icon_plating = "asteroidplating"; + icon_state = "asteroidplating" + }, +/area/maintenance/asmaint2) +"bbf" = ( +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/structure/cable/cyan{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bbg" = ( +/obj/structure/grille, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/cable/cyan{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bbh" = ( +/obj/structure/grille, +/obj/structure/cable/cyan{ + icon_state = "0-2" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bbi" = ( +/obj/structure/table, +/obj/item/weapon/stock_parts/cell/potato, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bbj" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/fyellow, +/obj/item/clothing/gloves/color/fyellow, +/obj/item/clothing/gloves/color/fyellow, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bbk" = ( +/obj/machinery/door/airlock/external{ + req_access_txt = "13" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bbl" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/turf/open/floor/wood, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"bbm" = ( +/obj/structure/table/wood, +/obj/item/weapon/book/manual/wiki/security_space_law, +/turf/open/floor/wood, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"bbn" = ( +/obj/structure/chair/comfy/beige{ + dir = 8 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken6" + }, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"bbo" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/wood, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"bbp" = ( +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/mob/living/simple_animal/mouse/white, +/turf/open/floor/plasteel, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"bbq" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + icon_state = "vent_map"; + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"bbr" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"bbs" = ( +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"bbt" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bbu" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + icon_state = "vent_map" + }, +/turf/open/floor/plasteel, +/area/maintenance/asmaint) +"bbv" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/maintenance/asmaint) +"bbw" = ( +/obj/structure/bodycontainer/morgue, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bbx" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance door"; + req_access_txt = "12" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/maintenance/asmaint2) +"bby" = ( +/obj/structure/cable/cyan, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bbz" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bbA" = ( +/obj/structure/grille, +/obj/structure/cable/cyan{ + icon_state = "0-8" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/cable/cyan{ + icon_state = "2-4" + }, +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bbB" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bbC" = ( +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bbD" = ( +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/organ/gland/bloody = 7, /obj/item/organ/gland/bodysnatch = 4, /obj/item/organ/gland/egg = 7, /obj/item/organ/gland/emp = 3, /obj/item/organ/gland/mindshock = 5, /obj/item/organ/gland/plasma = 7, /obj/item/organ/gland/pop = 5, /obj/item/organ/gland/slime = 4, /obj/item/organ/gland/spiderman = 5, /obj/item/organ/gland/ventcrawling = 1, /obj/item/organ/body_egg/alien_embryo = 1, /obj/item/organ/hivelord_core = 2); + lootcount = 3; + name = "organ spawner" + }, +/obj/structure/closet/secure_closet{ + name = "xenobiology research materials locker"; + req_access_txt = "55" + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bbE" = ( +/mob/living/simple_animal/mouse/brown, +/turf/open/floor/wood, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"bbF" = ( +/obj/effect/spawner/lootdrop/crate_spawner, +/turf/open/floor/plating, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"bbG" = ( +/obj/structure/closet/crate{ + name = "solar pack crate" + }, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/weapon/circuitboard/computer/solar_control, +/obj/item/weapon/electronics/tracker, +/obj/item/weapon/paper/solar, +/turf/open/floor/plating, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"bbH" = ( +/obj/machinery/door/airlock/external{ + req_access_txt = "13" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"bbI" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"bbJ" = ( +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"bbK" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"bbL" = ( +/obj/machinery/door/airlock/maintenance{ + name = "security maintenance door"; + req_one_access_txt = "12;63" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"bbM" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bbN" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bbO" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/asmaint) +"bbP" = ( +/obj/machinery/door/airlock/maintenance{ + name = "medbay maintenance door"; + req_one_access_txt = "12;5;9;39;33" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/asmaint) +"bbQ" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, +/turf/open/floor/plasteel, +/area/maintenance/asmaint) +"bbR" = ( +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel, +/area/maintenance/asmaint) +"bbS" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/camera/autoname{ + icon_state = "camera"; + dir = 4 + }, +/obj/structure/table, +/obj/item/weapon/storage/box/gloves, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bbT" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bbU" = ( +/obj/machinery/navbeacon{ + codes = ""; + codes_txt = "delivery;dir=2"; + freq = 1400; + location = "Arrivals Building Area"; + name = "navigation beacon" + }, +/turf/open/floor/plasteel/delivery, +/area/maintenance/asmaint2) +"bbV" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/maintenance/asmaint2) +"bbW" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/maintenance/asmaint2) +"bbX" = ( +/obj/machinery/atmospherics/components/unary/tank/air, +/turf/open/floor/plasteel, +/area/maintenance/asmaint2) +"bbY" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel, +/area/maintenance/asmaint2) +"bbZ" = ( +/obj/item/stack/sheet/rglass{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/obj/item/device/flashlight, +/obj/structure/closet/crate, +/turf/open/floor/plasteel/bot, +/area/maintenance/asmaint2) +"bca" = ( +/obj/machinery/door/airlock/maintenance{ + name = "science maintenance door"; + req_one_access_txt = "47;12;29" + }, +/turf/open/floor/plating{ + icon_plating = "asteroidplating"; + icon_state = "asteroidplating" + }, +/area/maintenance/asmaint2) +"bcb" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/structure/cable/cyan, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bcc" = ( +/obj/structure/grille, +/obj/structure/cable/cyan, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bcd" = ( +/obj/item/weapon/twohanded/required/kirbyplants, +/turf/open/floor/wood, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"bce" = ( +/obj/structure/filingcabinet, +/turf/open/floor/wood, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"bcf" = ( +/obj/machinery/photocopier, +/turf/open/floor/wood, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"bcg" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"bch" = ( +/turf/open/floor/plasteel, +/area/maintenance/asmaint) +"bci" = ( +/obj/item/weapon/storage/box/lights/mixed, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bcj" = ( +/obj/machinery/shieldwallgen{ + req_access = null + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bck" = ( +/obj/structure/closet/cardboard, +/obj/item/stack/sheet/mineral/plasma{ + amount = 5 + }, +/obj/item/weapon/stock_parts/cell/high, +/obj/item/clothing/gloves/color/fyellow, +/turf/open/floor/plasteel, +/area/maintenance/asmaint2) +"bcl" = ( +/obj/machinery/light, +/obj/machinery/power/port_gen/pacman, +/turf/open/floor/plasteel, +/area/maintenance/asmaint2) +"bcm" = ( +/obj/machinery/power/port_gen/pacman, +/turf/open/floor/plasteel, +/area/maintenance/asmaint2) +"bcn" = ( +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/maintenance/asmaint2) +"bco" = ( +/obj/structure/closet/cardboard, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/obj/item/weapon/coin/silver, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bcp" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-02"; + layer = 4.1 + }, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plasteel, +/area/maintenance/asmaint2) +"bcq" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bcr" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bcs" = ( +/obj/item/device/radio/beacon, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bct" = ( +/obj/machinery/door/airlock/maintenance{ + name = "security maintenance door"; + req_one_access_txt = "12;63" + }, +/turf/open/floor/plasteel, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"bcu" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/asmaint) +"bcv" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/maintenance/asmaint) +"bcw" = ( +/obj/item/weapon/coin/iron, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bcx" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bcy" = ( +/obj/machinery/door/airlock/maintenance{ + name = "medbay maintenance door"; + req_one_access_txt = "12;5;9;39;33" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bcz" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + icon_state = "vent_map" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bcA" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/mob/living/simple_animal/mouse/brown, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bcB" = ( +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/maintenance/asmaint2) +"bcC" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/closed/mineral, +/area/space) +"bcD" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/turf/open/space, +/area/space) +"bcE" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel, +/area/maintenance/asmaint) +"bcF" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/asmaint) +"bcG" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bcH" = ( +/obj/machinery/door/airlock/maintenance{ + name = "medbay maintenance door"; + req_one_access_txt = "12;5;9;39;33" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bcI" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bcJ" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance door"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/asmaint2) +"bcK" = ( +/obj/machinery/shieldwallgen{ + req_access = null + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bcL" = ( +/obj/machinery/power/emitter, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bcM" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/closed/mineral, +/area/space) +"bcN" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 9 + }, +/turf/closed/mineral, +/area/space) +"bcO" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion"; + dir = 4 + }, +/turf/closed/wall/mineral/titanium/overspace, +/area/shuttle/transport) +"bcP" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/transport) +"bcQ" = ( +/obj/structure/window/shuttle, +/obj/structure/grille, +/turf/open/floor/plating, +/area/shuttle/transport) +"bcR" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/transport) +"bcS" = ( +/turf/closed/wall/mineral/titanium/overspace, +/area/shuttle/transport) +"bcT" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"bcU" = ( +/obj/machinery/door/airlock/medical{ + name = "medbay airlock"; + req_access_txt = "5" + }, +/turf/open/floor/plasteel/white, +/area/maintenance/asmaint) +"bcV" = ( +/obj/item/weapon/storage/box/lights/mixed, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bcW" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bcX" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bcY" = ( +/obj/structure/table, +/obj/item/weapon/circuitboard/machine/autolathe, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bcZ" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/electrical, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bda" = ( +/turf/open/floor/plasteel/shuttle, +/turf/closed/wall/shuttle/interior{ + icon_state = "swall_f9" + }, +/area/shuttle/transport) +"bdb" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/transport) +"bdc" = ( +/obj/machinery/computer/shuttle/ferry/request, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/transport) +"bdd" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/transport) +"bde" = ( +/turf/open/floor/plasteel/white, +/area/maintenance/asmaint) +"bdf" = ( +/obj/machinery/door/airlock/shuttle, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/transport) +"bdg" = ( +/turf/open/floor/plasteel/shuttle, +/area/shuttle/transport) +"bdh" = ( +/obj/machinery/door/airlock/shuttle, +/obj/docking_port/mobile{ + dir = 8; + dwidth = 2; + height = 12; + id = "ferry"; + name = "ferry shuttle"; + roundstart_move = "ferry_away"; + port_angle = 180; + width = 5 + }, +/obj/docking_port/stationary{ + dir = 8; + dwidth = 2; + height = 12; + id = "ferry_home"; + name = "port bay 2"; + turf_type = /turf/open/space; + width = 5 + }, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/transport) +"bdi" = ( +/obj/machinery/door/airlock/external{ + req_access_txt = "13" + }, +/turf/open/floor/plating, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"bdj" = ( +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"bdk" = ( +/obj/machinery/door/airlock/external{ + req_access_txt = "13" + }, +/turf/open/floor/plasteel, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"bdl" = ( +/obj/machinery/washing_machine, +/turf/open/floor/plasteel/white, +/area/maintenance/asmaint) +"bdm" = ( +/obj/item/weapon/watertank/janitor, +/obj/structure/mirror{ + pixel_y = 28 + }, +/obj/structure/closet/crate, +/turf/open/floor/plasteel/white, +/area/maintenance/asmaint) +"bdn" = ( +/obj/structure/lattice, +/obj/effect/landmark{ + name = "ninjaspawn" + }, +/turf/open/space, +/area/space) +"bdo" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion"; + dir = 4 + }, +/turf/closed/wall/shuttle{ + icon_state = "swall_s5"; + dir = 2 + }, +/area/shuttle/transport) +"bdp" = ( +/turf/open/floor/plasteel/shuttle, +/turf/closed/wall/shuttle/interior{ + icon_state = "swall_f10" + }, +/area/shuttle/transport) +"bdq" = ( +/obj/structure/closet/crate, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/transport) +"bdr" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/transport) +"bds" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/spray/cleaner, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/maintenance/asmaint) +"bdt" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/maintenance/asmaint) +"bdu" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s9"; + dir = 2 + }, +/area/shuttle/transport) +"bdv" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/glass/bucket, +/turf/open/floor/plasteel/white, +/area/maintenance/asmaint) +"bdw" = ( +/obj/structure/mopbucket, +/obj/item/weapon/mop, +/turf/open/floor/plasteel/white, +/area/maintenance/asmaint) +"bdx" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/masks, +/obj/item/weapon/storage/box/mousetraps{ + pixel_x = 5; + pixel_y = 5 + }, +/turf/open/floor/plasteel/white, +/area/maintenance/asmaint) +"bdy" = ( +/obj/structure/table, +/obj/item/weapon/grenade/chem_grenade/cleaner, +/obj/item/weapon/grenade/chem_grenade/cleaner, +/obj/item/weapon/grenade/chem_grenade/cleaner, +/turf/open/floor/plasteel/white, +/area/maintenance/asmaint) +"bdz" = ( +/obj/structure/lattice, +/obj/item/weapon/relic, +/turf/open/space, +/area/space) +"bdA" = ( +/obj/docking_port/stationary{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 22; + id = "syndicate_sw"; + name = "southwest of station"; + turf_type = /turf/open/space; + width = 18 + }, +/turf/open/space, +/area/space) +"bdB" = ( +/obj/docking_port/stationary{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 22; + id = "syndicate_s"; + name = "south of station"; + turf_type = /turf/open/space; + width = 18 + }, +/turf/open/space, +/area/space) +"bdC" = ( +/obj/docking_port/stationary{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 22; + id = "syndicate_se"; + name = "southeast of station"; + turf_type = /turf/open/space; + width = 18 + }, +/turf/open/space, +/area/space) +"bdD" = ( +/obj/machinery/monkey_recycler, +/turf/open/floor/plasteel/darkwarning{ + dir = 1 + }, +/area/toxins/xenobiology) +"bdE" = ( +/obj/effect/landmark/start{ + name = "Scientist" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/toxins/xenobiology) +"bdF" = ( +/obj/machinery/atmospherics/components/binary/valve{ + icon_state = "mvalve_map"; + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/maintenance/asmaint2) +"bdG" = ( +/obj/machinery/atmospherics/pipe/manifold/general/hidden{ + icon_state = "manifold"; + dir = 1 + }, +/obj/machinery/camera/autoname{ + icon_state = "camera"; + dir = 6 + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"bdH" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + tag = "icon-intact (SOUTHEAST)"; + icon_state = "intact"; + dir = 6 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + icon_state = "vent_map"; + dir = 8 + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"bdI" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel, +/area/toxins/xenobiology) +"bdJ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"bdK" = ( +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel/white, +/area/medical/genetics_cloning) +"bdL" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 0; + initialize_directions = 1; + internal_pressure_bound = 101.325; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"bdM" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"bdN" = ( +/obj/machinery/camera/autoname{ + dir = 1; + network = list("SS13") + }, +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + target_temperature = 80; + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel, +/area/toxins/xenobiology) +"bdO" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"bdP" = ( +/obj/machinery/camera/autoname{ + icon_state = "camera"; + dir = 10 + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"bdQ" = ( +/obj/structure/table, +/obj/item/clothing/glasses/welding{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/clothing/glasses/welding, +/obj/item/device/mmi, +/obj/item/device/mmi, +/obj/item/device/mmi, +/turf/open/floor/plasteel, +/area/medical/robotics) +"bdR" = ( +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/security/brig) +"bdS" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/medical/robotics) +"bdT" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/machinery/door/airlock/glass{ + name = "science maintenance glass door"; + req_access_txt = "0"; + req_one_access_txt = "47;12;29" + }, +/turf/open/floor/plasteel, +/area/maintenance/asmaint2) +"bdU" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + icon_state = "vent_map"; + dir = 8 + }, +/turf/open/floor/plasteel/warning, +/area/maintenance/asmaint2) +"bdV" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/warning, +/area/maintenance/asmaint2) +"bdW" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold4w/cyan/hidden, +/obj/structure/sign/directions/engineering{ + dir = 1; + icon_state = "direction_eng"; + pixel_x = 32; + pixel_y = 40; + tag = "icon-direction_eng (NORTH)" + }, +/obj/structure/sign/directions/security{ + dir = 1; + icon_state = "direction_sec"; + pixel_x = 32; + pixel_y = 32 + }, +/obj/structure/sign/directions/evac{ + dir = 8; + icon_state = "direction_evac"; + pixel_x = 32; + pixel_y = 24; + tag = "icon-direction_evac (WEST)" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"bdX" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"bdY" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"bdZ" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"bea" = ( +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 10 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"beb" = ( +/obj/item/device/assembly/igniter, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"bec" = ( +/obj/structure/cable/cyan{ + icon_state = "1-8" + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"bed" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"bee" = ( +/obj/structure/chair/comfy/beige{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"bef" = ( +/obj/machinery/vending/snack, +/turf/open/floor/plasteel/black, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"beg" = ( +/obj/structure/table/wood, +/turf/open/floor/plasteel/black, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"beh" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/drinks/soda_cans/tonic, +/turf/open/floor/plasteel/black, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"bei" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/black, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"bej" = ( +/obj/structure/chair/comfy/beige{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"bek" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"bel" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 4 + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"bem" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"ben" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-02"; + layer = 4.1 + }, +/turf/open/floor/plasteel/black, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"beo" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating/asteroid{ + name = "dirt" + }, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"bep" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Arrivals Shuttle Airlock" + }, +/turf/open/floor/plating, +/area/shuttle/arrival) +"beq" = ( +/obj/effect/landmark{ + name = "Observer-Start" + }, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/arrival) +"ber" = ( +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/weapon/reagent_containers/glass/bottle/hullucigen_virion = 2, /obj/item/weapon/reagent_containers/glass/bottle/pierrot_throat = 4, /obj/item/weapon/reagent_containers/glass/bottle/brainrot = 4, /obj/item/weapon/reagent_containers/glass/bottle/magnitis = 4, /obj/item/weapon/reagent_containers/glass/bottle/anxiety = 2, /obj/item/weapon/reagent_containers/glass/bottle/beesease = 8, /obj/item/weapon/reagent_containers/glass/bottle/fluspanish = 4); + lootcount = 3; + name = "viro bottle spawner" + }, +/obj/structure/table, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bes" = ( +/obj/docking_port/mobile{ + dwidth = 2; + height = 7; + id = "arrival"; + name = "arrival shuttle"; + port_angle = -90; + width = 9 + }, +/obj/docking_port/stationary{ + dwidth = 2; + height = 7; + id = "arrival_home"; + name = "port bay 1"; + width = 9 + }, +/turf/closed/wall/mineral/titanium, +/area/shuttle/arrival) +"bet" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/machinery/door/airlock{ + name = "door" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"beu" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock{ + name = "door" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"bev" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"bew" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plating, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"bex" = ( +/obj/structure/chair, +/turf/open/floor/plating, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"bey" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"bez" = ( +/obj/structure/chair, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"beA" = ( +/turf/open/floor/plating, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"beB" = ( +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"beC" = ( +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"beD" = ( +/obj/machinery/light/small, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"beE" = ( +/obj/machinery/light/small, +/turf/open/floor/plasteel, +/area/toxins/xenobiology) +"beF" = ( +/obj/structure/closet{ + name = "chemical locker" + }, +/obj/item/weapon/reagent_containers/glass/bottle/potass_iodide, +/obj/item/weapon/reagent_containers/glass/bottle/synaptizine, +/obj/item/weapon/reagent_containers/glass/bottle/diphenhydramine, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"beG" = ( +/obj/item/device/assembly/voice, +/turf/open/floor/plasteel, +/area/toxins/xenobiology) +"beH" = ( +/obj/structure/table, +/obj/machinery/camera/autoname{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"beI" = ( +/obj/structure/rack, +/obj/item/weapon/gun/energy/gun/dragnet, +/turf/open/floor/plasteel/bot, +/area/security/warden) +"beJ" = ( +/obj/structure/rack, +/obj/item/weapon/storage/box/rubbershot, +/obj/item/weapon/storage/box/rubbershot, +/obj/item/weapon/storage/box/rubbershot, +/obj/item/weapon/storage/box/rubbershot, +/obj/item/weapon/storage/box/rubbershot, +/obj/item/weapon/gun/projectile/shotgun/riot{ + pixel_x = -5; + pixel_y = 5 + }, +/obj/item/weapon/gun/projectile/shotgun/riot, +/turf/open/floor/plasteel/bot, +/area/security/warden) +"beK" = ( +/obj/structure/cable/cyan{ + icon_state = "1-4" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/security/warden) +"beL" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/structure/table, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"beM" = ( +/obj/structure/rack, +/obj/item/clothing/suit/armor/riot, +/obj/item/clothing/suit/armor/riot, +/obj/item/clothing/suit/armor/riot, +/obj/item/clothing/head/helmet/riot, +/obj/item/clothing/head/helmet/riot, +/obj/item/clothing/head/helmet/riot, +/obj/item/weapon/shield/riot, +/obj/item/weapon/shield/riot, +/obj/item/weapon/shield/riot, +/obj/machinery/camera/autoname{ + dir = 1; + network = list("SS13") + }, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/security/warden) +"beN" = ( +/obj/structure/closet/secure_closet{ + name = "special weapons locker"; + req_access_txt = "3" + }, +/obj/effect/spawner/lootdrop/armory_contraband, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/weapon/grenade/chem_grenade/teargas = 10, /obj/item/weapon/grenade/clusterbuster/teargas = 1); + lootcount = 3; + name = "teargas clusterbuster spawner" + }, +/obj/item/weapon/gun/energy/gun/hos, +/obj/item/weapon/storage/box/lethalshot, +/obj/item/weapon/storage/box/lethalshot, +/turf/open/floor/plasteel, +/area/security/warden) +"beO" = ( +/obj/structure/window/reinforced, +/obj/machinery/flasher/portable, +/obj/machinery/flasher/portable, +/obj/machinery/flasher/portable, +/obj/machinery/flasher/portable, +/obj/machinery/flasher/portable, +/obj/machinery/flasher/portable, +/turf/open/floor/plasteel/black, +/area/security/warden) +"beP" = ( +/obj/structure/table, +/obj/item/clothing/glasses/science, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"beQ" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/item/clothing/glasses/sunglasses, +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"Zza" = ( +/turf/open/space, +/obj/machinery/porta_turret/syndicate{ + dir = 9 + }, +/turf/closed/wall/mineral/plastitanium{ + dir = 8; + icon_state = "diagonalWall3" + }, +/area/space) +"Zzb" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"Zzc" = ( +/obj/structure/grille, +/obj/machinery/door/poddoor/shutters{ + id = "syndieshutters"; + name = "blast shutters" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/space) +"Zzd" = ( +/turf/open/space, +/obj/machinery/porta_turret/syndicate{ + dir = 5 + }, +/turf/closed/wall/mineral/plastitanium{ + dir = 1; + icon_state = "diagonalWall3" + }, +/area/space) +"Zze" = ( +/obj/structure/table, +/obj/item/device/flashlight/lamp{ + pixel_x = 4; + pixel_y = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"Zzf" = ( +/obj/machinery/computer/shuttle/syndicate, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"Zzg" = ( +/obj/structure/table, +/obj/machinery/button/door{ + id = "syndieshutters"; + name = "remote shutter control"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"Zzh" = ( +/obj/structure/frame/computer, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"Zzi" = ( +/obj/structure/closet/syndicate/personal, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"Zzj" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) +"Zzk" = ( +/obj/machinery/door/window{ + name = "Cockpit"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"Zzl" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) +"Zzm" = ( +/obj/structure/table, +/obj/item/stack/cable_coil, +/obj/item/weapon/crowbar/red, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"Zzn" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/zipties{ + pixel_x = 1; + pixel_y = 2 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"Zzo" = ( +/obj/machinery/porta_turret/syndicate{ + dir = 4 + }, +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/syndicate) +"Zzp" = ( +/obj/machinery/suit_storage_unit/syndicate, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"Zzq" = ( +/obj/structure/closet/syndicate/nuclear, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"Zzr" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"Zzs" = ( +/obj/machinery/door/poddoor{ + auto_close = 300; + id = "smindicate"; + name = "outer blast door" + }, +/obj/machinery/button/door{ + id = "smindicate"; + name = "external door control"; + pixel_x = -26; + pixel_y = 0; + req_access_txt = "150" + }, +/obj/docking_port/mobile{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 24; + id = "syndicate"; + name = "syndicate infiltrator"; + port_angle = 0; + roundstart_move = "syndicate_away"; + width = 18 + }, +/obj/docking_port/stationary{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 24; + id = "syndicate_nw"; + name = "northwest of station"; + turf_type = /turf/open/space; + width = 18 + }, +/turf/open/floor/plating, +/area/space) +"Zzt" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0 + }, +/turf/closed/wall/mineral/plastitanium, +/area/space) +"Zzu" = ( +/obj/machinery/door/window{ + name = "Ready Room"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"Zzv" = ( +/obj/machinery/door/window{ + dir = 4; + name = "EVA Storage"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"Zzw" = ( +/obj/machinery/door/airlock/external{ + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"Zzx" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 1; + icon_state = "diagonalWall3" + }, +/area/space) +"Zzy" = ( +/obj/item/device/radio/intercom{ + desc = "Talk through this. Evilly"; + freerange = 1; + frequency = 1213; + name = "Syndicate Intercom"; + pixel_x = -32; + subspace_transmission = 1; + syndie = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"Zzz" = ( +/obj/machinery/sleeper/syndie{ + dir = 4 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"ZzA" = ( +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"ZzB" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"ZzC" = ( +/obj/structure/tank_dispenser/oxygen, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"ZzD" = ( +/obj/structure/table, +/obj/item/stack/medical/ointment, +/obj/item/stack/medical/bruise_pack, +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"ZzE" = ( +/obj/structure/table, +/obj/item/weapon/stock_parts/cell/high{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/stock_parts/cell/high, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"ZzF" = ( +/obj/structure/table, +/obj/item/weapon/screwdriver{ + pixel_y = 9 + }, +/obj/item/device/assembly/voice{ + pixel_y = 3 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"ZzG" = ( +/obj/structure/table, +/obj/item/weapon/wrench, +/obj/item/device/assembly/infra, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"ZzH" = ( +/obj/structure/table, +/obj/item/device/assembly/signaler, +/obj/item/device/assembly/signaler, +/obj/item/device/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/device/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"ZzI" = ( +/obj/structure/table, +/obj/item/weapon/weldingtool/largetank{ + pixel_y = 3 + }, +/obj/item/device/multitool, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"ZzJ" = ( +/obj/structure/sign/bluecross_2, +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/syndicate) +"ZzK" = ( +/obj/machinery/recharge_station, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"ZzL" = ( +/obj/machinery/porta_turret/syndicate{ + dir = 5 + }, +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/syndicate) +"ZzM" = ( +/obj/machinery/door/window{ + dir = 1; + name = "Surgery"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"ZzN" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"ZzO" = ( +/obj/structure/table, +/obj/item/weapon/surgicaldrill, +/obj/item/weapon/circular_saw, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"ZzP" = ( +/obj/machinery/telecomms/allinone{ + intercept = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"ZzQ" = ( +/turf/open/space, +/obj/machinery/porta_turret/syndicate{ + dir = 10 + }, +/turf/closed/wall/mineral/plastitanium{ + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) +"ZzR" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/table/wood, +/obj/item/toy/crayon/spraycan/mimecan, +/turf/open/floor/carpet, +/area/crew_quarters/theatre) +"ZzS" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"ZzT" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "hallway shutter"; + name = "hallway shutter" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"ZzU" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"ZzV" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/glass, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"ZzW" = ( +/obj/machinery/door/airlock/glass, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"ZzX" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/glass, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"ZzY" = ( +/obj/machinery/door/airlock/maintenance{ + name = "science maintenance door"; + req_one_access_txt = "47;12;29" + }, +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/maintenance/asmaint2) +"ZzZ" = ( +/obj/structure/cable/cyan{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"ZAa" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/warning{ + tag = "icon-warningcorner"; + icon_state = "warningcorner"; + dir = 2 + }, +/area/maintenance/asmaint2) +"ZAb" = ( +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning, +/area/maintenance/asmaint2) +"ZAc" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/wrench/medical, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"ZAd" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/maintenance/asmaint2) +"ZAe" = ( +/obj/machinery/droneDispenser, +/turf/open/floor/plasteel, +/area/maintenance/asmaint2) +"ZAf" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ + tag = "icon-intact (WEST)"; + icon_state = "intact"; + dir = 8 + }, +/turf/open/floor/plating, +/area/medical/medbay) +"ZAg" = ( +/obj/machinery/shieldwallgen{ + req_access = null + }, +/turf/open/floor/plating, +/area/hallway/primary/aft{ + name = "\improper South Hallway" + }) +"ZAh" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"ZAi" = ( +/obj/structure/cable/cyan{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"ZAj" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + icon_state = "connector_map"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/maintenance/fore{ + name = "Security Maintenance" + }) +"ZAk" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/maintenance/asmaint2) +"ZAl" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/machinery/meter, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"ZAm" = ( +/obj/item/clothing/head/cone, +/turf/open/floor/plating{ + icon_plating = "asteroidplating"; + icon_state = "asteroidplating" + }, +/area/maintenance/asmaint2) +"ZAn" = ( +/obj/machinery/atmospherics/components/binary/valve/open, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"ZAo" = ( +/obj/structure/barricade/wooden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"ZAp" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"ZAq" = ( +/obj/structure/closet/cardboard, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"ZAr" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, +/obj/machinery/meter, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"ZAs" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, +/turf/open/floor/plasteel, +/area/maintenance/asmaint2) +"ZAt" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"ZAu" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"ZAv" = ( +/obj/item/weapon/coin/gold, +/turf/open/floor/wood, +/area/maintenance/fsmaint) +"ZAw" = ( +/obj/structure/table, +/obj/machinery/computer/stockexchange, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"ZAx" = ( +/obj/structure/table, +/obj/item/clothing/under/burial, +/obj/item/clothing/under/burial, +/obj/item/clothing/under/burial, +/obj/item/clothing/under/burial, +/obj/item/clothing/under/burial, +/obj/item/clothing/under/burial, +/turf/open/floor/plating, +/area/maintenance/asmaint2) + +(1,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(2,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(3,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(4,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(5,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(6,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(7,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(8,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(9,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(10,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(11,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(12,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(13,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(14,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(15,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(16,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(17,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(18,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(19,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(20,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(21,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(22,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(23,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(24,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(25,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(26,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(27,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(28,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(29,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(30,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(31,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(32,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(33,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(34,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(35,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(36,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(37,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(38,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(39,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(40,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(41,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(42,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(43,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(44,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(45,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(46,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(47,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(48,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(49,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(50,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(51,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(52,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(53,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(54,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(55,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(56,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(57,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 +Zza +aac +aac +aac +aac +ZzL +aac +aac +aac +Zzj +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(58,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 +Zza +aac +aac +aac +aac +aac +aac +Zzz +aaU +Zzz +ZzA +abg +ZzO +abv +aby +abH +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(59,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 +Zzb +Zzp +Zzp +Zzp +Zzp +Zzp +aac +ZzA +ZzA +ZzA +ZzA +ZzM +ZzA +abw +aby +abI +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(60,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 +Zzb +aae +aae +aae +aae +aae +aac +ZzB +ZzA +ZzA +ZzA +ZzN +abp +abx +aby +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(61,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 +Zza +aac +aac +aac +Zzj +aar +aaa +Zzb +aae +Zzr +aae +aae +aae +aac +ZzC +ZzA +ZzA +ZzA +abj +aac +aac +aac +aat +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(62,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 +Zzb +aad +aag +aam +aac +aar +aaa +Zzb +Zzq +aaD +aaF +aae +aae +aac +ZzD +ZzA +ZzA +ZzA +abk +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(63,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 +Zzc +aae +aae +aae +aac +aac +aac +aac +aac +aac +aac +Zzv +aaL +aac +aac +ZzJ +abd +abh +aac +aac +aac +Zzj +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(64,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 +Zzc +Zze +aae +aae +aac +Zzm +aae +aae +aae +aae +aaP +aae +aae +Zzy +aae +aae +aae +aae +aae +aaP +aby +abH +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(65,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 +Zzc +Zzf +aaj +aae +Zzk +aae +aae +aae +aae +aae +Zzu +aae +aae +aae +aae +aae +aae +aae +aae +abr +aby +abI +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(66,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 +Zzc +Zzg +aae +aah +aac +Zzn +aav +aav +aav +aav +aaP +aae +aae +aae +aae +aae +aae +aae +aae +aaP +aby +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(67,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 +Zzc +Zzh +aae +aae +aac +aac +aac +Zzo +aac +aac +aac +Zzw +aaP +aac +aac +aac +abe +abi +aac +aac +aac +Zzl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(68,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 +Zzb +Zzh +aae +Zzi +aac +Zzl +aaa +aaa +aaa +Zzb +aae +aae +aae +aac +ZzE +aae +aae +aae +abn +ZzP +Zzb +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(69,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 +Zzd +aac +aac +aac +Zzl +aar +aaa +aaa +aaa +Zzs +aae +aae +aae +aac +ZzF +aae +aae +aae +abo +aac +aac +aac +ZzQ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(70,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 +Zzt +aae +aae +aae +aac +ZzG +aae +aae +aae +aae +aae +abz +aby +abH +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(71,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 +Zzd +aac +aac +aac +aac +ZzH +Zzr +aae +aae +aae +aae +abA +aby +abI +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(72,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 +Zzx +Zzb +ZzI +abc +aae +ZzK +ZzK +aae +abB +aby +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(73,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 +Zzd +aac +aac +aac +aac +Zzo +aac +aac +aac +Zzl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(74,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(75,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(76,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(77,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(78,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(79,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(80,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(81,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(82,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 +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(83,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 +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(84,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 +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(85,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 +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(86,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 +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(87,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 +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(88,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 +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(89,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 +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(90,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 +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aDo +aDo +aDZ +aDo +aDZ +aDZ +aDZ +aDZ +aDZ +aDo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(91,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 +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aDo +aEQ +aFG +aET +aDZ +aHS +aIN +aIN +aIN +aHS +aEQ +aDo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(92,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 +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaJ +aaa +aaa +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aDo +aER +aFH +aES +bah +aHT +aHT +aHT +aHT +aHT +aMh +aDo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bdA +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(93,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 +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aDZ +aES +aES +aES +aDo +aHU +aHU +aHW +aHT +aHT +aMh +aDo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(94,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 +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aDZ +aES +aES +aGs +aDo +aHV +aHV +aJL +aHT +aHT +aMh +aDo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(95,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 +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aDo +aET +aES +aET +aDo +aHW +aIO +aHW +aHT +aHT +aMh +aEQ +aDo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(96,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 +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aDo +aDo +bah +aDZ +aDo +aHT +aHT +aHT +aHT +aHT +aHT +aHS +aDo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(97,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 +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaa +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aDo +aEV +aFJ +aFJ +aDZ +aHS +aHT +aHT +aHT +aHT +aHT +aNc +aDo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(98,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 +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aDo +aEV +aFJ +aFJ +aHg +aHT +aHT +aJM +aKz +aHT +aHT +aNd +aDZ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(99,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 +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aDo +aEV +aFJ +aFJ +aDZ +aHT +aHT +aJM +aKz +aHT +aHT +aNd +aDZ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(100,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 +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aDo +aEV +aFJ +aGt +aDo +aHT +aHT +aJM +aKz +aHT +aHT +aNd +aDZ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(101,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 +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +awi +awi +awj +awi +awj +awi +awi +aaa +aaa +aaa +aaa +aDo +aEV +aFJ +aGu +aDo +aHT +aHT +aJM +aKz +aHT +aHT +aHS +aDo +aaa +aaa +aaa +aaa +aim +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(102,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 +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +awi +awS +axH +axH +axI +azN +awi +aaa +aaa +aaa +aDo +aDo +aDo +aDo +aDo +aEQ +aHT +aHT +aDo +aDo +aHh +aDZ +aDo +aDo +aaa +aaa +aaa +aaa +aaa +aay +aaa +aay +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(103,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 +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aim +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +awj +awT +axI +axH +axI +azO +aAD +aaa +aaa +aaa +aDo +aEc +aEW +aEe +aEe +aHh +aHT +aHT +aHh +aKA +aEe +aEe +aNe +aDo +aaa +aaa +aaa +aaa +agu +agu +agu +agu +agu +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(104,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 +aay +adl +acZ +acZ +acZ +aaJ +aaJ +aaJ +aaa +aaJ +aaJ +aaJ +aaJ +acZ +acZ +acZ +acZ +adl +acZ +acZ +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +awi +awS +axH +axH +axI +azN +awi +aaa +aaa +aaa +aDo +aEd +aEe +aEe +aEe +aHh +aHT +aHT +aHh +aEe +aEe +aEe +aEe +aDo +aaa +aaa +aaa +aaa +aaa +aaB +aaa +aaB +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(105,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 +aay +aaa +aay +aaa +aaa +aaa +aaa +aay +aaa +aay +aaa +aay +aaa +aaa +aaa +aay +aaa +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +awi +awi +awj +ayj +awj +awi +awi +aaa +aaa +aaa +aDo +aEe +aEe +aEe +aEQ +aDo +aHX +aHX +aDo +aEQ +aLp +aMi +aNf +aDo +aaa +aaa +aaa +aaa +aay +aaB +aay +aaB +aay +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(106,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 +abQ +aaa +aaa +aaa +aay +adl +acZ +acZ +acZ +acZ +acZ +acZ +acZ +adl +acZ +acZ +acZ +acZ +aay +adl +acZ +acZ +acZ +adl +acZ +acZ +aay +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +axJ +ayk +axK +axJ +aaa +aaa +aaa +aaa +aDo +aDo +aDo +aDo +aDo +aDo +aHT +aHT +aDo +aDo +aDo +aDo +aDo +aDo +aaa +aaa +aaa +aaa +aaa +aaB +aaa +aaB +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(107,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 +aaB +aaa +aaa +aaa +aaa +aaa +aaa +aay +aaa +aay +aaa +aaa +aaa +aer +aay +aaa +aay +aaa +aay +aaa +aaa +aaa +aay +aaa +aay +aaa +aaa +aaa +aaa +aaa +aaa +aim +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +axJ +ayl +ayZ +axK +aaa +aaa +aaa +aaa +aDo +aEg +aEX +aFK +aDo +aDo +aHX +aIP +aDo +aDo +aEg +aEX +aFK +aDo +aaa +aaa +aaa +aaa +aPH +aPH +aPH +aPH +aPH +aPH +aPH +aPH +aPH +aPH +aPH +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(108,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 +aaJ +aaa +aaa +aaa +aaa +aay +aaB +aaB +aaB +aay +acO +acZ +acZ +acZ +acZ +acZ +acZ +acZ +acZ +acZ +acZ +acZ +acZ +acZ +adl +acZ +acZ +acZ +acZ +acZ +acZ +acZ +acZ +adl +acZ +acZ +acZ +acZ +acZ +acZ +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +arb +arb +arb +arb +arb +arb +arb +arb +arb +aaa +axJ +aym +aza +axK +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aFL +aHY +aHY +aFL +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aay +aaa +aPH +aTe +aTY +aUI +aVk +aVE +aWk +aTf +aXz +aXY +aPH +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(109,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 +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaB +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aay +aaa +aaa +aaa +aaa +aay +aaa +aay +aaa +aay +aaa +aaa +aaa +aay +aaa +aaa +aaa +aaa +aaa +aay +aaa +aaa +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +arb +arI +aso +arI +atG +atG +atG +aso +arb +awU +axJ +ayn +axK +axJ +axJ +axJ +axJ +aay +aay +aay +aay +aay +aay +aFL +aHZ +aHZ +aFL +aay +aay +aay +aay +aay +aay +aPH +aPH +aPH +aPH +aTe +aTZ +aUI +aVk +aVF +aWk +aWX +aXA +aWX +aPH +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(110,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 +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aay +aaa +aaa +aaa +aaa +aay +aay +aay +aay +aay +aaa +aaa +aaa +aay +aay +aay +aay +adl +acZ +acZ +acZ +adl +acZ +acZ +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +arb +arJ +aso +arJ +atG +atG +atG +aso +awn +awV +axJ +ayo +ayo +ayo +ayo +aAF +axJ +aaa +aay +aaa +aaa +aay +aaa +aFL +aIa +aIa +aFL +aaa +aay +aaa +aaa +aay +aaa +aPH +aQp +aRi +aSi +aTf +aTf +aTf +aTf +aTf +aTf +aTf +aXB +aWX +aPH +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +bcO +bdf +bcO +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(111,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 +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aay +aaa +aaa +aaa +aaa +aay +aaa +adR +adR +adR +adR +adR +aaa +aay +aaa +aaa +aaa +aaa +aaa +aay +aaa +aaa +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +arb +arJ +aso +arJ +atG +atG +atG +aso +awn +awV +axJ +ayp +ayo +ayo +ayo +aBj +axJ +aaa +aay +aaa +aaa +aay +aaa +aFL +aEl +aEl +aFL +aaa +aay +aaa +aaa +aay +aaa +aPH +aQq +aRi +aSi +aTf +aTf +aUJ +aTf +aVG +aTf +aTf +aWX +aTf +aPH +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +bcO +bda +bdg +bdp +bcO +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(112,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 +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +adR +adR +adR +adR +adR +adR +adR +adR +adR +agD +agW +agD +adR +adR +adR +adR +adR +aay +adl +acZ +acZ +acZ +acZ +acZ +acZ +aay +aaa +aaa +aaa +aaa +aim +aaa +aaa +aaa +aaa +aaa +arb +arJ +asp +atf +atG +atG +atG +aso +awn +awV +axJ +ayq +ayo +azQ +ayo +aAF +axJ +aaa +aay +aaa +aAI +aFL +aFL +aFL +aIb +aIb +aFL +aFL +aFL +aFL +aFL +aFL +aFL +aPH +aQr +aRj +aPH +aTg +aUa +aUK +aPH +aPH +aWl +aWX +aXC +aWX +aPH +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +bcP +bdb +bdg +bdq +bcP +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(113,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 +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +adR +aeh +aes +aeh +adR +aeY +afr +aeY +adR +agE +agX +ahA +adR +ain +aiC +ain +adR +aaa +aaa +aaa +aaB +aaa +aaa +aaB +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +arb +arJ +asq +atg +atH +aup +atH +aso +arb +awW +axK +ayr +ayo +axJ +axJ +axJ +axJ +axJ +axJ +axJ +axJ +aFM +aEl +aEl +aIc +aIQ +aIQ +aIQ +aIQ +aIQ +aIQ +aIQ +aOU +aPI +aQs +aRk +aPH +aTh +aQq +aUL +aVl +aVH +aWm +aTf +aXD +aWX +aPH +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +bcP +bdc +bdg +bdq +bcP +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(114,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 +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +adR +aei +aet +aeD +adR +aeZ +afs +afI +adR +agD +agY +agD +adR +aio +aiD +aiV +adR +aay +aay +aay +aaB +aay +aay +aaB +aay +aay +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +arb +arb +arb +ath +atI +arb +auU +avA +arb +aaa +axK +ays +azb +azb +aAH +aBk +aBk +aCz +aDr +aEh +axJ +aFN +aGy +aHk +aId +baz +aFO +aFO +aFO +aMj +aFO +aFO +aFO +aPJ +aQt +aRl +aPH +aTi +aQq +aQq +aQq +aQq +aRi +aTf +aTf +aTf +aPH +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +bcQ +bdd +bdg +bdr +bcQ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(115,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 +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +adR +aeh +aeu +aeh +adR +aeY +aft +aeY +adR +abt +adu +abt +adR +ain +aiE +ain +adR +aaa +aaa +aaa +aaB +aaa +aaa +aaB +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aqF +ati +atJ +aqE +atJ +avB +aqF +aaa +axK +ayt +ayo +azR +axJ +aBl +aBY +aCA +aBk +aBk +aEY +aFO +aFO +aFO +aIe +aIS +aJO +aKB +aLq +aAI +aFL +aFL +aFL +aPH +aQu +aRm +aPH +aPH +aPH +aPH +aVm +aVm +aPH +aWY +aXE +aPH +aPH +aPH +aPH +aPH +aPH +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +bcP +bdd +bdg +bdr +bcP +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(116,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 +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +adR +abt +adu +abt +adR +abt +adu +abt +adR +aaa +aev +aaa +adR +abt +adu +abt +adR +aay +aay +aay +aaB +aay +aay +aaB +aay +aay +aay +aay +aaa +aaa +aaa +aay +aaa +aaa +aaa +aaa +aaa +aaa +aqF +ati +atK +aqF +atK +avB +aqF +aaa +axK +ayt +ayo +azS +aAI +aAI +aAI +aAI +aAI +aAI +aAI +aFP +aFP +aFP +aIf +aIT +aJP +aKC +aLr +aAI +aNg +aOb +aBs +aPH +aQu +aRn +aSj +aTj +aUb +aUb +aUb +aVI +aSi +aTf +aTf +aPH +aYB +aYX +aYZ +aZY +aPH +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aay +bcP +bdd +bdg +bdr +bcP +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(117,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 +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aay +aaa +aev +aaa +aay +aaa +afu +afJ +agc +aaa +aev +aaa +ahU +afJ +aiF +aaa +aay +aaa +aaa +aaa +aaB +aaa +aaa +aaB +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aay +aay +aay +aay +aqE +aqE +aqE +aqF +ati +atJ +aqE +atJ +avB +aqF +aqE +aqE +ayu +azc +aqE +aAI +aBm +aBZ +aCB +aDs +aEi +aEZ +aFQ +aBn +aEi +aIg +aIU +aJQ +aJQ +aLs +aAI +aNh +aOc +aBq +aPH +aQv +aRo +aSk +aTk +aUc +aSk +aQs +aVJ +aSi +aTf +aTf +aPH +aYC +aRk +aZz +aYZ +aPH +aaJ +aaJ +aaJ +aaJ +aaJ +aay +aay +bcP +bdd +bdg +bdr +bcP +aay +aay +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(118,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 +aay +aaa +aaa +aaa +aaa +aay +aay +aay +aaa +aaa +aaa +aaa +aaa +aaa +aay +aaa +aev +aaa +aay +aaa +abs +abt +adu +abt +adu +abt +adu +abt +abs +aay +adR +adR +adR +adR +adR +adR +adR +adR +adR +aaa +aaa +aaa +aaa +aaa +aaa +aay +aaa +aaa +aaa +aqE +ard +arK +ard +are +arh +auq +arh +avC +arh +awX +axL +ayv +arh +arh +aAI +aBn +aCa +aCC +aBq +aEj +aFa +aFR +aBq +aEm +aIg +aIV +aJR +aJR +aLt +aJW +aJW +aJW +aJW +aPK +aPK +aPK +aPK +aPK +aPK +aPK +aVn +aVK +aPH +aWZ +aXF +aPH +aYD +aYY +aYX +aYX +aPH +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aay +bcR +bdd +bdg +bdr +bcR +aay +aaa +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(119,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 +aaB +aaa +aaa +aaa +aay +aay +aaB +aay +aay +aay +aaB +abs +abs +abs +abs +abt +adu +abt +abs +abs +abs +afK +agd +afK +agd +afK +agd +aip +abt +aaa +abt +aji +ajw +aji +adR +akd +akl +akd +adR +aay +agu +agu +agu +aay +aay +aay +aay +aay +aay +aqE +are +are +are +are +arh +aur +auV +avC +arh +awY +axM +arh +arh +azT +aAI +aBo +aCb +aCb +aCb +aEk +aEi +aEm +aBq +aBq +aIg +aIW +aJS +aKD +aLu +aMk +aNi +aOd +aNm +aPL +aQw +aQw +aSl +aTl +aTl +aPK +aVo +aVL +aPH +aPH +aPH +aPH +aPH +aYX +aZA +aZZ +aPH +aPH +aPH +aPH +aPH +aPH +aaa +aay +bcP +bdd +bdg +bdr +bcP +aay +aaa +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(120,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 +aay +aaB +aaB +aaB +aay +aay +aay +aaB +abR +acg +acg +acg +acg +adm +adB +adm +adS +aej +aew +aeE +aeL +afa +aeL +aeE +age +agF +age +agF +age +aiq +aiG +afJ +aiG +ajj +ajx +ajH +adR +akd +akm +akd +adR +aaa +aaa +aaa +aaa +aaa +aaa +aay +aaa +aaa +aaa +aqE +arf +are +are +are +arh +arh +arh +avC +arh +awY +axN +arh +avD +azU +aAI +aBp +aCb +aCD +aCb +aEl +aEl +aEl +aEl +aEl +aIg +aIX +aJT +aKE +aJV +aJW +aNj +aOe +aOe +aPM +aQx +aQx +aSm +aQx +aUd +aPK +aQu +aVM +aUb +aXa +aXG +aXZ +aPH +aYZ +aZB +baa +aPH +baJ +bbl +aYX +bcd +aPH +aay +aay +bcP +bdd +bdg +bdr +bcP +aay +aaa +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(121,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 +aaB +aaa +aaa +aaa +aay +aay +abS +aay +aay +aay +aaB +abs +abs +abs +adT +abK +abK +aeF +aeM +afb +afv +abK +agf +agG +agZ +agG +agG +air +abt +aaa +abt +aji +ajy +aji +adR +akd +akn +akd +adR +aay +aay +aay +aay +aay +aay +aay +aay +aay +aay +aqE +arg +arL +arh +arh +arh +aus +arh +arh +arh +awZ +axO +arh +aTG +azV +aAI +aBq +aCb +aCD +aCb +aEl +aEl +aEl +aEl +aEl +aIg +aIY +aJU +aJU +aLv +aJW +aNk +aOe +aOe +aPL +aQw +aQw +aQx +aTm +aTm +aPK +aVp +aVN +aWn +aTk +aXH +aQs +aPH +aZa +aZA +aYX +aPH +baK +bbm +beQ +bce +aPH +aaa +aay +bcS +bcQ +bdh +bcQ +bdu +aay +aaa +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(122,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 +aay +aaa +aaa +aaa +aaa +aay +abS +aay +aaa +aaa +acU +acU +acU +acU +acU +acU +acU +acU +acU +acU +acU +afL +agf +abK +aha +abK +abK +ais +abs +abs +acU +acU +acU +adR +adR +abt +ako +abt +adR +aaa +aaa +aaa +aaa +aaa +aaa +aay +aaa +aaa +aaa +aqF +arh +arh +asr +arh +atL +aut +auW +auW +awp +axa +axP +arh +azd +azW +aAI +aBr +aCb +aCb +aCb +aBq +aCE +aFS +aCE +aHl +aIg +aIX +aJV +aKF +aJV +aJW +aNl +aOe +aNm +aPN +aPN +aQG +aSn +aQG +aPN +aPK +aPK +aPK +aPK +aPK +aXI +aVn +aYE +aYZ +aZC +aYX +aPH +aYX +bbn +bbE +aYX +aPH +aaa +aay +aay +aVm +bdi +aVm +aay +bdz +aay +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(123,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 +aay +aaa +aaa +aaJ +aaa +aaB +abS +aaB +aaa +aaa +ada +adn +ado +adM +ado +adM +ado +adM +adE +afc +afw +adF +agg +agH +agf +abK +abK +ait +aeE +aiW +aiW +ajk +ajz +ajI +aJp +aaa +abS +aaa +aay +aay +aay +aaa +aaa +aaa +aaa +aay +aaa +aaa +aaa +aqF +arh +arM +arh +arh +atM +arh +arh +arh +awq +arh +aws +arh +aDE +aHP +aAI +aBs +aCc +aCE +aDt +aEm +aFb +aBq +aBs +aBq +aIg +aIZ +aJW +aJW +aJW +aJW +aNm +aOe +aNm +aPN +aTX +aRp +aSo +aTn +aUe +aPN +aVq +aVO +aWo +aPN +aXI +aVn +aYE +aYX +aYX +aYX +aPH +baL +bbo +aYX +bcf +aPH +aaa +aay +aaa +aVm +bdj +aVm +aaa +aay +aaa +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(124,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 +aaJ +aaJ +aaa +aaa +aaa +aaa +aay +aaa +aaa +aaJ +aaa +abs +abT +abs +acu +acu +ada +ado +adC +adC +adU +adU +adC +adC +aeN +adM +acU +afM +acT +acT +ahb +ahB +ahB +aiu +aeE +aiX +adF +ajl +ajA +aIt +aIt +acg +akp +akM +akM +akM +akM +amA +aaa +aaa +aaa +aot +aot +aot +aot +aot +aot +aot +aot +aot +aot +auu +auX +arh +awr +axb +axQ +aqE +azf +azY +aAJ +aAJ +aAJ +aAJ +aAJ +aAJ +aAJ +aAJ +aAJ +aAJ +aIg +aIX +aJX +aKG +aLw +aMl +aNn +aOf +aQC +aPN +aQz +aRq +beJ +aTo +beM +aPN +aVr +aVP +aWp +aPN +aXJ +aVn +aPH +aPH +aPH +aPH +aPH +aPH +aYE +aYE +aPH +aPH +aPH +aPH +aPH +aVm +bdk +aVm +aPH +aay +aay +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(125,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 +aaJ +aaJ +aaJ +aaa +aaa +aaa +aay +aaJ +aaJ +aaJ +aaJ +abs +abU +abs +acv +acv +acU +adp +adD +adN +adN +adN +adN +adC +adM +adp +afx +afN +agh +agl +agl +agl +ahV +abs +afL +aiY +aeE +ajm +abt +aaa +aay +aaa +aaa +aaa +aay +aaa +aaa +amB +akM +akM +akM +aou +aoY +apB +aqf +aqG +aqG +aqG +ass +atj +aot +auv +auv +arh +aws +axd +axR +aqE +azf +azZ +aAJ +aTM +aCd +aCF +aDu +aEn +aFc +aFT +aGz +aAJ +aIg +aIX +aJX +aKH +aKH +aMm +aLz +aOg +aQB +aPN +aQA +aRq +beI +aTp +aUg +aPN +aVs +aVQ +aWq +aPN +aXI +aYa +aYF +aZb +aSk +aSk +aZb +aQs +aRk +aRk +aRk +aRk +bct +aQq +bcT +aQq +aQq +aQq +aPH +aaa +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(126,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 +aaJ +aaJ +aaJ +aaN +aay +aay +aay +aaN +aaJ +aaJ +aaJ +aaJ +abs +abT +abs +acw +acP +acU +adq +adD +adD +adN +adD +adD +adC +adV +afd +afw +afO +agi +agh +agi +ahC +ahH +abs +aiH +aiZ +ajf +ajn +abt +aaa +aay +acU +acU +acU +acU +acU +ame +ame +ame +ame +ame +aot +aoZ +aoZ +aoZ +aqH +aqH +aqH +ast +atk +aot +auw +arh +avD +aws +ZAw +aqE +aqE +azg +aAa +aAJ +aBu +aCe +aCG +aDv +aDv +aDv +aFU +aGA +aHm +aIh +aJa +aJX +aKI +aLx +aMl +aNn +aOh +aRe +aPN +aUf +aRr +beK +aSr +beN +aPN +aVt +aVR +aWr +aPN +aXK +aSj +aPJ +aUb +aZD +aUb +aUb +baM +bbp +aRk +bcg +aRk +bct +aQq +aQq +aQq +aQq +aQq +aPH +aaa +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(127,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 +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +abs +abs +abs +abs +abs +abs +abs +abs +abV +abK +acx +acQ +acU +adp +adD +adD +adN +adD +adD +adC +adM +ado +afx +afO +agj +afO +ahc +ahC +ahW +abs +aiI +abK +abs +ajo +abs +abs +abs +acU +akq +akN +aln +acU +amf +amh +amh +amh +anZ +ami +amh +apC +aqg +aqI +aqI +aqI +amh +atl +aot +arh +arh +arh +aws +axe +axS +ayw +aDE +aHP +aAJ +aBv +aCe +aCe +aDw +aDw +aDw +aCe +aGB +aAJ +aIg +aJb +aJW +aKJ +aKJ +aKJ +aNo +aOh +aOX +aPN +aPN +aRs +aSs +aRs +aPN +aPN +aPL +aVS +aPL +aPN +aPN +aPN +aPK +aPH +aPH +aPH +aPH +aQu +aRm +bbF +aPH +aPH +aPH +aPH +aVm +aVm +aVm +aPH +aPH +aay +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(128,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 +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +abs +abD +abX +acq +abD +abX +acH +aeK +acG +abK +acy +acR +adb +adr +adp +adD +adD +adD +adD +adC +adV +afe +acU +afP +agk +adn +ahd +ahD +ahX +abs +aiJ +abK +abt +ajp +ajB +ajJ +ajR +ake +akr +akO +aln +acU +amg +amC +ana +ana +aoa +aov +ana +apD +aqg +aqJ +aqJ +arN +amh +atl +aot +aux +arh +avE +aws +axf +aqF +arh +arh +azU +aAJ +aBw +aCe +aCH +aCH +aCH +aCH +aCH +aGB +aDy +aIg +aJc +aJY +aKK +aLy +aJY +aLz +aOi +aOY +aPO +aUh +aRt +aRw +aTs +aPL +aUM +aUN +aVT +aWs +aXb +aXL +aYb +aPK +aZc +aZE +aZF +aPH +aQu +aRm +aPH +aPH +aaa +aaa +aay +aaa +aaa +aaa +aaa +aay +aaa +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(129,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 +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +abs +abC +abY +abC +abC +abC +acH +aeJ +acG +ach +acz +acy +adc +adr +adE +adp +adV +adp +adV +adp +aeN +adV +acU +afQ +agl +agI +ahe +ahE +ahY +adn +aiK +abK +abt +ajq +abK +aIR +ajS +ake +akr +akr +aln +acU +amh +amD +ame +ame +ame +aot +apa +apE +aqh +aqK +aqK +aqK +aqK +atm +atN +auy +auY +avF +awt +auY +axT +auY +azh +arh +aAJ +aBx +aCe +aCH +aCH +aCH +aCH +aCH +aGB +aDy +aIi +aJd +aJX +aKL +aLz +aMl +aNp +aOj +aLz +aPP +aQD +aRu +aSt +aTt +aPL +aUN +aUN +aVT +aWt +aXb +aQx +aYc +aPK +aZd +aZF +aZF +aPH +baN +aRm +bbG +aPH +aaa +aaa +aay +aay +aay +aay +aay +aay +aay +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(130,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 +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +abs +abE +abC +abZ +abC +abC +acH +aeJ +aee +aci +acA +acA +acU +acU +acU +acU +acU +acU +acU +acU +acU +acU +acU +afR +agm +agJ +ahf +abK +ahZ +adn +aiK +abK +abt +ajr +ajC +ajC +ajT +abs +aks +aks +alo +acU +amg +amD +ame +aaa +aaa +aot +apb +apF +aqi +aqL +ari +arO +asu +atn +aot +auz +auZ +auv +awu +axg +axU +ayx +azi +aAb +aAJ +aBy +aCf +aCI +aDx +aDx +aDx +aDx +aGC +aDy +aIg +aJe +aJY +aKM +aLA +aJY +aLz +aOk +aNn +aPQ +aQE +aRv +bec +aRu +aUi +aTq +aTq +aVT +aTq +aXc +aQx +aYd +aPK +aZe +aZG +aTf +aSi +baO +bbq +aVm +aVm +aVm +aaa +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(131,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 +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +abs +acn +abC +abC +abY +acF +abs +aeW +acG +acj +acB +acS +add +ads +adF +adO +adW +aek +aex +aeG +aeO +aff +afy +afS +afO +agK +ahg +ahF +aia +adn +aiK +abK +abt +ajs +ajC +ajC +ajU +abs +akt +akP +alp +acU +ami +amE +ame +aaa +aaa +aot +apc +aot +aot +aot +aot +aot +aot +aot +aot +aqE +aqF +avG +aqE +aqE +aqF +ayy +azj +aqF +aAJ +aAJ +aAJ +aAJ +aDy +aDy +aFd +aFV +aAJ +aAJ +aIj +aJf +aJW +aKJ +aKJ +aKJ +aNq +aOj +aLz +aPP +aQF +aRw +aSv +aTu +aPL +aUO +beO +aVT +aWu +aPO +aXM +aYe +aPK +aZf +aZH +bab +aPH +baP +bbr +bbH +aSj +bbH +aaT +bcD +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(132,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 +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +abs +abF +abC +abC +abC +abC +acm +aiK +aca +ack +acC +acT +acT +adt +acT +adP +adP +ael +abW +abs +abK +afg +afz +afT +agn +agL +ahh +ahG +adn +abs +aiL +abK +abs +ajs +ajC +ajC +abs +abs +acU +acU +acU +acU +amj +amF +abt +abt +abs +aof +apd +apG +aqj +aqM +arj +arP +asv +ato +atO +aqm +ava +avH +awv +axh +axh +ayz +azk +axh +aAK +axh +axh +aCJ +axh +ZzV +axh +axh +aGD +axh +bax +aJg +aJX +aKN +aLB +aMl +aNn +aOh +aNn +aPO +aQG +aRx +aQG +aQG +aPO +aQG +aQG +aRx +aKJ +aKJ +aPO +aXc +aPK +aPK +aPK +aPH +aPH +aVn +aXI +aVm +aVm +aVm +aaa +amz +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(133,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 +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +abs +abC +abC +acn +abC +abZ +abt +afq +acl +acl +acD +acU +abt +adu +abt +acU +adX +aem +aey +abs +aeP +afh +abs +afU +ago +agM +ahi +ahH +aib +abs +aiI +abK +abK +ajt +abK +abK +aeH +abK +ajB +akQ +abK +aeH +amk +aiI +abK +abK +aeH +aow +ape +apH +aqk +aqM +aqM +aqM +aqM +aqM +aqM +aqk +avb +aRP +aww +aww +aww +aww +azl +aww +aAL +aww +azs +ZzS +atT +ZzW +atT +atT +atT +atT +bav +aJh +aJX +aKO +aKO +aMn +aLz +bdR +aLz +aPR +aQH +aRy +aQH +aKH +aUj +aRy +aQH +aOi +aWv +aLw +aXN +aYf +aYG +aZg +aZI +aSj +aSj +baQ +bbs +bbI +aPH +aaa +aaa +aaB +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(134,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 +aaJ +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +abs +abE +abC +abC +abC +abC +abt +ahs +aiR +aiR +aeC +abt +ade +adv +ade +abt +adX +aem +abW +abs +aeP +afi +abs +afV +agp +agN +ahj +ahI +adn +abs +acr +adY +abM +aju +ajD +ajD +ajV +ajD +aku +ajD +ajD +alK +aml +amG +ajD +anx +aob +aox +apf +apI +aql +aqN +aqN +aqN +asw +aqN +aqN +aql +avc +avJ +atV +atV +awx +awy +awy +aAc +aAl +aAM +aAl +aCK +aCK +aCK +aFe +aFW +aFW +aFe +avJ +aJh +aJX +aKP +aLC +aMl +aNn +aNn +aNn +aNn +aOf +aOh +aNn +aOh +aNn +aOh +aNn +aVU +aWw +aXd +aKJ +aYg +aYH +aZh +aPK +bac +aQp +ZAh +ZAi +bbJ +aPH +aay +aay +aaB +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(135,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 +aaJ +aaJ +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +abs +abC +abZ +aco +adn +adn +abt +afG +ahH +aja +adn +abt +adf +adw +adG +abt +adX +aem +abW +aeH +abK +acb +afA +afW +agq +agO +ahk +agk +adn +abs +abs +abs +abs +abt +abt +abt +abs +aeH +akv +abt +abt +abs +abt +abt +abs +any +aoc +aoy +apg +apH +aqj +aqO +ark +ark +asx +aqM +atP +aqj +avb +avJ +atV +axi +axl +axm +axm +aAd +aAl +aBz +aAl +aCL +aDz +aEo +aFf +aFX +aGE +aGE +avJ +aJi +aJW +aJW +aJW +aJW +aNr +aNr +aNr +aPS +aQI +aRz +aSw +aTv +aMl +aRz +aUP +aJW +aWx +aXe +aKJ +aYh +aYI +aZi +aPK +bad +bad +baR +ZAj +bbK +aPH +aaa +aaa +aaB +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(136,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 +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +abs +abL +abC +abC +acE +abY +abt +aiA +aiT +ajc +ajh +abt +adg +adv +adg +abt +adX +aem +aez +abs +abs +abs +abs +abs +agr +acK +acK +abt +abs +abs +aaa +aay +aaa +aaa +aaa +aaB +aiM +akf +akw +aiM +aaa +aaa +aay +amH +amJ +anz +aod +anz +apg +apH +aqj +aqP +aqM +aLT +asy +aqM +atQ +aqj +avb +avK +atV +axj +axV +axm +axm +aAe +aAl +aBz +aCg +aCM +aCM +aEp +aFg +aFg +aGF +aGE +avJ +aJh +aJZ +atS +aLD +atS +aaa +aaa +aNr +aJW +aJW +aJW +aSx +aOh +aNn +aJW +aVv +aVw +aNr +aNr +aKJ +aNr +aNr +aNr +aPK +aPH +aPH +aPH +aPH +bbL +aPH +aaa +aaa +aaB +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(137,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 +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +abs +abs +abs +abs +abs +abs +abs +acp +acc +acc +aje +acU +abt +adu +abt +acU +adX +aen +abW +abt +aeQ +afj +afj +afj +ags +aea +abP +afj +afB +aaa +aaa +aay +aay +aay +aay +aaB +aiM +aiO +ajb +aiM +aay +aay +aay +amI +anb +anA +anA +aoz +aph +apJ +aqj +aqQ +aqM +aqM +asx +aqM +atR +aqj +avb +avL +atV +axk +axW +axm +axm +axX +aAl +aBz +aAl +aCN +aDA +aEq +aFh +aFY +aFg +aHn +avJ +aJh +aKa +atS +aLE +atS +aay +aay +aay +aaa +aaa +aRA +aOg +aTw +aNn +aUP +aNn +aVw +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aay +aaa +aVm +bbK +aVm +aaa +aaa +aaB +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(138,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 +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaR +aaT +abu +abM +aiB +acd +ajd +acI +acV +adh +adx +adH +adQ +adQ +aeo +aeA +abt +aeR +adA +afB +abN +ags +adj +aeQ +acN +aeR +aiv +aaa +aay +aaa +aaa +aaa +aaB +aiM +aiO +ajb +aiM +aaa +aaa +aay +amH +amJ +anB +aoe +anB +apg +apH +aqj +aqQ +arl +arQ +asz +aqM +aqO +aqj +avb +avJ +awx +axl +axX +axm +axm +aAf +aAl +aBz +aAl +aCO +aDB +aEr +aEr +bai +aGG +aEr +aIm +aJj +aKa +atS +aLD +atS +aaa +aaa +aay +aaa +aaa +aRA +aSy +aTx +aUk +aJW +aVw +aVw +aay +aay +aVV +aVW +aVW +aVW +aVV +aay +aay +aaa +aVm +bbK +aVm +aaa +aaa +aaB +aaa +aaa +aay +aay +aay +aay +agu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(139,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 +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +abt +abK +abK +ace +acr +acJ +acW +adi +ady +adI +abM +adY +abM +abM +abu +aeS +aeS +aeS +aeS +agt +aeS +aeS +ahJ +aeR +aiv +aay +aay +aay +ajg +ajg +aiM +ajg +akg +ajb +aiM +aiM +aiM +aay +amJ +amJ +amJ +aof +aof +api +apK +aqm +aqm +aqm +aqm +aqk +aqj +aqj +aqm +avb +avJ +awy +axm +axm +ayA +axm +aAg +aAl +aBz +aAl +aCP +aDC +aGa +aFi +aDC +aGH +aHo +avJ +aJh +aKa +atS +aLF +atS +aaa +aaa +aay +aaa +aaa +aRA +aSz +aTy +aUl +aUQ +aaa +aay +aaa +aaa +aVW +aYi +aYJ +aZj +aVW +aaa +agu +aaa +aVm +bbK +aVm +aaB +aaB +aaB +aaB +aaB +aaB +aaB +aaB +aaB +agu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(140,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 +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaJ +aaa +aaa +aaa +abs +abt +abs +abs +abs +acK +abt +abt +acK +abs +abs +abs +abs +abs +abs +aeR +acL +aeR +acL +agu +acL +aeR +ahK +aeS +aiw +aaT +aaT +aaT +ajv +ajE +aiN +ajW +aiN +akx +akR +alq +aiM +aay +amJ +anc +anC +aog +aoA +apj +apL +aqn +aqR +arm +arR +arm +atp +arm +arm +aRO +avM +awz +axn +axn +axn +axn +aAh +aAM +aBz +aAl +aCQ +aDC +aDC +aDC +aDC +aDC +aHp +aIn +aJh +aKa +atS +aLG +atS +aay +aay +aay +aay +aay +aJW +aJW +aJW +aJW +aJW +aaa +aay +aaa +aaa +aVW +aYj +aXf +aZk +aVV +aaa +agu +aaa +aPH +bbK +aPH +aaa +aaa +aay +aaa +aaa +aay +aay +aay +aay +agu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(141,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 +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaJ +aaJ +aaa +aaa +aay +aaa +aay +aaB +aay +acL +abN +adj +acL +aay +aaB +aay +aaa +aay +aaa +aeT +afk +aeT +afk +agu +aeT +afk +aeT +afk +aiv +aay +aay +aay +aiM +ajF +ajK +ajX +akc +aky +ajX +alr +alL +amm +amK +and +anD +aoh +aoB +apk +apM +aqo +apM +apM +arS +asA +atq +apM +apM +ave +avN +awx +axl +axY +axY +axY +aAi +aAl +aBz +aAl +aUq +aDC +aDC +aDC +aDC +aDC +aHq +avU +aJk +aKd +atS +aLD +atS +aaa +aaa +aay +aaa +aaa +aaa +aay +aeQ +afj +afj +afB +aay +aaa +aaa +aVV +aYk +aXf +aZl +aVV +aay +aay +aaa +aZr +bbM +aZr +aaa +aaa +agu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(142,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 +aaJ +aaJ +aaJ +aaa +aaa +aaa +aay +abN +acf +acs +acM +acX +acX +adz +acs +acf +adj +aaa +aay +aaa +aeU +aeU +aeU +aeU +aeU +aeU +ahl +ahl +ahl +aeU +aaa +aay +aaa +ajg +ajg +ajL +ajb +akh +akh +akS +akh +akh +akh +amL +amL +anE +amL +aoC +apl +apN +aoC +aqS +arn +arT +aqS +aqS +atS +atS +avb +avO +awA +aSu +axY +aST +axY +aTI +aAl +aBz +aAl +aIK +aDC +aZn +aFj +aDC +aGI +aHr +aIo +aJl +aKe +aKe +aKe +aKe +aKe +aKe +aKj +aPc +aPc +aPc +aKj +aeT +afB +aeQ +afk +aVV +aVW +aVW +aVV +aYl +aXf +aZm +aVW +aaa +aay +aaa +bbt +bbN +bbt +aay +aay +agu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(143,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 +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aay +abO +acf +acf +acN +acL +acL +adA +adJ +acf +adZ +aaa +aay +aaa +aeU +afl +afC +afX +agv +agP +aeq +ahp +ahp +aeU +aaa +aay +aaa +aaa +ajg +ajM +ajY +akh +akz +akT +als +alM +amn +amM +ane +anF +amL +aoD +apm +apO +aqp +aqS +aro +arU +asB +atr +atT +auA +avf +avN +awA +aSu +axY +aSI +axY +aTH +aAl +aBz +aAl +aAl +aDD +aAl +aFk +aGb +aGJ +aHs +azk +aJm +aKe +aKQ +aLH +aMo +aKQ +aKf +aOZ +aPT +aQJ +aRB +aKj +aeQ +afk +aeT +afB +aVW +aWy +aXf +aXO +aYm +aXf +ber +aVW +aaa +agu +aaa +bbt +bbO +bbt +aaa +aaa +agu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(144,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 +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aay +abN +acf +acs +acM +acX +acX +adz +acs +acf +adj +aay +aay +aay +aeU +afm +afo +afY +afo +agP +ahm +ahp +ahp +aeU +aaa +aay +aaa +aaa +aiM +ajN +ajb +akh +akh +akU +akU +akh +akh +amN +anf +anG +aoi +aoE +apm +apO +aqq +aqS +arp +arU +asC +aqS +atT +atS +avb +avP +awA +axp +axY +axY +azm +aAl +aAl +aBA +aCh +aCT +aBz +aAl +aAl +aAl +aAl +aAl +aIp +aJn +aKe +aKR +aLI +aMp +aNs +aKf +aPa +aKX +aKX +aRC +aKj +aeT +afB +aeQ +afk +aVW +aWz +aXf +aXP +aYm +aYK +aZo +aVW +aaa +agu +aaa +bbt +bbO +bbt +aaa +aaa +aay +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(145,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 +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +abP +acf +act +acs +acY +adk +acs +act +acf +aea +aaa +aay +aaa +aeU +afn +afD +afZ +agw +agQ +aeI +ahL +aic +aeU +aiM +aiM +aiM +aiM +aiM +ajN +ajb +akh +akA +akV +akV +alN +akh +amO +aKw +anG +aoi +aoF +apm +apO +aoF +aqS +arq +arU +asD +arn +atT +atS +avg +avO +awA +axq +axY +axY +azn +aAl +aAN +aBB +aCi +aCi +aBz +aBz +aBz +aBz +aBz +aAM +avJ +aJh +aKe +aKS +aLJ +aMq +aNt +aKf +aPb +aKX +aMv +aRD +aKj +aKj +ZAf +ZAf +aKj +aVX +aVX +aVX +aVX +aYn +aVX +aZp +aZp +aZr +aZr +aZr +aZr +bbP +aZr +aZr +aZr +aZr +aZr +aaJ +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(146,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 +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaJ +aaa +aaa +aaa +aay +aaa +aay +aaa +aaa +aay +aaa +aay +adK +aaa +aay +aaa +aeU +afo +afo +afY +afo +agP +aho +ahN +aie +aiy +aiN +aiN +aiN +aiN +aiN +ajO +ajZ +akh +akB +akW +akW +alO +akh +amP +ang +anG +aoi +aoF +apm +aLS +aqr +aqS +arr +arV +asE +arn +atT +atS +avb +avO +awA +axr +axZ +axZ +axr +aAl +aAO +aAl +aAl +aAl +aAl +aAl +aAl +aAl +aAl +aAl +aIq +aJo +aKe +aKT +aLK +aMr +aNu +aKf +aPc +aPc +aQK +aPc +aKj +aTz +aUm +aUR +aVx +aVx +aWA +aXg +aPd +aYo +aYL +aZq +aZJ +bae +bao +baS +bbu +bbQ +bch +bcq +ZAp +ZAq +aZr +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(147,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 +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaa +aaa +aay +aaa +aay +aaa +aaa +aay +aaa +adK +adL +adK +adK +adK +aeU +afl +afE +aga +agx +agP +ahn +ahM +aid +aix +aiO +aiO +aiO +aiO +ajG +ajP +ajb +akh +akC +akX +alt +alP +akh +amQ +anh +anH +aLd +aoG +apn +apO +aqs +aqS +ars +arU +aLX +aqS +atT +atS +avb +avO +awA +axs +axV +ayD +azo +axr +aAO +aAl +ZzR +aCk +aCk +aEv +aFl +aGc +axu +aHt +avJ +aJh +aKe +aKU +bdK +aMs +aMs +aOm +aPd +aPd +aQL +aRE +aSA +aPd +aUn +aUS +aVy +aVy +aWB +aXh +aMv +aPX +aYM +aZr +aZK +baf +bap +baT +bbv +bbR +bci +bcr +bcu +bcE +aZr +aZr +aZr +aZr +aZr +aZr +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(148,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 +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +adK +adL +adL +adL +adL +adL +adL +adL +adL +adL +aeU +aeU +aeU +ahO +aeU +aeU +aiM +aiM +aiM +aiM +aiM +ajN +aka +akh +akA +akY +alu +alN +akh +amR +ang +anI +aoi +aoH +apn +apO +aqt +aqS +art +arW +asG +arn +atU +auB +avb +avO +awA +axt +axk +ayE +azp +aAm +aAP +aAl +aCk +aCk +aCk +aEv +aEw +aGd +axu +atS +avJ +aJh +aKe +aKV +aLM +aMt +aNv +aOn +ZAc +aPU +aQM +aRF +aSB +aTA +aUo +aKj +aPc +aPc +aKj +aKj +aWC +aKj +aKj +aZr +aZL +aZr +aZr +baU +aZr +aZr +aZr +aZr +bcv +bcF +bcU +bde +bde +bds +bdv +aZr +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(149,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 +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +adL +adL +aeb +aec +aeB +aol +aeV +aec +aeb +adL +agy +agR +ahq +ahP +agy +agC +aaa +aay +aay +aaa +aiM +ajN +ajb +akh +akh +akh +akh +akh +akh +amo +amo +amo +amo +aoI +apo +apP +aoI +aqT +aqT +arT +aqT +aqS +atV +atV +avh +avQ +awA +axu +axu +axu +axu +aAl +aAO +aAl +aCk +aCk +aDF +aEv +ayG +ayG +aGK +aGK +avJ +aJl +aKf +aKf +aLN +aLN +aKf +aKf +aPe +aPV +aQN +aRG +aSC +aTB +aKX +aUT +aKX +aPX +aKj +aKX +aKX +aKX +aKX +aZr +aZL +aZr +baq +baV +bbw +bbS +bbw +aZr +bch +bcF +bcU +bde +bde +bde +bdw +aZr +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(150,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 +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +adL +adL +aec +aep +aec +aec +aec +aep +aec +adL +agz +agS +ahr +agS +aif +agC +aay +aay +aay +aay +ajg +ajN +akb +aiN +aiN +aiN +alv +akR +amo +amS +ani +anJ +amo +aoJ +app +aoJ +aqu +aoJ +aoJ +app +asH +aon +atW +atS +avb +avR +awB +axu +aya +ayF +azq +aAl +aAO +aAl +aCk +aCU +aJE +aEv +aZP +ayG +aGL +aGL +avJ +aJh +aKg +aKW +aLO +aMu +aNw +aKj +aKj +aPW +aQO +aRH +aSD +aTC +bem +aUU +aVz +aKX +aWC +aKX +aXQ +aYp +aYN +aZr +aZL +bag +bar +baV +bat +bar +bat +aZr +bch +bcG +aZr +aZr +bdl +bde +bde +aZr +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(151,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 +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +adL +adL +aed +aec +adL +adL +adL +afp +afF +agb +agA +agT +auD +agT +aig +agC +aaa +aay +aay +aaa +ajg +ajQ +akc +akc +akc +akc +alw +ajb +amo +amT +anj +anK +aok +aoK +apq +apQ +aqv +aqv +aru +arX +asI +aon +atS +atS +avb +avO +awC +axu +ayb +ayG +ayG +aAn +aAQ +aAn +aCk +aCk +aCk +aEv +aEw +aGe +axu +atS +avJ +aJh +aKh +aKX +aKX +aMv +aKX +aKX +aPf +aKX +aQP +aRI +aSE +aTD +aKX +aUV +aVz +aVY +aKj +aKX +aXR +aYq +aKX +aZs +aZL +aZr +bas +baV +bbw +bar +bbw +aZr +bcw +bcG +bcV +aZr +bdl +bde +bdx +aZr +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(152,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 +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +adL +adL +aeB +aec +aoj +adL +arZ +ats +att +adL +agz +agS +agR +agS +aif +agC +aay +aay +aay +aay +ajg +ajg +ajg +ajg +ajg +ajg +ajN +alQ +amo +amU +ank +anL +amo +aoL +apr +apR +aqw +aqU +arv +arY +asJ +aOl +atX +aRM +avi +avO +awD +axu +ayc +ayH +azr +aAl +aAO +aAl +aCj +aCk +aCk +aEw +aFm +aGc +axu +aHt +avJ +aJh +aKi +aLZ +aKX +aMw +aNx +aOo +aKi +aPX +aQQ +aRJ +aKX +aKX +aKX +aUW +aKX +aVZ +aKj +aKX +aXS +aKX +aKX +aZr +aZL +aZr +bat +baW +bat +bar +bat +aZr +bcx +bcG +bcW +aZr +bdm +bdt +bdy +aZr +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(153,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 +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +adL +adL +aef +aec +adL +adL +adL +asF +afH +adL +agB +agR +aht +agR +agB +agC +aaa +aay +aay +aaa +aaa +aay +aaa +aay +aaa +aiM +alx +alR +amo +amV +anl +anM +amo +aoM +aps +aps +aps +aps +aps +aps +asK +aND +atY +aQW +avj +avS +awA +axu +ayd +axu +axu +aAl +aAR +aAl +axu +axu +axu +axu +axu +axu +axu +awA +aIr +aJh +aKj +aKi +aLP +aKi +aKj +aOp +aKj +aKj +aPc +aRK +aSF +aPc +aKj +aKj +aPc +aPc +aKj +aKj +aKj +aKj +aKj +aZr +aZM +aZr +bau +bau +bau +bbT +bar +bag +baS +bcG +bcX +aZr +aZr +aZr +aZr +aZr +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(154,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 +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +adL +adL +aec +aep +aec +aec +aec +aep +aec +adL +agC +agC +agC +agC +agC +agC +aiM +aiM +ajg +aaa +aaa +aay +aaa +aay +aaa +aiM +ajN +ajb +amo +amo +amo +amo +amo +aoN +apt +apS +aqx +aqV +arw +aLU +asL +aon +atS +atS +avk +aRQ +awE +axv +aye +ayI +ayI +awE +aAS +ayI +aCl +aCV +aDG +aEx +ayI +ayI +ayI +ayI +aIs +bbb +aKk +aKk +aKk +aKk +aKk +aOq +aPg +aKk +aKk +aRL +aSG +aTE +aTE +aTE +aTE +aTE +aWD +aTE +aTE +aYr +aTE +aZt +aZN +beu +bev +beB +azL +azL +azL +azL +bcy +bcH +azL +azL +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(155,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 +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +adL +adL +aeg +aec +aeB +aom +aeX +aec +aeg +adL +agC +agU +ahu +ahQ +aih +agU +aiP +aiO +ajg +aiM +aiM +aiM +aiM +aiM +aiM +aiM +ajN +alS +aiN +aiN +aiN +aiN +aLL +aoO +aps +aps +aps +aps +aps +aps +asM +aon +atZ +atS +avl +avU +awF +axw +aww +aww +azs +ave +aww +aBC +ZzS +ZzT +ZzU +ZzW +atT +atT +atU +atT +bay +baX +aKl +aKZ +aKZ +aKZ +aKZ +aKZ +aKZ +aPY +aKZ +bdW +aKZ +aKZ +aKZ +aKZ +aKZ +aKZ +aWE +aKZ +aKZ +aYs +aKZ +aZu +aKZ +bet +aSK +aRR +azL +bbU +aLY +bbZ +aAx +aDi +ZAt +azL +aaJ +aaJ +aaa +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bdB +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(156,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 +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +adL +adL +adL +adL +adL +adL +adL +adL +adL +aaJ +agU +ahv +ahQ +aii +aiz +aiN +aEs +aIk +aiN +aiN +aiN +aiN +aiN +aiN +aIk +aly +alT +akc +amW +aky +akc +aLR +aoP +apu +apT +aqy +aqW +arx +asa +asN +atu +asi +asi +asi +avV +avo +auH +ayf +ayf +ayf +aAo +ayf +aBD +aBD +aBD +aDH +aAl +aAl +aAl +aEF +aEF +aGW +aJq +aEF +aEF +aEF +aMx +aNy +aMx +aMD +aMD +aMD +aRN +aSH +bef +ben +aTK +aTF +aTF +aTK +aTK +baj +aTF +baj +aTK +aTK +aTK +baw +baY +bbx +aWg +aWg +aAZ +bby +aDi +aBT +azL +bdn +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(157,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 +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +adL +adL +adL +adL +adL +adL +adL +aaJ +aaJ +agU +ahw +ahR +aij +agU +aAj +ajb +ajg +aIl +aIl +aiM +aiM +aiM +aiM +akZ +akZ +alU +akZ +akZ +akZ +akZ +aon +aoQ +apv +apU +aqz +aqz +ary +apv +asO +atu +aua +auE +avm +avV +avo +auH +ayf +ayJ +azt +aAp +aAT +ayf +aCm +aCW +aDI +aBA +aFn +aAl +aGM +aHu +aGW +aJr +aKm +aGM +aEF +aMy +aMy +aMy +aPh +aPZ +aMD +bdX +aSJ +bee +bee +aTF +aUr +aUr +aWF +aXi +bep +aWI +bep +aXi +aZO +aTK +bew +baZ +aZx +bbV +aNE +aNE +aHG +bcI +ZAu +aBR +aaa +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(158,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 +aaJ +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +agV +agV +agV +agV +agV +aiQ +aEu +agV +aiM +aiM +aiM +aay +aaa +aaa +akk +alz +alV +amp +amp +amp +anN +aon +aoR +apw +apV +aqA +aqX +arz +asb +asP +atu +aub +auF +avn +avW +awG +axx +ayf +ayK +azu +aAp +aAU +aBE +aCn +aBD +aDJ +aEy +aFn +aAl +aGN +aHv +aIu +aHv +aJq +aHu +aEF +aMz +aNz +aOr +aPi +aQa +aMx +bdY +aSJ +beh +beg +aTF +aUX +aUr +aWG +aXj +aXp +aXp +aXp +aXp +aWG +aTK +bey +bba +aBR +aBb +aRZ +aAx +aAx +aDi +aAx +aBR +aaa +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(159,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 +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +agV +ahx +ahS +ahz +axo +aAk +aEt +agV +aaa +aay +aaa +aay +aaa +akk +akk +akk +akk +amq +akk +akk +anO +akZ +aoS +apx +apx +apx +apx +apx +apx +apx +atv +auc +auG +avo +avX +awH +auk +ayf +ayL +azv +aAq +aAV +aBF +aCo +aBD +aBz +aEz +aFo +aAl +aGO +aHw +aIv +aJs +aKn +aHu +aEF +aMA +aNz +aOs +aPi +aQb +aMx +bdY +aSJ +beg +beg +aTF +aUr +aUr +aWI +aXk +aXT +aXT +aXT +aXp +bes +aTK +bex +beA +aBR +aBb +aRZ +bcs +bcz +bcI +ZAx +aBR +aaa +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(160,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 +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +agV +ahy +ahT +aik +ahT +aiS +aCS +agV +aay +agu +agu +agu +aay +akk +ala +alA +alA +alb +ala +akk +anP +amp +aoT +akk +apW +aqB +alc +arA +asc +arA +asi +aud +auH +avo +avV +asi +asi +ayf +ayM +azw +aAr +aAW +aBF +aCp +aBD +aBz +aEA +aFo +aAl +aGP +aHx +aIw +aJt +aKn +aLa +aEF +aMB +aNz +aOt +aPj +aQc +aQR +bea +aSK +bej +bej +aTF +aUr +aUr +aWI +aXl +aXU +aXU +aXU +aZv +aWG +aTK +bez +beC +azL +bbW +aBb +aAx +aAx +aDi +bcj +azL +aay +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(161,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 +aaJ +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +agV +ahz +ahS +ahx +ahT +aAy +aCS +agV +aaa +aaa +aaa +aay +aaa +akk +alb +ale +alW +amr +alb +anm +anm +anm +aoU +akL +apX +alA +alA +arB +arA +arA +asi +aue +auH +avp +avY +awI +axy +ayf +ayN +azx +aAp +azv +aBG +aCq +aBD +aBz +aEA +aFo +aAl +aGQ +aHy +aIx +aJt +aKn +aHu +aEF +aMC +aMC +aOu +aPk +aQd +aMD +bdZ +bed +bei +aUp +aTF +aUr +aWa +aWI +aXm +aXU +aXU +aYO +aXp +aWG +aTK +bez +aSJ +azL +bbX +ZAk +ZAn +bcA +bcI +bcj +azL +aaa +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(162,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 +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +agV +agV +agV +avI +ayC +aCR +aFZ +agV +aaa +aaa +aaa +aay +aaa +akk +alc +alB +aKs +aKs +amX +ann +anQ +anm +aoU +akL +apY +amX +akk +akL +akL +anU +asi +auf +auH +avo +avZ +awJ +awJ +ayf +ayO +azy +aAp +aAX +ayf +aCn +aBD +aDJ +aEB +aEB +aAl +aGR +aGR +aIy +aJu +aJq +aHu +aEF +aMD +aMx +aOv +aMD +aQe +aMD +aRS +aSM +aTK +aTF +aTK +aUr +aUr +aWI +aXn +aXT +aXT +aXT +aXp +aWG +aTK +bez +aSJ +azL +bbX +ZAl +ZAn +aHG +ZAr +bcY +azL +aaa +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(163,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 +aaJ +aaJ +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +agV +avd +ayB +aBt +aFI +agV +aaa +aaa +aaa +aay +aaa +akk +alb +alb +alA +alA +alA +alA +anR +akk +aoU +akk +apZ +aqC +anm +arC +asd +ase +asi +aug +auH +avo +awa +awd +axz +ayf +ayP +azz +aAs +aAV +aBF +aCr +aBD +aBz +aEC +aAl +aAl +aGS +aHz +aIz +aJv +aKo +aHu +aEF +aME +aNA +aOw +aPl +aNA +aQS +aRR +aSL +aTK +aUr +aUr +aUr +aUr +aWI +aXo +aXp +aXp +aXp +aXp +aWG +aTK +ZAg +beD +azL +bbX +ZAl +ZAn +aNE +ZAs +bcZ +azL +aaa +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(164,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 +aaJ +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +agV +avT +ahT +aCS +aHH +agV +aaa +aaa +aaa +aay +aay +akk +aJD +alA +alX +aKt +aKu +alA +alA +aoo +aoU +akk +anm +anm +anm +arC +ase +arC +asi +asi +auI +avo +avZ +awJ +awJ +ayf +ayf +ayf +aAo +ayf +aBD +aCs +aBD +aDK +aAl +aAl +aGf +aGT +aHA +aIA +bbc +aKp +aLb +aEF +aME +aNB +aOw +aNA +aNA +aQT +aRR +aSN +aTK +beo +aUX +aUr +aUX +aWG +aXp +aXp +beq +aXp +aXp +aWG +aTK +beA +beA +azL +azL +azL +azL +aFC +bcJ +azL +azL +aay +aay +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(165,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 +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +agV +aiU +aiU +aiU +aiU +agV +aaa +aaa +aaa +aay +aaa +akk +ale +alC +alA +alA +alA +alA +anS +amq +aoU +alb +aqa +anv +aqY +alb +asf +asQ +asi +auh +auJ +avq +awb +awK +awK +awK +awK +azA +aAt +awK +awK +aCt +aCX +aDL +ZzX +aED +aED +aGU +aHB +aED +aJw +aKq +aGM +aEF +aMF +aNA +aOw +bdS +aQf +aLQ +aRR +aSO +aTK +aUr +aUr +aUr +aUr +aWJ +aXi +aXi +aXi +aXi +aXi +aZR +aTK +beA +beA +azL +aHR +azL +aFs +aBb +aDj +azL +aaa +aaa +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(166,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 +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aay +aay +aay +aay +aay +aay +aay +agu +agu +agu +aaa +akk +alf +alD +alA +ald +aKv +ano +anT +anm +aoV +apy +apy +aqD +apy +arD +asg +apy +atw +aui +auK +avr +awc +awL +axA +axA +axA +axA +axA +axA +aBH +axA +aCY +avo +aEE +aHu +aHu +aGW +aHC +aAl +aAl +aDK +aAl +aLQ +aMG +aNC +aOx +aPm +aQg +aLQ +aRT +aSP +aLQ +aLQ +aLQ +aLQ +azL +azL +aWb +aWb +aWb +aWb +aWb +aWb +azL +aEG +aEG +azL +azL +azL +aBR +aBb +aDj +azL +aay +aay +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(167,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 +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aay +aaa +aaa +aay +aaa +aaa +aaa +aay +aki +aki +aki +aki +alY +all +all +anm +anm +anm +anO +akk +akL +akL +akk +aoU +anm +akk +asi +asi +asi +avs +awd +awM +auk +asi +asi +azB +asi +asi +asi +asi +aCZ +avo +aEF +aFp +aGg +aGW +aHD +aAl +aEB +aBz +aFn +aAl +aMH +aNA +aOy +aPn +aQh +aLQ +aRU +aSQ +aNC +aNC +aUY +aNA +azL +aWb +aWb +aXq +aXq +aXq +aXq +aWM +aWM +aWM +aBb +aBb +aBb +aBe +ZAo +bcB +aDj +azL +aaa +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(168,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 +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aay +ail +ail +aay +ail +ail +aay +aay +aay +aay +aki +akD +alg +alE +alZ +ams +alY +anp +anU +alb +anO +ale +alA +alA +akk +aoU +ash +asR +asi +auj +asi +avt +awe +auk +auk +asi +ayQ +azC +asi +ayQ +aBI +asi +aDa +avo +aEF +aFq +aGh +aGW +aHE +aAl +aJx +aBA +aFn +aAl +aMI +aNA +aOw +aPo +aQi +aLQ +aRV +aSR +bdS +aUs +aUZ +aVA +azL +aWb +aXq +aXq +aXq +aXq +aXq +aXq +aWM +aWM +aWM +aXq +aWM +aBb +ZAo +bcB +aDj +azL +aaa +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(169,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 +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aay +aaa +aaa +aay +aki +akE +alh +alF +ama +amt +amY +anq +anV +amp +aoW +apz +aqb +alA +akk +aoU +asi +asS +asi +asS +asi +asi +asi +auk +axB +asi +ayR +azD +asi +aAY +aBJ +asi +aDb +aDN +aEF +aFr +aGi +aGW +aHF +aAl +aFo +aBz +aLc +aAl +aMJ +aNA +aOz +aNC +aNC +aQU +aRW +aSR +aNA +aUt +aVa +aUt +azL +aWb +aXq +aXq +aXq +aWb +aWb +aWb +aWb +aWb +aWb +aWb +aWM +aRZ +aBR +aAx +aDi +azL +aaa +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(170,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 +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aay +aaa +aaa +aaa +akj +akF +ali +alG +amb +amu +aki +akk +akk +anm +anm +akk +akk +akk +akk +aoU +asj +asT +atx +auk +auL +auk +asi +auk +auk +asi +asi +asi +asi +asi +azB +asi +aDc +avo +azL +azL +azL +aGX +azL +aAl +aFo +aBz +aLc +aAl +aMK +bdQ +aOw +aNA +aQj +aLQ +aRX +aSR +aNA +aUu +aVb +aVB +azL +aWK +aXq +aXq +aYt +aWb +aWK +aZw +aZw +aWK +aWK +aWb +aWM +ZAm +azL +bcz +bcI +azL +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(171,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 +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aay +aaa +aaa +aaa +akj +akG +alj +alH +ama +amv +aki +anr +anr +anr +aop +alA +amw +alb +amq +aoU +asi +ash +asi +asi +auM +avu +asi +auk +axC +auk +auk +auk +auk +aTL +auk +auk +aDc +avo +azL +aFs +aGj +aDi +aAx +aAl +aAl +aKr +aAl +aAl +azL +azL +aOA +aPp +azL +azL +azL +aSS +azL +azL +azL +azL +azL +aWL +aWK +aXV +aYt +aWb +aWK +aWK +bak +aWK +aZw +aWb +aWM +aWM +azL +bcj +bcK +azL +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(172,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 +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aay +aaa +aaa +aaa +aki +akH +akH +akH +amc +ams +aki +ans +anW +anX +aoq +alA +alA +alb +amq +aoU +asi +asU +aty +asi +auN +auk +aul +auk +axD +ayg +auk +azE +auk +auk +auk +auk +aDc +avo +aEG +aAx +aAx +aDk +aHG +aIB +aHG +aHG +aQV +aHG +aML +aNE +ZAa +ZAd +bdT +bdV +aRY +aYU +bek +aAx +aAx +aAx +aEG +aWK +aWK +aXq +aYu +aWb +aZw +aWK +aWb +baB +aZw +aWb +aXq +aWM +azL +bcj +bcK +azL +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(173,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 +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aay +aaa +aaa +aay +aki +akI +alk +alI +amd +ams +aki +ant +alA +alA +alA +alA +alA +anX +anm +aoU +asi +asV +atz +aul +auk +auk +akk +akk +akk +akk +akk +akk +aoo +akk +asi +asi +aDd +aDO +aCy +aCy +aCy +aCy +aCy +aCy +aCy +aCy +bdF +aCy +aCy +aNF +ZAb +ZAe +aBR +bdU +aRZ +aAx +aDi +aAx +aAx +aVC +aEG +aWK +aWK +aXq +aYt +aWb +aZw +aZS +bal +aZw +aZw +aWb +aXq +aXq +azL +bcj +bcL +azL +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(174,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 +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aay +aay +aay +aay +aay +aki +aki +all +all +alY +aki +aki +ala +anW +aop +alA +aoq +aqc +alb +anm +aoU +asi +asi +asi +ash +ash +asi +akk +awN +alA +ayh +ayS +awN +alA +akk +aBK +avm +aDc +avo +aEH +aFt +aFu +aFx +aFu +aZQ +aFt +aJy +bdH +bdM +aCy +azL +aOA +azL +azL +azL +azL +azL +aTT +azL +azL +azL +azL +aWL +aXq +aXq +aYt +aWb +aWK +aWK +aWK +aWK +bbe +aWb +aXq +aWK +azL +azL +aTT +azL +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aim +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(175,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 +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aay +aaa +aaa +aay +akk +akJ +alb +alJ +alJ +amw +amq +alb +anX +aoq +alb +akk +akL +akL +akk +arE +amp +amp +atA +amp +amp +anN +amq +alA +alA +alA +ayT +alA +alA +akk +aBL +aCv +aDc +avo +aEH +aFu +aFu +aFx +aFu +aGl +aFu +aJy +bdG +bdL +aFx +aNG +aOC +aOI +aNH +aQX +aOI +aNI +aTN +aUv +aUv +azL +aWb +aWM +aXq +aXq +aXq +aWb +aWb +aWb +aWb +aWb +aWb +aWb +aWM +aWM +azL +aaJ +bcM +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(176,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 +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aim +aay +akk +akK +alm +alm +alm +alm +akk +anr +anY +anr +anr +akk +amx +amp +amp +arF +ask +asW +atB +aum +auO +anO +akk +apz +alA +ayi +alA +azF +apz +akk +aBM +aCv +aDc +avo +aEI +aFu +aGk +aFx +aHa +aHa +aHa +aJy +bdJ +bdO +aFx +aNH +aOD +aPq +aNJ +aQY +aSa +aNI +aTN +aUw +aVc +azL +aWb +aWb +aWM +aXq +aXq +aXq +aXq +aXq +aXq +aWM +aXq +aXq +aXq +aXq +azL +aaJ +bcM +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(177,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 +aer +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aay +akk +akL +akL +akL +akL +akL +akk +akk +akk +akk +akk +akk +aqd +akk +akk +akk +aoo +asX +akk +akk +auP +anO +akk +awO +axE +alA +alA +asY +apz +akk +aBN +aCw +aDc +avq +aEJ +aFv +aFv +aGY +aHI +aIC +aJz +bbd +bdI +bdN +aFx +aNI +aOE +aPr +aPr +aQZ +aSb +aSU +aTN +aUx +aUx +azL +azL +azL +azL +azL +aWM +aWM +aWM +aXq +aWM +aWM +bak +aWM +aXq +aXq +azL +aaJ +bcM +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(178,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aay +aaa +aaa +aay +aaa +aaa +aaa +akk +anu +alb +aor +aoX +apA +anO +akk +aqZ +arG +alA +asY +atC +akk +auQ +anO +akk +akk +akk +akk +amq +azG +akk +akk +aBO +aCv +aDc +avo +aEH +aFu +aFu +aFx +aHJ +aID +aJA +bdE +aLe +aLe +aMM +aNJ +aOF +aPs +aQk +aRa +aOI +aSV +aTO +aOI +aOI +aOI +aWc +aWN +aXr +azL +aYv +aYP +azL +azL +azL +azL +azL +azL +bca +azL +azL +aaJ +bcM +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(179,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aay +aaa +aaa +aaB +aaa +akL +akL +akL +anv +alb +aos +aos +aos +anO +akk +aqZ +aoq +alA +asZ +aqZ +akk +auR +avv +amp +amp +atA +amp +amp +azH +anN +akk +aBP +avm +aDc +avo +aEH +aFw +aFu +aFx +aHK +aIE +aJB +bdD +aLf +aLV +aFx +aNI +aOG +aPt +aQk +aQk +aOI +aOC +bel +aUy +aVd +aOI +aNI +aNI +beP +azL +aHd +aHd +azL +aZT +aAx +aDl +aDl +aAx +aAx +bck +azL +aaJ +bcM +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(180,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aay +aay +aay +aay +aaB +aay +akL +amx +amZ +anw +amp +amp +amp +amp +aqe +akk +aqZ +aoq +alA +asZ +aqZ +akk +auS +ask +ask +ask +atB +ask +ask +azI +anO +azL +azL +azL +aDe +aDP +aCy +aFx +aFx +aFx +aHL +aIF +aJB +aJy +aJy +aJy +aFx +aNK +aOH +aPu +aQk +aRb +aOI +aSW +aTP +aUz +aVe +aOI +aNI +aWO +aXt +azL +aBb +aAx +azL +aZU +bam +baC +bbf +bby +aBb +bcl +azL +aaJ +bcM +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(181,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aay +aaa +aaa +aaa +aaB +aaa +akL +amy +akL +akk +akk +akk +akL +akL +akk +akk +akk +akk +ZAv +asZ +aqZ +akk +akk +akk +akk +akk +akk +akk +ayU +auP +anP +aAZ +aBQ +aAZ +aDf +aDQ +aCy +aZQ +aFu +aGZ +aHM +aIG +aJC +aHa +aFu +aLW +aFx +aNI +aOH +aPv +aQk +aQk +aOI +aSX +aTQ +aUA +aVf +aNJ +aWd +aWP +aXu +azL +aAx +aYQ +aEG +aAx +bam +baC +bbf +bby +aBb +bcm +azL +aaJ +bcM +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(182,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aay +aaa +aaa +aay +aaB +aay +aay +amz +aay +aaa +aaa +aaa +aaa +aaa +aay +aaa +aaa +akL +alA +ata +alA +alA +atC +avw +alA +alA +alA +akk +ayV +azJ +aAu +aBa +aBa +aBa +aDg +aDR +aCy +aFu +aFu +aHa +aHN +aIH +aHN +aHa +aFu +bdP +aFx +aNL +aOI +aNP +aNP +aNP +aNP +aSY +aTR +aUB +aVg +aOI +aVD +aWQ +aVD +azL +aYw +aDi +azL +aAx +aBb +baD +bbg +bbz +bcb +bcc +azL +aaJ +bcM +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(183,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aay +aaa +aay +aaa +aaB +aaa +aay +aaB +aay +aaa +aaa +aaa +aaa +aaa +aay +aaa +aaa +akL +arA +arA +arA +aun +alA +aoq +awf +awP +aoq +akk +ayW +akL +akL +azM +aBR +azL +aDk +aDS +aCy +aFy +aGl +aHa +aHN +aIH +aHN +aHa +aHa +aHa +aFx +aNM +aOJ +aPw +aQl +aQl +aNP +aSZ +aTN +aNI +aVh +aOI +aWe +aWQ +aQk +azL +aDU +aDi +azL +aAx +aBb +aBb +aAx +aDR +aAx +aBb +azL +aaJ +bcM +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(184,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aay +aay +aaB +aaB +aaB +aaB +aaB +aaB +aaB +aaB +aay +aay +aay +aay +aay +aaa +aaa +akL +arA +atb +atD +arA +alA +aoq +aSf +awQ +aoq +akk +ayX +azK +aAv +aBb +aBS +aCx +aAx +aDR +aCy +aFu +aFu +aHb +aHN +aII +aHN +aHa +aFu +bdP +aFx +aNN +aOJ +aPx +aQm +aRc +aNP +aNI +aTN +aNI +aNI +aVD +aQk +aWR +aQk +azL +aYx +aDj +azL +aZV +aZV +baE +bbh +bbA +bcc +aAx +azL +aaJ +bcM +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(185,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aay +aaa +aaB +aaa +aay +aaa +aay +aaa +aaa +aaa +aaa +aaa +aay +aaa +aaa +akL +asl +atc +atE +arA +alA +alA +alA +alA +atC +akk +ayY +aos +aos +aBc +aAx +aBR +aBb +aDT +aCy +aFz +aGm +aHc +aHO +aII +aHN +aHa +aFu +aLW +aFx +aNO +aOK +aPy +aQn +aRd +aNP +aNI +aTN +aUC +aNI +aVD +aQk +aWS +aQk +azL +aDU +aYR +azL +aZW +aZV +baF +bbi +aDR +aAx +bcn +azL +aaJ +bcM +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(186,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aay +aaB +aay +aaa +aaa +aay +aaa +aaa +aaa +aaa +aaa +aay +aaa +aaa +akk +akk +akk +akk +amq +akk +akk +akk +akk +akk +akk +alb +auT +aAw +aBd +aBT +aBR +aBb +aDU +aCy +aCy +aCy +aCy +aFx +aJG +aFx +aFx +aFx +aFx +aFx +aNP +aNP +aNP +aNP +aNP +aOI +aTa +aTS +aUD +aVi +aOI +aWf +aWQ +aWf +azL +aDU +aYS +azL +aZV +aZV +baG +bbj +aDR +aBb +aBb +azL +aaJ +bcM +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(187,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aay +aaa +aaa +aaa +aay +aaa +aaa +aaa +aaa +aaa +aay +aay +aay +akk +asm +atF +aos +aos +auC +awg +aze +azX +avx +akk +akk +azL +azL +azL +azL +azL +aBb +aDU +aBb +aFA +aBb +aHd +aHN +aII +aKx +aLj +aMN +aHN +aHN +aKY +aPB +aRf +aSq +aVu +aJy +azL +aTT +azL +azL +azL +azL +aOA +azL +azL +aDU +aYT +azL +azL +azL +azL +azL +aDP +azL +azL +azL +aaJ +bcM +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(188,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +akk +asn +aos +aos +aos +avx +avx +avx +avx +alb +amw +alb +azM +aAx +aBe +aAx +azM +aAx +aDV +aEK +aXw +aGn +ZzY +ZzZ +aJH +aHI +aHI +aNQ +aKy +aOV +aPz +aJF +aKy +aKy +aKy +beb +aHe +aTU +aUE +aHG +aNE +aNE +aOB +aXv +aNE +aOB +aYU +aZx +aZX +ban +baH +aXv +bbB +aHG +bco +aZx +bcC +bcN +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(189,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 +abG +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +akk +akk +akk +akL +akL +akL +akk +akk +aBW +axF +avx +alb +azL +azL +azL +aBU +aCy +aCy +aCy +aEL +aFC +aCy +aCy +aHN +aHN +aHN +aJy +aMO +aOP +aMP +aII +aPC +aRg +aQo +aHN +aHN +aEG +aTV +aUF +aAZ +aAZ +aWg +aWT +aXw +aXw +aYy +aAZ +aZy +aAZ +aWg +baI +aAZ +bbC +aBb +bcp +azL +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(190,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +atd +ate +ate +ate +avy +akk +akk +akL +akL +akk +azL +aTJ +aBf +aBh +aCy +aAx +aDW +aEM +aBb +aBb +aCy +aHN +aHN +aLg +aJy +aOL +aHN +aMP +aII +aQy +aFx +aFx +aFx +aFx +aCy +aBR +aUG +aBR +azL +aBR +aBR +aXx +aXx +aBR +aBR +azL +azL +azL +aBR +bbk +aBR +azL +azL +azL +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(191,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +ate +ate +ate +ate +avz +atd +ate +axG +ate +avy +azL +aAz +aBg +aBV +aCy +aAx +aAx +aEN +aFD +aGo +aCy +aHN +aJI +aKY +aJy +aNR +aNR +aMP +aII +aQo +aSc +aQo +aWH +beE +aCy +aBR +aDR +aBR +azL +aWh +aWU +aWW +aXW +aYz +aYV +azL +aaa +aaa +aBR +aAx +aBR +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(192,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +ate +ate +auo +ate +ate +ate +ate +ate +ate +avy +azL +aAA +aBh +aIJ +aCy +aDl +aBb +aEO +aFE +aGp +aCy +aHN +aHN +aJy +aJy +aJy +aJy +aMP +aII +aQo +aFx +aJI +baA +beG +aCy +aBR +aUG +aBR +azL +aWi +aWV +aWW +aWW +aWW +aWW +azL +aay +aay +aBR +bbk +aBR +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(193,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +ate +ate +ate +aaJ +aaJ +ate +ate +aaJ +aaJ +aaN +aAB +aBi +aBX +aCy +aDm +aBb +aBb +aAx +aGq +aCy +aAx +aAx +azM +aAx +aAx +aFx +aOW +aPA +aFx +aFx +aTr +aXs +beF +aCy +aaa +aUH +aaa +azL +aWj +aWW +aXy +aXX +aYA +aYW +azL +aaa +aaa +aaa +aaB +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(194,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaN +aaN +aaN +aaN +aCy +aAx +aDX +aEP +aFF +aGr +aCy +azL +azL +azL +aBh +aON +aNU +aMP +aII +aFx +aFx +aFx +aFx +aFx +aCy +aay +aUH +aay +azL +azL +azL +azL +azL +azL +azL +azL +aay +aay +aay +aaB +aay +aay +aay +aay +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(195,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aCy +aCy +aCy +aCy +aCy +aCy +aCy +aHQ +aIL +aLh +aBh +aOM +aFx +aMQ +aNS +aFx +aaa +aaa +aay +aaa +aay +aaa +aUH +aaa +aaa +aaa +aaa +aaa +aaa +aay +aaa +aay +aaa +aaa +aaa +aaB +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(196,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aay +aaa +aaa +aaa +azL +aAx +aHR +aAx +aBh +aLl +aBh +aFx +aMR +aNT +aFx +aay +aay +aaB +aaB +aaB +aaB +amz +aay +aay +aay +aay +aay +aay +aay +aay +aay +aay +aay +aaB +aaB +aaB +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(197,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aay +aaa +aaa +aaa +azL +aAx +aAx +aAx +aLi +aLk +aOO +aFx +aMS +aHN +aFx +aaa +aaa +aay +aaa +aay +aaa +aaB +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaB +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(198,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aay +aay +aay +aay +aay +azL +azM +azL +azL +azL +azL +aCy +aFx +aMT +aNU +aFx +aFx +aFx +aay +aaa +aaa +aay +aaB +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bdC +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(199,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aay +aaa +azL +aAx +aFx +aFx +aFx +aFx +aFx +aMa +aMU +aHN +aLj +aSd +aHa +aay +aaa +aaa +aaa +aaB +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(200,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aay +aaa +azL +aAx +aFx +aFu +aFu +aFu +aLm +aMb +aMV +aNV +aHN +aSp +aHa +aay +aaa +aaa +aay +aaB +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aim +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(201,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aay +aaB +aaB +aaB +aBR +aAx +aFx +aFu +aJJ +aFu +aLn +aHc +aMW +aNW +aHN +aSe +aHa +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(202,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aay +aaa +azL +aAx +aFx +aIM +aFu +aJJ +aFu +aMc +aMX +aNX +aOQ +aHN +aHa +aay +aaa +aaa +aaa +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(203,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aay +aaa +azL +aAx +aFx +aFy +aJK +aFu +aFu +aMd +aMY +aNW +aOR +aPD +aFx +aiv +aiv +aiv +aiv +aiv +aVj +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(204,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aay +aaa +azL +aAx +aFx +aFu +aJJ +aFu +aLn +aHc +aMZ +aNW +aHN +aPE +aFx +aay +aaa +aaa +aaa +aay +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(205,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aay +aaB +aaB +aaB +aBR +aAx +aFx +aFu +aFu +aFu +aLm +aMb +aNa +aNY +aOS +aPF +aFx +aFx +aHa +aHa +aHa +aFx +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(206,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aay +aaa +azL +aAx +aFx +aFx +aFx +aFx +aFx +aMa +aNb +aNZ +aOS +aPG +aFx +aHN +aHK +aTb +aTb +aFx +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(207,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +azL +aAx +aAx +aAx +aAx +aAx +aLo +aMe +aJC +aOa +aOT +aHN +aNU +aHN +aHK +aTc +aTc +aFx +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(208,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aim +aaa +aaa +aaa +azL +azL +azL +azL +azL +azL +aJy +aFx +aFx +aFx +aFx +aFx +aFx +aHN +aHM +aMe +aTW +aFx +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(209,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aFx +bbD +aHN +aSg +aTd +aFx +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(210,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aFx +aRf +aHN +aHN +aRh +aFx +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(211,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aFx +aRf +beH +beL +aSh +aFx +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(212,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aFx +aFx +aFx +aFx +aFx +aFx +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(213,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(214,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(215,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(216,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(217,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(218,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(219,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(220,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(221,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaJ +aaJ +aaJ +aaJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(222,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(225,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(228,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(229,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(230,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(231,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(232,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(233,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(234,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(235,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(236,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(237,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(238,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(239,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(240,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(241,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(242,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(243,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(244,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(245,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(246,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(247,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(248,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(249,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(250,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(251,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(252,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(253,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(254,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(255,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} diff --git a/_maps/map_files/BirdStation/job/job_changes.dm b/_maps/map_files/BirdStation/job/job_changes.dm new file mode 100644 index 0000000..cca341c --- /dev/null +++ b/_maps/map_files/BirdStation/job/job_changes.dm @@ -0,0 +1,126 @@ + +//custom access for some jobs. pasted together from ministation. + +/datum/job/New() + ..() + supervisors = "the captain and the head of personnel" + +/datum/outfit/job/New() + box = /obj/item/weapon/storage/box/survival/radio + +/datum/job/assistant // Here so assistant appears on the top of the select job list. + +//Command + +/datum/job/captain/New() + ..() + supervisors = "Nanotrasen and Central Command" + +/datum/job/hop/New() + ..() + supervisors = "the captain and Central Command" + +/datum/job/hop/get_access() + return get_all_accesses() + +//Security + +/datum/job/hos/New() + ..() + +/datum/outfit/job/hos/New() + box = /obj/item/weapon/storage/box/security/radio + +/datum/job/officer/New() + ..() + total_positions = 4 + spawn_positions = 4 + access = list(access_security, access_sec_doors, access_brig, access_armory, access_court, access_maint_tunnels, access_morgue, access_weapons, access_forensics_lockers) + minimal_access = list(access_security, access_sec_doors, access_brig, access_armory, access_court, access_maint_tunnels, access_morgue, access_weapons, access_forensics_lockers) + +/datum/outfit/job/officer/New() + box = /obj/item/weapon/storage/box/security/radio + +/datum/job/detective/New() + ..() + access = list(access_security, access_sec_doors, access_brig, access_armory, access_court, access_maint_tunnels, access_morgue, access_weapons, access_forensics_lockers) + minimal_access = list(access_security, access_sec_doors, access_brig, access_armory, access_court, access_maint_tunnels, access_morgue, access_weapons, access_forensics_lockers) + +/datum/outfit/job/detective/New() + box = /obj/item/weapon/storage/box/security/radio + +//Medbay + +/datum/job/doctor/New() + ..() + selection_color = "#ffffff" + total_positions = 6 + spawn_positions = 6 + access = list(access_medical, access_morgue, access_surgery, access_chemistry, access_virology, access_genetics) + minimal_access = list(access_medical, access_morgue, access_surgery, access_chemistry, access_virology, access_genetics) + +//Engineering + +/datum/job/engineer/New() + ..() + total_positions = 4 + spawn_positions = 4 + access = list(access_eva, access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, access_external_airlocks, access_construction, access_atmospherics, access_tcomsat) + minimal_access = list(access_eva, access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, access_external_airlocks, access_construction, access_atmospherics, access_tcomsat) + +/datum/outfit/job/engineer/New() + box = /obj/item/weapon/storage/box/engineer/radio + +//Science + +/datum/job/scientist/New() + ..() + total_positions = 5 + spawn_positions = 5 + access = list(access_robotics, access_tox, access_tox_storage, access_research, access_xenobiology, access_mineral_storeroom, access_tech_storage) + minimal_access = list(access_robotics, access_tox, access_tox_storage, access_research, access_xenobiology, access_mineral_storeroom, access_tech_storage) + +//Cargo + +/datum/job/cargo_tech/New() + ..() + access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station, access_mineral_storeroom) + minimal_access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station, access_mineral_storeroom) + +/datum/job/mining/New() + ..() + access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station, access_mineral_storeroom) + minimal_access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station, access_mineral_storeroom) + +/datum/outfit/job/mining/New() + box = /obj/item/weapon/storage/box/engineer/radio + +//Service + +/datum/job/bartender/New() + ..() + access = list(access_hydroponics, access_bar, access_kitchen, access_morgue, access_weapons) + minimal_access = list(access_hydroponics, access_bar, access_kitchen, access_morgue, access_weapons) + +/datum/job/cook/New() + ..() + access = list(access_hydroponics, access_bar, access_kitchen, access_morgue, access_weapons) + minimal_access = list(access_hydroponics, access_bar, access_kitchen, access_morgue, access_weapons) + +/datum/job/hydro/New() + ..() + access = list(access_hydroponics, access_bar, access_kitchen, access_morgue, access_maint_tunnels) + minimal_access = list(access_hydroponics, access_bar, access_kitchen, access_morgue, access_maint_tunnels) + // they get maint access because of all the hydro content in maint + +/datum/job/janitor/New() + ..() + access = list(access_janitor, access_hydroponics, access_bar, access_kitchen, access_morgue, access_maint_tunnels) + minimal_access = list(access_janitor, access_hydroponics, access_bar, access_kitchen, access_morgue, access_maint_tunnels) + + +//Civilian + +/datum/job/clown/New() + ..() + supervisors = "nobody but yourself" //Honk diff --git a/_maps/map_files/BirdStation/job/removed_jobs.dm b/_maps/map_files/BirdStation/job/removed_jobs.dm new file mode 100644 index 0000000..dc81c01 --- /dev/null +++ b/_maps/map_files/BirdStation/job/removed_jobs.dm @@ -0,0 +1,38 @@ +//removed jobs. pasted together from MiniStation. + + +/datum/job/atmos/config_check() + return 0 + +/datum/job/chief_engineer/config_check() + return 0 + +/datum/job/qm/config_check() + return 0 + +/datum/job/cmo/config_check() + return 0 + +/datum/job/chemist/config_check() + return 0 + +/datum/job/geneticist/config_check() + return 0 + +/datum/job/virologist/config_check() + return 0 + +/datum/job/rd/config_check() + return 0 + +/datum/job/roboticist/config_check() + return 0 + +/datum/job/chaplain/config_check() + return 0 + +/datum/job/warden/config_check() + return 0 + +/datum/job/lawyer/config_check() + return 0 \ No newline at end of file diff --git a/_maps/map_files/CuckStation/CuckStation.dmm b/_maps/map_files/CuckStation/CuckStation.dmm new file mode 100644 index 0000000..af0c2d9 --- /dev/null +++ b/_maps/map_files/CuckStation/CuckStation.dmm @@ -0,0 +1,955 @@ +"aa" = (/turf/open/space,/area/space) +"ab" = (/turf/closed/wall/r_wall,/area/space) +"ac" = (/obj/structure/lattice,/turf/open/space,/area/space) +"ad" = (/turf/open/floor/plating/airless,/area/space) +"ae" = (/obj/item/device/multitool,/turf/open/floor/plating/airless,/area/space) +"af" = (/obj/machinery/power/grounding_rod,/turf/open/floor/plating/airless,/area/space) +"ag" = (/obj/structure/cable,/obj/machinery/power/tesla_coil,/turf/open/floor/plating/airless,/area/space) +"ah" = (/obj/machinery/field/generator{anchored = 1; state = 2},/turf/open/floor/plating/airless,/area/space) +"ai" = (/obj/structure/cable{tag = "icon-0-4"; icon_state = "0-4"},/obj/machinery/power/tesla_coil,/turf/open/floor/plating/airless,/area/space) +"aj" = (/turf/open/floor/plating/airless/warnplate{dir = 9},/area/space) +"ak" = (/obj/machinery/the_singularitygen,/turf/open/floor/plating/airless/warnplate{dir = 1},/area/space) +"al" = (/turf/open/floor/plating/airless/warnplate{dir = 5},/area/space) +"am" = (/turf/open/floor/plating/airless/warnplate{dir = 8},/area/space) +"an" = (/obj/item/weapon/wrench,/turf/open/floor/plating/airless,/area/space) +"ao" = (/turf/open/floor/plating/airless/warnplate{dir = 4},/area/space) +"ap" = (/turf/open/floor/plating/airless/warnplate{dir = 10},/area/space) +"aq" = (/obj/machinery/the_singularitygen/tesla,/turf/open/floor/plating/airless/warnplate{dir = 2},/area/space) +"ar" = (/turf/open/floor/plating/airless/warnplate{dir = 6},/area/space) +"as" = (/turf/closed/wall,/area/space) +"at" = (/turf/closed/wall/shuttle/smooth,/area/space) +"au" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/space) +"av" = (/turf/open/floor/plating,/area/space) +"aw" = (/obj/item/weapon/storage/pod{pixel_x = 32},/turf/open/floor/plasteel/shuttle,/area/space) +"ax" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/tesla_coil,/turf/open/floor/plating/airless,/area/space) +"ay" = (/turf/open/floor/plasteel/shuttle,/area/space) +"az" = (/obj/effect/spawner/structure/window/reinforced,/turf/open/floor/plating,/area/space) +"aA" = (/obj/structure/shuttle/engine/propulsion,/turf/closed/wall/shuttle/smooth,/area/space) +"aB" = (/obj/machinery/door/unpowered/shuttle,/turf/open/floor/plasteel/shuttle,/area/space) +"aC" = (/turf/open/floor/plating/warnplate{baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; dir = 9},/area/space) +"aD" = (/turf/open/floor/plating/warnplate{dir = 1},/area/space) +"aE" = (/turf/open/floor/plating/warnplate{dir = 5},/area/space) +"aF" = (/turf/open/floor/plasteel,/area/space) +"aG" = (/turf/open/floor/plating/warnplate{dir = 8},/area/space) +"aH" = (/turf/open/floor/plating/warnplate{dir = 4; luminosity = 2; initial_gas_mix = "o2=0.01;n2=0.01"},/area/space) +"aI" = (/turf/open/floor/plating/warnplate{dir = 10},/area/space) +"aJ" = (/turf/open/floor/plating/warnplate{icon_plating = "warnplate"},/area/space) +"aK" = (/turf/open/floor/plating/warnplate{dir = 6},/area/space) +"aL" = (/turf/open/floor/plasteel/black,/area/space) +"aM" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1; layer = 3.2},/turf/open/floor/plasteel/black,/area/space) +"aN" = (/obj/structure/window/reinforced{dir = 1; layer = 3.2},/turf/open/floor/plasteel/black,/area/space) +"aO" = (/obj/structure/window/reinforced{dir = 1; layer = 3.2},/obj/machinery/door/window/eastleft,/turf/open/floor/plasteel/black,/area/space) +"aP" = (/obj/effect/spawner/structure/window,/turf/open/floor/plating,/area/space) +"aQ" = (/obj/structure/weightlifter,/turf/open/floor/plasteel/black,/area/space) +"aR" = (/obj/structure/punching_bag,/turf/open/floor/plasteel/black,/area/space) +"aS" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/black,/area/space) +"aT" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/black,/area/space) +"aU" = (/obj/structure/window/reinforced,/obj/machinery/door/window/westright,/turf/open/floor/plasteel/black,/area/space) +"aV" = (/obj/structure/window/reinforced,/turf/open/floor/plasteel/black,/area/space) +"aW" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/black,/area/space) +"aX" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/open/floor/plating,/area/space) +"aY" = (/obj/structure/extinguisher_cabinet{pixel_x = 27},/turf/open/floor/plasteel/black,/area/space) +"aZ" = (/obj/structure/reagent_dispensers/water_cooler,/turf/open/floor/plasteel/black,/area/space) +"ba" = (/obj/structure/rack,/obj/item/weapon/pickaxe,/turf/open/floor/plasteel,/area/space) +"bb" = (/obj/structure/rack,/obj/item/weapon/shovel,/obj/item/weapon/gun/energy/kinetic_accelerator,/turf/open/floor/plasteel,/area/space) +"bc" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/space) +"bd" = (/obj/machinery/door/airlock/glass{name = "Fitness"},/turf/open/floor/plasteel/black,/area/space) +"be" = (/obj/machinery/light{dir = 1},/turf/open/floor/plasteel,/area/space) +"bf" = (/obj/machinery/door/airlock/external{glass = 1; name = "Mining Dock Airlock"; opacity = 0; req_access = null; req_access_txt = "48"},/turf/open/floor/plating,/area/space) +"bg" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/shower,/obj/item/weapon/soap/nanotrasen,/obj/structure/curtain,/turf/open/floor/plasteel/freezer,/area/space) +"bh" = (/obj/structure/toilet,/turf/open/floor/plasteel/freezer,/area/space) +"bi" = (/obj/structure/closet/secure_closet/miner,/turf/open/floor/plasteel,/area/space) +"bj" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/chapel,/area/space) +"bk" = (/turf/open/floor/plasteel/chapel{dir = 8},/area/space) +"bl" = (/turf/open/floor/plasteel/chapel{dir = 4},/area/space) +"bm" = (/turf/open/floor/plasteel/chapel{dir = 1},/area/space) +"bn" = (/turf/open/floor/plasteel/chapel,/area/space) +"bo" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/chapel{dir = 4},/area/space) +"bp" = (/obj/structure/grille,/obj/structure/window/reinforced/tinted/fulltile,/turf/open/floor/plasteel/chapel{dir = 8},/area/space) +"bq" = (/turf/open/floor/plasteel/freezer,/area/space) +"br" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/mirror{pixel_x = 32},/turf/open/floor/plasteel/freezer,/area/space) +"bs" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel,/area/space) +"bt" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/carpet,/area/space) +"bu" = (/obj/structure/bed,/turf/open/floor/carpet,/area/space) +"bv" = (/obj/machinery/door/airlock/wood,/turf/open/floor/plasteel/freezer,/area/space) +"bw" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/chapel{dir = 1},/area/space) +"bx" = (/turf/open/floor/plasteel/stairs,/area/space) +"by" = (/turf/open/floor/carpet,/area/space) +"bz" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/wood,/area/space) +"bA" = (/obj/structure/dresser,/turf/open/floor/carpet,/area/space) +"bB" = (/obj/structure/closet/wardrobe/miner,/turf/open/floor/plasteel,/area/space) +"bC" = (/obj/structure/closet/crate/bin,/turf/open/floor/plasteel,/area/space) +"bD" = (/obj/machinery/conveyor{dir = 4},/turf/open/floor/plating,/area/space) +"bE" = (/obj/structure/plasticflaps,/obj/machinery/conveyor{dir = 4},/turf/open/floor/plating,/area/space) +"bF" = (/obj/structure/plasticflaps,/turf/open/floor/plasteel/shuttle,/area/space) +"bG" = (/turf/open/floor/plasteel/white,/area/space) +"bH" = (/obj/effect/spawner/structure/window/reinforced,/turf/open/floor/plasteel/chapel,/area/space) +"bI" = (/obj/structure/table/wood,/obj/structure/noticeboard{pixel_y = 32},/turf/open/floor/plasteel/chapel{dir = 1},/area/space) +"bJ" = (/obj/structure/table/wood,/turf/open/floor/plasteel/chapel{dir = 4},/area/space) +"bK" = (/obj/structure/closet/crate/bin,/turf/open/floor/plasteel/chapel{dir = 8},/area/space) +"bL" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/open/floor/plasteel,/area/space) +"bM" = (/obj/machinery/door/airlock{id_tag = "Dorm1"; name = "Dorm 1"},/turf/open/floor/wood,/area/space) +"bN" = (/obj/machinery/door/airlock{id_tag = "Dorm2"; name = "Dorm 2"},/turf/open/floor/wood,/area/space) +"bO" = (/obj/machinery/door/airlock{id_tag = "Dorm3"; name = "Dorm 3"},/turf/open/floor/wood,/area/space) +"bP" = (/turf/open/floor/wood,/area/space) +"bQ" = (/obj/machinery/door/airlock/mining{req_access_txt = "48"},/turf/open/floor/plasteel,/area/space) +"bR" = (/obj/machinery/conveyor_switch,/turf/open/floor/plasteel,/area/space) +"bS" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Chapel"},/turf/open/floor/plasteel/chapel{dir = 1},/area/space) +"bT" = (/obj/machinery/door/airlock/command{name = "Captain's Quarters"; req_access = null; req_access_txt = "20"},/turf/open/floor/wood,/area/space) +"bU" = (/obj/structure/punching_bag,/turf/open/floor/carpet,/area/space) +"bV" = (/obj/structure/closet/secure_closet/captains,/turf/open/floor/carpet,/area/space) +"bW" = (/turf/open/floor/plasteel/bot,/area/space) +"bX" = (/obj/machinery/door/airlock/external,/turf/open/floor/plating,/area/space) +"bY" = (/obj/machinery/door/airlock/glass_external,/turf/open/floor/plating,/area/space) +"bZ" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plasteel/white,/area/space) +"ca" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Chapel"},/turf/open/floor/plasteel/chapel{dir = 8},/area/space) +"cb" = (/obj/machinery/light{dir = 8},/turf/open/floor/plasteel,/area/space) +"cc" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1; pixel_y = 0},/turf/open/floor/plating,/area/space) +"cd" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1; pixel_y = 0},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating,/area/space) +"ce" = (/obj/structure/window/reinforced,/turf/open/space,/area/space) +"cf" = (/obj/machinery/light/small,/turf/open/floor/plasteel/chapel{dir = 4},/area/space) +"cg" = (/obj/effect/spawner/structure/window/reinforced,/turf/open/floor/plasteel/chapel{dir = 4},/area/space) +"ch" = (/obj/machinery/washing_machine,/turf/open/floor/plasteel,/area/space) +"ci" = (/obj/structure/table,/obj/structure/bedsheetbin,/turf/open/floor/plasteel,/area/space) +"cj" = (/obj/machinery/vending/cigarette,/turf/open/floor/plasteel,/area/space) +"ck" = (/obj/machinery/vending/clothing,/turf/open/floor/plasteel,/area/space) +"cl" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/space) +"cm" = (/obj/structure/grille,/obj/structure/window/reinforced,/turf/open/floor/plating,/area/space) +"cn" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/open/floor/plating,/area/space) +"co" = (/turf/open/floor/engine,/area/space) +"cp" = (/obj/effect/spawner/structure/window/reinforced,/turf/open/floor/engine,/area/space) +"cq" = (/obj/structure/window/reinforced,/turf/open/floor/engine,/area/space) +"cr" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/turf/open/floor/plating,/area/space) +"cs" = (/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating,/area/space) +"ct" = (/obj/structure/window/reinforced{dir = 8},/turf/open/space,/area/space) +"cu" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/space) +"cv" = (/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/turf/open/space,/area/space) +"cw" = (/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/obj/structure/window/reinforced{dir = 4},/turf/open/space,/area/space) +"cx" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating,/area/space) +"cy" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/carpet,/area/space) +"cz" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/mining{name = "Warehouse"},/turf/open/floor/plasteel,/area/space) +"cA" = (/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/obj/structure/table/reinforced,/turf/open/floor/engine,/area/space) +"cB" = (/obj/structure/window/reinforced{dir = 4},/turf/open/space,/area/space) +"cC" = (/obj/machinery/light/small,/turf/open/floor/plasteel/chapel,/area/space) +"cD" = (/obj/machinery/door/airlock/glass{name = "Chapel Office"; req_access_txt = "22"},/turf/open/floor/plasteel/black,/area/space) +"cE" = (/obj/machinery/door/airlock/mining{name = "Cargo Bay"; req_one_access_txt = "48;50"},/turf/open/floor/plasteel,/area/space) +"cF" = (/obj/structure/table/wood,/turf/open/floor/carpet,/area/space) +"cG" = (/obj/structure/extinguisher_cabinet{pixel_y = 27},/turf/open/floor/plasteel,/area/space) +"cH" = (/obj/structure/table/wood,/obj/machinery/light{dir = 8},/turf/open/floor/carpet,/area/space) +"cI" = (/obj/structure/table/wood,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/open/floor/carpet,/area/space) +"cJ" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plating,/area/space) +"cK" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/open/space,/area/space) +"cL" = (/obj/machinery/door/airlock/maintenance,/turf/open/floor/plating,/area/space) +"cM" = (/obj/structure/reagent_dispensers/water_cooler,/turf/open/floor/wood,/area/space) +"cN" = (/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/obj/structure/window/reinforced,/turf/open/floor/plating,/area/space) +"cO" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating,/area/space) +"cP" = (/obj/machinery/door/airlock/maintenance{name = "Crematorium Maintenance"; req_access_txt = "27"},/turf/open/space,/area/space) +"cQ" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock{glass = 1; name = "Law Office"; opacity = 0; req_access_txt = "38"},/turf/open/floor/wood,/area/space) +"cR" = (/obj/machinery/door/airlock/mining{name = "Cargo Office"},/turf/open/floor/plasteel,/area/space) +"cS" = (/obj/machinery/door/firedoor,/obj/structure/table/reinforced,/turf/open/floor/plasteel,/area/space) +"cT" = (/obj/structure/window/reinforced{dir = 1; layer = 2.9},/turf/open/space,/area/space) +"cU" = (/obj/structure/noticeboard{pixel_y = 32},/turf/open/floor/plasteel,/area/space) +"cV" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel,/area/space) +"cW" = (/obj/machinery/door/airlock/maintenance{name = "Cargo Bay Maintenance"; req_access_txt = "31"},/turf/closed/wall,/area/space) +"cX" = (/obj/machinery/door/airlock/research{glass = 1; name = "Xenobiology Lab"; opacity = 0; req_access_txt = "55"},/turf/open/floor/plasteel/white,/area/space) +"cY" = (/turf/open/floor/plasteel/cult,/area/space) +"cZ" = (/obj/machinery/vending/coffee,/turf/open/floor/plasteel,/area/space) +"da" = (/obj/structure/table,/turf/open/floor/plasteel,/area/space) +"db" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel,/area/space) +"dc" = (/obj/structure/table/wood,/turf/open/floor/plasteel/cult,/area/space) +"dd" = (/obj/machinery/newscaster{pixel_x = 32},/obj/structure/table/wood,/turf/open/floor/plasteel/cult,/area/space) +"de" = (/obj/machinery/door/airlock/maintenance,/turf/open/floor/plasteel/grimy,/area/space) +"df" = (/obj/structure/extinguisher_cabinet{pixel_y = 27},/obj/structure/table,/obj/item/weapon/crowbar/large,/obj/item/weapon/wrench,/obj/item/weapon/storage/toolbox/emergency,/turf/open/floor/plasteel,/area/space) +"dg" = (/obj/item/weapon/storage/toolbox/electrical,/turf/open/floor/plasteel,/area/space) +"dh" = (/obj/machinery/autolathe,/turf/open/floor/plasteel,/area/space) +"di" = (/obj/machinery/computer/security/wooden_tv,/turf/open/floor/plasteel/grimy,/area/space) +"dj" = (/obj/structure/chair/comfy/beige,/turf/open/floor/plasteel/grimy,/area/space) +"dk" = (/turf/open/floor/plasteel/grimy,/area/space) +"dl" = (/obj/machinery/bookbinder,/turf/open/floor/wood,/area/space) +"dm" = (/obj/machinery/light{dir = 1},/turf/open/floor/wood,/area/space) +"dn" = (/obj/machinery/door/window/westright,/turf/open/floor/wood,/area/space) +"do" = (/obj/structure/extinguisher_cabinet{pixel_y = 27},/turf/open/floor/wood,/area/space) +"dp" = (/obj/structure/bookcase/random,/turf/open/floor/wood,/area/space) +"dq" = (/obj/structure/noticeboard{pixel_y = 32},/turf/open/floor/wood,/area/space) +"dr" = (/obj/structure/bookcase/random,/obj/machinery/light{dir = 1},/turf/open/floor/wood,/area/space) +"ds" = (/obj/machinery/light{dir = 8},/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical,/turf/open/floor/plasteel,/area/space) +"dt" = (/obj/machinery/vending/tool,/turf/open/floor/plasteel,/area/space) +"du" = (/obj/structure/table/wood/bar,/turf/open/floor/plasteel/grimy,/area/space) +"dv" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Hydroponics"; req_access_txt = "35"},/turf/open/floor/plasteel/hydrofloor,/area/space) +"dw" = (/obj/machinery/libraryscanner,/turf/open/floor/wood,/area/space) +"dx" = (/obj/structure/chair/office/dark,/turf/open/floor/wood,/area/space) +"dy" = (/obj/structure/table/wood,/turf/open/floor/wood,/area/space) +"dz" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel,/area/space) +"dA" = (/obj/machinery/vending/assist,/turf/open/floor/plasteel,/area/space) +"dB" = (/obj/machinery/hydroponics/constructable,/turf/open/floor/plasteel/hydrofloor,/area/space) +"dC" = (/obj/machinery/hydroponics/constructable,/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/hydrofloor,/area/space) +"dD" = (/obj/structure/reagent_dispensers/watertank/high,/obj/structure/extinguisher_cabinet{pixel_y = 27},/turf/open/floor/plasteel/hydrofloor,/area/space) +"dE" = (/obj/machinery/plantgenes,/obj/machinery/light/small{dir = 1},/obj/effect/decal/cleanable/cobweb,/turf/open/floor/plasteel/hydrofloor,/area/space) +"dF" = (/turf/open/floor/plasteel/hydrofloor,/area/space) +"dG" = (/obj/structure/chair/comfy/beige{dir = 8},/turf/open/floor/plasteel/hydrofloor,/area/space) +"dH" = (/obj/structure/table/wood,/obj/item/weapon/papercutter,/turf/open/floor/wood,/area/space) +"dI" = (/obj/structure/table/wood,/obj/item/weapon/pen,/turf/open/floor/wood,/area/space) +"dJ" = (/obj/machinery/holopad,/turf/open/floor/wood,/area/space) +"dK" = (/obj/machinery/newscaster{pixel_x = 32},/turf/open/floor/wood,/area/space) +"dL" = (/obj/machinery/door/airlock/glass{name = "Primary Tool Storage"},/turf/open/floor/plasteel,/area/space) +"dM" = (/obj/machinery/door/airlock/glass_security{name = "Detective"; req_access_txt = "4"},/turf/open/floor/plasteel/grimy,/area/space) +"dN" = (/obj/machinery/door/airlock/glass{name = "Hydroponics"; req_access_txt = "35"},/turf/open/floor/plasteel/hydrofloor,/area/space) +"dO" = (/obj/structure/grille,/turf/open/floor/plating,/area/space) +"dP" = (/obj/structure/grille/broken,/turf/open/floor/plating,/area/space) +"dQ" = (/obj/machinery/vending/coffee,/turf/open/floor/wood,/area/space) +"dR" = (/obj/structure/reagent_dispensers/watertank/high,/turf/open/floor/plasteel/hydrofloor,/area/space) +"dS" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plating,/area/space) +"dT" = (/obj/structure/bookcase/random/nonfiction,/turf/open/floor/wood,/area/space) +"dU" = (/obj/structure/bookcase/random/religion,/turf/open/floor/wood,/area/space) +"dV" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/hatch{name = "Library"},/turf/open/floor/wood,/area/space) +"dW" = (/obj/structure/sign/botany,/turf/closed/wall,/area/space) +"dX" = (/obj/machinery/vending/hydronutrients,/turf/open/floor/plasteel/hydrofloor,/area/space) +"dY" = (/obj/structure/closet/secure_closet/hydroponics,/turf/open/floor/plasteel/hydrofloor,/area/space) +"dZ" = (/obj/structure/bookcase/random/reference,/turf/open/floor/wood,/area/space) +"ea" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/open/floor/wood,/area/space) +"eb" = (/obj/machinery/light,/turf/open/floor/plasteel/hydrofloor,/area/space) +"ec" = (/obj/machinery/vending/hydroseeds,/turf/open/floor/plasteel/hydrofloor,/area/space) +"ed" = (/obj/machinery/door/airlock/research,/turf/open/floor/plasteel/white,/area/space) +"ee" = (/obj/structure/bookcase/random/fiction,/turf/open/floor/wood,/area/space) +"ef" = (/obj/structure/bookcase/random/adult,/turf/open/floor/wood,/area/space) +"eg" = (/obj/structure/noticeboard,/turf/closed/wall,/area/space) +"eh" = (/obj/machinery/door/firedoor,/obj/structure/table/reinforced,/turf/open/floor/plasteel/hydrofloor,/area/space) +"ei" = (/obj/machinery/door/firedoor,/obj/machinery/smartfridge,/turf/open/floor/plasteel/hydrofloor,/area/space) +"ej" = (/obj/structure/kitchenspike,/turf/open/floor/plasteel/freezer,/area/space) +"ek" = (/obj/structure/closet/secure_closet/freezer/meat,/turf/open/floor/plasteel/freezer,/area/space) +"el" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research,/turf/open/floor/plasteel,/area/space) +"em" = (/obj/structure/chair/comfy/beige{dir = 4},/turf/open/floor/wood,/area/space) +"en" = (/obj/machinery/door/airlock/maintenance{name = "Bar Maintenance"; req_access_txt = "12"},/turf/open/floor/plating,/area/space) +"eo" = (/obj/machinery/biogenerator,/turf/open/floor/plasteel/hydrofloor,/area/space) +"ep" = (/obj/machinery/seed_extractor,/turf/open/floor/plasteel/hydrofloor,/area/space) +"eq" = (/obj/structure/closet/secure_closet/freezer/fridge,/turf/open/floor/plasteel/cafeteria,/area/space) +"er" = (/turf/open/floor/plasteel/cafeteria,/area/space) +"es" = (/obj/structure/table,/obj/item/weapon/kitchen/rollingpin,/turf/open/floor/plasteel/cafeteria,/area/space) +"et" = (/obj/structure/table,/obj/machinery/light{dir = 1},/obj/machinery/microwave,/turf/open/floor/plasteel/cafeteria,/area/space) +"eu" = (/obj/machinery/light/small{dir = 8},/obj/effect/decal/cleanable/flour,/turf/open/floor/plasteel/freezer,/area/space) +"ev" = (/obj/machinery/chem_master,/turf/open/floor/plasteel/black,/area/space) +"ew" = (/obj/machinery/chem_heater,/turf/open/floor/plasteel/black,/area/space) +"ex" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/beakers,/obj/item/weapon/reagent_containers/glass/beaker/large,/turf/open/floor/plasteel/black,/area/space) +"ey" = (/obj/structure/table/glass,/obj/machinery/reagentgrinder{pixel_y = 12},/turf/open/floor/plasteel/black,/area/space) +"ez" = (/obj/machinery/chem_dispenser,/turf/open/floor/plasteel/black,/area/space) +"eA" = (/obj/structure/extinguisher_cabinet{pixel_y = 27},/obj/structure/table/glass,/obj/item/weapon/storage/box/beakers,/obj/item/weapon/reagent_containers/glass/beaker/large,/turf/open/floor/plasteel/black,/area/space) +"eB" = (/obj/structure/closet/secure_closet/bar,/obj/effect/decal/cleanable/dirt,/turf/open/floor/wood,/area/space) +"eC" = (/obj/machinery/light/small{dir = 1},/obj/item/weapon/poster/contraband,/obj/item/weapon/poster/contraband,/turf/open/floor/wood,/area/space) +"eD" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/wood,/area/space) +"eE" = (/obj/structure/table/wood,/obj/item/weapon/gun/projectile/revolver/doublebarrel,/obj/item/weapon/storage/box/beanbag,/turf/open/floor/wood,/area/space) +"eF" = (/obj/structure/closet/secure_closet/freezer/kitchen,/turf/open/floor/plasteel/cafeteria,/area/space) +"eG" = (/obj/structure/table,/obj/machinery/microwave,/turf/open/floor/plasteel/cafeteria,/area/space) +"eH" = (/obj/machinery/door/airlock{name = "Kitchen cold room"; req_access_txt = "28"},/turf/open/floor/plasteel/freezer,/area/space) +"eI" = (/obj/machinery/r_n_d/protolathe,/turf/open/floor/plasteel,/area/space) +"eJ" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/pillbottles,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/dropper,/turf/open/floor/plasteel/black,/area/space) +"eK" = (/obj/machinery/door/airlock/science,/turf/open/floor/plasteel/white,/area/space) +"eL" = (/obj/machinery/vending/autodrobe,/turf/open/floor/wood,/area/space) +"eM" = (/obj/machinery/vending/sovietsoda,/obj/machinery/light{dir = 1},/turf/open/floor/wood,/area/space) +"eN" = (/obj/structure/mirror{pixel_y = 32},/obj/structure/table/wood/bar,/obj/item/weapon/coin/twoheaded,/turf/open/floor/wood,/area/space) +"eO" = (/obj/item/weapon/lipstick/random,/obj/structure/table/wood/bar,/turf/open/floor/wood,/area/space) +"eP" = (/obj/structure/table/wood/bar,/turf/open/floor/wood,/area/space) +"eQ" = (/obj/item/weapon/disk/fakenucleardisk,/obj/structure/closet/crate/bin,/turf/open/floor/wood,/area/space) +"eR" = (/obj/structure/bed/roller,/obj/item/weapon/bedsheet/brown,/turf/open/floor/wood,/area/space) +"eS" = (/obj/machinery/door/airlock/hatch{name = "Bar"},/turf/open/floor/wood,/area/space) +"eT" = (/obj/machinery/vending/sustenance,/turf/open/floor/plasteel/cafeteria,/area/space) +"eU" = (/obj/structure/sink/kitchen{pixel_y = 32},/obj/effect/decal/cleanable/flour,/turf/open/floor/plasteel/cafeteria,/area/space) +"eV" = (/obj/effect/decal/cleanable/flour,/obj/machinery/processor,/turf/open/floor/plasteel/cafeteria,/area/space) +"eW" = (/obj/structure/closet/chefcloset,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/open/floor/plasteel/cafeteria,/area/space) +"eX" = (/obj/machinery/vending/cola,/turf/open/floor/plasteel,/area/space) +"eY" = (/obj/machinery/r_n_d/destructive_analyzer,/turf/open/floor/plasteel,/area/space) +"eZ" = (/obj/machinery/r_n_d/circuit_imprinter,/turf/open/floor/plasteel,/area/space) +"fa" = (/obj/structure/chair/office/dark,/turf/open/floor/plasteel/black,/area/space) +"fb" = (/obj/machinery/door/airlock/maintenance,/turf/open/floor/wood,/area/space) +"fc" = (/obj/machinery/door/airlock{name = "Bar Storage"; req_access_txt = "25"},/turf/open/floor/wood,/area/space) +"fd" = (/obj/structure/extinguisher_cabinet{pixel_x = 27},/turf/open/floor/plasteel,/area/space) +"fe" = (/obj/machinery/vending/dinnerware,/turf/open/floor/plasteel/cafeteria,/area/space) +"ff" = (/obj/machinery/light/small,/turf/open/floor/plasteel/cafeteria,/area/space) +"fg" = (/obj/machinery/food_cart,/obj/structure/extinguisher_cabinet{pixel_x = 27},/turf/open/floor/plasteel/cafeteria,/area/space) +"fh" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical,/turf/open/floor/plasteel/black,/area/space) +"fi" = (/obj/machinery/door/firedoor,/obj/machinery/smartfridge/chemistry,/turf/open/floor/plasteel/white,/area/space) +"fj" = (/obj/machinery/door/firedoor,/obj/structure/table/reinforced,/obj/item/weapon/storage/box/syringes,/turf/open/floor/plasteel/white,/area/space) +"fk" = (/obj/machinery/vending/boozeomat,/obj/effect/decal/cleanable/cobweb,/turf/open/floor/wood,/area/space) +"fl" = (/obj/structure/table/wood/bar,/obj/machinery/chem_dispenser/drinks,/obj/machinery/light{dir = 1},/obj/structure/noticeboard{desc = "A board for pinning important game upon."; name = "mounting board"; pixel_y = 32},/obj/item/toy/carpplushie{desc = "Big space fishing."; name = "stuffed carp"; pixel_y = 32},/turf/open/floor/wood,/area/space) +"fm" = (/obj/structure/table/wood/bar,/obj/machinery/chem_dispenser/drinks/beer,/obj/structure/sign/barsign{pixel_y = 32},/turf/open/floor/wood,/area/space) +"fn" = (/obj/structure/table/wood/bar,/obj/machinery/juicer,/turf/open/floor/wood,/area/space) +"fo" = (/obj/structure/extinguisher_cabinet{pixel_x = 27},/obj/structure/reagent_dispensers/beerkeg,/obj/item/target/syndicate{anchored = 1; desc = "Good ole' Bill."; name = "Bill"; pixel_y = 32},/obj/effect/decal/cleanable/generic,/turf/open/floor/wood,/area/space) +"fp" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor,/obj/structure/window/reinforced,/obj/machinery/reagentgrinder{pixel_y = 12},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/cafeteria,/area/space) +"fq" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor,/turf/open/floor/plasteel/cafeteria,/area/space) +"fr" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor,/obj/structure/window/reinforced,/turf/open/floor/plasteel/cafeteria,/area/space) +"fs" = (/obj/machinery/door/airlock{name = "Kitchen"; req_access_txt = "28"},/turf/open/floor/plasteel/cafeteria,/area/space) +"ft" = (/obj/machinery/recharge_station,/turf/open/floor/plating,/area/space) +"fu" = (/obj/machinery/recharge_station,/obj/effect/decal/cleanable/cobweb{icon_state = "cobweb2"},/turf/open/floor/plating,/area/space) +"fv" = (/obj/machinery/door/airlock/research{name = "Robotics Lab"; req_access_txt = "29"; req_one_access_txt = "0"},/turf/open/floor/plasteel/white,/area/space) +"fw" = (/obj/structure/extinguisher_cabinet{pixel_y = 27},/turf/open/floor/plasteel/white,/area/space) +"fx" = (/obj/machinery/shower{dir = 4},/obj/item/weapon/soap,/turf/open/floor/plasteel/showroomfloor,/area/space) +"fy" = (/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/showroomfloor,/area/space) +"fz" = (/turf/open/floor/plasteel/showroomfloor,/area/space) +"fA" = (/obj/machinery/vending/snack,/obj/effect/decal/cleanable/dirt,/turf/open/floor/wood,/area/space) +"fB" = (/obj/machinery/vending/cigarette,/obj/machinery/light/small{dir = 1},/obj/effect/decal/cleanable/cobweb{icon_state = "cobweb2"},/turf/open/floor/wood,/area/space) +"fC" = (/obj/machinery/vending/cola,/turf/open/floor/plasteel/cafeteria,/area/space) +"fD" = (/obj/structure/reagent_dispensers/water_cooler,/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/cafeteria,/area/space) +"fE" = (/obj/structure/noticeboard{pixel_y = 32},/turf/open/floor/plasteel/cafeteria,/area/space) +"fF" = (/obj/structure/extinguisher_cabinet{pixel_x = 27},/turf/open/floor/plasteel/cafeteria,/area/space) +"fG" = (/obj/machinery/light{dir = 1},/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating,/area/space) +"fH" = (/obj/machinery/door/airlock/research{name = "Robotics Lab"; req_access_txt = "29"; req_one_access_txt = "0"},/turf/open/floor/plasteel,/area/space) +"fI" = (/obj/machinery/shower{dir = 4},/turf/open/floor/plasteel/showroomfloor,/area/space) +"fJ" = (/obj/structure/toilet,/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/showroomfloor,/area/space) +"fK" = (/obj/structure/sink{pixel_y = 16},/obj/structure/mirror{pixel_y = 32},/turf/open/floor/plasteel/showroomfloor,/area/space) +"fL" = (/obj/structure/table/wood/bar,/obj/effect/decal/cleanable/dirt,/obj/item/weapon/lighter,/turf/open/floor/wood,/area/space) +"fM" = (/obj/structure/table/wood/bar,/obj/effect/decal/cleanable/dirt,/obj/item/weapon/storage/box/snappops,/turf/open/floor/wood,/area/space) +"fN" = (/obj/structure/sign/goldenplaque{pixel_x = 32},/obj/effect/decal/cleanable/dirt,/turf/open/floor/wood,/area/space) +"fO" = (/obj/structure/chair,/turf/open/floor/plasteel/cafeteria,/area/space) +"fP" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters{id = "Skynet_launch"; name = "Mech Bay"},/turf/open/floor/plasteel,/area/space) +"fQ" = (/obj/structure/noticeboard{pixel_x = 32},/turf/open/floor/plating,/area/space) +"fR" = (/obj/structure/chair/office/dark{dir = 8},/obj/item/weapon/storage/box/bodybags,/turf/open/floor/plasteel,/area/space) +"fS" = (/obj/machinery/door/airlock/research{cyclelinkeddir = 2; name = "Research Division Access"; req_access_txt = "47"},/turf/open/floor/plasteel/white,/area/space) +"fT" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research,/turf/open/floor/plasteel/white,/area/space) +"fU" = (/obj/structure/grille,/obj/structure/window/reinforced/tinted/fulltile,/turf/open/floor/plasteel/white,/area/space) +"fV" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating,/area/space) +"fW" = (/obj/structure/curtain,/turf/open/floor/plasteel/showroomfloor,/area/space) +"fX" = (/obj/machinery/door/airlock,/turf/open/floor/plasteel/showroomfloor,/area/space) +"fY" = (/obj/structure/chair/stool/bar,/obj/effect/decal/cleanable/vomit/old,/turf/open/floor/wood,/area/space) +"fZ" = (/obj/structure/chair/stool/bar,/turf/open/floor/wood,/area/space) +"ga" = (/obj/structure/closet/crate/bin,/turf/open/floor/wood,/area/space) +"gb" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/carpet,/area/space) +"gc" = (/obj/structure/noticeboard{pixel_y = 32},/turf/open/floor/carpet,/area/space) +"gd" = (/obj/structure/mineral_door/wood,/turf/open/floor/wood,/area/space) +"ge" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Diner"},/turf/open/floor/plasteel/cafeteria,/area/space) +"gf" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/cafeteria,/area/space) +"gg" = (/obj/structure/table,/turf/open/floor/plasteel/cafeteria,/area/space) +"gh" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/cafeteria,/area/space) +"gi" = (/obj/structure/table,/obj/item/weapon/storage/fancy/donut_box,/turf/open/floor/plasteel/cafeteria,/area/space) +"gj" = (/obj/machinery/holopad,/turf/open/floor/plasteel,/area/space) +"gk" = (/obj/machinery/computer/operating,/turf/open/floor/plasteel,/area/space) +"gl" = (/obj/structure/bed/roller,/obj/machinery/iv_drip,/turf/open/floor/plasteel/white,/area/space) +"gm" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 8},/turf/open/floor/plasteel/white,/area/space) +"gn" = (/obj/machinery/vending/snack,/turf/open/floor/plasteel/white,/area/space) +"go" = (/obj/machinery/vending/cigarette,/obj/structure/extinguisher_cabinet{pixel_y = 27},/turf/open/floor/plasteel/white,/area/space) +"gp" = (/obj/machinery/vending/coffee,/obj/effect/decal/cleanable/cobweb{icon_state = "cobweb2"},/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/white,/area/space) +"gq" = (/obj/effect/landmark{name = "carpspawn"},/turf/open/space,/area/space) +"gr" = (/obj/structure/extinguisher_cabinet{pixel_y = 27},/turf/open/floor/plasteel/showroomfloor,/area/space) +"gs" = (/obj/machinery/door/airlock{name = "Unisex Restrooms"; req_access_txt = "0"},/turf/open/floor/plasteel/showroomfloor,/area/space) +"gt" = (/obj/structure/table,/obj/item/weapon/kitchen/fork,/turf/open/floor/plasteel/cafeteria,/area/space) +"gu" = (/obj/machinery/button{pixel_x = -32},/turf/open/floor/plating,/area/space) +"gv" = (/obj/machinery/mech_bay_recharge_port,/turf/open/floor/plating,/area/space) +"gw" = (/turf/open/floor/plasteel/recharge_floor,/area/space) +"gx" = (/obj/machinery/computer/mech_bay_power_console,/turf/open/floor/plating,/area/space) +"gy" = (/obj/structure/table/optable,/obj/structure/window/reinforced{dir = 1; pixel_y = 0},/turf/open/floor/plasteel,/area/space) +"gz" = (/obj/machinery/vending/wallmed{pixel_x = -32},/turf/open/floor/plasteel/white,/area/space) +"gA" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/white,/area/space) +"gB" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/cups,/turf/open/floor/plasteel/white,/area/space) +"gC" = (/obj/structure/chair/wood/normal{icon_state = "wooden_chair"; dir = 4},/turf/open/floor/carpet,/area/space) +"gD" = (/obj/structure/table/wood,/obj/item/weapon/deck,/turf/open/floor/carpet,/area/space) +"gE" = (/obj/structure/chair/wood/normal{dir = 8},/obj/effect/decal/cleanable/dirt,/turf/open/floor/carpet,/area/space) +"gF" = (/obj/machinery/holopad,/obj/effect/decal/cleanable/dirt,/turf/open/floor/wood,/area/space) +"gG" = (/obj/structure/chair/wood/normal{icon_state = "wooden_chair"; dir = 4},/turf/open/floor/wood,/area/space) +"gH" = (/obj/structure/table/wood,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/open/floor/wood,/area/space) +"gI" = (/obj/structure/chair/wood/normal{dir = 8},/obj/effect/decal/cleanable/dirt,/turf/open/floor/wood,/area/space) +"gJ" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/cafeteria,/area/space) +"gK" = (/obj/machinery/door/airlock/research{name = "Mech Bay"; req_access_txt = "29"; req_one_access_txt = "0"},/turf/open/floor/plasteel,/area/space) +"gL" = (/obj/structure/table,/obj/item/weapon/retractor,/obj/item/weapon/hemostat,/obj/item/weapon/razor,/turf/open/floor/plasteel,/area/space) +"gM" = (/obj/structure/table,/obj/item/weapon/surgical_drapes,/obj/item/weapon/cautery,/obj/item/weapon/circular_saw,/obj/item/weapon/scalpel,/obj/item/weapon/surgicaldrill,/turf/open/floor/plasteel,/area/space) +"gN" = (/obj/structure/closet/crate/medical,/obj/item/roller,/obj/item/weapon/storage/box/masks,/turf/open/floor/plasteel/white,/area/space) +"gO" = (/obj/structure/closet/crate/medical,/obj/item/weapon/storage/belt/medical,/obj/item/weapon/storage/box/gloves,/turf/open/floor/plasteel/white,/area/space) +"gP" = (/obj/machinery/washing_machine,/turf/open/floor/plasteel/white,/area/space) +"gQ" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/donkpockets,/turf/open/floor/plasteel/white,/area/space) +"gR" = (/obj/structure/table/glass,/obj/machinery/microwave{pixel_x = -1; pixel_y = 8},/turf/open/floor/plasteel/white,/area/space) +"gS" = (/obj/structure/table/wood,/obj/machinery/light/small,/obj/item/weapon/dice,/turf/open/floor/carpet,/area/space) +"gT" = (/obj/structure/chair/wood/normal{icon_state = "wooden_chair"; dir = 4},/obj/effect/decal/cleanable/dirt,/turf/open/floor/wood,/area/space) +"gU" = (/obj/effect/decal/cleanable/ash,/obj/item/weapon/storage/wallet/random,/obj/structure/chair/wood/normal{dir = 8},/turf/open/floor/wood,/area/space) +"gV" = (/obj/machinery/light,/turf/open/floor/plasteel/cafeteria,/area/space) +"gW" = (/obj/machinery/light,/obj/machinery/mech_bay_recharge_port,/turf/open/floor/plating,/area/space) +"gX" = (/obj/machinery/robotic_fabricator,/turf/open/floor/plasteel,/area/space) +"gY" = (/obj/structure/closet/crate/bin,/turf/open/floor/plasteel/white,/area/space) +"gZ" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/open/space,/area/space) +"ha" = (/turf/closed/wall/mineral/titanium,/area/space) +"hb" = (/obj/structure/shuttle/engine/propulsion/burst{tag = "icon-propulsion (WEST)"; icon_state = "propulsion"; dir = 8},/turf/closed/wall/mineral/titanium,/area/space) +"hc" = (/obj/structure/closet/emcloset,/turf/open/floor/plating,/area/space) +"hd" = (/obj/structure/sign/pods,/turf/closed/wall,/area/space) +"he" = (/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/arrival{dir = 1},/area/space) +"hf" = (/turf/open/floor/plasteel/arrival{dir = 1},/area/space) +"hg" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/arrival{dir = 1},/area/space) +"hh" = (/obj/machinery/door/airlock/glass,/turf/open/floor/wood,/area/space) +"hi" = (/obj/machinery/vending/cola,/turf/open/floor/plasteel/barber,/area/space) +"hj" = (/turf/open/floor/plasteel/barber,/area/space) +"hk" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical,/turf/open/floor/plasteel/white,/area/space) +"hl" = (/obj/structure/closet/secure_closet/medical1,/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/cmo,/area/space) +"hm" = (/obj/structure/table/glass,/obj/item/weapon/stamp/cmo,/obj/item/weapon/stamp/denied{pixel_x = 6; pixel_y = 6},/turf/open/floor/plasteel/cmo,/area/space) +"hn" = (/obj/structure/closet/secure_closet/CMO,/obj/structure/extinguisher_cabinet{pixel_y = 27},/turf/open/floor/plasteel/cmo,/area/space) +"ho" = (/obj/machinery/suit_storage_unit/cmo,/turf/open/floor/plasteel/cmo,/area/space) +"hp" = (/obj/structure/window/reinforced{dir = 1; pixel_y = 0},/turf/open/floor/plating,/area/space) +"hq" = (/obj/structure/window/reinforced{dir = 1; pixel_y = 0},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating,/area/space) +"hr" = (/obj/machinery/computer/shuttle/pod{pixel_x = 0; pixel_y = -32; possible_destinations = "pod_asteroid2"; shuttleId = "pod2"},/obj/structure/chair{dir = 8},/obj/machinery/status_display{density = 0; layer = 3; pixel_x = 0; pixel_y = 32},/turf/open/floor/mineral/titanium/blue,/area/space) +"hs" = (/obj/item/weapon/storage/pod{pixel_x = 6; pixel_y = -28},/obj/item/device/radio/intercom{pixel_x = 0; pixel_y = 25},/obj/structure/chair{dir = 8},/turf/open/floor/mineral/titanium/blue,/area/space) +"ht" = (/obj/machinery/door/airlock/shuttle{name = "Escape Pod Airlock"},/obj/docking_port/mobile/pod{dir = 8; id = "pod2"; name = "escape pod 2"; port_angle = 180},/turf/open/floor/mineral/titanium/blue,/area/space) +"hu" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 1; name = "Escape Pod One"},/turf/open/floor/plating,/area/space) +"hv" = (/turf/open/floor/plasteel/warning,/area/space) +"hw" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/warning/corner{dir = 1},/area/space) +"hx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/space) +"hy" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/warning/corner{dir = 2},/area/space) +"hz" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/warning,/area/space) +"hA" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/open/floor/plasteel/warning,/area/space) +"hB" = (/obj/structure/sign/barsign{pixel_y = 32},/turf/open/floor/plasteel,/area/space) +"hC" = (/obj/machinery/holopad,/turf/open/floor/plasteel/white,/area/space) +"hD" = (/turf/open/floor/plasteel/cmo,/area/space) +"hE" = (/obj/structure/table/glass,/obj/item/weapon/clipboard,/obj/item/weapon/pen,/turf/open/floor/plasteel/cmo,/area/space) +"hF" = (/turf/open/floor/plating{burnt = 1; icon_state = "panelscorched"},/area/space) +"hG" = (/obj/structure/window/reinforced,/turf/open/floor/plating,/area/space) +"hH" = (/obj/machinery/camera{c_tag = "Arrivals Escape Pod 2"; dir = 8},/obj/machinery/light/small,/turf/open/floor/plating,/area/space) +"hI" = (/obj/machinery/door/airlock/external{name = "Port Docking Bay 1"},/turf/open/floor/plating,/area/space) +"hJ" = (/turf/open/floor/plasteel/warning{dir = 8},/area/space) +"hK" = (/turf/open/floor/plasteel/warning{dir = 4},/area/space) +"hL" = (/turf/open/floor/plasteel/warning{dir = 10},/area/space) +"hM" = (/obj/machinery/computer/security/wooden_tv,/turf/open/floor/plasteel/black,/area/space) +"hN" = (/obj/structure/table,/obj/machinery/microwave,/turf/open/floor/plasteel/black,/area/space) +"hO" = (/obj/structure/table,/obj/machinery/light{dir = 1},/obj/item/weapon/storage/box/PDAs,/turf/open/floor/plasteel/black,/area/space) +"hP" = (/obj/machinery/pdapainter,/obj/item/weapon/hand_labeler,/turf/open/floor/plasteel/black,/area/space) +"hQ" = (/obj/structure/closet/secure_closet/hop,/turf/open/floor/plasteel/black,/area/space) +"hR" = (/obj/structure/filingcabinet/chestdrawer,/obj/item/weapon/folder/blue,/turf/open/floor/plasteel/black,/area/space) +"hS" = (/obj/structure/toilet{dir = 4},/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/floorgrime,/area/space) +"hT" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/open/floor/plasteel/floorgrime,/area/space) +"hU" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/barber,/area/space) +"hV" = (/obj/machinery/door/airlock/medical{name = "Medbay Reception"; req_access_txt = "5"},/turf/open/floor/plasteel/barber,/area/space) +"hW" = (/obj/structure/table/glass,/turf/open/floor/plasteel/cmo,/area/space) +"hX" = (/obj/structure/window/reinforced{dir = 1; pixel_y = 0},/turf/open/space,/area/space) +"hY" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/turf/closed/wall/r_wall,/area/space) +"hZ" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/space) +"ia" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/warning{dir = 10},/area/space) +"ib" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/warning,/area/space) +"ic" = (/obj/machinery/camera{c_tag = "Arrivals Bay 1 North"; dir = 1},/turf/open/floor/plasteel/warning,/area/space) +"id" = (/obj/machinery/vending/coffee,/turf/open/floor/plasteel/warning{dir = 6},/area/space) +"ie" = (/turf/open/floor/plasteel/goonplaque,/area/space) +"if" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; step_x = 0},/turf/open/floor/plasteel,/area/space) +"ig" = (/obj/machinery/door/airlock,/obj/machinery/requests_console{announcementConsole = 1; department = "Head of Personnel's Desk"; departmentType = 5; name = "Head of Personnel RC"; pixel_y = -30},/turf/open/floor/plasteel/floorgrime,/area/space) +"ih" = (/turf/open/floor/plasteel/floorgrime,/area/space) +"ii" = (/obj/item/weapon/soap/homemade,/turf/open/floor/plasteel/floorgrime,/area/space) +"ij" = (/obj/machinery/door/firedoor,/obj/structure/table/reinforced,/turf/open/floor/plasteel/barber,/area/space) +"ik" = (/obj/structure/extinguisher_cabinet{pixel_y = 27},/obj/machinery/computer/med_data/laptop{pixel_x = -32},/turf/open/floor/plasteel/barber,/area/space) +"il" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/gloves,/obj/item/weapon/storage/box/rxglasses,/turf/open/floor/plasteel/cmo,/area/space) +"im" = (/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/cmo,/area/space) +"in" = (/turf/open/floor/plating{broken = 1; icon_state = "platingdmg3"},/area/space) +"io" = (/obj/structure/grille,/turf/open/space,/area/space) +"ip" = (/obj/structure/table,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/obj/item/weapon/stamp/hop,/turf/open/floor/plasteel/black,/area/space) +"iq" = (/obj/structure/table/reinforced,/obj/machinery/button,/turf/open/floor/plasteel/black,/area/space) +"ir" = (/obj/machinery/door/airlock/glass,/turf/open/floor/plasteel/black,/area/space) +"is" = (/obj/machinery/door/firedoor,/obj/structure/table/reinforced,/obj/item/weapon/folder/white,/obj/item/weapon/pen,/turf/open/floor/plasteel/barber,/area/space) +"it" = (/obj/structure/chair/office/dark{dir = 8},/turf/open/floor/plasteel/barber,/area/space) +"iu" = (/obj/machinery/vending/medical,/turf/open/floor/plasteel/cmo,/area/space) +"iv" = (/turf/open/floor/plating{icon_state = "panelscorched"},/area/space) +"iw" = (/obj/machinery/door/airlock/shuttle{name = "Arrivals Shuttle Airlock"},/turf/open/floor/plating,/area/space) +"ix" = (/obj/structure/reagent_dispensers/water_cooler,/turf/open/floor/plasteel,/area/space) +"iy" = (/obj/structure/bed/dogbed{anchored = 1; desc = "Ian's bed! Looks comfy."; name = "Ian's bed"},/mob/living/simple_animal/pet/dog/corgi/Ian,/turf/open/floor/plasteel/black,/area/space) +"iz" = (/obj/machinery/vending/cart,/turf/open/floor/plasteel/black,/area/space) +"iA" = (/obj/machinery/computer/secure_data,/turf/open/floor/plasteel/black,/area/space) +"iB" = (/obj/machinery/computer/card,/turf/open/floor/plasteel/black,/area/space) +"iC" = (/obj/machinery/computer/arcade/orion_trail,/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/black,/area/space) +"iD" = (/obj/structure/sign/poster{pixel_y = 32},/obj/structure/chair/stool,/turf/open/floor/plasteel/black,/area/space) +"iE" = (/obj/machinery/computer/arcade/orion_trail,/turf/open/floor/plasteel/black,/area/space) +"iF" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/black,/area/space) +"iG" = (/obj/structure/sign/poster{pixel_x = 32},/obj/machinery/computer/slot_machine,/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/black,/area/space) +"iH" = (/obj/structure/closet/crate/bin,/turf/open/floor/plasteel/barber,/area/space) +"iI" = (/obj/structure/reagent_dispensers/water_cooler,/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/white,/area/space) +"iJ" = (/turf/open/floor/plating{broken = 1; heat_capacity = 1e+006; icon_state = "platingdmg2"},/area/space) +"iK" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular,/turf/open/floor/mineral/titanium/blue,/area/space) +"iL" = (/turf/open/floor/mineral/titanium/blue,/area/space) +"iM" = (/obj/machinery/computer/arcade,/turf/open/floor/mineral/titanium/blue,/area/space) +"iN" = (/obj/structure/closet/wardrobe/green,/turf/open/floor/mineral/titanium/blue,/area/space) +"iO" = (/obj/structure/closet/wardrobe/black,/turf/open/floor/mineral/titanium/blue,/area/space) +"iP" = (/obj/structure/closet/wardrobe/mixed,/turf/open/floor/mineral/titanium/blue,/area/space) +"iQ" = (/obj/structure/closet/wardrobe/grey,/turf/open/floor/mineral/titanium/blue,/area/space) +"iR" = (/obj/machinery/requests_console{department = "Arrival shuttle"; pixel_y = 30},/turf/open/floor/mineral/titanium/blue,/area/space) +"iS" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/black,/area/space) +"iT" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"; dir = 8},/turf/open/floor/plasteel/black,/area/space) +"iU" = (/obj/machinery/door/airlock/command{name = "Head of Personnel Office"; req_access = null; req_access_txt = "57"},/turf/open/floor/plasteel/darkwarning,/area/space) +"iV" = (/obj/effect/spawner/structure/window/reinforced,/turf/open/floor/plasteel/darkwarning,/area/space) +"iW" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor,/turf/open/floor/plasteel/darkwarning,/area/space) +"iX" = (/obj/machinery/computer/slot_machine,/obj/structure/sign/poster{pixel_x = 32},/turf/open/floor/plasteel/black,/area/space) +"iY" = (/obj/structure/chair,/obj/item/weapon/storage/briefcase,/turf/open/floor/plasteel/barber,/area/space) +"iZ" = (/obj/structure/girder,/turf/open/space,/area/space) +"ja" = (/obj/structure/chair,/turf/open/floor/mineral/titanium/blue,/area/space) +"jb" = (/obj/structure/chair{dir = 8},/obj/effect/landmark{name = "JoinLate"},/turf/open/floor/mineral/titanium/blue,/area/space) +"jc" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 8},/turf/open/floor/plasteel/black,/area/space) +"jd" = (/obj/machinery/computer/arcade/battle,/turf/open/floor/plasteel/black,/area/space) +"je" = (/obj/structure/sign/poster{pixel_y = -32},/obj/structure/chair/stool,/turf/open/floor/plasteel/black,/area/space) +"jf" = (/obj/structure/sign/poster{pixel_y = -32},/turf/open/floor/plasteel/black,/area/space) +"jg" = (/obj/machinery/door/airlock/maintenance,/turf/open/floor/plasteel/black,/area/space) +"jh" = (/obj/structure/noticeboard{pixel_y = 32},/obj/structure/reagent_dispensers/watertank,/obj/item/weapon/storage/box/lights,/obj/effect/decal/cleanable/cobweb,/turf/open/floor/plasteel/floorgrime,/area/space) +"ji" = (/obj/structure/mopbucket,/obj/machinery/light_switch{pixel_y = 27},/obj/effect/decal/cleanable/cobweb{icon_state = "cobweb2"},/obj/item/weapon/mop,/turf/open/floor/plasteel/floorgrime,/area/space) +"jj" = (/obj/structure/chair,/turf/open/floor/plasteel/barber,/area/space) +"jk" = (/obj/structure/girder,/obj/structure/girder,/turf/open/space,/area/space) +"jl" = (/obj/machinery/door/airlock/shuttle{name = "Arrivals Shuttle Airlock"},/turf/open/floor/mineral/titanium/blue,/area/space) +"jm" = (/obj/effect/landmark{name = "Observer-Start"},/turf/open/floor/mineral/titanium/blue,/area/space) +"jn" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel,/area/space) +"jo" = (/turf/open/floor/plasteel{icon_state = "L1"},/area/space) +"jp" = (/turf/open/floor/plasteel{icon_state = "L3"; dir = 4},/area/space) +"jq" = (/turf/open/floor/plasteel{icon_state = "L5"},/area/space) +"jr" = (/turf/open/floor/plasteel{icon_state = "L7"},/area/space) +"js" = (/turf/open/floor/plasteel{icon_state = "L9"},/area/space) +"jt" = (/turf/open/floor/plasteel{icon_state = "L11"},/area/space) +"ju" = (/turf/open/floor/plasteel{icon_state = "L13"; dir = 4},/area/space) +"jv" = (/obj/machinery/hydroponics,/obj/item/seeds/cannabis,/obj/effect/decal/cleanable/cobweb,/turf/open/floor/plating,/area/space) +"jw" = (/obj/machinery/light/small{dir = 8},/obj/item/weapon/extinguisher,/turf/open/floor/plasteel/floorgrime,/area/space) +"jx" = (/obj/machinery/door/airlock/medical{name = "Operating Theatre"; req_access_txt = "45"},/turf/open/floor/plasteel/black,/area/space) +"jy" = (/obj/machinery/door/airlock/medical,/turf/open/floor/plasteel/freezer,/area/space) +"jz" = (/obj/machinery/door/airlock/medical,/turf/open/floor/plasteel/white,/area/space) +"jA" = (/obj/structure/girder,/turf/open/floor/plating,/area/space) +"jB" = (/obj/structure/lattice,/obj/structure/girder,/turf/open/space,/area/space) +"jC" = (/obj/structure/girder,/turf/open/floor/plating{burnt = 1; icon_state = "panelscorched"},/area/space) +"jD" = (/obj/structure/chair{dir = 1},/turf/open/floor/mineral/titanium/blue,/area/space) +"jE" = (/turf/open/floor/plasteel{icon_state = "L2"},/area/space) +"jF" = (/turf/open/floor/plasteel{icon_state = "L4"; dir = 4},/area/space) +"jG" = (/turf/open/floor/plasteel{icon_state = "L6"; dir = 4},/area/space) +"jH" = (/turf/open/floor/plasteel{icon_state = "L8"},/area/space) +"jI" = (/turf/open/floor/plasteel{icon_state = "L10"},/area/space) +"jJ" = (/turf/open/floor/plasteel{icon_state = "L12"; dir = 4},/area/space) +"jK" = (/turf/open/floor/plasteel{icon_state = "L14"; dir = 4},/area/space) +"jL" = (/obj/item/weapon/storage/fancy/rollingpapers,/turf/open/floor/plating,/area/space) +"jM" = (/obj/machinery/door/airlock/maintenance{name = "Custodial Maintenance"; req_access_txt = "26"},/turf/open/floor/plating,/area/space) +"jN" = (/obj/structure/punching_bag,/turf/open/floor/plasteel/floorgrime,/area/space) +"jO" = (/obj/structure/table,/obj/item/weapon/cautery,/obj/item/weapon/retractor,/turf/open/floor/plasteel/freezer,/area/space) +"jP" = (/obj/machinery/vending/wallmed{pixel_x = 32},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/open/floor/plasteel/freezer,/area/space) +"jQ" = (/obj/structure/closet/secure_closet/medical1,/turf/open/floor/plasteel/white,/area/space) +"jR" = (/obj/machinery/vending/medical,/turf/open/floor/plasteel/white,/area/space) +"jS" = (/obj/structure/closet/emcloset,/turf/open/floor/mineral/titanium/blue,/area/space) +"jT" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/open/floor/mineral/titanium/blue,/area/space) +"jU" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_l"; dir = 8},/turf/open/floor/plasteel/black,/area/space) +"jV" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/plasteel,/area/space) +"jW" = (/obj/structure/closet/crate/trashcart,/turf/open/floor/plating,/area/space) +"jX" = (/obj/structure/bed{step_y = 0},/obj/structure/bed{pixel_y = 16; step_y = 0},/turf/open/floor/plasteel/floorgrime,/area/space) +"jY" = (/obj/structure/closet/jcloset,/turf/open/floor/plasteel/floorgrime,/area/space) +"jZ" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/black,/area/space) +"ka" = (/obj/structure/table,/obj/item/weapon/hemostat,/obj/item/weapon/circular_saw,/turf/open/floor/plasteel/freezer,/area/space) +"kb" = (/obj/structure/table/optable,/turf/open/floor/plasteel/freezer,/area/space) +"kc" = (/obj/machinery/limbgrower,/turf/open/floor/plasteel/white,/area/space) +"kd" = (/obj/structure/girder,/turf/open/floor/plating{broken = 1; icon_state = "platingdmg3"},/area/space) +"ke" = (/obj/machinery/door/airlock/shuttle{name = "Arrivals Shuttle Airlock"},/obj/docking_port/mobile{dwidth = 5; height = 7; id = "arrival"; name = "arrival shuttle"; port_angle = -90; preferred_direction = 8; width = 15},/obj/docking_port/stationary{dwidth = 5; height = 7; id = "arrival_home"; name = "port bay 1"; width = 15},/turf/open/floor/plating,/area/space) +"kf" = (/obj/structure/chair/comfy/beige,/turf/open/floor/carpet,/area/space) +"kg" = (/obj/machinery/vending/cigarette,/obj/machinery/light{dir = 1},/turf/open/floor/plasteel,/area/space) +"kh" = (/obj/item/weapon/statuebust,/turf/open/floor/plasteel/vaporwave,/area/space) +"ki" = (/obj/machinery/computer/arcade/orion_trail,/turf/open/floor/plasteel/vaporwave,/area/space) +"kj" = (/obj/effect/spawner/structure/window/reinforced,/turf/open/floor/plasteel,/area/space) +"kk" = (/obj/machinery/door/airlock/glass_security,/turf/open/floor/plasteel,/area/space) +"kl" = (/obj/machinery/door/airlock/medical{name = "Operating Theatre"; req_access_txt = "45"},/turf/open/floor/plating,/area/space) +"km" = (/obj/structure/table,/obj/item/weapon/surgicaldrill,/obj/item/weapon/scalpel,/turf/open/floor/plasteel/freezer,/area/space) +"kn" = (/obj/machinery/computer/operating,/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/freezer,/area/space) +"ko" = (/obj/structure/closet/crate/freezer/blood,/turf/open/floor/plasteel/white,/area/space) +"kp" = (/obj/structure/table/glass,/obj/item/weapon/storage/firstaid/brute,/obj/item/weapon/storage/firstaid/brute,/turf/open/floor/plasteel/white,/area/space) +"kq" = (/obj/structure/table/wood,/obj/machinery/newscaster{pixel_x = 32},/turf/open/floor/carpet,/area/space) +"kr" = (/obj/machinery/vending/snack,/turf/open/floor/plasteel,/area/space) +"ks" = (/obj/structure/showcase,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/wood,/area/space) +"kt" = (/obj/machinery/vending/sovietsoda,/turf/open/floor/wood,/area/space) +"ku" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; step_x = 0},/obj/structure/chair/comfy/beige{dir = 8},/turf/open/floor/wood,/area/space) +"kv" = (/obj/item/weapon/poster/contraband,/turf/open/floor/plasteel/vaporwave,/area/space) +"kw" = (/obj/item/clothing/glasses/sunglasses/big,/turf/open/floor/plasteel/vaporwave,/area/space) +"kx" = (/obj/structure/chair,/turf/open/floor/plasteel,/area/space) +"ky" = (/obj/structure/closet/secure_closet/hos,/turf/open/floor/plasteel/darkred,/area/space) +"kz" = (/obj/structure/extinguisher_cabinet{pixel_y = 27},/turf/open/floor/plasteel/darkred,/area/space) +"kA" = (/obj/structure/noticeboard{pixel_y = 32},/turf/open/floor/plasteel/darkred,/area/space) +"kB" = (/obj/machinery/suit_storage_unit/hos,/turf/open/floor/plasteel/darkred,/area/space) +"kC" = (/obj/structure/table,/obj/item/weapon/surgical_drapes,/obj/item/weapon/razor,/turf/open/floor/plasteel/freezer,/area/space) +"kD" = (/obj/structure/closet/secure_closet/medical2,/turf/open/floor/plasteel/freezer,/area/space) +"kE" = (/obj/structure/table/glass,/obj/item/weapon/storage/firstaid/o2,/obj/item/weapon/storage/firstaid/toxin,/turf/open/floor/plasteel/white,/area/space) +"kF" = (/obj/structure/table/glass,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/firstaid/regular,/obj/machinery/light/small,/turf/open/floor/plasteel/white,/area/space) +"kG" = (/obj/structure/table/glass,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/fire,/turf/open/floor/plasteel/white,/area/space) +"kH" = (/obj/machinery/vending/snack,/turf/open/floor/plasteel/warning{dir = 9},/area/space) +"kI" = (/obj/item/device/radio/beacon,/obj/machinery/camera{c_tag = "Arrivals Bay 1 South"},/turf/open/floor/plasteel/warning{dir = 1},/area/space) +"kJ" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/warning{dir = 1},/area/space) +"kK" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/warning{dir = 5},/area/space) +"kL" = (/obj/structure/chair/comfy/beige{dir = 1},/turf/open/floor/carpet,/area/space) +"kM" = (/obj/machinery/door/airlock/command,/turf/open/floor/wood,/area/space) +"kN" = (/obj/structure/chair/comfy/beige{dir = 8},/turf/open/floor/wood,/area/space) +"kO" = (/turf/open/floor/plasteel/darkred,/area/space) +"kP" = (/turf/open/floor/plasteel/warning{dir = 9},/area/space) +"kQ" = (/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20},/turf/open/floor/plasteel/warning{dir = 1},/area/space) +"kR" = (/obj/effect/spawner/structure/window/reinforced,/turf/closed/wall,/area/space) +"kS" = (/obj/machinery/door/airlock/glass_security,/obj/machinery/door/poddoor/shutters/preopen,/turf/open/floor/plasteel/darkred,/area/space) +"kT" = (/obj/structure/table/wood,/obj/item/weapon/bombcore/training,/turf/open/floor/plasteel/black,/area/space) +"kU" = (/obj/machinery/computer/shuttle/pod{pixel_x = 0; pixel_y = -32; possible_destinations = "pod_asteroid1"; shuttleId = "pod1"},/obj/structure/chair{dir = 8},/obj/machinery/status_display{density = 0; layer = 3; pixel_x = 0; pixel_y = 32},/turf/open/floor/mineral/titanium/blue,/area/space) +"kV" = (/obj/machinery/door/airlock/shuttle{name = "Escape Pod Airlock"},/obj/docking_port/mobile/pod{dir = 8; id = "pod1"; name = "escape pod 1"; port_angle = 180},/turf/open/floor/mineral/titanium/blue,/area/space) +"kW" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/open/floor/plasteel/warning{dir = 1},/area/space) +"kX" = (/turf/open/floor/plasteel/warning{dir = 1},/area/space) +"kY" = (/turf/open/floor/plasteel/warning/corner{dir = 4},/area/space) +"kZ" = (/turf/open/floor/plasteel/warning/corner{dir = 8},/area/space) +"la" = (/obj/machinery/vending/boozeomat,/turf/open/floor/wood,/area/space) +"lb" = (/obj/structure/punching_bag,/turf/open/floor/plasteel/darkred,/area/space) +"lc" = (/obj/machinery/vending/security,/turf/open/floor/plasteel/darkred,/area/space) +"ld" = (/obj/structure/table/wood,/turf/open/floor/plasteel/black,/area/space) +"le" = (/obj/structure/chair/office/dark{dir = 8},/turf/open/floor/plasteel/black,/area/space) +"lf" = (/obj/machinery/camera{c_tag = "Arrivals Escape Pod 1"; dir = 8},/obj/machinery/light/small,/turf/open/floor/plating,/area/space) +"lg" = (/obj/machinery/light,/turf/open/floor/plasteel/arrival{dir = 2},/area/space) +"lh" = (/turf/open/floor/plasteel/arrival{dir = 2},/area/space) +"li" = (/turf/open/floor/plasteel/white/corner{dir = 8},/area/space) +"lj" = (/obj/machinery/door/airlock/vault,/turf/open/floor/plasteel/black,/area/space) +"lk" = (/obj/machinery/door/airlock/command,/turf/open/floor/plasteel/black,/area/space) +"ll" = (/obj/effect/spawner/structure/window/reinforced,/turf/open/floor/plasteel/black,/area/space) +"lm" = (/obj/structure/reagent_dispensers/water_cooler,/turf/open/floor/plasteel/darkred,/area/space) +"ln" = (/obj/machinery/vending/sustenance,/turf/open/floor/plasteel/darkred,/area/space) +"lo" = (/obj/structure/chair,/turf/open/floor/plasteel/black,/area/space) +"lp" = (/obj/machinery/door/airlock/glass_security{name = "Prison Wing"; req_access_txt = "2"},/turf/open/floor/plasteel/darkred,/area/space) +"lq" = (/obj/structure/table/wood,/obj/item/weapon/stamp/hos,/turf/open/floor/plasteel/black,/area/space) +"lr" = (/obj/structure/sink{pixel_y = 16},/turf/open/floor/plasteel/freezer,/area/space) +"ls" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/freezer,/area/space) +"lt" = (/turf/open/floor/plasteel/vault{dir = 1},/area/space) +"lu" = (/obj/machinery/suit_storage_unit/captain,/turf/open/floor/wood,/area/space) +"lv" = (/turf/open/floor/plasteel/darkblue/side,/area/space) +"lw" = (/obj/machinery/vending/cigarette,/turf/open/floor/plasteel/darkblue/side,/area/space) +"lx" = (/obj/machinery/vending/coffee,/turf/open/floor/plasteel/darkblue/side,/area/space) +"ly" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; step_x = 0},/turf/open/floor/plasteel/darkblue/corner{dir = 8},/area/space) +"lz" = (/obj/machinery/door/window/brigdoor/eastright,/turf/open/floor/plasteel/black,/area/space) +"lA" = (/obj/structure/table,/turf/open/floor/plasteel/black,/area/space) +"lB" = (/obj/structure/table,/obj/item/weapon/storage/fancy,/turf/open/floor/plasteel/black,/area/space) +"lC" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/black,/area/space) +"lD" = (/obj/machinery/door/airlock{name = "Unisex Restroom"; req_access_txt = "0"},/turf/open/floor/plasteel/freezer,/area/space) +"lE" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 4},/turf/closed/wall/mineral/titanium,/area/space) +"lF" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/open/floor/plating,/area/space) +"lG" = (/obj/structure/safe,/turf/open/floor/plasteel/vault{dir = 1},/area/space) +"lH" = (/turf/open/floor/greengrid,/area/space) +"lI" = (/obj/structure/closet/crate/secure/loot,/turf/open/floor/plasteel/vault{dir = 1},/area/space) +"lJ" = (/obj/structure/window/reinforced,/obj/structure/displaycase/captain,/turf/open/floor/wood,/area/space) +"lK" = (/obj/structure/table/wood,/obj/structure/window/reinforced,/turf/open/floor/wood,/area/space) +"lL" = (/obj/structure/table/wood,/obj/structure/window/reinforced,/obj/item/weapon/storage/lockbox/medal,/turf/open/floor/wood,/area/space) +"lM" = (/turf/open/floor/plasteel/darkblue/side{dir = 10},/area/space) +"lN" = (/turf/open/floor/plasteel/darkblue/side{dir = 6},/area/space) +"lO" = (/turf/open/floor/plasteel/darkblue/side{dir = 8},/area/space) +"lP" = (/obj/machinery/door_timer{pixel_x = -32},/turf/open/floor/plasteel/black,/area/space) +"lQ" = (/obj/structure/reagent_dispensers/peppertank{pixel_x = 32},/turf/open/floor/plasteel/black,/area/space) +"lR" = (/obj/structure/toilet{dir = 4},/turf/open/floor/plasteel/freezer,/area/space) +"lS" = (/turf/open/floor/mineral/titanium/blue,/turf/closed/wall/mineral/titanium/interior,/area/space) +"lT" = (/obj/machinery/computer/shuttle/ferry/request,/turf/open/floor/mineral/titanium/blue,/area/space) +"lU" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/space) +"lV" = (/obj/machinery/doomsday_device,/turf/open/floor/plasteel/vault{dir = 8},/area/space) +"lW" = (/turf/open/floor/plasteel/darkblue/side{dir = 9},/area/space) +"lX" = (/turf/open/floor/plasteel/darkblue/side{dir = 5},/area/space) +"lY" = (/obj/machinery/door/airlock/security,/turf/open/floor/plasteel/black,/area/space) +"lZ" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular,/turf/open/floor/plasteel/black,/area/space) +"ma" = (/obj/structure/table,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/turf/open/floor/plasteel/black,/area/space) +"mb" = (/obj/machinery/holopad,/turf/open/floor/plasteel/black,/area/space) +"mc" = (/obj/machinery/door/airlock/glass_security,/turf/open/floor/plasteel/black,/area/space) +"md" = (/obj/structure/closet/secure_closet/warden,/turf/open/floor/plasteel/darkred,/area/space) +"me" = (/obj/machinery/door/airlock/shuttle,/turf/open/floor/mineral/titanium/blue,/area/space) +"mf" = (/obj/machinery/door/airlock/shuttle,/obj/docking_port/mobile{dir = 8; dwidth = 2; height = 12; id = "ferry"; name = "ferry shuttle"; port_angle = 0; preferred_direction = 4; roundstart_move = "ferry_away"; width = 5},/obj/docking_port/stationary{dir = 8; dwidth = 2; height = 12; id = "ferry_home"; name = "port bay 2"; turf_type = /turf/open/space; width = 5},/turf/open/floor/mineral/titanium/blue,/area/space) +"mg" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 4; id_tag = null; name = "Port Docking Bay 2"; req_access_txt = "0"},/turf/open/floor/plating,/area/space) +"mh" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 8; id_tag = null; name = "Port Docking Bay 2"; req_access_txt = "0"},/turf/open/floor/plating,/area/space) +"mi" = (/obj/structure/filingcabinet,/turf/open/floor/plasteel/vault{dir = 1},/area/space) +"mj" = (/obj/structure/closet/secure_closet/freezer/money,/turf/open/floor/plasteel/vault{dir = 1},/area/space) +"mk" = (/turf/open/floor/plasteel/darkblue/side{dir = 4},/area/space) +"ml" = (/obj/structure/table,/obj/item/weapon/razor,/turf/open/floor/plasteel/black,/area/space) +"mm" = (/obj/structure/table,/obj/machinery/syndicatebomb/training,/turf/open/floor/plasteel/black,/area/space) +"mn" = (/obj/structure/closet/crate,/turf/open/floor/mineral/titanium/blue,/area/space) +"mo" = (/obj/structure/table/reinforced,/obj/machinery/door/poddoor/shutters/preopen,/obj/item/weapon/hand_labeler,/turf/open/floor/plasteel/black,/area/space) +"mp" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/warning{dir = 9},/area/space) +"mq" = (/obj/machinery/light,/turf/open/floor/plasteel,/area/space) +"mr" = (/obj/structure/filingcabinet/security,/turf/open/floor/plasteel/darkred,/area/space) +"ms" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/darkred,/area/space) +"mt" = (/obj/effect/spawner/structure/window/reinforced,/turf/open/space,/area/space) +"mu" = (/turf/open/floor/plasteel/darkblue/corner{dir = 4},/area/space) +"mv" = (/turf/open/floor/plasteel/darkblue/corner{dir = 1},/area/space) +"mw" = (/obj/machinery/door/window/brigdoor/eastright,/turf/open/floor/plasteel/darkred,/area/space) +"mx" = (/obj/machinery/door_timer{pixel_y = -32; step_size = 0},/turf/open/floor/plasteel/darkred,/area/space) +"my" = (/obj/machinery/door/airlock/glass_security{name = "Equipment Room"; req_access_txt = "1"},/turf/open/floor/plasteel/black,/area/space) +"mz" = (/obj/machinery/door/poddoor/shutters,/turf/open/floor/plasteel/black,/area/space) +"mA" = (/obj/machinery/door/airlock/glass_security{name = "Armory"; req_access_txt = "3"},/turf/open/floor/plasteel/black,/area/space) +"mB" = (/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/wood,/area/space) +"mC" = (/obj/structure/reagent_dispensers/beerkeg,/turf/open/floor/wood{broken = 1; icon_state = "wood-broken6"; tag = "icon-wood-broken6"},/area/space) +"mD" = (/obj/machinery/microwave,/turf/open/floor/wood,/area/space) +"mE" = (/obj/item/trash/semki,/obj/structure/closet/secure_closet/freezer/meat,/turf/open/floor/wood{broken = 1; icon_state = "wood-broken5"; tag = "icon-wood-broken5"},/area/space) +"mF" = (/obj/item/trash/can,/turf/open/floor/wood{icon_state = "wood-broken7"},/area/space) +"mG" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/open/floor/wood{broken = 1; icon_state = "wood-broken6"; tag = "icon-wood-broken6"},/area/space) +"mH" = (/obj/machinery/computer/crew,/turf/open/floor/plasteel/darkblue/side{dir = 1},/area/space) +"mI" = (/obj/machinery/computer/security{name = "Labor Camp Monitoring"; network = list("Labor")},/turf/open/floor/plasteel/darkblue/side{dir = 1},/area/space) +"mJ" = (/obj/machinery/computer/security{network = list("SS13","Brig","Prison")},/turf/open/floor/plasteel/darkblue/side{dir = 1},/area/space) +"mK" = (/obj/machinery/computer/secure_data,/turf/open/floor/plasteel/darkblue/side{dir = 1},/area/space) +"mL" = (/obj/machinery/computer/security/mining,/turf/open/floor/plasteel/darkblue/side{dir = 1},/area/space) +"mM" = (/obj/machinery/computer/communications,/turf/open/floor/plasteel/darkblue/side{dir = 1},/area/space) +"mN" = (/obj/machinery/computer/message_monitor,/turf/open/floor/plasteel/darkblue/side{dir = 1},/area/space) +"mO" = (/obj/machinery/computer/atmos_alert,/turf/open/floor/plasteel/darkblue/side{dir = 1},/area/space) +"mP" = (/obj/machinery/computer/station_alert,/turf/open/floor/plasteel/darkblue/corner{dir = 1},/area/space) +"mQ" = (/obj/effect/spawner/structure/window/reinforced,/turf/open/floor/plasteel/darkred,/area/space) +"mR" = (/obj/machinery/door/window/brigdoor/northright,/turf/open/floor/plasteel/darkred,/area/space) +"mS" = (/obj/structure/closet/secure_closet/security,/turf/open/floor/plasteel/black,/area/space) +"mT" = (/obj/machinery/suit_storage_unit/security,/turf/open/floor/plasteel/black,/area/space) +"mU" = (/obj/structure/rack,/obj/item/weapon/storage/belt/holster,/obj/item/weapon/storage/box/beanbag,/obj/item/weapon/storage/lockbox/loyalty,/obj/item/weapon/secbot_assembly,/turf/open/floor/plasteel/black,/area/space) +"mV" = (/obj/item/trash/sosjerky,/obj/structure/closet/secure_closet/freezer/kitchen/maintenance,/turf/open/floor/wood{icon_state = "wood-broken7"},/area/space) +"mW" = (/obj/item/trash/can,/turf/open/floor/wood,/area/space) +"mX" = (/obj/item/weapon/reagent_containers/food/snacks/badrecipe,/turf/open/floor/wood,/area/space) +"mY" = (/obj/item/chair,/turf/open/floor/wood{icon_state = "wood-broken6"},/area/space) +"mZ" = (/obj/structure/table/wood,/obj/item/weapon/hatchet/cutterblade,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human,/turf/open/floor/wood{icon_state = "wood-broken7"},/area/space) +"na" = (/obj/structure/rack,/obj/item/weapon/gun/energy/laser,/obj/item/weapon/gun/energy/laser,/turf/open/floor/plasteel/black,/area/space) +"nb" = (/obj/structure/rack,/obj/item/weapon/gun/energy,/obj/item/weapon/gun/energy,/turf/open/floor/plasteel/black,/area/space) +"nc" = (/obj/structure/rack,/obj/item/weapon/storage/box/teargas{pixel_y = -6},/obj/item/weapon/storage/box/zipties,/turf/open/floor/plasteel/black,/area/space) +"nd" = (/obj/item/weapon/reagent_containers/food/snacks/burger/ghost,/obj/structure/closet/secure_closet/freezer/kitchen,/turf/open/floor/wood{icon_state = "wood-broken6"},/area/space) +"ne" = (/obj/item/trash/plate,/obj/item/trash/popcorn,/turf/open/floor/wood{broken = 1; icon_state = "wood-broken5"; tag = "icon-wood-broken5"},/area/space) +"nf" = (/obj/item/weapon/scalpel,/turf/open/floor/wood{broken = 1; icon_state = "wood-broken6"; tag = "icon-wood-broken6"},/area/space) +"ng" = (/turf/open/floor/wood{icon_state = "wood-broken6"},/area/space) +"nh" = (/obj/item/weapon/reagent_containers/food/snacks/cakeslice/brain,/turf/open/floor/wood,/area/space) +"ni" = (/obj/structure/table/wood,/obj/item/weapon/kitchen/fork,/obj/item/trash/candle,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/meatproduct,/turf/open/floor/wood{broken = 1; icon_state = "wood-broken"; tag = "icon-wood-broken"},/area/space) +"nj" = (/obj/structure/rack,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1; layer = 2.9},/obj/item/clothing/suit/armor/riot,/obj/item/clothing/head/helmet/riot,/obj/item/clothing/gloves/fingerless,/obj/item/clothing/mask/gas/sechailer/swat,/obj/item/weapon/melee/classic_baton/telescopic,/turf/open/floor/plasteel/black,/area/space) +"nk" = (/obj/structure/rack,/obj/item/weapon/gun/energy/gun/mini{pixel_y = -4},/obj/item/weapon/gun/energy/gun/mini,/turf/open/floor/plasteel/black,/area/space) +"nl" = (/obj/structure/rack,/obj/item/weapon/gun/energy/ionrifle,/turf/open/floor/plasteel/black,/area/space) +"nm" = (/obj/item/trash/can,/turf/open/floor/wood{broken = 1; icon_state = "wood-broken"; tag = "icon-wood-broken"},/area/space) +"nn" = (/turf/open/floor/wood{broken = 1; icon_state = "wood-broken6"; tag = "icon-wood-broken6"},/area/space) +"no" = (/obj/item/trash/plate,/turf/open/floor/wood{broken = 1; icon_state = "wood-broken"; tag = "icon-wood-broken"},/area/space) +"np" = (/turf/open/floor/wood{broken = 1; icon_state = "wood-broken5"; tag = "icon-wood-broken5"},/area/space) +"nq" = (/obj/structure/ore_box,/turf/open/floor/wood{icon_state = "wood-broken7"},/area/space) +"nr" = (/obj/structure/rack,/obj/item/candle,/obj/item/clothing/mask/surgical,/obj/item/clothing/shoes/workboots,/turf/open/floor/wood,/area/space) +"ns" = (/obj/structure/rack,/obj/item/weapon/kitchen/rollingpin,/turf/open/floor/wood{broken = 1; icon_state = "wood-broken6"; tag = "icon-wood-broken6"},/area/space) +"nt" = (/obj/item/trash/syndi_cakes,/obj/structure/closet/crate/freezer,/turf/open/floor/wood{icon_state = "wood-broken7"},/area/space) +"nu" = (/obj/item/weapon/melee/skateboard{force = 20},/turf/open/floor/plating,/area/space) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababaaaaaaacacaaabababababababaaacacaaaaaaababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabadadadaaaeadadadadadadadadadadadadaaadadadabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabadadadafadadadagadadagadadagadadadafadadadabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababadadaaadadahaaaaaaahaaaaaaahadadaaadadababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababadadaaadadaaaaaaaaacaaaaaaaaaiadaaadadababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabadadadaaadadaaaaacacacacacaaaaadadaaadadadabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabadadadaaadadaaaaacajakalacaaaaadadaaadadadabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababadadafadadahacacamanaoacacahaiadafadadababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababadadaaadadaaaaacapaqaracaaaaadadaaadadababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababadadaaadadaaaaacacacacacaaaaadadaaadadababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabadadadaaadadaaaaaaaaacaaaaaaaaaiadaaadadadabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabadadadaaadadaaaaaaaaahaaaaaaaaadanaaadadadabasasasasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatauataaaaaaabadadadafadadahadadadadadadadahadadafadadadabavavavasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasatawatasaaaaabadadadaaadadadaxadadaxadadaxadadadaaadadadabavavavasaaaaaaaaaaaaaaaaaaaaaaasasasasasasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasatayatasaaasababadababavavazabazazazazazabazavavaaabadababasasavasasavavavavasasaaaaaaaaasavavavavasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasaAaBaAasaaasavabadababazazazabaCaDaDaDaEabazazazababadabaFaFaFaFaFaFaFaFaFaFaFasaaaaaaaaasavavavavasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasavavavasaaasavabadabaDaDaDaDabaGavavavaHabaDaDaDaDabadabaFaFaFaFaFaFaFaFaFaFaFasaaaaaaaaasavavavavasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasavavavasababababavabaDaDaDaDabaGavavavaHabaDaDaDaDabaFaFaFaFaFaFaFaFaFaFaFaFaFasasasasasasavavavavasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasasasavavavavavavavabaFaFaFaFaFaFabaGavavavaHabaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFasavavavavavavavavavasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasavavavavavavavavavabaFaFaFaFaFaFaFaGavavavaHaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFasavavavavavavavavavasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasavasasasasabababavavaFaFaFaFaFaFabaIaJaJaJaKabaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFasasavavavavavavavavavasasasasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasavasaLaLaLaLaLababababababaFaFaFababaFabaFababaFaFababababasasasasasasasasasasasasasavavavavavavavavavasavavasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasasavasaLaMaNaOaLaPaQaLaLaRabaFaFaFaFaFaFaFaFaFaFaFaFabavavavavavavavavavavavavavavavasasasavasasasasavavasavavasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasasasasasavavasaLaSaLaTaLaPaLaLaLaLabaFaFaFaFaFaFaFaFaFaFaFaFabavavavavasasasasasasasasasasavavasavavasavavasavavasavavasasasasasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasavavasavavavasaLaUaVaWaLaPaQaLaLaLabaFaFabaXababababaFaFaFaFabavavavavavavasaaaaaaaaaaaaasavavasavavasavasasasasasavavavasavavasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasavavasavavavasaLaLaLaLaLaLaLaLaLaYabaFaFabavavavavababababababavasasasasasasaaaaaaaaaaaaasavavaXavavavavavavavavavavavavasavavasasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasavasasavavavasaLaLaLaLaLaLaLaLaLaZabaFaFabasasasavavavavavavavavasbabbbcbcbcaaaaaaaaaaaaasavasasasasasavasavavavavavavavavavavavasasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasavavasasavavasasasasasasasasasbdasasaFaFasaFbeasavasasavavavavavasaFaFbfavbfaaaaaaaaaaaaasavasacaaaaasasasasasasasasavavavavavavavasasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasavavavavavavavavavavavavasaFbeaFaFaFaFaFaFaFaFaXavavasasasasavavasaFaFbcbcbcaaaaaaaaaaaaasavasacaaacaaaaaaaaaaaaaaasasasasavavavavavasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasasasasasasasasasasasasasasasasasavasaFaFaFaFaFaFaFaFaFaFasavavasbgbhasasavasaFaFbibiasaaaaaaaaaaaaasavasacaaacaaaaaaaaaaaaaaaaaaasasavavavavavasasasasasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasbjbkblbmbnbkboasbnbkblasbnbpblasavasaFaFaFaFasasasasasasasasasabbqbrasavavasaFaFaFbsasaaaaaaaaaaaaasavasacacacatatatatatatatataaaaasavavavavavavavavavasavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasblbmbnbkblbmbnasasbmasasblasbnasavasaFaFaFaFasbtbuasbtbuasbtbuabbvabababavasbiaFaFbsasasasasasasasasasasasazazatayayayayayayataaaaasavavasasasasasasavasavavavavavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazbkbnbmblbkbnbmasbkbnbwasbkbjbmasasasasasbxbxasbybyasbybyasbybyabbzbAbuabavasbBaFaFaFbCasbDbDbDbDbDbDbDbDbEbDbDbFayayayayayayataaaaasavavasbGbGbGbGasavasasasasasasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazbmblbkbnbmblbkbnbmblbkbnbmblbkbHbIbJbKasaFbLasbMasasbNasasbOasabbPbybyabavasasasbQasasasaFaFaFaFaFaFaFbRasazazatayayayayayayataaaaasavavasbGbGbGbGasavavavavavavasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazbnbkblbmbnbkblbmbnbkblbmbnbkblbmbybybybSaFaFasaFaFaFaFaFaFaFaFbTbPbUbVabavasaFaFbWbWbWbWbWbWbWbWaFaFaFaFbXavbYaBayayayayayayataaaaasavavasbZbGbGbZasavavavavavavasasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazblbmbnbkblbmbnbkblbmbnbkblbmbnbkbybybycaaFaFascbaFaFaFaFaFaFaFabababababaXasaFaFaFaFaFaFaFaFaFaFaFaFaFaFascccdatayayayayayayataaasasasasasasbGbGasasasasasasavavavascecececeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazbkbnbmblbkbnbmblbkbnbmcfbkbnbmcgbkbnbmasaFaFaschciaFaFaFaFcjckasavavavclavasaFaFbWbWbWbWbWbWbWbWaFaFaFaFascmcnatayayayayayayataaascocococpcqbGbGcqcpcococoasavavavavcrcrcrcsctaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazbmblbkbnbmblbkasasasasasbmasasasasasasascucuasasasaFaFasasasasasavavavavavasaFaFaFaFaFaFaFaFaFaFaFaFaFaFbXavbYaBayayayayayayataaascococococobGbGcococococoasavavavascvcvcwcxctaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasbnbkblbmbnbkblascybybybybybybyasaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFasavavavavavczaFaFbWbWbWbWbWbWbWbWaFaFaFaFasazazatayayayayayayataaascocococpcAbGbGcAcpcococoasavavavasaaaacBcxctaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaascfbmbnbkblbmcCasbybybybybybybyasaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFasavavavavavasaFaFaFaFaFaFaFaFaFaFaFaFaFaFasacacatayayayayayayataaasasasasasasbGbGasasasasasasasasavasasascBcxctaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasasasasasasasasasaLasascDasasasasaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFasavavavavavasaFaFaFaFaFaFaFaFaFaFaFaFaFaFasacaaatayayayayayayataaascocococpcqbGbGcqcpcococoasavasavavavascBcxctaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavavavaLaLaLaLaLasaLaLaLasavasaFaFaFasasasasasasasascucuasasasavavavavavasasasascEasasasasasasasasasasasacaaatayayayayayayataaascococococobGbGcococococoasavasavavavascBcxctaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasasasasasasasaLaLaLaLaLasaLaLaLavavasaFaFaFascFcFbPbybycFasaFaFasavasavavavavavasaFaFaFaFaFaFaFcGaFaFaFaFaFaFasacaaatatayayayayatataaascocococpcAbGbGcAcpcococoasavasavavavascBcxctaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasasasavavavavavasaLaLasasaLasaLaLaLasavasaFaFaFascHbybPcFcFcIasaFaFasavascJavavavavczaFaFaFaFaFaFaFaFaFaFaFaFaFaFasacaaatatavavavavatataaasasasasasasbGbGasasasasasasavasavavavascKcxctaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasavavavavavavavasaLaLasaLaLasaLaLaLasavcLaFaFaFasbybybPbPbPcMasaFaFasavasavavavavavasaFaFaFaFaFaFaFaFaFaFaFaFaFaFasacaaaaatavavavavataaaaascocococpcqbGbGbGbGbGbGbGasavasavavavavcNcOctaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasasasavavavavavavavascPasasasasasasasasasavasaFaFaFasascQasaPaPasasaFaFasavasasasasaXasasascRasasasazazazcSasasaFaFaFasacaaaaaaaaaaaaaaaaaaaaascococococobGbGbGbGbGbGbGasavasavavavascvcTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasavavavavavavavavavasavavavavavavavavavasasasaFaFaFcuaFaFaFaFaFaFcGaFaFasavavavavavavavasaFaFaFcUaFaFaFaFaFaFasaFaFaFasasasasasasaaaaaaasasasascocococpcAbGbGbGbGbGbGbGasavavavasasasasasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasasasasavavavavavavavavavasavavasasasasasavavascjcUaFaFaFcuaFaFaFaFaFaFaFaFaFasavavasavasasasascVaFaFaFaFaFaFaFaFaFasaFaFaFcWavavavavasaaaaasasavavasasasasasascXcXasasasasasasavavavasavavavasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasavavavavavavavavavavavavasavavascYcYcYasavavascZaFaFaFaFasasasasasasaXasasasasavasasavavavavasdadbdbaFaFaFaFdbdbdaasaFaFaFasavavavavasasasasavavavavasbGbGbGbGbGbGbGbGbGbGbGasavasavasavavavazaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasasavavavavavavavavavasasasasavavascYcYdcasavavasasascucucuasavavavavavavavavavavavavasasasaXasasasazazascucuasazazasasasasasasavavavavavavavasasavasasasbGbGbGbGbGbGbGbGbGbGbGasavasavasavavavazaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasavavavavavavavavasasasavavavavavascYcYddasavavavavasaFaFaFasavasasaXasasasasasasdeasasaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFasasasasasasavavavavavavavavbGbGasasasasasasasasasasavasavavavavavazaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasavavavavavavavavasavasavasasasasasascYasasasascLasasaFaFaFasavasdfaFdgdhasdidjdkdkdkasaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFasavavavasavavasasasasasasasbGbGasaLaLaLaLaLaLaLasavavasavasasasasasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasavavavavavavavavasavavavasdlbPdmbPdnbPbPdodpdqbPdrasaFaFaFasavasdsaFaFdtasdudududkdkasaFaFasasasasasasasasasasdvasasaXasaFaFavavavavasavavavasaLaLaLaLasbGbGasaLaLaLaLaLaLaLasavasasavavavavasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasasavavavavavavavasavasavasdwbPdxbPdybPbPbPdpbPbPdpasaFaFaFasavasdzaFaFdAasdkdkdkdkdkasaFaFazdBdCdBdDdBdCdBasdEdFdGasavasaFaFasavavavavavavavasaLaLaLaLasbGbGaLaLaLaLaLaLaLaLasavasavavavavavasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasasavavavavasasasavasavasdydHdydIdybPdJbPbPbPbPdKasaFaFaFasavasazdLazazasasdMasasasasaFaFazdFdFdFdFdFdFdFdNdFdFdFcLavasaFaFasdOasavasasavdPasaLaLaLaLasbGbGasaLaLaLaLaLaLaLasavasavavavavavasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasavavavavasavavavasavasbPbPbPbPbPbPbPbPbPbPbPdQasaFaFaFasavasaFaFaFaFaFaFaFaFaFaFaFaFaFazdBdBdBdFdBdBdBasdFdFdRasavasaFaFasavavavdSasasavasasaLasasasbxbxasaLaLaLaLaLaLaLasavasasasasavavasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasavavavavasavdOdOasavasdTbPdUbPdpdpdpasasdVdVasasaFaFaFasasasaFaFaFaFaFaFaFaFaFaFaFaFaFdWdFdFdFdFdFdFdXasdYdYdRasavasaFaFasasasasasasbGbGbGbGbGbGbGbGbGbGasasasasasasasasasavavavavasavavasasasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasavavavavasavavavasavasdTbPdZbPbPbPeaasaFaFaFaFaFaFaFaFaFaFcuaFaFaFasasasasasasasasaFaFdvdFdFdFebdFdFecasasasasasavasaFaFasaFcGaFaFedbGbGbGbGbGbGbGbGbGbGasaLaLaLaLaLaLaLasavasavavasavavavavasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasavavavavasavavavavavaseebPdZbPdpefefasaFaFaFaFaFaFaFaFaFaFcuaFaFaFasavavavavavavcLaFaFasdFdFasegeheiasasejbqekasavaXaFaFelaFaFaFaFasasasasasasasasasbGbGasaLaLaLaLaLaLaLasavasasasasavavavavasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasavavavavasavavavasavasembPbPbPbPbPbPasaFaFaFaFaFaFaFaFaFaFcuaFaFaFasavasasasenasasaFaFaseoepaseqeresetaseubqbqaXavasaFaFasaFaFaFaFasevewexeyezeAezasbGbGasaLaLaLaLaLaLaLasavavavavasavavavavasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasasavavavavasasasasasavasasasasasasaXasasasasasasasasasasasasascucucuasavaseBeCeDeEasaFaFasasasaseFerereGasaseHasasasasaFaFcSaFaFaFeIaseJaLaLaLaLaLaLazbGbGeKaLaLaLaLaLaLaLasasasavasasasasavasasasasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasavavavavavavavavavasavavavavavavavavavavavdOavaseLeMeNeOePeQasaFaFaFcLavaseReDeDeDeSaFaFaFaFaFaseTererereUeVereWaseXaFaFaFasaFeYaFeZasevaLaLaLaLaLfaazbGbGasaLaLaLaLaLaLaLasavavavavasavavavavavavasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasavavavavavavavavavasasasavasasasavavavdOavavavfbbPbPbPbPbPbPbPaFaFaFasasasasasfcasasaFaFaFaFfdasfefferererererfgasaFaFaFaFasasasasasasasasasasfhfifjasbxbxasasazazazazasasasavavavavasavavavavavavazaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasavavavavavavavavavasavavavavasavdOdOasasasasasbPbPbPbPbPbPasaFaFaFasfkflfmfnbPfoasasasasaFaFasasasfpfqfrasfsasasaFaFaFasasftfuascGaFaFaFfvbGbGbGbGbGbGbGfwbGbGbGbGbGbGbGasavavavavavavavavavavavazaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasavavavavavavavavasasasasasasasavavavasfxfyfzasasasasasasasasaFaFaFasbPbPbPeDeDeDasfAfBasaFaFasfCfDerererfEerfFasaFbLasasfGavavfHaFaFaFaFfvbGbGbGbGbGbGbGbGbGbGbGbGbGbGbGasavavavavasavavavavavavasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasavavavavavavavavasaaaaaaaaaaasasavavasfIfzfzasfJasfJasfKfKasaFaFaFasePePfLfMaseSasbPfNasaFaFaserererererfOfOfOazaFaFfPavavavfQasaFaFaFfRasasasasasasfSfSasasasasasfTfUasasavasasasasasfVasasasasasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasasasasasasasasasasaaaaaaaaaaaaasavasasasfWfWasfXasfXasfzfzasaFaFaFaPfYfZfZfZgagbgcbybygdaFaFgeergfggghergggiggazaFaFfPavavavavazaFgjaFgkasbGbGglglbGbGbGfwgmasgngobGbGgpasasasaaaaaacBfVctaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagqaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaasavavasfzfzfzfzfzfyfzgrfzfzgsaFaFaFaPgbbybybPbPbybybygbgdaFaFgeergfggghergggtggazaFaFasgugvgwgxazaFaFaFgyasgzbGbGbGbGbGbGbGgmasgAbGbGbGgBazaaaaaaaaaacBfVctaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaacaaacaaaaaaasavavavfzfzfzfzfzfzfzfzfzfzasaFaFaFasgCgDgEbPgFbPgGgHgIasaFaFasergfggghergJgJgJazaFaFgKavavavavasaFaFgLgMasgNgObGbGbGbGbGbGbGasgPbGbGgQgRazaaaaaaaaaacBfVctaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacababbcbcbcbcbcbcbcbcababasazazazasasasavavasasasasasasasasasasasasaFaFaFasgCgSgEeDbPbPgTdygUascucuasergVererererergVascucuasavgWgwgxasgXgXasasasasasgYbGbGbGbGbGbGasasasasasasasasasascececKfVgZceaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahahahbashchdhehfhfhfhfhfhfhfhgaFaFaFaFaFaFaXavavavavavavavavavavavavavasbxbxbxasasasashhaPhhasasasasbxbxasasasazgeazgeazasasbxbxasasasasasasasasashihjhjhkbGbGbGbGbGbGbGashlhmhnhoasasavavasashphpavhphqctaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaauhrhshthuavhuhvaFhvhwhxhxhyhzhxaFaFhAaFaFaFababasasasasababasasasdOavavasaFaFaFaFaFcGaFaFaFaFhBaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFcuhjhjhjhkbGbGbGbGhCbGbGhDhDhEhDhDasavhFavavasavavhGhGcOctaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahahahbashHasbchIbchJaFaFhKbchIbchLhAaFaFaFabhMhNhOhPhQhRabhShTasavavavasaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFcuhjhjhUasashVasbGbGbGbGazhDhWhDhDashFhFavavasasavashXhXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhYabhZavbciaibicidbcavhZbcabieaFifasaLaLaLaLaLaLigihiiasdOdOavasaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFcuhjhjhjijikhjazbGbGbGbGazhDilhDimasavavinhFavavavasioaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabchIbcbcbcbcbcbchIbcaaabaFaFeXasipaLaLaLaLiqasascLasavavavaXaFaFaFasasasasasirasasasasasaXasasasasasasascucuasasasaXasasasascLasaFaFashjhjhjisithjazbGbGbGbGashDhDhDiuasavhFinhFavivavasioaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahaiwhaauauauauhaiwhahaabaFaFixabiyaLiziAfaiBabavavavavavavasaFaFaFasiCiDiEiFaLiFiGasavavavavavavavavaXaFaFaFaFasavavavasavavavasaFaFasiHhjhjasashVasbGbGbGiIasasasasasasinhFiJhFivivavasioacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahahahaiKiLiMiNiOiPiQiRiLiSiTbcaFaFaFababiUasiViWababasasasasasasascucucuasaLaLaLaLaLiFiXasavavavasasasavasasaFaFaFaFaFavavasasavasasasaFaFasiYhjhjhkbGbGbGbGbGbGbGaXavavavavavinhFiJinavavavasiZacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaujajahaiLjbiLjbiLjbiLjbiLiSjcbcaFaFaFcuaFaFcUaFaFaFaFaFaFaFaFaFaFaFaFaFaFasjdjejdiFjfaLaLjgavavavasavavavavasaFaFaFaFasasasasjhbxjiihasaFaFasjjhjhjhkbGbGbGbGbGbGbGasivivivasavavhFavinavavhFasaajkacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaauiLiLjliLjbiLjbjmjbiLjbiLiSjcbcaFaFjnasasaPaPaPaPasaFjojpjqjrjsjtjuaFaFaFasasasasasasasasasavavavavavavasasasaFaFaFaFasavjvasjwihihihasaFaFasasjxasasazjyazasazjzazasavasasasaviniJinavjAjAavasjBjCacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaujDjDhaiLjbiLjbiLjbiLjbiLiSjcbcaFaFaFcuaFaFaFaFaFaFaFjEjFjGjHjIjJjKaFaFaFasavavavavavavavavavavavasasavasavasbxbxbxbxasjLavjMihihjNihasaFaFasaLaLaLazjObqjPasjQbGjRasiJasivhFhFinivinjAasasasasasasasjBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahahahajSiLiLiLiLiLiLjTiLiSjUbcaFaFaFcuaFaFaFaFaFaFaFaFaFaFaFjVaFaFaFaFaFasavasasasasavasasasavasasavavavavasaFaFaFaFasavjWasjXihihjYasaFaFasaLaLjZazkabqkbasjQbGkcasavasashFinavivkdjAavavavasavavasjBasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahakehaauauauauhaiwhahaabaFaFaFaskfkfdkdkkfkfaskgaFaFasasazazazazasasavaskhkiasavavavasavavasasasasasaskjkkkkkjascLasababababababaFaFklaLaLjZazkmbqknaskobGkpasavavasavinivavkdavavavavasavavasasacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabchIbcbcbcbcbcbchIbcaaabaFaFifascFcFdkdkcFkqaskraFaFasksktemdydykuasavaskvkwasavasavasavavasaFkxkxkxaFaFaFaFaFaFaFeXabkykzkAkBabaFaFasaLaLaLazkCbqkDaskEkFkGasavavasiJinivavasavavavavasavavavasacaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhYabbcavbckHkIkJkKbcavbcbcabaFaFaFaskLkLdkdkkLkLascZaFaFkMbPbPemdydykNasavasasasasavasavavavavaXaFaFaFaFaFaFaFaFaFaFaFkrabkOaLaLkOabaFaFasasasasasasasasasasasasasavavasavavavinavavavavavasavavavasacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahahahbashcasbchIbchJaFaFhKbchIbckPkQieaFaFcuaFaFaFaFaFaFaFaFaFaFkMbPbPbPbPbPbPfbavasavavavavavavasavavababababababkRkSkSkRababababkOkTaLkOabaFaFaFaFaFaFaXavasasaaaaaaaaaaasasasaviJinkdasavavavavasavavavasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaukUhskVhuavhukWaFkXkYaFaFkZkXaFkWkYaFaFaFaFcuaFaFaFaFaFaFaFaFaFaFasladybPbPbPbPasavavavasasavabababababababablbkOkOkOkOkOkOkAlclcazkOldlekOabasasasaFaFaFasavasaaaaaaaaaaaaazavhFhFinkdjAasasavasasasavavavasaaaaaaacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahahahbaslfhdlglhlhlhlhlhlhlhlhlglhliaFaFaFasasabababljabababababababababablklkababababababavabkOkOllkOlmlnabkOaLloloaLaLaLaLaLkOlpkOldlqkOablrlsasaFaFaFasavasaaaaaaaaaaaaazavhFavasasasasavavavavavavavavasaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababbcbcbcbcbcbcbcbcababasaFaFaFasaaabltaLaLaLltabaaablubPbPbPablvlvlvlvlwlxlyabavabkOaLlzaLaLkOaskOaLlAlBlCaLaLaLaLkOaskOkOkOkOabbqbqlDaFaFaFasavascecececececeasavavavavasiohFhFasasasasasasasasaaacaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalEhahalFhahahaauhahahaaabciaaFaFaFasaaablGlHlHlHlIabaaablJbPlKlLaslMlNlMlNlMlNlOasaXabasasaslPaLkOaskOaLiAlAlClQasasasasabababababablRbqasaFaFaFasavavhphphphphphpavavavavasasasasasasaaaaacaaaaiZacaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalElSiLlTjajajajajajajalFlUbcbcaFaFaFasaaablIlHlVlHlIabaaabbPbPbPbPaslWlXlWlXlWlXlOlkavlYkOaLaLaLaLkOlpkOaLlZmambaLmcaLaLmdasavavavasasasasasaFaFasasavavavavavavavavasavavavavavavasasacacaaacaaaaiZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaameiLiLiLiLiLiLiLiLiLiLmfmgavmhaFaFaFasaaabmilHlHlHmjabaaasasaskMasaslOmklOmklOmklOlkavlYkOaLaLaLaLkOlpkOaLmlmmaLaLasaLaLkOasavavavascjcZaFaFaFaFaFasasasasasasasasasasasasasasasavavasasasasasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalElSmnmnjDjDjDjDjDjDjDlFbcbcbcaFaFaFasaaabababababababaaasmklOmklOmklOmklOmklOmklOasaXabasasaslPaLkOaskOaLaLaLaLaLmoaLaLkOasavasasasaFaFaFaFaFaFaFasaaaaaaaaaaaaaaaaaaaaaaaaaaasavavavavavavasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalEhahalFhahahaauhahahaaabcmpaFmqaFasaaaaaaaaaaaaaaaaaaasmklMlNlMlNlMlNlMlNlMlNlOasavabkOaLllaLaLkOasmrkOmsmskOkOaskOkOkOabavavavasaFaFaFaFaFaFaFazmtmtaaaaaaaaaaaaaaaaaaaaaaasavasavasasgdasasasasasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacababbcbcbcbcbcbcbcbcababasazazazasaaaaaaaaaaaaaaaaaaabmulWlXlWlXlWlXlWlXlWlWmvabavabkOkOmwmxkOkOabazmyababmzmzababmAababavasavasaFaFasmBaFaFaFbYavbYaaaaaaaaaaaaaaaaaaaaaaasavasavasmCbPmDmEmFmGasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababmHmImJmKmLmMmNmOmNmPababavababababasmQmRabmSaLabmTaLaLaLaLaLmUabavdOavaXaFaFaFaFaFaFaFazmtmtaaaaaaaaaaaaaaaaaaaaaaasavasavasmVmWmXbPmYmZasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababazazazazazazazazababasavavavasavabkOkOabmSaLabmTaLnaaLnbaLncabavdOavasaFaFaFgjaFaFaFazaaaaaaaaaaaaaaaaaaaaaaaaaaasavavavasndnenfngnhniasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasasavavasavabkOkOabmSaLabnjaLnkaLnlaLnjabavasavasaFaFaFaFaFaFaFazmtmtaaaaaaaaaaaaaaaaaaaaaaasavasavgdnmnnnonpasasasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasavavavavasabababaLaLabnjaLaLaLaLaLnjabavavavasaFaFasmBaFaFaFbYavbYaaaaaaaaaaaaaaaaaaaaaaasavasavasnqnrnsntasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasavavavavasaLaLaLaLaLabababababababababavasasasaFaFaFaFaFaFaFazmtmtaaaaaaaaaaaaaaaaaaaaaaasavavavasasasasasasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasasavasavavasaLaLaLaLaLasavavasnuasavavavavavavasaFaFaFaFaFaFaFazaaaaaaaaaaaaaaaaaaaaaaaaaaasavasasasavasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasasavavasasasasaLaLaLaLaLaXavavasasasavavavavavavaskreXaFaFaFaFaFasaaaaaaaaaaaaaaaaaaaaaaaaaaasavavavavavasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasavavavavavavaXaLaLaLaLaLasavavavavavavavavavavasasasasasasaFasasasasasaaaaaaaaaaaaaaaaaaaaaaasavavavavavasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasavavavavavavasaLaLaLaLaLasavavavasasasasasavasasavasavasaFaFaFaFbXavbXaaaaaaaaaaaaaaaaaaaaaaasasasavavavasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasavavasasasasasasmyasasasasasasavasavavavasavavavavasavasaFaFaFaFasasasaaaaaaaaaaaaaaaaaaaaaaasavavavavavasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasavavasaaaaaaaaaaaaaaaaasavavasavavavavavasavasasavasavasasasasasasaaaaaaaaaaaaaaaaaaaaaaaaaaasavasavavavasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasavavasaaaaaaaaaaaaaaaaasavavasavasasasasasavavavavavavavavavavavasaaaaaaaaaaaaaaaaaaaaaaaaaaasavasasavasasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasavavasaaaaaaaaaaaaaaaaasavavavavavavavavasasasasasavasasasasavavasasasasasasasasasasasasasasasavavavavasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasavavasaaaaaaaaaaaaaaaaasavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavasasavasasasasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasavavasaaaaaaaaaaaaaaaaasavavavavavavavavavavavavavavavavavasasasasasasasasavasasavasasavasavavavavavavavasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasavavasasasasasasasasasasavavavavavavasasasasasasavavavavavavavasavavavavavavasavavasavavasavasavavavasasasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasasavavavavavavavavavavavavavavavavavasaaaaaaaaasasavavavavavavasavavavavavavasavavasavavasavasavasasasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasasasasasasasasasasasasasasasasasasasaaaaaaaaaaasavavavavavavavavavasasasasasasasasasasasasasasasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasasasasasasasasasasasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +"} diff --git a/_maps/map_files/DreamStation/dreamstation04.dmm b/_maps/map_files/DreamStation/dreamstation04.dmm new file mode 100644 index 0000000..fd247ee --- /dev/null +++ b/_maps/map_files/DreamStation/dreamstation04.dmm @@ -0,0 +1,140315 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aaa" = ( +/turf/open/space, +/area/space) +"aab" = ( +/obj/effect/landmark{ + name = "carpspawn" + }, +/turf/open/space, +/area/space) +"aac" = ( +/obj/structure/lattice, +/obj/structure/grille, +/turf/open/space, +/area/space) +"aad" = ( +/obj/structure/lattice, +/obj/structure/grille/broken, +/turf/open/space, +/area/space) +"aae" = ( +/obj/structure/lattice, +/turf/open/space, +/area/space) +"aaf" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on, +/turf/open/floor/plating/airless, +/area/storage/secure) +"aag" = ( +/turf/closed/wall, +/area/storage/secure) +"aah" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/storage/secure) +"aai" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/storage/secure) +"aaj" = ( +/turf/closed/wall, +/area/aisat) +"aak" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/aisat) +"aal" = ( +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/obj/structure/cable/yellow{ + d2 = 2; + icon_state = "0-2" + }, +/obj/machinery/power/port_gen/pacman, +/turf/open/floor/plasteel/black, +/area/storage/secure) +"aam" = ( +/obj/structure/table, +/obj/item/stack/sheet/mineral/plasma{ + amount = 30 + }, +/turf/open/floor/plasteel/black, +/area/storage/secure) +"aan" = ( +/obj/machinery/computer/monitor, +/obj/structure/cable/blue{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/storage/secure) +"aao" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/stack/cable_coil/white, +/turf/open/floor/plasteel/black, +/area/storage/secure) +"aap" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/structure/cable/blue{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + aidisabled = 0; + auto_name = 1; + cell_type = 2500; + dir = 4; + name = "Autoname APC East"; + pixel_x = 24; + pixel_y = 0 + }, +/obj/machinery/camera{ + c_tag = "AI Satellite Storage"; + network = list("Sat"); + start_active = 1 + }, +/mob/living/simple_animal/bot/floorbot{ + on = 0 + }, +/turf/open/floor/plasteel/black, +/area/storage/secure) +"aaq" = ( +/obj/structure/cable/blue{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/aisat) +"aar" = ( +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/aisat) +"aas" = ( +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance_hatch{ + req_access_txt = "65" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/storage/secure) +"aat" = ( +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/storage/secure) +"aau" = ( +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + frequency = 1439; + id_tag = null; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/storage/secure) +"aav" = ( +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/blue{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/blue{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/mob/living/simple_animal/bot/secbot/pingsky, +/turf/open/floor/plasteel/black, +/area/storage/secure) +"aaw" = ( +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/storage/secure) +"aax" = ( +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/blue{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/storage/secure) +"aay" = ( +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance_hatch{ + req_access_txt = "65" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/storage/secure) +"aaz" = ( +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/aisat) +"aaA" = ( +/obj/structure/cable/blue{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/aisat) +"aaB" = ( +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/camera{ + c_tag = "AI Satellite Northwest"; + dir = 8; + network = list("Sat"); + pixel_x = 0; + pixel_y = 0; + start_active = 1 + }, +/turf/open/floor/plating, +/area/aisat) +"aaC" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4"; + d1 = 1; + d2 = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/machinery/light_switch{ + pixel_x = -24; + tag = "w" + }, +/turf/open/floor/plasteel/black, +/area/storage/secure) +"aaD" = ( +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkwarning/corner, +/area/storage/secure) +"aaE" = ( +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/darkwarning, +/area/storage/secure) +"aaF" = ( +/turf/open/floor/plasteel/darkwarning/corner{ + tag = "icon-warndarkcorners (NORTH)"; + dir = 1 + }, +/area/storage/secure) +"aaG" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0; + tag = "e" + }, +/turf/open/floor/plasteel/black, +/area/storage/secure) +"aaH" = ( +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/camera{ + c_tag = "AI Satellite Northeast"; + dir = 4; + network = list("Sat"); + start_active = 1 + }, +/turf/open/floor/plating, +/area/aisat) +"aaI" = ( +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/aisat) +"aaJ" = ( +/obj/machinery/recharge_station, +/turf/open/floor/plasteel/darkwarning, +/area/storage/secure) +"aaK" = ( +/obj/structure/cable/yellow, +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/machinery/status_display{ + layer = 3; + pixel_x = 0; + pixel_y = -32 + }, +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (SOUTHEAST)"; + dir = 6 + }, +/area/storage/secure) +"aaL" = ( +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/obj/structure/cable/blue, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/light, +/turf/open/floor/plating, +/area/storage/secure) +"aaM" = ( +/obj/machinery/shieldgen, +/obj/structure/cable/white{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/machinery/ai_status_display{ + pixel_x = 0; + pixel_y = -32 + }, +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (SOUTHWEST)"; + dir = 10 + }, +/area/storage/secure) +"aaN" = ( +/obj/machinery/shieldgen, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/darkwarning, +/area/storage/secure) +"aaO" = ( +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/aisat) +"aaP" = ( +/turf/closed/wall, +/area/ai_monitored/turret_protected/ai) +"aaQ" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai) +"aaR" = ( +/obj/structure/cable/white{ + tag = "icon-1-10"; + icon_state = "1-10" + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai) +"aaS" = ( +/obj/structure/cable/white{ + tag = "icon-5-10"; + icon_state = "5-10" + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai) +"aaT" = ( +/obj/machinery/porta_turret_construct, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/ai_monitored/turret_protected/ai) +"aaU" = ( +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"aaV" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"aaW" = ( +/obj/machinery/flasher{ + id = "AI"; + pixel_x = 0; + pixel_y = 24 + }, +/obj/structure/cable/white{ + tag = "icon-2-5"; + icon_state = "2-5" + }, +/obj/machinery/camera{ + c_tag = "AI Chamber North"; + network = list("Sat"); + start_active = 1 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"aaX" = ( +/obj/machinery/porta_turret_construct, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/ai_monitored/turret_protected/ai) +"aaY" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"aaZ" = ( +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + frequency = 1439; + id_tag = null; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners (NORTH)"; + dir = 1 + }, +/area/ai_monitored/turret_protected/ai) +"aba" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai) +"abb" = ( +/obj/machinery/ai_slipper{ + icon_state = "motion0"; + uses = 10 + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/ai) +"abc" = ( +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners (EAST)"; + dir = 4 + }, +/area/ai_monitored/turret_protected/ai) +"abd" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"abe" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"abf" = ( +/obj/structure/cable/white{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai) +"abg" = ( +/obj/machinery/porta_turret/ai{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/ai_monitored/turret_protected/ai) +"abh" = ( +/obj/structure/window/reinforced, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"abi" = ( +/obj/structure/cable/white{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/window{ + name = "AI Core Door"; + req_access_txt = "16" + }, +/obj/machinery/holopad, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"abj" = ( +/obj/machinery/porta_turret/ai{ + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/ai_monitored/turret_protected/ai) +"abk" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"abl" = ( +/turf/closed/wall/r_wall, +/area/aisat) +"abm" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"abn" = ( +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"abo" = ( +/obj/effect/landmark/start{ + name = "AI" + }, +/obj/structure/cable/white, +/obj/machinery/power/apc{ + auto_name = 1; + cell_type = 5000; + dir = 2; + name = "AI Chamber APC"; + pixel_y = -24 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + freerange = 1; + listening = 1; + name = "Common Channel"; + pixel_x = -27; + pixel_y = 5 + }, +/obj/item/device/radio/intercom{ + anyai = 1; + freerange = 1; + listening = 0; + name = "Custom Channel"; + pixel_x = -27; + pixel_y = -9 + }, +/obj/item/device/radio/intercom{ + anyai = 1; + broadcasting = 0; + freerange = 1; + frequency = 1447; + name = "Private Channel"; + pixel_x = 29; + pixel_y = 0 + }, +/obj/machinery/button/flasher{ + id = "AI"; + pixel_x = 26; + pixel_y = -24 + }, +/obj/machinery/turretid{ + name = "AI Chamber turret control"; + pixel_x = -22; + pixel_y = -25 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"abp" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"abq" = ( +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"abr" = ( +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating, +/area/aisat) +"abs" = ( +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/structure/cable/blue{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "AI Satellite West 1"; + dir = 8; + network = list("Sat"); + pixel_x = 0; + pixel_y = 0; + start_active = 1 + }, +/turf/open/floor/plating, +/area/aisat) +"abt" = ( +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/closed/wall/r_wall, +/area/aisat) +"abu" = ( +/turf/open/space, +/obj/item/weapon/dice/d8{ + desc = "A die with eight sides. It feels.... incredibly lucky. The six is slightly darker than the other numbers."; + tag = "six" + }, +/obj/item/weapon/paper/crumpled{ + info = "Or were they somewhere else, hmm..." + }, +/obj/structure/cable/blue{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/item/clothing/under/chameleon, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/ai_monitored/turret_protected/ai) +"abv" = ( +/obj/effect/landmark{ + name = "tripai" + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + freerange = 1; + listening = 1; + name = "Common Channel"; + pixel_x = -27; + pixel_y = -2 + }, +/obj/item/device/radio/intercom{ + anyai = 1; + broadcasting = 0; + freerange = 1; + frequency = 1447; + name = "Private Channel"; + pixel_x = 0; + pixel_y = -28 + }, +/obj/item/device/radio/intercom{ + anyai = 1; + freerange = 1; + listening = 0; + name = "Custom Channel"; + pixel_x = 0; + pixel_y = 23 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"abw" = ( +/obj/machinery/door/window{ + dir = 8; + name = "AI Core Door"; + req_access_txt = "16" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"abx" = ( +/obj/machinery/ai_slipper{ + icon_state = "motion0"; + uses = 10 + }, +/obj/structure/cable/white{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/ai) +"aby" = ( +/obj/machinery/flasher{ + id = "AI"; + pixel_x = 24; + pixel_y = 0 + }, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"abz" = ( +/obj/machinery/flasher{ + id = "AI"; + pixel_x = -24; + pixel_y = 0 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"abA" = ( +/obj/machinery/door/window{ + dir = 4; + name = "AI Core Door"; + req_access_txt = "16" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"abB" = ( +/obj/effect/landmark{ + name = "tripai" + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + freerange = 1; + listening = 1; + name = "Common Channel"; + pixel_x = 28; + pixel_y = -2 + }, +/obj/item/device/radio/intercom{ + anyai = 1; + freerange = 1; + listening = 0; + name = "Custom Channel"; + pixel_x = 0; + pixel_y = 23 + }, +/obj/item/device/radio/intercom{ + anyai = 1; + broadcasting = 0; + freerange = 1; + frequency = 1447; + name = "Private Channel"; + pixel_x = 0; + pixel_y = -27 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"abC" = ( +/turf/open/space, +/obj/item/weapon/dice/d8{ + desc = "A die with eight sides. It feels.... incredibly lucky. The five is slightly darker than the other numbers."; + tag = "five" + }, +/obj/item/weapon/paper/crumpled{ + info = "The seventh is locked safe away..." + }, +/obj/item/device/batterer{ + max_uses = 1; + origin_tech = "magnets=3;combat=3" + }, +/obj/structure/cable/blue{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/ai_monitored/turret_protected/ai) +"abD" = ( +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/obj/structure/cable/blue{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "AI Satellite East 1"; + dir = 4; + network = list("Sat"); + start_active = 1 + }, +/turf/open/floor/plating, +/area/aisat) +"abE" = ( +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/obj/structure/cable/white{ + tag = "icon-0-10"; + icon_state = "0-10" + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"abF" = ( +/obj/docking_port/stationary{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 24; + id = "syndicate_n"; + name = "north of station"; + turf_type = /turf/open/space; + width = 18 + }, +/turf/open/space, +/area/space) +"abG" = ( +/obj/machinery/porta_turret/ai{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/ai_monitored/turret_protected/ai) +"abH" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/newscaster/security_unit{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-2-5"; + icon_state = "2-5" + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"abI" = ( +/obj/machinery/power/terminal{ + icon_state = "term"; + dir = 1 + }, +/obj/machinery/door/window{ + dir = 1; + name = "AI SMES Door"; + req_access_txt = "16" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/white{ + d2 = 2; + icon_state = "0-2"; + tag = "icon-0-2" + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"abJ" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/requests_console{ + department = "AI"; + departmentType = 5; + name = "AI RC"; + pixel_x = 0; + pixel_y = 30 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"abK" = ( +/obj/machinery/porta_turret/ai{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/ai_monitored/turret_protected/ai) +"abL" = ( +/obj/structure/cable/white{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai) +"abM" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (EAST)"; + dir = 4 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"abN" = ( +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"abO" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners (WEST)"; + dir = 8 + }, +/area/ai_monitored/turret_protected/ai) +"abP" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai) +"abQ" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai) +"abR" = ( +/obj/machinery/ai_slipper{ + icon_state = "motion0"; + uses = 10 + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/ai) +"abS" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai) +"abT" = ( +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + frequency = 1439; + id_tag = null; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners" + }, +/area/ai_monitored/turret_protected/ai) +"abU" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"abV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/machinery/porta_turret_construct, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/ai_monitored/turret_protected/ai) +"abW" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"abX" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"abY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light_switch{ + pixel_y = -24; + tag = "s" + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"abZ" = ( +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue" + }, +/obj/machinery/flasher{ + id = "AI"; + pixel_x = 24; + pixel_y = -24 + }, +/obj/structure/cable/white{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warningline, +/area/ai_monitored/turret_protected/ai) +"aca" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "AI Chamber South"; + dir = 1; + network = list("Sat"); + start_active = 1 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"acb" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"acc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"acd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/porta_turret_construct, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/ai_monitored/turret_protected/ai) +"ace" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai) +"acf" = ( +/obj/machinery/status_display, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai) +"acg" = ( +/obj/structure/cable/white{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/highsecurity{ + icon_state = "closed"; + locked = 1; + name = "AI Chamber"; + req_access_txt = "16" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai) +"ach" = ( +/obj/machinery/ai_status_display, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai) +"aci" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai) +"acj" = ( +/turf/open/space, +/obj/machinery/porta_turret/syndicate{ + dir = 9 + }, +/turf/closed/wall/mineral/plastitanium{ + dir = 8; + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) +"ack" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/closed/wall/mineral/titanium, +/area/shuttle/pod_2) +"acl" = ( +/obj/structure/grille, +/obj/machinery/door/poddoor/shutters{ + id = "syndieshutters"; + name = "blast shutters" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/shuttle/syndicate) +"acm" = ( +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/syndicate) +"acn" = ( +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "AI Satellite West 2"; + dir = 8; + network = list("Sat"); + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/aisat) +"aco" = ( +/turf/closed/wall, +/area/ai_monitored/turret_protected/aisat_interior) +"acp" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/aisat_interior) +"acq" = ( +/obj/structure/table, +/obj/item/weapon/secbot_assembly, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/aisat_interior) +"acr" = ( +/obj/machinery/porta_turret/ai, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/aisat_interior) +"acs" = ( +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (NORTH)"; + dir = 1 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"act" = ( +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (NORTH)"; + dir = 1 + }, +/obj/structure/cable/white, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (NORTH)"; + dir = 1 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"acu" = ( +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (NORTH)"; + dir = 1 + }, +/obj/machinery/camera/motion{ + c_tag = "AI Antechamber Motion Sensor"; + desc = "It watches you carefully."; + name = "motion-sensitive security camera"; + network = list("Sat") + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (NORTH)"; + dir = 1 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"acv" = ( +/obj/structure/table, +/obj/item/robot_suit, +/obj/item/bodypart/head/robot, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/aisat_interior) +"acw" = ( +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "AI Satellite East 2"; + dir = 4; + network = list("Sat"); + start_active = 1 + }, +/turf/open/floor/plating, +/area/aisat) +"acx" = ( +/obj/structure/table, +/obj/machinery/microwave, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"acy" = ( +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"acz" = ( +/obj/structure/table, +/obj/item/device/flashlight/lamp{ + pixel_x = 4; + pixel_y = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"acA" = ( +/obj/machinery/computer/shuttle/syndicate, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"acB" = ( +/obj/structure/table, +/obj/machinery/button/door{ + id = "syndieshutters"; + name = "remote shutter control"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"acC" = ( +/obj/structure/frame/computer, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"acD" = ( +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating, +/area/aisat) +"acE" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/blue{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat_interior) +"acF" = ( +/obj/structure/table, +/obj/item/bodypart/l_arm/robot, +/obj/item/bodypart/chest/robot, +/obj/item/bodypart/l_arm/robot, +/obj/structure/cable/blue{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners (NORTH)"; + dir = 1 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"acG" = ( +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/aisat_interior) +"acH" = ( +/obj/structure/cable/blue{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/aisat_interior) +"acI" = ( +/obj/structure/table, +/obj/item/bodypart/r_arm/robot, +/obj/structure/cable/blue{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/device/laser_pointer/upgraded, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners (EAST)"; + dir = 4 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"acJ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/blue{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat_interior) +"acK" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/donkpockets{ + pixel_x = 3; + pixel_y = 3 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"acL" = ( +/turf/open/space, +/obj/machinery/porta_turret/syndicate{ + dir = 5 + }, +/turf/closed/wall/mineral/plastitanium{ + dir = 1; + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) +"acM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"acN" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/blue{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat_interior) +"acO" = ( +/obj/structure/table, +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/blue{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/item/device/assembly/flash/handheld, +/obj/item/bodypart/r_leg/robot, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/aisat_interior) +"acP" = ( +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/aisat_interior) +"acQ" = ( +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/aisat_interior) +"acR" = ( +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/blue{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/blue{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (NORTH)"; + dir = 1 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"acS" = ( +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/aisat_interior) +"acT" = ( +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/aisat_interior) +"acU" = ( +/obj/structure/table, +/obj/item/bodypart/l_leg/robot, +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/blue{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/item/device/mmi, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/item/device/assembly/flash/handheld, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/aisat_interior) +"acV" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/blue{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat_interior) +"acW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"acX" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass{ + amount = 10 + }, +/obj/item/device/multitool, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"acY" = ( +/obj/item/device/radio/intercom{ + desc = "Talk through this. Evilly"; + freerange = 1; + frequency = 1213; + name = "Syndicate Intercom"; + pixel_y = -32; + subspace_transmission = 1; + syndie = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"acZ" = ( +/obj/structure/closet/syndicate/personal, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"ada" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"adb" = ( +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/aisat_interior) +"adc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners (NORTH)"; + dir = 1 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"add" = ( +/obj/machinery/ai_slipper{ + icon_state = "motion0"; + uses = 10 + }, +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"ade" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners (EAST)"; + dir = 4 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"adf" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/aisat_interior) +"adg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"adh" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) +"adi" = ( +/obj/machinery/door/window{ + name = "Cockpit"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"adj" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) +"adk" = ( +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the AI."; + dir = 1; + name = "AI Satellite Monitor"; + network = list("Sat"); + pixel_x = 0; + pixel_y = -30 + }, +/obj/machinery/light_switch{ + pixel_x = -24; + tag = "w" + }, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (WEST)"; + dir = 8 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"adl" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/aisat_interior) +"adm" = ( +/obj/structure/cable/blue{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/aisat_interior) +"adn" = ( +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/aisat_interior) +"ado" = ( +/obj/structure/cable/blue{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 2; + name = "Autoname APC South"; + pixel_x = 1; + pixel_y = -24 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0; + tag = "e" + }, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (EAST)"; + dir = 4 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"adp" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/space, +/area/space) +"adq" = ( +/obj/structure/table, +/obj/item/stack/cable_coil, +/obj/item/weapon/crowbar/red, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"adr" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/zipties{ + pixel_x = 1; + pixel_y = 2 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"ads" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat_interior) +"adt" = ( +/obj/machinery/porta_turret/ai{ + dir = 4 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/aisat_interior) +"adu" = ( +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/aisat_interior) +"adv" = ( +/obj/machinery/porta_turret/ai{ + dir = 8 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/aisat_interior) +"adw" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat_interior) +"adx" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/closed/wall/mineral/titanium, +/area/shuttle/pod_1) +"ady" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"adz" = ( +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plating, +/area/aisat) +"adA" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/aisat) +"adB" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/space, +/area/space) +"adC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"adD" = ( +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/aisat_interior) +"adE" = ( +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/aisat_interior) +"adF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"adG" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/space, +/area/space) +"adH" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/aisat) +"adI" = ( +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plating, +/area/aisat) +"adJ" = ( +/obj/structure/chair/comfy/beige{ + dir = 1; + icon_state = "comfychair" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"adK" = ( +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/camera{ + c_tag = "AI Satellite Southwest"; + dir = 8; + network = list("Sat"); + pixel_x = 0; + pixel_y = 0; + start_active = 1 + }, +/turf/open/floor/plating, +/area/aisat) +"adL" = ( +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/hatch{ + name = "AI Satellite Antechamber"; + req_one_access_txt = "65" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/aisat_interior) +"adM" = ( +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/camera{ + c_tag = "AI Satellite Southeast"; + dir = 4; + network = list("Sat"); + start_active = 1 + }, +/turf/open/floor/plating, +/area/aisat) +"adN" = ( +/obj/machinery/suit_storage_unit/syndicate, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"adO" = ( +/obj/structure/closet/syndicate/nuclear, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"adP" = ( +/obj/structure/cable/blue{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/aisat) +"adQ" = ( +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance_hatch{ + req_access_txt = "65" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/aisat) +"adR" = ( +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/aisat) +"adS" = ( +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = 30; + tag = "n" + }, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners (EAST)"; + dir = 4 + }, +/area/aisat) +"adT" = ( +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners (EAST)"; + dir = 4 + }, +/area/aisat) +"adU" = ( +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners (EAST)"; + dir = 4 + }, +/area/aisat) +"adV" = ( +/obj/machinery/power/apc{ + auto_name = 1; + dir = 1; + name = "Autoname APC North"; + pixel_x = 0; + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/machinery/camera{ + c_tag = "AI Satellite Access"; + network = list("Sat"); + start_active = 1 + }, +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/blue{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners (EAST)"; + dir = 4 + }, +/area/aisat) +"adW" = ( +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/blue{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/blue{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (NORTH)"; + dir = 1 + }, +/area/aisat) +"adX" = ( +/obj/machinery/turretid{ + control_area = "AI Satellite Antechamber"; + enabled = 1; + icon_state = "control_standby"; + name = "Antechamber Turret Control"; + pixel_x = 0; + pixel_y = 24; + req_access = list(65) + }, +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners (NORTH)"; + dir = 1 + }, +/area/aisat) +"adY" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners (NORTH)"; + dir = 1 + }, +/area/aisat) +"adZ" = ( +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners (NORTH)"; + dir = 1 + }, +/area/aisat) +"aea" = ( +/obj/structure/cable/blue{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/obj/machinery/light_switch{ + pixel_y = 24; + tag = "n" + }, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners (NORTH)"; + dir = 1 + }, +/area/aisat) +"aeb" = ( +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/aisat) +"aec" = ( +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance_hatch{ + req_access_txt = "65" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/aisat) +"aed" = ( +/obj/structure/cable/blue{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/aisat) +"aee" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/sign/map/right/dream{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"aef" = ( +/obj/structure/table, +/obj/item/device/aicard, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"aeg" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"aeh" = ( +/obj/machinery/door/poddoor{ + id = "smindicate"; + name = "outer blast door" + }, +/obj/machinery/button/door{ + id = "smindicate"; + name = "external door control"; + pixel_x = -26; + pixel_y = 0; + req_access_txt = "150" + }, +/obj/docking_port/mobile{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 24; + id = "syndicate"; + name = "syndicate infiltrator"; + port_angle = 0; + roundstart_move = "syndicate_away"; + width = 18 + }, +/obj/docking_port/stationary{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 24; + id = "syndicate_nw"; + name = "northwest of station"; + turf_type = /turf/open/space; + width = 18 + }, +/turf/open/floor/plating, +/area/shuttle/syndicate) +"aei" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 1; + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) +"aej" = ( +/turf/open/floor/plasteel/darkwarning, +/area/aisat) +"aek" = ( +/obj/machinery/bluespace_beacon, +/turf/open/floor/plasteel/darkwarning, +/area/aisat) +"ael" = ( +/obj/machinery/status_display{ + layer = 3; + pixel_x = 0; + pixel_y = -32 + }, +/turf/open/floor/plasteel/darkwarning/corner{ + tag = "icon-warndarkcorners (NORTH)"; + dir = 1 + }, +/area/aisat) +"aem" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/aisat) +"aen" = ( +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/landmark/start{ + name = "Cyborg" + }, +/turf/open/floor/plasteel/black, +/area/aisat) +"aeo" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/aisat) +"aep" = ( +/obj/machinery/ai_status_display{ + pixel_x = 0; + pixel_y = -32 + }, +/turf/open/floor/plasteel/black, +/area/aisat) +"aeq" = ( +/turf/open/floor/plasteel/black, +/area/aisat) +"aer" = ( +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/aisat) +"aes" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aet" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"aeu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aev" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0 + }, +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/syndicate) +"aew" = ( +/obj/machinery/computer/teleporter, +/turf/open/floor/plating, +/area/aisat) +"aex" = ( +/obj/machinery/teleport/station, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = -25; + tag = "SOUTH" + }, +/turf/open/floor/plating, +/area/aisat) +"aey" = ( +/obj/machinery/teleport/hub, +/turf/open/floor/plating, +/area/aisat) +"aez" = ( +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners (NORTH)"; + dir = 1 + }, +/area/aisat) +"aeA" = ( +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/mob/living/simple_animal/bot/cleanbot{ + on = 0 + }, +/turf/open/floor/plasteel/black, +/area/aisat) +"aeB" = ( +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners (EAST)"; + dir = 4 + }, +/area/aisat) +"aeC" = ( +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = -25; + tag = "SOUTH" + }, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plasteel/black, +/area/aisat) +"aeD" = ( +/turf/open/floor/mineral/titanium, +/turf/closed/wall/mineral/titanium/interior, +/area/shuttle/abandoned) +"aeE" = ( +/obj/machinery/sleeper, +/obj/effect/decal/remains/human, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"aeF" = ( +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"aeG" = ( +/obj/structure/frame/computer{ + anchored = 1 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"aeH" = ( +/obj/structure/table/optable, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"aeI" = ( +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"aeJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"aeK" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion"; + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/shuttle/abandoned) +"aeL" = ( +/obj/machinery/door/window{ + dir = 4; + name = "EVA Storage"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"aeM" = ( +/obj/structure/table, +/obj/item/weapon/c4{ + pixel_x = 2; + pixel_y = -5 + }, +/obj/item/weapon/c4{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/c4{ + pixel_x = 2; + pixel_y = -3 + }, +/obj/item/weapon/c4{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/weapon/c4{ + pixel_x = 3; + pixel_y = 3 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"aeN" = ( +/obj/structure/cable/blue{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/aisat) +"aeO" = ( +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/blue{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/blue{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel/black, +/area/aisat) +"aeP" = ( +/obj/structure/cable/blue{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/aisat) +"aeQ" = ( +/obj/machinery/door/airlock/external{ + name = "AI Satellite External Access"; + req_access = null; + req_access_txt = "65;13" + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/aisat) +"aeR" = ( +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"aeS" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 6; + pixel_y = -5 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"aeT" = ( +/turf/open/floor/plating, +/turf/closed/wall/mineral/titanium/interior, +/area/shuttle/abandoned) +"aeU" = ( +/obj/structure/shuttle/engine/heater{ + icon_state = "heater"; + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/shuttle/abandoned) +"aeV" = ( +/obj/machinery/door/window{ + name = "Ready Room"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"aeW" = ( +/obj/machinery/door/window{ + base_state = "right"; + dir = 4; + icon_state = "right"; + name = "EVA Storage"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"aeX" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/shuttle/syndicate) +"aeY" = ( +/obj/structure/rack, +/obj/item/clothing/suit/space/syndicate/black/red, +/obj/item/clothing/head/helmet/space/syndicate/black/red, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"aeZ" = ( +/obj/structure/transit_tube{ + icon_state = "D-SE" + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"afa" = ( +/obj/structure/transit_tube{ + icon_state = "E-SW" + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"afb" = ( +/obj/structure/transit_tube, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"afc" = ( +/obj/structure/lattice/catwalk, +/obj/structure/transit_tube{ + tag = "icon-E-W-Pass"; + icon_state = "E-W-Pass" + }, +/turf/open/space, +/area/space) +"afd" = ( +/obj/structure/lattice, +/obj/structure/transit_tube, +/turf/open/space, +/area/space) +"afe" = ( +/obj/structure/window/reinforced/fulltile, +/obj/structure/transit_tube, +/turf/open/floor/plating, +/area/aisat) +"aff" = ( +/obj/structure/transit_tube, +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners (WEST)"; + dir = 8 + }, +/area/aisat) +"afg" = ( +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/transit_tube/station/reverse{ + tag = "icon-closed (NORTH)"; + icon_state = "closed"; + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/aisat) +"afh" = ( +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/transit_tube{ + tag = "icon-Block (WEST)"; + icon_state = "Block"; + dir = 8 + }, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners" + }, +/area/aisat) +"afi" = ( +/obj/structure/closet/emcloset, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = -32 + }, +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/aisat) +"afj" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/aisat) +"afk" = ( +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"afl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"afm" = ( +/obj/item/weapon/hemostat, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"afn" = ( +/obj/item/weapon/scalpel, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"afo" = ( +/obj/item/weapon/circuitboard/computer/operating, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"afp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"afq" = ( +/turf/open/floor/plating, +/area/shuttle/abandoned) +"afr" = ( +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"afs" = ( +/obj/item/device/radio/intercom{ + desc = "Talk through this. Evilly"; + freerange = 1; + frequency = 1213; + name = "Syndicate Intercom"; + pixel_x = -32; + subspace_transmission = 1; + syndie = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"aft" = ( +/obj/structure/transit_tube{ + icon_state = "NE-SW" + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"afu" = ( +/obj/structure/transit_tube{ + icon_state = "D-NW" + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"afv" = ( +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/space) +"afw" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE" + }, +/turf/closed/wall, +/area/aisat) +"afx" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/blue, +/turf/open/floor/plating, +/area/aisat) +"afy" = ( +/obj/structure/sign/securearea, +/turf/closed/wall, +/area/aisat) +"afz" = ( +/obj/machinery/door/airlock/external{ + name = "AI Satellite External Access"; + req_access = null; + req_access_txt = "65;13" + }, +/obj/structure/cable/green{ + tag = "icon-1-10"; + icon_state = "1-10" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/aisat) +"afA" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"afB" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"afC" = ( +/obj/machinery/door/airlock/shuttle, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"afD" = ( +/obj/machinery/recharge_station, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"afE" = ( +/obj/machinery/door/airlock/external{ + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"afF" = ( +/obj/docking_port/stationary{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 24; + id = "syndicate_ne"; + name = "northeast of station"; + turf_type = /turf/open/space; + width = 18 + }, +/turf/open/space, +/area/space) +"afG" = ( +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"afH" = ( +/obj/machinery/sleeper/syndie{ + dir = 4 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"afI" = ( +/obj/structure/table, +/obj/item/weapon/screwdriver{ + pixel_y = 9 + }, +/obj/item/device/assembly/voice{ + pixel_y = 3 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"afJ" = ( +/obj/structure/table, +/obj/item/weapon/wrench, +/obj/item/device/assembly/infra, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"afK" = ( +/obj/structure/table, +/obj/item/device/assembly/signaler, +/obj/item/device/assembly/signaler, +/obj/item/device/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/device/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"afL" = ( +/obj/structure/table, +/obj/item/weapon/weldingtool/largetank{ + pixel_y = 3 + }, +/obj/item/device/multitool, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"afM" = ( +/obj/structure/grille, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"afN" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/space, +/area/space) +"afO" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-4-10"; + icon_state = "4-10" + }, +/turf/open/space, +/area/space) +"afP" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/space, +/area/space) +"afQ" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/meter, +/turf/open/space, +/area/space) +"afR" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-5-8"; + icon_state = "5-8" + }, +/turf/open/space, +/area/space) +"afS" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/space, +/area/space) +"afT" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"afU" = ( +/obj/structure/table, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"afV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"afW" = ( +/obj/machinery/door/airlock/shuttle, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"afX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"afY" = ( +/obj/structure/tank_dispenser/oxygen, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"afZ" = ( +/obj/machinery/door/window/westright{ + name = "Tool Storage"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"aga" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/syndicate, +/obj/item/weapon/crowbar/red, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"agb" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/cable/green{ + tag = "icon-5-10"; + icon_state = "5-10" + }, +/turf/open/space, +/area/space) +"agc" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"agd" = ( +/obj/structure/table, +/obj/item/stack/medical/ointment, +/obj/item/stack/medical/bruise_pack, +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"age" = ( +/obj/machinery/door/window{ + dir = 8; + name = "Tool Storage"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"agf" = ( +/obj/structure/transit_tube{ + icon_state = "S-NE" + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"agg" = ( +/obj/docking_port/stationary/random{ + dir = 1; + id = "pod_asteroid2"; + name = "asteroid" + }, +/turf/open/space, +/area/space) +"agh" = ( +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"agi" = ( +/obj/structure/table, +/obj/item/weapon/stock_parts/cell/high{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/stock_parts/cell/high, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"agj" = ( +/obj/structure/bed/roller, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"agk" = ( +/obj/structure/sign/bluecross_2, +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/syndicate) +"agl" = ( +/obj/machinery/door/window{ + dir = 4; + name = "Infirmary"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"agm" = ( +/obj/structure/table, +/obj/item/device/sbeacondrop/bomb{ + pixel_y = 5 + }, +/obj/item/device/sbeacondrop/bomb, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"agn" = ( +/obj/structure/table, +/obj/item/weapon/grenade/syndieminibomb{ + pixel_x = 4; + pixel_y = 2 + }, +/obj/item/weapon/grenade/syndieminibomb{ + pixel_x = -1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"ago" = ( +/obj/structure/transit_tube{ + icon_state = "N-S" + }, +/turf/open/space, +/area/space) +"agp" = ( +/obj/machinery/door/window, +/obj/effect/decal/remains/human, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/mineral/titanium/purple, +/area/shuttle/abandoned) +"agq" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced, +/turf/open/floor/mineral/titanium/purple, +/area/shuttle/abandoned) +"agr" = ( +/obj/machinery/door/window{ + base_state = "right"; + dir = 4; + icon_state = "right"; + name = "Infirmary"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"ags" = ( +/obj/machinery/telecomms/allinone{ + intercept = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"agt" = ( +/obj/machinery/door/window{ + dir = 1; + name = "Surgery"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"agu" = ( +/obj/structure/transit_tube{ + icon_state = "N-S-Pass" + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"agv" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/green{ + tag = "icon-2-5"; + icon_state = "2-5" + }, +/turf/open/space, +/area/space) +"agw" = ( +/obj/structure/table, +/obj/item/weapon/tank/internals/oxygen, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"agx" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"agy" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"agz" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/table, +/obj/item/bodypart/r_arm/robot, +/obj/item/bodypart/l_arm/robot, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"agA" = ( +/obj/structure/table, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/firstaid/brute, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = -3; + pixel_y = -3 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"agB" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"agC" = ( +/obj/structure/shuttle/engine/heater, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating, +/area/shuttle/syndicate) +"agD" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/firstaid/fire, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = -3; + pixel_y = -3 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"agE" = ( +/obj/structure/table, +/obj/item/weapon/surgicaldrill, +/obj/item/weapon/circular_saw, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"agF" = ( +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/obj/structure/mirror{ + pixel_x = 30 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"agG" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/space, +/area/space) +"agH" = ( +/obj/machinery/computer/shuttle/white_ship, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"agI" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/decal/remains/human, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"agJ" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"agK" = ( +/obj/item/weapon/ectoplasm, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"agL" = ( +/obj/machinery/door/airlock/glass, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"agM" = ( +/obj/effect/decal/cleanable/blood/tracks{ + tag = "icon-tracks (SOUTHWEST)"; + icon_state = "tracks"; + dir = 10 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"agN" = ( +/obj/effect/decal/cleanable/blood/tracks{ + tag = "icon-tracks (WEST)"; + icon_state = "tracks"; + dir = 8 + }, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"agO" = ( +/obj/effect/decal/cleanable/blood/tracks{ + tag = "icon-tracks (EAST)"; + icon_state = "tracks"; + dir = 4 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"agP" = ( +/obj/effect/decal/cleanable/blood/tracks{ + tag = "icon-tracks (WEST)"; + icon_state = "tracks"; + dir = 8 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"agQ" = ( +/obj/machinery/door/airlock/shuttle, +/obj/effect/decal/cleanable/blood/tracks{ + tag = "icon-tracks (WEST)"; + icon_state = "tracks"; + dir = 8 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"agR" = ( +/obj/effect/decal/remains/human, +/obj/effect/decal/cleanable/blood/tracks{ + tag = "icon-tracks (EAST)"; + icon_state = "tracks"; + dir = 4 + }, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"agS" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_l" + }, +/turf/open/floor/plating, +/area/shuttle/syndicate) +"agT" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/open/floor/plating, +/area/shuttle/syndicate) +"agU" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_r" + }, +/turf/open/floor/plating, +/area/shuttle/syndicate) +"agV" = ( +/obj/structure/table, +/obj/item/weapon/gun/energy/laser/retro, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"agW" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/purple, +/area/shuttle/abandoned) +"agX" = ( +/obj/machinery/door/window/northright, +/turf/open/floor/mineral/titanium/purple, +/area/shuttle/abandoned) +"agY" = ( +/obj/docking_port/stationary/random{ + dir = 1; + id = "pod_asteroid1"; + name = "asteroid" + }, +/turf/open/space, +/area/space) +"agZ" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/computer/shuttle/pod{ + pixel_x = -32; + pixel_y = 0; + possible_destinations = "pod_asteroid2"; + shuttleId = "pod2" + }, +/obj/machinery/status_display{ + layer = 4; + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_2) +"aha" = ( +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"ahb" = ( +/obj/item/weapon/shard{ + icon_state = "medium" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"ahc" = ( +/obj/structure/chair, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"ahd" = ( +/obj/structure/rack, +/obj/item/weapon/tank/internals/emergency_oxygen, +/obj/item/weapon/tank/internals/emergency_oxygen, +/obj/item/weapon/tank/internals/emergency_oxygen, +/obj/item/weapon/tank/internals/emergency_oxygen, +/obj/item/weapon/storage/toolbox/mechanical, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"ahe" = ( +/obj/item/weapon/stock_parts/cell{ + charge = 100; + maxcharge = 15000 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"ahf" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/computer/shuttle/pod{ + pixel_x = -32; + pixel_y = 0; + possible_destinations = "pod_asteroid1"; + shuttleId = "pod1" + }, +/obj/machinery/status_display{ + layer = 4; + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_1) +"ahg" = ( +/obj/structure/rack, +/obj/item/clothing/suit/space/hardsuit/medical, +/obj/item/clothing/mask/breath, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"ahh" = ( +/obj/machinery/door/poddoor{ + id = "oldship_gun"; + name = "pod bay door" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"ahi" = ( +/obj/machinery/mass_driver{ + dir = 8; + icon_state = "mass_driver"; + id = "oldship_gun" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"ahj" = ( +/turf/closed/wall, +/area/mining_construction) +"ahk" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/mining_construction) +"ahl" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/arrival) +"ahm" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_x = -25; + pixel_y = -2; + tag = "WEST" + }, +/obj/item/weapon/storage/pod{ + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_2) +"ahn" = ( +/obj/machinery/computer/pod{ + id = "oldship_gun" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"aho" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/arrival) +"ahp" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"ahq" = ( +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"ahr" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"ahs" = ( +/obj/structure/table, +/obj/item/weapon/screwdriver, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"aht" = ( +/turf/closed/wall/r_wall, +/area/hallway/secondary/entry) +"ahu" = ( +/obj/machinery/door/airlock/shuttle, +/obj/docking_port/mobile{ + dheight = 0; + dir = 1; + dwidth = 11; + height = 22; + id = "whiteship"; + launch_status = 0; + name = "NT Medical Ship"; + roundstart_move = "whiteship_away"; + port_angle = 180; + width = 35 + }, +/obj/docking_port/stationary{ + dir = 1; + dwidth = 11; + height = 22; + id = "whiteship_home"; + name = "SS13 Arrival Docking"; + width = 35 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"ahv" = ( +/turf/closed/wall, +/area/hallway/secondary/entry) +"ahw" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"ahx" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_x = -25; + pixel_y = -2; + tag = "WEST" + }, +/obj/item/weapon/storage/pod{ + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_1) +"ahy" = ( +/turf/open/floor/plating/warnplate{ + dir = 9 + }, +/area/shuttle/auxillary_base) +"ahz" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Arrivals Shuttle Airlock" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"ahA" = ( +/obj/machinery/chem_heater, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"ahB" = ( +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Port Docking Bay 4"; + opacity = 0; + req_access_txt = "0" + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"ahC" = ( +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Port Docking Bay 3"; + opacity = 0; + req_access_txt = "0" + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"ahD" = ( +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/shuttle/auxillary_base) +"ahE" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/pod_1) +"ahF" = ( +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/mining_construction) +"ahG" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = 32 + }, +/obj/machinery/camera{ + c_tag = "Escape Pod 1"; + network = list("SS13") + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"ahH" = ( +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"ahI" = ( +/turf/open/floor/plasteel/arrival{ + dir = 4 + }, +/area/hallway/secondary/entry) +"ahJ" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"ahK" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"ahL" = ( +/turf/open/floor/plasteel/arrival{ + dir = 8 + }, +/area/hallway/secondary/entry) +"ahM" = ( +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"ahN" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = 32 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"ahO" = ( +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"ahP" = ( +/turf/open/floor/plating/warnplate{ + dir = 5 + }, +/area/shuttle/auxillary_base) +"ahQ" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/pod_1) +"ahR" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Escape Pod Airlock" + }, +/obj/docking_port/mobile/pod{ + dir = 1; + id = "pod2"; + name = "escape pod 2" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_2) +"ahS" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Escape Pod Airlock" + }, +/obj/docking_port/mobile/pod{ + dir = 1; + id = "pod1"; + name = "escape pod 1" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_1) +"ahT" = ( +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/shuttle/auxillary_base) +"ahU" = ( +/obj/machinery/door/airlock/external{ + name = "Escape Pod One" + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"ahV" = ( +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/hallway/secondary/entry) +"ahW" = ( +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Port Docking Bay 1"; + opacity = 0 + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"ahX" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Arrivals Shuttle Airlock" + }, +/obj/docking_port/stationary{ + dir = 4; + dwidth = 5; + height = 7; + id = "arrival_home"; + name = "port bay 1"; + width = 15 + }, +/obj/docking_port/mobile{ + dir = 4; + dwidth = 5; + height = 7; + id = "arrival"; + name = "arrival shuttle"; + port_angle = -90; + width = 15 + }, +/turf/open/floor/plating, +/area/shuttle/arrival) +"ahY" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/landmark{ + name = "JoinLate" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"ahZ" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Arrivals Shuttle Airlock" + }, +/turf/open/floor/plating, +/area/shuttle/arrival) +"aia" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_x = 26; + pixel_y = -2; + tag = "EAST" + }, +/obj/machinery/camera{ + c_tag = "Arrivals Northeast"; + dir = 8; + network = list("SS13"); + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aib" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/warning, +/area/hallway/secondary/entry) +"aic" = ( +/turf/open/floor/plasteel/warning, +/area/hallway/secondary/entry) +"aid" = ( +/obj/machinery/power/tracker, +/obj/structure/cable/yellow{ + d2 = 2; + icon_state = "0-2" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/auxport) +"aie" = ( +/turf/open/floor/plating, +/area/shuttle/auxillary_base) +"aif" = ( +/turf/open/floor/plating/warnplate{ + dir = 4; + luminosity = 2; + initial_gas_mix = "o2=0.01;n2=0.01" + }, +/area/shuttle/auxillary_base) +"aig" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/warning/corner{ + dir = 4 + }, +/area/mining_construction) +"aih" = ( +/obj/structure/sign/pods, +/turf/closed/wall, +/area/hallway/secondary/entry) +"aii" = ( +/obj/machinery/camera{ + c_tag = "Arrivals Northwest"; + dir = 4; + network = list("SS13") + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aij" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0 + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"aik" = ( +/obj/machinery/camera{ + c_tag = "Arrivals Shuttle"; + dir = 4; + network = list("SS13"); + start_active = 1 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"ail" = ( +/obj/machinery/computer/arcade, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"aim" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"ain" = ( +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (NORTH)"; + dir = 1 + }, +/area/hallway/secondary/entry) +"aio" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/space, +/area/solar/auxport) +"aip" = ( +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_x = -25; + pixel_y = -2; + tag = "WEST" + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 1 + }, +/area/hallway/secondary/entry) +"aiq" = ( +/obj/machinery/vending/snack, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"air" = ( +/obj/structure/closet/wardrobe/green, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"ais" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"ait" = ( +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (EAST)"; + dir = 4 + }, +/area/hallway/secondary/entry) +"aiu" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aiv" = ( +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"aiw" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/pod_2) +"aix" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/mining_construction) +"aiy" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = 32 + }, +/obj/machinery/camera{ + c_tag = "Escape Pod 2"; + network = list("SS13") + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"aiz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/hallway/secondary/entry) +"aiA" = ( +/obj/effect/landmark{ + name = "Observer-Start" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"aiB" = ( +/obj/structure/closet/wardrobe/mixed, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"aiC" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = -30; + tag = "s" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aiD" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aiE" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aiF" = ( +/obj/machinery/camera{ + c_tag = "Arrivals East Docking Bays"; + dir = 1; + network = list("SS13") + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aiG" = ( +/obj/machinery/power/solar{ + id = "auxsolareast"; + name = "Fore Port Solar Array" + }, +/obj/structure/cable/yellow{ + tag = "icon-0-6"; + icon_state = "0-6"; + d1 = 4; + d2 = 8 + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/auxport) +"aiH" = ( +/obj/machinery/power/solar{ + id = "auxsolareast"; + name = "Fore Port Solar Array" + }, +/obj/structure/cable/yellow{ + d2 = 2; + icon_state = "0-2" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/auxport) +"aiI" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow, +/turf/open/space, +/area/solar/auxport) +"aiJ" = ( +/obj/machinery/power/solar{ + id = "auxsolareast"; + name = "Fore Port Solar Array" + }, +/obj/structure/cable/yellow{ + tag = "icon-0-10"; + icon_state = "0-10"; + d1 = 4; + d2 = 8 + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/auxport) +"aiK" = ( +/obj/machinery/light, +/turf/open/floor/plating, +/area/shuttle/auxillary_base) +"aiL" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/pod_2) +"aiM" = ( +/obj/machinery/camera{ + c_tag = "Auxillary Mining Base"; + dir = 8; + start_active = 1 + }, +/turf/open/floor/plating, +/area/shuttle/auxillary_base) +"aiN" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/mining_construction) +"aiO" = ( +/turf/open/floor/plasteel/warning/corner{ + dir = 4 + }, +/area/mining_construction) +"aiP" = ( +/obj/machinery/door/airlock/external{ + name = "Escape Pod Two" + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"aiQ" = ( +/obj/item/device/radio/beacon, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/hallway/secondary/entry) +"aiR" = ( +/obj/structure/closet/wardrobe/grey, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"aiS" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aiT" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + tag = "icon-4-9"; + icon_state = "4-9"; + d1 = 4; + d2 = 8 + }, +/obj/structure/cable/yellow{ + tag = "icon-4-10"; + icon_state = "4-10"; + d1 = 4; + d2 = 8 + }, +/turf/open/space, +/area/solar/auxport) +"aiU" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + tag = "icon-4-9"; + icon_state = "4-9"; + d1 = 4; + d2 = 8 + }, +/obj/structure/cable/yellow{ + tag = "icon-4-10"; + icon_state = "4-10"; + d1 = 4; + d2 = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8"; + d1 = 4; + d2 = 8 + }, +/turf/open/space, +/area/solar/auxport) +"aiV" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + tag = "icon-4-10"; + icon_state = "4-10"; + d1 = 4; + d2 = 8 + }, +/obj/structure/cable/yellow{ + tag = "icon-4-9"; + icon_state = "4-9"; + d1 = 4; + d2 = 8 + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4"; + d1 = 1; + d2 = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8"; + d1 = 4; + d2 = 8 + }, +/turf/open/space, +/area/solar/auxport) +"aiW" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/space, +/area/solar/auxport) +"aiX" = ( +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/auxport) +"aiY" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + d2 = 4; + icon_state = "0-4" + }, +/turf/open/space, +/area/solar/auxport) +"aiZ" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + tag = "icon-5-8"; + icon_state = "5-8"; + d1 = 4; + d2 = 8 + }, +/obj/structure/cable/yellow{ + tag = "icon-6-8"; + icon_state = "6-8"; + d1 = 4; + d2 = 8 + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable/yellow{ + icon_state = "4-8"; + d1 = 4; + d2 = 8 + }, +/turf/open/space, +/area/solar/auxport) +"aja" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + tag = "icon-5-8"; + icon_state = "5-8"; + d1 = 4; + d2 = 8 + }, +/obj/structure/cable/yellow{ + tag = "icon-6-8"; + icon_state = "6-8"; + d1 = 4; + d2 = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8"; + d1 = 4; + d2 = 8 + }, +/turf/open/space, +/area/solar/auxport) +"ajb" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + tag = "icon-5-8"; + icon_state = "5-8"; + d1 = 4; + d2 = 8 + }, +/obj/structure/cable/yellow{ + tag = "icon-6-8"; + icon_state = "6-8"; + d1 = 4; + d2 = 8 + }, +/turf/open/space, +/area/solar/auxport) +"ajc" = ( +/obj/docking_port/mobile/auxillary_base{ + dheight = 4; + dir = 4; + dwidth = 4; + height = 9; + width = 9 + }, +/obj/machinery/bluespace_beacon, +/obj/machinery/computer/shuttle/auxillary_base{ + pixel_y = 0 + }, +/turf/closed/wall, +/area/shuttle/auxillary_base) +"ajd" = ( +/obj/machinery/door/airlock/external{ + cyclelinkeddir = 1; + glass = 1; + name = "Construction Zone"; + opacity = 0; + req_access = null; + req_access_txt = "0"; + req_one_access_txt = "0" + }, +/turf/open/floor/plating, +/area/mining_construction) +"aje" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 4 + }, +/area/hallway/secondary/entry) +"ajf" = ( +/obj/structure/closet/wardrobe/black, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"ajg" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"ajh" = ( +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/hallway/secondary/entry) +"aji" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/hallway/secondary/entry) +"ajj" = ( +/turf/open/floor/plating, +/area/mining_construction) +"ajk" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/transport) +"ajl" = ( +/obj/structure/window/shuttle, +/obj/structure/grille, +/turf/open/floor/plating, +/area/shuttle/transport) +"ajm" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/transport) +"ajn" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion"; + dir = 8 + }, +/turf/closed/wall/mineral/titanium, +/area/shuttle/transport) +"ajo" = ( +/obj/machinery/power/solar{ + id = "auxsolareast"; + name = "Fore Port Solar Array" + }, +/obj/structure/cable/yellow{ + tag = "icon-0-5"; + icon_state = "0-5"; + d1 = 4; + d2 = 8 + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/auxport) +"ajp" = ( +/obj/machinery/power/solar{ + id = "auxsolareast"; + name = "Fore Port Solar Array" + }, +/obj/structure/cable/yellow, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/auxport) +"ajq" = ( +/obj/machinery/power/solar{ + id = "auxsolareast"; + name = "Fore Port Solar Array" + }, +/obj/structure/cable/yellow{ + tag = "icon-0-9"; + icon_state = "0-9"; + d1 = 4; + d2 = 8 + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/auxport) +"ajr" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/green{ + tag = "icon-1-6"; + icon_state = "1-6" + }, +/turf/open/space, +/area/space) +"ajs" = ( +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_x = -25; + pixel_y = -2; + tag = "WEST" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"ajt" = ( +/obj/machinery/requests_console{ + department = "Arrival Shuttle"; + name = "Arrival Shuttle RC"; + pixel_x = 30; + pixel_y = 0 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"aju" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"ajv" = ( +/obj/structure/chair, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"ajw" = ( +/obj/machinery/computer/shuttle/ferry/request, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"ajx" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"ajy" = ( +/turf/open/floor/mineral/titanium/blue, +/turf/closed/wall/mineral/titanium/interior, +/area/shuttle/transport) +"ajz" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/space, +/area/space) +"ajA" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-4-9"; + icon_state = "4-9" + }, +/turf/open/space, +/area/space) +"ajB" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-6-8"; + icon_state = "6-8" + }, +/turf/open/space, +/area/space) +"ajC" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/space, +/area/space) +"ajD" = ( +/turf/closed/wall, +/area/maintenance/aft) +"ajE" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/aft) +"ajF" = ( +/obj/structure/closet/secure_closet/freezer/meat, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/meatproduct, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/xeno, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/bear, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/spider, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/killertomato, +/turf/open/floor/plating, +/area/maintenance/aft) +"ajG" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/maintenance/aft) +"ajH" = ( +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"ajI" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"ajJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"ajK" = ( +/obj/machinery/door/airlock/external{ + glass = 1; + id_tag = null; + name = "Port Docking Bay 2"; + opacity = 0; + req_access_txt = "0" + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"ajL" = ( +/obj/machinery/door/airlock/shuttle, +/obj/docking_port/mobile{ + dir = 4; + dwidth = 2; + height = 12; + id = "ferry"; + name = "ferry shuttle"; + roundstart_move = "ferry_away"; + port_angle = 180; + width = 5 + }, +/obj/docking_port/stationary{ + dir = 4; + dwidth = 2; + height = 12; + id = "ferry_home"; + name = "port bay 2"; + turf_type = /turf/open/space; + width = 5 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"ajM" = ( +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"ajN" = ( +/obj/machinery/door/airlock/shuttle, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"ajO" = ( +/obj/machinery/door/airlock/external{ + name = "External Access"; + req_access = null; + req_access_txt = "13" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/green{ + tag = "icon-2-9"; + icon_state = "2-9" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"ajP" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/aft) +"ajQ" = ( +/turf/open/floor/plating, +/area/maintenance/aft) +"ajR" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating, +/area/maintenance/aft) +"ajS" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/maintenance/aft) +"ajT" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"ajU" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"ajV" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/mining_construction) +"ajW" = ( +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 0 + }, +/obj/structure/shuttle/engine/heater, +/turf/open/floor/plasteel/black, +/area/shuttle/arrival) +"ajX" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating, +/area/shuttle/auxillary_base) +"ajY" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"ajZ" = ( +/obj/structure/closet/crate, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"aka" = ( +/obj/effect/landmark{ + name = "carpspawn" + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"akb" = ( +/obj/structure/closet/toolcloset, +/turf/open/floor/plasteel/yellow, +/area/mining_construction) +"akc" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + tag = "icon-4-9"; + icon_state = "4-9"; + d1 = 4; + d2 = 8 + }, +/obj/structure/cable/yellow{ + tag = "icon-4-10"; + icon_state = "4-10"; + d1 = 4; + d2 = 8 + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4"; + d1 = 1; + d2 = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8"; + d1 = 4; + d2 = 8 + }, +/turf/open/space, +/area/solar/auxport) +"akd" = ( +/obj/structure/transit_tube{ + tag = "icon-N-SE"; + icon_state = "N-SE" + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"ake" = ( +/obj/structure/transit_tube{ + icon_state = "D-SW" + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"akf" = ( +/obj/structure/sign/securearea, +/turf/closed/wall, +/area/engine/engineering) +"akg" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/green{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"akh" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE" + }, +/turf/closed/wall, +/area/engine/engineering) +"aki" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"akj" = ( +/obj/structure/closet/emcloset, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"akk" = ( +/obj/item/weapon/reagent_containers/food/snacks/meat/steak/spider, +/turf/open/floor/plating, +/area/maintenance/aft) +"akl" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 8 + }, +/area/mining_construction) +"akm" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "burst_l" + }, +/turf/open/floor/plasteel/black, +/area/shuttle/arrival) +"akn" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/open/floor/plasteel/black, +/area/shuttle/arrival) +"ako" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "burst_r" + }, +/turf/open/floor/plasteel/black, +/area/shuttle/arrival) +"akp" = ( +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/mining_construction) +"akq" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (EAST)"; + dir = 4 + }, +/area/hallway/secondary/entry) +"akr" = ( +/turf/open/floor/plasteel/yellow, +/obj/structure/closet/toolcloset, +/obj/machinery/camera{ + c_tag = "Auxillary Base Construction"; + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/turf/open/floor/plasteel/warningline, +/area/mining_construction) +"aks" = ( +/obj/structure/transit_tube{ + tag = "icon-D-NE"; + icon_state = "D-NE" + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"akt" = ( +/obj/structure/transit_tube{ + tag = "icon-E-NW"; + icon_state = "E-NW" + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"aku" = ( +/obj/structure/window/reinforced/fulltile, +/obj/structure/transit_tube, +/turf/open/floor/plating, +/area/engine/engineering) +"akv" = ( +/obj/structure/transit_tube, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners (NORTH)"; + dir = 1 + }, +/area/engine/engineering) +"akw" = ( +/obj/structure/transit_tube_pod{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/transit_tube/station/reverse, +/turf/open/floor/plasteel/black, +/area/engine/engineering) +"akx" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/transit_tube{ + tag = "icon-Block (WEST)"; + icon_state = "Block"; + dir = 8 + }, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners (EAST)"; + dir = 4 + }, +/area/engine/engineering) +"aky" = ( +/turf/closed/wall/r_wall, +/area/engine/engineering) +"akz" = ( +/obj/machinery/door/airlock/external{ + name = "External Access"; + req_access = null; + req_access_txt = "13" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"akA" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"akB" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Arrivals West"; + dir = 8; + network = list("SS13"); + pixel_x = 0; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white/corner{ + dir = 4 + }, +/area/hallway/secondary/entry) +"akC" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Arrivals East"; + dir = 4; + network = list("SS13") + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 1 + }, +/area/hallway/secondary/entry) +"akD" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/tinted/fulltile, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"akE" = ( +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"akF" = ( +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/engine/engineering) +"akG" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/black, +/area/engine/engineering) +"akH" = ( +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/engine/engineering) +"akI" = ( +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"akJ" = ( +/turf/closed/wall/rust, +/area/maintenance/aft) +"akK" = ( +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/aft) +"akL" = ( +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"akM" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"akN" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/aft) +"akO" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"akP" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"akQ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"akR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"akS" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/status_display{ + density = 0; + layer = 3; + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 4 + }, +/area/hallway/secondary/entry) +"akT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/arrival{ + dir = 1 + }, +/area/hallway/secondary/entry) +"akU" = ( +/obj/machinery/status_display{ + layer = 4; + pixel_x = 0; + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 1 + }, +/area/hallway/secondary/entry) +"akV" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"akW" = ( +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"akX" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fpmaint2) +"akY" = ( +/obj/machinery/power/apc{ + auto_name = 1; + dir = 1; + name = "Autoname APC North"; + pixel_x = 0; + pixel_y = 24 + }, +/obj/structure/cable/green{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"akZ" = ( +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"ala" = ( +/obj/item/stack/cable_coil/green, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"alb" = ( +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fpmaint2) +"alc" = ( +/turf/closed/wall, +/area/maintenance/fpmaint2) +"ald" = ( +/obj/item/roller, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"ale" = ( +/obj/item/weapon/reagent_containers/blood/empty, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"alf" = ( +/obj/structure/bedsheetbin, +/obj/structure/table, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"alg" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'RADIOACTIVE AREA'"; + icon_state = "radiation"; + name = "RADIOACTIVE AREA"; + pixel_x = 0; + pixel_y = 0 + }, +/turf/closed/wall, +/area/engine/engineering) +"alh" = ( +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = -25; + tag = "SOUTH" + }, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners (WEST)"; + dir = 8 + }, +/area/engine/engineering) +"ali" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/engine/engineering) +"alj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/camera{ + c_tag = "Engineering AI Satellite Access"; + dir = 8; + network = list("SS13"); + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners" + }, +/area/engine/engineering) +"alk" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/aft) +"all" = ( +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"alm" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/aft) +"aln" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"alo" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"alp" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"alq" = ( +/obj/structure/rack, +/obj/item/weapon/stock_parts/scanning_module, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"alr" = ( +/obj/structure/rack, +/obj/item/weapon/stock_parts/micro_laser, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"als" = ( +/obj/structure/cable/green, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 2; + name = "Autoname APC South"; + pixel_x = 1; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/security/vacantoffice) +"alt" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"alu" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = -30; + tag = "s" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"alv" = ( +/obj/structure/sign/map/left/dream{ + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"alw" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"alx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/secondary/entry) +"aly" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/hallway/secondary/entry) +"alz" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/hallway/secondary/entry) +"alA" = ( +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (WEST)"; + dir = 8 + }, +/area/hallway/secondary/entry) +"alB" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/structure/sign/map/right/dream{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"alC" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/newscaster{ + pixel_x = 0; + pixel_y = -32; + tag = "s" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"alD" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"alE" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"alF" = ( +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"alG" = ( +/obj/structure/rack, +/obj/item/stack/cable_coil/green{ + amount = 1; + icon_state = "coil_green1"; + pixel_x = -3; + pixel_y = -1; + tag = "icon-coil_green1" + }, +/obj/item/weapon/stock_parts/capacitor, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"alH" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"alI" = ( +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"alJ" = ( +/obj/item/weapon/reagent_containers/blood/random, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"alK" = ( +/obj/structure/frame/computer, +/obj/item/weapon/circuitboard/computer/operating, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"alL" = ( +/obj/item/weapon/reagent_containers/blood/OMinus, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"alM" = ( +/turf/closed/wall/rust, +/area/maintenance/fpmaint2) +"alN" = ( +/turf/closed/wall, +/area/engine/engineering) +"alO" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "AI Satellite Access"; + req_access_txt = "65" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/engine/engineering) +"alP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"alQ" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Engineering Maintenance"; + req_access_txt = "10" + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"alR" = ( +/obj/structure/plasticflaps{ + opacity = 1 + }, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=2"; + freq = 1400; + location = "Engineering" + }, +/turf/open/floor/plasteel/bot{ + dir = 1 + }, +/area/engine/engineering) +"alS" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/maintenance/aft) +"alT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"alU" = ( +/turf/closed/wall, +/area/security/vacantoffice) +"alV" = ( +/turf/closed/wall/rust, +/area/security/vacantoffice) +"alW" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + tag = "icon-neutral (EAST)"; + dir = 4 + }, +/area/hallway/secondary/entry) +"alX" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"alY" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + tag = "icon-neutral (WEST)"; + dir = 8 + }, +/area/hallway/secondary/entry) +"alZ" = ( +/turf/closed/wall, +/area/security/checkpoint) +"ama" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"amb" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"amc" = ( +/obj/structure/lattice, +/turf/open/space, +/area/space/nearstation) +"amd" = ( +/turf/open/floor/plating/airless, +/area/space/nearstation) +"ame" = ( +/turf/open/space, +/area/space/nearstation) +"amf" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"amg" = ( +/obj/item/weapon/wrench, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"amh" = ( +/obj/structure/table/optable, +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"ami" = ( +/obj/item/weapon/shard, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"amj" = ( +/obj/item/weapon/circuitboard/machine/sleeper, +/obj/structure/mirror{ + pixel_x = 28 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"amk" = ( +/obj/structure/cable/green{ + tag = "icon-4-10"; + icon_state = "4-10" + }, +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"aml" = ( +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"amm" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"amn" = ( +/obj/structure/cable/green{ + tag = "icon-6-8"; + icon_state = "6-8" + }, +/obj/structure/grille, +/obj/structure/cable/green{ + tag = "icon-2-6"; + icon_state = "2-6" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"amo" = ( +/obj/structure/cable/green{ + tag = "icon-4-10"; + icon_state = "4-10" + }, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"amp" = ( +/obj/structure/cable/green{ + tag = "icon-4-10"; + icon_state = "4-10" + }, +/obj/structure/grille, +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"amq" = ( +/obj/structure/closet/emcloset, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = 32 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"amr" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'RADIOACTIVE AREA'"; + icon_state = "radiation"; + name = "RADIOACTIVE AREA"; + pixel_x = 0; + pixel_y = 0 + }, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"ams" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 1 + }, +/area/engine/engineering) +"amt" = ( +/obj/structure/table, +/obj/item/stack/sheet/plasteel{ + amount = 10 + }, +/turf/open/floor/plasteel/blue/corner{ + tag = "icon-bluecorner (EAST)"; + dir = 4 + }, +/area/engine/engineering) +"amu" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/blue/side{ + tag = "icon-blue (NORTH)"; + dir = 1 + }, +/area/engine/engineering) +"amv" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/blue/corner{ + tag = "icon-bluecorner (NORTH)"; + dir = 1 + }, +/area/engine/engineering) +"amw" = ( +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/obj/structure/table, +/obj/item/stack/rods{ + amount = 50 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"amx" = ( +/obj/structure/table, +/obj/item/weapon/electronics/airlock, +/obj/item/weapon/electronics/airlock, +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = 30; + tag = "n" + }, +/obj/item/stack/cable_coil/green, +/obj/item/stack/cable_coil/green, +/turf/open/floor/plasteel, +/area/engine/engineering) +"amy" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"amz" = ( +/turf/open/floor/plasteel/delivery, +/area/engine/engineering) +"amA" = ( +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/wood, +/area/security/vacantoffice) +"amB" = ( +/obj/structure/filingcabinet, +/turf/open/floor/wood, +/area/security/vacantoffice) +"amC" = ( +/obj/machinery/camera{ + c_tag = "Vacant Office"; + network = list("SS13") + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = 20; + tag = "NORTH" + }, +/turf/open/floor/wood, +/area/security/vacantoffice) +"amD" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/wood, +/area/security/vacantoffice) +"amE" = ( +/turf/open/floor/wood, +/area/security/vacantoffice) +"amF" = ( +/turf/open/floor/plasteel/yellow/corner{ + dir = 8 + }, +/area/hallway/secondary/entry) +"amG" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/side{ + tag = "icon-neutral (EAST)"; + dir = 4 + }, +/area/hallway/secondary/entry) +"amH" = ( +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/hallway/secondary/entry) +"amI" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/weapon/storage/fancy/cigarettes/cigpack_midori, +/obj/item/weapon/lighter/greyscale, +/turf/open/floor/carpet, +/area/hallway/secondary/entry) +"amJ" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/hallway/secondary/entry) +"amK" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/weapon/reagent_containers/food/drinks/soda_cans/dr_gibb, +/turf/open/floor/carpet, +/area/hallway/secondary/entry) +"amL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/hallway/secondary/entry) +"amM" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + tag = "icon-neutral (WEST)"; + dir = 8 + }, +/area/hallway/secondary/entry) +"amN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot{ + dir = 1 + }, +/area/hallway/secondary/entry) +"amO" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + name = "Security Checkpoint"; + req_access = null; + req_access_txt = "1" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkred, +/area/security/checkpoint) +"amP" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTHWEST)"; + dir = 9 + }, +/area/security/checkpoint) +"amQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTH)"; + dir = 1 + }, +/area/security/checkpoint) +"amR" = ( +/obj/machinery/computer/secure_data, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTHEAST)"; + dir = 5 + }, +/area/security/checkpoint) +"amS" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"amT" = ( +/obj/structure/closet/coffin, +/obj/item/weapon/firstaid_arm_assembly, +/obj/item/weapon/ore/diamond, +/turf/open/floor/plating/airless{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/space/nearstation) +"amU" = ( +/obj/item/weapon/shard{ + icon_state = "small" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"amV" = ( +/obj/structure/frame/machine, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"amW" = ( +/obj/structure/table, +/obj/item/wallframe/firealarm, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"amX" = ( +/obj/structure/chair/stool, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"amY" = ( +/obj/structure/closet/firecloset/full, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"amZ" = ( +/turf/open/floor/plating/airless, +/area/engine/engineering) +"ana" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"anb" = ( +/obj/structure/cable/green{ + tag = "icon-2-6"; + icon_state = "2-6" + }, +/obj/structure/cable/green{ + tag = "icon-6-8"; + icon_state = "6-8" + }, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"anc" = ( +/obj/structure/cable/green{ + tag = "icon-4-9"; + icon_state = "4-9" + }, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"and" = ( +/obj/structure/cable/green{ + tag = "icon-5-8"; + icon_state = "5-8" + }, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"ane" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"anf" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"ang" = ( +/obj/machinery/door/airlock/external{ + name = "Engineering External Access"; + req_access = null; + req_access_txt = "10;13" + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"anh" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/engineering) +"ani" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"anj" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ank" = ( +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"anl" = ( +/turf/open/floor/plasteel, +/area/engine/engineering) +"anm" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 8; + tag = "" + }, +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (WEST)"; + dir = 8 + }, +/area/engine/engineering) +"ann" = ( +/obj/structure/table/wood, +/obj/item/weapon/pen/red, +/turf/open/floor/wood, +/area/security/vacantoffice) +"ano" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/wood, +/area/security/vacantoffice) +"anp" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/carpet, +/area/security/vacantoffice) +"anq" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/security/vacantoffice) +"anr" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/weapon/folder/blue, +/turf/open/floor/wood, +/area/security/vacantoffice) +"ans" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/security/vacantoffice) +"ant" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/tinted/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/vacantoffice) +"anu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/hallway/secondary/entry) +"anv" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + tag = "icon-neutral (EAST)"; + dir = 4 + }, +/area/hallway/secondary/entry) +"anw" = ( +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/hallway/secondary/entry) +"anx" = ( +/obj/structure/table/wood, +/turf/open/floor/carpet, +/area/hallway/secondary/entry) +"any" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/snacks/chips, +/turf/open/floor/carpet, +/area/hallway/secondary/entry) +"anz" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper, +/turf/open/floor/carpet, +/area/hallway/secondary/entry) +"anA" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/hallway/secondary/entry) +"anB" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + tag = "icon-neutral (WEST)"; + dir = 8 + }, +/area/hallway/secondary/entry) +"anC" = ( +/turf/open/floor/plasteel/bot{ + dir = 1 + }, +/area/hallway/secondary/entry) +"anD" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/checkpoint) +"anE" = ( +/obj/structure/table, +/obj/machinery/recharger, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/darkred/side{ + dir = 8 + }, +/area/security/checkpoint) +"anF" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/security/checkpoint) +"anG" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/machinery/computer/security, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Arrivals Security Checkpoint"; + dir = 8; + network = list("SS13"); + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (EAST)"; + dir = 4 + }, +/area/security/checkpoint) +"anH" = ( +/obj/structure/rack, +/obj/item/weapon/newspaper, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"anI" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"anJ" = ( +/obj/machinery/iv_drip, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"anK" = ( +/obj/structure/table/glass, +/obj/item/weapon/surgicaldrill, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"anL" = ( +/obj/structure/table/glass, +/obj/item/weapon/shard{ + icon_state = "small" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"anM" = ( +/obj/structure/table/glass, +/obj/item/weapon/hemostat, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"anN" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/tinted/fulltile, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"anO" = ( +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"anP" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + d2 = 2; + icon_state = "0-2" + }, +/turf/open/space, +/area/solar/auxstarboard) +"anQ" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + d2 = 2; + icon_state = "0-2" + }, +/turf/open/space, +/area/solar/auxport) +"anR" = ( +/turf/closed/wall, +/area/maintenance/asmaint) +"anS" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"anT" = ( +/obj/structure/cable/green, +/turf/open/floor/plating/airless/warnplate{ + dir = 2 + }, +/area/engine/engineering) +"anU" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/engineering) +"anV" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"anW" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"anX" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"anY" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 8; + tag = "" + }, +/obj/structure/closet/wardrobe/engineering_yellow, +/obj/item/clothing/mask/gas{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas{ + pixel_x = -3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (WEST)"; + dir = 8 + }, +/area/engine/engineering) +"anZ" = ( +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/security/vacantoffice) +"aoa" = ( +/turf/open/floor/carpet, +/area/security/vacantoffice) +"aob" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/security/vacantoffice) +"aoc" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7; + tag = "every single paper bin is edited to this" + }, +/obj/item/weapon/pen, +/turf/open/floor/wood, +/area/security/vacantoffice) +"aod" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering{ + name = "Vacant Office"; + req_access_txt = "32" + }, +/turf/open/floor/wood, +/area/security/vacantoffice) +"aoe" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/hallway/secondary/entry) +"aof" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + tag = "icon-neutral (EAST)"; + dir = 4 + }, +/area/hallway/secondary/entry) +"aog" = ( +/turf/open/floor/carpet, +/area/hallway/secondary/entry) +"aoh" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7; + tag = "every single paper bin is edited to this" + }, +/obj/item/weapon/pen, +/obj/machinery/door/window/westright{ + dir = 4; + name = "Security Checkpoint"; + req_access_txt = "1" + }, +/turf/open/floor/plasteel/darkred, +/area/security/checkpoint) +"aoi" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/darkred/side{ + dir = 8 + }, +/area/security/checkpoint) +"aoj" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/security/checkpoint) +"aok" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/machinery/computer/card, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (EAST)"; + dir = 4 + }, +/area/security/checkpoint) +"aol" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"aom" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Firefighting equipment"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"aon" = ( +/turf/closed/wall, +/area/maintenance/incinerator) +"aoo" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/space, +/area/solar/auxstarboard) +"aop" = ( +/obj/structure/table, +/obj/item/weapon/stock_parts/manipulator, +/obj/item/weapon/circuitboard/machine/microwave, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/asmaint) +"aoq" = ( +/obj/structure/frame/machine, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aor" = ( +/obj/structure/frame/computer{ + anchored = 1 + }, +/obj/item/weapon/circuitboard/computer/arcade/orion_trail, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aos" = ( +/obj/structure/frame/computer{ + anchored = 1 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aot" = ( +/obj/structure/table, +/obj/structure/frame/machine, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aou" = ( +/obj/structure/cable/green{ + tag = "icon-2-5"; + icon_state = "2-5" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"aov" = ( +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/space/nearstation) +"aow" = ( +/obj/structure/cable/green{ + tag = "icon-4-9"; + icon_state = "4-9" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"aox" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/engine/engineering) +"aoy" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Singularity"; + name = "radiation shutters" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"aoz" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 8; + tag = "" + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (WEST)"; + dir = 8 + }, +/area/engine/engineering) +"aoA" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/yellow, +/obj/item/weapon/storage/toolbox/electrical{ + pixel_y = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aoB" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/table, +/obj/item/weapon/storage/toolbox/emergency{ + pixel_y = 6 + }, +/obj/item/clothing/ears/earmuffs, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aoC" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_y = 5 + }, +/obj/item/device/flashlight{ + pixel_x = 1; + pixel_y = 5 + }, +/obj/item/device/flashlight{ + pixel_x = 1; + pixel_y = 5 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aoD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aoE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel/bot, +/area/engine/engineering) +"aoF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aoG" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 8; + tag = "" + }, +/obj/machinery/disposal/bin, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (WEST)"; + dir = 8 + }, +/area/engine/engineering) +"aoH" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/aft) +"aoI" = ( +/obj/structure/table/wood, +/obj/item/weapon/pen/blue, +/turf/open/floor/wood, +/area/security/vacantoffice) +"aoJ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 + }, +/turf/open/floor/carpet, +/area/security/vacantoffice) +"aoK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/security/vacantoffice) +"aoL" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/weapon/folder/red, +/turf/open/floor/wood, +/area/security/vacantoffice) +"aoM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/security/vacantoffice) +"aoN" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/tinted/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/vacantoffice) +"aoO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/hallway/secondary/entry) +"aoP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + tag = "icon-neutral (EAST)"; + dir = 4 + }, +/area/hallway/secondary/entry) +"aoQ" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/weapon/pen, +/turf/open/floor/carpet, +/area/hallway/secondary/entry) +"aoR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/hallway/secondary/entry) +"aoS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Arrivals Meeting Room"; + dir = 10; + icon_state = "camera"; + network = list("SS13"); + tag = "" + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = -25; + tag = "SOUTH" + }, +/turf/open/floor/carpet, +/area/hallway/secondary/entry) +"aoT" = ( +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/hallway/secondary/entry) +"aoU" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/weapon/paper, +/turf/open/floor/carpet, +/area/hallway/secondary/entry) +"aoV" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + tag = "icon-neutral (WEST)"; + dir = 8 + }, +/area/hallway/secondary/entry) +"aoW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aoX" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/checkpoint) +"aoY" = ( +/obj/structure/closet/secure_closet/security, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = -25; + tag = "SOUTH" + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (SOUTHWEST)"; + dir = 10 + }, +/area/security/checkpoint) +"aoZ" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plasteel/darkred/side, +/area/security/checkpoint) +"apa" = ( +/obj/structure/closet/wardrobe/red, +/obj/machinery/light_switch{ + pixel_y = -24; + tag = "s" + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (SOUTHEAST)"; + dir = 6 + }, +/area/security/checkpoint) +"apb" = ( +/mob/living/simple_animal/mouse, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"apc" = ( +/obj/item/device/assembly/mousetrap/armed, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"apd" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"ape" = ( +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"apf" = ( +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/fpmaint2) +"apg" = ( +/obj/item/weapon/rack_parts, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"aph" = ( +/obj/machinery/power/smes{ + capacity = 9e+006; + charge = 10000 + }, +/obj/structure/sign/deathsposal{ + pixel_x = 0; + pixel_y = 32 + }, +/obj/structure/cable/green{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/maintenance/incinerator) +"api" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/structure/cable/yellow{ + d2 = 2; + icon_state = "0-2" + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"apj" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4; + name = "input gas connector port" + }, +/obj/machinery/portable_atmospherics/canister, +/obj/structure/sign/nosmoking_2{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"apk" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Incinerator to Output"; + on = 0 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/light_switch{ + pixel_y = 24; + tag = "n" + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"apl" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"apm" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"apn" = ( +/obj/structure/disposalpipe/trunk, +/obj/structure/disposaloutlet{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"apo" = ( +/obj/structure/table, +/obj/item/weapon/stock_parts/capacitor, +/obj/item/weapon/stock_parts/cell, +/obj/item/wallframe/airalarm, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"app" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"apq" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"apr" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/asmaint) +"aps" = ( +/obj/structure/table, +/obj/item/weapon/stock_parts/scanning_module, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"apt" = ( +/obj/machinery/camera/emp_proof{ + c_tag = "Containment Northwest"; + dir = 4; + icon_state = "camera"; + network = list("Singularity"); + tag = "icon-camera (EAST)" + }, +/obj/structure/cable/green{ + tag = "icon-1-10"; + icon_state = "1-10" + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"apu" = ( +/obj/machinery/power/emitter{ + anchored = 1; + state = 2 + }, +/obj/structure/cable/green, +/turf/open/floor/plating/airless/warnplate{ + dir = 2 + }, +/area/space/nearstation) +"apv" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/engineering) +"apw" = ( +/obj/structure/cable/yellow{ + d2 = 4; + icon_state = "0-4" + }, +/obj/machinery/power/rad_collector{ + anchored = 1 + }, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/engine/engineering) +"apx" = ( +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Singularity"; + name = "radiation shutters" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"apy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"apz" = ( +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/effect/landmark/start{ + name = "Station Engineer" + }, +/obj/structure/chair/stool, +/turf/open/floor/plasteel, +/area/engine/engineering) +"apA" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"apB" = ( +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/engineering) +"apC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"apD" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 8; + tag = "" + }, +/obj/structure/closet/secure_closet/engineering_personal, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (WEST)"; + dir = 8 + }, +/area/engine/engineering) +"apE" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/aft) +"apF" = ( +/obj/structure/table/wood, +/obj/item/weapon/folder/yellow, +/turf/open/floor/wood, +/area/security/vacantoffice) +"apG" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper, +/turf/open/floor/wood, +/area/security/vacantoffice) +"apH" = ( +/obj/structure/table/wood, +/obj/machinery/light/small, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/wood, +/area/security/vacantoffice) +"apI" = ( +/obj/machinery/light_switch{ + pixel_y = -24; + tag = "s" + }, +/turf/open/floor/wood, +/area/security/vacantoffice) +"apJ" = ( +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/hallway/secondary/entry) +"apK" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + tag = "icon-neutral (EAST)"; + dir = 4 + }, +/area/hallway/secondary/entry) +"apL" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + tag = "icon-neutral (WEST)"; + dir = 8 + }, +/area/hallway/secondary/entry) +"apM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/security/checkpoint) +"apN" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Security Maintenance"; + req_access_txt = "1" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/security/checkpoint) +"apO" = ( +/obj/item/weapon/vending_refill/cigarette, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"apP" = ( +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"apQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"apR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"apS" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/obj/machinery/meter, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"apT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/mob/living/simple_animal/mouse, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/atmos_control) +"apU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/meter, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"apV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"apW" = ( +/obj/machinery/disposal/bin, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/maintenance/incinerator) +"apX" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"apY" = ( +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"apZ" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"aqa" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"aqb" = ( +/obj/machinery/camera{ + c_tag = "Turbine Vent"; + dir = 4; + network = list("SS13") + }, +/turf/open/floor/plating/airless, +/area/maintenance/incinerator) +"aqc" = ( +/obj/structure/lattice/catwalk, +/obj/structure/disposalpipe/segment, +/turf/open/space, +/area/space) +"aqd" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/auxsolarport) +"aqe" = ( +/obj/machinery/camera/emp_proof{ + c_tag = "Containment Northeast"; + dir = 8; + icon_state = "camera"; + network = list("Singularity"); + tag = "icon-camera (WEST)" + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"aqf" = ( +/obj/structure/table, +/obj/item/weapon/stock_parts/capacitor, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/glass = 2, /obj/item/stack/sheet/rglass = 1, /obj/item/stack/sheet/metal = 2, /obj/item/stack/sheet/plasteel = 1); + name = "random sheet material spawner" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aqg" = ( +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/asmaint) +"aqh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aqi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aqj" = ( +/obj/structure/table, +/obj/item/weapon/stock_parts/matter_bin, +/obj/item/weapon/stock_parts/matter_bin, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aqk" = ( +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2); + name = "random metal material damage spawner" + }, +/obj/structure/cable/green{ + tag = "icon-2-5"; + icon_state = "2-5" + }, +/obj/structure/grille/broken, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"aql" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8"; + d1 = 4; + d2 = 8 + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4"; + d1 = 1; + d2 = 4 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Singularity"; + name = "radiation shutters" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"aqm" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 8; + tag = "" + }, +/obj/structure/cable/yellow{ + icon_state = "4-8"; + d1 = 4; + d2 = 8 + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (WEST)"; + dir = 8 + }, +/area/engine/engineering) +"aqn" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8"; + d1 = 4; + d2 = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aqo" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8"; + d1 = 4; + d2 = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aqp" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8"; + d1 = 4; + d2 = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aqq" = ( +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aqr" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aqs" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 8; + tag = "" + }, +/obj/structure/closet/secure_closet/engineering_personal, +/obj/machinery/light_switch{ + pixel_y = -24; + tag = "s" + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (WEST)"; + dir = 8 + }, +/area/engine/engineering) +"aqt" = ( +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aqu" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (EAST)"; + dir = 4 + }, +/area/hallway/secondary/entry) +"aqv" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel/neutral/side{ + tag = "icon-neutral (NORTH)"; + dir = 1 + }, +/area/hallway/secondary/entry) +"aqw" = ( +/obj/machinery/vending/snack, +/obj/machinery/status_display{ + layer = 4; + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plasteel/neutral/side{ + tag = "icon-neutral (NORTH)"; + dir = 1 + }, +/area/hallway/secondary/entry) +"aqx" = ( +/obj/structure/cable/green{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 1; + name = "Autoname APC North"; + pixel_x = 0; + pixel_y = 24 + }, +/obj/structure/disposalpipe/trunk, +/obj/machinery/disposal/bin, +/obj/machinery/camera{ + c_tag = "Arrivals South"; + network = list("SS13") + }, +/turf/open/floor/plasteel/neutral/side{ + tag = "icon-neutral (NORTH)"; + dir = 1 + }, +/area/hallway/secondary/entry) +"aqy" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/neutral/side{ + tag = "icon-neutral (NORTH)"; + dir = 1 + }, +/area/hallway/secondary/entry) +"aqz" = ( +/obj/machinery/vending/cola, +/turf/open/floor/plasteel/neutral/side{ + tag = "icon-neutral (NORTH)"; + dir = 1 + }, +/area/hallway/secondary/entry) +"aqA" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (NORTH)"; + dir = 1 + }, +/area/hallway/secondary/entry) +"aqB" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + frequency = 1439; + id_tag = null; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aqC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/closed/wall, +/area/hallway/secondary/entry) +"aqD" = ( +/obj/structure/cable/green{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 1; + name = "Autoname APC North"; + pixel_x = 0; + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/security/checkpoint) +"aqE" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"aqF" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/closet, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"aqG" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/girder{ + layer = 2.6 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"aqH" = ( +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"aqI" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"aqJ" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aqK" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aqL" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 6 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/meter, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aqM" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aqN" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aqO" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aqP" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/girder{ + layer = 2.6 + }, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aqQ" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/meter, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aqR" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/atmos_control) +"aqS" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aqT" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/machinery/door/airlock/atmos{ + name = "Turbine Access"; + req_access_txt = "32" + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/incinerator) +"aqU" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plating/warnplate{ + dir = 6 + }, +/area/maintenance/incinerator) +"aqV" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"aqW" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"aqX" = ( +/obj/item/weapon/cigbutt, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"aqY" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"aqZ" = ( +/obj/machinery/airalarm{ + desc = "This particular atmos control unit appears to have no access restrictions."; + dir = 8; + icon_state = "alarm0"; + locked = 0; + name = "all-access air alarm"; + pixel_x = 24; + req_access = "0"; + req_one_access = "0" + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"ara" = ( +/turf/closed/wall/r_wall, +/area/maintenance/incinerator) +"arb" = ( +/obj/machinery/door/poddoor{ + id = "auxincineratorvent"; + name = "Auxiliary Incinerator Vent" + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/incinerator) +"arc" = ( +/turf/open/floor/plating/airless, +/area/maintenance/incinerator) +"ard" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/airless, +/area/maintenance/incinerator) +"are" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/auxsolarstarboard) +"arf" = ( +/obj/item/weapon/screwdriver, +/turf/open/space, +/area/space/nearstation) +"arg" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = -32; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarport) +"arh" = ( +/obj/machinery/door/airlock/external{ + name = "External Access"; + req_access = null; + req_access_txt = "13" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"ari" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/asmaint) +"arj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"ark" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/item/toy/toy_xeno, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"arl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"arm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/asmaint) +"arn" = ( +/obj/machinery/door/airlock/maintenance{ + locked = 1; + name = "maintenance access"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aro" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/closed/wall, +/area/maintenance/asmaint) +"arp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"arq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/closet/cardboard, +/obj/item/weapon/holosign_creator, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"arr" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"ars" = ( +/obj/item/clothing/gloves/color/yellow, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"art" = ( +/obj/machinery/field/generator{ + anchored = 1; + state = 2 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"aru" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Singularity"; + name = "radiation shutters" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"arv" = ( +/obj/structure/rack, +/obj/item/clothing/gloves/color/black, +/obj/item/weapon/extinguisher{ + pixel_x = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"arw" = ( +/obj/structure/closet/radiation, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/camera{ + c_tag = "Engineering North"; + dir = 10; + icon_state = "camera"; + network = list("SS13"); + tag = "" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"arx" = ( +/obj/structure/table, +/obj/item/weapon/folder/yellow, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/yellow/corner, +/area/engine/engineering) +"ary" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/yellow/corner{ + dir = 8 + }, +/area/engine/engineering) +"arz" = ( +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"arA" = ( +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"arB" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/girder{ + layer = 2.6 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"arC" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/closet/wardrobe/grey, +/turf/open/floor/plating, +/area/maintenance/aft) +"arD" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"arE" = ( +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/aft) +"arF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/closed/wall, +/area/hallway/secondary/entry) +"arG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"arH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"arI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"arJ" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/junction{ + dir = 8; + icon_state = "pipe-j1"; + tag = "icon-pipe-j1 (EAST)" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"arK" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"arL" = ( +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"arM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/hallway/secondary/entry) +"arN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"arO" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"arP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"arQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fpmaint2) +"arR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"arS" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/obj/machinery/meter, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"arT" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"arU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"arV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"arW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"arX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/atmos_control) +"arY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/meter, +/turf/closed/wall, +/area/maintenance/atmos_control) +"arZ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"asa" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"asb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"asc" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 8; + name = "Autoname APC West"; + pixel_x = -25; + pixel_y = 0 + }, +/obj/structure/cable/green, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"asd" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 2; + name = "atmospherics mix pump" + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"ase" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 1; + name = "Incinerator to Space" + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"asf" = ( +/obj/machinery/doorButtons/airlock_controller{ + idExterior = "incinerator_airlock_exterior"; + idInterior = "incinerator_airlock_interior"; + idSelf = "incinerator_access_control"; + name = "Incinerator Access Console"; + pixel_x = 26; + pixel_y = 0; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"asg" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/maintenance/incinerator) +"ash" = ( +/obj/machinery/doorButtons/access_button{ + idDoor = "incinerator_airlock_exterior"; + idSelf = "incinerator_access_control"; + layer = 3.1; + name = "Incinerator airlock control"; + pixel_x = -24; + pixel_y = 0 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + on = 1 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/engine, +/area/maintenance/incinerator) +"asi" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + external_pressure_bound = 0; + initialize_directions = 1; + internal_pressure_bound = 4000; + on = 0; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/incinerator) +"asj" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = -32; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarstarboard) +"ask" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"asl" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"asm" = ( +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"asn" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aso" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"asp" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/asmaint) +"asq" = ( +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"asr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"ass" = ( +/obj/item/weapon/tank/internals/emergency_oxygen/engi, +/turf/open/space, +/area/space/nearstation) +"ast" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Singularity"; + name = "radiation shutters" + }, +/obj/machinery/button/door{ + id = "Singularity"; + name = "Shutters Control"; + pixel_x = 25; + pixel_y = 0; + req_access_txt = "11" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (NORTH)"; + dir = 1 + }, +/area/engine/engineering) +"asu" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/yellow/corner{ + tag = "icon-yellowcorner (NORTH)"; + dir = 1 + }, +/area/engine/engineering) +"asv" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/engineering) +"asw" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"asx" = ( +/obj/structure/rack, +/obj/item/weapon/stock_parts/matter_bin, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/maintenance/aft) +"asy" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"asz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/aft) +"asA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"asB" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"asC" = ( +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (WEST)"; + dir = 8 + }, +/area/hallway/secondary/entry) +"asD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"asE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"asF" = ( +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/secondary/entry) +"asG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"asH" = ( +/turf/closed/wall/r_wall, +/area/atmos) +"asI" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor{ + density = 0; + icon_state = "open"; + id = "atmosmaint"; + name = "Atmos Blast Door"; + opacity = 0 + }, +/obj/structure/cable/green{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/atmos) +"asJ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/door/poddoor{ + density = 0; + icon_state = "open"; + id = "atmosmaint"; + name = "Atmos Blast Door"; + opacity = 0 + }, +/obj/structure/cable/green{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/atmos) +"asK" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor{ + density = 0; + icon_state = "open"; + id = "atmosmaint"; + name = "Atmos Blast Door"; + opacity = 0 + }, +/obj/structure/cable/green{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/atmos) +"asL" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Atmospherics Maintenance"; + req_access_txt = "24" + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/atmos) +"asM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/closed/wall, +/area/maintenance/atmos_control) +"asN" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"asO" = ( +/obj/machinery/atmospherics/components/unary/tank/toxins{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"asP" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "plasma tank pump" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4"; + d1 = 1; + d2 = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"asQ" = ( +/obj/machinery/atmospherics/pipe/manifold4w/general{ + level = 2 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8"; + d1 = 4; + d2 = 8 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"asR" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Mix to Incinerator"; + on = 0 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8"; + d1 = 4; + d2 = 8 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"asS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8"; + d1 = 4; + d2 = 8 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"asT" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10; + pixel_x = 0; + initialize_directions = 10 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8"; + d1 = 4; + d2 = 8 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"asU" = ( +/obj/machinery/door/airlock/glass{ + autoclose = 0; + frequency = 1449; + heat_proof = 1; + icon_state = "closed"; + id_tag = "incinerator_airlock_interior"; + locked = 1; + name = "Turbine Interior Airlock"; + req_access_txt = "32" + }, +/obj/structure/cable/yellow{ + icon_state = "4-8"; + d1 = 4; + d2 = 8 + }, +/turf/open/floor/engine, +/area/maintenance/incinerator) +"asV" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8"; + d1 = 4; + d2 = 8 + }, +/turf/open/floor/engine, +/area/maintenance/incinerator) +"asW" = ( +/obj/machinery/door/airlock/glass{ + autoclose = 0; + frequency = 1449; + heat_proof = 1; + icon_state = "closed"; + id_tag = "incinerator_airlock_exterior"; + locked = 1; + name = "Turbine Exterior Airlock"; + req_access_txt = "32" + }, +/obj/structure/cable/yellow{ + icon_state = "4-8"; + d1 = 4; + d2 = 8 + }, +/turf/open/floor/engine, +/area/maintenance/incinerator) +"asX" = ( +/obj/machinery/igniter{ + icon_state = "igniter0"; + id = "Incinerator"; + luminosity = 2; + on = 0 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8"; + d1 = 4; + d2 = 8 + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/incinerator) +"asY" = ( +/obj/machinery/power/compressor{ + tag = "icon-compressor (WEST)"; + icon_state = "compressor"; + dir = 8; + luminosity = 2; + comp_id = "incineratorturbine" + }, +/obj/structure/cable/yellow{ + icon_state = "4-8"; + d1 = 4; + d2 = 8 + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/incinerator) +"asZ" = ( +/obj/machinery/power/turbine{ + tag = "icon-turbine (EAST)"; + icon_state = "turbine"; + dir = 4; + luminosity = 2 + }, +/obj/structure/cable/yellow{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/incinerator) +"ata" = ( +/obj/machinery/door/poddoor{ + id = "turbinevent"; + name = "Turbine Vent" + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/incinerator) +"atb" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 6 + }, +/turf/open/floor/plating/airless, +/area/maintenance/incinerator) +"atc" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/maintenance/incinerator) +"atd" = ( +/turf/closed/wall/r_wall, +/area/maintenance/auxsolarport) +"ate" = ( +/obj/machinery/camera{ + c_tag = "Fore Port Solar Control Room"; + dir = 4; + network = list("SS13") + }, +/turf/open/floor/plating/warnplate/corner{ + dir = 8; + tag = "" + }, +/area/maintenance/auxsolarport) +"atf" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4"; + d1 = 1; + d2 = 4 + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/maintenance/auxsolarport) +"atg" = ( +/obj/structure/cable/yellow{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/solar_control{ + id = "auxsolareast"; + name = "Fore Port Solar Control"; + track = 0 + }, +/turf/open/floor/plating/warnplate/corner{ + dir = 4; + tag = "" + }, +/area/maintenance/auxsolarport) +"ath" = ( +/obj/machinery/door/airlock/external{ + name = "External Access"; + req_access = null; + req_access_txt = "13" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"ati" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/asmaint) +"atj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/maintenance/asmaint) +"atk" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"atl" = ( +/turf/closed/wall/r_wall, +/area/medical/virology) +"atm" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"atn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/asmaint) +"ato" = ( +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Solar Maintenance"; + opacity = 0; + req_access = null; + req_access_txt = "10; 13" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarport) +"atp" = ( +/obj/item/weapon/wirecutters, +/turf/open/space, +/area/space/nearstation) +"atq" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"atr" = ( +/turf/open/floor/plating/airless/warnplate{ + dir = 1 + }, +/area/space/nearstation) +"ats" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/item/device/assembly/mousetrap/armed, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"att" = ( +/turf/open/floor/plating/warnplate{ + dir = 9 + }, +/area/engine/engineering) +"atu" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/engine/engineering) +"atv" = ( +/turf/open/floor/plating/warnplate/corner{ + dir = 4; + tag = "" + }, +/area/engine/engineering) +"atw" = ( +/turf/open/floor/plating, +/area/engine/engineering) +"atx" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"aty" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"atz" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/engineering) +"atA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Engineering 2"; + dir = 8; + network = list("SS13"); + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warning/corner, +/area/engine/engineering) +"atB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/engine/engine_smes) +"atC" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"atD" = ( +/turf/closed/wall, +/area/engine/engine_smes) +"atE" = ( +/turf/closed/wall/r_wall, +/area/engine/engine_smes) +"atF" = ( +/turf/closed/wall/rust, +/area/engine/engine_smes) +"atG" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"atH" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/turf/closed/wall, +/area/hallway/secondary/entry) +"atI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/hallway/secondary/entry) +"atJ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"atK" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"atL" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"atM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/closed/wall, +/area/hallway/secondary/entry) +"atN" = ( +/obj/machinery/pipedispenser/disposal/transit_tube, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (NORTHEAST)"; + dir = 5 + }, +/area/atmos) +"atO" = ( +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/atmos) +"atP" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plasteel, +/area/atmos) +"atQ" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50; + pixel_x = 2; + pixel_y = 2 + }, +/turf/open/floor/plasteel, +/area/atmos) +"atR" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/atmos) +"atS" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 8 + }, +/obj/machinery/meter{ + frequency = 1441; + id_tag = "waste_meter"; + name = "Waste Loop" + }, +/obj/machinery/button/door{ + id = "atmosmaint"; + name = "Atmospherics Maintenance Shutters"; + pixel_x = -24; + pixel_y = 24; + req_access_txt = "24" + }, +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/atmos) +"atT" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Distro to Waste"; + on = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/atmos) +"atU" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/visible, +/obj/machinery/meter{ + frequency = 1441; + id_tag = "distro_meter"; + name = "Distribution Loop" + }, +/turf/open/floor/plasteel, +/area/atmos) +"atV" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Air to Distro"; + on = 1; + target_pressure = 101 + }, +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/atmos) +"atW" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1; + initialize_directions = 11 + }, +/obj/machinery/meter, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/atmos) +"atX" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1; + initialize_directions = 11 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/camera{ + c_tag = "Atmospherics North"; + network = list("SS13") + }, +/turf/open/floor/plasteel, +/area/atmos) +"atY" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 10; + initialize_directions = 10 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/atmos) +"atZ" = ( +/obj/structure/grille, +/turf/closed/wall/r_wall, +/area/atmos) +"aua" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4; + name = "input gas connector port" + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"aub" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "input port pump" + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"auc" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/obj/machinery/light/small, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = -25; + tag = "SOUTH" + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"aud" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4; + name = "Mix to Space" + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"aue" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/meter, +/mob/living/simple_animal/mouse, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"auf" = ( +/obj/machinery/computer/turbine_computer{ + id = "incineratorturbine" + }, +/obj/machinery/button/door{ + id = "turbinevent"; + name = "Turbine Vent Control"; + pixel_x = -6; + pixel_y = -24; + req_access_txt = "32" + }, +/obj/machinery/button/door{ + id = "auxincineratorvent"; + name = "Auxiliary Vent Control"; + pixel_x = 6; + pixel_y = -24; + req_access_txt = "32" + }, +/obj/machinery/button/ignition{ + id = "Incinerator"; + pixel_x = 24; + pixel_y = 6 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"aug" = ( +/obj/machinery/doorButtons/access_button{ + idDoor = "incinerator_airlock_interior"; + idSelf = "incinerator_access_control"; + name = "Incinerator airlock control"; + pixel_x = 24; + pixel_y = 0 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/engine, +/area/maintenance/incinerator) +"auh" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 8; + frequency = 1441; + id = "air_in" + }, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = -32 + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/incinerator) +"aui" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/airless, +/area/maintenance/incinerator) +"auj" = ( +/turf/closed/wall/r_wall, +/area/maintenance/auxsolarstarboard) +"auk" = ( +/obj/machinery/camera{ + c_tag = "Fore Starboard Solar Control Room"; + dir = 4; + network = list("SS13") + }, +/turf/open/floor/plating/warnplate/corner{ + dir = 8; + tag = "" + }, +/area/maintenance/auxsolarstarboard) +"aul" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4"; + d1 = 1; + d2 = 4 + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/maintenance/auxsolarstarboard) +"aum" = ( +/obj/structure/cable/yellow{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/solar_control{ + id = "auxsolareast"; + name = "Fore Starboard Solar Control"; + track = 0 + }, +/turf/open/floor/plating/warnplate/corner{ + dir = 4; + tag = "" + }, +/area/maintenance/auxsolarstarboard) +"aun" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"auo" = ( +/obj/machinery/atmospherics/components/unary/tank/air, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aup" = ( +/obj/item/weapon/rack_parts, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"auq" = ( +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aur" = ( +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aus" = ( +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/asmaint) +"aut" = ( +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/asmaint) +"auu" = ( +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/asmaint) +"auv" = ( +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/asmaint) +"auw" = ( +/obj/structure/grille, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/asmaint) +"aux" = ( +/obj/item/stack/cable_coil/yellow, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/asmaint) +"auy" = ( +/obj/machinery/power/terminal, +/obj/structure/cable/yellow{ + d2 = 4; + icon_state = "0-4" + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarport) +"auz" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarport) +"auA" = ( +/obj/structure/chair/stool, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_x = 26; + pixel_y = -2; + tag = "EAST" + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarport) +"auB" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"auC" = ( +/obj/structure/cable/green{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 1; + name = "Autoname APC North"; + pixel_x = 0; + pixel_y = 24 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"auD" = ( +/obj/item/wallframe/light_fixture, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"auE" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"auF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"auG" = ( +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"auH" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"auI" = ( +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"auJ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 1 + }, +/area/medical/virology) +"auK" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 4 + }, +/area/medical/virology) +"auL" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_virology{ + name = "Isolation B"; + req_access_txt = "39" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"auM" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 9 + }, +/area/medical/virology) +"auN" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + frequency = 1439; + id_tag = null; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/structure/sink{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 1 + }, +/area/medical/virology) +"auO" = ( +/obj/machinery/smartfridge/chemistry/virology, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 5 + }, +/area/medical/virology) +"auP" = ( +/turf/closed/wall, +/area/medical/virology) +"auQ" = ( +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 1 + }, +/area/medical/virology) +"auR" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/mob/living/carbon/monkey, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"auS" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/machinery/camera{ + c_tag = "Virology Monkey Pen"; + network = list("SS13") + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"auT" = ( +/mob/living/carbon/monkey, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 4 + }, +/area/medical/virology) +"auU" = ( +/obj/structure/closet/abductor{ + name = "strange locker" + }, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/drone_shell, +/obj/item/stack/tile/sepia{ + amount = 6 + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/asmaint) +"auV" = ( +/turf/closed/wall/rust, +/area/maintenance/asmaint) +"auW" = ( +/turf/open/floor/plating/airless/warnplate{ + dir = 8 + }, +/area/space/nearstation) +"auX" = ( +/turf/open/floor/plating/airless/warnplate/corner{ + dir = 2 + }, +/area/space/nearstation) +"auY" = ( +/turf/open/floor/plating/airless/warnplate{ + dir = 2 + }, +/area/space/nearstation) +"auZ" = ( +/turf/open/floor/plating/airless/warnplate/corner{ + tag = "icon-warnplatecorner (NORTH)"; + dir = 1 + }, +/area/space/nearstation) +"ava" = ( +/turf/open/floor/plating/airless/warnplate{ + dir = 4 + }, +/area/space/nearstation) +"avb" = ( +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/engine/engineering) +"avc" = ( +/obj/structure/particle_accelerator/particle_emitter/left{ + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"avd" = ( +/obj/machinery/particle_accelerator/control_box, +/obj/structure/cable/green{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"ave" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/landmark/start{ + name = "Station Engineer" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"avf" = ( +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"avg" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_x = -25; + pixel_y = -2; + tag = "WEST" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"avh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0; + tag = "e" + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/engineering) +"avi" = ( +/obj/structure/cable/green{ + tag = "icon-4-10"; + icon_state = "4-10" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/engine_smes) +"avj" = ( +/obj/structure/cable/green{ + tag = "icon-6-8"; + icon_state = "6-8" + }, +/obj/structure/cable/green{ + tag = "icon-1-6"; + icon_state = "1-6" + }, +/obj/structure/cable/green{ + tag = "icon-2-6"; + icon_state = "2-6" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/engine_smes) +"avk" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE" + }, +/turf/closed/wall/r_wall, +/area/engine/engine_smes) +"avl" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engine_smes) +"avm" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/computer/monitor{ + name = "primary power monitoring console" + }, +/obj/structure/cable/green{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/machinery/light_switch{ + pixel_y = 24; + tag = "n" + }, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engine_smes) +"avn" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_x = 26; + pixel_y = -2; + tag = "EAST" + }, +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engine_smes) +"avo" = ( +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"avp" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"avq" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"avr" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"avs" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"avt" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=CHW"; + location = "Lockers" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"avu" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"avv" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint2) +"avw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/fpmaint2) +"avx" = ( +/obj/machinery/pipedispenser/disposal, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (EAST)"; + dir = 4 + }, +/area/atmos) +"avy" = ( +/turf/open/floor/plasteel, +/area/atmos) +"avz" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start{ + name = "Atmospheric Technician" + }, +/turf/open/floor/plasteel, +/area/atmos) +"avA" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/weapon/storage/belt/utility, +/obj/item/device/t_scanner, +/obj/item/device/t_scanner, +/obj/item/device/t_scanner, +/turf/open/floor/plasteel, +/area/atmos) +"avB" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 0; + name = "Waste to Filter"; + on = 1 + }, +/turf/open/floor/plasteel, +/area/atmos) +"avC" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Mix to Incinerator"; + on = 0 + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/atmos) +"avD" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Mix to Distro"; + on = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"avE" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/visible{ + dir = 6; + icon_state = "intact"; + name = "mix pipe"; + tag = "icon-intact (SOUTHEAST)" + }, +/turf/open/floor/plasteel, +/area/atmos) +"avF" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/visible{ + dir = 4; + icon_state = "intact"; + name = "mix pipe"; + tag = "icon-intact (EAST)" + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 0; + name = "Air to Mix"; + on = 0 + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/green/side{ + tag = "icon-green (NORTHWEST)"; + dir = 9 + }, +/area/atmos) +"avG" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/visible{ + dir = 4; + icon_state = "intact"; + name = "mix pipe"; + tag = "icon-intact (EAST)" + }, +/obj/machinery/atmospherics/components/unary/thermomachine/heater{ + dir = 1; + layer = 2.5; + on = 1; + tag = "" + }, +/turf/open/floor/plasteel/green/side{ + tag = "icon-green (NORTHEAST)"; + dir = 5 + }, +/area/atmos) +"avH" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/atmospherics/pipe/simple/supplymain/visible{ + dir = 4; + icon_state = "intact"; + name = "mix pipe"; + tag = "icon-intact (EAST)" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/atmos) +"avI" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/visible{ + dir = 4; + icon_state = "intact"; + name = "mix pipe"; + tag = "icon-intact (EAST)" + }, +/obj/structure/lattice, +/turf/open/space, +/area/space/nearstation) +"avJ" = ( +/obj/machinery/meter, +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/supplymain/visible{ + dir = 4; + icon_state = "intact"; + name = "mix pipe"; + tag = "icon-intact (EAST)" + }, +/turf/closed/wall/r_wall, +/area/atmos) +"avK" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + external_pressure_bound = 0; + frequency = 1441; + id_tag = "mix_in"; + initialize_directions = 1; + internal_pressure_bound = 4000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine/vacuum, +/area/atmos) +"avL" = ( +/turf/open/floor/engine/vacuum, +/area/atmos) +"avM" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"avN" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/incinerator) +"avO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/incinerator) +"avP" = ( +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating/airless, +/area/maintenance/incinerator) +"avQ" = ( +/obj/machinery/power/terminal, +/obj/structure/cable/yellow{ + d2 = 4; + icon_state = "0-4" + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarstarboard) +"avR" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarstarboard) +"avS" = ( +/obj/structure/chair/stool, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_x = 26; + pixel_y = -2; + tag = "EAST" + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarstarboard) +"avT" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/obj/machinery/meter, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"avU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/asmaint) +"avV" = ( +/obj/structure/falsewall, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"avW" = ( +/obj/machinery/power/smes, +/obj/structure/cable/green{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/turf/open/floor/plating/warnplate/corner{ + dir = 2; + tag = "" + }, +/area/maintenance/auxsolarport) +"avX" = ( +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plating/warnplate, +/area/maintenance/auxsolarport) +"avY" = ( +/obj/structure/cable/green{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 2; + name = "Autoname APC South"; + pixel_x = 1; + pixel_y = -24 + }, +/turf/open/floor/plating/warnplate/corner{ + dir = 1; + tag = "" + }, +/area/maintenance/auxsolarport) +"avZ" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"awa" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"awb" = ( +/obj/structure/rack, +/obj/item/weapon/light/tube, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/weapon/circuitboard/machine/protolathe, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"awc" = ( +/obj/structure/rack, +/obj/item/weapon/storage/box/lights/mixed, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"awd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"awe" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"awf" = ( +/turf/closed/wall/rust, +/area/medical/virology) +"awg" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 8 + }, +/area/medical/virology) +"awh" = ( +/obj/structure/closet/secure_closet/personal/patient, +/turf/open/floor/plasteel/whitegreen/corner{ + tag = "icon-whitegreencorner"; + dir = 2 + }, +/area/medical/virology) +"awi" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/medical/virology) +"awj" = ( +/obj/structure/table/glass, +/obj/item/clothing/gloves/color/latex, +/obj/item/device/healthanalyzer, +/obj/item/clothing/glasses/hud/health, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 8 + }, +/area/medical/virology) +"awk" = ( +/turf/open/floor/plasteel/white, +/area/medical/virology) +"awl" = ( +/obj/structure/table/glass, +/obj/structure/reagent_dispensers/virusfood{ + density = 0; + pass_flags = 0; + pixel_x = 32 + }, +/obj/item/weapon/book/manual/wiki/infections{ + pixel_y = 7 + }, +/obj/item/weapon/reagent_containers/syringe/antiviral, +/obj/item/weapon/reagent_containers/dropper, +/obj/item/weapon/reagent_containers/spray/cleaner, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 4 + }, +/area/medical/virology) +"awm" = ( +/mob/living/carbon/monkey, +/turf/open/floor/plasteel/whitegreen/corner{ + tag = "icon-whitegreencorner (WEST)"; + dir = 8 + }, +/area/medical/virology) +"awn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"awo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/mob/living/carbon/monkey, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"awp" = ( +/mob/living/carbon/monkey, +/turf/open/floor/plasteel/whitegreen/corner{ + tag = "icon-whitegreencorner"; + dir = 2 + }, +/area/medical/virology) +"awq" = ( +/obj/item/weapon/dice/d8{ + desc = "A die with eight sides. It feels.... incredibly lucky. The eight is slightly darker than the other numbers."; + tag = "eight" + }, +/obj/item/weapon/paper/crumpled{ + info = "Your reward is dice." + }, +/turf/open/floor/plating/airless{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/engine/engineering) +"awr" = ( +/obj/structure/particle_accelerator/particle_emitter/center{ + tag = "icon-emitter_center (WEST)"; + icon_state = "emitter_center"; + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"aws" = ( +/obj/structure/particle_accelerator/power_box{ + tag = "icon-power_box (WEST)"; + icon_state = "power_box"; + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"awt" = ( +/obj/structure/particle_accelerator/fuel_chamber{ + tag = "icon-fuel_chamber (WEST)"; + icon_state = "fuel_chamber"; + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"awu" = ( +/obj/structure/particle_accelerator/end_cap{ + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"awv" = ( +/obj/item/weapon/weldingtool, +/obj/structure/lattice, +/turf/open/space, +/area/space/nearstation) +"aww" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Singularity"; + name = "radiation shutters" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/engineering) +"awx" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"awy" = ( +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/engineering) +"awz" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/engineering) +"awA" = ( +/obj/structure/cable/yellow{ + tag = "icon-4-10"; + icon_state = "4-10"; + d1 = 4; + d2 = 8 + }, +/obj/structure/cable/green{ + tag = "icon-5-8"; + icon_state = "5-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering{ + name = "SMES Room"; + req_access_txt = "10" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow, +/area/engine/engineering) +"awB" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8"; + d1 = 4; + d2 = 8 + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/engine_smes) +"awC" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8"; + d1 = 4; + d2 = 8 + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/engine_smes) +"awD" = ( +/obj/structure/cable/yellow{ + tag = "icon-6-8"; + icon_state = "6-8"; + d1 = 4; + d2 = 8 + }, +/obj/structure/cable/green{ + tag = "icon-4-9"; + icon_state = "4-9" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering{ + name = "SMES Room"; + req_access_txt = "10" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow, +/area/engine/engine_smes) +"awE" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/engine_smes) +"awF" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/engine_smes) +"awG" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/chair/office/dark{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engine_smes) +"awH" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engine_smes) +"awI" = ( +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/machinery/power/port_gen/pacman, +/obj/structure/cable/green{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/turf/open/floor/plasteel/bot{ + desc = "Marked to indicate placement of a PACMAN generator."; + dir = 1 + }, +/area/engine/engine_smes) +"awJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"awK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/aft) +"awL" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (NORTH)"; + dir = 1 + }, +/area/hallway/secondary/entry) +"awM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (EAST)"; + dir = 4 + }, +/area/hallway/secondary/entry) +"awN" = ( +/obj/machinery/pipedispenser, +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (SOUTHEAST)"; + dir = 6 + }, +/area/atmos) +"awO" = ( +/obj/structure/table, +/obj/item/clothing/head/welding{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/clothing/head/welding{ + pixel_x = -5; + pixel_y = 3 + }, +/obj/item/device/multitool, +/turf/open/floor/plasteel/caution/corner, +/area/atmos) +"awP" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 8 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel/caution/corner{ + tag = "icon-cautioncorner (WEST)"; + dir = 8 + }, +/area/atmos) +"awQ" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Mix to Filter"; + on = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/visible{ + dir = 1; + icon_state = "intact"; + name = "mix pipe"; + tag = "icon-intact (NORTH)" + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/atmos) +"awR" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supplymain/visible{ + name = "mix pipe" + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/atmos) +"awS" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/visible{ + dir = 9; + icon_state = "intact"; + name = "mix pipe"; + tag = "icon-intact (NORTHWEST)" + }, +/turf/open/floor/plasteel, +/area/atmos) +"awT" = ( +/obj/machinery/atmospherics/pipe/manifold4w/green/visible, +/obj/machinery/meter, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/green/side{ + tag = "icon-green (WEST)"; + dir = 8 + }, +/area/atmos) +"awU" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10; + initialize_directions = 12 + }, +/obj/machinery/computer/atmos_control/tank{ + frequency = 1441; + input_tag = "mix_in"; + name = "Gas Mix Tank Control"; + output_tag = "mix_in"; + sensors = list("mix_sensor" = "Tank") + }, +/turf/open/floor/plasteel/green/side{ + tag = "icon-green (EAST)"; + dir = 4 + }, +/area/atmos) +"awV" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/atmos) +"awW" = ( +/obj/machinery/air_sensor{ + frequency = 1441; + id_tag = "mix_sensor" + }, +/turf/open/floor/engine/vacuum, +/area/atmos) +"awX" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/engine/vacuum, +/area/atmos) +"awY" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/atmos_control) +"awZ" = ( +/obj/machinery/door/airlock/external{ + name = "External Access"; + req_access = null; + req_access_txt = "13" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/incinerator) +"axa" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/incinerator) +"axb" = ( +/obj/structure/lattice/catwalk, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/space, +/area/space) +"axc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 5 + }, +/obj/structure/lattice/catwalk, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/space, +/area/space) +"axd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/structure/lattice/catwalk, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/space, +/area/space) +"axe" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 9 + }, +/obj/structure/lattice/catwalk, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/space, +/area/space) +"axf" = ( +/obj/machinery/power/smes, +/obj/structure/cable/green{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/turf/open/floor/plating/warnplate/corner{ + dir = 2; + tag = "" + }, +/area/maintenance/auxsolarstarboard) +"axg" = ( +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plating/warnplate, +/area/maintenance/auxsolarstarboard) +"axh" = ( +/obj/structure/cable/green{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 2; + name = "Autoname APC South"; + pixel_x = 1; + pixel_y = -24 + }, +/turf/open/floor/plating/warnplate/corner{ + dir = 1; + tag = "" + }, +/area/maintenance/auxsolarstarboard) +"axi" = ( +/obj/effect/decal/remains/human, +/obj/effect/decal/cleanable/blood/old, +/obj/item/weapon/mop, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/asmaint) +"axj" = ( +/obj/item/weapon/wrench, +/obj/effect/decal/cleanable/blood/tracks{ + tag = "icon-tracks (NORTHEAST)"; + icon_state = "tracks"; + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"axk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/mob/living/simple_animal/mouse, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"axl" = ( +/obj/structure/chair/stool, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"axm" = ( +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"axn" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"axo" = ( +/obj/structure/chair/stool, +/obj/machinery/newscaster{ + pixel_y = 32; + tag = "n" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"axp" = ( +/obj/structure/rack, +/obj/item/weapon/wirecutters, +/obj/item/weapon/poster/contraband, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"axq" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/green{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"axr" = ( +/obj/item/trash/can, +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/asmaint) +"axs" = ( +/obj/machinery/door/airlock/engineering{ + icon_state = "closed"; + locked = 0; + name = "Fore Starboard Solar Access"; + req_access_txt = "10" + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarport) +"axt" = ( +/obj/structure/rack, +/obj/item/weapon/light/bulb, +/obj/item/wallframe/light_fixture/small, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"axu" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"axv" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/grille/broken, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/mob/living/simple_animal/mouse, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"axw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"axx" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"axy" = ( +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics Maintenance"; + req_access_txt = "12;24" + }, +/turf/open/floor/plating, +/area/medical/virology) +"axz" = ( +/obj/machinery/airalarm{ + frequency = 1439; + pixel_y = 23 + }, +/turf/open/floor/plating, +/area/medical/virology) +"axA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/chair/stool, +/turf/open/floor/plating, +/area/medical/virology) +"axB" = ( +/obj/machinery/atmospherics/components/binary/valve/open{ + tag = "icon-mvalve_map (EAST)"; + icon_state = "mvalve_map"; + dir = 4 + }, +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plating/warnplate{ + dir = 9 + }, +/area/medical/virology) +"axC" = ( +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 8 + }, +/turf/open/floor/plating/warnplate{ + dir = 5 + }, +/area/medical/virology) +"axD" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plating, +/area/medical/virology) +"axE" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/virology) +"axF" = ( +/obj/machinery/computer/pandemic, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 8 + }, +/area/medical/virology) +"axG" = ( +/obj/structure/chair/office/light{ + dir = 8 + }, +/obj/effect/landmark/start{ + name = "Virologist" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"axH" = ( +/obj/machinery/disposal/bin, +/obj/structure/sign/deathsposal{ + pixel_x = 32; + pixel_y = 0 + }, +/obj/structure/disposalpipe/trunk, +/obj/machinery/camera{ + c_tag = "Virology"; + dir = 8; + network = list("SS13"); + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 4 + }, +/area/medical/virology) +"axI" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/medical/virology) +"axJ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_virology{ + name = "Monkey Pen"; + req_access_txt = "39" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"axK" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/medical/virology) +"axL" = ( +/obj/structure/lattice, +/obj/structure/disposalpipe/segment, +/turf/open/space, +/area/space) +"axM" = ( +/obj/item/weapon/wrench, +/turf/open/floor/plating/airless/warnplate/corner{ + tag = "icon-warnplatecorner (WEST)"; + dir = 8 + }, +/area/space/nearstation) +"axN" = ( +/turf/open/floor/plating/airless/warnplate/corner{ + tag = "icon-warnplatecorner (EAST)"; + dir = 4 + }, +/area/space/nearstation) +"axO" = ( +/obj/structure/particle_accelerator/particle_emitter/right{ + tag = "icon-emitter_right (WEST)"; + icon_state = "emitter_right"; + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"axP" = ( +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Solar Maintenance"; + opacity = 0; + req_access = null; + req_access_txt = "10; 13" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarstarboard) +"axQ" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8"; + d1 = 4; + d2 = 8 + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/engineering) +"axR" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/structure/cable/yellow{ + tag = "icon-5-8"; + icon_state = "5-8"; + d1 = 4; + d2 = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/engineering) +"axS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"axT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Engineering SMES Access"; + dir = 10; + icon_state = "camera"; + network = list("SS13"); + tag = "" + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/engine_smes) +"axU" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/engine_smes) +"axV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/engine/engine_smes) +"axW" = ( +/obj/structure/cable/yellow{ + tag = "icon-4-9"; + icon_state = "4-9"; + d1 = 4; + d2 = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/engine_smes) +"axX" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8"; + d1 = 4; + d2 = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/corner, +/area/engine/engine_smes) +"axY" = ( +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engine_smes) +"axZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/yellow/corner{ + tag = "icon-yellowcorner (WEST)"; + dir = 8 + }, +/area/engine/engine_smes) +"aya" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0; + tag = "e" + }, +/obj/structure/table, +/obj/item/stack/sheet/mineral/plasma{ + amount = 10; + layer = 2.9 + }, +/obj/item/weapon/wrench, +/turf/open/floor/plasteel, +/area/engine/engine_smes) +"ayb" = ( +/obj/item/trash/raisins, +/turf/open/floor/plating, +/area/maintenance/aft) +"ayc" = ( +/obj/machinery/camera{ + c_tag = "Arrivals Hallway"; + dir = 4; + network = list("SS13") + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (NORTH)"; + dir = 1 + }, +/area/hallway/secondary/entry) +"ayd" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aye" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plasteel/bot, +/area/atmos) +"ayf" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plasteel/bot, +/area/atmos) +"ayg" = ( +/obj/machinery/portable_atmospherics/canister/nitrogen, +/turf/open/floor/plasteel/bot, +/area/atmos) +"ayh" = ( +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/turf/open/floor/plasteel/bot, +/area/atmos) +"ayi" = ( +/turf/closed/wall, +/area/atmos) +"ayj" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/machinery/light_switch{ + pixel_x = -24; + tag = "w" + }, +/turf/open/floor/plasteel, +/area/atmos) +"ayk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 6 + }, +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/atmos) +"ayl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/atmos) +"aym" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/caution{ + tag = "icon-caution (EAST)"; + dir = 4 + }, +/area/atmos) +"ayn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_atmos{ + name = "Distribution Loop"; + req_access_txt = "24" + }, +/turf/open/floor/plasteel/yellow, +/area/atmos) +"ayo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 9 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/caution{ + tag = "icon-caution (WEST)"; + dir = 8 + }, +/area/atmos) +"ayp" = ( +/obj/machinery/atmospherics/pipe/manifold/supplymain/visible{ + dir = 8; + icon_state = "manifold"; + name = "mix pipe"; + tag = "icon-manifold (WEST)" + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/atmos) +"ayq" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/visible{ + dir = 9; + icon_state = "intact"; + name = "mix pipe"; + tag = "icon-intact (NORTHWEST)" + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 6 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/atmos) +"ayr" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + tag = "icon-intact-g (NORTHEAST)"; + dir = 5; + initialize_directions = 12 + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/atmos) +"ays" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Pure to Mix"; + on = 0 + }, +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/green/side{ + tag = "icon-green (SOUTHWEST)"; + dir = 10 + }, +/area/atmos) +"ayt" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Unfiltered & Air to Mix"; + on = 1 + }, +/turf/open/floor/plasteel/green/side{ + tag = "icon-green (SOUTHEAST)"; + dir = 6 + }, +/area/atmos) +"ayu" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4; + initialize_directions = 12 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/atmos) +"ayv" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4; + initialize_directions = 12 + }, +/obj/structure/lattice, +/turf/open/space, +/area/space/nearstation) +"ayw" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/structure/grille, +/turf/closed/wall/r_wall, +/area/atmos) +"ayx" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 8; + frequency = 1441; + id = "mix_in"; + pixel_y = 1 + }, +/turf/open/floor/engine/vacuum, +/area/atmos) +"ayy" = ( +/obj/machinery/camera{ + c_tag = "Atmospherics Tank - Mix"; + dir = 8; + network = list("SS13"); + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/engine/vacuum, +/area/atmos) +"ayz" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"ayA" = ( +/turf/closed/wall/rust, +/area/maintenance/incinerator) +"ayB" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = -32 + }, +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/maintenance/incinerator) +"ayC" = ( +/obj/machinery/door/airlock/engineering{ + icon_state = "closed"; + locked = 0; + name = "Fore Port Solar Access"; + req_access_txt = "10" + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarstarboard) +"ayD" = ( +/obj/effect/landmark{ + name = "Marauder Entry" + }, +/turf/open/space, +/area/space) +"ayE" = ( +/obj/item/weapon/caution, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/asmaint) +"ayF" = ( +/obj/effect/decal/cleanable/blood/tracks{ + tag = "icon-tracks (NORTH)"; + icon_state = "tracks"; + dir = 1 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/asmaint) +"ayG" = ( +/obj/machinery/atmospherics/components/binary/valve, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"ayH" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/item/bodybag, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"ayI" = ( +/obj/structure/table, +/obj/item/weapon/poster/contraband, +/obj/item/weapon/poster/contraband, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"ayJ" = ( +/obj/structure/rack, +/obj/item/weapon/lipstick/jade, +/obj/item/weapon/wirerod, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/obj/item/stack/sheet/cardboard, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"ayK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"ayL" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"ayM" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/item/device/assembly/mousetrap/armed, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating/warnplate/corner{ + dir = 8; + tag = "" + }, +/area/maintenance/asmaint) +"ayN" = ( +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/maintenance/asmaint) +"ayO" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating/warnplate/corner{ + dir = 4; + tag = "" + }, +/area/maintenance/asmaint) +"ayP" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Fore Port Solar Maintenance"; + network = list("SS13") + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/asmaint) +"ayQ" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"ayR" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"ayS" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"ayT" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"ayU" = ( +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/grille/broken, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"ayV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/turf/closed/wall/rust, +/area/medical/virology) +"ayW" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Distro to Virology"; + on = 1 + }, +/turf/open/floor/plating, +/area/medical/virology) +"ayX" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/machinery/meter, +/turf/open/floor/plating, +/area/medical/virology) +"ayY" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4 + }, +/obj/item/weapon/wrench, +/turf/open/floor/plating/warnplate{ + dir = 10 + }, +/area/medical/virology) +"ayZ" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating/warnplate{ + dir = 6 + }, +/area/medical/virology) +"aza" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 1 + }, +/area/medical/virology) +"azb" = ( +/obj/structure/closet/secure_closet/personal/patient, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 4 + }, +/area/medical/virology) +"azc" = ( +/obj/structure/table/glass, +/obj/item/weapon/storage/box/beakers{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/weapon/storage/box/syringes, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 8 + }, +/area/medical/virology) +"azd" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"aze" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 4 + }, +/area/medical/virology) +"azf" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 1 + }, +/area/medical/virology) +"azg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"azh" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (EAST)"; + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"azi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"azj" = ( +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (EAST)"; + dir = 4 + }, +/obj/structure/closet/secure_closet/medical1, +/obj/structure/cable/cyan{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (EAST)"; + dir = 4 + }, +/area/medical/virology) +"azk" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/cyan{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/virology) +"azl" = ( +/obj/structure/lattice, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/space, +/area/space/nearstation) +"azm" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"azn" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"azo" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"azp" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"azq" = ( +/obj/structure/lattice, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/space, +/area/space) +"azr" = ( +/obj/structure/lattice, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/space, +/area/space) +"azs" = ( +/obj/machinery/power/tesla_coil, +/obj/structure/cable/yellow{ + d2 = 2; + icon_state = "0-2" + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"azt" = ( +/obj/machinery/power/grounding_rod{ + anchored = 1 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"azu" = ( +/obj/machinery/power/tesla_coil, +/obj/structure/cable/yellow{ + d2 = 4; + icon_state = "0-4" + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"azv" = ( +/turf/open/floor/plating/warnplate{ + dir = 10 + }, +/area/engine/engineering) +"azw" = ( +/obj/machinery/light/small, +/turf/open/floor/plating/warnplate, +/area/engine/engineering) +"azx" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + icon_state = "4-8"; + d1 = 4; + d2 = 8 + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/space, +/area/space/nearstation) +"azy" = ( +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/engine/engineering) +"azz" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"azA" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"azB" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (EAST)"; + dir = 4 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/corner{ + tag = "icon-warningcorner (WEST)"; + dir = 8 + }, +/area/engine/engineering) +"azC" = ( +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/darkyellow/corner{ + tag = "icon-darkyellowcorners (NORTH)"; + dir = 1 + }, +/area/engine/engine_smes) +"azD" = ( +/obj/structure/cable/yellow{ + d2 = 4; + icon_state = "0-4" + }, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/machinery/power/terminal, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/engine_smes) +"azE" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4"; + d1 = 1; + d2 = 4 + }, +/obj/machinery/door/window{ + dir = 1; + name = "SMES Chamber"; + req_access_txt = "32" + }, +/turf/open/floor/plasteel/black, +/area/engine/engine_smes) +"azF" = ( +/obj/structure/cable/yellow{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/machinery/power/terminal, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/engine_smes) +"azG" = ( +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/darkyellow/corner{ + tag = "icon-darkyellowcorners (EAST)"; + dir = 4 + }, +/area/engine/engine_smes) +"azH" = ( +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/aft) +"azI" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/aft) +"azJ" = ( +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (NORTH)"; + dir = 1 + }, +/area/hallway/secondary/entry) +"azK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (EAST)"; + dir = 4 + }, +/area/hallway/secondary/entry) +"azL" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/bot, +/area/atmos) +"azM" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel, +/area/atmos) +"azN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/atmos) +"azO" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/atmos) +"azP" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/caution/corner{ + tag = "icon-cautioncorner (EAST)"; + dir = 4 + }, +/area/atmos) +"azQ" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/atmos) +"azR" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1; + initialize_directions = 11 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/atmos) +"azS" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supplymain/visible{ + dir = 1; + icon_state = "intact"; + name = "mix pipe"; + tag = "icon-intact (NORTH)" + }, +/turf/open/floor/plating, +/area/atmos) +"azT" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/open/floor/plating, +/area/atmos) +"azU" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/atmos) +"azV" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/atmos) +"azW" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 4; + initialize_directions = 11 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/atmos) +"azX" = ( +/turf/closed/wall, +/area/maintenance/atmos_control) +"azY" = ( +/turf/closed/wall, +/area/maintenance/fore) +"azZ" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aAa" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/fore) +"aAb" = ( +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating/warnplate/corner{ + dir = 8; + tag = "" + }, +/area/maintenance/fore) +"aAc" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/maintenance/fore) +"aAd" = ( +/turf/open/floor/plating/warnplate/corner{ + dir = 4; + tag = "" + }, +/area/maintenance/fore) +"aAe" = ( +/obj/effect/decal/cleanable/blood/tracks{ + tag = "icon-tracks (NORTH)"; + icon_state = "tracks"; + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aAf" = ( +/obj/structure/statue/sandstone/assistant{ + desc = "A cheap statue of sandstone for a greyshirt. Seems oddly... realistic."; + name = "Statue of an Assistant" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aAg" = ( +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_x = -25; + pixel_y = -2; + tag = "WEST" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aAh" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/item/weapon/poster/contraband, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aAi" = ( +/obj/structure/rack, +/obj/item/weapon/dice/d2, +/obj/item/weapon/poster/contraband, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aAj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aAk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aAl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/medical/exam_room) +"aAm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aAn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aAo" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/closed/wall, +/area/medical/medbay) +"aAp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/medical/medbay) +"aAq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/closed/wall, +/area/medical/medbay) +"aAr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/medical/virology) +"aAs" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 8 + }, +/area/medical/virology) +"aAt" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/whitegreen/corner{ + tag = "icon-whitegreencorner"; + dir = 2 + }, +/area/medical/virology) +"aAu" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_virology{ + name = "Isolation A"; + req_access_txt = "39" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"aAv" = ( +/obj/structure/cable/cyan{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 8 + }, +/area/medical/virology) +"aAw" = ( +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"aAx" = ( +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 4 + }, +/area/medical/virology) +"aAy" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 8 + }, +/area/medical/virology) +"aAz" = ( +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"aAA" = ( +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"aAB" = ( +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (EAST)"; + dir = 4 + }, +/obj/structure/closet/l3closet/virology, +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/cyan{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (EAST)"; + dir = 4 + }, +/area/medical/virology) +"aAC" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/cyan{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/medical/virology) +"aAD" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Singularity"; + name = "radiation shutters" + }, +/obj/machinery/button/door{ + id = "Singularity"; + name = "Shutters Control"; + pixel_x = 25; + pixel_y = 0; + req_access_txt = "11" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warning, +/area/engine/engineering) +"aAE" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/yellow/corner{ + tag = "icon-yellowcorner (WEST)"; + dir = 8 + }, +/area/engine/engineering) +"aAF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/aft) +"aAG" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"aAH" = ( +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/camera{ + c_tag = "Engineering SMES Room"; + dir = 4; + network = list("SS13"); + start_active = 1 + }, +/turf/open/floor/plasteel/black, +/area/engine/engine_smes) +"aAI" = ( +/obj/structure/cable/green{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/machinery/power/smes/engineering, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/engine/engine_smes) +"aAJ" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black, +/area/engine/engine_smes) +"aAK" = ( +/obj/structure/cable/green{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/power/smes/engineering, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/engine/engine_smes) +"aAL" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/engine/engine_smes) +"aAM" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"aAN" = ( +/obj/structure/girder, +/obj/item/stack/sheet/metal{ + amount = 2 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"aAO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (NORTH)"; + dir = 1 + }, +/area/hallway/secondary/entry) +"aAP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aAQ" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (WEST)"; + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/loadingarea{ + dir = 8; + tag = "loading" + }, +/area/hallway/secondary/entry) +"aAR" = ( +/obj/structure/plasticflaps/mining, +/obj/machinery/door/poddoor{ + density = 0; + icon_state = "open"; + id = "atmos"; + name = "Atmos Blast Door"; + opacity = 0 + }, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=4"; + dir = 4; + freq = 1400; + location = "Atmospherics" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/atmos) +"aAS" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel/arrival{ + dir = 1 + }, +/area/atmos) +"aAT" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + frequency = 1439; + id_tag = null; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 1 + }, +/area/atmos) +"aAU" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (NORTH)"; + dir = 1 + }, +/area/atmos) +"aAV" = ( +/obj/machinery/requests_console{ + department = "Atmospherics"; + departmentType = 4; + name = "Atmos RC"; + pixel_x = 30; + pixel_y = 0 + }, +/obj/machinery/button/door{ + id = "atmos"; + name = "Atmospherics Lockdown"; + pixel_x = 24; + pixel_y = 24; + req_access_txt = "24" + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Atmospherics Desk"; + dir = 8; + network = list("SS13"); + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plasteel/escape{ + tag = "icon-escape (NORTH)"; + dir = 1 + }, +/area/atmos) +"aAW" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/structure/window/reinforced, +/turf/open/floor/plasteel, +/area/atmos) +"aAX" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plasteel, +/area/atmos) +"aAY" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 0; + name = "Air to Ports"; + on = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aAZ" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 0; + name = "Mix to Ports"; + on = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aBa" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 0; + name = "Pure to Ports"; + on = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aBb" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aBc" = ( +/obj/machinery/atmospherics/pipe/manifold4w/yellow/visible, +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (EAST)"; + dir = 4 + }, +/area/atmos) +"aBd" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "N2O Outlet Pump"; + on = 0 + }, +/turf/open/floor/plasteel/escape{ + dir = 9 + }, +/area/atmos) +"aBe" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/atmos) +"aBf" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/structure/lattice, +/turf/open/space, +/area/space/nearstation) +"aBg" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/structure/grille, +/turf/closed/wall/r_wall, +/area/atmos) +"aBh" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + external_pressure_bound = 0; + frequency = 1441; + id_tag = "n2o_out"; + initialize_directions = 1; + internal_pressure_bound = 4000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine/n2o, +/area/atmos) +"aBi" = ( +/turf/open/floor/engine/n2o, +/area/atmos) +"aBj" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aBk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/atmos_control) +"aBl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aBm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aBn" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aBo" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aBp" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/green{ + tag = "icon-6-8"; + icon_state = "6-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Fore Starboard Solar Maintenance"; + network = list("SS13") + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aBq" = ( +/obj/structure/cable/green{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 1; + name = "Autoname APC North"; + pixel_x = 0; + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aBr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/mob/living/simple_animal/mouse, +/turf/open/floor/plating, +/area/maintenance/fore) +"aBs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aBt" = ( +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fore) +"aBu" = ( +/obj/structure/closet/firecloset/full, +/turf/open/floor/plating, +/area/maintenance/fore) +"aBv" = ( +/obj/structure/chair/stool, +/turf/open/floor/plating, +/area/maintenance/fore) +"aBw" = ( +/obj/structure/table, +/obj/item/wallframe/airalarm, +/turf/open/floor/plating, +/area/maintenance/fore) +"aBx" = ( +/obj/structure/table, +/obj/item/wallframe/airalarm, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aBy" = ( +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aBz" = ( +/obj/structure/grille/broken, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aBA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aBB" = ( +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aBC" = ( +/obj/structure/rack, +/obj/item/weapon/stock_parts/manipulator, +/obj/item/weapon/poster/contraband, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aBD" = ( +/turf/closed/wall, +/area/medical/exam_room) +"aBE" = ( +/obj/structure/table, +/obj/item/weapon/folder/white, +/obj/item/clothing/neck/stethoscope, +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + tag = "icon-whitebluecorner (NORTH)"; + dir = 1 + }, +/area/medical/exam_room) +"aBF" = ( +/obj/structure/chair/office/light{ + dir = 8 + }, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + tag = "icon-whitebluecorner (EAST)"; + dir = 4 + }, +/area/medical/exam_room) +"aBG" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + tag = "icon-whitebluecorner (NORTH)"; + dir = 1 + }, +/area/medical/exam_room) +"aBH" = ( +/obj/structure/table, +/obj/item/weapon/folder/white, +/obj/item/clothing/neck/stethoscope, +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + tag = "icon-whitebluecorner (EAST)"; + dir = 4 + }, +/area/medical/exam_room) +"aBI" = ( +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2); + name = "random metal material damage spawner" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/asmaint) +"aBJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aBK" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Medbay Maintenance"; + req_access_txt = "5" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/medical/medbay) +"aBL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/structure/cable/cyan{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aBM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whitegreen/corner{ + tag = "icon-whitegreencorner"; + dir = 2 + }, +/area/medical/medbay) +"aBN" = ( +/obj/structure/sign/biohazard, +/turf/closed/wall/r_wall, +/area/medical/virology) +"aBO" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/obj/machinery/shower{ + dir = 4 + }, +/turf/open/floor/plasteel/whitegreen/side, +/area/medical/virology) +"aBP" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Virology Access"; + network = list("SS13") + }, +/turf/open/floor/plasteel/whitegreen/side, +/area/medical/virology) +"aBQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/shower{ + dir = 8 + }, +/turf/open/floor/plasteel/whitegreen/side, +/area/medical/virology) +"aBR" = ( +/obj/structure/sign/biohazard, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/medical/virology) +"aBS" = ( +/obj/structure/cable/cyan{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 8 + }, +/area/medical/virology) +"aBT" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"aBU" = ( +/obj/structure/closet/crate/freezer, +/obj/item/weapon/reagent_containers/blood/empty, +/obj/item/weapon/reagent_containers/blood/empty{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/weapon/reagent_containers/blood/AMinus, +/obj/item/weapon/reagent_containers/blood/BMinus{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/weapon/reagent_containers/blood/BPlus{ + pixel_x = 1; + pixel_y = 2 + }, +/obj/item/weapon/reagent_containers/blood/OMinus, +/obj/item/weapon/reagent_containers/blood/OPlus{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/weapon/reagent_containers/blood/random, +/obj/item/weapon/reagent_containers/blood/random, +/obj/item/weapon/reagent_containers/blood/random, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 4 + }, +/area/medical/virology) +"aBV" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/virology{ + name = "Break Room"; + req_access_txt = "39" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"aBW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/medical/virology) +"aBX" = ( +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/glass = 2, /obj/item/stack/sheet/rglass = 1, /obj/item/stack/sheet/metal = 2, /obj/item/stack/sheet/plasteel = 1); + name = "random sheet material spawner" + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"aBY" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"aBZ" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 8; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (WEST)"; + dir = 8 + }, +/area/engine/engineering) +"aCa" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aCb" = ( +/obj/structure/rack, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/clothing/gloves/color/yellow, +/obj/item/weapon/storage/belt/utility, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aCc" = ( +/obj/structure/closet/radiation, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Engineering"; + network = list("SS13") + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aCd" = ( +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/weapon/airlock_painter, +/obj/item/device/pipe_painter, +/turf/open/floor/plasteel/yellow/corner{ + tag = "icon-yellowcorner (EAST)"; + dir = 4 + }, +/area/engine/engineering) +"aCe" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/yellow/corner{ + tag = "icon-yellowcorner (NORTH)"; + dir = 1 + }, +/area/engine/engineering) +"aCf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/maintenance/aft) +"aCg" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/engine/engine_smes) +"aCh" = ( +/obj/structure/cable/yellow{ + d2 = 4; + icon_state = "0-4" + }, +/obj/machinery/power/terminal, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/engine_smes) +"aCi" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4"; + d1 = 1; + d2 = 4 + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel/black, +/area/engine/engine_smes) +"aCj" = ( +/obj/structure/cable/yellow{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/terminal, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/engine_smes) +"aCk" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1 + }, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/black, +/area/engine/engine_smes) +"aCl" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"aCm" = ( +/turf/open/floor/plasteel/darkblue, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (NORTHEAST)"; + dir = 5 + }, +/area/hallway/secondary/entry) +"aCn" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 10; + initialize_directions = 10 + }, +/turf/open/floor/plasteel/neutral/side{ + tag = "icon-neutral (WEST)"; + dir = 8 + }, +/area/hallway/secondary/entry) +"aCo" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aCp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (EAST)"; + dir = 4 + }, +/area/hallway/secondary/entry) +"aCq" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/northleft{ + dir = 4; + icon_state = "left"; + name = "Atmospherics Desk"; + req_access_txt = "24" + }, +/obj/machinery/door/poddoor{ + density = 0; + icon_state = "open"; + id = "atmos"; + name = "Atmos Blast Door"; + opacity = 0 + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7; + tag = "every single paper bin is edited to this" + }, +/obj/item/weapon/pen, +/turf/open/floor/plasteel, +/area/atmos) +"aCr" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/atmos) +"aCs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aCt" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, +/area/atmos) +"aCu" = ( +/obj/machinery/computer/atmos_control, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/caution{ + tag = "icon-caution (NORTHEAST)"; + dir = 5 + }, +/area/atmos) +"aCv" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor{ + density = 0; + icon_state = "open"; + id = "atmos"; + name = "Atmos Blast Door"; + opacity = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/atmos) +"aCw" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aCx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/meter, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/atmos) +"aCy" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/atmos) +"aCz" = ( +/obj/machinery/holopad, +/obj/machinery/light, +/obj/machinery/camera{ + c_tag = "Atmospherics"; + dir = 1; + network = list("SS13") + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = -25; + tag = "SOUTH" + }, +/turf/open/floor/plasteel, +/area/atmos) +"aCA" = ( +/obj/item/device/radio/beacon, +/turf/open/floor/plasteel, +/area/atmos) +"aCB" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aCC" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/atmos) +"aCD" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aCE" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (EAST)"; + dir = 4 + }, +/area/atmos) +"aCF" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/computer/atmos_control/tank{ + frequency = 1441; + input_tag = "n2o_in"; + name = "Nitrous Oxide Supply Control"; + output_tag = "n2o_out"; + sensors = list("n2o_sensor" = "Tank") + }, +/turf/open/floor/plasteel/escape{ + dir = 8 + }, +/area/atmos) +"aCG" = ( +/obj/machinery/air_sensor{ + frequency = 1441; + id_tag = "n2o_sensor" + }, +/turf/open/floor/engine/n2o, +/area/atmos) +"aCH" = ( +/obj/machinery/portable_atmospherics/canister/nitrous_oxide{ + valve_open = 1 + }, +/turf/open/floor/engine/n2o, +/area/atmos) +"aCI" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/engine/n2o, +/area/atmos) +"aCJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aCK" = ( +/turf/closed/wall/rust, +/area/maintenance/atmos_control) +"aCL" = ( +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aCM" = ( +/obj/item/stack/sheet/metal{ + amount = 2 + }, +/obj/structure/girder/displaced, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aCN" = ( +/obj/item/stack/sheet/metal{ + amount = 2 + }, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aCO" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aCP" = ( +/turf/closed/wall/rust, +/area/maintenance/fore) +"aCQ" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aCR" = ( +/obj/structure/cable/green{ + tag = "icon-9-10"; + icon_state = "9-10" + }, +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/maintenance/fore) +"aCS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fore) +"aCT" = ( +/obj/item/stack/cable_coil/yellow, +/turf/open/floor/plating, +/area/maintenance/fore) +"aCU" = ( +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plating, +/area/maintenance/fore) +"aCV" = ( +/turf/open/floor/plating, +/area/maintenance/fore) +"aCW" = ( +/obj/structure/closet/firecloset/full, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aCX" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Firefighting equipment"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aCY" = ( +/turf/open/floor/plasteel/warning/corner{ + dir = 1 + }, +/area/mining_construction) +"aCZ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/mining_construction) +"aDa" = ( +/turf/open/floor/plasteel/warning/corner, +/area/mining_construction) +"aDb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aDc" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/medical, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aDd" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aDe" = ( +/obj/machinery/vending/wallmed, +/turf/closed/wall, +/area/medical/exam_room) +"aDf" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/medical, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aDg" = ( +/turf/closed/wall, +/area/medical/cmo) +"aDh" = ( +/obj/structure/cable/cyan{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/cable/cyan{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/medbay) +"aDi" = ( +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 4 + }, +/area/medical/medbay) +"aDj" = ( +/obj/machinery/doorButtons/access_button{ + idDoor = "virology_airlock_exterior"; + idSelf = "virology_airlock_control"; + name = "Virology Access Button"; + pixel_x = -1; + pixel_y = -24; + req_access_txt = "39" + }, +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/virology{ + autoclose = 0; + frequency = 1449; + icon_state = "closed"; + id_tag = "virology_airlock_exterior"; + locked = 1; + name = "Virology Exterior Airlock"; + req_access_txt = "39" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitegreen, +/area/medical/virology) +"aDk" = ( +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/whitegreen, +/area/medical/virology) +"aDl" = ( +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/whitegreen, +/area/medical/virology) +"aDm" = ( +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/whitegreen, +/area/medical/virology) +"aDn" = ( +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/virology{ + autoclose = 0; + frequency = 1449; + icon_state = "closed"; + id_tag = "virology_airlock_interior"; + locked = 1; + name = "Virology Interior Airlock"; + req_access_txt = "39" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitegreen, +/area/medical/virology) +"aDo" = ( +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (WEST)"; + dir = 8 + }, +/area/medical/virology) +"aDp" = ( +/obj/structure/cable/cyan{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"aDq" = ( +/obj/structure/cable/cyan{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 8 + }, +/area/medical/virology) +"aDr" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"aDs" = ( +/obj/machinery/iv_drip, +/obj/machinery/requests_console{ + department = "Virology"; + name = "Virology Requests Console"; + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 4 + }, +/area/medical/virology) +"aDt" = ( +/obj/structure/table, +/obj/machinery/microwave{ + pixel_x = -3; + pixel_y = 6 + }, +/turf/open/floor/plasteel/whitegreen/corner{ + tag = "icon-whitegreencorner (NORTH)"; + dir = 1 + }, +/area/medical/virology) +"aDu" = ( +/turf/open/floor/plating/warnplate{ + dir = 10 + }, +/area/shuttle/auxillary_base) +"aDv" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"aDw" = ( +/obj/structure/closet/wardrobe/virology_white, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_x = 26; + pixel_y = -2; + tag = "EAST" + }, +/turf/open/floor/plasteel/whitegreen/corner{ + tag = "icon-whitegreencorner (EAST)"; + dir = 4 + }, +/area/medical/virology) +"aDx" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"aDy" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 8; + tag = "" + }, +/obj/structure/cable/yellow{ + icon_state = "4-8"; + d1 = 4; + d2 = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (WEST)"; + dir = 8 + }, +/area/engine/engineering) +"aDz" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + icon_state = "4-8"; + d1 = 4; + d2 = 8 + }, +/turf/open/space, +/area/space/nearstation) +"aDA" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8"; + d1 = 4; + d2 = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aDB" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aDC" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aDD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light_switch{ + pixel_x = 24; + tag = "e" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aDE" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"aDF" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/black, +/area/engine/engine_smes) +"aDG" = ( +/obj/structure/cable/green{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/machinery/power/smes/engineering, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/engine/engine_smes) +"aDH" = ( +/turf/open/floor/plasteel/black, +/area/engine/engine_smes) +"aDI" = ( +/obj/structure/cable/green{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/power/smes/engineering, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/engine/engine_smes) +"aDJ" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/black, +/area/engine/engine_smes) +"aDK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"aDL" = ( +/obj/structure/rack, +/obj/item/weapon/stock_parts/micro_laser, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/power/apc{ + aidisabled = 0; + auto_name = 1; + cell_type = 2500; + dir = 4; + name = "Autoname APC East"; + pixel_x = 24; + pixel_y = 0 + }, +/obj/structure/cable/green{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"aDM" = ( +/turf/open/floor/plasteel/darkblue, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (SOUTHEAST)"; + dir = 6 + }, +/area/hallway/secondary/entry) +"aDN" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible, +/obj/machinery/meter, +/turf/open/floor/plasteel/neutral/side{ + tag = "icon-neutral (WEST)"; + dir = 8 + }, +/area/hallway/secondary/entry) +"aDO" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aDP" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (EAST)"; + dir = 4 + }, +/area/hallway/secondary/entry) +"aDQ" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor{ + density = 0; + icon_state = "open"; + id = "atmos"; + name = "Atmos Blast Door"; + opacity = 0 + }, +/turf/open/floor/plating, +/area/atmos) +"aDR" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/structure/table, +/obj/item/weapon/tank/internals/emergency_oxygen{ + pixel_x = -8; + pixel_y = 0 + }, +/obj/item/weapon/tank/internals/emergency_oxygen{ + pixel_x = -8; + pixel_y = 0 + }, +/obj/item/clothing/mask/breath{ + pixel_x = 4; + pixel_y = 0 + }, +/obj/item/clothing/mask/breath{ + pixel_x = 4; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/atmos) +"aDS" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aDT" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Atmospheric Technician" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1; + initialize_directions = 11 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aDU" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/computer/atmos_control, +/turf/open/floor/plasteel/caution{ + tag = "icon-caution (EAST)"; + dir = 4 + }, +/area/atmos) +"aDV" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Air to External Air Ports"; + on = 1 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aDW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/atmos) +"aDX" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 9 + }, +/turf/open/floor/plating, +/area/atmos) +"aDY" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/atmos) +"aDZ" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 0; + name = "Port Mix to Filling Ports"; + on = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aEa" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 0; + name = "Port Mix to Temperature Ports"; + on = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aEb" = ( +/obj/machinery/atmospherics/components/trinary/filter{ + dir = 1; + filter_type = "n2o"; + on = 1 + }, +/turf/open/floor/plasteel/escape{ + dir = 10 + }, +/area/atmos) +"aEc" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 8; + frequency = 1441; + id = "n2o_in"; + pixel_y = 1 + }, +/turf/open/floor/engine/n2o, +/area/atmos) +"aEd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aEe" = ( +/turf/closed/wall/mineral/wood, +/area/maintenance/atmos_control) +"aEf" = ( +/obj/structure/girder/displaced, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aEg" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/structure/cable/green{ + tag = "icon-2-5"; + icon_state = "2-5" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aEh" = ( +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/fore) +"aEi" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fore) +"aEj" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/maintenance/fore) +"aEk" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Firefighting equipment"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aEl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/closet/wardrobe/white, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aEm" = ( +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aEn" = ( +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aEo" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (EAST)"; + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aEp" = ( +/obj/structure/closet/secure_closet/personal/patient, +/obj/machinery/button/door{ + id = "medpriv1"; + name = "Privacy Shutters"; + pixel_x = -24; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whiteblue/corner{ + tag = "icon-whitebluecorner (WEST)"; + dir = 8 + }, +/area/medical/exam_room) +"aEq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/exam_room) +"aEr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whiteblue/corner{ + tag = "icon-whitebluecorner (WEST)"; + dir = 8 + }, +/area/medical/exam_room) +"aEs" = ( +/obj/structure/closet/secure_closet/personal/patient, +/obj/machinery/button/door{ + id = "medpriv2"; + name = "Privacy Shutters"; + pixel_x = 24; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/exam_room) +"aEt" = ( +/obj/structure/closet/secure_closet/CMO, +/obj/item/weapon/bedsheet/cmo, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_x = -25; + pixel_y = -2; + tag = "WEST" + }, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo) +"aEu" = ( +/obj/machinery/computer/med_data, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Chief Medical Officer's Desk"; + departmentType = 5; + name = "Chief Medical Officer RC"; + pixel_x = 0; + pixel_y = 30 + }, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo) +"aEv" = ( +/obj/machinery/computer/crew, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Chief Medical Officer's Office"; + network = list("SS13"); + start_active = 1 + }, +/obj/machinery/button/door{ + id = "cmoprivacy"; + name = "Privacy Shutters Control"; + pixel_x = 5; + pixel_y = 24 + }, +/obj/machinery/keycard_auth{ + pixel_x = -6; + pixel_y = 24 + }, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo) +"aEw" = ( +/obj/machinery/computer/card/minor/cmo, +/obj/machinery/status_display{ + density = 0; + layer = 3; + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo) +"aEx" = ( +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/obj/machinery/suit_storage_unit/cmo, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo) +"aEy" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "cmoprivacy"; + name = "privacy shutter" + }, +/turf/open/floor/plating, +/area/medical/cmo) +"aEz" = ( +/obj/structure/cable/cyan{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/medbay) +"aEA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/whitegreen/corner{ + dir = 4 + }, +/area/medical/medbay) +"aEB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (NORTH)"; + dir = 1 + }, +/area/medical/virology) +"aEC" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/closet/l3closet, +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (NORTH)"; + dir = 1 + }, +/area/medical/virology) +"aED" = ( +/obj/machinery/doorButtons/access_button{ + idDoor = "virology_airlock_interior"; + idSelf = "virology_airlock_control"; + name = "Virology Access Button"; + pixel_x = 31; + pixel_y = 8; + req_access_txt = "39" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/structure/closet/l3closet, +/turf/open/floor/plasteel/whitegreen/side{ + tag = "icon-whitegreen (NORTH)"; + dir = 1 + }, +/area/medical/virology) +"aEE" = ( +/obj/machinery/doorButtons/airlock_controller{ + idExterior = "virology_airlock_exterior"; + idInterior = "virology_airlock_interior"; + idSelf = "virology_airlock_control"; + name = "Virology Access Console"; + pixel_x = -22; + pixel_y = 0; + req_access_txt = "39" + }, +/obj/structure/sink{ + icon_state = "sink"; + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/turf/open/floor/plasteel/whitegreen/corner{ + tag = "icon-whitegreencorner (NORTH)"; + dir = 1 + }, +/area/medical/virology) +"aEF" = ( +/obj/structure/cable/cyan, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 2; + name = "Autoname APC South"; + pixel_x = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"aEG" = ( +/obj/structure/table, +/obj/item/device/radio/headset/headset_med, +/obj/item/stack/sheet/mineral/plasma{ + amount = 3; + layer = 2.9 + }, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 10 + }, +/area/medical/virology) +"aEH" = ( +/obj/structure/table, +/obj/item/weapon/hand_labeler, +/obj/machinery/light, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 2 + }, +/area/medical/virology) +"aEI" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7; + tag = "every single paper bin is edited to this" + }, +/obj/item/weapon/pen/red, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 6 + }, +/area/medical/virology) +"aEJ" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder, +/obj/machinery/newscaster{ + pixel_x = -30 + }, +/turf/open/floor/plasteel/whitegreen/corner{ + tag = "icon-whitegreencorner (WEST)"; + dir = 8 + }, +/area/medical/virology) +"aEK" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/donkpockets{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"aEL" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/machinery/camera{ + c_tag = "Virology Break Room"; + dir = 1; + network = list("SS13") + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"aEM" = ( +/obj/item/weapon/bedsheet, +/obj/structure/bed, +/obj/machinery/light_switch{ + pixel_x = 24; + tag = "e" + }, +/turf/open/floor/plasteel/whitegreen/corner, +/area/medical/virology) +"aEN" = ( +/obj/structure/closet, +/obj/item/bodybag, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/stack/sheet/cardboard{ + amount = 14 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aEO" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 8; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (WEST)"; + dir = 8 + }, +/area/engine/engineering) +"aEP" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + icon_state = "4-8"; + d1 = 4; + d2 = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "1-4"; + d1 = 1; + d2 = 4 + }, +/turf/open/space, +/area/space/nearstation) +"aEQ" = ( +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aER" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/corner, +/area/engine/engineering) +"aES" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/corner{ + tag = "icon-yellowcorner (WEST)"; + dir = 8 + }, +/area/engine/engineering) +"aET" = ( +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aEU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aEV" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"aEW" = ( +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/darkyellow/corner{ + tag = "icon-darkyellowcorners (WEST)"; + dir = 8 + }, +/area/engine/engine_smes) +"aEX" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/black, +/area/engine/engine_smes) +"aEY" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/light, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 2; + name = "Autoname APC South"; + pixel_x = 1; + pixel_y = -24 + }, +/obj/structure/cable/green{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/turf/open/floor/plasteel/black, +/area/engine/engine_smes) +"aEZ" = ( +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/darkyellow/corner, +/area/engine/engine_smes) +"aFa" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"aFb" = ( +/obj/structure/rack, +/obj/item/stack/sheet/metal{ + amount = 2 + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/aft) +"aFc" = ( +/turf/open/floor/plasteel/darkred, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (NORTHEAST)"; + dir = 5 + }, +/area/hallway/secondary/entry) +"aFd" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 1 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel/neutral/side{ + tag = "icon-neutral (WEST)"; + dir = 8 + }, +/area/hallway/secondary/entry) +"aFe" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aFf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (EAST)"; + dir = 4 + }, +/area/hallway/secondary/entry) +"aFg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor{ + density = 0; + icon_state = "open"; + id = "atmos"; + name = "Atmos Blast Door"; + opacity = 0 + }, +/turf/open/floor/plating, +/area/atmos) +"aFh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/structure/table, +/obj/item/weapon/storage/box, +/obj/item/weapon/storage/box, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/atmos) +"aFi" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aFj" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aFk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/computer/atmos_alert, +/turf/open/floor/plasteel/caution{ + tag = "icon-caution (EAST)"; + dir = 4 + }, +/area/atmos) +"aFl" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "External Waste Ports to Filter"; + on = 1 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aFm" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/atmos) +"aFn" = ( +/obj/structure/closet/secure_closet/atmospherics, +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (NORTHWEST)"; + dir = 9 + }, +/area/atmos) +"aFo" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/plasteel/bot{ + dir = 1 + }, +/area/atmos) +"aFp" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/turf/open/floor/plasteel/bot{ + dir = 1 + }, +/area/atmos) +"aFq" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/atmos) +"aFr" = ( +/obj/item/trash/popcorn, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aFs" = ( +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/wood{ + broken = 1; + icon_state = "wood-broken"; + tag = "icon-wood-broken" + }, +/area/maintenance/atmos_control) +"aFt" = ( +/obj/structure/chair/comfy/black, +/turf/open/floor/wood, +/area/maintenance/atmos_control) +"aFu" = ( +/obj/structure/chair/comfy/beige, +/turf/open/floor/wood, +/area/maintenance/atmos_control) +"aFv" = ( +/turf/open/floor/wood{ + broken = 1; + icon_state = "wood-broken5"; + tag = "icon-wood-broken5" + }, +/area/maintenance/atmos_control) +"aFw" = ( +/turf/open/floor/wood{ + broken = 1; + icon_state = "wood-broken6"; + tag = "icon-wood-broken6" + }, +/area/maintenance/atmos_control) +"aFx" = ( +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/atmos_control) +"aFy" = ( +/obj/structure/falsewall, +/obj/structure/cable/green{ + tag = "icon-1-6"; + icon_state = "1-6" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aFz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aFA" = ( +/obj/structure/rack, +/obj/item/weapon/reagent_containers/food/snacks/candy, +/obj/item/weapon/poster/contraband, +/turf/open/floor/plating, +/area/maintenance/fore) +"aFB" = ( +/turf/closed/wall/r_wall, +/area/maintenance/fore) +"aFC" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/tinted/fulltile, +/turf/open/floor/plating, +/area/maintenance/fore) +"aFD" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aFE" = ( +/turf/closed/wall/r_wall, +/area/medical/exam_room) +"aFF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/medical/exam_room) +"aFG" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Medbay Maintenance"; + req_access_txt = "5" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/medical/exam_room) +"aFH" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/poddoor/preopen{ + id = "medpriv1"; + name = "privacy shutter" + }, +/turf/open/floor/plating, +/area/medical/exam_room) +"aFI" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/medical{ + name = "Patient Room A"; + req_access_txt = "5" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aFJ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/medical{ + name = "Patient Room B"; + req_access_txt = "5" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aFK" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/poddoor/preopen{ + id = "medpriv2"; + name = "privacy shutter" + }, +/turf/open/floor/plating, +/area/medical/exam_room) +"aFL" = ( +/obj/structure/cable/cyan{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 8; + name = "Autoname APC West"; + pixel_x = -25; + pixel_y = 0 + }, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo) +"aFM" = ( +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo) +"aFN" = ( +/obj/structure/chair/office/light, +/obj/structure/cable/cyan{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/effect/landmark/start{ + name = "Chief Medical Officer" + }, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo) +"aFO" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo) +"aFP" = ( +/turf/open/floor/plasteel/cmo, +/area/medical/cmo) +"aFQ" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/camera{ + c_tag = "Medbay Northeast"; + dir = 8; + network = list("SS13"); + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aFR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/item/weapon/reagent_containers/glass/bucket, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aFS" = ( +/obj/machinery/power/tesla_coil, +/obj/structure/cable/yellow{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"aFT" = ( +/obj/structure/girder/reinforced, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"aFU" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/space, +/area/space/nearstation) +"aFV" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/engine/engineering) +"aFW" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 8; + tag = "" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (WEST)"; + dir = 8 + }, +/area/engine/engineering) +"aFX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aFY" = ( +/turf/open/floor/plasteel/yellow/corner{ + tag = "icon-yellowcorner (EAST)"; + dir = 4 + }, +/area/engine/engineering) +"aFZ" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/checkpoint/engineering) +"aGa" = ( +/turf/closed/wall/r_wall, +/area/security/checkpoint/engineering) +"aGb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/security/checkpoint/engineering) +"aGc" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"aGd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/engine/engine_smes) +"aGe" = ( +/obj/structure/grille/broken, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"aGf" = ( +/obj/structure/girder/displaced, +/turf/open/floor/plating, +/area/maintenance/aft) +"aGg" = ( +/turf/open/floor/plasteel/darkred, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (SOUTHEAST)"; + dir = 6 + }, +/area/hallway/secondary/entry) +"aGh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 9 + }, +/turf/open/floor/plasteel/neutral/side{ + tag = "icon-neutral (WEST)"; + dir = 8 + }, +/area/hallway/secondary/entry) +"aGi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aGj" = ( +/obj/structure/sign/atmosplaque{ + pixel_x = 0; + pixel_y = -32 + }, +/obj/machinery/disposal/bin, +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aGk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aGl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/atmos) +"aGm" = ( +/obj/machinery/computer/station_alert, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/caution{ + tag = "icon-caution (SOUTHEAST)"; + dir = 6 + }, +/area/atmos) +"aGn" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor{ + density = 0; + icon_state = "open"; + id = "atmos"; + name = "Atmos Blast Door"; + opacity = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/atmos) +"aGo" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + frequency = 1439; + id_tag = null; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aGp" = ( +/obj/machinery/suit_storage_unit/atmos, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/atmos) +"aGq" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/atmos) +"aGr" = ( +/obj/effect/landmark/start{ + name = "Atmospheric Technician" + }, +/obj/structure/chair/stool, +/turf/open/floor/plasteel, +/area/atmos) +"aGs" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/atmos) +"aGt" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 8 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (EAST)"; + dir = 4 + }, +/area/atmos) +"aGu" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Plasma Outlet Pump"; + on = 0 + }, +/turf/open/floor/plasteel/purple/side{ + tag = "icon-purple (NORTHWEST)"; + dir = 9 + }, +/area/atmos) +"aGv" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + external_pressure_bound = 0; + frequency = 1441; + id_tag = "tox_out"; + initialize_directions = 1; + internal_pressure_bound = 4000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine/plasma, +/area/atmos) +"aGw" = ( +/turf/open/floor/engine/plasma, +/area/atmos) +"aGx" = ( +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/engine/plasma, +/area/atmos) +"aGy" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aGz" = ( +/obj/structure/chair/comfy/beige{ + dir = 4 + }, +/turf/open/floor/wood, +/area/maintenance/atmos_control) +"aGA" = ( +/obj/structure/table/wood/poker, +/turf/open/floor/carpet, +/area/maintenance/atmos_control) +"aGB" = ( +/obj/structure/table/wood/poker, +/obj/item/toy/cards/deck{ + pixel_x = 2 + }, +/turf/open/floor/carpet, +/area/maintenance/atmos_control) +"aGC" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/turf/open/floor/wood, +/area/maintenance/atmos_control) +"aGD" = ( +/turf/open/floor/wood, +/area/maintenance/atmos_control) +"aGE" = ( +/obj/item/weapon/paper/crumpled{ + info = "The second is surrounded by the bustle of crates..." + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"aGF" = ( +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"aGG" = ( +/obj/structure/barricade/wooden, +/turf/open/floor/plating, +/area/maintenance/fore) +"aGH" = ( +/obj/structure/cable/green{ + tag = "icon-6-9"; + icon_state = "6-9" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aGI" = ( +/obj/machinery/computer/station_alert, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = 20; + tag = "NORTH" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aGJ" = ( +/obj/machinery/vending/tool, +/turf/open/floor/plating, +/area/maintenance/fore) +"aGK" = ( +/obj/structure/table, +/obj/item/weapon/relic, +/obj/item/weapon/reagent_containers/food/snacks/cheesiehonkers, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fore) +"aGL" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/maintenance/fore) +"aGM" = ( +/obj/structure/rack, +/obj/item/stack/sheet/metal{ + amount = 2 + }, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aGN" = ( +/obj/item/weapon/restraints/handcuffs/cable/zipties/used, +/turf/open/floor/plating, +/area/maintenance/fore) +"aGO" = ( +/obj/structure/closet, +/obj/item/clothing/suit/toggle/owlwings/griffinwings, +/obj/item/clothing/shoes/griffin, +/obj/item/clothing/mask/gas/sechailer, +/obj/item/clothing/head/griffin, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/under/griffin, +/turf/open/floor/plating, +/area/maintenance/fore) +"aGP" = ( +/obj/structure/closet/l3closet, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aGQ" = ( +/obj/structure/closet/wardrobe/white/medical, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aGR" = ( +/obj/structure/closet/secure_closet/medical3, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = 20; + tag = "NORTH" + }, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aGS" = ( +/obj/structure/closet/secure_closet/medical3, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Medbay Storage"; + network = list("SS13") + }, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aGT" = ( +/obj/structure/sink{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aGU" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/bodybags{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/rxglasses, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aGV" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 2 + }, +/area/medical/exam_room) +"aGW" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 8 + }, +/area/medical/exam_room) +"aGX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-y"; + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aGY" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Medbay Northwest"; + network = list("SS13") + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aGZ" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aHa" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aHb" = ( +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aHc" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 + }, +/area/medical/exam_room) +"aHd" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/poddoor/preopen{ + id = "cmoprivacy"; + name = "privacy shutter" + }, +/turf/open/floor/plating, +/area/medical/cmo) +"aHe" = ( +/obj/structure/table/glass, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/clothing/neck/stethoscope, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo) +"aHf" = ( +/obj/structure/table/glass, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/item/weapon/folder/white, +/obj/item/weapon/stamp/cmo, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo) +"aHg" = ( +/obj/structure/table/glass, +/obj/structure/cable/cyan{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/clothing/glasses/hud/health, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo) +"aHh" = ( +/obj/structure/table/glass, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7; + tag = "every single paper bin is edited to this" + }, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo) +"aHi" = ( +/obj/machinery/door/window/northright{ + name = "Chief Medical Officer's Desk Door"; + req_access_txt = "40" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/cmo, +/area/medical/cmo) +"aHj" = ( +/obj/structure/cable/cyan{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/medbay) +"aHk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aHl" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aHm" = ( +/obj/structure/bed/roller, +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (EAST)"; + dir = 4 + }, +/area/medical/medbay) +"aHn" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/medical/genetics) +"aHo" = ( +/mob/living/carbon/monkey, +/turf/open/floor/plasteel, +/area/medical/genetics) +"aHp" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/mob/living/carbon/monkey, +/turf/open/floor/plasteel, +/area/medical/genetics) +"aHq" = ( +/turf/open/floor/plasteel/purple/corner, +/area/medical/genetics) +"aHr" = ( +/obj/machinery/dna_scannernew, +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (NORTHWEST)"; + dir = 9 + }, +/area/medical/genetics) +"aHs" = ( +/obj/machinery/computer/scan_consolenew, +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (NORTH)"; + dir = 1 + }, +/area/medical/genetics) +"aHt" = ( +/obj/structure/table/glass, +/obj/machinery/requests_console{ + department = "Genetics"; + departmentType = 0; + name = "Genetics RC"; + pixel_x = 0; + pixel_y = 30 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (NORTH)"; + dir = 1 + }, +/area/medical/genetics) +"aHu" = ( +/obj/machinery/dna_scannernew, +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (NORTHEAST)"; + dir = 5 + }, +/area/medical/genetics) +"aHv" = ( +/turf/closed/wall/r_wall, +/area/medical/genetics) +"aHw" = ( +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aHx" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aHy" = ( +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aHz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aHA" = ( +/obj/structure/cable/green{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/turf/open/floor/plating/airless/warnplate{ + dir = 1 + }, +/area/engine/engineering) +"aHB" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/yellow{ + tag = "icon-4-10"; + icon_state = "4-10"; + d1 = 4; + d2 = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/engineering) +"aHC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aHD" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7; + tag = "every single paper bin is edited to this" + }, +/obj/item/weapon/pen, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aHE" = ( +/turf/open/floor/plasteel/red/corner, +/area/engine/engineering) +"aHF" = ( +/obj/structure/table, +/obj/item/device/radio/off, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTHWEST)"; + dir = 9 + }, +/area/security/checkpoint/engineering) +"aHG" = ( +/obj/structure/table, +/obj/machinery/recharger, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTH)"; + dir = 1 + }, +/area/security/checkpoint/engineering) +"aHH" = ( +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/obj/structure/table, +/obj/machinery/requests_console{ + department = "Security"; + departmentType = 5; + name = "Engineering Post RC"; + pixel_x = 30; + pixel_y = 0 + }, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7; + tag = "every single paper bin is edited to this" + }, +/obj/item/weapon/pen, +/obj/machinery/camera{ + c_tag = "Engineering Security Post"; + network = list("SS13") + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTHEAST)"; + dir = 5 + }, +/area/security/checkpoint/engineering) +"aHI" = ( +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"aHJ" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"aHK" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/aft) +"aHL" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"aHM" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"aHN" = ( +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"aHO" = ( +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + dir = 5 + }, +/area/hallway/secondary/entry) +"aHP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/neutral/side{ + tag = "icon-neutral (WEST)"; + dir = 8 + }, +/area/hallway/secondary/entry) +"aHQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aHR" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/caution/corner{ + tag = "icon-cautioncorner"; + dir = 2 + }, +/area/hallway/secondary/entry) +"aHS" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plating, +/area/atmos) +"aHT" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_atmos{ + name = "Atmospherics Monitoring"; + req_access_txt = "24" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/yellow, +/area/atmos) +"aHU" = ( +/obj/structure/fireaxecabinet{ + pixel_x = -32; + pixel_y = 0 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aHV" = ( +/obj/structure/closet/secure_closet/atmospherics, +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (SOUTHWEST)"; + dir = 10 + }, +/area/atmos) +"aHW" = ( +/obj/item/weapon/wrench, +/turf/open/floor/plasteel, +/area/atmos) +"aHX" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/computer/atmos_control/tank{ + frequency = 1441; + input_tag = "tox_in"; + name = "Plasma Supply Control"; + output_tag = "tox_out"; + sensors = list("tox_sensor" = "Tank") + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Atmospherics East"; + dir = 8; + network = list("SS13"); + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plasteel/purple/side{ + tag = "icon-purple (WEST)"; + dir = 8 + }, +/area/atmos) +"aHY" = ( +/obj/machinery/air_sensor{ + frequency = 1441; + id_tag = "tox_sensor" + }, +/turf/open/floor/engine/plasma, +/area/atmos) +"aHZ" = ( +/obj/machinery/portable_atmospherics/canister/toxins, +/turf/open/floor/engine/plasma, +/area/atmos) +"aIa" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/engine/plasma, +/area/atmos) +"aIb" = ( +/obj/structure/girder, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aIc" = ( +/obj/structure/chair/comfy/beige{ + dir = 4 + }, +/obj/machinery/light/built{ + tag = "icon-tube1 (WEST)"; + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/wood{ + broken = 1; + icon_state = "wood-broken5"; + tag = "icon-wood-broken5" + }, +/area/maintenance/atmos_control) +"aId" = ( +/obj/structure/table/wood/poker, +/obj/item/weapon/coin/silver, +/turf/open/floor/carpet, +/area/maintenance/atmos_control) +"aIe" = ( +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/turf/open/floor/wood, +/area/maintenance/atmos_control) +"aIf" = ( +/turf/open/floor/wood{ + broken = 1; + icon_state = "wood-broken7"; + tag = "icon-wood-broken7" + }, +/area/maintenance/atmos_control) +"aIg" = ( +/obj/structure/mineral_door/wood, +/turf/open/floor/wood{ + broken = 1; + icon_state = "wood-broken"; + tag = "icon-wood-broken" + }, +/area/maintenance/atmos_control) +"aIh" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aIi" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aIj" = ( +/turf/open/floor/plating/airless, +/obj/item/weapon/dice/d8{ + desc = "A die with eight sides. It feels.... incredibly lucky. The one is slightly darker than the other numbers."; + tag = "one" + }, +/turf/open/floor/plating/airless{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/space/nearstation) +"aIk" = ( +/obj/item/weapon/toolbox_tiles_sensor, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"aIl" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fore) +"aIm" = ( +/obj/machinery/vending/sustenance{ + desc = "A Nutrivend-brand vending machine which vends nutritious food. If it can be called that, at least."; + name = "\improper Nutri-vend"; + product_ads = "Sufficiently healthy.;Efficiently produced tofu!;Mmm! So good!;Have a meal.;You need food to live!;Try our new ice cups!"; + products = list(/obj/item/weapon/reagent_containers/food/snacks/tofu = 50, /obj/item/weapon/reagent_containers/food/drinks/ice = 50) + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aIn" = ( +/obj/structure/cable/green{ + tag = "icon-2-9"; + icon_state = "2-9" + }, +/obj/structure/chair/office/dark, +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aIo" = ( +/obj/structure/rack, +/obj/item/bodypart/l_arm/robot, +/obj/item/stack/sheet/metal{ + amount = 2 + }, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aIp" = ( +/obj/structure/closet/cardboard, +/turf/open/floor/plating, +/area/maintenance/fore) +"aIq" = ( +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aIr" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aIs" = ( +/obj/structure/table, +/obj/item/weapon/grenade/smokebomb, +/obj/item/weapon/grenade/smokebomb, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/item/weapon/pneumatic_cannon/ghetto{ + desc = "A gas-powered, object-firing cannon. Seems kind of dirty."; + name = "pneumatic cannon" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aIt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/asmaint) +"aIu" = ( +/obj/structure/table, +/obj/item/weapon/storage/belt/medical{ + pixel_x = 0; + pixel_y = 2 + }, +/obj/item/weapon/storage/belt/medical{ + pixel_x = 0; + pixel_y = 2 + }, +/obj/item/weapon/storage/belt/medical{ + pixel_x = 0; + pixel_y = 2 + }, +/obj/item/clothing/neck/stethoscope, +/obj/machinery/requests_console{ + announcementConsole = 0; + department = "Medbay"; + departmentType = 1; + name = "Medbay RC"; + pixel_x = -30; + pixel_y = 0; + pixel_z = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aIv" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aIw" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aIx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aIy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aIz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 4 + }, +/area/medical/exam_room) +"aIA" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_medical{ + id_tag = null; + name = "Medbay Storage"; + req_access_txt = "45" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue, +/area/medical/exam_room) +"aIB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 8 + }, +/area/medical/exam_room) +"aIC" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"aID" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aIE" = ( +/obj/structure/cable/cyan{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aIF" = ( +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aIG" = ( +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aIH" = ( +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 + }, +/area/medical/exam_room) +"aII" = ( +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_command{ + glass = 0; + name = "Chief Medical Officer"; + opacity = 1; + req_access_txt = "40" + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/cmo) +"aIJ" = ( +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/cmo) +"aIK" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/structure/cable/cyan{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/cmo) +"aIL" = ( +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/cmo) +"aIM" = ( +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/cmo) +"aIN" = ( +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/glass_command{ + glass = 0; + name = "Chief Medical Officer"; + opacity = 1; + req_access_txt = "40" + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/cmo) +"aIO" = ( +/obj/structure/cable/cyan{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/cyan{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/sortjunction{ + sortType = 10 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/medbay) +"aIP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aIQ" = ( +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aIR" = ( +/turf/open/floor/plasteel, +/area/medical/genetics) +"aIS" = ( +/mob/living/carbon/monkey, +/turf/open/floor/plasteel/purple/side{ + tag = "icon-purple (EAST)"; + dir = 4 + }, +/area/medical/genetics) +"aIT" = ( +/obj/machinery/door/window/westleft{ + name = "Monkey Pen"; + req_access_txt = "9" + }, +/turf/open/floor/plasteel/purple, +/area/medical/genetics) +"aIU" = ( +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (WEST)"; + dir = 8 + }, +/area/medical/genetics) +"aIV" = ( +/obj/structure/chair/office/light{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aIW" = ( +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aIX" = ( +/obj/structure/chair/office/light{ + dir = 1 + }, +/obj/effect/landmark/start{ + name = "Geneticist" + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aIY" = ( +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (EAST)"; + dir = 4 + }, +/area/medical/genetics) +"aIZ" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aJa" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/closed/wall, +/area/maintenance/asmaint) +"aJb" = ( +/turf/closed/wall, +/area/maintenance/port) +"aJc" = ( +/obj/item/stack/cable_coil/green, +/turf/open/floor/plating, +/area/engine/engineering) +"aJd" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/space, +/area/space/nearstation) +"aJe" = ( +/obj/machinery/the_singularitygen/tesla{ + anchored = 1 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"aJf" = ( +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/item/weapon/screwdriver, +/turf/open/floor/plating, +/area/engine/engineering) +"aJg" = ( +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4"; + d1 = 1; + d2 = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the singularity chamber."; + dir = 4; + layer = 4; + name = "Engine Containment Telescreen"; + network = list("Singularity"); + pixel_x = -30; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aJh" = ( +/obj/machinery/camera/emp_proof{ + c_tag = "Particle Accelerator"; + dir = 1; + network = list("Singularity") + }, +/obj/item/weapon/wirecutters, +/turf/open/floor/plating/warnplate/corner{ + dir = 1; + tag = "" + }, +/area/engine/engineering) +"aJi" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/space, +/area/space/nearstation) +"aJj" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + icon_state = "4-8"; + d1 = 4; + d2 = 8 + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/space, +/area/space/nearstation) +"aJk" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (EAST)"; + dir = 4 + }, +/area/engine/engineering) +"aJl" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_security{ + name = "Security Office"; + req_access_txt = "63" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkred, +/area/security/checkpoint/engineering) +"aJm" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (WEST)"; + dir = 8 + }, +/area/security/checkpoint/engineering) +"aJn" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/effect/landmark/start/depsec/engineering, +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + frequency = 1439; + id_tag = null; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/security/checkpoint/engineering) +"aJo" = ( +/obj/machinery/computer/secure_data, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + aidisabled = 0; + auto_name = 1; + cell_type = 2500; + dir = 4; + name = "Autoname APC East"; + pixel_x = 24; + pixel_y = 0 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/light_switch{ + pixel_x = 24; + pixel_y = 11; + tag = "e" + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (EAST)"; + dir = 4 + }, +/area/security/checkpoint/engineering) +"aJp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/closed/wall, +/area/maintenance/aft) +"aJq" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"aJr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/turf/closed/wall/rust, +/area/maintenance/aft) +"aJs" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/aft) +"aJt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"aJu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/weapon/crowbar, +/obj/item/weapon/wrench, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + dir = 5 + }, +/area/hallway/secondary/entry) +"aJv" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + tag = "icon-neutral (WEST)"; + dir = 8 + }, +/area/hallway/secondary/entry) +"aJw" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aJx" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/caution{ + dir = 4 + }, +/area/hallway/secondary/entry) +"aJy" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + frequency = 1439; + id_tag = null; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/machinery/camera{ + c_tag = "Atmospherics Entrance"; + network = list("SS13") + }, +/turf/open/floor/plasteel/caution{ + dir = 9 + }, +/area/atmos) +"aJz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plasteel/caution{ + dir = 1 + }, +/area/atmos) +"aJA" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/caution{ + dir = 1 + }, +/area/atmos) +"aJB" = ( +/turf/open/floor/plasteel/caution{ + dir = 5 + }, +/area/atmos) +"aJC" = ( +/obj/structure/cable/green{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 8; + name = "Autoname APC West"; + pixel_x = -25; + pixel_y = 0 + }, +/turf/open/floor/plasteel/caution/corner{ + tag = "icon-cautioncorner (WEST)"; + dir = 8 + }, +/area/atmos) +"aJD" = ( +/obj/structure/sign/nosmoking_2, +/turf/closed/wall, +/area/atmos) +"aJE" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 0; + name = "Port to Filter"; + on = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aJF" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aJG" = ( +/obj/machinery/atmospherics/components/trinary/filter{ + dir = 1; + filter_type = "plasma"; + on = 1 + }, +/turf/open/floor/plasteel/purple/side{ + dir = 10 + }, +/area/atmos) +"aJH" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 8; + frequency = 1441; + id = "tox_in"; + pixel_y = 1 + }, +/turf/open/floor/engine/plasma, +/area/atmos) +"aJI" = ( +/obj/structure/chair/comfy/brown{ + dir = 1 + }, +/turf/open/floor/wood{ + broken = 1; + icon_state = "wood-broken6"; + tag = "icon-wood-broken6" + }, +/area/maintenance/atmos_control) +"aJJ" = ( +/obj/structure/chair/comfy/lime{ + tag = "icon-comfychair (NORTH)"; + icon_state = "comfychair"; + dir = 1 + }, +/turf/open/floor/wood, +/area/maintenance/atmos_control) +"aJK" = ( +/turf/open/floor/wood{ + broken = 1; + icon_state = "wood-broken"; + tag = "icon-wood-broken" + }, +/area/maintenance/atmos_control) +"aJL" = ( +/obj/structure/girder/displaced, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aJM" = ( +/obj/structure/rack, +/obj/item/weapon/circuitboard/machine/circuit_imprinter, +/obj/item/trash/chips, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aJN" = ( +/obj/structure/table, +/obj/item/stack/cable_coil/green, +/obj/item/bodypart/l_arm/robot, +/obj/item/weapon/storage/fancy/cigarettes/cigpack_robustgold, +/obj/item/weapon/reagent_containers/food/drinks/mug/coco, +/turf/open/floor/plating, +/area/maintenance/fore) +"aJO" = ( +/obj/structure/table, +/obj/item/toy/redbutton, +/turf/open/floor/plating, +/area/maintenance/fore) +"aJP" = ( +/obj/structure/cable/green, +/obj/machinery/computer/monitor, +/obj/structure/light_construct, +/turf/open/floor/plating, +/area/maintenance/fore) +"aJQ" = ( +/obj/machinery/computer/atmos_alert, +/turf/open/floor/plating, +/area/maintenance/fore) +"aJR" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/obj/structure/barricade/wooden, +/turf/open/floor/plating, +/area/maintenance/fore) +"aJS" = ( +/obj/structure/rack, +/obj/item/wallframe/newscaster, +/obj/item/weapon/storage/toolbox/mechanical, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aJT" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/fore) +"aJU" = ( +/obj/structure/girder/displaced, +/turf/open/floor/plating, +/area/maintenance/fore) +"aJV" = ( +/obj/item/weapon/restraints/legcuffs/beartrap{ + armed = 1 + }, +/obj/item/weapon/restraints/legcuffs/beartrap{ + armed = 1 + }, +/obj/item/weapon/restraints/legcuffs/beartrap{ + armed = 1 + }, +/obj/item/weapon/restraints/legcuffs/beartrap{ + armed = 1 + }, +/obj/structure/falsewall/reinforced, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fore) +"aJW" = ( +/obj/structure/table, +/obj/item/weapon/restraints/handcuffs/cable/zipties, +/obj/item/weapon/restraints/handcuffs/cable/zipties, +/obj/item/weapon/reagent_containers/food/snacks/syndicake, +/obj/item/toy/talking/griffin, +/turf/open/floor/plating, +/area/maintenance/fore) +"aJX" = ( +/obj/structure/table, +/obj/item/weapon/paper/crumpled{ + info = "I'll get that Owl and show him just what he's doing for those he captures!!!!!"; + name = "crumpled paper" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aJY" = ( +/obj/structure/table, +/obj/item/weapon/hand_labeler, +/obj/item/weapon/gun/syringe, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aJZ" = ( +/obj/structure/chair/office/light{ + dir = 8 + }, +/obj/effect/landmark/start{ + name = "Medical Doctor" + }, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aKa" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aKb" = ( +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aKc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aKd" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aKe" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/beakers{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/weapon/storage/box/syringes, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 + }, +/area/medical/exam_room) +"aKf" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/exam_room) +"aKg" = ( +/obj/structure/table, +/obj/item/weapon/crowbar, +/obj/item/clothing/neck/stethoscope, +/obj/item/weapon/reagent_containers/spray/cleaner, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/medical/exam_room) +"aKh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aKi" = ( +/obj/structure/cable/cyan{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aKj" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aKk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 + }, +/area/medical/exam_room) +"aKl" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/poddoor/preopen{ + id = "cmoprivacy"; + name = "privacy shutter" + }, +/turf/open/floor/plating, +/area/medical/cmo) +"aKm" = ( +/obj/structure/table, +/obj/item/weapon/cartridge/medical{ + pixel_x = -2; + pixel_y = 6 + }, +/obj/item/weapon/cartridge/medical{ + pixel_x = 6; + pixel_y = 3 + }, +/obj/item/weapon/cartridge/medical, +/obj/item/weapon/cartridge/chemistry{ + pixel_y = 2 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/cmo) +"aKn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/mob/living/simple_animal/pet/cat/Runtime, +/turf/open/floor/plasteel/cafeteria, +/area/medical/cmo) +"aKo" = ( +/obj/machinery/disposal/bin, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/cmo) +"aKp" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/cafeteria, +/area/medical/cmo) +"aKq" = ( +/obj/structure/filingcabinet/filingcabinet, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/cmo) +"aKr" = ( +/obj/structure/cable/cyan{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/medbay) +"aKs" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aKt" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + frequency = 1439; + id_tag = null; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aKu" = ( +/mob/living/carbon/monkey, +/turf/open/floor/plasteel/purple/corner{ + tag = "icon-purplecorner (EAST)"; + dir = 4 + }, +/area/medical/genetics) +"aKv" = ( +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 1 + }, +/area/medical/genetics) +"aKw" = ( +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4 + }, +/area/medical/genetics) +"aKx" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/port) +"aKy" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/space, +/area/space/nearstation) +"aKz" = ( +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plating, +/area/maintenance/port) +"aKA" = ( +/obj/structure/chair/stool, +/turf/open/floor/plating, +/area/maintenance/port) +"aKB" = ( +/obj/structure/table, +/obj/item/wallframe/firealarm, +/turf/open/floor/plating, +/area/maintenance/port) +"aKC" = ( +/turf/closed/wall/rust, +/area/maintenance/port) +"aKD" = ( +/obj/structure/closet/crate, +/obj/item/clothing/suit/ianshirt, +/obj/item/weapon/coin/twoheaded, +/turf/open/floor/plating, +/area/maintenance/port) +"aKE" = ( +/obj/item/weapon/poster/contraband, +/turf/open/floor/plating, +/area/maintenance/port) +"aKF" = ( +/turf/open/floor/plating, +/area/maintenance/port) +"aKG" = ( +/obj/item/toy/minimeteor, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/port) +"aKH" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + icon_state = "4-8"; + d1 = 4; + d2 = 8 + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/space, +/area/space/nearstation) +"aKI" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/space, +/area/space/nearstation) +"aKJ" = ( +/obj/machinery/power/tesla_coil, +/obj/structure/cable/yellow, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"aKK" = ( +/obj/item/weapon/crowbar/large, +/turf/open/space, +/area/space/nearstation) +"aKL" = ( +/obj/structure/closet/emcloset, +/obj/machinery/light/small, +/obj/structure/cable/yellow{ + tag = "icon-5-9"; + icon_state = "5-9"; + d1 = 4; + d2 = 8 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"aKM" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 4 + }, +/area/engine/engineering) +"aKN" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/fire, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aKO" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aKP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner{ + tag = "icon-redcorner (EAST)"; + dir = 4 + }, +/area/engine/engineering) +"aKQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/checkpoint/engineering) +"aKR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (SOUTHWEST)"; + dir = 10 + }, +/area/security/checkpoint/engineering) +"aKS" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel/darkred/side, +/area/security/checkpoint/engineering) +"aKT" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/structure/filingcabinet, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (SOUTHEAST)"; + dir = 6 + }, +/area/security/checkpoint/engineering) +"aKU" = ( +/turf/closed/wall, +/area/security/checkpoint/engineering) +"aKV" = ( +/turf/open/floor/plasteel/yellow/side, +/obj/structure/closet/secure_closet/engineering_welding, +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/turf/open/floor/plasteel/warningline, +/area/engine/engineering) +"aKW" = ( +/turf/open/floor/plasteel/yellow/side, +/obj/structure/closet/secure_closet/engineering_electrical, +/turf/open/floor/plasteel/warningline, +/area/engine/engineering) +"aKX" = ( +/turf/open/floor/plasteel/yellow/side, +/obj/machinery/disposal/bin, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/disposalpipe/trunk, +/obj/machinery/camera{ + c_tag = "Engineering South 2"; + network = list("SS13") + }, +/turf/open/floor/plasteel/warningline, +/area/engine/engineering) +"aKY" = ( +/turf/open/floor/plasteel/yellow/side, +/obj/machinery/vending/tool, +/turf/open/floor/plasteel/warningline, +/area/engine/engineering) +"aKZ" = ( +/turf/open/floor/plasteel/yellow/side, +/obj/machinery/vending/engivend, +/turf/open/floor/plasteel/warningline, +/area/engine/engineering) +"aLa" = ( +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"aLb" = ( +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"aLc" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"aLd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"aLe" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"aLf" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"aLg" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + dir = 5 + }, +/area/hallway/secondary/entry) +"aLh" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + tag = "icon-neutral (WEST)"; + dir = 8 + }, +/area/hallway/secondary/entry) +"aLi" = ( +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aLj" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (EAST)"; + dir = 4 + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 1; + icon_state = "pipe-j1s"; + sortType = 6; + tag = "icon-pipe-j1s (NORTH)" + }, +/turf/open/floor/plasteel/caution{ + dir = 4 + }, +/area/hallway/secondary/entry) +"aLk" = ( +/obj/machinery/door/poddoor{ + density = 0; + icon_state = "open"; + id = "atmos"; + name = "Atmos Blast Door"; + opacity = 0 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_atmos{ + name = "Atmospherics"; + req_access_txt = "24" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow, +/area/atmos) +"aLl" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/caution{ + dir = 8 + }, +/area/atmos) +"aLm" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aLn" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/atmos) +"aLo" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/caution{ + tag = "icon-caution (EAST)"; + dir = 4 + }, +/area/atmos) +"aLp" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics"; + req_access_txt = "24" + }, +/turf/open/floor/plasteel/yellow, +/area/atmos) +"aLq" = ( +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/caution{ + tag = "icon-caution (WEST)"; + dir = 8 + }, +/area/atmos) +"aLr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/atmos) +"aLs" = ( +/obj/structure/closet/wardrobe/atmospherics_yellow, +/turf/open/floor/plasteel/bot, +/area/atmos) +"aLt" = ( +/obj/machinery/space_heater, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Atmospherics South"; + dir = 6; + icon_state = "camera"; + network = list("SS13"); + tag = "" + }, +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (SOUTHWEST)"; + dir = 10 + }, +/area/atmos) +"aLu" = ( +/obj/machinery/space_heater, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (SOUTHEAST)"; + dir = 6 + }, +/area/atmos) +"aLv" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aLw" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Port to Filter"; + on = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aLx" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/turf/open/floor/plasteel, +/area/atmos) +"aLy" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/heater{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aLz" = ( +/obj/structure/table/wood, +/obj/item/toy/cards/deck{ + pixel_x = 2 + }, +/turf/open/floor/wood{ + broken = 1; + icon_state = "wood-broken7"; + tag = "icon-wood-broken7" + }, +/area/maintenance/atmos_control) +"aLA" = ( +/obj/structure/table/wood, +/obj/item/toy/cards/deck{ + pixel_x = 2 + }, +/turf/open/floor/wood, +/area/maintenance/atmos_control) +"aLB" = ( +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/maintenance/atmos_control) +"aLC" = ( +/obj/structure/table/wood, +/turf/open/floor/wood{ + broken = 1; + icon_state = "wood-broken6"; + tag = "icon-wood-broken6" + }, +/area/maintenance/atmos_control) +"aLD" = ( +/obj/structure/table/wood, +/obj/item/weapon/coin/silver, +/turf/open/floor/wood, +/area/maintenance/atmos_control) +"aLE" = ( +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/glass = 2, /obj/item/stack/sheet/rglass = 1, /obj/item/stack/sheet/metal = 2, /obj/item/stack/sheet/plasteel = 1); + name = "random sheet material spawner" + }, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aLF" = ( +/obj/structure/rack, +/obj/item/stack/sheet/metal{ + amount = 2 + }, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aLG" = ( +/obj/structure/falsewall, +/turf/open/floor/plating, +/area/maintenance/fore) +"aLH" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/maintenance/fore) +"aLI" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/spray/cleaner, +/obj/item/clothing/glasses/hud/health, +/obj/item/clothing/glasses/hud/health, +/obj/item/clothing/glasses/hud/health, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aLJ" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{ + pixel_x = 7; + pixel_y = -3 + }, +/obj/item/weapon/reagent_containers/glass/bottle/morphine, +/obj/item/weapon/reagent_containers/syringe, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 2 + }, +/area/medical/exam_room) +"aLK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 2 + }, +/area/medical/exam_room) +"aLL" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/o2{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/firstaid/o2, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = -3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/exam_room) +"aLM" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/toxin{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/firstaid/toxin, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aLN" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/fire{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/firstaid/fire, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = -3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aLO" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/brute{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/firstaid/brute, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = -3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aLP" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/medical/exam_room) +"aLQ" = ( +/obj/structure/cable/cyan{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aLR" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aLS" = ( +/obj/machinery/door/poddoor/preopen{ + id = "cmoprivacy"; + name = "privacy shutter" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/medical/cmo) +"aLT" = ( +/obj/structure/cable/cyan{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aLU" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aLV" = ( +/turf/closed/wall, +/area/medical/genetics) +"aLW" = ( +/obj/structure/table/glass, +/obj/item/weapon/storage/pill_bottle/mannitol, +/obj/machinery/camera{ + c_tag = "Medbay Genetics"; + dir = 4; + network = list("SS13"); + pixel_x = 0; + pixel_y = 0 + }, +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aLX" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aLY" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aLZ" = ( +/obj/structure/closet/secure_closet/personal/patient, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (NORTHWEST)"; + dir = 9 + }, +/area/medical/genetics) +"aMa" = ( +/obj/structure/closet/firecloset/full, +/turf/open/floor/plating, +/area/maintenance/port) +"aMb" = ( +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/bodypart/l_arm/robot, +/turf/open/floor/plating, +/area/maintenance/port) +"aMc" = ( +/obj/item/weapon/bucket_sensor, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aMd" = ( +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aMe" = ( +/turf/closed/wall/rust, +/area/engine/engineering) +"aMf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27; + pixel_y = 0; + tag = "w" + }, +/obj/machinery/camera{ + c_tag = "Engineering South 1"; + dir = 4; + network = list("SS13") + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aMg" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (WEST)"; + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aMh" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + frequency = 1439; + id_tag = null; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aMi" = ( +/turf/open/floor/plasteel/yellow/corner, +/area/engine/engineering) +"aMj" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/yellow/corner{ + tag = "icon-yellowcorner (WEST)"; + dir = 8 + }, +/area/engine/engineering) +"aMk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aMl" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aMm" = ( +/obj/effect/landmark/start{ + name = "Station Engineer" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aMn" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/yellow/corner, +/area/engine/engineering) +"aMo" = ( +/turf/open/floor/plating/warnplate, +/area/shuttle/auxillary_base) +"aMp" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (NORTH)"; + dir = 1 + }, +/area/hallway/secondary/entry) +"aMq" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aMr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/caution{ + dir = 4 + }, +/area/hallway/secondary/entry) +"aMs" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel/caution{ + tag = "icon-caution (SOUTHWEST)"; + dir = 10 + }, +/area/atmos) +"aMt" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plasteel/caution{ + dir = 2 + }, +/area/atmos) +"aMu" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/light, +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/plasteel/caution{ + dir = 2 + }, +/area/atmos) +"aMv" = ( +/obj/structure/tank_dispenser, +/turf/open/floor/plasteel/caution{ + dir = 6 + }, +/area/atmos) +"aMw" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/caution/corner{ + tag = "icon-cautioncorner (NORTH)"; + dir = 1 + }, +/area/atmos) +"aMx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aMy" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 1 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/atmos) +"aMz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aMA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aMB" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (EAST)"; + dir = 4 + }, +/area/atmos) +"aMC" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "CO2 Outlet Pump"; + on = 0 + }, +/turf/open/floor/plasteel/caution{ + dir = 9 + }, +/area/atmos) +"aMD" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + external_pressure_bound = 0; + frequency = 1441; + id_tag = "co2_out"; + initialize_directions = 1; + internal_pressure_bound = 4000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine/co2, +/area/atmos) +"aME" = ( +/turf/open/floor/engine/co2, +/area/atmos) +"aMF" = ( +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fore) +"aMG" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fore) +"aMH" = ( +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aMI" = ( +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/asmaint) +"aMJ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_medical{ + id_tag = null; + name = "Medbay Storage"; + req_access_txt = "45" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whiteblue, +/area/medical/exam_room) +"aMK" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/medical/exam_room) +"aML" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/medical/exam_room) +"aMM" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Medical Doctor" + }, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aMN" = ( +/obj/machinery/computer/med_data, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 2 + }, +/area/medical/exam_room) +"aMO" = ( +/obj/structure/cable/cyan{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/exam_room) +"aMP" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/obj/machinery/camera{ + c_tag = "Medbay Sleepers"; + network = list("SS13") + }, +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aMQ" = ( +/turf/open/floor/plasteel/warnwhite{ + tag = "icon-warnwhite (EAST)"; + dir = 4 + }, +/area/medical/exam_room) +"aMR" = ( +/obj/machinery/sleeper{ + icon_state = "sleeper-open"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/medical/exam_room) +"aMS" = ( +/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{ + pixel_x = -3; + pixel_y = 2 + }, +/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{ + pixel_x = 7; + pixel_y = 1 + }, +/obj/structure/table/glass, +/turf/open/floor/plasteel, +/area/medical/exam_room) +"aMT" = ( +/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{ + pixel_x = -5; + pixel_y = 4 + }, +/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{ + pixel_x = 2; + pixel_y = 0 + }, +/obj/structure/table/glass, +/turf/open/floor/plasteel, +/area/medical/exam_room) +"aMU" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/turf/open/floor/plasteel, +/area/medical/exam_room) +"aMV" = ( +/obj/machinery/atmospherics/components/unary/cryo_cell, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/medical/exam_room) +"aMW" = ( +/obj/structure/cable/cyan{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aMX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/medbay) +"aMY" = ( +/obj/structure/table, +/turf/open/floor/plasteel/whiteblue/corner{ + tag = "icon-whitebluecorner (WEST)"; + dir = 8 + }, +/area/medical/genetics) +"aMZ" = ( +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/machinery/camera{ + c_tag = "Medbay Cloning"; + network = list("SS13") + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aNa" = ( +/obj/machinery/clonepod, +/turf/open/floor/plasteel/warnwhite{ + tag = "icon-warnwhite (SOUTHWEST)"; + dir = 10 + }, +/area/medical/genetics) +"aNb" = ( +/obj/machinery/computer/cloning, +/turf/open/floor/plasteel/warnwhite, +/area/medical/genetics) +"aNc" = ( +/obj/machinery/dna_scannernew, +/turf/open/floor/plasteel/warnwhite{ + tag = "icon-warnwhite (SOUTHEAST)"; + dir = 6 + }, +/area/medical/genetics) +"aNd" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/whitepurple/corner, +/area/medical/genetics) +"aNe" = ( +/obj/structure/table/glass, +/obj/item/weapon/storage/pill_bottle/mutadone, +/turf/open/floor/plasteel/whitepurple/corner{ + tag = "icon-whitepurplecorner (WEST)"; + dir = 8 + }, +/area/medical/genetics) +"aNf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aNg" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/whitebot, +/area/medical/genetics) +"aNh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aNi" = ( +/obj/structure/closet/wardrobe/genetics_white, +/obj/structure/window/reinforced, +/obj/machinery/light_switch{ + pixel_x = 24; + tag = "e" + }, +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (SOUTHWEST)"; + dir = 10 + }, +/area/medical/genetics) +"aNj" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/port) +"aNk" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/port) +"aNl" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Firefighting equipment"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aNm" = ( +/obj/effect/decal/cleanable/ash, +/obj/item/weapon/tank/internals/plasmaman/full{ + name = "plasma tank" + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/port) +"aNn" = ( +/obj/item/weapon/paper/crumpled{ + info = "Try not to burn out." + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/port) +"aNo" = ( +/obj/item/stack/medical/ointment, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/port) +"aNp" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/port) +"aNq" = ( +/obj/structure/closet/wardrobe/engineering_yellow, +/turf/open/floor/plating, +/area/maintenance/port) +"aNr" = ( +/turf/open/floor/plasteel/yellow/corner{ + tag = "icon-yellowcorner (NORTH)"; + dir = 1 + }, +/area/engine/engineering) +"aNs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aNt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/corner{ + tag = "icon-yellowcorner (EAST)"; + dir = 4 + }, +/area/engine/engineering) +"aNu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/corner{ + tag = "icon-yellowcorner (NORTH)"; + dir = 1 + }, +/area/engine/engineering) +"aNv" = ( +/obj/structure/grille/broken, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"aNw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/aft) +"aNx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/aft) +"aNy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (NORTH)"; + dir = 1 + }, +/area/hallway/secondary/entry) +"aNz" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aNA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/caution/corner{ + dir = 4 + }, +/area/hallway/secondary/entry) +"aNB" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Atmospherics Maintenance"; + req_access_txt = "24" + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/atmos) +"aNC" = ( +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/obj/item/weapon/cigbutt, +/turf/open/floor/plasteel, +/area/atmos) +"aND" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aNE" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plasteel, +/area/atmos) +"aNF" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aNG" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 1 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/atmos) +"aNH" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 6 + }, +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (EAST)"; + dir = 4 + }, +/area/atmos) +"aNI" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/computer/atmos_control/tank{ + frequency = 1441; + input_tag = "co2_in"; + name = "Carbon Dioxide Supply Control"; + output_tag = "co2_out"; + sensors = list("co2_sensor" = "Tank") + }, +/turf/open/floor/plasteel/caution{ + dir = 8 + }, +/area/atmos) +"aNJ" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 9 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/atmos) +"aNK" = ( +/obj/machinery/air_sensor{ + frequency = 1441; + id_tag = "co2_sensor" + }, +/turf/open/floor/engine/co2, +/area/atmos) +"aNL" = ( +/obj/machinery/portable_atmospherics/canister/carbon_dioxide, +/turf/open/floor/engine/co2, +/area/atmos) +"aNM" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/engine/co2, +/area/atmos) +"aNN" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aNO" = ( +/obj/structure/rack, +/obj/item/weapon/stock_parts/manipulator, +/obj/item/weapon/stock_parts/console_screen, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aNP" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/obj/structure/bed, +/obj/item/weapon/bedsheet/medical, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aNQ" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating/warnplate{ + dir = 6 + }, +/area/shuttle/auxillary_base) +"aNR" = ( +/obj/structure/cable/cyan{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aNS" = ( +/obj/structure/mining_shuttle_beacon{ + dir = 2 + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 8; + name = "Autoname APC West"; + pixel_x = -25; + pixel_y = 0 + }, +/obj/structure/cable/green{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/turf/open/floor/plasteel/darkwarning/end{ + tag = "icon-black_warn_end (EAST)"; + icon_state = "black_warn_end"; + dir = 4 + }, +/area/mining_construction) +"aNT" = ( +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aNU" = ( +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aNV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mining_construction) +"aNW" = ( +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 4 + }, +/area/medical/exam_room) +"aNX" = ( +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_medical{ + id_tag = null; + name = "Recovery Room"; + req_access_txt = "0" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue, +/area/medical/exam_room) +"aNY" = ( +/obj/structure/cable/cyan{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/cyan{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 8 + }, +/area/medical/exam_room) +"aNZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aOa" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/medical/exam_room) +"aOb" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/medical/exam_room) +"aOc" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/medical/exam_room) +"aOd" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, +/obj/effect/landmark/start{ + name = "Medical Doctor" + }, +/turf/open/floor/plasteel, +/area/medical/exam_room) +"aOe" = ( +/obj/machinery/conveyor{ + dir = 9; + id = "QMLoad"; + verted = 1 + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"aOf" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/medical/exam_room) +"aOg" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/medical/exam_room) +"aOh" = ( +/obj/structure/cable/cyan{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 2; + icon_state = "pipe-j2s"; + sortType = 23 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aOi" = ( +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (EAST)"; + dir = 4 + }, +/area/medical/medbay) +"aOj" = ( +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_medical{ + id_tag = "GeneticsDoor"; + name = "Genetics"; + req_access_txt = "5; 9" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue, +/area/medical/genetics) +"aOk" = ( +/obj/machinery/button/door{ + desc = "A remote control switch for the genetics doors."; + id = "GeneticsDoor"; + name = "Genetics Exit Button"; + normaldoorcontrol = 1; + pixel_x = 0; + pixel_y = 32 + }, +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (WEST)"; + dir = 8 + }, +/area/medical/genetics) +"aOl" = ( +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aOm" = ( +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aOn" = ( +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/landmark/start{ + name = "Geneticist" + }, +/obj/structure/chair/office/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aOo" = ( +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aOp" = ( +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/cyan{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (EAST)"; + dir = 4 + }, +/area/medical/genetics) +"aOq" = ( +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_research{ + name = "Genetics Lab"; + req_access_txt = "5;9" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple, +/area/medical/genetics) +"aOr" = ( +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (WEST)"; + dir = 8 + }, +/area/medical/genetics) +"aOs" = ( +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aOt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/cyan{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aOu" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aOv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aOw" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Genetics Maintenance"; + req_access_txt = "5;9" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/genetics) +"aOx" = ( +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/port) +"aOy" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aOz" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aOA" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aOB" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/port) +"aOC" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/port) +"aOD" = ( +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aOE" = ( +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aOF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aOG" = ( +/obj/structure/closet/emcloset, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aOH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/port) +"aOI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/closed/wall/rust, +/area/maintenance/port) +"aOJ" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'RADIOACTIVE AREA'"; + icon_state = "radiation"; + name = "RADIOACTIVE AREA"; + pixel_x = 0; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/port) +"aOK" = ( +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aOL" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aOM" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Engineering Maintenance"; + req_access_txt = "10" + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"aON" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aOO" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-j2"; + dir = 2 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aOP" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aOQ" = ( +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aOR" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/chair/stool, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aOS" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aOT" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aOU" = ( +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/sortjunction{ + dir = 8; + icon_state = "pipe-j2s"; + sortType = 5 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aOV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 8; + icon_state = "pipe-j1s"; + sortType = 4 + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel/bot, +/area/engine/engineering) +"aOW" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aOX" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Engineering Maintenance"; + req_access_txt = "10" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"aOY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"aOZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"aPa" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (NORTH)"; + dir = 1 + }, +/area/hallway/secondary/entry) +"aPb" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aPc" = ( +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/atmos_control) +"aPd" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Atmospherics Maintenance"; + req_access_txt = "24" + }, +/turf/open/floor/plating, +/area/atmos) +"aPe" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 6 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = 30; + tag = "n" + }, +/turf/open/floor/plasteel, +/area/atmos) +"aPf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Nitrogen Outlet"; + on = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aPg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aPh" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "O2 Outlet Pump"; + on = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aPi" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 10; + initialize_directions = 10 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aPj" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (EAST)"; + dir = 4 + }, +/area/atmos) +"aPk" = ( +/obj/machinery/atmospherics/components/trinary/filter{ + dir = 1; + filter_type = "co2"; + on = 1 + }, +/turf/open/floor/plasteel/caution{ + tag = "icon-caution (SOUTHWEST)"; + dir = 10 + }, +/area/atmos) +"aPl" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4; + initialize_directions = 12 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/atmos) +"aPm" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 8; + frequency = 1441; + id = "co2_in"; + pixel_y = 1 + }, +/turf/open/floor/engine/co2, +/area/atmos) +"aPn" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aPo" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aPp" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aPq" = ( +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aPr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/atmos_control) +"aPs" = ( +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aPt" = ( +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aPu" = ( +/obj/structure/rack, +/obj/item/stack/sheet/metal{ + amount = 2 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aPv" = ( +/obj/machinery/space_heater, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aPw" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aPx" = ( +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aPy" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aPz" = ( +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aPA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aPB" = ( +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aPC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aPD" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/mob/living/simple_animal/mouse, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aPE" = ( +/obj/structure/rack, +/obj/item/weapon/stock_parts/micro_laser, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aPF" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/medical, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_x = -25; + pixel_y = -2; + tag = "WEST" + }, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aPG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 9 + }, +/area/medical/exam_room) +"aPH" = ( +/obj/structure/cable/cyan{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/medical/exam_room) +"aPI" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel/white/side{ + dir = 5 + }, +/area/medical/exam_room) +"aPJ" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/machinery/camera{ + c_tag = "Medbay Examination"; + dir = 1; + network = list("SS13") + }, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aPK" = ( +/obj/structure/table, +/obj/structure/bedsheetbin{ + pixel_x = 2 + }, +/obj/item/clothing/suit/straight_jacket, +/obj/item/clothing/mask/muzzle, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aPL" = ( +/obj/structure/closet/secure_closet/medical1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aPM" = ( +/obj/machinery/iv_drip, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aPN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/closet/crate/freezer/blood, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 + }, +/area/medical/exam_room) +"aPO" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/exam_room) +"aPP" = ( +/obj/structure/cable/cyan{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/medical/exam_room) +"aPQ" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aPR" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/delivery, +/area/medical/exam_room) +"aPS" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel, +/area/medical/exam_room) +"aPT" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/medical/exam_room) +"aPU" = ( +/obj/machinery/atmospherics/pipe/manifold4w/general/visible, +/turf/open/floor/plasteel, +/area/medical/exam_room) +"aPV" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/medical/exam_room) +"aPW" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aPX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (EAST)"; + dir = 4 + }, +/area/medical/medbay) +"aPY" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_medical{ + id_tag = "GeneticsDoor"; + name = "Genetics"; + req_access_txt = "5; 9" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue, +/area/medical/genetics) +"aPZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (WEST)"; + dir = 8 + }, +/area/medical/genetics) +"aQa" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aQb" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aQc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aQd" = ( +/obj/structure/cable/cyan{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/whitepurple/corner{ + tag = "icon-whitepurplecorner (EAST)"; + dir = 4 + }, +/area/medical/genetics) +"aQe" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/genetics) +"aQf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whitepurple/corner{ + tag = "icon-whitepurplecorner (NORTH)"; + dir = 1 + }, +/area/medical/genetics) +"aQg" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aQh" = ( +/obj/structure/cable/cyan{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aQi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/medical/genetics) +"aQj" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/port) +"aQk" = ( +/obj/item/wallframe/light_fixture, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aQl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aQm" = ( +/obj/machinery/power/apc{ + auto_name = 1; + dir = 2; + name = "Autoname APC South"; + pixel_x = 1; + pixel_y = -24 + }, +/obj/structure/cable/green, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/crew_quarters/locker/locker_toilet) +"aQn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aQo" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aQp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/locker) +"aQq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/crew_quarters/locker) +"aQr" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aQs" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aQt" = ( +/obj/structure/cable/green, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 2; + name = "Autoname APC South"; + pixel_x = 1; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/crew_quarters/locker) +"aQu" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aQv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/port) +"aQw" = ( +/obj/item/weapon/vending_refill/clothing, +/obj/effect/landmark{ + name = "blobstart" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/port) +"aQx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/port) +"aQy" = ( +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aQz" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aQA" = ( +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/port) +"aQB" = ( +/obj/structure/cable/green, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 2; + name = "Autoname APC South"; + pixel_x = 1; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/tcommsat/computer) +"aQC" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aQD" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/yellow/corner{ + dir = 2 + }, +/area/engine/engineering) +"aQE" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/yellow/side{ + dir = 2 + }, +/area/engine/engineering) +"aQF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 8 + }, +/area/engine/engineering) +"aQG" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aQH" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aQI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/computer/station_alert, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = -25; + tag = "SOUTH" + }, +/turf/open/floor/plasteel/bot, +/area/engine/engineering) +"aQJ" = ( +/obj/machinery/computer/monitor, +/obj/structure/cable/green, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light_switch{ + pixel_y = -24; + tag = "s" + }, +/turf/open/floor/plasteel/bot, +/area/engine/engineering) +"aQK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 2 + }, +/area/engine/engineering) +"aQL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/yellow/side{ + dir = 2 + }, +/area/engine/engineering) +"aQM" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/yellow/side{ + dir = 2 + }, +/area/engine/engineering) +"aQN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 2 + }, +/area/engine/engineering) +"aQO" = ( +/turf/open/floor/plasteel/yellow/corner{ + dir = 8 + }, +/area/engine/engineering) +"aQP" = ( +/turf/closed/wall/r_wall, +/area/engine/chiefs_office) +"aQQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27; + pixel_y = 0; + tag = "w" + }, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (NORTH)"; + dir = 1 + }, +/area/hallway/secondary/entry) +"aQR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 5 + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/atmos) +"aQS" = ( +/obj/machinery/atmospherics/components/trinary/filter{ + dir = 4; + filter_type = "n2"; + on = 1 + }, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (NORTHWEST)"; + dir = 9 + }, +/area/atmos) +"aQT" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10; + initialize_directions = 12 + }, +/obj/machinery/computer/atmos_control/tank{ + frequency = 1441; + input_tag = "n2_in"; + name = "Nitrogen Supply Control"; + output_tag = "n2_out"; + sensors = list("n2_sensor" = "Tank") + }, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (NORTH)"; + dir = 1 + }, +/area/atmos) +"aQU" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 8; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (NORTHEAST)"; + dir = 5 + }, +/area/atmos) +"aQV" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aQW" = ( +/obj/machinery/atmospherics/components/trinary/filter{ + dir = 4; + filter_type = "o2"; + on = 1 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 9 + }, +/area/atmos) +"aQX" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10; + initialize_directions = 12 + }, +/obj/machinery/computer/atmos_control/tank{ + frequency = 1441; + input_tag = "o2_in"; + name = "Oxygen Supply Control"; + output_tag = "o2_out"; + sensors = list("o2_sensor" = "Tank") + }, +/turf/open/floor/plasteel/blue/side{ + dir = 1 + }, +/area/atmos) +"aQY" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 8; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 5 + }, +/area/atmos) +"aQZ" = ( +/obj/machinery/atmospherics/components/trinary/mixer{ + node1_concentration = 0.8; + node2_concentration = 0.2 + }, +/turf/open/floor/plasteel/barber, +/area/atmos) +"aRa" = ( +/obj/machinery/computer/atmos_control/tank{ + frequency = 1441; + input_tag = "air_in"; + name = "Mixed Air Supply Control"; + output_tag = "air_out"; + sensors = list("air_sensor" = "Tank") + }, +/obj/machinery/light, +/turf/open/floor/plasteel/barber, +/area/atmos) +"aRb" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Air Outlet Pump"; + on = 1 + }, +/turf/open/floor/plasteel/barber, +/area/atmos) +"aRc" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/plasteel, +/area/atmos) +"aRd" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/atmos_control) +"aRe" = ( +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aRf" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/atmos_control) +"aRg" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/mob/living/simple_animal/mouse, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aRh" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aRi" = ( +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aRj" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/maintenance/fore) +"aRk" = ( +/obj/structure/cable/green, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 2; + name = "Autoname APC South"; + pixel_x = 1; + pixel_y = -24 + }, +/turf/open/floor/plating, +/area/crew_quarters/courtroom) +"aRl" = ( +/obj/structure/girder, +/turf/open/floor/plating, +/area/maintenance/fore) +"aRm" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fore) +"aRn" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fore) +"aRo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/structure/girder{ + layer = 2.6 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aRp" = ( +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aRq" = ( +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/obj/item/weapon/stock_parts/console_screen, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aRr" = ( +/obj/structure/cable/cyan{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/medical{ + name = "Operating Theatre"; + req_access_txt = "45" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/medical/exam_room) +"aRs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/medical/exam_room) +"aRt" = ( +/obj/structure/cable/cyan{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27; + pixel_y = 0; + tag = "w" + }, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aRu" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aRv" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + frequency = 1439; + id_tag = null; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aRw" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plasteel, +/area/medical/exam_room) +"aRx" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1; + name = "Connector Port (Air Supply)" + }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plasteel, +/area/medical/exam_room) +"aRy" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 1 + }, +/turf/open/floor/plasteel/bot, +/area/medical/exam_room) +"aRz" = ( +/obj/structure/table/reinforced, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = -25; + tag = "SOUTH" + }, +/obj/item/weapon/wrench/medical, +/obj/machinery/camera{ + c_tag = "Medbay Cryogenics"; + dir = 8; + network = list("SS13") + }, +/turf/open/floor/plasteel, +/area/medical/exam_room) +"aRA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aRB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whiteblue/corner{ + tag = "icon-whitebluecorner (EAST)"; + dir = 4 + }, +/area/medical/medbay) +"aRC" = ( +/obj/structure/closet/wardrobe/white, +/turf/open/floor/plasteel/whiteblue/corner{ + tag = "icon-whitebluecorner (NORTH)"; + dir = 1 + }, +/area/medical/genetics) +"aRD" = ( +/obj/structure/closet/secure_closet/personal/patient, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aRE" = ( +/obj/structure/table, +/obj/item/weapon/book/manual/medical_cloning{ + pixel_y = 6 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aRF" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/bodybags, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aRG" = ( +/obj/item/weapon/storage/box/rxglasses{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/genetics) +"aRH" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/structure/cable/cyan{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whiteblue/side, +/area/medical/genetics) +"aRI" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/whitepurple/side, +/area/medical/genetics) +"aRJ" = ( +/obj/structure/table/glass, +/obj/item/weapon/storage/box/disks{ + pixel_x = 2; + pixel_y = 2 + }, +/turf/open/floor/plasteel/whitepurple/side, +/area/medical/genetics) +"aRK" = ( +/obj/structure/table/glass, +/obj/item/weapon/storage/box/rxglasses, +/obj/structure/cable/cyan, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 2; + name = "Autoname APC South"; + pixel_x = 1; + pixel_y = -24 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/whitepurple/side, +/area/medical/genetics) +"aRL" = ( +/obj/structure/table/glass, +/obj/item/weapon/folder/white, +/obj/item/device/radio/headset/headset_medsci, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = -25; + tag = "SOUTH" + }, +/turf/open/floor/plasteel/whitepurple/side, +/area/medical/genetics) +"aRM" = ( +/obj/structure/closet/secure_closet/medical1, +/turf/open/floor/plasteel/whitepurple/side, +/area/medical/genetics) +"aRN" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/item/device/assembly/mousetrap/armed, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/port) +"aRO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/crew_quarters/locker/locker_toilet) +"aRP" = ( +/turf/closed/wall, +/area/crew_quarters/locker/locker_toilet) +"aRQ" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/port) +"aRR" = ( +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/plasteel/delivery, +/area/crew_quarters/locker) +"aRS" = ( +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plasteel/delivery, +/area/crew_quarters/locker) +"aRT" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/crew_quarters/locker) +"aRU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aRV" = ( +/turf/closed/wall, +/area/crew_quarters/locker) +"aRW" = ( +/turf/closed/wall/r_wall, +/area/tcommsat/server) +"aRX" = ( +/turf/closed/wall/r_wall, +/area/tcommsat/computer) +"aRY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aRZ" = ( +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/port) +"aSa" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'RADIOACTIVE AREA'"; + icon_state = "radiation"; + name = "RADIOACTIVE AREA"; + pixel_x = 0; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"aSb" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering{ + name = "Engine Room"; + req_access_txt = "10" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/yellow, +/area/engine/engineering) +"aSc" = ( +/obj/structure/sign/securearea, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"aSd" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/engine/engineering) +"aSe" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/engine/engineering) +"aSf" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_engineering{ + name = "Power Storage"; + req_access_txt = "11"; + req_one_access_txt = "0" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/yellow, +/area/engine/engineering) +"aSg" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/engine/engineering) +"aSh" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE" + }, +/turf/closed/wall/r_wall, +/area/engine/chiefs_office) +"aSi" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = 20; + tag = "NORTH" + }, +/turf/open/floor/plasteel, +/area/engine/chiefs_office) +"aSj" = ( +/obj/machinery/holopad, +/obj/machinery/light_switch{ + pixel_y = 24; + tag = "n" + }, +/turf/open/floor/plasteel/caution{ + dir = 4 + }, +/area/engine/chiefs_office) +"aSk" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/door/window/eastleft{ + name = "Chief Engineer's Desk Door"; + req_access_txt = "56" + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Chief Engineer's Office"; + network = list("SS13"); + start_active = 1 + }, +/turf/open/floor/plasteel/darkyellow/corner{ + tag = "icon-darkyellowcorners (WEST)"; + dir = 8 + }, +/area/engine/chiefs_office) +"aSl" = ( +/obj/machinery/keycard_auth{ + pixel_x = 0; + pixel_y = 24 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/engine/chiefs_office) +"aSm" = ( +/obj/structure/closet/secure_closet/engineering_chief, +/obj/item/weapon/bedsheet/ce, +/obj/machinery/button/door{ + id = "ceprivacy"; + name = "Privacy Shutters Control"; + pixel_x = 26; + pixel_y = 0 + }, +/obj/machinery/status_display{ + density = 0; + layer = 3; + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plasteel/black, +/area/engine/chiefs_office) +"aSn" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (NORTH)"; + dir = 1 + }, +/area/hallway/secondary/entry) +"aSo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/obj/machinery/camera{ + c_tag = "Arrivals Hallway South"; + dir = 8; + network = list("SS13"); + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (EAST)"; + dir = 4 + }, +/area/hallway/secondary/entry) +"aSp" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/atmos) +"aSq" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 5; + initialize_directions = 12 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/atmos) +"aSr" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 9 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/atmos) +"aSs" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/atmos_control) +"aSt" = ( +/obj/item/trash/candle, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aSu" = ( +/obj/structure/rack, +/obj/item/weapon/stock_parts/capacitor, +/obj/item/weapon/poster/contraband, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aSv" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aSw" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aSx" = ( +/obj/item/device/assembly/mousetrap/armed, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aSy" = ( +/turf/closed/wall, +/area/crew_quarters/courtroom) +"aSz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plating, +/area/maintenance/fore) +"aSA" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aSB" = ( +/obj/structure/rack, +/obj/item/weapon/poster/contraband, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aSC" = ( +/obj/structure/closet/secure_closet/medical2, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/black, +/area/medical/exam_room) +"aSD" = ( +/turf/open/floor/plasteel/white/corner{ + dir = 2 + }, +/area/medical/exam_room) +"aSE" = ( +/obj/structure/cable/cyan{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plasteel/white/side{ + dir = 2 + }, +/area/medical/exam_room) +"aSF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 8 + }, +/area/medical/exam_room) +"aSG" = ( +/obj/structure/table, +/obj/item/weapon/cautery{ + pixel_x = 4 + }, +/obj/item/weapon/surgical_drapes, +/turf/open/floor/plasteel/black, +/area/medical/exam_room) +"aSH" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/medical/exam_room) +"aSI" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plasteel/darkblue/corner, +/area/medical/exam_room) +"aSJ" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/masks{ + pixel_x = 0; + pixel_y = 0 + }, +/obj/item/weapon/storage/box/gloves{ + pixel_x = 3; + pixel_y = 4 + }, +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/medbay) +"aSK" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aSL" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/medical/genetics) +"aSM" = ( +/obj/structure/cable/cyan{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_medical{ + id_tag = null; + name = "Genetics"; + req_access_txt = "5; 9" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whiteblue, +/area/medical/genetics) +"aSN" = ( +/obj/machinery/recharge_station, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/locker/locker_toilet) +"aSO" = ( +/obj/machinery/door/airlock{ + name = "Unit B" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/locker/locker_toilet) +"aSP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/locker/locker_toilet) +"aSQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/locker/locker_toilet) +"aSR" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/crew_quarters/locker) +"aSS" = ( +/obj/machinery/washing_machine, +/turf/open/floor/plasteel/barber, +/area/crew_quarters/locker) +"aST" = ( +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"aSU" = ( +/obj/machinery/telecomms/bus/preset_four, +/turf/open/floor/plasteel/brown{ + dir = 9; + initial_gas_mix = "n2=100;TEMP=80"; + tag = "SERVER" + }, +/area/tcommsat/server) +"aSV" = ( +/obj/machinery/telecomms/processor/preset_four, +/turf/open/floor/plasteel/green/side{ + dir = 5; + initial_gas_mix = "n2=100;TEMP=80"; + tag = "SERVER" + }, +/area/tcommsat/server) +"aSW" = ( +/obj/structure/cable/green{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 1; + name = "Autoname APC North"; + pixel_x = 0; + pixel_y = 24 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"aSX" = ( +/obj/machinery/telecomms/server/presets/command, +/turf/open/floor/plasteel/darkblue/side{ + dir = 9; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"aSY" = ( +/obj/machinery/telecomms/server/presets/security, +/turf/open/floor/plasteel/darkred/side{ + dir = 5; + initial_gas_mix = "n2=100;TEMP=80"; + tag = "SERVER" + }, +/area/tcommsat/server) +"aSZ" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/tcommsat/computer) +"aTa" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical, +/turf/open/floor/plasteel/darkyellow/side{ + tag = "icon-darkyellow (NORTHWEST)"; + dir = 9 + }, +/area/tcommsat/computer) +"aTb" = ( +/turf/open/floor/plasteel/black, +/area/tcommsat/computer) +"aTc" = ( +/obj/machinery/announcement_system, +/turf/open/floor/plasteel/darkyellow/corner{ + tag = "icon-darkyellowcorners (EAST)"; + dir = 4 + }, +/area/tcommsat/computer) +"aTd" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/preopen{ + id = "Engineering"; + name = "engineering security door" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/yellow/side{ + tag = "icon-yellow (EAST)"; + dir = 4 + }, +/area/engine/engineering) +"aTe" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/preopen{ + id = "Engineering"; + name = "engineering security door" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/yellow, +/area/engine/engineering) +"aTf" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/preopen{ + id = "Engineering"; + name = "engineering security door" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 8; + tag = "" + }, +/area/engine/engineering) +"aTg" = ( +/obj/item/weapon/book/manual/wiki/engineering_hacking, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"aTh" = ( +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/obj/machinery/suit_storage_unit/engine, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aTi" = ( +/obj/machinery/suit_storage_unit/engine, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aTj" = ( +/obj/structure/closet/crate{ + name = "solar pack crate" + }, +/turf/open/floor/plasteel/caution/corner{ + dir = 4 + }, +/area/engine/engineering) +"aTk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/tank_dispenser, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) +"aTl" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) +"aTm" = ( +/obj/item/weapon/book/manual/engineering_singularity_safety{ + pixel_x = -2; + pixel_y = 2 + }, +/obj/structure/table, +/obj/item/weapon/book/manual/engineering_particle_accelerator, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/obj/item/weapon/wrench, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) +"aTn" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/yellow, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/device/multitool, +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/engine/engineering) +"aTo" = ( +/obj/structure/cable/green{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot{ + desc = "Marked to indicate placement of a PACMAN generator."; + dir = 1 + }, +/area/engine/engineering) +"aTp" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/green{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "ceprivacy"; + name = "privacy shutter" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/chiefs_office) +"aTq" = ( +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/yellow/corner{ + dir = 8 + }, +/area/engine/chiefs_office) +"aTr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/caution{ + dir = 4 + }, +/area/engine/chiefs_office) +"aTs" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/glasses/meson{ + pixel_y = 4 + }, +/obj/item/weapon/storage/fancy/cigarettes, +/obj/item/weapon/stamp/ce, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkyellow/corner{ + tag = "icon-darkyellowcorners (WEST)"; + dir = 8 + }, +/area/engine/chiefs_office) +"aTt" = ( +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/darkyellow/corner{ + tag = "icon-darkyellowcorners (EAST)"; + dir = 4 + }, +/area/engine/chiefs_office) +"aTu" = ( +/obj/machinery/computer/station_alert, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/darkyellow/side{ + tag = "icon-darkyellow (NORTHEAST)"; + dir = 5 + }, +/area/engine/chiefs_office) +"aTv" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/green{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "ceprivacy"; + name = "privacy shutter" + }, +/turf/open/floor/plating, +/area/engine/chiefs_office) +"aTw" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/structure/lattice, +/turf/open/space, +/area/space/nearstation) +"aTx" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/structure/lattice, +/turf/open/space, +/area/space/nearstation) +"aTy" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/green{ + tag = "icon-0-6"; + icon_state = "0-6" + }, +/turf/open/floor/plating, +/area/storage/tech) +"aTz" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/green{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/storage/tech) +"aTA" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/green{ + tag = "icon-0-10"; + icon_state = "0-10" + }, +/turf/open/floor/plating, +/area/storage/tech) +"aTB" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/remains/human, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aTC" = ( +/turf/closed/wall, +/area/lawoffice) +"aTD" = ( +/obj/structure/closet/secure_closet/courtroom, +/obj/item/weapon/gavelblock, +/obj/item/weapon/gavelhammer, +/turf/open/floor/plasteel, +/area/crew_quarters/courtroom) +"aTE" = ( +/obj/structure/chair{ + name = "Bailiff" + }, +/obj/machinery/camera{ + c_tag = "Courtroom"; + network = list("SS13") + }, +/turf/open/floor/plasteel, +/area/crew_quarters/courtroom) +"aTF" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/courtroom) +"aTG" = ( +/obj/structure/chair{ + name = "Judge" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 9 + }, +/area/crew_quarters/courtroom) +"aTH" = ( +/obj/structure/chair{ + name = "Judge" + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/light_switch{ + pixel_y = 24; + tag = "n" + }, +/turf/open/floor/plasteel/blue/side{ + dir = 1 + }, +/area/crew_quarters/courtroom) +"aTI" = ( +/obj/structure/chair{ + name = "Judge" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 5 + }, +/area/crew_quarters/courtroom) +"aTJ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/courtroom) +"aTK" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/darkred/corner, +/area/crew_quarters/courtroom) +"aTL" = ( +/turf/open/floor/plasteel/darkred/corner{ + tag = "icon-darkredcorners (WEST)"; + dir = 8 + }, +/area/crew_quarters/courtroom) +"aTM" = ( +/obj/machinery/door/airlock/security{ + name = "Court Cell"; + req_access = null; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (EAST)"; + dir = 4 + }, +/area/security/transfer) +"aTN" = ( +/turf/open/floor/plasteel/black, +/area/security/transfer) +"aTO" = ( +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (SOUTHEAST)"; + dir = 6 + }, +/area/security/transfer) +"aTP" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/mob/living/simple_animal/mouse, +/turf/open/floor/plating, +/area/maintenance/fore) +"aTQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fore) +"aTR" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aTS" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aTT" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aTU" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aTV" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/medical/exam_room) +"aTW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/white/side{ + dir = 4 + }, +/area/medical/exam_room) +"aTX" = ( +/obj/structure/table/optable, +/obj/structure/cable/cyan{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aTY" = ( +/obj/effect/landmark/start{ + name = "Medical Doctor" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white/side{ + dir = 8 + }, +/area/medical/exam_room) +"aTZ" = ( +/obj/structure/table, +/obj/item/weapon/circular_saw, +/obj/item/weapon/scalpel{ + pixel_y = 12 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/medical/exam_room) +"aUa" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/exam_room) +"aUb" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/medical/exam_room) +"aUc" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (EAST)"; + dir = 4 + }, +/area/medical/exam_room) +"aUd" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_medical{ + id_tag = ""; + name = "Surgery Observation"; + req_access_txt = "0" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/blue, +/area/medical/exam_room) +"aUe" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 8 + }, +/area/medical/medbay) +"aUf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/sink{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aUg" = ( +/obj/structure/cable/cyan{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/cyan{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aUh" = ( +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aUi" = ( +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aUj" = ( +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aUk" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aUl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/mining_construction) +"aUm" = ( +/obj/structure/cable/cyan{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/cyan{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aUn" = ( +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aUo" = ( +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aUp" = ( +/obj/structure/cable/cyan{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/sortjunction{ + dir = 2; + icon_state = "pipe-j2s"; + sortType = 9 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aUq" = ( +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aUr" = ( +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/cyan{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aUs" = ( +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aUt" = ( +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aUu" = ( +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aUv" = ( +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + tag = "icon-whitebluecorner (EAST)"; + dir = 4 + }, +/area/medical/medbay) +"aUw" = ( +/obj/structure/cable/cyan{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/cyan{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (NORTH)"; + dir = 1 + }, +/area/medical/medbay) +"aUx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + tag = "icon-whitebluecorner (NORTH)"; + dir = 1 + }, +/area/medical/medbay) +"aUy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aUz" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Medbay Maintenance"; + req_access_txt = "5" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/medbay) +"aUA" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (EAST)"; + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/port) +"aUB" = ( +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/obj/structure/mirror{ + pixel_x = 28 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/locker/locker_toilet) +"aUC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light_switch{ + pixel_x = 24; + tag = "e" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aUD" = ( +/turf/open/floor/plasteel/barber, +/area/crew_quarters/locker) +"aUE" = ( +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_x = 26; + pixel_y = -2; + tag = "EAST" + }, +/turf/open/floor/plasteel/barber, +/area/crew_quarters/locker) +"aUF" = ( +/obj/machinery/telecomms/server/presets/supply, +/turf/open/floor/plasteel/brown{ + dir = 10; + initial_gas_mix = "n2=100;TEMP=80"; + tag = "SERVER" + }, +/area/tcommsat/server) +"aUG" = ( +/obj/machinery/telecomms/server/presets/service, +/turf/open/floor/plasteel/green/side{ + dir = 6; + initial_gas_mix = "n2=100;TEMP=80"; + tag = "SERVER" + }, +/area/tcommsat/server) +"aUH" = ( +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"aUI" = ( +/obj/machinery/telecomms/broadcaster/preset_right, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"aUJ" = ( +/obj/machinery/telecomms/processor/preset_three, +/turf/open/floor/plasteel/darkblue/side{ + dir = 10; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"aUK" = ( +/obj/machinery/telecomms/bus/preset_three, +/turf/open/floor/plasteel/darkred/side{ + dir = 6; + initial_gas_mix = "n2=100;TEMP=80"; + tag = "SERVER" + }, +/area/tcommsat/server) +"aUL" = ( +/obj/machinery/computer/message_monitor, +/turf/open/floor/plasteel/darkyellow/side{ + tag = "icon-darkyellow (WEST)"; + dir = 8 + }, +/area/tcommsat/computer) +"aUM" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/tcommsat/computer) +"aUN" = ( +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Telecoms Admin"; + departmentType = 5; + name = "Telecoms RC"; + pixel_x = 30; + pixel_y = 0 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/tcommsat/computer) +"aUO" = ( +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aUP" = ( +/obj/structure/closet/radiation, +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/yellow/side{ + tag = "icon-yellow (EAST)"; + dir = 4 + }, +/area/engine/engineering) +"aUQ" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/landmark{ + name = "lightsout" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/yellow, +/area/engine/engineering) +"aUR" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 8; + tag = "" + }, +/area/engine/engineering) +"aUS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"aUT" = ( +/obj/machinery/door/airlock/engineering{ + cyclelinkeddir = 1; + name = "Auxillary Base Construction"; + req_access_txt = "0"; + req_one_access_txt = "32;47;48" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mining_construction) +"aUU" = ( +/obj/effect/landmark/start{ + name = "Station Engineer" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aUV" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aUW" = ( +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aUX" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aUY" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aUZ" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/engine/engineering) +"aVa" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_command{ + glass = 0; + name = "Chief Engineer"; + opacity = 1; + req_access_txt = "56" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow, +/area/engine/chiefs_office) +"aVb" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/engine/chiefs_office) +"aVc" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/caution{ + dir = 4 + }, +/area/engine/chiefs_office) +"aVd" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/table/reinforced, +/obj/item/weapon/paper/monitorkey, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkyellow/corner{ + tag = "icon-darkyellowcorners (WEST)"; + dir = 8 + }, +/area/engine/chiefs_office) +"aVe" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/effect/landmark/start{ + name = "Chief Engineer" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/black, +/area/engine/chiefs_office) +"aVf" = ( +/obj/machinery/computer/atmos_alert, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/darkyellow/side{ + tag = "icon-darkyellow (EAST)"; + dir = 4 + }, +/area/engine/chiefs_office) +"aVg" = ( +/obj/machinery/atmospherics/pipe/simple, +/obj/machinery/meter, +/obj/structure/grille, +/turf/closed/wall/r_wall, +/area/atmos) +"aVh" = ( +/obj/machinery/meter, +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/closed/wall/r_wall, +/area/atmos) +"aVi" = ( +/obj/machinery/atmospherics/pipe/simple, +/obj/machinery/meter{ + name = "Mixed Air Tank In" + }, +/obj/structure/grille, +/turf/closed/wall/r_wall, +/area/atmos) +"aVj" = ( +/obj/machinery/atmospherics/pipe/simple, +/obj/machinery/meter{ + name = "Mixed Air Tank Out" + }, +/obj/structure/grille, +/turf/closed/wall/r_wall, +/area/atmos) +"aVk" = ( +/obj/structure/rack, +/obj/item/weapon/stock_parts/capacitor, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aVl" = ( +/obj/structure/girder, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aVm" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/atmos_control) +"aVn" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/green{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/storage/tech) +"aVo" = ( +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (SOUTHWEST)"; + dir = 10 + }, +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/circuitboard/computer/robotics{ + pixel_x = -2; + pixel_y = 2 + }, +/obj/item/weapon/circuitboard/computer/mecha_control{ + pixel_x = 1; + pixel_y = -1 + }, +/obj/structure/cable/green{ + tag = "icon-6-9"; + icon_state = "6-9" + }, +/obj/structure/cable/green{ + tag = "icon-6-8"; + icon_state = "6-8" + }, +/obj/structure/cable/green{ + tag = "icon-1-6"; + icon_state = "1-6" + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (SOUTHWEST)"; + dir = 10 + }, +/area/storage/tech) +"aVp" = ( +/turf/open/floor/plasteel/darkblue/side, +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/circuitboard/computer/borgupload{ + pixel_x = -1; + pixel_y = 1 + }, +/obj/item/weapon/circuitboard/computer/aiupload{ + pixel_x = 2; + pixel_y = -2 + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warningline, +/area/storage/tech) +"aVq" = ( +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (SOUTHEAST)"; + dir = 6 + }, +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/circuitboard/computer/crew{ + pixel_x = -1; + pixel_y = 1 + }, +/obj/item/weapon/circuitboard/computer/card{ + pixel_x = 2; + pixel_y = -2 + }, +/obj/item/weapon/circuitboard/computer/communications{ + pixel_x = 5; + pixel_y = -5 + }, +/obj/structure/cable/green{ + tag = "icon-5-10"; + icon_state = "5-10" + }, +/obj/structure/cable/green{ + tag = "icon-4-10"; + icon_state = "4-10" + }, +/obj/structure/cable/green{ + tag = "icon-1-10"; + icon_state = "1-10" + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (SOUTHEAST)"; + dir = 6 + }, +/area/storage/tech) +"aVr" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/green{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/storage/tech) +"aVs" = ( +/obj/item/device/assembly/mousetrap/armed, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/atmos_control) +"aVt" = ( +/obj/machinery/requests_console{ + department = "Law Office"; + name = "Law Office RC"; + pixel_x = -30; + pixel_y = 0 + }, +/obj/structure/filingcabinet/employment, +/turf/open/floor/wood, +/area/lawoffice) +"aVu" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/table/wood, +/obj/item/weapon/cartridge/lawyer, +/turf/open/floor/wood, +/area/lawoffice) +"aVv" = ( +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/obj/structure/table/wood, +/obj/item/device/taperecorder, +/turf/open/floor/wood, +/area/lawoffice) +"aVw" = ( +/obj/structure/table/wood, +/obj/item/weapon/folder/blue, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = 20; + tag = "NORTH" + }, +/turf/open/floor/wood, +/area/lawoffice) +"aVx" = ( +/turf/open/floor/plasteel, +/area/crew_quarters/courtroom) +"aVy" = ( +/turf/open/floor/plasteel/neutral/side{ + dir = 9 + }, +/area/crew_quarters/courtroom) +"aVz" = ( +/obj/structure/table/wood, +/obj/item/device/radio/intercom{ + broadcasting = 1; + dir = 8; + listening = 0; + name = "Station Intercom (Court)"; + pixel_x = 0 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/crew_quarters/courtroom) +"aVA" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/crew_quarters/courtroom) +"aVB" = ( +/obj/structure/table/wood, +/obj/item/weapon/book/manual/wiki/security_space_law, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/crew_quarters/courtroom) +"aVC" = ( +/turf/open/floor/plasteel/neutral/side{ + dir = 5 + }, +/area/crew_quarters/courtroom) +"aVD" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (WEST)"; + dir = 8 + }, +/area/crew_quarters/courtroom) +"aVE" = ( +/obj/machinery/door/window/southleft{ + name = "Court Cell"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/darkred/corner{ + tag = "icon-darkredcorners (NORTH)"; + dir = 1 + }, +/area/crew_quarters/courtroom) +"aVF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fore) +"aVG" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 2 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aVH" = ( +/obj/structure/frame/computer{ + anchored = 1 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/asmaint) +"aVI" = ( +/obj/structure/table, +/obj/item/stack/sheet/cardboard, +/obj/item/weapon/screwdriver, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aVJ" = ( +/obj/structure/frame/machine, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aVK" = ( +/obj/machinery/holopad, +/obj/machinery/camera{ + c_tag = "Medbay Surgery"; + dir = 4; + network = list("SS13") + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_x = -25; + pixel_y = -2; + tag = "WEST" + }, +/turf/open/floor/plasteel/black, +/area/medical/exam_room) +"aVL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white/side{ + dir = 4 + }, +/area/medical/exam_room) +"aVM" = ( +/obj/machinery/computer/operating, +/obj/structure/cable/cyan{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"aVN" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel/white/side{ + dir = 8 + }, +/area/medical/exam_room) +"aVO" = ( +/obj/structure/table, +/obj/item/weapon/hemostat, +/obj/item/weapon/retractor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/medical/exam_room) +"aVP" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/medical/exam_room) +"aVQ" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (EAST)"; + dir = 4 + }, +/area/medical/exam_room) +"aVR" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_medical{ + id_tag = ""; + name = "Surgery Observation"; + req_access_txt = "0" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/blue, +/area/medical/exam_room) +"aVS" = ( +/obj/effect/landmark{ + name = "lightsout" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 8 + }, +/area/medical/medbay) +"aVT" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/whiteyellow/corner{ + tag = "icon-whiteyellowcorner"; + dir = 2 + }, +/area/medical/medbay) +"aVU" = ( +/obj/structure/cable/cyan{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/sortjunction{ + dir = 8; + icon_state = "pipe-j2s"; + sortType = 11 + }, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 2 + }, +/area/medical/medbay) +"aVV" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteyellow/corner{ + tag = "icon-whiteyellowcorner (WEST)"; + dir = 8 + }, +/area/medical/medbay) +"aVW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aVX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Medbay West"; + dir = 1; + network = list("SS13") + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = -25; + tag = "SOUTH" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aVY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/medbay) +"aVZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/button/door{ + desc = "A remote control switch for the medbay foyer."; + id = "MedbayFoyer"; + name = "Medbay Doors Control"; + normaldoorcontrol = 1; + pixel_x = -24; + pixel_y = -24; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/whiteblue/side, +/area/medical/medbay) +"aWa" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/obj/structure/disposalpipe/junction{ + dir = 8; + icon_state = "pipe-j2" + }, +/turf/open/floor/plasteel/whiteblue/side, +/area/medical/medbay) +"aWb" = ( +/obj/structure/cable/cyan{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/side, +/area/medical/medbay) +"aWc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/side, +/area/medical/medbay) +"aWd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/side, +/area/medical/medbay) +"aWe" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + tag = "icon-whitebluecorner (WEST)"; + dir = 8 + }, +/area/medical/medbay) +"aWf" = ( +/obj/structure/cable/cyan, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 2; + name = "Autoname APC South"; + pixel_x = 1; + pixel_y = -24 + }, +/obj/structure/disposalpipe/junction{ + dir = 8; + icon_state = "pipe-j1"; + tag = "icon-pipe-j1 (EAST)" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aWg" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aWh" = ( +/obj/structure/cable/cyan{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aWi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aWj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aWk" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Medbay East"; + dir = 1; + network = list("SS13") + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aWl" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/medbay) +"aWm" = ( +/obj/structure/cable/cyan{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/whiteblue/side, +/area/medical/medbay) +"aWn" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + tag = "icon-whitebluecorner (WEST)"; + dir = 8 + }, +/area/medical/medbay) +"aWo" = ( +/turf/open/floor/plasteel/whitebot/delivery, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (NORTHWEST)"; + dir = 9 + }, +/area/medical/medbay) +"aWp" = ( +/obj/structure/plasticflaps{ + opacity = 1 + }, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + dir = 8; + freq = 1400; + location = "Medbay" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitebot, +/area/medical/medbay) +"aWq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aWr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/port) +"aWs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/mob/living/simple_animal/mouse, +/turf/open/floor/plating, +/area/maintenance/port) +"aWt" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/port) +"aWu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/closed/wall, +/area/crew_quarters/locker/locker_toilet) +"aWv" = ( +/obj/structure/toilet{ + pixel_y = 8 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/locker/locker_toilet) +"aWw" = ( +/obj/machinery/door/airlock{ + name = "Unit 4" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/locker/locker_toilet) +"aWx" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/locker/locker_toilet) +"aWy" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + frequency = 1439; + id_tag = null; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/locker/locker_toilet) +"aWz" = ( +/obj/structure/window, +/obj/structure/closet, +/obj/item/clothing/under/suit_jacket/female{ + pixel_x = 3; + pixel_y = 1 + }, +/obj/item/clothing/under/suit_jacket/really_black{ + pixel_x = -2; + pixel_y = 0 + }, +/turf/open/floor/plasteel/barber, +/area/crew_quarters/locker) +"aWA" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/barber, +/area/crew_quarters/locker) +"aWB" = ( +/obj/structure/window, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/barber, +/area/crew_quarters/locker) +"aWC" = ( +/turf/open/floor/plasteel/darkyellow/corner{ + tag = "icon-darkyellowcorners (WEST)"; + name = "Mainframe Floor"; + dir = 8; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"aWD" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + external_pressure_bound = 120; + initialize_directions = 1; + internal_pressure_bound = 4000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"aWE" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"aWF" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + external_pressure_bound = 140; + on = 1; + pressure_checks = 0 + }, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"aWG" = ( +/turf/open/floor/plasteel/darkyellow/corner{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"aWH" = ( +/obj/machinery/computer/telecomms/server{ + network = "tcommsat" + }, +/turf/open/floor/plasteel/darkyellow/side{ + tag = "icon-darkyellow (SOUTHWEST)"; + dir = 10 + }, +/area/tcommsat/computer) +"aWI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/black, +/area/tcommsat/computer) +"aWJ" = ( +/obj/machinery/disposal/bin, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_x = 26; + pixel_y = -2; + tag = "EAST" + }, +/turf/open/floor/plasteel/darkyellow/corner, +/area/tcommsat/computer) +"aWK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aWL" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/power/apc{ + aidisabled = 0; + auto_name = 1; + cell_type = 2500; + dir = 4; + name = "Autoname APC East"; + pixel_x = 24; + pixel_y = 0 + }, +/obj/structure/cable/green{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/maintenance/port) +"aWM" = ( +/obj/structure/closet/radiation, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plasteel/yellow/side{ + tag = "icon-yellow (EAST)"; + dir = 4 + }, +/area/engine/engineering) +"aWN" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/yellow, +/area/engine/engineering) +"aWO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/machinery/camera{ + c_tag = "Engineering Access"; + dir = 1; + network = list("SS13") + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 8; + tag = "" + }, +/area/engine/engineering) +"aWP" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/aft) +"aWQ" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aWR" = ( +/obj/structure/table, +/obj/item/weapon/tank/internals/emergency_oxygen/engi, +/obj/item/clothing/mask/breath, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = -25; + tag = "SOUTH" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aWS" = ( +/obj/machinery/cell_charger, +/obj/structure/table, +/obj/item/weapon/stock_parts/cell/high/plus, +/obj/machinery/light, +/obj/machinery/light_switch{ + pixel_y = -24; + tag = "s" + }, +/turf/open/floor/plasteel/warning/corner, +/area/engine/engineering) +"aWT" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/warning, +/area/engine/engineering) +"aWU" = ( +/turf/open/floor/plasteel/warning, +/area/engine/engineering) +"aWV" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/warning, +/area/engine/engineering) +"aWW" = ( +/obj/machinery/requests_console{ + announcementConsole = 0; + department = "Engineering"; + departmentType = 4; + name = "Engineering RC"; + pixel_y = -30 + }, +/obj/machinery/camera{ + c_tag = "Engineering Power Storage"; + dir = 1; + network = list("SS13") + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 1 + }, +/area/engine/engineering) +"aWX" = ( +/obj/structure/cable/green, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 2; + name = "Autoname APC South"; + pixel_x = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aWY" = ( +/turf/open/floor/plasteel/caution/corner{ + dir = 4 + }, +/area/engine/engineering) +"aWZ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/green{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "ceprivacy"; + name = "privacy shutter" + }, +/turf/open/floor/plating, +/area/engine/chiefs_office) +"aXa" = ( +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/engine/chiefs_office) +"aXb" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/caution{ + dir = 4 + }, +/area/engine/chiefs_office) +"aXc" = ( +/obj/item/weapon/cartridge/engineering{ + pixel_x = 4; + pixel_y = 5 + }, +/obj/item/weapon/cartridge/engineering{ + pixel_x = -3; + pixel_y = 2 + }, +/obj/item/weapon/cartridge/engineering{ + pixel_x = 3 + }, +/obj/structure/table/reinforced, +/obj/item/weapon/cartridge/atmos, +/turf/open/floor/plasteel/darkyellow/corner{ + tag = "icon-darkyellowcorners (WEST)"; + dir = 8 + }, +/area/engine/chiefs_office) +"aXd" = ( +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/darkyellow/corner, +/area/engine/chiefs_office) +"aXe" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/computer/card/minor/ce, +/turf/open/floor/plasteel/darkyellow/side{ + tag = "icon-darkyellow (SOUTHEAST)"; + dir = 6 + }, +/area/engine/chiefs_office) +"aXf" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/atmos_control) +"aXg" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 1; + frequency = 1441; + id = "n2_in" + }, +/turf/open/floor/engine/n2, +/area/atmos) +"aXh" = ( +/obj/machinery/air_sensor{ + frequency = 1441; + id_tag = "n2_sensor" + }, +/turf/open/floor/engine/n2, +/area/atmos) +"aXi" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 0; + frequency = 1441; + id_tag = "n2_out"; + initialize_directions = 1; + internal_pressure_bound = 4000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine/n2, +/area/atmos) +"aXj" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 1; + frequency = 1441; + id = "o2_in" + }, +/turf/open/floor/engine/o2, +/area/atmos) +"aXk" = ( +/obj/machinery/air_sensor{ + frequency = 1441; + id_tag = "o2_sensor" + }, +/turf/open/floor/engine/o2, +/area/atmos) +"aXl" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 0; + frequency = 1441; + id_tag = "o2_out"; + initialize_directions = 1; + internal_pressure_bound = 4000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine/o2, +/area/atmos) +"aXm" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 1; + frequency = 1441; + id = "air_in" + }, +/turf/open/floor/engine/air, +/area/atmos) +"aXn" = ( +/obj/machinery/air_sensor{ + frequency = 1441; + id_tag = "air_sensor" + }, +/turf/open/floor/engine/air, +/area/atmos) +"aXo" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume{ + dir = 1; + external_pressure_bound = 0; + frequency = 1441; + icon_state = "in"; + id_tag = "air_out"; + internal_pressure_bound = 2000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine/air, +/area/atmos) +"aXp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aXq" = ( +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/atmos_control) +"aXr" = ( +/obj/structure/cable/green{ + tag = "icon-6-8"; + icon_state = "6-8" + }, +/obj/structure/cable/yellow{ + tag = "icon-4-9"; + icon_state = "4-9"; + d1 = 4; + d2 = 8 + }, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"aXs" = ( +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (NORTH)"; + dir = 1 + }, +/obj/structure/cable/green{ + tag = "icon-4-10"; + icon_state = "4-10" + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (NORTH)"; + dir = 1 + }, +/area/storage/tech) +"aXt" = ( +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (NORTH)"; + dir = 1 + }, +/obj/structure/cable/green{ + tag = "icon-2-5"; + icon_state = "2-5" + }, +/obj/structure/cable/green{ + tag = "icon-2-9"; + icon_state = "2-9" + }, +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (NORTH)"; + dir = 1 + }, +/area/storage/tech) +"aXu" = ( +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (NORTH)"; + dir = 1 + }, +/obj/structure/cable/green{ + tag = "icon-6-8"; + icon_state = "6-8" + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/camera{ + c_tag = "Secure Technical Storage"; + dir = 1; + network = list("SS13") + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (NORTH)"; + dir = 1 + }, +/area/storage/tech) +"aXv" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Law Office Maintenance"; + req_access_txt = "38" + }, +/turf/open/floor/plating, +/area/lawoffice) +"aXw" = ( +/turf/open/floor/wood, +/area/lawoffice) +"aXx" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/wood, +/area/lawoffice) +"aXy" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/effect/landmark/start{ + name = "Lawyer" + }, +/turf/open/floor/wood, +/area/lawoffice) +"aXz" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Law Office"; + req_access_txt = "38" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/courtroom) +"aXA" = ( +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/crew_quarters/courtroom) +"aXB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/courtroom) +"aXC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/courtroom) +"aXD" = ( +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/crew_quarters/courtroom) +"aXE" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/security/transfer) +"aXF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/darkred/side, +/area/security/transfer) +"aXG" = ( +/obj/structure/chair/stool, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/asmaint) +"aXH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/stack/sheet/cardboard, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aXI" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/latex, +/obj/item/clothing/mask/surgical, +/obj/item/clothing/suit/apron/surgical, +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/turf/open/floor/plasteel/black, +/area/medical/exam_room) +"aXJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white/corner{ + dir = 4 + }, +/area/medical/exam_room) +"aXK" = ( +/obj/structure/cable/cyan{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/medical/exam_room) +"aXL" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/white/corner{ + tag = "icon-whitecorner (NORTH)"; + dir = 1 + }, +/area/medical/exam_room) +"aXM" = ( +/obj/structure/table, +/obj/item/weapon/razor, +/obj/item/weapon/surgicaldrill, +/turf/open/floor/plasteel/black, +/area/medical/exam_room) +"aXN" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = -25; + tag = "SOUTH" + }, +/turf/open/floor/plasteel/black, +/area/medical/exam_room) +"aXO" = ( +/obj/machinery/light/small, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1 + }, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners (EAST)"; + dir = 4 + }, +/area/medical/exam_room) +"aXP" = ( +/turf/closed/wall, +/area/medical/chemistry) +"aXQ" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/window/southleft{ + dir = 2; + name = "Chemistry Desk"; + req_access_txt = "33" + }, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 4 + }, +/area/medical/chemistry) +"aXR" = ( +/obj/structure/cable/cyan{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_medical{ + id_tag = null; + name = "Chemistry Lab"; + req_access_txt = "5; 33" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whiteyellow, +/area/medical/chemistry) +"aXS" = ( +/obj/structure/sign/chemistry, +/turf/closed/wall, +/area/medical/chemistry) +"aXT" = ( +/turf/closed/wall, +/area/medical/medbay) +"aXU" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/medical/medbay) +"aXV" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_medical{ + id_tag = "MedbayFoyer"; + name = "Medbay"; + req_access_txt = "5" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whiteblue, +/area/medical/medbay) +"aXW" = ( +/obj/structure/cable/cyan{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_medical{ + id_tag = "MedbayFoyer"; + name = "Medbay"; + req_access_txt = "5" + }, +/turf/open/floor/plasteel/whiteblue, +/area/medical/medbay) +"aXX" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/medical/medbay) +"aXY" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_medical{ + id_tag = null; + name = "Medbay Desk"; + req_access_txt = "5" + }, +/turf/open/floor/plasteel/whiteblue, +/area/medical/medbay) +"aXZ" = ( +/obj/structure/cable/cyan{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aYa" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aYb" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aYc" = ( +/turf/closed/wall, +/area/medical/morgue) +"aYd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/medical/morgue) +"aYe" = ( +/obj/structure/cable/cyan{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/medical{ + name = "Morgue"; + req_access_txt = "6;5" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/blue, +/area/medical/morgue) +"aYf" = ( +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (NORTH)"; + dir = 1 + }, +/area/crew_quarters/locker) +"aYg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 4 + }, +/area/crew_quarters/locker) +"aYh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aYi" = ( +/obj/machinery/requests_console{ + department = "Locker Room"; + name = "Locker Room RC"; + pixel_x = 0; + pixel_y = 30 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Locker Room"; + dir = 2; + icon_state = "camera"; + network = list("SS13"); + tag = "" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aYj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aYk" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aYl" = ( +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aYm" = ( +/obj/machinery/vending/clothing, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aYn" = ( +/obj/machinery/message_server, +/turf/open/floor/plasteel/darkyellow{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"aYo" = ( +/turf/open/floor/plasteel/circuit/gcircuit{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"aYp" = ( +/obj/machinery/atmospherics/pipe/manifold/general/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/darkyellow/corner{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"aYq" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"aYr" = ( +/obj/machinery/atmospherics/pipe/manifold/general/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/turf/open/floor/plasteel/darkyellow/corner{ + tag = "icon-darkyellowcorners (WEST)"; + name = "Mainframe Floor"; + dir = 8; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"aYs" = ( +/obj/machinery/telecomms/receiver/preset_right, +/turf/open/floor/plasteel/circuit/gcircuit{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"aYt" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_command{ + name = "Control Room"; + req_access_txt = "19; 61" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + dir = 5 + }, +/area/tcommsat/computer) +"aYu" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/tcommsat/computer) +"aYv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/port) +"aYw" = ( +/turf/closed/wall, +/area/engine/break_room) +"aYx" = ( +/turf/closed/wall/r_wall, +/area/engine/break_room) +"aYy" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'RADIOACTIVE AREA'"; + icon_state = "radiation"; + name = "RADIOACTIVE AREA"; + pixel_x = 0; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/engine/break_room) +"aYz" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering{ + name = "Engine Room"; + req_access_txt = "10" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/yellow, +/area/engine/break_room) +"aYA" = ( +/obj/structure/sign/securearea, +/turf/closed/wall, +/area/engine/break_room) +"aYB" = ( +/obj/machinery/door/poddoor{ + id = "Secure Storage"; + name = "secure storage" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"aYC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/chiefs_office) +"aYD" = ( +/obj/structure/cable/green, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 2; + name = "Autoname APC South"; + pixel_x = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/caution{ + dir = 4 + }, +/area/engine/chiefs_office) +"aYE" = ( +/obj/structure/table/reinforced, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/machinery/light, +/obj/item/weapon/clipboard, +/obj/item/weapon/stock_parts/cell/high/plus, +/mob/living/simple_animal/parrot/Poly, +/turf/open/floor/plasteel/darkyellow/corner{ + tag = "icon-darkyellowcorners (WEST)"; + dir = 8 + }, +/area/engine/chiefs_office) +"aYF" = ( +/obj/machinery/button/door{ + id = "atmos"; + name = "Atmospherics Lockdown"; + pixel_x = 10; + pixel_y = -24; + req_access_txt = "24" + }, +/obj/machinery/button/door{ + desc = "A remote control-switch for secure storage."; + id = "Secure Storage"; + name = "Engineering Secure Storage"; + pixel_x = 0; + pixel_y = -24; + req_access_txt = "11" + }, +/obj/machinery/button/door{ + desc = "A remote control-switch for the engineering security doors."; + id = "Engineering"; + name = "Engineering Lockdown"; + pixel_x = -10; + pixel_y = -24; + req_access_txt = "10" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/engine/chiefs_office) +"aYG" = ( +/obj/machinery/suit_storage_unit/ce, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Chief Engineer's Desk"; + departmentType = 3; + name = "Chief Engineer RC"; + pixel_x = 32; + pixel_y = 0 + }, +/obj/machinery/newscaster{ + pixel_x = 0; + pixel_y = -32; + tag = "s" + }, +/turf/open/floor/plasteel/black, +/area/engine/chiefs_office) +"aYH" = ( +/turf/open/floor/engine/n2, +/area/atmos) +"aYI" = ( +/obj/machinery/portable_atmospherics/canister/nitrogen, +/turf/open/floor/engine/n2, +/area/atmos) +"aYJ" = ( +/turf/open/floor/engine/o2, +/area/atmos) +"aYK" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/engine/o2, +/area/atmos) +"aYL" = ( +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/engine/air, +/area/atmos) +"aYM" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/engine/air, +/area/atmos) +"aYN" = ( +/turf/open/floor/engine/air, +/area/atmos) +"aYO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aYP" = ( +/turf/closed/wall, +/area/storage/tech) +"aYQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/green{ + tag = "icon-0-5"; + icon_state = "0-5" + }, +/turf/open/floor/plating, +/area/storage/tech) +"aYR" = ( +/obj/structure/sign/securearea, +/turf/closed/wall/r_wall, +/area/storage/tech) +"aYS" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/highsecurity{ + name = "Secure Tech Storage"; + req_access_txt = "19;23" + }, +/turf/open/floor/plating, +/area/storage/tech) +"aYT" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE" + }, +/turf/closed/wall/r_wall, +/area/storage/tech) +"aYU" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/green{ + tag = "icon-0-9"; + icon_state = "0-9" + }, +/turf/open/floor/plating, +/area/storage/tech) +"aYV" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aYW" = ( +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/atmos_control) +"aYX" = ( +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"aYY" = ( +/obj/structure/cable/green{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + aidisabled = 0; + auto_name = 1; + cell_type = 2500; + dir = 4; + name = "Autoname APC East"; + pixel_x = 24; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/lawoffice) +"aYZ" = ( +/obj/machinery/camera{ + c_tag = "Law Office"; + dir = 4; + network = list("SS13") + }, +/turf/open/floor/wood, +/area/lawoffice) +"aZa" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/lawoffice) +"aZb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/lawoffice) +"aZc" = ( +/obj/structure/closet/lawcloset, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/wood, +/area/lawoffice) +"aZd" = ( +/obj/structure/chair{ + dir = 4; + name = "Prosecution" + }, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/crew_quarters/courtroom) +"aZe" = ( +/obj/structure/table/wood, +/obj/item/weapon/folder/red, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/crew_quarters/courtroom) +"aZf" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/courtroom) +"aZg" = ( +/obj/structure/table/wood, +/obj/item/weapon/folder/blue, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/crew_quarters/courtroom) +"aZh" = ( +/obj/structure/chair{ + dir = 8; + name = "Defense" + }, +/turf/open/floor/plasteel/green/side{ + dir = 5 + }, +/area/crew_quarters/courtroom) +"aZi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/security/transfer) +"aZj" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aZk" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aZl" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aZm" = ( +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aZn" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/item/device/assembly/mousetrap/armed, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"aZo" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Surgery Maintenance"; + req_access_txt = "45" + }, +/obj/structure/cable/cyan{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/medical/exam_room) +"aZp" = ( +/obj/structure/table, +/obj/item/stack/packageWrap, +/obj/item/weapon/hand_labeler, +/obj/item/weapon/folder/white, +/obj/item/device/radio/headset/headset_med, +/obj/machinery/requests_console{ + department = "Chemistry"; + departmentType = 2; + name = "Chemistry RC"; + pixel_x = -30; + pixel_y = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"aZq" = ( +/obj/effect/landmark/start{ + name = "Chemist" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/chair/office/light{ + dir = 1 + }, +/turf/open/floor/plasteel/whiteyellow/corner{ + dir = 4 + }, +/area/medical/chemistry) +"aZr" = ( +/obj/structure/cable/cyan{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 1 + }, +/area/medical/chemistry) +"aZs" = ( +/obj/machinery/chem_heater, +/turf/open/floor/plasteel/whiteyellow/corner{ + dir = 1 + }, +/area/medical/chemistry) +"aZt" = ( +/obj/machinery/chem_dispenser, +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/warnwhite{ + tag = "icon-warnwhite (SOUTHWEST)"; + dir = 10 + }, +/area/medical/chemistry) +"aZu" = ( +/obj/machinery/chem_master, +/turf/open/floor/plasteel/warnwhite{ + tag = "icon-warnwhite (SOUTHEAST)"; + dir = 6 + }, +/area/medical/chemistry) +"aZv" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/medical/chemistry) +"aZw" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Medbay Waiting Area"; + network = list("SS13") + }, +/turf/open/floor/plasteel/whiteblue/corner{ + tag = "icon-whitebluecorner (EAST)"; + dir = 4 + }, +/area/medical/medbay) +"aZx" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (NORTH)"; + dir = 1 + }, +/area/medical/medbay) +"aZy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (NORTH)"; + dir = 1 + }, +/area/medical/medbay) +"aZz" = ( +/obj/structure/cable/cyan{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (NORTH)"; + dir = 1 + }, +/area/medical/medbay) +"aZA" = ( +/obj/structure/table/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (NORTH)"; + dir = 1 + }, +/area/medical/medbay) +"aZB" = ( +/obj/structure/chair/office/light, +/obj/machinery/button/door{ + desc = "A remote control switch for the medbay foyer."; + id = "MedbayFoyer"; + name = "Medbay Doors Control"; + normaldoorcontrol = 1; + pixel_x = -26; + req_access_txt = "5" + }, +/obj/effect/landmark/start{ + name = "Medical Doctor" + }, +/turf/open/floor/plasteel/whiteblue/side{ + tag = "icon-whiteblue (NORTH)"; + dir = 1 + }, +/area/medical/medbay) +"aZC" = ( +/obj/machinery/computer/med_data, +/obj/machinery/requests_console{ + announcementConsole = 0; + department = "Medbay"; + departmentType = 1; + name = "Medbay RC"; + pixel_x = 30; + pixel_y = 0; + pixel_z = 0 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = 20; + tag = "NORTH" + }, +/turf/open/floor/plasteel/whiteblue/corner{ + tag = "icon-whitebluecorner (NORTH)"; + dir = 1 + }, +/area/medical/medbay) +"aZD" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/whitered/corner{ + tag = "icon-whiteredcorner"; + dir = 2 + }, +/area/medical/medbay) +"aZE" = ( +/obj/structure/cable/cyan{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plasteel/whitered/side{ + dir = 2 + }, +/area/medical/medbay) +"aZF" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plasteel/whitered/corner{ + tag = "icon-whiteredcorner (WEST)"; + dir = 8 + }, +/area/medical/medbay) +"aZG" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = -30; + tag = "s" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aZH" = ( +/obj/machinery/vending/medical{ + pixel_x = -2 + }, +/obj/machinery/requests_console{ + announcementConsole = 0; + department = "Medbay"; + departmentType = 1; + name = "Medbay RC"; + pixel_x = 30; + pixel_y = 0; + pixel_z = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"aZI" = ( +/obj/machinery/disposal/bin, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners (EAST)"; + dir = 4 + }, +/area/medical/morgue) +"aZJ" = ( +/obj/structure/cable/cyan{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (NORTH)"; + dir = 1 + }, +/area/medical/morgue) +"aZK" = ( +/obj/structure/bodycontainer/morgue, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners (NORTH)"; + dir = 1 + }, +/area/medical/morgue) +"aZL" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"aZM" = ( +/obj/structure/bodycontainer/morgue, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"aZN" = ( +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"aZO" = ( +/obj/structure/bodycontainer/morgue, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"aZP" = ( +/obj/machinery/door/airlock{ + id_tag = "AuxToilet3"; + name = "Unit 3" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/locker/locker_toilet) +"aZQ" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/camera{ + c_tag = "Restroom"; + dir = 9; + icon_state = "camera"; + network = list("SS13"); + tag = "" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/locker/locker_toilet) +"aZR" = ( +/obj/structure/closet/secure_closet/personal, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aZS" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aZT" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aZU" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aZV" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aZW" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + frequency = 1439; + id_tag = null; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aZX" = ( +/obj/structure/closet/wardrobe/white, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aZY" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Telecomms Server Racks"; + dir = 4; + network = list("SS13") + }, +/obj/machinery/airalarm/server{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22; + tag = "icon-alarm0 (EAST)" + }, +/obj/machinery/ntnet_relay, +/turf/open/floor/plasteel/darkyellow{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"aZZ" = ( +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/turf/open/floor/plasteel/circuit/gcircuit{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"baa" = ( +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/obj/structure/cable/green{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/turf/open/floor/plasteel/circuit/gcircuit{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bab" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/turf/open/floor/plasteel/circuit/gcircuit{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bac" = ( +/obj/machinery/telecomms/hub/preset, +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/darkyellow{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bad" = ( +/obj/machinery/atmospherics/pipe/manifold/general/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plasteel/circuit/gcircuit{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bae" = ( +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/circuit/gcircuit{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"baf" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/circuit/gcircuit{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bag" = ( +/obj/machinery/door/airlock/glass_engineering{ + name = "Server Room"; + req_access_txt = "61" + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/darkyellow, +/area/tcommsat/computer) +"bah" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plasteel/darkyellow, +/area/tcommsat/computer) +"bai" = ( +/obj/machinery/door/airlock/glass_engineering{ + name = "Server Room"; + req_access_txt = "61" + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/darkyellow, +/area/tcommsat/computer) +"baj" = ( +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + dir = 5 + }, +/area/tcommsat/computer) +"bak" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light_switch{ + pixel_x = 24; + tag = "e" + }, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + dir = 5 + }, +/area/tcommsat/computer) +"bal" = ( +/turf/open/floor/plasteel, +/area/engine/break_room) +"bam" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/camera{ + c_tag = "Engineering Foyer"; + network = list("SS13") + }, +/turf/open/floor/plasteel/caution/corner{ + dir = 4 + }, +/area/engine/break_room) +"ban" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/break_room) +"bao" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/engine/break_room) +"bap" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = 31 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"baq" = ( +/obj/machinery/shieldgen, +/turf/open/floor/plating, +/area/engine/engineering) +"bar" = ( +/obj/structure/closet/crate, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/weapon/electronics/airlock, +/obj/item/weapon/electronics/airlock, +/obj/item/weapon/stock_parts/cell/high/plus, +/obj/item/stack/sheet/mineral/plasma{ + amount = 30 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"bas" = ( +/obj/machinery/power/port_gen/pacman, +/turf/open/floor/plating, +/area/engine/engineering) +"bat" = ( +/obj/machinery/portable_atmospherics/canister/toxins, +/turf/open/floor/plating, +/area/engine/engineering) +"bau" = ( +/obj/machinery/door/airlock/maintenance{ + glass = 0; + name = "Chief Engineer's Office Maintenance"; + opacity = 1; + req_access_txt = "56" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/engine/chiefs_office) +"bav" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (NORTH)"; + dir = 1 + }, +/area/hallway/secondary/entry) +"baw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (EAST)"; + dir = 4 + }, +/area/hallway/secondary/entry) +"bax" = ( +/obj/machinery/light/small, +/turf/open/floor/engine/n2, +/area/atmos) +"bay" = ( +/obj/machinery/light/small, +/turf/open/floor/engine/o2, +/area/atmos) +"baz" = ( +/obj/machinery/light/small, +/turf/open/floor/engine/air, +/area/atmos) +"baA" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/storage/toolbox/electrical{ + pixel_x = 1; + pixel_y = -1 + }, +/obj/item/clothing/gloves/color/yellow, +/obj/item/device/t_scanner, +/obj/item/device/multitool, +/turf/open/floor/plating, +/area/storage/tech) +"baB" = ( +/turf/open/floor/plating, +/area/storage/tech) +"baC" = ( +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = 20; + tag = "NORTH" + }, +/turf/open/floor/plating, +/area/storage/tech) +"baD" = ( +/obj/structure/cable/green{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 1; + name = "Autoname APC North"; + pixel_x = 0; + pixel_y = 24 + }, +/turf/open/floor/plating, +/area/storage/tech) +"baE" = ( +/obj/structure/table, +/obj/item/weapon/stock_parts/subspace/transmitter, +/obj/item/weapon/stock_parts/subspace/transmitter, +/obj/item/weapon/stock_parts/subspace/treatment, +/obj/item/weapon/stock_parts/subspace/treatment, +/obj/item/weapon/stock_parts/subspace/treatment, +/turf/open/floor/plating, +/area/storage/tech) +"baF" = ( +/obj/structure/table, +/obj/item/weapon/stock_parts/micro_laser, +/obj/item/weapon/stock_parts/manipulator, +/obj/item/weapon/stock_parts/manipulator, +/obj/item/weapon/stock_parts/manipulator, +/obj/item/weapon/stock_parts/manipulator, +/obj/item/weapon/stock_parts/capacitor, +/obj/item/weapon/stock_parts/micro_laser/high, +/obj/item/weapon/stock_parts/micro_laser/high, +/obj/item/weapon/stock_parts/micro_laser/high, +/obj/item/weapon/stock_parts/micro_laser/high, +/turf/open/floor/plating, +/area/storage/tech) +"baG" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/storage/tech) +"baH" = ( +/obj/structure/table, +/obj/item/device/aicard, +/obj/item/weapon/aiModule/reset, +/turf/open/floor/plating, +/area/storage/tech) +"baI" = ( +/obj/structure/table, +/obj/item/device/flashlight{ + pixel_x = 1; + pixel_y = 5 + }, +/obj/item/device/flashlight{ + pixel_x = 1; + pixel_y = 5 + }, +/obj/item/device/assembly/flash/handheld, +/obj/item/device/assembly/flash/handheld, +/turf/open/floor/plating, +/area/storage/tech) +"baJ" = ( +/obj/structure/cable/green{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/space_heater, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 2; + name = "Autoname APC South"; + pixel_x = 1; + pixel_y = -24 + }, +/turf/open/floor/plating, +/area/storage/art) +"baK" = ( +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"baL" = ( +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"baM" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/lawoffice) +"baN" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + glass = 1; + name = "Law Office"; + opacity = 0; + req_access_txt = "38" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/lawoffice) +"baO" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/lawoffice) +"baP" = ( +/obj/structure/chair{ + dir = 4; + name = "Prosecution" + }, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/crew_quarters/courtroom) +"baQ" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper, +/turf/open/floor/plasteel/neutral/side{ + dir = 10 + }, +/area/crew_quarters/courtroom) +"baR" = ( +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/courtroom) +"baS" = ( +/obj/item/device/radio/beacon, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/courtroom) +"baT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/courtroom) +"baU" = ( +/obj/structure/table/wood, +/turf/open/floor/plasteel/neutral/side{ + dir = 6 + }, +/area/crew_quarters/courtroom) +"baV" = ( +/obj/structure/chair{ + dir = 8; + name = "Defense" + }, +/turf/open/floor/plasteel/green/side{ + dir = 6 + }, +/area/crew_quarters/courtroom) +"baW" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/black, +/area/security/transfer) +"baX" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/darkred/side, +/area/security/transfer) +"baY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/item/toy/gun, +/turf/open/floor/plating, +/area/maintenance/fore) +"baZ" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/open/floor/plating, +/area/maintenance/fore) +"bba" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"bbb" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bbc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bbd" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bbe" = ( +/obj/structure/grille/broken, +/obj/item/weapon/shard, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bbf" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bbg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/cyan{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bbh" = ( +/obj/structure/cable/cyan{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 1; + name = "Autoname APC North"; + pixel_x = 0; + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/exam_room) +"bbi" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bbj" = ( +/obj/item/weapon/vending_refill/snack, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bbk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/closet/wardrobe/chemistry_white, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bbl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/medical/chemistry) +"bbm" = ( +/obj/structure/closet/wardrobe/chemistry_white, +/obj/structure/cable/cyan{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 8; + name = "Autoname APC West"; + pixel_x = -25; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bbn" = ( +/obj/structure/cable/cyan{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bbo" = ( +/obj/structure/cable/cyan{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bbp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bbq" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteyellow/side{ + tag = "icon-whiteyellow (EAST)"; + dir = 4 + }, +/area/medical/chemistry) +"bbr" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/window/eastright{ + dir = 8; + name = "Chemistry Desk"; + req_access_txt = "33" + }, +/turf/open/floor/plasteel/whiteyellow, +/area/medical/chemistry) +"bbs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteyellow/side{ + tag = "icon-whiteyellow (WEST)"; + dir = 8 + }, +/area/medical/medbay) +"bbt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bbu" = ( +/obj/structure/cable/cyan{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bbv" = ( +/obj/structure/table/reinforced, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (EAST)"; + dir = 4 + }, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7; + tag = "every single paper bin is edited to this" + }, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bbw" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder/white, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bbx" = ( +/obj/structure/table/reinforced, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/machinery/cell_charger, +/obj/machinery/light{ + dir = 4 + }, +/obj/item/weapon/stock_parts/cell/crap, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bby" = ( +/turf/closed/wall, +/area/security/checkpoint/medical) +"bbz" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/checkpoint/medical) +"bbA" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_security{ + name = "Security Office"; + req_access_txt = "63" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/darkred, +/area/security/checkpoint/medical) +"bbB" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/security/checkpoint/medical) +"bbC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light_switch{ + pixel_x = -24; + tag = "w" + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bbD" = ( +/obj/structure/cable/cyan{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bbE" = ( +/obj/structure/bodycontainer/morgue, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bbF" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bbG" = ( +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/weapon/storage/toolbox/mechanical, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bbH" = ( +/obj/structure/table, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bbI" = ( +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/item/weapon/storage/toolbox/mechanical, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bbJ" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bbK" = ( +/obj/structure/closet/wardrobe/black, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bbL" = ( +/obj/machinery/blackbox_recorder, +/turf/open/floor/plasteel/darkyellow{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bbM" = ( +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/darkyellow/corner{ + tag = "icon-darkyellowcorners (NORTH)"; + name = "Mainframe Floor"; + dir = 1; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bbN" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/circuit/gcircuit{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bbO" = ( +/obj/machinery/atmospherics/pipe/manifold/general/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/darkyellow/corner{ + tag = "icon-darkyellowcorners (EAST)"; + name = "Mainframe Floor"; + dir = 4; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bbP" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bbQ" = ( +/obj/machinery/atmospherics/pipe/manifold/general/hidden{ + tag = "icon-manifold (EAST)"; + icon_state = "manifold"; + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/darkyellow/corner{ + tag = "icon-darkyellowcorners (NORTH)"; + name = "Mainframe Floor"; + dir = 1; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bbR" = ( +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/telecomms/receiver/preset_left, +/turf/open/floor/plasteel/circuit/gcircuit{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bbS" = ( +/turf/open/floor/plasteel/darkyellow/corner{ + tag = "icon-darkyellowcorners (EAST)"; + name = "Mainframe Floor"; + dir = 4; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bbT" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/turf/open/floor/plating, +/area/tcommsat/computer) +"bbU" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + dir = 5 + }, +/area/tcommsat/computer) +"bbV" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (EAST)"; + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Telecomms Control Room"; + dir = 8; + network = list("SS13"); + pixel_x = 0; + pixel_y = 0 + }, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + dir = 5 + }, +/area/tcommsat/computer) +"bbW" = ( +/obj/structure/cable/green{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 8; + name = "Autoname APC West"; + pixel_x = -25; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/yellow/corner{ + tag = "icon-yellowcorner (WEST)"; + dir = 8 + }, +/area/engine/break_room) +"bbX" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/yellow/corner{ + tag = "icon-yellowcorner (WEST)"; + dir = 8 + }, +/area/engine/break_room) +"bbY" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bbZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bca" = ( +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/machinery/light_switch{ + pixel_x = 24; + tag = "e" + }, +/obj/item/device/radio/off, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bcb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bcc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bcd" = ( +/obj/structure/girder, +/turf/open/floor/plating, +/area/maintenance/aft) +"bce" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (EAST)"; + dir = 4 + }, +/area/hallway/secondary/entry) +"bcf" = ( +/obj/structure/table, +/obj/item/device/plant_analyzer, +/obj/item/weapon/stock_parts/cell/high/plus, +/turf/open/floor/plating, +/area/storage/tech) +"bcg" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 + }, +/turf/open/floor/plating, +/area/storage/tech) +"bch" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/circuitboard/computer/cloning{ + pixel_x = 0 + }, +/obj/item/weapon/circuitboard/computer/med_data{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/weapon/circuitboard/machine/clonescanner, +/obj/item/weapon/circuitboard/machine/clonepod, +/obj/item/weapon/circuitboard/computer/scan_consolenew, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/storage/tech) +"bci" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/circuitboard/computer/secure_data{ + pixel_x = -2; + pixel_y = 2 + }, +/obj/item/weapon/circuitboard/computer/security{ + pixel_x = 1; + pixel_y = -1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plating, +/area/storage/tech) +"bcj" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/circuitboard/computer/mining, +/obj/item/weapon/circuitboard/machine/autolathe{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/weapon/circuitboard/computer/arcade/battle, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/storage/tech) +"bck" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/storage/tech) +"bcl" = ( +/obj/structure/table, +/obj/item/weapon/stock_parts/subspace/filter, +/obj/item/weapon/stock_parts/subspace/filter, +/obj/item/weapon/stock_parts/subspace/filter, +/obj/item/weapon/stock_parts/subspace/filter, +/obj/item/weapon/stock_parts/subspace/filter, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/storage/tech) +"bcm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/storage/tech) +"bcn" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plating, +/area/storage/tech) +"bco" = ( +/obj/structure/table, +/obj/item/weapon/electronics/apc, +/obj/item/weapon/electronics/airlock, +/turf/open/floor/plating, +/area/storage/tech) +"bcp" = ( +/turf/closed/wall, +/area/storage/art) +"bcq" = ( +/obj/structure/table/wood, +/obj/item/weapon/stamp/law, +/obj/machinery/light_switch{ + pixel_x = -24; + tag = "w" + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = 20; + tag = "NORTH" + }, +/turf/open/floor/wood, +/area/lawoffice) +"bcr" = ( +/obj/structure/chair/office/dark, +/obj/effect/landmark/start{ + name = "Lawyer" + }, +/turf/open/floor/wood, +/area/lawoffice) +"bcs" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/obj/machinery/button/door{ + id = "lawyer_blast"; + name = "Privacy Shutters"; + pixel_x = 25; + pixel_y = 8 + }, +/turf/open/floor/wood, +/area/lawoffice) +"bct" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/courtroom) +"bcu" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Courtroom"; + req_access_txt = "42" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/crew_quarters/courtroom) +"bcv" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/crew_quarters/courtroom) +"bcw" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/heater{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"bcx" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/weapon/circuitboard/computer/rdconsole, +/obj/item/weapon/stock_parts/console_screen, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/asmaint) +"bcy" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/weapon/stock_parts/micro_laser, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bcz" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bcA" = ( +/obj/structure/grille, +/obj/item/weapon/shard, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bcB" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bcC" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bcD" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/asmaint) +"bcE" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bcF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/asmaint) +"bcG" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Chemistry Lab Maintenance"; + req_access_txt = "5; 33" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/chemistry) +"bcH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bcI" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bcJ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/mob/living/simple_animal/bot/cleanbot{ + name = "C.L.E.A.N." + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bcK" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bcL" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bcM" = ( +/obj/structure/table/glass, +/obj/item/weapon/storage/box/beakers{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/weapon/storage/box/beakers{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/weapon/reagent_containers/glass/beaker/large, +/obj/item/weapon/reagent_containers/glass/beaker/large, +/obj/item/weapon/reagent_containers/dropper, +/obj/item/weapon/reagent_containers/dropper, +/turf/open/floor/plasteel/whiteyellow/side{ + tag = "icon-whiteyellow (EAST)"; + dir = 4 + }, +/area/medical/chemistry) +"bcN" = ( +/obj/machinery/smartfridge/chemistry, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/whiteyellow, +/area/medical/chemistry) +"bcO" = ( +/turf/open/floor/plasteel/whiteyellow/side{ + tag = "icon-whiteyellow (WEST)"; + dir = 8 + }, +/area/medical/medbay) +"bcP" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bcQ" = ( +/obj/structure/cable/cyan{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitebot, +/area/medical/medbay) +"bcR" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bcS" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bcT" = ( +/obj/machinery/computer/secure_data, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTHWEST)"; + dir = 9 + }, +/area/security/checkpoint/medical) +"bcU" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTH)"; + dir = 1 + }, +/area/security/checkpoint/medical) +"bcV" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTHEAST)"; + dir = 5 + }, +/area/security/checkpoint/medical) +"bcW" = ( +/obj/item/weapon/paper_bin{ + pixel_x = -2; + pixel_y = 5; + tag = "every single paper bin is edited to this" + }, +/turf/open/floor/plating, +/area/medical/morgue) +"bcX" = ( +/obj/structure/filingcabinet, +/obj/structure/cable/cyan{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 8; + name = "Autoname APC West"; + pixel_x = -25; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bcY" = ( +/obj/structure/cable/cyan{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bcZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bda" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Morgue Maintenance"; + req_access_txt = "6" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/morgue) +"bdb" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (EAST)"; + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/port) +"bdc" = ( +/obj/machinery/door/airlock{ + id_tag = "AuxToilet2"; + name = "Unit 2" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/locker/locker_toilet) +"bdd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/locker/locker_toilet) +"bde" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (EAST)"; + dir = 4 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/light_switch{ + pixel_x = 24; + tag = "e" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/locker/locker_toilet) +"bdf" = ( +/obj/structure/closet/secure_closet/personal, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bdg" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bdh" = ( +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bdi" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bdj" = ( +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bdk" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bdl" = ( +/obj/structure/closet/wardrobe/grey, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bdm" = ( +/turf/open/floor/plasteel/darkyellow/corner{ + tag = "icon-darkyellowcorners (NORTH)"; + name = "Mainframe Floor"; + dir = 1; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bdn" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 140; + on = 1; + pressure_checks = 0 + }, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bdo" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 120; + initialize_directions = 1; + internal_pressure_bound = 4000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bdp" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/manifold/general/hidden{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plating, +/area/tcommsat/computer) +"bdq" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + target_temperature = 80; + dir = 8; + icon_state = "freezer"; + on = 1; + tag = "icon-freezer (EAST)" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 9; + tag = "" + }, +/area/tcommsat/computer) +"bdr" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bds" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plasteel/yellow/corner{ + tag = "icon-yellowcorner (EAST)"; + dir = 4 + }, +/area/tcommsat/computer) +"bdt" = ( +/obj/machinery/vending/cola, +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plasteel/cafeteria, +/area/engine/break_room) +"bdu" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel/yellow/corner{ + tag = "icon-yellowcorner (WEST)"; + dir = 8 + }, +/area/engine/break_room) +"bdv" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/holopad, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/bot, +/area/engine/break_room) +"bdw" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bdx" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bdy" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Engineering Foyer Maintenance"; + req_access_txt = "0"; + req_one_access_txt = "32;19" + }, +/turf/open/floor/plating, +/area/engine/break_room) +"bdz" = ( +/obj/machinery/field/generator{ + anchored = 0; + state = 2 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"bdA" = ( +/obj/machinery/the_singularitygen{ + anchored = 0 + }, +/obj/machinery/light/small, +/obj/machinery/camera{ + c_tag = "Engineering Secure Storage"; + dir = 1; + network = list("SS13") + }, +/turf/open/floor/plating, +/area/engine/engineering) +"bdB" = ( +/obj/machinery/power/emitter, +/turf/open/floor/plating, +/area/engine/engineering) +"bdC" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/aft) +"bdD" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (EAST)"; + dir = 4 + }, +/area/hallway/secondary/entry) +"bdE" = ( +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/storage/tech) +"bdF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/storage/tech) +"bdG" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/storage/tech) +"bdH" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/storage/tech) +"bdI" = ( +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/storage/tech) +"bdJ" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/storage/tech) +"bdK" = ( +/obj/structure/table, +/obj/item/stack/cable_coil/random, +/obj/item/stack/cable_coil/random, +/turf/open/floor/plasteel/black/corner{ + tag = "icon-blackcorner (NORTH)"; + dir = 1 + }, +/area/storage/art) +"bdL" = ( +/obj/structure/table, +/obj/item/stack/cable_coil/random, +/obj/item/stack/cable_coil/random, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = 20; + tag = "NORTH" + }, +/turf/open/floor/plasteel, +/area/storage/art) +"bdM" = ( +/obj/structure/table, +/obj/item/weapon/hand_labeler, +/turf/open/floor/plasteel/black/corner{ + tag = "icon-blackcorner (EAST)"; + dir = 4 + }, +/area/storage/art) +"bdN" = ( +/obj/item/weapon/storage/fancy/cigarettes/cigpack_shadyjims, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"bdO" = ( +/obj/structure/table/wood, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/item/device/flashlight/lamp/green{ + pixel_x = 1; + pixel_y = 5 + }, +/turf/open/floor/wood, +/area/lawoffice) +"bdP" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/item/weapon/book/manual/wiki/security_space_law, +/turf/open/floor/wood, +/area/lawoffice) +"bdQ" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/obj/item/weapon/folder/red, +/obj/item/weapon/pen, +/turf/open/floor/wood, +/area/lawoffice) +"bdR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/turf/open/floor/wood, +/area/lawoffice) +"bdS" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/lawoffice) +"bdT" = ( +/turf/open/floor/plasteel/black, +/area/crew_quarters/courtroom) +"bdU" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/courtroom) +"bdV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/crew_quarters/courtroom) +"bdW" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/crew_quarters/courtroom) +"bdX" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/security/transfer) +"bdY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/darkred/side, +/area/security/transfer) +"bdZ" = ( +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"bea" = ( +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"beb" = ( +/obj/effect/spawner/structure/window, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bec" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bed" = ( +/obj/structure/grille/broken, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/item/weapon/shard{ + icon_state = "small" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bee" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/arrival{ + dir = 4 + }, +/area/hallway/secondary/entry) +"bef" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"beg" = ( +/obj/structure/closet/secure_closet/chemical, +/obj/machinery/light_switch{ + pixel_x = -24; + tag = "w" + }, +/obj/machinery/camera{ + c_tag = "Medbay Chemistry"; + dir = 4; + network = list("SS13") + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"beh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bei" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bej" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Chemist" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteyellow/side{ + tag = "icon-whiteyellow (EAST)"; + dir = 4 + }, +/area/medical/chemistry) +"bek" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/window/eastright{ + base_state = "left"; + dir = 8; + icon_state = "left"; + name = "Chemistry Desk"; + req_access_txt = "33" + }, +/turf/open/floor/plasteel/whiteyellow, +/area/medical/chemistry) +"bel" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteyellow/side{ + tag = "icon-whiteyellow (WEST)"; + dir = 8 + }, +/area/medical/medbay) +"bem" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"ben" = ( +/obj/structure/cable/cyan{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"beo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"bep" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"beq" = ( +/obj/structure/table, +/obj/machinery/recharger, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (WEST)"; + dir = 8 + }, +/area/security/checkpoint/medical) +"ber" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/obj/effect/landmark/start/depsec/medical, +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/security/checkpoint/medical) +"bes" = ( +/obj/machinery/requests_console{ + department = "Security"; + departmentType = 5; + name = "Medical Post RC"; + pixel_x = 30; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (EAST)"; + dir = 4 + }, +/area/security/checkpoint/medical) +"bet" = ( +/obj/effect/gibspawner/human, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/medical/morgue) +"beu" = ( +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_x = -25; + pixel_y = -2; + tag = "WEST" + }, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7; + tag = "every single paper bin is edited to this" + }, +/obj/item/weapon/folder/white, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bev" = ( +/obj/structure/closet/secure_closet/personal, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bew" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bex" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bey" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bez" = ( +/obj/structure/closet/wardrobe/mixed, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"beA" = ( +/obj/machinery/telecomms/processor/preset_two, +/turf/open/floor/plasteel/yellow/side{ + dir = 9; + initial_gas_mix = "n2=100;TEMP=80"; + tag = "icon-yellow (NORTHWEST)" + }, +/area/tcommsat/server) +"beB" = ( +/obj/machinery/telecomms/bus/preset_two, +/turf/open/floor/plasteel/neutral/side{ + dir = 5; + initial_gas_mix = "n2=100;TEMP=80"; + tag = "icon-neutral (NORTHEAST)" + }, +/area/tcommsat/server) +"beC" = ( +/obj/machinery/telecomms/broadcaster/preset_left, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"beD" = ( +/obj/machinery/telecomms/server/presets/medical, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 9; + initial_gas_mix = "n2=100;TEMP=80"; + tag = "icon-whiteblue (NORTHWEST)" + }, +/area/tcommsat/server) +"beE" = ( +/obj/machinery/telecomms/server/presets/science, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 5; + initial_gas_mix = "n2=100;TEMP=80"; + tag = "icon-whitehall (WEST)" + }, +/area/tcommsat/server) +"beF" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + target_temperature = 80; + dir = 8; + icon_state = "freezer"; + on = 1; + tag = "icon-freezer (EAST)" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 8; + tag = "" + }, +/area/tcommsat/computer) +"beG" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"beH" = ( +/obj/structure/chair/office/dark, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"beI" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/donkpockets, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27; + pixel_y = 0; + tag = "w" + }, +/turf/open/floor/plasteel/cafeteria, +/area/engine/break_room) +"beJ" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/yellow/corner{ + tag = "icon-yellowcorner (WEST)"; + dir = 8 + }, +/area/engine/break_room) +"beK" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/break_room) +"beL" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/break_room) +"beM" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel, +/area/mining_construction) +"beN" = ( +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"beO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/aft) +"beP" = ( +/obj/item/weapon/storage/toolbox/emergency, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"beQ" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"beR" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (NORTH)"; + dir = 1 + }, +/area/hallway/secondary/entry) +"beS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/mining_construction) +"beT" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (EAST)"; + dir = 4 + }, +/area/hallway/secondary/entry) +"beU" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"beV" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"beW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"beX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/structure/grille/broken, +/obj/item/weapon/shard, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"beY" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/grille/broken, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"beZ" = ( +/obj/structure/table, +/obj/item/device/analyzer, +/obj/item/device/healthanalyzer, +/turf/open/floor/plating, +/area/storage/tech) +"bfa" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plating, +/area/storage/tech) +"bfb" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/circuitboard/computer/pandemic{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/circuitboard/computer/rdconsole, +/obj/item/weapon/circuitboard/machine/rdserver{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/weapon/circuitboard/machine/destructive_analyzer, +/obj/item/weapon/circuitboard/machine/protolathe, +/obj/item/weapon/circuitboard/computer/aifixer, +/obj/item/weapon/circuitboard/computer/teleporter, +/obj/item/weapon/circuitboard/machine/circuit_imprinter, +/obj/item/weapon/circuitboard/machine/mechfab, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plating, +/area/storage/tech) +"bfc" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/circuitboard/computer/powermonitor{ + pixel_x = -2; + pixel_y = 2 + }, +/obj/item/weapon/circuitboard/computer/stationalert{ + pixel_x = 1; + pixel_y = -1 + }, +/obj/item/weapon/circuitboard/computer/atmos_alert{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/storage/tech) +"bfd" = ( +/obj/structure/rack, +/obj/item/weapon/circuitboard/machine/telecomms/processor, +/obj/item/weapon/circuitboard/machine/telecomms/receiver, +/obj/item/weapon/circuitboard/machine/telecomms/server, +/obj/item/weapon/circuitboard/machine/telecomms/bus, +/obj/item/weapon/circuitboard/machine/telecomms/broadcaster, +/obj/item/weapon/circuitboard/computer/message_monitor{ + pixel_y = -5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/storage/tech) +"bfe" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/storage/tech) +"bff" = ( +/obj/structure/table, +/obj/item/weapon/stock_parts/subspace/analyzer, +/obj/item/weapon/stock_parts/subspace/analyzer, +/obj/item/weapon/stock_parts/subspace/analyzer, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/storage/tech) +"bfg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/storage/tech) +"bfh" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plating, +/area/storage/tech) +"bfi" = ( +/obj/structure/table, +/obj/item/weapon/screwdriver{ + pixel_y = 16 + }, +/obj/item/weapon/wirecutters, +/turf/open/floor/plating, +/area/storage/tech) +"bfj" = ( +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/storage/art) +"bfk" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel, +/area/storage/art) +"bfl" = ( +/obj/structure/table, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/item/weapon/storage/crayons, +/obj/item/weapon/storage/crayons, +/turf/open/floor/plasteel, +/area/storage/art) +"bfm" = ( +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/atmos_control) +"bfn" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/wood, +/area/lawoffice) +"bfo" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/wood, +/area/lawoffice) +"bfp" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (EAST)"; + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/lawoffice) +"bfq" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/wood, +/area/lawoffice) +"bfr" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/courtroom) +"bfs" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/courtroom) +"bft" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/crew_quarters/courtroom) +"bfu" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/courtroom) +"bfv" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/courtroom) +"bfw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/security/transfer) +"bfx" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 2 + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fore) +"bfy" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bfz" = ( +/obj/item/weapon/rack_parts, +/obj/item/weapon/vending_refill/coffee, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bfA" = ( +/obj/structure/grille, +/obj/item/weapon/shard{ + icon_state = "medium" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bfB" = ( +/obj/structure/grille/broken, +/obj/item/weapon/shard{ + icon_state = "medium" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bfC" = ( +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/asmaint) +"bfD" = ( +/obj/structure/rack, +/obj/item/weapon/stock_parts/console_screen, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/weapon/wirecutters, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/asmaint) +"bfE" = ( +/obj/structure/rack, +/obj/item/weapon/stock_parts/matter_bin, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/asmaint) +"bfF" = ( +/obj/structure/table/glass, +/obj/item/stack/cable_coil/random, +/obj/item/stack/cable_coil/random, +/obj/item/weapon/screwdriver{ + pixel_x = -2; + pixel_y = 6 + }, +/obj/item/weapon/grenade/chem_grenade, +/obj/item/weapon/grenade/chem_grenade, +/obj/item/weapon/grenade/chem_grenade, +/obj/item/weapon/grenade/chem_grenade, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bfG" = ( +/obj/structure/table/glass, +/obj/machinery/reagentgrinder, +/obj/item/stack/sheet/mineral/plasma{ + layer = 2.9 + }, +/obj/item/stack/sheet/mineral/plasma{ + layer = 2.9 + }, +/obj/item/weapon/reagent_containers/glass/bottle/epinephrine, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = -25; + tag = "SOUTH" + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bfH" = ( +/obj/structure/table/glass, +/obj/item/weapon/storage/box/syringes, +/obj/item/clothing/glasses/science{ + pixel_x = 2; + pixel_y = 4 + }, +/obj/item/clothing/glasses/science, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bfI" = ( +/obj/machinery/chem_heater, +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = -30; + tag = "s" + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bfJ" = ( +/obj/machinery/chem_dispenser, +/turf/open/floor/plasteel/warnwhite{ + tag = "icon-warnwhite (NORTHWEST)"; + dir = 9 + }, +/area/medical/chemistry) +"bfK" = ( +/obj/machinery/chem_master, +/turf/open/floor/plasteel/warnwhite{ + tag = "icon-warnwhite (NORTHEAST)"; + dir = 5 + }, +/area/medical/chemistry) +"bfL" = ( +/obj/structure/table/glass, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/plasteel/whiteblue/corner, +/area/medical/medbay) +"bfM" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/whiteblue/side, +/area/medical/medbay) +"bfN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whiteblue/side, +/area/medical/medbay) +"bfO" = ( +/obj/structure/cable/cyan{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/whiteblue/side, +/area/medical/medbay) +"bfP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whiteblue/side, +/area/medical/medbay) +"bfQ" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel/whiteblue/side, +/area/medical/medbay) +"bfR" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + tag = "icon-whitebluecorner (WEST)"; + dir = 8 + }, +/area/medical/medbay) +"bfS" = ( +/obj/structure/table, +/obj/machinery/light_switch{ + pixel_y = -24; + tag = "s" + }, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7; + tag = "every single paper bin is edited to this" + }, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (SOUTHWEST)"; + dir = 10 + }, +/area/security/checkpoint/medical) +"bfT" = ( +/obj/machinery/button/door{ + desc = "A remote control switch for the medbay foyer."; + id = "MedbayFoyer"; + name = "Medbay Doors Control"; + normaldoorcontrol = 1; + pixel_x = 0; + pixel_y = -26; + req_access_txt = "5" + }, +/obj/structure/table, +/obj/item/device/radio/off, +/obj/machinery/camera{ + c_tag = "Medbay Security Post"; + dir = 1; + network = list("SS13") + }, +/turf/open/floor/plasteel/darkred/side, +/area/security/checkpoint/medical) +"bfU" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/structure/filingcabinet, +/obj/structure/cable, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 2; + name = "Autoname APC South"; + pixel_x = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (SOUTHEAST)"; + dir = 6 + }, +/area/security/checkpoint/medical) +"bfV" = ( +/turf/open/floor/plating, +/area/medical/morgue) +"bfW" = ( +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/item/weapon/storage/box/bodybags, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/darkblue/corner, +/area/medical/morgue) +"bfX" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel/darkblue/side, +/area/medical/morgue) +"bfY" = ( +/obj/structure/bodycontainer/morgue, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners (WEST)"; + dir = 8 + }, +/area/medical/morgue) +"bfZ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + frequency = 1439; + id_tag = null; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bga" = ( +/obj/structure/bodycontainer/morgue, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/obj/machinery/camera{ + c_tag = "Medbay Morgue"; + dir = 1; + network = list("SS13") + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bgb" = ( +/obj/structure/bodycontainer/morgue, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bgc" = ( +/obj/machinery/door/airlock{ + name = "Unit 1" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/locker/locker_toilet) +"bgd" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel/neutral/corner, +/area/crew_quarters/locker) +"bge" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bgf" = ( +/obj/machinery/vending/cola, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (WEST)"; + dir = 8 + }, +/area/crew_quarters/locker) +"bgg" = ( +/obj/structure/closet/wardrobe/green, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bgh" = ( +/obj/machinery/telecomms/server/presets/engineering, +/turf/open/floor/plasteel/yellow/side{ + dir = 10; + initial_gas_mix = "n2=100;TEMP=80"; + tag = "icon-yellow (SOUTHWEST)" + }, +/area/tcommsat/server) +"bgi" = ( +/obj/machinery/telecomms/server/presets/common, +/turf/open/floor/plasteel/neutral/side{ + dir = 6; + initial_gas_mix = "n2=100;TEMP=80"; + tag = "icon-neutral (SOUTHEAST)" + }, +/area/tcommsat/server) +"bgj" = ( +/obj/machinery/light, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"bgk" = ( +/obj/machinery/telecomms/bus/preset_one, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 10; + initial_gas_mix = "n2=100;TEMP=80"; + tag = "icon-whiteblue (SOUTHWEST)" + }, +/area/tcommsat/server) +"bgl" = ( +/obj/machinery/telecomms/processor/preset_one, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 6; + initial_gas_mix = "n2=100;TEMP=80"; + tag = "icon-whitepurple (SOUTHEAST)" + }, +/area/tcommsat/server) +"bgm" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + tag = "icon-intact (NORTHEAST)"; + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plating, +/area/tcommsat/computer) +"bgn" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + target_temperature = 80; + dir = 8; + icon_state = "freezer"; + on = 1; + tag = "icon-freezer (EAST)" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 10; + tag = "" + }, +/area/tcommsat/computer) +"bgo" = ( +/obj/machinery/computer/telecomms/monitor{ + network = "tcommsat" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/yellow/corner, +/area/tcommsat/computer) +"bgp" = ( +/obj/structure/table, +/obj/machinery/microwave, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/cafeteria, +/area/engine/break_room) +"bgq" = ( +/turf/open/floor/plasteel/yellow/side, +/area/engine/break_room) +"bgr" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-j2"; + dir = 2 + }, +/turf/open/floor/plasteel/yellow/side, +/area/engine/break_room) +"bgs" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/corner{ + tag = "icon-yellowcorner (WEST)"; + dir = 8 + }, +/area/engine/break_room) +"bgt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bgu" = ( +/obj/item/trash/sosjerky, +/turf/open/floor/plating, +/area/maintenance/aft) +"bgv" = ( +/obj/item/stack/sheet/cardboard, +/turf/open/floor/plating, +/area/maintenance/aft) +"bgw" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"bgx" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"bgy" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"bgz" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/atmos_control) +"bgA" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"bgB" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"bgC" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"bgD" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/atmos_control) +"bgE" = ( +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"bgF" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/storage/toolbox/electrical{ + pixel_x = 1; + pixel_y = -1 + }, +/obj/item/device/multitool, +/obj/item/clothing/glasses/meson, +/turf/open/floor/plating, +/area/storage/tech) +"bgG" = ( +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/storage/tech) +"bgH" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/storage/tech) +"bgI" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/light/small, +/obj/machinery/camera{ + c_tag = "Technical Storage"; + dir = 1; + network = list("SS13") + }, +/turf/open/floor/plating, +/area/storage/tech) +"bgJ" = ( +/obj/structure/table, +/obj/item/weapon/stock_parts/subspace/ansible, +/obj/item/weapon/stock_parts/subspace/ansible, +/obj/item/weapon/stock_parts/subspace/ansible, +/obj/item/weapon/stock_parts/subspace/crystal, +/obj/item/weapon/stock_parts/subspace/crystal, +/obj/item/weapon/stock_parts/subspace/crystal, +/turf/open/floor/plating, +/area/storage/tech) +"bgK" = ( +/obj/structure/table, +/obj/item/weapon/stock_parts/subspace/amplifier, +/obj/item/weapon/stock_parts/subspace/amplifier, +/obj/item/weapon/stock_parts/subspace/amplifier, +/turf/open/floor/plating, +/area/storage/tech) +"bgL" = ( +/obj/machinery/requests_console{ + department = "Tech Storage"; + name = "Technical Storage RC"; + pixel_x = 0; + pixel_y = -32 + }, +/turf/open/floor/plating, +/area/storage/tech) +"bgM" = ( +/obj/structure/table, +/obj/machinery/cell_charger{ + pixel_y = 5 + }, +/obj/item/device/multitool, +/obj/machinery/light_switch{ + pixel_y = -24; + tag = "s" + }, +/turf/open/floor/plating, +/area/storage/tech) +"bgN" = ( +/obj/structure/table, +/obj/item/weapon/stock_parts/cell/high/plus, +/obj/item/stack/cable_coil/green, +/obj/item/stack/cable_coil/green, +/turf/open/floor/plating, +/area/storage/tech) +"bgO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/camera{ + c_tag = "Art Supply Storage"; + dir = 4; + network = list("SS13") + }, +/turf/open/floor/plasteel/black/corner{ + tag = "icon-blackcorner (WEST)"; + dir = 8 + }, +/area/storage/art) +"bgP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/storage/art) +"bgQ" = ( +/obj/structure/table, +/obj/item/device/camera_film, +/obj/item/device/camera_film, +/obj/item/device/camera, +/obj/machinery/light_switch{ + pixel_x = 24; + tag = "e" + }, +/turf/open/floor/plasteel/black/corner, +/area/storage/art) +"bgR" = ( +/obj/item/weapon/rack_parts, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"bgS" = ( +/obj/structure/closet/wardrobe/pink, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"bgT" = ( +/obj/structure/rack, +/obj/item/weapon/storage/briefcase, +/turf/open/floor/wood, +/area/lawoffice) +"bgU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/lawoffice) +"bgV" = ( +/obj/machinery/photocopier, +/turf/open/floor/wood, +/area/lawoffice) +"bgW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/courtroom) +"bgX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/courtroom) +"bgY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = -25; + tag = "SOUTH" + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/courtroom) +"bgZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkred/corner, +/area/crew_quarters/courtroom) +"bha" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkred/side, +/area/crew_quarters/courtroom) +"bhb" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plasteel/darkred/corner{ + tag = "icon-darkredcorners (WEST)"; + dir = 8 + }, +/area/crew_quarters/courtroom) +"bhc" = ( +/obj/machinery/camera{ + c_tag = "Courtroom South"; + dir = 1; + network = list("SS13") + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = -25; + tag = "SOUTH" + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/courtroom) +"bhd" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fore) +"bhe" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4 + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fore) +"bhf" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fore) +"bhg" = ( +/turf/closed/wall, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bhh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bhi" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"bhj" = ( +/obj/structure/sign/bluecross_2, +/turf/closed/wall, +/area/medical/chemistry) +"bhk" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/medical/medbay) +"bhl" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/blue, +/area/medical/medbay) +"bhm" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/cyan{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/blue, +/area/medical/medbay) +"bhn" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/cyan{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/blue, +/area/medical/medbay) +"bho" = ( +/obj/structure/sign/bluecross_2, +/turf/closed/wall, +/area/security/checkpoint/medical) +"bhp" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/medical{ + name = "Morgue"; + req_access_txt = "6" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/darkblue, +/area/medical/morgue) +"bhq" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/port) +"bhr" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Unisex Restrooms"; + req_access_txt = "0" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet) +"bhs" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/locker) +"bht" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/locker) +"bhu" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/locker) +"bhv" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering{ + name = "Telecommunications"; + req_access_txt = "61" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bhw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/tcommsat/computer) +"bhx" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/engine/break_room) +"bhy" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/engine/break_room) +"bhz" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_engineering{ + name = "Engineering"; + req_access_txt = "32" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/yellow, +/area/engine/break_room) +"bhA" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/engine/break_room) +"bhB" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"bhC" = ( +/turf/closed/wall, +/area/hallway/primary/central) +"bhD" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8"; + d1 = 4; + d2 = 8 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bhE" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + icon_state = "4-8"; + d1 = 4; + d2 = 8 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bhF" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8"; + d1 = 4; + d2 = 8 + }, +/turf/open/floor/plating/airless/warnplate{ + dir = 1 + }, +/area/engine/engineering) +"bhG" = ( +/turf/closed/wall, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"bhH" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"bhI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"bhJ" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering{ + name = "Tech Storage"; + req_access_txt = "23" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/storage/tech) +"bhK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/storage/tech) +"bhL" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/storage/art) +"bhM" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Art Storage" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/storage/art) +"bhN" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/storage/art) +"bhO" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"bhP" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/door/poddoor/preopen{ + id = "lawyer_blast"; + name = "privacy door" + }, +/turf/open/floor/plating, +/area/lawoffice) +"bhQ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Law Office"; + req_access_txt = "38" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/lawoffice) +"bhR" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/poddoor/preopen{ + id = "lawyer_blast"; + name = "privacy door" + }, +/turf/open/floor/plating, +/area/lawoffice) +"bhS" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/crew_quarters/courtroom) +"bhT" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Courtroom" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/crew_quarters/courtroom) +"bhU" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/crew_quarters/courtroom) +"bhV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/closed/wall, +/area/security/transfer) +"bhW" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/security/transfer) +"bhX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"bhY" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fore) +"bhZ" = ( +/obj/structure/rack, +/obj/item/weapon/reagent_containers/glass/beaker/large, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fore) +"bia" = ( +/obj/structure/closet/emcloset, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bib" = ( +/obj/item/wallframe/light_fixture/small, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/asmaint) +"bic" = ( +/obj/structure/girder/displaced, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bid" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/obj/structure/sign/map/left/dream{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bie" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bif" = ( +/obj/structure/sign/directions{ + dir = 4; + icon_state = "direction_supply"; + name = "cargo bay"; + pixel_y = 24; + tag = "icon-direction_supply" + }, +/obj/structure/sign/directions{ + dir = 4; + icon_state = "direction_bridge"; + name = "bridge"; + pixel_y = 32; + tag = "icon-direction_bridge" + }, +/obj/structure/sign/directions/security{ + dir = 4; + icon_state = "direction_sec"; + pixel_x = 0; + pixel_y = 40; + tag = "icon-direction_sec (EAST)" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Fore Primary Hallway West 3"; + network = list("SS13") + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"big" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bih" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bii" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bij" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/corner{ + tag = "icon-bluecorner (EAST)"; + dir = 4 + }, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bik" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel/blue/corner{ + tag = "icon-bluecorner (EAST)"; + dir = 4 + }, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bil" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/side{ + tag = "icon-blue (NORTH)"; + dir = 1 + }, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bim" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/blue/side{ + tag = "icon-blue (NORTH)"; + dir = 1 + }, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bin" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/blue/side{ + tag = "icon-blue (NORTH)"; + dir = 1 + }, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bio" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/corner{ + tag = "icon-bluecorner (NORTH)"; + dir = 1 + }, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bip" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/corner{ + tag = "icon-bluecorner (NORTH)"; + dir = 1 + }, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"biq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/blue/corner{ + tag = "icon-bluecorner (NORTH)"; + dir = 1 + }, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bir" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel/blue/corner{ + tag = "icon-bluecorner (NORTH)"; + dir = 1 + }, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bis" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Fore Primary Hallway West 1"; + network = list("SS13") + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bit" = ( +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"biu" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"biv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (EAST)"; + dir = 4 + }, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"biw" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bix" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (NORTH)"; + dir = 1 + }, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"biy" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"biz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Fore Port Hallway"; + dir = 6; + icon_state = "camera"; + network = list("SS13"); + tag = "" + }, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (EAST)"; + dir = 4 + }, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"biA" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"biB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"biC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"biD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"biE" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"biF" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"biG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/corner{ + tag = "icon-yellowcorner (EAST)"; + dir = 4 + }, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"biH" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/yellow/corner{ + tag = "icon-yellowcorner (EAST)"; + dir = 4 + }, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"biI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/corner{ + tag = "icon-yellowcorner (EAST)"; + dir = 4 + }, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"biJ" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/yellow/corner{ + tag = "icon-yellowcorner (EAST)"; + dir = 4 + }, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"biK" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"biL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/corner{ + tag = "icon-yellowcorner (NORTH)"; + dir = 1 + }, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"biM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/yellow/corner{ + tag = "icon-yellowcorner (NORTH)"; + dir = 1 + }, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"biN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Fore Port Hallway East 2"; + network = list("SS13") + }, +/turf/open/floor/plasteel/yellow/corner{ + tag = "icon-yellowcorner (NORTH)"; + dir = 1 + }, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"biO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/poddoor/shutters{ + id = "aux_base_shutters"; + name = "Auxillary Base Shutters" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mining_construction) +"biP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/yellow/corner{ + tag = "icon-yellowcorner (NORTH)"; + dir = 1 + }, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"biQ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/glass{ + name = "Central Access" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"biR" = ( +/obj/structure/sign/directions/engineering{ + dir = 8; + icon_state = "direction_eng"; + pixel_x = -32; + pixel_y = 24; + tag = "icon-direction_eng (WEST)" + }, +/obj/structure/sign/directions/medical{ + dir = 8; + icon_state = "direction_med"; + pixel_x = -32; + pixel_y = 32; + tag = "icon-direction_med (WEST)" + }, +/obj/structure/sign/directions/evac{ + dir = 1; + icon_state = "direction_evac"; + pixel_x = -32; + pixel_y = 40; + tag = "icon-direction_evac (NORTH)" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"biS" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"biT" = ( +/obj/structure/sign/directions/security{ + dir = 4; + icon_state = "direction_sec"; + pixel_x = 32; + pixel_y = 32; + tag = "icon-direction_sec (EAST)" + }, +/obj/structure/sign/directions/science{ + pixel_x = 32; + pixel_y = 24 + }, +/obj/structure/sign/directions{ + dir = 2; + icon_state = "direction_bridge"; + name = "bridge"; + pixel_x = 32; + pixel_y = 40; + tag = "icon-direction_bridge" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"biU" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/glass{ + name = "Central Access" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"biV" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"biW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"biX" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"biY" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"biZ" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"bja" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"bjb" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"bjc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = 20; + tag = "NORTH" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"bjd" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"bje" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Fore Starboard Hallway West 1"; + network = list("SS13") + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"bjf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/corner{ + tag = "icon-yellowcorner (EAST)"; + dir = 4 + }, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"bjg" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"bjh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/corner{ + tag = "icon-yellowcorner (NORTH)"; + dir = 1 + }, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"bji" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (EAST)"; + dir = 4 + }, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"bjj" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"bjk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (NORTH)"; + dir = 1 + }, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"bjl" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"bjm" = ( +/obj/structure/cable/green{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + auto_name = 0; + dir = 1; + name = "Fore Starboard Hallway APC"; + pixel_x = 0; + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"bjn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = 30; + tag = "n" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"bjo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner{ + tag = "icon-redcorner (EAST)"; + dir = 4 + }, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"bjp" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/junction{ + dir = 8; + icon_state = "pipe-j1"; + tag = "icon-pipe-j1 (EAST)" + }, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (NORTH)"; + dir = 1 + }, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"bjq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner{ + tag = "icon-redcorner (NORTH)"; + dir = 1 + }, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"bjr" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"bjs" = ( +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"bjt" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"bju" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner{ + tag = "icon-redcorner (EAST)"; + dir = 4 + }, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"bjv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (NORTH)"; + dir = 1 + }, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"bjw" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (NORTH)"; + dir = 1 + }, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"bjx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (NORTH)"; + dir = 1 + }, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"bjy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner{ + tag = "icon-redcorner (NORTH)"; + dir = 1 + }, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"bjz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"bjA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"bjB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/security/transfer) +"bjC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/security/transfer) +"bjD" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/mob/living/simple_animal/mouse, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fore) +"bjE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/closed/wall/r_wall/rust, +/area/security/transfer) +"bjF" = ( +/turf/closed/wall/r_wall, +/area/security/transfer) +"bjG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bjH" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=AIW"; + location = "QM" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bjI" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bjJ" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bjK" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bjL" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bjM" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bjN" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bjO" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bjP" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bjQ" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bjR" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bjS" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bjT" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bjU" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bjV" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/junction{ + dir = 8; + icon_state = "pipe-j1"; + tag = "icon-pipe-j1 (EAST)" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bjW" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bjX" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bjY" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bjZ" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/disposalpipe/junction{ + dir = 8; + icon_state = "pipe-j1"; + tag = "icon-pipe-j1 (EAST)" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bka" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/sortjunction{ + dir = 8; + icon_state = "pipe-j2s"; + sortType = 18 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bkb" = ( +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bkc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/hallway/secondary/entry) +"bkd" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bke" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/glass{ + name = "Central Access" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bkf" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=QM"; + location = "CHW" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bkg" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/holopad, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=Security"; + location = "EVA2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bkh" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=Lockers"; + location = "EVA" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bki" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"bkj" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"bkk" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"bkl" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"bkm" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"bkn" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"bko" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"bkp" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"bkq" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"bkr" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"bks" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel/bot, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"bkt" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=EVA"; + location = "Security" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"bku" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"bkv" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"bkw" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"bkx" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/transfer) +"bky" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/transfer) +"bkz" = ( +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"bkA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/closed/wall/r_wall, +/area/security/transfer) +"bkB" = ( +/obj/machinery/portable_atmospherics/canister/carbon_dioxide, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTHWEST)"; + dir = 9 + }, +/area/security/transfer) +"bkC" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTH)"; + dir = 1 + }, +/area/security/transfer) +"bkD" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10; + pixel_x = 0; + initialize_directions = 10 + }, +/obj/structure/closet/secure_closet/injection, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTHEAST)"; + dir = 5 + }, +/area/security/transfer) +"bkE" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bkF" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/asmaint) +"bkG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bkH" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bkI" = ( +/obj/structure/sign/directions/medical{ + dir = 4; + icon_state = "direction_med"; + pixel_x = 32; + pixel_y = -24; + tag = "icon-direction_med (EAST)" + }, +/obj/structure/sign/directions/engineering{ + dir = 4; + icon_state = "direction_eng"; + pixel_x = 32; + pixel_y = -32; + tag = "icon-direction_eng (EAST)" + }, +/obj/structure/sign/directions/science{ + pixel_x = 32; + pixel_y = -40 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bkJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bkK" = ( +/obj/machinery/light/small, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bkL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bkM" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bkN" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (WEST)"; + dir = 8 + }, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bkO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bkP" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Fore Port Hallway West 2"; + dir = 1; + network = list("SS13") + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = -25; + tag = "SOUTH" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bkQ" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = -30; + tag = "s" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bkR" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bkS" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bkT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bkU" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bkV" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bkW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bkX" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bkY" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bkZ" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bla" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/arrival{ + dir = 4 + }, +/area/hallway/secondary/entry) +"blb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/green/corner, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"blc" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel/green/side, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bld" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/green/side, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"ble" = ( +/obj/structure/cable/green, +/obj/machinery/power/apc{ + auto_name = 0; + dir = 2; + name = "Fore Port Hallway APC"; + pixel_x = 1; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"blf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"blg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"blh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bli" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"blj" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (WEST)"; + dir = 8 + }, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"blk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/newscaster{ + pixel_x = 0; + pixel_y = -32; + tag = "s" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bll" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"blm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Fore Port Hallway East 1"; + dir = 1; + network = list("SS13") + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bln" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"blo" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"blp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = -25; + tag = "SOUTH" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"blq" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/corner, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"blr" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bls" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/yellow/corner{ + tag = "icon-yellowcorner (WEST)"; + dir = 8 + }, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"blt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Fore Port Hallway East 3"; + dir = 1; + network = list("SS13") + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"blu" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"blv" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/glass{ + name = "Central Access" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"blw" = ( +/obj/structure/sign/directions{ + dir = 2; + icon_state = "direction_supply"; + name = "cargo bay"; + pixel_x = -32; + pixel_y = -32; + tag = "icon-direction_supply" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"blx" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bly" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"blz" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/glass{ + name = "Central Access" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"blA" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"blB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"blC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"blD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/corner, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"blE" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/blue/side{ + dir = 0 + }, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"blF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 8 + }, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"blG" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Fore Starboard Hallway West 2"; + dir = 1; + network = list("SS13") + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"blH" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"blI" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"blJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"blK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = -30; + tag = "s" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"blL" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -26; + pixel_y = -28 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"blM" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"blN" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_x = 32; + pixel_y = -22 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"blO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"blP" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"blQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner{ + tag = "icon-redcorner (WEST)"; + dir = 8 + }, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"blR" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"blS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Fore Starboard Hallway"; + dir = 1; + network = list("SS13") + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"blT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"blU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner{ + tag = "icon-redcorner (WEST)"; + dir = 8 + }, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"blV" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"blW" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/red/side, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"blX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/red/corner{ + tag = "icon-redcorner (WEST)"; + dir = 8 + }, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"blY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light, +/obj/machinery/camera{ + c_tag = "Fore Starboard Hallway East 1"; + dir = 1; + network = list("SS13") + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"blZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"bma" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"bmb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner{ + tag = "icon-redcorner (WEST)"; + dir = 8 + }, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"bmc" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"bmd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/hallway/secondary/entry) +"bme" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/security/transfer) +"bmf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/transfer) +"bmg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/fore) +"bmh" = ( +/obj/machinery/space_heater, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"bmi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/security/transfer) +"bmj" = ( +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (SOUTHWEST)"; + dir = 10 + }, +/area/security/transfer) +"bmk" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/darkred/side, +/area/security/transfer) +"bml" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 2; + layer = 2.4 + }, +/obj/machinery/door/window/southleft{ + base_state = "right"; + dir = 2; + icon_state = "right"; + name = "Additional Transfer Methods"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (SOUTHEAST)"; + dir = 6 + }, +/area/security/transfer) +"bmm" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/obj/structure/rack{ + dir = 4 + }, +/obj/item/weapon/electronics/airlock, +/obj/item/weapon/electronics/airlock, +/obj/item/weapon/electronics/airlock, +/obj/item/weapon/electronics/airlock, +/obj/item/stack/cable_coil, +/obj/item/stack/cable_coil, +/obj/item/wallframe/camera, +/obj/item/wallframe/camera, +/obj/item/wallframe/camera, +/obj/item/wallframe/camera, +/obj/item/device/assault_pod/mining, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (NORTH)"; + dir = 1 + }, +/area/mining_construction) +"bmn" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion"; + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"bmo" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/obj/structure/table, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (NORTH)"; + dir = 1 + }, +/area/mining_construction) +"bmp" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bmq" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/glass{ + name = "Escape Waiting Area" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bmr" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/glass{ + name = "Escape Waiting Area" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bms" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock/glass{ + name = "Escape Waiting Area" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bmt" = ( +/turf/closed/wall, +/area/library) +"bmu" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/library) +"bmv" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Library" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/carpet, +/area/library) +"bmw" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Library" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/carpet, +/area/library) +"bmx" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bmy" = ( +/turf/closed/wall, +/area/storage/eva) +"bmz" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/storage/eva) +"bmA" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_command{ + name = "EVA Storage"; + req_access_txt = "18" + }, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + dir = 5 + }, +/area/storage/eva) +"bmB" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/storage/eva) +"bmC" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bmD" = ( +/turf/closed/wall, +/area/hydroponics) +"bmE" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hydroponics) +"bmF" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Hydroponics"; + req_access_txt = "35" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/green/side{ + dir = 8 + }, +/area/hydroponics) +"bmG" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Hydroponics"; + req_access_txt = "35" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/green/side{ + dir = 4 + }, +/area/hydroponics) +"bmH" = ( +/turf/closed/wall, +/area/crew_quarters/bar) +"bmI" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/crew_quarters/bar) +"bmJ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Bar" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bmK" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Bar" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bmL" = ( +/obj/structure/sign/barsign, +/turf/closed/wall, +/area/crew_quarters/bar) +"bmM" = ( +/turf/closed/wall, +/area/crew_quarters/theatre) +"bmN" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bmO" = ( +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"bmP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"bmQ" = ( +/turf/open/floor/plasteel/yellow, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warningline, +/area/engine/gravity_generator) +"bmR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"bmS" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + dir = 5 + }, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bmT" = ( +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + dir = 5 + }, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bmU" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + dir = 5 + }, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bmV" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bmW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/camera{ + c_tag = "Central Hallway North"; + dir = 4; + network = list("SS13") + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bmX" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bmY" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (EAST)"; + dir = 4 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bmZ" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/heads) +"bna" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Head of Personnel"; + req_access = null; + req_access_txt = "57" + }, +/turf/open/floor/plasteel/darkblue, +/area/crew_quarters/heads) +"bnb" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/maintcentral) +"bnc" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/blue/corner, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"bnd" = ( +/turf/open/floor/plasteel/blue/side{ + dir = 0 + }, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"bne" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/blue/corner{ + dir = 8 + }, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"bnf" = ( +/turf/closed/wall, +/area/security/detectives_office) +"bng" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/detectives_office) +"bnh" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_security{ + name = "Detective"; + req_access_txt = "4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"bni" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/security/detectives_office) +"bnj" = ( +/turf/closed/wall/r_wall, +/area/security/detectives_office) +"bnk" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Gate"; + name = "brig shutters" + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plating, +/area/security/brig) +"bnl" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE" + }, +/turf/closed/wall/r_wall, +/area/security/brig) +"bnm" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "briggate"; + name = "security shutters" + }, +/obj/machinery/door/window/southleft{ + name = "Brig Desk"; + req_access_txt = "1" + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"bnn" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "briggate"; + name = "security shutters" + }, +/obj/machinery/door/window/southleft{ + base_state = "right"; + icon_state = "right"; + name = "Brig Desk"; + req_access_txt = "1" + }, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7; + tag = "every single paper bin is edited to this" + }, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/black, +/area/security/brig) +"bno" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "briggate"; + name = "security blast door" + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plating, +/area/security/brig) +"bnp" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_security{ + id_tag = "outerbrig"; + name = "Brig"; + req_access_txt = "63" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTHWEST)"; + dir = 9 + }, +/area/security/brig) +"bnq" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_security{ + id_tag = "outerbrig"; + name = "Brig"; + req_access_txt = "63" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTHEAST)"; + dir = 5 + }, +/area/security/brig) +"bnr" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/darkred/side, +/area/security/transfer) +"bns" = ( +/obj/structure/table, +/obj/item/weapon/scalpel{ + pixel_y = 12 + }, +/obj/item/weapon/circular_saw, +/obj/item/weapon/hemostat, +/obj/item/weapon/retractor, +/obj/item/weapon/surgical_drapes, +/obj/item/weapon/razor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/machinery/button/ignition{ + id = "executionburn"; + pixel_x = -25; + pixel_y = 5 + }, +/obj/machinery/button/flasher{ + id = "executionflash"; + pixel_x = -25; + pixel_y = -5 + }, +/turf/open/floor/plasteel/darkred/corner{ + tag = "icon-darkredcorners (NORTH)"; + dir = 1 + }, +/area/security/transfer) +"bnt" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal{ + amount = 1 + }, +/obj/item/device/taperecorder{ + pixel_x = -3; + pixel_y = 0 + }, +/obj/item/device/assembly/flash/handheld, +/obj/item/weapon/reagent_containers/spray/pepper, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/transfer) +"bnu" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkred/corner{ + tag = "icon-darkredcorners (EAST)"; + dir = 4 + }, +/area/security/transfer) +"bnv" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "executionfireblast"; + layer = 2.9; + name = "blast door" + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/transfer) +"bnw" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel/darkred/corner{ + tag = "icon-darkredcorners (NORTH)"; + dir = 1 + }, +/area/security/transfer) +"bnx" = ( +/obj/machinery/flasher{ + id = "executionflash"; + pixel_x = 0; + pixel_y = 25 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + frequency = 1439; + id_tag = null; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/security/transfer) +"bny" = ( +/turf/open/floor/plasteel/darkred/corner{ + tag = "icon-darkredcorners (EAST)"; + dir = 4 + }, +/area/security/transfer) +"bnz" = ( +/obj/machinery/door/poddoor{ + id = "executionspaceblast"; + name = "blast door" + }, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/security/transfer) +"bnA" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"bnB" = ( +/obj/structure/shuttle/engine/heater{ + icon_state = "heater"; + dir = 1 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"bnC" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/secondary/exit) +"bnD" = ( +/turf/closed/wall, +/area/hallway/secondary/exit) +"bnE" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/hallway/secondary/exit) +"bnF" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bnG" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bnH" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bnI" = ( +/obj/structure/table/wood, +/obj/item/weapon/pen, +/turf/open/floor/wood, +/area/library) +"bnJ" = ( +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/wood, +/area/library) +"bnK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/carpet, +/area/library) +"bnL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/carpet, +/area/library) +"bnM" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/wood, +/area/library) +"bnN" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/wood, +/area/library) +"bnO" = ( +/obj/structure/table/wood, +/obj/item/weapon/dice/d00, +/obj/item/weapon/dice/d10, +/turf/open/floor/wood, +/area/library) +"bnP" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7; + tag = "every single paper bin is edited to this" + }, +/obj/item/stack/packageWrap, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/wood, +/area/library) +"bnQ" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/wood, +/area/library) +"bnR" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = 20; + tag = "NORTH" + }, +/turf/open/floor/wood, +/area/library) +"bnS" = ( +/turf/open/floor/wood, +/area/library) +"bnT" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/wood, +/area/library) +"bnU" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bnV" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bnW" = ( +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/fpmaint) +"bnX" = ( +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bnY" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bnZ" = ( +/obj/structure/table, +/obj/item/stack/sheet/rglass{ + amount = 50 + }, +/obj/item/stack/sheet/rglass{ + amount = 50 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/storage/eva) +"boa" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black/corner{ + tag = "icon-blackcorner (EAST)"; + dir = 4 + }, +/area/storage/eva) +"bob" = ( +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + dir = 5 + }, +/area/storage/eva) +"boc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black/corner{ + tag = "icon-blackcorner (NORTH)"; + dir = 1 + }, +/area/storage/eva) +"bod" = ( +/obj/item/stack/sheet/plasteel{ + amount = 10 + }, +/obj/structure/table, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/storage/eva) +"boe" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fpmaint) +"bof" = ( +/obj/structure/closet/crate/hydroponics, +/obj/item/weapon/shovel/spade, +/obj/item/weapon/wrench, +/obj/item/weapon/reagent_containers/glass/bucket, +/obj/item/weapon/wirecutters, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"bog" = ( +/obj/machinery/plantgenes, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"boh" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/hydroponics) +"boi" = ( +/obj/structure/sink{ + pixel_y = 24 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/green, +/area/hydroponics) +"boj" = ( +/obj/machinery/hydroponics/constructable, +/turf/open/floor/plasteel/black, +/area/hydroponics) +"bok" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/green/side{ + dir = 8 + }, +/area/hydroponics) +"bol" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/green/side{ + dir = 4 + }, +/area/hydroponics) +"bom" = ( +/obj/structure/sink{ + pixel_y = 24 + }, +/obj/item/weapon/reagent_containers/glass/bucket, +/turf/open/floor/plasteel/green, +/area/hydroponics) +"bon" = ( +/obj/machinery/hydroponics/constructable, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/hydroponics) +"boo" = ( +/obj/structure/rack{ + icon = 'icons/obj/stationobjs.dmi'; + icon_state = "minibar_left"; + name = "skeletal minibar" + }, +/obj/item/weapon/reagent_containers/food/drinks/bottle/rum, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"bop" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"boq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bor" = ( +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bos" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bot" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bou" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bov" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/piano, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"bow" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/obj/structure/chair/stool, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"box" = ( +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"boy" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"boz" = ( +/obj/machinery/light_switch{ + pixel_y = 24; + tag = "n" + }, +/obj/machinery/camera{ + c_tag = "Theatre Stage"; + dir = 2; + icon_state = "camera"; + network = list("SS13"); + tag = "" + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"boA" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"boB" = ( +/obj/machinery/vending/autodrobe, +/obj/machinery/requests_console{ + department = "Theatre"; + departmentType = 0; + name = "Theatre RC"; + pixel_x = -32; + pixel_y = 0 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"boC" = ( +/obj/structure/table/wood, +/obj/item/weapon/lipstick/random{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/weapon/lipstick/random{ + pixel_x = -2; + pixel_y = -2 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"boD" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/obj/item/weapon/storage/crayons, +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"boE" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"boF" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"boG" = ( +/obj/structure/cable/yellow{ + tag = "icon-0-6"; + icon_state = "0-6"; + d1 = 4; + d2 = 8 + }, +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"boH" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering{ + name = "Gravity Generator"; + req_access_txt = "11" + }, +/turf/open/floor/plasteel/yellow, +/area/engine/gravity_generator) +"boI" = ( +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7; + tag = "every single paper bin is edited to this" + }, +/obj/item/weapon/pen, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"boJ" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"boK" = ( +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"boL" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"boM" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"boN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"boO" = ( +/obj/structure/girder, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"boP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"boQ" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"boR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"boS" = ( +/obj/machinery/button/door{ + id = "hopqueue"; + name = "Queue Shutters Control"; + pixel_x = -4; + pixel_y = 25; + req_access_txt = "28" + }, +/obj/machinery/button/door{ + id = "hop"; + name = "Privacy Shutters Control"; + pixel_x = 6; + pixel_y = 25; + req_access_txt = "28" + }, +/obj/machinery/button/flasher{ + id = "hopflash"; + pixel_x = 6; + pixel_y = 36 + }, +/obj/machinery/pdapainter, +/turf/open/floor/plasteel/black, +/area/crew_quarters/heads) +"boT" = ( +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Head of Personnel's Desk"; + departmentType = 5; + name = "Head of Personnel RC"; + pixel_y = 30 + }, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners (EAST)"; + dir = 4 + }, +/area/crew_quarters/heads) +"boU" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (NORTH)"; + dir = 1 + }, +/area/crew_quarters/heads) +"boV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/light_switch{ + pixel_y = 24; + tag = "n" + }, +/obj/machinery/photocopier, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners (NORTH)"; + dir = 1 + }, +/area/crew_quarters/heads) +"boW" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/heads) +"boX" = ( +/obj/structure/rack, +/obj/item/device/assembly/mousetrap, +/turf/open/floor/plating, +/area/maintenance/maintcentral) +"boY" = ( +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/maintcentral) +"boZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/maintcentral) +"bpa" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/maintcentral) +"bpb" = ( +/obj/machinery/power/apc{ + auto_name = 1; + dir = 1; + name = "Autoname APC North"; + pixel_x = 0; + pixel_y = 24 + }, +/obj/structure/cable/blue{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/maintenance/maintcentral) +"bpc" = ( +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating, +/area/maintenance/maintcentral) +"bpd" = ( +/turf/open/floor/plating, +/area/maintenance/maintcentral) +"bpe" = ( +/obj/structure/closet/wardrobe/black, +/turf/open/floor/plating, +/area/maintenance/maintcentral) +"bpf" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/primary/fore{ + name = "Fore Starboard Hallway" + }) +"bpg" = ( +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"bph" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"bpi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"bpj" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/camera{ + c_tag = "Detective's Office"; + network = list("SS13") + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"bpk" = ( +/obj/structure/filingcabinet, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = 20; + tag = "NORTH" + }, +/turf/open/floor/carpet, +/area/security/detectives_office) +"bpl" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/weapon/folder/red, +/obj/item/weapon/pen, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 1; + name = "Autoname APC North"; + pixel_x = 0; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/carpet, +/area/security/detectives_office) +"bpm" = ( +/obj/machinery/computer/med_data, +/turf/open/floor/carpet, +/area/security/detectives_office) +"bpn" = ( +/obj/machinery/flasher{ + id = "Cell 1"; + pixel_x = -28 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"bpo" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"bpp" = ( +/obj/structure/closet/secure_closet/brig{ + id = "Cell 1"; + name = "Cell 1 Locker" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"bpq" = ( +/turf/closed/wall, +/area/security/brig) +"bpr" = ( +/obj/machinery/flasher{ + id = "Cell 2"; + pixel_x = -28 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"bps" = ( +/obj/structure/closet/secure_closet/brig{ + id = "Cell 2"; + name = "Cell 2 Locker" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"bpt" = ( +/obj/machinery/button/door{ + id = "briggate"; + name = "Desk Shutters"; + pixel_x = -26; + pixel_y = 6; + req_access_txt = "0" + }, +/obj/machinery/button/flasher{ + id = "brigentry"; + pixel_x = -28; + pixel_y = -8 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTHWEST)"; + dir = 9 + }, +/area/security/brig) +"bpu" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTHEAST)"; + dir = 5 + }, +/area/security/brig) +"bpv" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "briggate"; + name = "security shutters" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/window/eastleft{ + name = "Brig Desk"; + req_access_txt = "1" + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"bpw" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (WEST)"; + dir = 8 + }, +/area/security/brig) +"bpx" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/camera{ + c_tag = "Brig Desk"; + dir = 8; + network = list("SS13","Brig"); + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (EAST)"; + dir = 4 + }, +/area/security/brig) +"bpy" = ( +/obj/machinery/flasher{ + id = "Cell 3"; + pixel_x = -28 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"bpz" = ( +/obj/structure/closet/secure_closet/brig{ + id = "Cell 3"; + name = "Cell 3 Locker" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"bpA" = ( +/obj/machinery/flasher{ + id = "Cell 4"; + pixel_x = -28 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"bpB" = ( +/obj/structure/closet/secure_closet/brig{ + id = "Cell 4"; + name = "Cell 4 Locker" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"bpC" = ( +/turf/closed/wall, +/area/security/transfer) +"bpD" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/security/transfer) +"bpE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/transfer) +"bpF" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 1; + name = "Autoname APC North"; + pixel_x = 0; + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/security/transfer) +"bpG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plasteel/black, +/area/security/transfer) +"bpH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/security/transfer) +"bpI" = ( +/obj/structure/rack, +/obj/item/device/flashlight{ + pixel_x = 1; + pixel_y = 5 + }, +/obj/item/weapon/tank/internals/anesthetic{ + pixel_x = -3; + pixel_y = 1 + }, +/obj/item/weapon/tank/internals/oxygen/red{ + pixel_x = 3 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/machinery/button/door{ + id = "executionfireblast"; + name = "Transfer Area Lockdown"; + pixel_x = -25; + pixel_y = -5; + req_access_txt = "2" + }, +/obj/machinery/button/door{ + id = "executionspaceblast"; + name = "Vent to Space"; + pixel_x = -25; + pixel_y = 5; + req_access_txt = "7" + }, +/turf/open/floor/plasteel/black, +/area/security/transfer) +"bpJ" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + frequency = 1439; + id_tag = null; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/security/transfer) +"bpK" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/black, +/area/security/transfer) +"bpL" = ( +/obj/machinery/door/poddoor/preopen{ + id = "executionfireblast"; + layer = 2.9; + name = "blast door" + }, +/obj/machinery/door/window/westright{ + dir = 8; + name = "Transfer Room"; + req_access_txt = "2" + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/transfer) +"bpM" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/security/transfer) +"bpN" = ( +/obj/structure/bed, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/turf/open/floor/plasteel/darkred, +/area/security/transfer) +"bpO" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/security/transfer) +"bpP" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/escape) +"bpQ" = ( +/obj/machinery/sleeper{ + dir = 4; + icon_state = "sleeper-open" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"bpR" = ( +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"bpS" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"bpT" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/obj/structure/table, +/obj/item/stack/sheet/plasteel{ + amount = 10 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (NORTH)"; + dir = 1 + }, +/area/mining_construction) +"bpU" = ( +/obj/structure/closet/crate, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"bpV" = ( +/obj/structure/closet, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"bpW" = ( +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/exit) +"bpX" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/exit) +"bpY" = ( +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/obj/machinery/camera{ + c_tag = "Escape Cargo Storage"; + network = list("SS13") + }, +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/exit) +"bpZ" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_x = -25; + pixel_y = -2; + tag = "WEST" + }, +/turf/open/floor/plasteel/brown/corner{ + tag = "icon-browncorner (WEST)"; + dir = 8 + }, +/area/hallway/secondary/exit) +"bqa" = ( +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bqb" = ( +/obj/structure/sign/directions/evac{ + dir = 1; + icon_state = "direction_evac"; + pixel_x = -32; + pixel_y = 32; + tag = "icon-direction_evac (NORTH)" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bqc" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bqd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/secondary/exit) +"bqe" = ( +/obj/structure/chair/comfy/black{ + tag = "icon-comfychair (NORTH)"; + icon_state = "comfychair"; + dir = 1 + }, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/machinery/camera{ + c_tag = "Library North"; + dir = 4; + network = list("SS13") + }, +/turf/open/floor/wood, +/area/library) +"bqf" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/wood, +/area/library) +"bqg" = ( +/turf/open/floor/carpet, +/area/library) +"bqh" = ( +/obj/structure/chair/office/dark, +/turf/open/floor/carpet, +/area/library) +"bqi" = ( +/obj/structure/chair/office/dark, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/carpet, +/area/library) +"bqj" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/library) +"bqk" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bql" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bqm" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bqn" = ( +/obj/structure/closet/cardboard, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bqo" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/weapon/crowbar, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/storage/eva) +"bqp" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/storage/eva) +"bqq" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/storage/eva) +"bqr" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/obj/machinery/camera{ + c_tag = "EVA Storage"; + dir = 8; + network = list("SS13"); + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/storage/eva) +"bqs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bqt" = ( +/obj/structure/closet/secure_closet/hydroponics, +/obj/item/clothing/tie/armband/hydro, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"bqu" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"bqv" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/hydroponics) +"bqw" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/green/side{ + tag = "icon-green (NORTHWEST)"; + dir = 9 + }, +/area/hydroponics) +"bqx" = ( +/turf/open/floor/plasteel/green/side{ + tag = "icon-green (NORTH)"; + dir = 1 + }, +/area/hydroponics) +"bqy" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plasteel/green/side{ + tag = "icon-green (NORTH)"; + dir = 1 + }, +/area/hydroponics) +"bqz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/green/side{ + tag = "icon-green (NORTH)"; + dir = 1 + }, +/area/hydroponics) +"bqA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/green/side{ + tag = "icon-green (NORTH)"; + dir = 1 + }, +/area/hydroponics) +"bqB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/green/side{ + tag = "icon-green (NORTHEAST)"; + dir = 5 + }, +/area/hydroponics) +"bqC" = ( +/obj/machinery/hydroponics/constructable, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/hydroponics) +"bqD" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/hydroponics) +"bqE" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bqF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bqG" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bqH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bqI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/window{ + dir = 8; + name = "Theatre Stage"; + req_access_txt = "0" + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"bqJ" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"bqK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"bqL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"bqM" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Theatre Backstage"; + req_access_txt = "46" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"bqN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/chair/stool, +/obj/effect/landmark/start{ + name = "Mime" + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"bqO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/chair/stool, +/obj/effect/landmark/start{ + name = "Clown" + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"bqP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"bqQ" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Theatre Maintenance"; + req_access_txt = "46" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"bqR" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (EAST)"; + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bqS" = ( +/obj/structure/cable/green{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/power/terminal{ + icon_state = "term"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/obj/machinery/light_switch{ + pixel_x = -24; + tag = "w" + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"bqT" = ( +/obj/structure/cable/yellow{ + tag = "icon-6-9"; + icon_state = "6-9"; + d1 = 4; + d2 = 8 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/turf/open/floor/plasteel/caution/corner{ + dir = 4 + }, +/area/engine/gravity_generator) +"bqU" = ( +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/gravity_generator) +"bqV" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 + }, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/engine/gravity_generator) +"bqW" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (EAST)"; + dir = 4 + }, +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_x = 26; + pixel_y = -2; + tag = "EAST" + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"bqX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bqY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bqZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fsmaint2) +"bra" = ( +/obj/item/weapon/stock_parts/cell/crap/empty, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"brb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"brc" = ( +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fsmaint2) +"brd" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bre" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "hopqueue"; + name = "HoP Queue Shutters" + }, +/turf/open/floor/plasteel/loadingarea{ + tag = "icon-loadingarea (WEST)"; + dir = 8 + }, +/area/hallway/primary/central) +"brf" = ( +/obj/machinery/status_display{ + layer = 4; + pixel_x = 0; + pixel_y = 32 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/delivery, +/area/hallway/primary/central) +"brg" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/brigdoor{ + base_state = "rightsecure"; + dir = 4; + icon_state = "rightsecure"; + name = "Head of Personnel's Desk"; + req_access = null; + req_access_txt = "57" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "hop"; + layer = 2.9; + name = "Privacy Shutters" + }, +/obj/machinery/flasher{ + id = "hopflash"; + pixel_x = 0; + pixel_y = 28 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/heads) +"brh" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/effect/landmark/start{ + name = "Head of Personnel" + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/heads) +"bri" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/heads) +"brj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet, +/area/crew_quarters/heads) +"brk" = ( +/turf/open/floor/carpet, +/area/crew_quarters/heads) +"brl" = ( +/obj/structure/cable/blue{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 8; + name = "Autoname APC West"; + pixel_x = -25; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/crew_quarters/heads) +"brm" = ( +/obj/structure/cable/blue{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/blue{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/maintcentral) +"brn" = ( +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/maintcentral) +"bro" = ( +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/maintcentral) +"brp" = ( +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/blue{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/maintcentral) +"brq" = ( +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/structure/cable/blue{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/maintcentral) +"brr" = ( +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/maintcentral) +"brs" = ( +/obj/structure/cable/blue{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 2; + name = "Autoname APC South"; + pixel_x = 1; + pixel_y = -24 + }, +/turf/open/floor/plating, +/area/bridge/meeting_room{ + name = "Bridge Storage" + }) +"brt" = ( +/turf/closed/wall, +/area/maintenance/maintcentral) +"bru" = ( +/obj/structure/table/wood, +/obj/machinery/computer/security/wooden_tv{ + density = 0; + pixel_x = 3; + pixel_y = 2 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/security/detectives_office) +"brv" = ( +/obj/structure/table/wood, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/item/weapon/book/manual/wiki/security_space_law, +/turf/open/floor/carpet, +/area/security/detectives_office) +"brw" = ( +/obj/structure/table/wood, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/item/weapon/storage/fancy/cigarettes, +/obj/item/clothing/glasses/sunglasses, +/turf/open/floor/carpet, +/area/security/detectives_office) +"brx" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"bry" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/security/detectives_office) +"brz" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/turf/open/floor/carpet, +/area/security/detectives_office) +"brA" = ( +/obj/machinery/computer/secure_data, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/security/detectives_office) +"brB" = ( +/obj/item/device/radio/intercom{ + desc = "Talk through this. It looks like it has been modified to not broadcast."; + dir = 2; + name = "Prison Intercom (General)"; + pixel_x = -25; + pixel_y = -2; + prison_radio = 1 + }, +/turf/open/floor/plasteel/red/corner, +/area/security/brig) +"brC" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"brD" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/machinery/camera{ + c_tag = "Cell 1"; + dir = 8; + network = list("SS13","Brig"); + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plasteel/red/corner{ + tag = "icon-redcorner (WEST)"; + dir = 8 + }, +/area/security/brig) +"brE" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/machinery/camera{ + c_tag = "Cell 2"; + dir = 8; + network = list("SS13","Brig"); + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plasteel/red/corner{ + tag = "icon-redcorner (WEST)"; + dir = 8 + }, +/area/security/brig) +"brF" = ( +/obj/machinery/button/door{ + desc = "A remote control switch for the medbay foyer."; + id = "innerbrig"; + name = "Brig Interior Doors Control"; + normaldoorcontrol = 1; + pixel_x = -26; + pixel_y = 5; + req_access_txt = "63" + }, +/obj/machinery/button/door{ + desc = "A remote control switch for the medbay foyer."; + id = "outerbrig"; + name = "Brig Exterior Doors Control"; + normaldoorcontrol = 1; + pixel_x = -26; + pixel_y = -5; + req_access_txt = "63" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (SOUTHWEST)"; + dir = 10 + }, +/area/security/brig) +"brG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (SOUTHEAST)"; + dir = 6 + }, +/area/security/brig) +"brH" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "briggate"; + name = "security shutters" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/window/eastright{ + name = "Brig Desk"; + req_access_txt = "2" + }, +/obj/item/weapon/restraints/handcuffs, +/turf/open/floor/plasteel/black, +/area/security/brig) +"brI" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (EAST)"; + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (WEST)"; + dir = 8 + }, +/area/security/brig) +"brJ" = ( +/obj/machinery/flasher{ + id = "brigentry"; + pixel_x = 22 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (EAST)"; + dir = 4 + }, +/area/security/brig) +"brK" = ( +/obj/item/device/radio/intercom{ + desc = "Talk through this. It looks like it has been modified to not broadcast."; + dir = 2; + name = "Prison Intercom (General)"; + pixel_x = -25; + pixel_y = -2; + prison_radio = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/red/corner, +/area/security/brig) +"brL" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Cell 3"; + dir = 8; + network = list("SS13","Brig"); + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plasteel/red/corner{ + tag = "icon-redcorner (WEST)"; + dir = 8 + }, +/area/security/brig) +"brM" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Cell 4"; + dir = 8; + network = list("SS13","Brig"); + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plasteel/red/corner{ + tag = "icon-redcorner (WEST)"; + dir = 8 + }, +/area/security/brig) +"brN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/extinguisher_cabinet{ + desc = "A small wall mounted cabinet designed to hold a fire extinguisher. Excellent for extinguishing prisoners and or life."; + pixel_x = -27; + pixel_y = 0; + tag = "wsecjoke" + }, +/turf/open/floor/plasteel/black, +/area/security/transfer) +"brO" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (SOUTHWEST)"; + dir = 10 + }, +/area/security/transfer) +"brP" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/security/transfer) +"brQ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/darkred/side{ + dir = 8 + }, +/area/security/transfer) +"brR" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + aiControlDisabled = 0; + icon_state = "closed"; + id_tag = null; + locked = 0; + name = "Prisoner Transfer Centre"; + req_access = null; + req_access_txt = "2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/transfer) +"brS" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkred/corner{ + tag = "icon-darkredcorners (WEST)"; + dir = 8 + }, +/area/security/transfer) +"brT" = ( +/obj/machinery/light/small, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/black, +/area/security/transfer) +"brU" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/obj/machinery/light_switch{ + pixel_y = -24; + tag = "s" + }, +/turf/open/floor/plasteel/darkred/corner, +/area/security/transfer) +"brV" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "executionfireblast"; + layer = 2.9; + name = "blast door" + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/security/transfer) +"brW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/darkred/corner{ + tag = "icon-darkredcorners (WEST)"; + dir = 8 + }, +/area/security/transfer) +"brX" = ( +/obj/machinery/sparker{ + dir = 2; + id = "executionburn"; + pixel_x = 0; + pixel_y = -25 + }, +/obj/machinery/light/small, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + frequency = 1439; + id_tag = null; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/security/transfer) +"brY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/darkred/corner, +/area/security/transfer) +"brZ" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/fire, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/weapon/crowbar, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27; + pixel_y = 0 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"bsa" = ( +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"bsb" = ( +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (WEST)"; + dir = 8 + }, +/area/hallway/secondary/exit) +"bsc" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bsd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bse" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bsf" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + frequency = 1439; + id_tag = null; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bsg" = ( +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (EAST)"; + dir = 4 + }, +/area/hallway/secondary/exit) +"bsh" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/mining{ + name = "Escape Storage"; + req_one_access_txt = "50" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bsi" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/brown{ + dir = 8 + }, +/area/hallway/secondary/exit) +"bsj" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bsk" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bsl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/junction, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bsm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bsn" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Library" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/library) +"bso" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/library) +"bsp" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/carpet, +/area/library) +"bsq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/carpet, +/area/library) +"bsr" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/carpet, +/area/library) +"bss" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Library Game Room" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/library) +"bst" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/library) +"bsu" = ( +/obj/structure/table/wood, +/obj/item/weapon/folder/yellow, +/obj/item/weapon/pen, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/library) +"bsv" = ( +/obj/structure/table/wood, +/obj/item/weapon/dice/d4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/carpet, +/area/library) +"bsw" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/library) +"bsx" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/wood, +/area/library) +"bsy" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Library Maintenance"; + req_access_txt = "12" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bsz" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bsA" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bsB" = ( +/turf/closed/wall/rust, +/area/maintenance/fpmaint) +"bsC" = ( +/turf/closed/wall, +/area/maintenance/fpmaint) +"bsD" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/weapon/extinguisher, +/obj/item/weapon/extinguisher, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/storage/eva) +"bsE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/storage/eva) +"bsF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/storage/eva) +"bsG" = ( +/obj/structure/tank_dispenser/oxygen, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/storage/eva) +"bsH" = ( +/obj/structure/plasticflaps{ + opacity = 1 + }, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=4"; + dir = 4; + freq = 1400; + location = "Hydroponics" + }, +/turf/open/floor/plasteel/bot{ + dir = 1 + }, +/area/hydroponics) +"bsI" = ( +/turf/open/floor/plasteel/delivery, +/area/hydroponics) +"bsJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"bsK" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Hydroponics"; + req_access_txt = "35" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"bsL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"bsM" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/green/side{ + tag = "icon-green (WEST)"; + dir = 8 + }, +/area/hydroponics) +"bsN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"bsO" = ( +/obj/effect/landmark/start{ + name = "Botanist" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"bsP" = ( +/obj/machinery/biogenerator, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plasteel/green/side{ + tag = "icon-green (NORTHWEST)"; + dir = 9 + }, +/area/hydroponics) +"bsQ" = ( +/obj/machinery/seed_extractor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/green/side{ + tag = "icon-green (NORTHEAST)"; + dir = 5 + }, +/area/hydroponics) +"bsR" = ( +/turf/open/floor/plasteel, +/area/hydroponics) +"bsS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/green/side{ + tag = "icon-green (EAST)"; + dir = 4 + }, +/area/hydroponics) +"bsT" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bsU" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (WEST)"; + dir = 8 + }, +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bsV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bsW" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"bsX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"bsY" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"bsZ" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"bta" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/theatre) +"btb" = ( +/obj/structure/dresser, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/theatre) +"btc" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/weapon/reagent_containers/food/snacks/baguette, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = -25; + tag = "SOUTH" + }, +/turf/open/floor/carpet, +/area/crew_quarters/theatre) +"btd" = ( +/obj/machinery/light/small, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/machinery/camera{ + c_tag = "Theatre Backstage"; + dir = 1; + network = list("SS13") + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/carpet, +/area/crew_quarters/theatre) +"bte" = ( +/obj/structure/mirror{ + pixel_y = -32 + }, +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/snacks/pie/cream, +/turf/open/floor/carpet, +/area/crew_quarters/theatre) +"btf" = ( +/obj/structure/dresser, +/turf/open/floor/carpet, +/area/crew_quarters/theatre) +"btg" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bth" = ( +/obj/structure/closet/radiation, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning, +/area/engine/gravity_generator) +"bti" = ( +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable/yellow{ + icon_state = "4-8"; + d1 = 4; + d2 = 8 + }, +/turf/open/floor/plasteel/warning, +/area/engine/gravity_generator) +"btj" = ( +/obj/structure/cable/yellow{ + tag = "icon-2-9"; + icon_state = "2-9"; + d1 = 4; + d2 = 8 + }, +/obj/structure/cable/yellow{ + tag = "icon-8-9"; + icon_state = "8-9"; + d1 = 4; + d2 = 8 + }, +/obj/structure/cable/yellow{ + tag = "icon-4-9"; + icon_state = "4-9"; + d1 = 4; + d2 = 8 + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel/warning, +/area/engine/gravity_generator) +"btk" = ( +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable/yellow{ + icon_state = "4-8"; + d1 = 4; + d2 = 8 + }, +/turf/open/floor/plasteel/warning, +/area/engine/gravity_generator) +"btl" = ( +/obj/structure/closet/radiation, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning, +/area/engine/gravity_generator) +"btm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"btn" = ( +/turf/closed/wall, +/area/maintenance/fsmaint2) +"bto" = ( +/obj/machinery/photocopier, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"btp" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"btq" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/hallway/primary/central) +"btr" = ( +/turf/open/floor/plasteel/bot, +/area/hallway/primary/central) +"bts" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/blue{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "hop"; + layer = 2.9; + name = "Privacy Shutters" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads) +"btt" = ( +/obj/structure/cable/blue{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/computer/card, +/turf/open/floor/plasteel/black, +/area/crew_quarters/heads) +"btu" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/crew_quarters/heads) +"btv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet, +/area/crew_quarters/heads) +"btw" = ( +/obj/structure/bed/dogbed{ + anchored = 0; + desc = "Ian's bed! Looks comfy."; + name = "Ian's bed" + }, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/machinery/camera{ + c_tag = "Head of Personnel's Office"; + dir = 8; + network = list("SS13"); + pixel_x = 0; + pixel_y = 0; + start_active = 1 + }, +/mob/living/simple_animal/pet/dog/corgi/Ian, +/turf/open/floor/carpet, +/area/crew_quarters/heads) +"btx" = ( +/turf/closed/wall/r_wall/rust, +/area/maintenance/maintcentral) +"bty" = ( +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/closed/wall/r_wall, +/area/maintenance/maintcentral) +"btz" = ( +/turf/closed/wall/r_wall, +/area/bridge/meeting_room{ + name = "Bridge Storage" + }) +"btA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/bridge/meeting_room{ + name = "Bridge Storage" + }) +"btB" = ( +/obj/structure/plasticflaps/mining{ + opacity = 1 + }, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=2"; + dir = 2; + freq = 1400; + location = "Bridge" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/bridge/meeting_room{ + name = "Bridge Storage" + }) +"btC" = ( +/turf/closed/wall/r_wall, +/area/bridge) +"btD" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/blue{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + layer = 2.9; + name = "bridge blast door" + }, +/turf/open/floor/plating, +/area/bridge) +"btE" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/blue{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + layer = 2.9; + name = "bridge blast door" + }, +/obj/machinery/ai_status_display{ + layer = 3.3 + }, +/turf/open/floor/plating, +/area/bridge) +"btF" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/blue{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + layer = 2.9; + name = "bridge blast door" + }, +/obj/machinery/status_display{ + layer = 3.3 + }, +/turf/open/floor/plating, +/area/bridge) +"btG" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE" + }, +/turf/closed/wall/r_wall, +/area/bridge) +"btH" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/machinery/requests_console{ + department = "Detective's Office"; + name = "Detective's Office RC"; + pixel_x = -30; + pixel_y = 0 + }, +/obj/effect/landmark/start{ + name = "Detective" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1 + }, +/obj/machinery/light_switch{ + pixel_y = -24; + tag = "s" + }, +/turf/open/floor/carpet, +/area/security/detectives_office) +"btI" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/carpet, +/area/security/detectives_office) +"btJ" = ( +/obj/structure/closet/secure_closet/detective, +/obj/machinery/newscaster{ + pixel_x = 0; + pixel_y = -32; + tag = "s" + }, +/turf/open/floor/carpet, +/area/security/detectives_office) +"btK" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/secure/safe{ + pixel_x = 5; + pixel_y = -26 + }, +/obj/item/device/camera/detective, +/obj/item/device/taperecorder{ + pixel_y = 0 + }, +/turf/open/floor/carpet, +/area/security/detectives_office) +"btL" = ( +/obj/structure/table/wood, +/obj/item/weapon/hand_labeler, +/turf/open/floor/carpet, +/area/security/detectives_office) +"btM" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plating, +/area/security/brig) +"btN" = ( +/obj/machinery/door/window/brigdoor{ + dir = 1; + id = "Cell 1"; + name = "Cell 1"; + req_access_txt = "2" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTH)"; + dir = 1 + }, +/area/security/brig) +"btO" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/security/brig) +"btP" = ( +/obj/machinery/door/window/brigdoor{ + dir = 1; + id = "Cell 2"; + name = "Cell 2"; + req_access_txt = "2" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTH)"; + dir = 1 + }, +/area/security/brig) +"btQ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_security{ + name = "Brig Desk"; + req_access_txt = "1" + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"btR" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plating, +/area/security/brig) +"btS" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_security{ + id_tag = "innerbrig"; + name = "Brig"; + req_access_txt = "63" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (SOUTHWEST)"; + dir = 10 + }, +/area/security/brig) +"btT" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_security{ + id_tag = "innerbrig"; + name = "Brig"; + req_access_txt = "63" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (SOUTHEAST)"; + dir = 6 + }, +/area/security/brig) +"btU" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/security/brig) +"btV" = ( +/obj/machinery/door/window/brigdoor{ + dir = 1; + id = "Cell 3"; + name = "Cell 3"; + req_access_txt = "2" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTH)"; + dir = 1 + }, +/area/security/brig) +"btW" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/security/brig) +"btX" = ( +/obj/machinery/door/window/brigdoor{ + dir = 1; + id = "Cell 4"; + name = "Cell 4"; + req_access_txt = "2" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTH)"; + dir = 1 + }, +/area/security/brig) +"btY" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1 + }, +/obj/machinery/light_switch{ + pixel_x = -24; + tag = "w" + }, +/turf/open/floor/plasteel/black, +/area/security/transfer) +"btZ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/security/transfer) +"bua" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/security/transfer) +"bub" = ( +/turf/closed/wall/r_wall/rust, +/area/security/transfer) +"buc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/security/transfer) +"bud" = ( +/turf/closed/wall/r_wall, +/area/security/prison) +"bue" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -27; + pixel_y = 0; + tag = "w" + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"buf" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock" + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"bug" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8"; + d1 = 4; + d2 = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"buh" = ( +/turf/open/floor/plating, +/area/hallway/secondary/exit) +"bui" = ( +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2); + name = "random metal material damage spawner" + }, +/obj/structure/cable/green{ + tag = "icon-1-6"; + icon_state = "1-6" + }, +/obj/structure/grille/broken, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"buj" = ( +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (SOUTHWEST)"; + dir = 10 + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (SOUTHWEST)"; + dir = 10 + }, +/area/hallway/secondary/exit) +"buk" = ( +/turf/open/floor/plasteel/brown, +/area/hallway/secondary/exit) +"bul" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/brown, +/area/hallway/secondary/exit) +"bum" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/bot{ + dir = 1 + }, +/area/hallway/secondary/exit) +"bun" = ( +/turf/open/floor/plasteel/bot{ + dir = 1 + }, +/area/hallway/secondary/exit) +"buo" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (SOUTHEAST)"; + dir = 6 + }, +/area/hallway/secondary/exit) +"bup" = ( +/obj/machinery/newscaster{ + pixel_x = -32; + pixel_y = 0; + tag = "w" + }, +/turf/open/floor/plasteel/brown/corner{ + tag = "icon-browncorner (NORTH)"; + dir = 1 + }, +/area/hallway/secondary/exit) +"buq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bur" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bus" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"but" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Library" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/library) +"buu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/library) +"buv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/library) +"buw" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/carpet, +/area/library) +"bux" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/carpet, +/area/library) +"buy" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Library Game Room" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/library) +"buz" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/library) +"buA" = ( +/obj/structure/table/wood, +/obj/item/weapon/dice/d12, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/library) +"buB" = ( +/obj/structure/table/wood, +/obj/item/weapon/dice, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/carpet, +/area/library) +"buC" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/wood, +/area/library) +"buD" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"buE" = ( +/obj/item/weapon/poster/legit, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"buF" = ( +/obj/structure/frame/machine, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"buG" = ( +/obj/structure/table, +/obj/item/device/radio/off{ + pixel_x = -4 + }, +/obj/item/device/radio/off{ + pixel_x = -4 + }, +/obj/item/device/assembly/signaler, +/obj/item/device/assembly/signaler, +/obj/item/device/assembly/prox_sensor, +/obj/item/device/assembly/prox_sensor, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/storage/eva) +"buH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black/corner, +/area/storage/eva) +"buI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black/corner{ + tag = "icon-blackcorner (WEST)"; + dir = 8 + }, +/area/storage/eva) +"buJ" = ( +/obj/structure/table, +/obj/item/weapon/storage/belt/utility, +/obj/item/weapon/storage/belt/utility, +/obj/item/weapon/storage/belt/utility, +/obj/item/clothing/head/welding, +/obj/item/device/multitool, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/storage/eva) +"buK" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (WEST)"; + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"buL" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Hydroponics Maintenance"; + req_access_txt = "35" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/hydroponics) +"buM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"buN" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"buO" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Hydroponics"; + req_access_txt = "35" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"buP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/green/side{ + tag = "icon-green (WEST)"; + dir = 8 + }, +/area/hydroponics) +"buQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"buR" = ( +/obj/machinery/vending/hydronutrients, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/green/side{ + tag = "icon-green (SOUTHWEST)"; + dir = 10 + }, +/area/hydroponics) +"buS" = ( +/obj/machinery/vending/hydroseeds, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel/green/side{ + tag = "icon-green (SOUTHEAST)"; + dir = 6 + }, +/area/hydroponics) +"buT" = ( +/obj/effect/landmark/start{ + name = "Botanist" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/green/side{ + tag = "icon-green (EAST)"; + dir = 4 + }, +/area/hydroponics) +"buU" = ( +/obj/machinery/hydroponics/constructable, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/hydroponics) +"buV" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/hydroponics) +"buW" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"buX" = ( +/obj/structure/rack{ + icon = 'icons/obj/stationobjs.dmi'; + icon_state = "minibar_right"; + name = "skeletal minibar" + }, +/obj/item/weapon/reagent_containers/food/drinks/bottle/gin, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"buY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"buZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/condiment/peppermill{ + pixel_x = 3 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bva" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (EAST)"; + dir = 4 + }, +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bvb" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bvc" = ( +/obj/structure/table, +/obj/item/weapon/kitchen/fork, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bvd" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bve" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"bvf" = ( +/obj/structure/window/reinforced, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"bvg" = ( +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_x = 26; + pixel_y = -2; + tag = "EAST" + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"bvh" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/yellow, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'RADIOACTIVE AREA'"; + icon_state = "radiation"; + name = "RADIOACTIVE AREA"; + pixel_x = -32; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/engine/gravity_generator) +"bvi" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/yellow, +/turf/open/floor/plating, +/area/engine/gravity_generator) +"bvj" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_engineering{ + name = "Gravity Generator"; + req_access_txt = "11"; + req_one_access_txt = "0" + }, +/turf/open/floor/plasteel/black, +/area/engine/gravity_generator) +"bvk" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/yellow, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE"; + pixel_x = 32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/engine/gravity_generator) +"bvl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/blue/corner, +/area/hallway/primary/central) +"bvm" = ( +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/blue{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/plasteel/black, +/area/crew_quarters/heads) +"bvn" = ( +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/heads) +"bvo" = ( +/obj/structure/cable/blue{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet, +/area/crew_quarters/heads) +"bvp" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads) +"bvq" = ( +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/glass = 2, /obj/item/stack/sheet/rglass = 1, /obj/item/stack/sheet/metal = 2, /obj/item/stack/sheet/plasteel = 1); + name = "random sheet material spawner" + }, +/turf/open/floor/plating, +/area/maintenance/maintcentral) +"bvr" = ( +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/maintcentral) +"bvs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/closet/firecloset/full, +/turf/open/floor/plasteel/black, +/area/bridge/meeting_room{ + name = "Bridge Storage" + }) +"bvt" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/obj/structure/table, +/obj/item/weapon/storage/box/lights/mixed, +/obj/item/weapon/pipe_dispenser, +/obj/machinery/button/door{ + id = "aux_base_shutters"; + name = "Public Shutters Control"; + pixel_x = 24; + pixel_y = 0; + req_access_txt = "0"; + req_one_access_txt = "32;47;48" + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (NORTH)"; + dir = 1 + }, +/area/mining_construction) +"bvu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/darkwarning/end, +/area/bridge/meeting_room{ + name = "Bridge Storage" + }) +"bvv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"bvw" = ( +/obj/structure/closet/emcloset, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/black, +/area/bridge/meeting_room{ + name = "Bridge Storage" + }) +"bvx" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners (EAST)"; + dir = 4 + }, +/area/bridge) +"bvy" = ( +/obj/structure/cable/blue{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (NORTH)"; + dir = 1 + }, +/area/bridge) +"bvz" = ( +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/blue{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/blue{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (NORTH)"; + dir = 1 + }, +/area/bridge) +"bvA" = ( +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/blue{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (NORTH)"; + dir = 1 + }, +/area/bridge) +"bvB" = ( +/obj/structure/cable/blue{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/blue{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (NORTH)"; + dir = 1 + }, +/area/bridge) +"bvC" = ( +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/blue{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (NORTH)"; + dir = 1 + }, +/area/bridge) +"bvD" = ( +/obj/structure/cable/blue{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (NORTH)"; + dir = 1 + }, +/area/bridge) +"bvE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Bridge North"; + network = list("SS13"); + start_active = 1 + }, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners (NORTH)"; + dir = 1 + }, +/area/bridge) +"bvF" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + frequency = 1439; + id_tag = null; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0; + tag = "e" + }, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"bvG" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/table, +/obj/item/bodybag, +/obj/item/clothing/gloves/color/latex, +/obj/item/clothing/mask/surgical, +/turf/open/floor/plasteel/black, +/area/security/detectives_office) +"bvH" = ( +/obj/machinery/door/window{ + dir = 1; + name = "glass door"; + pixel_y = 0; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/black, +/area/security/detectives_office) +"bvI" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/darkred/corner{ + tag = "icon-darkredcorners (NORTH)"; + dir = 1 + }, +/area/security/brig) +"bvJ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/black, +/area/security/brig) +"bvK" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/darkred/corner{ + tag = "icon-darkredcorners (EAST)"; + dir = 4 + }, +/area/security/brig) +"bvL" = ( +/obj/machinery/door_timer{ + id = "Cell 1"; + name = "Cell 1"; + pixel_y = 32 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTH)"; + dir = 1 + }, +/area/security/brig) +"bvM" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/darkred/corner{ + tag = "icon-darkredcorners (NORTH)"; + dir = 1 + }, +/area/security/brig) +"bvN" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"bvO" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/darkred/corner{ + tag = "icon-darkredcorners (EAST)"; + dir = 4 + }, +/area/security/brig) +"bvP" = ( +/obj/machinery/door_timer{ + id = "Cell 2"; + name = "Cell 2"; + pixel_y = 32 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTH)"; + dir = 1 + }, +/area/security/brig) +"bvQ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTH)"; + dir = 1 + }, +/area/security/brig) +"bvR" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTH)"; + dir = 1 + }, +/area/security/brig) +"bvS" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/sortjunction{ + sortType = 7 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTH)"; + dir = 1 + }, +/area/security/brig) +"bvT" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/sortjunction{ + dir = 1; + icon_state = "pipe-j1s"; + sortType = 8; + tag = "icon-pipe-j1s (NORTH)" + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTH)"; + dir = 1 + }, +/area/security/brig) +"bvU" = ( +/obj/machinery/door_timer{ + id = "Cell 3"; + name = "Cell 3"; + pixel_y = 32 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTH)"; + dir = 1 + }, +/area/security/brig) +"bvV" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/darkred/corner{ + tag = "icon-darkredcorners (NORTH)"; + dir = 1 + }, +/area/security/brig) +"bvW" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"bvX" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/darkred/corner{ + tag = "icon-darkredcorners (EAST)"; + dir = 4 + }, +/area/security/brig) +"bvY" = ( +/obj/machinery/door_timer{ + id = "Cell 4"; + name = "Cell 4"; + pixel_y = 32 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTH)"; + dir = 1 + }, +/area/security/brig) +"bvZ" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/darkred/corner{ + tag = "icon-darkredcorners (NORTH)"; + dir = 1 + }, +/area/security/brig) +"bwa" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/black, +/area/security/brig) +"bwb" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel/darkred/corner{ + tag = "icon-darkredcorners (EAST)"; + dir = 4 + }, +/area/security/brig) +"bwc" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/darkred/side, +/area/security/transfer) +"bwd" = ( +/obj/structure/table, +/obj/item/device/assembly/signaler, +/obj/item/clothing/head/helmet, +/obj/item/weapon/wrench, +/obj/item/weapon/screwdriver, +/obj/item/device/electropack, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTH)"; + dir = 1 + }, +/area/security/prison) +"bwe" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/bodybags, +/obj/item/weapon/pen, +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching Prison Wing holding areas."; + name = "Prison Monitor"; + network = list("Prison"); + pixel_x = 32; + pixel_y = 0 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTH)"; + dir = 1 + }, +/area/security/prison) +"bwf" = ( +/turf/closed/wall, +/area/security/prison) +"bwg" = ( +/obj/structure/bed, +/obj/item/device/radio/intercom{ + desc = "Talk through this. It looks like it has been modified to not broadcast."; + dir = 2; + name = "Prison Intercom (General)"; + pixel_x = 0; + pixel_y = 25; + prison_radio = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/obj/machinery/camera{ + c_tag = "Prison Cell 3"; + dir = 4; + network = list("SS13","Prison") + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bwh" = ( +/obj/machinery/button/door{ + id = "permabolt3"; + name = "Cell Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 0; + pixel_y = 25; + req_access_txt = "0"; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bwi" = ( +/obj/machinery/computer/arcade, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bwj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/vending/sustenance{ + desc = "A Nutri-vend brand vending machine which vends food, as required by section 47-C of the NT's Prisoner Ethical Treatment Agreement."; + name = "\improper Nutri-vend" + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bwk" = ( +/obj/machinery/biogenerator, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bwl" = ( +/obj/machinery/seed_extractor, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bwm" = ( +/obj/machinery/hydroponics/soil, +/obj/item/weapon/reagent_containers/glass/bucket, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bwn" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bwo" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/security/prison) +"bwp" = ( +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bwq" = ( +/obj/machinery/door/airlock/glass{ + name = "Emergency Shuttle Infirmary" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"bwr" = ( +/obj/machinery/status_display, +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"bws" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"bwt" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Cargo" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"bwu" = ( +/obj/structure/grille/broken, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bwv" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; + name = "KEEP CLEAR: DOCKING AREA"; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/hallway/secondary/exit) +"bww" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = -32 + }, +/turf/open/floor/plating, +/area/hallway/secondary/exit) +"bwx" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_mining{ + name = "Escape Storage"; + req_access_txt = "50" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/brown, +/area/hallway/secondary/exit) +"bwy" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/hallway/secondary/exit) +"bwz" = ( +/obj/machinery/ai_status_display, +/turf/closed/wall, +/area/hallway/secondary/exit) +"bwA" = ( +/turf/open/floor/plasteel/escape/corner{ + tag = "icon-escapecorner (WEST)"; + dir = 8 + }, +/area/hallway/secondary/exit) +"bwB" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0; + tag = "e" + }, +/obj/machinery/camera{ + c_tag = "Escape East 1"; + dir = 8; + network = list("SS13"); + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (EAST)"; + dir = 4 + }, +/area/hallway/secondary/exit) +"bwC" = ( +/obj/structure/bookcase/random/religion, +/turf/open/floor/wood, +/area/library) +"bwD" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1 + }, +/turf/open/floor/wood, +/area/library) +"bwE" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/library) +"bwF" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/carpet, +/area/library) +"bwG" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fpmaint) +"bwH" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bwI" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bwJ" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bwK" = ( +/obj/structure/frame/machine, +/obj/machinery/power/apc{ + aidisabled = 0; + auto_name = 1; + cell_type = 2500; + dir = 4; + name = "Autoname APC East"; + pixel_x = 24; + pixel_y = 0 + }, +/obj/structure/cable/green{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bwL" = ( +/turf/closed/wall/r_wall, +/area/storage/eva) +"bwM" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_command{ + name = "EVA Storage"; + req_access_txt = "18" + }, +/turf/open/floor/plasteel, +/area/storage/eva) +"bwN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bwO" = ( +/obj/machinery/camera{ + c_tag = "Hydroponics West"; + dir = 4; + icon_state = "camera"; + network = list("SS13"); + tag = "" + }, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"bwP" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"bwQ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/green/side{ + tag = "icon-green (SOUTHWEST)"; + dir = 10 + }, +/area/hydroponics) +"bwR" = ( +/turf/open/floor/plasteel/green/side, +/area/hydroponics) +"bwS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/green/side, +/area/hydroponics) +"bwT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/green/side, +/area/hydroponics) +"bwU" = ( +/turf/open/floor/plasteel/green/side{ + tag = "icon-green (SOUTHEAST)"; + dir = 6 + }, +/area/hydroponics) +"bwV" = ( +/obj/machinery/conveyor{ + dir = 5; + id = "QMLoad2" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"bwW" = ( +/obj/structure/closet/crate, +/obj/item/weapon/reagent_containers/food/drinks/bottle/cognac, +/obj/item/weapon/reagent_containers/food/drinks/bottle/absinthe/premium, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"bwX" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/condiment/saltshaker{ + pixel_x = -3; + pixel_y = 0 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bwY" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/snacks/popcorn, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bwZ" = ( +/obj/structure/table, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bxa" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bxb" = ( +/obj/structure/cable/green{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 1; + name = "Autoname APC North"; + pixel_x = 0; + pixel_y = 24 + }, +/turf/open/floor/plating, +/area/crew_quarters/theatre) +"bxc" = ( +/obj/item/weapon/vending_refill/autodrobe, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bxd" = ( +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/fsmaint2) +"bxe" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/darkwarning/corner, +/area/engine/gravity_generator) +"bxf" = ( +/turf/open/floor/plasteel/darkwarning, +/area/engine/gravity_generator) +"bxg" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4"; + d1 = 1; + d2 = 4 + }, +/turf/open/floor/plasteel/darkwarning, +/area/engine/gravity_generator) +"bxh" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8"; + d1 = 4; + d2 = 8 + }, +/turf/open/floor/plasteel/darkwarning, +/area/engine/gravity_generator) +"bxi" = ( +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/darkwarning/corner{ + tag = "icon-warndarkcorners (NORTH)"; + dir = 1 + }, +/area/engine/gravity_generator) +"bxj" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai_upload) +"bxk" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/white{ + d2 = 2; + icon_state = "0-2"; + tag = "icon-0-2" + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/ai_upload) +"bxl" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE" + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai_upload) +"bxm" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/primary/central) +"bxn" = ( +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + dir = 5 + }, +/area/hallway/primary/central) +"bxo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/hallway/primary/central) +"bxp" = ( +/obj/machinery/computer/cargo, +/obj/machinery/keycard_auth{ + pixel_x = -24; + pixel_y = 0 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/heads) +"bxq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/crew_quarters/heads) +"bxr" = ( +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/black, +/area/crew_quarters/heads) +"bxs" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/heads) +"bxt" = ( +/obj/structure/table, +/obj/machinery/recharger, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_x = 26; + pixel_y = -2; + tag = "EAST" + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/heads) +"bxu" = ( +/obj/item/device/firing_pin/clown/ultra{ + desc = "Advanced clowntech that can convert any firearm into a far more useful object, at least, in theory."; + force_replace = 0 + }, +/turf/open/floor/plating, +/area/maintenance/maintcentral) +"bxv" = ( +/obj/item/weapon/paper/crumpled{ + info = "The fifth and sixth straddle the core..." + }, +/obj/structure/cable/blue, +/turf/open/floor/plating, +/area/maintenance/maintcentral) +"bxw" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/camera{ + c_tag = "Bridge Storage"; + dir = 4; + network = list("SS13") + }, +/turf/open/floor/plasteel/black, +/area/bridge/meeting_room{ + name = "Bridge Storage" + }) +"bxx" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/bridge/meeting_room{ + name = "Bridge Storage" + }) +"bxy" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (EAST)"; + dir = 4 + }, +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black, +/area/bridge/meeting_room{ + name = "Bridge Storage" + }) +"bxz" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/bridge/meeting_room{ + name = "Bridge Storage" + }) +"bxA" = ( +/turf/open/floor/plasteel/black, +/area/bridge/meeting_room{ + name = "Bridge Storage" + }) +"bxB" = ( +/obj/machinery/door/airlock/command{ + name = "Bridge Storage"; + req_access = null; + req_access_txt = "19" + }, +/turf/open/floor/plasteel/black, +/area/bridge/meeting_room{ + name = "Bridge Storage" + }) +"bxC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/bridge) +"bxD" = ( +/obj/machinery/computer/atmos_alert, +/turf/open/floor/plasteel/darkyellow/side{ + tag = "icon-darkyellow (NORTHWEST)"; + dir = 9 + }, +/area/bridge) +"bxE" = ( +/obj/machinery/computer/monitor{ + name = "bridge power monitoring console" + }, +/obj/structure/cable/blue, +/turf/open/floor/plasteel/darkyellow/side{ + tag = "icon-darkyellow (NORTH)"; + dir = 1 + }, +/area/bridge) +"bxF" = ( +/obj/machinery/computer/station_alert, +/turf/open/floor/plasteel/darkyellow/side{ + tag = "icon-darkyellow (NORTHEAST)"; + dir = 5 + }, +/area/bridge) +"bxG" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/toolbox/emergency, +/obj/item/weapon/wrench, +/obj/item/device/multitool, +/turf/open/floor/plasteel/black, +/area/bridge) +"bxH" = ( +/obj/structure/table/reinforced, +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/recharger, +/turf/open/floor/plasteel/black, +/area/bridge) +"bxI" = ( +/obj/machinery/computer/secure_data, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTHWEST)"; + dir = 9 + }, +/area/bridge) +"bxJ" = ( +/obj/machinery/computer/security, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTH)"; + dir = 1 + }, +/area/bridge) +"bxK" = ( +/obj/machinery/computer/prisoner, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTHEAST)"; + dir = 5 + }, +/area/bridge) +"bxL" = ( +/obj/structure/table/reinforced, +/obj/item/device/assembly/flash/handheld, +/obj/item/device/assembly/flash/handheld, +/turf/open/floor/plasteel/black, +/area/bridge) +"bxM" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners" + }, +/area/bridge) +"bxN" = ( +/obj/structure/bodycontainer/morgue, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/turf/open/floor/plasteel/black, +/area/security/detectives_office) +"bxO" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/detectives_office) +"bxP" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/item/weapon/paper/crumpled{ + info = "The fourth follows those fit to command..." + }, +/obj/item/weapon/grenade/chem_grenade/colorful{ + desc = "Perfect for making the brig a bit less intimidating." + }, +/obj/item/weapon/screwdriver{ + desc = "A screwdriver with an ultra thin tip." + }, +/turf/open/floor/plating, +/area/security/brig) +"bxQ" = ( +/obj/item/weapon/dice/d8{ + desc = "A die with eight sides. It feels.... incredibly lucky. The three is slightly darker than the other numbers."; + tag = "three" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/security/brig) +"bxR" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"bxS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/darkred/corner, +/area/security/brig) +"bxT" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/darkred/side, +/area/security/brig) +"bxU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkred/corner{ + tag = "icon-darkredcorners (WEST)"; + dir = 8 + }, +/area/security/brig) +"bxV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"bxW" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/security/brig) +"bxX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkred/corner, +/area/security/brig) +"bxY" = ( +/obj/effect/landmark{ + name = "lightsout" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/darkred/side, +/area/security/brig) +"bxZ" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-j2"; + dir = 4 + }, +/turf/open/floor/plasteel/darkred/corner{ + tag = "icon-darkredcorners (WEST)"; + dir = 8 + }, +/area/security/brig) +"bya" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"byb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/darkred/corner{ + tag = "icon-darkredcorners (WEST)"; + dir = 8 + }, +/area/security/brig) +"byc" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + frequency = 1439; + id_tag = null; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"byd" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/security/transfer) +"bye" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_x = -25; + pixel_y = -2; + tag = "WEST" + }, +/turf/open/floor/plasteel/black, +/area/security/prison) +"byf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (EAST)"; + dir = 4 + }, +/area/security/prison) +"byg" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Long-Term Cell 3"; + req_access_txt = "2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"byh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"byi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"byj" = ( +/obj/machinery/door/poddoor/preopen{ + id = "permacell3"; + name = "cell blast door" + }, +/obj/machinery/door/airlock/glass{ + id_tag = "permabolt3"; + name = "Cell 3" + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"byk" = ( +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"byl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bym" = ( +/obj/machinery/hydroponics/soil, +/obj/item/weapon/cultivator, +/obj/item/seeds/tower/steel, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"byn" = ( +/obj/machinery/hydroponics/soil, +/obj/item/seeds/potato, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"byo" = ( +/obj/machinery/hydroponics/soil, +/obj/item/seeds/coffee/robusta, +/obj/item/device/plant_analyzer, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"byp" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"byq" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -27; + pixel_y = 0; + tag = "w" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"byr" = ( +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"bys" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"byt" = ( +/obj/machinery/camera/emp_proof{ + c_tag = "Containment Southwest"; + dir = 5; + icon_state = "camera"; + network = list("Singularity"); + tag = "icon-camera (NORTHEAST)" + }, +/obj/structure/cable/green{ + tag = "icon-2-9"; + icon_state = "2-9" + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"byu" = ( +/turf/open/floor/plasteel/escape{ + tag = "icon-escape (NORTHWEST)"; + dir = 9 + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (NORTHWEST)"; + dir = 9 + }, +/area/hallway/secondary/exit) +"byv" = ( +/turf/open/floor/plasteel/escape{ + tag = "icon-escape (NORTH)"; + dir = 1 + }, +/area/hallway/secondary/exit) +"byw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/escape{ + tag = "icon-escape (NORTH)"; + dir = 1 + }, +/area/hallway/secondary/exit) +"byx" = ( +/obj/structure/chair, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/escape{ + tag = "icon-escape (NORTH)"; + dir = 1 + }, +/area/hallway/secondary/exit) +"byy" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/escape{ + tag = "icon-escape (NORTH)"; + dir = 1 + }, +/area/hallway/secondary/exit) +"byz" = ( +/obj/structure/chair, +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/escape{ + dir = 5 + }, +/area/hallway/secondary/exit) +"byA" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/hallway/secondary/exit) +"byB" = ( +/turf/open/floor/plasteel/escape{ + dir = 8 + }, +/area/hallway/secondary/exit) +"byC" = ( +/obj/machinery/vending/cola, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"byD" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/wood, +/area/library) +"byE" = ( +/obj/machinery/photocopier, +/turf/open/floor/wood, +/area/library) +"byF" = ( +/obj/structure/table/wood, +/obj/item/weapon/dice/d20, +/obj/machinery/light/small, +/turf/open/floor/wood, +/area/library) +"byG" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/machinery/camera{ + c_tag = "Library Game Room"; + dir = 1; + network = list("SS13") + }, +/turf/open/floor/wood, +/area/library) +"byH" = ( +/obj/structure/filingcabinet, +/turf/open/floor/wood, +/area/library) +"byI" = ( +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"byJ" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/electrical{ + pixel_x = 1; + pixel_y = -1 + }, +/turf/open/floor/plasteel/black, +/area/storage/eva) +"byK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/storage/eva) +"byL" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + frequency = 1439; + id_tag = null; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/storage/eva) +"byM" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (NORTHWEST)"; + dir = 9 + }, +/area/storage/eva) +"byN" = ( +/obj/structure/cable/green{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + aidisabled = 0; + auto_name = 1; + cell_type = 2500; + dir = 4; + name = "Autoname APC East"; + pixel_x = 24; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/hydroponics) +"byO" = ( +/obj/machinery/conveyor{ + dir = 10; + id = "QMLoad2"; + tag = "cargoshuttleup"; + verted = -1 + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"byP" = ( +/obj/machinery/hydroponics/constructable, +/obj/machinery/light, +/turf/open/floor/plasteel/black, +/area/hydroponics) +"byQ" = ( +/obj/structure/sink{ + icon_state = "sink"; + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/item/weapon/reagent_containers/glass/bucket, +/turf/open/floor/plasteel/green, +/area/hydroponics) +"byR" = ( +/obj/machinery/hydroponics/constructable, +/obj/machinery/requests_console{ + department = "Hydroponics"; + departmentType = 2; + name = "Hydroponics RC"; + pixel_x = 0; + pixel_y = -30 + }, +/turf/open/floor/plasteel/black, +/area/hydroponics) +"byS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white/corner{ + dir = 2 + }, +/area/hydroponics) +"byT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white/corner{ + dir = 2 + }, +/area/hydroponics) +"byU" = ( +/obj/machinery/hydroponics/constructable, +/obj/machinery/camera{ + c_tag = "Hydroponics"; + dir = 1; + icon_state = "camera"; + network = list("SS13"); + tag = "" + }, +/turf/open/floor/plasteel/black, +/area/hydroponics) +"byV" = ( +/obj/machinery/hydroponics/constructable, +/obj/machinery/light_switch{ + pixel_y = -24; + tag = "s" + }, +/turf/open/floor/plasteel/black, +/area/hydroponics) +"byW" = ( +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/green, +/area/hydroponics) +"byX" = ( +/obj/structure/chair/stool, +/turf/open/floor/plating{ + broken = 1; + heat_capacity = 1e+006; + icon_state = "platingdmg2" + }, +/area/maintenance/fsmaint) +"byY" = ( +/obj/structure/closet/crate, +/obj/item/weapon/reagent_containers/food/drinks/bottle/goldschlager, +/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fsmaint) +"byZ" = ( +/obj/item/wallframe/light_fixture/small, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"bza" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bzb" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bzc" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Bar Maintenance"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bzd" = ( +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bze" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bzf" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bzg" = ( +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bzh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (EAST)"; + dir = 4 + }, +/area/engine/gravity_generator) +"bzi" = ( +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (EAST)"; + dir = 4 + }, +/area/engine/gravity_generator) +"bzj" = ( +/turf/open/floor/plasteel/black, +/area/engine/gravity_generator) +"bzk" = ( +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTH)"; + dir = 1 + }, +/area/engine/gravity_generator) +"bzl" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/camera{ + c_tag = "Engineering Gravity Generator Room"; + dir = 8; + network = list("SS13"); + pixel_x = 0; + pixel_y = 0; + start_active = 1 + }, +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (WEST)"; + dir = 8 + }, +/area/engine/gravity_generator) +"bzm" = ( +/obj/machinery/porta_turret/ai{ + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (WEST)"; + dir = 8 + }, +/area/ai_monitored/turret_protected/ai_upload) +"bzn" = ( +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (EAST)"; + dir = 4 + }, +/obj/structure/table, +/obj/item/weapon/aiModule/supplied/protectStation, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (EAST)"; + dir = 4 + }, +/area/ai_monitored/turret_protected/ai_upload) +"bzo" = ( +/obj/machinery/computer/upload/ai, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (WEST)"; + dir = 8 + }, +/area/ai_monitored/turret_protected/ai_upload) +"bzp" = ( +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (WEST)"; + dir = 8 + }, +/obj/structure/table, +/obj/item/weapon/aiModule/core/full/corp, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (WEST)"; + dir = 8 + }, +/area/ai_monitored/turret_protected/ai_upload) +"bzq" = ( +/obj/machinery/porta_turret/ai{ + dir = 8 + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (WEST)"; + dir = 8 + }, +/area/ai_monitored/turret_protected/ai_upload) +"bzr" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/space, +/area/space/nearstation) +"bzs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/lattice, +/turf/open/space, +/area/space/nearstation) +"bzt" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/space, +/area/space/nearstation) +"bzu" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/primary/central) +"bzv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + dir = 5 + }, +/area/hallway/primary/central) +"bzw" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/hallway/primary/central) +"bzx" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "hopqueue"; + name = "HoP Queue Shutters" + }, +/turf/open/floor/plasteel/loadingarea{ + tag = "icon-loadingarea (EAST)"; + dir = 4 + }, +/area/hallway/primary/central) +"bzy" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE" + }, +/turf/closed/wall/r_wall, +/area/crew_quarters/heads) +"bzz" = ( +/obj/structure/closet/secure_closet/hop, +/obj/item/weapon/bedsheet/hop, +/turf/open/floor/plasteel/black, +/area/crew_quarters/heads) +"bzA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners" + }, +/area/crew_quarters/heads) +"bzB" = ( +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue" + }, +/area/crew_quarters/heads) +"bzC" = ( +/obj/structure/table, +/obj/item/weapon/folder/blue, +/obj/item/weapon/stamp/hop, +/obj/machinery/newscaster{ + pixel_x = 0; + pixel_y = -32; + tag = "s" + }, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners (WEST)"; + dir = 8 + }, +/area/crew_quarters/heads) +"bzD" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7; + tag = "every single paper bin is edited to this" + }, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/black, +/area/crew_quarters/heads) +"bzE" = ( +/obj/item/weapon/dice/d8{ + desc = "A die with eight sides. It feels.... incredibly lucky. The four is slightly darker than the other numbers."; + tag = "four" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/maintcentral) +"bzF" = ( +/obj/item/weapon/ore/bluespace_crystal, +/turf/open/floor/plating, +/area/maintenance/maintcentral) +"bzG" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/black, +/area/bridge/meeting_room{ + name = "Bridge Storage" + }) +"bzH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light_switch{ + pixel_y = -24; + tag = "s" + }, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners" + }, +/area/bridge/meeting_room{ + name = "Bridge Storage" + }) +"bzI" = ( +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue" + }, +/area/bridge/meeting_room{ + name = "Bridge Storage" + }) +"bzJ" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (EAST)"; + dir = 4 + }, +/obj/structure/table, +/obj/machinery/recharger, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners (WEST)"; + dir = 8 + }, +/area/bridge/meeting_room{ + name = "Bridge Storage" + }) +"bzK" = ( +/obj/machinery/photocopier, +/turf/open/floor/plasteel/black, +/area/bridge/meeting_room{ + name = "Bridge Storage" + }) +"bzL" = ( +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Bridge"; + departmentType = 5; + name = "Bridge RC"; + pixel_x = -30; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/bridge) +"bzM" = ( +/turf/open/floor/plasteel/darkyellow/corner{ + tag = "icon-darkyellowcorners (NORTH)"; + dir = 1 + }, +/area/bridge) +"bzN" = ( +/obj/structure/chair{ + dir = 1; + name = "Engineering Station" + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"bzO" = ( +/turf/open/floor/plasteel/darkyellow/corner{ + tag = "icon-darkyellowcorners (EAST)"; + dir = 4 + }, +/area/bridge) +"bzP" = ( +/turf/open/floor/plasteel/black, +/area/bridge) +"bzQ" = ( +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"bzR" = ( +/turf/open/floor/plasteel/darkred/corner{ + tag = "icon-darkredcorners (NORTH)"; + dir = 1 + }, +/area/bridge) +"bzS" = ( +/obj/structure/chair{ + dir = 1; + name = "Security Station" + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"bzT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/darkred/corner{ + tag = "icon-darkredcorners (EAST)"; + dir = 4 + }, +/area/bridge) +"bzU" = ( +/obj/structure/cable/blue{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (EAST)"; + dir = 4 + }, +/area/bridge) +"bzV" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/blue{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + layer = 2.9; + name = "bridge blast door" + }, +/turf/open/floor/plating, +/area/bridge) +"bzW" = ( +/turf/closed/wall/r_wall, +/area/security/main) +"bzX" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/closed/wall, +/area/security/main) +"bzY" = ( +/turf/closed/wall, +/area/security/main) +"bzZ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/sign/securearea{ + pixel_x = -32 + }, +/turf/open/floor/plating, +/area/security/main) +"bAa" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/security/main) +"bAb" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_security{ + name = "Security Office"; + req_access_txt = "63"; + req_one_access_txt = "0" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/darkred, +/area/security/main) +"bAc" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plating, +/area/security/main) +"bAd" = ( +/turf/closed/wall, +/area/security/warden) +"bAe" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plating, +/area/security/warden) +"bAf" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/brigdoor{ + dir = 2; + name = "Armory Desk"; + req_access_txt = "3" + }, +/obj/structure/disposalpipe/segment, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7; + tag = "every single paper bin is edited to this" + }, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/darkred, +/area/security/warden) +"bAg" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_security{ + name = "Security Briefing Room"; + req_access_txt = "0"; + req_one_access_txt = "1;4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/darkred, +/area/security/brig) +"bAh" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/security/brig) +"bAi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light_switch{ + pixel_x = -24; + tag = "w" + }, +/turf/open/floor/plasteel/black, +/area/security/prison) +"bAj" = ( +/obj/machinery/button/door{ + id = "permacell3"; + name = "Cell 3 Lockdown"; + pixel_x = 25; + pixel_y = 4; + req_access_txt = "2" + }, +/obj/machinery/button/flasher{ + id = "PCell 3"; + pixel_x = 24; + pixel_y = -6 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/security/prison) +"bAk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/security/prison) +"bAl" = ( +/obj/structure/table, +/obj/machinery/flasher{ + id = "PCell 3"; + pixel_x = -28 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/weapon/paper, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bAm" = ( +/obj/machinery/light/small, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bAn" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bAo" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bAp" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"bAq" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"bAr" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"bAs" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"bAt" = ( +/turf/open/floor/plasteel/escape{ + tag = "icon-escape (WEST)"; + dir = 8 + }, +/area/hallway/secondary/exit) +"bAu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bAv" = ( +/turf/open/floor/plasteel/escape{ + dir = 4 + }, +/area/hallway/secondary/exit) +"bAw" = ( +/obj/machinery/vending/coffee, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bAx" = ( +/obj/structure/bookcase/random/fiction, +/turf/open/floor/wood, +/area/library) +"bAy" = ( +/obj/structure/bookcase/random/reference, +/turf/open/floor/wood, +/area/library) +"bAz" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/girder{ + layer = 2.6 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bAA" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2); + name = "random metal material damage spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bAB" = ( +/obj/structure/table, +/obj/item/stack/cable_coil{ + pixel_x = 3; + pixel_y = -7 + }, +/obj/machinery/cell_charger, +/obj/item/weapon/stock_parts/cell/high/plus, +/obj/item/weapon/stock_parts/cell/high/plus, +/obj/item/weapon/stock_parts/cell/high/plus, +/obj/machinery/requests_console{ + department = "EVA"; + name = "EVA RC"; + pixel_x = -30; + pixel_y = 0 + }, +/turf/open/floor/plasteel/black, +/area/storage/eva) +"bAC" = ( +/turf/open/floor/plasteel, +/area/storage/eva) +"bAD" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/bot, +/area/storage/eva) +"bAE" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/storage/eva) +"bAF" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bAG" = ( +/turf/closed/wall, +/area/crew_quarters/kitchen) +"bAH" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/window/eastleft{ + dir = 1; + name = "Hydroponics Desk"; + req_access_txt = "35" + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bAI" = ( +/obj/machinery/smartfridge, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bAJ" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Bar West"; + dir = 4; + icon_state = "camera"; + network = list("SS13"); + tag = "" + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_x = -25; + pixel_y = -2; + tag = "WEST" + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bAK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bAL" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Bar East"; + dir = 8; + icon_state = "camera"; + network = list("SS13"); + tag = "" + }, +/mob/living/carbon/monkey/punpun, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bAM" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (EAST)"; + dir = 4 + }, +/area/engine/gravity_generator) +"bAN" = ( +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (WEST)"; + dir = 8 + }, +/area/engine/gravity_generator) +"bAO" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (WEST)"; + dir = 8 + }, +/area/engine/gravity_generator) +"bAP" = ( +/obj/structure/table, +/obj/structure/window/reinforced{ + dir = 1; + layer = 3.2 + }, +/obj/item/weapon/aiModule/supplied/quarantine, +/obj/item/weapon/aiModule/core/full/antimov, +/obj/item/weapon/aiModule/reset/purge, +/obj/item/weapon/aiModule/zeroth/oneHuman, +/obj/item/weapon/aiModule/supplied/oxygen, +/obj/structure/window/reinforced, +/obj/machinery/door/window{ + base_state = "left"; + dir = 4; + icon_state = "left"; + name = "High-Risk Modules"; + req_access_txt = "20" + }, +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (NORTHEAST)"; + dir = 5 + }, +/area/ai_monitored/turret_protected/ai_upload) +"bAQ" = ( +/obj/structure/sign/kiddieplaque{ + pixel_x = -32; + pixel_y = 32 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai_upload) +"bAR" = ( +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (EAST)"; + dir = 4 + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (EAST)"; + dir = 4 + }, +/area/ai_monitored/turret_protected/ai_upload) +"bAS" = ( +/obj/structure/cable/white{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai_upload) +"bAT" = ( +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (WEST)"; + dir = 8 + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (WEST)"; + dir = 8 + }, +/area/ai_monitored/turret_protected/ai_upload) +"bAU" = ( +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai_upload) +"bAV" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/structure/cable/white{ + d2 = 2; + icon_state = "0-2"; + tag = "icon-0-2" + }, +/obj/machinery/power/apc{ + aidisabled = 0; + auto_name = 1; + cell_type = 2500; + dir = 4; + name = "Autoname APC East"; + pixel_x = 24; + pixel_y = 0 + }, +/obj/machinery/camera/motion{ + c_tag = "AI Upload Motion Sensor"; + network = list("Sat") + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai_upload) +"bAW" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/white{ + d2 = 2; + icon_state = "0-2"; + tag = "icon-0-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/ai_upload) +"bAX" = ( +/turf/closed/wall, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"bAY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"bAZ" = ( +/obj/structure/sign/securearea{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/camera{ + c_tag = "Central Hallway"; + dir = 4; + network = list("SS13") + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bBa" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bBb" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plasteel/blue/corner, +/area/hallway/primary/central) +"bBc" = ( +/turf/closed/wall/r_wall, +/area/hallway/primary/central) +"bBd" = ( +/turf/closed/wall, +/area/crew_quarters/heads) +"bBe" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/crew_quarters/heads) +"bBf" = ( +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Head of Personnel"; + req_access = null; + req_access_txt = "57" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/darkblue, +/area/crew_quarters/heads) +"bBg" = ( +/turf/closed/wall/r_wall, +/area/maintenance/maintcentral) +"bBh" = ( +/turf/closed/wall, +/area/bridge/meeting_room{ + name = "Bridge Storage" + }) +"bBi" = ( +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Bridge Storage"; + req_access = null; + req_access_txt = "19" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/darkblue, +/area/bridge/meeting_room{ + name = "Bridge Storage" + }) +"bBj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/bridge/meeting_room{ + name = "Bridge Storage" + }) +"bBk" = ( +/obj/structure/fireaxecabinet{ + pixel_x = -32; + pixel_y = 0 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners (WEST)"; + dir = 8 + }, +/area/bridge) +"bBl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/bridge) +"bBm" = ( +/obj/structure/cable/blue{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (EAST)"; + dir = 4 + }, +/area/bridge) +"bBn" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTHWEST)"; + dir = 9 + }, +/area/security/main) +"bBo" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Interrogation"; + network = list("SS13","Brig") + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTH)"; + dir = 1 + }, +/area/security/main) +"bBp" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTHEAST)"; + dir = 5 + }, +/area/security/main) +"bBq" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27; + pixel_y = 0; + tag = "w" + }, +/obj/machinery/camera{ + c_tag = "Security Break Room"; + dir = 4; + network = list("SS13","Brig") + }, +/obj/structure/closet/wardrobe/red, +/turf/open/floor/plasteel/black, +/area/security/main) +"bBr" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/turf/open/floor/plasteel/darkred/corner{ + tag = "icon-darkredcorners (EAST)"; + dir = 4 + }, +/area/security/main) +"bBs" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTH)"; + dir = 1 + }, +/area/security/main) +"bBt" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/turf/open/floor/plasteel/darkred/corner{ + tag = "icon-darkredcorners (NORTH)"; + dir = 1 + }, +/area/security/main) +"bBu" = ( +/obj/structure/closet/wardrobe/red, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/main) +"bBv" = ( +/obj/machinery/disposal/bin, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/obj/structure/disposalpipe/trunk, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/black, +/area/security/warden) +"bBw" = ( +/obj/structure/table, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/recharger, +/turf/open/floor/plasteel/black, +/area/security/warden) +"bBx" = ( +/obj/structure/table, +/obj/machinery/recharger, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/turf/open/floor/plasteel/black, +/area/security/warden) +"bBy" = ( +/obj/structure/table, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the Brig."; + name = "Brig Monitor"; + network = list("Prison","Brig"); + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (EAST)"; + dir = 4 + }, +/area/security/warden) +"bBz" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/button/door{ + id = "Secure Gate"; + name = "Cell Shutters"; + pixel_x = 27; + pixel_y = -2; + req_access_txt = "0" + }, +/obj/machinery/button/door{ + id = "Prison Gate"; + name = "Prison Wing Lockdown"; + pixel_x = 27; + pixel_y = 8; + req_access_txt = "2" + }, +/obj/effect/landmark/start{ + name = "Warden" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTH)"; + dir = 1 + }, +/area/security/warden) +"bBA" = ( +/obj/structure/table, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/turf/open/floor/plasteel/darkred/side{ + dir = 8 + }, +/area/security/warden) +"bBB" = ( +/obj/structure/table, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/item/weapon/book/manual/wiki/security_space_law{ + pixel_y = 4 + }, +/obj/item/weapon/hand_labeler, +/turf/open/floor/plasteel/black, +/area/security/warden) +"bBC" = ( +/obj/structure/filingcabinet, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/turf/open/floor/plasteel/black, +/area/security/warden) +"bBD" = ( +/obj/structure/closet/secure_closet/warden, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/obj/item/weapon/reagent_containers/food/drinks/bottle/cognac, +/obj/item/clothing/tie/armband/deputy, +/obj/item/clothing/tie/armband/deputy, +/obj/item/clothing/tie/armband/deputy, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8"; + tag = "" + }, +/turf/open/floor/plasteel/black, +/area/security/warden) +"bBE" = ( +/obj/structure/chair, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"bBF" = ( +/obj/structure/chair, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/turf/open/floor/plasteel/darkred/corner{ + tag = "icon-darkredcorners (EAST)"; + dir = 4 + }, +/area/security/brig) +"bBG" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTH)"; + dir = 1 + }, +/area/security/brig) +"bBH" = ( +/obj/structure/chair, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/darkred/corner{ + tag = "icon-darkredcorners (NORTH)"; + dir = 1 + }, +/area/security/brig) +"bBI" = ( +/obj/structure/chair, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/obj/machinery/power/apc{ + aidisabled = 0; + auto_name = 1; + cell_type = 2500; + dir = 4; + name = "Autoname APC East"; + pixel_x = 24; + pixel_y = 0 + }, +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/obj/machinery/camera{ + c_tag = "Security Briefing Room"; + dir = 8; + network = list("SS13","Brig"); + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"bBJ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + aiControlDisabled = 0; + icon_state = "closed"; + id_tag = null; + locked = 0; + name = "Prisoner Transfer"; + req_access = null; + req_access_txt = "2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/security/transfer) +"bBK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/security/transfer) +"bBL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/camera{ + c_tag = "Prison Wing North"; + dir = 4; + network = list("SS13","Brig") + }, +/obj/structure/extinguisher_cabinet{ + desc = "A small wall mounted cabinet designed to hold a fire extinguisher. Excellent for extinguishing prisoners and or life."; + pixel_x = -27; + pixel_y = 0; + tag = "wsecjoke" + }, +/turf/open/floor/plasteel/black, +/area/security/prison) +"bBM" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/security/prison) +"bBN" = ( +/turf/closed/wall/rust, +/area/security/prison) +"bBO" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bBP" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bBQ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bBR" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE" + }, +/turf/closed/wall, +/area/security/prison) +"bBS" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/escape{ + tag = "icon-escape (WEST)"; + dir = 8 + }, +/area/hallway/secondary/exit) +"bBT" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bBU" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bBV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/escape{ + dir = 4 + }, +/area/hallway/secondary/exit) +"bBW" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bBX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/escape{ + dir = 8 + }, +/area/hallway/secondary/exit) +"bBY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bBZ" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bCa" = ( +/obj/structure/chair/stool, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=AftH"; + location = "AIW" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bCb" = ( +/obj/machinery/computer/arcade, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bCc" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/wood, +/area/library) +"bCd" = ( +/turf/open/floor/plating, +/area/library) +"bCe" = ( +/obj/item/weapon/paper/crumpled{ + info = "The first is unbuilt, but obvious..." + }, +/turf/open/floor/plating, +/area/library) +"bCf" = ( +/obj/item/weapon/storage/pill_bottle{ + desc = "Supposed to contain all the luck you'll ever need.... Seems to be missing some dice."; + icon = 'icons/obj/dice.dmi'; + icon_state = "dicebag"; + max_combined_w_class = 16; + name = "dice bag"; + storage_slots = 8 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/library) +"bCg" = ( +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plating, +/area/library) +"bCh" = ( +/turf/closed/wall/rust, +/area/library) +"bCi" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bCj" = ( +/obj/structure/table, +/obj/item/weapon/wirecutters, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bCk" = ( +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bCl" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bCm" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bCn" = ( +/obj/machinery/door/airlock/maintenance{ + name = "EVA Maintenance"; + req_access_txt = "18" + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/storage/eva) +"bCo" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/storage/eva) +"bCp" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/storage/eva) +"bCq" = ( +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/storage/eva) +"bCr" = ( +/obj/structure/closet/chefcloset, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"bCs" = ( +/obj/machinery/icecream_vat, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"bCt" = ( +/obj/item/toy/beach_ball/holoball, +/turf/open/floor/plating, +/area/crew_quarters/kitchen) +"bCu" = ( +/obj/structure/table, +/obj/item/stack/packageWrap, +/obj/item/weapon/storage/box/donkpockets{ + pixel_x = 3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bCv" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bCw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bCx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bCy" = ( +/obj/structure/sink/kitchen{ + desc = "A sink used for washing one's hands and face."; + name = "kitchen sink"; + pixel_y = 28 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bCz" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"bCA" = ( +/obj/structure/table, +/obj/machinery/microwave, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bCB" = ( +/obj/structure/table, +/obj/machinery/microwave, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bCC" = ( +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bCD" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fsmaint) +"bCE" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bCF" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bCG" = ( +/obj/structure/chair/stool, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bCH" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"bCI" = ( +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/obj/structure/closet/secure_closet/bar{ + req_access_txt = "25" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"bCJ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/obj/structure/table/wood, +/obj/structure/sink/kitchen{ + desc = "A sink used for washing one's hands and face."; + name = "kitchen sink"; + pixel_y = 28 + }, +/obj/machinery/reagentgrinder, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"bCK" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/drinks/shaker, +/obj/item/weapon/gun/projectile/revolver/doublebarrel, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/stack/cable_coil, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"bCL" = ( +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (EAST)"; + dir = 4 + }, +/area/engine/gravity_generator) +"bCM" = ( +/obj/machinery/gravity_generator/main/station, +/turf/open/floor/plasteel/black, +/area/engine/gravity_generator) +"bCN" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (WEST)"; + dir = 8 + }, +/area/engine/gravity_generator) +"bCO" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/white{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/ai_upload) +"bCP" = ( +/obj/structure/table, +/obj/item/weapon/aiModule/reset, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai_upload) +"bCQ" = ( +/turf/open/floor/plasteel/darkblue/side{ + dir = 10; + initial_gas_mix = "n2=100;TEMP=80" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (SOUTHWEST)"; + dir = 10 + }, +/area/ai_monitored/turret_protected/ai_upload) +"bCR" = ( +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warningline, +/area/ai_monitored/turret_protected/ai_upload) +"bCS" = ( +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue" + }, +/obj/structure/cable/white{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warningline, +/area/ai_monitored/turret_protected/ai_upload) +"bCT" = ( +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warningline, +/area/ai_monitored/turret_protected/ai_upload) +"bCU" = ( +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue" + }, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/warningline, +/area/ai_monitored/turret_protected/ai_upload) +"bCV" = ( +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue" + }, +/obj/machinery/turretid{ + control_area = "AI Upload Chamber"; + name = "AI Upload turret control"; + pixel_x = -28; + pixel_y = 0 + }, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plasteel/warningline, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"bCW" = ( +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/obj/machinery/camera{ + c_tag = "AI Upload Access"; + network = list("SS13"); + start_active = 1 + }, +/turf/open/floor/plasteel/warningline, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"bCX" = ( +/obj/machinery/status_display{ + layer = 4; + pixel_x = -32; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"bCY" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bCZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 4 + }, +/area/hallway/primary/central) +"bDa" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (EAST)"; + dir = 4 + }, +/area/bridge) +"bDb" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_command{ + name = "Bridge Access"; + req_access_txt = "19" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/darkblue, +/area/bridge) +"bDc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (WEST)"; + dir = 8 + }, +/area/bridge) +"bDd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"bDe" = ( +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners (EAST)"; + dir = 4 + }, +/area/bridge) +"bDf" = ( +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 8; + icon_state = "pipe-j1s"; + sortType = 15 + }, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (NORTH)"; + dir = 1 + }, +/area/bridge) +"bDg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners (NORTH)"; + dir = 1 + }, +/area/bridge) +"bDh" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = 30; + tag = "n" + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"bDi" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/green/corner{ + dir = 8 + }, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"bDj" = ( +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Bridge Hallway East"; + network = list("SS13") + }, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners (EAST)"; + dir = 4 + }, +/area/bridge) +"bDk" = ( +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (NORTH)"; + dir = 1 + }, +/area/bridge) +"bDl" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/structure/disposalpipe/junction{ + dir = 8; + icon_state = "pipe-j2" + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = 30; + tag = "n" + }, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners (NORTH)"; + dir = 1 + }, +/area/bridge) +"bDm" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + layer = 2.7; + name = "bridge blast door" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/glass_command{ + name = "Bridge"; + req_access_txt = "19" + }, +/turf/open/floor/plasteel/darkblue, +/area/bridge) +"bDn" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (WEST)"; + dir = 8 + }, +/area/bridge) +"bDo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"bDp" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/bridge) +"bDq" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/bridge) +"bDr" = ( +/obj/structure/table/wood, +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/weapon/book/manual/wiki/security_space_law, +/turf/open/floor/carpet, +/area/bridge) +"bDs" = ( +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/bridge) +"bDt" = ( +/obj/structure/table/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (NORTH)"; + dir = 1 + }, +/area/bridge) +"bDu" = ( +/obj/machinery/computer/shuttle/mining, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (NORTHEAST)"; + dir = 5 + }, +/area/bridge) +"bDv" = ( +/obj/structure/cable/blue{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (NORTH)"; + dir = 1 + }, +/area/bridge) +"bDw" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/door/poddoor/preopen{ + id = "interro blast"; + layer = 2.9; + name = "interrogation shutter" + }, +/turf/open/floor/plating, +/area/security/main) +"bDx" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTHWEST)"; + dir = 9 + }, +/area/security/main) +"bDy" = ( +/obj/machinery/button/door{ + id = "interro blast"; + name = "Interrogation Shutters Control"; + pixel_x = -24; + pixel_y = 24; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/darkred/corner{ + tag = "icon-darkredcorners (NORTH)"; + dir = 1 + }, +/area/security/main) +"bDz" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/security/main) +"bDA" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/darkred/corner{ + tag = "icon-darkredcorners (EAST)"; + dir = 4 + }, +/area/security/main) +"bDB" = ( +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTHEAST)"; + dir = 5 + }, +/area/security/main) +"bDC" = ( +/obj/structure/sign/goldenplaque{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/black, +/area/security/main) +"bDD" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/security/main) +"bDE" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/black, +/area/security/main) +"bDF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/main) +"bDG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (EAST)"; + dir = 4 + }, +/area/security/main) +"bDH" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/warden) +"bDI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (WEST)"; + dir = 8 + }, +/area/security/warden) +"bDJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/warden) +"bDK" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/black, +/area/security/warden) +"bDL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/warden) +"bDM" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/security/warden) +"bDN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (EAST)"; + dir = 4 + }, +/area/security/warden) +"bDO" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/warden) +"bDP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (WEST)"; + dir = 8 + }, +/area/security/brig) +"bDQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"bDR" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/black, +/area/security/brig) +"bDS" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/black, +/area/security/brig) +"bDT" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel/darkred/corner, +/area/security/brig) +"bDU" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/prison) +"bDV" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkred/corner{ + tag = "icon-darkredcorners (WEST)"; + dir = 8 + }, +/area/security/prison) +"bDW" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/black, +/area/security/prison) +"bDX" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/darkred/corner, +/area/security/prison) +"bDY" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "Prison Gate"; + name = "prison blast door" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plating, +/area/security/prison) +"bDZ" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plasteel/darkred/corner{ + tag = "icon-darkredcorners (WEST)"; + dir = 8 + }, +/area/security/prison) +"bEa" = ( +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching Prison Wing holding areas."; + name = "Prison Monitor"; + network = list("Prison"); + pixel_x = 32; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/security/prison) +"bEb" = ( +/obj/structure/bed, +/obj/item/device/radio/intercom{ + desc = "Talk through this. It looks like it has been modified to not broadcast."; + dir = 2; + name = "Prison Intercom (General)"; + pixel_x = 0; + pixel_y = 25; + prison_radio = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/obj/machinery/camera{ + c_tag = "Prison Cell 2"; + dir = 4; + network = list("SS13","Prison") + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bEc" = ( +/obj/machinery/button/door{ + id = "permabolt2"; + name = "Cell Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 0; + pixel_y = 25; + req_access_txt = "0"; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bEd" = ( +/obj/structure/table, +/obj/item/weapon/storage/pill_bottle/dice, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bEe" = ( +/obj/structure/table, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bEf" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bEg" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/status_display{ + layer = 3.3 + }, +/turf/open/floor/plating, +/area/hallway/secondary/exit) +"bEh" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Escape West"; + dir = 4; + network = list("SS13"); + start_active = 1 + }, +/turf/open/floor/plasteel/escape{ + tag = "icon-escape (WEST)"; + dir = 8 + }, +/area/hallway/secondary/exit) +"bEi" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/bot, +/area/hallway/secondary/exit) +"bEj" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=AIE"; + location = "AftH" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bEk" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bEl" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bEm" = ( +/obj/structure/chair/stool, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bEn" = ( +/obj/machinery/computer/arcade, +/obj/structure/cable/green{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + aidisabled = 0; + auto_name = 1; + cell_type = 2500; + dir = 4; + name = "Autoname APC East"; + pixel_x = 24; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bEo" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/carpet, +/area/library) +"bEp" = ( +/obj/structure/table/wood, +/obj/machinery/computer/libraryconsole, +/turf/open/floor/wood, +/area/library) +"bEq" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bEr" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bEs" = ( +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fpmaint) +"bEt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bEu" = ( +/obj/structure/closet/crate/rcd, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/black, +/area/storage/eva) +"bEv" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/clothing/shoes/magboots, +/obj/item/clothing/shoes/magboots{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = -25; + tag = "SOUTH" + }, +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (NORTHWEST)"; + dir = 9 + }, +/area/storage/eva) +"bEw" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/tank/jetpack/carbondioxide{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/tank/jetpack/carbondioxide, +/obj/machinery/light, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/obj/machinery/camera/motion{ + c_tag = "EVA Motion Sensor"; + desc = "It watches you carefully."; + dir = 1; + icon_state = "camera"; + name = "motion-sensitive security camera"; + network = list("SS13"); + tag = "" + }, +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (NORTHEAST)"; + dir = 5 + }, +/area/storage/eva) +"bEx" = ( +/obj/structure/cable/green, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 2; + name = "Autoname APC South"; + pixel_x = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel, +/area/storage/eva) +"bEy" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (SOUTHWEST)"; + dir = 10 + }, +/area/storage/eva) +"bEz" = ( +/obj/structure/plasticflaps{ + opacity = 1 + }, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=4"; + dir = 4; + freq = 1400; + location = "Kitchen" + }, +/turf/open/floor/plasteel/bot{ + dir = 1 + }, +/area/crew_quarters/kitchen) +"bEA" = ( +/turf/open/floor/plasteel/delivery, +/area/crew_quarters/kitchen) +"bEB" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"bEC" = ( +/obj/machinery/chem_master/condimaster, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Kitchen Cold Room"; + dir = 8; + icon_state = "camera"; + network = list("SS13"); + tag = "" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"bED" = ( +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bEE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bEF" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bEG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bEH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bEI" = ( +/obj/effect/landmark/start{ + name = "Cook" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bEJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "kitchen"; + name = "Kitchen Shutters"; + pixel_x = 24; + pixel_y = 24; + req_access_txt = "28" + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bEK" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/item/weapon/storage/fancy/donut_box, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchen"; + name = "kitchen shutters" + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bEL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"bEM" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"bEN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bEO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bEP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bEQ" = ( +/obj/machinery/atmospherics/pipe/manifold/supply, +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bER" = ( +/obj/structure/table/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"bES" = ( +/obj/structure/table/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/clothing/head/that, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"bET" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/bar) +"bEU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"bEV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"bEW" = ( +/obj/machinery/atmospherics/pipe/manifold/supply, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"bEX" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Bar Storage Maintenance"; + req_access_txt = "25" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"bEY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bEZ" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (EAST)"; + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bFa" = ( +/turf/open/floor/plasteel/darkwarning/corner{ + tag = "icon-warndarkcorners (WEST)"; + dir = 8 + }, +/area/engine/gravity_generator) +"bFb" = ( +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (NORTH)"; + dir = 1 + }, +/area/engine/gravity_generator) +"bFc" = ( +/obj/machinery/light, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 2; + name = "Autoname APC South"; + pixel_x = 1; + pixel_y = -24 + }, +/obj/structure/cable/yellow{ + d2 = 4; + icon_state = "0-4" + }, +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (NORTH)"; + dir = 1 + }, +/area/engine/gravity_generator) +"bFd" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8"; + d1 = 4; + d2 = 8 + }, +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (NORTH)"; + dir = 1 + }, +/area/engine/gravity_generator) +"bFe" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/darkwarning/corner{ + tag = "icon-warndarkcorners (EAST)"; + dir = 4 + }, +/area/engine/gravity_generator) +"bFf" = ( +/obj/machinery/porta_turret/ai{ + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (WEST)"; + dir = 8 + }, +/area/ai_monitored/turret_protected/ai_upload) +"bFg" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai_upload) +"bFh" = ( +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (EAST)"; + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (EAST)"; + dir = 4 + }, +/area/ai_monitored/turret_protected/ai_upload) +"bFi" = ( +/obj/machinery/holopad, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai_upload) +"bFj" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai_upload) +"bFk" = ( +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai_upload) +"bFl" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai_upload) +"bFm" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/highsecurity{ + icon_state = "closed"; + locked = 0; + name = "AI Upload"; + req_access_txt = "16" + }, +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (WEST)"; + dir = 8 + }, +/area/ai_monitored/turret_protected/ai_upload) +"bFn" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"bFo" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"bFp" = ( +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/highsecurity{ + icon_state = "closed"; + locked = 0; + name = "AI Upload Access"; + req_access_txt = "16" + }, +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (EAST)"; + dir = 4 + }, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"bFq" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/hallway/primary/central) +"bFr" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=EVA2"; + location = "Dorm" + }, +/turf/open/floor/goonplaque, +/area/hallway/primary/central) +"bFs" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/blue/side{ + dir = 4 + }, +/area/hallway/primary/central) +"bFt" = ( +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (EAST)"; + dir = 4 + }, +/area/bridge) +"bFu" = ( +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/blue{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/bridge) +"bFv" = ( +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (WEST)"; + dir = 8 + }, +/area/bridge) +"bFw" = ( +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"bFx" = ( +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/bridge) +"bFy" = ( +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/blue{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/blue{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/bridge) +"bFz" = ( +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"bFA" = ( +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"bFB" = ( +/turf/open/floor/plasteel/brown/corner, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warningline/corner, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bFC" = ( +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/black, +/area/bridge) +"bFD" = ( +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + layer = 2.9; + name = "bridge blast door" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/blue{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/bridge) +"bFE" = ( +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/blue{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (WEST)"; + dir = 8 + }, +/area/bridge) +"bFF" = ( +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/item/device/radio/beacon, +/turf/open/floor/plasteel/black, +/area/bridge) +"bFG" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/carpet, +/area/bridge) +"bFH" = ( +/obj/structure/table/wood, +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/item/weapon/storage/fancy/donut_box, +/turf/open/floor/carpet, +/area/bridge) +"bFI" = ( +/obj/structure/table/wood, +/obj/structure/cable/blue{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/blue{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7; + tag = "every single paper bin is edited to this" + }, +/obj/item/weapon/pen, +/turf/open/floor/carpet, +/area/bridge) +"bFJ" = ( +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/carpet, +/area/bridge) +"bFK" = ( +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel/black, +/area/bridge) +"bFL" = ( +/obj/structure/chair/comfy/black{ + dir = 4; + name = "Command Station" + }, +/obj/machinery/keycard_auth{ + pixel_x = 7; + pixel_y = 30 + }, +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/button/door{ + id = "bridge blast"; + name = "Bridge Blast Door Control"; + pixel_x = -6; + pixel_y = 30; + req_access_txt = "19" + }, +/obj/machinery/button/door{ + id = "interro blast"; + name = "Interrogation Shutters Control"; + pixel_x = -6; + pixel_y = 39; + req_access_txt = "19" + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"bFM" = ( +/obj/machinery/computer/communications, +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (EAST)"; + dir = 4 + }, +/area/bridge) +"bFN" = ( +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/blue{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/blue{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (EAST)"; + dir = 4 + }, +/area/bridge) +"bFO" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (WEST)"; + dir = 8 + }, +/area/security/main) +"bFP" = ( +/obj/structure/chair/office/dark{ + dir = 4; + name = "Interrogator" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/turf/open/floor/plasteel/black, +/area/security/main) +"bFQ" = ( +/obj/structure/table, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/item/device/taperecorder, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/black, +/area/security/main) +"bFR" = ( +/obj/structure/chair{ + dir = 8; + name = "Suspect" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/main) +"bFS" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (EAST)"; + dir = 4 + }, +/area/security/main) +"bFT" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + name = "Interrogation"; + req_access = null; + req_access_txt = "63" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkred, +/area/security/main) +"bFU" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (WEST)"; + dir = 8 + }, +/area/security/main) +"bFV" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/main) +"bFW" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/mob/living/simple_animal/bot/secbot/beepsky{ + desc = "It's Officer Beepsky! Powered by a potato and a shot of whiskey."; + name = "Officer Beepsky" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/main) +"bFX" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/turf/open/floor/plasteel/black, +/area/security/main) +"bFY" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (EAST)"; + dir = 4 + }, +/area/security/main) +"bFZ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_security{ + name = "Brig Control"; + req_access_txt = "3" + }, +/turf/open/floor/plasteel/darkred, +/area/security/warden) +"bGa" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (WEST)"; + dir = 8 + }, +/area/security/warden) +"bGb" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/security/warden) +"bGc" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/turf/open/floor/plasteel/black, +/area/security/warden) +"bGd" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/warden) +"bGe" = ( +/obj/structure/chair/office/dark, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8"; + tag = "" + }, +/turf/open/floor/plasteel/black, +/area/security/warden) +"bGf" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (EAST)"; + dir = 4 + }, +/area/security/warden) +"bGg" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (WEST)"; + dir = 8 + }, +/area/security/brig) +"bGh" = ( +/obj/structure/chair, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"bGi" = ( +/obj/structure/chair, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/black, +/area/security/brig) +"bGj" = ( +/obj/structure/chair, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/security/brig) +"bGk" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (EAST)"; + dir = 4 + }, +/area/security/brig) +"bGl" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_security{ + name = "Prison Wing"; + req_access_txt = "2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/darkred, +/area/security/prison) +"bGm" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + frequency = 1439; + id_tag = null; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (WEST)"; + dir = 8 + }, +/area/security/prison) +"bGn" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/turf/open/floor/plasteel/black, +/area/security/prison) +"bGo" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (EAST)"; + dir = 4 + }, +/area/security/prison) +"bGp" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/preopen{ + id = "Prison Gate"; + name = "prison blast door" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/door/airlock/glass_security{ + name = "Prison Wing"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/darkred, +/area/security/prison) +"bGq" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (WEST)"; + dir = 8 + }, +/area/security/prison) +"bGr" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (EAST)"; + dir = 4 + }, +/area/security/prison) +"bGs" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Long-Term Cell 2"; + req_access_txt = "2" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"bGt" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bGu" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bGv" = ( +/obj/machinery/door/poddoor/preopen{ + id = "permacell2"; + name = "cell blast door" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/glass{ + id_tag = "permabolt2"; + name = "Cell 2" + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bGw" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bGx" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bGy" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/structure/table, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bGz" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/structure/table, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7; + tag = "every single paper bin is edited to this" + }, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bGA" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/obj/machinery/camera{ + c_tag = "Prison Holding Area"; + dir = 8; + network = list("SS13","Prison"); + pixel_x = 0; + pixel_y = 0 + }, +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bGB" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel/escape{ + tag = "icon-escape (WEST)"; + dir = 8 + }, +/area/hallway/secondary/exit) +"bGC" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bGD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bGE" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bGF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/escape{ + dir = 4 + }, +/area/hallway/secondary/exit) +"bGG" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bGH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/escape{ + dir = 8 + }, +/area/hallway/secondary/exit) +"bGI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bGJ" = ( +/obj/structure/chair/stool, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=CHE"; + location = "AIE" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bGK" = ( +/obj/machinery/computer/arcade, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bGL" = ( +/obj/machinery/bookbinder{ + pixel_y = 0 + }, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/wood, +/area/library) +"bGM" = ( +/obj/structure/bookcase{ + name = "Forbidden Knowledge" + }, +/turf/open/floor/engine/cult, +/area/library) +"bGN" = ( +/obj/structure/table/wood, +/obj/item/device/taperecorder{ + pixel_y = 0 + }, +/obj/item/device/camera, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = 20; + tag = "NORTH" + }, +/turf/open/floor/engine/cult, +/area/library) +"bGO" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7; + tag = "every single paper bin is edited to this" + }, +/obj/item/weapon/pen/invisible, +/turf/open/floor/engine/cult, +/area/library) +"bGP" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bGQ" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (WEST)"; + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bGR" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Kitchen Maintenance"; + req_access_txt = "28" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/crew_quarters/kitchen) +"bGS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"bGT" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"bGU" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Kitchen Cold Room"; + req_access_txt = "28" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"bGV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bGW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bGX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/table, +/obj/item/weapon/book/manual/chef_recipes, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bGY" = ( +/obj/structure/table, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/item/weapon/reagent_containers/glass/beaker{ + pixel_x = 5 + }, +/obj/item/weapon/reagent_containers/food/condiment/enzyme{ + layer = 5 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bGZ" = ( +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/weapon/reagent_containers/food/condiment/saltshaker{ + pixel_x = -3; + pixel_y = 0 + }, +/obj/item/weapon/reagent_containers/food/condiment/peppermill{ + pixel_x = 3 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bHa" = ( +/obj/structure/table, +/obj/item/weapon/kitchen/rollingpin, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bHb" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bHc" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchen"; + name = "kitchen shutters" + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bHd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bHe" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bHf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fsmaint) +"bHg" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bHh" = ( +/obj/structure/table/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"bHi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"bHj" = ( +/obj/effect/landmark/start{ + name = "Bartender" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"bHk" = ( +/obj/structure/sign/securearea{ + desc = "Under the painting a plaque reads: 'While the meat grinder may not have spared you, fear not. Not one part of you has gone to waste... You were delicious.'"; + icon_state = "monkey_painting"; + name = "Mr. Deempisi portrait"; + pixel_x = 26; + pixel_y = 28 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"bHl" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Bar Storage"; + req_access_txt = "25" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"bHm" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"bHn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/crew_quarters/bar) +"bHo" = ( +/obj/structure/plasticflaps{ + opacity = 1 + }, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + dir = 8; + freq = 1400; + location = "Bar" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot{ + dir = 1 + }, +/area/crew_quarters/bar) +"bHp" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bHq" = ( +/obj/structure/table, +/obj/item/weapon/aiModule/core/full/custom, +/obj/structure/cable/white{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai_upload) +"bHr" = ( +/turf/open/floor/plasteel/darkblue/side{ + dir = 9; + initial_gas_mix = "n2=100;TEMP=80" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (NORTHWEST)"; + dir = 9 + }, +/area/ai_monitored/turret_protected/ai_upload) +"bHs" = ( +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (NORTH)"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (NORTH)"; + dir = 1 + }, +/area/ai_monitored/turret_protected/ai_upload) +"bHt" = ( +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (NORTH)"; + dir = 1 + }, +/obj/machinery/ai_status_display{ + pixel_x = 0; + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (NORTH)"; + dir = 1 + }, +/area/ai_monitored/turret_protected/ai_upload) +"bHu" = ( +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (NORTH)"; + dir = 1 + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/white{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (NORTH)"; + dir = 1 + }, +/area/ai_monitored/turret_protected/ai_upload) +"bHv" = ( +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (NORTH)"; + dir = 1 + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/machinery/light_switch{ + pixel_x = 24; + tag = "e" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (NORTH)"; + dir = 1 + }, +/area/ai_monitored/turret_protected/ai_upload) +"bHw" = ( +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (NORTH)"; + dir = 1 + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 8; + name = "Autoname APC West"; + pixel_x = -25; + pixel_y = 0 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/structure/cable/white, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (NORTH)"; + dir = 1 + }, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"bHx" = ( +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (NORTH)"; + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (NORTH)"; + dir = 1 + }, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"bHy" = ( +/obj/machinery/ai_status_display{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"bHz" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bHA" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (WEST)"; + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 4 + }, +/area/hallway/primary/central) +"bHB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (EAST)"; + dir = 4 + }, +/area/bridge) +"bHC" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_command{ + name = "Bridge Access"; + req_access_txt = "19" + }, +/obj/structure/sign/securearea{ + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/darkblue, +/area/bridge) +"bHD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (WEST)"; + dir = 8 + }, +/area/bridge) +"bHE" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"bHF" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Bridge Hallway West"; + dir = 1; + network = list("SS13") + }, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners" + }, +/area/bridge) +"bHG" = ( +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue" + }, +/area/bridge) +"bHH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners (WEST)"; + dir = 8 + }, +/area/bridge) +"bHI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"bHJ" = ( +/turf/open/floor/plasteel/brown/corner{ + tag = "icon-browncorner (WEST)"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warningline/corner{ + tag = "icon-warninglinecorners (WEST)"; + icon_state = "warninglinecorners"; + dir = 8 + }, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bHK" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners" + }, +/area/bridge) +"bHL" = ( +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-j1"; + dir = 4 + }, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue" + }, +/area/bridge) +"bHM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners (WEST)"; + dir = 8 + }, +/area/bridge) +"bHN" = ( +/obj/structure/sign/securearea{ + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (EAST)"; + dir = 4 + }, +/area/bridge) +"bHO" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + layer = 2.7; + name = "bridge blast door" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/glass_command{ + name = "Bridge"; + req_access_txt = "19" + }, +/turf/open/floor/plasteel/darkblue, +/area/bridge) +"bHP" = ( +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (WEST)"; + dir = 8 + }, +/area/bridge) +"bHQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"bHR" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/bridge) +"bHS" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/weapon/hand_labeler, +/turf/open/floor/carpet, +/area/bridge) +"bHT" = ( +/obj/structure/table/wood, +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/bridge) +"bHU" = ( +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/bridge) +"bHV" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/box/PDAs{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/weapon/storage/box/ids, +/obj/item/weapon/storage/secure/briefcase, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/darkblue/side, +/area/bridge) +"bHW" = ( +/obj/machinery/computer/card, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (SOUTHEAST)"; + dir = 6 + }, +/area/bridge) +"bHX" = ( +/obj/structure/cable/blue{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/darkblue/side, +/area/bridge) +"bHY" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (SOUTHWEST)"; + dir = 10 + }, +/area/security/main) +"bHZ" = ( +/turf/open/floor/plasteel/darkred/corner{ + tag = "icon-darkredcorners (WEST)"; + dir = 8 + }, +/area/security/main) +"bIa" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/security/main) +"bIb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkred/corner, +/area/security/main) +"bIc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (SOUTHEAST)"; + dir = 6 + }, +/area/security/main) +"bId" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/security/main) +"bIe" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_x = -25; + pixel_y = -2; + tag = "WEST" + }, +/turf/open/floor/plasteel/black, +/area/security/main) +"bIf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/turf/open/floor/plasteel/black, +/area/security/main) +"bIg" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/black, +/area/security/main) +"bIh" = ( +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/main) +"bIi" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (EAST)"; + dir = 4 + }, +/area/security/main) +"bIj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/security/warden) +"bIk" = ( +/obj/item/weapon/storage/box/handcuffs{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/weapon/storage/box/flashes, +/obj/structure/extinguisher_cabinet{ + desc = "A small wall mounted cabinet designed to hold a fire extinguisher. Excellent for extinguishing prisoners and or life."; + pixel_x = -27; + pixel_y = 0; + tag = "wsecjoke" + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (WEST)"; + dir = 8 + }, +/area/security/warden) +"bIl" = ( +/obj/structure/table, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = 0; + pixel_y = -30 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/machinery/camera{ + c_tag = "Brig Control"; + dir = 1; + network = list("SS13","Brig") + }, +/obj/item/clothing/mask/gas/sechailer, +/obj/item/clothing/mask/gas/sechailer, +/obj/item/clothing/ears/earmuffs, +/obj/item/clothing/ears/earmuffs, +/obj/item/clothing/glasses/sunglasses, +/obj/item/clothing/glasses/sunglasses, +/turf/open/floor/plasteel/black, +/area/security/warden) +"bIm" = ( +/obj/machinery/newscaster/security_unit{ + pixel_x = 0; + pixel_y = -32; + tag = "s" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/rack, +/obj/item/weapon/storage/firstaid/regular, +/obj/item/weapon/storage/toolbox/mechanical, +/turf/open/floor/plasteel/black, +/area/security/warden) +"bIn" = ( +/turf/open/floor/plasteel/darkred/side, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel/warningline, +/area/security/warden) +"bIo" = ( +/turf/open/floor/plasteel/darkred/side, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warningline, +/area/security/warden) +"bIp" = ( +/turf/open/floor/plasteel/darkred/side, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warningline, +/area/security/warden) +"bIq" = ( +/obj/machinery/computer/prisoner, +/obj/machinery/requests_console{ + department = "Brig Control"; + departmentType = 5; + name = "Brig Control RC"; + pixel_y = -30 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/warden) +"bIr" = ( +/obj/machinery/computer/security{ + network = list("SS13","Brig","Prison") + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 2; + name = "Autoname APC South"; + pixel_x = 1; + pixel_y = -24 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/warden) +"bIs" = ( +/obj/machinery/computer/secure_data, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light_switch{ + pixel_y = -24; + tag = "s" + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_x = 26; + pixel_y = -2; + tag = "EAST" + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (EAST)"; + dir = 4 + }, +/area/security/warden) +"bIt" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (WEST)"; + dir = 8 + }, +/area/security/brig) +"bIu" = ( +/obj/structure/table, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/obj/item/device/assembly/flash/handheld, +/turf/open/floor/plasteel/darkred/corner, +/area/security/brig) +"bIv" = ( +/obj/structure/table, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/obj/item/weapon/book/manual/wiki/security_space_law, +/obj/item/weapon/book/manual/wiki/security_space_law, +/obj/item/weapon/folder/red, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/darkred/side, +/area/security/brig) +"bIw" = ( +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/weapon/restraints/handcuffs, +/turf/open/floor/plasteel/darkred/corner{ + tag = "icon-darkredcorners (WEST)"; + dir = 8 + }, +/area/security/brig) +"bIx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/darkred/corner{ + tag = "icon-darkredcorners (EAST)"; + dir = 4 + }, +/area/security/brig) +"bIy" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plating, +/area/security/prison) +"bIz" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/turf/open/floor/plasteel/darkred/corner{ + tag = "icon-darkredcorners (NORTH)"; + dir = 1 + }, +/area/security/prison) +"bIA" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/turf/open/floor/plasteel/black, +/area/security/prison) +"bIB" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/darkred/corner{ + tag = "icon-darkredcorners (EAST)"; + dir = 4 + }, +/area/security/prison) +"bIC" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "Prison Gate"; + name = "prison blast door" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/prison) +"bID" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/darkred/corner{ + tag = "icon-darkredcorners (NORTH)"; + dir = 1 + }, +/area/security/prison) +"bIE" = ( +/obj/machinery/button/flasher{ + id = "PCell 2"; + pixel_x = 24; + pixel_y = -6 + }, +/obj/machinery/button/door{ + id = "permacell2"; + name = "Cell 2 Lockdown"; + pixel_x = 25; + pixel_y = 4; + req_access_txt = "2" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/turf/open/floor/plasteel/black, +/area/security/prison) +"bIF" = ( +/obj/structure/table, +/obj/machinery/flasher{ + id = "PCell 2"; + pixel_x = -28 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/weapon/paper, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bIG" = ( +/obj/machinery/light/small, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bIH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bII" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bIJ" = ( +/obj/structure/table, +/obj/item/toy/cards/deck{ + pixel_x = 2 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bIK" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bIL" = ( +/obj/machinery/vending/snack, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bIM" = ( +/obj/structure/bookcase/random/nonfiction, +/turf/open/floor/wood, +/area/library) +"bIN" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/wood, +/area/library) +"bIO" = ( +/turf/open/floor/engine/cult, +/area/library) +"bIP" = ( +/obj/structure/chair/comfy/brown{ + dir = 1 + }, +/turf/open/floor/engine/cult, +/area/library) +"bIQ" = ( +/obj/structure/destructible/cult/tome, +/obj/item/clothing/under/suit_jacket/red, +/obj/item/weapon/book/codex_gigas, +/turf/open/floor/engine/cult, +/area/library) +"bIR" = ( +/obj/structure/filingcabinet/chestdrawer/wheeled, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bIS" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/mob/living/simple_animal/mouse, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bIT" = ( +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/item/weapon/cigbutt/cigarbutt, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bIU" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bIV" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bIW" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fpmaint) +"bIX" = ( +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bIY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/kitchen) +"bIZ" = ( +/obj/structure/kitchenspike, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"bJa" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"bJb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"bJc" = ( +/obj/structure/closet/secure_closet/freezer/meat, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"bJd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/food_cart, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bJe" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bJf" = ( +/obj/effect/landmark/start{ + name = "Cook" + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bJg" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bJh" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bJi" = ( +/obj/structure/falsewall, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"bJj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bJk" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchen"; + name = "kitchen shutters" + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bJl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fsmaint) +"bJm" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/lighter, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"bJn" = ( +/turf/open/floor/wood, +/area/crew_quarters/bar) +"bJo" = ( +/obj/machinery/vending/boozeomat, +/turf/closed/wall, +/area/crew_quarters/bar) +"bJp" = ( +/obj/structure/closet/gmcloset, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"bJq" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1 + }, +/obj/structure/reagent_dispensers/beerkeg, +/obj/machinery/camera{ + c_tag = "Bar Backroom"; + dir = 1; + network = list("SS13") + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"bJr" = ( +/obj/machinery/light/small, +/obj/machinery/vending/cola, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = -25; + tag = "SOUTH" + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"bJs" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"bJt" = ( +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fsmaint2) +"bJu" = ( +/obj/structure/table, +/obj/structure/window/reinforced, +/obj/machinery/door/window{ + base_state = "right"; + dir = 4; + icon_state = "right"; + name = "Core Modules"; + req_access_txt = "20" + }, +/obj/item/weapon/aiModule/core/freeformcore, +/obj/structure/window/reinforced{ + dir = 1; + layer = 3.2 + }, +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (SOUTHEAST)"; + dir = 6 + }, +/area/ai_monitored/turret_protected/ai_upload) +"bJv" = ( +/obj/structure/table, +/obj/item/weapon/folder/blue, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/machinery/camera{ + c_tag = "AI Upload"; + dir = 1; + network = list("Sat"); + start_active = 1 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai_upload) +"bJw" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/white, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/ai_upload) +"bJx" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/white, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/ai_upload) +"bJy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"bJz" = ( +/obj/structure/cable/green{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 8; + name = "Autoname APC West"; + pixel_x = -25; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bJA" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bJB" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 28; + pixel_y = 5 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/blue/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"bJC" = ( +/turf/closed/wall/r_wall, +/area/teleporter) +"bJD" = ( +/turf/closed/wall, +/area/teleporter) +"bJE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/teleporter) +"bJF" = ( +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Teleport Access"; + req_access_txt = "17" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/darkblue, +/area/teleporter) +"bJG" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/captain) +"bJH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/crew_quarters/captain) +"bJI" = ( +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Captain's Office"; + req_access = null; + req_access_txt = "20" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bJJ" = ( +/obj/structure/cable/blue, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 8; + name = "Autoname APC West"; + pixel_x = -25; + pixel_y = 0 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/obj/machinery/camera{ + c_tag = "Bridge West"; + dir = 4; + network = list("SS13"); + start_active = 1 + }, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners (NORTH)"; + dir = 1 + }, +/area/bridge) +"bJK" = ( +/obj/structure/cable/blue{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (EAST)"; + dir = 4 + }, +/area/bridge) +"bJL" = ( +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (SOUTHWEST)"; + dir = 10 + }, +/area/security/main) +"bJM" = ( +/obj/machinery/light/small, +/turf/open/floor/plasteel/darkred/side, +/area/security/main) +"bJN" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (SOUTHEAST)"; + dir = 6 + }, +/area/security/main) +"bJO" = ( +/obj/machinery/syndicatebomb/training, +/obj/structure/table, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/black, +/area/security/main) +"bJP" = ( +/obj/structure/table, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/item/weapon/storage/fancy/donut_box, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/darkred/corner, +/area/security/main) +"bJQ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/darkred/side, +/area/security/main) +"bJR" = ( +/obj/structure/table, +/obj/machinery/recharger, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/turf/open/floor/plasteel/darkred/corner{ + tag = "icon-darkredcorners (WEST)"; + dir = 8 + }, +/area/security/main) +"bJS" = ( +/obj/structure/table, +/obj/machinery/recharger, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1 + }, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/black, +/area/security/main) +"bJT" = ( +/turf/closed/wall/r_wall, +/area/security/armory) +"bJU" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/security/armory) +"bJV" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_security{ + name = "Armory"; + req_access_txt = "3" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/darkred, +/area/security/armory) +"bJW" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plating, +/area/security/armory) +"bJX" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1 + }, +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/turf/open/floor/plasteel/darkred/corner, +/area/security/brig) +"bJY" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (SOUTHEAST)"; + dir = 6 + }, +/area/security/brig) +"bJZ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/darkred/side, +/area/security/brig) +"bKa" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (SOUTHWEST)"; + dir = 10 + }, +/area/security/brig) +"bKb" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plasteel/darkred/corner{ + tag = "icon-darkredcorners (WEST)"; + dir = 8 + }, +/area/security/brig) +"bKc" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "sanitarium"; + name = "ward shutters" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/security/prison) +"bKd" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/security/prison) +"bKe" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/turf/open/floor/plasteel/black, +/area/security/prison) +"bKf" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bKg" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = -30; + tag = "s" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"bKh" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock" + }, +/obj/docking_port/mobile/emergency{ + name = "Box emergency shuttle"; + dir = 8 + }, +/obj/docking_port/stationary{ + dir = 8; + dwidth = 9; + height = 11; + id = "emergency_home"; + name = "emergency evac bay"; + width = 22 + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"bKi" = ( +/turf/open/floor/plasteel/escape{ + tag = "icon-escape (SOUTHWEST)"; + dir = 10 + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (SOUTHWEST)"; + dir = 10 + }, +/area/hallway/secondary/exit) +"bKj" = ( +/turf/open/floor/plasteel/escape, +/area/hallway/secondary/exit) +"bKk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/escape, +/area/hallway/secondary/exit) +"bKl" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/escape, +/area/hallway/secondary/exit) +"bKm" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel/escape, +/area/hallway/secondary/exit) +"bKn" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/escape{ + dir = 6 + }, +/area/hallway/secondary/exit) +"bKo" = ( +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-j2"; + dir = 2 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bKp" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bKq" = ( +/obj/machinery/camera{ + c_tag = "Library"; + dir = 8; + network = list("SS13"); + pixel_x = 0; + pixel_y = 0 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/wood, +/area/library) +"bKr" = ( +/obj/machinery/door/morgue{ + name = "Private Study"; + req_access_txt = "37" + }, +/turf/open/floor/engine/cult, +/area/library) +"bKs" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bKt" = ( +/turf/closed/wall/r_wall/rust, +/area/gateway) +"bKu" = ( +/turf/closed/wall/r_wall, +/area/gateway) +"bKv" = ( +/obj/structure/kitchenspike, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"bKw" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"bKx" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"bKy" = ( +/obj/machinery/gibber, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"bKz" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/snacks/mint, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bKA" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bKB" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bKC" = ( +/obj/machinery/vending/dinnerware, +/obj/machinery/requests_console{ + department = "Kitchen"; + departmentType = 2; + name = "Kitchen RC"; + pixel_x = 0; + pixel_y = -30 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bKD" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/light_switch{ + pixel_y = -24; + tag = "s" + }, +/obj/machinery/camera{ + c_tag = "Kitchen"; + dir = 1; + icon_state = "camera"; + network = list("SS13"); + tag = "" + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bKE" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/structure/closet/secure_closet/freezer/kitchen, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bKF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4; + level = 2 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"bKG" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bKH" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bKI" = ( +/obj/machinery/door/window/southright{ + base_state = "left"; + dir = 8; + icon_state = "left"; + name = "Bar Door"; + req_access_txt = "0"; + req_one_access_txt = "25;28" + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"bKJ" = ( +/obj/structure/table, +/obj/item/weapon/book/manual/barman_recipes, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = 0; + pixel_y = -31 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"bKK" = ( +/obj/machinery/chem_dispenser/drinks{ + density = 0 + }, +/obj/structure/table, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"bKL" = ( +/obj/machinery/chem_dispenser/drinks/beer{ + density = 0 + }, +/obj/structure/table, +/obj/machinery/requests_console{ + department = "Bar"; + departmentType = 2; + name = "Bar RC"; + pixel_x = 30; + pixel_y = 0 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"bKM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bKN" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bKO" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bKP" = ( +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bKQ" = ( +/obj/machinery/porta_turret/ai{ + dir = 4 + }, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_x = -25; + pixel_y = -2; + tag = "WEST" + }, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (WEST)"; + dir = 8 + }, +/area/ai_monitored/turret_protected/ai_upload) +"bKR" = ( +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (EAST)"; + dir = 4 + }, +/obj/structure/table, +/obj/item/weapon/aiModule/core/full/asimov, +/obj/structure/cable/white{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (EAST)"; + dir = 4 + }, +/area/ai_monitored/turret_protected/ai_upload) +"bKS" = ( +/obj/machinery/computer/upload/borg, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/cable/white{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/light, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (WEST)"; + dir = 8 + }, +/area/ai_monitored/turret_protected/ai_upload) +"bKT" = ( +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (WEST)"; + dir = 8 + }, +/obj/structure/table, +/obj/item/weapon/aiModule/supplied/freeform, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/white{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (WEST)"; + dir = 8 + }, +/area/ai_monitored/turret_protected/ai_upload) +"bKU" = ( +/obj/machinery/porta_turret/ai{ + dir = 8 + }, +/obj/structure/cable/white{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (WEST)"; + dir = 8 + }, +/area/ai_monitored/turret_protected/ai_upload) +"bKV" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/space, +/area/space/nearstation) +"bKW" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/space, +/area/space/nearstation) +"bKX" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/primary/central) +"bKY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + dir = 5 + }, +/area/hallway/primary/central) +"bKZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/hallway/primary/central) +"bLa" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bLb" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (EAST)"; + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0; + tag = "e" + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"bLc" = ( +/obj/machinery/shieldwallgen, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/teleporter) +"bLd" = ( +/obj/machinery/shieldwallgen, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/teleporter) +"bLe" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = 30; + tag = "n" + }, +/turf/open/floor/plasteel/black, +/area/teleporter) +"bLf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners (EAST)"; + dir = 4 + }, +/area/teleporter) +"bLg" = ( +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (NORTH)"; + dir = 1 + }, +/area/teleporter) +"bLh" = ( +/obj/structure/dresser, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"bLi" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/captain, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/camera{ + c_tag = "Captain's Quarters"; + network = list("SS13"); + start_active = 1 + }, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"bLj" = ( +/obj/structure/closet/secure_closet/captains, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"bLk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/captain) +"bLl" = ( +/obj/machinery/suit_storage_unit/captain, +/obj/machinery/status_display{ + layer = 4; + pixel_x = 0; + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_x = -25; + pixel_y = -2; + tag = "WEST" + }, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bLm" = ( +/obj/machinery/keycard_auth{ + pixel_x = 0; + pixel_y = 24 + }, +/obj/machinery/computer/communications, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bLn" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/item/weapon/book/manual/wiki/security_space_law, +/obj/item/weapon/stamp/captain, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bLo" = ( +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bLp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bLq" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bLr" = ( +/obj/machinery/newscaster{ + pixel_x = -32; + pixel_y = 0; + tag = "w" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/black, +/area/bridge) +"bLs" = ( +/turf/open/floor/plasteel/darkpurple/corner{ + tag = "icon-darkpurplecorners (WEST)"; + dir = 8 + }, +/area/bridge) +"bLt" = ( +/obj/structure/chair{ + name = "Science Station" + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"bLu" = ( +/turf/open/floor/plasteel/darkpurple/corner, +/area/bridge) +"bLv" = ( +/turf/open/floor/plasteel/darkgreen/corner{ + tag = "icon-darkgreencorners (WEST)"; + dir = 8 + }, +/area/bridge) +"bLw" = ( +/obj/structure/chair{ + name = "Medical Station" + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"bLx" = ( +/turf/open/floor/plasteel/darkgreen/corner, +/area/bridge) +"bLy" = ( +/obj/structure/cable/blue{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue (EAST)"; + dir = 4 + }, +/area/bridge) +"bLz" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/structure/sign/securearea{ + pixel_x = -32 + }, +/turf/open/floor/plating, +/area/security/main) +"bLA" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/security/main) +"bLB" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_security{ + name = "Gear Room"; + req_access_txt = "0"; + req_one_access_txt = "1;4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/darkred, +/area/security/main) +"bLC" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/security/main) +"bLD" = ( +/obj/structure/rack, +/obj/item/weapon/storage/box/firingpins{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/firingpins, +/obj/item/weapon/storage/box/chemimp{ + pixel_x = 4; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/trackimp, +/obj/item/weapon/storage/lockbox/loyalty, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = -30; + pixel_y = 0 + }, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (WEST)"; + dir = 8 + }, +/area/security/armory) +"bLE" = ( +/obj/structure/rack, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/item/weapon/storage/box/rubbershot, +/obj/item/weapon/storage/box/rubbershot, +/obj/item/weapon/storage/box/rubbershot, +/obj/item/weapon/storage/box/rubbershot, +/obj/item/weapon/storage/box/rubbershot, +/obj/item/weapon/storage/box/rubbershot, +/obj/item/weapon/gun/projectile/shotgun/riot{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/gun/projectile/shotgun/riot, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (WEST)"; + dir = 8 + }, +/area/security/armory) +"bLF" = ( +/obj/structure/rack, +/obj/item/weapon/gun/energy/ionrifle{ + pin = /obj/item/device/firing_pin + }, +/obj/item/weapon/gun/energy/temperature/security, +/obj/item/clothing/suit/armor/laserproof, +/obj/item/key/security, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (WEST)"; + dir = 8 + }, +/area/security/armory) +"bLG" = ( +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTH)"; + dir = 1 + }, +/obj/structure/closet/l3closet/security, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (NORTH)"; + dir = 1 + }, +/area/security/armory) +"bLH" = ( +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTH)"; + dir = 1 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (NORTH)"; + dir = 1 + }, +/area/security/armory) +"bLI" = ( +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTH)"; + dir = 1 + }, +/obj/structure/closet/bombclosetsecurity, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (NORTH)"; + dir = 1 + }, +/area/security/armory) +"bLJ" = ( +/obj/machinery/flasher/portable, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (WEST)"; + dir = 8 + }, +/area/security/armory) +"bLK" = ( +/obj/machinery/flasher/portable, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Armory"; + network = list("SS13","Brig") + }, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (WEST)"; + dir = 8 + }, +/area/security/armory) +"bLL" = ( +/turf/closed/wall/r_wall, +/area/security/hos) +"bLM" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "hosprivacy"; + name = "privacy shutters" + }, +/turf/open/floor/plating, +/area/security/hos) +"bLN" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "hosprivacy"; + name = "privacy shutters" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/security/hos) +"bLO" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_command{ + glass = 0; + name = "Head of Security"; + opacity = 1; + req_access_txt = "58" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/darkred/side, +/area/security/hos) +"bLP" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "hosprivacy"; + name = "privacy shutters" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/security/hos) +"bLQ" = ( +/obj/structure/bed, +/obj/item/clothing/suit/straight_jacket, +/obj/item/clothing/glasses/sunglasses/blindfold, +/obj/item/clothing/mask/muzzle, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/turf/open/floor/plasteel/whitered/side{ + tag = "icon-whitered (NORTHWEST)"; + dir = 9 + }, +/area/security/prison) +"bLR" = ( +/turf/open/floor/plasteel/whitered/side{ + tag = "icon-whitered (NORTH)"; + dir = 1 + }, +/area/security/prison) +"bLS" = ( +/obj/structure/bed, +/obj/item/clothing/suit/straight_jacket, +/obj/item/clothing/glasses/sunglasses/blindfold, +/obj/item/clothing/mask/muzzle, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/turf/open/floor/plasteel/whitered/side{ + tag = "icon-whitered (NORTHEAST)"; + dir = 5 + }, +/area/security/prison) +"bLT" = ( +/obj/machinery/power/apc{ + auto_name = 1; + dir = 8; + name = "Autoname APC West"; + pixel_x = -25; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/prison) +"bLU" = ( +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching Prison Wing holding areas."; + name = "Prison Monitor"; + network = list("Prison"); + pixel_x = 32; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/black, +/area/security/prison) +"bLV" = ( +/obj/structure/bed, +/obj/item/device/radio/intercom{ + desc = "Talk through this. It looks like it has been modified to not broadcast."; + dir = 2; + name = "Prison Intercom (General)"; + pixel_x = 0; + pixel_y = 25; + prison_radio = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/obj/machinery/camera{ + c_tag = "Prison Cell 1"; + dir = 4; + network = list("SS13","Prison") + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bLW" = ( +/obj/machinery/button/door{ + id = "permabolt1"; + name = "Cell Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 0; + pixel_y = 25; + req_access_txt = "0"; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bLX" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bLY" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bLZ" = ( +/obj/structure/table, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"bMa" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/escape) +"bMb" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_security{ + name = "Holding Area"; + req_access_txt = "2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTH)"; + dir = 1 + }, +/area/hallway/secondary/exit) +"bMc" = ( +/obj/machinery/status_display, +/turf/closed/wall, +/area/hallway/secondary/exit) +"bMd" = ( +/turf/open/floor/plasteel/escape/corner{ + tag = "icon-escapecorner (NORTH)"; + dir = 1 + }, +/area/hallway/secondary/exit) +"bMe" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bMf" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bMg" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0; + tag = "e" + }, +/obj/machinery/camera{ + c_tag = "Escape East 2"; + dir = 8; + network = list("SS13"); + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/secondary/exit) +"bMh" = ( +/obj/structure/bookcase/random/adult, +/turf/open/floor/wood, +/area/library) +"bMi" = ( +/obj/machinery/door/window/northright{ + base_state = "right"; + dir = 8; + icon_state = "right"; + name = "Library Desk Door"; + req_access_txt = "37" + }, +/obj/machinery/status_display{ + density = 0; + layer = 3; + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/wood, +/area/library) +"bMj" = ( +/obj/machinery/newscaster{ + pixel_y = 32; + tag = "n" + }, +/turf/open/floor/wood, +/area/library) +"bMk" = ( +/obj/structure/table/wood, +/obj/machinery/computer/libraryconsole/bookmanagement{ + pixel_y = 0 + }, +/turf/open/floor/wood, +/area/library) +"bMl" = ( +/obj/machinery/power/apc{ + auto_name = 1; + dir = 8; + name = "Autoname APC West"; + pixel_x = -25; + pixel_y = 0 + }, +/obj/structure/cable/green{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/library) +"bMm" = ( +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bMn" = ( +/obj/structure/frame/computer, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bMo" = ( +/turf/open/floor/plasteel/darkwarning/corner, +/area/gateway) +"bMp" = ( +/turf/open/floor/plasteel/darkwarning, +/area/gateway) +"bMq" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Gateway"; + network = list("SS13") + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = 20; + tag = "NORTH" + }, +/turf/open/floor/plasteel/darkwarning, +/area/gateway) +"bMr" = ( +/turf/open/floor/plasteel/darkwarning/corner{ + tag = "icon-warndarkcorners (NORTH)"; + dir = 1 + }, +/area/gateway) +"bMs" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Kitchen"; + req_access_txt = "28" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bMt" = ( +/obj/structure/noticeboard{ + dir = 8; + pixel_x = 27; + pixel_y = 0 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bMu" = ( +/obj/machinery/status_display, +/turf/closed/wall, +/area/crew_quarters/bar) +"bMv" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Counter Access"; + req_access_txt = "25" + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"bMw" = ( +/obj/structure/bed/abductor{ + desc = "Seems almost like a bed, but not quite." + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/crew_quarters/bar) +"bMx" = ( +/obj/structure/cable/green{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 1; + name = "Autoname APC North"; + pixel_x = 0; + pixel_y = 24 + }, +/turf/open/floor/plating, +/area/crew_quarters/bar) +"bMy" = ( +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bMz" = ( +/turf/closed/wall, +/area/storage/tools) +"bMA" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/storage/tools) +"bMB" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bMC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/blue/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"bMD" = ( +/obj/machinery/shieldwallgen, +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/teleporter) +"bME" = ( +/obj/machinery/shieldwallgen, +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/teleporter) +"bMF" = ( +/turf/open/floor/plasteel/black, +/area/teleporter) +"bMG" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/teleporter) +"bMH" = ( +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/teleporter) +"bMI" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"bMJ" = ( +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"bMK" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"bML" = ( +/turf/closed/wall, +/area/crew_quarters/captain) +"bMM" = ( +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Captain's Desk"; + departmentType = 5; + name = "Captain RC"; + pixel_x = -30; + pixel_y = 0 + }, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bMN" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bMO" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7; + tag = "every single paper bin is edited to this" + }, +/obj/item/weapon/pen, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bMP" = ( +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"bMQ" = ( +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bMR" = ( +/obj/machinery/door/airlock/command{ + name = "Captain's Office"; + req_access = null; + req_access_txt = "20" + }, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bMS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/black, +/area/bridge) +"bMT" = ( +/obj/machinery/computer/mecha, +/turf/open/floor/plasteel/darkpurple/side{ + tag = "icon-darkpurple (SOUTHWEST)"; + dir = 10 + }, +/area/bridge) +"bMU" = ( +/obj/machinery/computer/rdservercontrol, +/turf/open/floor/plasteel/darkpurple/side, +/area/bridge) +"bMV" = ( +/obj/machinery/computer/aifixer, +/turf/open/floor/plasteel/darkpurple/side{ + tag = "icon-darkpurple (SOUTHEAST)"; + dir = 6 + }, +/area/bridge) +"bMW" = ( +/obj/structure/table/reinforced, +/obj/item/device/aicard, +/obj/item/device/assembly/timer, +/obj/item/device/assembly/signaler, +/obj/item/device/assembly/signaler, +/turf/open/floor/plasteel/black, +/area/bridge) +"bMX" = ( +/obj/structure/table/reinforced, +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/plasteel/black, +/area/bridge) +"bMY" = ( +/obj/machinery/computer/med_data, +/turf/open/floor/plasteel/darkgreen/side{ + tag = "icon-darkgreen (SOUTHWEST)"; + dir = 10 + }, +/area/bridge) +"bMZ" = ( +/obj/machinery/computer/crew, +/turf/open/floor/plasteel/darkgreen/side, +/area/bridge) +"bNa" = ( +/obj/machinery/chem_master, +/turf/open/floor/plasteel/darkgreen/side{ + tag = "icon-darkgreen (SOUTHEAST)"; + dir = 6 + }, +/area/bridge) +"bNb" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/black, +/area/bridge) +"bNc" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners (EAST)"; + dir = 4 + }, +/area/bridge) +"bNd" = ( +/obj/machinery/power/apc{ + auto_name = 1; + dir = 8; + name = "Autoname APC West"; + pixel_x = -25; + pixel_y = 0 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plasteel/black, +/area/security/main) +"bNe" = ( +/obj/machinery/computer/secure_data, +/obj/machinery/requests_console{ + department = "Security"; + departmentType = 5; + name = "Security RC"; + pixel_y = 30 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTHWEST)"; + dir = 9 + }, +/area/security/main) +"bNf" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/computer/security, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTH)"; + dir = 1 + }, +/area/security/main) +"bNg" = ( +/obj/structure/filingcabinet, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = 20; + tag = "NORTH" + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTHEAST)"; + dir = 5 + }, +/area/security/main) +"bNh" = ( +/obj/machinery/vending/security, +/obj/machinery/light_switch{ + pixel_y = 24; + tag = "n" + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTHWEST)"; + dir = 9 + }, +/area/security/main) +"bNi" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Security Office"; + network = list("SS13","Brig") + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTHEAST)"; + dir = 5 + }, +/area/security/main) +"bNj" = ( +/obj/vehicle/secway, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/main) +"bNk" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/darkred/corner{ + tag = "icon-darkredcorners (EAST)"; + dir = 4 + }, +/area/security/main) +"bNl" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTH)"; + dir = 1 + }, +/area/security/main) +"bNm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkred/corner{ + tag = "icon-darkredcorners (NORTH)"; + dir = 1 + }, +/area/security/main) +"bNn" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/armory) +"bNo" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/armory) +"bNp" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/armory) +"bNq" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/black, +/area/security/armory) +"bNr" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/armory) +"bNs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/black, +/area/security/armory) +"bNt" = ( +/turf/open/floor/plasteel/black, +/area/security/armory) +"bNu" = ( +/obj/machinery/disposal/bin, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = -30; + pixel_y = 0 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/security/hos) +"bNv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/darkred/corner{ + tag = "icon-darkredcorners (EAST)"; + dir = 4 + }, +/area/security/hos) +"bNw" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/holopad, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/darkred/side, +/area/security/hos) +"bNx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/darkred/corner{ + tag = "icon-darkredcorners (NORTH)"; + dir = 1 + }, +/area/security/hos) +"bNy" = ( +/obj/structure/bed/dogbed{ + desc = "Pugley III's dog bed. Quite comfy."; + name = "Pugley's bed" + }, +/obj/machinery/light_switch{ + pixel_x = 24; + pixel_y = 24; + tag = "ne" + }, +/mob/living/simple_animal/pet/dog/pug{ + name = "\improper Pugley III" + }, +/turf/open/floor/carpet, +/area/security/hos) +"bNz" = ( +/turf/open/floor/plasteel/white, +/area/security/prison) +"bNA" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/security/prison) +"bNB" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitered/corner, +/area/security/prison) +"bNC" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "sanitarium"; + name = "ward shutters" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/prison) +"bND" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/black, +/area/security/prison) +"bNE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (EAST)"; + dir = 4 + }, +/area/security/prison) +"bNF" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Long-Term Cell 1"; + req_access_txt = "2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"bNG" = ( +/obj/machinery/door/poddoor/preopen{ + id = "permacell1"; + name = "cell blast door" + }, +/obj/machinery/door/airlock/glass{ + id_tag = "permabolt1"; + name = "Cell 1" + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bNH" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"bNI" = ( +/obj/structure/chair, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"bNJ" = ( +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"bNK" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock"; + req_access_txt = "2" + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"bNL" = ( +/obj/machinery/power/emitter{ + anchored = 1; + dir = 1; + state = 2 + }, +/obj/structure/cable/green{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/turf/open/floor/plating/airless/warnplate{ + dir = 1 + }, +/area/space/nearstation) +"bNM" = ( +/obj/machinery/camera/emp_proof{ + c_tag = "Containment Southeast"; + dir = 9; + icon_state = "camera"; + network = list("Singularity"); + tag = "icon-camera (NORTHWEST)" + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"bNN" = ( +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTHWEST)"; + dir = 9 + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (NORTHWEST)"; + dir = 9 + }, +/area/hallway/secondary/exit) +"bNO" = ( +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTH)"; + dir = 1 + }, +/area/hallway/secondary/exit) +"bNP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTH)"; + dir = 1 + }, +/area/hallway/secondary/exit) +"bNQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTH)"; + dir = 1 + }, +/area/hallway/secondary/exit) +"bNR" = ( +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTHEAST)"; + dir = 5 + }, +/area/hallway/secondary/exit) +"bNS" = ( +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_x = -25; + pixel_y = -2; + tag = "WEST" + }, +/turf/open/floor/plasteel/red/corner{ + tag = "icon-redcorner (WEST)"; + dir = 8 + }, +/area/hallway/secondary/exit) +"bNT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bNU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/library) +"bNV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/wood, +/area/library) +"bNW" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp/green{ + pixel_x = 1; + pixel_y = 5 + }, +/turf/open/floor/wood, +/area/library) +"bNX" = ( +/obj/structure/chair/office/dark, +/obj/effect/landmark/start{ + name = "Librarian" + }, +/turf/open/floor/wood, +/area/library) +"bNY" = ( +/obj/machinery/libraryscanner, +/turf/open/floor/wood, +/area/library) +"bNZ" = ( +/obj/structure/girder, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bOa" = ( +/obj/structure/grille, +/obj/item/weapon/shard{ + icon_state = "small" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bOb" = ( +/obj/structure/grille/broken, +/obj/item/weapon/shard{ + icon_state = "medium" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bOc" = ( +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (EAST)"; + dir = 4 + }, +/area/gateway) +"bOd" = ( +/obj/machinery/gateway{ + tag = "icon-off (NORTHWEST)"; + icon_state = "off"; + dir = 9 + }, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/gateway) +"bOe" = ( +/obj/machinery/gateway{ + tag = "icon-off (NORTH)"; + icon_state = "off"; + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/gateway) +"bOf" = ( +/obj/machinery/gateway{ + tag = "icon-off (NORTHEAST)"; + icon_state = "off"; + dir = 5 + }, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/gateway) +"bOg" = ( +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (WEST)"; + dir = 8 + }, +/area/gateway) +"bOh" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bOi" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bOj" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/closet/wardrobe/botanist, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bOk" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/girder{ + layer = 2.6 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bOl" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bOm" = ( +/obj/structure/cable/green{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 1; + name = "Autoname APC North"; + pixel_x = 0; + pixel_y = 24 + }, +/obj/structure/grille, +/turf/open/floor/plating, +/area/crew_quarters/kitchen) +"bOn" = ( +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fpmaint) +"bOo" = ( +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 8; + name = "8maintenance loot spawner" + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fpmaint) +"bOp" = ( +/obj/machinery/computer/arcade, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bOq" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bOr" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bOs" = ( +/obj/machinery/computer/slot_machine, +/turf/open/floor/carpet, +/area/crew_quarters/bar) +"bOt" = ( +/obj/machinery/computer/slot_machine, +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/turf/open/floor/carpet, +/area/crew_quarters/bar) +"bOu" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/crew_quarters/bar) +"bOv" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/carpet, +/area/crew_quarters/bar) +"bOw" = ( +/turf/open/floor/carpet, +/area/crew_quarters/bar) +"bOx" = ( +/obj/structure/chair/comfy/beige, +/turf/open/floor/carpet, +/area/crew_quarters/bar) +"bOy" = ( +/obj/structure/chair/comfy/brown, +/turf/open/floor/carpet, +/area/crew_quarters/bar) +"bOz" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bOA" = ( +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bOB" = ( +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bOC" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/black/corner{ + tag = "icon-blackcorner (NORTH)"; + dir = 1 + }, +/area/storage/tools) +"bOD" = ( +/turf/open/floor/plasteel, +/area/storage/tools) +"bOE" = ( +/obj/machinery/camera{ + c_tag = "Auxiliary Tool Storage"; + network = list("SS13") + }, +/turf/open/floor/plasteel, +/area/storage/tools) +"bOF" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = 20; + tag = "NORTH" + }, +/turf/open/floor/plasteel/black/corner{ + tag = "icon-blackcorner (EAST)"; + dir = 4 + }, +/area/storage/tools) +"bOG" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/machinery/computer/teleporter, +/turf/open/floor/plasteel/black, +/area/teleporter) +"bOH" = ( +/obj/structure/table, +/obj/item/device/radio/beacon, +/turf/open/floor/plasteel/black, +/area/teleporter) +"bOI" = ( +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light_switch{ + pixel_x = 24; + tag = "e" + }, +/turf/open/floor/plasteel/black, +/area/teleporter) +"bOJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"bOK" = ( +/obj/structure/table/wood, +/obj/item/weapon/razor{ + pixel_x = -4; + pixel_y = 2 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light_switch{ + pixel_y = -24; + tag = "s" + }, +/obj/item/weapon/storage/fancy/cigarettes/cigars, +/obj/item/weapon/lighter, +/obj/item/weapon/reagent_containers/food/drinks/flask/gold, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"bOL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"bOM" = ( +/obj/machinery/door/airlock/command{ + name = "Captain's Quarters"; + req_access = null; + req_access_txt = "20" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"bON" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bOO" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Captain" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bOP" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bOQ" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (EAST)"; + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"bOR" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/displaycase/captain, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bOS" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1 + }, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners" + }, +/area/bridge) +"bOT" = ( +/obj/structure/cable/blue{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/darkblue/side, +/area/bridge) +"bOU" = ( +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/blue{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/darkblue/side, +/area/bridge) +"bOV" = ( +/obj/structure/cable/blue{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/blue{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/darkblue/side, +/area/bridge) +"bOW" = ( +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/blue{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/darkblue/side, +/area/bridge) +"bOX" = ( +/obj/structure/cable/blue{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/darkblue/side, +/area/bridge) +"bOY" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/camera{ + c_tag = "Bridge South"; + dir = 1; + network = list("SS13"); + start_active = 1 + }, +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners (WEST)"; + dir = 8 + }, +/area/bridge) +"bOZ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/obj/machinery/light_switch{ + pixel_x = 24; + tag = "e" + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"bPa" = ( +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bPb" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=4"; + dir = 4; + freq = 1400; + location = "Security" + }, +/obj/structure/plasticflaps{ + opacity = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/main) +"bPc" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/turf/open/floor/plasteel/black, +/area/security/main) +"bPd" = ( +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bPe" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/security/main) +"bPf" = ( +/turf/open/floor/plasteel/black, +/area/security/main) +"bPg" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/main) +"bPh" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/security/main) +"bPi" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/brigdoor{ + base_state = "rightsecure"; + dir = 4; + icon_state = "rightsecure"; + name = "Armory Desk"; + req_access_txt = "3" + }, +/turf/open/floor/plasteel/darkred, +/area/security/armory) +"bPj" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/security/armory) +"bPk" = ( +/obj/structure/rack, +/obj/item/weapon/gun/energy/gun/advtaser{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/gun/energy/gun/advtaser, +/obj/item/weapon/gun/energy/gun/advtaser{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/armory) +"bPl" = ( +/obj/structure/rack, +/obj/item/weapon/gun/energy/laser{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/gun/energy/laser, +/obj/item/weapon/gun/energy/laser{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/armory) +"bPm" = ( +/obj/structure/rack, +/obj/item/weapon/gun/energy/gun{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/gun/energy/gun, +/obj/item/weapon/gun/energy/gun{ + pixel_x = 3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/armory) +"bPn" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/security/armory) +"bPo" = ( +/obj/structure/closet/secure_closet{ + name = "contraband locker"; + req_access_txt = "3" + }, +/obj/machinery/light_switch{ + pixel_x = 24; + tag = "e" + }, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (WEST)"; + dir = 8 + }, +/area/security/armory) +"bPp" = ( +/obj/structure/filingcabinet, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 8; + name = "Autoname APC West"; + pixel_x = -25; + pixel_y = 0 + }, +/turf/open/floor/carpet, +/area/security/hos) +"bPq" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/darkred/corner{ + tag = "icon-darkredcorners (EAST)"; + dir = 4 + }, +/area/security/hos) +"bPr" = ( +/obj/structure/chair, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/darkred/side, +/area/security/hos) +"bPs" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/darkred/corner{ + tag = "icon-darkredcorners (NORTH)"; + dir = 1 + }, +/area/security/hos) +"bPt" = ( +/turf/open/floor/carpet, +/area/security/hos) +"bPu" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "sanitarium"; + name = "ward shutters" + }, +/turf/open/floor/plating, +/area/security/hos) +"bPv" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/button/door{ + id = "sanitarium"; + name = "Ward Shutters Control"; + pixel_x = -26; + pixel_y = 26; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/white, +/area/security/prison) +"bPw" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/turf/open/floor/plasteel/white, +/area/security/prison) +"bPx" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/turf/open/floor/plasteel/whitered/side{ + tag = "icon-whitered (EAST)"; + dir = 4 + }, +/area/security/prison) +"bPy" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_security{ + glass = 0; + name = "Insanity Ward"; + opacity = 1; + req_access_txt = "2" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/turf/open/floor/plasteel/black, +/area/security/prison) +"bPz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/turf/open/floor/plasteel/black, +/area/security/prison) +"bPA" = ( +/obj/machinery/button/flasher{ + id = "PCell 1"; + pixel_x = 24; + pixel_y = -6 + }, +/obj/machinery/button/door{ + id = "permacell1"; + name = "Cell 1 Lockdown"; + pixel_x = 25; + pixel_y = 4; + req_access_txt = "2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (WEST)"; + dir = 8 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/black, +/area/security/prison) +"bPB" = ( +/obj/structure/table, +/obj/machinery/flasher{ + id = "PCell 1"; + pixel_x = -28 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/weapon/paper, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bPC" = ( +/obj/machinery/washing_machine, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/barber, +/area/security/prison) +"bPD" = ( +/obj/structure/table, +/obj/structure/bedsheetbin, +/turf/open/floor/plasteel/barber, +/area/security/prison) +"bPE" = ( +/obj/machinery/washing_machine, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/turf/open/floor/plasteel/barber, +/area/security/prison) +"bPF" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bPG" = ( +/obj/machinery/door/airlock/glass{ + name = "Emergency Shuttle Brig"; + req_access_txt = "2" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"bPH" = ( +/obj/machinery/flasher{ + id = "shuttle_flasher"; + pixel_x = 24; + pixel_y = -6 + }, +/obj/machinery/button/flasher{ + id = "shuttle_flasher"; + pixel_x = 24; + pixel_y = 6 + }, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"bPI" = ( +/turf/open/floor/plasteel/darkred/side{ + dir = 8 + }, +/area/hallway/secondary/exit) +"bPJ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/hallway/secondary/exit) +"bPK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/black, +/area/hallway/secondary/exit) +"bPL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/black, +/area/hallway/secondary/exit) +"bPM" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + frequency = 1439; + id_tag = null; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/hallway/secondary/exit) +"bPN" = ( +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (EAST)"; + dir = 4 + }, +/area/hallway/secondary/exit) +"bPO" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + aiControlDisabled = 0; + icon_state = "closed"; + id_tag = null; + locked = 0; + name = "Holding Area"; + req_access = null; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/darkred, +/area/hallway/secondary/exit) +"bPP" = ( +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/hallway/secondary/exit) +"bPQ" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bPR" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (EAST)"; + dir = 4 + }, +/turf/open/floor/carpet, +/area/library) +"bPS" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/wood, +/area/library) +"bPT" = ( +/obj/structure/table/wood, +/obj/item/device/camera_film, +/obj/item/device/camera_film, +/turf/open/floor/wood, +/area/library) +"bPU" = ( +/obj/structure/table/wood, +/obj/item/weapon/pen/red, +/obj/item/weapon/pen/blue{ + pixel_x = 5; + pixel_y = 5 + }, +/turf/open/floor/wood, +/area/library) +"bPV" = ( +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/library) +"bPW" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7; + tag = "every single paper bin is edited to this" + }, +/turf/open/floor/wood, +/area/library) +"bPX" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (EAST)"; + dir = 4 + }, +/area/gateway) +"bPY" = ( +/obj/machinery/gateway{ + tag = "icon-off (WEST)"; + icon_state = "off"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/gateway) +"bPZ" = ( +/obj/machinery/gateway/centerstation, +/obj/structure/cable/green{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/turf/open/floor/plasteel/black, +/area/gateway) +"bQa" = ( +/obj/machinery/gateway{ + tag = "icon-off (EAST)"; + icon_state = "off"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/gateway) +"bQb" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + frequency = 1439; + id_tag = null; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (WEST)"; + dir = 8 + }, +/area/gateway) +"bQc" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bQd" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bQe" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bQf" = ( +/obj/machinery/computer/arcade, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bQg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bQh" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4; + level = 2 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"bQi" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/bar) +"bQj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/bar) +"bQk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/carpet, +/area/crew_quarters/bar) +"bQl" = ( +/obj/structure/chair/comfy/beige{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/bar) +"bQm" = ( +/obj/structure/table/wood/poker, +/obj/item/toy/cards/deck{ + pixel_x = 2 + }, +/turf/open/floor/carpet, +/area/crew_quarters/bar) +"bQn" = ( +/obj/structure/table/wood/poker, +/obj/item/weapon/coin/silver, +/turf/open/floor/carpet, +/area/crew_quarters/bar) +"bQo" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/crew_quarters/bar) +"bQp" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bQq" = ( +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bQr" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bQs" = ( +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bQt" = ( +/obj/structure/cable/green{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + aidisabled = 0; + auto_name = 1; + cell_type = 2500; + dir = 4; + name = "Autoname APC East"; + pixel_x = 24; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/storage/tools) +"bQu" = ( +/obj/structure/closet/toolcloset, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/turf/open/floor/plasteel, +/area/storage/tools) +"bQv" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel, +/area/storage/tools) +"bQw" = ( +/obj/structure/table, +/obj/item/weapon/electronics/airalarm, +/obj/item/weapon/electronics/airlock, +/obj/item/device/multitool, +/turf/open/floor/plasteel, +/area/storage/tools) +"bQx" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/storage/tools) +"bQy" = ( +/obj/structure/table, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/machinery/cell_charger, +/obj/item/weapon/storage/toolbox/emergency{ + pixel_y = 6 + }, +/obj/item/weapon/stock_parts/cell, +/turf/open/floor/plasteel, +/area/storage/tools) +"bQz" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bQA" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bQB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning/corner, +/area/hallway/primary/central) +"bQC" = ( +/obj/machinery/teleport/station, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (SOUTHEAST)"; + dir = 6 + }, +/area/teleporter) +"bQD" = ( +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (NORTHWEST)"; + dir = 9 + }, +/area/teleporter) +"bQE" = ( +/obj/machinery/bluespace_beacon, +/obj/structure/chair/stool, +/turf/open/floor/plasteel/black, +/area/teleporter) +"bQF" = ( +/obj/structure/table, +/obj/item/device/gps, +/obj/item/weapon/hand_tele, +/turf/open/floor/plasteel/black, +/area/teleporter) +"bQG" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/camera{ + c_tag = "Teleporter"; + dir = 8; + network = list("SS13"); + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plasteel/black, +/area/teleporter) +"bQH" = ( +/obj/machinery/door/airlock{ + name = "Private Restroom"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/captain) +"bQI" = ( +/obj/machinery/newscaster/security_unit{ + pixel_x = -32; + tag = "w" + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bQJ" = ( +/obj/machinery/computer/card, +/obj/item/weapon/card/id/captains_spare, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bQK" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/lockbox/medal, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bQL" = ( +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"bQM" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + frequency = 1439; + id_tag = null; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/carpet, +/area/crew_quarters/captain) +"bQN" = ( +/obj/item/weapon/pinpointer, +/obj/structure/table/wood, +/obj/item/weapon/disk/nuclear, +/obj/machinery/camera{ + c_tag = "Captain's Office"; + dir = 8; + network = list("SS13"); + pixel_x = 0; + pixel_y = 0; + start_active = 1 + }, +/obj/item/weapon/storage/secure/safe{ + pixel_x = 32 + }, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bQO" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/blue, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + layer = 2.9; + name = "bridge blast door" + }, +/turf/open/floor/plating, +/area/bridge) +"bQP" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/blue, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + layer = 2.9; + name = "bridge blast door" + }, +/obj/machinery/ai_status_display{ + layer = 3.3 + }, +/turf/open/floor/plating, +/area/bridge) +"bQQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/blue, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + layer = 2.9; + name = "bridge blast door" + }, +/obj/machinery/status_display{ + layer = 3.3 + }, +/turf/open/floor/plating, +/area/bridge) +"bQR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"bQS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance{ + name = "Security Maintenance"; + req_access_txt = "63" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/turf/open/floor/plating, +/area/security/main) +"bQT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/black, +/area/security/main) +"bQU" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bQV" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/turf/open/floor/plasteel/black, +/area/security/main) +"bQW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/turf/open/floor/plasteel/black, +/area/security/main) +"bQX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/turf/open/floor/plasteel/black, +/area/security/main) +"bQY" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/black, +/area/security/main) +"bQZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/main) +"bRa" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (EAST)"; + dir = 4 + }, +/area/security/main) +"bRb" = ( +/obj/machinery/door/poddoor/shutters{ + id = "armory" + }, +/obj/machinery/button/door{ + id = "armory"; + name = "Armory Shutters"; + pixel_x = 0; + pixel_y = -26; + req_access_txt = "3" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkred, +/area/security/armory) +"bRc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (WEST)"; + dir = 8 + }, +/area/security/armory) +"bRd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/armory) +"bRe" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/security/armory) +"bRf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/black, +/area/security/armory) +"bRg" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/turf/open/floor/plasteel/black, +/area/security/armory) +"bRh" = ( +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/obj/structure/table/wood, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/carpet, +/area/security/hos) +"bRi" = ( +/obj/structure/table/wood, +/obj/machinery/recharger, +/turf/open/floor/carpet, +/area/security/hos) +"bRj" = ( +/obj/structure/table/wood, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/carpet, +/area/security/hos) +"bRk" = ( +/obj/structure/table/wood, +/obj/item/weapon/phone{ + desc = "Supposedly a direct line to NanoTrasen Central Command. It's not even plugged in."; + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7; + tag = "every single paper bin is edited to this" + }, +/obj/item/weapon/pen, +/turf/open/floor/carpet, +/area/security/hos) +"bRl" = ( +/obj/machinery/door/window/brigdoor{ + base_state = "rightsecure"; + dir = 2; + icon_state = "rightsecure"; + name = "Head of Security's Desk"; + req_access_txt = "58" + }, +/turf/open/floor/carpet, +/area/security/hos) +"bRm" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/security/prison) +"bRn" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitered/corner{ + tag = "icon-whiteredcorner (EAST)"; + dir = 4 + }, +/area/security/prison) +"bRo" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "sanitarium"; + name = "ward shutters" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/prison) +"bRp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/prison) +"bRq" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/prison) +"bRr" = ( +/obj/machinery/door/window/westleft{ + base_state = "right"; + dir = 1; + icon_state = "right"; + name = "Unisex Showers"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"bRs" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"bRt" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/fire, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/weapon/crowbar, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"bRu" = ( +/obj/machinery/flasher{ + id = "cockpit_flasher"; + pixel_x = -6; + pixel_y = -24 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"bRv" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"bRw" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/darkred/side{ + dir = 10 + }, +/area/hallway/secondary/exit) +"bRx" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/darkred/side, +/area/hallway/secondary/exit) +"bRy" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/darkred/side, +/area/hallway/secondary/exit) +"bRz" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/machinery/camera{ + c_tag = "Escape Prisoner Storage"; + dir = 1; + network = list("SS13") + }, +/turf/open/floor/plasteel/darkred/side, +/area/hallway/secondary/exit) +"bRA" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (SOUTHEAST)"; + dir = 6 + }, +/area/hallway/secondary/exit) +"bRB" = ( +/obj/structure/closet/emcloset, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/red/corner{ + tag = "icon-redcorner (NORTH)"; + dir = 1 + }, +/area/hallway/secondary/exit) +"bRC" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bRD" = ( +/obj/structure/sign/directions/evac{ + dir = 1; + icon_state = "direction_evac"; + pixel_x = -32; + pixel_y = -32; + tag = "icon-direction_evac (NORTH)" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bRE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (EAST)"; + dir = 4 + }, +/area/hallway/secondary/exit) +"bRF" = ( +/obj/structure/chair/comfy/black, +/turf/open/floor/wood, +/area/library) +"bRG" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Library Maintenance"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bRH" = ( +/obj/machinery/gateway{ + density = 0; + dir = 10; + icon_state = "off"; + tag = "icon-off (SOUTHWEST)" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/gateway) +"bRI" = ( +/obj/machinery/gateway{ + density = 0 + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/gateway) +"bRJ" = ( +/obj/machinery/gateway{ + density = 0; + dir = 6; + icon_state = "off"; + tag = "icon-off (SOUTHEAST)" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/gateway) +"bRK" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "intact"; + dir = 5 + }, +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bRL" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bRM" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 4; + icon_state = "pipe-j2s"; + sortType = 21 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bRN" = ( +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bRO" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bRP" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bRQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bRR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/bar) +"bRS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/carpet, +/area/crew_quarters/bar) +"bRT" = ( +/obj/structure/chair/comfy/brown{ + tag = "icon-comfychair (EAST)"; + icon_state = "comfychair"; + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/bar) +"bRU" = ( +/obj/structure/table/wood/poker, +/turf/open/floor/carpet, +/area/crew_quarters/bar) +"bRV" = ( +/obj/structure/chair/comfy/beige{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/bar) +"bRW" = ( +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/item/weapon/cigbutt, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bRX" = ( +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bRY" = ( +/obj/structure/closet/toolcloset, +/turf/open/floor/plasteel/black/corner{ + tag = "icon-blackcorner (WEST)"; + dir = 8 + }, +/area/storage/tools) +"bRZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/storage/tools) +"bSa" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/storage/tools) +"bSb" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/machinery/light_switch{ + pixel_y = -24; + tag = "s" + }, +/turf/open/floor/plasteel/black/corner, +/area/storage/tools) +"bSc" = ( +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bSd" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fsmaint2) +"bSe" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bSf" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/item/stack/sheet/cardboard, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bSg" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bSh" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fsmaint2) +"bSi" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bSj" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bSk" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bSl" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (EAST)"; + dir = 4 + }, +/area/hallway/primary/central) +"bSm" = ( +/obj/machinery/door/poddoor/shutters{ + id = "teleporter"; + name = "Teleporter Access Shutter" + }, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHWEST)"; + dir = 9 + }, +/area/teleporter) +"bSn" = ( +/obj/machinery/teleport/hub, +/obj/machinery/button/door{ + id = "teleporter"; + name = "Teleporter Shutter Control"; + pixel_x = -24; + pixel_y = 24; + req_access_txt = "17" + }, +/turf/open/floor/plasteel/darkwarning/side{ + tag = "icon-black_warn_side (EAST)"; + icon_state = "black_warn_side"; + dir = 4 + }, +/area/teleporter) +"bSo" = ( +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (WEST)"; + dir = 8 + }, +/area/teleporter) +"bSp" = ( +/obj/structure/cable/blue{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/teleporter) +"bSq" = ( +/obj/structure/cable/blue{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/teleporter) +"bSr" = ( +/obj/structure/cable/blue{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_x = 26; + pixel_y = -2; + tag = "EAST" + }, +/turf/open/floor/plasteel/black, +/area/teleporter) +"bSs" = ( +/obj/structure/toilet{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/captain) +"bSt" = ( +/obj/structure/sink{ + pixel_y = 24 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/captain) +"bSu" = ( +/obj/structure/mirror{ + pixel_y = -28 + }, +/obj/item/weapon/soap/deluxe, +/obj/machinery/shower{ + pixel_y = 12 + }, +/obj/structure/curtain, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/captain) +"bSv" = ( +/obj/machinery/door/window{ + base_state = "left"; + dir = 2; + icon_state = "left"; + name = "Captain's Desk Door"; + req_access_txt = "20" + }, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bSw" = ( +/obj/structure/table/wood, +/obj/machinery/recharger, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bSx" = ( +/obj/structure/table/wood, +/obj/item/weapon/hand_tele, +/obj/item/weapon/melee/chainofcommand, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bSy" = ( +/obj/structure/cable/blue{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/holopad, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bSz" = ( +/obj/structure/table/wood, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = 31 + }, +/obj/item/weapon/storage/photo_album, +/obj/item/weapon/storage/fancy/donut_box, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bSA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"bSB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"bSC" = ( +/obj/structure/grille/broken, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/asmaint) +"bSD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkwarning/end{ + tag = "icon-black_warn_end (EAST)"; + icon_state = "black_warn_end"; + dir = 4 + }, +/area/security/main) +"bSE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/closet/secure_closet/security/sec, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (SOUTHWEST)"; + dir = 10 + }, +/area/security/main) +"bSF" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/closet/secure_closet/security/sec, +/turf/open/floor/plasteel/darkred/side, +/area/security/main) +"bSG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light, +/obj/structure/closet/secure_closet/security/sec, +/turf/open/floor/plasteel/darkred/side, +/area/security/main) +"bSH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/closet/secure_closet/security/sec, +/turf/open/floor/plasteel/darkred/side, +/area/security/main) +"bSI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = -30; + tag = "s" + }, +/obj/structure/closet/secure_closet/security/sec, +/turf/open/floor/plasteel/darkred/side, +/area/security/main) +"bSJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/landmark{ + name = "secequipment" + }, +/turf/open/floor/plasteel/darkred/side, +/area/security/main) +"bSK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/effect/landmark{ + name = "secequipment" + }, +/turf/open/floor/plasteel/darkred/side, +/area/security/main) +"bSL" = ( +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = 0; + pixel_y = -30 + }, +/obj/effect/landmark{ + name = "secequipment" + }, +/obj/machinery/light, +/turf/open/floor/plasteel/darkred/side, +/area/security/main) +"bSM" = ( +/obj/effect/landmark{ + name = "secequipment" + }, +/turf/open/floor/plasteel/darkred/side, +/area/security/main) +"bSN" = ( +/obj/effect/landmark{ + name = "secequipment" + }, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (SOUTHEAST)"; + dir = 6 + }, +/area/security/main) +"bSO" = ( +/obj/machinery/suit_storage_unit/security, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (WEST)"; + dir = 8 + }, +/area/security/armory) +"bSP" = ( +/obj/structure/rack, +/obj/item/clothing/suit/armor/bulletproof, +/obj/item/clothing/head/helmet/alt, +/obj/item/clothing/suit/armor/bulletproof, +/obj/item/clothing/head/helmet/alt, +/obj/item/clothing/suit/armor/bulletproof, +/obj/item/clothing/head/helmet/alt, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = -25; + tag = "SOUTH" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/armory) +"bSQ" = ( +/obj/structure/rack, +/obj/item/clothing/suit/armor/riot, +/obj/item/clothing/suit/armor/riot, +/obj/item/clothing/suit/armor/riot, +/obj/item/clothing/head/helmet/riot, +/obj/item/clothing/head/helmet/riot, +/obj/item/clothing/head/helmet/riot, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/armory) +"bSR" = ( +/obj/structure/rack, +/obj/item/weapon/shield/riot{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/shield/riot, +/obj/item/weapon/shield/riot{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/weapon/storage/box/teargas, +/obj/item/weapon/storage/box/flashbangs{ + pixel_x = -2; + pixel_y = -2 + }, +/obj/structure/cable, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 2; + name = "Autoname APC South"; + pixel_x = 1; + pixel_y = -24 + }, +/obj/machinery/light, +/obj/item/weapon/gun/energy/gun/dragnet, +/obj/item/weapon/gun/energy/gun/dragnet, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/armory) +"bSS" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/structure/closet/secure_closet/lethalshots, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (WEST)"; + dir = 8 + }, +/area/security/armory) +"bST" = ( +/obj/item/weapon/grenade/barrier, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (WEST)"; + dir = 8 + }, +/area/security/armory) +"bSU" = ( +/obj/structure/table/wood, +/obj/item/weapon/book/manual/wiki/security_space_law, +/obj/item/weapon/stamp/hos, +/obj/item/weapon/cartridge/detective, +/obj/item/weapon/storage/secure/safe/HoS{ + pixel_x = -24; + pixel_y = 0 + }, +/obj/machinery/camera{ + c_tag = "Head of Security's Office"; + dir = 4; + network = list("SS13"); + start_active = 1 + }, +/turf/open/floor/carpet, +/area/security/hos) +"bSV" = ( +/obj/machinery/button/door{ + id = "sanitarium"; + name = "Ward Shutters Control"; + pixel_x = -38; + pixel_y = 29; + req_access_txt = "0" + }, +/obj/machinery/button/door{ + id = "hosspace"; + name = "Space Shutters Control"; + pixel_x = -26; + pixel_y = 39 + }, +/obj/machinery/button/door{ + id = "hosprivacy"; + name = "Privacy Shutters Control"; + pixel_x = -38; + pixel_y = 39 + }, +/obj/machinery/keycard_auth{ + pixel_x = -25; + pixel_y = 29 + }, +/turf/open/floor/carpet, +/area/security/hos) +"bSW" = ( +/obj/structure/chair/comfy/black{ + tag = "icon-comfychair (NORTH)"; + icon_state = "comfychair"; + dir = 1 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/effect/landmark/start{ + name = "Head of Security" + }, +/turf/open/floor/carpet, +/area/security/hos) +"bSX" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/carpet, +/area/security/hos) +"bSY" = ( +/obj/structure/table/glass, +/obj/item/weapon/folder/red, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/whitered/side{ + tag = "icon-whitered (SOUTHWEST)"; + dir = 10 + }, +/area/security/prison) +"bSZ" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/whitered/side, +/area/security/prison) +"bTa" = ( +/obj/structure/table/glass, +/obj/item/weapon/reagent_containers/syringe, +/obj/item/weapon/reagent_containers/glass/bottle/morphine, +/turf/open/floor/plasteel/whitered/side{ + tag = "icon-whitered (SOUTHEAST)"; + dir = 6 + }, +/area/security/prison) +"bTb" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/obj/machinery/camera{ + c_tag = "Prison Wing South"; + dir = 4; + network = list("SS13","Brig") + }, +/turf/open/floor/plasteel/darkred/side, +/area/security/prison) +"bTc" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/hug/medical, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/darkred/side, +/area/security/prison) +"bTd" = ( +/obj/structure/toilet{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"bTe" = ( +/obj/structure/sink{ + pixel_y = 24 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"bTf" = ( +/obj/machinery/door/airlock{ + name = "Unisex Restroom"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"bTg" = ( +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"bTh" = ( +/obj/item/weapon/soap, +/turf/open/floor/plasteel/showroomfloor, +/area/security/prison) +"bTi" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (EAST)"; + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"bTj" = ( +/obj/machinery/vending/medical{ + pixel_x = -2 + }, +/obj/machinery/requests_console{ + announcementConsole = 0; + department = "Medbay"; + departmentType = 1; + name = "Medbay RC"; + pixel_x = -30; + pixel_y = 0; + pixel_z = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/exam_room) +"bTk" = ( +/obj/machinery/status_display, +/turf/closed/wall/shuttle{ + icon_state = "swall12"; + dir = 2 + }, +/area/shuttle/escape) +"bTl" = ( +/obj/machinery/door/airlock/glass{ + name = "Emergency Shuttle Cockpit"; + req_access_txt = "19" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"bTm" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"bTn" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper, +/turf/open/floor/wood, +/area/library) +"bTo" = ( +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/machinery/light/small, +/turf/open/floor/wood, +/area/library) +"bTp" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (WEST)"; + dir = 8 + }, +/turf/open/floor/carpet, +/area/library) +"bTq" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light/small, +/turf/open/floor/wood, +/area/library) +"bTr" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/weapon/paper, +/turf/open/floor/wood, +/area/library) +"bTs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/library) +"bTt" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + frequency = 1439; + id_tag = null; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/wood, +/area/library) +"bTu" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/turf/open/floor/wood, +/area/library) +"bTv" = ( +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/wood, +/area/library) +"bTw" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bTx" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bTy" = ( +/obj/structure/sign/biohazard{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/darkwarning/corner{ + tag = "icon-warndarkcorners (WEST)"; + dir = 8 + }, +/area/gateway) +"bTz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (NORTH)"; + dir = 1 + }, +/area/gateway) +"bTA" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (NORTH)"; + dir = 1 + }, +/area/gateway) +"bTB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (NORTH)"; + dir = 1 + }, +/area/gateway) +"bTC" = ( +/obj/structure/sign/biohazard{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/darkwarning/corner{ + tag = "icon-warndarkcorners (EAST)"; + dir = 4 + }, +/area/gateway) +"bTD" = ( +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fpmaint) +"bTE" = ( +/turf/closed/wall, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bTF" = ( +/obj/structure/disposalpipe/sortjunction{ + dir = 2; + icon_state = "pipe-j2s"; + sortType = 20 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bTG" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Bar Maintenance"; + req_access_txt = "12" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bTH" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bTI" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bTJ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/obj/machinery/camera{ + c_tag = "Bar South 1"; + dir = 1; + network = list("SS13") + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bTK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bTL" = ( +/obj/machinery/light, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bTM" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/crew_quarters/bar) +"bTN" = ( +/obj/structure/table/wood/poker, +/obj/item/weapon/deck, +/turf/open/floor/carpet, +/area/crew_quarters/bar) +"bTO" = ( +/obj/structure/table/wood/poker, +/obj/item/toy/cards/deck{ + pixel_x = 2 + }, +/obj/item/weapon/coin/silver, +/turf/open/floor/carpet, +/area/crew_quarters/bar) +"bTP" = ( +/obj/machinery/camera{ + c_tag = "Bar South 2"; + dir = 1; + network = list("SS13") + }, +/turf/open/floor/carpet, +/area/crew_quarters/bar) +"bTQ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/carpet, +/area/crew_quarters/bar) +"bTR" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/turf/open/floor/carpet, +/area/crew_quarters/bar) +"bTS" = ( +/obj/structure/chair/comfy/brown{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/crew_quarters/bar) +"bTT" = ( +/obj/structure/chair/comfy/beige{ + dir = 1; + icon_state = "comfychair" + }, +/turf/open/floor/carpet, +/area/crew_quarters/bar) +"bTU" = ( +/obj/machinery/door/airlock/maintenance, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bTV" = ( +/obj/structure/girder/displaced, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bTW" = ( +/obj/item/weapon/vending_refill/boozeomat, +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bTX" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/storage/tools) +"bTY" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Auxiliary Tool Storage"; + req_access_txt = "12" + }, +/turf/open/floor/plasteel, +/area/storage/tools) +"bTZ" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/storage/tools) +"bUa" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bUb" = ( +/obj/machinery/power/apc{ + auto_name = 1; + dir = 2; + name = "Autoname APC South"; + pixel_x = 1; + pixel_y = -24 + }, +/obj/structure/cable/green, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bUc" = ( +/obj/structure/rack, +/obj/item/stack/sheet/metal{ + amount = 2 + }, +/obj/item/weapon/pen/invisible, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bUd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Central Hallway South 1"; + dir = 8; + network = list("SS13"); + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warning/corner{ + tag = "icon-warningcorner (WEST)"; + dir = 8 + }, +/area/hallway/primary/central) +"bUe" = ( +/obj/structure/rack, +/obj/item/weapon/tank/internals/oxygen/yellow, +/obj/item/weapon/tank/internals/oxygen/red, +/obj/item/weapon/tank/internals/oxygen, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (NORTHEAST)"; + dir = 5 + }, +/area/teleporter) +"bUf" = ( +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (SOUTHWEST)"; + dir = 10 + }, +/area/teleporter) +"bUg" = ( +/obj/structure/cable/blue, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 2; + name = "Autoname APC South"; + pixel_x = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/black, +/area/teleporter) +"bUh" = ( +/turf/open/floor/plasteel/darkblue/corner{ + tag = "icon-darkbluecorners" + }, +/area/teleporter) +"bUi" = ( +/turf/open/floor/plasteel/darkblue/side{ + tag = "icon-darkblue" + }, +/area/teleporter) +"bUj" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bUk" = ( +/obj/structure/cable/blue{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/light_switch{ + pixel_y = -24; + tag = "s" + }, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bUl" = ( +/obj/structure/chair/stool, +/obj/structure/cable/blue{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 2; + name = "Autoname APC South"; + pixel_x = 1; + pixel_y = -24 + }, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bUm" = ( +/obj/machinery/computer/arcade, +/turf/open/floor/wood, +/area/crew_quarters/captain) +"bUn" = ( +/turf/closed/wall, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bUo" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bUp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"bUq" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fore) +"bUr" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Head of Security's Desk"; + departmentType = 5; + name = "Head of Security RC"; + pixel_x = -30; + pixel_y = 0 + }, +/obj/machinery/suit_storage_unit/hos, +/turf/open/floor/carpet, +/area/security/hos) +"bUs" = ( +/obj/machinery/computer/card/minor/hos, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/carpet, +/area/security/hos) +"bUt" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/obj/machinery/computer/security{ + network = list("SS13","Brig","Prison") + }, +/turf/open/floor/carpet, +/area/security/hos) +"bUu" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/computer/secure_data, +/turf/open/floor/carpet, +/area/security/hos) +"bUv" = ( +/obj/structure/closet/secure_closet/hos, +/obj/item/weapon/bedsheet/hos, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/item/weapon/reagent_containers/food/drinks/bottle/cognac, +/obj/machinery/newscaster/security_unit{ + pixel_x = 32; + pixel_y = 0; + tag = "e" + }, +/obj/item/weapon/storage/secure/briefcase{ + pixel_x = -2 + }, +/turf/open/floor/carpet, +/area/security/hos) +"bUw" = ( +/obj/machinery/door/airlock/external{ + name = "Escape Pod Three"; + req_access_txt = "0" + }, +/turf/open/floor/plating, +/area/security/prison) +"bUx" = ( +/obj/structure/sign/pods, +/turf/closed/wall, +/area/security/prison) +"bUy" = ( +/obj/machinery/computer/communications, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"bUz" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"bUA" = ( +/obj/machinery/button/flasher{ + id = "cockpit_flasher"; + pixel_x = -6; + pixel_y = 24 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"bUB" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = 24 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"bUC" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"bUD" = ( +/obj/machinery/computer/crew, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"bUE" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/chapel/main) +"bUF" = ( +/obj/structure/table/glass, +/obj/item/weapon/reagent_containers/food/snacks/grown/poppy, +/turf/open/floor/plasteel/chapel{ + tag = "icon-chapel (NORTHWEST)"; + dir = 9 + }, +/area/chapel/main) +"bUG" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/chapel{ + tag = "icon-chapel (NORTHEAST)"; + dir = 5 + }, +/area/chapel/main) +"bUH" = ( +/turf/open/floor/plasteel/chapel{ + tag = "icon-chapel (NORTHWEST)"; + dir = 9 + }, +/area/chapel/main) +"bUI" = ( +/turf/closed/wall, +/area/chapel/main) +"bUJ" = ( +/obj/item/trash/can, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bUK" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/glass{ + name = "Escape Waiting Area" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bUL" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/glass{ + name = "Escape Waiting Area" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bUM" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock/glass{ + name = "Escape Waiting Area" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bUN" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint) +"bUO" = ( +/obj/machinery/door/poddoor/shutters{ + id = "stationawaygate"; + name = "Gateway Access Shutters" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/engine, +/area/gateway) +"bUP" = ( +/obj/machinery/door/poddoor/shutters{ + id = "stationawaygate"; + name = "Gateway Access Shutters" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/engine, +/area/gateway) +"bUQ" = ( +/obj/machinery/door/poddoor/shutters{ + id = "stationawaygate"; + name = "Gateway Access Shutters" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/gateway) +"bUR" = ( +/obj/machinery/door/poddoor/shutters{ + id = "stationawaygate"; + name = "Gateway Access Shutters" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/engine, +/area/gateway) +"bUS" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bUT" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + dir = 5 + }, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bUU" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + dir = 5 + }, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bUV" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + dir = 5 + }, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bUW" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + dir = 5 + }, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bUX" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bUY" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Bar" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"bUZ" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (NORTH)"; + dir = 1 + }, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bVa" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (EAST)"; + dir = 4 + }, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bVb" = ( +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bVc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (NORTH)"; + dir = 1 + }, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bVd" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (EAST)"; + dir = 4 + }, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bVe" = ( +/obj/machinery/vending/cola, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + dir = 5 + }, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bVf" = ( +/obj/machinery/vending/snack, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + dir = 5 + }, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bVg" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + dir = 5 + }, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bVh" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bVi" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bVj" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bVk" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Teleport Access"; + req_access_txt = "17" + }, +/turf/open/floor/plasteel/darkblue, +/area/teleporter) +"bVl" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + dir = 5 + }, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bVm" = ( +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + dir = 5 + }, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bVn" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + dir = 5 + }, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bVo" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 4 + }, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bVp" = ( +/turf/open/floor/plasteel/blue/side{ + dir = 1 + }, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bVq" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 1 + }, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bVr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bVs" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fore) +"bVt" = ( +/turf/closed/wall, +/area/security/armory) +"bVu" = ( +/turf/open/space{ + desc = "An excellent spot for bombs." + }, +/area/space) +"bVv" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "hosspace"; + name = "space shutters" + }, +/turf/open/floor/plating, +/area/security/hos) +"bVw" = ( +/obj/machinery/door/airlock/external{ + name = "Security External Airlock"; + req_access_txt = "63" + }, +/turf/open/floor/plating, +/area/security/prison) +"bVx" = ( +/turf/open/floor/plating, +/area/security/prison) +"bVy" = ( +/obj/structure/shuttle/engine/propulsion/burst{ + dir = 4 + }, +/turf/closed/wall/mineral/titanium, +/area/shuttle/pod_3) +"bVz" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/pod_3) +"bVA" = ( +/obj/structure/cable/yellow{ + tag = "icon-2-6"; + icon_state = "2-6"; + d1 = 4; + d2 = 8 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bVB" = ( +/obj/machinery/computer/security, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"bVC" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"bVD" = ( +/obj/machinery/computer/atmos_alert, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"bVE" = ( +/obj/structure/table/glass, +/obj/item/weapon/reagent_containers/food/snacks/grown/harebell, +/turf/open/floor/plasteel/chapel{ + tag = "icon-chapel (SOUTHWEST)"; + dir = 10 + }, +/area/chapel/main) +"bVF" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/chapel{ + tag = "icon-chapel (SOUTHEAST)"; + dir = 6 + }, +/area/chapel/main) +"bVG" = ( +/turf/open/floor/plasteel/chapel{ + tag = "icon-chapel (SOUTHWEST)"; + dir = 10 + }, +/area/chapel/main) +"bVH" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_x = 26; + pixel_y = -2; + tag = "EAST" + }, +/turf/open/floor/plasteel/chapel{ + tag = "icon-chapel (SOUTHEAST)"; + dir = 6 + }, +/area/chapel/main) +"bVI" = ( +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bVJ" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bVK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bVL" = ( +/obj/structure/sign/directions/medical{ + dir = 1; + icon_state = "direction_med"; + pixel_x = 32; + pixel_y = 40; + tag = "icon-direction_med (NORTH)" + }, +/obj/structure/sign/directions/security{ + dir = 4; + icon_state = "direction_sec"; + pixel_x = 32; + pixel_y = 32; + tag = "icon-direction_sec (EAST)" + }, +/obj/structure/sign/directions/science{ + dir = 4; + icon_state = "direction_sci"; + pixel_x = 32; + pixel_y = 24; + tag = "icon-direction_sci (EAST)" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bVM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bVN" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (EAST)"; + dir = 4 + }, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bVO" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bVP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bVQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (NORTH)"; + dir = 1 + }, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bVR" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bVS" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bVT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Aft Port Hallway West 2"; + network = list("SS13") + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bVU" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bVV" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bVW" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/warning/corner{ + tag = "icon-warningcorner (WEST)"; + dir = 8 + }, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bVX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (NORTH)"; + dir = 1 + }, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bVY" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (NORTH)"; + dir = 1 + }, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bVZ" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (NORTH)"; + dir = 1 + }, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bWa" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (NORTH)"; + dir = 1 + }, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bWb" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (NORTH)"; + dir = 1 + }, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bWc" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 4 + }, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bWd" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bWe" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + tag = "icon-neutral (NORTH)"; + dir = 1 + }, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bWf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bWg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bWh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/newscaster{ + pixel_y = 32; + tag = "n" + }, +/obj/machinery/camera{ + c_tag = "Aft Port Hallway"; + network = list("SS13") + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bWi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (EAST)"; + dir = 4 + }, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bWj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bWk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (NORTH)"; + dir = 1 + }, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bWl" = ( +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bWm" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bWn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bWo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Aft Port Hallway East 2"; + network = list("SS13") + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bWp" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = 30; + tag = "n" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bWq" = ( +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bWr" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bWs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bWt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Central Hallway South 3"; + network = list("SS13") + }, +/obj/structure/sign/map/left/dream{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bWu" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bWv" = ( +/obj/structure/sign/directions/medical{ + dir = 1; + icon_state = "direction_med"; + pixel_x = -32; + pixel_y = 32; + tag = "icon-direction_med (NORTH)" + }, +/obj/structure/sign/directions/science{ + dir = 8; + icon_state = "direction_sci"; + pixel_x = -32; + pixel_y = 24; + tag = "icon-direction_sci (WEST)" + }, +/obj/structure/sign/directions/evac{ + dir = 1; + icon_state = "direction_evac"; + pixel_x = -32; + pixel_y = 40; + tag = "icon-direction_evac (NORTH)" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bWw" = ( +/obj/structure/sign/directions/security{ + dir = 1; + icon_state = "direction_sec"; + pixel_x = 32; + pixel_y = 32; + tag = "icon-direction_sec (NORTH)" + }, +/obj/structure/sign/directions/engineering{ + dir = 1; + icon_state = "direction_eng"; + pixel_x = 32; + pixel_y = 24; + tag = "icon-direction_eng (NORTH)" + }, +/obj/structure/sign/directions{ + dir = 4; + icon_state = "direction_supply"; + name = "cargo bay"; + pixel_x = 32; + pixel_y = 40; + tag = "icon-direction_supply" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bWx" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bWy" = ( +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bWz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = 30; + tag = "n" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bWA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Central Hallway South 2"; + network = list("SS13") + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bWB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"bWC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 1 + }, +/area/hallway/primary/central) +"bWD" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/glass{ + name = "Central Access" + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"bWE" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + tag = "icon-neutral (NORTH)"; + dir = 1 + }, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bWF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + tag = "icon-neutral (NORTH)"; + dir = 1 + }, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bWG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bWH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bWI" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bWJ" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -26; + pixel_y = 28 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bWK" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bWL" = ( +/obj/machinery/airalarm{ + pixel_x = 32; + pixel_y = 23 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bWM" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bWN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bWO" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bWP" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bWQ" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = -32; + pixel_y = 0 + }, +/obj/machinery/camera{ + c_tag = "Escape Pod 3"; + dir = 4; + network = list("SS13","Brig") + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/security/prison) +"bWR" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Escape Pod Airlock" + }, +/obj/docking_port/mobile/pod{ + dir = 4; + id = "pod3"; + name = "escape pod 3" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_3) +"bWS" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + pixel_y = 25 + }, +/obj/item/weapon/storage/pod{ + pixel_x = 6; + pixel_y = -26 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_3) +"bWT" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/status_display{ + density = 0; + layer = 3; + pixel_x = 0; + pixel_y = 32 + }, +/obj/machinery/computer/shuttle/pod{ + pixel_y = -32; + possible_destinations = "pod_asteroid3"; + shuttleId = "pod3" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_3) +"bWU" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/pod_3) +"bWV" = ( +/obj/docking_port/stationary/random{ + dir = 4; + id = "pod_asteroid3"; + name = "asteroid" + }, +/turf/open/space, +/area/space) +"bWW" = ( +/turf/open/floor/mineral/titanium, +/turf/closed/wall/mineral/titanium/interior, +/area/shuttle/escape) +"bWX" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/weapon/crowbar, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"bWY" = ( +/obj/structure/chair, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"bWZ" = ( +/obj/machinery/computer/emergency_shuttle, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"bXa" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/fire, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"bXb" = ( +/obj/structure/cable/green{ + tag = "icon-4-10"; + icon_state = "4-10" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bXc" = ( +/obj/structure/table/glass, +/obj/item/weapon/reagent_containers/food/snacks/grown/poppy, +/obj/item/weapon/reagent_containers/food/snacks/grown/poppy, +/obj/item/weapon/reagent_containers/food/snacks/grown/harebell, +/turf/open/floor/plasteel/chapel{ + tag = "icon-chapel (NORTHWEST)"; + dir = 9 + }, +/area/chapel/main) +"bXd" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/chapel{ + tag = "icon-chapel (NORTHEAST)"; + dir = 5 + }, +/area/chapel/main) +"bXe" = ( +/obj/structure/closet/body_bag, +/obj/item/weapon/tank/internals/plasmaman/belt/full{ + name = "plasma tank" + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bXf" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23; + pixel_y = 0 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bXg" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=HOP"; + location = "CHE" + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bXh" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bXi" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bXj" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bXk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/sortjunction{ + dir = 4; + icon_state = "pipe-j1s"; + sortType = 17 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bXl" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bXm" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bXn" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bXo" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bXp" = ( +/obj/structure/disposalpipe/sortjunction{ + dir = 4; + icon_state = "pipe-j2s"; + sortType = 16 + }, +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bXq" = ( +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bXr" = ( +/obj/structure/disposalpipe/junction{ + tag = "icon-pipe-j2 (NORTH)"; + icon_state = "pipe-j2"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bXs" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bXt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bXu" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bXv" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bXw" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bXx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-j2"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bXy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/sortjunction{ + dir = 4; + icon_state = "pipe-j1s"; + sortType = 22 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bXz" = ( +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-j1"; + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bXA" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 4; + icon_state = "pipe-j2s"; + sortType = 19 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bXB" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/glass{ + name = "Central Access" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bXC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bXD" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bXE" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel{ + icon_state = "L1" + }, +/area/hallway/primary/central) +"bXF" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel{ + icon_state = "L3" + }, +/area/hallway/primary/central) +"bXG" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=Stbd"; + location = "HOP" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel{ + icon_state = "L5" + }, +/area/hallway/primary/central) +"bXH" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plasteel{ + icon_state = "L7" + }, +/area/hallway/primary/central) +"bXI" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=Dorm"; + location = "HOP2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel{ + icon_state = "L9" + }, +/area/hallway/primary/central) +"bXJ" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel{ + icon_state = "L11" + }, +/area/hallway/primary/central) +"bXK" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel{ + desc = ""; + icon_state = "L13"; + name = "floor" + }, +/area/hallway/primary/central) +"bXL" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bXM" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bXN" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bXO" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bXP" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bXQ" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bXR" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bXS" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=HOP2"; + location = "Stbd" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bXT" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bXU" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bXV" = ( +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/sortjunction{ + dir = 1; + icon_state = "pipe-j1s"; + sortType = 1; + tag = "icon-pipe-j1s (NORTH)" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bXW" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bXX" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance{ + glass = 1; + name = "maintenance access"; + opacity = 0; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/floorgrime, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bXY" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bXZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bYa" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/floorgrime, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bYb" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bYc" = ( +/obj/machinery/power/apc{ + auto_name = 0; + dir = 1; + name = "Aft Starboard Hallway APC"; + pixel_x = 0; + pixel_y = 24 + }, +/obj/machinery/camera{ + c_tag = "Armory Aft Hallway"; + network = list("SS13","Brig") + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/floorgrime, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bYd" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bYe" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bYf" = ( +/turf/open/floor/plasteel/floorgrime, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bYg" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/security/prison) +"bYh" = ( +/obj/machinery/door/airlock/external{ + name = "Engineering External Access"; + req_access = null; + req_access_txt = "10;13" + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + tag = "icon-5-10"; + icon_state = "5-10"; + d1 = 4; + d2 = 8 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bYi" = ( +/obj/structure/grille, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bYj" = ( +/obj/structure/table/glass, +/obj/item/weapon/reagent_containers/food/snacks/grown/poppy, +/turf/open/floor/plasteel/chapel{ + tag = "icon-chapel (SOUTHWEST)"; + dir = 10 + }, +/area/chapel/main) +"bYk" = ( +/obj/item/clothing/suit/radiation, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bYl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bYm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bYn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bYo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bYp" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bYq" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (WEST)"; + dir = 8 + }, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bYr" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bYs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bYt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bYu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = -30; + tag = "s" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bYv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/power/apc{ + auto_name = 0; + dir = 2; + name = "Aft Port Hallway APC"; + pixel_x = 1; + pixel_y = -24 + }, +/obj/structure/cable/green, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bYw" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bYx" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/corner, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bYy" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/warning, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bYz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bYA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bYB" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel/warning, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bYC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 1 + }, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bYD" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bYE" = ( +/obj/machinery/camera{ + c_tag = "Aft Port Hallway West 1"; + dir = 1; + network = list("SS13") + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bYF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (WEST)"; + dir = 8 + }, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bYG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bYH" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = -30; + tag = "s" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bYI" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bYJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bYK" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bYL" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/machinery/light, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (WEST)"; + dir = 8 + }, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bYM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bYN" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (WEST)"; + dir = 8 + }, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bYO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bYP" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Aft Port Hallway East 1"; + dir = 1; + network = list("SS13") + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bYQ" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bYR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/purple/corner, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bYS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/purple/corner{ + tag = "icon-purplecorner (WEST)"; + dir = 8 + }, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bYT" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/purple/side, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bYU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/purple/side, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bYV" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/purple/side, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bYW" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel/purple/side, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bYX" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/purple/side, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bYY" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/purple/corner{ + tag = "icon-purplecorner (WEST)"; + dir = 8 + }, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bYZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bZa" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bZb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bZc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + icon_state = "L2" + }, +/area/hallway/primary/central) +"bZd" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel{ + icon_state = "L4" + }, +/area/hallway/primary/central) +"bZe" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + icon_state = "L6" + }, +/area/hallway/primary/central) +"bZf" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + icon_state = "L8" + }, +/area/hallway/primary/central) +"bZg" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel{ + icon_state = "L10" + }, +/area/hallway/primary/central) +"bZh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel{ + icon_state = "L12" + }, +/area/hallway/primary/central) +"bZi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + desc = ""; + icon_state = "L14" + }, +/area/hallway/primary/central) +"bZj" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bZk" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bZl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bZm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/brown/corner, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bZn" = ( +/turf/open/floor/plasteel/brown, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warningline, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bZo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/brown/corner{ + tag = "icon-browncorner (WEST)"; + dir = 8 + }, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bZp" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/brown/corner, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bZq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = -30; + tag = "s" + }, +/turf/open/floor/plasteel/brown/corner, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bZr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/light, +/obj/machinery/camera{ + c_tag = "Aft Starboard Hallway West"; + dir = 1; + network = list("SS13") + }, +/turf/open/floor/plasteel/brown/corner, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bZs" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/brown, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bZt" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/brown, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bZu" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/brown/corner{ + tag = "icon-browncorner (WEST)"; + dir = 8 + }, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bZv" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = -30; + tag = "s" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/brown/corner{ + tag = "icon-browncorner (WEST)"; + dir = 8 + }, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bZw" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/brown/corner{ + tag = "icon-browncorner (WEST)"; + dir = 8 + }, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bZx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/brown/corner{ + tag = "icon-browncorner (WEST)"; + dir = 8 + }, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bZy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bZz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bZA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bZB" = ( +/obj/machinery/camera{ + c_tag = "Aft Starboard Hallway East"; + dir = 1; + network = list("SS13") + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/machinery/light/small, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bZC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bZD" = ( +/obj/machinery/light/small, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/floorgrime, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bZE" = ( +/turf/open/floor/plasteel, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bZF" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/floorgrime, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bZG" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/floorgrime, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"bZH" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/button/massdriver{ + id = "chapelgun"; + name = "Chapel Mass Driver"; + pixel_x = -25 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"bZI" = ( +/turf/open/floor/plasteel/black, +/area/chapel/main) +"bZJ" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"bZK" = ( +/obj/machinery/light_switch{ + pixel_x = 24; + tag = "e" + }, +/obj/machinery/camera{ + c_tag = "Chapel Funeral Parlor"; + dir = 8; + network = list("SS13"); + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"bZL" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/chapel/main) +"bZM" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Chapel" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/carpet, +/area/chapel/main) +"bZN" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Chapel" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet, +/area/chapel/main) +"bZO" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"bZP" = ( +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + dir = 5 + }, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bZQ" = ( +/obj/structure/closet/emcloset, +/obj/machinery/light, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (NORTHEAST)"; + dir = 5 + }, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"bZR" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + icon_state = "closed"; + lockdownbyai = 0; + locked = 0; + name = "Gateway Storage"; + req_access_txt = "62" + }, +/turf/open/floor/plasteel/darkblue, +/area/gateway) +"bZS" = ( +/turf/open/floor/plasteel/darkblue, +/obj/machinery/door/poddoor/shutters{ + id = "stationawaygate"; + name = "Gateway Access Shutters" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (NORTH)"; + dir = 1 + }, +/area/gateway) +"bZT" = ( +/turf/open/floor/plasteel/darkblue, +/obj/machinery/door/poddoor/shutters{ + id = "stationawaygate"; + name = "Gateway Access Shutters" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (NORTH)"; + dir = 1 + }, +/area/gateway) +"bZU" = ( +/turf/open/floor/plasteel/darkblue, +/obj/machinery/door/poddoor/shutters{ + id = "stationawaygate"; + name = "Gateway Access Shutters" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (NORTH)"; + dir = 1 + }, +/area/gateway) +"bZV" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"bZW" = ( +/turf/closed/wall, +/area/storage/primary) +"bZX" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/storage/primary) +"bZY" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Primary Tool Storage" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral, +/area/storage/primary) +"bZZ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Primary Tool Storage" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/storage/primary) +"caa" = ( +/turf/closed/wall, +/area/crew_quarters/sleep) +"cab" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Dormitory" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"cac" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/crew_quarters/sleep) +"cad" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Dormitory" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"cae" = ( +/turf/closed/wall, +/area/janitor) +"caf" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Custodial Closet"; + req_access_txt = "26" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/noslip, +/area/janitor) +"cag" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/janitor) +"cah" = ( +/obj/machinery/door/airlock/maintenance, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cai" = ( +/turf/open/floor/plasteel/purple/side{ + dir = 10 + }, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"caj" = ( +/turf/open/floor/plasteel/purple/side, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"cak" = ( +/turf/open/floor/plasteel/purple/side{ + dir = 6 + }, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"cal" = ( +/obj/structure/sign/science, +/turf/closed/wall/r_wall, +/area/toxins/lab) +"cam" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/medical/research{ + name = "Research Division" + }) +"can" = ( +/obj/machinery/door/airlock/research{ + name = "Research Division Access"; + req_access_txt = "47" + }, +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/purple, +/area/medical/research{ + name = "Research Division" + }) +"cao" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/medical/research{ + name = "Research Division" + }) +"cap" = ( +/obj/structure/sign/securearea, +/turf/closed/wall/r_wall, +/area/assembly/robotics) +"caq" = ( +/turf/open/floor/plasteel/loadingarea{ + tag = "icon-loadingarea (NORTH)"; + dir = 1 + }, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"car" = ( +/obj/machinery/button/door{ + dir = 2; + id = "Skynet_launch"; + name = "Mech Bay Door Control"; + pixel_x = 26; + pixel_y = -24; + req_one_access_txt = "29" + }, +/turf/open/floor/plasteel/loadingarea{ + tag = "icon-loadingarea (NORTH)"; + dir = 1 + }, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"cas" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"cat" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cau" = ( +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/warning, +/area/hallway/primary/central) +"cav" = ( +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning, +/area/hallway/primary/central) +"caw" = ( +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/warning, +/area/hallway/primary/central) +"cax" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light/small, +/turf/open/floor/plasteel/warning, +/area/hallway/primary/central) +"cay" = ( +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning, +/area/hallway/primary/central) +"caz" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light/small, +/turf/open/floor/plasteel/warning, +/area/hallway/primary/central) +"caA" = ( +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/warning, +/area/hallway/primary/central) +"caB" = ( +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning, +/area/hallway/primary/central) +"caC" = ( +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/warning, +/area/hallway/primary/central) +"caD" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"caE" = ( +/turf/closed/wall, +/area/quartermaster/office) +"caF" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/quartermaster/office) +"caG" = ( +/obj/machinery/door/firedoor, +/obj/structure/plasticflaps, +/obj/machinery/conveyor{ + dir = 1; + id = "packageExternal" + }, +/turf/open/floor/plasteel/bot{ + dir = 1 + }, +/area/quartermaster/office) +"caH" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/quartermaster/office) +"caI" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/window/westleft{ + dir = 2; + name = "Delivery Desk"; + req_access_txt = "50" + }, +/turf/open/floor/plasteel/bot{ + dir = 1 + }, +/area/quartermaster/office) +"caJ" = ( +/obj/machinery/status_display{ + density = 0; + pixel_y = 2; + supply_display = 1 + }, +/turf/closed/wall, +/area/quartermaster/office) +"caK" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/quartermaster/office) +"caL" = ( +/obj/structure/cable/orange{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/brown/corner{ + tag = "icon-browncorner (NORTH)"; + dir = 1 + }, +/area/quartermaster/office) +"caM" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/brown/corner{ + tag = "icon-browncorner (EAST)"; + dir = 4 + }, +/area/quartermaster/office) +"caN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"caO" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"caP" = ( +/turf/closed/wall/rust, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"caQ" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"caR" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/hallway/primary/starboard{ + name = "Aft Starboard Hallway" + }) +"caS" = ( +/turf/closed/wall, +/area/maintenance/disposal) +"caT" = ( +/obj/machinery/door/poddoor{ + id = "chapelgun"; + name = "Chapel Launcher Door" + }, +/turf/open/floor/plating, +/area/chapel/main) +"caU" = ( +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/chapel/main) +"caV" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/chapel/main) +"caW" = ( +/obj/machinery/mass_driver{ + dir = 8; + id = "chapelgun" + }, +/obj/machinery/door/window/southleft{ + dir = 4; + name = "Mass Driver Door"; + req_access_txt = "22" + }, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/chapel/main) +"caX" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"caY" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"caZ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"cba" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"cbb" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/centcom{ + name = "Funeral Parlour"; + opacity = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"cbc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"cbd" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"cbe" = ( +/obj/structure/table/wood, +/obj/item/candle, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"cbf" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"cbg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/carpet, +/area/chapel/main) +"cbh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet, +/area/chapel/main) +"cbi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fsmaint) +"cbj" = ( +/turf/closed/wall, +/area/storage/emergency2) +"cbk" = ( +/obj/machinery/door/airlock{ + name = "Port Emergency Storage"; + req_access_txt = "0" + }, +/turf/open/floor/plating, +/area/storage/emergency2) +"cbl" = ( +/obj/structure/cable/green{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 8; + name = "Autoname APC West"; + pixel_x = -25; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/storage/emergency2) +"cbm" = ( +/obj/machinery/atmospherics/components/unary/tank/air, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cbn" = ( +/obj/item/weapon/reagent_containers/glass/bucket, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cbo" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fsmaint) +"cbp" = ( +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (NORTH)"; + dir = 1 + }, +/area/gateway) +"cbq" = ( +/obj/machinery/button/door{ + id = "stationawaygate"; + name = "Gateway Access Shutter Control"; + pixel_x = 24; + pixel_y = 24; + req_access_txt = "62" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (NORTH)"; + dir = 1 + }, +/area/gateway) +"cbr" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (NORTHWEST)"; + dir = 9 + }, +/area/gateway) +"cbs" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cbt" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (EAST)"; + dir = 4 + }, +/area/storage/primary) +"cbu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"cbv" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (NORTH)"; + dir = 1 + }, +/area/storage/primary) +"cbw" = ( +/obj/structure/table, +/obj/item/device/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/weapon/crowbar, +/obj/item/clothing/gloves/color/fyellow, +/obj/item/weapon/storage/toolbox/electrical{ + pixel_x = 1; + pixel_y = -1 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"cbx" = ( +/obj/structure/table, +/obj/item/weapon/storage/belt/utility, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/plasteel, +/area/storage/primary) +"cby" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (EAST)"; + dir = 4 + }, +/area/storage/primary) +"cbz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/storage/primary) +"cbA" = ( +/obj/structure/table, +/obj/item/stack/packageWrap, +/obj/item/stack/packageWrap, +/obj/item/stack/packageWrap, +/obj/item/stack/packageWrap, +/obj/item/weapon/crowbar, +/obj/item/weapon/weldingtool, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (NORTH)"; + dir = 1 + }, +/area/storage/primary) +"cbB" = ( +/obj/structure/bed, +/obj/structure/cable/green{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 1; + name = "Autoname APC North"; + pixel_x = 0; + pixel_y = 24 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/crew_quarters/sleep) +"cbC" = ( +/obj/structure/table/wood, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"cbD" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/structure/bed, +/obj/item/weapon/bedsheet/brown, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"cbE" = ( +/obj/structure/closet/secure_closet/personal, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "Dorm1"; + name = "Dorm Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 25; + pixel_y = 0; + req_access_txt = "0"; + specialfunctions = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"cbF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/sleep) +"cbG" = ( +/obj/structure/closet/wardrobe/pjs, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (WEST)"; + dir = 8 + }, +/area/crew_quarters/sleep) +"cbH" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"cbI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"cbJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"cbK" = ( +/obj/structure/closet/wardrobe/pjs, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/crew_quarters/sleep) +"cbL" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "Dorm5"; + name = "Cabin Bolt Control"; + normaldoorcontrol = 1; + pixel_x = -25; + pixel_y = 0; + req_access_txt = "0"; + specialfunctions = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"cbM" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/structure/bed, +/obj/item/weapon/bedsheet/orange, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"cbN" = ( +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"cbO" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/noslip, +/area/janitor) +"cbP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/noslip, +/area/janitor) +"cbQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/camera{ + c_tag = "Custodial Closet"; + network = list("SS13") + }, +/obj/item/weapon/reagent_containers/glass/bucket, +/obj/item/weapon/mop, +/turf/open/floor/noslip, +/area/janitor) +"cbR" = ( +/obj/structure/janitorialcart, +/obj/item/weapon/restraints/legcuffs/beartrap, +/obj/item/weapon/restraints/legcuffs/beartrap, +/obj/item/weapon/storage/box/mousetraps, +/obj/item/weapon/storage/box/mousetraps, +/turf/open/floor/noslip, +/area/janitor) +"cbS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cbT" = ( +/obj/structure/mopbucket, +/obj/item/weapon/mop, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cbU" = ( +/turf/closed/wall/r_wall, +/area/toxins/lab) +"cbV" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rnd"; + name = "research lab shutters" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/toxins/lab) +"cbW" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rnd"; + name = "research lab shutters" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/window/southright{ + name = "Research and Development Desk"; + req_access_txt = "7" + }, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7; + tag = "every single paper bin is edited to this" + }, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"cbX" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/preopen{ + id = "Biohazard"; + name = "biohazard containment door" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (EAST)"; + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"cbY" = ( +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/preopen{ + id = "Biohazard"; + name = "biohazard containment door" + }, +/turf/open/floor/plasteel/whitepurple, +/area/medical/research{ + name = "Research Division" + }) +"cbZ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/preopen{ + id = "Biohazard"; + name = "biohazard containment door" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (WEST)"; + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"cca" = ( +/turf/closed/wall/r_wall, +/area/assembly/robotics) +"ccb" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "robotics"; + name = "robotics lab shutters" + }, +/turf/open/floor/plating, +/area/assembly/robotics) +"ccc" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "robotics"; + name = "robotics lab shutters" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/window/eastright{ + base_state = "left"; + dir = 2; + icon_state = "left"; + name = "Robotics Desk"; + req_access_txt = "29" + }, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7; + tag = "every single paper bin is edited to this" + }, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"ccd" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research{ + name = "Mech Bay"; + req_access_txt = "29"; + req_one_access_txt = "0" + }, +/turf/open/floor/plasteel/black, +/area/assembly/chargebay) +"cce" = ( +/obj/machinery/door/poddoor/shutters{ + id = "Skynet_launch"; + name = "Mech Bay" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/darkwarning, +/area/assembly/chargebay) +"ccf" = ( +/turf/closed/wall, +/area/assembly/chargebay) +"ccg" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cch" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/green, +/turf/open/floor/plating, +/area/hallway/primary/central) +"cci" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/hallway/primary/central) +"ccj" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/black, +/area/hallway/primary/central) +"cck" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/hallway/primary/central) +"ccl" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"ccm" = ( +/obj/machinery/disposal/deliveryChute, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plating, +/area/quartermaster/office) +"ccn" = ( +/obj/structure/table, +/obj/item/device/destTagger, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (EAST)"; + dir = 4 + }, +/area/quartermaster/office) +"cco" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "packageExternal" + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"ccp" = ( +/obj/machinery/conveyor_switch/oneway{ + convdir = -1; + id = "packageExternal" + }, +/turf/open/floor/plasteel/brown{ + dir = 9 + }, +/area/quartermaster/office) +"ccq" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTH)"; + dir = 1 + }, +/area/quartermaster/office) +"ccr" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7; + tag = "every single paper bin is edited to this" + }, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTH)"; + dir = 1 + }, +/area/quartermaster/office) +"ccs" = ( +/obj/structure/table, +/obj/item/weapon/storage/box, +/obj/item/weapon/storage/box, +/obj/item/weapon/storage/box, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cct" = ( +/obj/machinery/light_switch{ + pixel_y = 24; + tag = "n" + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"ccu" = ( +/obj/structure/table, +/obj/item/weapon/stamp, +/obj/machinery/camera{ + c_tag = "Cargo Office"; + network = list("SS13") + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"ccv" = ( +/obj/structure/table, +/obj/item/weapon/stamp/denied, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/computer/stockexchange, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"ccw" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/bot{ + dir = 1 + }, +/area/quartermaster/office) +"ccx" = ( +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/structure/chair, +/turf/open/floor/plasteel/bot{ + dir = 1 + }, +/area/quartermaster/office) +"ccy" = ( +/obj/structure/cable/orange{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"ccz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"ccA" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_x = 26; + pixel_y = -2; + tag = "EAST" + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"ccB" = ( +/obj/item/clothing/under/color/rainbow, +/obj/item/clothing/head/soft/rainbow, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"ccC" = ( +/turf/closed/wall, +/area/maintenance/apmaint) +"ccD" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"ccE" = ( +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"ccF" = ( +/obj/machinery/airalarm{ + frequency = 1439; + pixel_y = 23 + }, +/turf/open/floor/plating, +/area/security/main) +"ccG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/chair/stool, +/turf/open/floor/plating, +/area/security/main) +"ccH" = ( +/obj/machinery/atmospherics/components/binary/valve/open{ + tag = "icon-mvalve_map (EAST)"; + icon_state = "mvalve_map"; + dir = 4 + }, +/turf/open/floor/plating/warnplate{ + dir = 9 + }, +/area/security/main) +"ccI" = ( +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 8 + }, +/turf/open/floor/plating/warnplate{ + dir = 5 + }, +/area/security/main) +"ccJ" = ( +/turf/closed/wall/rust, +/area/storage/emergency) +"ccK" = ( +/turf/closed/wall, +/area/storage/emergency) +"ccL" = ( +/obj/machinery/door/airlock{ + name = "Starboard Emergency Storage"; + req_access_txt = "0" + }, +/turf/open/floor/plating, +/area/storage/emergency) +"ccM" = ( +/obj/structure/cable/green{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 8; + name = "Autoname APC West"; + pixel_x = -25; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/storage/emergency) +"ccN" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "garbage" + }, +/obj/structure/disposaloutlet{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/disposal) +"ccO" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "garbage" + }, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2); + name = "random metal material damage spawner" + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/disposal) +"ccP" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "garbage" + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/disposal) +"ccQ" = ( +/obj/machinery/recycler, +/obj/machinery/conveyor{ + dir = 8; + id = "garbage" + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/disposal) +"ccR" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "garbage" + }, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"ccS" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "garbage" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"ccT" = ( +/obj/machinery/mineral/stacking_unit_console{ + dir = 2; + machinedir = 4; + pixel_y = 32 + }, +/obj/machinery/conveyor{ + dir = 1; + id = "garbage2" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"ccU" = ( +/obj/machinery/mineral/stacking_machine{ + input_dir = 8; + output_dir = 2 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/disposal) +"ccV" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/disposal) +"ccW" = ( +/turf/closed/wall, +/area/chapel/office) +"ccX" = ( +/obj/structure/closet/coffin, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"ccY" = ( +/obj/structure/closet/coffin, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/door/window/eastleft{ + dir = 1; + name = "Coffin Storage"; + req_access_txt = "22" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"ccZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"cda" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/chapel{ + tag = "icon-chapel (NORTHWEST)"; + dir = 9 + }, +/area/chapel/main) +"cdb" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel/chapel{ + tag = "icon-chapel (NORTHEAST)"; + dir = 5 + }, +/area/chapel/main) +"cdc" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/chapel{ + tag = "icon-chapel (NORTHEAST)"; + dir = 5 + }, +/area/chapel/main) +"cdd" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (WEST)"; + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet, +/area/chapel/main) +"cde" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + frequency = 1439; + id_tag = null; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"cdf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cdg" = ( +/turf/open/floor/plating, +/area/storage/emergency2) +"cdh" = ( +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_x = 26; + pixel_y = -2; + tag = "EAST" + }, +/turf/open/floor/plating, +/area/storage/emergency2) +"cdi" = ( +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cdj" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cdk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cdl" = ( +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cdm" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cdn" = ( +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/turf/open/floor/plasteel/black, +/area/gateway) +"cdo" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/gateway) +"cdp" = ( +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plasteel/black, +/area/gateway) +"cdq" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/gateway) +"cdr" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/obj/machinery/light_switch{ + pixel_x = 24; + tag = "e" + }, +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (SOUTHWEST)"; + dir = 10 + }, +/area/gateway) +"cds" = ( +/obj/structure/table, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/item/weapon/wrench, +/obj/item/device/analyzer, +/obj/item/weapon/screwdriver{ + pixel_y = 16 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"cdt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/storage/primary) +"cdu" = ( +/turf/open/floor/plasteel, +/area/storage/primary) +"cdv" = ( +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"cdw" = ( +/obj/structure/table, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/item/weapon/wirecutters, +/obj/item/device/flashlight{ + pixel_x = 1; + pixel_y = 5 + }, +/obj/item/weapon/screwdriver{ + pixel_y = 16 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"cdx" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cdy" = ( +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"cdz" = ( +/obj/machinery/light/small, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 + }, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"cdA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"cdB" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + id_tag = "Dorm1"; + name = "Dorm 1" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/sleep) +"cdC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"cdD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"cdE" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"cdF" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"cdG" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + id_tag = "Dorm5"; + name = "Cabin 1" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/sleep) +"cdH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"cdI" = ( +/obj/machinery/light/small, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + frequency = 1439; + id_tag = null; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"cdJ" = ( +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"cdK" = ( +/obj/structure/closet/jcloset, +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/obj/item/stack/tile/noslip{ + amount = 30 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/noslip, +/area/janitor) +"cdL" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (EAST)"; + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/noslip, +/area/janitor) +"cdM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/noslip, +/area/janitor) +"cdN" = ( +/obj/machinery/disposal/bin, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/noslip, +/area/janitor) +"cdO" = ( +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cdP" = ( +/obj/structure/table/glass, +/obj/item/weapon/reagent_containers/glass/beaker/large{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/reagent_containers/glass/beaker{ + pixel_x = 8; + pixel_y = 2 + }, +/obj/item/weapon/reagent_containers/dropper, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"cdQ" = ( +/obj/machinery/camera{ + c_tag = "Research and Development Lab"; + network = list("SS13","Sci") + }, +/turf/open/floor/plasteel/warnwhite/corner{ + tag = "icon-warnwhitecorner"; + dir = 2 + }, +/area/toxins/lab) +"cdR" = ( +/turf/open/floor/plasteel/warnwhite{ + dir = 2 + }, +/area/toxins/lab) +"cdS" = ( +/obj/effect/landmark/start{ + name = "Scientist" + }, +/obj/structure/chair/office/light{ + dir = 1 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 2 + }, +/area/toxins/lab) +"cdT" = ( +/obj/machinery/button/door{ + dir = 2; + id = "rnd"; + name = "Shutters Control Button"; + pixel_x = 24; + pixel_y = 24; + req_access_txt = "47" + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 2 + }, +/area/toxins/lab) +"cdU" = ( +/turf/open/floor/plasteel/warnwhite/corner{ + dir = 1 + }, +/area/toxins/lab) +"cdV" = ( +/obj/machinery/shower{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (EAST)"; + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"cdW" = ( +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/whitepurple, +/area/medical/research{ + name = "Research Division" + }) +"cdX" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/machinery/shower{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (WEST)"; + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"cdY" = ( +/obj/machinery/r_n_d/circuit_imprinter, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"cdZ" = ( +/obj/structure/table, +/obj/item/weapon/book/manual/robotics_cyborgs{ + pixel_x = 2; + pixel_y = 5 + }, +/obj/item/weapon/storage/belt/utility, +/obj/item/weapon/reagent_containers/glass/beaker/large, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"cea" = ( +/obj/machinery/computer/rdconsole/robotics, +/obj/machinery/button/door{ + dir = 2; + id = "robotics"; + name = "Shutters Control Button"; + pixel_x = -24; + pixel_y = 24; + req_access_txt = "29" + }, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"ceb" = ( +/obj/effect/landmark/start{ + name = "Roboticist" + }, +/obj/structure/chair/office/light{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"cec" = ( +/obj/structure/cable/pink{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"ced" = ( +/obj/machinery/requests_console{ + department = "Robotics"; + departmentType = 2; + name = "Robotics RC"; + pixel_y = 30 + }, +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"cee" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_research{ + name = "Robotics Lab"; + req_access_txt = "29" + }, +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/black, +/area/assembly/robotics) +"cef" = ( +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/darkwarning/corner{ + tag = "icon-warndarkcorners (WEST)"; + dir = 8 + }, +/area/assembly/chargebay) +"ceg" = ( +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (NORTH)"; + dir = 1 + }, +/area/assembly/chargebay) +"ceh" = ( +/obj/structure/cable/pink{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (NORTH)"; + dir = 1 + }, +/area/assembly/chargebay) +"cei" = ( +/obj/machinery/button/door{ + dir = 2; + id = "Skynet_launch"; + name = "Mech Bay Door Control"; + pixel_x = 26; + pixel_y = 24; + req_one_access_txt = "29" + }, +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (NORTH)"; + dir = 1 + }, +/area/assembly/chargebay) +"cej" = ( +/turf/open/floor/plasteel/darkwarning/corner{ + tag = "icon-warndarkcorners (EAST)"; + dir = 4 + }, +/area/assembly/chargebay) +"cek" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Mech Bay Maintenance"; + req_access_txt = "29" + }, +/turf/open/floor/plating, +/area/assembly/chargebay) +"cel" = ( +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cem" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/green{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cen" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/green{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/hallway/primary/central) +"ceo" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/black, +/area/hallway/primary/central) +"cep" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/green{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/hallway/primary/central) +"ceq" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/green{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cer" = ( +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"ces" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "packageSort1" + }, +/turf/open/floor/plating, +/area/quartermaster/office) +"cet" = ( +/obj/structure/table, +/obj/machinery/requests_console{ + department = "Cargo Bay"; + departmentType = 2; + name = "Cargo Bay RC"; + pixel_x = -30; + pixel_y = 0 + }, +/obj/item/stack/wrapping_paper, +/obj/item/stack/wrapping_paper, +/turf/open/floor/plasteel/brown/corner{ + tag = "icon-browncorner (EAST)"; + dir = 4 + }, +/area/quartermaster/office) +"ceu" = ( +/turf/open/floor/plasteel/loadingarea, +/area/quartermaster/office) +"cev" = ( +/turf/open/floor/plasteel/brown/corner{ + tag = "icon-browncorner (NORTH)"; + dir = 1 + }, +/area/quartermaster/office) +"cew" = ( +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cex" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Cargo Technician" + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cey" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/window/westleft{ + name = "Cargo Desk"; + req_access_txt = "50" + }, +/turf/open/floor/plasteel/bot{ + dir = 1 + }, +/area/quartermaster/office) +"cez" = ( +/obj/structure/cable/orange{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"ceA" = ( +/obj/structure/cable/orange{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"ceB" = ( +/obj/structure/cable/orange{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"ceC" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"ceD" = ( +/obj/item/clothing/shoes/sneakers/rainbow, +/obj/item/clothing/gloves/color/rainbow, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"ceE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/apmaint) +"ceF" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"ceG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"ceH" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Distro to Virology"; + on = 1 + }, +/turf/open/floor/plating, +/area/security/main) +"ceI" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/machinery/meter, +/turf/open/floor/plating, +/area/security/main) +"ceJ" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4 + }, +/obj/item/weapon/wrench, +/turf/open/floor/plating/warnplate{ + dir = 10 + }, +/area/security/main) +"ceK" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating/warnplate{ + dir = 6 + }, +/area/security/main) +"ceL" = ( +/turf/open/floor/plating, +/area/storage/emergency) +"ceM" = ( +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_x = 26; + pixel_y = -2; + tag = "EAST" + }, +/turf/open/floor/plating, +/area/storage/emergency) +"ceN" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/apmaint) +"ceO" = ( +/turf/open/floor/plating, +/area/maintenance/disposal) +"ceP" = ( +/obj/machinery/conveyor_switch/oneway{ + convdir = -1; + id = "garbage"; + name = "disposal coveyor" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"ceQ" = ( +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/disposal) +"ceR" = ( +/obj/machinery/conveyor_switch/oneway{ + convdir = -1; + id = "garbage3"; + name = "metal coveyor" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"ceS" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "garbage2" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/disposal) +"ceT" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "garbage3" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"ceU" = ( +/obj/structure/closet/coffin, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"ceV" = ( +/obj/structure/closet/coffin, +/obj/machinery/door/window/eastleft{ + dir = 4; + name = "Coffin Storage"; + req_access_txt = "22" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"ceW" = ( +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = 20; + tag = "NORTH" + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"ceX" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/obj/machinery/light_switch{ + pixel_y = 24; + tag = "n" + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"ceY" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/camera{ + c_tag = "Chapel Office"; + network = list("SS13") + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"ceZ" = ( +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"cfa" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Chapel Office"; + req_access_txt = "22" + }, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"cfb" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/chapel{ + tag = "icon-chapel (SOUTHWEST)"; + dir = 10 + }, +/area/chapel/main) +"cfc" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/chapel{ + tag = "icon-chapel (SOUTHEAST)"; + dir = 6 + }, +/area/chapel/main) +"cfd" = ( +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/chapel/main) +"cfe" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"cff" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/storage/emergency2) +"cfg" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/storage/emergency2) +"cfh" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/storage/emergency2) +"cfi" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/tank/internals/emergency_oxygen, +/obj/item/weapon/tank/internals/emergency_oxygen, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/turf/open/floor/plating, +/area/storage/emergency2) +"cfj" = ( +/turf/closed/wall/rust, +/area/storage/emergency2) +"cfk" = ( +/obj/structure/grille/broken, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cfl" = ( +/obj/machinery/atmospherics/components/binary/valve, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cfm" = ( +/obj/item/weapon/c_tube, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fsmaint) +"cfn" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cfo" = ( +/obj/structure/closet/radiation, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (WEST)"; + dir = 8 + }, +/area/gateway) +"cfp" = ( +/obj/structure/closet/secure_closet/exile, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (WEST)"; + dir = 8 + }, +/area/gateway) +"cfq" = ( +/obj/structure/closet/l3closet/scientist, +/obj/machinery/light, +/obj/machinery/camera{ + c_tag = "Gateway Storage"; + dir = 1; + network = list("SS13") + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = -25; + tag = "SOUTH" + }, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (WEST)"; + dir = 8 + }, +/area/gateway) +"cfr" = ( +/obj/structure/table, +/obj/machinery/recharger, +/obj/item/weapon/paper/pamphlet, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/black, +/area/gateway) +"cfs" = ( +/obj/structure/table, +/obj/item/device/radio/off{ + pixel_y = 6 + }, +/obj/item/device/radio/off{ + pixel_x = 6; + pixel_y = 4 + }, +/obj/item/device/radio/off{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/device/radio/off, +/turf/open/floor/plasteel/black, +/area/gateway) +"cft" = ( +/obj/structure/plasticflaps{ + opacity = 1 + }, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=4"; + dir = 4; + freq = 1400; + location = "Tool Storage" + }, +/turf/open/floor/plasteel/bot{ + dir = 1 + }, +/area/storage/primary) +"cfu" = ( +/turf/open/floor/plasteel/delivery, +/area/storage/primary) +"cfv" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/storage/primary) +"cfw" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/weapon/stock_parts/cell/high/plus, +/obj/item/stack/cable_coil{ + pixel_x = 3; + pixel_y = -7 + }, +/obj/item/stack/cable_coil{ + pixel_x = 2; + pixel_y = -2 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"cfx" = ( +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (NORTH)"; + dir = 1 + }, +/area/crew_quarters/sleep) +"cfy" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"cfz" = ( +/obj/structure/table/wood, +/obj/item/clothing/mask/balaclava{ + pixel_x = -8; + pixel_y = 8 + }, +/obj/item/device/paicard, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"cfA" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"cfB" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0; + tag = "e" + }, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (EAST)"; + dir = 4 + }, +/area/crew_quarters/sleep) +"cfC" = ( +/obj/structure/closet/l3closet/janitor, +/turf/open/floor/noslip, +/area/janitor) +"cfD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/noslip, +/area/janitor) +"cfE" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start{ + name = "Janitor" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (WEST)"; + dir = 8 + }, +/turf/open/floor/noslip, +/area/janitor) +"cfF" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/lights/mixed, +/obj/item/weapon/storage/box/lights/mixed, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + frequency = 1439; + id_tag = null; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/machinery/light_switch{ + pixel_x = 24; + tag = "e" + }, +/turf/open/floor/noslip, +/area/janitor) +"cfG" = ( +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/asmaint2) +"cfH" = ( +/obj/structure/table/glass, +/obj/item/weapon/stock_parts/manipulator, +/obj/item/weapon/stock_parts/capacitor, +/obj/item/weapon/stock_parts/capacitor, +/obj/item/weapon/stock_parts/manipulator, +/obj/item/weapon/stock_parts/micro_laser, +/obj/item/weapon/stock_parts/micro_laser, +/obj/machinery/requests_console{ + department = "Science"; + departmentType = 2; + name = "Science Requests Console"; + pixel_x = -30; + pixel_y = 0 + }, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"cfI" = ( +/turf/open/floor/plasteel/warnwhite{ + dir = 4 + }, +/area/toxins/lab) +"cfJ" = ( +/obj/machinery/computer/rdconsole/core, +/turf/open/floor/plasteel, +/area/toxins/lab) +"cfK" = ( +/turf/open/floor/plasteel, +/area/toxins/lab) +"cfL" = ( +/obj/machinery/r_n_d/protolathe, +/turf/open/floor/plasteel, +/area/toxins/lab) +"cfM" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0; + tag = "e" + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 8 + }, +/area/toxins/lab) +"cfN" = ( +/obj/structure/closet/firecloset/full, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (EAST)"; + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"cfO" = ( +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel/whitepurple, +/area/medical/research{ + name = "Research Division" + }) +"cfP" = ( +/obj/structure/closet/firecloset/full, +/obj/machinery/camera{ + c_tag = "Research Division Access"; + dir = 8; + network = list("SS13","Sci"); + pixel_x = 0; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (WEST)"; + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"cfQ" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27; + pixel_y = 0; + tag = "w" + }, +/obj/item/weapon/stock_parts/cell/high/plus{ + pixel_x = -4; + pixel_y = -2 + }, +/obj/item/weapon/stock_parts/cell/high/plus{ + pixel_x = 4; + pixel_y = 3 + }, +/obj/item/weapon/stock_parts/cell/high/plus, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"cfR" = ( +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"cfS" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"cfT" = ( +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"cfU" = ( +/obj/structure/table, +/obj/item/stack/sheet/plasteel{ + amount = 10 + }, +/obj/item/device/assembly/flash/handheld, +/obj/item/device/assembly/flash/handheld, +/obj/item/stack/cable_coil/green, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"cfV" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/assembly/robotics) +"cfW" = ( +/obj/machinery/mech_bay_recharge_port{ + tag = "icon-recharge_port"; + icon_state = "recharge_port"; + dir = 2 + }, +/obj/structure/cable/pink{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/assembly/chargebay) +"cfX" = ( +/obj/structure/cable/pink{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/bluegrid, +/area/assembly/chargebay) +"cfY" = ( +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black, +/area/assembly/chargebay) +"cfZ" = ( +/obj/structure/cable/pink{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/bluegrid, +/area/assembly/chargebay) +"cga" = ( +/obj/machinery/mech_bay_recharge_port{ + tag = "icon-recharge_port"; + icon_state = "recharge_port"; + dir = 2 + }, +/obj/structure/cable/pink{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/assembly/chargebay) +"cgb" = ( +/obj/structure/plasticflaps, +/obj/machinery/conveyor{ + dir = 1; + id = "packageSort1" + }, +/turf/open/floor/plating/warnplate, +/area/quartermaster/office) +"cgc" = ( +/obj/structure/table, +/obj/item/stack/packageWrap, +/obj/item/stack/packageWrap, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cgd" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cge" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/bot, +/area/quartermaster/office) +"cgf" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cgg" = ( +/obj/machinery/computer/cargo, +/turf/open/floor/plasteel/brown/corner, +/area/quartermaster/office) +"cgh" = ( +/obj/structure/cable/orange{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/computer/cargo/request, +/turf/open/floor/plasteel/brown/corner{ + tag = "icon-browncorner (WEST)"; + dir = 8 + }, +/area/quartermaster/office) +"cgi" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cgj" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (EAST)"; + dir = 4 + }, +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-j2"; + dir = 2 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cgk" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (WEST)"; + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cgl" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + frequency = 1439; + id_tag = null; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cgm" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cgn" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/camera{ + c_tag = "Cargo Waiting Area"; + dir = 8; + network = list("SS13"); + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cgo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/turf/closed/wall, +/area/maintenance/apmaint) +"cgp" = ( +/turf/closed/wall/rust, +/area/maintenance/apmaint) +"cgq" = ( +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics Maintenance"; + req_access_txt = "12;24" + }, +/turf/open/floor/plating, +/area/security/main) +"cgr" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/storage/emergency) +"cgs" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/storage/emergency) +"cgt" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/storage/emergency) +"cgu" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/tank/internals/emergency_oxygen, +/obj/item/weapon/tank/internals/emergency_oxygen, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/turf/open/floor/plating, +/area/storage/emergency) +"cgv" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cgw" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/light_switch{ + pixel_x = -25; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cgx" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cgy" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/conveyor{ + dir = 1; + id = "garbage2" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/disposal) +"cgz" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "garbage" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cgA" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "garbage" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/disposal) +"cgB" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "garbage" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/disposal) +"cgC" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "garbage" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cgD" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "garbage3" + }, +/obj/machinery/disposal/deliveryChute{ + tag = "icon-intake (NORTH)"; + icon_state = "intake"; + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/disposal) +"cgE" = ( +/obj/structure/closet/coffin, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"cgF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"cgG" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp{ + pixel_y = 10 + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"cgH" = ( +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/drinks/bottle/holywater, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"cgI" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/chapel/office) +"cgJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"cgK" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"cgL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/chapel/main) +"cgM" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (EAST)"; + dir = 4 + }, +/turf/open/floor/carpet, +/area/chapel/main) +"cgN" = ( +/turf/open/floor/carpet, +/area/chapel/main) +"cgO" = ( +/turf/closed/wall, +/area/maintenance/fsmaint) +"cgP" = ( +/obj/structure/grille/broken, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/meter, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cgQ" = ( +/obj/structure/grille, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cgR" = ( +/turf/closed/wall/rust, +/area/maintenance/fsmaint) +"cgS" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"cgT" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (WEST)"; + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/storage/primary) +"cgU" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + frequency = 1439; + id_tag = null; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"cgV" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"cgW" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"cgX" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"cgY" = ( +/obj/structure/dresser, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"cgZ" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/structure/bed, +/obj/item/weapon/bedsheet/blue, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"cha" = ( +/obj/structure/closet/secure_closet/personal, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "Dorm2"; + name = "Dorm Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 25; + pixel_y = 0; + req_access_txt = "0"; + specialfunctions = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"chb" = ( +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Dormitories"; + dir = 4; + network = list("SS13") + }, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (WEST)"; + dir = 8 + }, +/area/crew_quarters/sleep) +"chc" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"chd" = ( +/obj/structure/table/wood, +/obj/item/toy/cards/deck{ + pixel_x = 2 + }, +/obj/item/weapon/coin/silver, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"che" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"chf" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/crew_quarters/sleep) +"chg" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "Dorm6"; + name = "Cabin Bolt Control"; + normaldoorcontrol = 1; + pixel_x = -25; + pixel_y = 0; + req_access_txt = "0"; + specialfunctions = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"chh" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/structure/bed, +/obj/item/weapon/bedsheet/red, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"chi" = ( +/turf/open/floor/plasteel/delivery, +/area/janitor) +"chj" = ( +/obj/vehicle/janicart, +/obj/item/key/janitor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/noslip, +/area/janitor) +"chk" = ( +/obj/structure/table, +/obj/machinery/requests_console{ + department = "Janitorial"; + departmentType = 1; + name = "Custodial Closet RC"; + pixel_y = -29 + }, +/obj/item/weapon/reagent_containers/spray/cleaner, +/obj/item/weapon/grenade/chem_grenade/cleaner, +/obj/item/weapon/grenade/chem_grenade/cleaner, +/obj/item/weapon/grenade/chem_grenade/cleaner, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_x = 26; + pixel_y = -2; + tag = "EAST" + }, +/turf/open/floor/noslip, +/area/janitor) +"chl" = ( +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"chm" = ( +/obj/item/weapon/stock_parts/console_screen, +/obj/structure/table/glass, +/obj/item/weapon/stock_parts/console_screen, +/obj/item/weapon/stock_parts/console_screen, +/obj/item/weapon/stock_parts/matter_bin, +/obj/item/weapon/stock_parts/matter_bin, +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"chn" = ( +/obj/machinery/r_n_d/destructive_analyzer, +/turf/open/floor/plasteel/warning, +/area/toxins/lab) +"cho" = ( +/turf/open/floor/plasteel/warning, +/area/toxins/lab) +"chp" = ( +/obj/machinery/r_n_d/circuit_imprinter, +/obj/item/weapon/reagent_containers/glass/beaker/sulphuric, +/turf/open/floor/plasteel/warning, +/area/toxins/lab) +"chq" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 8 + }, +/area/toxins/lab) +"chr" = ( +/obj/machinery/door/airlock/research{ + name = "Research Division Access"; + req_access_txt = "47" + }, +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/whitepurple, +/area/medical/research{ + name = "Research Division" + }) +"chs" = ( +/obj/structure/table, +/obj/item/device/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/device/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/device/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/device/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/weapon/crowbar, +/obj/item/device/assembly/flash/handheld, +/obj/item/device/assembly/flash/handheld, +/obj/item/device/assembly/flash/handheld, +/obj/item/device/assembly/flash/handheld, +/obj/item/device/assembly/flash/handheld, +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"cht" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start{ + name = "Roboticist" + }, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"chu" = ( +/obj/machinery/mecha_part_fabricator, +/turf/open/floor/plasteel/whitebot, +/area/assembly/robotics) +"chv" = ( +/obj/structure/chair/stool, +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"chw" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass{ + amount = 20; + pixel_x = -3; + pixel_y = 6 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/device/multitool{ + pixel_x = 3 + }, +/obj/item/device/multitool{ + pixel_x = 3 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"chx" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/assembly/robotics) +"chy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/mech_bay_recharge_floor, +/area/assembly/chargebay) +"chz" = ( +/obj/structure/cable/pink{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/pink{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + frequency = 1439; + id_tag = null; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/bluegrid, +/area/assembly/chargebay) +"chA" = ( +/obj/machinery/holopad, +/obj/structure/cable/pink{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/pink{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/bluegrid, +/area/assembly/chargebay) +"chB" = ( +/obj/structure/cable/pink{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/pink{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/bluegrid, +/area/assembly/chargebay) +"chC" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/machinery/camera{ + c_tag = "Mech Bay"; + dir = 8; + network = list("SS13","Sci"); + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/mech_bay_recharge_floor, +/area/assembly/chargebay) +"chD" = ( +/turf/closed/wall/r_wall, +/area/security/nuke_storage) +"chE" = ( +/obj/structure/sign/securearea, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/security/nuke_storage) +"chF" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/vault{ + icon_state = "closed"; + locked = 1; + req_access_txt = "53" + }, +/turf/open/floor/plasteel/black, +/area/security/nuke_storage) +"chG" = ( +/obj/structure/sign/securearea, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/security/nuke_storage) +"chH" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "packageSort1" + }, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/quartermaster/office) +"chI" = ( +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (WEST)"; + dir = 8 + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (WEST)"; + dir = 8 + }, +/area/quartermaster/office) +"chJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"chK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"chL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (EAST)"; + dir = 4 + }, +/area/quartermaster/office) +"chM" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_mining{ + name = "Delivery Office"; + req_access_txt = "50" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"chN" = ( +/obj/structure/cable/orange{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (WEST)"; + dir = 8 + }, +/area/quartermaster/office) +"chO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"chP" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"chQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"chR" = ( +/obj/machinery/door/airlock/maintenance, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"chS" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"chT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"chU" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"chV" = ( +/obj/structure/grille/broken, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2); + name = "random metal material damage spawner" + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"chW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/apmaint) +"chX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"chY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"chZ" = ( +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cia" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cib" = ( +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cic" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Disposal Access"; + req_access_txt = "12" + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cid" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cie" = ( +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/conveyor_switch/oneway{ + convdir = -1; + id = "garbage2"; + name = "disposal coveyor secondary" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cif" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "garbage2" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cig" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/button/massdriver{ + id = "trash"; + pixel_x = 26; + pixel_y = -6 + }, +/obj/machinery/button/door{ + id = "Disposal Exit"; + name = "Disposal Vent Control"; + pixel_x = 25; + pixel_y = 4; + req_access_txt = "12" + }, +/obj/structure/chair/stool, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cih" = ( +/turf/closed/wall/r_wall/rust, +/area/maintenance/disposal) +"cii" = ( +/turf/closed/wall/r_wall, +/area/maintenance/disposal) +"cij" = ( +/obj/machinery/requests_console{ + department = "Chapel"; + departmentType = 2; + name = "Chapel RC"; + pixel_x = -30; + pixel_y = 0 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"cik" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Chaplain" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"cil" = ( +/obj/structure/table/wood, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"cim" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"cin" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/chapel/office) +"cio" = ( +/obj/structure/table/wood, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"cip" = ( +/obj/machinery/power/apc{ + auto_name = 1; + dir = 8; + name = "Autoname APC West"; + pixel_x = -25; + pixel_y = 0 + }, +/obj/structure/cable/green{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plating, +/area/chapel/main) +"ciq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cir" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fsmaint) +"cis" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cit" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"ciu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"civ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"ciw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/fsmaint) +"cix" = ( +/obj/structure/cable/green{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 1; + name = "Autoname APC North"; + pixel_x = 0; + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/gateway) +"ciy" = ( +/obj/structure/rack, +/obj/item/weapon/stock_parts/scanning_module, +/obj/item/weapon/newspaper, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"ciz" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"ciA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"ciB" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-y"; + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"ciC" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"ciD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"ciE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"ciF" = ( +/obj/structure/table, +/obj/machinery/requests_console{ + department = "Tool Storage"; + departmentType = 0; + name = "Tool Storage RC"; + pixel_y = -30 + }, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_y = 5 + }, +/obj/item/weapon/storage/toolbox/mechanical, +/turf/open/floor/plasteel, +/area/storage/primary) +"ciG" = ( +/obj/machinery/vending/tool, +/obj/machinery/light, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = -25; + tag = "SOUTH" + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"ciH" = ( +/obj/machinery/vending/assist, +/obj/machinery/light_switch{ + pixel_y = -24; + tag = "s" + }, +/obj/machinery/camera{ + c_tag = "Primary Tool Storage"; + dir = 1; + network = list("SS13") + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"ciI" = ( +/obj/structure/table, +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = -30; + tag = "s" + }, +/obj/item/device/t_scanner, +/obj/item/device/assembly/signaler, +/obj/item/device/assembly/signaler, +/obj/item/device/multitool, +/obj/item/device/multitool{ + pixel_x = 4 + }, +/obj/item/device/assembly/igniter{ + pixel_x = -8; + pixel_y = -4 + }, +/obj/item/device/assembly/igniter, +/turf/open/floor/plasteel, +/area/storage/primary) +"ciJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"ciK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"ciL" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"ciM" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/fsmaint) +"ciN" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + id_tag = "Dorm2"; + name = "Dorm 2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/sleep) +"ciO" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"ciP" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/firstaid/regular, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"ciQ" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"ciR" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + id_tag = "Dorm6"; + name = "Cabin 2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/sleep) +"ciS" = ( +/obj/structure/plasticflaps{ + opacity = 1 + }, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + dir = 1; + freq = 1400; + location = "Janitor" + }, +/turf/open/floor/plasteel/bot{ + dir = 1 + }, +/area/janitor) +"ciT" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Custodial Maintenance"; + req_access_txt = "26" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/janitor) +"ciU" = ( +/obj/structure/table/glass, +/obj/item/stack/cable_coil, +/obj/item/stack/cable_coil{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/stock_parts/scanning_module{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/weapon/stock_parts/scanning_module, +/obj/machinery/light_switch{ + pixel_x = -24; + tag = "w" + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 2 + }, +/area/toxins/lab) +"ciV" = ( +/turf/open/floor/plasteel/whitepurple/corner{ + tag = "icon-whitepurplecorner (WEST)"; + dir = 8 + }, +/area/toxins/lab) +"ciW" = ( +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"ciX" = ( +/turf/closed/wall, +/area/toxins/lab) +"ciY" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whitepurple/corner{ + tag = "icon-whitepurplecorner (EAST)"; + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"ciZ" = ( +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (NORTH)"; + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"cja" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whitepurple/corner{ + tag = "icon-whitepurplecorner (NORTH)"; + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"cjb" = ( +/turf/closed/wall, +/area/assembly/robotics) +"cjc" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular{ + empty = 1; + name = "First-Aid (empty)" + }, +/obj/item/weapon/storage/firstaid/regular{ + empty = 1; + name = "First-Aid (empty)" + }, +/obj/item/weapon/storage/firstaid/regular{ + empty = 1; + name = "First-Aid (empty)" + }, +/obj/item/device/healthanalyzer, +/obj/item/device/healthanalyzer, +/obj/item/device/healthanalyzer, +/obj/machinery/camera{ + c_tag = "Robotics Lab"; + dir = 4; + network = list("SS13","Sci") + }, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"cjd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"cje" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"cjf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"cjg" = ( +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"cjh" = ( +/obj/machinery/disposal/bin, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"cji" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/assembly/robotics) +"cjj" = ( +/obj/machinery/computer/mech_bay_power_console, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/pink{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/turf/open/floor/bluegrid, +/area/assembly/chargebay) +"cjk" = ( +/obj/structure/cable/pink{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/bluegrid, +/area/assembly/chargebay) +"cjl" = ( +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/assembly/chargebay) +"cjm" = ( +/obj/structure/cable/pink{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/bluegrid, +/area/assembly/chargebay) +"cjn" = ( +/obj/machinery/computer/mech_bay_power_console, +/obj/structure/cable/pink{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/turf/open/floor/bluegrid, +/area/assembly/chargebay) +"cjo" = ( +/obj/structure/closet/secure_closet/freezer/money, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/security/nuke_storage) +"cjp" = ( +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault, +/area/security/nuke_storage) +"cjq" = ( +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel/vault, +/area/security/nuke_storage) +"cjr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault, +/area/security/nuke_storage) +"cjs" = ( +/obj/structure/safe{ + pixel_x = 4; + pixel_y = 0 + }, +/obj/item/weapon/dice/d8{ + desc = "A die with eight sides. It feels.... incredibly lucky. The seven is slightly darker than the other numbers."; + tag = "seven" + }, +/obj/item/weapon/paper/crumpled{ + info = "The eighth is almost certainly too close to disappearing for comfort..." + }, +/obj/item/weapon/twohanded/singularityhammer{ + desc = "This hammer harnesses the power of a miniaturized singularity to deal crushing blows, at least in theory."; + force_wielded = 10; + origin_tech = "combat=4;bluespace=3" + }, +/obj/item/weapon/sord, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/security/nuke_storage) +"cjt" = ( +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (WEST)"; + dir = 8 + }, +/obj/machinery/conveyor_switch/oneway{ + id = "packageSort1" + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (WEST)"; + dir = 8 + }, +/area/quartermaster/office) +"cju" = ( +/obj/machinery/light/small, +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = -30; + tag = "s" + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cjv" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cjw" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cjx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cjy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/brown/corner, +/area/quartermaster/office) +"cjz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (SOUTHEAST)"; + dir = 6 + }, +/area/quartermaster/office) +"cjA" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/quartermaster/office) +"cjB" = ( +/obj/structure/cable/orange{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (SOUTHWEST)"; + dir = 10 + }, +/area/quartermaster/office) +"cjC" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel/brown/corner{ + tag = "icon-browncorner (WEST)"; + dir = 8 + }, +/area/quartermaster/office) +"cjD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/loadingarea{ + tag = "icon-loadingarea (NORTH)"; + dir = 1 + }, +/area/quartermaster/office) +"cjE" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cjF" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/table, +/obj/machinery/cell_charger, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cjG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/quartermaster/office) +"cjH" = ( +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cjI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cjJ" = ( +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cjK" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/grille/broken, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/mob/living/simple_animal/mouse/white, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cjL" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cjM" = ( +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/grille, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cjN" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cjO" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/apmaint) +"cjP" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cjQ" = ( +/obj/structure/closet, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cjR" = ( +/obj/structure/cable/green, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 2; + name = "Autoname APC South"; + pixel_x = 1; + pixel_y = -24 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/disposal) +"cjS" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "garbage" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/disposal) +"cjT" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "garbage" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/disposal) +"cjU" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "garbage" + }, +/obj/machinery/door/poddoor/preopen{ + id = "Disposal Exit"; + layer = 3.3; + name = "disposal exit vent" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cjV" = ( +/obj/machinery/mass_driver{ + dir = 4; + id = "trash" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cjW" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cjX" = ( +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/disposal) +"cjY" = ( +/obj/machinery/door/poddoor{ + id = "trash"; + name = "disposal bay door" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cjZ" = ( +/obj/structure/closet/wardrobe/chaplain_black, +/obj/item/weapon/storage/crayons, +/obj/item/weapon/storage/fancy/candle_box, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"cka" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"ckb" = ( +/obj/structure/table/wood, +/obj/item/weapon/nullrod, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"ckc" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7; + tag = "every single paper bin is edited to this" + }, +/obj/item/weapon/pen, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"ckd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"cke" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/chapel/office) +"ckf" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"ckg" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/chapel{ + tag = "icon-chapel (NORTHWEST)"; + dir = 9 + }, +/area/chapel/main) +"ckh" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/chapel{ + tag = "icon-chapel (NORTHEAST)"; + dir = 5 + }, +/area/chapel/main) +"cki" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/carpet, +/area/chapel/main) +"ckj" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (EAST)"; + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet, +/area/chapel/main) +"ckk" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"ckl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/turf/closed/wall/rust, +/area/maintenance/fsmaint) +"ckm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/fsmaint) +"ckn" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cko" = ( +/obj/item/stack/sheet/cardboard, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fsmaint) +"ckp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"ckq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"ckr" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cks" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"ckt" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cku" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"ckv" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"ckw" = ( +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"ckx" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cky" = ( +/obj/machinery/requests_console{ + department = "Crew Quarters"; + name = "Dormitories RC"; + pixel_x = -30; + pixel_y = 0 + }, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (NORTH)"; + dir = 1 + }, +/area/crew_quarters/sleep) +"ckz" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"ckA" = ( +/obj/structure/table/wood, +/obj/item/device/instrument/guitar, +/obj/item/device/instrument/violin, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"ckB" = ( +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (EAST)"; + dir = 4 + }, +/area/crew_quarters/sleep) +"ckC" = ( +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/asmaint2) +"ckD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"ckE" = ( +/obj/structure/cable/green{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 1; + name = "Autoname APC North"; + pixel_x = 0; + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/janitor) +"ckF" = ( +/obj/structure/plasticflaps{ + opacity = 1 + }, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=4"; + dir = 4; + freq = 1400; + location = "Research Division" + }, +/turf/open/floor/plasteel/whitebot, +/area/toxins/lab) +"ckG" = ( +/turf/open/floor/plasteel/whitebot/delivery, +/area/toxins/lab) +"ckH" = ( +/turf/open/floor/plasteel/whitepurple/side{ + dir = 8 + }, +/area/toxins/lab) +"ckI" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"ckJ" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitebot, +/area/toxins/lab) +"ckK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"ckL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/corner, +/area/toxins/lab) +"ckM" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rnd2"; + name = "research lab shutters" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/toxins/lab) +"ckN" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/whitepurple/corner{ + tag = "icon-whitepurplecorner (WEST)"; + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"ckO" = ( +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"ckP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/whitepurple/corner, +/area/medical/research{ + name = "Research Division" + }) +"ckQ" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "robotics2"; + name = "robotics lab shutters" + }, +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/assembly/robotics) +"ckR" = ( +/obj/machinery/button/door{ + dir = 2; + id = "robotics2"; + name = "Shutters Control Button"; + pixel_x = -24; + pixel_y = 24; + req_access_txt = "29" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/assembly/robotics) +"ckS" = ( +/obj/structure/cable/pink{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (EAST)"; + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warnwhite/corner{ + tag = "icon-warnwhitecorner"; + dir = 2 + }, +/area/assembly/robotics) +"ckT" = ( +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 2; + tag = "icon-warnwhite (NORTH)" + }, +/area/assembly/robotics) +"ckU" = ( +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/pink{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 2; + tag = "icon-warnwhite (NORTH)" + }, +/area/assembly/robotics) +"ckV" = ( +/obj/structure/cable/pink{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warnwhite{ + dir = 2; + tag = "icon-warnwhite (NORTH)" + }, +/area/assembly/robotics) +"ckW" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/storage/toolbox/electrical{ + pixel_x = 1; + pixel_y = 6 + }, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/device/mmi, +/obj/item/device/mmi, +/obj/item/device/mmi, +/obj/item/device/mmi, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 2; + tag = "icon-warnwhite (NORTH)" + }, +/area/assembly/robotics) +"ckX" = ( +/obj/machinery/recharge_station, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/assembly/chargebay) +"ckY" = ( +/turf/open/floor/plasteel/black, +/area/assembly/chargebay) +"ckZ" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical, +/obj/item/weapon/crowbar/large, +/obj/structure/cable/pink, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 2; + name = "Autoname APC South"; + pixel_x = 1; + pixel_y = -24 + }, +/obj/machinery/light, +/obj/item/mecha_parts/mecha_tracking, +/obj/item/mecha_parts/mecha_tracking, +/obj/item/mecha_parts/mecha_tracking, +/obj/item/mecha_parts/mecha_tracking, +/turf/open/floor/plasteel/black, +/area/assembly/chargebay) +"cla" = ( +/obj/machinery/light_switch{ + pixel_y = -24; + tag = "s" + }, +/turf/open/floor/plasteel/black, +/area/assembly/chargebay) +"clb" = ( +/obj/machinery/recharge_station, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/assembly/chargebay) +"clc" = ( +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cld" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/green{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cle" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/security/nuke_storage) +"clf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 6 + }, +/area/security/nuke_storage) +"clg" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/circuit/gcircuit{ + luminosity = 2 + }, +/area/security/nuke_storage) +"clh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/circuit/gcircuit{ + luminosity = 2 + }, +/area/security/nuke_storage) +"cli" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/circuit/gcircuit{ + luminosity = 2 + }, +/area/security/nuke_storage) +"clj" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 10 + }, +/area/security/nuke_storage) +"clk" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/green{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cll" = ( +/turf/open/floor/plasteel/brown{ + dir = 10; + initial_gas_mix = "n2=100;TEMP=80"; + tag = "SERVER" + }, +/obj/structure/chair/stool, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (SOUTHWEST)"; + dir = 10 + }, +/area/quartermaster/office) +"clm" = ( +/turf/open/floor/plasteel/brown, +/obj/machinery/conveyor_switch/oneway{ + id = "packageSort2" + }, +/turf/open/floor/plasteel/warningline, +/area/quartermaster/office) +"cln" = ( +/turf/open/floor/plasteel/brown, +/obj/machinery/camera{ + c_tag = "Cargo Office West"; + dir = 8; + network = list("SS13"); + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warningline, +/area/quartermaster/office) +"clo" = ( +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/quartermaster/office) +"clp" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_mining{ + name = "Cargo Office"; + req_access_txt = "50" + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"clq" = ( +/obj/structure/cable/orange{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_mining{ + name = "Cargo Office"; + req_access_txt = "50" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"clr" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/quartermaster/office) +"cls" = ( +/obj/machinery/door/firedoor, +/obj/machinery/mineral/ore_redemption{ + input_dir = 2; + ore_pickup_rate = 30; + output_dir = 1 + }, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/office) +"clt" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/checkpoint/supply) +"clu" = ( +/turf/closed/wall, +/area/security/checkpoint/supply) +"clv" = ( +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/apmaint) +"clw" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"clx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cly" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"clz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/apmaint) +"clA" = ( +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/grille/broken, +/obj/item/device/assembly/mousetrap/armed, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"clB" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"clC" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/girder{ + layer = 2.6 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"clD" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2); + name = "random metal material damage spawner" + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"clE" = ( +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/girder{ + layer = 2.6 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"clF" = ( +/turf/closed/wall/rust, +/area/maintenance/disposal) +"clG" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"clH" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (WEST)"; + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"clI" = ( +/obj/machinery/light/small, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + frequency = 1439; + id_tag = null; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"clJ" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"clK" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"clL" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel/chapel{ + tag = "icon-chapel (SOUTHWEST)"; + dir = 10 + }, +/area/chapel/main) +"clM" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/turf/open/floor/carpet, +/area/chapel/main) +"clN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet, +/area/chapel/main) +"clO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"clP" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"clQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/fsmaint) +"clR" = ( +/turf/closed/wall, +/area/maintenance/electrical) +"clS" = ( +/turf/closed/wall/rust, +/area/maintenance/electrical) +"clT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/turf/closed/wall, +/area/maintenance/electrical) +"clU" = ( +/obj/item/weapon/pen/invisible, +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"clV" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"clW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"clX" = ( +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"clY" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"clZ" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cma" = ( +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cmb" = ( +/obj/structure/cable/green{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 1; + name = "Autoname APC North"; + pixel_x = 0; + pixel_y = 24 + }, +/turf/open/floor/plating, +/area/storage/primary) +"cmc" = ( +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cmd" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cme" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 4; + name = "4maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cmf" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cmg" = ( +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cmh" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/structure/bed, +/obj/item/weapon/bedsheet/green, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"cmi" = ( +/obj/structure/closet/secure_closet/personal, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "Dorm3"; + name = "Dorm Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 25; + pixel_y = 0; + req_access_txt = "0"; + specialfunctions = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"cmj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (WEST)"; + dir = 8 + }, +/area/crew_quarters/sleep) +"cmk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/crew_quarters/sleep) +"cml" = ( +/obj/structure/dresser, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "Dorm4"; + name = "Dorm Bolt Control"; + normaldoorcontrol = 1; + pixel_x = -25; + pixel_y = 0; + req_access_txt = "0"; + specialfunctions = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"cmm" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/structure/bed, +/obj/item/weapon/bedsheet/purple, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"cmn" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"cmo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cmp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cmq" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cmr" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"cms" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cmt" = ( +/turf/open/floor/plasteel/whitepurple/side{ + dir = 1 + }, +/area/toxins/lab) +"cmu" = ( +/obj/structure/chair/office/light, +/obj/effect/landmark/start{ + name = "Scientist" + }, +/turf/open/floor/plasteel/whitepurple/corner{ + tag = "icon-whitepurplecorner (NORTH)"; + dir = 1 + }, +/area/toxins/lab) +"cmv" = ( +/obj/structure/cable/pink{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"cmw" = ( +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"cmx" = ( +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"cmy" = ( +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 4 + }, +/area/toxins/lab) +"cmz" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rnd2"; + name = "research lab shutters" + }, +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/research{ + desc = "It opens and closes. Just as secure as ever, or in other words not at all."; + glass = 1; + name = "Research and Development Lab"; + opacity = 0; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/whitepurple, +/area/toxins/lab) +"cmA" = ( +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/sortjunction{ + sortType = 12 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"cmB" = ( +/obj/structure/cable/pink{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/pink{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"cmC" = ( +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/structure/disposalpipe/sortjunction{ + dir = 1; + icon_state = "pipe-j1s"; + sortType = 14; + tag = "icon-pipe-j1s (NORTH)" + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"cmD" = ( +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_research{ + glass = 0; + name = "Robotics Lab"; + opacity = 1; + req_access_txt = "29" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple, +/area/assembly/robotics) +"cmE" = ( +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 8 + }, +/area/assembly/robotics) +"cmF" = ( +/obj/structure/cable/pink{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 4 + }, +/area/assembly/robotics) +"cmG" = ( +/obj/structure/table, +/obj/item/weapon/retractor, +/obj/item/weapon/hemostat, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (NORTHWEST)"; + dir = 9 + }, +/area/assembly/robotics) +"cmH" = ( +/obj/structure/cable/pink{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (NORTH)"; + dir = 1 + }, +/area/assembly/robotics) +"cmI" = ( +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (NORTH)"; + dir = 1 + }, +/area/assembly/robotics) +"cmJ" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/latex, +/obj/item/weapon/surgical_drapes, +/obj/item/weapon/razor, +/obj/structure/cable/pink{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + aidisabled = 0; + auto_name = 1; + cell_type = 2500; + dir = 4; + name = "Autoname APC East"; + pixel_x = 24; + pixel_y = 0 + }, +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (NORTHEAST)"; + dir = 5 + }, +/area/assembly/robotics) +"cmK" = ( +/turf/closed/wall/r_wall, +/area/assembly/chargebay) +"cmL" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE" + }, +/turf/closed/wall/r_wall, +/area/maintenance/asmaint2) +"cmM" = ( +/obj/structure/lattice, +/obj/structure/lattice, +/turf/open/space, +/area/space/nearstation) +"cmN" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/turf/open/floor/plasteel/vault{ + dir = 6 + }, +/area/security/nuke_storage) +"cmO" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/mob/living/simple_animal/mouse/brown/Tom, +/turf/open/floor/plasteel/circuit/gcircuit{ + luminosity = 2 + }, +/area/security/nuke_storage) +"cmP" = ( +/obj/machinery/nuclearbomb/selfdestruct, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/security/nuke_storage) +"cmQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/circuit/gcircuit{ + luminosity = 2 + }, +/area/security/nuke_storage) +"cmR" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plasteel/vault{ + dir = 10 + }, +/area/security/nuke_storage) +"cmS" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE" + }, +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/turf/closed/wall/r_wall, +/area/maintenance/apmaint) +"cmT" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/apmaint) +"cmU" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "packageSort1" + }, +/obj/machinery/light/small, +/turf/open/floor/plating/warnplate/corner{ + dir = 8; + tag = "" + }, +/area/quartermaster/office) +"cmV" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "packageSort2" + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/quartermaster/office) +"cmW" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "packageSort2" + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/quartermaster/office) +"cmX" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "packageSort2" + }, +/turf/open/floor/plating, +/area/quartermaster/office) +"cmY" = ( +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/structure/disposaloutlet{ + dir = 8; + eject_range = 4 + }, +/turf/open/floor/plating, +/area/quartermaster/office) +"cmZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/closed/wall, +/area/quartermaster/office) +"cna" = ( +/obj/structure/disposalpipe/trunk, +/obj/structure/disposaloutlet{ + dir = 1; + eject_range = 1 + }, +/turf/open/floor/plating, +/area/quartermaster/office) +"cnb" = ( +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_x = -25; + pixel_y = -2; + tag = "WEST" + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTH)"; + dir = 1 + }, +/area/quartermaster/office) +"cnc" = ( +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTH)"; + dir = 1 + }, +/area/quartermaster/office) +"cnd" = ( +/obj/structure/cable/orange{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTH)"; + dir = 1 + }, +/area/quartermaster/office) +"cne" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/brown/corner{ + tag = "icon-browncorner (NORTH)"; + dir = 1 + }, +/area/quartermaster/office) +"cnf" = ( +/turf/open/floor/plasteel/bot{ + dir = 2 + }, +/area/quartermaster/office) +"cng" = ( +/turf/open/floor/plasteel/red/corner, +/area/quartermaster/office) +"cnh" = ( +/obj/structure/table, +/obj/item/device/radio/off, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTHWEST)"; + dir = 9 + }, +/area/security/checkpoint/supply) +"cni" = ( +/obj/structure/table, +/obj/machinery/recharger, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTH)"; + dir = 1 + }, +/area/security/checkpoint/supply) +"cnj" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/structure/table, +/obj/machinery/requests_console{ + department = "Security"; + departmentType = 5; + name = "Cargo Post RC"; + pixel_x = 0; + pixel_y = 30 + }, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7; + tag = "every single paper bin is edited to this" + }, +/obj/item/weapon/pen, +/obj/machinery/camera{ + c_tag = "Cargo Security Post"; + network = list("SS13") + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTHEAST)"; + dir = 5 + }, +/area/security/checkpoint/supply) +"cnk" = ( +/obj/structure/cable/orange{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 2; + name = "Autoname APC South"; + pixel_x = 1; + pixel_y = -24 + }, +/turf/open/floor/plating, +/area/quartermaster/miningdock) +"cnl" = ( +/obj/structure/cable/orange{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cnm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/cable/orange{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cnn" = ( +/obj/structure/girder/displaced, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cno" = ( +/obj/machinery/atmospherics/components/binary/valve, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cnp" = ( +/obj/machinery/atmospherics/components/unary/tank/air, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cnq" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cnr" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cns" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cnt" = ( +/obj/machinery/door/airlock{ + name = "Crematorium"; + req_access_txt = "27" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"cnu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/chapel/office) +"cnv" = ( +/obj/machinery/door/morgue{ + name = "Confession Booth (Chaplain)"; + req_access_txt = "22" + }, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"cnw" = ( +/obj/machinery/door/morgue{ + name = "Confession Booth" + }, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"cnx" = ( +/obj/machinery/light/small, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"cny" = ( +/obj/machinery/camera{ + c_tag = "Chapel"; + dir = 1; + network = list("SS13") + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = -25; + tag = "SOUTH" + }, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"cnz" = ( +/obj/machinery/recharge_station, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/electrical) +"cnA" = ( +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/electrical) +"cnB" = ( +/obj/structure/cable/green{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/machinery/mech_bay_recharge_port, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/electrical) +"cnC" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/electrical) +"cnD" = ( +/obj/structure/cable/green{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/machinery/computer/mech_bay_power_console, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/electrical) +"cnE" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/weapon/stock_parts/cell/high/plus, +/obj/item/weapon/stock_parts/cell/high/plus, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/electrical) +"cnF" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/fyellow, +/obj/item/weapon/storage/toolbox/electrical{ + pixel_x = 1; + pixel_y = -1 + }, +/obj/item/device/multitool, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/electrical) +"cnG" = ( +/turf/closed/wall, +/area/construction) +"cnH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/closed/wall, +/area/construction) +"cnI" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/visible{ + tag = "icon-manifold (WEST)"; + icon_state = "manifold"; + dir = 8 + }, +/turf/closed/wall, +/area/construction) +"cnJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/turf/closed/wall/rust, +/area/construction) +"cnK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + tag = "icon-intact (EAST)"; + icon_state = "intact"; + dir = 4 + }, +/turf/closed/wall, +/area/construction) +"cnL" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cnM" = ( +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cnN" = ( +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cnO" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cnP" = ( +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cnQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cnR" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cnS" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cnT" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + id_tag = "Dorm3"; + name = "Dorm 3" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/sleep) +"cnU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light_switch{ + pixel_y = -24; + tag = "s" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"cnV" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/glass{ + name = "Central Access" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"cnW" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + id_tag = "Dorm4"; + name = "Dorm 4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/crew_quarters/sleep) +"cnX" = ( +/obj/machinery/light/small, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + frequency = 1439; + id_tag = null; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"cnY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/closet/wardrobe/grey, +/obj/item/weapon/lighter/greyscale, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cnZ" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"coa" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cob" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"coc" = ( +/obj/item/weapon/folder/white, +/obj/structure/table, +/obj/item/weapon/disk/tech_disk{ + pixel_x = 0; + pixel_y = 0 + }, +/obj/item/weapon/disk/tech_disk{ + pixel_x = 0; + pixel_y = 0 + }, +/obj/item/weapon/disk/design_disk, +/obj/item/weapon/disk/design_disk, +/obj/item/weapon/book/manual/research_and_development, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"cod" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = -25; + tag = "SOUTH" + }, +/obj/item/weapon/stock_parts/cell/high/plus, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"coe" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass{ + amount = 50; + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/clothing/glasses/welding, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 2; + name = "Autoname APC South"; + pixel_x = 1; + pixel_y = -24 + }, +/obj/structure/cable/pink, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"cof" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"cog" = ( +/obj/structure/frame/machine, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"coh" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + tag = "icon-whitepurplecorner (EAST)"; + dir = 4 + }, +/area/toxins/lab) +"coi" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rnd2"; + name = "research lab shutters" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/toxins/lab) +"coj" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + tag = "icon-whitepurplecorner (NORTH)"; + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"cok" = ( +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"col" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"com" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "robotics2"; + name = "robotics lab shutters" + }, +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/assembly/robotics) +"con" = ( +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 1 + }, +/area/assembly/robotics) +"coo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warnwhite{ + dir = 4 + }, +/area/assembly/robotics) +"cop" = ( +/obj/structure/table, +/obj/item/weapon/circular_saw, +/obj/item/weapon/scalpel{ + pixel_y = 12 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/light_switch{ + pixel_y = -24; + tag = "s" + }, +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (WEST)"; + dir = 8 + }, +/area/assembly/robotics) +"coq" = ( +/turf/open/floor/plasteel/black, +/area/assembly/robotics) +"cor" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/black, +/area/assembly/robotics) +"cos" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (EAST)"; + dir = 4 + }, +/area/assembly/robotics) +"cot" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Robotics Lab Maintenance"; + req_access_txt = "29" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/assembly/robotics) +"cou" = ( +/obj/item/weapon/cigbutt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cov" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cow" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cox" = ( +/obj/structure/rack, +/obj/item/weapon/newspaper, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"coy" = ( +/obj/structure/closet/emcloset, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"coz" = ( +/obj/structure/girder, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"coA" = ( +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"coB" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/green{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"coC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/security/nuke_storage) +"coD" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + dir = 6 + }, +/area/security/nuke_storage) +"coE" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/circuit/gcircuit{ + luminosity = 2 + }, +/area/security/nuke_storage) +"coF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/circuit/gcircuit{ + luminosity = 2 + }, +/area/security/nuke_storage) +"coG" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/circuit/gcircuit{ + luminosity = 2 + }, +/area/security/nuke_storage) +"coH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 10 + }, +/area/security/nuke_storage) +"coI" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/green{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"coJ" = ( +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (EAST)"; + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"coK" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/closed/wall, +/area/quartermaster/office) +"coL" = ( +/obj/structure/disposalpipe/wrapsortjunction{ + tag = "icon-pipe-j1s (WEST)"; + icon_state = "pipe-j1s"; + dir = 8 + }, +/turf/closed/wall, +/area/quartermaster/office) +"coM" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/quartermaster/office) +"coN" = ( +/obj/structure/disposalpipe/sortjunction{ + dir = 8; + icon_state = "pipe-j2s"; + sortType = 2 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27; + pixel_y = 0; + tag = "w" + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"coO" = ( +/obj/structure/disposalpipe/sortjunction{ + dir = 8; + icon_state = "pipe-j2s"; + sortType = 3 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"coP" = ( +/obj/structure/cable/orange{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/orange{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/junction{ + tag = "icon-pipe-y (WEST)"; + icon_state = "pipe-y"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"coQ" = ( +/obj/structure/cable/orange{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"coR" = ( +/obj/structure/cable/orange{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"coS" = ( +/obj/structure/cable/orange{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + tag = "icon-red (EAST)"; + dir = 4 + }, +/area/quartermaster/office) +"coT" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_security{ + name = "Security Office"; + req_access_txt = "63" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkred, +/area/security/checkpoint/supply) +"coU" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (WEST)"; + dir = 8 + }, +/area/security/checkpoint/supply) +"coV" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/effect/landmark/start/depsec/supply, +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + frequency = 1439; + id_tag = null; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/security/checkpoint/supply) +"coW" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/machinery/computer/security/mining, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (EAST)"; + dir = 4 + }, +/area/security/checkpoint/supply) +"coX" = ( +/turf/closed/wall, +/area/quartermaster/miningdock) +"coY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/quartermaster/miningdock) +"coZ" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Mining Maintenance"; + req_access_txt = "48" + }, +/obj/structure/cable/orange{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/quartermaster/miningdock) +"cpa" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/meter, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cpb" = ( +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cpc" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cpd" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cpe" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cpf" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/grille/broken, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2); + name = "random metal material damage spawner" + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cpg" = ( +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cph" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/obj/structure/table/wood, +/obj/item/clothing/under/burial, +/obj/item/clothing/under/burial, +/obj/item/clothing/under/burial, +/obj/item/clothing/under/burial, +/obj/item/clothing/under/burial, +/obj/item/clothing/under/burial, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"cpi" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Chapel Crematorium"; + network = list("SS13") + }, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"cpj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"cpk" = ( +/obj/structure/bodycontainer/crematorium, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"cpl" = ( +/obj/item/device/radio/intercom{ + broadcasting = 1; + frequency = 1480; + name = "Confessional Intercom"; + pixel_x = 0; + pixel_y = -25 + }, +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"cpm" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/tinted/fulltile, +/turf/open/floor/plating, +/area/chapel/office) +"cpn" = ( +/obj/item/device/radio/intercom{ + broadcasting = 1; + frequency = 1480; + name = "Confessional Intercom"; + pixel_x = 0; + pixel_y = -25 + }, +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"cpo" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/turf/closed/wall, +/area/chapel/main) +"cpp" = ( +/obj/machinery/door/airlock/maintenance, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cpq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/chapel/main) +"cpr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cps" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cpt" = ( +/obj/machinery/power/port_gen/pacman, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/electrical) +"cpu" = ( +/turf/open/floor/plating, +/area/maintenance/electrical) +"cpv" = ( +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/electrical) +"cpw" = ( +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/electrical) +"cpx" = ( +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/electrical) +"cpy" = ( +/obj/structure/chair/stool, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/electrical) +"cpz" = ( +/obj/structure/rack, +/obj/item/stack/cable_coil/green, +/obj/item/stack/rods{ + amount = 50 + }, +/obj/item/stack/sheet/mineral/plasma{ + amount = 10; + layer = 3 + }, +/obj/item/stack/cable_coil/green, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/electrical) +"cpA" = ( +/obj/structure/frame/computer, +/turf/open/floor/plasteel/floorgrime, +/area/construction) +"cpB" = ( +/obj/structure/frame/computer, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/construction) +"cpC" = ( +/obj/structure/frame/computer, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/construction) +"cpD" = ( +/obj/structure/table, +/obj/machinery/light_switch{ + pixel_y = 24; + tag = "n" + }, +/obj/item/clothing/gloves/color/fyellow, +/turf/open/floor/plasteel/floorgrime, +/area/construction) +"cpE" = ( +/obj/structure/frame/machine, +/turf/open/floor/plasteel/floorgrime, +/area/construction) +"cpF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cpG" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cpH" = ( +/obj/structure/grille/broken, +/obj/item/device/assembly/mousetrap, +/obj/item/trash/deadmouse, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fsmaint) +"cpI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cpJ" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cpK" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Dormitory" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plasteel/neutral/side{ + tag = "icon-neutral (WEST)"; + dir = 8 + }, +/area/crew_quarters/sleep) +"cpL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/crew_quarters/sleep) +"cpM" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Dormitory" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + tag = "icon-neutral (EAST)"; + dir = 4 + }, +/area/crew_quarters/sleep) +"cpN" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cpO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/turf/closed/wall/rust, +/area/maintenance/asmaint2) +"cpP" = ( +/turf/closed/wall, +/area/maintenance/asmaint2) +"cpQ" = ( +/turf/closed/wall/r_wall, +/area/toxins/server) +"cpR" = ( +/turf/closed/wall/r_wall, +/area/security/checkpoint/science) +"cpS" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rnd2"; + name = "research lab shutters" + }, +/turf/open/floor/plating, +/area/security/checkpoint/science) +"cpT" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white/side{ + dir = 6 + }, +/area/medical/research{ + name = "Research Division" + }) +"cpU" = ( +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"cpV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/obj/machinery/camera{ + c_tag = "Science Hallway North"; + dir = 8; + network = list("SS13","Sci") + }, +/turf/open/floor/plasteel/white/side{ + dir = 10 + }, +/area/medical/research{ + name = "Research Division" + }) +"cpW" = ( +/obj/structure/closet/wardrobe/robotics_black, +/obj/item/device/radio/headset/headset_sci{ + pixel_x = -3 + }, +/obj/item/clothing/glasses/welding, +/obj/item/clothing/head/welding{ + pixel_x = -3; + pixel_y = 5 + }, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"cpX" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = -25; + tag = "SOUTH" + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 4 + }, +/area/assembly/robotics) +"cpY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/assembly/robotics) +"cpZ" = ( +/obj/structure/table/optable{ + name = "Robotics Operating Table" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/assembly/robotics) +"cqa" = ( +/obj/machinery/computer/operating{ + name = "Robotics Operating Computer" + }, +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/assembly/robotics) +"cqb" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/bodybags, +/obj/item/weapon/pen, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkwarning{ + tag = "icon-warndark (EAST)"; + dir = 4 + }, +/area/assembly/robotics) +"cqc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/assembly/robotics) +"cqd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cqe" = ( +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cqf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/asmaint2) +"cqg" = ( +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (EAST)"; + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cqh" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/green{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cqi" = ( +/obj/structure/closet/crate{ + name = "Gold Crate" + }, +/obj/item/stack/sheet/mineral/gold, +/obj/item/stack/sheet/mineral/gold, +/obj/item/stack/sheet/mineral/gold, +/obj/item/weapon/storage/belt/champion, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/security/nuke_storage) +"cqj" = ( +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/black, +/area/security/nuke_storage) +"cqk" = ( +/obj/structure/cable/green{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 2; + name = "Autoname APC South"; + pixel_x = 1; + pixel_y = -24 + }, +/obj/machinery/camera{ + c_tag = "Vault"; + dir = 1; + network = list("SS13"); + start_active = 1 + }, +/obj/structure/filingcabinet, +/obj/item/weapon/folder/documents, +/turf/open/floor/plasteel/vault{ + tag = "icon-vault (WEST)"; + dir = 8 + }, +/area/security/nuke_storage) +"cql" = ( +/turf/open/floor/plasteel/black, +/area/security/nuke_storage) +"cqm" = ( +/obj/item/weapon/coin/silver{ + pixel_x = 7; + pixel_y = 12 + }, +/obj/item/weapon/coin/silver{ + pixel_x = 12; + pixel_y = 7 + }, +/obj/item/weapon/coin/silver{ + pixel_x = 4; + pixel_y = 8 + }, +/obj/item/weapon/coin/silver{ + pixel_x = -6; + pixel_y = 5 + }, +/obj/item/weapon/coin/silver{ + pixel_x = 5; + pixel_y = -8 + }, +/obj/structure/closet/crate{ + name = "Silver Crate" + }, +/obj/item/stack/sheet/mineral/silver, +/obj/item/stack/sheet/mineral/silver, +/obj/item/stack/sheet/mineral/silver, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/security/nuke_storage) +"cqn" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/green{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cqo" = ( +/turf/closed/wall, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"cqp" = ( +/obj/structure/rack, +/obj/item/weapon/electronics/airalarm, +/obj/item/weapon/electronics/airlock, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"cqq" = ( +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = 20; + tag = "NORTH" + }, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"cqr" = ( +/obj/structure/cable/orange{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 1; + name = "Autoname APC North"; + pixel_x = 0; + pixel_y = 24 + }, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"cqs" = ( +/obj/structure/rack, +/obj/item/weapon/electronics/firelock, +/obj/item/weapon/electronics/apc, +/obj/item/weapon/electronics/firealarm, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"cqt" = ( +/turf/open/floor/fakespace, +/area/quartermaster/storage) +"cqu" = ( +/turf/closed/wall, +/area/quartermaster/storage) +"cqv" = ( +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/obj/machinery/light_switch{ + pixel_x = -24; + tag = "w" + }, +/obj/machinery/camera{ + c_tag = "Cargo Office South"; + dir = 4; + network = list("SS13") + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cqw" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cqx" = ( +/obj/structure/cable/orange{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cqy" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cqz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/photocopier, +/turf/open/floor/plasteel/red/corner{ + tag = "icon-redcorner (EAST)"; + dir = 4 + }, +/area/quartermaster/office) +"cqA" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/checkpoint/supply) +"cqB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (SOUTHWEST)"; + dir = 10 + }, +/area/security/checkpoint/supply) +"cqC" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel/darkred/side, +/area/security/checkpoint/supply) +"cqD" = ( +/obj/machinery/computer/secure_data, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + aidisabled = 0; + auto_name = 1; + cell_type = 2500; + dir = 4; + name = "Autoname APC East"; + pixel_x = 24; + pixel_y = 0 + }, +/obj/machinery/light_switch{ + pixel_x = 24; + pixel_y = 11; + tag = "e" + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (SOUTHEAST)"; + dir = 6 + }, +/area/security/checkpoint/supply) +"cqE" = ( +/obj/structure/closet/wardrobe/miner, +/turf/open/floor/plasteel/purple/side{ + tag = "icon-purple (NORTHWEST)"; + dir = 9 + }, +/area/quartermaster/miningdock) +"cqF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/brown/corner{ + tag = "icon-browncorner (NORTH)"; + dir = 1 + }, +/area/quartermaster/miningdock) +"cqG" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/structure/cable/orange{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"cqH" = ( +/obj/structure/grille, +/obj/structure/cable/green{ + tag = "icon-5-8"; + icon_state = "5-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"cqI" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/mining) +"cqJ" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/mining) +"cqK" = ( +/obj/structure/closet/wardrobe/pjs, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"cqL" = ( +/obj/structure/table, +/obj/item/weapon/poster/legit, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cqM" = ( +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cqN" = ( +/obj/structure/chair/stool, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cqO" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/glass/beaker, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cqP" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Aft Starboard Solar Maintenance"; + dir = 4; + network = list("SS13") + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cqQ" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/apmaint) +"cqR" = ( +/obj/structure/bodycontainer/morgue, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"cqS" = ( +/obj/machinery/light/small, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"cqT" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (WEST)"; + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"cqU" = ( +/obj/machinery/button/crematorium{ + pixel_x = 25 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + frequency = 1439; + id_tag = null; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"cqV" = ( +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cqW" = ( +/obj/structure/closet/cardboard{ + desc = "Just a box... Contains Emergency Supplies." + }, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/obj/item/weapon/tank/internals/emergency_oxygen/engi, +/obj/item/weapon/tank/internals/emergency_oxygen, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cqX" = ( +/obj/structure/rack, +/obj/item/weapon/lipstick/random, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cqY" = ( +/obj/structure/rack, +/obj/item/weapon/stock_parts/capacitor, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cqZ" = ( +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fsmaint) +"cra" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"crb" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (WEST)"; + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"crc" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light/small, +/obj/machinery/camera{ + c_tag = "Aft Port Solar Maintenance"; + dir = 1; + network = list("SS13") + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"crd" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating/warnplate/corner{ + dir = 2; + tag = "" + }, +/area/maintenance/fsmaint) +"cre" = ( +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating/warnplate, +/area/maintenance/fsmaint) +"crf" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plating/warnplate/corner{ + dir = 1; + tag = "" + }, +/area/maintenance/fsmaint) +"crg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"crh" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cri" = ( +/obj/machinery/light_switch{ + pixel_x = -24; + tag = "w" + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/electrical) +"crj" = ( +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/electrical) +"crk" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/electrical) +"crl" = ( +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/electrical) +"crm" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/electrical) +"crn" = ( +/turf/open/floor/plasteel/floorgrime, +/area/construction) +"cro" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/construction) +"crp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/construction) +"crq" = ( +/obj/structure/table_frame, +/turf/open/floor/plasteel/floorgrime, +/area/construction) +"crr" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"crs" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"crt" = ( +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2); + name = "random metal material damage spawner" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fsmaint) +"cru" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"crv" = ( +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"crw" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"crx" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + tag = "icon-neutral (WEST)"; + dir = 8 + }, +/area/crew_quarters/sleep) +"cry" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"crz" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + tag = "icon-neutral (EAST)"; + dir = 4 + }, +/area/crew_quarters/sleep) +"crA" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/airlock{ + name = "Unisex Showers"; + req_access_txt = "0" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"crB" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"crC" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Showers"; + network = list("SS13") + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"crD" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"crE" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"crF" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"crG" = ( +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (EAST)"; + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"crH" = ( +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"crI" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/tinted/fulltile, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"crJ" = ( +/obj/structure/closet/secure_closet/chemical, +/obj/item/weapon/reagent_containers/dropper, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"crK" = ( +/obj/machinery/r_n_d/server/core, +/turf/open/floor/bluegrid{ + name = "Server Base"; + initial_gas_mix = "n2=500;TEMP=80" + }, +/area/toxins/server) +"crL" = ( +/obj/machinery/airalarm/server{ + pixel_y = 23 + }, +/obj/machinery/camera{ + c_tag = "Server Room"; + network = list("Sci") + }, +/turf/open/floor/plasteel/black{ + name = "Server Walkway"; + initial_gas_mix = "n2=500;TEMP=80" + }, +/area/toxins/server) +"crM" = ( +/obj/machinery/r_n_d/server/robotics, +/turf/open/floor/bluegrid{ + name = "Server Base"; + initial_gas_mix = "n2=500;TEMP=80" + }, +/area/toxins/server) +"crN" = ( +/obj/machinery/computer/secure_data, +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/turf/open/floor/plasteel/darkred/side{ + dir = 9 + }, +/area/security/checkpoint/science) +"crO" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (NORTH)"; + dir = 1 + }, +/area/security/checkpoint/science) +"crP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkred/side{ + dir = 5 + }, +/area/security/checkpoint/science) +"crQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/checkpoint/science) +"crR" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plasteel/whitered/corner{ + tag = "icon-whiteredcorner (WEST)"; + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"crS" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 10 + }, +/area/medical/research{ + name = "Research Division" + }) +"crT" = ( +/turf/closed/wall, +/area/crew_quarters/hor) +"crU" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/hor) +"crV" = ( +/turf/closed/wall/r_wall, +/area/toxins/explab) +"crW" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"crX" = ( +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"crY" = ( +/obj/structure/cable/orange{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"crZ" = ( +/obj/item/toy/foamblade{ + attack_verb = list("stoned","grabbed","smacked"); + desc = "A huge foam hand, patterned after stone."; + icon = 'icons/obj/weapons.dmi'; + icon_state = "fleshtostone"; + item_state = "fleshtostone"; + name = "huge foam hand"; + w_class = 4 + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"csa" = ( +/obj/item/weapon/dice/d8{ + desc = "A die with eight sides. It feels.... incredibly lucky. The two is slightly darker than the other numbers."; + tag = "two" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/quartermaster/storage) +"csb" = ( +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/autolathe, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"csc" = ( +/obj/effect/landmark/start{ + name = "Cargo Technician" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"csd" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cse" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/obj/structure/chair/stool, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"csf" = ( +/obj/structure/table, +/obj/item/device/multitool, +/obj/machinery/computer/stockexchange, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"csg" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/effect/landmark/start{ + name = "Shaft Miner" + }, +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (WEST)"; + dir = 8 + }, +/area/quartermaster/miningdock) +"csh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"csi" = ( +/obj/structure/cable/orange{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"csj" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/quartermaster/miningdock) +"csk" = ( +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 + }, +/area/medical/exam_room) +"csl" = ( +/obj/structure/table, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/mining) +"csm" = ( +/obj/machinery/computer/shuttle/mining, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/mining) +"csn" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cso" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"csp" = ( +/obj/structure/table, +/obj/item/device/multitool, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"csq" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"csr" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"css" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cst" = ( +/turf/open/floor/plating/warnplate/corner{ + dir = 2; + tag = "" + }, +/area/maintenance/apmaint) +"csu" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating/warnplate, +/area/maintenance/apmaint) +"csv" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/obj/item/weapon/storage/fancy/cigarettes/cigpack_carp, +/turf/open/floor/plating/warnplate/corner{ + dir = 1; + tag = "" + }, +/area/maintenance/apmaint) +"csw" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Crematorium Maintenance"; + req_access_txt = "27" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/chapel/office) +"csx" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fsmaint) +"csy" = ( +/obj/structure/closet/crate, +/obj/item/trash/pistachios, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"csz" = ( +/obj/structure/closet/crate, +/obj/item/weapon/c_tube, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/item/stack/cable_coil/green, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"csA" = ( +/obj/structure/grille/broken, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/mob/living/simple_animal/mouse, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"csB" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"csC" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"csD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"csE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"csF" = ( +/turf/closed/wall/r_wall, +/area/maintenance/portsolar) +"csG" = ( +/obj/machinery/door/airlock/engineering{ + name = "Aft Starboard Solar Access"; + req_access_txt = "10" + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/portsolar) +"csH" = ( +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"csI" = ( +/obj/structure/grille/broken, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fsmaint) +"csJ" = ( +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"csK" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering{ + name = "Electrical Maintenance"; + req_access_txt = "11" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/electrical) +"csL" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/electrical) +"csM" = ( +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/electrical) +"csN" = ( +/obj/structure/cable/green, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/electrical) +"csO" = ( +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/electrical) +"csP" = ( +/obj/structure/table, +/obj/item/wallframe/camera, +/obj/item/wallframe/camera, +/obj/item/device/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/structure/cable/green{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + aidisabled = 0; + auto_name = 1; + cell_type = 2500; + dir = 4; + name = "Autoname APC East"; + pixel_x = 24; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/electrical) +"csQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/closed/wall/rust, +/area/maintenance/electrical) +"csR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Construction Area"; + dir = 4; + network = list("SS13") + }, +/turf/open/floor/plating, +/area/construction) +"csS" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plating, +/area/construction) +"csT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/construction) +"csU" = ( +/obj/structure/table, +/obj/item/stack/cable_coil/random, +/turf/open/floor/plating, +/area/construction) +"csV" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"csW" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/grille/broken, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"csX" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"csY" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"csZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/fsmaint) +"cta" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"ctb" = ( +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/neutral/side{ + tag = "icon-neutral (WEST)"; + dir = 8 + }, +/area/crew_quarters/sleep) +"ctc" = ( +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"ctd" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + tag = "icon-neutral (EAST)"; + dir = 4 + }, +/area/crew_quarters/sleep) +"cte" = ( +/turf/closed/wall, +/area/crew_quarters/toilet) +"ctf" = ( +/obj/machinery/shower{ + tag = "icon-shower (EAST)"; + icon_state = "shower"; + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"ctg" = ( +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"cth" = ( +/obj/machinery/shower{ + dir = 8 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"cti" = ( +/obj/structure/cable/green, +/obj/machinery/power/apc{ + auto_name = 0; + dir = 8; + name = "Dormitory Showers"; + pixel_x = -25; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/crew_quarters/toilet) +"ctj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 9 + }, +/turf/closed/wall, +/area/maintenance/asmaint2) +"ctk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"ctl" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + external_pressure_bound = 120; + initialize_directions = 1; + internal_pressure_bound = 4000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/bluegrid{ + name = "Server Base"; + initial_gas_mix = "n2=500;TEMP=80" + }, +/area/toxins/server) +"ctm" = ( +/obj/structure/cable/pink{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/black{ + name = "Server Walkway"; + initial_gas_mix = "n2=500;TEMP=80" + }, +/area/toxins/server) +"ctn" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + external_pressure_bound = 140; + on = 1; + pressure_checks = 0 + }, +/obj/structure/cable/pink{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + aidisabled = 0; + auto_name = 1; + cell_type = 2500; + dir = 4; + name = "Autoname APC East"; + pixel_x = 24; + pixel_y = 0 + }, +/turf/open/floor/bluegrid{ + name = "Server Base"; + initial_gas_mix = "n2=500;TEMP=80" + }, +/area/toxins/server) +"cto" = ( +/obj/structure/table, +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the RD's goons."; + name = "Research Monitor"; + network = list("Sci"); + pixel_x = 0; + pixel_y = 2 + }, +/obj/machinery/light_switch{ + pixel_x = -24; + tag = "w" + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (WEST)"; + dir = 8 + }, +/area/security/checkpoint/science) +"ctp" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/effect/landmark/start/depsec/science, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/security/checkpoint/science) +"ctq" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (EAST)"; + dir = 4 + }, +/area/security/checkpoint/science) +"ctr" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_security{ + name = "Security Office"; + req_access_txt = "63" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkred, +/area/security/checkpoint/science) +"cts" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/whitered/side{ + tag = "icon-whitered (WEST)"; + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"ctt" = ( +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/pink{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"ctu" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (EAST)"; + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0; + tag = "e" + }, +/turf/open/floor/plasteel/white/side{ + dir = 10 + }, +/area/medical/research{ + name = "Research Division" + }) +"ctv" = ( +/obj/structure/displaycase/labcage, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/machinery/ai_status_display{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/darkpurple/side{ + tag = "icon-darkpurple (NORTHEAST)"; + dir = 5 + }, +/area/crew_quarters/hor) +"ctw" = ( +/obj/machinery/computer/mecha, +/obj/machinery/light_switch{ + pixel_y = 24; + tag = "n" + }, +/turf/open/floor/plasteel/darkpurple/side{ + tag = "icon-darkpurple (SOUTHWEST)"; + dir = 10 + }, +/area/crew_quarters/hor) +"ctx" = ( +/obj/machinery/computer/robotics, +/obj/machinery/keycard_auth{ + pixel_x = -6; + pixel_y = 24 + }, +/obj/machinery/button/door{ + id = "rdprivacy"; + name = "Privacy Shutters Control"; + pixel_x = 5; + pixel_y = 24 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/darkpurple/side, +/area/crew_quarters/hor) +"cty" = ( +/obj/machinery/computer/card/minor/rd, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Research Director's Desk"; + departmentType = 5; + name = "Research Director RC"; + pixel_x = -2; + pixel_y = 30 + }, +/obj/machinery/camera{ + c_tag = "Research Director's Office"; + network = list("SS13","RD"); + start_active = 1 + }, +/turf/open/floor/plasteel/darkpurple/side, +/area/crew_quarters/hor) +"ctz" = ( +/obj/machinery/computer/aifixer, +/obj/machinery/status_display{ + density = 0; + layer = 3; + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plasteel/darkpurple/side{ + tag = "icon-darkpurple (SOUTHEAST)"; + dir = 6 + }, +/area/crew_quarters/hor) +"ctA" = ( +/obj/structure/closet/secure_closet/RD, +/obj/item/device/taperecorder{ + pixel_x = -3 + }, +/obj/item/device/paicard{ + pixel_x = 4 + }, +/obj/item/weapon/bedsheet/rd, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/darkpurple/side{ + tag = "icon-darkpurple (NORTHWEST)"; + dir = 9 + }, +/area/crew_quarters/hor) +"ctB" = ( +/turf/open/floor/engine, +/area/toxins/explab) +"ctC" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/camera{ + c_tag = "Experimentation Chamber"; + network = list("SS13","Sci") + }, +/turf/open/floor/engine, +/area/toxins/explab) +"ctD" = ( +/obj/item/weapon/paper/crumpled{ + info = "While the third enjoys the smack of a baton..." + }, +/obj/structure/cable/orange{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"ctE" = ( +/obj/structure/table, +/obj/machinery/requests_console{ + department = "Cargo Bay"; + departmentType = 2; + name = "Cargo Bay RC"; + pixel_x = -30; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/item/weapon/storage/firstaid/regular, +/obj/machinery/computer/stockexchange, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"ctF" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/chair/stool, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"ctG" = ( +/obj/structure/cable/orange{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"ctH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/filingcabinet/filingcabinet, +/turf/open/floor/plasteel/purple/corner, +/area/quartermaster/office) +"ctI" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/quartermaster/miningdock) +"ctJ" = ( +/obj/structure/closet/secure_closet/miner, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/purple/corner{ + tag = "icon-purplecorner (WEST)"; + dir = 8 + }, +/area/quartermaster/miningdock) +"ctK" = ( +/obj/structure/closet/secure_closet/miner, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTH)"; + dir = 1 + }, +/area/quartermaster/miningdock) +"ctL" = ( +/obj/structure/closet/secure_closet/miner, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel/purple/side{ + tag = "icon-purple (NORTH)"; + dir = 1 + }, +/area/quartermaster/miningdock) +"ctM" = ( +/obj/machinery/mineral/equipment_vendor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTH)"; + dir = 1 + }, +/area/quartermaster/miningdock) +"ctN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/purple/corner{ + tag = "icon-purplecorner (NORTH)"; + dir = 1 + }, +/area/quartermaster/miningdock) +"ctO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"ctP" = ( +/obj/structure/cable/orange{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/purple/corner, +/area/quartermaster/miningdock) +"ctQ" = ( +/obj/item/weapon/ore/gold, +/turf/open/floor/plasteel/purple/corner{ + tag = "icon-purplecorner (WEST)"; + dir = 8 + }, +/area/quartermaster/miningdock) +"ctR" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = 32 + }, +/obj/item/weapon/ore/uranium, +/turf/open/floor/plasteel/warning/corner, +/area/quartermaster/miningdock) +"ctS" = ( +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/mining) +"ctT" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/mining) +"ctU" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"ctV" = ( +/turf/closed/wall/r_wall, +/area/maintenance/starboardsolar) +"ctW" = ( +/obj/machinery/door/airlock/engineering{ + name = "Aft Port Solar Access"; + req_access_txt = "10" + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/starboardsolar) +"ctX" = ( +/obj/structure/cable/green{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 1; + name = "Autoname APC North"; + pixel_x = 0; + pixel_y = 24 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/chapel/office) +"ctY" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/item/wallframe/light_fixture/small, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"ctZ" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cua" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cub" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/grille/broken, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cuc" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/grille/broken, +/obj/item/device/assembly/mousetrap/armed, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cud" = ( +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cue" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cuf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cug" = ( +/obj/structure/cable/green{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 1; + name = "Autoname APC North"; + pixel_x = 0; + pixel_y = 24 + }, +/turf/open/floor/plating/warnplate/corner{ + dir = 8; + tag = "" + }, +/area/maintenance/portsolar) +"cuh" = ( +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/maintenance/portsolar) +"cui" = ( +/obj/machinery/power/smes, +/obj/structure/cable/green{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/turf/open/floor/plating/warnplate/corner{ + dir = 4; + tag = "" + }, +/area/maintenance/portsolar) +"cuj" = ( +/mob/living/simple_animal/mouse, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cuk" = ( +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cul" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cum" = ( +/obj/structure/cable/green{ + tag = "icon-0-10"; + icon_state = "0-10" + }, +/turf/open/floor/plating, +/area/maintenance/electrical) +"cun" = ( +/obj/structure/cable/green{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/electrical) +"cuo" = ( +/obj/structure/cable/green{ + tag = "icon-0-6"; + icon_state = "0-6" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/electrical) +"cup" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plating, +/area/construction) +"cuq" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1 + }, +/turf/open/floor/plating, +/area/construction) +"cur" = ( +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plating, +/area/construction) +"cus" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/construction) +"cut" = ( +/obj/structure/closet/toolcloset, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_x = 26; + pixel_y = -2; + tag = "EAST" + }, +/turf/open/floor/plating, +/area/construction) +"cuu" = ( +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/fsmaint) +"cuv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cuw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/sleep) +"cux" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + tag = "icon-neutral (WEST)"; + dir = 8 + }, +/area/crew_quarters/sleep) +"cuy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"cuz" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + tag = "icon-neutral (EAST)"; + dir = 4 + }, +/area/crew_quarters/sleep) +"cuA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/toilet) +"cuB" = ( +/obj/machinery/shower{ + tag = "icon-shower (EAST)"; + icon_state = "shower"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"cuC" = ( +/obj/machinery/light/small, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"cuD" = ( +/obj/machinery/shower{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"cuE" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cuF" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cuG" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'SERVER ROOM'."; + name = "SERVER ROOM"; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/toxins/server) +"cuH" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, +/obj/machinery/door/airlock/glass_command{ + name = "Server Access"; + req_access_txt = "30" + }, +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black, +/area/toxins/server) +"cuI" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/turf/open/floor/plating, +/area/toxins/server) +"cuJ" = ( +/obj/machinery/ai_status_display, +/turf/closed/wall/r_wall, +/area/security/checkpoint/science) +"cuK" = ( +/obj/structure/table, +/obj/machinery/recharger, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 2; + name = "Autoname APC South"; + pixel_x = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/darkred/side{ + dir = 10 + }, +/area/security/checkpoint/science) +"cuL" = ( +/obj/structure/table, +/obj/machinery/requests_console{ + department = "Security"; + departmentType = 5; + name = "Science Post RC"; + pixel_y = -30 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/obj/machinery/camera{ + c_tag = "Science Security Post"; + dir = 1; + network = list("SS13","Sci") + }, +/obj/item/device/radio/off, +/turf/open/floor/plasteel/darkred/side, +/area/security/checkpoint/science) +"cuM" = ( +/obj/structure/filingcabinet, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/darkred/side{ + tag = "icon-darkred (SOUTHEAST)"; + dir = 6 + }, +/area/security/checkpoint/science) +"cuN" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/checkpoint/science) +"cuO" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whitered/corner{ + tag = "icon-whiteredcorner (NORTH)"; + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"cuP" = ( +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"cuQ" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 10 + }, +/area/medical/research{ + name = "Research Division" + }) +"cuR" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/pink{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "rdprivacy"; + name = "privacy shutter" + }, +/turf/open/floor/plating, +/area/crew_quarters/hor) +"cuS" = ( +/obj/item/weapon/circuitboard/aicore{ + pixel_x = -2; + pixel_y = 4 + }, +/obj/item/weapon/circuitboard/computer/teleporter, +/obj/item/device/aicard, +/obj/structure/cable/pink{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/darkpurple/side{ + tag = "icon-darkpurple (EAST)"; + dir = 4 + }, +/area/crew_quarters/hor) +"cuT" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/hor) +"cuU" = ( +/obj/structure/chair/office/dark, +/obj/effect/landmark/start{ + name = "Research Director" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/hor) +"cuV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/hor) +"cuW" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/hor) +"cuX" = ( +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_x = 26; + pixel_y = -2; + tag = "EAST" + }, +/turf/open/floor/plasteel/darkpurple/side{ + tag = "icon-darkpurple (WEST)"; + dir = 8 + }, +/area/crew_quarters/hor) +"cuY" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/engine, +/area/toxins/explab) +"cuZ" = ( +/obj/machinery/r_n_d/experimentor{ + pixel_x = -16 + }, +/turf/open/floor/engine, +/area/toxins/explab) +"cva" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/engine, +/area/toxins/explab) +"cvb" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/structure/closet/crate, +/obj/item/stack/sheet/cardboard{ + amount = 14 + }, +/obj/machinery/camera{ + c_tag = "Cargo Warehouse"; + dir = 4; + network = list("SS13") + }, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"cvc" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/structure/closet/cardboard, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"cvd" = ( +/obj/structure/closet/crate, +/obj/structure/cable/orange{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"cve" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"cvf" = ( +/obj/structure/cable/orange{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/closed/wall{ + desc = "A huge chunk of metal used to separate rooms. There is a small hook etched on it." + }, +/area/quartermaster/storage) +"cvg" = ( +/obj/structure/cable/orange{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 8; + name = "Autoname APC West"; + pixel_x = -25; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cvh" = ( +/obj/structure/cable/orange{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/orange{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cvi" = ( +/obj/structure/cable/orange{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/orange{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cvj" = ( +/obj/structure/cable/orange{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cvk" = ( +/obj/structure/cable/orange{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (EAST)"; + dir = 4 + }, +/area/quartermaster/office) +"cvl" = ( +/obj/structure/cable/orange{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/mining{ + glass = 1; + opacity = 0; + req_access_txt = "48" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"cvm" = ( +/obj/structure/cable/orange{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (WEST)"; + dir = 8 + }, +/area/quartermaster/miningdock) +"cvn" = ( +/obj/structure/cable/orange{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"cvo" = ( +/obj/structure/cable/orange{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"cvp" = ( +/obj/structure/cable/orange{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"cvq" = ( +/obj/structure/cable/orange{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"cvr" = ( +/obj/structure/cable/orange{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (EAST)"; + dir = 4 + }, +/area/quartermaster/miningdock) +"cvs" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_mining{ + name = "Mining Dock"; + req_access_txt = "48" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"cvt" = ( +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (WEST)"; + dir = 8 + }, +/area/quartermaster/miningdock) +"cvu" = ( +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/quartermaster/miningdock) +"cvv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cvw" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Mining Shuttle Airlock"; + req_access_txt = "0" + }, +/turf/open/floor/plating, +/area/shuttle/mining) +"cvx" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Mining Shuttle Airlock"; + req_access_txt = "0" + }, +/obj/docking_port/mobile{ + dir = 8; + dwidth = 3; + height = 5; + id = "mining"; + name = "mining shuttle"; + port_angle = 90; + width = 7 + }, +/obj/docking_port/stationary{ + dir = 8; + dwidth = 3; + height = 5; + id = "mining_home"; + name = "mining shuttle bay"; + width = 7 + }, +/turf/open/floor/plating, +/area/shuttle/mining) +"cvy" = ( +/obj/machinery/door/airlock/external{ + name = "External Access"; + req_access = null; + req_access_txt = "13" + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cvz" = ( +/obj/item/bodypart/l_arm/robot, +/obj/structure/closet, +/obj/item/weapon/reagent_containers/glass/beaker/large, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cvA" = ( +/obj/item/clothing/neck/petcollar, +/obj/structure/closet/cardboard, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cvB" = ( +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cvC" = ( +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cvD" = ( +/obj/structure/cable/green{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 1; + name = "Autoname APC North"; + pixel_x = 0; + pixel_y = 24 + }, +/turf/open/floor/plating/warnplate/corner{ + dir = 8; + tag = "" + }, +/area/maintenance/starboardsolar) +"cvE" = ( +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/maintenance/starboardsolar) +"cvF" = ( +/obj/machinery/power/smes, +/obj/structure/cable/green{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/turf/open/floor/plating/warnplate/corner{ + dir = 4; + tag = "" + }, +/area/maintenance/starboardsolar) +"cvG" = ( +/obj/structure/girder/displaced, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cvH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fsmaint) +"cvI" = ( +/obj/structure/rack, +/obj/item/weapon/stock_parts/matter_bin, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cvJ" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cvK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/fsmaint) +"cvL" = ( +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fsmaint) +"cvM" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cvN" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/obj/item/wallframe/light_fixture/small, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cvO" = ( +/obj/structure/rack, +/obj/item/weapon/stock_parts/micro_laser, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cvP" = ( +/obj/item/weapon/rack_parts, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cvQ" = ( +/obj/structure/chair/stool, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_x = -25; + pixel_y = -2; + tag = "WEST" + }, +/turf/open/floor/plating, +/area/maintenance/portsolar) +"cvR" = ( +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/portsolar) +"cvS" = ( +/obj/machinery/power/terminal{ + icon_state = "term"; + dir = 1 + }, +/obj/structure/cable/yellow{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/portsolar) +"cvT" = ( +/obj/structure/closet/crate, +/obj/item/trash/semki, +/obj/item/weapon/dice/d4, +/obj/item/weapon/dice/d12, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cvU" = ( +/obj/structure/closet/crate, +/obj/item/weapon/reagent_containers/food/drinks/bottle/wine, +/obj/item/wallframe/light_fixture, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cvV" = ( +/obj/structure/closet/crate, +/obj/item/weapon/stock_parts/capacitor, +/obj/item/weapon/stock_parts/console_screen, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cvW" = ( +/obj/machinery/power/terminal, +/obj/structure/cable/green{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/electrical) +"cvX" = ( +/obj/structure/cable/green{ + tag = "icon-5-8"; + icon_state = "5-8" + }, +/turf/open/floor/plating, +/area/maintenance/electrical) +"cvY" = ( +/obj/structure/cable/green{ + tag = "icon-6-10"; + icon_state = "6-10" + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/electrical) +"cvZ" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/chair/stool, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/electrical) +"cwa" = ( +/obj/structure/cable/green{ + tag = "icon-6-10"; + icon_state = "6-10" + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plating, +/area/maintenance/electrical) +"cwb" = ( +/obj/structure/cable/green{ + tag = "icon-4-9"; + icon_state = "4-9" + }, +/turf/open/floor/plating, +/area/maintenance/electrical) +"cwc" = ( +/obj/machinery/power/terminal, +/obj/structure/cable/green{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/maintenance/electrical) +"cwd" = ( +/obj/item/device/healthanalyzer, +/obj/structure/closet/crate, +/obj/item/clothing/head/radiation, +/turf/open/floor/plasteel/floorgrime, +/area/construction) +"cwe" = ( +/turf/open/floor/plating, +/area/construction) +"cwf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/construction) +"cwg" = ( +/obj/structure/closet/toolcloset, +/obj/item/stack/cable_coil/green, +/turf/open/floor/plating, +/area/construction) +"cwh" = ( +/turf/closed/wall/rust, +/area/construction) +"cwi" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"cwj" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"cwk" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"cwl" = ( +/turf/closed/wall, +/area/crew_quarters/fitness) +"cwm" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cwn" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Fitness" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + tag = "icon-neutral (WEST)"; + dir = 8 + }, +/area/crew_quarters/sleep) +"cwo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/crew_quarters/sleep) +"cwp" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Fitness" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + tag = "icon-neutral (EAST)"; + dir = 4 + }, +/area/crew_quarters/sleep) +"cwq" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Unisex Showers"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"cwr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cws" = ( +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cwt" = ( +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/asmaint2) +"cwu" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + target_temperature = 80; + dir = 4; + icon_state = "freezer"; + on = 1; + tag = "icon-freezer (EAST)" + }, +/obj/machinery/light_switch{ + pixel_x = -24; + tag = "w" + }, +/turf/open/floor/plasteel/black, +/area/toxins/server) +"cwv" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black, +/area/toxins/server) +"cww" = ( +/obj/machinery/computer/rdservercontrol, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/toxins/server) +"cwx" = ( +/turf/closed/wall, +/area/security/checkpoint/science) +"cwy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white/side{ + dir = 6 + }, +/area/medical/research{ + name = "Research Division" + }) +"cwz" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white/side{ + dir = 10 + }, +/area/medical/research{ + name = "Research Division" + }) +"cwA" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/cartridge/signal/toxins, +/obj/item/weapon/cartridge/signal/toxins{ + pixel_x = -4; + pixel_y = 2 + }, +/obj/item/weapon/cartridge/signal/toxins{ + pixel_x = 4; + pixel_y = 6 + }, +/obj/structure/cable/pink{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/darkpurple/side{ + tag = "icon-darkpurple (SOUTHEAST)"; + dir = 6 + }, +/area/crew_quarters/hor) +"cwB" = ( +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "Biohazard"; + name = "Biohazard Shutter Control"; + pixel_x = -5; + pixel_y = 5; + req_access_txt = "47" + }, +/obj/machinery/button/door{ + id = "rnd2"; + name = "Research Lab Shutter Control"; + pixel_x = 5; + pixel_y = 5; + req_access_txt = "47" + }, +/turf/open/floor/plasteel/darkpurple/side{ + tag = "icon-darkpurple (NORTHWEST)"; + dir = 9 + }, +/area/crew_quarters/hor) +"cwC" = ( +/obj/structure/table/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/darkpurple/side{ + tag = "icon-darkpurple (NORTH)"; + dir = 1 + }, +/area/crew_quarters/hor) +"cwD" = ( +/obj/structure/table/reinforced, +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the RD's goons from the safety of this office."; + name = "Research Monitor"; + network = list("Xeno","Sci"); + pixel_x = 0; + pixel_y = 2 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/darkpurple/side{ + tag = "icon-darkpurple (NORTH)"; + dir = 1 + }, +/area/crew_quarters/hor) +"cwE" = ( +/obj/machinery/door/window/northright{ + name = "Research Director's Desk Door"; + req_access_txt = "30" + }, +/turf/open/floor/plasteel/darkpurple/side{ + tag = "icon-darkpurple (NORTHEAST)"; + dir = 5 + }, +/area/crew_quarters/hor) +"cwF" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7; + tag = "every single paper bin is edited to this" + }, +/obj/item/weapon/stamp/rd{ + pixel_x = 3; + pixel_y = -2 + }, +/turf/open/floor/plasteel/darkpurple/side{ + tag = "icon-darkpurple (SOUTHWEST)"; + dir = 10 + }, +/area/crew_quarters/hor) +"cwG" = ( +/obj/machinery/button/door{ + id = "telelab"; + name = "Test Chamber Blast Doors"; + pixel_x = 24; + pixel_y = -24 + }, +/turf/open/floor/engine, +/area/toxins/explab) +"cwH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/closed/wall/r_wall, +/area/maintenance/asmaint2) +"cwI" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/green{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cwJ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/green{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cwK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/turf/closed/wall/r_wall, +/area/maintenance/apmaint) +"cwL" = ( +/obj/structure/closet/crate, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/item/key{ + desc = "A tiny grey key." + }, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"cwM" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/obj/structure/cable/orange{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"cwN" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=2"; + freq = 1400; + location = "QM #1" + }, +/mob/living/simple_animal/bot/mulebot{ + beacon_freq = 1400; + home_destination = "QM #1"; + suffix = "#1" + }, +/turf/open/floor/plasteel/bot{ + dir = 2 + }, +/area/quartermaster/storage) +"cwO" = ( +/obj/structure/cable/orange{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=2"; + freq = 1400; + location = "QM #2" + }, +/mob/living/simple_animal/bot/mulebot{ + home_destination = "QM #2"; + suffix = "#2" + }, +/turf/open/floor/plasteel/bot{ + dir = 2 + }, +/area/quartermaster/storage) +"cwP" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=2"; + freq = 1400; + location = "QM #3" + }, +/turf/open/floor/plasteel/bot{ + dir = 2 + }, +/area/quartermaster/storage) +"cwQ" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=2"; + freq = 1400; + location = "QM #4" + }, +/turf/open/floor/plasteel/bot{ + dir = 2 + }, +/area/quartermaster/storage) +"cwR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/brown, +/area/quartermaster/office) +"cwS" = ( +/obj/structure/cable/orange{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/brown, +/area/quartermaster/office) +"cwT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/brown, +/area/quartermaster/office) +"cwU" = ( +/obj/machinery/light/small, +/turf/open/floor/plasteel/brown/corner{ + tag = "icon-browncorner (WEST)"; + dir = 8 + }, +/area/quartermaster/office) +"cwV" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cwW" = ( +/turf/open/floor/plasteel/purple/corner{ + tag = "icon-purplecorner (EAST)"; + dir = 4 + }, +/area/quartermaster/office) +"cwX" = ( +/obj/machinery/computer/security/mining, +/turf/open/floor/plasteel/purple/corner{ + tag = "icon-purplecorner (NORTH)"; + dir = 1 + }, +/area/quartermaster/miningdock) +"cwY" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/effect/landmark/start{ + name = "Shaft Miner" + }, +/turf/open/floor/plasteel/brown, +/area/quartermaster/miningdock) +"cwZ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/purple/side, +/area/quartermaster/miningdock) +"cxa" = ( +/obj/machinery/requests_console{ + department = "Mining"; + departmentType = 0; + name = "Mining RC"; + pixel_x = 0; + pixel_y = -30 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/brown, +/area/quartermaster/miningdock) +"cxb" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/obj/machinery/camera{ + c_tag = "Mining Office"; + dir = 1; + network = list("SS13") + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = -25; + tag = "SOUTH" + }, +/turf/open/floor/plasteel/purple/side, +/area/quartermaster/miningdock) +"cxc" = ( +/obj/effect/landmark/start{ + name = "Shaft Miner" + }, +/turf/open/floor/plasteel/brown, +/area/quartermaster/miningdock) +"cxd" = ( +/obj/machinery/computer/shuttle/mining, +/turf/open/floor/plasteel/purple/corner{ + tag = "icon-purplecorner (EAST)"; + dir = 4 + }, +/area/quartermaster/miningdock) +"cxe" = ( +/obj/structure/ore_box, +/turf/open/floor/plasteel/purple/corner{ + tag = "icon-purplecorner (NORTH)"; + dir = 1 + }, +/area/quartermaster/miningdock) +"cxf" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/warning/corner{ + tag = "icon-warningcorner (WEST)"; + dir = 8 + }, +/area/quartermaster/miningdock) +"cxg" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cxh" = ( +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/apmaint) +"cxi" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cxj" = ( +/obj/structure/falsewall, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/apmaint) +"cxk" = ( +/obj/structure/chair/stool, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_x = -25; + pixel_y = -2; + tag = "WEST" + }, +/turf/open/floor/plating, +/area/maintenance/starboardsolar) +"cxl" = ( +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/starboardsolar) +"cxm" = ( +/obj/machinery/power/terminal{ + icon_state = "term"; + dir = 1 + }, +/obj/structure/cable/yellow{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboardsolar) +"cxn" = ( +/turf/closed/wall/r_wall, +/area/maintenance/fsmaint) +"cxo" = ( +/obj/item/weapon/restraints/legcuffs/beartrap{ + armed = 1 + }, +/obj/structure/falsewall/reinforced, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fsmaint) +"cxp" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Firefighting equipment"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cxq" = ( +/obj/structure/cable/yellow{ + d2 = 4; + icon_state = "0-4" + }, +/obj/machinery/power/solar_control{ + id = "portsolar"; + name = "Aft Port Solar Control"; + track = 0 + }, +/turf/open/floor/plating/warnplate/corner{ + dir = 2; + tag = "" + }, +/area/maintenance/portsolar) +"cxr" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating/warnplate, +/area/maintenance/portsolar) +"cxs" = ( +/obj/machinery/camera{ + c_tag = "Aft Port Solar Control Room"; + dir = 8; + network = list("SS13"); + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plating/warnplate/corner{ + dir = 1; + tag = "" + }, +/area/maintenance/portsolar) +"cxt" = ( +/obj/machinery/power/smes{ + charge = 0 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable/green{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/maintenance/electrical) +"cxu" = ( +/obj/structure/cable/green{ + tag = "icon-5-8"; + icon_state = "5-8" + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/electrical) +"cxv" = ( +/obj/structure/cable/green{ + tag = "icon-0-9"; + icon_state = "0-9" + }, +/obj/structure/cable/green{ + tag = "icon-0-5"; + icon_state = "0-5" + }, +/obj/structure/cable/green, +/obj/machinery/computer/monitor{ + name = "backup power monitoring console" + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = -25; + tag = "SOUTH" + }, +/turf/open/floor/plating, +/area/maintenance/electrical) +"cxw" = ( +/obj/machinery/power/smes{ + charge = 0 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable/green{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/maintenance/electrical) +"cxx" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plasteel/floorgrime, +/area/construction) +"cxy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/construction) +"cxz" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/construction) +"cxA" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plating, +/area/construction) +"cxB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/mob/living/simple_animal/mouse, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cxC" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"cxD" = ( +/turf/open/floor/engine{ + name = "Holodeck Projector Floor" + }, +/area/holodeck/rec_center) +"cxE" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -27; + pixel_y = 0; + tag = "w" + }, +/turf/open/floor/plasteel/black/corner{ + tag = "icon-blackcorner (NORTH)"; + dir = 1 + }, +/area/crew_quarters/fitness) +"cxF" = ( +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"cxG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"cxH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"cxI" = ( +/obj/machinery/camera{ + c_tag = "Fitness North"; + network = list("SS13") + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"cxJ" = ( +/turf/open/floor/plasteel/black/corner{ + tag = "icon-blackcorner (EAST)"; + dir = 4 + }, +/area/crew_quarters/fitness) +"cxK" = ( +/obj/structure/closet/crate, +/obj/item/stack/medical/bruise_pack, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cxL" = ( +/obj/structure/closet/crate, +/obj/item/weapon/reagent_containers/syringe, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/clothing/head/hasturhood{ + desc = "A puke-yellow hood. Looking at it makes you want to vomit."; + name = "strange hood" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cxM" = ( +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/closet/cardboard, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cxN" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/clothing/suit/hastur{ + desc = "A puke-yellow robe. Looking at it makes you want to vomit."; + name = "strange robe" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cxO" = ( +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/toxins/server) +"cxP" = ( +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/black, +/area/toxins/server) +"cxQ" = ( +/obj/structure/chair/office/light{ + dir = 1; + pixel_y = 3 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = -25; + tag = "SOUTH" + }, +/turf/open/floor/plasteel/black, +/area/toxins/server) +"cxR" = ( +/obj/item/weapon/relic, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/medical/research{ + name = "Research Division" + }) +"cxS" = ( +/obj/item/weapon/stock_parts/capacitor{ + desc = "A research-y capacitor, for research."; + name = "research"; + origin_tech = "powerstorage=3" + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/medical/research{ + name = "Research Division" + }) +"cxT" = ( +/obj/item/weapon/twohanded/dualsaber/toy, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/medical/research{ + name = "Research Division" + }) +"cxU" = ( +/turf/closed/wall, +/area/medical/research{ + name = "Research Division" + }) +"cxV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/turf/open/floor/plasteel/white/side{ + dir = 6 + }, +/area/medical/research{ + name = "Research Division" + }) +"cxW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white/side{ + dir = 10 + }, +/area/medical/research{ + name = "Research Division" + }) +"cxX" = ( +/obj/machinery/disposal/bin, +/obj/structure/cable/pink{ + tag = "icon-4-10"; + icon_state = "4-10" + }, +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/pink{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/pink{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 1 + }, +/area/crew_quarters/hor) +"cxY" = ( +/obj/item/weapon/twohanded/required/kirbyplants/dead, +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/pink{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 5; + tag = "icon-whitehall (WEST)" + }, +/area/crew_quarters/hor) +"cxZ" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/structure/cable/pink{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/pink{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 2 + }, +/area/crew_quarters/hor) +"cya" = ( +/obj/structure/cable/pink{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 9 + }, +/area/crew_quarters/hor) +"cyb" = ( +/obj/structure/cable/pink{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 1 + }, +/area/crew_quarters/hor) +"cyc" = ( +/obj/structure/cable/pink{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 2; + name = "Autoname APC South"; + pixel_x = 1; + pixel_y = -24 + }, +/obj/machinery/suit_storage_unit/rd, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 1 + }, +/area/crew_quarters/hor) +"cyd" = ( +/obj/machinery/door/poddoor/preopen{ + id = "telelab"; + name = "test chamber blast door" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/toxins/explab) +"cye" = ( +/obj/machinery/door/poddoor/preopen{ + id = "telelab"; + name = "test chamber blast door" + }, +/turf/open/floor/engine, +/area/toxins/explab) +"cyf" = ( +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cyg" = ( +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cyh" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cyi" = ( +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/apmaint) +"cyj" = ( +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cyk" = ( +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cyl" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Cargo Bay Warehouse Maintenance"; + req_access_txt = "31" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"cym" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"cyn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"cyo" = ( +/obj/structure/cable/orange{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"cyp" = ( +/obj/structure/closet/crate/medical, +/obj/item/weapon/paper, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"cyq" = ( +/turf/open/floor/plasteel/delivery, +/area/quartermaster/storage) +"cyr" = ( +/obj/structure/cable/orange{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/storage) +"cys" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/mining{ + name = "Cargo Bay"; + req_one_access_txt = "48;50" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cyt" = ( +/obj/structure/cable/orange{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/grille, +/obj/structure/window/reinforced/tinted/fulltile, +/turf/open/floor/plating, +/area/quartermaster/office) +"cyu" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/mining{ + name = "Cargo Bay"; + req_one_access_txt = "48;50" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cyv" = ( +/turf/closed/wall, +/area/quartermaster/qm) +"cyw" = ( +/obj/structure/closet/crate, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/mining) +"cyx" = ( +/obj/structure/shuttle/engine/heater, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/shuttle/mining) +"cyy" = ( +/obj/structure/ore_box, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/mining) +"cyz" = ( +/obj/structure/cable/yellow{ + d2 = 4; + icon_state = "0-4" + }, +/obj/machinery/power/solar_control{ + id = "starboardsolar"; + name = "Aft Starboard Solar Control"; + track = 0 + }, +/turf/open/floor/plating/warnplate/corner{ + dir = 2; + tag = "" + }, +/area/maintenance/starboardsolar) +"cyA" = ( +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating/warnplate, +/area/maintenance/starboardsolar) +"cyB" = ( +/obj/item/stack/cable_coil/yellow, +/obj/machinery/camera{ + c_tag = "Aft Starboard Solar Control Room"; + dir = 8; + network = list("SS13"); + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plating/warnplate/corner{ + dir = 1; + tag = "" + }, +/area/maintenance/starboardsolar) +"cyC" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/tinted/fulltile, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cyD" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cyE" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/portsolar) +"cyF" = ( +/obj/structure/cable/yellow{ + tag = "icon-1-6"; + icon_state = "1-6"; + d1 = 4; + d2 = 8 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"cyG" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance{ + name = "Construction Area Maintenance"; + req_access_txt = "32" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/construction) +"cyH" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cyI" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/table, +/obj/item/weapon/storage/box/hug/medical, +/turf/open/floor/plasteel/black/corner{ + tag = "icon-blackcorner (NORTH)"; + dir = 1 + }, +/area/crew_quarters/fitness) +"cyJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/crew_quarters/fitness) +"cyK" = ( +/obj/structure/chair, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/fitness) +"cyL" = ( +/obj/structure/chair, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/fitness) +"cyM" = ( +/obj/structure/chair, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/fitness) +"cyN" = ( +/obj/structure/chair, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/fitness) +"cyO" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (WEST)"; + dir = 8 + }, +/area/crew_quarters/fitness) +"cyP" = ( +/obj/machinery/disposal/bin, +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/black/corner{ + tag = "icon-blackcorner (EAST)"; + dir = 4 + }, +/area/crew_quarters/fitness) +"cyQ" = ( +/turf/closed/wall/rust, +/area/maintenance/asmaint2) +"cyR" = ( +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Server Room"; + req_access = null; + req_access_txt = "30" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/toxins/server) +"cyS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/toxins/server) +"cyT" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 2 + }, +/area/medical/research{ + name = "Research Division" + }) +"cyU" = ( +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 2 + }, +/area/medical/research{ + name = "Research Division" + }) +"cyV" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 2 + }, +/area/medical/research{ + name = "Research Division" + }) +"cyW" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/pink{ + tag = "icon-0-5"; + icon_state = "0-5" + }, +/obj/machinery/door/poddoor/preopen{ + id = "rdprivacy"; + name = "privacy shutter" + }, +/turf/open/floor/plating, +/area/crew_quarters/hor) +"cyX" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/pink, +/obj/machinery/door/poddoor/preopen{ + id = "rdprivacy"; + name = "privacy shutter" + }, +/turf/open/floor/plating, +/area/crew_quarters/hor) +"cyY" = ( +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_command{ + glass = 0; + name = "Research Director"; + opacity = 1; + req_access_txt = "30" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whitepurple, +/area/crew_quarters/hor) +"cyZ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/pink, +/obj/machinery/door/poddoor/preopen{ + id = "rdprivacy"; + name = "privacy shutter" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/crew_quarters/hor) +"cza" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -27; + pixel_y = 0 + }, +/obj/machinery/requests_console{ + department = "Science"; + departmentType = 2; + name = "Science Requests Console"; + pixel_x = 0; + pixel_y = 30 + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/warning{ + dir = 2 + }, +/area/toxins/explab) +"czb" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7; + tag = "every single paper bin is edited to this" + }, +/obj/item/weapon/pen, +/obj/item/weapon/book/manual/experimentor, +/turf/open/floor/plasteel/warning{ + dir = 2 + }, +/area/toxins/explab) +"czc" = ( +/obj/machinery/computer/rdconsole/experiment, +/turf/open/floor/plasteel/warning{ + dir = 2 + }, +/area/toxins/explab) +"czd" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/wrench, +/obj/item/weapon/crowbar, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/obj/item/clothing/glasses/science, +/obj/item/device/multitool{ + pixel_x = 3 + }, +/turf/open/floor/plasteel/warning{ + dir = 2 + }, +/area/toxins/explab) +"cze" = ( +/obj/machinery/button/door{ + id = "telelab"; + name = "Test Chamber Blast Doors"; + pixel_x = 24; + pixel_y = 24 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_x = 26; + pixel_y = -2; + tag = "EAST" + }, +/turf/open/floor/plasteel/warning{ + dir = 2 + }, +/area/toxins/explab) +"czf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/closed/wall, +/area/maintenance/asmaint2) +"czg" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"czh" = ( +/obj/structure/closet/crate/internals, +/obj/item/weapon/paper, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"czi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"czj" = ( +/obj/structure/cable/orange{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"czk" = ( +/obj/structure/closet/crate/freezer, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"czl" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -27; + pixel_y = 0; + tag = "w" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"czm" = ( +/obj/structure/cable/orange{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"czn" = ( +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"czo" = ( +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/brown/corner{ + tag = "icon-browncorner (EAST)"; + dir = 4 + }, +/area/quartermaster/storage) +"czp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTH)"; + dir = 1 + }, +/area/quartermaster/storage) +"czq" = ( +/obj/structure/cable/orange{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTH)"; + dir = 1 + }, +/area/quartermaster/storage) +"czr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTH)"; + dir = 1 + }, +/area/quartermaster/storage) +"czs" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/brown/corner{ + tag = "icon-browncorner (NORTH)"; + dir = 1 + }, +/area/quartermaster/storage) +"czt" = ( +/obj/machinery/light_switch{ + pixel_y = 24; + tag = "n" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"czu" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"czv" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/quartermaster/qm) +"czw" = ( +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/obj/machinery/computer/security/mining, +/turf/open/floor/plasteel/darkbrown/side{ + tag = "icon-darkbrown (NORTHWEST)"; + dir = 9 + }, +/area/quartermaster/qm) +"czx" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/computer/cargo, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/darkbrown/side{ + tag = "icon-darkbrown (NORTH)"; + dir = 1 + }, +/area/quartermaster/qm) +"czy" = ( +/obj/machinery/computer/shuttle/mining, +/obj/machinery/light_switch{ + pixel_y = 24; + tag = "n" + }, +/turf/open/floor/plasteel/darkbrown/side{ + tag = "icon-darkbrown (NORTHEAST)"; + dir = 5 + }, +/area/quartermaster/qm) +"czz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 1 + }, +/area/medical/exam_room) +"czA" = ( +/obj/structure/shuttle/engine/propulsion/burst, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/turf/open/floor/plating/airless, +/area/shuttle/mining) +"czB" = ( +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/medical/exam_room) +"czC" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/starboardsolar) +"czD" = ( +/obj/structure/cable/green{ + tag = "icon-1-9"; + icon_state = "1-9" + }, +/obj/structure/grille, +/obj/structure/cable/green{ + tag = "icon-4-9"; + icon_state = "4-9" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"czE" = ( +/obj/structure/chair, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"czF" = ( +/obj/structure/table, +/obj/item/weapon/restraints/handcuffs/cable/green, +/obj/item/weapon/restraints/handcuffs/cable/green, +/obj/item/toy/talking/owl, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"czG" = ( +/obj/structure/closet/firecloset/full, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"czH" = ( +/obj/structure/chair/stool, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"czI" = ( +/obj/structure/table, +/obj/item/wallframe/firealarm, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"czJ" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/maintenance/portsolar) +"czK" = ( +/obj/structure/barricade/wooden, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"czL" = ( +/obj/structure/chair/stool, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/fsmaint) +"czM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"czN" = ( +/obj/structure/cable/green{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 1; + name = "Autoname APC North"; + pixel_x = 0; + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/construction) +"czO" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fsmaint) +"czP" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"czQ" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (EAST)"; + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"czR" = ( +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"czS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side{ + tag = "icon-neutral (EAST)"; + dir = 4 + }, +/area/crew_quarters/fitness) +"czT" = ( +/obj/machinery/door/window/eastright{ + base_state = "left"; + dir = 8; + icon_state = "left"; + name = "Fitness Ring" + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/fitness) +"czU" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/fitness) +"czV" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/crew_quarters/fitness) +"czW" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/fitness) +"czX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/side{ + tag = "icon-neutral (WEST)"; + dir = 8 + }, +/area/crew_quarters/fitness) +"czY" = ( +/obj/structure/closet/lasertag/red, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"czZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/asmaint2) +"cAa" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cAb" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Science Maintenance"; + req_access_txt = "47" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/research{ + name = "Research Division" + }) +"cAc" = ( +/obj/machinery/door/poddoor/preopen{ + id = "Biohazard"; + name = "biohazard containment door" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"cAd" = ( +/obj/structure/cable/pink{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"cAe" = ( +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"cAf" = ( +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Science Hallway West"; + network = list("SS13","Sci") + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"cAg" = ( +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"cAh" = ( +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/pink{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"cAi" = ( +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"cAj" = ( +/obj/structure/cable/pink{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/pink{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"cAk" = ( +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"cAl" = ( +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"cAm" = ( +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"cAn" = ( +/obj/structure/cable/pink{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/pink{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/sortjunction{ + dir = 8; + icon_state = "pipe-j1s"; + sortType = 13 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"cAo" = ( +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"cAp" = ( +/obj/machinery/door/poddoor/preopen{ + id = "Biohazard"; + name = "biohazard containment door" + }, +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"cAq" = ( +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research{ + name = "Experimentation Lab"; + req_access_txt = "7" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple, +/area/toxins/explab) +"cAr" = ( +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/junction{ + dir = 8; + icon_state = "pipe-j1"; + tag = "icon-pipe-j1 (EAST)" + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 8 + }, +/area/toxins/explab) +"cAs" = ( +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/explab) +"cAt" = ( +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/chair/office/light{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/toxins/explab) +"cAu" = ( +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/explab) +"cAv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/pink{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/white, +/area/toxins/explab) +"cAw" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Experimentation Lab Maintenance"; + req_access_txt = "7" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/toxins/explab) +"cAx" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (EAST)"; + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cAy" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cAz" = ( +/turf/open/floor/plasteel/brown, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/poddoor/shutters{ + id = "qm_warehouse"; + name = "warehouse shutters" + }, +/obj/machinery/button/door{ + id = "qm_warehouse"; + name = "Warehouse Door Control"; + pixel_x = -24; + pixel_y = 0; + req_access_txt = "31" + }, +/turf/open/floor/plasteel/warningline, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"cAA" = ( +/turf/open/floor/plasteel/brown, +/obj/structure/cable/orange{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/poddoor/shutters{ + id = "qm_warehouse"; + name = "warehouse shutters" + }, +/turf/open/floor/plasteel/warningline, +/area/quartermaster/sorting{ + name = "\improper Warehouse" + }) +"cAB" = ( +/obj/structure/cable/orange{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 8; + name = "Autoname APC West"; + pixel_x = -25; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"cAC" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"cAD" = ( +/obj/structure/cable/orange{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"cAE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"cAF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"cAG" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/quartermaster/qm) +"cAH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/darkbrown/corner{ + tag = "icon-darkbrowncorners (NORTH)"; + dir = 1 + }, +/area/quartermaster/qm) +"cAI" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/effect/landmark/start{ + name = "Quartermaster" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/quartermaster/qm) +"cAJ" = ( +/obj/structure/table, +/obj/item/weapon/folder/yellow, +/obj/item/weapon/pen/red, +/obj/machinery/computer/stockexchange, +/turf/open/floor/plasteel/darkbrown/corner{ + tag = "icon-darkbrowncorners (EAST)"; + dir = 4 + }, +/area/quartermaster/qm) +"cAK" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/maintenance/starboardsolar) +"cAL" = ( +/obj/structure/closet, +/obj/item/clothing/suit/toggle/owlwings, +/obj/item/clothing/gloves/color/brown, +/obj/item/clothing/mask/gas/owl_mask, +/obj/item/clothing/under/owl, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cAM" = ( +/obj/structure/table, +/obj/item/weapon/grenade/smokebomb, +/obj/item/weapon/grenade/smokebomb, +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cAN" = ( +/obj/structure/table, +/obj/item/weapon/stock_parts/cell, +/obj/item/weapon/melee/baton/cattleprod, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cAO" = ( +/obj/machinery/door/airlock/external{ + name = "External Access"; + req_access = null; + req_access_txt = "13" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cAP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/maintenance/fsmaint) +"cAQ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/turf/open/floor/plasteel/black/corner{ + tag = "icon-blackcorner (NORTH)"; + dir = 1 + }, +/area/crew_quarters/fitness) +"cAR" = ( +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = 20; + tag = "NORTH" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"cAS" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Holodeck Door" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/red, +/area/crew_quarters/fitness) +"cAT" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/fitness) +"cAU" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/fitness) +"cAV" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/fitness) +"cAW" = ( +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/fitness) +"cAX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/side{ + tag = "icon-neutral (WEST)"; + dir = 8 + }, +/area/crew_quarters/fitness) +"cAY" = ( +/obj/structure/closet/boxinggloves, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"cAZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cBa" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cBb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + aidisabled = 0; + auto_name = 1; + cell_type = 2500; + dir = 4; + name = "Autoname APC East"; + pixel_x = 24; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cBc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/medical/research{ + name = "Research Division" + }) +"cBd" = ( +/obj/machinery/door/poddoor/preopen{ + id = "Biohazard"; + name = "biohazard containment door" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"cBe" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"cBf" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"cBg" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"cBh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 2; + name = "Autoname APC South"; + pixel_x = 1; + pixel_y = -24 + }, +/obj/structure/cable/pink, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"cBi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"cBj" = ( +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"cBk" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"cBl" = ( +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"cBm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"cBn" = ( +/obj/machinery/door/poddoor/preopen{ + id = "Biohazard"; + name = "biohazard containment door" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"cBo" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/toxins/explab) +"cBp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 8 + }, +/area/toxins/explab) +"cBq" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/white, +/area/toxins/explab) +"cBr" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/whitebot, +/area/toxins/explab) +"cBs" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/toxins/explab) +"cBt" = ( +/obj/structure/cable/pink, +/obj/machinery/power/apc{ + aidisabled = 0; + auto_name = 1; + cell_type = 2500; + dir = 4; + name = "Autoname APC East"; + pixel_x = 24; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/toxins/explab) +"cBu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/toxins/explab) +"cBv" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cBw" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cBx" = ( +/obj/effect/landmark{ + name = "carpspawn" + }, +/turf/open/space, +/area/space/nearstation) +"cBy" = ( +/obj/structure/closet/wardrobe/cargotech, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_x = -25; + pixel_y = -2; + tag = "WEST" + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTH)"; + dir = 1 + }, +/area/quartermaster/storage) +"cBz" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTH)"; + dir = 1 + }, +/area/quartermaster/storage) +"cBA" = ( +/obj/structure/cable/orange{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTH)"; + dir = 1 + }, +/area/quartermaster/storage) +"cBB" = ( +/obj/machinery/requests_console{ + department = "Cargo Bay"; + departmentType = 2; + name = "Cargo Bay RC"; + pixel_x = 0; + pixel_y = 30 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTH)"; + dir = 1 + }, +/area/quartermaster/storage) +"cBC" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"cBD" = ( +/obj/structure/cable/orange{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"cBE" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"cBF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot{ + dir = 1 + }, +/area/quartermaster/storage) +"cBG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/bot{ + dir = 1 + }, +/area/quartermaster/storage) +"cBH" = ( +/obj/structure/cable/orange{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/orange{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/bot{ + dir = 1 + }, +/area/quartermaster/storage) +"cBI" = ( +/obj/structure/cable/orange{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/bot{ + dir = 1 + }, +/area/quartermaster/storage) +"cBJ" = ( +/obj/structure/cable/orange{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/bot{ + dir = 1 + }, +/area/quartermaster/storage) +"cBK" = ( +/obj/structure/cable/orange{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"cBL" = ( +/obj/structure/cable/orange{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_mining{ + name = "Quartermaster"; + req_access_txt = "41" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/darkbrown/side{ + tag = "icon-darkbrown (WEST)"; + dir = 8 + }, +/area/quartermaster/qm) +"cBM" = ( +/obj/structure/cable/orange{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/quartermaster/qm) +"cBN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/quartermaster/qm) +"cBO" = ( +/obj/structure/table, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/item/weapon/clipboard, +/obj/item/weapon/stamp/qm, +/turf/open/floor/plasteel/black, +/area/quartermaster/qm) +"cBP" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/space, +/area/solar/starboard) +"cBQ" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cBR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/closed/wall, +/area/maintenance/fsmaint) +"cBS" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fsmaint) +"cBT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/fitness) +"cBU" = ( +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"cBV" = ( +/obj/machinery/computer/holodeck, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"cBW" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"cBX" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"cBY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"cBZ" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + tag = "icon-neutral (EAST)"; + dir = 4 + }, +/area/crew_quarters/fitness) +"cCa" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/fitness) +"cCb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/fitness) +"cCc" = ( +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/fitness) +"cCd" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/side{ + tag = "icon-neutral (WEST)"; + dir = 8 + }, +/area/crew_quarters/fitness) +"cCe" = ( +/obj/structure/closet/masks, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = 31 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"cCf" = ( +/mob/living/simple_animal/mouse/white, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cCg" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/window/reinforced/tinted/fulltile, +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cCh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cCi" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cCj" = ( +/turf/closed/wall/r_wall, +/area/medical/research{ + name = "Research Division" + }) +"cCk" = ( +/turf/closed/wall/r_wall, +/area/toxins/storage) +"cCl" = ( +/turf/closed/wall, +/area/toxins/storage) +"cCm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"cCn" = ( +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"cCo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"cCp" = ( +/obj/machinery/vending/cigarette, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"cCq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/closed/wall/rust, +/area/maintenance/atmos_control) +"cCr" = ( +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (NORTH)"; + dir = 1 + }, +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (NORTH)"; + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"cCs" = ( +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (NORTHEAST)"; + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (NORTHEAST)"; + dir = 5 + }, +/area/medical/research{ + name = "Research Division" + }) +"cCt" = ( +/obj/machinery/vending/coffee, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/machinery/light, +/obj/machinery/camera{ + c_tag = "Science Hallway East"; + dir = 1; + network = list("SS13","Sci") + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"cCu" = ( +/obj/structure/closet/bombcloset, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/toxins/explab) +"cCv" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/closet/l3closet/scientist, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/toxins/explab) +"cCw" = ( +/obj/structure/closet/radiation, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Experimentation Lab"; + dir = 1; + network = list("SS13","Sci") + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/toxins/explab) +"cCx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/toxins/explab) +"cCy" = ( +/obj/structure/closet/wardrobe/science_white, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/toxins/explab) +"cCz" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cCA" = ( +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/table, +/obj/item/weapon/hand_labeler, +/obj/item/weapon/hand_labeler, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"cCB" = ( +/obj/structure/cable/orange{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"cCC" = ( +/obj/structure/cable/orange{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/orange{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"cCD" = ( +/obj/structure/cable/orange{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"cCE" = ( +/obj/structure/cable/orange{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/orange{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"cCF" = ( +/obj/structure/cable/orange{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/orange{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/loadingarea, +/area/quartermaster/storage) +"cCG" = ( +/obj/structure/cable/orange{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"cCH" = ( +/obj/structure/cable/orange{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"cCI" = ( +/obj/structure/cable/orange{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"cCJ" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"cCK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"cCL" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"cCM" = ( +/turf/open/floor/plasteel/loadingarea{ + tag = "icon-loadingarea (NORTH)"; + dir = 1 + }, +/area/quartermaster/storage) +"cCN" = ( +/obj/structure/cable/orange{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/black, +/area/quartermaster/qm) +"cCO" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + frequency = 1439; + id_tag = null; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/quartermaster/qm) +"cCP" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/black, +/area/quartermaster/qm) +"cCQ" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/space, +/area/solar/port) +"cCR" = ( +/obj/machinery/door/airlock/external{ + name = "External Access"; + req_access = null; + req_access_txt = "13" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"cCS" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cCT" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cCU" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"cCV" = ( +/obj/structure/table, +/obj/item/weapon/paper{ + desc = ""; + info = "Brusies sustained in the holodeck can be healed simply by sleeping."; + name = "Holodeck Disclaimer" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"cCW" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"cCX" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"cCY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"cCZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + tag = "icon-neutral (EAST)"; + dir = 4 + }, +/area/crew_quarters/fitness) +"cDa" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/fitness) +"cDb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/fitness) +"cDc" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/fitness) +"cDd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/side{ + tag = "icon-neutral (WEST)"; + dir = 8 + }, +/area/crew_quarters/fitness) +"cDe" = ( +/obj/structure/closet/athletic_mixed, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"cDf" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cDg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cDh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cDi" = ( +/turf/closed/wall/r_wall, +/area/maintenance/asmaint2) +"cDj" = ( +/obj/item/weapon/grenade/clusterbuster/cleaner{ + desc = "A 'Mr. Proper' supercleaning grenade. Will cover the nearby area in foam." + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/asmaint2) +"cDk" = ( +/obj/machinery/portable_atmospherics/canister/toxins, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plasteel/delivery, +/area/toxins/storage) +"cDl" = ( +/obj/machinery/portable_atmospherics/canister/toxins, +/turf/open/floor/plasteel/delivery, +/area/toxins/storage) +"cDm" = ( +/obj/machinery/portable_atmospherics/canister/toxins, +/obj/structure/sign/nosmoking_2{ + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plasteel/delivery, +/area/toxins/storage) +"cDn" = ( +/obj/machinery/portable_atmospherics/canister/toxins, +/obj/machinery/light_switch{ + pixel_y = 24; + tag = "n" + }, +/turf/open/floor/plasteel/delivery, +/area/toxins/storage) +"cDo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/white/side{ + dir = 6 + }, +/area/medical/research{ + name = "Research Division" + }) +"cDp" = ( +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"cDq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/white/side{ + dir = 10 + }, +/area/medical/research{ + name = "Research Division" + }) +"cDr" = ( +/turf/closed/wall, +/area/toxins/mixing) +"cDs" = ( +/obj/structure/sign/fire, +/turf/closed/wall, +/area/toxins/mixing) +"cDt" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/toxins/mixing) +"cDu" = ( +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research{ + name = "Toxins Lab"; + req_access_txt = "8" + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing) +"cDv" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/toxins/mixing) +"cDw" = ( +/turf/closed/wall/r_wall, +/area/toxins/mixing) +"cDx" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cDy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/closed/wall, +/area/toxins/mixing) +"cDz" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/obj/structure/table, +/obj/item/clothing/head/soft, +/obj/item/clothing/head/soft, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"cDA" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"cDB" = ( +/obj/structure/cable/orange{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"cDC" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"cDD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Cargo Bay West"; + dir = 1; + network = list("SS13") + }, +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (EAST)"; + dir = 4 + }, +/area/quartermaster/storage) +"cDE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/conveyor{ + dir = 1; + id = "QMLoad"; + tag = "cargoshuttledown" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"cDF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/quartermaster/storage) +"cDG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/conveyor_switch/oneway{ + convdir = -1; + id = "QMLoad" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"cDH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot{ + dir = 1 + }, +/area/quartermaster/storage) +"cDI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/bot{ + dir = 1 + }, +/area/quartermaster/storage) +"cDJ" = ( +/turf/open/floor/plasteel/bot{ + dir = 1 + }, +/area/quartermaster/storage) +"cDK" = ( +/obj/machinery/conveyor_switch/oneway{ + id = "QMLoad2" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"cDL" = ( +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (EAST)"; + dir = 4 + }, +/area/quartermaster/storage) +"cDM" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "QMLoad2"; + tag = "cargoshuttleup" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"cDN" = ( +/obj/structure/table, +/obj/structure/cable/orange, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 2; + name = "Autoname APC South"; + pixel_x = 1; + pixel_y = -24 + }, +/obj/item/weapon/cartridge/quartermaster, +/obj/item/weapon/cartridge/quartermaster{ + pixel_x = 6; + pixel_y = 5 + }, +/obj/item/weapon/cartridge/quartermaster{ + pixel_x = -4; + pixel_y = 7 + }, +/obj/item/weapon/coin/silver, +/turf/open/floor/plasteel/black, +/area/quartermaster/qm) +"cDO" = ( +/obj/structure/closet/secure_closet/quartermaster, +/obj/item/weapon/bedsheet/qm, +/turf/open/floor/plasteel/black, +/area/quartermaster/qm) +"cDP" = ( +/obj/machinery/disposal/bin, +/obj/machinery/camera{ + c_tag = "Quartermaster's Office"; + dir = 1; + network = list("SS13"); + start_active = 1 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/quartermaster/qm) +"cDQ" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow, +/turf/open/space, +/area/solar/port) +"cDR" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1 + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel/black/corner{ + tag = "icon-blackcorner (WEST)"; + dir = 8 + }, +/area/crew_quarters/fitness) +"cDS" = ( +/obj/machinery/camera{ + c_tag = "Holodeck Control"; + dir = 1; + network = list("SS13") + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"cDT" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Holodeck Door" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/green, +/area/crew_quarters/fitness) +"cDU" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/fitness) +"cDV" = ( +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/black, +/area/crew_quarters/fitness) +"cDW" = ( +/obj/structure/window/reinforced, +/obj/machinery/door/window/eastright{ + base_state = "left"; + icon_state = "left"; + name = "Fitness Ring" + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/fitness) +"cDX" = ( +/obj/structure/closet/lasertag/blue, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"cDY" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cDZ" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (WEST)"; + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cEa" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cEb" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cEc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/asmaint2) +"cEd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cEe" = ( +/mob/living/simple_animal/mouse, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/asmaint2) +"cEf" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/asmaint2) +"cEg" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/machinery/camera{ + c_tag = "Toxins Storage"; + dir = 4; + network = list("SS13","Sci") + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/storage) +"cEh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/storage) +"cEi" = ( +/obj/effect/decal/cleanable/oil, +/obj/item/weapon/cigbutt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/storage) +"cEj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/storage) +"cEk" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/storage) +"cEl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/toxins/storage) +"cEm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white/side{ + dir = 6 + }, +/area/medical/research{ + name = "Research Division" + }) +"cEn" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 10 + }, +/area/medical/research{ + name = "Research Division" + }) +"cEo" = ( +/turf/open/floor/plasteel/purple/side{ + tag = "icon-purple (EAST)"; + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/closet/l3closet/scientist, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (EAST)"; + dir = 4 + }, +/area/toxins/mixing) +"cEp" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing) +"cEq" = ( +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing) +"cEr" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/item/weapon/storage/firstaid/toxin, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/warnwhite{ + tag = "icon-warnwhite (SOUTHWEST)"; + dir = 10 + }, +/area/toxins/mixing) +"cEs" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/thermomachine/heater{ + dir = 8 + }, +/turf/open/floor/plasteel/warnwhite{ + tag = "icon-warnwhite (SOUTHEAST)"; + dir = 6 + }, +/area/toxins/mixing) +"cEt" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/warnwhite{ + tag = "icon-warnwhite (SOUTHWEST)"; + dir = 10 + }, +/area/toxins/mixing) +"cEu" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/plasteel/warnwhite{ + tag = "icon-warnwhite (SOUTHEAST)"; + dir = 6 + }, +/area/toxins/mixing) +"cEv" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 9 + }, +/area/toxins/mixing) +"cEw" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/toxins/mixing) +"cEx" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 5 + }, +/area/toxins/mixing) +"cEy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating/warnplate{ + dir = 9 + }, +/area/toxins/mixing) +"cEz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/toxins/mixing) +"cEA" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/toxins/mixing) +"cEB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating/warnplate{ + dir = 5 + }, +/area/toxins/mixing) +"cEC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/toxins/mixing) +"cED" = ( +/turf/open/floor/plasteel/purple/side{ + tag = "icon-purple (SOUTHEAST)"; + dir = 6 + }, +/obj/machinery/disposal/bin, +/obj/machinery/camera{ + c_tag = "Toxins Launch Room"; + network = list("SS13","Sci") + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (SOUTHEAST)"; + dir = 6 + }, +/area/toxins/mixing) +"cEE" = ( +/turf/open/floor/plasteel/purple/side{ + tag = "icon-purple (SOUTHWEST)"; + dir = 10 + }, +/obj/structure/closet/bombcloset, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (SOUTHWEST)"; + dir = 10 + }, +/area/toxins/mixing) +"cEF" = ( +/turf/open/floor/plasteel/purple/side{ + tag = "icon-purple (SOUTHEAST)"; + dir = 6 + }, +/obj/structure/closet/bombcloset, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (SOUTHEAST)"; + dir = 6 + }, +/area/toxins/mixing) +"cEG" = ( +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (WEST)"; + dir = 8 + }, +/obj/item/device/assembly/timer{ + pixel_x = 5; + pixel_y = 4 + }, +/obj/item/device/assembly/timer{ + pixel_x = -4; + pixel_y = 2 + }, +/obj/item/device/assembly/timer{ + pixel_x = 6; + pixel_y = -4 + }, +/obj/item/device/assembly/timer{ + pixel_x = 0; + pixel_y = 0 + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (WEST)"; + dir = 8 + }, +/area/toxins/mixing) +"cEH" = ( +/obj/item/device/assembly/prox_sensor{ + pixel_x = -4; + pixel_y = 1 + }, +/obj/item/device/assembly/prox_sensor{ + pixel_x = 8; + pixel_y = 9 + }, +/obj/item/device/assembly/prox_sensor{ + pixel_x = 9; + pixel_y = -2 + }, +/obj/item/device/assembly/prox_sensor{ + pixel_x = 0; + pixel_y = 2 + }, +/obj/structure/table/reinforced, +/obj/item/weapon/screwdriver{ + pixel_y = 10 + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing) +"cEI" = ( +/obj/structure/closet/cardboard, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/apmaint) +"cEJ" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Cargo Bay Maintenance"; + req_access_txt = "31" + }, +/obj/structure/cable/orange{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/quartermaster/storage) +"cEK" = ( +/obj/machinery/status_display{ + density = 0; + pixel_y = 2; + supply_display = 1 + }, +/turf/closed/wall, +/area/quartermaster/storage) +"cEL" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/conveyor{ + dir = 1; + id = "QMLoad"; + tag = "cargoshuttledown" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"cEM" = ( +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (SOUTHWEST)"; + dir = 10 + }, +/area/quartermaster/storage) +"cEN" = ( +/turf/open/floor/plasteel/warning, +/area/quartermaster/storage) +"cEO" = ( +/turf/open/floor/plasteel/warning/corner{ + dir = 1 + }, +/area/quartermaster/storage) +"cEP" = ( +/turf/open/floor/plasteel/warning/corner, +/area/quartermaster/storage) +"cEQ" = ( +/turf/open/floor/plasteel/warning{ + tag = "icon-warning (SOUTHEAST)"; + dir = 6 + }, +/area/quartermaster/storage) +"cER" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Cargo Bay East"; + dir = 8; + network = list("SS13"); + pixel_x = 0; + pixel_y = 0 + }, +/obj/machinery/conveyor{ + dir = 1; + id = "QMLoad2"; + tag = "cargoshuttleup" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"cES" = ( +/obj/machinery/status_display{ + density = 0; + pixel_y = 2; + supply_display = 1 + }, +/turf/closed/wall, +/area/quartermaster/qm) +"cET" = ( +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/port) +"cEU" = ( +/turf/closed/wall/rust, +/area/crew_quarters/fitness) +"cEV" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"cEW" = ( +/obj/machinery/light/small, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/turf/open/floor/plasteel/black/corner{ + tag = "icon-blackcorner (WEST)"; + dir = 8 + }, +/area/crew_quarters/fitness) +"cEX" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (EAST)"; + dir = 4 + }, +/area/crew_quarters/fitness) +"cEY" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/neutral/side{ + tag = "icon-neutral (NORTH)"; + dir = 1 + }, +/area/crew_quarters/fitness) +"cEZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/corner{ + tag = "icon-neutralcorner (NORTH)"; + dir = 1 + }, +/area/crew_quarters/fitness) +"cFa" = ( +/obj/structure/reagent_dispensers/water_cooler, +/turf/open/floor/plasteel/black/corner, +/area/crew_quarters/fitness) +"cFb" = ( +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cFc" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cFd" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cFe" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/clothing/head/cone, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/asmaint2) +"cFf" = ( +/obj/structure/grille/broken, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cFg" = ( +/obj/structure/cable/pink{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 8; + name = "Autoname APC West"; + pixel_x = -25; + pixel_y = 0 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/storage) +"cFh" = ( +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/storage) +"cFi" = ( +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/mob/living/simple_animal/mouse, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/storage) +"cFj" = ( +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/storage) +"cFk" = ( +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/storage) +"cFl" = ( +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research{ + name = "Toxins Storage"; + req_access_txt = "8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/storage) +"cFm" = ( +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (EAST)"; + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white/side{ + dir = 6 + }, +/area/medical/research{ + name = "Research Division" + }) +"cFn" = ( +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/pink{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"cFo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white/side{ + dir = 10 + }, +/area/medical/research{ + name = "Research Division" + }) +"cFp" = ( +/turf/open/floor/plasteel/purple/side{ + tag = "icon-purple (NORTHEAST)"; + dir = 5 + }, +/obj/machinery/portable_atmospherics/canister, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (NORTHEAST)"; + dir = 5 + }, +/area/toxins/mixing) +"cFq" = ( +/turf/open/floor/plasteel/white, +/area/toxins/mixing) +"cFr" = ( +/obj/machinery/holopad, +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/whitebot, +/area/toxins/mixing) +"cFs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing) +"cFt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing) +"cFu" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing) +"cFv" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/obj/machinery/meter, +/turf/open/floor/plasteel/white, +/area/toxins/mixing) +"cFw" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing) +"cFx" = ( +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (EAST)"; + dir = 4 + }, +/obj/machinery/door/airlock/research{ + name = "Toxins Lab"; + req_access_txt = "8" + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (EAST)"; + dir = 4 + }, +/area/toxins/mixing) +"cFy" = ( +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (EAST)"; + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plating/warnplate{ + dir = 10 + }, +/area/toxins/mixing) +"cFz" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/warnplate, +/area/toxins/mixing) +"cFA" = ( +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/light/small, +/turf/open/floor/plating/warnplate, +/area/toxins/mixing) +"cFB" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plating/warnplate{ + dir = 6 + }, +/area/toxins/mixing) +"cFC" = ( +/turf/open/floor/plasteel/purple/side{ + tag = "icon-purple (WEST)"; + dir = 8 + }, +/obj/machinery/door/airlock/research{ + name = "Toxins Launch Room"; + req_access_txt = "8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (WEST)"; + dir = 8 + }, +/area/toxins/mixing) +"cFD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/toxins/mixing) +"cFE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/toxins/mixing) +"cFF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/toxins/mixing) +"cFG" = ( +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (WEST)"; + dir = 8 + }, +/obj/structure/chair/stool, +/obj/effect/landmark/start{ + name = "Scientist" + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (WEST)"; + dir = 8 + }, +/area/toxins/mixing) +"cFH" = ( +/obj/item/device/transfer_valve{ + pixel_x = -5 + }, +/obj/item/device/transfer_valve{ + pixel_x = -5 + }, +/obj/item/device/transfer_valve{ + pixel_x = 0 + }, +/obj/item/device/transfer_valve{ + pixel_x = 0 + }, +/obj/item/device/transfer_valve{ + pixel_x = 5 + }, +/obj/item/device/transfer_valve{ + pixel_x = 5 + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/white, +/area/toxins/mixing) +"cFI" = ( +/obj/machinery/power/apc{ + auto_name = 1; + dir = 8; + name = "Autoname APC West"; + pixel_x = -25; + pixel_y = 0 + }, +/obj/structure/cable/green{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/apmaint) +"cFJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cFK" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cFL" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/grille/broken, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cFM" = ( +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cFN" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cFO" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/apmaint) +"cFP" = ( +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cFQ" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "QMLoad" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"cFR" = ( +/obj/machinery/conveyor{ + dir = 6; + id = "QMLoad"; + tag = "cargoshuttledown"; + verted = -1 + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"cFS" = ( +/turf/open/floor/plasteel/brown{ + dir = 10; + initial_gas_mix = "n2=100;TEMP=80"; + tag = "SERVER" + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (SOUTHWEST)"; + dir = 10 + }, +/area/quartermaster/storage) +"cFT" = ( +/turf/open/floor/plasteel/brown, +/obj/machinery/button/door{ + dir = 2; + id = "QMLoaddoor2"; + layer = 4; + name = "Loading Doors"; + pixel_x = -8; + pixel_y = -24 + }, +/obj/machinery/button/door{ + id = "QMLoaddoor"; + layer = 4; + name = "Loading Doors"; + pixel_x = 8; + pixel_y = -24 + }, +/turf/open/floor/plasteel/warningline, +/area/quartermaster/storage) +"cFU" = ( +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (SOUTHEAST)"; + dir = 6 + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (SOUTHEAST)"; + dir = 6 + }, +/area/quartermaster/storage) +"cFV" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "QMLoad2" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"cFW" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/quartermaster/storage) +"cFX" = ( +/obj/machinery/power/solar{ + id = "auxsolareast"; + name = "Fore Port Solar Array" + }, +/obj/structure/cable/yellow{ + tag = "icon-0-6"; + icon_state = "0-6"; + d1 = 4; + d2 = 8 + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/starboard) +"cFY" = ( +/obj/machinery/power/solar{ + id = "auxsolareast"; + name = "Fore Port Solar Array" + }, +/obj/structure/cable/yellow{ + d2 = 2; + icon_state = "0-2" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/starboard) +"cFZ" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow, +/turf/open/space, +/area/solar/starboard) +"cGa" = ( +/obj/machinery/power/solar{ + id = "auxsolareast"; + name = "Fore Port Solar Array" + }, +/obj/structure/cable/yellow{ + tag = "icon-0-10"; + icon_state = "0-10"; + d1 = 4; + d2 = 8 + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/starboard) +"cGb" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fsmaint) +"cGc" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fsmaint) +"cGd" = ( +/turf/open/floor/plasteel/black/corner{ + tag = "icon-blackcorner (WEST)"; + dir = 8 + }, +/area/crew_quarters/fitness) +"cGe" = ( +/obj/machinery/camera{ + c_tag = "Fitness South"; + dir = 1; + network = list("SS13") + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"cGf" = ( +/obj/machinery/light, +/obj/machinery/light_switch{ + pixel_y = -24; + tag = "s" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"cGg" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black/corner, +/area/crew_quarters/fitness) +"cGh" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cGi" = ( +/obj/machinery/door/poddoor/preopen{ + id = "maint1" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cGj" = ( +/obj/machinery/door/poddoor/preopen{ + id = "maint1" + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cGk" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cGl" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/asmaint2) +"cGm" = ( +/obj/machinery/portable_atmospherics/canister/carbon_dioxide, +/turf/open/floor/plasteel/bot, +/area/toxins/storage) +"cGn" = ( +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/turf/open/floor/plasteel/bot, +/area/toxins/storage) +"cGo" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plasteel/bot, +/area/toxins/storage) +"cGp" = ( +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_x = 26; + pixel_y = -2; + tag = "EAST" + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/storage) +"cGq" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white/side{ + dir = 6 + }, +/area/medical/research{ + name = "Research Division" + }) +"cGr" = ( +/turf/open/floor/plasteel/purple/side{ + tag = "icon-purple (SOUTHEAST)"; + dir = 6 + }, +/obj/machinery/portable_atmospherics/canister, +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (SOUTHEAST)"; + dir = 6 + }, +/area/toxins/mixing) +"cGs" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing) +"cGt" = ( +/obj/structure/cable/pink{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Toxins Mixing West"; + dir = 1; + network = list("SS13","Sci") + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing) +"cGu" = ( +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/light_switch{ + pixel_y = -24; + tag = "s" + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing) +"cGv" = ( +/obj/machinery/requests_console{ + department = "Science"; + departmentType = 2; + name = "Science Requests Console"; + pixel_x = 0; + pixel_y = -30 + }, +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing) +"cGw" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing) +"cGx" = ( +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = -30; + tag = "s" + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing) +"cGy" = ( +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/toxins/mixing) +"cGz" = ( +/obj/structure/cable/pink{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing) +"cGA" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing) +"cGB" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cGC" = ( +/turf/open/floor/plasteel, +/area/toxins/mixing) +"cGD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/toxins/mixing) +"cGE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/toxins/mixing) +"cGF" = ( +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (WEST)"; + dir = 8 + }, +/obj/structure/tank_dispenser, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (WEST)"; + dir = 8 + }, +/area/toxins/mixing) +"cGG" = ( +/obj/item/device/assembly/signaler{ + pixel_x = 0; + pixel_y = 8 + }, +/obj/item/device/assembly/signaler{ + pixel_x = -8; + pixel_y = 5 + }, +/obj/item/device/assembly/signaler{ + pixel_x = 6; + pixel_y = 5 + }, +/obj/item/device/assembly/signaler{ + pixel_x = -2; + pixel_y = -2 + }, +/obj/structure/table/reinforced, +/obj/machinery/light_switch{ + pixel_x = 24; + tag = "e" + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing) +"cGH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cGI" = ( +/obj/structure/grille/broken, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cGJ" = ( +/obj/structure/girder, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cGK" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "QMLoad"; + tag = "cargoshuttledown" + }, +/obj/structure/plasticflaps/mining, +/turf/open/floor/plating, +/area/quartermaster/storage) +"cGL" = ( +/obj/item/stack/cable_coil/green, +/turf/open/floor/plating/airless/warnplate{ + dir = 1 + }, +/area/engine/engineering) +"cGM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cGN" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "QMLoad2"; + tag = "cargoshuttleup" + }, +/obj/structure/plasticflaps/mining, +/turf/open/floor/plating, +/area/quartermaster/storage) +"cGO" = ( +/obj/machinery/power/solar{ + id = "auxsolareast"; + name = "Fore Port Solar Array" + }, +/obj/structure/cable/yellow{ + tag = "icon-0-6"; + icon_state = "0-6"; + d1 = 4; + d2 = 8 + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/port) +"cGP" = ( +/obj/machinery/power/solar{ + id = "auxsolareast"; + name = "Fore Port Solar Array" + }, +/obj/structure/cable/yellow{ + d2 = 2; + icon_state = "0-2" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/port) +"cGQ" = ( +/obj/machinery/power/solar{ + id = "auxsolareast"; + name = "Fore Port Solar Array" + }, +/obj/structure/cable/yellow{ + tag = "icon-0-10"; + icon_state = "0-10"; + d1 = 4; + d2 = 8 + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/port) +"cGR" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + tag = "icon-4-9"; + icon_state = "4-9"; + d1 = 4; + d2 = 8 + }, +/obj/structure/cable/yellow{ + tag = "icon-4-10"; + icon_state = "4-10"; + d1 = 4; + d2 = 8 + }, +/turf/open/space, +/area/solar/starboard) +"cGS" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + tag = "icon-4-9"; + icon_state = "4-9"; + d1 = 4; + d2 = 8 + }, +/obj/structure/cable/yellow{ + tag = "icon-4-10"; + icon_state = "4-10"; + d1 = 4; + d2 = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8"; + d1 = 4; + d2 = 8 + }, +/turf/open/space, +/area/solar/starboard) +"cGT" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + tag = "icon-4-10"; + icon_state = "4-10"; + d1 = 4; + d2 = 8 + }, +/obj/structure/cable/yellow{ + tag = "icon-4-9"; + icon_state = "4-9"; + d1 = 4; + d2 = 8 + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4"; + d1 = 1; + d2 = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8"; + d1 = 4; + d2 = 8 + }, +/turf/open/space, +/area/solar/starboard) +"cGU" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/space, +/area/solar/starboard) +"cGV" = ( +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/starboard) +"cGW" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + d2 = 4; + icon_state = "0-4" + }, +/turf/open/space, +/area/solar/starboard) +"cGX" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + tag = "icon-5-8"; + icon_state = "5-8"; + d1 = 4; + d2 = 8 + }, +/obj/structure/cable/yellow{ + tag = "icon-6-8"; + icon_state = "6-8"; + d1 = 4; + d2 = 8 + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable/yellow{ + icon_state = "4-8"; + d1 = 4; + d2 = 8 + }, +/turf/open/space, +/area/solar/starboard) +"cGY" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + tag = "icon-5-8"; + icon_state = "5-8"; + d1 = 4; + d2 = 8 + }, +/obj/structure/cable/yellow{ + tag = "icon-6-8"; + icon_state = "6-8"; + d1 = 4; + d2 = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8"; + d1 = 4; + d2 = 8 + }, +/turf/open/space, +/area/solar/starboard) +"cGZ" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + tag = "icon-5-8"; + icon_state = "5-8"; + d1 = 4; + d2 = 8 + }, +/obj/structure/cable/yellow{ + tag = "icon-6-8"; + icon_state = "6-8"; + d1 = 4; + d2 = 8 + }, +/turf/open/space, +/area/solar/starboard) +"cHa" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cHb" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cHc" = ( +/obj/item/weapon/stock_parts/matter_bin, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cHd" = ( +/obj/item/mecha_parts/part/odysseus_right_leg, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cHe" = ( +/obj/structure/closet/crate, +/obj/item/weapon/reagent_containers/food/snacks/mint, +/obj/item/weapon/circuitboard/machine/destructive_analyzer, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cHf" = ( +/obj/machinery/portable_atmospherics/scrubber/huge, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/storage) +"cHg" = ( +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white/side{ + dir = 6 + }, +/area/medical/research{ + name = "Research Division" + }) +"cHh" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/camera{ + c_tag = "Science Hallway South"; + dir = 8; + network = list("SS13","Sci"); + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plasteel/white/side{ + dir = 10 + }, +/area/medical/research{ + name = "Research Division" + }) +"cHi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/toxins/mixing) +"cHj" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing) +"cHk" = ( +/obj/structure/cable/pink{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing) +"cHl" = ( +/obj/structure/cable/pink{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + aidisabled = 0; + auto_name = 1; + cell_type = 2500; + dir = 4; + name = "Autoname APC East"; + pixel_x = 24; + pixel_y = 0 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing) +"cHm" = ( +/obj/structure/closet/wardrobe/black, +/obj/item/wallframe/newscaster, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cHn" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/droneDispenser, +/turf/open/floor/plasteel, +/area/toxins/mixing) +"cHo" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning/corner, +/area/toxins/mixing) +"cHp" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/obj/item/weapon/poster/legit, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cHq" = ( +/obj/item/weapon/weldingtool/mini, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cHr" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = -32; + pixel_y = 0 + }, +/obj/machinery/conveyor{ + dir = 1; + id = "QMLoad"; + tag = "cargoshuttledown" + }, +/obj/machinery/door/poddoor{ + id = "QMLoaddoor2"; + name = "supply dock loading door" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"cHs" = ( +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/quartermaster/storage) +"cHt" = ( +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/quartermaster/storage) +"cHu" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 32; + pixel_y = 0 + }, +/obj/machinery/conveyor{ + dir = 1; + id = "QMLoad2"; + tag = "cargoshuttleup" + }, +/obj/machinery/door/poddoor{ + id = "QMLoaddoor"; + name = "supply dock loading door" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"cHv" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + tag = "icon-4-9"; + icon_state = "4-9"; + d1 = 4; + d2 = 8 + }, +/obj/structure/cable/yellow{ + tag = "icon-4-10"; + icon_state = "4-10"; + d1 = 4; + d2 = 8 + }, +/turf/open/space, +/area/solar/port) +"cHw" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + tag = "icon-4-9"; + icon_state = "4-9"; + d1 = 4; + d2 = 8 + }, +/obj/structure/cable/yellow{ + tag = "icon-4-10"; + icon_state = "4-10"; + d1 = 4; + d2 = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8"; + d1 = 4; + d2 = 8 + }, +/turf/open/space, +/area/solar/port) +"cHx" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + tag = "icon-4-10"; + icon_state = "4-10"; + d1 = 4; + d2 = 8 + }, +/obj/structure/cable/yellow{ + tag = "icon-4-9"; + icon_state = "4-9"; + d1 = 4; + d2 = 8 + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4"; + d1 = 1; + d2 = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8"; + d1 = 4; + d2 = 8 + }, +/turf/open/space, +/area/solar/port) +"cHy" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/space, +/area/solar/port) +"cHz" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + d2 = 4; + icon_state = "0-4" + }, +/turf/open/space, +/area/solar/port) +"cHA" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + tag = "icon-5-8"; + icon_state = "5-8"; + d1 = 4; + d2 = 8 + }, +/obj/structure/cable/yellow{ + tag = "icon-6-8"; + icon_state = "6-8"; + d1 = 4; + d2 = 8 + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable/yellow{ + icon_state = "4-8"; + d1 = 4; + d2 = 8 + }, +/turf/open/space, +/area/solar/port) +"cHB" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + tag = "icon-5-8"; + icon_state = "5-8"; + d1 = 4; + d2 = 8 + }, +/obj/structure/cable/yellow{ + tag = "icon-6-8"; + icon_state = "6-8"; + d1 = 4; + d2 = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8"; + d1 = 4; + d2 = 8 + }, +/turf/open/space, +/area/solar/port) +"cHC" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + tag = "icon-5-8"; + icon_state = "5-8"; + d1 = 4; + d2 = 8 + }, +/obj/structure/cable/yellow{ + tag = "icon-6-8"; + icon_state = "6-8"; + d1 = 4; + d2 = 8 + }, +/turf/open/space, +/area/solar/port) +"cHD" = ( +/obj/machinery/power/solar{ + id = "auxsolareast"; + name = "Fore Port Solar Array" + }, +/obj/structure/cable/yellow{ + tag = "icon-0-5"; + icon_state = "0-5"; + d1 = 4; + d2 = 8 + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/starboard) +"cHE" = ( +/obj/machinery/power/solar{ + id = "auxsolareast"; + name = "Fore Port Solar Array" + }, +/obj/structure/cable/yellow, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/starboard) +"cHF" = ( +/obj/structure/lattice/catwalk, +/obj/item/stack/cable_coil/yellow, +/turf/open/space, +/area/solar/starboard) +"cHG" = ( +/obj/machinery/power/solar{ + id = "auxsolareast"; + name = "Fore Port Solar Array" + }, +/obj/structure/cable/yellow{ + tag = "icon-0-9"; + icon_state = "0-9"; + d1 = 4; + d2 = 8 + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/starboard) +"cHH" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"cHI" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"cHJ" = ( +/obj/effect/landmark{ + name = "Syndicate Breach Area" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"cHK" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"cHL" = ( +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cHM" = ( +/obj/structure/cable/green{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 1; + name = "Autoname APC North"; + pixel_x = 0; + pixel_y = 24 + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"cHN" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cHO" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cHP" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cHQ" = ( +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cHR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27; + pixel_y = 0; + tag = "w" + }, +/turf/open/floor/plasteel/white/side{ + dir = 6 + }, +/area/medical/research{ + name = "Research Division" + }) +"cHS" = ( +/obj/machinery/door/poddoor{ + id = "mixvent"; + name = "Mixer Room Vent" + }, +/turf/open/floor/engine/vacuum, +/area/toxins/mixing) +"cHT" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/engine/vacuum, +/area/toxins/mixing) +"cHU" = ( +/obj/machinery/sparker{ + dir = 2; + id = "mixingsparker"; + pixel_x = 25 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + external_pressure_bound = 0; + initialize_directions = 1; + internal_pressure_bound = 4000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine/vacuum, +/area/toxins/mixing) +"cHV" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/toxins/mixing) +"cHW" = ( +/obj/machinery/airlock_sensor{ + id_tag = "tox_airlock_sensor"; + master_tag = "tox_airlock_control"; + pixel_y = 24 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + on = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/engine, +/area/toxins/mixing) +"cHX" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/machinery/meter, +/obj/machinery/embedded_controller/radio/airlock_controller{ + airpump_tag = "tox_airlock_pump"; + exterior_door_tag = "tox_airlock_exterior"; + id_tag = "tox_airlock_control"; + interior_door_tag = "tox_airlock_interior"; + pixel_x = -24; + pixel_y = 0; + sanitize_external = 1; + sensor_tag = "tox_airlock_sensor" + }, +/turf/open/floor/plasteel/warnwhite/corner{ + dir = 1 + }, +/area/toxins/mixing) +"cHY" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4; + name = "mix to port" + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 4 + }, +/area/toxins/mixing) +"cHZ" = ( +/turf/open/floor/plasteel/purple/side{ + tag = "icon-purple (NORTHEAST)"; + dir = 5 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/structure/sign/nosmoking_2{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (NORTHEAST)"; + dir = 5 + }, +/area/toxins/mixing) +"cIa" = ( +/obj/structure/closet/emcloset, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cIb" = ( +/obj/structure/closet/wardrobe/science_white, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27; + pixel_y = 0; + tag = "w" + }, +/turf/open/floor/plasteel, +/area/toxins/mixing) +"cIc" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel, +/area/toxins/mixing) +"cId" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/toxins/mixing) +"cIe" = ( +/obj/machinery/door/window/southleft{ + dir = 8; + name = "Mass Driver Door"; + req_access_txt = "7" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/loadingarea{ + tag = "icon-loadingarea (EAST)"; + dir = 4 + }, +/area/toxins/mixing) +"cIf" = ( +/obj/machinery/mass_driver{ + dir = 2; + id = "toxinsdriver" + }, +/turf/open/floor/plating, +/area/toxins/mixing) +"cIg" = ( +/obj/item/stack/medical/gauze, +/obj/effect/landmark{ + name = "blobstart" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cIh" = ( +/obj/structure/rack, +/obj/item/weapon/storage/belt/utility, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cIi" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; + name = "KEEP CLEAR: DOCKING AREA"; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"cIj" = ( +/obj/machinery/power/solar{ + id = "auxsolareast"; + name = "Fore Port Solar Array" + }, +/obj/structure/cable/yellow{ + tag = "icon-0-5"; + icon_state = "0-5"; + d1 = 4; + d2 = 8 + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/port) +"cIk" = ( +/obj/machinery/power/solar{ + id = "auxsolareast"; + name = "Fore Port Solar Array" + }, +/obj/structure/cable/yellow, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/port) +"cIl" = ( +/obj/machinery/power/solar{ + id = "auxsolareast"; + name = "Fore Port Solar Array" + }, +/obj/structure/cable/yellow{ + tag = "icon-0-9"; + icon_state = "0-9"; + d1 = 4; + d2 = 8 + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/port) +"cIm" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cIn" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cIo" = ( +/obj/structure/girder/displaced, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cIp" = ( +/obj/machinery/door/poddoor/preopen{ + id = "maint2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cIq" = ( +/obj/machinery/door/poddoor/preopen{ + id = "maint2" + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cIr" = ( +/obj/item/weapon/lipstick/black, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/asmaint2) +"cIs" = ( +/obj/item/weapon/lighter, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cIt" = ( +/obj/item/weapon/paper, +/obj/item/weapon/storage/box/donkpockets, +/obj/structure/table/glass, +/obj/machinery/newscaster{ + pixel_x = -30; + pixel_y = 0 + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/research{ + name = "Research Division" + }) +"cIu" = ( +/obj/structure/table/glass, +/obj/item/device/radio/off, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = 20; + tag = "NORTH" + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/research{ + name = "Research Division" + }) +"cIv" = ( +/obj/machinery/microwave{ + pixel_x = -3; + pixel_y = 6 + }, +/obj/structure/table/glass, +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/research{ + name = "Research Division" + }) +"cIw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/research{ + name = "Research Division" + }) +"cIx" = ( +/obj/machinery/vending/cigarette, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/research{ + name = "Research Division" + }) +"cIy" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/research{ + name = "Research Division" + }) +"cIz" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 6 + }, +/area/medical/research{ + name = "Research Division" + }) +"cIA" = ( +/turf/open/floor/engine/vacuum, +/area/toxins/mixing) +"cIB" = ( +/obj/machinery/door/airlock/glass_research{ + autoclose = 0; + frequency = 1449; + glass = 1; + heat_proof = 1; + icon_state = "closed"; + id_tag = "tox_airlock_exterior"; + locked = 1; + name = "Mixing Room Exterior Airlock"; + req_access_txt = "8" + }, +/turf/open/floor/engine, +/area/toxins/mixing) +"cIC" = ( +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume{ + dir = 2; + frequency = 1449; + id = "tox_airlock_pump" + }, +/turf/open/floor/engine, +/area/toxins/mixing) +"cID" = ( +/obj/machinery/door/airlock/glass_research{ + autoclose = 0; + frequency = 1449; + glass = 1; + heat_proof = 1; + icon_state = "closed"; + id_tag = "tox_airlock_interior"; + locked = 1; + name = "Mixing Room Interior Airlock"; + req_access_txt = "8" + }, +/turf/open/floor/engine, +/area/toxins/mixing) +"cIE" = ( +/turf/open/floor/plasteel/warnwhite{ + dir = 8 + }, +/area/toxins/mixing) +"cIF" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/warnwhite{ + dir = 4 + }, +/area/toxins/mixing) +"cIG" = ( +/turf/open/floor/plasteel/purple/side{ + tag = "icon-purple (EAST)"; + dir = 4 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Toxins Mixing East"; + dir = 8; + network = list("SS13","Sci"); + pixel_x = 0; + pixel_y = 0 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_x = 26; + pixel_y = -2; + tag = "EAST" + }, +/obj/item/weapon/wrench, +/obj/item/weapon/cigbutt, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (EAST)"; + dir = 4 + }, +/area/toxins/mixing) +"cIH" = ( +/obj/structure/rack, +/obj/item/weapon/reagent_containers/glass/beaker, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cII" = ( +/obj/item/stack/rods{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/target/alien, +/obj/item/target/syndicate, +/obj/item/target/alien, +/obj/item/target/syndicate, +/obj/structure/closet/crate/secure{ + desc = "A secure crate containing various materials for building a customised test-site."; + name = "Test Site Materials Crate"; + req_access_txt = "8" + }, +/obj/item/target/clown, +/obj/item/target/clown, +/obj/item/target, +/obj/item/target, +/turf/open/floor/plasteel/bot, +/area/toxins/mixing) +"cIJ" = ( +/turf/open/floor/plasteel/warning/corner{ + tag = "icon-warningcorner (WEST)"; + dir = 8 + }, +/area/toxins/mixing) +"cIK" = ( +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/toxins/mixing) +"cIL" = ( +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cIM" = ( +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/apmaint) +"cIN" = ( +/obj/item/weapon/cigbutt, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cIO" = ( +/turf/closed/wall/r_wall, +/area/maintenance/apmaint) +"cIP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"cIQ" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/supply) +"cIR" = ( +/obj/machinery/door/poddoor{ + id = "QMLoaddoor2"; + name = "supply dock loading door" + }, +/obj/machinery/conveyor{ + dir = 1; + id = "QMLoad"; + tag = "cargoshuttledown" + }, +/turf/open/floor/plating, +/area/shuttle/supply) +"cIS" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Supply Shuttle Airlock"; + req_access_txt = "31" + }, +/turf/open/floor/plating, +/area/shuttle/supply) +"cIT" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Supply Shuttle Airlock"; + req_access_txt = "31" + }, +/obj/docking_port/mobile/supply{ + dir = 2; + dwidth = 5; + width = 12 + }, +/obj/docking_port/stationary{ + dir = 2; + dwidth = 5; + height = 7; + id = "supply_home"; + name = "Cargo Bay"; + width = 12 + }, +/turf/open/floor/plating, +/area/shuttle/supply) +"cIU" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"cIV" = ( +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/obj/structure/table, +/obj/item/weapon/soap/nanotrasen, +/obj/item/weapon/gun/syringe, +/obj/item/weapon/reagent_containers/dropper, +/obj/item/weapon/folder/white, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"cIW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cIX" = ( +/obj/structure/lattice, +/obj/structure/lattice, +/obj/structure/grille, +/turf/open/space, +/area/space) +"cIY" = ( +/obj/item/stack/sheet/cardboard, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cIZ" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/obj/item/weapon/storage/box/lights/tubes, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cJa" = ( +/obj/structure/grille/broken, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cJb" = ( +/obj/machinery/button/door{ + id = "maint2"; + name = "Blast Door Control B"; + pixel_x = -28; + pixel_y = 4; + req_access_txt = "0" + }, +/obj/machinery/button/door{ + id = "maint1"; + name = "Blast Door Control A"; + pixel_x = -28; + pixel_y = -6; + req_access_txt = "0" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cJc" = ( +/obj/structure/grille/broken, +/obj/item/weapon/shard, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cJd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/closed/wall/rust, +/area/maintenance/asmaint2) +"cJe" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + tag = "icon-intact (SOUTHWEST)"; + icon_state = "intact"; + dir = 10 + }, +/turf/closed/wall, +/area/maintenance/asmaint2) +"cJf" = ( +/obj/structure/chair/stool, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = -32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/research{ + name = "Research Division" + }) +"cJg" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start{ + name = "Scientist" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + layer = 2.4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/research{ + name = "Research Division" + }) +"cJh" = ( +/turf/open/floor/plasteel/cafeteria, +/area/medical/research{ + name = "Research Division" + }) +"cJi" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/research{ + name = "Research Division" + }) +"cJj" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/research{ + name = "Research Division" + }) +"cJk" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_research{ + name = "Break Room"; + req_access_txt = "47" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/research{ + name = "Research Division" + }) +"cJl" = ( +/obj/structure/disposalpipe/junction{ + dir = 4; + icon_state = "pipe-j2"; + tag = "icon-pipe-j1 (WEST)" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/white/side{ + dir = 6 + }, +/area/medical/research{ + name = "Research Division" + }) +"cJm" = ( +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"cJn" = ( +/obj/machinery/sparker{ + dir = 2; + id = "mixingsparker"; + pixel_x = 25 + }, +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 4; + frequency = 1441; + id = "air_in" + }, +/turf/open/floor/engine/vacuum, +/area/toxins/mixing) +"cJo" = ( +/obj/structure/sign/fire{ + pixel_y = -32 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + on = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/engine, +/area/toxins/mixing) +"cJp" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/machinery/meter, +/obj/machinery/button/door{ + id = "mixvent"; + name = "Mixing Room Vent Control"; + pixel_x = -25; + pixel_y = 5; + req_access_txt = "7" + }, +/obj/machinery/button/ignition{ + id = "mixingsparker"; + pixel_x = -25; + pixel_y = -5 + }, +/turf/open/floor/plasteel/warnwhite/corner{ + dir = 4 + }, +/area/toxins/mixing) +"cJq" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4; + name = "port to mix" + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 4 + }, +/area/toxins/mixing) +"cJr" = ( +/turf/open/floor/plasteel/purple/side{ + tag = "icon-purple (SOUTHEAST)"; + dir = 6 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (SOUTHEAST)"; + dir = 6 + }, +/area/toxins/mixing) +"cJs" = ( +/obj/structure/rack, +/obj/item/weapon/storage/box/lights/bulbs, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cJt" = ( +/obj/machinery/doppler_array, +/turf/open/floor/plasteel/bot, +/area/toxins/mixing) +"cJu" = ( +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the test chamber."; + dir = 4; + layer = 4; + name = "Test Chamber Telescreen"; + network = list("Toxins"); + pixel_x = 0; + pixel_y = 0 + }, +/obj/structure/table, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = -25; + tag = "SOUTH" + }, +/turf/open/floor/plasteel/purple/corner, +/area/toxins/mixing) +"cJv" = ( +/obj/structure/chair/office/light, +/obj/machinery/button/massdriver{ + dir = 2; + id = "toxinsdriver"; + pixel_x = 24; + pixel_y = -24 + }, +/turf/open/floor/plasteel/purple/side, +/area/toxins/mixing) +"cJw" = ( +/turf/open/floor/plating/warnplate, +/area/toxins/mixing) +"cJx" = ( +/obj/structure/closet/wardrobe/cargotech, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cJy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cJz" = ( +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/supply) +"cJA" = ( +/obj/machinery/button/door{ + dir = 2; + id = "QMLoaddoor2"; + name = "Loading Doors"; + pixel_x = -8; + pixel_y = 24 + }, +/obj/machinery/button/door{ + id = "QMLoaddoor"; + name = "Loading Doors"; + pixel_x = 8; + pixel_y = 24 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/supply) +"cJB" = ( +/obj/machinery/iv_drip, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/turf/open/floor/plasteel/white, +/area/medical/exam_room) +"cJC" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Engineering Maintenance"; + req_access_txt = "10" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cJD" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion"; + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/shuttle/supply) +"cJE" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + tag = "icon-4-9"; + icon_state = "4-9"; + d1 = 4; + d2 = 8 + }, +/obj/structure/cable/yellow{ + tag = "icon-4-10"; + icon_state = "4-10"; + d1 = 4; + d2 = 8 + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4"; + d1 = 1; + d2 = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8"; + d1 = 4; + d2 = 8 + }, +/turf/open/space, +/area/solar/starboard) +"cJF" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cJG" = ( +/obj/structure/cable/green{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 1; + name = "Autoname APC North"; + pixel_x = 0; + pixel_y = 24 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint) +"cJH" = ( +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fsmaint) +"cJI" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cJJ" = ( +/obj/item/device/assembly/mousetrap/armed, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cJK" = ( +/mob/living/simple_animal/mouse/brown, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cJL" = ( +/obj/item/clothing/head/cone, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cJM" = ( +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cJN" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cJO" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cJP" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cJQ" = ( +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/asmaint2) +"cJR" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Break Room Maintenance"; + req_access_txt = "47" + }, +/turf/open/floor/plating, +/area/medical/research{ + name = "Research Division" + }) +"cJS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/machinery/light_switch{ + pixel_y = -24; + tag = "s" + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/research{ + name = "Research Division" + }) +"cJT" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Science Break Room"; + dir = 1; + network = list("SS13","Sci") + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/research{ + name = "Research Division" + }) +"cJU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/research{ + name = "Research Division" + }) +"cJV" = ( +/obj/machinery/disposal/bin, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/research{ + name = "Research Division" + }) +"cJW" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/research{ + name = "Research Division" + }) +"cJX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/side, +/area/medical/research{ + name = "Research Division" + }) +"cJY" = ( +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whitepurple/side, +/area/medical/research{ + name = "Research Division" + }) +"cJZ" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/side, +/area/medical/research{ + name = "Research Division" + }) +"cKa" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/toxins/mixing) +"cKb" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Toxins Lab Mainteneance"; + req_access_txt = "8" + }, +/turf/open/floor/plating, +/area/toxins/mixing) +"cKc" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/grille/broken, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cKd" = ( +/obj/structure/grille, +/obj/item/weapon/shard, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cKe" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cKf" = ( +/obj/machinery/door/poddoor{ + id = "toxinsdriver"; + name = "Toxins Launcher Bay Door" + }, +/turf/open/floor/plating, +/area/toxins/mixing) +"cKg" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cKh" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cKi" = ( +/obj/structure/grille, +/obj/item/weapon/shard, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cKj" = ( +/obj/structure/shuttle/engine/heater{ + icon_state = "heater"; + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/shuttle/supply) +"cKk" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + tag = "icon-4-9"; + icon_state = "4-9"; + d1 = 4; + d2 = 8 + }, +/obj/structure/cable/yellow{ + tag = "icon-4-10"; + icon_state = "4-10"; + d1 = 4; + d2 = 8 + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4"; + d1 = 1; + d2 = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8"; + d1 = 4; + d2 = 8 + }, +/turf/open/space, +/area/solar/port) +"cKl" = ( +/obj/structure/lattice, +/obj/structure/lattice, +/obj/structure/grille/broken, +/turf/open/space, +/area/space) +"cKm" = ( +/obj/structure/girder/reinforced, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cKn" = ( +/obj/machinery/door/poddoor/preopen{ + id = "maint3" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cKo" = ( +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research{ + name = "Xenobiology Lab"; + req_access_txt = "55" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whitepurple, +/area/medical/research{ + name = "Research Division" + }) +"cKp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/asmaint2) +"cKq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cKr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/grille/broken, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cKs" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cKt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/apmaint) +"cKu" = ( +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cKv" = ( +/mob/living/simple_animal/mouse, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cKw" = ( +/obj/structure/chair/stool, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cKx" = ( +/obj/machinery/button/door{ + id = "maint3"; + name = "Blast Door Control C"; + pixel_x = 0; + pixel_y = 24; + req_access_txt = "0" + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cKy" = ( +/obj/structure/closet/firecloset/full, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cKz" = ( +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cKA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 5 + }, +/turf/closed/wall, +/area/maintenance/asmaint2) +"cKB" = ( +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/asmaint2) +"cKC" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cKD" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cKE" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cKF" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (NORTH)"; + dir = 1 + }, +/area/toxins/xenobiology) +"cKG" = ( +/obj/effect/landmark{ + name = "lightsout" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (NORTH)"; + dir = 1 + }, +/area/toxins/xenobiology) +"cKH" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (NORTH)"; + dir = 1 + }, +/area/toxins/xenobiology) +"cKI" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cKJ" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cKK" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cKL" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cKM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/grille/broken, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cKN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cKO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/disposalpipe/junction, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cKP" = ( +/obj/machinery/door/poddoor{ + id = "toxinsdriver"; + name = "Toxins Launcher Bay Door" + }, +/turf/open/floor/plating/warnplate/side, +/area/maintenance/apmaint) +"cKQ" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cKR" = ( +/obj/structure/lattice, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"cKS" = ( +/obj/structure/door_assembly/door_assembly_mai, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cKT" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cKU" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cKV" = ( +/obj/machinery/door/airlock/maintenance{ + glass = 1; + name = "maintenance access"; + opacity = 0; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cKW" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 4; + name = "4maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cKX" = ( +/obj/machinery/door/airlock/maintenance, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cKY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cKZ" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cLa" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/asmaint2) +"cLb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/asmaint2) +"cLc" = ( +/turf/open/floor/plasteel/whitepurple/side, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/preopen{ + id = "Biohazard"; + name = "biohazard containment door" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel/warningline, +/area/toxins/xenobiology) +"cLd" = ( +/turf/open/floor/plasteel/whitepurple/side, +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/preopen{ + id = "Biohazard"; + name = "biohazard containment door" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/warningline, +/area/toxins/xenobiology) +"cLe" = ( +/turf/open/floor/plasteel/whitepurple/side, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/preopen{ + id = "Biohazard"; + name = "biohazard containment door" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warningline, +/area/toxins/xenobiology) +"cLf" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cLg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cLh" = ( +/obj/structure/table, +/obj/item/weapon/rollingpaper, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/weapon/stock_parts/manipulator, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cLi" = ( +/obj/structure/rack, +/obj/item/weapon/stock_parts/capacitor, +/obj/item/weapon/stock_parts/console_screen, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cLj" = ( +/obj/structure/rack, +/obj/item/weapon/stock_parts/matter_bin, +/obj/item/weapon/stock_parts/scanning_module, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/asmaint2) +"cLk" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cLl" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cLm" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cLn" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cLo" = ( +/obj/machinery/door/airlock/maintenance{ + glass = 1; + name = "maintenance access"; + opacity = 0; + req_access_txt = "12" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cLp" = ( +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cLq" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/maintenance/apmaint) +"cLr" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating/warnplate/side, +/area/maintenance/apmaint) +"cLs" = ( +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/maintenance/apmaint) +"cLt" = ( +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"cLu" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cLv" = ( +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/obj/structure/closet/wardrobe/cargotech, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cLw" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/syringe, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cLx" = ( +/turf/open/floor/plating/airless/warnplate/side, +/area/space/nearstation) +"cLy" = ( +/obj/structure/table, +/obj/item/weapon/stock_parts/manipulator, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cLz" = ( +/obj/structure/chair/stool, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cLA" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 8; + name = "8maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cLB" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/snacks/no_raisin, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cLC" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cLD" = ( +/mob/living/simple_animal/mouse, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cLE" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/pink{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"cLF" = ( +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/research{ + glass = 1; + name = "Xenobiology Lab"; + opacity = 0; + req_access_txt = "55" + }, +/turf/open/floor/plasteel/whitepurple, +/area/toxins/xenobiology) +"cLG" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/pink{ + tag = "icon-0-2"; + icon_state = "0-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"cLH" = ( +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cLI" = ( +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/asmaint2) +"cLJ" = ( +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/asmaint2) +"cLK" = ( +/obj/structure/table, +/obj/item/weapon/stock_parts/manipulator, +/obj/item/weapon/paper, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cLL" = ( +/turf/open/space, +/area/shuttle/syndicate) +"cLM" = ( +/obj/machinery/porta_turret/syndicate{ + dir = 4 + }, +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/syndicate) +"cLN" = ( +/obj/machinery/porta_turret/syndicate{ + dir = 5 + }, +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/syndicate) +"cLO" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + d2 = 2; + icon_state = "0-2" + }, +/turf/open/space, +/area/solar/starboard) +"cLP" = ( +/obj/structure/chair/stool, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/asmaint2) +"cLQ" = ( +/obj/structure/rack, +/obj/item/weapon/coin/twoheaded, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cLR" = ( +/turf/closed/wall/r_wall, +/area/toxins/xenobiology) +"cLS" = ( +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (NORTH)"; + dir = 1 + }, +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/obj/structure/cable/pink{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (NORTH)"; + dir = 1 + }, +/area/toxins/xenobiology) +"cLT" = ( +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (NORTH)"; + dir = 1 + }, +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/pink{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/pink{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (NORTH)"; + dir = 1 + }, +/area/toxins/xenobiology) +"cLU" = ( +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (NORTH)"; + dir = 1 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/structure/cable/pink{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (NORTH)"; + dir = 1 + }, +/area/toxins/xenobiology) +"cLV" = ( +/obj/item/weapon/bombcore/training, +/obj/item/weapon/screwdriver, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/asmaint2) +"cLW" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/reagent_containers/glass/beaker, +/obj/item/weapon/reagent_containers/glass/bottle/charcoal, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/asmaint2) +"cLX" = ( +/obj/structure/frame/machine, +/obj/item/weapon/circuitboard/machine/chem_master, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cLY" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/reagent_containers/glass/beaker/large, +/obj/item/weapon/reagent_containers/glass/bottle/capsaicin, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cLZ" = ( +/obj/structure/closet/wardrobe/green, +/obj/item/clothing/under/color/yellowgreen{ + desc = "A hideous fluorescent yellow jumpsuit." + }, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cMa" = ( +/obj/structure/closet/wardrobe/mixed, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cMb" = ( +/obj/structure/closet, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cMc" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + d2 = 2; + icon_state = "0-2" + }, +/turf/open/space, +/area/solar/port) +"cMd" = ( +/obj/structure/girder, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cMe" = ( +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/mob/living/simple_animal/mouse, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cMf" = ( +/obj/item/clothing/suit/bio_suit/plaguedoctorsuit, +/obj/item/clothing/head/plaguedoctorhat, +/obj/item/clothing/mask/gas/plaguedoctor, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/asmaint2) +"cMg" = ( +/obj/structure/spirit_board, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/asmaint2) +"cMh" = ( +/obj/item/device/assembly/mousetrap/armed, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cMi" = ( +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/structure/disposaloutlet, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"cMj" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"cMk" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio3"; + name = "containment blast door" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/pink{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"cMl" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/structure/window/reinforced, +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/toxins/xenobiology) +"cMm" = ( +/obj/structure/cable/pink{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"cMn" = ( +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"cMo" = ( +/obj/structure/cable/pink{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"cMp" = ( +/obj/structure/window/reinforced, +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "xenobio8"; + name = "Containment Blast Doors"; + pixel_x = 0; + pixel_y = 4; + req_access_txt = "55" + }, +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/toxins/xenobiology) +"cMq" = ( +/obj/machinery/door/poddoor/preopen{ + id = "xenobio8"; + name = "containment blast door" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/pink{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"cMr" = ( +/turf/open/floor/engine, +/area/toxins/xenobiology) +"cMs" = ( +/obj/item/weapon/wirecutters, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/asmaint2) +"cMt" = ( +/obj/structure/table/reinforced, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/weapon/reagent_containers/syringe, +/obj/item/weapon/reagent_containers/glass/bottle/salglu_solution, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cMu" = ( +/mob/living/simple_animal/mouse, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/asmaint2) +"cMv" = ( +/obj/structure/girder, +/turf/open/floor/plating/airless, +/area/maintenance/asmaint2) +"cMw" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/asmaint2) +"cMx" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"cMy" = ( +/obj/effect/landmark{ + name = "revenantspawn" + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"cMz" = ( +/turf/open/floor/plasteel/purple/side{ + tag = "icon-purple (WEST)"; + dir = 8 + }, +/obj/machinery/door/window/northleft{ + base_state = "right"; + dir = 8; + icon_state = "right"; + name = "Containment Pen"; + req_access_txt = "55" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio3"; + name = "containment blast door" + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (WEST)"; + dir = 8 + }, +/area/toxins/xenobiology) +"cMA" = ( +/turf/open/floor/plasteel/purple/side{ + tag = "icon-purple (EAST)"; + dir = 4 + }, +/obj/machinery/door/window/northleft{ + dir = 4; + name = "Containment Pen"; + req_access_txt = "55" + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (EAST)"; + dir = 4 + }, +/area/toxins/xenobiology) +"cMB" = ( +/obj/structure/cable/pink{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/pink{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"cMC" = ( +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/pink{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/pink{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"cMD" = ( +/obj/structure/cable/pink{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/pink{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"cME" = ( +/turf/open/floor/plasteel/purple/side{ + tag = "icon-purple (WEST)"; + dir = 8 + }, +/obj/machinery/door/window/northleft{ + base_state = "right"; + dir = 8; + icon_state = "right"; + name = "Containment Pen"; + req_access_txt = "55" + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (WEST)"; + dir = 8 + }, +/area/toxins/xenobiology) +"cMF" = ( +/turf/open/floor/plasteel/purple/side{ + tag = "icon-purple (EAST)"; + dir = 4 + }, +/obj/machinery/door/window/northleft{ + dir = 4; + name = "Containment Pen"; + req_access_txt = "55" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio8"; + name = "containment blast door" + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (EAST)"; + dir = 4 + }, +/area/toxins/xenobiology) +"cMG" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"cMH" = ( +/obj/structure/barricade/wooden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cMI" = ( +/obj/machinery/power/tracker, +/obj/structure/cable/yellow, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/starboard) +"cMJ" = ( +/obj/structure/bed, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cMK" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cML" = ( +/obj/structure/table/wood, +/obj/structure/bedsheetbin, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cMM" = ( +/obj/machinery/door/poddoor/preopen{ + id = "xenobio3"; + name = "containment blast door" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/pink{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"cMN" = ( +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "xenobio3"; + name = "Containment Blast Doors"; + pixel_x = 0; + pixel_y = 4; + req_access_txt = "55" + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/toxins/xenobiology) +"cMO" = ( +/obj/structure/cable/pink{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"cMP" = ( +/obj/structure/cable/pink{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"cMQ" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/toxins/xenobiology) +"cMR" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio8"; + name = "containment blast door" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/pink{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"cMS" = ( +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/structure/disposaloutlet{ + dir = 1 + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"cMT" = ( +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2); + name = "random metal material damage spawner" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cMU" = ( +/obj/item/weapon/reagent_containers/glass/beaker, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/asmaint2) +"cMV" = ( +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cMW" = ( +/obj/structure/cable/green{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cMX" = ( +/obj/structure/chair/stool, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/item/stack/sheet/mineral/wood{ + amount = 8 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cMY" = ( +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/structure/cable/green{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cMZ" = ( +/turf/closed/wall, +/area/toxins/xenobiology) +"cNa" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE" + }, +/turf/closed/wall, +/area/toxins/xenobiology) +"cNb" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"cNc" = ( +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/camera{ + c_tag = "Xenobiology Lab North"; + dir = 8; + network = list("SS13","Sci"); + pixel_x = 0; + pixel_y = 0; + start_active = 1 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"cNd" = ( +/obj/structure/girder, +/obj/item/stack/sheet/metal{ + amount = 2 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cNe" = ( +/obj/structure/grille/broken, +/obj/item/weapon/shard{ + icon_state = "small" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cNf" = ( +/obj/machinery/door/airlock/external{ + name = "External Access"; + req_access = null; + req_access_txt = "13" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cNg" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cNh" = ( +/obj/structure/mineral_door/wood, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cNi" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio2"; + name = "containment blast door" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/pink{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"cNj" = ( +/obj/structure/cable/pink{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"cNk" = ( +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"cNl" = ( +/obj/structure/window/reinforced, +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "xenobio7"; + name = "Containment Blast Doors"; + pixel_x = 0; + pixel_y = 4; + req_access_txt = "55" + }, +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/toxins/xenobiology) +"cNm" = ( +/obj/machinery/door/poddoor/preopen{ + id = "xenobio7"; + name = "containment blast door" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/pink{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"cNn" = ( +/obj/structure/grille/broken, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2); + name = "random metal material damage spawner" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cNo" = ( +/obj/structure/grille/broken, +/obj/item/weapon/wrench, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cNp" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cNq" = ( +/obj/item/toy/spinningtoy{ + desc = "It's a gravitational \"Singulo!\"" + }, +/turf/open/space, +/area/space/nearstation) +"cNr" = ( +/obj/effect/landmark{ + name = "revenantspawn" + }, +/mob/living/simple_animal/slime, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"cNs" = ( +/turf/open/floor/plasteel/purple/side{ + tag = "icon-purple (WEST)"; + dir = 8 + }, +/obj/machinery/door/window/northleft{ + base_state = "right"; + dir = 8; + icon_state = "right"; + name = "Containment Pen"; + req_access_txt = "55" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio2"; + name = "containment blast door" + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (WEST)"; + dir = 8 + }, +/area/toxins/xenobiology) +"cNt" = ( +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/pink{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/pink{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"cNu" = ( +/turf/open/floor/plasteel/purple/side{ + tag = "icon-purple (EAST)"; + dir = 4 + }, +/obj/machinery/door/window/northleft{ + dir = 4; + name = "Containment Pen"; + req_access_txt = "55" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio7"; + name = "containment blast door" + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (EAST)"; + dir = 4 + }, +/area/toxins/xenobiology) +"cNv" = ( +/obj/item/stack/sheet/metal{ + amount = 2 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cNw" = ( +/obj/structure/closet/crate, +/obj/item/weapon/reagent_containers/syringe, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/item/clothing/under/color/lightpurple, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cNx" = ( +/obj/structure/closet/toolcloset, +/obj/item/stack/cable_coil/green, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cNy" = ( +/obj/item/weapon/coin/diamond, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/asmaint2) +"cNz" = ( +/obj/item/weapon/coin/uranium, +/obj/item/device/instrument/eguitar, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/asmaint2) +"cNA" = ( +/obj/machinery/door/poddoor/preopen{ + id = "xenobio2"; + name = "containment blast door" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/pink{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"cNB" = ( +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "xenobio2"; + name = "Containment Blast Doors"; + pixel_x = 0; + pixel_y = 4; + req_access_txt = "55" + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/toxins/xenobiology) +"cNC" = ( +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"cND" = ( +/obj/structure/cable/pink{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"cNE" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio7"; + name = "containment blast door" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/pink{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"cNF" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cNG" = ( +/obj/item/weapon/coin/plasma, +/obj/item/stack/sheet/mineral/plasma{ + layer = 2.9 + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/asmaint2) +"cNH" = ( +/obj/machinery/computer/slot_machine{ + balance = 15; + money = 500 + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/asmaint2) +"cNI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/asmaint2) +"cNJ" = ( +/obj/structure/sink{ + icon_state = "sink"; + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/camera{ + c_tag = "Xenobiology Lab"; + dir = 4; + network = list("SS13","Sci"); + start_active = 1 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"cNK" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"cNL" = ( +/obj/structure/table, +/obj/item/wallframe/firealarm, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cNM" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio1"; + name = "containment blast door" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/pink{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"cNN" = ( +/obj/structure/window/reinforced, +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "xenobio6"; + name = "Containment Blast Doors"; + pixel_x = 0; + pixel_y = 4; + req_access_txt = "55" + }, +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/toxins/xenobiology) +"cNO" = ( +/obj/machinery/door/poddoor/preopen{ + id = "xenobio6"; + name = "containment blast door" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/pink{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"cNP" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/asmaint2) +"cNQ" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Firefighting equipment"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cNR" = ( +/turf/open/floor/plasteel/purple/side{ + tag = "icon-purple (WEST)"; + dir = 8 + }, +/obj/machinery/door/window/northleft{ + base_state = "right"; + dir = 8; + icon_state = "right"; + name = "Containment Pen"; + req_access_txt = "55" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio1"; + name = "containment blast door" + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (WEST)"; + dir = 8 + }, +/area/toxins/xenobiology) +"cNS" = ( +/turf/open/floor/plasteel/purple/side{ + tag = "icon-purple (EAST)"; + dir = 4 + }, +/obj/machinery/door/window/northleft{ + dir = 4; + name = "Containment Pen"; + req_access_txt = "55" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio6"; + name = "containment blast door" + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (EAST)"; + dir = 4 + }, +/area/toxins/xenobiology) +"cNT" = ( +/obj/structure/chair, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cNU" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/asmaint2) +"cNV" = ( +/obj/machinery/door/poddoor/preopen{ + id = "xenobio1"; + name = "containment blast door" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/pink{ + tag = "icon-0-4"; + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"cNW" = ( +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "xenobio1"; + name = "Containment Blast Doors"; + pixel_x = 0; + pixel_y = 4; + req_access_txt = "55" + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/toxins/xenobiology) +"cNX" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio6"; + name = "containment blast door" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/pink{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"cNY" = ( +/obj/machinery/nuclearbomb/syndicate, +/obj/machinery/door/window{ + dir = 1; + name = "Secure Storage"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"cNZ" = ( +/turf/open/floor/plasteel/whitepurple/side, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warningline, +/area/toxins/xenobiology) +"cOa" = ( +/turf/open/floor/plasteel/whitepurple/side, +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warningline, +/area/toxins/xenobiology) +"cOb" = ( +/turf/open/floor/plasteel/whitepurple/side, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warningline, +/area/toxins/xenobiology) +"cOc" = ( +/obj/structure/closet/l3closet/scientist, +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/toxins/xenobiology) +"cOd" = ( +/obj/structure/table/glass, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/item/weapon/extinguisher{ + pixel_x = 4; + pixel_y = 3 + }, +/obj/item/weapon/extinguisher, +/obj/item/weapon/storage/box/monkeycubes, +/obj/item/weapon/storage/box/monkeycubes, +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/toxins/xenobiology) +"cOe" = ( +/obj/machinery/camera{ + c_tag = "Xenobiology Lab South 2"; + network = list("Sci"); + start_active = 1 + }, +/obj/machinery/computer/camera_advanced/xenobio, +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/toxins/xenobiology) +"cOf" = ( +/obj/machinery/processor{ + desc = "A machine used to process slimes and retrieve their extract."; + name = "Slime Processor" + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/toxins/xenobiology) +"cOg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/toxins/xenobiology) +"cOh" = ( +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/toxins/xenobiology) +"cOi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light_switch{ + pixel_x = 24; + pixel_y = 24; + tag = "ne" + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/toxins/xenobiology) +"cOj" = ( +/obj/machinery/monkey_recycler, +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/toxins/xenobiology) +"cOk" = ( +/obj/machinery/camera{ + c_tag = "Xenobiology Lab South 1"; + network = list("Sci"); + start_active = 1 + }, +/obj/machinery/computer/camera_advanced/xenobio, +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/toxins/xenobiology) +"cOl" = ( +/obj/machinery/smartfridge/extract, +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/toxins/xenobiology) +"cOm" = ( +/obj/structure/table/glass, +/obj/machinery/reagentgrinder, +/obj/item/stack/sheet/mineral/plasma{ + amount = 3; + layer = 2.9 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/toxins/xenobiology) +"cOn" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/toxins/xenobiology) +"cOo" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = 32 + }, +/obj/machinery/camera{ + c_tag = "Escape Pod 4"; + dir = 8; + network = list("SS13","Sci"); + pixel_x = 0; + pixel_y = 0 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cOp" = ( +/obj/structure/shuttle/engine/propulsion/burst{ + dir = 4 + }, +/turf/closed/wall/mineral/titanium, +/area/shuttle/pod_4) +"cOq" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/pod_4) +"cOr" = ( +/turf/open/floor/plating/airless/warnplate/corner{ + tag = "icon-warnplatecorner (WEST)"; + dir = 8 + }, +/area/space/nearstation) +"cOs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cOt" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Xenobiology Maintenance"; + req_access_txt = "55" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"cOu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"cOv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"cOw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"cOx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/chair/office/light{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"cOy" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"cOz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"cOA" = ( +/obj/structure/cable/pink{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/pink{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel/whitebot, +/area/toxins/xenobiology) +"cOB" = ( +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"cOC" = ( +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"cOD" = ( +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/chair/office/light{ + dir = 1 + }, +/obj/effect/landmark/start{ + name = "Scientist" + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"cOE" = ( +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"cOF" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Xenobiology Maintenance"; + req_access_txt = "55" + }, +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"cOG" = ( +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cOH" = ( +/obj/machinery/door/airlock/external{ + name = "Escape Pod Four"; + req_access = null; + req_access_txt = "0" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cOI" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Escape Pod Airlock" + }, +/obj/docking_port/mobile/pod{ + dir = 4; + id = "pod4"; + name = "escape pod 4" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_4) +"cOJ" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + pixel_y = 25 + }, +/obj/item/weapon/storage/pod{ + pixel_x = 6; + pixel_y = -26 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_4) +"cOK" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/status_display{ + density = 0; + layer = 3; + pixel_x = 0; + pixel_y = 32 + }, +/obj/machinery/computer/shuttle/pod{ + pixel_y = -32; + possible_destinations = "pod_asteroid4"; + shuttleId = "pod4" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_4) +"cOL" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/pod_4) +"cOM" = ( +/obj/docking_port/stationary/random{ + dir = 4; + id = "pod_asteroid4"; + name = "asteroid" + }, +/turf/open/space, +/area/space) +"cON" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/item/stack/sheet/mineral/wood{ + amount = 3 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cOO" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cOP" = ( +/obj/structure/cable/pink{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"cOQ" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"cOR" = ( +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"cOS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"cOT" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 6 + }, +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"cOU" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/structure/cable/pink{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"cOV" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"cOW" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"cOX" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + on = 0 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"cOY" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"cOZ" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10; + pixel_x = 0; + initialize_directions = 10 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"cPa" = ( +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"cPb" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/asmaint2) +"cPc" = ( +/obj/structure/sign/pods, +/turf/closed/wall, +/area/maintenance/asmaint2) +"cPd" = ( +/turf/open/space, +/obj/machinery/porta_turret/syndicate{ + dir = 6 + }, +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) +"cPe" = ( +/turf/open/space, +/obj/machinery/porta_turret/syndicate{ + dir = 10 + }, +/turf/closed/wall/mineral/plastitanium{ + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) +"cPf" = ( +/obj/structure/closet, +/obj/structure/cable/pink{ + tag = "icon-1-6"; + icon_state = "1-6" + }, +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 2 + }, +/area/toxins/xenobiology) +"cPg" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 2 + }, +/area/toxins/xenobiology) +"cPh" = ( +/obj/structure/table/glass, +/obj/machinery/light, +/obj/item/weapon/storage/box/beakers{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/weapon/storage/box/beakers{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/weapon/storage/box/syringes, +/obj/structure/sign/deathsposal{ + pixel_x = 0; + pixel_y = -32 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 2 + }, +/area/toxins/xenobiology) +"cPi" = ( +/obj/structure/cable/pink{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 2 + }, +/area/toxins/xenobiology) +"cPj" = ( +/obj/structure/cable/pink{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 2 + }, +/area/toxins/xenobiology) +"cPk" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/structure/cable/pink{ + tag = "icon-2-4"; + icon_state = "2-4" + }, +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 2 + }, +/area/toxins/xenobiology) +"cPl" = ( +/obj/structure/cable/pink{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/pink{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 2 + }, +/area/toxins/xenobiology) +"cPm" = ( +/obj/structure/cable/pink{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 2 + }, +/area/toxins/xenobiology) +"cPn" = ( +/obj/structure/cable/pink{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 2 + }, +/area/toxins/xenobiology) +"cPo" = ( +/obj/structure/cable/pink{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/pink{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 2 + }, +/area/toxins/xenobiology) +"cPp" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/structure/cable/pink{ + tag = "icon-0-8"; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 2; + name = "Autoname APC South"; + pixel_x = 1; + pixel_y = -24 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 2 + }, +/area/toxins/xenobiology) +"cPq" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = -25; + tag = "SOUTH" + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 2 + }, +/area/toxins/xenobiology) +"cPr" = ( +/obj/structure/table, +/obj/item/device/electropack, +/obj/item/device/healthanalyzer, +/obj/item/device/assembly/signaler, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 2 + }, +/area/toxins/xenobiology) +"cPs" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/pink, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"cPt" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/pink{ + tag = "icon-0-9"; + icon_state = "0-9" + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"cPu" = ( +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning{ + dir = 2 + }, +/area/toxins/xenobiology) +"cPv" = ( +/obj/machinery/computer/security/telescreen{ + dir = 1; + name = "Test Chamber Monitor"; + network = list("Xeno"); + pixel_x = 0; + pixel_y = 2 + }, +/obj/structure/table/reinforced, +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning{ + dir = 2 + }, +/area/toxins/xenobiology) +"cPw" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/button/ignition{ + id = "Xenobio"; + pixel_x = -6; + pixel_y = -2 + }, +/obj/machinery/button/door{ + id = "Xenolab"; + name = "Test Chamber Blast Doors"; + pixel_x = 4; + pixel_y = -2; + req_access_txt = "55" + }, +/obj/structure/table/reinforced, +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning{ + dir = 2 + }, +/area/toxins/xenobiology) +"cPx" = ( +/obj/machinery/door/window/southleft{ + dir = 1; + name = "Maximum Security Test Chamber"; + req_access_txt = "55" + }, +/turf/open/floor/plasteel/warning{ + dir = 2 + }, +/area/toxins/xenobiology) +"cPy" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 2 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning{ + dir = 2 + }, +/area/toxins/xenobiology) +"cPz" = ( +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/obj/item/clothing/glasses/science, +/obj/item/clothing/glasses/science, +/obj/structure/table, +/obj/structure/cable/pink{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning{ + dir = 2 + }, +/area/toxins/xenobiology) +"cPA" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); + lootcount = 2; + name = "random material damage spawner" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cPB" = ( +/turf/open/floor/engine/vacuum, +/area/toxins/xenobiology) +"cPC" = ( +/obj/machinery/shieldwallgen{ + req_access = list(55) + }, +/obj/structure/cable/pink, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"cPD" = ( +/obj/machinery/door/poddoor/preopen{ + id = "Xenolab"; + name = "test chamber blast door" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/pink, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"cPE" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/machinery/door/poddoor/preopen{ + id = "Xenolab"; + name = "test chamber blast door" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/pink, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"cPF" = ( +/obj/machinery/door/window/southleft{ + dir = 2; + name = "Maximum Security Test Chamber"; + req_access_txt = "55" + }, +/obj/machinery/door/poddoor/preopen{ + id = "Xenolab"; + name = "test chamber blast door" + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"cPG" = ( +/obj/machinery/door/poddoor/preopen{ + id = "Xenolab"; + name = "test chamber blast door" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/pink, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"cPH" = ( +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/device/flashlight/slime = 1, /obj/item/weapon/stock_parts/cell/high/slime = 1); + name = "random yellow slime device" + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/asmaint2) +"cPI" = ( +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 4; + name = "4maintenance loot spawner" + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/asmaint2) +"cPJ" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE" + }, +/turf/closed/wall/r_wall, +/area/toxins/xenobiology) +"cPK" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"cPL" = ( +/obj/structure/disposaloutlet{ + dir = 2 + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"cPM" = ( +/obj/item/stack/sheet/mineral/wood, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cPN" = ( +/obj/structure/bookcase, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cPO" = ( +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/toxins/xenobiology) +"cPP" = ( +/obj/structure/table_frame, +/obj/effect/spawner/lootdrop{ + loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2); + name = "random metal material damage spawner" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cPQ" = ( +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cPR" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/item/stack/sheet/mineral/wood, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cPS" = ( +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/asmaint2) +"cPT" = ( +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_x = -25; + pixel_y = -2; + tag = "WEST" + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"cPU" = ( +/obj/effect/spawner/lootdrop{ + loot = list(/obj/effect/decal/remains/xeno = 49, /obj/structure/alien/egg = 1); + name = "2% chance xeno egg spawner" + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"cPV" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 1 + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"cPW" = ( +/obj/item/device/radio/beacon, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"cPX" = ( +/obj/machinery/sparker{ + dir = 2; + id = "Xenobio"; + pixel_x = 25 + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"cPY" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/light, +/obj/machinery/camera{ + c_tag = "Secure Xenobiology Pen"; + dir = 1; + network = list("Xeno","Sci"); + start_active = 1 + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"cPZ" = ( +/obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cQa" = ( +/obj/structure/barricade/wooden, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cQb" = ( +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cQc" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/item/weapon/wirecutters, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cQd" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/item/stack/sheet/mineral/wood, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cQe" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/item/stack/sheet/mineral/wood{ + amount = 3 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cQf" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cQg" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cQh" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cQi" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/asmaint2) +"cQj" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cQk" = ( +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cQl" = ( +/obj/item/weapon/storage/fancy/cigarettes/cigpack_carp, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cQm" = ( +/obj/item/trash/syndi_cakes, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cQn" = ( +/obj/item/weapon/lighter/greyscale, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cQo" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/maintenance/asmaint2) +"cQp" = ( +/obj/structure/table/optable, +/obj/item/weapon/surgical_drapes, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"cQq" = ( +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/structure/disposaloutlet, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"cQr" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'BOMB RANGE"; + name = "BOMB RANGE" + }, +/turf/closed/wall, +/area/toxins/test_area) +"cQs" = ( +/turf/open/floor/plating/airless, +/area/toxins/test_area) +"cQt" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating/airless, +/area/toxins/test_area) +"cQu" = ( +/turf/closed/wall, +/area/toxins/test_area) +"cQv" = ( +/turf/open/floor/plating/airless/warnplate{ + dir = 2 + }, +/area/toxins/test_area) +"cQw" = ( +/obj/structure/chair, +/turf/open/floor/plating/airless/warnplate{ + dir = 9 + }, +/area/toxins/test_area) +"cQx" = ( +/turf/open/floor/plating/airless/warnplate{ + dir = 1 + }, +/area/toxins/test_area) +"cQy" = ( +/obj/structure/chair, +/turf/open/floor/plating/airless/warnplate{ + dir = 5 + }, +/area/toxins/test_area) +"cQz" = ( +/obj/structure/table, +/obj/item/weapon/cautery, +/obj/item/weapon/scalpel, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"cQA" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plating/airless/warnplate{ + dir = 9 + }, +/area/toxins/test_area) +"cQB" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plating/airless/warnplate{ + dir = 5 + }, +/area/toxins/test_area) +"cQC" = ( +/turf/open/floor/plating/airless/warnplate{ + dir = 4 + }, +/area/toxins/test_area) +"cQD" = ( +/turf/open/floor/plating/airless/warnplate{ + dir = 8 + }, +/area/toxins/test_area) +"cQE" = ( +/obj/item/device/radio/beacon, +/turf/open/floor/plating/airless, +/area/toxins/test_area) +"cQF" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plating/airless/warnplate{ + dir = 10 + }, +/area/toxins/test_area) +"cQG" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plating/airless/warnplate{ + dir = 6 + }, +/area/toxins/test_area) +"cQH" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plating/airless/warnplate{ + dir = 10 + }, +/area/toxins/test_area) +"cQI" = ( +/obj/machinery/camera{ + active_power_usage = 0; + c_tag = "Bomb Test Site"; + desc = "A specially-reinforced camera with a long lasting battery, used to monitor the bomb testing site."; + dir = 1; + invuln = 1; + light = null; + name = "Hardened Bomb-Test Camera"; + network = list("Toxins"); + start_active = 1; + use_power = 0 + }, +/obj/item/target/alien{ + anchored = 1 + }, +/turf/open/floor/plating/airless/warnplate{ + dir = 2 + }, +/area/toxins/test_area) +"cQJ" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plating/airless/warnplate{ + dir = 6 + }, +/area/toxins/test_area) +"cQK" = ( +/turf/closed/indestructible{ + desc = "A wall impregnated with Fixium, able to withstand massive explosions with ease"; + icon_state = "riveted"; + name = "hyper-reinforced wall" + }, +/area/toxins/test_area) +"cQL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 9 + }, +/turf/closed/wall, +/area/maintenance/atmos_control) +"cQM" = ( +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/atmos_control) +"cQN" = ( +/obj/structure/cable/green{ + tag = "icon-1-6"; + icon_state = "1-6" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"cQO" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/item/weapon/wirerod, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"cQP" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/obj/machinery/door/airlock/glass{ + name = "Central Access" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"cQQ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/glass{ + name = "Central Access" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"cQR" = ( +/obj/machinery/door/airlock/external{ + name = "Engineering External Access"; + req_access = null; + req_access_txt = "10;13" + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + tag = "icon-6-9"; + icon_state = "6-9"; + d1 = 4; + d2 = 8 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"cQS" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/door/airlock/glass{ + name = "Central Access" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"cQT" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = 32 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"cQU" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + tag = "icon-manifold-r-f (WEST)"; + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cQV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/engineering) +"cQW" = ( +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/effect/landmark/start{ + name = "Station Engineer" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/chair/stool, +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cQX" = ( +/obj/structure/table, +/obj/item/weapon/book/manual/wiki/engineering_construction, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cQY" = ( +/obj/structure/cable/green{ + tag = "icon-1-9"; + icon_state = "1-9" + }, +/obj/structure/cable/green{ + tag = "icon-4-9"; + icon_state = "4-9" + }, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"cQZ" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"cRa" = ( +/obj/structure/cable/green{ + tag = "icon-5-8"; + icon_state = "5-8" + }, +/obj/structure/cable/green{ + tag = "icon-1-8"; + icon_state = "1-8" + }, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"cRb" = ( +/turf/open/floor/plasteel/whitepurple/side{ + tag = "icon-whitepurple (NORTHWEST)"; + dir = 9 + }, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (NORTHWEST)"; + dir = 9 + }, +/area/medical/research{ + name = "Research Division" + }) +"cRc" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "QMLoad2"; + tag = "cargoshuttleup" + }, +/obj/machinery/door/poddoor{ + id = "QMLoaddoor"; + name = "supply dock loading door" + }, +/turf/open/floor/plating, +/area/shuttle/supply) +"cRd" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/maintenance/apmaint) +"cRe" = ( +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Cargo Escape Airlock"; + opacity = 0 + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/hallway/secondary/exit) +"cRf" = ( +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Cargo Escape Airlock"; + opacity = 0 + }, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/hallway/secondary/exit) +"cRg" = ( +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Escape Airlock"; + opacity = 0 + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/hallway/secondary/exit) +"cRh" = ( +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Escape Airlock"; + opacity = 0 + }, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/hallway/secondary/exit) +"cRi" = ( +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Security Escape Airlock"; + opacity = 0; + req_access_txt = "2" + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/hallway/secondary/exit) +"cRj" = ( +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Security Escape Airlock"; + opacity = 0; + req_access_txt = "2" + }, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/hallway/secondary/exit) +"cRk" = ( +/turf/open/floor/plasteel, +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Mining Dock Airlock"; + opacity = 0; + req_access = null; + req_access_txt = "48" + }, +/turf/open/floor/plasteel/sandeffect, +/area/quartermaster/miningdock) +"cRl" = ( +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Solar Maintenance"; + opacity = 0; + req_access = null; + req_access_txt = "10; 13" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/portsolar) +"cRm" = ( +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Solar Maintenance"; + opacity = 0; + req_access = null; + req_access_txt = "10; 13" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/starboardsolar) +"cRn" = ( +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Supply Dock Airlock"; + opacity = 0; + req_access_txt = "31" + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/quartermaster/storage) +"cRo" = ( +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Supply Dock Airlock"; + opacity = 0; + req_access_txt = "31" + }, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/quartermaster/storage) +"cRp" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/space, +/area/space/nearstation) +"cRq" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/space, +/area/space/nearstation) +"cRr" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + icon_state = "1-4"; + d1 = 1; + d2 = 4 + }, +/turf/open/space, +/area/space/nearstation) +"cRs" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/space, +/area/space/nearstation) +"cRt" = ( +/obj/structure/table, +/obj/item/weapon/retractor, +/obj/item/weapon/hemostat, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"cRu" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"cRv" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"cRw" = ( +/obj/docking_port/stationary{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 24; + id = "syndicate_sw"; + name = "southwest of station"; + turf_type = /turf/open/space; + width = 18 + }, +/turf/open/space, +/area/space) +"cRx" = ( +/obj/docking_port/stationary{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 24; + id = "syndicate_se"; + name = "southeast of station"; + turf_type = /turf/open/space; + width = 18 + }, +/turf/open/space, +/area/space) +"cRy" = ( +/obj/docking_port/stationary{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 24; + id = "syndicate_s"; + name = "south of station"; + turf_type = /turf/open/space; + width = 18 + }, +/turf/open/space, +/area/space) +"cRz" = ( +/turf/closed/wall, +/area/space/nearstation) +"cRA" = ( +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/grille, +/obj/structure/window/reinforced/tinted/fulltile, +/turf/open/floor/plating, +/area/maintenance/asmaint2) +"cRB" = ( +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"cRC" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/structure/table, +/obj/item/weapon/book/manual/hydroponics_pod_people, +/obj/item/weapon/watertank, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/item/weapon/reagent_containers/spray/plantbgone, +/obj/item/weapon/reagent_containers/spray/plantbgone, +/obj/item/weapon/reagent_containers/spray/plantbgone, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"cRD" = ( +/obj/structure/table/wood, +/obj/item/clothing/head/hardhat/cakehat, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"cRE" = ( +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"cRF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"cRG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/chair, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"cRH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"cRI" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"cRJ" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/machinery/light/small, +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = -25; + tag = "SOUTH" + }, +/obj/structure/closet/secure_closet/hydroponics, +/obj/item/clothing/tie/armband/hydro, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"cRK" = ( +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = -31 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"cRL" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/condiment/peppermill{ + pixel_x = 3 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"cRM" = ( +/obj/machinery/processor, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"cRN" = ( +/obj/item/device/radio/intercom{ + broadcasting = 0; + listening = 1; + name = "Station Intercom (General)"; + pixel_y = 20; + tag = "NORTH" + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"cRO" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"cRP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/table, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"cRQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/table, +/obj/item/weapon/kitchen/fork, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"cRR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"cRS" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/obj/item/weapon/reagent_containers/food/snacks/pizzaslice/vegetable{ + desc = "Ah, leftovers. A slice of the most green pizza of all pizzas not containing green ingredients." + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"cRT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"cRU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/table, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"cRV" = ( +/obj/machinery/atmospherics/components/unary/cryo_cell, +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/bot, +/area/medical/exam_room) +"cRW" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel, +/area/medical/exam_room) +"cRX" = ( +/turf/closed/wall/rust, +/area/chapel/office) +"cRY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/sign/map/right/dream{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"cRZ" = ( +/obj/structure/cable/green{ + tag = "icon-4-8"; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/sign/map/left/dream{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"cSa" = ( +/obj/structure/cable/green{ + tag = "icon-2-8"; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"cSb" = ( +/obj/machinery/door/airlock/maintenance{ + name = "maintenance access"; + req_access_txt = "12" + }, +/obj/structure/cable/green{ + tag = "icon-1-2"; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/asmaint) +"cSc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/sign/map/right/dream{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"cSd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/sign/map/left/dream{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"cSe" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/green{ + tag = "icon-1-4"; + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Fore Port Hallway" + }) +"cSf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/sign/map/left/dream{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"cSg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/sign/map/right/dream{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"cSh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/sign/map/right/dream{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"cSi" = ( +/obj/structure/sign/map/left/dream{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"cSj" = ( +/obj/structure/sign/map/right/dream{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"cSk" = ( +/obj/structure/sign/directions{ + dir = 4; + icon_state = "direction_supply"; + name = "cargo bay"; + pixel_y = -24; + tag = "icon-direction_supply" + }, +/obj/structure/sign/directions{ + dir = 4; + icon_state = "direction_bridge"; + name = "bridge"; + pixel_y = -32; + tag = "icon-direction_bridge" + }, +/obj/structure/sign/directions/engineering{ + dir = 1; + icon_state = "direction_eng"; + pixel_x = 0; + pixel_y = -40; + tag = "icon-direction_eng (NORTH)" + }, +/obj/machinery/camera{ + c_tag = "Aft Port Hallway West 3"; + dir = 1; + network = list("SS13") + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"cSl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/sign/map/left/dream{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Port Hallway" + }) +"cSm" = ( +/obj/structure/closet/secure_closet/freezer/cream_pie, +/turf/open/floor/wood, +/area/crew_quarters/theatre) + +(1,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(2,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(3,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(4,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(5,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(6,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(7,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(8,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(9,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(10,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(11,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(12,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(13,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(14,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(15,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(16,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(17,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(18,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(19,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(20,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(21,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(22,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(23,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(24,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(25,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(26,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(27,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(28,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +afv +aae +aaa +bnA +bpP +bnA +bpP +bnA +bnA +bnA +bpP +bpP +bpP +bnA +bnA +bnA +bpP +bnA +bpP +bnA +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(29,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +aab +afv +aaa +bnA +bnA +bpQ +brZ +bpQ +bpP +byq +bAp +bAp +bAp +bAp +bAp +byq +bpR +bpR +bpR +bRt +bnA +bnA +bnA +bnA +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(30,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +aae +aaa +afv +aaa +bmn +bnB +bpR +bpR +bpR +bpP +byr +byr +byr +byr +byr +byr +byr +byr +byr +byr +bpS +bnA +bUy +bVB +bWW +bnA +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(31,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +aaa +aae +aaa +afv +aaa +bmn +bnB +bpR +bpR +bpR +bwq +byr +bAq +bAq +bAq +bAq +bAq +byr +bLZ +bLZ +byr +bpR +bTk +bUz +bUz +bWX +bpP +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(32,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 +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +aaa +aaa +aae +aaa +afv +aaa +bmn +bnB +bpS +bpR +bpS +bpP +byr +bAr +bAr +bAr +bAr +bAr +byr +bLZ +bAs +byr +byr +bTl +byr +byr +bWY +bpP +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(33,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +aaa +aaa +aaa +aae +aae +afv +aaa +bmn +bnB +bnA +bnA +bnA +bwr +byr +byr +byr +byr +byr +byr +byr +bLZ +bNH +byr +bRu +bnA +bUA +byr +bWZ +bpP +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(34,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +aaa +aaa +aaa +aaa +aae +aaa +afv +aaa +bmn +bnB +bpU +bsa +bue +bnA +byr +bAq +bAq +bAq +bAq +bAq +byr +bMa +bpP +bPG +bpP +bnA +bUB +byr +bWY +bpP +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(35,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aae +aae +aaa +aaa +aaa +aaa +aaa +aae +aaa +afv +aaa +bmn +bnB +bpU +bsa +bsa +bwt +byr +bAr +bAr +bAr +bAr +bAr +byr +bnA +bNI +bNJ +bRv +bnA +bUC +bVC +bXa +bpP +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(36,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaa +afv +aaa +bmn +bnB +bpV +bsa +bsa +bnA +byr +byr +byr +byr +byr +byr +bKg +bnA +bNI +bNJ +bRv +bnA +bUD +bVD +bWW +bnA +aae +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(37,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cRz +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaa +afv +aaa +bnA +bnA +bpV +bsa +bsa +bnA +byr +bAs +bAs +bAs +bAs +bAs +byr +bnA +bNJ +bPH +bRv +bnA +bnA +bnA +bnA +aaa +aae +aaa +aae +aaa +aaa +aaa +aaa +aae +aae +aaa +aab +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(38,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +amd +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +cRz +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +afv +aae +aaa +bnA +bnA +bnA +buf +bnA +buf +bnA +bpP +bpP +bpP +bnA +bKh +bnA +bNK +bnA +bnA +bnA +aaa +aaa +aaa +aaa +aae +aaa +aae +aaa +cgO +cgO +cgO +cgO +cgO +cgO +cgO +cgO +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cRw +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(39,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cRz +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cRz +aaa +aaa +aae +aae +aaa +amd +aaa +aaa +aaa +cRz +aaa +aaa +aaa +aae +aaa +afv +aaa +aaa +aae +aae +bnC +cRe +bwv +cRg +bnC +aae +aae +aae +bnC +cRg +bwv +cRi +bnC +aaa +aaa +aae +aaa +aaa +aae +bUI +caT +bUI +aaa +cgO +cdl +boo +czH +byZ +bCD +bEM +cgO +aaa +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(40,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cRz +aaa +aaa +aaa +aaa +aab +cRz +aaa +aaa +aaa +aaa +aaa +amd +aaa +aae +aae +aae +aaa +cRz +aaa +aaa +aaa +amd +aab +aaa +aaa +aae +aaa +afv +aae +aaa +aae +aaa +bnC +buh +bnC +buh +bnC +aaa +aae +aaa +bnC +buh +bnC +buh +bnC +aae +aae +aae +aae +aae +aae +bUI +caU +bUI +aaa +cgO +cdl +buX +byX +cdl +cdl +cdl +cgO +cgO +cgO +cgO +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(41,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cRz +aaa +aaa +aaa +aaa +aaa +amd +aaa +aaa +aaa +aaa +aaa +cRz +aae +aae +aaa +aae +aae +cRz +aaa +aaa +aaa +cRz +aaa +aaa +aae +aae +aae +afv +afv +afv +afv +afv +bnC +buh +bnC +buh +bnC +aae +aae +aae +bnC +buh +bnC +buh +bnC +aaa +aaa +aae +aaa +aaa +aae +bUI +caV +bUI +aae +cps +cdl +cvL +cdl +bCz +bEL +bHf +bJi +bEL +bJl +cgO +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(42,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +amd +aae +aae +anR +anS +anS +anR +aaa +aaa +aaa +aaa +aaa +amd +aae +aaa +aaa +aaa +aae +amd +aaa +aaa +aaa +cRz +aaa +aae +aae +aaa +aae +afv +aae +aaa +bnC +bnC +bnC +cRf +bnC +cRh +bnC +bnC +bEg +bnC +bnC +cRh +bnC +cRj +bnC +bnC +bnC +bUE +bUE +bUE +bUE +bUI +caW +ccW +ccW +ccW +cRX +bwW +byY +ccW +ccW +ccW +ccW +cdl +bKF +cgO +aae +aae +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(43,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cRz +aae +aaa +anR +aBx +aCW +anR +aae +aae +aae +aae +aae +amd +aaa +aaa +aaa +aaa +aaa +anR +anR +anR +anR +anR +anR +anR +aaa +aaa +aae +afv +aae +aae +bnC +bpW +bsb +buj +bww +byu +bAt +bBS +bEh +bGB +bAt +bKi +bww +bNN +bPI +bRw +bnC +bUF +bVE +bXc +bYj +bZH +bZI +ccX +ceU +ceU +ccW +ccW +ccW +ccW +cph +cqR +ccW +ctX +bQh +cxn +cyC +cxn +cxn +cxn +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(44,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +anR +anR +anR +anR +axl +auq +anR +aaa +aaa +aaa +aae +aae +cRz +aaa +aaa +aaa +aaa +aaa +anR +aVH +auq +aoq +axm +bcx +anS +aaa +aaa +aae +afv +aaa +aaa +bnC +bpW +bsc +buk +bnC +byv +bqa +bsc +bqa +bGC +bqa +bKj +bnC +bNO +bPJ +bRx +bnC +bUG +bVF +bUG +bVF +bZI +caX +ccY +ceV +cgE +ccW +cjZ +clG +ccW +cpi +cqS +cnu +ctY +cvG +cxo +cyD +cdl +cAL +cxn +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(45,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 +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaa +anR +axi +ayE +anR +aBy +auq +anR +aaa +aaa +aae +aae +aaa +cRz +aaa +aab +aaa +aaa +aaa +anR +aVI +aXG +auq +auq +bcy +anR +aaa +anR +anR +arh +anR +aae +bnD +bpX +bsd +bul +bwx +byw +buq +bBT +bEi +bGD +buq +bKk +bMb +bNP +bPK +bRy +bnD +bUH +bVG +bUH +bVG +bZJ +caY +ccW +ceW +cgF +cij +cka +clH +cnt +cpj +cqT +csw +ctZ +cvH +cxn +cdl +czE +cAM +cxn +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(46,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 +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +anR +anR +anR +anR +anR +anR +anR +aCX +anR +aaa +aae +aae +aaa +aaa +amd +aae +aaa +aaa +aaa +aaa +anR +aVJ +aVJ +aZm +aus +auq +anR +aae +anR +bia +auq +anR +aaa +bnD +bpY +bse +bum +bwy +byx +bAu +bsm +bEj +bus +bAu +bKl +bwy +bNQ +bPL +bRz +bnD +bUG +bVF +bUG +bVF +bZI +bZI +ccW +ceX +cgG +cik +ckb +clI +cnu +cpk +cqU +ccW +clY +cvI +cxn +cdl +czF +cAN +cxn +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(47,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 +acj +acm +acm +acm +acm +cLN +acm +acm +acm +adh +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +anS +aun +auq +axj +ayF +aAe +aBz +auq +anR +anR +anR +anR +anR +anR +anR +anR +anR +anS +anR +anR +anR +anR +anR +anR +bbb +anR +anR +anR +anR +anR +arh +anR +anR +bnD +bpW +bsf +bun +bnC +byy +bqa +bBU +bEk +bGE +bqa +bKm +bnC +bNO +bPM +bRx +bnD +bUH +bVG +bUH +bVG +bZI +caZ +ccW +ceY +cgH +cil +ckc +clJ +ccW +ccW +ccW +ccW +clY +cvJ +cxn +cyC +cxn +cxn +cxn +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(48,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 +acj +acm +acm +acm +acm +acm +acm +afH +agj +afH +afG +agz +agE +cQz +agC +agS +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +anS +auo +avT +axk +ayG +aqh +aBA +bQU +aEl +aqh +aqh +aqh +aIt +aqh +aqh +aMH +aNN +aPD +aRp +aqh +aqh +aqh +aXH +aqh +bbc +auq +auq +auq +auq +bib +auq +auB +avZ +bnD +bpW +bsg +buo +bnD +byz +bAv +bBV +bAv +bGF +bAv +bKn +bnD +bNR +bPN +bRA +bnD +bUG +bVH +bXd +bVF +bZK +cba +ccW +ceZ +cgF +cim +ckd +ceZ +cnv +cpl +ccW +csx +clY +cnQ +cgO +aae +aae +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(49,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 +acm +adN +adN +adN +adN +adN +acm +afG +afG +afG +afG +agt +afG +cQp +agC +agT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +anS +auo +avU +axl +anR +anR +auV +arm +aEm +aFD +aFD +aFD +aFD +aFD +aFD +aMI +aNO +aPE +aRq +aFD +aFD +aFD +aFD +aZn +bbd +bcz +bea +bfy +bfy +bfy +bfy +bkE +bmp +bnD +bnD +bsh +bnD +bwz +byA +byA +bBW +bEl +bGG +byA +byA +bMc +bnD +bPO +bnD +bnD +bUI +bUI +bUI +bUI +bUI +cbb +ccW +cfa +cgI +cin +cke +cin +ccW +cpm +ccW +csy +clY +cnQ +cgO +aaa +aae +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(50,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 +acm +acy +acy +acy +acy +acy +acm +agc +afG +afG +afG +agB +agF +cRt +agC +agU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +anS +aup +auq +axm +anR +aAf +aBB +arm +asn +aFE +aFE +aFE +aFE +aFE +aFE +aBD +aBD +aBD +aBD +aBD +aBD +aBD +aBD +aBD +bbe +bcA +beb +bef +bef +bic +axm +bkF +bfy +bnE +bpZ +bsi +bup +bwA +byB +byB +bBX +byB +bGH +byB +byB +bMd +bNS +bPP +bRB +bnD +bUJ +bVI +bXe +bYk +bUI +cbc +ccZ +ccZ +cgJ +ccZ +ckf +bZI +cnw +cpn +bUI +csz +cua +cvK +cgO +aaa +aaa +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(51,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 +acj +acm +acm +acm +adh +aaa +aaa +acm +acy +aeg +acy +acy +acy +acm +afY +afG +afG +afG +agA +acm +acm +acm +cPd +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +anR +auq +anR +anR +anR +anR +anR +arm +asn +aFE +aGP +aIu +aJY +aLI +aBD +cqK +aNP +aPF +aBD +aSC +aTV +aVK +aXI +aBD +arj +aAm +bec +bfz +bhg +bhg +bhg +bhg +bhg +bnD +bqa +bsj +bqa +bqa +bqa +bqa +bBY +bqa +bGI +bqa +bqa +bqa +bqa +bqa +bRC +bnD +bTE +bTE +bTE +bTE +bUI +cbd +bZI +bZI +cgK +cio +cba +clK +bUI +bUI +bUI +csA +cub +cgR +cgO +aae +aae +aae +aae +aae +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(52,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 +acm +acx +acK +acX +acm +cLL +aaa +acm +adO +aef +aeM +acy +acy +acm +agd +afG +afG +afG +agD +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +anR +aur +avV +axn +auq +aAg +auq +arm +asn +aFE +aGQ +aIv +aJZ +aLJ +aBD +csk +aIx +aPG +aDe +aSD +aTW +aVL +aXJ +aFF +bbf +bcB +bed +bfA +bhh +bid +bjG +bkG +bmq +bnF +bqb +bsk +buq +buq +buq +buq +bBZ +buq +bGD +buq +buq +bMe +bMe +buq +bRD +bnF +bUK +bVJ +bXf +cSi +bUI +cbe +cda +cfb +cgL +cgN +ckg +cfb +cbe +bUI +cqV +cnQ +clY +cdl +cgO +cgO +cgO +cgO +aaa +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(53,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 +acl +acy +acy +acy +acm +acm +acm +acm +acm +acm +acm +aeL +aeW +acm +acm +agk +agl +agr +acm +acm +acm +adh +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +anR +aus +anR +axl +ayH +aos +axl +arm +asn +aFE +aGR +aIw +aKa +aLK +aMJ +czz +aNR +aPH +aRr +aSE +aTX +aVM +aXK +aZo +bbg +bcC +bec +auq +bhg +cSc +bjH +bkH +bmr +bnG +bqc +bsl +bur +bqc +bqc +bqc +bCa +bEm +bGJ +bqc +bKo +bMf +bNT +bqc +bqc +bnG +bUL +bVK +bXg +cSj +bUI +bZI +cdb +cfc +cgL +cgN +ckh +cfc +bZI +bUI +cqW +cnQ +clY +cdl +cxp +cdl +czG +cgO +aaa +aaa +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(54,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 +acl +acz +acy +acy +acm +adq +acy +acy +acy +acy +aeX +acy +acy +afs +acy +acy +acy +acy +acy +aeX +agC +agS +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aac +aad +aac +aac +aac +aac +aad +aac +aac +aac +aac +aac +aaa +aaa +aaa +aaa +aaa +aaa +anR +aut +anR +axo +ayI +aAh +axl +arm +asn +aFE +aGS +aIx +aKb +aLL +aMK +czB +aNU +aPI +aRs +aSF +aTY +aVN +aXL +aBD +bbh +bcD +cSa +awe +cSb +bie +cSe +bkI +bms +bnH +bqd +bsm +bus +bwB +byC +bAw +bCb +bEn +bGK +bIL +bKp +bMg +bsm +bPQ +bRE +bnH +bUM +bVL +afX +bYl +bUI +afr +cda +cfb +cgL +cgN +ckg +clL +bhi +bUI +cqX +cnQ +clY +cvL +cgO +cdl +czH +cps +aaa +aaa +aaa +aac +aac +aad +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(55,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 +acl +acA +adJ +acy +adi +acy +acy +acy +acy +acy +aeV +acy +acy +acy +acy +acy +acy +acy +acy +cNY +agC +agT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aaa +aaa +aae +aae +aae +aae +aae +aae +aae +aae +aae +aae +aae +aaa +aaa +aaa +aaa +aaa +anR +auu +anR +auq +auq +auq +auq +arm +asn +aFE +aGT +aIx +aKc +aLM +aML +cIP +aNT +aPJ +aBD +aSG +aTZ +aVO +aXM +aBD +bbi +bcE +bef +bfB +bhg +bif +bjI +bkJ +bmt +bmt +bmt +bsn +but +bmt +bmt +bmt +bmt +bmt +bmt +bmt +bmt +bmt +bsn +but +bmt +bmt +bmt +bVM +alt +cSk +bUI +cbf +cdc +cfc +cgL +cgN +ckh +cfc +cnx +bUI +cqY +cnQ +clY +cvM +cgO +cqV +czI +cgO +aaa +aaa +aaa +aae +aae +aae +aae +aae +aae +aae +aae +aae +aae +aae +aaa +aaa +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(56,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 +acl +acB +acy +acY +acm +adr +ady +ady +ady +ady +aeX +acy +acy +acy +acy +acy +acy +acy +acy +aeX +agC +agU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aaa +aiG +aae +ajo +aaa +aiG +aae +ajo +aaa +aiG +aae +ajo +aae +aae +aaa +aaa +aaa +aaa +anR +auv +anR +axp +ayJ +aAi +aBC +arm +asn +aFE +aGU +aIy +aKd +aLN +aMK +aKb +aNU +aPK +aBD +aLP +aUa +aPO +aLP +aBD +bbj +aAm +auq +bfC +bhg +big +bjI +bkJ +bmu +bnI +bqe +bso +buu +bwC +bnS +bAx +bCc +bAx +bnS +bAx +bnS +bMh +bso +buu +bRF +bTn +bmu +bVM +alt +bYm +bZL +bZI +cda +cfb +cgL +cgN +ckg +cfb +cny +bUI +cgR +csB +cuc +cgO +cgO +cgO +cgO +cgO +aaa +aaa +aae +aae +cFX +aae +cHD +aaa +cFX +aae +cHD +aaa +cFX +aae +cHD +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(57,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 +acl +acC +acy +acy +acm +acm +acm +cLM +acm +acm +acm +afE +aeX +acm +acm +acm +afZ +age +acm +acm +acm +adj +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aaa +aiG +aiT +ajo +aaa +aiG +aiT +ajo +aaa +aiG +aiT +ajo +aaa +aae +aae +aaa +aaa +aae +anR +auw +anR +axq +axq +axq +axq +arm +asn +aFE +aGV +aIz +aKe +aLO +aMK +aKb +aNU +aPL +aBD +aSH +aUb +aVP +aXN +aBD +arj +aAm +auu +bfD +bhg +bih +bjI +bkK +bmt +bnJ +bnS +bso +buu +bwC +bnS +bAx +bnS +bAx +bnS +bAx +bnS +bMh +bso +buu +bnS +bTo +bmt +bVN +alt +bYn +bZL +bZI +cdc +cfc +cgL +cgN +ckh +cfc +bZI +bUI +cqZ +csC +cud +cvN +cgO +aaa +aaa +aaa +aaa +aae +aae +aaa +cFX +cGR +cHD +aaa +cFX +cGR +cHD +aaa +cFX +cGR +cHD +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(58,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 +acm +acC +acy +acZ +acm +adj +aaa +aaa +aaa +acm +acy +acy +acy +acm +agi +acy +acy +acy +agm +ags +acm +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaa +aiG +aiU +ajo +aaa +aiG +aiU +ajo +aaa +aiG +aiU +ajo +aaa +aaa +aae +aae +aaa +aae +anR +aux +auv +axr +bwu +bPa +bPd +bSC +asn +aFE +aBD +aIA +aKf +aBD +aBD +cIV +aNU +cJB +aBD +aSI +aUc +aVQ +aXO +aBD +bbk +bcF +auv +bfE +bhg +bii +bjJ +bkL +bmv +bnK +bnK +bsp +buv +bnK +bnK +bnK +bnK +bnK +bnK +bnK +bnK +bnK +bsp +buv +bnK +bnK +bmv +bVO +arH +bYo +bZM +cbg +cbg +cbg +cgM +cbg +cki +clM +cbg +cpo +cra +csD +cue +cvO +cgO +aaa +aaa +aaa +aae +aae +aaa +aaa +cFX +cGS +cHD +aaa +cFX +cGS +cHD +aaa +cFX +cGS +cHD +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(59,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 +acL +acm +acm +acm +adj +aaa +aaa +aaa +aaa +aeh +acy +acy +acy +acm +afI +acy +acy +acy +agn +acm +acm +acm +cPe +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aac +aac +aad +aae +aae +aiG +aiU +ajo +aaa +aiG +aiU +ajo +aaa +aiG +aiU +ajo +aaa +aaa +aaa +aae +aae +aae +anR +anR +auv +auv +auq +ayK +aAj +bTi +aEn +aFF +bTj +aGW +aIB +aKg +aLP +aMM +aNU +aPM +aBD +aBD +aUd +aVR +aXP +aXP +bbl +bcG +aXP +aXP +aXP +big +bjI +bkM +bmw +bnL +bnL +bsq +buw +bnL +bnL +bnL +bnL +bEo +bnL +bnL +bnL +bnL +bsq +bPR +bnL +bTp +bmw +bVP +bXk +bYp +bZN +cbh +cdd +cbh +cbh +cbh +ckj +clN +cbh +cpp +crb +csE +cuf +cvP +cgO +aaa +aaa +aae +aae +aaa +aaa +aaa +cFX +cGS +cHD +aaa +cFX +cGS +cHD +aaa +cFX +cGS +cHD +aae +aae +aac +aac +aac +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(60,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 +aev +acy +acy +acy +acm +afJ +acy +acy +acy +acy +acy +cRv +agC +agS +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aaa +aaa +aae +aaa +aaa +aiH +aiV +ajp +aaa +aiH +akc +ajp +aaa +aiH +aiV +ajp +aaa +aaa +aaa +aaa +aae +aae +aqd +atd +atd +atd +atd +ayL +aAk +aDb +aEo +aFG +bTm +aGX +aPQ +aeu +aLP +aMN +aNW +aPN +aBD +aSJ +aUe +aVS +aXP +aZp +bbm +bcH +beg +bfF +aXP +bij +bjK +bkN +bmt +bnM +bqf +bsr +bux +bwD +bnS +bAy +bnS +bAy +bnS +bIM +bnS +bIM +bNU +bIM +bqg +bTq +bmt +bVQ +aIC +bYq +bZL +bZI +cba +cfd +cgN +cgN +cfd +clO +bZI +cpq +crc +csF +csF +csF +csF +cyE +aae +aae +aaa +aaa +aaa +aaa +cFY +cGT +cHE +aaa +cFY +cJE +cHE +aaa +cFY +cGT +cHE +aaa +aaa +aae +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(61,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 +acL +acm +acm +acm +acm +afK +aeg +acy +acy +acy +acy +cRu +agC +agT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aaa +aaa +aae +aaa +aaa +aae +aiW +aae +aaa +aae +aiW +aae +aaa +aae +aiW +aae +aaa +aaa +aaa +aaa +aqd +aqd +aqd +ate +auy +avW +atd +ayM +aAl +aBD +aBD +aBD +aBD +aGY +aID +aKh +aLP +aLP +aNX +aPO +aBD +aBD +aUf +aVT +aXQ +aZq +bbn +bcI +beh +bfG +aXP +bij +bjI +bkJ +bmu +bnN +bnS +bso +buu +bnS +byD +bAy +byD +bAy +bnS +bIM +bnS +bIM +bNU +bIM +bqg +bTr +bmu +bVM +alt +bYm +bZL +cbe +cde +cfe +cgN +cgN +cfe +clP +cbe +cpq +crd +csF +cug +cvQ +cxq +cyE +cyE +cyE +aaa +aaa +aaa +aaa +aae +cGU +aae +aaa +aae +cGU +aae +aaa +aae +cGU +aae +aaa +aaa +aae +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(62,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 +aei +acm +afL +aga +acy +afD +afD +acy +aeY +agC +agU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aae +aae +aid +aio +aio +aiI +aiX +aiX +aiX +aiX +aiX +aiX +aiX +aiX +aiX +aiX +aiX +anQ +aio +aio +ato +arg +ato +atf +auz +avX +axs +ayN +aAl +aBE +aDc +aEp +aFH +aGZ +aIE +aKi +aLQ +aMO +aNY +aPP +aRt +aLQ +aUg +aVU +aXR +aZr +bbo +bcJ +bcH +bfH +aXP +bij +bjI +bkJ +bmt +bmt +bmu +bss +buy +bmu +bmt +bmt +bmt +bEp +bnS +bnS +bnS +bnS +bNU +bnS +bqg +bTs +bmt +bVM +alt +bYm +bUI +bUI +bUI +bUI +bUI +bUI +bUI +bUI +bUI +cpq +cre +csG +cuh +cvR +cxr +cRl +czJ +cRl +cBP +cBP +cBP +cBP +cFZ +cGV +cHF +cGV +cGV +cGV +cGV +cGV +cGV +cGV +cLO +cBP +cBP +cMI +aae +aae +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(63,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 +acL +acm +acm +acm +acm +cLM +acm +acm +acm +adj +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aaa +aaa +aae +aaa +aaa +aae +aiY +aae +aae +aae +aiY +aae +aaa +aae +aiY +aae +aaa +aaa +aaa +aaa +aqd +aqd +aqd +atg +auA +avY +atd +ayO +aAl +aBF +aDd +aEq +aFI +aHa +aIF +aKj +aLR +aHa +aNZ +aPQ +aRu +aLR +aUh +aVV +aXS +aZs +bbp +bcK +bei +bfI +aXP +bij +bjI +bkJ +bmt +bnO +bnS +bso +buu +bnS +byE +bmt +bCd +bmt +bGL +bIN +bKq +bnS +bNV +bPS +bqg +bTt +bmt +bVM +alt +bYr +bZO +cbi +cdf +cdf +cdf +cip +cdf +clQ +cdf +cpr +crf +csF +cui +cvS +cxs +cyE +cyE +cyE +aaa +aaa +aaa +aaa +aae +cGW +aae +aae +aae +cGW +aae +aaa +aae +cGW +aae +aaa +aaa +aae +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(64,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 +aac +aaa +aaa +aae +aaa +aaa +aiH +aiZ +ajp +aaa +aiH +aiZ +ajp +aaa +aiH +aiZ +ajp +aaa +aaa +aaa +aaa +aae +aae +aqd +atd +atd +atd +atd +ayP +aAl +aBD +aDe +aBD +aBD +aHb +aIG +aKd +aBD +aMP +aIx +aKb +aRv +aBD +aUi +aVW +aXP +aZt +bbp +bcL +bcH +bfJ +aXP +bij +bjI +bkO +bmt +bnP +bqg +bst +buz +bqg +byF +bmt +bCe +bmt +bmt +bmt +bmt +bMi +bNW +bPT +bqg +bTu +bmt +bVR +alt +bYs +bTE +cbj +cbj +cbj +cbj +ciq +ckk +ckx +ckx +cnS +crg +csF +csF +csF +csF +cyE +aae +aae +aaa +aaa +aab +aaa +cFY +cGX +cHE +aaa +cFY +cGX +cHE +aaa +cFY +cGX +cHE +aaa +aaa +aae +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(65,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 +aad +aac +aac +aac +aae +aae +aiJ +aja +ajq +aaa +aiJ +aja +ajq +aaa +aiJ +aja +ajq +aaa +aaa +aaa +aae +aae +aaa +aaa +anR +auB +avZ +axt +ayL +aAl +aBG +aDd +aEr +aFJ +aHa +aIF +aKd +aLP +aMQ +aIx +aKb +aMQ +aLP +aUj +aVW +aXP +aZu +bbq +bcM +bej +bfK +aXP +bij +bjI +bkJ +bmt +bnQ +bqh +bsu +buA +bwE +byG +bmt +bCf +bmt +bGM +bIO +bmt +bMj +bnS +bPU +bqg +bPV +bmt +bVM +alt +bYt +bZP +cbj +cdg +cff +cbj +cir +ckl +cgO +cgO +cgO +crh +cgO +cuj +cvT +cgO +aaa +aaa +aae +aae +aaa +aaa +aaa +cGa +cGY +cHG +aaa +cGa +cGY +cHG +aaa +cGa +cGY +cHG +aae +aae +aac +aac +aac +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(66,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 +aae +aaa +aiJ +aja +ajq +aaa +aiJ +aja +ajq +aae +aiJ +aja +ajq +aaa +aaa +aae +aae +aaa +aaa +aaa +anR +auq +auq +auq +ayQ +aAl +aBH +aDf +aEs +aFK +aHc +aIH +aKk +aLP +aMR +aIx +aKb +aMR +aLP +aUj +aVX +aXP +aZv +bbr +bcN +bek +aZv +bhj +bij +bjI +bkJ +bmt +bnR +bqi +bsv +buB +bwF +bwD +bmt +bCd +bmt +bGN +bIP +bKr +bnS +bNX +bPV +bqg +bTv +bmt +bVM +alt +bYt +bZP +cbk +cdg +cfg +cbj +cis +ckm +amc +amc +cgO +crh +cgO +cuk +cvU +cgO +aaa +aaa +aaa +aae +aae +aaa +aaa +cGa +cGY +cHG +aaa +cGa +cGY +cHG +aae +cGa +cGY +cHG +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(67,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 +aac +aaa +aiJ +ajb +ajq +aaa +aiJ +ajb +ajq +aae +aiJ +ajb +ajq +aaa +aae +aae +aaa +aaa +aaa +aaa +anR +auq +aus +axu +ayR +aAl +aBD +aDg +aDg +aDg +aHd +aII +aKl +aDg +aBD +aOa +aPR +aBD +aBD +aUk +aVY +aXT +aZw +bbs +bcO +bel +bfL +bhk +bik +bjL +bkJ +bmt +bnS +bqg +bsw +bsw +bqg +bnS +bmt +bCg +bmt +bGO +bIQ +bmt +bMk +bNY +bPW +bqg +bnN +bmt +bVS +bjW +bYt +bZP +cbj +cdg +cfh +cbj +cis +ckn +amc +ame +cps +crh +csH +cdl +cvV +cgO +aaa +aaa +aae +aae +aae +aae +aaa +cGa +cGZ +cHG +aaa +cGa +cGZ +cHG +aae +cGa +cGZ +cHG +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(68,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 +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aaa +aiJ +aae +ajq +aaa +aiJ +aae +ajq +aaa +aiJ +afv +ajq +aae +aae +aaa +aaa +aaa +aaa +aaa +anR +auC +awa +axv +ayS +aAm +axl +aDg +aEt +aFL +aHe +aIJ +aKm +aDg +cRV +aOb +aPS +aRw +aBD +aUj +aVZ +aXU +aZx +aUy +bcP +bem +bfM +bhk +bil +bjI +bkJ +bmt +bnT +bqj +bsx +buC +bnS +byH +bmt +bCh +bmt +bmt +bmt +bmt +bmt +bmt +bmt +bRG +bmt +bmt +bVT +alt +bYt +bZQ +cbj +cdh +cfi +cbj +cis +ckn +ame +amc +cps +crh +csI +cul +cgO +cgO +cgO +cgO +cgO +aae +aaa +aae +aae +cGa +afv +cHG +aaa +cGa +aae +cHG +aaa +cGa +aae +cHG +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(69,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 +aac +aaa +aaa +aae +aae +aae +aae +aae +aae +aae +aae +afv +afv +afv +afv +afv +afv +afv +aae +aae +anR +auD +awb +axu +ayL +aAm +auq +aDg +aEu +aFM +aHf +aIJ +aKn +aLS +aMS +aOc +aPT +aRx +aLP +aUj +aWa +aXV +aZy +bbt +bbt +aKs +bfN +bhl +bim +bjM +bkP +bmt +bmt +bmt +bsy +bmt +bmt +bmt +bmt +bCi +bCi +bGP +bIR +bEs +bMl +bsB +bnX +bnX +bTw +bTE +bVM +alt +bYu +bTE +cbj +cbj +cfj +cbj +cis +ckm +amc +amc +cgO +cma +csJ +cdl +cdl +cdl +cdl +cvL +cgO +aaa +aaa +aaa +aae +aae +afv +aae +aae +aae +aae +aae +aae +aae +aae +aaa +aaa +aac +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(70,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 +aab +aaa +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aad +aac +aac +aaa +aaa +aaa +aaa +afv +aaa +aaa +anR +auE +awc +axu +ayL +aAm +aBI +aDg +aEv +aFN +aHg +aIK +aKo +aLS +aMU +aOd +aPU +aRy +aLP +aUm +aWb +aXW +aZz +bbu +bcQ +ben +bfO +bhm +bil +bjI +bkQ +bhg +bnU +bqk +bsz +bqk +bwG +bqk +bAz +bCj +bEq +bqk +bIS +bnX +bwJ +bNZ +bnW +bnX +bTw +bTE +bVM +alt +bYm +bTE +cbl +cdi +cfk +cgO +cis +ckm +clR +clR +clR +clR +crh +clS +clR +clR +clR +czK +cgO +aae +aae +aae +afv +afv +afv +aac +aac +cIX +cIX +cIX +cIX +cIX +aad +aac +aac +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(71,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +afv +anR +anR +anR +anR +auV +anR +ayL +aAm +auq +aDg +aEw +aFO +aHh +aIL +aKp +aLS +aMT +aOc +aPV +aRx +aLP +aUn +aWc +aXX +aZA +bbv +bcR +beo +bfP +bhn +bin +bjN +bkR +bmx +bnV +bql +bsA +buD +bwH +buD +bAA +bCk +bEr +bEr +bIT +bKs +bMm +bsC +bnX +bnX +bTx +bTE +bVM +alt +bYm +bTE +cbm +cdj +cfl +cgP +cit +cko +clS +cnz +cpt +clR +csK +clR +cvW +cxt +clR +cdl +cps +aaa +aaa +aaa +afv +aaa +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(72,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +afv +arh +ask +ath +auF +awd +axw +ayT +aAn +aBJ +aDg +aEx +aFP +aHi +aIM +aKq +aDg +aMV +aOf +cRW +aRz +aBD +aUj +aWd +aXY +aZB +bbw +bcS +bep +bfQ +bhk +bil +bjI +bkS +bhg +bnW +bnX +bsB +bsC +bwI +bsC +bsC +bCl +bnX +bnX +bwJ +bnX +bMn +bsB +bnX +bnX +bnX +bTE +bVM +bXn +bYv +bTE +cbm +cdk +cdx +cgQ +ciu +ckp +clR +cnA +cpu +cri +csL +cnA +cvX +cxu +clR +czH +cps +aaa +aaa +aaa +afv +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(73,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +anR +anR +ati +auG +awe +axx +ayU +aAo +aBK +aDg +aEy +aEy +aHd +aIN +aKl +aDg +aBD +aOg +aPR +aBD +aBD +aUo +aWe +aXT +aZC +bbx +aIQ +aIQ +bfR +bhk +bio +bjI +bkT +bhg +bnX +bqm +bsC +buE +bwJ +byI +bsB +bCl +bEs +bnX +bwJ +byI +bnX +bOa +bnX +bEs +bnX +bTE +bVU +bli +bYw +bTE +cbn +cdl +cfm +cgR +civ +ckq +clR +cnB +cpv +crj +csM +cum +cvY +clR +clS +cdl +cps +aaa +aaa +aaa +afv +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(74,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +ati +asn +auq +auq +arj +aAp +aBL +aDh +aEz +aEz +aHj +aIO +aKr +aLT +aMW +aOh +aPW +aRA +aSK +aUp +aWf +aXT +aXT +bby +bbz +bbz +bbz +bho +bip +bjO +bkU +bhg +bnY +bqn +bsC +buF +bwK +buF +bsC +bCm +bEt +bEt +bIU +afV +afV +bOb +afV +afV +afV +bUN +bVV +bXp +bYm +bTE +cbo +cdm +cfn +cgO +civ +ckr +clT +cnC +cpw +crk +csN +cun +cvZ +cxv +clR +cyD +cgO +aaa +aaa +aae +afv +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(75,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +ati +asn +auP +axy +ayV +aAq +aBM +aDi +aEA +aFQ +aHk +aIP +aKs +aLU +aMX +aOi +aPX +aRB +aLU +aUq +aWg +aIQ +aZD +bbz +bcT +beq +bfS +bby +bio +bjI +bkT +bmy +bmy +bmy +bmy +bmy +bwL +bwL +bwL +bCn +bwL +bwL +bIV +bKt +bKu +bKt +bKu +bKt +bKu +bKu +bVW +bos +bYx +bKu +bKu +bKt +bKt +bKu +civ +cks +clR +cnD +cpx +crl +csO +cuo +cwa +clR +clR +cdl +cps +aaa +aae +aae +afv +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(76,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +ati +asn +auP +axz +ayW +atl +aBN +aDj +atl +atl +aHl +aIQ +aKt +aLV +aHn +aOj +aPY +aHn +aLV +aUr +aWh +aXZ +aZE +bbA +bcU +ber +bfT +bby +biq +bjI +bkT +bmy +bnZ +bqo +bsD +buG +bwL +byJ +bAB +bCo +bEu +bwL +bIV +bKt +bMo +bOc +bPX +bOc +bTy +bUO +bVX +bXs +bYy +bZR +cbp +cdn +cfo +bKu +civ +cks +clS +cnE +cpy +crm +csL +cpu +cwb +cwb +clR +czL +cps +aae +aae +aaa +afv +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(77,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aab +ati +asn +awf +axA +ayX +aAr +aBO +aDk +aEB +atl +aHm +aHm +aHm +aHn +aMY +aOk +aPZ +aRC +aHn +aUs +aWi +aYa +aZF +bbB +bcV +bes +bfU +bby +bio +bjI +bkV +bmz +boa +bqp +bsE +buH +bmz +byK +bAC +bCo +bEv +bwL +bIV +bKu +bMp +bOd +bPY +bRH +bTz +bUP +bVY +bYJ +bYz +bZS +bTz +cdo +cfp +bKt +ciw +cks +clR +cnF +cpz +clR +csP +clR +cwc +cxw +clR +cdl +cps +aae +aae +aaa +afv +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(78,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +anR +anR +asl +atj +auH +auP +axB +ayY +atl +aBP +aDl +aEC +atl +aHn +aHn +aHn +aHv +aMZ +aOl +aQa +aRD +aHn +aUt +aVW +aIQ +aZG +bby +bby +bby +bby +bby +bio +bjI +bkT +bmA +bob +bob +bob +bob +bwM +byL +bAD +bCp +bEw +bwL +bIV +bKu +bMq +bOe +bPZ +bRI +bTA +bUQ +bVZ +bXq +bYA +bZT +cbp +cdp +cfq +bKu +cix +ckt +clR +clR +clR +clR +csQ +clR +clR +clR +clR +czK +cgO +aaa +aae +aaa +afv +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(79,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +anR +ari +asm +atk +auI +auP +axC +ayZ +atl +aBQ +aDm +aED +atl +aHo +aHo +aIR +aHn +aNa +aOm +aQa +aRE +aHn +aUu +aWj +aYb +aZH +aYc +bcW +bet +bfV +aYc +bir +bjJ +bkW +bmB +boc +bqq +bsF +buI +bmB +bsF +bsF +bCq +bEx +bwL +bIW +bKu +bMp +bOf +bQa +bRJ +bTB +bUR +bWa +bXh +bYB +bZU +cbq +cdq +cfr +bKu +ciy +cks +clU +cnG +cpA +crn +csR +cup +cwd +cxx +cnG +cdl +cgO +aaa +aae +aae +afv +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(80,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +anR +arj +asn +atl +atl +atl +atl +atl +atl +aBR +aDn +atl +atl +aHo +aIR +aHo +aHn +aNb +aOn +aQb +aRF +aHn +aUj +aWk +aYc +aYc +aYc +aYc +aYc +aYc +aYc +biq +bjI +bkT +bmy +bod +bqr +bsG +buJ +bwL +byM +bAE +bAE +bEy +bwL +bIV +bKt +bMr +bOg +bQb +bOg +bTC +bUO +bWb +bXm +bYA +bKu +cbr +cdr +cfs +bKt +ciz +cku +clV +cnH +cpB +cro +csS +cuq +cwe +crn +cwh +cdl +cgO +cgO +cgO +aaa +afv +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(81,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +anR +ark +asn +atl +auJ +awg +axD +aza +aAs +axE +aDo +aEE +atl +aHp +aIR +aHo +aHn +aNc +aOo +aQc +aRG +aSL +aUv +aWl +aYd +aZI +bbC +bcX +beu +bfW +aYc +bij +bjK +bkX +bmy +bmy +bmy +bmy +bmy +bwL +bwL +bwL +bwL +bwL +bwL +bIV +bKu +bKu +bKt +bKt +bKu +bKt +bKu +bWc +bXi +bYC +bKu +bKt +bKu +bKu +bKu +ciA +ckv +clW +cnI +cpC +crp +csT +cur +cwf +cxy +cyG +czM +cAO +cBQ +cCR +afv +afv +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(82,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +anR +arl +asn +atl +auK +awh +axE +azb +aAt +axE +aAz +awk +atl +aHq +aIS +aKu +aHn +aNd +aOp +aQd +aRH +aSM +aUw +aWm +aYe +aZJ +bbD +bcY +aZN +bfX +bhp +bim +bjM +bkY +bmC +boe +bqs +bqs +buK +bwN +byN +bAF +bAF +bAF +bGQ +bIX +bAF +bAF +bOh +bQc +bRK +bqk +bUS +bWd +bXr +bYD +bZV +cbs +cbs +cbs +cbs +ciB +ckw +clX +cnJ +cpD +crn +crn +cus +cwe +cxz +cnG +czN +cgO +cgO +cgO +aaa +afv +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(83,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +anR +arj +asn +atl +auL +awi +axE +awi +aAu +axE +aDp +aEF +atl +aHn +aIT +aHn +aHv +aHn +aOq +aQe +aHv +aHv +aUx +aWn +aYc +aZK +bbE +bcZ +bbE +bfY +aYc +bio +bjI +bkT +bmD +bmD +bmD +bsH +buL +bmD +bmD +bAG +bAG +bEz +bGR +bIY +bAG +bAG +bOi +bnX +bRL +bTD +bTE +bVM +bVb +bYE +bZW +bZW +bZW +cft +bZW +ciC +bZW +clY +cnK +cpE +crq +csU +cut +cwg +cxA +cnG +czO +cgO +aae +aae +aae +afv +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(84,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 +aaa +aaa +aaa +aaa +aaa +aaa +anR +anS +anR +anR +arm +asn +atl +auM +awj +axF +azc +aAv +aBS +aDq +aEG +atl +aHr +aIU +aKv +aLW +aNe +aOr +aQf +aRI +aHv +aUy +aWo +aYc +aZL +aZN +bcZ +aZN +bfZ +aYc +bis +bjI +bkT +bmD +bof +cRE +bsI +buM +bwO +bqt +bAG +bCr +bEA +bGS +bIZ +bKv +bAG +bOj +bQd +bRL +bnX +bTE +bVM +bVb +bYn +bZX +cbt +cds +cfu +cgS +ciD +bZW +clY +cnK +cnG +cnG +cnG +cnG +cwh +cnG +cnG +czP +cgO +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(85,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 +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +anR +aop +apo +aqf +arm +asn +atl +auN +awk +axG +azd +aAw +aBT +aDr +aEH +atl +aHs +aIV +aIW +aLX +aNf +aOs +aQg +aRJ +aHv +aUz +aWp +aYc +aZM +bbE +bcZ +bbE +bga +aYc +bit +bjI +bkZ +bmD +bog +cRE +cRE +buM +cRE +bqt +bAG +bCs +bEB +bGT +bJa +bKw +bAG +bOk +bsC +bRL +bTE +bTE +bVM +bVb +bYr +bZY +cbu +cdt +cdt +cgT +ciE +bZW +clZ +cnL +cpF +cpF +csV +cpF +cpF +cxB +cpF +czQ +cAP +cBR +cgO +cgO +cgO +cgO +cgO +cgO +cgO +cgO +cgO +cgO +amd +cRz +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(86,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 +aaa +aaa +aaa +aaa +aaa +aaa +anS +aoq +app +aqg +arm +asn +atl +auO +awl +axH +aze +aAx +aBU +aDs +aEI +atl +aHt +aIW +aIW +aIW +aNg +aOt +aQh +aRK +aHv +aQl +aWq +aYc +aZN +aZN +bcZ +aZN +aZN +aYc +big +bjI +bkT +bmD +cRC +bqu +bsJ +buN +bwP +cRJ +bAG +bAG +bEC +bGS +bJb +bKx +bAG +bOi +byI +bRL +bTE +bUT +bWe +bVb +bYF +bZX +cbv +cdu +cdu +cgU +ciF +bZW +cma +cnM +cpG +crr +csW +crr +crr +crr +crr +czR +crr +cBS +cCS +cdx +cdx +cGb +cdx +cdx +cdx +cdx +cdi +cgO +amd +amd +cRB +aae +aae +aae +aae +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(87,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 +aaa +aaa +aaa +aaa +aaa +aaa +anR +aor +apq +aqh +arn +aso +atl +auP +auP +auP +azf +aAy +auP +auP +auP +atl +aHs +aIX +aIW +aLY +aNh +aOu +aQa +aRL +aHv +aQx +aWr +aYc +aZO +bbE +bcZ +bbE +bgb +aYc +big +bjI +bkT +bmD +bmD +bqv +bsK +buO +bqv +bmD +bAG +bCt +bAG +bGS +bJc +bKy +bAG +bOl +bqk +bRM +bTE +bUU +bWe +bVb +bYm +bZX +cbw +cdv +cdu +cdu +ciG +bZW +cmb +cnN +civ +crs +cgO +cuu +cdl +cdl +cdl +cwl +cwl +cBT +cCT +cwl +cEU +cdl +cdl +cdl +cvL +cIY +cmf +cgO +amd +amd +amd +cRz +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(88,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 +aaa +aaa +aaa +aaa +aaa +aaa +anS +aos +apr +aqi +aro +asp +atl +auQ +awm +axI +azg +aAz +auP +aDt +aEJ +atl +aHu +aIY +aKw +aLZ +aNi +aOv +aQa +aRM +aHv +aQl +aWq +aYc +aZN +aZN +bcZ +aZN +aZN +aYc +big +bjI +bkT +bmD +boh +boj +bsL +buM +boj +byP +bAG +bAG +bAG +bGU +bIY +bAG +bAG +bOm +bQe +bRN +bTE +bUV +bWe +bVb +bYm +bZX +cbx +cdu +cfv +cdv +ciH +bZW +cgO +cnO +cpH +cgO +cgO +cgO +cgO +cgO +cyH +cwl +cAQ +cBU +cCU +cDR +cwl +cGc +cgO +cgO +cgO +cgO +cJF +cgO +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(89,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 +aaa +aaa +aaa +aaa +aaa +aaa +anR +aot +aps +aqj +arm +asn +atl +auR +awn +axJ +azh +aAw +aBV +aDr +aEK +atl +aHv +aHv +aHv +aHv +aHv +aOw +aQi +aHv +aHv +aQl +aWs +aYc +aYc +aYc +bda +aYc +aYc +aYc +big +bjI +bkT +bmD +boi +bqw +bsM +buP +bwQ +byQ +bAG +bCu +bED +bGV +bJd +bKz +bAG +bnX +bsC +bRO +bTE +bUW +bWe +bVb +bYn +bZX +cby +cdu +cdu +cgV +ciI +bZW +cmc +cnP +civ +cdl +cgO +amc +amc +cwl +cwl +cwl +cAR +cBV +cCV +cDS +cwl +cwl +cwl +amc +amc +cgO +cmf +cgO +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(90,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 +aaa +aaa +aaa +aaa +aaa +aaa +anR +anS +anR +anR +arm +asn +atl +auS +awo +axK +azi +aAA +aBW +aDv +aEL +atl +aHw +aIZ +aKx +aKx +aKx +aOx +aQj +aRN +aKx +aUA +aWt +aKx +aKx +aKx +bdb +aKx +aKx +bhq +biu +bjP +bkT +bmE +boj +bqx +bsN +buQ +bwR +boj +bAG +bCv +bEE +bGW +bJe +bKA +bAG +bnX +bsC +bRO +bTE +bTE +bVS +bXt +bYG +bZZ +cbz +cbz +cbz +cgW +ciJ +bZW +cmd +cnQ +civ +cdl +cgO +amc +cwi +cxC +cxC +cxC +cAS +cBW +cCW +cDT +cEV +cEV +cEV +cHH +amc +cgO +cJG +cgO +aae +cKR +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(91,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 +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +aae +aae +anR +arj +asn +atl +auT +awp +axI +azj +aAB +auP +aDw +aEM +atl +aHx +anR +aJb +aJb +aKC +aOy +aQk +aRO +aRO +aRO +aWu +aRP +aRP +aRP +aRP +aRP +aRP +aRP +bii +bjQ +blb +bmE +boj +bqx +bsO +buQ +bwR +byR +bAG +cRM +bEH +bGV +bED +bKB +bAG +bOn +bsC +bRP +bTF +bUX +bWf +bXu +bYq +bZX +cbA +cdw +cfw +cgX +ciK +bZW +cme +cnQ +civ +crt +cps +ame +cwj +cxD +cxD +cxD +cxD +cxD +cxD +cxD +cxD +cxD +cxD +cHI +ame +cps +cdl +cps +aaa +aae +aae +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(92,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 +aaa +aaa +aaa +aaa +aaa +aae +aaa +aaa +aaa +anR +arj +asn +atl +atl +atl +atl +azk +aAC +atl +atl +atl +atl +aHx +anR +ame +ame +aJb +aOz +aQl +aRP +aSN +aRP +aWv +aRP +aWv +aRP +aWv +aRP +aWv +aRP +big +bjR +blc +bmF +bok +bqy +bsP +buR +bwS +byS +bAH +bCw +bEF +bGX +bJf +bKC +bAG +bOo +bsC +bnX +bOi +bTE +bVM +bXv +bYH +bZW +bZW +bZW +bZW +bZW +ciL +bZW +cmf +cnR +cpI +cru +cps +ame +cwj +cxD +cxD +cxD +cxD +cxD +cxD +cxD +cxD +cxD +cxD +cHI +ame +cps +cdl +cps +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(93,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 +aaa +aaa +aaa +aaa +aaa +aae +aaa +aaa +aaa +anR +arj +asn +anR +auU +anR +amc +azl +ame +amc +anR +aEN +auV +aHx +anS +amc +amc +aNj +aOA +aQm +aRP +aSO +aRP +aWw +aRP +aZP +aRP +bdc +aRP +bgc +aRP +big +bjR +bld +bmG +bol +bqz +bsQ +buS +bwT +byT +bAI +bCx +bEG +bGY +bJg +bKD +bAG +bmH +bmH +bmH +bTG +bmH +bWg +alt +bYm +bTE +cbB +cdx +cdx +cdx +ciM +ckx +cmg +cnS +cpJ +crv +csX +ame +cwj +cxD +cxD +cxD +cxD +cxD +cxD +cxD +cxD +cxD +cxD +cHJ +ame +cps +cvL +cps +aab +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cRy +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(94,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 +aaa +aaa +aaa +aaa +aae +aae +aaa +aaa +aaa +anS +arp +asn +anR +auV +anR +anS +azm +anS +anS +anR +anR +anR +aHx +asl +aKy +aKy +aNk +aOB +aQn +aRO +aSP +aSP +aWx +aSP +aSP +aSP +bdd +aSP +aSP +aRO +biv +bjS +bDi +bmE +boj +bqA +bsR +buQ +bwR +byU +bAG +bCy +bEH +bGZ +bJh +cRS +bAG +bOp +bQf +bOp +bTH +bmH +bVM +alt +bYm +caa +caa +caa +caa +caa +caa +caa +caa +caa +caa +cks +csY +ame +cwj +cxD +cxD +cxD +cxD +cxD +cxD +cxD +cxD +cxD +cxD +cHI +ame +cps +cdl +cps +aaa +aae +aae +aae +aae +aae +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(95,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 +aaa +aaa +aaa +aaa +aae +aaa +aaa +aaa +aaa +anR +arq +asq +atm +atm +atm +atm +azn +atm +atm +atm +atm +atm +aHy +aJa +ame +ame +aJb +aOz +aQo +aRQ +aSQ +aUB +aWy +aUB +aZQ +aUB +bde +aUB +aSQ +bhr +biw +bjR +bkT +bmE +boj +bqA +bsR +buQ +bwR +byV +bAG +cRN +bEH +bHa +bJh +bKE +bAG +bop +bCF +bop +bTH +bmH +bVS +bjW +bYm +caa +cbC +cdy +caa +cgY +cdy +caa +cbC +cdy +caa +cks +csY +ame +cwj +cxD +cxD +cxD +cxD +cxD +cxD +cxD +cxD +cxD +cxD +cHI +ame +cps +cdl +cps +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(96,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 +aaa +aaa +aaa +aaa +aae +aaa +aaa +aab +aaa +anR +arr +asr +atn +aqi +aqi +aqi +azo +aqi +aqi +aqi +aqi +aFR +aHz +anR +aJb +aJb +aJb +aOz +aQp +aRP +aRP +aRP +aRP +aRP +aRP +aRP +aRP +aRP +aRP +aRP +bix +bjT +ble +bmD +bom +bqB +bsS +buT +bwU +byW +bAG +bCA +bEI +bHb +bJj +bKG +bMs +bOq +bOq +bOq +bTI +bmH +bVM +alt +bYm +caa +cbD +cdz +caa +cgZ +cdz +caa +cmh +cdz +caa +cks +csZ +amc +cwk +cxC +cxC +cxC +cAS +cBX +cCX +cDT +cEV +cEV +cEV +cHK +amc +cgO +cJH +cgO +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(97,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 +aaa +aaa +aaa +aae +aae +aaa +aaa +aaa +aaa +anR +anR +anR +anS +anS +anS +anS +azp +anS +anS +anS +anS +anS +anR +aJb +aKz +aKF +aJb +aOz +aQp +aRR +aRR +aRR +aRR +aYf +aZR +aZR +bdf +bev +aZR +aRV +biy +bjU +bkU +bmD +bon +bqC +boj +buU +boj +byP +bAG +bCB +bEJ +bGV +bED +bED +bAG +bOr +bQg +bRQ +bTJ +bmH +bVU +cmr +bYw +caa +cbE +cdA +caa +cha +cdA +caa +cmi +cdA +caa +cks +csZ +cgO +cwl +cwl +cyI +cxF +cxF +cBY +cCY +cxF +cEW +cwl +cwl +amc +amc +cgO +cdl +cgO +aaa +aae +aaa +aaa +aaa +aaa +aaa +aae +aae +aae +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(98,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 +aaa +aaa +aaa +aae +aaa +aaa +aaa +aaa +aaa +aae +aae +aae +aaa +aaa +aaa +aaa +azq +aaa +aae +aae +aae +aaa +aaa +aJb +aKA +aKF +aNl +aOz +aQp +aRS +aRS +aRS +aRS +aYf +aYl +aYl +aYl +aYl +aYl +aRV +big +bjR +blf +bmD +bmD +bqD +bmE +buV +bmE +bmD +bAG +bAG +bEK +bHc +bJk +bJk +bAG +bor +bsV +bqF +bor +bmH +bWh +alt +bYm +caa +cbF +cdB +caa +cbF +ciN +caa +cbF +cnT +caa +cks +cta +cuv +cwm +cxE +cyJ +czS +czS +cBZ +cCZ +czS +cEX +cGd +cwl +cpP +cpP +cpP +cJI +cpP +cpP +cpP +cpP +cpP +cpP +cpP +cpP +cpP +cpP +cpP +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(99,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 +aaa +aaa +aaa +aae +aaa +aaa +aaa +aaa +aaa +aae +aae +aae +aaa +aaa +aaa +aaa +azq +aae +aae +amd +aae +aae +aaa +aJb +aKB +aMa +aJb +aOC +aQq +aRT +aSR +aSR +aSR +aYg +aZS +bbF +bdg +aYl +bgd +aRV +biz +bjR +blg +bmI +bCC +bqE +bsT +buW +bor +cRK +bAJ +bCC +bqF +bsV +bor +bor +bor +bor +bsV +bqF +bor +bmI +bWi +alt +bYI +caa +cbG +cdC +cfx +chb +cdC +cky +cmj +cnU +caa +crw +caa +cuw +caa +cxF +cyK +czT +cAT +cAT +cDa +cDU +cEY +cGe +cwl +cHL +cdO +cdO +cdO +cdO +cdO +cdO +cdO +chl +cMd +cdO +cyQ +cLC +cwt +cpP +aae +aae +aae +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(100,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 +aaa +aaa +aae +aae +aae +aae +aae +aaa +aae +aae +aae +aae +aae +aaa +apn +axL +azr +amd +aBX +amd +aaa +aae +aae +aJb +aKC +aJb +aJb +aOz +aQr +aRU +aRU +aUC +aRU +aYh +aZT +bbG +bdh +aRU +aRU +bhs +biA +bjQ +bkW +bmJ +boq +bqG +cRF +buY +cRF +cRF +bAK +cRF +bqG +bHd +bAK +cRF +cRF +cRF +bHd +bqG +boq +bmJ +bVO +arH +bYG +cab +cbH +cdD +cfy +chc +ciO +ckz +cbH +cdD +cpK +crx +ctb +cux +cwn +cxG +cyL +czU +cAU +cAU +cDb +cDV +cEY +cxF +cwl +cdO +cpP +cpP +cJJ +cyQ +cdO +ckC +cdO +cdO +cMe +cdO +cpP +cMV +chl +cpP +aaa +aaa +aaa +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(101,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 +aaa +aaa +aae +aaa +aae +aae +aaa +aae +aae +aaa +aaa +aaa +aae +aae +aaa +aae +aae +aaa +amd +aDx +amd +aae +aae +aJb +aKD +aMb +aJb +aOz +aQp +aRV +aRV +aRV +aRV +aYi +aZU +bbH +bdi +bew +aYk +bht +biB +bjV +blh +bmI +bor +bqF +bwZ +buZ +bvc +cRL +bwX +bwZ +bEN +cRQ +bwX +bwZ +cRL +bwX +cRU +bqF +bor +bmI +bWe +alt +bYt +cac +cbI +cdE +cfz +chd +ciP +ckA +cbI +cdC +cpL +cry +ctc +cuy +cwo +cxF +cyK +czU +cAU +cCa +cDb +cDV +cEY +cGf +cwl +cHM +cIm +cpP +cdO +cDi +cDi +cKS +cDi +cKm +cDi +cdO +cpP +cpP +cNe +cpP +cpP +cpP +cpP +cpP +czg +czg +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(102,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 +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaa +aaa +aae +aae +aae +aaa +aaa +aaa +aaa +aaa +aae +aae +aae +aaa +aaa +amd +aaa +aaa +aab +aaa +aJb +aKE +aKF +aKC +aOz +aQs +aRV +aSS +aUD +aWz +aYj +aZV +bbI +bdj +bex +bge +bhu +biC +bjS +bkY +bmK +bxa +bqH +bsU +bva +cRH +bsU +cRH +cRH +bEO +bHe +cRH +cRH +cRH +cRT +bHe +bqH +bTK +bUY +bWj +bXx +bYK +cad +cbJ +cdF +cfA +che +ciQ +cfA +cbJ +cdF +cpM +crz +ctd +cuz +cwp +cxH +cyM +czV +cAV +cCb +cDc +cDV +cEY +cxF +cwl +cHN +cIn +cIn +cdO +cDi +cdO +cdO +cKw +cdO +cDi +cdO +cdO +cdO +cdO +cdO +cdO +cdO +cdO +cdO +cNT +czg +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(103,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 +aaa +aae +aae +aaa +aaa +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaa +aaa +aaa +aae +aaa +aaa +aaa +aaa +aJb +aKC +aJb +aJb +aOD +aQt +aRV +aSS +aUD +aWA +aYk +aZW +bbJ +bdk +bey +bgf +aRV +bix +bjX +blj +bmI +bor +bqF +bsV +bor +bor +bsV +bor +bor +bqF +bsV +bor +bor +bor +bor +bsV +bqF +bTH +bmI +bWk +aIC +bYL +caa +cbK +cdC +cfB +chf +cdC +ckB +cmk +cdC +caa +crA +cte +cuA +cte +cxI +cyN +czW +cAW +cCc +cAW +cDW +cEY +cxF +cwl +cHN +cpP +cFf +cdO +cDi +cdO +cKT +cLy +cLP +cDi +cyQ +cGk +cpP +cdO +cNo +cpP +cyQ +cpP +cpP +czg +czg +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(104,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 +aaa +aae +aaa +aaa +aae +aae +akE +akE +amr +akE +akE +akE +akE +akE +amr +akE +akE +akE +akE +akE +amr +akE +akE +aJb +aKF +aMc +aJb +aOz +aQu +aRV +aSS +aUE +aWB +aYl +aYl +aYl +aYl +aYl +aYl +aRV +cSd +bjR +blf +bmL +bot +bqF +bsV +bvb +bor +bsV +bor +bor +bEP +bsV +bor +bor +bor +bor +bsV +bqF +bTH +bmL +bVM +alt +cSl +caa +cbF +cdG +caa +cbF +ciR +caa +cbF +cnW +caa +crB +ctf +cuB +cwq +cxJ +cyO +czX +cAX +cCd +cDd +czX +cEZ +cGg +cHa +cHO +cIo +cyQ +cdO +cDi +cKw +cKU +cKT +cKw +cGk +cLH +cdO +cpP +cNf +cpP +cNy +cNG +cpP +aaa +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(105,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 +aaa +aae +aaa +aae +akE +akE +aky +aky +aky +aky +aky +aky +aky +aky +aky +aky +aky +aky +aky +aky +aky +aky +aky +alN +aKG +aMd +aJb +aOz +aQv +aRV +aRV +aRV +aRV +aYm +aZX +bbK +bdl +bez +bgg +aRV +cSc +bjR +bkT +bmH +bor +bqF +cRG +bvc +cRI +bsV +bor +cRO +cRP +cRR +bor +bor +bMt +bor +bsV +bqF +bTL +bmH +bVM +alt +aee +caa +cbL +cdH +caa +chg +cdH +caa +cml +cdA +caa +crC +ctg +cuC +cte +cwl +cyP +czY +cAY +cCe +cDe +cDX +cFa +cwl +cwl +cHP +cpP +cIZ +cdO +cDi +cdO +cdO +cdO +cdO +cGk +cws +cfG +cpP +cNg +cpP +cNz +cNH +cpP +aaa +aaa +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(106,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 +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +akE +akE +aky +aky +aky +amZ +amZ +amZ +ars +aky +amZ +amZ +awq +amZ +amZ +aky +aBY +amZ +amZ +amZ +aky +aky +aky +aMe +aJb +aOz +aQw +aRW +aRW +aRW +aRW +aRW +aRW +aRW +aRW +aRW +aRW +aRW +big +bjR +blk +bmH +bou +bqF +bsV +bvd +bor +bsV +bor +bCE +bEQ +bsV +bor +bKH +bmH +bOs +bQi +bRR +bTM +bmH +bVM +alt +bYm +caa +cbM +cdI +caa +chh +cdI +caa +cmm +cnX +caa +crB +cth +cuD +cte +cwl +cwl +cwl +cwl +cwl +cwl +cwl +cwl +cwl +cdO +cHP +cIn +cJa +cdO +cDi +cGk +cKV +cpP +cpP +cDi +cpP +cpP +cpP +cNf +cpP +cpP +cpP +cpP +aae +aaa +aae +aae +aae +aaa +aaa +aaa +aaa +aab +aaa +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(107,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 +aae +akE +aky +aky +aky +aky +alN +alN +aqk +atq +atq +atq +aFT +aFT +aFT +aFT +aFT +atq +atq +atq +bui +alN +alN +aky +aky +aky +aky +aOz +aQl +aRW +aST +aST +aWC +aYn +aZY +bbL +bdm +aST +aST +aRW +big +bjR +bkT +bmM +bov +bqI +bsW +bve +bor +bsV +bor +bor +bqE +bHg +bop +bor +bMu +bOs +bQi +bRR +bTN +bmH +bVM +alt +bYm +caa +cbN +cdJ +caa +cbN +cdJ +caa +cmn +cdy +caa +crD +cte +cuA +cte +cxK +cdO +cdO +cdO +cCf +cdO +cDY +cFb +cGh +cGh +cHQ +cpP +cpP +cdO +cDi +cdO +cdO +coa +cob +czg +aaa +aaa +aae +afv +aae +aaa +aae +aae +aaa +aaa +aae +aae +aae +aae +aaa +aaa +aaa +aaa +aae +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(108,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 +aae +akE +aky +aky +aky +aou +ana +apt +amc +ame +ame +ame +ame +amc +ame +amc +ame +ame +ame +ame +amc +byt +ana +cQN +aky +aky +aky +aOz +aQx +aRW +aSU +aUF +aST +aWC +aZZ +bbM +aST +beA +bgh +aRW +biD +bjR +bkT +bmM +bow +bqJ +bsX +bvf +bwY +bza +bor +bop +bER +bHh +bJm +bKI +bmH +bOt +bQi +bRR +bTO +bmH +bVM +alt +bYm +caa +caa +caa +caa +caa +caa +caa +caa +caa +caa +crE +cti +cuE +cwr +cwr +cwr +czZ +cwr +cwr +cwr +cDZ +cFc +cpP +cpP +cpP +cyQ +cpP +cJK +cKm +cdO +cdO +cdO +cdO +czg +aae +aae +aae +afv +aae +aab +aaa +aae +aaa +aaa +aae +aaa +aaa +aae +aae +aaa +aaa +aaa +aae +aaa +aae +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(109,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 +aae +aae +akE +alg +aky +amk +ana +anT +ame +arf +ame +amc +ame +atp +amc +azt +amc +ame +ame +amc +aKK +ame +ame +aHA +ana +cQY +aky +alg +aOE +aQy +aRW +aSV +aUG +aST +aYo +baa +bbN +aST +beB +bgi +aRW +biE +bjY +bll +bmM +box +bqK +bsX +bvf +bwZ +bzb +bor +bop +bER +bHi +bJn +bJn +bmH +bOu +bQj +bRR +bTP +bmH +bVS +bjW +bYn +cae +cbO +cdK +cfC +chi +ciS +ckC +cmo +cnY +cpN +crF +ctk +cpP +cpP +cpP +cpP +cpP +cpP +cpP +cyQ +cEa +cFd +cGi +cwr +cwr +cIp +cJb +cJL +cKn +cdO +cdO +cdO +cdO +czg +aaa +aaa +aae +afv +aae +aaa +aaa +aae +aaa +aaa +aae +aaa +aaa +aaa +aae +aae +aaa +aaa +aae +aaa +aae +aaa +aae +aae +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(110,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 +aae +aae +aaa +akE +aky +aky +aml +anT +ame +ame +ame +amc +azt +amc +azu +amc +amc +amc +azu +amc +azt +amc +ame +ame +ame +aHA +cQZ +aky +aky +aOF +aQz +aRW +aST +aUH +aWD +aYp +bab +bbO +bdn +aUH +aST +aRW +big +bjR +bkT +bmM +boy +bqK +bsX +bvf +bwY +bza +bor +bop +bER +bHj +bJn +bKJ +bmH +bOv +bQk +bRS +bTQ +bmH +bVS +bXy +bYM +caf +cbP +cdL +cfD +cfD +ciT +ckD +cmp +ckD +cpO +crG +ccg +cRA +ccg +ccg +ccg +ccg +ccg +cCg +cDf +cEb +cFe +cGj +cCz +cCz +cIq +cBv +cJM +cKn +cdO +cdO +cLz +cdO +czg +aae +aae +aae +afv +afv +afv +afv +afv +afv +afv +afv +aae +aaa +aaa +aaa +aae +aae +aaa +aae +aaa +aae +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(111,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 +aae +aae +aaa +aaa +akE +aky +aky +amm +amZ +amc +ame +ame +ame +amc +aJd +cRp +aFU +aFU +aFU +cRp +cRr +amc +ame +ame +ame +amc +amZ +amm +aky +aky +aOG +aQz +aRW +aSW +aUI +aWE +aYq +bac +bbP +aUH +beC +bgj +aRW +biF +bjR +bkT +bmM +boz +bqK +bsX +bvf +bwY +bza +bor +bCF +bES +bHi +bJn +bKK +bmI +bOw +bQl +bRT +bTR +bmH +bVM +alt +bYN +cag +cbQ +cdM +cfE +chj +cag +ckE +cmq +cnZ +cnZ +crH +cpP +cpP +cws +cpP +cyQ +cpP +cpP +cpP +cDg +cEc +cpP +cpP +cpP +cpP +cpP +cEc +cJN +cDi +cKx +cKW +cLA +cLQ +cpP +cMv +cpP +cpP +cpP +cpP +cpP +cpP +cpP +cpP +cpP +cpP +cpP +cpP +cpP +cpP +cpP +cpP +cpP +cpP +cpP +cpP +cpP +cpP +cpP +aae +aae +aae +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(112,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 +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +aaa +aaa +aaa +akE +aky +aky +amn +ana +ana +apu +ame +ame +amc +aDz +art +amc +aov +amc +art +aDz +amc +ame +ame +bNL +ana +cQO +cRa +aky +aky +aOH +aQz +aRW +aST +aUH +aWF +aYr +bad +bbQ +bdo +aUH +aST +aRW +big +bjR +bkT +bmM +boA +bqL +bsY +bvf +bwZ +bza +bor +bop +bER +bHi +bJn +bJn +bMv +bOx +bQm +bRU +bTS +bmH +bVM +alt +bYO +cae +cbR +cdN +cfF +chk +cae +cdO +cKN +cdO +cpP +crI +cpP +cuF +cdO +cxL +cpP +cAa +cAZ +cCh +cDh +cEd +cdO +cGk +cHb +cpP +cHb +cJc +cJO +cDi +cpP +cpP +cyQ +cDi +cpP +cDi +cMJ +cMW +cNh +cNp +cNp +cNp +cNp +cNp +cNU +cNp +cNp +cNp +cON +cNp +cNp +cPA +cNp +cNp +cPR +cNp +cQa +cQb +cpP +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(113,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 +aae +aae +aaa +aaa +aaa +aaa +aae +akE +aky +aky +anc +amZ +amc +amc +amc +azs +azx +amc +auX +ava +axM +amc +aJj +aKJ +amc +amc +amc +amZ +amo +aky +aky +aNm +aOI +aQz +aRW +aSX +aUJ +aST +aYs +bae +bbR +aST +beD +bgk +aRW +big +bjR +bkT +bmM +cRD +bqK +bsZ +bvg +bxa +buW +bAL +bCG +bER +bHk +bJn +bKL +bmI +bOy +bQn +bRU +bTT +bmH +bWl +alt +bYP +cae +cae +cae +cae +cae +cae +cdO +cKN +cdO +cpP +crJ +cpP +cdO +cwt +cxM +cpP +cqd +cBa +cwr +czf +ctj +cFf +cpP +cHc +cpP +cIr +cEc +cJO +cDi +cKy +cdO +cKw +cDi +cMf +cDi +cMK +cMX +cyQ +cpP +cpP +cpP +cpP +cpP +cpP +czg +czg +czg +czg +czg +cpP +cpP +cpP +cPM +cPS +cHb +cyQ +cQc +cpP +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(114,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 +aae +aae +aaa +aaa +aaa +aaa +aaa +aae +akE +alg +aky +amm +amZ +aov +aov +aov +aov +aDz +aov +auY +aJe +atr +aov +aKI +aFU +aFU +aFU +aFU +cyF +amm +aky +aky +aNn +aOJ +aQz +aRW +aSY +aUK +aST +aWG +baf +bbS +aST +beE +bgl +aRW +big +bjR +blm +bmM +bmM +bqM +bta +bmM +bmH +bzc +bmH +bmH +bET +bHl +bJo +bmH +bmH +bOw +bQo +bRV +bOw +bmH +bVM +bXz +bYQ +cah +cbS +cbS +cbS +cbS +cbS +cbS +cms +coa +cpP +cdO +cdO +cdO +cdO +cxN +cpP +cqd +cBb +cCi +cpP +cEe +cdO +cpP +cpP +cpP +cpP +cJd +cJO +cDi +cKz +cdO +cLB +cDi +cMg +cDi +cML +cMY +cpP +cNq +amc +amc +ame +amc +cBx +amc +amd +aGF +amd +amc +ame +amc +cpP +cPN +cPN +cPN +cpP +cQd +cpP +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(115,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 +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aae +akE +aky +aky +and +amZ +amc +amc +awv +azs +aEP +amc +auZ +auW +axN +amc +aKH +aKJ +amc +amc +amc +amZ +aXr +aky +aky +aNo +aOH +aQz +aRW +aST +aST +aWG +aSZ +bag +aSZ +bbS +aST +aST +aRW +biy +bjU +bkU +bmM +boB +bqK +btb +bmM +bxb +bzd +bmH +bCH +bEU +bHi +bJp +bmH +bMw +bmH +bmH +bmH +bTU +bmH +bVU +bXo +bYw +bTE +cbT +cdO +cfG +chl +cdO +cdO +cdO +cob +cpQ +cpQ +cpQ +cpQ +cpQ +cpQ +cpQ +cAb +cBc +cCj +cDi +cDi +cDi +cDi +cHd +cpP +cIs +cJe +cJP +czf +cKA +cKX +cpP +cDi +cDi +cDi +cyQ +cpP +cpP +cpP +cpP +cpP +cpP +cpP +cpP +cpP +czg +czg +czg +cpP +cpP +cpP +cpP +cpP +cpP +cyQ +cpP +cQe +cpP +cpP +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(116,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 +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +akE +aky +aky +amp +ana +ana +apu +ame +ame +amc +aDz +art +amc +aov +amc +art +aDz +amc +ame +ame +bNL +ana +bhE +czD +aky +aky +aOH +aQz +aRW +aSZ +aSZ +aSZ +aSZ +bah +bbT +bdp +bdp +bgm +aRW +biG +bjR +bkT +bmM +boC +bqN +btc +bmM +boK +bze +bmH +bCI +bEV +bHm +bJq +bmH +bmH +bmH +bQp +boK +boK +bTE +bWg +bXi +bYR +bTE +cbU +cbU +cbU +cbU +cbU +ckF +cbU +cbU +cpQ +crK +ctl +cuG +cwu +cxO +cpQ +cAc +cBd +cCj +cDj +cEf +cyQ +cGl +cHe +cpP +cHb +cGk +cJQ +cCz +cKB +cKY +cdO +cfG +cpP +cMw +cdO +cdO +cdO +cdO +cdO +cdO +cdO +chl +cdO +cfG +cLD +cdO +cdO +cdO +cHb +cwt +cdO +cdO +cdO +cdO +cPM +cHN +cdO +cpP +aae +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(117,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 +aab +aaa +aaa +aaa +aaa +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +akE +aky +aky +amm +amZ +amc +ame +ame +ame +amc +aJi +cRq +aFU +aFU +aFU +cRq +cRs +amc +ame +ame +ame +amc +bhD +bYi +aky +aky +aOK +aQA +aRX +aTa +aUL +aWH +aSZ +bai +aSZ +bdq +beF +bgn +aRX +biG +bjR +bln +bmM +boD +bqJ +btd +bmM +bxc +bze +bmH +bCJ +bEW +bHi +bJr +bmH +bMx +boK +boK +boK +boK +bTE +bVM +bXi +bYS +cai +cbU +cdP +cfH +chm +ciU +ckG +cmt +coc +cpQ +crL +ctm +cuH +cwv +cxP +cyR +cAd +cBe +cCk +cCk +cCk +cCk +cCk +cCk +cCj +cCj +cCj +cJR +cCj +cKC +cKZ +ckD +ckD +cMh +ckD +ckD +ckD +ckD +ckD +ckD +cNI +ckD +ckD +ckD +ckD +ckD +cOs +cOO +cOO +cOO +cOO +cOO +cOO +cOO +cOO +cOO +cQf +cdO +czg +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(118,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 +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +akE +aky +aky +ane +anT +ame +ame +ame +amc +azt +amc +aFS +amc +amc +amc +aFS +amc +azt +amc +ame +ame +ame +bhF +bYi +aky +aky +aOD +aQB +aRX +aTb +aUM +aWI +aYt +baj +bbU +bdr +beG +beG +bhv +biH +bjZ +bkT +bmM +cSm +bqO +bte +bmM +bxd +bze +bmH +bCK +bEV +bHn +bJs +bmH +bMy +bOz +bQq +boK +bTV +bTE +bVM +bXi +bYm +caj +cbU +cdQ +cfI +cfI +ciV +ckH +cmu +cod +cpQ +crM +ctn +cuI +cww +cxQ +cyS +cAe +cBf +cCl +cDk +cEg +cFg +cGm +cGm +cxU +cIt +cJf +cJh +cCj +cKC +cqd +cHb +cLR +cLR +cLR +cLR +cLR +cLR +cLR +cLR +cLR +cLR +cLR +cLR +cLR +cLR +cOt +cLR +cLR +cLR +cLR +cLR +cLR +czg +czg +cpP +cQg +ckC +czg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(119,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 +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +akE +alg +aky +anb +ana +anT +ame +ame +ame +amc +ass +ame +amc +azt +amc +ame +ame +amc +ame +ame +ame +cGL +bhD +cqH +aky +alg +aOz +aQl +aRX +aTc +aUN +aWJ +aYu +bak +bbV +bds +beH +bgo +bhw +biI +bjS +bkX +bmM +boE +bqP +btf +bmM +boK +bze +bmH +bmH +bEX +bHo +bmH +bmH +boO +boO +bQr +boO +bTW +bTE +bVM +bXi +bYm +caj +cbV +cdR +cfJ +chn +ciW +ckI +cmv +coe +cpR +cpR +cpR +cuJ +cpR +cpQ +cpQ +cAf +cBg +cCl +cDl +cEh +cFh +cGn +cGn +cxU +cIu +cJg +cJS +cCj +cKD +cqd +cLC +cLR +cMi +cMx +cMr +cMZ +cMi +cMx +cMr +cMZ +cMi +cMx +cMr +cMZ +cOc +cOu +cOP +cPf +cPs +cPB +cPB +cPO +amc +amc +czg +cQg +cQl +czg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(120,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 +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aae +afM +afM +afM +afM +afM +afM +afM +afM +afM +afM +afM +afM +aae +afM +afM +afM +aac +aad +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aae +akE +aky +aky +aky +aow +amZ +aqe +amc +ame +ame +ame +ame +amc +ame +amc +ame +ame +ame +ame +amc +bNM +bVA +bXb +aky +aky +aky +aOz +aQl +aRX +aRX +aRX +aRX +aRX +aRX +aRX +aRX +aRX +aRX +aRX +biG +bjR +bkT +bmM +bmM +bqQ +bmM +bmM +boK +bzf +boN +boN +bEY +bHp +boN +bKM +boK +bOA +bQs +bRW +boK +bTE +bVM +bXi +bYm +caj +cbW +cdS +cfK +cho +ciW +ckJ +cmw +cof +cpS +crN +cto +cuK +cwx +cxR +cxU +cAg +cBe +cCl +cDm +cEi +cFi +cGo +cGo +cxU +cIv +cJh +cJT +cCj +cKC +cqd +coa +cLR +cMj +cMy +cMr +cMZ +cMj +cNr +cMr +cMZ +cMj +cMy +cMr +cMZ +cOc +cOv +cOQ +cPg +cPt +cPB +cPB +cPO +cBx +ame +czg +cQg +cNT +czg +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(121,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 +aad +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +aae +aaa +aaa +aaa +aae +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +aac +aaa +aaa +aaa +aaa +aae +aae +aae +aae +aae +aae +aae +aae +aae +aae +aae +aae +aae +aae +aae +aae +aae +aae +aae +aae +aae +aae +aae +aae +aae +aae +aae +akE +aky +alN +aky +ang +aky +aky +apv +apv +apv +apv +apv +apv +apv +apv +apv +apv +apv +apv +apv +aky +aky +cQR +aky +aky +aNp +aOL +aQC +aRY +aRY +aRY +aWK +aYv +aYv +aYv +aYv +aYv +aYv +aRQ +biJ +bka +blo +bmN +boF +bqR +btg +btg +btg +bzg +btg +btg +bEZ +boF +boF +bKN +boF +bOB +bQt +bRX +boF +bmN +bWm +bXA +bYm +caj +cbV +cdT +cfL +chp +ciW +ckK +cmx +cog +cpS +crO +ctp +cuL +cwx +cxS +cxU +cAg +cBe +cCl +cDn +cEj +cFj +cGo +cGo +cxU +cIw +cJi +cJU +cCj +cKC +cLa +cob +cLR +cMj +cMr +cMr +cMZ +cMj +cMr +cMr +cMZ +cMj +cMr +cMr +cMZ +cOd +cOw +cOR +cPh +cLR +cLR +cLR +cLR +cLR +cLR +cLR +cQg +cNT +czg +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(122,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 +aac +aae +aaj +aak +aak +aak +aak +aak +aak +aak +aak +aaj +aaj +aaj +aak +aak +aak +aak +aaj +aak +aak +aak +aak +aak +aak +aak +aak +aaj +aae +aac +aaa +aaa +aaa +aeZ +agf +ago +agu +ago +ago +ago +agu +ago +ago +ago +agu +ago +ago +ago +agu +ago +ago +ago +agu +ago +ago +ago +agu +ago +ago +akd +aks +aae +aae +alN +amq +anf +aky +aox +apw +apw +apw +apv +att +avb +avb +avb +azv +apv +apw +apw +apw +aFV +aky +cQT +aKL +aky +aNq +aOz +aQl +aRZ +aKF +aUO +aWL +aYw +aYw +aYw +aYw +aYw +aYw +aYw +biG +bjX +bkX +bmO +bmO +bmO +bmO +bmO +bmO +bmO +bmO +bmO +bmO +bmO +boK +bze +bMz +bMz +bMz +bMz +bMz +bTE +bVM +bXi +bYR +cak +cbU +cdU +cfM +chq +ciW +ckL +cmy +coh +cpS +crP +ctq +cuM +cwx +cxT +cxU +cAg +cBe +cCl +cDl +cEk +cFk +cGp +cHf +cxU +cIx +cJj +cJV +cCj +cKC +cqd +cLD +cLR +cMk +cMz +cMM +cMZ +cNi +cNs +cNA +cMZ +cNM +cNR +cNV +cMZ +cOe +cOx +cOR +cPi +cPu +cPC +cLR +cMr +cPT +cMr +cLR +cQg +cQm +czg +aaa +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(123,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 +aac +aaa +aak +aaq +aaB +aaI +aaI +aaI +aaI +aaI +aaI +aaI +abs +aaI +aaI +aaI +aaI +aaI +acn +acD +aaI +aaI +aaI +aaI +adz +adK +adP +aak +aaa +aac +aaa +aaa +aeZ +aft +afu +afN +agv +agG +agG +agG +agG +agG +agG +agG +agG +agG +agG +agG +agG +agG +agG +agG +agG +agG +agG +agG +ajr +ajz +aae +ake +akt +aae +aaa +aky +amr +ang +aky +aoy +apx +aql +aru +aky +atu +avc +awr +axO +azw +aky +apx +aql +aru +aoy +aky +bYh +alg +alN +aky +aOM +axS +aky +aky +aky +aky +aYx +bal +bbW +bdt +beI +bgp +bhx +biJ +bjQ +blp +bmP +boG +bqS +bth +bvh +bxe +bzh +bAM +bCL +bFa +bmO +boK +bKO +bMz +bOC +bQu +bRY +bMz +bUZ +bVM +bXl +bYT +cal +cbU +cbU +cbU +cbU +ciX +ckM +cmz +coi +cpS +crQ +ctr +cuN +cuN +cxU +cxU +cAh +cBh +cCl +cCl +cEl +cFl +cCl +cCl +cxU +cIy +cJk +cJW +cCj +cKE +cLb +cDi +cLR +cMl +cMA +cMN +cNa +cMl +cMA +cNB +cNa +cMl +cMA +cNW +cMZ +cOf +cOy +cOS +cPj +cPv +cPD +cPJ +cMr +cPU +cMr +cLR +cQg +cdO +czg +aaa +aaa +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(124,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 +aac +aaa +aak +aar +aaj +aak +aak +aak +aak +aak +aak +abl +abt +abl +aak +aak +aak +aak +aaj +aak +aak +aak +aak +aak +adA +aaj +aar +aak +aaa +aac +aaa +aeZ +aft +afu +afN +agb +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ahj +ahj +ahj +ahk +ahk +ahk +ahk +ahk +ahj +ahj +ahj +aaa +aaa +ajA +aae +akf +aku +aky +aky +aky +ams +anh +anU +aoz +aoz +aqm +aoz +aky +atv +aJc +aws +atw +aJh +aky +aBZ +aDy +aEO +aFW +aHB +cQV +aKM +aMf +apy +aON +aQD +aSa +aTd +aUP +aWM +aYy +bam +bbX +bdu +beJ +bgq +bhy +biG +bjR +blq +bmO +bmO +bqT +bti +bvi +bxf +bzi +bzj +bzk +bFb +bmO +bJt +bze +bMz +bOD +bQv +bRZ +bTX +bVa +bVO +bXj +bYU +cam +cbX +cdV +cfN +cam +ciY +ckN +cmA +coj +cpT +crR +cts +cuO +cwy +cxV +cyT +cAi +cBi +cCm +cDo +cEm +cFm +cGq +cHg +cHR +cIz +cJl +cJX +cCj +cKF +cLc +cLE +cLS +cMm +cMB +cMO +cNb +cNj +cMB +cMO +cNJ +cMm +cMB +cMO +cNZ +cOg +cOz +cOT +cPk +cPw +cPE +cPK +cPK +cPV +cMr +cLR +cQg +cdO +czg +aaa +aaa +aaa +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(125,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 +aac +aaa +aak +aar +aak +aae +aae +aaa +aaa +aaa +aaa +aaQ +abu +aaQ +aaa +aaa +aaa +aae +aae +aae +aaa +aaa +aaa +aae +adB +aak +aar +aak +aaa +aac +aeZ +aft +afu +afN +agb +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aae +ahj +ahy +ahT +ahT +ahT +ahT +ahT +ahT +ahT +aDu +ahj +aaa +aaa +afP +aae +akg +akv +akF +alh +aky +amt +ani +anl +anl +anl +aqn +anl +ast +atw +avd +awt +atw +atw +aAD +aCa +bug +bys +cvv +cGM +cQU +aFX +aMg +aHC +aOO +aQE +aSb +aTe +aUQ +aWN +aYz +ban +bbY +bdv +beK +bgr +bhz +biK +bkb +blr +bmQ +boH +bqU +btj +bvj +bxg +bzj +bAN +bCM +bFc +bmO +boK +bze +bMA +bOD +bQw +bOD +bTY +bVb +bVM +bXw +bYV +can +cbY +cdW +cfO +chr +ciZ +ckO +cmB +cok +cpU +cpU +ctt +cuP +cpU +cpU +cyU +cAj +cBj +cCn +cDp +cBj +cFn +cok +cpU +cpU +cuP +cJm +cJY +cKo +cKG +cLd +cLF +cLT +cMn +cMC +cMn +cMn +cNk +cNt +cNC +cMn +cMn +cNt +cMn +cOa +cOh +cOA +cOU +cPl +cPx +cPF +cMr +cMr +cMr +cPY +cLR +cQh +cOO +cQo +axL +axL +axL +axL +axL +cQq +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(126,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 +aac +aaa +aak +aar +aak +aae +aaP +aaQ +aaQ +aaQ +aaQ +aaQ +aaQ +aaQ +aaQ +aaQ +aaQ +aaQ +aco +aco +aco +aco +aco +aco +adB +abl +adQ +abl +abl +abl +afa +afu +afN +agb +aaa +aaa +aae +aae +aaa +aaa +aaa +aaa +aae +aae +ahj +ahD +aie +aie +aie +aie +aie +aie +aie +aMo +ahj +aaa +aaa +afP +aae +akg +akw +akG +ali +alO +amu +anj +anV +aoA +apy +aqo +arv +aky +atw +ave +awu +atw +atw +aky +aCb +aDA +aoD +anX +aHD +cQX +aKN +aMh +anl +aOP +aQF +aSc +aTf +aUR +aWO +aYA +bao +bbZ +bdw +bal +bgs +bhy +biL +bjI +bls +bmO +bmO +bqV +btk +bvi +bxh +bzk +bzj +bzi +bFd +bmO +boL +bze +bMz +bOE +bQx +bSa +bTZ +bVc +bWn +afX +bYW +cao +cbZ +cdX +cfP +cao +cja +ckP +cmC +col +cpV +crS +ctu +cuQ +cwz +cxW +cyV +cAk +cBk +cCo +cDq +cEn +cFo +cFo +cHh +cFo +cEn +cFo +cJZ +cao +cKH +cLe +cLG +cLU +cMo +cMD +cMP +cNc +cMo +cMD +cND +cNK +cMo +cMD +cMP +cOb +cOi +cOB +cOV +cPm +cPy +cPG +cPL +cMr +cPW +cMr +cLR +cHN +cHb +czg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(127,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 +aac +aaa +aak +aar +aak +aaa +aaQ +aaQ +aaQ +aaQ +aaQ +aaP +abv +aaP +aaQ +aaQ +aaQ +aaQ +acp +aae +acM +ada +ada +ads +adC +abl +adR +aej +aew +abl +afb +aae +afO +aaa +aaa +aaa +aaa +aae +aae +aaa +aaa +aae +aae +aaa +ahk +ahD +aie +aie +aie +aie +aie +aie +aie +aMo +ahk +aae +aaa +afP +aaa +akg +akx +akH +alj +alP +amv +ank +anW +aoB +apz +aqp +arw +aky +atx +avf +aJf +atw +azy +aky +aCc +aDA +aEQ +amy +amy +cQW +aKO +amy +amy +aOQ +aQG +aky +aky +aky +aky +aYx +bap +bca +bdx +beL +bgt +bhA +biM +bjM +bkY +bmR +boI +bqW +btl +bvk +bxi +bzl +bAO +bCN +bFe +bmO +boK +bze +bMz +bOF +bQy +bSb +bMz +bVd +bVM +alt +bYX +cap +cca +cca +cca +cca +cjb +ckQ +cmD +com +cjb +crT +crT +cuR +cuR +cuR +cyW +cAl +cBe +cxU +cDr +cDt +cDt +cDt +cDr +cDt +cDt +cDt +cDw +cDi +cKI +cLb +cDi +cLR +cMp +cME +cMQ +cNa +cNl +cME +cMQ +cNa +cNN +cME +cMQ +cMZ +cOj +cOC +cOW +cPn +cPz +cPD +cPJ +cMr +cMr +cMr +cLR +cHN +cdO +czg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(128,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 +aac +aaa +aak +aar +aak +aaa +aaQ +aaQ +aaT +aaY +abe +abm +abw +abm +abe +abN +abV +aaQ +acp +acE +acN +acp +aae +aco +aaa +abl +adS +aek +aex +abl +afc +afv +afP +aaa +aaa +aaa +aaa +aaa +aae +aae +aae +aae +aaa +aaa +ahk +ahD +aie +aie +aie +aiM +aie +aie +aie +aMo +ahk +aae +aae +afP +aaa +akh +aky +aky +aky +aky +amw +anl +anX +aoC +apA +aqp +arx +amr +aky +aky +aww +aky +aky +amr +aCd +aDA +aER +aFY +aHE +aJk +aKP +aMi +aFY +aOP +aQH +aky +aTg +akJ +aWP +aYw +aYw +aYw +bdy +aYw +aYw +aYw +biN +bjI +bkT +bmO +bmO +bmO +bmO +bmO +bmO +bmO +bmO +bmO +bmO +bmO +boK +bze +bMz +bMz +bMz +bMz +bMz +bTE +bWo +alt +bYS +cai +cca +cdY +cfQ +chs +cjc +ckR +cmE +con +cpW +crT +ctv +cuS +cwA +cxX +cyX +cAl +cBe +cCp +cDs +cEo +cFp +cGr +cDr +amc +amc +amc +cDw +cKp +cKJ +cLf +cdO +cLR +cMq +cMF +cMR +cMZ +cNm +cNu +cNE +cMZ +cNO +cNS +cNX +cMZ +cOk +cOD +cOX +cPo +cPu +cPC +cLR +cMr +cPX +cMr +cLR +cHN +cdO +czg +aae +aae +aae +aae +aae +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(129,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 +aac +aag +aag +aas +aag +aag +aaP +aaQ +aaU +aaZ +abf +abf +abx +abf +abf +abO +abW +ace +acq +acF +acO +acp +acp +aco +aco +abl +adT +aej +aey +abl +afd +aae +afP +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +aaa +aaa +aaa +ahk +ahD +aie +aie +aiK +ajc +ajX +aie +aie +aMo +ahk +aaa +aae +ajB +ajD +ajD +ajD +ajQ +alk +aky +amx +anl +anl +aoD +ani +aqq +ary +asu +aty +avg +awx +aJg +azz +aAE +aCe +aDB +aES +aFZ +aFZ +aJl +aKQ +aFZ +aNr +aOR +aQI +aky +ajD +aUS +awJ +awJ +awJ +awJ +awJ +awJ +awJ +bhB +biM +bjM +bkX +bhg +boJ +bqX +btm +boN +boN +boN +boN +boN +boN +boN +boN +bKP +bMB +bMB +bMB +bSc +boM +bTE +bVM +alt +bYm +caj +cca +cdZ +cfR +cht +cjd +ckS +cmF +coo +cpX +crT +ctw +cuT +cwB +cxY +cyX +cAm +cBe +cRb +cDt +cEp +cFq +cGs +cDw +cHS +cHS +cHS +cDw +cqd +cKK +cpP +cLH +cLR +cMr +cMr +cMj +cMZ +cMr +cMr +cMj +cMZ +cMr +cMr +cMj +cMZ +cOl +cOE +cOY +cPp +cLR +cLR +cLR +cLR +cLR +cLR +cLR +cHN +cNT +czg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(130,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 +aae +aag +aal +aat +aaC +aaJ +aaQ +aaQ +aaV +aba +abg +abn +aby +abn +abG +abP +abX +acf +acr +acG +acP +adb +adk +acp +acp +acp +adU +ael +abl +abl +afe +afw +afP +aaa +aaa +aaa +aaa +aaa +aae +aae +aae +aae +aaa +aaa +ahk +ahD +aie +aie +aie +aie +aie +aie +aie +aMo +ahk +aaa +aaa +ajC +ajO +aki +akz +aki +all +alQ +anl +anl +anl +aoE +apB +aqr +aqr +asv +atz +aqr +awy +axQ +azA +asv +aqr +aDC +aET +aFZ +aHF +aJm +aKR +aFZ +anl +aOS +aQJ +aky +aky +cJC +aky +aky +aky +aky +aky +aky +bgu +bhg +biL +bjI +bkT +bhg +boK +bqY +btn +btn +btn +btn +btn +btn +btn +btn +btn +btn +btn +btn +btn +bSd +boK +bTE +bWp +bjW +bYm +caj +ccb +cea +cfR +chu +cje +ckT +cmG +cop +cpY +crT +ctx +cuU +cwC +cxZ +cyY +cAn +cBl +cCr +cDu +cEq +cFr +cGt +cDw +cHT +cIA +cIA +cDw +cqd +cHP +cpP +cLI +cLR +cMr +cMy +cMj +cMZ +cMr +cNr +cMj +cMZ +cMr +cMy +cMj +cMZ +cOm +cOE +cOZ +cPq +cLR +cPH +cpP +cPP +cHb +cPZ +cyQ +cHN +cNT +czg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(131,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 +aae +aah +aam +aau +aaD +aaK +aaQ +aaQ +aaU +aba +abh +aaP +aaQ +aaP +abH +abQ +abY +aaQ +acs +acG +acQ +adc +adl +adt +adD +acp +adV +aem +aez +aeN +aff +afx +afP +aaa +aaa +aaa +aaa +aae +aae +aaa +aaa +aae +aae +aaa +ahk +ahD +aie +aie +aie +aie +aie +aie +aie +aMo +ahk +aaa +aaa +aaa +ajD +akj +ajD +akI +alm +alR +amz +anl +anl +aoF +apC +apC +apC +asw +atA +avh +awz +axR +azB +asw +apC +aDD +aEU +aFZ +aHG +aJn +aKS +aFZ +anl +aOP +aCa +aSd +aTh +aoD +aWQ +aky +baq +atw +bdz +aky +ajQ +bhg +biL +bjI +bkT +bhg +boK +bqY +btn +ame +ame +amc +ame +ame +ame +ame +ame +amc +ame +ame +btn +bze +boK +bTE +bVM +alt +bYm +caj +ccc +ceb +cfS +chu +cjf +ckU +cmH +coq +cpZ +crT +cty +cuV +cwD +cya +cyZ +cAo +cBm +cCs +cDv +cEr +cFs +cGu +cDw +cHU +cIA +cJn +cDw +cqd +cHP +cpP +cLJ +cLR +cMr +cMG +cMS +cMZ +cMr +cMG +cMS +cMZ +cMr +cMG +cMS +cMZ +cOn +cOE +cPa +cPr +cLR +cPI +cyQ +cPQ +cdO +cLH +cpP +cQi +cQn +czg +aae +aae +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(132,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 +aaf +aai +aan +aav +aaE +aaL +aaQ +aaQ +aaW +abb +abi +abo +aaQ +abE +abI +abR +abZ +acg +act +acH +acR +add +adm +adu +adE +adL +adW +aen +aeA +aeO +afg +afx +afQ +aaa +aaa +aaa +aae +aae +aaa +aaa +aaa +aaa +aae +aae +ahj +ahD +aie +aie +aie +aie +aie +aie +aie +aMo +ahj +aaa +aaa +ajD +ajD +ajD +ajD +akJ +aln +aky +aky +anm +anY +aoG +apD +aqs +aky +aky +aky +aky +awA +axS +aky +aky +aky +aky +aky +aGa +aHH +aJo +aKT +aFZ +anl +aOP +aCa +aSd +aTi +aoD +aWR +aky +baq +atw +bdz +aky +ajQ +bhg +biL +bjI +bkT +bhg +boL +bqZ +btn +ame +ame +bxj +bxl +bCO +bCO +bCO +bxl +bxj +ame +ame +btn +bSe +bUa +bTE +bVM +alt +bYm +caj +ccb +cec +cfT +chv +cjg +ckV +cmI +cor +cqa +crT +ctz +cuW +cwE +cyb +cyX +cAl +cBe +cCt +cDs +cEs +cFt +cGv +cDw +cHV +cIB +cHV +cDw +cqd +cHP +cpP +cpP +cLR +cLR +cLR +cLR +cLR +cLR +cLR +cLR +cLR +cLR +cLR +cLR +cLR +cLR +cOF +cLR +cLR +cLR +cpP +cpP +cpP +cKS +cpP +cpP +cQj +cdO +czg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(133,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 +aae +aah +aao +aaw +aaF +aaM +aaQ +aaS +aaU +aba +abh +aaP +aaQ +aaP +abJ +aba +aca +aaQ +acu +acG +acS +ade +adn +adv +adD +acp +adX +aeo +aeB +aeP +afh +afx +afP +aae +aaa +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aae +ahj +ahP +aif +aif +aif +aif +aif +aif +aif +aNQ +ahj +aaa +aaa +ajE +ajP +ajP +ajD +akK +aln +alS +aky +aky +aky +aky +aky +aky +aky +asx +atB +avi +awB +axT +atB +aAF +aCf +aDE +aEV +aGb +aGa +aGa +aKU +aFZ +aFY +aOP +aQK +aSd +aTj +aUU +aWS +aky +baq +atw +bdz +aky +ajQ +bhg +biP +bjI +bkT +bhg +boM +bqY +btn +amc +bxj +bxj +bAP +bCP +bFf +bHq +bJu +bxj +bxj +amc +btn +bze +boJ +bTE +bVM +alt +bYR +cak +cca +ced +cfU +chw +cjh +ckW +cmJ +cos +cqb +crT +ctA +cuX +cwF +cyc +crT +cAp +cBn +cxU +cDr +cEt +cFt +cGw +cHi +cHW +cIC +cJo +cKa +cKq +cKL +cLg +cLg +cLg +cLg +cLg +cLg +cLg +cLg +cLg +cNF +cNF +cNP +cNF +cNF +cNF +cNF +cOG +cPb +cNp +cNp +cNp +cNp +cNp +cNp +cNp +cNp +cQk +cdO +czg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(134,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 +aae +aag +aap +aax +aaG +aaN +aaR +aaQ +aaV +aba +abj +abp +abz +abp +abK +abS +acb +ach +acr +acG +acT +adf +ado +acp +acp +acp +adY +aep +abl +abl +aaj +afy +afP +aae +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ahj +ahj +ahj +ahk +ahj +ajd +ahj +ahk +ahj +ahj +ahj +ahk +ahj +ajD +ajQ +ajQ +akA +akL +alo +alT +alT +alT +alT +alT +alT +alT +arz +asy +atC +avj +awC +axU +atC +aAG +aAG +aAG +aAG +aGc +aHI +aky +aKV +aMj +aNr +aOT +aQL +aSe +aTk +aUV +aWT +aYB +atw +atw +bdz +aky +akL +bhg +biL +bjI +bkT +bhg +bhg +bqY +btn +ame +bxk +bzm +bAQ +bAU +bFg +bAU +bAU +bKQ +bJw +ame +btn +bze +bTE +bTE +bWq +alt +bYY +bTE +cca +cee +cfV +chx +cji +cjb +cca +cot +cqc +crU +crU +crU +crU +crU +crU +cAq +cBo +crV +cDw +cEu +cFt +cGx +cDw +cHV +cID +cHV +cDw +cKr +cKM +cIn +cpP +cpP +cyQ +cpP +cpP +cIn +cNn +cpP +cpP +cpP +cyQ +cNQ +cpP +cpP +cyQ +cOH +cPc +cpP +czg +czg +czg +czg +czg +czg +czg +czg +cpP +cpP +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(135,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 +aac +aag +aag +aay +aag +aag +aaP +aaQ +aaU +abc +abf +abf +abx +abf +abL +abT +acc +aci +acv +acI +acU +acp +acp +aco +aco +abl +adZ +aeq +aeC +abl +afi +aaj +afR +aae +aae +aae +aae +aae +aae +aae +aae +aae +aae +aae +aae +aae +aae +aae +ahk +ajj +ahj +akb +akr +aNS +aiN +bmm +ahj +ajF +ajR +akk +ajD +ajH +alp +ajT +ajT +ajT +ajT +aoH +apE +ajT +arA +asz +atD +atE +awD +axV +atE +atE +atE +atE +atE +axV +aHJ +aky +aKW +aMk +anV +aOU +aQM +aSf +aTl +aUW +aWU +aYB +atw +atw +bdA +aky +akK +bhg +big +bjI +blh +bmS +bhg +bqY +btn +ame +bxk +bzn +bAR +bAU +bFh +bAU +bAR +bKR +bJw +ame +btn +bSf +bTE +bVe +bWe +alt +bYm +bVb +ccd +cef +cfW +chy +cjj +ckX +cmK +cou +cqd +crV +ctB +cuY +ctB +crV +cza +cAr +cBp +cCu +crV +cEv +cFu +cGy +cHj +cHX +cIE +cJp +cDw +cqd +cKN +cLh +cpP +cLV +cMs +cpP +cob +cdO +cdO +cdO +cIm +cpP +cKz +cdO +cKy +cpP +cOo +cdO +cLC +cpP +aaa +aaa +aaa +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(136,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 +aac +aaa +aak +aaz +aak +aaa +aaQ +aaQ +aaX +abd +abk +abq +abA +abq +abM +abU +acd +aaQ +acp +acJ +acV +acp +aae +aco +aaa +abl +aea +aer +aer +aeQ +afj +afz +afS +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +ahk +ahF +ahj +akl +aCY +aix +aiO +bmo +ahj +ajD +ajD +ajD +ajD +akM +alq +alU +alU +alU +alU +alU +alV +alU +arB +asA +atE +avk +awE +axW +azC +aAH +aCg +aDF +aEW +axV +aHK +aky +aKX +aMl +aNs +aOV +aQN +aSg +aTm +aUX +aWV +aYB +atw +atw +bdB +aky +bgv +bhg +big +bjI +blh +bmT +bhg +bra +btn +ame +bxl +bzo +bAS +bAS +bFi +bAS +bAS +bKS +bxl +ame +btn +bze +bTE +bVf +bWe +alt +bYm +caq +cce +ceg +cfX +chz +cjk +ckY +cmK +cov +cqd +crV +ctB +ctB +ctB +cyd +czb +cAs +cBq +cCv +crV +cEw +cFv +cGz +cHk +cHY +cIF +cJq +cKb +cqd +cKN +cLi +cpP +cpP +cpP +cpP +coa +cfG +cdO +cdO +cMV +cpP +cNL +cKw +cdO +cpP +cpP +cOH +cpP +cpP +aaa +aaa +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(137,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 +aac +aaa +aak +aaz +aak +aaa +aaQ +aaQ +aaQ +aaQ +aaQ +aaP +abB +aaP +aaQ +aaQ +aaQ +aaQ +acp +aae +acW +adg +adp +adw +adF +abl +aeb +aeq +aeq +abl +aaj +aaj +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +ahk +ajj +ajd +akp +aCZ +aNV +beM +bpT +ahj +ajG +ajS +ajQ +ajQ +akN +alr +alV +amA +ann +anZ +aoI +apF +alU +arC +asA +atE +avl +awF +axX +azD +aAI +aCh +aDG +aEX +axV +aHJ +aky +aKY +aMm +aCa +cIW +aQO +aSd +aTn +aOP +aWW +aky +bar +atw +bdB +aky +ajQ +bhg +big +bjI +blh +bmU +bhg +bqY +btn +ame +bxk +bzp +bAT +bCQ +bFj +bHr +bAT +bKT +bJw +ame +btn +bze +bTE +bVg +bWe +alt +bYm +caq +cce +ceh +cfY +chA +cjl +ckZ +cmK +cow +cqe +crV +ctC +cuZ +ctB +cyd +czc +cAt +cBr +cCw +crV +cEx +cFw +cGA +cHl +cHZ +cIG +cJr +cDw +cqd +cKN +cLj +cpP +cLW +cMt +cpP +cMd +cNd +cIo +cNd +cpP +cpP +czg +czg +czg +cpP +cOp +cOI +cOp +cpP +aaa +aae +aae +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(138,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 +aac +aaa +aak +aaz +aak +aae +aaP +aaQ +aaQ +aaQ +aaQ +aaQ +aaQ +aaQ +aaQ +aaQ +aaQ +aaQ +aco +aco +aco +aco +aco +aco +adG +abl +aec +abl +abl +abl +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +ahk +ajV +ahj +aig +aDa +aUl +beS +bvt +ahj +bwp +aAG +aAG +aAG +akO +als +alU +amB +ano +amE +ano +apG +alU +aln +asA +atE +avm +awG +axY +azE +aAJ +aCi +aDH +aEY +axV +aHJ +aky +aKZ +aMn +aNt +aOW +anl +aSd +aTo +aUY +aWX +aky +bas +atw +bdB +aky +ajQ +bhg +bii +bjL +bkT +bhg +bhg +bqY +btn +ame +bxk +bzq +bAU +bCR +bFj +bHs +bAU +bKU +bJw +ame +btn +bze +bTE +bTE +bVM +alt +bYm +car +cce +cei +cfZ +chB +cjm +cla +cmK +cox +cqf +crV +ctB +ctB +ctB +cyd +czd +cAu +cBs +cCx +crV +cDw +cFx +cDw +cDw +cDw +cDw +cDw +cDw +cqd +cKN +cpP +cpP +cKw +cdO +cpP +cMT +cdO +cdO +cGl +cpP +aaa +aaa +aaa +aae +cpP +cOq +cOJ +cOq +cpP +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(139,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 +aac +aaa +aak +aaz +aak +aae +aae +aaa +aaa +aaa +aaa +aaQ +abC +aaQ +aaa +aaa +aaa +aae +aae +aae +aaa +aaa +aaa +aae +adG +aak +aaz +aak +aaa +aac +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ahv +ahv +aht +ahj +ahj +ahj +ahj +aUT +biO +ahj +ahj +ajI +ahv +ahv +ahv +ahv +ahv +alU +amC +anp +aoa +aoJ +apH +alU +aln +asA +atE +avn +awH +axZ +azF +aAK +aCj +aDI +aEX +axV +aHJ +aky +aky +aky +aNu +cIW +anl +aSd +aQK +aUZ +aWY +aky +bat +atw +bdB +aky +ajQ +bhg +big +bjI +blt +bhg +boK +bqY +btn +amc +bxj +bxj +bAV +bCS +bFk +bHs +bJv +bxj +bxj +amc +btn +bSg +bUb +bTE +bVU +cmr +bYw +cas +ccf +cej +cga +chC +cjn +clb +cmK +coy +cqd +crV +ctB +cva +cwG +cye +cze +cAv +cBt +cCy +crV +cEy +cFy +cGB +ccg +ccg +ccg +ccg +cKc +cKs +cKO +cLk +cpP +ahA +cMu +cpP +cLC +cdO +cdO +cNv +cpP +aaa +aaa +aae +aae +cpP +cOq +cOK +cOq +cpP +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(140,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 +aac +aaa +aak +aaz +aaj +aak +aak +aak +aak +aak +aak +abl +abt +abl +aak +aak +aak +aak +aaj +aak +aak +aak +aak +aak +adH +aaj +aaz +aak +aaa +aac +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ahv +ahv +ahv +ahv +aim +aih +ahH +ahM +aii +aip +aiz +bkc +aje +bvv +ajJ +ahM +ahM +ahM +ahM +ahM +alU +amD +anq +aob +aoK +apI +alU +arD +asA +atE +atE +awI +aya +azG +aAL +aCk +aDJ +aEZ +aGd +aHL +aJp +aLa +aky +axS +aOX +aQP +aSh +aTp +aVa +aWZ +aSh +aky +aky +aky +aky +ajQ +bhg +bih +bjI +blu +bhg +boK +bqY +btn +ame +ame +bxj +bxj +bCR +bFj +bHt +bxj +bxj +ame +ame +btn +bze +boK +bhC +biQ +cnV +blv +bhC +ccf +cek +ccf +ccf +ccf +ccf +cmK +coz +cqd +crV +crV +crV +crV +crV +crV +cAw +cBu +crV +crV +cEz +cFz +cDr +chl +cfG +cdO +cdO +cKd +cdO +cEd +cLl +cyQ +cLX +cdO +cMH +cMU +cdO +cdO +cNw +cpP +aaa +aae +aae +aaa +aaa +cOq +cOL +cOq +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(141,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 +aab +aaa +aac +aaa +aak +aaA +aaH +aaO +aaO +aaO +aaO +aaO +aaO +abr +abD +aaO +aaO +aaO +aaO +aaO +acw +aaO +aaO +aaO +aaO +aaO +adI +adM +aed +aak +aaa +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aiw +aiw +aiw +ack +ahv +aiy +aiP +ahI +ahI +ahI +ahI +bee +bla +bla +bla +bla +bla +bla +akB +bws +alu +alU +amE +anr +aoc +aoL +amE +alV +aln +asA +atF +atE +atE +atE +atE +atE +atE +atE +atE +atE +aHJ +aJq +aLb +ajQ +aNv +cJy +aQP +aSi +aTq +aVb +aXa +aYC +bau +bcb +ajD +ajP +ajQ +bhg +big +bjI +bkV +bmV +boN +brb +btn +ame +ame +amc +bxk +bCT +bFl +bHu +bJw +amc +ame +ame +btn +bze +boK +brd +bWr +bXC +bYZ +cat +ccg +cel +cel +cel +cel +clc +ccg +coA +cqg +cel +cel +cel +ccg +clc +ccg +cAx +cBv +cCz +cDx +cEA +cFA +cDr +cdO +cdO +cdO +cdO +cGk +cwt +cEd +cLl +cpP +cLY +ckC +cMH +cdO +cIn +cdO +cNx +cpP +aae +aae +aaa +aaa +aaa +aaa +cOM +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(142,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 +aac +aae +aaj +aak +aak +aak +aak +aak +aak +aak +aak +aaj +aaj +aaj +aak +aak +aak +aak +aaj +aak +aak +aak +aak +aak +aak +aak +aak +aaj +aae +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agg +aiL +agZ +ahm +ahR +aiP +aiv +ahv +ahw +ahW +aij +ahV +ahV +aiQ +ahV +aij +ahW +ahw +aji +ahv +akP +alv +alU +amE +ans +amE +aoM +amE +alU +arE +asB +atG +avo +awJ +awJ +awJ +aAM +awJ +awJ +awJ +aGe +aHM +aJr +aLc +aAM +aNw +aOY +aQP +aSj +aTr +aVc +aXb +aYD +aQP +bcc +alT +bcb +ajQ +bhg +big +bjI +bkT +bhg +boO +brc +btn +btn +amc +bzr +bAW +bCU +bFj +bHv +bJx +bKV +amc +btn +btn +bze +boK +bhC +bWs +bXD +bZa +bhC +bBc +cem +cem +cem +cem +cld +cmL +coB +cqh +cqh +cqh +cqh +cwH +crF +czf +cAy +cBw +cAy +cDy +cEB +cFB +cDy +cHm +cIa +cIH +cJs +cKe +cwr +cuE +cLm +cpP +czg +czg +cpP +cpP +cpP +cpP +cpP +cpP +afv +afv +afv +afv +afv +afv +afv +afv +afv +afv +afv +afv +afv +afv +afv +afv +afv +afv +afv +afv +afv +afv +afv +afv +afv +afv +afv +afv +afv +afv +afv +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(143,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 +aac +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +aae +aaa +aaa +aaa +aae +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aiw +aiw +aiw +ack +ahv +aht +aht +ahw +ahO +ahw +aiq +ahM +ahM +ais +ahw +ahO +ahw +ahw +ahv +akQ +cRY +alU +alU +ant +aod +aoN +alU +alU +arF +arM +atH +avp +awK +awK +awK +awK +awK +aDK +aFa +aFa +aHN +aJs +aLd +awK +aNx +aOZ +aQP +aSk +aTs +aVd +aXc +aYE +aQP +ajD +ajD +beN +ajD +bhg +big +bjI +bkT +bhg +boK +boK +bto +btn +ame +bzs +bxl +bxj +bFm +bxj +bxl +bKW +ame +btn +boK +bSh +bTV +bhC +bWt +bXD +bZb +cau +cch +amc +amc +ame +ame +bzt +amc +bKW +ame +ame +amc +amc +cwI +cyf +czg +ame +amc +amc +cDw +cEC +cFC +cDw +cDw +cDw +cDw +cDw +cDw +czg +cpP +cLn +cpP +aaa +aaa +aaa +aae +aae +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +aae +aae +aaa +aaa +aaa +aaa +aaa +aae +aae +aae +aae +aae +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(144,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 +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ahv +ahv +ahv +ahv +aae +aaa +ahw +ahW +ahw +ahw +ahw +ahw +ahw +ahw +ahW +ahw +aaa +aht +akR +aoW +aiu +amF +anu +aoe +aoO +apJ +aqt +ahM +asC +atI +avq +akL +ayb +azH +aAN +aCl +aDL +aFb +aGf +ajQ +aJt +aLe +ajQ +ajQ +akL +aQP +aSl +aTt +aVe +aXd +aYF +aQP +bcd +alS +beO +ajG +bhg +big +bjI +bkT +bhg +boM +boK +btp +btn +amc +bzt +bAX +bCV +bFn +bHw +bAX +bKW +amc +btn +bQz +bze +bUc +bhC +cSh +bXD +bZb +cav +cch +amc +amc +amc +ame +bzt +cmM +bKW +ame +amc +amc +amc +cwI +cyf +czg +ame +ame +ame +cDr +cED +cFD +cGC +cHn +cIb +cII +cJt +cDr +amc +cpP +cLn +cpP +aaa +aaa +aae +aae +aaa +aaa +aae +aae +aaa +aaa +aaa +aab +aaa +aaa +aae +aae +aaa +aaa +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +aaa +aaa +aae +aae +aaa +aaa +aae +aae +aae +cQr +cQs +cQr +aae +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(145,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 +afv +aae +aae +aae +aae +aaa +aaa +aaa +aho +aho +ahX +aho +ahl +ahl +ahl +ahl +aho +ahZ +aho +aho +aht +akS +alx +alW +amG +anv +aof +aoP +apK +aqu +arG +ahM +atI +avq +ajQ +akK +azI +ahv +ahv +ahv +ahv +ahv +ahv +atI +aLf +ahv +azH +alS +aQP +aSm +aTu +aVf +aXe +aYG +aQP +bcd +bdC +beP +ajS +bhg +biy +bkd +bkU +bhg +boK +boK +btp +bhC +bxm +bzu +bAY +bCW +bFo +bHx +bJy +bKX +bxm +bhC +bQA +bze +boK +bhC +bWu +bXE +bZc +cav +cch +ame +amc +chD +chD +cle +chD +coC +chD +chD +amc +ame +cwI +cyf +czg +amc +ame +amd +cDr +cEE +cFE +cGD +cGD +cIc +cGC +cJu +cDr +amc +ccC +cLo +ccC +aaa +aae +aae +aaa +aaa +aaa +aaa +aae +aae +aaa +aaa +aaa +aaa +aae +aae +aaa +aaa +aaa +aaa +aae +aae +aaa +aaa +aaa +aaa +aae +aae +aaa +aaa +aaa +aaa +aae +aae +aaa +aae +aae +cQt +cQu +cQC +cQu +cQt +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(146,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 +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aho +aho +aho +aho +ahJ +ahq +aik +ahq +ahq +ahq +ahq +ajs +ahq +ajW +akm +ahw +akT +aly +alX +amH +anw +aog +aoQ +ahv +aqv +akR +ahM +atI +avr +ahv +ahv +ahv +ahv +aCm +aDM +aFc +aGg +aHO +aJu +aLg +ahv +ahv +ahv +aQP +aQP +aTv +aTv +aTv +aQP +aQP +aht +ahv +beQ +ahv +bhC +biQ +bke +blv +bhC +bhC +brd +bhC +bhC +bxn +bzv +bAX +bAX +bFp +bAX +bAX +bKY +bxn +bhC +bhC +bSi +bhC +bhC +bWs +bXF +bZd +caw +cch +ame +ame +chD +cjo +clf +cmN +coD +cqi +chD +ame +ame +cwI +cyf +czg +amc +amc +amd +cDr +cEF +cFF +cGE +cHo +cId +cIJ +cJv +cDt +amc +cns +cLp +cns +aae +aae +aab +aaa +aaa +aaa +aaa +aaa +aae +aae +aaa +aaa +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +aaa +aaa +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +aae +cQt +cQt +cQA +cQD +cQF +cQt +cQt +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(147,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 +ahl +ahp +ahp +aho +ahq +ahY +ahq +ahY +ahq +ahY +ahq +ahY +ahq +ajW +akn +ahw +akT +aly +alX +amI +anx +aog +aoR +ahv +aqw +arI +asD +atJ +avs +awL +ayc +azJ +aAO +aCn +aDN +aFd +aGh +aHP +aJv +aLh +aMp +aNy +aPa +aQQ +aSn +aPa +aPa +aPa +aPa +bav +aPa +aPa +beR +bgw +cQP +biR +bkf +blw +bmW +boP +boP +boP +boP +bxo +bzw +bAZ +bCX +bFq +bHy +bJz +bKZ +bxo +boP +boP +bSj +boP +bVh +bWv +bXG +bZe +cax +cci +cen +cen +chE +cjp +clg +cmO +coE +cqj +chD +amc +amc +cwI +cyg +czg +amc +amd +amd +cDr +cEG +cFG +cGF +cDr +cIe +cDt +cDt +cDr +ava +cns +cLq +cns +cOr +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +cQr +cQu +cQw +cQs +cQs +cQs +cQH +cQu +cQr +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(148,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 +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ahl +ahq +ahq +ahz +ahq +ahY +ahq +ahY +aiA +ahY +ahq +ahY +ahq +ajW +akn +ahw +akT +alz +alX +amJ +any +aog +aoS +ahv +aqx +arJ +ajU +atK +avt +ahM +ayd +ahM +aAP +aCo +aDO +aFe +aGi +aHQ +aes +aLi +aMq +aNz +ajU +ajU +ayd +ajU +ajU +ajU +ajU +ajU +aJw +ajU +ajU +bgx +cQS +biS +bkg +blx +bmX +boQ +boQ +boQ +boQ +boQ +boQ +bBa +bCY +bFr +bHz +bJA +bLa +boQ +boQ +boQ +bSk +boQ +bVi +bCY +bXH +bZf +cay +ccj +ceo +ceo +chF +cjq +clh +cmP +coF +cqk +chD +amc +amc +cmL +cyh +cpP +amc +amd +aDx +cDr +cEH +cFH +cGG +cDr +cIf +cIK +cJw +cKf +cLx +cKP +cLr +cKP +atr +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ame +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +cQs +cQv +cQx +cQs +cQE +cQs +cQI +cQK +cQs +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(149,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 +ahl +ahr +ahr +aho +ahq +ahY +ahq +ahY +ahq +ahY +ahq +ahY +ahq +ajW +akn +ahw +akT +aly +alX +amK +anz +aog +aoT +ahv +aqy +arK +asE +atL +avu +awM +awM +azK +aAQ +aCp +aDP +aFf +awM +aHR +aJx +aLj +aMr +aNA +awM +awM +aSo +awM +awM +awM +awM +baw +bce +bdD +beT +bgy +cQQ +biT +bkh +bly +bmY +boR +boR +boR +bvl +bvl +bvl +bBb +bCZ +bFs +bHA +bJB +bLb +bMC +bMC +bQB +bSl +bUd +bVj +bWw +bXI +bZg +caz +cck +cep +cep +chG +cjr +cli +cmQ +coG +cql +chD +amc +amc +cwJ +cpb +cns +amc +amd +amd +cDw +cDw +cDw +cDw +cDr +cDr +cDr +cDr +cDr +auW +cns +cLs +cns +axN +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +amc +aae +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +cQr +cQu +cQy +cQs +cQs +cQs +cQJ +cQu +cQr +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(150,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 +aho +aho +aho +aho +ahK +ahq +ail +air +aiB +aiR +ajf +ajt +ahq +ajW +ako +ahw +akT +aly +alX +amL +anA +aog +aoU +ahv +aqz +alw +ahM +atI +avv +asH +asH +asH +aAR +aCq +aDQ +aFg +asH +asH +aGn +aLk +aCv +ayi +ahv +ahv +ahv +ahv +ahv +ahv +ahv +ahv +ahv +ahv +beU +ahv +bhC +biU +bke +blz +bhC +bhC +bre +btq +btq +btq +bzx +bBc +bDa +bFt +bHB +bJC +bJC +bJC +bJC +bJC +bSm +bJC +bJC +bWx +bXJ +bZh +caA +cch +ame +ame +chD +cjs +clj +cmR +coH +cqm +chD +ame +ame +cwJ +cyi +cns +amc +amc +amd +cns +csn +cFI +cns +amd +amd +amc +amc +amc +amc +ccC +cRd +ccC +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +aaa +aaa +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +aaa +aaa +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +aae +cQt +cQt +cQB +cQC +cQG +cQt +cQt +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(151,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 +afv +aae +aae +aae +aae +aaa +aaa +aaa +aho +aho +ahZ +aho +ahl +ahl +ahl +ahl +aho +ahZ +aho +aho +aht +akU +alA +alY +amM +anB +anB +aoV +apL +aqA +arL +aiC +atI +arP +asH +aye +azL +aAS +aCr +aDR +aFh +aGj +asH +aJy +aLl +aMs +aNB +aPb +aPb +aPb +aPb +aPb +aXf +aPb +aPb +aPb +aPb +aPb +aRe +bhG +biV +bki +blA +bhG +bhC +brf +btr +btr +btr +btr +bBc +bDb +bFu +bHC +bJC +bLc +bMD +bOG +bQC +bSn +bUe +bJC +bWy +bXK +bZi +caB +cch +ame +amc +chD +chD +cle +chD +coC +chD +chD +amc +ame +cwJ +cyj +cns +amc +cBx +amd +ccC +chZ +cpe +ccC +ccC +ccC +ccC +ccC +ccC +ccC +ccC +cLo +ccC +aaa +aae +aae +aaa +aaa +aaa +aaa +aae +aae +aaa +aaa +aaa +aaa +aae +aae +aaa +aaa +aaa +aaa +aae +aae +aaa +aaa +aaa +aaa +aae +aae +aaa +aaa +aaa +aaa +aae +aae +aaa +aae +aae +cQt +cQu +cQD +cQu +cQt +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(152,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 +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ahv +ahv +ahv +ahv +aae +aaa +ahw +ahW +ahw +ahw +ahw +ahw +ahw +ahw +ahW +ahw +aaa +aht +akR +alw +aiu +amN +anC +anC +aoW +ahM +aqB +ahM +asF +atI +arP +asH +ayf +ayf +aAT +aCs +aDS +aFi +aGk +aHS +aJz +aLm +aMt +ayi +aPc +aCL +aCK +azX +azX +azX +azZ +azZ +azX +azX +azX +aRh +bhG +biW +bkj +blB +bmZ +bmZ +brg +bts +bts +bmZ +bzy +bmZ +bDc +bFv +bHD +bJD +bLd +bME +bMF +bQD +bSo +bUf +bJC +bWz +bXD +bZb +caB +cch +amc +amc +amc +ame +bzt +amc +bKW +ame +amc +amc +amc +cwJ +cyj +cns +ame +ame +ame +ccC +chZ +cFJ +cGH +cGH +cIg +cIL +cJx +cKg +cKt +cKQ +cLu +ccC +aaa +aaa +aae +aae +aaa +aaa +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +aaa +aaa +aae +aae +aaa +aaa +aaa +aab +aaa +aaa +aae +aae +aaa +aaa +aae +aae +aaa +aaa +aae +aae +aae +cQr +cQs +cQr +aae +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(153,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 +ahE +ahE +ahE +adx +ahv +aht +aht +ahw +ahO +ahw +ais +ahM +ahM +ajg +ahw +ahO +ahw +ahw +ahv +akV +cRZ +alZ +amO +anD +aoh +aoX +alZ +aqC +arM +arM +atM +arP +asH +ayg +ayg +aAU +aCt +aDT +aFj +aGl +aHT +aJA +aLn +aMu +asH +aPd +asH +asH +ame +amc +ame +ame +ame +amc +ame +azX +bgz +bhG +biW +bkj +blC +bmZ +boS +brh +btt +bvm +bxp +bzz +bBd +bDd +bFw +bHE +bJD +bLe +bMF +bMF +bQE +bSp +bUg +bJC +bWA +bXD +bZb +caC +cch +amc +amc +ame +ame +bzt +amc +bKW +ame +ame +amc +amc +cwJ +cyj +cns +ame +amc +amc +ccC +cEI +cFK +ccC +cns +cns +cns +cns +ccC +cKu +ccC +cgp +ccC +aaa +aaa +aaa +aae +aae +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +aae +aae +aaa +aaa +aaa +aaa +aaa +aae +aae +aae +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(154,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 +agY +ahQ +ahf +ahx +ahS +ahU +aiv +ahv +ahw +ahW +aij +ait +ait +ait +ait +aij +ahW +ahw +akq +ahv +akP +alB +alZ +amP +anE +aoi +aoY +apM +aqD +arN +asG +asG +avw +asH +ayh +ayh +aAV +aCu +aDU +aFk +aGm +atR +aJB +aLo +aMv +asH +aPe +aQR +asH +ame +atZ +atZ +atZ +atZ +atZ +amc +azX +aRh +bhG +biW +bkj +blD +bmZ +boT +bri +btu +bvn +bxq +bzA +bBe +bDe +bFx +bHF +bJE +bLf +bMG +bOH +bQF +bSq +bUh +bJC +bWB +bXD +bZa +bhC +bBc +ceq +ceq +ceq +ceq +clk +cmS +coI +cqn +cqn +cqn +cqn +cwK +cpc +ccC +cns +cns +cns +ccC +ctU +cFL +ccC +amc +ame +ame +amc +ccC +chZ +cvy +cxg +cvy +afv +afv +afv +afv +afv +afv +afv +afv +afv +afv +afv +afv +afv +afv +afv +afv +afv +afv +afv +afv +afv +afv +afv +afv +afv +afv +afv +afv +afv +afv +afv +afv +afv +afv +afv +afv +afv +afv +afv +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(155,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 +ahE +ahE +ahE +adx +ahv +ahG +ahU +ahL +ahL +ahL +ahL +ahL +ahL +ahL +ahL +ahL +ahL +ahL +akC +ahM +alC +alZ +amQ +anF +aoj +aoZ +apN +aqE +arO +asH +asH +asH +asH +ayi +ayi +ayi +aCv +aDQ +aFg +aGn +asH +asH +aLp +asH +asH +aMz +aQS +aSp +aTw +aVg +aXg +aYH +aYH +atZ +ame +beV +bgA +bhH +biX +bkk +blE +bna +boU +brj +btv +bvo +bxr +bzB +bBf +bDf +bFy +bHG +bJF +bLg +bMH +bOI +bQG +bSr +bUi +bVk +bWC +bXL +bZj +caD +ccl +cer +cer +cer +cer +cer +cmT +coJ +cer +cer +cer +cer +ccl +cyk +ccl +ccl +ccl +ccl +ccl +ccl +cFM +ccC +cns +cns +cns +cns +ccC +chZ +ccC +ccC +ccC +aae +aaa +aaa +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(156,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 +ahv +ahv +ahv +ahv +aim +aih +ahM +aia +ahM +ahM +ahM +aiS +ahM +ahM +ahM +ahM +ahM +ahM +ahM +alD +alZ +amR +anG +aok +apa +alZ +aqF +arP +asH +atN +avx +awN +ayj +azM +aAW +aCw +aDV +aFl +aGo +aHU +aJC +aLq +aMw +aNC +aMz +aQT +aSq +amc +atR +aXh +aYI +bax +atZ +ame +arZ +bgB +bhI +biY +bkj +blF +bmZ +boV +brk +brk +brk +bxs +bzC +bBd +bDg +bFz +bHH +bJC +bJC +bJC +bJC +bJC +bJD +bJC +bJC +bWD +bXB +blv +caE +caE +caE +caE +caE +caE +caE +caE +caE +cqo +cqo +cqo +cqo +cqo +cyl +cqo +cqo +cqu +cqu +cqu +cqu +cFN +cgp +cHp +cIh +csr +csq +ccC +cKv +ccC +aaa +aaa +aae +aaa +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(157,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 +aet +aet +aet +afB +afB +afB +afB +afB +afB +afB +aet +aet +aet +aaa +aaa +ahv +ahv +ahv +ahv +ahv +ahw +aiu +aiu +ahv +ajh +ajh +ajh +ajh +ajh +ahv +ahv +alE +alZ +alZ +alZ +alZ +alZ +alZ +aqG +arP +asH +atO +avy +avy +ayk +azN +azN +aCx +aDW +aFm +azN +azN +azN +aLr +aMx +aND +aPf +aQU +ayu +aTx +aVh +aXi +aYH +aYH +atZ +ame +arZ +aqJ +bhG +biW +bkj +blB +bmZ +boW +brk +btw +bvp +bxt +bzD +bBd +bDh +bFA +bHI +bJG +bLh +bMI +bOJ +bQH +bSs +bJG +bVl +bWE +bXM +bZk +caF +ccm +ces +cgb +chH +chH +chH +cmU +caE +cqp +crW +crX +cvb +crX +cym +czh +cqo +cBy +cCA +cDz +cqu +cFN +ccC +chZ +chZ +chZ +chZ +ccC +clv +ccC +aab +aaa +aae +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(158,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 +aet +aet +aeD +aeF +aeF +aeF +afU +agH +agV +aeF +aeF +ahb +aeD +aet +ahh +aet +aaa +aaa +aaa +aae +ahv +ain +ahM +ahM +ahv +aji +aju +ajK +ahw +aji +ahv +akW +alF +ama +ama +ama +ama +ama +ama +aqH +arP +asH +atP +avz +avy +ayl +azO +aAX +aCy +aDX +aFn +aGp +aHV +aDY +aLs +aMy +aNE +aPg +aQV +aSr +ame +atZ +atZ +atZ +atZ +atZ +amc +arZ +aqJ +bhG +biW +bkl +blG +bmZ +bmZ +bmZ +bmZ +bmZ +bmZ +bmZ +bBd +bDa +bFt +bHB +bJG +bLi +bMJ +bOK +bML +bSt +bJG +bVm +bWF +bXN +bZl +caE +caE +caE +caE +chI +cjt +cll +cmV +caE +cqq +crX +crX +cvc +cwL +cyn +czi +cAz +cBz +czn +cCK +cqu +cFO +ctU +cHq +chZ +cIM +chZ +cKh +chZ +ccC +ccC +ccC +ccC +ccC +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(159,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 +aet +aet +aeD +aeF +aeF +aeF +aeF +afU +agI +afU +aeF +aeF +ahc +aeG +aet +ahi +aet +aet +aaa +aae +aae +ahv +ain +ahM +ahM +aht +ahw +ahw +ahO +ahw +ahw +aht +akX +alG +amb +amS +anH +aol +apb +apO +aqI +arQ +asH +atQ +avA +awO +aym +azP +avy +aCz +ayi +aDY +aDY +aDY +aJD +aLt +aMz +aNF +aDS +aQW +aSp +aTw +aVg +aXj +aYJ +aYJ +atZ +ame +arZ +aqJ +bhG +biZ +bkj +blH +bhG +boX +brl +btx +bvq +bxu +bzE +bBg +bDb +bFu +bHC +bJG +bLj +bMK +bOL +bML +bSu +bJG +bVn +bWF +bXN +bFB +caE +ccn +cet +cgc +cew +cew +clm +cmV +caE +cqr +crY +crY +cvd +cwM +cyo +czj +cAA +cBA +cCB +cDA +cqu +cFN +ctU +chZ +chZ +cIN +chZ +cKi +chZ +cgp +cLv +clv +cLZ +cns +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(160,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 +aet +aet +aet +aeG +afT +aeF +aeF +aeF +aeF +agJ +aeF +aeF +aeF +ahc +aeG +aet +afW +aet +aet +aet +ahw +ahN +ahw +ain +ahM +aiC +aht +aaa +ahw +ajK +ahw +aaa +aht +akX +alc +alc +alc +alc +alc +apc +apP +aqJ +arR +asH +atR +atR +atR +ayn +azQ +avy +aCA +aDY +aFo +aFo +aFo +aDY +aLu +aMz +aNF +aDS +aQX +aSq +amc +atR +aXk +aYK +bay +atZ +ame +arZ +aqJ +bhG +bja +bkm +blI +bnb +boY +brm +bty +bvr +bxv +bzF +bBg +bDc +bFv +bHD +bJG +bLk +bML +bOM +bJG +bJG +bJG +bJG +bWG +bXN +bZn +caG +cco +ceu +cew +cew +cew +cln +cmV +caE +cqs +crW +crX +cve +crX +cyp +czk +cqo +cBB +cCC +cDB +cEJ +cFP +cGI +chZ +chZ +chZ +ccE +cGI +chZ +caQ +chZ +cqN +cMa +cns +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(161,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 +aet +aeG +aeD +aeD +aeF +aeF +aeF +aeF +aeF +aeF +agJ +aeF +aeF +aeF +aeD +aet +aeF +ahn +aeF +afC +ahB +ahO +ahB +ain +ahM +ahM +aht +ajk +ajl +ajL +ajl +ajk +aht +akX +alc +amc +amc +amd +alc +apd +apQ +aqK +arS +asI +atS +avB +awP +ayo +azR +aAY +aCB +aDZ +aCD +aGq +aCD +aJE +aLv +aMA +aNG +aPh +aQY +ayu +aTx +aVh +aXl +aYJ +aYJ +atZ +ame +arZ +aqJ +bhG +bjb +bkn +blJ +bhI +boZ +brn +btz +btz +btz +btz +bBh +cSf +bFw +bHE +bJG +bLl +bMM +bON +bQI +bSv +bMQ +bJG +bWH +bXN +bHJ +caH +ccp +cev +cew +cew +cju +caE +cmW +caE +cqo +cqo +cqo +cqo +cqo +cqo +cqo +cqo +cBC +cCD +cDC +cqu +chZ +cGJ +chZ +chZ +chZ +chZ +cGJ +chZ +ccC +cLw +cLK +cMb +cns +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(162,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 +aet +aeD +aeF +aeF +aet +afU +afU +afU +aeF +aeF +agK +aeF +aeF +aeF +aeD +aet +aeD +aeF +aeF +aeF +aet +ahw +ahw +ahw +ain +ahM +aiD +aht +ajk +ajv +ajM +ajY +ajk +aht +akY +alH +amd +amT +ame +alc +alM +apR +aqL +arT +asJ +atT +avC +awQ +ayp +azS +aAZ +aCC +avy +avy +aGr +aHW +avy +aLw +avy +aNF +aDS +aDS +aPl +ame +atZ +atZ +atZ +atZ +atZ +amc +arZ +bgC +bhG +biW +bkj +blK +bhG +bpa +bro +btA +bvs +bxw +bzG +bBh +cSg +bFz +bHI +bJG +bLm +bMN +bOO +bQJ +bSw +bMQ +bJG +bWI +bXN +bZl +caI +ccq +cew +cgd +ccz +cjv +caE +cmX +caE +cqt +cqt +cqt +cqu +cwN +cyq +czl +cAB +cBD +cCE +cDD +cEK +cqu +cqu +ccC +ccC +cIO +cIO +cIO +cIO +cIO +cIO +cIO +ccC +ccC +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(163,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 +aet +aeE +aeF +aeF +aet +aet +aet +aet +aet +afB +agL +afB +aet +aet +aet +aeD +aeF +aeF +aeF +aeF +aet +aae +ahw +aib +ain +ahM +aiE +ahw +ajk +ajv +ajM +ajY +ajk +ahw +akZ +alc +ame +amd +amc +alc +ape +apS +aqM +arU +asK +atU +avD +awR +ayq +azT +aBa +aCD +aEa +aCB +aGs +aCB +aCB +aLx +avy +aNF +aPi +aQZ +ayu +aTx +aVi +aXm +aYL +aYN +atZ +ame +arZ +aqJ +bhG +biW +bkj +blB +bhG +bpb +brp +btz +bxA +bxx +bzH +bBh +bDj +bFx +bHK +bJH +bLn +bMO +bOP +bQK +bSx +bUj +bJG +bWG +bXN +bZl +caH +ccr +cew +cge +cew +cjw +caE +cmY +caE +cqt +crZ +ctD +cvf +cwO +cyr +czm +czm +cBD +cCF +cDE +cEL +aOe +cFW +aaa +aaa +cIQ +cIQ +cIQ +cIQ +cIQ +cIQ +cIQ +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(164,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 +aet +aeF +aeF +aeF +afB +aeF +aeF +aeF +aeF +aeF +aeF +agJ +aeF +aeD +aet +aeF +aeF +aeF +aeF +aeF +aet +aaa +ahw +aic +ain +ahM +aiE +ahw +ajl +ajv +ajM +ajY +ajl +ahw +akZ +alc +alc +alc +alc +alc +akZ +apR +aqN +arV +asH +atV +avE +awS +ayr +azT +aBb +avy +avy +aFp +aFp +aFp +aJF +aLy +avy +aNF +avy +aRa +aPl +amc +atR +aXn +aYM +baz +atZ +ame +arZ +aqJ +bhG +biW +bkj +blB +bhG +bpc +brq +btB +bvu +bxy +bzI +bBi +bDk +bFy +bHL +bJI +bLo +bMP +bOQ +bQL +bSy +bUk +bJG +bWG +bXO +bZp +caH +ccs +cew +cgf +chJ +cjx +caE +cmZ +coK +cqt +csa +cqt +cqu +cwP +cyq +czn +czn +cAF +cCG +cDF +cEM +cFQ +cFW +aaa +aaa +cIQ +cJz +cJz +cJz +cJz +cJz +cIQ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(165,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 +aet +aeF +aeF +afm +afB +aeF +aeF +aeF +aeF +aeF +aeF +aeF +aeF +aeF +afC +aeF +aeF +aeF +aeF +ahs +aet +aaa +ahw +aic +ain +ahM +aiE +ahw +ajk +ajv +ajM +ajY +ajk +ahw +ala +akZ +amf +alc +anI +akZ +apf +apR +aqO +arW +asL +atW +avF +awT +ays +azU +aBc +aCE +aCE +aCE +aGt +aCE +aCE +aCE +aMB +aNH +aPj +aRb +ayu +aTx +aVj +aXo +aYN +aYN +atZ +ame +arZ +aqJ +bhG +biW +bkj +blC +bhG +bpd +brr +btz +bxA +bxz +bzJ +bBj +bDl +bFC +bHM +bJG +bLp +bMK +bMJ +bQM +bMQ +bUl +bJG +bWG +bXN +bZm +caE +cct +cew +cew +chK +cjx +clo +cna +coL +cqt +cqt +cqt +cqu +cwQ +cyq +czn +czn +cBE +cCH +cDG +cEN +cFQ +cFW +cFW +cIi +cIQ +cJz +cJz +cJz +cJz +cJz +cIQ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(166,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 +aet +aeG +aeF +afn +afB +aeF +aeF +aeD +aet +aet +aet +aet +aeD +aeF +aet +aeF +aeF +aeF +aeF +ahd +aet +aae +ahw +aib +ain +ahM +aiE +ahw +ajk +ajv +ajM +ajY +ajk +ahw +akZ +alI +akZ +akZ +akZ +akZ +akZ +apR +aqN +arV +asH +atX +avG +awU +ayt +azV +aBd +aCF +aEb +aFq +aGu +aHX +aJG +aFq +aMC +aNI +aPk +aRc +aSr +ame +atZ +atZ +atZ +atZ +atZ +amc +arX +aqJ +bhG +biW +bkj +blB +bhG +bpe +brs +btz +bvw +bxA +bzK +bBh +bDa +bFt +bHN +bJG +bLq +bMQ +bOR +bQN +bSz +bUm +bJG +bWG +bXN +bZm +caE +ccu +cew +cew +chK +cjy +caE +caE +coM +cqu +cqu +cqu +cqu +cqu +cqu +czo +czn +cBF +cCG +cDH +cEN +cFR +cGK +cHr +cGK +cIR +cJz +cJz +cJz +cJz +cJz +cIQ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(167,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 +aet +aeH +aeF +aeF +aet +aeF +aeF +aet +agp +aeF +aeF +aeF +afC +agJ +aet +ahd +aeF +aeF +aeF +aeF +aet +ahw +ahw +ahw +ain +ahM +aiF +aht +ajk +ajv +ajM +ajY +ajk +aht +alc +alc +alM +alc +alc +alc +alM +apR +aqP +arX +asH +atY +avH +awV +ayu +azW +aBe +awV +ayu +awV +aBe +awV +ayu +awV +aBe +aNJ +aPl +atR +atR +ame +amc +ame +ame +ame +amc +ame +arX +aqJ +bhG +bjc +bkj +blB +bhG +bhG +brt +btz +btz +bxB +btz +btz +bDm +bFD +bHO +bJG +bJG +bMR +bJG +bJG +bJG +bJG +bJG +bWG +bXN +bZq +caE +ccv +cex +cgg +chL +cjz +clp +cnb +coN +cqv +csb +ctE +cvg +cwR +cys +czp +cAC +cBG +cCG +cDH +cEO +cFS +cRn +cHs +cRn +cIS +cJz +cJz +cJz +cJz +cJz +cIQ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(168,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 +aet +aeD +aeF +aeF +aet +aeF +aeF +aet +agq +agw +aeF +agW +aet +aeF +aet +aeD +ahg +ahg +aeF +aeF +ahu +ahC +ahO +ahC +ain +ahM +ahM +aht +ajm +ajv +ajM +ajY +ajm +akD +ald +alI +alJ +amU +alb +alc +apg +apR +aqN +arX +ame +ame +avI +amc +ayv +ame +aBf +amc +ayv +ame +aBf +amc +ayv +ame +aBf +amc +ayv +ame +ame +ame +azX +azX +azZ +azZ +azX +azX +arX +aqJ +bhG +biW +bkj +blL +bnc +bhG +ame +btC +bvx +bxC +bzL +bBk +bDn +bFE +bHP +bJJ +bLr +bMS +bOS +btC +ame +bUn +bVo +bWJ +bXN +bZr +caJ +caH +cey +caH +chM +cjA +caH +cnc +coO +cqw +csc +ctF +cvh +cwS +cyt +czq +cAD +cBH +cCI +cDH +czn +cFT +cFW +cFW +cFW +cIQ +cJA +cJz +cJz +cJz +cJz +cIQ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(169,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 +aet +aeS +aeF +afC +aeF +aeF +afC +aeF +aeF +aeF +agX +aet +aeF +aeD +aet +aet +aet +aet +aet +aet +ahw +ahN +ahw +ain +ahM +ahM +aht +ajk +ajw +ajM +ajZ +ajk +aht +akZ +alJ +amg +alI +anJ +alc +akZ +apR +aqN +arX +amc +atZ +avJ +atR +ayw +atZ +aBg +atR +ayw +atZ +aBg +atR +ayw +atZ +aBg +atR +ayw +atZ +amc +azX +aCK +aSv +aSw +apP +apP +apP +beW +aqJ +bhG +biW +bkj +blB +bnd +bpf +amc +btD +bvy +bxD +bzM +bzP +bDo +bFF +bHQ +bzP +bLs +bMT +bOT +bQO +amc +bUo +bVp +bWG +bXN +bZm +caK +ccw +cez +cgh +chN +cjB +clq +cnd +coP +cqx +ccy +ctG +cvi +cwT +cyu +czr +cAE +cBI +cCJ +cDI +cEP +cFU +cRo +cHt +cRo +cIT +cJz +cJz +cJz +cJz +cJz +cIQ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(170,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 +aet +aeD +afo +aet +aeF +aeF +aeD +aet +aet +aet +aet +aeD +agJ +aeF +aeF +aeF +aeF +aet +aet +aaa +aae +aae +aht +ahw +ahw +ahw +aht +ajk +ajx +ajM +ajZ +ajk +aht +alb +alK +amh +akZ +anK +alM +akZ +apT +aqN +arY +ame +atZ +avK +awW +ayx +atZ +aBh +aCG +aEc +atZ +aGv +aHY +aJH +atZ +aMD +aNK +aPm +atZ +ame +azX +aVk +aXp +aYO +aYO +aYO +aYO +beX +bgD +bhG +biW +bkj +blB +bnd +bpf +ame +btE +bvz +bxE +bzN +bzP +bDo +bFz +bHQ +bzP +bLt +bMU +bOU +bQP +ame +bUo +bVp +bWG +bXN +bZm +caK +ccx +ceA +cew +chO +cjC +clr +cne +coQ +chQ +csd +cjE +cvj +cwU +caE +czs +cAF +cBJ +cCK +cDJ +cEN +bwV +cGN +cHu +cGN +cRc +cJz +cJz +cJz +cJz +cJz +cIQ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(171,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 +aet +aet +aet +aeF +aeF +aeF +aeF +aeF +agJ +aeF +aeF +aeF +aeF +ahe +aeF +aeD +aet +aaa +aaa +aaa +aae +aka +aaa +aaa +aae +aae +ajn +ajy +ajM +ajy +ajn +aht +ale +akZ +ami +akZ +anL +alc +akZ +apR +aqQ +arZ +ame +atZ +avL +avL +avL +atZ +aBi +aCH +aBi +atZ +aGw +aHZ +aGw +atZ +aME +aNL +aME +atZ +ame +azZ +apQ +aXq +ayz +ayz +ayz +ayz +beY +bgE +bhG +bjd +bko +blB +bnd +bpf +amc +btD +bvA +bxF +bzO +bzP +bDp +bFG +bHR +bzP +bLu +bMV +bOU +bQO +amc +bUo +bVp +bWK +bXP +bZm +caK +ccw +ceA +cgi +chO +cjD +cls +cnf +coR +cqy +cse +cjx +cvj +cwV +caE +czt +cAF +cBK +cCL +cDK +cEN +cFV +cFW +cFW +cIi +cIQ +cJz +cJz +cJz +cJz +cJz +cIQ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(172,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 +aet +aet +aeF +aeF +aeF +aeF +aeF +aeF +aeF +agJ +aeF +aeF +aeF +aeD +aet +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaa +ajn +ajN +ajn +aaa +aht +alf +alL +amj +amV +anM +alc +apf +apU +aqN +arZ +ame +atZ +avL +awX +ayy +atZ +aBi +aCI +aBi +atZ +aGx +aIa +aGw +atZ +aME +aNM +aME +atZ +ame +azZ +apR +aPp +aYP +aYP +aYP +aYP +aYP +aYP +aYP +bje +bkj +blB +bnd +bpf +ame +btD +bvA +bxG +bzP +bzP +bDq +bFH +bHS +bzP +bzP +bMW +bOU +bQO +ame +bUo +bVp +bWK +bXQ +bZs +caL +ccy +ceB +cgj +chP +cjx +caH +cng +coS +cqz +csf +ctH +cvk +cwW +caJ +czu +cAF +cBK +czn +cDL +cEQ +cFV +cFW +aaa +aaa +cIQ +cIQ +cJz +cJz +cJz +cIQ +cIQ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(173,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 +aet +aet +afW +aet +aet +aet +afB +agL +afB +aet +aet +aet +afW +aet +aet +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaa +aaa +aaa +aaa +aaa +aht +alc +alM +alc +alc +anN +alc +akZ +apR +aqR +arX +amc +atZ +atZ +atZ +atZ +atZ +atZ +atZ +atZ +atZ +atZ +atZ +atZ +atZ +atZ +atZ +atZ +atZ +amc +azX +apR +aPp +aYP +baA +bcf +bdE +beZ +bgF +aYP +biW +bkj +blB +bnd +bpf +ame +btD +bvB +bxH +bzQ +bzQ +bDr +bFI +bHT +bzQ +bzQ +bMX +bOV +bQO +ame +bUo +bVp +bWG +bXR +bZt +caM +ccz +ccz +cgk +chQ +cjE +clt +clt +coT +cqA +clt +ctI +cvl +csj +cyv +czu +cAF +cBK +cCM +cDM +cER +byO +cFW +aaa +aaa +cIQ +cIQ +cKj +cKj +cKj +cIQ +cIQ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(174,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 +aet +aeT +afq +afq +aet +agh +aeF +aeF +aeF +aeF +aeF +aha +aet +afq +afq +aeT +aet +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +afv +aaa +aaa +aaa +aaa +aaa +afv +aaa +aae +aae +aae +aae +alc +alI +apR +aqN +arX +ame +amc +ame +ame +ame +amc +ame +ame +ame +amc +ame +ame +ame +amc +ame +ame +ame +ame +ame +azX +apR +aPp +aYP +baB +bcg +baB +bfa +baB +aYP +bjf +bkj +blB +bnd +bpf +amc +btD +bvC +bxI +bzR +bzP +bDs +bFJ +bHU +bzP +bLv +bMY +bOW +bQO +amc +bUo +bVp +bWG +bXR +bZo +caK +ccw +cew +cgl +chK +cjx +clt +cnh +coU +cqB +clt +ctJ +cvm +cwX +cyv +czv +cAG +cBL +czv +czv +cyv +cFW +cFW +aaa +aaa +aaa +cJD +cJD +cJD +cJD +cJD +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(175,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 +aet +aeT +afq +afq +aeT +aet +aeD +aeF +agx +agM +agJ +aeF +aeD +aet +aeT +afq +afq +aeT +aet +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +alc +alc +alc +alc +anI +apR +aqN +arX +azX +azX +azZ +azZ +azZ +azZ +azZ +azZ +azZ +azZ +azZ +azZ +azZ +azZ +azZ +azZ +azZ +azX +azX +azX +apR +aPp +aYP +baC +bch +baB +bfb +bgG +bhJ +bjg +aeI +blB +bnd +bpf +ame +btF +bvC +bxJ +bzS +bzP +bDo +bFK +bHQ +bzP +bLw +bMZ +bOW +bQQ +ame +bUo +bVp +bWG +bXR +bZo +caK +ccx +cew +cgm +chK +cjx +clt +cni +coV +cqC +clt +ctK +cvn +cwY +cyv +czw +cAH +cBM +cCN +cDN +cyv +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(176,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 +aet +aet +aeU +aeU +aeU +aet +aet +aet +aeF +aeF +agN +aeF +aeF +aet +aet +aet +aeU +aeU +aeU +aet +aet +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +alc +amW +alb +alc +akZ +apV +aqS +ats +asN +asN +asN +awY +ayz +ayz +aBj +ayz +ayz +ayz +ayz +ayz +ayz +ayz +ayz +ayz +cLt +ayz +ayz +ayz +aVm +cQM +aYP +baB +bci +bdF +bfc +bgH +bhK +bjh +aeJ +blM +bnd +bpf +amc +btD +bvD +bxK +bzT +bBl +bDt +bFL +bHV +bzP +bLx +bNa +bOX +bQO +amc +bUo +bVp +bWG +bXR +bZo +caK +ccA +ceC +cgn +chK +cjF +clu +cnj +coW +cqD +clt +ctL +cvo +cwZ +cyv +czx +cAI +cBN +cCO +cDO +czv +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(177,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 +aet +aeK +aeK +aeK +aeK +aeK +aaa +aet +aeD +aeF +agO +aeF +aeD +aet +aaa +aeK +aeK +aeK +aeK +aeK +aet +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +alH +amX +akZ +aom +akZ +akZ +asa +asb +aYO +aYO +aYO +aCJ +aYO +asM +aEd +aFr +aGy +aPn +aPo +aVl +aYO +aYO +asM +cCq +cIU +asM +asM +avM +avM +cQL +aYP +baB +bcj +baB +bfd +bdH +aYP +biW +aeR +blN +bne +bhG +ame +btG +bvE +bxL +bzP +bzP +bDu +bFM +bHW +bzP +bzP +bNb +bOY +btG +ame +bUn +bVq +bWL +bXS +bZo +caE +caE +caE +caE +chR +cjG +clu +clu +clu +clu +clu +ctM +cvn +cxa +cyv +czy +cAJ +cBO +cCP +cDP +cES +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(178,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 +aet +aet +aeD +agP +aeD +aet +aet +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +alc +amY +anO +aon +aon +aon +aqT +aon +aon +aon +aon +awZ +ayA +azX +apR +azX +aEe +aEe +aEe +aEe +aEe +aEe +aEe +azX +aPp +azX +ame +amc +amc +ame +aYP +baD +bck +bdG +bfe +bgI +aYP +biV +bkr +blA +bnf +bnf +bnf +btC +bvF +bxM +bzU +bBm +bDv +bFN +bHX +bJK +bLy +bNc +bOZ +btC +azY +bUn +bUn +bWM +bXT +bZu +caN +ccB +ceD +cgo +chS +cjH +clv +cnk +coX +cqE +csg +ctN +cvp +cxb +cyv +czv +czv +czv +czv +czv +cyv +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(179,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 +aet +aet +agQ +aet +aet +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +alc +alc +alc +aon +aph +apW +aqU +asc +asO +aua +aon +axa +ayB +azX +apR +aCK +aEe +aFs +aGz +aIc +aGD +aLz +aEe +azX +aPp +azZ +amc +aTy +aVn +aVn +aYQ +baE +bcl +bdH +bff +bgJ +aYP +biW +aeR +blO +bng +bpg +bru +bnj +btC +btC +bzV +bzV +bzV +bzV +bzV +bzV +bzV +btC +btC +btC +bSA +bUp +bVr +bWN +bXU +bZv +bUn +ccC +ceE +cgp +chT +cjI +clw +cnl +coY +cqF +csh +ctO +cvq +cxc +csj +aaa +aae +aaa +aae +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(180,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 +aet +agO +aet +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aon +api +apX +aqV +apX +asP +aub +aon +awZ +aon +azX +apR +aCL +aEe +aFt +aGA +aId +aJI +aLA +aEe +azX +aPp +azZ +amc +aTz +aVo +aXs +aYR +baF +bcm +bdH +bfg +bgK +aYP +biW +afk +blP +bnh +bph +brv +btH +bnj +ame +amc +ame +amc +ame +amc +ame +amc +ame +azY +bQR +bSB +bUq +bVs +bWO +bXV +bZw +caO +ccD +ceF +ccD +chU +cjJ +clx +cnm +coZ +cqG +csi +ctP +cvr +cxd +csj +aaa +aae +aaa +aae +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(181,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 +aet +aet +agQ +aet +aet +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aon +apj +apY +aqW +asd +asQ +auc +aon +axb +aae +azX +apR +azX +aEe +aFu +aGB +aGA +aJJ +aLB +aEe +azX +aPp +azZ +ame +aTz +aVp +aXt +aYS +baG +bck +bdI +bfg +bgL +aYP +bjd +afl +blQ +bni +bpi +brw +btI +bnj +bnj +bzW +bzY +bDw +bDw +bDw +bzY +bzY +bzY +bzW +bQS +bPb +bzW +bUn +bWP +bXW +bZx +bUn +ccE +ceG +ccC +chV +cjK +cly +ccC +coX +coX +csj +csj +cvs +csj +csj +aaa +aae +aaa +aae +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(182,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 +abF +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aet +aeD +agP +aeD +aet +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aon +apk +apY +aqX +apY +asR +aud +avN +axb +aaa +azX +apR +aCM +aEe +aFv +aGC +aIe +aJK +aLC +aEe +azX +aPp +azZ +amc +aTz +aVq +aXu +aYT +baH +bcn +baB +bfh +bgM +aYP +biW +bkj +blB +bnf +bpg +brx +bpg +bvG +bxN +bnj +bzY +bDx +bFO +bHY +bzY +bzY +bNd +bPc +bQT +bSD +bzW +bUn +bUn +bXX +bZy +bUn +ccC +ceE +ccC +chW +cjL +chX +ccC +aaa +aaa +csj +ctQ +cvt +cxe +csj +aaa +aae +aaa +aae +aab +afv +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(183,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 +aet +agy +agP +aeF +aet +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aon +apl +apZ +aqY +ase +asS +aue +avO +axc +aaa +azX +apR +aCN +aEe +aFw +aGD +aIf +aGD +aLD +aEe +azX +aPp +azZ +amc +aTA +aVr +aVr +aYU +baI +bco +bdJ +bfi +bgN +aYP +biW +bkj +blB +bnf +bpj +brx +bpg +bvH +bxO +bnj +bBn +bDy +bFP +bHZ +bJL +bzY +bNe +bPf +bQW +bSE +bzW +aaa +bUn +bXY +bZz +caP +ccF +ceH +cgq +chX +cjL +chX +ccC +aae +aae +csj +ctR +cvu +cxf +csj +aae +aae +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(184,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 +aet +agx +agR +aeF +aet +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aon +apm +aqa +aqZ +asf +asT +auf +aon +axd +aaa +azX +aBk +azX +aEe +aEe +aEe +aIg +aEe +aEe +aEe +azX +aPp +azX +ame +amc +amc +ame +aYP +aYP +aYP +aYP +aYP +aYP +aYP +biW +bkj +blB +bnf +bpk +bry +btJ +bnj +bnj +bzW +bBo +bDz +bFQ +bIa +bJM +bzY +bNf +bPe +bQV +bSF +bzW +aae +bUn +bXY +bZA +bUn +ccG +ceI +cgo +chY +cjL +chX +ccC +aaa +aaa +csj +csj +cRk +csj +csj +aaa +aaa +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(185,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 +aet +aeF +aeF +agx +aet +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aon +aon +aon +ara +asg +asU +asg +ara +axd +aaa +azX +apR +azX +azX +aCK +apP +aIh +aJL +aLE +azX +azX +aPp +azX +azX +azZ +azZ +azX +azX +baJ +bcp +bdK +bfj +bgO +bhL +bji +afp +blM +bnf +bpl +brz +btK +bnj +bxP +bzX +bBp +bDA +bFR +bIb +bJN +bzY +bNg +bPf +bQW +bSG +bzW +aaa +bUn +bXY +bZA +bUn +ccH +ceJ +ccC +chZ +cjL +clz +ccC +aaa +cqI +cqI +cqJ +cvw +cqJ +cqI +cqI +aaa +aaa +afv +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(186,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 +aet +aeF +aeF +aeF +aet +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaa +ara +ash +asV +aug +ara +axd +aaa +azX +apR +apP +apP +apP +aFx +aIi +apP +apP +apP +apP +aPq +aPb +aSs +aPb +aPb +aPb +aXf +baK +bcp +bdL +bfk +bgP +bhM +bjj +afA +blR +bnf +bpm +brA +btL +bnj +bxQ +bzY +bzY +bDB +bFS +bIc +bzY +bzY +bNh +bPf +bQW +bSH +bzW +aae +bUn +bXW +bZA +bUn +ccI +ceK +ccC +cia +cjL +chX +ccC +aaa +cqI +csl +ctS +ctS +ctT +cyw +cqI +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(187,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 +aet +aeF +aeF +aeF +aet +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aon +ara +asg +asW +asg +ara +axd +aae +azX +apR +aCO +aEf +aFx +apP +apP +aJM +aLF +aCL +aIb +arV +azX +azX +azZ +azX +azX +azX +aRg +bcp +bdM +bfl +bgQ +bhN +bjk +bkj +blS +bnj +bnj +bnj +bnj +bnj +bpq +bzY +bzY +bzY +bFT +bId +bzY +bzY +bNi +bPf +bQW +bSI +bzW +aaa +bUn +bXZ +bZB +bUn +ccJ +ccK +ccK +ccK +cjM +clA +ccC +aaa +cqJ +csm +ctT +ctS +ctT +cyx +czA +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(188,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 +aet +aeF +agx +aeF +aet +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aqb +arb +asi +asX +auh +ara +axd +aaa +azX +aBl +azX +azX +azZ +azZ +azZ +azZ +azZ +azX +aCK +arV +azX +aSt +apP +aSt +azX +aYV +aRh +bcp +bcp +bcp +bcp +bcp +biW +bkj +blO +bnk +bpn +brB +btM +bvI +bxR +bzZ +bBq +bDC +bFU +bIe +bJO +bLz +bNj +bPf +bQW +bSJ +bzW +aaa +bUo +bYa +bZC +bVm +ccK +ceL +cgr +ccK +cjN +clB +ccC +aaa +cqI +csl +ctS +ctS +ctT +cyy +cqI +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(189,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 +aet +aeF +aeF +aeF +aet +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aon +ara +ara +asY +ara +ara +axd +aaa +azY +aBm +azY +aaa +aaa +aae +aaa +aae +aaa +aaa +azX +aPr +azX +apP +aTB +apP +apP +aYW +baL +aPb +aPb +aPb +aPb +bhO +bjl +bkp +blT +bnk +bpo +brC +btN +bvJ +bxS +bAa +bBr +bDD +bFV +bIf +bJP +bLA +bNk +bDD +bQX +bSK +bzW +aaa +bUo +bYa +bZC +bVm +ccL +ceL +cgs +ccK +cjO +clB +ccC +aaa +cqI +cqI +cqJ +cvx +cqJ +cqI +cqI +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(190,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 +aet +aeD +aeF +aeD +aet +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +afv +afv +ara +asZ +ara +afv +axd +aaa +azZ +apR +azZ +aae +aae +aaa +aaa +aae +aaa +aae +azZ +arV +azX +aSt +apP +aSt +aCK +apP +aRh +azX +aCK +azX +azX +azX +biW +bkj +blU +bnk +bpp +brD +btO +bvK +bxT +bAb +bBs +bDE +bFW +bIg +bJQ +bLB +bNl +bPg +bQY +bSL +bzW +aaa +bUo +bYb +bZC +bVm +ccJ +ceL +cgt +ccJ +cjN +clC +ccC +ccC +ccC +ccC +ccC +ccC +ccC +ccC +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(191,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 +aet +aet +afC +aet +aet +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +afv +arc +ara +ata +ara +arc +axd +aaa +azZ +apR +azZ +aaa +aaa +aaa +aab +aaa +aaa +aaa +azZ +arV +azX +apP +apP +azX +azX +aFx +aRh +aCL +apP +apP +bgR +azX +bjm +bkp +blB +bnl +bpq +bpq +bpq +bvL +bxU +bAc +bBt +bDF +bFX +bIh +bJR +bLC +bNm +bPh +bQZ +bSM +bzW +aaa +bUo +bYa +bZC +bVn +ccK +ceM +cgu +ccK +cjN +clB +cnn +chZ +chZ +clv +chZ +cvy +cxg +cvy +afv +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(192,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +apn +aqc +ard +ard +atb +aui +aui +axe +aae +azZ +apR +azZ +aae +aae +aae +amd +aae +aae +aae +azZ +aPs +aRd +aRd +aRd +aRd +aRd +aYX +aRi +azX +bdN +bfm +bgS +azX +biW +bkj +blO +bnk +bpr +brB +btM +bvM +bxV +bAc +bBu +bDG +bFY +bIi +bJS +bLC +bDF +bPf +bRa +bSN +bzW +aaa +bUn +bYc +bZD +bUn +ccK +ccK +ccK +ccK +cjN +clD +cno +cpa +chZ +csn +ccC +ccC +ccC +ccC +afv +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(193,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 +aac +aac +aad +aac +aac +aac +aac +aad +aac +aac +aac +aac +aac +aaa +aaa +aaa +aaa +arc +arc +atc +arc +avP +aaa +aaa +aAa +aBm +aAa +aaa +aaa +aGE +amd +aIk +aaa +aaa +azZ +aPp +azX +azX +azX +aVs +apP +aYY +aTC +aTC +aTC +aXv +aTC +aTC +bjn +bkj +blT +bnk +bpo +brC +btP +bvN +bxV +bAd +bAd +bDH +bFZ +bIj +bJT +bJT +bNn +bPi +bRb +bJT +bJT +aae +bUn +bYd +bZE +caQ +ccM +ceN +cgv +cib +cjP +clE +cgv +cpb +cqL +cso +cgp +cvz +cxh +cns +afv +afv +afv +afv +afv +afv +afv +afv +afv +aad +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(194,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 +aac +aaa +aaa +aae +aae +aae +aae +aae +aae +aae +aae +aae +aae +aae +aaa +aaa +aaa +aae +arc +arc +arc +aae +aaa +aaa +aAa +aBm +aAa +aaa +aaa +aGF +aIj +aDx +aaa +aaa +azZ +aPt +aRe +aSu +aTC +aTC +aXv +aTC +aTC +bcq +bdO +aXw +bgT +bhP +biW +bkj +blU +bnk +bps +brE +btO +bvO +bxW +bAe +bBv +bDI +bGa +bIk +bJT +bLD +bNo +bNt +bRc +bSO +bJT +aaa +bUn +bYd +bYf +caP +caS +caS +caS +cic +caS +caS +clv +clB +cqM +csp +ccC +cvA +cqM +cns +aae +aae +aae +aae +aae +aae +aae +aae +afv +aae +aae +aae +aae +aae +aae +aae +aae +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(195,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 +aac +aaa +aiG +aae +ajo +aaa +aiG +aae +ajo +aaa +aiG +aae +ajo +aae +aae +aaa +aaa +aae +aae +aae +aae +aae +aaa +aaa +aAa +aBm +aAa +aaa +aaa +amd +aIk +amd +aaa +aaa +azZ +arV +aRf +aSv +aTC +aVt +aXw +aYZ +baM +bcr +bdP +bfn +aXw +bhP +bjo +bkj +blB +bnl +bpq +bpq +bpq +bvP +bxV +bAe +bBw +bDJ +bGb +bIl +bJT +bLE +bNo +bNt +bRd +bSO +bJT +aae +bUn +bYe +bZF +caR +ccN +ceO +cgw +cid +cjQ +caS +cnp +cpc +chZ +csq +ccC +cvB +chZ +cns +aaa +aaa +aaa +aaa +aaa +aae +aae +cGO +afv +cIj +aaa +cGO +aae +cIj +aaa +cGO +aae +cIj +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(196,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 +aab +aaa +aaa +aaa +aaa +aaa +aac +aaa +aiG +aiT +ajo +aaa +aiG +aiT +ajo +aaa +aiG +aiT +ajo +aaa +aae +aae +aaa +aaa +aae +aae +aae +aaa +aaa +aab +aAa +aBm +aAa +aae +aae +aae +amd +aae +aae +aae +azZ +arV +aRg +aSw +aTC +aVu +aXx +aZa +baN +aZa +bdQ +bfo +bgU +bhQ +bjp +bkj +blO +bnm +bpt +brF +btQ +bvQ +bxV +bAe +bBx +bDJ +bGc +bIm +bJT +bLF +bNo +bPj +bRe +bSP +bJT +aaa +bUn +bYf +bZG +bUn +ccO +ceP +cgx +cie +cjR +caS +cnp +cpd +chZ +csr +ccC +chZ +cxi +cns +aaa +aaa +aaa +aaa +aae +aae +aaa +cGO +cHv +cIj +aaa +cGO +cHv +cIj +aaa +cGO +cHv +cIj +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(197,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 +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaa +aiG +aiU +ajo +aaa +aiG +aiU +ajo +aaa +aiG +aiU +ajo +aaa +aaa +aae +aae +aaa +aaa +aae +aaa +aaa +aaa +aae +aAa +aBm +aAa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +azZ +aPu +aRh +aCL +aTC +aVv +aXy +aZb +baO +aZb +bdR +bfp +aZb +bhR +bjq +bkq +blV +bnn +bpu +brG +btR +bvR +bxX +bAe +bBy +bDJ +bGc +bIn +bJU +bLG +bNp +bPk +bRf +bSQ +bJT +bVt +bUn +bUo +bUo +caS +ccP +ceO +cgy +cif +cjS +clF +chZ +cpe +cqN +css +ccC +cgp +cxj +ccC +aaa +aaa +aaa +aae +aae +aaa +aaa +cGO +cHw +cIj +aaa +cGO +cHw +cIj +aaa +cGO +cHw +cIj +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(198,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 +aac +aac +aac +aad +aae +aae +aiG +aiU +ajo +aaa +aiG +aiU +ajo +aaa +aiG +aiU +ajo +aaa +aaa +aaa +aae +aae +aaa +aae +aaa +aaa +aae +aae +aAa +aBm +aAa +aae +aaa +aae +aaa +aae +aae +aaa +azZ +aPv +aRh +aSx +aTC +aVw +aXw +aZc +aTC +bcs +bdS +bfq +bgV +bhP +biW +bks +blT +bno +bpv +brH +btR +bvR +bxY +bAf +bBz +bDK +bGd +bIo +bJV +bLH +bNq +bPl +bRg +bSR +bJT +bVu +aaa +aaa +aaa +caS +ccQ +ceO +cgz +cig +cjT +caS +cia +cpe +cqO +css +ctU +cvC +chZ +ccC +aaa +aaa +aae +aae +aaa +aaa +aaa +cGO +cHw +cIj +aaa +cGO +cHw +cIj +aaa +cGO +cHw +cIj +aae +aae +aac +aac +aac +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(199,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 +aac +aaa +aaa +aae +aaa +aaa +aiH +aiV +ajp +aaa +aiH +akc +ajp +aaa +aiH +aiV +ajp +aaa +aaa +aaa +aaa +aae +aae +are +auj +auj +auj +auj +azY +aBm +azY +aaa +aaa +aae +aaa +aae +aaa +aaa +azX +aPs +aRi +aSy +aSy +aSy +aXz +aSy +aSy +aSy +aSy +aSy +aSy +aSy +bjr +bkt +blW +bnp +bpw +brI +btS +bvS +bxZ +bAe +bBA +bDL +bGc +bIp +bJW +bLI +bNr +bPm +bNt +bSS +bJT +bVt +aae +aae +aae +caS +ccR +ceQ +cgA +cih +cjU +cii +ccC +cpf +cgp +ccC +ctV +ctV +ctV +ctV +czC +aae +aae +aaa +aaa +aaa +aaa +cGP +cHx +cIk +aaa +cGP +cKk +cIk +aaa +cGP +cHx +cIk +aaa +aaa +aae +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(200,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 +aae +aaa +aaa +aae +aaa +aaa +aae +aiW +aae +aaa +aae +aiW +aae +aaa +aae +aiW +aae +aaa +aaa +aaa +aaa +are +are +are +auk +avQ +axf +auj +aAb +aBm +aCP +azY +aAa +aAa +aAa +aAa +aAa +azY +azY +aPw +aCP +aSy +aTD +aVx +aVx +aVx +aVx +bct +bdT +bfr +bgW +aSy +bjs +bku +blX +bnq +bpx +brJ +btT +bvT +bya +bAe +bBB +bDL +bGc +bIq +bJT +bLJ +bNs +bPn +bNt +bST +bJT +aaa +aaa +aaa +aaa +caS +ccS +ceR +cgB +ccV +cjV +cii +cnq +cpe +cqP +cst +ctV +cvD +cxk +cyz +czC +czC +czC +aaa +aaa +aaa +aaa +aae +cHy +aae +aaa +aae +cHy +aae +aaa +aae +cHy +aae +aaa +aaa +aae +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(201,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 +aac +aae +aae +aid +aio +aio +aiI +aiX +aiX +aiX +aiX +aiX +aiX +aiX +aiX +aiX +aiX +anP +aoo +aoo +aoo +axP +asj +axP +aul +avR +axg +ayC +aAc +aBn +aCQ +aCQ +aCQ +aCQ +aIl +aCQ +aCQ +aCQ +aCQ +aPx +aRj +aSy +aTE +aVx +aVx +aZd +baP +bct +bdU +bdU +bgX +aSy +bjt +bko +blY +bnl +bpq +bpq +bpq +bvU +bxV +bAe +bBC +bDM +bGe +bIr +bJT +bLK +bNt +bNt +bNt +bST +bJT +aae +aaa +aaa +aaa +caS +ccT +ceS +cgC +ccV +cjW +cih +chZ +cpg +cqQ +csu +ctW +cvE +cxl +cyA +cRm +cAK +cRm +cCQ +cDQ +cET +cET +cET +cET +cET +cET +cET +cET +cET +cET +cET +cET +cMc +cCQ +cCQ +cMI +aae +aae +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cRx +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(202,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 +aac +aaa +aaa +aae +aaa +aaa +aae +aiY +aae +aae +aae +aiY +aae +aaa +aae +aiY +aae +aaa +aaa +aaa +aaa +are +are +are +aum +avS +axh +auj +aAd +aBo +azY +azY +azY +azY +azY +azY +azY +azY +azY +aPy +azY +aSy +aTF +aVy +aXA +aZe +baQ +bct +bdU +bdU +bgY +aSy +bju +bkj +blZ +bnk +bpy +brK +btU +bvV +bxW +bAe +bBD +bDN +bGf +bIs +bJT +bLJ +bNt +bPo +bNt +bST +bJT +aae +aae +aaa +aaa +caS +ccU +ceT +cgD +ccV +cjX +cii +cnr +chZ +chZ +csv +ctV +cvF +cxm +cyB +czC +czC +czC +aaa +aaa +aaa +aaa +aae +cHz +aae +aae +aae +cHz +aae +aaa +aae +cHz +aae +aaa +aaa +aae +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(203,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 +aac +aaa +aaa +aae +aaa +aaa +aiH +aiZ +ajp +aaa +aiH +aiZ +ajp +aaa +aiH +aiZ +ajp +aaa +aaa +aaa +aaa +aae +aae +are +auj +auj +auj +auj +azY +aBp +aCP +aEg +aFy +aGG +aIm +aJN +azY +aEj +azY +aPy +aMF +aSy +aTG +aVz +aVx +aVx +baR +bct +bdU +bdU +bgZ +bhS +bjv +bkj +bma +bnk +bpo +brC +btV +bvW +bxV +bAd +bAd +bDO +bFZ +bIj +bJT +bLL +bLL +bLL +bLL +bLL +bLL +bLL +aae +aae +aae +caS +ccV +ccV +ccV +cii +cjY +cii +cns +cns +cns +cns +ctV +ctV +ctV +ctV +czC +aae +aae +aaa +aaa +aab +aaa +cGP +cHA +cIk +aaa +cGP +cHA +cIk +aaa +cGP +cHA +cIk +aaa +aaa +aae +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(204,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 +aad +aac +aac +aac +aae +aae +aiJ +aja +ajq +aaa +aiJ +aja +ajq +aaa +aiJ +aja +ajq +aaa +aaa +aaa +aae +aae +aaa +aaa +aaa +aaa +aae +aae +azY +aBo +aCR +aEh +azY +aGH +aCV +aJO +azY +aCV +aGG +aPz +aRk +aSy +aTH +aVA +aXB +aZf +baS +bcu +bdV +bfs +bha +bhT +bjw +bkj +bmb +bnk +bpz +brL +btW +bvX +bxV +btR +bBE +bDP +bGg +bIt +bJX +bLM +bNu +bPp +bRh +bSU +bUr +bVv +aaa +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +aaa +aaa +aaa +aaa +aae +aae +aaa +aaa +aaa +cGQ +cHB +cIl +aaa +cGQ +cHB +cIl +aaa +cGQ +cHB +cIl +aae +aae +aac +aac +aac +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(205,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 +aae +aaa +aiJ +aja +ajq +aaa +aiJ +aja +ajq +aae +aiJ +aja +ajq +aaa +aaa +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aae +azY +aBo +azY +aEi +azY +aGI +aIn +aJP +azY +aEi +aCP +aPy +aCV +aSy +aTI +aVB +aXC +aXC +baT +bcv +bdW +bft +bhb +bhU +bjx +bkq +bmc +bnl +bpq +bpq +bpq +bvY +bxX +btR +bBF +bDQ +bGh +bIu +bJY +bLN +bNv +bPq +bRi +bSV +bUs +bVv +aaa +aaa +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +aaa +aaa +cGQ +cHB +cIl +aaa +cGQ +cHB +cIl +aae +cGQ +cHB +cIl +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(206,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 +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aaa +aiJ +ajb +ajq +aaa +aiJ +ajb +ajq +aae +aiJ +ajb +ajq +aaa +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +azY +aBo +azY +aCV +azY +aGJ +aCV +aJQ +azY +aCV +azY +aPy +aRl +aSy +aTJ +aVC +aXD +aZg +baU +bct +bdU +bfu +bhc +aSy +bjy +bkj +blZ +bnk +bpA +brK +btU +bvZ +bxT +bAg +bBG +bDR +bGi +bIv +bJZ +bLO +bNw +bPr +bRj +bSW +bUt +bVv +aae +aae +aae +aae +aae +afv +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +aaa +cGQ +cHC +cIl +aaa +cGQ +cHC +cIl +aae +cGQ +cHC +cIl +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(207,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 +aac +aaa +aiJ +aae +ajq +aaa +aiJ +aae +ajq +aaa +aiJ +aae +ajq +aae +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +azY +aBq +azY +aEj +azY +aGK +aCV +aCV +azY +aMF +azY +aPy +aRm +aSy +aTK +aVD +aVx +aZh +baV +bct +bdU +bfu +bdT +aSy +bjz +bkj +bma +bnk +bpo +brC +btX +bwa +byb +bAh +bBH +bDS +bGj +bIw +bKa +bLP +bNx +bPs +bRk +bPt +bUu +bVv +aaa +aaa +aaa +aaa +aae +aae +aaa +aaa +aaa +aaa +aaa +aae +aae +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aae +aae +cGQ +aae +cIl +aaa +cGQ +aae +cIl +aaa +cGQ +aae +cIl +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(208,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 +aac +aaa +aaa +aae +aae +aae +aae +aae +aae +aae +aae +aae +aae +aae +aaa +aae +aae +aaa +aaa +aaa +aab +aaa +aaa +aaa +azY +aBr +azY +azY +azY +azY +azY +aJR +azY +aGL +azY +aPA +aJU +aSy +aTL +aVE +aVx +aVx +aVx +bct +bdT +bfv +bdT +aSy +bjA +bkv +bmb +bnk +bpB +brM +btW +bwb +byc +btR +bBI +bDT +bGk +bIx +bKb +bLM +bNy +bPt +bRl +bSX +bUv +bVv +aaa +aaa +aaa +aaa +aaa +aae +aae +aaa +aaa +aaa +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +aae +aae +aae +aae +aae +aae +aae +aae +aae +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(209,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 +aab +aaa +aac +aac +aac +aac +aac +aac +aac +aac +aac +aac +aad +aac +aac +aaa +aaa +aaa +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +azY +aBs +aCS +aCS +aFz +azY +aEh +aCV +aLG +aCV +azY +aPy +aCV +aSy +aTM +aSy +aSy +aSy +aSy +aSy +aSy +aSy +aSy +aSy +ahv +bkw +bmd +bjF +bpC +bpC +bpC +bpC +bpC +bpC +bpC +bDU +bGl +bIy +bud +bLL +bLL +bPu +bLL +bLL +bLL +bLL +aae +aae +aae +aae +aae +aae +aae +aae +aae +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac +aac +aac +aac +cIX +cKl +cIX +cIX +cIX +aac +aac +aac +aac +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(210,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +aaa +aaa +aaa +aaa +aaa +azY +aBt +aCT +azY +aBm +aCP +aIo +aJS +azY +aLH +azY +aPy +aCV +azY +aTN +aTN +aXE +aTN +baW +aTN +bdX +bfw +bfw +bhV +bjB +bkx +bme +bjE +bpD +brN +btY +aTN +aTN +aTN +bpC +bDV +bGm +bIz +bwf +bLQ +bNz +bPv +bNz +bSY +bwf +afv +afv +afv +afv +afv +afv +afv +afv +afv +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(211,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +aaa +aaa +aaa +aaa +azY +azY +azY +azY +aBm +azY +azY +azY +azY +azY +azY +aPy +aCP +azY +aTO +aTN +aXF +aZi +baX +aZi +bdY +aZi +bdY +bhW +bjC +bky +bmf +bnr +bpE +brO +btZ +bwc +byd +bwc +bBJ +bDW +bGn +bIA +bKc +bLR +bNA +bPw +bRm +bSZ +bwf +bVw +bwf +aae +aae +aae +aae +aae +aae +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(212,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +aaa +aaa +aaa +azY +aBu +aCU +aCP +aBm +aGL +aIp +aJT +aCV +aCV +aCV +aPy +azY +azY +azY +azY +azY +azY +azY +azY +azY +azY +azY +azY +aCP +bkw +bmg +bjF +bpF +brP +bua +bfw +bfw +bfw +bBK +bDX +bGo +bIB +bwf +bLS +bNB +bPx +bRn +bTa +bwf +bVx +bwf +aaa +aaa +aaa +aaa +aaa +aae +aae +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(213,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +aaa +aaa +azY +aBv +aCV +aEk +aBs +aCS +aCS +aCS +aCS +aMG +aCS +aPB +aRn +aRn +aTP +aRn +aRn +aZj +aRn +aRn +aRn +aRn +aRn +aRn +bjD +bkz +bmh +bjF +bpG +brQ +bjF +bjF +bjF +bjF +bjF +bDY +bGp +bIC +bud +bud +bNC +bPy +bRo +bud +bud +bVw +bwf +bwf +bwf +aaa +aaa +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(214,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +aaa +azY +aBw +aCV +azY +aFA +aGM +aIq +aJU +aLH +azY +aCV +aPC +aRo +aSz +aTQ +aVF +aSz +aSz +baY +aSz +aSz +aSz +aTQ +bhX +bjE +bkA +bmi +bjF +bpH +brR +bjF +bwd +bye +bAi +bBL +bDZ +bGq +bID +bKd +bLT +bND +bPz +bRp +bTb +bUw +bVx +bWQ +bYg +bwf +aaa +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(215,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +azY +azY +azY +azY +aFB +aFB +aFB +aJV +aFB +azY +azY +azY +azY +azY +aTR +aCP +azY +azY +azY +azY +aCP +azY +aTR +azY +bjF +bkB +bmj +bns +bpI +brS +bjF +bwe +byf +bAj +bBM +bEa +bGr +bIE +bKe +bLU +bNE +bPA +bRq +bTc +bUx +bwf +bUw +bwf +bwf +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(216,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +aaa +aaa +aaa +aFC +aGN +aCV +aEi +aFC +aaa +aaa +aaa +azY +aSA +aTS +aVG +aVG +aZk +baZ +aZk +aVG +bfx +bhd +bhY +bjF +bkC +bmk +bnt +bpJ +brT +bjF +bwf +byg +bAk +bwf +bwf +bGs +bAk +bwf +bwf +bNF +bAk +bwf +bwf +bwf +bVy +bWR +bVy +bwf +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(217,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +aaa +aaa +aFB +aCV +aIr +aJW +aFB +aaa +aab +aae +azY +aSB +aTT +aCV +aCV +aTT +bba +aTT +bdZ +aMF +bhe +bhZ +bjF +bkD +bml +bnu +bpK +brU +bjF +bwg +byh +bAl +bwf +bEb +bGt +bIF +bwf +bLV +byh +bPB +bwf +bTd +bBN +bVz +bWS +bVz +bwf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(218,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 +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +aaa +aFB +aGO +aIs +aJX +aFB +aaa +aae +aae +azY +azY +aTU +aCV +aCV +aZl +aCV +bcw +aMF +aMF +bhf +azY +bjF +bjF +bjF +bnv +bpL +brV +bjF +bwh +byi +bAm +bwf +bEc +bGu +bIG +bwf +bLW +byi +bAm +bBN +bTe +bwf +bVz +bWT +bVz +bwf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(219,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +aFB +aFB +aFB +aFB +aFB +aae +aae +aaa +aaa +azY +azY +azY +azY +azY +azY +azY +azY +azY +azY +azY +aaa +aaa +bjF +bnw +bpM +brW +bjF +bwf +byj +bwf +bBN +bwf +bGv +bAk +bwf +bwf +bNG +bwf +bwf +bTf +bwf +bVz +bWU +bVz +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(220,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +aaa +aaa +aaa +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +aaa +aab +bjF +bnx +bpN +brX +bub +bwi +byk +byk +bBO +byk +bGw +bIH +bKf +byk +byk +byk +bRr +bTg +bwf +aaa +bWV +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(221,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +aaa +bjF +bny +bpO +brY +buc +bwj +byl +byl +byl +byl +bGt +bIH +byk +byk +byk +byk +bRs +bTh +bwf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(222,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aae +bjF +bnz +bnz +bnz +bjF +bwk +bym +bAn +byl +byl +bGx +bII +byi +bLX +byk +bPC +bBN +bwf +bwf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +bjF +aaa +aaa +aaa +bud +bwl +byn +byk +bBP +bEd +bGy +bIJ +bBP +byk +byk +bPD +bwf +aae +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bud +bwm +byo +byk +bBP +bEe +bGz +bEe +bBP +byk +byk +bPE +bwf +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(225,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bud +bwn +byp +bAo +bBQ +bEf +bGA +bIK +bBQ +bLY +byp +bPF +bwf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bud +bwo +bwf +bwo +bBR +bwo +bwf +bwo +bBR +bwo +bwf +bwo +bwf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aae +aaa +aae +aaa +aae +aaa +aae +aaa +aae +aaa +aae +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(228,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaa +aae +aaa +aae +aaa +aae +aaa +aae +aaa +afv +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(229,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaa +aae +aaa +afv +aaa +aae +aaa +aae +aaa +aaa +aaa +aae +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(230,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaa +aae +aaa +aaa +aaa +afv +aaa +aae +aaa +aaa +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(231,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaa +aae +aaa +aab +aaa +aaa +aaa +aae +aaa +aaa +aaa +afv +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(232,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaa +afv +aaa +aaa +aaa +aaa +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ayD +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(233,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +afv +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(234,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 +afF +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +afv +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(235,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(236,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ayD +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(237,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(238,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(239,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(240,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(241,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ayD +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(242,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(243,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(244,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(245,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(246,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(247,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(248,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(249,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(250,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(251,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(252,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(253,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(254,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(255,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} diff --git a/_maps/map_files/EfficiencyStation/EfficiencyStation.dmm b/_maps/map_files/EfficiencyStation/EfficiencyStation.dmm new file mode 100644 index 0000000..536b9cd --- /dev/null +++ b/_maps/map_files/EfficiencyStation/EfficiencyStation.dmm @@ -0,0 +1,122528 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aaa" = ( +/turf/open/space, +/area/space) +"aab" = ( +/obj/structure/lattice, +/turf/open/space, +/area/space) +"aac" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/toxins/test_area) +"aad" = ( +/turf/closed/wall, +/area/toxins/test_area) +"aae" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'BOMB RANGE"; + name = "BOMB RANGE" + }, +/turf/closed/wall, +/area/toxins/test_area) +"aaf" = ( +/turf/closed/wall/mineral/plastitanium, +/area/toxins/test_area) +"aag" = ( +/obj/structure/chair, +/turf/open/floor/plating/airless/warnplate{ + dir = 9 + }, +/area/toxins/test_area) +"aah" = ( +/obj/item/target/alien{ + anchored = 1 + }, +/obj/machinery/camera{ + active_power_usage = 0; + c_tag = "Bomb Test Site"; + desc = "A specially-reinforced camera with a long lasting battery, used to monitor the bomb testing site. An external light is attached to the top."; + invuln = 1; + luminosity = 3; + name = "Hardened Bomb-Test Camera"; + network = list("Toxins"); + use_power = 0 + }, +/turf/open/floor/plating/airless/warnplate{ + dir = 1 + }, +/area/toxins/test_area) +"aai" = ( +/obj/structure/chair, +/turf/open/floor/plating/airless/warnplate{ + dir = 5 + }, +/area/toxins/test_area) +"aaj" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plating/airless/warnplate{ + dir = 9 + }, +/area/toxins/test_area) +"aak" = ( +/turf/open/floor/plating/airless, +/area/toxins/test_area) +"aal" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plating/airless/warnplate{ + dir = 5 + }, +/area/toxins/test_area) +"aam" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/item/target, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/toxins/test_area) +"aan" = ( +/obj/item/device/flashlight/lamp, +/turf/open/floor/plating/airless/warnplate{ + dir = 8 + }, +/area/toxins/test_area) +"aao" = ( +/obj/item/device/radio/beacon, +/turf/open/floor/plating/airless, +/area/toxins/test_area) +"aap" = ( +/obj/item/device/flashlight/lamp, +/turf/open/floor/plating/airless/warnplate{ + dir = 4 + }, +/area/toxins/test_area) +"aaq" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/item/target, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/toxins/test_area) +"aar" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plating/airless/warnplate{ + dir = 10 + }, +/area/toxins/test_area) +"aas" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plating/airless/warnplate{ + dir = 6 + }, +/area/toxins/test_area) +"aat" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plating/airless/warnplate{ + dir = 10 + }, +/area/toxins/test_area) +"aau" = ( +/turf/open/floor/plating/airless/warnplate, +/area/toxins/test_area) +"aav" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plating/airless/warnplate{ + dir = 6 + }, +/area/toxins/test_area) +"aaw" = ( +/turf/open/floor/plating/airless/warnplate{ + dir = 1 + }, +/area/toxins/test_area) +"aax" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"aay" = ( +/turf/closed/wall/mineral/titanium/overspace, +/area/shuttle/abandoned) +"aaz" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"aaA" = ( +/obj/machinery/door/airlock/shuttle{ + name = "recovery shuttle external airlock" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"aaB" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall4" + }, +/area/shuttle/abandoned) +"aaC" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s10"; + dir = 2 + }, +/area/shuttle/abandoned) +"aaD" = ( +/obj/structure/lattice, +/obj/structure/grille, +/turf/open/space, +/area/space) +"aaE" = ( +/turf/closed/wall, +/area/space) +"aaF" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_r"; + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/shuttle/abandoned) +"aaG" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion"; + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/shuttle/abandoned) +"aaH" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"aaI" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"aaJ" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"aaK" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/structure/sign/vacuum{ + pixel_x = 0; + pixel_y = 32 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"aaL" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_l"; + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/shuttle/abandoned) +"aaM" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/abandoned) +"aaN" = ( +/obj/structure/shuttle/engine/heater{ + dir = 1 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plating/airless, +/area/shuttle/abandoned) +"aaO" = ( +/turf/closed/wall/shuttle{ + icon_state = "swallc2"; + dir = 2 + }, +/area/shuttle/abandoned) +"aaP" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall13"; + dir = 2 + }, +/area/shuttle/abandoned) +"aaQ" = ( +/obj/machinery/door/airlock/shuttle{ + name = "recovery shuttle interior airlock" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"aaR" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai) +"aaS" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall7" + }, +/area/shuttle/abandoned) +"aaT" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall12" + }, +/area/shuttle/abandoned) +"aaU" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall11"; + dir = 2 + }, +/area/shuttle/abandoned) +"aaV" = ( +/obj/machinery/vending/snack{ + pixel_x = -1; + use_power = 0 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"aaW" = ( +/obj/machinery/vending/cola{ + pixel_x = -1; + use_power = 0 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"aaX" = ( +/obj/machinery/vending/coffee{ + pixel_x = -2; + use_power = 0 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"aaY" = ( +/obj/machinery/vending/cigarette{ + use_power = 0 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"aaZ" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall14" + }, +/area/shuttle/abandoned) +"aba" = ( +/obj/machinery/door/poddoor{ + id = "smindicate"; + name = "outer blast door" + }, +/obj/machinery/button/door{ + id = "smindicate"; + name = "external door control"; + pixel_x = -26; + pixel_y = 0; + req_access_txt = "150" + }, +/obj/docking_port/mobile{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 24; + id = "syndicate"; + name = "syndicate infiltrator"; + port_angle = 0; + roundstart_move = "syndicate_away"; + width = 18 + }, +/obj/docking_port/stationary{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 24; + id = "syndicate_nw"; + name = "northwest of station"; + turf_type = /turf/open/space; + width = 18 + }, +/turf/open/floor/plating, +/area/shuttle/syndicate) +"abb" = ( +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/syndicate) +"abc" = ( +/obj/structure/grille, +/obj/machinery/door/poddoor/shutters{ + id = "syndieshutters"; + name = "blast shutters" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/shuttle/syndicate) +"abd" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0 + }, +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/syndicate) +"abe" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall3" + }, +/area/shuttle/abandoned) +"abf" = ( +/obj/structure/table, +/obj/item/weapon/wrench, +/obj/item/weapon/crowbar, +/obj/item/clothing/suit/apron, +/obj/item/weapon/shovel/spade, +/obj/item/weapon/cultivator, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/weapon/wirecutters, +/obj/item/device/plant_analyzer, +/obj/item/weapon/reagent_containers/glass/bucket, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"abg" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/sink{ + pixel_y = 28 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"abh" = ( +/obj/item/weapon/storage/bag/plants/portaseeder, +/obj/structure/table, +/obj/item/weapon/reagent_containers/spray/plantbgone{ + pixel_x = 13; + pixel_y = 5 + }, +/obj/item/weapon/reagent_containers/glass/bottle/nutrient/ez, +/obj/item/weapon/reagent_containers/glass/bottle/nutrient/ez, +/obj/item/weapon/reagent_containers/glass/bottle/nutrient/ez, +/obj/item/weapon/reagent_containers/glass/bottle/nutrient/rh{ + pixel_x = -2; + pixel_y = 3 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"abi" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"abj" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall1"; + dir = 2 + }, +/area/shuttle/abandoned) +"abk" = ( +/obj/machinery/shower{ + dir = 2; + icon_state = "shower"; + pixel_x = 0; + pixel_y = 16 + }, +/obj/machinery/door/window/westright{ + dir = 2 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/weapon/soap/nanotrasen, +/obj/effect/decal/cleanable/ash{ + desc = "They look like human remains, and have clearly been gnawed at."; + icon = 'icons/effects/blood.dmi'; + icon_state = "remains"; + name = "remains" + }, +/obj/effect/decal/cleanable/blood/gibs/old, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"abl" = ( +/obj/structure/toilet{ + pixel_y = 9 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/greenglow{ + desc = "Looks like something's sprung a leak" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"abm" = ( +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"abn" = ( +/obj/item/device/radio/intercom{ + broadcasting = 1; + freerange = 1; + name = "Common Channel"; + pixel_y = 25 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"abo" = ( +/obj/structure/table, +/obj/machinery/microwave, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"abp" = ( +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"abq" = ( +/obj/structure/table, +/obj/item/device/flashlight/lamp{ + pixel_x = 4; + pixel_y = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"abr" = ( +/obj/machinery/computer/shuttle/syndicate, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"abs" = ( +/obj/structure/table, +/obj/machinery/button/door{ + id = "syndieshutters"; + name = "remote shutter control"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"abt" = ( +/obj/structure/frame/computer, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"abu" = ( +/obj/machinery/hydroponics/constructable, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"abv" = ( +/obj/machinery/biogenerator{ + idle_power_usage = 0; + use_power = 0 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"abw" = ( +/obj/structure/sign/botany, +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"abx" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"aby" = ( +/obj/structure/chair, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"abz" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"abA" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/blood/gibs/limb, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"abB" = ( +/obj/machinery/door/airlock/shuttle{ + name = "bathroom" + }, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"abC" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/structure/mirror{ + pixel_x = 0; + pixel_y = -28 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"abD" = ( +/obj/machinery/door/airlock/shuttle{ + name = "bathroom" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"abE" = ( +/obj/structure/mirror{ + pixel_x = 28; + pixel_y = 0 + }, +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"abF" = ( +/obj/item/weapon/folder/blue, +/obj/structure/table, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/ai) +"abG" = ( +/obj/machinery/camera{ + c_tag = "AI Chamber West"; + network = list("SS13","AISat","RD"); + start_active = 1 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai) +"abH" = ( +/obj/machinery/ai_slipper{ + icon_state = "motion0" + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"abI" = ( +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai) +"abJ" = ( +/obj/structure/table, +/obj/item/device/paicard, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/ai) +"abK" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/donkpockets{ + pixel_x = 3; + pixel_y = 3 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"abL" = ( +/obj/structure/table, +/obj/item/weapon/c4{ + pixel_x = 2; + pixel_y = -5 + }, +/obj/item/weapon/c4{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/c4{ + pixel_x = 2; + pixel_y = -3 + }, +/obj/item/weapon/c4{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/weapon/c4{ + pixel_x = 3; + pixel_y = 3 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"abM" = ( +/obj/machinery/hydroponics/constructable, +/obj/item/seeds/glowshroom, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"abN" = ( +/obj/machinery/door/airlock/shuttle{ + name = "hydroponics" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"abO" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"abP" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/drinks/shaker, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"abQ" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"abR" = ( +/obj/effect/decal/cleanable/blood/gibs/old, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"abS" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"abT" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"abU" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/light/small, +/obj/machinery/flasher{ + id = "AI"; + pixel_y = -24 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai) +"abV" = ( +/obj/machinery/power/terminal, +/obj/machinery/door/window{ + dir = 1; + name = "AI Chamber Power Unit"; + pixel_y = 2; + req_access_txt = "16" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai) +"abW" = ( +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai) +"abX" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8"; + tag = "" + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"abY" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass{ + amount = 10 + }, +/obj/item/device/multitool, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"abZ" = ( +/obj/item/device/radio/intercom{ + desc = "Talk through this. Evilly"; + freerange = 1; + frequency = 1213; + name = "Syndicate Intercom"; + pixel_y = -32; + subspace_transmission = 1; + syndie = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"aca" = ( +/obj/structure/closet/syndicate/personal, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"acb" = ( +/obj/machinery/vending/hydroseeds{ + pixel_x = 2; + use_power = 0 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"acc" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall2"; + dir = 2 + }, +/area/shuttle/abandoned) +"acd" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/condiment/peppermill{ + pixel_x = 3; + pixel_y = 4 + }, +/obj/item/weapon/reagent_containers/food/condiment/saltshaker{ + pixel_x = -3; + pixel_y = 4 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"ace" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"acf" = ( +/obj/machinery/door/airlock/shuttle{ + name = "dormitory" + }, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"acg" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/blood/gibs/limb, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"ach" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/blood/gibs/old, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/ash{ + desc = "They look like human remains, and have clearly been gnawed at."; + icon = 'icons/effects/blood.dmi'; + icon_state = "remains"; + name = "remains" + }, +/obj/item/weapon/gun/energy/laser/retro, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"aci" = ( +/obj/structure/closet/wardrobe/mixed, +/obj/item/clothing/under/rank/centcom_officer{ + desc = "A badge on the arm indicates that it's meant to be worn by Centcom recovery teams. This one seems dusty and clearly hasn't been cleaned in some time."; + name = "\improper dusty old Centcom jumpsuit" + }, +/obj/item/clothing/under/rank/centcom_commander{ + desc = "A badge on the arm indicates that it's meant to be worn by Centcom recovery teams. This one seems dusty and clearly hasn't been cleaned in some time."; + name = "\improper dusty old Centcom jumpsuit" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"acj" = ( +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/ai) +"ack" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/porta_turret/ai{ + dir = 4 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"acl" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai) +"acm" = ( +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai) +"acn" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai) +"aco" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/porta_turret/ai{ + dir = 4 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"acp" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) +"acq" = ( +/obj/machinery/door/window{ + name = "Cockpit"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"acr" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) +"acs" = ( +/obj/machinery/smartfridge{ + use_power = 0 + }, +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"act" = ( +/turf/closed/wall/shuttle{ + icon_state = "swallc4"; + dir = 2 + }, +/area/shuttle/abandoned) +"acu" = ( +/obj/structure/table, +/obj/item/weapon/storage/fancy/donut_box, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"acv" = ( +/obj/machinery/vending/boozeomat{ + icon_deny = "smartfridge"; + icon_state = "smartfridge"; + req_access_txt = "0"; + use_power = 0 + }, +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"acw" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/centcom, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"acx" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/centcom, +/obj/effect/decal/remains/human, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"acy" = ( +/obj/structure/table, +/obj/item/weapon/storage/pill_bottle/dice{ + pixel_y = 3 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"acz" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23; + pixel_y = 0 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/ai) +"acA" = ( +/obj/machinery/door/window{ + base_state = "right"; + dir = 4; + icon_state = "right"; + name = "Secondary AI Core Access"; + req_access_txt = "16" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"acB" = ( +/obj/effect/landmark{ + name = "tripai" + }, +/obj/item/device/radio/intercom{ + freerange = 1; + listening = 0; + name = "Custom Channel"; + pixel_y = 19 + }, +/obj/item/device/radio/intercom{ + freerange = 1; + frequency = 1447; + name = "Private Channel"; + pixel_y = -26 + }, +/obj/item/device/radio/intercom{ + freerange = 1; + name = "Common Channel"; + pixel_x = 27; + pixel_y = -3 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"acC" = ( +/obj/effect/landmark{ + name = "tripai" + }, +/obj/item/device/radio/intercom{ + freerange = 1; + listening = 0; + name = "Custom Channel"; + pixel_y = 20 + }, +/obj/item/device/radio/intercom{ + freerange = 1; + frequency = 1447; + name = "Private Channel"; + pixel_y = -26 + }, +/obj/item/device/radio/intercom{ + name = "Common Channel"; + pixel_x = -25; + pixel_y = -4 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"acD" = ( +/obj/machinery/door/window{ + dir = 8; + name = "Tertiary AI Core Access"; + req_access_txt = "16" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"acE" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/ai) +"acF" = ( +/obj/structure/table, +/obj/item/stack/cable_coil, +/obj/item/weapon/crowbar/red, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"acG" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/zipties{ + pixel_x = 1; + pixel_y = 2 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"acH" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder{ + pixel_y = 6 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"acI" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/sink{ + pixel_y = 28 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"acJ" = ( +/obj/machinery/door/airlock/shuttle{ + name = "kitchen" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"acK" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"acL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai) +"acM" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/ai) +"acN" = ( +/obj/item/device/radio/intercom{ + freerange = 1; + frequency = 1447; + name = "Private Channel"; + pixel_x = 28; + pixel_y = 5 + }, +/obj/item/device/radio/intercom{ + freerange = 1; + listening = 0; + name = "Custom Channel"; + pixel_x = -27; + pixel_y = 4 + }, +/obj/effect/landmark/start{ + name = "AI" + }, +/obj/item/device/radio/intercom{ + freerange = 1; + name = "Common Channel"; + pixel_y = 30 + }, +/obj/machinery/button/door{ + id = "AIBlast"; + name = "Blast Doors Control"; + pixel_x = 0; + pixel_y = 22; + req_access_txt = "28" + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"acO" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/ai) +"acP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai) +"acQ" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/syndicate) +"acR" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"acS" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/weapon/storage/box/monkeycubes{ + pixel_y = 4 + }, +/obj/item/weapon/storage/fancy/egg_box{ + pixel_y = 5 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"acT" = ( +/obj/machinery/processor, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"acU" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass{ + amount = 50; + pixel_x = -2; + pixel_y = 2 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/weapon/wrench, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"acV" = ( +/obj/structure/table, +/obj/item/weapon/storage/belt/utility, +/obj/item/weapon/storage/belt/utility, +/obj/item/device/radio/off, +/obj/item/device/radio/off, +/obj/item/device/radio/off, +/obj/item/device/radio/off, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"acW" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/weapon/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000; + pixel_y = 2 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"acX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai) +"acY" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"acZ" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/power/apc{ + dir = 1; + name = "AI Chamber APC"; + pixel_y = 24 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai) +"ada" = ( +/obj/machinery/holopad, +/obj/machinery/door/window{ + name = "Primary AI Core Access"; + pixel_y = -2; + req_access_txt = "16" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8"; + tag = "" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai) +"adb" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/turretid{ + name = "AI Chamber turret control"; + pixel_x = 5; + pixel_y = 24 + }, +/obj/machinery/flasher{ + id = "AI"; + pixel_x = -6; + pixel_y = 24 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai) +"adc" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"add" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai) +"ade" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/glass/beaker{ + pixel_x = 5 + }, +/obj/item/weapon/reagent_containers/food/condiment/enzyme{ + layer = 5 + }, +/obj/item/weapon/reagent_containers/dropper, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"adf" = ( +/obj/effect/decal/cleanable/egg_smudge, +/obj/effect/decal/cleanable/flour, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"adg" = ( +/obj/structure/kitchenspike, +/obj/effect/decal/cleanable/blood/gibs/old, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"adh" = ( +/obj/machinery/door/airlock/shuttle{ + name = "living quarters" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"adi" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9; + pixel_y = 2 + }, +/obj/item/weapon/storage/toolbox/electrical{ + pixel_x = 1; + pixel_y = 6 + }, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/clothing/head/welding{ + pixel_x = -3; + pixel_y = 5 + }, +/obj/item/clothing/glasses/welding, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"adj" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"adk" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"adl" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-07"; + name = "Photosynthetic Potted plant"; + pixel_y = 10 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/ai) +"adm" = ( +/obj/machinery/ai_slipper{ + icon_state = "motion0" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"adn" = ( +/obj/machinery/camera{ + c_tag = "AI Chamber East"; + dir = 1; + network = list("SS13","AISat","RD"); + start_active = 1 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai) +"ado" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-09"; + name = "Photosynthetic Potted plant"; + pixel_y = 10 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai) +"adp" = ( +/obj/machinery/suit_storage_unit/syndicate, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"adq" = ( +/obj/structure/closet/syndicate/nuclear, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"adr" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/condiment/flour, +/obj/item/weapon/reagent_containers/food/condiment/flour, +/obj/item/weapon/reagent_containers/food/condiment/flour, +/obj/item/weapon/reagent_containers/food/condiment/flour, +/obj/item/weapon/reagent_containers/food/condiment/milk, +/obj/item/weapon/reagent_containers/food/condiment/milk, +/obj/item/weapon/reagent_containers/food/condiment/milk, +/obj/item/weapon/reagent_containers/food/condiment/soymilk, +/obj/item/weapon/reagent_containers/food/condiment/soymilk, +/obj/item/weapon/reagent_containers/food/condiment/sugar, +/obj/item/weapon/reagent_containers/food/condiment/sugar, +/obj/item/weapon/reagent_containers/food/condiment/sugar, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"ads" = ( +/obj/structure/table, +/obj/item/weapon/kitchen/rollingpin, +/obj/item/weapon/kitchen/knife, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"adt" = ( +/obj/structure/table, +/obj/machinery/microwave{ + pixel_x = -3; + pixel_y = 6 + }, +/obj/item/weapon/storage/box/donkpockets, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"adu" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"adv" = ( +/obj/machinery/door/airlock/shuttle{ + name = "E.V.A. equipment" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"adw" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/AIsatextFP{ + name = "AI Satellite Service" + }) +"adx" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai) +"ady" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai) +"adz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai) +"adA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai) +"adB" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/shuttle/syndicate) +"adC" = ( +/obj/structure/table, +/obj/item/device/aicard, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"adD" = ( +/obj/machinery/door/window{ + name = "Ready Room"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"adE" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 1; + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) +"adF" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/frame/machine{ + desc = "A NanoTrasen hypersleep chamber - this one appears broken. There are exposed bolts for easy detachment using a wrench."; + dir = 8; + icon = 'icons/obj/Cryogenic2.dmi'; + icon_state = "sleeper-o"; + name = "broken hypersleep chamber"; + pixel_y = 3 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"adG" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/roller{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/roller{ + pixel_x = 3; + pixel_y = 4 + }, +/obj/item/weapon/reagent_containers/spray/cleaner, +/obj/structure/table, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"adH" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/frame/machine{ + desc = "A NanoTrasen hypersleep chamber - this one appears broken. There are exposed bolts for easy detachment using a wrench."; + dir = 4; + icon = 'icons/obj/Cryogenic2.dmi'; + icon_state = "sleeper-o"; + name = "broken hypersleep chamber"; + pixel_y = 3 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"adI" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"adJ" = ( +/obj/structure/tank_dispenser/oxygen{ + layer = 2.7; + pixel_x = -1; + pixel_y = 2 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"adK" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/AIsatextAS{ + name = "AI Satellite Storage" + }) +"adL" = ( +/obj/machinery/ai_status_display{ + pixel_y = 31 + }, +/obj/machinery/porta_turret/ai{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/AIsatextAS{ + name = "AI Satellite Storage" + }) +"adM" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/power/apc{ + dir = 1; + name = "AI Satellite West Wing APC"; + pixel_y = 25 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "AI Satellite West"; + network = list("SS13","AISat"); + start_active = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/AIsatextAS{ + name = "AI Satellite Storage" + }) +"adN" = ( +/obj/structure/tank_dispenser/oxygen{ + pixel_x = -1; + pixel_y = 2 + }, +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the AI satellite."; + name = "AI Satellite Monitor"; + network = list("AISat"); + pixel_y = 29 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/AIsatextAS{ + name = "AI Satellite Storage" + }) +"adO" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "AIBlast"; + name = "AI Chamber Blast Shutter" + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/ai) +"adP" = ( +/obj/machinery/door/airlock/glass_command{ + name = "AI Chamber"; + req_access_txt = "16" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "AIBlast"; + name = "AI Chamber Blast Shutter" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai) +"adQ" = ( +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the AI satellite."; + name = "AI Satellite Monitor"; + network = list("AISat"); + pixel_y = 29 + }, +/obj/machinery/computer/station_alert, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/AIsatextFP{ + name = "AI Satellite Service" + }) +"adR" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/power/apc{ + dir = 1; + name = "AI Satellite East Wing APC"; + pixel_y = 25 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "AI Satellite East"; + network = list("SS13","AISat"); + start_active = 1 + }, +/obj/item/weapon/paper_bin{ + pixel_x = -2; + pixel_y = 5 + }, +/obj/item/weapon/pen, +/obj/structure/table, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/AIsatextFP{ + name = "AI Satellite Service" + }) +"adS" = ( +/obj/machinery/ai_status_display{ + pixel_y = 31 + }, +/obj/machinery/porta_turret/ai{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/AIsatextFP{ + name = "AI Satellite Service" + }) +"adT" = ( +/obj/machinery/sleeper/syndie{ + dir = 4 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"adU" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/glass/beaker{ + pixel_x = 5; + pixel_y = 2 + }, +/obj/item/weapon/reagent_containers/glass/beaker, +/obj/item/weapon/reagent_containers/dropper, +/obj/item/weapon/reagent_containers/syringe, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"adV" = ( +/obj/structure/frame/machine, +/obj/item/weapon/circuitboard/machine/chem_dispenser, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"adW" = ( +/obj/structure/frame/machine, +/obj/effect/decal/cleanable/oil, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"adX" = ( +/obj/structure/sign/science{ + pixel_y = 0 + }, +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"adY" = ( +/obj/item/clothing/suit/bio_suit, +/obj/item/clothing/suit/bio_suit, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/clothing/gloves/color/latex, +/obj/item/clothing/gloves/color/latex, +/obj/item/clothing/head/bio_hood, +/obj/item/clothing/head/bio_hood, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/obj/structure/table, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"adZ" = ( +/turf/closed/wall/shuttle{ + icon_state = "swallc3" + }, +/area/shuttle/abandoned) +"aea" = ( +/turf/closed/wall, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aeb" = ( +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/obj/structure/table, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/AIsatextAS{ + name = "AI Satellite Storage" + }) +"aec" = ( +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/AIsatextAS{ + name = "AI Satellite Storage" + }) +"aed" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/AIsatextAS{ + name = "AI Satellite Storage" + }) +"aee" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/aisat_interior) +"aef" = ( +/obj/machinery/porta_turret/ai{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"aeg" = ( +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"aeh" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"aei" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/aisat_interior) +"aej" = ( +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/AIsatextFP{ + name = "AI Satellite Service" + }) +"aek" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/chair/office/dark{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/AIsatextFP{ + name = "AI Satellite Service" + }) +"ael" = ( +/obj/machinery/power/port_gen/pacman, +/obj/item/weapon/wrench, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/AIsatextFP{ + name = "AI Satellite Service" + }) +"aem" = ( +/obj/machinery/door/window{ + dir = 4; + name = "EVA Storage"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"aen" = ( +/obj/machinery/door/airlock/external{ + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"aeo" = ( +/obj/structure/table, +/obj/item/weapon/folder/white, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"aep" = ( +/obj/structure/chair/office/light{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"aeq" = ( +/obj/machinery/door/airlock/shuttle{ + name = "laboratory" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"aer" = ( +/obj/effect/decal/cleanable/blood/gibs/old, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/ash{ + desc = "They look like human remains, and have clearly been gnawed at."; + icon = 'icons/effects/blood.dmi'; + icon_state = "remains"; + name = "remains" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"aes" = ( +/obj/machinery/door/airlock/shuttle{ + name = "recovery shuttle interior airlock" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"aet" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/sign/vacuum{ + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"aeu" = ( +/obj/docking_port/mobile{ + dheight = 0; + dir = 8; + dwidth = 11; + height = 15; + id = "whiteship"; + name = "NT Recovery White-Ship"; + roundstart_move = "whiteship_away"; + port_angle = 180; + width = 27 + }, +/obj/machinery/door/airlock/shuttle{ + name = "recovery shuttle external airlock" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/docking_port/stationary{ + dir = 8; + dwidth = 11; + height = 15; + id = "whiteship_home"; + name = "SS13: Auxiliary Dock, Station-Port"; + width = 27 + }, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"aev" = ( +/obj/machinery/door/airlock/external, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aew" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aex" = ( +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aey" = ( +/obj/item/stack/sheet/plasteel{ + amount = 10 + }, +/obj/item/clothing/head/welding, +/obj/structure/table, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/AIsatextAS{ + name = "AI Satellite Storage" + }) +"aez" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/AIsatextAS{ + name = "AI Satellite Storage" + }) +"aeA" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/holopad, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/AIsatextAS{ + name = "AI Satellite Storage" + }) +"aeB" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/AIsatextAS{ + name = "AI Satellite Storage" + }) +"aeC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/AIsatextFP{ + name = "AI Satellite Service" + }) +"aeD" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/turretid{ + control_area = "AI Satellite Storage"; + enabled = 1; + name = "Storage Turret Control"; + pixel_x = -28; + pixel_y = 27; + req_access = list(29) + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/aisat_interior) +"aeE" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/aisat_interior) +"aeF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/holopad, +/obj/effect/landmark/start{ + name = "Cyborg" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/aisat_interior) +"aeG" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/aisat_interior) +"aeH" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/turretid{ + control_area = "AI Satellite Service"; + enabled = 1; + icon_state = "control_standby"; + name = "Service Bay Turret Control"; + pixel_x = 27; + pixel_y = 27; + req_access = list(65) + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/aisat_interior) +"aeI" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/hatch{ + name = "MiniSat Storage"; + req_one_access_txt = "65" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/AIsatextAS{ + name = "AI Satellite Storage" + }) +"aeJ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/AIsatextFP{ + name = "AI Satellite Service" + }) +"aeK" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/AIsatextFP{ + name = "AI Satellite Service" + }) +"aeL" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/AIsatextFP{ + name = "AI Satellite Service" + }) +"aeM" = ( +/obj/machinery/cell_charger, +/obj/item/weapon/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000 + }, +/obj/structure/table, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/AIsatextFP{ + name = "AI Satellite Service" + }) +"aeN" = ( +/obj/machinery/door/window{ + base_state = "right"; + dir = 4; + icon_state = "right"; + name = "EVA Storage"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"aeO" = ( +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"aeP" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"aeQ" = ( +/obj/structure/table, +/obj/item/weapon/hand_labeler, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"aeR" = ( +/obj/structure/frame/machine, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"aeS" = ( +/obj/structure/frame/machine, +/obj/item/weapon/circuitboard/machine/autolathe, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"aeT" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/blood/gibs/limb, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"aeU" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/blood/gibs/old, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/ash{ + desc = "They look like human remains, and have clearly been gnawed at."; + icon = 'icons/effects/blood.dmi'; + icon_state = "remains"; + name = "remains" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"aeV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/closed/wall, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aeW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/external, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aeX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aeY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/closed/wall, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aeZ" = ( +/obj/structure/rack, +/obj/item/weapon/storage/toolbox/electrical{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/storage/toolbox/mechanical, +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -29 + }, +/obj/item/device/multitool, +/obj/machinery/light/small, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/darkblue/corner, +/area/ai_monitored/turret_protected/AIsatextAS{ + name = "AI Satellite Storage" + }) +"afa" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/darkblue/side, +/area/ai_monitored/turret_protected/AIsatextAS{ + name = "AI Satellite Storage" + }) +"afb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/weapon/storage/belt/utility, +/obj/item/device/radio/off, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/structure/table, +/turf/open/floor/plasteel/darkblue/corner{ + dir = 8 + }, +/area/ai_monitored/turret_protected/AIsatextAS{ + name = "AI Satellite Storage" + }) +"afc" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/door/airlock/hatch{ + name = "MiniSat Service Bay"; + req_one_access_txt = "65" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/AIsatextFP{ + name = "AI Satellite Service" + }) +"afd" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/machinery/power/apc{ + dir = 8; + name = "AI Satellite Central APC"; + pixel_x = -25 + }, +/obj/structure/cable, +/obj/machinery/camera/motion{ + c_tag = "MiniSat Foyer"; + dir = 4; + network = list("MiniSat") + }, +/turf/open/floor/plasteel/darkblue/corner{ + dir = 8 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"afe" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/aisat_interior) +"aff" = ( +/mob/living/simple_animal/bot/secbot/pingsky, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/aisat_interior) +"afg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/aisat_interior) +"afh" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/darkblue/corner, +/area/ai_monitored/turret_protected/aisat_interior) +"afi" = ( +/obj/machinery/recharge_station, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/AIsatextFP{ + name = "AI Satellite Service" + }) +"afj" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/recharge_station, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/AIsatextFP{ + name = "AI Satellite Service" + }) +"afk" = ( +/obj/machinery/recharge_station, +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -29 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light/small, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/AIsatextFP{ + name = "AI Satellite Service" + }) +"afl" = ( +/obj/structure/tank_dispenser/oxygen, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"afm" = ( +/obj/item/device/radio/intercom{ + desc = "Talk through this. Evilly"; + freerange = 1; + frequency = 1213; + name = "Syndicate Intercom"; + pixel_x = -32; + subspace_transmission = 1; + syndie = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"afn" = ( +/obj/structure/table, +/obj/item/stack/medical/ointment, +/obj/item/stack/medical/bruise_pack, +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"afo" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/suit/armor/vest, +/obj/item/clothing/suit/armor/vest, +/obj/structure/table, +/obj/item/clothing/head/helmet/swat/nanotrasen, +/obj/item/clothing/head/helmet/swat/nanotrasen, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"afp" = ( +/obj/machinery/door/airlock/shuttle{ + name = "cargo bay" + }, +/turf/open/floor/plasteel/delivery{ + dir = 1 + }, +/area/shuttle/abandoned) +"afq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"afr" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"afs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aft" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"afu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"afv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"afw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/robot_debris{ + icon_state = "gib7" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"afx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"afy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/oil, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"afz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"afA" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"afB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/AIsatextAS{ + name = "AI Satellite Storage" + }) +"afC" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/hatch{ + name = "MiniSat Teleporter"; + req_one_access_txt = "65" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/AIsatextAS{ + name = "AI Satellite Storage" + }) +"afD" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -27 + }, +/turf/open/floor/plasteel/darkblue/side{ + dir = 10 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"afE" = ( +/obj/machinery/light/small, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/darkblue/side, +/area/ai_monitored/turret_protected/aisat_interior) +"afF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkblue/side, +/area/ai_monitored/turret_protected/aisat_interior) +"afG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light/small, +/obj/machinery/light_switch{ + pixel_y = -25 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkblue/side, +/area/ai_monitored/turret_protected/aisat_interior) +"afH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkblue/side{ + dir = 6 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"afI" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/AIsatextFP{ + name = "AI Satellite Service" + }) +"afJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/AIsatextFP{ + name = "AI Satellite Service" + }) +"afK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/AIsatextFP{ + name = "AI Satellite Service" + }) +"afL" = ( +/obj/effect/landmark{ + name = "carpspawn" + }, +/turf/open/space, +/area/space) +"afM" = ( +/obj/structure/bed/roller, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"afN" = ( +/obj/structure/sign/bluecross_2, +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/syndicate) +"afO" = ( +/obj/machinery/door/window{ + dir = 4; + name = "Infirmary"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"afP" = ( +/obj/machinery/door/window/westright{ + name = "Tool Storage"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"afQ" = ( +/obj/structure/table, +/obj/item/weapon/stock_parts/cell/high{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/stock_parts/cell/high, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"afR" = ( +/obj/structure/table, +/obj/item/weapon/screwdriver{ + pixel_y = 9 + }, +/obj/item/device/assembly/voice{ + pixel_y = 3 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"afS" = ( +/obj/structure/table, +/obj/item/weapon/wrench, +/obj/item/device/assembly/infra, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"afT" = ( +/obj/structure/table, +/obj/item/device/assembly/signaler, +/obj/item/device/assembly/signaler, +/obj/item/device/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/device/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"afU" = ( +/obj/structure/table, +/obj/item/weapon/weldingtool/largetank{ + pixel_y = 3 + }, +/obj/item/device/multitool, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"afV" = ( +/obj/structure/table, +/obj/item/weapon/defibrillator, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"afW" = ( +/obj/machinery/vending/wallmed{ + name = "Emergency NanoMed"; + pixel_x = 0; + pixel_y = 28; + req_access_txt = "0"; + use_power = 0 + }, +/obj/machinery/iv_drip{ + density = 0; + pixel_x = 0 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"afX" = ( +/obj/machinery/sleeper{ + dir = 2; + use_power = 0 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"afY" = ( +/obj/structure/sign/bluecross_2, +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"afZ" = ( +/obj/item/weapon/storage/toolbox/emergency{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/storage/toolbox/emergency, +/obj/item/weapon/storage/toolbox/emergency{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/table, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"aga" = ( +/obj/structure/frame/machine, +/obj/item/weapon/circuitboard/machine/cyborgrecharger, +/obj/effect/decal/cleanable/oil, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/bot, +/area/shuttle/abandoned) +"agb" = ( +/obj/effect/decal/cleanable/oil, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/delivery{ + dir = 1 + }, +/area/shuttle/abandoned) +"agc" = ( +/obj/structure/closet/crate/medical{ + name = "medical crate" + }, +/obj/item/weapon/storage/firstaid/o2{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/roller{ + pixel_y = 4 + }, +/obj/item/device/healthanalyzer, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plasteel/bot, +/area/shuttle/abandoned) +"agd" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"age" = ( +/turf/closed/wall/r_wall, +/area/toxins/xenobiology) +"agf" = ( +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 1; + name = "AI Satellite Teleporter APC"; + pixel_y = 29 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/camera{ + c_tag = "MiniSat Teleporter"; + dir = 4; + network = list("MiniSat"); + start_active = 1 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/AIsatextAS{ + name = "AI Satellite Storage" + }) +"agg" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/AIsatextAS{ + name = "AI Satellite Storage" + }) +"agh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/AIsatextAS{ + name = "AI Satellite Storage" + }) +"agi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/aisat_interior) +"agj" = ( +/obj/machinery/door/airlock/hatch{ + name = "MiniSat Antechamber"; + req_one_access_txt = "65" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/aisat_interior) +"agk" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/ai_monitored/turret_protected/aisat_interior) +"agl" = ( +/obj/machinery/door/window{ + base_state = "right"; + dir = 4; + icon_state = "right"; + name = "Infirmary"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"agm" = ( +/obj/machinery/door/window{ + dir = 8; + name = "Tool Storage"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"agn" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/syndicate, +/obj/item/weapon/crowbar/red, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"ago" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{ + pixel_x = 6; + pixel_y = 0 + }, +/obj/item/weapon/reagent_containers/glass/bottle/charcoal{ + pixel_x = -3 + }, +/obj/item/weapon/reagent_containers/syringe, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"agp" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/ash, +/obj/effect/decal/cleanable/xenoblood, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"agq" = ( +/obj/machinery/door/airlock/shuttle{ + name = "medbay" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"agr" = ( +/obj/machinery/door/airlock/shuttle{ + name = "cargo bay" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/delivery{ + dir = 1 + }, +/area/shuttle/abandoned) +"ags" = ( +/turf/open/floor/plasteel/delivery{ + dir = 1 + }, +/area/shuttle/abandoned) +"agt" = ( +/obj/structure/closet/crate{ + name = "spare equipment crate" + }, +/obj/item/weapon/grenade/chem_grenade/metalfoam, +/obj/item/weapon/relic, +/obj/item/device/t_scanner, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/bot, +/area/shuttle/abandoned) +"agu" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"agv" = ( +/turf/open/floor/engine, +/area/toxins/xenobiology) +"agw" = ( +/obj/machinery/camera{ + c_tag = "Xenobiology Test Chamber"; + network = list("Xeno","RD") + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"agx" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23; + pixel_y = 0 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/AIsatextAS{ + name = "AI Satellite Storage" + }) +"agy" = ( +/obj/machinery/bluespace_beacon, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/AIsatextAS{ + name = "AI Satellite Storage" + }) +"agz" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = 29 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/AIsatextAS{ + name = "AI Satellite Storage" + }) +"agA" = ( +/obj/machinery/turretid{ + control_area = null; + enabled = 1; + name = "Storage Turret Control"; + pixel_x = 0; + pixel_y = 24; + req_access = list(29) + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/AIsatextAS{ + name = "AI Satellite Storage" + }) +"agB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = 23 + }, +/turf/open/floor/plating/warnplate{ + dir = 9 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"agC" = ( +/obj/machinery/ai_status_display{ + pixel_y = 31 + }, +/obj/machinery/camera{ + c_tag = "AI Satellite Foyer"; + network = list("SS13","AISat"); + pixel_x = 22; + start_active = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"agD" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat_interior) +"agE" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/machinery/turretid{ + control_area = null; + name = "Antechamber Turret Control"; + pixel_y = 27; + req_access = list(65) + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating/warnplate{ + dir = 5 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"agF" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat_interior) +"agG" = ( +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/space) +"agH" = ( +/obj/machinery/recharge_station, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"agI" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/table, +/obj/item/bodypart/r_arm/robot, +/obj/item/bodypart/l_arm/robot, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"agJ" = ( +/obj/machinery/door/window{ + dir = 1; + name = "Surgery"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"agK" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/latex, +/obj/item/clothing/mask/surgical, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/clothing/suit/apron/surgical, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"agL" = ( +/obj/effect/decal/cleanable/xenoblood, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/ash{ + desc = "A pile of remains that look vaguely humanoid. The skull is abnormally elongated, and there are burns through some of the other bones."; + icon = 'icons/effects/blood.dmi'; + icon_state = "remainsxeno"; + name = "remains" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"agM" = ( +/obj/structure/closet/crate/freezer, +/obj/item/weapon/reagent_containers/blood/empty{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/weapon/reagent_containers/blood/OMinus, +/obj/item/weapon/reagent_containers/blood/random, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/xenoblood, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"agN" = ( +/obj/machinery/door/airlock/shuttle{ + name = "bridge" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"agO" = ( +/obj/structure/closet/emcloset, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/bot, +/area/shuttle/abandoned) +"agP" = ( +/obj/item/weapon/storage/box/lights/mixed, +/obj/item/weapon/cigbutt, +/obj/structure/closet/crate{ + icon_state = "crateopen"; + name = "spare equipment crate"; + opened = 1 + }, +/obj/item/weapon/tank/internals/oxygen/red, +/obj/item/weapon/tank/internals/air, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/bot, +/area/shuttle/abandoned) +"agQ" = ( +/obj/effect/decal/cleanable/oil, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"agR" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"agS" = ( +/obj/machinery/computer/teleporter, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/ai_monitored/turret_protected/AIsatextAS{ + name = "AI Satellite Storage" + }) +"agT" = ( +/obj/machinery/teleport/station, +/obj/machinery/light/small, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/ai_monitored/turret_protected/AIsatextAS{ + name = "AI Satellite Storage" + }) +"agU" = ( +/obj/machinery/teleport/hub, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/ai_monitored/turret_protected/AIsatextAS{ + name = "AI Satellite Storage" + }) +"agV" = ( +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"agW" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat_interior) +"agX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/holopad, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat_interior) +"agY" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat_interior) +"agZ" = ( +/obj/machinery/door/airlock/external{ + name = "MiniSat External Access"; + req_access = null; + req_access_txt = "65;13" + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat_interior) +"aha" = ( +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat_interior) +"ahb" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"ahc" = ( +/obj/structure/table, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/firstaid/brute, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = -3; + pixel_y = -3 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"ahd" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/firstaid/fire, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = -3; + pixel_y = -3 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"ahe" = ( +/obj/structure/table, +/obj/item/device/sbeacondrop/bomb{ + pixel_y = 5 + }, +/obj/item/device/sbeacondrop/bomb, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"ahf" = ( +/obj/structure/table, +/obj/item/weapon/grenade/syndieminibomb{ + pixel_x = 4; + pixel_y = 2 + }, +/obj/item/weapon/grenade/syndieminibomb{ + pixel_x = -1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"ahg" = ( +/obj/docking_port/stationary{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 24; + id = "syndicate_ne"; + name = "northeast of station"; + width = 18 + }, +/turf/open/space, +/area/space) +"ahh" = ( +/obj/structure/table, +/obj/item/weapon/storage/backpack/dufflebag/med{ + contents = newlist(/obj/item/weapon/scalpel,/obj/item/weapon/hemostat,/obj/item/weapon/retractor,/obj/item/weapon/cautery,/obj/item/weapon/circular_saw,/obj/item/weapon/surgicaldrill,/obj/item/weapon/razor); + desc = "A large dufflebag for holding extra medical supplies - this one seems to be designed for holding surgical tools."; + name = "surgical dufflebag"; + pixel_y = 4 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"ahi" = ( +/obj/effect/decal/cleanable/xenoblood, +/obj/effect/decal/cleanable/xenoblood/xgibs/limb, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"ahj" = ( +/obj/structure/table/optable, +/obj/item/weapon/surgical_drapes, +/obj/item/weapon/storage/firstaid/regular, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"ahk" = ( +/obj/structure/frame/computer, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"ahl" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/chair/office/light{ + dir = 8 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"ahm" = ( +/obj/structure/chair/office/light, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"ahn" = ( +/obj/structure/frame/computer, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"aho" = ( +/obj/structure/closet/firecloset/full, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/bot, +/area/shuttle/abandoned) +"ahp" = ( +/obj/effect/decal/cleanable/robot_debris/old, +/obj/effect/decal/cleanable/oil, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/delivery{ + dir = 1 + }, +/area/shuttle/abandoned) +"ahq" = ( +/obj/structure/closet/crate{ + name = "emergency supplies crate" + }, +/obj/item/weapon/storage/toolbox/emergency, +/obj/item/weapon/storage/toolbox/emergency, +/obj/item/device/flashlight/flare{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/device/flashlight/flare{ + pixel_x = -6; + pixel_y = -2 + }, +/obj/item/weapon/crowbar, +/obj/item/weapon/wrench, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/weapon/extinguisher, +/obj/item/weapon/extinguisher, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/bot, +/area/shuttle/abandoned) +"ahr" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/crew_quarters/hor) +"ahs" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/grille, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aht" = ( +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"ahu" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/item/stack/rods, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"ahv" = ( +/obj/structure/transit_tube{ + icon_state = "D-SE" + }, +/obj/structure/window/reinforced, +/turf/open/floor/plating/warnplate{ + dir = 10 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"ahw" = ( +/obj/structure/transit_tube{ + icon_state = "E-SW" + }, +/obj/structure/window/reinforced, +/turf/open/floor/plating/warnplate, +/area/ai_monitored/turret_protected/aisat_interior) +"ahx" = ( +/obj/structure/transit_tube/station{ + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating/warnplate, +/area/ai_monitored/turret_protected/aisat_interior) +"ahy" = ( +/obj/structure/transit_tube{ + icon_state = "W-SE" + }, +/obj/structure/window/reinforced, +/turf/open/floor/plating/warnplate{ + dir = 6 + }, +/area/ai_monitored/turret_protected/aisat_interior) +"ahz" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/transit_tube{ + icon_state = "D-SW" + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat_interior) +"ahA" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK" + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat_interior) +"ahB" = ( +/obj/structure/table, +/obj/item/weapon/surgicaldrill, +/obj/item/weapon/circular_saw, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"ahC" = ( +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/obj/structure/mirror{ + pixel_x = 30 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"ahD" = ( +/obj/machinery/nuclearbomb/syndicate, +/obj/machinery/door/window{ + dir = 1; + name = "Secure Storage"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"ahE" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s5"; + dir = 2 + }, +/area/shuttle/abandoned) +"ahF" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/device/megaphone, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"ahG" = ( +/obj/structure/table, +/obj/item/device/camera, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"ahH" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s9"; + dir = 2 + }, +/area/shuttle/abandoned) +"ahI" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/mob/living/simple_animal/mouse/gray, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"ahJ" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"ahK" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"ahL" = ( +/obj/structure/disposaloutlet{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"ahM" = ( +/obj/structure/transit_tube{ + icon_state = "D-SE" + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"ahN" = ( +/obj/structure/transit_tube{ + icon_state = "NE-SW" + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"ahO" = ( +/obj/structure/transit_tube{ + icon_state = "D-NW" + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"ahP" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating/airless, +/area/space) +"ahQ" = ( +/obj/structure/transit_tube{ + icon_state = "D-NE" + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"ahR" = ( +/obj/structure/transit_tube{ + icon_state = "S-NW" + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"ahS" = ( +/obj/machinery/telecomms/allinone{ + intercept = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"ahT" = ( +/obj/structure/table, +/obj/item/weapon/cautery, +/obj/item/weapon/scalpel, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"ahU" = ( +/obj/structure/table/optable, +/obj/item/weapon/surgical_drapes, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"ahV" = ( +/obj/structure/table, +/obj/item/weapon/retractor, +/obj/item/weapon/hemostat, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"ahW" = ( +/obj/structure/shuttle/engine/heater, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating, +/area/shuttle/syndicate) +"ahX" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"ahY" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"ahZ" = ( +/obj/structure/rack, +/obj/item/clothing/suit/space/syndicate/black/red, +/obj/item/clothing/head/helmet/space/syndicate/black/red, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"aia" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/device/mass_spectrometer, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"aib" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/blood/gibs/old, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/clothing/head/centhat{ + desc = "There's a gouge through the top where something has clawed clean through it. Whoever was wearing it probably doesn't need a hat any more."; + name = "\improper damaged CentCom hat" + }, +/obj/effect/decal/cleanable/ash{ + desc = "They look like human remains, and have clearly been gnawed at."; + icon = 'icons/effects/blood.dmi'; + icon_state = "remains"; + name = "remains" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"aic" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/chair/comfy/black, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"aid" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/weapon/storage/photo_album, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"aie" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aif" = ( +/obj/item/weapon/shard{ + icon_state = "medium" + }, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aig" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE" + }, +/turf/closed/wall/r_wall, +/area/toxins/xenobiology) +"aih" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"aii" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/oil, +/obj/item/trash/cheesie, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aij" = ( +/obj/structure/transit_tube{ + icon_state = "E-SW" + }, +/turf/open/space, +/area/space) +"aik" = ( +/obj/structure/transit_tube, +/turf/open/space, +/area/space) +"ail" = ( +/obj/structure/transit_tube{ + icon_state = "E-W-Pass" + }, +/turf/open/space, +/area/space) +"aim" = ( +/obj/structure/transit_tube, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"ain" = ( +/obj/structure/transit_tube{ + icon_state = "W-SE" + }, +/turf/open/space, +/area/space) +"aio" = ( +/obj/structure/transit_tube{ + icon_state = "D-SW" + }, +/turf/open/space, +/area/space) +"aip" = ( +/obj/structure/transit_tube{ + icon_state = "NE-SW" + }, +/turf/open/space, +/area/space) +"aiq" = ( +/obj/structure/transit_tube{ + icon_state = "D-NW" + }, +/turf/open/space, +/area/space) +"air" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating/airless, +/area/space) +"ais" = ( +/obj/structure/transit_tube{ + icon_state = "N-S" + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"ait" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_l" + }, +/turf/open/floor/plating, +/area/shuttle/syndicate) +"aiu" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/open/floor/plating, +/area/shuttle/syndicate) +"aiv" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_r" + }, +/turf/open/floor/plating, +/area/shuttle/syndicate) +"aiw" = ( +/obj/structure/table, +/obj/item/device/radio/off{ + pixel_y = 6 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"aix" = ( +/obj/item/weapon/phone{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/cigbutt/cigarbutt{ + pixel_x = 5; + pixel_y = -1 + }, +/obj/structure/table, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"aiy" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/computer/shuttle/white_ship, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"aiz" = ( +/obj/structure/table, +/obj/item/weapon/folder/blue, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/device/gps{ + gpstag = "NTREC1"; + pixel_x = -1; + pixel_y = 2 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"aiA" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin{ + pixel_x = -1; + pixel_y = 6 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"aiB" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aiC" = ( +/obj/item/weapon/cigbutt, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aiD" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/shieldwallgen{ + active = 1; + anchored = 1; + power = 1; + use_power = 1 + }, +/obj/machinery/door/window/southleft{ + name = "Shield Guard"; + req_access_txt = "30" + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"aiE" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/door/poddoor/preopen{ + id = "misclab"; + name = "test chamber blast door" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"aiF" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/grille, +/obj/machinery/door/poddoor/preopen{ + id = "misclab"; + name = "test chamber blast door" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"aiG" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/door/poddoor/preopen{ + id = "misclab"; + name = "test chamber blast door" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"aiH" = ( +/obj/machinery/door/window/southleft{ + dir = 1; + name = "Test Chamber"; + req_access_txt = "55" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "misclab"; + name = "test chamber blast door" + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"aiI" = ( +/obj/structure/grille, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/door/poddoor/preopen{ + id = "misclab"; + name = "test chamber blast door" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"aiJ" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/grille, +/obj/machinery/door/poddoor/preopen{ + id = "misclab"; + name = "test chamber blast door" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"aiK" = ( +/obj/structure/grille, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "misclab"; + name = "test chamber blast door" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"aiL" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/shieldwallgen{ + active = 1; + anchored = 1; + power = 1; + use_power = 1 + }, +/obj/machinery/door/window/southleft{ + base_state = "right"; + icon_state = "right"; + name = "Shield Guard"; + req_access_txt = "30" + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"aiM" = ( +/obj/structure/transit_tube{ + icon_state = "S-NE" + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"aiN" = ( +/obj/structure/transit_tube{ + icon_state = "D-NW" + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"aiO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating/airless, +/area/space) +"aiP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space) +"aiQ" = ( +/obj/structure/transit_tube{ + icon_state = "D-SE" + }, +/obj/structure/transit_tube{ + icon_state = "D-NE" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space) +"aiR" = ( +/obj/structure/transit_tube{ + icon_state = "E-SW-NW" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space) +"aiS" = ( +/obj/structure/transit_tube, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space) +"aiT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/transit_tube{ + icon_state = "E-W-Pass" + }, +/turf/open/floor/plating/airless, +/area/space) +"aiU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/transit_tube, +/turf/open/floor/plating/airless, +/area/space) +"aiV" = ( +/obj/structure/transit_tube{ + icon_state = "W-NE-SE" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space) +"aiW" = ( +/obj/structure/transit_tube{ + icon_state = "D-SW" + }, +/obj/structure/transit_tube{ + icon_state = "D-NW" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space) +"aiX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plating/airless, +/area/space) +"aiY" = ( +/obj/structure/transit_tube{ + icon_state = "N-SW" + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"aiZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/closed/wall, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aja" = ( +/obj/structure/disposalpipe/sortjunction{ + dir = 2; + icon_state = "pipe-j2s"; + sortType = 12 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"ajb" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"ajc" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/toxins/xenobiology) +"ajd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/stock_parts/manipulator, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aje" = ( +/obj/structure/table/reinforced, +/obj/machinery/computer/security/telescreen{ + name = "Test Chamber Moniter"; + network = list("Xeno"); + pixel_y = 2 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning, +/area/toxins/xenobiology) +"ajf" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/closet/l3closet/scientist, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/toxins/xenobiology) +"ajg" = ( +/obj/machinery/door/window/southleft{ + name = "Test Chamber"; + req_access_txt = "55" + }, +/turf/open/floor/plasteel/warning, +/area/toxins/xenobiology) +"ajh" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/closet/l3closet/scientist, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/toxins/xenobiology) +"aji" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/warning, +/area/toxins/xenobiology) +"ajj" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/obj/item/clothing/glasses/science, +/obj/item/clothing/glasses/science, +/turf/open/floor/plasteel/warning, +/area/toxins/xenobiology) +"ajk" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning, +/area/toxins/xenobiology) +"ajl" = ( +/obj/structure/transit_tube{ + icon_state = "D-SE" + }, +/turf/open/space, +/area/space) +"ajm" = ( +/obj/structure/transit_tube{ + icon_state = "D-NE" + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"ajn" = ( +/obj/structure/transit_tube{ + icon_state = "E-NW" + }, +/turf/open/space, +/area/space) +"ajo" = ( +/obj/structure/transit_tube{ + icon_state = "W-NE" + }, +/turf/open/space, +/area/space) +"ajp" = ( +/obj/structure/disposaloutlet{ + dir = 1 + }, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plating/airless, +/area/space) +"ajq" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"ajr" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"ajs" = ( +/obj/machinery/holopad, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/obj/effect/spawner/lootdrop/grille_or_trash{ + loot = list(/obj/effect/decal/remains/xeno = 49, /obj/structure/alien/egg = 1); + name = "2% chance xeno egg spawner" + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"ajt" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/disposalpipe/junction{ + dir = 8; + icon_state = "pipe-j2" + }, +/turf/open/floor/plasteel/whitebot{ + dir = 1 + }, +/area/toxins/xenobiology) +"aju" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"ajv" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/item/weapon/wrench, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning, +/area/toxins/xenobiology) +"ajw" = ( +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "misclab"; + name = "Test Chamber Blast Doors"; + pixel_x = 0; + pixel_y = -4; + req_access_txt = "55" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning, +/area/toxins/xenobiology) +"ajx" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"ajy" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"ajz" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"ajA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/closed/wall, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"ajB" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/space, +/area/space) +"ajC" = ( +/obj/machinery/door/poddoor{ + id = "toxinsdriver"; + name = "toxins launcher bay door" + }, +/turf/open/floor/plating, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"ajD" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/space, +/area/space) +"ajE" = ( +/obj/structure/window/reinforced, +/obj/structure/transit_tube{ + icon_state = "N-SE" + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"ajF" = ( +/obj/structure/window/reinforced, +/obj/structure/transit_tube{ + icon_state = "D-SW" + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"ajG" = ( +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating/airless, +/area/space) +"ajH" = ( +/obj/structure/window/reinforced, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"ajI" = ( +/obj/structure/window/reinforced, +/obj/structure/transit_tube{ + icon_state = "D-SE" + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"ajJ" = ( +/obj/structure/window/reinforced, +/obj/structure/transit_tube{ + icon_state = "NE-SW" + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"ajK" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/airless, +/area/space) +"ajL" = ( +/obj/structure/disposaloutlet{ + dir = 1 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space) +"ajM" = ( +/turf/open/floor/plating/airless, +/area/space) +"ajN" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"ajO" = ( +/obj/machinery/space_heater, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"ajP" = ( +/obj/machinery/disposal/bin, +/obj/structure/sign/deathsposal{ + pixel_y = -32 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"ajQ" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -29 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"ajR" = ( +/obj/structure/cable, +/obj/machinery/power/apc{ + cell_type = 15000; + name = "Xenobiology APC"; + pixel_y = -24 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"ajS" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"ajT" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"ajU" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"ajV" = ( +/obj/machinery/light, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"ajW" = ( +/obj/structure/rack, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/suit/hooded/wintercoat, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"ajX" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/item/weapon/shard{ + icon_state = "small" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"ajY" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"ajZ" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"aka" = ( +/turf/open/floor/plating, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"akb" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"akc" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/transit_tube{ + icon_state = "D-NE" + }, +/turf/open/floor/plating, +/area/medical/research{ + name = "Research Division" + }) +"akd" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/transit_tube{ + icon_state = "E-NW" + }, +/turf/open/floor/plating/warnplate{ + dir = 9 + }, +/area/medical/research{ + name = "Research Division" + }) +"ake" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/transit_tube/station, +/obj/structure/transit_tube_pod{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"akf" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/transit_tube, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"akg" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/transit_tube{ + icon_state = "W-NE" + }, +/turf/open/floor/plating/warnplate{ + dir = 5 + }, +/area/medical/research{ + name = "Research Division" + }) +"akh" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/transit_tube{ + icon_state = "D-NW" + }, +/turf/open/floor/plating, +/area/medical/research{ + name = "Research Division" + }) +"aki" = ( +/obj/structure/lattice, +/obj/effect/landmark{ + name = "carpspawn" + }, +/turf/open/space, +/area/space) +"akj" = ( +/obj/structure/sign/fire{ + pixel_x = 0; + pixel_y = 0 + }, +/turf/closed/wall/r_wall, +/area/maintenance/incinerator) +"akk" = ( +/obj/machinery/door/poddoor{ + id = "turbinevent"; + name = "Turbine Vent" + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/incinerator) +"akl" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/item/weapon/stock_parts/micro_laser, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"akm" = ( +/turf/closed/wall/r_wall, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"akn" = ( +/turf/closed/wall, +/area/toxins/xenobiology) +"ako" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Xenobiology North"; + dir = 4; + network = list("SS13","RD") + }, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/toxins/xenobiology) +"akp" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/toxins/xenobiology) +"akq" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/toxins/xenobiology) +"akr" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/medical/research{ + name = "Research Division" + }) +"aks" = ( +/obj/structure/chair/stool, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"akt" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/medical/research{ + name = "Research Division" + }) +"aku" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plating, +/area/medical/research{ + name = "Research Division" + }) +"akv" = ( +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"akw" = ( +/turf/closed/wall/r_wall, +/area/maintenance/incinerator) +"akx" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/maintenance{ + name = "Xenobiology Maintenance"; + req_access_txt = "55" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"aky" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on, +/turf/open/floor/plating/airless, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"akz" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/sheet/cardboard, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"akA" = ( +/obj/structure/girder, +/turf/open/floor/plating/airless, +/area/toxins/xenobiology) +"akB" = ( +/turf/open/floor/bluegrid{ + name = "Killroom Floor"; + initial_gas_mix = "TEMP=2.7" + }, +/area/toxins/xenobiology) +"akC" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"akD" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = -31 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"akE" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"akF" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"akG" = ( +/obj/structure/window/reinforced, +/obj/structure/table/reinforced, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/button/door{ + id = "xenobio8"; + name = "Containment Blast Doors"; + pixel_x = 0; + pixel_y = 4; + req_access_txt = "55" + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/toxins/xenobiology) +"akH" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio8"; + name = "containment blast door" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"akI" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"akJ" = ( +/obj/machinery/mass_driver{ + dir = 1; + id = "toxinsdriver" + }, +/obj/machinery/door/window/southleft{ + name = "Mass Driver Door"; + req_access_txt = "7" + }, +/turf/open/floor/plating, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"akK" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/weapon/folder/white, +/obj/item/weapon/pen, +/obj/machinery/light/small, +/obj/machinery/camera{ + c_tag = "Research Transit Tube"; + dir = 1 + }, +/obj/structure/table, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"akL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/medical/research{ + name = "Research Division" + }) +"akM" = ( +/turf/open/floor/plating, +/area/medical/research{ + name = "Research Division" + }) +"akN" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -26 + }, +/obj/structure/rack, +/obj/item/clothing/mask/gas, +/obj/item/weapon/wrench, +/obj/item/weapon/crowbar, +/obj/item/device/flashlight{ + pixel_x = 1; + pixel_y = 5 + }, +/obj/machinery/light/small, +/obj/machinery/camera{ + c_tag = "Research Transit"; + dir = 1 + }, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"akO" = ( +/obj/machinery/power/turbine{ + dir = 1; + luminosity = 2 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/incinerator) +"akP" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"akQ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"akR" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"akS" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"akT" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research{ + name = "Kill Chamber"; + req_access_txt = "55" + }, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"akU" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/landmark/start{ + name = "Scientist" + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"akV" = ( +/obj/machinery/door/window/northleft{ + base_state = "right"; + dir = 8; + icon_state = "right"; + name = "Containment Pen"; + req_access_txt = "55" + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/toxins/xenobiology) +"akW" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/window/northleft{ + dir = 4; + name = "Containment Pen"; + req_access_txt = "55" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio8"; + name = "containment blast door" + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"akX" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"akY" = ( +/turf/closed/wall, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"akZ" = ( +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the test chamber."; + layer = 4; + name = "Test Chamber Telescreen"; + network = list("Toxins"); + pixel_y = 30 + }, +/obj/structure/chair{ + dir = 1 + }, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = -32 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"ala" = ( +/turf/open/floor/plasteel/loadingarea{ + dir = 1 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"alb" = ( +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the test chamber."; + layer = 4; + name = "Test Chamber Telescreen"; + network = list("Toxins"); + pixel_y = 30 + }, +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"alc" = ( +/turf/closed/wall, +/area/medical/research{ + name = "Research Division" + }) +"ald" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plating, +/area/medical/research{ + name = "Research Division" + }) +"ale" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on, +/turf/open/floor/plating/airless, +/area/maintenance/incinerator) +"alf" = ( +/obj/machinery/door/poddoor{ + id = "auxincineratorvent"; + name = "Auxiliary Incinerator Vent" + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/incinerator) +"alg" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 2; + frequency = 1441; + id = "inc_in" + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/incinerator) +"alh" = ( +/obj/machinery/power/compressor{ + comp_id = "incineratorturbine"; + dir = 2; + luminosity = 2 + }, +/obj/machinery/camera{ + c_tag = "Turbine Chamber"; + dir = 4; + network = list("Turbine") + }, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/incinerator) +"ali" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + external_pressure_bound = 0; + initialize_directions = 1; + internal_pressure_bound = 4000; + on = 0; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/incinerator) +"alj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/effect/decal/cleanable/oil, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"alk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"all" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/weapon/crowbar, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"alm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aln" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/device/assembly/prox_sensor, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"alo" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/warnwhite{ + dir = 4 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"alp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"alq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"alr" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/chair/stool, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = 35 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"als" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/cafeteria, +/area/medical/medbay{ + name = "Medbay Central" + }) +"alt" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space) +"alu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"alv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/item/weapon/shard, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"alw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"alx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aly" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"alz" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"alA" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"alB" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/toxins/xenobiology) +"alC" = ( +/obj/effect/decal/cleanable/robot_debris{ + icon_state = "gib3" + }, +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"alD" = ( +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/structure/disposaloutlet{ + dir = 1 + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"alE" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"alF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"alG" = ( +/obj/item/device/radio/intercom{ + pixel_x = -27 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 8 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"alH" = ( +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"alI" = ( +/obj/machinery/button/massdriver{ + dir = 2; + id = "toxinsdriver"; + pixel_x = 25; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 4 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"alJ" = ( +/obj/machinery/door/airlock/hatch{ + name = "AI Satellite Transit Tube"; + req_access_txt = "29"; + req_one_access_txt = "0" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/medical/research{ + name = "Research Division" + }) +"alK" = ( +/obj/machinery/door/airlock/hatch{ + name = "AI Satellite Transit Tube"; + req_access_txt = "29"; + req_one_access_txt = "0" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/medical/research{ + name = "Research Division" + }) +"alL" = ( +/turf/closed/wall, +/area/maintenance/fore) +"alM" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/fore) +"alN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plating/airless, +/area/maintenance/incinerator) +"alO" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 2 + }, +/turf/closed/wall/r_wall, +/area/maintenance/incinerator) +"alP" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/door/airlock/glass{ + autoclose = 0; + frequency = 1449; + heat_proof = 1; + icon_state = "door_locked"; + id_tag = "incinerator_airlock_exterior"; + locked = 1; + name = "Turbine Exterior Airlock"; + req_access_txt = "32" + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/incinerator) +"alQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/closed/wall/r_wall, +/area/maintenance/incinerator) +"alR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"alS" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"alT" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"alU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/item/stack/rods, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"alV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/item/weapon/cigbutt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"alW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"alX" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"alY" = ( +/turf/closed/wall/r_wall, +/area/medical/virology) +"alZ" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/medical/virology) +"ama" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/medical/virology) +"amb" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"amc" = ( +/obj/structure/grille, +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio6"; + name = "containment blast door" + }, +/obj/structure/window/reinforced/fulltile, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"amd" = ( +/obj/structure/rack{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"ame" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/mob/living/simple_animal/mouse/white, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"amf" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"amg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"amh" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE" + }, +/turf/closed/wall, +/area/toxins/xenobiology) +"ami" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"amj" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"amk" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aml" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"amm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/shard, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"amn" = ( +/obj/machinery/doppler_array{ + dir = 1 + }, +/turf/open/floor/plasteel/bot, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"amo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"amp" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/obj/item/device/radio/intercom{ + dir = 4; + name = "Station Intercom (General)"; + pixel_x = 27 + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"amq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/closed/wall, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"amr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/fore) +"ams" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/sign/securearea{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"amt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/sign/securearea{ + pixel_x = 32 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"amu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/clothing/shoes/jackboots, +/turf/open/floor/plating, +/area/maintenance/fore) +"amv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"amw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fore) +"amx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/stack/rods, +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"amy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fore) +"amz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/robot_debris{ + icon_state = "gib6" + }, +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"amA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/weapon/shard{ + icon_state = "small" + }, +/obj/item/stack/rods, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/fore) +"amB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/maintenance/fore) +"amC" = ( +/obj/machinery/space_heater, +/obj/structure/window{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"amD" = ( +/turf/closed/wall, +/area/maintenance/incinerator) +"amE" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/incinerator) +"amF" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plating, +/area/maintenance/incinerator) +"amG" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + on = 1 + }, +/obj/machinery/doorButtons/access_button{ + idDoor = "incinerator_airlock_exterior"; + idSelf = "incinerator_access_control"; + layer = 3.1; + name = "Incinerator airlock control"; + pixel_x = 8; + pixel_y = 24 + }, +/obj/structure/sign/fire{ + pixel_x = -32 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/engine, +/area/maintenance/incinerator) +"amH" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/engine, +/area/maintenance/incinerator) +"amI" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 2; + on = 1 + }, +/obj/structure/sign/fire{ + pixel_x = 32 + }, +/obj/machinery/doorButtons/access_button{ + idDoor = "incinerator_airlock_interior"; + idSelf = "incinerator_access_control"; + name = "Incinerator airlock control"; + pixel_x = -8; + pixel_y = -24 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/engine, +/area/maintenance/incinerator) +"amJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/robot_debris{ + icon_state = "gib3" + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"amK" = ( +/obj/structure/closet/secure_closet/medical1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 1 + }, +/area/medical/virology) +"amL" = ( +/obj/structure/closet/l3closet/virology, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 1 + }, +/area/medical/virology) +"amM" = ( +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics Maintenance"; + req_access_txt = "12;24" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"amN" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"amO" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"amP" = ( +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/structure/disposaloutlet, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"amQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/reagent_dispensers/fueltank, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"amR" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/toxins/xenobiology) +"amS" = ( +/obj/structure/window/reinforced, +/obj/structure/table/reinforced, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/button/door{ + id = "xenobio7"; + name = "Containment Blast Doors"; + pixel_x = 0; + pixel_y = 4; + req_access_txt = "55" + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/toxins/xenobiology) +"amT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/robot_debris, +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"amU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock/research{ + name = "Toxins Launch Room"; + req_access_txt = "8" + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"amV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"amW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"amX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/space_heater, +/obj/structure/window{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"amY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/reagent_dispensers/watertank, +/obj/structure/window{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"amZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"ana" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/item/trash/candy, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"anb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/robot_debris{ + icon_state = "gib3" + }, +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"anc" = ( +/obj/structure/grille, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"and" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio2"; + name = "containment blast door" + }, +/obj/structure/window/reinforced/fulltile, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"ane" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 8; + icon_state = "pipe-j2s"; + sortType = 13 + }, +/turf/open/floor/plasteel/bot, +/area/medical/research{ + name = "Research Division" + }) +"anf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/oil, +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"ang" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fore) +"anh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/robot_debris{ + icon_state = "gib3" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"ani" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/item/weapon/electronics/airlock, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fore) +"anj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"ank" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/fore) +"anl" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"anm" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"ann" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating, +/area/maintenance/fore) +"ano" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"anp" = ( +/obj/machinery/computer/turbine_computer{ + id = "incineratorturbine" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"anq" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"anr" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/door/airlock/glass{ + autoclose = 0; + frequency = 1449; + heat_proof = 1; + icon_state = "door_locked"; + id_tag = "incinerator_airlock_interior"; + locked = 1; + name = "Turbine Interior Airlock"; + req_access_txt = "32" + }, +/turf/open/floor/engine, +/area/maintenance/incinerator) +"ans" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/item/weapon/storage/box, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"ant" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/structure/closet/secure_closet/personal/patient, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"anu" = ( +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"anv" = ( +/obj/structure/window/fulltile, +/obj/structure/grille, +/turf/open/floor/plating, +/area/medical/virology) +"anw" = ( +/obj/machinery/disposal/bin, +/obj/structure/sign/deathsposal{ + pixel_y = 32 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 8 + }, +/area/medical/virology) +"anx" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"any" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"anz" = ( +/obj/machinery/requests_console{ + department = "Virology"; + name = "Virology Requests Console"; + pixel_x = 32 + }, +/obj/item/weapon/book/manual/wiki/infections{ + pixel_y = 7 + }, +/obj/item/weapon/reagent_containers/syringe/antiviral, +/obj/item/weapon/reagent_containers/dropper, +/obj/item/weapon/reagent_containers/spray/cleaner, +/obj/structure/table, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 4 + }, +/area/medical/virology) +"anA" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/plating/warnplate{ + dir = 9 + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"anB" = ( +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"anC" = ( +/obj/structure/rack{ + dir = 1 + }, +/obj/item/clothing/suit/fire/firefighter, +/obj/item/weapon/tank/internals/oxygen, +/obj/item/clothing/mask/gas, +/obj/item/weapon/extinguisher, +/obj/item/clothing/head/hardhat/red, +/obj/item/clothing/glasses/meson, +/turf/open/floor/plating/warnplate{ + dir = 5 + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"anD" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"anE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"anF" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/item/weapon/crowbar, +/obj/item/trash/sosjerky, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"anG" = ( +/mob/living/simple_animal/slime, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"anH" = ( +/obj/machinery/door/window/northleft{ + base_state = "right"; + dir = 8; + icon_state = "right"; + name = "Containment Pen"; + req_access_txt = "55" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio2"; + name = "containment blast door" + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"anI" = ( +/obj/machinery/door/window/northleft{ + dir = 4; + name = "Containment Pen"; + req_access_txt = "55" + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/toxins/xenobiology) +"anJ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/window/northleft{ + dir = 4; + name = "Containment Pen"; + req_access_txt = "55" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio7"; + name = "containment blast door" + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"anK" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"anL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"anM" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"anN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"anO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fore) +"anP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/fore) +"anQ" = ( +/turf/closed/wall/r_wall, +/area/toxins/server{ + name = "\improper Research Division Server Room" + }) +"anR" = ( +/obj/machinery/door/airlock/research{ + name = "AI Satellite Access"; + req_access_txt = "47" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/floorgrime, +/area/medical/research{ + name = "Research Division" + }) +"anS" = ( +/obj/machinery/door/airlock/research{ + name = "AI Satellite Access"; + req_access_txt = "47" + }, +/turf/open/floor/plasteel/floorgrime, +/area/medical/research{ + name = "Research Division" + }) +"anT" = ( +/turf/closed/wall/r_wall, +/area/toxins/misc_lab) +"anU" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"anV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fore) +"anW" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"anX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 5 + }, +/mob/living/simple_animal/mouse, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"anY" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"anZ" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the turbine vent."; + dir = 2; + name = "turbine vent monitor"; + network = list("Turbine"); + pixel_x = 0; + pixel_y = 29 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"aoa" = ( +/obj/machinery/button/door{ + id = "turbinevent"; + name = "Turbine Vent Control"; + pixel_x = 6; + pixel_y = 24; + req_access_txt = "32" + }, +/obj/machinery/button/door{ + id = "auxincineratorvent"; + name = "Auxiliary Vent Control"; + pixel_x = -6; + pixel_y = 24; + req_access_txt = "32" + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 2 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"aob" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4; + name = "Incinerator to Space" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"aoc" = ( +/obj/machinery/doorButtons/airlock_controller{ + idExterior = "incinerator_airlock_exterior"; + idInterior = "incinerator_airlock_interior"; + idSelf = "incinerator_access_control"; + name = "Incinerator Access Console"; + pixel_x = 6; + pixel_y = 25; + req_access_txt = "12" + }, +/obj/machinery/button/ignition{ + id = "Incinerator"; + pixel_x = -6; + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"aod" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/power/solar{ + id = "foreport"; + name = "Fore-Port Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/auxport) +"aoe" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/space, +/area/solar/auxport) +"aof" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/solar{ + id = "foreport"; + name = "Fore-Port Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/auxport) +"aog" = ( +/obj/machinery/power/solar{ + id = "foreport"; + name = "Fore-Port Solar Array" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/auxport) +"aoh" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/space, +/area/solar/auxport) +"aoi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/grille, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aoj" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aok" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/table, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"aol" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"aom" = ( +/obj/structure/window/fulltile, +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/virology) +"aon" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/structure/table, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"aoo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/machinery/reagentgrinder, +/obj/structure/table, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 8 + }, +/area/medical/virology) +"aop" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"aoq" = ( +/turf/open/floor/plasteel/white, +/area/medical/virology) +"aor" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/item/weapon/storage/box/beakers{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/weapon/storage/box/syringes, +/obj/structure/table, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 4 + }, +/area/medical/virology) +"aos" = ( +/obj/item/weapon/wrench, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating/warnplate{ + dir = 10 + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aot" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Air to Virology"; + on = 1 + }, +/turf/open/floor/plating/warnplate, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aou" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/turf/open/floor/plating/warnplate{ + dir = 6 + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aov" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/closet/emcloset, +/obj/structure/window{ + dir = 1 + }, +/obj/structure/window{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aow" = ( +/obj/structure/grille, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio1"; + name = "containment blast door" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"aox" = ( +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "xenobio2"; + name = "Containment Blast Doors"; + pixel_x = 0; + pixel_y = 4; + req_access_txt = "55" + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/toxins/xenobiology) +"aoy" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aoz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/oil, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aoA" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aoB" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"aoC" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"aoD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/grille/broken, +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fore) +"aoE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/obj/item/stack/rods, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fore) +"aoF" = ( +/obj/machinery/r_n_d/server/robotics, +/turf/open/floor/bluegrid{ + name = "Server Base"; + initial_gas_mix = "n2=500;TEMP=80" + }, +/area/toxins/server{ + name = "\improper Research Division Server Room" + }) +"aoG" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + external_pressure_bound = 140; + on = 1; + pressure_checks = 0 + }, +/turf/open/floor/bluegrid{ + name = "Server Base"; + initial_gas_mix = "n2=500;TEMP=80" + }, +/area/toxins/server{ + name = "\improper Research Division Server Room" + }) +"aoH" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple{ + dir = 4 + }, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'SERVER ROOM'."; + name = "SERVER ROOM"; + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/toxins/server{ + name = "\improper Research Division Server Room" + }) +"aoI" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Server Room APC"; + pixel_y = 25 + }, +/obj/machinery/atmospherics/pipe/manifold{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Server Room"; + network = list("SS13","RD"); + pixel_x = 22 + }, +/turf/open/floor/plasteel/black, +/area/toxins/server{ + name = "\improper Research Division Server Room" + }) +"aoJ" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 8; + on = 1 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/item/device/radio/intercom{ + dir = 1; + name = "Station Intercom (General)"; + pixel_y = 28 + }, +/turf/open/floor/plasteel/black, +/area/toxins/server{ + name = "\improper Research Division Server Room" + }) +"aoK" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/poddoor/preopen{ + id = "Biohazard"; + name = "biohazard containment door" + }, +/turf/open/floor/plasteel/delivery, +/area/medical/research{ + name = "Research Division" + }) +"aoL" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/poddoor/preopen{ + id = "Biohazard"; + name = "biohazard containment door" + }, +/turf/open/floor/plasteel/delivery, +/area/medical/research{ + name = "Research Division" + }) +"aoM" = ( +/turf/closed/wall, +/area/toxins/misc_lab) +"aoN" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical, +/obj/item/clothing/ears/earmuffs, +/obj/item/device/assembly/signaler, +/obj/item/device/healthanalyzer, +/obj/item/device/electropack, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/misc_lab) +"aoO" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/beakers{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/weapon/grenade/chem_grenade, +/obj/item/weapon/grenade/chem_grenade, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/misc_lab) +"aoP" = ( +/obj/structure/table, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = 23 + }, +/obj/item/stack/sheet/mineral/plasma{ + layer = 2.9 + }, +/obj/item/stack/sheet/glass{ + amount = 50; + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/misc_lab) +"aoQ" = ( +/obj/structure/table, +/obj/item/device/assembly/igniter{ + pixel_x = -5; + pixel_y = 3 + }, +/obj/item/device/assembly/igniter{ + pixel_x = 5; + pixel_y = -4 + }, +/obj/item/device/assembly/igniter{ + pixel_x = 2; + pixel_y = 6 + }, +/obj/item/device/assembly/igniter{ + pixel_x = 2; + pixel_y = -1 + }, +/obj/item/device/assembly/timer{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/device/assembly/timer{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/device/assembly/timer{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/device/assembly/timer{ + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/misc_lab) +"aoR" = ( +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/obj/machinery/chem_dispenser/constructable, +/turf/open/floor/plasteel/delivery, +/area/toxins/misc_lab) +"aoS" = ( +/obj/machinery/airalarm{ + pixel_y = 25 + }, +/obj/machinery/droneDispenser, +/turf/open/floor/plasteel/delivery, +/area/toxins/misc_lab) +"aoT" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/misc_lab) +"aoU" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Testing Lab APC"; + pixel_y = 25 + }, +/obj/structure/reagent_dispensers/fueltank, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plasteel/bot, +/area/toxins/misc_lab) +"aoV" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plasteel/bot, +/area/toxins/misc_lab) +"aoW" = ( +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/plasteel/bot, +/area/toxins/misc_lab) +"aoX" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/plasteel/bot, +/area/toxins/misc_lab) +"aoY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/item/stack/cable_coil/cut{ + amount = 1; + icon_state = "coil_red1"; + item_state = "coil_red" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aoZ" = ( +/obj/machinery/atmospherics/components/unary/tank/toxins{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"apa" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"apb" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"apc" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"apd" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"ape" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"apf" = ( +/obj/machinery/atmospherics/components/binary/valve, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"apg" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable, +/turf/open/space, +/area/solar/auxport) +"aph" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"api" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"apj" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"apk" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"apl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/item/stack/sheet/mineral/plasma{ + layer = 2.9 + }, +/obj/item/stack/sheet/mineral/plasma{ + layer = 2.9 + }, +/obj/item/stack/sheet/mineral/plasma{ + layer = 2.9 + }, +/obj/item/weapon/folder/white, +/obj/item/weapon/folder/white, +/obj/item/weapon/pen/red, +/obj/structure/table, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 8 + }, +/area/medical/virology) +"apm" = ( +/obj/structure/chair/office/light{ + dir = 8 + }, +/obj/effect/landmark/start{ + name = "Virologist" + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"apn" = ( +/obj/item/clothing/gloves/color/latex, +/obj/item/device/healthanalyzer, +/obj/structure/reagent_dispensers/virusfood{ + density = 0; + pixel_x = 30 + }, +/obj/structure/table, +/obj/item/weapon/hand_labeler, +/obj/item/clothing/glasses/hud/health, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 4 + }, +/area/medical/virology) +"apo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/medical/virology) +"app" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"apq" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"apr" = ( +/obj/machinery/camera{ + c_tag = "Xenobiology"; + dir = 8; + network = list("SS13","RD") + }, +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aps" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"apt" = ( +/turf/open/floor/plasteel/floorgrime, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"apu" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"apv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/oil, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/fore) +"apw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fore) +"apx" = ( +/obj/machinery/airalarm/server{ + dir = 4; + pixel_x = -22; + pixel_y = 0 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/black{ + name = "Server Walkway"; + initial_gas_mix = "n2=500;TEMP=80" + }, +/area/toxins/server{ + name = "\improper Research Division Server Room" + }) +"apy" = ( +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plasteel/black{ + name = "Server Walkway"; + initial_gas_mix = "n2=500;TEMP=80" + }, +/area/toxins/server{ + name = "\improper Research Division Server Room" + }) +"apz" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_command{ + name = "Server Room"; + req_access_txt = "30" + }, +/turf/open/floor/plasteel/black, +/area/toxins/server{ + name = "\improper Research Division Server Room" + }) +"apA" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 1 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/black, +/area/toxins/server{ + name = "\improper Research Division Server Room" + }) +"apB" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/black, +/area/toxins/server{ + name = "\improper Research Division Server Room" + }) +"apC" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Server Room"; + req_access = null; + req_access_txt = "30" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/black, +/area/toxins/server{ + name = "\improper Research Division Server Room" + }) +"apD" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"apE" = ( +/turf/open/floor/plasteel/whitepurple/corner, +/area/medical/research{ + name = "Research Division" + }) +"apF" = ( +/obj/structure/table, +/obj/machinery/cell_charger{ + pixel_y = 5 + }, +/obj/item/stack/cable_coil, +/obj/item/device/multitool, +/obj/item/weapon/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000 + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/misc_lab) +"apG" = ( +/turf/open/floor/plasteel/floorgrime, +/area/toxins/misc_lab) +"apH" = ( +/obj/structure/chair/office/light{ + dir = 1 + }, +/obj/effect/landmark/start{ + name = "Scientist" + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/misc_lab) +"apI" = ( +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"apJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/misc_lab) +"apK" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/medical/research{ + name = "Research Division" + }) +"apL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/oil, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"apM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fore) +"apN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"apO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/item/trash/candy, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"apP" = ( +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-j2"; + dir = 1 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"apQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating, +/area/maintenance/fore) +"apR" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4; + name = "input gas connector port" + }, +/obj/structure/sign/nosmoking_2{ + pixel_x = -28 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"apS" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"apT" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"apU" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"apV" = ( +/obj/structure/sign/nosmoking_2{ + pixel_x = 28 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"apW" = ( +/obj/structure/window/fulltile, +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/medical/virology) +"apX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_virology{ + name = "Isolation B"; + req_access_txt = "39" + }, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"apY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_virology{ + name = "Isolation A"; + req_access_txt = "39" + }, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"apZ" = ( +/obj/machinery/computer/pandemic, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 8 + }, +/area/medical/virology) +"aqa" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"aqb" = ( +/obj/machinery/smartfridge/chemistry/virology, +/obj/item/device/radio/intercom{ + dir = 4; + name = "Station Intercom (General)"; + pixel_x = 27 + }, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 4 + }, +/area/medical/virology) +"aqc" = ( +/turf/closed/wall, +/area/medical/virology) +"aqd" = ( +/obj/machinery/light_switch{ + pixel_x = -23 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"aqe" = ( +/obj/machinery/airalarm{ + frequency = 1439; + pixel_y = 23 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"aqf" = ( +/obj/structure/closet/wardrobe/virology_white, +/obj/item/weapon/storage/backpack/satchel/vir, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"aqg" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/structure/window, +/obj/structure/window{ + dir = 4 + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aqh" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/rods, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aqi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fore) +"aqj" = ( +/obj/structure/window/reinforced, +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "xenobio6"; + name = "Containment Blast Doors"; + pixel_x = 0; + pixel_y = 4; + req_access_txt = "55" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/toxins/xenobiology) +"aqk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"aql" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"aqm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/toxins/xenobiology) +"aqn" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/item/stack/rods, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aqo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aqp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aqq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"aqr" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"aqs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/fore) +"aqt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/grille, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fore) +"aqu" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fore) +"aqv" = ( +/obj/machinery/r_n_d/server/core, +/turf/open/floor/bluegrid{ + name = "Server Base"; + initial_gas_mix = "n2=500;TEMP=80" + }, +/area/toxins/server{ + name = "\improper Research Division Server Room" + }) +"aqw" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + external_pressure_bound = 120; + initialize_directions = 1; + internal_pressure_bound = 4000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/bluegrid{ + name = "Server Base"; + initial_gas_mix = "n2=500;TEMP=80" + }, +/area/toxins/server{ + name = "\improper Research Division Server Room" + }) +"aqx" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple{ + dir = 4 + }, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'SERVER ROOM'."; + name = "SERVER ROOM"; + pixel_y = -32 + }, +/turf/open/floor/plating, +/area/toxins/server{ + name = "\improper Research Division Server Room" + }) +"aqy" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 9 + }, +/obj/machinery/computer/rdservercontrol, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/black, +/area/toxins/server{ + name = "\improper Research Division Server Room" + }) +"aqz" = ( +/obj/item/weapon/folder/white, +/obj/item/weapon/pen, +/obj/structure/table, +/turf/open/floor/plasteel/black, +/area/toxins/server{ + name = "\improper Research Division Server Room" + }) +"aqA" = ( +/obj/structure/disposalpipe/segment, +/obj/item/device/radio/intercom{ + dir = 1; + name = "Station Intercom (General)"; + pixel_x = -29 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"aqB" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/toxins/misc_lab) +"aqC" = ( +/obj/structure/closet/l3closet/scientist{ + pixel_x = -2 + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/misc_lab) +"aqD" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/misc_lab) +"aqE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"aqF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/misc_lab) +"aqG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/misc_lab) +"aqH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/corner, +/area/toxins/misc_lab) +"aqI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning, +/area/toxins/misc_lab) +"aqJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 1 + }, +/area/toxins/misc_lab) +"aqK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/toxins/misc_lab) +"aqL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aqM" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aqN" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/power/terminal, +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"aqO" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"aqP" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Mix to Incinerator"; + on = 0 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"aqQ" = ( +/obj/machinery/atmospherics/pipe/simple, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"aqR" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"aqS" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"aqT" = ( +/turf/closed/wall/r_wall, +/area/atmos) +"aqU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aqV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"aqW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"aqX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"aqY" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"aqZ" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"ara" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"arb" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/holopad, +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"arc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/virology{ + name = "Break Room"; + req_access_txt = "39" + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"ard" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"are" = ( +/obj/structure/table/glass, +/obj/machinery/microwave{ + pixel_x = -3; + pixel_y = 6 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"arf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/device/assembly/timer, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"arg" = ( +/obj/machinery/door/window/northleft{ + base_state = "right"; + dir = 8; + icon_state = "right"; + name = "Containment Pen"; + req_access_txt = "55" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio1"; + name = "containment blast door" + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"arh" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/window/northleft{ + dir = 4; + name = "Containment Pen"; + req_access_txt = "55" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio6"; + name = "containment blast door" + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"ari" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"arj" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"ark" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"arl" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/misc_lab) +"arm" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/misc_lab) +"arn" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/misc_lab) +"aro" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance{ + name = "Testing Lab Maintenance"; + req_access_txt = "47" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/toxins/misc_lab) +"arp" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 8; + icon_state = "pipe-j2s"; + sortType = 14 + }, +/obj/item/weapon/stock_parts/capacitor, +/turf/open/floor/plating, +/area/maintenance/fore) +"arq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/cable_coil/cut{ + amount = 1; + icon_state = "coil_red1"; + item_state = "coil_red" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fore) +"arr" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"ars" = ( +/obj/machinery/door/airlock/research{ + name = "Testing Lab"; + req_access_txt = "47" + }, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"art" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aru" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start{ + name = "Scientist" + }, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"arv" = ( +/obj/structure/table, +/obj/machinery/button/ignition{ + id = "testigniter"; + pixel_x = 0; + pixel_y = -5 + }, +/obj/machinery/button/door{ + id = "testlab"; + name = "Test Chamber Blast Doors"; + pixel_x = 0; + pixel_y = 7; + req_access_txt = "55" + }, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"arw" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/toxins/misc_lab) +"arx" = ( +/obj/machinery/door/airlock/glass_research{ + name = "Test Chamber"; + req_access_txt = "47" + }, +/turf/open/floor/plasteel/delivery, +/area/toxins/misc_lab) +"ary" = ( +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/plasteel/bot, +/area/toxins/misc_lab) +"arz" = ( +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plasteel/bot, +/area/toxins/misc_lab) +"arA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fore) +"arB" = ( +/obj/machinery/power/smes{ + capacity = 9e+006; + charge = 10000 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"arC" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/light_switch{ + pixel_x = 0; + pixel_y = -22 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"arD" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/toxins/misc_lab) +"arE" = ( +/obj/machinery/power/apc{ + name = "Incinerator APC"; + pixel_y = -24 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"arF" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"arG" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -29 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"arH" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/incinerator) +"arI" = ( +/turf/open/floor/engine/vacuum, +/area/atmos) +"arJ" = ( +/turf/open/floor/engine/n2o, +/area/atmos) +"arK" = ( +/turf/open/floor/engine/plasma, +/area/atmos) +"arL" = ( +/turf/open/floor/engine/co2, +/area/atmos) +"arM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"arN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"arO" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"arP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"arQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"arR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/power/apc{ + cell_type = 5000; + name = "Virology APC"; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/camera{ + c_tag = "Virology Module"; + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"arS" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/light_switch{ + pixel_x = -4; + pixel_y = -24 + }, +/obj/machinery/doorButtons/airlock_controller{ + idExterior = "virology_airlock_exterior"; + idInterior = "virology_airlock_interior"; + idSelf = "virology_airlock_control"; + name = "Virology Access Console"; + pixel_x = 8; + pixel_y = -22; + req_access_txt = "39" + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"arT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"arU" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"arV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/medical/virology) +"arW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"arX" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start{ + name = "Virologist" + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"arY" = ( +/obj/structure/table/glass, +/obj/item/weapon/storage/box/donkpockets{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/machinery/newscaster{ + pixel_x = 30 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"arZ" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/item/weapon/folder/white, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"asa" = ( +/obj/structure/window/reinforced/fulltile, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"asb" = ( +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "xenobio1"; + name = "Containment Blast Doors"; + pixel_x = 0; + pixel_y = 4; + req_access_txt = "55" + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/toxins/xenobiology) +"asc" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"asd" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"ase" = ( +/obj/machinery/camera{ + c_tag = "Toxins Launch Room Access"; + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"asf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/cigbutt, +/turf/open/floor/plating, +/area/maintenance/fore) +"asg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/decal/cleanable/robot_debris, +/obj/item/device/assembly/signaler, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fore) +"ash" = ( +/obj/structure/grille, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating, +/area/maintenance/fore) +"asi" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/fore) +"asj" = ( +/obj/item/weapon/reagent_containers/food/snacks/cookie{ + desc = "It has a distinctly eldritch taste to it."; + name = "grandma's cookie" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/fore) +"ask" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/hor) +"asl" = ( +/obj/structure/toilet{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Research Director" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/hor) +"asm" = ( +/obj/structure/sink{ + pixel_y = 26 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/hor) +"asn" = ( +/turf/closed/wall, +/area/crew_quarters/hor) +"aso" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"asp" = ( +/obj/structure/closet/bombcloset, +/turf/open/floor/plasteel/warning, +/area/toxins/misc_lab) +"asq" = ( +/turf/open/floor/plasteel/warning, +/area/toxins/misc_lab) +"asr" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin{ + pixel_y = 6 + }, +/obj/item/weapon/folder/white, +/obj/item/weapon/folder/white, +/obj/item/weapon/pen, +/obj/item/device/taperecorder, +/turf/open/floor/plasteel/warning, +/area/toxins/misc_lab) +"ass" = ( +/obj/structure/table, +/obj/item/weapon/hand_labeler, +/obj/item/clothing/glasses/science, +/obj/item/clothing/glasses/science, +/turf/open/floor/plasteel/warning/corner{ + dir = 1 + }, +/area/toxins/misc_lab) +"ast" = ( +/turf/open/floor/plasteel/delivery, +/area/toxins/misc_lab) +"asu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/decal/cleanable/robot_debris{ + icon_state = "gib3" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"asv" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Incinerator Access"; + req_access_txt = "12" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/incinerator) +"asw" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/incinerator) +"asx" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + icon_state = "intact"; + dir = 10 + }, +/turf/closed/wall, +/area/maintenance/incinerator) +"asy" = ( +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/turf/open/floor/engine/n2o, +/area/atmos) +"asz" = ( +/obj/machinery/portable_atmospherics/canister/toxins, +/turf/open/floor/engine/plasma, +/area/atmos) +"asA" = ( +/obj/machinery/portable_atmospherics/canister/carbon_dioxide, +/turf/open/floor/engine/co2, +/area/atmos) +"asB" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/auxsolarport) +"asC" = ( +/turf/closed/wall/r_wall, +/area/maintenance/auxsolarport) +"asD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/weapon/shard{ + icon_state = "small" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"asE" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/medical/virology) +"asF" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/medical/virology) +"asG" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_virology{ + name = "Monkey Pen"; + req_access_txt = "39" + }, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"asH" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/medical/virology) +"asI" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/virology{ + autoclose = 0; + frequency = 1449; + icon_state = "door_locked"; + id_tag = "virology_airlock_interior"; + locked = 1; + name = "Virology Interior Airlock"; + req_access_txt = "39" + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"asJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/medical/virology) +"asK" = ( +/obj/structure/closet/wardrobe/virology_white, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"asL" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"asM" = ( +/obj/structure/table/glass, +/obj/item/weapon/paper_bin{ + pixel_x = -2; + pixel_y = 5 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"asN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/medical/virology) +"asO" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"asP" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"asQ" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio1"; + name = "containment blast door" + }, +/obj/structure/window/reinforced/fulltile, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"asR" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"asS" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"asT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"asU" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"asV" = ( +/obj/structure/disposalpipe/sortjunction{ + dir = 8; + icon_state = "pipe-j2s"; + sortType = 23 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"asW" = ( +/obj/structure/disposalpipe/sortjunction{ + dir = 8; + icon_state = "pipe-j2s"; + sortType = 11 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"asX" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"asY" = ( +/obj/structure/sign/biohazard, +/turf/closed/wall, +/area/toxins/xenobiology) +"asZ" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warnwhite, +/area/toxins/xenobiology) +"ata" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warnwhite, +/area/toxins/xenobiology) +"atb" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warnwhite, +/area/toxins/xenobiology) +"atc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"atd" = ( +/turf/closed/wall/r_wall, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"ate" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"atf" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/bot, +/area/assembly/robotics) +"atg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fore) +"ath" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/crew_quarters/hor) +"ati" = ( +/obj/machinery/door/airlock{ + name = "Private Restroom" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/hor) +"atj" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/toxins/misc_lab) +"atk" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10; + initialize_directions = 10 + }, +/turf/open/floor/plating, +/area/toxins/misc_lab) +"atl" = ( +/turf/open/floor/plating, +/area/toxins/misc_lab) +"atm" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/computer/security/telescreen{ + dir = 8; + name = "Test Chamber Moniter"; + network = list("Test"); + pixel_x = 30 + }, +/obj/machinery/camera{ + c_tag = "Testing Lab North"; + dir = 8; + network = list("SS13","RD"); + pixel_y = -22 + }, +/turf/open/floor/plating, +/area/toxins/misc_lab) +"atn" = ( +/obj/machinery/door/airlock/glass_research{ + name = "Test Chamber"; + req_access_txt = "47" + }, +/obj/machinery/door/poddoor/preopen{ + id = "testlab"; + layer = 2.9; + name = "test chamber blast door" + }, +/turf/open/floor/engine, +/area/toxins/misc_lab) +"ato" = ( +/obj/structure/disposalpipe/junction{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"atp" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"atq" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/open/floor/plasteel/bot, +/area/maintenance/incinerator) +"atr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/engine, +/area/toxins/xenobiology) +"ats" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/item/weapon/electronics/firealarm, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"att" = ( +/obj/structure/disposalpipe/junction{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fore) +"atu" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plating, +/area/maintenance/fore) +"atv" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/closed/wall, +/area/maintenance/fore) +"atw" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/maintenance/fore) +"atx" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 2; + frequency = 1441; + id = "waste_in"; + pixel_y = 1 + }, +/turf/open/floor/engine/vacuum, +/area/atmos) +"aty" = ( +/obj/machinery/air_sensor{ + frequency = 1441; + id_tag = "mix_sensor" + }, +/turf/open/floor/engine/vacuum, +/area/atmos) +"atz" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + external_pressure_bound = 0; + frequency = 1441; + id_tag = "waste_out"; + initialize_directions = 1; + internal_pressure_bound = 4000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine/vacuum, +/area/atmos) +"atA" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 2; + frequency = 1441; + id = "n2o_in"; + pixel_y = 1 + }, +/turf/open/floor/engine/n2o, +/area/atmos) +"atB" = ( +/obj/machinery/air_sensor{ + frequency = 1441; + id_tag = "n2o_sensor" + }, +/turf/open/floor/engine/n2o, +/area/atmos) +"atC" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + external_pressure_bound = 0; + frequency = 1441; + id_tag = "n2o_out"; + initialize_directions = 1; + internal_pressure_bound = 4000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine/n2o, +/area/atmos) +"atD" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 2; + frequency = 1441; + id = "tox_in"; + pixel_y = 1 + }, +/turf/open/floor/engine/plasma, +/area/atmos) +"atE" = ( +/obj/machinery/air_sensor{ + frequency = 1441; + id_tag = "tox_sensor" + }, +/turf/open/floor/engine/plasma, +/area/atmos) +"atF" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + external_pressure_bound = 0; + frequency = 1441; + id_tag = "tox_out"; + initialize_directions = 1; + internal_pressure_bound = 4000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine/plasma, +/area/atmos) +"atG" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 2; + frequency = 1441; + id = "waste_in"; + pixel_y = 1 + }, +/turf/open/floor/engine/co2, +/area/atmos) +"atH" = ( +/obj/machinery/air_sensor{ + frequency = 1441; + id_tag = "co2_sensor" + }, +/turf/open/floor/engine/co2, +/area/atmos) +"atI" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + external_pressure_bound = 0; + frequency = 1441; + id_tag = "co2_out"; + initialize_directions = 1; + internal_pressure_bound = 4000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine/co2, +/area/atmos) +"atJ" = ( +/obj/structure/lattice, +/obj/structure/lattice, +/obj/structure/grille, +/turf/open/space, +/area/space) +"atK" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable, +/turf/open/space, +/area/solar/auxport) +"atL" = ( +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solar/auxport) +"atM" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = -32 + }, +/obj/item/device/radio/intercom{ + dir = 8; + name = "Station Intercom (General)"; + pixel_y = 22 + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarport) +"atN" = ( +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarport) +"atO" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/power/smes, +/turf/open/floor/plating, +/area/maintenance/auxsolarport) +"atP" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/maintenance/auxsolarport) +"atQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"atR" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plasteel/whitepurple/corner, +/area/medical/research{ + name = "Research Division" + }) +"atS" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"atT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/mob/living/carbon/monkey, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"atU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/mob/living/carbon/monkey, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"atV" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/obj/machinery/shower{ + dir = 4 + }, +/obj/machinery/doorButtons/access_button{ + idDoor = "virology_airlock_interior"; + idSelf = "virology_airlock_control"; + name = "Virology Access Button"; + pixel_x = 8; + pixel_y = 28; + req_access_txt = "39" + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 9 + }, +/area/medical/virology) +"atW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"atX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/closet/l3closet, +/obj/machinery/camera{ + c_tag = "Virology Airlock" + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 5 + }, +/area/medical/virology) +"atY" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"atZ" = ( +/obj/item/weapon/storage/secure/safe{ + pixel_x = 5; + pixel_y = -29 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"aua" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"aub" = ( +/obj/structure/closet/crate/freezer, +/obj/item/weapon/reagent_containers/blood/empty, +/obj/item/weapon/reagent_containers/blood/empty{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/weapon/reagent_containers/blood/AMinus, +/obj/item/weapon/reagent_containers/blood/BMinus{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/weapon/reagent_containers/blood/BPlus{ + pixel_x = 1; + pixel_y = 2 + }, +/obj/item/weapon/reagent_containers/blood/OMinus, +/obj/item/weapon/reagent_containers/blood/OPlus{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/weapon/reagent_containers/blood/random, +/obj/item/weapon/reagent_containers/blood/random, +/obj/item/weapon/reagent_containers/blood/random, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"auc" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/item/weapon/newspaper, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aud" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aue" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/trash/chips, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"auf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/stack/rods, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aug" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/valve, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"auh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/robot_debris{ + icon_state = "gib6" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aui" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/weapon/wirecutters, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"auj" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"auk" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aul" = ( +/obj/machinery/monkey_recycler, +/turf/open/floor/plasteel, +/area/toxins/xenobiology) +"aum" = ( +/obj/machinery/requests_console{ + department = "Science"; + departmentType = 2; + name = "Science Requests Console"; + pixel_y = 30 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 8 + }, +/area/toxins/xenobiology) +"aun" = ( +/obj/machinery/airalarm{ + frequency = 1439; + pixel_y = 23 + }, +/obj/structure/table, +/obj/machinery/reagentgrinder, +/obj/item/stack/sheet/mineral/plasma{ + layer = 2.9 + }, +/obj/item/stack/sheet/mineral/plasma{ + layer = 2.9 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"auo" = ( +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/obj/item/weapon/extinguisher{ + pixel_x = 4; + pixel_y = 3 + }, +/obj/item/weapon/extinguisher, +/obj/structure/table, +/obj/item/weapon/storage/box/monkeycubes, +/obj/item/weapon/storage/box/monkeycubes, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aup" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/syringes{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/beakers, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"auq" = ( +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aur" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aus" = ( +/obj/machinery/computer/camera_advanced/xenobio, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"aut" = ( +/obj/item/device/assembly/signaler{ + pixel_y = 8 + }, +/obj/item/device/assembly/signaler{ + pixel_x = -8; + pixel_y = 5 + }, +/obj/item/device/assembly/signaler{ + pixel_x = 6; + pixel_y = 5 + }, +/obj/item/device/assembly/signaler{ + pixel_x = -2; + pixel_y = -2 + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/white, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"auu" = ( +/obj/item/device/transfer_valve{ + pixel_x = -5 + }, +/obj/item/device/transfer_valve{ + pixel_x = -5 + }, +/obj/item/device/transfer_valve, +/obj/item/device/transfer_valve, +/obj/item/device/transfer_valve{ + pixel_x = 5 + }, +/obj/item/device/transfer_valve{ + pixel_x = 5 + }, +/obj/machinery/requests_console{ + department = "Science"; + departmentType = 2; + name = "Science Requests Console"; + pixel_y = 30 + }, +/obj/structure/table/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"auv" = ( +/obj/item/device/assembly/timer{ + pixel_x = 5; + pixel_y = 4 + }, +/obj/item/device/assembly/timer{ + pixel_x = -4; + pixel_y = 2 + }, +/obj/item/device/assembly/timer{ + pixel_x = 6; + pixel_y = -4 + }, +/obj/item/device/assembly/timer, +/obj/structure/table/reinforced, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Toxins Lab APC"; + pixel_y = 27 + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"auw" = ( +/obj/item/device/radio/intercom{ + pixel_y = 25 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/portable_atmospherics/canister/toxins, +/turf/open/floor/plasteel/warnwhite{ + dir = 9 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"aux" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"auy" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/turf/open/floor/plasteel/warnwhite{ + dir = 5 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"auz" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"auA" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"auB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating, +/area/maintenance/fore) +"auC" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"auD" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/hor) +"auE" = ( +/obj/structure/closet/secure_closet/RD, +/obj/machinery/airalarm{ + pixel_y = 25 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/hor) +"auF" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/item/weapon/cartridge/signal/toxins, +/obj/item/weapon/cartridge/signal/toxins{ + pixel_x = -4; + pixel_y = 2 + }, +/obj/item/weapon/cartridge/signal/toxins{ + pixel_x = 4; + pixel_y = 6 + }, +/obj/machinery/power/apc{ + dir = 1; + name = "RD Office APC"; + pixel_y = 25 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/camera{ + c_tag = "Research Director's Office"; + network = list("SS13","RD") + }, +/obj/structure/table, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/hor) +"auG" = ( +/obj/machinery/light_switch{ + pixel_y = 23 + }, +/obj/machinery/computer/card/minor/rd, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/hor) +"auH" = ( +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/hor) +"auI" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/crew_quarters/hor) +"auJ" = ( +/obj/machinery/camera{ + c_tag = "Research Division North East"; + dir = 8 + }, +/turf/open/floor/plasteel/whitepurple/corner, +/area/medical/research{ + name = "Research Division" + }) +"auK" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/toxins/misc_lab) +"auL" = ( +/obj/machinery/atmospherics/pipe/manifold4w, +/turf/open/floor/plating, +/area/toxins/misc_lab) +"auM" = ( +/obj/machinery/atmospherics/components/trinary/filter{ + dir = 4; + req_access = null + }, +/turf/open/floor/plating, +/area/toxins/misc_lab) +"auN" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4 + }, +/turf/open/floor/plating, +/area/toxins/misc_lab) +"auO" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/machinery/meter, +/turf/open/floor/plating, +/area/toxins/misc_lab) +"auP" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/machinery/door/poddoor/preopen{ + id = "testlab"; + layer = 2.9; + name = "test chamber blast door" + }, +/turf/open/floor/plating, +/area/toxins/misc_lab) +"auQ" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/toxins/misc_lab) +"auR" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10; + initialize_directions = 10 + }, +/turf/open/floor/engine, +/area/toxins/misc_lab) +"auS" = ( +/turf/open/floor/engine, +/area/toxins/misc_lab) +"auT" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fore) +"auU" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"auV" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/item/device/assembly/igniter, +/turf/open/floor/plating, +/area/maintenance/fore) +"auW" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/closed/wall, +/area/maintenance/fore) +"auX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/closed/wall, +/area/maintenance/fore) +"auY" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/fore) +"auZ" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = -31 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"ava" = ( +/obj/machinery/door/airlock/external, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"avb" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/space, +/area/space) +"avc" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/meter, +/turf/closed/wall/r_wall, +/area/atmos) +"avd" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/atmos) +"ave" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/meter, +/turf/closed/wall/r_wall, +/area/atmos) +"avf" = ( +/obj/machinery/power/tracker, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plating/airless, +/area/solar/auxport) +"avg" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/space, +/area/solar/auxport) +"avh" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/space, +/area/solar/auxport) +"avi" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/space, +/area/solar/auxport) +"avj" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/external{ + name = "Solar Maintenance"; + req_access = null; + req_access_txt = "10; 13" + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarport) +"avk" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarport) +"avl" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarport) +"avm" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarport) +"avn" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarport) +"avo" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/engineering{ + name = "Aft Port Solar Access"; + req_access_txt = "10" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/auxsolarport) +"avp" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"avq" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"avr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/item/weapon/shard, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"avs" = ( +/obj/effect/decal/cleanable/robot_debris, +/obj/item/stack/rods, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"avt" = ( +/mob/living/carbon/monkey, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"avu" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"avv" = ( +/obj/machinery/light/small, +/mob/living/carbon/monkey, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"avw" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"avx" = ( +/obj/structure/sign/securearea{ + pixel_x = -32 + }, +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 8 + }, +/area/medical/virology) +"avy" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"avz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/closet/l3closet, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 4 + }, +/area/medical/virology) +"avA" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"avB" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + cell_type = 5000; + name = "Medbay Maintenance APC"; + pixel_y = -24 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"avC" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"avD" = ( +/obj/machinery/light/small, +/obj/effect/decal/cleanable/robot_debris{ + icon_state = "gib7" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"avE" = ( +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"avF" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/clothing/glasses/sunglasses, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"avG" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/shard{ + icon_state = "medium" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"avH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"avI" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"avJ" = ( +/obj/machinery/processor{ + desc = "A machine used to process slimes and retrieve their extract."; + name = "Slime Processor" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/toxins/xenobiology) +"avK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 8 + }, +/area/toxins/xenobiology) +"avL" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"avM" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"avN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/mob/living/simple_animal/mouse/gray, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fore) +"avO" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"avP" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"avQ" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/structure/sign/deathsposal{ + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"avR" = ( +/obj/item/device/assembly/prox_sensor{ + pixel_x = -4; + pixel_y = 1 + }, +/obj/item/device/assembly/prox_sensor{ + pixel_x = 8; + pixel_y = 9 + }, +/obj/item/device/assembly/prox_sensor{ + pixel_x = 9; + pixel_y = -2 + }, +/obj/item/device/assembly/prox_sensor{ + pixel_y = 2 + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/white, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"avS" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"avT" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/wrench, +/obj/item/weapon/screwdriver{ + pixel_y = 10 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"avU" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"avV" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/obj/machinery/meter, +/turf/open/floor/plasteel/white, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"avW" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"avX" = ( +/obj/structure/sign/securearea{ + pixel_x = -32 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/corner{ + dir = 1 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"avY" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"avZ" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/fore) +"awa" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/crew_quarters/hor) +"awb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + dir = 4; + name = "Station Intercom (General)"; + pixel_x = -27 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/hor) +"awc" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/hor) +"awd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"awe" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"awf" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"awg" = ( +/obj/machinery/suit_storage_unit/rd, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/hor) +"awh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"awi" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"awj" = ( +/obj/machinery/atmospherics/components/binary/valve, +/turf/open/floor/plating, +/area/toxins/misc_lab) +"awk" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/open/floor/plating, +/area/toxins/misc_lab) +"awl" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "testlab"; + layer = 2.9; + name = "test chamber blast door" + }, +/turf/open/floor/plating, +/area/toxins/misc_lab) +"awm" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 1 + }, +/turf/open/floor/engine, +/area/toxins/misc_lab) +"awn" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Testing Chamber"; + dir = 8; + network = list("Test","RD") + }, +/obj/machinery/sparker{ + id = "testigniter"; + pixel_x = 25 + }, +/turf/open/floor/engine, +/area/toxins/misc_lab) +"awo" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/item/weapon/shard, +/turf/open/floor/plating, +/area/maintenance/fore) +"awp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/closed/wall, +/area/maintenance/fore) +"awq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/closed/wall, +/area/maintenance/fore) +"awr" = ( +/obj/effect/decal/cleanable/blood/gibs, +/turf/open/floor/plating, +/area/maintenance/fore) +"aws" = ( +/obj/effect/decal/cleanable/oil, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating, +/area/maintenance/fore) +"awt" = ( +/obj/item/weapon/cigbutt, +/turf/open/floor/plating, +/area/maintenance/fore) +"awu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/maintenance/fore) +"awv" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/oil, +/obj/item/stack/rods, +/turf/open/floor/plating, +/area/maintenance/fore) +"aww" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"awx" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/space, +/area/space) +"awy" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/open/space, +/area/space) +"awz" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/turf/open/space, +/area/solar/auxport) +"awA" = ( +/obj/structure/cable, +/obj/machinery/power/solar_control{ + id = "foreport"; + name = "Fore Port Solar Control" + }, +/turf/open/floor/plating, +/area/maintenance/auxsolarport) +"awB" = ( +/obj/item/stack/cable_coil, +/turf/open/floor/plating, +/area/maintenance/auxsolarport) +"awC" = ( +/obj/machinery/power/apc{ + name = "Fore Port Solar APC"; + pixel_x = 25; + pixel_y = 3 + }, +/obj/machinery/camera{ + c_tag = "Fore Port Solar Control"; + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/maintenance/auxsolarport) +"awD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/maintenance/auxsolarport) +"awE" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"awF" = ( +/turf/closed/wall, +/area/medical/medbay{ + name = "Medbay Central" + }) +"awG" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/machinery/shower{ + dir = 4 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 10 + }, +/area/medical/virology) +"awH" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"awI" = ( +/obj/structure/closet/emcloset, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 6 + }, +/area/medical/virology) +"awJ" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/structure/closet/wardrobe/grey, +/obj/structure/window{ + dir = 1 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"awK" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/weapon/shard{ + icon_state = "small" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"awL" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"awM" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/grille, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"awN" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/item/weapon/weldingtool, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"awO" = ( +/turf/closed/wall/r_wall, +/area/medical/genetics) +"awP" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"awQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"awR" = ( +/obj/machinery/smartfridge/extract, +/turf/open/floor/plasteel, +/area/toxins/xenobiology) +"awS" = ( +/turf/open/floor/plasteel/warnwhite{ + dir = 8 + }, +/area/toxins/xenobiology) +"awT" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"awU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"awV" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"awW" = ( +/obj/machinery/camera{ + c_tag = "Xenobiology South"; + dir = 1; + network = list("SS13","RD") + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light_switch{ + pixel_y = -28 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"awX" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -29 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"awY" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"awZ" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 2 + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"axa" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"axb" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"axc" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"axd" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"axe" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/airlock/research{ + name = "Toxins Launch Room Access"; + req_access_txt = "8" + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"axf" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"axg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/item/weapon/shard, +/turf/open/floor/plating, +/area/maintenance/fore) +"axh" = ( +/turf/open/floor/plasteel/warnwhite{ + dir = 9 + }, +/area/crew_quarters/hor) +"axi" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"axj" = ( +/obj/structure/rack, +/obj/item/device/taperecorder{ + pixel_x = -3 + }, +/obj/item/device/paicard{ + pixel_x = 4 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 5 + }, +/area/crew_quarters/hor) +"axk" = ( +/obj/machinery/computer/mecha, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/hor) +"axl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/hor) +"axm" = ( +/obj/item/weapon/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/weapon/pen, +/obj/structure/table, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/hor) +"axn" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"axo" = ( +/obj/item/device/radio/intercom{ + dir = 8; + name = "Station Intercom (General)"; + pixel_x = 27 + }, +/turf/open/floor/plasteel/whitepurple/corner, +/area/medical/research{ + name = "Research Division" + }) +"axp" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/turf/open/floor/plating, +/area/toxins/misc_lab) +"axq" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/obj/machinery/light, +/turf/open/floor/plating, +/area/toxins/misc_lab) +"axr" = ( +/obj/item/device/radio/beacon, +/turf/open/floor/engine, +/area/toxins/misc_lab) +"axs" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = 29 + }, +/turf/open/floor/engine, +/area/toxins/misc_lab) +"axt" = ( +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fore) +"axu" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating, +/area/maintenance/fore) +"axv" = ( +/obj/effect/decal/cleanable/blood/gibs, +/obj/item/weapon/kitchen/knife, +/turf/open/floor/plating, +/area/maintenance/fore) +"axw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/remains/human, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fore) +"axx" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/shard{ + icon_state = "medium" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"axy" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 5 + }, +/turf/closed/wall, +/area/maintenance/fore) +"axz" = ( +/obj/machinery/door/airlock/external, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"axA" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/fore) +"axB" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + icon_state = "intact"; + dir = 10 + }, +/turf/closed/wall, +/area/maintenance/fore) +"axC" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"axD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/medical/medbay{ + name = "Medbay Central" + }) +"axE" = ( +/obj/structure/sink{ + pixel_y = 26 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/medbay{ + name = "Medbay Central" + }) +"axF" = ( +/obj/structure/sink{ + pixel_y = 26 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/medbay{ + name = "Medbay Central" + }) +"axG" = ( +/obj/structure/sink{ + pixel_y = 26 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/medbay{ + name = "Medbay Central" + }) +"axH" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/ai_status_display{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/medbay{ + name = "Medbay Central" + }) +"axI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/machinery/newscaster{ + pixel_y = 30 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-17" + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/medbay{ + name = "Medbay Central" + }) +"axJ" = ( +/obj/machinery/airalarm{ + frequency = 1439; + pixel_y = 23 + }, +/obj/structure/chair/stool, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/medbay{ + name = "Medbay Central" + }) +"axK" = ( +/obj/structure/table/glass, +/obj/machinery/microwave{ + pixel_x = -3; + pixel_y = 6 + }, +/obj/machinery/status_display{ + layer = 4; + pixel_y = 32 + }, +/obj/item/device/radio/intercom{ + dir = 4; + name = "Station Intercom (General)"; + pixel_x = 27 + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/medbay{ + name = "Medbay Central" + }) +"axL" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/sign/biohazard{ + pixel_x = 32 + }, +/obj/machinery/door/airlock/virology{ + autoclose = 0; + frequency = 1449; + icon_state = "door_locked"; + id_tag = "virology_airlock_exterior"; + locked = 1; + name = "Virology Exterior Airlock"; + req_access_txt = "39" + }, +/obj/machinery/doorButtons/access_button{ + idDoor = "virology_airlock_exterior"; + idSelf = "virology_airlock_control"; + name = "Virology Access Button"; + pixel_x = -24; + pixel_y = 0; + req_access_txt = "39" + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"axM" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/window, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"axN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"axO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"axP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"axQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"axR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"axS" = ( +/turf/open/floor/plasteel/freezer, +/area/medical/genetics) +"axT" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1 + }, +/mob/living/carbon/monkey, +/turf/open/floor/plasteel/freezer, +/area/medical/genetics) +"axU" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/mob/living/carbon/monkey, +/turf/open/floor/plasteel/freezer, +/area/medical/genetics) +"axV" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"axW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"axX" = ( +/obj/structure/window/fulltile, +/obj/structure/grille, +/turf/open/floor/plating, +/area/toxins/xenobiology) +"axY" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/research{ + name = "Xenobiology Lab"; + req_access_txt = "55" + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"axZ" = ( +/obj/machinery/camera{ + c_tag = "Toxins Lab"; + dir = 4; + network = list("SS13","RD") + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"aya" = ( +/turf/open/floor/plasteel/warnwhite{ + dir = 4 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"ayb" = ( +/obj/machinery/light, +/obj/machinery/portable_atmospherics/pump, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"ayc" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/item/weapon/storage/firstaid/toxin, +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"ayd" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"aye" = ( +/turf/open/floor/plasteel/warning/corner{ + dir = 4 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"ayf" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/fore) +"ayg" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/closed/wall/r_wall, +/area/crew_quarters/hor) +"ayh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/displaycase/labcage, +/obj/machinery/ai_status_display{ + pixel_x = -32 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 8 + }, +/area/crew_quarters/hor) +"ayi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/hor) +"ayj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/rack, +/obj/item/device/aicard, +/turf/open/floor/plasteel/warnwhite{ + dir = 4 + }, +/area/crew_quarters/hor) +"ayk" = ( +/obj/machinery/computer/robotics, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/hor) +"ayl" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/effect/landmark/start{ + name = "Research Director" + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/hor) +"aym" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "Biohazard"; + name = "Biohazard Shutter Control"; + pixel_x = 0; + pixel_y = 0; + req_access_txt = "47" + }, +/obj/structure/table, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/hor) +"ayn" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/crew_quarters/hor) +"ayo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"ayp" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/whitepurple/corner, +/area/medical/research{ + name = "Research Division" + }) +"ayq" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating, +/area/maintenance/fore) +"ayr" = ( +/obj/structure/grille, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fore) +"ays" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/obj/item/weapon/wirecutters, +/turf/open/floor/plating, +/area/maintenance/fore) +"ayt" = ( +/obj/item/stack/rods, +/turf/open/floor/plating, +/area/maintenance/fore) +"ayu" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fore) +"ayv" = ( +/obj/effect/decal/cleanable/robot_debris, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"ayw" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"ayx" = ( +/obj/item/stack/sheet/cardboard, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"ayy" = ( +/obj/structure/sink{ + pixel_y = 26 + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"ayz" = ( +/obj/structure/chair/stool, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"ayA" = ( +/obj/machinery/holopad, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"ayB" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"ayC" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/closed/wall/r_wall, +/area/atmos) +"ayD" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/plating, +/area/atmos) +"ayE" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/open/floor/plating, +/area/atmos) +"ayF" = ( +/obj/structure/lattice, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"ayG" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/closed/wall, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"ayH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-j2"; + dir = 2 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"ayI" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Medbay Maintenance"; + req_access_txt = "5" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/medbay{ + name = "Medbay Central" + }) +"ayJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/medbay{ + name = "Medbay Central" + }) +"ayK" = ( +/obj/machinery/light/small, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/medbay{ + name = "Medbay Central" + }) +"ayL" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/freezer, +/area/medical/medbay{ + name = "Medbay Central" + }) +"ayM" = ( +/obj/machinery/door/airlock{ + name = "Unisex Restrooms"; + req_access_txt = "0" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/medbay{ + name = "Medbay Central" + }) +"ayN" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/medbay{ + name = "Medbay Central" + }) +"ayO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/cafeteria, +/area/medical/medbay{ + name = "Medbay Central" + }) +"ayP" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/medbay{ + name = "Medbay Central" + }) +"ayQ" = ( +/obj/structure/table/glass, +/obj/item/weapon/storage/box/donkpockets, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/medbay{ + name = "Medbay Central" + }) +"ayR" = ( +/turf/open/floor/plasteel/whitegreen/side{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"ayS" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/whitegreen/side{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"ayT" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"ayU" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"ayV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"ayW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/rods, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"ayX" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Genetics Maintenance"; + req_access_txt = "9"; + req_one_access_txt = "0" + }, +/turf/open/floor/plating, +/area/medical/genetics) +"ayY" = ( +/obj/structure/window/reinforced, +/mob/living/carbon/monkey, +/turf/open/floor/plasteel/freezer, +/area/medical/genetics) +"ayZ" = ( +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/freezer, +/area/medical/genetics) +"aza" = ( +/obj/machinery/door/window/westleft{ + dir = 2; + name = "Monkey Pen"; + req_access_txt = "9" + }, +/mob/living/carbon/monkey, +/turf/open/floor/plasteel/freezer, +/area/medical/genetics) +"azb" = ( +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/mob/living/carbon/monkey, +/turf/open/floor/plasteel/freezer, +/area/medical/genetics) +"azc" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = -27 + }, +/turf/open/floor/plasteel/whitebot{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"azd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/sign/securearea{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"aze" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/medical/research{ + name = "Research Division" + }) +"azf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/poddoor/preopen{ + id = "Biohazard"; + name = "biohazard containment door" + }, +/turf/open/floor/plasteel/delivery, +/area/medical/research{ + name = "Research Division" + }) +"azg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"azh" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"azi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"azj" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"azk" = ( +/obj/structure/tank_dispenser, +/turf/open/floor/plasteel/white, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"azl" = ( +/obj/machinery/airalarm{ + frequency = 1439; + pixel_y = 23 + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"azm" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"azn" = ( +/turf/open/floor/plasteel/white, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"azo" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/landmark/start{ + name = "Scientist" + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"azp" = ( +/obj/structure/sign/nosmoking_2{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 4 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"azq" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fore) +"azr" = ( +/turf/open/floor/plasteel/warnwhite{ + dir = 10 + }, +/area/crew_quarters/hor) +"azs" = ( +/turf/open/floor/plasteel/warnwhite, +/area/crew_quarters/hor) +"azt" = ( +/obj/structure/rack, +/obj/item/weapon/circuitboard/aicore{ + pixel_x = -2; + pixel_y = 4 + }, +/obj/item/weapon/circuitboard/computer/teleporter, +/turf/open/floor/plasteel/warnwhite{ + dir = 6 + }, +/area/crew_quarters/hor) +"azu" = ( +/obj/machinery/computer/aifixer, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -29 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/hor) +"azv" = ( +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the RD's goons from the safety of his office."; + dir = 1; + name = "Research Monitor"; + network = list("RD"); + pixel_y = 2 + }, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Research Director's Desk"; + departmentType = 5; + name = "Research Director RC"; + pixel_y = -30 + }, +/obj/structure/table, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/hor) +"azw" = ( +/obj/item/weapon/folder/white, +/obj/item/weapon/stamp/rd{ + pixel_x = 3; + pixel_y = -2 + }, +/obj/machinery/keycard_auth{ + pixel_y = -23 + }, +/obj/structure/table, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/hor) +"azx" = ( +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"azy" = ( +/obj/structure/closet/wardrobe/science_white, +/turf/open/floor/plasteel, +/area/medical/research{ + name = "Research Division" + }) +"azz" = ( +/obj/structure/table/glass, +/obj/machinery/microwave{ + pixel_x = -3; + pixel_y = 6 + }, +/obj/machinery/ai_status_display{ + pixel_y = 32 + }, +/obj/machinery/light_switch{ + pixel_x = -20 + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/research{ + name = "Research Division" + }) +"azA" = ( +/obj/structure/table/glass, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = 32 + }, +/obj/item/weapon/storage/box/donkpockets, +/turf/open/floor/plasteel/cafeteria, +/area/medical/research{ + name = "Research Division" + }) +"azB" = ( +/obj/structure/table/glass, +/obj/machinery/airalarm{ + pixel_y = 25 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/research{ + name = "Research Division" + }) +"azC" = ( +/obj/machinery/status_display{ + layer = 4; + pixel_y = 32 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/research{ + name = "Research Division" + }) +"azD" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/oil, +/obj/item/weapon/electronics/firealarm, +/turf/open/floor/plating, +/area/maintenance/fore) +"azE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/closed/wall, +/area/maintenance/fore) +"azF" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"azG" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating, +/area/maintenance/fore) +"azH" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Filter to Mix"; + on = 0 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/green/side{ + dir = 9 + }, +/area/atmos) +"azI" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 6 + }, +/obj/machinery/computer/atmos_control/tank{ + frequency = 1441; + input_tag = "mix_in"; + name = "Gas Mix Tank Control"; + output_tag = "mix_in"; + sensors = list("mix_sensor" = "Tank") + }, +/turf/open/floor/plasteel/green/side{ + dir = 1 + }, +/area/atmos) +"azJ" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 2; + name = "Mix Outlet Pump"; + on = 0 + }, +/turf/open/floor/plasteel/green/side{ + dir = 5 + }, +/area/atmos) +"azK" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/atmos) +"azL" = ( +/obj/machinery/atmospherics/components/trinary/filter{ + dir = 8; + filter_type = "n2o"; + on = 1 + }, +/turf/open/floor/plasteel/escape{ + dir = 9 + }, +/area/atmos) +"azM" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/computer/atmos_control/tank{ + frequency = 1441; + input_tag = "n2o_in"; + name = "Nitrous Oxide Supply Control"; + output_tag = "n2o_out"; + sensors = list("n2o_sensor" = "Tank") + }, +/turf/open/floor/plasteel, +/area/atmos) +"azN" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 2; + name = "N2O Outlet Pump"; + on = 0 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/escape{ + dir = 5 + }, +/area/atmos) +"azO" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plasteel/bot, +/area/atmos) +"azP" = ( +/obj/machinery/atmospherics/components/trinary/filter{ + dir = 8; + filter_type = "plasma"; + on = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/atmos) +"azQ" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/computer/atmos_control/tank{ + frequency = 1441; + input_tag = "tox_in"; + name = "Plasma Supply Control"; + output_tag = "tox_out"; + sensors = list("tox_sensor" = "Tank") + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/atmos) +"azR" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 2; + name = "Plasma Outlet Pump"; + on = 0 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/atmos) +"azS" = ( +/obj/machinery/atmospherics/components/trinary/filter{ + dir = 8; + filter_type = "co2"; + on = 1 + }, +/turf/open/floor/plasteel/caution{ + dir = 9 + }, +/area/atmos) +"azT" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Atmospherics North East" + }, +/obj/machinery/computer/atmos_control/tank{ + frequency = 1441; + input_tag = "co2_in"; + name = "Carbon Dioxide Supply Control"; + output_tag = "co2_out"; + sensors = list("co2_sensor" = "Tank") + }, +/turf/open/floor/plasteel/caution{ + dir = 1 + }, +/area/atmos) +"azU" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 2; + name = "CO2 Outlet Pump"; + on = 0 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/caution{ + dir = 5 + }, +/area/atmos) +"azV" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/atmos) +"azW" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"azX" = ( +/obj/machinery/door/airlock{ + name = "Unit 2" + }, +/turf/open/floor/plasteel/freezer, +/area/medical/medbay{ + name = "Medbay Central" + }) +"azY" = ( +/obj/machinery/door/airlock{ + name = "Unit 1" + }, +/turf/open/floor/plasteel/freezer, +/area/medical/medbay{ + name = "Medbay Central" + }) +"azZ" = ( +/obj/machinery/vending/coffee, +/obj/machinery/camera{ + c_tag = "Medbay Break Room"; + dir = 4; + network = list("SS13","Medbay") + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aAa" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/cafeteria, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aAb" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start{ + name = "Medical Doctor" + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aAc" = ( +/obj/structure/table/glass, +/turf/open/floor/plasteel/cafeteria, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aAd" = ( +/obj/structure/window/fulltile, +/obj/structure/grille, +/turf/open/floor/plating, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aAe" = ( +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aAf" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/whitebot{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aAg" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Medbay Maintenance"; + req_access_txt = "5" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aAh" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aAi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aAj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aAk" = ( +/obj/effect/decal/cleanable/robot_debris, +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aAl" = ( +/obj/structure/table/glass, +/obj/item/device/flashlight/pen, +/obj/item/device/flashlight/pen{ + pixel_x = 4; + pixel_y = 3 + }, +/obj/item/weapon/storage/pill_bottle/mutadone, +/obj/item/weapon/storage/pill_bottle/mannitol, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 9 + }, +/area/medical/genetics) +"aAm" = ( +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aAn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/machinery/airalarm{ + frequency = 1439; + pixel_y = 23 + }, +/obj/machinery/camera{ + c_tag = "Genetics Research"; + network = list("SS13","RD") + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aAo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aAp" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aAq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aAr" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/hor) +"aAs" = ( +/obj/machinery/holopad, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/hor) +"aAt" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/hor) +"aAu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"aAv" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"aAw" = ( +/obj/machinery/door/airlock/research{ + name = "Genetics Research Access"; + req_access_txt = "47" + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"aAx" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"aAy" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/whitepurple/corner, +/area/medical/research{ + name = "Research Division" + }) +"aAz" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"aAA" = ( +/obj/machinery/camera{ + c_tag = "Research Division West"; + dir = 8 + }, +/turf/open/floor/plasteel/whitepurple/corner, +/area/medical/research{ + name = "Research Division" + }) +"aAB" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"aAC" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4; + name = "port to mix" + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 8 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"aAD" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel/white, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"aAE" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"aAF" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"aAG" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/machinery/embedded_controller/radio/airlock_controller{ + airpump_tag = "tox_airlock_pump"; + exterior_door_tag = "tox_airlock_exterior"; + id_tag = "tox_airlock_control"; + interior_door_tag = "tox_airlock_interior"; + pixel_x = 24; + sanitize_external = 1; + sensor_tag = "tox_airlock_sensor" + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 4 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"aAH" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"aAI" = ( +/obj/machinery/airlock_sensor{ + id_tag = "tox_airlock_sensor"; + master_tag = "tox_airlock_control"; + pixel_y = 24 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/engine, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"aAJ" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 8; + frequency = 1443; + id = "air_in" + }, +/obj/machinery/sparker{ + id = "mixingsparker"; + pixel_y = 25 + }, +/turf/open/floor/engine/vacuum, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"aAK" = ( +/turf/open/floor/engine/vacuum, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"aAL" = ( +/obj/machinery/sparker{ + id = "mixingsparker"; + pixel_y = 25 + }, +/turf/open/floor/engine/vacuum, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"aAM" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/obj/item/trash/candy, +/turf/open/floor/plating, +/area/maintenance/fore) +"aAN" = ( +/turf/closed/wall/r_wall, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"aAO" = ( +/turf/closed/wall, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"aAP" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/item/device/radio/intercom{ + dir = 4; + name = "Station Intercom (General)"; + pixel_x = -27 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"aAQ" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/medical/research{ + name = "Research Division" + }) +"aAR" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/cafeteria, +/area/medical/research{ + name = "Research Division" + }) +"aAS" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start{ + name = "Scientist" + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/research{ + name = "Research Division" + }) +"aAT" = ( +/obj/machinery/newscaster{ + pixel_x = 30 + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/research{ + name = "Research Division" + }) +"aAU" = ( +/obj/structure/sink{ + pixel_y = 26 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/research{ + name = "Research Division" + }) +"aAV" = ( +/obj/structure/sink{ + pixel_y = 26 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/research{ + name = "Research Division" + }) +"aAW" = ( +/obj/structure/sink{ + pixel_y = 26 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/research{ + name = "Research Division" + }) +"aAX" = ( +/turf/closed/wall/r_wall, +/area/medical/research{ + name = "Research Division" + }) +"aAY" = ( +/turf/open/floor/plating/warnplate, +/area/maintenance/fore) +"aAZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating/warnplate, +/area/maintenance/fore) +"aBa" = ( +/obj/structure/closet/crate/medical, +/obj/item/stack/medical/bruise_pack{ + amount = 1 + }, +/obj/item/stack/medical/ointment{ + amount = 2 + }, +/obj/item/weapon/reagent_containers/glass/beaker, +/turf/open/floor/plating/warnplate, +/area/maintenance/fore) +"aBb" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fore) +"aBc" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 5; + initialize_directions = 12 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = -30 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aBd" = ( +/obj/machinery/atmospherics/pipe/manifold/green/visible, +/obj/effect/landmark/start{ + name = "Atmospheric Technician" + }, +/turf/open/floor/plasteel, +/area/atmos) +"aBe" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Pure to Mix"; + on = 0 + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/open/floor/plasteel, +/area/atmos) +"aBf" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/atmos) +"aBg" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aBh" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible, +/turf/open/floor/plasteel, +/area/atmos) +"aBi" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aBj" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aBk" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/plasteel, +/area/atmos) +"aBl" = ( +/obj/structure/toilet{ + dir = 1 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aBm" = ( +/obj/structure/toilet{ + dir = 1 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/landmark/start{ + name = "Medical Doctor" + }, +/turf/open/floor/plasteel/freezer, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aBn" = ( +/obj/machinery/vending/cola, +/obj/item/device/radio/intercom{ + broadcasting = 1; + frequency = 1485; + listening = 0; + name = "Station Intercom (Medbay)"; + pixel_x = -27 + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aBo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/cafeteria, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aBp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aBq" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/cafeteria, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aBr" = ( +/obj/item/device/radio/intercom{ + dir = 4; + name = "Station Intercom (General)"; + pixel_x = 27 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aBs" = ( +/turf/closed/wall, +/area/medical/cryo) +"aBt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/maintenance{ + name = "Medbay Maintenance"; + req_access_txt = "5" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/medical/cryo) +"aBu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/medical/cryo) +"aBv" = ( +/obj/structure/table/glass, +/obj/item/weapon/folder/white, +/obj/item/device/radio/headset/headset_medsci, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 8 + }, +/area/medical/genetics) +"aBw" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aBx" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aBy" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aBz" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aBA" = ( +/obj/structure/table/glass, +/obj/item/weapon/storage/box/rxglasses, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/power/apc{ + dir = 4; + name = "Genetics APC"; + pixel_x = 27 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 4 + }, +/area/medical/genetics) +"aBB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/medical/genetics) +"aBC" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitebot{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"aBD" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Genetics Access"; + dir = 8; + pixel_y = -22 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"aBE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/toxins/storage) +"aBF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/toxins/storage) +"aBG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/closed/wall, +/area/toxins/storage) +"aBH" = ( +/turf/closed/wall, +/area/toxins/storage) +"aBI" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"aBJ" = ( +/turf/open/floor/plasteel/warnwhite{ + dir = 8 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"aBK" = ( +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"aBL" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"aBM" = ( +/obj/machinery/door/airlock/glass_research{ + autoclose = 0; + frequency = 1449; + heat_proof = 1; + icon_state = "door_locked"; + id_tag = "tox_airlock_interior"; + locked = 1; + name = "Mixing Room Interior Airlock"; + req_access_txt = "8" + }, +/turf/open/floor/engine, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"aBN" = ( +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume{ + dir = 2; + frequency = 1449; + id = "tox_airlock_pump" + }, +/turf/open/floor/engine, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"aBO" = ( +/obj/machinery/door/airlock/glass_research{ + autoclose = 0; + frequency = 1449; + heat_proof = 1; + icon_state = "door_locked"; + id_tag = "tox_airlock_exterior"; + locked = 1; + name = "Mixing Room Exterior Airlock"; + req_access_txt = "8" + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 6 + }, +/turf/open/floor/engine, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"aBP" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + external_pressure_bound = 0; + initialize_directions = 1; + internal_pressure_bound = 4000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine/vacuum, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"aBQ" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 32 + }, +/turf/open/floor/engine/vacuum, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"aBR" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/weapon/reagent_containers/syringe, +/turf/open/floor/plating, +/area/maintenance/fore) +"aBS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/decal/cleanable/oil, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/maintenance/fore) +"aBT" = ( +/obj/machinery/newscaster{ + pixel_x = -30 + }, +/obj/item/device/radio/intercom{ + pixel_y = 26 + }, +/obj/item/weapon/screwdriver{ + pixel_y = 10 + }, +/obj/item/device/radio/off, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"aBU" = ( +/obj/machinery/airalarm{ + pixel_y = 25 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"aBV" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Science Security APC"; + pixel_y = 24 + }, +/obj/machinery/camera{ + c_tag = "Security Post - Science"; + network = list("SS13","RD") + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"aBW" = ( +/obj/machinery/light_switch{ + pixel_x = 8; + pixel_y = 22 + }, +/obj/machinery/button/door{ + id = "Biohazard"; + name = "Biohazard Shutter Control"; + pixel_x = -5; + pixel_y = 22; + req_access_txt = "47" + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"aBX" = ( +/obj/machinery/computer/secure_data, +/obj/machinery/requests_console{ + department = "Security"; + departmentType = 5; + pixel_y = 25 + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"aBY" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"aBZ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"aCa" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/corner, +/area/medical/research{ + name = "Research Division" + }) +"aCb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/research{ + name = "Research Break Room"; + req_access_txt = "47" + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/research{ + name = "Research Division" + }) +"aCc" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/research{ + name = "Research Division" + }) +"aCd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/research{ + name = "Research Division" + }) +"aCe" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/research{ + name = "Research Division" + }) +"aCf" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/research{ + name = "Research Division" + }) +"aCg" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/hor) +"aCh" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/glass_command{ + name = "Research Director"; + req_access_txt = "30" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/hor) +"aCi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fore) +"aCj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/item/stack/sheet/cardboard, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fore) +"aCk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aCl" = ( +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-j2"; + dir = 1 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4; + initialize_directions = 11 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aCm" = ( +/obj/structure/grille, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fore) +"aCn" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plating, +/area/storage/tech) +"aCo" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plating, +/area/storage/tech) +"aCp" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plating, +/area/storage/tech) +"aCq" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/atmos) +"aCr" = ( +/obj/machinery/camera{ + c_tag = "Atmospherics North West"; + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Mix to Incinerator"; + on = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aCs" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aCt" = ( +/turf/open/floor/plasteel, +/area/atmos) +"aCu" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/open/floor/plasteel, +/area/atmos) +"aCv" = ( +/obj/machinery/camera{ + c_tag = "Atmospherics North East"; + dir = 8 + }, +/obj/machinery/atmospherics/components/trinary/filter{ + dir = 1; + filter_type = "o2"; + on = 1 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 5 + }, +/area/atmos) +"aCw" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/space, +/area/space) +"aCx" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/meter, +/turf/closed/wall/r_wall, +/area/atmos) +"aCy" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 8; + frequency = 1441; + id = "o2_in" + }, +/turf/open/floor/engine/o2, +/area/atmos) +"aCz" = ( +/turf/open/floor/engine/o2, +/area/atmos) +"aCA" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/cafeteria, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aCB" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = -29 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aCC" = ( +/obj/machinery/light/small, +/turf/open/floor/plasteel/cafeteria, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aCD" = ( +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aCE" = ( +/obj/machinery/door/airlock/medical{ + name = "Medbay Break Room"; + req_access_txt = "5" + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aCF" = ( +/obj/machinery/computer/med_data, +/turf/open/floor/plasteel, +/area/medical/cryo) +"aCG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/bot, +/area/medical/cryo) +"aCH" = ( +/obj/structure/closet/secure_closet/medical1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/medical/cryo) +"aCI" = ( +/obj/structure/closet/wardrobe/pjs, +/turf/open/floor/plasteel, +/area/medical/cryo) +"aCJ" = ( +/obj/structure/closet/secure_closet/medical1, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 8 + }, +/area/medical/genetics) +"aCK" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aCL" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aCM" = ( +/obj/structure/table/glass, +/obj/item/weapon/storage/box/disks{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/requests_console{ + department = "Genetics"; + name = "Genetics Requests Console"; + pixel_x = 30 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aCN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/toxins/storage) +"aCO" = ( +/turf/closed/wall/r_wall, +/area/toxins/storage) +"aCP" = ( +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/turf/open/floor/plasteel/bot, +/area/toxins/storage) +"aCQ" = ( +/obj/machinery/portable_atmospherics/canister/carbon_dioxide, +/turf/open/floor/plasteel/bot, +/area/toxins/storage) +"aCR" = ( +/obj/machinery/portable_atmospherics/canister/nitrogen, +/turf/open/floor/plasteel/bot, +/area/toxins/storage) +"aCS" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"aCT" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4; + name = "mix to port" + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 8 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"aCU" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/machinery/light_switch{ + pixel_y = -28 + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"aCV" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "mixvent"; + name = "Mixing Room Vent Control"; + pixel_x = 25; + pixel_y = 5; + req_access_txt = "7" + }, +/obj/machinery/button/ignition{ + id = "mixingsparker"; + pixel_x = 25; + pixel_y = -5 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 4 + }, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"aCW" = ( +/obj/structure/sign/fire{ + pixel_x = 32; + pixel_y = 0 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/engine, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"aCX" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"aCY" = ( +/obj/machinery/door/poddoor{ + id = "mixvent"; + name = "Mixer Room Vent" + }, +/turf/open/floor/engine/vacuum, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"aCZ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fore) +"aDa" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fore) +"aDb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"aDc" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = -30 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"aDd" = ( +/turf/open/floor/plasteel, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"aDe" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"aDf" = ( +/obj/structure/chair/office/dark, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"aDg" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"aDh" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/glass_security{ + name = "Security Office"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/white, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"aDi" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"aDj" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/research{ + name = "Research Division" + }) +"aDk" = ( +/turf/open/floor/plasteel/cafeteria, +/area/medical/research{ + name = "Research Division" + }) +"aDl" = ( +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/research{ + name = "Research Division" + }) +"aDm" = ( +/obj/structure/disposalpipe/segment, +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = 29 + }, +/obj/machinery/camera{ + c_tag = "Research Break Room"; + dir = 8; + network = list("SS13","RD") + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/research{ + name = "Research Division" + }) +"aDn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/medical/research{ + name = "Research Division" + }) +"aDo" = ( +/obj/machinery/door/airlock{ + name = "Unit 1" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/research{ + name = "Research Division" + }) +"aDp" = ( +/obj/machinery/door/airlock{ + name = "Unit 2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/freezer, +/area/medical/research{ + name = "Research Division" + }) +"aDq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/medical/research{ + name = "Research Division" + }) +"aDr" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fore) +"aDs" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aDt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/cigbutt, +/turf/open/floor/plating, +/area/maintenance/fore) +"aDu" = ( +/obj/effect/decal/cleanable/oil, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aDv" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fore) +"aDw" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/storage/tech) +"aDx" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/circuitboard/computer/robotics{ + pixel_x = -2; + pixel_y = 2 + }, +/obj/item/weapon/circuitboard/computer/mecha_control{ + pixel_x = 1; + pixel_y = -1 + }, +/turf/open/floor/plasteel, +/area/storage/tech) +"aDy" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/circuitboard/computer/crew{ + pixel_x = -1; + pixel_y = 1 + }, +/obj/item/weapon/circuitboard/computer/card{ + pixel_x = 2; + pixel_y = -2 + }, +/obj/item/weapon/circuitboard/computer/communications{ + pixel_x = 5; + pixel_y = -5 + }, +/turf/open/floor/plasteel, +/area/storage/tech) +"aDz" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/circuitboard/computer/borgupload{ + pixel_x = -1; + pixel_y = 1 + }, +/obj/item/weapon/circuitboard/computer/aiupload{ + pixel_x = 2; + pixel_y = -2 + }, +/turf/open/floor/plasteel, +/area/storage/tech) +"aDA" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plating, +/area/storage/tech) +"aDB" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating, +/area/maintenance/fore) +"aDC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/atmos) +"aDD" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aDE" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 2; + name = "Mix to Distro"; + on = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aDF" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aDG" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aDH" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/atmos) +"aDI" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/computer/atmos_control/tank{ + frequency = 1441; + input_tag = "o2_in"; + name = "Oxygen Supply Control"; + output_tag = "o2_out"; + sensors = list("o2_sensor" = "Tank") + }, +/turf/open/floor/plasteel/blue/side{ + dir = 4 + }, +/area/atmos) +"aDJ" = ( +/obj/machinery/air_sensor{ + frequency = 1441; + id_tag = "n2_sensor" + }, +/turf/open/floor/engine/o2, +/area/atmos) +"aDK" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/engine/o2, +/area/atmos) +"aDL" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable, +/turf/open/space, +/area/solar/auxport) +"aDM" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/space, +/area/space) +"aDN" = ( +/obj/machinery/door/airlock/external, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aDO" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_y = 32 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aDP" = ( +/obj/machinery/door/airlock/external, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aDQ" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aDR" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aDS" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aDT" = ( +/obj/item/stack/rods, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aDU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aDV" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/closed/wall, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aDW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/closed/wall, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aDX" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aDY" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plasteel, +/area/medical/cryo) +"aDZ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/medical/cryo) +"aEa" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/medical/cryo) +"aEb" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + dir = 4; + name = "Cryogenics APC"; + pixel_x = 25 + }, +/obj/structure/table, +/obj/item/clothing/suit/straight_jacket, +/obj/item/clothing/mask/muzzle, +/turf/open/floor/plasteel, +/area/medical/cryo) +"aEc" = ( +/obj/structure/closet/secure_closet/personal/patient, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 8 + }, +/area/medical/genetics) +"aEd" = ( +/obj/structure/chair/office/light, +/obj/effect/landmark/start{ + name = "Geneticist" + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aEe" = ( +/obj/item/device/radio/intercom{ + broadcasting = 1; + frequency = 1485; + listening = 0; + name = "Station Intercom (Medbay)"; + pixel_x = 28 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aEf" = ( +/obj/machinery/meter{ + frequency = 1443; + name = "Distribution Loop" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/visible{ + dir = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/atmos) +"aEg" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 + }, +/obj/machinery/portable_atmospherics/canister/nitrogen, +/turf/open/floor/plasteel/bot, +/area/toxins/storage) +"aEh" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/airlock/research{ + name = "Toxins Lab"; + req_access_txt = "8" + }, +/turf/open/floor/plasteel/white, +/area/toxins/mixing{ + name = "\improper Toxins Lab" + }) +"aEi" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fore) +"aEj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/robot_debris{ + icon_state = "gib7" + }, +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/fore) +"aEk" = ( +/obj/structure/filingcabinet, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"aEl" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/red/side, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"aEm" = ( +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/weapon/book/manual/wiki/security_space_law, +/turf/open/floor/plasteel/red/side, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"aEn" = ( +/obj/structure/table, +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the RD's goons from the safety of your own office."; + dir = 1; + name = "Research Monitor"; + network = list("RD"); + pixel_y = 2 + }, +/turf/open/floor/plasteel/red/side, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"aEo" = ( +/obj/structure/table, +/obj/machinery/recharger{ + pixel_y = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"aEp" = ( +/obj/machinery/vending/cigarette, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/research{ + name = "Research Division" + }) +"aEq" = ( +/obj/machinery/vending/cola, +/turf/open/floor/plasteel/cafeteria, +/area/medical/research{ + name = "Research Division" + }) +"aEr" = ( +/obj/machinery/vending/coffee, +/obj/machinery/light/small, +/turf/open/floor/plasteel/cafeteria, +/area/medical/research{ + name = "Research Division" + }) +"aEs" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/research{ + name = "Research Division" + }) +"aEt" = ( +/obj/structure/toilet{ + dir = 1 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/research{ + name = "Research Division" + }) +"aEu" = ( +/obj/structure/toilet{ + dir = 1 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/landmark/start{ + name = "Scientist" + }, +/turf/open/floor/plasteel/freezer, +/area/medical/research{ + name = "Research Division" + }) +"aEv" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/item/stack/rods, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fore) +"aEw" = ( +/obj/item/weapon/shard{ + icon_state = "medium" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fore) +"aEx" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aEy" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/fore) +"aEz" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/storage/tech) +"aEA" = ( +/obj/machinery/light/small, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/storage/tech) +"aEB" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/storage/tech) +"aEC" = ( +/obj/machinery/camera{ + c_tag = "Secure Tech Storage"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/storage/tech) +"aED" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aEE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/robot_debris{ + icon_state = "gib7" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aEF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 4 + }, +/area/medical/genetics) +"aEG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aEH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/research{ + name = "Genetics Research"; + req_access_txt = "9" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aEI" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/corner, +/area/medical/research{ + name = "Research Division" + }) +"aEJ" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aEK" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aEL" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aEM" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/open/floor/plasteel, +/area/atmos) +"aEN" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 10; + initialize_directions = 10 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aEO" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 6; + initialize_directions = 10 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aEP" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "O2 Outlet Pump"; + on = 1 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 6 + }, +/area/atmos) +"aEQ" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/turf/open/space, +/area/space) +"aER" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/machinery/meter, +/turf/closed/wall/r_wall, +/area/atmos) +"aES" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + external_pressure_bound = 0; + frequency = 1441; + id_tag = "o2_out"; + initialize_directions = 1; + internal_pressure_bound = 4000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine/o2, +/area/atmos) +"aET" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aEU" = ( +/obj/item/weapon/cigbutt, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aEV" = ( +/obj/effect/decal/cleanable/oil, +/obj/machinery/atmospherics/components/binary/valve, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aEW" = ( +/obj/effect/decal/cleanable/robot_debris{ + icon_state = "gib3" + }, +/obj/machinery/atmospherics/components/binary/valve, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aEX" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/medical, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aEY" = ( +/obj/machinery/vending/wallmed{ + pixel_y = 28 + }, +/obj/item/weapon/folder/white, +/obj/item/clothing/neck/stethoscope, +/obj/structure/table, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aEZ" = ( +/obj/item/weapon/folder/white, +/obj/item/clothing/neck/stethoscope, +/obj/machinery/vending/wallmed{ + pixel_y = 28 + }, +/obj/structure/table, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aFa" = ( +/obj/machinery/camera{ + c_tag = "Medbay North"; + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aFb" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/item/device/radio/intercom{ + broadcasting = 1; + frequency = 1485; + listening = 0; + name = "Station Intercom (Medbay)"; + pixel_x = -27 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4; + name = "connector port (Air Supply)" + }, +/turf/open/floor/plasteel/bot{ + dir = 1 + }, +/area/medical/cryo) +"aFc" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10; + initialize_directions = 10 + }, +/turf/open/floor/plasteel, +/area/medical/cryo) +"aFd" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/medical/cryo) +"aFe" = ( +/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{ + pixel_x = 7; + pixel_y = 1 + }, +/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone, +/obj/structure/table, +/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{ + pixel_x = 7; + pixel_y = 1 + }, +/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone, +/obj/item/weapon/wrench/medical, +/turf/open/floor/plasteel, +/area/medical/cryo) +"aFf" = ( +/obj/structure/closet/wardrobe/genetics_white, +/obj/machinery/light_switch{ + pixel_x = -25 + }, +/obj/item/weapon/storage/backpack/satchel/gen, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 10 + }, +/area/medical/genetics) +"aFg" = ( +/obj/machinery/dna_scannernew, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 10 + }, +/area/medical/genetics) +"aFh" = ( +/obj/machinery/computer/scan_consolenew, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 6 + }, +/area/medical/genetics) +"aFi" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aFj" = ( +/obj/machinery/computer/scan_consolenew, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 10 + }, +/area/medical/genetics) +"aFk" = ( +/obj/machinery/dna_scannernew, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 6 + }, +/area/medical/genetics) +"aFl" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aFm" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/closed/wall/r_wall, +/area/toxins/storage) +"aFn" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/power/apc{ + dir = 8; + name = "Toxins Storage APC"; + pixel_x = -25 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/storage) +"aFo" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/storage) +"aFp" = ( +/turf/open/floor/plasteel/floorgrime, +/area/toxins/storage) +"aFq" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Toxins Storage"; + dir = 8; + network = list("SS13","RD") + }, +/obj/machinery/light_switch{ + pixel_x = 23 + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/storage) +"aFr" = ( +/obj/structure/closet/bombcloset, +/turf/open/floor/plasteel, +/area/medical/research{ + name = "Research Division" + }) +"aFs" = ( +/turf/open/floor/plasteel/warnwhite{ + dir = 10 + }, +/area/medical/research{ + name = "Research Division" + }) +"aFt" = ( +/turf/open/floor/plasteel/warnwhite, +/area/medical/research{ + name = "Research Division" + }) +"aFu" = ( +/turf/open/floor/plasteel/warnwhite{ + dir = 6 + }, +/area/medical/research{ + name = "Research Division" + }) +"aFv" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel, +/area/medical/research{ + name = "Research Division" + }) +"aFw" = ( +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plasteel, +/area/medical/research{ + name = "Research Division" + }) +"aFx" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor/heavy, +/turf/open/floor/plating, +/area/medical/research{ + name = "Research Division" + }) +"aFy" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/maintenance{ + name = "Research Maintenance"; + req_access_txt = "7"; + req_one_access_txt = "0" + }, +/turf/open/floor/plating, +/area/medical/research{ + name = "Research Division" + }) +"aFz" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/security/checkpoint/science{ + name = "Security Post - Research Division" + }) +"aFA" = ( +/obj/structure/noticeboard{ + dir = 8; + pixel_x = 27 + }, +/turf/open/floor/plasteel/whitepurple/corner, +/area/medical/research{ + name = "Research Division" + }) +"aFB" = ( +/turf/closed/wall/r_wall, +/area/toxins/explab) +"aFC" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/item/weapon/folder, +/obj/item/weapon/pen, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fore) +"aFD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/maintenance/fore) +"aFE" = ( +/turf/closed/wall, +/area/hallway/primary/starboard) +"aFF" = ( +/turf/closed/wall/r_wall, +/area/storage/tech) +"aFG" = ( +/obj/structure/sign/securearea, +/turf/closed/wall/r_wall, +/area/storage/tech) +"aFH" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/highsecurity{ + name = "Secure Tech Storage"; + req_access_txt = "19;23" + }, +/turf/open/floor/plating, +/area/storage/tech) +"aFI" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE" + }, +/turf/closed/wall/r_wall, +/area/storage/tech) +"aFJ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable, +/turf/open/floor/plating, +/area/storage/tech) +"aFK" = ( +/turf/closed/wall, +/area/storage/tech) +"aFL" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"aFM" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 2; + name = "Distro to Waste"; + on = 0 + }, +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aFN" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 2; + name = "Mix to Filter"; + on = 1 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aFO" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/atmos) +"aFP" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/turf/open/floor/plasteel, +/area/atmos) +"aFQ" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 0; + name = "Air to Port"; + on = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aFR" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 0; + name = "Mix to Port"; + on = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aFS" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 0; + name = "Pure to Port"; + on = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aFT" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plasteel, +/area/atmos) +"aFU" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 2; + name = "O2 to Pure"; + on = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aFV" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/plasteel/bot, +/area/atmos) +"aFW" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aFX" = ( +/obj/machinery/door/airlock{ + name = "Unisex Restrooms"; + req_access_txt = "0" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/research{ + name = "Research Division" + }) +"aFY" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aFZ" = ( +/obj/effect/decal/cleanable/robot_debris{ + icon_state = "gib7" + }, +/obj/item/weapon/storage/box/matches, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aGa" = ( +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 1 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aGb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aGc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/item/device/radio/intercom{ + broadcasting = 1; + frequency = 1485; + listening = 0; + name = "Station Intercom (Medbay)"; + pixel_x = -27 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aGd" = ( +/obj/structure/chair/office/light{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aGe" = ( +/obj/structure/chair/office/light{ + dir = 1 + }, +/obj/item/device/radio/intercom{ + broadcasting = 1; + frequency = 1485; + listening = 0; + name = "Station Intercom (Medbay)"; + pixel_x = -27 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aGf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aGg" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/camera{ + c_tag = "Medbay Cryogenics"; + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4; + name = "connector port (Air Supply)" + }, +/turf/open/floor/plasteel/bot{ + dir = 1 + }, +/area/medical/cryo) +"aGh" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/medical/cryo) +"aGi" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/medical/cryo) +"aGj" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 8 + }, +/turf/open/floor/plasteel/bot{ + dir = 1 + }, +/area/medical/cryo) +"aGk" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/medical/genetics) +"aGl" = ( +/obj/machinery/door/airlock/glass_research{ + name = "Genetics Research"; + req_access_txt = "5; 9" + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aGm" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aGn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance{ + name = "Toxins Storage Maintenance"; + req_access_txt = "8" + }, +/turf/open/floor/plating, +/area/toxins/storage) +"aGo" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/storage) +"aGp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/storage) +"aGq" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/storage) +"aGr" = ( +/obj/machinery/door/airlock/research{ + name = "Toxins Storage"; + req_access_txt = "8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/floorgrime, +/area/toxins/storage) +"aGs" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"aGt" = ( +/obj/machinery/light/small, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/research{ + name = "Research Division" + }) +"aGu" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"aGv" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"aGw" = ( +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"aGx" = ( +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/obj/machinery/camera{ + c_tag = "Research Division Central" + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"aGy" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/sign/fire{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"aGz" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/research{ + name = "Research Division" + }) +"aGA" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Research Maintenance"; + req_access_txt = "7"; + req_one_access_txt = "0" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/research{ + name = "Research Division" + }) +"aGB" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/whitebot{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"aGC" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"aGD" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"aGE" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"aGF" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"aGG" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/toxins/explab) +"aGH" = ( +/obj/item/weapon/paper_bin{ + pixel_y = 6 + }, +/obj/item/weapon/pen, +/obj/structure/table, +/turf/open/floor/plasteel/white/corner, +/area/toxins/explab) +"aGI" = ( +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/obj/item/weapon/folder/white, +/obj/item/weapon/folder/white, +/obj/item/device/radio/off, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/structure/table, +/turf/open/floor/plasteel/white/side, +/area/toxins/explab) +"aGJ" = ( +/obj/machinery/airalarm{ + frequency = 1439; + pixel_y = 23 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/table, +/obj/item/weapon/hand_labeler, +/obj/item/stack/packageWrap, +/turf/open/floor/plasteel/white/side, +/area/toxins/explab) +"aGK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/requests_console{ + department = "Science"; + departmentType = 2; + name = "Science Requests Console"; + pixel_y = 30 + }, +/turf/open/floor/plasteel/white/side, +/area/toxins/explab) +"aGL" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitebot{ + dir = 1 + }, +/area/toxins/explab) +"aGM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/research{ + name = "Research Division" + }) +"aGN" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/fore) +"aGO" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/airlock/maintenance{ + name = "Atmospherics Maintenance"; + req_access_txt = "24" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/atmos) +"aGP" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/visible, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aGQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aGR" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fore) +"aGS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fore) +"aGT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fore) +"aGU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/delivery, +/area/hallway/primary/starboard) +"aGV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/closet/firecloset, +/turf/open/floor/plasteel/delivery, +/area/hallway/primary/starboard) +"aGW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/storage/tech) +"aGX" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/circuitboard/computer/cloning, +/obj/item/weapon/circuitboard/computer/med_data{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/weapon/circuitboard/machine/clonescanner, +/obj/item/weapon/circuitboard/machine/clonepod, +/obj/item/weapon/circuitboard/computer/scan_consolenew, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/storage/tech) +"aGY" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/storage/tech) +"aGZ" = ( +/obj/structure/table, +/obj/item/weapon/stock_parts/micro_laser, +/obj/item/weapon/stock_parts/manipulator, +/obj/item/weapon/stock_parts/manipulator, +/obj/item/weapon/stock_parts/manipulator, +/obj/item/weapon/stock_parts/manipulator, +/obj/item/weapon/stock_parts/capacitor, +/obj/item/weapon/stock_parts/micro_laser/high, +/obj/item/weapon/stock_parts/micro_laser/high, +/obj/item/weapon/stock_parts/micro_laser/high, +/obj/item/weapon/stock_parts/micro_laser/high, +/turf/open/floor/plating, +/area/storage/tech) +"aHa" = ( +/obj/structure/table, +/obj/item/weapon/stock_parts/subspace/amplifier, +/obj/item/weapon/stock_parts/subspace/amplifier, +/obj/item/weapon/stock_parts/subspace/amplifier, +/obj/item/weapon/stock_parts/subspace/analyzer, +/obj/item/weapon/stock_parts/subspace/analyzer, +/obj/item/weapon/stock_parts/subspace/analyzer, +/turf/open/floor/plating, +/area/storage/tech) +"aHb" = ( +/obj/effect/decal/cleanable/robot_debris{ + icon_state = "gib6" + }, +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fore) +"aHc" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aHd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/atmos) +"aHe" = ( +/obj/machinery/meter{ + frequency = 1443; + name = "Waste Loop" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible, +/turf/open/floor/plasteel, +/area/atmos) +"aHf" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Waste In"; + on = 1 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aHg" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aHh" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aHi" = ( +/obj/machinery/atmospherics/components/trinary/mixer{ + dir = 2 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aHj" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aHk" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/turf/open/floor/plasteel, +/area/atmos) +"aHl" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4; + initialize_directions = 11 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aHm" = ( +/obj/machinery/atmospherics/components/trinary/filter{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aHn" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aHo" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aHp" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aHq" = ( +/obj/machinery/atmospherics/components/trinary/filter{ + dir = 1; + filter_type = "n2"; + on = 1 + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/atmos) +"aHr" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 8; + frequency = 1441; + id = "n2_in" + }, +/turf/open/floor/engine/n2, +/area/atmos) +"aHs" = ( +/turf/open/floor/engine/n2, +/area/atmos) +"aHt" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/item/device/assembly/signaler, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aHu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/closed/wall, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aHv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/closed/wall, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aHw" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aHx" = ( +/obj/machinery/button/door{ + id = "medpriv4"; + name = "Privacy Shutters"; + pixel_x = 25; + pixel_y = 0 + }, +/obj/structure/closet/secure_closet/personal/patient, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aHy" = ( +/obj/machinery/button/door{ + id = "medpriv1"; + name = "Privacy Shutters"; + pixel_x = -25; + pixel_y = 0 + }, +/obj/structure/closet/secure_closet/personal/patient, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aHz" = ( +/turf/open/floor/plasteel, +/area/medical/cryo) +"aHA" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/medical/cryo) +"aHB" = ( +/turf/closed/wall, +/area/medical/genetics) +"aHC" = ( +/obj/item/weapon/storage/box/rxglasses{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/bodybags, +/obj/item/weapon/pen, +/obj/structure/table/glass, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aHD" = ( +/obj/structure/table/glass, +/obj/item/weapon/book/manual/medical_cloning{ + pixel_y = 6 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aHE" = ( +/obj/structure/closet/wardrobe/white, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aHF" = ( +/obj/item/weapon/crowbar, +/obj/structure/table, +/obj/item/clothing/neck/stethoscope, +/obj/item/weapon/reagent_containers/spray/cleaner, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 9 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aHG" = ( +/obj/item/weapon/storage/box/masks, +/obj/item/weapon/storage/box/gloves{ + pixel_x = 3; + pixel_y = 4 + }, +/obj/structure/table, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aHH" = ( +/obj/machinery/vending/medical{ + pixel_x = -2 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aHI" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plasteel/bot, +/area/toxins/storage) +"aHJ" = ( +/obj/machinery/portable_atmospherics/canister/toxins, +/turf/open/floor/plasteel/bot, +/area/toxins/storage) +"aHK" = ( +/obj/machinery/portable_atmospherics/scrubber/huge, +/turf/open/floor/plasteel/delivery, +/area/toxins/storage) +"aHL" = ( +/obj/structure/sign/nosmoking_2{ + pixel_x = 0 + }, +/turf/closed/wall, +/area/toxins/storage) +"aHM" = ( +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"aHN" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"aHO" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"aHP" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"aHQ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"aHR" = ( +/obj/structure/cable, +/obj/machinery/power/apc{ + name = "Misc Research APC"; + pixel_y = -25 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"aHS" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"aHT" = ( +/obj/machinery/camera{ + c_tag = "Research Division East"; + dir = 1 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"aHU" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research{ + name = "Experimentation Lab"; + req_access_txt = "7" + }, +/turf/open/floor/plasteel/white, +/area/toxins/explab) +"aHV" = ( +/turf/open/floor/plasteel/white, +/area/toxins/explab) +"aHW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/toxins/explab) +"aHX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/toxins/explab) +"aHY" = ( +/obj/structure/closet/l3closet/scientist{ + pixel_x = -2 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/toxins/explab) +"aHZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/toxins/explab) +"aIa" = ( +/obj/structure/sign/securearea{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fore) +"aIb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/fore) +"aIc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/maintenance/fore) +"aId" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/robot_debris, +/obj/structure/cable, +/obj/machinery/power/apc{ + cell_type = 5000; + name = "Science Maintenance APC"; + pixel_y = -24 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aIe" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/stack/sheet/cardboard, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fore) +"aIf" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fore) +"aIg" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aIh" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/hallway/primary/starboard) +"aIi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/hallway/primary/starboard) +"aIj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/storage/tech) +"aIk" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/circuitboard/computer/secure_data{ + pixel_x = -2; + pixel_y = 2 + }, +/obj/item/weapon/circuitboard/computer/security{ + pixel_x = 1; + pixel_y = -1 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/power/apc{ + dir = 8; + name = "Tech Storage APC"; + pixel_x = -27 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/storage/tech) +"aIl" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/storage/tech) +"aIm" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plating, +/area/storage/tech) +"aIn" = ( +/obj/structure/table, +/obj/machinery/ai_status_display{ + pixel_x = 32 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/item/weapon/stock_parts/subspace/ansible, +/obj/item/weapon/stock_parts/subspace/ansible, +/obj/item/weapon/stock_parts/subspace/ansible, +/obj/item/weapon/stock_parts/subspace/filter, +/obj/item/weapon/stock_parts/subspace/filter, +/obj/item/weapon/stock_parts/subspace/filter, +/turf/open/floor/plating, +/area/storage/tech) +"aIo" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/fore) +"aIp" = ( +/obj/item/weapon/shard, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fore) +"aIq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/atmos) +"aIr" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aIs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aIt" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aIu" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aIv" = ( +/obj/item/device/flashlight/lamp, +/obj/structure/table, +/turf/open/floor/plasteel, +/area/atmos) +"aIw" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "N2 to Pure"; + on = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aIx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 1 + }, +/obj/machinery/computer/atmos_control/tank{ + frequency = 1441; + input_tag = "n2_in"; + name = "Nitrogen Supply Control"; + output_tag = "n2_out"; + sensors = list("n2_sensor" = "Tank") + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/atmos) +"aIy" = ( +/obj/machinery/air_sensor{ + frequency = 1441; + id_tag = "o2_sensor" + }, +/turf/open/floor/engine/n2, +/area/atmos) +"aIz" = ( +/obj/machinery/portable_atmospherics/canister/nitrogen, +/turf/open/floor/engine/n2, +/area/atmos) +"aIA" = ( +/obj/item/weapon/cautery{ + pixel_x = 4 + }, +/obj/structure/table, +/turf/open/floor/plasteel, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aIB" = ( +/obj/item/weapon/surgical_drapes, +/obj/item/weapon/razor, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/obj/structure/table, +/turf/open/floor/plasteel/white/side, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aIC" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/vending/wallmed{ + pixel_y = 28 + }, +/obj/machinery/camera{ + c_tag = "Surgery Operating"; + pixel_x = 22 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aID" = ( +/obj/machinery/airalarm{ + frequency = 1439; + pixel_y = 23 + }, +/turf/open/floor/plasteel/white/side, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aIE" = ( +/obj/structure/closet/crate/freezer/blood, +/turf/open/floor/plasteel, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aIF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aIG" = ( +/obj/machinery/door/airlock/medical{ + name = "Patient Room"; + req_access_txt = "5" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aIH" = ( +/obj/structure/window/fulltile, +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8; + initialize_directions = 11 + }, +/obj/machinery/door/poddoor/preopen{ + id = "medpriv4"; + layer = 3.1; + name = "privacy door" + }, +/turf/open/floor/plating, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aII" = ( +/obj/structure/window/fulltile, +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/machinery/door/poddoor/preopen{ + id = "medpriv1"; + layer = 3.1; + name = "privacy door" + }, +/turf/open/floor/plating, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aIJ" = ( +/obj/machinery/atmospherics/components/unary/cryo_cell{ + dir = 4 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/item/device/radio/intercom{ + broadcasting = 1; + frequency = 1485; + listening = 0; + name = "Station Intercom (Medbay)"; + pixel_x = -27 + }, +/turf/open/floor/plasteel/white/side{ + dir = 4 + }, +/area/medical/cryo) +"aIK" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/cryo) +"aIL" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/turf/open/floor/plasteel/white, +/area/medical/cryo) +"aIM" = ( +/obj/machinery/atmospherics/components/unary/cryo_cell{ + dir = 8 + }, +/turf/open/floor/plasteel/white/side{ + dir = 8 + }, +/area/medical/cryo) +"aIN" = ( +/obj/machinery/camera{ + c_tag = "Genetics Cloning"; + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23; + pixel_y = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aIO" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aIP" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aIQ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/genetics) +"aIR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aIS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aIT" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/whitebot{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aIU" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/whitebot, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aIV" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aIW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aIX" = ( +/turf/closed/wall, +/area/toxins/lab) +"aIY" = ( +/obj/structure/window/fulltile, +/obj/structure/grille, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rnd"; + name = "research lab shutters" + }, +/turf/open/floor/plating, +/area/toxins/lab) +"aIZ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research{ + name = "Research and Development Lab"; + req_access_txt = "7" + }, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"aJa" = ( +/turf/closed/wall, +/area/assembly/robotics) +"aJb" = ( +/obj/structure/window/fulltile, +/obj/structure/grille, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "robotics"; + name = "robotics lab shutters" + }, +/turf/open/floor/plating, +/area/assembly/robotics) +"aJc" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/research{ + name = "Robotics Lab"; + req_access_txt = "29"; + req_one_access_txt = "0" + }, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"aJd" = ( +/obj/structure/window/fulltile, +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "robotics"; + name = "robotics lab shutters" + }, +/turf/open/floor/plating, +/area/assembly/robotics) +"aJe" = ( +/turf/closed/wall, +/area/assembly/chargebay) +"aJf" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/research{ + name = "Mech Bay"; + req_access_txt = "29"; + req_one_access_txt = "0" + }, +/turf/open/floor/plasteel/white, +/area/assembly/chargebay) +"aJg" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=1"; + freq = 1400; + location = "Science" + }, +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/poddoor/preopen{ + id = "Biohazard"; + name = "biohazard containment door" + }, +/turf/open/floor/plasteel/delivery, +/area/medical/research{ + name = "Research Division" + }) +"aJh" = ( +/turf/closed/wall, +/area/toxins/explab) +"aJi" = ( +/obj/machinery/light_switch{ + pixel_x = -20 + }, +/turf/open/floor/plasteel/white, +/area/toxins/explab) +"aJj" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/white, +/area/toxins/explab) +"aJk" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/white, +/area/toxins/explab) +"aJl" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/toxins/explab) +"aJm" = ( +/obj/machinery/igniter{ + icon_state = "igniter0"; + id = "Incinerator"; + luminosity = 2; + on = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/incinerator) +"aJn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating, +/area/maintenance/fore) +"aJo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/ai_monitored/nuke_storage) +"aJp" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/nuke_storage) +"aJq" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/floorgrime, +/area/hallway/primary/starboard) +"aJr" = ( +/obj/item/device/radio/intercom{ + dir = 4; + name = "Station Intercom (General)"; + pixel_x = 27 + }, +/turf/open/floor/plasteel/floorgrime, +/area/hallway/primary/starboard) +"aJs" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/circuitboard/computer/powermonitor{ + pixel_x = -2; + pixel_y = 2 + }, +/obj/item/weapon/circuitboard/computer/stationalert{ + pixel_x = 1; + pixel_y = -1 + }, +/obj/item/weapon/circuitboard/computer/atmos_alert{ + pixel_x = 3; + pixel_y = -3 + }, +/turf/open/floor/plating, +/area/storage/tech) +"aJt" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/storage/tech) +"aJu" = ( +/turf/open/floor/plating, +/area/storage/tech) +"aJv" = ( +/obj/structure/table, +/obj/item/weapon/stock_parts/subspace/transmitter, +/obj/item/weapon/stock_parts/subspace/transmitter, +/obj/item/weapon/stock_parts/subspace/treatment, +/obj/item/weapon/stock_parts/subspace/treatment, +/obj/item/weapon/stock_parts/subspace/treatment, +/obj/item/weapon/stock_parts/subspace/crystal, +/obj/item/weapon/stock_parts/subspace/crystal, +/obj/item/weapon/stock_parts/subspace/crystal, +/turf/open/floor/plating, +/area/storage/tech) +"aJw" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating, +/area/maintenance/fore) +"aJx" = ( +/obj/structure/closet/crate, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aJy" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aJz" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/atmos) +"aJA" = ( +/obj/effect/landmark/start{ + name = "Atmospheric Technician" + }, +/turf/open/floor/plasteel, +/area/atmos) +"aJB" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/turf/open/floor/plasteel/bot, +/area/atmos) +"aJC" = ( +/obj/item/clothing/gloves/color/black, +/obj/item/weapon/watertank/atmos, +/obj/structure/table, +/turf/open/floor/plasteel, +/area/atmos) +"aJD" = ( +/obj/machinery/atmospherics/components/trinary/mixer{ + dir = 8; + node1_concentration = 0.8; + node2_concentration = 0.2; + on = 1; + pixel_x = 0; + pixel_y = 0; + target_pressure = 4500 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aJE" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + initialize_directions = 11 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aJF" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "N2 Outlet Pump"; + on = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 1 + }, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/atmos) +"aJG" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + external_pressure_bound = 0; + frequency = 1441; + id_tag = "n2_out"; + initialize_directions = 1; + internal_pressure_bound = 4000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine/n2, +/area/atmos) +"aJH" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aJI" = ( +/obj/item/weapon/retractor, +/obj/structure/table, +/turf/open/floor/plasteel/white/side{ + dir = 4 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aJJ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/effect/landmark/start{ + name = "Medical Doctor" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aJK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aJL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aJM" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/closed/wall, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aJN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/sign/nosmoking_2{ + pixel_x = -28 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aJO" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aJP" = ( +/obj/machinery/airalarm{ + frequency = 1439; + pixel_y = 23 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aJQ" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aJR" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23; + pixel_y = 0 + }, +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/turf/open/floor/plasteel/white, +/area/medical/cryo) +"aJS" = ( +/obj/effect/landmark/start{ + name = "Medical Doctor" + }, +/turf/open/floor/plasteel/white, +/area/medical/cryo) +"aJT" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/white, +/area/medical/cryo) +"aJU" = ( +/turf/open/floor/plasteel/white, +/area/medical/cryo) +"aJV" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_medical{ + id_tag = "GeneticsDoorW"; + name = "Genetics"; + req_access_txt = "5; 9" + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aJW" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aJX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/chair, +/obj/effect/landmark/start{ + name = "Geneticist" + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aJY" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/glass_medical{ + id_tag = "GeneticsDoorE"; + name = "Genetics"; + req_access_txt = "5; 9" + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aJZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aKa" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aKb" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aKc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aKd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aKe" = ( +/obj/machinery/light/small, +/obj/machinery/portable_atmospherics/canister/toxins, +/turf/open/floor/plasteel/bot, +/area/toxins/storage) +"aKf" = ( +/obj/machinery/r_n_d/destructive_analyzer, +/turf/open/floor/plasteel, +/area/toxins/lab) +"aKg" = ( +/obj/machinery/airalarm{ + frequency = 1439; + pixel_y = 23 + }, +/obj/machinery/camera{ + c_tag = "Research and Development"; + network = list("SS13","RD"); + pixel_x = 22 + }, +/turf/open/floor/plasteel, +/area/toxins/lab) +"aKh" = ( +/obj/machinery/r_n_d/protolathe, +/turf/open/floor/plasteel, +/area/toxins/lab) +"aKi" = ( +/turf/open/floor/plasteel/warnwhite{ + dir = 8 + }, +/area/toxins/lab) +"aKj" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"aKk" = ( +/obj/machinery/cell_charger, +/obj/item/weapon/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000 + }, +/obj/item/weapon/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000 + }, +/obj/structure/table, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"aKl" = ( +/obj/machinery/light_switch{ + pixel_y = 23 + }, +/obj/item/weapon/folder/white, +/obj/item/weapon/disk/tech_disk, +/obj/item/weapon/disk/tech_disk, +/obj/item/weapon/disk/design_disk, +/obj/item/weapon/disk/design_disk, +/obj/structure/table, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"aKm" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/latex, +/obj/item/weapon/razor, +/obj/item/device/mmi, +/obj/item/device/mmi, +/obj/item/device/mmi, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"aKn" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/table, +/obj/item/weapon/circular_saw, +/obj/item/weapon/surgical_drapes, +/obj/item/weapon/scalpel{ + pixel_y = 12 + }, +/obj/machinery/requests_console{ + department = "Robotics"; + departmentType = 2; + name = "Robotics RC"; + pixel_y = 30 + }, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"aKo" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/bodybags, +/obj/item/weapon/retractor, +/obj/item/weapon/hemostat, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"aKp" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"aKq" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warnwhite{ + dir = 4 + }, +/area/assembly/robotics) +"aKr" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/closet/wardrobe/robotics_black, +/obj/machinery/ai_status_display{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/assembly/robotics) +"aKs" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/airalarm{ + frequency = 1439; + pixel_y = 23 + }, +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/storage/toolbox/electrical{ + pixel_x = 1; + pixel_y = 6 + }, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/clothing/head/welding{ + pixel_x = -3; + pixel_y = 5 + }, +/obj/item/clothing/glasses/welding, +/turf/open/floor/plasteel, +/area/assembly/robotics) +"aKt" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Robotics Lab APC"; + pixel_y = 25 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/weapon/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000; + pixel_x = 3; + pixel_y = 5 + }, +/obj/item/weapon/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000 + }, +/obj/item/weapon/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000; + pixel_x = 5; + pixel_y = -5 + }, +/turf/open/floor/plasteel, +/area/assembly/robotics) +"aKu" = ( +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/obj/structure/table, +/obj/item/weapon/crowbar, +/obj/item/device/radio/headset/headset_sci{ + pixel_x = -3 + }, +/obj/item/device/multitool{ + pixel_x = 3 + }, +/obj/item/device/multitool{ + pixel_x = 3 + }, +/obj/item/weapon/pen, +/turf/open/floor/plasteel, +/area/assembly/robotics) +"aKv" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel, +/area/assembly/chargebay) +"aKw" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Mech Bay APC"; + pixel_y = 25 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plasteel, +/area/assembly/chargebay) +"aKx" = ( +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/assembly/chargebay) +"aKy" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/assembly/chargebay) +"aKz" = ( +/turf/open/floor/plasteel, +/area/assembly/chargebay) +"aKA" = ( +/turf/closed/wall/r_wall, +/area/assembly/chargebay) +"aKB" = ( +/obj/machinery/door/airlock/research{ + name = "Research Division Access"; + req_access_txt = "47" + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"aKC" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/turf/open/floor/plasteel/white, +/area/toxins/explab) +"aKD" = ( +/obj/structure/chair/office/light, +/obj/effect/landmark/start{ + name = "Scientist" + }, +/turf/open/floor/plasteel/white, +/area/toxins/explab) +"aKE" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/camera{ + c_tag = "Experimentation Lab"; + dir = 8; + network = list("SS13","RD") + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = 27 + }, +/turf/open/floor/plasteel/white, +/area/toxins/explab) +"aKF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fore) +"aKG" = ( +/obj/structure/filingcabinet, +/obj/item/weapon/folder/documents, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/ai_monitored/nuke_storage) +"aKH" = ( +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/ai_monitored/nuke_storage) +"aKI" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/nuke_storage) +"aKJ" = ( +/obj/item/weapon/coin/silver{ + pixel_x = 7; + pixel_y = 12 + }, +/obj/item/weapon/coin/silver{ + pixel_x = 12; + pixel_y = 7 + }, +/obj/item/weapon/coin/silver{ + pixel_x = 4; + pixel_y = 8 + }, +/obj/item/weapon/coin/silver{ + pixel_x = -6; + pixel_y = 5 + }, +/obj/item/weapon/coin/silver{ + pixel_x = 5; + pixel_y = -8 + }, +/obj/structure/closet/crate{ + name = "Silver Crate" + }, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/ai_monitored/nuke_storage) +"aKK" = ( +/obj/structure/safe, +/obj/item/clothing/head/bearpelt, +/obj/item/weapon/twohanded/fireaxe, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/ai_monitored/nuke_storage) +"aKL" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 1 + }, +/area/hallway/primary/starboard) +"aKM" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/floorgrime, +/area/hallway/primary/starboard) +"aKN" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/engineering{ + name = "Tech Storage"; + req_access_txt = "23" + }, +/turf/open/floor/plating, +/area/storage/tech) +"aKO" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/storage/tech) +"aKP" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/storage/tech) +"aKQ" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"aKR" = ( +/obj/machinery/vending/assist, +/obj/machinery/camera{ + c_tag = "Tech Storage"; + dir = 8; + pixel_y = -22 + }, +/turf/open/floor/plating, +/area/storage/tech) +"aKS" = ( +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fore) +"aKT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/fore) +"aKU" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 1 + }, +/turf/open/floor/plating, +/area/atmos) +"aKV" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aKW" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4; + initialize_directions = 11 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/atmos) +"aKX" = ( +/obj/item/weapon/paper_bin{ + pixel_x = -2; + pixel_y = 5 + }, +/obj/item/weapon/folder/yellow, +/obj/item/weapon/folder/yellow, +/obj/structure/table, +/obj/item/weapon/storage/firstaid/o2, +/turf/open/floor/plasteel, +/area/atmos) +"aKY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/plasteel/bot, +/area/atmos) +"aKZ" = ( +/obj/item/weapon/scalpel{ + pixel_y = 12 + }, +/obj/item/weapon/circular_saw, +/obj/item/device/radio/intercom{ + broadcasting = 1; + frequency = 1485; + listening = 0; + name = "Station Intercom (Medbay)"; + pixel_x = -27 + }, +/obj/structure/table, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aLa" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aLb" = ( +/obj/structure/table/optable, +/turf/open/floor/plasteel/whitebot, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aLc" = ( +/obj/machinery/computer/operating, +/turf/open/floor/plasteel/whitebot/delivery, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aLd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aLe" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/medical{ + name = "Operating Theatre"; + req_access_txt = "45" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aLf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Medbay Recovery"; + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aLg" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aLh" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aLi" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aLj" = ( +/obj/machinery/sleeper{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/medical/cryo) +"aLk" = ( +/obj/machinery/sleeper{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/medical/cryo) +"aLl" = ( +/obj/machinery/button/door{ + desc = "A remote control switch for the genetics doors."; + id = "GeneticsDoorW"; + name = "Genetics Exit Button"; + normaldoorcontrol = 1; + pixel_x = -24; + pixel_y = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"aLm" = ( +/obj/machinery/computer/cloning, +/turf/open/floor/plasteel/whiteblue/side, +/area/medical/genetics) +"aLn" = ( +/obj/machinery/clonepod, +/obj/machinery/button/door{ + desc = "A remote control switch for the genetics doors."; + id = "GeneticsDoorE"; + name = "Genetics Exit Button"; + normaldoorcontrol = 1; + pixel_x = 24; + pixel_y = 8 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 6 + }, +/area/medical/genetics) +"aLo" = ( +/turf/open/floor/plasteel/whiteblue/side{ + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aLp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/landmark/start{ + name = "Medical Doctor" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aLq" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aLr" = ( +/turf/closed/wall, +/area/medical/chemistry) +"aLs" = ( +/turf/closed/wall/r_wall, +/area/medical/chemistry) +"aLt" = ( +/obj/machinery/computer/rdconsole/core, +/obj/machinery/requests_console{ + department = "Science"; + departmentType = 2; + name = "Science Requests Console"; + pixel_x = -30 + }, +/turf/open/floor/plasteel, +/area/toxins/lab) +"aLu" = ( +/obj/effect/landmark/start{ + name = "Scientist" + }, +/turf/open/floor/plasteel, +/area/toxins/lab) +"aLv" = ( +/obj/machinery/r_n_d/circuit_imprinter, +/obj/item/weapon/reagent_containers/glass/beaker/sulphuric, +/turf/open/floor/plasteel, +/area/toxins/lab) +"aLw" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"aLx" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"aLy" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/item/weapon/hand_labeler, +/obj/item/weapon/pen, +/obj/item/stack/packageWrap, +/obj/item/stack/packageWrap, +/obj/machinery/power/apc{ + dir = 4; + name = "Research Lab APC"; + pixel_x = 26 + }, +/obj/structure/table, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"aLz" = ( +/obj/structure/table/optable{ + name = "Robotics Operating Table" + }, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"aLA" = ( +/obj/effect/landmark/start{ + name = "Roboticist" + }, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"aLB" = ( +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"aLC" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"aLD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warnwhite{ + dir = 4 + }, +/area/assembly/robotics) +"aLE" = ( +/turf/open/floor/plasteel, +/area/assembly/robotics) +"aLF" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_research{ + name = "Robotics Lab"; + req_access_txt = "29" + }, +/turf/open/floor/plasteel, +/area/assembly/robotics) +"aLG" = ( +/turf/open/floor/bluegrid, +/area/assembly/chargebay) +"aLH" = ( +/obj/machinery/computer/mech_bay_power_console, +/turf/open/floor/bluegrid, +/area/assembly/chargebay) +"aLI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/assembly/chargebay) +"aLJ" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 + }, +/turf/open/floor/bluegrid, +/area/assembly/chargebay) +"aLK" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plasteel/warnwhite{ + dir = 9 + }, +/area/medical/research{ + name = "Research Division" + }) +"aLL" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"aLM" = ( +/obj/machinery/camera{ + c_tag = "Research Division Access" + }, +/obj/machinery/shower{ + dir = 8 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 5 + }, +/area/medical/research{ + name = "Research Division" + }) +"aLN" = ( +/turf/open/floor/plasteel/warnwhite, +/area/toxins/explab) +"aLO" = ( +/obj/structure/table, +/obj/item/weapon/book/manual/research_and_development, +/turf/open/floor/plasteel/white/corner{ + dir = 4 + }, +/area/toxins/explab) +"aLP" = ( +/obj/machinery/computer/rdconsole/experiment, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/toxins/explab) +"aLQ" = ( +/obj/structure/table, +/obj/machinery/button/door{ + id = "explab"; + name = "Test Chamber Blast Doors"; + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, +/area/toxins/explab) +"aLR" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/toxins/explab) +"aLS" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai_upload) +"aLT" = ( +/obj/machinery/light_switch{ + pixel_x = -28 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/nuke_storage) +"aLU" = ( +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/nuke_storage) +"aLV" = ( +/turf/open/floor/bluegrid, +/area/ai_monitored/nuke_storage) +"aLW" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/nuke_storage) +"aLX" = ( +/obj/structure/sign/securearea, +/turf/closed/wall/r_wall, +/area/ai_monitored/nuke_storage) +"aLY" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/hallway/primary/starboard) +"aLZ" = ( +/turf/open/floor/plasteel/floorgrime, +/area/hallway/primary/starboard) +"aMa" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/circuitboard/computer/pandemic{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/circuitboard/computer/rdconsole, +/obj/item/weapon/circuitboard/machine/rdserver{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/weapon/circuitboard/machine/destructive_analyzer, +/obj/item/weapon/circuitboard/machine/protolathe, +/obj/item/weapon/circuitboard/computer/aifixer, +/obj/machinery/light_switch{ + pixel_x = -25 + }, +/turf/open/floor/plating, +/area/storage/tech) +"aMb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/storage/tech) +"aMc" = ( +/obj/structure/table, +/obj/machinery/cell_charger{ + pixel_y = 5 + }, +/obj/item/stack/cable_coil{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/stack/cable_coil, +/obj/item/weapon/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000 + }, +/turf/open/floor/plating, +/area/storage/tech) +"aMd" = ( +/turf/open/floor/plating, +/area/maintenance/fore) +"aMe" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating, +/area/maintenance/fore) +"aMf" = ( +/obj/item/clothing/head/welding{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/clothing/head/welding{ + pixel_x = -5; + pixel_y = 3 + }, +/obj/item/device/multitool, +/obj/machinery/power/apc{ + dir = 8; + name = "Atmospherics APC"; + pixel_x = -24 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/table, +/turf/open/floor/plasteel, +/area/atmos) +"aMg" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/atmos) +"aMh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/atmos) +"aMi" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/atmos) +"aMj" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4; + initialize_directions = 11 + }, +/obj/item/weapon/wrench, +/turf/open/floor/plasteel, +/area/atmos) +"aMk" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/atmos) +"aMl" = ( +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plasteel, +/area/atmos) +"aMm" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 5; + initialize_directions = 12 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aMn" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 1 + }, +/turf/open/floor/plasteel/arrival{ + dir = 5 + }, +/area/atmos) +"aMo" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/atmos) +"aMp" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/space, +/area/space) +"aMq" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/meter{ + frequency = 1443; + name = "Mixed Air Tank In" + }, +/turf/closed/wall/r_wall, +/area/atmos) +"aMr" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 8; + frequency = 1441; + id = "air_in" + }, +/turf/open/floor/engine/air, +/area/atmos) +"aMs" = ( +/turf/open/floor/engine/air, +/area/atmos) +"aMt" = ( +/obj/item/weapon/hemostat, +/obj/structure/table, +/turf/open/floor/plasteel/white/side{ + dir = 4 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aMu" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aMv" = ( +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aMw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/turf/open/floor/plasteel/white/side{ + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aMx" = ( +/turf/closed/wall, +/area/medical/cmo) +"aMy" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aMz" = ( +/obj/structure/window/fulltile, +/obj/structure/grille, +/turf/open/floor/plating, +/area/medical/cryo) +"aMA" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/white, +/area/medical/cryo) +"aMB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aMC" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Medbay East"; + dir = 8; + pixel_y = -22 + }, +/turf/open/floor/plasteel/whiteyellow/corner, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aMD" = ( +/obj/structure/sign/chemistry, +/turf/closed/wall, +/area/medical/chemistry) +"aME" = ( +/obj/machinery/light_switch{ + pixel_y = 25 + }, +/mob/living/simple_animal/bot/cleanbot{ + name = "C.L.E.A.N." + }, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 1 + }, +/area/medical/chemistry) +"aMF" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Chemistry APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/table/glass, +/obj/item/device/assembly/igniter{ + pixel_x = 2; + pixel_y = -5 + }, +/obj/item/device/assembly/timer{ + pixel_x = -2; + pixel_y = 6 + }, +/obj/item/device/assembly/igniter{ + pixel_x = 2; + pixel_y = -5 + }, +/obj/item/device/assembly/timer{ + pixel_x = -2; + pixel_y = 6 + }, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 1 + }, +/area/medical/chemistry) +"aMG" = ( +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/obj/structure/table/glass, +/obj/item/weapon/storage/box/mousetraps, +/obj/item/stack/cable_coil/random, +/obj/item/stack/cable_coil/random, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 1 + }, +/area/medical/chemistry) +"aMH" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/sign/nosmoking_2{ + pixel_y = 30 + }, +/obj/structure/table/glass, +/obj/item/weapon/grenade/chem_grenade, +/obj/item/weapon/grenade/chem_grenade, +/obj/item/weapon/grenade/chem_grenade, +/obj/item/weapon/grenade/chem_grenade, +/obj/item/weapon/screwdriver{ + pixel_x = -2; + pixel_y = 6 + }, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 1 + }, +/area/medical/chemistry) +"aMI" = ( +/obj/item/device/radio/intercom{ + dir = 8; + name = "Station Intercom (General)"; + pixel_y = 25 + }, +/obj/structure/table/glass, +/obj/item/clothing/glasses/science{ + pixel_x = 2; + pixel_y = 4 + }, +/obj/item/clothing/glasses/science, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 1 + }, +/area/medical/chemistry) +"aMJ" = ( +/obj/structure/table/glass, +/obj/item/weapon/gun/syringe, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 1 + }, +/area/medical/chemistry) +"aMK" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/medical/chemistry) +"aML" = ( +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/toxins/lab) +"aMM" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/toxins/lab) +"aMN" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/warnwhite/corner{ + dir = 4 + }, +/area/toxins/lab) +"aMO" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"aMP" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"aMQ" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = 29 + }, +/obj/item/weapon/reagent_containers/glass/beaker/large{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/reagent_containers/glass/beaker{ + pixel_x = 8; + pixel_y = 2 + }, +/obj/item/weapon/reagent_containers/glass/beaker{ + pixel_x = 8; + pixel_y = 2 + }, +/obj/item/weapon/reagent_containers/dropper, +/obj/structure/table, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"aMR" = ( +/obj/machinery/computer/operating{ + name = "Robotics Operating Computer" + }, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"aMS" = ( +/obj/machinery/holopad, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"aMT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 4 + }, +/area/assembly/robotics) +"aMU" = ( +/obj/machinery/mecha_part_fabricator, +/turf/open/floor/plasteel, +/area/assembly/robotics) +"aMV" = ( +/obj/effect/landmark/start{ + name = "Roboticist" + }, +/turf/open/floor/plasteel, +/area/assembly/robotics) +"aMW" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass{ + amount = 20; + pixel_x = -3; + pixel_y = 6 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/device/assembly/flash/handheld, +/turf/open/floor/plasteel, +/area/assembly/robotics) +"aMX" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/assembly/robotics) +"aMY" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical, +/turf/open/floor/plasteel, +/area/assembly/chargebay) +"aMZ" = ( +/turf/open/floor/mech_bay_recharge_floor, +/area/assembly/chargebay) +"aNa" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/effect/landmark/start{ + name = "Roboticist" + }, +/turf/open/floor/plasteel, +/area/assembly/chargebay) +"aNb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/mech_bay_recharge_floor, +/area/assembly/chargebay) +"aNc" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/bluegrid, +/area/assembly/chargebay) +"aNd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/assembly/chargebay) +"aNe" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/closet/firecloset, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"aNf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"aNg" = ( +/obj/structure/sign/securearea{ + pixel_x = 32 + }, +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"aNh" = ( +/obj/machinery/door/poddoor/preopen{ + id = "explab"; + name = "test chamber blast door" + }, +/turf/open/floor/engine, +/area/toxins/explab) +"aNi" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "explab"; + name = "test chamber blast door" + }, +/turf/open/floor/plating, +/area/toxins/explab) +"aNj" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fore) +"aNk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/ai_monitored/nuke_storage) +"aNl" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Vault APC"; + pixel_x = -27 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/camera/motion{ + c_tag = "Vault"; + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/nuke_storage) +"aNm" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/nuke_storage) +"aNn" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/nuclearbomb/selfdestruct, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/nuke_storage) +"aNo" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/nuke_storage) +"aNp" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/nuke_storage) +"aNq" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/vault{ + locked = 1; + name = "Vault"; + req_access_txt = "53" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/nuke_storage) +"aNr" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/hallway/primary/starboard) +"aNs" = ( +/obj/item/stack/tile/plasteel{ + pixel_x = 8; + pixel_y = 8 + }, +/turf/open/floor/plating, +/area/hallway/primary/starboard) +"aNt" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/circuitboard/computer/mining, +/obj/item/weapon/circuitboard/machine/autolathe{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/weapon/circuitboard/computer/arcade/battle, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/storage/tech) +"aNu" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plating, +/area/storage/tech) +"aNv" = ( +/obj/structure/table, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/device/flashlight{ + pixel_x = 1; + pixel_y = 5 + }, +/obj/item/device/flashlight{ + pixel_x = 1; + pixel_y = 5 + }, +/obj/item/device/assembly/flash/handheld, +/obj/item/device/assembly/flash/handheld, +/turf/open/floor/plating, +/area/storage/tech) +"aNw" = ( +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/fore) +"aNx" = ( +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/weapon/storage/belt/utility, +/obj/item/device/t_scanner, +/obj/item/device/t_scanner, +/obj/item/device/t_scanner, +/obj/structure/fireaxecabinet{ + pixel_x = -32; + pixel_y = 0 + }, +/obj/structure/table, +/turf/open/floor/plasteel, +/area/atmos) +"aNy" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/atmos) +"aNz" = ( +/obj/item/device/radio/beacon, +/turf/open/floor/plasteel, +/area/atmos) +"aNA" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 0; + name = "Port to Filter"; + on = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aNB" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/obj/structure/chair/stool, +/turf/open/floor/plasteel, +/area/atmos) +"aNC" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/heater{ + dir = 8 + }, +/turf/open/floor/plasteel/bot, +/area/atmos) +"aND" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aNE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 1 + }, +/obj/machinery/computer/atmos_control/tank{ + frequency = 1441; + input_tag = "air_in"; + name = "Mixed Air Supply Control"; + output_tag = "air_out"; + sensors = list("air_sensor" = "Tank") + }, +/turf/open/floor/plasteel/arrival{ + dir = 4 + }, +/area/atmos) +"aNF" = ( +/obj/machinery/air_sensor{ + frequency = 1441; + id_tag = "air_sensor" + }, +/turf/open/floor/engine/air, +/area/atmos) +"aNG" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/engine/air, +/area/atmos) +"aNH" = ( +/obj/item/weapon/surgicaldrill, +/obj/structure/table, +/turf/open/floor/plasteel, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aNI" = ( +/obj/item/clothing/gloves/color/latex, +/obj/item/clothing/mask/surgical, +/obj/item/clothing/suit/apron/surgical, +/obj/item/weapon/reagent_containers/spray/cleaner, +/obj/structure/table, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aNJ" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aNK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aNL" = ( +/obj/structure/closet/secure_closet/medical2, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aNM" = ( +/obj/machinery/suit_storage_unit/cmo, +/turf/open/floor/plasteel/barber, +/area/medical/cmo) +"aNN" = ( +/obj/machinery/keycard_auth{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/barber, +/area/medical/cmo) +"aNO" = ( +/obj/machinery/airalarm{ + frequency = 1439; + pixel_y = 23 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/table/glass, +/obj/item/weapon/paper_bin{ + pixel_x = -2; + pixel_y = 5 + }, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/barber, +/area/medical/cmo) +"aNP" = ( +/obj/machinery/computer/card/minor/cmo, +/turf/open/floor/plasteel/barber, +/area/medical/cmo) +"aNQ" = ( +/obj/machinery/disposal/bin, +/obj/machinery/light_switch{ + pixel_y = 24 + }, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/barber, +/area/medical/cmo) +"aNR" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/medical/cmo) +"aNS" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Medbay APC"; + pixel_y = 26 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aNT" = ( +/obj/effect/landmark{ + name = "lightsout" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aNU" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aNV" = ( +/obj/machinery/airalarm{ + frequency = 1439; + pixel_y = 23 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aNW" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aNX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aNY" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aNZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aOa" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aOb" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 4 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aOc" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/glass_atmos{ + name = "Air Supply Control"; + req_access_txt = "24" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aOd" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Air to Distro"; + on = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aOe" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aOf" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"aOg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"aOh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/chair/office/light{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"aOi" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/window/eastright{ + base_state = "left"; + dir = 8; + icon_state = "left"; + name = "Chemistry Desk"; + req_access_txt = "33" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/window/southright{ + dir = 4; + name = "Research and Development Desk"; + req_access_txt = "7" + }, +/turf/open/floor/plasteel, +/area/medical/chemistry) +"aOj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"aOk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"aOl" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"aOm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"aOn" = ( +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the AI upload."; + dir = 4; + name = "AI Upload Monitor"; + network = list("AIUpload"); + pixel_x = -29 + }, +/obj/item/device/radio/intercom{ + broadcasting = 1; + frequency = 1447; + name = "Private AI Channel"; + pixel_y = 22 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/obj/machinery/camera/motion{ + c_tag = "AI Upload Foyer"; + dir = 1; + network = list("SS13","RD") + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai_upload) +"aOo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"aOp" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/toxins/lab) +"aOq" = ( +/obj/structure/window/reinforced/tinted{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"aOr" = ( +/obj/structure/window/reinforced/tinted{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"aOs" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/assembly/robotics) +"aOt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warnwhite{ + dir = 4 + }, +/area/assembly/robotics) +"aOu" = ( +/turf/open/floor/plasteel/bot, +/area/assembly/robotics) +"aOv" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/assembly/robotics) +"aOw" = ( +/obj/structure/table, +/obj/item/stack/sheet/plasteel{ + amount = 10 + }, +/obj/item/stack/cable_coil, +/obj/item/device/assembly/flash/handheld, +/obj/item/device/assembly/flash/handheld, +/turf/open/floor/plasteel, +/area/assembly/robotics) +"aOx" = ( +/obj/structure/table, +/turf/open/floor/plasteel, +/area/assembly/chargebay) +"aOy" = ( +/obj/machinery/mech_bay_recharge_port{ + dir = 1 + }, +/turf/open/floor/plating, +/area/assembly/chargebay) +"aOz" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel, +/area/assembly/chargebay) +"aOA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/bluegrid, +/area/assembly/chargebay) +"aOB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/assembly/chargebay) +"aOC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/warnwhite{ + dir = 10 + }, +/area/medical/research{ + name = "Research Division" + }) +"aOD" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"aOE" = ( +/obj/machinery/shower{ + dir = 8 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 6 + }, +/area/medical/research{ + name = "Research Division" + }) +"aOF" = ( +/turf/open/floor/engine, +/area/toxins/explab) +"aOG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating, +/area/maintenance/fore) +"aOH" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23; + pixel_y = 0 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/ai_monitored/nuke_storage) +"aOI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/bluegrid, +/area/ai_monitored/nuke_storage) +"aOJ" = ( +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/hallway/primary/starboard) +"aOK" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/floorgrime, +/area/hallway/primary/starboard) +"aOL" = ( +/obj/structure/rack, +/obj/item/weapon/circuitboard/machine/telecomms/processor, +/obj/item/weapon/circuitboard/machine/telecomms/receiver, +/obj/item/weapon/circuitboard/machine/telecomms/server, +/obj/item/weapon/circuitboard/machine/telecomms/bus, +/obj/item/weapon/circuitboard/machine/telecomms/broadcaster, +/obj/item/weapon/circuitboard/computer/message_monitor{ + pixel_y = -5 + }, +/turf/open/floor/plating, +/area/storage/tech) +"aOM" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/electrical{ + pixel_x = 1; + pixel_y = -1 + }, +/obj/item/clothing/gloves/color/yellow, +/obj/item/device/t_scanner, +/obj/item/device/multitool, +/obj/item/clothing/glasses/meson, +/turf/open/floor/plating, +/area/storage/tech) +"aON" = ( +/obj/structure/table, +/obj/item/device/aicard, +/obj/item/weapon/aiModule/reset, +/turf/open/floor/plating, +/area/storage/tech) +"aOO" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/maintenance/fore) +"aOP" = ( +/obj/effect/decal/cleanable/robot_debris, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/maintenance/fore) +"aOQ" = ( +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50; + pixel_x = 2; + pixel_y = 2 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/obj/structure/table, +/turf/open/floor/plasteel, +/area/atmos) +"aOR" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aOS" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Port to Filter"; + on = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aOT" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/obj/item/weapon/cigbutt, +/turf/open/floor/plasteel, +/area/atmos) +"aOU" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 8 + }, +/turf/open/floor/plasteel/bot, +/area/atmos) +"aOV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/atmos) +"aOW" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 8; + initialize_directions = 11 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aOX" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Air Outlet Pump"; + on = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 1 + }, +/turf/open/floor/plasteel/arrival{ + dir = 6 + }, +/area/atmos) +"aOY" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/meter{ + frequency = 1443; + name = "Mixed Air Tank Out" + }, +/turf/closed/wall/r_wall, +/area/atmos) +"aOZ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume{ + dir = 8; + external_pressure_bound = 0; + frequency = 1441; + icon_state = "vent_map"; + id_tag = "air_out"; + internal_pressure_bound = 2000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine/air, +/area/atmos) +"aPa" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/maintenance{ + name = "Surgery Maintenance"; + req_access_txt = "45" + }, +/turf/open/floor/plating, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aPb" = ( +/obj/machinery/computer/crew, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Chief Medical Officer's Desk"; + departmentType = 5; + name = "Chief Medical Officer RC"; + pixel_x = -32 + }, +/turf/open/floor/plasteel/barber, +/area/medical/cmo) +"aPc" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Chief Medical Officer" + }, +/turf/open/floor/plasteel/barber, +/area/medical/cmo) +"aPd" = ( +/obj/structure/table/glass, +/obj/item/weapon/folder/white, +/obj/item/weapon/stamp/cmo, +/obj/item/clothing/glasses/hud/health, +/turf/open/floor/plasteel/barber, +/area/medical/cmo) +"aPe" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/barber, +/area/medical/cmo) +"aPf" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/barber, +/area/medical/cmo) +"aPg" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aPh" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aPi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aPj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aPk" = ( +/obj/machinery/light/small, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/machinery/turretid{ + control_area = null; + name = "AI Upload Turret Control"; + pixel_y = 27; + req_access = list(65) + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai_upload) +"aPl" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 4 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aPm" = ( +/obj/machinery/smartfridge/chemistry, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"aPn" = ( +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"aPo" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"aPp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"aPq" = ( +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"aPr" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"aPs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"aPt" = ( +/obj/machinery/light, +/obj/item/stack/sheet/glass{ + amount = 50; + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/machinery/button/door{ + dir = 2; + id = "rnd"; + name = "Shutters Control Button"; + pixel_x = 6; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/table, +/turf/open/floor/plasteel/whitepurple/corner, +/area/toxins/lab) +"aPu" = ( +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/table, +/turf/open/floor/plasteel/whitepurple/side, +/area/toxins/lab) +"aPv" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Scientist" + }, +/turf/open/floor/plasteel/whitepurple/side, +/area/toxins/lab) +"aPw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/side, +/area/toxins/lab) +"aPx" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/southright{ + dir = 8; + name = "Research and Development Desk"; + req_access_txt = "7" + }, +/obj/machinery/door/window/eastright{ + base_state = "left"; + icon_state = "left"; + name = "Robotics Desk"; + req_access_txt = "29" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/toxins/lab) +"aPy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whitered/side, +/area/assembly/robotics) +"aPz" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Roboticist" + }, +/turf/open/floor/plasteel/whitered/side, +/area/assembly/robotics) +"aPA" = ( +/obj/machinery/light, +/obj/machinery/button/door{ + dir = 2; + id = "robotics"; + name = "Shutters Control Button"; + pixel_x = -6; + pixel_y = -24 + }, +/obj/machinery/light_switch{ + pixel_x = 5; + pixel_y = -25 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Robotics Lab"; + dir = 1; + network = list("SS13","RD") + }, +/turf/open/floor/plasteel/whitered/corner{ + dir = 8 + }, +/area/assembly/robotics) +"aPB" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/warnwhite{ + dir = 4 + }, +/area/assembly/robotics) +"aPC" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/assembly/robotics) +"aPD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/assembly/robotics) +"aPE" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/assembly/robotics) +"aPF" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular{ + empty = 1; + name = "First-Aid (empty)" + }, +/obj/item/weapon/storage/firstaid/regular{ + empty = 1; + name = "First-Aid (empty)" + }, +/obj/item/weapon/storage/firstaid/regular{ + empty = 1; + name = "First-Aid (empty)" + }, +/obj/item/device/healthanalyzer, +/obj/item/device/healthanalyzer, +/obj/item/device/healthanalyzer, +/obj/item/device/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/device/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/device/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/device/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/assembly/robotics) +"aPG" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/assembly/robotics) +"aPH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/assembly/chargebay) +"aPI" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/assembly/chargebay) +"aPJ" = ( +/obj/machinery/light, +/obj/machinery/button/door{ + dir = 2; + id = "Skynet_launch"; + name = "Mech Bay Door Control"; + pixel_x = 6; + pixel_y = -24 + }, +/obj/machinery/camera{ + c_tag = "Mech Bay"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/corner, +/area/assembly/chargebay) +"aPK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning, +/area/assembly/chargebay) +"aPL" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning, +/area/assembly/chargebay) +"aPM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/medical/research{ + name = "Research Division" + }) +"aPN" = ( +/obj/item/device/radio/beacon, +/turf/open/floor/engine, +/area/toxins/explab) +"aPO" = ( +/obj/machinery/r_n_d/experimentor, +/turf/open/floor/engine, +/area/toxins/explab) +"aPP" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/engine, +/area/toxins/explab) +"aPQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/item/weapon/newspaper, +/turf/open/floor/plating, +/area/maintenance/fore) +"aPR" = ( +/obj/structure/closet/secure_closet/freezer/money, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/ai_monitored/nuke_storage) +"aPS" = ( +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/ai_monitored/nuke_storage) +"aPT" = ( +/obj/machinery/light/small, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/nuke_storage) +"aPU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/closet/crate{ + name = "Gold Crate" + }, +/obj/item/stack/sheet/mineral/gold{ + pixel_y = 2 + }, +/obj/item/stack/sheet/mineral/gold{ + pixel_y = 2 + }, +/obj/item/stack/sheet/mineral/gold{ + pixel_y = 2 + }, +/obj/item/weapon/storage/belt/champion, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/ai_monitored/nuke_storage) +"aPV" = ( +/turf/open/floor/plasteel/warning/corner{ + dir = 4 + }, +/area/hallway/primary/starboard) +"aPW" = ( +/obj/machinery/camera{ + c_tag = "Starboard Primary Hallway North West"; + dir = 8 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"aPX" = ( +/turf/closed/wall/r_wall, +/area/maintenance/fore) +"aPY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Atmospherics South West"; + dir = 4 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/obj/machinery/pipedispenser, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/atmos) +"aPZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aQa" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/atmos) +"aQb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aQc" = ( +/obj/machinery/portable_atmospherics/pump, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aQd" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aQe" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aQf" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"aQg" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/sign/fire{ + pixel_y = 32 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"aQh" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aQi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/robot_debris{ + icon_state = "gib6" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aQj" = ( +/obj/structure/toilet{ + pixel_y = 8 + }, +/obj/effect/landmark/start{ + name = "Chief Medical Officer" + }, +/turf/open/floor/plasteel/freezer, +/area/medical/cmo) +"aQk" = ( +/obj/machinery/computer/med_data, +/turf/open/floor/plasteel/barber, +/area/medical/cmo) +"aQl" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/barber, +/area/medical/cmo) +"aQm" = ( +/obj/structure/table/glass, +/obj/item/clothing/neck/stethoscope, +/obj/item/weapon/cartridge/medical{ + pixel_x = -2; + pixel_y = 6 + }, +/obj/item/weapon/cartridge/medical{ + pixel_x = 6; + pixel_y = 3 + }, +/obj/item/weapon/cartridge/medical, +/obj/item/weapon/cartridge/chemistry{ + pixel_y = 2 + }, +/mob/living/simple_animal/pet/cat/Runtime, +/turf/open/floor/plasteel/barber, +/area/medical/cmo) +"aQn" = ( +/obj/machinery/holopad, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/barber, +/area/medical/cmo) +"aQo" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/barber, +/area/medical/cmo) +"aQp" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/landmark{ + name = "lightsout" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/whitepurple/corner{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"aQq" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance{ + name = "Experimentation Lab Maintenance"; + req_access_txt = "7" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/toxins/explab) +"aQr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/grille, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aQs" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aQt" = ( +/obj/structure/noticeboard{ + dir = 1; + pixel_y = -27 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aQu" = ( +/obj/structure/bed/roller, +/turf/open/floor/plasteel/whitebot, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aQv" = ( +/obj/structure/bed/roller, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whitebot, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aQw" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aQx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/button/door{ + desc = "A remote control switch for the medbay foyer."; + id = "MedbayFoyer"; + name = "Medbay Exit Button"; + normaldoorcontrol = 1; + pixel_x = 0; + pixel_y = -25 + }, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 4 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aQy" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/window/eastright{ + name = "Chemistry Desk"; + req_access_txt = "33" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/medical/chemistry) +"aQz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/chair/office/light{ + dir = 8 + }, +/obj/effect/landmark/start{ + name = "Chemist" + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"aQA" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"aQB" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"aQC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"aQD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/closet/l3closet, +/turf/open/floor/plasteel/whitebot, +/area/medical/chemistry) +"aQE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/medical/chemistry) +"aQF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/weapon/stock_parts/manipulator, +/obj/item/weapon/stock_parts/manipulator, +/obj/item/weapon/stock_parts/capacitor, +/obj/item/weapon/stock_parts/capacitor, +/obj/item/weapon/stock_parts/micro_laser, +/obj/item/weapon/stock_parts/micro_laser, +/obj/structure/table, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"aQG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/item/weapon/stock_parts/console_screen, +/obj/item/weapon/stock_parts/console_screen, +/obj/item/weapon/stock_parts/console_screen, +/obj/item/weapon/stock_parts/matter_bin, +/obj/item/weapon/stock_parts/matter_bin, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/structure/table, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"aQH" = ( +/obj/item/stack/cable_coil, +/obj/item/stack/cable_coil{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/stock_parts/scanning_module{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/weapon/stock_parts/scanning_module, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/table, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"aQI" = ( +/turf/closed/wall/r_wall, +/area/toxins/lab) +"aQJ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rnd"; + name = "research lab shutters" + }, +/turf/open/floor/plating, +/area/toxins/lab) +"aQK" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/southright{ + dir = 1; + name = "Research and Development Desk"; + req_access_txt = "7" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rnd"; + name = "research lab shutters" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/toxins/lab) +"aQL" = ( +/obj/machinery/mineral/ore_redemption{ + input_dir = 2; + output_dir = 1 + }, +/turf/open/floor/plasteel/delivery, +/area/toxins/lab) +"aQM" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "robotics"; + name = "robotics lab shutters" + }, +/turf/open/floor/plating, +/area/assembly/robotics) +"aQN" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/eastright{ + base_state = "left"; + dir = 1; + icon_state = "left"; + name = "Robotics Desk"; + req_access_txt = "29" + }, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/weapon/pen, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "robotics"; + name = "robotics lab shutters" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/assembly/robotics) +"aQO" = ( +/turf/closed/wall/r_wall, +/area/assembly/robotics) +"aQP" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/assembly/robotics) +"aQQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/assembly/robotics) +"aQR" = ( +/obj/machinery/computer/rdconsole/robotics, +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -27 + }, +/turf/open/floor/plasteel, +/area/assembly/robotics) +"aQS" = ( +/obj/machinery/r_n_d/circuit_imprinter, +/turf/open/floor/plasteel, +/area/assembly/robotics) +"aQT" = ( +/obj/structure/table, +/obj/item/weapon/book/manual/robotics_cyborgs{ + pixel_x = 2; + pixel_y = 5 + }, +/obj/item/weapon/storage/belt/utility, +/obj/item/weapon/reagent_containers/glass/beaker/large, +/turf/open/floor/plasteel, +/area/assembly/robotics) +"aQU" = ( +/obj/machinery/recharge_station, +/turf/open/floor/plasteel/bot, +/area/assembly/chargebay) +"aQV" = ( +/obj/machinery/recharge_station, +/obj/machinery/light_switch{ + pixel_y = -28 + }, +/turf/open/floor/plasteel/bot, +/area/assembly/chargebay) +"aQW" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel, +/area/assembly/chargebay) +"aQX" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters{ + id = "Skynet_launch"; + name = "mech bay" + }, +/turf/open/floor/plasteel/delivery, +/area/assembly/chargebay) +"aQY" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters{ + id = "Skynet_launch"; + name = "mech bay" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/delivery, +/area/assembly/chargebay) +"aQZ" = ( +/obj/structure/sign/science{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/purple/side{ + dir = 9 + }, +/area/hallway/primary/starboard) +"aRa" = ( +/turf/open/floor/plasteel/purple/side{ + dir = 1 + }, +/area/hallway/primary/starboard) +"aRb" = ( +/obj/structure/sign/securearea{ + pixel_x = 32 + }, +/obj/item/device/radio/intercom{ + dir = 4; + name = "Station Intercom (General)"; + pixel_y = 27 + }, +/turf/open/floor/plasteel/purple/side{ + dir = 5 + }, +/area/hallway/primary/starboard) +"aRc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fore) +"aRd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/nuke_storage) +"aRe" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/nuke_storage) +"aRf" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/nuke_storage) +"aRg" = ( +/turf/closed/wall/r_wall, +/area/hallway/primary/starboard) +"aRh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 1 + }, +/obj/machinery/pipedispenser/disposal, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/atmos) +"aRi" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/atmos) +"aRj" = ( +/obj/machinery/camera{ + c_tag = "Atmospherics South East"; + dir = 8 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aRk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/shard{ + icon_state = "medium" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aRl" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/cmo) +"aRm" = ( +/obj/machinery/door/airlock{ + name = "Private Restroom"; + req_access_txt = "40" + }, +/turf/open/floor/plasteel/freezer, +/area/medical/cmo) +"aRn" = ( +/turf/open/floor/plasteel/barber, +/area/medical/cmo) +"aRo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/power/apc{ + dir = 2; + name = "CMO Office APC"; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plasteel/barber, +/area/medical/cmo) +"aRp" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/barber, +/area/medical/cmo) +"aRq" = ( +/obj/item/device/radio/intercom{ + pixel_y = -27 + }, +/obj/machinery/camera{ + c_tag = "Chief Medical Office"; + dir = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel/barber, +/area/medical/cmo) +"aRr" = ( +/obj/structure/closet/secure_closet/CMO, +/turf/open/floor/plasteel/barber, +/area/medical/cmo) +"aRs" = ( +/obj/machinery/vending/medical{ + pixel_x = -2 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aRt" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aRu" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aRv" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aRw" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/item/device/radio/intercom{ + broadcasting = 1; + frequency = 1485; + listening = 0; + name = "Station Intercom (Medbay)"; + pixel_y = -27 + }, +/obj/machinery/light, +/obj/machinery/iv_drip, +/turf/open/floor/plasteel/whitebot, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aRx" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/iv_drip, +/turf/open/floor/plasteel/whitebot, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aRy" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aRz" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aRA" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/medical{ + name = "Medbay Reception"; + req_access_txt = "5" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aRB" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aRC" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aRD" = ( +/obj/machinery/status_display, +/turf/closed/wall, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aRE" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_medical{ + id_tag = "MedbayFoyer"; + name = "Medbay"; + req_access_txt = "5" + }, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=1"; + freq = 1400; + location = "Medbay" + }, +/turf/open/floor/plasteel/whiteblue/side, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aRF" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_medical{ + id_tag = "MedbayFoyer"; + name = "Medbay"; + req_access_txt = "5" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whiteblue/side, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aRG" = ( +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/obj/structure/closet/secure_closet/chemical, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"aRH" = ( +/obj/structure/closet/l3closet, +/turf/open/floor/plasteel/whitebot, +/area/medical/chemistry) +"aRI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/toxins/lab) +"aRJ" = ( +/turf/open/floor/plasteel/purple/side{ + dir = 9 + }, +/area/hallway/primary/central) +"aRK" = ( +/turf/open/floor/plasteel/purple/side{ + dir = 1 + }, +/area/hallway/primary/central) +"aRL" = ( +/turf/open/floor/plasteel/purple/side{ + dir = 5 + }, +/area/hallway/primary/central) +"aRM" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/grille, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aRN" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock/research{ + name = "Robotics Lab"; + req_access_txt = "29"; + req_one_access_txt = "0" + }, +/turf/open/floor/plasteel, +/area/assembly/robotics) +"aRO" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research{ + name = "Mech Bay"; + req_access_txt = "29"; + req_one_access_txt = "0" + }, +/turf/open/floor/plasteel, +/area/assembly/chargebay) +"aRP" = ( +/turf/open/floor/plasteel/loadingarea, +/area/hallway/primary/starboard) +"aRQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/loadingarea, +/area/hallway/primary/starboard) +"aRR" = ( +/turf/open/floor/plasteel/purple/corner{ + dir = 4 + }, +/area/hallway/primary/starboard) +"aRS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/purple/corner{ + dir = 1 + }, +/area/hallway/primary/starboard) +"aRT" = ( +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"aRU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fore) +"aRV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/robot_debris{ + icon_state = "gib7" + }, +/obj/item/device/assembly/timer, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fore) +"aRW" = ( +/obj/structure/sign/securearea{ + pixel_y = -32 + }, +/obj/machinery/light/small, +/obj/machinery/camera{ + c_tag = "EVA Maintenance"; + dir = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aRX" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/effect/decal/cleanable/oil, +/obj/item/stack/cable_coil/cut{ + amount = 2; + icon_state = "coil_red2" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aRY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/rods, +/turf/open/floor/plating, +/area/maintenance/fore) +"aRZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/item/weapon/shard{ + icon_state = "small" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/fore) +"aSa" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/obj/item/weapon/cigbutt, +/turf/open/floor/plating, +/area/maintenance/fore) +"aSb" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai_upload) +"aSc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 5 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = -30 + }, +/obj/machinery/pipedispenser/disposal/transit_tube, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/atmos) +"aSd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aSe" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/atmos) +"aSf" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible, +/turf/open/floor/plasteel, +/area/atmos) +"aSg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plasteel, +/area/atmos) +"aSh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/atmos) +"aSi" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aSj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 9 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aSk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aSl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/medical/cmo) +"aSm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/medical/cmo) +"aSn" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor, +/obj/machinery/camera{ + c_tag = "Medbay South"; + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aSo" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aSp" = ( +/turf/closed/wall, +/area/security/checkpoint/medical) +"aSq" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/checkpoint/medical) +"aSr" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/glass_security{ + name = "Security Office"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/white, +/area/security/checkpoint/medical) +"aSs" = ( +/obj/machinery/requests_console{ + department = "Medbay"; + departmentType = 1; + name = "Medbay RC"; + pixel_x = -30 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aSt" = ( +/obj/machinery/computer/crew, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aSu" = ( +/obj/structure/table/reinforced, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Medbay Foyer" + }, +/obj/machinery/cell_charger, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aSv" = ( +/obj/item/device/radio/intercom{ + broadcasting = 1; + frequency = 1485; + listening = 0; + name = "Station Intercom (Medbay)"; + pixel_y = 23 + }, +/turf/open/floor/plasteel/whiteyellow/corner, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aSw" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Chemistry"; + dir = 4 + }, +/obj/machinery/requests_console{ + department = "Chemistry"; + departmentType = 2; + pixel_x = -30 + }, +/obj/structure/closet/wardrobe/chemistry_white, +/obj/item/weapon/storage/backpack/satchel/chem, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"aSx" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"aSy" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 + }, +/obj/structure/closet/crate, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"aSz" = ( +/turf/open/floor/plasteel/caution/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"aSA" = ( +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aSB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/device/radio/intercom{ + dir = 8; + freerange = 1; + name = "Station Intercom (Command)"; + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aSC" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Central Primary Hall North West" + }, +/obj/machinery/airalarm{ + frequency = 1439; + pixel_y = 23 + }, +/turf/open/floor/plasteel/purple/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"aSD" = ( +/turf/open/floor/plasteel/purple/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"aSE" = ( +/turf/open/floor/plasteel/warning/corner, +/area/hallway/primary/central) +"aSF" = ( +/turf/open/floor/plasteel/warning{ + dir = 2 + }, +/area/hallway/primary/central) +"aSG" = ( +/turf/open/floor/plasteel/loadingarea{ + dir = 1 + }, +/area/hallway/primary/central) +"aSH" = ( +/turf/open/floor/plasteel/warning/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"aSI" = ( +/turf/open/floor/plasteel/purple/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"aSJ" = ( +/obj/machinery/camera{ + c_tag = "Central Primary Hall North East" + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = 30 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/purple/side{ + dir = 1 + }, +/area/hallway/primary/central) +"aSK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/purple/side{ + dir = 1 + }, +/area/hallway/primary/central) +"aSL" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Central Access" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aSM" = ( +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"aSN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"aSO" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"aSP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/maintenance{ + name = "Medbay Maintenance"; + req_access_txt = "5" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aSQ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"aSR" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aSS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"aST" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"aSU" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/maintenance{ + name = "E.V.A. Maintenance"; + req_access_txt = "18" + }, +/turf/open/floor/plating, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"aSV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"aSW" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fore) +"aSX" = ( +/obj/structure/table, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/door/window{ + name = "Core Modules"; + req_access_txt = "20" + }, +/obj/machinery/ai_status_display{ + pixel_y = 32 + }, +/obj/item/weapon/aiModule/core/full/asimov, +/obj/item/weapon/aiModule/core/freeformcore, +/obj/item/weapon/aiModule/core/full/corp, +/obj/item/weapon/aiModule/core/full/custom, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai_upload) +"aSY" = ( +/obj/machinery/computer/upload/ai, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/ai_upload) +"aSZ" = ( +/obj/machinery/flasher{ + id = "AI"; + pixel_y = 25 + }, +/obj/machinery/camera/motion{ + c_tag = "AI Upload"; + network = list("SS13","RD","AIUpload") + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai_upload) +"aTa" = ( +/obj/machinery/computer/upload/borg, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/ai_upload) +"aTb" = ( +/obj/structure/table, +/obj/item/weapon/aiModule/supplied/oxygen, +/obj/item/weapon/aiModule/zeroth/oneHuman, +/obj/item/weapon/aiModule/reset/purge, +/obj/item/weapon/aiModule/core/full/antimov, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/door/window{ + base_state = "right"; + icon_state = "right"; + name = "High-Risk Modules"; + req_access_txt = "20" + }, +/obj/machinery/ai_status_display{ + pixel_y = 32 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai_upload) +"aTc" = ( +/obj/structure/closet/crate, +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/atmos) +"aTd" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/atmos) +"aTe" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plasteel/bot, +/area/atmos) +"aTf" = ( +/obj/machinery/light, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/bot, +/area/atmos) +"aTg" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 2; + name = "Air to External"; + on = 1 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aTh" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "External to Filter"; + on = 1 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aTi" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/turf/open/floor/plasteel, +/area/atmos) +"aTj" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/suit_storage_unit/atmos, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/atmos) +"aTk" = ( +/obj/structure/closet/secure_closet/atmospherics, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/atmos) +"aTl" = ( +/obj/structure/window/reinforced{ + dir = 4; + layer = 2.9 + }, +/obj/structure/closet/secure_closet/atmospherics, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/atmos) +"aTm" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -25 + }, +/obj/machinery/space_heater, +/turf/open/floor/plasteel/bot, +/area/atmos) +"aTn" = ( +/obj/machinery/space_heater, +/turf/open/floor/plasteel/bot, +/area/atmos) +"aTo" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/item/stack/rods, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aTp" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/glass_medical{ + name = "Chemistry Lab"; + req_access_txt = "5; 33" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"aTq" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"aTr" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/item/clothing/shoes/jackboots, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aTs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/item/weapon/folder/white, +/obj/item/weapon/folder/white, +/obj/item/weapon/hand_labeler, +/obj/item/weapon/gun/syringe, +/obj/structure/table, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aTt" = ( +/obj/item/weapon/storage/belt/medical{ + pixel_y = 2 + }, +/obj/item/weapon/storage/belt/medical{ + pixel_y = 2 + }, +/obj/item/weapon/storage/belt/medical{ + pixel_y = 2 + }, +/obj/item/clothing/neck/stethoscope, +/obj/structure/table, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aTu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/closet/l3closet, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aTv" = ( +/obj/machinery/airalarm{ + frequency = 1439; + pixel_y = 23 + }, +/obj/machinery/camera{ + c_tag = "Medbay Storage" + }, +/obj/structure/closet/wardrobe/white/medical, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aTw" = ( +/obj/structure/closet/secure_closet/medical3, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aTx" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aTy" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aTz" = ( +/obj/machinery/light_switch{ + pixel_x = -28 + }, +/obj/item/weapon/screwdriver{ + pixel_y = 10 + }, +/obj/item/device/radio/off, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/checkpoint/medical) +"aTA" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/checkpoint/medical) +"aTB" = ( +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/checkpoint/medical) +"aTC" = ( +/obj/structure/chair/office/light, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aTD" = ( +/obj/machinery/button/door{ + desc = "A remote control switch for the medbay foyer."; + id = "MedbayFoyer"; + name = "Medbay Doors Control"; + normaldoorcontrol = 1; + pixel_x = 26; + req_access_txt = "5" + }, +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aTE" = ( +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aTF" = ( +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 4 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aTG" = ( +/obj/machinery/chem_dispenser, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 9 + }, +/area/medical/chemistry) +"aTH" = ( +/obj/structure/table/glass, +/obj/item/weapon/storage/box/beakers{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/weapon/reagent_containers/glass/beaker/large, +/obj/item/weapon/reagent_containers/dropper, +/obj/item/weapon/storage/pill_bottle/epinephrine{ + pixel_x = 5; + pixel_y = -2 + }, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 1 + }, +/area/medical/chemistry) +"aTI" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"aTJ" = ( +/obj/machinery/chem_dispenser, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 5 + }, +/area/medical/chemistry) +"aTK" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 9 + }, +/area/hallway/primary/central) +"aTL" = ( +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"aTM" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=9-Medbay2"; + location = "8-NWCentral" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aTN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aTO" = ( +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/hallway/primary/central) +"aTP" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/hallway/primary/central) +"aTQ" = ( +/obj/machinery/door/airlock/external{ + name = "Mining Dock Airlock"; + req_access = null; + req_access_txt = "48" + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"aTR" = ( +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/hallway/primary/central) +"aTS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aTT" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"aTU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"aTV" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"aTW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"aTX" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"aTY" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=4-Engineering"; + location = "3-Bar1" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"aTZ" = ( +/obj/item/device/radio/intercom{ + dir = 4; + name = "Station Intercom (General)"; + pixel_x = 27 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"aUa" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"aUb" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"aUc" = ( +/obj/machinery/portable_atmospherics/canister/carbon_dioxide, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"aUd" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23; + pixel_y = 0 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai_upload) +"aUe" = ( +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/ai_upload) +"aUf" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai_upload) +"aUg" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/turret_protected/ai_upload) +"aUh" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/hallway/primary/starboard) +"aUi" = ( +/turf/closed/wall, +/area/atmos) +"aUj" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics"; + req_access_txt = "24" + }, +/turf/open/floor/plasteel, +/area/atmos) +"aUk" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plating, +/area/atmos) +"aUl" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/atmos) +"aUm" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 1 + }, +/turf/open/floor/plating, +/area/atmos) +"aUn" = ( +/turf/closed/wall, +/area/maintenance/disposal) +"aUo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/closed/wall, +/area/maintenance/disposal) +"aUp" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/closed/wall, +/area/maintenance/disposal) +"aUq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/closed/wall, +/area/maintenance/disposal) +"aUr" = ( +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aUs" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aUt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/item/weapon/reagent_containers/spray/cleaner, +/obj/item/clothing/glasses/hud/health, +/obj/item/clothing/glasses/hud/health, +/obj/item/clothing/glasses/hud/health, +/obj/item/clothing/glasses/hud/health, +/obj/item/clothing/glasses/hud/health, +/obj/structure/table, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aUu" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aUv" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Medbay Security APC"; + pixel_x = -25 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/checkpoint/medical) +"aUw" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"aUx" = ( +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/checkpoint/medical) +"aUy" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/reagent_containers/food/drinks/britcup{ + desc = "Kingston's personal cup." + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aUz" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder/white, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aUA" = ( +/obj/structure/table/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/weapon/reagent_containers/glass/bottle/epinephrine, +/obj/item/weapon/reagent_containers/syringe/epinephrine, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aUB" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aUC" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/window/eastright{ + name = "Chemistry Desk"; + req_access_txt = "33" + }, +/turf/open/floor/plasteel, +/area/medical/chemistry) +"aUD" = ( +/obj/structure/chair/office/light{ + dir = 8 + }, +/obj/effect/landmark/start{ + name = "Chemist" + }, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 8 + }, +/area/medical/chemistry) +"aUE" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Chemist" + }, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 4 + }, +/area/medical/chemistry) +"aUF" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/window/eastright{ + base_state = "left"; + dir = 8; + icon_state = "left"; + name = "Chemistry Desk"; + req_access_txt = "33" + }, +/turf/open/floor/plasteel, +/area/medical/chemistry) +"aUG" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/hallway/primary/central) +"aUH" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel/warning/corner, +/area/hallway/primary/central) +"aUI" = ( +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/hallway/primary/central) +"aUJ" = ( +/turf/open/floor/plating, +/area/hallway/primary/central) +"aUK" = ( +/obj/machinery/computer/shuttle/mining, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/hallway/primary/central) +"aUL" = ( +/obj/structure/table, +/obj/item/weapon/folder/yellow, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/warning{ + dir = 2 + }, +/area/hallway/primary/central) +"aUM" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"aUN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aUO" = ( +/obj/machinery/camera{ + c_tag = "Aft Starboard Primary Hallway North West"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"aUP" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"aUQ" = ( +/obj/machinery/camera{ + c_tag = "Aft Starboard Primary Hallway North"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"aUR" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=8-NWCentral"; + location = "7-Bar2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"aUS" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/turf/open/floor/plasteel/darkblue/side{ + dir = 8 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"aUT" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "E.V.A. Storage APC"; + pixel_y = 25 + }, +/obj/machinery/camera{ + c_tag = "EVA Storage" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"aUU" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"aUV" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"aUW" = ( +/turf/open/floor/plasteel/black, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"aUX" = ( +/obj/machinery/airalarm{ + frequency = 1439; + pixel_y = 23 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"aUY" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/turf/open/floor/plasteel/darkblue/side{ + dir = 4 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"aUZ" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"aVa" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 4; + name = "AI Upload APC"; + pixel_x = 26 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai_upload) +"aVb" = ( +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai_upload) +"aVc" = ( +/obj/machinery/ai_slipper{ + icon_state = "motion0" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai_upload) +"aVd" = ( +/obj/structure/sign/kiddieplaque{ + pixel_x = -32 + }, +/obj/machinery/porta_turret/ai{ + dir = 4 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai_upload) +"aVe" = ( +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/turf/open/floor/plasteel/bot, +/area/atmos) +"aVf" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/caution{ + dir = 1 + }, +/area/atmos) +"aVg" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/camera{ + c_tag = "Atmospherics Monitoring" + }, +/turf/open/floor/plasteel/caution/corner{ + dir = 1 + }, +/area/atmos) +"aVh" = ( +/obj/machinery/computer/atmos_control{ + frequency = 1441; + name = "Tank Monitor"; + sensors = list("n2_sensor" = "Nitrogen", "o2_sensor" = "Oxygen", "co2_sensor" = "Carbon Dioxide", "tox_sensor" = "Toxins", "n2o_sensor" = "Nitrous Oxide", "waste_sensor" = "Gas Mix Tank") + }, +/obj/structure/sign/atmosplaque{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/caution{ + dir = 9 + }, +/area/atmos) +"aVi" = ( +/obj/machinery/computer/atmos_control{ + frequency = 1443; + level = 3; + name = "Distribution and Waste Monitor"; + sensors = list("mair_in_meter" = "Mixed Air In", "air_sensor" = "Mixed Air Supply Tank", "mair_out_meter" = "Mixed Air Out", "dloop_atm_meter" = "Distribution Loop", "wloop_atm_meter" = "Waste Loop") + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plasteel/caution{ + dir = 1 + }, +/area/atmos) +"aVj" = ( +/obj/machinery/computer/atmos_alert, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/caution{ + dir = 1 + }, +/area/atmos) +"aVk" = ( +/obj/machinery/computer/station_alert, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 1 + }, +/turf/open/floor/plasteel/caution{ + dir = 5 + }, +/area/atmos) +"aVl" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/obj/machinery/requests_console{ + department = "Atmospherics"; + departmentType = 4; + name = "Atmos RC"; + pixel_y = 28 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aVm" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/atmos) +"aVn" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/caution{ + dir = 1 + }, +/area/atmos) +"aVo" = ( +/turf/open/floor/plasteel/caution{ + dir = 1 + }, +/area/atmos) +"aVp" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/caution{ + dir = 5 + }, +/area/atmos) +"aVq" = ( +/obj/structure/disposalpipe/trunk, +/obj/structure/disposaloutlet{ + dir = 4 + }, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/maintenance/disposal) +"aVr" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "garbage" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"aVs" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "garbage" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"aVt" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "garbage" + }, +/obj/machinery/recycler, +/obj/structure/sign/securearea{ + name = "\improper STAY CLEAR HEAVY MACHINERY"; + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"aVu" = ( +/obj/machinery/conveyor{ + dir = 6; + id = "garbage"; + verted = 1 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"aVv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/maintenance/disposal) +"aVw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aVx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light{ + dir = 8 + }, +/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{ + pixel_x = 7; + pixel_y = -3 + }, +/obj/item/weapon/reagent_containers/glass/bottle/charcoal{ + pixel_x = -4; + pixel_y = -3 + }, +/obj/item/weapon/storage/pill_bottle/epinephrine{ + pixel_x = 3; + pixel_y = -2 + }, +/obj/item/weapon/reagent_containers/glass/bottle/morphine, +/obj/item/weapon/reagent_containers/glass/bottle/toxin{ + pixel_x = 4; + pixel_y = 2 + }, +/obj/item/weapon/storage/pill_bottle/epinephrine{ + pixel_x = 5; + pixel_y = -2 + }, +/obj/structure/table, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aVy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/landmark/start{ + name = "Medical Doctor" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aVz" = ( +/obj/machinery/door/airlock/glass_medical{ + name = "Medbay Storage"; + req_access_txt = "45" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aVA" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 8 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aVB" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23; + pixel_y = 0 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/checkpoint/medical) +"aVC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"aVD" = ( +/obj/structure/table, +/obj/machinery/recharger{ + pixel_y = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/checkpoint/medical) +"aVE" = ( +/turf/open/floor/plasteel/whiteblue/side{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aVF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aVG" = ( +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aVH" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aVI" = ( +/obj/machinery/chem_master, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 10 + }, +/area/medical/chemistry) +"aVJ" = ( +/obj/machinery/chem_heater, +/turf/open/floor/plasteel/whiteyellow/side, +/area/medical/chemistry) +"aVK" = ( +/obj/machinery/chem_master, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 6 + }, +/area/medical/chemistry) +"aVL" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 10 + }, +/area/hallway/primary/central) +"aVM" = ( +/turf/closed/wall, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"aVN" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Diner" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"aVO" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"aVP" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Diner" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"aVQ" = ( +/obj/structure/sign/barsign, +/turf/closed/wall, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"aVR" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"aVS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"aVT" = ( +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"aVU" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"aVV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"aVW" = ( +/obj/structure/table, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/item/weapon/aiModule/supplied/quarantine, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai_upload) +"aVX" = ( +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai_upload) +"aVY" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai_upload) +"aVZ" = ( +/obj/structure/table, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/item/weapon/aiModule/supplied/protectStation, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai_upload) +"aWa" = ( +/obj/machinery/portable_atmospherics/canister/nitrogen, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/bot, +/area/atmos) +"aWb" = ( +/obj/machinery/portable_atmospherics/canister/nitrogen, +/turf/open/floor/plasteel/bot, +/area/atmos) +"aWc" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8; + initialize_directions = 11 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aWd" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/toxins/lab) +"aWe" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/wrench, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aWf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aWg" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/glass_command{ + name = "Chief Medical Officer"; + req_access_txt = "40" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/barber, +/area/medical/cmo) +"aWh" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aWi" = ( +/obj/structure/disposalpipe/sortjunction{ + dir = 8; + sortType = 6 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aWj" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aWk" = ( +/obj/effect/landmark/start{ + name = "Shaft Miner" + }, +/turf/open/floor/plasteel/bot, +/area/hallway/primary/central) +"aWl" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/atmos) +"aWm" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/caution{ + dir = 4 + }, +/area/atmos) +"aWn" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/disposal) +"aWo" = ( +/obj/machinery/conveyor{ + dir = 5; + id = "garbage" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/disposal) +"aWp" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "garbage" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"aWq" = ( +/obj/machinery/conveyor{ + dir = 10; + id = "garbage"; + verted = -1 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"aWr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aWs" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/item/weapon/storage/box/beakers{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/weapon/storage/box/syringes, +/obj/structure/table, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aWt" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aWu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aWv" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aWw" = ( +/obj/machinery/computer/secure_data, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = -30 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/checkpoint/medical) +"aWx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/chair/office/dark{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"aWy" = ( +/obj/structure/table, +/obj/item/weapon/book/manual/wiki/security_space_law, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/checkpoint/medical) +"aWz" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aWA" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/machinery/shower{ + dir = 8; + name = "emergency shower" + }, +/turf/open/floor/plasteel/whitebot, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aWB" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/turf/open/floor/plasteel/whitebot, +/area/medical/chemistry) +"aWC" = ( +/obj/machinery/shower{ + dir = 8 + }, +/turf/open/floor/plasteel/whitebot, +/area/medical/chemistry) +"aWD" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"aWE" = ( +/turf/closed/wall/mineral/titanium/overspace, +/area/shuttle/labor) +"aWF" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/labor) +"aWG" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/labor) +"aWH" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Mining Shuttle Airlock"; + req_access_txt = "48" + }, +/obj/docking_port/mobile{ + dir = 2; + dwidth = 3; + height = 5; + id = "mining"; + name = "mining shuttle"; + port_angle = 90; + width = 7 + }, +/obj/docking_port/stationary{ + dir = 2; + dwidth = 3; + height = 5; + id = "mining_home"; + name = "mining shuttle bay"; + width = 7 + }, +/turf/open/floor/plating, +/area/shuttle/labor) +"aWI" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s10"; + dir = 2 + }, +/area/shuttle/labor) +"aWJ" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aWK" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"aWL" = ( +/obj/machinery/computer/arcade, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"aWM" = ( +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"aWN" = ( +/obj/structure/noticeboard{ + pixel_y = 27 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"aWO" = ( +/obj/machinery/status_display{ + layer = 4; + pixel_y = 32 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"aWP" = ( +/obj/machinery/airalarm{ + frequency = 1439; + pixel_y = 23 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"aWQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"aWR" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"aWS" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"aWT" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"aWU" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/clothing/shoes/magboots, +/obj/item/clothing/shoes/magboots, +/obj/item/clothing/shoes/magboots{ + pixel_x = 4; + pixel_y = -3 + }, +/obj/item/clothing/shoes/magboots{ + pixel_x = 4; + pixel_y = -3 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"aWV" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"aWW" = ( +/obj/structure/table, +/obj/item/weapon/storage/belt/utility, +/obj/item/weapon/storage/belt/utility, +/obj/item/device/radio/off, +/obj/item/device/radio/off, +/obj/item/device/radio/off, +/obj/item/device/radio/off, +/obj/item/device/multitool, +/turf/open/floor/plasteel/bot, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"aWX" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/tank_dispenser/oxygen{ + layer = 2.9; + pixel_x = -1; + pixel_y = 2 + }, +/turf/open/floor/plasteel/bot, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"aWY" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/weapon/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000 + }, +/obj/item/weapon/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000 + }, +/turf/open/floor/plasteel/bot, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"aWZ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"aXa" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/tank/jetpack/carbondioxide, +/obj/item/weapon/tank/jetpack/carbondioxide, +/obj/item/weapon/tank/jetpack/carbondioxide{ + pixel_x = -4; + pixel_y = 1 + }, +/obj/item/weapon/tank/jetpack/carbondioxide{ + pixel_x = -4; + pixel_y = 1 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"aXb" = ( +/obj/structure/table, +/obj/item/weapon/aiModule/reset, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai_upload) +"aXc" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/obj/item/device/radio/intercom{ + broadcasting = 1; + frequency = 1447; + name = "Private AI Channel"; + pixel_y = -28 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai_upload) +"aXd" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai_upload) +"aXe" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai_upload) +"aXf" = ( +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/item/weapon/aiModule/supplied/freeform, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai_upload) +"aXg" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plasteel/bot, +/area/atmos) +"aXh" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aXi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aXj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aXk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aXl" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/atmos) +"aXm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/caution/corner{ + dir = 8 + }, +/area/atmos) +"aXn" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/atmos) +"aXo" = ( +/obj/machinery/camera{ + c_tag = "Atmospherics Access"; + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/caution{ + dir = 4 + }, +/area/atmos) +"aXp" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "garbage" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/disposal) +"aXq" = ( +/obj/structure/window/fulltile, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/disposal) +"aXr" = ( +/obj/structure/disposalpipe/trunk{ + dir = 2 + }, +/obj/machinery/disposal/deliveryChute{ + dir = 4 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/door/window{ + base_state = "right"; + dir = 4; + icon_state = "right"; + layer = 3 + }, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/maintenance/disposal) +"aXs" = ( +/obj/machinery/mineral/stacking_machine{ + input_dir = 1; + stack_amt = 10 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"aXt" = ( +/obj/effect/decal/cleanable/oil, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aXu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/item/weapon/storage/box/bodybags{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/rxglasses, +/obj/structure/table, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aXv" = ( +/obj/structure/table, +/obj/item/weapon/storage/belt/medical, +/obj/item/weapon/reagent_containers/glass/beaker/large/charcoal, +/obj/item/weapon/reagent_containers/glass/beaker/large/epinephrine, +/obj/item/weapon/reagent_containers/glass/beaker/large/styptic, +/obj/item/weapon/reagent_containers/glass/beaker/large/silver_sulfadiazine, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aXw" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/toxin{ + pixel_x = 2; + pixel_y = 6 + }, +/obj/item/weapon/storage/firstaid/toxin{ + pixel_x = 2; + pixel_y = 6 + }, +/obj/item/weapon/storage/firstaid/toxin{ + pixel_x = 2; + pixel_y = 6 + }, +/obj/item/weapon/storage/firstaid/o2{ + pixel_x = -2; + pixel_y = 4 + }, +/obj/item/device/radio/intercom{ + frequency = 1485; + name = "Station Intercom (Medbay)"; + pixel_y = -30 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aXx" = ( +/obj/machinery/airalarm{ + frequency = 1439; + pixel_y = 23 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"aXy" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aXz" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aXA" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aXB" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aXC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/filingcabinet, +/obj/machinery/newscaster{ + pixel_x = -32 + }, +/obj/item/device/radio/intercom{ + pixel_y = -26 + }, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/security/checkpoint/medical) +"aXD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/button/door{ + desc = "A remote control switch for the medbay foyer."; + id = "MedbayFoyer"; + name = "Medbay Doors Control"; + normaldoorcontrol = 1; + pixel_x = 0; + pixel_y = -26; + req_access_txt = "5" + }, +/obj/machinery/camera{ + c_tag = "Security Post - Medbay"; + dir = 1 + }, +/turf/open/floor/plasteel/red/side, +/area/security/checkpoint/medical) +"aXE" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/weapon/pen, +/obj/machinery/requests_console{ + department = "Security"; + departmentType = 5; + pixel_y = -30 + }, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/checkpoint/medical) +"aXF" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aXG" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aXH" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aXI" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-10" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aXJ" = ( +/obj/structure/table/glass, +/obj/item/weapon/reagent_containers/glass/bottle/epinephrine, +/obj/item/weapon/reagent_containers/glass/bottle/epinephrine, +/obj/item/weapon/reagent_containers/glass/bottle/epinephrine, +/obj/item/weapon/reagent_containers/glass/bottle/charcoal{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/weapon/reagent_containers/glass/bottle/charcoal{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/weapon/reagent_containers/glass/bottle/charcoal{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/weapon/storage/pill_bottle/epinephrine{ + pixel_x = 5; + pixel_y = -2 + }, +/obj/item/stack/sheet/mineral/plasma{ + layer = 2.9 + }, +/obj/item/stack/sheet/mineral/plasma{ + layer = 2.9 + }, +/turf/open/floor/plasteel/whiteyellow/side, +/area/medical/chemistry) +"aXK" = ( +/obj/structure/table/glass, +/obj/machinery/reagentgrinder, +/turf/open/floor/plasteel/whiteyellow/side, +/area/medical/chemistry) +"aXL" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel/whiteyellow/side, +/area/medical/chemistry) +"aXM" = ( +/obj/machinery/light, +/obj/structure/sign/nosmoking_2{ + pixel_y = -30 + }, +/obj/structure/table/glass, +/obj/item/weapon/folder/white, +/obj/item/device/radio/headset/headset_med, +/turf/open/floor/plasteel/whiteyellow/side, +/area/medical/chemistry) +"aXN" = ( +/obj/structure/table/glass, +/obj/item/weapon/hand_labeler, +/obj/item/stack/packageWrap, +/turf/open/floor/plasteel/whiteyellow/side, +/area/medical/chemistry) +"aXO" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall3"; + dir = 2 + }, +/area/shuttle/labor) +"aXP" = ( +/obj/structure/table, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/labor) +"aXQ" = ( +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/labor) +"aXR" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/labor) +"aXS" = ( +/obj/structure/ore_box, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/labor) +"aXT" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall1"; + dir = 2 + }, +/area/shuttle/labor) +"aXU" = ( +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = -32 + }, +/obj/structure/chair, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"aXV" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"aXW" = ( +/obj/structure/chair, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"aXX" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/chair/stool, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"aXY" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/power/apc{ + dir = 4; + name = "Bar APC"; + pixel_x = 27 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/computer/slot_machine, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"aXZ" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/obj/item/device/radio/intercom{ + dir = 4; + name = "Station Intercom (General)"; + pixel_x = -27 + }, +/turf/open/floor/plasteel/darkblue/side{ + dir = 8 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"aYa" = ( +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"aYb" = ( +/turf/open/floor/plasteel/warning, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"aYc" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"aYd" = ( +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"aYe" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/obj/machinery/requests_console{ + department = "EVA"; + pixel_x = 32 + }, +/turf/open/floor/plasteel/darkblue/side{ + dir = 4 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"aYf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai_upload) +"aYg" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/highsecurity{ + locked = 0; + name = "AI Upload"; + req_access_txt = "16" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai_upload) +"aYh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai_upload) +"aYi" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plasteel/bot, +/area/atmos) +"aYj" = ( +/turf/open/floor/plasteel/loadingarea{ + dir = 1 + }, +/area/atmos) +"aYk" = ( +/obj/structure/tank_dispenser/oxygen{ + layer = 2.9; + pixel_x = -1; + pixel_y = 2 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aYl" = ( +/obj/structure/chair, +/obj/effect/landmark/start{ + name = "Atmospheric Technician" + }, +/turf/open/floor/plasteel, +/area/atmos) +"aYm" = ( +/obj/machinery/light, +/obj/item/weapon/tank/internals/emergency_oxygen{ + pixel_x = -8; + pixel_y = 0 + }, +/obj/item/weapon/tank/internals/emergency_oxygen{ + pixel_x = -8; + pixel_y = 0 + }, +/obj/item/clothing/mask/breath{ + pixel_x = 4 + }, +/obj/item/clothing/mask/breath{ + pixel_x = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/structure/table, +/turf/open/floor/plasteel, +/area/atmos) +"aYn" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -28 + }, +/obj/item/weapon/storage/box, +/obj/item/weapon/storage/box, +/obj/structure/table, +/turf/open/floor/plasteel, +/area/atmos) +"aYo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 1 + }, +/obj/structure/closet/wardrobe/atmospherics_yellow, +/turf/open/floor/plasteel, +/area/atmos) +"aYp" = ( +/obj/machinery/button/door{ + id = "atmos"; + name = "Atmospherics Lockdown"; + pixel_x = 24; + pixel_y = 4; + req_access_txt = "24" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aYq" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/closed/wall, +/area/atmos) +"aYr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/caution{ + dir = 8 + }, +/area/atmos) +"aYs" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aYt" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4; + initialize_directions = 11 + }, +/turf/open/floor/plasteel/caution{ + dir = 4 + }, +/area/atmos) +"aYu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aYv" = ( +/obj/item/stack/cable_coil/cut{ + amount = 2; + icon_state = "coil_red2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aYw" = ( +/obj/effect/landmark/start{ + name = "Shaft Miner" + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/hallway/primary/central) +"aYx" = ( +/obj/effect/landmark/start{ + name = "Shaft Miner" + }, +/turf/open/floor/plasteel/warning{ + dir = 2 + }, +/area/hallway/primary/central) +"aYy" = ( +/obj/machinery/holopad, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aYz" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aYA" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/medical{ + name = "Morgue"; + req_access_txt = "6;5" + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"aYB" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/medical/morgue) +"aYC" = ( +/turf/closed/wall, +/area/medical/morgue) +"aYD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/medical/morgue) +"aYE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/medical/morgue) +"aYF" = ( +/obj/structure/sign/bluecross_2, +/turf/closed/wall, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aYG" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aYH" = ( +/obj/machinery/computer/shuttle/mining, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/labor) +"aYI" = ( +/obj/structure/shuttle/engine/heater{ + icon_state = "heater"; + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8; + layer = 2.9 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/turf/open/floor/plating/airless, +/area/shuttle/labor) +"aYJ" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion"; + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/shuttle/labor) +"aYK" = ( +/obj/structure/table, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"aYL" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"aYM" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"aYN" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"aYO" = ( +/obj/structure/table, +/obj/item/clothing/head/hardhat/cakehat, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"aYP" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"aYQ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/chair/stool, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"aYR" = ( +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = 32 + }, +/obj/machinery/computer/slot_machine, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"aYS" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/darkblue/side{ + dir = 8 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"aYT" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/weapon/crowbar, +/obj/item/weapon/wrench, +/obj/item/weapon/storage/toolbox/electrical{ + pixel_x = 1; + pixel_y = -1 + }, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"aYU" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/closet/crate/rcd{ + pixel_y = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"aYV" = ( +/obj/structure/table, +/obj/item/stack/sheet/rglass{ + amount = 50 + }, +/obj/item/stack/sheet/rglass{ + amount = 50 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"aYW" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/darkblue/side{ + dir = 4 + }, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"aYX" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai_upload) +"aYY" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/highsecurity{ + name = "AI Upload Access"; + req_access_txt = "16" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/turret_protected/ai_upload) +"aYZ" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"aZa" = ( +/obj/machinery/porta_turret/ai{ + dir = 4 + }, +/turf/open/floor/bluegrid, +/area/ai_monitored/turret_protected/ai_upload) +"aZb" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"aZc" = ( +/obj/structure/plasticflaps, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=1"; + dir = 1; + freq = 1400; + location = "Atmospherics" + }, +/turf/open/floor/plasteel/delivery, +/area/atmos) +"aZd" = ( +/obj/machinery/door/window/northleft{ + name = "Atmospherics Desk"; + req_access_txt = "24" + }, +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/poddoor/preopen{ + id = "atmos"; + name = "atmos blast door" + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/delivery, +/area/atmos) +"aZe" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 8 + }, +/obj/machinery/meter, +/turf/closed/wall/r_wall, +/area/atmos) +"aZf" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/atmos) +"aZg" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 8 + }, +/obj/machinery/meter, +/turf/closed/wall/r_wall, +/area/atmos) +"aZh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/atmos) +"aZi" = ( +/obj/machinery/door/poddoor/preopen{ + id = "atmos"; + name = "atmos blast door" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/delivery, +/area/atmos) +"aZj" = ( +/obj/machinery/door/poddoor/preopen{ + id = "atmos"; + name = "atmos blast door" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/delivery, +/area/atmos) +"aZk" = ( +/obj/machinery/door/poddoor/preopen{ + id = "atmos"; + name = "atmos blast door" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/delivery, +/area/atmos) +"aZl" = ( +/obj/machinery/door/poddoor{ + id = "trash"; + name = "disposal bay door" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"aZm" = ( +/obj/machinery/mass_driver{ + dir = 8; + id = "trash" + }, +/obj/machinery/light/small, +/obj/structure/sign/vacuum{ + pixel_y = -32 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"aZn" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "garbage" + }, +/obj/machinery/door/poddoor/preopen{ + id = "Disposal Exit"; + layer = 3.1; + name = "disposal exit vent" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"aZo" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/conveyor{ + dir = 10; + id = "garbage"; + verted = -1 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"aZp" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/mob/living/simple_animal/pet/dog/pug{ + desc = "The trusty and dependable yet medically unsound pug of atmospherics. Allegedly has a serious exotic gas inhalation disorder."; + name = "Spaghetti"; + speak_emote = list("barks","woofs","burps out a bit of plasma","pants heavily. The smell makes you giggle") + }, +/turf/open/floor/plasteel, +/area/atmos) +"aZq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aZr" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Atmospheric Technician" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aZs" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/airlock/glass_atmos{ + name = "Atmospherics Monitoring"; + req_access_txt = "24" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aZt" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4; + initialize_directions = 11 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/atmos) +"aZu" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aZv" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"aZw" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"aZx" = ( +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"aZy" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 2; + pixel_y = 6 + }, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 2; + pixel_y = 6 + }, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 2; + pixel_y = 6 + }, +/obj/item/weapon/storage/firstaid/brute{ + pixel_x = -2; + pixel_y = 4 + }, +/obj/item/weapon/storage/firstaid/brute{ + pixel_x = -2; + pixel_y = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aZz" = ( +/obj/structure/table, +/obj/machinery/requests_console{ + department = "Medbay"; + departmentType = 1; + name = "Medbay RC"; + pixel_y = -30 + }, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 2; + pixel_y = 6 + }, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 2; + pixel_y = 6 + }, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 2; + pixel_y = 6 + }, +/obj/item/weapon/storage/firstaid/fire{ + pixel_x = -2; + pixel_y = 4 + }, +/obj/item/weapon/storage/firstaid/fire{ + pixel_x = -2; + pixel_y = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay{ + name = "Medbay Central" + }) +"aZA" = ( +/obj/machinery/conveyor_switch/oneway{ + convdir = -1; + id = "garbage"; + name = "disposal coveyor" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/maintenance/disposal) +"aZB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/medical/morgue) +"aZC" = ( +/obj/machinery/light_switch{ + pixel_y = 25 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"aZD" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"aZE" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"aZF" = ( +/obj/machinery/airalarm{ + frequency = 1439; + pixel_y = 23 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"aZG" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"aZH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/weapon/storage/box/bodybags, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/table, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"aZI" = ( +/obj/item/weapon/pen, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/table, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"aZJ" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 9 + }, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"aZK" = ( +/turf/open/floor/plasteel/blue/side{ + dir = 1 + }, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"aZL" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 1 + }, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"aZM" = ( +/obj/item/device/radio/intercom{ + dir = 8; + name = "Station Intercom (General)"; + pixel_y = 25 + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 1 + }, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"aZN" = ( +/obj/machinery/camera{ + c_tag = "Aft Port Primary Hallway North East" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"aZO" = ( +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"aZP" = ( +/obj/structure/closet/crate, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/labor) +"aZQ" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall2" + }, +/area/shuttle/labor) +"aZR" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aZS" = ( +/obj/machinery/camera{ + c_tag = "Bar West"; + dir = 4; + pixel_y = -22 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -24 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"aZT" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"aZU" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"aZV" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"aZW" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"aZX" = ( +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"aZY" = ( +/obj/machinery/newscaster{ + pixel_x = 28 + }, +/obj/machinery/computer/slot_machine, +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"aZZ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plating, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"baa" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_command{ + name = "E.V.A. Storage"; + req_access_txt = "19" + }, +/turf/open/floor/plasteel/black, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"bab" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"bac" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"bad" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/ai_monitored/storage/eva{ + name = "E.V.A. Storage" + }) +"bae" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"baf" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bag" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/hydroponics) +"bah" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bai" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/caution{ + dir = 9 + }, +/area/hallway/primary/starboard) +"baj" = ( +/obj/item/weapon/wrench, +/obj/item/weapon/crowbar, +/turf/open/floor/plasteel/caution{ + dir = 1 + }, +/area/hallway/primary/starboard) +"bak" = ( +/turf/open/floor/plasteel/caution{ + dir = 1 + }, +/area/hallway/primary/starboard) +"bal" = ( +/turf/open/floor/plasteel/caution{ + dir = 5 + }, +/area/hallway/primary/starboard) +"bam" = ( +/obj/machinery/portable_atmospherics/pump, +/obj/machinery/camera{ + c_tag = "Starboard Primary Hallway East"; + pixel_x = 22 + }, +/obj/structure/window/reinforced{ + dir = 8; + layer = 2.9 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/turf/open/floor/plasteel/arrival, +/area/hallway/primary/starboard) +"ban" = ( +/obj/machinery/portable_atmospherics/pump, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/turf/open/floor/plasteel/arrival, +/area/hallway/primary/starboard) +"bao" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/turf/open/floor/plasteel/escape, +/area/hallway/primary/starboard) +"bap" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/atmos) +"baq" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics"; + req_access_txt = "24" + }, +/turf/open/floor/plasteel, +/area/atmos) +"bar" = ( +/obj/structure/sign/securearea, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/atmos) +"bas" = ( +/turf/closed/wall/r_wall, +/area/security/checkpoint/engineering) +"bat" = ( +/obj/structure/closet, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bau" = ( +/obj/machinery/light/small, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bav" = ( +/obj/machinery/light_switch{ + pixel_x = 25 + }, +/obj/machinery/power/apc{ + name = "Disposal APC"; + pixel_y = -25 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"baw" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"bax" = ( +/obj/machinery/button/massdriver{ + id = "trash"; + pixel_x = -26; + pixel_y = -6 + }, +/obj/machinery/button/door{ + id = "Disposal Exit"; + name = "Disposal Vent Control"; + pixel_x = -25; + pixel_y = 4; + req_access_txt = "12" + }, +/obj/structure/chair/stool, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/maintenance/disposal) +"bay" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/mineral/stacking_unit_console{ + machinedir = 3 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/disposal) +"baz" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/maintenance/disposal) +"baA" = ( +/obj/structure/grille, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"baB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/medical/medbay{ + name = "Medbay Central" + }) +"baC" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/medical/medbay{ + name = "Medbay Central" + }) +"baD" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"baE" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"baF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"baG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"baH" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"baI" = ( +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"baJ" = ( +/obj/machinery/door/airlock/medical{ + name = "Morgue"; + req_access_txt = "6" + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"baK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/blue/side{ + dir = 8 + }, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"baL" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=2-SECentral"; + location = "1-Medbay1" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"baM" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s5"; + dir = 2 + }, +/area/shuttle/labor) +"baN" = ( +/turf/closed/wall/shuttle, +/area/shuttle/labor) +"baO" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s9"; + dir = 2 + }, +/area/shuttle/labor) +"baP" = ( +/obj/effect/landmark{ + name = "lightsout" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"baQ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"baR" = ( +/obj/structure/sign/securearea{ + pixel_y = 32 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/blue/corner{ + dir = 4 + }, +/area/hallway/primary/starboard) +"baS" = ( +/turf/open/floor/plasteel/blue/side{ + dir = 1 + }, +/area/hallway/primary/starboard) +"baT" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE"; + pixel_y = 32 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/obj/machinery/camera{ + c_tag = "Starboard Primary Hallway West" + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 1 + }, +/area/hallway/primary/starboard) +"baU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"baV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/airalarm{ + frequency = 1439; + pixel_y = 23 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/hallway/primary/starboard) +"baW" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/hallway/primary/starboard) +"baX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 8 + }, +/area/hallway/primary/starboard) +"baY" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/hallway/primary/starboard) +"baZ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/hallway/primary/starboard) +"bba" = ( +/obj/machinery/ai_status_display{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/hallway/primary/starboard) +"bbb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning/corner{ + dir = 4 + }, +/area/hallway/primary/starboard) +"bbc" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/hallway/primary/starboard) +"bbd" = ( +/obj/item/device/radio/intercom{ + dir = 4; + name = "Station Intercom (General)"; + pixel_y = 27 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/hallway/primary/starboard) +"bbe" = ( +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/hallway/primary/starboard) +"bbf" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/hallway/primary/starboard) +"bbg" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/engine/break_room) +"bbh" = ( +/obj/machinery/light_switch{ + pixel_y = 26 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/caution{ + dir = 9 + }, +/area/engine/break_room) +"bbi" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/caution{ + dir = 1 + }, +/area/engine/break_room) +"bbj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/caution{ + dir = 5 + }, +/area/engine/break_room) +"bbk" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/checkpoint/engineering) +"bbl" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/checkpoint/engineering) +"bbm" = ( +/obj/machinery/button/door{ + desc = "A remote control-switch for the engineering security doors."; + id = "Engineering"; + name = "Engineering Lockdown"; + pixel_x = 0; + pixel_y = 25; + req_access_txt = "10" + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/checkpoint/engineering) +"bbn" = ( +/obj/structure/filingcabinet, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/obj/item/device/radio/intercom{ + dir = 4; + name = "Station Intercom (General)"; + pixel_x = 27 + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/checkpoint/engineering) +"bbo" = ( +/turf/closed/wall, +/area/janitor) +"bbp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/medical/medbay{ + name = "Medbay Central" + }) +"bbq" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/closed/wall, +/area/medical/medbay{ + name = "Medbay Central" + }) +"bbr" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/medical/medbay{ + name = "Medbay Central" + }) +"bbs" = ( +/obj/structure/bodycontainer/morgue, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bbt" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bbu" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/bodycontainer/morgue, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bbv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bbw" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bbx" = ( +/obj/machinery/camera{ + c_tag = "Medbay Morgue"; + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bby" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23; + pixel_y = 0 + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 1 + }, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"bbz" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=0-Escape"; + location = "9-Medbay2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"bbA" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"bbB" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bbC" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/structure/table, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"bbD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/structure/table, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"bbE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"bbF" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"bbG" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/piano, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"bbH" = ( +/obj/machinery/door/airlock/glass{ + name = "Kitchen"; + req_access_txt = "0"; + req_one_access_txt = "25;28" + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/kitchen) +"bbI" = ( +/obj/machinery/door/window{ + dir = 1; + name = "Theatre Stage"; + req_access_txt = "0" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"bbJ" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Theatre Stage"; + dir = 8; + pixel_y = -22 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"bbK" = ( +/turf/closed/wall, +/area/crew_quarters/theatre) +"bbL" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=6-Arrivals"; + location = "5-Holodeck" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bbM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bbN" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bbO" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bbP" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bbQ" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=5-Holodeck"; + location = "4-Engineering" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bbR" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/maintenance/disposal) +"bbS" = ( +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bbT" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bbU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/maintenance{ + name = "Disposal Access"; + req_access_txt = "12" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bbV" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bbW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bbX" = ( +/obj/structure/table, +/obj/item/weapon/book/manual/wiki/security_space_law, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/checkpoint/engineering) +"bbY" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/engineering) +"bbZ" = ( +/obj/machinery/computer/secure_data, +/obj/machinery/requests_console{ + department = "Security"; + departmentType = 5; + pixel_x = 30 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/checkpoint/engineering) +"bca" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/purple, +/turf/open/floor/plasteel/floorgrime, +/area/janitor) +"bcb" = ( +/obj/structure/closet/jcloset, +/obj/machinery/camera{ + c_tag = "Custodial Closet" + }, +/turf/open/floor/plasteel/floorgrime, +/area/janitor) +"bcc" = ( +/obj/structure/closet/l3closet/janitor, +/turf/open/floor/plasteel/floorgrime, +/area/janitor) +"bcd" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bce" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"bcf" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"bcg" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bch" = ( +/obj/item/device/radio/intercom{ + broadcasting = 1; + frequency = 1485; + listening = 0; + name = "Station Intercom (Medbay)"; + pixel_x = 28 + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bci" = ( +/turf/closed/wall, +/area/library) +"bcj" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/library) +"bck" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Library" + }, +/turf/open/floor/carpet, +/area/library) +"bcl" = ( +/turf/closed/wall, +/area/hallway/primary/central) +"bcm" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/power/apc{ + dir = 8; + name = "Central Hall APC"; + pixel_x = -25 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bcn" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"bco" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/hallway/primary/central) +"bcp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/hallway/primary/central) +"bcq" = ( +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/hallway/primary/central) +"bcr" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"bcs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bct" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bcu" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"bcv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"bcw" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"bcx" = ( +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"bcy" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"bcz" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/crew_quarters/theatre) +"bcA" = ( +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/starboard) +"bcB" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/neutral/side, +/area/hallway/primary/starboard) +"bcC" = ( +/turf/open/floor/plasteel/neutral/side, +/area/hallway/primary/starboard) +"bcD" = ( +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/hallway/primary/starboard) +"bcE" = ( +/obj/machinery/light, +/obj/machinery/newscaster{ + pixel_y = -30 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bcF" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = -30 + }, +/turf/open/floor/plasteel/yellow/side, +/area/hallway/primary/starboard) +"bcG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/yellow/side, +/area/hallway/primary/starboard) +"bcH" = ( +/turf/open/floor/plasteel/yellow/side, +/area/hallway/primary/starboard) +"bcI" = ( +/obj/structure/cable, +/obj/machinery/power/apc{ + name = "Starboard Primary Hallway APC"; + pixel_y = -25 + }, +/turf/open/floor/plasteel/yellow/side, +/area/hallway/primary/starboard) +"bcJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/yellow/side, +/area/hallway/primary/starboard) +"bcK" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/yellow/side, +/area/hallway/primary/starboard) +"bcL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side, +/area/hallway/primary/starboard) +"bcM" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/obj/machinery/camera{ + c_tag = "Starboard Primary Hallway Central"; + dir = 1 + }, +/turf/open/floor/plasteel/yellow/side, +/area/hallway/primary/starboard) +"bcN" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/yellow/side, +/area/hallway/primary/starboard) +"bcO" = ( +/turf/open/floor/plasteel/warning/corner, +/area/hallway/primary/starboard) +"bcP" = ( +/turf/open/floor/plasteel/warning, +/area/hallway/primary/starboard) +"bcQ" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 1 + }, +/area/hallway/primary/starboard) +"bcR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bcS" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/yellow/side, +/area/hallway/primary/starboard) +"bcT" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 6 + }, +/area/hallway/primary/starboard) +"bcU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bcV" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bcW" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bcX" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/checkpoint/engineering) +"bcY" = ( +/obj/structure/table, +/obj/machinery/recharger{ + pixel_y = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/checkpoint/engineering) +"bcZ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/engineering) +"bda" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Security Post - Engineering"; + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/machinery/computer/monitor, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/checkpoint/engineering) +"bdb" = ( +/obj/machinery/door/airlock/external{ + name = "Engineering External Access"; + req_access = null; + req_access_txt = "10;13" + }, +/turf/open/floor/plating, +/area/engine/break_room) +"bdc" = ( +/turf/closed/wall, +/area/engine/break_room) +"bdd" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/floorgrime, +/area/janitor) +"bde" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plating, +/area/janitor) +"bdf" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/bot, +/area/hallway/primary/starboard) +"bdg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"bdh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/space_heater, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"bdi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/reagent_dispensers/watertank, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"bdj" = ( +/obj/structure/cable, +/obj/machinery/power/apc{ + name = "Morgue APC"; + pixel_y = -25 + }, +/obj/effect/landmark/start{ + name = "Medical Doctor" + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bdk" = ( +/obj/machinery/light/small, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bdl" = ( +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bdm" = ( +/obj/machinery/bookbinder, +/turf/open/floor/plasteel/black, +/area/library) +"bdn" = ( +/obj/machinery/photocopier, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/library) +"bdo" = ( +/turf/open/floor/plasteel/black, +/area/library) +"bdp" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/library) +"bdq" = ( +/turf/open/floor/carpet, +/area/library) +"bdr" = ( +/obj/structure/table/wood, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/library) +"bds" = ( +/obj/item/weapon/folder/yellow, +/obj/structure/table/wood, +/turf/open/floor/plasteel/black, +/area/library) +"bdt" = ( +/obj/machinery/vending/snack, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/hallway/primary/central) +"bdu" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bdv" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=3-Bar1"; + location = "2-SECentral" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bdw" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bdx" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23; + pixel_y = 0 + }, +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"bdy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"bdz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"bdA" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"bdB" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"bdC" = ( +/obj/machinery/door/airlock/glass{ + name = "Central Access" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bdD" = ( +/obj/machinery/door/airlock/glass{ + name = "Central Access" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bdE" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/crew_quarters/sleep) +"bdF" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Dormitory" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/crew_quarters/sleep) +"bdG" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Dormitory" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"bdH" = ( +/turf/closed/wall, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"bdI" = ( +/obj/machinery/vending/snack, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/hallway/primary/starboard) +"bdJ" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/hallway/primary/starboard) +"bdK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"bdL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"bdM" = ( +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"bdN" = ( +/obj/structure/sign/securearea, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"bdO" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/highsecurity{ + name = "Gravity Generator Foyer"; + req_access_txt = "19;23" + }, +/turf/open/floor/plasteel/delivery, +/area/engine/gravity_generator) +"bdP" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bdQ" = ( +/turf/closed/wall/r_wall, +/area/engine/break_room) +"bdR" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/power/apc{ + dir = 8; + name = "Engineering Foyer APC"; + pixel_x = -24 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bdS" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bdT" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bdU" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Security Office"; + req_access_txt = "63" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/engineering) +"bdV" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/checkpoint/engineering) +"bdW" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/engineering) +"bdX" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "Engineering Security APC"; + pixel_x = 27 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/checkpoint/engineering) +"bdY" = ( +/turf/open/floor/plating, +/area/engine/break_room) +"bdZ" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Custodial Closet APC"; + pixel_x = -24 + }, +/obj/item/weapon/mop, +/obj/item/weapon/reagent_containers/glass/bucket, +/obj/structure/cable, +/turf/open/floor/plasteel/floorgrime, +/area/janitor) +"bea" = ( +/mob/living/simple_animal/hostile/lizard{ + desc = "This lizard is special, it's YOUR lizard."; + name = "Wags-His-Tail" + }, +/turf/open/floor/plasteel/floorgrime, +/area/janitor) +"beb" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/light_switch{ + pixel_x = 25 + }, +/turf/open/floor/plasteel/floorgrime, +/area/janitor) +"bec" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/reagent_dispensers/fueltank, +/obj/structure/disposalpipe/junction, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"bed" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"bee" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"bef" = ( +/obj/structure/chair/office/dark, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/library) +"beg" = ( +/obj/structure/chair/office/dark, +/turf/open/floor/plasteel/black, +/area/library) +"beh" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/library) +"bei" = ( +/obj/machinery/vending/cola, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/hallway/primary/central) +"bej" = ( +/obj/machinery/light, +/obj/machinery/camera{ + c_tag = "Central Primary Hall South West"; + dir = 1 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = -30 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bek" = ( +/turf/open/floor/plasteel/green/corner, +/area/hallway/primary/central) +"bel" = ( +/turf/open/floor/plasteel/green/side, +/area/hallway/primary/central) +"bem" = ( +/obj/machinery/light, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/turf/open/floor/plasteel/green/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"ben" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-04" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"beo" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"bep" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/carpet, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"beq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/carpet, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"ber" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/carpet, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"bes" = ( +/turf/open/floor/carpet, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"bet" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"beu" = ( +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bev" = ( +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bew" = ( +/turf/open/floor/engine{ + name = "Holodeck Projector Floor" + }, +/area/holodeck/rec_center) +"bex" = ( +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/crew_quarters/sleep) +"bey" = ( +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"bez" = ( +/obj/structure/toilet{ + pixel_y = 8 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"beA" = ( +/obj/structure/toilet{ + pixel_y = 8 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"beB" = ( +/obj/structure/toilet{ + pixel_y = 8 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"beC" = ( +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"beD" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/obj/machinery/power/port_gen/pacman, +/obj/item/weapon/wrench, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"beE" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"beF" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = 22 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"beG" = ( +/obj/item/weapon/paper/gravity_gen, +/obj/item/weapon/pen/blue, +/obj/structure/table, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"beH" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'RADIOACTIVE AREA'"; + icon_state = "radiation"; + name = "RADIOACTIVE AREA"; + pixel_x = -32 + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/engine/gravity_generator) +"beI" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/engine/gravity_generator) +"beJ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/starboard) +"beK" = ( +/obj/structure/table/glass, +/obj/machinery/cell_charger, +/obj/machinery/newscaster{ + pixel_x = -30 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"beL" = ( +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/obj/effect/landmark/start{ + name = "Station Engineer" + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"beM" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"beN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"beO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/break_room) +"beP" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/checkpoint/engineering) +"beQ" = ( +/obj/machinery/light_switch{ + pixel_y = -25 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/security/checkpoint/engineering) +"beR" = ( +/obj/structure/reagent_dispensers/peppertank{ + pixel_y = -30 + }, +/turf/open/floor/plasteel/red/side, +/area/security/checkpoint/engineering) +"beS" = ( +/obj/item/weapon/screwdriver{ + pixel_y = 10 + }, +/obj/item/device/radio/off, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/checkpoint/engineering) +"beT" = ( +/obj/item/weapon/storage/box/lights/mixed, +/obj/item/weapon/storage/box/lights/mixed, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23; + pixel_y = 0 + }, +/turf/open/floor/plasteel/floorgrime, +/area/janitor) +"beU" = ( +/obj/effect/landmark/start{ + name = "Janitor" + }, +/turf/open/floor/plasteel/floorgrime, +/area/janitor) +"beV" = ( +/obj/structure/table, +/obj/item/weapon/grenade/chem_grenade/cleaner, +/obj/item/weapon/grenade/chem_grenade/cleaner, +/obj/item/weapon/grenade/chem_grenade/cleaner, +/obj/item/weapon/reagent_containers/spray/cleaner, +/turf/open/floor/plasteel/floorgrime, +/area/janitor) +"beW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/robot_debris, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"beX" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"beY" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"beZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/sortjunction{ + icon_state = "pipe-j2s"; + sortType = 9 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"bfa" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bfb" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/maintenance{ + name = "Morgue Maintenance"; + req_access_txt = "6" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/morgue) +"bfc" = ( +/obj/item/weapon/shard, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"bfd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/item/trash/raisins, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"bfe" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"bff" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"bfg" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"bfh" = ( +/obj/structure/window/fulltile, +/obj/structure/grille, +/turf/open/floor/plating, +/area/library) +"bfi" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/library) +"bfj" = ( +/obj/item/weapon/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/weapon/pen, +/obj/structure/table/wood, +/turf/open/floor/plasteel/black, +/area/library) +"bfk" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/library) +"bfl" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/library) +"bfm" = ( +/obj/item/weapon/storage/pill_bottle/dice, +/obj/structure/table/wood, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/library) +"bfn" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Library North"; + dir = 8 + }, +/obj/item/device/radio/intercom{ + dir = 8; + name = "Station Intercom (General)"; + pixel_x = 28 + }, +/turf/open/floor/plasteel/black, +/area/library) +"bfo" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bfp" = ( +/turf/closed/wall, +/area/hydroponics) +"bfq" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/hydroponics) +"bfr" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/hydroponics) +"bfs" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Hydroponics"; + req_access_txt = "35" + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"bft" = ( +/turf/open/floor/plasteel/white/side, +/area/hallway/primary/central) +"bfu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white/side, +/area/hallway/primary/central) +"bfv" = ( +/turf/closed/wall, +/area/crew_quarters/kitchen) +"bfw" = ( +/obj/structure/table/reinforced, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = -32 + }, +/turf/open/floor/carpet, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"bfx" = ( +/obj/structure/table/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/clothing/head/that{ + throwforce = 1; + throwing = 1 + }, +/turf/open/floor/carpet, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"bfy" = ( +/obj/structure/table/reinforced, +/turf/open/floor/carpet, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"bfz" = ( +/obj/structure/table/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/item/weapon/lighter, +/turf/open/floor/carpet, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"bfA" = ( +/obj/machinery/door/window/southright{ + name = "Bar Door"; + req_access_txt = "0"; + req_one_access_txt = "25;28" + }, +/turf/open/floor/carpet, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"bfB" = ( +/obj/item/device/radio/intercom{ + dir = 4; + pixel_x = 28 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"bfC" = ( +/obj/machinery/camera{ + c_tag = "Aft Starboard Primary Hallway Central"; + dir = 4 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bfD" = ( +/obj/item/weapon/soap/nanotrasen, +/obj/machinery/shower{ + dir = 4 + }, +/obj/item/weapon/bikehorn/rubberducky, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"bfE" = ( +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"bfF" = ( +/obj/machinery/door/airlock{ + name = "Unit 3" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"bfG" = ( +/obj/machinery/door/airlock{ + name = "Unit 2" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"bfH" = ( +/obj/machinery/door/airlock{ + name = "Unit 1" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"bfI" = ( +/obj/structure/cable, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/power/apc{ + dir = 8; + name = "Gravity Generator APC"; + pixel_x = -25; + pixel_y = 1 + }, +/turf/open/floor/plasteel/warning, +/area/engine/gravity_generator) +"bfJ" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/warning, +/area/engine/gravity_generator) +"bfK" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning, +/area/engine/gravity_generator) +"bfL" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/warning, +/area/engine/gravity_generator) +"bfM" = ( +/turf/open/floor/plasteel/warning, +/area/engine/gravity_generator) +"bfN" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/highsecurity{ + name = "Gravity Generator Room"; + req_access_txt = "19;23" + }, +/turf/open/floor/plasteel/delivery, +/area/engine/gravity_generator) +"bfO" = ( +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/gravity_generator) +"bfP" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Gravity Generator Foyer"; + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/gravity_generator) +"bfQ" = ( +/obj/structure/table/glass, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = -32 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bfR" = ( +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bfS" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bfT" = ( +/obj/machinery/camera{ + c_tag = "Engineering Foyer"; + dir = 8 + }, +/obj/structure/noticeboard{ + dir = 8; + pixel_x = 27 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bfU" = ( +/turf/closed/wall, +/area/security/checkpoint/engineering) +"bfV" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/break_room) +"bfW" = ( +/obj/structure/shuttle/engine/propulsion/burst{ + dir = 4 + }, +/turf/closed/wall/mineral/titanium, +/area/shuttle/pod_4) +"bfX" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/pod_4) +"bfY" = ( +/turf/closed/wall/mineral/titanium/overspace, +/area/shuttle/pod_4) +"bfZ" = ( +/obj/structure/janitorialcart, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/floorgrime, +/area/janitor) +"bga" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plating, +/area/janitor) +"bgb" = ( +/obj/structure/window/reinforced, +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/floorgrime, +/area/janitor) +"bgc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/janitor) +"bgd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/disposalpipe/sortjunction{ + icon_state = "pipe-j2s"; + sortType = 10 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"bge" = ( +/obj/structure/bodycontainer/morgue, +/obj/effect/landmark{ + name = "revenantspawn" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bgf" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/medical/morgue) +"bgg" = ( +/obj/structure/disposalpipe/sortjunction{ + dir = 1; + icon_state = "pipe-j2s"; + sortType = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"bgh" = ( +/turf/closed/wall, +/area/quartermaster/storage) +"bgi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/quartermaster/storage) +"bgj" = ( +/obj/machinery/camera{ + c_tag = "Aft Port Primary Hallway North"; + dir = 4 + }, +/turf/open/floor/plasteel/brown/corner{ + dir = 8 + }, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"bgk" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"bgl" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/library) +"bgm" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/library) +"bgn" = ( +/obj/machinery/holopad, +/turf/open/floor/carpet, +/area/library) +"bgo" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/carpet, +/area/library) +"bgp" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/medical/morgue) +"bgq" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel/black, +/area/library) +"bgr" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bgs" = ( +/obj/structure/table/glass, +/obj/item/weapon/watertank, +/obj/item/clothing/tie/armband/hydro, +/obj/item/clothing/tie/armband/hydro, +/turf/open/floor/plasteel/black, +/area/hydroponics) +"bgt" = ( +/obj/structure/table/glass, +/obj/machinery/reagentgrinder, +/turf/open/floor/plasteel/black, +/area/hydroponics) +"bgu" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/window/northleft{ + dir = 2; + name = "Hydroponics Desk"; + req_access_txt = "35" + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"bgv" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/window/westright{ + dir = 2; + name = "Hydroponics Desk"; + req_access_txt = "35" + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"bgw" = ( +/turf/open/floor/plasteel, +/area/hydroponics) +"bgx" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchen"; + name = "kitchen shutters" + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bgy" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchen"; + name = "kitchen shutters" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bgz" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/reagent_containers/food/snacks/pie, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchen"; + name = "kitchen shutters" + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bgA" = ( +/obj/machinery/vending/dinnerware, +/turf/open/floor/plasteel, +/area/crew_quarters/kitchen) +"bgB" = ( +/obj/structure/table, +/obj/item/weapon/hand_labeler, +/turf/open/floor/plasteel, +/area/crew_quarters/kitchen) +"bgC" = ( +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/weapon/pen, +/obj/structure/table, +/obj/machinery/light_switch{ + pixel_y = 28 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/kitchen) +"bgD" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/item/device/radio/intercom{ + pixel_x = -30 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"bgE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"bgF" = ( +/obj/effect/landmark/start{ + name = "Bartender" + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"bgG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"bgH" = ( +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"bgI" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bgJ" = ( +/obj/machinery/shower{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"bgK" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"bgL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"bgM" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/camera{ + c_tag = "Locker Room Toilets" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"bgN" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Locker Restrooms APC"; + pixel_y = 25 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"bgO" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/structure/mirror{ + pixel_x = 28 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"bgP" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plating, +/area/engine/gravity_generator) +"bgQ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/engine/gravity_generator) +"bgR" = ( +/obj/machinery/door/airlock/glass_command{ + name = "Gravity Generator Area"; + req_access_txt = "19; 61" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/engine/gravity_generator) +"bgS" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plating, +/area/engine/gravity_generator) +"bgT" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/engine/gravity_generator) +"bgU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"bgV" = ( +/obj/structure/closet/radiation, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'RADIOACTIVE AREA'"; + icon_state = "radiation"; + name = "RADIOACTIVE AREA"; + pixel_x = -32 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/engine/gravity_generator) +"bgW" = ( +/obj/structure/closet/radiation, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/engine/gravity_generator) +"bgX" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/item/weapon/wrench, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bgY" = ( +/obj/structure/table/glass, +/obj/machinery/status_display{ + layer = 4; + pixel_x = -32 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bgZ" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bha" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bhb" = ( +/turf/open/floor/plasteel, +/area/engine/break_room) +"bhc" = ( +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/break_room) +"bhd" = ( +/obj/machinery/door/airlock/external{ + name = "Engineering Escape Pod"; + req_access = null; + req_access_txt = "0" + }, +/turf/open/floor/plating, +/area/engine/break_room) +"bhe" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Escape Pod Airlock" + }, +/obj/docking_port/mobile/pod{ + dir = 4; + id = "pod4"; + name = "escape pod 4" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_4) +"bhf" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + pixel_y = 25 + }, +/obj/item/weapon/storage/pod{ + pixel_x = 6; + pixel_y = -32 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_4) +"bhg" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/status_display{ + density = 0; + layer = 3; + pixel_x = 0; + pixel_y = 32 + }, +/obj/machinery/computer/shuttle/pod{ + pixel_y = -32; + possible_destinations = "pod_asteroid4"; + shuttleId = "pod4" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_4) +"bhh" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/pod_4) +"bhi" = ( +/obj/docking_port/stationary/random{ + dir = 4; + id = "pod_asteroid4"; + name = "asteroid" + }, +/turf/open/space, +/area/space) +"bhj" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plasteel/floorgrime, +/area/janitor) +"bhk" = ( +/obj/item/weapon/restraints/legcuffs/beartrap, +/obj/item/weapon/restraints/legcuffs/beartrap, +/obj/item/weapon/storage/box/mousetraps, +/obj/item/weapon/storage/box/mousetraps, +/turf/open/floor/plasteel/floorgrime, +/area/janitor) +"bhl" = ( +/obj/machinery/door/window/westleft{ + name = "Janitoral Delivery"; + req_access_txt = "26" + }, +/turf/open/floor/plasteel/delivery, +/area/janitor) +"bhm" = ( +/obj/structure/plasticflaps, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + freq = 1400; + location = "Janitor" + }, +/turf/open/floor/plasteel/bot, +/area/janitor) +"bhn" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bho" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/glass_engineering{ + name = "Engineering Lobby"; + req_access_txt = "32" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bhp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"bhq" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/hallway/primary/starboard) +"bhr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/disposal/deliveryChute, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"bhs" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/structure/filingcabinet/filingcabinet, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plasteel/brown{ + dir = 8 + }, +/area/quartermaster/storage) +"bht" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/table, +/obj/machinery/firealarm{ + pixel_y = 27 + }, +/obj/item/stack/wrapping_paper{ + pixel_x = 3; + pixel_y = 4 + }, +/obj/item/stack/packageWrap{ + pixel_x = -1; + pixel_y = -1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bhu" = ( +/obj/structure/table, +/obj/item/weapon/storage/box, +/obj/item/weapon/storage/box, +/obj/item/weapon/storage/box, +/obj/machinery/requests_console{ + department = "Cargo Bay"; + departmentType = 2; + pixel_y = 30 + }, +/obj/item/weapon/hand_labeler, +/obj/item/weapon/hand_labeler, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bhv" = ( +/obj/structure/table, +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = 20 + }, +/obj/item/device/destTagger{ + pixel_x = 4; + pixel_y = 3 + }, +/obj/item/device/destTagger{ + pixel_x = 4; + pixel_y = 3 + }, +/obj/machinery/computer/stockexchange, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bhw" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/quartermaster/storage) +"bhx" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/weapon/pen{ + pixel_x = 4; + pixel_y = 4 + }, +/turf/open/floor/plasteel/brown{ + dir = 9 + }, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"bhy" = ( +/turf/open/floor/plasteel/brown/corner{ + dir = 1 + }, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"bhz" = ( +/turf/open/floor/wood, +/area/library) +"bhA" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/wood, +/area/library) +"bhB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/library) +"bhC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet, +/area/library) +"bhD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/library) +"bhE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/vending/coffee, +/turf/open/floor/wood, +/area/library) +"bhF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/library) +"bhG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/device/assembly/signaler{ + pixel_x = -6; + pixel_y = -3 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bhH" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/turf/open/floor/plasteel/black, +/area/hydroponics) +"bhI" = ( +/turf/open/floor/plasteel/green/side{ + dir = 9 + }, +/area/hydroponics) +"bhJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/green/side{ + dir = 1 + }, +/area/hydroponics) +"bhK" = ( +/turf/open/floor/plasteel/green/side{ + dir = 1 + }, +/area/hydroponics) +"bhL" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start{ + name = "Botanist" + }, +/turf/open/floor/plasteel/green/side{ + dir = 1 + }, +/area/hydroponics) +"bhM" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/eastleft{ + dir = 8; + name = "Hydroponics Desk"; + req_access_txt = "35" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/delivery, +/area/hydroponics) +"bhN" = ( +/obj/machinery/button/door{ + id = "kitchen"; + name = "Kitchen Shutters Control"; + pixel_x = -25; + pixel_y = 22; + req_access_txt = "28" + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bhO" = ( +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bhP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bhQ" = ( +/obj/structure/sink/kitchen{ + pixel_y = 28 + }, +/obj/machinery/camera{ + c_tag = "Kitchen" + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bhR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"bhS" = ( +/mob/living/carbon/monkey/punpun, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"bhT" = ( +/obj/structure/bookcase/random/reference, +/turf/open/floor/wood, +/area/library) +"bhU" = ( +/obj/structure/bookcase/random/fiction, +/turf/open/floor/wood, +/area/library) +"bhV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"bhW" = ( +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22; + req_access = list(24) + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bhX" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Holodeck Door" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"bhY" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/machinery/camera{ + c_tag = "Dormitory North"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"bhZ" = ( +/obj/machinery/door/airlock{ + name = "Unisex Showers"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"bia" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"bib" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"bic" = ( +/obj/machinery/light/small, +/obj/machinery/light_switch{ + pixel_y = -28 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"bid" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"bie" = ( +/turf/open/floor/plasteel/black, +/area/engine/gravity_generator) +"bif" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/engine/gravity_generator) +"big" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/engine/gravity_generator) +"bih" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE"; + pixel_x = 32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/engine/gravity_generator) +"bii" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"bij" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"bik" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/starboard) +"bil" = ( +/obj/machinery/vending/snack, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bim" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/sign/pods{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/break_room) +"bin" = ( +/obj/machinery/camera{ + c_tag = "Engineering Escape Pod"; + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/break_room) +"bio" = ( +/turf/open/floor/plating, +/obj/structure/shuttle/engine/propulsion/burst{ + dir = 4 + }, +/turf/closed/wall/shuttle{ + icon_state = "swall_f5"; + dir = 2 + }, +/area/shuttle/pod_4) +"bip" = ( +/turf/open/space, +/turf/closed/wall/shuttle{ + icon_state = "swall_f9"; + dir = 2 + }, +/area/shuttle/pod_4) +"biq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/quartermaster/storage) +"bir" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/maintenance{ + name = "Cargo Bay Warehouse Maintenance"; + req_access_txt = "31" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"bis" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "packageSort1" + }, +/obj/structure/plasticflaps{ + opacity = 0 + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"bit" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/brown{ + dir = 8 + }, +/area/quartermaster/storage) +"biu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"biv" = ( +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"biw" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Cargo Technician" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bix" = ( +/obj/structure/table, +/obj/machinery/door/window/eastleft{ + dir = 8; + name = "Delivery Office"; + req_access_txt = "50" + }, +/obj/machinery/door/firedoor, +/obj/item/weapon/folder/yellow, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"biy" = ( +/turf/open/floor/plasteel/brown{ + dir = 8 + }, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"biz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/table, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/chem_dispenser/drinks, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"biA" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/landmark{ + name = "lightsout" + }, +/turf/open/floor/carpet, +/area/library) +"biB" = ( +/obj/structure/sign/securearea{ + desc = "Under the painting a plaque reads: 'Literally no one ever liked you at any point in your existence.'"; + icon_state = "monkey_painting"; + name = "Mr. Deempisi portrait"; + pixel_y = -26 + }, +/obj/machinery/camera{ + c_tag = "Bar South"; + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/table, +/obj/item/weapon/book/manual/barman_recipes, +/obj/item/weapon/reagent_containers/glass/rag, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"biC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"biD" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/hydroponics) +"biE" = ( +/obj/item/weapon/reagent_containers/glass/bucket, +/turf/open/floor/plasteel/green/side{ + dir = 8 + }, +/area/hydroponics) +"biF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hydroponics) +"biG" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"biH" = ( +/obj/machinery/smartfridge, +/turf/open/floor/plasteel, +/area/hydroponics) +"biI" = ( +/obj/effect/landmark/start{ + name = "Cook" + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"biJ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"biK" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"biL" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"biM" = ( +/obj/item/weapon/reagent_containers/syringe, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"biN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"biO" = ( +/obj/machinery/light/small, +/obj/machinery/newscaster{ + pixel_y = -28 + }, +/obj/structure/table, +/obj/machinery/chem_dispenser/drinks/beer, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"biP" = ( +/obj/machinery/vending/boozeomat, +/turf/open/floor/plasteel/black, +/area/crew_quarters/bar{ + name = "\improper Maltese Falcon" + }) +"biQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/crew_quarters/theatre) +"biR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock{ + name = "Theatre Backstage"; + req_access_txt = "46" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/redblue, +/area/crew_quarters/theatre) +"biS" = ( +/obj/item/device/radio/intercom{ + dir = 4; + name = "Station Intercom (General)"; + pixel_x = -27 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"biT" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"biU" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/machinery/door/airlock{ + name = "Unisex Restrooms"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"biV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/closed/wall, +/area/crew_quarters/locker/locker_toilet{ + name = "\improper Restrooms" + }) +"biW" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/engine/gravity_generator) +"biX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/engine/gravity_generator) +"biY" = ( +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/gravity_generator) +"biZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/engine/gravity_generator) +"bja" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Gravity Generator Room"; + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/engine/gravity_generator) +"bjb" = ( +/obj/item/stack/rods, +/obj/machinery/space_heater, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/starboard) +"bjc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bjd" = ( +/obj/effect/decal/cleanable/oil{ + icon_state = "floor2" + }, +/obj/item/stack/cable_coil/cut{ + amount = 1; + icon_state = "coil_red1"; + item_state = "coil_red" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bje" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bjf" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bjg" = ( +/turf/closed/wall/r_wall, +/area/engine/chiefs_office) +"bjh" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/stack/sheet/cardboard, +/obj/item/stack/rods{ + amount = 50 + }, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"bji" = ( +/obj/structure/closet/crate/freezer, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"bjj" = ( +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"bjk" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Cargo Bay Storage" + }, +/obj/structure/closet/crate, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"bjl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"bjm" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/janitor) +"bjn" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/electronics/apc, +/obj/item/weapon/stock_parts/cell{ + maxcharge = 2000 + }, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"bjo" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "packageSort1" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"bjp" = ( +/turf/open/floor/plasteel/brown{ + dir = 8 + }, +/area/quartermaster/storage) +"bjq" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"bjr" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"bjs" = ( +/turf/open/floor/plasteel/brown{ + dir = 10 + }, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"bjt" = ( +/turf/open/floor/plasteel/brown/corner{ + dir = 8 + }, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"bju" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/wood, +/area/library) +"bjv" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet, +/area/library) +"bjw" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/wood, +/area/library) +"bjx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/item/stack/rods, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fsmaint2) +"bjy" = ( +/obj/machinery/seed_extractor, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23; + pixel_y = 0 + }, +/turf/open/floor/plasteel/black, +/area/hydroponics) +"bjz" = ( +/obj/effect/landmark/start{ + name = "Botanist" + }, +/turf/open/floor/plasteel/green/side{ + dir = 8 + }, +/area/hydroponics) +"bjA" = ( +/obj/machinery/hydroponics/constructable, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/hydroponics) +"bjB" = ( +/obj/machinery/hydroponics/constructable, +/turf/open/floor/plasteel/black, +/area/hydroponics) +"bjC" = ( +/obj/machinery/door/airlock/glass{ + name = "Kitchen"; + req_access_txt = "0"; + req_one_access_txt = "28;35" + }, +/turf/open/floor/plasteel/delivery, +/area/hydroponics) +"bjD" = ( +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/stack/packageWrap, +/obj/item/weapon/reagent_containers/food/condiment/enzyme, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bjE" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/donkpockets{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/reagent_containers/glass/beaker{ + pixel_x = 5 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bjF" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/condiment/saltshaker{ + pixel_x = -3 + }, +/obj/item/weapon/reagent_containers/food/condiment/peppermill{ + pixel_x = 3 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bjG" = ( +/obj/structure/table, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bjH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bjI" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/crew_quarters/kitchen) +"bjJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/crew_quarters/kitchen) +"bjK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock{ + name = "Kitchen Cold Room"; + req_access_txt = "0"; + req_one_access_txt = "25;28" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/black, +/area/crew_quarters/kitchen) +"bjL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/closet/secure_closet/freezer/cream_pie, +/turf/open/floor/plasteel/redblue, +/area/crew_quarters/theatre) +"bjM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/redblue, +/area/crew_quarters/theatre) +"bjN" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/crayons{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/reagent_containers/food/snacks/pie/cream{ + pixel_x = -3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/redblue, +/area/crew_quarters/theatre) +"bjO" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/power/apc{ + dir = 8; + name = "Aft Starboard Primary Hallway APC"; + pixel_x = -25 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bjP" = ( +/obj/machinery/status_display{ + layer = 4; + pixel_x = 32 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"bjQ" = ( +/turf/closed/wall, +/area/crew_quarters/locker) +"bjR" = ( +/obj/structure/closet/secure_closet/personal, +/obj/item/clothing/under/assistantformal, +/turf/open/floor/plasteel/neutral/side{ + dir = 9 + }, +/area/crew_quarters/locker) +"bjS" = ( +/obj/structure/closet/secure_closet/personal, +/obj/machinery/newscaster{ + pixel_y = 30 + }, +/obj/item/clothing/under/assistantformal, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/crew_quarters/locker) +"bjT" = ( +/obj/structure/closet/secure_closet/personal, +/obj/machinery/requests_console{ + department = "Locker Room"; + pixel_y = 28 + }, +/obj/item/clothing/under/assistantformal, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/crew_quarters/locker) +"bjU" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/structure/closet/athletic_mixed, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Locker Room West" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/crew_quarters/locker) +"bjV" = ( +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/closet/masks, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/crew_quarters/locker) +"bjW" = ( +/obj/machinery/vending/clothing, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/crew_quarters/locker) +"bjX" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/crew_quarters/locker) +"bjY" = ( +/obj/machinery/vending/cola, +/turf/open/floor/plasteel/black, +/area/crew_quarters/locker) +"bjZ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/engine/gravity_generator) +"bka" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/gravity_generator) +"bkb" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/gravity_generator) +"bkc" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/engine/gravity_generator) +"bkd" = ( +/obj/effect/decal/cleanable/ash, +/obj/item/device/assembly/prox_sensor, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bke" = ( +/turf/open/floor/plating, +/area/maintenance/starboard) +"bkf" = ( +/obj/effect/decal/cleanable/robot_debris, +/obj/item/weapon/cigbutt, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bkg" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/item/weapon/shard{ + icon_state = "small" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/starboard) +"bkh" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bki" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bkj" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plating, +/area/engine/chiefs_office) +"bkk" = ( +/obj/machinery/disposal/bin, +/obj/machinery/light_switch{ + pixel_y = 26 + }, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/neutral, +/area/engine/chiefs_office) +"bkl" = ( +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 1; + name = "CE Office APC"; + pixel_y = 25 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plasteel/neutral, +/area/engine/chiefs_office) +"bkm" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plasteel/neutral, +/area/engine/chiefs_office) +"bkn" = ( +/obj/machinery/keycard_auth{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/neutral, +/area/engine/chiefs_office) +"bko" = ( +/turf/open/floor/plasteel/neutral, +/area/engine/chiefs_office) +"bkp" = ( +/obj/machinery/door/airlock{ + name = "Private Restroom"; + req_access_txt = "56" + }, +/turf/open/floor/plasteel/freezer, +/area/engine/chiefs_office) +"bkq" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/engine/chiefs_office) +"bkr" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"bks" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"bkt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"bku" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"bkv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/sheet/cardboard, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"bkw" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/closet/crate, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"bkx" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"bky" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bkz" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Cargo Delivery Office"; + dir = 8 + }, +/obj/machinery/status_display{ + pixel_x = 32; + supply_display = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bkA" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/brown{ + dir = 8 + }, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"bkB" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"bkC" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"bkD" = ( +/obj/structure/bookcase/random/religion, +/turf/open/floor/wood, +/area/library) +"bkE" = ( +/obj/structure/bookcase/random/nonfiction, +/turf/open/floor/wood, +/area/library) +"bkF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bkG" = ( +/obj/machinery/biogenerator, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Hydroponics North"; + dir = 4 + }, +/obj/machinery/requests_console{ + department = "Hydroponics"; + departmentType = 2; + pixel_x = -30 + }, +/turf/open/floor/plasteel/black, +/area/hydroponics) +"bkH" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/green/side{ + dir = 8 + }, +/area/hydroponics) +"bkI" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/green/side{ + dir = 4 + }, +/area/hydroponics) +"bkJ" = ( +/obj/machinery/hydroponics/constructable, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/hydroponics) +"bkK" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bkL" = ( +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/weapon/reagent_containers/food/snacks/mint, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bkM" = ( +/obj/structure/table, +/obj/item/weapon/kitchen/rollingpin, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bkN" = ( +/obj/structure/table, +/obj/item/weapon/book/manual/chef_recipes, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bkO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bkP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/crew_quarters/kitchen) +"bkQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/kitchen) +"bkR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/chem_master/condimaster{ + name = "CondiMaster Neo"; + pixel_x = -4 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/kitchen) +"bkS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/icecream_vat, +/turf/open/floor/plasteel/black, +/area/crew_quarters/kitchen) +"bkT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/microwave{ + pixel_x = -3; + pixel_y = 6 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = 22 + }, +/obj/machinery/camera{ + c_tag = "Kitchen Cold Room" + }, +/obj/structure/table, +/turf/open/floor/plasteel/black, +/area/crew_quarters/kitchen) +"bkU" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/black, +/area/crew_quarters/kitchen) +"bkV" = ( +/obj/structure/table, +/obj/item/weapon/gun/projectile/revolver/doublebarrel, +/obj/item/weapon/storage/belt/bandolier, +/obj/item/weapon/reagent_containers/food/drinks/shaker, +/turf/open/floor/plasteel/black, +/area/crew_quarters/kitchen) +"bkW" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder, +/turf/open/floor/plasteel/black, +/area/crew_quarters/kitchen) +"bkX" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/landmark/start{ + name = "Clown" + }, +/turf/open/floor/plasteel/redblue, +/area/crew_quarters/theatre) +"bkY" = ( +/obj/structure/mirror{ + pixel_x = 28 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/redblue, +/area/crew_quarters/theatre) +"bkZ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bla" = ( +/obj/item/device/radio/intercom{ + dir = 0; + name = "Station Intercom (General)"; + pixel_x = -27 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/crew_quarters/locker) +"blb" = ( +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"blc" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bld" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"ble" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"blf" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/black, +/area/crew_quarters/locker) +"blg" = ( +/obj/effect/landmark{ + name = "lightsout" + }, +/turf/open/floor/plasteel/black, +/area/engine/gravity_generator) +"blh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/engine/gravity_generator) +"bli" = ( +/obj/machinery/gravity_generator/main/station, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/gravity_generator) +"blj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/engine/gravity_generator) +"blk" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bll" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"blm" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-y"; + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bln" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock{ + name = "Custodial Closet"; + req_access_txt = "26" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/janitor) +"blo" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"blp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/stack/rods, +/obj/item/weapon/shard{ + icon_state = "small" + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 2; + sortType = 22 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"blq" = ( +/obj/effect/decal/cleanable/oil, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"blr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"bls" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"blt" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"blu" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/neutral, +/area/engine/chiefs_office) +"blv" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral, +/area/engine/chiefs_office) +"blw" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/clipboard, +/obj/item/weapon/lighter, +/obj/item/clothing/glasses/meson{ + pixel_y = 4 + }, +/obj/item/weapon/stamp/ce, +/turf/open/floor/plasteel/neutral, +/area/engine/chiefs_office) +"blx" = ( +/obj/machinery/computer/atmos_alert, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Chief Engineer's Desk"; + departmentType = 3; + name = "Chief Engineer RC"; + pixel_x = 32 + }, +/turf/open/floor/plasteel/neutral, +/area/engine/chiefs_office) +"bly" = ( +/turf/closed/wall, +/area/engine/chiefs_office) +"blz" = ( +/obj/structure/toilet{ + dir = 1 + }, +/obj/effect/landmark/start{ + name = "Chief Engineer" + }, +/turf/open/floor/plasteel/freezer, +/area/engine/chiefs_office) +"blA" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"blB" = ( +/obj/structure/closet/crate, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"blC" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/start{ + name = "Cargo Technician" + }, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"blD" = ( +/obj/item/stack/sheet/cardboard, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"blE" = ( +/obj/structure/closet/crate/internals, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"blF" = ( +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"blG" = ( +/obj/machinery/conveyor_switch/oneway{ + id = "packageSort1" + }, +/turf/open/floor/plasteel/brown{ + dir = 8 + }, +/area/quartermaster/storage) +"blH" = ( +/obj/machinery/door/window/eastleft{ + dir = 8; + icon_state = "right"; + name = "Mail"; + req_access_txt = "50" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"blI" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/brown{ + dir = 8 + }, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"blJ" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"blK" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/carpet, +/area/library) +"blL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/item/weapon/shard{ + icon_state = "medium" + }, +/obj/structure/grille/broken, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"blM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"blN" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/library) +"blO" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/table/wood, +/obj/machinery/computer/libraryconsole, +/turf/open/floor/wood, +/area/library) +"blP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/closed/wall, +/area/library) +"blQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/oil, +/obj/item/trash/candy, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"blR" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = -28 + }, +/turf/open/floor/plasteel/black, +/area/hydroponics) +"blS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/green/side{ + dir = 8 + }, +/area/hydroponics) +"blT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/landmark/start{ + name = "Botanist" + }, +/turf/open/floor/plasteel/green/side{ + dir = 4 + }, +/area/hydroponics) +"blU" = ( +/obj/machinery/processor, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"blV" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"blW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"blX" = ( +/obj/structure/closet/crate{ + desc = "It's a storage unit for kitchen clothes and equipment."; + name = "Kitchen Crate" + }, +/obj/item/clothing/head/chefhat, +/obj/item/clothing/under/rank/chef, +/obj/item/weapon/storage/box/mousetraps{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/weapon/storage/box/mousetraps, +/obj/item/clothing/under/waiter, +/obj/item/clothing/under/waiter, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/kitchen) +"blY" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/kitchen) +"blZ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/kitchen) +"bma" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/black, +/area/crew_quarters/kitchen) +"bmb" = ( +/obj/effect/landmark/start{ + name = "Bartender" + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/kitchen) +"bmc" = ( +/obj/structure/reagent_dispensers/beerkeg, +/turf/open/floor/plasteel/black, +/area/crew_quarters/kitchen) +"bmd" = ( +/obj/machinery/disposal/bin, +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Theatre Storage"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/redblue/redside{ + dir = 1 + }, +/area/crew_quarters/theatre) +"bme" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/redblue/redside{ + dir = 1 + }, +/area/crew_quarters/theatre) +"bmf" = ( +/obj/structure/dresser, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/requests_console{ + department = "Theatre"; + name = "theatre RC"; + pixel_x = 32 + }, +/turf/open/floor/plasteel/redblue/redside{ + dir = 1 + }, +/area/crew_quarters/theatre) +"bmg" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bmh" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bmi" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bmj" = ( +/obj/structure/table, +/obj/item/clothing/mask/balaclava, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bmk" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/weapon/coin/silver, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bml" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bmm" = ( +/obj/machinery/vending/snack, +/turf/open/floor/plasteel/black, +/area/crew_quarters/locker) +"bmn" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'RADIOACTIVE AREA'"; + icon_state = "radiation"; + name = "RADIOACTIVE AREA"; + pixel_y = -32 + }, +/turf/open/floor/plasteel/black, +/area/engine/gravity_generator) +"bmo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/engine/gravity_generator) +"bmp" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/mob/living/simple_animal/mouse/gray, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bmq" = ( +/obj/item/weapon/electronics/airlock, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bmr" = ( +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/starboard) +"bms" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bmt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bmu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bmv" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 10 + }, +/area/engine/break_room) +"bmw" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/yellow/side, +/area/engine/break_room) +"bmx" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 6 + }, +/area/engine/break_room) +"bmy" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable, +/turf/open/floor/plating, +/area/engine/chiefs_office) +"bmz" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/engine/chiefs_office) +"bmA" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/engine/chiefs_office) +"bmB" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder/yellow, +/obj/item/weapon/paper/monitorkey, +/turf/open/floor/plasteel/neutral, +/area/engine/chiefs_office) +"bmC" = ( +/obj/structure/chair/office/light{ + dir = 8 + }, +/obj/effect/landmark/start{ + name = "Chief Engineer" + }, +/turf/open/floor/plasteel/neutral, +/area/engine/chiefs_office) +"bmD" = ( +/obj/machinery/computer/atmos_alert, +/obj/machinery/button/door{ + desc = "A remote control-switch for the engineering security doors."; + id = "Engineering"; + name = "Engineering Lockdown"; + pixel_x = 24; + pixel_y = -10; + req_access_txt = "10" + }, +/obj/machinery/button/door{ + desc = "A remote control-switch for secure storage."; + id = "Secure Storage"; + name = "Engineering Secure Storage"; + pixel_x = 24; + pixel_y = 0; + req_access_txt = "11" + }, +/obj/machinery/button/door{ + id = "atmos"; + name = "Atmospherics Lockdown"; + pixel_x = 24; + pixel_y = 10; + req_access_txt = "24" + }, +/turf/open/floor/plasteel/neutral, +/area/engine/chiefs_office) +"bmE" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"bmF" = ( +/obj/structure/closet/crate/medical, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/button/door{ + id = "qm_warehouse"; + name = "Warehouse Door Control"; + pixel_x = -1; + pixel_y = -24; + req_access_txt = "31" + }, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"bmG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"bmH" = ( +/obj/structure/disposaloutlet{ + dir = 1 + }, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plating, +/area/quartermaster/storage) +"bmI" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/brown{ + dir = 8 + }, +/area/quartermaster/storage) +"bmJ" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/disposaloutlet{ + dir = 1 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"bmK" = ( +/obj/machinery/newscaster{ + pixel_x = -28 + }, +/turf/open/floor/plasteel/brown{ + dir = 8 + }, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"bmL" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"bmM" = ( +/obj/structure/chair/comfy/black, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/wood, +/area/library) +"bmN" = ( +/obj/item/device/flashlight/lamp/green{ + pixel_x = 1; + pixel_y = 5 + }, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/library) +"bmO" = ( +/obj/item/device/camera_film, +/obj/item/device/camera_film, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/library) +"bmP" = ( +/obj/item/weapon/pen/red, +/obj/item/weapon/pen/blue{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/library) +"bmQ" = ( +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/library) +"bmR" = ( +/obj/item/weapon/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/library) +"bmS" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/library) +"bmT" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "Library APC"; + pixel_x = 24 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/filingcabinet, +/turf/open/floor/wood, +/area/library) +"bmU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/library) +"bmV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/robot_debris, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bmW" = ( +/obj/machinery/vending/hydroseeds{ + slogan_delay = 700 + }, +/turf/open/floor/plasteel/black, +/area/hydroponics) +"bmX" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/green/side{ + dir = 8 + }, +/area/hydroponics) +"bmY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"bmZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/green/side{ + dir = 4 + }, +/area/hydroponics) +"bna" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/table, +/obj/machinery/reagentgrinder, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bnb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/weapon/screwdriver, +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"bnc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"bnd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/robot_debris{ + icon_state = "gib3" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"bne" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"bnf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/weapon/cigbutt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"bng" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/bot, +/area/hallway/primary/central) +"bnh" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/mob/living/simple_animal/hostile/retaliate/goat{ + name = "Pete" + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/kitchen) +"bni" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/black, +/area/crew_quarters/kitchen) +"bnj" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/kitchen) +"bnk" = ( +/obj/structure/closet/secure_closet/bar{ + req_access_txt = "25" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/kitchen) +"bnl" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Theatre APC"; + pixel_x = -25 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white/side{ + dir = 8 + }, +/area/crew_quarters/theatre) +"bnm" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/landmark/start{ + name = "Mime" + }, +/turf/open/floor/plasteel/white/side{ + dir = 8 + }, +/area/crew_quarters/theatre) +"bnn" = ( +/obj/structure/mirror{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/white/side{ + dir = 8 + }, +/area/crew_quarters/theatre) +"bno" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 8 + }, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bnp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bnq" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/crew_quarters/sleep) +"bnr" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"bns" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bnt" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bnu" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bnv" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bnw" = ( +/obj/structure/table, +/obj/item/device/paicard, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bnx" = ( +/obj/structure/table, +/obj/item/device/instrument/violin, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bny" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bnz" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/black, +/area/crew_quarters/locker) +"bnA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"bnB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"bnC" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bnD" = ( +/turf/closed/wall, +/area/maintenance/starboard) +"bnE" = ( +/obj/machinery/door/airlock{ + name = "Abandoned Restrooms"; + req_access_txt = "0" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bnF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/maintenance/starboard) +"bnG" = ( +/turf/closed/wall/r_wall, +/area/engine/engineering) +"bnH" = ( +/obj/structure/sign/securearea, +/turf/closed/wall, +/area/engine/engineering) +"bnI" = ( +/obj/machinery/door/airlock/engineering{ + name = "Engine Room"; + req_access_txt = "10" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bnJ" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'RADIOACTIVE AREA'"; + icon_state = "radiation"; + name = "RADIOACTIVE AREA" + }, +/turf/closed/wall, +/area/engine/engineering) +"bnK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/suit_storage_unit/ce, +/turf/open/floor/plasteel/neutral, +/area/engine/chiefs_office) +"bnL" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral, +/area/engine/chiefs_office) +"bnM" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/weapon/pen, +/obj/item/weapon/storage/fancy/cigarettes, +/turf/open/floor/plasteel/neutral, +/area/engine/chiefs_office) +"bnN" = ( +/obj/item/device/radio/intercom{ + dir = 4; + name = "Station Intercom (General)"; + pixel_x = 27 + }, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/computer/card/minor/ce, +/turf/open/floor/plasteel/neutral, +/area/engine/chiefs_office) +"bnO" = ( +/obj/machinery/door/poddoor/shutters{ + id = "qm_warehouse"; + name = "warehouse shutters" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/storage) +"bnP" = ( +/obj/structure/disposalpipe/wrapsortjunction{ + dir = 1 + }, +/turf/closed/wall, +/area/quartermaster/storage) +"bnQ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"bnR" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_mining{ + name = "Delivery Office"; + req_access_txt = "50" + }, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/storage) +"bnS" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"bnT" = ( +/obj/item/weapon/paper, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/library) +"bnU" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/effect/landmark/start{ + name = "Librarian" + }, +/turf/open/floor/wood, +/area/library) +"bnV" = ( +/obj/machinery/libraryscanner, +/turf/open/floor/wood, +/area/library) +"bnW" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/library) +"bnX" = ( +/obj/structure/bookcase/random/adult, +/turf/open/floor/wood, +/area/library) +"bnY" = ( +/obj/machinery/vending/hydronutrients, +/turf/open/floor/plasteel/black, +/area/hydroponics) +"bnZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/green/side{ + dir = 10 + }, +/area/hydroponics) +"boa" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/weapon/reagent_containers/glass/bucket, +/turf/open/floor/plasteel/green/side{ + dir = 6 + }, +/area/hydroponics) +"bob" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/hydroponics) +"boc" = ( +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bod" = ( +/obj/structure/cable, +/obj/machinery/power/apc{ + name = "Kitchen APC"; + pixel_y = -24 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"boe" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/structure/table, +/obj/machinery/microwave{ + pixel_x = -3; + pixel_y = 6 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bof" = ( +/obj/structure/table, +/obj/machinery/microwave{ + pixel_x = -3; + pixel_y = 6 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bog" = ( +/obj/structure/closet/secure_closet/freezer/meat, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"boh" = ( +/obj/structure/closet/secure_closet/freezer/kitchen, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"boi" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"boj" = ( +/obj/machinery/door/window/southleft{ + dir = 1; + name = "Kitchen Delivery"; + req_access_txt = "0"; + req_one_access_txt = "25;28" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/kitchen) +"bok" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/kitchenspike, +/turf/open/floor/plasteel/black, +/area/crew_quarters/kitchen) +"bol" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"bom" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"bon" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/kitchen) +"boo" = ( +/obj/machinery/gibber, +/turf/open/floor/plasteel/black, +/area/crew_quarters/kitchen) +"bop" = ( +/obj/machinery/vending/autodrobe, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white/side{ + dir = 8 + }, +/area/crew_quarters/theatre) +"boq" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white/side{ + dir = 8 + }, +/area/crew_quarters/theatre) +"bor" = ( +/obj/item/weapon/reagent_containers/food/snacks/baguette, +/obj/structure/table/wood, +/turf/open/floor/plasteel/white/side{ + dir = 8 + }, +/area/crew_quarters/theatre) +"bos" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/blue/side{ + dir = 8 + }, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bot" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"bou" = ( +/obj/structure/closet/emcloset, +/obj/machinery/light_switch{ + pixel_x = -25 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/crew_quarters/locker) +"bov" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bow" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"box" = ( +/obj/structure/table, +/obj/item/toy/cards/deck, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"boy" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"boz" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/crew_quarters/locker) +"boA" = ( +/obj/machinery/washing_machine, +/obj/structure/window{ + dir = 8 + }, +/turf/open/floor/plasteel/barber, +/area/crew_quarters/locker) +"boB" = ( +/obj/machinery/washing_machine, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/barber, +/area/crew_quarters/locker) +"boC" = ( +/obj/machinery/washing_machine, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/barber, +/area/crew_quarters/locker) +"boD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/weapon/stock_parts/micro_laser, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/starboard) +"boE" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"boF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/grille/broken, +/obj/item/stack/rods, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"boG" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"boH" = ( +/obj/structure/grille, +/turf/open/floor/plasteel{ + burnt = 1; + dir = 4; + icon_state = "floorscorched1" + }, +/area/maintenance/starboard) +"boI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/robot_debris, +/obj/structure/grille, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/starboard) +"boJ" = ( +/obj/item/weapon/shard{ + icon_state = "small" + }, +/obj/machinery/door/airlock{ + name = "Unit 1" + }, +/turf/open/floor/plasteel{ + broken = 1; + dir = 4; + icon_state = "damaged2" + }, +/area/maintenance/starboard) +"boK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/remains/human{ + desc = "They look like human remains. They smell awful!" + }, +/obj/structure/toilet{ + dir = 8 + }, +/obj/structure/light_construct/small{ + dir = 1 + }, +/turf/open/floor/plasteel{ + broken = 1; + dir = 4; + icon_state = "damaged1" + }, +/area/maintenance/starboard) +"boL" = ( +/obj/structure/closet/radiation, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"boM" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"boN" = ( +/obj/machinery/camera{ + c_tag = "Engineering Access" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"boO" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plating, +/area/engine/chiefs_office) +"boP" = ( +/obj/structure/table/reinforced, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/item/stack/medical/bruise_pack{ + pixel_x = -3; + pixel_y = 2 + }, +/obj/item/weapon/reagent_containers/pill/patch/silver_sulf{ + pixel_x = -3; + pixel_y = -8 + }, +/obj/item/weapon/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/neutral, +/area/engine/chiefs_office) +"boQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/neutral, +/area/engine/chiefs_office) +"boR" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/neutral, +/area/engine/chiefs_office) +"boS" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/quartermaster/storage) +"boT" = ( +/obj/structure/closet/emcloset, +/obj/machinery/airalarm{ + dir = 2; + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"boU" = ( +/obj/structure/table, +/obj/item/weapon/hand_labeler, +/obj/item/weapon/hand_labeler, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Cargo Recieving Dock North" + }, +/obj/machinery/status_display{ + pixel_y = 32; + supply_display = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"boV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/clothing/head/soft, +/obj/item/clothing/head/soft, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = 30 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"boW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"boX" = ( +/obj/structure/closet/emcloset{ + pixel_x = -2 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/power/apc{ + dir = 4; + name = "Experimentation Lab APC"; + pixel_x = 26 + }, +/obj/structure/cable, +/turf/open/floor/plasteel/white, +/area/toxins/explab) +"boY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 2; + sortType = 17 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"boZ" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/machinery/button/door{ + id = "qm_warehouse"; + name = "Warehouse Door Control"; + pixel_x = -1; + pixel_y = 24; + req_access_txt = "31" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bpa" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bpb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bpc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/machinery/status_display{ + pixel_y = 32; + supply_display = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bpd" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 1; + sortType = 2 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bpe" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bpf" = ( +/obj/machinery/photocopier, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bpg" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/blue/side{ + dir = 4 + }, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"bph" = ( +/obj/structure/chair/comfy/black{ + dir = 1 + }, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/wood, +/area/library) +"bpi" = ( +/obj/machinery/door/window/northright{ + base_state = "left"; + dir = 8; + icon_state = "left"; + name = "Library Desk Door"; + req_access_txt = "37" + }, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/turf/open/floor/wood, +/area/library) +"bpj" = ( +/obj/machinery/light_switch{ + pixel_y = -25 + }, +/turf/open/floor/wood, +/area/library) +"bpk" = ( +/obj/machinery/newscaster{ + pixel_y = -28 + }, +/obj/machinery/camera{ + c_tag = "Library South"; + dir = 1 + }, +/obj/machinery/light/small, +/turf/open/floor/wood, +/area/library) +"bpl" = ( +/obj/machinery/status_display{ + layer = 4; + pixel_y = -32 + }, +/obj/structure/table/wood, +/obj/machinery/computer/libraryconsole/bookmanagement{ + pixel_y = 0 + }, +/turf/open/floor/wood, +/area/library) +"bpm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/item/weapon/stock_parts/manipulator, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fsmaint2) +"bpn" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/hydroponics) +"bpo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Hydroponics"; + req_access_txt = "35" + }, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"bpp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/hydroponics) +"bpq" = ( +/obj/structure/plasticflaps, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=1"; + dir = 1; + freq = 1400; + location = "Kitchen" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/crew_quarters/kitchen) +"bpr" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/maintenance{ + name = "Kitchen Cold Room Maintenance"; + req_access_txt = "0"; + req_one_access_txt = "25;28" + }, +/turf/open/floor/plating, +/area/crew_quarters/kitchen) +"bps" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/crew_quarters/kitchen) +"bpt" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/crew_quarters/kitchen) +"bpu" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock/maintenance{ + name = "Theatre Maintenance"; + req_access_txt = "46" + }, +/turf/open/floor/plating, +/area/crew_quarters/theatre) +"bpv" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/blue/side{ + dir = 8 + }, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bpw" = ( +/obj/structure/cable, +/obj/machinery/power/apc{ + dir = 4; + name = "Dormitory APC"; + pixel_x = 27 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"bpx" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/locker) +"bpy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bpz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bpA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bpB" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bpC" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bpD" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/crew_quarters/locker) +"bpE" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/library) +"bpF" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/library) +"bpG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"bpH" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"bpI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/quartermaster/storage) +"bpJ" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/junction{ + dir = 1; + icon_state = "pipe-j2" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bpK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bpL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/starboard) +"bpM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/stack/sheet/cardboard, +/turf/open/floor/plasteel{ + broken = 1; + dir = 4; + icon_state = "damaged2" + }, +/area/maintenance/starboard) +"bpN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/oil, +/obj/item/weapon/cigbutt, +/obj/structure/light_construct/small{ + dir = 4 + }, +/turf/open/floor/plasteel{ + burnt = 1; + dir = 4; + icon_state = "floorscorched2" + }, +/area/maintenance/starboard) +"bpO" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/closed/wall, +/area/maintenance/starboard) +"bpP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"bpQ" = ( +/obj/structure/closet/radiation, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bpR" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bpS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bpT" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/cartridge/engineering{ + pixel_x = 4; + pixel_y = 5 + }, +/obj/item/weapon/cartridge/engineering{ + pixel_x = -3; + pixel_y = 2 + }, +/obj/item/weapon/cartridge/engineering{ + pixel_x = 3 + }, +/obj/item/weapon/cartridge/atmos, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/neutral, +/area/engine/chiefs_office) +"bpU" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel/neutral, +/area/engine/chiefs_office) +"bpV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral, +/area/engine/chiefs_office) +"bpW" = ( +/obj/structure/bookcase/manuals/engineering, +/mob/living/simple_animal/parrot/Poly, +/turf/open/floor/plasteel/neutral, +/area/engine/chiefs_office) +"bpX" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'RADIOACTIVE AREA'"; + icon_state = "radiation"; + name = "RADIOACTIVE AREA"; + pixel_x = 0; + pixel_y = 0 + }, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"bpY" = ( +/obj/structure/sign/securearea, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"bpZ" = ( +/turf/closed/wall/mineral/titanium/overspace, +/area/shuttle/supply) +"bqa" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/supply) +"bqb" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s10"; + dir = 2 + }, +/area/shuttle/supply) +"bqc" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"bqd" = ( +/obj/machinery/conveyor_switch/oneway{ + id = "QMLoad2" + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/quartermaster/storage) +"bqe" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bqf" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bqg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bqh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bqi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bqj" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/structure/table/wood, +/obj/item/weapon/spellbook/oneuse/smoke{ + name = "mysterious old book of " + }, +/obj/item/weapon/reagent_containers/food/drinks/bottle/holywater, +/obj/item/weapon/nullrod, +/obj/item/device/soulstone/anybody/chaplain, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"bqk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/sortjunction{ + dir = 4; + sortType = 3 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bql" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bqm" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bqn" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bqo" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bqp" = ( +/obj/machinery/door/morgue{ + name = "Private Study"; + req_access_txt = "37" + }, +/turf/open/floor/engine/cult, +/area/library) +"bqq" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/maintenance{ + name = "Library Maintenance"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/library) +"bqr" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"bqs" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"bqt" = ( +/obj/structure/sign/directions/evac{ + dir = 1; + icon_state = "direction_evac"; + pixel_x = 32; + pixel_y = -40; + tag = "icon-direction_evac (NORTH)" + }, +/obj/structure/sign/directions/security{ + dir = 8; + icon_state = "direction_sec"; + pixel_x = 32; + pixel_y = -32; + tag = "icon-direction_sec (WEST)" + }, +/obj/structure/sign/directions/medical{ + dir = 8; + icon_state = "direction_med"; + pixel_x = 32; + pixel_y = -24; + tag = "icon-direction_med (WEST)" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bqu" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/quartermaster/storage) +"bqv" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/grille, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bqw" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/item/weapon/pen, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bqx" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/maintenance{ + name = "Engineering Lobby Maintenance"; + req_access_txt = "32" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/break_room) +"bqy" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bqz" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fsmaint2) +"bqA" = ( +/obj/item/weapon/reagent_containers/syringe, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bqB" = ( +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fsmaint2) +"bqC" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bqD" = ( +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bqE" = ( +/obj/item/stack/tile/plasteel{ + pixel_x = 7; + pixel_y = 7 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fsmaint2) +"bqF" = ( +/obj/item/trash/sosjerky, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 1; + name = "Central Maintenance APC"; + pixel_y = 25 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bqG" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bqH" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/item/stack/rods, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bqI" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bqJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/device/assembly/prox_sensor{ + pixel_x = -6; + pixel_y = -6 + }, +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bqK" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/item/weapon/wirecutters, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fsmaint2) +"bqL" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bqM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 4; + icon_state = "pipe-j2s"; + sortType = 19 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bqN" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bqO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"bqP" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "Engineering"; + name = "engineering security door" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/glass_command{ + name = "Chief Engineer"; + req_access_txt = "56" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/engine/chiefs_office) +"bqQ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 4; + icon_state = "pipe-j2s"; + sortType = 18 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fsmaint2) +"bqR" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bqS" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/library) +"bqT" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/engine/break_room) +"bqU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bqV" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bqW" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/crew_quarters/sleep) +"bqX" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"bqY" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"bqZ" = ( +/obj/machinery/computer/holodeck, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"bra" = ( +/obj/item/weapon/paper{ + info = "Brusies sustained in the holodeck can be healed simply by sleeping."; + name = "Holodeck Disclaimer" + }, +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"brb" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"brc" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"brd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/locker) +"bre" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/crew_quarters/locker) +"brf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/locker) +"brg" = ( +/obj/structure/closet/wardrobe/white, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/locker) +"brh" = ( +/obj/structure/closet/wardrobe/mixed, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/locker) +"bri" = ( +/obj/machinery/light, +/obj/structure/closet/wardrobe/grey, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/locker) +"brj" = ( +/obj/structure/closet/wardrobe/black, +/obj/structure/cable, +/obj/machinery/power/apc{ + name = "Locker Room APC"; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/locker) +"brk" = ( +/obj/structure/closet/lasertag/blue, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/locker) +"brl" = ( +/obj/structure/closet/lasertag/red, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 6 + }, +/area/crew_quarters/locker) +"brm" = ( +/obj/item/weapon/razor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/table, +/obj/structure/window{ + dir = 8 + }, +/turf/open/floor/plasteel/barber, +/area/crew_quarters/locker) +"brn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/barber, +/area/crew_quarters/locker) +"bro" = ( +/obj/structure/closet, +/obj/item/clothing/under/suit_jacket/female{ + pixel_x = 3; + pixel_y = 1 + }, +/obj/item/clothing/under/suit_jacket/really_black{ + pixel_x = -2 + }, +/obj/machinery/camera{ + c_tag = "Locker Room East"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/barber, +/area/crew_quarters/locker) +"brp" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/effect/decal/cleanable/robot_debris{ + icon_state = "gib6" + }, +/obj/item/weapon/reagent_containers/syringe, +/turf/open/floor/plating, +/area/maintenance/starboard) +"brq" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"brr" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/starboard) +"brs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/starboard) +"brt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/structure/mirror{ + desc = "This mirror has been shattered. It looks like the bad luck energies spilling from it are taking immediate effect on your surroundings!"; + icon_state = "mirror_broke"; + pixel_x = -28; + broken = 1 + }, +/obj/effect/decal/cleanable/vomit/old, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/starboard) +"bru" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/starboard) +"brv" = ( +/obj/effect/decal/cleanable/generic, +/obj/item/stack/rods, +/obj/item/trash/can, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel{ + broken = 1; + dir = 4; + icon_state = "damaged4" + }, +/area/maintenance/starboard) +"brw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock{ + name = "Unit 2" + }, +/turf/open/floor/plasteel{ + broken = 1; + dir = 4; + icon_state = "damaged2" + }, +/area/maintenance/starboard) +"brx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/toilet{ + dir = 8 + }, +/obj/structure/light_construct/small{ + dir = 1 + }, +/turf/open/floor/plasteel{ + broken = 1; + dir = 4; + icon_state = "damaged5" + }, +/area/maintenance/starboard) +"bry" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"brz" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/preopen{ + id = "Engineering"; + name = "engineering security door" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery, +/area/engine/engineering) +"brA" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/preopen{ + id = "Engineering"; + name = "engineering security door" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/delivery, +/area/engine/engineering) +"brB" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/preopen{ + id = "Engineering"; + name = "engineering security door" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/delivery, +/area/engine/engineering) +"brC" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/engine/chiefs_office) +"brD" = ( +/obj/structure/closet/secure_closet/engineering_chief{ + req_access_txt = "0" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/engine/chiefs_office) +"brE" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral, +/area/engine/chiefs_office) +"brF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/neutral, +/area/engine/chiefs_office) +"brG" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"brH" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"brI" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"brJ" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"brK" = ( +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"brL" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall3"; + dir = 2 + }, +/area/shuttle/supply) +"brM" = ( +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/supply) +"brN" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "QMLoad2" + }, +/obj/machinery/door/poddoor{ + id = "QMLoaddoor2"; + name = "supply dock loading door" + }, +/turf/open/floor/plating, +/area/shuttle/supply) +"brO" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "QMLoad2" + }, +/obj/machinery/door/poddoor{ + id = "QMLoaddoor2"; + name = "supply dock loading door" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"brP" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "QMLoad2" + }, +/obj/structure/plasticflaps, +/turf/open/floor/plating, +/area/quartermaster/storage) +"brQ" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "QMLoad2" + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/quartermaster/storage) +"brR" = ( +/turf/open/floor/plasteel/loadingarea{ + dir = 4 + }, +/area/quartermaster/storage) +"brS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"brT" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"brU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/landmark/start{ + name = "Cargo Technician" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"brV" = ( +/turf/open/floor/plasteel/delivery, +/area/quartermaster/storage) +"brW" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + freq = 1400; + location = "QM #1" + }, +/mob/living/simple_animal/bot/mulebot{ + beacon_freq = 1400; + home_destination = "QM #1"; + suffix = "#1" + }, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"brX" = ( +/obj/machinery/autolathe, +/obj/machinery/light_switch{ + pixel_x = -27 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"brY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"brZ" = ( +/obj/structure/table, +/obj/item/weapon/stamp{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/stamp/denied{ + pixel_x = 4; + pixel_y = -2 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bsa" = ( +/obj/machinery/status_display{ + pixel_y = 0; + supply_display = 1 + }, +/turf/closed/wall, +/area/quartermaster/storage) +"bsb" = ( +/obj/structure/window/fulltile, +/obj/structure/grille, +/turf/open/floor/plating, +/area/storage/art) +"bsc" = ( +/obj/machinery/light_switch{ + pixel_y = 28 + }, +/obj/machinery/photocopier, +/turf/open/floor/plasteel, +/area/storage/art) +"bsd" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/table, +/obj/item/weapon/airlock_painter, +/turf/open/floor/plasteel, +/area/storage/art) +"bse" = ( +/obj/structure/table, +/obj/item/device/camera_film, +/turf/open/floor/plasteel, +/area/storage/art) +"bsf" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/engine/cult, +/area/library) +"bsg" = ( +/obj/structure/bookcase{ + name = "Forbidden Knowledge" + }, +/turf/open/floor/engine/cult, +/area/library) +"bsh" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/generic, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fsmaint2) +"bsi" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bsj" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bsk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/decal/cleanable/oil{ + icon_state = "floor6" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bsl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bsm" = ( +/obj/structure/closet/crate/hydroponics, +/obj/item/weapon/shovel/spade, +/obj/item/weapon/wrench, +/obj/item/weapon/screwdriver, +/obj/item/weapon/reagent_containers/glass/bucket, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"bsn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/chem_master/condimaster{ + name = "BrewMaster 4000"; + pixel_x = -4 + }, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"bso" = ( +/obj/item/weapon/reagent_containers/spray/plantbgone{ + pixel_x = 12; + pixel_y = 6 + }, +/obj/item/weapon/reagent_containers/spray/plantbgone{ + pixel_x = 2; + pixel_y = 4 + }, +/obj/item/weapon/reagent_containers/spray/plantbgone{ + pixel_x = 6 + }, +/obj/structure/table/glass, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"bsp" = ( +/obj/item/weapon/book/manual/hydroponics_pod_people, +/obj/item/weapon/paper/hydroponics, +/obj/structure/table/glass, +/obj/machinery/power/apc{ + name = "Hydroponics APC"; + pixel_y = -24 + }, +/obj/machinery/camera{ + c_tag = "Hydroponics South"; + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"bsq" = ( +/obj/structure/closet/secure_closet/hydroponics, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/item/weapon/storage/backpack/satchel/hyd, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"bsr" = ( +/obj/machinery/light/small, +/obj/structure/closet/secure_closet/hydroponics, +/obj/item/weapon/storage/backpack/satchel/hyd, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"bss" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/closet/secure_closet/hydroponics, +/obj/item/weapon/storage/backpack/satchel/hyd, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"bst" = ( +/obj/machinery/door/window/eastright{ + dir = 1; + name = "Hydroponics Delivery"; + req_access_txt = "35" + }, +/turf/open/floor/plasteel/delivery, +/area/hydroponics) +"bsu" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bsv" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bsw" = ( +/obj/structure/grille/broken, +/obj/effect/decal/cleanable/oil{ + icon_state = "floor6" + }, +/obj/item/stack/rods, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bsx" = ( +/obj/item/stack/cable_coil/cut{ + amount = 2; + icon_state = "coil_red2" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bsy" = ( +/turf/closed/wall, +/area/maintenance/fsmaint2) +"bsz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/maintenance/fsmaint2) +"bsA" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/tinted/fulltile, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bsB" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/tinted/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bsC" = ( +/turf/closed/wall, +/area/storage/tools) +"bsD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/storage/tools) +"bsE" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/blue/side{ + dir = 8 + }, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bsF" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"bsG" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"bsH" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"bsI" = ( +/turf/closed/wall, +/area/crew_quarters/sleep) +"bsJ" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bsK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/stack/sheet/cardboard, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/starboard) +"bsL" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/structure/mirror{ + pixel_x = -28 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/shard, +/turf/open/floor/plasteel{ + broken = 1; + dir = 4; + icon_state = "damaged2" + }, +/area/maintenance/starboard) +"bsM" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/ash, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/starboard) +"bsN" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/item/stack/tile/plasteel{ + pixel_x = -1; + pixel_y = 16 + }, +/obj/item/weapon/newspaper, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/starboard) +"bsO" = ( +/obj/machinery/door/airlock/engineering{ + name = "Engine Room"; + req_access_txt = "10" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bsP" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'RADIOACTIVE AREA'"; + icon_state = "radiation"; + name = "RADIOACTIVE AREA" + }, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"bsQ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plating, +/area/engine/chiefs_office) +"bsR" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/door/airlock/glass_command{ + name = "Chief Engineer"; + req_access_txt = "56" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/neutral, +/area/engine/chiefs_office) +"bsS" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/engine/chiefs_office) +"bsT" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/engine/engineering) +"bsU" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bsV" = ( +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bsW" = ( +/obj/structure/chair/comfy/beige{ + dir = 1; + icon_state = "comfychair" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"bsX" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bsY" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/grille, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bsZ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bta" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Supply Shuttle Airlock"; + req_access_txt = "31" + }, +/turf/open/floor/plating, +/area/shuttle/supply) +"btb" = ( +/obj/machinery/door/airlock/external{ + name = "Supply Dock Airlock"; + req_access_txt = "31" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"btc" = ( +/turf/open/floor/plating, +/area/quartermaster/storage) +"btd" = ( +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/quartermaster/storage) +"bte" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"btf" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"btg" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + freq = 1400; + location = "QM #2" + }, +/mob/living/simple_animal/bot/mulebot{ + home_destination = "QM #2"; + suffix = "#2" + }, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"bth" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass{ + amount = 50; + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/machinery/requests_console{ + department = "Cargo Bay"; + departmentType = 2; + pixel_x = -30 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bti" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/weapon/clipboard, +/obj/item/weapon/pen/red, +/obj/machinery/computer/stockexchange, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"btj" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/crew_quarters/kitchen) +"btk" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"btl" = ( +/obj/structure/window/fulltile, +/obj/structure/grille, +/turf/open/floor/plating, +/area/quartermaster/storage) +"btm" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"btn" = ( +/obj/machinery/door/airlock/glass{ + name = "Art Storage" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/storage/art) +"bto" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1 + }, +/turf/open/floor/plasteel, +/area/storage/art) +"btp" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel, +/area/storage/art) +"btq" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "Art Storage"; + pixel_x = 27 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/table, +/obj/item/device/camera, +/turf/open/floor/plasteel, +/area/storage/art) +"btr" = ( +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/obj/effect/landmark/start{ + name = "Librarian" + }, +/turf/open/floor/engine/cult, +/area/library) +"bts" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/device/camera, +/obj/item/device/radio/intercom{ + pixel_x = 27 + }, +/obj/structure/table/wood, +/turf/open/floor/engine/cult, +/area/library) +"btt" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/closed/wall, +/area/library) +"btu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/robot_debris{ + icon_state = "gib6" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"btv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"btw" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"btx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bty" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/item/weapon/shard, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fsmaint2) +"btz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/hydroponics) +"btA" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/closed/wall, +/area/hydroponics) +"btB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/hydroponics) +"btC" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/closed/wall, +/area/hydroponics) +"btD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/plasticflaps, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=1"; + dir = 1; + freq = 1400; + location = "Hydroponics" + }, +/turf/open/floor/plasteel/bot, +/area/hydroponics) +"btE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/trash/can, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"btF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"btG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"btH" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"btI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"btJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/item/stack/sheet/cardboard, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"btK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/fsmaint2) +"btL" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/effect/decal/cleanable/generic, +/obj/structure/table, +/obj/item/clothing/mask/gas, +/obj/item/clothing/glasses/sunglasses, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"btM" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/effect/decal/cleanable/robot_debris{ + icon_state = "gib6" + }, +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"btN" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/mob/living/simple_animal/mouse/gray, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"btO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fsmaint2) +"btP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/storage/tools) +"btQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/table, +/obj/item/weapon/electronics/apc, +/obj/item/weapon/electronics/airlock, +/turf/open/floor/plasteel, +/area/storage/tools) +"btR" = ( +/obj/machinery/firealarm{ + pixel_y = 27 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/storage/tools) +"btS" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Auxiliary Tool Storage APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, +/area/storage/tools) +"btT" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Auxiliary Tool Storage" + }, +/turf/open/floor/plasteel/bot, +/area/storage/tools) +"btU" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/light_switch{ + pixel_y = 28 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/bot, +/area/storage/tools) +"btV" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/storage/tools) +"btW" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/blue/side{ + dir = 8 + }, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"btX" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"btY" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 4 + }, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"btZ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/crew_quarters/sleep) +"bua" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/crew_quarters/sleep) +"bub" = ( +/obj/machinery/vending/cola, +/turf/open/floor/plasteel/neutral/side{ + tag = "icon-neutral (SOUTHWEST)"; + dir = 10 + }, +/area/crew_quarters/sleep) +"buc" = ( +/obj/machinery/vending/coffee, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/sleep) +"bud" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/item/clothing/under/assistantformal, +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"bue" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"buf" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/red, +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"bug" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/item/clothing/under/suit_jacket/navy, +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"buh" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"bui" = ( +/obj/structure/closet/wardrobe/pjs, +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/sleep) +"buj" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/starboard) +"buk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bul" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/structure/mirror{ + desc = "This mirror has been shattered. It looks like the bad luck energies spilling from it are taking immediate effect on your surroundings!"; + icon_state = "mirror_broke"; + pixel_x = -28; + broken = 1 + }, +/obj/item/weapon/cigbutt, +/turf/open/floor/plasteel{ + broken = 1; + dir = 4; + icon_state = "damaged3" + }, +/area/maintenance/starboard) +"bum" = ( +/obj/item/weapon/crowbar, +/obj/effect/decal/cleanable/robot_debris{ + icon_state = "gib6" + }, +/turf/open/floor/plasteel{ + broken = 1; + dir = 4; + icon_state = "damaged1" + }, +/area/maintenance/starboard) +"bun" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/shard{ + icon_state = "medium" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"buo" = ( +/obj/machinery/door/airlock{ + name = "Unit 3" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/starboard) +"bup" = ( +/obj/structure/toilet{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/decal/cleanable/generic, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/starboard) +"buq" = ( +/obj/structure/sign/directions/medical{ + dir = 8; + icon_state = "direction_med"; + pixel_x = -32; + pixel_y = -32; + tag = "icon-direction_med (WEST)" + }, +/obj/structure/sign/directions/security{ + dir = 8; + icon_state = "direction_sec"; + pixel_x = -32; + pixel_y = -24; + tag = "icon-direction_sec (WEST)" + }, +/obj/structure/sign/directions/evac{ + dir = 1; + icon_state = "direction_evac"; + pixel_x = -32; + pixel_y = -40; + tag = "icon-direction_evac (NORTH)" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bur" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) +"bus" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) +"but" = ( +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/obj/machinery/camera{ + c_tag = "Engineering North" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) +"buu" = ( +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/engine/engineering) +"buv" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"buw" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bux" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/external{ + name = "Engineering External Access"; + req_access = null; + req_access_txt = "10;13" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"buy" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_y = -32 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"buz" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"buA" = ( +/turf/open/floor/plating/airless/warnplate{ + dir = 1 + }, +/area/engine/engineering) +"buB" = ( +/obj/item/weapon/wirecutters, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"buC" = ( +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/quartermaster/storage) +"buD" = ( +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"buE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"buF" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"buG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/landmark{ + name = "lightsout" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"buH" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + freq = 1400; + location = "QM #3" + }, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"buI" = ( +/obj/structure/table, +/obj/item/device/multitool, +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/obj/machinery/camera{ + c_tag = "Cargo Office"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"buJ" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"buK" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Cargo Technician" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"buL" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/westleft{ + name = "Cargo Desk"; + req_access_txt = "50" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"buM" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"buN" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"buO" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"buP" = ( +/obj/structure/window/fulltile, +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/storage/art) +"buQ" = ( +/obj/structure/table, +/obj/item/weapon/hand_labeler, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/storage/art) +"buR" = ( +/obj/structure/table, +/obj/item/weapon/storage/crayons, +/obj/item/weapon/storage/crayons, +/obj/machinery/camera{ + c_tag = "Art Storage"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/storage/art) +"buS" = ( +/obj/structure/table, +/obj/item/stack/cable_coil/random, +/obj/item/stack/cable_coil/random, +/obj/item/stack/cable_coil/random, +/obj/item/stack/cable_coil/random, +/turf/open/floor/plasteel, +/area/storage/art) +"buT" = ( +/obj/structure/destructible/cult/tome, +/obj/item/weapon/book/codex_gigas, +/turf/open/floor/engine/cult, +/area/library) +"buU" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/weapon/pen/invisible, +/obj/structure/table/wood, +/turf/open/floor/engine/cult, +/area/library) +"buV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/library) +"buW" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"buX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 4; + icon_state = "pipe-j2s"; + sortType = 16 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"buY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/library) +"buZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bva" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bvb" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bvc" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bvd" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock{ + name = "Kitchen Cold Room"; + req_access_txt = "0"; + req_one_access_txt = "25;28" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/kitchen) +"bve" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/kitchen) +"bvf" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/kitchen) +"bvg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/closet/gmcloset, +/turf/open/floor/plasteel/black, +/area/crew_quarters/kitchen) +"bvh" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bvi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 4; + icon_state = "pipe-j2s"; + sortType = 21 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fsmaint2) +"bvj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/closet/wardrobe/cargotech, +/obj/machinery/firealarm{ + pixel_y = 27 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bvk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/closet/wardrobe/cargotech, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Cargo Bay APC"; + pixel_y = 25 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bvl" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/barber, +/area/crew_quarters/locker) +"bvm" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/barber, +/area/crew_quarters/locker) +"bvn" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/crew_quarters/locker) +"bvo" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/barber, +/area/crew_quarters/locker) +"bvp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bvq" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 4; + sortType = 15 + }, +/obj/item/weapon/cigbutt, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bvr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 4; + icon_state = "pipe-j2s"; + sortType = 20 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fsmaint2) +"bvs" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bvt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/storage/tools) +"bvu" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/structure/table, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/turf/open/floor/plasteel, +/area/storage/tools) +"bvv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/storage/tools) +"bvw" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/storage/tools) +"bvx" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/storage/tools) +"bvy" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/glass{ + name = "Auxiliary Tool Storage"; + req_access_txt = "12" + }, +/turf/open/floor/plasteel, +/area/storage/tools) +"bvz" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/blue/side{ + dir = 8 + }, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bvA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bvB" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bvC" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Dormitory" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/crew_quarters/sleep) +"bvD" = ( +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/crew_quarters/sleep) +"bvE" = ( +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/crew_quarters/sleep) +"bvF" = ( +/turf/open/floor/plasteel/floorgrime, +/area/crew_quarters/sleep) +"bvG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/dresser, +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"bvH" = ( +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"bvI" = ( +/obj/machinery/button/door{ + id = "Dorm4"; + name = "Dorm Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 0; + pixel_y = -25; + req_access_txt = "0"; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"bvJ" = ( +/obj/machinery/button/door{ + id = "Dorm5"; + name = "Dorm Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 0; + pixel_y = -25; + req_access_txt = "0"; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/sleep) +"bvK" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/oil{ + icon_state = "floor2" + }, +/obj/item/weapon/shard, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bvL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bvM" = ( +/obj/structure/sign/directions/evac{ + dir = 1; + icon_state = "direction_evac"; + pixel_x = -32; + pixel_y = 24; + tag = "icon-direction_evac (NORTH)" + }, +/obj/structure/sign/directions/science{ + dir = 4; + icon_state = "direction_sci"; + pixel_x = -32; + pixel_y = 32 + }, +/obj/structure/sign/directions/engineering{ + dir = 4; + icon_state = "direction_eng"; + pixel_x = -32; + pixel_y = 40; + tag = "icon-direction_eng (EAST)" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bvN" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bvO" = ( +/turf/open/floor/plasteel, +/area/engine/engineering) +"bvP" = ( +/obj/structure/table, +/obj/item/device/flashlight{ + pixel_y = 5 + }, +/obj/item/clothing/ears/earmuffs{ + pixel_x = -5; + pixel_y = 6 + }, +/obj/item/weapon/airlock_painter, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bvQ" = ( +/obj/structure/sign/directions/evac{ + pixel_x = 32; + pixel_y = -40 + }, +/obj/structure/sign/directions/security{ + pixel_x = 32; + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"bvR" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'RADIOACTIVE AREA'"; + icon_state = "radiation"; + name = "RADIOACTIVE AREA"; + pixel_x = 32 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/engineering) +"bvS" = ( +/obj/machinery/camera/emp_proof{ + c_tag = "Singularity North West"; + dir = 4; + network = list("Singularity") + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bvT" = ( +/obj/machinery/camera/emp_proof{ + c_tag = "Singularity North East"; + dir = 8; + network = list("Singularity") + }, +/turf/open/space, +/area/space) +"bvU" = ( +/obj/machinery/button/door{ + dir = 2; + id = "QMLoaddoor2"; + name = "Loading Doors"; + pixel_x = 24; + pixel_y = 8 + }, +/obj/machinery/button/door{ + id = "QMLoaddoor"; + name = "Loading Doors"; + pixel_x = 24; + pixel_y = -8 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/supply) +"bvV" = ( +/obj/machinery/button/door{ + dir = 2; + id = "QMLoaddoor2"; + layer = 4; + name = "Loading Doors"; + pixel_x = -24; + pixel_y = 8 + }, +/obj/machinery/button/door{ + id = "QMLoaddoor"; + layer = 4; + name = "Loading Doors"; + pixel_x = -24; + pixel_y = -8 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/quartermaster/storage) +"bvW" = ( +/obj/effect/landmark/start{ + name = "Cargo Technician" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bvX" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bvY" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bvZ" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + freq = 1400; + location = "QM #4" + }, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"bwa" = ( +/obj/structure/table, +/obj/item/weapon/folder/yellow, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/item/stack/wrapping_paper{ + pixel_x = 3; + pixel_y = 4 + }, +/obj/item/stack/packageWrap{ + pixel_x = -1; + pixel_y = -1 + }, +/obj/machinery/computer/stockexchange, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bwb" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bwc" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/hydroponics) +"bwd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bwe" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bwf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"bwg" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"bwh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/storage/art) +"bwi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/storage/art) +"bwj" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/closed/wall, +/area/storage/art) +"bwk" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/library) +"bwl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/item/device/t_scanner, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bwm" = ( +/turf/closed/wall/r_wall, +/area/security/brig) +"bwn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/security/brig) +"bwo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/security/brig) +"bwp" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bwq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/decal/cleanable/oil, +/obj/effect/decal/cleanable/robot_debris{ + icon_state = "gib7" + }, +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bwr" = ( +/obj/structure/grille/broken, +/obj/effect/decal/cleanable/ash, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bws" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/grille, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fsmaint2) +"bwt" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bwu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bwv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/generic, +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bww" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/grille, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fsmaint2) +"bwx" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bwy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bwz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fsmaint2) +"bwA" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bwB" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bwC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/table, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/turf/open/floor/plasteel, +/area/storage/tools) +"bwD" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/storage/tools) +"bwE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plasteel, +/area/storage/tools) +"bwF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/storage/tools) +"bwG" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel, +/area/storage/tools) +"bwH" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/storage/tools) +"bwI" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/blue/side{ + dir = 8 + }, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bwJ" = ( +/obj/machinery/light, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"bwK" = ( +/obj/machinery/camera{ + c_tag = "Dormitory West"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"bwL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/crew_quarters/sleep) +"bwM" = ( +/obj/machinery/door/airlock{ + id_tag = "Dorm4"; + name = "Dorm 4" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"bwN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/crew_quarters/sleep) +"bwO" = ( +/obj/machinery/door/airlock{ + id_tag = "Dorm5"; + name = "Dorm 5" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"bwP" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/crew_quarters/sleep) +"bwQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/starboard) +"bwR" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bwS" = ( +/obj/machinery/computer/monitor, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/engine/engineering) +"bwT" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/sign/nosmoking_2{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bwU" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bwV" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/suit_storage_unit/engine, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bwW" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"bwX" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/closet/secure_closet/engineering_personal, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/engine/engineering) +"bwY" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bwZ" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bxa" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/weapon/grenade/chem_grenade/metalfoam, +/obj/item/weapon/grenade/chem_grenade/metalfoam, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bxb" = ( +/obj/structure/table, +/obj/item/stack/sheet/plasteel{ + amount = 10 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bxc" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bxd" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/engineering) +"bxe" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Singularity"; + name = "radiation shutters" + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/engine/engineering) +"bxf" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/rad_collector{ + anchored = 1 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"bxg" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/engine/engineering) +"bxh" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plating/airless, +/area/space) +"bxi" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating/airless, +/area/space) +"bxj" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating/airless, +/area/space) +"bxk" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating/airless, +/area/space) +"bxl" = ( +/obj/structure/closet/crate, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"bxm" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"bxn" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + freq = 1400; + location = "QM #5" + }, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"bxo" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 6; + pixel_y = -5 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bxp" = ( +/obj/structure/filingcabinet/filingcabinet, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bxq" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bxr" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bxs" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bxt" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"bxu" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"bxv" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bxw" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bxx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bxy" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = 30 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/effect/landmark/start{ + name = "Botanist" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"bxz" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"bxA" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"bxB" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"bxC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bxD" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/item/stack/rods, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bxE" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/security/brig) +"bxF" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/brig) +"bxG" = ( +/obj/structure/closet/secure_closet/brig{ + id = "Cell 1"; + name = "Cell 1 Locker" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/security/brig) +"bxH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/security/brig) +"bxI" = ( +/obj/structure/closet/secure_closet/brig{ + id = "Cell 2"; + name = "Cell 2 Locker" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/security/brig) +"bxJ" = ( +/turf/closed/wall, +/area/security/brig) +"bxK" = ( +/obj/structure/closet/secure_closet/brig{ + id = "Cell 3"; + name = "Cell 3 Locker" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/security/brig) +"bxL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bxM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bxN" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bxO" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/tinted/fulltile, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bxP" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/tinted/fulltile, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bxQ" = ( +/obj/structure/closet, +/obj/item/clothing/gloves/color/rainbow, +/obj/item/clothing/under/color/rainbow, +/obj/item/clothing/head/soft/rainbow, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bxR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/table, +/obj/item/weapon/storage/toolbox/emergency, +/turf/open/floor/plasteel, +/area/storage/tools) +"bxS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/storage/tools) +"bxT" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/device/multitool, +/turf/open/floor/plasteel, +/area/storage/tools) +"bxU" = ( +/obj/structure/closet/toolcloset, +/turf/open/floor/plasteel, +/area/storage/tools) +"bxV" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/blue/side{ + dir = 8 + }, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bxW" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bxX" = ( +/obj/machinery/door/firedoor, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bxY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/sleep) +"bxZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/closed/wall, +/area/crew_quarters/sleep) +"bya" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/crew_quarters/sleep) +"byb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/requests_console{ + department = "Crew Quarters"; + pixel_y = 30 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/crew_quarters/sleep) +"byc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/holopad, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/crew_quarters/sleep) +"byd" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plasteel/floorgrime, +/area/crew_quarters/sleep) +"bye" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/crew_quarters/sleep) +"byf" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/crew_quarters/sleep) +"byg" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/crew_quarters/sleep) +"byh" = ( +/obj/machinery/camera{ + c_tag = "Dormitory East" + }, +/turf/open/floor/plasteel/floorgrime, +/area/crew_quarters/sleep) +"byi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"byj" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/crew_quarters/sleep) +"byk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/device/assembly/signaler, +/turf/open/floor/plating, +/area/maintenance/starboard) +"byl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/rods, +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bym" = ( +/obj/machinery/computer/station_alert, +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = -27 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/engine/engineering) +"byn" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"byo" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"byp" = ( +/obj/machinery/suit_storage_unit/engine, +/turf/open/floor/plasteel, +/area/engine/engineering) +"byq" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/engine/engineering) +"byr" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/engine/engineering) +"bys" = ( +/obj/effect/landmark/start{ + name = "Station Engineer" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"byt" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"byu" = ( +/obj/machinery/power/grounding_rod, +/turf/open/floor/plating/airless, +/area/space) +"byv" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plating/airless, +/area/space) +"byw" = ( +/obj/machinery/power/tesla_coil, +/obj/structure/cable, +/turf/open/floor/plating/airless, +/area/space) +"byx" = ( +/turf/closed/wall, +/area/engine/engineering) +"byy" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/bot, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"byz" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"byA" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"byB" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/conveyor_switch/oneway{ + convdir = -1; + id = "QMLoad" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"byC" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"byD" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"byE" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"byF" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_mining{ + name = "Cargo Office"; + req_access_txt = "50" + }, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/storage) +"byG" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"byH" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/camera{ + c_tag = "Aft Port Primary Hallway Central"; + dir = 8 + }, +/turf/open/floor/plasteel/red/corner, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"byI" = ( +/turf/closed/wall, +/area/security/detectives_office) +"byJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/security/detectives_office) +"byK" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/maintenance{ + name = "Detective Maintenance"; + req_access_txt = "4" + }, +/turf/open/floor/plating, +/area/security/detectives_office) +"byL" = ( +/turf/closed/wall/r_wall, +/area/security/detectives_office) +"byM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/maintenance{ + name = "Security Maintenance"; + req_access_txt = "63" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=2"; + freq = 1400; + location = "Security" + }, +/turf/open/floor/plating, +/area/security/brig) +"byN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/closed/wall/r_wall, +/area/security/brig) +"byO" = ( +/obj/machinery/flasher{ + id = "Cell 1"; + pixel_x = -28 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/brig) +"byP" = ( +/turf/open/floor/plasteel/floorgrime, +/area/security/brig) +"byQ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/brig) +"byR" = ( +/obj/machinery/flasher{ + id = "Cell 2"; + pixel_x = -28 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/brig) +"byS" = ( +/obj/machinery/flasher{ + id = "Cell 3"; + pixel_x = -28 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/brig) +"byT" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/mirror{ + pixel_x = -28 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"byU" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/toilet, +/obj/structure/window/reinforced/tinted{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"byV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"byW" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/effect/decal/cleanable/robot_debris{ + icon_state = "gib3" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"byX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fsmaint2) +"byY" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/heads) +"byZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/crew_quarters/heads) +"bza" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/crew_quarters/heads) +"bzb" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 8 + }, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bzc" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/hydrofloor, +/area/hydroponics) +"bzd" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/maintenance{ + name = "Hydroponics Maintenance"; + req_access_txt = "35" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/hydroponics) +"bze" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/item/weapon/shard{ + icon_state = "small" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fsmaint2) +"bzf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bzg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/robot_debris{ + icon_state = "gib6" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fsmaint2) +"bzh" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bzi" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bzj" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bzk" = ( +/turf/open/floor/plasteel/neutral/corner, +/area/crew_quarters/sleep) +"bzl" = ( +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/sleep) +"bzm" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/crew_quarters/sleep) +"bzn" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"bzo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/neutral/side, +/area/crew_quarters/sleep) +"bzp" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -29 + }, +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/crew_quarters/sleep) +"bzq" = ( +/obj/machinery/light/small, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/crew_quarters/sleep) +"bzr" = ( +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/crew_quarters/sleep) +"bzs" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/plasteel/floorgrime, +/area/crew_quarters/sleep) +"bzt" = ( +/obj/structure/table, +/obj/item/weapon/lipstick/random{ + pixel_x = 3 + }, +/obj/item/weapon/lipstick/random{ + pixel_x = -2 + }, +/obj/item/weapon/lipstick{ + pixel_x = -7 + }, +/turf/open/floor/plasteel/floorgrime, +/area/crew_quarters/sleep) +"bzu" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bzv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/starboard) +"bzw" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE"; + pixel_x = -32 + }, +/obj/machinery/camera{ + c_tag = "Engineering Power Storage"; + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/engine/engineering) +"bzx" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 1 + }, +/area/engine/engineering) +"bzy" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bzz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/tank_dispenser, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bzA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/engine/engineering) +"bzB" = ( +/obj/machinery/requests_console{ + department = "Engineering"; + departmentType = 4; + name = "Engineering RC"; + pixel_x = -32 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/table, +/obj/item/weapon/storage/box/lights/mixed, +/obj/item/weapon/crowbar, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/engine/engineering) +"bzC" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bzD" = ( +/turf/open/floor/plasteel/warning/corner, +/area/engine/engineering) +"bzE" = ( +/obj/structure/closet/radiation, +/turf/open/floor/plasteel/warning, +/area/engine/engineering) +"bzF" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/clothing/gloves/color/yellow, +/obj/item/weapon/storage/belt/utility, +/turf/open/floor/plasteel/warning, +/area/engine/engineering) +"bzG" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning, +/area/engine/engineering) +"bzH" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/button/door{ + id = "Singularity"; + name = "Shutters Control"; + pixel_x = 0; + pixel_y = -25; + req_access_txt = "11" + }, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/engine/engineering) +"bzI" = ( +/obj/machinery/field/generator{ + anchored = 1; + state = 2 + }, +/turf/open/floor/plating/airless, +/area/space) +"bzJ" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "QMLoad" + }, +/obj/machinery/door/poddoor{ + id = "QMLoaddoor"; + name = "supply dock loading door" + }, +/turf/open/floor/plating, +/area/shuttle/supply) +"bzK" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "QMLoad" + }, +/obj/machinery/door/poddoor{ + id = "QMLoaddoor"; + name = "supply dock loading door" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"bzL" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "QMLoad" + }, +/obj/structure/plasticflaps, +/turf/open/floor/plating, +/area/quartermaster/storage) +"bzM" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "QMLoad" + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/quartermaster/storage) +"bzN" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "QMLoad" + }, +/obj/machinery/light, +/obj/machinery/camera{ + c_tag = "Cargo Recieving Dock South"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/status_display{ + pixel_y = -32; + supply_display = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/quartermaster/storage) +"bzO" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "QMLoad" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/quartermaster/storage) +"bzP" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "QMLoad" + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -35 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/quartermaster/storage) +"bzQ" = ( +/turf/open/floor/plasteel/loadingarea{ + dir = 8 + }, +/area/quartermaster/storage) +"bzR" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bzS" = ( +/turf/open/floor/plasteel/brown/corner, +/area/quartermaster/storage) +"bzT" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/brown, +/area/quartermaster/storage) +"bzU" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/brown/corner{ + dir = 8 + }, +/area/quartermaster/storage) +"bzV" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bzW" = ( +/obj/structure/cable, +/obj/machinery/power/apc{ + dir = 4; + name = "Aft Port Primary Hallway APC"; + pixel_x = 27 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"bzX" = ( +/obj/item/device/flashlight/lamp/green{ + pixel_x = 1; + pixel_y = 5 + }, +/obj/structure/table/wood, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"bzY" = ( +/obj/machinery/computer/security/wooden_tv, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"bzZ" = ( +/obj/machinery/computer/secure_data, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"bAa" = ( +/obj/machinery/computer/med_data, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"bAb" = ( +/obj/structure/cable, +/obj/machinery/power/apc{ + dir = 4; + name = "Detective APC"; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"bAc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/brig) +"bAd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/brig) +"bAe" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/brig) +"bAf" = ( +/obj/machinery/door/window/brigdoor{ + id = "Cell 1"; + name = "Cell 1"; + req_access_txt = "2" + }, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Gate"; + name = "brig shutters" + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) +"bAg" = ( +/obj/machinery/door/window/brigdoor{ + id = "Cell 2"; + name = "Cell 2"; + req_access_txt = "2" + }, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Gate"; + name = "brig shutters" + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) +"bAh" = ( +/obj/machinery/door/window/brigdoor{ + id = "Cell 3"; + name = "Cell 3"; + req_access_txt = "2" + }, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Gate"; + name = "brig shutters" + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) +"bAi" = ( +/obj/structure/dresser, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/carpet, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bAj" = ( +/obj/structure/closet/secure_closet/captains, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/carpet, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bAk" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/obj/machinery/camera{ + c_tag = "Captain's Quarters" + }, +/turf/open/floor/carpet, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bAl" = ( +/obj/machinery/door/airlock{ + name = "Private Restroom"; + req_access_txt = "20" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bAm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bAn" = ( +/obj/effect/landmark/start{ + name = "Captain" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/obj/machinery/door/window{ + base_state = "right"; + dir = 4; + icon_state = "right"; + name = "Private Shower"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bAo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/shower{ + pixel_y = 12 + }, +/obj/item/weapon/soap/deluxe, +/obj/item/weapon/bikehorn/rubberducky, +/obj/structure/curtain, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bAp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bAq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bAr" = ( +/obj/effect/decal/cleanable/oil{ + icon_state = "floor2" + }, +/obj/item/trash/semki, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bAs" = ( +/obj/structure/table, +/obj/item/weapon/folder/blue, +/obj/item/weapon/stamp/hop, +/obj/item/weapon/storage/secure/safe{ + pixel_x = -24 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/heads) +"bAt" = ( +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Head of Personnel's Desk"; + departmentType = 5; + name = "Head of Personnel RC"; + pixel_y = 30 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/crew_quarters/heads) +"bAu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching Prison Wing holding areas."; + name = "Prison Monitor"; + network = list("Prison"); + pixel_y = 30 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/heads) +"bAv" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Head of Personnel" + }, +/obj/machinery/button/door{ + id = "hopqueue"; + name = "Queue Shutters Control"; + pixel_x = 4; + pixel_y = 25; + req_access_txt = "28" + }, +/obj/machinery/light_switch{ + pixel_x = 4; + pixel_y = 36 + }, +/obj/machinery/button/flasher{ + id = "hopflash"; + pixel_x = -6; + pixel_y = 36 + }, +/obj/machinery/button/door{ + id = "hop"; + name = "Privacy Shutters Control"; + pixel_x = -6; + pixel_y = 25; + req_access_txt = "28" + }, +/turf/open/floor/plasteel/darkblue/side{ + dir = 5 + }, +/area/crew_quarters/heads) +"bAw" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/northleft{ + dir = 4; + name = "Reception Window"; + req_access_txt = "0" + }, +/obj/machinery/door/window/brigdoor{ + base_state = "rightsecure"; + dir = 8; + icon_state = "rightsecure"; + name = "Head of Personnel's Desk"; + req_access_txt = "57" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "hop"; + name = "Privacy Shutters" + }, +/obj/machinery/status_display{ + pixel_y = 32; + supply_display = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads) +"bAx" = ( +/obj/machinery/flasher{ + id = "hopflash"; + pixel_y = 28 + }, +/turf/open/floor/plasteel/delivery, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bAy" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "hopqueue"; + name = "HoP Queue Shutters" + }, +/turf/open/floor/plasteel/loadingarea{ + dir = 4 + }, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bAz" = ( +/turf/open/floor/plasteel/blue/side{ + dir = 8 + }, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bAA" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/machinery/camera{ + c_tag = "Aft Starboard Primary Hallway South"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bAB" = ( +/turf/closed/wall, +/area/storage/primary) +"bAC" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/starboard) +"bAD" = ( +/obj/machinery/door/airlock{ + id_tag = "Dorm1"; + name = "Dorm 1" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"bAE" = ( +/obj/machinery/door/airlock{ + id_tag = "Dorm2"; + name = "Dorm 2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"bAF" = ( +/obj/machinery/door/airlock{ + id_tag = "Dorm3"; + name = "Dorm 3" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/sleep) +"bAG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bAH" = ( +/obj/machinery/biogenerator, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/starboard) +"bAI" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"bAJ" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/engineering) +"bAK" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/landmark/start{ + name = "Station Engineer" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bAL" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/table, +/obj/item/weapon/book/manual/engineering_singularity_safety, +/obj/item/clothing/gloves/color/yellow, +/obj/item/device/gps/engineering{ + gpstag = "ENG2" + }, +/obj/item/device/gps/engineering{ + gpstag = "ENG1" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bAM" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/engine/engineering) +"bAN" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bAO" = ( +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/engineering) +"bAP" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Singularity"; + name = "radiation shutters" + }, +/turf/open/floor/plasteel/bot, +/area/engine/engineering) +"bAQ" = ( +/obj/item/weapon/weldingtool, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plating/airless, +/area/space) +"bAR" = ( +/obj/machinery/power/tesla_coil, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plating/airless, +/area/space) +"bAS" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating/airless, +/area/space) +"bAT" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/maintenance{ + name = "Cargo Bay Maintenance"; + req_access_txt = "31" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/quartermaster/storage) +"bAU" = ( +/turf/closed/wall, +/area/quartermaster/qm) +"bAV" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/quartermaster/qm) +"bAW" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/glass_mining{ + name = "Quartermaster"; + req_access_txt = "41" + }, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/qm) +"bAX" = ( +/turf/closed/wall, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"bAY" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/glass_security{ + name = "Security Office"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/delivery, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"bAZ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"bBa" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/brown{ + dir = 8 + }, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"bBb" = ( +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"bBc" = ( +/obj/item/weapon/book/manual/wiki/security_space_law, +/obj/machinery/requests_console{ + department = "Detective's office"; + pixel_x = -30 + }, +/obj/structure/table/wood, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"bBd" = ( +/obj/structure/chair/office/dark, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/landmark/start{ + name = "Detective" + }, +/turf/open/floor/carpet, +/area/security/detectives_office) +"bBe" = ( +/turf/open/floor/carpet, +/area/security/detectives_office) +"bBf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"bBg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/brig) +"bBh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/corner{ + dir = 4 + }, +/area/security/brig) +"bBi" = ( +/obj/machinery/door_timer{ + dir = 1; + pixel_y = 32 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/camera{ + c_tag = "Brig Central" + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) +"bBj" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/security/brig) +"bBk" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"bBl" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/red/corner{ + dir = 4 + }, +/area/security/brig) +"bBm" = ( +/obj/machinery/door_timer{ + dir = 1; + pixel_y = 32 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) +"bBn" = ( +/obj/machinery/door_timer{ + dir = 1; + pixel_y = 32 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/camera{ + c_tag = "Brig East" + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) +"bBo" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/security/brig) +"bBp" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/brig) +"bBq" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/captain, +/turf/open/floor/carpet, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bBr" = ( +/turf/open/floor/carpet, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bBs" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bBt" = ( +/turf/closed/wall, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bBu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bBv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bBw" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bBx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bBy" = ( +/obj/effect/decal/cleanable/robot_debris, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fsmaint2) +"bBz" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/black, +/area/crew_quarters/heads) +"bBA" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/effect/landmark/start{ + name = "Head of Personnel" + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/heads) +"bBB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/crew_quarters/heads) +"bBC" = ( +/obj/machinery/computer/card, +/turf/open/floor/plasteel/darkblue/side{ + dir = 4 + }, +/area/crew_quarters/heads) +"bBD" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/grille, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "hop"; + name = "Privacy Shutters" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/crew_quarters/heads) +"bBE" = ( +/turf/open/floor/plasteel/bot, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bBF" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bBG" = ( +/turf/open/floor/plasteel/blue/corner{ + dir = 1 + }, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bBH" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/storage/primary) +"bBI" = ( +/obj/structure/table, +/obj/item/weapon/wrench, +/obj/item/device/analyzer, +/obj/machinery/light_switch{ + pixel_y = 28 + }, +/turf/open/floor/plasteel/floorgrime, +/area/storage/primary) +"bBJ" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/electrical{ + pixel_x = 1; + pixel_y = -1 + }, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/floorgrime, +/area/storage/primary) +"bBK" = ( +/obj/structure/table, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/item/stack/cable_coil{ + pixel_x = 2; + pixel_y = -2 + }, +/obj/item/stack/cable_coil{ + pixel_x = 3; + pixel_y = -7 + }, +/obj/item/weapon/screwdriver{ + pixel_y = 16 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/storage/primary) +"bBL" = ( +/turf/open/floor/plasteel/floorgrime, +/area/storage/primary) +"bBM" = ( +/obj/machinery/vending/assist, +/turf/open/floor/plasteel/floorgrime, +/area/storage/primary) +"bBN" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bBO" = ( +/obj/machinery/button/door{ + id = "Dorm1"; + name = "Dorm Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 0; + pixel_y = 25; + req_access_txt = "0"; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"bBP" = ( +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"bBQ" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"bBR" = ( +/obj/machinery/button/door{ + id = "Dorm2"; + name = "Dorm Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 0; + pixel_y = 25; + req_access_txt = "0"; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"bBS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"bBT" = ( +/obj/machinery/button/door{ + id = "Dorm3"; + name = "Dorm Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 0; + pixel_y = 25; + req_access_txt = "0"; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"bBU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/item/stack/cable_coil/cut{ + amount = 2; + icon_state = "coil_red2" + }, +/obj/structure/sink/kitchen{ + desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; + name = "old sink"; + pixel_y = 28 + }, +/obj/effect/decal/cleanable/greenglow, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bBV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bBW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bBX" = ( +/obj/effect/decal/cleanable/oil{ + icon_state = "floor2" + }, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bBY" = ( +/obj/structure/cable, +/obj/machinery/power/emitter{ + anchored = 1; + dir = 2; + state = 2 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bBZ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/weapon/electronics/airlock, +/obj/item/weapon/electronics/airlock, +/obj/item/weapon/electronics/apc, +/obj/item/weapon/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000 + }, +/obj/item/weapon/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bCa" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/engine/engineering) +"bCb" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bCc" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/engineering) +"bCd" = ( +/turf/open/floor/plating/warnplate{ + dir = 9 + }, +/area/engine/engineering) +"bCe" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/engine/engineering) +"bCf" = ( +/obj/machinery/button/door{ + id = "Singularity"; + name = "Shutters Control"; + pixel_x = 0; + pixel_y = 25; + req_access_txt = "11" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/engine/engineering) +"bCg" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/engine/engineering) +"bCh" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating/warnplate{ + dir = 5 + }, +/area/engine/engineering) +"bCi" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"bCj" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating/airless, +/area/space) +"bCk" = ( +/obj/structure/lattice, +/obj/item/weapon/crowbar, +/turf/open/space, +/area/space) +"bCl" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall7"; + dir = 2 + }, +/area/shuttle/supply) +"bCm" = ( +/turf/open/floor/mineral/titanium/blue, +/turf/closed/wall/mineral/titanium/interior, +/area/shuttle/supply) +"bCn" = ( +/turf/open/floor/plasteel/shuttle, +/turf/closed/wall/shuttle/interior{ + icon_state = "swall_f6" + }, +/area/shuttle/supply) +"bCo" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall11"; + dir = 2 + }, +/area/shuttle/supply) +"bCp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bCq" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bCr" = ( +/obj/structure/table, +/obj/item/weapon/cartridge/quartermaster{ + pixel_x = 6; + pixel_y = 5 + }, +/obj/item/weapon/cartridge/quartermaster, +/obj/item/weapon/cartridge/quartermaster{ + pixel_x = -4; + pixel_y = 7 + }, +/obj/item/weapon/coin/silver, +/turf/open/floor/plasteel/brown{ + dir = 9 + }, +/area/quartermaster/qm) +"bCs" = ( +/turf/open/floor/plasteel/brown{ + dir = 1 + }, +/area/quartermaster/qm) +"bCt" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + dir = 1 + }, +/area/quartermaster/qm) +"bCu" = ( +/obj/structure/closet/secure_closet/quartermaster, +/turf/open/floor/plasteel/brown{ + dir = 1 + }, +/area/quartermaster/qm) +"bCv" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/light_switch{ + pixel_x = 25 + }, +/turf/open/floor/plasteel/brown{ + dir = 5 + }, +/area/quartermaster/qm) +"bCw" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/light_switch{ + pixel_x = -25 + }, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"bCx" = ( +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"bCy" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"bCz" = ( +/obj/structure/table, +/obj/item/weapon/book/manual/wiki/security_space_law, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"bCA" = ( +/obj/structure/table, +/obj/machinery/recharger{ + pixel_y = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"bCB" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23; + pixel_y = 0 + }, +/turf/open/floor/plasteel/brown{ + dir = 8 + }, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"bCC" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/door/poddoor/preopen{ + id = "det_blast"; + layer = 2.9; + name = "privacy door" + }, +/turf/open/floor/plating, +/area/security/detectives_office) +"bCD" = ( +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/weapon/pen, +/obj/structure/table/wood, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"bCE" = ( +/obj/item/weapon/storage/fancy/cigarettes, +/obj/item/clothing/glasses/sunglasses, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/table/wood, +/turf/open/floor/carpet, +/area/security/detectives_office) +"bCF" = ( +/obj/item/device/camera{ + desc = "A one use - polaroid camera. 30 photos left."; + name = "detectives camera"; + pictures_left = 30 + }, +/obj/structure/table/wood, +/turf/open/floor/carpet, +/area/security/detectives_office) +"bCG" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/obj/machinery/button/door{ + id = "det_blast"; + name = "Privacy Shutters"; + pixel_x = 24; + pixel_y = 0 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"bCH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/brig) +"bCI" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/corner, +/area/security/brig) +"bCJ" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"bCK" = ( +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"bCL" = ( +/obj/machinery/power/apc{ + dir = 2; + name = "Brig APC"; + pixel_x = 0; + pixel_y = -24 + }, +/obj/structure/cable, +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"bCM" = ( +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/brig) +"bCN" = ( +/obj/item/weapon/storage/box/matches, +/obj/item/weapon/razor{ + pixel_x = -4; + pixel_y = 2 + }, +/obj/item/clothing/mask/cigarette/cigar, +/obj/structure/table/wood, +/obj/item/weapon/reagent_containers/food/drinks/flask/gold, +/turf/open/floor/carpet, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bCO" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/obj/effect/landmark/start{ + name = "Captain" + }, +/turf/open/floor/carpet, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bCP" = ( +/obj/machinery/light_switch{ + pixel_y = -28 + }, +/turf/open/floor/carpet, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bCQ" = ( +/obj/machinery/door/airlock/command{ + name = "Captain's Quarters"; + req_access = null; + req_access_txt = "20" + }, +/turf/open/floor/wood, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bCR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/newscaster/security_unit{ + pixel_y = 30 + }, +/turf/open/floor/wood, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bCS" = ( +/obj/item/device/radio/intercom{ + dir = 8; + freerange = 1; + name = "Station Intercom (Command)"; + pixel_y = 24 + }, +/obj/machinery/suit_storage_unit/captain, +/turf/open/floor/wood, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bCT" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/grille, +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"bCU" = ( +/obj/structure/filingcabinet, +/turf/open/floor/wood, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bCV" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/maintenance{ + name = "Bridge Maintenance"; + req_access_txt = "19" + }, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=2"; + freq = 1400; + location = "Bridge" + }, +/turf/open/floor/plating, +/area/bridge) +"bCW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/closed/wall/r_wall, +/area/bridge) +"bCX" = ( +/turf/closed/wall/r_wall, +/area/bridge) +"bCY" = ( +/obj/machinery/pdapainter, +/obj/machinery/keycard_auth{ + pixel_x = -24 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/heads) +"bCZ" = ( +/turf/open/floor/plasteel/black, +/area/crew_quarters/heads) +"bDa" = ( +/obj/machinery/computer/secure_data, +/turf/open/floor/plasteel/darkblue/side{ + dir = 4 + }, +/area/crew_quarters/heads) +"bDb" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/grille, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "hop"; + name = "Privacy Shutters" + }, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable, +/turf/open/floor/plating, +/area/crew_quarters/heads) +"bDc" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Primary Tool Storage" + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"bDd" = ( +/turf/open/floor/plasteel, +/area/storage/primary) +"bDe" = ( +/obj/structure/table, +/obj/item/weapon/wirecutters, +/obj/item/device/flashlight{ + pixel_x = 1; + pixel_y = 5 + }, +/turf/open/floor/plasteel/floorgrime, +/area/storage/primary) +"bDf" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/item/weapon/shard, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bDg" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"bDh" = ( +/obj/structure/closet/secure_closet/personal, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/item/clothing/under/suit_jacket/burgundy, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"bDi" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/structure/table/wood, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"bDj" = ( +/obj/structure/closet/secure_closet/personal, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/item/clothing/under/suit_jacket/tan, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"bDk" = ( +/obj/structure/closet/secure_closet/personal, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/item/clothing/under/assistantformal, +/turf/open/floor/carpet, +/area/crew_quarters/sleep) +"bDl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/grille, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/starboard) +"bDm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bDn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bDo" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bDp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/hydroponics/soil, +/obj/item/seeds/ambrosia, +/turf/open/floor/plating/warnplate{ + dir = 9 + }, +/area/maintenance/starboard) +"bDq" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable, +/obj/machinery/power/smes/engineering, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/engine/engineering) +"bDr" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/engine/engineering) +"bDs" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bDt" = ( +/obj/structure/closet/crate{ + name = "solar pack crate" + }, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/weapon/circuitboard/computer/solar_control, +/obj/item/weapon/electronics/tracker, +/obj/item/weapon/paper/solar, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bDu" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"bDv" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/rack, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/suit/hazardvest, +/obj/item/weapon/tank/internals/emergency_oxygen/engi, +/obj/item/weapon/tank/internals/emergency_oxygen/engi, +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/engine/engineering) +"bDw" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bDx" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Singularity"; + name = "radiation shutters" + }, +/turf/open/floor/plasteel/bot, +/area/engine/engineering) +"bDy" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/engine/engineering) +"bDz" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"bDA" = ( +/turf/open/floor/plating, +/area/engine/engineering) +"bDB" = ( +/obj/item/weapon/screwdriver, +/turf/open/floor/plating, +/area/engine/engineering) +"bDC" = ( +/obj/structure/particle_accelerator/particle_emitter/right{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"bDD" = ( +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/engine/engineering) +"bDE" = ( +/turf/open/floor/plating/airless/warnplate{ + dir = 9 + }, +/area/space) +"bDF" = ( +/obj/machinery/the_singularitygen/tesla, +/turf/open/floor/plating/airless/warnplate{ + dir = 1 + }, +/area/space) +"bDG" = ( +/turf/open/floor/plating/airless/warnplate{ + dir = 5 + }, +/area/space) +"bDH" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s5"; + dir = 2 + }, +/area/shuttle/supply) +"bDI" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall15"; + dir = 2 + }, +/area/shuttle/supply) +"bDJ" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/shuttle/engine/heater, +/turf/open/floor/plating/airless, +/area/shuttle/supply) +"bDK" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s9"; + dir = 2 + }, +/area/shuttle/supply) +"bDL" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/oil, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bDM" = ( +/obj/machinery/camera{ + c_tag = "Chief Engineer's Office"; + dir = 1 + }, +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/plasteel/neutral, +/area/engine/chiefs_office) +"bDN" = ( +/mob/living/simple_animal/mouse/brown/Tom, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"bDO" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"bDP" = ( +/obj/structure/chair/office/dark, +/obj/effect/landmark/start{ + name = "Quartermaster" + }, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"bDQ" = ( +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"bDR" = ( +/obj/structure/cable, +/obj/machinery/power/apc{ + dir = 4; + name = "Quartermaster APC"; + pixel_x = 26 + }, +/turf/open/floor/plasteel/brown{ + dir = 4 + }, +/area/quartermaster/qm) +"bDS" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"bDT" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"bDU" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"bDV" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"bDW" = ( +/obj/item/device/radio/intercom{ + dir = 4; + name = "Station Intercom (General)"; + pixel_x = 27 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"bDX" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + name = "Detective's Office"; + req_access = null; + req_access_txt = "4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/security/detectives_office) +"bDY" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"bDZ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/carpet, +/area/security/detectives_office) +"bEa" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/carpet, +/area/security/detectives_office) +"bEb" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + name = "Detective's Office"; + req_access = null; + req_access_txt = "4" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/detectives_office) +"bEc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/brig) +"bEd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/brig) +"bEe" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE" + }, +/turf/closed/wall/r_wall, +/area/security/warden) +"bEf" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/window/reinforced/fulltile, +/obj/structure/grille, +/turf/open/floor/plating, +/area/security/warden) +"bEg" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/window/reinforced/fulltile, +/obj/structure/grille, +/turf/open/floor/plating, +/area/security/warden) +"bEh" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/window/reinforced/fulltile, +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/security/warden) +"bEi" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/window/reinforced/fulltile, +/obj/structure/grille, +/turf/open/floor/plating, +/area/security/warden) +"bEj" = ( +/turf/closed/wall/r_wall, +/area/security/warden) +"bEk" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/machinery/keycard_auth{ + pixel_x = -25 + }, +/turf/open/floor/wood, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bEl" = ( +/turf/open/floor/wood, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bEm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bEn" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/wood, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bEo" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + layer = 2.9; + name = "bridge blast door" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/bridge) +"bEp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + layer = 2.9; + name = "bridge blast door" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/bridge) +"bEq" = ( +/turf/closed/wall, +/area/bridge) +"bEr" = ( +/obj/machinery/disposal/bin, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23; + pixel_y = 0 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Head of Personnel's Office"; + dir = 4 + }, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/carpet, +/area/crew_quarters/heads) +"bEs" = ( +/mob/living/simple_animal/pet/dog/corgi/Ian, +/turf/open/floor/carpet, +/area/crew_quarters/heads) +"bEt" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/carpet, +/area/crew_quarters/heads) +"bEu" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/closet/secure_closet/hop, +/obj/item/weapon/storage/box/silver_ids, +/turf/open/floor/plasteel/darkblue/side{ + dir = 4 + }, +/area/crew_quarters/heads) +"bEv" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable, +/obj/structure/grille, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "hop"; + name = "Privacy Shutters" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/crew_quarters/heads) +"bEw" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plasteel/bot, +/area/storage/primary) +"bEx" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/floorgrime, +/area/storage/primary) +"bEy" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"bEz" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/device/t_scanner, +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = 27 + }, +/turf/open/floor/plasteel/floorgrime, +/area/storage/primary) +"bEA" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/starboard) +"bEB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/closed/wall, +/area/crew_quarters/sleep) +"bEC" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/sleep) +"bED" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/decal/cleanable/robot_debris, +/obj/item/weapon/reagent_containers/glass/bucket, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bEE" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/red/corner{ + dir = 4 + }, +/area/security/brig) +"bEF" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/item/weapon/stock_parts/manipulator, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bEG" = ( +/obj/structure/grille, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/starboard) +"bEH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/hydroponics/soil, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/maintenance/starboard) +"bEI" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE"; + pixel_x = -32 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/power/port_gen/pacman, +/obj/item/weapon/wrench, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/engine/engineering) +"bEJ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 4 + }, +/area/engine/engineering) +"bEK" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bEL" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_engineering{ + name = "Power Storage"; + req_access_txt = "11"; + req_one_access_txt = "0" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bEM" = ( +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the singularity chamber."; + dir = 8; + layer = 4; + name = "Singularity Engine Telescreen"; + network = list("Singularity"); + pixel_x = 28 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/engineering) +"bEN" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Engineering Center"; + dir = 4 + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/engine/engineering) +"bEO" = ( +/obj/structure/particle_accelerator/end_cap{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"bEP" = ( +/obj/structure/particle_accelerator/fuel_chamber{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"bEQ" = ( +/obj/structure/particle_accelerator/power_box{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"bER" = ( +/obj/structure/particle_accelerator/particle_emitter/center{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"bES" = ( +/obj/item/weapon/wirecutters, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/engine/engineering) +"bET" = ( +/turf/open/floor/plating/airless/warnplate{ + dir = 8 + }, +/area/space) +"bEU" = ( +/obj/item/weapon/wrench, +/turf/open/floor/plating/airless, +/area/space) +"bEV" = ( +/turf/open/floor/plating/airless/warnplate{ + dir = 4 + }, +/area/space) +"bEW" = ( +/obj/structure/lattice, +/obj/item/device/radio/off, +/turf/open/space, +/area/space) +"bEX" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "burst_l" + }, +/turf/open/floor/plating/airless, +/area/shuttle/supply) +"bEY" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/open/floor/plating/airless, +/area/shuttle/supply) +"bEZ" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "burst_r" + }, +/turf/open/floor/plating/airless, +/area/shuttle/supply) +"bFa" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bFb" = ( +/obj/machinery/computer/security/mining, +/turf/open/floor/plasteel/brown{ + dir = 10 + }, +/area/quartermaster/qm) +"bFc" = ( +/turf/open/floor/plasteel/brown, +/area/quartermaster/qm) +"bFd" = ( +/obj/machinery/status_display{ + pixel_y = -32; + supply_display = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/structure/table, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/machinery/computer/stockexchange, +/turf/open/floor/plasteel/brown, +/area/quartermaster/qm) +"bFe" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/light, +/obj/structure/table, +/obj/item/weapon/folder/yellow, +/obj/item/weapon/pen{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/weapon/pen/red, +/turf/open/floor/plasteel/brown, +/area/quartermaster/qm) +"bFf" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -35 + }, +/obj/structure/table, +/obj/item/weapon/clipboard, +/obj/item/weapon/stamp/qm, +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/brown, +/area/quartermaster/qm) +"bFg" = ( +/obj/structure/filingcabinet, +/turf/open/floor/plasteel/brown{ + dir = 6 + }, +/area/quartermaster/qm) +"bFh" = ( +/obj/structure/filingcabinet, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"bFi" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/item/weapon/screwdriver{ + pixel_y = 10 + }, +/obj/item/device/radio/off, +/turf/open/floor/plasteel/red/side, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"bFj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable, +/obj/machinery/power/apc{ + name = "Cargo Security APC"; + pixel_y = -26 + }, +/obj/machinery/light, +/obj/machinery/camera{ + c_tag = "Security Post - Cargo"; + dir = 1 + }, +/turf/open/floor/plasteel/red/side, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"bFk" = ( +/obj/machinery/computer/security/mining, +/obj/structure/reagent_dispensers/peppertank{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/red/side, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"bFl" = ( +/obj/machinery/computer/secure_data, +/obj/machinery/requests_console{ + department = "Security"; + departmentType = 5; + pixel_y = -30 + }, +/obj/machinery/newscaster{ + pixel_x = 30 + }, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"bFm" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "det_blast"; + layer = 2.9; + name = "privacy door" + }, +/turf/open/floor/plating, +/area/security/detectives_office) +"bFn" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/machinery/light_switch{ + pixel_y = -28 + }, +/obj/item/weapon/storage/briefcase{ + pixel_x = -3; + pixel_y = 2 + }, +/obj/item/weapon/storage/secure/briefcase{ + pixel_x = 2; + pixel_y = -2 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"bFo" = ( +/obj/item/weapon/storage/secure/safe{ + pixel_x = 8; + pixel_y = -27 + }, +/obj/machinery/camera{ + c_tag = "Detective's Office"; + dir = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"bFp" = ( +/obj/structure/filingcabinet, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"bFq" = ( +/obj/structure/closet/secure_closet/detective, +/obj/machinery/light/small, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"bFr" = ( +/obj/item/device/taperecorder, +/obj/structure/table/wood, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"bFs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/brig) +"bFt" = ( +/obj/machinery/computer/prisoner, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/requests_console{ + department = "Security"; + departmentType = 5; + pixel_x = -30 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"bFu" = ( +/obj/structure/table, +/obj/machinery/button/door{ + id = "briggate"; + name = "Brig Lockdown"; + pixel_x = 6; + pixel_y = -2; + req_access_txt = "0" + }, +/obj/machinery/button/door{ + id = "Secure Gate"; + name = "Cell Shutters"; + pixel_x = 6; + pixel_y = 8; + req_access_txt = "0" + }, +/obj/machinery/button/door{ + id = "Prison Gate"; + name = "Prison Wing Lockdown"; + pixel_x = -6; + pixel_y = 8; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"bFv" = ( +/obj/structure/table, +/obj/item/device/radio/intercom{ + dir = 8; + name = "Station Intercom (General)" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"bFw" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/closet/l3closet, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"bFx" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bFy" = ( +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"bFz" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"bFA" = ( +/obj/machinery/flasher/portable, +/turf/open/floor/plasteel/black, +/area/security/warden) +"bFB" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 1; + name = "Armory APC"; + pixel_y = 25 + }, +/obj/machinery/flasher/portable, +/turf/open/floor/plasteel/black, +/area/security/warden) +"bFC" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = 25 + }, +/obj/machinery/suit_storage_unit/security, +/turf/open/floor/plasteel/black, +/area/security/warden) +"bFD" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/suit_storage_unit/security, +/turf/open/floor/plasteel/black, +/area/security/warden) +"bFE" = ( +/obj/structure/rack, +/obj/item/weapon/grenade/barrier{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/weapon/grenade/barrier, +/obj/item/weapon/grenade/barrier{ + pixel_x = 4; + pixel_y = -4 + }, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/black, +/area/security/warden) +"bFF" = ( +/obj/structure/rack, +/obj/item/weapon/storage/box/handcuffs, +/obj/item/weapon/storage/box/flashbangs{ + pixel_x = -2; + pixel_y = -2 + }, +/obj/item/weapon/gun/energy/gun/dragnet, +/obj/item/weapon/gun/energy/gun/dragnet, +/turf/open/floor/plasteel/black, +/area/security/warden) +"bFG" = ( +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Captain's Desk"; + departmentType = 5; + name = "Captain RC"; + pixel_x = -30 + }, +/obj/item/weapon/card/id/captains_spare, +/obj/item/weapon/hand_tele, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bFH" = ( +/obj/structure/chair/comfy/brown{ + dir = 2 + }, +/obj/effect/landmark/start{ + name = "Captain" + }, +/turf/open/floor/wood, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bFI" = ( +/obj/machinery/computer/communications, +/turf/open/floor/wood, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bFJ" = ( +/obj/machinery/computer/card, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bFK" = ( +/obj/machinery/vending/cola, +/turf/open/floor/plasteel/black, +/area/bridge) +"bFL" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/black, +/area/bridge) +"bFM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/black, +/area/bridge) +"bFN" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-12" + }, +/turf/open/floor/plasteel/darkblue/corner, +/area/bridge) +"bFO" = ( +/turf/closed/wall, +/area/crew_quarters/heads) +"bFP" = ( +/obj/machinery/newscaster/security_unit{ + pixel_x = -32 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet, +/area/crew_quarters/heads) +"bFQ" = ( +/obj/machinery/holopad, +/turf/open/floor/carpet, +/area/crew_quarters/heads) +"bFR" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads) +"bFS" = ( +/obj/structure/table, +/obj/machinery/recharger, +/turf/open/floor/plasteel/darkblue/side{ + dir = 4 + }, +/area/crew_quarters/heads) +"bFT" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/flasher{ + id = "hopflash"; + pixel_x = -28; + pixel_y = 0 + }, +/turf/open/floor/plasteel/bot, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bFU" = ( +/turf/open/floor/plasteel/red/corner{ + dir = 8 + }, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bFV" = ( +/obj/structure/table, +/obj/item/weapon/storage/belt/utility, +/obj/item/weapon/storage/firstaid, +/turf/open/floor/plasteel, +/area/storage/primary) +"bFW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/floorgrime, +/area/storage/primary) +"bFX" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"bFY" = ( +/obj/structure/table, +/obj/machinery/power/apc{ + dir = 4; + name = "Primary Tool Storage APC"; + pixel_x = 25 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/camera{ + c_tag = "Primary Tool Storage"; + dir = 8 + }, +/obj/item/device/assembly/igniter{ + pixel_x = -8; + pixel_y = -4 + }, +/obj/item/device/assembly/igniter, +/obj/item/weapon/screwdriver{ + pixel_y = 16 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/storage/primary) +"bFZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/storage/primary) +"bGa" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-y"; + dir = 4 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bGb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bGc" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bGd" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bGe" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/effect/decal/cleanable/oil{ + icon_state = "floor5" + }, +/obj/item/weapon/folder, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bGf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bGg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/fsmaint2) +"bGh" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/wrench, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bGi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fsmaint2) +"bGj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bGk" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/effect/decal/cleanable/ash, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/starboard) +"bGl" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/closet/crate/hydroponics, +/obj/item/weapon/storage/bag/plants/portaseeder, +/obj/item/weapon/cultivator, +/obj/item/seeds/corn, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bGm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bGn" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/grille/broken, +/obj/item/stack/rods, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bGo" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bGp" = ( +/obj/machinery/hydroponics/soil, +/obj/item/seeds/wheat, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/maintenance/starboard) +"bGq" = ( +/obj/structure/cable, +/obj/machinery/power/apc{ + cell_type = 15000; + dir = 8; + name = "Engineering APC"; + pixel_x = -27 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/engine/engineering) +"bGr" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/vending/tool, +/turf/open/floor/plasteel/caution/corner{ + dir = 8 + }, +/area/engine/engineering) +"bGs" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bGt" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8"; + tag = "" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"bGu" = ( +/obj/machinery/particle_accelerator/control_box, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"bGv" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start{ + name = "Station Engineer" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"bGw" = ( +/obj/structure/particle_accelerator/particle_emitter/left{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"bGx" = ( +/turf/open/floor/plating/airless/warnplate{ + dir = 10 + }, +/area/space) +"bGy" = ( +/obj/machinery/the_singularitygen, +/turf/open/floor/plating/airless/warnplate, +/area/space) +"bGz" = ( +/turf/open/floor/plating/airless/warnplate{ + dir = 6 + }, +/area/space) +"bGA" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bGB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/quartermaster/qm) +"bGC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/quartermaster/qm) +"bGD" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/closed/wall, +/area/quartermaster/qm) +"bGE" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/closed/wall, +/area/quartermaster/qm) +"bGF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"bGG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/closed/wall, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"bGH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/security/checkpoint/supply{ + name = "Security Post - Cargo" + }) +"bGI" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/brown/corner{ + dir = 1 + }, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"bGJ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"bGK" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"bGL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/brig) +"bGM" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/warden) +"bGN" = ( +/obj/machinery/computer/security, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"bGO" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/effect/landmark/start{ + name = "Warden" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"bGP" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"bGQ" = ( +/obj/structure/rack, +/obj/item/clothing/mask/gas/sechailer{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/gas/sechailer, +/obj/item/clothing/mask/gas/sechailer{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/gas/sechailer{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/gas/sechailer{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/gas/sechailer{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/machinery/camera{ + c_tag = "Brig Control Room"; + dir = 8 + }, +/obj/item/clothing/glasses/sunglasses{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/clothing/glasses/sunglasses{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/clothing/ears/earmuffs{ + pixel_x = -3; + pixel_y = -2 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"bGR" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/vehicle/secway, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/security/warden) +"bGS" = ( +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/security/warden) +"bGT" = ( +/obj/item/weapon/storage/toolbox/mechanical, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/security/warden) +"bGU" = ( +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/security/warden) +"bGV" = ( +/turf/open/floor/plasteel/black, +/area/security/warden) +"bGW" = ( +/obj/item/device/flashlight/lamp/green, +/obj/structure/table/wood, +/obj/structure/window/reinforced, +/turf/open/floor/wood, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bGX" = ( +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/weapon/pen, +/obj/item/weapon/folder/blue, +/obj/item/weapon/stamp/captain, +/obj/structure/table/wood, +/obj/machinery/door/window{ + base_state = "right"; + icon_state = "right"; + name = "Captain's Desk"; + req_access_txt = "20" + }, +/turf/open/floor/wood, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bGY" = ( +/obj/item/weapon/book/manual/wiki/security_space_law, +/obj/item/weapon/coin/plasma, +/obj/structure/table/wood, +/obj/structure/window/reinforced, +/turf/open/floor/wood, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bGZ" = ( +/obj/machinery/recharger, +/obj/item/weapon/melee/chainofcommand, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/table/wood, +/obj/structure/window/reinforced, +/turf/open/floor/wood, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bHa" = ( +/obj/machinery/door/window{ + base_state = "right"; + icon_state = "right"; + name = "Captain's Desk"; + req_access_txt = "20" + }, +/turf/open/floor/wood, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bHb" = ( +/obj/structure/table, +/obj/machinery/microwave{ + pixel_x = -3; + pixel_y = 6 + }, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"bHc" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/black, +/area/bridge) +"bHd" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"bHe" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/grille, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bHf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/item/weapon/shard{ + icon_state = "medium" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bHg" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads) +"bHh" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads) +"bHi" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/carpet, +/area/crew_quarters/heads) +"bHj" = ( +/obj/machinery/computer/cargo/request, +/turf/open/floor/plasteel/delivery, +/area/quartermaster/storage) +"bHk" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "hopqueue"; + name = "HoP Queue Shutters" + }, +/turf/open/floor/plasteel/loadingarea{ + dir = 8 + }, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bHl" = ( +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bHm" = ( +/obj/structure/table, +/obj/item/weapon/crowbar, +/obj/item/device/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/clothing/gloves/color/fyellow, +/turf/open/floor/plasteel, +/area/storage/primary) +"bHn" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/floorgrime, +/area/storage/primary) +"bHo" = ( +/obj/structure/table, +/obj/item/device/assembly/signaler, +/obj/item/device/assembly/signaler, +/obj/item/device/multitool, +/obj/item/device/multitool{ + pixel_x = 4 + }, +/obj/machinery/requests_console{ + department = "Tool Storage"; + pixel_x = 30 + }, +/turf/open/floor/plasteel/floorgrime, +/area/storage/primary) +"bHp" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bHq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bHr" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/effect/decal/cleanable/robot_debris{ + icon_state = "gib3" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bHs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/mob/living/simple_animal/mouse/brown, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bHt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/oil{ + icon_state = "floor2" + }, +/obj/structure/closet/wardrobe/grey, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bHu" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/closed/wall, +/area/maintenance/starboard) +"bHv" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/starboard) +"bHw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bHx" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/starboard) +"bHy" = ( +/obj/machinery/door/poddoor{ + id = "Secure Storage"; + name = "secure storage" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"bHz" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/vending/engivend, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/engine/engineering) +"bHA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/landmark/start{ + name = "Station Engineer" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bHB" = ( +/turf/open/floor/plating/warnplate{ + dir = 10 + }, +/area/engine/engineering) +"bHC" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating/warnplate, +/area/engine/engineering) +"bHD" = ( +/obj/item/stack/cable_coil{ + pixel_x = 3; + pixel_y = -7 + }, +/obj/item/weapon/crowbar, +/obj/machinery/button/door{ + id = "Singularity"; + name = "Shutters Control"; + pixel_x = 0; + pixel_y = -25; + req_access_txt = "11" + }, +/turf/open/floor/plating/warnplate, +/area/engine/engineering) +"bHE" = ( +/turf/open/floor/plating/warnplate, +/area/engine/engineering) +"bHF" = ( +/turf/open/floor/plating/warnplate{ + dir = 6 + }, +/area/engine/engineering) +"bHG" = ( +/obj/item/clothing/head/hardhat, +/turf/open/space, +/area/space) +"bHH" = ( +/obj/item/weapon/screwdriver, +/turf/open/floor/plating/airless, +/area/space) +"bHI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/closed/wall, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bHJ" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bHK" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bHL" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bHM" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/item/stack/sheet/cardboard, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bHN" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/ash, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bHO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bHP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bHQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/oil{ + icon_state = "floor2" + }, +/obj/effect/decal/cleanable/robot_debris{ + icon_state = "gib7" + }, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bHR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bHS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/rods, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bHT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/weapon/shard, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bHU" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bHV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bHW" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bHX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bHY" = ( +/turf/open/floor/plasteel/bot, +/area/crew_quarters/sleep) +"bHZ" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + initialize_directions = 11 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"bIa" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 4 + }, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"bIb" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/preopen{ + id = "briggate"; + name = "security blast door" + }, +/obj/machinery/door/airlock/glass_security{ + id_tag = "outerbrig"; + name = "Brig"; + req_access_txt = "63" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) +"bIc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/brig) +"bId" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) +"bIe" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) +"bIf" = ( +/obj/machinery/camera{ + c_tag = "Brig West" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/brig) +"bIg" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/security/brig) +"bIh" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/brig) +"bIi" = ( +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/warden) +"bIj" = ( +/obj/machinery/computer/secure_data, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"bIk" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/holopad, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"bIl" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"bIm" = ( +/obj/structure/closet/secure_closet/warden, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"bIn" = ( +/obj/structure/rack, +/obj/item/weapon/storage/box/chemimp{ + pixel_x = 4; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/trackimp, +/obj/item/weapon/storage/lockbox/loyalty, +/turf/open/floor/plasteel/black, +/area/security/warden) +"bIo" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/security/warden) +"bIp" = ( +/turf/open/floor/plasteel, +/area/security/warden) +"bIq" = ( +/obj/structure/rack, +/obj/item/weapon/gun/energy/gun{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/gun/energy/gun, +/obj/item/weapon/gun/energy/gun{ + pixel_x = 3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/bot{ + dir = 2 + }, +/area/security/warden) +"bIr" = ( +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/security/warden) +"bIs" = ( +/obj/structure/rack, +/obj/item/clothing/suit/armor/riot, +/obj/item/clothing/suit/armor/riot, +/obj/item/clothing/suit/armor/riot, +/obj/item/clothing/head/helmet/riot, +/obj/item/clothing/head/helmet/riot, +/obj/item/clothing/head/helmet/riot, +/turf/open/floor/plasteel/black, +/area/security/warden) +"bIt" = ( +/obj/machinery/disposal/bin, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bIu" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bIv" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Captain's Office"; + dir = 8 + }, +/obj/machinery/power/apc{ + dir = 4; + name = "Captain's Office APC"; + pixel_x = 26 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/wood, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bIw" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/donkpockets, +/obj/machinery/newscaster{ + pixel_x = -26 + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"bIx" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/black, +/area/bridge) +"bIy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/bridge) +"bIz" = ( +/turf/open/floor/plasteel/darkblue/corner{ + dir = 4 + }, +/area/bridge) +"bIA" = ( +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching Prison Wing holding areas."; + dir = 1; + name = "Prison Monitor"; + network = list("Prison"); + pixel_y = -30 + }, +/obj/machinery/vending/cart{ + req_access_txt = "57" + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads) +"bIB" = ( +/obj/structure/cable, +/obj/machinery/power/apc{ + name = "Head of Personnel APC"; + pixel_y = -24 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads) +"bIC" = ( +/turf/open/floor/carpet, +/area/crew_quarters/heads) +"bID" = ( +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/plasteel/darkblue/side{ + dir = 6 + }, +/area/crew_quarters/heads) +"bIE" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE" + }, +/turf/closed/wall/r_wall, +/area/crew_quarters/heads) +"bIF" = ( +/obj/machinery/vending/cola, +/turf/open/floor/plasteel/black, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bIG" = ( +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bIH" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/bot, +/area/storage/primary) +"bII" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/storage/primary) +"bIJ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"bIK" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/weapon/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000 + }, +/turf/open/floor/plasteel/floorgrime, +/area/storage/primary) +"bIL" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bIM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/window{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bIN" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bIO" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/decal/cleanable/robot_debris{ + icon_state = "gib6" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bIP" = ( +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/starboard) +"bIQ" = ( +/obj/effect/decal/cleanable/oil{ + icon_state = "floor2" + }, +/obj/structure/bed, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bIR" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/starboard) +"bIS" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fsmaint2) +"bIT" = ( +/obj/structure/disposalpipe/sortjunction{ + dir = 4; + sortType = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bIU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bIV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bIW" = ( +/obj/machinery/power/emitter, +/turf/open/floor/plating, +/area/engine/engineering) +"bIX" = ( +/obj/machinery/shieldgen, +/turf/open/floor/plating, +/area/engine/engineering) +"bIY" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/closet/secure_closet/engineering_electrical, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/engine/engineering) +"bIZ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bJa" = ( +/turf/closed/wall, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bJb" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bJc" = ( +/obj/item/weapon/shard{ + icon_state = "medium" + }, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bJd" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bJe" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bJf" = ( +/turf/closed/wall, +/area/lawoffice) +"bJg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/lawoffice) +"bJh" = ( +/obj/item/device/radio/intercom{ + dir = 8; + name = "Station Intercom (General)"; + pixel_x = -28 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"bJi" = ( +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"bJj" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/door/poddoor/preopen{ + id = "briggate"; + name = "security blast door" + }, +/turf/open/floor/plating, +/area/security/brig) +"bJk" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/brig) +"bJl" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/door/poddoor/preopen{ + id = "briggate"; + name = "security blast door" + }, +/turf/open/floor/plating, +/area/security/brig) +"bJm" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"bJn" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"bJo" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/brig) +"bJp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fsmaint2) +"bJq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bJr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bJs" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/junction{ + dir = 8; + icon_state = "pipe-y" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"bJt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"bJu" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"bJv" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_security{ + name = "Armory"; + req_access_txt = "3" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"bJw" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/warden) +"bJx" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/security/warden) +"bJy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 1 + }, +/area/security/warden) +"bJz" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/structure/rack, +/obj/item/weapon/gun/energy/laser{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/gun/energy/laser, +/obj/item/weapon/gun/energy/laser{ + pixel_x = 3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/bot{ + dir = 2 + }, +/area/security/warden) +"bJA" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/security/warden) +"bJB" = ( +/obj/structure/rack, +/obj/item/weapon/storage/box/rubbershot, +/obj/item/weapon/storage/box/rubbershot, +/obj/item/weapon/storage/box/rubbershot, +/obj/item/weapon/storage/box/rubbershot, +/obj/item/weapon/storage/box/rubbershot, +/obj/item/weapon/storage/box/rubbershot, +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = 30 + }, +/obj/item/weapon/gun/projectile/shotgun/riot{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/gun/projectile/shotgun/riot, +/obj/item/weapon/gun/projectile/shotgun/riot{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/machinery/camera/motion{ + c_tag = "Armory"; + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/security/warden) +"bJC" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bJD" = ( +/obj/item/weapon/storage/lockbox/medal, +/obj/item/weapon/pinpointer, +/obj/item/weapon/disk/nuclear, +/obj/item/weapon/storage/secure/safe{ + pixel_x = 35; + pixel_y = 5 + }, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bJE" = ( +/obj/machinery/vending/snack, +/turf/open/floor/plasteel/black, +/area/bridge) +"bJF" = ( +/obj/structure/closet/emcloset, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"bJG" = ( +/obj/machinery/door/airlock/command{ + name = "Head of Personnel"; + req_access = null; + req_access_txt = "57" + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/heads) +"bJH" = ( +/turf/closed/wall, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bJI" = ( +/obj/structure/sign/directions/engineering{ + dir = 4; + icon_state = "direction_eng"; + pixel_x = -32; + pixel_y = 0; + tag = "icon-direction_eng (EAST)" + }, +/obj/structure/sign/directions/science{ + dir = 1; + icon_state = "direction_sci"; + pixel_x = -32; + pixel_y = 8; + tag = "icon-direction_sci (NORTH)" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/starboard) +"bJJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"bJK" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"bJL" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + initialize_directions = 11 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bJM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/oil{ + icon_state = "floor2" + }, +/obj/item/weapon/stock_parts/capacitor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bJN" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/fsmaint2) +"bJO" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/junction{ + dir = 1; + icon_state = "pipe-j2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bJP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bJQ" = ( +/obj/structure/closet/secure_closet/personal, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/starboard) +"bJR" = ( +/obj/structure/bed, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bJS" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/clothing/shoes/jackboots, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bJT" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/obj/structure/light_construct/small{ + dir = 8 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/starboard) +"bJU" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bJV" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bJW" = ( +/obj/effect/decal/cleanable/oil{ + icon_state = "floor2" + }, +/obj/effect/decal/cleanable/robot_debris{ + icon_state = "gib7" + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bJX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bJY" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bJZ" = ( +/obj/machinery/field/generator, +/turf/open/floor/plating, +/area/engine/engineering) +"bKa" = ( +/obj/machinery/portable_atmospherics/canister/toxins, +/turf/open/floor/plating, +/area/engine/engineering) +"bKb" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/closet/secure_closet/engineering_welding, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/sign/nosmoking_2{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/engine/engineering) +"bKc" = ( +/turf/open/floor/plasteel/warning/corner{ + dir = 8 + }, +/area/engine/engineering) +"bKd" = ( +/obj/structure/closet/radiation, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/engine/engineering) +"bKe" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/clothing/gloves/color/black, +/obj/item/weapon/extinguisher{ + pixel_x = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/engine/engineering) +"bKf" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/engine/engineering) +"bKg" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/button/door{ + id = "Singularity"; + name = "Shutters Control"; + pixel_x = 0; + pixel_y = 25; + req_access_txt = "11" + }, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/engine/engineering) +"bKh" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bKi" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bKj" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/crowbar, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bKk" = ( +/obj/machinery/space_heater, +/obj/structure/window{ + dir = 1 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bKl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/stool, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bKm" = ( +/obj/item/trash/chips, +/turf/open/floor/plasteel{ + broken = 1; + dir = 4; + icon_state = "damaged2" + }, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bKn" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Supply Shuttle Airlock"; + req_access_txt = "31" + }, +/obj/docking_port/mobile/supply{ + dwidth = 5; + width = 12 + }, +/obj/docking_port/stationary{ + dir = 8; + dwidth = 5; + height = 7; + id = "supply_home"; + name = "supply bay"; + width = 12 + }, +/turf/open/floor/plating, +/area/shuttle/supply) +"bKo" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bKp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/table, +/obj/item/weapon/newspaper, +/obj/machinery/newscaster{ + pixel_y = 30 + }, +/turf/open/floor/plasteel{ + broken = 1; + dir = 4; + icon_state = "damaged5" + }, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bKq" = ( +/obj/structure/filingcabinet/employment, +/turf/open/floor/wood, +/area/lawoffice) +"bKr" = ( +/obj/item/device/flashlight/lamp/green{ + pixel_x = 1; + pixel_y = 5 + }, +/obj/machinery/button/door{ + id = "lawyer_blast"; + name = "Privacy Shutters"; + pixel_x = 0; + pixel_y = 25 + }, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/lawoffice) +"bKs" = ( +/obj/item/weapon/book/manual/wiki/security_space_law, +/obj/item/weapon/book/manual/wiki/security_space_law, +/obj/item/weapon/pen/red, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/lawoffice) +"bKt" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/wood, +/area/lawoffice) +"bKu" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/storage/briefcase{ + pixel_x = -3; + pixel_y = 2 + }, +/obj/item/weapon/storage/secure/briefcase{ + pixel_x = 2; + pixel_y = -2 + }, +/obj/item/clothing/glasses/sunglasses, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/lawoffice) +"bKv" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "lawyer_blast"; + name = "privacy door" + }, +/turf/open/floor/plating, +/area/lawoffice) +"bKw" = ( +/turf/open/floor/plasteel/red/corner, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"bKx" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/preopen{ + id = "briggate"; + name = "security blast door" + }, +/obj/machinery/door/airlock/glass_security{ + id_tag = "outerbrig"; + name = "Brig"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"bKy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/red/side, +/area/security/brig) +"bKz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/brig) +"bKA" = ( +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/warden) +"bKB" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/computer/crew, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"bKC" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"bKD" = ( +/obj/structure/table, +/obj/machinery/recharger, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"bKE" = ( +/obj/machinery/light, +/obj/machinery/light_switch{ + pixel_y = -23 + }, +/obj/structure/table, +/obj/machinery/recharger, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"bKF" = ( +/obj/structure/cable, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/warden) +"bKG" = ( +/obj/structure/rack, +/obj/item/weapon/storage/box/firingpins{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/firingpins, +/obj/item/key/security, +/turf/open/floor/plasteel/black, +/area/security/warden) +"bKH" = ( +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/security/warden) +"bKI" = ( +/obj/structure/rack, +/obj/item/weapon/gun/energy/gun/advtaser{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/gun/energy/gun/advtaser, +/obj/item/weapon/gun/energy/gun/advtaser{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/bot{ + dir = 2 + }, +/area/security/warden) +"bKJ" = ( +/obj/structure/rack, +/obj/item/weapon/shield/riot{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/shield/riot, +/obj/item/weapon/shield/riot{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/weapon/storage/box/teargas, +/turf/open/floor/plasteel/black, +/area/security/warden) +"bKK" = ( +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bKL" = ( +/obj/item/weapon/storage/fancy/donut_box, +/obj/structure/table/wood, +/turf/open/floor/carpet, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bKM" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bKN" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/holopad, +/turf/open/floor/wood, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bKO" = ( +/obj/item/device/camera, +/obj/item/weapon/storage/photo_album{ + pixel_y = -10 + }, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bKP" = ( +/obj/machinery/vending/coffee, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"bKQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/camera{ + c_tag = "Bridge North"; + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/darkblue/corner, +/area/bridge) +"bKR" = ( +/obj/machinery/status_display{ + layer = 4; + pixel_x = -32 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21" + }, +/turf/open/floor/plasteel/black, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bKS" = ( +/turf/open/floor/plasteel/blue/side{ + dir = 9 + }, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bKT" = ( +/obj/structure/chair, +/obj/machinery/camera{ + c_tag = "Bridge Foyer" + }, +/turf/open/floor/plasteel/blue/side{ + dir = 1 + }, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bKU" = ( +/obj/structure/chair, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = 30 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 1 + }, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bKV" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel/blue/side{ + dir = 5 + }, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bKW" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/storage/primary) +"bKX" = ( +/obj/structure/table, +/obj/item/weapon/weldingtool, +/obj/item/weapon/crowbar, +/turf/open/floor/plasteel/floorgrime, +/area/storage/primary) +"bKY" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/floorgrime, +/area/storage/primary) +"bKZ" = ( +/obj/machinery/vending/tool, +/turf/open/floor/plasteel/floorgrime, +/area/storage/primary) +"bLa" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bLb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/obj/structure/window, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bLc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/light_construct/small{ + dir = 8 + }, +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bLd" = ( +/obj/structure/bed, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/starboard) +"bLe" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/maintenance/starboard) +"bLf" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bLg" = ( +/obj/structure/closet/crate, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/weapon/electronics/airlock, +/obj/item/weapon/electronics/airlock, +/obj/item/weapon/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000 + }, +/obj/item/stack/sheet/mineral/plasma{ + amount = 30 + }, +/obj/machinery/light/small, +/obj/machinery/camera{ + c_tag = "Engineering Secure Storage"; + dir = 1 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"bLh" = ( +/obj/machinery/the_singularitygen, +/turf/open/floor/plating, +/area/engine/engineering) +"bLi" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/table, +/obj/item/clothing/gloves/color/yellow, +/obj/item/weapon/storage/toolbox/electrical{ + pixel_y = 5 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/engine/engineering) +"bLj" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bLk" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/chair/stool, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/engineering) +"bLl" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/rad_collector{ + anchored = 1 + }, +/obj/item/weapon/tank/internals/plasma, +/turf/open/floor/plating, +/area/engine/engineering) +"bLm" = ( +/obj/machinery/power/tesla_coil, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/turf/open/floor/plating/airless, +/area/space) +"bLn" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bLo" = ( +/obj/effect/decal/cleanable/robot_debris, +/obj/structure/closet/emcloset, +/obj/structure/window, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bLp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/table, +/obj/machinery/newscaster{ + pixel_y = -30 + }, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bLq" = ( +/obj/item/stack/tile/plasteel{ + pixel_x = -1 + }, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bLr" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bLs" = ( +/obj/item/weapon/hand_labeler, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + broken = 1; + dir = 4; + icon_state = "damaged4" + }, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bLt" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bLu" = ( +/obj/structure/closet/lawcloset, +/obj/machinery/requests_console{ + department = "Law office"; + pixel_x = -32 + }, +/turf/open/floor/wood, +/area/lawoffice) +"bLv" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Lawyer" + }, +/turf/open/floor/wood, +/area/lawoffice) +"bLw" = ( +/obj/item/weapon/folder/blue, +/obj/item/weapon/folder/blue, +/obj/item/weapon/folder/blue, +/obj/item/weapon/folder/blue, +/obj/item/weapon/stamp/law, +/obj/structure/table/wood, +/obj/item/clothing/glasses/sunglasses/big, +/turf/open/floor/wood, +/area/lawoffice) +"bLx" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/wood, +/area/lawoffice) +"bLy" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE"; + pixel_x = 32 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"bLz" = ( +/turf/closed/wall/r_wall, +/area/security/main) +"bLA" = ( +/turf/closed/wall, +/area/security/main) +"bLB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/security/main) +"bLC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + name = "Security Office"; + req_access = null; + req_access_txt = "63" + }, +/turf/open/floor/plasteel, +/area/security/main) +"bLD" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable, +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/warden) +"bLE" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/table/reinforced, +/obj/machinery/door/window/southleft{ + base_state = "right"; + icon_state = "right"; + name = "Reception Desk"; + req_access_txt = "63" + }, +/obj/item/weapon/book/manual/wiki/security_space_law, +/obj/machinery/door/window/brigdoor{ + dir = 1; + name = "Armory Desk"; + req_access_txt = "3" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"bLF" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/door/airlock/glass_security{ + name = "Brig Control"; + req_access_txt = "3" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"bLG" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/security/warden) +"bLH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning, +/area/security/warden) +"bLI" = ( +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/security/warden) +"bLJ" = ( +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = -32 + }, +/turf/open/floor/carpet, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bLK" = ( +/obj/structure/table/wood, +/mob/living/simple_animal/pet/fox/Renault, +/turf/open/floor/carpet, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bLL" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/wood, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bLM" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/wood, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bLN" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/black, +/area/bridge) +"bLO" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/black, +/area/bridge) +"bLP" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/darkblue/side{ + dir = 4 + }, +/area/bridge) +"bLQ" = ( +/obj/machinery/door/airlock/glass_command{ + name = "Bridge"; + req_access_txt = "19" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"bLR" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + layer = 2.9; + name = "bridge blast door" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/bridge) +"bLS" = ( +/obj/machinery/door/airlock/glass_command{ + name = "Bridge"; + req_access_txt = "19" + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"bLT" = ( +/turf/open/floor/plasteel/black, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bLU" = ( +/turf/open/floor/plasteel/blue/corner{ + dir = 4 + }, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bLV" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/blue/side{ + dir = 1 + }, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bLW" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=7-Bar2"; + location = "6-Arrivals" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bLX" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plasteel/yellow/side{ + dir = 9 + }, +/area/engine/engineering) +"bLY" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/starboard) +"bLZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bMa" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bMb" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bMc" = ( +/obj/item/stack/rods, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bMd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/starboard) +"bMe" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bMf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bMg" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bMh" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bMi" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_y = 5 + }, +/obj/item/device/flashlight{ + pixel_x = 1; + pixel_y = 5 + }, +/obj/item/device/flashlight{ + pixel_x = 1; + pixel_y = 5 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23; + pixel_y = 0 + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/engine/engineering) +"bMj" = ( +/obj/structure/table, +/obj/item/weapon/storage/belt/utility, +/obj/item/weapon/wrench, +/obj/item/weapon/weldingtool, +/obj/item/clothing/head/welding{ + pixel_x = -3; + pixel_y = 5 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bMk" = ( +/obj/structure/table, +/obj/item/stack/cable_coil{ + pixel_x = 3; + pixel_y = -7 + }, +/obj/item/stack/cable_coil, +/obj/item/weapon/electronics/airlock, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bMl" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating/airless, +/area/space) +"bMm" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating/airless, +/area/space) +"bMn" = ( +/obj/item/device/multitool, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating/airless, +/area/space) +"bMo" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating/airless, +/area/space) +"bMp" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/power/solar{ + id = "aftport"; + name = "Aft-Port Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/maintenance/portsolar) +"bMq" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/space, +/area/maintenance/portsolar) +"bMr" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/solar{ + id = "aftport"; + name = "Aft-Port Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/maintenance/portsolar) +"bMs" = ( +/obj/machinery/power/solar{ + id = "aftport"; + name = "Aft-Port Solar Array" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/maintenance/portsolar) +"bMt" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/space, +/area/maintenance/portsolar) +"bMu" = ( +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bMv" = ( +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plasteel{ + broken = 1; + dir = 4; + icon_state = "damaged1" + }, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bMw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bMx" = ( +/obj/effect/decal/cleanable/oil{ + icon_state = "floor2" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bMy" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bMz" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Law Office Maintenance"; + req_access_txt = "38" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/lawoffice) +"bMA" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/lawoffice) +"bMB" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/wood, +/area/lawoffice) +"bMC" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/wood, +/area/lawoffice) +"bMD" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/effect/landmark/start{ + name = "Lawyer" + }, +/turf/open/floor/wood, +/area/lawoffice) +"bME" = ( +/obj/machinery/light_switch{ + pixel_x = 24 + }, +/turf/open/floor/wood, +/area/lawoffice) +"bMF" = ( +/turf/open/floor/plasteel/black, +/area/security/main) +"bMG" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel/black, +/area/security/main) +"bMH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plasteel/black, +/area/security/main) +"bMI" = ( +/obj/item/weapon/cigbutt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/main) +"bMJ" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/security/main) +"bMK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/security/main) +"bML" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/main) +"bMM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/sortjunction{ + dir = 2; + sortType = 7 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/main) +"bMN" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/noticeboard{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/main) +"bMO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/main) +"bMP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/main) +"bMQ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/main) +"bMR" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/main) +"bMS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/main) +"bMT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/main) +"bMU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + name = "Armory"; + req_access = null; + req_access_txt = "3" + }, +/turf/open/floor/plasteel/delivery, +/area/security/warden) +"bMV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/warden) +"bMW" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/structure/closet/secure_closet{ + name = "contraband locker"; + req_access_txt = "3" + }, +/turf/open/floor/plasteel/black, +/area/security/warden) +"bMX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/closet/secure_closet/lethalshots, +/turf/open/floor/plasteel/black, +/area/security/warden) +"bMY" = ( +/obj/structure/rack, +/obj/item/weapon/gun/energy/ionrifle, +/obj/item/weapon/gun/energy/temperature/security, +/obj/item/clothing/suit/armor/laserproof, +/turf/open/floor/plasteel/black, +/area/security/warden) +"bMZ" = ( +/obj/structure/rack, +/obj/item/clothing/suit/armor/bulletproof, +/obj/item/clothing/suit/armor/bulletproof, +/obj/item/clothing/suit/armor/bulletproof, +/obj/item/clothing/head/helmet/alt, +/obj/item/clothing/head/helmet/alt, +/obj/item/clothing/head/helmet/alt, +/turf/open/floor/plasteel/black, +/area/security/warden) +"bNa" = ( +/obj/machinery/status_display{ + pixel_y = -32 + }, +/turf/open/floor/carpet, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bNb" = ( +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = -32 + }, +/turf/open/floor/carpet, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bNc" = ( +/obj/machinery/ai_status_display{ + pixel_y = -32 + }, +/turf/open/floor/carpet, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bNd" = ( +/obj/machinery/computer/arcade, +/obj/machinery/light_switch{ + pixel_y = -28 + }, +/turf/open/floor/wood, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bNe" = ( +/obj/structure/noticeboard{ + dir = 4; + pixel_x = -32 + }, +/obj/machinery/photocopier, +/turf/open/floor/plasteel/black, +/area/bridge) +"bNf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/darkblue/side{ + dir = 4 + }, +/area/bridge) +"bNg" = ( +/obj/structure/sign/securearea, +/turf/closed/wall/r_wall, +/area/bridge) +"bNh" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + layer = 2.9; + name = "bridge blast door" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/bridge) +"bNi" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/bridge) +"bNj" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bNk" = ( +/turf/open/floor/goonplaque, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bNl" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bNm" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bNn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bNo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/starboard) +"bNp" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/item/stack/cable_coil/cut{ + amount = 1; + icon_state = "coil_red1"; + item_state = "coil_red" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bNq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/weapon/shard{ + icon_state = "medium" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bNr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/starboard) +"bNs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/structure/grille, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bNt" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bNu" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/starboard) +"bNv" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bNw" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bNx" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bNy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fsmaint2) +"bNz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/pen, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/fsmaint2) +"bNA" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bNB" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bNC" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bND" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bNE" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/weapon/pen, +/obj/item/weapon/storage/firstaid/fire, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bNF" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23; + pixel_y = 0 + }, +/obj/structure/closet/wardrobe/engineering_yellow, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/engine/engineering) +"bNG" = ( +/obj/machinery/camera/emp_proof{ + c_tag = "Singularity South West"; + dir = 4; + network = list("Singularity") + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bNH" = ( +/obj/machinery/camera/emp_proof{ + c_tag = "Singularity South East"; + dir = 8; + network = list("Singularity") + }, +/turf/open/space, +/area/space) +"bNI" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable, +/turf/open/space, +/area/maintenance/portsolar) +"bNJ" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/item/stack/sheet/cardboard, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bNK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/effect/decal/cleanable/cobweb, +/obj/structure/table, +/obj/item/weapon/newspaper, +/obj/item/weapon/cigbutt, +/obj/item/clothing/glasses/sunglasses, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bNL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/grille, +/obj/structure/window/reinforced/tinted{ + dir = 4 + }, +/obj/structure/window/reinforced/tinted{ + dir = 8 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bNM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bNN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/space_heater, +/turf/open/floor/plasteel{ + burnt = 1; + dir = 4; + icon_state = "floorscorched2" + }, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bNO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/chair/stool, +/turf/open/floor/plasteel/floorgrime, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bNP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/effect/decal/cleanable/robot_debris{ + icon_state = "gib7" + }, +/obj/structure/table, +/obj/machinery/newscaster{ + pixel_x = 28 + }, +/obj/item/device/taperecorder, +/turf/open/floor/plasteel{ + broken = 1; + dir = 4; + icon_state = "damaged2" + }, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bNQ" = ( +/obj/machinery/photocopier, +/turf/open/floor/wood, +/area/lawoffice) +"bNR" = ( +/obj/item/device/taperecorder, +/obj/item/weapon/cartridge/lawyer, +/obj/item/device/radio/intercom{ + pixel_y = -28 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/lawoffice) +"bNS" = ( +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/weapon/pen, +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching Prison Wing holding areas."; + dir = 1; + name = "Prison Monitor"; + network = list("Prison"); + pixel_y = -27 + }, +/obj/machinery/light, +/obj/machinery/camera{ + c_tag = "Law Office"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/lawoffice) +"bNT" = ( +/obj/machinery/power/apc{ + name = "Fore Primary Hallway APC"; + pixel_y = -25 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/lawoffice) +"bNU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/lawoffice) +"bNV" = ( +/obj/machinery/door/airlock{ + name = "Law Office"; + req_access_txt = "38" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/lawoffice) +"bNW" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"bNX" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/main) +"bNY" = ( +/obj/structure/table, +/obj/item/device/flashlight/lamp, +/turf/open/floor/plasteel/black, +/area/security/main) +"bNZ" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/security/main) +"bOa" = ( +/obj/machinery/camera{ + c_tag = "Brig Interrogation"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/security/main) +"bOb" = ( +/obj/machinery/vending/security, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = -30 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/main) +"bOc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/security/main) +"bOd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/sortjunction{ + dir = 4; + sortType = 8 + }, +/turf/open/floor/plasteel, +/area/security/main) +"bOe" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/turf/open/floor/plasteel, +/area/security/main) +"bOf" = ( +/obj/structure/chair, +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/turf/open/floor/plasteel, +/area/security/main) +"bOg" = ( +/obj/structure/chair/office/dark, +/obj/effect/landmark/start{ + name = "Head of Security" + }, +/turf/open/floor/plasteel, +/area/security/main) +"bOh" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/chair, +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/turf/open/floor/plasteel, +/area/security/main) +"bOi" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/turf/open/floor/plasteel, +/area/security/main) +"bOj" = ( +/turf/open/floor/plasteel, +/area/security/main) +"bOk" = ( +/obj/machinery/computer/secure_data, +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = 27 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/main) +"bOl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/security/warden) +"bOm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/security/warden) +"bOn" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/command{ + name = "Captain's Office"; + req_access = null; + req_access_txt = "20" + }, +/turf/open/floor/wood, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bOo" = ( +/turf/open/floor/plasteel/black, +/area/bridge) +"bOp" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + layer = 2.9; + name = "bridge blast door" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/bridge) +"bOq" = ( +/obj/effect/landmark{ + name = "lightsout" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bOr" = ( +/turf/open/floor/plasteel/blue/corner, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bOs" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/blue/side{ + dir = 0 + }, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bOt" = ( +/turf/open/floor/plasteel/blue/corner{ + dir = 8 + }, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bOu" = ( +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bOv" = ( +/obj/machinery/camera{ + c_tag = "Arrivals Lounge North"; + dir = 1 + }, +/turf/open/floor/plasteel/neutral/side, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bOw" = ( +/turf/open/floor/plasteel/neutral/side, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bOx" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/neutral/side, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bOy" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 8 + }, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bOz" = ( +/obj/machinery/computer/cargo, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bOA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bOB" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bOC" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bOD" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bOE" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bOF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/grille, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bOG" = ( +/obj/machinery/door/airlock/glass{ + name = "Bar" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bOH" = ( +/obj/structure/table, +/obj/item/trash/can, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/bar, +/area/maintenance/starboard) +"bOI" = ( +/obj/structure/table, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bOJ" = ( +/obj/structure/table, +/obj/item/trash/plate, +/turf/open/floor/plasteel{ + broken = 1; + dir = 4; + icon_state = "damaged2" + }, +/area/maintenance/starboard) +"bOK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/clothing/glasses/sunglasses, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bOL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/oil{ + icon_state = "floor2" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bOM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/starboard) +"bON" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/stack/cable_coil/cut{ + amount = 1; + icon_state = "coil_red1"; + item_state = "coil_red" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/starboard) +"bOO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bOP" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'RADIOACTIVE AREA'"; + icon_state = "radiation"; + name = "RADIOACTIVE AREA"; + pixel_x = 32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/robot_debris, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bOQ" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) +"bOR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) +"bOS" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) +"bOT" = ( +/obj/machinery/camera{ + c_tag = "Engineering South"; + dir = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) +"bOU" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) +"bOV" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/caution/corner{ + dir = 8 + }, +/area/engine/engineering) +"bOW" = ( +/obj/machinery/door/airlock/external{ + name = "Engineering External Access"; + req_access = null; + req_access_txt = "10;13" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"bOX" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"bOY" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bOZ" = ( +/turf/open/floor/plating/airless/warnplate, +/area/engine/engineering) +"bPa" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bPb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/rods, +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/decal/cleanable/robot_debris{ + icon_state = "gib3" + }, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bPc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/chapel/main) +"bPd" = ( +/turf/closed/wall, +/area/chapel/main) +"bPe" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/chapel/main) +"bPf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"bPg" = ( +/obj/structure/table, +/obj/item/weapon/folder/red, +/obj/item/device/taperecorder, +/turf/open/floor/plasteel/black, +/area/security/main) +"bPh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/security/main) +"bPi" = ( +/obj/machinery/door/airlock/security{ + name = "Interrogation"; + req_access = null; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/black, +/area/security/main) +"bPj" = ( +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/main) +"bPk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/security/main) +"bPl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/security/main) +"bPm" = ( +/obj/effect/landmark{ + name = "blobstart" + }, +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/turf/open/floor/plasteel, +/area/security/main) +"bPn" = ( +/obj/structure/table, +/obj/item/weapon/gun/energy/laser/practice, +/obj/machinery/syndicatebomb/training, +/turf/open/floor/plasteel, +/area/security/main) +"bPo" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/weapon/folder/red, +/obj/item/weapon/pen, +/turf/open/floor/plasteel, +/area/security/main) +"bPp" = ( +/obj/structure/table, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/item/device/radio/off, +/obj/item/weapon/screwdriver{ + pixel_y = 10 + }, +/turf/open/floor/plasteel, +/area/security/main) +"bPq" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/main) +"bPr" = ( +/obj/machinery/computer/security, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/main) +"bPs" = ( +/turf/closed/wall/r_wall, +/area/security/hos) +"bPt" = ( +/obj/machinery/light_switch{ + pixel_x = -25 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Head of Security's Office APC"; + pixel_y = 25 + }, +/turf/open/floor/carpet, +/area/security/hos) +"bPu" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/item/stack/rods, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/starboard) +"bPv" = ( +/obj/item/device/taperecorder, +/obj/item/device/radio/off, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/camera{ + c_tag = "Head of Security's Office" + }, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/structure/table/wood, +/turf/open/floor/carpet, +/area/security/hos) +"bPw" = ( +/obj/machinery/requests_console{ + department = "Cargo Bay"; + departmentType = 2; + pixel_x = -30 + }, +/obj/machinery/camera{ + c_tag = "Quartermaster's Office"; + dir = 4 + }, +/obj/machinery/computer/cargo, +/turf/open/floor/plasteel/brown{ + dir = 8 + }, +/area/quartermaster/qm) +"bPx" = ( +/obj/item/device/radio/intercom{ + dir = 4; + name = "Station Intercom (General)"; + pixel_x = 27 + }, +/obj/machinery/computer/card/minor/hos, +/turf/open/floor/plasteel/black, +/area/security/hos) +"bPy" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-18" + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"bPz" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/darkblue/corner{ + dir = 4 + }, +/area/bridge) +"bPA" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/darkblue/side{ + dir = 1 + }, +/area/bridge) +"bPB" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel/darkblue/corner{ + dir = 1 + }, +/area/bridge) +"bPC" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/fireaxecabinet{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"bPD" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"bPE" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"bPF" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 4; + name = "Bridge APC"; + pixel_x = 27 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plasteel/darkblue/corner{ + dir = 4 + }, +/area/bridge) +"bPG" = ( +/obj/machinery/status_display{ + layer = 4; + pixel_x = -32 + }, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE"; + pixel_y = -32 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/plasteel/black, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bPH" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 10 + }, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bPI" = ( +/turf/open/floor/plasteel/blue/side{ + dir = 0 + }, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bPJ" = ( +/obj/machinery/light, +/obj/structure/sign/securearea{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 0 + }, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bPK" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/blue/side{ + dir = 6 + }, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bPL" = ( +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bPM" = ( +/turf/closed/wall, +/area/security/checkpoint2{ + name = "Customs" + }) +"bPN" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/maintenance{ + name = "Security Maintenance"; + req_access_txt = "1" + }, +/turf/open/floor/plating, +/area/security/checkpoint2{ + name = "Customs" + }) +"bPO" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bPP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bPQ" = ( +/obj/effect/decal/cleanable/cobweb, +/obj/machinery/vending/snack, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/starboard) +"bPR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/bar, +/area/maintenance/starboard) +"bPS" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/bar, +/area/maintenance/starboard) +"bPT" = ( +/obj/effect/decal/cleanable/vomit/old, +/turf/open/floor/plasteel/bar, +/area/maintenance/starboard) +"bPU" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plasteel/bar, +/area/maintenance/starboard) +"bPV" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel{ + burnt = 1; + dir = 4; + icon_state = "floorscorched2" + }, +/area/maintenance/starboard) +"bPW" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/starboard) +"bPX" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/starboard) +"bPY" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/starboard) +"bPZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bQa" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/starboard) +"bQb" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bQc" = ( +/obj/structure/chair, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bQd" = ( +/obj/item/stack/rods, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/starboard) +"bQe" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bQf" = ( +/turf/closed/wall/r_wall, +/area/maintenance/starboard) +"bQg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"bQh" = ( +/obj/machinery/door/airlock/engineering{ + name = "Telecommunications Transit Tube"; + req_access_txt = "61" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/engine/engineering) +"bQi" = ( +/obj/structure/closet/emcloset, +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/engine/engineering) +"bQj" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/power/emitter{ + anchored = 1; + dir = 1; + state = 2 + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bQk" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/grille, +/obj/machinery/light, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bQl" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/item/stack/rods, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bQm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/weapon/stock_parts/manipulator, +/obj/effect/decal/cleanable/generic, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bQn" = ( +/obj/item/device/radio/intercom{ + broadcasting = 1; + frequency = 1480; + name = "Confessional Intercom"; + pixel_x = -25 + }, +/obj/structure/chair, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"bQo" = ( +/obj/machinery/door/morgue{ + name = "Confession Booth" + }, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"bQp" = ( +/turf/open/floor/plasteel/chapel{ + dir = 1 + }, +/area/chapel/main) +"bQq" = ( +/turf/open/floor/plasteel/chapel{ + dir = 4 + }, +/area/chapel/main) +"bQr" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = 24 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/chapel{ + dir = 1 + }, +/area/chapel/main) +"bQs" = ( +/obj/machinery/camera{ + c_tag = "Chapel North" + }, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plasteel/chapel{ + dir = 4 + }, +/area/chapel/main) +"bQt" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel/chapel{ + dir = 1 + }, +/area/chapel/main) +"bQu" = ( +/turf/open/floor/carpet, +/area/chapel/main) +"bQv" = ( +/obj/item/device/radio/intercom{ + dir = 8; + name = "Station Intercom (General)"; + pixel_y = 22 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"bQw" = ( +/obj/structure/window/fulltile, +/obj/structure/grille, +/turf/open/floor/plating, +/area/chapel/main) +"bQx" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/newscaster{ + pixel_x = 28 + }, +/obj/machinery/camera{ + c_tag = "Aft Port Primary Hallway South"; + dir = 8 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"bQy" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/security/main) +"bQz" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/effect/landmark{ + name = "lightsout" + }, +/turf/open/floor/plasteel/black, +/area/security/main) +"bQA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/main) +"bQB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/security/main) +"bQC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/security/main) +"bQD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/table, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/power/apc{ + dir = 8; + name = "Security Office APC"; + pixel_x = -26 + }, +/obj/machinery/recharger, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/main) +"bQE" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/security/main) +"bQF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/security/main) +"bQG" = ( +/obj/structure/table, +/obj/item/weapon/book/manual/wiki/security_space_law, +/turf/open/floor/plasteel, +/area/security/main) +"bQH" = ( +/obj/structure/table, +/obj/item/weapon/restraints/handcuffs, +/obj/item/device/assembly/timer, +/turf/open/floor/plasteel, +/area/security/main) +"bQI" = ( +/obj/structure/table, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/item/weapon/storage/fancy/donut_box, +/turf/open/floor/plasteel, +/area/security/main) +"bQJ" = ( +/obj/structure/filingcabinet, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/main) +"bQK" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/hos) +"bQL" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/carpet, +/area/security/hos) +"bQM" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/carpet, +/area/security/hos) +"bQN" = ( +/obj/item/weapon/folder/red, +/obj/item/weapon/stamp/hos, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/table/wood, +/obj/item/clothing/mask/cigarette/cigar/cohiba, +/turf/open/floor/carpet, +/area/security/hos) +"bQO" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/effect/landmark/start{ + name = "Head of Security" + }, +/turf/open/floor/carpet, +/area/security/hos) +"bQP" = ( +/obj/machinery/computer/secure_data, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Head of Security's Desk"; + departmentType = 5; + name = "Head of Security RC"; + pixel_x = 30 + }, +/turf/open/floor/plasteel/black, +/area/security/hos) +"bQQ" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/secure/briefcase, +/obj/item/weapon/storage/box/ids, +/turf/open/floor/plasteel/black, +/area/bridge) +"bQR" = ( +/turf/open/floor/carpet, +/area/bridge) +"bQS" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/carpet, +/area/bridge) +"bQT" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/starboard) +"bQU" = ( +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-y"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/carpet, +/area/bridge) +"bQV" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/oil{ + icon_state = "floor2" + }, +/obj/item/weapon/crowbar, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bQW" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"bQX" = ( +/turf/closed/wall/r_wall, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"bQY" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters{ + id = "teleporter"; + name = "warehouse shutters" + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"bQZ" = ( +/obj/machinery/newscaster{ + pixel_y = 30 + }, +/obj/item/device/flashlight/lamp/green{ + pixel_x = 1; + pixel_y = 5 + }, +/obj/structure/table/wood, +/turf/open/floor/plasteel/grimy, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bRa" = ( +/obj/structure/chair/comfy/beige, +/obj/machinery/firealarm{ + pixel_y = 27 + }, +/turf/open/floor/plasteel/grimy, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bRb" = ( +/obj/structure/chair/comfy/beige, +/obj/machinery/airalarm{ + frequency = 1439; + pixel_y = 23 + }, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel/grimy, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bRc" = ( +/obj/item/device/flashlight/lamp/green{ + pixel_x = 1; + pixel_y = 5 + }, +/obj/structure/table/wood, +/turf/open/floor/plasteel/grimy, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bRd" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/security/checkpoint2{ + name = "Customs" + }) +"bRe" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plasteel/red/side{ + dir = 9 + }, +/area/security/checkpoint2{ + name = "Customs" + }) +"bRf" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Security Checkpoint APC"; + pixel_y = 25 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/checkpoint2{ + name = "Customs" + }) +"bRg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/security/checkpoint2{ + name = "Customs" + }) +"bRh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/security/checkpoint2{ + name = "Customs" + }) +"bRi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/starboard) +"bRj" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bRk" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel{ + broken = 1; + dir = 4; + icon_state = "damaged3" + }, +/area/maintenance/starboard) +"bRl" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/item/stack/tile/plasteel{ + pixel_x = -7; + pixel_y = -7 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bRm" = ( +/obj/effect/decal/cleanable/generic, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/bar, +/area/maintenance/starboard) +"bRn" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + cell_type = 5000; + name = "Engineering Maintenance APC"; + pixel_y = -24 + }, +/turf/open/floor/plasteel/bar, +/area/maintenance/starboard) +"bRo" = ( +/obj/effect/decal/cleanable/dirt, +/mob/living/carbon/monkey{ + name = "Mr. Deempisi" + }, +/turf/open/floor/plasteel/bar, +/area/maintenance/starboard) +"bRp" = ( +/obj/item/weapon/cigbutt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/landmark{ + name = "xeno_spawn"; + pixel_x = -1 + }, +/turf/open/floor/plasteel/bar, +/area/maintenance/starboard) +"bRq" = ( +/turf/open/floor/plasteel{ + broken = 1; + dir = 4; + icon_state = "damaged4" + }, +/area/maintenance/starboard) +"bRr" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/starboard) +"bRs" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bRt" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/engine/engineering) +"bRu" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"bRv" = ( +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the telecommunications satellite."; + name = "Telecomms Monitor"; + network = list("Tcomms"); + pixel_y = 26 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"bRw" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"bRx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/grille, +/obj/structure/window/reinforced/tinted{ + dir = 1 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bRy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/chapel/office) +"bRz" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/tinted/fulltile, +/turf/open/floor/plating, +/area/chapel/office) +"bRA" = ( +/turf/closed/wall, +/area/chapel/office) +"bRB" = ( +/turf/open/floor/plasteel/chapel{ + dir = 8 + }, +/area/chapel/main) +"bRC" = ( +/turf/open/floor/plasteel/chapel, +/area/chapel/main) +"bRD" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/chapel, +/area/chapel/main) +"bRE" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/chapel{ + dir = 8 + }, +/area/chapel/main) +"bRF" = ( +/turf/open/floor/plasteel/black, +/area/chapel/main) +"bRG" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"bRH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"bRI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/security/main) +"bRJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/security/main) +"bRK" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/security/main) +"bRL" = ( +/obj/structure/table, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/machinery/recharger, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/main) +"bRM" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/main) +"bRN" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/security/main) +"bRO" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/starboard) +"bRP" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"bRQ" = ( +/obj/structure/closet/bombcloset, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"bRR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/starboard) +"bRS" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/starboard) +"bRT" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bRU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bRV" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/carpet, +/area/security/hos) +"bRW" = ( +/mob/living/simple_animal/hostile/retaliate/bat{ + desc = "It's a spider! Run for it!"; + icon_state = "guard"; + name = "Sergeant Araneus" + }, +/turf/open/floor/carpet, +/area/security/hos) +"bRX" = ( +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/weapon/pen, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/table/wood, +/turf/open/floor/carpet, +/area/security/hos) +"bRY" = ( +/turf/open/floor/carpet, +/area/security/hos) +"bRZ" = ( +/obj/machinery/computer/security, +/obj/machinery/newscaster/security_unit{ + pixel_x = 30 + }, +/turf/open/floor/plasteel/black, +/area/security/hos) +"bSa" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/toolbox/emergency, +/turf/open/floor/plasteel/darkblue/corner{ + dir = 8 + }, +/area/bridge) +"bSb" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/bridge) +"bSc" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/table/reinforced, +/obj/item/weapon/book/manual/wiki/security_space_law, +/turf/open/floor/carpet, +/area/bridge) +"bSd" = ( +/obj/structure/table/reinforced, +/obj/item/device/radio/off, +/turf/open/floor/carpet, +/area/bridge) +"bSe" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/toolbox/mechanical, +/turf/open/floor/carpet, +/area/bridge) +"bSf" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/fancy/donut_box, +/turf/open/floor/carpet, +/area/bridge) +"bSg" = ( +/obj/structure/table/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/recharger, +/obj/item/weapon/restraints/handcuffs, +/turf/open/floor/carpet, +/area/bridge) +"bSh" = ( +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/carpet, +/area/bridge) +"bSi" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 + }, +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/black, +/area/bridge) +"bSj" = ( +/obj/machinery/computer/teleporter, +/turf/open/floor/plating, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"bSk" = ( +/obj/machinery/teleport/station, +/obj/machinery/button/door{ + id = "teleporter"; + name = "Warehouse Door Control"; + pixel_x = -1; + pixel_y = 24; + req_access_txt = "31" + }, +/turf/open/floor/plating, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"bSl" = ( +/obj/machinery/teleport/hub, +/turf/open/floor/plating, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"bSm" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/closet/crate, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"bSn" = ( +/obj/structure/closet/crate, +/obj/structure/extinguisher_cabinet{ + pixel_y = 30 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"bSo" = ( +/obj/structure/chair/comfy/beige{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bSp" = ( +/turf/open/floor/carpet, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bSq" = ( +/obj/structure/chair/comfy/beige{ + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bSr" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger{ + pixel_y = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/checkpoint2{ + name = "Customs" + }) +"bSs" = ( +/turf/open/floor/plasteel, +/area/security/checkpoint2{ + name = "Customs" + }) +"bSt" = ( +/obj/machinery/computer/security, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = 30 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/checkpoint2{ + name = "Customs" + }) +"bSu" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/oil{ + icon_state = "floor2" + }, +/obj/item/stack/rods, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bSv" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel/bar, +/area/maintenance/starboard) +"bSw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/bar, +/area/maintenance/starboard) +"bSx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/bar, +/area/maintenance/starboard) +"bSy" = ( +/turf/open/floor/plasteel{ + burnt = 1; + dir = 4; + icon_state = "floorscorched1" + }, +/area/maintenance/starboard) +"bSz" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"bSA" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"bSB" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/maintenance/portsolar) +"bSC" = ( +/turf/closed/wall/r_wall, +/area/maintenance/portsolar) +"bSD" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bSE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bSF" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/spawner/lootdrop/grille_or_trash, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bSG" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/item/stack/rods, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bSH" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bSI" = ( +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bSJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/oil{ + icon_state = "floor6" + }, +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bSK" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/item/device/radio/intercom{ + broadcasting = 1; + frequency = 1480; + name = "Confessional Intercom"; + pixel_x = -27 + }, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"bSL" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/chapel{ + dir = 4 + }, +/area/chapel/main) +"bSM" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel/chapel{ + dir = 1 + }, +/area/chapel/main) +"bSN" = ( +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/chapel/main) +"bSO" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"bSP" = ( +/obj/structure/closet{ + name = "Evidence Closet" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"bSQ" = ( +/obj/structure/closet{ + name = "Evidence Closet" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"bSR" = ( +/obj/structure/closet{ + name = "Evidence Closet" + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Brig Evidence Storage" + }, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"bSS" = ( +/obj/structure/filingcabinet/filingcabinet, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"bST" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"bSU" = ( +/obj/machinery/door/airlock/security{ + name = "Evidence Storage"; + req_access = null; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"bSV" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/main) +"bSW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/main) +"bSX" = ( +/turf/open/floor/plasteel/red/corner, +/area/security/main) +"bSY" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/structure/closet/wardrobe/red, +/turf/open/floor/plasteel/red/side, +/area/security/main) +"bSZ" = ( +/obj/machinery/status_display{ + layer = 4; + pixel_y = -32 + }, +/obj/machinery/camera{ + c_tag = "Brig Office"; + dir = 1 + }, +/obj/structure/closet/secure_closet/security/sec, +/turf/open/floor/plasteel/red/side, +/area/security/main) +"bTa" = ( +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/obj/machinery/light, +/obj/structure/closet/secure_closet/security/sec, +/turf/open/floor/plasteel/red/side, +/area/security/main) +"bTb" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 5; + pixel_y = -32 + }, +/obj/structure/closet/secure_closet/security/sec, +/turf/open/floor/plasteel/red/side, +/area/security/main) +"bTc" = ( +/obj/structure/sign/goldenplaque{ + pixel_y = -32 + }, +/obj/structure/closet/secure_closet/security/sec, +/turf/open/floor/plasteel/red/side, +/area/security/main) +"bTd" = ( +/obj/structure/closet/secure_closet/security/sec, +/turf/open/floor/plasteel/red/side, +/area/security/main) +"bTe" = ( +/obj/structure/closet/secure_closet/security/sec, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/main) +"bTf" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet, +/area/security/hos) +"bTg" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/carpet, +/area/security/hos) +"bTh" = ( +/turf/open/floor/plasteel/black, +/area/security/hos) +"bTi" = ( +/obj/machinery/door/airlock/command{ + name = "Head of Security"; + req_access = null; + req_access_txt = "58" + }, +/turf/open/floor/plasteel/black, +/area/security/hos) +"bTj" = ( +/turf/open/floor/plasteel/darkblue/side{ + dir = 8 + }, +/area/bridge) +"bTk" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/table/reinforced, +/obj/machinery/recharger, +/turf/open/floor/carpet, +/area/bridge) +"bTl" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/gloves/color/yellow, +/turf/open/floor/carpet, +/area/bridge) +"bTm" = ( +/obj/structure/table/reinforced, +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)" + }, +/turf/open/floor/carpet, +/area/bridge) +"bTn" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder/blue, +/turf/open/floor/carpet, +/area/bridge) +"bTo" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/hand_labeler, +/obj/item/device/assembly/timer, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/carpet, +/area/bridge) +"bTp" = ( +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/bridge) +"bTq" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"bTr" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Teleport Access"; + req_access_txt = "17" + }, +/turf/open/floor/plasteel/black, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"bTs" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"bTt" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"bTu" = ( +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"bTv" = ( +/turf/open/floor/plasteel/black, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"bTw" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = 27 + }, +/turf/open/floor/plasteel/black, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"bTx" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 8 + }, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bTy" = ( +/turf/open/floor/plasteel/grimy, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bTz" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/delivery, +/area/security/checkpoint2{ + name = "Customs" + }) +"bTA" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/paper, +/obj/machinery/door/window/brigdoor{ + dir = 8; + icon_state = "rightsecure"; + name = "Arrivals Security Checkpoint"; + pixel_x = -8; + req_access_txt = "1" + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/checkpoint2{ + name = "Customs" + }) +"bTB" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint2{ + name = "Customs" + }) +"bTC" = ( +/obj/machinery/computer/card, +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = 27 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/checkpoint2{ + name = "Customs" + }) +"bTD" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bTE" = ( +/obj/structure/table, +/obj/machinery/microwave{ + pixel_x = -3; + pixel_y = 6 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/starboard) +"bTF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/obj/structure/kitchenspike, +/turf/open/floor/plasteel/cafeteria, +/area/maintenance/starboard) +"bTG" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/structure/kitchenspike, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/starboard) +"bTH" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/plasteel{ + broken = 1; + dir = 4; + icon_state = "damaged1" + }, +/area/maintenance/starboard) +"bTI" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/starboard) +"bTJ" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/plasteel/bar, +/area/maintenance/starboard) +"bTK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/generic, +/turf/open/floor/plasteel/bar, +/area/maintenance/starboard) +"bTL" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/transit_tube{ + icon_state = "D-SE" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"bTM" = ( +/obj/structure/transit_tube{ + icon_state = "E-SW" + }, +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"bTN" = ( +/obj/structure/transit_tube/station{ + dir = 1 + }, +/obj/structure/transit_tube_pod{ + dir = 4 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/engineering) +"bTO" = ( +/obj/structure/transit_tube{ + icon_state = "W-SE" + }, +/obj/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/engineering) +"bTP" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/transit_tube{ + icon_state = "D-SW" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"bTQ" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable, +/turf/open/space, +/area/maintenance/portsolar) +"bTR" = ( +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/maintenance/portsolar) +"bTS" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = -32 + }, +/obj/item/device/radio/intercom{ + dir = 8; + name = "Station Intercom (General)"; + pixel_y = 22 + }, +/turf/open/floor/plating, +/area/maintenance/portsolar) +"bTT" = ( +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plating, +/area/maintenance/portsolar) +"bTU" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/power/smes, +/turf/open/floor/plating, +/area/maintenance/portsolar) +"bTV" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE" + }, +/turf/closed/wall/r_wall, +/area/maintenance/portsolar) +"bTW" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/security/brig) +"bTX" = ( +/obj/item/weapon/shard, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bTY" = ( +/obj/effect/decal/cleanable/oil{ + icon_state = "floor6" + }, +/obj/structure/cable, +/obj/machinery/power/apc{ + name = "Chapel Maintenance APC"; + pixel_y = -25 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bTZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/cable_coil/cut{ + amount = 1; + icon_state = "coil_red1"; + item_state = "coil_red" + }, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bUa" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/chapel/office) +"bUb" = ( +/obj/machinery/door/morgue{ + name = "Confession Booth (Chaplain)"; + req_access_txt = "22" + }, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"bUc" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/book/bible, +/turf/open/floor/plasteel/chapel, +/area/chapel/main) +"bUd" = ( +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/carpet, +/area/chapel/main) +"bUe" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Chapel" + }, +/turf/open/floor/carpet, +/area/chapel/main) +"bUf" = ( +/obj/effect/landmark/start{ + name = "Detective" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"bUg" = ( +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"bUh" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"bUi" = ( +/turf/closed/wall, +/area/security/prison) +"bUj" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/preopen{ + id = "Prison Gate"; + name = "prison blast door" + }, +/obj/machinery/door/airlock/glass_security{ + name = "Prison Wing"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/delivery, +/area/security/prison) +"bUk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/preopen{ + id = "Prison Gate"; + name = "prison blast door" + }, +/obj/machinery/door/airlock/glass_security{ + name = "Prison Wing"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/delivery, +/area/security/prison) +"bUl" = ( +/obj/structure/sign/securearea, +/turf/closed/wall, +/area/security/prison) +"bUm" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/security/hos) +"bUn" = ( +/obj/machinery/recharger{ + pixel_y = 4 + }, +/obj/item/weapon/storage/secure/safe/HoS{ + pixel_x = 8; + pixel_y = -27 + }, +/obj/structure/table/wood, +/turf/open/floor/carpet, +/area/security/hos) +"bUo" = ( +/obj/item/weapon/book/manual/wiki/security_space_law, +/obj/machinery/keycard_auth{ + pixel_y = 25 + }, +/obj/structure/table/wood, +/obj/item/weapon/cartridge/detective, +/turf/open/floor/carpet, +/area/security/hos) +"bUp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/starboard) +"bUq" = ( +/obj/machinery/computer/prisoner, +/obj/machinery/camera{ + c_tag = "Bridge West"; + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/turf/open/floor/plasteel/darkred/side{ + dir = 5 + }, +/area/bridge) +"bUr" = ( +/turf/open/floor/plasteel/darkred/corner{ + dir = 1 + }, +/area/bridge) +"bUs" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/carpet, +/area/bridge) +"bUt" = ( +/obj/structure/chair/comfy/black{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/bridge) +"bUu" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/carpet, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bUv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/carpet, +/area/bridge) +"bUw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/bridge) +"bUx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkbrown/corner{ + dir = 4 + }, +/area/bridge) +"bUy" = ( +/obj/machinery/computer/security/mining, +/obj/machinery/camera{ + c_tag = "Bridge East"; + dir = 8 + }, +/obj/machinery/newscaster{ + pixel_x = 30 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/darkbrown/side{ + dir = 9 + }, +/area/bridge) +"bUz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"bUA" = ( +/obj/machinery/light_switch{ + pixel_x = -24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/table, +/obj/item/device/radio/beacon, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"bUB" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/bluespace_beacon, +/turf/open/floor/plasteel, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"bUC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"bUD" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/shieldwallgen, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"bUE" = ( +/obj/machinery/shieldwallgen, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"bUF" = ( +/obj/item/weapon/reagent_containers/food/snacks/chips, +/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola, +/obj/structure/table/wood, +/turf/open/floor/carpet, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bUG" = ( +/obj/structure/table/wood, +/turf/open/floor/carpet, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bUH" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/checkpoint2{ + name = "Customs" + }) +"bUI" = ( +/obj/machinery/computer/secure_data, +/obj/machinery/requests_console{ + department = "Security"; + departmentType = 5; + pixel_x = 30 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/checkpoint2{ + name = "Customs" + }) +"bUJ" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/stack/sheet/cardboard, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bUK" = ( +/obj/structure/table, +/obj/machinery/microwave{ + pixel_x = -3; + pixel_y = 6 + }, +/turf/open/floor/plasteel{ + broken = 1; + dir = 4; + icon_state = "damaged2" + }, +/area/maintenance/starboard) +"bUL" = ( +/obj/effect/decal/cleanable/egg_smudge{ + icon_state = "smashed_egg2" + }, +/turf/open/floor/plasteel/cafeteria, +/area/maintenance/starboard) +"bUM" = ( +/obj/effect/decal/cleanable/flour, +/turf/open/floor/plasteel/cafeteria, +/area/maintenance/starboard) +"bUN" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/bar, +/area/maintenance/starboard) +"bUO" = ( +/obj/structure/table, +/turf/open/floor/plasteel/bar, +/area/maintenance/starboard) +"bUP" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/glass/rag, +/turf/open/floor/plasteel/bar, +/area/maintenance/starboard) +"bUQ" = ( +/obj/structure/table, +/obj/item/weapon/cigbutt, +/turf/open/floor/plasteel/bar, +/area/maintenance/starboard) +"bUR" = ( +/obj/structure/transit_tube{ + icon_state = "S-NE" + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"bUS" = ( +/obj/structure/transit_tube{ + icon_state = "D-NW" + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating/airless, +/area/space) +"bUT" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/space, +/area/space) +"bUU" = ( +/obj/machinery/power/tracker, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plating/airless, +/area/maintenance/portsolar) +"bUV" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/space, +/area/maintenance/portsolar) +"bUW" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/space, +/area/maintenance/portsolar) +"bUX" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/space, +/area/maintenance/portsolar) +"bUY" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/external{ + name = "Solar Maintenance"; + req_access = null; + req_access_txt = "10; 13" + }, +/turf/open/floor/plating, +/area/maintenance/portsolar) +"bUZ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/portsolar) +"bVa" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/portsolar) +"bVb" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/portsolar) +"bVc" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/portsolar) +"bVd" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/engineering{ + name = "Aft Port Solar Access"; + req_access_txt = "10" + }, +/turf/open/floor/plating, +/area/maintenance/portsolar) +"bVe" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bVf" = ( +/obj/item/device/radio/intercom{ + pixel_y = 25 + }, +/obj/machinery/light_switch{ + pixel_x = -25 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"bVg" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"bVh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"bVi" = ( +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"bVj" = ( +/obj/structure/table/wood, +/turf/open/floor/plasteel/chapel{ + dir = 4 + }, +/area/chapel/main) +"bVk" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/evidence, +/obj/item/weapon/storage/box/evidence, +/obj/item/weapon/storage/box/evidence, +/obj/item/weapon/hand_labeler, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"bVl" = ( +/obj/structure/table, +/obj/item/weapon/storage/secure/briefcase{ + name = "Secure Evidence Briefcase"; + pixel_x = 3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"bVm" = ( +/obj/structure/table, +/obj/item/clothing/suit/straight_jacket, +/obj/item/clothing/glasses/sunglasses/blindfold, +/obj/item/clothing/mask/muzzle, +/obj/item/clothing/ears/earmuffs{ + pixel_x = -3; + pixel_y = -2 + }, +/obj/item/device/radio/intercom{ + dir = 4; + name = "Station Intercom (General)"; + pixel_x = -27 + }, +/obj/item/device/electropack, +/obj/item/device/assembly/signaler, +/turf/open/floor/plasteel/white/side{ + dir = 8 + }, +/area/security/prison) +"bVn" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"bVo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"bVp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 4 + }, +/area/security/prison) +"bVq" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/structure/closet/secure_closet/brig{ + anchored = 1 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/prison) +"bVr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/closet/secure_closet/brig{ + anchored = 1 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/prison) +"bVs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/prison) +"bVt" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/prison) +"bVu" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/structure/closet/secure_closet/injection, +/obj/structure/extinguisher_cabinet{ + pixel_y = 30 + }, +/turf/open/floor/plasteel/black, +/area/security/prison) +"bVv" = ( +/obj/structure/table, +/obj/structure/sign/pods{ + pixel_x = 32 + }, +/obj/item/weapon/storage/box/prisoner, +/turf/open/floor/plasteel/black, +/area/security/prison) +"bVw" = ( +/obj/machinery/door/airlock{ + name = "Private Restroom" + }, +/turf/open/floor/plasteel/freezer, +/area/security/hos) +"bVx" = ( +/turf/closed/wall, +/area/security/hos) +"bVy" = ( +/obj/machinery/computer/security, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/darkred/side{ + dir = 4 + }, +/area/bridge) +"bVz" = ( +/obj/structure/chair{ + dir = 8; + name = "Security Station" + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"bVA" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/item/device/radio/beacon, +/turf/open/floor/plasteel/black, +/area/bridge) +"bVB" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/black, +/area/bridge) +"bVC" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"bVD" = ( +/obj/structure/chair{ + dir = 4; + name = "Logistics Station" + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"bVE" = ( +/obj/machinery/computer/cargo, +/turf/open/floor/plasteel/darkblue/side{ + dir = 4 + }, +/area/crew_quarters/heads) +"bVF" = ( +/obj/item/weapon/hand_tele, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/table, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"bVG" = ( +/obj/structure/chair/stool, +/obj/machinery/power/apc{ + name = "Teleporter APC"; + pixel_y = -25 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"bVH" = ( +/obj/machinery/light, +/obj/structure/closet/crate, +/obj/item/weapon/crowbar, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/camera{ + c_tag = "Teleporter"; + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"bVI" = ( +/obj/structure/table/wood, +/turf/open/floor/plasteel/grimy, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bVJ" = ( +/obj/item/weapon/storage/fancy/cigarettes{ + pixel_y = 2 + }, +/obj/item/weapon/lighter{ + pixel_x = 4; + pixel_y = 2 + }, +/obj/structure/table/wood, +/turf/open/floor/plasteel/grimy, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"bVK" = ( +/obj/machinery/light_switch{ + pixel_x = 6; + pixel_y = -25 + }, +/obj/structure/closet, +/obj/item/weapon/crowbar, +/obj/item/device/assembly/flash/handheld, +/turf/open/floor/plasteel/red/side{ + dir = 10 + }, +/area/security/checkpoint2{ + name = "Customs" + }) +"bVL" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel/red/side, +/area/security/checkpoint2{ + name = "Customs" + }) +"bVM" = ( +/obj/structure/closet/secure_closet/security, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 6 + }, +/area/security/checkpoint2{ + name = "Customs" + }) +"bVN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/security/checkpoint2{ + name = "Customs" + }) +"bVO" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bVP" = ( +/obj/effect/decal/cleanable/flour, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/cafeteria, +/area/maintenance/starboard) +"bVQ" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/cafeteria, +/area/maintenance/starboard) +"bVR" = ( +/turf/open/floor/plasteel{ + broken = 1; + dir = 4; + icon_state = "damaged2" + }, +/area/maintenance/starboard) +"bVS" = ( +/obj/effect/landmark/event_spawn, +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/turf/open/floor/plasteel, +/area/security/main) +"bVT" = ( +/obj/machinery/door/airlock{ + name = "Kitchen"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel{ + broken = 1; + dir = 4; + icon_state = "damaged4" + }, +/area/maintenance/starboard) +"bVU" = ( +/obj/item/stack/tile/plasteel{ + pixel_x = 15; + pixel_y = 16 + }, +/turf/open/floor/plasteel{ + broken = 1; + dir = 4; + icon_state = "damaged2" + }, +/area/maintenance/starboard) +"bVV" = ( +/turf/open/floor/plasteel/bar, +/area/maintenance/starboard) +"bVW" = ( +/turf/open/floor/plasteel{ + broken = 1; + dir = 4; + icon_state = "damaged1" + }, +/area/maintenance/starboard) +"bVX" = ( +/turf/open/floor/plasteel{ + broken = 1; + dir = 4; + icon_state = "damaged3" + }, +/area/maintenance/starboard) +"bVY" = ( +/obj/structure/transit_tube{ + icon_state = "N-S" + }, +/turf/open/space, +/area/space) +"bVZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating/airless, +/area/space) +"bWa" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/turf/open/space, +/area/maintenance/portsolar) +"bWb" = ( +/obj/structure/cable, +/obj/machinery/power/solar_control{ + id = "aftport"; + name = "Aft Port Solar Control" + }, +/turf/open/floor/plating, +/area/maintenance/portsolar) +"bWc" = ( +/obj/item/stack/cable_coil, +/turf/open/floor/plating, +/area/maintenance/portsolar) +"bWd" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "Aft Port Solar APC"; + pixel_x = 23; + pixel_y = 2 + }, +/obj/structure/cable, +/obj/machinery/camera{ + c_tag = "Aft Port Solar Control"; + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/portsolar) +"bWe" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bWf" = ( +/obj/structure/bodycontainer/crematorium, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"bWg" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/button/crematorium{ + pixel_x = 0; + pixel_y = 25 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"bWh" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/item/weapon/shard{ + icon_state = "small" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bWi" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/command{ + name = "Head of Personnel"; + req_access = null; + req_access_txt = "57" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/crew_quarters/heads) +"bWj" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/item/weapon/paper_bin{ + pixel_x = -2; + pixel_y = 5 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/table/wood, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"bWk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/table/wood, +/obj/item/weapon/storage/fancy/candle_box, +/obj/item/weapon/storage/crayons, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"bWl" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"bWm" = ( +/obj/machinery/door/airlock/glass{ + name = "Chapel Office"; + req_access_txt = "22" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"bWn" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/chapel{ + dir = 8 + }, +/area/chapel/main) +"bWo" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/chapel, +/area/chapel/main) +"bWp" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/chapel{ + dir = 8 + }, +/area/chapel/main) +"bWq" = ( +/obj/structure/chair/stool, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/chapel, +/area/chapel/main) +"bWr" = ( +/obj/structure/chair/stool, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/chapel{ + dir = 8 + }, +/area/chapel/main) +"bWs" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/carpet, +/area/chapel/main) +"bWt" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=1-Medbay1"; + location = "0-Escape" + }, +/mob/living/simple_animal/bot/secbot/beepsky{ + desc = "It's Officer Beepsky! Powered by a potato and a shot of whiskey, and with a sturdier reinforced chassis, too. "; + health = 45; + name = "Officer Beepsky" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"bWu" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular, +/obj/item/weapon/reagent_containers/glass/bottle/epinephrine, +/obj/item/weapon/reagent_containers/glass/bottle/charcoal, +/obj/item/weapon/reagent_containers/syringe, +/turf/open/floor/plasteel/white/side{ + dir = 8 + }, +/area/security/prison) +"bWv" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/security/prison) +"bWw" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/button/door{ + id = "permacell1"; + name = "Cell 1 Lockdown"; + pixel_x = -4; + pixel_y = -25; + req_access_txt = "2" + }, +/obj/machinery/button/flasher{ + id = "PCell 1"; + pixel_x = 6; + pixel_y = -24 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/corner, +/area/security/prison) +"bWx" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching Prison Wing holding areas."; + dir = 1; + name = "Prison Monitor"; + network = list("Prison"); + pixel_y = -30 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side, +/area/security/prison) +"bWy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/button/door{ + id = "permacell2"; + name = "Cell 2 Lockdown"; + pixel_x = -4; + pixel_y = -25; + req_access_txt = "2" + }, +/obj/machinery/button/flasher{ + id = "PCell 2"; + pixel_x = 6; + pixel_y = -24 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/corner{ + dir = 8 + }, +/area/security/prison) +"bWz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/prison) +"bWA" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + name = "Prison Wing APC"; + pixel_y = -24 + }, +/turf/open/floor/plasteel/red/corner, +/area/security/prison) +"bWB" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching Prison Wing holding areas."; + dir = 1; + name = "Prison Monitor"; + network = list("Prison"); + pixel_y = -30 + }, +/turf/open/floor/plasteel/red/side, +/area/security/prison) +"bWC" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/button/door{ + id = "permacell3"; + name = "Cell 3 Lockdown"; + pixel_x = -4; + pixel_y = -25; + req_access_txt = "2" + }, +/obj/machinery/button/flasher{ + id = "PCell 3"; + pixel_x = 6; + pixel_y = -24 + }, +/turf/open/floor/plasteel/red/corner{ + dir = 8 + }, +/area/security/prison) +"bWD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"bWE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/security/prison) +"bWF" = ( +/obj/machinery/door/airlock/external{ + name = "Security Escape Pod"; + req_access_txt = "63" + }, +/turf/open/floor/plating, +/area/security/prison) +"bWG" = ( +/turf/open/floor/plating, +/area/security/prison) +"bWH" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/security/prison) +"bWI" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/freezer, +/area/security/hos) +"bWJ" = ( +/obj/structure/toilet{ + dir = 8 + }, +/obj/effect/landmark/start{ + name = "Head of Security" + }, +/turf/open/floor/plasteel/freezer, +/area/security/hos) +"bWK" = ( +/obj/machinery/computer/secure_data, +/turf/open/floor/plasteel/darkred/side{ + dir = 6 + }, +/area/bridge) +"bWL" = ( +/turf/open/floor/plasteel/darkyellow/corner{ + dir = 8 + }, +/area/bridge) +"bWM" = ( +/obj/structure/chair{ + name = "Engineering Station" + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"bWN" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/darkyellow/corner, +/area/bridge) +"bWO" = ( +/turf/open/floor/plasteel/darkblue/corner{ + dir = 8 + }, +/area/bridge) +"bWP" = ( +/turf/open/floor/plasteel/darkblue/corner, +/area/bridge) +"bWQ" = ( +/turf/open/floor/plasteel/darkgreen/corner{ + dir = 8 + }, +/area/bridge) +"bWR" = ( +/obj/structure/chair{ + name = "Crew Station" + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"bWS" = ( +/turf/open/floor/plasteel/darkgreen/corner, +/area/bridge) +"bWT" = ( +/obj/machinery/computer/teleporter, +/turf/open/floor/plasteel/darkbrown/side{ + dir = 10 + }, +/area/bridge) +"bWU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"bWV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/teleporter{ + name = "\improper Teleporter Room" + }) +"bWW" = ( +/obj/machinery/camera{ + c_tag = "Arrivals Lounge West"; + dir = 4 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/blue/corner{ + dir = 1 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"bWX" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"bWY" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plating, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"bWZ" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"bXa" = ( +/obj/machinery/camera{ + c_tag = "Arrivals Lounge East"; + dir = 8 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"bXb" = ( +/obj/machinery/door/airlock/security{ + name = "Security Checkpoint"; + req_access = null; + req_access_txt = "1" + }, +/turf/open/floor/plasteel, +/area/security/checkpoint2{ + name = "Customs" + }) +"bXc" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/weapon/electronics/firealarm, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bXd" = ( +/obj/structure/closet/secure_closet/freezer/fridge{ + locked = 0 + }, +/turf/open/floor/plasteel{ + broken = 1; + dir = 4; + icon_state = "damaged5" + }, +/area/maintenance/starboard) +"bXe" = ( +/obj/structure/closet/secure_closet/freezer/kitchen{ + icon_state = "secure"; + locked = 0; + req_access = null + }, +/turf/open/floor/plasteel{ + burnt = 1; + dir = 4; + icon_state = "floorscorched2" + }, +/area/maintenance/starboard) +"bXf" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/condiment/enzyme, +/obj/item/weapon/reagent_containers/glass/beaker{ + pixel_x = 5 + }, +/turf/open/floor/plasteel/cafeteria, +/area/maintenance/starboard) +"bXg" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder, +/turf/open/floor/plasteel{ + broken = 1; + dir = 4; + icon_state = "damaged1" + }, +/area/maintenance/starboard) +"bXh" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bXi" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/bar, +/area/maintenance/starboard) +"bXj" = ( +/obj/machinery/light/small, +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/drinks/shaker, +/turf/open/floor/plasteel/bar, +/area/maintenance/starboard) +"bXk" = ( +/obj/structure/table, +/obj/item/weapon/book/manual/barman_recipes, +/turf/open/floor/plasteel/bar, +/area/maintenance/starboard) +"bXl" = ( +/obj/machinery/vending/boozeomat{ + req_access_txt = "0" + }, +/turf/open/floor/plasteel{ + broken = 1; + dir = 4; + icon_state = "damaged5" + }, +/area/maintenance/starboard) +"bXm" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/sheet/cardboard, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bXn" = ( +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"bXo" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Chapel Crematorium"; + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"bXp" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Chapel Office"; + dir = 4 + }, +/obj/machinery/requests_console{ + department = "Chapel"; + departmentType = 2; + pixel_x = -32 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"bXq" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/start{ + name = "Chaplain" + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"bXr" = ( +/obj/structure/table, +/obj/item/weapon/book/manual/wiki/engineering_guide, +/obj/item/weapon/book/manual/engineering_particle_accelerator{ + pixel_y = 6 + }, +/obj/item/clothing/mask/gas, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bXs" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"bXt" = ( +/obj/machinery/light_switch{ + pixel_x = -25 + }, +/turf/open/floor/plasteel/chapel{ + dir = 1 + }, +/area/chapel/main) +"bXu" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/chapel{ + dir = 1 + }, +/area/chapel/main) +"bXv" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel/chapel{ + dir = 4 + }, +/area/chapel/main) +"bXw" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/chapel{ + dir = 1 + }, +/area/chapel/main) +"bXx" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/carpet, +/area/chapel/main) +"bXy" = ( +/turf/closed/wall, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"bXz" = ( +/turf/closed/wall/r_wall, +/area/security/prison) +"bXA" = ( +/obj/item/toy/beach_ball/holoball, +/turf/open/floor/plating, +/area/security/prison) +"bXB" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock/glass_security{ + name = "Long-Term Cell 1"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bXC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/security/prison) +"bXD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/security/prison) +"bXE" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Long-Term Cell 2"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bXF" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Long-Term Cell 3"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bXG" = ( +/obj/machinery/camera{ + c_tag = "Security Escape Pod"; + dir = 4 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/security/prison) +"bXH" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + layer = 2.9; + name = "bridge blast door" + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plating, +/area/bridge) +"bXI" = ( +/obj/machinery/computer/atmos_alert, +/turf/open/floor/plasteel/darkyellow/side{ + dir = 5 + }, +/area/bridge) +"bXJ" = ( +/obj/machinery/computer/station_alert, +/turf/open/floor/plasteel/darkyellow/side{ + dir = 1 + }, +/area/bridge) +"bXK" = ( +/obj/machinery/computer/monitor, +/obj/machinery/light, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/cable, +/turf/open/floor/plasteel/darkyellow/side{ + dir = 9 + }, +/area/bridge) +"bXL" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/wrench, +/obj/item/device/assembly/timer, +/obj/item/device/assembly/signaler, +/obj/item/device/assembly/signaler, +/turf/open/floor/plasteel/darkblue/side{ + dir = 8 + }, +/area/bridge) +"bXM" = ( +/obj/structure/chair{ + name = "Command Station" + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"bXN" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/plasteel/darkblue/side{ + dir = 4 + }, +/area/bridge) +"bXO" = ( +/obj/machinery/computer/card, +/obj/machinery/light, +/turf/open/floor/plasteel/darkgreen/side{ + dir = 9 + }, +/area/bridge) +"bXP" = ( +/obj/machinery/computer/crew, +/turf/open/floor/plasteel/darkgreen/side{ + dir = 1 + }, +/area/bridge) +"bXQ" = ( +/obj/machinery/computer/med_data, +/turf/open/floor/plasteel/darkgreen/side{ + dir = 5 + }, +/area/bridge) +"bXR" = ( +/turf/closed/wall/r_wall, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"bXS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/arrival{ + dir = 9 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"bXT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/arrival{ + dir = 1 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"bXU" = ( +/turf/open/floor/plasteel/arrival{ + dir = 1 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"bXV" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = 27 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/arrival{ + dir = 1 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"bXW" = ( +/obj/machinery/status_display{ + layer = 4; + pixel_y = 32 + }, +/turf/open/floor/plasteel/arrival{ + dir = 1 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"bXX" = ( +/turf/open/floor/plasteel, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"bXY" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"bXZ" = ( +/turf/open/floor/plasteel/arrival{ + dir = 5 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"bYa" = ( +/obj/item/weapon/shard, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/starboard) +"bYb" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/starboard) +"bYc" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/closed/wall, +/area/maintenance/starboard) +"bYd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/closed/wall, +/area/maintenance/starboard) +"bYe" = ( +/obj/structure/bodycontainer/morgue, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"bYf" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"bYg" = ( +/obj/structure/closet/wardrobe/chaplain_black, +/obj/item/device/radio/intercom{ + pixel_x = -27 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"bYh" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"bYi" = ( +/obj/item/device/flashlight/lamp{ + pixel_y = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/structure/table/wood, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"bYj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/power/apc{ + dir = 4; + name = "Chapel Office APC"; + pixel_x = 27 + }, +/obj/structure/cable, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"bYk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/chapel/office) +"bYl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/chapel{ + dir = 8 + }, +/area/chapel/main) +"bYm" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/chapel, +/area/medical/virology) +"bYn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/power/apc{ + name = "Chapel APC"; + pixel_y = -24 + }, +/obj/structure/cable, +/obj/machinery/light, +/turf/open/floor/plasteel/chapel{ + dir = 8 + }, +/area/chapel/main) +"bYo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/chapel, +/area/chapel/main) +"bYp" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/chapel{ + dir = 8 + }, +/area/chapel/main) +"bYq" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"bYr" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/machinery/flasher{ + id = "PCell 1"; + pixel_x = -28 + }, +/obj/structure/table, +/obj/item/weapon/pen, +/obj/item/weapon/paper, +/turf/open/floor/plating, +/area/security/prison) +"bYs" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bYt" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/obj/machinery/camera{ + c_tag = "Prison Cell 1"; + network = list("SS13","Prison") + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bYu" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/machinery/flasher{ + id = "PCell 2"; + pixel_x = -28 + }, +/obj/structure/table, +/obj/item/weapon/pen, +/obj/item/weapon/paper, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bYv" = ( +/turf/open/floor/plasteel, +/area/security/prison) +"bYw" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/obj/machinery/camera{ + c_tag = "Prison Cell 2"; + network = list("SS13","Prison") + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bYx" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/machinery/flasher{ + id = "PCell 3"; + pixel_x = -28 + }, +/obj/structure/table, +/obj/item/weapon/pen, +/obj/item/weapon/paper, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bYy" = ( +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bYz" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/obj/machinery/camera{ + c_tag = "Prison Cell 3"; + network = list("SS13","Prison") + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bYA" = ( +/obj/machinery/door/airlock/external{ + name = "Security External Airlock"; + req_access_txt = "63; 13" + }, +/turf/open/floor/plating, +/area/security/prison) +"bYB" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + layer = 2.9; + name = "bridge blast door" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/bridge) +"bYC" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + layer = 2.9; + name = "bridge blast door" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/status_display{ + layer = 4 + }, +/turf/open/floor/plating, +/area/bridge) +"bYD" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + layer = 2.9; + name = "bridge blast door" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/bridge) +"bYE" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + layer = 2.9; + name = "bridge blast door" + }, +/obj/structure/cable, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plating, +/area/bridge) +"bYF" = ( +/obj/structure/table/reinforced, +/obj/item/device/aicard, +/obj/item/device/multitool, +/turf/open/floor/plasteel/darkblue/side{ + dir = 9 + }, +/area/bridge) +"bYG" = ( +/obj/machinery/computer/communications, +/turf/open/floor/plasteel/darkblue/side{ + dir = 1 + }, +/area/bridge) +"bYH" = ( +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "bridge blast"; + name = "Bridge Blast Door Control"; + pixel_x = 0; + pixel_y = -2; + req_access_txt = "19" + }, +/obj/machinery/keycard_auth{ + pixel_y = 8 + }, +/turf/open/floor/plasteel/darkblue/side{ + dir = 5 + }, +/area/bridge) +"bYI" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + layer = 2.9; + name = "bridge blast door" + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plating, +/area/bridge) +"bYJ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + layer = 2.9; + name = "bridge blast door" + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plating, +/area/bridge) +"bYK" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + layer = 2.9; + name = "bridge blast door" + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/status_display{ + layer = 4 + }, +/turf/open/floor/plating, +/area/bridge) +"bYL" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + layer = 2.9; + name = "bridge blast door" + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/bridge) +"bYM" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/arrival{ + dir = 8 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"bYN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"bYO" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"bYP" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"bYQ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/darkblue/side{ + dir = 4 + }, +/area/bridge) +"bYR" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"bYS" = ( +/obj/item/stack/sheet/cardboard, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bYT" = ( +/obj/structure/table/reinforced, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/weapon/folder/red, +/obj/machinery/door/window/southleft{ + base_state = "right"; + dir = 8; + icon_state = "right"; + name = "Reception Desk"; + req_access_txt = "63" + }, +/obj/machinery/door/window/brigdoor{ + dir = 4; + name = "Armory Desk"; + req_access_txt = "3" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"bYU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"bYV" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Warden" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"bYW" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bYX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/decal/cleanable/ash, +/obj/item/weapon/screwdriver, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bYY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/oil{ + icon_state = "floor2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bYZ" = ( +/obj/item/stack/rods, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bZa" = ( +/obj/item/weapon/stock_parts/capacitor, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/starboard) +"bZb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/decal/cleanable/robot_debris, +/turf/open/floor/plating, +/area/maintenance/starboard) +"bZc" = ( +/obj/structure/transit_tube{ + icon_state = "N-S-Pass" + }, +/turf/open/space, +/area/space) +"bZd" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/maintenance{ + name = "Crematorium Maintenance"; + req_access_txt = "27" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/chapel/office) +"bZe" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/chapel/office) +"bZf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/chapel{ + dir = 4 + }, +/area/chapel/main) +"bZg" = ( +/turf/closed/wall, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"bZh" = ( +/obj/structure/window/fulltile, +/obj/structure/grille, +/turf/open/floor/plating, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"bZi" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Chapel" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/black, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"bZj" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Chapel" + }, +/turf/open/floor/plasteel/black, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"bZk" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/glass{ + name = "Departure Lounge" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"bZl" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Departure Lounge" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"bZm" = ( +/obj/structure/toilet{ + pixel_y = 8 + }, +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/security/prison) +"bZn" = ( +/obj/structure/chair/stool, +/obj/item/device/radio/intercom{ + desc = "Talk through this. It looks like it has been modified to not broadcast."; + name = "Prison Intercom (General)"; + pixel_y = -28; + prison_radio = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bZo" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bZp" = ( +/obj/machinery/button/door{ + id = "permabolt1"; + name = "Cell Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 0; + pixel_y = -25; + req_access_txt = "0"; + specialfunctions = 4 + }, +/obj/structure/bed, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bZq" = ( +/obj/structure/bed, +/obj/machinery/button/door{ + id = "permabolt2"; + name = "Cell Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 0; + pixel_y = -25; + req_access_txt = "0"; + specialfunctions = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bZr" = ( +/obj/structure/chair/stool, +/obj/item/device/radio/intercom{ + desc = "Talk through this. It looks like it has been modified to not broadcast."; + name = "Prison Intercom (General)"; + pixel_y = -28; + prison_radio = 1 + }, +/turf/open/floor/plating, +/area/security/prison) +"bZs" = ( +/obj/structure/bed, +/obj/machinery/button/door{ + id = "permabolt3"; + name = "Cell Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 0; + pixel_y = -25; + req_access_txt = "0"; + specialfunctions = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"bZt" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 32 + }, +/turf/open/floor/plating, +/area/security/prison) +"bZu" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + layer = 2.9; + name = "bridge blast door" + }, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plating, +/area/bridge) +"bZv" = ( +/turf/closed/wall, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"bZw" = ( +/turf/open/floor/plasteel/warning/corner, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"bZx" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/warning, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"bZy" = ( +/obj/machinery/light, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/warning, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"bZz" = ( +/turf/open/floor/plasteel/warning, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"bZA" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/black, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"bZB" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel/black, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"bZC" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"bZD" = ( +/obj/machinery/vending/cola, +/turf/open/floor/plasteel/black, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"bZE" = ( +/obj/machinery/vending/snack, +/turf/open/floor/plasteel/black, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"bZF" = ( +/obj/machinery/light, +/obj/structure/cable, +/obj/machinery/power/apc{ + name = "Entry Hall APC"; + pixel_y = -25 + }, +/turf/open/floor/plasteel/warning, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"bZG" = ( +/turf/open/floor/plasteel/warning/corner{ + dir = 1 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"bZH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/arrival{ + dir = 4 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"bZI" = ( +/obj/structure/sign/securearea, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/gateway) +"bZJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/gateway) +"bZK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/gateway) +"bZL" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/gateway) +"bZM" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/maintenance{ + name = "Gateway Maintenance"; + req_access_txt = "62" + }, +/turf/open/floor/plating, +/area/gateway) +"bZN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/gateway) +"bZO" = ( +/turf/closed/wall/r_wall, +/area/gateway) +"bZP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/gateway) +"bZQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg1" + }, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bZR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"bZS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bZT" = ( +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"bZU" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Chapel Maintenance"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/chapel/main) +"bZV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/chapel, +/area/chapel/main) +"bZW" = ( +/obj/machinery/computer/arcade, +/turf/open/floor/plasteel/escape{ + dir = 9 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"bZX" = ( +/obj/machinery/vending/cola, +/turf/open/floor/plasteel/escape{ + dir = 1 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"bZY" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/escape{ + dir = 1 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"bZZ" = ( +/turf/open/floor/plasteel/escape{ + dir = 1 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"caa" = ( +/obj/machinery/camera{ + c_tag = "Escape North"; + dir = 2 + }, +/turf/open/floor/plasteel/escape{ + dir = 1 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"cab" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"cac" = ( +/turf/open/floor/plasteel, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"cad" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-02" + }, +/turf/open/floor/plasteel/escape{ + dir = 5 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"cae" = ( +/obj/machinery/door/airlock{ + name = "Unisex Restroom"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/freezer, +/area/security/prison) +"caf" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/poddoor/preopen{ + id = "permacell1"; + name = "cell blast door" + }, +/obj/machinery/door/airlock/glass{ + id_tag = "permabolt1"; + name = "Cell 1" + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"cag" = ( +/obj/machinery/door/poddoor/preopen{ + id = "permacell2"; + name = "cell blast door" + }, +/obj/machinery/door/airlock/glass{ + id_tag = "permabolt2"; + name = "Cell 2" + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"cah" = ( +/obj/machinery/door/poddoor/preopen{ + id = "permacell3"; + name = "cell blast door" + }, +/obj/machinery/door/airlock/glass{ + id_tag = "permabolt3"; + name = "Cell 3" + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"cai" = ( +/obj/structure/shuttle/engine/propulsion/burst{ + dir = 1 + }, +/turf/closed/wall/mineral/titanium, +/area/shuttle/pod_3) +"caj" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Escape Pod Airlock" + }, +/obj/docking_port/mobile/pod{ + dir = 2; + id = "pod3"; + name = "escape pod 3" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_3) +"cak" = ( +/turf/open/floor/plating, +/obj/structure/shuttle/engine/propulsion/burst{ + dir = 1 + }, +/turf/closed/wall/shuttle{ + icon_state = "swall_f10"; + dir = 2 + }, +/area/shuttle/pod_3) +"cal" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = 27 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"cam" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"can" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = -27 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"cao" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/arrival{ + dir = 4 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"cap" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_command{ + glass = 0; + name = "Gateway"; + opacity = 1; + req_access_txt = "62" + }, +/turf/open/floor/plasteel, +/area/gateway) +"caq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light_switch{ + pixel_y = 27 + }, +/turf/open/floor/plasteel, +/area/gateway) +"car" = ( +/obj/structure/closet/l3closet/scientist, +/obj/machinery/power/apc{ + dir = 1; + name = "Gateway APC"; + pixel_y = 25 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/gateway) +"cas" = ( +/obj/structure/sign/biohazard{ + pixel_y = 32 + }, +/obj/structure/closet/secure_closet/exile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/camera{ + c_tag = "Gateway" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/gateway) +"cat" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/hallway/primary/port{ + name = "Aft Port Primary Hallway" + }) +"cau" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/gateway) +"cav" = ( +/turf/open/floor/plasteel/black, +/area/gateway) +"caw" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black, +/area/gateway) +"cax" = ( +/obj/effect/decal/cleanable/oil{ + icon_state = "floor2" + }, +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"cay" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/item/clothing/under/burial, +/obj/item/clothing/under/burial, +/obj/item/clothing/under/burial, +/obj/item/clothing/under/burial, +/obj/item/clothing/under/burial, +/obj/item/clothing/under/burial, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"caz" = ( +/turf/open/floor/plating{ + burnt = 1; + icon_state = "panelscorched" + }, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"caA" = ( +/obj/item/stack/rods, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"caB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/weapon/shard{ + icon_state = "small" + }, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"caC" = ( +/obj/effect/decal/cleanable/robot_debris, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"caD" = ( +/obj/machinery/light, +/obj/machinery/button/massdriver{ + id = "chapelgun"; + name = "Chapel Mass Driver"; + pixel_x = 0; + pixel_y = -25 + }, +/obj/machinery/camera{ + c_tag = "Chapel South"; + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"caE" = ( +/obj/machinery/newscaster{ + pixel_x = -28 + }, +/obj/structure/chair/stool, +/turf/open/floor/plasteel/escape{ + dir = 8 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"caF" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"caG" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"caH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"caI" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "Escape APC"; + pixel_x = 25 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plasteel/escape{ + dir = 4 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"caJ" = ( +/obj/machinery/shower{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/security/prison) +"caK" = ( +/obj/machinery/door/window/westleft{ + base_state = "right"; + dir = 4; + icon_state = "right"; + name = "Unisex Showers"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/freezer, +/area/security/prison) +"caL" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"caM" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"caN" = ( +/obj/machinery/vending/cola, +/turf/open/floor/plating, +/area/security/prison) +"caO" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/pod_3) +"caP" = ( +/obj/structure/chair, +/obj/item/device/radio/intercom{ + pixel_x = 27 + }, +/obj/item/weapon/storage/pod{ + pixel_x = -26 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_3) +"caQ" = ( +/obj/structure/sign/securearea{ + pixel_y = 32 + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/space) +"caR" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/arrival{ + dir = 8 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"caS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/corner, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"caT" = ( +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"caU" = ( +/turf/closed/wall/mineral/titanium/overspace, +/area/shuttle/arrival) +"caV" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_r"; + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/shuttle/arrival) +"caW" = ( +/obj/structure/shuttle/engine/propulsion{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/shuttle/arrival) +"caX" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_l"; + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/shuttle/arrival) +"caY" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s10"; + dir = 2 + }, +/area/shuttle/arrival) +"caZ" = ( +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"cba" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/corner{ + dir = 1 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"cbb" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/arrival{ + dir = 4 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"cbc" = ( +/obj/machinery/button/door{ + id = "stationawaygate"; + name = "Gateway Access Shutter Control"; + pixel_x = -25; + pixel_y = 0; + req_access_txt = "31" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/gateway) +"cbd" = ( +/turf/open/floor/plasteel, +/area/gateway) +"cbe" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/gateway) +"cbf" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/gateway) +"cbg" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/gateway) +"cbh" = ( +/obj/machinery/gateway{ + dir = 9 + }, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/gateway) +"cbi" = ( +/obj/machinery/gateway{ + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/gateway) +"cbj" = ( +/obj/machinery/gateway{ + dir = 5 + }, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/gateway) +"cbk" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable, +/turf/open/space, +/area/maintenance/portsolar) +"cbl" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/closet/coffin, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"cbm" = ( +/obj/structure/closet/coffin, +/obj/machinery/door/window/eastleft{ + dir = 1; + name = "Coffin Storage"; + req_access_txt = "22" + }, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"cbn" = ( +/obj/machinery/mass_driver{ + id = "chapelgun" + }, +/obj/machinery/door/window{ + dir = 1; + name = "Mass Driver"; + req_access_txt = "22" + }, +/obj/item/device/gps, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/chapel/main) +"cbo" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/chapel{ + dir = 8 + }, +/area/chapel/main) +"cbp" = ( +/obj/structure/chair, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/chapel, +/area/chapel/main) +"cbq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"cbr" = ( +/obj/machinery/status_display{ + layer = 4; + pixel_x = -32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/escape{ + dir = 8 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"cbs" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"cbt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"cbu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"cbv" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"cbw" = ( +/obj/machinery/status_display{ + layer = 4; + pixel_x = 32 + }, +/turf/open/floor/plasteel/escape{ + dir = 4 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"cbx" = ( +/obj/machinery/shower{ + dir = 4 + }, +/obj/item/weapon/soap/nanotrasen, +/obj/item/weapon/bikehorn/rubberducky, +/turf/open/floor/plasteel/freezer, +/area/security/prison) +"cby" = ( +/obj/structure/window/reinforced/tinted{ + dir = 4 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/freezer, +/area/security/prison) +"cbz" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"cbA" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plating, +/area/security/prison) +"cbB" = ( +/obj/structure/chair/comfy/brown{ + dir = 1; + name = "command chair" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/carpet, +/area/bridge) +"cbC" = ( +/obj/machinery/vending/sustenance, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"cbD" = ( +/obj/structure/chair, +/obj/machinery/status_display{ + layer = 4; + pixel_x = 32 + }, +/obj/machinery/computer/shuttle/pod{ + pixel_x = -32; + pixel_y = 0; + possible_destinations = "pod_asteroid3"; + shuttleId = "pod3" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_3) +"cbE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/arrival{ + dir = 8 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"cbF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"cbG" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK" + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"cbH" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/arrival) +"cbI" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall8"; + dir = 2 + }, +/area/shuttle/arrival) +"cbJ" = ( +/obj/structure/window/reinforced, +/obj/structure/shuttle/engine/heater{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/shuttle/arrival) +"cbK" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall4"; + dir = 2 + }, +/area/shuttle/arrival) +"cbL" = ( +/turf/closed/wall/shuttle{ + icon_state = "swallc4"; + dir = 2 + }, +/area/shuttle/arrival) +"cbM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"cbN" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters{ + id = "stationawaygate"; + name = "Gateway Access Shutters" + }, +/turf/open/floor/plasteel/delivery, +/area/gateway) +"cbO" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel, +/area/gateway) +"cbP" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/gateway) +"cbQ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/gateway) +"cbR" = ( +/obj/machinery/door/window{ + dir = 8; + name = "Gateway Chamber"; + req_access_txt = "62" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/black, +/area/gateway) +"cbS" = ( +/obj/machinery/gateway{ + dir = 8 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/gateway) +"cbT" = ( +/obj/machinery/gateway/centerstation, +/turf/open/floor/plasteel/black, +/area/gateway) +"cbU" = ( +/obj/machinery/gateway{ + dir = 4 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/gateway) +"cbV" = ( +/obj/structure/closet/coffin, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"cbW" = ( +/obj/structure/closet/coffin, +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"cbX" = ( +/turf/open/floor/plating/warnplate, +/area/chapel/main) +"cbY" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/chapel/main) +"cbZ" = ( +/obj/structure/table/glass, +/obj/item/weapon/reagent_containers/food/snacks/grown/harebell, +/obj/item/weapon/reagent_containers/food/snacks/grown/harebell, +/obj/item/weapon/reagent_containers/food/snacks/grown/harebell, +/obj/item/weapon/reagent_containers/food/snacks/grown/harebell, +/obj/item/weapon/reagent_containers/food/snacks/grown/harebell, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"cca" = ( +/obj/structure/table/glass, +/obj/item/weapon/reagent_containers/food/snacks/grown/poppy, +/obj/item/weapon/reagent_containers/food/snacks/grown/poppy, +/obj/item/weapon/reagent_containers/food/snacks/grown/poppy, +/obj/item/weapon/reagent_containers/food/snacks/grown/poppy, +/obj/item/weapon/reagent_containers/food/snacks/grown/poppy, +/turf/open/floor/plasteel/black, +/area/chapel/main) +"ccb" = ( +/obj/item/device/radio/intercom{ + dir = 8; + name = "Station Intercom (General)"; + pixel_x = -28 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/escape{ + dir = 8 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"ccc" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/escape{ + dir = 4 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"ccd" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/washing_machine, +/turf/open/floor/plasteel/barber, +/area/security/prison) +"cce" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plasteel/barber, +/area/security/prison) +"ccf" = ( +/obj/structure/table, +/obj/item/device/plant_analyzer, +/turf/open/floor/plasteel, +/area/security/prison) +"ccg" = ( +/obj/structure/table, +/obj/item/toy/cards/deck, +/turf/open/floor/plating, +/area/security/prison) +"cch" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"cci" = ( +/obj/item/seeds/ambrosia, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"ccj" = ( +/obj/machinery/computer/arcade, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"cck" = ( +/turf/closed/wall/mineral/titanium/overspace, +/area/shuttle/pod_3) +"ccl" = ( +/obj/structure/window/shuttle, +/obj/structure/grille, +/turf/open/floor/plating, +/area/shuttle/pod_3) +"ccm" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s9"; + dir = 2 + }, +/area/shuttle/pod_3) +"ccn" = ( +/obj/machinery/door/airlock/external{ + name = "Arrivals Docking Bay 1" + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"cco" = ( +/turf/open/floor/plating, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"ccp" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Arrivals Shuttle Airlock" + }, +/turf/open/floor/plating, +/area/shuttle/arrival) +"ccq" = ( +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"ccr" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel, +/area/gateway) +"ccs" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black, +/area/gateway) +"cct" = ( +/obj/machinery/gateway{ + dir = 10 + }, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/gateway) +"ccu" = ( +/obj/machinery/gateway, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/gateway) +"ccv" = ( +/obj/machinery/gateway{ + dir = 6 + }, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/gateway) +"ccw" = ( +/obj/machinery/door/poddoor{ + id = "chapelgun"; + name = "Chapel Launcher Door" + }, +/turf/open/floor/plating, +/area/chapel/main) +"ccx" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/escape{ + dir = 8 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"ccy" = ( +/turf/open/floor/plasteel{ + icon_state = "L1" + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"ccz" = ( +/turf/open/floor/plasteel{ + icon_state = "L3" + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"ccA" = ( +/turf/open/floor/plasteel{ + icon_state = "L5" + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"ccB" = ( +/turf/open/floor/plasteel{ + icon_state = "L7" + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"ccC" = ( +/turf/open/floor/plasteel{ + icon_state = "L9" + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"ccD" = ( +/turf/open/floor/plasteel{ + icon_state = "L11" + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"ccE" = ( +/turf/open/floor/plasteel{ + icon_state = "L13" + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"ccF" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/escape{ + dir = 4 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"ccG" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"ccH" = ( +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"ccI" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/red/side{ + dir = 5 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"ccJ" = ( +/obj/structure/table, +/obj/structure/bedsheetbin, +/turf/open/floor/plasteel/barber, +/area/security/prison) +"ccK" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/barber, +/area/security/prison) +"ccL" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/weapon/pen, +/mob/living/simple_animal/pet/cat{ + desc = "Security's infamous cat. Probably insane."; + name = "Jerry" + }, +/turf/open/floor/plasteel, +/area/security/prison) +"ccM" = ( +/obj/structure/table, +/obj/item/weapon/storage/pill_bottle/dice, +/turf/open/floor/plating, +/area/security/prison) +"ccN" = ( +/obj/structure/table, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"ccO" = ( +/obj/docking_port/stationary/random{ + dir = 2; + id = "pod_asteroid3"; + name = "asteroid" + }, +/turf/open/space, +/area/space) +"ccP" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/arrival{ + dir = 8 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"ccQ" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall2"; + dir = 2 + }, +/area/shuttle/arrival) +"ccR" = ( +/obj/structure/chair, +/obj/effect/landmark{ + name = "JoinLate" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"ccS" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/arrival{ + dir = 4 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"ccT" = ( +/obj/item/weapon/paper/pamphlet, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/structure/table, +/turf/open/floor/plasteel, +/area/gateway) +"ccU" = ( +/obj/machinery/recharger, +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -28 + }, +/obj/structure/table, +/turf/open/floor/plasteel, +/area/gateway) +"ccV" = ( +/obj/structure/sign/biohazard{ + pixel_y = -32 + }, +/obj/item/weapon/storage/firstaid/regular, +/obj/structure/table, +/turf/open/floor/plasteel, +/area/gateway) +"ccW" = ( +/obj/item/device/radio/off{ + pixel_y = 6 + }, +/obj/item/device/radio/off{ + pixel_x = 6; + pixel_y = 4 + }, +/obj/item/device/radio/off{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/device/radio/off, +/obj/structure/table, +/turf/open/floor/plasteel, +/area/gateway) +"ccX" = ( +/obj/machinery/light, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/black, +/area/gateway) +"ccY" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/black, +/area/gateway) +"ccZ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/black, +/area/gateway) +"cda" = ( +/turf/open/floor/plasteel{ + icon_state = "L2" + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"cdb" = ( +/turf/open/floor/plasteel{ + icon_state = "L4" + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"cdc" = ( +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel{ + icon_state = "L6" + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"cdd" = ( +/turf/open/floor/plasteel{ + icon_state = "L8" + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"cde" = ( +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plasteel{ + icon_state = "L10" + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"cdf" = ( +/turf/open/floor/plasteel{ + icon_state = "L12" + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"cdg" = ( +/turf/open/floor/plasteel{ + icon_state = "L14" + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"cdh" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/item/device/radio/intercom{ + dir = 2; + name = "Station Intercom (General)"; + pixel_x = 28 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"cdi" = ( +/obj/machinery/washing_machine, +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/barber, +/area/security/prison) +"cdj" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/barber, +/area/security/prison) +"cdk" = ( +/obj/structure/bookcase, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"cdl" = ( +/turf/open/floor/plasteel/arrival{ + dir = 8 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"cdm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/corner{ + dir = 8 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"cdn" = ( +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"cdo" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"cdp" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall1"; + dir = 2 + }, +/area/shuttle/arrival) +"cdq" = ( +/obj/structure/closet/wardrobe/grey, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"cdr" = ( +/obj/machinery/requests_console{ + department = "Arrival shuttle"; + pixel_x = 30 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"cds" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"cdt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/corner{ + dir = 4 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"cdu" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plasteel/arrival{ + dir = 4 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"cdv" = ( +/obj/structure/transit_tube{ + icon_state = "N-SE" + }, +/obj/structure/window/reinforced, +/turf/open/space, +/area/space) +"cdw" = ( +/obj/structure/transit_tube{ + icon_state = "D-SW" + }, +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating/airless, +/area/space) +"cdx" = ( +/obj/structure/window/reinforced, +/turf/open/space, +/area/space) +"cdy" = ( +/obj/structure/transit_tube{ + icon_state = "D-SE" + }, +/obj/structure/window/reinforced, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"cdz" = ( +/obj/structure/transit_tube{ + icon_state = "N-SW" + }, +/obj/structure/window/reinforced, +/turf/open/space, +/area/space) +"cdA" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"cdB" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Holding Area"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"cdC" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"cdD" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"cdE" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"cdF" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/hydroponics/soil, +/turf/open/floor/grass, +/area/security/prison) +"cdG" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/hydroponics/soil, +/obj/item/seeds/grass, +/turf/open/floor/grass, +/area/security/prison) +"cdH" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"cdI" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/hydroponics/soil, +/obj/item/weapon/cultivator, +/turf/open/floor/grass, +/area/security/prison) +"cdJ" = ( +/obj/structure/sign/securearea{ + pixel_y = 32 + }, +/turf/closed/wall/r_wall, +/area/security/prison) +"cdK" = ( +/obj/machinery/camera{ + c_tag = "Arrivals Bay 1 West"; + dir = 8 + }, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"cdL" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/arrival) +"cdM" = ( +/obj/structure/closet/wardrobe/mixed, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"cdN" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"cdO" = ( +/obj/machinery/camera{ + c_tag = "Arrivals Bay 2" + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = 22 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"cdP" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"cdQ" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"cdR" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/transit_tube{ + icon_state = "D-NE" + }, +/turf/open/floor/plating, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"cdS" = ( +/obj/structure/transit_tube{ + icon_state = "E-NW" + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"cdT" = ( +/obj/structure/transit_tube/station, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"cdU" = ( +/obj/structure/transit_tube{ + icon_state = "W-NE" + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"cdV" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/transit_tube{ + icon_state = "D-NW" + }, +/turf/open/floor/plating, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"cdW" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"cdX" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"cdY" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/turf/open/floor/plating, +/area/security/prison) +"cdZ" = ( +/obj/item/weapon/reagent_containers/glass/bucket, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"cea" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"ceb" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"cec" = ( +/obj/item/weapon/cultivator, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"ced" = ( +/obj/item/seeds/potato, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"cee" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"cef" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"ceg" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/arrival{ + dir = 8 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"ceh" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"cei" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"cej" = ( +/obj/structure/closet/wardrobe/black, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"cek" = ( +/obj/effect/landmark{ + name = "Observer-Start" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"cel" = ( +/obj/item/device/radio/beacon, +/obj/machinery/camera{ + c_tag = "Arrivals Bay 1 East"; + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"cem" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/item/device/radio/intercom{ + dir = 4; + name = "Station Intercom (General)"; + pixel_x = 28 + }, +/turf/open/floor/plasteel/warning, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"cen" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"ceo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"cep" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"ceq" = ( +/turf/open/floor/plating, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"cer" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"ces" = ( +/turf/open/floor/plasteel/warning, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"cet" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/warning, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"ceu" = ( +/obj/machinery/camera{ + c_tag = "Escape South"; + dir = 1 + }, +/turf/open/floor/plasteel/warning, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"cev" = ( +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"cew" = ( +/obj/machinery/biogenerator, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"cex" = ( +/obj/machinery/seed_extractor, +/turf/open/floor/plasteel/floorgrime, +/area/security/prison) +"cey" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"cez" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE"; + pixel_y = -32 + }, +/obj/machinery/hydroponics/soil, +/obj/item/seeds/glowshroom, +/obj/machinery/camera{ + c_tag = "Prison Common Room"; + dir = 1; + network = list("SS13","Prison") + }, +/turf/open/floor/grass, +/area/security/prison) +"ceA" = ( +/obj/machinery/hydroponics/soil, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/grass, +/area/security/prison) +"ceB" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/turf/open/floor/plating, +/area/security/prison) +"ceC" = ( +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/obj/machinery/hydroponics/soil, +/obj/item/seeds/carrot, +/turf/open/floor/grass, +/area/security/prison) +"ceD" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"ceE" = ( +/obj/structure/closet/wardrobe/green, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"ceF" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = 27 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"ceG" = ( +/obj/machinery/vending/snack, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"ceH" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/arrival{ + dir = 4 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"ceI" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; + name = "KEEP CLEAR: DOCKING AREA" + }, +/turf/closed/wall, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"ceJ" = ( +/obj/machinery/door/airlock/external{ + name = "Arrivals Docking Bay 2"; + req_access_txt = "0" + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"ceK" = ( +/obj/machinery/light/small, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"ceL" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"ceM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"ceN" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"ceO" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"ceP" = ( +/obj/machinery/door/airlock/external{ + name = "Security Escape Airlock"; + req_access_txt = "2" + }, +/turf/open/floor/plating, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"ceQ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK" + }, +/turf/open/floor/plating, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"ceR" = ( +/obj/machinery/door/airlock/external{ + name = "Escape Airlock" + }, +/turf/open/floor/plating, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"ceS" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/cable, +/turf/open/floor/plating, +/area/security/prison) +"ceT" = ( +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"ceU" = ( +/obj/machinery/computer/arcade, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"ceV" = ( +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"ceW" = ( +/turf/open/floor/plasteel/arrival{ + dir = 4 + }, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"ceX" = ( +/turf/closed/wall/r_wall, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"ceY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"ceZ" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/closed/wall/r_wall, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"cfa" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/engineering{ + name = "Telecommunications Satellite"; + req_access_txt = "61" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"cfb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"cfc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"cfd" = ( +/turf/open/floor/plating, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"cfe" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Arrivals Shuttle Airlock" + }, +/obj/docking_port/mobile{ + dir = 8; + dwidth = 5; + height = 7; + id = "arrival"; + name = "arrival shuttle"; + port_angle = -90; + width = 15 + }, +/obj/docking_port/stationary{ + dir = 8; + dwidth = 5; + height = 7; + id = "arrival_home"; + name = "port bay 1"; + width = 15 + }, +/turf/open/floor/plating, +/area/shuttle/arrival) +"cff" = ( +/obj/structure/closet/emcloset, +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = 22 + }, +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"cfg" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Telecoms Monitoring APC"; + pixel_y = 25 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"cfh" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Telecoms Admin"; + departmentType = 5; + name = "Telecoms RC"; + pixel_y = 28 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"cfi" = ( +/obj/machinery/camera{ + c_tag = "Telecoms Monitoring"; + network = list("SS13","Tcomms") + }, +/obj/machinery/light_switch{ + pixel_y = 25 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"cfj" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"cfk" = ( +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"cfl" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/item/device/radio/intercom{ + dir = 8; + freerange = 1; + name = "Station Intercom (Telecoms)"; + pixel_y = 22 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"cfm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/announcement_system, +/turf/open/floor/plasteel/yellow/corner{ + dir = 4 + }, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"cfn" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"cfo" = ( +/turf/closed/wall/mineral/titanium/overspace, +/area/shuttle/transport) +"cfp" = ( +/obj/structure/window/shuttle, +/obj/structure/grille, +/turf/open/floor/plating, +/area/shuttle/transport) +"cfq" = ( +/obj/machinery/door/airlock/shuttle, +/obj/docking_port/mobile{ + dir = 2; + dwidth = 2; + height = 12; + id = "ferry"; + name = "ferry shuttle"; + roundstart_move = "ferry_away"; + port_angle = 180; + width = 5 + }, +/obj/docking_port/stationary{ + dir = 2; + dwidth = 2; + height = 12; + id = "ferry_home"; + name = "port bay 2"; + turf_type = /turf/open/space; + width = 5 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"cfr" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s10"; + dir = 2 + }, +/area/shuttle/transport) +"cfs" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23; + pixel_y = 0 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"cft" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/chair/office/dark, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"cfu" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"cfv" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning/corner, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"cfw" = ( +/obj/machinery/holopad, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/warning, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"cfx" = ( +/obj/machinery/door/airlock/glass_command{ + name = "Control Room"; + req_access_txt = "19; 61" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 1 + }, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"cfy" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"cfz" = ( +/obj/structure/chair/office/dark, +/turf/open/floor/plasteel, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"cfA" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"cfB" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; + name = "KEEP CLEAR: DOCKING AREA" + }, +/turf/open/floor/plating, +/area/hallway/secondary/exit{ + name = "\improper Departure Lounge" + }) +"cfC" = ( +/obj/structure/sign/pods, +/turf/closed/wall, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"cfD" = ( +/obj/machinery/door/airlock/external{ + name = "Escape Pod One" + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"cfE" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s5"; + dir = 2 + }, +/area/shuttle/arrival) +"cfF" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall14"; + dir = 2 + }, +/area/shuttle/arrival) +"cfG" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Arrivals Shuttle Airlock" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"cfH" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s9"; + dir = 2 + }, +/area/shuttle/arrival) +"cfI" = ( +/obj/machinery/door/airlock/external{ + name = "Escape Pod Two" + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"cfJ" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/transport) +"cfK" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"cfL" = ( +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"cfM" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"cfN" = ( +/obj/item/device/radio/off, +/obj/machinery/status_display{ + pixel_x = -32 + }, +/obj/structure/table, +/turf/open/floor/plasteel/yellow/side{ + dir = 10 + }, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"cfO" = ( +/obj/machinery/computer/telecomms/monitor{ + network = "tcommsat" + }, +/turf/open/floor/plasteel/yellow/side, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"cfP" = ( +/obj/item/device/multitool, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/table, +/turf/open/floor/plasteel/yellow/side{ + dir = 6 + }, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"cfQ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'SERVER ROOM'."; + name = "SERVER ROOM" + }, +/turf/open/floor/plating, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"cfR" = ( +/obj/machinery/door/airlock/glass_engineering{ + name = "Server Room"; + req_access_txt = "61" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"cfS" = ( +/obj/machinery/computer/telecomms/server{ + network = "tcommsat" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 10 + }, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"cfT" = ( +/obj/machinery/computer/message_monitor, +/turf/open/floor/plasteel, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"cfU" = ( +/obj/structure/table, +/obj/item/weapon/folder/blue, +/obj/item/weapon/pen/blue, +/turf/open/floor/plasteel/yellow/side{ + dir = 6 + }, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"cfV" = ( +/turf/closed/wall/mineral/titanium/overspace, +/area/shuttle/escape) +"cfW" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"cfX" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock" + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"cfY" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall2"; + dir = 2 + }, +/area/shuttle/escape) +"cfZ" = ( +/turf/closed/wall/shuttle, +/area/shuttle/escape) +"cga" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/escape) +"cgb" = ( +/obj/docking_port/mobile/emergency{ + name = "Box emergency shuttle"; + dir = 2 + }, +/obj/docking_port/stationary{ + dir = 2; + dwidth = 14; + height = 25; + id = "emergency_home"; + name = "emergency evac bay"; + width = 32 + }, +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock" + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"cgc" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock"; + req_access_txt = "2" + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"cgd" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall4" + }, +/area/shuttle/escape) +"cge" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s10"; + dir = 2 + }, +/area/shuttle/escape) +"cgf" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"cgg" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Arrivals Escape Pod 1" + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"cgh" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall3"; + dir = 2 + }, +/area/shuttle/arrival) +"cgi" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"cgj" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"cgk" = ( +/obj/machinery/camera{ + c_tag = "Arrivals Escape Pod 2" + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"cgl" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"cgm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/tcommsat/computer{ + name = "\improper Telecoms Control Room" + }) +"cgn" = ( +/turf/closed/wall/shuttle{ + icon_state = "swallc4"; + dir = 2 + }, +/area/shuttle/escape) +"cgo" = ( +/obj/structure/closet, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"cgp" = ( +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"cgq" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall3" + }, +/area/shuttle/escape) +"cgr" = ( +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"cgs" = ( +/obj/structure/chair, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"cgt" = ( +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"cgu" = ( +/obj/machinery/button/flasher{ + id = "shuttle_flasher"; + pixel_x = -6; + pixel_y = 24 + }, +/obj/machinery/flasher{ + id = "shuttle_flasher"; + pixel_x = 6; + pixel_y = 24 + }, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"cgv" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"cgw" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall7" + }, +/area/shuttle/escape) +"cgx" = ( +/obj/structure/shuttle/engine/propulsion/burst{ + dir = 1 + }, +/turf/closed/wall/mineral/titanium, +/area/shuttle/pod_1) +"cgy" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Escape Pod Airlock" + }, +/obj/docking_port/mobile/pod{ + dir = 2; + id = "pod1"; + name = "escape pod 1"; + port_angle = 180 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_1) +"cgz" = ( +/turf/open/floor/plating, +/obj/structure/shuttle/engine/propulsion/burst{ + dir = 1 + }, +/turf/closed/wall/shuttle{ + icon_state = "swall_f10"; + dir = 2 + }, +/area/shuttle/pod_1) +"cgA" = ( +/obj/structure/shuttle/engine/propulsion{ + dir = 1 + }, +/turf/closed/wall/mineral/titanium, +/area/shuttle/pod_2) +"cgB" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Escape Pod Airlock" + }, +/obj/docking_port/mobile/pod{ + dir = 2; + id = "pod2"; + name = "escape pod 2"; + port_angle = 180 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_2) +"cgC" = ( +/obj/structure/shuttle/engine/propulsion/burst{ + dir = 1 + }, +/turf/closed/wall/mineral/titanium, +/area/shuttle/pod_2) +"cgD" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/transport) +"cgE" = ( +/turf/closed/wall/r_wall, +/area/tcommsat/server) +"cgF" = ( +/obj/machinery/telecomms/bus/preset_three, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"cgG" = ( +/obj/machinery/telecomms/receiver/preset_left, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"cgH" = ( +/obj/machinery/telecomms/processor/preset_three, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"cgI" = ( +/obj/machinery/telecomms/processor/preset_one, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"cgJ" = ( +/obj/machinery/telecomms/receiver/preset_right, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"cgK" = ( +/obj/machinery/telecomms/bus/preset_one, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"cgL" = ( +/obj/structure/shuttle/engine/propulsion{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"cgM" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/shuttle/engine/heater{ + icon_state = "heater"; + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"cgN" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall1"; + dir = 2 + }, +/area/shuttle/escape) +"cgO" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -28; + pixel_y = 0 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"cgP" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 28; + pixel_y = 0 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"cgQ" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"cgR" = ( +/obj/machinery/computer/crew, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"cgS" = ( +/obj/machinery/computer/atmos_alert, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"cgT" = ( +/turf/open/floor/mineral/titanium, +/turf/closed/wall/mineral/titanium/interior, +/area/shuttle/escape) +"cgU" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/pod_1) +"cgV" = ( +/obj/item/device/radio/intercom{ + pixel_x = 25 + }, +/obj/structure/chair, +/obj/item/weapon/storage/pod{ + pixel_x = -26 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_1) +"cgW" = ( +/obj/structure/window/shuttle, +/obj/structure/grille, +/turf/open/floor/plating, +/area/shuttle/arrival) +"cgX" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/pod_2) +"cgY" = ( +/obj/item/device/radio/intercom{ + pixel_x = 25 + }, +/obj/structure/chair, +/obj/item/weapon/storage/pod{ + pixel_x = -26 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_2) +"cgZ" = ( +/obj/machinery/airalarm/server{ + dir = 4; + pixel_x = -22; + pixel_y = 0 + }, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"cha" = ( +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"chb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"chc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"chd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"che" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"chf" = ( +/obj/machinery/airalarm/server{ + dir = 8; + pixel_x = 22; + pixel_y = 0 + }, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"chg" = ( +/obj/structure/closet/crate, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"chh" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Cargo" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"chi" = ( +/obj/structure/window/reinforced, +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"chj" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -28; + pixel_y = 0 + }, +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"chk" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"chl" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/fire, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"chm" = ( +/obj/machinery/status_display{ + layer = 4; + pixel_x = 32 + }, +/obj/structure/chair, +/obj/machinery/computer/shuttle/pod{ + pixel_x = -32; + possible_destinations = "pod_asteroid1"; + shuttleId = "pod1" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_1) +"chn" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; + name = "KEEP CLEAR: DOCKING AREA" + }, +/turf/closed/wall/r_wall, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"cho" = ( +/obj/machinery/status_display{ + layer = 4; + pixel_x = 32 + }, +/obj/structure/chair, +/obj/machinery/computer/shuttle/pod{ + pixel_x = -32; + possible_destinations = "pod_asteroid2"; + shuttleId = "pod2" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/pod_2) +"chp" = ( +/obj/machinery/telecomms/server/presets/security, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"chq" = ( +/obj/item/weapon/stock_parts/subspace/transmitter, +/obj/item/weapon/stock_parts/subspace/transmitter, +/obj/item/weapon/stock_parts/subspace/transmitter, +/obj/item/weapon/stock_parts/subspace/treatment, +/obj/item/weapon/stock_parts/subspace/treatment, +/obj/item/weapon/stock_parts/subspace/treatment, +/obj/structure/table, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"chr" = ( +/obj/machinery/telecomms/server/presets/command, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"chs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"cht" = ( +/obj/machinery/holopad, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"chu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"chv" = ( +/obj/machinery/telecomms/server/presets/medical, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"chw" = ( +/obj/item/weapon/stock_parts/subspace/amplifier, +/obj/item/weapon/stock_parts/subspace/amplifier, +/obj/item/weapon/stock_parts/subspace/amplifier, +/obj/item/weapon/stock_parts/subspace/analyzer, +/obj/item/weapon/stock_parts/subspace/analyzer, +/obj/item/weapon/stock_parts/subspace/analyzer, +/obj/structure/table, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"chx" = ( +/obj/machinery/telecomms/server/presets/science, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"chy" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = -30 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"chz" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/chair, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"chA" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/escape) +"chB" = ( +/obj/machinery/door/airlock/glass{ + name = "Emergency Shuttle Brig"; + req_access_txt = "2" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"chC" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall11"; + dir = 2 + }, +/area/shuttle/escape) +"chD" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = -28; + pixel_y = 0 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"chE" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"chF" = ( +/turf/closed/wall/mineral/titanium/overspace, +/area/shuttle/pod_1) +"chG" = ( +/obj/structure/window/shuttle, +/obj/structure/grille, +/turf/open/floor/plating, +/area/shuttle/pod_1) +"chH" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s9"; + dir = 2 + }, +/area/shuttle/pod_1) +"chI" = ( +/turf/closed/wall/mineral/titanium/overspace, +/area/shuttle/pod_2) +"chJ" = ( +/obj/structure/window/shuttle, +/obj/structure/grille, +/turf/open/floor/plating, +/area/shuttle/pod_2) +"chK" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s9"; + dir = 2 + }, +/area/shuttle/pod_2) +"chL" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/sign/nosmoking_2{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"chM" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + external_pressure_bound = 101.325; + on = 1; + pressure_checks = 1 + }, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"chN" = ( +/obj/machinery/telecomms/hub/preset, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"chO" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"chP" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/sign/nosmoking_2{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"chQ" = ( +/obj/machinery/status_display, +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"chR" = ( +/obj/structure/table, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"chS" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"chT" = ( +/obj/machinery/flasher{ + id = "cockpit_flasher"; + pixel_x = 24; + pixel_y = -6 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"chU" = ( +/obj/machinery/button/flasher{ + id = "cockpit_flasher"; + pixel_x = -24; + pixel_y = -6 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"chV" = ( +/obj/machinery/computer/emergency_shuttle, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"chW" = ( +/obj/docking_port/stationary/random{ + dir = 2; + id = "pod_asteroid1"; + name = "asteroid" + }, +/turf/open/space, +/area/space) +"chX" = ( +/obj/docking_port/stationary/random{ + dir = 2; + id = "pod_asteroid2"; + name = "asteroid" + }, +/turf/open/space, +/area/space) +"chY" = ( +/obj/machinery/telecomms/processor/preset_four, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"chZ" = ( +/obj/item/weapon/stock_parts/subspace/filter, +/obj/item/weapon/stock_parts/subspace/filter, +/obj/item/weapon/stock_parts/subspace/filter, +/obj/item/weapon/stock_parts/subspace/filter, +/obj/structure/table, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"cia" = ( +/obj/machinery/telecomms/bus/preset_four, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"cib" = ( +/obj/machinery/power/terminal, +/obj/machinery/ntnet_relay, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"cic" = ( +/obj/machinery/telecomms/bus/preset_two, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"cid" = ( +/obj/item/weapon/stock_parts/subspace/ansible, +/obj/item/weapon/stock_parts/subspace/ansible, +/obj/item/weapon/stock_parts/subspace/ansible, +/obj/item/weapon/stock_parts/subspace/crystal, +/obj/item/weapon/stock_parts/subspace/crystal, +/obj/item/weapon/stock_parts/subspace/crystal, +/obj/structure/table, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"cie" = ( +/obj/machinery/telecomms/processor/preset_two, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"cif" = ( +/obj/docking_port/stationary{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 24; + id = "syndicate_sw"; + name = "southwest of station"; + width = 18 + }, +/turf/open/space, +/area/space) +"cig" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"cih" = ( +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"cii" = ( +/obj/machinery/door/airlock/glass{ + name = "Emergency Shuttle Cockpit"; + req_access_txt = "19" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"cij" = ( +/obj/machinery/computer/shuttle/ferry/request, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"cik" = ( +/obj/structure/closet/crate, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"cil" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"cim" = ( +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"cin" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"cio" = ( +/obj/machinery/door/airlock/glass{ + name = "Emergency Shuttle Infirmary" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"cip" = ( +/obj/machinery/status_display, +/turf/closed/wall/shuttle{ + icon_state = "swall2"; + dir = 2 + }, +/area/shuttle/escape) +"ciq" = ( +/obj/structure/chair, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"cir" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/weapon/crowbar, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"cis" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"cit" = ( +/obj/machinery/telecomms/server/presets/engineering, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"ciu" = ( +/obj/machinery/telecomms/broadcaster/preset_left, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"civ" = ( +/obj/machinery/telecomms/server/presets/common, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"ciw" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"cix" = ( +/turf/closed/wall, +/area/tcommsat/server) +"ciy" = ( +/obj/machinery/telecomms/server/presets/supply, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"ciz" = ( +/obj/machinery/telecomms/broadcaster/preset_right, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"ciA" = ( +/obj/machinery/telecomms/server/presets/service, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"ciB" = ( +/obj/machinery/computer/communications, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"ciC" = ( +/obj/machinery/computer/security, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"ciD" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_f12" + }, +/area/shuttle/escape) +"ciE" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s9"; + dir = 2 + }, +/area/shuttle/escape) +"ciF" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/closed/wall/mineral/titanium, +/area/shuttle/transport) +"ciG" = ( +/turf/open/floor/mineral/titanium/blue, +/turf/closed/wall/mineral/titanium/interior, +/area/shuttle/transport) +"ciH" = ( +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/turf/open/floor/plasteel, +/area/security/main) +"ciI" = ( +/turf/open/space, +/area/shuttle/syndicate) +"ciJ" = ( +/obj/machinery/message_server, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"ciK" = ( +/obj/machinery/camera{ + c_tag = "Telecoms Server Room"; + dir = 1; + network = list("SS13","Tcomms") + }, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"ciL" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"ciM" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 1; + name = "Telecoms Server APC"; + pixel_y = 25 + }, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"ciN" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"ciO" = ( +/obj/machinery/blackbox_recorder, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/server) +"ciP" = ( +/obj/machinery/porta_turret/syndicate{ + dir = 5 + }, +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/syndicate) +"ciQ" = ( +/turf/open/space, +/obj/machinery/porta_turret/syndicate{ + dir = 6 + }, +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) +"ciR" = ( +/obj/machinery/sleeper{ + dir = 1 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"ciS" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/fire, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/weapon/crowbar, +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = -30 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"ciT" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = -30 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"ciU" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"ciV" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/fire, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/weapon/crowbar, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"ciW" = ( +/obj/machinery/door/airlock/shuttle, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"ciX" = ( +/turf/open/space, +/obj/machinery/porta_turret/syndicate{ + dir = 10 + }, +/turf/closed/wall/mineral/plastitanium{ + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) +"ciY" = ( +/obj/docking_port/stationary{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 24; + id = "syndicate_se"; + name = "southeast of station"; + width = 18 + }, +/turf/open/space, +/area/space) +"ciZ" = ( +/obj/docking_port/stationary{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 24; + id = "syndicate_s"; + name = "south of station"; + width = 18 + }, +/turf/open/space, +/area/space) +"cja" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/storage/primary) +"cjb" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/storage/primary) +"cjc" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/storage/primary) +"cjd" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/storage/primary) +"cje" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/starboard) +"cjf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/security/main) +"cjg" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg3" + }, +/area/maintenance/starboard) +"cjh" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/maintenance{ + name = "Engineering Maintenance"; + req_access_txt = "10" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=4"; + dir = 4; + freq = 1400; + location = "Science" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"cji" = ( +/obj/structure/sign/securearea{ + pixel_y = 32 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + broken = 1; + icon_state = "platingdmg2" + }, +/area/maintenance/starboard) +"cjj" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/robot_debris{ + icon_state = "gib7" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"cjk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"cjl" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/reagent_dispensers/peppertank{ + pixel_y = 27 + }, +/obj/structure/closet/secure_closet/hos, +/turf/open/floor/carpet, +/area/security/hos) +"cjm" = ( +/obj/structure/chair, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/bridge) +"cjn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/bridge) +"cjo" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/bridge) +"cjp" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/main) +"cjq" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1; + scrub_N2O = 0; + scrub_Toxins = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/turf/open/floor/plasteel, +/area/security/main) +"cjr" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/main) +"cjs" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/turf/open/floor/plasteel, +/area/security/main) +"cjt" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/landmark{ + name = "secequipment" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/main) +"cju" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/landmark{ + name = "secequipment" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/main) +"cjv" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/glass_command{ + name = "Head of Security"; + req_access_txt = "58" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/security/hos) +"cjw" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/robot_debris{ + icon_state = "gib3" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"cjx" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"cjy" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"cjz" = ( +/obj/machinery/holopad, +/turf/open/floor/carpet, +/area/security/hos) +"cjA" = ( +/obj/machinery/suit_storage_unit/hos, +/turf/open/floor/plasteel/black, +/area/security/hos) +"cjB" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/office) +"cjC" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/airlock{ + name = "Crematorium"; + req_access_txt = "27" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/chapel/office) +"cjD" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"cjE" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"cjF" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"cjG" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/bot, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"cjH" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"cjI" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"cjJ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"cjK" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/item/weapon/weldingtool, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port{ + name = "Chapel Maintenance" + }) +"cjL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/displaycase/captain, +/turf/open/floor/wood, +/area/crew_quarters/captain{ + name = "\improper Captain's Quarters" + }) +"cjM" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/sign/directions/evac{ + dir = 8; + icon_state = "direction_evac"; + pixel_x = -32; + pixel_y = -8; + tag = "icon-direction_evac (WEST)" + }, +/obj/structure/sign/directions/medical{ + dir = 1; + icon_state = "direction_med"; + pixel_x = -32; + pixel_y = 8; + tag = "icon-direction_med (NORTH)" + }, +/obj/structure/sign/directions/security{ + dir = 1; + icon_state = "direction_sec"; + pixel_x = -32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/blue/corner{ + dir = 8 + }, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"cjN" = ( +/obj/structure/sign/directions/engineering{ + dir = 1; + icon_state = "direction_eng"; + pixel_x = 32; + tag = "icon-direction_eng (NORTH)" + }, +/obj/structure/sign/directions/science{ + dir = 1; + icon_state = "direction_sci"; + pixel_x = 32; + pixel_y = 8; + tag = "icon-direction_sci (NORTH)" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"cjO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + dir = 4; + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = 23 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"cjP" = ( +/obj/structure/table, +/obj/item/weapon/book/manual/wiki/engineering_hacking{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/book/manual/wiki/engineering_construction, +/obj/item/clothing/mask/gas, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cjQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/AIsatextAS{ + name = "AI Satellite Storage" + }) +"cjR" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/engine/engineering) +"cjS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/hallway/primary/aft{ + name = "Aft Starboard Primary Hallway" + }) +"cjT" = ( +/obj/structure/filingcabinet, +/turf/open/floor/carpet, +/area/security/hos) +"cjU" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"cjV" = ( +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/chapel/main) +"cjW" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/bot, +/area/gateway) +"cjX" = ( +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Bridge"; + departmentType = 5; + name = "Bridge RC"; + pixel_x = 30 + }, +/obj/machinery/computer/cargo/request, +/turf/open/floor/plasteel/darkbrown/side{ + dir = 8 + }, +/area/bridge) +"cjY" = ( +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23; + pixel_y = 0 + }, +/obj/machinery/power/smes/engineering, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/engine/engineering) +"cjZ" = ( +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/power/smes/engineering, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/engine/engineering) +"cka" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/carpet, +/area/chapel/main) +"ckb" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/white, +/area/toxins/xenobiology) +"ckc" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"ckd" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/toxins/misc_lab) +"cke" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"ckf" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/warning/corner, +/area/hallway/secondary/entry{ + name = "Arrivals" + }) +"ckg" = ( +/obj/machinery/porta_turret/syndicate{ + dir = 4 + }, +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/syndicate) +"ckh" = ( +/turf/open/space, +/obj/machinery/porta_turret/syndicate{ + dir = 9 + }, +/turf/closed/wall/mineral/plastitanium{ + dir = 8; + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) +"cki" = ( +/turf/open/space, +/obj/machinery/porta_turret/syndicate{ + dir = 5 + }, +/turf/closed/wall/mineral/plastitanium{ + dir = 1; + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) +"ckj" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/table/wood/bar, +/obj/item/device/instrument/eguitar, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"ckk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"ckl" = ( +/obj/structure/window/reinforced, +/obj/machinery/shower{ + dir = 4 + }, +/obj/item/weapon/soap, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"ckm" = ( +/obj/machinery/door/window{ + base_state = "left"; + dir = 2; + icon_state = "right"; + name = "Private Shower"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"ckn" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"cko" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"ckp" = ( +/obj/structure/toilet{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"ckq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Private Restroom"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"ckr" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"cks" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"ckt" = ( +/obj/structure/closet/cardboard, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"cku" = ( +/obj/item/weapon/twohanded/required/kirbyplants, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"ckv" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) +"ckw" = ( +/obj/structure/window, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating, +/area/maintenance/fpmaint{ + name = "Medical Maintenance" + }) + +(1,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(2,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(3,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(4,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(5,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(6,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(7,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(8,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(9,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(10,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(11,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(12,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(13,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(14,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(15,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(16,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(17,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(18,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(19,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(20,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(21,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(22,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(23,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(24,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(25,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(26,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(27,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(28,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(29,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(30,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(31,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(32,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(33,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(34,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(35,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(36,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(37,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(38,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(39,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(40,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(41,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(42,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 +ckh +abb +abb +abb +abb +ciP +abb +abb +abb +acp +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(43,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 +ckh +abb +abb +abb +abb +abb +abb +adT +afM +adT +aeO +agI +ahB +ahT +ahW +ait +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(44,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 +abb +adp +adp +adp +adp +adp +abb +aeO +aeO +aeO +aeO +agJ +aeO +ahU +ahW +aiu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(45,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 +abb +abp +abp +abp +abp +abp +abb +aeP +aeO +aeO +aeO +ahb +ahC +ahV +ahW +aiv +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(46,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 +ckh +abb +abb +abb +acp +aaa +aaa +abb +abp +aax +abp +abp +abp +abb +afl +aeO +aeO +aeO +ahc +abb +abb +abb +ciQ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(47,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 +abb +abo +abK +abY +abb +ciI +aaa +abb +adq +adC +abL +abp +abp +abb +afn +aeO +aeO +aeO +ahd +abb +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(48,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 +abc +abp +abp +abp +abb +abb +abb +abb +abb +abb +abb +aem +aeN +abb +abb +afN +afO +agl +abb +abb +abb +acp +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(49,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 +abc +abq +abp +abp +abb +acF +abp +abp +abp +abp +adB +abp +abp +afm +abp +abp +abp +abp +abp +adB +ahW +ait +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(50,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 +abc +abr +bsW +abp +acq +abp +abp +abp +abp +abp +adD +abp +abp +abp +abp +abp +abp +abp +abp +ahD +ahW +aiu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaD +aaD +aaD +aaD +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(51,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 +abc +abs +abp +abZ +abb +acG +acR +acR +acR +acR +adB +abp +abp +abp +abp +abp +abp +abp +abp +adB +ahW +aiv +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaD +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaD +aaD +aaD +aaD +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(52,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 +abc +abt +abp +abp +abb +abb +abb +ckg +abb +abb +abb +aen +adB +abb +abb +abb +afP +agm +abb +abb +abb +acr +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaD +aab +avf +aab +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaD +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(53,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 +abb +abt +abp +aca +abb +acr +aaa +aaa +aaa +abb +abp +abp +abp +abb +afQ +abp +abp +abp +ahe +ahS +abb +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aab +avg +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaD +aab +bUU +aab +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(54,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 +cki +abb +abb +abb +acr +aaa +aaa +aaa +aaa +aba +abp +abp +abp +abb +afR +abp +abp +abp +ahf +abb +abb +abb +ciX +aaa +aaa +aaa +aaa +aaa +aaa +aab +aab +aaD +aaD +aaD +aaD +aaD +aab +aab +avh +aab +aab +aaD +aaD +aaD +aaD +aaD +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aab +bUV +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(55,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 +abd +abp +abp +abp +abb +afS +abp +abp +abp +abp +abp +ahX +ahW +ait +aaa +aaa +aaa +aaa +aaa +aaa +anc +aaa +aaa +aab +aaa +aaa +aab +aaa +aab +atL +aab +aaa +aab +aaa +aaa +aab +aaa +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 +aaa +aaa +aaa +aaa +aaa +aab +aab +aaD +aaD +aaD +aaD +aaD +aab +aab +bUW +aab +aab +aaD +aaD +aaD +aaD +aaD +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cif +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(56,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 +cki +abb +abb +abb +abb +afT +aax +abp +abp +abp +abp +ahY +ahW +aiu +aaa +aaa +aaa +aaa +aaa +aaa +anc +aaa +aod +aod +aod +aod +aod +aod +aab +atL +aab +aod +aod +aod +aod +aod +aod +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 +aaa +aaa +aaa +aaa +aaa +aaD +aaa +aaa +aab +aaa +aaa +aab +aaa +aab +bTR +aab +aaa +aab +aaa +aaa +aab +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(57,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 +adE +abb +afU +agn +abp +agH +agH +abp +ahZ +ahW +aiv +aaa +aaa +aaa +aaa +aaa +aaa +anc +aab +aoe +apg +apg +apg +apg +apg +atK +atL +awz +apg +apg +apg +apg +apg +aDL +aab +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 +aaa +aaa +aaa +aaa +aaa +aaD +aaa +bMp +bMp +bMp +bMp +bMp +bMp +aab +bTR +aab +bMp +bMp +bMp +bMp +bMp +bMp +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(58,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 +cki +abb +abb +abb +abb +ckg +abb +abb +abb +acr +aaa +aaa +aaa +aaa +aaa +aaa +anc +aaa +aof +aof +aof +aof +aof +aof +aab +atL +aab +aof +aof +aof +aof +aof +aof +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 +aaa +aaa +aaa +aaa +aaa +aaD +aab +bMq +bNI +bNI +bNI +bNI +bNI +bTQ +bTR +bWa +bNI +bNI +bNI +bNI +bNI +cbk +aab +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(59,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 +aaa +aaa +anc +aaa +aaa +aab +aaa +aaa +aab +aaa +aab +atL +aab +aaa +aab +aaa +aaa +aab +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaD +aaa +bMr +bMr +bMr +bMr +bMr +bMr +aab +bTR +aab +bMr +bMr +bMr +bMr +bMr +bMr +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(60,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 +aaa +aaa +anc +aaa +aog +aod +aod +aod +aod +aod +aab +atL +aab +aod +aod +aod +aod +aod +aod +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 +aaa +aaa +aaa +aaa +aaa +aaD +aaa +aaa +aab +aaa +aaa +aab +aaa +aab +bTR +aab +aaa +aab +aaa +aaa +aab +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(61,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 +aaa +aaa +anc +aab +aoh +apg +apg +apg +apg +apg +atK +atL +awz +apg +apg +apg +apg +apg +aDL +aab +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 +aaa +aaa +aaa +aaa +aaa +aaD +aaa +bMs +bMp +bMp +bMp +bMp +bMp +aab +bTR +aab +bMp +bMp +bMp +bMp +bMp +bMp +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(62,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 +aaa +aaa +anc +aaa +aof +aof +aof +aof +aof +aof +aab +atL +aab +aof +aof +aof +aof +aof +aof +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 +aaa +aaa +aaa +aaa +aaa +aaD +aab +bMt +bNI +bNI +bNI +bNI +bNI +bTQ +bTR +bWa +bNI +bNI +bNI +bNI +bNI +cbk +aab +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(63,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 +aaa +aaa +anc +aaa +aaa +aab +aaa +aaa +aab +aaa +aab +atL +aab +aaa +aab +aaa +aaa +aab +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaD +aaa +bMr +bMr +bMr +bMr +bMr +bMr +aab +bTR +aab +bMr +bMr +bMr +bMr +bMr +bMr +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(64,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 +aaa +aaa +anc +aaa +aod +aod +aod +aod +aod +aod +aab +atL +aab +aod +aod +aod +aod +aod +aod +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 +aaa +aaa +aaa +aaa +aaa +aaD +aaa +aaa +aab +aaa +aaa +aab +aaa +aab +bTR +aab +aaa +aab +aaa +aaa +aab +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(65,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 +aaa +aaa +anc +aab +aoe +apg +apg +apg +apg +apg +atK +atL +awz +apg +apg +apg +apg +apg +aDL +aab +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 +aaa +aaa +aaa +aaa +aaa +aaD +aaa +bMp +bMp +bMp +bMp +bMp +bMp +aab +bTR +aab +bMp +bMp +bMp +bMp +bMp +bMp +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(66,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 +aaa +aaa +anc +aaa +aof +aof +aof +aof +aof +aof +aab +atL +aab +aof +aof +aof +aof +aof +aof +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 +aaa +aaa +aaa +aaa +aaa +aaD +aab +bMq +bNI +bNI +bNI +bNI +bNI +bTQ +bTR +bWa +bNI +bNI +bNI +bNI +bNI +cbk +aab +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(67,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 +aaa +aaa +anc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +atL +aab +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaD +aaa +bMr +bMr +bMr +bMr +bMr +bMr +aab +bTR +aab +bMr +bMr +bMr +bMr +bMr +bMr +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(68,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +avi +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +afL +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaD +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +bTR +aab +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(69,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 +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +atL +avg +atL +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bqa +bqa +bqa +bqa +bqa +bqa +bqa +bqa +bqa +bqa +bqa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +bUX +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(70,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 +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +asB +avj +asB +aab +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bqa +brM +brM +brM +brM +brM +brM +brM +brM +bCm +bqa +bEX +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bTR +bUV +bTR +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(71,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 +aab +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +asB +avk +asB +aab +aab +aaa +aaa +aab +aaa +aaa +aab +aaa +aaa +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +afL +aaa +aaa +aWn +aZl +aUn +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bqa +brM +brM +brM +brM +brM +brM +brM +brM +brM +bDJ +bEY +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aab +bSB +bUY +bSB +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(72,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 +aab +aaa +aab +aab +aab +aab +aab +aaa +aaa +aaa +aab +aaa +aaa +asB +asB +avj +asB +asB +aab +aab +aab +agG +aDM +agG +aab +aaa +aab +aab +aab +aab +aaa +aab +aab +aaa +aaa +aaa +aab +aaa +aab +aab +aWn +aZm +aUn +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bqa +brM +brM +brM +brM +brM +brM +brM +brM +brM +bDJ +bEY +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aab +aab +bSB +bUZ +bSB +aab +aab +afL +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(73,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 +aab +aaa +aaa +aab +aab +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +asC +atM +avl +awA +asC +aab +aaa +aab +aea +aDN +aeV +afq +afq +afq +afq +afq +afq +afq +afq +afq +ajA +aaa +aab +aUn +aUn +aWn +aWn +aWn +aZn +aUn +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bqa +brM +brM +brM +brM +brM +brM +brM +brM +brM +bDJ +bEY +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +bSB +bSB +bUY +bSB +bSB +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(74,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 +aab +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aab +aaa +aab +asC +atN +avm +awB +asC +aab +aaa +aaa +aea +aDO +aeX +aFW +aHt +aml +aJH +agd +aoj +agd +agd +aQe +aeX +aaa +aab +aUn +aVq +aWo +aXp +aXp +aZo +aUn +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bqa +brM +brM +brM +bvU +brM +brM +brM +brM +bCm +bqa +bEZ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +bSC +bTS +bVa +bWb +bSC +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(75,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 +aab +aaa +aaa +aea +aea +aea +aea +aea +aea +aea +aea +aea +aea +asC +atO +avn +awC +asC +aab +aaa +aab +aea +aAh +aeX +afs +awF +awF +awF +awF +awF +awF +awF +aWe +aeX +aab +aab +aUn +aVr +aWp +aXq +aUn +bbR +aUn +aUn +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bqa +brN +bta +bqa +bqa +bqa +bKn +bzJ +bqa +bqa +bqa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +bSC +bTT +bVb +bWc +bSC +aaa +aab +aab +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(76,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 +aab +aaa +aaa +aea +alj +amJ +amg +aoi +aph +aph +aqU +arM +asD +awD +atP +avo +awD +awD +ayG +afq +afq +afq +aDP +aiZ +aOe +awF +aIA +aJI +aKZ +aMt +aNH +awF +aWf +aeY +afq +afq +aUo +aVs +aWp +aXr +bax +bbT +bat +aUn +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +afL +aaa +aaa +bqc +brO +btb +bqc +aaa +bqc +btb +bzK +bqc +aaa +afL +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aab +aab +bSC +bTU +bVc +bWd +bSC +aab +aaa +aab +aab +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(77,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 +aab +aab +aab +aab +aea +alm +afr +ans +aoj +agd +aiB +agd +agd +agd +ckv +ckv +avp +awE +axC +ayH +azW +agd +agd +aDQ +aET +aFY +aHu +aIB +aAe +aLa +art +aNI +awF +aQh +agd +agd +aTo +aUp +aVt +aWp +aWp +aZA +bbS +bau +aUn +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bhw +brP +btc +bhw +aaa +bhw +btc +bzL +bhw +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aab +bJa +bSC +bTV +bVd +bSC +bSC +bJa +bJa +bJa +bJa +bJa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(78,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 +aab +aea +alm +afs +alY +alY +alY +alY +alY +ckr +ckt +ckw +aex +aUr +awF +axD +ayI +awF +awF +awF +aDR +aEU +aFZ +axD +aIC +aJJ +aLb +aMu +aIU +aPa +aQi +aRk +aSk +aYu +aUp +aVu +aWq +aXs +baz +bcd +bav +aUn +aab +aab +aab +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +bgh +bhw +bhw +brO +btb +bhw +bgh +bhw +btb +bzK +bhw +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aab +bJa +bSD +bJb +bVe +bWe +bXm +bJb +bJb +bZQ +cax +bJa +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(79,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 +aea +alm +ckk +alY +ckl +ckn +ckp +alY +alY +alY +alY +atS +ayx +awF +axE +ayJ +azX +aBl +awF +aDS +aEV +aGa +axD +aID +aJK +aLc +aMv +aNK +aMx +aMx +aMx +aMx +afs +aUq +aVv +aVv +aVv +bay +bbU +aUp +aUn +aaa +aaa +aab +aab +aaa +aab +aab +aab +aab +aaa +aab +bgh +boS +bqd +brQ +btd +buC +bvV +buC +buC +bzM +bhw +aab +aaa +aaa +aaa +aaa +aab +aab +aab +aaa +aaa +aab +aab +bJa +cjw +bTX +bRA +bRA +bRA +bRA +bRA +cjx +cay +bJa +bJa +bJa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(80,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 +aea +alk +afs +alY +ckm +cko +apj +ckq +aqW +cku +alY +atQ +avs +awF +axF +ayK +awF +awF +awF +aDT +aEW +aGb +axD +aIE +aJL +aLd +aMw +aNL +aMx +aQj +aRl +aMx +aYv +aUr +aex +ahJ +ahJ +baA +aZu +baw +bbo +bbo +bbo +bbo +bbo +bbo +bbo +bbo +aab +aaa +aab +aab +bgh +boT +biv +brR +biv +buD +biv +bxl +biv +bzM +bhw +aab +aaa +aaa +aaa +aab +bJa +bKh +bKh +bKh +bJa +aab +aaa +bJa +cjy +bTY +bRA +bWf +bXn +bYe +bRA +cjK +caz +cbl +cbV +bJa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(81,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 +aea +all +afs +alY +aqc +arV +aqc +aqc +aqX +aua +alY +alY +alY +alY +axG +ayL +azY +aBm +awF +aDU +awF +awF +aHv +aIF +aJM +aLe +aMx +aMx +aMx +aMx +aRm +aMx +aTr +aUs +aVw +aWr +aXt +alS +aZv +bed +bbo +bca +bdd +bdZ +beT +bfZ +bhj +bbo +bgh +bgh +bgh +bgh +bgh +boU +bqe +brS +brS +buE +bvW +buE +brS +bzN +biq +bCp +bCp +bCp +bCp +bHI +bJa +bKi +bLn +bMu +bJa +bJa +bJa +bJa +cjx +bTZ +bRA +bWg +bXo +bYf +bZd +bSH +caA +cbm +cbW +bJa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(82,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 +aab +aea +alm +ame +alY +ant +aok +api +apW +aqV +arN +asE +anu +avt +alY +axD +ayM +awF +awF +awF +aDV +aEX +aGc +aHw +aIG +aJN +aIS +aMx +aNP +aPb +aQk +aRn +aMx +awF +awF +awF +awF +awF +baC +bdg +beW +bbo +bcb +bde +bea +beU +bga +bhk +bbo +bjh +bkr +blA +bjj +bgh +boV +bqf +brT +bte +buF +bvX +bxm +byz +bzO +bAT +bCq +bDL +bFa +bGA +bHJ +bJb +bKj +bJb +bJb +bNJ +bPa +bQl +bJb +bSH +bRA +bRA +cjC +bRA +bRA +bRA +bZS +caB +cbl +cbV +bJa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(83,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 +aea +aln +amd +alY +anu +aol +apj +apX +cks +arO +asF +atT +avu +alY +axH +ayN +azZ +aBn +aCA +aDU +aEY +aGd +aHx +aIH +aJO +aIS +aMx +aNN +aPc +aQl +aRo +aSl +aTs +aUt +aVx +aWs +aXu +baB +bcf +bed +bbo +bcc +bjm +beb +beV +bgb +bhl +bbo +bji +bks +bjj +blB +bgh +bvj +biv +biv +btf +buD +bcR +buD +byA +bzM +bAU +bAU +bAU +bAU +bGB +bHK +bJc +bKk +bLo +bJa +bJa +bJa +bJa +bJa +bSI +bRA +bVf +cjB +bXp +bYg +bRA +bZT +caC +bJa +bJa +bJa +aaa +afL +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(84,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 +aab +aea +alm +amX +alY +anv +aom +anv +anv +aqX +arP +asG +anu +avv +alY +axI +ayO +aAa +aBo +aCB +aDU +awF +awF +awF +axD +aJP +aLf +aMx +aNO +aPd +aQm +aRq +aMx +aTt +aAe +aAe +aWt +aXv +baC +afs +bed +bbo +bbo +bln +bbo +bbo +bgc +bhm +bbo +bjj +bkt +blB +bjj +bgh +bvk +bqg +brU +biu +buG +bvY +bky +byB +bzP +bAU +bCr +bPw +bFb +bGB +bHL +bJa +bJa +bJa +bJa +bNK +bPb +bQm +bRx +bSJ +bUa +bVg +bWj +bXq +bYh +bRA +bZU +bPd +bPd +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(85,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 +aab +aab +aea +alp +amQ +alY +ant +aon +apk +anv +aqY +arQ +asH +atU +avw +alY +axJ +ayP +aAb +als +aCC +aDU +aEZ +aGe +aHy +aII +aAe +aIS +aMx +aNM +aPe +aQn +aRp +aSm +aTu +aNJ +aVy +aWu +aXw +bbp +bdh +beX +bfc +biM +bll +blq +bls +boF +aex +bgh +bjk +bku +blC +bmE +bnO +boY +bqh +brV +brV +brV +brV +brV +byA +bzM +bAV +bCs +bDN +bFc +bGB +bHM +bCp +bKl +bLp +bCp +bNL +bPc +bPc +bRy +bRy +bRy +bVh +bWk +bqj +bYi +bZe +cjV +bRF +bPd +bPd +bPd +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(86,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 +aab +aeV +alq +amY +alY +anu +anu +apj +apY +aqZ +arP +asE +anu +avt +alY +axK +ayQ +aAc +aBq +aCD +aDW +aEX +aGf +aHw +aIG +aAe +aIS +aMx +aNQ +aPf +aQo +aRr +aMx +aTv +aLh +aLa +aAe +aZz +bbr +bec +beZ +bgd +bce +blp +blr +blL +bCT +bpH +biq +bjl +bqu +blD +bmF +biq +boZ +bxx +brW +btg +buH +bvZ +bxn +byA +bzQ +bAV +bCt +bDO +bFd +bGC +bHN +bJa +bKm +bLq +bMv +bNM +bPd +bQn +bRz +bSK +bUb +bVi +bWl +bXs +bYj +bZe +bRF +bRF +cbn +cbX +ccw +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(87,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 +aab +aeX +afr +alX +alY +anv +anv +anv +anv +aqX +arR +alY +alY +alY +alY +aqc +awF +aAd +aAd +aCE +awF +awF +awF +awF +awF +aJQ +aLg +aMx +aNR +aNR +aWg +aNR +aMx +aTw +aAe +aAe +aAe +aZy +bbq +bdi +beY +bfd +bkv +blo +bee +blt +boW +bpG +bir +bqO +bkw +blE +bmG +bgi +bpa +bxw +bgh +bgh +bgh +bgh +bgh +byC +bzR +bAV +bCu +bDP +bFe +bGB +bHO +bJd +cjG +bLr +bMw +bNN +bPd +bQo +bRA +bRA +bRA +bRA +bWm +bRA +bYk +bRA +bRF +caD +bPd +cbY +cbY +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(88,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 +akP +alU +alY +alY +anw +aoo +apl +apZ +ara +arS +alY +atV +avx +awG +aqc +ayR +aAe +aAe +aAe +aAe +aFa +aAe +aAe +aAe +aAe +aLh +aMy +aAe +aAe +aWh +aRs +awF +aTw +aAe +aAe +aAe +aXz +awF +aZB +bfb +bgf +aYC +aYC +aYC +bnb +bgg +bhp +bgh +bjn +bkx +blF +bjj +bgh +bpb +bxx +brX +bth +buI +bwa +bxo +byA +bzS +bAV +bCs +bDQ +bFf +bGD +bHP +bJa +bKo +bLs +bMx +bNO +bPd +bQp +bRB +bQp +bRB +bQp +bWn +bXt +bYl +bQp +bRB +bQp +cbo +cbZ +cbY +aaa +aaa +afL +aaa +aaa +aaa +aaa +aaa +aaa +cfW +cgL +cgL +cgL +cgL +cgL +cgL +cgL +cfW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(89,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 +ajp +ajK +ajK +ajK +akQ +alT +alZ +amK +anx +aop +apm +ckc +arb +arT +asI +atW +avy +awH +axL +ayS +aAf +aBr +aAe +aDX +aAe +aAe +aAe +aAe +aAe +aLi +aDX +aAe +art +aWh +aRt +awF +aRB +aRB +aVz +aRB +aRB +awF +aZC +bfa +bge +bbs +bbs +aYC +blM +bgh +bpI +bgh +bgh +bgh +bgh +bgh +bgh +bpc +bqk +brY +brY +buJ +bwb +bte +byD +bzT +bAW +bCv +bDR +bFg +bGE +bHQ +bJe +bKp +bLt +bMy +bNP +bPd +bQq +bRC +bQq +bUc +bVj +bWo +bQq +bYm +bZf +bZV +bZf +cbp +cca +cbY +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cfW +cfW +cgM +cgM +cgM +cgM +cgM +cgM +cgM +cfW +cfW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(90,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 +aaz +aaz +aaz +aaH +aaH +aaz +aaz +aaz +aaH +aaH +aaz +aaz +aaz +aaH +aaz +aaz +aaz +aaH +aaH +aaz +aaz +aaa +aaa +aaa +aaa +aaa +aaa +aky +akR +alW +ama +amL +any +aoq +aoq +aqa +aqZ +arU +asJ +atX +avz +awI +aqc +awF +aAg +aBs +aBs +aBs +aBs +aBs +aBs +aBs +aBs +aBs +aBs +aNS +aPg +aWj +aRu +aSn +aTx +aUu +aVA +aWv +aXA +aYA +aZD +baD +bgp +bbt +bdj +aYC +bed +bgh +bhr +bis +bjo +bjo +bjo +bmH +bnP +bpd +bql +biv +biv +biv +biv +biv +byA +bzU +bAX +bAX +bAX +bAX +bGF +bHR +bJf +bJf +bJf +bMz +bJf +bPd +bQr +bRB +bQp +bUd +bQu +bWp +bXu +bYn +bZg +bZg +bZg +cbq +bZg +bZg +bZg +bZg +bZg +bZg +bZg +aab +aab +aaa +cfW +cgo +cgo +chg +chg +cfW +cig +cih +cih +ciR +cga +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(91,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 +aaF +aaM +aaz +abf +abu +abM +abu +aaz +acH +acS +ade +adr +aaz +adU +aeo +aeQ +aaz +afV +ago +agK +ahh +aaz +aaa +aaa +aaa +aaa +aaa +aab +aab +akP +alV +alY +alY +anz +aor +apn +aqb +aqX +arV +alY +alY +alY +alY +alY +ayT +aAh +aBs +aCF +aDY +aFb +aGg +aHz +aIJ +aJR +aLj +aMz +aNT +aAe +aQs +aRv +aSo +aTy +aTy +aTy +aTy +aXB +aYB +aZE +baE +bbu +bbs +bbs +aYC +bnc +bgh +bhs +bit +bjp +bjp +blG +bmI +bnQ +buZ +bqm +brZ +bti +buK +bOz +bxp +byE +bzV +bAY +bCw +bDS +bFh +bGG +bHS +bJf +bKq +bLu +bMA +bNQ +bPd +bQs +bRD +bSL +bQu +bQu +bWq +bXv +bYo +bZh +bZW +caE +cbr +ccb +ccx +ccx +cac +cdW +cer +ccG +ccG +ccG +ccG +cfW +cgp +cgp +cgp +cgp +cfW +cih +cih +cih +ciS +cfW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(92,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 +aaG +aaN +aaz +abg +aaJ +abi +abi +acs +abi +aaJ +adf +ads +aaz +adV +aep +aeR +aaz +afW +agp +agL +ahi +aaH +aaa +aaa +aaa +aaa +aaa +aaa +aab +akP +afA +amb +alY +alY +alY +alY +aqc +arc +arV +asK +atY +alY +awJ +axM +ayU +aAi +aBt +aCG +aDZ +aFc +aGh +aHz +aIK +aJS +aJU +aMA +aAe +aAe +aAe +aRw +aSp +aSp +aSp +aSp +aSp +aSp +aYC +aZF +baF +bbv +bcg +bdk +aYC +bne +bgi +bht +biu +bjq +bky +bjr +buZ +bnR +buZ +biv +bhw +bhw +buL +bhw +bhw +byF +bhw +bAZ +bCx +bDT +bFi +bAX +bHT +bJf +bKr +bLv +bMB +bNR +bPe +bQt +bRE +bSM +bQu +cka +bWr +bXw +bYp +bZh +bZX +cac +cbs +cac +cac +cac +cac +cac +cac +ceP +cfd +cfd +ceP +cfX +cgp +cgp +cgp +chy +cfW +cig +cih +cih +ciR +cga +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(93,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 +aaG +aaN +aaz +abh +abv +aaJ +acb +aaz +acI +acT +adg +adt +aaz +adW +abi +aeS +aaz +afX +aaJ +agM +ahj +aaz +aaa +aaa +aaa +aaa +aaa +aaa +aab +akS +alv +amZ +aea +anA +aos +apo +aqd +aqZ +arW +asL +atZ +alY +awK +axN +ayV +aAj +aBu +aCH +aEa +aFd +aGi +aHA +aIL +aJT +aJU +aMA +aAe +aAe +aAe +aRx +aSq +aTz +aUv +aVB +aWw +aXC +aYD +aZG +baG +bbs +bbs +bbs +aYC +bnd +bgh +bhu +biv +bjr +biv +bjr +buZ +bhw +bpe +bqn +bhw +bHj +brV +buD +buD +byA +biv +bAZ +bCy +bDU +bFj +bGH +bHU +bJf +bKs +bLw +bMC +bNS +bPd +bQu +bQu +bQu +bQu +bQu +bWs +bXx +bXx +bZi +bZY +caF +cac +cac +ccy +cda +cac +cac +ces +ceQ +ccG +ccG +cfB +cfW +cfW +cfW +chh +cfW +chQ +cga +cio +cga +cga +cfW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(94,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 +aaG +aaM +aaz +aaz +abw +abN +aaz +aaz +acJ +aaz +aaz +aaz +aaz +adX +aeq +aaz +aaz +afY +agq +aaz +aaz +aaz +aaH +aaH +aaz +aaa +aaa +aaa +aab +aea +alp +afs +amM +anB +aot +alY +aqe +ard +arX +aoq +aua +alY +asR +axO +ayW +aAk +aBs +aCI +aEb +aFe +aGj +aHz +aIM +aJU +aLk +aMz +aNU +aAe +aAe +aRy +aSr +aTA +aUw +aVC +aWx +aXD +aYE +aZH +baH +bbw +baI +baI +aYC +bnf +bgh +bhv +biw +biv +bkz +biv +buZ +bhw +bpf +bqo +bhw +biv +buM +bwd +bxq +byG +biv +bAZ +bCz +bDV +bFk +bAX +bHV +bJf +bKt +bKt +bMD +bNT +bPd +bQu +bQu +bQu +bQu +bQu +bQu +bQu +bQu +bZj +bZZ +caG +cac +cac +ccz +cdb +cac +cac +cac +ceR +cfd +cfd +ceR +cfX +cgr +cgO +cgr +cgr +cgr +cgr +cgr +cgr +ciT +cfW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(95,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 +aaz +aaH +aaz +aaV +abi +abi +abi +abi +abi +abi +abi +aaz +adu +abi +abi +abi +abi +abi +abi +abi +aaz +ahk +ahF +aia +aiw +aaH +aaa +aaa +aaa +aaa +aea +alw +ana +aea +anC +aou +alY +aqf +are +arY +asM +aub +alY +awL +axP +awO +awO +awO +awO +awO +awO +awO +aHB +aHB +aJV +aHB +aHB +aNV +aAe +aAe +aRz +aSq +aTB +aUx +aVD +aWy +aXE +aYC +aZI +baI +bbx +bch +bdl +aYC +bed +bgh +bhw +bix +bhw +bgh +blH +bmJ +bgh +bgh +bgh +bgh +btk +buN +bqi +bxr +buN +buN +bAZ +bCA +bDW +bFl +bAX +bHW +bJg +bKu +bLx +bME +bNU +bPd +bQv +bRF +bSN +bQu +bQu +bSN +bRF +bRF +bZh +bZZ +caG +cac +cac +ccA +cdc +cac +cac +ces +ccG +ccG +ccG +ccG +cfW +cgs +cgr +chi +chz +cgr +chi +chz +cgr +ciU +cfW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(96,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 +aaz +aaI +aaz +aaW +abi +abx +abO +abO +abO +abz +abi +aaz +abi +adF +adF +abi +aaJ +adF +adF +abi +aaz +ahl +ace +aib +aix +aaH +aaa +aaa +aaa +aab +aea +alm +anb +aea +aea +aea +alY +alY +alY +alY +asN +apo +apo +awM +axQ +awO +aAl +aBv +aCJ +aEc +aFf +aGk +aHC +aIN +aAm +aLl +aGk +aNW +aJQ +aQt +awF +aSp +aSq +aSq +aSq +aSq +aSq +aYC +aZB +baJ +aYC +aYC +aYC +aYC +bom +bgh +bhx +biy +bjs +bgh +bgh +bgh +bgh +bpg +bpg +bsa +btl +btl +bwe +bxs +btl +btl +bAX +bAX +bAX +bAX +bAX +bHX +bJf +bKv +bKv +bJf +bNV +bPd +bQw +bQw +bQw +bUe +bUe +bQw +bQw +bQw +bZg +caa +caG +cac +bAI +ccB +cdd +cdA +cac +cet +ccG +aab +aab +aaa +cga +cgs +cgr +chi +chz +cgr +chi +chz +cgr +ciU +cga +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(97,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 +aaJ +aaQ +aaJ +abi +aby +abP +acd +acu +acK +abi +adh +abi +adG +adY +aer +aeT +afo +afZ +aaJ +agN +abi +abi +aic +aiy +aaH +aaa +aaa +aaa +aaa +aea +alx +amf +amN +anD +aov +agd +aqg +aiB +arZ +asO +auc +avA +awN +axR +ayX +aAm +aAm +aAm +aAm +aAm +aGk +aHD +aIO +aJW +aFg +aGk +aNX +aAe +aAe +aRA +aSs +aTC +aUy +aVE +aAe +aXF +aYF +aZJ +baK +bby +aZO +aZO +aZO +bol +bgj +bhy +aZO +bjt +bkA +blI +bmK +biy +biy +biy +biy +biy +bhy +bfe +bxt +bjt +biy +bBa +bCB +biy +blI +bGI +cat +bJh +aZO +aZO +aZO +bNW +bPf +bPf +bRG +bPf +bPf +bPf +bPf +bPf +bPf +bZk +cab +caH +cbt +cac +ccC +cde +cac +cac +ceu +ccG +aaa +aab +aab +cga +cgs +cgr +chi +chz +cgr +chi +chz +cgr +ciU +cga +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(98,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 +aaz +aaK +aaz +aaX +abi +abz +abQ +abQ +abQ +abx +abi +aaz +abi +adH +adH +ace +abi +adH +adH +abi +aaz +ahm +aaJ +abi +aiz +aaH +aaa +aaa +aaa +aaa +aea +aly +amg +amg +anE +amg +app +alR +arf +amg +auC +aud +avB +awO +awO +awO +aAn +aBw +aAm +aAm +aAm +aGl +aAm +aAm +aJX +aLm +aGk +aNX +aPh +aQu +aRB +aAe +aAe +aUz +aVE +aAe +aXG +aAd +aZK +baL +bbz +aZO +aZO +aZO +bff +bgk +bgk +bgk +bgk +bkB +bgk +bgk +bgk +bgk +bgk +bgk +bgk +bgk +bwf +bxu +aZO +aZO +aZO +aZO +aZO +aZO +bGJ +bHZ +bJi +aZO +aZO +aZO +bfg +aZO +aZO +bfe +aYZ +aZO +aZO +bWt +aZO +aZO +bZl +cac +caG +cbu +cac +ccD +cdf +cac +cac +ces +ccG +aab +aab +aaa +cga +cgs +cgr +chi +chz +cgr +chi +chz +cgr +ciU +cga +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(99,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 +aaz +aaH +aaz +aaY +abi +abA +abR +ace +abi +abi +abi +aaz +aaJ +abi +abi +abi +aaJ +abi +abi +abi +aaz +ahn +ahG +aid +aiA +aaH +aaa +aaa +aaa +aab +aea +aea +aea +aea +aea +aea +aea +aea +aea +aea +ats +aue +avC +awO +axS +ayY +aAo +aAm +anM +aAm +aFg +aGk +aHE +aIP +aAo +aLn +aGk +aNY +aPi +aQv +aRC +aSt +aTD +aUA +aVF +aHw +aXG +aAd +aZK +aZO +bvQ +aZO +aZO +aZO +bfg +aZO +aZO +aZO +aZO +bkC +blJ +bmL +bnS +aZO +aZO +aZO +btm +buO +bwg +bJK +byH +bzW +bBb +bBb +bBb +bBb +bGK +bIa +aZO +bKw +bLy +bBb +bBb +bBb +bQx +bRH +bSO +blJ +bnS +aZO +aZO +bYq +bZl +cac +caG +cbv +cac +ccE +cdg +cac +cac +ces +ccG +ccG +ccG +cfB +cfW +cgs +cgr +chi +chz +cgr +chi +chz +cgr +ciU +cfW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(100,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 +aaG +aaM +aaz +aaz +abB +aaz +acf +acv +aaz +aaz +aaz +adv +aaz +aaz +aes +aes +aaz +aaz +agr +aaz +aaz +aaz +aaH +aaH +aaz +aaa +aaa +aab +aab +aaa +aab +aab +aaa +aab +aab +aab +aab +aab +aea +avq +auf +avD +awO +axT +ayZ +aAp +aBx +aCK +aEd +aFh +aGk +aGk +aIQ +aJY +aHB +aGk +aNX +aPj +aQu +aRD +aSu +aTE +aUB +aVE +aAe +aXH +aAd +aZK +aZO +aZO +bci +bci +bci +bfh +bci +bfh +bci +bci +bci +bci +bci +bci +bci +bci +bsb +btn +buP +bwh +bzi +byI +byI +byI +bCC +bDX +bFm +byL +bIb +bJj +bKx +bLz +bLz +bLz +bLz +bLz +bRI +bLz +bLz +bLz +bLz +bXy +bXy +bZg +cad +caI +cbw +ccc +ccF +ccF +cac +cac +cac +ceR +cfd +cfd +ceR +cgb +cgr +cgP +cgr +cgr +cgr +cgr +cgr +cgr +ciT +cfW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(101,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 +aaG +aaN +aaz +abk +abC +aaz +acg +acw +aaz +acU +adi +abi +adI +aaz +aaJ +abi +aaz +aga +ags +agO +aho +aaz +aaa +aaa +aaa +aaa +aab +aab +aaa +aaa +aaa +ajM +aab +aaa +aab +ajM +aaa +aab +asa +auU +aug +avE +awO +axS +aza +aAq +aBy +aCL +aCL +aFi +aGk +aHF +aIR +aJZ +aLo +aLo +aNZ +aJK +aAe +aRE +aLo +aLo +aLo +aVG +aAe +aAe +aJQ +aZK +aYZ +bbA +bci +bdm +bdp +bdo +bgl +bhz +bhT +bju +bkD +bhz +bmM +bnT +bph +bci +bsc +bto +buQ +bwi +bJL +byI +bzX +bBc +bCD +bDY +bFn +byL +bIc +bJk +bCM +bLA +bMF +bMF +bMF +bMF +bMK +bSP +bUf +bSP +bLz +aaa +aab +bZg +bZg +bZg +bZg +bZg +ccG +ccG +cdB +ccG +ccG +ceQ +ccG +ccG +ccG +cfW +cfW +cfW +cfW +chA +chR +chR +chR +cgr +cih +cfW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(102,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 +aaG +aaN +aaz +aaz +abD +aaz +ach +acx +aaz +acV +adj +aaJ +abi +adv +abi +aeU +afp +agb +ags +ags +ahp +aaH +aaa +aaa +aaa +aaa +ajL +aaa +aaa +aaa +aaa +aaa +aab +aab +ajM +aab +aaa +aab +asa +avM +aug +avE +awO +axU +azb +aEG +aBz +aAm +aEd +aFj +aGk +aHG +aIS +aKa +aLp +aMB +aOa +axi +aQw +aRF +aMB +aMB +aMB +aVH +aWz +aAe +aJQ +aZK +aZO +aZO +bcj +bdn +bdo +bfi +bdo +bhz +bhT +bhz +bkD +bhz +bhz +bhz +bhz +bci +bsd +btp +buR +bwj +bJN +byJ +bzY +bBd +bCE +bDZ +bFo +byL +bIc +bJk +bCM +bLA +bMG +bNX +bNX +bQy +bMK +bSQ +bUg +bSP +bLz +aab +aab +aab +aab +aaa +aaa +bZg +ccH +cac +cac +cac +cac +ceP +cfd +cfd +ceP +cgc +cgt +cgQ +cgQ +cga +chS +cgs +chR +cgr +cih +cga +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(103,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 +aaL +aaM +aaz +abl +abE +aaz +aci +acy +aaz +acW +adk +adk +adJ +aaz +aet +aaJ +aaz +agc +agt +agP +ahq +aaz +aaa +aaa +aaa +aaa +alt +aab +aaa +aaa +aaa +aab +aab +aab +aab +afL +aab +aab +asa +avr +auh +avF +awO +axS +ayY +aEF +aBA +aCM +aEe +aFk +aGk +aHH +aIT +aKb +aLq +aMC +aOb +aPl +aQx +awF +aSv +aTF +aTF +aTF +aWA +aXI +aAd +aZK +aZO +aZO +bcj +bdo +bef +bfj +bgm +bhz +bhT +bhz +bkD +bhz +bmN +bmQ +bpi +bci +bse +btq +buS +bwh +bJM +byI +bzZ +bBe +bCF +bEa +bFp +byL +bIb +bJl +bKx +bLA +bMH +bNY +bPg +bQz +bRJ +bSR +bUg +bSP +bLz +aaa +aaa +aab +aaa +aaa +aaa +bZg +ccI +cdh +cdC +cdX +cev +ccG +ccG +ccG +ccG +cfW +cgu +cgt +cgt +chB +cgr +cgr +cgr +cgr +cih +cfW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(104,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 +aaz +aaz +aaz +aaz +aaz +aaH +aaz +aaz +aaz +aaH +aaH +aaz +aaz +aeu +aaA +aaz +aaz +aaH +aaH +aaz +aaz +aaa +aaa +aaa +aab +alt +aab +aab +aab +aaa +aab +aaa +aaa +aab +aab +aab +aab +aea +asV +aui +avG +awO +awO +awO +aEH +aBB +awO +awO +awO +awO +awF +aSP +axD +aLr +aMD +aTp +aPm +aQy +aLr +aLr +aMK +aUC +aMK +aLr +aLr +aLr +aZL +aZO +aZO +bcj +bdp +bdo +bfk +bdo +bhA +bhT +bhz +bkD +bhz +bmO +bhz +bpj +bci +bci +bci +bci +bhF +bNy +byI +bAa +bBe +bBe +bEa +bFq +byL +bId +bBk +bCJ +bLA +bMI +bNZ +bNZ +bQA +bMK +bSS +bUg +bVk +bLz +bXz +bXz +bXz +bXz +bXz +bXz +bXz +bZg +bZg +bZg +ccG +ccG +ccG +aaa +aaa +aaa +cfW +cgv +cgv +cgv +cga +chT +cgr +cih +cig +ciV +cga +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(105,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 +aea +aev +aea +aab +aab +aab +aaa +aaa +aaa +aaa +aab +aeV +afq +alu +afq +afq +afq +afq +afq +afq +afq +afq +afq +afq +afq +afq +asW +auj +avH +awP +axV +azc +aAu +aBC +axV +awP +aFl +aGm +awP +aIV +aKc +aLr +aME +aSQ +aPn +aQz +aRG +aSw +aTG +aUD +aVI +aWB +aXJ +aLr +aZM +aZO +aZO +bck +bdq +bdq +bdq +bgn +bhB +bdq +bdq +bdq +bdq +bmP +bhz +bhz +bqp +bsf +btr +buT +btt +bJX +byK +bAb +bBf +bCG +bDY +bFr +byL +bIe +bTW +bCK +bLA +bMJ +bOa +bPh +bQB +bRK +bST +bUh +bVl +bLA +bXA +bUi +bZm +cae +caJ +cbx +bXz +ajM +ajM +aab +aaa +aaa +afL +aaa +aaa +aaa +cfW +cfW +cfW +cfW +cfW +cfW +cii +chQ +cfW +cfW +cfW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(106,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 +aea +aew +aeV +afq +afq +afq +afq +afq +afq +afq +afq +aiZ +afr +alS +akl +akz +agd +alz +agd +amO +anF +aoj +agd +aqh +agd +aiB +asX +auk +avI +awQ +axW +azd +aAv +aBD +aCN +aCN +aFm +aGn +aCN +aIW +aKd +aLr +aMF +aTq +aPo +aQA +aPn +aPn +aTH +aPn +aVJ +aPn +aXK +aLr +aZN +aZO +aZO +bck +bdq +bdq +bdq +bgo +bhC +biA +bjv +bjv +blK +bmQ +bnU +bpk +bci +bsg +bts +buU +bhF +bNz +byL +byL +byL +byL +bEb +byL +byL +bIf +bJm +bCK +bLA +bMK +bLA +bPi +bQC +bLA +bSU +bUi +bUi +bUi +bUi +bUi +bUi +bUi +caK +cby +bXz +bXz +bXz +bXz +bXz +bXz +aab +aaa +aaa +aaa +aaa +cfW +cgR +chj +chD +chU +cgr +ciq +ciB +cfW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(107,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 +aea +aex +aeW +afr +agd +agd +agd +agd +ahI +aie +aiB +aja +ajq +alC +akm +akm +akm +akm +age +age +age +age +age +age +age +age +age +age +aqm +age +age +aze +aAw +aBE +aCO +aFp +aFn +aGo +aCO +aCO +aCO +aLs +aMG +aOf +aPp +aQB +aPp +aSx +aTI +aKQ +aTI +aTI +aXL +aLr +aZO +aZO +aZO +bcj +bdo +bdp +bfl +bpE +bhD +bhU +bhz +bkE +bqS +bmR +bnV +bpl +bci +bci +btt +buV +bwk +bxC +byM +bAc +bBg +bCH +bEc +bFs +bGL +bIg +bJn +bKy +bLB +bML +bOb +bPj +bQD +bRL +bPj +bUi +bVm +bWu +bUi +bYr +bZn +bUi +bYv +bYv +ccd +ccJ +cdi +cdD +cdY +bXz +bXz +aaa +aaa +aaa +aaa +cfW +cgS +chk +cgr +cgr +cgr +ciq +ciC +cfW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(108,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 +aea +aea +aeX +aft +aex +agu +agQ +ahs +ahJ +aif +aiC +ajd +ajr +ajO +akm +aaa +aaa +aaa +akn +amP +agv +agv +akn +amP +agv +agv +akn +aul +avJ +awR +akn +azf +aoL +aBF +aCP +aCP +aFo +aGp +aHI +aHI +aHI +aLs +aMH +aOg +aPn +aQC +aPn +aPn +aTH +aPn +aVJ +aPn +aXM +aLr +aZO +aZO +aZO +bcj +bdr +beg +bfm +bpF +bhD +bhU +bhz +bkE +buY +bmN +bmQ +bmQ +bci +bsh +btu +buW +bwl +bxD +byN +bAd +bBh +bCI +bEd +bEd +bEd +bIh +bJo +bKz +bLC +bMM +bOc +bPk +bQE +bRM +bSV +bUj +bVn +bWv +bXB +bYs +bZo +caf +bZo +bZo +cce +ccK +cdj +cdE +cdZ +cew +ceS +aab +aab +aab +aaa +cfW +cgT +chl +chE +chV +chE +cir +cgT +cfW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(109,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 +aeX +afs +age +age +age +age +age +age +age +ajc +akx +age +age +akA +akA +akA +akn +ajb +anG +agv +akn +ajb +agv +agv +akn +aum +avK +awS +axX +azg +aAx +aBG +aCQ +aCQ +aFp +aGp +aHJ +aHJ +aKe +aLs +aMI +aOg +aPn +aQC +aPn +aSy +aTJ +aUE +aVK +aWC +aXN +aLr +aZO +aZO +aZO +bcj +bds +beh +bfn +bpE +bhD +bhU +bhz +bkE +blN +bmS +bnW +bnW +bqq +bsi +btv +buX +bwm +bwm +bwm +bxJ +bBi +bCJ +bEe +bEj +bGM +bIi +bYT +bKA +bEj +bMN +bOd +bPl +bQF +bRN +bSW +bUk +bVo +bWw +bXC +bYt +bZp +bUi +caL +bYy +bYy +bYy +bYy +bYy +cea +cex +bXz +aaa +aab +aaa +aaa +aaa +cfW +cga +cga +cga +cga +cga +cfW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(110,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 +aab +aeX +afs +age +agv +agv +agv +agv +age +aiD +ajv +ajt +ajP +akn +akB +akB +akB +akn +ajb +agv +agv +akn +ajb +agv +agv +akn +aun +avL +awT +axY +azh +aAy +aBH +aCR +aEg +aFq +aGq +aHK +aHK +aHK +aLs +aMJ +aOh +aPn +aQD +aRH +aLr +aMK +aUF +aMK +aLr +aLr +aLr +aZO +aZO +aZO +bci +bci +bci +bci +bgq +bhE +bhU +bjw +bkE +blO +bmT +bnX +bnX +bci +bsj +btw +bGb +bwn +bxE +byO +bAe +bBj +bCK +bEf +bFt +bGN +bIj +bYV +bKB +bLD +bMO +bOe +bPm +ciH +cjq +bSX +bUl +bVp +bWx +bUi +bUi +bUi +bUi +bYy +bYy +bYy +cch +bYy +bYy +ceb +cey +ceS +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(111,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 +aeX +afu +age +agv +agv +agv +agv +aig +aiE +aje +ajx +ajQ +akn +akB +akB +akB +akn +and +anH +aow +akn +asQ +arg +aow +akn +auo +ayz +awU +axX +azi +aEI +aBH +aBH +aBH +aBH +aGr +aHL +aIX +aIX +aLs +aMK +aOi +aMK +aQE +aLs +aLr +aTK +aUG +aVL +aLr +aLr +aLr +aSL +aSL +aSL +bcl +bdt +bei +bci +bci +bhF +bci +bci +bci +blP +bmU +bmU +bmU +bmU +bsk +btx +bFx +bwm +bxF +byP +bAf +bBk +bCK +bEg +bFu +bGO +bFy +bYU +bFy +bLE +cjf +bOf +bPn +bQG +cjp +bSY +bUi +bVq +bWy +bXD +bYu +bZn +bUi +bYy +cbz +ccf +ccL +cch +cdF +cec +cez +bXz +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(112,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 +aab +aeX +afw +age +agv +agv +agv +agv +agv +aiF +ajw +alr +ajR +akn +akC +akT +akC +amh +amR +anI +aox +amh +amR +anI +asb +asY +aup +ayA +awV +asY +azj +aAz +aso +aso +aso +aso +aGs +aHM +aIX +aKf +aLt +aML +aOj +aPq +aQF +aQI +aSz +aTL +aSA +aSz +aWD +aYG +aSA +bvM +aSA +aSA +bcm +bdu +bng +bfo +bgr +bhG +biC +bjx +bkF +blQ +bmV +biC +bpm +biC +bsl +bty +bGd +bwo +bxG +byQ +bAe +bBl +bCK +bEg +bFv +bFy +bFy +bYU +bFy +bEg +cjf +bOg +bPo +bQH +cjp +bSZ +bUi +bVr +bWz +bXE +bYv +bYv +cag +bYy +bYy +ccg +ccM +bYy +cdG +ced +ceA +ceS +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(113,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 +aab +aeX +afv +age +agv +agv +aht +agv +agv +aiG +ajf +ajN +ajS +ako +akD +ajS +akF +ami +ajS +ajS +akF +apq +ajS +ajS +akF +asZ +ajS +avO +awW +akn +atR +aAA +apE +apE +apE +apE +apU +aHN +aIX +aKg +aLu +aMM +aOk +aPr +aQG +aQI +aSA +aTM +aSA +aSA +aSA +aSA +aSA +aSA +aSA +aSA +aSA +baf +bej +bfp +bfp +bfp +bfp +bfp +bfp +bfp +bfp +bfp +bfp +bfp +bfp +btz +bGc +bwo +bxH +bxH +bxH +bBm +bCK +bEh +bFw +bGP +bIk +bJs +bKC +bLF +bMQ +bOh +bPp +bQI +cjr +bTa +bUi +bVr +bWA +bXC +bYw +bZq +bUi +bYy +bYy +cch +bYy +bYy +cdH +cea +ceB +bXz +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(114,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 +aeX +afx +age +agw +agv +ajs +agv +agv +aiH +ajg +ckb +ajT +akp +akE +akU +alA +amj +akE +amj +alA +amj +akE +akU +ajz +ata +auq +auq +awX +akY +akY +akY +akY +akY +akY +alc +aQf +aHM +aIX +aKh +aLv +aML +aOl +aPs +aQH +aRI +aSB +aTN +aUH +aTO +aTO +aTO +aTO +aTO +aTO +aTO +bcn +aSA +aSA +bfq +bgs +bhH +biD +bjy +bkG +blR +bmW +bnY +bpn +bqr +bsm +btA +bGf +bwn +bxE +byR +bAe +bBj +bCK +bEg +bRQ +bFy +bFy +bJt +bFy +bEg +bMR +bOi +bVS +ciH +cjs +bTb +bUi +bVs +bWB +bXC +bXC +bXC +bXC +caM +cbA +bYy +bYy +bYy +cdI +cee +ceA +ceS +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(115,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 +aab +aeX +afs +age +agv +agv +aht +agv +agv +aiI +ajh +ajy +ajS +akq +akF +ajS +ajS +amk +akF +ajS +ajS +apr +akF +ajS +ajS +atb +aur +avP +awY +akY +azk +aAB +aBI +aCS +akY +aFr +aQf +aHM +aIY +aKi +aKi +aMN +aOj +aPt +aQI +aQI +aSC +aSA +aSF +aTP +aTP +aTP +aTP +aTP +aTP +aTP +bco +aSA +aSA +bfq +bgt +bhI +biE +bjz +bkH +blS +bmX +bnZ +bpo +bqs +bsn +btB +bGe +bwm +bxF +byP +bAg +bBk +bCK +bEg +bRP +bFy +bIl +bJu +bKD +bEi +bMP +bOj +bOj +bOj +cjs +bTc +bUi +bVt +bWC +bXD +bYx +bZr +bUi +bYy +bYy +cci +cch +bYv +cdF +cef +ceC +bXz +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(116,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 +aab +aab +aeX +afy +age +agv +agv +agv +ahK +aih +aiJ +aji +aju +ajU +akn +akG +akV +alB +amh +amS +akV +alB +amh +aqj +akV +alB +asY +aus +avQ +aus +akY +azl +aAC +aBJ +aCT +akI +aFs +aGv +aHO +aIZ +aKj +aLw +aMO +aOm +aPu +aQJ +aRJ +aSD +aSA +aSF +aTP +aWF +aWF +aWG +aWF +aWF +aTP +bcp +aTS +aTS +bfr +bfr +bhJ +biF +bjA +biF +bjA +bmY +bjB +bpn +bxz +bso +btz +bGh +bwo +bxI +byQ +bAe +bEE +bCK +bEi +bFz +bGQ +bIm +bJt +bKE +bEj +bMS +bOj +bPq +bOj +cju +bTd +bUi +bVu +bWD +bXF +bYy +bYy +cah +bYv +bYy +bYy +ccN +cdk +bXz +bXz +bXz +bXz +aab +ajM +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(117,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 +aab +aeX +afs +age +agv +agv +agv +ajb +aig +aiK +ajj +aju +ajV +akn +akH +akW +amc +akn +akH +anJ +amc +akn +akH +arh +amc +akY +akY +akY +akY +akY +azm +aAD +aBK +aAD +aEh +aFt +aGw +aHM +aIY +aKk +aLx +aMP +aWd +aPv +aQK +aRK +aSE +aTO +aUI +aTP +aWF +aXP +aYH +aXP +aWF +aTP +bcq +aSA +aSA +aSA +bgu +bhK +bgw +bjB +bgw +bjB +bgw +bjB +bfp +bxy +bsp +btz +bGg +bwm +bxJ +bxJ +bxJ +bBn +bCJ +bEj +bEj +bEj +bGM +bJv +bKF +bEj +bMT +bOk +bPr +bQJ +cjt +bTe +bUi +bVv +bWE +bXC +bYz +bZs +bUi +caN +cbC +ccj +bXz +bXz +cdJ +aab +aab +aab +ajM +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(118,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 +aab +aab +aeX +afs +age +agv +agv +agv +ahL +age +aiL +ajk +ajz +ajW +akn +agv +agv +ajb +akn +agv +agv +ajb +akn +agv +agv +ajb +akY +aut +avR +awZ +axZ +azn +aAE +azn +aAE +akI +aFu +aGw +aHM +aIX +aKl +aLy +aMQ +aOo +aPw +aQJ +aRL +aSF +aTP +aTP +aTP +aWG +aXQ +aXR +aXQ +aWG +aTP +bcq +aSA +aSA +aSA +bgv +bhL +bgw +bjB +bag +bjB +bgw +bjB +bfp +bxB +bsq +btA +bGf +bwn +bxE +byS +bAe +bBo +bCL +bEj +bFA +bFA +bIn +bJw +bKG +bEj +bMU +bEj +bPs +bQK +cjv +bQK +bPs +bPs +bWF +bXz +bXz +bXz +bXz +bXz +bXz +bXz +bXz +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(119,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 +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aab +aab +aeX +afz +age +age +age +age +age +age +age +age +age +age +age +agv +agv +ajb +akn +agv +anG +ajb +akn +aqk +ari +atr +atc +auu +avS +axa +axa +azo +aAF +aBL +aCU +akY +aFr +aGw +aHM +aIX +aIX +aIX +aIX +aOp +aPx +aQL +aWk +aSG +aTQ +aUJ +aTQ +aWH +aXQ +aXQ +aXQ +aWF +aTP +bcq +aSA +bek +bfq +bfq +bhK +bgw +bjB +bgw +bjB +bgw +bjB +bfp +bxA +bsr +btz +bGi +bwm +bxF +byP +bAh +bBk +bCK +bEj +bFB +bGR +bIo +bJx +bGV +bGV +bMV +bEj +bPt +bQL +bRV +bTf +bUm +bPs +bWG +bXG +bWG +bUi +cai +caO +caO +caO +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(120,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 +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aab +aaa +aab +aeX +afA +agd +agd +agR +ahu +agd +aii +agd +aiB +agd +ajX +age +agv +agv +alD +akn +agv +agv +alD +akn +aql +agv +alD +akY +auv +avT +axb +alo +azp +aAG +aya +aCV +akY +alc +aGx +aHM +aJa +aKm +aLz +aMR +aOq +aPy +aQM +aRJ +aSF +aTP +aTP +aTP +aWG +aXR +aXR +aXR +aWG +aTP +bcq +aSA +bel +bfs +bgw +bgw +bgw +bgw +bkI +blT +bmZ +boa +bpp +bzc +bss +btC +bGc +bwo +bxK +byQ +bAe +bBp +bCM +bEj +bFC +bGS +bIp +bJy +bKH +bLG +bMW +bOl +cjl +bQM +bRW +cjz +bUn +bPs +bWH +bWG +bWG +bWF +caj +caP +cbD +ccl +ccO +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(121,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 +aab +aab +aab +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aab +aaa +aaa +aaa +aeY +afq +afq +afq +afq +afq +afq +afq +afq +afq +ajA +afs +age +age +age +age +age +age +age +age +age +aqm +age +age +atd +auw +avU +axc +ayb +atd +aAH +aBM +aAH +atd +aFv +aGw +aHN +aJa +aKn +aLA +aLB +aOr +aPz +aQN +aRK +aSH +aYw +aUK +aTP +aWF +aXS +aYI +aZP +aWF +aTP +bcq +aSA +bel +bfs +bgw +bgw +biG +bgw +bkJ +bjB +bjB +bob +bfp +bwc +bst +btD +bGj +bwp +bwp +bwp +bwp +bwp +bwp +bEj +bFD +bGT +bIq +bJz +bKI +bLH +bMX +bOm +bPv +bQN +bRX +bTg +cjT +bPs +bPs +bPs +bWG +bUi +cai +caO +caO +caO +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ciZ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(122,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 +aab +aab +aad +aac +aad +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aab +aab +aab +aab +aaa +aaa +aaa +aaa +aeX +ajY +agd +aiB +akX +agd +aml +agd +anK +aoy +agd +aqn +arj +asc +atd +aux +avV +axd +ayc +atd +aAI +aBN +aCW +atd +aFw +aGw +aHM +aJb +aKo +aLB +aLB +aOr +aPy +aQM +aRL +aSI +aSA +aUL +aTP +aWF +aWF +aYJ +aWF +aWF +aTP +bcq +aSA +bem +bfp +bfp +bhM +biH +bjC +bfp +bfp +bfp +bfp +bfp +bzd +bfp +btz +bGc +bwq +bxL +bxL +bAi +bBq +bCN +bEj +bFE +bGU +bIr +bJA +bIr +bLI +bMY +bEj +bUo +bQO +bRY +bRY +bRY +bVw +bWI +bPs +bYA +bXz +bXz +bXz +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(123,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 +aab +aab +aac +aad +aam +aad +aac +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aab +aaa +aaa +aaa +aaa +aaa +aeY +afq +afq +afq +afq +alE +amm +amT +anL +aoz +aps +aqo +asS +asd +atd +auy +avW +axd +ayd +atd +aAH +aBO +aCX +atd +aAX +aGy +aHO +aJc +aKp +aLC +aMS +aOs +aPA +aQO +aQO +aSJ +aSA +aYx +aTP +aTP +aTP +aTP +aTP +aTP +aTP +bcq +aSA +aSA +bft +bgx +bhN +bhO +bhO +bkK +blU +bna +boc +bfv +bqz +bsu +btE +bvi +bwr +bwp +bwp +bAj +bBr +bCO +bEj +bFF +bGV +bIs +bJB +bKJ +bGV +bMZ +bEj +bPx +bQP +bRZ +bTh +cjA +bVx +bWJ +bPs +bWG +bZt +bYA +agG +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(124,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 +aab +aab +aae +aac +aaj +aan +aar +aac +aae +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +akI +akY +alF +akY +akY +aea +aoA +aoA +aqp +asU +aea +atd +atd +atd +axe +atd +atd +aAJ +aBP +aCY +aab +aFx +aQf +aHP +aJd +aKq +aLD +aMT +aOt +aPB +aQP +aQO +aRK +aSA +aUM +aTR +aTR +aTR +aTR +aTR +aTR +aTR +bcr +aSA +aSA +bft +bgx +bhO +bhO +bhO +bhO +blV +bvb +bod +bfv +bqA +bsv +btw +bHe +bws +bxM +bxM +bAk +bBs +bCP +bEj +bEj +bEj +bEj +bEj +bEj +bEj +bEj +bEj +bPs +bPs +bPs +bTi +bPs +bPs +bPs +bPs +bUi +bUi +bUi +caQ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(125,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 +aab +aab +aac +aac +aag +aak +aak +aak +aat +aac +aac +aab +aab +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ajB +ajZ +ajZ +akI +akZ +alG +amn +akY +alH +aoB +apt +aqq +asP +ase +ate +auz +avX +axf +aye +atd +aAK +aAK +aCY +aab +aFx +aQf +aHM +aJa +aKr +aLE +aMU +atf +aPC +aQQ +aRN +aSK +aBp +aUN +aSA +aSA +aSA +aSA +aSA +baP +aSA +bcs +bdv +aTN +bfu +bgy +bhP +bhP +bjD +bkL +blW +bva +bhO +bfv +bqB +bsv +btF +bGj +bwt +bwp +bwp +bAl +bBt +bCQ +bBt +bFG +bGW +bIt +bBr +bKK +bLJ +bNa +bwp +bPy +bQQ +bSa +bTj +bUq +bVy +bWK +bXH +bYB +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(126,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 +aab +aab +aab +aab +aad +aaf +aah +aak +aao +aak +aau +aaw +aau +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +ajC +aka +aka +akJ +ala +alH +amo +amU +anN +aoC +apu +aqr +asT +apt +apt +auA +avY +apt +apt +atd +aAL +aBQ +aCY +aab +aFx +aQp +aHM +aJa +aKs +aLE +aMU +aOu +aPD +aQR +aQO +aSD +aSA +bqt +aSA +aWJ +aSA +aSA +aZR +aSA +bbB +bct +bdw +ben +bft +bgz +bhO +biI +bjE +bjG +bhO +bvc +boe +bfv +bqC +bsj +btG +bIS +bwu +bxL +byT +bAm +bBu +bCR +bEk +bFH +bGX +bYR +bUu +bKL +bLK +bNb +bwp +bOo +bOo +bOo +bOo +bUr +bVz +bWL +bXI +bYC +aab +aab +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(127,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 +aab +aab +aac +aac +aai +aak +aak +aak +aav +aac +aac +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +ajD +akb +akb +akI +alb +alI +amp +akY +alL +alL +alL +aqs +atp +alL +alL +alL +alL +alL +alL +atd +atd +atd +atd +atd +aAX +aQg +aHM +aJa +aKt +aLE +aMV +aOv +aPE +aQS +aQO +aSL +aSL +aSL +aVM +aVM +aVM +aVO +aVM +aVO +aVM +aVO +aVM +aVM +bfv +bfv +bhQ +bhO +bjF +bkM +biI +bvc +bof +bfv +bqD +bsv +btH +bHf +bwv +bxM +byU +bAn +bBt +bCS +bEl +bFI +bGY +bYR +bBr +bKM +bKM +bNc +bwp +bPz +bQR +bSb +bSb +bQR +bOo +bWM +bXJ +bYD +aaa +aaa +afL +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(128,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 +aab +aab +aae +aac +aal +aap +aas +aac +aae +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +akI +akI +akY +amq +amV +anO +aoD +apv +aqt +arp +asf +atg +auB +avZ +axg +ayf +azq +aAM +aBR +aCZ +aEi +aFy +aGB +aHQ +aJa +aKu +aLE +aMW +aOw +aPF +aQT +aQO +aRT +aRT +aRT +aVM +aWK +aXU +aYK +aZS +aXV +bbC +aZU +bdx +aYO +bfv +bgA +bhO +bhO +bjG +bkN +bhO +bvc +bog +bfv +bqE +bsw +btw +bHe +bww +bxM +bAo +byV +bBv +cjL +bEm +bFJ +bGZ +bIu +bJC +bKN +bLL +bLL +bOn +bPA +bQS +bSc +bTk +bUs +bVA +bWN +bXK +bYE +bZu +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(129,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 +aab +aab +aac +aad +aaq +aad +aac +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +afL +aab +aab +aab +aab +amr +amW +anP +aoE +apw +aqu +arq +asg +ath +ath +awa +ath +ayg +ath +ath +aBS +aDa +aEj +aAX +aGC +aHR +aJa +aJa +aLF +aMX +aMX +aPG +aJa +aQO +aRT +aRT +aRT +aVM +aWL +aWM +aWM +aWM +aWM +aWM +aWM +aWM +beo +bfv +bgB +bhO +biJ +bjH +bkO +bah +bvc +boh +bfv +bqF +bsx +btI +bJp +bsv +bwp +bwp +bwp +bwp +bCU +bEn +bEl +bHa +bIv +bJD +bKO +bLM +bNd +bwp +bPB +cjm +bSd +bTl +bUt +bOo +bWO +bXL +bYF +bYJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(130,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 +aab +aab +aad +aac +aad +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +amr +ang +anQ +anQ +anQ +anQ +anQ +ash +ask +awg +awb +axh +ayh +azr +aAN +aAN +aDb +aAN +aAN +aGD +aHM +aJe +aKv +aKz +aMY +aOx +aPH +aQU +aKA +aRT +aRT +aRT +aVM +aWM +aWM +aYL +aWM +aWM +aYL +aWM +aWM +aWM +bfv +bgC +bhO +bhO +bjI +bkP +bhO +bvc +boi +bfv +bqG +bgr +btJ +bJr +bwx +bxN +byW +bwp +bwp +bwp +bwp +bwp +bwp +bwp +bwp +bwp +bwp +bwp +bwp +bPC +cjm +bSe +bTm +cbB +bVB +bOo +bXM +bYG +bYK +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(131,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 +aab +aab +aab +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +amr +anf +anQ +aoF +apx +aqv +anQ +asi +ask +auD +awc +ahr +ayi +azs +aAO +aBT +aDc +aEk +aBY +aGD +aHM +aJe +aKw +aLG +aLG +aLG +aPH +aQV +aKA +aRT +aRT +aRT +aVM +aWM +aXV +aYK +aZU +aXV +aYK +aZU +aWM +aWM +bfv +bfv +bbH +bfv +bfv +bkQ +bfv +bvd +bfv +bfv +bqH +bsy +btK +bJq +bsy +bsy +bqI +bwp +bwp +bwp +bwp +bFK +bHb +bIw +bJE +bKP +bLN +bNe +bOo +bPD +cjm +bSf +bTn +bUt +bOo +bWP +bXN +bYH +bYJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(132,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 +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +amr +ani +anQ +aoG +apy +aqw +anQ +asj +ask +auE +aAs +axj +ayj +azt +aAO +aBU +aDd +aEl +aBY +aGD +aHM +aJe +aKx +aLH +aMZ +aOy +aPI +aQW +aRO +aRT +aRT +aUO +aVM +aWN +aWM +aYM +aWM +aWM +aYM +aWM +aWM +bep +bfw +bgD +bgH +biK +bfv +bkR +blX +bvf +boj +bpq +bqI +bsy +btL +bvp +bwy +bxO +byX +bAp +bBw +bCV +bEo +bFL +bHc +bIx +bFL +bFL +bLO +bFL +bFL +bPE +bQU +bSg +bTo +bUv +bOo +bWQ +bXO +bYI +bYL +aaa +aaa +afL +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(133,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 +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +afL +aaa +aaa +aaa +aaa +aab +amr +anh +anQ +aoH +apz +aqx +anQ +ask +ask +auF +aAr +axk +ayk +azu +aAO +aBV +aDe +aEm +aFz +aGE +aHS +aJf +aKy +aLI +aNa +aOz +aPJ +aKA +aKA +aSM +aRT +aRT +aVM +aWO +aWM +aWM +aWM +aWM +aWM +bcu +bdy +beq +bfx +bgE +bgE +biz +bjJ +bkS +blY +bve +bok +bjJ +bqJ +bsz +btM +bvq +bwz +bxP +bwz +bAq +bBx +bCW +bEp +bFM +bHd +bIy +bIy +bKQ +bLP +bNf +bNf +bPF +cjn +bSh +bTp +bUw +bVC +bWR +bXP +bYJ +aab +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(134,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 +aab +aaa +aaa +aaa +aaa +aaa +aab +aab +amr +ank +anQ +aoI +apA +aqy +anQ +asl +asn +auG +aCg +axl +ayl +azv +aAO +aBW +aDf +aEn +aBY +aGu +aHT +aJe +aKz +aLH +aNb +aOy +aPK +aQX +aRP +aRT +aTT +aRT +aVM +aWP +aWM +aYN +aWM +aZb +aYL +aWM +aWM +bep +bfy +bgF +bhS +biB +bfv +bkT +blZ +bnh +btj +bpr +bqK +bsA +btN +bvr +bwA +bsy +bsy +bAr +bBy +bCX +bEq +bFN +bYQ +bIz +bJF +bCX +bLQ +bNg +bLS +bCX +cjo +bOo +bTq +bUx +bVD +bWS +bXQ +bYK +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aab +aaa +aaa +afL +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(135,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 +aab +ahM +aiM +ais +ajE +akc +akr +akr +alc +aab +amr +anj +anQ +aoJ +apB +aqz +anQ +asm +ati +auH +aAt +axm +aym +azw +aAO +aBX +aDg +aEo +aBY +aGu +aHM +aJe +aKz +aLJ +aNc +aOA +aPL +aQY +aRQ +aSN +aTU +aRT +aVN +aWM +aXW +aYO +aZV +aXV +bbD +bcv +bdz +ber +bfz +bgG +bgG +biN +bjK +bkU +bma +bni +bvg +bps +bqL +bsB +btO +bvs +bwB +bxQ +byY +byY +byY +byY +byY +bFO +bWi +bFO +bFO +bCX +bLR +bNh +bOp +bCX +bQW +bSi +bTq +bUy +cjX +bWT +bXH +bYL +aaa +aaa +aaa +aab +aab +aaa +aab +aab +aab +aab +aaa +aaa +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(136,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 +aab +aij +aiN +aaa +ajF +akd +aks +akK +alc +alc +amr +anl +anQ +anQ +apC +anQ +anQ +asn +asn +auI +aCh +auI +ayn +auI +aAO +aBY +aDh +aBY +aBY +aGu +aHN +aJe +aKA +aKA +aNd +aOB +aKA +aKA +aRR +aRT +aFL +aRT +aVO +aWM +aWM +aYP +aWM +aWM +bbE +aWM +aWM +bep +bfy +bgH +bgH +biO +bfv +bkV +bmb +bnj +bon +bpt +bqM +bsC +btP +bvt +bsC +bsC +byY +bAs +bBz +bCY +bEr +bFP +bHg +bIA +byY +bCX +bLS +bNi +bLS +bCX +bQX +bQX +bTr +bUz +bQX +bQX +bXR +bXR +bZv +bZv +bZv +bZv +cam +cam +cam +cam +bZv +cam +cam +cam +cam +bXR +bXR +bXR +bXR +bXR +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(137,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 +aab +aik +aiO +air +ajG +ake +akt +akL +akL +alJ +ams +ane +anR +aoK +apD +aqA +arr +aso +aso +aso +awi +axn +ayo +axn +aAP +axn +aDi +axn +axn +aGF +azx +aoL +aAX +aLK +aNe +aOC +aPM +aQZ +aRS +aSO +aTV +aUP +aVP +aWQ +aWM +aWM +aZW +aWM +bbF +aWM +aWM +bes +bfA +bgH +bgH +biP +bfv +bkW +bmc +bnk +boo +bfv +bze +bsC +btQ +bvu +bwC +bxR +byZ +bAt +bBA +bCZ +bEs +bFQ +bHh +bIB +byY +bKR +bLT +bLT +bLT +bPG +bQX +bSj +bTs +bUA +bVF +bWU +bXS +bYM +bYM +bYM +caR +cbE +cbE +ccP +cdl +cdl +ceg +cdl +cdl +cdl +bZz +cfC +cgf +cgx +cgU +cgU +cgU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(138,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 +aab +ail +aiP +aaa +ajH +akf +aku +akM +ald +alK +amt +apK +anS +aoL +apE +apE +apE +apE +apE +auJ +apE +axo +ayp +azx +azx +aBZ +azx +azx +azx +ark +azx +aJg +aKB +aLL +aNf +aOD +aKB +aRa +aRT +aWR +aTW +aRT +aVQ +aZw +aWM +aWM +aZX +aWM +bbG +ckj +bcw +bcw +bcw +bcw +bcw +bbK +bbK +bbK +bbK +bbK +bbK +bbK +bzg +bsC +btR +bvv +bwD +bxS +bza +bAu +bBB +bBB +bEt +bFR +bHi +bIC +bJG +bKS +bAz +bAz +bAz +bPH +bQX +bSk +bTt +bUB +bVG +bWV +bXT +bYN +bYN +bYN +caS +cbF +bYN +cbF +cdm +bYN +ceh +ckf +ceT +bXX +caT +cfD +cco +cgy +cgV +chm +chG +chW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(139,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 +aab +aab +aim +aiP +aab +ajI +akg +akv +akN +alc +alc +amr +anl +anT +aoM +aoM +aqB +ars +aqB +aoM +aoM +aoM +aoM +aoM +azy +apE +aCa +apE +apE +aFA +apE +apE +aoL +aAX +aLM +aNg +aOE +alc +aRb +aRR +aWR +aTW +aRT +aVM +aZw +aWM +aWM +aWM +aWM +aZT +bcx +bcx +bcx +bcx +bcx +bhR +biQ +bjL +bjL +bmd +bnl +bop +biQ +bzf +bsD +btS +bvw +bwE +bxT +byY +bAv +bBC +bDa +bEu +bFS +bVE +bID +byY +bKT +beu +bNj +bOq +bPI +bQY +bSl +bTu +bUC +bVH +bQX +bXU +bXX +bZw +cal +caT +cbG +ccn +cam +cdn +bXX +bXX +bZz +cam +ccn +cbG +bZv +cgg +cgx +cgU +cgU +cgU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(140,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 +aab +aik +aiP +ajl +ajJ +akh +akr +akr +alc +aab +amr +anj +anT +aoN +apF +aqC +apI +asp +atj +auK +atl +auK +aoM +alc +aAQ +aCb +aAQ +aAQ +aFB +aGG +aHU +aJh +aFB +aFB +aFB +aFB +aFB +aFB +aFB +aXx +aTW +aRT +aVM +aZx +aXX +aYQ +aYQ +baQ +bbI +bcy +bdA +bet +bet +bet +bhV +biR +bjM +bkX +bme +bnm +boq +bpu +bqQ +bsC +btT +bvx +bwF +bxU +byY +bAw +bBD +bDb +bEv +byY +bBD +bIE +byY +bKU +beu +beu +beu +bPJ +bQX +bSm +bTv +bUD +bUD +bQX +bXV +bYO +bZx +bXR +cam +cam +cco +cam +cdo +cdK +cei +ceD +cam +cco +cam +bZv +bZv +bXR +bXR +chn +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(141,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 +aab +ain +aiQ +aip +aiN +aaa +aaa +aaa +aab +aab +amr +anj +anT +aoO +apG +apI +apG +asq +atk +auL +awj +axp +aoM +azz +aAR +aCc +aDj +aEp +aFB +aGH +aHV +aJi +aKC +aLN +aNh +aOF +aOF +aOF +aFB +aWR +aTW +aRT +aVM +aWS +aXY +aYR +aZY +aWM +bbJ +bcx +bdB +bcx +bfB +bcx +bcx +bbK +bjN +bkY +bmf +bnn +bor +bbK +bzh +bsC +btU +bvx +bwG +bxU +bsC +bAx +bBE +bBE +bBE +bFT +bBE +bIF +bJH +bKV +bLU +bNk +bOr +bPK +bQX +bSn +bTw +bUE +bUE +bQX +bXU +bXX +bZy +bXR +aaa +cam +ccn +cam +cam +cam +cam +cam +cam +ccn +cam +aab +aab +aab +aab +aab +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(142,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 +aab +aio +aiR +aiq +aab +aaa +aaa +aaa +aaa +aab +amr +apM +anT +aoP +apH +aqD +apG +asq +atl +auM +awk +axq +aoM +azA +aAS +aCd +aDk +aEq +aFB +aGI +aHW +aJj +aHV +aLO +aNi +aOF +aPN +aOF +aFB +aWR +aTX +aUQ +aVM +aVM +aVM +aVM +aVM +aVO +bbK +bcz +bbK +bcz +bbK +bbK +bbK +bbK +bbK +bbK +bbK +bbK +bbK +bbK +bzi +bsC +btV +bvy +bwH +bwH +bsC +bAy +bBF +bBF +bBF +bBF +bHk +bBF +bJH +bBF +bLV +bNl +bOs +bBF +bQX +bQX +bQX +bQX +bQX +bQX +bXW +bXX +bZz +bXR +cbH +cbH +ccp +cbH +cbH +cdL +cdL +cbH +cbH +ccp +cbH +cbH +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(143,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 +aab +aaa +aiS +aaa +aab +aaa +aaa +aaa +aaa +alL +amr +apL +anT +aoQ +apG +aqE +ckd +asq +atl +auN +atl +atl +aoM +azB +aAR +aCe +aDl +aEr +aFB +aGJ +aHV +aJk +aKD +aLP +aNi +aOF +aPO +aOF +aFB +aWR +aRT +buq +aVR +aRT +aRT +aRT +aRT +aRT +bJI +aRT +bdC +beu +bfC +bgI +bhW +biS +bjO +bkZ +bkZ +bno +bos +bpv +byy +bsE +btW +bvz +bwI +bxV +bzb +bAz +bBG +beu +beu +bFU +bHl +bIG +cjM +bAz +bBG +bNm +bOt +bAz +bAz +bAz +bTx +bAz +bAz +bWW +bXX +bXX +bZA +cam +caV +cbH +ccq +ccq +cdq +cdM +cej +ceE +ceU +ccq +cfn +cbH +cbH +cbH +cbH +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(144,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 +aab +aaa +aiS +aaa +aab +aki +aaa +aaa +aaa +alL +amu +anj +anT +aoR +apG +aqF +aru +asr +atm +auO +atl +atl +aoM +azC +aAT +aCf +aDm +aEs +aFB +aGK +aHX +aJl +aHV +aLQ +aNi +aOF +aOF +aOF +aFB +aWR +aTY +aUR +aVR +aRT +aRT +aRT +aRT +aRT +bbL +aRT +bdC +beu +beu +beu +beu +beu +beu +beu +beu +beu +beu +beu +bqU +beu +btX +bvA +byi +bxW +bNA +beu +beu +beu +beu +beu +beu +beu +beu +beu +bLW +bqU +bOu +bev +bev +bev +bev +bev +bev +bWX +bXX +bXX +bZB +cam +caW +cbJ +ccq +ccR +ccq +ccR +ccq +ccR +ccq +ccR +ccq +cbH +cgi +cgi +cgW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(145,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 +aab +aab +aab +aiT +aab +aab +aab +aab +aab +aab +alL +amv +apN +anT +aoS +apI +aqG +arv +ass +anT +auP +awl +awl +anT +anT +alc +aFX +aDn +alc +aFB +aGL +aHY +boX +aKE +aLR +aNi +aOF +aPP +aOF +aFB +aUh +aTZ +aRT +aVR +aWT +aRT +aRT +aRT +aRT +aRT +bcA +bdD +bev +bev +bev +bev +bev +bev +bev +bmg +bnp +bnp +bnp +bqV +bev +btY +bvB +beu +bxX +bNB +bAA +beu +beu +beu +beu +beu +beu +beu +beu +cjN +bqU +bOv +bJH +bQZ +bSo +bTy +bSo +bSo +bWY +bXY +bYP +bZC +cam +caW +cbJ +ccq +ccR +ccq +ccR +cek +ccR +ccq +ccR +ccq +cfG +ccq +ccq +cgW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(146,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 +aab +aaa +aiU +aaa +aab +aab +aaa +aaa +aaa +alM +amw +apO +anT +aoT +apJ +aqH +arw +arw +anT +auQ +auS +auS +auS +anT +aAU +aGz +aDo +aEt +aFB +aQq +aHZ +aFB +aFB +aFB +aFB +aFB +aFB +aFB +aFB +aXy +aST +aST +aST +aST +aST +aST +aST +baR +aVR +bcB +bdE +bdE +bdE +bdE +bhX +bdE +bdE +bhX +bdE +bdE +bdE +bdE +bqW +bhX +btZ +bvC +bdG +bxY +bOD +bAB +bBH +bDc +bBH +bBH +bBH +bBH +bDc +bBH +bAB +bqU +bOw +bJH +bRa +bSp +bSp +bUF +bVI +bWY +bXX +cjD +bZD +cam +caW +cbJ +ccq +ccR +ccq +ccR +ccq +ccR +ccq +ccR +ccq +cbH +cgj +cgj +cgW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(147,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 +aab +aaa +aiS +aaa +aab +aaa +aaa +aaa +aab +alM +amx +anj +anT +aoU +arl +aqI +arx +ast +atn +auR +awm +axr +auS +anT +aAV +aGt +aDn +alc +aAX +aGN +aIa +aJn +aKF +atg +aNj +aOG +aPQ +aRc +aRU +aSR +aST +aUS +aUS +aWU +aXZ +aYS +aZZ +baS +aRT +bcC +bdE +bew +bew +bew +bew +bew +bew +bew +bew +bew +bew +bdE +bqX +bsF +btZ +bvD +bey +bxY +bOC +bAB +bBI +bDd +bEw +bFV +bHm +bIH +bJJ +bKW +bAB +cjO +bOx +bJH +bRb +bSp +bSp +bUG +bVJ +bWY +bXX +cjD +bZE +cam +caX +cbH +ccq +ccq +cdr +ccq +ccq +ceF +ccq +ccq +ccq +cbH +cbH +cbH +cbH +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(148,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 +aab +aaa +aiS +aaa +aab +aaa +aaa +aaa +aaa +alM +amy +anj +anT +aoV +arn +aqJ +arw +arw +anT +auS +awn +axs +auS +anT +aAW +aGM +aDp +aEu +aAX +aRM +aIb +aJo +aJo +aJo +aNk +aJo +aJo +aRd +aRV +aSS +aSS +aUT +aVS +aWV +aYa +aUW +baa +baS +aRT +bcC +bdE +bew +bew +bew +bew +bew +bew +bew +bew +bew +bew +bdE +bqY +bey +btZ +bvD +bey +bxY +bQT +bAB +bBJ +bBL +bDd +bDd +bEy +bDd +cja +bKX +bAB +bqU +bOw +bJH +bRc +bSq +bTy +bSq +bSq +bWY +bXX +cjD +bZz +bXR +cbH +cbH +ccp +cbH +cbH +cdL +cdL +cbH +cbH +cfe +cbH +cbH +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(149,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 +aab +aaa +aiS +aaa +aab +aaa +aaa +aaa +aab +alM +amz +aqi +anT +aoW +arm +aqE +ary +ary +anT +anT +anT +anT +anT +anT +aAX +aGA +aDq +aAX +aAX +aQr +aIc +aJp +aKG +aLT +aNl +aOH +aPR +aRe +aRW +aST +aUa +aUU +aVT +aWW +aYb +aYT +bab +baS +aRT +bcC +bdE +bew +bew +bew +bew +bew +bew +bew +bew +bew +bew +bdE +bqZ +bsG +btZ +bvD +bwJ +bxY +bPu +bAB +bBK +bBL +bEx +bFW +bBL +bII +bZR +bKY +bAB +bqU +bOy +bPL +bPL +bPL +bPL +bPL +bPL +bWZ +bXX +cjE +bZF +bXR +aaa +cam +ccn +cam +cam +cam +cam +cam +cam +ccn +cam +aab +aab +aab +aab +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(150,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 +aab +aaa +aiU +aaa +aab +aab +aaa +aaa +aab +alM +amv +anj +anT +aoX +arD +aqE +arz +arz +anT +auT +awo +anU +ayq +azD +anU +aCl +aDr +aEv +aFC +aGQ +aId +aJp +aKH +aLU +aNm +aLV +aPS +aRe +aRX +aSU +aUb +aUV +aVU +aWX +aYc +aYU +bac +baS +aFL +bcC +bdE +bew +bew +bew +bew +bew +bew +bew +bew +bew +bew +bdE +bra +bey +btZ +bvD +bey +bxY +bRO +bAB +bBL +bDd +bEy +bFX +bHn +bIJ +cjc +bBL +bAB +bqU +cjS +beu +beu +bBE +bBE +bBE +beu +bXa +bXX +cjF +bZz +bXR +cam +cam +cco +cam +cds +cdN +cel +ceG +cam +cco +cam +bZv +bZv +bXR +bXR +chn +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(151,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 +aab +aab +aab +aiT +aab +aab +aab +aab +aab +aab +alL +amA +anj +anT +anT +aro +aqK +anT +anT +anT +awh +awp +awu +awu +awu +awu +awu +aDs +awu +awu +aGR +amv +aJp +aKI +aLV +aNn +aLV +aPT +aRe +aRY +aST +aUc +aUW +aVT +aWY +aYb +aYV +bab +baS +aRT +bcC +bdE +bew +bew +bew +bew +bew +bew +bew +bew +bew +bew +bdE +brb +bsH +bua +bvD +bey +bxY +bQV +bAB +bBM +bDe +bEz +bFY +bHo +bIK +cjb +bKZ +bAB +bpL +bOA +bPM +bRd +bRd +bTz +bRd +bRd +bPM +bXW +cjF +bZG +can +caZ +cbG +ccn +cam +cdn +bXX +bXX +bZz +cam +ccn +cbG +bZv +cgk +cgA +cgX +cgX +cgX +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(152,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 +aab +aaa +aiS +aaa +aab +aab +aaa +aaa +aaa +alL +amB +anm +anU +anU +apP +aqL +anU +anU +ato +auV +aqs +asi +ayr +alL +aAY +asi +aDt +aEw +alL +aGS +aIe +aJp +aKJ +aLV +aNo +aOI +aPU +aRf +aRZ +aSV +aSV +aUX +aVV +aWZ +aYd +aUW +baa +baS +aRT +bcC +bdE +bdE +bdE +bdE +bhX +bdE +bdE +bhX +bdE +bdE +bdE +bdE +bdE +bhX +bdE +bvD +bey +bxY +bOC +bAB +bAB +bAB +bAB +bFZ +bAB +bAB +cjd +bAB +bAB +bNn +bMe +bPM +bRe +bSr +bTA +bUH +bVK +bPM +bXU +cjH +bYN +bYN +cba +cbM +bYN +cbM +cdt +cke +ceh +bZG +ceV +bXX +caZ +cfI +cco +cgB +cgY +cho +chJ +chX +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(153,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 +aab +aaa +aiS +aaa +aab +aaa +aaa +aaa +aaa +alL +amC +ann +anV +aoY +apQ +aqM +arA +asu +avN +auW +awq +axt +ays +alL +aAZ +asi +aDu +aEx +aFD +aGT +aIf +aJp +aKK +aLW +aNp +aLW +aKH +aJp +aSa +aSW +aST +aUY +aUY +aXa +aYe +aYW +bad +baS +aRT +bcD +bdF +bex +bex +bex +bex +bex +bex +bex +bex +bnq +bex +bex +bex +bex +bex +bvE +bey +bxY +bzj +bAC +bBN +bDf +bEA +bGa +bHp +bIL +bJO +bLa +bLY +bNo +bOB +bPM +bRf +bSs +bTB +bSs +bVL +bXb +bXZ +cjU +bZH +cao +cbb +cao +cao +ccS +cdu +bXX +bXX +ceH +ceW +ceW +bZz +cfC +cgf +cgC +cgX +cgX +cgX +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(154,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 +aab +aaa +aiU +aaa +aab +aaa +aaa +aaa +aab +alL +amD +amD +amD +amD +amD +amD +amD +amD +awe +aqs +awr +axu +ayt +alL +aBa +aCm +aDv +aEy +alL +aqs +aIg +aJp +aJp +aLX +aNq +aLX +aJp +aJp +aFE +aFE +aST +aST +aST +aST +aST +aST +aST +baT +aRT +aRT +bdG +bey +bey +bey +bhY +biT +bjP +bey +bey +bnr +bot +bpw +brc +bey +bey +bey +bwK +bxZ +bwN +bwN +bwN +bwN +bEB +bRS +bHq +bIM +bJP +bLb +bLZ +bNp +cjk +bPN +bRg +bSt +bTC +bUI +bVM +bPM +bnD +cjJ +bZI +cap +bZO +cbN +cbN +bZO +bZO +bYO +bYO +ceI +cam +cam +cam +bXR +bXR +bXR +bXR +bXR +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(155,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 +aab +aaa +aiS +aaa +aab +aaa +aaa +aaa +aab +aab +amE +ano +anW +aoZ +apR +aqN +arB +amD +awd +aqs +aws +axv +ayu +alL +alL +alL +alL +alL +aFE +aGU +aIh +aJq +aKL +aLY +aNr +aOJ +aPV +aLZ +aRT +aRT +aLZ +aUZ +aLZ +aLZ +aRT +aRT +aRT +aTW +aRT +bcE +bdH +bdH +bdH +bdH +bdH +bdH +bjQ +bjQ +bmh +bns +bjQ +bjQ +brd +bsI +bub +bey +bey +bey +bzk +bsI +bBO +bDg +bEC +bRR +bHr +bnD +bnD +bnD +bnD +bNq +cjj +bPM +bRh +bPM +bPM +bPM +bVN +bPM +bYa +cjI +bZJ +caq +cbc +cbO +cbd +ccT +bZO +bXX +bZz +cam +aab +aaa +cfJ +cfJ +cfJ +cgD +cfJ +cfJ +cfJ +cgD +cfJ +cfJ +ciF +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(156,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 +aab +aaa +aiS +aaa +aab +aaa +aaa +aaa +ale +alN +amF +anp +anX +apa +apa +aqO +arC +amD +awf +aqs +awt +axw +ayv +alL +aaa +aaa +aaa +aaa +aFE +aGV +aIi +aJr +aKM +aLZ +aNs +aOK +aPW +aLZ +aRT +aLZ +aRT +aRT +aLZ +aLZ +aRT +aLZ +aRT +aTW +aRT +aRT +bdI +bdH +bfD +bgJ +bgJ +bdH +bjR +bla +blb +bnt +bou +bpx +bre +bsI +buc +bvF +bey +bvF +bzl +bAD +bBP +bDh +bsI +bRU +bHs +bIN +bke +bLc +bnD +bNr +bOE +bPO +bRi +bSu +bTD +bUJ +bVO +bXc +bYb +bYW +bZK +car +cbd +cbd +ccr +ccU +bZO +cdO +bZz +cam +cam +cbG +cfp +cfK +cfK +cfK +cfK +cfK +cfK +cfK +cij +cis +ciG +ciF +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(157,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 +aab +aab +aab +aiT +aab +aab +aaa +aaa +aaa +aaa +aab +amE +anq +anY +apb +apS +aqP +atq +asv +att +auX +awu +awu +awu +azE +aaa +aCn +aDw +aEz +aFF +aGW +aIj +aFK +aKN +aFK +aFK +aFK +aFF +aRg +aRg +aRg +aRg +aRg +aRg +aRg +aRg +aRg +aRg +baU +aRT +aRT +bdJ +bdH +bfE +bgK +bfE +bdH +bjS +blb +blb +bnu +bov +bpy +brf +bsI +bsI +bsI +bsI +bya +bzm +bsI +bBQ +bDi +bwL +bRT +bHt +bnD +bJQ +bLd +bnD +bNs +bOF +bPP +bRj +bnF +bnF +bnF +bnF +bnF +bYc +bYX +bZL +cas +cbe +cbP +cbd +ccV +bZO +bXX +bXX +ceJ +cco +ceJ +cfq +cfL +cfL +cfL +cfL +cfL +cfL +cfL +cfL +cfL +cfL +ciW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(158,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 +aab +aaa +aiU +aaa +aab +aab +aab +akw +alf +akw +akw +akw +anZ +apc +apc +aqO +arE +asw +atu +auY +awv +axx +ayw +azF +aaa +aCo +aDx +aEA +aFG +aGX +aIk +aJs +aKO +aMa +aNt +aOL +aFF +aaa +aaa +aab +aaa +aaa +aaa +aab +aaa +aaa +aRg +baV +aRT +bcF +bdH +bdH +bdH +bdH +bhZ +bdH +bjT +blb +bmi +bnv +bml +bpz +brg +bsI +bud +bvG +bwL +byb +bzn +bwL +bwL +bwL +bwL +bSF +brs +bnD +bnD +bnD +bnD +bNt +bnD +bnD +bnD +bnD +bTE +bUK +bVP +bXd +bpL +bYY +bZM +cjW +cbf +cbQ +cbd +ccW +bZO +cdP +bZz +cam +cam +cam +cfp +cfM +cfM +cfM +cfM +cfM +cfM +cfM +cik +cik +ciG +ciF +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(159,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 +aab +aaa +aiS +aaa +aab +akj +akw +akw +alg +alO +amG +alO +aoa +apd +apT +aqQ +arF +asx +atv +atv +atv +axy +aCi +azF +aaa +aCo +aDy +aEB +aFH +aGY +aIl +aJt +aKP +aMb +aNu +aJu +aFF +aab +aSb +aSb +aSb +aSb +aSb +aSb +aSb +aab +aRg +baW +bbM +bcG +bdK +bez +bfF +bgL +bia +bdH +bjU +blc +bmj +bnw +bow +bpA +brh +bsI +bue +bvH +bwM +bvD +bzk +bsI +bBR +bDg +bwN +bSE +bHu +bIO +bJR +bnD +bMa +bNt +bnD +bPQ +bRk +bnD +bSy +bUL +bVQ +bXe +bpL +bYZ +bZN +cau +cbg +cbR +ccs +ccX +bZO +cdQ +cem +cam +aaa +aaa +cfJ +cfJ +cfJ +cgD +cfJ +cfJ +cfJ +cgD +cfJ +cfJ +ciF +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(160,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 +aab +aaa +aiS +aaa +aab +akk +akO +alh +aJm +alP +amH +anr +aob +ape +ape +aqR +arG +amD +atw +auZ +aww +axz +aCk +azF +aaa +aCo +aDz +aEC +aFI +aGZ +aIm +aJu +aJu +aJu +aJu +aOM +aFF +aaa +aSb +aSX +aUd +aVd +aVW +aXb +aYf +aLS +aYf +baX +aRT +bcH +bdH +bdH +bdH +bgM +bib +bdK +bjV +bld +bmk +bnx +box +bpz +bri +bsI +buf +bvI +bwN +byc +bzo +bAE +bBS +bDj +bwN +bUp +bHv +bIP +bJS +bnD +bwR +bNu +bOG +bPR +bRl +bnD +bTF +bUM +bVR +bXf +bpL +bZa +bZO +cav +cbh +cbS +cct +ccY +bZO +bXR +bXR +bXR +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(161,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 +aab +aaa +aiS +aaa +aab +akj +akw +akw +ali +alQ +amI +alQ +aoc +apf +apV +aqS +arH +amD +alL +ava +alL +axA +aCj +aqs +aaa +aCp +aDA +aDA +aFJ +aHa +aIn +aJv +aKR +aMc +aNv +aON +aFF +aaa +aSb +aSY +aUe +aVb +aVX +aXc +aSb +aOn +aSb +baY +aRT +bcH +bdH +beA +bfG +bfE +bic +bdH +bjW +blb +bml +bnv +boy +bpB +brj +bsI +bsI +bsI +bsI +byd +bzp +bsI +bBQ +bDi +bwL +bSG +brs +bnD +bnD +bnD +bGo +bke +bnD +bPS +bRm +bnD +bTG +bmr +bVQ +bXg +bpL +bms +bZO +cav +cbi +cbT +ccu +ccZ +bZO +aab +aab +aaa +aaa +aaa +afL +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(162,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 +aab +aaa +aaa +aaa +aab +aaa +aaa +aaa +aab +aaa +aaa +aaa +aab +aaa +aaa +aaa +aab +aaa +aaa +aab +aaa +aiU +aaa +aab +aab +aab +akw +akw +akw +akw +akw +amD +amD +amD +amD +amD +amD +agG +avb +agG +axA +awh +aqs +aaa +aaa +aaa +aaa +aFK +aFK +aFK +aFK +aFK +aFK +aFK +aFK +aFF +aab +aSb +aSZ +aUf +aVc +aVY +aXd +aYg +aXd +aYY +baZ +bbN +bcI +bdH +bdH +bdH +bgN +bid +biU +bjX +ble +ble +bny +ble +bpC +brk +bsI +bug +bvG +bwL +bye +bzq +bwL +bwL +bwL +bwL +bWh +bHw +bke +bJT +bnD +bMb +bke +bNw +bPT +bRn +bnD +bnD +bnD +bVT +bnD +bpL +bke +bZO +cav +cbj +cbU +ccv +cav +bZO +aaa +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(163,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 +aab +aab +aaD +aaE +aaD +aaD +aaD +aaE +aaD +aaD +aaD +aaE +aaD +aaD +aaD +aaE +aaD +aaD +aaD +aaE +aaD +aab +aab +aab +aiT +aab +aab +aab +aab +aab +aab +aaa +aaa +aaa +aab +aab +aab +aaa +aaa +aab +aab +aab +aaa +axA +aEE +auX +awu +awu +awu +awu +awu +aHb +aIo +aJw +aKS +aMd +aMd +aOO +aPX +aaa +aSb +aTa +aUg +aVb +aVX +aXe +aSb +aPk +aSb +bba +bbO +bcJ +bdL +beB +bfH +bgO +bgO +biV +bjY +blf +bmm +bnz +boz +bpD +brl +bsI +buh +bvH +bwO +byf +bzk +bsI +bBT +bDg +bwN +bSE +bHu +bIQ +bJU +bnD +bMc +bnD +bnD +bPU +bRo +bSv +bTH +bUN +bVU +bXh +bYd +bZb +bZP +caw +cav +cav +cav +cav +bZO +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(164,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 +aaD +aaa +aaa +aab +aab +aaa +aaa +aab +aaa +aaa +aaa +aab +aaa +aab +aaa +aab +aab +aaa +aab +aab +aab +aaa +aab +aaa +aiS +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaD +aaa +aaa +aaa +aaa +aaa +aab +aab +axA +ayB +azG +aBb +anU +aDB +aED +ayt +aHc +aIp +asi +aKT +aMe +aNw +aOP +aPX +aaa +aSb +aTb +aVa +aZa +aVZ +aXf +aYh +aYX +aYh +bbb +bbP +bcK +bdM +bdM +bdM +bdM +bdM +bdM +bdM +bdM +bdM +bdM +boA +bvm +brm +bsI +buf +bvJ +bwN +byg +bzo +bAF +bBS +bDk +bwN +bSE +bHu +bnD +bnD +bnD +bMd +bNv +bOH +bPV +bRp +bSw +bTI +bUO +bVV +bXi +bnD +bRs +bZO +bZO +bZO +bZO +bZO +bZO +bZO +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(165,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 +aab +aaE +aab +aaa +aaa +aab +aab +aaa +aab +aaa +aaa +aaa +aab +aaa +adK +adK +adK +adK +aab +aab +aaa +aab +aaa +aab +aaa +aiS +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaD +aaa +aqT +aqT +aqT +aqT +aqT +aaa +axB +ayC +ayC +ayC +aCq +aDC +aGO +aqT +aHd +aIq +aqT +aqT +aqT +aqT +aqT +aqT +aab +aSb +aSb +aSb +aSb +aSb +aSb +aSb +aab +aRg +bbc +bbO +bcL +bdM +beC +bfI +bgP +bie +biW +bjZ +blg +bie +bdM +boB +bvl +brn +bsI +bsI +bsI +bsI +byh +bzr +bsI +bBQ +bDi +bwL +bGk +bDn +bIR +bJV +bnD +bMe +bNw +bOI +bPW +bRq +bPT +bTJ +bUP +bVV +bXj +bnD +aab +aab +aab +aab +aaa +aab +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(166,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 +aaD +aab +aab +aaa +aaa +aab +aaa +aab +aaa +aaa +aaa +aab +adw +adK +aeb +aey +adK +adK +adK +adK +adK +adK +aab +aaa +aiU +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaD +aaa +aqT +arI +arI +atx +avc +awx +awx +ayD +azH +aBc +aCr +aDD +aEf +aFM +aHe +aIr +aJx +avd +aMf +aNx +aOQ +aqT +aaa +aaa +aab +aaa +aaa +aaa +aab +aaa +aaa +aRg +bbc +bbO +bcM +bdM +beD +bfJ +bgQ +bif +biX +bka +blh +bif +bnA +boC +bvo +bro +bsI +bui +bvF +bvF +bey +bzs +bsI +bsI +bsI +bsI +bpL +brs +bYS +bmt +bnD +bMf +bNw +bOJ +bPX +bRr +bSx +bTJ +bUQ +bVW +bXk +bRs +aab +aaa +aab +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(167,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 +aaD +aaa +aab +aab +aaR +aaR +aaR +aaR +aaR +aaR +aaR +aaR +aaR +adL +aec +aez +aeZ +afB +agf +agx +agS +adK +aab +aaa +aiS +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaD +aab +aqT +arI +arI +aty +avd +aaa +aaa +avd +azI +aBd +aBi +aDE +aGP +aDH +aHf +aCt +aCt +avd +aMg +aCt +aCt +aqT +aqT +aqT +aqT +aqT +aqT +aqT +aqT +aqT +aqT +aRg +bbd +bbO +bcH +bdM +beE +bfK +bgR +bie +biY +bie +bli +bmn +bdM +bjQ +bvn +brd +bsI +bui +bvF +bHY +byj +bzt +bsI +bBU +bDl +bED +bGl +brs +bIT +bJW +bnD +bMe +bnD +bnD +bnD +bnD +bSy +bTK +bSy +bVX +bXl +bRs +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(168,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 +aaD +aaa +aaa +aaR +aaR +aaR +aaR +aaR +aaR +acL +acX +acX +acX +adM +aed +aeA +afa +afC +agg +agy +agT +adK +aab +aaa +aiS +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaD +aaa +aqT +arI +arI +atz +ave +awy +awy +ayE +azJ +aBe +aCs +aDF +aOd +aFN +aHg +aIs +aIs +aKU +aMh +aIs +aIs +aPY +aRh +aSc +aTc +aUi +aVe +aWa +aXg +aYi +aqT +bai +bbe +bbO +bcH +bdM +beF +bfL +bgS +big +biZ +bkb +blj +bmo +bnB +boD +bxv +brp +bsI +bsI +bsI +bwP +bsI +bsI +bsI +bBV +bDm +buk +bGm +bHx +bIU +cje +bLe +bMg +bAG +bOK +bPY +bnD +bRs +bRs +bRs +bRs +bRs +bRs +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(169,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 +aab +aaE +aab +aab +aaR +aaR +abF +abm +acj +acz +acM +abm +adl +aaR +adN +aec +aeB +afb +adK +agA +agz +agU +adK +aab +ahM +aiV +ajm +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaD +aaa +aqT +aqT +aqT +aqT +aqT +aaa +aaa +avd +azK +aBf +avd +aBf +aOc +avd +avd +avd +avd +avd +aMg +aCt +aCt +aCt +aCt +aSd +aCt +aUi +aVe +aWb +aXg +aYi +aqT +baj +aRT +bbO +bcN +bdM +beG +bfM +bgT +bih +bja +bkc +bie +bie +bdM +boE +bpJ +brq +bsJ +buj +bvK +bsJ +bsJ +bzu +bsJ +bBW +bDn +bEF +bGn +bnF +bIV +bJY +bLf +bMh +bNx +bMe +bPZ +bnD +aaa +aaa +aab +aab +aab +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(170,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 +aaD +aaa +aaa +aaR +aaR +abG +abS +ack +acA +ack +acY +abI +aaR +aaR +adK +aeI +agh +adK +adK +cjQ +adK +adK +ahM +aip +aiW +ajn +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaD +aaa +aqT +arJ +arJ +atA +avc +awx +awx +ayD +azL +aBg +aCt +aBg +aEJ +aFO +aHh +aFO +aJy +aKV +aMi +aNy +aNy +aNy +aNy +aSe +aTd +aUj +aVf +aWc +aXh +aYj +aZc +aRP +aRT +bbO +bcH +bdM +bdM +bfN +bgU +bii +bdM +bdM +bdM +bdM +bdM +bvh +bpK +brr +bsK +buk +bvL +bwQ +byk +bzv +bAG +bAG +bDo +bEG +bGo +bnG +bnG +bnG +bnG +bnG +bOC +bMe +bQa +bnD +aab +aaa +aaa +aab +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(171,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 +aaD +aaa +aaR +aaR +aaR +abm +abT +aaR +acB +aaR +abT +abm +abI +adO +aef +aeD +afd +afD +aee +agB +agV +ahv +ahN +aiq +aiP +aik +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaD +aab +aqT +arJ +asy +atB +avd +aaa +aaa +avd +azM +aBg +aCt +aBg +aEK +aFP +aHi +aIt +aJz +aJz +aJz +aNz +aCt +aCt +aCt +aSd +aTe +aUi +aVg +aYy +aCt +aYk +avd +bak +aRT +bbO +bcO +bdN +beH +bfO +bgV +bii +bjb +bkd +blk +bmp +bnC +boG +bpL +brs +bnD +bnD +bnD +bwR +byl +bpL +bAH +bBX +bDp +bEH +bGp +bnG +bIW +bIW +bJZ +bnG +cjg +bMe +bQb +bRs +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(172,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 +aaD +aaa +aaR +aaR +abm +abm +abU +acl +aaR +aaR +acZ +abm +abm +adO +aeg +aeE +afe +afE +agi +agC +agW +ahw +ahO +aaa +aiP +aik +aab +aab +aaa +aaa +aaa +aab +aaa +aaa +aab +aaD +aab +aqT +arJ +arJ +atC +ave +awy +awy +ayE +azN +aBh +aCt +aBg +aEL +aFQ +aHj +aFQ +aHl +aKW +aMj +aNA +aOR +aIs +aIs +aSf +aTf +aUi +aVh +aZp +aCt +aYl +aZd +bal +aRT +bae +bcP +bdO +beI +bfP +bgW +bij +bjc +bke +bqv +bmq +bnD +bnD +bpL +brt +bsL +bul +bnG +bnG +bnG +bpP +bnG +bnG +bry +bnG +bnG +bnG +bIW +bJZ +bJZ +bnG +bOC +bOL +bQc +bRs +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aab +aaa +aaa +aaa +aab +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(173,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 +aab +aaE +aab +aaR +aaR +abn +abH +abV +acm +aaR +acN +ada +adm +adx +adP +aeh +aeF +aff +afF +agj +agD +agX +ahx +ahP +air +aiX +ail +aab +aab +aab +aab +aab +aab +aab +aab +aab +aaD +aaa +aqT +aqT +aqT +aqT +aqT +aaa +aaa +avd +azO +aBg +aCt +aDG +aEM +aFR +aHk +aCt +aJA +aCt +aCt +aCt +aOS +aCt +aEO +aSg +aTg +aUk +aVi +aYz +aFT +aYm +aZe +bam +aRT +bbO +bcQ +bdM +bdM +bdM +bdM +bdM +bjd +bkf +bqv +bmr +bnE +boH +bpM +bru +bsM +bum +bnG +bwS +bym +bzw +bDq +cjY +cjZ +bEI +bGq +bnG +bIW +bJZ +bJZ +bnG +bOC +bOM +bQd +bRs +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaD +aaE +aaD +aaD +aaD +aaE +aaD +aaD +aaD +aaE +aaD +aaD +aaD +aaE +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(174,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 +aaD +aaa +aaR +aaR +abm +abm +abW +acn +aaR +aaR +adb +abm +abm +adO +aeg +aeG +afg +afG +aei +agE +agY +ahy +ahQ +aaa +ahM +ajo +aab +aab +aaa +aaa +aaa +aab +aaa +aaa +aab +aaD +aab +aqT +arK +arK +atD +avc +awx +awx +ayD +azP +aBi +aCu +aCu +aEM +aFS +aHl +aFR +aHj +aHj +aMk +aNB +aOT +aPZ +aRi +aSh +aOV +aUl +aVj +aZr +aXi +aYn +aZf +ban +aRT +bbQ +bdf +bdP +beJ +beJ +bgX +bik +beJ +bkg +blm +bms +bnD +boI +bpN +brv +bsN +bun +bnG +bwT +byn +bzx +bAJ +bAJ +bDr +bEJ +bvO +bnG +bIX +bIX +bLg +bnG +bOC +bON +bQe +bnD +aab +aki +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aab +aaa +aab +aaa +aaa +aaa +aab +aaa +aaa +aaa +aab +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(175,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 +aaD +aaa +aaR +aaR +aaR +abm +abT +aaR +acC +aaR +abT +abm +abI +adO +aef +aeH +afh +afH +aee +agF +agZ +ahz +ahR +ais +aiY +aiN +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaD +aab +aqT +arK +asz +atE +avd +aaa +aaa +avd +azQ +aBg +aCt +aDH +aEK +aFP +aHm +aIu +aJB +aJB +aJB +aNC +aOU +aQa +aEK +aSi +aTh +aUm +aVk +aZq +aXj +aYo +aZg +bao +aRT +bhn +bcS +bdQ +bdQ +bdQ +bdQ +bdQ +bdQ +bdQ +bqw +bmt +bnD +boJ +bpL +brw +bnD +buo +bnG +bwU +byo +bzy +bAK +buw +bDs +bEK +bvO +bHy +bDA +bDA +bDA +bnG +bOC +bOO +bQf +bQf +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaD +aaa +ceX +ceX +ceX +ceX +ceX +cgE +cgE +cgE +cgE +cgE +cgE +cgE +cgE +aab +aab +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(176,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 +aaD +aaa +aaa +aaR +aaR +abI +abX +aco +acD +aco +adc +adn +ady +add +aeC +afc +adw +afJ +aee +agF +aha +agF +aab +aaa +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaD +aaa +aqT +arK +arK +atF +ave +awy +awy +ayE +azR +aBh +aCt +aCt +aEK +aCt +aHn +aIv +aJC +aKX +aMl +aND +aOV +aQb +aEK +aSd +aTi +aUi +aVl +aWi +aXk +aYp +aZh +bao +bbf +bhq +bcT +bdQ +beK +bfQ +bgY +bil +bje +bdQ +bqy +bmu +bnF +boK +bpO +brx +bnD +bup +bnG +bwV +byp +bzz +bAL +bBZ +bDt +buw +bvO +bHy +bDA +bKa +bLh +bnG +cji +bOP +bQf +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaE +aab +ceX +cff +cfs +cfN +cen +cgF +cgZ +chp +chL +chY +cha +cit +cgE +cgE +aab +aaE +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(177,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 +aab +aaE +aab +aab +aaR +aaR +abJ +abm +acj +acE +acO +abm +ado +adz +adQ +aej +aeJ +afi +afI +agk +agF +agZ +ahA +aab +aab +aab +afL +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaD +aab +aqT +aqT +aqT +aqT +aqT +aaa +aaa +avd +azO +aBg +aCt +aCt +aEN +aFT +aFT +aFT +aFT +aFT +aFT +aFT +aOW +aFT +aJE +aSd +aTj +aqT +aVm +aZs +aXl +aYq +aqT +aqT +bbg +bho +bbg +bdQ +beL +bfR +bfR +bhb +bhb +bdQ +bqx +bdQ +bnG +bnG +bpP +bry +bnG +bnG +bnG +bwW +byq +bzA +bwW +bwW +bDu +bEL +byq +bnG +bnG +bnG +bnG +bnG +cjh +bry +bnG +aab +aab +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +ceX +cfg +cft +cfO +cen +cgG +cha +chq +cha +chZ +cha +ciu +ciJ +cgE +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(178,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 +aaD +aaa +aaa +aaR +aaR +aaR +aaR +aaR +aaR +acP +add +add +adA +adR +aek +aeK +afj +afJ +aab +agG +agG +agG +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaD +aaa +aqT +arL +arL +atG +avc +awx +awx +ayD +azS +aBi +aCu +aCu +aCu +aCu +aHo +aCt +aEO +aFT +aMm +aCt +aEK +aEO +aJE +aSd +aTk +aqT +aVn +aZt +aXm +aYr +aZi +bap +bbh +biL +bcU +bdR +beM +beM +bcU +bcU +bcU +bkh +bqT +bmv +bnH +boL +bpQ +brz +bpY +bLX +bNF +bwX +byr +bzB +bAM +bCa +bDv +bAN +bGr +bHz +bIY +bKb +bLi +bMi +cjR +bOQ +bnG +bxg +bxg +bTL +bUR +bVY +bVY +bVY +bZc +bVY +bVY +bZc +bVY +bVY +bVY +cdv +cdR +cen +cen +ceY +cfh +cfu +cfP +cgl +cgH +chb +chr +cha +cia +cha +civ +ciK +cgE +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(179,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 +aaD +aaa +aab +aab +aaR +aaR +aaR +aaR +aaR +aaR +aaR +aaR +aaR +adS +aej +aeL +afk +afK +aab +aaa +aab +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaD +aaa +aqT +arL +asA +atH +avd +aaa +aaa +avd +azT +aBg +aCt +aCt +aEO +aFT +aHp +aFT +aJD +aCt +aEK +aCt +aEK +aQc +aQc +aSd +aTl +aqT +aVo +aWl +aXn +aYs +aZj +baq +bbi +bbV +bcV +bdS +beN +bfS +bgZ +bhb +bhb +bki +bqN +bmw +bnI +boM +bpR +brA +bsO +bur +bvN +bwY +bvO +bzC +bAN +bCb +bDw +boM +bGs +bHA +bIZ +bvO +bvO +bvO +bNC +bOR +bQg +bRt +bSz +bTM +bUS +bVZ +bVZ +bVZ +bVZ +bVZ +bVZ +bVZ +bVZ +bVZ +bVZ +cdw +cdS +ceo +ceK +ceZ +cfi +cfv +cfQ +cen +cen +chc +chs +chM +cha +cil +ciw +ciL +cgE +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(180,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 +aaD +aab +aab +aaa +aaa +aab +aaa +aab +aaa +aaa +aaa +aab +adw +adw +ael +aeM +adw +adw +aab +aab +aab +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaD +aaa +aqT +arL +arL +atI +ave +awy +awy +ayE +azU +aBj +aCt +aCt +aEL +aFU +aCs +aIw +aJE +aCt +aEK +aCt +aEK +aQd +aQd +aSd +aTm +aqT +aVp +aWm +aXo +aYt +aZk +bar +bbj +bbW +bcW +bdT +beO +bfT +bha +bbW +bjf +bbW +bqR +bmx +bnJ +boN +bpS +brB +bsP +bus +bvO +bwZ +bvO +bzD +bAO +bCc +bxd +bEM +bxd +bAO +bAO +bKc +bvO +bwZ +bND +bOS +bQh +bRu +bSA +bTN +bUT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cdx +cdT +cep +ceL +cfa +cfj +cfw +cfR +cgm +cfR +chd +cht +chN +cib +cim +cix +ciM +cgE +aab +aaE +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(181,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 +aab +aaE +aab +aaa +aaa +aab +aab +aaa +aab +aaa +aaa +aaa +aab +aaa +adw +adw +adw +adw +aab +aab +aaa +aab +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaD +aab +aqT +aqT +aqT +aqT +aqT +aaa +aaa +avd +azV +aBk +aCv +aDI +aEP +aFV +aHq +aIx +aJF +aKY +aMn +aNE +aOX +aHg +aRj +aSj +aTn +aqT +aqT +aqT +aqT +aqT +aqT +bas +bbk +bbk +bcX +bdU +beP +bfU +bhb +bhb +bjg +bkj +bqP +bmy +bjg +boO +bmy +brC +bjg +but +bvP +bxa +bys +bzE +bsP +bnG +bDx +bnG +bDx +bnG +bsP +bKd +bys +bMj +bNE +bOT +bnG +bRv +bDA +bTO +ahQ +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +cdy +cdU +ceq +ceM +cfb +cen +cfx +cen +cen +cen +che +chu +chO +cha +cin +ciw +ciN +cgE +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(182,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 +aaD +aaa +aaa +aab +aab +aaa +aaa +aab +aaa +aaa +aaa +aab +aaa +aab +aaa +aab +aab +aaa +aab +aab +aab +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aab +aaa +aab +aaa +aaa +aab +avd +avd +avd +azK +avd +aBf +avd +azK +avd +aBf +avd +aMo +avd +aMo +avd +aqT +aqT +aqT +aqT +aab +aab +aaa +aab +aab +bas +bbl +bbX +bcY +bdV +beQ +bfU +bhb +bhb +bjg +bkk +blu +bmz +bnK +boP +bpT +brD +bsQ +buu +bXr +bxb +bvO +bzF +bnG +bCd +bDy +bEN +bDy +bHB +bnG +bKe +bvO +bMk +cjP +bOU +bnG +bxg +bxg +bTP +ahR +bVY +bVY +bVY +bZc +bVY +bVY +bZc +bVY +bVY +bVY +cdz +cdV +cen +ceN +cfb +cfk +cfy +cfS +cen +cgI +cha +chv +cha +cic +cha +ciy +cha +cgE +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(183,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 +aab +aab +aaD +aaE +aaD +aaD +aaD +aaE +aaD +aaD +aaD +aaE +aaD +aaD +aaD +aaE +aaD +aaD +aaD +aaE +aaD +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aab +aaD +aaD +aaD +atJ +aaD +aab +aab +aab +aaa +aaa +aCw +aaa +aEQ +aaa +aCw +aaa +aEQ +aaa +aMp +aaa +aMp +aaa +aaa +aab +aab +aab +aab +aaa +aaa +aaa +aab +bas +bbm +bbY +bcZ +bdW +beR +bfU +bhb +bhb +bjg +bkl +blv +bmA +bnL +blv +bpU +brE +bsR +buv +bvO +bxc +byt +bzG +bAP +bCe +bDz +bEO +bGt +bHC +bAP +bKf +bLj +buv +bvO +bOV +bnG +aab +aab +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +ceO +cfb +cfl +cfz +cfT +cen +cgJ +cha +chw +cha +cid +cha +ciz +ciO +cgE +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(184,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 +aab +aaa +aaa +aaa +aab +aaa +aaa +aaa +aab +aaa +aaa +aaa +aab +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aab +aaa +aaD +aab +aqT +aCx +avd +aER +aqT +aCx +avd +aER +aqT +aMq +avd +aOY +aqT +aaa +aaD +aab +aaa +aaa +aaa +aaa +aaa +aaa +bas +bbn +bbZ +bda +bdX +beS +bfU +bhc +bim +bjg +bkm +blw +bmB +bnM +boQ +bpV +brF +bsS +buw +bvR +bxd +bxd +bzH +bnG +bCf +bDA +bEP +bGu +bHD +bnG +bKg +bLk +bxd +bvR +buw +bnG +aab +aab +afL +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaE +aab +cfc +cfm +cfA +cfU +cen +cgK +chf +chx +chP +cie +cha +ciA +cgE +cgE +aab +aaE +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(185,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaD +aaa +aqT +aCy +aDJ +aES +aqT +aHr +aIy +aJG +aqT +aMr +aNF +aOZ +aqT +aaa +aaD +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bas +bas +bas +bas +bas +bas +bfU +bhd +bdc +bjg +bkn +bko +bmC +bko +boR +bDM +bjg +bjg +bux +bnG +bxe +bxe +bxe +bnG +bCg +bDB +bEQ +bGv +bHE +bnG +bxe +bxe +bxe +bnG +bOW +bnG +bnG +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaD +aaa +ceX +ceX +ceX +ceX +ceX +cgE +cgE +cgE +cgE +cgE +cgE +cgE +cgE +aab +aab +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(186,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 +afL +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaD +aaa +aqT +aCz +aDK +aCz +aqT +aHs +aIz +aHs +aqT +aMs +aNG +aMs +aqT +aab +aaD +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agG +bdb +bdY +bdb +bfV +bdY +bin +bjg +bko +blx +bmD +bnN +bko +bpW +bjg +bsT +buy +bnG +bxf +bxf +bxf +bxg +bCg +bDC +bER +bGw +bHE +bxg +bxf +bLl +bxf +bnG +bOX +bQi +bnG +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aab +aaa +aab +aaa +aaa +aaa +aab +aaa +aaa +aaa +aab +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(187,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaD +aaa +aqT +aCz +aCz +aCz +aqT +aHs +aHs +aHs +aqT +aMs +aMs +aMs +aqT +aaa +aaD +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +agG +bdc +bdc +bdc +bfW +bhe +bfW +bjg +bkp +bly +bjg +bjg +bjg +bjg +bjg +bnG +bux +bnG +bxg +bxg +bxg +bxg +bCh +bDD +bES +bDD +bHF +bxg +bxg +bxg +bxg +bnG +bOW +bnG +bnG +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaD +aaE +aaD +aaD +aaD +aaE +aaD +aaD +aaD +aaE +aaD +aaD +aaD +aaE +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(188,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaD +aab +aqT +aqT +aqT +aqT +aqT +aqT +aqT +aqT +aqT +aqT +aqT +aqT +aqT +aaa +aaD +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +bdc +bfX +bhf +bfX +bjg +bkq +blz +bjg +aab +aab +bnG +brG +bsU +buz +bvS +ajM +byu +byu +bxg +bCi +bxg +bxg +bxg +bxg +bxg +byu +byu +ajM +bNG +bOY +bsU +bsX +bnG +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aab +aaa +aaa +aaa +aab +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(189,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aab +aaa +aaa +aaa +aab +aaa +aaa +aaa +aab +aaa +aaa +aaa +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +bdQ +bfX +bhg +bfX +bjg +bjg +bjg +bjg +aaa +aab +bnG +brH +bsV +bsV +aaa +bxh +byv +byv +bAQ +bCj +byv +byv +byv +byv +byv +byv +byv +bMl +aaa +bsV +bsV +brH +bnG +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(190,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ayF +aab +aaD +aaD +atJ +aaD +aaD +aaD +aaD +aaD +aaD +aaD +aaD +aaD +aaD +aab +ayF +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +bfX +bhh +bfX +aaa +aab +aab +aab +aaa +aaa +bnG +brI +bBY +buA +aab +bxi +ajM +bzI +aaa +aaa +bzI +aaa +aaa +aaa +aaa +bzI +ajM +bxi +aab +bOZ +bQj +bRw +bnG +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(191,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aab +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bhi +aaa +aaa +aab +aaa +aaa +aaa +aaa +bnG +brH +bsV +bsV +aaa +bxj +byw +aaa +aaa +aaa +aab +aaa +aaa +bHG +aaa +aaa +bLm +bMm +aaa +bsV +bsV +brH +bnG +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(192,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +bnG +brJ +bsX +bsV +aaa +bxi +ajM +aaa +aaa +bCk +aab +aab +aab +aab +aaa +aaa +ajM +bxi +aaa +bsV +brG +bsZ +bnG +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(193,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bnG +bnG +brH +bsV +aaa +bxi +ajM +aaa +aaa +aab +bDE +bET +bGx +aab +aab +bzI +ajM +bxi +aaa +bsV +brH +bnG +bnG +aab +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(194,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aab +bpX +bnG +bsY +buB +aab +bxj +byw +aaa +aaa +aab +bDF +bEU +bGy +aab +aaa +aaa +bLm +bMm +aab +bsV +bQk +bnG +bpX +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(195,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bnG +bnG +brH +bsV +aaa +bxi +ajM +bzI +aab +aab +bDG +bEV +bGz +aab +aaa +aaa +ajM +bMn +aaa +bsV +brH +bnG +bnG +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(196,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bnG +brG +bsZ +bsV +aaa +bxi +ajM +aaa +aaa +aab +aab +bEW +aab +aab +aaa +aaa +ajM +bxi +aaa +bsV +brJ +bsX +bnG +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(197,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aab +bnG +brH +bsV +bsV +aaa +bxj +byw +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +bLm +bMm +aaa +bsV +bsV +brH +bnG +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(198,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +bnG +brJ +bBY +buA +aab +bxi +ajM +bzI +aaa +aaa +aaa +aaa +bzI +aaa +aaa +bzI +ajM +bxi +aab +bOZ +bQj +bsZ +bnG +aab +aab +aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(199,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bnG +brK +bsV +bsV +aaa +bxi +ajM +ajM +bAR +ajM +ajM +bAR +ajM +bHH +bAR +ajM +ajM +bxi +aaa +bsV +bsV +brK +bnG +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(200,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bnG +brK +bsV +bsV +bvT +bxk +byv +byv +bAS +byv +byv +bAS +byv +byv +bAS +byv +byv +bMo +bNH +bsV +bsV +brK +bnG +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(201,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bpY +bnG +bnG +bnG +bnG +bsV +aaa +aab +aaa +aaa +aaa +aab +aaa +aaa +aaa +aab +aaa +bsV +bnG +bnG +bnG +bnG +bpY +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(202,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +brK +brK +bnG +bnG +byx +byx +byx +byx +byx +byx +byx +byx +byx +byx +byx +bnG +bnG +brK +brK +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(203,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +brK +brK +brK +brK +brK +bpX +brK +brK +brK +brK +brK +bpX +brK +brK +brK +brK +brK +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ciY +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(204,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aab +aab +aaa +aaa +aaa +aaa +aab +aab +aab +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(205,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 +ahg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +afL +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +afL +aab +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(206,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(207,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(208,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(209,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(210,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(211,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(212,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(213,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(214,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(215,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(216,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(217,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(218,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(219,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(220,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(221,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(222,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(225,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(228,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(229,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(230,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(231,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(232,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(233,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(234,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(235,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(236,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(237,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(238,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(239,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(240,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(241,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(242,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(243,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(244,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(245,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(246,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(247,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(248,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(249,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(250,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(251,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(252,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(253,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(254,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(255,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 +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm new file mode 100644 index 0000000..4f12296 --- /dev/null +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -0,0 +1,8564 @@ +"aaa" = (/turf/open/space,/area/space) +"aab" = (/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 24; id = "syndicate_n"; name = "north of station"; turf_type = /turf/open/space; width = 18},/turf/open/space,/area/space) +"aac" = (/turf/open/space,/obj/machinery/porta_turret/syndicate{dir = 9},/turf/closed/wall/mineral/plastitanium{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/syndicate) +"aad" = (/turf/closed/wall/mineral/plastitanium,/area/shuttle/syndicate) +"aae" = (/obj/structure/grille,/obj/machinery/door/poddoor/shutters{id = "syndieshutters"; name = "blast shutters"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/shuttle/syndicate) +"aaf" = (/turf/open/space,/obj/machinery/porta_turret/syndicate{dir = 5},/turf/closed/wall/mineral/plastitanium{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/syndicate) +"aag" = (/obj/structure/table,/obj/machinery/microwave,/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aah" = (/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aai" = (/obj/structure/table,/obj/item/device/flashlight/lamp{pixel_x = 4; pixel_y = 1},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aaj" = (/obj/machinery/computer/shuttle/syndicate,/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aak" = (/obj/structure/table,/obj/machinery/button/door{id = "syndieshutters"; name = "remote shutter control"; req_access_txt = "150"},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aal" = (/obj/structure/frame/computer,/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aam" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aan" = (/obj/structure/chair/comfy/beige{dir = 1; icon_state = "comfychair"},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aao" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 10},/obj/item/device/multitool,/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aap" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; freerange = 1; frequency = 1213; name = "Syndicate Intercom"; pixel_y = -32; subspace_transmission = 1; syndie = 1},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aaq" = (/obj/structure/closet/syndicate/personal,/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aar" = (/turf/open/space,/turf/closed/wall/mineral/plastitanium{icon_state = "diagonalWall3"},/area/shuttle/syndicate) +"aas" = (/obj/machinery/door/window{name = "Cockpit"; req_access_txt = "150"},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aat" = (/turf/open/space,/turf/closed/wall/mineral/plastitanium{dir = 4; icon_state = "diagonalWall3"},/area/shuttle/syndicate) +"aau" = (/turf/open/space,/area/shuttle/syndicate) +"aav" = (/obj/structure/table,/obj/item/stack/cable_coil,/obj/item/weapon/crowbar/red,/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aaw" = (/obj/structure/table,/obj/item/weapon/storage/box/zipties{pixel_x = 1; pixel_y = 2},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aax" = (/obj/structure/chair{dir = 8},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aay" = (/obj/effect/landmark{name = "carpspawn"},/turf/open/space,/area/space) +"aaz" = (/obj/machinery/porta_turret/syndicate{dir = 4},/turf/closed/wall/mineral/plastitanium,/area/shuttle/syndicate) +"aaA" = (/obj/machinery/suit_storage_unit/syndicate,/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aaB" = (/obj/structure/closet/syndicate/nuclear,/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aaC" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aaD" = (/obj/structure/table,/obj/item/device/aicard,/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aaE" = (/obj/machinery/door/poddoor{id = "smindicate"; name = "outer blast door"},/obj/machinery/button/door{id = "smindicate"; name = "external door control"; pixel_x = -26; pixel_y = 0; req_access_txt = "150"},/obj/docking_port/mobile{dheight = 9; dir = 2; dwidth = 5; height = 24; id = "syndicate"; name = "syndicate infiltrator"; port_angle = 0; roundstart_move = "syndicate_away"; width = 18},/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 24; id = "syndicate_nw"; name = "northwest of station"; turf_type = /turf/open/space; width = 18},/turf/open/floor/plating,/area/shuttle/syndicate) +"aaF" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/turf/closed/wall/mineral/plastitanium,/area/shuttle/syndicate) +"aaG" = (/obj/structure/table,/obj/item/weapon/c4{pixel_x = 2; pixel_y = -5},/obj/item/weapon/c4{pixel_x = -3; pixel_y = 3},/obj/item/weapon/c4{pixel_x = 2; pixel_y = -3},/obj/item/weapon/c4{pixel_x = -2; pixel_y = -1},/obj/item/weapon/c4{pixel_x = 3; pixel_y = 3},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aaH" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/shuttle/syndicate) +"aaI" = (/obj/machinery/door/window{name = "Ready Room"; req_access_txt = "150"},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aaJ" = (/obj/machinery/door/window{dir = 4; name = "EVA Storage"; req_access_txt = "150"},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aaK" = (/obj/machinery/door/airlock/external{req_access_txt = "150"},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aaL" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "EVA Storage"; req_access_txt = "150"},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aaM" = (/turf/open/space,/turf/closed/wall/mineral/plastitanium{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/syndicate) +"aaN" = (/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 24; id = "syndicate_ne"; name = "northeast of station"; turf_type = /turf/open/space; width = 18},/turf/open/space,/area/space) +"aaO" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; freerange = 1; frequency = 1213; name = "Syndicate Intercom"; pixel_x = -32; subspace_transmission = 1; syndie = 1},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aaP" = (/obj/structure/lattice,/turf/open/space,/area/space) +"aaQ" = (/obj/structure/grille,/obj/structure/lattice,/turf/open/space,/area/space) +"aaR" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/tracker,/turf/open/floor/plating/airless,/area/solar/auxport) +"aaS" = (/obj/machinery/sleeper/syndie{dir = 4},/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"aaT" = (/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"aaU" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"aaV" = (/obj/structure/tank_dispenser/oxygen,/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"aaW" = (/obj/structure/table,/obj/item/stack/medical/ointment,/obj/item/stack/medical/bruise_pack,/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"aaX" = (/obj/structure/table,/obj/item/weapon/stock_parts/cell/high{pixel_x = -3; pixel_y = 3},/obj/item/weapon/stock_parts/cell/high,/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aaY" = (/obj/structure/table,/obj/item/weapon/screwdriver{pixel_y = 9},/obj/item/device/assembly/voice{pixel_y = 3},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aaZ" = (/obj/structure/table,/obj/item/weapon/wrench,/obj/item/device/assembly/infra,/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aba" = (/obj/structure/table,/obj/item/device/assembly/signaler,/obj/item/device/assembly/signaler,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"abb" = (/obj/structure/table,/obj/item/weapon/weldingtool/largetank{pixel_y = 3},/obj/item/device/multitool,/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"abc" = (/obj/structure/grille/broken,/obj/structure/lattice,/turf/open/space,/area/space) +"abd" = (/obj/structure/grille,/turf/open/space,/area/space) +"abe" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxport) +"abf" = (/obj/structure/bed/roller,/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"abg" = (/obj/structure/sign/bluecross_2,/turf/closed/wall/mineral/plastitanium,/area/shuttle/syndicate) +"abh" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/syndicate,/obj/item/weapon/crowbar/red,/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"abi" = (/obj/machinery/door/window{dir = 4; name = "Infirmary"; req_access_txt = "150"},/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"abj" = (/obj/machinery/door/window/westright{name = "Tool Storage"; req_access_txt = "150"},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"abk" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar{id = "foreport"; name = "Fore-Port Solar Array"},/turf/open/floor/plasteel/airless/solarpanel,/area/solar/auxport) +"abl" = (/obj/structure/cable,/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxport) +"abm" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Infirmary"; req_access_txt = "150"},/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"abn" = (/obj/machinery/door/window{dir = 8; name = "Tool Storage"; req_access_txt = "150"},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"abo" = (/obj/machinery/recharge_station,/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"abp" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxport) +"abq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxport) +"abr" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxport) +"abs" = (/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxport) +"abt" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxport) +"abu" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxport) +"abv" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxport) +"abw" = (/obj/effect/landmark{name = "Marauder Entry"},/turf/open/space,/area/space) +"abx" = (/obj/machinery/porta_turret/syndicate{dir = 5},/turf/closed/wall/mineral/plastitanium,/area/shuttle/syndicate) +"aby" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table,/obj/item/bodypart/r_arm/robot,/obj/item/bodypart/l_arm/robot,/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"abz" = (/obj/machinery/door/window{dir = 1; name = "Surgery"; req_access_txt = "150"},/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"abA" = (/obj/structure/window/reinforced{dir = 1},/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"abB" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/storage/firstaid/regular{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/brute,/obj/item/weapon/storage/firstaid/regular{pixel_x = -3; pixel_y = -3},/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"abC" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = -3; pixel_y = -3},/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"abD" = (/obj/structure/table,/obj/item/device/sbeacondrop/bomb{pixel_y = 5},/obj/item/device/sbeacondrop/bomb,/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"abE" = (/obj/structure/table,/obj/item/weapon/grenade/syndieminibomb{pixel_x = 4; pixel_y = 2},/obj/item/weapon/grenade/syndieminibomb{pixel_x = -1},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"abF" = (/obj/structure/cable,/obj/machinery/power/solar{id = "foreport"; name = "Fore-Port Solar Array"},/turf/open/floor/plasteel/airless/solarpanel,/area/solar/auxport) +"abG" = (/obj/structure/table,/obj/item/weapon/surgicaldrill,/obj/item/weapon/circular_saw,/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"abH" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/mirror{pixel_x = 30},/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"abI" = (/obj/machinery/nuclearbomb/syndicate,/obj/machinery/door/window{dir = 1; name = "Secure Storage"; req_access_txt = "150"},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"abJ" = (/obj/machinery/telecomms/allinone{intercept = 1},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"abK" = (/obj/structure/table,/obj/item/weapon/cautery,/obj/item/weapon/scalpel,/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"abL" = (/obj/structure/table/optable,/obj/item/weapon/surgical_drapes,/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"abM" = (/obj/structure/table,/obj/item/weapon/retractor,/obj/item/weapon/hemostat,/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"abN" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating,/area/shuttle/syndicate) +"abO" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"abP" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/rods{amount = 50},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"abQ" = (/obj/structure/rack,/obj/item/clothing/suit/space/syndicate/black/red,/obj/item/clothing/head/helmet/space/syndicate/black/red,/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"abR" = (/obj/item/stack/cable_coil,/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxport) +"abS" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"},/turf/open/floor/plating,/area/shuttle/syndicate) +"abT" = (/obj/structure/shuttle/engine/propulsion,/turf/open/floor/plating,/area/shuttle/syndicate) +"abU" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"},/turf/open/floor/plating,/area/shuttle/syndicate) +"abV" = (/turf/open/space,/obj/machinery/porta_turret/syndicate{dir = 6},/turf/closed/wall/mineral/plastitanium{dir = 4; icon_state = "diagonalWall3"},/area/shuttle/syndicate) +"abW" = (/turf/open/space,/obj/machinery/porta_turret/syndicate{dir = 10},/turf/closed/wall/mineral/plastitanium{icon_state = "diagonalWall3"},/area/shuttle/syndicate) +"abX" = (/turf/closed/wall/r_wall,/area/security/prison) +"abY" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/open/floor/plating,/area/security/prison) +"abZ" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxport) +"aca" = (/obj/machinery/seed_extractor,/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"acb" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-03"; layer = 4.1},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"acc" = (/obj/structure/sink/kitchen{desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; name = "old sink"; pixel_y = 28},/turf/open/floor/plating{icon_state = "platingdmg3"},/area/security/prison) +"acd" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/weapon/twohanded/required/kirbyplants{layer = 4.1},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"ace" = (/obj/machinery/biogenerator,/obj/machinery/light/small{dir = 4},/obj/machinery/camera{c_tag = "Prison Hydroponics"; network = list("SS13","Prison")},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"acf" = (/obj/docking_port/stationary/random{id = "pod_asteroid2"; name = "asteroid"},/turf/open/space,/area/space) +"acg" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/open/floor/plating,/area/security/prison) +"ach" = (/obj/machinery/hydroponics/constructable,/obj/item/seeds/ambrosia,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"aci" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"acj" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"ack" = (/obj/item/weapon/reagent_containers/glass/bucket,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"acl" = (/obj/machinery/hydroponics/constructable,/obj/item/seeds/glowshroom,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"acm" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/security/prison) +"acn" = (/turf/closed/wall/mineral/titanium,/area/shuttle/pod_2) +"aco" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/pod_2) +"acp" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/tracker,/turf/open/floor/plating/airless,/area/solar/auxstarboard) +"acq" = (/obj/machinery/hydroponics/constructable,/obj/item/weapon/cultivator,/obj/item/seeds/carrot,/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"acr" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/weapon/reagent_containers/glass/bucket,/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"acs" = (/turf/open/floor/plasteel,/area/security/prison) +"act" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"acu" = (/obj/machinery/hydroponics/constructable,/obj/item/device/plant_analyzer,/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"acv" = (/turf/open/space,/turf/closed/wall/mineral/plastitanium{dir = 8; icon_state = "diagonalWall3"},/area/space) +"acw" = (/obj/structure/chair{dir = 1},/obj/machinery/status_display{density = 0; layer = 3; pixel_x = 32; pixel_y = 0},/obj/machinery/computer/shuttle/pod{pixel_x = -32; possible_destinations = "pod_asteroid2"; shuttleId = "pod2"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/pod_2) +"acx" = (/turf/open/space,/turf/closed/wall/mineral/plastitanium{dir = 1; icon_state = "diagonalWall3"},/area/space) +"acy" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxstarboard) +"acz" = (/turf/closed/wall/r_wall,/area/prison/solitary{name = "Prisoner Education Chamber"}) +"acA" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/structure/cable/yellow,/turf/open/floor/plating,/area/security/prison) +"acB" = (/obj/machinery/door/airlock/glass{id_tag = "permahydro"; name = "Hydroponics Module"},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"acC" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/security/prison) +"acD" = (/obj/structure/chair{dir = 1},/obj/item/device/radio/intercom{pixel_x = 25},/obj/item/weapon/storage/pod{pixel_x = -26},/turf/open/floor/mineral/titanium/blue,/area/shuttle/pod_2) +"acE" = (/turf/closed/wall,/area/security/prison) +"acF" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxport) +"acG" = (/obj/machinery/door/poddoor{density = 1; icon_state = "closed"; id = "SecJusticeChamber"; name = "Justice Vent"; opacity = 1},/turf/open/floor/plating/warnplate{dir = 1},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"acH" = (/obj/item/weapon/soap/nanotrasen,/obj/item/weapon/bikehorn/rubberducky,/obj/machinery/shower{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/freezer,/area/security/prison) +"acI" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/sink/kitchen{desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; name = "old sink"; pixel_y = 28},/turf/open/floor/plasteel/freezer,/area/security/prison) +"acJ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/easel,/obj/item/weapon/canvas/twentythreeXtwentythree,/obj/item/weapon/canvas/twentythreeXtwentythree,/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"acK" = (/obj/structure/table,/obj/item/weapon/folder,/obj/item/weapon/paper/hydroponics,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/weapon/pen,/obj/item/weapon/storage/crayons,/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"acL" = (/obj/structure/table,/obj/machinery/computer/libraryconsole/bookmanagement,/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"acM" = (/obj/machinery/computer/arcade,/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 0; pixel_y = 32},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"acN" = (/obj/machinery/newscaster{pixel_x = 0; pixel_y = 32},/turf/open/floor/plasteel,/area/security/prison) +"acO" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"acP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"acQ" = (/obj/structure/holohoop{pixel_y = 29},/obj/item/toy/beach_ball{icon = 'icons/obj/basketball.dmi'; icon_state = "basketball"; item_state = "basketball"; name = "basket ball"},/turf/open/floor/plating{icon_state = "platingdmg1"},/area/security/prison) +"acR" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/open/floor/plasteel/barber{dir = 8},/area/security/prison) +"acS" = (/obj/machinery/washing_machine,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/barber{dir = 8},/area/security/prison) +"acT" = (/obj/structure/shuttle/engine/propulsion/burst,/turf/closed/wall/mineral/titanium,/area/shuttle/pod_2) +"acU" = (/obj/machinery/door/airlock/shuttle{name = "Escape Pod Airlock"},/obj/docking_port/mobile/pod{id = "pod2"; name = "escape pod 2"; port_angle = 180},/turf/open/floor/mineral/titanium/blue,/area/shuttle/pod_2) +"acV" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar{id = "forestarboard"; name = "Fore-Starboard Solar Array"},/turf/open/floor/plasteel/airless/solarpanel,/area/solar/auxstarboard) +"acW" = (/obj/structure/cable,/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxstarboard) +"acX" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/turf/open/floor/plasteel/darkwarning{dir = 9},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"acY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/darkwarning{dir = 1},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"acZ" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/darkwarning{dir = 5},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"ada" = (/obj/machinery/shower{dir = 4},/turf/open/floor/plasteel/freezer,/area/security/prison) +"adb" = (/obj/machinery/door/window/westleft{base_state = "right"; dir = 4; icon_state = "right"; name = "Unisex Showers"; req_access_txt = "0"},/obj/machinery/light/small,/turf/open/floor/plasteel/freezer,/area/security/prison) +"adc" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"add" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"ade" = (/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"adf" = (/obj/structure/table,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = 3},/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_x = -3; pixel_y = 5},/turf/open/floor/plasteel,/area/security/prison) +"adg" = (/obj/structure/table,/obj/item/toy/cards/deck,/obj/item/toy/cards/deck,/turf/open/floor/plasteel,/area/security/prison) +"adh" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"adi" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"adj" = (/obj/structure/window/reinforced,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/barber{dir = 8},/area/security/prison) +"adk" = (/obj/structure/table,/obj/structure/bedsheetbin,/obj/structure/window/reinforced,/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/barber{dir = 8},/area/security/prison) +"adl" = (/turf/open/floor/plating,/area/security/prison) +"adm" = (/turf/open/floor/plating/warnplate{dir = 1},/area/security/prison) +"adn" = (/turf/open/floor/plating{icon_state = "platingdmg3"},/area/security/prison) +"ado" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxstarboard) +"adp" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxstarboard) +"adq" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxstarboard) +"adr" = (/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxstarboard) +"ads" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxstarboard) +"adt" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxstarboard) +"adu" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxstarboard) +"adv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/light/small{dir = 8},/obj/machinery/sparker{dir = 2; id = "executionburn"; pixel_x = -25},/turf/open/floor/plasteel/darkwarning{dir = 8},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"adw" = (/obj/structure/bed,/obj/item/clothing/suit/straight_jacket,/obj/item/clothing/glasses/sunglasses/blindfold,/obj/item/clothing/mask/muzzle,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/landmark{name = "revenantspawn"},/obj/item/device/electropack,/turf/open/floor/plasteel/black,/area/prison/solitary{name = "Prisoner Education Chamber"}) +"adx" = (/obj/machinery/flasher{id = "justiceflash"; name = "mounted justice flash"; pixel_x = 28},/turf/open/floor/plasteel/darkwarning{dir = 4},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"ady" = (/obj/machinery/door/airlock{name = "Unisex Restroom"; req_access_txt = "0"},/turf/open/floor/plasteel/freezer,/area/security/prison) +"adz" = (/obj/structure/table,/obj/item/weapon/book/manual/chef_recipes{pixel_x = 2; pixel_y = 6},/obj/item/clothing/head/chefhat,/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"adA" = (/obj/structure/table,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/toy/cards/deck,/obj/item/toy/cards/deck,/turf/open/floor/plasteel,/area/security/prison) +"adB" = (/obj/structure/table,/obj/item/weapon/storage/pill_bottle/dice,/turf/open/floor/plasteel,/area/security/prison) +"adC" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/security/prison) +"adD" = (/obj/machinery/vending/coffee,/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"adE" = (/obj/machinery/vending/sustenance{desc = "A vending machine normally reserved for work camps."; name = "\improper sustenance vendor"; product_slogans = "Enjoy your meal.;Enough calories to support any worker."},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"adF" = (/turf/open/floor/plating/warnplate{icon_plating = "warnplate"},/area/security/prison) +"adG" = (/obj/machinery/light/small,/turf/open/floor/plating{icon_state = "panelscorched"},/area/security/prison) +"adH" = (/turf/open/floor/plating/warnplate{dir = 4},/area/security/prison) +"adI" = (/obj/machinery/door/airlock/external{name = "Security External Airlock"; req_access_txt = "1"},/turf/open/floor/plating,/area/security/prison) +"adJ" = (/obj/machinery/light/small{dir = 1},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/open/floor/plating/warnplate{dir = 4},/area/security/prison) +"adK" = (/obj/structure/lattice/catwalk,/turf/open/space,/area/space) +"adL" = (/obj/structure/cable,/obj/machinery/power/solar{id = "forestarboard"; name = "Fore-Starboard Solar Array"},/turf/open/floor/plasteel/airless/solarpanel,/area/solar/auxstarboard) +"adM" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/darkwarning{dir = 10},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"adN" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel/darkwarning{dir = 2},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"adO" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 2; name = "justice injector"},/turf/open/floor/plasteel/darkwarning{dir = 6},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"adP" = (/obj/machinery/light/small{dir = 4},/obj/structure/toilet{dir = 4},/turf/open/floor/plasteel/freezer,/area/security/prison) +"adQ" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 2; pixel_y = 1},/obj/machinery/airalarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/open/floor/plating{icon_state = "panelscorched"},/area/security/prison) +"adR" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"adS" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel,/area/security/prison) +"adT" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"adU" = (/obj/machinery/holopad,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"adV" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"adW" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"adX" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"adY" = (/obj/machinery/door/airlock/external{name = "Escape Pod Two"},/turf/open/floor/plating,/area/security/prison) +"adZ" = (/obj/item/stack/cable_coil,/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxstarboard) +"aea" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/poddoor/preopen{id = "executionfireblast"; layer = 2.9; name = "blast door"},/obj/machinery/door/firedoor,/turf/open/floor/plasteel/darkred{dir = 4},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"aeb" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "executionfireblast"; layer = 2.9; name = "blast door"},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel/darkred{dir = 4},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"aec" = (/obj/machinery/door/window/brigdoor{dir = 2; name = "Justice Chamber"; req_access_txt = "3"},/obj/machinery/atmospherics/pipe/simple/general/hidden,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/window/brigdoor{dir = 1; name = "Justice Chamber"; req_access_txt = "3"},/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/preopen{id = "executionfireblast"; layer = 2.9; name = "blast door"},/turf/open/floor/plasteel/darkred{dir = 4},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"aed" = (/obj/structure/table,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/turf/open/floor/plating{icon_state = "platingdmg1"},/area/security/prison) +"aee" = (/turf/open/floor/plating{icon_state = "panelscorched"},/area/security/prison) +"aef" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/light,/turf/open/floor/plasteel,/area/security/prison) +"aeg" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-13"},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"aeh" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/obj/item/device/radio/intercom{desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; pixel_x = 0; pixel_y = -28; prison_radio = 1},/obj/machinery/camera{c_tag = "Prison Chamber"; dir = 1; network = list("SS13","Prison")},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"aei" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"aej" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/prison) +"aek" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"ael" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/obj/machinery/light,/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"aem" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"aen" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/glass/bottle/morphine{pixel_y = 6},/turf/open/floor/plasteel/whitered/side{dir = 1},/area/security/prison) +"aeo" = (/obj/machinery/newscaster{pixel_x = 0; pixel_y = 32},/obj/structure/table/glass,/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 4; pixel_y = 4},/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = -5; pixel_y = 6},/obj/item/weapon/reagent_containers/dropper,/turf/open/floor/plasteel/whitered/side{dir = 1},/area/security/prison) +"aep" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/glass/bottle/morphine{pixel_y = 6},/obj/machinery/camera{c_tag = "Prison Sanitarium"; dir = 2; network = list("SS13","Prison"); pixel_x = 0; pixel_y = 0},/turf/open/floor/plasteel/whitered/side{dir = 1},/area/security/prison) +"aeq" = (/turf/closed/wall,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"aer" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"aes" = (/turf/closed/wall,/area/space) +"aet" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxport) +"aeu" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxport) +"aev" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxport) +"aew" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/bottle/morphine{pixel_x = -4; pixel_y = 1},/obj/item/weapon/reagent_containers/glass/bottle/chloralhydrate{name = "chloral hydrate bottle"},/obj/item/weapon/reagent_containers/glass/bottle/toxin{pixel_x = 6; pixel_y = 8},/obj/item/weapon/reagent_containers/glass/bottle/morphine{pixel_x = 5; pixel_y = 1},/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/glass/bottle/facid{name = "fluorosulfuric acid bottle"; pixel_x = -3; pixel_y = 6},/obj/item/weapon/reagent_containers/syringe{pixel_y = 5},/obj/item/weapon/reagent_containers/dropper,/obj/machinery/airalarm{desc = "This particular atmos control unit appears to have no access restrictions."; dir = 4; icon_state = "alarm0"; locked = 0; name = "all-access air alarm"; pixel_x = -24; req_access = "0"; req_one_access = "0"},/obj/machinery/button/ignition{id = "executionburn"; name = "Justice Ignition Switch"; pixel_x = -25; pixel_y = 36},/obj/machinery/button/door{id = "executionfireblast"; name = "Justice Area Lockdown"; pixel_x = -25; pixel_y = 26; req_access_txt = "2"},/obj/item/device/assembly/signaler{pixel_x = -3; pixel_y = 2},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/obj/machinery/button/flasher{id = "justiceflash"; name = "Justice Flash Control"; pixel_x = -36; pixel_y = 36; req_access_txt = "1"},/obj/machinery/button/door{dir = 2; id = "SecJusticeChamber"; layer = 4; name = "Justice Vent Control"; pixel_x = -36; pixel_y = 26; req_access_txt = "3"},/turf/open/floor/plasteel/darkred/side{dir = 1},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"aex" = (/obj/structure/table,/obj/item/weapon/folder/red{pixel_x = 3},/obj/item/device/taperecorder{pixel_x = -3; pixel_y = 0},/obj/item/weapon/storage/fancy/cigarettes,/obj/item/device/assembly/flash/handheld,/obj/item/weapon/reagent_containers/spray/pepper,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/darkred/side{dir = 1},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"aey" = (/obj/machinery/atmospherics/pipe/simple/general/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/darkred/side{dir = 1},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"aez" = (/obj/structure/sink/kitchen{desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; name = "old sink"; pixel_y = 28},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/darkred/side{dir = 1},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"aeA" = (/obj/machinery/power/apc{cell_type = 2500; dir = 1; name = "Prisoner Education Chamber APC"; pixel_y = 24},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/structure/closet/secure_closet/injection{name = "educational injections"; pixel_x = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/darkred/side{dir = 1},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"aeB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/closed/wall/r_wall,/area/security/prison) +"aeC" = (/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "permacell3"; name = "Cell Shutters"; opacity = 0},/obj/machinery/door/airlock/glass{id_tag = "permabolt3"; name = "Cell 3"},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"aeD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/security/prison) +"aeE" = (/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "permacell2"; name = "Cell Shutters"; opacity = 0},/obj/machinery/door/airlock/glass{id_tag = "permabolt2"; name = "Cell 2"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"aeF" = (/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "permacell1"; name = "Cell Shutters"; opacity = 0},/obj/machinery/door/airlock/glass{id_tag = "permabolt1"; name = "Cell 1"},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"aeG" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plating,/area/security/prison) +"aeH" = (/obj/structure/bed,/obj/item/clothing/suit/straight_jacket,/obj/item/clothing/glasses/sunglasses/blindfold,/obj/item/clothing/mask/muzzle,/obj/effect/landmark{name = "revenantspawn"},/turf/open/floor/plasteel/white,/area/security/prison) +"aeI" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/white,/area/security/prison) +"aeJ" = (/obj/structure/bed,/obj/item/clothing/suit/straight_jacket,/obj/item/clothing/glasses/sunglasses/blindfold,/obj/item/clothing/mask/muzzle,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/landmark{name = "revenantspawn"},/turf/open/floor/plasteel/white,/area/security/prison) +"aeK" = (/obj/structure/closet/emcloset,/obj/machinery/light/small{dir = 8},/turf/open/floor/plating,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"aeL" = (/obj/structure/shuttle/engine/propulsion/burst{dir = 4},/turf/closed/wall/mineral/titanium,/area/shuttle/pod_3) +"aeM" = (/turf/closed/wall/mineral/titanium,/area/shuttle/pod_3) +"aeN" = (/obj/structure/table,/obj/item/device/flashlight/lamp,/obj/structure/reagent_dispensers/peppertank{pixel_x = -29; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/black,/area/prison/solitary{name = "Prisoner Education Chamber"}) +"aeO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/chair/office/dark{dir = 1},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/black,/area/prison/solitary{name = "Prisoner Education Chamber"}) +"aeP" = (/obj/machinery/atmospherics/pipe/simple/general/hidden,/turf/open/floor/plasteel/black,/area/prison/solitary{name = "Prisoner Education Chamber"}) +"aeQ" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/prison/solitary{name = "Prisoner Education Chamber"}) +"aeR" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/firealarm{dir = 4; pixel_x = 28},/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/black,/area/prison/solitary{name = "Prisoner Education Chamber"}) +"aeS" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall/r_wall,/area/prison/solitary{name = "Prisoner Education Chamber"}) +"aeT" = (/obj/structure/bed,/obj/machinery/camera{c_tag = "Prison Cell 3"; network = list("SS13","Prison")},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"aeU" = (/obj/structure/chair/stool,/obj/machinery/light/small{dir = 1},/obj/machinery/button/door{id = "permabolt3"; name = "Cell Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"aeV" = (/obj/structure/bed,/obj/machinery/camera{c_tag = "Prison Cell 2"; network = list("SS13","Prison")},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"aeW" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"aeX" = (/obj/structure/chair/stool,/obj/machinery/light/small{dir = 1},/obj/machinery/button/door{id = "permabolt2"; name = "Cell Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4},/turf/open/floor/plating{icon_state = "platingdmg2"},/area/security/prison) +"aeY" = (/obj/structure/bed,/obj/machinery/camera{c_tag = "Prison Cell 1"; network = list("SS13","Prison")},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"aeZ" = (/obj/structure/chair/stool,/obj/machinery/light/small{dir = 1},/obj/machinery/button/door{id = "permabolt1"; name = "Cell Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"afa" = (/turf/open/floor/plating{icon_state = "platingdmg1"},/area/security/prison) +"afb" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/light{dir = 8},/obj/machinery/airalarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/open/floor/plasteel/white,/area/security/prison) +"afc" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/white,/area/security/prison) +"afd" = (/obj/machinery/flasher{id = "insaneflash"; pixel_x = 26},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/turf/open/floor/plasteel/white,/area/security/prison) +"afe" = (/obj/structure/lattice,/obj/machinery/camera/motion{c_tag = "Armory - External"; dir = 1; network = list("SS13")},/turf/open/space,/area/space) +"aff" = (/turf/open/floor/plating,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"afg" = (/obj/machinery/door/airlock/shuttle{name = "Escape Pod Airlock"},/obj/docking_port/mobile/pod{dir = 4; id = "pod3"; name = "escape pod 3"; port_angle = 180; preferred_direction = 4},/turf/open/floor/mineral/titanium/blue,/area/shuttle/pod_3) +"afh" = (/obj/structure/chair{dir = 4},/obj/item/device/radio/intercom{pixel_y = 25},/obj/item/weapon/storage/pod{pixel_x = 6; pixel_y = -32},/turf/open/floor/mineral/titanium/blue,/area/shuttle/pod_3) +"afi" = (/obj/structure/chair{dir = 4},/obj/machinery/status_display{density = 0; layer = 3; pixel_x = 0; pixel_y = 32},/obj/machinery/computer/shuttle/pod{pixel_y = -32; possible_destinations = "pod_asteroid3"; shuttleId = "pod3"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/pod_3) +"afj" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/pod_3) +"afk" = (/obj/docking_port/stationary/random{dir = 4; id = "pod_asteroid3"; name = "asteroid"},/turf/open/space,/area/space) +"afl" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -28; pixel_y = 0},/obj/structure/table,/obj/item/weapon/storage/backpack/dufflebag/sec{contents = newlist(/obj/item/weapon/scalpel,/obj/item/weapon/hemostat,/obj/item/weapon/retractor,/obj/item/weapon/cautery,/obj/item/weapon/circular_saw,/obj/item/weapon/surgical_drapes,/obj/item/clothing/mask/surgical); desc = "A large dufflebag for holding extra supplies - this one has a material inlay with space for various sharp-looking tools."; name = "dufflebag"; pixel_y = 5},/obj/item/clothing/mask/balaclava,/obj/item/weapon/reagent_containers/spray/cleaner{pixel_x = 5},/turf/open/floor/plasteel/darkred/side{dir = 2},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"afm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/darkred/side{dir = 2},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"afn" = (/obj/machinery/atmospherics/pipe/simple/general/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/darkred/side{dir = 2},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"afo" = (/obj/machinery/button/door{id = "prisonereducation"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = -25; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/turf/open/floor/plasteel/darkred/side{dir = 2},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"afp" = (/obj/machinery/light_switch{pixel_x = 26; pixel_y = 0},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/darkred/side{dir = 2},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"afq" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/obj/machinery/flasher{id = "PCell 3"; pixel_x = -28},/turf/open/floor/plating{icon_state = "platingdmg3"},/area/security/prison) +"afr" = (/obj/structure/table,/obj/item/weapon/paper,/obj/item/weapon/pen,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"afs" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/turf/closed/wall,/area/security/prison) +"aft" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/obj/machinery/flasher{id = "PCell 2"; pixel_x = -28},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"afu" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"afv" = (/obj/structure/table,/obj/item/weapon/paper,/obj/item/weapon/pen,/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"afw" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/obj/machinery/flasher{id = "PCell 1"; pixel_x = -28},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"afx" = (/obj/item/weapon/folder/red,/obj/item/weapon/pen,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/table/glass,/turf/open/floor/plasteel/whitered/side{dir = 2},/area/security/prison) +"afy" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/whitered/side{dir = 2},/area/security/prison) +"afz" = (/obj/structure/bed/roller,/obj/structure/bed/roller,/obj/machinery/iv_drip{density = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/iv_drip{density = 0},/turf/open/floor/plasteel/whitered/side{dir = 2},/area/security/prison) +"afA" = (/turf/closed/wall/r_wall,/area/ai_monitored/security/armory) +"afB" = (/turf/closed/wall/r_wall,/area/security/hos) +"afC" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/door/poddoor/preopen{id = "hosspace"; name = "space shutters"},/turf/open/floor/plating,/area/security/hos) +"afD" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/door/poddoor/preopen{id = "hosspace"; name = "space shutters"},/turf/open/floor/plating,/area/security/hos) +"afE" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "hosspace"; name = "space shutters"},/turf/open/floor/plating,/area/security/hos) +"afF" = (/turf/open/floor/plating/warnplate{dir = 2},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"afG" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/auxsolarport) +"afH" = (/obj/machinery/door/airlock/external{name = "Solar Maintenance"; req_access = null; req_access_txt = "10; 13"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/auxsolarport) +"afI" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plasteel/black,/area/prison/solitary{name = "Prisoner Education Chamber"}) +"afJ" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 10},/obj/machinery/meter,/obj/machinery/door/window/westleft{base_state = "left"; dir = 1; icon_state = "left"; name = "gas ports"; req_access_txt = "0"},/turf/open/floor/plasteel/black,/area/prison/solitary{name = "Prisoner Education Chamber"}) +"afK" = (/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "justice gas pump"},/obj/machinery/door/window/westleft{base_state = "right"; dir = 1; icon_state = "right"; name = "gas ports"; req_access_txt = "0"},/turf/open/floor/plasteel/black,/area/prison/solitary{name = "Prisoner Education Chamber"}) +"afL" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/security{aiControlDisabled = 1; id_tag = "prisonereducation"; name = "Prisoner Education Chamber"; req_access = null; req_access_txt = "3"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/side{dir = 1},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"afM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall/r_wall,/area/security/prison) +"afN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/security/prison) +"afO" = (/obj/machinery/door/airlock/glass_security{name = "Long-Term Cell 3"; req_access_txt = "2"},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"afP" = (/obj/machinery/door/airlock/glass_security{name = "Long-Term Cell 2"; req_access_txt = "2"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"afQ" = (/obj/machinery/door/airlock/glass_security{name = "Long-Term Cell 1"; req_access_txt = "2"},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"afR" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Prison Sanitarium"; req_access_txt = "2"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/prison) +"afS" = (/obj/structure/closet/secure_closet{name = "contraband locker"; req_access_txt = "3"},/obj/effect/spawner/lootdrop/maintenance{lootcount = 3; name = "3maintenance loot spawner"},/obj/effect/spawner/lootdrop/armory_contraband{loot = list(/obj/item/weapon/gun/projectile/automatic/pistol = 5, /obj/item/weapon/gun/projectile/shotgun/automatic/combat = 5, /obj/item/weapon/gun/projectile/revolver/mateba, /obj/item/weapon/gun/projectile/automatic/pistol/deagle, /obj/item/weapon/storage/box/syndie_kit/throwing_weapons = 3)},/turf/open/floor/plasteel/vault{dir = 4},/area/ai_monitored/security/armory) +"afT" = (/obj/structure/rack,/obj/item/weapon/gun/energy/ionrifle{pin = /obj/item/device/firing_pin},/obj/machinery/light{dir = 1},/obj/item/weapon/gun/energy/temperature/security,/obj/item/clothing/suit/armor/laserproof,/turf/open/floor/plasteel/vault{dir = 4},/area/ai_monitored/security/armory) +"afU" = (/obj/structure/closet/secure_closet/lethalshots,/turf/open/floor/plasteel/vault{dir = 1},/area/ai_monitored/security/armory) +"afV" = (/obj/structure/table/wood,/obj/machinery/newscaster/security_unit{pixel_x = 0; pixel_y = 32},/obj/item/weapon/folder/red,/obj/item/weapon/folder/red,/obj/machinery/keycard_auth{pixel_x = -26; pixel_y = 23},/obj/machinery/button/door{id = "hosspace"; name = "Space Shutters Control"; pixel_x = -26; pixel_y = 34},/turf/open/floor/plasteel/black,/area/security/hos) +"afW" = (/obj/machinery/computer/prisoner,/turf/open/floor/plasteel/black,/area/security/hos) +"afX" = (/obj/machinery/computer/security,/turf/open/floor/plasteel/black,/area/security/hos) +"afY" = (/obj/machinery/computer/secure_data,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/security/hos) +"afZ" = (/obj/structure/table/wood,/obj/machinery/requests_console{announcementConsole = 1; department = "Head of Security's Desk"; departmentType = 5; name = "Head of Security RC"; pixel_x = 0; pixel_y = 30},/obj/machinery/computer/med_data/laptop,/obj/item/weapon/storage/secure/safe/HoS{pixel_x = 36; pixel_y = 28},/obj/machinery/camera{c_tag = "Head of Security's Office"; dir = 2; network = list("SS13")},/turf/open/floor/plasteel/black,/area/security/hos) +"aga" = (/turf/closed/wall,/area/security/range) +"agb" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/range) +"agc" = (/obj/machinery/door/airlock/external{name = "Escape Pod Three"},/turf/open/floor/plating,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"agd" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/closed/wall,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"age" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"agf" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/effect/landmark{name = "Syndicate Breach Area"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"agg" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"agh" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxstarboard) +"agi" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/auxsolarport) +"agj" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/canister/nitrous_oxide,/turf/open/floor/plasteel/vault,/area/prison/solitary{name = "Prisoner Education Chamber"}) +"agk" = (/obj/item/weapon/tank/internals/oxygen/red{pixel_x = -4; pixel_y = -1},/obj/item/weapon/tank/internals/oxygen/red{pixel_x = 4; pixel_y = -1},/obj/item/weapon/tank/internals/anesthetic{pixel_x = 2},/obj/item/weapon/storage/toolbox/mechanical,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/machinery/atmospherics/pipe/manifold/general/visible,/obj/item/weapon/wrench,/turf/open/floor/plasteel/vault,/area/prison/solitary{name = "Prisoner Education Chamber"}) +"agl" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 9},/obj/machinery/space_heater,/turf/open/floor/plasteel/vault,/area/prison/solitary{name = "Prisoner Education Chamber"}) +"agm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/red/corner{dir = 2},/area/security/prison) +"agn" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/sign/securearea{desc = "A warning sign which reads 'WARNING: Do Not Enter When Red Light Shows', detailing the penalties that any NanoTrasen employee or silicon will suffer if violating this rule."; name = "WARNING: Do Not Enter When Red Light Shows"; pixel_y = 32},/turf/open/floor/plasteel/red/corner{dir = 2},/area/security/prison) +"ago" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/red/corner{dir = 2},/area/security/prison) +"agp" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/red/corner{dir = 2},/area/security/prison) +"agq" = (/obj/machinery/button/door{id = "permacell3"; name = "Cell 3 Lockdown"; pixel_x = -4; pixel_y = 25; req_access_txt = "2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/button/flasher{id = "PCell 3"; pixel_x = 6; pixel_y = 24},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/red/corner{dir = 2},/area/security/prison) +"agr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/computer/security/telescreen{desc = "Used for watching Prison Wing holding areas."; name = "Prison Monitor"; network = list("Prison"); pixel_x = 0; pixel_y = 30},/obj/machinery/camera{c_tag = "Prison Hallway Port"; network = list("SS13","Prison")},/turf/open/floor/plasteel/red/corner{dir = 2},/area/security/prison) +"ags" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/red/corner{dir = 2},/area/security/prison) +"agt" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/red/corner{dir = 2},/area/security/prison) +"agu" = (/obj/machinery/button/door{id = "permacell2"; name = "Cell 2 Lockdown"; pixel_x = -4; pixel_y = 25; req_access_txt = "2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/button/flasher{id = "PCell 2"; pixel_x = 6; pixel_y = 24},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/red/corner{dir = 2},/area/security/prison) +"agv" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/computer/security/telescreen{desc = "Used for watching Prison Wing holding areas."; name = "Prison Monitor"; network = list("Prison"); pixel_x = 0; pixel_y = 30},/turf/open/floor/plasteel/red/corner{dir = 2},/area/security/prison) +"agw" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/red/corner{dir = 2},/area/security/prison) +"agx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/red/corner{dir = 2},/area/security/prison) +"agy" = (/obj/machinery/button/door{id = "permacell1"; name = "Cell 1 Lockdown"; pixel_x = -4; pixel_y = 25; req_access_txt = "2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/button/flasher{id = "PCell 1"; pixel_x = 6; pixel_y = 24},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/red/corner{dir = 2},/area/security/prison) +"agz" = (/obj/machinery/power/apc{cell_type = 5000; dir = 1; name = "Prison Wing APC"; pixel_x = 1; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/camera{c_tag = "Prison Hallway Starboard"; dir = 2; network = list("SS13","Prison")},/turf/open/floor/plasteel/red/corner{dir = 2},/area/security/prison) +"agA" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/red/corner{dir = 2},/area/security/prison) +"agB" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/structure/sign/pods{pixel_y = 30},/turf/open/floor/plasteel/red/corner{dir = 2},/area/security/prison) +"agC" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/button/flasher{id = "insaneflash"; pixel_y = 26},/turf/open/floor/plasteel/red/corner{dir = 2},/area/security/prison) +"agD" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{icon_state = "4-8"; d1 = 4; d2 = 8},/turf/open/floor/plasteel/red/corner{dir = 2},/area/security/prison) +"agE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-16"; layer = 4.1},/obj/structure/sign/securearea{desc = "A warning sign which reads 'WARNING: Criminally Insane Inmates', describing the possible hazards of those contained within."; name = "WARNING: Criminally Insane Inmates"; pixel_y = 32},/obj/structure/cable/yellow{icon_state = "4-8"; d1 = 4; d2 = 8},/turf/open/floor/plasteel,/area/security/prison) +"agF" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating,/area/security/prison) +"agG" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/obj/item/weapon/storage/secure/safe{name = "armory safe A"; pixel_x = 6; pixel_y = 28},/turf/open/floor/plasteel/black,/area/ai_monitored/security/armory) +"agH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/black,/area/ai_monitored/security/armory) +"agI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/ai_monitored/security/armory) +"agJ" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/item/weapon/storage/secure/safe{name = "armory safe B"; pixel_x = 6; pixel_y = 28},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/plasteel/black,/area/ai_monitored/security/armory) +"agK" = (/obj/structure/closet/secure_closet/hos,/obj/machinery/light{dir = 8},/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -29; pixel_y = 23},/turf/open/floor/plasteel/black,/area/security/hos) +"agL" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = -32; pixel_y = 32},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel/black,/area/security/hos) +"agM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/black,/area/security/hos) +"agN" = (/obj/structure/chair/comfy/black,/turf/open/floor/plasteel/black,/area/security/hos) +"agO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/black,/area/security/hos) +"agP" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 32},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/black,/area/security/hos) +"agQ" = (/obj/machinery/light{dir = 4},/obj/structure/reagent_dispensers/peppertank{pixel_x = 30; pixel_y = 0},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 29},/obj/machinery/suit_storage_unit/hos,/turf/open/floor/plasteel/black,/area/security/hos) +"agR" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/warning{dir = 9},/area/security/range) +"agS" = (/turf/open/floor/plasteel/warning{dir = 1},/area/security/range) +"agT" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/warning{dir = 5},/area/security/range) +"agU" = (/obj/machinery/shower{icon_state = "shower"; dir = 4},/obj/machinery/door/window/eastright{base_state = "left"; dir = 2; icon_state = "left"; name = "shower"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"agV" = (/obj/structure/reagent_dispensers/water_cooler,/turf/open/floor/plasteel/vault,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"agW" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/sillycup{pixel_x = -5; pixel_y = 3},/obj/item/weapon/reagent_containers/food/drinks/sillycup,/obj/item/weapon/reagent_containers/food/drinks/sillycup{pixel_x = 5; pixel_y = 3},/obj/item/weapon/reagent_containers/food/drinks/sillycup{pixel_x = 5; pixel_y = 3},/obj/item/weapon/reagent_containers/food/drinks/sillycup{pixel_x = 5; pixel_y = 3},/turf/open/floor/plasteel/vault,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"agX" = (/obj/structure/easel,/turf/open/floor/plasteel/black,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"agY" = (/obj/structure/closet/masks,/turf/open/floor/plasteel/vault,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"agZ" = (/obj/structure/closet/athletic_mixed,/turf/open/floor/plasteel/vault,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"aha" = (/obj/structure/closet/boxinggloves,/turf/open/floor/plasteel/vault,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"ahb" = (/obj/structure/closet/emcloset,/obj/structure/sign/pods{pixel_y = 30},/turf/open/floor/plasteel/vault,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"ahc" = (/turf/open/floor/plasteel/vault,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"ahd" = (/obj/machinery/computer/arcade,/turf/open/floor/plasteel/vault,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"ahe" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"ahf" = (/turf/open/floor/engine{name = "Holodeck Projector Floor"},/area/holodeck/rec_center) +"ahg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/external{name = "Solar Maintenance"; req_access = null; req_access_txt = "10; 13"},/turf/open/floor/plating,/area/maintenance/auxsolarport) +"ahh" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "applebush"; layer = 4.1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/security/prison) +"ahi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/corner{dir = 1},/area/security/prison) +"ahj" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/corner{dir = 1},/area/security/prison) +"ahk" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/corner{dir = 1},/area/security/prison) +"ahl" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/newscaster/security_unit{pixel_x = 0; pixel_y = -30},/turf/open/floor/plasteel/red/corner{dir = 1},/area/security/prison) +"ahm" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/turf/open/floor/plasteel/red/corner{dir = 1},/area/security/prison) +"ahn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/red/corner{dir = 1},/area/security/prison) +"aho" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/plasteel/red/corner{dir = 1},/area/security/prison) +"ahp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/turf/open/floor/plasteel/red/corner{dir = 1},/area/security/prison) +"ahq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -30},/turf/open/floor/plasteel/red/corner{dir = 1},/area/security/prison) +"ahr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/airalarm{dir = 1; pixel_y = -22},/turf/open/floor/plasteel/red/corner{dir = 1},/area/security/prison) +"ahs" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/obj/effect/landmark{name = "lightsout"},/turf/open/floor/plasteel/red/corner{dir = 1},/area/security/prison) +"aht" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/red/corner{dir = 1},/area/security/prison) +"ahu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/corner{dir = 1},/area/security/prison) +"ahv" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/obj/machinery/light,/turf/open/floor/plasteel/red/corner{dir = 1},/area/security/prison) +"ahw" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/red/corner{dir = 1},/area/security/prison) +"ahx" = (/turf/open/floor/plasteel/red/corner{dir = 1},/area/security/prison) +"ahy" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow,/turf/open/floor/plating,/area/security/prison) +"ahz" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 24},/obj/structure/rack,/obj/item/weapon/grenade/barrier{pixel_x = -3; pixel_y = 1},/obj/item/weapon/grenade/barrier,/obj/item/weapon/grenade/barrier{pixel_x = 3; pixel_y = -1},/obj/item/weapon/grenade/barrier{pixel_x = 6; pixel_y = -2},/turf/open/floor/plasteel/vault{dir = 1},/area/ai_monitored/security/armory) +"ahA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/ai_monitored/security/armory) +"ahB" = (/obj/structure/rack,/obj/item/weapon/gun/energy/gun/advtaser{pixel_x = -3; pixel_y = 3},/obj/item/weapon/gun/energy/gun/advtaser,/obj/item/weapon/gun/energy/gun/advtaser{pixel_x = 3; pixel_y = -3},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/vault{dir = 1},/area/ai_monitored/security/armory) +"ahC" = (/mob/living/simple_animal/bot/secbot{arrest_type = 1; health = 45; icon_state = "secbot1"; idcheck = 1; name = "Sergeant-at-Armsky"; on = 1; weaponscheck = 1},/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/security/armory) +"ahD" = (/obj/structure/rack,/obj/item/weapon/gun/energy/laser{pixel_x = -3; pixel_y = 3},/obj/item/weapon/gun/energy/laser,/obj/item/weapon/gun/energy/laser{pixel_x = 3; pixel_y = -3},/turf/open/floor/plasteel/vault{dir = 4},/area/ai_monitored/security/armory) +"ahE" = (/turf/open/floor/plasteel/black,/area/ai_monitored/security/armory) +"ahF" = (/obj/structure/rack,/obj/item/clothing/suit/armor/bulletproof,/obj/item/clothing/head/helmet/alt,/obj/item/clothing/suit/armor/bulletproof,/obj/item/clothing/head/helmet/alt,/obj/item/clothing/suit/armor/bulletproof,/obj/item/clothing/head/helmet/alt,/turf/open/floor/plasteel/vault{dir = 4},/area/ai_monitored/security/armory) +"ahG" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/door/poddoor/preopen{id = "hosprivacy"; name = "privacy shutters"},/turf/open/floor/plating,/area/security/hos) +"ahH" = (/obj/structure/table/wood,/obj/item/weapon/storage/secure/briefcase{pixel_x = -2},/obj/item/weapon/book/manual/wiki/security_space_law,/obj/item/weapon/cartridge/detective,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/black,/area/security/hos) +"ahI" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/black,/area/security/hos) +"ahJ" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/carpet,/area/security/hos) +"ahK" = (/obj/structure/table/wood,/obj/item/weapon/stamp/hos,/turf/open/floor/carpet,/area/security/hos) +"ahL" = (/obj/item/weapon/phone{desc = "Supposedly a direct line to NanoTrasen Central Command. It's not even plugged in."; pixel_x = -3; pixel_y = 3},/obj/item/weapon/cigbutt/cigarbutt{pixel_x = 5; pixel_y = -1},/obj/structure/table/wood,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/carpet,/area/security/hos) +"ahM" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/security/hos) +"ahN" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/black,/area/security/hos) +"ahO" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/door/poddoor/preopen{id = "hosprivacy"; name = "privacy shutters"},/turf/open/floor/plating,/area/security/hos) +"ahP" = (/turf/open/floor/plasteel/warning{dir = 8},/area/security/range) +"ahQ" = (/obj/structure/target_stake,/obj/item/target/syndicate,/turf/open/floor/plasteel,/area/security/range) +"ahR" = (/turf/open/floor/plasteel/warning{dir = 4},/area/security/range) +"ahS" = (/turf/closed/wall,/area/maintenance/fore) +"ahT" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/button/door{id = "FitnessShower"; name = "Lock Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = -25; req_access_txt = "0"; specialfunctions = 4},/obj/structure/mirror{pixel_x = -28},/obj/machinery/light/small,/turf/open/floor/plasteel/freezer,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"ahU" = (/obj/machinery/door/airlock{id_tag = "FitnessShower"; name = "Fitness Room Shower"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"ahV" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"ahW" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"ahX" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/camera{c_tag = "Fitness Room - Fore"; dir = 2},/obj/machinery/airalarm{pixel_y = 24},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"ahY" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"ahZ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"aia" = (/obj/machinery/light{dir = 1},/obj/machinery/power/apc{dir = 1; name = "Recreation Area APC"; pixel_x = 0; pixel_y = 24},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"aib" = (/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"aic" = (/turf/closed/wall,/area/maintenance/auxsolarport) +"aid" = (/obj/machinery/power/solar_control{id = "foreport"; name = "Fore Port Solar Control"; track = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating,/area/maintenance/auxsolarport) +"aie" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/auxsolarport) +"aif" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 32; pixel_y = 0},/turf/open/floor/plating{icon_state = "platingdmg2"},/area/maintenance/auxsolarport) +"aig" = (/obj/structure/table,/obj/item/weapon/folder/red{pixel_x = 3},/obj/item/weapon/folder/white{pixel_x = -4; pixel_y = 2},/turf/open/floor/plasteel/vault,/area/security/prison) +"aih" = (/obj/structure/rack,/obj/item/weapon/restraints/handcuffs,/obj/item/device/assembly/flash/handheld,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/vault,/area/security/prison) +"aii" = (/obj/structure/table,/obj/item/weapon/storage/box/bodybags{pixel_x = 4; pixel_y = 2},/obj/item/weapon/pen,/obj/item/weapon/storage/box/prisoner,/turf/open/floor/plasteel/vault,/area/security/prison) +"aij" = (/obj/structure/closet/secure_closet/brig{anchored = 1},/turf/open/floor/plasteel/vault,/area/security/prison) +"aik" = (/obj/structure/closet/secure_closet/brig{anchored = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/vault,/area/security/prison) +"ail" = (/obj/structure/sign/securearea,/turf/closed/wall,/area/security/prison) +"aim" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/glass_security{name = "Prison Wing"; req_access_txt = "1"},/turf/open/floor/plasteel,/area/security/prison) +"ain" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/prison) +"aio" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/glass_security{name = "Prison Wing"; req_access_txt = "1"},/turf/open/floor/plasteel,/area/security/prison) +"aip" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'WARNING: Dangerous Inmates'."; name = "\improper WARNING: Dangerous Inmates"},/turf/closed/wall,/area/security/prison) +"aiq" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 4},/obj/structure/reagent_dispensers/peppertank{pixel_x = 0; pixel_y = -30},/turf/open/floor/plasteel/vault,/area/security/prison) +"air" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/turf/open/floor/plasteel/vault,/area/security/prison) +"ais" = (/obj/machinery/airalarm{dir = 4; locked = 0; pixel_x = -23; pixel_y = 0},/obj/structure/rack,/obj/item/weapon/storage/fancy/donut_box,/turf/open/floor/plasteel/vault{dir = 1},/area/ai_monitored/security/armory) +"ait" = (/obj/structure/rack,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/weapon/storage/box/rubbershot,/obj/item/weapon/storage/box/rubbershot,/obj/item/weapon/storage/box/rubbershot,/obj/item/weapon/storage/box/rubbershot,/obj/item/weapon/storage/box/rubbershot,/obj/item/weapon/storage/box/rubbershot,/obj/item/weapon/gun/projectile/shotgun/riot{pixel_x = -3; pixel_y = 3},/obj/item/weapon/gun/projectile/shotgun/riot,/turf/open/floor/plasteel/vault{dir = 1},/area/ai_monitored/security/armory) +"aiu" = (/obj/machinery/holopad,/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/security/armory) +"aiv" = (/obj/structure/rack,/obj/item/weapon/gun/energy/gun{pixel_x = -3; pixel_y = 3},/obj/item/weapon/gun/energy/gun,/obj/item/weapon/gun/energy/gun{pixel_x = 3; pixel_y = -3},/turf/open/floor/plasteel/vault{dir = 4},/area/ai_monitored/security/armory) +"aiw" = (/obj/structure/rack,/obj/item/clothing/suit/armor/riot,/obj/item/clothing/suit/armor/riot,/obj/item/clothing/suit/armor/riot,/obj/item/clothing/head/helmet/riot,/obj/item/clothing/head/helmet/riot,/obj/item/clothing/head/helmet/riot,/obj/machinery/firealarm{dir = 4; pixel_x = 28; pixel_y = 0},/turf/open/floor/plasteel/vault{dir = 4},/area/ai_monitored/security/armory) +"aix" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow,/obj/machinery/door/poddoor/preopen{id = "hosprivacy"; name = "privacy shutters"},/turf/open/floor/plating,/area/security/hos) +"aiy" = (/obj/structure/table/wood,/obj/machinery/recharger,/turf/open/floor/plasteel/black,/area/security/hos) +"aiz" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/security/hos) +"aiA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/carpet,/area/security/hos) +"aiB" = (/obj/machinery/holopad,/obj/structure/chair{dir = 1},/obj/effect/landmark/start{name = "Head of Security"},/turf/open/floor/carpet,/area/security/hos) +"aiC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/mob/living/simple_animal/hostile/retaliate/bat{desc = "A fierce companion for any person of power, this spider has been carefully trained by NanoTrasen specialists. Its beady, staring eyes send shivers down your spine"; emote_hear = list("chitters"); faction = list("spiders"); harm_intent_damage = 3; health = 200; icon_dead = "guard_dead"; icon_gib = "guard_dead"; icon_living = "guard"; icon_state = "guard"; max_co2 = 5; max_tox = 2; maxHealth = 250; melee_damage_lower = 15; melee_damage_upper = 20; min_oxy = 5; name = "Sergeant Araneus"; real_name = "Sergeant Araneus"; response_help = "pets"; turns_per_move = 10; voice_name = "unidentifiable voice"},/turf/open/floor/carpet,/area/security/hos) +"aiD" = (/obj/structure/table/wood,/obj/item/device/taperecorder{pixel_x = -4; pixel_y = 0},/obj/item/device/radio/off{pixel_x = 0; pixel_y = 3},/turf/open/floor/plasteel/black,/area/security/hos) +"aiE" = (/turf/open/floor/plasteel,/area/security/range) +"aiF" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating,/area/maintenance/fore) +"aiG" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plating,/area/maintenance/fore) +"aiH" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"aiI" = (/turf/open/floor/plasteel,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"aiJ" = (/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"aiK" = (/obj/structure/chair,/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"aiL" = (/obj/structure/chair,/obj/effect/landmark/start{name = "Assistant"},/turf/open/floor/plasteel,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"aiM" = (/obj/structure/chair,/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"aiN" = (/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"aiO" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/turf/open/floor/plasteel,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"aiP" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"aiQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = "0"},/turf/closed/wall,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"aiR" = (/turf/closed/wall,/area/maintenance/disposal) +"aiS" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/disposal) +"aiT" = (/obj/structure/chair/stool{pixel_y = 8},/obj/machinery/camera/autoname{dir = 4; network = list("SS13")},/turf/open/floor/plating,/area/maintenance/auxsolarport) +"aiU" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/plating,/area/maintenance/auxsolarport) +"aiV" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/terminal,/obj/machinery/light/small{dir = 4},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/turf/open/floor/plating,/area/maintenance/auxsolarport) +"aiW" = (/obj/machinery/suit_storage_unit/security,/turf/open/floor/plasteel/vault{dir = 1},/area/security/brig) +"aiX" = (/obj/structure/tank_dispenser/oxygen,/turf/open/floor/plasteel/vault{dir = 8},/area/security/brig) +"aiY" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/suit_storage_unit/security,/turf/open/floor/plasteel/vault{dir = 4},/area/security/brig) +"aiZ" = (/turf/closed/wall,/area/security/brig) +"aja" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "Prison Gate"; name = "Security Blast Door"; opacity = 0},/turf/open/floor/plasteel/delivery{name = "floor"},/area/security/brig) +"ajb" = (/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "Prison Gate"; name = "Security Blast Door"; opacity = 0},/turf/open/floor/plasteel/delivery{name = "floor"},/area/security/brig) +"ajc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "Prison Gate"; name = "Security Blast Door"; opacity = 0},/turf/open/floor/plasteel/delivery{name = "floor"},/area/security/brig) +"ajd" = (/turf/closed/wall,/area/security/warden) +"aje" = (/turf/closed/wall/r_wall,/area/security/warden) +"ajf" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/rack,/obj/item/weapon/storage/box/flashes{pixel_x = 3},/obj/item/weapon/storage/box/teargas{pixel_x = 1; pixel_y = -2},/turf/open/floor/plasteel/vault{dir = 1},/area/ai_monitored/security/armory) +"ajg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/black,/area/ai_monitored/security/armory) +"ajh" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/vault{dir = 6},/area/ai_monitored/security/armory) +"aji" = (/obj/machinery/power/apc{cell_type = 5000; dir = 2; name = "Armory APC"; pixel_x = 1; pixel_y = -24},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/light,/obj/machinery/camera/motion{c_tag = "Armory - Internal"; dir = 1; network = list("SS13")},/turf/open/floor/plasteel/vault,/area/ai_monitored/security/armory) +"ajj" = (/turf/open/floor/plasteel/vault{dir = 10},/area/ai_monitored/security/armory) +"ajk" = (/obj/structure/rack,/obj/item/weapon/shield/riot{pixel_x = -3; pixel_y = 3},/obj/item/weapon/shield/riot,/obj/item/weapon/shield/riot{pixel_x = 3; pixel_y = -3},/obj/machinery/button/door{id = "armory"; name = "Armory Shutters"; pixel_x = 28; pixel_y = 0; req_access_txt = "3"},/turf/open/floor/plasteel/vault{dir = 4},/area/ai_monitored/security/armory) +"ajl" = (/obj/machinery/disposal/bin,/obj/machinery/firealarm{dir = 8; pixel_x = -24; pixel_y = 0},/obj/machinery/light_switch{pixel_x = -24; pixel_y = -20},/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/computer/security/telescreen{desc = "Used for watching certain areas."; dir = 1; name = "Head of Security's Monitor"; network = list("Prison","MiniSat","tcomm"); pixel_x = 0; pixel_y = -30},/turf/open/floor/plasteel/vault,/area/security/hos) +"ajm" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/vault,/area/security/hos) +"ajn" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/carpet,/area/security/hos) +"ajo" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/carpet,/area/security/hos) +"ajp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/carpet,/area/security/hos) +"ajq" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/vault,/area/security/hos) +"ajr" = (/obj/machinery/photocopier,/obj/machinery/power/apc{dir = 4; name = "Head of Security's Office APC"; pixel_x = 24},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/button/door{id = "hosprivacy"; name = "Privacy Shutters Control"; pixel_x = 26; pixel_y = -26},/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 0; pixel_y = -32},/turf/open/floor/plasteel/vault,/area/security/hos) +"ajs" = (/obj/item/clothing/head/festive,/obj/effect/decal/cleanable/cobweb/cobweb2,/turf/open/floor/plating,/area/maintenance/fore) +"ajt" = (/obj/item/weapon/cigbutt,/turf/open/floor/plating,/area/maintenance/fore) +"aju" = (/turf/open/floor/plating{icon_state = "platingdmg1"},/area/maintenance/fore) +"ajv" = (/obj/structure/table,/obj/item/weapon/poster/contraband,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fore) +"ajw" = (/obj/effect/decal/cleanable/cobweb/cobweb2,/obj/structure/table,/obj/item/weapon/stock_parts/manipulator,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fore) +"ajx" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"ajy" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/window/eastright{base_state = "right"; dir = 8; icon_state = "right"; name = "Fitness Ring"},/turf/open/floor/plasteel/black,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"ajz" = (/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plasteel/black,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"ajA" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/black,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"ajB" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"ajC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"ajD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Holodeck Door"},/turf/open/floor/plasteel,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"ajE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Holodeck Door"},/turf/open/floor/plasteel,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"ajF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/light/small{dir = 1},/obj/machinery/firealarm{pixel_y = 27},/turf/open/floor/plasteel,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"ajG" = (/obj/machinery/airalarm{pixel_y = 24},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"ajH" = (/obj/machinery/door/poddoor{id = "trash"; name = "disposal bay door"},/turf/open/floor/plating,/area/maintenance/disposal) +"ajI" = (/obj/machinery/mass_driver{dir = 8; id = "trash"},/obj/machinery/light/small{dir = 1},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/disposal) +"ajJ" = (/obj/machinery/conveyor_switch/oneway{convdir = -1; id = "garbage"; name = "disposal coveyor"},/turf/open/floor/plating,/area/maintenance/disposal) +"ajK" = (/obj/structure/easel,/turf/open/floor/plating,/area/maintenance/disposal) +"ajL" = (/obj/item/weapon/vending_refill/coffee,/turf/open/floor/plating{icon_state = "platingdmg2"},/area/maintenance/disposal) +"ajM" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance{lootcount = 3; name = "3maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/disposal) +"ajN" = (/obj/machinery/power/apc{dir = 8; name = "Fore Port Solar APC"; pixel_x = -25; pixel_y = 3},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/auxsolarport) +"ajO" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating/warnplate{dir = 2},/area/maintenance/auxsolarport) +"ajP" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/power/smes,/turf/open/floor/plating,/area/maintenance/auxsolarport) +"ajQ" = (/turf/closed/wall/r_wall,/area/maintenance/auxsolarport) +"ajR" = (/turf/closed/wall/r_wall,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"ajS" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"ajT" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/open/floor/plating,/area/security/brig) +"ajU" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/vault{dir = 8},/area/security/brig) +"ajV" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light/small,/obj/machinery/camera{c_tag = "Security - EVA Storage"; dir = 1; network = list("SS13")},/turf/open/floor/plasteel/vault{dir = 8},/area/security/brig) +"ajW" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Security E.V.A. Storage"; req_access_txt = "3"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/security/brig) +"ajX" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/brig) +"ajY" = (/turf/open/floor/plasteel/red/side{dir = 1},/area/security/brig) +"ajZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/light/small{dir = 4},/obj/machinery/button/door{id = "Prison Gate"; name = "Prison Wing Lockdown"; pixel_x = 26; pixel_y = 0; req_access_txt = "2"},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/brig) +"aka" = (/obj/structure/closet{name = "Evidence Closet 3"},/obj/item/weapon/storage/backpack{name = "Evidence Bag 3"},/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plasteel/vault{dir = 4},/area/security/warden) +"akb" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/obj/machinery/light/small{dir = 1},/obj/effect/landmark{name = "blobstart"},/obj/machinery/camera{c_tag = "Evidence Storage"; dir = 2; network = list("SS13")},/obj/item/weapon/storage/secure/safe{name = "evidence safe"; pixel_x = 6; pixel_y = 28},/turf/open/floor/plasteel/vault{dir = 8},/area/security/warden) +"akc" = (/obj/structure/closet/secure_closet{anchored = 1; name = "Secure Evidence Closet"; req_access_txt = "0"; req_one_access_txt = "3,4"},/obj/item/weapon/storage/secure/briefcase{name = "Secure Evidence Briefcase"; pixel_x = 3; pixel_y = -3},/turf/open/floor/plasteel/vault{dir = 4},/area/security/warden) +"akd" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow,/turf/open/floor/plating,/area/ai_monitored/security/armory) +"ake" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/security{name = "Armory"; req_access = null; req_access_txt = "3"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/security/armory) +"akf" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/ai_monitored/security/armory) +"akg" = (/obj/machinery/door/poddoor/shutters{id = "armory"; name = "armory shutters"},/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/security/armory) +"akh" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/open/floor/plating,/area/security/main) +"aki" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/door/poddoor/preopen{id = "hosprivacy"; name = "privacy shutters"},/turf/open/floor/plating,/area/security/hos) +"akj" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/poddoor/preopen{id = "hosprivacy"; name = "privacy shutters"},/turf/open/floor/plating,/area/security/hos) +"akk" = (/obj/machinery/door/firedoor,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/command{name = "Head of Security's Office"; req_access = null; req_access_txt = "58"},/turf/open/floor/carpet,/area/security/hos) +"akl" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/poddoor/preopen{id = "hosprivacy"; name = "privacy shutters"},/turf/open/floor/plating,/area/security/hos) +"akm" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "hosprivacy"; name = "privacy shutters"},/turf/open/floor/plating,/area/security/hos) +"akn" = (/turf/closed/wall/r_wall,/area/security/range) +"ako" = (/obj/structure/window/reinforced,/turf/open/floor/plasteel/warning{dir = 10},/area/security/range) +"akp" = (/obj/machinery/door/window/westleft{base_state = "right"; dir = 2; icon_state = "right"; name = "Shooting Range"; req_access_txt = "0"},/turf/open/floor/plasteel/warning,/area/security/range) +"akq" = (/obj/structure/window/reinforced,/turf/open/floor/plasteel/warning{dir = 6},/area/security/range) +"akr" = (/turf/open/floor/plating,/area/maintenance/fore) +"aks" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/plating,/area/maintenance/fore) +"akt" = (/obj/structure/table,/obj/item/weapon/folder,/turf/open/floor/plating,/area/maintenance/fore) +"aku" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"akv" = (/obj/structure/table,/obj/item/clothing/under/sl_suit{desc = "Whoever wears this makes the rules."; name = "referee suit"},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"akw" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/black,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"akx" = (/turf/open/floor/plasteel/vault{dir = 5},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"aky" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/turf/open/floor/plasteel/vault{dir = 5},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"akz" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/black,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"akA" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"akB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"akC" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"akD" = (/obj/machinery/computer/holodeck,/turf/open/floor/plasteel,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"akE" = (/obj/structure/chair{dir = 8},/obj/effect/landmark/start{name = "Assistant"},/turf/open/floor/plasteel,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"akF" = (/turf/closed/wall/r_wall,/area/engine/gravity_generator) +"akG" = (/obj/machinery/conveyor{dir = 2; id = "garbage"; layer = 2.7},/obj/machinery/door/poddoor/preopen{id = "Disposal Exit"; layer = 3.1; name = "disposal exit vent"},/turf/open/floor/plating,/area/maintenance/disposal) +"akH" = (/obj/machinery/button/door{id = "Disposal Exit"; name = "Disposal Vent Control"; pixel_x = -25; pixel_y = 4; req_access_txt = "12"},/obj/machinery/button/massdriver{id = "trash"; pixel_x = -26; pixel_y = -6},/obj/structure/chair/stool,/obj/machinery/light/small{dir = 8},/turf/open/floor/plating,/area/maintenance/disposal) +"akI" = (/turf/open/floor/plating{icon_state = "platingdmg2"},/area/maintenance/disposal) +"akJ" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/turf/open/floor/plating,/area/maintenance/disposal) +"akK" = (/obj/effect/decal/cleanable/oil,/obj/machinery/light_switch{pixel_x = 25; pixel_y = 0},/obj/machinery/light/small{dir = 4},/turf/open/floor/plating,/area/maintenance/disposal) +"akL" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/engineering{name = "Fore Port Solar Access"; req_access_txt = "10"},/turf/open/floor/plating,/area/maintenance/auxsolarport) +"akM" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 0},/turf/closed/wall,/area/maintenance/auxsolarport) +"akN" = (/obj/structure/table,/obj/item/stack/medical/ointment{pixel_x = 3; pixel_y = -2},/obj/item/stack/medical/bruise_pack{pixel_x = -3; pixel_y = 2},/obj/item/weapon/reagent_containers/syringe/epinephrine,/obj/item/weapon/storage/secure/safe{pixel_x = 6; pixel_y = 28},/obj/item/weapon/restraints/handcuffs/cable/pink,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"akO" = (/obj/item/stack/sheet/cardboard,/obj/structure/light_construct/small{dir = 1},/obj/structure/closet/crate,/obj/item/weapon/coin/silver,/obj/item/weapon/grenade/chem_grenade,/obj/item/weapon/storage/box/lights/mixed,/obj/item/weapon/watertank,/obj/item/weapon/storage/box/donkpockets,/obj/item/weapon/poster/contraband,/obj/item/weapon/poster/contraband,/obj/item/weapon/poster/contraband,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"akP" = (/obj/item/weapon/soap/deluxe,/obj/item/weapon/storage/secure/safe{pixel_x = 6; pixel_y = 28},/obj/item/weapon/kitchen/rollingpin,/obj/structure/closet/crate,/obj/item/clothing/suit/xenos,/obj/item/clothing/suit/monkeysuit,/obj/item/clothing/head/xenos,/obj/item/clothing/mask/gas/monkeymask,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"akQ" = (/turf/closed/wall/r_wall,/area/security/brig) +"akR" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Prison Wing"; req_access_txt = "1"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/red/side,/area/security/brig) +"akS" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/brig) +"akT" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/glass_security{name = "Prison Wing"; req_access_txt = "1"},/turf/open/floor/plasteel/red/side,/area/security/brig) +"akU" = (/obj/structure/closet{name = "Evidence Closet 2"},/obj/item/weapon/storage/backpack{name = "Evidence Bag 2"},/obj/machinery/airalarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plasteel/vault{dir = 1},/area/security/warden) +"akV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/vault{dir = 8},/area/security/warden) +"akW" = (/obj/structure/closet{name = "Evidence Closet 5"},/obj/item/weapon/storage/backpack{name = "Evidence Bag 5"},/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/obj/machinery/firealarm{dir = 4; pixel_x = 28},/turf/open/floor/plasteel/vault{dir = 4},/area/security/warden) +"akX" = (/obj/machinery/light/small{dir = 1},/obj/machinery/airalarm{pixel_y = 28},/obj/structure/closet/crate/secure/weapon{desc = "A secure clothing crate."; name = "formal uniform crate"; req_access_txt = "3"},/obj/item/clothing/under/rank/security/navyblue,/obj/item/clothing/under/rank/security/navyblue,/obj/item/clothing/under/rank/security/navyblue,/obj/item/clothing/under/rank/security/navyblue,/obj/item/clothing/under/rank/security/navyblue,/obj/item/clothing/under/rank/security/navyblue,/obj/item/clothing/suit/security/officer,/obj/item/clothing/suit/security/officer,/obj/item/clothing/suit/security/officer,/obj/item/clothing/suit/security/officer,/obj/item/clothing/suit/security/officer,/obj/item/clothing/suit/security/officer,/obj/item/clothing/under/rank/warden/navyblue,/obj/item/clothing/suit/security/warden,/obj/item/clothing/under/rank/head_of_security/navyblue,/obj/item/clothing/suit/security/hos,/obj/item/clothing/head/beret/sec/navyofficer,/obj/item/clothing/head/beret/sec/navyofficer,/obj/item/clothing/head/beret/sec/navyofficer,/obj/item/clothing/head/beret/sec/navyofficer,/obj/item/clothing/head/beret/sec/navyofficer,/obj/item/clothing/head/beret/sec/navyofficer,/obj/item/clothing/head/beret/sec/navywarden,/obj/item/clothing/head/beret/sec/navyhos,/turf/open/floor/plasteel/bot,/area/security/warden) +"akY" = (/obj/machinery/flasher/portable,/turf/open/floor/plasteel/bot,/area/security/warden) +"akZ" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/security/warden) +"ala" = (/obj/structure/closet/bombcloset,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel/bot,/area/security/warden) +"alb" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/open/floor/plating,/area/security/warden) +"alc" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = 30},/obj/structure/closet/secure_closet/security/sec,/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"ald" = (/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"ale" = (/obj/structure/closet/secure_closet/security/sec,/obj/machinery/airalarm{pixel_y = 28},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"alf" = (/obj/machinery/computer/secure_data,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/vault,/area/security/main) +"alg" = (/obj/machinery/computer/security,/obj/machinery/computer/security/telescreen{desc = "Used for watching Prison Wing holding areas."; name = "Prison Monitor"; network = list("Prison"); pixel_x = 0; pixel_y = 30},/turf/open/floor/plasteel/vault,/area/security/main) +"alh" = (/turf/closed/wall,/area/security/main) +"ali" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/obj/effect/landmark{name = "secequipment"},/turf/open/floor/plasteel/vault,/area/security/main) +"alj" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/landmark{name = "secequipment"},/turf/open/floor/plasteel/vault,/area/security/main) +"alk" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/vault,/area/security/main) +"all" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/landmark{name = "secequipment"},/turf/open/floor/plasteel/vault,/area/security/main) +"alm" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/effect/landmark{name = "secequipment"},/turf/open/floor/plasteel/vault,/area/security/main) +"aln" = (/obj/structure/table,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/turf/open/floor/plasteel/vault,/area/security/main) +"alo" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/vault,/area/security/main) +"alp" = (/obj/structure/table,/obj/machinery/light/small{dir = 8},/obj/machinery/magnetic_controller{autolink = 1; pixel_y = 3},/obj/item/clothing/ears/earmuffs,/obj/item/clothing/glasses/sunglasses{pixel_x = 3; pixel_y = 3},/turf/open/floor/plasteel/warning{dir = 6},/area/security/range) +"alq" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel,/area/security/range) +"alr" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 4},/obj/machinery/light/small{dir = 4},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/plasteel/warning{dir = 8},/area/security/range) +"als" = (/obj/structure/closet,/obj/item/clothing/gloves/color/fyellow,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/fore) +"alt" = (/obj/item/toy/beach_ball{icon = 'icons/obj/basketball.dmi'; icon_state = "basketball"; item_state = "basketball"; name = "basket ball"},/turf/open/floor/plating,/area/maintenance/fore) +"alu" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/structure/sign/poster{pixel_x = -32; pixel_y = 0},/turf/open/floor/plasteel,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"alv" = (/obj/structure/chair/stool{pixel_y = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"alw" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/item/weapon/storage/firstaid/brute,/turf/open/floor/plasteel,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"alx" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"aly" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/vault{dir = 5},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"alz" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/vault{dir = 5},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"alA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/holopad,/turf/open/floor/plasteel,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"alB" = (/obj/structure/table,/obj/item/weapon/paper{desc = ""; info = "Brusies sustained in the holodeck can be healed simply by sleeping."; name = "Holodeck Disclaimer"},/obj/item/weapon/storage/firstaid/regular{pixel_x = 3; pixel_y = -3},/turf/open/floor/plasteel,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"alC" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"alD" = (/turf/open/floor/plasteel/black,/area/engine/gravity_generator) +"alE" = (/turf/open/floor/plasteel/vault{dir = 1},/area/engine/gravity_generator) +"alF" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 0; pixel_y = 32},/turf/open/floor/plasteel/vault{dir = 8},/area/engine/gravity_generator) +"alG" = (/turf/open/floor/plasteel/vault{dir = 4},/area/engine/gravity_generator) +"alH" = (/turf/open/space,/area/maintenance/auxsolarstarboard) +"alI" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/lattice/catwalk,/turf/open/space,/area/maintenance/auxsolarstarboard) +"alJ" = (/obj/machinery/conveyor{dir = 2; id = "garbage"},/turf/open/floor/plating,/area/maintenance/disposal) +"alK" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/maintenance/disposal) +"alL" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plating/warnplate{dir = 2},/area/maintenance/disposal) +"alM" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating/warnplate{dir = 2},/area/maintenance/disposal) +"alN" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating/warnplate{dir = 2},/area/maintenance/disposal) +"alO" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating/warnplate/corner{dir = 1},/area/maintenance/disposal) +"alP" = (/obj/machinery/door/airlock/maintenance{name = "Disposal Access"; req_access_txt = "12"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"alQ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"alR" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"alS" = (/obj/structure/closet/firecloset,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"alT" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/gloves/color/yellow,/obj/item/weapon/mop,/obj/item/weapon/bikehorn/rubberducky,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/obj/item/weapon/grenade/empgrenade,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"alU" = (/obj/item/weapon/vending_refill/cola,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"alV" = (/obj/item/weapon/vending_refill/snack,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"alW" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/neck/tie/red{pixel_x = -5; pixel_y = 3},/obj/item/clothing/neck/tie/horrible,/obj/item/clothing/neck/tie/blue{pixel_x = 5; pixel_y = -2},/obj/item/weapon/dice/d8,/obj/item/device/healthanalyzer,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"alX" = (/obj/structure/table,/obj/item/clothing/gloves/color/latex,/obj/item/clothing/mask/surgical,/obj/item/weapon/reagent_containers/spray/cleaner,/turf/open/floor/plasteel/whitered/side{dir = 9},/area/security/brig) +"alY" = (/obj/structure/table,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 26},/obj/machinery/light/small{dir = 1},/obj/item/weapon/folder/red{pixel_x = 3},/obj/item/weapon/folder/white{pixel_x = -4; pixel_y = 2},/obj/item/device/healthanalyzer,/turf/open/floor/plasteel/whitered/side{dir = 1},/area/security/brig) +"alZ" = (/obj/structure/table,/obj/machinery/airalarm{pixel_y = 28},/obj/machinery/computer/med_data/laptop,/turf/open/floor/plasteel/whitered/side{dir = 1},/area/security/brig) +"ama" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/open/floor/plasteel/whitered/side{dir = 5},/area/security/brig) +"amb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/red/side{dir = 9},/area/security/brig) +"amc" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/brig) +"amd" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/sign/pods{pixel_x = 32; pixel_y = 0},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/brig) +"ame" = (/obj/structure/closet{name = "Evidence Closet 1"},/obj/item/weapon/storage/backpack{name = "Evidence Bag 1"},/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plasteel/vault{dir = 1},/area/security/warden) +"amf" = (/obj/structure/closet{name = "Evidence Closet 4"},/obj/item/weapon/storage/backpack{name = "Evidence Bag 4"},/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plasteel/vault{dir = 4},/area/security/warden) +"amg" = (/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/machinery/camera{c_tag = "Security - Secure Gear Storage"; dir = 4; network = list("SS13")},/obj/machinery/flasher/portable,/turf/open/floor/plasteel/bot,/area/security/warden) +"amh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/security/warden) +"ami" = (/obj/structure/closet/l3closet/security,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/bot,/area/security/warden) +"amj" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/structure/cable/yellow,/turf/open/floor/plating,/area/security/warden) +"amk" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/closet/secure_closet/security/sec,/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"aml" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"amm" = (/obj/structure/closet/secure_closet/security/sec,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"amn" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/security/warden) +"amo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/red/side{dir = 9},/area/security/main) +"amp" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/main) +"amq" = (/obj/machinery/light{dir = 1},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 26},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/main) +"amr" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/main) +"ams" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/main) +"amt" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/main) +"amu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/main) +"amv" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/main) +"amw" = (/obj/machinery/light{dir = 1},/obj/machinery/airalarm{pixel_y = 28},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/main) +"amx" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/main) +"amy" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/main) +"amz" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/security/range) +"amA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/landmark/start{name = "Security Officer"},/turf/open/floor/plasteel/red/corner{dir = 8},/area/security/range) +"amB" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/range) +"amC" = (/obj/structure/rack{pixel_y = 2},/obj/item/weapon/gun/energy/laser/practice{pixel_x = 2; pixel_y = -2},/obj/item/weapon/gun/energy/laser/practice{pixel_x = -3; pixel_y = 3},/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/camera{c_tag = "Firing Range"; dir = 8; network = list("SS13")},/turf/open/floor/plasteel/warning{dir = 8},/area/security/range) +"amD" = (/obj/structure/closet/firecloset,/turf/open/floor/plating,/area/maintenance/fore) +"amE" = (/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/fore) +"amF" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/plating,/area/maintenance/fore) +"amG" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/fore) +"amH" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 8},/turf/open/floor/plating,/area/maintenance/fore) +"amI" = (/obj/structure/closet/firecloset,/turf/open/floor/plasteel/black,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"amJ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"amK" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"amL" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/vault{dir = 5},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"amM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/vault{dir = 5},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"amN" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"amO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"amP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Holodeck Door"},/turf/open/floor/plasteel,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"amQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Holodeck Door"},/turf/open/floor/plasteel,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"amR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/camera{c_tag = "Holodeck"; dir = 1},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -28},/obj/machinery/light/small,/turf/open/floor/plasteel,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"amS" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"amT" = (/turf/closed/wall,/area/maintenance/starboard) +"amU" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/starboard) +"amV" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/black,/area/engine/gravity_generator) +"amW" = (/turf/open/floor/plasteel/vault{dir = 8},/area/engine/gravity_generator) +"amX" = (/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/black,/area/engine/gravity_generator) +"amY" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/auxsolarstarboard) +"amZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/external{name = "Solar Maintenance"; req_access = null; req_access_txt = "10; 13"},/turf/open/floor/plating,/area/maintenance/auxsolarstarboard) +"ana" = (/obj/machinery/conveyor{dir = 2; id = "garbage"},/obj/structure/sign/vacuum{pixel_x = -32},/turf/open/floor/plating,/area/maintenance/disposal) +"anb" = (/obj/machinery/disposal/deliveryChute{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; layer = 3},/obj/structure/disposalpipe/trunk{dir = 1},/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/disposal) +"anc" = (/obj/machinery/conveyor{dir = 4; id = "garbage"},/obj/machinery/door/window/eastright{base_state = "left"; dir = 1; icon_state = "left"; name = "Danger: Conveyor Access"; req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/disposal) +"and" = (/obj/machinery/mineral/stacking_machine{input_dir = 2},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating,/area/maintenance/disposal) +"ane" = (/obj/machinery/mineral/stacking_unit_console{dir = 2; machinedir = 8; pixel_x = 32; pixel_y = 0},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/disposal) +"anf" = (/obj/structure/grille,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"ang" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"anh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"ani" = (/obj/machinery/door/airlock/maintenance{name = "Secure Storage Room"; req_access_txt = "65"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"anj" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"ank" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/obj/item/weapon/bucket_sensor,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"anl" = (/obj/item/weapon/grown/log,/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"anm" = (/obj/structure/light_construct/small{dir = 4},/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/secure/briefcase,/obj/item/weapon/disk/data,/obj/item/weapon/grenade/flashbang,/obj/effect/spawner/lootdrop/maintenance,/obj/item/weapon/grenade/smokebomb,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"ann" = (/turf/closed/wall,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"ano" = (/obj/machinery/portable_atmospherics/canister/nitrous_oxide,/turf/open/floor/plasteel/black,/area/maintenance/fore) +"anp" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/reagent_containers/glass/bottle/epinephrine,/obj/item/weapon/reagent_containers/glass/bottle/charcoal,/obj/item/weapon/reagent_containers/syringe,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/open/floor/plasteel/whitered/side{dir = 10},/area/security/brig) +"anq" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/whitered/corner{dir = 8},/area/security/brig) +"anr" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/white,/area/security/brig) +"ans" = (/obj/machinery/door/window/westleft{base_state = "left"; dir = 4; icon_state = "left"; name = "Infirmary"; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/whitered/side{dir = 4},/area/security/brig) +"ant" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/red/corner{dir = 1},/area/security/brig) +"anu" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel,/area/security/brig) +"anv" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/obj/structure/cable/yellow{icon_state = "4-8"; d1 = 4; d2 = 8},/turf/open/floor/plasteel/red/corner{dir = 4},/area/security/brig) +"anw" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/security{name = "Evidence Storage"; req_access = null; req_access_txt = "0"; req_one_access_txt = "1;4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{icon_state = "4-8"; d1 = 4; d2 = 8},/turf/open/floor/plasteel/vault{dir = 8},/area/security/warden) +"anx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{icon_state = "4-8"; d1 = 4; d2 = 8},/turf/open/floor/plasteel/vault{dir = 8},/area/security/warden) +"any" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/obj/structure/cable/yellow{icon_state = "4-8"; d1 = 4; d2 = 8},/turf/open/floor/plasteel/vault{dir = 8},/area/security/warden) +"anz" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/airlock/security{name = "Evidence Storage"; req_access = null; req_access_txt = "3"; req_one_access_txt = "0"},/obj/structure/cable/yellow{icon_state = "4-8"; d1 = 4; d2 = 8},/turf/open/floor/plasteel/vault{dir = 8},/area/security/warden) +"anA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{icon_state = "4-8"; d1 = 4; d2 = 8},/turf/open/floor/plasteel,/area/security/warden) +"anB" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel,/area/security/warden) +"anC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/security/warden) +"anD" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Secure Gear Storage"; req_access_txt = "3"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/delivery,/area/security/warden) +"anE" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"anF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"anG" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/door/airlock/glass_security{name = "Gear Room"; req_access_txt = "0"; req_one_access_txt = "1;4"},/obj/structure/cable/yellow{icon_state = "4-8"; d1 = 4; d2 = 8},/turf/open/floor/plasteel/delivery,/area/security/warden) +"anH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/structure/cable/yellow{icon_state = "4-8"; d1 = 4; d2 = 8},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/main) +"anI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/red/side{dir = 9},/area/security/main) +"anJ" = (/turf/open/floor/plasteel/red/side{dir = 1},/area/security/main) +"anK" = (/turf/open/floor/plasteel/red,/area/security/main) +"anL" = (/obj/machinery/photocopier{pixel_y = 3},/turf/open/floor/plasteel,/area/security/main) +"anM" = (/obj/structure/chair/comfy/black,/obj/effect/landmark/start{name = "Head of Security"},/turf/open/floor/plasteel,/area/security/main) +"anN" = (/obj/machinery/computer/card/minor/hos,/turf/open/floor/plasteel,/area/security/main) +"anO" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plasteel/red,/area/security/main) +"anP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/main) +"anQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/disposalpipe/sortjunction{dir = 4; icon_state = "pipe-j2s"; sortType = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/red/side{dir = 5},/area/security/main) +"anR" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/disposalpipe/sortjunction{dir = 4; icon_state = "pipe-j2s"; sortType = 7},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/main) +"anS" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Firing Range"; req_access_txt = "0"; req_one_access_txt = "1;4"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/security/range) +"anT" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/red/side{dir = 10},/area/security/range) +"anU" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/red/corner{dir = 8},/area/security/range) +"anV" = (/obj/item/target,/obj/item/target,/obj/item/target/alien,/obj/item/target/alien,/obj/item/target/clown,/obj/item/target/clown,/obj/item/target/syndicate,/obj/item/target/syndicate,/obj/structure/closet/crate/secure{desc = "A secure crate containing various materials for building a customised test-site."; name = "Firing Range Gear Crate"; req_access_txt = "1"},/obj/machinery/power/apc{cell_type = 2500; dir = 4; name = "Shooting Range APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel/warning{dir = 8},/area/security/range) +"anW" = (/obj/structure/rack,/obj/item/weapon/storage/box/lights/mixed,/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plating,/area/maintenance/fore) +"anX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating/warnplate{dir = 2},/area/maintenance/fore) +"anY" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/vault,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"anZ" = (/obj/structure/window/reinforced,/obj/machinery/door/window/eastright{base_state = "left"; dir = 8; icon_state = "left"; name = "Fitness Ring"},/turf/open/floor/plasteel/black,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"aoa" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"aob" = (/obj/structure/window/reinforced,/turf/open/floor/plasteel/black,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"aoc" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"aod" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/open/floor/plasteel/black,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"aoe" = (/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"aof" = (/obj/structure/chair{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"aog" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"aoh" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"aoi" = (/obj/machinery/door/airlock/maintenance{name = "maintenance access"; req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/starboard) +"aoj" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plating/warnplate{dir = 6},/area/maintenance/starboard) +"aok" = (/obj/machinery/door/airlock/external{req_access_txt = "0"; req_one_access_txt = "13,8"},/turf/open/floor/plating,/area/maintenance/starboard) +"aol" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel/black,/area/engine/gravity_generator) +"aom" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/vault{dir = 4},/area/engine/gravity_generator) +"aon" = (/obj/machinery/gravity_generator/main/station,/turf/open/floor/plasteel/vault{dir = 8},/area/engine/gravity_generator) +"aoo" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/vault{dir = 1},/area/engine/gravity_generator) +"aop" = (/obj/machinery/camera{c_tag = "Gravity Generator Room"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/black,/area/engine/gravity_generator) +"aoq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/auxsolarstarboard) +"aor" = (/obj/machinery/light/small{dir = 8},/obj/machinery/conveyor{dir = 2; id = "garbage"},/turf/open/floor/plating,/area/maintenance/disposal) +"aos" = (/obj/machinery/conveyor{dir = 4; id = "garbage"},/turf/open/floor/plating,/area/maintenance/disposal) +"aot" = (/obj/machinery/conveyor{dir = 4; id = "garbage"},/obj/machinery/door/window/eastright{base_state = "left"; dir = 4; icon_state = "left"; name = "Danger: Conveyor Access"; req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/disposal) +"aou" = (/obj/machinery/light/small{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/disposal) +"aov" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/item/weapon/storage/box/lights/mixed,/obj/effect/decal/cleanable/cobweb,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"aow" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"aox" = (/turf/open/floor/plating{icon_state = "platingdmg2"},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"aoy" = (/obj/structure/table/reinforced,/obj/structure/light_construct/small{dir = 8},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/structure/window/reinforced,/obj/item/weapon/poster/legit,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"aoz" = (/obj/structure/table/reinforced,/obj/item/weapon/folder,/obj/item/weapon/folder,/obj/machinery/door/window/westleft{base_state = "right"; dir = 2; icon_state = "right"; name = "windoor"; req_access_txt = "0"},/obj/item/weapon/book/manual/wiki/engineering_hacking,/obj/item/device/tape/random,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"aoA" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced,/obj/item/weapon/stock_parts/cell/crap,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"aoB" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced,/obj/item/weapon/electronics/firealarm,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"aoC" = (/obj/structure/closet/emcloset,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"aoD" = (/obj/structure/rack{dir = 1},/obj/item/clothing/under/rank/mailman,/obj/item/clothing/under/rank/vice{pixel_x = 4; pixel_y = -3},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"aoE" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/open/floor/plating,/area/maintenance/fore) +"aoF" = (/obj/machinery/door/airlock/glass_security{name = "N2O Storage"; req_access_txt = "3"},/turf/open/floor/plasteel/black,/area/maintenance/fore) +"aoG" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/bodycontainer/morgue,/obj/effect/landmark{name = "revenantspawn"},/turf/open/floor/plasteel/black,/area/security/brig) +"aoH" = (/turf/open/floor/plasteel/whitered/side{dir = 8},/area/security/brig) +"aoI" = (/obj/structure/bed/roller,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/security/brig) +"aoJ" = (/obj/machinery/door/window/westleft{base_state = "right"; dir = 4; icon_state = "right"; name = "Infirmary"; req_access_txt = "0"},/turf/open/floor/plasteel/whitered/side{dir = 4},/area/security/brig) +"aoK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/corner{dir = 1},/area/security/brig) +"aoL" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel,/area/security/brig) +"aoM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/red/corner{dir = 4},/area/security/brig) +"aoN" = (/obj/structure/table,/obj/item/weapon/storage/box/evidence,/obj/item/weapon/storage/box/evidence,/obj/item/weapon/storage/box/evidence,/obj/item/weapon/hand_labeler,/turf/open/floor/plasteel/vault{dir = 6},/area/security/warden) +"aoO" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/vault,/area/security/warden) +"aoP" = (/obj/structure/filingcabinet/security{pixel_x = 4},/turf/open/floor/plasteel/vault{dir = 10},/area/security/warden) +"aoQ" = (/obj/structure/rack,/obj/item/weapon/storage/box/chemimp{pixel_x = 4; pixel_y = 3},/obj/item/weapon/storage/box/trackimp,/obj/item/weapon/storage/lockbox/loyalty,/obj/item/weapon/reagent_containers/glass/bottle/morphine,/obj/machinery/light/small,/obj/machinery/firealarm{dir = 8; pixel_x = -26; pixel_y = 0},/turf/open/floor/plasteel/bot,/area/security/warden) +"aoR" = (/obj/structure/rack,/obj/item/weapon/storage/box/handcuffs,/obj/item/weapon/storage/box/flashbangs{pixel_x = -2; pixel_y = -2},/turf/open/floor/plasteel/bot,/area/security/warden) +"aoS" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/security/warden) +"aoT" = (/obj/structure/rack,/obj/item/weapon/storage/box/firingpins{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/firingpins,/turf/open/floor/plasteel/bot,/area/security/warden) +"aoU" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow,/turf/open/floor/plating,/area/security/warden) +"aoV" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"aoW" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 4},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"aoX" = (/obj/machinery/vending/security,/obj/machinery/firealarm{dir = 4; pixel_x = 28},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"aoY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/camera{c_tag = "Security - Office - Port"; dir = 4; network = list("SS13")},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/main) +"aoZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/chair{dir = 4},/obj/effect/landmark/start{name = "Security Officer"},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/main) +"apa" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 4},/turf/open/floor/plasteel,/area/security/main) +"apb" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/red{pixel_x = 3},/obj/item/weapon/folder/blue{pixel_x = -2; pixel_y = 3},/turf/open/floor/plasteel,/area/security/main) +"apc" = (/obj/structure/table/reinforced,/obj/item/weapon/paper,/turf/open/floor/plasteel,/area/security/main) +"apd" = (/obj/structure/table/reinforced,/obj/item/weapon/book/manual/wiki/security_space_law{pixel_x = -3; pixel_y = 5},/obj/item/device/taperecorder{pixel_x = -4; pixel_y = 0},/turf/open/floor/plasteel,/area/security/main) +"ape" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/red,/area/security/main) +"apf" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/turf/open/floor/plasteel,/area/security/main) +"apg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/chair{dir = 8},/obj/effect/landmark/start{name = "Security Officer"},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/main) +"aph" = (/obj/machinery/power/apc{cell_type = 5000; dir = 4; name = "Security Office APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable/yellow,/turf/open/floor/plasteel/red/side{dir = 4},/area/security/main) +"api" = (/obj/machinery/door/airlock/maintenance{name = "Security Maintenance"; req_access_txt = "0"; req_one_access_txt = "1;4"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/security/range) +"apj" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/maintenance{name = "Storage Room"; req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/fore) +"apk" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light_switch{pixel_x = -26},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"apl" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"apm" = (/obj/structure/chair{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"apn" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"apo" = (/obj/structure/chair{dir = 1},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"app" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"apq" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"apr" = (/obj/machinery/space_heater,/turf/open/floor/plating,/area/maintenance/starboard) +"aps" = (/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/starboard) +"apt" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel/black,/area/engine/gravity_generator) +"apu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/engine/gravity_generator) +"apv" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/engine/gravity_generator) +"apw" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/engine/gravity_generator) +"apx" = (/turf/open/floor/plating/airless,/area/space) +"apy" = (/obj/structure/lattice,/obj/structure/grille,/turf/open/space,/area/space) +"apz" = (/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/conveyor{dir = 8; id = "garbage"},/obj/structure/disposaloutlet{dir = 4},/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/disposal) +"apA" = (/obj/machinery/conveyor{dir = 8; id = "garbage"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/disposal) +"apB" = (/obj/machinery/conveyor{dir = 8; id = "garbage"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/turf/open/floor/plating,/area/maintenance/disposal) +"apC" = (/obj/machinery/conveyor{dir = 8; id = "garbage"},/obj/machinery/recycler,/turf/open/floor/plating,/area/maintenance/disposal) +"apD" = (/obj/machinery/door/window/eastright{dir = 4; name = "Danger: Conveyor Access"; req_access_txt = "12"},/obj/machinery/conveyor{dir = 2; id = "garbage"},/turf/open/floor/plating,/area/maintenance/disposal) +"apE" = (/obj/machinery/power/apc{dir = 2; name = "Disposal APC"; pixel_x = 0; pixel_y = -24},/obj/structure/cable/yellow,/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/disposal) +"apF" = (/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"apG" = (/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"apH" = (/obj/structure/chair{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"apI" = (/obj/structure/chair{dir = 8},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"apJ" = (/obj/machinery/space_heater,/obj/effect/decal/cleanable/cobweb,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"apK" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"apL" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"apM" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 8},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"apN" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/canister/air,/obj/item/weapon/tank/internals/air,/turf/open/floor/plating,/area/maintenance/fore) +"apO" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating,/area/maintenance/fore) +"apP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating,/area/maintenance/fore) +"apQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/fore) +"apR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/maintenance{name = "Brig Infirmary Maintenance"; req_access_txt = "63"; req_one_access_txt = "0"},/turf/open/floor/plating,/area/security/brig) +"apS" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/black,/area/security/brig) +"apT" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light/small,/turf/open/floor/plasteel/whitered/side{dir = 10},/area/security/brig) +"apU" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/iv_drip{density = 0},/turf/open/floor/plasteel/whitered/side,/area/security/brig) +"apV" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/rack,/obj/item/weapon/storage/firstaid/regular,/obj/item/device/healthanalyzer{pixel_y = -2},/obj/machinery/camera{c_tag = "Brig - Infirmary"; dir = 1; network = list("SS13")},/obj/item/clothing/under/rank/medical/purple{pixel_y = -4},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/whitered/side{dir = 6},/area/security/brig) +"apW" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/red/corner{dir = 1},/area/security/brig) +"apX" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel,/area/security/brig) +"apY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/firealarm{dir = 4; pixel_x = 28},/turf/open/floor/plasteel/red/corner{dir = 4},/area/security/brig) +"apZ" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/airlock/security{name = "Evidence Storage"; req_access = null; req_access_txt = "3"; req_one_access_txt = "0"},/turf/open/floor/plasteel/delivery,/area/security/warden) +"aqa" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/warden) +"aqb" = (/obj/machinery/door/firedoor,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/glass_security{name = "Secure Gear Storage"; req_access_txt = "3"},/turf/open/floor/plasteel/delivery,/area/security/warden) +"aqc" = (/obj/machinery/light{dir = 8},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/power/apc{cell_type = 5000; dir = 8; name = "Brig Control APC"; pixel_x = -26; pixel_y = 0},/obj/structure/cable/yellow,/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"aqd" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"aqe" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/closet/secure_closet/security/sec,/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"aqf" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/security/warden) +"aqg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/side{dir = 8},/area/security/main) +"aqh" = (/obj/structure/table,/obj/item/weapon/restraints/handcuffs,/obj/item/device/radio/off,/turf/open/floor/plasteel,/area/security/main) +"aqi" = (/obj/effect/landmark/start{name = "Security Officer"},/turf/open/floor/plasteel/red,/area/security/main) +"aqj" = (/obj/machinery/holopad,/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plasteel/red,/area/security/main) +"aqk" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/red,/area/security/main) +"aql" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plasteel/red,/area/security/main) +"aqm" = (/obj/structure/table,/obj/item/weapon/folder/red,/obj/item/weapon/book/manual/wiki/security_space_law{pixel_x = -3; pixel_y = 5},/obj/item/clothing/mask/gas/sechailer,/turf/open/floor/plasteel,/area/security/main) +"aqn" = (/turf/open/floor/plasteel/red/side{dir = 4},/area/security/main) +"aqo" = (/obj/machinery/door/window/eastright{base_state = "left"; dir = 8; icon_state = "left"; name = "Security Delivery"; req_access_txt = "1"},/turf/open/floor/plasteel/delivery,/area/security/main) +"aqp" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; dir = 8; freq = 1400; location = "Security"},/obj/structure/plasticflaps{opacity = 1},/turf/open/floor/plasteel/bot,/area/security/main) +"aqq" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plating/warnplate{dir = 9},/area/maintenance/fore) +"aqr" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/fore) +"aqs" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating{icon_state = "platingdmg2"},/area/maintenance/fore) +"aqt" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/sign/poster{pixel_y = 32},/turf/open/floor/plating,/area/maintenance/fore) +"aqu" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/fore) +"aqv" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fore) +"aqw" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/fore) +"aqx" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating{icon_state = "platingdmg2"},/area/maintenance/fore) +"aqy" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "1;4;38;12"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fore) +"aqz" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"aqA" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"aqB" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"aqC" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"aqD" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=14.8-Dorms-Lockers"; location = "14.5-Recreation"},/turf/open/floor/plasteel,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"aqE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"aqF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"aqG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"aqH" = (/obj/structure/grille,/turf/open/floor/plating,/area/maintenance/starboard) +"aqI" = (/turf/open/floor/plating,/area/maintenance/starboard) +"aqJ" = (/obj/structure/table,/obj/item/weapon/tank/internals/emergency_oxygen{pixel_x = -8; pixel_y = 0},/obj/item/weapon/tank/internals/emergency_oxygen{pixel_x = -8; pixel_y = 0},/obj/item/clothing/mask/breath{pixel_x = 4; pixel_y = 0},/obj/item/clothing/mask/breath{pixel_x = 4; pixel_y = 0},/obj/effect/decal/cleanable/cobweb,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/open/floor/plating,/area/maintenance/starboard) +"aqK" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/belt{desc = "Can hold quite a lot of stuff."; name = "multi-belt"},/obj/item/clothing/gloves/color/fyellow,/obj/effect/spawner/lootdrop/maintenance,/obj/structure/sink/kitchen{desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; name = "old sink"; pixel_y = 28},/turf/open/floor/plating,/area/maintenance/starboard) +"aqL" = (/obj/structure/easel,/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/starboard) +"aqM" = (/obj/structure/closet,/obj/effect/decal/cleanable/cobweb/cobweb2,/obj/item/weapon/reagent_containers/food/drinks/beer{desc = "Takes you to a whole new level of thinking."; name = "Meta-Cider"},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/starboard) +"aqN" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating,/area/engine/gravity_generator) +"aqO" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/engine/gravity_generator) +"aqP" = (/obj/machinery/door/airlock/glass_command{name = "Gravity Generator Area"; req_access_txt = "19; 61"},/turf/open/floor/plasteel/black,/area/engine/gravity_generator) +"aqQ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating,/area/engine/gravity_generator) +"aqR" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/engine/gravity_generator) +"aqS" = (/turf/closed/wall,/area/maintenance/auxsolarstarboard) +"aqT" = (/obj/machinery/power/solar_control{id = "forestarboard"; name = "Fore Starboard Solar Control"; track = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating,/area/maintenance/auxsolarstarboard) +"aqU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/auxsolarstarboard) +"aqV" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 32; pixel_y = 0},/obj/effect/decal/cleanable/cobweb/cobweb2,/turf/open/floor/plating,/area/maintenance/auxsolarstarboard) +"aqW" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating/airless,/area/space) +"aqX" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=1"; freq = 1400; location = "Disposals"},/obj/structure/plasticflaps{opacity = 0},/obj/machinery/conveyor{dir = 2; id = "garbage"},/obj/machinery/door/window/northright{dir = 2; name = "delivery door"; pixel_y = 0; req_access_txt = "31"},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/disposal) +"aqY" = (/obj/machinery/door/airlock/maintenance{name = "Disposal Conveyor Access"; req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/disposal) +"aqZ" = (/obj/structure/sign/securearea{name = "\improper STAY CLEAR HEAVY MACHINERY"; pixel_y = 0},/turf/closed/wall,/area/maintenance/disposal) +"ara" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"arb" = (/obj/machinery/door/airlock/maintenance{name = "Storage Room"; req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"arc" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"ard" = (/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"are" = (/obj/structure/light_construct/small{dir = 4},/obj/structure/chair{dir = 8},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"arf" = (/obj/item/weapon/cigbutt,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"arg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"arh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating,/area/maintenance/fore) +"ari" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating,/area/maintenance/fore) +"arj" = (/obj/structure/grille,/turf/open/floor/plating{icon_state = "platingdmg1"},/area/maintenance/fore) +"ark" = (/obj/item/weapon/storage/box/lights/mixed,/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/machinery/light/small{dir = 4},/turf/open/floor/plating,/area/maintenance/fore) +"arl" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/open/floor/plasteel/red/corner{dir = 1},/area/security/brig) +"arm" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/security/brig) +"arn" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/red/corner{dir = 4},/area/security/brig) +"aro" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/open/floor/plating,/area/security/warden) +"arp" = (/obj/machinery/computer/prisoner,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"arq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"arr" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/photocopier{pixel_y = 3},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"ars" = (/obj/machinery/requests_console{department = "Security"; departmentType = 5; pixel_y = 30},/obj/machinery/light{dir = 1},/obj/machinery/camera{c_tag = "Warden's Office"; dir = 2; network = list("SS13")},/obj/structure/rack,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -4; pixel_y = 4},/obj/item/weapon/storage/toolbox/emergency{pixel_x = 2; pixel_y = -3},/obj/item/weapon/wirecutters{pixel_y = 2},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"art" = (/obj/structure/table,/obj/machinery/recharger,/obj/machinery/airalarm{pixel_y = 28},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"aru" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"arv" = (/obj/machinery/firealarm{dir = 4; pixel_x = 28},/obj/structure/closet/secure_closet/warden,/obj/item/weapon/gun/projectile/automatic/wt550,/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"arw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"arx" = (/obj/structure/reagent_dispensers/peppertank{pixel_x = 32; pixel_y = 0},/obj/structure/closet/wardrobe/red,/obj/machinery/camera{c_tag = "Security - Gear Room"; dir = 8; network = list("SS13")},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"ary" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/reagent_dispensers/peppertank{pixel_x = -32; pixel_y = 0},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/main) +"arz" = (/obj/structure/table,/obj/item/weapon/folder/red,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/clothing/mask/gas/sechailer,/turf/open/floor/plasteel,/area/security/main) +"arA" = (/obj/structure/table,/obj/item/weapon/folder/red,/obj/item/weapon/restraints/handcuffs,/turf/open/floor/plasteel,/area/security/main) +"arB" = (/obj/structure/table,/obj/item/weapon/folder/red,/obj/item/weapon/storage/secure/briefcase,/turf/open/floor/plasteel,/area/security/main) +"arC" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/red,/area/security/main) +"arD" = (/obj/structure/table,/obj/item/weapon/folder/red,/obj/item/device/assembly/flash/handheld,/turf/open/floor/plasteel,/area/security/main) +"arE" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/syndicatebomb/training,/turf/open/floor/plasteel,/area/security/main) +"arF" = (/obj/structure/table,/obj/item/weapon/folder/red,/obj/item/weapon/pen,/obj/item/weapon/storage/box/donkpockets,/turf/open/floor/plasteel,/area/security/main) +"arG" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/camera{c_tag = "Security - Office - Starboard"; dir = 8; network = list("SS13")},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/main) +"arH" = (/turf/closed/wall/r_wall,/area/security/main) +"arI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/fore) +"arJ" = (/obj/structure/closet/lasertag/red,/turf/open/floor/plasteel/vault,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"arK" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/ears/earmuffs,/obj/item/clothing/neck/tie/red,/obj/item/clothing/head/soft/red,/turf/open/floor/plasteel/vault,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"arL" = (/obj/structure/rack,/obj/item/clothing/under/color/blue,/obj/item/clothing/ears/earmuffs,/obj/item/clothing/neck/tie/blue,/obj/item/clothing/head/soft/blue,/obj/structure/sign/poster{pixel_y = -32},/turf/open/floor/plasteel/vault,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"arM" = (/obj/structure/closet/lasertag/blue,/turf/open/floor/plasteel/vault,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"arN" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"arO" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"arP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"arQ" = (/obj/machinery/disposal/bin,/obj/machinery/light_switch{pixel_x = 0; pixel_y = -26},/obj/structure/disposalpipe/trunk{dir = 8},/obj/machinery/camera{c_tag = "Fitness Room - Aft"; dir = 1},/turf/open/floor/plasteel/vault,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"arR" = (/obj/machinery/vending/coffee,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -28},/turf/open/floor/plasteel/vault,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"arS" = (/obj/machinery/light,/obj/machinery/vending/cola,/turf/open/floor/plasteel/vault,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"arT" = (/obj/machinery/vending/cigarette,/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/plasteel/vault,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"arU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/closed/wall,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"arV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"arW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/closed/wall,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) +"arX" = (/obj/item/weapon/cigbutt,/obj/structure/sign/poster{pixel_x = -32; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/starboard) +"arY" = (/turf/open/floor/plating{icon_state = "platingdmg2"},/area/maintenance/starboard) +"arZ" = (/obj/item/device/mmi{name = "man-machine interface"},/obj/structure/rack{dir = 8; layer = 2.9},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/starboard) +"asa" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 8; name = "Gravity Generator APC"; pixel_x = -25; pixel_y = 1},/turf/open/floor/plasteel/warning{dir = 9},/area/engine/gravity_generator) +"asb" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4; initialize_directions = 11},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/warning{dir = 1},/area/engine/gravity_generator) +"asc" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/warning{dir = 1},/area/engine/gravity_generator) +"asd" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel/warning{dir = 1},/area/engine/gravity_generator) +"ase" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/power/port_gen/pacman,/turf/open/floor/plasteel/warning{dir = 5},/area/engine/gravity_generator) +"asf" = (/obj/structure/chair/stool{pixel_y = 8},/obj/machinery/camera/autoname{dir = 4; network = list("SS13")},/turf/open/floor/plating,/area/maintenance/auxsolarstarboard) +"asg" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/plating,/area/maintenance/auxsolarstarboard) +"ash" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/terminal,/obj/machinery/light/small{dir = 4},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/turf/open/floor/plating,/area/maintenance/auxsolarstarboard) +"asi" = (/obj/structure/lattice,/obj/structure/grille/broken,/turf/open/space,/area/space) +"asj" = (/obj/machinery/space_heater,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"ask" = (/obj/machinery/space_heater,/turf/open/floor/plating{icon_state = "platingdmg2"},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"asl" = (/obj/machinery/door/poddoor/shutters{id = "supplybridge"},/turf/open/floor/plating/warnplate{dir = 9},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"asm" = (/obj/machinery/door/poddoor/shutters{id = "supplybridge"},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"asn" = (/obj/machinery/door/poddoor/shutters{id = "supplybridge"},/turf/open/floor/plating/warnplate{dir = 5},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"aso" = (/obj/machinery/space_heater,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/open/floor/plating{icon_state = "platingdmg1"},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"asp" = (/obj/structure/disposalpipe/segment,/obj/machinery/light/small{dir = 8},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"asq" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"asr" = (/obj/structure/reagent_dispensers/fueltank,/obj/structure/sign/poster{pixel_y = 32},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"ass" = (/obj/structure/rack,/obj/effect/decal/cleanable/cobweb/cobweb2,/obj/item/weapon/storage/toolbox/emergency,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"ast" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"asu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"asv" = (/obj/machinery/space_heater,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"asw" = (/obj/structure/light_construct/small,/obj/item/weapon/toolbox_tiles_sensor,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"asx" = (/obj/item/weapon/vending_refill/cigarette,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"asy" = (/obj/structure/chair{dir = 8},/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"asz" = (/obj/structure/closet/crate,/obj/item/clothing/gloves/color/fyellow,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"asA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating/warnplate{icon_plating = "warnplate"},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"asB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating/warnplate{icon_plating = "warnplate"},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"asC" = (/obj/structure/reagent_dispensers/watertank,/obj/item/weapon/extinguisher,/turf/open/floor/plating,/area/maintenance/fore) +"asD" = (/obj/structure/closet/crate,/obj/item/weapon/restraints/handcuffs,/obj/item/bodybag,/obj/item/device/radio,/obj/effect/spawner/lootdrop/maintenance{lootcount = 3; name = "3maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/fore) +"asE" = (/obj/structure/chair,/obj/item/weapon/restraints/handcuffs,/obj/effect/decal/remains/human,/obj/item/clothing/under/soviet,/obj/effect/decal/cleanable/blood/old,/turf/open/floor/plating,/area/maintenance/fore) +"asF" = (/obj/machinery/computer/security{name = "Labor Camp Monitoring"; network = list("Labor")},/turf/open/floor/plasteel/black,/area/security/brig) +"asG" = (/obj/machinery/computer/shuttle/labor,/turf/open/floor/plasteel/black,/area/security/brig) +"asH" = (/obj/machinery/computer/secure_data,/obj/machinery/computer/security/telescreen{desc = "Used for watching Prison Wing holding areas."; dir = 2; name = "Prison Monitor"; network = list("Prison"); pixel_x = -30; pixel_y = 0},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"asI" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"asJ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"asK" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"asL" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"asM" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"asN" = (/obj/structure/chair/office/dark{dir = 4},/obj/effect/landmark/start{name = "Warden"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"asO" = (/obj/structure/table/reinforced,/obj/machinery/door/window/westleft{base_state = "right"; dir = 4; icon_state = "right"; name = "Outer Window"; req_access_txt = "0"},/obj/machinery/door/window/brigdoor{dir = 8; name = "Brig Control Desk"; req_access_txt = "3"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/item/weapon/folder/red,/obj/item/weapon/folder/red,/obj/item/weapon/poster/legit,/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"asP" = (/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"asQ" = (/obj/structure/closet/secure_closet/security/sec,/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"asR" = (/obj/machinery/newscaster/security_unit,/turf/closed/wall,/area/security/warden) +"asS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/effect/landmark/start{name = "Security Officer"},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/main) +"asT" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/red/side{dir = 10},/area/security/main) +"asU" = (/obj/structure/chair{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/landmark/start{name = "Security Officer"},/turf/open/floor/plasteel/red/side,/area/security/main) +"asV" = (/obj/structure/chair{dir = 1},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/effect/landmark/start{name = "Security Officer"},/turf/open/floor/plasteel/red/side,/area/security/main) +"asW" = (/obj/structure/chair{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/effect/landmark/start{name = "Security Officer"},/turf/open/floor/plasteel/red/side,/area/security/main) +"asX" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/red,/area/security/main) +"asY" = (/obj/structure/chair{dir = 1},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/obj/effect/landmark/start{name = "Security Officer"},/turf/open/floor/plasteel/red/side,/area/security/main) +"asZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/red/side{dir = 6},/area/security/main) +"ata" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/main) +"atb" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/security{name = "Interrogation Monitoring"; req_access = null; req_access_txt = "0"; req_one_access_txt = "1;4"},/turf/open/floor/plasteel/grimy,/area/security/main) +"atc" = (/turf/open/floor/plasteel/grimy,/area/security/main) +"atd" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/grimy,/area/security/main) +"ate" = (/obj/item/weapon/phone{desc = "Supposedly a direct line to NanoTrasen Central Command. It's not even plugged in."; pixel_x = -3; pixel_y = 3},/obj/item/weapon/cigbutt/cigarbutt{pixel_x = 5; pixel_y = -1},/obj/structure/table/wood,/obj/machinery/firealarm{dir = 4; pixel_x = 28},/turf/open/floor/plasteel/grimy,/area/security/main) +"atf" = (/obj/structure/rack,/obj/item/clothing/suit/hazardvest,/turf/open/floor/plating,/area/maintenance/fore) +"atg" = (/obj/machinery/space_heater,/turf/open/floor/plating{icon_state = "platingdmg1"},/area/maintenance/fore) +"ath" = (/obj/structure/closet/emcloset,/turf/open/floor/plating,/area/maintenance/fore) +"ati" = (/turf/closed/wall,/area/crew_quarters/sleep) +"atj" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock{name = "Recreation Area"; req_access_txt = "0"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/crew_quarters/sleep) +"atk" = (/obj/structure/grille,/obj/structure/window/reinforced/tinted/fulltile,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/crew_quarters/sleep) +"atl" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock{name = "Recreation Area"; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/crew_quarters/sleep) +"atm" = (/obj/structure/closet,/obj/item/weapon/poster/contraband,/obj/item/weapon/poster/contraband,/obj/item/weapon/poster/contraband,/obj/item/weapon/poster/contraband,/obj/item/weapon/poster/contraband,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/starboard) +"atn" = (/obj/structure/closet,/obj/item/weapon/storage/box/lights/mixed,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/starboard) +"ato" = (/obj/structure/rack,/obj/item/weapon/extinguisher,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/starboard) +"atp" = (/obj/structure/rack,/obj/effect/landmark/costume,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/starboard) +"atq" = (/obj/structure/rack,/obj/item/clothing/suit/poncho,/obj/item/clothing/head/sombrero,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/starboard) +"atr" = (/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/starboard) +"ats" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/plating,/area/maintenance/starboard) +"att" = (/obj/structure/rack,/obj/item/weapon/book/manual/wiki/engineering_guide{pixel_x = 3; pixel_y = 4},/obj/effect/spawner/lootdrop/maintenance,/obj/item/weapon/storage/box/lights/mixed,/turf/open/floor/plating,/area/maintenance/starboard) +"atu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/closed/wall/r_wall,/area/engine/gravity_generator) +"atv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 10},/area/engine/gravity_generator) +"atw" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 2},/area/engine/gravity_generator) +"atx" = (/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/obj/machinery/holopad,/turf/open/floor/plasteel/warning{dir = 2},/area/engine/gravity_generator) +"aty" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/power/terminal,/turf/open/floor/plasteel/warning{dir = 2},/area/engine/gravity_generator) +"atz" = (/obj/machinery/firealarm{dir = 4; pixel_x = 28},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/chair/office/light,/turf/open/floor/plasteel/warning{dir = 6},/area/engine/gravity_generator) +"atA" = (/obj/machinery/power/apc{dir = 8; name = "Fore Starboard Solar APC"; pixel_x = -25; pixel_y = 3},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/open/floor/plating{icon_state = "platingdmg1"},/area/maintenance/auxsolarstarboard) +"atB" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating/warnplate{dir = 2},/area/maintenance/auxsolarstarboard) +"atC" = (/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/power/smes,/turf/open/floor/plating,/area/maintenance/auxsolarstarboard) +"atD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating/warnplate{dir = 2},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"atE" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/obj/machinery/light,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"atF" = (/obj/machinery/door/airlock/glass{name = "space-bridge access"},/obj/machinery/button/door{id = "supplybridge"; name = "Shuttle Bay Space Bridge Control"; pixel_x = 0; pixel_y = 27; req_access_txt = "0"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"atG" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"atH" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"atI" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"atJ" = (/obj/machinery/door/airlock/glass{name = "space-bridge access"},/obj/machinery/button/door{id = "supplybridge"; name = "Shuttle Bay Space Bridge Control"; pixel_x = 0; pixel_y = 27; req_access_txt = "0"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"atK" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/obj/machinery/light,/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"atL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"atM" = (/obj/machinery/door/airlock/maintenance_hatch{name = "Cargo Bay Bridge Access"; req_access_txt = "0"; req_one_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"atN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"atO" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"atP" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/mob/living/simple_animal/mouse,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"atQ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"atR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"atS" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"atT" = (/obj/machinery/door/airlock/maintenance{name = "Storage Room"; req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fore) +"atU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/maintenance{name = "Brig Maintenance"; req_access_txt = "0"; req_one_access_txt = "63;12"},/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/fore) +"atV" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/obj/machinery/camera{c_tag = "Labor Shuttle Control Desk"; dir = 4},/obj/machinery/light{dir = 8},/obj/structure/table,/obj/item/weapon/storage/box/prisoner,/obj/item/weapon/razor{pixel_x = -6},/obj/item/weapon/paper{desc = ""; info = "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, surveilance 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."; name = "Labor Camp Operating Guide"},/obj/item/weapon/pen,/turf/open/floor/plasteel/black,/area/security/brig) +"atW" = (/obj/structure/chair/office/dark{dir = 8},/turf/open/floor/plasteel/black,/area/security/brig) +"atX" = (/obj/machinery/computer/security,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"atY" = (/obj/effect/landmark/start{name = "Warden"},/obj/structure/chair/office/dark,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"atZ" = (/obj/machinery/computer/crew,/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"aua" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/newscaster/security_unit{pixel_x = 0; pixel_y = -30},/obj/item/weapon/folder/red,/obj/item/weapon/folder/red,/obj/structure/table,/obj/item/weapon/book/manual/wiki/security_space_law{pixel_x = -3; pixel_y = 5},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"aub" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/structure/reagent_dispensers/peppertank{pixel_x = 0; pixel_y = -32},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"auc" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/filingcabinet/chestdrawer{pixel_y = 2},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"aud" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = "0"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"aue" = (/obj/structure/table,/obj/machinery/button/door{id = "Prison Gate"; name = "Prison Wing Lockdown"; pixel_x = 0; pixel_y = 7; req_access_txt = "2"},/obj/machinery/button/door{id = "Secure Gate"; name = "Cell Window Control"; normaldoorcontrol = 0; pixel_x = -5; pixel_y = -3; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/button/door{id = "briglockdown"; name = "Brig Lockdown Control"; pixel_x = 5; pixel_y = -3; req_access_txt = "0"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 29; pixel_y = -28},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"auf" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"aug" = (/obj/structure/table,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/item/weapon/folder/red,/obj/item/weapon/restraints/handcuffs,/obj/item/clothing/head/cone{pixel_x = -4; pixel_y = 4},/obj/item/clothing/head/cone{pixel_x = -4; pixel_y = 4},/obj/item/clothing/head/cone{pixel_x = -4; pixel_y = 4},/obj/item/clothing/head/cone{pixel_x = -4; pixel_y = 4},/obj/item/clothing/head/cone{pixel_x = -4; pixel_y = 4},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"auh" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/security/warden) +"aui" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/obj/vehicle/secway,/obj/item/key/security,/turf/open/floor/plasteel/red/side{dir = 10},/area/security/main) +"auj" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/red/side,/area/security/main) +"auk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/red/side,/area/security/main) +"aul" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/red/side,/area/security/main) +"aum" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/red/side,/area/security/main) +"aun" = (/obj/machinery/light,/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 0; pixel_y = -32},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/red/side,/area/security/main) +"auo" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/red/side,/area/security/main) +"aup" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/red/side,/area/security/main) +"auq" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/plasteel/red/side,/area/security/main) +"aur" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/red/side,/area/security/main) +"aus" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/red/side{dir = 6},/area/security/main) +"aut" = (/obj/structure/chair,/turf/open/floor/plasteel/grimy,/area/security/main) +"auu" = (/obj/structure/chair,/obj/machinery/computer/security/telescreen{desc = "Used for watching proceedings in the interrogation room."; dir = 1; layer = 4; name = "interrogation monitor"; network = list("interrogation"); pixel_x = 0; pixel_y = -30},/turf/open/floor/plasteel/grimy,/area/security/main) +"auv" = (/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/structure/table/wood,/obj/item/device/radio/intercom{anyai = 1; broadcasting = 0; freerange = 1; frequency = 1424; listening = 1; name = "Interrogation Intercom"; pixel_x = 0; pixel_y = -31},/turf/open/floor/plasteel/grimy,/area/security/main) +"auw" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/fore) +"aux" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/airlock/maintenance{name = "Storage Room"; req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/fore) +"auy" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/fore) +"auz" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/fore) +"auA" = (/obj/machinery/light/small{dir = 1},/obj/structure/table/wood,/obj/machinery/newscaster{pixel_x = 0; pixel_y = 32},/obj/item/weapon/lighter,/turf/open/floor/wood,/area/crew_quarters/sleep) +"auB" = (/obj/structure/closet/secure_closet/personal/cabinet,/obj/machinery/airalarm{pixel_y = 23},/obj/item/clothing/under/assistantformal,/turf/open/floor/wood,/area/crew_quarters/sleep) +"auC" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/machinery/button/door{id = "Cabin3"; name = "Cabin Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/effect/decal/cleanable/cobweb/cobweb2,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/wood,/area/crew_quarters/sleep) +"auD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/crew_quarters/sleep) +"auE" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/crew_quarters/sleep) +"auF" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"auG" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/crew_quarters/sleep) +"auH" = (/obj/machinery/light/small{dir = 1},/obj/effect/decal/cleanable/cobweb,/obj/machinery/button/door{id = "Cabin4"; name = "Cabin Bolt Control"; normaldoorcontrol = 1; pixel_x = -25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/bed,/obj/item/weapon/bedsheet,/turf/open/floor/carpet,/area/crew_quarters/sleep) +"auI" = (/obj/structure/closet/secure_closet/personal/cabinet,/obj/machinery/airalarm{pixel_y = 23},/obj/item/clothing/under/suit_jacket/burgundy,/turf/open/floor/carpet,/area/crew_quarters/sleep) +"auJ" = (/obj/structure/dresser,/obj/machinery/newscaster{pixel_x = 0; pixel_y = 32},/turf/open/floor/carpet,/area/crew_quarters/sleep) +"auK" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plating,/area/maintenance/starboard) +"auL" = (/obj/item/weapon/cigbutt,/turf/open/floor/plating,/area/maintenance/starboard) +"auM" = (/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/starboard) +"auN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating/warnplate{dir = 2},/area/maintenance/starboard) +"auO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/engine/gravity_generator) +"auP" = (/obj/machinery/door/airlock/highsecurity{name = "Gravity Generator Room"; req_access_txt = "19;23"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/gravity_generator) +"auQ" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/gravity_generator) +"auR" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/table,/obj/item/weapon/paper/gravity_gen{layer = 3},/obj/item/weapon/pen/blue,/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/gravity_generator) +"auS" = (/obj/machinery/space_heater,/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/starboard) +"auT" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/engineering{name = "Fore Starboard Solar Access"; req_access_txt = "10"},/turf/open/floor/plating,/area/maintenance/auxsolarstarboard) +"auU" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 0},/turf/closed/wall,/area/maintenance/auxsolarstarboard) +"auV" = (/obj/machinery/door/airlock/external{req_access_txt = "13"},/turf/open/floor/plating,/area/maintenance/starboard) +"auW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/maintenance_hatch{name = "Cargo Bay Bridge Access"; req_access_txt = "0"; req_one_access_txt = "0"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"auX" = (/obj/machinery/door/poddoor/shutters{id = "supplybridge"},/turf/open/floor/plating/warnplate{dir = 10},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"auY" = (/obj/machinery/door/poddoor/shutters{id = "supplybridge"},/turf/open/floor/plating/warnplate{dir = 2},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"auZ" = (/obj/machinery/door/poddoor/shutters{id = "supplybridge"},/turf/open/floor/plating/warnplate{dir = 6},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"ava" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"avb" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"avc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"avd" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/grille,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"ave" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"avf" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"avg" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/fore) +"avh" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/sortjunction{dir = 4; icon_state = "pipe-j1s"; sortType = 2},/turf/open/floor/plating,/area/maintenance/fore) +"avi" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/fore) +"avj" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/fore) +"avk" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;63"},/turf/open/floor/plating,/area/maintenance/fore) +"avl" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/fore) +"avm" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/sign/poster{pixel_y = 32},/turf/open/floor/plating,/area/maintenance/fore) +"avn" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fore) +"avo" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fore) +"avp" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/fore) +"avq" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fore) +"avr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/fore) +"avs" = (/turf/closed/wall/mineral/titanium,/area/shuttle/labor) +"avt" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/labor) +"avu" = (/obj/machinery/computer/gulag_teleporter_computer,/turf/open/floor/plasteel/black,/area/security/brig) +"avv" = (/obj/machinery/gulag_teleporter,/turf/open/floor/plasteel/black,/area/security/brig) +"avw" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/security/brig) +"avx" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/red/corner{dir = 4},/area/security/brig) +"avy" = (/obj/structure/sign/pods,/turf/closed/wall/r_wall,/area/security/warden) +"avz" = (/obj/structure/table/reinforced,/obj/machinery/door/window/westleft{base_state = "right"; dir = 2; icon_state = "right"; name = "Reception Window"; req_access_txt = "0"},/obj/machinery/door/window/brigdoor{dir = 1; name = "Brig Control Desk"; req_access_txt = "3"},/obj/item/weapon/paper,/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"avA" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow,/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/security/warden) +"avB" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Brig Control"; req_access_txt = "3"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = "0"},/turf/open/floor/plasteel/delivery,/area/security/warden) +"avC" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Gear Room"; req_access_txt = "0"; req_one_access_txt = "1;4"},/turf/open/floor/plasteel/delivery,/area/security/warden) +"avD" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/security/warden) +"avE" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow,/turf/open/floor/plating,/area/security/main) +"avF" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/glass_security{name = "Security Office"; req_access_txt = "0"; req_one_access_txt = "1;4"},/turf/open/floor/plasteel,/area/security/main) +"avG" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Security Office"; req_access_txt = "0"; req_one_access_txt = "1;4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/security/main) +"avH" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/open/floor/plating,/area/security/main) +"avI" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/security/main) +"avJ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/security/main) +"avK" = (/obj/structure/grille,/obj/structure/window/reinforced/tinted/fulltile,/turf/open/floor/plating,/area/security/main) +"avL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/fore) +"avM" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plating,/area/maintenance/fore) +"avN" = (/turf/open/floor/plating{icon_state = "platingdmg2"},/area/maintenance/fore) +"avO" = (/obj/structure/chair/wood/normal{dir = 1},/turf/open/floor/wood,/area/crew_quarters/sleep) +"avP" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/wood,/area/crew_quarters/sleep) +"avQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/wood,/area/crew_quarters/sleep) +"avR" = (/obj/machinery/door/airlock{id_tag = "Cabin3"; name = "Cabin 6"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/wood,/area/crew_quarters/sleep) +"avS" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/crew_quarters/sleep) +"avT" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/obj/effect/landmark{name = "lightsout"},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"avU" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/crew_quarters/sleep) +"avV" = (/obj/machinery/door/airlock{id_tag = "Cabin4"; name = "Cabin 5"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/wood,/area/crew_quarters/sleep) +"avW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/carpet,/area/crew_quarters/sleep) +"avX" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/carpet,/area/crew_quarters/sleep) +"avY" = (/turf/open/floor/carpet,/area/crew_quarters/sleep) +"avZ" = (/obj/structure/mopbucket,/obj/item/weapon/mop,/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plating{icon_state = "platingdmg2"},/area/maintenance/starboard) +"awa" = (/obj/structure/closet/crate/hydroponics,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/starboard) +"awb" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/plating,/area/maintenance/starboard) +"awc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/starboard) +"awd" = (/obj/structure/closet,/obj/item/weapon/stock_parts/matter_bin,/turf/open/floor/plating,/area/maintenance/starboard) +"awe" = (/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/starboard) +"awf" = (/obj/machinery/door/airlock/maintenance{name = "Storage Room"; req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/starboard) +"awg" = (/obj/structure/closet/radiation,/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; dir = 1; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/warning{dir = 9},/area/engine/gravity_generator) +"awh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/warning{dir = 1},/area/engine/gravity_generator) +"awi" = (/obj/machinery/camera{c_tag = "Gravity Generator Foyer"},/obj/structure/closet/radiation,/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; dir = 1; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 0; pixel_y = 32},/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/warning{dir = 5},/area/engine/gravity_generator) +"awj" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/starboard) +"awk" = (/obj/item/stack/sheet/cardboard,/obj/item/device/flashlight,/obj/effect/decal/cleanable/cobweb/cobweb2,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/starboard) +"awl" = (/obj/structure/rack,/obj/item/clothing/mask/gas,/obj/item/clothing/glasses/sunglasses,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/starboard) +"awm" = (/obj/structure/closet/crate/medical,/obj/item/stack/cable_coil,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/starboard) +"awn" = (/obj/structure/closet/emcloset,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 32; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/starboard) +"awo" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 32; pixel_y = 0},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/starboard) +"awp" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/turf/open/floor/plating/airless,/area/space) +"awq" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/effect/decal/cleanable/cobweb,/obj/effect/spawner/lootdrop/maintenance{lootcount = 3; name = "3maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"awr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"aws" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"awt" = (/turf/open/floor/plating{icon_state = "platingdmg1"},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"awu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"awv" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"aww" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/window/reinforced/tinted/fulltile,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"awx" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"awy" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"awz" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"awA" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/open/floor/plating,/area/maintenance/fore) +"awB" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/open/floor/plating,/area/maintenance/fore) +"awC" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/maintenance/fore) +"awD" = (/obj/machinery/computer/shuttle/labor,/obj/structure/reagent_dispensers/peppertank{pixel_x = -31; pixel_y = 0},/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/labor) +"awE" = (/obj/structure/chair/office/dark{dir = 1},/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/labor) +"awF" = (/obj/structure/table,/obj/item/weapon/folder/red,/obj/item/weapon/restraints/handcuffs,/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/labor) +"awG" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = -32; pixel_y = 0},/turf/open/floor/plasteel/red/corner{dir = 8},/area/security/brig) +"awH" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/junction,/turf/open/floor/plasteel,/area/security/brig) +"awI" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/red/corner{dir = 4},/area/security/brig) +"awJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/red/corner{dir = 4},/area/security/brig) +"awK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/holopad,/turf/open/floor/plasteel/red/corner{dir = 4},/area/security/brig) +"awL" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/red/corner{dir = 4},/area/security/brig) +"awM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/red/corner{dir = 4},/area/security/brig) +"awN" = (/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/red/corner{dir = 4},/area/security/brig) +"awO" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/machinery/light{dir = 1},/obj/machinery/camera{c_tag = "Brig - Hallway - Entrance"; dir = 2; network = list("SS13")},/turf/open/floor/plasteel/red/corner{dir = 4},/area/security/brig) +"awP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/corner{dir = 4},/area/security/brig) +"awQ" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 26},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/red/corner{dir = 4},/area/security/brig) +"awR" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = 30},/turf/open/floor/plasteel/red/corner{dir = 4},/area/security/brig) +"awS" = (/obj/machinery/firealarm{pixel_y = 28},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/red/corner{dir = 4},/area/security/brig) +"awT" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/red/corner{dir = 4},/area/security/brig) +"awU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/red/corner{dir = 4},/area/security/brig) +"awV" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/brig) +"awW" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel/black,/area/security/brig) +"awX" = (/turf/open/floor/plasteel/black,/area/security/brig) +"awY" = (/obj/structure/disposalpipe/segment,/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/machinery/firealarm{dir = 8; pixel_x = -26; pixel_y = 0},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/crew_quarters/sleep) +"awZ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"axa" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/crew_quarters/sleep) +"axb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/crew_quarters/sleep) +"axc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/closed/wall,/area/crew_quarters/sleep) +"axd" = (/obj/item/weapon/cigbutt,/turf/open/floor/plating/warnplate{dir = 2},/area/maintenance/starboard) +"axe" = (/turf/open/floor/plating{icon_state = "platingdmg1"},/area/maintenance/starboard) +"axf" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plating,/area/maintenance/starboard) +"axg" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/starboard) +"axh" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; dir = 1; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 0; pixel_y = 32},/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/starboard) +"axi" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/starboard) +"axj" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/light/small,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/warning{dir = 10},/area/engine/gravity_generator) +"axk" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/warning{dir = 2},/area/engine/gravity_generator) +"axl" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/open/floor/plasteel/warning{dir = 6},/area/engine/gravity_generator) +"axm" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/starboard) +"axn" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; dir = 1; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 0; pixel_y = 32},/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/starboard) +"axo" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard) +"axp" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating{icon_state = "platingdmg1"},/area/maintenance/starboard) +"axq" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating{icon_state = "platingdmg2"},/area/maintenance/starboard) +"axr" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/starboard) +"axs" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plating,/area/maintenance/starboard) +"axt" = (/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/starboard) +"axu" = (/obj/structure/closet/crate,/obj/item/stack/sheet/metal{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/stack/sheet/metal{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/stack/sheet/metal{amount = 50; pixel_x = 2; pixel_y = 2},/turf/open/floor/plating/airless,/area/space) +"axv" = (/obj/machinery/door/airlock/external,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"axw" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"axx" = (/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"axy" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"axz" = (/obj/item/hand_labeler_refill,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"axA" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"axB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"axC" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;50"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"axD" = (/obj/structure/disposalpipe/sortjunction{dir = 1; icon_state = "pipe-j2s"; sortType = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"axE" = (/obj/structure/disposalpipe/segment,/mob/living/simple_animal/mouse,/turf/open/floor/plating{icon_state = "platingdmg2"},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"axF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"axG" = (/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/labor) +"axH" = (/obj/machinery/button/flasher{id = "gulagshuttleflasher"; name = "Flash Control"; pixel_x = 0; pixel_y = -26; req_access_txt = "1"},/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/labor) +"axI" = (/obj/machinery/mineral/labor_claim_console{machinedir = 2; pixel_x = 30; pixel_y = 30},/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/labor) +"axJ" = (/obj/machinery/door/airlock/shuttle{name = "Labor Shuttle Airlock"; req_access_txt = "2"},/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/labor) +"axK" = (/obj/machinery/door/airlock/external{name = "Labor Camp Shuttle Airlock"; req_access_txt = "2"},/turf/open/floor/plasteel/black,/area/security/brig) +"axL" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Labor Camp Shuttle Airlock"; req_access_txt = "2"},/obj/machinery/button/door{id = "prison release"; name = "Labor Camp Shuttle Lockdown"; pixel_x = 0; pixel_y = -25; req_access_txt = "2"},/turf/open/floor/plasteel/black,/area/security/brig) +"axM" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/red/corner{dir = 8},/area/security/brig) +"axN" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/security/brig) +"axO" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = "0"},/turf/open/floor/plasteel,/area/security/brig) +"axP" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/security/brig) +"axQ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/security/brig) +"axR" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/junction{dir = 4; icon_state = "pipe-j2"},/turf/open/floor/plasteel,/area/security/brig) +"axS" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = "0"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel,/area/security/brig) +"axT" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/security/brig) +"axU" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/security/brig) +"axV" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/mob/living/simple_animal/bot/secbot/beepsky{desc = "It's Officer Beepsky! Powered by a potato and a shot of whiskey, and with a sturdier reinforced chassis, too. "; health = 45; maxHealth = 45; name = "Officer Beepsky"},/turf/open/floor/plasteel,/area/security/brig) +"axW" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/security/brig) +"axX" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/security/brig) +"axY" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/security/brig) +"axZ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/effect/landmark{name = "lightsout"},/turf/open/floor/plasteel,/area/security/brig) +"aya" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/security/brig) +"ayb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/security/brig) +"ayc" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/security/brig) +"ayd" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/security/brig) +"aye" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel,/area/security/brig) +"ayf" = (/turf/open/floor/plasteel,/area/security/brig) +"ayg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/brig) +"ayh" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/security{name = "Interrogation"; req_access = null; req_access_txt = "63"; req_one_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/security/brig) +"ayi" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel/black,/area/security/brig) +"ayj" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/black,/area/security/brig) +"ayk" = (/obj/structure/table,/obj/item/device/flashlight/lamp,/turf/open/floor/plasteel/black,/area/security/brig) +"ayl" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/black,/area/security/brig) +"aym" = (/obj/machinery/camera{c_tag = "Interrogation"; dir = 8; network = list("interrogation")},/turf/open/floor/plasteel/black,/area/security/brig) +"ayn" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/item/weapon/storage/box/donkpockets,/turf/open/floor/plating,/area/maintenance/fore) +"ayo" = (/obj/structure/reagent_dispensers/watertank,/obj/item/weapon/storage/box/lights/mixed,/turf/open/floor/plating,/area/maintenance/fore) +"ayp" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/obj/machinery/light/small{dir = 1},/obj/machinery/newscaster{pixel_x = 0; pixel_y = 32},/obj/structure/dresser,/turf/open/floor/carpet,/area/crew_quarters/sleep) +"ayq" = (/obj/structure/closet/secure_closet/personal/cabinet,/obj/machinery/airalarm{pixel_y = 23},/obj/item/clothing/under/suit_jacket/tan,/turf/open/floor/carpet,/area/crew_quarters/sleep) +"ayr" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/machinery/button/door{id = "Cabin2"; name = "Cabin Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/carpet,/area/crew_quarters/sleep) +"ays" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/obj/machinery/camera{c_tag = "Dormitories - Fore"; dir = 8},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/crew_quarters/sleep) +"ayt" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/machinery/button/door{id = "Cabin5"; name = "Dorm Bolt Control"; normaldoorcontrol = 1; pixel_x = -25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/wood,/area/crew_quarters/sleep) +"ayu" = (/obj/machinery/newscaster{pixel_x = 0; pixel_y = 32},/obj/structure/table/wood,/obj/item/weapon/paper,/turf/open/floor/wood,/area/crew_quarters/sleep) +"ayv" = (/obj/machinery/door/airlock/maintenance{name = "Storage Room"; req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/starboard) +"ayw" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating{icon_state = "platingdmg1"},/area/maintenance/starboard) +"ayx" = (/turf/closed/wall/r_wall,/area/maintenance/starboard) +"ayy" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/highsecurity{name = "Gravity Generator Foyer"; req_access_txt = "10"},/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/gravity_generator) +"ayz" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"ayA" = (/turf/closed/wall/mineral/titanium,/area/shuttle/mining) +"ayB" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/mining) +"ayC" = (/obj/item/clothing/gloves/color/rainbow,/obj/item/clothing/shoes/sneakers/rainbow,/obj/item/clothing/under/color/rainbow,/obj/item/clothing/head/soft/rainbow,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"ayD" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating/warnplate{dir = 2},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"ayE" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"ayF" = (/obj/structure/closet/crate,/obj/item/weapon/coin/silver,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"ayG" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/warnplate{dir = 2},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"ayH" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"ayI" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/fore) +"ayJ" = (/turf/closed/wall/r_wall,/area/security/nuke_storage) +"ayK" = (/obj/machinery/door/airlock/shuttle{name = "Labor Shuttle Airlock"; req_access_txt = "2"},/turf/open/floor/plasteel/black,/area/shuttle/labor) +"ayL" = (/obj/machinery/mineral/stacking_machine/laborstacker{input_dir = 2; output_dir = 1},/turf/open/floor/plasteel/black,/area/shuttle/labor) +"ayM" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 1},/turf/open/floor/plasteel/red/corner{dir = 8},/area/security/brig) +"ayN" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/brig) +"ayO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = "0"},/turf/open/floor/plasteel/red/corner{dir = 2},/area/security/brig) +"ayP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/light,/obj/machinery/camera{c_tag = "Brig - Hallway - Port"; dir = 1; network = list("SS13")},/obj/machinery/door_timer{id = "Cell 1"; name = "Cell 1"; pixel_y = -32},/turf/open/floor/plasteel/red/side,/area/security/brig) +"ayQ" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/turf/open/floor/plasteel/red/corner{dir = 8},/area/security/brig) +"ayR" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/turf/open/floor/plasteel,/area/security/brig) +"ayS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door_timer{id = "Cell 2"; name = "Cell 2"; pixel_y = -32},/turf/open/floor/plasteel/red/side,/area/security/brig) +"ayT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = "0"},/turf/open/floor/plasteel/red/side,/area/security/brig) +"ayU" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/obj/machinery/door_timer{id = "Cell 3"; name = "Cell 3"; pixel_y = -32},/turf/open/floor/plasteel/red/corner{dir = 2},/area/security/brig) +"ayV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel/red/side{dir = 9},/area/security/brig) +"ayW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/brig) +"ayX" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,/turf/open/floor/plasteel/red/side{dir = 5},/area/security/brig) +"ayY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/power/apc{cell_type = 10000; dir = 2; name = "Brig APC"; pixel_x = 1; pixel_y = -24},/obj/structure/cable/yellow,/obj/machinery/button/flasher{id = "secentranceflasher"; name = "Brig Entrance Flasher"; pixel_x = -3; pixel_y = -38; req_access_txt = "1"},/turf/open/floor/plasteel/red/side,/area/security/brig) +"ayZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/corner{dir = 8},/area/security/brig) +"aza" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/turf/open/floor/plasteel,/area/security/brig) +"azb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/security/brig) +"azc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/corner{dir = 2},/area/security/brig) +"azd" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/turf/open/floor/plasteel/red/corner{dir = 2},/area/security/brig) +"aze" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/button/flasher{id = "holdingflash"; pixel_x = 0; pixel_y = -26; req_access_txt = "1"},/turf/open/floor/plasteel/red/corner{dir = 2},/area/security/brig) +"azf" = (/obj/machinery/airalarm{dir = 1; pixel_y = -22},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/light,/obj/machinery/camera{c_tag = "Brig - Hallway - Starboard"; dir = 1; network = list("SS13")},/turf/open/floor/plasteel/red/corner{dir = 2},/area/security/brig) +"azg" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/corner{dir = 2},/area/security/brig) +"azh" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/turf/open/floor/plasteel/red/corner{dir = 2},/area/security/brig) +"azi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/plasteel/red/side{dir = 6},/area/security/brig) +"azj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/security/brig) +"azk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/security/brig) +"azl" = (/obj/structure/chair{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/security/brig) +"azm" = (/obj/structure/table,/obj/item/weapon/folder/red,/obj/item/device/taperecorder{pixel_y = 0},/obj/item/device/radio/intercom{anyai = 1; broadcasting = 1; freerange = 1; frequency = 1424; listening = 0; name = "Interrogation Intercom"; pixel_x = 0; pixel_y = -24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/security/brig) +"azn" = (/obj/structure/chair{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/security/brig) +"azo" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/security/brig) +"azp" = (/turf/closed/wall,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"azq" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/carpet,/area/crew_quarters/sleep) +"azr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/carpet,/area/crew_quarters/sleep) +"azs" = (/obj/machinery/door/airlock{id_tag = "Cabin2"; name = "Cabin 4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/wood,/area/crew_quarters/sleep) +"azt" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/crew_quarters/sleep) +"azu" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"azv" = (/obj/machinery/door/airlock{id_tag = "Cabin5"; name = "Cabin 3"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/wood,/area/crew_quarters/sleep) +"azw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/wood,/area/crew_quarters/sleep) +"azx" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/obj/machinery/light/small,/turf/open/floor/wood,/area/crew_quarters/sleep) +"azy" = (/obj/item/weapon/caution,/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/starboard) +"azz" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/starboard) +"azA" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/starboard) +"azB" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/item/weapon/cigbutt,/turf/open/floor/plating,/area/maintenance/starboard) +"azC" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/starboard) +"azD" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/grille,/turf/open/floor/plating,/area/maintenance/starboard) +"azE" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating{icon_state = "platingdmg1"},/area/maintenance/starboard) +"azF" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard) +"azG" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/starboard) +"azH" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plating,/area/maintenance/starboard) +"azI" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=4"; dir = 4; freq = 1400; location = "Engineering"},/obj/structure/plasticflaps{opacity = 1},/turf/open/floor/plasteel/bot,/area/maintenance/starboard) +"azJ" = (/obj/machinery/door/window/southright{dir = 4; name = "Engineering Deliveries"; req_access_txt = "10"; req_one_access_txt = "0"},/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/engineering) +"azK" = (/obj/structure/sign/securearea{pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/warning{dir = 9},/area/engine/engineering) +"azL" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/warning{dir = 1},/area/engine/engineering) +"azM" = (/obj/machinery/light_switch{pixel_x = 23},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/machinery/shower{dir = 8; icon_state = "shower"; name = "emergency shower"},/obj/structure/sign/securearea{pixel_y = 32},/turf/open/floor/plasteel/warning{dir = 5},/area/engine/engineering) +"azN" = (/turf/closed/wall/r_wall,/area/engine/engineering) +"azO" = (/obj/structure/closet/emcloset{anchored = 1; desc = "It's a storage unit for emergency breath masks and O2 tanks, and is securely bolted in place."; name = "anchored emergency closet"},/turf/open/floor/plating,/area/engine/engineering) +"azP" = (/obj/structure/grille,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating/airless,/area/engine/engineering) +"azQ" = (/obj/structure/grille,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plating/airless,/area/engine/engineering) +"azR" = (/obj/structure/grille,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating/airless,/area/engine/engineering) +"azS" = (/obj/structure/grille,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating/airless,/area/engine/engineering) +"azT" = (/obj/structure/grille,/turf/open/floor/plating/airless,/area/engine/engineering) +"azU" = (/obj/structure/closet/crate,/obj/item/stack/sheet/glass{amount = 10},/obj/item/stack/rods,/turf/open/floor/plating/airless,/area/space) +"azV" = (/obj/structure/table,/turf/open/floor/mineral/titanium/blue,/area/shuttle/mining) +"azW" = (/obj/machinery/computer/shuttle/mining,/turf/open/floor/mineral/titanium/blue,/area/shuttle/mining) +"azX" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/quartermaster/miningdock{name = "\improper Mining Office"}) +"azY" = (/turf/closed/wall,/area/quartermaster/miningdock{name = "\improper Mining Office"}) +"azZ" = (/obj/machinery/door/airlock/maintenance{name = "Mining Dock Maintenance"; req_access_txt = "48"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/quartermaster/miningdock{name = "\improper Mining Office"}) +"aAa" = (/turf/closed/wall,/area/quartermaster/sorting{name = "\improper Warehouse"}) +"aAb" = (/obj/machinery/door/airlock/maintenance{name = "Cargo Bay Warehouse Maintenance"; req_access_txt = "0"; req_one_access_txt = "48;50"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/quartermaster/sorting{name = "\improper Warehouse"}) +"aAc" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/fore) +"aAd" = (/obj/structure/closet/secure_closet/freezer/money,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka/badminka,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass,/obj/item/clothing/head/bearpelt,/turf/open/floor/plasteel/vault{dir = 8},/area/security/nuke_storage) +"aAe" = (/obj/machinery/light_switch{pixel_y = 28},/turf/open/floor/plasteel/circuit/gcircuit{luminosity = 2},/area/security/nuke_storage) +"aAf" = (/obj/machinery/airalarm{pixel_y = 23},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/circuit/gcircuit{luminosity = 2},/area/security/nuke_storage) +"aAg" = (/obj/machinery/power/apc{dir = 1; name = "Vault APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/open/floor/plasteel/circuit/gcircuit{luminosity = 2},/area/security/nuke_storage) +"aAh" = (/obj/structure/filingcabinet,/obj/item/weapon/folder/documents,/turf/open/floor/plasteel/vault{dir = 8},/area/security/nuke_storage) +"aAi" = (/turf/open/floor/mineral/titanium/blue,/area/shuttle/labor) +"aAj" = (/obj/machinery/mineral/labor_claim_console{machinedir = 1; pixel_x = 30; pixel_y = 0},/turf/open/floor/mineral/titanium/blue,/area/shuttle/labor) +"aAk" = (/turf/closed/wall,/area/prison/solitary{name = "Prisoner Education Chamber"}) +"aAl" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/security/brig) +"aAm" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/door/window/brigdoor{id = "Cell 1"; name = "Cell 1"; req_access_txt = "2"},/turf/open/floor/plasteel/red/side,/area/security/brig) +"aAn" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = "0"},/turf/open/floor/plating,/area/security/brig) +"aAo" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/door/window/brigdoor{id = "Cell 2"; name = "Cell 2"; req_access_txt = "2"},/turf/open/floor/plasteel/red/side,/area/security/brig) +"aAp" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/door/window/brigdoor{id = "Cell 3"; name = "Cell 3"; req_access_txt = "2"},/turf/open/floor/plasteel/red/side,/area/security/brig) +"aAq" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{id_tag = "innerbrig"; name = "Brig"; req_access_txt = "63"},/turf/open/floor/plasteel/red/side,/area/security/brig) +"aAr" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/airlock/glass_security{id_tag = "innerbrig"; name = "Brig"; req_access_txt = "63"},/turf/open/floor/plasteel/red/side,/area/security/brig) +"aAs" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/security/brig) +"aAt" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/door/window/brigdoor{id = "Holding Cell"; name = "Holding Cell"; req_access_txt = "2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/red/side,/area/security/brig) +"aAu" = (/turf/closed/wall/r_wall,/area/security/detectives_office) +"aAv" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/shutters/preopen{id = "detective_shutters"; name = "detective's office shutters"},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/open/floor/plating,/area/security/detectives_office) +"aAw" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/security{name = "Detective's Office"; req_access = null; req_access_txt = "4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel,/area/security/detectives_office) +"aAx" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/shutters/preopen{id = "detective_shutters"; name = "detective's office shutters"},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/security/detectives_office) +"aAy" = (/turf/closed/wall,/area/security/detectives_office) +"aAz" = (/obj/machinery/shower{icon_state = "shower"; dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aAA" = (/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/airalarm{pixel_y = 26},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aAB" = (/obj/machinery/shower{icon_state = "shower"; dir = 8},/obj/effect/landmark/start{name = "Assistant"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aAC" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/crew_quarters/sleep) +"aAD" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"aAE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/crew_quarters/sleep) +"aAF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/starboard) +"aAG" = (/obj/item/weapon/wrench,/turf/open/floor/plating,/area/maintenance/starboard) +"aAH" = (/obj/structure/table,/obj/item/stack/packageWrap,/obj/item/weapon/wrench,/obj/machinery/light{dir = 8},/obj/item/weapon/hand_labeler,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/engineering) +"aAI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/warning{dir = 8},/area/engine/engineering) +"aAJ" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel,/area/engine/engineering) +"aAK" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 4},/area/engine/engineering) +"aAL" = (/obj/machinery/door/airlock/external{name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plating,/area/engine/engineering) +"aAM" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = -32},/obj/machinery/light/small{dir = 2},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plating/warnplate{dir = 4},/area/engine/engineering) +"aAN" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating/airless,/area/engine/engineering) +"aAO" = (/turf/open/floor/plating/airless,/area/engine/engineering) +"aAP" = (/obj/structure/cable,/obj/machinery/power/emitter{anchored = 1; state = 2},/turf/open/floor/plating/airless,/area/engine/engineering) +"aAQ" = (/obj/machinery/power/grounding_rod,/turf/open/floor/plating/airless,/area/engine/engineering) +"aAR" = (/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating/airless,/area/engine/engineering) +"aAS" = (/obj/structure/grille,/obj/machinery/light{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plating/airless,/area/engine/engineering) +"aAT" = (/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating/airless,/area/engine/engineering) +"aAU" = (/obj/item/stack/cable_coil,/turf/open/floor/plating/airless,/area/space) +"aAV" = (/turf/open/floor/mineral/titanium/blue,/area/shuttle/mining) +"aAW" = (/obj/structure/chair{dir = 1},/turf/open/floor/mineral/titanium/blue,/area/shuttle/mining) +"aAX" = (/obj/item/weapon/ore/iron,/turf/open/floor/plasteel/warning{dir = 9},/area/quartermaster/miningdock{name = "\improper Mining Office"}) +"aAY" = (/obj/structure/closet/crate,/obj/machinery/light/small{dir = 4},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/turf/open/floor/plasteel/warning{dir = 1},/area/quartermaster/miningdock{name = "\improper Mining Office"}) +"aAZ" = (/obj/structure/closet/emcloset,/obj/machinery/status_display{density = 0; pixel_x = 0; pixel_y = 32; supply_display = 1},/turf/open/floor/plasteel/brown{dir = 9},/area/quartermaster/miningdock{name = "\improper Mining Office"}) +"aBa" = (/obj/structure/closet/crate,/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/turf/open/floor/plasteel/brown{dir = 1},/area/quartermaster/miningdock{name = "\improper Mining Office"}) +"aBb" = (/obj/machinery/power/apc{dir = 1; name = "Mining APC"; pixel_y = 24},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/light_switch{pixel_x = 0; pixel_y = 38},/obj/structure/closet/wardrobe/miner,/turf/open/floor/plasteel/brown{dir = 1},/area/quartermaster/miningdock{name = "\improper Mining Office"}) +"aBc" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/brown{dir = 1},/area/quartermaster/miningdock{name = "\improper Mining Office"}) +"aBd" = (/obj/structure/rack{dir = 1},/obj/item/weapon/storage/toolbox/emergency{pixel_x = 2; pixel_y = -3},/obj/item/weapon/storage/toolbox/emergency,/turf/open/floor/plasteel/brown{dir = 5},/area/quartermaster/miningdock{name = "\improper Mining Office"}) +"aBe" = (/obj/structure/table,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/light_switch{pixel_y = 28},/turf/open/floor/plasteel/floorgrime,/area/quartermaster/sorting{name = "\improper Warehouse"}) +"aBf" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/closet/cardboard,/obj/structure/sign/poster{pixel_y = 32},/turf/open/floor/plasteel/floorgrime,/area/quartermaster/sorting{name = "\improper Warehouse"}) +"aBg" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/sink/kitchen{desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; name = "old sink"; pixel_y = 28},/turf/open/floor/plasteel/floorgrime,/area/quartermaster/sorting{name = "\improper Warehouse"}) +"aBh" = (/obj/machinery/airalarm{pixel_y = 28},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/floorgrime,/area/quartermaster/sorting{name = "\improper Warehouse"}) +"aBi" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/floorgrime,/area/quartermaster/sorting{name = "\improper Warehouse"}) +"aBj" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/vault{dir = 1},/area/security/nuke_storage) +"aBk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/circuit/gcircuit{luminosity = 2},/area/security/nuke_storage) +"aBl" = (/obj/machinery/nuclearbomb/selfdestruct,/turf/open/floor/plasteel/vault{dir = 8},/area/security/nuke_storage) +"aBm" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel/circuit/gcircuit{luminosity = 2},/area/security/nuke_storage) +"aBn" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/vault{dir = 4},/area/security/nuke_storage) +"aBo" = (/obj/structure/chair{dir = 4},/turf/open/floor/mineral/titanium/blue,/area/shuttle/labor) +"aBp" = (/obj/structure/chair{dir = 8},/obj/machinery/flasher{id = "gulagshuttleflasher"; pixel_x = 25},/turf/open/floor/mineral/titanium/blue,/area/shuttle/labor) +"aBq" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/hallway/primary/fore) +"aBr" = (/turf/closed/wall,/area/hallway/primary/fore) +"aBs" = (/obj/machinery/flasher{id = "Cell 1"; pixel_x = -28},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/floorgrime,/area/security/brig) +"aBt" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/floorgrime,/area/security/brig) +"aBu" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/security/brig) +"aBv" = (/obj/machinery/flasher{id = "Cell 2"; pixel_x = -28},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/floorgrime,/area/security/brig) +"aBw" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/flasher{id = "Cell 3"; pixel_x = -28},/turf/open/floor/plasteel/floorgrime,/area/security/brig) +"aBx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/red/side{dir = 9},/area/security/brig) +"aBy" = (/obj/machinery/holopad,/turf/open/floor/plasteel/red/side{dir = 1},/area/security/brig) +"aBz" = (/obj/machinery/light/small{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/side{dir = 5},/area/security/brig) +"aBA" = (/obj/structure/chair,/obj/machinery/flasher{id = "holdingflash"; pixel_x = -25},/turf/open/floor/plasteel/floorgrime,/area/security/brig) +"aBB" = (/obj/structure/chair,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/floorgrime,/area/security/brig) +"aBC" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/security/brig) +"aBD" = (/obj/structure/chair,/turf/open/floor/plasteel/floorgrime,/area/security/brig) +"aBE" = (/obj/structure/rack,/obj/machinery/flasher{id = "holdingflash"; pixel_x = 25},/obj/item/clothing/under/color/orange{pixel_x = 1; pixel_y = -1},/obj/item/clothing/under/color/orange{pixel_x = 1; pixel_y = -1},/obj/item/clothing/under/color/orange{pixel_x = 1; pixel_y = -1},/obj/item/clothing/under/color/orange{pixel_x = 1; pixel_y = -1},/obj/item/clothing/under/color/orange{pixel_x = 1; pixel_y = -1},/obj/item/clothing/shoes/sneakers/orange,/obj/item/clothing/shoes/sneakers/orange,/obj/item/clothing/shoes/sneakers/orange,/obj/item/clothing/shoes/sneakers/orange,/obj/item/clothing/shoes/sneakers/orange,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/restraints/handcuffs,/turf/open/floor/plasteel/floorgrime,/area/security/brig) +"aBF" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/structure/filingcabinet,/obj/machinery/light/small{dir = 1},/obj/machinery/light_switch{pixel_y = 25},/turf/open/floor/plasteel/grimy,/area/security/detectives_office) +"aBG" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/grimy,/area/security/detectives_office) +"aBH" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/carpet,/area/security/detectives_office) +"aBI" = (/obj/structure/table/wood,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/clothing/glasses/sunglasses,/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/carpet,/area/security/detectives_office) +"aBJ" = (/obj/machinery/computer/security/wooden_tv{density = 0; pixel_x = 3; pixel_y = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/structure/table/wood,/obj/machinery/computer/security/telescreen{desc = "Used for watching Prison Wing holding areas."; name = "Prison Monitor"; network = list("Prison"); pixel_x = 0; pixel_y = 30},/turf/open/floor/carpet,/area/security/detectives_office) +"aBK" = (/obj/structure/table/wood,/obj/item/weapon/storage/secure/safe{pixel_x = 32},/obj/item/device/flashlight/lamp/green{pixel_x = 1; pixel_y = 5},/obj/item/weapon/restraints/handcuffs,/obj/machinery/button/door{id = "detective_shutters"; name = "detective's office shutters control"; pixel_x = 0; pixel_y = 26; req_access_txt = "4"},/turf/open/floor/carpet,/area/security/detectives_office) +"aBL" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/effect/decal/cleanable/cobweb,/turf/open/floor/plating,/area/maintenance/fore) +"aBM" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/fore) +"aBN" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/sign/poster{pixel_y = 32},/turf/open/floor/plating,/area/maintenance/fore) +"aBO" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating{icon_state = "platingdmg2"},/area/maintenance/fore) +"aBP" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/grille,/turf/open/floor/plating,/area/maintenance/fore) +"aBQ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/fore) +"aBR" = (/obj/structure/mirror{pixel_x = -28},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/shower{icon_state = "shower"; dir = 4},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aBS" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/item/weapon/bikehorn/rubberducky,/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aBT" = (/obj/structure/mirror{pixel_x = 28},/obj/machinery/shower{icon_state = "shower"; dir = 8},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aBU" = (/obj/machinery/washing_machine,/turf/open/floor/plasteel/barber,/area/crew_quarters/sleep) +"aBV" = (/obj/structure/table,/obj/item/clothing/under/suit_jacket/female{pixel_x = 3; pixel_y = 1},/obj/item/clothing/under/suit_jacket/really_black{pixel_x = -2; pixel_y = 0},/obj/machinery/light/small{dir = 1},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 28},/obj/item/clothing/tie/waistcoat,/obj/item/clothing/suit/toggle/lawyer/black,/obj/item/clothing/under/suit_jacket/red,/obj/item/clothing/neck/tie/black,/obj/item/clothing/under/lawyer/blacksuit,/turf/open/floor/plasteel/barber,/area/crew_quarters/sleep) +"aBW" = (/obj/machinery/washing_machine,/obj/structure/sign/poster{pixel_y = 32},/turf/open/floor/plasteel/barber,/area/crew_quarters/sleep) +"aBX" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/crew_quarters/sleep) +"aBY" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/junction{dir = 4; icon_state = "pipe-j2"},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"aBZ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/crew_quarters/sleep) +"aCa" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard) +"aCb" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/starboard) +"aCc" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating{icon_state = "platingdmg1"},/area/maintenance/starboard) +"aCd" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard) +"aCe" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/starboard) +"aCf" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/starboard) +"aCg" = (/obj/structure/closet/secure_closet/engineering_personal,/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/engineering) +"aCh" = (/obj/structure/closet/secure_closet/engineering_personal,/obj/item/clothing/suit/hooded/wintercoat/engineering,/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/engineering) +"aCi" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/gloves/color/yellow,/obj/item/clothing/gloves/color/yellow,/obj/item/clothing/gloves/color/yellow,/obj/item/clothing/suit/hazardvest,/obj/item/clothing/suit/hazardvest,/obj/item/weapon/tank/internals/emergency_oxygen/engi,/obj/item/weapon/tank/internals/emergency_oxygen/engi,/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/engineering) +"aCj" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/mask/gas{pixel_x = 3; pixel_y = 3},/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas{pixel_x = -3; pixel_y = -3},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 21},/obj/machinery/camera{c_tag = "Engineering - Fore"; dir = 2; network = list("SS13")},/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/engineering) +"aCk" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 4},/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/engineering) +"aCl" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/warning{dir = 8},/area/engine/engineering) +"aCm" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/sortjunction{sortType = 4},/obj/effect/landmark/start{name = "Station Engineer"},/turf/open/floor/plasteel,/area/engine/engineering) +"aCn" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 32; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/warning{dir = 4},/area/engine/engineering) +"aCo" = (/turf/open/floor/plating/airless/warnplate{dir = 1},/area/engine/engineering) +"aCp" = (/obj/item/device/multitool,/turf/open/floor/plating/airless,/area/engine/engineering) +"aCq" = (/obj/item/device/radio/off,/turf/open/floor/plating/airless,/area/engine/engineering) +"aCr" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"aCs" = (/obj/machinery/door/airlock/shuttle{name = "Mining Shuttle Airlock"; req_access_txt = "0"},/obj/docking_port/mobile{dir = 8; dwidth = 3; height = 5; id = "mining"; name = "mining shuttle"; port_angle = 90; width = 7},/obj/docking_port/stationary{dir = 8; dwidth = 3; height = 5; id = "mining_home"; name = "mining shuttle bay"; width = 7},/turf/open/floor/plating,/area/shuttle/mining) +"aCt" = (/obj/machinery/door/airlock/external{name = "Mining Dock Airlock"; req_access = null; req_access_txt = "0"},/turf/open/floor/plating,/area/quartermaster/miningdock{name = "\improper Mining Office"}) +"aCu" = (/turf/open/floor/plasteel,/area/quartermaster/miningdock{name = "\improper Mining Office"}) +"aCv" = (/obj/machinery/door/airlock/glass_mining{name = "Mining Dock"; req_access_txt = "48"},/turf/open/floor/plasteel,/area/quartermaster/miningdock{name = "\improper Mining Office"}) +"aCw" = (/turf/open/floor/plasteel/brown{dir = 8},/area/quartermaster/miningdock{name = "\improper Mining Office"}) +"aCx" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/quartermaster/miningdock{name = "\improper Mining Office"}) +"aCy" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel,/area/quartermaster/miningdock{name = "\improper Mining Office"}) +"aCz" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/landmark/start{name = "Shaft Miner"},/turf/open/floor/plasteel,/area/quartermaster/miningdock{name = "\improper Mining Office"}) +"aCA" = (/obj/machinery/button/door{id = "qm_mine_warehouse"; name = "Warehouse Door Control"; pixel_x = 24; pixel_y = 28; req_access_txt = "48"},/turf/open/floor/plasteel/brown{dir = 4},/area/quartermaster/miningdock{name = "\improper Mining Office"}) +"aCB" = (/obj/machinery/door/poddoor/shutters{id = "qm_mine_warehouse"; name = "Warehouse Shutters"},/turf/open/floor/plasteel/delivery{name = "floor"},/area/quartermaster/miningdock{name = "\improper Mining Office"}) +"aCC" = (/obj/structure/disposalpipe/segment,/obj/machinery/button/door{id = "qm_mine_warehouse"; name = "Warehouse Door Control"; pixel_x = -24; pixel_y = 28; req_access_txt = "48"},/turf/open/floor/plasteel/loadingarea{dir = 4},/area/quartermaster/sorting{name = "\improper Warehouse"}) +"aCD" = (/turf/open/floor/plasteel/floorgrime,/area/quartermaster/sorting{name = "\improper Warehouse"}) +"aCE" = (/obj/structure/closet/crate,/obj/effect/spawner/lootdrop/maintenance{lootcount = 3; name = "3maintenance loot spawner"},/turf/open/floor/plasteel/floorgrime,/area/quartermaster/sorting{name = "\improper Warehouse"}) +"aCF" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/floorgrime,/area/quartermaster/sorting{name = "\improper Warehouse"}) +"aCG" = (/obj/structure/closet/crate,/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/effect/spawner/lootdrop/maintenance{lootcount = 3; name = "3maintenance loot spawner"},/turf/open/floor/plasteel/floorgrime,/area/quartermaster/sorting{name = "\improper Warehouse"}) +"aCH" = (/obj/structure/closet/crate{name = "Gold Crate"},/obj/item/stack/sheet/mineral/gold{pixel_x = -1; pixel_y = 5},/obj/item/stack/sheet/mineral/gold{pixel_y = 2},/obj/item/stack/sheet/mineral/gold{pixel_x = 1; pixel_y = -2},/obj/item/weapon/storage/belt/champion,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel/vault{dir = 1},/area/security/nuke_storage) +"aCI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/circuit/gcircuit{luminosity = 2},/area/security/nuke_storage) +"aCJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/circuit/gcircuit{luminosity = 2},/area/security/nuke_storage) +"aCK" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/plasteel/circuit/gcircuit{luminosity = 2},/area/security/nuke_storage) +"aCL" = (/obj/item/weapon/coin/silver{pixel_x = 7; pixel_y = 12},/obj/item/weapon/coin/silver{pixel_x = 12; pixel_y = 7},/obj/item/weapon/coin/silver{pixel_x = 4; pixel_y = 8},/obj/item/weapon/coin/silver{pixel_x = -6; pixel_y = 5},/obj/item/weapon/coin/silver{pixel_x = 5; pixel_y = -8},/obj/structure/closet/crate{name = "Silver Crate"},/turf/open/floor/plasteel/vault{dir = 4},/area/security/nuke_storage) +"aCM" = (/obj/structure/closet/crate,/turf/open/floor/mineral/titanium/blue,/area/shuttle/labor) +"aCN" = (/obj/machinery/door/airlock/shuttle{id_tag = "prisonshuttle"; name = "Labor Shuttle Airlock"},/obj/docking_port/mobile{dir = 8; dwidth = 2; height = 5; id = "laborcamp"; name = "labor camp shuttle"; port_angle = 90; width = 9},/obj/docking_port/stationary{dir = 8; dwidth = 2; height = 5; id = "laborcamp_home"; name = "fore bay 1"; width = 9},/turf/open/floor/mineral/titanium/blue,/area/shuttle/labor) +"aCO" = (/obj/machinery/door/airlock/external{name = "Labor Camp Shuttle Airlock"},/turf/open/floor/plasteel/black,/area/hallway/primary/fore) +"aCP" = (/obj/machinery/firealarm{dir = 4; pixel_x = 28},/obj/machinery/light/small{dir = 4},/obj/machinery/camera{c_tag = "Labor Shuttle Dock"; dir = 8; network = list("SS13")},/obj/machinery/flasher{id = "PRelease"; pixel_x = 24; pixel_y = 20},/obj/machinery/gulag_item_reclaimer{pixel_y = 24},/turf/open/floor/plasteel/black,/area/hallway/primary/fore) +"aCQ" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/turf/open/floor/plasteel/floorgrime,/area/security/brig) +"aCR" = (/obj/structure/closet/secure_closet/brig{id = "Cell 1"; name = "Cell 1 Locker"},/turf/open/floor/plasteel/floorgrime,/area/security/brig) +"aCS" = (/obj/structure/closet/secure_closet/brig{id = "Cell 2"; name = "Cell 2 Locker"},/turf/open/floor/plasteel/floorgrime,/area/security/brig) +"aCT" = (/obj/structure/closet/secure_closet/brig{id = "Cell 3"; name = "Cell 3 Locker"},/turf/open/floor/plasteel/floorgrime,/area/security/brig) +"aCU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/firealarm{dir = 8; pixel_x = -26; pixel_y = 0},/turf/open/floor/plasteel/red/side{dir = 10},/area/security/brig) +"aCV" = (/turf/open/floor/plasteel/red/side,/area/security/brig) +"aCW" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/plasteel/red/side{dir = 6},/area/security/brig) +"aCX" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/floorgrime,/area/security/brig) +"aCY" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel/floorgrime,/area/security/brig) +"aCZ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/floorgrime,/area/security/brig) +"aDa" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/airalarm{dir = 1; pixel_y = -22},/turf/open/floor/plasteel/floorgrime,/area/security/brig) +"aDb" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/security/brig) +"aDc" = (/obj/structure/closet/secure_closet/detective,/obj/effect/landmark{name = "blobstart"},/obj/machinery/camera{c_tag = "Detective's Office"; dir = 4; network = list("SS13")},/turf/open/floor/plasteel/grimy,/area/security/detectives_office) +"aDd" = (/obj/machinery/holopad,/turf/open/floor/plasteel/grimy,/area/security/detectives_office) +"aDe" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/carpet,/area/security/detectives_office) +"aDf" = (/obj/structure/table/wood,/obj/item/weapon/folder/red,/obj/item/weapon/hand_labeler,/turf/open/floor/carpet,/area/security/detectives_office) +"aDg" = (/obj/effect/landmark/start{name = "Detective"},/obj/structure/chair/office/dark{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/carpet,/area/security/detectives_office) +"aDh" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/computer/secure_data,/turf/open/floor/carpet,/area/security/detectives_office) +"aDi" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/fore) +"aDj" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating/warnplate{dir = 2},/area/maintenance/fore) +"aDk" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/effect/landmark{name = "blobstart"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plating,/area/maintenance/fore) +"aDl" = (/obj/machinery/shower{icon_state = "shower"; dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aDm" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aDn" = (/obj/machinery/shower{icon_state = "shower"; dir = 8},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aDo" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/crew_quarters/sleep) +"aDp" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/crew_quarters/sleep) +"aDq" = (/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/light/small{dir = 1},/obj/machinery/power/apc{dir = 1; name = "Dormitories APC"; pixel_x = 0; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/crew_quarters/sleep) +"aDr" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/crew_quarters/sleep) +"aDs" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"aDt" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/sign/pods{pixel_x = 30; pixel_y = 0},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/crew_quarters/sleep) +"aDu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/starboard) +"aDv" = (/obj/effect/decal/cleanable/cobweb,/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-20"; layer = 4.1; pixel_y = 3},/turf/open/floor/plasteel/bot{dir = 1},/area/engine/engineering) +"aDw" = (/obj/machinery/suit_storage_unit/engine,/turf/open/floor/plasteel/bot{dir = 1},/area/engine/engineering) +"aDx" = (/obj/structure/tank_dispenser,/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/bot{dir = 1},/area/engine/engineering) +"aDy" = (/obj/machinery/camera{c_tag = "Engineering - Storage"; dir = 2; network = list("SS13")},/obj/machinery/suit_storage_unit/engine,/turf/open/floor/plasteel/bot{dir = 1},/area/engine/engineering) +"aDz" = (/obj/item/stack/sheet/plasteel{amount = 10; pixel_x = -2; pixel_y = 2},/obj/structure/table,/obj/item/stack/sheet/rglass{amount = 30; pixel_x = 2; pixel_y = -2},/turf/open/floor/plasteel/bot{dir = 1},/area/engine/engineering) +"aDA" = (/turf/closed/wall,/area/engine/engineering) +"aDB" = (/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/warning{dir = 9},/area/engine/engineering) +"aDC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 1},/area/engine/engineering) +"aDD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/warning/corner{dir = 4},/area/engine/engineering) +"aDE" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/engine/engineering) +"aDF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/warning{dir = 4},/area/engine/engineering) +"aDG" = (/obj/machinery/door/poddoor/shutters/preopen{id = "Singularity"; name = "radiation shutters"},/turf/open/floor/plating/warnplate{dir = 8},/area/engine/engineering) +"aDH" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plating/warnplate{dir = 8},/area/engine/engineering) +"aDI" = (/obj/machinery/camera/emp_proof{c_tag = "Fore Arm - Near"; dir = 4; network = list("Singulo")},/obj/structure/lattice,/turf/open/space,/area/space) +"aDJ" = (/obj/structure/grille,/turf/open/floor/plating/airless,/area/space) +"aDK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/spawner/lootdrop/maintenance,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"aDL" = (/obj/item/weapon/ore/silver,/obj/item/weapon/ore/silver,/turf/open/floor/plasteel/warning{dir = 10},/area/quartermaster/miningdock{name = "\improper Mining Office"}) +"aDM" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/camera{c_tag = "Mining Dock"; dir = 8; network = list("SS13")},/turf/open/floor/plasteel/warning,/area/quartermaster/miningdock{name = "\improper Mining Office"}) +"aDN" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/turf/closed/wall,/area/quartermaster/miningdock{name = "\improper Mining Office"}) +"aDO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/holopad,/turf/open/floor/plasteel,/area/quartermaster/miningdock{name = "\improper Mining Office"}) +"aDP" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/quartermaster/miningdock{name = "\improper Mining Office"}) +"aDQ" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/obj/machinery/camera{c_tag = "Mining Office"; dir = 8; network = list("SS13")},/obj/machinery/mineral/equipment_vendor,/turf/open/floor/plasteel/brown{dir = 4},/area/quartermaster/miningdock{name = "\improper Mining Office"}) +"aDR" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/item/weapon/storage/box/donkpockets,/turf/open/floor/plasteel/floorgrime,/area/quartermaster/sorting{name = "\improper Warehouse"}) +"aDS" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/floorgrime,/area/quartermaster/sorting{name = "\improper Warehouse"}) +"aDT" = (/obj/structure/closet/crate/freezer,/obj/effect/spawner/lootdrop/maintenance{lootcount = 3; name = "3maintenance loot spawner"},/turf/open/floor/plasteel/floorgrime,/area/quartermaster/sorting{name = "\improper Warehouse"}) +"aDU" = (/obj/structure/closet/crate,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/weapon/ore/glass,/turf/open/floor/plasteel/floorgrime,/area/quartermaster/sorting{name = "\improper Warehouse"}) +"aDV" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/electronics/apc,/obj/item/weapon/stock_parts/cell{maxcharge = 2000},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel/floorgrime,/area/quartermaster/sorting{name = "\improper Warehouse"}) +"aDW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/vault{dir = 1},/area/security/nuke_storage) +"aDX" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/vault{dir = 6},/area/security/nuke_storage) +"aDY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/vault,/area/security/nuke_storage) +"aDZ" = (/obj/machinery/camera/motion{c_tag = "Vault"; dir = 1; network = list("SS13")},/obj/machinery/light,/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/vault{dir = 10},/area/security/nuke_storage) +"aEa" = (/obj/structure/safe,/obj/item/weapon/storage/secure/briefcase{contents = newlist(/obj/item/clothing/suit/armor/vest,/obj/item/weapon/gun/projectile/automatic/pistol,/obj/item/weapon/suppressor,/obj/item/weapon/melee/classic_baton/telescopic,/obj/item/clothing/mask/balaclava,/obj/item/bodybag,/obj/item/weapon/soap/nanotrasen)},/obj/item/weapon/storage/backpack/dufflebag{contents = newlist(/obj/item/clothing/under/lawyer/blacksuit,/obj/item/clothing/tie/waistcoat,/obj/item/clothing/suit/toggle/lawyer/black,/obj/item/clothing/shoes/laceup,/obj/item/clothing/gloves/color/black,/obj/item/clothing/glasses/sunglasses,/obj/item/clothing/head/fedora); desc = "A large dufflebag for holding extra things. There is a NanoTrasen logo on the back."; icon_state = "duffle-syndieammo"; item_state = "duffle-syndieammo"},/obj/item/weapon/card/id/silver{access = list(12); assignment = "Reaper"; name = "Thirteen's ID Card (Reaper)"; registered_name = "Thirteen"},/obj/item/weapon/lazarus_injector,/obj/item/weapon/gun/energy/gun/advtaser,/obj/item/weapon/gun/projectile/revolver/russian,/obj/item/ammo_box/a357,/obj/item/clothing/neck/stethoscope,/obj/item/weapon/book{desc = "An undeniably handy book."; icon_state = "bookknock"; name = "A Simpleton's Guide to Safe-cracking with Stethoscopes"},/turf/open/floor/plasteel/vault{dir = 4},/area/security/nuke_storage) +"aEb" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1; layer = 2.9},/turf/open/floor/plating,/area/shuttle/labor) +"aEc" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Labor Camp Shuttle Airlock"; req_access_txt = "0"},/turf/open/floor/plasteel/black,/area/hallway/primary/fore) +"aEd" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/door/poddoor/preopen{id = "Secure Gate"; name = "brig shutters"},/turf/open/floor/plating,/area/security/brig) +"aEe" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "Secure Gate"; name = "brig shutters"},/turf/open/floor/plating,/area/security/brig) +"aEf" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "Secure Gate"; name = "brig shutters"},/turf/open/floor/plating,/area/security/brig) +"aEg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{id_tag = "outerbrig"; name = "Brig"; req_access_txt = "63"},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/brig) +"aEh" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "Secure Gate"; name = "brig shutters"},/turf/open/floor/plating,/area/security/brig) +"aEi" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/obj/machinery/flasher{id = "secentranceflasher"; pixel_x = 25},/obj/machinery/door/airlock/glass_security{id_tag = "outerbrig"; name = "Brig"; req_access_txt = "63"},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/brig) +"aEj" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Security Desk"; req_access_txt = "63"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/black,/area/security/brig) +"aEk" = (/obj/machinery/door/airlock/security{name = "Court Cell"; req_access = null; req_access_txt = "63"},/turf/open/floor/plasteel/black,/area/security/brig) +"aEl" = (/obj/structure/table/wood,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/power/apc{dir = 8; name = "Detective APC"; pixel_x = -24; pixel_y = 0},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/item/device/taperecorder{pixel_x = 3; pixel_y = 0},/obj/item/weapon/storage/box/evidence,/obj/item/device/flashlight/seclite,/turf/open/floor/plasteel/grimy,/area/security/detectives_office) +"aEm" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel/grimy,/area/security/detectives_office) +"aEn" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/carpet,/area/security/detectives_office) +"aEo" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/open/floor/carpet,/area/security/detectives_office) +"aEp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/carpet,/area/security/detectives_office) +"aEq" = (/obj/machinery/computer/med_data,/obj/machinery/newscaster{pixel_x = 28},/turf/open/floor/carpet,/area/security/detectives_office) +"aEr" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/fore) +"aEs" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/fore) +"aEt" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aEu" = (/obj/machinery/door/airlock{name = "Unisex Showers"; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aEv" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/crew_quarters/sleep) +"aEw" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"aEx" = (/obj/structure/chair/stool{pixel_y = 8},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"aEy" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/holopad,/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"aEz" = (/obj/structure/chair/stool{pixel_y = 8},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plasteel/floorgrime,/area/crew_quarters/sleep) +"aEA" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"aEB" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/crew_quarters/sleep) +"aEC" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/machinery/button/door{id = "Cabin6"; name = "Dorm Bolt Control"; normaldoorcontrol = 1; pixel_x = -25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/effect/decal/cleanable/cobweb,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/carpet,/area/crew_quarters/sleep) +"aED" = (/obj/structure/closet/secure_closet/personal/cabinet,/obj/machinery/airalarm{pixel_y = 23},/obj/item/clothing/under/suit_jacket/navy,/turf/open/floor/carpet,/area/crew_quarters/sleep) +"aEE" = (/obj/item/clothing/glasses/meson,/obj/structure/closet/crate,/obj/item/weapon/poster/contraband,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/starboard) +"aEF" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/starboard) +"aEG" = (/obj/structure/reagent_dispensers/fueltank,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = -30; pixel_y = 0},/turf/open/floor/plasteel/bot{dir = 1},/area/engine/engineering) +"aEH" = (/turf/open/floor/plasteel/warning{dir = 9},/area/engine/engineering) +"aEI" = (/turf/open/floor/plasteel/warning{dir = 1},/area/engine/engineering) +"aEJ" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/warning{dir = 5},/area/engine/engineering) +"aEK" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/engine/engineering) +"aEL" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/engine/engineering) +"aEM" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/engine/engineering) +"aEN" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) +"aEO" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/engine/engineering) +"aEP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/warning{dir = 4},/area/engine/engineering) +"aEQ" = (/obj/machinery/door/poddoor/shutters/preopen{id = "Singularity"; name = "radiation shutters"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plating/warnplate{dir = 8},/area/engine/engineering) +"aER" = (/obj/machinery/power/rad_collector{anchored = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating/warnplate{dir = 8},/area/engine/engineering) +"aES" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/engineering) +"aET" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/open/floor/plating/airless,/area/space) +"aEU" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/open/floor/plating/airless,/area/space) +"aEV" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/open/floor/plating/airless,/area/space) +"aEW" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/open/floor/plating/airless,/area/space) +"aEX" = (/obj/structure/lattice,/obj/machinery/camera/emp_proof{c_tag = "Fore Arm - Far"; dir = 8; network = list("Singulo")},/turf/open/space,/area/space) +"aEY" = (/turf/closed/wall,/area/mining_construction) +"aEZ" = (/obj/structure/closet/crate,/turf/open/floor/mineral/titanium/blue,/area/shuttle/mining) +"aFa" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating/airless,/area/shuttle/mining) +"aFb" = (/obj/structure/ore_box,/turf/open/floor/mineral/titanium/blue,/area/shuttle/mining) +"aFc" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/light{dir = 8},/obj/machinery/computer/shuttle/mining{req_access = "0"; req_one_access = "0"},/turf/open/floor/plasteel/brown{dir = 9},/area/quartermaster/miningdock{name = "\improper Mining Office"}) +"aFd" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/landmark/start{name = "Shaft Miner"},/turf/open/floor/plasteel,/area/quartermaster/miningdock{name = "\improper Mining Office"}) +"aFe" = (/obj/structure/closet/secure_closet/miner,/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/open/floor/plasteel/brown{dir = 4},/area/quartermaster/miningdock{name = "\improper Mining Office"}) +"aFf" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel/floorgrime,/area/quartermaster/sorting{name = "\improper Warehouse"}) +"aFg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/structure/closet/crate,/obj/effect/spawner/lootdrop/maintenance{lootcount = 3; name = "3maintenance loot spawner"},/turf/open/floor/plasteel/floorgrime,/area/quartermaster/sorting{name = "\improper Warehouse"}) +"aFh" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/effect/landmark/start{name = "Cargo Technician"},/turf/open/floor/plasteel/floorgrime,/area/quartermaster/sorting{name = "\improper Warehouse"}) +"aFi" = (/obj/item/stack/sheet/cardboard,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/quartermaster/sorting{name = "\improper Warehouse"}) +"aFj" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/light_construct/small{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/quartermaster/sorting{name = "\improper Warehouse"}) +"aFk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/closed/wall/r_wall,/area/security/nuke_storage) +"aFl" = (/obj/structure/sign/securearea,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/closed/wall/r_wall,/area/security/nuke_storage) +"aFm" = (/obj/machinery/door/airlock/vault{icon_state = "door_locked"; locked = 1; req_access_txt = "53"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/vault{dir = 5},/area/security/nuke_storage) +"aFn" = (/obj/structure/sign/securearea,/turf/closed/wall/r_wall,/area/security/nuke_storage) +"aFo" = (/obj/structure/shuttle/engine/propulsion,/turf/open/floor/plating,/area/shuttle/labor) +"aFp" = (/obj/machinery/door/poddoor/preopen{id = "prison release"; name = "prisoner processing blast door"},/obj/machinery/button/door{id = "prison release"; name = "Labor Camp Shuttle Lockdown"; pixel_x = -25; pixel_y = 0; req_access_txt = "2"},/turf/open/floor/plasteel/delivery{name = "floor"},/area/hallway/primary/fore) +"aFq" = (/turf/open/floor/plasteel/red/corner{dir = 1},/area/hallway/primary/fore) +"aFr" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/red/corner{dir = 1},/area/hallway/primary/fore) +"aFs" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_x = 0; pixel_y = 32},/turf/open/floor/plasteel/red/corner{dir = 1},/area/hallway/primary/fore) +"aFt" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_x = 0; pixel_y = 32},/obj/machinery/camera{c_tag = "Fore Primary Hallway Cells"; dir = 2; network = list("SS13")},/turf/open/floor/plasteel/red/corner{dir = 1},/area/hallway/primary/fore) +"aFu" = (/obj/machinery/light{dir = 1},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/open/floor/plasteel/red/corner{dir = 1},/area/hallway/primary/fore) +"aFv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel/red/corner{dir = 1},/area/hallway/primary/fore) +"aFw" = (/turf/open/floor/plasteel,/area/hallway/primary/fore) +"aFx" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/corner{dir = 4},/area/hallway/primary/fore) +"aFy" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/door/poddoor/preopen{id = "briglockdown"; name = "brig shutters"},/turf/open/floor/plating,/area/security/brig) +"aFz" = (/obj/machinery/computer/secure_data,/obj/machinery/button/flasher{id = "secentranceflasher"; name = "Brig Entrance Flash Control"; pixel_x = -24; pixel_y = 24; req_access_txt = "1"},/obj/machinery/button/door{id = "Secure Gate"; name = "Cell Window Control"; normaldoorcontrol = 0; pixel_x = 5; pixel_y = 27; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/button/door{id = "briglockdown"; name = "Brig Lockdown Control"; pixel_x = 5; pixel_y = 37; req_access_txt = "0"},/obj/machinery/light/small{dir = 1},/obj/machinery/button/door{desc = "A remote control switch for the medbay foyer."; id = "innerbrig"; name = "Brig Interior Doors Control"; normaldoorcontrol = 1; pixel_x = -5; pixel_y = 37; req_access_txt = "63"},/obj/machinery/button/door{desc = "A remote control switch for the medbay foyer."; id = "outerbrig"; name = "Brig Exterior Doors Control"; normaldoorcontrol = 1; pixel_x = -5; pixel_y = 27; req_access_txt = "63"},/turf/open/floor/plasteel/black,/area/security/brig) +"aFA" = (/obj/structure/filingcabinet/chestdrawer{pixel_y = 3},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/security/brig) +"aFB" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/obj/machinery/button/flasher{id = "holdingflash"; name = "holding cell flasher button"; pixel_x = 23; pixel_y = 23; req_access_txt = "1"},/obj/machinery/camera{c_tag = "Brig - Desk"; dir = 8; network = list("SS13")},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29; pixel_y = -2},/turf/open/floor/plasteel/black,/area/security/brig) +"aFC" = (/obj/machinery/requests_console{department = "Detective's office"; pixel_x = -30; pixel_y = 0},/obj/structure/table/wood,/obj/machinery/light/small{dir = 8},/obj/item/weapon/book/manual/wiki/security_space_law,/obj/item/device/camera/detective,/turf/open/floor/plasteel/grimy,/area/security/detectives_office) +"aFD" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel/grimy,/area/security/detectives_office) +"aFE" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/grimy,/area/security/detectives_office) +"aFF" = (/obj/machinery/light/small,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -26},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/grimy,/area/security/detectives_office) +"aFG" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/grimy,/area/security/detectives_office) +"aFH" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/briefcase{pixel_x = -3; pixel_y = 2},/obj/item/weapon/storage/secure/briefcase{pixel_x = 2; pixel_y = -2},/turf/open/floor/plasteel/grimy,/area/security/detectives_office) +"aFI" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/plating{icon_state = "platingdmg1"},/area/maintenance/fore) +"aFJ" = (/obj/structure/toilet{pixel_y = 8},/obj/machinery/light/small{dir = 8},/obj/machinery/newscaster{pixel_x = 0; pixel_y = -32},/obj/machinery/button/door{id = "Toilet3"; name = "Lock Control"; normaldoorcontrol = 1; pixel_x = -25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/effect/landmark/start{name = "Assistant"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aFK" = (/obj/machinery/door/airlock{id_tag = "Toilet3"; name = "Unit 3"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aFL" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aFM" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/urinal{pixel_y = 29},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aFN" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/obj/structure/urinal{pixel_y = 29},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aFO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aFP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/newscaster{pixel_x = 0; pixel_y = 32},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aFQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aFR" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/crew_quarters/sleep) +"aFS" = (/obj/structure/chair/stool{pixel_y = 8},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"aFT" = (/obj/structure/table,/obj/item/weapon/storage/pill_bottle/dice,/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"aFU" = (/obj/structure/table,/obj/item/weapon/storage/crayons,/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"aFV" = (/obj/structure/table,/obj/item/toy/cards/deck,/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"aFW" = (/obj/structure/chair/stool{pixel_y = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"aFX" = (/obj/machinery/door/airlock{id_tag = "Cabin6"; name = "Cabin 2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/wood,/area/crew_quarters/sleep) +"aFY" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/carpet,/area/crew_quarters/sleep) +"aFZ" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/carpet,/area/crew_quarters/sleep) +"aGa" = (/obj/machinery/light/small,/turf/open/floor/carpet,/area/crew_quarters/sleep) +"aGb" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/item/weapon/cigbutt,/turf/open/floor/plating,/area/maintenance/starboard) +"aGc" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/open/floor/plasteel/bot{dir = 1},/area/engine/engineering) +"aGd" = (/turf/open/floor/plasteel/warning{dir = 8},/area/engine/engineering) +"aGe" = (/obj/effect/landmark/start{name = "Station Engineer"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel,/area/engine/engineering) +"aGf" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) +"aGg" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/warning{dir = 4},/area/engine/engineering) +"aGh" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_engineering{name = "Engineering Storage"; req_access_txt = "32"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/bot{dir = 1},/area/engine/engineering) +"aGi" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/warning{dir = 8},/area/engine/engineering) +"aGj" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/engine/engineering) +"aGk" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/warning/corner{dir = 2},/area/engine/engineering) +"aGl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 2},/area/engine/engineering) +"aGm" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 2},/area/engine/engineering) +"aGn" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/plasteel/warning{dir = 6},/area/engine/engineering) +"aGo" = (/obj/machinery/power/grounding_rod,/turf/open/floor/plating/airless,/area/space) +"aGp" = (/obj/structure/cable{tag = "icon-1-2"; icon_state = "1-2"},/turf/open/floor/plating/airless,/area/space) +"aGq" = (/obj/structure/cable,/obj/machinery/power/tesla_coil,/turf/open/floor/plating/airless,/area/space) +"aGr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/airless,/area/space) +"aGs" = (/turf/open/floor/plating/warnplate{dir = 9},/area/shuttle/auxillary_base) +"aGt" = (/turf/open/floor/plating/warnplate{dir = 1},/area/shuttle/auxillary_base) +"aGu" = (/turf/open/floor/plating/warnplate{dir = 5},/area/shuttle/auxillary_base) +"aGv" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"aGw" = (/obj/effect/decal/cleanable/cobweb/cobweb2,/obj/structure/closet/emcloset,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"aGx" = (/obj/structure/shuttle/engine/propulsion/burst,/obj/structure/window/reinforced{dir = 1; layer = 2.9},/turf/open/floor/plating/airless,/area/shuttle/mining) +"aGy" = (/obj/machinery/computer/security/mining{network = list("MINE","AuxBase")},/turf/open/floor/plasteel,/area/quartermaster/miningdock{name = "\improper Mining Office"}) +"aGz" = (/obj/structure/chair/office/dark{dir = 8},/obj/effect/landmark/start{name = "Shaft Miner"},/turf/open/floor/plasteel,/area/quartermaster/miningdock{name = "\improper Mining Office"}) +"aGA" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/quartermaster/miningdock{name = "\improper Mining Office"}) +"aGB" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel,/area/quartermaster/miningdock{name = "\improper Mining Office"}) +"aGC" = (/obj/structure/closet/secure_closet/miner,/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/item/clothing/suit/hooded/wintercoat/miner,/turf/open/floor/plasteel/brown{dir = 4},/area/quartermaster/miningdock{name = "\improper Mining Office"}) +"aGD" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel/loadingarea{dir = 1},/area/quartermaster/sorting{name = "\improper Warehouse"}) +"aGE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/button/door{id = "qm_warehouse"; name = "Warehouse Door Control"; pixel_x = 0; pixel_y = -24; req_access_txt = "50"},/turf/open/floor/plasteel/floorgrime,/area/quartermaster/sorting{name = "\improper Warehouse"}) +"aGF" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/stack/sheet/cardboard,/obj/item/stack/rods{amount = 50},/obj/item/weapon/paper,/obj/item/weapon/storage/box/lights/mixed,/obj/structure/sign/poster{pixel_y = -32},/turf/open/floor/plasteel/floorgrime,/area/quartermaster/sorting{name = "\improper Warehouse"}) +"aGG" = (/obj/structure/closet/crate/internals,/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/effect/spawner/lootdrop/maintenance{lootcount = 3; name = "3maintenance loot spawner"},/turf/open/floor/plasteel/floorgrime,/area/quartermaster/sorting{name = "\improper Warehouse"}) +"aGH" = (/obj/machinery/power/apc{dir = 4; name = "Warehouse APC"; pixel_x = 27; pixel_y = 0},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plasteel/floorgrime,/area/quartermaster/sorting{name = "\improper Warehouse"}) +"aGI" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/construction/Storage{name = "Storage Wing"}) +"aGJ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/vault{dir = 5},/area/construction/Storage{name = "Storage Wing"}) +"aGK" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/open/floor/plating,/area/construction/Storage{name = "Storage Wing"}) +"aGL" = (/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"aGM" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"aGN" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=1.5-Fore-Central"; location = "1-BrigCells"},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"aGO" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"aGP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"aGQ" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"aGR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"aGS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"aGT" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"aGU" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"aGV" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"aGW" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=1-BrigCells"; location = "0-SecurityDesk"},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"aGX" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"aGY" = (/obj/structure/table/reinforced,/obj/machinery/door/window/westleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Outer Window"; req_access_txt = "0"},/obj/machinery/door/window/brigdoor{dir = 4; name = "Security Desk"; req_access_txt = "1"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/item/device/radio/off,/obj/machinery/door/poddoor/shutters/preopen{id = "briglockdown"; name = "brig shutters"},/turf/open/floor/plasteel/black,/area/security/brig) +"aGZ" = (/obj/structure/chair/office/dark{dir = 8},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/black,/area/security/brig) +"aHa" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/security/brig) +"aHb" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/black,/area/security/brig) +"aHc" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table,/obj/item/bodybag,/obj/item/clothing/gloves/color/latex,/obj/item/clothing/mask/surgical,/turf/open/floor/plasteel/black,/area/security/detectives_office) +"aHd" = (/obj/machinery/door/window{dir = 1; name = "glass door"; pixel_y = 0; req_access_txt = "0"},/turf/open/floor/plasteel/black,/area/security/detectives_office) +"aHe" = (/obj/machinery/door/airlock/maintenance{name = "Detective Maintenance"; req_access_txt = "4"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/security/detectives_office) +"aHf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/camera{c_tag = "Restrooms"; dir = 4; network = list("SS13")},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aHg" = (/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aHh" = (/obj/machinery/light/small,/obj/machinery/power/apc{dir = 2; name = "Restrooms APC"; pixel_x = 0; pixel_y = -26},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aHi" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aHj" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aHk" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aHl" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock{name = "Unisex Restrooms"; req_access_txt = "0"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aHm" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/crew_quarters/sleep) +"aHn" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/floorgrime,/area/crew_quarters/sleep) +"aHo" = (/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"aHp" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"aHq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"aHr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/firealarm{dir = 4; pixel_x = 28},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/crew_quarters/sleep) +"aHs" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/starboard) +"aHt" = (/obj/structure/rack,/obj/item/weapon/stock_parts/matter_bin,/turf/open/floor/plating{icon_state = "platingdmg2"},/area/maintenance/starboard) +"aHu" = (/obj/structure/reagent_dispensers/watertank,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/light_switch{pixel_x = -38},/turf/open/floor/plasteel/bot{dir = 1},/area/engine/engineering) +"aHv" = (/turf/open/floor/plasteel/warning{dir = 10},/area/engine/engineering) +"aHw" = (/turf/open/floor/plasteel/warning{dir = 2},/area/engine/engineering) +"aHx" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/warning{dir = 2},/area/engine/engineering) +"aHy" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/item/clothing/head/cone{pixel_x = -4; pixel_y = 4},/obj/item/clothing/head/cone{pixel_x = -4; pixel_y = 4},/obj/item/clothing/head/cone{pixel_x = -4; pixel_y = 4},/obj/item/clothing/head/cone{pixel_x = -4; pixel_y = 4},/obj/item/clothing/head/cone{pixel_x = -4; pixel_y = 4},/turf/open/floor/plasteel/warning{dir = 6},/area/engine/engineering) +"aHz" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/engine/engineering) +"aHA" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/turf/open/floor/plasteel/warning{dir = 8},/area/engine/engineering) +"aHB" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel,/area/engine/engineering) +"aHC" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/warning{dir = 4},/area/engine/engineering) +"aHD" = (/obj/structure/closet/secure_closet/engineering_electrical,/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/engineering) +"aHE" = (/obj/structure/closet/wardrobe/engineering_yellow,/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/engineering) +"aHF" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/belt/utility,/obj/item/weapon/wrench,/obj/item/weapon/weldingtool,/obj/item/clothing/head/welding{pixel_x = -3; pixel_y = 5},/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/engineering) +"aHG" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/bot{dir = 1},/area/engine/engineering) +"aHH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/crowbar,/obj/item/weapon/wirecutters,/obj/item/stack/cable_coil,/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/engineering) +"aHI" = (/obj/machinery/field/generator{anchored = 1; state = 2},/turf/open/floor/plating/airless,/area/space) +"aHJ" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 0; pixel_y = 0},/turf/closed/wall/r_wall,/area/engine/engineering) +"aHK" = (/turf/open/floor/plating/warnplate{dir = 8},/area/shuttle/auxillary_base) +"aHL" = (/turf/open/floor/plating,/area/shuttle/auxillary_base) +"aHM" = (/turf/open/floor/plating/warnplate{dir = 4; luminosity = 2; initial_gas_mix = "o2=0.01;n2=0.01"},/area/shuttle/auxillary_base) +"aHN" = (/obj/structure/closet/crate,/obj/item/weapon/coin/silver,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"aHO" = (/obj/structure/table,/obj/item/weapon/folder/yellow,/obj/item/weapon/pen,/obj/machinery/requests_console{department = "Mining"; departmentType = 0; pixel_x = 0; pixel_y = -30},/turf/open/floor/plasteel/brown{dir = 10},/area/quartermaster/miningdock{name = "\improper Mining Office"}) +"aHP" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/turf/open/floor/plasteel/brown{dir = 2},/area/quartermaster/miningdock{name = "\improper Mining Office"}) +"aHQ" = (/obj/structure/rack{dir = 1},/obj/item/weapon/pickaxe{pixel_x = 5},/obj/item/weapon/shovel{pixel_x = -5},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/brown{dir = 2},/area/quartermaster/miningdock{name = "\improper Mining Office"}) +"aHR" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel/brown{dir = 2},/area/quartermaster/miningdock{name = "\improper Mining Office"}) +"aHS" = (/obj/structure/closet/secure_closet/miner,/turf/open/floor/plasteel/brown{dir = 6},/area/quartermaster/miningdock{name = "\improper Mining Office"}) +"aHT" = (/obj/machinery/door/poddoor/shutters{id = "qm_warehouse"; name = "Warehouse Shutters"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/delivery{name = "floor"},/area/quartermaster/sorting{name = "\improper Warehouse"}) +"aHU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/quartermaster/sorting{name = "\improper Warehouse"}) +"aHV" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;63;48;50"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/fore) +"aHW" = (/turf/closed/wall,/area/construction/Storage{name = "Storage Wing"}) +"aHX" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/open/floor/plating,/area/construction/Storage{name = "Storage Wing"}) +"aHY" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/open/floor/plating,/area/construction/Storage{name = "Storage Wing"}) +"aHZ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/construction/Storage{name = "Storage Wing"}) +"aIa" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Vault Storage"},/turf/open/floor/plasteel/vault{dir = 5},/area/construction/Storage{name = "Storage Wing"}) +"aIb" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/structure/cable/yellow,/turf/open/floor/plating,/area/construction/Storage{name = "Storage Wing"}) +"aIc" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/open/floor/plating,/area/construction/Storage{name = "Storage Wing"}) +"aId" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/construction/Storage{name = "Storage Wing"}) +"aIe" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/firealarm{dir = 8; pixel_x = -26; pixel_y = 0},/obj/machinery/camera{c_tag = "Storage Wing - Security Access Door"; dir = 4; network = list("SS13")},/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/black,/area/hallway/primary/fore) +"aIf" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/black,/area/hallway/primary/fore) +"aIg" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/black,/area/hallway/primary/fore) +"aIh" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/security{name = "Security-Storage Backroom"; req_access = null; req_access_txt = "63"},/turf/open/floor/plasteel/black,/area/hallway/primary/fore) +"aIi" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/red/corner{dir = 8},/area/hallway/primary/fore) +"aIj" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/red/corner{dir = 8},/area/hallway/primary/fore) +"aIk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/turf/open/floor/plasteel/red/corner{dir = 8},/area/hallway/primary/fore) +"aIl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/red/corner{dir = 8},/area/hallway/primary/fore) +"aIm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/plasteel/red/corner{dir = 8},/area/hallway/primary/fore) +"aIn" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/red/corner{dir = 8},/area/hallway/primary/fore) +"aIo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/power/apc{cell_type = 5000; dir = 2; name = "Fore Primary Hallway APC"; pixel_x = 0; pixel_y = -27},/obj/structure/cable/yellow,/obj/machinery/light,/turf/open/floor/plasteel/red/corner{dir = 8},/area/hallway/primary/fore) +"aIp" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/red/corner{dir = 8},/area/hallway/primary/fore) +"aIq" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -26},/turf/open/floor/plasteel/red/corner{dir = 8},/area/hallway/primary/fore) +"aIr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/red/corner{dir = 8},/area/hallway/primary/fore) +"aIs" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/corner{dir = 8},/area/hallway/primary/fore) +"aIt" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"aIu" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/red/corner{dir = 2},/area/hallway/primary/fore) +"aIv" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/open/floor/plasteel/red/corner{dir = 2},/area/hallway/primary/fore) +"aIw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel/red/corner{dir = 2},/area/hallway/primary/fore) +"aIx" = (/obj/item/device/radio/beacon,/turf/open/floor/plasteel/red/corner{dir = 2},/area/hallway/primary/fore) +"aIy" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow,/obj/machinery/door/poddoor/preopen{id = "briglockdown"; name = "brig shutters"},/turf/open/floor/plating,/area/security/brig) +"aIz" = (/obj/machinery/computer/security,/obj/machinery/newscaster/security_unit{pixel_x = 0; pixel_y = -30},/turf/open/floor/plasteel/black,/area/security/brig) +"aIA" = (/obj/structure/table,/obj/item/weapon/folder/red{pixel_x = 3},/obj/item/weapon/folder/white{pixel_x = -4; pixel_y = 2},/obj/machinery/computer/security/telescreen{desc = "Used for watching Prison Wing holding areas."; dir = 1; name = "Prison Monitor"; network = list("Prison"); pixel_x = 0; pixel_y = -30},/obj/item/weapon/restraints/handcuffs,/turf/open/floor/plasteel/black,/area/security/brig) +"aIB" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/reagent_dispensers/peppertank{pixel_x = 0; pixel_y = -30},/turf/open/floor/plasteel/black,/area/security/brig) +"aIC" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/black,/area/security/brig) +"aID" = (/obj/structure/bodycontainer/morgue,/obj/effect/landmark{name = "revenantspawn"},/turf/open/floor/plasteel/black,/area/security/detectives_office) +"aIE" = (/obj/machinery/light/small,/turf/open/floor/plasteel/black,/area/security/detectives_office) +"aIF" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/fore) +"aIG" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating/warnplate,/area/maintenance/fore) +"aIH" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fore) +"aII" = (/obj/structure/toilet{pixel_y = 8},/obj/machinery/light/small{dir = 8},/obj/machinery/newscaster{pixel_x = 0; pixel_y = -32},/obj/effect/landmark{name = "blobstart"},/obj/machinery/button/door{id = "Toilet2"; name = "Lock Control"; normaldoorcontrol = 1; pixel_x = -25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aIJ" = (/obj/machinery/door/airlock{id_tag = "Toilet2"; name = "Unit 2"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aIK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aIL" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aIM" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aIN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/sign/poster{pixel_y = -32},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aIO" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aIP" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/obj/machinery/camera{c_tag = "Dormitories - Aft"; dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/crew_quarters/sleep) +"aIQ" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"aIR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/crew_quarters/sleep) +"aIS" = (/obj/machinery/light/small,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/crew_quarters/sleep) +"aIT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/crew_quarters/sleep) +"aIU" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/crew_quarters/sleep) +"aIV" = (/obj/machinery/door/airlock{id_tag = "Cabin7"; name = "Cabin 1"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/wood,/area/crew_quarters/sleep) +"aIW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/wood,/area/crew_quarters/sleep) +"aIX" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/machinery/airalarm{pixel_y = 23},/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/wood,/area/crew_quarters/sleep) +"aIY" = (/obj/structure/closet/secure_closet/personal/cabinet,/obj/item/clothing/under/assistantformal,/turf/open/floor/wood,/area/crew_quarters/sleep) +"aIZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plating,/area/maintenance/starboard) +"aJa" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/starboard) +"aJb" = (/obj/structure/table,/obj/item/stack/rods{amount = 50},/obj/item/weapon/wrench,/obj/item/weapon/storage/box/lights/mixed,/turf/open/floor/plasteel/bot{dir = 1},/area/engine/engineering) +"aJc" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/weapon/crowbar,/obj/item/weapon/grenade/chem_grenade/metalfoam,/obj/item/weapon/grenade/chem_grenade/metalfoam,/turf/open/floor/plasteel/bot{dir = 1},/area/engine/engineering) +"aJd" = (/obj/structure/table,/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/stack/cable_coil,/obj/item/weapon/electronics/airlock,/obj/item/weapon/electronics/airlock,/obj/item/clothing/ears/earmuffs{pixel_x = -3; pixel_y = -2},/obj/item/clothing/ears/earmuffs{pixel_x = -5; pixel_y = 6},/turf/open/floor/plasteel/bot{dir = 1},/area/engine/engineering) +"aJe" = (/obj/structure/closet/crate{name = "solar pack crate"},/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/weapon/circuitboard/computer/solar_control,/obj/item/weapon/electronics/tracker,/obj/item/weapon/paper/solar,/turf/open/floor/plasteel/bot{dir = 1},/area/engine/engineering) +"aJf" = (/obj/machinery/power/port_gen/pacman,/obj/structure/cable/yellow,/turf/open/floor/plasteel/bot{dir = 1},/area/engine/engineering) +"aJg" = (/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/open/floor/plasteel/warning{dir = 8},/area/engine/engineering) +"aJh" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/landmark/start{name = "Station Engineer"},/turf/open/floor/plasteel,/area/engine/engineering) +"aJi" = (/obj/structure/table,/obj/machinery/light_switch{pixel_x = 23},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/item/weapon/storage/toolbox/mechanical{pixel_y = 5},/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/engineering) +"aJj" = (/obj/machinery/door/poddoor/shutters/preopen{id = "Singularity"; name = "radiation shutters"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/bot{dir = 1},/area/engine/engineering) +"aJk" = (/obj/item/weapon/wirecutters,/obj/structure/lattice,/turf/open/space,/area/space) +"aJl" = (/obj/structure/cable{tag = "icon-0-4"; icon_state = "0-4"},/obj/machinery/power/tesla_coil,/turf/open/floor/plating/airless,/area/space) +"aJm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/open/floor/plating/airless,/area/space) +"aJn" = (/obj/structure/sign/poster{pixel_x = 32},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"aJo" = (/turf/closed/wall/mineral/titanium,/area/shuttle/supply) +"aJp" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/quartermaster/miningdock{name = "\improper Mining Office"}) +"aJq" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/mining{name = "Mining Office"; req_access_txt = "48"},/turf/open/floor/plasteel,/area/quartermaster/miningdock{name = "\improper Mining Office"}) +"aJr" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel/warning{dir = 9},/area/quartermaster/storage) +"aJs" = (/obj/machinery/button/door{id = "qm_warehouse"; name = "Warehouse Door Control"; pixel_x = 0; pixel_y = 24; req_access_txt = "50"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/warning{dir = 1},/area/quartermaster/storage) +"aJt" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/warning{dir = 1},/area/quartermaster/storage) +"aJu" = (/obj/machinery/firealarm{pixel_y = 27},/turf/open/floor/plasteel/warning{dir = 1},/area/quartermaster/storage) +"aJv" = (/obj/machinery/light_switch{pixel_y = 28},/turf/open/floor/plasteel/warning{dir = 5},/area/quartermaster/storage) +"aJw" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_mining{glass = 0; name = "Cargo Bay"; opacity = 1; req_access_txt = "0"; req_one_access_txt = "48;50"},/turf/open/floor/plasteel/delivery{name = "floor"},/area/construction/Storage{name = "Storage Wing"}) +"aJx" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/warning{dir = 9},/area/construction/Storage{name = "Storage Wing"}) +"aJy" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/light/small{dir = 1},/obj/structure/sign/securearea{pixel_y = 30},/turf/open/floor/plasteel/warning{dir = 5},/area/construction/Storage{name = "Storage Wing"}) +"aJz" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_mining{glass = 0; name = "Cargo Bay"; opacity = 1; req_access_txt = "0"; req_one_access_txt = "48;50"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/delivery{name = "floor"},/area/construction/Storage{name = "Storage Wing"}) +"aJA" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/construction/Storage{name = "Storage Wing"}) +"aJB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/brown/corner{dir = 8},/area/construction/Storage{name = "Storage Wing"}) +"aJC" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/open/floor/plasteel/brown/corner{dir = 8},/area/construction/Storage{name = "Storage Wing"}) +"aJD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/brown/corner{dir = 8},/area/construction/Storage{name = "Storage Wing"}) +"aJE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/brown/corner{dir = 8},/area/construction/Storage{name = "Storage Wing"}) +"aJF" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/brown/corner{dir = 8},/area/construction/Storage{name = "Storage Wing"}) +"aJG" = (/obj/machinery/vending/cigarette,/obj/machinery/newscaster{pixel_x = 0; pixel_y = 32},/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/open/floor/plasteel,/area/construction/Storage{name = "Storage Wing"}) +"aJH" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/hallway/primary/fore) +"aJI" = (/obj/structure/chair/office/dark,/turf/open/floor/plasteel/black,/area/hallway/primary/fore) +"aJJ" = (/obj/structure/table,/obj/machinery/recharger,/turf/open/floor/plasteel/black,/area/hallway/primary/fore) +"aJK" = (/turf/closed/wall/r_wall,/area/hallway/primary/fore) +"aJL" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow,/turf/open/floor/plating,/area/hallway/primary/fore) +"aJM" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/corner{dir = 8},/area/hallway/primary/fore) +"aJN" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"aJO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel/red/corner{dir = 2},/area/hallway/primary/fore) +"aJP" = (/obj/structure/sign/directions/security{desc = "A direction sign, pointing out which way the security department is."; dir = 1; icon_state = "direction_sec"; pixel_x = 0; pixel_y = 8},/turf/closed/wall,/area/crew_quarters/courtroom) +"aJQ" = (/turf/closed/wall,/area/crew_quarters/courtroom) +"aJR" = (/turf/closed/wall/r_wall,/area/crew_quarters/courtroom) +"aJS" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/security{name = "Court Cell"; req_access = null; req_access_txt = "63"},/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) +"aJT" = (/turf/closed/wall,/area/lawoffice) +"aJU" = (/obj/machinery/door/airlock/maintenance{name = "Law Office Maintenance"; req_access_txt = "38"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/lawoffice) +"aJV" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/light_switch{pixel_x = -26},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aJW" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/mirror{pixel_x = 28},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aJX" = (/obj/machinery/door/airlock{id_tag = "Toilet4"; name = "Unit 4"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aJY" = (/obj/machinery/door/airlock{name = "Unit B"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aJZ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/light/small{dir = 8},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=14.9-CrewQuarters-Central"; location = "14.8-Dorms-Lockers"},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/crew_quarters/sleep) +"aKa" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"aKb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/crew_quarters/sleep) +"aKc" = (/obj/structure/closet/wardrobe/pjs,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/sign/poster{pixel_y = -32},/turf/open/floor/plasteel/vault,/area/crew_quarters/sleep) +"aKd" = (/obj/structure/closet/secure_closet/personal,/obj/item/clothing/under/assistantformal,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/obj/item/clothing/suit/hooded/wintercoat,/obj/item/clothing/shoes/winterboots,/turf/open/floor/plasteel/vault,/area/crew_quarters/sleep) +"aKe" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/closet/wardrobe/pjs,/turf/open/floor/plasteel/vault,/area/crew_quarters/sleep) +"aKf" = (/obj/machinery/button/door{id = "Cabin7"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = -25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/wood,/area/crew_quarters/sleep) +"aKg" = (/obj/structure/chair/wood/normal{dir = 4},/turf/open/floor/wood,/area/crew_quarters/sleep) +"aKh" = (/obj/structure/table/wood,/obj/machinery/newscaster{pixel_x = 29; pixel_y = 1},/obj/item/weapon/paper,/turf/open/floor/wood,/area/crew_quarters/sleep) +"aKi" = (/obj/structure/closet,/obj/item/weapon/storage/box/donkpockets,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/starboard) +"aKj" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/plasteel/warning{dir = 8},/area/engine/engineering) +"aKk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/engine/engineering) +"aKl" = (/obj/structure/table,/obj/machinery/button/door{id = "Singularity"; name = "Shutters Control"; pixel_x = 25; pixel_y = 0; req_access_txt = "11"},/obj/item/weapon/storage/toolbox/electrical{pixel_y = 5},/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/engineering) +"aKm" = (/obj/machinery/button/door{id = "Singularity"; name = "Shutters Control"; pixel_x = -25; pixel_y = 0; req_access_txt = "11"},/turf/open/floor/plating/warnplate{dir = 9},/area/engine/engineering) +"aKn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/open/floor/plating/warnplate{dir = 1},/area/engine/engineering) +"aKo" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/open/floor/plating/warnplate{dir = 1},/area/engine/engineering) +"aKp" = (/obj/machinery/camera/emp_proof{c_tag = "Engineering - Particle Accelerator"; dir = 2; network = list("Singulo","SS13")},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/open/floor/plating/warnplate{dir = 1},/area/engine/engineering) +"aKq" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/open/floor/plating/warnplate{dir = 5},/area/engine/engineering) +"aKr" = (/obj/machinery/camera{c_tag = "Auxillary Mining Base"; dir = 1},/obj/machinery/camera{c_tag = "Auxillary Mining Base"; dir = 1; network = list("SS13","AuxBase")},/turf/open/floor/plating,/area/shuttle/auxillary_base) +"aKs" = (/turf/open/floor/mineral/titanium/blue,/area/shuttle/supply) +"aKt" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/quartermaster/storage) +"aKu" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = -28; pixel_y = 23},/obj/machinery/status_display{density = 0; pixel_x = 0; pixel_y = 32; supply_display = 1},/obj/machinery/conveyor{dir = 1; id = "QMLoad2"; movedir = 2},/turf/open/floor/plating,/area/quartermaster/storage) +"aKv" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/loadingarea{dir = 4},/area/quartermaster/storage) +"aKw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel,/area/quartermaster/storage) +"aKx" = (/obj/structure/sign/map/left{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-left-MS"; pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/quartermaster/storage) +"aKy" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/machinery/camera{c_tag = "Cargo Bay - Fore"; dir = 2; network = list("SS13")},/obj/structure/sign/map/right{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-right-MS"; pixel_y = 32},/turf/open/floor/plasteel/warning/corner{dir = 8},/area/quartermaster/storage) +"aKz" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plasteel/warning/corner{dir = 4},/area/quartermaster/storage) +"aKA" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/quartermaster/storage) +"aKB" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plasteel/warning/corner{dir = 2},/area/quartermaster/storage) +"aKC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/warning{dir = 2},/area/quartermaster/storage) +"aKD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/warning{dir = 6},/area/quartermaster/storage) +"aKE" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/glass_mining{glass = 0; name = "Cargo Bay"; opacity = 1; req_access_txt = "0"; req_one_access_txt = "48;50"},/turf/open/floor/plasteel/delivery{name = "floor"},/area/construction/Storage{name = "Storage Wing"}) +"aKF" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plasteel/warning{dir = 10},/area/construction/Storage{name = "Storage Wing"}) +"aKG" = (/obj/machinery/camera{c_tag = "Cargo Bay - Storage Wing Entrance"; dir = 1; network = list("SS13")},/turf/open/floor/plasteel/warning{dir = 6},/area/construction/Storage{name = "Storage Wing"}) +"aKH" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/power/apc{dir = 2; name = "Storage Wing APC"; pixel_x = 0; pixel_y = -27},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/brown/corner{dir = 4},/area/construction/Storage{name = "Storage Wing"}) +"aKI" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/sign/poster{pixel_y = -32},/turf/open/floor/plasteel/brown/corner{dir = 4},/area/construction/Storage{name = "Storage Wing"}) +"aKJ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/brown/corner{dir = 4},/area/construction/Storage{name = "Storage Wing"}) +"aKK" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -26},/obj/machinery/camera{c_tag = "Storage Wing"; dir = 1; network = list("SS13")},/obj/machinery/light,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/brown/corner{dir = 4},/area/construction/Storage{name = "Storage Wing"}) +"aKL" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/brown/corner{dir = 4},/area/construction/Storage{name = "Storage Wing"}) +"aKM" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=2.2-Leaving-Storage"; location = "2.1-Storage"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/brown/corner{dir = 4},/area/construction/Storage{name = "Storage Wing"}) +"aKN" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/construction/Storage{name = "Storage Wing"}) +"aKO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/construction/Storage{name = "Storage Wing"}) +"aKP" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/security{name = "Security-Storage Backroom"; req_access = null; req_access_txt = "63"},/turf/open/floor/plasteel/black,/area/hallway/primary/fore) +"aKQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/black,/area/hallway/primary/fore) +"aKR" = (/obj/structure/table,/obj/item/weapon/folder/red,/obj/item/weapon/restraints/handcuffs,/obj/machinery/newscaster/security_unit{pixel_x = 0; pixel_y = -30},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/black,/area/hallway/primary/fore) +"aKS" = (/obj/machinery/light/small,/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/machinery/airalarm{dir = 1; pixel_y = -22},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/black,/area/hallway/primary/fore) +"aKT" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/hallway/primary/fore) +"aKU" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/open/floor/plating,/area/hallway/primary/fore) +"aKV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/red/corner{dir = 8},/area/hallway/primary/fore) +"aKW" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"aKX" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/red/corner{dir = 2},/area/hallway/primary/fore) +"aKY" = (/obj/structure/closet/secure_closet/courtroom,/obj/machinery/light_switch{pixel_y = 28},/obj/item/weapon/gavelblock,/obj/item/weapon/gavelhammer,/turf/open/floor/plasteel,/area/crew_quarters/courtroom) +"aKZ" = (/obj/structure/chair{name = "Bailiff"},/turf/open/floor/plasteel,/area/crew_quarters/courtroom) +"aLa" = (/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/turf/open/floor/plasteel,/area/crew_quarters/courtroom) +"aLb" = (/obj/structure/chair{name = "Judge"},/turf/open/floor/plasteel/blue/side{dir = 9},/area/crew_quarters/courtroom) +"aLc" = (/obj/structure/chair{name = "Judge"},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/light{dir = 1},/obj/machinery/camera{c_tag = "Courtroom"; dir = 2; network = list("SS13")},/turf/open/floor/plasteel/blue/side{dir = 1},/area/crew_quarters/courtroom) +"aLd" = (/obj/structure/chair{name = "Judge"},/turf/open/floor/plasteel/blue/side{dir = 5},/area/crew_quarters/courtroom) +"aLe" = (/turf/open/floor/plasteel,/area/crew_quarters/courtroom) +"aLf" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) +"aLg" = (/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) +"aLh" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green{pixel_x = 1; pixel_y = 5},/obj/machinery/requests_console{department = "Law office"; pixel_x = 0; pixel_y = 32},/obj/machinery/newscaster{pixel_x = -31; pixel_y = 0},/turf/open/floor/wood,/area/lawoffice) +"aLi" = (/obj/structure/table/wood,/obj/item/weapon/book/manual/wiki/security_space_law,/obj/item/weapon/book/manual/wiki/security_space_law,/obj/item/weapon/pen/red,/obj/machinery/computer/security/telescreen{desc = "Used for watching Prison Wing holding areas."; name = "Prison Monitor"; network = list("Prison"); pixel_x = 0; pixel_y = 30},/turf/open/floor/wood,/area/lawoffice) +"aLj" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/briefcase{pixel_x = -3; pixel_y = 2},/obj/item/weapon/storage/secure/briefcase{pixel_x = 2; pixel_y = -2},/obj/item/clothing/glasses/sunglasses,/turf/open/floor/wood,/area/lawoffice) +"aLk" = (/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/power/apc{dir = 1; name = "Law Office APC"; pixel_y = 24},/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-21"; layer = 4.1},/turf/open/floor/wood,/area/lawoffice) +"aLl" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/wood,/area/lawoffice) +"aLm" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/plating/warnplate{dir = 2},/area/maintenance/fore) +"aLn" = (/obj/structure/toilet{pixel_y = 8},/obj/machinery/light/small{dir = 8},/obj/machinery/newscaster{pixel_x = 0; pixel_y = -32},/obj/effect/landmark{name = "blobstart"},/obj/machinery/button/door{id = "Toilet1"; name = "Lock Control"; normaldoorcontrol = 1; pixel_x = -25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aLo" = (/obj/machinery/door/airlock{id_tag = "Toilet1"; name = "Unit 1"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aLp" = (/obj/structure/toilet{dir = 4},/obj/machinery/light/small{dir = 4},/obj/machinery/newscaster{pixel_x = 32},/obj/machinery/button/door{id = "Toilet4"; name = "Lock Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = -25; req_access_txt = "0"; specialfunctions = 4},/obj/effect/landmark/start{name = "Assistant"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aLq" = (/obj/machinery/light/small,/obj/machinery/recharge_station,/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aLr" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/crew_quarters/sleep) +"aLs" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"aLt" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/crew_quarters/sleep) +"aLu" = (/turf/closed/wall,/area/hallway/secondary/construction{name = "\improper Garden"}) +"aLv" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/spawner/lootdrop/maintenance,/obj/structure/sign/poster{pixel_x = -32; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/starboard) +"aLw" = (/obj/effect/decal/cleanable/cobweb,/obj/machinery/field/generator{anchored = 0; state = 2},/turf/open/floor/plating,/area/engine/engineering) +"aLx" = (/obj/machinery/field/generator{anchored = 0; state = 2},/turf/open/floor/plating,/area/engine/engineering) +"aLy" = (/obj/machinery/shieldgen,/obj/machinery/light/small{dir = 1},/obj/machinery/camera{c_tag = "Engineering - Secure Storage"; dir = 2; network = list("SS13")},/turf/open/floor/plating,/area/engine/engineering) +"aLz" = (/obj/machinery/shieldgen,/turf/open/floor/plating,/area/engine/engineering) +"aLA" = (/obj/structure/table,/obj/item/weapon/airlock_painter,/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/engineering) +"aLB" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/warning/corner{dir = 8},/area/engine/engineering) +"aLC" = (/turf/open/floor/plasteel/warning{dir = 5},/area/engine/engineering) +"aLD" = (/obj/machinery/door/poddoor/shutters/preopen{id = "Singularity"; name = "radiation shutters"},/turf/open/floor/plasteel/bot{dir = 1},/area/engine/engineering) +"aLE" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating/warnplate{dir = 8},/area/engine/engineering) +"aLF" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating,/area/engine/engineering) +"aLG" = (/obj/effect/landmark/start{name = "Station Engineer"},/turf/open/floor/plating,/area/engine/engineering) +"aLH" = (/turf/open/floor/plating,/area/engine/engineering) +"aLI" = (/obj/structure/particle_accelerator/particle_emitter/right{dir = 4},/turf/open/floor/plating,/area/engine/engineering) +"aLJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/warnplate{dir = 4},/area/engine/engineering) +"aLK" = (/turf/open/floor/plating/airless/warnplate{dir = 9},/area/space) +"aLL" = (/obj/machinery/the_singularitygen,/turf/open/floor/plating/airless/warnplate{dir = 1},/area/space) +"aLM" = (/turf/open/floor/plating/airless/warnplate{dir = 5},/area/space) +"aLN" = (/obj/item/weapon/crowbar,/turf/open/space,/area/space) +"aLO" = (/obj/structure/window/reinforced,/turf/open/space,/area/space) +"aLP" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/open/floor/plating,/area/shuttle/auxillary_base) +"aLQ" = (/obj/docking_port/mobile/auxillary_base{dheight = 4; dir = 2; dwidth = 4; height = 9; width = 9},/obj/machinery/bluespace_beacon,/obj/machinery/computer/shuttle/auxillary_base{pixel_y = 0},/turf/closed/wall,/area/shuttle/auxillary_base) +"aLR" = (/obj/machinery/light{dir = 8},/turf/open/floor/plating,/area/shuttle/auxillary_base) +"aLS" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/turf/open/floor/plating,/area/quartermaster/storage) +"aLT" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/conveyor{dir = 1; id = "QMLoad2"; movedir = 2},/turf/open/floor/plating,/area/quartermaster/storage) +"aLU" = (/obj/machinery/conveyor_switch/oneway{convdir = 1; id = "QMLoad2"; pixel_x = 6},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/warning{dir = 8},/area/quartermaster/storage) +"aLV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/storage) +"aLW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/storage) +"aLX" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel,/area/quartermaster/storage) +"aLY" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/quartermaster/storage) +"aLZ" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/warning/corner{dir = 8},/area/quartermaster/storage) +"aMa" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/turf/open/floor/plasteel/loadingarea{dir = 8},/area/quartermaster/storage) +"aMb" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; dir = 8; freq = 1400; location = "QM #1"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/window/northleft,/obj/machinery/light{dir = 4},/mob/living/simple_animal/bot/mulebot{beacon_freq = 1400; home_destination = "QM #1"; suffix = "#1"},/turf/open/floor/plasteel/delivery,/area/quartermaster/storage) +"aMc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;63;48;50"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"aMd" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;63;48;50"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"aMe" = (/turf/closed/wall,/area/storage/primary) +"aMf" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/storage/primary) +"aMg" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Primary Tool Storage"},/turf/open/floor/plasteel/brown{dir = 2},/area/storage/primary) +"aMh" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Primary Tool Storage"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/brown{dir = 2},/area/storage/primary) +"aMi" = (/turf/closed/wall/r_wall,/area/storage/primary) +"aMj" = (/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/ai_upload) +"aMk" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel/red/corner{dir = 8},/area/hallway/primary/fore) +"aMl" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"aMm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/corner{dir = 2},/area/hallway/primary/fore) +"aMn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/security{name = "Brig"; req_access = null; req_access_txt = "63; 42"},/turf/open/floor/plasteel,/area/crew_quarters/courtroom) +"aMo" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel,/area/crew_quarters/courtroom) +"aMp" = (/turf/open/floor/plasteel/neutral/side{dir = 9},/area/crew_quarters/courtroom) +"aMq" = (/obj/structure/table/wood,/obj/item/device/radio/intercom{broadcasting = 1; dir = 8; listening = 0; name = "Station Intercom (Court)"; pixel_x = 0},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/crew_quarters/courtroom) +"aMr" = (/obj/structure/table/wood,/obj/item/weapon/gavelblock,/obj/item/weapon/gavelhammer,/turf/open/floor/plasteel/neutral/side{dir = 1},/area/crew_quarters/courtroom) +"aMs" = (/obj/structure/table/wood,/obj/item/weapon/book/manual/wiki/security_space_law,/turf/open/floor/plasteel/neutral/side{dir = 1},/area/crew_quarters/courtroom) +"aMt" = (/turf/open/floor/plasteel/neutral/side{dir = 5},/area/crew_quarters/courtroom) +"aMu" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/vault{dir = 8},/area/crew_quarters/courtroom) +"aMv" = (/obj/machinery/door/window/southleft{name = "Court Cell"; req_access_txt = "2"},/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) +"aMw" = (/obj/effect/landmark/start{name = "Lawyer"},/obj/structure/chair/office/dark{dir = 4},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/open/floor/wood,/area/lawoffice) +"aMx" = (/obj/structure/table/wood,/obj/item/weapon/folder/blue,/obj/item/weapon/folder/blue,/obj/item/weapon/folder/blue,/obj/item/weapon/folder/blue,/obj/item/weapon/stamp/law,/turf/open/floor/wood,/area/lawoffice) +"aMy" = (/obj/structure/chair{dir = 8},/turf/open/floor/wood,/area/lawoffice) +"aMz" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/wood,/area/lawoffice) +"aMA" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/wood,/area/lawoffice) +"aMB" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "1;4;38;12"},/turf/open/floor/plating,/area/maintenance/fore) +"aMC" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock{name = "Unisex Restrooms"; req_access_txt = "0"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aMD" = (/obj/machinery/door/firedoor,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock{name = "Dormitories"; req_access_txt = "0"},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/crew_quarters/sleep) +"aME" = (/obj/structure/grille,/obj/structure/window/reinforced/tinted/fulltile,/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/crew_quarters/sleep) +"aMF" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/airlock{name = "Dormitories"; req_access_txt = "0"},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/crew_quarters/sleep) +"aMG" = (/obj/item/weapon/reagent_containers/spray/plantbgone,/obj/item/weapon/reagent_containers/spray/pestspray{pixel_x = 3; pixel_y = 4},/obj/item/weapon/reagent_containers/glass/bottle/nutrient/ez,/obj/item/weapon/reagent_containers/glass/bottle/nutrient/rh{pixel_x = 2; pixel_y = 1},/obj/structure/table,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/open/floor/plasteel/warning,/area/hallway/secondary/construction{name = "\improper Garden"}) +"aMH" = (/obj/machinery/biogenerator,/obj/machinery/firealarm{pixel_y = 27},/turf/open/floor/plasteel/warning,/area/hallway/secondary/construction{name = "\improper Garden"}) +"aMI" = (/obj/structure/table,/obj/item/weapon/cultivator,/obj/item/weapon/hatchet,/obj/item/weapon/crowbar,/obj/machinery/light{dir = 1},/obj/item/device/plant_analyzer,/obj/item/weapon/reagent_containers/glass/bucket,/turf/open/floor/plasteel/warning,/area/hallway/secondary/construction{name = "\improper Garden"}) +"aMJ" = (/obj/machinery/seed_extractor,/obj/machinery/airalarm{pixel_y = 23},/turf/open/floor/plasteel/warning,/area/hallway/secondary/construction{name = "\improper Garden"}) +"aMK" = (/obj/item/seeds/apple,/obj/item/seeds/banana,/obj/item/seeds/cocoapod,/obj/item/seeds/grape,/obj/item/seeds/orange,/obj/item/seeds/sugarcane,/obj/item/seeds/wheat,/obj/item/seeds/watermelon,/obj/structure/table,/obj/item/seeds/tower,/turf/open/floor/plasteel/warning,/area/hallway/secondary/construction{name = "\improper Garden"}) +"aML" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/grass,/area/hallway/secondary/construction{name = "\improper Garden"}) +"aMM" = (/mob/living/simple_animal/chicken{name = "Featherbottom"; real_name = "Featherbottom"},/turf/open/floor/grass,/area/hallway/secondary/construction{name = "\improper Garden"}) +"aMN" = (/obj/effect/decal/cleanable/cobweb,/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/item/weapon/wirecutters,/obj/item/weapon/weldingtool,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/starboard) +"aMO" = (/obj/machinery/portable_atmospherics/canister/toxins,/turf/open/floor/plating,/area/engine/engineering) +"aMP" = (/obj/effect/landmark{name = "revenantspawn"},/turf/open/floor/plating,/area/engine/engineering) +"aMQ" = (/obj/machinery/door/poddoor{id = "Secure Storage"; name = "Secure Storage"},/turf/open/floor/plating,/area/engine/engineering) +"aMR" = (/turf/open/floor/plasteel/warning/corner{dir = 4},/area/engine/engineering) +"aMS" = (/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/engine/engineering) +"aMT" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/engine/engineering) +"aMU" = (/obj/machinery/computer/security/telescreen{desc = "Used for monitoring the singularity engine safely."; dir = 8; name = "Singularity Monitor"; network = list("Singulo"); pixel_x = 32; pixel_y = 0},/obj/machinery/camera{c_tag = "Engineering - Central"; dir = 8; network = list("SS13")},/obj/effect/landmark{name = "lightsout"},/turf/open/floor/plasteel/warning{dir = 4},/area/engine/engineering) +"aMV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/light{dir = 8},/turf/open/floor/plating/warnplate{dir = 8},/area/engine/engineering) +"aMW" = (/obj/structure/particle_accelerator/end_cap{dir = 4},/turf/open/floor/plating,/area/engine/engineering) +"aMX" = (/obj/structure/particle_accelerator/fuel_chamber{dir = 4},/turf/open/floor/plating,/area/engine/engineering) +"aMY" = (/obj/structure/particle_accelerator/power_box{dir = 4},/turf/open/floor/plating,/area/engine/engineering) +"aMZ" = (/obj/structure/particle_accelerator/particle_emitter/center{dir = 4},/turf/open/floor/plating,/area/engine/engineering) +"aNa" = (/obj/item/weapon/wirecutters,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating/warnplate{dir = 4},/area/engine/engineering) +"aNb" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/open/floor/plating,/area/engine/engineering) +"aNc" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/open/floor/plating/airless,/area/space) +"aNd" = (/turf/open/floor/plating/airless/warnplate{dir = 8},/area/space) +"aNe" = (/obj/item/weapon/wrench,/turf/open/floor/plating/airless,/area/space) +"aNf" = (/turf/open/floor/plating/airless/warnplate{dir = 4},/area/space) +"aNg" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 0},/turf/closed/wall/r_wall,/area/engine/engineering) +"aNh" = (/obj/structure/window/reinforced{dir = 4},/turf/open/space,/area/space) +"aNi" = (/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"aNj" = (/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"aNk" = (/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/obj/machinery/holopad,/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"aNl" = (/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"aNm" = (/obj/structure/window/reinforced{dir = 8},/turf/open/space,/area/space) +"aNn" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"aNo" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/obj/machinery/door/poddoor{id = "QMLoaddoor2"; name = "supply dock loading door"},/turf/open/floor/plating,/area/shuttle/supply) +"aNp" = (/obj/machinery/door/poddoor{density = 1; icon_state = "closed"; id = "QMLoaddoor2"; name = "Supply Dock Loading Door"; opacity = 1},/obj/machinery/conveyor{dir = 4; id = "QMLoad2"; movedir = 8},/turf/open/floor/plating,/area/quartermaster/storage) +"aNq" = (/obj/structure/plasticflaps,/obj/machinery/conveyor{dir = 4; id = "QMLoad2"; movedir = 8},/turf/open/floor/plating,/area/quartermaster/storage) +"aNr" = (/obj/machinery/conveyor{dir = 1; id = "QMLoad2"; movedir = 2},/turf/open/floor/plating,/area/quartermaster/storage) +"aNs" = (/turf/open/floor/plasteel/warning{dir = 8},/area/quartermaster/storage) +"aNt" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel,/area/quartermaster/storage) +"aNu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/delivery{name = "floor"},/area/quartermaster/storage) +"aNv" = (/obj/structure/closet/crate,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/obj/item/weapon/ore/glass,/obj/item/weapon/ore/iron,/turf/open/floor/plasteel/bot,/area/quartermaster/storage) +"aNw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel/bot,/area/quartermaster/storage) +"aNx" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel/bot,/area/quartermaster/storage) +"aNy" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/quartermaster/storage) +"aNz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/loadingarea{dir = 8},/area/quartermaster/storage) +"aNA" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; dir = 8; freq = 1400; location = "QM #2"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/delivery,/area/quartermaster/storage) +"aNB" = (/obj/machinery/door/window/northleft{dir = 8; name = "MuleBot Supply Access"; req_access_txt = "50"},/obj/structure/plasticflaps{opacity = 1},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"aNC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating/warnplate{dir = 9},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"aND" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"aNE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"aNF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating{icon_state = "platingdmg1"},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"aNG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"aNH" = (/obj/structure/table,/obj/item/clothing/gloves/color/fyellow,/obj/item/device/gps{gpstag = "AUX0"},/turf/open/floor/plasteel/brown{dir = 9},/area/storage/primary) +"aNI" = (/turf/open/floor/plasteel/brown{dir = 1},/area/storage/primary) +"aNJ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/brown{dir = 1},/area/storage/primary) +"aNK" = (/obj/structure/table,/obj/item/stack/cable_coil{pixel_x = 2; pixel_y = -2},/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = 5},/obj/item/weapon/screwdriver{pixel_y = 16},/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/turf/open/floor/plasteel/brown{dir = 1},/area/storage/primary) +"aNL" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/machinery/light_switch{pixel_y = 28},/turf/open/floor/plasteel/brown{dir = 1},/area/storage/primary) +"aNM" = (/obj/machinery/vending/assist,/obj/machinery/light/small{dir = 1},/obj/structure/sign/poster{pixel_y = 32},/turf/open/floor/plasteel/brown{dir = 1},/area/storage/primary) +"aNN" = (/obj/machinery/vending/tool,/turf/open/floor/plasteel/brown{dir = 1},/area/storage/primary) +"aNO" = (/obj/structure/table,/obj/item/device/assembly/signaler,/obj/item/device/assembly/signaler,/obj/item/device/multitool,/obj/item/device/multitool{pixel_x = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/brown{dir = 5},/area/storage/primary) +"aNP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/storage/primary) +"aNQ" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/space,/area/space) +"aNR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/ai_upload) +"aNS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/porta_turret/ai,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) +"aNT" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/flasher{pixel_x = 0; pixel_y = 24; id = "AI"},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) +"aNU" = (/obj/structure/sign/kiddieplaque{pixel_y = 32},/obj/structure/table,/obj/machinery/camera/motion{c_tag = "AI Upload Chamber - Fore"; network = list("SS13","RD","AIUpload")},/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-07"; name = "Photosynthetic Potted plant"; pixel_y = 10},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) +"aNV" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/obj/machinery/airalarm{pixel_y = 23},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) +"aNW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/porta_turret/ai,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) +"aNX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/ai_upload) +"aNY" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/space,/area/space) +"aNZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall/r_wall,/area/hallway/primary/fore) +"aOa" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/red/corner{dir = 8},/area/hallway/primary/fore) +"aOb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/crew_quarters/courtroom) +"aOc" = (/turf/open/floor/plasteel/neutral/side{dir = 8},/area/crew_quarters/courtroom) +"aOd" = (/obj/effect/landmark/start{name = "Lawyer"},/turf/open/floor/plasteel,/area/crew_quarters/courtroom) +"aOe" = (/turf/open/floor/plasteel/neutral/side{dir = 4},/area/crew_quarters/courtroom) +"aOf" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/wood,/area/lawoffice) +"aOg" = (/obj/structure/table/wood,/obj/item/weapon/folder/red,/obj/item/weapon/folder/red,/obj/item/weapon/folder/red,/obj/item/clothing/glasses/sunglasses/big,/turf/open/floor/wood,/area/lawoffice) +"aOh" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/wood,/area/lawoffice) +"aOi" = (/obj/machinery/photocopier,/obj/machinery/camera{c_tag = "Law Office"; dir = 8; network = list("SS13")},/turf/open/floor/wood,/area/lawoffice) +"aOj" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/vault,/area/crew_quarters/locker) +"aOk" = (/obj/structure/closet/secure_closet/personal,/obj/item/clothing/under/assistantformal,/obj/item/clothing/suit/hooded/wintercoat,/obj/item/clothing/shoes/winterboots,/turf/open/floor/plasteel/vault,/area/crew_quarters/locker) +"aOl" = (/obj/structure/closet/secure_closet/personal,/obj/machinery/light/small{dir = 1},/obj/item/clothing/under/assistantformal,/obj/structure/sign/map/left{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-left-MS"; pixel_y = 32},/obj/item/clothing/suit/hooded/wintercoat,/obj/item/clothing/shoes/winterboots,/turf/open/floor/plasteel/vault,/area/crew_quarters/locker) +"aOm" = (/obj/structure/closet/secure_closet/personal,/obj/item/clothing/under/assistantformal,/obj/structure/sign/map/right{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-right-MS"; pixel_y = 32},/obj/item/clothing/suit/hooded/wintercoat,/obj/item/clothing/shoes/winterboots,/turf/open/floor/plasteel/vault,/area/crew_quarters/locker) +"aOn" = (/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/crew_quarters/locker) +"aOo" = (/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/crew_quarters/locker) +"aOp" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible,/obj/machinery/portable_atmospherics/pump,/obj/structure/sign/poster{pixel_y = 32},/turf/open/floor/plasteel/delivery,/area/crew_quarters/locker) +"aOq" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible,/obj/machinery/portable_atmospherics/pump,/obj/machinery/light/small{dir = 1},/obj/machinery/firealarm{pixel_y = 27},/turf/open/floor/plasteel/delivery,/area/crew_quarters/locker) +"aOr" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible,/obj/machinery/portable_atmospherics/scrubber,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 30},/turf/open/floor/plasteel/delivery,/area/crew_quarters/locker) +"aOs" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible,/obj/machinery/portable_atmospherics/scrubber,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 26},/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/delivery,/area/crew_quarters/locker) +"aOt" = (/obj/machinery/disposal/bin{pixel_x = 0; pixel_y = 0},/obj/structure/disposalpipe/trunk,/obj/machinery/camera{c_tag = "Locker Room Starboard"; dir = 2; network = list("SS13")},/obj/structure/sign/pods{pixel_y = 30},/turf/open/floor/plasteel/delivery,/area/crew_quarters/locker) +"aOu" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/crew_quarters/locker) +"aOv" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/floorgrime,/area/crew_quarters/locker) +"aOw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/crew_quarters/locker) +"aOx" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/machinery/light_switch{pixel_x = -26},/turf/open/floor/plasteel/neutral/side{dir = 9},/area/hallway/secondary/construction{name = "\improper Garden"}) +"aOy" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/hallway/secondary/construction{name = "\improper Garden"}) +"aOz" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/neutral/side{dir = 5},/area/hallway/secondary/construction{name = "\improper Garden"}) +"aOA" = (/obj/machinery/door/firedoor/border_only{density = 1; dir = 8; icon_state = "door_closed"; name = "Animal Pen A"; opacity = 1},/turf/open/floor/grass,/area/hallway/secondary/construction{name = "\improper Garden"}) +"aOB" = (/turf/open/floor/grass,/area/hallway/secondary/construction{name = "\improper Garden"}) +"aOC" = (/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plating{icon_state = "platingdmg1"},/area/maintenance/starboard) +"aOD" = (/obj/machinery/power/emitter,/turf/open/floor/plating,/area/engine/engineering) +"aOE" = (/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plating,/area/engine/engineering) +"aOF" = (/turf/open/floor/plasteel/warning/corner{dir = 1},/area/engine/engineering) +"aOG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel,/area/engine/engineering) +"aOH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/warning/corner{dir = 2},/area/engine/engineering) +"aOI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/warning{dir = 6},/area/engine/engineering) +"aOJ" = (/obj/machinery/door/poddoor/shutters/preopen{id = "Singularity"; name = "radiation shutters"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/bot{dir = 1},/area/engine/engineering) +"aOK" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plating/warnplate{dir = 8},/area/engine/engineering) +"aOL" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plating,/area/engine/engineering) +"aOM" = (/obj/machinery/particle_accelerator/control_box,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/engine/engineering) +"aON" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/plating,/area/engine/engineering) +"aOO" = (/obj/structure/particle_accelerator/particle_emitter/left{dir = 4},/turf/open/floor/plating,/area/engine/engineering) +"aOP" = (/turf/open/floor/plating/warnplate{dir = 4},/area/engine/engineering) +"aOQ" = (/obj/item/weapon/weldingtool,/turf/open/space,/area/space) +"aOR" = (/turf/open/floor/plating/airless/warnplate{dir = 10},/area/space) +"aOS" = (/obj/machinery/the_singularitygen/tesla,/turf/open/floor/plating/airless/warnplate{dir = 2},/area/space) +"aOT" = (/turf/open/floor/plating/airless/warnplate{dir = 6},/area/space) +"aOU" = (/obj/structure/window/reinforced,/obj/structure/lattice,/turf/open/space,/area/space) +"aOV" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/open/space,/area/space) +"aOW" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"aOX" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"aOY" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"aOZ" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"aPa" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/open/space,/area/space) +"aPb" = (/obj/docking_port/stationary/random{id = "pod_asteroid1"; name = "asteroid"},/turf/open/space,/area/space) +"aPc" = (/obj/machinery/door/airlock/shuttle{name = "Supply Shuttle Airlock"; req_access_txt = "31"},/turf/open/floor/plating,/area/shuttle/supply) +"aPd" = (/obj/machinery/door/airlock/external{name = "Supply Dock Airlock"; req_access_txt = "31"},/turf/open/floor/plating,/area/quartermaster/storage) +"aPe" = (/obj/machinery/light/small,/turf/open/floor/plating,/area/quartermaster/storage) +"aPf" = (/turf/open/floor/plasteel/delivery{name = "floor"},/area/quartermaster/storage) +"aPg" = (/turf/open/floor/plasteel,/area/quartermaster/storage) +"aPh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel,/area/quartermaster/storage) +"aPi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/landmark/start{name = "Cargo Technician"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/quartermaster/storage) +"aPj" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/loadingarea{dir = 8},/area/quartermaster/storage) +"aPk" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; dir = 8; freq = 1400; location = "QM #3"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/mob/living/simple_animal/bot/mulebot{home_destination = "QM #3"; suffix = "#3"},/turf/open/floor/plasteel/delivery,/area/quartermaster/storage) +"aPl" = (/obj/machinery/camera/autoname{dir = 4; network = list("SS13")},/obj/structure/rack,/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/turf/open/floor/plasteel/brown{dir = 8},/area/storage/primary) +"aPm" = (/turf/open/floor/plasteel,/area/storage/primary) +"aPn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel,/area/storage/primary) +"aPo" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/turf/open/floor/plasteel,/area/storage/primary) +"aPp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/storage/primary) +"aPq" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/brown{dir = 4},/area/storage/primary) +"aPr" = (/obj/structure/table,/obj/item/weapon/aiModule/core/full/asimov,/obj/item/weapon/aiModule/core/freeformcore,/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Core Modules"; req_access_txt = "20"},/obj/structure/window/reinforced,/obj/item/weapon/aiModule/core/full/corp,/obj/item/weapon/aiModule/core/full/custom,/obj/machinery/flasher{pixel_x = 0; pixel_y = 24; id = "AI"},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) +"aPs" = (/turf/open/floor/bluegrid,/area/ai_monitored/turret_protected/ai_upload) +"aPt" = (/obj/structure/table,/obj/machinery/door/window{base_state = "left"; dir = 8; icon_state = "left"; name = "High-Risk Modules"; req_access_txt = "20"},/obj/structure/window/reinforced,/obj/machinery/flasher{pixel_x = 0; pixel_y = 24; id = "AI"},/obj/item/weapon/aiModule/core/full/antimov,/obj/item/weapon/aiModule/supplied/oxygen,/obj/item/weapon/aiModule/supplied/protectStation,/obj/item/weapon/aiModule/zeroth/oneHuman,/obj/item/weapon/aiModule/reset/purge,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) +"aPu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -29},/turf/open/floor/plasteel/red/corner{dir = 8},/area/hallway/primary/fore) +"aPv" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/crew_quarters/courtroom) +"aPw" = (/obj/structure/chair{dir = 4; name = "Prosecution"},/turf/open/floor/plasteel/red/side{dir = 9},/area/crew_quarters/courtroom) +"aPx" = (/obj/structure/table/wood,/obj/item/weapon/folder/red,/turf/open/floor/plasteel/neutral/side{dir = 8},/area/crew_quarters/courtroom) +"aPy" = (/obj/machinery/holopad,/turf/open/floor/plasteel/bot,/area/crew_quarters/courtroom) +"aPz" = (/obj/structure/table/wood,/obj/item/weapon/folder/blue,/turf/open/floor/plasteel/neutral/side{dir = 4},/area/crew_quarters/courtroom) +"aPA" = (/obj/structure/chair{dir = 8; name = "Defense"},/turf/open/floor/plasteel/green/side{dir = 5},/area/crew_quarters/courtroom) +"aPB" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock{name = "Law Office"; req_access_txt = "38"},/turf/open/floor/wood,/area/crew_quarters/courtroom) +"aPC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/wood,/area/lawoffice) +"aPD" = (/obj/effect/landmark/start{name = "Lawyer"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/wood,/area/lawoffice) +"aPE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/wood,/area/lawoffice) +"aPF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/wood,/area/lawoffice) +"aPG" = (/obj/structure/filingcabinet/chestdrawer,/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/open/floor/wood,/area/lawoffice) +"aPH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/crew_quarters/locker) +"aPI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/crew_quarters/locker) +"aPJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/crew_quarters/locker) +"aPK" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/crew_quarters/locker) +"aPL" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/crew_quarters/locker) +"aPM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/crew_quarters/locker) +"aPN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/junction{dir = 4; icon_state = "pipe-j2"},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/crew_quarters/locker) +"aPO" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/obj/structure/disposalpipe/junction{icon_state = "pipe-j1"; dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/crew_quarters/locker) +"aPP" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aPQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=14.5-Recreation"; location = "14.3-Lockers-Dorms"},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/crew_quarters/locker) +"aPR" = (/obj/structure/grille,/obj/structure/window/reinforced/tinted/fulltile,/turf/open/floor/plating,/area/hallway/secondary/construction{name = "\improper Garden"}) +"aPS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/neutral/side{dir = 8},/area/hallway/secondary/construction{name = "\improper Garden"}) +"aPT" = (/obj/machinery/hydroponics/constructable,/turf/open/floor/plasteel/bot,/area/hallway/secondary/construction{name = "\improper Garden"}) +"aPU" = (/turf/open/floor/plasteel/neutral/side{dir = 4},/area/hallway/secondary/construction{name = "\improper Garden"}) +"aPV" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/mob/living/simple_animal/chicken{name = "Kentucky"; real_name = "Kentucky"},/turf/open/floor/grass,/area/hallway/secondary/construction{name = "\improper Garden"}) +"aPW" = (/obj/structure/window/reinforced,/turf/open/floor/grass,/area/hallway/secondary/construction{name = "\improper Garden"}) +"aPX" = (/obj/structure/rack,/obj/item/clothing/suit/hazardvest,/turf/open/floor/plating,/area/maintenance/starboard) +"aPY" = (/obj/machinery/power/emitter,/obj/machinery/light/small,/turf/open/floor/plating,/area/engine/engineering) +"aPZ" = (/obj/structure/closet/crate,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/rods{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/weapon/electronics/airlock,/obj/item/weapon/electronics/airlock,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/item/stack/sheet/mineral/plasma{amount = 30},/obj/item/device/gps,/turf/open/floor/plating,/area/engine/engineering) +"aQa" = (/obj/machinery/the_singularitygen{anchored = 0},/turf/open/floor/plating,/area/engine/engineering) +"aQb" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/engineering) +"aQc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/engine/engineering) +"aQd" = (/obj/structure/table,/obj/item/weapon/book/manual/wiki/engineering_guide{pixel_x = 3; pixel_y = 4},/obj/item/weapon/book/manual/engineering_particle_accelerator{pixel_x = -2; pixel_y = 3},/obj/machinery/button/door{id = "Singularity"; name = "Shutters Control"; pixel_x = 25; pixel_y = 0; req_access_txt = "11"},/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/engineering) +"aQe" = (/obj/machinery/button/door{id = "Singularity"; name = "Shutters Control"; pixel_x = -25; pixel_y = 0; req_access_txt = "11"},/turf/open/floor/plating/warnplate{dir = 10},/area/engine/engineering) +"aQf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating/warnplate{icon_plating = "warnplate"},/area/engine/engineering) +"aQg" = (/turf/open/floor/plating/warnplate{icon_plating = "warnplate"},/area/engine/engineering) +"aQh" = (/turf/open/floor/plating/warnplate{dir = 6},/area/engine/engineering) +"aQi" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/lattice,/turf/open/space,/area/space) +"aQj" = (/obj/structure/window/reinforced{dir = 1; layer = 2.9},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"aQk" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1; layer = 2.9},/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"aQl" = (/obj/structure/window/reinforced,/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"aQm" = (/obj/structure/window/reinforced,/obj/machinery/light/small,/obj/machinery/camera{c_tag = "MiniSat Exterior - Fore"; dir = 1; network = list("MiniSat")},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"aQn" = (/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/obj/structure/window/reinforced,/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"aQo" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"aQp" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/turf/open/space,/area/space) +"aQq" = (/turf/closed/wall/mineral/titanium,/area/shuttle/pod_1) +"aQr" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/pod_1) +"aQs" = (/obj/machinery/button/door{dir = 2; id = "QMLoaddoor2"; name = "Loading Doors"; pixel_x = 24; pixel_y = 8},/obj/machinery/button/door{id = "QMLoaddoor"; name = "Loading Doors"; pixel_x = 24; pixel_y = -8},/turf/open/floor/mineral/titanium/blue,/area/shuttle/supply) +"aQt" = (/obj/machinery/button/door{id = "QMLoaddoor"; layer = 4; name = "Loading Doors"; pixel_x = -27; pixel_y = -5},/obj/machinery/button/door{dir = 2; id = "QMLoaddoor2"; layer = 4; name = "Loading Doors"; pixel_x = -27; pixel_y = 5},/obj/machinery/computer/cargo,/turf/open/floor/plasteel/bot,/area/quartermaster/storage) +"aQu" = (/obj/effect/landmark/start{name = "Cargo Technician"},/turf/open/floor/plasteel,/area/quartermaster/storage) +"aQv" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel/delivery{name = "floor"},/area/quartermaster/storage) +"aQw" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/bot,/area/quartermaster/storage) +"aQx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel/bot,/area/quartermaster/storage) +"aQy" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/bot,/area/quartermaster/storage) +"aQz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/warning/corner{dir = 2},/area/quartermaster/storage) +"aQA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/window/reinforced,/turf/open/floor/plasteel/loadingarea{dir = 8},/area/quartermaster/storage) +"aQB" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; dir = 8; freq = 1400; location = "QM #4"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/window/southleft,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/delivery,/area/quartermaster/storage) +"aQC" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/quartermaster/qm) +"aQD" = (/obj/structure/closet/secure_closet/quartermaster,/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/brown{dir = 9},/area/quartermaster/qm) +"aQE" = (/obj/machinery/camera/autoname{dir = 2; network = list("SS13")},/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/machinery/power/apc{dir = 1; name = "Quartermaster's Office APC"; pixel_x = 0; pixel_y = 30},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/open/floor/plasteel/brown{dir = 1},/area/quartermaster/qm) +"aQF" = (/obj/structure/filingcabinet/chestdrawer,/obj/machinery/airalarm{pixel_y = 23},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/brown{dir = 1},/area/quartermaster/qm) +"aQG" = (/obj/structure/table,/obj/machinery/computer/stockexchange,/turf/open/floor/plasteel/brown{dir = 1},/area/quartermaster/qm) +"aQH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"aQI" = (/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/obj/structure/closet/crate/internals,/turf/open/floor/plasteel/delivery,/area/storage/primary) +"aQJ" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel,/area/storage/primary) +"aQK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/storage/primary) +"aQL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/storage/primary) +"aQM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel,/area/storage/primary) +"aQN" = (/obj/structure/table,/obj/item/device/assembly/igniter{pixel_x = -4; pixel_y = -4},/obj/item/device/assembly/igniter,/obj/item/weapon/screwdriver{pixel_y = 16},/turf/open/floor/plasteel/brown{dir = 4},/area/storage/primary) +"aQO" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/open/floor/plating,/area/ai_monitored/turret_protected/ai_upload) +"aQP" = (/obj/machinery/porta_turret/ai{dir = 4},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) +"aQQ" = (/obj/machinery/computer/upload/borg,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/window/westleft{base_state = "left"; dir = 2; icon_state = "left"; layer = 3.1; name = "Cyborg Upload Console Window"; req_access_txt = "16"},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) +"aQR" = (/obj/machinery/holopad,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) +"aQS" = (/obj/machinery/computer/upload/ai,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/window/westleft{base_state = "right"; dir = 2; icon_state = "right"; layer = 3.1; name = "Upload Console Window"; req_access_txt = "16"},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) +"aQT" = (/obj/machinery/porta_turret/ai{dir = 8},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) +"aQU" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/crew_quarters/courtroom) +"aQV" = (/obj/structure/chair{dir = 4; name = "Prosecution"},/turf/open/floor/plasteel/red/side{dir = 10},/area/crew_quarters/courtroom) +"aQW" = (/obj/structure/table/wood,/obj/item/weapon/paper,/turf/open/floor/plasteel/neutral/side{dir = 10},/area/crew_quarters/courtroom) +"aQX" = (/turf/open/floor/plasteel/neutral/side,/area/crew_quarters/courtroom) +"aQY" = (/obj/item/device/radio/beacon,/turf/open/floor/plasteel/neutral/side,/area/crew_quarters/courtroom) +"aQZ" = (/obj/structure/table/wood,/turf/open/floor/plasteel/neutral/side{dir = 6},/area/crew_quarters/courtroom) +"aRa" = (/obj/structure/chair{dir = 8; name = "Defense"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel/green/side{dir = 6},/area/crew_quarters/courtroom) +"aRb" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/plasteel,/area/crew_quarters/courtroom) +"aRc" = (/obj/item/device/taperecorder{pixel_y = 0},/obj/item/weapon/cartridge/lawyer,/obj/structure/table/wood,/obj/machinery/button/door{id = "lawyer_shutters"; name = "law office shutters control"; pixel_x = 0; pixel_y = -26; req_access_txt = "38"},/turf/open/floor/wood,/area/lawoffice) +"aRd" = (/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/table/wood,/turf/open/floor/wood,/area/lawoffice) +"aRe" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/wood,/area/lawoffice) +"aRf" = (/obj/machinery/holopad,/turf/open/floor/wood,/area/lawoffice) +"aRg" = (/obj/structure/closet/lawcloset,/obj/machinery/light_switch{pixel_x = 0; pixel_y = -28},/turf/open/floor/wood,/area/lawoffice) +"aRh" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/structure/table,/obj/item/weapon/folder,/obj/item/weapon/storage/firstaid/regular,/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/crew_quarters/locker) +"aRi" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aRj" = (/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aRk" = (/turf/open/floor/plasteel/floorgrime,/area/crew_quarters/locker) +"aRl" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aRm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aRn" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aRo" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/landmark{name = "lightsout"},/turf/open/floor/plasteel/floorgrime,/area/crew_quarters/locker) +"aRp" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aRq" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aRr" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aRs" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aRt" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aRu" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/crew_quarters/locker) +"aRv" = (/obj/machinery/door/firedoor,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock{name = "Garden"; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/construction{name = "\improper Garden"}) +"aRw" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/neutral/side{dir = 8},/area/hallway/secondary/construction{name = "\improper Garden"}) +"aRx" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/hallway/secondary/construction{name = "\improper Garden"}) +"aRy" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/holopad,/turf/open/floor/plasteel,/area/hallway/secondary/construction{name = "\improper Garden"}) +"aRz" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/construction{name = "\improper Garden"}) +"aRA" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/neutral/side{dir = 4},/area/hallway/secondary/construction{name = "\improper Garden"}) +"aRB" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/warning{dir = 8},/area/hallway/secondary/construction{name = "\improper Garden"}) +"aRC" = (/obj/machinery/power/apc{dir = 4; name = "Garden APC"; pixel_x = 27; pixel_y = 2},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/disposal/bin,/obj/machinery/camera{c_tag = "Garden"; dir = 8; network = list("SS13")},/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/plasteel/neutral/side{dir = 4},/area/hallway/secondary/construction{name = "\improper Garden"}) +"aRD" = (/obj/machinery/power/apc{cell_type = 10000; dir = 8; name = "Engine Room APC"; pixel_x = -26; pixel_y = 0},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/open/floor/plasteel/warning{dir = 8},/area/engine/engineering) +"aRE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/engine/engineering) +"aRF" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/warning{dir = 4},/area/engine/engineering) +"aRG" = (/obj/structure/table,/obj/item/weapon/book/manual/wiki/engineering_hacking{pixel_x = 4; pixel_y = 5},/obj/item/weapon/book/manual/wiki/engineering_construction{pixel_x = 0; pixel_y = 3},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/item/weapon/book/manual/engineering_singularity_safety{pixel_x = -4},/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/engineering) +"aRH" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"aRI" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/turf/open/space,/area/space) +"aRJ" = (/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/turf/open/space,/area/space) +"aRK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/lattice/catwalk,/turf/open/space,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"aRL" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/turf/open/space,/area/space) +"aRM" = (/obj/structure/chair{dir = 1},/obj/machinery/status_display{density = 0; layer = 3; pixel_x = 32; pixel_y = 0},/obj/machinery/computer/shuttle/pod{pixel_x = -32; possible_destinations = "pod_asteroid1"; shuttleId = "pod1"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/pod_1) +"aRN" = (/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plating/warnplate{dir = 10},/area/shuttle/auxillary_base) +"aRO" = (/turf/open/floor/plating/warnplate,/area/shuttle/auxillary_base) +"aRP" = (/obj/structure/closet/secure_closet/miner{locked = 0},/turf/open/floor/plating/warnplate{dir = 6},/area/shuttle/auxillary_base) +"aRQ" = (/obj/structure/closet,/obj/item/weapon/poster/contraband,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"aRR" = (/obj/machinery/door/airlock/shuttle{name = "Supply Shuttle Airlock"; req_access_txt = "31"},/obj/docking_port/mobile/supply{dwidth = 5; roundstart_move = "supply_away"; width = 12},/obj/docking_port/stationary{dir = 8; dwidth = 5; height = 7; id = "supply_home"; name = "Cargo Bay"; width = 12},/turf/open/floor/plating,/area/shuttle/supply) +"aRS" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/quartermaster/storage) +"aRT" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 1},/area/quartermaster/storage) +"aRU" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 5},/area/quartermaster/storage) +"aRV" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_mining{name = "Quartermaster"; req_access_txt = "41"},/turf/open/floor/plasteel,/area/quartermaster/qm) +"aRW" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/brown{dir = 8},/area/quartermaster/qm) +"aRX" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/quartermaster/qm) +"aRY" = (/obj/effect/landmark/start{name = "Quartermaster"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/chair/office/dark{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/qm) +"aRZ" = (/obj/structure/table,/obj/item/weapon/folder/yellow,/obj/item/weapon/pen{pixel_x = 4; pixel_y = 4},/obj/item/weapon/pen/red,/obj/machinery/requests_console{department = "Cargo Bay"; departmentType = 2; pixel_x = 32; pixel_y = 0},/turf/open/floor/plasteel,/area/quartermaster/qm) +"aSa" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"aSb" = (/obj/structure/plasticflaps{opacity = 1},/obj/machinery/navbeacon{codes_txt = "delivery;dir=4"; dir = 4; freq = 1400; location = "Tool Storage"},/turf/open/floor/plasteel/delivery,/area/storage/primary) +"aSc" = (/turf/open/floor/plasteel/delivery,/area/storage/primary) +"aSd" = (/obj/structure/table,/obj/item/weapon/weldingtool,/obj/item/weapon/crowbar,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/brown/corner{dir = 2},/area/storage/primary) +"aSe" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/turf/open/floor/plasteel/brown/corner{dir = 8},/area/storage/primary) +"aSf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/storage/primary) +"aSg" = (/obj/structure/table,/obj/item/weapon/wirecutters,/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/machinery/requests_console{department = "Tool Storage"; departmentType = 0; pixel_x = 30; pixel_y = 0},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/camera{c_tag = "Tool Storage"; dir = 8; network = list("SS13")},/turf/open/floor/plasteel/brown{dir = 4},/area/storage/primary) +"aSh" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/structure/cable/yellow,/turf/open/floor/plating,/area/ai_monitored/turret_protected/ai_upload) +"aSi" = (/obj/structure/table,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/item/weapon/aiModule/supplied/quarantine,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) +"aSj" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/bluegrid,/area/ai_monitored/turret_protected/ai_upload) +"aSk" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) +"aSl" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/ai_slipper{icon_state = "motion0"; uses = 8},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) +"aSm" = (/obj/structure/table,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/item/weapon/aiModule/supplied/freeform,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) +"aSn" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow,/turf/open/floor/plating,/area/ai_monitored/turret_protected/ai_upload) +"aSo" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=0-SecurityDesk"; location = "16-Fore"},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"aSp" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/camera{c_tag = "Fore Primary Hallway Aft"; dir = 8; network = list("SS13")},/turf/open/floor/plasteel/red/corner{dir = 2},/area/hallway/primary/fore) +"aSq" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/courtroom) +"aSr" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Courtroom"; req_access_txt = "42"},/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) +"aSs" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plating,/area/crew_quarters/courtroom) +"aSt" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/poddoor/shutters/preopen{id = "lawyer_shutters"; name = "law office shutters"},/turf/open/floor/plating,/area/lawoffice) +"aSu" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock{name = "Law Office"; req_access_txt = "38"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/lawoffice) +"aSv" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/shutters/preopen{id = "lawyer_shutters"; name = "law office shutters"},/turf/open/floor/plating,/area/lawoffice) +"aSw" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/machinery/light/small{dir = 8},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/crew_quarters/locker) +"aSx" = (/obj/structure/table,/obj/item/weapon/storage/pill_bottle/dice,/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aSy" = (/obj/structure/chair/stool{pixel_y = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aSz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/floorgrime,/area/crew_quarters/locker) +"aSA" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aSB" = (/obj/structure/rack,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = 4; pixel_y = -4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/crew_quarters/locker) +"aSC" = (/obj/structure/grille,/obj/structure/window/reinforced/tinted/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/hallway/secondary/construction{name = "\improper Garden"}) +"aSD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/neutral/side{dir = 8},/area/hallway/secondary/construction{name = "\improper Garden"}) +"aSE" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/hydroponics/constructable,/turf/open/floor/plasteel/bot,/area/hallway/secondary/construction{name = "\improper Garden"}) +"aSF" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/grass,/area/hallway/secondary/construction{name = "\improper Garden"}) +"aSG" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/grass,/area/hallway/secondary/construction{name = "\improper Garden"}) +"aSH" = (/obj/structure/rack,/obj/item/clothing/gloves/color/fyellow,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/starboard) +"aSI" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/starboard) +"aSJ" = (/obj/machinery/computer/atmos_alert,/obj/structure/sign/map/left{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-left-MS"; pixel_y = 32},/obj/machinery/firealarm{dir = 8; pixel_x = -26; pixel_y = 0},/turf/open/floor/plasteel/vault,/area/engine/engineering) +"aSK" = (/obj/machinery/computer/station_alert,/obj/structure/sign/map/right{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-right-MS"; pixel_y = 32},/turf/open/floor/plasteel/vault,/area/engine/engineering) +"aSL" = (/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/computer/monitor{name = "Engineering Power Monitoring Console"},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/camera{c_tag = "Engineering - Power Monitoring"; dir = 2; network = list("SS13")},/turf/open/floor/plasteel/vault,/area/engine/engineering) +"aSM" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/engine/engineering) +"aSN" = (/obj/machinery/vending/engivend,/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/engineering) +"aSO" = (/obj/machinery/vending/tool,/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/engineering) +"aSP" = (/obj/structure/closet/secure_closet/engineering_welding,/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/engineering) +"aSQ" = (/obj/structure/closet/radiation,/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/engineering) +"aSR" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/gloves/color/black,/obj/item/weapon/extinguisher{pixel_x = 8},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 21},/obj/item/clothing/glasses/meson,/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/engineering) +"aSS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/bot{dir = 1},/area/engine/engineering) +"aST" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/crowbar,/obj/item/stack/cable_coil,/obj/item/weapon/screwdriver,/obj/item/weapon/weldingtool,/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/engineering) +"aSU" = (/obj/structure/chair{dir = 1},/obj/item/device/radio/intercom{pixel_x = 25},/obj/item/weapon/storage/pod{pixel_x = -26},/turf/open/floor/mineral/titanium/blue,/area/shuttle/pod_1) +"aSV" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/mining_construction) +"aSW" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 1; name = "Construction Zone"; req_access = null; req_access_txt = "0"; req_one_access_txt = "0"},/turf/open/floor/plating,/area/mining_construction) +"aSX" = (/obj/machinery/door/poddoor{id = "QMLoaddoor"; name = "supply dock loading door"},/obj/machinery/conveyor{dir = 8; id = "QMLoad"},/turf/open/floor/plating,/area/shuttle/supply) +"aSY" = (/obj/machinery/door/poddoor{density = 1; icon_state = "closed"; id = "QMLoaddoor"; name = "Supply Dock Loading Door"; opacity = 1},/obj/machinery/conveyor{dir = 8; id = "QMLoad"},/turf/open/floor/plating,/area/quartermaster/storage) +"aSZ" = (/obj/structure/plasticflaps,/obj/machinery/conveyor{dir = 8; id = "QMLoad"},/turf/open/floor/plating,/area/quartermaster/storage) +"aTa" = (/obj/machinery/conveyor{dir = 8; id = "QMLoad"},/turf/open/floor/plating,/area/quartermaster/storage) +"aTb" = (/obj/effect/landmark/start{name = "Cargo Technician"},/turf/open/floor/plasteel/delivery{name = "floor"},/area/quartermaster/storage) +"aTc" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plasteel/bot,/area/quartermaster/storage) +"aTd" = (/turf/open/floor/plasteel/bot,/area/quartermaster/storage) +"aTe" = (/obj/structure/disposalpipe/segment,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel/bot,/area/quartermaster/storage) +"aTf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/quartermaster/storage) +"aTg" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/table,/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/camera{c_tag = "Cargo Bay - Starboard"; dir = 8; network = list("SS13")},/obj/item/weapon/paper_bin{pixel_x = -1; pixel_y = 6},/turf/open/floor/plasteel/warning{dir = 4},/area/quartermaster/storage) +"aTh" = (/turf/closed/wall,/area/quartermaster/qm) +"aTi" = (/obj/machinery/computer/security/mining{network = list("MINE","AuxBase")},/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/turf/open/floor/plasteel/brown{dir = 8},/area/quartermaster/qm) +"aTj" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/quartermaster/qm) +"aTk" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/quartermaster/qm) +"aTl" = (/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/stamp/qm{pixel_x = 0; pixel_y = 0},/obj/machinery/status_display{density = 0; pixel_x = 32; pixel_y = 0; supply_display = 1},/obj/item/weapon/cartridge/quartermaster{pixel_x = 6; pixel_y = 5},/obj/item/weapon/cartridge/quartermaster,/obj/item/weapon/cartridge/quartermaster{pixel_x = -4; pixel_y = 7},/obj/item/device/gps{gpstag = "QM0"},/turf/open/floor/plasteel,/area/quartermaster/qm) +"aTm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/mob/living/simple_animal/mouse,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"aTn" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/delivery,/area/storage/primary) +"aTo" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/brown/corner{dir = 4},/area/storage/primary) +"aTp" = (/obj/structure/table,/obj/item/weapon/folder/yellow,/obj/item/weapon/folder/yellow,/obj/item/weapon/storage/firstaid/regular,/turf/open/floor/plasteel/brown/corner{dir = 1},/area/storage/primary) +"aTq" = (/obj/machinery/holopad,/turf/open/floor/plasteel,/area/storage/primary) +"aTr" = (/obj/structure/table,/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/obj/item/clothing/gloves/color/yellow,/obj/item/device/t_scanner,/turf/open/floor/plasteel/brown{dir = 4},/area/storage/primary) +"aTs" = (/obj/structure/table,/obj/item/weapon/aiModule/reset,/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/ai_status_display{pixel_x = -32; pixel_y = 0},/obj/machinery/flasher{id = "AI"; pixel_x = 0; pixel_y = -24},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) +"aTt" = (/obj/machinery/power/apc{cell_type = 5000; dir = 2; name = "Upload APC"; pixel_y = -24},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/camera/motion{c_tag = "AI Upload Chamber - Port"; dir = 1; network = list("SS13","RD","AIUpload")},/turf/open/floor/bluegrid,/area/ai_monitored/turret_protected/ai_upload) +"aTu" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) +"aTv" = (/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1447; name = "Private AI Channel"; pixel_y = -25},/obj/machinery/camera/motion{c_tag = "AI Upload Chamber - Starboard"; dir = 1; network = list("SS13","RD","AIUpload")},/turf/open/floor/bluegrid,/area/ai_monitored/turret_protected/ai_upload) +"aTw" = (/obj/structure/table,/obj/machinery/light{dir = 4},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/obj/machinery/flasher{id = "AI"; pixel_x = 0; pixel_y = -24},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) +"aTx" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel/red/corner{dir = 8},/area/hallway/primary/fore) +"aTy" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/window/reinforced/tinted/fulltile,/turf/open/floor/plating,/area/crew_quarters/courtroom) +"aTz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/machinery/vending/cigarette,/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) +"aTA" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) +"aTB" = (/obj/structure/chair{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) +"aTC" = (/obj/machinery/vending/coffee,/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) +"aTD" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-03"; layer = 4.1},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/crew_quarters/locker) +"aTE" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/crew_quarters/locker) +"aTF" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/crew_quarters/locker) +"aTG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/crew_quarters/locker) +"aTH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/camera{c_tag = "Crew Quarters Entrance"; dir = 2; network = list("SS13")},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/crew_quarters/locker) +"aTI" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock{name = "Locker Room"; req_access_txt = "0"},/turf/open/floor/plasteel/floorgrime,/area/crew_quarters/locker) +"aTJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aTK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aTL" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/structure/chair/stool{pixel_y = 8},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aTM" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/open/floor/plasteel/floorgrime,/area/crew_quarters/locker) +"aTN" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aTO" = (/obj/structure/chair/stool{pixel_y = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aTP" = (/obj/structure/table,/obj/item/clothing/head/soft/grey{pixel_x = -2; pixel_y = 3},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aTQ" = (/obj/structure/table,/obj/item/weapon/razor{pixel_y = 5},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aTR" = (/obj/structure/table,/obj/item/device/paicard,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aTS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aTT" = (/obj/structure/rack,/obj/effect/landmark/costume,/obj/effect/landmark/costume,/obj/item/clothing/mask/balaclava,/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/crew_quarters/locker) +"aTU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/open/floor/plasteel/neutral/side{dir = 10},/area/hallway/secondary/construction{name = "\improper Garden"}) +"aTV" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/neutral/side,/area/hallway/secondary/construction{name = "\improper Garden"}) +"aTW" = (/turf/open/floor/plasteel/neutral/side,/area/hallway/secondary/construction{name = "\improper Garden"}) +"aTX" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/neutral/side,/area/hallway/secondary/construction{name = "\improper Garden"}) +"aTY" = (/turf/open/floor/plasteel/neutral/side{dir = 6},/area/hallway/secondary/construction{name = "\improper Garden"}) +"aTZ" = (/obj/machinery/door/firedoor/border_only{density = 1; dir = 8; icon_state = "door_closed"; name = "Animal Pen B"; opacity = 1},/turf/open/floor/grass,/area/hallway/secondary/construction{name = "\improper Garden"}) +"aUa" = (/mob/living/simple_animal/cow{name = "Betsy"; real_name = "Betsy"},/turf/open/floor/grass,/area/hallway/secondary/construction{name = "\improper Garden"}) +"aUb" = (/obj/machinery/light/small{dir = 8},/obj/structure/easel,/turf/open/floor/plating,/area/maintenance/starboard) +"aUc" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/weapon/cigbutt,/turf/open/floor/plating,/area/maintenance/starboard) +"aUd" = (/obj/effect/landmark/start{name = "Station Engineer"},/obj/machinery/light{dir = 8},/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_x = -31},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/warning{dir = 9},/area/engine/engineering) +"aUe" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/warning{dir = 1},/area/engine/engineering) +"aUf" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel/warning{dir = 5},/area/engine/engineering) +"aUg" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating,/area/engine/engineering) +"aUh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/warning{dir = 9},/area/engine/engineering) +"aUi" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel/warning{dir = 1},/area/engine/engineering) +"aUj" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/warning/corner{dir = 4},/area/engine/engineering) +"aUk" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/landmark/start{name = "Station Engineer"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/engine/engineering) +"aUl" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/obj/structure/disposalpipe/sortjunction{sortType = 5},/turf/open/floor/plasteel/warning/corner{dir = 8},/area/engine/engineering) +"aUm" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/warning{dir = 1},/area/engine/engineering) +"aUn" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 1},/area/engine/engineering) +"aUo" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/warning{dir = 1},/area/engine/engineering) +"aUp" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/warning{dir = 5},/area/engine/engineering) +"aUq" = (/obj/machinery/power/rad_collector{anchored = 1},/obj/item/weapon/tank/internals/plasma,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating/warnplate{dir = 8},/area/engine/engineering) +"aUr" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/tesla_coil,/turf/open/floor/plating/airless,/area/space) +"aUs" = (/turf/closed/wall/r_wall,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"aUt" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall/r_wall,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"aUu" = (/turf/closed/wall,/area/hallway/secondary/entry{name = "Arrivals"}) +"aUv" = (/obj/structure/shuttle/engine/propulsion/burst,/turf/closed/wall/mineral/titanium,/area/shuttle/pod_1) +"aUw" = (/obj/machinery/door/airlock/shuttle{name = "Escape Pod Airlock"},/obj/docking_port/mobile/pod{id = "pod1"; name = "escape pod 1"; port_angle = 180},/turf/open/floor/mineral/titanium/blue,/area/shuttle/pod_1) +"aUx" = (/obj/structure/closet/toolcloset,/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/yellow/side{dir = 9},/area/mining_construction) +"aUy" = (/turf/open/floor/plasteel/yellow/side{dir = 1},/area/mining_construction) +"aUz" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/mining_construction) +"aUA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/mining_construction) +"aUB" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/mining_construction) +"aUC" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/open/floor/plasteel/yellow/side{dir = 5},/area/mining_construction) +"aUD" = (/obj/effect/landmark{name = "revenantspawn"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"aUE" = (/obj/machinery/conveyor{dir = 1; id = "QMLoad"; movedir = 2},/turf/open/floor/plating,/area/quartermaster/storage) +"aUF" = (/obj/structure/disposalpipe/segment,/obj/structure/chair/office/dark{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/storage) +"aUG" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/obj/structure/table,/obj/item/weapon/folder/yellow,/obj/item/weapon/folder/yellow,/obj/item/weapon/paper,/obj/item/weapon/paper,/turf/open/floor/plasteel/warning{dir = 4},/area/quartermaster/storage) +"aUH" = (/obj/machinery/computer/cargo,/turf/open/floor/plasteel/brown{dir = 10},/area/quartermaster/qm) +"aUI" = (/obj/structure/chair/office/dark{dir = 8},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = -28},/turf/open/floor/plasteel/brown{dir = 2},/area/quartermaster/qm) +"aUJ" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 1},/turf/open/floor/plasteel/brown{dir = 2},/area/quartermaster/qm) +"aUK" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/turf/open/floor/plasteel/brown{dir = 2},/area/quartermaster/qm) +"aUL" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1; pixel_y = 2},/obj/machinery/disposal/deliveryChute{dir = 4; name = "Crate Disposal Chute"; pixel_x = -5; pixel_y = 2},/obj/machinery/door/window/westleft{base_state = "right"; dir = 4; icon_state = "right"; name = "Crate Disposal Chute"; req_access_txt = "0"},/obj/structure/disposalpipe/trunk{dir = 4},/turf/open/floor/plasteel/delivery,/area/storage/primary) +"aUM" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/storage/primary) +"aUN" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j1"; dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/storage/primary) +"aUO" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/storage/primary) +"aUP" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/brown{dir = 4},/area/storage/primary) +"aUQ" = (/obj/machinery/flasher{id = "AI"; pixel_x = 0; pixel_y = -24},/obj/machinery/porta_turret/ai{dir = 1},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) +"aUR" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) +"aUS" = (/obj/machinery/porta_turret/ai{dir = 1},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) +"aUT" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"aUU" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/centcom{name = "Courtroom"; opacity = 1},/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) +"aUV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) +"aUW" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=16-Fore"; location = "15-Court"},/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) +"aUX" = (/obj/structure/chair{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) +"aUY" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aUZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/crew_quarters/locker) +"aVa" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aVb" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/crew_quarters/locker) +"aVc" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aVd" = (/obj/machinery/holopad,/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aVe" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/floorgrime,/area/crew_quarters/locker) +"aVf" = (/obj/structure/rack,/obj/item/weapon/storage/briefcase,/obj/item/weapon/storage/briefcase{pixel_x = 4; pixel_y = -2},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/crew_quarters/locker) +"aVg" = (/obj/structure/table,/obj/item/weapon/cultivator,/obj/item/weapon/hatchet,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/item/weapon/paper/hydroponics,/obj/item/weapon/coin/silver,/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/secondary/construction{name = "\improper Garden"}) +"aVh" = (/obj/structure/table,/obj/item/weapon/hatchet,/obj/item/weapon/cultivator,/obj/item/weapon/crowbar,/obj/item/weapon/reagent_containers/glass/bucket,/obj/item/device/plant_analyzer,/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/secondary/construction{name = "\improper Garden"}) +"aVi" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/snacks/grown/wheat,/obj/item/weapon/reagent_containers/food/snacks/grown/watermelon,/obj/item/weapon/reagent_containers/food/snacks/grown/citrus/orange,/obj/item/weapon/reagent_containers/food/snacks/grown/grapes,/obj/item/weapon/reagent_containers/food/snacks/grown/cocoapod,/obj/item/weapon/reagent_containers/food/snacks/grown/apple,/obj/item/weapon/reagent_containers/food/snacks/grown/chili,/obj/item/weapon/reagent_containers/food/snacks/grown/cherries,/obj/item/weapon/reagent_containers/food/snacks/grown/soybeans,/obj/item/weapon/reagent_containers/food/snacks/grown/citrus/lime,/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/secondary/construction{name = "\improper Garden"}) +"aVj" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/secondary/construction{name = "\improper Garden"}) +"aVk" = (/obj/item/weapon/storage/bag/plants/portaseeder,/obj/structure/table,/obj/machinery/light,/obj/item/device/plant_analyzer,/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/secondary/construction{name = "\improper Garden"}) +"aVl" = (/obj/item/weapon/book/manual/wiki/engineering_hacking{pixel_x = 4; pixel_y = 5},/obj/item/weapon/book/manual/wiki/engineering_construction{pixel_x = 0; pixel_y = 3},/obj/structure/closet/crate,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/starboard) +"aVm" = (/obj/machinery/power/terminal,/obj/structure/cable,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/open/floor/plasteel/warning{dir = 10},/area/engine/engineering) +"aVn" = (/obj/machinery/power/terminal,/obj/structure/cable,/turf/open/floor/plasteel/warning{dir = 2},/area/engine/engineering) +"aVo" = (/obj/machinery/power/terminal,/obj/structure/cable,/turf/open/floor/plasteel/warning{dir = 6},/area/engine/engineering) +"aVp" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/airlock/glass_engineering{name = "Power Monitoring"; req_access_txt = "32"},/turf/open/floor/plasteel/bot{dir = 1},/area/engine/engineering) +"aVq" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/warning{dir = 8},/area/engine/engineering) +"aVr" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel,/area/engine/engineering) +"aVs" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) +"aVt" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel,/area/engine/engineering) +"aVu" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/engine/engineering) +"aVv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/engine/engineering) +"aVw" = (/turf/open/floor/plasteel,/area/engine/engineering) +"aVx" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/engine/engineering) +"aVy" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/warning{dir = 4},/area/engine/engineering) +"aVz" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/turf/open/floor/plating/airless,/area/space) +"aVA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{icon_state = "1-8"},/turf/open/floor/plating/airless,/area/space) +"aVB" = (/obj/structure/cable{icon_state = "1-8"},/turf/open/floor/plating/airless,/area/space) +"aVC" = (/obj/structure/lattice,/obj/machinery/camera/emp_proof{c_tag = "Aft Arm - Far"; dir = 8; network = list("Singulo")},/turf/open/space,/area/space) +"aVD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/closed/wall/r_wall,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"aVE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/closed/wall/r_wall,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"aVF" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/open/space,/area/space) +"aVG" = (/obj/structure/chair{dir = 4},/obj/machinery/light/small{dir = 8},/turf/open/floor/plating{icon_state = "platingdmg1"},/area/hallway/secondary/entry{name = "Arrivals"}) +"aVH" = (/turf/open/floor/plating/warnplate{dir = 1},/area/hallway/secondary/entry{name = "Arrivals"}) +"aVI" = (/obj/structure/closet/emcloset,/turf/open/floor/plating,/area/hallway/secondary/entry{name = "Arrivals"}) +"aVJ" = (/obj/structure/closet/toolcloset,/turf/open/floor/plasteel/yellow/side{dir = 10},/area/mining_construction) +"aVK" = (/turf/open/floor/plasteel/yellow/side,/area/mining_construction) +"aVL" = (/obj/machinery/camera{c_tag = "Auxillary Base Construction"; dir = 1},/obj/machinery/button/door{id = "aux_base_shutters"; name = "Public Shutters Control"; pixel_x = 0; pixel_y = -24; req_access_txt = "0"; req_one_access_txt = "32;47;48"},/turf/open/floor/plasteel/yellow/side,/area/mining_construction) +"aVM" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/yellow/side,/area/mining_construction) +"aVN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{icon_state = "4-8"; d1 = 4; d2 = 8},/obj/structure/mining_shuttle_beacon{dir = 2},/obj/machinery/computer/security/telescreen{desc = "Used for the Auxillary Mining Base."; dir = 1; name = "Auxillary Base Monitor"; network = list("AuxBase"); pixel_x = 0; pixel_y = -28},/turf/open/floor/plasteel/yellow/side,/area/mining_construction) +"aVO" = (/obj/structure/rack{dir = 4},/obj/item/weapon/electronics/airlock,/obj/item/weapon/electronics/airlock,/obj/item/weapon/electronics/airlock,/obj/item/weapon/electronics/airlock,/obj/item/stack/cable_coil,/obj/item/stack/cable_coil,/obj/item/wallframe/camera,/obj/item/wallframe/camera,/obj/item/wallframe/camera,/obj/item/wallframe/camera,/obj/item/device/assault_pod/mining,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 2; name = "Auxillary Base Construction APC"; pixel_x = 0; pixel_y = -24},/turf/open/floor/plasteel/yellow/side,/area/mining_construction) +"aVP" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/weapon/pipe_dispenser,/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/open/floor/plasteel/yellow/side,/area/mining_construction) +"aVQ" = (/obj/structure/table,/obj/item/stack/sheet/plasteel{amount = 10},/obj/item/stack/rods{amount = 50},/obj/item/weapon/storage/box/lights/mixed,/turf/open/floor/plasteel/yellow/side{dir = 6},/area/mining_construction) +"aVR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/warnplate{dir = 2},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"aVS" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"aVT" = (/turf/open/floor/mineral/titanium/blue,/turf/closed/wall/mineral/titanium/interior,/area/shuttle/supply) +"aVU" = (/obj/machinery/conveyor_switch/oneway{convdir = 1; id = "QMLoad"; pixel_x = 6},/turf/open/floor/plasteel/warning{dir = 8},/area/quartermaster/storage) +"aVV" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel/bot,/area/quartermaster/storage) +"aVW" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel/bot,/area/quartermaster/storage) +"aVX" = (/obj/structure/closet/crate,/obj/structure/disposalpipe/segment,/obj/effect/spawner/lootdrop/maintenance{lootcount = 3; name = "3maintenance loot spawner"},/turf/open/floor/plasteel/bot,/area/quartermaster/storage) +"aVY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/quartermaster/storage) +"aVZ" = (/obj/structure/disposalpipe/segment,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/storage) +"aWa" = (/obj/machinery/light{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/obj/machinery/status_display{density = 0; pixel_x = 32; pixel_y = 0; supply_display = 1},/turf/open/floor/plasteel/warning{dir = 4},/area/quartermaster/storage) +"aWb" = (/turf/closed/wall,/area/security/checkpoint/supply{name = "Security Post - Cargo"}) +"aWc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"aWd" = (/obj/machinery/door/airlock/maintenance{name = "Tool Storage Maintenance"; req_access_txt = "12"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"aWe" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/brown{dir = 8},/area/storage/primary) +"aWf" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/storage/primary) +"aWg" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/storage/primary) +"aWh" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/storage/primary) +"aWi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/storage/primary) +"aWj" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/storage/primary) +"aWk" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/brown{dir = 4},/area/storage/primary) +"aWl" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/storage/primary) +"aWm" = (/obj/machinery/door/airlock/highsecurity{icon_state = "door_closed"; locked = 0; name = "AI Upload"; req_access_txt = "16"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) +"aWn" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"aWo" = (/obj/structure/grille,/obj/structure/window/reinforced/tinted/fulltile,/turf/open/floor/plating,/area/crew_quarters/courtroom) +"aWp" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) +"aWq" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -26},/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) +"aWr" = (/obj/machinery/newscaster{pixel_x = 0; pixel_y = -32},/obj/machinery/light,/obj/machinery/camera{c_tag = "Courtroom - Gallery"; dir = 1; network = list("SS13")},/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) +"aWs" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) +"aWt" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) +"aWu" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aWv" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aWw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=14.3-Lockers-Dorms"; location = "14.2-Central-CrewQuarters"},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/crew_quarters/locker) +"aWx" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/crew_quarters/locker) +"aWy" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/airlock{name = "Locker Room"; req_access_txt = "0"},/turf/open/floor/plasteel/floorgrime,/area/crew_quarters/locker) +"aWz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/power/apc{dir = 2; name = "Locker Room APC"; pixel_x = -1; pixel_y = -26},/obj/structure/cable/yellow,/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/crew_quarters/locker) +"aWA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -26},/obj/machinery/camera{c_tag = "Locker Room Port"; dir = 1; network = list("SS13")},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/crew_quarters/locker) +"aWB" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/light,/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/crew_quarters/locker) +"aWC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/crew_quarters/locker) +"aWD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/light,/obj/machinery/newscaster{pixel_x = 0; pixel_y = -32},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/crew_quarters/locker) +"aWE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/crew_quarters/locker) +"aWF" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/crew_quarters/locker) +"aWG" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/hallway/secondary/construction{name = "\improper Garden"}) +"aWH" = (/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/light_switch{pixel_x = -24},/obj/machinery/power/smes/engineering,/turf/open/floor/plasteel/vault,/area/engine/engineering) +"aWI" = (/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/power/smes/engineering,/turf/open/floor/plasteel/vault,/area/engine/engineering) +"aWJ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/warning{dir = 10},/area/engine/engineering) +"aWK" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel/warning{dir = 2},/area/engine/engineering) +"aWL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plasteel/warning{dir = 2},/area/engine/engineering) +"aWM" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/warning{dir = 2},/area/engine/engineering) +"aWN" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/warning{dir = 2},/area/engine/engineering) +"aWO" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/plasteel/warning{dir = 2},/area/engine/engineering) +"aWP" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light,/obj/machinery/camera{c_tag = "Engineering - Aft"; dir = 1; network = list("SS13")},/turf/open/floor/plasteel/warning{dir = 2},/area/engine/engineering) +"aWQ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/warning/corner{dir = 1},/area/engine/engineering) +"aWR" = (/obj/effect/landmark/start{name = "Station Engineer"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/engine/engineering) +"aWS" = (/turf/open/floor/plasteel/warning{dir = 4},/area/engine/engineering) +"aWT" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating/warnplate{dir = 8},/area/engine/engineering) +"aWU" = (/obj/machinery/camera/emp_proof{c_tag = "Aft Arm - Near"; dir = 4; network = list("Singulo")},/obj/structure/lattice,/turf/open/space,/area/space) +"aWV" = (/obj/structure/window/reinforced{dir = 1; layer = 2.9},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/window{dir = 2; name = "MiniSat Walkway Access"; req_access_txt = "0"},/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"aWW" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/light/small{dir = 4},/obj/machinery/camera{c_tag = "MiniSat Exterior - Fore Port"; dir = 8; network = list("MiniSat")},/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"aWX" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/turf/open/space,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"aWY" = (/obj/structure/lattice,/turf/open/space,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"aWZ" = (/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/ai) +"aXa" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) +"aXb" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/ai) +"aXc" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 4},/turf/open/space,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"aXd" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/light/small{dir = 8},/obj/machinery/camera{c_tag = "MiniSat Exterior - Fore Starboard"; dir = 4; network = list("MiniSat")},/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"aXe" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/obj/machinery/door/window{base_state = "right"; dir = 2; icon_state = "right"; name = "MiniSat Walkway Access"; req_access_txt = "0"},/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"aXf" = (/obj/structure/sign/pods,/turf/closed/wall,/area/hallway/secondary/entry{name = "Arrivals"}) +"aXg" = (/obj/machinery/door/airlock/external{name = "Escape Pod One"},/turf/open/floor/plating,/area/hallway/secondary/entry{name = "Arrivals"}) +"aXh" = (/obj/machinery/door/poddoor/shutters{id = "aux_base_shutters"; name = "Auxillary Base Shutters"},/turf/open/floor/plasteel/delivery,/area/mining_construction) +"aXi" = (/obj/machinery/door/airlock/engineering{cyclelinkeddir = 1; name = "Auxillary Base Construction"; req_access_txt = "0"; req_one_access_txt = "32;47;48"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/mining_construction) +"aXj" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/mining_construction) +"aXk" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"aXl" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/turf/open/floor/plating,/area/shuttle/supply) +"aXm" = (/turf/closed/wall,/area/quartermaster/storage) +"aXn" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/camera{c_tag = "Cargo Bay - Port"; dir = 4; network = list("SS13")},/obj/machinery/conveyor{dir = 1; id = "QMLoad"; movedir = 2},/turf/open/floor/plating,/area/quartermaster/storage) +"aXo" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel,/area/quartermaster/storage) +"aXp" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/quartermaster/storage) +"aXq" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel/warning{dir = 4},/area/quartermaster/storage) +"aXr" = (/obj/structure/closet/secure_closet/security/cargo,/obj/machinery/light_switch{pixel_x = -25; pixel_y = 0},/obj/machinery/airalarm{pixel_y = 23},/turf/open/floor/plasteel/red/side{dir = 9},/area/security/checkpoint/supply{name = "Security Post - Cargo"}) +"aXs" = (/obj/machinery/power/apc{dir = 1; name = "Security Post - Cargo APC"; pixel_x = 1; pixel_y = 24},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/checkpoint/supply{name = "Security Post - Cargo"}) +"aXt" = (/obj/item/weapon/screwdriver{pixel_y = 10},/obj/item/device/radio/off,/obj/machinery/light{dir = 1},/obj/machinery/requests_console{department = "Security"; departmentType = 5; pixel_y = 30},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/checkpoint/supply{name = "Security Post - Cargo"}) +"aXu" = (/obj/structure/filingcabinet,/obj/structure/reagent_dispensers/peppertank{pixel_x = 30; pixel_y = 0},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/checkpoint/supply{name = "Security Post - Cargo"}) +"aXv" = (/obj/structure/table,/obj/item/device/analyzer,/obj/machinery/power/apc{dir = 2; name = "Tool Storage APC"; pixel_x = 0; pixel_y = -27},/obj/structure/cable/yellow,/obj/item/weapon/wrench,/obj/structure/sign/poster{pixel_x = -32},/turf/open/floor/plasteel/brown{dir = 10},/area/storage/primary) +"aXw" = (/obj/structure/table,/obj/item/weapon/storage/belt/utility,/obj/machinery/airalarm{dir = 1; pixel_y = -22},/obj/item/weapon/storage/box/lights/mixed,/turf/open/floor/plasteel/brown{dir = 2},/area/storage/primary) +"aXx" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plasteel/brown{dir = 2},/area/storage/primary) +"aXy" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 1},/turf/open/floor/plasteel/brown{dir = 2},/area/storage/primary) +"aXz" = (/obj/structure/reagent_dispensers/fueltank,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/brown{dir = 2},/area/storage/primary) +"aXA" = (/obj/structure/table,/obj/item/weapon/crowbar,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/clothing/gloves/color/fyellow,/obj/machinery/light/small,/turf/open/floor/plasteel/brown{dir = 2},/area/storage/primary) +"aXB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/brown{dir = 2},/area/storage/primary) +"aXC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/light_switch{pixel_x = 28; pixel_y = 0},/turf/open/floor/plasteel/brown{dir = 6},/area/storage/primary) +"aXD" = (/turf/closed/wall/r_wall,/area/hallway/primary/central) +"aXE" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/open/floor/plating,/area/hallway/primary/central) +"aXF" = (/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/ai_upload_foyer) +"aXG" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/turretid{control_area = "AI Upload Chamber"; icon_state = "control_stun"; name = "AI Upload turret control"; pixel_x = 0; pixel_y = 28},/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1447; name = "Private AI Channel"; pixel_x = -24; pixel_y = 24},/obj/effect/landmark/start{name = "Cyborg"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc{dir = 2; name = "AI Upload Access APC"; pixel_x = 0; pixel_y = -27},/obj/machinery/light/small{dir = 8},/obj/machinery/computer/security/telescreen{desc = "Used for watching the AI Upload."; dir = 4; name = "AI Upload Monitor"; network = list("AIUpload"); pixel_x = -29; pixel_y = 0},/turf/open/floor/plasteel/vault{dir = 6},/area/ai_monitored/turret_protected/ai_upload_foyer) +"aXH" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/vault,/area/ai_monitored/turret_protected/ai_upload_foyer) +"aXI" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/obj/effect/landmark/start{name = "Cyborg"},/obj/machinery/light/small{dir = 4},/obj/machinery/computer/security/telescreen{desc = "Used for watching areas on the MiniSat."; dir = 8; name = "MiniSat Monitor"; network = list("MiniSat","tcomm"); pixel_x = 29; pixel_y = 0},/obj/machinery/camera/motion{c_tag = "AI Upload Foyer"; network = list("SS13","RD","AIUpload")},/obj/machinery/airalarm{pixel_y = 26},/turf/open/floor/plasteel/vault{dir = 10},/area/ai_monitored/turret_protected/ai_upload_foyer) +"aXJ" = (/obj/structure/sign/directions/security{desc = "A direction sign, pointing out which way the security department is."; dir = 1; icon_state = "direction_sec"; pixel_x = 0; pixel_y = 8},/obj/structure/sign/directions/engineering{desc = "A direction sign, pointing out which way the engineering department is."; dir = 4; icon_state = "direction_eng"; pixel_y = 0},/obj/structure/sign/directions/engineering{desc = "A direction sign, pointing out which way the bridge is."; dir = 2; icon_state = "direction_bridge"; name = "bridge"; pixel_y = -8},/turf/closed/wall/r_wall,/area/hallway/primary/fore) +"aXK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Fore Primary Hallway"},/turf/open/floor/plasteel/red/corner{dir = 8},/area/hallway/primary/fore) +"aXL" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Fore Primary Hallway"},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"aXM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Fore Primary Hallway"},/turf/open/floor/plasteel/red/corner{dir = 2},/area/hallway/primary/fore) +"aXN" = (/obj/structure/sign/directions/engineering{desc = "A direction sign, pointing out which way the escape arm is."; icon_state = "direction_evac"; name = "escape arm"},/obj/structure/sign/directions/engineering{desc = "A direction sign, pointing out which way the medical department is."; icon_state = "direction_med"; name = "medical department"; pixel_y = 8},/obj/structure/sign/directions/engineering{desc = "A direction sign, pointing out which way the research department is."; icon_state = "direction_sci"; name = "research department"; pixel_y = -8},/turf/closed/wall,/area/crew_quarters/courtroom) +"aXO" = (/obj/machinery/power/apc{cell_type = 2500; dir = 2; name = "Courtroom APC"; pixel_x = 1; pixel_y = -24},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/structure/table,/obj/item/weapon/storage/fancy/donut_box,/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) +"aXP" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) +"aXQ" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) +"aXR" = (/obj/structure/table,/obj/item/weapon/book/manual/wiki/security_space_law{pixel_x = -3; pixel_y = 5},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/item/weapon/book/manual/wiki/security_space_law{pixel_x = -3; pixel_y = 5},/obj/item/weapon/book/manual/wiki/security_space_law{pixel_x = -3; pixel_y = 5},/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) +"aXS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aXT" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/crew_quarters/locker) +"aXU" = (/turf/closed/wall,/area/crew_quarters/locker) +"aXV" = (/obj/structure/closet/wardrobe/black,/turf/open/floor/plasteel/vault,/area/crew_quarters/locker) +"aXW" = (/obj/structure/closet/wardrobe/grey,/turf/open/floor/plasteel/vault,/area/crew_quarters/locker) +"aXX" = (/obj/structure/closet/wardrobe/white,/turf/open/floor/plasteel/vault,/area/crew_quarters/locker) +"aXY" = (/turf/open/floor/plasteel/vault,/area/crew_quarters/locker) +"aXZ" = (/obj/structure/closet/wardrobe/green,/turf/open/floor/plasteel/vault,/area/crew_quarters/locker) +"aYa" = (/obj/machinery/vending/clothing,/turf/open/floor/plasteel/vault,/area/crew_quarters/locker) +"aYb" = (/obj/structure/closet/wardrobe/mixed,/turf/open/floor/plasteel/vault,/area/crew_quarters/locker) +"aYc" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/starboard) +"aYd" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/starboard) +"aYe" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/starboard) +"aYf" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/starboard) +"aYg" = (/obj/structure/closet/firecloset,/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/engineering) +"aYh" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/bot{dir = 1},/area/engine/engineering) +"aYi" = (/obj/machinery/requests_console{announcementConsole = 0; department = "Engineering"; departmentType = 4; name = "Engineering RC"; pixel_y = 0},/turf/closed/wall,/area/engine/engineering) +"aYj" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/engineering) +"aYk" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/bot{dir = 1},/area/engine/engineering) +"aYl" = (/obj/structure/table,/obj/item/weapon/folder/yellow,/obj/item/weapon/folder/yellow,/obj/item/weapon/storage/firstaid/fire,/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/engineering) +"aYm" = (/obj/machinery/light_switch,/turf/closed/wall,/area/engine/engineering) +"aYn" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel,/area/engine/engineering) +"aYo" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 32; pixel_y = 0},/turf/open/floor/plasteel/warning{dir = 4},/area/engine/engineering) +"aYp" = (/turf/open/floor/plating/airless/warnplate{dir = 2},/area/engine/engineering) +"aYq" = (/obj/item/weapon/wrench,/turf/open/floor/plating/airless,/area/engine/engineering) +"aYr" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating/airless,/area/engine/engineering) +"aYs" = (/obj/structure/window/reinforced{dir = 1; layer = 2.9},/obj/structure/window/reinforced{dir = 8},/turf/open/space,/area/space) +"aYt" = (/obj/machinery/porta_turret/ai{dir = 4},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) +"aYu" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) +"aYv" = (/obj/structure/showcase{density = 0; desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; dir = 2; icon = 'icons/mob/robots.dmi'; icon_state = "robot_old"; name = "Cyborg Statue"; pixel_x = 0; pixel_y = 20},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) +"aYw" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/machinery/flasher{id = "AI"; pixel_x = -24; pixel_y = 28},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) +"aYx" = (/obj/machinery/camera{c_tag = "AI Chamber - Fore"; dir = 2; network = list("RD")},/obj/structure/showcase{density = 0; desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; dir = 2; icon = 'icons/mob/robots.dmi'; icon_state = "robot_old"; name = "Cyborg Statue"; pixel_x = 0; pixel_y = 20},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) +"aYy" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) +"aYz" = (/obj/machinery/porta_turret/ai{dir = 8},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) +"aYA" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/hallway/secondary/entry) +"aYB" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-13"; layer = 4.1},/turf/open/floor/plasteel/warning{dir = 9},/area/hallway/secondary/entry{name = "Arrivals"}) +"aYC" = (/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/secondary/entry{name = "Arrivals"}) +"aYD" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 21},/obj/structure/chair,/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/secondary/entry{name = "Arrivals"}) +"aYE" = (/obj/structure/chair,/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/secondary/entry{name = "Arrivals"}) +"aYF" = (/obj/structure/chair,/obj/machinery/camera{c_tag = "Arrivals - Fore Arm - Far"; dir = 2; network = list("SS13")},/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/secondary/entry{name = "Arrivals"}) +"aYG" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/secondary/entry{name = "Arrivals"}) +"aYH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/secondary/entry{name = "Arrivals"}) +"aYI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/yellow/corner{dir = 4},/area/hallway/secondary/entry{name = "Arrivals"}) +"aYJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{icon_state = "1-4"; d1 = 1; d2 = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/yellow/side{dir = 1},/area/hallway/secondary/entry{name = "Arrivals"}) +"aYK" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/obj/structure/cable/yellow{icon_state = "4-8"; d1 = 4; d2 = 8},/turf/open/floor/plasteel/yellow/corner{dir = 1},/area/hallway/secondary/entry{name = "Arrivals"}) +"aYL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{icon_state = "4-8"; d1 = 4; d2 = 8},/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/secondary/entry{name = "Arrivals"}) +"aYM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/sign/map/left{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-left-MS"; pixel_y = 32},/turf/open/floor/plasteel/warning/corner{dir = 4},/area/hallway/secondary/entry{name = "Arrivals"}) +"aYN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/sign/map/right{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-right-MS"; pixel_y = 32},/turf/open/floor/plasteel/white/corner{dir = 4},/area/hallway/secondary/entry{name = "Arrivals"}) +"aYO" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/arrival{dir = 1},/area/hallway/secondary/entry{name = "Arrivals"}) +"aYP" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 21},/obj/structure/sign/poster{pixel_x = 32; pixel_y = 0},/turf/open/floor/plasteel/arrival{dir = 5},/area/hallway/secondary/entry{name = "Arrivals"}) +"aYQ" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_l"},/turf/open/floor/plating,/area/shuttle/supply) +"aYR" = (/obj/structure/shuttle/engine/propulsion,/turf/open/floor/plating,/area/shuttle/supply) +"aYS" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"},/turf/open/floor/plating,/area/shuttle/supply) +"aYT" = (/obj/machinery/status_display{density = 0; pixel_x = 0; pixel_y = 0; supply_display = 1},/turf/closed/wall,/area/quartermaster/storage) +"aYU" = (/mob/living/simple_animal/sloth/citrus,/turf/open/floor/plasteel,/area/quartermaster/storage) +"aYV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/item/weapon/storage/firstaid/regular{pixel_x = 0; pixel_y = 0},/turf/open/floor/plasteel/delivery{name = "floor"},/area/quartermaster/storage) +"aYW" = (/obj/effect/landmark{name = "lightsout"},/turf/open/floor/plasteel/bot,/area/quartermaster/storage) +"aYX" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/effect/landmark/start{name = "Cargo Technician"},/turf/open/floor/plasteel,/area/quartermaster/storage) +"aYY" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/storage) +"aYZ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/warning{dir = 4},/area/quartermaster/storage) +"aZa" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Security Post - Cargo"; req_access_txt = "63"},/turf/open/floor/plasteel,/area/security/checkpoint/supply{name = "Security Post - Cargo"}) +"aZb" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/checkpoint/supply{name = "Security Post - Cargo"}) +"aZc" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/security/checkpoint/supply{name = "Security Post - Cargo"}) +"aZd" = (/obj/structure/chair/office/dark,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/obj/effect/landmark/start/depsec/supply,/turf/open/floor/plasteel,/area/security/checkpoint/supply{name = "Security Post - Cargo"}) +"aZe" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/obj/machinery/computer/security/mining{network = list("MINE","AuxBase")},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/checkpoint/supply{name = "Security Post - Cargo"}) +"aZf" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/storage/primary) +"aZg" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Primary Tool Storage"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/brown{dir = 1},/area/storage/primary) +"aZh" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Primary Tool Storage"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/brown{dir = 1},/area/storage/primary) +"aZi" = (/obj/structure/closet/firecloset,/turf/open/floor/plasteel/vault,/area/hallway/primary/central) +"aZj" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/closet/emcloset,/turf/open/floor/plasteel/vault,/area/hallway/primary/central) +"aZk" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/vault,/area/hallway/primary/central) +"aZl" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/ai_upload_foyer) +"aZm" = (/obj/machinery/door/airlock/highsecurity{name = "Secure Network Access"; req_access_txt = "19"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/vault,/area/ai_monitored/turret_protected/ai_upload_foyer) +"aZn" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/ai_upload_foyer) +"aZo" = (/obj/machinery/airalarm{pixel_y = 23},/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "applebush"; layer = 4.1},/turf/open/floor/plasteel/neutral/side{dir = 9},/area/hallway/primary/central) +"aZp" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/hallway/primary/central) +"aZq" = (/obj/machinery/light{dir = 1},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/hallway/primary/central) +"aZr" = (/obj/machinery/camera{c_tag = "Central Primary Hallway - Fore"; dir = 2; network = list("SS13")},/turf/open/floor/plasteel/red/corner{dir = 1},/area/hallway/primary/central) +"aZs" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/corner{dir = 1},/area/hallway/primary/central) +"aZt" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aZu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel/red/corner{dir = 4},/area/hallway/primary/central) +"aZv" = (/turf/open/floor/plasteel/red/corner{dir = 4},/area/hallway/primary/central) +"aZw" = (/obj/structure/sign/map/left{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-left-MS"; pixel_y = 32},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/hallway/primary/central) +"aZx" = (/obj/machinery/light{dir = 1},/obj/structure/sign/map/right{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-right-MS"; pixel_y = 32},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/hallway/primary/central) +"aZy" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-16"; layer = 4.1},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 21},/turf/open/floor/plasteel/neutral/side{dir = 5},/area/hallway/primary/central) +"aZz" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/centcom{name = "Courtroom"; opacity = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) +"aZA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Crew Quarters Access"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aZB" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Crew Quarters Access"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aZC" = (/obj/structure/sign/pods,/turf/closed/wall,/area/crew_quarters/locker) +"aZD" = (/obj/machinery/vending/snack,/turf/open/floor/plasteel/vault,/area/hallway/primary/central) +"aZE" = (/obj/machinery/newscaster{pixel_x = 0; pixel_y = 32},/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/turf/open/floor/plasteel/vault,/area/hallway/primary/central) +"aZF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/vault,/area/hallway/primary/central) +"aZG" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/starboard) +"aZH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/starboard) +"aZI" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/starboard) +"aZJ" = (/turf/closed/wall,/area/storage/tech) +"aZK" = (/turf/closed/wall/r_wall,/area/engine/chiefs_office) +"aZL" = (/obj/structure/bookcase/manuals/engineering,/obj/machinery/keycard_auth{pixel_x = -25; pixel_y = 25},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/open/floor/plasteel/vault,/area/engine/chiefs_office) +"aZM" = (/obj/machinery/requests_console{announcementConsole = 1; department = "Chief Engineer's Desk"; departmentType = 3; name = "Chief Engineer RC"; pixel_x = 0; pixel_y = 32},/obj/machinery/computer/card/minor/ce,/turf/open/floor/plasteel/vault,/area/engine/chiefs_office) +"aZN" = (/obj/machinery/ai_status_display{pixel_y = 32},/obj/machinery/computer/station_alert,/turf/open/floor/plasteel/vault,/area/engine/chiefs_office) +"aZO" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/chiefs_office) +"aZP" = (/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/command{name = "Chief Engineer's Office"; req_access_txt = "56"; req_one_access_txt = "0"},/turf/open/floor/plasteel/bot{dir = 1},/area/engine/chiefs_office) +"aZQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/engine/engineering) +"aZR" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/engineering{name = "Engine Room"; req_access_txt = "10"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/bot{dir = 1},/area/engine/engineering) +"aZS" = (/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/open/floor/plasteel/warning{dir = 10},/area/engine/engineering) +"aZT" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/light/small,/turf/open/floor/plasteel/warning{dir = 2},/area/engine/engineering) +"aZU" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = -32},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/warning{dir = 6},/area/engine/engineering) +"aZV" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/machinery/light/small{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plating/warnplate{dir = 4},/area/engine/engineering) +"aZW" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating/airless,/area/engine/engineering) +"aZX" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/power/emitter{anchored = 1; dir = 1; state = 2},/turf/open/floor/plating/airless,/area/engine/engineering) +"aZY" = (/obj/machinery/light,/obj/structure/grille,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plating/airless,/area/engine/engineering) +"aZZ" = (/obj/machinery/ai_status_display{pixel_x = -32; pixel_y = 0},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/bluegrid,/area/ai_monitored/turret_protected/ai) +"baa" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/bluegrid,/area/ai_monitored/turret_protected/ai) +"bab" = (/turf/open/floor/bluegrid,/area/ai_monitored/turret_protected/ai) +"bac" = (/obj/machinery/ai_slipper{icon_state = "motion0"; uses = 10},/turf/open/floor/bluegrid,/area/ai_monitored/turret_protected/ai) +"bad" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/bluegrid,/area/ai_monitored/turret_protected/ai) +"bae" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/bluegrid,/area/ai_monitored/turret_protected/ai) +"baf" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/ai_status_display{pixel_x = 32; pixel_y = 0},/turf/open/floor/bluegrid,/area/ai_monitored/turret_protected/ai) +"bag" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/hallway/secondary/entry{name = "Arrivals"}) +"bah" = (/turf/open/floor/plasteel/warning{dir = 10},/area/hallway/secondary/entry{name = "Arrivals"}) +"bai" = (/turf/open/floor/plasteel/warning,/area/hallway/secondary/entry{name = "Arrivals"}) +"baj" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = -32},/turf/open/floor/plasteel/warning,/area/hallway/secondary/entry{name = "Arrivals"}) +"bak" = (/turf/open/floor/plasteel/warning/corner{dir = 1},/area/hallway/secondary/entry{name = "Arrivals"}) +"bal" = (/turf/open/floor/plasteel,/area/hallway/secondary/entry{name = "Arrivals"}) +"bam" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel/warning/corner{dir = 2},/area/hallway/secondary/entry{name = "Arrivals"}) +"ban" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/warning,/area/hallway/secondary/entry{name = "Arrivals"}) +"bao" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/warning/corner{dir = 1},/area/hallway/secondary/entry{name = "Arrivals"}) +"bap" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel,/area/hallway/secondary/entry{name = "Arrivals"}) +"baq" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel,/area/hallway/secondary/entry{name = "Arrivals"}) +"bar" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/camera{c_tag = "Arrivals - Fore Arm"; dir = 8; network = list("SS13")},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/arrival{dir = 4},/area/hallway/secondary/entry{name = "Arrivals"}) +"bas" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/turf/open/floor/plating,/area/quartermaster/storage) +"bat" = (/obj/machinery/holopad,/turf/open/floor/plasteel,/area/quartermaster/storage) +"bau" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel/bot,/area/quartermaster/storage) +"bav" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/delivery{name = "floor"},/area/quartermaster/storage) +"baw" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/quartermaster/storage) +"bax" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/quartermaster/storage) +"bay" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel,/area/quartermaster/storage) +"baz" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/plasteel/warning{dir = 4},/area/quartermaster/storage) +"baA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/security/checkpoint/supply{name = "Security Post - Cargo"}) +"baB" = (/obj/machinery/recharger{pixel_y = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/table/reinforced,/turf/open/floor/plasteel/red/side{dir = 10},/area/security/checkpoint/supply{name = "Security Post - Cargo"}) +"baC" = (/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/table/reinforced,/obj/machinery/camera{c_tag = "Security Post - Cargo"; dir = 1; network = list("SS13")},/turf/open/floor/plasteel/red/side,/area/security/checkpoint/supply{name = "Security Post - Cargo"}) +"baD" = (/obj/item/weapon/book/manual/wiki/security_space_law,/obj/machinery/newscaster{pixel_x = 0; pixel_y = -32},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/obj/structure/table/reinforced,/turf/open/floor/plasteel/red/side,/area/security/checkpoint/supply{name = "Security Post - Cargo"}) +"baE" = (/obj/machinery/computer/secure_data,/turf/open/floor/plasteel/red/side{dir = 6},/area/security/checkpoint/supply{name = "Security Post - Cargo"}) +"baF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"baG" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/item/trash/popcorn,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"baH" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"baI" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;63;48;50"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"baJ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/central) +"baK" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/central) +"baL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/central) +"baM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/firealarm{pixel_y = 32},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/central) +"baN" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/central) +"baO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/central) +"baP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor,/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/central) +"baQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/central) +"baR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/central) +"baS" = (/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/machinery/camera{c_tag = "Central Primary Hallway - Fore - AI Upload"; dir = 2; network = list("SS13")},/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH-POWER TURRETS AHEAD'."; name = "\improper HIGH-POWER TURRETS AHEAD"; pixel_y = 32},/turf/open/floor/plasteel/warning/corner{dir = 8},/area/hallway/primary/central) +"baT" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 21},/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/primary/central) +"baU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/primary/central) +"baV" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/obj/machinery/ai_status_display{pixel_x = 0; pixel_y = 32},/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/primary/central) +"baW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/light/small{dir = 1},/obj/structure/sign/securearea{pixel_y = 32},/turf/open/floor/plasteel/warning/corner{dir = 4},/area/hallway/primary/central) +"baX" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) +"baY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel{icon_state = "L1"},/area/hallway/primary/central) +"baZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel{icon_state = "L3"},/area/hallway/primary/central) +"bba" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel{icon_state = "L5"},/area/hallway/primary/central) +"bbb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/landmark{name = "lightsout"},/turf/open/floor/plasteel{icon_state = "L7"},/area/hallway/primary/central) +"bbc" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/open/floor/plasteel{icon_state = "L9"},/area/hallway/primary/central) +"bbd" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel{icon_state = "L11"},/area/hallway/primary/central) +"bbe" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel{desc = ""; icon_state = "L13"; name = "floor"},/area/hallway/primary/central) +"bbf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bbg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/hallway/primary/central) +"bbh" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/hallway/primary/central) +"bbi" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/hallway/primary/central) +"bbj" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor,/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/hallway/primary/central) +"bbk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/hallway/primary/central) +"bbl" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/hallway/primary/central) +"bbm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/hallway/primary/central) +"bbn" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/hallway/primary/central) +"bbo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating{icon_state = "platingdmg1"},/area/maintenance/starboard) +"bbp" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating/warnplate{icon_plating = "warnplate"},/area/maintenance/starboard) +"bbq" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/starboard) +"bbr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/starboard) +"bbs" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/starboard) +"bbt" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating/warnplate{icon_plating = "warnplate"},/area/maintenance/starboard) +"bbu" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/starboard) +"bbv" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/sign/poster{pixel_y = 32},/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/starboard) +"bbw" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/obj/item/clothing/gloves/color/yellow,/obj/item/device/t_scanner,/obj/item/device/multitool,/turf/open/floor/plasteel/black,/area/storage/tech) +"bbx" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/computer/pandemic{pixel_x = -3; pixel_y = 3},/obj/item/weapon/circuitboard/computer/rdconsole,/obj/item/weapon/circuitboard/machine/rdserver{pixel_x = 3; pixel_y = -3},/obj/item/weapon/circuitboard/machine/destructive_analyzer,/obj/item/weapon/circuitboard/machine/protolathe,/obj/item/weapon/circuitboard/computer/aifixer,/obj/item/weapon/circuitboard/computer/teleporter,/obj/item/weapon/circuitboard/machine/circuit_imprinter,/obj/item/weapon/circuitboard/machine/mechfab,/turf/open/floor/plasteel/black,/area/storage/tech) +"bby" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/computer/mining,/obj/item/weapon/circuitboard/machine/autolathe{pixel_x = 3; pixel_y = -3},/obj/item/weapon/circuitboard/computer/arcade/battle,/obj/machinery/ai_status_display{pixel_x = 0; pixel_y = 31},/turf/open/floor/plasteel/black,/area/storage/tech) +"bbz" = (/obj/structure/rack,/obj/item/weapon/circuitboard/machine/telecomms/processor,/obj/item/weapon/circuitboard/machine/telecomms/receiver,/obj/item/weapon/circuitboard/machine/telecomms/server,/obj/item/weapon/circuitboard/machine/telecomms/bus,/obj/item/weapon/circuitboard/machine/telecomms/broadcaster,/obj/item/weapon/circuitboard/computer/message_monitor{pixel_y = -5},/turf/open/floor/plasteel/black,/area/storage/tech) +"bbA" = (/obj/structure/table,/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/machinery/light/small{dir = 1},/obj/item/device/assembly/flash/handheld,/obj/item/device/assembly/flash/handheld,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 28},/turf/open/floor/plasteel/black,/area/storage/tech) +"bbB" = (/obj/structure/table,/obj/item/device/aicard,/obj/item/weapon/aiModule/reset,/turf/open/floor/plasteel/black,/area/storage/tech) +"bbC" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -29},/turf/open/floor/plasteel/vault{dir = 5},/area/engine/chiefs_office) +"bbD" = (/turf/open/floor/plasteel/vault{dir = 5},/area/engine/chiefs_office) +"bbE" = (/obj/item/weapon/storage/secure/safe{pixel_x = 6; pixel_y = 30},/obj/machinery/camera{c_tag = "Chief Engineer's Office"; dir = 2; network = list("SS13")},/turf/open/floor/plasteel/vault{dir = 5},/area/engine/chiefs_office) +"bbF" = (/obj/structure/disposalpipe/segment,/obj/machinery/power/apc{dir = 4; name = "CE Office APC"; pixel_x = 28; pixel_y = 0},/obj/structure/cable/yellow,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/obj/machinery/light_switch{pixel_x = 26; pixel_y = 26},/turf/open/floor/plasteel/vault{dir = 5},/area/engine/chiefs_office) +"bbG" = (/obj/structure/sign/securearea{pixel_y = 32},/obj/structure/closet/radiation,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/engineering) +"bbH" = (/obj/structure/closet/radiation,/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 0; pixel_y = 32},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/engineering) +"bbI" = (/turf/closed/wall,/area/security/checkpoint/engineering) +"bbJ" = (/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plating/airless,/area/engine/engineering) +"bbK" = (/obj/machinery/camera{c_tag = "AI Chamber - Port"; dir = 4; network = list("RD")},/obj/structure/showcase{density = 0; desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; dir = 4; icon = 'icons/mob/robots.dmi'; icon_state = "robot_old"; name = "Cyborg Statue"; pixel_x = -9; pixel_y = 2},/turf/open/floor/plasteel/vault{dir = 1},/area/ai_monitored/turret_protected/ai) +"bbL" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/shutters/preopen{id = "AI Core shutters"; name = "AI core shutters"},/turf/open/floor/plating,/area/ai_monitored/turret_protected/ai) +"bbM" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/bluegrid,/area/ai_monitored/turret_protected/ai) +"bbN" = (/obj/structure/showcase{density = 0; desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; dir = 8; icon = 'icons/mob/robots.dmi'; icon_state = "robot_old"; name = "Cyborg Statue"; pixel_x = 9; pixel_y = 2},/turf/open/floor/plasteel/vault{dir = 4},/area/ai_monitored/turret_protected/ai) +"bbO" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/turf/closed/wall,/area/hallway/secondary/entry{name = "Arrivals"}) +"bbP" = (/obj/machinery/door/airlock/external{name = "Arrival Airlock"},/turf/open/floor/plating,/area/hallway/secondary/entry{name = "Arrivals"}) +"bbQ" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/warning{dir = 6},/area/hallway/secondary/entry{name = "Arrivals"}) +"bbR" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-05"; layer = 4.1},/turf/open/floor/plasteel/warning{dir = 10},/area/hallway/secondary/entry{name = "Arrivals"}) +"bbS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = -32},/turf/open/floor/plasteel/warning,/area/hallway/secondary/entry{name = "Arrivals"}) +"bbT" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel/warning/corner{dir = 1},/area/hallway/secondary/entry{name = "Arrivals"}) +"bbU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/open/floor/plasteel/arrival{dir = 4},/area/hallway/secondary/entry{name = "Arrivals"}) +"bbV" = (/obj/machinery/light_switch{pixel_x = -38},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/plasteel/loadingarea{dir = 1},/area/quartermaster/storage) +"bbW" = (/turf/open/floor/plasteel/loadingarea{dir = 1},/area/quartermaster/storage) +"bbX" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/warning{dir = 8},/area/quartermaster/storage) +"bbY" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/quartermaster/storage) +"bbZ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel,/area/quartermaster/storage) +"bca" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/warning/corner{dir = 2},/area/quartermaster/storage) +"bcb" = (/obj/machinery/camera{c_tag = "Cargo Bay - Aft"; dir = 1; network = list("SS13")},/turf/open/floor/plasteel/warning{dir = 2},/area/quartermaster/storage) +"bcc" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel/warning{dir = 2},/area/quartermaster/storage) +"bcd" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/light_switch{pixel_x = 27},/turf/open/floor/plasteel/warning{dir = 6},/area/quartermaster/storage) +"bce" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/checkpoint/supply{name = "Security Post - Cargo"}) +"bcf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;63;48;50"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bcg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/central) +"bch" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/obj/structure/disposalpipe/junction{dir = 1; icon_state = "pipe-j1"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bci" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bcj" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bck" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=3-Central-Port"; location = "2.2-Leaving-Storage"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bcl" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/primary/central) +"bcm" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/hallway/primary/central) +"bcn" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bco" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bcp" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bcq" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/holopad,/turf/open/floor/plasteel,/area/hallway/primary/central) +"bcr" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{icon_state = "4-8"; d1 = 4; d2 = 8},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bcs" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel{icon_state = "L2"},/area/hallway/primary/central) +"bct" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel{icon_state = "L4"},/area/hallway/primary/central) +"bcu" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=2.1-Storage"; location = "1.5-Fore-Central"},/turf/open/floor/plasteel{icon_state = "L6"},/area/hallway/primary/central) +"bcv" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{icon_state = "1-4"; d1 = 1; d2 = 4},/turf/open/floor/plasteel{icon_state = "L8"},/area/hallway/primary/central) +"bcw" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel{icon_state = "L10"},/area/hallway/primary/central) +"bcx" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel{icon_state = "L12"},/area/hallway/primary/central) +"bcy" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel{desc = ""; icon_state = "L14"},/area/hallway/primary/central) +"bcz" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bcA" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bcB" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=15-Court"; location = "14.9-CrewQuarters-Central"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bcC" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bcD" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_Toxins = 0},/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bcE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/hallway/primary/central) +"bcF" = (/turf/closed/wall,/area/storage/tools) +"bcG" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/storage/tools) +"bcH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/maintenance{name = "Storage Room"; req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/starboard) +"bcI" = (/turf/closed/wall/r_wall,/area/storage/tech) +"bcJ" = (/obj/machinery/power/apc{dir = 8; name = "Tech Storage APC"; pixel_x = -27; pixel_y = 0},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/effect/landmark{name = "revenantspawn"},/turf/open/floor/plasteel/vault{dir = 8},/area/storage/tech) +"bcK" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/vault{dir = 8},/area/storage/tech) +"bcL" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/vault{dir = 8},/area/storage/tech) +"bcM" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/vault{dir = 8},/area/storage/tech) +"bcN" = (/obj/structure/table,/obj/item/stack/cable_coil{pixel_x = -3; pixel_y = 3},/obj/item/stack/cable_coil,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/black,/area/storage/tech) +"bcO" = (/obj/machinery/button/door{desc = "A remote control-switch for the engineering security doors."; id = "Engineering"; name = "Engineering Lockdown"; pixel_x = -24; pixel_y = -5; req_access_txt = "10"},/obj/machinery/button/door{id = "atmos"; name = "Atmospherics Lockdown"; pixel_x = -24; pixel_y = 5; req_access_txt = "24"},/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/vault{dir = 5},/area/engine/chiefs_office) +"bcP" = (/obj/structure/table/reinforced,/obj/item/device/flashlight/lamp,/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/engine/chiefs_office) +"bcQ" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/yellow,/obj/item/weapon/stamp/ce,/obj/item/weapon/reagent_containers/pill/patch/silver_sulf,/turf/open/floor/plasteel/neutral/side,/area/engine/chiefs_office) +"bcR" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/obj/item/weapon/paper/monitorkey,/turf/open/floor/plasteel/neutral/side,/area/engine/chiefs_office) +"bcS" = (/obj/structure/table/reinforced,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/engine/chiefs_office) +"bcT" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/vault{dir = 5},/area/engine/chiefs_office) +"bcU" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/shower{icon_state = "shower"; dir = 4},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/open/floor/plasteel/warning{dir = 9},/area/engine/engineering) +"bcV" = (/obj/effect/landmark{name = "lightsout"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/warning{dir = 1},/area/engine/engineering) +"bcW" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/shower{icon_state = "shower"; dir = 8},/turf/open/floor/plasteel/warning{dir = 5},/area/engine/engineering) +"bcX" = (/obj/structure/filingcabinet,/obj/structure/reagent_dispensers/peppertank{pixel_x = 0; pixel_y = 30},/obj/machinery/airalarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/open/floor/plasteel/red/side{dir = 9},/area/security/checkpoint/engineering) +"bcY" = (/obj/structure/table,/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 29},/obj/machinery/recharger{pixel_y = 4},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/checkpoint/engineering) +"bcZ" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -1; pixel_y = 5},/obj/item/weapon/pen,/obj/machinery/newscaster/security_unit{pixel_x = 30; pixel_y = 0},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/checkpoint/engineering) +"bda" = (/turf/closed/wall/r_wall,/area/security/checkpoint/engineering) +"bdb" = (/obj/machinery/space_heater,/obj/effect/decal/cleanable/cobweb/cobweb2,/turf/open/floor/plating{icon_state = "platingdmg3"},/area/engine/engineering) +"bdc" = (/obj/effect/landmark{name = "tripai"},/obj/item/device/radio/intercom{anyai = 1; freerange = 1; listening = 0; name = "Custom Channel"; pixel_x = -10; pixel_y = 22},/obj/item/device/radio/intercom{broadcasting = 0; freerange = 1; listening = 1; name = "Common Channel"; pixel_x = -27; pixel_y = 0},/obj/item/device/radio/intercom{anyai = 1; broadcasting = 0; freerange = 1; frequency = 1447; name = "Private Channel"; pixel_x = -10; pixel_y = -25},/obj/machinery/door/window{base_state = "rightsecure"; dir = 4; obj_integrity = 300; icon_state = "rightsecure"; layer = 4.1; name = "Secondary AI Core Access"; pixel_x = 4; req_access_txt = "16"},/turf/open/floor/greengrid,/area/ai_monitored/turret_protected/ai) +"bdd" = (/obj/machinery/holopad,/obj/machinery/flasher{id = "AI"; pixel_x = -25; pixel_y = -25},/turf/open/floor/plasteel/vault{dir = 1},/area/ai_monitored/turret_protected/ai) +"bde" = (/obj/machinery/ai_slipper{icon_state = "motion0"; uses = 10},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/bluegrid,/area/ai_monitored/turret_protected/ai) +"bdf" = (/obj/machinery/turretid{icon_state = "control_stun"; name = "AI Chamber turret control"; pixel_x = 3; pixel_y = -23},/obj/machinery/door/window{base_state = "leftsecure"; dir = 8; obj_integrity = 300; icon_state = "leftsecure"; name = "Primary AI Core Access"; req_access_txt = "16"},/obj/machinery/newscaster/security_unit{pixel_x = 4; pixel_y = 33},/turf/open/floor/plasteel/vault{dir = 6},/area/ai_monitored/turret_protected/ai) +"bdg" = (/obj/machinery/requests_console{department = "AI"; departmentType = 5; pixel_x = 30; pixel_y = 30},/obj/machinery/ai_slipper{icon_state = "motion0"; uses = 10},/obj/machinery/flasher{id = "AI"; pixel_x = 23; pixel_y = -23},/turf/open/floor/plasteel/vault,/area/ai_monitored/turret_protected/ai) +"bdh" = (/obj/machinery/door/window{base_state = "rightsecure"; dir = 4; obj_integrity = 300; icon_state = "rightsecure"; name = "Primary AI Core Access"; req_access_txt = "16"},/obj/machinery/camera{c_tag = "AI Chamber - Core"; dir = 2; network = list("RD")},/turf/open/floor/plasteel/vault{dir = 10},/area/ai_monitored/turret_protected/ai) +"bdi" = (/obj/machinery/ai_slipper{icon_state = "motion0"; uses = 10},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/bluegrid,/area/ai_monitored/turret_protected/ai) +"bdj" = (/obj/machinery/holopad,/obj/machinery/flasher{id = "AI"; pixel_x = 25; pixel_y = 25},/turf/open/floor/plasteel/vault{dir = 4},/area/ai_monitored/turret_protected/ai) +"bdk" = (/obj/effect/landmark{name = "tripai"},/obj/item/device/radio/intercom{anyai = 1; freerange = 1; listening = 0; name = "Custom Channel"; pixel_x = 10; pixel_y = 22},/obj/item/device/radio/intercom{broadcasting = 0; freerange = 1; listening = 1; name = "Common Channel"; pixel_x = 27; pixel_y = 0},/obj/item/device/radio/intercom{anyai = 1; broadcasting = 0; freerange = 1; frequency = 1447; name = "Private Channel"; pixel_x = 10; pixel_y = -25},/obj/machinery/door/window{base_state = "leftsecure"; dir = 8; obj_integrity = 300; icon_state = "leftsecure"; layer = 4.1; name = "Tertiary AI Core Access"; pixel_x = -3; req_access_txt = "16"},/turf/open/floor/greengrid,/area/ai_monitored/turret_protected/ai) +"bdl" = (/turf/open/floor/plating/warnplate{dir = 2},/area/hallway/secondary/entry{name = "Arrivals"}) +"bdm" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/delivery,/area/hallway/secondary/entry{name = "Arrivals"}) +"bdn" = (/obj/machinery/vending/cigarette,/turf/open/floor/plasteel/delivery,/area/hallway/secondary/entry{name = "Arrivals"}) +"bdo" = (/obj/machinery/vending/coffee,/turf/open/floor/plasteel/delivery,/area/hallway/secondary/entry{name = "Arrivals"}) +"bdp" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel/warning{dir = 8},/area/hallway/secondary/entry{name = "Arrivals"}) +"bdq" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/arrival{dir = 4},/area/hallway/secondary/entry{name = "Arrivals"}) +"bdr" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;48;50;1"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bds" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bdt" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating{icon_state = "platingdmg2"},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bdu" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bdv" = (/obj/machinery/door/airlock/maintenance{name = "Cargo Bay Maintenance"; req_access_txt = "0"; req_one_access_txt = "48;50"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/quartermaster/storage) +"bdw" = (/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = -28},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/delivery{name = "floor"},/area/quartermaster/storage) +"bdx" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/delivery{name = "floor"},/area/quartermaster/storage) +"bdy" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/warning{dir = 10},/area/quartermaster/storage) +"bdz" = (/obj/machinery/conveyor_switch/oneway{id = "packageSort2"; pixel_x = -8; pixel_y = -2},/turf/open/floor/plasteel/warning{dir = 2},/area/quartermaster/storage) +"bdA" = (/obj/structure/rack,/obj/item/stack/packageWrap{pixel_x = 2; pixel_y = -3},/obj/item/stack/packageWrap{pixel_x = 2; pixel_y = -3},/obj/item/stack/packageWrap{pixel_x = 2; pixel_y = -3},/obj/item/stack/packageWrap{pixel_x = 2; pixel_y = -3},/obj/item/stack/packageWrap{pixel_x = 2; pixel_y = -3},/obj/item/stack/wrapping_paper,/obj/item/stack/wrapping_paper,/obj/item/device/destTagger{pixel_x = 4; pixel_y = 3},/turf/open/floor/plasteel/warning{dir = 2},/area/quartermaster/storage) +"bdB" = (/obj/structure/rack,/obj/machinery/power/apc{dir = 2; name = "Cargo Bay APC"; pixel_x = 1; pixel_y = -24},/obj/structure/cable/yellow,/obj/machinery/light,/obj/item/weapon/hand_labeler,/obj/item/weapon/hand_labeler,/obj/item/weapon/screwdriver{pixel_y = 10},/turf/open/floor/plasteel/warning{dir = 2},/area/quartermaster/storage) +"bdC" = (/obj/structure/closet/wardrobe/cargotech,/turf/open/floor/plasteel/warning{dir = 2},/area/quartermaster/storage) +"bdD" = (/obj/structure/closet/wardrobe/cargotech,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/warning{dir = 6},/area/quartermaster/storage) +"bdE" = (/turf/closed/wall,/area/quartermaster/office{name = "\improper Cargo Office"}) +"bdF" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_mining{glass = 0; name = "Cargo Bay"; opacity = 1; req_access_txt = "0"; req_one_access_txt = "48;50"},/turf/open/floor/plasteel/delivery{name = "floor"},/area/quartermaster/office{name = "\improper Cargo Office"}) +"bdG" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_mining{glass = 0; name = "Cargo Bay"; opacity = 1; req_access_txt = "0"; req_one_access_txt = "48;50"},/turf/open/floor/plasteel/delivery{name = "floor"},/area/quartermaster/office{name = "\improper Cargo Office"}) +"bdH" = (/obj/item/weapon/stamp{pixel_x = -3; pixel_y = 3},/obj/item/weapon/stamp/denied{pixel_x = 4; pixel_y = -2},/obj/structure/table/reinforced,/obj/structure/noticeboard{desc = "A board for pinning important notices upon. Probably helpful for keeping track of requests."; name = "requests board"; pixel_x = 32; pixel_y = 32},/obj/machinery/requests_console{department = "Cargo Bay"; departmentType = 2; pixel_x = 0; pixel_y = 30},/obj/item/weapon/pen/red,/turf/open/floor/plasteel/brown{dir = 9},/area/quartermaster/office{name = "\improper Cargo Office"}) +"bdI" = (/obj/structure/table/reinforced,/obj/machinery/computer/stockexchange,/turf/open/floor/plasteel/brown{dir = 5},/area/quartermaster/office{name = "\improper Cargo Office"}) +"bdJ" = (/obj/structure/sign/directions/engineering{desc = "A direction sign, pointing out which way the Cargo department is."; icon_state = "direction_supply"; name = "cargo department"; pixel_y = -5},/turf/closed/wall,/area/quartermaster/office{name = "\improper Cargo Office"}) +"bdK" = (/obj/machinery/computer/cargo/request,/turf/open/floor/plasteel/delivery,/area/hallway/primary/port) +"bdL" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/status_display{density = 0; pixel_x = 0; pixel_y = 32; supply_display = 1},/obj/structure/table,/obj/item/weapon/folder/yellow,/turf/open/floor/plasteel/brown{dir = 1},/area/hallway/primary/port) +"bdM" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/open/floor/plasteel/brown{dir = 1},/area/hallway/primary/port) +"bdN" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/brown{dir = 1},/area/hallway/primary/port) +"bdO" = (/obj/machinery/airalarm{pixel_y = 23},/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/turf/open/floor/plasteel/brown{dir = 5},/area/hallway/primary/port) +"bdP" = (/turf/closed/wall,/area/hallway/primary/port) +"bdQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/machinery/light{dir = 8},/obj/machinery/camera{c_tag = "Central Primary Hallway - Fore - Port Corner"; dir = 4; network = list("SS13")},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/central) +"bdR" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/hallway/primary/central) +"bdS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/hallway/primary/central) +"bdT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/hallway/primary/central) +"bdU" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/obj/structure/disposalpipe/segment{dir = 4},/mob/living/simple_animal/bot/cleanbot{auto_patrol = 1; icon_state = "cleanbot1"; mode = 0; name = "Mopficcer Sweepsky"},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/hallway/primary/central) +"bdV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/hallway/primary/central) +"bdW" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/obj/machinery/light,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/hallway/primary/central) +"bdX" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/airalarm{dir = 1; pixel_y = -22},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/hallway/primary/central) +"bdY" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/hallway/primary/central) +"bdZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/hallway/primary/central) +"bea" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/hallway/primary/central) +"beb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/hallway/primary/central) +"bec" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/hallway/primary/central) +"bed" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/holopad,/turf/open/floor/plasteel,/area/hallway/primary/central) +"bee" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/central) +"bef" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/central) +"beg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/camera{c_tag = "Central Primary Hallway - Fore - Courtroom"; dir = 1; network = list("SS13")},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/central) +"beh" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/obj/machinery/light,/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/central) +"bei" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/airalarm{dir = 1; pixel_y = -22},/obj/machinery/door/firedoor,/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/central) +"bej" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/central) +"bek" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -27; pixel_y = -29},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/central) +"bel" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/hallway/primary/central) +"bem" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/camera{c_tag = "Central Primary Hallway - Fore - Starboard Corner"; dir = 8; network = list("SS13")},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/hallway/primary/central) +"ben" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel/yellow/side{dir = 9},/area/storage/tools) +"beo" = (/obj/machinery/power/apc{dir = 1; name = "Auxiliary Tool Storage APC"; pixel_y = 24},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/storage/tools) +"bep" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/storage/tools) +"beq" = (/obj/structure/closet/toolcloset,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 28},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/storage/tools) +"ber" = (/obj/structure/closet/toolcloset,/turf/open/floor/plasteel/yellow/side{dir = 5},/area/storage/tools) +"bes" = (/obj/effect/decal/cleanable/cobweb,/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard) +"bet" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/item/weapon/cigbutt,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/starboard) +"beu" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating{icon_state = "platingdmg1"},/area/maintenance/starboard) +"bev" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/computer/borgupload{pixel_x = -1; pixel_y = 1},/obj/item/weapon/circuitboard/computer/aiupload{pixel_x = 2; pixel_y = -2},/turf/open/floor/plasteel/black,/area/storage/tech) +"bew" = (/obj/machinery/camera{c_tag = "Secure Tech Storage"; dir = 8},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/vault{dir = 8},/area/storage/tech) +"bex" = (/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/vault{dir = 8},/area/storage/tech) +"bey" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/computer/cloning{pixel_x = 0},/obj/item/weapon/circuitboard/computer/med_data{pixel_x = 3; pixel_y = -3},/obj/item/weapon/circuitboard/machine/clonescanner,/obj/item/weapon/circuitboard/machine/clonepod,/obj/item/weapon/circuitboard/computer/scan_consolenew,/turf/open/floor/plasteel/black,/area/storage/tech) +"bez" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/computer/secure_data{pixel_x = -2; pixel_y = 2},/obj/item/weapon/circuitboard/computer/security{pixel_x = 1; pixel_y = -1},/turf/open/floor/plasteel/black,/area/storage/tech) +"beA" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/computer/powermonitor{pixel_x = -2; pixel_y = 2},/obj/item/weapon/circuitboard/computer/stationalert{pixel_x = 1; pixel_y = -1},/obj/item/weapon/circuitboard/computer/atmos_alert{pixel_x = 3; pixel_y = -3},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/storage/tech) +"beB" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/vault{dir = 8},/area/storage/tech) +"beC" = (/obj/structure/table,/obj/item/weapon/electronics/apc,/obj/item/weapon/electronics/airlock,/turf/open/floor/plasteel/black,/area/storage/tech) +"beD" = (/obj/machinery/button/door{id = "transittube"; name = "Transit Tube Lockdown"; pixel_x = -24; pixel_y = -5; req_access_txt = "24"},/obj/machinery/button/door{desc = "A remote control-switch for secure storage."; id = "Secure Storage"; name = "Engineering Secure Storage"; pixel_x = -24; pixel_y = 5; req_access_txt = "11"},/turf/open/floor/plasteel/vault{dir = 5},/area/engine/chiefs_office) +"beE" = (/obj/item/weapon/cartridge/engineering{pixel_x = 4; pixel_y = 5},/obj/item/weapon/cartridge/engineering{pixel_x = -3; pixel_y = 2},/obj/item/weapon/cartridge/engineering{pixel_x = 3},/obj/structure/table/reinforced,/obj/item/weapon/cartridge/atmos,/turf/open/floor/plasteel/neutral/side{dir = 4},/area/engine/chiefs_office) +"beF" = (/obj/effect/landmark/start{name = "Chief Engineer"},/obj/structure/chair/office/light{dir = 1; pixel_y = 3},/turf/open/floor/plasteel/neutral{dir = 8},/area/engine/chiefs_office) +"beG" = (/obj/machinery/holopad,/turf/open/floor/plasteel/neutral{dir = 8},/area/engine/chiefs_office) +"beH" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/open/floor/plasteel/neutral/side{dir = 8},/area/engine/chiefs_office) +"beI" = (/obj/machinery/computer/security/telescreen{desc = "Used for monitoring the singularity engine safely."; dir = 8; name = "Singularity Monitor"; network = list("Singulo"); pixel_x = 29; pixel_y = 0},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/vault{dir = 5},/area/engine/chiefs_office) +"beJ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/warning{dir = 10},/area/engine/engineering) +"beK" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/turf/open/floor/plasteel/warning,/area/engine/engineering) +"beL" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/obj/machinery/light/small{dir = 4},/obj/machinery/camera{c_tag = "Engineering - Entrance"; dir = 8; network = list("SS13")},/turf/open/floor/plasteel/warning{dir = 6},/area/engine/engineering) +"beM" = (/obj/item/weapon/screwdriver{pixel_y = 10},/obj/item/device/radio/off,/obj/machinery/computer/security/telescreen{dir = 4; name = "MiniSat Monitor"; network = list("MiniSat","tcomm"); pixel_x = -29; pixel_y = 0},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/checkpoint/engineering) +"beN" = (/obj/structure/chair/office/dark{dir = 4},/obj/effect/landmark/start/depsec/engineering,/turf/open/floor/plasteel,/area/security/checkpoint/engineering) +"beO" = (/obj/structure/table,/obj/item/weapon/book/manual/wiki/security_space_law,/obj/machinery/light{dir = 4},/obj/machinery/requests_console{department = "Security"; departmentType = 5; pixel_x = 30; pixel_y = 0},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/checkpoint/engineering) +"beP" = (/obj/item/weapon/cigbutt,/turf/open/floor/plating,/area/engine/engineering) +"beQ" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/engine/engineering) +"beR" = (/turf/open/floor/plating{icon_state = "panelscorched"},/area/engine/engineering) +"beS" = (/turf/open/floor/plating{icon_state = "platingdmg2"},/area/engine/engineering) +"beT" = (/turf/open/floor/plating{icon_state = "platingdmg1"},/area/engine/engineering) +"beU" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 32; pixel_y = -32},/turf/open/floor/plating/warnplate{dir = 4},/area/engine/engineering) +"beV" = (/obj/machinery/door/airlock/external{req_access_txt = "13"},/turf/open/floor/plating,/area/engine/engineering) +"beW" = (/obj/structure/showcase{density = 0; desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; dir = 4; icon = 'icons/mob/robots.dmi'; icon_state = "robot_old"; name = "Cyborg Statue"; pixel_x = -9; pixel_y = 2},/turf/open/floor/plasteel/vault{dir = 1},/area/ai_monitored/turret_protected/ai) +"beX" = (/obj/item/device/radio/intercom{broadcasting = 0; freerange = 1; listening = 1; name = "Common Channel"; pixel_x = -27; pixel_y = -7},/obj/item/device/radio/intercom{anyai = 1; freerange = 1; listening = 0; name = "Custom Channel"; pixel_x = 0; pixel_y = -27},/obj/item/device/radio/intercom{anyai = 1; broadcasting = 0; freerange = 1; frequency = 1447; name = "Private Channel"; pixel_x = 27; pixel_y = -7},/obj/effect/landmark/start{name = "AI"},/obj/machinery/button/door{id = "AI Core shutters"; name = "AI Core shutters control"; pixel_x = 24; pixel_y = -22; req_access_txt = "16"},/obj/machinery/button/door{id = "AI Chamber entrance shutters"; name = "AI Chamber entrance shutters control"; pixel_x = -23; pixel_y = -23; req_access_txt = "16"},/turf/open/floor/greengrid,/area/ai_monitored/turret_protected/ai) +"beY" = (/obj/machinery/camera{c_tag = "AI Chamber - Starboard"; dir = 8; network = list("RD")},/obj/structure/showcase{density = 0; desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; dir = 8; icon = 'icons/mob/robots.dmi'; icon_state = "robot_old"; name = "Cyborg Statue"; pixel_x = 9; pixel_y = 2},/turf/open/floor/plasteel/vault{dir = 4},/area/ai_monitored/turret_protected/ai) +"beZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel/warning{dir = 8},/area/hallway/secondary/entry{name = "Arrivals"}) +"bfa" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/arrival{dir = 4},/area/hallway/secondary/entry{name = "Arrivals"}) +"bfb" = (/turf/closed/wall,/area/security/checkpoint2{name = "Customs"}) +"bfc" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/sign/poster{pixel_x = -32},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bfd" = (/obj/item/stack/sheet/cardboard,/obj/item/weapon/storage/box/lights/mixed,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bfe" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/quartermaster/office{name = "\improper Cargo Office"}) +"bff" = (/obj/structure/plasticflaps{opacity = 1},/obj/machinery/conveyor{backwards = 1; dir = 2; forwards = 2; id = "packageSort2"},/turf/open/floor/plasteel/loadingarea,/area/quartermaster/office{name = "\improper Cargo Office"}) +"bfg" = (/obj/structure/disposalpipe/segment,/turf/closed/wall,/area/quartermaster/office{name = "\improper Cargo Office"}) +"bfh" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/power/apc{dir = 8; name = "Cargo Office APC"; pixel_x = -24; pixel_y = 0},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/open/floor/plasteel/brown{dir = 9},/area/quartermaster/office{name = "\improper Cargo Office"}) +"bfi" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/open/floor/plasteel/brown{dir = 1},/area/quartermaster/office{name = "\improper Cargo Office"}) +"bfj" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/status_display{density = 0; pixel_x = 0; pixel_y = 32; supply_display = 1},/turf/open/floor/plasteel/brown{dir = 1},/area/quartermaster/office{name = "\improper Cargo Office"}) +"bfk" = (/turf/open/floor/plasteel/brown/corner{dir = 1},/area/quartermaster/office{name = "\improper Cargo Office"}) +"bfl" = (/obj/effect/landmark/start{name = "Cargo Technician"},/obj/structure/chair/office/dark{dir = 4},/turf/open/floor/plasteel/brown{dir = 4},/area/quartermaster/office{name = "\improper Cargo Office"}) +"bfm" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor,/obj/machinery/door/window/westleft{dir = 8; name = "Cargo Desk"; req_access_txt = "50"},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/open/floor/plasteel,/area/quartermaster/office{name = "\improper Cargo Office"}) +"bfn" = (/turf/open/floor/plasteel/delivery,/area/hallway/primary/port) +"bfo" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/primary/port) +"bfp" = (/turf/open/floor/plasteel,/area/hallway/primary/port) +"bfq" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/landmark{name = "lightsout"},/turf/open/floor/plasteel,/area/hallway/primary/port) +"bfr" = (/obj/structure/chair{dir = 8},/obj/machinery/light{dir = 4},/obj/machinery/camera{c_tag = "Cargo - Foyer"; dir = 8; network = list("SS13")},/turf/open/floor/plasteel/brown{dir = 4},/area/hallway/primary/port) +"bfs" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -29},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = -32; pixel_y = 0},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/central) +"bft" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/hallway/primary/central) +"bfu" = (/turf/closed/wall,/area/janitor) +"bfv" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock{name = "Custodial Closet"; req_access_txt = "26"},/turf/open/floor/plasteel,/area/janitor) +"bfw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/janitor) +"bfx" = (/turf/closed/wall,/area/maintenance/maintcentral{name = "Central Maintenance"}) +"bfy" = (/obj/machinery/door/airlock{name = "Central Emergency Storage"; req_access_txt = "0"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/maintcentral{name = "Central Maintenance"}) +"bfz" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/hallway/primary/central) +"bfA" = (/turf/closed/wall/r_wall,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bfB" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bfC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/central) +"bfD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/hallway/primary/central) +"bfE" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/machinery/firealarm{dir = 8; pixel_x = -26; pixel_y = 0},/obj/item/clothing/gloves/color/fyellow,/obj/item/clothing/suit/hazardvest,/obj/item/device/multitool,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel/yellow/side{dir = 8},/area/storage/tools) +"bfF" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/turf/open/floor/plasteel,/area/storage/tools) +"bfG" = (/obj/machinery/holopad,/turf/open/floor/plasteel,/area/storage/tools) +"bfH" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/storage/tools) +"bfI" = (/obj/machinery/camera{c_tag = "Auxiliary Tool Storage"; dir = 8; network = list("SS13")},/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/yellow/side{dir = 4},/area/storage/tools) +"bfJ" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating,/area/maintenance/starboard) +"bfK" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plating,/area/maintenance/starboard) +"bfL" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/storage/tech) +"bfM" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/computer/crew{pixel_x = -1; pixel_y = 1},/obj/item/weapon/circuitboard/computer/card{pixel_x = 2; pixel_y = -2},/obj/item/weapon/circuitboard/computer/communications{pixel_x = 5; pixel_y = -5},/turf/open/floor/plasteel/black,/area/storage/tech) +"bfN" = (/turf/open/floor/plasteel/vault{dir = 8},/area/storage/tech) +"bfO" = (/obj/machinery/door/airlock/highsecurity{name = "Secure Tech Storage"; req_access_txt = "19;23"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/vault{dir = 8},/area/storage/tech) +"bfP" = (/obj/machinery/holopad,/turf/open/floor/plasteel/vault{dir = 8},/area/storage/tech) +"bfQ" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/plasteel/vault{dir = 8},/area/storage/tech) +"bfR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/vault{dir = 8},/area/storage/tech) +"bfS" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/vault{dir = 8},/area/storage/tech) +"bfT" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/vault{dir = 8},/area/storage/tech) +"bfU" = (/obj/structure/table,/obj/item/weapon/screwdriver{pixel_y = 16},/obj/item/weapon/wirecutters,/obj/item/device/multitool,/turf/open/floor/plasteel/vault{dir = 8},/area/storage/tech) +"bfV" = (/obj/machinery/firealarm{dir = 8; pixel_x = -26; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/vault{dir = 5},/area/engine/chiefs_office) +"bfW" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/engine/chiefs_office) +"bfX" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/engine/chiefs_office) +"bfY" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/engine/chiefs_office) +"bfZ" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/newscaster{pixel_x = 30; pixel_y = 0},/turf/open/floor/plasteel/vault{dir = 5},/area/engine/chiefs_office) +"bga" = (/obj/structure/closet/toolcloset,/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/engineering) +"bgb" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/bot{dir = 1},/area/engine/engineering) +"bgc" = (/obj/machinery/power/apc{dir = 8; name = "Engineering Security APC"; pixel_x = -24},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/checkpoint/engineering) +"bgd" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel,/area/security/checkpoint/engineering) +"bge" = (/obj/machinery/computer/secure_data,/obj/machinery/computer/security/telescreen{desc = "Used for monitoring the singularity engine safely."; dir = 8; name = "Singularity Monitor"; network = list("Singulo"); pixel_x = 32; pixel_y = 0},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/checkpoint/engineering) +"bgf" = (/obj/structure/reagent_dispensers/watertank,/obj/structure/window/reinforced{dir = 8},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/engine/engineering) +"bgg" = (/obj/structure/closet/firecloset,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/engine/engineering) +"bgh" = (/obj/machinery/portable_atmospherics/canister/air,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/engine/engineering) +"bgi" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 32; pixel_y = 0},/turf/open/floor/plating/warnplate{dir = 2},/area/engine/engineering) +"bgj" = (/obj/machinery/light{dir = 8},/obj/machinery/ai_status_display{pixel_x = -32; pixel_y = 0},/turf/open/floor/bluegrid,/area/ai_monitored/turret_protected/ai) +"bgk" = (/turf/closed/wall/mineral/titanium/overspace,/area/shuttle/arrival) +"bgl" = (/turf/closed/wall/mineral/titanium,/area/shuttle/arrival) +"bgm" = (/obj/machinery/door/airlock/shuttle{name = "Arrivals Shuttle Airlock"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) +"bgn" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/arrival) +"bgo" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/arrival{dir = 4},/area/hallway/secondary/entry{name = "Arrivals"}) +"bgp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/security/checkpoint2{name = "Customs"}) +"bgq" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/obj/structure/table/reinforced,/obj/item/weapon/book/manual/wiki/security_space_law{pixel_x = -3; pixel_y = 5},/turf/open/floor/plasteel/red/side{dir = 9},/area/security/checkpoint2{name = "Customs"}) +"bgr" = (/obj/machinery/power/apc{dir = 1; name = "Customs APC"; pixel_y = 24},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/checkpoint2{name = "Customs"}) +"bgs" = (/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20},/obj/machinery/computer/security,/turf/open/floor/plasteel/red/side{dir = 1},/area/security/checkpoint2{name = "Customs"}) +"bgt" = (/obj/machinery/computer/card,/obj/machinery/light{dir = 1},/obj/machinery/requests_console{department = "Security"; departmentType = 5; pixel_y = 30},/obj/machinery/camera{c_tag = "Customs Checkpoint"; dir = 2; network = list("SS13")},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/checkpoint2{name = "Customs"}) +"bgu" = (/obj/machinery/computer/secure_data,/obj/machinery/newscaster/security_unit{pixel_x = 0; pixel_y = 30},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/checkpoint2{name = "Customs"}) +"bgv" = (/obj/machinery/light_switch{pixel_x = 27},/obj/structure/reagent_dispensers/peppertank{pixel_x = 0; pixel_y = 30},/obj/structure/closet/secure_closet/security,/turf/open/floor/plasteel/red/side{dir = 5},/area/security/checkpoint2{name = "Customs"}) +"bgw" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bgx" = (/obj/machinery/light/small{dir = 4},/obj/machinery/space_heater,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bgy" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/closed/wall,/area/quartermaster/office{name = "\improper Cargo Office"}) +"bgz" = (/obj/structure/disposalpipe/trunk{dir = 8},/obj/machinery/conveyor{dir = 4; id = "packageSort2"},/obj/structure/disposaloutlet{dir = 4},/turf/open/floor/plating,/area/quartermaster/office{name = "\improper Cargo Office"}) +"bgA" = (/obj/machinery/conveyor{dir = 4; id = "packageSort2"},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/quartermaster/office{name = "\improper Cargo Office"}) +"bgB" = (/obj/machinery/conveyor{dir = 4; id = "packageSort2"},/turf/open/floor/plating,/area/quartermaster/office{name = "\improper Cargo Office"}) +"bgC" = (/obj/machinery/conveyor{dir = 4; id = "packageSort2"},/obj/structure/plasticflaps{opacity = 0},/turf/open/floor/plating,/area/quartermaster/office{name = "\improper Cargo Office"}) +"bgD" = (/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/disposal/deliveryChute{dir = 8},/turf/open/floor/plating/warnplate{dir = 4},/area/quartermaster/office{name = "\improper Cargo Office"}) +"bgE" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/open/floor/plasteel/brown{dir = 8},/area/quartermaster/office{name = "\improper Cargo Office"}) +"bgF" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/quartermaster/office{name = "\improper Cargo Office"}) +"bgG" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel,/area/quartermaster/office{name = "\improper Cargo Office"}) +"bgH" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/office{name = "\improper Cargo Office"}) +"bgI" = (/obj/machinery/computer/cargo,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/brown{dir = 4},/area/quartermaster/office{name = "\improper Cargo Office"}) +"bgJ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/quartermaster/office{name = "\improper Cargo Office"}) +"bgK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/bot,/area/hallway/primary/port) +"bgL" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel,/area/hallway/primary/port) +"bgM" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel,/area/hallway/primary/port) +"bgN" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) +"bgO" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/brown{dir = 4},/area/hallway/primary/port) +"bgP" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/hallway/primary/port) +"bgQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/brown/corner{dir = 8},/area/hallway/primary/central) +"bgR" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/sortjunction{dir = 1; icon_state = "pipe-j1s"; sortType = 22},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bgS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/hallway/primary/central) +"bgT" = (/obj/structure/reagent_dispensers/watertank,/obj/machinery/light_switch{pixel_x = 8; pixel_y = 30},/turf/open/floor/plasteel/floorgrime,/area/janitor) +"bgU" = (/turf/open/floor/plasteel/floorgrime,/area/janitor) +"bgV" = (/obj/structure/closet/l3closet/janitor,/obj/machinery/airalarm{pixel_y = 28},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/floorgrime,/area/janitor) +"bgW" = (/obj/structure/closet/jcloset,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/floorgrime,/area/janitor) +"bgX" = (/obj/structure/closet/firecloset,/turf/open/floor/plating,/area/maintenance/maintcentral{name = "Central Maintenance"}) +"bgY" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/maintcentral{name = "Central Maintenance"}) +"bgZ" = (/turf/closed/wall/r_wall,/area/maintenance/maintcentral{name = "Central Maintenance"}) +"bha" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green{pixel_x = 1; pixel_y = 5},/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = -27; pixel_y = 0},/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 0; pixel_y = 32},/turf/open/floor/carpet,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bhb" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/table/wood,/obj/item/weapon/pinpointer,/obj/item/weapon/disk/nuclear,/turf/open/floor/carpet,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bhc" = (/obj/machinery/light{dir = 1},/obj/machinery/computer/security/wooden_tv,/turf/open/floor/carpet,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bhd" = (/obj/machinery/ai_status_display{pixel_y = 32},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/carpet,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bhe" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/carpet,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bhf" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/filingcabinet{pixel_x = 4},/turf/open/floor/wood,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bhg" = (/obj/machinery/light_switch{pixel_x = 28; pixel_y = 0},/obj/structure/dresser,/obj/item/weapon/storage/secure/safe{pixel_x = 6; pixel_y = 28},/turf/open/floor/wood,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bhh" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/central) +"bhi" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/hallway/primary/central) +"bhj" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/door/firedoor,/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/hallway/primary/central) +"bhk" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/emergency,/obj/machinery/light_switch{pixel_x = -26},/turf/open/floor/plasteel/yellow/side{dir = 10},/area/storage/tools) +"bhl" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/weapon/storage/box/lights/mixed,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/yellow/side{dir = 2},/area/storage/tools) +"bhm" = (/turf/open/floor/plasteel/yellow/side{dir = 2},/area/storage/tools) +"bhn" = (/obj/structure/rack,/obj/item/weapon/electronics/apc,/obj/item/weapon/electronics/airlock,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel/yellow/side{dir = 2},/area/storage/tools) +"bho" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/rods{amount = 50},/turf/open/floor/plasteel/yellow/side{dir = 6},/area/storage/tools) +"bhp" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating/warnplate{icon_plating = "warnplate"},/area/maintenance/starboard) +"bhq" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/computer/robotics{pixel_x = -2; pixel_y = 2},/obj/item/weapon/circuitboard/computer/mecha_control{pixel_x = 1; pixel_y = -1},/turf/open/floor/plasteel/black,/area/storage/tech) +"bhr" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/vault{dir = 8},/area/storage/tech) +"bhs" = (/obj/machinery/vending/assist,/turf/open/floor/plasteel/black,/area/storage/tech) +"bht" = (/obj/structure/table,/obj/item/device/plant_analyzer,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/plasteel/black,/area/storage/tech) +"bhu" = (/obj/structure/table,/obj/item/device/analyzer,/obj/item/device/healthanalyzer,/obj/machinery/camera/autoname{dir = 1},/turf/open/floor/plasteel/black,/area/storage/tech) +"bhv" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/obj/item/device/multitool,/obj/item/clothing/glasses/meson,/obj/machinery/light_switch{pixel_x = 0; pixel_y = -28},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/storage/tech) +"bhw" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/vault{dir = 8},/area/storage/tech) +"bhx" = (/obj/structure/table,/obj/machinery/cell_charger{pixel_y = 0},/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/turf/open/floor/plasteel/black,/area/storage/tech) +"bhy" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 1},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -28},/turf/open/floor/plasteel/vault{dir = 5},/area/engine/chiefs_office) +"bhz" = (/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 0; pixel_y = -29},/obj/machinery/suit_storage_unit/ce,/turf/open/floor/plasteel/vault{dir = 5},/area/engine/chiefs_office) +"bhA" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/secure/briefcase,/obj/item/clothing/mask/cigarette/cigar,/obj/machinery/computer/security/telescreen{dir = 1; name = "MiniSat Monitor"; network = list("MiniSat","tcomm"); pixel_x = 0; pixel_y = -30},/turf/open/floor/plasteel/vault{dir = 5},/area/engine/chiefs_office) +"bhB" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/lighter,/obj/item/clothing/glasses/meson,/obj/machinery/button/door{id = "ceprivacy"; name = "Privacy Shutters Control"; pixel_x = 0; pixel_y = -26},/turf/open/floor/plasteel/vault{dir = 5},/area/engine/chiefs_office) +"bhC" = (/obj/structure/filingcabinet/chestdrawer,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/mob/living/simple_animal/parrot/Poly,/turf/open/floor/plasteel/vault{dir = 5},/area/engine/chiefs_office) +"bhD" = (/obj/structure/closet/secure_closet/engineering_chief{req_access_txt = "0"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/open/floor/plasteel/vault{dir = 5},/area/engine/chiefs_office) +"bhE" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/engineering{name = "Engine Room"; req_access_txt = "10"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/bot{dir = 1},/area/engine/engineering) +"bhF" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/obj/machinery/camera/autoname{dir = 4; network = list("SS13")},/obj/machinery/button/door{desc = "A remote control-switch for the engineering security doors."; id = "Engineering"; name = "Engineering Lockdown"; pixel_x = -24; pixel_y = -6; req_access_txt = "1"},/obj/machinery/button/door{id = "atmos"; name = "Atmospherics Lockdown"; pixel_x = -24; pixel_y = 5; req_access_txt = "1"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/red/side{dir = 10},/area/security/checkpoint/engineering) +"bhG" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/red/side,/area/security/checkpoint/engineering) +"bhH" = (/obj/structure/closet/secure_closet/security/engine,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/red/side{dir = 6},/area/security/checkpoint/engineering) +"bhI" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/open/floor/plating,/area/engine/break_room) +"bhJ" = (/turf/closed/wall/r_wall,/area/engine/break_room) +"bhK" = (/turf/closed/wall/r_wall,/area/space) +"bhL" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 0},/turf/closed/wall/r_wall,/area/space) +"bhM" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/turf/open/space,/area/space) +"bhN" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"bhO" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/light/small{dir = 4},/obj/machinery/camera{c_tag = "MiniSat Exterior - Port Fore"; dir = 8; network = list("MiniSat")},/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"bhP" = (/obj/machinery/airalarm{pixel_y = 23},/turf/open/floor/bluegrid,/area/ai_monitored/turret_protected/ai) +"bhQ" = (/obj/machinery/porta_turret/ai{dir = 2},/obj/machinery/flasher{id = "AI"; pixel_x = 0; pixel_y = 24},/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/turret_protected/ai) +"bhR" = (/obj/machinery/power/apc{aidisabled = 0; dir = 1; name = "AI Chamber APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/bluegrid,/area/ai_monitored/turret_protected/ai) +"bhS" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/bluegrid,/area/ai_monitored/turret_protected/ai) +"bhT" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/light/small{dir = 8},/obj/machinery/camera{c_tag = "MiniSat Exterior - Starboard Fore"; dir = 4; network = list("MiniSat")},/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"bhU" = (/obj/structure/window/reinforced{dir = 1; layer = 2.9},/obj/structure/window/reinforced,/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"bhV" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1; layer = 2.9},/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"bhW" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 3; pixel_y = -3},/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) +"bhX" = (/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) +"bhY" = (/obj/machinery/computer/arcade,/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) +"bhZ" = (/obj/structure/closet/wardrobe/green,/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) +"bia" = (/obj/structure/closet/wardrobe/black,/obj/structure/sign/map/left{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-left-MS"; pixel_y = 32},/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) +"bib" = (/obj/structure/closet/wardrobe/mixed,/obj/structure/sign/map/right{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-right-MS"; pixel_y = 32},/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) +"bic" = (/obj/structure/closet/wardrobe/grey,/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) +"bid" = (/obj/machinery/camera{c_tag = "Arrivals Shuttle"; dir = 2; network = list("SS13")},/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) +"bie" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"; dir = 8},/turf/open/floor/plating,/area/shuttle/arrival) +"bif" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/open/floor/plating,/area/security/checkpoint2{name = "Customs"}) +"big" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/table/reinforced,/obj/item/weapon/folder/red,/obj/item/weapon/folder/red,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/checkpoint2{name = "Customs"}) +"bih" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/security/checkpoint2{name = "Customs"}) +"bii" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel,/area/security/checkpoint2{name = "Customs"}) +"bij" = (/obj/structure/chair/office/dark,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/security/checkpoint2{name = "Customs"}) +"bik" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel,/area/security/checkpoint2{name = "Customs"}) +"bil" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/checkpoint2{name = "Customs"}) +"bim" = (/obj/machinery/door/airlock/maintenance{name = "Security Maintenance"; req_access_txt = "1"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/security/checkpoint2{name = "Customs"}) +"bin" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bio" = (/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bip" = (/obj/machinery/door/airlock/maintenance{name = "Mailroom Maintenance"; req_access_txt = "50"},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/quartermaster/office{name = "\improper Cargo Office"}) +"biq" = (/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plasteel/warning{dir = 1},/area/quartermaster/office{name = "\improper Cargo Office"}) +"bir" = (/turf/open/floor/plasteel/warning{dir = 1},/area/quartermaster/office{name = "\improper Cargo Office"}) +"bis" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/warning{dir = 1},/area/quartermaster/office{name = "\improper Cargo Office"}) +"bit" = (/obj/machinery/conveyor_switch/oneway{id = "packageSort2"; pixel_x = -2; pixel_y = 12},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/open/floor/plasteel/warning{dir = 1},/area/quartermaster/office{name = "\improper Cargo Office"}) +"biu" = (/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/light{dir = 8},/obj/machinery/camera{c_tag = "Cargo - Office"; dir = 4; network = list("SS13")},/turf/open/floor/plasteel/brown{dir = 8},/area/quartermaster/office{name = "\improper Cargo Office"}) +"biv" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel,/area/quartermaster/office{name = "\improper Cargo Office"}) +"biw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel,/area/quartermaster/office{name = "\improper Cargo Office"}) +"bix" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/quartermaster/office{name = "\improper Cargo Office"}) +"biy" = (/obj/structure/filingcabinet/filingcabinet,/turf/open/floor/plasteel/brown{dir = 4},/area/quartermaster/office{name = "\improper Cargo Office"}) +"biz" = (/turf/open/floor/plasteel/bot,/area/hallway/primary/port) +"biA" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/port) +"biB" = (/turf/open/floor/plasteel/brown/corner{dir = 4},/area/hallway/primary/port) +"biC" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/brown{dir = 1},/area/hallway/primary/port) +"biD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/brown/corner{dir = 1},/area/hallway/primary/central) +"biE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/hallway/primary/central) +"biF" = (/obj/item/weapon/restraints/legcuffs/beartrap,/obj/item/weapon/restraints/legcuffs/beartrap,/obj/structure/table,/obj/machinery/requests_console{department = "Janitorial"; departmentType = 1; pixel_x = -29; pixel_y = 0},/obj/item/weapon/reagent_containers/spray/cleaner,/obj/machinery/camera{c_tag = "Custodial Closet"; dir = 4; network = list("SS13")},/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/floorgrime,/area/janitor) +"biG" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plating,/area/janitor) +"biH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/floorgrime,/area/janitor) +"biI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plasteel/floorgrime,/area/janitor) +"biJ" = (/obj/machinery/door/airlock/maintenance{name = "Custodial Maintenance"; req_access_txt = "26"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/janitor) +"biK" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/maintcentral{name = "Central Maintenance"}) +"biL" = (/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/maintcentral{name = "Central Maintenance"}) +"biM" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/maintcentral{name = "Central Maintenance"}) +"biN" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/door/poddoor/preopen{id = "bridge blast"; layer = 2.9; name = "bridge blast door"},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/open/floor/plating,/area/bridge) +"biO" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "bridge blast"; layer = 2.9; name = "bridge blast door"},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/open/floor/plating,/area/bridge) +"biP" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "bridge blast"; layer = 2.9; name = "bridge blast door"},/turf/open/floor/plating,/area/bridge) +"biQ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "bridge blast"; layer = 2.9; name = "bridge blast door"},/turf/open/floor/plating,/area/bridge) +"biR" = (/turf/closed/wall/r_wall,/area/bridge) +"biS" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/door/poddoor/preopen{id = "bridge blast"; layer = 2.9; name = "bridge blast door"},/turf/open/floor/plating,/area/bridge) +"biT" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "bridge blast"; layer = 2.9; name = "bridge blast door"},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/open/floor/plating,/area/bridge) +"biU" = (/obj/structure/table/wood,/obj/machinery/newscaster/security_unit{pixel_x = -30; pixel_y = 1},/turf/open/floor/carpet,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"biV" = (/obj/effect/landmark/start{name = "Captain"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/chair/comfy/brown{icon_state = "comfychair"; dir = 8},/turf/open/floor/carpet,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"biW" = (/turf/open/floor/carpet,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"biX" = (/obj/structure/disposalpipe/segment,/turf/open/floor/carpet,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"biY" = (/obj/machinery/door/window/westright,/turf/open/floor/wood,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"biZ" = (/obj/structure/bed,/obj/item/weapon/bedsheet/captain,/obj/effect/landmark/start{name = "Captain"},/obj/machinery/camera{c_tag = "Captain's Quarters"; dir = 8; network = list("SS13")},/turf/open/floor/wood,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bja" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/central) +"bjb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel/yellow/corner{dir = 4},/area/hallway/primary/central) +"bjc" = (/obj/structure/sign/directions/security{desc = "A direction sign, pointing out which way the security department is."; dir = 1; icon_state = "direction_sec"; pixel_x = 0; pixel_y = 8},/obj/structure/sign/directions/engineering{desc = "A direction sign, pointing out which way the engineering department is."; dir = 4; icon_state = "direction_eng"; pixel_y = 0},/obj/structure/sign/directions/engineering{desc = "A direction sign, pointing out which way the bridge is."; dir = 2; icon_state = "direction_bridge"; name = "bridge"; pixel_y = -8},/turf/closed/wall/r_wall,/area/storage/tools) +"bjd" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/storage/tools) +"bje" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Auxiliary Tool Storage"; req_access_txt = "12"},/turf/open/floor/plasteel,/area/storage/tools) +"bjf" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/storage/tools) +"bjg" = (/obj/structure/closet/emcloset,/obj/structure/sign/map/left{icon_state = "map-left-MS"; pixel_y = 32},/turf/open/floor/plasteel/vault,/area/hallway/primary/starboard) +"bjh" = (/obj/structure/sign/map/right{desc = "A framed picture of the station. Clockwise from security in red at the top, you see engineering in yellow, science in purple, escape in checkered red-and-white, medbay in green, arrivals in checkered red-and-blue, and then cargo in brown."; icon_state = "map-right-MS"; pixel_y = 32},/obj/structure/closet/firecloset,/turf/open/floor/plasteel/vault,/area/hallway/primary/starboard) +"bji" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/starboard) +"bjj" = (/turf/closed/wall,/area/hallway/primary/starboard) +"bjk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/storage/tech) +"bjl" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/engineering{name = "Tech Storage"; req_access_txt = "0"; req_one_access_txt = "23;30"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/vault{dir = 8},/area/storage/tech) +"bjm" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/door/poddoor/preopen{id = "ceprivacy"; name = "privacy shutter"},/turf/open/floor/plating,/area/engine/chiefs_office) +"bjn" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "ceprivacy"; name = "privacy shutter"},/turf/open/floor/plating,/area/engine/chiefs_office) +"bjo" = (/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "Engineering"; name = "Engineering Security Doors"; opacity = 0},/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/break_room) +"bjp" = (/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "Engineering"; name = "Engineering Security Doors"; opacity = 0},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/break_room) +"bjq" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow,/turf/open/floor/plating,/area/security/checkpoint/engineering) +"bjr" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Engineering Security Post"; req_access_txt = "63"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/security/checkpoint/engineering) +"bjs" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow,/turf/open/floor/plating,/area/security/checkpoint/engineering) +"bjt" = (/turf/open/floor/plating,/area/engine/break_room) +"bju" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/engine/break_room) +"bjv" = (/obj/structure/shuttle/engine/propulsion/burst{dir = 4},/turf/closed/wall/mineral/titanium,/area/shuttle/pod_4) +"bjw" = (/turf/closed/wall/mineral/titanium,/area/shuttle/pod_4) +"bjx" = (/obj/machinery/door/airlock/hatch{icon_state = "door_closed"; name = "MiniSat Space Access Airlock"; req_one_access_txt = "32;19"},/turf/open/floor/plating,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"bjy" = (/turf/open/floor/plasteel/vault{dir = 8},/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"bjz" = (/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/vault{dir = 8},/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"bjA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/vault{dir = 8},/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"bjB" = (/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/machinery/door/window{base_state = "right"; dir = 8; icon_state = "right"; name = "MiniSat Airlock Access"; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"bjC" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/machinery/firealarm{dir = 8; pixel_x = -26; pixel_y = 0},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) +"bjD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) +"bjE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/machinery/ai_slipper{icon_state = "motion0"; uses = 10},/turf/open/floor/bluegrid,/area/ai_monitored/turret_protected/ai) +"bjF" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/bluegrid,/area/ai_monitored/turret_protected/ai) +"bjG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) +"bjH" = (/obj/structure/table/reinforced,/obj/item/weapon/phone{pixel_x = -3; pixel_y = 3},/obj/item/weapon/cigbutt/cigarbutt{pixel_x = 5; pixel_y = -1},/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1447; listening = 0; name = "Station Intercom (AI Private)"; pixel_x = 28; pixel_y = 0},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) +"bjI" = (/obj/structure/window/reinforced{dir = 1; layer = 2.9},/turf/open/space,/area/space) +"bjJ" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1; layer = 2.9},/turf/open/space,/area/space) +"bjK" = (/obj/structure/chair,/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) +"bjL" = (/obj/structure/chair{dir = 8},/obj/effect/landmark{name = "JoinLate"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) +"bjM" = (/obj/effect/landmark{name = "JoinLate"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) +"bjN" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating,/area/shuttle/arrival) +"bjO" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 8},/turf/open/floor/plating,/area/shuttle/arrival) +"bjP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/arrival{dir = 4},/area/hallway/secondary/entry{name = "Arrivals"}) +"bjQ" = (/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/closet,/obj/item/weapon/crowbar,/obj/item/device/assembly/flash/handheld,/obj/item/device/radio,/turf/open/floor/plasteel/red/side{dir = 10},/area/security/checkpoint2{name = "Customs"}) +"bjR" = (/turf/open/floor/plasteel/red/side,/area/security/checkpoint2{name = "Customs"}) +"bjS" = (/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/obj/structure/table/reinforced,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/red/side,/area/security/checkpoint2{name = "Customs"}) +"bjT" = (/obj/item/weapon/paper,/obj/structure/table/reinforced,/obj/machinery/door/window/brigdoor{dir = 2; name = "Arrivals Security Checkpoint"; pixel_y = -8; req_access_txt = "1"},/turf/open/floor/plasteel/red/side,/area/security/checkpoint2{name = "Customs"}) +"bjU" = (/obj/machinery/recharger{pixel_y = 4},/obj/structure/table/reinforced,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/red/side,/area/security/checkpoint2{name = "Customs"}) +"bjV" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/closet/wardrobe/red,/turf/open/floor/plasteel/red/side{dir = 6},/area/security/checkpoint2{name = "Customs"}) +"bjW" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating/warnplate{dir = 2},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bjX" = (/obj/machinery/space_heater,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bjY" = (/obj/structure/disposalpipe/wrapsortjunction{dir = 1},/turf/closed/wall,/area/quartermaster/office{name = "\improper Cargo Office"}) +"bjZ" = (/obj/structure/disposaloutlet{dir = 4},/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating,/area/quartermaster/office{name = "\improper Cargo Office"}) +"bka" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/window/eastleft{name = "Mail"; req_access_txt = "50"},/turf/open/floor/plasteel/delivery,/area/quartermaster/office{name = "\improper Cargo Office"}) +"bkb" = (/turf/open/floor/plasteel/loadingarea{dir = 4},/area/quartermaster/office{name = "\improper Cargo Office"}) +"bkc" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/quartermaster/office{name = "\improper Cargo Office"}) +"bkd" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel,/area/quartermaster/office{name = "\improper Cargo Office"}) +"bke" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel,/area/quartermaster/office{name = "\improper Cargo Office"}) +"bkf" = (/obj/machinery/status_display{density = 0; pixel_x = 0; pixel_y = 32; supply_display = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/office{name = "\improper Cargo Office"}) +"bkg" = (/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/office{name = "\improper Cargo Office"}) +"bkh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_mining{name = "Mailroom"; req_access_txt = "0"; req_one_access_txt = "48;50"},/turf/open/floor/plasteel/delivery{name = "floor"},/area/quartermaster/office{name = "\improper Cargo Office"}) +"bki" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/open/floor/plasteel/brown{dir = 8},/area/quartermaster/office{name = "\improper Cargo Office"}) +"bkj" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/office{name = "\improper Cargo Office"}) +"bkk" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/quartermaster/office{name = "\improper Cargo Office"}) +"bkl" = (/obj/structure/disposalpipe/segment,/obj/effect/landmark/start{name = "Cargo Technician"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/quartermaster/office{name = "\improper Cargo Office"}) +"bkm" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/brown{dir = 4},/area/quartermaster/office{name = "\improper Cargo Office"}) +"bkn" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_mining{name = "Cargo Office"; req_access_txt = "0"; req_one_access_txt = "48;50"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/delivery{name = "floor"},/area/quartermaster/office{name = "\improper Cargo Office"}) +"bko" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/brown{dir = 8},/area/hallway/primary/port) +"bkp" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/hallway/primary/port) +"bkq" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) +"bkr" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/junction{dir = 2; icon_state = "pipe-j1"},/turf/open/floor/plasteel,/area/hallway/primary/port) +"bks" = (/turf/open/floor/plasteel/brown/corner{dir = 2},/area/hallway/primary/port) +"bkt" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/brown{dir = 2},/area/hallway/primary/port) +"bku" = (/obj/machinery/power/apc{dir = 8; name = "Custodial Closet APC"; pixel_x = -24},/obj/structure/table,/obj/item/clothing/gloves/color/orange,/obj/item/weapon/storage/box/mousetraps,/obj/item/weapon/storage/box/mousetraps,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/open/floor/plasteel/floorgrime,/area/janitor) +"bkv" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/portable_atmospherics/canister/water_vapor,/mob/living/simple_animal/hostile/lizard{name = "Wags-His-Tail"; real_name = "Wags-His-Tail"},/turf/open/floor/plasteel/floorgrime,/area/janitor) +"bkw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/effect/landmark/start{name = "Janitor"},/turf/open/floor/plasteel/floorgrime,/area/janitor) +"bkx" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/item/weapon/reagent_containers/glass/bucket,/obj/item/weapon/mop,/obj/structure/disposalpipe/segment,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel/floorgrime,/area/janitor) +"bky" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/maintcentral{name = "Central Maintenance"}) +"bkz" = (/obj/effect/landmark{name = "blobstart"},/obj/machinery/power/apc{cell_type = 2500; dir = 4; name = "Central Maintenance APC"; pixel_x = 26; pixel_y = 0},/obj/structure/cable/yellow,/turf/open/floor/plating,/area/maintenance/maintcentral{name = "Central Maintenance"}) +"bkA" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "bridge blast"; layer = 2.9; name = "bridge blast door"},/obj/structure/cable/yellow,/turf/open/floor/plating,/area/bridge) +"bkB" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/computer/card,/turf/open/floor/plasteel/darkgreen/side{dir = 9},/area/bridge) +"bkC" = (/obj/machinery/computer/med_data,/turf/open/floor/plasteel/darkgreen/side{dir = 1},/area/bridge) +"bkD" = (/obj/machinery/computer/crew,/turf/open/floor/plasteel/darkgreen/side{dir = 1},/area/bridge) +"bkE" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/item/weapon/folder/yellow{pixel_y = 4},/obj/machinery/camera{c_tag = "Bridge - Central"; dir = 2; network = list("SS13")},/obj/structure/table/glass,/turf/open/floor/plasteel/darkbrown/side{dir = 1},/area/bridge) +"bkF" = (/obj/machinery/computer/station_alert,/turf/open/floor/plasteel/darkbrown/side{dir = 1},/area/bridge) +"bkG" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/computer/monitor{name = "Bridge Power Monitoring Console"},/turf/open/floor/plasteel/darkbrown/side{dir = 1},/area/bridge) +"bkH" = (/obj/machinery/computer/atmos_alert,/turf/open/floor/plasteel/darkbrown/side{dir = 1},/area/bridge) +"bkI" = (/obj/machinery/ai_status_display{pixel_y = 32},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -1; pixel_y = 4},/obj/structure/table/glass,/turf/open/floor/plasteel/darkbrown/side{dir = 1},/area/bridge) +"bkJ" = (/obj/machinery/computer/security,/turf/open/floor/plasteel/darkred/side{dir = 1},/area/bridge) +"bkK" = (/obj/machinery/computer/secure_data,/turf/open/floor/plasteel/darkred/side{dir = 1},/area/bridge) +"bkL" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/computer/prisoner,/turf/open/floor/plasteel/darkred/side{dir = 5},/area/bridge) +"bkM" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "bridge blast"; layer = 2.9; name = "bridge blast door"},/obj/structure/cable/yellow,/turf/open/floor/plating,/area/bridge) +"bkN" = (/obj/structure/table/wood,/obj/item/weapon/storage/photo_album{pixel_y = -4},/obj/item/device/camera{pixel_y = 4},/obj/item/device/radio/intercom{dir = 8; freerange = 1; name = "Station Intercom (Captain)"; pixel_x = -28},/turf/open/floor/carpet,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bkO" = (/obj/machinery/light_switch{pixel_y = -25},/obj/structure/table/wood,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/item/weapon/razor{pixel_x = -4; pixel_y = 2},/obj/item/clothing/mask/cigarette/cigar,/obj/item/weapon/reagent_containers/food/drinks/flask/gold,/turf/open/floor/carpet,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bkP" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/open/floor/carpet,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bkQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/structure/disposalpipe/segment,/turf/open/floor/carpet,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bkR" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/carpet,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bkS" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/holopad,/turf/open/floor/wood,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bkT" = (/obj/structure/table/wood,/obj/machinery/recharger{pixel_y = 4},/turf/open/floor/wood,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bkU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/central) +"bkV" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=14.2-Central-CrewQuarters"; location = "14-Starboard-Central"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bkW" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/yellow/corner{dir = 4},/area/hallway/primary/central) +"bkX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Starboard Primary Hallway"},/turf/open/floor/plasteel/yellow/corner{dir = 1},/area/hallway/primary/starboard) +"bkY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/yellow/corner{dir = 1},/area/hallway/primary/starboard) +"bkZ" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/open/floor/plasteel/yellow/corner{dir = 1},/area/hallway/primary/starboard) +"bla" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/yellow/corner{dir = 1},/area/hallway/primary/starboard) +"blb" = (/obj/machinery/firealarm{pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/yellow/corner{dir = 1},/area/hallway/primary/starboard) +"blc" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/machinery/camera{c_tag = "Starboard Primary Hallway - Tech Storage"; dir = 2; network = list("SS13")},/turf/open/floor/plasteel/yellow/corner{dir = 1},/area/hallway/primary/starboard) +"bld" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/yellow/corner{dir = 1},/area/hallway/primary/starboard) +"ble" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor,/turf/open/floor/plasteel/yellow/corner{dir = 1},/area/hallway/primary/starboard) +"blf" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/yellow/corner{dir = 1},/area/hallway/primary/starboard) +"blg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/plasteel/yellow/corner{dir = 1},/area/hallway/primary/starboard) +"blh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/airalarm{pixel_y = 23},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/yellow/corner{dir = 1},/area/hallway/primary/starboard) +"bli" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/yellow/corner{dir = 1},/area/hallway/primary/starboard) +"blj" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/structure/sign/securearea{pixel_y = 32},/turf/open/floor/plasteel/yellow/corner{dir = 1},/area/hallway/primary/starboard) +"blk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/power/apc{dir = 1; name = "Starboard Hallway APC"; pixel_x = 0; pixel_y = 26},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/open/floor/plasteel/yellow/corner{dir = 1},/area/hallway/primary/starboard) +"bll" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/caution/corner{dir = 4},/area/hallway/primary/starboard) +"blm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=14-Starboard-Central"; location = "13.3-Engineering-Central"},/turf/open/floor/plasteel/caution/corner{dir = 4},/area/hallway/primary/starboard) +"bln" = (/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/machinery/airalarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/table/glass,/turf/open/floor/plasteel/yellow/side{dir = 1},/area/engine/break_room) +"blo" = (/obj/item/weapon/book/manual/wiki/engineering_hacking{pixel_x = 4; pixel_y = 5},/obj/item/weapon/book/manual/wiki/engineering_construction{pixel_y = 3},/obj/item/weapon/book/manual/wiki/engineering_guide{pixel_x = -4; pixel_y = 0},/obj/structure/table/glass,/turf/open/floor/plasteel/yellow/side{dir = 1},/area/engine/break_room) +"blp" = (/obj/item/weapon/folder/yellow,/obj/item/weapon/folder/yellow,/obj/machinery/light{dir = 1},/obj/structure/sign/securearea{pixel_y = 32},/obj/structure/table/glass,/turf/open/floor/plasteel/yellow/side{dir = 1},/area/engine/break_room) +"blq" = (/turf/open/floor/plasteel/yellow/side{dir = 1},/area/engine/break_room) +"blr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 2},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/engine/break_room) +"bls" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/engine/break_room) +"blt" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 21},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/engine/break_room) +"blu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/engine/break_room) +"blv" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/engine/break_room) +"blw" = (/obj/machinery/disposal/bin{pixel_x = 2; pixel_y = 2},/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/engine/break_room) +"blx" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/break_room) +"bly" = (/obj/machinery/door/airlock/shuttle{name = "Escape Pod Airlock"},/obj/docking_port/mobile/pod{dir = 4; id = "pod4"; name = "escape pod 4"; port_angle = 180; preferred_direction = 4},/turf/open/floor/mineral/titanium/blue,/area/shuttle/pod_4) +"blz" = (/obj/structure/chair{dir = 4},/obj/item/device/radio/intercom{pixel_y = 25},/obj/item/weapon/storage/pod{pixel_x = 6; pixel_y = -32},/turf/open/floor/mineral/titanium/blue,/area/shuttle/pod_4) +"blA" = (/obj/structure/chair{dir = 4},/obj/machinery/status_display{density = 0; layer = 3; pixel_x = 0; pixel_y = 32},/obj/machinery/computer/shuttle/pod{pixel_y = -32; possible_destinations = "pod_asteroid4"; shuttleId = "pod4"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/pod_4) +"blB" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/pod_4) +"blC" = (/obj/docking_port/stationary/random{dir = 4; id = "pod_asteroid4"; name = "asteroid"},/turf/open/space,/area/space) +"blD" = (/obj/machinery/light/small,/obj/machinery/camera{c_tag = "MiniSat Exterior - Space Access"; dir = 1; network = list("MiniSat")},/turf/open/floor/plasteel/vault{dir = 8},/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"blE" = (/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/machinery/door/window{dir = 8; name = "MiniSat Airlock Access"; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"blF" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/blue{pixel_y = 2},/obj/item/weapon/pen,/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) +"blG" = (/obj/structure/chair/office/dark{dir = 8},/obj/machinery/ai_status_display{pixel_x = 0; pixel_y = -32},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) +"blH" = (/obj/machinery/camera{c_tag = "AI Chamber - Aft"; dir = 1; network = list("RD")},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) +"blI" = (/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) +"blJ" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) +"blK" = (/obj/structure/chair/office/dark{dir = 4},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = -32},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) +"blL" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/blue{pixel_y = 2},/obj/item/weapon/pen,/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) +"blM" = (/obj/effect/landmark{name = "Observer-Start"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) +"blN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/door/firedoor,/turf/open/floor/plasteel/warning{dir = 8},/area/hallway/secondary/entry{name = "Arrivals"}) +"blO" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/turf/open/floor/plasteel/arrival{dir = 4},/area/hallway/secondary/entry{name = "Arrivals"}) +"blP" = (/obj/structure/sign/pods,/turf/closed/wall,/area/security/checkpoint2{name = "Customs"}) +"blQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/closed/wall,/area/security/checkpoint2{name = "Customs"}) +"blR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/airlock/security{name = "Customs Desk"; req_access = null; req_access_txt = "1"},/turf/open/floor/plasteel,/area/security/checkpoint2{name = "Customs"}) +"blS" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/security/checkpoint2) +"blT" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/delivery,/area/hallway/primary/port) +"blU" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;48;50;1"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"blV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"blW" = (/obj/machinery/door/window/eastleft{base_state = "right"; icon_state = "right"; name = "Deliveries"; req_access_txt = "50"},/turf/open/floor/plasteel/delivery,/area/quartermaster/office{name = "\improper Cargo Office"}) +"blX" = (/obj/machinery/conveyor_switch/oneway{convdir = -1; id = "packageExternal"; pixel_y = 18},/turf/open/floor/plasteel/loadingarea{dir = 4},/area/quartermaster/office{name = "\improper Cargo Office"}) +"blY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/quartermaster/office{name = "\improper Cargo Office"}) +"blZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/quartermaster/office{name = "\improper Cargo Office"}) +"bma" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel,/area/quartermaster/office{name = "\improper Cargo Office"}) +"bmb" = (/obj/structure/chair/office/dark{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/office{name = "\improper Cargo Office"}) +"bmc" = (/obj/structure/table,/obj/item/device/destTagger{pixel_x = 4; pixel_y = 3},/obj/machinery/light_switch{pixel_x = 27},/turf/open/floor/plasteel/arrival{dir = 4},/area/quartermaster/office{name = "\improper Cargo Office"}) +"bmd" = (/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/folder/yellow,/obj/item/weapon/folder/yellow,/obj/item/device/multitool,/obj/item/weapon/pen/red,/turf/open/floor/plasteel/brown{dir = 8},/area/quartermaster/office{name = "\improper Cargo Office"}) +"bme" = (/obj/structure/chair/office/dark{dir = 8},/turf/open/floor/plasteel,/area/quartermaster/office{name = "\improper Cargo Office"}) +"bmf" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/light_switch{pixel_x = 27; pixel_y = 0},/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/brown{dir = 4},/area/quartermaster/office{name = "\improper Cargo Office"}) +"bmg" = (/turf/open/floor/plasteel/brown{dir = 8},/area/hallway/primary/port) +"bmh" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel,/area/hallway/primary/port) +"bmi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) +"bmj" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/hallway/primary/port) +"bmk" = (/obj/structure/chair{dir = 8},/obj/effect/landmark/start{name = "Assistant"},/turf/open/floor/plasteel/brown{dir = 4},/area/hallway/primary/port) +"bml" = (/obj/structure/table,/obj/item/weapon/storage/box/lights/mixed,/obj/item/weapon/storage/box/lights/mixed,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/turf/open/floor/plasteel/floorgrime,/area/janitor) +"bmm" = (/obj/structure/janitorialcart,/turf/open/floor/plasteel/floorgrime,/area/janitor) +"bmn" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1},/obj/machinery/light/small,/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -28},/obj/vehicle/janicart,/obj/item/key/janitor,/turf/open/floor/plating,/area/janitor) +"bmo" = (/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/disposal/bin,/turf/open/floor/plasteel/floorgrime,/area/janitor) +"bmp" = (/obj/item/weapon/storage/box/lights/mixed,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/maintcentral{name = "Central Maintenance"}) +"bmq" = (/obj/item/clothing/mask/gas,/turf/open/floor/plating,/area/maintenance/maintcentral{name = "Central Maintenance"}) +"bmr" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/door/poddoor/preopen{id = "bridge blast"; layer = 2.9; name = "bridge blast door"},/turf/open/floor/plating,/area/bridge) +"bms" = (/obj/item/weapon/folder/white,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light{dir = 8},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/table/glass,/turf/open/floor/plasteel/darkgreen/side{dir = 8},/area/bridge) +"bmt" = (/obj/structure/chair/office/dark{dir = 8},/turf/open/floor/plasteel/black,/area/bridge) +"bmu" = (/obj/structure/chair/office/dark{dir = 1},/turf/open/floor/plasteel/black,/area/bridge) +"bmv" = (/turf/open/floor/plasteel/black,/area/bridge) +"bmw" = (/obj/structure/chair/office/dark{dir = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/bridge) +"bmx" = (/obj/structure/chair/office/dark{dir = 4},/turf/open/floor/plasteel/black,/area/bridge) +"bmy" = (/obj/item/weapon/folder/red{pixel_y = 3},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light{dir = 4},/obj/structure/table/glass,/obj/item/weapon/folder/red{pixel_y = 3},/turf/open/floor/plasteel/darkred/side{dir = 4},/area/bridge) +"bmz" = (/turf/closed/wall,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bmA" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green{pixel_x = 1; pixel_y = 5},/obj/structure/window/reinforced{dir = 1; pixel_y = 2},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/weapon/bikehorn/rubberducky,/obj/machinery/light_switch{pixel_x = -28; pixel_y = 0},/obj/item/weapon/card/id/captains_spare,/turf/open/floor/wood,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bmB" = (/obj/machinery/door/window{dir = 1; name = "Captain's Bedroom"; req_access_txt = "20"},/turf/open/floor/wood,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bmC" = (/obj/structure/closet/secure_closet/captains,/obj/structure/window/reinforced{dir = 1; pixel_y = 2},/turf/open/floor/wood,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bmD" = (/obj/structure/window/reinforced{dir = 1; pixel_y = 2},/obj/machinery/suit_storage_unit/captain,/turf/open/floor/wood,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bmE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/central) +"bmF" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bmG" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bmH" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Starboard Primary Hallway"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bmI" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bmJ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bmK" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bmL" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bmM" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bmN" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bmO" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/junction{dir = 2; icon_state = "pipe-j1"},/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bmP" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bmQ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bmR" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bmS" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bmT" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bmU" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bmV" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bmW" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bmX" = (/obj/machinery/firealarm{dir = 4; pixel_x = 28},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/caution/corner{dir = 4},/area/hallway/primary/starboard) +"bmY" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/light_switch{pixel_x = -22; pixel_y = 0},/turf/open/floor/plasteel,/area/engine/break_room) +"bmZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/engine/break_room) +"bna" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/engine/break_room) +"bnb" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/engine/break_room) +"bnc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/engine/break_room) +"bnd" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/obj/machinery/holopad,/turf/open/floor/plasteel,/area/engine/break_room) +"bne" = (/turf/open/floor/plasteel,/area/engine/break_room) +"bnf" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/external{name = "Escape Pod Four"; req_access = null; req_access_txt = "32"},/turf/open/floor/plasteel,/area/engine/break_room) +"bng" = (/obj/structure/closet/emcloset,/turf/open/floor/plating,/area/engine/break_room) +"bnh" = (/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/turf/open/space,/area/space) +"bni" = (/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"bnj" = (/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/tcomfoyer{name = "\improper MiniSat Foyer"}) +"bnk" = (/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/aisat_interior) +"bnl" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/aisat_interior) +"bnm" = (/obj/machinery/door/airlock/highsecurity{icon_state = "door_closed"; locked = 0; name = "AI Chamber"; req_access_txt = "16"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/poddoor/shutters/preopen{id = "AI Chamber entrance shutters"; name = "AI Chamber entrance shutters"},/obj/machinery/flasher{id = "AI"; pixel_x = -26; pixel_y = 3},/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1447; listening = 0; name = "Station Intercom (AI Private)"; pixel_x = 28; pixel_y = 0},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) +"bnn" = (/turf/closed/wall/r_wall,/area/ai_monitored/storage/secure{name = "MiniSat Maintenance"}) +"bno" = (/obj/structure/chair{dir = 1},/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) +"bnp" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/warning{dir = 8},/area/hallway/secondary/entry{name = "Arrivals"}) +"bnq" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white/corner{dir = 4},/area/hallway/secondary/entry{name = "Arrivals"}) +"bnr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/arrival{dir = 5},/area/hallway/secondary/entry{name = "Arrivals"}) +"bns" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/hallway/primary/port) +"bnt" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side{dir = 9},/area/hallway/primary/port) +"bnu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/bot,/area/hallway/primary/port) +"bnv" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/bot,/area/hallway/primary/port) +"bnw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 21},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/neutral/side{dir = 5},/area/hallway/primary/port) +"bnx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor,/obj/structure/sign/poster{pixel_y = 32},/turf/open/floor/plasteel,/area/hallway/primary/port) +"bny" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/neutral/side{dir = 9},/area/hallway/primary/port) +"bnz" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/obj/structure/sign/map/left{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-left-MS"; pixel_y = 32},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/hallway/primary/port) +"bnA" = (/obj/structure/extinguisher_cabinet{pixel_x = 30; pixel_y = 0},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/sign/map/right{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-right-MS"; pixel_y = 32},/turf/open/floor/plasteel/neutral/side{dir = 5},/area/hallway/primary/port) +"bnB" = (/obj/machinery/conveyor{dir = 1; id = "packageExternal"},/obj/structure/plasticflaps{opacity = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating,/area/quartermaster/office{name = "\improper Cargo Office"}) +"bnC" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/yellow,/obj/item/weapon/pen{pixel_x = 4; pixel_y = 4},/obj/machinery/computer/stockexchange,/turf/open/floor/plasteel/arrival{dir = 2},/area/quartermaster/office{name = "\improper Cargo Office"}) +"bnD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/chair/office/dark,/obj/effect/landmark/start{name = "Cargo Technician"},/turf/open/floor/plasteel/arrival{dir = 2},/area/quartermaster/office{name = "\improper Cargo Office"}) +"bnE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/arrival{dir = 2},/area/quartermaster/office{name = "\improper Cargo Office"}) +"bnF" = (/obj/structure/filingcabinet/filingcabinet,/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = -28},/obj/machinery/camera{c_tag = "Cargo - Mailroom"; dir = 1; network = list("SS13")},/turf/open/floor/plasteel/arrival{dir = 2},/area/quartermaster/office{name = "\improper Cargo Office"}) +"bnG" = (/obj/structure/table,/obj/item/stack/wrapping_paper,/obj/item/stack/wrapping_paper,/obj/machinery/requests_console{department = "Cargo Bay"; departmentType = 2; pixel_y = -30},/obj/item/stack/packageWrap{pixel_x = 2; pixel_y = -3},/obj/item/stack/packageWrap{pixel_x = 2; pixel_y = -3},/obj/item/stack/packageWrap{pixel_x = 2; pixel_y = -3},/obj/item/stack/packageWrap{pixel_x = 2; pixel_y = -3},/obj/item/stack/packageWrap{pixel_x = 2; pixel_y = -3},/obj/item/stack/packageWrap{pixel_x = 2; pixel_y = -3},/obj/item/stack/packageWrap{pixel_x = 2; pixel_y = -3},/obj/item/stack/packageWrap{pixel_x = 2; pixel_y = -3},/obj/item/weapon/storage/box/lights/mixed,/turf/open/floor/plasteel/arrival{dir = 2},/area/quartermaster/office{name = "\improper Cargo Office"}) +"bnH" = (/obj/item/weapon/storage/box,/obj/structure/table,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/machinery/airalarm{dir = 1; pixel_y = -22},/obj/item/weapon/hand_labeler,/turf/open/floor/plasteel/arrival{dir = 6},/area/quartermaster/office{name = "\improper Cargo Office"}) +"bnI" = (/obj/structure/table,/obj/machinery/computer/stockexchange,/obj/machinery/firealarm{dir = 8; pixel_x = -26; pixel_y = 0},/turf/open/floor/plasteel/brown{dir = 10},/area/quartermaster/office{name = "\improper Cargo Office"}) +"bnJ" = (/obj/machinery/photocopier,/turf/open/floor/plasteel/brown{dir = 2},/area/quartermaster/office{name = "\improper Cargo Office"}) +"bnK" = (/turf/open/floor/plasteel/brown{dir = 2},/area/quartermaster/office{name = "\improper Cargo Office"}) +"bnL" = (/obj/structure/disposalpipe/segment,/obj/machinery/holopad,/turf/open/floor/plasteel/brown{dir = 2},/area/quartermaster/office{name = "\improper Cargo Office"}) +"bnM" = (/obj/machinery/autolathe,/obj/machinery/newscaster{pixel_x = 28; pixel_y = 0},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -28},/turf/open/floor/plasteel/brown{dir = 6},/area/quartermaster/office{name = "\improper Cargo Office"}) +"bnN" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel/brown{dir = 10},/area/hallway/primary/port) +"bnO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/holopad,/turf/open/floor/plasteel/brown/corner{dir = 8},/area/hallway/primary/port) +"bnP" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/brown/corner{dir = 2},/area/hallway/primary/port) +"bnQ" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/stack/packageWrap{pixel_x = 2; pixel_y = -3},/obj/item/stack/packageWrap{pixel_x = 2; pixel_y = -3},/obj/item/stack/packageWrap{pixel_x = 2; pixel_y = -3},/obj/item/weapon/hand_labeler,/turf/open/floor/plasteel/brown{dir = 2},/area/hallway/primary/port) +"bnR" = (/obj/structure/table,/obj/item/device/toner,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 30},/turf/open/floor/plasteel/brown{dir = 6},/area/hallway/primary/port) +"bnS" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor,/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/central) +"bnT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/hallway/primary/central) +"bnU" = (/turf/closed/wall/r_wall,/area/crew_quarters/heads) +"bnV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/weapon/tank/internals/air,/turf/open/floor/plating,/area/maintenance/maintcentral{name = "Central Maintenance"}) +"bnW" = (/obj/item/weapon/extinguisher,/turf/open/floor/plating,/area/maintenance/maintcentral{name = "Central Maintenance"}) +"bnX" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/filingcabinet/chestdrawer{pixel_y = 3},/obj/machinery/airalarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/open/floor/plasteel/darkblue/side{dir = 9},/area/bridge) +"bnY" = (/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 29},/obj/machinery/computer/teleporter,/turf/open/floor/plasteel/darkblue/side{dir = 1},/area/bridge) +"bnZ" = (/obj/item/weapon/storage/firstaid/regular{pixel_x = 3; pixel_y = 3},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/table/glass,/turf/open/floor/plasteel/darkgreen/corner{dir = 1},/area/bridge) +"boa" = (/obj/item/device/radio/beacon,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/bridge) +"bob" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/recharger{pixel_y = 3},/obj/item/weapon/restraints/handcuffs{pixel_y = 3},/obj/structure/table/glass,/turf/open/floor/plasteel/darkred/corner{dir = 4},/area/bridge) +"boc" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/computer/security/mining{network = list("MINE","AuxBase")},/obj/machinery/keycard_auth{pixel_x = 0; pixel_y = 24},/turf/open/floor/plasteel/darkblue/side{dir = 1},/area/bridge) +"bod" = (/obj/machinery/requests_console{announcementConsole = 1; department = "Bridge"; departmentType = 5; name = "Bridge RC"; pixel_x = 32; pixel_y = 0},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/computer/cargo/request,/turf/open/floor/plasteel/darkblue/side{dir = 5},/area/bridge) +"boe" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/item/weapon/soap/deluxe,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/obj/machinery/shower{pixel_y = 12},/obj/structure/curtain,/turf/open/floor/plasteel/white,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bof" = (/obj/structure/mirror{pixel_y = 28},/obj/structure/sink{pixel_y = 17},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/landmark{name = "revenantspawn"},/turf/open/floor/plasteel/white,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bog" = (/obj/structure/toilet{pixel_y = 13},/obj/machinery/light{dir = 2; icon_state = "tube1"},/obj/effect/landmark/start{name = "Captain"},/obj/machinery/light_switch{pixel_y = -25},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"boh" = (/obj/machinery/door/airlock/silver{name = "Bathroom"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"boi" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/wood,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"boj" = (/turf/open/floor/wood,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bok" = (/obj/effect/landmark/start{name = "Captain"},/obj/machinery/airalarm{dir = 1; pixel_y = -22},/turf/open/floor/wood,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bol" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/central) +"bom" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=13.1-Engineering-Enter"; location = "12-Central-Starboard"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bon" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/yellow/corner{dir = 2},/area/hallway/primary/central) +"boo" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Starboard Primary Hallway"},/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/starboard) +"bop" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/starboard) +"boq" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/starboard) +"bor" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/starboard) +"bos" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/machinery/light,/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/starboard) +"bot" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/starboard) +"bou" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/firedoor,/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/starboard) +"bov" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/starboard) +"bow" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/machinery/camera{c_tag = "Starboard Primary Hallway - Auxiliary Tool Storage"; dir = 1; network = list("SS13")},/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/starboard) +"box" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/starboard) +"boy" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/starboard) +"boz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/starboard) +"boA" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/camera{c_tag = "Starboard Primary Hallway - Engineering"; dir = 1; network = list("SS13")},/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/starboard) +"boB" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=13.2-Tcommstore"; location = "13.1-Engineering-Enter"},/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/starboard) +"boC" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"boD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/caution/corner{dir = 4},/area/hallway/primary/starboard) +"boE" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/engine/break_room) +"boF" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel,/area/engine/break_room) +"boG" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/turf/open/floor/plasteel,/area/engine/break_room) +"boH" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/engine/break_room) +"boI" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/engine/break_room) +"boJ" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/plasteel,/area/engine/break_room) +"boK" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/engine/break_room) +"boL" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/engine/break_room) +"boM" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel,/area/engine/break_room) +"boN" = (/obj/structure/sign/pods,/turf/closed/wall/r_wall,/area/engine/break_room) +"boO" = (/obj/structure/transit_tube{icon_state = "D-SE"},/obj/structure/lattice,/turf/open/space,/area/space) +"boP" = (/obj/structure/transit_tube{icon_state = "E-SW"},/obj/structure/lattice,/turf/open/space,/area/space) +"boQ" = (/obj/structure/transit_tube{icon_state = "E-W-Pass"},/obj/structure/lattice,/turf/open/space,/area/space) +"boR" = (/obj/structure/transit_tube{icon_state = "W-SE"},/turf/open/space,/area/space) +"boS" = (/obj/structure/window/reinforced,/obj/structure/transit_tube{icon_state = "D-SW"},/turf/open/space,/area/space) +"boT" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/open/space,/area/space) +"boU" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"boV" = (/obj/machinery/atmospherics/components/unary/outlet_injector{dir = 2; icon_state = "inje_on"; on = 1},/obj/structure/window/reinforced,/turf/open/floor/plating/airless,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"boW" = (/obj/machinery/computer/teleporter,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/obj/machinery/firealarm{dir = 8; pixel_x = -26; pixel_y = 0},/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/turret_protected/tcomfoyer{name = "\improper MiniSat Foyer"}) +"boX" = (/obj/machinery/teleport/station,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/turret_protected/tcomfoyer{name = "\improper MiniSat Foyer"}) +"boY" = (/obj/machinery/teleport/hub,/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/turret_protected/tcomfoyer{name = "\improper MiniSat Foyer"}) +"boZ" = (/obj/machinery/ai_status_display{pixel_x = 0; pixel_y = 32},/obj/machinery/porta_turret/ai{dir = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/machinery/computer/security/telescreen{desc = "Used for watching the RD's goons from the safety of his office."; dir = 4; name = "Research Monitor"; network = list("RD"); pixel_x = -28; pixel_y = 0},/turf/open/floor/plasteel/vault{dir = 1},/area/ai_monitored/turret_protected/aisat_interior) +"bpa" = (/obj/structure/showcase{density = 0; desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; dir = 2; icon = 'icons/mob/robots.dmi'; icon_state = "robot_old"; name = "Cyborg Statue"; pixel_x = 0; pixel_y = 20},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/darkblue/corner{dir = 1},/area/ai_monitored/turret_protected/aisat_interior) +"bpb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) +"bpc" = (/obj/structure/showcase{density = 0; desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; dir = 2; icon = 'icons/mob/robots.dmi'; icon_state = "robot_old"; name = "Cyborg Statue"; pixel_x = 0; pixel_y = 20},/turf/open/floor/plasteel/darkblue/corner{dir = 4},/area/ai_monitored/turret_protected/aisat_interior) +"bpd" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/porta_turret/ai{dir = 2},/obj/machinery/computer/security/telescreen{dir = 8; name = "MiniSat Monitor"; network = list("MiniSat","tcomm"); pixel_x = 28; pixel_y = 0},/turf/open/floor/plasteel/vault{dir = 4},/area/ai_monitored/turret_protected/aisat_interior) +"bpe" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/storage/secure{name = "MiniSat Maintenance"}) +"bpf" = (/obj/machinery/recharge_station,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/storage/secure{name = "MiniSat Maintenance"}) +"bpg" = (/obj/machinery/airalarm{pixel_y = 26},/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 2; name = "Auxiliary MiniSat Distribution Port"},/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/storage/secure{name = "MiniSat Maintenance"}) +"bph" = (/obj/machinery/power/port_gen/pacman,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/storage/secure{name = "MiniSat Maintenance"}) +"bpi" = (/obj/structure/closet/emcloset,/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) +"bpj" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) +"bpk" = (/obj/structure/sign/map/left{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-left-MS"; pixel_y = -32},/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) +"bpl" = (/obj/structure/sign/map/right{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-right-MS"; pixel_y = -32},/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) +"bpm" = (/obj/machinery/requests_console{department = "Arrival shuttle"; pixel_y = -30},/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) +"bpn" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_l"; dir = 8},/turf/open/floor/plating,/area/shuttle/arrival) +"bpo" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/hallway/secondary/entry{name = "Arrivals"}) +"bpp" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/arrival{dir = 4},/area/hallway/secondary/entry{name = "Arrivals"}) +"bpq" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/hallway/primary/port) +"bpr" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/neutral/side{dir = 10},/area/hallway/primary/port) +"bps" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/neutral/side,/area/hallway/primary/port) +"bpt" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=5-Customs"; location = "4-Customs"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/neutral/side,/area/hallway/primary/port) +"bpu" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel/neutral/side,/area/hallway/primary/port) +"bpv" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/neutral/side{dir = 6},/area/hallway/primary/port) +"bpw" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/neutral/side{dir = 10},/area/hallway/primary/port) +"bpx" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/port) +"bpy" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/neutral/side{dir = 4},/area/hallway/primary/port) +"bpz" = (/obj/machinery/conveyor{dir = 1; id = "packageExternal"},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating,/area/quartermaster/office{name = "\improper Cargo Office"}) +"bpA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/obj/structure/table/reinforced,/obj/machinery/door/window/westleft{dir = 1; name = "Delivery Desk"; req_access_txt = "50"},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel/bot,/area/quartermaster/office{name = "\improper Cargo Office"}) +"bpB" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/quartermaster/office{name = "\improper Cargo Office"}) +"bpC" = (/obj/machinery/door/firedoor,/obj/machinery/mineral/ore_redemption,/turf/open/floor/plasteel/black,/area/quartermaster/office{name = "\improper Cargo Office"}) +"bpD" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/quartermaster/office{name = "\improper Cargo Office"}) +"bpE" = (/obj/structure/sign/directions/engineering{desc = "A direction sign, pointing out which way the Suuply department is."; dir = 1; icon_state = "direction_supply"; name = "cargo department"; pixel_y = 8},/turf/closed/wall,/area/quartermaster/office{name = "\improper Cargo Office"}) +"bpF" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/brown{dir = 8},/area/hallway/primary/port) +"bpG" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/turf/open/floor/plasteel/brown{dir = 4},/area/hallway/primary/port) +"bpH" = (/obj/structure/sign/directions/security{desc = "A direction sign, pointing out which way the security department is."; dir = 1; icon_state = "direction_sec"; pixel_x = 0; pixel_y = 8},/obj/structure/sign/directions/engineering{desc = "A direction sign, pointing out which way the engineering department is."; dir = 4; icon_state = "direction_eng"; pixel_y = 0},/obj/structure/sign/directions/engineering{desc = "A direction sign, pointing out which way the bridge is."; dir = 2; icon_state = "direction_bridge"; name = "bridge"; pixel_y = -8},/turf/closed/wall/r_wall,/area/hallway/primary/port) +"bpI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/light{dir = 4},/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/hallway/primary/central) +"bpJ" = (/obj/item/device/flashlight/lamp/green{pixel_x = 1; pixel_y = 5},/obj/machinery/button/door{id = "hop"; name = "Privacy Shutters Control"; pixel_x = 0; pixel_y = 25; req_access_txt = "28"},/obj/structure/table/wood,/turf/open/floor/wood,/area/crew_quarters/heads) +"bpK" = (/obj/machinery/light{dir = 1},/obj/item/weapon/storage/secure/briefcase,/obj/structure/table/wood,/obj/machinery/computer/security/telescreen{desc = "Used for watching Prison Wing holding areas."; name = "Prison Monitor"; network = list("Prison"); pixel_x = 0; pixel_y = 30},/turf/open/floor/wood,/area/crew_quarters/heads) +"bpL" = (/obj/machinery/recharger,/obj/item/weapon/storage/secure/safe{pixel_x = 34; pixel_y = 0},/obj/structure/table/wood,/turf/open/floor/wood,/area/crew_quarters/heads) +"bpM" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plating,/area/maintenance/maintcentral{name = "Central Maintenance"}) +"bpN" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 1},/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plating,/area/maintenance/maintcentral{name = "Central Maintenance"}) +"bpO" = (/obj/item/device/radio/off,/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/maintcentral{name = "Central Maintenance"}) +"bpP" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=4"; dir = 4; freq = 1400; location = "Bridge"},/obj/structure/plasticflaps{opacity = 1},/turf/open/floor/plasteel/bot,/area/maintenance/maintcentral{name = "Central Maintenance"}) +"bpQ" = (/obj/machinery/door/window/westleft{dir = 4; name = "Bridge Deliveries"; req_access_txt = "19"},/obj/machinery/door/poddoor/preopen{id = "bridge blast"; name = "bridge blast door"},/turf/open/floor/plasteel/delivery,/area/bridge) +"bpR" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/darkblue/side{dir = 8},/area/bridge) +"bpS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/black,/area/bridge) +"bpT" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/black,/area/bridge) +"bpU" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/black,/area/bridge) +"bpV" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/darkblue/corner,/area/bridge) +"bpW" = (/obj/structure/window/reinforced,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/darkblue/side{dir = 2},/area/bridge) +"bpX" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/window/brigdoor{dir = 2; name = "Command Desk"; req_access_txt = "19"},/turf/open/floor/plasteel/darkblue/side{dir = 2},/area/bridge) +"bpY" = (/obj/structure/window/reinforced,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/darkblue/side{dir = 2},/area/bridge) +"bpZ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/darkblue/corner{dir = 8},/area/bridge) +"bqa" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/black,/area/bridge) +"bqb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/bridge) +"bqc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/chair/office/dark{dir = 1},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/camera{c_tag = "Bridge - Starboard"; dir = 8; network = list("SS13")},/turf/open/floor/plasteel/darkblue/side{dir = 4},/area/bridge) +"bqd" = (/obj/machinery/door/airlock/command{name = "Captain's Quarters"; req_access = null; req_access_txt = "20"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/carpet,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bqe" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = -32; pixel_y = 0},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/central) +"bqf" = (/obj/machinery/light{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/yellow/corner{dir = 2},/area/hallway/primary/central) +"bqg" = (/obj/structure/sign/directions/engineering{desc = "A direction sign, pointing out which way the escape arm is."; icon_state = "direction_evac"; name = "escape arm"},/obj/structure/sign/directions/engineering{desc = "A direction sign, pointing out which way the medical department is."; icon_state = "direction_med"; name = "medical department"; pixel_y = 8},/obj/structure/sign/directions/engineering{desc = "A direction sign, pointing out which way the research department is."; icon_state = "direction_sci"; name = "research department"; pixel_y = -8},/turf/closed/wall,/area/storage/art) +"bqh" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/storage/art) +"bqi" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Art Storage"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/storage/art) +"bqj" = (/turf/closed/wall,/area/storage/art) +"bqk" = (/turf/closed/wall,/area/crew_quarters/bar) +"bql" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;25;46"},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/starboard) +"bqm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/maintenance/starboard) +"bqn" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock{name = "Starboard Emergency Storage"; req_access_txt = "0"},/turf/open/floor/plating,/area/maintenance/starboard) +"bqo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;25;46"},/turf/open/floor/plating,/area/maintenance/starboard) +"bqp" = (/obj/structure/sign/directions/engineering{desc = "A direction sign, pointing out which way the engineering department is."; dir = 4; icon_state = "direction_eng"; pixel_y = 8},/turf/closed/wall,/area/maintenance/starboard) +"bqq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/starboard) +"bqr" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bqs" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j2s"; sortType = 6},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/caution/corner{dir = 4},/area/hallway/primary/starboard) +"bqt" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_engineering{name = "Engineering Foyer"; req_access_txt = "0"; req_one_access_txt = "32;19"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel,/area/engine/break_room) +"bqu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/engine/break_room) +"bqv" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/open/floor/plasteel,/area/engine/break_room) +"bqw" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/break_room) +"bqx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel,/area/engine/break_room) +"bqy" = (/obj/structure/table/glass,/obj/item/device/lightreplacer{pixel_y = 7},/turf/open/floor/plasteel,/area/engine/break_room) +"bqz" = (/obj/item/weapon/reagent_containers/food/drinks/soda_cans/thirteenloko{pixel_y = 4},/obj/structure/table/glass,/turf/open/floor/plasteel,/area/engine/break_room) +"bqA" = (/obj/structure/chair/stool{pixel_y = 8},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/engine/break_room) +"bqB" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/camera{c_tag = "Engineering - Foyer - Starboard"; dir = 8; network = list("SS13")},/turf/open/floor/plasteel,/area/engine/break_room) +"bqC" = (/obj/structure/transit_tube{dir = 4; icon_state = "Block"},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/open/floor/plasteel/darkblue/corner{dir = 4},/area/engine/break_room) +"bqD" = (/obj/structure/transit_tube/station{reverse_launch = 1},/obj/structure/sign/securearea{pixel_y = 32},/turf/open/floor/plasteel/darkblue/corner{dir = 4},/area/engine/break_room) +"bqE" = (/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/transit_tube{icon_state = "W-SE"},/obj/machinery/ai_status_display{pixel_y = 32},/turf/open/floor/plasteel/darkblue/corner{dir = 4},/area/engine/break_room) +"bqF" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/obj/structure/transit_tube{icon_state = "D-SW"},/turf/open/space,/area/space) +"bqG" = (/obj/structure/transit_tube{icon_state = "D-SE"},/turf/open/space,/area/space) +"bqH" = (/obj/structure/transit_tube{icon_state = "NE-SW"},/turf/open/space,/area/space) +"bqI" = (/obj/structure/transit_tube{icon_state = "D-NW"},/turf/open/space,/area/space) +"bqJ" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/transit_tube{icon_state = "D-NE"},/turf/open/space,/area/space) +"bqK" = (/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/transit_tube{icon_state = "S-NW"},/turf/open/floor/plasteel/darkblue/corner{dir = 1},/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"bqL" = (/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/obj/machinery/light/small{dir = 1},/obj/machinery/airalarm{pixel_y = 28},/turf/open/floor/plasteel/darkblue/corner{dir = 1},/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"bqM" = (/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/turf/open/floor/plasteel/darkblue/corner{dir = 1},/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"bqN" = (/obj/machinery/door/window{dir = 1; name = "MiniSat Walkway Access"; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/darkblue/corner{dir = 1},/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"bqO" = (/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/darkblue/corner{dir = 1},/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"bqP" = (/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/obj/structure/showcase{density = 0; desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; dir = 8; icon = 'icons/mob/robots.dmi'; icon_state = "robot_old"; name = "Cyborg Statue"; pixel_x = 9; pixel_y = 2},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel/darkblue/corner{dir = 1},/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"bqQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"bqR" = (/obj/structure/showcase{density = 0; desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; dir = 4; icon = 'icons/mob/robots.dmi'; icon_state = "robot_old"; name = "Cyborg Statue"; pixel_x = -9; pixel_y = 2},/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/darkblue/corner{dir = 1},/area/ai_monitored/turret_protected/tcomfoyer{name = "\improper MiniSat Foyer"}) +"bqS" = (/obj/item/device/radio/beacon,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/darkblue/corner{dir = 1},/area/ai_monitored/turret_protected/tcomfoyer{name = "\improper MiniSat Foyer"}) +"bqT" = (/obj/machinery/turretid{control_area = "AI Satellite Antechamber"; enabled = 1; icon_state = "control_standby"; name = "Antechamber Turret Control"; pixel_x = 30; pixel_y = 0; req_access = list(65)},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/obj/machinery/ai_slipper{icon_state = "motion0"; uses = 10},/turf/open/floor/plasteel/darkblue/corner{dir = 1},/area/ai_monitored/turret_protected/tcomfoyer{name = "\improper MiniSat Foyer"}) +"bqU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/aisat_interior) +"bqV" = (/obj/machinery/light/small{dir = 8},/obj/machinery/camera{c_tag = "MiniSat - Antechamber"; dir = 4; network = list("MiniSat")},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel/darkblue/corner{dir = 1},/area/ai_monitored/turret_protected/aisat_interior) +"bqW" = (/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,/turf/open/floor/plasteel/darkblue/corner{dir = 1},/area/ai_monitored/turret_protected/aisat_interior) +"bqX" = (/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/effect/landmark/start{name = "Cyborg"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) +"bqY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/darkblue/corner{dir = 4},/area/ai_monitored/turret_protected/aisat_interior) +"bqZ" = (/obj/machinery/power/apc{aidisabled = 0; cell_type = 2500; dir = 4; name = "MiniSat Antechamber APC"; pixel_x = 29; pixel_y = 0},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/darkblue/corner{dir = 4},/area/ai_monitored/turret_protected/aisat_interior) +"bra" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/ai_slipper{icon_state = "motion0"; uses = 10},/turf/open/floor/plasteel/darkwarning{dir = 1},/area/ai_monitored/storage/secure{name = "MiniSat Maintenance"}) +"brb" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/darkwarning{dir = 1},/area/ai_monitored/storage/secure{name = "MiniSat Maintenance"}) +"brc" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/darkwarning{dir = 1},/area/ai_monitored/storage/secure{name = "MiniSat Maintenance"}) +"brd" = (/obj/structure/showcase{density = 0; desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; dir = 8; icon = 'icons/mob/robots.dmi'; icon_state = "robot_old"; name = "Cyborg Statue"; pixel_x = 9; pixel_y = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/darkwarning{dir = 1},/area/ai_monitored/storage/secure{name = "MiniSat Maintenance"}) +"bre" = (/obj/machinery/door/airlock/shuttle{name = "Arrivals Shuttle Airlock"},/obj/docking_port/mobile{dwidth = 5; height = 7; id = "arrival"; name = "arrival shuttle"; port_angle = -90; preferred_direction = 8; width = 15},/obj/docking_port/stationary{dwidth = 5; height = 7; id = "arrival_home"; name = "port bay 1"; width = 15},/turf/open/floor/plating,/area/shuttle/arrival) +"brf" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/camera{c_tag = "Arrivals - Station Entrance"; dir = 4; network = list("SS13")},/turf/open/floor/plasteel/warning{dir = 8},/area/hallway/secondary/entry{name = "Arrivals"}) +"brg" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/entry{name = "Arrivals"}) +"brh" = (/turf/open/floor/plasteel/arrival{dir = 4},/area/hallway/secondary/entry{name = "Arrivals"}) +"bri" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green{pixel_x = 1; pixel_y = 5},/turf/open/floor/plasteel/grimy,/area/hallway/primary/port) +"brj" = (/obj/structure/chair/comfy/beige,/turf/open/floor/plasteel/grimy,/area/hallway/primary/port) +"brk" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/grimy,/area/hallway/primary/port) +"brl" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/snacks/chips,/turf/open/floor/plasteel/grimy,/area/hallway/primary/port) +"brm" = (/obj/machinery/vending/coffee,/turf/open/floor/plasteel/black,/area/hallway/primary/port) +"brn" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plasteel/neutral/side{dir = 8},/area/hallway/primary/port) +"bro" = (/obj/structure/disposalpipe/junction{dir = 1; icon_state = "pipe-j2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/hallway/primary/port) +"brp" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/firealarm{pixel_y = 32},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/port) +"brq" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/port) +"brr" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/port) +"brs" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/port) +"brt" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/port) +"bru" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/light{dir = 1},/obj/machinery/camera{c_tag = "Port Primary Hallway - Middle"; dir = 2; network = list("SS13")},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/port) +"brv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor,/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/port) +"brw" = (/obj/machinery/power/apc{dir = 1; name = "Port Hallway APC"; pixel_x = -1; pixel_y = 26},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/port) +"brx" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/port) +"bry" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 21},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/port) +"brz" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/brown/corner{dir = 4},/area/hallway/primary/port) +"brA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/brown/corner{dir = 1},/area/hallway/primary/port) +"brB" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/open/floor/plasteel/brown/corner{dir = 4},/area/hallway/primary/port) +"brC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/brown/corner{dir = 1},/area/hallway/primary/port) +"brD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Port Primary Hallway"},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/port) +"brE" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/central) +"brF" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=4-Customs"; location = "3-Central-Port"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/hallway/primary/central) +"brG" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/door/poddoor/preopen{id = "hop"; name = "privacy shutters"},/turf/open/floor/plating,/area/crew_quarters/heads) +"brH" = (/obj/item/weapon/folder/blue,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/table/wood,/obj/item/device/assembly/flash/handheld,/turf/open/floor/wood,/area/crew_quarters/heads) +"brI" = (/obj/effect/landmark/start{name = "Head of Personnel"},/obj/structure/chair/office/dark{dir = 8},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/wood,/area/crew_quarters/heads) +"brJ" = (/obj/machinery/newscaster/security_unit{pixel_x = 32; pixel_y = 0},/obj/machinery/computer/security/mining,/turf/open/floor/wood,/area/crew_quarters/heads) +"brK" = (/obj/machinery/power/apc{cell_type = 10000; dir = 8; name = "Bridge APC"; pixel_x = -27; pixel_y = 0},/obj/structure/cable/yellow,/obj/machinery/camera{c_tag = "Bridge - Port"; dir = 4; network = list("SS13")},/turf/open/floor/plasteel/darkblue/side{dir = 8},/area/bridge) +"brL" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/bridge) +"brM" = (/turf/open/floor/plasteel/darkblue/corner,/area/bridge) +"brN" = (/turf/open/floor/plasteel/darkblue/side{dir = 2},/area/bridge) +"brO" = (/turf/open/floor/plasteel/darkblue/side{dir = 6},/area/bridge) +"brP" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/recharger,/obj/item/weapon/restraints/handcuffs,/obj/structure/table/glass,/turf/open/floor/plasteel/black,/area/bridge) +"brQ" = (/obj/machinery/computer/communications,/turf/open/floor/plasteel/black,/area/bridge) +"brR" = (/obj/machinery/computer/security/wooden_tv{pixel_x = 1; pixel_y = 6},/obj/structure/table/glass,/turf/open/floor/plasteel/black,/area/bridge) +"brS" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/table/glass,/obj/item/weapon/folder/blue{pixel_y = 2},/obj/item/weapon/folder/blue{pixel_y = 2},/turf/open/floor/plasteel/black,/area/bridge) +"brT" = (/turf/open/floor/plasteel/darkblue/side{dir = 10},/area/bridge) +"brU" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/darkblue/corner{dir = 8},/area/bridge) +"brV" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/black,/area/bridge) +"brW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/darkblue/side{dir = 4},/area/bridge) +"brX" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/item/weapon/storage/fancy/donut_box,/obj/structure/table/glass,/turf/open/floor/plasteel/black,/area/bridge) +"brY" = (/obj/structure/displaycase/captain{pixel_y = 5},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/open/floor/wood,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"brZ" = (/obj/structure/sign/map/left{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-left-MS"; pixel_y = 32},/turf/open/floor/wood,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bsa" = (/obj/structure/sign/map/right{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-right-MS"; pixel_y = 32},/turf/open/floor/wood,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bsb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/wood,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bsc" = (/obj/machinery/computer/communications,/obj/item/device/radio/intercom{dir = 8; freerange = 1; name = "Station Intercom (Captain)"; pixel_x = 28},/obj/machinery/ai_status_display{pixel_y = 32},/obj/machinery/keycard_auth{pixel_x = 24; pixel_y = 24},/turf/open/floor/wood,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bsd" = (/obj/structure/rack,/obj/item/weapon/cane,/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/glowshroom,/turf/open/floor/plating,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bse" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/machinery/camera{c_tag = "Central Primary Hallway - Starboard - Art Storage"; dir = 4; network = list("SS13")},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/central) +"bsf" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/hallway/primary/central) +"bsg" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/storage/art) +"bsh" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/storage/art) +"bsi" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/storage/art) +"bsj" = (/obj/machinery/light_switch{pixel_x = 27},/obj/machinery/photocopier,/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel,/area/storage/art) +"bsk" = (/obj/structure/closet/secure_closet/bar{req_access_txt = "25"},/turf/open/floor/wood,/area/crew_quarters/bar) +"bsl" = (/obj/machinery/reagentgrinder,/obj/structure/table/wood,/turf/open/floor/wood,/area/crew_quarters/bar) +"bsm" = (/obj/structure/table/wood,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/weapon/gun/projectile/revolver/doublebarrel,/obj/machinery/camera{c_tag = "Bar - Backroom"; dir = 2; network = list("SS13")},/turf/open/floor/wood,/area/crew_quarters/bar) +"bsn" = (/obj/structure/sink/kitchen{pixel_y = 28},/turf/open/floor/wood,/area/crew_quarters/bar) +"bso" = (/obj/machinery/door/window/southleft{base_state = "left"; dir = 2; icon_state = "left"; name = "Bar Delivery"; req_access_txt = "25"},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/delivery,/area/crew_quarters/bar) +"bsp" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=1"; dir = 8; freq = 1400; location = "Bar"},/obj/structure/plasticflaps{opacity = 1},/turf/open/floor/plasteel/bot{dir = 1},/area/crew_quarters/bar) +"bsq" = (/obj/item/weapon/storage/box/lights/mixed,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/starboard) +"bsr" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/starboard) +"bss" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/starboard) +"bst" = (/obj/structure/closet/firecloset,/turf/open/floor/plating,/area/maintenance/starboard) +"bsu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/space_heater,/turf/open/floor/plating,/area/maintenance/starboard) +"bsv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/starboard) +"bsw" = (/obj/structure/closet/emcloset,/turf/open/floor/plating{icon_state = "platingdmg1"},/area/maintenance/starboard) +"bsx" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/starboard) +"bsy" = (/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/starboard) +"bsz" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bsA" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/caution/corner{dir = 4},/area/hallway/primary/starboard) +"bsB" = (/turf/open/floor/plasteel/warning,/area/engine/break_room) +"bsC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/warning,/area/engine/break_room) +"bsD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/warning/corner{dir = 1},/area/engine/break_room) +"bsE" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel,/area/engine/break_room) +"bsF" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel,/area/engine/break_room) +"bsG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel,/area/engine/break_room) +"bsH" = (/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "transittube"; name = "Transit Tube Blast Door"; opacity = 0},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/break_room) +"bsI" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/hatch{name = "MiniSat Access"; req_one_access_txt = "32;19"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/black,/area/engine/break_room) +"bsJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/black,/area/engine/break_room) +"bsK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/black,/area/engine/break_room) +"bsL" = (/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/transit_tube{icon_state = "D-NE"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/table/glass,/obj/item/weapon/phone{pixel_x = -3; pixel_y = 3},/obj/item/weapon/cigbutt/cigarbutt{pixel_x = 5; pixel_y = -1},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/black,/area/engine/break_room) +"bsM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/window/reinforced{dir = 8},/obj/structure/transit_tube{icon_state = "E-NW"},/turf/open/space,/area/space) +"bsN" = (/obj/structure/transit_tube,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/space,/area/space) +"bsO" = (/obj/structure/transit_tube{icon_state = "E-W-Pass"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/space,/area/space) +"bsP" = (/obj/structure/transit_tube,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/transit_tube_pod{dir = 4},/turf/open/space,/area/space) +"bsQ" = (/obj/structure/transit_tube,/obj/structure/lattice/catwalk,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/space,/area/space) +"bsR" = (/obj/structure/transit_tube{icon_state = "W-NE-SE"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/space,/area/space) +"bsS" = (/obj/structure/lattice/catwalk,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/transit_tube{icon_state = "D-SW"},/obj/structure/transit_tube{icon_state = "D-NW"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/space,/area/space) +"bsT" = (/obj/structure/lattice/catwalk,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/space,/area/space) +"bsU" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/lattice/catwalk,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/space,/area/space) +"bsV" = (/obj/structure/transit_tube/station{icon_state = "closed"; dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"bsW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"bsX" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"bsY" = (/obj/machinery/holopad,/obj/structure/cable/yellow{icon_state = "4-8"; d1 = 4; d2 = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"bsZ" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable/yellow{icon_state = "4-8"; d1 = 4; d2 = 8},/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"bta" = (/obj/structure/cable/yellow{icon_state = "4-8"; d1 = 4; d2 = 8},/obj/machinery/ai_slipper{icon_state = "motion0"; uses = 10},/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"btb" = (/obj/structure/cable/yellow{icon_state = "4-8"; d1 = 4; d2 = 8},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/hatch{icon_state = "door_closed"; name = "MiniSat Foyer"; req_one_access_txt = "32;19"},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/tcomfoyer{name = "\improper MiniSat Foyer"}) +"btc" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/obj/structure/cable/yellow{icon_state = "4-8"; d1 = 4; d2 = 8},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/tcomfoyer{name = "\improper MiniSat Foyer"}) +"btd" = (/obj/structure/cable/yellow{icon_state = "4-8"; d1 = 4; d2 = 8},/obj/machinery/holopad,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/tcomfoyer{name = "\improper MiniSat Foyer"}) +"bte" = (/obj/structure/cable/yellow{icon_state = "4-8"; d1 = 4; d2 = 8},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/tcomfoyer{name = "\improper MiniSat Foyer"}) +"btf" = (/obj/structure/cable/yellow{icon_state = "4-8"; d1 = 4; d2 = 8},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/hatch{icon_state = "door_closed"; name = "MiniSat Antechamber"; req_one_access_txt = "32;19"},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) +"btg" = (/obj/structure/cable/yellow{icon_state = "4-8"; d1 = 4; d2 = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) +"bth" = (/obj/structure/cable/yellow{icon_state = "4-8"; d1 = 4; d2 = 8},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) +"bti" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{icon_state = "4-8"; d1 = 4; d2 = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/ai_slipper{icon_state = "motion0"; uses = 10},/mob/living/simple_animal/bot/secbot/pingsky,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) +"btj" = (/obj/structure/cable/yellow{icon_state = "4-8"; d1 = 4; d2 = 8},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) +"btk" = (/obj/structure/cable/yellow{icon_state = "4-8"; d1 = 4; d2 = 8},/obj/structure/cable/yellow{icon_state = "1-4"; d1 = 1; d2 = 4},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) +"btl" = (/obj/structure/cable/yellow{icon_state = "4-8"; d1 = 4; d2 = 8},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/maintenance_hatch{name = "MiniSat Maintenance"; req_access_txt = "32"},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) +"btm" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/black,/area/ai_monitored/storage/secure{name = "MiniSat Maintenance"}) +"btn" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/black,/area/ai_monitored/storage/secure{name = "MiniSat Maintenance"}) +"bto" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/black,/area/ai_monitored/storage/secure{name = "MiniSat Maintenance"}) +"btp" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/black,/area/ai_monitored/storage/secure{name = "MiniSat Maintenance"}) +"btq" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/maintenance_hatch{name = "MiniSat Maintenance"; req_access_txt = "32"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/ai_monitored/storage/secure{name = "MiniSat Maintenance"}) +"btr" = (/obj/structure/window/reinforced{dir = 1; pixel_y = 0},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/ai_slipper{icon_state = "motion0"; uses = 10},/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"bts" = (/obj/structure/window/reinforced{dir = 1; pixel_y = 0},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"btt" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"btu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/airalarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/open/floor/plasteel/warning{dir = 8},/area/hallway/secondary/entry{name = "Arrivals"}) +"btv" = (/obj/machinery/holopad,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/entry{name = "Arrivals"}) +"btw" = (/obj/machinery/power/apc{dir = 4; name = "Arrivals APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/open/floor/plasteel/arrival{dir = 4},/area/hallway/secondary/entry{name = "Arrivals"}) +"btx" = (/obj/structure/chair/comfy/beige{dir = 4},/obj/machinery/camera{c_tag = "Arrivals - Lounge"; dir = 4; network = list("SS13")},/obj/effect/landmark/start{name = "Assistant"},/turf/open/floor/plasteel/grimy,/area/hallway/primary/port) +"bty" = (/turf/open/floor/carpet,/area/hallway/primary/port) +"btz" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/holopad{pixel_y = -16},/turf/open/floor/carpet,/area/hallway/primary/port) +"btA" = (/obj/structure/chair/comfy/beige{dir = 8},/turf/open/floor/plasteel/grimy,/area/hallway/primary/port) +"btB" = (/obj/machinery/vending/cola,/obj/machinery/newscaster{pixel_x = -28; pixel_y = 1},/turf/open/floor/plasteel/black,/area/hallway/primary/port) +"btC" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/neutral/side{dir = 8},/area/hallway/primary/port) +"btD" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/hallway/primary/port) +"btE" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) +"btF" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/goonplaque{desc = "\"This is a plaque in honour of our comrades on the G4407 Stations. Hopefully TG4407 model can live up to your fame and fortune.\" Scratched in beneath that is a crude image of sentient postcards in a realm of darkness. The station model number is MSv42A-160516"},/area/hallway/primary/port) +"btG" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/port) +"btH" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/primary/port) +"btI" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) +"btJ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/hallway/primary/port) +"btK" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) +"btL" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel,/area/hallway/primary/port) +"btM" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j1s"; sortType = 3},/turf/open/floor/plasteel,/area/hallway/primary/port) +"btN" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) +"btO" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/hallway/primary/port) +"btP" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/hallway/primary/port) +"btQ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Port Primary Hallway"},/turf/open/floor/plasteel,/area/hallway/primary/port) +"btR" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/central) +"btS" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_Toxins = 0},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/hallway/primary/central) +"btT" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/hallway/primary/central) +"btU" = (/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 4},/obj/item/weapon/pen,/obj/structure/window/reinforced,/obj/structure/table/wood,/turf/open/floor/wood,/area/crew_quarters/heads) +"btV" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/window{dir = 2; name = "HoP's Desk"; pixel_y = 0; req_access_txt = "57"},/turf/open/floor/wood,/area/crew_quarters/heads) +"btW" = (/obj/structure/window/reinforced,/obj/machinery/computer/cargo/request,/turf/open/floor/wood,/area/crew_quarters/heads) +"btX" = (/obj/machinery/vending/cart{req_access_txt = "57"},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 21},/turf/open/floor/wood,/area/crew_quarters/heads) +"btY" = (/obj/machinery/requests_console{announcementConsole = 1; department = "Head of Personnel's Desk"; departmentType = 5; name = "Head of Personnel RC"; pixel_y = 30},/obj/machinery/pdapainter{pixel_y = 2},/turf/open/floor/wood,/area/crew_quarters/heads) +"btZ" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/structure/bed/dogbed{anchored = 1; desc = "Ian's bed! Looks comfy."; name = "Ian's bed"; pixel_y = 2},/turf/open/floor/wood,/area/crew_quarters/heads) +"bua" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 0; pixel_y = 32},/obj/structure/filingcabinet/chestdrawer{pixel_y = 2},/turf/open/floor/wood,/area/crew_quarters/heads) +"bub" = (/turf/closed/wall,/area/crew_quarters/heads) +"buc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/darkblue/side{dir = 2},/area/bridge) +"bud" = (/obj/machinery/light,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/rack,/obj/item/weapon/storage/secure/briefcase,/obj/item/clothing/mask/cigarette/cigar,/turf/open/floor/plasteel/darkblue/side{dir = 1},/area/bridge) +"bue" = (/obj/structure/rack,/obj/item/device/aicard,/obj/item/device/radio/off,/obj/machinery/computer/security/telescreen{dir = 1; name = "MiniSat Monitor"; network = list("MiniSat","tcomm"); pixel_x = 0; pixel_y = -29},/turf/open/floor/plasteel/darkblue/side{dir = 1},/area/bridge) +"buf" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/cell_charger{pixel_y = 4},/obj/structure/table/glass,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/turf/open/floor/plasteel/black,/area/bridge) +"bug" = (/turf/open/floor/carpet,/area/bridge) +"buh" = (/obj/structure/chair/comfy/black{dir = 1},/turf/open/floor/carpet,/area/bridge) +"bui" = (/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 8},/obj/structure/table/glass,/turf/open/floor/plasteel/black,/area/bridge) +"buj" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -29},/obj/structure/rack,/obj/item/device/assembly/signaler,/obj/item/device/assembly/signaler,/obj/item/device/assembly/timer,/turf/open/floor/plasteel/darkblue/side{dir = 1},/area/bridge) +"buk" = (/obj/machinery/light,/obj/structure/rack,/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/storage/toolbox/emergency{pixel_x = -2; pixel_y = -3},/obj/item/weapon/wrench,/obj/item/device/multitool,/obj/machinery/newscaster{pixel_x = 0; pixel_y = -30},/turf/open/floor/plasteel/darkblue/side{dir = 1},/area/bridge) +"bul" = (/obj/machinery/light_switch{pixel_x = 8; pixel_y = -26},/turf/open/floor/plasteel/darkblue/side{dir = 10},/area/bridge) +"bum" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/darkblue/side{dir = 2},/area/bridge) +"bun" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/darkblue/side{dir = 6},/area/bridge) +"buo" = (/obj/structure/fireaxecabinet{pixel_y = -32},/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 7},/obj/item/weapon/pen{pixel_y = 3},/obj/machinery/light_switch{pixel_x = 28; pixel_y = 0},/obj/structure/table/glass,/turf/open/floor/plasteel/black,/area/bridge) +"bup" = (/obj/structure/table/wood,/obj/item/weapon/book/manual/wiki/security_space_law,/obj/machinery/power/apc{dir = 8; name = "Captain's Quarters APC"; pixel_x = -24; pixel_y = 0},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/light/small{dir = 8},/obj/item/weapon/paper{info = "Congratulations,

Your station has been selected to carry out the Gateway Project.

The equipment will be shipped to you at the start of the next quarter.
You are to prepare a secure location to house the equipment as outlined in the attached documents.

--Nanotrasen Blue Space Research"; name = "Confidential Correspondence, Pg 1"; pixel_x = 0; pixel_y = 0},/obj/item/weapon/coin/plasma,/obj/item/weapon/melee/chainofcommand,/turf/open/floor/wood,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"buq" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/wood,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bur" = (/obj/structure/table/wood,/obj/item/weapon/stamp/captain,/obj/machinery/computer/security/wooden_tv,/turf/open/floor/wood,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bus" = (/obj/effect/landmark/start{name = "Captain"},/obj/structure/chair/comfy/brown,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/wood,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"but" = (/obj/machinery/computer/card,/obj/machinery/light/small{dir = 4},/obj/machinery/requests_console{announcementConsole = 1; department = "Captain's Desk"; departmentType = 5; name = "Captain RC"; pixel_x = 32; pixel_y = 0},/turf/open/floor/wood,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"buu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/central) +"buv" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel,/area/hallway/primary/central) +"buw" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/hallway/primary/central) +"bux" = (/obj/structure/table,/obj/machinery/power/apc{cell_type = 2500; dir = 8; name = "Art Storage APC"; pixel_x = -25; pixel_y = 0},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/item/stack/cable_coil/random,/obj/item/stack/cable_coil/random,/obj/item/stack/cable_coil/random,/obj/item/stack/cable_coil/random,/obj/item/stack/cable_coil/random,/turf/open/floor/plasteel,/area/storage/art) +"buy" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/storage/art) +"buz" = (/obj/structure/table,/obj/item/weapon/airlock_painter,/turf/open/floor/plasteel,/area/storage/art) +"buA" = (/obj/machinery/light/small{dir = 8},/obj/item/weapon/vending_refill/cigarette,/turf/open/floor/wood,/area/crew_quarters/bar) +"buB" = (/obj/effect/landmark/start{name = "Bartender"},/turf/open/floor/wood,/area/crew_quarters/bar) +"buC" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/wood,/area/crew_quarters/bar) +"buD" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/wood,/area/crew_quarters/bar) +"buE" = (/obj/machinery/light/small,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_Toxins = 0},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -30},/turf/open/floor/wood,/area/crew_quarters/bar) +"buF" = (/obj/machinery/door/airlock/maintenance{name = "Bar Maintenance"; req_access_txt = "25"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/crew_quarters/bar) +"buG" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/starboard) +"buH" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard) +"buI" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/sortjunction{dir = 2; icon_state = "pipe-j1s"; sortType = 19},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/starboard) +"buJ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;25;46"},/turf/open/floor/plating,/area/maintenance/starboard) +"buK" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/starboard) +"buL" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating{icon_state = "platingdmg1"},/area/maintenance/starboard) +"buM" = (/obj/item/device/assembly/prox_sensor,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/turf/open/floor/plating,/area/maintenance/starboard) +"buN" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/item/weapon/storage/box/lights/mixed,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/starboard) +"buO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/starboard) +"buP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;25;46"},/turf/open/floor/plating,/area/maintenance/starboard) +"buQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/starboard) +"buR" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/sign/poster{pixel_x = 32; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/starboard) +"buS" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"buT" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/sign/securearea{pixel_x = 32; pixel_y = 0},/turf/open/floor/plasteel/black/corner{dir = 2},/area/hallway/primary/starboard) +"buU" = (/obj/machinery/vending/coffee,/turf/open/floor/plasteel/cafeteria{dir = 5},/area/engine/break_room) +"buV" = (/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 0; pixel_y = -30},/obj/machinery/vending/cigarette,/turf/open/floor/plasteel/cafeteria{dir = 5},/area/engine/break_room) +"buW" = (/obj/machinery/microwave{pixel_x = 0; pixel_y = 4},/obj/machinery/camera{c_tag = "Engineering - Foyer - Port"; dir = 1; network = list("SS13")},/obj/structure/table/glass,/turf/open/floor/plasteel/cafeteria{dir = 5},/area/engine/break_room) +"buX" = (/obj/machinery/newscaster{pixel_x = 0; pixel_y = -32},/obj/item/weapon/storage/box/donkpockets,/obj/structure/table/glass,/turf/open/floor/plasteel/cafeteria{dir = 5},/area/engine/break_room) +"buY" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/warning{dir = 8},/area/engine/break_room) +"buZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/power/apc{dir = 2; name = "Engineering Foyer APC"; pixel_x = -1; pixel_y = -26},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/light,/turf/open/floor/plasteel,/area/engine/break_room) +"bva" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/plasteel,/area/engine/break_room) +"bvb" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/break_room) +"bvc" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/engine/break_room) +"bvd" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/sign/securearea{pixel_x = 32; pixel_y = 0},/turf/open/floor/plasteel,/area/engine/break_room) +"bve" = (/obj/machinery/airalarm{dir = 4; locked = 0; pixel_x = -23; pixel_y = 0},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/black,/area/engine/break_room) +"bvf" = (/obj/effect/landmark{name = "revenantspawn"},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -28},/obj/structure/chair/office/dark{dir = 4},/turf/open/floor/plasteel/darkblue/corner,/area/engine/break_room) +"bvg" = (/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/table/glass,/obj/item/weapon/folder/blue{pixel_y = 3},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/weapon/pen,/obj/machinery/computer/security/telescreen{dir = 1; name = "MiniSat Monitor"; network = list("MiniSat","tcomm"); pixel_x = 0; pixel_y = -28},/turf/open/floor/plasteel/darkblue/corner,/area/engine/break_room) +"bvh" = (/obj/structure/transit_tube{icon_state = "D-NE"},/turf/open/space,/area/space) +"bvi" = (/obj/structure/transit_tube{icon_state = "NW-SE"},/turf/open/space,/area/space) +"bvj" = (/obj/structure/transit_tube{icon_state = "D-SW"},/turf/open/space,/area/space) +"bvk" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/transit_tube{icon_state = "D-SE"},/turf/open/space,/area/space) +"bvl" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/transit_tube{icon_state = "N-SW"},/turf/open/floor/plasteel/darkblue/corner{dir = 8},/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"bvm" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/machinery/light/small,/obj/machinery/camera{c_tag = "MiniSat Exterior Access"; dir = 1; network = list("MiniSat")},/obj/machinery/power/apc{aidisabled = 0; dir = 2; name = "MiniSat Exterior APC"; pixel_y = -24},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/open/floor/plasteel/darkblue/corner{dir = 8},/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"bvn" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/darkblue/corner{dir = 8},/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"bvo" = (/obj/machinery/door/window{dir = 2; name = "MiniSat Walkway Access"; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel/darkblue/corner{dir = 8},/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"bvp" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/darkblue/corner{dir = 8},/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"bvq" = (/obj/structure/window/reinforced,/obj/structure/showcase{density = 0; desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; dir = 8; icon = 'icons/mob/robots.dmi'; icon_state = "robot_old"; name = "Cyborg Statue"; pixel_x = 9; pixel_y = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel/darkblue/corner{dir = 8},/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"bvr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall/r_wall,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"bvs" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -28},/turf/open/floor/plasteel/darkblue/corner{dir = 8},/area/ai_monitored/turret_protected/tcomfoyer{name = "\improper MiniSat Foyer"}) +"bvt" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/darkblue/corner{dir = 8},/area/ai_monitored/turret_protected/tcomfoyer{name = "\improper MiniSat Foyer"}) +"bvu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/power/apc{aidisabled = 0; cell_type = 5000; dir = 2; name = "MiniSat Foyer APC"; pixel_x = 0; pixel_y = -29},/obj/structure/cable/yellow,/obj/machinery/camera/motion{c_tag = "MiniSat Foyer"; dir = 8; network = list("MiniSat")},/turf/open/floor/plasteel/darkblue/corner{dir = 8},/area/ai_monitored/turret_protected/tcomfoyer{name = "\improper MiniSat Foyer"}) +"bvv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/aisat_interior) +"bvw" = (/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/mob/living/simple_animal/bot/floorbot,/turf/open/floor/plasteel/darkblue/corner{dir = 8},/area/ai_monitored/turret_protected/aisat_interior) +"bvx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/darkblue/corner{dir = 8},/area/ai_monitored/turret_protected/aisat_interior) +"bvy" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) +"bvz" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/darkblue/corner,/area/ai_monitored/turret_protected/aisat_interior) +"bvA" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/mob/living/simple_animal/bot/cleanbot,/turf/open/floor/plasteel/darkblue/corner,/area/ai_monitored/turret_protected/aisat_interior) +"bvB" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/machinery/power/apc{dir = 2; name = "MiniSat Maint APC"; pixel_x = 0; pixel_y = -26},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow,/obj/item/stack/sheet/mineral/plasma{amount = 35; layer = 3.1},/turf/open/floor/plasteel/black,/area/ai_monitored/storage/secure{name = "MiniSat Maintenance"}) +"bvC" = (/obj/machinery/computer/station_alert,/obj/machinery/light,/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/obj/machinery/computer/security/telescreen{dir = 1; name = "MiniSat Monitor"; network = list("MiniSat","tcomm"); pixel_x = 0; pixel_y = -29},/turf/open/floor/plasteel/black,/area/ai_monitored/storage/secure{name = "MiniSat Maintenance"}) +"bvD" = (/obj/structure/table,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -28},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/computer/monitor,/obj/structure/cable/yellow,/turf/open/floor/plasteel/black,/area/ai_monitored/storage/secure{name = "MiniSat Maintenance"}) +"bvE" = (/obj/machinery/camera/motion{c_tag = "MiniSat Maintenance"; dir = 8; network = list("MiniSat")},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/obj/structure/rack,/obj/item/weapon/storage/toolbox/electrical{pixel_x = -3; pixel_y = 3},/obj/item/weapon/storage/toolbox/mechanical,/obj/item/device/multitool,/turf/open/floor/plasteel/black,/area/ai_monitored/storage/secure{name = "MiniSat Maintenance"}) +"bvF" = (/obj/structure/window/reinforced{dir = 1; layer = 2.9},/obj/structure/window/reinforced{dir = 4},/turf/open/space,/area/space) +"bvG" = (/obj/machinery/vending/cola,/turf/open/floor/plasteel/delivery,/area/hallway/secondary/entry{name = "Arrivals"}) +"bvH" = (/obj/item/device/radio/beacon,/turf/open/floor/plasteel/delivery,/area/hallway/secondary/entry{name = "Arrivals"}) +"bvI" = (/obj/structure/closet/firecloset,/turf/open/floor/plasteel/delivery,/area/hallway/secondary/entry{name = "Arrivals"}) +"bvJ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/effect/landmark{name = "lightsout"},/turf/open/floor/plasteel,/area/hallway/secondary/entry{name = "Arrivals"}) +"bvK" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/newscaster{pixel_x = 28; pixel_y = 1},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/arrival{dir = 4},/area/hallway/secondary/entry{name = "Arrivals"}) +"bvL" = (/obj/structure/chair/comfy/beige{dir = 4},/turf/open/floor/plasteel/grimy,/area/hallway/primary/port) +"bvM" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/carpet,/area/hallway/primary/port) +"bvN" = (/obj/structure/chair/comfy/beige{dir = 8},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/effect/landmark/start{name = "Assistant"},/turf/open/floor/plasteel/grimy,/area/hallway/primary/port) +"bvO" = (/obj/machinery/vending/snack,/turf/open/floor/plasteel/black,/area/hallway/primary/port) +"bvP" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/neutral/side{dir = 8},/area/hallway/primary/port) +"bvQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/hallway/primary/port) +"bvR" = (/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = -28},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/port) +"bvS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/port) +"bvT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/port) +"bvU" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/port) +"bvV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/port) +"bvW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/airalarm{dir = 1; pixel_y = -22},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/port) +"bvX" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/port) +"bvY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/firedoor,/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/port) +"bvZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = -32},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/port) +"bwa" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/sign/kiddieplaque{desc = "A long list of rules to be followed when in the library, extolling the virtues of being quiet at all times and threatening those who would dare eat hot food inside."; name = "Library Rules Sign"; pixel_y = -32},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/port) +"bwb" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/port) +"bwc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/port) +"bwd" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/port) +"bwe" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/light,/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/port) +"bwf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/camera{c_tag = "Port Primary Hallway - Starboard"; dir = 1; network = list("SS13")},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/port) +"bwg" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/port) +"bwh" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Port Primary Hallway"},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/port) +"bwi" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/central) +"bwj" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=7-Command-Starboard"; location = "6-Port-Central"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bwk" = (/obj/machinery/button/door{id = "hop"; name = "Privacy Shutters Control"; pixel_x = -24; pixel_y = -6; req_access_txt = "28"},/obj/machinery/light_switch{pixel_x = -25; pixel_y = 5},/turf/open/floor/carpet,/area/crew_quarters/heads) +"bwl" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/carpet,/area/crew_quarters/heads) +"bwm" = (/mob/living/simple_animal/pet/dog/corgi/Ian,/turf/open/floor/carpet,/area/crew_quarters/heads) +"bwn" = (/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/power/apc{dir = 1; name = "Head of Personnel APC"; pixel_y = 24},/turf/open/floor/carpet,/area/crew_quarters/heads) +"bwo" = (/turf/open/floor/carpet,/area/crew_quarters/heads) +"bwp" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/turf/open/floor/carpet,/area/crew_quarters/heads) +"bwq" = (/obj/machinery/keycard_auth{pixel_x = 26; pixel_y = 0},/turf/open/floor/carpet,/area/crew_quarters/heads) +"bwr" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_command{name = "Bridge"; req_access_txt = "19"},/turf/open/floor/plasteel/darkblue/side{dir = 1},/area/bridge) +"bws" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_command{name = "Bridge"; req_access_txt = "19"},/turf/open/floor/plasteel/darkblue/side{dir = 1},/area/bridge) +"bwt" = (/turf/closed/wall,/area/bridge) +"bwu" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/light_switch{pixel_y = -25},/obj/machinery/vending/cola{pixel_x = 2},/turf/open/floor/plasteel/black,/area/bridge) +"bwv" = (/obj/machinery/button/door{id = "bridge blast"; name = "Bridge Access Blast Door Control"; pixel_x = -1; pixel_y = -24; req_access_txt = "19"},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/machinery/button/door{id = "council blast"; name = "Council Chamber Blast Door Control"; pixel_x = -1; pixel_y = -34; req_access_txt = "19"},/obj/machinery/camera{c_tag = "Bridge - Command Chair"; dir = 1; network = list("SS13")},/turf/open/floor/carpet,/area/bridge) +"bww" = (/obj/machinery/holopad,/turf/open/floor/carpet,/area/bridge) +"bwx" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/obj/machinery/button/door{id = "evashutter"; name = "E.V.A. Storage Shutter Control"; pixel_x = 0; pixel_y = -24; req_access_txt = "19"},/obj/machinery/button/door{id = "gateshutter"; name = "Gateway Shutter Control"; pixel_x = 0; pixel_y = -34; req_access_txt = "19"},/turf/open/floor/carpet,/area/bridge) +"bwy" = (/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/machinery/vending/snack{pixel_x = -2},/turf/open/floor/plasteel/black,/area/bridge) +"bwz" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_command{name = "Bridge"; req_access_txt = "19"},/turf/open/floor/plasteel/darkblue/side{dir = 1},/area/bridge) +"bwA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_command{name = "Bridge"; req_access_txt = "19"},/turf/open/floor/plasteel/darkblue/side{dir = 1},/area/bridge) +"bwB" = (/obj/structure/table/wood,/obj/structure/window/reinforced,/obj/machinery/light_switch{pixel_x = -28; pixel_y = 0},/obj/item/weapon/storage/secure/briefcase{pixel_x = -2; pixel_y = 4},/obj/item/weapon/storage/lockbox/medal{pixel_y = 0},/turf/open/floor/wood,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bwC" = (/obj/machinery/door/window{name = "Captain's Desk"; req_access_txt = "20"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/wood,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bwD" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/obj/structure/window/reinforced,/turf/open/floor/wood,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bwE" = (/obj/structure/table/wood,/obj/item/weapon/folder/blue,/obj/machinery/door/window{base_state = "right"; icon_state = "right"; name = "Captain's Desk"; req_access_txt = "20"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/disposalpipe/segment,/obj/item/weapon/stamp/captain,/turf/open/floor/wood,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bwF" = (/obj/structure/table/wood,/obj/item/weapon/hand_tele,/obj/structure/window/reinforced,/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = 27; pixel_y = 0},/turf/open/floor/wood,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bwG" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/maintcentral{name = "Central Maintenance"}) +"bwH" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "20;12"},/turf/open/floor/plating,/area/maintenance/maintcentral{name = "Central Maintenance"}) +"bwI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/central) +"bwJ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bwK" = (/obj/structure/table,/obj/item/weapon/canvas/twentythreeXtwentythree,/obj/item/weapon/canvas/twentythreeXtwentythree,/obj/item/weapon/canvas/twentythreeXnineteen,/obj/item/weapon/canvas/twentythreeXnineteen,/obj/item/weapon/canvas/nineteenXnineteen,/obj/item/weapon/canvas/nineteenXnineteen,/obj/item/weapon/storage/crayons,/obj/item/weapon/storage/crayons,/obj/item/weapon/storage/crayons,/turf/open/floor/plasteel,/area/storage/art) +"bwL" = (/obj/structure/table,/obj/item/device/camera,/turf/open/floor/plasteel,/area/storage/art) +"bwM" = (/obj/structure/table,/obj/item/device/camera_film,/obj/machinery/firealarm{dir = 4; pixel_x = 28},/turf/open/floor/plasteel,/area/storage/art) +"bwN" = (/obj/structure/reagent_dispensers/beerkeg,/turf/open/floor/wood,/area/crew_quarters/bar) +"bwO" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/wood,/area/crew_quarters/bar) +"bwP" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/closet/gmcloset,/obj/item/weapon/wrench,/obj/item/stack/sheet/glass{amount = 30},/obj/item/stack/sheet/metal{amount = 30},/obj/item/stack/cable_coil/random,/obj/item/stack/cable_coil/random,/turf/open/floor/wood,/area/crew_quarters/bar) +"bwQ" = (/obj/machinery/chem_master/condimaster{desc = "Looks like a knock-off chem-master. Perhaps useful for separating liquids when mixing drinks precisely. Also dispenses condiments."; name = "HoochMaster Deluxe"; pixel_x = -4},/turf/open/floor/wood,/area/crew_quarters/bar) +"bwR" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/starboard) +"bwS" = (/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/turf/open/floor/plating{icon_state = "platingdmg2"},/area/maintenance/starboard) +"bwT" = (/obj/item/weapon/storage/toolbox/emergency,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/starboard) +"bwU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/weapon/cigbutt,/turf/open/floor/plating,/area/maintenance/starboard) +"bwV" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/starboard) +"bwW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/caution{dir = 8},/area/hallway/primary/starboard) +"bwX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/caution{dir = 4},/area/hallway/primary/starboard) +"bwY" = (/turf/closed/wall,/area/engine/break_room) +"bwZ" = (/obj/machinery/door/airlock/maintenance{name = "Engineering Foyer Maintenance"; req_access_txt = "0"; req_one_access_txt = "32;19"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/engine/break_room) +"bxa" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/caution{dir = 2},/area/engine/break_room) +"bxb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/caution{dir = 2},/area/engine/break_room) +"bxc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/caution{dir = 2},/area/engine/break_room) +"bxd" = (/obj/structure/table/glass,/obj/item/weapon/wrench,/obj/item/weapon/crowbar,/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/turf/open/floor/plasteel/black,/area/engine/break_room) +"bxe" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/camera{c_tag = "Engineering - Transit Tube Access"; dir = 8; network = list("SS13")},/turf/open/floor/plasteel/darkwarning/corner{dir = 2},/area/engine/break_room) +"bxf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall/r_wall,/area/engine/break_room) +"bxg" = (/obj/structure/transit_tube{icon_state = "D-NE"},/obj/structure/lattice,/turf/open/space,/area/space) +"bxh" = (/obj/structure/transit_tube{icon_state = "E-NW"},/obj/structure/lattice,/turf/open/space,/area/space) +"bxi" = (/obj/structure/transit_tube{icon_state = "W-NE"},/obj/structure/lattice,/turf/open/space,/area/space) +"bxj" = (/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/obj/structure/transit_tube{icon_state = "D-NW"},/obj/structure/lattice,/turf/open/space,/area/space) +"bxk" = (/turf/closed/wall/r_wall,/area/tcommsat/computer{name = "\improper Telecoms Control Room"}) +"bxl" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/tcommsat/computer{name = "\improper Telecoms Control Room"}) +"bxm" = (/obj/machinery/door/airlock/hatch{name = "Telecoms Control Room"; req_one_access_txt = "19; 61"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/vault{dir = 8},/area/tcommsat/computer{name = "\improper Telecoms Control Room"}) +"bxn" = (/turf/open/floor/plasteel/warning{dir = 9},/area/hallway/secondary/entry{name = "Arrivals"}) +"bxo" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/secondary/entry{name = "Arrivals"}) +"bxp" = (/turf/open/floor/plasteel/warning{dir = 5},/area/hallway/secondary/entry{name = "Arrivals"}) +"bxq" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-18"; layer = 4.1},/turf/open/floor/plasteel/warning{dir = 9},/area/hallway/secondary/entry{name = "Arrivals"}) +"bxr" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/secondary/entry{name = "Arrivals"}) +"bxs" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel/warning/corner{dir = 4},/area/hallway/secondary/entry{name = "Arrivals"}) +"bxt" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-08"; layer = 4.1},/turf/open/floor/plasteel/grimy,/area/hallway/primary/port) +"bxu" = (/obj/structure/chair/comfy/beige{dir = 1},/turf/open/floor/plasteel/grimy,/area/hallway/primary/port) +"bxv" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-03"; layer = 4.1},/turf/open/floor/plasteel/grimy,/area/hallway/primary/port) +"bxw" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/camera{c_tag = "Port Primary Hallway - Port"; dir = 4; network = list("SS13")},/turf/open/floor/plasteel/black,/area/hallway/primary/port) +"bxx" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/neutral/side{dir = 8},/area/hallway/primary/port) +"bxy" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/neutral/side{dir = 4},/area/hallway/primary/port) +"bxz" = (/obj/structure/closet/firecloset,/turf/open/floor/plasteel/vault,/area/hallway/primary/port) +"bxA" = (/obj/structure/closet/emcloset,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/vault,/area/hallway/primary/port) +"bxB" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/vault,/area/hallway/primary/port) +"bxC" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;27;37"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bxD" = (/turf/closed/wall,/area/library) +"bxE" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/airlock/glass{name = "Library"},/turf/open/floor/wood,/area/library) +"bxF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Library"},/turf/open/floor/wood,/area/library) +"bxG" = (/obj/structure/sign/directions/engineering{desc = "A direction sign, pointing out which way the escape arm is."; icon_state = "direction_evac"; name = "escape arm"},/obj/structure/sign/directions/engineering{desc = "A direction sign, pointing out which way the medical department is."; icon_state = "direction_med"; name = "medical department"; pixel_y = 8},/obj/structure/sign/directions/engineering{desc = "A direction sign, pointing out which way the research department is."; icon_state = "direction_sci"; name = "research department"; pixel_y = -8},/turf/closed/wall,/area/library) +"bxH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/central) +"bxI" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/sortjunction{dir = 1; icon_state = "pipe-j1s"; sortType = 15},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bxJ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/hallway/primary/central) +"bxK" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{name = "Head of Personnel"; req_access = null; req_access_txt = "57"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/wood,/area/crew_quarters/heads) +"bxL" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/carpet,/area/crew_quarters/heads) +"bxM" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/carpet,/area/crew_quarters/heads) +"bxN" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/carpet,/area/crew_quarters/heads) +"bxO" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/holopad,/turf/open/floor/carpet,/area/crew_quarters/heads) +"bxP" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/carpet,/area/crew_quarters/heads) +"bxQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/carpet,/area/crew_quarters/heads) +"bxR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/carpet,/area/crew_quarters/heads) +"bxS" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{name = "Head of Personnel"; req_access = null; req_access_txt = "57"},/turf/open/floor/plasteel/black,/area/crew_quarters/heads) +"bxT" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/darkblue/corner,/area/bridge) +"bxU" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel/black,/area/bridge) +"bxV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/bridge) +"bxW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/bookcase,/turf/open/floor/wood,/area/bridge) +"bxX" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/closed/wall,/area/bridge) +"bxY" = (/obj/machinery/door/airlock/command{name = "Command Desk"; req_access = null; req_access_txt = "19"},/turf/open/floor/plasteel/vault,/area/bridge) +"bxZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/bridge) +"bya" = (/obj/structure/bookcase,/turf/open/floor/wood,/area/bridge) +"byb" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = -26; pixel_y = 0},/turf/open/floor/plasteel/darkblue/corner,/area/bridge) +"byc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/bridge) +"byd" = (/obj/machinery/vending/boozeomat,/obj/machinery/light/small{dir = 8},/turf/open/floor/wood,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bye" = (/obj/machinery/holopad{pixel_x = 9; pixel_y = -9},/turf/open/floor/carpet,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"byf" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/carpet,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"byg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/disposalpipe/segment,/turf/open/floor/carpet,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"byh" = (/obj/machinery/camera{c_tag = "Captain's Office"; dir = 8; network = list("SS13")},/turf/open/floor/carpet,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"byi" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/camera{c_tag = "Captain's Office - Emergency Escape"; dir = 4; network = list("SS13")},/turf/open/floor/plating{icon_state = "platingdmg2"},/area/maintenance/maintcentral{name = "Central Maintenance"}) +"byj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/airalarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/central) +"byk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/hallway/primary/central) +"byl" = (/obj/machinery/vending/boozeomat,/turf/closed/wall,/area/crew_quarters/bar) +"bym" = (/obj/machinery/door/airlock{name = "Bar Storage"; req_access_txt = "25"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel{icon_state = "wood"},/area/crew_quarters/bar) +"byn" = (/obj/machinery/computer/slot_machine{pixel_y = 2},/obj/structure/sign/barsign{pixel_y = 32},/turf/open/floor/carpet,/area/crew_quarters/bar) +"byo" = (/obj/machinery/computer/slot_machine{pixel_y = 2},/turf/open/floor/carpet,/area/crew_quarters/bar) +"byp" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/wood,/area/crew_quarters/bar) +"byq" = (/obj/machinery/disposal/bin{pixel_x = 2; pixel_y = 2},/obj/structure/disposalpipe/trunk,/turf/open/floor/wood,/area/crew_quarters/bar) +"byr" = (/obj/machinery/computer/arcade,/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 0; pixel_y = 32},/turf/open/floor/wood,/area/crew_quarters/bar) +"bys" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 1},/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plating,/area/maintenance/starboard) +"byt" = (/obj/structure/closet/firecloset,/turf/open/floor/plating{icon_state = "platingdmg2"},/area/maintenance/starboard) +"byu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/starboard) +"byv" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/starboard) +"byw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;25;46"},/turf/open/floor/plating,/area/maintenance/starboard) +"byx" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/turf/open/floor/plasteel/caution{dir = 8},/area/hallway/primary/starboard) +"byy" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"byz" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/caution{dir = 4},/area/hallway/primary/starboard) +"byA" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard) +"byB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard) +"byC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating{icon_state = "platingdmg2"},/area/maintenance/starboard) +"byD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/starboard) +"byE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plating,/area/maintenance/starboard) +"byF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plating{icon_state = "platingdmg1"},/area/maintenance/starboard) +"byG" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating,/area/engine/break_room) +"byH" = (/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/break_room) +"byI" = (/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/break_room) +"byJ" = (/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/break_room) +"byK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall/r_wall,/area/engine/break_room) +"byL" = (/obj/structure/table/glass,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/item/weapon/tank/internals/emergency_oxygen{pixel_x = -8; pixel_y = 0},/obj/item/clothing/mask/breath{pixel_x = 4; pixel_y = 0},/obj/machinery/firealarm{dir = 8; pixel_x = -26; pixel_y = 0},/turf/open/floor/plasteel/black,/area/engine/break_room) +"byM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/darkwarning{dir = 4},/area/engine/break_room) +"byN" = (/obj/machinery/door/airlock/hatch{icon_state = "door_closed"; name = "MiniSat Space Access Airlock"; req_one_access_txt = "32;19"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/black,/area/engine/break_room) +"byO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = -32},/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/darkwarning{dir = 4},/area/engine/break_room) +"byP" = (/obj/machinery/door/airlock/hatch{icon_state = "door_closed"; name = "MiniSat Space Access Airlock"; req_one_access_txt = "32;19"},/turf/open/floor/plasteel/black,/area/engine/break_room) +"byQ" = (/turf/closed/wall,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"byR" = (/obj/structure/table/wood,/obj/machinery/light/small{dir = 8},/obj/item/device/radio/off{pixel_y = 4},/obj/item/weapon/screwdriver{pixel_y = 10},/turf/open/floor/plasteel/grimy,/area/tcommsat/computer{name = "\improper Telecoms Control Room"}) +"byS" = (/obj/structure/table/wood,/obj/item/weapon/folder/blue,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 31},/obj/item/weapon/folder/blue,/obj/item/weapon/pen,/turf/open/floor/plasteel/grimy,/area/tcommsat/computer{name = "\improper Telecoms Control Room"}) +"byT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/showcase{density = 0; desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; dir = 2; icon = 'icons/mob/robots.dmi'; icon_state = "robot_old"; name = "Cyborg Statue"; pixel_x = 0; pixel_y = 20},/turf/open/floor/plasteel/grimy,/area/tcommsat/computer{name = "\improper Telecoms Control Room"}) +"byU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/grimy,/area/tcommsat/computer{name = "\improper Telecoms Control Room"}) +"byV" = (/obj/machinery/light_switch{pixel_x = 0; pixel_y = 28},/obj/structure/showcase{density = 0; desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; dir = 2; icon = 'icons/mob/robots.dmi'; icon_state = "robot_old"; name = "Cyborg Statue"; pixel_x = 0; pixel_y = 20},/turf/open/floor/plasteel/grimy,/area/tcommsat/computer{name = "\improper Telecoms Control Room"}) +"byW" = (/obj/structure/table/wood,/obj/machinery/ai_status_display{pixel_x = 0; pixel_y = 31},/obj/item/device/flashlight/lamp,/turf/open/floor/plasteel/grimy,/area/tcommsat/computer{name = "\improper Telecoms Control Room"}) +"byX" = (/obj/machinery/light/small{dir = 4},/obj/item/device/radio/intercom{dir = 8; freerange = 1; name = "Station Intercom (Telecoms)"; pixel_x = 0; pixel_y = 30},/obj/structure/table/wood,/obj/item/weapon/phone{pixel_x = -3; pixel_y = 3},/obj/item/weapon/cigbutt/cigarbutt{pixel_x = 5; pixel_y = -1},/turf/open/floor/plasteel/grimy,/area/tcommsat/computer{name = "\improper Telecoms Control Room"}) +"byY" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-20"; layer = 4.1},/turf/open/floor/plasteel/warning{dir = 9},/area/hallway/secondary/entry{name = "Arrivals"}) +"byZ" = (/obj/structure/chair,/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/secondary/entry{name = "Arrivals"}) +"bza" = (/obj/structure/chair,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/secondary/entry{name = "Arrivals"}) +"bzb" = (/obj/structure/chair,/obj/effect/landmark/start{name = "Assistant"},/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/secondary/entry{name = "Arrivals"}) +"bzc" = (/turf/open/floor/plasteel/warning/corner{dir = 4},/area/hallway/secondary/entry{name = "Arrivals"}) +"bzd" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel,/area/hallway/secondary/entry{name = "Arrivals"}) +"bze" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/warning/corner{dir = 8},/area/hallway/secondary/entry{name = "Arrivals"}) +"bzf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/secondary/entry{name = "Arrivals"}) +"bzg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/warning/corner{dir = 4},/area/hallway/secondary/entry{name = "Arrivals"}) +"bzh" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel,/area/hallway/secondary/entry{name = "Arrivals"}) +"bzi" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel,/area/hallway/secondary/entry{name = "Arrivals"}) +"bzj" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/hallway/secondary/entry{name = "Arrivals"}) +"bzk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/arrival{dir = 4},/area/hallway/secondary/entry{name = "Arrivals"}) +"bzl" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/hallway/primary/port) +"bzm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side{dir = 9},/area/hallway/primary/port) +"bzn" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/hallway/primary/port) +"bzo" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=6-Port-Central"; location = "5-Customs"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/hallway/primary/port) +"bzp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/hallway/primary/port) +"bzq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side{dir = 5},/area/hallway/primary/port) +"bzr" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/port) +"bzs" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/plasteel/neutral/side{dir = 4},/area/hallway/primary/port) +"bzt" = (/turf/closed/wall,/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) +"bzu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) +"bzv" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bzw" = (/obj/structure/closet,/obj/effect/decal/cleanable/cobweb/cobweb2,/obj/item/weapon/poster/contraband,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bzx" = (/obj/structure/table/wood,/obj/machinery/computer/security/telescreen/entertainment{pixel_x = -32; pixel_y = 0},/obj/effect/decal/cleanable/cobweb,/obj/item/device/flashlight/lamp/green{pixel_x = 1; pixel_y = 5},/turf/open/floor/wood,/area/library) +"bzy" = (/obj/structure/table/wood,/obj/machinery/computer/libraryconsole,/turf/open/floor/wood,/area/library) +"bzz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/carpet,/area/library) +"bzA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/carpet,/area/library) +"bzB" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-22"},/obj/effect/decal/cleanable/cobweb/cobweb2,/turf/open/floor/wood,/area/library) +"bzC" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green{pixel_x = 1; pixel_y = 5},/obj/machinery/computer/security/telescreen/entertainment{pixel_y = 30},/obj/effect/decal/cleanable/cobweb,/turf/open/floor/plasteel/cult{dir = 2},/area/library) +"bzD" = (/obj/structure/table/wood,/obj/machinery/newscaster{pixel_x = 0; pixel_y = 32},/obj/item/weapon/folder,/obj/item/weapon/folder,/turf/open/floor/plasteel/cult{dir = 2},/area/library) +"bzE" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green{pixel_x = 1; pixel_y = 5},/obj/machinery/computer/security/telescreen/entertainment{pixel_y = 30},/turf/open/floor/plasteel/cult{dir = 2},/area/library) +"bzF" = (/obj/structure/table/wood,/obj/machinery/newscaster{pixel_x = 0; pixel_y = 32},/obj/item/weapon/folder,/obj/item/weapon/folder,/obj/effect/decal/cleanable/cobweb/cobweb2,/turf/open/floor/plasteel/cult{dir = 2},/area/library) +"bzG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/central) +"bzH" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 1},/turf/open/floor/wood,/area/crew_quarters/heads) +"bzI" = (/obj/item/weapon/hand_labeler,/obj/item/stack/packageWrap,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/table/wood,/turf/open/floor/wood,/area/crew_quarters/heads) +"bzJ" = (/obj/structure/closet/secure_closet/hop,/turf/open/floor/wood,/area/crew_quarters/heads) +"bzK" = (/obj/machinery/camera{c_tag = "Head of Personnel's Office"; dir = 1; network = list("SS13")},/obj/structure/table/wood,/obj/item/weapon/storage/box/PDAs{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/box/silver_ids,/obj/item/weapon/storage/box/ids,/obj/machinery/light,/turf/open/floor/wood,/area/crew_quarters/heads) +"bzL" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/computer/secure_data,/turf/open/floor/wood,/area/crew_quarters/heads) +"bzM" = (/obj/machinery/computer/card,/turf/open/floor/wood,/area/crew_quarters/heads) +"bzN" = (/obj/structure/chair/office/dark,/obj/effect/landmark/start{name = "Head of Personnel"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light_switch{pixel_x = 38; pixel_y = -35},/obj/machinery/button/door{id = "hopqueue"; name = "Queue Shutters Control"; pixel_x = 25; pixel_y = -36; req_access_txt = "28"},/obj/machinery/button/door{id = "hop"; name = "Privacy Shutters Control"; pixel_x = 25; pixel_y = -26; req_access_txt = "28"},/obj/machinery/button/flasher{id = "hopflash"; pixel_x = 38; pixel_y = -25},/turf/open/floor/wood,/area/crew_quarters/heads) +"bzO" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 4},/obj/item/weapon/stamp/hop{pixel_x = -4; pixel_y = 4},/turf/open/floor/wood,/area/crew_quarters/heads) +"bzP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/darkblue/corner,/area/bridge) +"bzQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/camera{c_tag = "Bridge - Port Access"; dir = 8; network = list("SS13")},/turf/open/floor/plasteel/darkblue/corner{dir = 1},/area/bridge) +"bzR" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green{pixel_x = 1; pixel_y = 5},/turf/open/floor/plasteel/black,/area/bridge) +"bzS" = (/obj/structure/table/wood,/obj/item/weapon/book/manual/wiki/security_space_law{pixel_y = 3},/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 28},/turf/open/floor/plasteel/black,/area/bridge) +"bzT" = (/obj/machinery/holopad,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/black,/area/bridge) +"bzU" = (/obj/machinery/camera{c_tag = "Council Chamber"; dir = 2; network = list("SS13")},/obj/machinery/light{dir = 1},/obj/machinery/ai_status_display{pixel_y = 32},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/turf/open/floor/plasteel/black,/area/bridge) +"bzV" = (/obj/structure/table/wood,/obj/item/weapon/folder/yellow,/obj/machinery/firealarm{pixel_y = 28},/turf/open/floor/plasteel/black,/area/bridge) +"bzW" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/machinery/light_switch{pixel_x = 28; pixel_y = 0},/turf/open/floor/plasteel/black,/area/bridge) +"bzX" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/camera{c_tag = "Bridge - Starboard Access"; dir = 4; network = list("SS13")},/turf/open/floor/plasteel/darkblue/corner,/area/bridge) +"bzY" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel/darkblue/corner{dir = 1},/area/bridge) +"bzZ" = (/obj/machinery/vending/cigarette{pixel_y = 2; products = list(/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate = 7, /obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 2, /obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 1, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/lighter/greyscale = 4, /obj/item/weapon/storage/fancy/rollingpapers = 5)},/turf/open/floor/wood,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bAa" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/carpet,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bAb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/chair/comfy/brown{icon_state = "comfychair"; dir = 4},/turf/open/floor/carpet,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bAc" = (/obj/structure/table/wood,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/item/weapon/storage/fancy/donut_box,/turf/open/floor/carpet,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bAd" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/chair/comfy/brown{icon_state = "comfychair"; dir = 8},/turf/open/floor/carpet,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bAe" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/carpet,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bAf" = (/obj/machinery/door/airlock/command{name = "Emergency Escape"; req_access = null; req_access_txt = "20"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating/warnplate{dir = 8},/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bAg" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/junction,/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/maintcentral{name = "Central Maintenance"}) +"bAh" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/hallway/primary/central) +"bAi" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/hallway/primary/central) +"bAj" = (/obj/structure/table,/obj/machinery/firealarm{dir = 8; pixel_x = -26; pixel_y = 0},/obj/machinery/chem_dispenser/drinks,/obj/structure/sign/barsign{pixel_y = 32},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bAk" = (/obj/structure/table,/obj/machinery/chem_dispenser/drinks/beer,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bAl" = (/obj/machinery/camera{c_tag = "Bar"; dir = 2; network = list("SS13")},/obj/machinery/requests_console{department = "Bar"; departmentType = 2; pixel_x = 0; pixel_y = 30},/obj/structure/table,/obj/item/weapon/book/manual/barman_recipes{pixel_y = 5},/obj/item/weapon/reagent_containers/food/drinks/shaker,/obj/item/weapon/reagent_containers/glass/rag{pixel_y = 5},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bAm" = (/obj/machinery/light{dir = 1},/obj/machinery/newscaster{pixel_x = 0; pixel_y = 32},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bAn" = (/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bAo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bAp" = (/obj/structure/sign/securearea{desc = "Under the painting a plaque reads: 'While the meat grinder may not have spared you, fear not. Not one part of you has gone to waste... You were delicious.'"; icon_state = "monkey_painting"; name = "Mr. Deempisi portrait"; pixel_x = 0; pixel_y = 28},/obj/structure/disposalpipe/trunk{dir = 8},/obj/machinery/disposal/bin,/obj/machinery/light_switch{pixel_x = 25; pixel_y = 0},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bAq" = (/obj/machinery/power/apc{cell_type = 5000; dir = 1; name = "Bar APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/open/floor/wood,/area/crew_quarters/bar) +"bAr" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/wood,/area/crew_quarters/bar) +"bAs" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/wood,/area/crew_quarters/bar) +"bAt" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 21},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light{dir = 1},/obj/machinery/camera{c_tag = "Club - Fore"; dir = 2; network = list("SS13")},/turf/open/floor/wood,/area/crew_quarters/bar) +"bAu" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/wood,/area/crew_quarters/bar) +"bAv" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_Toxins = 0},/obj/structure/disposalpipe/segment,/turf/open/floor/wood,/area/crew_quarters/bar) +"bAw" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/wood,/area/crew_quarters/bar) +"bAx" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plating,/area/maintenance/starboard) +"bAy" = (/obj/machinery/airalarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel/caution{dir = 8},/area/hallway/primary/starboard) +"bAz" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bAA" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/caution{dir = 4},/area/hallway/primary/starboard) +"bAB" = (/turf/closed/wall/r_wall,/area/atmos) +"bAC" = (/turf/closed/wall,/area/atmos) +"bAD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/atmos{name = "Atmospherics"; req_access_txt = "24"},/turf/open/floor/plasteel,/area/atmos) +"bAE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/closed/wall,/area/atmos) +"bAF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/atmos) +"bAG" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/turf/closed/wall/r_wall,/area/atmos) +"bAH" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/turf/closed/wall/r_wall,/area/atmos) +"bAI" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/closed/wall/r_wall,/area/atmos) +"bAJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall/r_wall,/area/atmos) +"bAK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/closed/wall/r_wall,/area/atmos) +"bAL" = (/obj/machinery/announcement_system,/turf/open/floor/plasteel/grimy,/area/tcommsat/computer{name = "\improper Telecoms Control Room"}) +"bAM" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/obj/structure/chair/office/dark{dir = 1},/turf/open/floor/plasteel/grimy,/area/tcommsat/computer{name = "\improper Telecoms Control Room"}) +"bAN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/grimy,/area/tcommsat/computer{name = "\improper Telecoms Control Room"}) +"bAO" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/grimy,/area/tcommsat/computer{name = "\improper Telecoms Control Room"}) +"bAP" = (/turf/open/floor/plasteel/grimy,/area/tcommsat/computer{name = "\improper Telecoms Control Room"}) +"bAQ" = (/obj/structure/chair/office/dark{dir = 4},/turf/open/floor/plasteel/grimy,/area/tcommsat/computer{name = "\improper Telecoms Control Room"}) +"bAR" = (/obj/machinery/computer/security/telescreen{dir = 8; name = "Telecoms Camera Monitor"; network = list("tcomm"); pixel_x = 26; pixel_y = 0},/obj/machinery/computer/telecomms/monitor{network = "tcommsat"},/turf/open/floor/plasteel/grimy,/area/tcommsat/computer{name = "\improper Telecoms Control Room"}) +"bAS" = (/obj/machinery/light,/turf/open/floor/plasteel/warning,/area/hallway/secondary/entry{name = "Arrivals"}) +"bAT" = (/obj/machinery/camera{c_tag = "Arrivals - Middle Arm - Far"; dir = 1; network = list("SS13")},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = -32},/turf/open/floor/plasteel/warning,/area/hallway/secondary/entry{name = "Arrivals"}) +"bAU" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/warning,/area/hallway/secondary/entry{name = "Arrivals"}) +"bAV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/warning,/area/hallway/secondary/entry{name = "Arrivals"}) +"bAW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = -32},/turf/open/floor/plasteel/warning,/area/hallway/secondary/entry{name = "Arrivals"}) +"bAX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/light,/turf/open/floor/plasteel/warning,/area/hallway/secondary/entry{name = "Arrivals"}) +"bAY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -25},/turf/open/floor/plasteel/warning,/area/hallway/secondary/entry{name = "Arrivals"}) +"bAZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/camera{c_tag = "Arrivals - Middle Arm"; dir = 1; network = list("SS13")},/turf/open/floor/plasteel/warning,/area/hallway/secondary/entry{name = "Arrivals"}) +"bBa" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/warning/corner{dir = 1},/area/hallway/secondary/entry{name = "Arrivals"}) +"bBb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/blue/corner{dir = 2},/area/hallway/secondary/entry{name = "Arrivals"}) +"bBc" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/plasteel/arrival{dir = 2},/area/hallway/secondary/entry{name = "Arrivals"}) +"bBd" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/arrival{dir = 2},/area/hallway/secondary/entry{name = "Arrivals"}) +"bBe" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -25},/turf/open/floor/plasteel/arrival{dir = 6},/area/hallway/secondary/entry{name = "Arrivals"}) +"bBf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/airalarm{dir = 1; pixel_y = -22},/turf/open/floor/plasteel/neutral/side{dir = 10},/area/hallway/primary/port) +"bBg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/firealarm{dir = 2; pixel_y = -24},/turf/open/floor/plasteel/neutral/side,/area/hallway/primary/port) +"bBh" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = -32},/turf/open/floor/plasteel/neutral/side,/area/hallway/primary/port) +"bBi" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/neutral/side,/area/hallway/primary/port) +"bBj" = (/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/open/floor/plasteel/neutral/side{dir = 6},/area/hallway/primary/port) +"bBk" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/hallway/primary/port) +"bBl" = (/obj/structure/sign/map/left{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-left-MS"; pixel_y = -32},/turf/open/floor/plasteel/neutral/side{dir = 10},/area/hallway/primary/port) +"bBm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/sign/map/right{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-right-MS"; pixel_y = -32},/turf/open/floor/plasteel/neutral/side,/area/hallway/primary/port) +"bBn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/neutral/side{dir = 6},/area/hallway/primary/port) +"bBo" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock{name = "Auxiliary Bathrooms"; req_access_txt = "0"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/floorgrime,/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) +"bBp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/sink/kitchen{desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; name = "old sink"; pixel_y = 28},/turf/open/floor/plasteel/floorgrime,/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) +"bBq" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/obj/structure/sink/kitchen{desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; name = "old sink"; pixel_y = 28},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/plating,/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) +"bBr" = (/obj/machinery/vending/cigarette,/obj/structure/sign/poster{pixel_x = 32; pixel_y = 0},/turf/open/floor/plating,/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) +"bBs" = (/obj/item/weapon/cigbutt,/obj/machinery/power/apc{cell_type = 5000; dir = 2; name = "Port Maintenance APC"; pixel_y = -24},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/open/floor/plating/warnplate{dir = 2},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bBt" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bBu" = (/obj/structure/table/wood,/obj/machinery/newscaster{pixel_x = -32; pixel_y = 0},/turf/open/floor/wood,/area/library) +"bBv" = (/obj/structure/chair/office/dark{dir = 1},/obj/effect/landmark/start{name = "Librarian"},/turf/open/floor/wood,/area/library) +"bBw" = (/obj/structure/chair/comfy/black{dir = 8},/turf/open/floor/wood,/area/library) +"bBx" = (/turf/open/floor/plasteel/cult{dir = 2},/area/library) +"bBy" = (/obj/structure/chair/comfy/brown{dir = 1},/turf/open/floor/plasteel/cult{dir = 2},/area/library) +"bBz" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor,/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/central) +"bBA" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow,/obj/machinery/door/poddoor/preopen{id = "hop"; name = "privacy shutters"},/turf/open/floor/plating,/area/crew_quarters/heads) +"bBB" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/door/poddoor/preopen{id = "hop"; name = "privacy shutters"},/turf/open/floor/plating,/area/crew_quarters/heads) +"bBC" = (/obj/structure/table/reinforced,/obj/machinery/door/window/brigdoor{base_state = "rightsecure"; dir = 1; icon_state = "rightsecure"; name = "Head of Personnel's Desk"; req_access_txt = "57"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/window/northleft{dir = 2; icon_state = "left"; name = "Reception Window"; req_access_txt = "0"},/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "hop"; layer = 3.1; name = "privacy shutters"; opacity = 0},/turf/open/floor/plasteel,/area/crew_quarters/heads) +"bBD" = (/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = -26; pixel_y = 0},/turf/open/floor/plasteel/darkblue/corner,/area/bridge) +"bBE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/darkblue/corner{dir = 1},/area/bridge) +"bBF" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{name = "Council Chamber"; req_access = null; req_access_txt = "19"},/turf/open/floor/plasteel/black,/area/bridge) +"bBG" = (/obj/structure/chair/comfy/beige,/turf/open/floor/carpet,/area/bridge) +"bBH" = (/obj/structure/chair/comfy/black,/turf/open/floor/carpet,/area/bridge) +"bBI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/chair/comfy/beige,/turf/open/floor/carpet,/area/bridge) +"bBJ" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/carpet,/area/bridge) +"bBK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/carpet,/area/bridge) +"bBL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/bridge) +"bBM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{name = "Council Chamber"; req_access = null; req_access_txt = "19"},/turf/open/floor/plasteel/black,/area/bridge) +"bBN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/darkblue/corner,/area/bridge) +"bBO" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/darkblue/corner{dir = 1},/area/bridge) +"bBP" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{name = "Captain's Quarters"; req_access = null; req_access_txt = "20"},/turf/open/floor/plasteel/black,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bBQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/carpet,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bBR" = (/obj/structure/chair/comfy/brown{icon_state = "comfychair"; dir = 4},/turf/open/floor/carpet,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bBS" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/drinks/shaker,/turf/open/floor/carpet,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bBT" = (/obj/structure/chair/comfy/brown{icon_state = "comfychair"; dir = 8},/turf/open/floor/carpet,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bBU" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/open/floor/carpet,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bBV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/light/small{dir = 4},/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/maintcentral{name = "Central Maintenance"}) +"bBW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/central) +"bBX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/hallway/primary/central) +"bBY" = (/obj/structure/sign/poster,/turf/closed/wall,/area/crew_quarters/bar) +"bBZ" = (/obj/effect/landmark/start{name = "Bartender"},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bCa" = (/mob/living/carbon/monkey/punpun,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bCb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/landmark/start{name = "Bartender"},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bCc" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock{name = "Bar Access"; req_access_txt = "25"},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bCd" = (/turf/open/floor/wood,/area/crew_quarters/bar) +"bCe" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/table/wood/poker,/obj/item/clothing/head/fedora,/turf/open/floor/wood,/area/crew_quarters/bar) +"bCf" = (/obj/structure/table/wood/poker,/obj/item/toy/cards/deck{pixel_y = 4},/turf/open/floor/wood,/area/crew_quarters/bar) +"bCg" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/wood,/area/crew_quarters/bar) +"bCh" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 4},/turf/open/floor/wood,/area/crew_quarters/bar) +"bCi" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/wood,/area/crew_quarters/bar) +"bCj" = (/obj/structure/piano,/obj/structure/window/reinforced{dir = 8},/obj/structure/sign/poster{pixel_y = 32},/turf/open/floor/carpet,/area/crew_quarters/theatre) +"bCk" = (/obj/structure/chair/wood/wings{dir = 8},/obj/machinery/light_switch{pixel_y = 28},/turf/open/floor/carpet,/area/crew_quarters/theatre) +"bCl" = (/obj/machinery/light/small{dir = 1},/obj/structure/sign/poster{pixel_y = 32},/turf/open/floor/carpet,/area/crew_quarters/theatre) +"bCm" = (/obj/machinery/power/apc{dir = 1; name = "Theatre APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/structure/table/wood,/obj/item/clothing/glasses/monocle,/turf/open/floor/wood,/area/crew_quarters/theatre) +"bCn" = (/obj/structure/table/wood,/obj/item/weapon/staff/broom,/obj/item/weapon/wrench,/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/sign/poster{pixel_y = 32},/turf/open/floor/wood,/area/crew_quarters/theatre) +"bCo" = (/turf/closed/wall,/area/crew_quarters/theatre) +"bCp" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/starboard) +"bCq" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/device/radio/beacon,/turf/open/floor/plasteel/caution{dir = 8},/area/hallway/primary/starboard) +"bCr" = (/turf/open/floor/plasteel/caution{dir = 4},/area/hallway/primary/starboard) +"bCs" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -30},/obj/item/weapon/crowbar/red,/obj/item/weapon/wrench,/obj/item/clothing/mask/gas,/obj/machinery/airalarm{pixel_y = 23},/obj/structure/table,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/turf/open/floor/plasteel/caution{dir = 9},/area/atmos) +"bCt" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/light{dir = 1},/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/open/floor/plasteel/caution{dir = 1},/area/atmos) +"bCu" = (/obj/machinery/computer/atmos_alert,/obj/structure/sign/map/left{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-left-MS"; pixel_y = 32},/obj/machinery/camera{c_tag = "Atmospherics - Control Room"; network = list("SS13")},/turf/open/floor/plasteel/caution{dir = 1},/area/atmos) +"bCv" = (/obj/structure/sign/map/right{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-right-MS"; pixel_y = 32},/obj/machinery/computer/station_alert,/turf/open/floor/plasteel/caution{dir = 1},/area/atmos) +"bCw" = (/obj/structure/sign/atmosplaque{pixel_x = 0; pixel_y = 32},/obj/item/weapon/phone{pixel_x = -3; pixel_y = 3},/obj/item/weapon/cigbutt/cigarbutt{pixel_x = 5; pixel_y = -1},/obj/structure/table,/obj/machinery/light_switch{pixel_x = 26; pixel_y = 0},/turf/open/floor/plasteel/caution{dir = 5},/area/atmos) +"bCx" = (/obj/structure/table,/obj/item/clothing/head/welding{pixel_x = -3; pixel_y = 7},/obj/item/clothing/head/welding{pixel_x = -5; pixel_y = 3},/obj/machinery/airalarm{pixel_y = 23},/obj/machinery/light_switch{pixel_x = -26; pixel_y = 0},/turf/open/floor/plasteel/caution{dir = 8},/area/atmos) +"bCy" = (/obj/machinery/power/apc{cell_type = 10000; dir = 1; name = "Atmospherics APC"; pixel_x = 0; pixel_y = 28},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/camera{c_tag = "Atmospherics - Entrance"; network = list("SS13")},/turf/open/floor/plasteel,/area/atmos) +"bCz" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/atmos) +"bCA" = (/obj/machinery/space_heater,/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/open/floor/plasteel/warning{dir = 8},/area/atmos) +"bCB" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/atmos) +"bCC" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{dir = 8},/obj/machinery/meter{frequency = 1441; id_tag = "waste_meter"; name = "Waste Loop"},/turf/open/floor/plasteel/caution{dir = 1},/area/atmos) +"bCD" = (/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Distro to Waste"; on = 0},/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/caution{dir = 1},/area/atmos) +"bCE" = (/obj/machinery/meter{frequency = 1441; id_tag = "distro_meter"; name = "Distribution Loop"},/obj/machinery/atmospherics/pipe/manifold4w/supply/visible,/turf/open/floor/plasteel/caution{dir = 1},/area/atmos) +"bCF" = (/obj/machinery/atmospherics/pipe/manifold/supply/visible{dir = 1},/turf/open/floor/plasteel/caution{dir = 1},/area/atmos) +"bCG" = (/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Air to Distro"; on = 1; target_pressure = 101},/obj/machinery/airalarm{pixel_y = 25},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/camera{c_tag = "Atmospherics - Distro Loop"; network = list("SS13")},/turf/open/floor/plasteel/caution{dir = 1},/area/atmos) +"bCH" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 10; initialize_directions = 10},/turf/open/floor/plasteel/caution{dir = 1},/area/atmos) +"bCI" = (/obj/machinery/atmospherics/components/unary/thermomachine/heater{dir = 2; on = 1},/turf/open/floor/plasteel/caution{dir = 1},/area/atmos) +"bCJ" = (/obj/structure/lattice,/obj/structure/grille,/turf/closed/wall/r_wall,/area/space) +"bCK" = (/obj/structure/grille,/obj/structure/lattice,/turf/closed/wall/r_wall,/area/space) +"bCL" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"bCM" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/window/reinforced{dir = 1; layer = 2.9},/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"bCN" = (/obj/structure/window/reinforced{dir = 1; layer = 2.9},/obj/structure/window/reinforced{dir = 4},/obj/machinery/light/small{dir = 4},/obj/machinery/camera{c_tag = "MiniSat Exterior - Port Aft"; dir = 8; network = list("MiniSat")},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"bCO" = (/obj/machinery/computer/message_monitor,/obj/machinery/airalarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/open/floor/plasteel/grimy,/area/tcommsat/computer{name = "\improper Telecoms Control Room"}) +"bCP" = (/obj/structure/chair/office/dark{dir = 8},/turf/open/floor/plasteel/grimy,/area/tcommsat/computer{name = "\improper Telecoms Control Room"}) +"bCQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/grimy,/area/tcommsat/computer{name = "\improper Telecoms Control Room"}) +"bCR" = (/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/grimy,/area/tcommsat/computer{name = "\improper Telecoms Control Room"}) +"bCS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/grimy,/area/tcommsat/computer{name = "\improper Telecoms Control Room"}) +"bCT" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/chair/office/dark,/turf/open/floor/plasteel/grimy,/area/tcommsat/computer{name = "\improper Telecoms Control Room"}) +"bCU" = (/obj/machinery/power/apc{cell_type = 5000; dir = 4; name = "Telecoms Control Room APC"; pixel_x = 26; pixel_y = 0},/obj/machinery/computer/telecomms/server{network = "tcommsat"},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel/grimy,/area/tcommsat/computer{name = "\improper Telecoms Control Room"}) +"bCV" = (/obj/structure/window/reinforced{dir = 1; layer = 2.9},/obj/structure/window/reinforced{dir = 8},/obj/machinery/light/small{dir = 8},/obj/machinery/camera{c_tag = "MiniSat Exterior - Starboard Aft"; dir = 4; network = list("MiniSat")},/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"bCW" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"bCX" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock{name = "Port Emergency Storage"; req_access_txt = "0"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bCY" = (/turf/closed/wall,/area/security/vacantoffice) +"bCZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/security/vacantoffice) +"bDa" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/centcom{name = "Vacant Office"; opacity = 1; req_access_txt = "32"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/security/vacantoffice) +"bDb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/floorgrime,/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) +"bDc" = (/obj/structure/mirror{pixel_x = 28},/turf/open/floor/plating,/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) +"bDd" = (/obj/machinery/photocopier{pixel_y = 3},/turf/open/floor/wood,/area/library) +"bDe" = (/turf/open/floor/wood,/area/library) +"bDf" = (/obj/machinery/light{dir = 4},/obj/machinery/camera/autoname{dir = 8; network = list("SS13")},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/carpet,/area/library) +"bDg" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 0},/turf/closed/wall,/area/library) +"bDh" = (/obj/machinery/door/morgue{name = "Study #1"; req_access_txt = "0"},/turf/open/floor/plasteel/cult{dir = 2},/area/library) +"bDi" = (/obj/machinery/door/morgue{name = "Study #2"; req_access_txt = "0"},/turf/open/floor/plasteel/cult{dir = 2},/area/library) +"bDj" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/central) +"bDk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/camera{c_tag = "Central Primary Hallway - Port"; dir = 8; network = list("SS13")},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/hallway/primary/central) +"bDl" = (/turf/closed/wall,/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bDm" = (/obj/machinery/vending/cola,/turf/open/floor/plasteel/black,/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bDn" = (/turf/open/floor/plasteel/bot,/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bDo" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 21},/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_x = 0; pixel_y = 32},/turf/open/floor/plasteel/bot,/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bDp" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/open/floor/plasteel/bot,/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bDq" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 21},/turf/open/floor/plasteel/bot,/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bDr" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/flasher{id = "hopflash"; pixel_x = 28; pixel_y = -28},/turf/open/floor/plasteel/delivery,/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bDs" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 4},/obj/item/weapon/pen,/turf/open/floor/plasteel/delivery,/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bDt" = (/turf/closed/wall/r_wall,/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bDu" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/obj/machinery/button/door{id = "bridge blast"; name = "Bridge Access Blast Door Control"; pixel_x = 24; pixel_y = -24; req_access_txt = "19"},/turf/open/floor/plasteel/darkblue/corner{dir = 1},/area/bridge) +"bDv" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/machinery/vending/coffee{pixel_x = -3},/obj/machinery/button/door{id = "council blast"; name = "Council Chamber Blast Door Control"; pixel_x = -28; pixel_y = 0; req_access_txt = "19"},/turf/open/floor/plasteel/black,/area/bridge) +"bDw" = (/obj/structure/chair/comfy/teal{icon_state = "comfychair"; dir = 4},/obj/structure/chair/comfy/black{dir = 4},/turf/open/floor/carpet,/area/bridge) +"bDx" = (/obj/structure/table/wood,/obj/item/weapon/folder/white,/turf/open/floor/carpet,/area/bridge) +"bDy" = (/obj/structure/table/wood,/obj/item/weapon/folder/blue,/obj/item/weapon/lighter,/turf/open/floor/carpet,/area/bridge) +"bDz" = (/obj/structure/table/wood,/obj/item/weapon/folder/red,/turf/open/floor/carpet,/area/bridge) +"bDA" = (/obj/structure/chair/comfy/black{dir = 8},/turf/open/floor/carpet,/area/bridge) +"bDB" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/vending/cigarette{pixel_x = 2},/turf/open/floor/plasteel/black,/area/bridge) +"bDC" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/button/door{id = "bridge blast"; name = "Bridge Access Blast Door Control"; pixel_x = -24; pixel_y = -24; req_access_txt = "19"},/turf/open/floor/plasteel/black,/area/bridge) +"bDD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/darkblue/corner{dir = 1},/area/bridge) +"bDE" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/carpet,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bDF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/carpet,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bDG" = (/obj/machinery/light,/obj/machinery/computer/security/telescreen{dir = 1; name = "MiniSat Monitor"; network = list("MiniSat","tcomm"); pixel_x = 0; pixel_y = -29},/mob/living/simple_animal/pet/fox/Renault,/turf/open/floor/carpet,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bDH" = (/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -26},/turf/open/floor/carpet,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bDI" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/carpet,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bDJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plating/warnplate,/area/maintenance/maintcentral{name = "Central Maintenance"}) +"bDK" = (/obj/machinery/computer/security/telescreen/entertainment{pixel_x = -31; pixel_y = 0},/obj/machinery/party/turntable,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bDL" = (/obj/structure/table/reinforced,/obj/item/weapon/lighter,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bDM" = (/obj/structure/table/reinforced,/obj/item/clothing/head/that{throwforce = 1; throwing = 1},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bDN" = (/obj/structure/table/reinforced,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bDO" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/matches{pixel_y = 5},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bDP" = (/obj/structure/table/reinforced,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bDQ" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_x = -3; pixel_y = 0},/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = 3},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bDR" = (/obj/machinery/smartfridge/drinks{icon_state = "boozeomat"},/turf/closed/wall,/area/crew_quarters/bar) +"bDS" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/table/wood/poker,/obj/item/toy/cards/deck{pixel_y = 4},/turf/open/floor/wood,/area/crew_quarters/bar) +"bDT" = (/obj/structure/table/wood/poker,/obj/effect/spawner/lootdrop{loot = list(/obj/item/weapon/gun/projectile/revolver/russian = 5, /obj/item/weapon/storage/box/syndie_kit/throwing_weapons, /obj/item/toy/cards/deck/syndicate = 2); name = "gambling valuables spawner"},/turf/open/floor/wood,/area/crew_quarters/bar) +"bDU" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/wood,/area/crew_quarters/bar) +"bDV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/carpet,/area/crew_quarters/theatre) +"bDW" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/turf/open/floor/carpet,/area/crew_quarters/theatre) +"bDX" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/carpet,/area/crew_quarters/theatre) +"bDY" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/carpet,/area/crew_quarters/theatre) +"bDZ" = (/obj/structure/table/wood,/obj/machinery/light/small{dir = 4},/obj/item/clothing/head/sombrero,/obj/structure/sign/poster{pixel_x = 32; pixel_y = 0},/turf/open/floor/wood,/area/crew_quarters/theatre) +"bEa" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/pump,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/window/reinforced{dir = 1},/obj/machinery/camera{c_tag = "Starboard Primary Hallway - Atmospherics"; dir = 4; network = list("SS13")},/turf/open/floor/plasteel/arrival{dir = 8},/area/hallway/primary/starboard) +"bEb" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bEc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/caution{dir = 4},/area/hallway/primary/starboard) +"bEd" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/turf/open/floor/plating,/area/atmos) +"bEe" = (/obj/item/clothing/mask/breath{pixel_x = 4; pixel_y = 0},/obj/item/weapon/tank/internals/emergency_oxygen{pixel_x = -8; pixel_y = 0},/obj/structure/table,/turf/open/floor/plasteel/caution{dir = 8},/area/atmos) +"bEf" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/atmos) +"bEg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel,/area/atmos) +"bEh" = (/obj/structure/chair/office/dark{dir = 4},/obj/effect/landmark/start{name = "Atmospheric Technician"},/turf/open/floor/plasteel,/area/atmos) +"bEi" = (/obj/machinery/computer/atmos_control,/obj/machinery/requests_console{department = "Atmospherics"; departmentType = 4; name = "Atmos RC"; pixel_x = 30; pixel_y = 0},/turf/open/floor/plasteel/caution{dir = 4},/area/atmos) +"bEj" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/weapon/grenade/chem_grenade/metalfoam,/obj/item/weapon/grenade/chem_grenade/metalfoam,/turf/open/floor/plasteel/caution{dir = 8},/area/atmos) +"bEk" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel,/area/atmos) +"bEl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/atmos) +"bEm" = (/obj/machinery/space_heater,/turf/open/floor/plasteel/warning{dir = 8},/area/atmos) +"bEn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/turf/open/floor/plasteel,/area/atmos) +"bEo" = (/obj/machinery/atmospherics/components/unary/thermomachine/heater{dir = 2; on = 1},/turf/open/floor/plasteel,/area/atmos) +"bEp" = (/obj/machinery/atmospherics/components/unary/thermomachine/heater{dir = 1; on = 1},/turf/open/floor/plasteel,/area/atmos) +"bEq" = (/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "Mix to Distro"; on = 0},/turf/open/floor/plasteel,/area/atmos) +"bEr" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel,/area/atmos) +"bEs" = (/obj/machinery/atmospherics/pipe/manifold/cyan/visible{dir = 8; initialize_directions = 11},/obj/machinery/meter,/turf/open/floor/plasteel,/area/atmos) +"bEt" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 4},/turf/open/floor/plasteel,/area/atmos) +"bEu" = (/obj/structure/grille,/turf/closed/wall/r_wall,/area/atmos) +"bEv" = (/obj/structure/window/reinforced{dir = 1; pixel_y = 2},/obj/structure/lattice,/turf/open/space,/area/space) +"bEw" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1; pixel_y = 2},/turf/open/space,/area/space) +"bEx" = (/obj/machinery/microwave{pixel_x = 0; pixel_y = 4},/obj/structure/table/wood,/turf/open/floor/plasteel/grimy,/area/tcommsat/computer{name = "\improper Telecoms Control Room"}) +"bEy" = (/obj/machinery/light/small,/obj/item/weapon/storage/box/donkpockets,/obj/structure/table/wood,/turf/open/floor/plasteel/grimy,/area/tcommsat/computer{name = "\improper Telecoms Control Room"}) +"bEz" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-21"; layer = 4.1},/turf/open/floor/plasteel/grimy,/area/tcommsat/computer{name = "\improper Telecoms Control Room"}) +"bEA" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/grimy,/area/tcommsat/computer{name = "\improper Telecoms Control Room"}) +"bEB" = (/obj/structure/filingcabinet{pixel_x = 3},/turf/open/floor/plasteel/grimy,/area/tcommsat/computer{name = "\improper Telecoms Control Room"}) +"bEC" = (/obj/machinery/light/small,/obj/item/weapon/folder,/obj/item/weapon/folder,/obj/machinery/camera{c_tag = "Telecoms - Control Room"; dir = 1; network = list("SS13","tcomm")},/obj/structure/table/wood,/obj/item/weapon/pen,/turf/open/floor/plasteel/grimy,/area/tcommsat/computer{name = "\improper Telecoms Control Room"}) +"bED" = (/obj/machinery/requests_console{announcementConsole = 1; department = "Telecoms Admin"; departmentType = 5; name = "Telecoms RC"; pixel_x = 0; pixel_y = -30},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/item/weapon/paper_bin{pixel_x = -1; pixel_y = 6},/obj/structure/table/wood,/turf/open/floor/plasteel/grimy,/area/tcommsat/computer{name = "\improper Telecoms Control Room"}) +"bEE" = (/obj/structure/window/reinforced{dir = 1; layer = 2.9},/obj/structure/lattice,/turf/open/space,/area/space) +"bEF" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 4},/turf/closed/wall/mineral/titanium/overspace,/area/shuttle/transport) +"bEG" = (/turf/closed/wall/mineral/titanium,/area/shuttle/transport) +"bEH" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/open/floor/plating,/area/shuttle/transport) +"bEI" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/transport) +"bEJ" = (/turf/closed/wall/mineral/titanium/overspace,/area/shuttle/transport) +"bEK" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/bot,/area/hallway/secondary/entry{name = "Arrivals"}) +"bEL" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/arrival{dir = 4},/area/hallway/secondary/entry{name = "Arrivals"}) +"bEM" = (/obj/effect/decal/cleanable/cobweb/cobweb2,/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bEN" = (/obj/structure/table/wood,/obj/machinery/light_switch{pixel_x = -28; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/weapon/folder,/turf/open/floor/wood,/area/security/vacantoffice) +"bEO" = (/turf/open/floor/wood,/area/security/vacantoffice) +"bEP" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/security/vacantoffice) +"bEQ" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp,/turf/open/floor/wood,/area/security/vacantoffice) +"bER" = (/obj/structure/table/wood,/obj/item/weapon/clipboard,/obj/item/weapon/paper,/obj/structure/sign/poster{pixel_y = 32},/turf/open/floor/wood,/area/security/vacantoffice) +"bES" = (/obj/structure/table/wood,/obj/item/device/camera_film{pixel_y = 9},/obj/item/device/camera_film{pixel_x = -3; pixel_y = 5},/turf/open/floor/wood,/area/security/vacantoffice) +"bET" = (/obj/structure/urinal{pixel_y = 29},/obj/structure/sign/poster{pixel_x = -32; pixel_y = 0},/turf/open/floor/plating,/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) +"bEU" = (/obj/structure/urinal{pixel_y = 29},/turf/open/floor/plating,/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) +"bEV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/floorgrime,/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) +"bEW" = (/turf/open/floor/plasteel/floorgrime,/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) +"bEX" = (/obj/machinery/door/airlock{id_tag = "AuxToilet1"; name = "Unit 1"},/turf/open/floor/plasteel,/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) +"bEY" = (/obj/structure/toilet{pixel_y = 8},/obj/machinery/light/small{dir = 4},/obj/machinery/button/door{id = "AuxToilet1"; name = "Lock Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/newscaster{pixel_x = 0; pixel_y = -32},/turf/open/floor/plasteel,/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) +"bEZ" = (/obj/structure/rack,/obj/item/device/flashlight,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bFa" = (/obj/structure/table/wood,/obj/machinery/airalarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/open/floor/wood,/area/library) +"bFb" = (/obj/structure/chair/office/dark{dir = 8},/turf/open/floor/wood,/area/library) +"bFc" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green{pixel_x = 1; pixel_y = 5},/turf/open/floor/wood,/area/library) +"bFd" = (/obj/machinery/vending/coffee,/obj/machinery/newscaster{pixel_x = 0; pixel_y = 32},/turf/open/floor/wood,/area/library) +"bFe" = (/obj/structure/chair/comfy/black,/obj/effect/landmark/start{name = "Assistant"},/turf/open/floor/wood,/area/library) +"bFf" = (/obj/machinery/light{dir = 1},/obj/machinery/status_display{pixel_y = 30},/obj/machinery/photocopier{pixel_y = 3},/turf/open/floor/wood,/area/library) +"bFg" = (/obj/machinery/bookbinder,/turf/open/floor/wood,/area/library) +"bFh" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/wood,/area/library) +"bFi" = (/obj/structure/sign/directions/engineering{desc = "A direction sign, pointing out which way the bridge is."; dir = 4; icon_state = "direction_bridge"; name = "bridge"; pixel_y = -8},/obj/structure/sign/directions/security{desc = "A direction sign, pointing out which way the security department is."; dir = 1; icon_state = "direction_sec"; pixel_x = 0; pixel_y = 8},/obj/structure/sign/directions/engineering{desc = "A direction sign, pointing out which way the engineering department is."; dir = 4; icon_state = "direction_eng"; pixel_y = 0},/turf/closed/wall,/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bFj" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/open/floor/plating,/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bFk" = (/obj/machinery/door/poddoor/shutters/preopen{id = "hopqueue"; name = "HoP Queue Shutters"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/loadingarea{dir = 1},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bFl" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bFm" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/poddoor/shutters/preopen{id = "hopqueue"; name = "HoP Queue Shutters"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/loadingarea,/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bFn" = (/obj/structure/sign/directions/engineering{desc = "A direction sign, pointing out which way the bridge is."; dir = 1; icon_state = "direction_bridge"; name = "bridge"; pixel_y = -8},/turf/closed/wall/r_wall,/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bFo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/poddoor/preopen{id = "bridge blast"; name = "bridge blast door"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_command{name = "Bridge Access"; req_access_txt = "19"},/turf/open/floor/plasteel/vault,/area/bridge) +"bFp" = (/obj/machinery/door/poddoor/preopen{id = "bridge blast"; name = "bridge blast door"},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/airlock/glass_command{name = "Bridge Access"; req_access_txt = "19"},/turf/open/floor/plasteel/vault,/area/bridge) +"bFq" = (/obj/structure/sign/securearea,/turf/closed/wall/r_wall,/area/bridge) +"bFr" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "council blast"; layer = 2.9; name = "Council Blast Doors"; opacity = 0},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/open/floor/plating,/area/bridge) +"bFs" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "council blast"; layer = 2.9; name = "Council Blast Doors"; opacity = 0},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/bridge) +"bFt" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "council blast"; layer = 2.9; name = "Council Blast Doors"; opacity = 0},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/open/floor/plating,/area/bridge) +"bFu" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "council blast"; layer = 2.9; name = "Council Blast Doors"; opacity = 0},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/open/floor/plating,/area/bridge) +"bFv" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "council blast"; layer = 2.9; name = "Council Blast Doors"; opacity = 0},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/bridge) +"bFw" = (/obj/machinery/door/poddoor/preopen{id = "bridge blast"; name = "bridge blast door"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_command{name = "Bridge Access"; req_access_txt = "19"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/vault,/area/bridge) +"bFx" = (/obj/structure/sign/directions/engineering{desc = "A direction sign, pointing out which way the bridge is."; dir = 1; icon_state = "direction_bridge"; name = "bridge"; pixel_y = -8},/turf/closed/wall/r_wall,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bFy" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "20;12"},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/maintcentral{name = "Central Maintenance"}) +"bFz" = (/obj/structure/sign/directions/engineering{desc = "A direction sign, pointing out which way the engineering department is."; dir = 4; icon_state = "direction_eng"; pixel_y = 0},/obj/structure/sign/directions/security{desc = "A direction sign, pointing out which way the security department is."; dir = 1; icon_state = "direction_sec"; pixel_x = 0; pixel_y = 8},/obj/structure/sign/directions/engineering{desc = "A direction sign, pointing out which way the bridge is."; dir = 8; icon_state = "direction_bridge"; name = "bridge"; pixel_y = -8},/turf/closed/wall,/area/maintenance/maintcentral{name = "Central Maintenance"}) +"bFA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/central) +"bFB" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=12-Central-Starboard"; location = "11.1-Command-Starboard"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bFC" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/bar) +"bFD" = (/obj/structure/chair/stool/bar,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bFE" = (/obj/machinery/holopad,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bFF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/landmark/start{name = "Assistant"},/obj/structure/chair/stool/bar,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bFG" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/wood,/area/crew_quarters/bar) +"bFH" = (/obj/structure/disposalpipe/segment,/obj/structure/table/wood/poker,/obj/item/toy/cards/deck{pixel_y = 4},/turf/open/floor/wood,/area/crew_quarters/bar) +"bFI" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/carpet,/area/crew_quarters/theatre) +"bFJ" = (/obj/structure/chair/wood/wings,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/landmark/start{name = "Mime"},/turf/open/floor/carpet,/area/crew_quarters/theatre) +"bFK" = (/turf/open/floor/carpet,/area/crew_quarters/theatre) +"bFL" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/carpet,/area/crew_quarters/theatre) +"bFM" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/snacks/pie/cream,/turf/open/floor/wood,/area/crew_quarters/theatre) +"bFN" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/pump,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/arrival{dir = 8},/area/hallway/primary/starboard) +"bFO" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/caution{dir = 4},/area/hallway/primary/starboard) +"bFP" = (/obj/structure/table/reinforced,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/obj/machinery/door/window/northleft{dir = 4; icon_state = "left"; name = "Atmospherics Desk"; req_access_txt = "24"},/obj/item/weapon/folder/yellow,/obj/item/weapon/folder/yellow,/obj/item/weapon/pen,/obj/machinery/door/firedoor,/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/turf/open/floor/plasteel/delivery{name = "floor"},/area/atmos) +"bFQ" = (/obj/structure/chair{dir = 8},/obj/effect/landmark/start{name = "Atmospheric Technician"},/turf/open/floor/plasteel/caution{dir = 8},/area/atmos) +"bFR" = (/turf/open/floor/plasteel,/area/atmos) +"bFS" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel,/area/atmos) +"bFT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/atmos) +"bFU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/computer/atmos_control,/turf/open/floor/plasteel/caution{dir = 4},/area/atmos) +"bFV" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/atmos) +"bFW" = (/obj/structure/table,/obj/item/weapon/storage/belt/utility,/obj/item/device/t_scanner,/obj/item/device/t_scanner,/obj/item/device/t_scanner,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/caution{dir = 8},/area/atmos) +"bFX" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/atmos) +"bFY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/atmos) +"bFZ" = (/obj/machinery/space_heater,/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/warning{dir = 10},/area/atmos) +"bGa" = (/obj/machinery/atmospherics/components/binary/pump{dir = 0; name = "Waste to Filter"; on = 1},/turf/open/floor/plasteel,/area/atmos) +"bGb" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{color = "purple"; dir = 5; icon_state = "intact"},/turf/open/floor/plasteel,/area/atmos) +"bGc" = (/obj/machinery/atmospherics/pipe/manifold/yellow/visible{color = "purple"; dir = 1},/obj/machinery/meter,/turf/open/floor/plasteel,/area/atmos) +"bGd" = (/obj/machinery/atmospherics/pipe/manifold/yellow/visible{color = "purple"},/turf/open/floor/plasteel,/area/atmos) +"bGe" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{color = "purple"; dir = 4},/turf/open/floor/plasteel,/area/atmos) +"bGf" = (/obj/machinery/atmospherics/components/binary/pump{dir = 0; name = "Air to Mix"; on = 0},/obj/machinery/atmospherics/pipe/simple/yellow/visible{color = "purple"; dir = 4},/turf/open/floor/plasteel,/area/atmos) +"bGg" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible,/obj/machinery/atmospherics/pipe/simple/yellow/visible{color = "purple"; dir = 4},/turf/open/floor/plasteel/green/side{dir = 5},/area/atmos) +"bGh" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/yellow/visible{color = "purple"; dir = 4},/turf/open/floor/plating,/area/atmos) +"bGi" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/yellow/visible{color = "purple"; dir = 4},/turf/open/space,/area/space) +"bGj" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/obj/structure/grille,/turf/closed/wall/r_wall,/area/atmos) +"bGk" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; external_pressure_bound = 0; frequency = 1441; id_tag = "mix_in"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/open/floor/engine/vacuum,/area/atmos) +"bGl" = (/turf/open/floor/engine/vacuum,/area/atmos) +"bGm" = (/turf/closed/wall/r_wall,/area/tcommsat/server) +"bGn" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/tcommsat/server) +"bGo" = (/obj/machinery/door/airlock/hatch{name = "Telecoms Server Room"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/tcommsat/server) +"bGp" = (/turf/open/floor/mineral/titanium/blue,/turf/closed/wall/mineral/titanium/interior,/area/shuttle/transport) +"bGq" = (/obj/structure/chair{dir = 4},/turf/open/floor/mineral/titanium/blue,/area/shuttle/transport) +"bGr" = (/obj/machinery/computer/shuttle/ferry/request,/turf/open/floor/mineral/titanium/blue,/area/shuttle/transport) +"bGs" = (/obj/structure/chair,/turf/open/floor/mineral/titanium/blue,/area/shuttle/transport) +"bGt" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/turf/open/floor/plating,/area/hallway/secondary/entry{name = "Arrivals"}) +"bGu" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/plasteel/arrival{dir = 4},/area/hallway/secondary/entry{name = "Arrivals"}) +"bGv" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bGw" = (/obj/item/weapon/storage/toolbox/emergency,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bGx" = (/obj/item/weapon/tank/internals/air,/obj/item/weapon/tank/internals/air,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/machinery/light/small{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bGy" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/wood,/area/security/vacantoffice) +"bGz" = (/obj/structure/table/wood,/turf/open/floor/wood,/area/security/vacantoffice) +"bGA" = (/obj/structure/chair/office/dark{dir = 8},/turf/open/floor/wood,/area/security/vacantoffice) +"bGB" = (/obj/structure/table/wood,/obj/item/weapon/folder/red,/obj/item/weapon/pen/red,/obj/machinery/newscaster{pixel_x = 30; pixel_y = 2},/turf/open/floor/wood,/area/security/vacantoffice) +"bGC" = (/obj/machinery/light/small,/turf/open/floor/plating,/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) +"bGD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/floorgrime,/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) +"bGE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/obj/machinery/power/apc{cell_type = 5000; dir = 2; name = "Auxiliary Restrooms APC"; pixel_y = -24},/obj/structure/cable/yellow,/turf/open/floor/plasteel/floorgrime,/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) +"bGF" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel/floorgrime,/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) +"bGG" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green{pixel_x = 1; pixel_y = 5},/obj/machinery/newscaster{pixel_x = -32; pixel_y = 0},/turf/open/floor/wood,/area/library) +"bGH" = (/obj/structure/table/wood,/obj/item/weapon/folder,/obj/item/weapon/pen/blue{pixel_x = 5; pixel_y = 5},/turf/open/floor/wood,/area/library) +"bGI" = (/turf/open/floor/carpet,/area/library) +"bGJ" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Library"},/turf/open/floor/wood,/area/library) +"bGK" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/central) +"bGL" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/junction{dir = 1; icon_state = "pipe-j1"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bGM" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/hallway/primary/central) +"bGN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/glass{name = "Command Hallway"},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bGO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bGP" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bGQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/landmark{name = "lightsout"},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bGR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bGS" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bGT" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bGU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bGV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 21},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bGW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bGX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bGY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bGZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bHa" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bHb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bHc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/ai_status_display{pixel_y = 32},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bHd" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/power/apc{cell_type = 10000; dir = 1; name = "Command Hallway APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bHe" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bHf" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bHg" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bHh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/landmark{name = "lightsout"},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bHi" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 21},/obj/machinery/camera{c_tag = "Command Hallway - Starboard"; dir = 2; network = list("SS13")},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bHj" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bHk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/airalarm{pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bHl" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bHm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Command Hallway"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bHn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/central) +"bHo" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bHp" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/hallway/primary/central) +"bHq" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Bar"},/turf/open/floor/plasteel,/area/crew_quarters/bar) +"bHr" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bHs" = (/obj/effect/landmark{name = "lightsout"},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bHt" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bHu" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/centcom{name = "Club"; opacity = 1},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bHv" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/wood,/area/crew_quarters/bar) +"bHw" = (/obj/structure/chair/stool{pixel_y = 8},/obj/effect/landmark/start{name = "Assistant"},/turf/open/floor/wood,/area/crew_quarters/bar) +"bHx" = (/obj/structure/disposalpipe/segment,/obj/structure/table/wood/poker,/obj/item/clothing/mask/cigarette/cigar,/turf/open/floor/wood,/area/crew_quarters/bar) +"bHy" = (/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/carpet,/area/crew_quarters/theatre) +"bHz" = (/obj/structure/chair/wood/wings{dir = 8},/turf/open/floor/carpet,/area/crew_quarters/theatre) +"bHA" = (/obj/structure/table/wood,/obj/item/weapon/lipstick{pixel_y = 5},/obj/machinery/camera{c_tag = "Theatre - Stage"; dir = 8; network = list("SS13")},/obj/machinery/light/small{dir = 4},/obj/item/device/instrument/guitar,/obj/structure/sign/poster{pixel_x = 32; pixel_y = 0},/turf/open/floor/wood,/area/crew_quarters/theatre) +"bHB" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/scrubber,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plasteel/escape{dir = 8},/area/hallway/primary/starboard) +"bHC" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bHD" = (/obj/structure/tank_dispenser{pixel_x = -1},/turf/open/floor/plasteel/black/corner{dir = 1},/area/atmos) +"bHE" = (/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/atmos) +"bHF" = (/turf/open/floor/plasteel/caution{dir = 4},/area/atmos) +"bHG" = (/obj/machinery/door/airlock/glass_atmos{name = "Atmospherics Monitoring"; req_access_txt = "24"},/turf/open/floor/plasteel,/area/atmos) +"bHH" = (/turf/open/floor/plasteel/caution{dir = 8},/area/atmos) +"bHI" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/atmos) +"bHJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/atmos) +"bHK" = (/obj/structure/closet/crate,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/atmos) +"bHL" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{dir = 8},/turf/open/floor/plasteel,/area/atmos) +"bHM" = (/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Mix to Filter"; on = 1},/turf/open/floor/plasteel,/area/atmos) +"bHN" = (/obj/machinery/atmospherics/pipe/manifold/yellow/visible{color = "purple"; dir = 4},/turf/open/floor/plasteel,/area/atmos) +"bHO" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 6},/obj/effect/landmark/start{name = "Atmospheric Technician"},/turf/open/floor/plasteel,/area/atmos) +"bHP" = (/obj/machinery/atmospherics/pipe/manifold/green/visible{dir = 1},/obj/machinery/meter,/turf/open/floor/plasteel,/area/atmos) +"bHQ" = (/obj/machinery/atmospherics/pipe/manifold/green/visible{dir = 4},/turf/open/floor/plasteel,/area/atmos) +"bHR" = (/obj/machinery/computer/atmos_control/tank{frequency = 1441; input_tag = "mix_in"; name = "Gas Mix Tank Control"; output_tag = "mix_in"; sensors = list("mix_sensor" = "Tank")},/obj/machinery/atmospherics/pipe/simple/cyan/visible,/turf/open/floor/plasteel/green/side{dir = 4},/area/atmos) +"bHS" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "mix_sensor"},/turf/open/floor/engine/vacuum,/area/atmos) +"bHT" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/engine/vacuum,/area/atmos) +"bHU" = (/obj/machinery/telecomms/processor/preset_one,/obj/machinery/camera{c_tag = "Telecoms - Server Room - Fore-Port"; dir = 2; network = list("SS13","tcomm")},/turf/open/floor/plasteel/circuit/gcircuit{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bHV" = (/obj/structure/showcase{density = 0; desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; dir = 2; icon = 'icons/mob/robots.dmi'; icon_state = "robot_old"; name = "Cyborg Statue"; pixel_x = 0; pixel_y = 20},/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bHW" = (/obj/machinery/telecomms/receiver/preset_left,/turf/open/floor/plasteel/circuit/gcircuit{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bHX" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/tcommsat/server) +"bHY" = (/obj/machinery/telecomms/receiver/preset_right,/turf/open/floor/plasteel/circuit/gcircuit{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bHZ" = (/obj/machinery/telecomms/processor/preset_three,/obj/machinery/camera{c_tag = "Telecoms - Server Room - Fore-Starboard"; dir = 2; network = list("SS13","tcomm")},/turf/open/floor/plasteel/circuit/gcircuit{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bIa" = (/obj/machinery/door/airlock/shuttle,/turf/open/floor/mineral/titanium/blue,/area/shuttle/transport) +"bIb" = (/turf/open/floor/mineral/titanium/blue,/area/shuttle/transport) +"bIc" = (/obj/machinery/door/airlock/shuttle,/obj/docking_port/mobile{dir = 8; dwidth = 2; height = 12; id = "ferry"; name = "ferry shuttle"; port_angle = 0; preferred_direction = 4; roundstart_move = "ferry_away"; width = 5},/obj/docking_port/stationary{dir = 8; dwidth = 2; height = 12; id = "ferry_home"; name = "port bay 2"; turf_type = /turf/open/space; width = 5},/turf/open/floor/mineral/titanium/blue,/area/shuttle/transport) +"bId" = (/obj/machinery/door/airlock/external{name = "Transport Airlock"},/turf/open/floor/plating,/area/hallway/secondary/entry{name = "Arrivals"}) +"bIe" = (/turf/open/floor/plating/warnplate{dir = 8},/area/hallway/secondary/entry{name = "Arrivals"}) +"bIf" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/turf/open/floor/plasteel/arrival{dir = 4},/area/hallway/secondary/entry{name = "Arrivals"}) +"bIg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/weapon/storage/box/lights/mixed,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bIh" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 1},/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bIi" = (/obj/structure/light_construct{dir = 8},/turf/open/floor/wood,/area/security/vacantoffice) +"bIj" = (/obj/effect/landmark{name = "lightsout"},/turf/open/floor/wood,/area/security/vacantoffice) +"bIk" = (/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 6},/obj/structure/table/wood,/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/open/floor/wood,/area/security/vacantoffice) +"bIl" = (/obj/machinery/door/airlock{id_tag = "AuxShower"; name = "Shower"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/floorgrime,/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) +"bIm" = (/obj/machinery/door/airlock{id_tag = "AuxToilet2"; name = "Unit 2"},/turf/open/floor/plasteel,/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) +"bIn" = (/obj/structure/toilet{pixel_y = 8},/obj/machinery/light/small{dir = 4},/obj/machinery/button/door{id = "AuxToilet2"; name = "Lock Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/newscaster{pixel_x = 0; pixel_y = -32},/turf/open/floor/plasteel,/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) +"bIo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bIp" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bIq" = (/obj/structure/table/wood,/obj/machinery/computer/security/telescreen/entertainment{pixel_x = -32; pixel_y = 0},/obj/machinery/camera/autoname{dir = 4; network = list("SS13")},/turf/open/floor/wood,/area/library) +"bIr" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/carpet,/area/library) +"bIs" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/carpet,/area/library) +"bIt" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/carpet,/area/library) +"bIu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/carpet,/area/library) +"bIv" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=11.1-Command-Starboard"; location = "11-Command-Port"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bIw" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/hallway/primary/central) +"bIx" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/firedoor,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/glass{name = "Command Hallway"},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bIy" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bIz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bIA" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bIB" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light,/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bIC" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/obj/machinery/camera{c_tag = "Command Hallway - Port"; dir = 1; network = list("SS13")},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bID" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bIE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bIF" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bIG" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/obj/machinery/newscaster{pixel_y = -29},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bIH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bII" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bIJ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bIK" = (/obj/machinery/holopad,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bIL" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bIM" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bIN" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light,/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bIO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bIP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/newscaster{pixel_y = -29},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bIQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bIR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bIS" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bIT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bIU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bIV" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bIW" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bIX" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bIY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bIZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Command Hallway"},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bJa" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/central) +"bJb" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=7.5-Starboard-Aft-Corner"; location = "7-Command-Starboard"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bJc" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/hallway/primary/central) +"bJd" = (/obj/machinery/door/firedoor,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/airlock/glass{name = "Bar"},/turf/open/floor/plasteel,/area/crew_quarters/bar) +"bJe" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bJf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bJg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bJh" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bJi" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bJj" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/centcom{name = "Club"; opacity = 1},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bJk" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/wood,/area/crew_quarters/bar) +"bJl" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/wood,/area/crew_quarters/bar) +"bJm" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/table/wood/poker,/obj/item/weapon/storage/pill_bottle/dice,/turf/open/floor/wood,/area/crew_quarters/bar) +"bJn" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/turf/open/floor/wood,/area/crew_quarters/bar) +"bJo" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/item/toy/cards/deck{pixel_y = 4},/obj/structure/table/wood/poker,/turf/open/floor/wood,/area/crew_quarters/bar) +"bJp" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/carpet,/area/crew_quarters/theatre) +"bJq" = (/obj/structure/chair/wood/wings{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/landmark/start{name = "Clown"},/turf/open/floor/carpet,/area/crew_quarters/theatre) +"bJr" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/carpet,/area/crew_quarters/theatre) +"bJs" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/carpet,/area/crew_quarters/theatre) +"bJt" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/wood,/area/crew_quarters/theatre) +"bJu" = (/obj/machinery/door/airlock{name = "Theatre Stage"; req_access_txt = "0"; req_one_access_txt = "12;46"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/crew_quarters/theatre) +"bJv" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/starboard) +"bJw" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/scrubber,/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/window/reinforced,/turf/open/floor/plasteel/escape{dir = 8},/area/hallway/primary/starboard) +"bJx" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bJy" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/caution{dir = 4},/area/hallway/primary/starboard) +"bJz" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/plasticflaps{opacity = 1},/obj/machinery/navbeacon{codes_txt = "delivery;dir=4"; dir = 4; freq = 1400; location = "Atmospherics"},/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/turf/open/floor/plasteel/delivery{name = "floor"},/area/atmos) +"bJA" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/loadingarea{dir = 4},/area/atmos) +"bJB" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/atmos) +"bJC" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/atmos) +"bJD" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/turf/open/floor/plasteel/black/corner{dir = 2},/area/atmos) +"bJE" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/machinery/button/door{id = "atmos"; name = "Atmospherics Lockdown"; pixel_x = 26; pixel_y = -26; req_access_txt = "24"},/turf/open/floor/plasteel/caution{dir = 6},/area/atmos) +"bJF" = (/obj/machinery/holopad,/turf/open/floor/plasteel/caution{dir = 8},/area/atmos) +"bJG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 6},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/atmos) +"bJH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/atmos) +"bJI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/atmos) +"bJJ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/obj/machinery/door/airlock/glass_atmos{name = "Distribution Loop"; req_access_txt = "24"},/turf/open/floor/plasteel,/area/atmos) +"bJK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 9},/turf/open/floor/plasteel,/area/atmos) +"bJL" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{color = "purple"; dir = 6},/turf/open/floor/plasteel,/area/atmos) +"bJM" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{color = "purple"; dir = 9},/turf/open/floor/plasteel,/area/atmos) +"bJN" = (/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "Pure to Mix"; on = 0},/turf/open/floor/plasteel,/area/atmos) +"bJO" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 5; initialize_directions = 12},/turf/open/floor/plasteel,/area/atmos) +"bJP" = (/obj/machinery/atmospherics/pipe/simple/green/visible,/obj/machinery/atmospherics/components/binary/pump{dir = 4; name = "Unfiltered & Air to Mix"; on = 1},/turf/open/floor/plasteel,/area/atmos) +"bJQ" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/cyan/visible,/turf/open/floor/plasteel/green/side{dir = 6},/area/atmos) +"bJR" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/turf/open/floor/plating,/area/atmos) +"bJS" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/turf/open/space,/area/space) +"bJT" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/obj/structure/grille,/turf/closed/wall/r_wall,/area/atmos) +"bJU" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 8; frequency = 1441; id = "mix_in"; pixel_y = 1},/turf/open/floor/engine/vacuum,/area/atmos) +"bJV" = (/obj/machinery/camera{c_tag = "Atmospherics Tank - Mix"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/turf/open/floor/engine/vacuum,/area/atmos) +"bJW" = (/obj/machinery/telecomms/bus/preset_one,/turf/open/floor/plasteel/circuit/gcircuit{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bJX" = (/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bJY" = (/turf/open/floor/plasteel/circuit/gcircuit{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bJZ" = (/obj/machinery/telecomms/bus/preset_three,/turf/open/floor/plasteel/circuit/gcircuit{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bKa" = (/obj/structure/closet/crate,/turf/open/floor/mineral/titanium/blue,/area/shuttle/transport) +"bKb" = (/obj/structure/chair{dir = 1},/turf/open/floor/mineral/titanium/blue,/area/shuttle/transport) +"bKc" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/sign/poster{pixel_x = 32; pixel_y = 0},/turf/open/floor/plasteel/arrival{dir = 4},/area/hallway/secondary/entry{name = "Arrivals"}) +"bKd" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;27;37"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bKe" = (/obj/structure/table/wood,/obj/item/weapon/folder,/obj/structure/sign/poster{pixel_x = -32; pixel_y = 0},/turf/open/floor/wood,/area/security/vacantoffice) +"bKf" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/wood,/area/security/vacantoffice) +"bKg" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/wood,/area/security/vacantoffice) +"bKh" = (/obj/machinery/shower{icon_state = "shower"; dir = 4},/obj/machinery/button/door{id = "AuxShower"; name = "Lock Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4},/obj/item/weapon/soap/nanotrasen,/turf/open/floor/plasteel/floorgrime,/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) +"bKi" = (/obj/machinery/shower{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/floorgrime,/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) +"bKj" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/open/floor/plating,/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) +"bKk" = (/obj/machinery/door/airlock/maintenance{name = "Library Maintenance"; req_access_txt = "0"; req_one_access_txt = "12;37"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bKl" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/carpet,/area/library) +"bKm" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/wood,/area/library) +"bKn" = (/turf/open/floor/wood{icon_state = "wood-broken7"},/area/library) +"bKo" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/wood,/area/library) +"bKp" = (/obj/machinery/holopad,/turf/open/floor/wood,/area/library) +"bKq" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-22"},/turf/open/floor/wood,/area/library) +"bKr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/hallway/primary/central) +"bKs" = (/obj/structure/sign/directions/engineering{desc = "A direction sign, pointing out which way the research department is."; icon_state = "direction_sci"; name = "research department"; pixel_y = -8},/obj/structure/sign/directions/engineering{desc = "A direction sign, pointing out which way the medical department is."; icon_state = "direction_med"; name = "medical department"; pixel_y = 8},/obj/structure/sign/directions/engineering{desc = "A direction sign, pointing out which way the escape arm is."; icon_state = "direction_evac"; name = "escape arm"},/turf/closed/wall/r_wall,/area/ai_monitored/storage/eva{name = "E.V.A. Storage"}) +"bKt" = (/turf/closed/wall/r_wall,/area/ai_monitored/storage/eva{name = "E.V.A. Storage"}) +"bKu" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/command{name = "E.V.A. Storage"; req_access_txt = "18"},/turf/open/floor/plasteel/delivery,/area/ai_monitored/storage/eva{name = "E.V.A. Storage"}) +"bKv" = (/obj/structure/sign/securearea,/turf/closed/wall/r_wall,/area/ai_monitored/storage/eva{name = "E.V.A. Storage"}) +"bKw" = (/obj/machinery/door/firedoor,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/door/airlock/command{name = "E.V.A. Storage"; req_access_txt = "18"},/turf/open/floor/plasteel/delivery,/area/ai_monitored/storage/eva{name = "E.V.A. Storage"}) +"bKx" = (/turf/closed/wall/r_wall,/area/teleporter{name = "\improper Teleporter Room"}) +"bKy" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{name = "Teleport Access"; req_access_txt = "0"; req_one_access_txt = "17;19"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/delivery,/area/teleporter{name = "\improper Teleporter Room"}) +"bKz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/sign/securearea,/turf/closed/wall/r_wall,/area/teleporter{name = "\improper Teleporter Room"}) +"bKA" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow,/turf/open/floor/plating,/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bKB" = (/obj/structure/chair{dir = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bKC" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel,/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bKD" = (/turf/open/floor/plasteel,/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bKE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bKF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel,/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bKG" = (/obj/structure/chair{dir = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/camera{c_tag = "Command Hallway - Central"; dir = 8; network = list("SS13")},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bKH" = (/turf/closed/wall/r_wall,/area/gateway) +"bKI" = (/obj/structure/sign/securearea,/turf/closed/wall/r_wall,/area/gateway) +"bKJ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{name = "Gateway Atrium"; req_access_txt = "62"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel/delivery,/area/gateway) +"bKK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/gateway) +"bKL" = (/obj/machinery/vending/cola,/turf/open/floor/plasteel/vault,/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bKM" = (/obj/machinery/vending/cigarette,/obj/machinery/newscaster{pixel_x = 0; pixel_y = -29},/turf/open/floor/plasteel/vault,/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bKN" = (/obj/machinery/vending/coffee,/turf/open/floor/plasteel/vault,/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bKO" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;17"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/maintcentral{name = "Central Maintenance"}) +"bKP" = (/obj/structure/sign/directions/engineering{desc = "A direction sign, pointing out which way the escape arm is."; icon_state = "direction_evac"; name = "escape arm"},/obj/structure/sign/directions/engineering{desc = "A direction sign, pointing out which way the medical department is."; icon_state = "direction_med"; name = "medical department"; pixel_y = 8},/obj/structure/sign/directions/engineering{desc = "A direction sign, pointing out which way the research department is."; icon_state = "direction_sci"; name = "research department"; pixel_y = -8},/turf/closed/wall,/area/maintenance/maintcentral{name = "Central Maintenance"}) +"bKQ" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/central) +"bKR" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bKS" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/hallway/primary/central) +"bKT" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/crew_quarters/bar) +"bKU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bKV" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bKW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bKX" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bKY" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/wood,/area/crew_quarters/bar) +"bKZ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/wood,/area/crew_quarters/bar) +"bLa" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/open/floor/wood,/area/crew_quarters/bar) +"bLb" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/carpet,/area/crew_quarters/theatre) +"bLc" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/carpet,/area/crew_quarters/theatre) +"bLd" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/carpet,/area/crew_quarters/theatre) +"bLe" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/carpet,/area/crew_quarters/theatre) +"bLf" = (/obj/item/weapon/soap/nanotrasen,/obj/machinery/light/small{dir = 4},/obj/structure/table/wood,/obj/structure/sign/poster{pixel_x = 32; pixel_y = 0},/turf/open/floor/wood,/area/crew_quarters/theatre) +"bLg" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plating,/area/maintenance/starboard) +"bLh" = (/obj/item/weapon/crowbar,/obj/item/weapon/wrench,/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/starboard) +"bLi" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=13.3-Engineering-Central"; location = "13.2-Tcommstore"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bLj" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel/caution{dir = 4},/area/hallway/primary/starboard) +"bLk" = (/obj/machinery/portable_atmospherics/canister/air,/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/bot,/area/atmos) +"bLl" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/bot,/area/atmos) +"bLm" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/bot,/area/atmos) +"bLn" = (/obj/machinery/portable_atmospherics/canister/nitrous_oxide,/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/open/floor/plasteel/bot,/area/atmos) +"bLo" = (/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/caution{dir = 8},/area/atmos) +"bLp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/atmos) +"bLq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/atmos) +"bLr" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 6; initialize_directions = 6},/turf/open/floor/plating,/area/atmos) +"bLs" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/yellow/visible{color = "purple"},/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/turf/open/floor/plating,/area/atmos) +"bLt" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/turf/open/floor/plating,/area/atmos) +"bLu" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/yellow/visible,/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/turf/open/floor/plating,/area/atmos) +"bLv" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/green/visible,/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/turf/open/floor/plating,/area/atmos) +"bLw" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/manifold/cyan/visible{dir = 4; initialize_directions = 11},/turf/open/floor/plating,/area/atmos) +"bLx" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 4},/turf/open/space,/area/space) +"bLy" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"bLz" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bLA" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bLB" = (/obj/machinery/holopad,/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bLC" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bLD" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bLE" = (/obj/structure/closet/firecloset,/turf/open/floor/plasteel/bot,/area/hallway/secondary/entry{name = "Arrivals"}) +"bLF" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/open/floor/plasteel/arrival{dir = 4},/area/hallway/secondary/entry{name = "Arrivals"}) +"bLG" = (/obj/structure/closet/emcloset,/turf/open/floor/plating{icon_state = "platingdmg1"},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bLH" = (/obj/item/weapon/book/manual/wiki/security_space_law{pixel_x = -3; pixel_y = 5},/obj/structure/table/wood,/turf/open/floor/wood,/area/security/vacantoffice) +"bLI" = (/obj/structure/chair/comfy/black{dir = 4},/turf/open/floor/carpet,/area/security/vacantoffice) +"bLJ" = (/obj/item/weapon/folder/white,/obj/structure/table/wood,/turf/open/floor/carpet,/area/security/vacantoffice) +"bLK" = (/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 6},/obj/structure/table/wood,/turf/open/floor/carpet,/area/security/vacantoffice) +"bLL" = (/obj/structure/sign/poster{pixel_x = 32; pixel_y = 0},/turf/open/floor/wood,/area/security/vacantoffice) +"bLM" = (/obj/machinery/shower{icon_state = "shower"; dir = 4},/obj/machinery/light/small,/obj/effect/landmark{name = "revenantspawn"},/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/blood/gibs/old,/turf/open/floor/plasteel/floorgrime,/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) +"bLN" = (/obj/machinery/shower{dir = 8},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plating,/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) +"bLO" = (/obj/machinery/light/small,/obj/structure/sign/poster{pixel_y = -32},/turf/open/floor/plating,/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) +"bLP" = (/obj/machinery/door/airlock{id_tag = "AuxToilet3"; name = "Unit 3"},/turf/open/floor/plating,/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) +"bLQ" = (/obj/structure/toilet{pixel_y = 8},/obj/machinery/light/small{dir = 4},/obj/machinery/button/door{id = "AuxToilet3"; name = "Lock Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/newscaster{pixel_x = 0; pixel_y = -32},/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plating,/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) +"bLR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bLS" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bLT" = (/obj/structure/bookcase/random/nonfiction,/turf/open/floor/wood,/area/library) +"bLU" = (/obj/structure/bookcase/random/fiction,/turf/open/floor/wood,/area/library) +"bLV" = (/obj/structure/table/wood,/obj/item/device/paicard,/turf/open/floor/wood,/area/library) +"bLW" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/turf/open/floor/wood,/area/library) +"bLX" = (/obj/structure/table/wood,/obj/item/device/camera_film{pixel_x = -3; pixel_y = 5},/obj/item/device/camera_film{pixel_y = 9},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/turf/open/floor/wood,/area/library) +"bLY" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -30},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/central) +"bLZ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bMa" = (/obj/machinery/suit_storage_unit/standard_unit,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/storage/eva{name = "E.V.A. Storage"}) +"bMb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/warning{dir = 9},/area/ai_monitored/storage/eva{name = "E.V.A. Storage"}) +"bMc" = (/turf/open/floor/plasteel/warning{dir = 1},/area/ai_monitored/storage/eva{name = "E.V.A. Storage"}) +"bMd" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/warning{dir = 5},/area/ai_monitored/storage/eva{name = "E.V.A. Storage"}) +"bMe" = (/obj/machinery/suit_storage_unit/standard_unit,/obj/machinery/light_switch{pixel_x = -8; pixel_y = 30},/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/storage/eva{name = "E.V.A. Storage"}) +"bMf" = (/turf/closed/wall,/area/ai_monitored/storage/eva{name = "E.V.A. Storage"}) +"bMg" = (/obj/structure/table,/obj/item/weapon/hand_tele,/obj/item/device/radio/beacon,/obj/machinery/airalarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/open/floor/plasteel/vault{dir = 4},/area/teleporter{name = "\improper Teleporter Room"}) +"bMh" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/vault{dir = 4},/area/teleporter{name = "\improper Teleporter Room"}) +"bMi" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/vault{dir = 8},/area/teleporter{name = "\improper Teleporter Room"}) +"bMj" = (/obj/structure/closet/crate{icon_state = "crate"; opened = 0},/obj/item/stack/cable_coil,/obj/item/weapon/crowbar,/obj/item/weapon/screwdriver{pixel_y = 16},/obj/machinery/power/apc{dir = 4; name = "Teleporter APC"; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel/vault{dir = 1},/area/teleporter{name = "\improper Teleporter Room"}) +"bMk" = (/obj/structure/chair{dir = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bMl" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bMm" = (/obj/structure/chair{dir = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bMn" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bMo" = (/obj/structure/closet/secure_closet/exile,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/open/floor/plasteel/bot{dir = 1},/area/gateway) +"bMp" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel/warning{dir = 9},/area/gateway) +"bMq" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/warning{dir = 5},/area/gateway) +"bMr" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/item/stack/sheet/rglass{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/rods{amount = 50},/obj/item/weapon/storage/toolbox/emergency,/obj/item/device/flashlight,/obj/machinery/power/apc{cell_type = 5000; dir = 4; name = "Gateway APC"; pixel_x = 28; pixel_y = 0},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel/bot{dir = 1},/area/gateway) +"bMs" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/maintcentral{name = "Central Maintenance"}) +"bMt" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bMu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/hallway/primary/central) +"bMv" = (/obj/structure/table,/obj/item/clothing/head/hardhat/cakehat,/obj/machinery/newscaster{pixel_x = -30; pixel_y = 0},/obj/machinery/airalarm{dir = 1; pixel_y = -22},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bMw" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -28},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bMx" = (/obj/machinery/light,/obj/machinery/camera{c_tag = "Kitchen Hatch"; dir = 1; network = list("SS13")},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bMy" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/machinery/light,/turf/open/floor/wood,/area/crew_quarters/bar) +"bMz" = (/obj/machinery/door/window{base_state = "right"; dir = 8; icon_state = "right"; name = "Theatre Stage"; req_access_txt = "0"},/obj/structure/sign/poster{pixel_y = -32},/turf/open/floor/carpet,/area/crew_quarters/theatre) +"bMA" = (/obj/machinery/light_switch{pixel_y = -28},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/machinery/light,/turf/open/floor/carpet,/area/crew_quarters/theatre) +"bMB" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/carpet,/area/crew_quarters/theatre) +"bMC" = (/obj/structure/table/wood,/obj/machinery/light/small,/obj/item/clothing/glasses/regular/hipster{name = "Hipster Glasses"},/turf/open/floor/wood,/area/crew_quarters/theatre) +"bMD" = (/obj/item/device/instrument/violin,/obj/structure/table/wood,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/obj/structure/sign/poster{pixel_y = -32},/turf/open/floor/wood,/area/crew_quarters/theatre) +"bME" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plating{icon_state = "platingdmg2"},/area/maintenance/starboard) +"bMF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/yellow/side{dir = 10},/area/hallway/primary/starboard) +"bMG" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel/yellow/side{dir = 2},/area/hallway/primary/starboard) +"bMH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-22"},/turf/open/floor/plasteel/yellow/side{dir = 6},/area/hallway/primary/starboard) +"bMI" = (/obj/machinery/portable_atmospherics/canister/air,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/bot,/area/atmos) +"bMJ" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/bot,/area/atmos) +"bMK" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/turf/open/floor/plasteel/bot,/area/atmos) +"bML" = (/obj/machinery/portable_atmospherics/canister/nitrous_oxide,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/bot,/area/atmos) +"bMM" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/closed/wall/r_wall,/area/atmos) +"bMN" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/rods{amount = 50},/obj/item/stack/rods{amount = 50},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/bot{dir = 1},/area/atmos) +"bMO" = (/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Air to External Air Ports"; on = 1},/turf/open/floor/plasteel/caution{dir = 8},/area/atmos) +"bMP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/atmos) +"bMQ" = (/obj/machinery/atmospherics/pipe/manifold/cyan/visible{dir = 1; initialize_directions = 11},/turf/open/floor/plasteel,/area/atmos) +"bMR" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/atmos) +"bMS" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/turf/open/floor/plasteel,/area/atmos) +"bMT" = (/obj/machinery/atmospherics/pipe/manifold/cyan/visible{dir = 4; initialize_directions = 11},/obj/machinery/meter,/turf/open/floor/plasteel,/area/atmos) +"bMU" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{color = "purple"},/obj/machinery/meter,/turf/open/floor/plasteel,/area/atmos) +"bMV" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 6},/obj/machinery/meter,/turf/open/floor/plasteel,/area/atmos) +"bMW" = (/obj/machinery/atmospherics/pipe/manifold/yellow/visible,/turf/open/floor/plasteel,/area/atmos) +"bMX" = (/obj/machinery/atmospherics/pipe/manifold/yellow/visible{dir = 1},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel,/area/atmos) +"bMY" = (/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "N2O to Pure"; on = 0},/obj/machinery/atmospherics/pipe/simple/green/visible,/turf/open/floor/plasteel/escape{dir = 5},/area/atmos) +"bMZ" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible,/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/turf/open/floor/plasteel/black,/area/atmos) +"bNa" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/turf/open/floor/plating,/area/atmos) +"bNb" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/turf/open/space,/area/space) +"bNc" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; external_pressure_bound = 0; frequency = 1441; id_tag = "n2o_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/open/floor/engine/n2o,/area/atmos) +"bNd" = (/turf/open/floor/engine/n2o,/area/atmos) +"bNe" = (/obj/structure/lattice,/obj/structure/grille,/obj/structure/lattice,/obj/structure/lattice,/turf/closed/wall/r_wall,/area/space) +"bNf" = (/obj/structure/lattice,/obj/structure/grille,/obj/structure/lattice,/turf/closed/wall/r_wall,/area/space) +"bNg" = (/obj/machinery/message_server,/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bNh" = (/obj/machinery/telecomms/bus/preset_two,/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bNi" = (/obj/machinery/telecomms/processor/preset_two,/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bNj" = (/obj/structure/table/glass,/obj/item/weapon/folder{pixel_y = 2},/obj/item/weapon/folder{pixel_y = 2},/obj/item/weapon/pen,/turf/open/floor/plasteel/circuit/gcircuit{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bNk" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bNl" = (/obj/machinery/telecomms/processor/preset_four,/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bNm" = (/obj/machinery/telecomms/bus/preset_four,/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bNn" = (/obj/machinery/blackbox_recorder,/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bNo" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/arrival{dir = 4},/area/hallway/secondary/entry{name = "Arrivals"}) +"bNp" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;27;37"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bNq" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bNr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bNs" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bNt" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -29},/turf/open/floor/wood,/area/security/vacantoffice) +"bNu" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/wood,/area/security/vacantoffice) +"bNv" = (/obj/item/weapon/folder/blue,/obj/structure/table/wood,/turf/open/floor/carpet,/area/security/vacantoffice) +"bNw" = (/obj/structure/chair/office/dark{dir = 8},/turf/open/floor/carpet,/area/security/vacantoffice) +"bNx" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/wood,/area/security/vacantoffice) +"bNy" = (/obj/machinery/light/small{dir = 8},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/effect/decal/cleanable/cobweb,/turf/open/floor/wood,/area/library) +"bNz" = (/turf/open/floor/wood{icon_state = "wood-broken5"},/area/library) +"bNA" = (/obj/machinery/door/window/northright{base_state = "left"; dir = 8; icon_state = "left"; name = "Library Desk Door"; pixel_x = 3; req_access_txt = "37"},/turf/open/floor/wood,/area/library) +"bNB" = (/obj/effect/landmark/start{name = "Librarian"},/obj/structure/chair/office/dark{dir = 1},/turf/open/floor/wood,/area/library) +"bNC" = (/obj/structure/table/wood,/obj/machinery/computer/libraryconsole/bookmanagement,/obj/structure/noticeboard{desc = "A board for pinning important notices upon. Probably helpful for keeping track of requests."; dir = 8; name = "requests board"; pixel_x = 32; pixel_y = 0},/turf/open/floor/wood,/area/library) +"bND" = (/obj/structure/closet/firecloset,/turf/open/floor/plasteel/black,/area/hallway/primary/central) +"bNE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/hallway/primary/central) +"bNF" = (/obj/machinery/suit_storage_unit/standard_unit,/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/storage/eva{name = "E.V.A. Storage"}) +"bNG" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel/warning{dir = 8},/area/ai_monitored/storage/eva{name = "E.V.A. Storage"}) +"bNH" = (/obj/structure/table,/obj/item/weapon/storage/belt/utility,/obj/item/weapon/storage/belt/utility,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/item/device/multitool,/turf/open/floor/plasteel,/area/ai_monitored/storage/eva{name = "E.V.A. Storage"}) +"bNI" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/warning{dir = 4},/area/ai_monitored/storage/eva{name = "E.V.A. Storage"}) +"bNJ" = (/obj/machinery/suit_storage_unit/standard_unit,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/storage/eva{name = "E.V.A. Storage"}) +"bNK" = (/obj/structure/window/reinforced,/obj/structure/table,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/weapon/hand_labeler,/turf/open/floor/plasteel/vault{dir = 4},/area/teleporter{name = "\improper Teleporter Room"}) +"bNL" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/warning{dir = 9},/area/teleporter{name = "\improper Teleporter Room"}) +"bNM" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/warning{dir = 5},/area/teleporter{name = "\improper Teleporter Room"}) +"bNN" = (/obj/structure/closet/crate{icon_state = "crate"; opened = 0},/obj/item/stack/sheet/rglass{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/weapon/storage/toolbox/emergency,/obj/item/device/flashlight,/obj/structure/window/reinforced,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/vault{dir = 1},/area/teleporter{name = "\improper Teleporter Room"}) +"bNO" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/teleporter{name = "\improper Teleporter Room"}) +"bNP" = (/obj/structure/chair{dir = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bNQ" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bNR" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bNS" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/device/radio/beacon,/turf/open/floor/plasteel/neutral/side{dir = 2},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bNT" = (/obj/structure/chair{dir = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bNU" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/open/floor/plating,/area/gateway) +"bNV" = (/obj/structure/closet/l3closet/scientist,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/bot{dir = 1},/area/gateway) +"bNW" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/warning{dir = 8},/area/gateway) +"bNX" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/warning{dir = 4},/area/gateway) +"bNY" = (/obj/structure/table,/obj/item/weapon/folder/yellow,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/item/weapon/storage/firstaid/regular{pixel_x = 3; pixel_y = -3},/turf/open/floor/plasteel/bot{dir = 1},/area/gateway) +"bNZ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/open/floor/plating,/area/gateway) +"bOa" = (/obj/machinery/gateway{dir = 9},/turf/open/floor/plasteel/vault{dir = 1},/area/gateway) +"bOb" = (/obj/machinery/gateway{dir = 1},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/open/floor/plasteel/vault{dir = 8},/area/gateway) +"bOc" = (/obj/machinery/gateway{dir = 5},/turf/open/floor/plasteel/vault{dir = 4},/area/gateway) +"bOd" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/maintcentral{name = "Central Maintenance"}) +"bOe" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/central) +"bOf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/door/firedoor,/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/hallway/primary/central) +"bOg" = (/obj/structure/sign/poster,/turf/closed/wall,/area/crew_quarters/kitchen) +"bOh" = (/turf/closed/wall,/area/crew_quarters/kitchen) +"bOi" = (/obj/machinery/door/poddoor/shutters/preopen{id = "kitchen"; name = "Serving Hatch"},/obj/structure/table/reinforced,/obj/machinery/door/firedoor,/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/kitchen) +"bOj" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters/preopen{id = "kitchen"; name = "Serving Hatch"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/weapon/reagent_containers/food/snacks/pie/cream,/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/kitchen) +"bOk" = (/obj/machinery/computer/security/telescreen/entertainment,/turf/closed/wall,/area/crew_quarters/kitchen) +"bOl" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters/preopen{id = "kitchen"; name = "Serving Hatch"},/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_x = -3; pixel_y = 0},/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = 3},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/kitchen) +"bOm" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters/preopen{id = "kitchen"; name = "Serving Hatch"},/obj/item/weapon/storage/fancy/donut_box,/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/kitchen) +"bOn" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock{name = "Kitchen"; req_access_txt = "28"},/turf/open/floor/plasteel/cafeteria{dir = 2},/area/crew_quarters/kitchen) +"bOo" = (/obj/machinery/vending/snack,/obj/machinery/newscaster{pixel_y = -29},/turf/open/floor/carpet,/area/crew_quarters/bar) +"bOp" = (/obj/machinery/vending/coffee,/turf/open/floor/carpet,/area/crew_quarters/bar) +"bOq" = (/obj/machinery/camera{c_tag = "Club - Aft"; dir = 1; network = list("SS13")},/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 0; pixel_y = -29},/obj/item/clothing/mask/cigarette/pipe,/obj/structure/table/wood,/turf/open/floor/carpet,/area/crew_quarters/bar) +"bOr" = (/obj/machinery/vending/cigarette{pixel_y = 1},/turf/open/floor/carpet,/area/crew_quarters/bar) +"bOs" = (/obj/machinery/vending/cola,/turf/open/floor/carpet,/area/crew_quarters/bar) +"bOt" = (/obj/machinery/door/airlock{name = "Theatre Backstage"; req_access_txt = "46"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/wood,/area/crew_quarters/theatre) +"bOu" = (/turf/closed/wall/r_wall,/area/maintenance/atmos_control{name = "Telecoms Storage"}) +"bOv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall/r_wall,/area/maintenance/atmos_control{name = "Telecoms Storage"}) +"bOw" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/airlock/engineering{name = "Telecoms Storage"; req_access_txt = "61"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/delivery,/area/maintenance/atmos_control{name = "Telecoms Storage"}) +"bOx" = (/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plasteel/bot,/area/atmos) +"bOy" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/plasteel/bot,/area/atmos) +"bOz" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/turf/open/floor/plasteel/bot,/area/atmos) +"bOA" = (/obj/machinery/portable_atmospherics/canister/nitrous_oxide,/turf/open/floor/plasteel/bot,/area/atmos) +"bOB" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/closed/wall/r_wall,/area/atmos) +"bOC" = (/obj/machinery/atmospherics/components/binary/pump{dir = 4; name = "External Waste Ports to Filter"; on = 1},/obj/machinery/airalarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/open/floor/plasteel/caution{dir = 8},/area/atmos) +"bOD" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/atmos) +"bOE" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 2},/turf/open/floor/plasteel,/area/atmos) +"bOF" = (/obj/item/device/radio/beacon,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel,/area/atmos) +"bOG" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/open/floor/plasteel,/area/atmos) +"bOH" = (/obj/machinery/atmospherics/components/binary/pump{dir = 0; name = "Air to Ports"; on = 0},/turf/open/floor/plasteel,/area/atmos) +"bOI" = (/obj/machinery/atmospherics/components/binary/pump{dir = 0; name = "Mix to Ports"; on = 0},/turf/open/floor/plasteel,/area/atmos) +"bOJ" = (/obj/machinery/atmospherics/components/binary/pump{dir = 0; name = "Pure to Ports"; on = 0},/turf/open/floor/plasteel,/area/atmos) +"bOK" = (/obj/effect/landmark/start{name = "Atmospheric Technician"},/turf/open/floor/plasteel,/area/atmos) +"bOL" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible,/turf/open/floor/plasteel,/area/atmos) +"bOM" = (/obj/machinery/computer/atmos_control/tank{frequency = 1441; input_tag = "n2o_in"; name = "Nitrous Oxide Supply Control"; output_tag = "n2o_out"; sensors = list("n2o_sensor" = "Tank")},/obj/machinery/atmospherics/pipe/simple/green/visible,/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/turf/open/floor/plasteel/escape{dir = 4},/area/atmos) +"bON" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible,/turf/open/floor/plasteel/black,/area/atmos) +"bOO" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "n2o_sensor"},/turf/open/floor/engine/n2o,/area/atmos) +"bOP" = (/obj/machinery/portable_atmospherics/canister/nitrous_oxide{valve_open = 1},/turf/open/floor/engine/n2o,/area/atmos) +"bOQ" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/engine/n2o,/area/atmos) +"bOR" = (/obj/structure/grille,/obj/structure/lattice,/obj/structure/lattice,/turf/closed/wall/r_wall,/area/space) +"bOS" = (/obj/machinery/light/small{dir = 4},/obj/machinery/door/window{dir = 2; name = "MiniSat Walkway Access"; req_access_txt = "0"},/obj/machinery/camera{c_tag = "MiniSat Exterior - Aft Port"; dir = 8; network = list("MiniSat")},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"bOT" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/turf/open/space,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"bOU" = (/obj/machinery/telecomms/server/presets/common,/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bOV" = (/obj/machinery/telecomms/server/presets/engineering,/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bOW" = (/obj/machinery/telecomms/hub/preset,/turf/open/floor/plasteel/circuit/gcircuit{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bOX" = (/obj/machinery/telecomms/server/presets/science,/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bOY" = (/obj/machinery/telecomms/server/presets/medical,/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bOZ" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/light/small{dir = 8},/obj/machinery/door/window{base_state = "right"; dir = 2; icon_state = "right"; name = "MiniSat Walkway Access"; req_access_txt = "0"},/obj/machinery/camera{c_tag = "MiniSat Exterior - Aft Starboard"; dir = 4; network = list("MiniSat")},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"bPa" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-06"; level = 4.1},/turf/open/floor/plasteel/warning{dir = 9},/area/hallway/secondary/entry{name = "Arrivals"}) +"bPb" = (/obj/structure/chair,/obj/effect/landmark/start{name = "Assistant"},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/secondary/entry{name = "Arrivals"}) +"bPc" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/secondary/entry{name = "Arrivals"}) +"bPd" = (/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/secondary/entry{name = "Arrivals"}) +"bPe" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/camera{c_tag = "Arrivals - Aft Arm"; dir = 8; network = list("SS13")},/turf/open/floor/plasteel/arrival{dir = 4},/area/hallway/secondary/entry{name = "Arrivals"}) +"bPf" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating{icon_state = "platingdmg2"},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bPg" = (/obj/machinery/power/apc{dir = 8; name = "Vacant Office APC"; pixel_x = -25},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/open/floor/wood,/area/security/vacantoffice) +"bPh" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/wood,/area/security/vacantoffice) +"bPi" = (/obj/structure/light_construct{dir = 4},/turf/open/floor/wood,/area/security/vacantoffice) +"bPj" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bPk" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/effect/spawner/lootdrop/maintenance{lootcount = 3; name = "3maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bPl" = (/obj/structure/closet,/obj/item/clothing/shoes/jackboots,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bPm" = (/obj/machinery/vending/autodrobe{req_access_txt = "0"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bPn" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/effect/landmark/costume,/obj/effect/landmark/costume,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bPo" = (/obj/effect/decal/cleanable/cobweb/cobweb2,/obj/structure/rack{dir = 8; layer = 2.9},/obj/effect/landmark/costume,/obj/effect/landmark/costume,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bPp" = (/obj/structure/bookcase/random/religion,/turf/open/floor/wood,/area/library) +"bPq" = (/obj/structure/bookcase/random/adult,/turf/open/floor/wood,/area/library) +"bPr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/effect/landmark{name = "lightsout"},/turf/open/floor/carpet,/area/library) +"bPs" = (/obj/structure/bookcase/random/reference,/turf/open/floor/wood,/area/library) +"bPt" = (/obj/structure/table/wood,/obj/item/weapon/pen/red,/obj/item/weapon/pen/blue{pixel_x = 5; pixel_y = 5},/turf/open/floor/wood,/area/library) +"bPu" = (/obj/machinery/light_switch{pixel_x = 28; pixel_y = 0},/turf/open/floor/wood,/area/library) +"bPv" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/black,/area/hallway/primary/central) +"bPw" = (/obj/item/stack/sheet/rglass{amount = 50},/obj/item/stack/sheet/rglass{amount = 50},/obj/item/stack/rods{amount = 50},/obj/item/stack/rods{amount = 50},/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/machinery/power/apc{dir = 8; name = "E.V.A. Storage APC"; pixel_x = -24},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/storage/eva{name = "E.V.A. Storage"}) +"bPx" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/warning{dir = 8},/area/ai_monitored/storage/eva{name = "E.V.A. Storage"}) +"bPy" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva{name = "E.V.A. Storage"}) +"bPz" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/warning{dir = 4},/area/ai_monitored/storage/eva{name = "E.V.A. Storage"}) +"bPA" = (/obj/machinery/door/window/northleft{dir = 8; name = "Magboot Storage"; pixel_x = -1; pixel_y = 0; req_access_txt = "19"},/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots{pixel_x = -4; pixel_y = 3},/obj/item/clothing/shoes/magboots{pixel_x = 0; pixel_y = 0},/obj/item/clothing/shoes/magboots{pixel_x = 4; pixel_y = -3},/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/storage/eva{name = "E.V.A. Storage"}) +"bPB" = (/obj/machinery/teleport/hub,/turf/open/floor/plating,/area/teleporter{name = "\improper Teleporter Room"}) +"bPC" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/open/floor/plasteel/warning{dir = 8},/area/teleporter{name = "\improper Teleporter Room"}) +"bPD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plasteel/warning{dir = 4},/area/teleporter{name = "\improper Teleporter Room"}) +"bPE" = (/obj/machinery/door/window/northleft{dir = 8; name = "Disposals Chute"; pixel_x = -1; pixel_y = 0; req_access_txt = "0"},/obj/machinery/disposal/deliveryChute{dir = 8; name = "disposals chute"; pixel_x = 5},/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/plasteel/vault{dir = 1},/area/teleporter{name = "\improper Teleporter Room"}) +"bPF" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/door/poddoor/shutters/preopen{id = "corporate_privacy"; name = "showroom shutters"},/turf/open/floor/plating,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bPG" = (/turf/closed/wall/r_wall,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bPH" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{name = "Corporate Showroom"; req_access_txt = "19"},/turf/open/floor/wood,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bPI" = (/obj/structure/closet/secure_closet/medical1{pixel_x = 0},/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/open/floor/plasteel/bot{dir = 1},/area/gateway) +"bPJ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/warning{dir = 8},/area/gateway) +"bPK" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/warning{dir = 4},/area/gateway) +"bPL" = (/obj/structure/table,/obj/item/weapon/paper/pamphlet,/turf/open/floor/plasteel/bot{dir = 1},/area/gateway) +"bPM" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow,/turf/open/floor/plating,/area/gateway) +"bPN" = (/obj/machinery/gateway{dir = 8},/turf/open/floor/plasteel/vault{dir = 8},/area/gateway) +"bPO" = (/obj/machinery/gateway/centerstation,/turf/open/floor/plasteel/black,/area/gateway) +"bPP" = (/obj/machinery/gateway{dir = 4},/turf/open/floor/plasteel/vault{dir = 8},/area/gateway) +"bPQ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/weapon/cigbutt,/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plating,/area/maintenance/maintcentral{name = "Central Maintenance"}) +"bPR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = -32; pixel_y = 0},/obj/machinery/camera{c_tag = "Central Primary Hallway - Starboard - Kitchen"; dir = 4; network = list("SS13")},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/central) +"bPS" = (/obj/structure/table,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/obj/machinery/button/door{id = "kitchenwindow"; name = "Window Shutter Control"; pixel_x = -26; pixel_y = 0; req_access_txt = "28"},/turf/open/floor/plasteel/cafeteria{dir = 2},/area/crew_quarters/kitchen) +"bPT" = (/obj/structure/table,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/obj/machinery/button/door{id = "kitchen"; name = "Kitchen Shutters Control"; pixel_x = -4; pixel_y = 26; req_access_txt = "28"},/obj/machinery/light_switch{pixel_x = 6; pixel_y = 26},/turf/open/floor/plasteel/cafeteria{dir = 2},/area/crew_quarters/kitchen) +"bPU" = (/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/kitchen) +"bPV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/kitchen) +"bPW" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/kitchen) +"bPX" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/kitchen) +"bPY" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/sink/kitchen{pixel_y = 28},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/kitchen) +"bPZ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/kitchen) +"bQa" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/light_switch{pixel_x = -26; pixel_y = 0},/turf/open/floor/wood,/area/crew_quarters/theatre) +"bQb" = (/obj/structure/dresser,/obj/machinery/newscaster{pixel_x = 0; pixel_y = 32},/turf/open/floor/wood,/area/crew_quarters/theatre) +"bQc" = (/obj/machinery/vending/autodrobe,/turf/open/floor/wood,/area/crew_quarters/theatre) +"bQd" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/starboard) +"bQe" = (/obj/structure/rack,/obj/item/weapon/circuitboard/machine/telecomms/bus,/obj/item/weapon/circuitboard/machine/telecomms/broadcaster,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/obj/machinery/camera{c_tag = "Telecoms - Storage"; dir = 4; network = list("SS13")},/turf/open/floor/plasteel/black,/area/maintenance/atmos_control{name = "Telecoms Storage"}) +"bQf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/holopad,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/maintenance/atmos_control{name = "Telecoms Storage"}) +"bQg" = (/obj/structure/table,/obj/item/weapon/stock_parts/subspace/analyzer,/obj/item/weapon/stock_parts/subspace/analyzer,/obj/item/weapon/stock_parts/subspace/analyzer,/obj/machinery/light_switch{pixel_x = 0; pixel_y = 26},/turf/open/floor/plasteel/black,/area/maintenance/atmos_control{name = "Telecoms Storage"}) +"bQh" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/pump,/turf/open/floor/plasteel/barber{dir = 8},/area/atmos) +"bQi" = (/obj/machinery/atmospherics/pipe/manifold/cyan/visible{dir = 1; initialize_directions = 11},/turf/open/floor/plasteel/arrival{dir = 8},/area/atmos) +"bQj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/turf/open/floor/plasteel,/area/atmos) +"bQk" = (/obj/structure/reagent_dispensers/watertank,/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 9},/turf/open/floor/plasteel,/area/atmos) +"bQl" = (/obj/structure/reagent_dispensers/fueltank,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -26},/obj/machinery/camera{c_tag = "Atmospherics - Central"; dir = 1; network = list("SS13")},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/atmos) +"bQm" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/suit/hazardvest,/obj/item/clothing/suit/hazardvest,/obj/item/clothing/suit/hazardvest,/obj/item/clothing/suit/hazardvest,/obj/item/clothing/gloves/color/black,/obj/item/clothing/gloves/color/black,/obj/item/clothing/gloves/color/black,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/turf/open/floor/plasteel,/area/atmos) +"bQn" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 8},/turf/open/floor/plasteel,/area/atmos) +"bQo" = (/obj/machinery/atmospherics/pipe/manifold/general/visible,/obj/machinery/meter,/turf/open/floor/plasteel,/area/atmos) +"bQp" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel,/area/atmos) +"bQq" = (/obj/machinery/holopad,/turf/open/floor/plasteel,/area/atmos) +"bQr" = (/obj/machinery/atmospherics/components/trinary/filter{dir = 1; filter_type = "n2o"; on = 1},/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/window/reinforced,/turf/open/floor/plasteel/escape{dir = 6},/area/atmos) +"bQs" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/cyan/visible,/turf/open/floor/plasteel/black,/area/atmos) +"bQt" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 8; frequency = 1441; id = "n2o_in"; pixel_y = 1},/turf/open/floor/engine/n2o,/area/atmos) +"bQu" = (/obj/machinery/camera{c_tag = "Atmospherics Tank - N2O"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/turf/open/floor/engine/n2o,/area/atmos) +"bQv" = (/obj/machinery/airalarm/server{dir = 4; pixel_x = -22; pixel_y = 0},/obj/machinery/light/small{dir = 8},/obj/machinery/camera{c_tag = "Telecoms - Server Room - Aft-Port"; dir = 4; network = list("SS13","tcomm")},/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bQw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bQx" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bQy" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bQz" = (/obj/machinery/power/apc{cell_type = 5000; dir = 4; name = "Telecoms Server Room APC"; pixel_x = 25; pixel_y = 0},/obj/machinery/light/small{dir = 4},/obj/machinery/camera{c_tag = "Telecoms - Server Room - Aft-Starboard"; dir = 8; network = list("SS13","tcomm")},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bQA" = (/obj/machinery/camera{c_tag = "Arrivals - Aft Arm - Far"; dir = 1; network = list("SS13")},/turf/open/floor/plasteel/warning,/area/hallway/secondary/entry{name = "Arrivals"}) +"bQB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/warning,/area/hallway/secondary/entry{name = "Arrivals"}) +"bQC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/warning/corner{dir = 1},/area/hallway/secondary/entry{name = "Arrivals"}) +"bQD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/blue/corner{dir = 2},/area/hallway/secondary/entry{name = "Arrivals"}) +"bQE" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/arrival{dir = 2},/area/hallway/secondary/entry{name = "Arrivals"}) +"bQF" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/sign/map/left{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-left-MS"; pixel_y = -32},/turf/open/floor/plasteel/arrival{dir = 2},/area/hallway/secondary/entry{name = "Arrivals"}) +"bQG" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/sign/map/right{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-right-MS"; pixel_y = -32},/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-03"; layer = 4.1},/turf/open/floor/plasteel/arrival{dir = 6},/area/hallway/secondary/entry{name = "Arrivals"}) +"bQH" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bQI" = (/obj/structure/chair/office/dark,/turf/open/floor/wood,/area/security/vacantoffice) +"bQJ" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/turf/open/floor/wood,/area/security/vacantoffice) +"bQK" = (/obj/structure/mirror{pixel_x = -28},/obj/item/weapon/lipstick/black,/obj/item/weapon/lipstick/jade{pixel_x = 2; pixel_y = 2},/obj/item/weapon/lipstick/purple{pixel_x = -2; pixel_y = -2},/obj/structure/table,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bQL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bQM" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/item/weapon/rack_parts,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bQN" = (/obj/machinery/light/small,/obj/machinery/power/apc{dir = 8; name = "Library APC"; pixel_x = -25},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/effect/decal/cleanable/cobweb,/turf/open/floor/wood,/area/library) +"bQO" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/wood,/area/library) +"bQP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/carpet,/area/library) +"bQQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/carpet,/area/library) +"bQR" = (/obj/machinery/light/small,/obj/machinery/airalarm{dir = 1; pixel_y = -22},/turf/open/floor/wood,/area/library) +"bQS" = (/obj/item/weapon/folder,/obj/item/weapon/folder,/obj/machinery/camera/autoname{dir = 1; network = list("SS13")},/obj/structure/table/wood,/obj/item/device/taperecorder,/obj/item/device/tape,/turf/open/floor/wood,/area/library) +"bQT" = (/obj/machinery/light/small,/obj/machinery/libraryscanner,/turf/open/floor/wood,/area/library) +"bQU" = (/obj/machinery/newscaster{pixel_x = -1; pixel_y = -29},/turf/open/floor/wood,/area/library) +"bQV" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/wood,/area/library) +"bQW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/hallway/primary/central) +"bQX" = (/obj/structure/closet/crate/rcd{pixel_y = 4},/obj/machinery/door/window/northleft{dir = 4; name = "RCD Storage"; pixel_x = 1; pixel_y = 0; req_access_txt = "19"},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/storage/eva{name = "E.V.A. Storage"}) +"bQY" = (/turf/open/floor/plasteel/warning{dir = 8},/area/ai_monitored/storage/eva{name = "E.V.A. Storage"}) +"bQZ" = (/obj/structure/tank_dispenser/oxygen{layer = 2.9; pixel_x = -1; pixel_y = 2},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva{name = "E.V.A. Storage"}) +"bRa" = (/obj/machinery/camera/motion{c_tag = "E.V.A. Storage"; dir = 8},/obj/machinery/requests_console{department = "EVA"; pixel_x = 32; pixel_y = 0},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/warning{dir = 4},/area/ai_monitored/storage/eva{name = "E.V.A. Storage"}) +"bRb" = (/obj/machinery/teleport/station,/obj/machinery/firealarm{dir = 8; pixel_x = -24; pixel_y = 0},/turf/open/floor/plating,/area/teleporter{name = "\improper Teleporter Room"}) +"bRc" = (/obj/machinery/bluespace_beacon,/turf/open/floor/plasteel/warning{dir = 8},/area/teleporter{name = "\improper Teleporter Room"}) +"bRd" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/warning{dir = 4},/area/teleporter{name = "\improper Teleporter Room"}) +"bRe" = (/obj/machinery/camera{c_tag = "Teleporter Room"; dir = 8; network = list("SS13")},/obj/structure/rack,/obj/structure/window/reinforced{dir = 1; layer = 2.9},/obj/item/clothing/suit/hazardvest,/obj/item/clothing/suit/hazardvest,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/turf/open/floor/plasteel/vault{dir = 1},/area/teleporter{name = "\improper Teleporter Room"}) +"bRf" = (/obj/structure/window/reinforced,/obj/structure/showcase{desc = "A stand with an retired construction mech bolted to it. The clamps are rated at 9300PSI. It seems to be falling apart."; icon = 'icons/mecha/mecha.dmi'; icon_state = "firefighter"; name = "construction mech exhibit"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/cobweb,/turf/open/floor/carpet,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bRg" = (/obj/structure/sign/atmosplaque{desc = "A guide to the exhibit, detailing the constructive and destructive applications of modern repair drones, as well as the development of the uncorruptable cyborg servants of tomorrow, available today."; icon_state = "kiddieplaque"; name = "\improper 'Perfect Drone' sign"; pixel_x = 0; pixel_y = 32},/obj/machinery/droneDispenser,/obj/machinery/door/window/southleft,/turf/open/floor/carpet,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bRh" = (/obj/structure/showcase{desc = "A stand with an empty old NanoTrasen Corporation combat mech bolted to it. It is described as the premier unit used to defend corporate interests and employees."; icon = 'icons/mecha/mecha.dmi'; icon_state = "marauder"; name = "combat mech exhibit"},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/carpet,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bRi" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/bookcase{name = "bookcase"},/turf/open/floor/wood,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bRj" = (/obj/structure/table/wood,/obj/item/weapon/phone{desc = "Supposedly a direct line to NanoTrasen Central Command. It's not even plugged in."; pixel_x = -3; pixel_y = 3},/obj/item/weapon/cigbutt/cigarbutt{pixel_x = 5; pixel_y = -1},/obj/machinery/light{dir = 1},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 21},/turf/open/floor/wood,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bRk" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/wood,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bRl" = (/obj/machinery/light_switch{pixel_x = 0; pixel_y = 24},/obj/machinery/light/small{dir = 1},/obj/structure/table/wood,/obj/item/clothing/shoes/laceup,/obj/item/clothing/under/suit_jacket/really_black,/obj/item/clothing/glasses/sunglasses,/obj/machinery/camera{c_tag = "Corporate Showroom"; dir = 2; network = list("SS13")},/turf/open/floor/wood,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bRm" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/window/reinforced,/obj/structure/showcase{desc = "Signs describe how cloning pods like these ensure that every NanoTrasen employee can carry out their contracts in full, even in the unlikely event of their catastrophic death. Hopefully they aren't all made of cardboard, like this one."; icon = 'icons/obj/cloning.dmi'; icon_state = "pod_0"; layer = 4; name = "cloning pod exhibit"; pixel_x = 2; pixel_y = 5},/turf/open/floor/carpet,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bRn" = (/obj/structure/showcase{desc = "A stand with a model of the perfect Nanotrasen Employee bolted to it. Signs indicate it is robustly genetically engineered, as well as being ruthlessly loyal."; name = "'Perfect Man' employee exhibit"},/obj/structure/sign/atmosplaque{desc = "A guide to the exhibit, explaining how recent developments in loyalty implant and cloning technologies by NanoTrasen Corporation have led to the development and the effective immortality of the 'perfect man', the loyal Nanotrasen Employee."; icon_state = "kiddieplaque"; name = "\improper 'Perfect Man' sign"; pixel_x = 0; pixel_y = 32},/obj/structure/window/reinforced,/turf/open/floor/carpet,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bRo" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/window/reinforced,/obj/effect/decal/cleanable/cobweb/cobweb2,/obj/structure/showcase{desc = "A flimsy model of a standard NanoTrasen automated loyalty implant machine. With secure positioning harnesses and a robotic surgical injector, brain damage and other serious medical anomalies are now up to 60% less likely!"; icon = 'icons/obj/machines/implantchair.dmi'; icon_state = "implantchair"; layer = 2.7; name = "NanoTrasen automated loyalty implanter exhibit"; pixel_x = 0; pixel_y = 4},/turf/open/floor/carpet,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bRp" = (/turf/closed/wall,/area/gateway) +"bRq" = (/obj/structure/bed/roller,/obj/machinery/vending/wallmed{pixel_x = -28; pixel_y = 0},/obj/machinery/camera{c_tag = "Gateway - Atrium"; dir = 4; network = list("SS13")},/turf/open/floor/plasteel/bot{dir = 1},/area/gateway) +"bRr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/warning{dir = 4},/area/gateway) +"bRs" = (/obj/structure/tank_dispenser/oxygen{pixel_x = -1; pixel_y = 2},/obj/machinery/light{dir = 4},/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = 29; pixel_y = 0},/turf/open/floor/plasteel/bot{dir = 1},/area/gateway) +"bRt" = (/obj/machinery/gateway{dir = 10},/turf/open/floor/plasteel/vault{dir = 4},/area/gateway) +"bRu" = (/obj/machinery/gateway,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/open/floor/plasteel/vault{dir = 8},/area/gateway) +"bRv" = (/obj/machinery/gateway{dir = 6},/turf/open/floor/plasteel/vault{dir = 1},/area/gateway) +"bRw" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/maintcentral{name = "Central Maintenance"}) +"bRx" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/central) +"bRy" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/hallway/primary/central) +"bRz" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/poddoor/preopen{id = "kitchenwindow"; name = "kitchen shutters"},/turf/open/floor/plating,/area/crew_quarters/kitchen) +"bRA" = (/obj/structure/rack,/obj/item/weapon/book/manual/chef_recipes{pixel_x = 2; pixel_y = 6},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/item/stack/packageWrap,/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/kitchen) +"bRB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/kitchen) +"bRC" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/kitchen) +"bRD" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/kitchen) +"bRE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/kitchen) +"bRF" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/kitchen) +"bRG" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/vending/dinnerware,/turf/open/floor/plasteel/cafeteria{dir = 2},/area/crew_quarters/kitchen) +"bRH" = (/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/structure/closet/secure_closet/freezer/meat,/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) +"bRI" = (/obj/structure/sink/kitchen{desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; name = "old sink"; pixel_y = 28},/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) +"bRJ" = (/obj/machinery/gibber,/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) +"bRK" = (/obj/structure/kitchenspike,/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) +"bRL" = (/obj/machinery/light/small{dir = 8},/obj/item/clothing/mask/pig,/obj/item/weapon/bikehorn,/obj/structure/table/wood,/obj/structure/sign/poster{pixel_x = -32; pixel_y = 0},/turf/open/floor/wood,/area/crew_quarters/theatre) +"bRM" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/wood,/area/crew_quarters/theatre) +"bRN" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/effect/landmark/start{name = "Mime"},/turf/open/floor/wood,/area/crew_quarters/theatre) +"bRO" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/structure/sign/poster{pixel_x = 32; pixel_y = 0},/turf/open/floor/wood,/area/crew_quarters/theatre) +"bRP" = (/obj/structure/table,/obj/item/weapon/stock_parts/subspace/transmitter,/obj/item/weapon/stock_parts/subspace/transmitter,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/machinery/light/small{dir = 8},/obj/machinery/power/apc{dir = 8; name = "Telecoms Storage APC"; pixel_x = -28; pixel_y = 0},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/open/floor/plasteel/black,/area/maintenance/atmos_control{name = "Telecoms Storage"}) +"bRQ" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/black,/area/maintenance/atmos_control{name = "Telecoms Storage"}) +"bRR" = (/obj/structure/table,/obj/item/weapon/stock_parts/subspace/treatment,/obj/item/weapon/stock_parts/subspace/treatment,/obj/item/weapon/stock_parts/subspace/treatment,/obj/machinery/light/small{dir = 4},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel/black,/area/maintenance/atmos_control{name = "Telecoms Storage"}) +"bRS" = (/obj/structure/closet,/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/starboard) +"bRT" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/plating,/area/maintenance/starboard) +"bRU" = (/obj/structure/closet/cardboard,/turf/open/floor/plating,/area/maintenance/starboard) +"bRV" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible,/obj/item/weapon/storage/box/lights/mixed,/turf/open/floor/plating,/area/maintenance/starboard) +"bRW" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 9},/turf/open/floor/plasteel/arrival{dir = 8},/area/atmos) +"bRX" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/atmos) +"bRY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/atmos) +"bRZ" = (/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/machinery/atmospherics/components/binary/pump{dir = 0; name = "Port Mix to West Ports"; on = 0},/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel,/area/atmos) +"bSa" = (/obj/effect/landmark{name = "lightsout"},/turf/open/floor/plasteel,/area/atmos) +"bSb" = (/obj/machinery/atmospherics/components/binary/pump{dir = 0; name = "Port Mix to East Ports"; on = 0},/obj/item/weapon/crowbar,/turf/open/floor/plasteel,/area/atmos) +"bSc" = (/obj/machinery/atmospherics/pipe/simple/green/visible,/obj/machinery/door/window/northleft{dir = 8; icon_state = "left"; name = "Inner Pipe Access"; req_access_txt = "24"},/turf/open/floor/plasteel/black,/area/atmos) +"bSd" = (/obj/machinery/telecomms/broadcaster/preset_left,/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bSe" = (/obj/machinery/telecomms/server/presets/command,/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bSf" = (/obj/machinery/telecomms/server/presets/security,/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bSg" = (/obj/machinery/light/small,/obj/machinery/camera{c_tag = "Telecoms - Server Room - Aft"; dir = 1; network = list("SS13","tcomm")},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/ntnet_relay,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bSh" = (/obj/machinery/telecomms/server/presets/service,/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bSi" = (/obj/machinery/telecomms/server/presets/supply,/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bSj" = (/obj/machinery/telecomms/broadcaster/preset_right,/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bSk" = (/obj/machinery/door/airlock/external{name = "Auxiliary Airlock"},/turf/open/floor/plating,/area/hallway/secondary/entry{name = "Arrivals"}) +"bSl" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;27"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bSm" = (/obj/structure/table/wood,/obj/item/weapon/paper,/obj/structure/sign/poster{pixel_y = -32},/turf/open/floor/wood,/area/security/vacantoffice) +"bSn" = (/obj/structure/table/wood,/obj/item/weapon/folder/white,/turf/open/floor/wood,/area/security/vacantoffice) +"bSo" = (/obj/item/toy/cards/deck,/obj/structure/table/wood,/turf/open/floor/wood,/area/security/vacantoffice) +"bSp" = (/obj/structure/table,/obj/item/clothing/mask/cigarette/pipe,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bSq" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bSr" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/centcom{name = "Quiet Room"; opacity = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/wood,/area/library) +"bSs" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/centcom{name = "Quiet Room"; opacity = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/wood,/area/library) +"bSt" = (/obj/machinery/door/morgue{name = "Private Study"; req_access_txt = "37"},/turf/open/floor/engine/cult,/area/library) +"bSu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/hallway/primary/central) +"bSv" = (/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/structure/table,/obj/item/stack/sheet/plasteel{amount = 10},/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/weapon/crowbar,/obj/item/weapon/wrench,/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/storage/eva{name = "E.V.A. Storage"}) +"bSw" = (/obj/machinery/holopad,/turf/open/floor/plasteel/warning{dir = 8},/area/ai_monitored/storage/eva{name = "E.V.A. Storage"}) +"bSx" = (/turf/open/floor/plasteel,/area/ai_monitored/storage/eva{name = "E.V.A. Storage"}) +"bSy" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/warning{dir = 4},/area/ai_monitored/storage/eva{name = "E.V.A. Storage"}) +"bSz" = (/obj/machinery/door/window/northleft{dir = 8; name = "Jetpack Storage"; pixel_x = -1; pixel_y = 0; req_access_txt = "19"},/obj/structure/window/reinforced,/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/tank/jetpack/carbondioxide{pixel_x = 4; pixel_y = -1},/obj/item/weapon/tank/jetpack/carbondioxide{pixel_x = 0; pixel_y = 0},/obj/item/weapon/tank/jetpack/carbondioxide{pixel_x = -4; pixel_y = 1},/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/storage/eva{name = "E.V.A. Storage"}) +"bSA" = (/obj/machinery/computer/teleporter,/turf/open/floor/plating,/area/teleporter{name = "\improper Teleporter Room"}) +"bSB" = (/turf/open/floor/plasteel/warning{dir = 8},/area/teleporter{name = "\improper Teleporter Room"}) +"bSC" = (/obj/structure/rack,/obj/item/weapon/tank/internals/oxygen,/obj/item/weapon/tank/internals/oxygen,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = 27; pixel_y = 0},/turf/open/floor/plasteel/vault{dir = 1},/area/teleporter{name = "\improper Teleporter Room"}) +"bSD" = (/turf/closed/wall,/area/teleporter{name = "\improper Teleporter Room"}) +"bSE" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 8},/turf/open/floor/wood,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bSF" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/oil,/turf/open/floor/wood,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bSG" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/wood,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bSH" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/wood,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bSI" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/wood,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bSJ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/wood,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bSK" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/wood{icon_state = "wood-broken6"},/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bSL" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/wood,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bSM" = (/obj/machinery/power/apc{cell_type = 5000; dir = 4; name = "Nanotrasen Corporate Showroom APC"; pixel_x = 28; pixel_y = 0},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/item/weapon/cigbutt,/obj/machinery/light/small{dir = 4},/turf/open/floor/wood,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bSN" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/stack/medical/ointment,/obj/item/stack/medical/bruise_pack,/obj/item/weapon/reagent_containers/syringe/charcoal,/obj/item/weapon/reagent_containers/syringe/epinephrine{pixel_x = -1; pixel_y = 2},/turf/open/floor/plasteel/bot{dir = 1},/area/gateway) +"bSO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/warning/corner{dir = 8},/area/gateway) +"bSP" = (/turf/open/floor/plasteel/warning{dir = 5},/area/gateway) +"bSQ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/open/floor/plating,/area/gateway) +"bSR" = (/turf/open/floor/plasteel/vault,/area/gateway) +"bSS" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/vault,/area/gateway) +"bST" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/open/floor/plasteel/vault,/area/gateway) +"bSU" = (/obj/structure/sign/securearea{pixel_x = -32; pixel_y = 0},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating{icon_state = "platingdmg2"},/area/maintenance/maintcentral{name = "Central Maintenance"}) +"bSV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/central) +"bSW" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/door/poddoor/preopen{id = "kitchenwindow"; name = "kitchen shutters"},/turf/open/floor/plating,/area/crew_quarters/kitchen) +"bSX" = (/obj/machinery/food_cart,/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/kitchen) +"bSY" = (/obj/effect/landmark/start{name = "Cook"},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"bSZ" = (/obj/structure/table,/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/kitchen) +"bTa" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/weapon/storage/box/donkpockets,/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/kitchen) +"bTb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/table,/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/kitchen) +"bTc" = (/obj/machinery/holopad,/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/kitchen) +"bTd" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/structure/closet/secure_closet/freezer/fridge,/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/kitchen) +"bTe" = (/obj/structure/closet/secure_closet/freezer/kitchen,/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) +"bTf" = (/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) +"bTg" = (/obj/machinery/chem_master/condimaster{name = "CondiMaster Neo"; pixel_x = -4},/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) +"bTh" = (/mob/living/simple_animal/hostile/retaliate/goat{name = "Pete"},/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) +"bTi" = (/obj/structure/table/wood,/obj/structure/mirror{pixel_x = -28},/obj/item/weapon/lipstick/black,/obj/item/weapon/lipstick/jade{pixel_x = 2; pixel_y = 2},/obj/item/weapon/lipstick/purple{pixel_x = -2; pixel_y = -2},/turf/open/floor/wood,/area/crew_quarters/theatre) +"bTj" = (/obj/structure/chair/wood/wings{dir = 8},/turf/open/floor/wood,/area/crew_quarters/theatre) +"bTk" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/obj/effect/landmark/start{name = "Clown"},/turf/open/floor/wood,/area/crew_quarters/theatre) +"bTl" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/wood,/area/crew_quarters/theatre) +"bTm" = (/obj/machinery/door/airlock{name = "Theatre Backstage"; req_access_txt = "46"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/crew_quarters/theatre) +"bTn" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/sortjunction{dir = 2; icon_state = "pipe-j1s"; sortType = 18},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/starboard) +"bTo" = (/obj/structure/table,/obj/item/weapon/stock_parts/subspace/ansible,/obj/item/weapon/stock_parts/subspace/ansible,/obj/item/weapon/stock_parts/subspace/ansible,/obj/item/weapon/stock_parts/subspace/crystal,/obj/item/weapon/stock_parts/subspace/crystal,/obj/item/weapon/stock_parts/subspace/crystal,/turf/open/floor/plasteel/black,/area/maintenance/atmos_control{name = "Telecoms Storage"}) +"bTp" = (/obj/structure/table,/obj/item/weapon/stock_parts/micro_laser,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/micro_laser/high,/obj/item/weapon/stock_parts/micro_laser/high,/obj/item/weapon/stock_parts/micro_laser/high,/obj/item/weapon/stock_parts/micro_laser/high,/obj/machinery/airalarm{dir = 1; pixel_y = -22},/turf/open/floor/plasteel/black,/area/maintenance/atmos_control{name = "Telecoms Storage"}) +"bTq" = (/obj/structure/table,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/turf/open/floor/plasteel/black,/area/maintenance/atmos_control{name = "Telecoms Storage"}) +"bTr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/starboard) +"bTs" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/plating,/area/maintenance/starboard) +"bTt" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard) +"bTu" = (/obj/machinery/atmospherics/components/trinary/filter{req_access = "0"},/turf/open/floor/plating,/area/maintenance/starboard) +"bTv" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/scrubber,/turf/open/floor/plasteel/red,/area/atmos) +"bTw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/turf/open/floor/plasteel/escape{dir = 8},/area/atmos) +"bTx" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{dir = 4},/turf/open/floor/plasteel,/area/atmos) +"bTy" = (/obj/structure/closet/secure_closet/atmospherics,/turf/open/floor/plasteel/warning{dir = 8},/area/atmos) +"bTz" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/canister,/turf/open/floor/plasteel/bot{dir = 1},/area/atmos) +"bTA" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 4; initialize_directions = 11},/obj/machinery/meter,/turf/open/floor/plasteel,/area/atmos) +"bTB" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 8},/obj/machinery/portable_atmospherics/canister,/turf/open/floor/plasteel/bot{dir = 1},/area/atmos) +"bTC" = (/obj/machinery/atmospherics/pipe/manifold/yellow/visible{dir = 8},/turf/open/floor/plasteel,/area/atmos) +"bTD" = (/obj/machinery/atmospherics/pipe/simple/green/visible,/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Plasma to Pure"; on = 0},/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/turf/open/floor/plasteel/purple,/area/atmos) +"bTE" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; external_pressure_bound = 0; frequency = 1441; id_tag = "tox_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/open/floor/engine/plasma,/area/atmos) +"bTF" = (/turf/open/floor/engine/plasma,/area/atmos) +"bTG" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/engine/plasma,/area/atmos) +"bTH" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plating/warnplate{dir = 2},/area/hallway/secondary/entry{name = "Arrivals"}) +"bTI" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bTJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/item/weapon/storage/box/lights/mixed,/turf/open/floor/plating{icon_state = "platingdmg2"},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bTK" = (/obj/structure/closet/crate,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/item/weapon/poster/legit,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bTL" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bTM" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bTN" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/obj/item/trash/candy,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bTO" = (/obj/machinery/door/airlock/maintenance{name = "Vacant Office Maintenance"; req_access_txt = "32"; req_one_access_txt = "0"},/turf/open/floor/plating,/area/security/vacantoffice) +"bTP" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/mask/horsehead,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bTQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plating/warnplate{icon_plating = "warnplate"},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bTR" = (/obj/structure/rack,/obj/item/weapon/storage/box,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bTS" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating{icon_state = "platingdmg2"},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bTT" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 4},/obj/item/weapon/pen,/obj/effect/decal/cleanable/cobweb,/turf/open/floor/wood,/area/library) +"bTU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/wood,/area/library) +"bTV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/wood,/area/library) +"bTW" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/wood,/area/library) +"bTX" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/wood,/area/library) +"bTY" = (/obj/structure/easel,/obj/item/weapon/canvas/twentythreeXtwentythree,/obj/item/weapon/canvas/twentythreeXtwentythree,/turf/open/floor/wood,/area/library) +"bTZ" = (/obj/structure/table/wood,/obj/item/weapon/dice/d20,/obj/item/weapon/dice,/obj/effect/decal/cleanable/cobweb/cobweb2,/turf/open/floor/wood,/area/library) +"bUa" = (/obj/structure/destructible/cult/tome,/obj/machinery/newscaster{pixel_x = -30; pixel_y = 0},/obj/item/clothing/under/suit_jacket/red,/obj/effect/decal/cleanable/cobweb,/obj/item/weapon/book/codex_gigas,/turf/open/floor/engine/cult,/area/library) +"bUb" = (/obj/structure/chair/comfy/brown,/turf/open/floor/engine/cult,/area/library) +"bUc" = (/obj/effect/landmark{name = "blobstart"},/obj/machinery/light/small{dir = 1},/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 30; pixel_y = 0},/turf/open/floor/engine/cult,/area/library) +"bUd" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/hallway/primary/central) +"bUe" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva{name = "E.V.A. Storage"}) +"bUf" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/open/floor/plasteel/warning{dir = 4},/area/ai_monitored/storage/eva{name = "E.V.A. Storage"}) +"bUg" = (/obj/structure/cable/yellow,/obj/machinery/shieldwallgen,/obj/structure/window/reinforced{dir = 1; pixel_y = 2},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/open/floor/plasteel/vault{dir = 4},/area/teleporter{name = "\improper Teleporter Room"}) +"bUh" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/warning{dir = 8},/area/teleporter{name = "\improper Teleporter Room"}) +"bUi" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel/warning{dir = 4},/area/teleporter{name = "\improper Teleporter Room"}) +"bUj" = (/obj/structure/cable/yellow,/obj/machinery/shieldwallgen,/obj/structure/window/reinforced{dir = 1; pixel_y = 2},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/open/floor/plasteel/vault{dir = 1},/area/teleporter{name = "\improper Teleporter Room"}) +"bUk" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/bodypart/chest/robot{name = "cyborg torso"; pixel_x = -2; pixel_y = 2},/obj/item/bodypart/head/robot{name = "cyborg head"; pixel_x = 3; pixel_y = 2},/obj/structure/table/wood,/obj/machinery/airalarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/open/floor/carpet,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bUl" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/wood,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bUm" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/obj/effect/decal/cleanable/dirt,/turf/open/floor/wood,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bUn" = (/turf/open/floor/wood{icon_state = "wood-broken3"},/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bUo" = (/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/crap{name = "\improper NanoTrasen-brand rechargable AA battery"},/obj/structure/table/wood,/turf/open/floor/carpet,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bUp" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/holopad,/turf/open/floor/carpet,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bUq" = (/obj/structure/table/wood,/obj/item/toy/carpplushie{color = "red"; name = "NanoTrasen wildlife department space carp plushie"},/turf/open/floor/carpet,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bUr" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/open/floor/wood,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bUs" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/wood,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bUt" = (/obj/structure/table/wood,/obj/machinery/button/door{id = "corporate_privacy"; name = "corporate showroom shutters control"; pixel_x = 28; pixel_y = 0; req_access_txt = "19"},/obj/item/weapon/poster/legit,/obj/item/weapon/poster/legit,/obj/item/weapon/poster/legit,/obj/item/weapon/poster/legit,/obj/item/weapon/poster/legit,/obj/item/device/paicard{desc = "A real NanoTrasen success, these personal AIs provide all of the companionship of an AI without any law related red-tape."; name = "NanoTrasen-brand personal AI device exhibit"},/turf/open/floor/carpet,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bUu" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/suit/hazardvest,/obj/item/clothing/suit/hazardvest,/obj/item/clothing/head/hardhat/orange{name = "protective hat"},/obj/item/clothing/head/hardhat/orange{name = "protective hat"},/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/turf/open/floor/plasteel/bot{dir = 1},/area/gateway) +"bUv" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/warning{dir = 10},/area/gateway) +"bUw" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/turf/open/floor/plasteel/warning{dir = 2},/area/gateway) +"bUx" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/warning{dir = 6},/area/gateway) +"bUy" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Gateway Chamber"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel,/area/gateway) +"bUz" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/gateway) +"bUA" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel,/area/gateway) +"bUB" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/gateway) +"bUC" = (/obj/machinery/door/airlock/maintenance{name = "Gateway Maintenance"; req_access_txt = "17"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/gateway) +"bUD" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/maintcentral{name = "Central Maintenance"}) +"bUE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/central) +"bUF" = (/obj/structure/rack,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/kitchen) +"bUG" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/kitchen) +"bUH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/kitchen) +"bUI" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/kitchen) +"bUJ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/kitchen) +"bUK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/kitchen) +"bUL" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/kitchen) +"bUM" = (/obj/machinery/requests_console{department = "Kitchen"; departmentType = 2; pixel_x = 30; pixel_y = 0},/obj/machinery/processor,/turf/open/floor/plasteel/cafeteria{dir = 2},/area/crew_quarters/kitchen) +"bUN" = (/obj/structure/closet/chefcloset,/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) +"bUO" = (/obj/effect/landmark/start{name = "Chef"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) +"bUP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) +"bUQ" = (/obj/machinery/icecream_vat,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) +"bUR" = (/obj/machinery/light/small{dir = 8},/obj/item/clothing/mask/horsehead,/obj/structure/table/wood,/obj/structure/sign/poster{pixel_x = -32; pixel_y = 0},/obj/machinery/airalarm{dir = 1; pixel_y = -22},/turf/open/floor/wood,/area/crew_quarters/theatre) +"bUS" = (/obj/item/clothing/mask/fakemoustache,/obj/item/clothing/mask/cigarette/pipe,/obj/machinery/camera{c_tag = "Theatre - Backstage"; dir = 1; network = list("SS13")},/obj/structure/table/wood,/obj/structure/sign/poster{pixel_y = -32},/turf/open/floor/wood,/area/crew_quarters/theatre) +"bUT" = (/obj/machinery/light/small,/obj/item/toy/prize/honk{pixel_y = 12},/obj/structure/table/wood,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/open/floor/wood,/area/crew_quarters/theatre) +"bUU" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 1},/obj/structure/sign/poster{pixel_y = -32},/turf/open/floor/wood,/area/crew_quarters/theatre) +"bUV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/weapon/wrench,/turf/open/floor/plating,/area/maintenance/starboard) +"bUW" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 1},/obj/machinery/portable_atmospherics/canister,/turf/open/floor/plating,/area/maintenance/starboard) +"bUX" = (/obj/machinery/suit_storage_unit/atmos,/turf/open/floor/plasteel/warning{dir = 8},/area/atmos) +"bUY" = (/obj/structure/sign/nosmoking_2,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/atmos) +"bUZ" = (/obj/machinery/atmospherics/components/trinary/filter{filter_type = -1; on = 1},/turf/open/floor/plasteel,/area/atmos) +"bVa" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 8},/obj/machinery/meter,/turf/open/floor/plasteel,/area/atmos) +"bVb" = (/obj/machinery/computer/atmos_control/tank{frequency = 1441; input_tag = "tox_in"; name = "Plasma Supply Control"; output_tag = "tox_out"; sensors = list("tox_sensor" = "Tank")},/obj/machinery/atmospherics/pipe/simple/green/visible,/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/turf/open/floor/plasteel/purple,/area/atmos) +"bVc" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "tox_sensor"},/turf/open/floor/engine/plasma,/area/atmos) +"bVd" = (/obj/machinery/portable_atmospherics/canister/toxins,/turf/open/floor/engine/plasma,/area/atmos) +"bVe" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/engine/plasma,/area/atmos) +"bVf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"bVg" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bVh" = (/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bVi" = (/obj/item/trash/cheesie,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bVj" = (/obj/machinery/door/airlock/maintenance{name = "Storage Room"; req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bVk" = (/obj/machinery/holopad,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/open/floor/wood,/area/library) +"bVl" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/wood,/area/library) +"bVm" = (/obj/structure/chair/office/dark,/turf/open/floor/wood,/area/library) +"bVn" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/wood{icon_state = "wood-broken"},/area/library) +"bVo" = (/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 30; pixel_y = 0},/obj/machinery/photocopier,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/wood,/area/library) +"bVp" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen/invisible,/turf/open/floor/engine/cult,/area/library) +"bVq" = (/obj/item/device/taperecorder{pixel_y = 0},/obj/item/device/camera,/obj/item/device/radio/intercom{pixel_y = -25},/obj/structure/table/wood,/turf/open/floor/engine/cult,/area/library) +"bVr" = (/obj/structure/bookcase{name = "Forbidden Knowledge"},/turf/open/floor/engine/cult,/area/library) +"bVs" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/hallway/primary/central) +"bVt" = (/turf/open/floor/plasteel/warning{dir = 10},/area/ai_monitored/storage/eva{name = "E.V.A. Storage"}) +"bVu" = (/turf/open/floor/plasteel/warning{dir = 2},/area/ai_monitored/storage/eva{name = "E.V.A. Storage"}) +"bVv" = (/turf/open/floor/plasteel/warning{dir = 6},/area/ai_monitored/storage/eva{name = "E.V.A. Storage"}) +"bVw" = (/obj/structure/cable/yellow,/obj/machinery/shieldwallgen,/turf/open/floor/plasteel/vault{dir = 4},/area/teleporter{name = "\improper Teleporter Room"}) +"bVx" = (/turf/open/floor/plasteel/warning{dir = 10},/area/teleporter{name = "\improper Teleporter Room"}) +"bVy" = (/turf/open/floor/plasteel/warning{dir = 6},/area/teleporter{name = "\improper Teleporter Room"}) +"bVz" = (/obj/structure/cable/yellow,/obj/machinery/shieldwallgen,/turf/open/floor/plasteel/vault{dir = 1},/area/teleporter{name = "\improper Teleporter Room"}) +"bVA" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/table/wood,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/item/weapon/folder/blue,/obj/item/clothing/head/collectable/HoP{name = "novelty HoP hat"},/obj/machinery/light/small{dir = 8},/turf/open/floor/carpet,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bVB" = (/obj/structure/table/wood,/obj/item/weapon/storage/secure/briefcase{desc = "A large briefcase with a digital locking system, and the NanoTrasen logo emblazoned on the sides."; name = "NanoTrasen-brand secure briefcase exhibit"; pixel_y = 2},/turf/open/floor/carpet,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bVC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/wood,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bVD" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/showcase{desc = "The famous NanoTrasen-brand microwave, the multi-purpose cooking appliance every station needs! This one appears to be drawn onto a cardboard box."; dir = 1; icon = 'icons/obj/kitchen.dmi'; icon_state = "mw"; name = "NanoTrasen-brand microwave"; pixel_x = 0; pixel_y = 2},/obj/structure/table/wood,/turf/open/floor/carpet,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bVE" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/item/toy/beach_ball{desc = "The simple beach ball is one of Nanotrasen's most popular products. 'Why do we make beach balls? Because we can! (TM)' - Nanotrasen"; item_state = "beachball"; name = "NanoTrasen-brand beach ball"; pixel_y = 7},/obj/structure/table/wood,/turf/open/floor/carpet,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bVF" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/reagent_dispensers/beerkeg{desc = "One of the more successful achievements of the NanoTrasen Corporate Warfare Division, their nuclear fission explosives are renowned for being cheap to produce and devastatingly effective. Signs explain that though this particular device has been decommissioned, every NanoTrasen station is equipped with an equivalent one, just in case. All Captains carefully guard the disk needed to detonate them - at least, the sign says they do. There seems to be a tap on the back."; icon = 'icons/obj/machines/nuke.dmi'; icon_state = "nuclearbomb_base"; name = "NanoTrasen-brand nuclear fission explosive"; pixel_x = 2; pixel_y = 6},/obj/structure/table/wood,/turf/open/floor/carpet,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bVG" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/item/weapon/storage/box/matches{pixel_x = -2; pixel_y = 3},/obj/item/clothing/mask/cigarette/cigar{name = "premium cigar"; pixel_x = 4; pixel_y = 1},/obj/item/clothing/mask/cigarette/cigar{name = "premium cigar"; pixel_x = -4; pixel_y = 1},/obj/item/clothing/mask/cigarette/cigar/cohiba{name = "cohiba robusto cigar"},/obj/structure/table/wood,/turf/open/floor/carpet,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bVH" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/showcase{desc = "A slightly battered looking TV. Vaious Nanotrasen infomercials play on a loop, accompanied by a jaunty tune."; dir = 1; icon = 'icons/obj/computer.dmi'; icon_state = "television"; name = "NanoTrasen corporate newsfeed"; pixel_x = 2; pixel_y = 3},/obj/structure/table/wood,/turf/open/floor/carpet,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bVI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/wood,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bVJ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/item/weapon/disk/data{pixel_x = 9; pixel_y = -1},/obj/item/weapon/disk/tech_disk{name = "technology disk"; pixel_x = -2; pixel_y = -3},/obj/item/weapon/disk/design_disk{name = "component design disk"; pixel_x = 0; pixel_y = 6},/obj/structure/table/wood,/obj/item/toy/talking/AI{name = "NanoTrasen-brand toy AI"; pixel_y = 6},/turf/open/floor/carpet,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bVK" = (/obj/item/weapon/book/manual/wiki/security_space_law{name = "space law"; pixel_y = 2},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/item/toy/gun{name = "cap gun"},/obj/item/weapon/restraints/handcuffs{name = "handcuffs"},/obj/structure/table/wood,/obj/item/clothing/head/collectable/HoS{name = "novelty HoS hat"},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/light/small{dir = 4},/turf/open/floor/carpet,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bVL" = (/obj/structure/table,/obj/item/weapon/storage/fancy/donut_box,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/plasteel/bot{dir = 1},/area/gateway) +"bVM" = (/obj/structure/table,/obj/machinery/recharger,/turf/open/floor/plasteel/bot{dir = 1},/area/gateway) +"bVN" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/turf/open/floor/plasteel/bot{dir = 1},/area/gateway) +"bVO" = (/obj/item/weapon/storage/belt/utility,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/structure/rack{dir = 8; layer = 2.9},/obj/machinery/button/door{id = "gateshutter"; name = "Gateway Shutter Control"; pixel_x = 0; pixel_y = -26; req_access_txt = "19"},/turf/open/floor/plasteel/bot{dir = 1},/area/gateway) +"bVP" = (/turf/open/floor/plasteel/warning{dir = 2},/area/gateway) +"bVQ" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/camera{c_tag = "Gateway - Access"; dir = 8; network = list("SS13")},/turf/open/floor/plasteel/warning{dir = 2},/area/gateway) +"bVR" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating/warnplate,/area/maintenance/maintcentral{name = "Central Maintenance"}) +"bVS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/central) +"bVT" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/snacks/mint,/obj/machinery/airalarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/machinery/power/apc{dir = 2; name = "Kitchen APC"; pixel_y = -24},/obj/structure/cable/yellow,/turf/open/floor/plasteel/cafeteria{dir = 2},/area/crew_quarters/kitchen) +"bVU" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 5},/obj/item/weapon/reagent_containers/food/condiment/enzyme{layer = 5},/turf/open/floor/plasteel/cafeteria{dir = 2},/area/crew_quarters/kitchen) +"bVV" = (/obj/structure/table,/obj/item/stack/packageWrap,/obj/item/weapon/hand_labeler,/obj/machinery/button/door{id = "kitchenhydro"; name = "Service Shutter Control"; pixel_x = 0; pixel_y = -24; req_access_txt = "28"},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/kitchen) +"bVW" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_x = -3; pixel_y = 0},/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = 3},/obj/item/device/radio/intercom{pixel_y = -25},/obj/item/weapon/kitchen/rollingpin,/obj/machinery/camera{c_tag = "Kitchen"; dir = 1; network = list("SS13")},/turf/open/floor/plasteel/cafeteria{dir = 2},/area/crew_quarters/kitchen) +"bVX" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/obj/structure/table,/obj/machinery/reagentgrinder,/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/kitchen) +"bVY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/kitchen) +"bVZ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/kitchen) +"bWa" = (/obj/machinery/door/airlock{name = "Kitchen Cold Room"; req_access_txt = "28"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) +"bWb" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) +"bWc" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/airalarm{dir = 1; pixel_y = -22},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/camera{c_tag = "Kitchen - Coldroom"; dir = 1; network = list("SS13")},/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) +"bWd" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light_switch{pixel_y = -26},/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) +"bWe" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) +"bWf" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/firealarm{dir = 4; pixel_x = 28},/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) +"bWg" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plating{icon_state = "platingdmg1"},/area/maintenance/starboard) +"bWh" = (/obj/machinery/portable_atmospherics/canister,/turf/open/floor/plating,/area/maintenance/starboard) +"bWi" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible,/turf/open/floor/plating,/area/maintenance/starboard) +"bWj" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plating,/area/maintenance/starboard) +"bWk" = (/obj/item/weapon/crowbar,/turf/open/floor/plating{icon_state = "platingdmg1"},/area/maintenance/starboard) +"bWl" = (/obj/structure/fireaxecabinet{pixel_x = -32; pixel_y = 0},/obj/machinery/camera{c_tag = "Atmospherics - Port"; dir = 4; network = list("SS13")},/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/caution{dir = 8},/area/atmos) +"bWm" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/canister,/obj/machinery/airalarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/open/floor/plasteel/bot{dir = 1},/area/atmos) +"bWn" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 4; initialize_directions = 11},/obj/machinery/meter,/obj/item/weapon/wrench,/turf/open/floor/plasteel,/area/atmos) +"bWo" = (/obj/machinery/atmospherics/components/trinary/filter{dir = 1; filter_type = "plasma"; on = 1},/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/window/reinforced,/turf/open/floor/plasteel/purple,/area/atmos) +"bWp" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 8; frequency = 1441; id = "tox_in"; pixel_y = 1},/turf/open/floor/engine/plasma,/area/atmos) +"bWq" = (/obj/machinery/camera{c_tag = "Atmospherics Tank - Toxins"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/turf/open/floor/engine/plasma,/area/atmos) +"bWr" = (/turf/closed/wall/mineral/titanium,/area/shuttle/abandoned) +"bWs" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/abandoned) +"bWt" = (/obj/docking_port/mobile{dheight = 0; dir = 2; dwidth = 11; height = 15; id = "whiteship"; launch_status = 0; name = "NT Recovery White-Ship"; port_angle = -90; preferred_direction = 4; roundstart_move = "whiteship_away"; width = 27},/obj/machinery/door/airlock/shuttle{name = "recovery shuttle external airlock"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/docking_port/stationary{dir = 2; dwidth = 11; height = 15; id = "whiteship_home"; name = "SS13: Auxiliary Dock, Station-Port"; width = 27},/turf/open/floor/mineral/titanium/blue,/area/shuttle/abandoned) +"bWu" = (/obj/machinery/door/airlock/shuttle{name = "recovery shuttle external airlock"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/abandoned) +"bWv" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating/warnplate{icon_plating = "warnplate"},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bWw" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bWx" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bWy" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plating/warnplate{icon_plating = "warnplate"},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bWz" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bWA" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bWB" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating{icon_state = "platingdmg1"},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bWC" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/sign/poster{pixel_y = 32},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bWD" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bWE" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bWF" = (/obj/item/weapon/storage/box,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bWG" = (/obj/machinery/newscaster{pixel_x = -32; pixel_y = 0},/turf/open/floor/wood,/area/library) +"bWH" = (/obj/structure/chair/office/dark{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/wood,/area/library) +"bWI" = (/obj/structure/table/wood,/obj/item/weapon/folder,/obj/item/weapon/folder,/obj/item/weapon/pen,/turf/open/floor/wood,/area/library) +"bWJ" = (/obj/structure/table/wood,/obj/item/weapon/storage/crayons,/turf/open/floor/wood,/area/library) +"bWK" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/library) +"bWL" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/turf/open/floor/wood,/area/library) +"bWM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/central) +"bWN" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters{id = "evashutter"; name = "E.V.A. Storage Shutter"},/turf/open/floor/plasteel/delivery,/area/ai_monitored/storage/eva{name = "E.V.A. Storage"}) +"bWO" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters{id = "evashutter"; name = "E.V.A. Storage Shutter"},/obj/machinery/button/door{id = "evashutter"; name = "E.V.A. Storage Shutter Control"; pixel_x = 30; pixel_y = 0; req_access_txt = "19"},/turf/open/floor/plasteel/delivery,/area/ai_monitored/storage/eva{name = "E.V.A. Storage"}) +"bWP" = (/obj/machinery/door/poddoor/shutters{id = "teleshutter"; name = "Teleporter Access Shutter"},/turf/open/floor/plasteel/delivery,/area/teleporter{name = "\improper Teleporter Room"}) +"bWQ" = (/obj/machinery/door/poddoor/shutters{id = "teleshutter"; name = "Teleporter Access Shutter"},/obj/machinery/button/door{id = "teleshutter"; name = "Teleporter Shutter Control"; pixel_x = 30; pixel_y = 5; req_access_txt = "19"},/turf/open/floor/plasteel/delivery,/area/teleporter{name = "\improper Teleporter Room"}) +"bWR" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow,/obj/machinery/door/poddoor/shutters/preopen{id = "corporate_privacy"; name = "showroom shutters"},/turf/open/floor/plating,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bWS" = (/obj/structure/sign/securearea,/turf/closed/wall/r_wall,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bWT" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{name = "Corporate Showroom"; req_access_txt = "19"},/turf/open/floor/wood,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bWU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{name = "Corporate Showroom"; req_access_txt = "19"},/turf/open/floor/wood,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bWV" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters{id = "gateshutter"; name = "Gateway Access Shutter"},/turf/open/floor/plasteel/delivery,/area/gateway) +"bWW" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;17"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/maintcentral{name = "Central Maintenance"}) +"bWX" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/central) +"bWY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel/green/corner{dir = 2},/area/hallway/primary/central) +"bWZ" = (/turf/closed/wall,/area/hallway/primary/central) +"bXa" = (/turf/closed/wall,/area/hydroponics) +"bXb" = (/obj/machinery/door/poddoor/shutters/preopen{id = "kitchenhydro"; name = "Service Shutter"},/obj/machinery/door/airlock/glass_medical{id_tag = ""; name = "Service Door"; req_access_txt = "0"; req_one_access_txt = "35;28"},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/hydroponics) +"bXc" = (/obj/structure/table/reinforced,/obj/machinery/door/window/eastleft{dir = 1; name = "Kitchen Window"; req_access_txt = "28"; req_one_access_txt = "0"},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/weapon/paper,/obj/machinery/door/window/eastleft{dir = 2; name = "Hydroponics Window"; req_access_txt = "0"; req_one_access_txt = "30;35"},/turf/open/floor/plasteel/delivery{name = "floor"},/area/hydroponics) +"bXd" = (/obj/machinery/smartfridge,/turf/closed/wall,/area/hydroponics) +"bXe" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel/warning{dir = 1},/area/crew_quarters/kitchen) +"bXf" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/warning{dir = 1},/area/crew_quarters/kitchen) +"bXg" = (/obj/machinery/door/airlock/maintenance{name = "Kitchen Maintenance"; req_access_txt = "28"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/crew_quarters/kitchen) +"bXh" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/starboard) +"bXi" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/starboard) +"bXj" = (/obj/machinery/power/apc{cell_type = 2500; dir = 1; name = "Starboard Maintenance APC"; pixel_x = -1; pixel_y = 26},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/starboard) +"bXk" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/maintenance/starboard) +"bXl" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/starboard) +"bXm" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 2},/obj/machinery/meter,/turf/open/floor/plating,/area/maintenance/starboard) +"bXn" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 8},/turf/open/floor/plating,/area/maintenance/starboard) +"bXo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/starboard) +"bXp" = (/obj/structure/closet/wardrobe/atmospherics_yellow,/turf/open/floor/plasteel/black,/area/atmos) +"bXq" = (/obj/machinery/requests_console{department = "Atmospherics"; departmentType = 4; name = "Atmos RC"; pixel_x = 30; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/shower{dir = 8; icon_state = "shower"; name = "emergency shower"},/turf/open/floor/plasteel,/area/atmos) +"bXr" = (/obj/machinery/atmospherics/components/binary/pump{dir = 0; name = "Port to Filter"; on = 0},/obj/machinery/light/small{dir = 8},/obj/machinery/camera{c_tag = "Atmospherics - Starboard"; dir = 4; network = list("SS13")},/turf/open/floor/plasteel,/area/atmos) +"bXs" = (/obj/machinery/atmospherics/components/unary/thermomachine/heater{dir = 8},/turf/open/floor/plasteel,/area/atmos) +"bXt" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/lattice/catwalk,/obj/structure/window/reinforced,/turf/open/space,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"bXu" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 4},/turf/open/floor/plating/airless,/area/shuttle/abandoned) +"bXv" = (/obj/structure/toilet{pixel_y = 9},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/greenglow{desc = "Looks like something's sprung a leak"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"bXw" = (/obj/structure/mirror{pixel_x = 28; pixel_y = 0},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"bXx" = (/obj/structure/closet/wardrobe/mixed,/obj/item/clothing/under/rank/centcom_officer{desc = "A badge on the arm indicates that it's meant to be worn by Centcom recovery teams. This one seems dusty and clearly hasn't been cleaned in some time."; name = "\improper dusty old Centcom jumpsuit"},/obj/item/clothing/under/rank/centcom_commander{desc = "A badge on the arm indicates that it's meant to be worn by Centcom recovery teams. This one seems dusty and clearly hasn't been cleaned in some time."; name = "\improper dusty old Centcom jumpsuit"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"bXy" = (/obj/structure/table,/obj/item/weapon/storage/pill_bottle/dice{pixel_y = 3},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"bXz" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000; pixel_y = 2},/obj/effect/decal/cleanable/cobweb,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"bXA" = (/obj/machinery/suit_storage_unit/standard_unit,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"bXB" = (/obj/structure/tank_dispenser/oxygen{layer = 2.7; pixel_x = -1; pixel_y = 2},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"bXC" = (/turf/closed/wall/shuttle{icon_state = "swall1"},/area/shuttle/abandoned) +"bXD" = (/obj/structure/sign/vacuum{pixel_x = -32},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/abandoned) +"bXE" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/abandoned) +"bXF" = (/obj/structure/closet/crate/medical{name = "medical crate"},/obj/item/weapon/storage/firstaid/o2{pixel_x = 3; pixel_y = 3},/obj/item/roller{pixel_y = 4},/obj/item/device/healthanalyzer,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/bot,/area/shuttle/abandoned) +"bXG" = (/obj/structure/closet/crate{name = "spare equipment crate"},/obj/item/weapon/grenade/chem_grenade/metalfoam,/obj/item/weapon/relic,/obj/item/device/t_scanner,/obj/effect/spawner/lootdrop/maintenance{lootcount = 3; name = "3maintenance loot spawner"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/bot,/area/shuttle/abandoned) +"bXH" = (/obj/item/weapon/storage/box/lights/mixed,/obj/item/weapon/cigbutt,/obj/structure/closet/crate{icon_state = "crateopen"; name = "spare equipment crate"; opened = 1},/obj/item/weapon/tank/internals/oxygen/red,/obj/item/weapon/tank/internals/air,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/bot,/area/shuttle/abandoned) +"bXI" = (/obj/structure/closet/crate{name = "emergency supplies crate"},/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/storage/toolbox/emergency,/obj/item/device/flashlight/flare{pixel_x = 3; pixel_y = 3},/obj/item/device/flashlight/flare{pixel_x = -6; pixel_y = -2},/obj/item/weapon/crowbar,/obj/item/weapon/wrench,/obj/effect/spawner/lootdrop/maintenance,/obj/item/weapon/extinguisher,/obj/item/weapon/extinguisher,/obj/effect/decal/cleanable/cobweb/cobweb2,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/bot,/area/shuttle/abandoned) +"bXJ" = (/turf/closed/wall,/area/maintenance/portsolar) +"bXK" = (/obj/machinery/door/airlock/engineering{name = "Aft Port Solar Access"; req_access_txt = "10"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/portsolar) +"bXL" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 0},/turf/closed/wall,/area/maintenance/portsolar) +"bXM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/maintenance{name = "Storage Room"; req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bXN" = (/turf/closed/wall,/area/maintenance/aft{name = "Aft Maintenance"}) +"bXO" = (/obj/structure/rack,/obj/item/weapon/paper,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bXP" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/wood,/area/library) +"bXQ" = (/obj/structure/chair/office/dark{dir = 4},/obj/machinery/airalarm{dir = 1; pixel_y = -22},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/wood,/area/library) +"bXR" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/machinery/camera/autoname{dir = 1; network = list("SS13")},/obj/item/weapon/storage/pill_bottle/dice,/obj/structure/table/wood,/turf/open/floor/wood,/area/library) +"bXS" = (/obj/structure/table/wood,/obj/machinery/light,/obj/item/toy/cards/deck/cas/black{pixel_x = -2; pixel_y = 6},/obj/item/toy/cards/deck{pixel_x = 2; pixel_y = 7},/obj/item/toy/cards/deck/cas{pixel_x = -1; pixel_y = 2},/turf/open/floor/wood,/area/library) +"bXT" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/wood,/area/library) +"bXU" = (/obj/machinery/door/airlock/maintenance{name = "Library Maintenance"; req_access_txt = "0"; req_one_access_txt = "12;37"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bXV" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bXW" = (/obj/machinery/vending/snack,/obj/machinery/newscaster{pixel_x = -30; pixel_y = 0},/turf/open/floor/plasteel/black,/area/hallway/primary/central) +"bXX" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=11-Command-Port"; location = "10.2-Aft-Port-Corner"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bXY" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/hallway/primary/central) +"bXZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/hallway/primary/central) +"bYa" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/open/floor/plasteel/warning/corner{dir = 8},/area/hallway/primary/central) +"bYb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/primary/central) +"bYc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/warning/corner{dir = 4},/area/hallway/primary/central) +"bYd" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/firedoor,/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/hallway/primary/central) +"bYe" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/firealarm{pixel_y = 28},/turf/open/floor/plasteel/warning/corner{dir = 8},/area/hallway/primary/central) +"bYf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 21},/turf/open/floor/plasteel/warning/corner{dir = 4},/area/hallway/primary/central) +"bYg" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/hallway/primary/central) +"bYh" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/hallway/primary/central) +"bYi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/noticeboard{pixel_y = 32},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/hallway/primary/central) +"bYj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/hallway/primary/central) +"bYk" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/hallway/primary/central) +"bYl" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/hallway/primary/central) +"bYm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/central) +"bYn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/light{dir = 1},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/central) +"bYo" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/obj/machinery/power/apc{cell_type = 10000; dir = 1; name = "Central Primary Hallway APC"; pixel_y = 24},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/central) +"bYp" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/obj/structure/sign/map/left{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-left-MS"; pixel_y = 32},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/central) +"bYq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/sign/map/right{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-right-MS"; pixel_y = 32},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/central) +"bYr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 21},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/central) +"bYs" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/button/door{id = "gateshutter"; name = "Gateway Shutter Control"; pixel_x = 0; pixel_y = 26; req_access_txt = "19"},/turf/open/floor/plasteel/warning/corner{dir = 8},/area/hallway/primary/central) +"bYt" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/central) +"bYu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/central) +"bYv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/sign/botany{pixel_x = 32; pixel_y = 32},/turf/open/floor/plasteel/green/side{dir = 4},/area/hallway/primary/central) +"bYw" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 8},/obj/item/weapon/pen,/turf/open/floor/plasteel/green,/area/hallway/primary/central) +"bYx" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/hydroponics) +"bYy" = (/obj/machinery/vending/hydroseeds{slogan_delay = 700},/obj/structure/noticeboard{desc = "A board for pinning important notices upon. Probably helpful for keeping track of requests."; name = "requests board"; pixel_x = 0; pixel_y = 32},/turf/open/floor/plasteel/warning,/area/hydroponics) +"bYz" = (/obj/machinery/vending/hydronutrients,/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/warning,/area/hydroponics) +"bYA" = (/turf/open/floor/plasteel/warning,/area/hydroponics) +"bYB" = (/obj/item/weapon/storage/box/syringes,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/structure/table/glass,/turf/open/floor/plasteel/warning,/area/hydroponics) +"bYC" = (/obj/machinery/reagentgrinder,/obj/structure/table/glass,/turf/open/floor/plasteel/warning,/area/hydroponics) +"bYD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/warning,/area/hydroponics) +"bYE" = (/obj/machinery/chem_master/condimaster{desc = "Used to separate out liquids - useful for purifying botanical extracts. Also dispenses condiments."; name = "BrewMaster 2199"; pixel_x = -4},/turf/open/floor/plasteel/warning,/area/hydroponics) +"bYF" = (/obj/structure/reagent_dispensers/watertank,/obj/item/weapon/reagent_containers/glass/bucket,/obj/structure/window/reinforced{dir = 8},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = 29},/turf/open/floor/plasteel/warning,/area/hydroponics) +"bYG" = (/obj/structure/reagent_dispensers/watertank,/obj/item/weapon/reagent_containers/glass/bucket,/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/turf/open/floor/plasteel/warning,/area/hydroponics) +"bYH" = (/obj/structure/closet/crate/hydroponics,/obj/item/weapon/shovel/spade,/obj/item/weapon/wrench,/obj/item/weapon/reagent_containers/glass/bucket,/obj/item/weapon/cultivator,/obj/item/weapon/wirecutters,/turf/open/floor/plasteel/warning,/area/hydroponics) +"bYI" = (/obj/structure/closet{name = "spare parts locker"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/item/weapon/rack_parts,/obj/item/weapon/rack_parts,/obj/item/weapon/wrench,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/delivery,/area/crew_quarters/kitchen) +"bYJ" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/window/eastright{dir = 1; name = "Kitchen Delivery"; req_access_txt = "28"},/turf/open/floor/plasteel/delivery,/area/crew_quarters/kitchen) +"bYK" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; dir = 8; freq = 1400; location = "Kitchen"},/obj/structure/plasticflaps{opacity = 1},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/bot{dir = 1},/area/crew_quarters/kitchen) +"bYL" = (/obj/structure/disposalpipe/sortjunction{dir = 2; sortType = 20},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/starboard) +"bYM" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/starboard) +"bYN" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/starboard) +"bYO" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/starboard) +"bYP" = (/mob/living/simple_animal/mouse,/turf/open/floor/plating,/area/maintenance/starboard) +"bYQ" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plating/warnplate,/area/maintenance/starboard) +"bYR" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 8},/obj/machinery/portable_atmospherics/canister,/turf/open/floor/plating,/area/maintenance/starboard) +"bYS" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/turf/open/floor/plasteel/black,/area/atmos) +"bYT" = (/obj/machinery/pipedispenser,/turf/open/floor/plasteel/warning{dir = 10},/area/atmos) +"bYU" = (/obj/machinery/light{dir = 1},/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/pipedispenser/disposal,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/warning,/area/atmos) +"bYV" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 28},/obj/machinery/pipedispenser/disposal/transit_tube,/turf/open/floor/plasteel/warning{dir = 6},/area/atmos) +"bYW" = (/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Port to Filter"; on = 0},/turf/open/floor/plasteel,/area/atmos) +"bYX" = (/obj/item/weapon/cigbutt,/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel,/area/atmos) +"bYY" = (/obj/machinery/atmospherics/components/unary/thermomachine/heater{dir = 4; on = 1},/turf/open/floor/plasteel,/area/atmos) +"bYZ" = (/obj/machinery/atmospherics/pipe/manifold4w/yellow/visible,/turf/open/floor/plasteel,/area/atmos) +"bZa" = (/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "CO2 to Pure"; on = 0},/obj/machinery/atmospherics/pipe/simple/green/visible,/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/turf/open/floor/plasteel/vault,/area/atmos) +"bZb" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; external_pressure_bound = 0; frequency = 1441; id_tag = "co2_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/open/floor/engine/co2,/area/atmos) +"bZc" = (/turf/open/floor/engine/co2,/area/atmos) +"bZd" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"bZe" = (/obj/structure/window/reinforced{dir = 1; layer = 2.9},/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"bZf" = (/obj/structure/window/reinforced{dir = 1; layer = 2.9},/obj/machinery/light/small{dir = 1},/obj/machinery/camera{c_tag = "MiniSat Exterior - Aft"; dir = 2; network = list("MiniSat")},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"bZg" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"bZh" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 4},/turf/open/floor/plating/airless,/area/shuttle/abandoned) +"bZi" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating/airless,/area/shuttle/abandoned) +"bZj" = (/obj/machinery/door/airlock/shuttle{name = "bathroom"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/abandoned) +"bZk" = (/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/blood/gibs/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/ash{desc = "They look like human remains, and have clearly been gnawed at."; icon = 'icons/effects/blood.dmi'; icon_state = "remains"; name = "remains"},/obj/item/weapon/gun/energy/laser/retro,/turf/open/floor/mineral/titanium/blue,/area/shuttle/abandoned) +"bZl" = (/obj/structure/bed,/obj/item/weapon/bedsheet/centcom,/obj/effect/decal/remains/human,/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"bZm" = (/obj/structure/table,/obj/item/weapon/storage/belt/utility,/obj/item/weapon/storage/belt/utility,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"bZn" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/oil,/turf/open/floor/mineral/titanium/blue,/area/shuttle/abandoned) +"bZo" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/abandoned) +"bZp" = (/obj/machinery/door/airlock/shuttle{name = "E.V.A. equipment"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/abandoned) +"bZq" = (/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/blood/gibs/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/ash{desc = "They look like human remains, and have clearly been gnawed at."; icon = 'icons/effects/blood.dmi'; icon_state = "remains"; name = "remains"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/abandoned) +"bZr" = (/obj/machinery/door/airlock/shuttle{name = "cargo bay"},/turf/open/floor/plasteel/delivery{dir = 1},/area/shuttle/abandoned) +"bZs" = (/obj/effect/decal/cleanable/oil,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/delivery{dir = 1},/area/shuttle/abandoned) +"bZt" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/delivery{dir = 1},/area/shuttle/abandoned) +"bZu" = (/obj/effect/decal/cleanable/robot_debris/old,/obj/effect/decal/cleanable/oil,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/delivery{dir = 1},/area/shuttle/abandoned) +"bZv" = (/obj/machinery/power/apc{dir = 8; name = "Aft Port Solar APC"; pixel_x = -26; pixel_y = 3},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/open/floor/plating{icon_state = "platingdmg1"},/area/maintenance/portsolar) +"bZw" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/portsolar) +"bZx" = (/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/power/smes,/turf/open/floor/plating,/area/maintenance/portsolar) +"bZy" = (/obj/item/weapon/cigbutt,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bZz" = (/obj/structure/closet,/obj/item/weapon/storage/box/donkpockets,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bZA" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;5;39;25;28"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"bZB" = (/obj/structure/rack,/obj/item/weapon/weldingtool,/obj/item/weapon/screwdriver{pixel_y = 16},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"bZC" = (/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/aft{name = "Aft Maintenance"}) +"bZD" = (/obj/machinery/recharge_station,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"bZE" = (/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/aft{name = "Aft Maintenance"}) +"bZF" = (/obj/structure/rack,/obj/item/stack/cable_coil{pixel_x = -1; pixel_y = -3},/obj/item/stack/cable_coil,/obj/item/weapon/wirecutters,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"bZG" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bZH" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/turf/open/floor/plasteel/black,/area/hallway/primary/central) +"bZI" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bZJ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bZK" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bZL" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bZM" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bZN" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel{icon_state = "L1"},/area/hallway/primary/central) +"bZO" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel{icon_state = "L3"},/area/hallway/primary/central) +"bZP" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=10.2-Aft-Port-Corner"; location = "10.1-Central-from-Aft"},/turf/open/floor/plasteel{icon_state = "L5"},/area/hallway/primary/central) +"bZQ" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel{icon_state = "L7"},/area/hallway/primary/central) +"bZR" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=8.1-Aft-to-Escape"; location = "8-Central-to-Aft"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel{icon_state = "L9"},/area/hallway/primary/central) +"bZS" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel{icon_state = "L11"},/area/hallway/primary/central) +"bZT" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel{desc = ""; icon_state = "L13"; name = "floor"},/area/hallway/primary/central) +"bZU" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bZV" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bZW" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/central) +"bZX" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=8-Central-to-Aft"; location = "7.5-Starboard-Aft-Corner"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bZY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/green/side{dir = 4},/area/hallway/primary/central) +"bZZ" = (/turf/open/floor/plasteel/green,/area/hallway/primary/central) +"caa" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor,/obj/machinery/door/window/westleft{dir = 4; name = "Hydroponics Desk"; req_access_txt = "0"; req_one_access_txt = "30;35"},/turf/open/floor/plasteel/green{dir = 4},/area/hydroponics) +"cab" = (/turf/open/floor/plasteel/green/side{dir = 9},/area/hydroponics) +"cac" = (/turf/open/floor/plasteel/green/side{dir = 5},/area/hydroponics) +"cad" = (/turf/open/floor/plasteel/green/side{dir = 1},/area/hydroponics) +"cae" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/green/side{dir = 5},/area/hydroponics) +"caf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/green/side{dir = 9},/area/hydroponics) +"cag" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/green/side{dir = 1},/area/hydroponics) +"cah" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/open/floor/plasteel/bot{dir = 2},/area/hydroponics) +"cai" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/starboard) +"caj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/starboard) +"cak" = (/obj/structure/rack,/obj/item/weapon/extinguisher,/obj/item/weapon/storage/belt/utility,/obj/item/clothing/mask/gas,/obj/item/weapon/storage/box/lights/mixed,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/starboard) +"cal" = (/obj/structure/closet/emcloset,/turf/open/floor/plating,/area/maintenance/starboard) +"cam" = (/obj/structure/reagent_dispensers/watertank,/obj/item/weapon/storage/box/lights/mixed,/obj/structure/sign/poster{pixel_y = 32},/turf/open/floor/plating,/area/maintenance/starboard) +"can" = (/obj/structure/closet/crate,/obj/item/weapon/storage/belt/utility,/obj/item/stack/cable_coil/random,/turf/open/floor/plating,/area/maintenance/starboard) +"cao" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 6},/obj/machinery/light_switch{pixel_y = 28},/obj/item/clothing/head/cone{pixel_x = -4; pixel_y = 4},/obj/item/clothing/head/cone{pixel_x = -4; pixel_y = 4},/obj/item/clothing/head/cone{pixel_x = -4; pixel_y = 4},/obj/item/clothing/head/cone{pixel_x = -4; pixel_y = 4},/obj/item/clothing/head/cone{pixel_x = -4; pixel_y = 4},/turf/open/floor/plasteel/caution{dir = 9},/area/atmos) +"cap" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{dir = 1},/turf/open/floor/plasteel/caution{dir = 1},/area/atmos) +"caq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/caution{dir = 1},/area/atmos) +"car" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/turf/open/floor/plasteel/black/corner{dir = 1},/area/atmos) +"cas" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{dir = 2},/obj/machinery/meter,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/atmos) +"cat" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/turf/open/floor/plasteel,/area/atmos) +"cau" = (/obj/machinery/atmospherics/components/binary/pump{dir = 0; name = "Port to Fuel Pipe"; on = 0},/turf/open/floor/plasteel,/area/atmos) +"cav" = (/obj/machinery/computer/atmos_control/tank{frequency = 1441; input_tag = "co2_in"; name = "Carbon Dioxide Supply Control"; output_tag = "co2_out"; sensors = list("co2_sensor" = "Tank")},/obj/machinery/atmospherics/pipe/simple/green/visible,/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/turf/open/floor/plasteel/vault,/area/atmos) +"caw" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "co2_sensor"},/turf/open/floor/engine/co2,/area/atmos) +"cax" = (/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/turf/open/floor/engine/co2,/area/atmos) +"cay" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/engine/co2,/area/atmos) +"caz" = (/obj/structure/chair,/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"caA" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"caB" = (/obj/machinery/shower{icon_state = "shower"; dir = 4},/obj/machinery/door/window/westright{dir = 4},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/item/weapon/soap/nanotrasen,/obj/effect/decal/cleanable/ash{desc = "They look like human remains, and have clearly been gnawed at."; icon = 'icons/effects/blood.dmi'; icon_state = "remains"; name = "remains"},/obj/effect/decal/cleanable/blood/gibs/old,/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"caC" = (/obj/effect/decal/cleanable/blood/old,/obj/structure/mirror{pixel_x = 28; pixel_y = 0},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/abandoned) +"caD" = (/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/blood/gibs/limb,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/abandoned) +"caE" = (/obj/structure/bed,/obj/item/weapon/bedsheet/centcom,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"caF" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 50; pixel_x = -2; pixel_y = 2},/obj/item/stack/rods{amount = 50},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/item/weapon/wrench,/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"caG" = (/obj/structure/rack{dir = 8; layer = 2.9; pixel_y = 2},/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = 6},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/item/clothing/head/welding{pixel_x = -3; pixel_y = 5},/obj/item/clothing/glasses/welding,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"caH" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"caI" = (/obj/effect/decal/cleanable/oil,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/bot,/area/shuttle/abandoned) +"caJ" = (/obj/structure/closet/emcloset,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/bot,/area/shuttle/abandoned) +"caK" = (/obj/structure/closet/firecloset/full,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/bot,/area/shuttle/abandoned) +"caL" = (/obj/structure/chair/stool,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/camera{c_tag = "Aft Port Solar Maintenance"; dir = 4; network = list("SS13")},/turf/open/floor/plating,/area/maintenance/portsolar) +"caM" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plating,/area/maintenance/portsolar) +"caN" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/light/small{dir = 4},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/turf/open/floor/plating,/area/maintenance/portsolar) +"caO" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"caP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"caQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/aft{name = "Aft Maintenance"}) +"caR" = (/turf/open/floor/plating{icon_state = "platingdmg1"},/area/maintenance/aft{name = "Aft Maintenance"}) +"caS" = (/turf/open/floor/plating/warnplate/corner{dir = 8},/area/maintenance/aft{name = "Aft Maintenance"}) +"caT" = (/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/aft{name = "Aft Maintenance"}) +"caU" = (/turf/open/floor/plating/warnplate/corner{dir = 4},/area/maintenance/aft{name = "Aft Maintenance"}) +"caV" = (/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"caW" = (/obj/item/hand_labeler_refill,/obj/structure/easel,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"caX" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"caY" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"caZ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"cba" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/sign/poster{pixel_y = 32},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"cbb" = (/obj/structure/disposalpipe/sortjunction{dir = 4; icon_state = "pipe-j2s"; sortType = 16},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"cbc" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;5;39;37;25;28"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"cbd" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 4},/turf/open/floor/plasteel/vault,/area/hallway/primary/central) +"cbe" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/central) +"cbf" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/camera{c_tag = "Central Primary Hallway - Aft-Port Corner"; dir = 1; network = list("SS13")},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/central) +"cbg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/central) +"cbh" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/central) +"cbi" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/airalarm{dir = 1; pixel_y = -22},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/central) +"cbj" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/central) +"cbk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor,/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/central) +"cbl" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/open/floor/plasteel,/area/hallway/primary/central) +"cbm" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/central) +"cbn" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/primary/central) +"cbo" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/open/floor/plasteel{icon_state = "L2"},/area/hallway/primary/central) +"cbp" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel{icon_state = "L4"},/area/hallway/primary/central) +"cbq" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel{icon_state = "L6"},/area/hallway/primary/central) +"cbr" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/landmark{name = "lightsout"},/turf/open/floor/plasteel{icon_state = "L8"},/area/hallway/primary/central) +"cbs" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel{icon_state = "L10"},/area/hallway/primary/central) +"cbt" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel{icon_state = "L12"},/area/hallway/primary/central) +"cbu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel{desc = ""; icon_state = "L14"},/area/hallway/primary/central) +"cbv" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/central) +"cbw" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"cbx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) +"cby" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/hallway/primary/central) +"cbz" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/hallway/primary/central) +"cbA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/hallway/primary/central) +"cbB" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/obj/machinery/camera{c_tag = "Central Primary Hallway - Aft-Starboard Corner"; dir = 1; network = list("SS13")},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/hallway/primary/central) +"cbC" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/hallway/primary/central) +"cbD" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/obj/machinery/airalarm{dir = 1; pixel_y = -22},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/hallway/primary/central) +"cbE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/green/corner{dir = 2},/area/hallway/primary/central) +"cbF" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/green/side{dir = 6},/area/hallway/primary/central) +"cbG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/green,/area/hallway/primary/central) +"cbH" = (/obj/structure/table/reinforced,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/window/westright{dir = 4; name = "Hydroponics Desk"; req_access_txt = "0"; req_one_access_txt = "30;35"},/obj/item/weapon/folder/white,/obj/item/weapon/folder/white,/turf/open/floor/plasteel/green{dir = 4},/area/hydroponics) +"cbI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/chair/office/dark{dir = 8},/obj/effect/landmark/start{name = "Botanist"},/turf/open/floor/plasteel/green/side{dir = 10},/area/hydroponics) +"cbJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/green/side{dir = 6},/area/hydroponics) +"cbK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/green/side{dir = 8},/area/hydroponics) +"cbL" = (/obj/machinery/hydroponics/constructable,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hydroponics) +"cbM" = (/obj/machinery/hydroponics/constructable,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel,/area/hydroponics) +"cbN" = (/turf/open/floor/plasteel/green/side{dir = 4},/area/hydroponics) +"cbO" = (/turf/open/floor/plasteel/green/side{dir = 8},/area/hydroponics) +"cbP" = (/obj/machinery/hydroponics/constructable,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hydroponics) +"cbQ" = (/obj/machinery/hydroponics/constructable,/turf/open/floor/plasteel,/area/hydroponics) +"cbR" = (/obj/machinery/seed_extractor,/turf/open/floor/plasteel/warning{dir = 9},/area/hydroponics) +"cbS" = (/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/structure/closet/wardrobe/botanist,/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) +"cbT" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/obj/machinery/firealarm{pixel_y = 29},/obj/structure/sign/poster{pixel_x = 32; pixel_y = 0},/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) +"cbU" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/disposalpipe/segment,/turf/open/floor/plating{icon_state = "platingdmg1"},/area/maintenance/starboard) +"cbV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/starboard) +"cbW" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating{icon_state = "platingdmg2"},/area/maintenance/starboard) +"cbX" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard) +"cbY" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating,/area/maintenance/starboard) +"cbZ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plating,/area/maintenance/starboard) +"cca" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/starboard) +"ccb" = (/obj/machinery/door/airlock/maintenance{name = "Atmospherics Maintenance"; req_access_txt = "24"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/atmos) +"ccc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/caution{dir = 8},/area/atmos) +"ccd" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 5},/turf/open/floor/plasteel,/area/atmos) +"cce" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Fuel Pipe to Filter"; on = 0},/turf/open/floor/plasteel,/area/atmos) +"ccf" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/general/visible{color = "#330000"; dir = 1},/turf/open/floor/plasteel,/area/atmos) +"ccg" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/general/visible{color = "#330000"; dir = 4},/turf/open/floor/plasteel,/area/atmos) +"cch" = (/obj/effect/landmark/start{name = "Atmospheric Technician"},/obj/machinery/atmospherics/pipe/simple/general/visible{color = "#330000"; dir = 4},/turf/open/floor/plasteel,/area/atmos) +"cci" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/atmospherics/pipe/simple/general/visible{color = "#330000"; dir = 4},/turf/open/floor/plasteel,/area/atmos) +"ccj" = (/obj/machinery/atmospherics/pipe/simple/general/visible{color = "#330000"; dir = 4},/turf/open/floor/plasteel,/area/atmos) +"cck" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{color = "#330000"},/obj/machinery/meter{color = ""},/turf/open/floor/plasteel,/area/atmos) +"ccl" = (/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Pure to Fuel Pipe"; on = 0},/turf/open/floor/plasteel,/area/atmos) +"ccm" = (/obj/machinery/atmospherics/pipe/manifold/yellow/visible{dir = 4},/turf/open/floor/plasteel,/area/atmos) +"ccn" = (/obj/machinery/atmospherics/components/trinary/filter{dir = 1; filter_type = "co2"; on = 1},/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/window/reinforced,/turf/open/floor/plasteel/vault,/area/atmos) +"cco" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 8; frequency = 1441; id = "co2_in"; pixel_y = 1},/turf/open/floor/engine/co2,/area/atmos) +"ccp" = (/obj/machinery/camera{c_tag = "Atmospherics Tank - CO2"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/turf/open/floor/engine/co2,/area/atmos) +"ccq" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"ccr" = (/obj/structure/window/reinforced,/obj/machinery/holopad,/turf/open/floor/plasteel/black,/area/construction/hallway{name = "\improper MiniSat Exterior"}) +"ccs" = (/obj/machinery/door/airlock/shuttle{name = "bathroom"},/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/abandoned) +"cct" = (/obj/machinery/door/airlock/shuttle{name = "dormitory"},/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/abandoned) +"ccu" = (/obj/machinery/vending/boozeomat{icon_deny = "smartfridge"; icon_state = "smartfridge"; req_access_txt = "0"; use_power = 0},/turf/closed/wall/shuttle{icon_state = "swall12"; dir = 2},/area/shuttle/abandoned) +"ccv" = (/obj/machinery/door/airlock/shuttle{name = "recovery shuttle interior airlock"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/abandoned) +"ccw" = (/obj/machinery/door/airlock/shuttle{name = "cargo bay"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/delivery{dir = 1},/area/shuttle/abandoned) +"ccx" = (/obj/machinery/power/solar_control{id = "aftport"; name = "Aft Port Solar Control"; track = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable,/turf/open/floor/plating,/area/maintenance/portsolar) +"ccy" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating/warnplate{dir = 2},/area/maintenance/portsolar) +"ccz" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 32; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/portsolar) +"ccA" = (/obj/structure/rack,/obj/item/weapon/poster/contraband,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"ccB" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 1},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"ccC" = (/obj/structure/closet,/obj/item/device/flashlight,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"ccD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/aft{name = "Aft Maintenance"}) +"ccE" = (/obj/structure/table,/obj/item/device/flashlight/lamp,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"ccF" = (/obj/structure/chair/stool,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"ccG" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"ccH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating{icon_state = "platingdmg2"},/area/maintenance/aft{name = "Aft Maintenance"}) +"ccI" = (/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"ccJ" = (/obj/structure/girder,/obj/structure/grille,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"ccK" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/disposalpipe/segment,/turf/open/floor/plating/warnplate{dir = 2},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"ccL" = (/obj/structure/closet/crate,/obj/item/weapon/coin/silver,/obj/item/device/flashlight,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"ccM" = (/obj/structure/closet,/obj/item/clothing/neck/stethoscope,/obj/item/weapon/hemostat,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"ccN" = (/obj/item/weapon/storage/box/lights/mixed,/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"ccO" = (/turf/closed/wall,/area/medical/medbay2{name = "Medbay Storage"}) +"ccP" = (/turf/closed/wall,/area/security/checkpoint/medical) +"ccQ" = (/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "applebush"; layer = 4.1},/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/central) +"ccR" = (/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/central) +"ccS" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/central) +"ccT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/central) +"ccU" = (/obj/machinery/camera{c_tag = "Central Primary Hallway - Aft-Port"; dir = 1; network = list("SS13")},/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/central) +"ccV" = (/obj/machinery/light/small,/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/central) +"ccW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/central) +"ccX" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/purple/corner{dir = 2},/area/hallway/primary/central) +"ccY" = (/obj/machinery/light/small,/turf/open/floor/plasteel/purple/corner{dir = 2},/area/hallway/primary/central) +"ccZ" = (/turf/open/floor/plasteel/purple/corner{dir = 2},/area/hallway/primary/central) +"cda" = (/obj/machinery/camera{c_tag = "Central Primary Hallway - Aft-Starboard"; dir = 1; network = list("SS13")},/turf/open/floor/plasteel/purple/corner{dir = 2},/area/hallway/primary/central) +"cdb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/purple/corner{dir = 2},/area/hallway/primary/central) +"cdc" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/purple/corner{dir = 2},/area/hallway/primary/central) +"cdd" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-10"; layer = 4.1},/turf/open/floor/plasteel/purple/corner{dir = 2},/area/hallway/primary/central) +"cde" = (/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/disposal/bin,/obj/machinery/newscaster{pixel_y = -29},/turf/open/floor/plasteel/vault,/area/hallway/primary/central) +"cdf" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;35;47"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cdg" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/hallway/primary/central) +"cdh" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Hydroponics Storage"},/turf/open/floor/plasteel/hydrofloor,/area/hallway/primary/central) +"cdi" = (/obj/machinery/camera/autoname{dir = 4; network = list("SS13")},/obj/item/weapon/book/manual/hydroponics_pod_people,/obj/item/weapon/paper/hydroponics,/obj/machinery/requests_console{department = "Hydroponics"; departmentType = 2; pixel_x = -31; pixel_y = -2},/obj/structure/table/glass,/turf/open/floor/plasteel/green,/area/hydroponics) +"cdj" = (/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/weapon/hand_labeler,/obj/structure/table/glass,/turf/open/floor/plasteel/green,/area/hydroponics) +"cdk" = (/obj/effect/landmark/start{name = "Botanist"},/obj/machinery/holopad,/turf/open/floor/plasteel,/area/hydroponics) +"cdl" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel,/area/hydroponics) +"cdm" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/hydroponics) +"cdn" = (/turf/open/floor/plasteel,/area/hydroponics) +"cdo" = (/obj/effect/landmark/start{name = "Botanist"},/turf/open/floor/plasteel/green/side{dir = 4},/area/hydroponics) +"cdp" = (/obj/item/seeds/wheat,/obj/item/seeds/sugarcane,/obj/item/seeds/potato,/obj/item/seeds/apple,/obj/item/weapon/grown/corncob,/obj/item/weapon/reagent_containers/food/snacks/grown/carrot,/obj/item/weapon/reagent_containers/food/snacks/grown/wheat,/obj/item/weapon/reagent_containers/food/snacks/grown/pumpkin{pixel_y = 5},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/camera/autoname{dir = 8; network = list("SS13")},/obj/structure/table/glass,/turf/open/floor/plasteel/warning{dir = 8},/area/hydroponics) +"cdq" = (/obj/structure/closet/secure_closet/hydroponics,/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) +"cdr" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/effect/landmark/start{name = "Botanist"},/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) +"cds" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 2},/turf/open/floor/plating,/area/maintenance/starboard) +"cdt" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard) +"cdu" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/starboard) +"cdv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/starboard) +"cdw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/starboard) +"cdx" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/starboard) +"cdy" = (/obj/item/weapon/cigbutt,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/warnplate,/area/maintenance/starboard) +"cdz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/machinery/light{dir = 8},/obj/machinery/airalarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/machinery/camera{c_tag = "Atmospherics - Port-Aft"; dir = 4; network = list("SS13")},/turf/open/floor/plasteel/caution{dir = 8},/area/atmos) +"cdA" = (/obj/machinery/atmospherics/pipe/simple/general/visible{color = "#330000"},/turf/open/floor/plasteel,/area/atmos) +"cdB" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 6},/turf/open/floor/plasteel,/area/atmos) +"cdC" = (/obj/machinery/atmospherics/components/binary/pump{dir = 4; name = "N2 to Airmix"; on = 1},/turf/open/floor/plasteel,/area/atmos) +"cdD" = (/obj/machinery/atmospherics/components/trinary/mixer{dir = 4; node1_concentration = 0.8; node2_concentration = 0.2; on = 1; pixel_x = 0; pixel_y = 0; target_pressure = 4500},/turf/open/floor/plasteel,/area/atmos) +"cdE" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 10; initialize_directions = 10},/turf/open/floor/plasteel,/area/atmos) +"cdF" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/black,/area/atmos) +"cdG" = (/obj/machinery/vending/cigarette{use_power = 0},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"cdH" = (/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/blood/gibs/limb,/turf/open/floor/mineral/titanium/blue,/area/shuttle/abandoned) +"cdI" = (/obj/effect/decal/cleanable/blood/gibs/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/abandoned) +"cdJ" = (/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/abandoned) +"cdK" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/cobweb/cobweb2,/turf/open/floor/mineral/titanium/blue,/area/shuttle/abandoned) +"cdL" = (/obj/effect/decal/cleanable/cobweb,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"cdM" = (/obj/structure/table,/obj/item/device/camera,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"cdN" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/item/weapon/storage/photo_album,/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"cdO" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -1; pixel_y = 6},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"cdP" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/portsolar) +"cdQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/airlock/external{name = "Solar Maintenance"; req_access = null; req_access_txt = "10; 13"},/turf/open/floor/plating,/area/maintenance/portsolar) +"cdR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cdS" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 8},/obj/item/weapon/poster/contraband,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cdT" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/weapon/folder/white,/obj/item/weapon/pen,/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cdU" = (/obj/structure/light_construct,/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/aft{name = "Aft Maintenance"}) +"cdV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating/warnplate{dir = 2},/area/maintenance/aft{name = "Aft Maintenance"}) +"cdW" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cdX" = (/obj/machinery/mech_bay_recharge_port,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cdY" = (/turf/open/floor/mech_bay_recharge_floor,/area/maintenance/aft{name = "Aft Maintenance"}) +"cdZ" = (/obj/machinery/computer/mech_bay_power_console,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/open/floor/bluegrid,/area/maintenance/aft{name = "Aft Maintenance"}) +"cea" = (/obj/machinery/space_heater,/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/aft{name = "Aft Maintenance"}) +"ceb" = (/obj/item/weapon/vending_refill/cola,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cec" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/item/weapon/storage/box/donkpockets,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"ced" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;5;39;25;28"},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cee" = (/obj/machinery/vending/medical,/turf/open/floor/plasteel/whiteblue/side{dir = 9},/area/medical/medbay2{name = "Medbay Storage"}) +"cef" = (/obj/structure/noticeboard{pixel_y = 32},/obj/structure/table,/obj/item/weapon/reagent_containers/glass/beaker/large{pixel_y = 3},/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 8; pixel_y = 2},/obj/item/weapon/reagent_containers/glass/bottle/charcoal{pixel_x = -5; pixel_y = 0},/obj/item/weapon/reagent_containers/glass/bottle/morphine,/obj/item/weapon/reagent_containers/syringe/epinephrine{pixel_x = 3; pixel_y = -2},/obj/item/weapon/reagent_containers/dropper,/turf/open/floor/plasteel/whiteblue/side{dir = 1},/area/medical/medbay2{name = "Medbay Storage"}) +"ceg" = (/obj/structure/closet/secure_closet/medical3,/obj/item/weapon/screwdriver{pixel_y = 6},/obj/structure/sign/nosmoking_2{pixel_x = 0; pixel_y = 30},/turf/open/floor/plasteel/whiteblue/side{dir = 1},/area/medical/medbay2{name = "Medbay Storage"}) +"ceh" = (/obj/structure/closet/secure_closet/medical3,/obj/machinery/light{dir = 1},/obj/machinery/airalarm{pixel_y = 24},/obj/item/weapon/screwdriver{pixel_y = 6},/turf/open/floor/plasteel/whiteblue/side{dir = 1},/area/medical/medbay2{name = "Medbay Storage"}) +"cei" = (/obj/item/device/radio/intercom{broadcasting = 1; freerange = 0; frequency = 1485; listening = 0; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = 30},/obj/structure/closet/wardrobe/white/medical,/obj/item/clothing/suit/hooded/wintercoat/medical,/turf/open/floor/plasteel/whiteblue/side{dir = 1},/area/medical/medbay2{name = "Medbay Storage"}) +"cej" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/turf/open/floor/plasteel/whiteblue/side{dir = 5},/area/medical/medbay2{name = "Medbay Storage"}) +"cek" = (/obj/machinery/power/apc{dir = 8; name = "Medical Security Checkpoint APC"; pixel_x = -24; pixel_y = 0},/obj/machinery/airalarm{pixel_y = 28},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/structure/closet/secure_closet/security/med,/turf/open/floor/plasteel/red/side{dir = 9},/area/security/checkpoint/medical) +"cel" = (/obj/machinery/recharger{pixel_y = 4},/obj/structure/table/reinforced,/obj/machinery/requests_console{department = "Security"; departmentType = 5; pixel_y = 30},/obj/machinery/light{dir = 1},/obj/machinery/camera{c_tag = "Security Post - Medbay"; dir = 2; network = list("SS13","Medbay")},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/checkpoint/medical) +"cem" = (/obj/item/weapon/pen,/obj/structure/table/reinforced,/obj/structure/reagent_dispensers/peppertank{pixel_x = 30; pixel_y = 0},/obj/item/weapon/folder/red,/obj/item/weapon/book/manual/wiki/security_space_law{pixel_x = 3; pixel_y = 4},/obj/machinery/newscaster/security_unit{pixel_y = 32},/obj/item/weapon/screwdriver{pixel_y = 10},/obj/item/device/radio/off,/turf/open/floor/plasteel/red/side{dir = 5},/area/security/checkpoint/medical) +"cen" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/medical/medbay{name = "Medbay Central"}) +"ceo" = (/obj/structure/sign/bluecross_2,/turf/closed/wall,/area/medical/medbay{name = "Medbay Central"}) +"cep" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/door/firedoor,/turf/open/floor/plasteel/white/side{dir = 2},/area/medical/medbay{name = "Medbay Central"}) +"ceq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/turf/open/floor/plasteel/white/side{dir = 2},/area/medical/medbay{name = "Medbay Central"}) +"cer" = (/obj/structure/sign/directions/security{desc = "A direction sign, pointing out which way the security department is."; dir = 1; icon_state = "direction_sec"; pixel_x = 0; pixel_y = 8},/obj/structure/sign/directions/engineering{desc = "A direction sign, pointing out which way the engineering department is."; dir = 4; icon_state = "direction_eng"; pixel_y = 0},/obj/structure/sign/directions/engineering{desc = "A direction sign, pointing out which way the bridge is."; dir = 1; icon_state = "direction_bridge"; name = "bridge"; pixel_y = -8},/turf/closed/wall,/area/medical/medbay{name = "Medbay Central"}) +"ces" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass,/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/aft) +"cet" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass,/turf/open/floor/plasteel,/area/hallway/primary/aft) +"ceu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass,/turf/open/floor/plasteel/purple/corner{dir = 2},/area/hallway/primary/aft) +"cev" = (/obj/structure/sign/directions/engineering{desc = "A direction sign, pointing out which way the medical department is."; dir = 8; icon_state = "direction_med"; name = "medical department"; pixel_y = 8},/obj/structure/sign/directions/engineering{desc = "A direction sign, pointing out which way the escape arm is."; icon_state = "direction_evac"; name = "escape arm"},/obj/structure/sign/directions/engineering{desc = "A direction sign, pointing out which way the research department is."; dir = 4; icon_state = "direction_sci"; name = "research department"; pixel_y = -8},/turf/closed/wall,/area/medical/research{name = "Research Division"}) +"cew" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/medical/research{name = "Research Division"}) +"cex" = (/obj/structure/sign/science,/turf/closed/wall,/area/medical/research{name = "Research Division"}) +"cey" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white/side{dir = 2},/area/medical/research{name = "Research Division"}) +"cez" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/white/side{dir = 2},/area/medical/research{name = "Research Division"}) +"ceA" = (/turf/closed/wall,/area/medical/research{name = "Research Division"}) +"ceB" = (/turf/closed/wall,/area/security/checkpoint/science{name = "Security Post - Research Division"}) +"ceC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/aft{name = "Aft Maintenance"}) +"ceD" = (/obj/item/weapon/reagent_containers/food/snacks/grown/wheat,/obj/item/weapon/reagent_containers/food/snacks/grown/watermelon,/obj/item/weapon/reagent_containers/food/snacks/grown/citrus/orange,/obj/item/weapon/reagent_containers/food/snacks/grown/grapes,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/structure/table/glass,/turf/open/floor/plasteel/hydrofloor,/area/hallway/primary/central) +"ceE" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/hydrofloor,/area/hallway/primary/central) +"ceF" = (/obj/item/weapon/cultivator,/obj/item/weapon/crowbar,/obj/item/device/plant_analyzer,/obj/item/weapon/reagent_containers/glass/bucket,/obj/structure/table/glass,/turf/open/floor/plasteel/hydrofloor,/area/hallway/primary/central) +"ceG" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/open/floor/plasteel/green/side{dir = 9},/area/hydroponics) +"ceH" = (/obj/effect/landmark/start{name = "Botanist"},/turf/open/floor/plasteel/green/side{dir = 8},/area/hydroponics) +"ceI" = (/obj/machinery/biogenerator,/obj/machinery/light_switch{pixel_x = 26; pixel_y = 0},/turf/open/floor/plasteel/warning{dir = 10},/area/hydroponics) +"ceJ" = (/obj/structure/closet/secure_closet/hydroponics,/obj/machinery/light_switch{pixel_x = -26; pixel_y = 0},/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) +"ceK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/sign/poster{pixel_x = 32; pixel_y = 0},/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) +"ceL" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plating{icon_state = "platingdmg1"},/area/maintenance/starboard) +"ceM" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard) +"ceN" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/starboard) +"ceO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plating,/area/maintenance/starboard) +"ceP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/maintenance/incinerator) +"ceQ" = (/obj/machinery/door/airlock/maintenance{name = "Incinerator Access"; req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/incinerator) +"ceR" = (/turf/closed/wall,/area/maintenance/incinerator) +"ceS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 5},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -30},/turf/open/floor/plasteel/caution{dir = 8},/area/atmos) +"ceT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 10},/turf/open/floor/plasteel,/area/atmos) +"ceU" = (/obj/machinery/atmospherics/components/binary/pump{dir = 4; name = "N2 to Pure"},/turf/open/floor/plasteel,/area/atmos) +"ceV" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/turf/open/floor/plasteel,/area/atmos) +"ceW" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible,/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/turf/open/floor/plasteel,/area/atmos) +"ceX" = (/obj/machinery/atmospherics/pipe/manifold/yellow/visible{dir = 1},/turf/open/floor/plasteel,/area/atmos) +"ceY" = (/obj/machinery/atmospherics/pipe/manifold/yellow/visible{dir = 4},/obj/machinery/meter,/turf/open/floor/plasteel,/area/atmos) +"ceZ" = (/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/green/visible,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 8},/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/turf/open/floor/plasteel/caution{dir = 4},/area/atmos) +"cfa" = (/obj/structure/reagent_dispensers/fueltank,/obj/structure/sign/vacuum{pixel_x = -32},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/abandoned) +"cfb" = (/obj/machinery/vending/coffee{pixel_x = -2; use_power = 0},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"cfc" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"cfd" = (/obj/structure/chair,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"cfe" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"cff" = (/obj/structure/chair/office/light{dir = 4},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"cfg" = (/obj/structure/table,/obj/item/weapon/folder/blue,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/item/device/gps{gpstag = "NTREC1"; pixel_x = -1; pixel_y = 2},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"cfh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating/airless,/area/maintenance/portsolar) +"cfi" = (/obj/machinery/door/airlock/maintenance{name = "Storage Room"; req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cfj" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/bluegrid,/area/maintenance/aft{name = "Aft Maintenance"}) +"cfk" = (/turf/open/floor/bluegrid,/area/maintenance/aft{name = "Aft Maintenance"}) +"cfl" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/aft{name = "Aft Maintenance"}) +"cfm" = (/obj/structure/closet/firecloset,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cfn" = (/obj/machinery/space_heater,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cfo" = (/obj/machinery/light/small{dir = 1},/obj/structure/mopbucket,/obj/item/weapon/mop,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cfp" = (/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/hand_labeler,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cfq" = (/obj/item/weapon/cigbutt,/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/aft{name = "Aft Maintenance"}) +"cfr" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=4"; dir = 4; freq = 1400; location = "Medbay"},/obj/structure/plasticflaps{opacity = 1},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/window/northleft{dir = 8; name = "MuleBot Access"; req_access_txt = "50"},/turf/open/floor/plasteel/delivery,/area/medical/medbay2{name = "Medbay Storage"}) +"cfs" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/whiteblue/side{dir = 8},/area/medical/medbay2{name = "Medbay Storage"}) +"cft" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay2{name = "Medbay Storage"}) +"cfu" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay2{name = "Medbay Storage"}) +"cfv" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/white,/area/medical/medbay2{name = "Medbay Storage"}) +"cfw" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/whiteblue/side{dir = 4},/area/medical/medbay2{name = "Medbay Storage"}) +"cfx" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Medbay Security Post"; req_access_txt = "63"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red,/area/security/checkpoint/medical) +"cfy" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/light_switch{pixel_y = -25},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/checkpoint/medical) +"cfz" = (/turf/open/floor/plasteel,/area/security/checkpoint/medical) +"cfA" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/checkpoint/medical) +"cfB" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/security/checkpoint/medical) +"cfC" = (/obj/structure/table,/obj/item/weapon/pen,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/item/weapon/storage/firstaid/regular,/turf/open/floor/plasteel/whiteblue/side{dir = 1},/area/medical/medbay{name = "Medbay Central"}) +"cfD" = (/obj/machinery/light/small{dir = 1},/obj/structure/table,/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{pixel_x = 7; pixel_y = -3},/obj/item/weapon/reagent_containers/glass/bottle/charcoal{pixel_x = -4; pixel_y = -3},/obj/item/weapon/reagent_containers/syringe/epinephrine{pixel_x = 3; pixel_y = -2},/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 8; pixel_y = 2},/turf/open/floor/plasteel/whiteblue/side{dir = 1},/area/medical/medbay{name = "Medbay Central"}) +"cfE" = (/obj/structure/chair,/turf/open/floor/plasteel/whiteblue/side{dir = 1},/area/medical/medbay{name = "Medbay Central"}) +"cfF" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel/white,/area/medical/medbay{name = "Medbay Central"}) +"cfG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay{name = "Medbay Central"}) +"cfH" = (/obj/structure/chair,/obj/effect/landmark/start{name = "Assistant"},/turf/open/floor/plasteel/whiteblue/side{dir = 1},/area/medical/medbay{name = "Medbay Central"}) +"cfI" = (/obj/structure/table,/obj/item/weapon/storage/box/bodybags{pixel_x = 3; pixel_y = 2},/turf/open/floor/plasteel/whiteblue/side{dir = 1},/area/medical/medbay{name = "Medbay Central"}) +"cfJ" = (/obj/structure/table,/obj/item/stack/medical/gauze,/obj/item/stack/medical/ointment,/obj/item/stack/medical/bruise_pack,/turf/open/floor/plasteel/whiteblue/side{dir = 1},/area/medical/medbay{name = "Medbay Central"}) +"cfK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/aft) +"cfL" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"cfM" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/purple/corner{dir = 2},/area/hallway/primary/aft) +"cfN" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/clothing/glasses/science,/turf/open/floor/plasteel/whitepurple/side{dir = 1},/area/medical/research{name = "Research Division"}) +"cfO" = (/obj/structure/table,/obj/item/weapon/paper/pamphlet,/turf/open/floor/plasteel/whitepurple/side{dir = 1},/area/medical/research{name = "Research Division"}) +"cfP" = (/obj/structure/chair,/obj/effect/landmark/start{name = "Assistant"},/turf/open/floor/plasteel/whitepurple/side{dir = 1},/area/medical/research{name = "Research Division"}) +"cfQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cfR" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cfS" = (/obj/structure/chair,/turf/open/floor/plasteel/whitepurple/side{dir = 1},/area/medical/research{name = "Research Division"}) +"cfT" = (/obj/structure/table,/obj/item/stack/cable_coil,/obj/item/device/assembly/igniter{pixel_x = -4; pixel_y = -4},/obj/item/weapon/screwdriver{pixel_y = 16},/obj/item/device/gps{gpstag = "RD0"},/turf/open/floor/plasteel/whitepurple/side{dir = 1},/area/medical/research{name = "Research Division"}) +"cfU" = (/obj/structure/table,/obj/item/weapon/stock_parts/console_screen,/obj/item/weapon/electronics/airlock,/obj/item/device/assembly/timer{pixel_x = -4; pixel_y = 2},/turf/open/floor/plasteel/whitepurple/side{dir = 1},/area/medical/research{name = "Research Division"}) +"cfV" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 4},/obj/item/weapon/pen,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/light/small{dir = 1},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/camera{c_tag = "Research Division - Lobby"; dir = 2; network = list("SS13","RD")},/turf/open/floor/plasteel/whitepurple/side{dir = 1},/area/medical/research{name = "Research Division"}) +"cfW" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 4},/obj/machinery/light_switch{pixel_x = -27; pixel_y = 6},/obj/machinery/newscaster/security_unit{pixel_y = 32},/turf/open/floor/plasteel/red/side{dir = 9},/area/security/checkpoint/science{name = "Security Post - Research Division"}) +"cfX" = (/obj/structure/table,/obj/machinery/requests_console{department = "Security"; departmentType = 5; pixel_y = 30},/obj/machinery/button/door{id = "Biohazard"; name = "Biohazard Shutter Control"; pixel_x = 0; pixel_y = 7; req_access_txt = "47"},/obj/machinery/button/door{desc = "A remote control switch for the medbay foyer."; id = "ResearchFoyer"; name = "Research Door Button"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = -2},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/checkpoint/science{name = "Security Post - Research Division"}) +"cfY" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/checkpoint/science{name = "Security Post - Research Division"}) +"cfZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/sign/poster{pixel_x = 32; pixel_y = 0},/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/aft{name = "Aft Maintenance"}) +"cga" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/open/floor/plasteel/hydrofloor,/area/hallway/primary/central) +"cgb" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/hydrofloor,/area/hallway/primary/central) +"cgc" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/hydrofloor,/area/hallway/primary/central) +"cgd" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{id_tag = ""; name = "Hydroponics"; req_access_txt = "35"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) +"cge" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/green/side{dir = 10},/area/hydroponics) +"cgf" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/green/side{dir = 6},/area/hydroponics) +"cgg" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/green/side{dir = 10},/area/hydroponics) +"cgh" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/green/side{dir = 2},/area/hydroponics) +"cgi" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/green/side{dir = 2},/area/hydroponics) +"cgj" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/bot{dir = 2},/area/hydroponics) +"cgk" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock{name = "Hydroponics Backroom"; req_access_txt = "35"; req_one_access_txt = "0"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/bot{dir = 2},/area/hydroponics) +"cgl" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) +"cgm" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) +"cgn" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/maintenance{name = "Hydroponics Maintenance"; req_access_txt = "35"; req_one_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/hydroponics) +"cgo" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/sortjunction{sortType = 21},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/starboard) +"cgp" = (/obj/structure/rack,/obj/item/weapon/extinguisher,/obj/item/clothing/mask/gas,/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/starboard) +"cgq" = (/obj/structure/closet,/obj/item/stack/cable_coil/random,/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/starboard) +"cgr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/light_switch{pixel_x = 0; pixel_y = 0},/turf/closed/wall,/area/maintenance/incinerator) +"cgs" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cgt" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/obj/structure/sign/deathsposal{pixel_x = 0; pixel_y = 32},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cgu" = (/obj/machinery/power/smes{capacity = 9e+006; charge = 10000},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cgv" = (/obj/machinery/door/window/northleft{dir = 1; icon_state = "left"; name = "Inner Pipe Access"; req_access_txt = "24"},/turf/open/floor/plasteel/black,/area/atmos) +"cgw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 5},/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/window/reinforced{dir = 1; pixel_y = 0},/turf/open/floor/plasteel/black,/area/atmos) +"cgx" = (/obj/machinery/atmospherics/components/trinary/filter{dir = 4; filter_type = "n2"; on = 1},/obj/structure/window/reinforced,/turf/open/floor/plasteel/red,/area/atmos) +"cgy" = (/obj/structure/window/reinforced,/obj/machinery/computer/atmos_control/tank{frequency = 1441; input_tag = "n2_in"; name = "Nitrogen Supply Control"; output_tag = "n2_out"; sensors = list("n2_sensor" = "Tank")},/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/general/visible{color = "#330000"},/turf/open/floor/plasteel/red,/area/atmos) +"cgz" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "Nitrogen Outlet"; on = 1},/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/turf/open/floor/plasteel/red,/area/atmos) +"cgA" = (/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/window/northleft{dir = 1; icon_state = "left"; name = "Inner Pipe Access"; req_access_txt = "24"},/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/turf/open/floor/plasteel/black,/area/atmos) +"cgB" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/components/trinary/filter{dir = 4; filter_type = "o2"; on = 1},/turf/open/floor/plasteel/blue,/area/atmos) +"cgC" = (/obj/structure/window/reinforced,/obj/machinery/computer/atmos_control/tank{frequency = 1441; input_tag = "o2_in"; name = "Oxygen Supply Control"; output_tag = "o2_out"; sensors = list("o2_sensor" = "Tank")},/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/turf/open/floor/plasteel/blue,/area/atmos) +"cgD" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "O2 to Airmix"; on = 1},/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/turf/open/floor/plasteel/blue,/area/atmos) +"cgE" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/machinery/door/window/northleft{dir = 1; icon_state = "left"; name = "Inner Pipe Access"; req_access_txt = "24"},/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "O2 to Pure"},/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/turf/open/floor/plasteel/black,/area/atmos) +"cgF" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/cyan/visible,/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/turf/open/floor/plasteel/barber{dir = 8},/area/atmos) +"cgG" = (/obj/structure/window/reinforced,/obj/machinery/computer/atmos_control/tank{frequency = 1441; input_tag = "air_in"; name = "Mixed Air Supply Control"; output_tag = "air_out"; sensors = list("air_sensor" = "Tank")},/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/turf/open/floor/plasteel/barber{dir = 8},/area/atmos) +"cgH" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "Air to Pure"},/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/turf/open/floor/plasteel/barber{dir = 8},/area/atmos) +"cgI" = (/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 9},/turf/open/floor/plasteel/barber{dir = 8},/area/atmos) +"cgJ" = (/obj/machinery/door/airlock/shuttle{name = "recovery shuttle interior airlock"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/abandoned) +"cgK" = (/obj/structure/chair{dir = 4},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"cgL" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/shaker,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"cgM" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = 3; pixel_y = 4},/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_x = -3; pixel_y = 4},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"cgN" = (/obj/structure/table,/obj/item/weapon/storage/fancy/donut_box,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"cgO" = (/obj/structure/chair{dir = 8},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"cgP" = (/obj/machinery/door/airlock/shuttle{name = "living quarters"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/abandoned) +"cgQ" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/item/roller{pixel_x = -3; pixel_y = 7},/obj/item/roller{pixel_x = 3; pixel_y = 4},/obj/item/weapon/reagent_containers/spray/cleaner,/obj/structure/table,/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"cgR" = (/obj/item/clothing/suit/bio_suit,/obj/item/clothing/suit/bio_suit,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/item/clothing/gloves/color/latex,/obj/item/clothing/gloves/color/latex,/obj/item/clothing/head/bio_hood,/obj/item/clothing/head/bio_hood,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/structure/table,/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"cgS" = (/obj/effect/decal/cleanable/blood/gibs/old,/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/ash{desc = "They look like human remains, and have clearly been gnawed at."; icon = 'icons/effects/blood.dmi'; icon_state = "remains"; name = "remains"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"cgT" = (/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/blood/gibs/limb,/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"cgU" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/item/clothing/gloves/color/black,/obj/item/clothing/gloves/color/black,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/suit/armor/vest,/obj/structure/table,/obj/item/clothing/head/helmet/swat/nanotrasen,/obj/item/clothing/head/helmet/swat/nanotrasen,/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"cgV" = (/obj/item/weapon/storage/toolbox/emergency{pixel_x = -3; pixel_y = 3},/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/storage/toolbox/emergency{pixel_x = 3; pixel_y = -3},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/structure/table,/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"cgW" = (/obj/machinery/door/airlock/shuttle{name = "bridge"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/abandoned) +"cgX" = (/obj/effect/decal/cleanable/blood/old,/obj/structure/chair/comfy/black{dir = 4},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"cgY" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/machinery/computer/shuttle/white_ship,/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"cgZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cha" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/aft{name = "Aft Maintenance"}) +"chb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"chc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"chd" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/aft{name = "Aft Maintenance"}) +"che" = (/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/aft{name = "Aft Maintenance"}) +"chf" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/light_construct{dir = 8},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"chg" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/aft{name = "Aft Maintenance"}) +"chh" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"chi" = (/obj/machinery/mecha_part_fabricator{dir = 2; name = "counterfeit exosuit fabricator"; req_access = null},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"chj" = (/obj/structure/rack,/obj/item/stack/sheet/cardboard,/obj/item/device/radio/off,/obj/structure/light_construct{dir = 1},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"chk" = (/obj/structure/closet,/obj/item/stack/sheet/metal{amount = 34},/obj/item/weapon/extinguisher/mini,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"chl" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/sortjunction{dir = 1; icon_state = "pipe-j1s"; sortType = 9},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"chm" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/aft{name = "Aft Maintenance"}) +"chn" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;5"},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cho" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/item/hand_labeler_refill,/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/aft{name = "Aft Maintenance"}) +"chp" = (/obj/item/weapon/reagent_containers/glass/bottle/morphine,/obj/item/trash/candy,/obj/structure/disposalpipe/segment{dir = 4},/obj/item/clothing/neck/stethoscope,/turf/open/floor/plating{icon_state = "platingdmg1"},/area/maintenance/aft{name = "Aft Maintenance"}) +"chq" = (/obj/item/weapon/storage/box/lights/mixed,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"chr" = (/obj/item/weapon/tank/internals/air,/obj/item/weapon/tank/internals/air,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/aft{name = "Aft Maintenance"}) +"chs" = (/obj/machinery/door/airlock{name = "Medbay Emergency Storage"; req_access_txt = "5"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/medical/medbay2{name = "Medbay Storage"}) +"cht" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/whiteblue/side{dir = 8},/area/medical/medbay2{name = "Medbay Storage"}) +"chu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay2{name = "Medbay Storage"}) +"chv" = (/obj/effect/landmark{name = "lightsout"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/open/floor/plasteel/white,/area/medical/medbay2{name = "Medbay Storage"}) +"chw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/white,/area/medical/medbay2{name = "Medbay Storage"}) +"chx" = (/obj/machinery/holopad,/obj/effect/landmark/start{name = "Medical Doctor"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/white,/area/medical/medbay2{name = "Medbay Storage"}) +"chy" = (/obj/machinery/camera{c_tag = "Medbay Storage"; dir = 8; network = list("SS13","Medbay")},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/limbgrower,/obj/item/weapon/reagent_containers/glass/beaker/synthflesh,/turf/open/floor/plasteel/whiteblue/side{dir = 4},/area/medical/medbay2{name = "Medbay Storage"}) +"chz" = (/obj/machinery/requests_console{announcementConsole = 0; department = "Medbay"; departmentType = 1; name = "Medbay RC"; pixel_x = 0; pixel_y = 0; pixel_z = 0},/turf/closed/wall,/area/security/checkpoint/medical) +"chA" = (/obj/machinery/computer/secure_data,/obj/machinery/computer/security/telescreen{desc = "Used for monitoring medbay to ensure patient safety."; dir = 1; name = "Medbay Monitor"; network = list("Medbay"); pixel_x = 0; pixel_y = -29},/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = -27; pixel_y = -10},/turf/open/floor/plasteel/red/side,/area/security/checkpoint/medical) +"chB" = (/obj/structure/chair/office/dark,/obj/machinery/button/door{desc = "A remote control switch for the medbay foyer."; id = "MedbayFoyer"; name = "Medbay Doors Control"; normaldoorcontrol = 1; pixel_x = 24; pixel_y = -24},/obj/effect/landmark/start/depsec/medical,/turf/open/floor/plasteel/red/side{dir = 6},/area/security/checkpoint/medical) +"chC" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/checkpoint/medical) +"chD" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/white,/area/medical/medbay{name = "Medbay Central"}) +"chE" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/medbay{name = "Medbay Central"}) +"chF" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay{name = "Medbay Central"}) +"chG" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/obj/machinery/holopad,/turf/open/floor/plasteel/white,/area/medical/medbay{name = "Medbay Central"}) +"chH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay{name = "Medbay Central"}) +"chI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay{name = "Medbay Central"}) +"chJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/white,/area/medical/medbay{name = "Medbay Central"}) +"chK" = (/turf/open/floor/plasteel/white,/area/medical/medbay{name = "Medbay Central"}) +"chL" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/white/side{dir = 8},/area/medical/medbay{name = "Medbay Central"}) +"chM" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/white/side{dir = 4},/area/medical/research{name = "Research Division"}) +"chN" = (/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"chO" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"chP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"chQ" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"chR" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/machinery/holopad,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"chS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"chT" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"chU" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/security/checkpoint/science{name = "Security Post - Research Division"}) +"chV" = (/obj/item/weapon/screwdriver{pixel_y = 10},/obj/item/device/radio/off,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/checkpoint/science{name = "Security Post - Research Division"}) +"chW" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/obj/structure/chair/office/dark{dir = 1},/obj/effect/landmark/start/depsec/science,/turf/open/floor/plasteel,/area/security/checkpoint/science{name = "Security Post - Research Division"}) +"chX" = (/obj/machinery/computer/secure_data,/obj/item/weapon/book/manual/wiki/security_space_law,/obj/machinery/computer/security/telescreen{desc = "Used for watching the RD's goons from the safety of his office."; dir = 8; name = "Research Monitor"; network = list("RD"); pixel_x = 28; pixel_y = 2},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/checkpoint/science{name = "Security Post - Research Division"}) +"chY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"chZ" = (/obj/machinery/vending/hydroseeds{slogan_delay = 700},/turf/open/floor/plasteel/vault,/area/hallway/primary/central) +"cia" = (/obj/structure/table,/obj/item/weapon/book/manual/hydroponics_pod_people,/obj/machinery/light,/obj/item/weapon/paper/hydroponics,/obj/machinery/camera{c_tag = "Hydroponics - Foyer"; dir = 1; network = list("SS13")},/obj/item/device/radio/intercom{pixel_y = -25},/turf/open/floor/plasteel/vault,/area/hallway/primary/central) +"cib" = (/obj/machinery/vending/hydronutrients,/turf/open/floor/plasteel/vault,/area/hallway/primary/central) +"cic" = (/obj/machinery/disposal/bin{pixel_x = -2; pixel_y = -2},/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/light_switch{pixel_y = -28},/turf/open/floor/plasteel/warning{dir = 5},/area/hydroponics) +"cid" = (/turf/open/floor/plasteel/warning{dir = 5},/area/hydroponics) +"cie" = (/obj/machinery/hydroponics/constructable,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/open/floor/plasteel/warning{dir = 1},/area/hydroponics) +"cif" = (/obj/machinery/hydroponics/constructable,/turf/open/floor/plasteel/warning{dir = 1},/area/hydroponics) +"cig" = (/obj/machinery/hydroponics/constructable,/obj/machinery/light,/obj/machinery/power/apc{dir = 2; name = "Hydroponics APC"; pixel_x = 0; pixel_y = -28},/obj/structure/cable/yellow,/turf/open/floor/plasteel/warning{dir = 1},/area/hydroponics) +"cih" = (/obj/machinery/hydroponics/constructable,/obj/machinery/airalarm{dir = 1; pixel_y = -22},/turf/open/floor/plasteel/warning{dir = 1},/area/hydroponics) +"cii" = (/obj/machinery/hydroponics/constructable,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/plasteel/warning{dir = 1},/area/hydroponics) +"cij" = (/obj/machinery/plantgenes,/turf/open/floor/plasteel/warning{dir = 9},/area/hydroponics) +"cik" = (/obj/item/weapon/wrench,/obj/item/clothing/suit/apron,/obj/item/clothing/tie/armband/hydro,/obj/structure/table/glass,/turf/open/floor/plasteel/warning{dir = 9},/area/hydroponics) +"cil" = (/obj/item/weapon/reagent_containers/spray/plantbgone{pixel_x = 0; pixel_y = 3},/obj/item/weapon/reagent_containers/spray/plantbgone{pixel_x = 8; pixel_y = 8},/obj/item/weapon/reagent_containers/spray/plantbgone{pixel_x = 13; pixel_y = 5},/obj/item/weapon/watertank,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/item/weapon/grenade/chem_grenade/antiweed,/obj/structure/table/glass,/turf/open/floor/plasteel/warning{dir = 1},/area/hydroponics) +"cim" = (/obj/machinery/door/window/eastright{dir = 1; name = "Hydroponics Delivery"; req_access_txt = "35"},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/delivery,/area/hydroponics) +"cin" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; dir = 8; freq = 1400; location = "Hydroponics"},/obj/structure/plasticflaps{opacity = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/bot{dir = 1},/area/hydroponics) +"cio" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/starboard) +"cip" = (/obj/machinery/atmospherics/components/unary/tank/toxins{dir = 4},/obj/effect/decal/cleanable/cobweb,/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"ciq" = (/obj/machinery/atmospherics/components/binary/pump{dir = 4; name = "plasma tank pump"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cir" = (/obj/structure/sink/kitchen{desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; name = "old sink"; pixel_y = 28},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 10},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cis" = (/obj/machinery/light{dir = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cit" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"ciu" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"civ" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/machinery/atmospherics/pipe/simple/general/visible{color = "#330000"; dir = 6},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"ciw" = (/obj/machinery/atmospherics/pipe/simple/general/visible{color = "#330000"; dir = 4},/turf/closed/wall/r_wall,/area/atmos) +"cix" = (/obj/machinery/atmospherics/pipe/simple/general/visible{color = "#330000"; dir = 4},/turf/open/floor/plasteel/black,/area/atmos) +"ciy" = (/obj/machinery/atmospherics/pipe/simple/green/visible,/obj/machinery/atmospherics/pipe/simple/general/visible{color = "#330000"; dir = 4},/turf/open/floor/plasteel/black,/area/atmos) +"ciz" = (/obj/machinery/atmospherics/pipe/simple/general/visible{color = "#330000"; dir = 9},/turf/open/floor/plasteel/black,/area/atmos) +"ciA" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible,/turf/open/floor/plasteel/black,/area/atmos) +"ciB" = (/turf/open/floor/plasteel/black,/area/atmos) +"ciC" = (/obj/machinery/atmospherics/pipe/simple/green/visible,/turf/open/floor/plasteel/black,/area/atmos) +"ciD" = (/obj/machinery/light,/turf/open/floor/plasteel/black,/area/atmos) +"ciE" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 8},/turf/open/floor/plasteel/black,/area/atmos) +"ciF" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/turf/open/floor/plasteel/black,/area/atmos) +"ciG" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 9},/obj/machinery/camera{c_tag = "Atmospherics - Starboard Aft"; dir = 1; network = list("SS13")},/turf/open/floor/plasteel/black,/area/atmos) +"ciH" = (/obj/machinery/door/airlock/external{req_access_txt = "24"; req_one_access_txt = "0"},/turf/open/floor/plating,/area/atmos) +"ciI" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = -32},/obj/machinery/light/small{dir = 1},/turf/open/floor/plating/warnplate{dir = 4},/area/atmos) +"ciJ" = (/turf/open/floor/plating,/area/atmos) +"ciK" = (/obj/machinery/door/window/northleft{dir = 8; icon_state = "left"; name = "glass door"; req_access_txt = "24"},/obj/machinery/door/window/northleft{dir = 4; icon_state = "left"; name = "glass door"; req_access_txt = "24"},/turf/open/floor/plating,/area/atmos) +"ciL" = (/obj/structure/reagent_dispensers/watertank,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/abandoned) +"ciM" = (/obj/machinery/vending/cola{pixel_x = -1; use_power = 0},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"ciN" = (/obj/structure/chair{dir = 1},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"ciO" = (/obj/structure/chair/office/light,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"ciP" = (/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/blood/gibs/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/item/clothing/head/centhat{desc = "There's a gouge through the top where something has clawed clean through it. Whoever was wearing it probably doesn't need a hat any more."; name = "\improper damaged CentCom hat"},/obj/effect/decal/cleanable/ash{desc = "They look like human remains, and have clearly been gnawed at."; icon = 'icons/effects/blood.dmi'; icon_state = "remains"; name = "remains"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/abandoned) +"ciQ" = (/obj/item/weapon/phone{pixel_x = -3; pixel_y = 3},/obj/item/weapon/cigbutt/cigarbutt{pixel_x = 5; pixel_y = -1},/obj/structure/table,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"ciR" = (/obj/structure/lattice/catwalk,/obj/structure/cable,/turf/open/space,/area/solar/port) +"ciS" = (/obj/structure/girder,/obj/structure/grille,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"ciT" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"ciU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/aft{name = "Aft Maintenance"}) +"ciV" = (/obj/machinery/door/airlock/maintenance{name = "Storage Room"; req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"ciW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/aft{name = "Aft Maintenance"}) +"ciX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"ciY" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"ciZ" = (/obj/structure/closet,/obj/item/stack/sheet/glass{amount = 12},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cja" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cjb" = (/obj/item/trash/semki,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cjc" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cjd" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cje" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 1},/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cjf" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/structure/closet/firecloset,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cjg" = (/obj/machinery/light_switch{pixel_x = -26; pixel_y = 0},/obj/machinery/light/small{dir = 8},/obj/structure/closet/l3closet,/turf/open/floor/plasteel/whiteblue/side{dir = 10},/area/medical/medbay2{name = "Medbay Storage"}) +"cjh" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/closet/l3closet,/turf/open/floor/plasteel/whiteblue/side{dir = 2},/area/medical/medbay2{name = "Medbay Storage"}) +"cji" = (/obj/item/weapon/storage/box/bodybags{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/rxglasses{pixel_x = 1; pixel_y = 1},/obj/item/weapon/reagent_containers/spray/cleaner,/obj/structure/table/glass,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/turf/open/floor/plasteel/whiteblue/corner{dir = 8},/area/medical/medbay2{name = "Medbay Storage"}) +"cjj" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay2{name = "Medbay Storage"}) +"cjk" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/white,/area/medical/medbay2{name = "Medbay Storage"}) +"cjl" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/whiteblue/corner{dir = 4},/area/medical/medbay2{name = "Medbay Storage"}) +"cjm" = (/obj/item/weapon/storage/belt/medical{pixel_x = 0; pixel_y = 2},/obj/item/weapon/storage/belt/medical{pixel_x = 0; pixel_y = 2},/obj/item/weapon/storage/belt/medical{pixel_x = 0; pixel_y = 2},/obj/item/clothing/neck/stethoscope,/obj/item/clothing/neck/stethoscope,/obj/item/weapon/gun/syringe,/obj/structure/table/glass,/turf/open/floor/plasteel/whiteblue/side{dir = 5},/area/medical/medbay2{name = "Medbay Storage"}) +"cjn" = (/turf/closed/wall,/area/medical/medbay{name = "Medbay Central"}) +"cjo" = (/obj/machinery/computer/crew,/turf/open/floor/plasteel/vault,/area/medical/medbay{name = "Medbay Central"}) +"cjp" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/shower{dir = 4; icon_state = "shower"; name = "emergency shower"},/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/open/floor/plasteel/white,/area/medical/medbay{name = "Medbay Central"}) +"cjq" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel/white,/area/medical/medbay{name = "Medbay Central"}) +"cjr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay{name = "Medbay Central"}) +"cjs" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/mob/living/simple_animal/bot/medbot{auto_patrol = 1; desc = "A little medical robot, officially part of the NanoTrasen medical inspectorate. He looks somewhat underwhelmed."; name = "Inspector Johnson"},/turf/open/floor/plasteel/white,/area/medical/medbay{name = "Medbay Central"}) +"cjt" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/white,/area/medical/medbay{name = "Medbay Central"}) +"cju" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel/white,/area/medical/medbay{name = "Medbay Central"}) +"cjv" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plasteel/white,/area/medical/medbay{name = "Medbay Central"}) +"cjw" = (/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/white/side{dir = 8},/area/medical/medbay{name = "Medbay Central"}) +"cjx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/aft) +"cjy" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"cjz" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel/purple/corner{dir = 2},/area/hallway/primary/aft) +"cjA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cjB" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cjC" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cjD" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cjE" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cjF" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cjG" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/security/checkpoint/science{name = "Security Post - Research Division"}) +"cjH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/checkpoint/science{name = "Security Post - Research Division"}) +"cjI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel,/area/security/checkpoint/science{name = "Security Post - Research Division"}) +"cjJ" = (/obj/structure/reagent_dispensers/peppertank{pixel_x = 30; pixel_y = 0},/obj/structure/chair{dir = 8},/obj/machinery/camera{c_tag = "Security Post - Research Division"; dir = 8; network = list("SS13","RD"); pixel_x = 0},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/checkpoint/science{name = "Security Post - Research Division"}) +"cjK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cjL" = (/obj/machinery/door/airlock/maintenance{name = "Hydroponics Maintenance"; req_access_txt = "35"; req_one_access_txt = "0"},/turf/open/floor/plating,/area/hydroponics) +"cjM" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/disposalpipe/segment,/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/starboard) +"cjN" = (/obj/item/device/flashlight,/turf/open/floor/plating,/area/maintenance/starboard) +"cjO" = (/obj/structure/closet/crate,/obj/item/weapon/coin/silver,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating/warnplate,/area/maintenance/starboard) +"cjP" = (/obj/structure/reagent_dispensers/watertank,/obj/item/weapon/storage/box/lights/mixed,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating/warnplate,/area/maintenance/starboard) +"cjQ" = (/obj/structure/sign/nosmoking_2{pixel_x = -28},/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4; name = "input gas connector port"},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cjR" = (/obj/machinery/atmospherics/components/binary/pump{dir = 4; name = "input port pump"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cjS" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 4; initialize_directions = 11},/obj/machinery/meter,/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cjT" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/mob/living/simple_animal/mouse,/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cjU" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cjV" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cjW" = (/obj/structure/sign/fire{pixel_x = 32; pixel_y = 0},/obj/machinery/atmospherics/components/binary/pump{dir = 2; name = "Fuel Pipe to Incinerator"; on = 0},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cjX" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/green/visible,/turf/open/floor/plating,/area/atmos) +"cjY" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/yellow/visible,/turf/open/floor/plating,/area/atmos) +"cjZ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/cyan/visible,/turf/open/floor/plating,/area/atmos) +"cka" = (/obj/machinery/vending/snack{pixel_x = -1; use_power = 0},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"ckb" = (/obj/structure/sign/science{pixel_y = -32},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/abandoned) +"ckc" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/item/device/megaphone,/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"ckd" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/item/device/mass_spectrometer,/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"cke" = (/obj/structure/table,/obj/item/device/radio/off{pixel_y = 6},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"ckf" = (/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port) +"ckg" = (/obj/machinery/door/airlock/external{req_access_txt = "13"},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"ckh" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/aft{name = "Aft Maintenance"}) +"cki" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"ckj" = (/obj/structure/girder,/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"ckk" = (/obj/structure/girder,/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"ckl" = (/obj/structure/rack,/obj/item/weapon/screwdriver{pixel_y = 16},/obj/item/weapon/hand_labeler,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"ckm" = (/obj/structure/rack,/obj/item/stack/cable_coil{pixel_x = -1; pixel_y = -3},/obj/item/weapon/wrench,/obj/item/device/flashlight/seclite,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"ckn" = (/obj/structure/rack,/obj/item/stack/rods{amount = 23},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cko" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/weapon/folder/white,/obj/item/weapon/pen,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"ckp" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"ckq" = (/obj/structure/grille,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"ckr" = (/turf/closed/wall,/area/medical/sleeper{name = "Sleepers"}) +"cks" = (/obj/item/weapon/storage/firstaid/regular{pixel_x = 3; pixel_y = -3},/obj/item/weapon/storage/firstaid/fire{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/fire{pixel_x = -3; pixel_y = -3},/obj/structure/table/glass,/turf/open/floor/plasteel/whiteblue/side{dir = 8},/area/medical/medbay2{name = "Medbay Storage"}) +"ckt" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/white,/area/medical/medbay2{name = "Medbay Storage"}) +"cku" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel/white,/area/medical/medbay2{name = "Medbay Storage"}) +"ckv" = (/obj/item/weapon/storage/firstaid/regular{pixel_x = 3; pixel_y = -3},/obj/item/weapon/storage/firstaid/toxin{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/toxin,/obj/item/weapon/storage/firstaid/toxin{pixel_x = -3; pixel_y = -3},/obj/structure/table/glass,/turf/open/floor/plasteel/whiteblue/side{dir = 4},/area/medical/medbay2{name = "Medbay Storage"}) +"ckw" = (/obj/structure/sink{dir = 8; icon_state = "sink"; pixel_x = -12; pixel_y = 2},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/obj/machinery/firealarm{dir = 8; pixel_x = -26; pixel_y = 28},/obj/machinery/light{dir = 1},/obj/machinery/newscaster{pixel_x = -30; pixel_y = 0},/turf/open/floor/plasteel/whiteblue/side{dir = 9},/area/medical/medbay{name = "Medbay Central"}) +"ckx" = (/obj/structure/chair/office/light{dir = 4},/obj/effect/landmark/start{name = "Medical Doctor"},/obj/machinery/button/door{desc = "A remote control switch for the medbay foyer."; id = "MedbayFoyer"; name = "Medbay Doors Control"; normaldoorcontrol = 1; pixel_x = 24; pixel_y = 24},/turf/open/floor/plasteel/whiteblue/side{dir = 5},/area/medical/medbay{name = "Medbay Central"}) +"cky" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/white,/obj/item/weapon/folder/white,/obj/machinery/door/firedoor,/obj/item/weapon/reagent_containers/glass/bottle/epinephrine,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/pen,/turf/open/floor/plasteel/whitegreen,/area/medical/medbay{name = "Medbay Central"}) +"ckz" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel/whiteblue/side{dir = 2},/area/medical/medbay{name = "Medbay Central"}) +"ckA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/whiteblue/side{dir = 2},/area/medical/medbay{name = "Medbay Central"}) +"ckB" = (/obj/structure/bed/roller,/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = -30},/obj/machinery/camera{c_tag = "Medbay Foyer"; dir = 1; network = list("SS13","Medbay")},/turf/open/floor/plasteel/whiteblue/side{dir = 2},/area/medical/medbay{name = "Medbay Central"}) +"ckC" = (/obj/machinery/light,/obj/structure/bed/roller,/turf/open/floor/plasteel/whiteblue/side{dir = 2},/area/medical/medbay{name = "Medbay Central"}) +"ckD" = (/obj/structure/bed/roller,/turf/open/floor/plasteel/whiteblue/side{dir = 2},/area/medical/medbay{name = "Medbay Central"}) +"ckE" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-11"},/turf/open/floor/plasteel/whiteyellow/side{dir = 2},/area/medical/medbay{name = "Medbay Central"}) +"ckF" = (/turf/open/floor/plasteel/whiteyellow/side{dir = 2},/area/medical/medbay{name = "Medbay Central"}) +"ckG" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/firealarm{dir = 1; pixel_x = 26; pixel_y = -26},/turf/open/floor/plasteel/whiteyellow/side{dir = 2},/area/medical/medbay{name = "Medbay Central"}) +"ckH" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/hallway/primary/aft) +"ckI" = (/obj/machinery/autolathe{icon_state = "autolathe"; name = "public autolathe"},/turf/open/floor/plasteel/whitepurple/side{dir = 2},/area/medical/research{name = "Research Division"}) +"ckJ" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/turf/open/floor/plasteel/whitepurple/side{dir = 2},/area/medical/research{name = "Research Division"}) +"ckK" = (/obj/structure/table,/obj/item/device/paicard,/obj/machinery/newscaster{pixel_x = -1; pixel_y = -29},/turf/open/floor/plasteel/whitepurple/side{dir = 2},/area/medical/research{name = "Research Division"}) +"ckL" = (/obj/structure/table,/obj/item/weapon/stock_parts/cell/potato,/obj/machinery/light,/turf/open/floor/plasteel/whitepurple/side{dir = 2},/area/medical/research{name = "Research Division"}) +"ckM" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 4},/turf/open/floor/plasteel/whitepurple/side{dir = 2},/area/medical/research{name = "Research Division"}) +"ckN" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 4},/turf/open/floor/plasteel/whitepurple/side{dir = 2},/area/medical/research{name = "Research Division"}) +"ckO" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -30},/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-08"; layer = 4.1},/turf/open/floor/plasteel/whitepurple/side{dir = 2},/area/medical/research{name = "Research Division"}) +"ckP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/plasteel/whitepurple/side{dir = 2},/area/medical/research{name = "Research Division"}) +"ckQ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/open/floor/plasteel/whitepurple/side{dir = 2},/area/medical/research{name = "Research Division"}) +"ckR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/checkpoint/science{name = "Security Post - Research Division"}) +"ckS" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/security/checkpoint/science{name = "Security Post - Research Division"}) +"ckT" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/obj/machinery/light{dir = 4},/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/checkpoint/science{name = "Security Post - Research Division"}) +"ckU" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"ckV" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"ckW" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating{icon_state = "platingdmg2"},/area/maintenance/aft{name = "Aft Maintenance"}) +"ckX" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plating/warnplate{dir = 2},/area/maintenance/aft{name = "Aft Maintenance"}) +"ckY" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/aft{name = "Aft Maintenance"}) +"ckZ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating{icon_state = "platingdmg1"},/area/maintenance/aft{name = "Aft Maintenance"}) +"cla" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"clb" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/sign/poster{pixel_y = 32},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"clc" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/aft{name = "Aft Maintenance"}) +"cld" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/aft{name = "Aft Maintenance"}) +"cle" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"clf" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/aft{name = "Aft Maintenance"}) +"clg" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/open/floor/plating,/area/maintenance/starboard) +"clh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/starboard) +"cli" = (/obj/machinery/door/airlock/maintenance{name = "Storage Room"; req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard) +"clj" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/starboard) +"clk" = (/obj/machinery/portable_atmospherics/canister,/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4; name = "input gas connector port"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cll" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/general/visible,/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"clm" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cln" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"clo" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/components/binary/pump{dir = 4; name = "input port pump"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"clp" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 4; initialize_directions = 11},/obj/machinery/meter,/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"clq" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/incinerator) +"clr" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/green/visible,/turf/open/space,/area/space) +"cls" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/yellow/visible,/turf/open/space,/area/space) +"clt" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/manifold/yellow/visible{dir = 8},/turf/open/space,/area/space) +"clu" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 9},/turf/open/space,/area/space) +"clv" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/cyan/visible,/turf/open/space,/area/space) +"clw" = (/obj/structure/sign/botany,/turf/closed/wall/mineral/titanium,/area/shuttle/abandoned) +"clx" = (/obj/machinery/door/airlock/shuttle{name = "hydroponics"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/abandoned) +"cly" = (/obj/machinery/door/airlock/shuttle{name = "kitchen"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/abandoned) +"clz" = (/obj/machinery/door/airlock/shuttle{name = "laboratory"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/abandoned) +"clA" = (/obj/structure/sign/bluecross_2,/turf/closed/wall/mineral/titanium,/area/shuttle/abandoned) +"clB" = (/obj/machinery/door/airlock/shuttle{icon_state = "door_closed"; name = "medbay"; welded = 0},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/abandoned) +"clC" = (/obj/structure/lattice/catwalk,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/space,/area/solar/port) +"clD" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/external{req_access_txt = "13"},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"clE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/aft{name = "Aft Maintenance"}) +"clF" = (/obj/item/trash/pistachios,/obj/structure/closet,/obj/item/weapon/stock_parts/console_screen,/obj/item/weapon/extinguisher,/obj/item/weapon/storage/belt/utility,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"clG" = (/obj/item/weapon/storage/box,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"clH" = (/obj/structure/closet/crate,/obj/item/weapon/reagent_containers/dropper,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"clI" = (/obj/structure/closet/emcloset,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"clJ" = (/obj/structure/closet/wardrobe/pjs,/turf/open/floor/plasteel/vault,/area/medical/sleeper{name = "Sleepers"}) +"clK" = (/obj/structure/closet/wardrobe/pjs,/obj/machinery/airalarm{pixel_y = 24},/turf/open/floor/plasteel/vault,/area/medical/sleeper{name = "Sleepers"}) +"clL" = (/obj/machinery/computer/med_data,/obj/machinery/light{dir = 1},/obj/structure/sign/nosmoking_2{pixel_x = 0; pixel_y = 30},/turf/open/floor/plasteel/vault,/area/medical/sleeper{name = "Sleepers"}) +"clM" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/weapon/folder/white,/obj/item/weapon/pen,/obj/machinery/power/apc{dir = 1; name = "Sleeper Room APC"; pixel_y = 24},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/item/clothing/neck/stethoscope,/turf/open/floor/plasteel/vault,/area/medical/sleeper{name = "Sleepers"}) +"clN" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 4},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 23},/turf/open/floor/plasteel/vault,/area/medical/sleeper{name = "Sleepers"}) +"clO" = (/obj/item/weapon/storage/firstaid/regular{pixel_x = 3; pixel_y = -3},/obj/item/weapon/storage/firstaid/brute{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/brute,/obj/item/weapon/storage/firstaid/brute{pixel_x = -3; pixel_y = -3},/obj/machinery/power/apc{dir = 2; name = "Medbay Storage APC"; pixel_y = -24},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/light_switch{pixel_x = -26; pixel_y = 0},/obj/machinery/light/small,/obj/structure/table/glass,/turf/open/floor/plasteel/whiteblue/side{dir = 10},/area/medical/medbay2{name = "Medbay Storage"}) +"clP" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/whiteblue/side{dir = 2},/area/medical/medbay2{name = "Medbay Storage"}) +"clQ" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/mob/living/simple_animal/bot/cleanbot{name = "Scrubs, MD"; on = 0},/turf/open/floor/plasteel/whiteblue/side{dir = 2},/area/medical/medbay2{name = "Medbay Storage"}) +"clR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/whiteblue/side{dir = 2},/area/medical/medbay2{name = "Medbay Storage"}) +"clS" = (/obj/item/weapon/storage/firstaid/regular{pixel_x = 3; pixel_y = -3},/obj/item/weapon/storage/firstaid/o2{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/o2,/obj/item/weapon/storage/firstaid/o2{pixel_x = -3; pixel_y = -3},/obj/structure/table/glass,/turf/open/floor/plasteel/whiteblue/side{dir = 6},/area/medical/medbay2{name = "Medbay Storage"}) +"clT" = (/obj/machinery/airalarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/whiteblue/side{dir = 10},/area/medical/medbay{name = "Medbay Central"}) +"clU" = (/obj/structure/chair/office/light{dir = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/whiteblue/side{dir = 6},/area/medical/medbay{name = "Medbay Central"}) +"clV" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor,/obj/item/weapon/reagent_containers/food/drinks/britcup,/turf/open/floor/plasteel/whitegreen,/area/medical/medbay{name = "Medbay Central"}) +"clW" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel/whiteblue,/area/medical/medbay{name = "Medbay Central"}) +"clX" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/open/floor/plasteel/whiteblue,/area/medical/medbay{name = "Medbay Central"}) +"clY" = (/obj/structure/sign/directions/medical{pixel_y = -7},/turf/closed/wall,/area/medical/chemistry) +"clZ" = (/obj/structure/sign/chemistry,/turf/closed/wall,/area/medical/chemistry) +"cma" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/shutters/preopen{id = "chemistry_shutters"; name = "chemistry shutters"},/turf/open/floor/plating,/area/medical/chemistry) +"cmb" = (/obj/machinery/smartfridge/chemistry,/turf/closed/wall,/area/medical/chemistry) +"cmc" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/white,/obj/machinery/door/window/northleft{dir = 2; name = "Chemistry Desk"; req_access_txt = "5; 33"},/obj/machinery/door/firedoor,/obj/item/weapon/folder/white,/obj/machinery/door/poddoor/shutters/preopen{id = "chemistry_shutters"; name = "chemistry shutters"},/turf/open/floor/plasteel/whiteyellow{dir = 4},/area/medical/chemistry) +"cmd" = (/turf/closed/wall,/area/medical/chemistry) +"cme" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/aft) +"cmf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/hallway/primary/aft) +"cmg" = (/turf/closed/wall/r_wall,/area/toxins/lab) +"cmh" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/shutters/preopen{id = "research_shutters"; name = "research shutters"},/turf/open/floor/plating,/area/toxins/lab) +"cmi" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/obj/item/weapon/folder/white,/obj/item/weapon/folder/white,/obj/machinery/door/firedoor,/obj/machinery/door/window/eastright{dir = 2; name = "Research and Development Desk"; req_access_txt = "7"},/obj/machinery/door/poddoor/shutters/preopen{id = "research_shutters"; name = "research shutters"},/turf/open/floor/plating,/area/toxins/lab) +"cmj" = (/obj/structure/sign/directions/science{pixel_y = -8},/turf/closed/wall/r_wall,/area/toxins/lab) +"cmk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/obj/machinery/door/poddoor/preopen{id = "Biohazard"; name = "biohazard containment door"},/turf/open/floor/plasteel/delivery,/area/medical/research{name = "Research Division"}) +"cml" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/poddoor/preopen{id = "Biohazard"; name = "biohazard containment door"},/turf/open/floor/plasteel/delivery,/area/medical/research{name = "Research Division"}) +"cmm" = (/obj/machinery/power/apc{dir = 8; name = "Security Post - Research Division APC"; pixel_x = -24},/obj/structure/cable/yellow,/turf/open/floor/plasteel/red/side{dir = 10},/area/security/checkpoint/science{name = "Security Post - Research Division"}) +"cmn" = (/obj/structure/closet/secure_closet/security/science,/turf/open/floor/plasteel/red/side,/area/security/checkpoint/science{name = "Security Post - Research Division"}) +"cmo" = (/obj/structure/filingcabinet,/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/open/floor/plasteel/red/side{dir = 6},/area/security/checkpoint/science{name = "Security Post - Research Division"}) +"cmp" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating/warnplate{dir = 2},/area/maintenance/aft{name = "Aft Maintenance"}) +"cmq" = (/obj/item/weapon/cigbutt,/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/aft{name = "Aft Maintenance"}) +"cmr" = (/turf/closed/wall/r_wall,/area/medical/research{name = "Research Division"}) +"cms" = (/obj/machinery/door/airlock/maintenance{name = "Research Maintenance"; req_access_txt = "47"; req_one_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plating,/area/medical/research{name = "Research Division"}) +"cmt" = (/turf/closed/wall/r_wall,/area/toxins/explab) +"cmu" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cmv" = (/turf/open/floor/plating{icon_state = "platingdmg2"},/area/maintenance/aft{name = "Aft Maintenance"}) +"cmw" = (/obj/machinery/power/apc{dir = 8; name = "Incinerator APC"; pixel_x = -24; pixel_y = 0},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cmx" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cmy" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 6},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cmz" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 10},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cmA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cmB" = (/obj/machinery/airalarm{desc = "This particular atmos control unit appears to have no access restrictions."; dir = 8; icon_state = "alarm0"; locked = 0; name = "all-access air alarm"; pixel_x = 24; req_access = "0"; req_one_access = "0"},/obj/machinery/atmospherics/pipe/simple/general/visible,/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cmC" = (/turf/closed/wall/r_wall,/area/maintenance/incinerator) +"cmD" = (/obj/machinery/atmospherics/pipe/simple,/obj/machinery/meter,/obj/structure/grille,/turf/closed/wall/r_wall,/area/atmos) +"cmE" = (/obj/machinery/atmospherics/pipe/simple,/obj/machinery/meter{name = "Mixed Air Tank In"},/obj/structure/grille,/turf/closed/wall/r_wall,/area/atmos) +"cmF" = (/obj/machinery/atmospherics/pipe/simple,/obj/machinery/meter{name = "Mixed Air Tank Out"},/obj/structure/grille,/turf/closed/wall/r_wall,/area/atmos) +"cmG" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating,/area/atmos) +"cmH" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating,/area/atmos) +"cmI" = (/obj/item/weapon/storage/bag/plants/portaseeder,/obj/structure/table,/obj/item/weapon/reagent_containers/spray/plantbgone{pixel_x = 13; pixel_y = 5},/obj/item/weapon/reagent_containers/glass/bottle/nutrient/ez,/obj/item/weapon/reagent_containers/glass/bottle/nutrient/ez,/obj/item/weapon/reagent_containers/glass/bottle/nutrient/ez,/obj/item/weapon/reagent_containers/glass/bottle/nutrient/rh{pixel_x = -2; pixel_y = 3},/obj/effect/decal/cleanable/cobweb,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"cmJ" = (/obj/machinery/biogenerator{idle_power_usage = 0; use_power = 0},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"cmK" = (/obj/machinery/vending/hydroseeds{pixel_x = 2; use_power = 0},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"cmL" = (/obj/machinery/processor,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"cmM" = (/obj/structure/kitchenspike,/obj/effect/decal/cleanable/blood/gibs/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"cmN" = (/obj/structure/table,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/obj/item/weapon/storage/box/donkpockets,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/cobweb/cobweb2,/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"cmO" = (/obj/effect/decal/cleanable/oil,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"cmP" = (/obj/machinery/sleeper{dir = 4; use_power = 0},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"cmQ" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/blood/empty{pixel_x = -3; pixel_y = -3},/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/random,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/xenoblood,/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"cmR" = (/obj/structure/table/optable,/obj/item/weapon/surgical_drapes,/obj/item/weapon/storage/firstaid/regular,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"cmS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port) +"cmT" = (/obj/structure/closet/emcloset{anchored = 1; desc = "It's a storage unit for emergency breath masks and O2 tanks, and is securely bolted in place."; name = "anchored emergency closet"},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/aft{name = "Aft Maintenance"}) +"cmU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cmV" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cmW" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cmX" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/sign/poster{pixel_y = 32},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cmY" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cmZ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/open/floor/plating/warnplate{dir = 2},/area/maintenance/aft{name = "Aft Maintenance"}) +"cna" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cnb" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/aft{name = "Aft Maintenance"}) +"cnc" = (/obj/machinery/door/airlock/maintenance{name = "Medbay Maintenance"; req_access_txt = "5"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/medical/sleeper{name = "Sleepers"}) +"cnd" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/whiteblue/side{dir = 9},/area/medical/sleeper{name = "Sleepers"}) +"cne" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/whiteblue/side{dir = 1},/area/medical/sleeper{name = "Sleepers"}) +"cnf" = (/obj/structure/chair/office/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/landmark/start{name = "Medical Doctor"},/turf/open/floor/plasteel/whiteblue/side{dir = 1},/area/medical/sleeper{name = "Sleepers"}) +"cng" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/whiteblue/side{dir = 1},/area/medical/sleeper{name = "Sleepers"}) +"cnh" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/machinery/shower{dir = 8; icon_state = "shower"; name = "emergency shower"},/turf/open/floor/plasteel/whiteblue/side{dir = 5},/area/medical/sleeper{name = "Sleepers"}) +"cni" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Medbay Storage"; req_access_txt = "5"},/turf/open/floor/plasteel/whiteblue,/area/medical/medbay2{name = "Medbay Storage"}) +"cnj" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/medical/medbay2{name = "Medbay Storage"}) +"cnk" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Medbay Storage"; req_access_txt = "5"},/turf/open/floor/plasteel/whiteblue,/area/medical/medbay2{name = "Medbay Storage"}) +"cnl" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Medbay Desk"; req_access_txt = "5"},/turf/open/floor/plasteel/whiteblue,/area/medical/medbay{name = "Medbay Central"}) +"cnm" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/medical/medbay{name = "Medbay Central"}) +"cnn" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{id_tag = "MedbayFoyer"; name = "Medbay"; req_access_txt = "5"},/turf/open/floor/plasteel/whiteblue,/area/medical/medbay{name = "Medbay Central"}) +"cno" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{id_tag = "MedbayFoyer"; name = "Medbay"; req_access_txt = "5"},/turf/open/floor/plasteel/whiteblue,/area/medical/medbay{name = "Medbay Central"}) +"cnp" = (/obj/machinery/chem_heater,/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/turf/open/floor/plasteel/whiteyellow/side{dir = 9},/area/medical/chemistry) +"cnq" = (/obj/machinery/disposal/bin{pixel_x = 0},/obj/structure/disposalpipe/trunk,/turf/open/floor/plasteel/whiteyellow/side{dir = 5},/area/medical/chemistry) +"cnr" = (/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 8; pixel_y = 2},/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 8; pixel_y = 2},/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/dropper,/obj/structure/table/glass,/turf/open/floor/plasteel/whiteyellow{dir = 4},/area/medical/chemistry) +"cns" = (/obj/structure/chair/office/light{dir = 1},/obj/effect/landmark/start{name = "Chemist"},/turf/open/floor/plasteel/whiteyellow{dir = 4},/area/medical/chemistry) +"cnt" = (/obj/machinery/chem_dispenser{layer = 2.7},/obj/machinery/button/door{id = "chemistry_shutters"; name = "chemistry shutters control"; pixel_x = 24; pixel_y = 24; req_access_txt = "5; 33"},/turf/open/floor/plasteel/whiteyellow{dir = 4},/area/medical/chemistry) +"cnu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/aft) +"cnv" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/hallway/primary/aft) +"cnw" = (/obj/structure/table,/obj/item/weapon/crowbar,/obj/item/weapon/wrench,/obj/item/clothing/mask/gas,/obj/item/device/multitool{pixel_x = 3},/turf/open/floor/plasteel/warning{dir = 4},/area/toxins/lab) +"cnx" = (/obj/structure/sink/kitchen{desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; name = "old sink"; pixel_y = 28},/turf/open/floor/plasteel/whitepurple/side{dir = 9},/area/toxins/lab) +"cny" = (/turf/open/floor/plasteel/whitepurple/side{dir = 1},/area/toxins/lab) +"cnz" = (/obj/structure/noticeboard{desc = "A board for pinning important notices upon."; name = "notice board"; pixel_x = 0; pixel_y = 31},/turf/open/floor/plasteel/whitepurple/side{dir = 1},/area/toxins/lab) +"cnA" = (/obj/structure/chair/office/light{dir = 1; pixel_y = 3},/obj/machinery/button/door{id = "research_shutters"; name = "research shutters control"; pixel_x = 28; pixel_y = 0; req_access_txt = "7"},/turf/open/floor/plasteel/whitepurple/side{dir = 5},/area/toxins/lab) +"cnB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Research Division"; req_access_txt = "0"; req_one_access_txt = "47"},/turf/open/floor/plasteel/delivery,/area/medical/research{name = "Research Division"}) +"cnC" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Research Division"; req_access_txt = "0"; req_one_access_txt = "47"},/turf/open/floor/plasteel/delivery,/area/medical/research{name = "Research Division"}) +"cnD" = (/turf/closed/wall/r_wall,/area/security/checkpoint/science{name = "Security Post - Research Division"}) +"cnE" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Security Post - Research Division"; req_access_txt = "63"},/turf/open/floor/plasteel/red,/area/security/checkpoint/science{name = "Security Post - Research Division"}) +"cnF" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;47"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cnG" = (/obj/item/weapon/paper,/obj/structure/sign/map/left{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-left-MS"; pixel_y = 32},/obj/machinery/computer/security/telescreen/entertainment{pixel_x = -32; pixel_y = 0},/obj/item/weapon/storage/box/donkpockets,/obj/structure/table/glass,/turf/open/floor/plasteel/cafeteria{dir = 5},/area/medical/research{name = "Research Division"}) +"cnH" = (/obj/structure/sign/map/right{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-right-MS"; pixel_y = 32},/obj/structure/table/glass,/obj/item/device/radio/off,/turf/open/floor/plasteel/cafeteria{dir = 5},/area/medical/research{name = "Research Division"}) +"cnI" = (/obj/machinery/ai_status_display{pixel_x = 0; pixel_y = 32},/obj/structure/chair/stool,/turf/open/floor/plasteel/cafeteria{dir = 5},/area/medical/research{name = "Research Division"}) +"cnJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/medical/research{name = "Research Division"}) +"cnK" = (/obj/machinery/vending/cigarette,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/structure/sign/poster{pixel_x = 32; pixel_y = 0},/turf/open/floor/plasteel/white/side{dir = 4},/area/medical/research{name = "Research Division"}) +"cnL" = (/turf/open/floor/engine,/area/toxins/explab) +"cnM" = (/obj/structure/sign/nosmoking_2{pixel_y = 32},/obj/machinery/camera{c_tag = "Experimentation Lab - Test Chamber"; dir = 2; network = list("SS13","RD")},/obj/machinery/light{dir = 1},/turf/open/floor/engine,/area/toxins/explab) +"cnN" = (/obj/item/device/radio/intercom{pixel_y = 25},/turf/open/floor/engine,/area/toxins/explab) +"cnO" = (/obj/machinery/space_heater,/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/aft{name = "Aft Maintenance"}) +"cnP" = (/obj/structure/closet/crate,/obj/item/weapon/storage/belt/utility,/obj/item/stack/cable_coil/random,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/starboard) +"cnQ" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/item/weapon/cane,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/starboard) +"cnR" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/starboard) +"cnS" = (/obj/structure/closet,/obj/item/device/flashlight,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/starboard) +"cnT" = (/obj/structure/reagent_dispensers/fueltank,/obj/item/weapon/storage/toolbox/emergency,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cnU" = (/obj/structure/reagent_dispensers/watertank,/obj/item/weapon/extinguisher,/obj/machinery/light/small,/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -31},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cnV" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/components/binary/valve{dir = 2; name = "output gas to space"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cnW" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -31},/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/canister,/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cnX" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 4},/obj/machinery/meter,/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cnY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cnZ" = (/obj/machinery/doorButtons/airlock_controller{idExterior = "incinerator_airlock_exterior"; idInterior = "incinerator_airlock_interior"; idSelf = "incinerator_access_control"; name = "Incinerator Access Console"; pixel_x = 8; pixel_y = -24; req_access_txt = "12"},/obj/machinery/button/ignition{id = "Incinerator"; pixel_x = 8; pixel_y = -36},/obj/machinery/computer/security/telescreen{desc = "Used for watching the turbine vent."; dir = 8; name = "turbine vent monitor"; network = list("Turbine"); pixel_x = 29; pixel_y = 0},/obj/machinery/button/door{id = "turbinevent"; name = "Turbine Vent Control"; pixel_x = -8; pixel_y = -36; req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/general/visible,/obj/machinery/button/door{id = "auxincineratorvent"; name = "Auxiliary Vent Control"; pixel_x = -8; pixel_y = -24; req_access_txt = "12"},/obj/machinery/computer/turbine_computer{id = "incineratorturbine"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"coa" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 1; frequency = 1441; id = "n2_in"},/turf/open/floor/engine/n2,/area/atmos) +"cob" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "n2_sensor"},/turf/open/floor/engine/n2,/area/atmos) +"coc" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 0; frequency = 1441; id_tag = "n2_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/open/floor/engine/n2,/area/atmos) +"cod" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 1; frequency = 1441; id = "o2_in"},/turf/open/floor/engine/o2,/area/atmos) +"coe" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "o2_sensor"},/turf/open/floor/engine/o2,/area/atmos) +"cof" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 0; frequency = 1441; id_tag = "o2_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/open/floor/engine/o2,/area/atmos) +"cog" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 1; frequency = 1441; id = "air_in"},/turf/open/floor/engine/air,/area/atmos) +"coh" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "air_sensor"},/turf/open/floor/engine/air,/area/atmos) +"coi" = (/obj/machinery/atmospherics/components/unary/vent_pump/high_volume{dir = 1; external_pressure_bound = 0; frequency = 1441; icon_state = "in"; id_tag = "air_out"; internal_pressure_bound = 2000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/open/floor/engine/air,/area/atmos) +"coj" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/components/unary/portables_connector/visible,/turf/open/floor/plating,/area/atmos) +"cok" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/components/unary/portables_connector/visible,/turf/open/floor/plating,/area/atmos) +"col" = (/obj/structure/table,/obj/item/weapon/wrench,/obj/item/weapon/crowbar,/obj/item/clothing/suit/apron,/obj/item/weapon/shovel/spade,/obj/item/weapon/cultivator,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/item/weapon/wirecutters,/obj/item/device/plant_analyzer,/obj/item/weapon/reagent_containers/glass/bucket,/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"com" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/abandoned) +"con" = (/obj/machinery/smartfridge{use_power = 0},/turf/closed/wall/mineral/titanium,/area/shuttle/abandoned) +"coo" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/abandoned) +"cop" = (/obj/effect/decal/cleanable/egg_smudge,/obj/effect/decal/cleanable/flour,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/abandoned) +"coq" = (/obj/structure/table,/obj/item/weapon/kitchen/rollingpin,/obj/item/weapon/kitchen/knife,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"cor" = (/obj/structure/chair/office/light,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/abandoned) +"cos" = (/obj/machinery/vending/wallmed{name = "Emergency NanoMed"; pixel_x = -28; pixel_y = 0; req_access_txt = "0"; use_power = 0},/obj/machinery/iv_drip{density = 0; pixel_x = -8},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/abandoned) +"cot" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/ash,/obj/effect/decal/cleanable/xenoblood,/turf/open/floor/mineral/titanium/blue,/area/shuttle/abandoned) +"cou" = (/obj/effect/decal/cleanable/xenoblood,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/ash{desc = "A pile of remains that look vaguely humanoid. The skull is abnormally elongated, and there are burns through some of the other bones."; icon = 'icons/effects/blood.dmi'; icon_state = "remainsxeno"; name = "remains"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/abandoned) +"cov" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/effect/decal/cleanable/xenoblood,/obj/effect/decal/cleanable/xenoblood/xgibs/limb,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/abandoned) +"cow" = (/obj/structure/cable,/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port) +"cox" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"coy" = (/turf/closed/wall,/area/medical/surgery) +"coz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/closed/wall,/area/medical/surgery) +"coA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/medical/surgery) +"coB" = (/obj/machinery/door/airlock/maintenance{name = "Medbay Maintenance"; req_access_txt = "5"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/turf/open/floor/plating,/area/medical/surgery) +"coC" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/whiteblue/side{dir = 8},/area/medical/sleeper{name = "Sleepers"}) +"coD" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/sleeper{name = "Sleepers"}) +"coE" = (/turf/open/floor/plasteel/white,/area/medical/sleeper{name = "Sleepers"}) +"coF" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/white,/area/medical/sleeper{name = "Sleepers"}) +"coG" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/whiteblue/side{dir = 4},/area/medical/sleeper{name = "Sleepers"}) +"coH" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor,/turf/open/floor/plasteel/whiteblue,/area/medical/sleeper{name = "Sleepers"}) +"coI" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/whiteblue/side{dir = 9},/area/medical/medbay{name = "Medbay Central"}) +"coJ" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/whiteblue/side{dir = 1},/area/medical/medbay{name = "Medbay Central"}) +"coK" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/open/floor/plasteel/whiteblue/side{dir = 1},/area/medical/medbay{name = "Medbay Central"}) +"coL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/whiteblue/side{dir = 1},/area/medical/medbay{name = "Medbay Central"}) +"coM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/sign/nosmoking_2{pixel_x = 0; pixel_y = 28},/turf/open/floor/plasteel/whiteblue/corner{dir = 1},/area/medical/medbay{name = "Medbay Central"}) +"coN" = (/obj/machinery/power/apc{dir = 1; name = "Medbay Central APC"; pixel_y = 24},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/camera{c_tag = "Medbay Hallway Fore"; dir = 2; network = list("SS13","Medbay")},/turf/open/floor/plasteel/whiteblue/corner{dir = 4},/area/medical/medbay{name = "Medbay Central"}) +"coO" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/open/floor/plasteel/whiteblue/side{dir = 1},/area/medical/medbay{name = "Medbay Central"}) +"coP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/whiteblue/corner{dir = 1},/area/medical/medbay{name = "Medbay Central"}) +"coQ" = (/obj/machinery/button/door{desc = "A remote control switch for the medbay foyer."; id = "MedbayFoyer"; name = "Medbay Exit Button"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = 26},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/whiteblue/corner{dir = 4},/area/medical/medbay{name = "Medbay Central"}) +"coR" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/whiteblue/side{dir = 1},/area/medical/medbay{name = "Medbay Central"}) +"coS" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel/whiteblue/side{dir = 1},/area/medical/medbay{name = "Medbay Central"}) +"coT" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Chemistry Lab"; req_access_txt = "5; 33"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/chemistry) +"coU" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/whiteyellow/side{dir = 8},/area/medical/chemistry) +"coV" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/whiteyellow/corner{dir = 4},/area/medical/chemistry) +"coW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/whiteyellow/side{dir = 1},/area/medical/chemistry) +"coX" = (/turf/open/floor/plasteel/whiteyellow/side{dir = 5},/area/medical/chemistry) +"coY" = (/obj/machinery/chem_master{layer = 2.7; pixel_x = -2},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/noticeboard{desc = "A board for pinning important notices upon. Probably helpful for keeping track of requests."; name = "requests board"; pixel_x = 32; pixel_y = 0},/turf/open/floor/plasteel/whiteyellow{dir = 4},/area/medical/chemistry) +"coZ" = (/obj/machinery/r_n_d/destructive_analyzer,/obj/machinery/airalarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/open/floor/plasteel/warning{dir = 1},/area/toxins/lab) +"cpa" = (/turf/open/floor/plasteel/warning{dir = 1},/area/toxins/lab) +"cpb" = (/obj/machinery/r_n_d/protolathe,/turf/open/floor/plasteel/warning{dir = 1},/area/toxins/lab) +"cpc" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plasteel/warnwhite{dir = 8},/area/toxins/lab) +"cpd" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/turf/open/floor/plasteel/white,/area/toxins/lab) +"cpe" = (/obj/machinery/disposal/bin{pixel_x = 5},/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/extinguisher_cabinet{pixel_x = 24; pixel_y = 0},/turf/open/floor/plasteel/whitepurple/side{dir = 4},/area/toxins/lab) +"cpf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/obj/machinery/shower{icon_state = "shower"; dir = 4},/turf/open/floor/plasteel/warnwhite{dir = 9},/area/medical/research{name = "Research Division"}) +"cpg" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/warnwhite{dir = 1},/area/medical/research{name = "Research Division"}) +"cph" = (/obj/machinery/power/apc{cell_type = 10000; dir = 1; name = "Research Division APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/machinery/camera{c_tag = "Research Division - Airlock"; dir = 2; network = list("SS13","RD")},/turf/open/floor/plasteel/warnwhite{dir = 5},/area/medical/research{name = "Research Division"}) +"cpi" = (/turf/open/floor/plasteel/bot,/area/medical/research{name = "Research Division"}) +"cpj" = (/obj/effect/landmark{name = "revenantspawn"},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cpk" = (/obj/effect/landmark{name = "blobstart"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/weapon/cigbutt,/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/aft{name = "Aft Maintenance"}) +"cpl" = (/obj/structure/chair/stool,/obj/machinery/newscaster{pixel_x = -30; pixel_y = 0},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/medical/research{name = "Research Division"}) +"cpm" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/cafeteria{dir = 5},/area/medical/research{name = "Research Division"}) +"cpn" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/medical/research{name = "Research Division"}) +"cpo" = (/obj/item/weapon/cigbutt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/medical/research{name = "Research Division"}) +"cpp" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/vending/cola,/turf/open/floor/plasteel/white/side{dir = 4},/area/medical/research{name = "Research Division"}) +"cpq" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/mob/living/simple_animal/pet/dog/pug{desc = "It's Pugley IV, the research department's lovable pug clone. Hopefully nothing happens to this one - fourth time lucky!"; name = "Pugley IV"; real_name = "Pugley IV"},/turf/open/floor/engine,/area/toxins/explab) +"cpr" = (/obj/item/device/radio/beacon,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/engine,/area/toxins/explab) +"cps" = (/obj/machinery/r_n_d/experimentor,/turf/open/floor/engine,/area/toxins/explab) +"cpt" = (/obj/effect/landmark{name = "blobstart"},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/engine,/area/toxins/explab) +"cpu" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_Toxins = 0},/turf/open/floor/engine,/area/toxins/explab) +"cpv" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/engine,/area/toxins/explab) +"cpw" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plating{icon_state = "platingdmg1"},/area/maintenance/aft{name = "Aft Maintenance"}) +"cpx" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/general/visible,/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/incinerator) +"cpy" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 2},/turf/closed/wall/r_wall,/area/maintenance/incinerator) +"cpz" = (/obj/machinery/door/airlock/glass{autoclose = 0; frequency = 1449; heat_proof = 1; icon_state = "door_locked"; id_tag = "incinerator_airlock_interior"; locked = 1; name = "Incinerator Interior Airlock"; req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/engine,/area/maintenance/incinerator) +"cpA" = (/obj/machinery/atmospherics/pipe/simple/general/visible,/turf/closed/wall/r_wall,/area/maintenance/incinerator) +"cpB" = (/turf/open/floor/engine/n2,/area/atmos) +"cpC" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/turf/open/floor/engine/n2,/area/atmos) +"cpD" = (/obj/machinery/camera{c_tag = "Atmospherics Tank - N2"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/turf/open/floor/engine/n2,/area/atmos) +"cpE" = (/turf/open/floor/engine/o2,/area/atmos) +"cpF" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/engine/o2,/area/atmos) +"cpG" = (/obj/machinery/camera{c_tag = "Atmospherics Tank - O2"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/turf/open/floor/engine/o2,/area/atmos) +"cpH" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/engine/air,/area/atmos) +"cpI" = (/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/engine/air,/area/atmos) +"cpJ" = (/obj/machinery/camera{c_tag = "Atmospherics Tank - Air"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/turf/open/floor/engine/air,/area/atmos) +"cpK" = (/obj/machinery/atmospherics/components/binary/pump{dir = 2},/turf/closed/wall/r_wall,/area/atmos) +"cpL" = (/obj/machinery/door/airlock/glass_atmos{heat_proof = 1; name = "Auxiliary Chamber"; req_access_txt = "24"},/turf/open/floor/plating,/area/atmos) +"cpM" = (/obj/machinery/atmospherics/components/binary/pump{dir = 1},/turf/closed/wall/r_wall,/area/atmos) +"cpN" = (/obj/structure/girder/reinforced,/turf/open/floor/plating/airless,/area/atmos) +"cpO" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"; dir = 4},/turf/open/floor/plating/airless,/area/shuttle/abandoned) +"cpP" = (/obj/machinery/hydroponics/constructable,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"cpQ" = (/obj/machinery/hydroponics/constructable,/obj/item/seeds/glowshroom,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"cpR" = (/obj/structure/table,/obj/machinery/reagentgrinder{pixel_y = 6},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"cpS" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/item/weapon/storage/box/monkeycubes{pixel_y = 4},/obj/item/weapon/storage/fancy/egg_box{pixel_y = 5},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"cpT" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 5},/obj/item/weapon/reagent_containers/food/condiment/enzyme{layer = 5},/obj/item/weapon/reagent_containers/dropper,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"cpU" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/flour,/obj/item/weapon/reagent_containers/food/condiment/flour,/obj/item/weapon/reagent_containers/food/condiment/flour,/obj/item/weapon/reagent_containers/food/condiment/flour,/obj/item/weapon/reagent_containers/food/condiment/milk,/obj/item/weapon/reagent_containers/food/condiment/milk,/obj/item/weapon/reagent_containers/food/condiment/milk,/obj/item/weapon/reagent_containers/food/condiment/soymilk,/obj/item/weapon/reagent_containers/food/condiment/soymilk,/obj/item/weapon/reagent_containers/food/condiment/sugar,/obj/item/weapon/reagent_containers/food/condiment/sugar,/obj/item/weapon/reagent_containers/food/condiment/sugar,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"cpV" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 5; pixel_y = 2},/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"cpW" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"cpX" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"cpY" = (/obj/structure/table,/obj/item/weapon/defibrillator,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"cpZ" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{pixel_x = 6; pixel_y = 0},/obj/item/weapon/reagent_containers/glass/bottle/charcoal{pixel_x = -3},/obj/item/weapon/reagent_containers/syringe,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"cqa" = (/obj/structure/table,/obj/item/clothing/gloves/color/latex,/obj/item/clothing/mask/surgical,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/item/clothing/suit/apron/surgical,/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"cqb" = (/obj/structure/table,/obj/item/weapon/storage/backpack/dufflebag/med{contents = newlist(/obj/item/weapon/scalpel,/obj/item/weapon/hemostat,/obj/item/weapon/retractor,/obj/item/weapon/cautery,/obj/item/weapon/circular_saw,/obj/item/weapon/surgicaldrill,/obj/item/weapon/razor); desc = "A large dufflebag for holding extra medical supplies - this one seems to be designed for holding surgical tools."; name = "surgical dufflebag"; pixel_y = 4},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"cqc" = (/obj/machinery/vending/boozeomat,/turf/open/floor/wood,/area/maintenance/aft{name = "Aft Maintenance"}) +"cqd" = (/obj/structure/sink/kitchen{desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; name = "old sink"; pixel_y = 28},/turf/open/floor/wood{icon_state = "wood-broken3"},/area/maintenance/aft{name = "Aft Maintenance"}) +"cqe" = (/obj/structure/rack,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka{pixel_x = 3; pixel_y = 2},/obj/item/weapon/reagent_containers/food/drinks/bottle/vermouth{pixel_x = -4; pixel_y = 3},/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey,/obj/structure/sign/poster{pixel_y = 32},/turf/open/floor/wood,/area/maintenance/aft{name = "Aft Maintenance"}) +"cqf" = (/obj/item/weapon/reagent_containers/food/drinks/drinkingglass{pixel_x = 4; pixel_y = 5},/obj/item/weapon/reagent_containers/food/drinks/drinkingglass{pixel_x = 6; pixel_y = -1},/obj/item/weapon/reagent_containers/food/drinks/drinkingglass{pixel_x = -4; pixel_y = 6},/obj/item/weapon/reagent_containers/food/drinks/drinkingglass{pixel_x = -5; pixel_y = 2},/obj/structure/table/wood,/obj/structure/light_construct/small{dir = 1},/obj/machinery/newscaster{pixel_x = 0; pixel_y = 32},/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass,/turf/open/floor/wood,/area/maintenance/aft{name = "Aft Maintenance"}) +"cqg" = (/obj/structure/chair/stool,/obj/structure/sign/poster{pixel_y = 32},/turf/open/floor/wood,/area/maintenance/aft{name = "Aft Maintenance"}) +"cqh" = (/obj/machinery/computer/slot_machine{pixel_y = 2},/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/aft{name = "Aft Maintenance"}) +"cqi" = (/obj/machinery/computer/arcade,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cqj" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1},/obj/effect/landmark{name = "revenantspawn"},/turf/open/floor/plasteel/black,/area/medical/surgery) +"cqk" = (/obj/structure/chair,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel/black,/area/medical/surgery) +"cql" = (/obj/item/weapon/cigbutt,/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/black,/area/medical/surgery) +"cqm" = (/obj/structure/chair,/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel/black,/area/medical/surgery) +"cqn" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/black,/area/medical/surgery) +"cqo" = (/obj/item/weapon/cigbutt,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/medical/surgery) +"cqp" = (/obj/structure/chair,/turf/open/floor/plasteel/black,/area/medical/surgery) +"cqq" = (/obj/structure/chair,/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/black,/area/medical/surgery) +"cqr" = (/obj/structure/bed/roller,/obj/item/device/radio/intercom{broadcasting = 1; freerange = 0; frequency = 1485; listening = 0; name = "Station Intercom (Medbay)"; pixel_x = -30; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/machinery/camera{c_tag = "Medbay Sleepers"; dir = 4; network = list("SS13","Medbay")},/turf/open/floor/plasteel/whiteblue/side{dir = 10},/area/medical/sleeper{name = "Sleepers"}) +"cqs" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel/whiteblue/corner{dir = 8},/area/medical/sleeper{name = "Sleepers"}) +"cqt" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/machinery/holopad,/turf/open/floor/plasteel/white,/area/medical/sleeper{name = "Sleepers"}) +"cqu" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/open/floor/plasteel/whiteblue/corner{dir = 2},/area/medical/sleeper{name = "Sleepers"}) +"cqv" = (/obj/structure/bed/roller,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel/whiteblue/side{dir = 6},/area/medical/sleeper{name = "Sleepers"}) +"cqw" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/whiteblue,/area/medical/sleeper{name = "Sleepers"}) +"cqx" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/whiteblue/side{dir = 8},/area/medical/medbay{name = "Medbay Central"}) +"cqy" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel/white,/area/medical/medbay{name = "Medbay Central"}) +"cqz" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/white,/area/medical/medbay{name = "Medbay Central"}) +"cqA" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/turf/open/floor/plasteel/white,/area/medical/medbay{name = "Medbay Central"}) +"cqB" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay{name = "Medbay Central"}) +"cqC" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay{name = "Medbay Central"}) +"cqD" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel/white,/area/medical/medbay{name = "Medbay Central"}) +"cqE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/obj/machinery/shower{dir = 8; icon_state = "shower"; name = "emergency shower"},/turf/open/floor/plasteel/whiteyellow/corner{dir = 2},/area/medical/medbay{name = "Medbay Central"}) +"cqF" = (/obj/item/stack/sheet/mineral/plasma{layer = 2.9},/obj/item/stack/sheet/mineral/plasma{layer = 2.9},/obj/structure/table/glass,/obj/item/weapon/reagent_containers/glass/bottle/epinephrine,/obj/item/weapon/reagent_containers/glass/bottle/charcoal{pixel_x = 7; pixel_y = 4},/obj/item/weapon/storage/pill_bottle/epinephrine{pixel_x = 3},/turf/open/floor/plasteel/whiteyellow/side{dir = 8},/area/medical/chemistry) +"cqG" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/white,/area/medical/chemistry) +"cqH" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_Toxins = 0},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/white,/area/medical/chemistry) +"cqI" = (/turf/open/floor/plasteel/whiteyellow/side{dir = 4},/area/medical/chemistry) +"cqJ" = (/obj/item/device/assembly/timer{pixel_x = -3; pixel_y = 3},/obj/item/device/assembly/timer{pixel_x = -3; pixel_y = 3},/obj/item/device/assembly/igniter{pixel_x = 3; pixel_y = -7},/obj/item/device/assembly/igniter{pixel_x = 3; pixel_y = -7},/obj/item/device/assembly/igniter{pixel_x = 3; pixel_y = -7},/obj/item/device/assembly/igniter{pixel_x = 3; pixel_y = -7},/obj/item/device/assembly/timer{pixel_x = -3; pixel_y = 3},/obj/item/device/assembly/timer{pixel_x = -3; pixel_y = 3},/obj/structure/table/glass,/turf/open/floor/plasteel/whiteyellow{dir = 4},/area/medical/chemistry) +"cqK" = (/obj/machinery/computer/rdconsole/core,/turf/open/floor/plasteel/warning,/area/toxins/lab) +"cqL" = (/turf/open/floor/plasteel/warning,/area/toxins/lab) +"cqM" = (/obj/machinery/r_n_d/circuit_imprinter{pixel_y = 4},/obj/item/weapon/reagent_containers/glass/beaker/sulphuric,/turf/open/floor/plasteel/warning,/area/toxins/lab) +"cqN" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/warnwhite{dir = 8},/area/toxins/lab) +"cqO" = (/obj/effect/landmark/start{name = "Scientist"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/warnwhite{dir = 4},/area/toxins/lab) +"cqP" = (/obj/structure/table,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/micro_laser,/obj/item/weapon/stock_parts/micro_laser,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/item/clothing/glasses/science,/turf/open/floor/plasteel/warning{dir = 1},/area/toxins/lab) +"cqQ" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/toxins/lab) +"cqR" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/obj/structure/sink{dir = 8; icon_state = "sink"; pixel_x = -12; pixel_y = 2},/turf/open/floor/plasteel/warnwhite{dir = 8},/area/medical/research{name = "Research Division"}) +"cqS" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cqT" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/warnwhite{dir = 4},/area/medical/research{name = "Research Division"}) +"cqU" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/closet/firecloset,/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/open/floor/plasteel/delivery,/area/medical/research{name = "Research Division"}) +"cqV" = (/obj/item/weapon/storage/toolbox/emergency,/obj/item/clothing/mask/gas,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cqW" = (/obj/machinery/light/small,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cqX" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/device/flashlight,/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cqY" = (/obj/item/stack/packageWrap,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cqZ" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/structure/sink{dir = 8; icon_state = "sink"; pixel_x = -12; pixel_y = 2},/obj/item/weapon/cigbutt,/turf/open/floor/plasteel/cafeteria{dir = 5},/area/medical/research{name = "Research Division"}) +"cra" = (/turf/open/floor/plasteel/cafeteria{dir = 5},/area/medical/research{name = "Research Division"}) +"crb" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/medical/research{name = "Research Division"}) +"crc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/medical/research{name = "Research Division"}) +"crd" = (/obj/machinery/vending/coffee,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/turf/open/floor/plasteel/white/side{dir = 4},/area/medical/research{name = "Research Division"}) +"cre" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/engine,/area/toxins/explab) +"crf" = (/obj/machinery/button/door{id = "telelab"; name = "Test Chamber Blast Doors"; pixel_x = 0; pixel_y = -25},/turf/open/floor/engine,/area/toxins/explab) +"crg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/engine,/area/toxins/explab) +"crh" = (/obj/structure/closet,/obj/item/weapon/storage/box/donkpockets,/obj/effect/spawner/lootdrop/maintenance{lootcount = 3; name = "3maintenance loot spawner"},/turf/open/floor/plating/warnplate,/area/maintenance/aft{name = "Aft Maintenance"}) +"cri" = (/obj/structure/closet/crate,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/obj/item/device/assembly/infra,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating/warnplate,/area/maintenance/aft{name = "Aft Maintenance"}) +"crj" = (/obj/structure/table,/obj/effect/decal/cleanable/cobweb,/obj/item/weapon/shard,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"crk" = (/obj/structure/table,/obj/structure/sign/bluecross{pixel_y = 32},/obj/item/weapon/reagent_containers/glass/beaker/large,/turf/open/floor/plating,/area/maintenance/starboard) +"crl" = (/obj/structure/sink/kitchen{desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; name = "old sink"; pixel_y = 28},/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/blood/gibs/old,/turf/open/floor/plating,/area/maintenance/starboard) +"crm" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/emergency,/turf/open/floor/plating,/area/maintenance/starboard) +"crn" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass{pixel_x = 4; pixel_y = 5},/obj/item/weapon/reagent_containers/food/drinks/drinkingglass{pixel_x = 6; pixel_y = -1},/obj/item/weapon/reagent_containers/food/drinks/drinkingglass{pixel_x = -4; pixel_y = 6},/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/syringe,/turf/open/floor/plating,/area/maintenance/starboard) +"cro" = (/obj/item/weapon/reagent_containers/glass/bottle/toxin{pixel_x = 4; pixel_y = 2},/obj/structure/table,/obj/effect/decal/cleanable/cobweb/cobweb2,/obj/machinery/reagentgrinder{pixel_y = 4},/turf/open/floor/plating,/area/maintenance/starboard) +"crp" = (/obj/structure/lattice,/obj/machinery/atmospherics/components/binary/pump{dir = 2; name = "Incinerator Output Pump"; on = 1; use_power = 0},/obj/structure/disposalpipe/segment,/turf/open/space,/area/space) +"crq" = (/obj/machinery/doorButtons/access_button{idDoor = "incinerator_airlock_exterior"; layer = 3.1; idSelf = "incinerator_access_control"; name = "Incinerator airlock control"; pixel_x = 8; pixel_y = -24},/obj/machinery/light/small{dir = 8},/obj/structure/sign/fire{pixel_x = -32; pixel_y = 0},/obj/machinery/atmospherics/components/binary/pump{dir = 1; on = 1},/obj/machinery/doorButtons/access_button{idDoor = "incinerator_airlock_interior"; idSelf = "incinerator_access_control"; name = "Incinerator airlock control"; pixel_x = 8; pixel_y = 24},/turf/open/floor/engine,/area/maintenance/incinerator) +"crr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/engine,/area/maintenance/incinerator) +"crs" = (/obj/structure/sign/fire{pixel_x = 32; pixel_y = 0},/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/components/binary/pump{dir = 2; on = 1},/turf/open/floor/engine,/area/maintenance/incinerator) +"crt" = (/obj/machinery/light/small,/turf/open/floor/engine/n2,/area/atmos) +"cru" = (/obj/machinery/light/small,/turf/open/floor/engine/o2,/area/atmos) +"crv" = (/turf/open/floor/engine/air,/area/atmos) +"crw" = (/obj/machinery/light/small,/turf/open/floor/engine/air,/area/atmos) +"crx" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 1},/turf/open/floor/engine{name = "vacuum floor"; initial_gas_mix = "o2=0.01;n2=0.01"},/area/atmos) +"cry" = (/turf/open/floor/engine{name = "vacuum floor"; initial_gas_mix = "o2=0.01;n2=0.01"},/area/atmos) +"crz" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/engine{name = "vacuum floor"; initial_gas_mix = "o2=0.01;n2=0.01"},/area/atmos) +"crA" = (/obj/structure/girder,/turf/open/floor/plating/airless,/area/atmos) +"crB" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"crC" = (/obj/structure/closet/secure_closet/bar{pixel_x = -3; pixel_y = -1; req_access_txt = "25"},/turf/open/floor/wood,/area/maintenance/aft{name = "Aft Maintenance"}) +"crD" = (/turf/open/floor/wood,/area/maintenance/aft{name = "Aft Maintenance"}) +"crE" = (/turf/open/floor/wood{icon_state = "wood-broken7"},/area/maintenance/aft{name = "Aft Maintenance"}) +"crF" = (/obj/item/weapon/reagent_containers/glass/rag,/obj/structure/table/wood,/turf/open/floor/wood{icon_state = "wood-broken4"},/area/maintenance/aft{name = "Aft Maintenance"}) +"crG" = (/obj/structure/chair/stool,/turf/open/floor/wood,/area/maintenance/aft{name = "Aft Maintenance"}) +"crH" = (/turf/open/floor/wood{icon_state = "wood-broken5"},/area/maintenance/aft{name = "Aft Maintenance"}) +"crI" = (/obj/structure/chair/stool,/obj/structure/sign/poster{pixel_x = 32; pixel_y = 0},/turf/open/floor/plating{icon_state = "platingdmg1"},/area/maintenance/aft{name = "Aft Maintenance"}) +"crJ" = (/obj/structure/chair,/obj/structure/sign/nosmoking_2{pixel_x = -28},/turf/open/floor/plasteel/black,/area/medical/surgery) +"crK" = (/obj/structure/chair,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/medical/surgery) +"crL" = (/obj/machinery/holopad,/turf/open/floor/plasteel/black,/area/medical/surgery) +"crM" = (/obj/structure/chair,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel/black,/area/medical/surgery) +"crN" = (/obj/structure/chair,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/medical/surgery) +"crO" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{name = "Observation"; req_access_txt = "0"},/turf/open/floor/plasteel/black,/area/medical/surgery) +"crP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/medical/surgery) +"crQ" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/black,/area/medical/surgery) +"crR" = (/obj/item/weapon/cigbutt,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/obj/structure/sign/nosmoking_2{pixel_x = 28},/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plasteel/black,/area/medical/surgery) +"crS" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 4},/turf/open/floor/plasteel/whiteblue,/area/medical/sleeper{name = "Sleepers"}) +"crT" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel/whiteblue/side{dir = 10},/area/medical/sleeper{name = "Sleepers"}) +"crU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/whiteblue/side{dir = 2},/area/medical/sleeper{name = "Sleepers"}) +"crV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/whiteblue/side{dir = 6},/area/medical/sleeper{name = "Sleepers"}) +"crW" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/whiteblue,/area/medical/sleeper{name = "Sleepers"}) +"crX" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plating,/area/medical/sleeper{name = "Sleepers"}) +"crY" = (/obj/structure/sink{dir = 8; icon_state = "sink"; pixel_x = -12; pixel_y = 2},/turf/open/floor/plasteel/whiteblue/corner{dir = 1},/area/medical/medbay{name = "Medbay Central"}) +"crZ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/medbay{name = "Medbay Central"}) +"csa" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel/white,/area/medical/medbay{name = "Medbay Central"}) +"csb" = (/obj/item/device/radio/intercom{broadcasting = 1; freerange = 0; frequency = 1485; listening = 0; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = -30},/turf/open/floor/plasteel/white,/area/medical/medbay{name = "Medbay Central"}) +"csc" = (/turf/open/floor/plasteel/whiteblue/corner{dir = 2},/area/medical/medbay{name = "Medbay Central"}) +"csd" = (/obj/structure/bed/roller,/obj/machinery/iv_drip{density = 0},/turf/open/floor/plasteel/whiteblue/side{dir = 2},/area/medical/medbay{name = "Medbay Central"}) +"cse" = (/obj/machinery/light,/turf/open/floor/plasteel/whiteblue/corner{dir = 8},/area/medical/medbay{name = "Medbay Central"}) +"csf" = (/obj/machinery/airalarm{dir = 1; pixel_y = -22},/turf/open/floor/plasteel/whiteyellow/corner{dir = 2},/area/medical/medbay{name = "Medbay Central"}) +"csg" = (/turf/open/floor/plasteel/whiteyellow/side{dir = 6},/area/medical/medbay{name = "Medbay Central"}) +"csh" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor,/obj/machinery/door/window/eastright{name = "Chemistry Desk"; req_access_txt = "5; 33"},/obj/machinery/door/window/eastright{dir = 8; name = "Chemistry Desk"; req_access_txt = "5"},/obj/item/weapon/reagent_containers/glass/bottle/morphine,/obj/item/weapon/reagent_containers/glass/bottle/toxin{pixel_x = 5; pixel_y = 4},/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{pixel_x = 8},/obj/item/weapon/reagent_containers/glass/bottle/charcoal{pixel_x = -5; pixel_y = 0},/obj/item/weapon/reagent_containers/syringe/epinephrine,/turf/open/floor/plasteel/white,/area/medical/chemistry) +"csi" = (/obj/structure/chair/office/light{dir = 8},/obj/effect/landmark/start{name = "Chemist"},/turf/open/floor/plasteel/whiteyellow/side{dir = 8},/area/medical/chemistry) +"csj" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/landmark/start{name = "Chemist"},/turf/open/floor/plasteel/white,/area/medical/chemistry) +"csk" = (/obj/structure/chair/office/light{dir = 4},/turf/open/floor/plasteel/whiteyellow/side{dir = 4},/area/medical/chemistry) +"csl" = (/obj/structure/table/glass,/obj/item/weapon/folder/white{pixel_y = 2},/obj/item/weapon/grenade/chem_grenade,/obj/item/weapon/grenade/chem_grenade,/obj/item/weapon/grenade/chem_grenade,/obj/item/weapon/grenade/chem_grenade,/obj/item/weapon/screwdriver{pixel_x = -2; pixel_y = 6},/obj/item/device/radio/headset/headset_med,/obj/structure/extinguisher_cabinet{pixel_x = 24; pixel_y = 0},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/plasteel/whiteyellow{dir = 4},/area/medical/chemistry) +"csm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/aft) +"csn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/camera{c_tag = "Aft Primary Hallway - Fore"; dir = 8; network = list("SS13")},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/hallway/primary/aft) +"cso" = (/obj/item/stack/sheet/glass{amount = 50; pixel_x = 3; pixel_y = 3},/obj/item/stack/sheet/metal{amount = 50},/obj/item/clothing/glasses/welding,/obj/structure/table,/turf/open/floor/plasteel/warning{dir = 4},/area/toxins/lab) +"csp" = (/turf/open/floor/plasteel/whitepurple/side{dir = 8},/area/toxins/lab) +"csq" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/white,/area/toxins/lab) +"csr" = (/obj/structure/disposalpipe/segment,/obj/structure/chair/stool,/turf/open/floor/plasteel/white,/area/toxins/lab) +"css" = (/obj/machinery/holopad,/turf/open/floor/plasteel/warnwhite{dir = 4},/area/toxins/lab) +"cst" = (/obj/structure/table,/obj/item/weapon/stock_parts/matter_bin,/obj/item/weapon/stock_parts/matter_bin,/obj/item/weapon/stock_parts/scanning_module,/obj/item/weapon/stock_parts/scanning_module,/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/sign/nosmoking_2{pixel_x = 30; pixel_y = 0},/turf/open/floor/plasteel,/area/toxins/lab) +"csu" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/obj/structure/disposalpipe/segment,/obj/machinery/shower{dir = 4},/turf/open/floor/plasteel/warnwhite{dir = 10},/area/medical/research{name = "Research Division"}) +"csv" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/warnwhite{dir = 2},/area/medical/research{name = "Research Division"}) +"csw" = (/obj/machinery/shower{icon_state = "shower"; dir = 8},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -28},/turf/open/floor/plasteel/warnwhite{dir = 6},/area/medical/research{name = "Research Division"}) +"csx" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/closet/firecloset,/turf/open/floor/plasteel/delivery,/area/medical/research{name = "Research Division"}) +"csy" = (/obj/structure/plasticflaps{opacity = 1},/obj/machinery/navbeacon{codes_txt = "delivery;dir=2"; freq = 1400; location = "Research Division"},/turf/open/floor/plasteel/bot,/area/maintenance/aft{name = "Aft Maintenance"}) +"csz" = (/turf/closed/wall/r_wall,/area/maintenance/aft{name = "Aft Maintenance"}) +"csA" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/item/weapon/storage/box/lights/mixed,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plating/warnplate{dir = 2},/area/maintenance/aft{name = "Aft Maintenance"}) +"csB" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 8},/obj/machinery/portable_atmospherics/canister/air,/obj/structure/sign/poster{pixel_x = 32; pixel_y = 0},/turf/open/floor/plating,/area/medical/research{name = "Research Division"}) +"csC" = (/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/obj/structure/table/glass,/turf/open/floor/plasteel/cafeteria{dir = 5},/area/medical/research{name = "Research Division"}) +"csD" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/medical/research{name = "Research Division"}) +"csE" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/medical/research{name = "Research Division"}) +"csF" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/obj/structure/noticeboard{pixel_y = -32},/obj/machinery/light,/obj/machinery/camera{c_tag = "Research Division - Break Room"; dir = 1; network = list("SS13","RD")},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/medical/research{name = "Research Division"}) +"csG" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/plasteel/white/side{dir = 4},/area/medical/research{name = "Research Division"}) +"csH" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/closed/wall/r_wall,/area/toxins/explab) +"csI" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "telelab"; name = "test chamber blast door"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/toxins/explab) +"csJ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "telelab"; name = "test chamber blast door"},/turf/open/floor/plating,/area/toxins/explab) +"csK" = (/obj/machinery/door/poddoor/preopen{id = "telelab"; name = "test chamber blast door"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/engine,/area/toxins/explab) +"csL" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"csM" = (/obj/machinery/door/airlock/maintenance{icon_state = "door_closed"; locked = 0; name = "Storage Room"; req_access_txt = "0"; req_one_access_txt = "12;47"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"csN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/aft{name = "Aft Maintenance"}) +"csO" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/blood/gibs/old,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"csP" = (/obj/structure/rack,/obj/item/clothing/suit/apron,/obj/item/clothing/mask/surgical,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"csQ" = (/obj/machinery/chem_master/condimaster{name = "CondiMaster Neo"; pixel_x = -4},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"csR" = (/obj/structure/lattice,/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/general/visible,/turf/open/space,/area/space) +"csS" = (/obj/machinery/door/airlock/glass{autoclose = 0; frequency = 1449; heat_proof = 1; icon_state = "door_locked"; id_tag = "incinerator_airlock_exterior"; locked = 1; name = "Incinerator Exterior Airlock"; req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/engine,/area/maintenance/incinerator) +"csT" = (/obj/item/stack/rods{amount = 25},/turf/open/floor/engine{name = "vacuum floor"; initial_gas_mix = "o2=0.01;n2=0.01"},/area/atmos) +"csU" = (/turf/open/floor/plating/airless,/area/atmos) +"csV" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/drinks/shaker,/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone,/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 8; pixel_y = 2},/obj/item/weapon/reagent_containers/dropper,/turf/open/floor/wood,/area/maintenance/aft{name = "Aft Maintenance"}) +"csW" = (/obj/item/weapon/reagent_containers/food/drinks/ale,/obj/structure/table/wood,/turf/open/floor/wood,/area/maintenance/aft{name = "Aft Maintenance"}) +"csX" = (/obj/structure/light_construct/small{dir = 4},/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 30; pixel_y = 0},/turf/open/floor/wood,/area/maintenance/aft{name = "Aft Maintenance"}) +"csY" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/disposalpipe/segment,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"csZ" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/medical/surgery) +"cta" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/medical/surgery) +"ctb" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/medical/surgery) +"ctc" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{name = "Observation"; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel,/area/medical/surgery) +"ctd" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/medical/sleeper{name = "Sleepers"}) +"cte" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel/delivery,/area/medical/sleeper{name = "Sleepers"}) +"ctf" = (/obj/machinery/door/firedoor,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/open/floor/plasteel/white,/area/medical/medbay{name = "Medbay Central"}) +"ctg" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/door/firedoor,/turf/open/floor/plasteel/white,/area/medical/medbay{name = "Medbay Central"}) +"cth" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/turf/open/floor/plasteel/white,/area/medical/medbay{name = "Medbay Central"}) +"cti" = (/turf/closed/wall,/area/medical/cmo) +"ctj" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/door/poddoor/preopen{id = "cmoprivacy"; name = "privacy shutter"},/turf/open/floor/plating,/area/medical/cmo) +"ctk" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/door/poddoor/preopen{id = "cmoprivacy"; name = "privacy shutter"},/turf/open/floor/plating,/area/medical/cmo) +"ctl" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "cmoprivacy"; name = "privacy shutter"},/turf/open/floor/plating,/area/medical/cmo) +"ctm" = (/obj/machinery/door/airlock/maintenance{name = "Medbay Maintenance"; req_access_txt = "5"},/turf/open/floor/plating,/area/medical/medbay{name = "Medbay Central"}) +"ctn" = (/obj/machinery/reagentgrinder,/obj/machinery/requests_console{department = "Chemistry"; departmentType = 2; pixel_x = -30; pixel_y = 0},/obj/structure/table/glass,/turf/open/floor/plasteel/whiteyellow/side{dir = 8},/area/medical/chemistry) +"cto" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/holopad,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/white,/area/medical/chemistry) +"ctp" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/white,/area/medical/chemistry) +"ctq" = (/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/weapon/hand_labeler,/obj/structure/table/glass,/turf/open/floor/plasteel/whiteyellow/side{dir = 4},/area/medical/chemistry) +"ctr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/sign/chemistry{pixel_x = -32},/turf/open/floor/plasteel/yellow/corner{dir = 8},/area/hallway/primary/aft) +"cts" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/sign/science{pixel_x = 32},/turf/open/floor/plasteel/purple/corner{dir = 2},/area/hallway/primary/aft) +"ctt" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/whitepurple/side{dir = 8},/area/toxins/lab) +"ctu" = (/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 6},/obj/structure/table,/turf/open/floor/plasteel/white,/area/toxins/lab) +"ctv" = (/obj/structure/table,/obj/structure/disposalpipe/segment,/obj/item/weapon/folder/white,/obj/item/weapon/disk/tech_disk{pixel_x = 0; pixel_y = 0},/obj/item/weapon/disk/tech_disk{pixel_x = 0; pixel_y = 0},/obj/item/weapon/disk/design_disk,/obj/item/weapon/disk/design_disk,/turf/open/floor/plasteel/white,/area/toxins/lab) +"ctw" = (/turf/open/floor/plasteel/warnwhite{dir = 4},/area/toxins/lab) +"ctx" = (/obj/machinery/camera{c_tag = "Research and Development"; dir = 8; network = list("SS13","RD")},/obj/machinery/light_switch{pixel_x = 27},/obj/structure/table,/obj/item/stack/cable_coil,/obj/item/stack/cable_coil,/obj/item/weapon/stock_parts/scanning_module{pixel_x = 2; pixel_y = 3},/obj/item/weapon/stock_parts/scanning_module,/turf/open/floor/plasteel,/area/toxins/lab) +"cty" = (/obj/machinery/door/window/westleft{dir = 2; name = "Research Division Deliveries"; req_access_txt = "47"},/turf/open/floor/plasteel/delivery,/area/maintenance/aft{name = "Aft Maintenance"}) +"ctz" = (/obj/machinery/door/airlock{name = "Research Emergency Storage"; req_access_txt = "0"; req_one_access_txt = "47"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/medical/research{name = "Research Division"}) +"ctA" = (/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/glass_medical{glass = 0; id_tag = ""; name = "Research Break Room"; opacity = 1; req_access_txt = "0"; req_one_access_txt = "47"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/cafeteria{dir = 5},/area/medical/research{name = "Research Division"}) +"ctB" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/window/reinforced/tinted/fulltile,/turf/open/floor/plating,/area/medical/research{name = "Research Division"}) +"ctC" = (/turf/closed/wall,/area/toxins/explab) +"ctD" = (/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_x = 0; pixel_y = 30},/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/turf/open/floor/plasteel/warning{dir = 2},/area/toxins/explab) +"ctE" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 6},/obj/item/weapon/pen,/turf/open/floor/plasteel/warning{dir = 2},/area/toxins/explab) +"ctF" = (/obj/structure/table/reinforced,/obj/item/weapon/hand_labeler,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/device/taperecorder{pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/warning{dir = 2},/area/toxins/explab) +"ctG" = (/obj/machinery/computer/rdconsole/experiment,/turf/open/floor/plasteel/warning{dir = 2},/area/toxins/explab) +"ctH" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/obj/item/weapon/book/manual/experimentor,/turf/open/floor/plasteel/warning{dir = 2},/area/toxins/explab) +"ctI" = (/obj/machinery/button/door{id = "telelab"; name = "Test Chamber Blast Doors"; pixel_x = 0; pixel_y = 25},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{pixel_x = 7; pixel_y = 2},/obj/item/weapon/reagent_containers/glass/bottle/charcoal{pixel_x = -2; pixel_y = -1},/obj/item/weapon/reagent_containers/dropper,/obj/item/stack/medical/bruise_pack{pixel_x = -2; pixel_y = 6},/obj/item/stack/medical/ointment,/obj/item/device/healthanalyzer,/turf/open/floor/plasteel/warning{dir = 2},/area/toxins/explab) +"ctJ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/warning{dir = 2},/area/toxins/explab) +"ctK" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"ctL" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/aft{name = "Aft Maintenance"}) +"ctM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/aft{name = "Aft Maintenance"}) +"ctN" = (/obj/structure/rack,/obj/item/clothing/under/color/white,/obj/item/clothing/head/soft/mime,/obj/item/clothing/under/color/white,/obj/item/clothing/head/soft/mime,/obj/item/clothing/mask/surgical,/obj/item/clothing/mask/surgical,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"ctO" = (/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/aft{name = "Aft Maintenance"}) +"ctP" = (/obj/machinery/chem_heater,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"ctQ" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 0; initialize_directions = 1; internal_pressure_bound = 4000; name = "incinerator output intake"; on = 0; pressure_checks = 2; pump_direction = 0},/turf/open/floor/engine/vacuum,/area/maintenance/incinerator) +"ctR" = (/obj/machinery/igniter{icon_state = "igniter0"; id = "Incinerator"; luminosity = 2; on = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/engine/vacuum,/area/maintenance/incinerator) +"ctS" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = -32},/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 1; frequency = 1441; id = "air_in"},/turf/open/floor/engine/vacuum,/area/maintenance/incinerator) +"ctT" = (/obj/machinery/door/poddoor{id = "auxincineratorvent"; name = "Incineration Chamber Vent"},/turf/open/floor/engine/vacuum,/area/maintenance/incinerator) +"ctU" = (/obj/item/device/flashlight/lamp,/obj/structure/table/wood,/turf/open/floor/wood,/area/maintenance/aft{name = "Aft Maintenance"}) +"ctV" = (/obj/item/weapon/reagent_containers/food/drinks/bottle/tequila,/obj/structure/table/wood,/turf/open/floor/wood,/area/maintenance/aft{name = "Aft Maintenance"}) +"ctW" = (/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/structure/table/wood,/turf/open/floor/wood,/area/maintenance/aft{name = "Aft Maintenance"}) +"ctX" = (/turf/open/floor/wood{icon_state = "wood-broken"},/area/maintenance/aft{name = "Aft Maintenance"}) +"ctY" = (/obj/structure/mineral_door/wood{name = "The Gobbetting Barmaid"},/turf/open/floor/wood,/area/maintenance/aft{name = "Aft Maintenance"}) +"ctZ" = (/obj/structure/table,/obj/item/weapon/hemostat,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/open/floor/plasteel,/area/medical/surgery) +"cua" = (/obj/structure/table,/obj/item/weapon/surgicaldrill,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white/side{dir = 2},/area/medical/surgery) +"cub" = (/obj/structure/table,/obj/item/weapon/scalpel{pixel_y = 12},/obj/item/weapon/circular_saw,/turf/open/floor/plasteel/white/side{dir = 2},/area/medical/surgery) +"cuc" = (/obj/structure/table,/obj/item/weapon/cautery{pixel_x = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/weapon/razor{pixel_y = 5},/turf/open/floor/plasteel/white/side{dir = 2},/area/medical/surgery) +"cud" = (/obj/structure/table,/obj/item/weapon/retractor,/turf/open/floor/plasteel,/area/medical/surgery) +"cue" = (/obj/machinery/computer/med_data,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/open/floor/plasteel/white/side{dir = 2},/area/medical/surgery) +"cuf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel/white/side{dir = 2},/area/medical/surgery) +"cug" = (/obj/structure/table/reinforced,/obj/item/device/radio/intercom{broadcasting = 1; freerange = 0; frequency = 1485; listening = 0; name = "Station Intercom (Medbay)"; pixel_x = 30; pixel_y = 0},/obj/structure/bedsheetbin{pixel_x = 2},/obj/item/clothing/suit/straight_jacket,/obj/item/clothing/mask/muzzle,/obj/item/weapon/gun/syringe,/obj/item/clothing/glasses/eyepatch,/obj/item/clothing/glasses/sunglasses/blindfold,/obj/item/clothing/ears/earmuffs,/turf/open/floor/plasteel/white/side{dir = 2},/area/medical/surgery) +"cuh" = (/obj/machinery/power/apc{dir = 1; name = "Cryogenics APC"; pixel_y = 24},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = -2; pixel_y = 9},/obj/machinery/light/small{dir = 8},/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = 5; pixel_y = 9},/obj/structure/table/glass,/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = -3; pixel_y = 1},/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = 6; pixel_y = 2},/obj/item/weapon/reagent_containers/syringe/epinephrine{pixel_x = 3; pixel_y = -2},/obj/item/weapon/reagent_containers/dropper,/turf/open/floor/plasteel/whiteblue/side{dir = 8},/area/medical/cryo) +"cui" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/obj/structure/closet/secure_closet/medical1{pixel_x = -3},/turf/open/floor/plasteel/warnwhite{dir = 4},/area/medical/cryo) +"cuj" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel/warning{dir = 9},/area/medical/cryo) +"cuk" = (/obj/machinery/atmospherics/components/unary/cryo_cell,/turf/open/floor/plasteel/warning{dir = 1},/area/medical/cryo) +"cul" = (/obj/machinery/atmospherics/components/unary/cryo_cell,/turf/open/floor/plasteel/warning{dir = 5},/area/medical/cryo) +"cum" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/medical/cryo) +"cun" = (/turf/open/floor/plasteel/whiteblue/corner{dir = 8},/area/medical/medbay{name = "Medbay Central"}) +"cuo" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/plasteel/white,/area/medical/medbay{name = "Medbay Central"}) +"cup" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/structure/table/glass,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 8},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/barber{dir = 8},/area/medical/cmo) +"cuq" = (/obj/item/weapon/cartridge/medical{pixel_x = -2; pixel_y = 6},/obj/item/weapon/cartridge/medical{pixel_x = 6; pixel_y = 3},/obj/item/weapon/cartridge/medical,/obj/item/weapon/cartridge/chemistry{pixel_y = 2},/obj/structure/table/glass,/turf/open/floor/plasteel/barber{dir = 8},/area/medical/cmo) +"cur" = (/obj/item/weapon/folder/blue,/obj/structure/table/glass,/obj/item/weapon/stamp/cmo,/turf/open/floor/plasteel/barber{dir = 8},/area/medical/cmo) +"cus" = (/obj/item/weapon/folder/white,/obj/item/clothing/glasses/hud/health,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/table/glass,/turf/open/floor/plasteel/barber{dir = 8},/area/medical/cmo) +"cut" = (/obj/structure/closet/secure_closet/CMO,/obj/item/weapon/storage/secure/safe{pixel_x = 5; pixel_y = 26},/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 30; pixel_y = 0},/obj/item/weapon/screwdriver{pixel_y = 6},/turf/open/floor/plasteel/barber{dir = 8},/area/medical/cmo) +"cuu" = (/obj/item/clothing/glasses/science{pixel_x = 2; pixel_y = 4},/obj/item/clothing/glasses/science,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/structure/table/glass,/obj/item/stack/cable_coil,/obj/item/stack/cable_coil,/obj/machinery/camera{c_tag = "Chemistry"; dir = 4; network = list("SS13","Medbay")},/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/whiteyellow/side{dir = 10},/area/medical/chemistry) +"cuv" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 2},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/whiteyellow/corner{dir = 8},/area/medical/chemistry) +"cuw" = (/obj/machinery/disposal/bin{pixel_x = 5},/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/plasteel/white,/area/medical/chemistry) +"cux" = (/obj/machinery/chem_dispenser{layer = 2.7},/turf/open/floor/plasteel/whiteyellow/side{dir = 4},/area/medical/chemistry) +"cuy" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/shutters/preopen{id = "chemistry_shutters_2"; name = "chemistry shutters"},/turf/open/floor/plating,/area/medical/chemistry) +"cuz" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 6},/turf/open/floor/plasteel/yellow{dir = 4},/area/hallway/primary/aft) +"cuA" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/yellow/side{dir = 8},/area/hallway/primary/aft) +"cuB" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/hallway/primary/aft) +"cuC" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel/purple/side{dir = 4},/area/hallway/primary/aft) +"cuD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/purple,/area/hallway/primary/aft) +"cuE" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/shutters/preopen{id = "research_shutters_2"; name = "research shutters"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/toxins/lab) +"cuF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/whitepurple/side{dir = 8},/area/toxins/lab) +"cuG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/chair/stool,/turf/open/floor/plasteel/white,/area/toxins/lab) +"cuH" = (/obj/structure/disposalpipe/segment,/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/lab) +"cuI" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/warnwhite{dir = 4},/area/toxins/lab) +"cuJ" = (/obj/structure/table,/obj/item/weapon/stock_parts/console_screen,/obj/item/weapon/stock_parts/console_screen,/obj/item/weapon/stock_parts/console_screen,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/turf/open/floor/plasteel/warning,/area/toxins/lab) +"cuK" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/toxins/lab) +"cuL" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/whitepurple/side{dir = 9},/area/medical/research{name = "Research Division"}) +"cuM" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/whitepurple/side{dir = 1},/area/medical/research{name = "Research Division"}) +"cuN" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/whitepurple/corner{dir = 1},/area/medical/research{name = "Research Division"}) +"cuO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/sign/nosmoking_2{pixel_y = 32},/obj/machinery/camera{c_tag = "Research Division Hallway - Central"; dir = 2; network = list("SS13","RD")},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cuP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cuQ" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = 29},/turf/open/floor/plasteel/white/side{dir = 10},/area/medical/research{name = "Research Division"}) +"cuR" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white/side{dir = 2},/area/medical/research{name = "Research Division"}) +"cuS" = (/turf/open/floor/plasteel/white/side{dir = 6},/area/medical/research{name = "Research Division"}) +"cuT" = (/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/turf/open/floor/plasteel/whitepurple/corner{dir = 4},/area/medical/research{name = "Research Division"}) +"cuU" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/whitepurple/side{dir = 1},/area/medical/research{name = "Research Division"}) +"cuV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/whitepurple/corner{dir = 1},/area/medical/research{name = "Research Division"}) +"cuW" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-10"; layer = 4.1},/turf/open/floor/plasteel/whitepurple/corner{dir = 2},/area/medical/research{name = "Research Division"}) +"cuX" = (/obj/machinery/firealarm{dir = 8; pixel_x = -26; pixel_y = 0},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/whitepurple/corner{dir = 8},/area/toxins/explab) +"cuY" = (/obj/structure/chair/office/light{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/explab) +"cuZ" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/white,/obj/item/weapon/folder/white,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/obj/item/stack/sheet/mineral/plasma{layer = 2.9; pixel_y = 4},/turf/open/floor/plasteel/white,/area/toxins/explab) +"cva" = (/obj/effect/landmark/start{name = "Scientist"},/obj/structure/chair/office/light{dir = 1; pixel_y = 3},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/explab) +"cvb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/table/reinforced,/obj/item/weapon/wrench,/obj/item/weapon/crowbar,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/glasses/science,/obj/item/device/multitool{pixel_x = 3},/turf/open/floor/plasteel/white,/area/toxins/explab) +"cvc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/holopad,/turf/open/floor/plasteel/white,/area/toxins/explab) +"cvd" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/warning{dir = 8},/area/toxins/explab) +"cve" = (/obj/structure/girder,/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cvf" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 0; pixel_y = 6},/obj/item/weapon/pen,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cvg" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/empty{pixel_x = -3; pixel_y = -3},/obj/item/weapon/reagent_containers/blood/empty{pixel_x = -3; pixel_y = -3},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cvh" = (/obj/effect/decal/cleanable/blood/old,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cvi" = (/obj/structure/bed,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cvj" = (/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/compressor{comp_id = "incineratorturbine"; dir = 1; luminosity = 2},/turf/open/floor/engine/vacuum,/area/maintenance/incinerator) +"cvk" = (/obj/structure/mineral_door/wood{name = "The Gobbetting Barmaid"},/turf/open/floor/wood{icon_state = "wood-broken6"},/area/maintenance/aft{name = "Aft Maintenance"}) +"cvl" = (/obj/structure/table,/obj/item/clothing/gloves/color/latex,/obj/item/clothing/mask/surgical,/obj/item/clothing/suit/apron/surgical,/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/open/floor/plasteel/white/side{dir = 4},/area/medical/surgery) +"cvm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/surgery) +"cvn" = (/obj/effect/landmark/start{name = "Medical Doctor"},/turf/open/floor/plasteel/white,/area/medical/surgery) +"cvo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/surgery) +"cvp" = (/obj/machinery/power/apc{dir = 4; name = "Surgery APC"; pixel_x = 26; pixel_y = 0},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/structure/table,/obj/item/weapon/surgical_drapes,/turf/open/floor/plasteel/white/side{dir = 8},/area/medical/surgery) +"cvq" = (/obj/structure/bed/roller,/obj/machinery/light/small{dir = 8},/obj/machinery/iv_drip{density = 0},/turf/open/floor/plasteel/white,/area/medical/surgery) +"cvr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/surgery) +"cvs" = (/obj/structure/bed,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/item/weapon/bedsheet/medical,/turf/open/floor/plasteel/white,/area/medical/surgery) +"cvt" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/medical/surgery) +"cvu" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/whiteblue/side{dir = 8},/area/medical/cryo) +"cvv" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel/warnwhite{dir = 4},/area/medical/cryo) +"cvw" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 6},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel/warning{dir = 8},/area/medical/cryo) +"cvx" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 2},/obj/effect/landmark/start{name = "Medical Doctor"},/turf/open/floor/plasteel,/area/medical/cryo) +"cvy" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 9},/turf/open/floor/plasteel/warning{dir = 4},/area/medical/cryo) +"cvz" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/delivery,/area/medical/cryo) +"cvA" = (/turf/open/floor/plasteel/whiteblue/side{dir = 8},/area/medical/medbay{name = "Medbay Central"}) +"cvB" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/filingcabinet/chestdrawer,/turf/open/floor/plasteel/barber{dir = 8},/area/medical/cmo) +"cvC" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/turf/open/floor/plasteel/barber{dir = 8},/area/medical/cmo) +"cvD" = (/obj/structure/chair/office/light{dir = 1},/obj/effect/landmark/start{name = "Chief Medical Officer"},/turf/open/floor/plasteel/barber{dir = 8},/area/medical/cmo) +"cvE" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/mob/living/simple_animal/pet/cat/Runtime,/turf/open/floor/plasteel/barber{dir = 8},/area/medical/cmo) +"cvF" = (/obj/machinery/power/apc{dir = 4; name = "CMO's Office APC"; pixel_x = 26; pixel_y = 0},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/camera{c_tag = "CMO's Office"; dir = 8; network = list("SS13","Medbay")},/turf/open/floor/plasteel/barber{dir = 8},/area/medical/cmo) +"cvG" = (/obj/structure/closet/wardrobe/chemistry_white{pixel_x = -3},/obj/item/weapon/storage/backpack/satchel/chem,/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/turf/open/floor/plasteel/warnwhite{dir = 5},/area/medical/chemistry) +"cvH" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/whiteyellow/side{dir = 8},/area/medical/chemistry) +"cvI" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/white,/area/medical/chemistry) +"cvJ" = (/obj/structure/chair/office/light{dir = 4},/obj/effect/landmark/start{name = "Chemist"},/turf/open/floor/plasteel/whiteyellow/side{dir = 4},/area/medical/chemistry) +"cvK" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/white,/obj/machinery/door/firedoor,/obj/machinery/door/window/eastright{dir = 8; name = "Chemistry Desk"; req_access_txt = "5; 33"},/obj/item/weapon/folder/white,/obj/item/weapon/pen,/obj/machinery/door/poddoor/shutters/preopen{id = "chemistry_shutters_2"; name = "chemistry shutters"},/turf/open/floor/plasteel/whiteyellow{dir = 4},/area/medical/chemistry) +"cvL" = (/turf/open/floor/plasteel/yellow{dir = 4},/area/hallway/primary/aft) +"cvM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel/yellow/side{dir = 8},/area/hallway/primary/aft) +"cvN" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/purple/side{dir = 4},/area/hallway/primary/aft) +"cvO" = (/turf/open/floor/plasteel/purple,/area/hallway/primary/aft) +"cvP" = (/obj/structure/table/reinforced,/obj/machinery/door/window/eastright{dir = 4; name = "Research and Development Desk"; req_access_txt = "7"},/obj/item/weapon/folder/white,/obj/item/weapon/folder/white,/obj/machinery/door/firedoor,/obj/item/weapon/pen,/obj/machinery/door/poddoor/shutters/preopen{id = "research_shutters_2"; name = "research shutters"},/turf/open/floor/plating,/area/toxins/lab) +"cvQ" = (/obj/effect/landmark/start{name = "Scientist"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/whitepurple/side{dir = 8},/area/toxins/lab) +"cvR" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/white,/area/toxins/lab) +"cvS" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plasteel/white,/area/toxins/lab) +"cvT" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/lab) +"cvU" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/plasteel/whitepurple/side{dir = 4},/area/toxins/lab) +"cvV" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Research and Development Lab"; req_access_txt = "0"; req_one_access_txt = "7;29"},/turf/open/floor/plasteel/whitepurple{dir = 4},/area/toxins/lab) +"cvW" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/whitepurple/side{dir = 8},/area/medical/research{name = "Research Division"}) +"cvX" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cvY" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cvZ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cwa" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cwb" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cwc" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cwd" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 2},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cwe" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cwf" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/landmark{name = "lightsout"},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cwg" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/junction{dir = 8; icon_state = "pipe-j1"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cwh" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cwi" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_Toxins = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cwj" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/junction{dir = 8; icon_state = "pipe-j2"},/turf/open/floor/plasteel/whitepurple/side{dir = 4},/area/medical/research{name = "Research Division"}) +"cwk" = (/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/airlock/research{name = "Experimentation Lab"; req_access_txt = "8"},/turf/open/floor/plasteel/whitepurple{dir = 4},/area/toxins/explab) +"cwl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/whitepurple/side{dir = 8},/area/toxins/explab) +"cwm" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/white,/area/toxins/explab) +"cwn" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/white,/area/toxins/explab) +"cwo" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/white,/area/toxins/explab) +"cwp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/white,/area/toxins/explab) +"cwq" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/white,/area/toxins/explab) +"cwr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/warning{dir = 8},/area/toxins/explab) +"cws" = (/obj/machinery/door/airlock/maintenance{name = "Experimentation Lab Maintenance"; req_access_txt = "8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/toxins/explab) +"cwt" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/aft{name = "Aft Maintenance"}) +"cwu" = (/obj/structure/bed/roller,/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/aft{name = "Aft Maintenance"}) +"cwv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/aft{name = "Aft Maintenance"}) +"cww" = (/obj/structure/barricade/wooden,/obj/structure/girder,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cwx" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cwy" = (/obj/effect/decal/cleanable/blood/gibs/limb,/obj/structure/rack,/obj/item/weapon/storage/firstaid/regular{pixel_x = 0; pixel_y = 0},/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/ointment,/obj/item/clothing/glasses/hud/health,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cwz" = (/obj/structure/lattice,/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 5},/turf/open/space,/area/space) +"cwA" = (/obj/machinery/atmospherics/components/unary/outlet_injector{dir = 8; on = 1; pixel_y = 0; use_power = 0},/turf/open/floor/plating/airless,/area/space) +"cwB" = (/obj/structure/cable,/obj/machinery/power/turbine{luminosity = 2},/turf/open/floor/engine/vacuum,/area/maintenance/incinerator) +"cwC" = (/obj/structure/lattice/catwalk,/obj/item/weapon/wrench,/turf/open/space,/area/space) +"cwD" = (/obj/structure/chair/stool,/turf/open/floor/wood{icon_state = "wood-broken7"},/area/maintenance/aft{name = "Aft Maintenance"}) +"cwE" = (/turf/open/floor/wood{icon_state = "wood-broken6"},/area/maintenance/aft{name = "Aft Maintenance"}) +"cwF" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/disposalpipe/segment,/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/aft{name = "Aft Maintenance"}) +"cwG" = (/obj/machinery/door/airlock/maintenance{name = "Surgery Maintenance"; req_access_txt = "45"},/turf/open/floor/plating,/area/medical/surgery) +"cwH" = (/turf/open/floor/plasteel/white,/area/medical/surgery) +"cwI" = (/obj/structure/table/optable,/turf/open/floor/plasteel/white,/area/medical/surgery) +"cwJ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/white,/area/medical/surgery) +"cwK" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{name = "Operating Theatre"; req_access_txt = "45"},/turf/open/floor/plasteel/white,/area/medical/surgery) +"cwL" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/white,/area/medical/surgery) +"cwM" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/obj/effect/landmark/start{name = "Medical Doctor"},/obj/machinery/holopad,/turf/open/floor/plasteel/white,/area/medical/surgery) +"cwN" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/surgery) +"cwO" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{id_tag = ""; name = "Surgery Observation"; req_access_txt = "0"},/turf/open/floor/plasteel/white,/area/medical/surgery) +"cwP" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/whiteblue/side{dir = 8},/area/medical/cryo) +"cwQ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel/warnwhite{dir = 4},/area/medical/cryo) +"cwR" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 8},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/warning{dir = 8},/area/medical/cryo) +"cwS" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/medical/cryo) +"cwT" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 10},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/warning{dir = 4},/area/medical/cryo) +"cwU" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/turf/open/floor/plasteel/delivery,/area/medical/cryo) +"cwV" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/whiteblue/side{dir = 8},/area/medical/medbay{name = "Medbay Central"}) +"cwW" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/white,/area/medical/medbay{name = "Medbay Central"}) +"cwX" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/door/poddoor/preopen{id = "cmoprivacy"; name = "privacy shutter"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/medical/cmo) +"cwY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/barber{dir = 8},/area/medical/cmo) +"cwZ" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/barber{dir = 8},/area/medical/cmo) +"cxa" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/barber{dir = 8},/area/medical/cmo) +"cxb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/barber{dir = 8},/area/medical/cmo) +"cxc" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/airlock/maintenance{name = "CMO Maintenance"; req_access_txt = "40"},/turf/open/floor/plating,/area/medical/cmo) +"cxd" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/aft{name = "Aft Maintenance"}) +"cxe" = (/obj/machinery/power/apc{dir = 8; name = "Chemistry APC"; pixel_x = -24; pixel_y = 0},/obj/structure/closet/secure_closet/chemical{pixel_x = -3},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/open/floor/plasteel/warnwhite{dir = 4},/area/medical/chemistry) +"cxf" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/whiteyellow/side{dir = 10},/area/medical/chemistry) +"cxg" = (/obj/machinery/chem_heater{pixel_x = 4},/turf/open/floor/plasteel/whiteyellow/side{dir = 2},/area/medical/chemistry) +"cxh" = (/obj/machinery/chem_master{layer = 2.7; pixel_x = -2},/obj/structure/noticeboard{desc = "A board for pinning important notices upon. Probably helpful for keeping track of requests."; dir = 1; name = "requests board"; pixel_x = 0; pixel_y = -32},/obj/machinery/button/door{id = "chemistry_shutters_2"; name = "chemistry shutters control"; pixel_x = 26; pixel_y = -26; req_access_txt = "5; 33"},/turf/open/floor/plasteel/whiteyellow/side{dir = 6},/area/medical/chemistry) +"cxi" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 6},/turf/open/floor/plasteel/purple,/area/hallway/primary/aft) +"cxj" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/shutters/preopen{id = "research_shutters_2"; name = "research shutters"},/turf/open/floor/plating,/area/toxins/lab) +"cxk" = (/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/machinery/power/apc{dir = 2; name = "Research Lab APC"; pixel_x = 0; pixel_y = -26},/obj/structure/cable/yellow,/obj/structure/table,/obj/machinery/button/door{id = "research_shutters_2"; name = "research shutters control"; pixel_x = -26; pixel_y = -26; req_access_txt = "7"},/turf/open/floor/plasteel/warning{dir = 1},/area/toxins/lab) +"cxl" = (/obj/item/weapon/storage/toolbox/mechanical{pixel_x = 2; pixel_y = 3},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/item/stack/cable_coil,/obj/item/stack/cable_coil,/obj/structure/table,/turf/open/floor/plasteel/warning{dir = 1},/area/toxins/lab) +"cxm" = (/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/weapon/hand_labeler,/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_x = 0; pixel_y = -30},/obj/structure/table,/turf/open/floor/plasteel/warning{dir = 1},/area/toxins/lab) +"cxn" = (/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/machinery/door/window/eastleft{dir = 1; name = "Research and Development Deliveries"; req_access_txt = "7"},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/delivery,/area/toxins/lab) +"cxo" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/warning{dir = 1},/area/toxins/lab) +"cxp" = (/obj/machinery/airalarm{dir = 1; pixel_y = -22},/obj/structure/sink{dir = 8; icon_state = "sink"; pixel_x = -12; pixel_y = 2},/turf/open/floor/plasteel/whitepurple/corner{dir = 1},/area/medical/research{name = "Research Division"}) +"cxq" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cxr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cxs" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cxt" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cxu" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cxv" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cxw" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cxx" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/camera{c_tag = "Research Division Hallway - Starboard"; dir = 1; network = list("SS13","RD")},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cxy" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cxz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cxA" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/turf/open/floor/plasteel/whitepurple/corner{dir = 2},/area/medical/research{name = "Research Division"}) +"cxB" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/whitepurple/side{dir = 6},/area/medical/research{name = "Research Division"}) +"cxC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/toxins/explab) +"cxD" = (/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/whitepurple/corner{dir = 1},/area/toxins/explab) +"cxE" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/power/apc{dir = 2; name = "Experimentation Lab APC"; pixel_y = -24},/obj/structure/cable/yellow,/turf/open/floor/plasteel/white,/area/toxins/explab) +"cxF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/machinery/camera{c_tag = "Experimentation Lab"; dir = 1; network = list("SS13","RD")},/obj/machinery/light,/turf/open/floor/plasteel/white,/area/toxins/explab) +"cxG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/explab) +"cxH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/white,/area/toxins/explab) +"cxI" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/toxins/explab) +"cxJ" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/open/floor/plasteel/warning{dir = 8},/area/toxins/explab) +"cxK" = (/obj/structure/bed/roller,/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/blood/gibs/old,/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/aft{name = "Aft Maintenance"}) +"cxL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cxM" = (/obj/structure/barricade/wooden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/girder,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cxN" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cxO" = (/obj/structure/bed,/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/blood/gibs/old,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cxP" = (/obj/structure/lattice,/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/space,/area/space) +"cxQ" = (/obj/structure/disposaloutlet{dir = 2},/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/lattice/catwalk,/turf/open/space,/area/space) +"cxR" = (/obj/structure/sign/fire{pixel_x = 0; pixel_y = 0},/turf/closed/wall/r_wall,/area/maintenance/incinerator) +"cxS" = (/obj/machinery/door/poddoor{id = "turbinevent"; name = "Turbine Vent"},/turf/open/floor/engine/vacuum,/area/maintenance/incinerator) +"cxT" = (/obj/item/toy/cards/deck,/obj/structure/table/wood/poker,/turf/open/floor/wood,/area/maintenance/aft{name = "Aft Maintenance"}) +"cxU" = (/turf/open/floor/wood{icon_state = "wood-broken4"},/area/maintenance/aft{name = "Aft Maintenance"}) +"cxV" = (/obj/item/weapon/poster/contraband,/obj/item/weapon/poster/contraband,/obj/item/weapon/poster/contraband,/obj/item/weapon/poster/contraband,/obj/item/weapon/poster/contraband,/obj/item/weapon/reagent_containers/food/drinks/beer{pixel_x = -3; pixel_y = 2},/obj/item/weapon/reagent_containers/food/drinks/ale,/obj/structure/table/wood,/obj/structure/sign/poster{pixel_x = 32; pixel_y = 0},/obj/item/device/instrument/eguitar,/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/aft{name = "Aft Maintenance"}) +"cxW" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/sink{dir = 8; icon_state = "sink"; pixel_x = -12; pixel_y = 2},/obj/machinery/light_switch{pixel_x = -28; pixel_y = 0},/turf/open/floor/plasteel/white/side{dir = 4},/area/medical/surgery) +"cxX" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/white,/area/medical/surgery) +"cxY" = (/obj/machinery/computer/operating,/turf/open/floor/plasteel/white,/area/medical/surgery) +"cxZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/white,/area/medical/surgery) +"cya" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel/white/side{dir = 8},/area/medical/surgery) +"cyb" = (/obj/structure/bed/roller,/obj/machinery/iv_drip{density = 0},/turf/open/floor/plasteel/white,/area/medical/surgery) +"cyc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel/white,/area/medical/surgery) +"cyd" = (/obj/structure/bed,/obj/item/weapon/bedsheet/medical,/obj/machinery/light_switch{pixel_x = 26; pixel_y = 0},/turf/open/floor/plasteel/white,/area/medical/surgery) +"cye" = (/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel/whiteblue/side{dir = 8},/area/medical/cryo) +"cyf" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/table/reinforced,/obj/item/weapon/crowbar,/obj/machinery/camera{c_tag = "Medbay Cryo"; dir = 1; network = list("SS13","Medbay")},/obj/item/weapon/screwdriver{pixel_y = 6},/obj/item/clothing/neck/stethoscope,/obj/item/weapon/wrench/medical,/turf/open/floor/plasteel/warnwhite{dir = 4},/area/medical/cryo) +"cyg" = (/obj/machinery/atmospherics/components/unary/thermomachine/freezer{dir = 1},/obj/item/device/radio/intercom{broadcasting = 1; freerange = 0; frequency = 1485; listening = 0; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = -30},/obj/machinery/light,/turf/open/floor/plasteel/warning{dir = 10},/area/medical/cryo) +"cyh" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 1; name = "Connector Port (Air Supply)"},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/plasteel/warning{dir = 2},/area/medical/cryo) +"cyi" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 1; name = "Connector Port (Air Supply)"},/obj/machinery/portable_atmospherics/canister/oxygen,/obj/machinery/light_switch{pixel_x = 0; pixel_y = -24},/turf/open/floor/plasteel/warning{dir = 6},/area/medical/cryo) +"cyj" = (/turf/open/floor/plasteel/whiteblue/corner{dir = 1},/area/medical/medbay{name = "Medbay Central"}) +"cyk" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/whiteblue/corner{dir = 2},/area/medical/medbay{name = "Medbay Central"}) +"cyl" = (/obj/machinery/airalarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/barber{dir = 8},/area/medical/cmo) +"cym" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/holopad,/turf/open/floor/plasteel/barber{dir = 8},/area/medical/cmo) +"cyn" = (/obj/structure/table/glass,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/item/weapon/storage/secure/briefcase,/turf/open/floor/plasteel/barber{dir = 8},/area/medical/cmo) +"cyo" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/barber{dir = 8},/area/medical/cmo) +"cyp" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/keycard_auth{pixel_x = 26; pixel_y = -7},/obj/machinery/computer/med_data/laptop,/obj/structure/table/glass,/obj/machinery/button/door{id = "cmoprivacy"; name = "Privacy Shutters Control"; pixel_x = 26; pixel_y = 4},/turf/open/floor/plasteel/barber{dir = 8},/area/medical/cmo) +"cyq" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cyr" = (/obj/machinery/door/airlock/maintenance{name = "Chemistry Lab Maintenance"; req_access_txt = "5; 33"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plating,/area/medical/chemistry) +"cys" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -29},/turf/open/floor/plasteel/yellow/corner{dir = 1},/area/hallway/primary/aft) +"cyt" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/hallway/primary/aft) +"cyu" = (/obj/machinery/power/apc{cell_type = 5000; dir = 4; name = "Aft Hallway APC"; pixel_x = 24; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel/purple/corner{dir = 4},/area/hallway/primary/aft) +"cyv" = (/obj/structure/plasticflaps{opacity = 1},/obj/machinery/navbeacon{codes_txt = "delivery;dir=1"; dir = 1; freq = 1400; location = "Research and Development"},/turf/open/floor/plasteel/delivery,/area/toxins/lab) +"cyw" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/maintenance{name = "Research Lab Maintenance"; req_access_txt = "7;29"},/turf/open/floor/plating/warnplate{dir = 1},/area/toxins/lab) +"cyx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor,/turf/open/floor/plasteel/white/side{dir = 5},/area/medical/research{name = "Research Division"}) +"cyy" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cyz" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cyA" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/door/poddoor/preopen{id = "rdprivacy"; name = "privacy shutter"},/turf/open/floor/plating,/area/crew_quarters/hor) +"cyB" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/machinery/door/poddoor/preopen{id = "rdprivacy"; name = "privacy shutter"},/turf/open/floor/plating,/area/crew_quarters/hor) +"cyC" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/machinery/door/poddoor/preopen{id = "rdprivacy"; name = "privacy shutter"},/turf/open/floor/plating,/area/crew_quarters/hor) +"cyD" = (/turf/closed/wall,/area/crew_quarters/hor) +"cyE" = (/turf/closed/wall/r_wall,/area/toxins/storage) +"cyF" = (/obj/structure/sign/biohazard,/turf/closed/wall/r_wall,/area/toxins/storage) +"cyG" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/research{name = "Toxins Storage"; req_access_txt = "8"},/obj/machinery/door/poddoor/shutters/preopen{id = "toxins_blastdoor"; name = "biohazard containment shutters"},/turf/open/floor/plasteel/delivery,/area/toxins/storage) +"cyH" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/warning{dir = 1},/area/toxins/explab) +"cyI" = (/obj/structure/closet/radiation,/turf/open/floor/plasteel/warning{dir = 1},/area/toxins/explab) +"cyJ" = (/obj/structure/closet/l3closet/scientist{pixel_x = -2},/turf/open/floor/plasteel/warning{dir = 1},/area/toxins/explab) +"cyK" = (/obj/structure/closet/wardrobe/science_white,/turf/open/floor/plasteel/warning{dir = 1},/area/toxins/explab) +"cyL" = (/obj/structure/rack,/obj/item/weapon/reagent_containers/blood/random,/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/aft{name = "Aft Maintenance"}) +"cyM" = (/obj/structure/table,/obj/structure/bedsheetbin{pixel_x = 2},/obj/item/clothing/mask/muzzle,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cyN" = (/obj/structure/table,/obj/item/weapon/restraints/handcuffs/cable/white,/obj/item/weapon/gun/syringe,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cyO" = (/obj/structure/rack,/obj/item/weapon/hatchet,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cyP" = (/obj/machinery/iv_drip{density = 0},/obj/item/roller,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cyQ" = (/obj/structure/rack,/obj/item/weapon/tank/internals/anesthetic,/obj/item/clothing/mask/gas,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cyR" = (/obj/structure/light_construct/small,/obj/structure/table/wood/poker,/obj/item/toy/cards/deck,/obj/structure/sign/poster{pixel_y = -32},/turf/open/floor/wood,/area/maintenance/aft{name = "Aft Maintenance"}) +"cyS" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plating{icon_state = "platingdmg1"},/area/maintenance/aft{name = "Aft Maintenance"}) +"cyT" = (/obj/item/weapon/dice/d20,/obj/item/weapon/dice,/obj/structure/table/wood,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/sign/poster{pixel_y = -32},/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/aft{name = "Aft Maintenance"}) +"cyU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/maintenance/aft{name = "Aft Maintenance"}) +"cyV" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cyW" = (/obj/structure/closet/secure_closet/medical2,/obj/structure/sign/nosmoking_2{pixel_x = -28},/turf/open/floor/plasteel,/area/medical/surgery) +"cyX" = (/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/open/floor/plasteel/white/side{dir = 1},/area/medical/surgery) +"cyY" = (/obj/machinery/light,/obj/machinery/camera{c_tag = "Medbay Surgery"; dir = 1; network = list("SS13","Medbay")},/turf/open/floor/plasteel/white,/area/medical/surgery) +"cyZ" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/plasteel/white/side{dir = 1},/area/medical/surgery) +"cza" = (/obj/item/device/radio/intercom{broadcasting = 1; freerange = 0; frequency = 1485; listening = 0; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = -30},/obj/structure/closet/crate/freezer/blood,/turf/open/floor/plasteel,/area/medical/surgery) +"czb" = (/obj/structure/bed/roller,/obj/machinery/light/small{dir = 8},/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/structure/sign/nosmoking_2{pixel_x = -28},/obj/machinery/iv_drip{density = 0},/turf/open/floor/plasteel/whiteblue/side{dir = 2},/area/medical/surgery) +"czc" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel/whiteblue/side{dir = 2},/area/medical/surgery) +"czd" = (/obj/structure/bed,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/item/weapon/bedsheet/medical,/obj/machinery/newscaster{pixel_x = 0; pixel_y = -32},/obj/machinery/camera{c_tag = "Medbay Recovery Room"; dir = 1; network = list("SS13","Medbay")},/turf/open/floor/plasteel/whiteblue/side{dir = 2},/area/medical/surgery) +"cze" = (/obj/machinery/door/airlock/maintenance{name = "Medbay Maintenance"; req_access_txt = "5"},/turf/open/floor/plating,/area/medical/cryo) +"czf" = (/turf/closed/wall,/area/medical/cryo) +"czg" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/camera{c_tag = "Medbay Hallway Central"; dir = 4; network = list("SS13","Medbay")},/turf/open/floor/plasteel/whiteblue/corner{dir = 8},/area/medical/medbay{name = "Medbay Central"}) +"czh" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/white,/area/medical/medbay{name = "Medbay Central"}) +"czi" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/whiteblue/side{dir = 4},/area/medical/medbay{name = "Medbay Central"}) +"czj" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{name = "Chief Medical Officer's Office"; req_access_txt = "40"; req_one_access_txt = "0"},/turf/open/floor/plasteel/barber{dir = 8},/area/medical/cmo) +"czk" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j2s"; sortType = 10},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/barber{dir = 8},/area/medical/cmo) +"czl" = (/obj/structure/chair{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/plasteel/barber{dir = 8},/area/medical/cmo) +"czm" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/table/glass,/obj/item/weapon/folder/blue,/obj/item/weapon/folder/blue,/obj/item/weapon/pen,/turf/open/floor/plasteel/barber{dir = 8},/area/medical/cmo) +"czn" = (/obj/structure/chair/office/light{dir = 8},/obj/machinery/requests_console{announcementConsole = 1; department = "Chief Medical Officer's Desk"; departmentType = 5; name = "Chief Medical Officer RC"; pixel_x = 0; pixel_y = -32},/obj/effect/landmark/start{name = "Chief Medical Officer"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/barber{dir = 8},/area/medical/cmo) +"czo" = (/obj/machinery/computer/security/telescreen{desc = "Used for monitoring medbay to ensure patient safety."; dir = 8; name = "Medbay Monitor"; network = list("Medbay"); pixel_x = 29; pixel_y = 0},/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = -29},/obj/machinery/computer/card/minor/cmo,/turf/open/floor/plasteel/barber{dir = 8},/area/medical/cmo) +"czp" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"czq" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"czr" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating{icon_state = "platingdmg1"},/area/maintenance/aft{name = "Aft Maintenance"}) +"czs" = (/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j1s"; sortType = 11},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/aft{name = "Aft Maintenance"}) +"czt" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"czu" = (/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j2s"; sortType = 23},/turf/open/floor/plating/warnplate{dir = 2},/area/maintenance/aft{name = "Aft Maintenance"}) +"czv" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;5;9"},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"czw" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/aft) +"czx" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/junction{dir = 8; icon_state = "pipe-j1"},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"czy" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/hallway/primary/aft) +"czz" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock{name = "Aft Emergency Storage"; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"czA" = (/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j2s"; sortType = 14},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/aft{name = "Aft Maintenance"}) +"czB" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"czC" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/aft{name = "Aft Maintenance"}) +"czD" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "7;47;29;12"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"czE" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating/warnplate{dir = 9},/area/maintenance/aft{name = "Aft Maintenance"}) +"czF" = (/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j1s"; sortType = 12},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/aft{name = "Aft Maintenance"}) +"czG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating/warnplate{dir = 2},/area/maintenance/aft{name = "Aft Maintenance"}) +"czH" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/aft{name = "Aft Maintenance"}) +"czI" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/maintenance{name = "Research Maintenance"; req_access_txt = "0"; req_one_access_txt = "7;47;29"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/medical/research{name = "Research Division"}) +"czJ" = (/obj/structure/disposalpipe/junction{dir = 8; icon_state = "pipe-j1"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/white/side{dir = 4},/area/medical/research{name = "Research Division"}) +"czK" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j2s"; sortType = 13},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"czL" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"czM" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/door/poddoor/preopen{id = "rdprivacy"; name = "privacy shutter"},/turf/open/floor/plating,/area/crew_quarters/hor) +"czN" = (/obj/machinery/computer/security/telescreen{desc = "Used for watching the RD's goons from the safety of his office."; name = "Research Monitor"; network = list("RD"); pixel_x = 0; pixel_y = 2},/obj/structure/table/reinforced,/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/hor) +"czO" = (/obj/item/weapon/folder/white,/obj/item/weapon/stamp/rd{pixel_x = 3; pixel_y = -2},/obj/structure/table/reinforced,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/hor) +"czP" = (/obj/machinery/computer/aifixer,/obj/structure/window/reinforced{dir = 4},/obj/machinery/requests_console{announcementConsole = 1; department = "Research Director's Desk"; departmentType = 5; name = "Research Director RC"; pixel_x = 0; pixel_y = 30},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/hor) +"czQ" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/open/floor/plasteel/warnwhite{dir = 8},/area/crew_quarters/hor) +"czR" = (/obj/structure/displaycase/labcage,/obj/machinery/light/small{dir = 1},/obj/structure/sign/biohazard{pixel_y = 32},/turf/open/floor/plasteel/white,/area/crew_quarters/hor) +"czS" = (/obj/item/weapon/storage/secure/safe{pixel_x = 32; pixel_y = 0},/obj/machinery/ai_status_display{pixel_y = 32},/turf/open/floor/plasteel/warnwhite{dir = 4},/area/crew_quarters/hor) +"czT" = (/obj/machinery/portable_atmospherics/scrubber/huge,/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/turf/open/floor/plasteel/delivery{name = "floor"},/area/toxins/storage) +"czU" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/warning{dir = 9},/area/toxins/storage) +"czV" = (/obj/machinery/light/small{dir = 1},/obj/structure/sign/nosmoking_2{pixel_y = 32},/turf/open/floor/plasteel/warning{dir = 5},/area/toxins/storage) +"czW" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/machinery/power/apc{cell_type = 5000; dir = 1; name = "Toxins Storage APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/open/floor/plasteel/bot,/area/toxins/storage) +"czX" = (/obj/machinery/portable_atmospherics/scrubber/huge,/turf/open/floor/plasteel/delivery{name = "floor"},/area/toxins/storage) +"czY" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plating{icon_state = "platingdmg2"},/area/maintenance/aft{name = "Aft Maintenance"}) +"czZ" = (/obj/machinery/camera{active_power_usage = 0; c_tag = "Turbine Vent"; dir = 4; network = list("Turbine"); use_power = 0},/turf/open/space,/area/space) +"cAa" = (/obj/structure/grille/broken,/turf/open/space,/area/space) +"cAb" = (/obj/machinery/vending/cigarette,/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/aft{name = "Aft Maintenance"}) +"cAc" = (/obj/machinery/vending/assist,/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/aft{name = "Aft Maintenance"}) +"cAd" = (/obj/machinery/door/airlock/maintenance{name = "Medbay Maintenance"; req_access_txt = "5"},/turf/open/floor/plating,/area/medical/surgery) +"cAe" = (/obj/structure/bed,/obj/item/weapon/bedsheet/medical,/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/whiteblue/side{dir = 8},/area/medical/patients_rooms{name = "Patient Room A"}) +"cAf" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/vending/wallmed{pixel_x = 0; pixel_y = 28},/turf/open/floor/plasteel/white,/area/medical/patients_rooms{name = "Patient Room A"}) +"cAg" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/machinery/light_switch{pixel_x = 0; pixel_y = 24},/turf/open/floor/plasteel/whiteblue/side{dir = 4},/area/medical/patients_rooms{name = "Patient Room A"}) +"cAh" = (/obj/machinery/door/airlock/medical{name = "Patient Room A"; req_access_txt = "5"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/white,/area/medical/patients_rooms{name = "Patient Room A"}) +"cAi" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/white,/area/medical/medbay{name = "Medbay Central"}) +"cAj" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/whiteblue/corner{dir = 4},/area/medical/medbay{name = "Medbay Central"}) +"cAk" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/light_switch{pixel_x = -28; pixel_y = 0},/obj/machinery/newscaster{pixel_x = 0; pixel_y = -30},/turf/open/floor/plasteel/barber{dir = 8},/area/medical/cmo) +"cAl" = (/obj/machinery/suit_storage_unit/cmo,/turf/open/floor/plasteel/barber{dir = 8},/area/medical/cmo) +"cAm" = (/obj/structure/table/glass,/obj/item/weapon/pen,/obj/item/clothing/neck/stethoscope,/obj/structure/extinguisher_cabinet{pixel_x = 6; pixel_y = -30},/turf/open/floor/plasteel/barber{dir = 8},/area/medical/cmo) +"cAn" = (/turf/closed/wall/r_wall,/area/medical/genetics) +"cAo" = (/turf/closed/wall,/area/medical/genetics) +"cAp" = (/obj/machinery/door/airlock/maintenance{name = "Genetics Maintenance"; req_access_txt = "9"; req_one_access_txt = "0"},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/medical/genetics) +"cAq" = (/obj/structure/sign/directions/evac{pixel_y = 0},/turf/closed/wall,/area/medical/genetics) +"cAr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/door/firedoor,/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/aft) +"cAs" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/hallway/primary/aft) +"cAt" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/hallway/primary/aft) +"cAu" = (/obj/structure/sign/directions/evac{pixel_y = 0},/turf/closed/wall,/area/maintenance/aft{name = "Aft Maintenance"}) +"cAv" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cAw" = (/obj/item/weapon/storage/toolbox/emergency,/obj/structure/closet/firecloset,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cAx" = (/obj/item/weapon/tank/internals/air,/obj/item/weapon/tank/internals/air,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/machinery/space_heater,/obj/effect/spawner/lootdrop/maintenance,/obj/structure/sign/poster{pixel_x = 32; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cAy" = (/turf/closed/wall/r_wall,/area/toxins/misc_lab{name = "\improper Research Testing Range"}) +"cAz" = (/obj/machinery/door/airlock/maintenance{name = "Research Testing Range Maintenance"; req_access_txt = "0"; req_one_access_txt = "7;47;29"},/turf/open/floor/plating,/area/toxins/misc_lab{name = "\improper Research Testing Range"}) +"cAA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/white/side{dir = 6},/area/medical/research{name = "Research Division"}) +"cAB" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cAC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cAD" = (/obj/machinery/button/door{id = "xeno_blastdoor"; name = "Secure Lab Shutter Control"; pixel_x = -5; pixel_y = -5; req_access_txt = "47"},/obj/structure/table/reinforced,/obj/machinery/button/door{id = "rdprivacy"; name = "Privacy Shutters Control"; pixel_x = 5; pixel_y = 5},/obj/machinery/button/door{id = "Biohazard"; name = "Entrance Shutter Control"; pixel_x = -5; pixel_y = 5; req_access_txt = "47"},/obj/machinery/button/door{id = "toxins_blastdoor"; name = "Toxins Shutter Control"; pixel_x = 5; pixel_y = -5; req_access_txt = "47"},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/hor) +"cAE" = (/obj/structure/chair/office/light{dir = 8},/obj/effect/landmark/start{name = "Research Director"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/hor) +"cAF" = (/obj/machinery/computer/robotics,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/hor) +"cAG" = (/turf/open/floor/plasteel/warnwhite{dir = 10},/area/crew_quarters/hor) +"cAH" = (/turf/open/floor/plasteel/warnwhite{dir = 2},/area/crew_quarters/hor) +"cAI" = (/turf/open/floor/plasteel/warnwhite{dir = 6},/area/crew_quarters/hor) +"cAJ" = (/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/open/floor/plasteel/bot,/area/toxins/storage) +"cAK" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plasteel/warning{dir = 8},/area/toxins/storage) +"cAL" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/structure/chair/stool,/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/plasteel/warning{dir = 4},/area/toxins/storage) +"cAM" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/bot,/area/toxins/storage) +"cAN" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/open/floor/plasteel/bot,/area/toxins/storage) +"cAO" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cAP" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cAQ" = (/obj/structure/closet,/obj/item/weapon/storage/toolbox/emergency,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cAR" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar{id = "aftport"; name = "Aft-Port Solar Array"},/turf/open/floor/plasteel/airless/solarpanel,/area/solar/port) +"cAS" = (/obj/structure/closet,/obj/item/weapon/extinguisher,/obj/effect/decal/cleanable/cobweb,/obj/item/device/flashlight,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cAT" = (/obj/structure/closet,/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 8; pixel_y = 2},/obj/item/weapon/reagent_containers/dropper,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cAU" = (/obj/structure/closet/crate,/obj/item/stack/cable_coil,/obj/item/weapon/grenade/chem_grenade,/obj/item/device/flashlight,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cAV" = (/obj/structure/closet/crate,/obj/item/weapon/coin/silver,/obj/item/weapon/reagent_containers/spray/weedspray,/obj/item/weapon/paper,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cAW" = (/obj/effect/decal/cleanable/cobweb,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cAX" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/clothing/neck/stethoscope,/obj/machinery/light/small{dir = 8},/obj/machinery/power/apc{dir = 8; name = "Patient Room A APC"; pixel_x = -26; pixel_y = 0},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/whiteblue/side{dir = 8},/area/medical/patients_rooms{name = "Patient Room A"}) +"cAY" = (/obj/structure/chair/office/light{dir = 8},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/white,/area/medical/patients_rooms{name = "Patient Room A"}) +"cAZ" = (/obj/structure/closet/secure_closet/personal/patient,/obj/machinery/button/door{id = "isola"; name = "Privacy Shutters"; pixel_y = -25},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/whiteblue/side{dir = 4},/area/medical/patients_rooms{name = "Patient Room A"}) +"cBa" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/poddoor/preopen{id = "isola"; name = "privacy shutters"},/turf/open/floor/plating,/area/medical/patients_rooms{name = "Patient Room A"}) +"cBb" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/whiteblue/corner{dir = 1},/area/medical/medbay{name = "Medbay Central"}) +"cBc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/white,/area/medical/medbay{name = "Medbay Central"}) +"cBd" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/white,/area/medical/medbay{name = "Medbay Central"}) +"cBe" = (/obj/item/weapon/storage/box/rxglasses{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/bodybags,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -29},/obj/structure/table/glass,/turf/open/floor/plasteel/vault,/area/medical/genetics) +"cBf" = (/obj/item/clothing/gloves/color/latex,/obj/item/clothing/gloves/color/latex,/obj/item/weapon/storage/box/disks{pixel_x = 2; pixel_y = 2},/obj/structure/table/glass,/turf/open/floor/plasteel/vault,/area/medical/genetics) +"cBg" = (/obj/machinery/requests_console{department = "Genetics"; departmentType = 0; name = "Genetics Requests Console"; pixel_x = 0; pixel_y = 30},/obj/machinery/light{dir = 1},/obj/item/weapon/storage/box/monkeycubes,/obj/item/device/radio/headset/headset_medsci,/obj/item/device/flashlight/pen{pixel_x = 4; pixel_y = 3},/obj/item/device/flashlight/pen{pixel_x = 4; pixel_y = 3},/obj/structure/noticeboard{desc = "A board for pinning important notices upon."; name = "notice board"; pixel_x = -32; pixel_y = 32},/obj/structure/table/glass,/turf/open/floor/plasteel/vault,/area/medical/genetics) +"cBh" = (/obj/machinery/power/apc{dir = 1; name = "Genetics Lab APC"; pixel_y = 24},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/item/weapon/folder/white,/obj/item/weapon/folder/white,/obj/item/weapon/storage/pill_bottle/mutadone,/obj/item/weapon/storage/pill_bottle/mannitol,/obj/structure/table/glass,/turf/open/floor/plasteel/vault,/area/medical/genetics) +"cBi" = (/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 8; pixel_y = 2},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/sign/nosmoking_2{pixel_y = 32},/obj/structure/table/glass,/turf/open/floor/plasteel/vault,/area/medical/genetics) +"cBj" = (/obj/structure/filingcabinet/chestdrawer,/turf/open/floor/plasteel/blue/side{dir = 9},/area/medical/genetics) +"cBk" = (/obj/structure/noticeboard{desc = "A board for pinning important notices upon. Probably helpful for keeping track of requests."; name = "requests board"; pixel_x = -32; pixel_y = 32},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/blue/side{dir = 5},/area/medical/genetics) +"cBl" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/shutters/preopen{id = "genetics_shutters"; name = "genetics shutters"},/turf/open/floor/plating,/area/medical/genetics) +"cBm" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 6},/turf/open/floor/plasteel/blue,/area/medical/genetics) +"cBn" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel/blue/side{dir = 8},/area/hallway/primary/aft) +"cBo" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating/warnplate{icon_plating = "warnplate"},/area/maintenance/aft{name = "Aft Maintenance"}) +"cBp" = (/obj/machinery/portable_atmospherics/canister/air,/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 8},/obj/effect/spawner/lootdrop/maintenance,/obj/item/weapon/wrench,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cBq" = (/obj/structure/reagent_dispensers/watertank,/obj/item/weapon/storage/box/lights/mixed,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cBr" = (/obj/structure/reagent_dispensers/fueltank,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cBs" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/warning{dir = 9},/area/toxins/misc_lab{name = "\improper Research Testing Range"}) +"cBt" = (/turf/open/floor/engine{dir = 9; icon_state = "floor"},/area/toxins/misc_lab{name = "\improper Research Testing Range"}) +"cBu" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/warning{dir = 5},/area/toxins/misc_lab{name = "\improper Research Testing Range"}) +"cBv" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/white/side{dir = 5},/area/medical/research{name = "Research Division"}) +"cBw" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cBx" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/whiteblue/corner{dir = 2},/area/medical/research{name = "Research Division"}) +"cBy" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow,/obj/machinery/door/poddoor/preopen{id = "rdprivacy"; name = "privacy shutter"},/turf/open/floor/plating,/area/crew_quarters/hor) +"cBz" = (/obj/machinery/computer/card/minor/rd,/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/hor) +"cBA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/hor) +"cBB" = (/obj/machinery/computer/mecha,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/hor) +"cBC" = (/obj/structure/table,/obj/item/device/aicard,/obj/item/weapon/circuitboard/aicore{pixel_x = -2; pixel_y = 4},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/hor) +"cBD" = (/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/hor) +"cBE" = (/obj/structure/table,/obj/item/device/taperecorder{pixel_x = -3},/obj/item/device/paicard{pixel_x = 4},/obj/item/weapon/storage/secure/briefcase,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/hor) +"cBF" = (/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/bot,/area/toxins/storage) +"cBG" = (/turf/open/floor/plasteel/warning{dir = 8},/area/toxins/storage) +"cBH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/warning{dir = 4},/area/toxins/storage) +"cBI" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/turf/open/floor/plasteel/delivery{name = "floor"},/area/toxins/storage) +"cBJ" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/obj/machinery/light/small{dir = 4},/obj/machinery/camera{c_tag = "Toxins Storage"; dir = 8; network = list("SS13","RD")},/turf/open/floor/plasteel/delivery{name = "floor"},/area/toxins/storage) +"cBK" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cBL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/aft{name = "Aft Maintenance"}) +"cBM" = (/obj/machinery/door/airlock/maintenance{name = "Storage Room"; req_access_txt = "0"; req_one_access_txt = "12;47"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cBN" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cBO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/aft{name = "Aft Maintenance"}) +"cBP" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/aft{name = "Aft Maintenance"}) +"cBQ" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port) +"cBR" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port) +"cBS" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port) +"cBT" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port) +"cBU" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port) +"cBV" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port) +"cBW" = (/obj/structure/closet/emcloset,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = -32; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cBX" = (/obj/structure/closet/crate,/obj/item/weapon/crowbar/red,/obj/item/weapon/pen,/obj/item/device/flashlight/pen{pixel_x = 4; pixel_y = 3},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cBY" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cBZ" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cCa" = (/obj/item/weapon/cigbutt,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cCb" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cCc" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/sign/poster{pixel_y = 32},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cCd" = (/obj/structure/chair{dir = 8},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cCe" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/medical/patients_rooms{name = "Patient Room A"}) +"cCf" = (/turf/closed/wall,/area/medical/patients_rooms{name = "Patient Room A"}) +"cCg" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/sign/examroom{pixel_x = -32},/turf/open/floor/plasteel/white,/area/medical/medbay{name = "Medbay Central"}) +"cCh" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/turf/open/floor/plasteel/white,/area/medical/medbay{name = "Medbay Central"}) +"cCi" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay{name = "Medbay Central"}) +"cCj" = (/turf/closed/wall,/area/medical/genetics_cloning) +"cCk" = (/obj/machinery/shower{icon_state = "shower"; dir = 4},/obj/machinery/door/window/southleft{dir = 2; name = "Cloning Shower"},/obj/structure/mirror{pixel_x = -28},/turf/open/floor/plasteel/vault,/area/medical/genetics_cloning) +"cCl" = (/obj/machinery/door/window/southleft{base_state = "right"; dir = 2; icon_state = "right"; name = "Cloning Shower"},/obj/structure/sink/kitchen{desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; name = "sink"; pixel_y = 28},/turf/open/floor/plasteel/vault,/area/medical/genetics_cloning) +"cCm" = (/obj/machinery/clonepod{pixel_y = 2},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/obj/structure/window/reinforced,/turf/open/floor/plasteel/vault,/area/medical/genetics_cloning) +"cCn" = (/obj/machinery/computer/scan_consolenew,/obj/machinery/camera{c_tag = "Genetics Lab"; dir = 4; network = list("SS13","Medbay")},/turf/open/floor/plasteel/whiteblue,/area/medical/genetics) +"cCo" = (/obj/structure/chair/office/light{dir = 8},/obj/effect/landmark/start{name = "Geneticist"},/turf/open/floor/plasteel/whiteblue/side{dir = 9},/area/medical/genetics) +"cCp" = (/turf/open/floor/plasteel/whiteblue/side{dir = 1},/area/medical/genetics) +"cCq" = (/obj/structure/chair/office/light{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/landmark/start{name = "Geneticist"},/turf/open/floor/plasteel/whiteblue/side{dir = 5},/area/medical/genetics) +"cCr" = (/obj/machinery/computer/scan_consolenew,/turf/open/floor/plasteel/whiteblue,/area/medical/genetics) +"cCs" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/item/weapon/storage/box/syringes,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/structure/table/glass,/turf/open/floor/plasteel/blue/side{dir = 8},/area/medical/genetics) +"cCt" = (/obj/structure/chair/office/light{dir = 4},/obj/structure/disposalpipe/segment,/obj/effect/landmark/start{name = "Geneticist"},/turf/open/floor/plasteel/blue/side{dir = 4},/area/medical/genetics) +"cCu" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/white,/obj/item/weapon/pen,/obj/machinery/door/firedoor,/obj/machinery/door/window/eastright{dir = 8; name = "Genetics Desk"; req_access_txt = "5;9"},/obj/machinery/door/window/southleft{dir = 4; name = "Outer Window"},/obj/machinery/door/poddoor/shutters/preopen{id = "genetics_shutters"; name = "genetics shutters"},/turf/open/floor/plating,/area/medical/genetics) +"cCv" = (/turf/open/floor/plasteel/blue,/area/medical/genetics) +"cCw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/hallway/primary/aft) +"cCx" = (/turf/closed/wall,/area/assembly/chargebay) +"cCy" = (/obj/machinery/door/airlock/maintenance{name = "Mech Bay Maintenance"; req_access_txt = "29"},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/assembly/chargebay) +"cCz" = (/obj/structure/sign/nosmoking_2{pixel_x = -29; pixel_y = 0},/turf/open/floor/engine{dir = 9; icon_state = "floor"},/area/toxins/misc_lab{name = "\improper Research Testing Range"}) +"cCA" = (/obj/machinery/magnetic_module,/obj/effect/landmark{name = "blobstart"},/obj/structure/target_stake,/turf/open/floor/plasteel/bot{dir = 9},/area/toxins/misc_lab{name = "\improper Research Testing Range"}) +"cCB" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "researchrangeshutters"; name = "blast door"},/turf/open/floor/plating,/area/toxins/misc_lab{name = "\improper Research Testing Range"}) +"cCC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white/side{dir = 4},/area/medical/research{name = "Research Division"}) +"cCD" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cCE" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel/whiteblue/side{dir = 4},/area/medical/research{name = "Research Division"}) +"cCF" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{name = "Research Director's Office"; req_access_txt = "30"; req_one_access_txt = "0"},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/hor) +"cCG" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/hor) +"cCH" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/hor) +"cCI" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/hor) +"cCJ" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/hor) +"cCK" = (/obj/machinery/holopad,/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/hor) +"cCL" = (/obj/machinery/portable_atmospherics/canister/nitrous_oxide,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/open/floor/plasteel/bot,/area/toxins/storage) +"cCM" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plasteel/warning{dir = 4},/area/toxins/storage) +"cCN" = (/obj/machinery/portable_atmospherics/canister/toxins,/turf/open/floor/plasteel/delivery{name = "floor"},/area/toxins/storage) +"cCO" = (/obj/machinery/portable_atmospherics/canister/toxins,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/turf/open/floor/plasteel/delivery{name = "floor"},/area/toxins/storage) +"cCP" = (/obj/structure/closet/crate,/obj/item/device/multitool,/obj/item/clothing/gloves/color/fyellow,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cCQ" = (/obj/structure/rack,/obj/item/hand_labeler_refill,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cCR" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/aft{name = "Aft Maintenance"}) +"cCS" = (/turf/open/floor/plating/warnplate,/area/maintenance/aft{name = "Aft Maintenance"}) +"cCT" = (/obj/structure/closet/crate,/obj/item/weapon/coin/silver,/obj/item/device/flashlight/seclite,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cCU" = (/obj/structure/cable,/obj/machinery/power/solar{id = "aftport"; name = "Aft-Port Solar Array"},/turf/open/floor/plasteel/airless/solarpanel,/area/solar/port) +"cCV" = (/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/structure/lattice/catwalk,/turf/open/space,/area/space) +"cCW" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/lattice/catwalk,/turf/open/space,/area/space) +"cCX" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/aft{name = "Aft Maintenance"}) +"cCY" = (/obj/machinery/door/airlock/external{req_access_txt = "13"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cCZ" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cDa" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cDb" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cDc" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cDd" = (/obj/structure/rack,/obj/item/clothing/glasses/sunglasses,/obj/item/device/flashlight/pen{pixel_x = 0},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cDe" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/clothing/neck/stethoscope,/obj/machinery/light/small{dir = 8},/obj/machinery/power/apc{dir = 8; name = "Patient Room B APC"; pixel_x = -26; pixel_y = 0},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/obj/machinery/light_switch{pixel_x = 0; pixel_y = 24},/turf/open/floor/plasteel/whiteblue/side{dir = 8},/area/medical/exam_room{name = "Patient Room B"}) +"cDf" = (/obj/structure/chair/office/light{dir = 8},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/effect/landmark/start{name = "Medical Doctor"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/vending/wallmed{pixel_y = 28},/turf/open/floor/plasteel/white,/area/medical/exam_room{name = "Patient Room B"}) +"cDg" = (/obj/structure/closet/secure_closet/personal/patient,/obj/machinery/button/door{id = "isolb"; name = "Privacy Shutters"; pixel_y = 25},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/whiteblue/side{dir = 4},/area/medical/exam_room{name = "Patient Room B"}) +"cDh" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/poddoor/preopen{id = "isolb"; name = "privacy shutters"},/turf/open/floor/plating,/area/medical/exam_room{name = "Patient Room B"}) +"cDi" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/whiteblue/corner{dir = 8},/area/medical/medbay3{name = "Medbay Aft"}) +"cDj" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay3{name = "Medbay Aft"}) +"cDk" = (/obj/structure/disposalpipe/segment,/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel/white,/area/medical/medbay3{name = "Medbay Aft"}) +"cDl" = (/obj/structure/sink{dir = 8; icon_state = "sink"; pixel_x = -12; pixel_y = 2},/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/turf/open/floor/plasteel/whiteblue/side{dir = 9},/area/medical/genetics_cloning) +"cDm" = (/obj/effect/landmark/start{name = "Geneticist"},/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/whiteblue/side{dir = 1},/area/medical/genetics_cloning) +"cDn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/machinery/computer/cloning,/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/whiteblue/side{dir = 5},/area/medical/genetics_cloning) +"cDo" = (/obj/machinery/dna_scannernew,/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/turf/open/floor/plasteel/whiteblue,/area/medical/genetics) +"cDp" = (/turf/open/floor/plasteel/whiteblue/side{dir = 8},/area/medical/genetics) +"cDq" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/turf/open/floor/plasteel/white,/area/medical/genetics) +"cDr" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/whiteblue/side{dir = 4},/area/medical/genetics) +"cDs" = (/obj/machinery/dna_scannernew,/turf/open/floor/plasteel/whiteblue,/area/medical/genetics) +"cDt" = (/obj/item/weapon/storage/box/disks{pixel_x = 2; pixel_y = 2},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -29},/obj/machinery/camera{c_tag = "Genetics Desk"; dir = 4; network = list("SS13","Medbay")},/obj/structure/table/glass,/turf/open/floor/plasteel/blue/side{dir = 8},/area/medical/genetics) +"cDu" = (/obj/machinery/light{dir = 4},/obj/structure/disposalpipe/segment,/obj/machinery/button/door{id = "genetics_shutters"; name = "genetics shutters control"; pixel_x = 28; pixel_y = 0; req_access_txt = "9"},/turf/open/floor/plasteel/blue/side{dir = 4},/area/medical/genetics) +"cDv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/plasteel/blue/corner{dir = 1},/area/hallway/primary/aft) +"cDw" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment,/obj/structure/sign/nosmoking_2{pixel_x = -28; pixel_y = 0},/turf/open/floor/plasteel,/area/assembly/chargebay) +"cDx" = (/obj/machinery/mech_bay_recharge_port,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/assembly/chargebay) +"cDy" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 31},/turf/open/floor/mech_bay_recharge_floor,/area/assembly/chargebay) +"cDz" = (/obj/machinery/computer/mech_bay_power_console,/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/open/floor/plasteel/circuit/gcircuit,/area/assembly/chargebay) +"cDA" = (/turf/open/floor/plasteel/warning{dir = 10},/area/toxins/misc_lab{name = "\improper Research Testing Range"}) +"cDB" = (/turf/open/floor/plasteel/warning{dir = 6},/area/toxins/misc_lab{name = "\improper Research Testing Range"}) +"cDC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/camera{c_tag = "Research Division Hallway - Mech Bay"; dir = 4; network = list("SS13","RD")},/obj/machinery/airalarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/open/floor/plasteel/white/side{dir = 6},/area/medical/research{name = "Research Division"}) +"cDD" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cDE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel/whiteblue/corner{dir = 4},/area/medical/research{name = "Research Division"}) +"cDF" = (/obj/machinery/power/apc{dir = 2; name = "RD Office APC"; pixel_x = 0; pixel_y = -27},/obj/structure/cable/yellow,/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/obj/item/weapon/twohanded/required/kirbyplants/dead,/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/hor) +"cDG" = (/obj/item/weapon/paper_bin{pixel_x = 0; pixel_y = 7},/obj/item/weapon/pen,/obj/structure/table,/obj/machinery/newscaster{pixel_x = 0; pixel_y = -30},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/hor) +"cDH" = (/obj/structure/table,/obj/item/weapon/cartridge/signal/toxins,/obj/item/weapon/cartridge/signal/toxins{pixel_x = -4; pixel_y = 2},/obj/item/weapon/cartridge/signal/toxins{pixel_x = 4; pixel_y = 6},/obj/machinery/camera{c_tag = "Research Director's Office"; dir = 1; network = list("SS13","RD")},/obj/machinery/light,/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/hor) +"cDI" = (/obj/structure/closet/secure_closet/RD,/obj/machinery/keycard_auth{pixel_x = 0; pixel_y = -24},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/hor) +"cDJ" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 0; pixel_y = -32},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/hor) +"cDK" = (/obj/structure/filingcabinet/chestdrawer,/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/crew_quarters/hor) +"cDL" = (/obj/machinery/portable_atmospherics/canister/nitrous_oxide,/turf/open/floor/plasteel/bot,/area/toxins/storage) +"cDM" = (/obj/item/weapon/cigbutt,/obj/machinery/light_switch{pixel_y = -23},/turf/open/floor/plasteel/warning{dir = 10},/area/toxins/storage) +"cDN" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/obj/effect/landmark/start{name = "Scientist"},/turf/open/floor/plasteel/warning{dir = 6},/area/toxins/storage) +"cDO" = (/obj/machinery/portable_atmospherics/canister/toxins,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/machinery/light/small,/turf/open/floor/plasteel/delivery{name = "floor"},/area/toxins/storage) +"cDP" = (/obj/machinery/door/airlock/maintenance{name = "airlock access"; req_access_txt = "0"; req_one_access_txt = "12;47"},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cDQ" = (/obj/item/stack/cable_coil,/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port) +"cDR" = (/obj/structure/rack,/obj/item/weapon/tank/internals/air,/obj/item/weapon/wrench,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating{icon_state = "platingdmg2"},/area/maintenance/aft{name = "Aft Maintenance"}) +"cDS" = (/obj/item/trash/chips,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cDT" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cDU" = (/obj/structure/reagent_dispensers/watertank,/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cDV" = (/obj/structure/bed,/obj/item/weapon/bedsheet/medical,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/whiteblue/side{dir = 8},/area/medical/exam_room{name = "Patient Room B"}) +"cDW" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/exam_room{name = "Patient Room B"}) +"cDX" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/whiteblue/side{dir = 4},/area/medical/exam_room{name = "Patient Room B"}) +"cDY" = (/obj/machinery/door/airlock/medical{name = "Patient Room B"; req_access_txt = "5"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/exam_room{name = "Patient Room B"}) +"cDZ" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/whiteblue/side{dir = 8},/area/medical/medbay3{name = "Medbay Aft"}) +"cEa" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/effect/landmark{name = "lightsout"},/turf/open/floor/plasteel/white,/area/medical/medbay3{name = "Medbay Aft"}) +"cEb" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/whiteblue/corner{dir = 2},/area/medical/medbay3{name = "Medbay Aft"}) +"cEc" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/medical/genetics_cloning) +"cEd" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/whiteblue/side{dir = 8},/area/medical/genetics_cloning) +"cEe" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/genetics_cloning) +"cEf" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/obj/machinery/dna_scannernew,/turf/open/floor/plasteel/whiteblue/side{dir = 4},/area/medical/genetics_cloning) +"cEg" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/medical/genetics) +"cEh" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/whiteblue/side{dir = 9},/area/medical/genetics) +"cEi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/whiteblue/corner{dir = 1},/area/medical/genetics) +"cEj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/genetics) +"cEk" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/whiteblue/corner{dir = 4},/area/medical/genetics) +"cEl" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/whiteblue/side{dir = 5},/area/medical/genetics) +"cEm" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/medical/genetics) +"cEn" = (/obj/item/weapon/folder/white,/obj/item/stack/packageWrap,/obj/item/weapon/pen,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/structure/table/glass,/turf/open/floor/plasteel/blue/side{dir = 8},/area/medical/genetics) +"cEo" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plasteel/blue/corner{dir = 4},/area/medical/genetics) +"cEp" = (/obj/structure/sign/nosmoking_2{pixel_x = 28},/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/plasteel/blue/side{dir = 5},/area/medical/genetics) +"cEq" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=10.1-Central-from-Aft"; location = "10-Aft-To-Central"},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/aft) +"cEr" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"cEs" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=9.1-Escape-1"; location = "8.1-Aft-to-Escape"},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/hallway/primary/aft) +"cEt" = (/obj/machinery/door/poddoor/shutters{id = "Skynet_launch"; name = "Mech Bay"},/turf/open/floor/plasteel/delivery,/area/assembly/chargebay) +"cEu" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel,/area/assembly/chargebay) +"cEv" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/circuit/gcircuit,/area/assembly/chargebay) +"cEw" = (/turf/open/floor/plasteel/circuit/gcircuit,/area/assembly/chargebay) +"cEx" = (/obj/machinery/camera{c_tag = "Mech Bay"; dir = 8; network = list("SS13","RD")},/turf/open/floor/plasteel/circuit/gcircuit,/area/assembly/chargebay) +"cEy" = (/turf/open/floor/plating,/area/toxins/misc_lab{name = "\improper Research Testing Range"}) +"cEz" = (/obj/machinery/camera{c_tag = "Research Testing Range"; dir = 8; network = list("SS13","RD"); pixel_y = -22},/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/open/floor/plating,/area/toxins/misc_lab{name = "\improper Research Testing Range"}) +"cEA" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cEB" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Toxins Storage"; req_access_txt = "8"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/toxins/storage) +"cEC" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating{icon_state = "platingdmg1"},/area/maintenance/aft{name = "Aft Maintenance"}) +"cED" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/mob/living/simple_animal/mouse,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cEE" = (/obj/machinery/light/small{dir = 1},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cEF" = (/obj/machinery/door/airlock/external{req_access_txt = "0"; req_one_access_txt = "13;8"},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cEG" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/machinery/light/small{dir = 1},/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/aft{name = "Aft Maintenance"}) +"cEH" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/device/flashlight,/obj/effect/spawner/lootdrop/maintenance,/obj/machinery/light/small,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cEI" = (/obj/structure/rack,/obj/item/clothing/mask/gas,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cEJ" = (/obj/item/latexballon,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cEK" = (/obj/item/clothing/suit/ianshirt,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cEL" = (/turf/closed/wall,/area/medical/medbay3{name = "Medbay Aft"}) +"cEM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/open/floor/plasteel/whiteblue/corner{dir = 1},/area/medical/medbay3{name = "Medbay Aft"}) +"cEN" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/white,/area/medical/medbay3{name = "Medbay Aft"}) +"cEO" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/whiteblue/side{dir = 4},/area/medical/medbay3{name = "Medbay Aft"}) +"cEP" = (/obj/machinery/door/firedoor,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/glass_medical{id_tag = "CloningDoor"; name = "Cloning Lab"; req_access_txt = "0"; req_one_access_txt = "5"},/turf/open/floor/plasteel/whiteblue,/area/medical/genetics_cloning) +"cEQ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/whiteblue/side{dir = 8},/area/medical/genetics_cloning) +"cER" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/white,/area/medical/genetics_cloning) +"cES" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/whiteblue/side{dir = 4},/area/medical/genetics_cloning) +"cET" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_research{name = "Genetics Lab"; req_access_txt = "5;9"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/whiteblue,/area/medical/genetics) +"cEU" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/whiteblue/side{dir = 8},/area/medical/genetics) +"cEV" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/genetics) +"cEW" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/obj/effect/landmark/start{name = "Geneticist"},/turf/open/floor/plasteel/white,/area/medical/genetics) +"cEX" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/white,/area/medical/genetics) +"cEY" = (/turf/open/floor/plasteel/whiteblue/side{dir = 4},/area/medical/genetics) +"cEZ" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{icon_state = "door_closed"; id_tag = "AuxGenetics"; locked = 0; name = "Genetics Lab"; req_access_txt = "9"; req_one_access_txt = "0"},/turf/open/floor/plasteel,/area/medical/genetics) +"cFa" = (/turf/open/floor/plasteel/blue/side{dir = 8},/area/medical/genetics) +"cFb" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel,/area/medical/genetics) +"cFc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/blue/side{dir = 4},/area/medical/genetics) +"cFd" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{icon_state = "door_closed"; id_tag = "AuxGenetics"; locked = 0; name = "Genetics Access"; req_access_txt = "9"; req_one_access_txt = "0"},/turf/open/floor/plasteel,/area/medical/genetics) +"cFe" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/aft) +"cFf" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/hallway/primary/aft) +"cFg" = (/obj/machinery/door/poddoor/shutters{id = "Skynet_launch"; name = "Mech Bay"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/delivery,/area/assembly/chargebay) +"cFh" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel,/area/assembly/chargebay) +"cFi" = (/turf/open/floor/bluegrid,/area/assembly/chargebay) +"cFj" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/effect/landmark/start{name = "Roboticist"},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/open/floor/bluegrid,/area/assembly/chargebay) +"cFk" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plating/warnplate,/area/toxins/misc_lab{name = "\improper Research Testing Range"}) +"cFl" = (/turf/open/floor/plating/warnplate,/area/toxins/misc_lab{name = "\improper Research Testing Range"}) +"cFm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cFn" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cFo" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cFp" = (/obj/structure/sign/biohazard,/turf/closed/wall,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cFq" = (/obj/machinery/light_switch{pixel_y = 28},/obj/structure/closet/l3closet/scientist{pixel_x = -2},/turf/open/floor/plasteel/warning{dir = 2},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cFr" = (/obj/structure/closet/wardrobe/science_white,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/warning{dir = 2},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cFs" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/atmospherics/components/unary/thermomachine/freezer,/turf/open/floor/plasteel/warning{dir = 2},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cFt" = (/obj/item/device/radio/intercom{pixel_y = 25},/obj/machinery/atmospherics/components/unary/portables_connector/visible,/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/plasteel/warning{dir = 2},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cFu" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible,/turf/open/floor/plasteel/warning{dir = 2},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cFv" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/camera{c_tag = "Toxins - Lab"; dir = 2; network = list("SS13","RD")},/obj/machinery/atmospherics/components/unary/portables_connector/visible,/obj/machinery/portable_atmospherics/canister,/turf/open/floor/plasteel/warning{dir = 2},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cFw" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible,/obj/structure/window/reinforced{dir = 8},/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/turf/open/floor/plasteel/warning{dir = 2},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cFx" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible,/obj/structure/sign/nosmoking_2{pixel_y = 32},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/warning{dir = 2},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cFy" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible,/obj/structure/window/reinforced{dir = 4},/obj/machinery/portable_atmospherics/canister,/turf/open/floor/plasteel/warning{dir = 2},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cFz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/delivery,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cFA" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/portable_atmospherics/scrubber,/turf/open/floor/plasteel/warning{dir = 9},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cFB" = (/turf/closed/wall/r_wall,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cFC" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plating/warnplate{dir = 2},/area/maintenance/aft{name = "Aft Maintenance"}) +"cFD" = (/obj/machinery/door/airlock/research{name = "Toxins Space Access"; req_access_txt = "8"},/turf/open/floor/plasteel/bot{dir = 1},/area/maintenance/aft{name = "Aft Maintenance"}) +"cFE" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/airalarm{pixel_y = 24},/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 4},/obj/structure/table/glass,/turf/open/floor/plasteel/white/side{dir = 2},/area/medical/medbay3{name = "Medbay Aft"}) +"cFF" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/open/floor/plasteel/white/side{dir = 2},/area/medical/medbay3{name = "Medbay Aft"}) +"cFG" = (/obj/machinery/vending/coffee,/obj/structure/sign/map/left{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-left-MS"; pixel_y = 32},/turf/open/floor/plasteel/white/side{dir = 2},/area/medical/medbay3{name = "Medbay Aft"}) +"cFH" = (/obj/structure/sign/map/right{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-right-MS"; pixel_y = 32},/obj/machinery/vending/cola,/turf/open/floor/plasteel/white/side{dir = 2},/area/medical/medbay3{name = "Medbay Aft"}) +"cFI" = (/obj/machinery/vending/cigarette,/obj/structure/noticeboard{pixel_y = 32},/turf/open/floor/plasteel/white/side{dir = 2},/area/medical/medbay3{name = "Medbay Aft"}) +"cFJ" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/whiteblue/corner{dir = 8},/area/medical/medbay3{name = "Medbay Aft"}) +"cFK" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/white,/area/medical/medbay3{name = "Medbay Aft"}) +"cFL" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/sign/nosmoking_2{pixel_x = 28},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/whiteblue/corner{dir = 4},/area/medical/medbay3{name = "Medbay Aft"}) +"cFM" = (/obj/machinery/button/door{desc = "A remote control switch for the cloning door."; id = "CloningDoor"; name = "Cloning Exit Button"; normaldoorcontrol = 1; pixel_x = -23; pixel_y = 8},/turf/open/floor/plasteel/whiteblue/side{dir = 10},/area/medical/genetics_cloning) +"cFN" = (/obj/effect/landmark/start{name = "Geneticist"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/whiteblue/side{dir = 2},/area/medical/genetics_cloning) +"cFO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/obj/machinery/power/apc{dir = 4; locked = 0; name = "Cloning Lab APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable/yellow,/obj/machinery/camera{c_tag = "Genetics Cloning Lab"; dir = 8; network = list("SS13","Medbay")},/turf/open/floor/plasteel/whiteblue/side{dir = 6},/area/medical/genetics_cloning) +"cFP" = (/turf/open/floor/plasteel/whiteblue/side{dir = 10},/area/medical/genetics) +"cFQ" = (/turf/open/floor/plasteel/whiteblue/side{dir = 2},/area/medical/genetics) +"cFR" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/mirror{pixel_x = 28},/turf/open/floor/plasteel/whiteblue/side{dir = 6},/area/medical/genetics) +"cFS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/blue/side{dir = 10},/area/medical/genetics) +"cFT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/blue/side{dir = 0},/area/medical/genetics) +"cFU" = (/obj/machinery/light_switch{pixel_x = 23; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/blue/side{dir = 6},/area/medical/genetics) +"cFV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/medical/genetics) +"cFW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -26},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/aft) +"cFX" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"cFY" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/obj/machinery/button/door{dir = 2; id = "Skynet_launch"; name = "Mech Bay Door Control"; pixel_x = 26; pixel_y = 6; req_one_access_txt = "29"},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/hallway/primary/aft) +"cFZ" = (/obj/machinery/button/door{dir = 2; id = "Skynet_launch"; name = "Mech Bay Door Control"; pixel_x = -26; pixel_y = 6},/obj/machinery/light_switch{pixel_x = -23; pixel_y = -2},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/assembly/chargebay) +"cGa" = (/turf/open/floor/mech_bay_recharge_floor,/area/assembly/chargebay) +"cGb" = (/obj/machinery/computer/mech_bay_power_console,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/open/floor/bluegrid,/area/assembly/chargebay) +"cGc" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/item/weapon/folder/white,/obj/item/weapon/paper/range{pixel_x = 2; pixel_y = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/warning{dir = 8},/area/toxins/misc_lab{name = "\improper Research Testing Range"}) +"cGd" = (/obj/machinery/door/window/westleft{base_state = "right"; dir = 1; icon_state = "right"; name = "door"; req_access_txt = "0"},/turf/open/floor/engine{dir = 9; icon_state = "floor"},/area/toxins/misc_lab{name = "\improper Research Testing Range"}) +"cGe" = (/obj/structure/table/reinforced,/obj/machinery/magnetic_controller{autolink = 1; pixel_y = 3},/obj/structure/window/reinforced{dir = 1},/obj/item/clothing/ears/earmuffs,/turf/open/floor/plasteel/warning{dir = 4},/area/toxins/misc_lab{name = "\improper Research Testing Range"}) +"cGf" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/whitepurple/corner{dir = 8},/area/medical/research{name = "Research Division"}) +"cGg" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cGh" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/whitepurple/corner{dir = 2},/area/medical/research{name = "Research Division"}) +"cGi" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cGj" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/warnwhite{dir = 8},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cGk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cGl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 5},/turf/open/floor/plasteel/white,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cGm" = (/obj/machinery/atmospherics/pipe/manifold/general/visible,/turf/open/floor/plasteel/white,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cGn" = (/obj/machinery/atmospherics/pipe/manifold/general/visible,/obj/machinery/meter,/turf/open/floor/plasteel/white,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cGo" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 9},/turf/open/floor/plasteel/white,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cGp" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 5},/turf/open/floor/plasteel/white,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cGq" = (/obj/machinery/atmospherics/components/trinary/filter{density = 0; dir = 8; req_access = "0"},/turf/open/floor/plasteel/white,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cGr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/white,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cGs" = (/obj/machinery/portable_atmospherics/pump,/turf/open/floor/plasteel/warning{dir = 8},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cGt" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;47"},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cGu" = (/turf/closed/wall,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cGv" = (/obj/machinery/camera{c_tag = "Toxins - Launch Area"; dir = 2; network = list("SS13","RD")},/obj/machinery/suit_storage_unit/rd,/turf/open/floor/plasteel/bot{dir = 1},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cGw" = (/turf/open/floor/plasteel/bot{dir = 1},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cGx" = (/obj/item/stack/rods{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/target,/obj/item/target/syndicate,/obj/item/target/alien,/obj/item/target/clown,/obj/structure/closet/crate/secure{desc = "A secure crate containing various materials for building a customised test-site."; name = "Test Site Materials Crate"; req_access_txt = "8"},/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/bot{dir = 1},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cGy" = (/obj/machinery/doppler_array{dir = 4},/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 22},/turf/open/floor/plasteel/bot{dir = 1},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cGz" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'BOMB RANGE"; name = "BOMB RANGE"},/turf/closed/wall,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cGA" = (/turf/closed/wall,/area/toxins/test_area) +"cGB" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/toxins/test_area) +"cGC" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port) +"cGD" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/aft{name = "Aft Maintenance"}) +"cGE" = (/obj/machinery/door/airlock/maintenance{name = "Medbay Maintenance"; req_access_txt = "5"},/turf/open/floor/plating,/area/medical/medbay3{name = "Medbay Aft"}) +"cGF" = (/turf/open/floor/plasteel/cafeteria{dir = 5},/area/medical/medbay3{name = "Medbay Aft"}) +"cGG" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/medical/medbay3{name = "Medbay Aft"}) +"cGH" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/medical/medbay3{name = "Medbay Aft"}) +"cGI" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/medical/medbay3{name = "Medbay Aft"}) +"cGJ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/item/weapon/cigbutt,/turf/open/floor/plasteel/cafeteria{dir = 5},/area/medical/medbay3{name = "Medbay Aft"}) +"cGK" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/airlock/medical{name = "Medbay Break Room"; req_access_txt = "5"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/medical/medbay3{name = "Medbay Aft"}) +"cGL" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel/whiteblue/side{dir = 8},/area/medical/medbay3{name = "Medbay Aft"}) +"cGM" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay3{name = "Medbay Aft"}) +"cGN" = (/obj/machinery/power/apc{dir = 4; name = "Medbay Aft APC"; pixel_x = 26; pixel_y = 0},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/disposalpipe/junction,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel/white,/area/medical/medbay3{name = "Medbay Aft"}) +"cGO" = (/obj/item/weapon/book/manual/medical_cloning{pixel_y = 6},/obj/item/weapon/paper,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/structure/table/glass,/turf/open/floor/plasteel/vault,/area/medical/genetics_cloning) +"cGP" = (/obj/item/weapon/storage/box/rxglasses{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/bodybags,/obj/item/weapon/pen,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/table/glass,/turf/open/floor/plasteel/vault,/area/medical/genetics_cloning) +"cGQ" = (/obj/structure/closet/secure_closet/personal/patient,/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/open/floor/plasteel/vault,/area/medical/genetics_cloning) +"cGR" = (/obj/machinery/airalarm{dir = 1; pixel_y = -22},/obj/structure/closet/wardrobe/genetics_white,/turf/open/floor/plasteel/vault,/area/medical/genetics) +"cGS" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/bed/roller,/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/mob/living/carbon/monkey,/turf/open/floor/plasteel/freezer,/area/medical/genetics) +"cGT" = (/obj/structure/bed/roller,/obj/machinery/door/window/westleft{dir = 1; name = "Monkey Pen"; pixel_y = 2; req_access_txt = "9"},/turf/open/floor/plasteel/freezer,/area/medical/genetics) +"cGU" = (/obj/machinery/light,/obj/machinery/door/window/westleft{base_state = "right"; dir = 1; icon_state = "right"; name = "Monkey Pen"; pixel_y = 2; req_access_txt = "9"},/obj/structure/bed/roller,/mob/living/carbon/monkey,/turf/open/floor/plasteel/freezer,/area/medical/genetics) +"cGV" = (/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/bed/roller,/mob/living/carbon/monkey,/turf/open/floor/plasteel/freezer,/area/medical/genetics) +"cGW" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/open/floor/plasteel/vault,/area/medical/genetics) +"cGX" = (/obj/structure/closet/secure_closet/personal/patient,/turf/open/floor/plasteel/vault,/area/medical/genetics) +"cGY" = (/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/camera{c_tag = "Aft Primary Hallway - Middle"; dir = 4; network = list("SS13")},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/aft) +"cGZ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"cHa" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/hallway/primary/aft) +"cHb" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Mech Bay"; req_access_txt = "29"; req_one_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/assembly/chargebay) +"cHc" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/assembly/chargebay) +"cHd" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/assembly/chargebay) +"cHe" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/assembly/chargebay) +"cHf" = (/obj/machinery/power/apc{dir = 4; name = "Mech Bay APC"; pixel_x = 28; pixel_y = 0},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel,/area/assembly/chargebay) +"cHg" = (/obj/structure/rack,/obj/item/target,/obj/item/target,/obj/item/target/alien,/obj/item/target/alien,/obj/item/target/clown,/obj/item/target/clown,/obj/item/target/syndicate,/obj/item/target/syndicate,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/light_switch{pixel_x = -25},/turf/open/floor/plasteel/warning{dir = 9},/area/toxins/misc_lab{name = "\improper Research Testing Range"}) +"cHh" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/warning{dir = 1},/area/toxins/misc_lab{name = "\improper Research Testing Range"}) +"cHi" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/warning{dir = 5},/area/toxins/misc_lab{name = "\improper Research Testing Range"}) +"cHj" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Research Testing Range"; req_access_txt = "0"; req_one_access_txt = "7;47;29"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/purple,/area/toxins/misc_lab{name = "\improper Research Testing Range"}) +"cHk" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/whitepurple/side{dir = 8},/area/medical/research{name = "Research Division"}) +"cHl" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cHm" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/whitepurple/side{dir = 4},/area/medical/research{name = "Research Division"}) +"cHn" = (/obj/machinery/door/firedoor,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/research{name = "Toxins Lab"; req_access_txt = "8"},/obj/machinery/door/poddoor/shutters/preopen{id = "toxins_blastdoor"; name = "biohazard containment shutters"},/turf/open/floor/plasteel/delivery,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cHo" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/warnwhite{dir = 8},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cHp" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/white,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cHq" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/open/floor/plasteel/white,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cHr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/white,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cHs" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/white,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cHt" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plasteel/white,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cHu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cHv" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/holopad,/obj/effect/landmark/start{name = "Scientist"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cHw" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plasteel/white,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cHx" = (/obj/structure/window/reinforced,/obj/machinery/portable_atmospherics/scrubber,/obj/item/weapon/storage/firstaid/toxin,/turf/open/floor/plasteel/warning{dir = 10},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cHy" = (/obj/structure/sign/biohazard,/turf/closed/wall/r_wall,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cHz" = (/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plasteel/warning/corner{dir = 1},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cHA" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/floorgrime,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cHB" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/warning/corner{dir = 2},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cHC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cHD" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/obj/machinery/light/small{dir = 8},/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/turf/open/floor/plasteel/warning{dir = 9},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cHE" = (/turf/open/floor/plasteel/warning{dir = 1},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cHF" = (/obj/structure/chair{dir = 4},/obj/machinery/computer/security/telescreen{desc = "Used for watching the test chamber."; dir = 8; layer = 4; name = "Test Chamber Telescreen"; network = list("Toxins"); pixel_x = 30; pixel_y = 0},/turf/open/floor/plasteel/warning{dir = 5},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cHG" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cHH" = (/obj/structure/window/reinforced,/obj/item/target,/turf/open/floor/plating/warnplate{dir = 1},/area/toxins/test_area) +"cHI" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cHJ" = (/obj/structure/chair/stool,/obj/item/device/radio/intercom{broadcasting = 1; freerange = 0; frequency = 1485; listening = 0; name = "Station Intercom (Medbay)"; pixel_x = -30; pixel_y = 0},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/medical/medbay3{name = "Medbay Aft"}) +"cHK" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/cafeteria{dir = 5},/area/medical/medbay3{name = "Medbay Aft"}) +"cHL" = (/obj/item/weapon/cigbutt,/obj/machinery/holopad,/turf/open/floor/plasteel/cafeteria{dir = 5},/area/medical/medbay3{name = "Medbay Aft"}) +"cHM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/medical/medbay3{name = "Medbay Aft"}) +"cHN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/medical/medbay3{name = "Medbay Aft"}) +"cHO" = (/obj/structure/grille,/obj/structure/window/reinforced/tinted/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/medical/medbay3{name = "Medbay Aft"}) +"cHP" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/open/floor/plasteel/whiteblue/corner{dir = 1},/area/medical/medbay3{name = "Medbay Aft"}) +"cHQ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/white,/area/medical/medbay3{name = "Medbay Aft"}) +"cHR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/obj/item/device/radio/intercom{broadcasting = 1; freerange = 0; frequency = 1485; listening = 0; name = "Station Intercom (Medbay)"; pixel_x = 30; pixel_y = 0},/turf/open/floor/plasteel/white,/area/medical/medbay3{name = "Medbay Aft"}) +"cHS" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/medical/genetics_cloning) +"cHT" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/centcom{name = "Genetics"; opacity = 1; req_access_txt = "9"},/turf/open/floor/plasteel/black,/area/medical/genetics) +"cHU" = (/obj/structure/sign/directions/evac{pixel_y = 0},/turf/closed/wall,/area/hallway/primary/aft) +"cHV" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/aft) +"cHW" = (/obj/structure/sign/directions/evac{pixel_y = 0},/turf/closed/wall,/area/assembly/chargebay) +"cHX" = (/obj/machinery/recharge_station,/turf/open/floor/plasteel/delivery,/area/assembly/chargebay) +"cHY" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/bot,/area/assembly/chargebay) +"cHZ" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/firealarm{dir = 4; pixel_x = 28},/turf/open/floor/plasteel/delivery,/area/assembly/chargebay) +"cIa" = (/obj/structure/table,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -25},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/item/clothing/glasses/science,/turf/open/floor/plasteel/warning{dir = 10},/area/toxins/misc_lab{name = "\improper Research Testing Range"}) +"cIb" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/button/door{id = "researchrangeshutters"; name = "Blast Door Control"; pixel_x = 0; pixel_y = -24; req_access_txt = "0"},/obj/machinery/light,/turf/open/floor/plasteel/warning,/area/toxins/misc_lab{name = "\improper Research Testing Range"}) +"cIc" = (/obj/item/weapon/gun/energy/laser/practice,/obj/machinery/power/apc{dir = 2; name = "Research Firing Range APC"; pixel_x = 0; pixel_y = -28},/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow,/turf/open/floor/plasteel/warning{dir = 6},/area/toxins/misc_lab{name = "\improper Research Testing Range"}) +"cId" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "researchrangeshutters"; name = "blast door"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/toxins/misc_lab{name = "\improper Research Testing Range"}) +"cIe" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/whitepurple/corner{dir = 1},/area/medical/research{name = "Research Division"}) +"cIf" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cIg" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel/whitepurple/corner{dir = 4},/area/medical/research{name = "Research Division"}) +"cIh" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "toxins_blastdoor"; name = "biohazard containment door"},/turf/open/floor/plating,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cIi" = (/turf/open/floor/plasteel/warnwhite{dir = 8},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cIj" = (/turf/open/floor/plasteel/white,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cIk" = (/obj/item/device/assembly/prox_sensor{pixel_x = -4; pixel_y = 1},/obj/item/device/assembly/prox_sensor{pixel_x = 8; pixel_y = 9},/obj/item/device/assembly/prox_sensor{pixel_x = 9; pixel_y = -2},/obj/item/device/assembly/prox_sensor{pixel_x = 0; pixel_y = 2},/obj/structure/table/reinforced,/turf/open/floor/plasteel/warning{dir = 9},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cIl" = (/obj/structure/chair/stool,/obj/effect/landmark/start{name = "Scientist"},/turf/open/floor/plasteel/warning{dir = 1},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cIm" = (/obj/structure/table/reinforced,/obj/item/weapon/wrench,/obj/item/weapon/screwdriver{pixel_y = 10},/turf/open/floor/plasteel/warning{dir = 5},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cIn" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cIo" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/white,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cIp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/white,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cIq" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1},/turf/open/floor/plasteel/white,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cIr" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/turf/open/floor/plasteel/white,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cIs" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/delivery,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cIt" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/airlock/research{name = "Toxins Launch Room Access"; req_access_txt = "8"},/obj/machinery/door/poddoor/shutters/preopen{id = "toxins_blastdoor"; name = "biohazard containment shutters"},/turf/open/floor/plasteel/delivery,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cIu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 8},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cIv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/floorgrime,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cIw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 4},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cIx" = (/obj/machinery/door/airlock/research{name = "Toxins Launch Room"; req_access_txt = "8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/delivery,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cIy" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 10},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cIz" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/warning,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cIA" = (/turf/open/floor/plasteel/warning,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cIB" = (/obj/machinery/light/small,/obj/machinery/airalarm{dir = 1; pixel_y = -22},/turf/open/floor/plasteel/warning,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cIC" = (/obj/structure/chair{dir = 4},/obj/machinery/button/massdriver{dir = 2; id = "toxinsdriver"; pixel_x = 24; pixel_y = -24},/obj/machinery/computer/security/telescreen{desc = "Used for watching the test chamber."; dir = 8; layer = 4; name = "Test Chamber Telescreen"; network = list("Toxins"); pixel_x = 30; pixel_y = 0},/turf/open/floor/plasteel/warning{dir = 6},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cID" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'BOMB RANGE"; name = "BOMB RANGE"},/turf/closed/wall,/area/toxins/test_area) +"cIE" = (/obj/structure/chair,/turf/open/floor/plating/airless/warnplate{dir = 9},/area/toxins/test_area) +"cIF" = (/obj/item/device/flashlight/lamp,/turf/open/floor/plating/airless/warnplate{dir = 1},/area/toxins/test_area) +"cIG" = (/obj/structure/chair,/turf/open/floor/plating/airless/warnplate{dir = 5},/area/toxins/test_area) +"cIH" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/structure/cable,/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port) +"cII" = (/turf/closed/wall/r_wall,/area/medical/virology) +"cIJ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/medical/virology) +"cIK" = (/obj/item/weapon/cigbutt,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cIL" = (/obj/machinery/light{dir = 8},/obj/machinery/newscaster{pixel_x = 0; pixel_y = -30},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 5},/obj/structure/table/glass,/turf/open/floor/plasteel/cafeteria{dir = 5},/area/medical/medbay3{name = "Medbay Aft"}) +"cIM" = (/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 0; pixel_y = -30},/obj/item/weapon/reagent_containers/spray/cleaner,/obj/structure/table/glass,/turf/open/floor/plasteel/cafeteria{dir = 5},/area/medical/medbay3{name = "Medbay Aft"}) +"cIN" = (/obj/structure/chair/stool,/obj/structure/sign/poster{pixel_y = -32},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/medical/medbay3{name = "Medbay Aft"}) +"cIO" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/obj/machinery/light/small,/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -29},/obj/machinery/camera{c_tag = "Medbay Break Room"; dir = 1; network = list("SS13","Medbay")},/turf/open/floor/plasteel/cafeteria{dir = 5},/area/medical/medbay3{name = "Medbay Aft"}) +"cIP" = (/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/obj/structure/table/glass,/turf/open/floor/plasteel/cafeteria{dir = 5},/area/medical/medbay3{name = "Medbay Aft"}) +"cIQ" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/white,/area/medical/medbay3{name = "Medbay Aft"}) +"cIR" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/door/firedoor,/turf/open/floor/plasteel/white,/area/medical/medbay3{name = "Medbay Aft"}) +"cIS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor,/turf/open/floor/plasteel/white/side{dir = 9},/area/medical/medbay3{name = "Medbay Aft"}) +"cIT" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/structure/closet/secure_closet/personal/patient,/turf/open/floor/plasteel/white/corner{dir = 2},/area/medical/medbay3{name = "Medbay Aft"}) +"cIU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/closet/secure_closet/personal/patient,/turf/open/floor/plasteel/white/side{dir = 2},/area/medical/medbay3{name = "Medbay Aft"}) +"cIV" = (/obj/structure/closet/secure_closet/personal/patient,/turf/open/floor/plasteel/white/corner{dir = 8},/area/medical/medbay3{name = "Medbay Aft"}) +"cIW" = (/turf/closed/wall,/area/medical/morgue) +"cIX" = (/obj/structure/bodycontainer/morgue,/obj/effect/landmark{name = "revenantspawn"},/turf/open/floor/plasteel/black,/area/medical/morgue) +"cIY" = (/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plasteel/black,/area/medical/morgue) +"cIZ" = (/obj/machinery/camera{c_tag = "Morgue"; dir = 2; network = list("SS13","Medbay")},/turf/open/floor/plasteel/black,/area/medical/morgue) +"cJa" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/black,/area/medical/morgue) +"cJb" = (/turf/open/floor/plasteel/black,/area/medical/morgue) +"cJc" = (/obj/machinery/airalarm{pixel_y = 32},/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 4},/obj/effect/landmark{name = "revenantspawn"},/turf/open/floor/plasteel/black,/area/medical/morgue) +"cJd" = (/obj/machinery/vending/cigarette,/turf/open/floor/plasteel/black,/area/hallway/primary/aft) +"cJe" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/turf/open/floor/plasteel/purple/corner{dir = 2},/area/hallway/primary/aft) +"cJf" = (/turf/closed/wall/r_wall,/area/assembly/chargebay) +"cJg" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/shutters/preopen{id = "robotics_shutters"; name = "robotics shutters"},/turf/open/floor/plating,/area/assembly/chargebay) +"cJh" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_research{name = "Robotics Lab"; req_access_txt = "29"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/assembly/chargebay) +"cJi" = (/turf/closed/wall/r_wall,/area/assembly/robotics) +"cJj" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cJk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cJl" = (/obj/structure/closet/bombcloset,/turf/open/floor/plasteel/warning{dir = 1},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cJm" = (/obj/item/device/assembly/signaler{pixel_x = 0; pixel_y = 8},/obj/item/device/assembly/signaler{pixel_x = -8; pixel_y = 5},/obj/item/device/assembly/signaler{pixel_x = 6; pixel_y = 5},/obj/item/device/assembly/signaler{pixel_x = -2; pixel_y = -2},/obj/structure/table/reinforced,/turf/open/floor/plasteel/warning/corner{dir = 4},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cJn" = (/obj/item/device/transfer_valve{pixel_x = -5},/obj/item/device/transfer_valve{pixel_x = -5},/obj/item/device/transfer_valve{pixel_x = 0},/obj/item/device/transfer_valve{pixel_x = 0},/obj/item/device/transfer_valve{pixel_x = 5},/obj/item/device/transfer_valve{pixel_x = 5},/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_x = 0; pixel_y = -30},/obj/structure/table/reinforced,/obj/machinery/light,/turf/open/floor/plasteel,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cJo" = (/obj/item/device/assembly/timer{pixel_x = 5; pixel_y = 4},/obj/item/device/assembly/timer{pixel_x = -4; pixel_y = 2},/obj/item/device/assembly/timer{pixel_x = 6; pixel_y = -4},/obj/item/device/assembly/timer{pixel_x = 0; pixel_y = 0},/obj/structure/table/reinforced,/turf/open/floor/plasteel/warning/corner{dir = 8},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cJp" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = -28},/obj/structure/tank_dispenser,/turf/open/floor/plasteel/warning{dir = 1},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cJq" = (/obj/machinery/disposal/bin{pixel_x = -2; pixel_y = -2},/obj/structure/disposalpipe/trunk{dir = 1},/turf/open/floor/plasteel/warning{dir = 5},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cJr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/white,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cJs" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/white,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cJt" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/white,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cJu" = (/obj/structure/table,/obj/item/device/assembly/igniter{pixel_x = -5; pixel_y = 3},/obj/item/device/assembly/igniter{pixel_x = 5; pixel_y = -4},/obj/item/device/assembly/igniter{pixel_x = 2; pixel_y = 6},/obj/item/device/assembly/igniter{pixel_x = 2; pixel_y = -1},/obj/machinery/power/apc{dir = 4; name = "Toxins Lab APC"; pixel_x = 26; pixel_y = 0},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plasteel/warning{dir = 9},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cJv" = (/turf/open/floor/plasteel/warning/corner{dir = 4},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cJw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/floorgrime,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cJx" = (/turf/open/floor/plasteel/warning/corner{dir = 8},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cJy" = (/obj/machinery/door/window/southleft{name = "Mass Driver Door"; req_access_txt = "7"},/turf/open/floor/plasteel/loadingarea,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cJz" = (/obj/structure/chair{dir = 4},/turf/open/floor/plating/airless/warnplate{dir = 9},/area/toxins/test_area) +"cJA" = (/turf/open/floor/plating/airless,/area/toxins/test_area) +"cJB" = (/obj/structure/chair{dir = 8},/turf/open/floor/plating/airless/warnplate{dir = 5},/area/toxins/test_area) +"cJC" = (/mob/living/carbon/monkey,/turf/open/floor/plasteel/freezer,/area/medical/virology) +"cJD" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/freezer,/area/medical/virology) +"cJE" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/freezer,/area/medical/virology) +"cJF" = (/obj/machinery/camera{c_tag = "Medbay Hallway Aft"; dir = 4; network = list("SS13","Medbay")},/turf/open/floor/plasteel/white/side{dir = 5},/area/medical/medbay3{name = "Medbay Aft"}) +"cJG" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/white,/area/medical/medbay3{name = "Medbay Aft"}) +"cJH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/white/side{dir = 8},/area/medical/medbay3{name = "Medbay Aft"}) +"cJI" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/medical/medbay3{name = "Medbay Aft"}) +"cJJ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white/side{dir = 4},/area/medical/medbay3{name = "Medbay Aft"}) +"cJK" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/open/floor/plasteel/white,/area/medical/medbay3{name = "Medbay Aft"}) +"cJL" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/white/side{dir = 8},/area/medical/medbay3{name = "Medbay Aft"}) +"cJM" = (/obj/machinery/light/small{dir = 8},/obj/structure/bodycontainer/morgue,/obj/effect/landmark{name = "revenantspawn"},/turf/open/floor/plasteel/black,/area/medical/morgue) +"cJN" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/plasteel/black,/area/medical/morgue) +"cJO" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/medical/morgue) +"cJP" = (/obj/effect/landmark/start{name = "Medical Doctor"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/black,/area/medical/morgue) +"cJQ" = (/obj/structure/table,/obj/item/weapon/storage/box/bodybags,/obj/item/weapon/pen,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/turf/open/floor/plasteel/black,/area/medical/morgue) +"cJR" = (/obj/machinery/vending/cola,/turf/open/floor/plasteel/black,/area/hallway/primary/aft) +"cJS" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/shutters/preopen{id = "robotics_shutters"; name = "robotics shutters"},/turf/open/floor/plating,/area/assembly/robotics) +"cJT" = (/obj/structure/filingcabinet/chestdrawer{pixel_x = -2; pixel_y = 2},/obj/machinery/button/door{id = "robotics_shutters"; name = "robotics shutters control"; pixel_x = -26; pixel_y = 26; req_access_txt = "29"},/turf/open/floor/plasteel/delivery,/area/assembly/robotics) +"cJU" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/bot,/area/assembly/robotics) +"cJV" = (/obj/machinery/mecha_part_fabricator{dir = 2},/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/delivery,/area/assembly/robotics) +"cJW" = (/obj/structure/sign/nosmoking_2{pixel_y = 32},/obj/structure/rack,/obj/item/weapon/book/manual/robotics_cyborgs{pixel_x = 2; pixel_y = 5},/obj/item/weapon/storage/belt/utility,/obj/item/weapon/reagent_containers/glass/beaker/large,/turf/open/floor/plasteel/delivery,/area/assembly/robotics) +"cJX" = (/obj/machinery/mecha_part_fabricator{dir = 2},/obj/machinery/camera{c_tag = "Robotics - Fore"; dir = 2; network = list("SS13","RD")},/turf/open/floor/plasteel/delivery,/area/assembly/robotics) +"cJY" = (/obj/machinery/power/apc{dir = 1; name = "Robotics Lab APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 4},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/turf/open/floor/plasteel/delivery,/area/assembly/robotics) +"cJZ" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 20; pixel_x = 3; pixel_y = -4},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/turf/open/floor/plasteel/delivery,/area/assembly/robotics) +"cKa" = (/turf/closed/wall,/area/assembly/robotics) +"cKb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cKc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall/r_wall,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cKd" = (/obj/structure/sign/securearea,/turf/closed/wall/r_wall,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cKe" = (/obj/machinery/shower{dir = 4; icon_state = "shower"; name = "emergency shower"},/turf/open/floor/plasteel/white,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cKf" = (/turf/open/floor/plasteel/warnwhite{dir = 4},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cKg" = (/obj/structure/table,/obj/item/weapon/crowbar,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/weapon/wrench,/obj/item/clothing/mask/gas,/turf/open/floor/plasteel/warning{dir = 1},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cKh" = (/obj/structure/table,/obj/item/clothing/glasses/science,/obj/item/clothing/glasses/science,/obj/item/device/multitool{pixel_x = 3},/turf/open/floor/plasteel/warning/corner{dir = 4},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cKi" = (/obj/machinery/mass_driver{dir = 4; id = "toxinsdriver"},/turf/open/floor/plating,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cKj" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = -32},/obj/machinery/light/small,/turf/open/floor/plating,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cKk" = (/turf/open/floor/plating/warnplate{dir = 4},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cKl" = (/obj/machinery/door/poddoor{id = "toxinsdriver"; name = "Toxins Launcher Bay Door"},/turf/open/floor/plating,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cKm" = (/turf/open/floor/plating/airless/warnplate{dir = 8},/area/toxins/test_area) +"cKn" = (/turf/open/floor/plating/airless/warnplate{dir = 4},/area/toxins/test_area) +"cKo" = (/obj/item/device/radio/beacon,/turf/open/floor/plating/airless,/area/toxins/test_area) +"cKp" = (/obj/machinery/camera{active_power_usage = 0; c_tag = "Bomb Test Site"; desc = "A specially-reinforced camera with a long lasting battery, used to monitor the bomb testing site. An external light is attached to the top."; dir = 8; invuln = 1; light = null; luminosity = 3; name = "Hardened Bomb-Test Camera"; network = list("Toxins"); use_power = 0},/obj/item/target/alien{anchored = 1},/turf/open/floor/plating/warnplate{dir = 4; luminosity = 2; initial_gas_mix = "o2=0.01;n2=0.01"; temperature = 2.7},/area/toxins/test_area) +"cKq" = (/turf/closed/indestructible{desc = "A wall impregnated with Fixium, able to withstand massive explosions with ease"; icon_state = "riveted"; name = "hyper-reinforced wall"},/area/toxins/test_area) +"cKr" = (/obj/structure/bed/roller,/turf/open/floor/plasteel/freezer,/area/medical/virology) +"cKs" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/mob/living/carbon/monkey,/turf/open/floor/plasteel/freezer,/area/medical/virology) +"cKt" = (/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plasteel/freezer,/area/medical/virology) +"cKu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/mob/living/carbon/monkey,/turf/open/floor/plasteel/freezer,/area/medical/virology) +"cKv" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/open/floor/plating,/area/medical/virology) +"cKw" = (/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/syringes,/obj/machinery/power/apc{cell_type = 5000; dir = 1; name = "Virology APC"; pixel_x = 0; pixel_y = 24},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/table/glass,/turf/open/floor/plasteel/whitegreen/side{dir = 9},/area/medical/virology) +"cKx" = (/obj/item/weapon/book/manual/wiki/infections{pixel_y = 7},/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/table/glass,/turf/open/floor/plasteel/whitegreen/side{dir = 5},/area/medical/virology) +"cKy" = (/obj/machinery/smartfridge/chemistry/virology,/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/turf/open/floor/plasteel/whitegreen,/area/medical/virology) +"cKz" = (/obj/machinery/reagentgrinder{pixel_y = 8},/obj/structure/table/glass,/turf/open/floor/plasteel/whitegreen/side{dir = 9},/area/medical/virology) +"cKA" = (/obj/item/clothing/gloves/color/latex,/obj/item/device/healthanalyzer,/obj/item/clothing/glasses/hud/health,/obj/structure/reagent_dispensers/virusfood{density = 0; pixel_x = 0; pixel_y = 30},/obj/structure/table/glass,/turf/open/floor/plasteel/whitegreen/side{dir = 5},/area/medical/virology) +"cKB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cKC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/aft{name = "Aft Maintenance"}) +"cKD" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plating/warnplate{icon_plating = "warnplate"},/area/maintenance/aft{name = "Aft Maintenance"}) +"cKE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/aft{name = "Aft Maintenance"}) +"cKF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/airlock/maintenance{name = "Medbay Maintenance"; req_access_txt = "5"},/turf/open/floor/plating,/area/medical/medbay3{name = "Medbay Aft"}) +"cKG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white/side{dir = 4},/area/medical/medbay3{name = "Medbay Aft"}) +"cKH" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel/white,/area/medical/medbay3{name = "Medbay Aft"}) +"cKI" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white/side{dir = 8},/area/medical/medbay3{name = "Medbay Aft"}) +"cKJ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/medical/medbay3{name = "Medbay Aft"}) +"cKK" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j1"; dir = 4},/turf/open/floor/plasteel/white/side{dir = 4},/area/medical/medbay3{name = "Medbay Aft"}) +"cKL" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/landmark/start{name = "Medical Doctor"},/turf/open/floor/plasteel/white,/area/medical/medbay3{name = "Medbay Aft"}) +"cKM" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/white/side{dir = 8},/area/medical/medbay3{name = "Medbay Aft"}) +"cKN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/centcom{name = "Morgue"; opacity = 1; req_access_txt = "5"},/turf/open/floor/plasteel/black,/area/medical/morgue) +"cKO" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/black,/area/medical/morgue) +"cKP" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/open/floor/plasteel/black,/area/medical/morgue) +"cKQ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/medical/morgue) +"cKR" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/black,/area/medical/morgue) +"cKS" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/black,/area/medical/morgue) +"cKT" = (/obj/structure/table,/obj/machinery/power/apc{dir = 4; name = "Morgue APC"; pixel_x = 26; pixel_y = 0},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/item/weapon/folder/white,/obj/item/clothing/gloves/color/latex,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/medical/morgue) +"cKU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/medical/morgue) +"cKV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/hallway/primary/aft) +"cKW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/aft) +"cKX" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel/purple/side{dir = 4},/area/hallway/primary/aft) +"cKY" = (/turf/open/floor/plasteel/purple,/area/assembly/robotics) +"cKZ" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/obj/machinery/door/window/eastright{dir = 4; name = "Robotics Desk"; req_access_txt = "29"},/obj/item/weapon/folder/white,/obj/item/weapon/folder/white,/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters/preopen{id = "robotics_shutters"; name = "robotics shutters"},/turf/open/floor/plating,/area/assembly/robotics) +"cLa" = (/obj/effect/landmark/start{name = "Roboticist"},/obj/structure/chair/office/light{dir = 8},/turf/open/floor/plasteel/warning{dir = 9},/area/assembly/robotics) +"cLb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/warning{dir = 1},/area/assembly/robotics) +"cLc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/warning{dir = 1},/area/assembly/robotics) +"cLd" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/warning{dir = 5},/area/assembly/robotics) +"cLe" = (/obj/structure/table,/obj/item/stack/sheet/plasteel{amount = 10},/obj/item/device/assembly/flash/handheld,/obj/item/device/assembly/flash/handheld,/obj/item/device/assembly/flash/handheld,/obj/item/device/assembly/flash/handheld,/obj/item/device/assembly/flash/handheld,/obj/item/device/assembly/flash/handheld,/obj/item/device/assembly/flash/handheld,/obj/machinery/ai_status_display{pixel_x = 32; pixel_y = 0},/turf/open/floor/plasteel/delivery,/area/assembly/robotics) +"cLf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/plasteel/white/side{dir = 9},/area/medical/research{name = "Research Division"}) +"cLg" = (/obj/structure/lattice,/turf/open/space,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cLh" = (/obj/machinery/door/poddoor{id = "mixvent"; name = "Mixer Room Vent"},/turf/open/floor/engine/vacuum,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cLi" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/open/floor/engine/vacuum,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cLj" = (/obj/machinery/sparker{dir = 2; id = "mixingsparker"; pixel_x = 25},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; external_pressure_bound = 0; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/open/floor/engine/vacuum,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cLk" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/closed/wall/r_wall,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cLl" = (/obj/machinery/airlock_sensor{id_tag = "tox_airlock_sensor"; master_tag = "tox_airlock_control"; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/components/binary/pump{dir = 4; on = 1},/turf/open/floor/engine,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cLm" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/obj/machinery/meter,/obj/machinery/embedded_controller/radio/airlock_controller{airpump_tag = "tox_airlock_pump"; exterior_door_tag = "tox_airlock_exterior"; id_tag = "tox_airlock_control"; interior_door_tag = "tox_airlock_interior"; pixel_x = -24; pixel_y = 0; sanitize_external = 1; sensor_tag = "tox_airlock_sensor"},/turf/open/floor/plasteel/warnwhite/corner{dir = 1},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cLn" = (/obj/machinery/atmospherics/components/binary/valve{dir = 4; name = "manual outlet valve"},/turf/open/floor/plasteel/warnwhite{dir = 4},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cLo" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 8},/obj/structure/window/reinforced{dir = 1; pixel_y = 2},/obj/machinery/light{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/warning{dir = 5},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cLp" = (/obj/structure/closet/wardrobe/grey,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cLq" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/space) +"cLr" = (/obj/structure/chair{dir = 4},/turf/open/floor/plating/airless/warnplate{dir = 10},/area/toxins/test_area) +"cLs" = (/obj/structure/chair{dir = 8},/turf/open/floor/plating/airless/warnplate{dir = 6},/area/toxins/test_area) +"cLt" = (/turf/closed/wall,/area/medical/virology) +"cLu" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/open/floor/plating,/area/medical/virology) +"cLv" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_virology{name = "Test Subject Cell"; req_access_txt = "39"},/turf/open/floor/plasteel/freezer,/area/medical/virology) +"cLw" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/open/floor/plating,/area/medical/virology) +"cLx" = (/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 9},/obj/machinery/light/small{dir = 8},/obj/structure/table/glass,/obj/structure/sign/deathsposal{pixel_x = -30; pixel_y = 0},/turf/open/floor/plasteel/whitegreen/side{dir = 8},/area/medical/virology) +"cLy" = (/obj/structure/chair/office/light{dir = 1; pixel_y = 3},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/whitegreen/corner{dir = 4},/area/medical/virology) +"cLz" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/whitegreen/side{dir = 1},/area/medical/virology) +"cLA" = (/obj/structure/chair/office/light{dir = 4},/obj/effect/landmark/start{name = "Virologist"},/turf/open/floor/plasteel/whitegreen/corner{dir = 1},/area/medical/virology) +"cLB" = (/obj/item/weapon/folder/white,/obj/item/weapon/folder/white,/obj/item/weapon/pen/red,/obj/machinery/requests_console{department = "Virology"; name = "Virology Requests Console"; pixel_x = 29; pixel_y = 0},/obj/item/stack/sheet/mineral/plasma{layer = 2.9},/obj/item/stack/sheet/mineral/plasma{layer = 2.9},/obj/item/stack/sheet/mineral/plasma{layer = 2.9},/obj/structure/table/glass,/turf/open/floor/plasteel/whitegreen/side{dir = 4},/area/medical/virology) +"cLC" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;5;39;6"},/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cLD" = (/turf/open/floor/plasteel/white/side{dir = 6},/area/medical/medbay3{name = "Medbay Aft"}) +"cLE" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/white,/area/medical/medbay3{name = "Medbay Aft"}) +"cLF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/white/side{dir = 10},/area/medical/medbay3{name = "Medbay Aft"}) +"cLG" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 1},/turf/open/floor/plasteel/white/corner{dir = 4},/area/medical/medbay3{name = "Medbay Aft"}) +"cLH" = (/obj/item/device/healthanalyzer{pixel_x = 1; pixel_y = 4},/obj/structure/sign/nosmoking_2{pixel_x = 0; pixel_y = -30},/obj/structure/table/glass,/turf/open/floor/plasteel/white/side{dir = 1},/area/medical/medbay3{name = "Medbay Aft"}) +"cLI" = (/obj/machinery/vending/medical,/turf/open/floor/plasteel/white/corner{dir = 1},/area/medical/medbay3{name = "Medbay Aft"}) +"cLJ" = (/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/obj/structure/bodycontainer/morgue,/obj/effect/landmark{name = "revenantspawn"},/turf/open/floor/plasteel/black,/area/medical/morgue) +"cLK" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel/black,/area/medical/morgue) +"cLL" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/black,/area/medical/morgue) +"cLM" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/plasteel/black,/area/medical/morgue) +"cLN" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/centcom{name = "Morgue"; opacity = 1; req_access_txt = "6"},/turf/open/floor/plasteel/black,/area/medical/morgue) +"cLO" = (/turf/open/floor/plasteel/black,/area/hallway/primary/aft) +"cLP" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"cLQ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"cLR" = (/obj/machinery/light{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/sign/science{name = "\improper ROBOTICS!"; pixel_x = 32},/turf/open/floor/plasteel/purple/corner{dir = 4},/area/hallway/primary/aft) +"cLS" = (/obj/structure/noticeboard{dir = 4; pixel_x = -27; pixel_y = 0},/turf/open/floor/plasteel/warning{dir = 8},/area/assembly/robotics) +"cLT" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/assembly/robotics) +"cLU" = (/obj/effect/landmark/start{name = "Roboticist"},/turf/open/floor/plasteel/bot,/area/assembly/robotics) +"cLV" = (/turf/open/floor/plasteel,/area/assembly/robotics) +"cLW" = (/turf/open/floor/plasteel/bot,/area/assembly/robotics) +"cLX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/warning{dir = 4},/area/assembly/robotics) +"cLY" = (/obj/machinery/firealarm{dir = 4; pixel_x = 28; pixel_y = 5},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/table,/obj/item/weapon/wrench,/obj/item/weapon/screwdriver{pixel_y = 10},/obj/item/device/multitool{pixel_x = 3},/obj/item/stack/cable_coil,/turf/open/floor/plasteel/delivery,/area/assembly/robotics) +"cLZ" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/obj/machinery/camera{c_tag = "Research Division Hallway - Robotics"; dir = 4; network = list("SS13","RD")},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cMa" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cMb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white/side{dir = 8},/area/medical/research{name = "Research Division"}) +"cMc" = (/turf/open/floor/engine/vacuum,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cMd" = (/obj/machinery/door/airlock/glass_research{autoclose = 0; frequency = 1449; glass = 1; heat_proof = 1; icon_state = "door_locked"; id_tag = "tox_airlock_exterior"; locked = 1; name = "Mixing Room Exterior Airlock"; req_access_txt = "8"},/turf/open/floor/engine,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cMe" = (/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume{dir = 2; frequency = 1449; id = "tox_airlock_pump"},/obj/effect/landmark{name = "blobstart"},/turf/open/floor/engine,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cMf" = (/obj/machinery/door/airlock/glass_research{autoclose = 0; frequency = 1449; glass = 1; heat_proof = 1; icon_state = "door_locked"; id_tag = "tox_airlock_interior"; locked = 1; name = "Mixing Room Interior Airlock"; req_access_txt = "8"},/turf/open/floor/engine,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cMg" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/camera{c_tag = "Toxins - Mixing Area"; dir = 8; network = list("SS13","RD")},/turf/open/floor/plasteel/warning{dir = 4},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cMh" = (/obj/effect/decal/cleanable/oil,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cMi" = (/obj/structure/closet,/obj/item/device/assembly/prox_sensor{pixel_x = 2; pixel_y = -2},/obj/item/device/assembly/signaler{pixel_x = -2; pixel_y = 5},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cMj" = (/obj/structure/chair{dir = 1},/turf/open/floor/plating/airless/warnplate{dir = 10},/area/toxins/test_area) +"cMk" = (/obj/item/device/flashlight/lamp,/turf/open/floor/plating/airless/warnplate{dir = 2},/area/toxins/test_area) +"cMl" = (/obj/structure/chair{dir = 1},/turf/open/floor/plating/airless/warnplate{dir = 6},/area/toxins/test_area) +"cMm" = (/obj/item/device/radio/intercom{pixel_x = -28; pixel_y = 0},/obj/structure/table/glass,/obj/item/weapon/hand_labeler,/obj/item/device/radio/headset/headset_med,/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/machinery/camera{c_tag = "Virology - Cells"; dir = 4; network = list("SS13","Medbay")},/turf/open/floor/plasteel/whitegreen/side{dir = 9},/area/medical/virology) +"cMn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/iv_drip,/turf/open/floor/plasteel/whitegreen/side{dir = 1},/area/medical/virology) +"cMo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/whitegreen/side{dir = 1},/area/medical/virology) +"cMp" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/open/floor/plasteel/whitegreen/side{dir = 1},/area/medical/virology) +"cMq" = (/obj/structure/rack,/obj/item/weapon/crowbar/red,/obj/machinery/light_switch{pixel_x = 0; pixel_y = 26},/obj/item/weapon/wrench,/obj/item/weapon/restraints/handcuffs,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/whitegreen/side{dir = 5},/area/medical/virology) +"cMr" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/medical/virology) +"cMs" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/whitegreen/side{dir = 8},/area/medical/virology) +"cMt" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/white,/area/medical/virology) +"cMu" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/open/floor/plasteel/white,/area/medical/virology) +"cMv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/virology) +"cMw" = (/obj/machinery/computer/pandemic{layer = 2.5; pixel_x = -4},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/item/device/radio/intercom{pixel_x = 28; pixel_y = 0},/turf/open/floor/plasteel/whitegreen/side{dir = 4},/area/medical/virology) +"cMx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall/r_wall,/area/medical/virology) +"cMy" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/medical/virology) +"cMz" = (/obj/structure/sign/biohazard{pixel_y = 32},/obj/machinery/shower{icon_state = "shower"; dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/warnwhite{dir = 9},/area/medical/virology) +"cMA" = (/obj/structure/sink{pixel_y = 28},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/warnwhite{dir = 1},/area/medical/virology) +"cMB" = (/obj/structure/sign/securearea{pixel_x = 0; pixel_y = 32},/obj/machinery/shower{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/warnwhite{dir = 5},/area/medical/virology) +"cMC" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/iv_drip{density = 0},/turf/open/floor/plasteel/whitegreen/side{dir = 8},/area/medical/medbay3{name = "Medbay Aft"}) +"cMD" = (/obj/machinery/light/small{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/turf/open/floor/plasteel/whitegreen/side{dir = 4},/area/medical/medbay3{name = "Medbay Aft"}) +"cME" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-21"; layer = 4.1; pixel_x = -3; pixel_y = 3},/turf/open/floor/plasteel/whitegreen/corner{dir = 8},/area/medical/medbay3{name = "Medbay Aft"}) +"cMF" = (/turf/open/floor/plasteel/white,/area/medical/medbay3{name = "Medbay Aft"}) +"cMG" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay3{name = "Medbay Aft"}) +"cMH" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/plasteel/white/side{dir = 9},/area/medical/medbay3{name = "Medbay Aft"}) +"cMI" = (/obj/machinery/light/small,/turf/open/floor/plasteel/black,/area/medical/morgue) +"cMJ" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/black,/area/medical/morgue) +"cMK" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/black,/area/medical/morgue) +"cML" = (/obj/machinery/disposal/bin,/obj/machinery/light_switch{pixel_x = 23; pixel_y = 0},/obj/structure/disposalpipe/trunk{dir = 1},/turf/open/floor/plasteel/black,/area/medical/morgue) +"cMM" = (/obj/structure/closet,/turf/open/floor/plasteel/black,/area/hallway/primary/aft) +"cMN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/aft) +"cMO" = (/obj/machinery/computer/rdconsole/robotics,/obj/machinery/requests_console{department = "Robotics"; departmentType = 2; name = "Robotics RC"; pixel_x = -31; pixel_y = 0},/turf/open/floor/plasteel/bot,/area/assembly/robotics) +"cMP" = (/turf/open/floor/plasteel/warning{dir = 8},/area/assembly/robotics) +"cMQ" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel,/area/assembly/robotics) +"cMR" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/assembly/robotics) +"cMS" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/warning{dir = 4},/area/assembly/robotics) +"cMT" = (/obj/structure/disposalpipe/trunk{dir = 8},/obj/machinery/disposal/bin,/obj/machinery/light_switch{pixel_x = 27},/turf/open/floor/plasteel/delivery,/area/assembly/robotics) +"cMU" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cMV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/landmark{name = "lightsout"},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cMW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel/white/side{dir = 10},/area/medical/research{name = "Research Division"}) +"cMX" = (/obj/machinery/sparker{dir = 2; id = "mixingsparker"; pixel_x = 25},/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 4; frequency = 1441; id = "air_in"},/turf/open/floor/engine/vacuum,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cMY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/sign/fire{pixel_y = -32},/obj/machinery/atmospherics/components/binary/pump{dir = 8; on = 1},/turf/open/floor/engine,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cMZ" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/obj/machinery/meter,/obj/machinery/button/door{id = "mixvent"; name = "Mixing Room Vent Control"; pixel_x = -25; pixel_y = 5; req_access_txt = "7"},/obj/machinery/button/ignition{id = "mixingsparker"; pixel_x = -25; pixel_y = -5},/obj/machinery/airalarm{dir = 1; pixel_y = -22},/turf/open/floor/plasteel/warnwhite/corner{dir = 4},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cNa" = (/obj/machinery/atmospherics/components/binary/valve{dir = 4; name = "manual inlet valve"},/turf/open/floor/plasteel/warnwhite{dir = 4},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cNb" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/portable_atmospherics/canister,/turf/open/floor/plasteel/warning{dir = 6},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cNc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating{icon_state = "platingdmg2"},/area/maintenance/aft{name = "Aft Maintenance"}) +"cNd" = (/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/obj/item/target,/turf/open/floor/plating/warnplate,/area/toxins/test_area) +"cNe" = (/obj/structure/table/glass,/obj/item/weapon/folder/white,/obj/item/weapon/folder/white,/obj/item/weapon/pen/red,/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/whitegreen/side{dir = 8},/area/medical/virology) +"cNf" = (/obj/structure/chair/office/light{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/white,/area/medical/virology) +"cNg" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/white,/area/medical/virology) +"cNh" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/white,/area/medical/virology) +"cNi" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/whitegreen/side{dir = 4},/area/medical/virology) +"cNj" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_virology{name = "Containment Cells"; req_access_txt = "39"},/turf/open/floor/plasteel/whitegreen,/area/medical/virology) +"cNk" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/whitegreen/side{dir = 8},/area/medical/virology) +"cNl" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/white,/area/medical/virology) +"cNm" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/effect/landmark{name = "lightsout"},/obj/machinery/holopad,/turf/open/floor/plasteel/white,/area/medical/virology) +"cNn" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/virology) +"cNo" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/whitegreen/side{dir = 4},/area/medical/virology) +"cNp" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/virology{name = "Virology Access"; req_access_txt = "39"},/turf/open/floor/plasteel/whitegreen,/area/medical/virology) +"cNq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/whitegreen/side{dir = 8},/area/medical/virology) +"cNr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/white,/area/medical/virology) +"cNs" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/doorButtons/airlock_controller{idExterior = "virology_airlock_exterior"; idSelf = "virology_airlock_control"; idInterior = "virology_airlock_interior"; name = "Virology Access Console"; pixel_x = 26; pixel_y = 26; req_access_txt = "39"},/turf/open/floor/plasteel/whitegreen/side{dir = 4},/area/medical/virology) +"cNt" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/virology{autoclose = 0; frequency = 1449; icon_state = "door_locked"; id_tag = "virology_airlock_interior"; locked = 1; name = "Virology Interior Airlock"; req_access_txt = "39"},/turf/open/floor/plasteel/whitegreen,/area/medical/virology) +"cNu" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/doorButtons/access_button{idDoor = "virology_airlock_interior"; idSelf = "virology_airlock_control"; name = "Virology Access Button"; pixel_x = -26; pixel_y = 28; req_access_txt = "39"},/turf/open/floor/plasteel/warnwhite{dir = 8},/area/medical/virology) +"cNv" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/warnwhite{dir = 4},/area/medical/virology) +"cNw" = (/obj/machinery/doorButtons/access_button{idDoor = "virology_airlock_exterior"; idSelf = "virology_airlock_control"; name = "Virology Access Button"; pixel_x = 0; pixel_y = 24; req_access_txt = "39"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/virology{autoclose = 0; frequency = 1449; icon_state = "door_locked"; id_tag = "virology_airlock_exterior"; locked = 1; name = "Virology Exterior Airlock"; req_access_txt = "39"},/turf/open/floor/plasteel/whitegreen,/area/medical/virology) +"cNx" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/whitegreen/side{dir = 8},/area/medical/medbay3{name = "Medbay Aft"}) +"cNy" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel/whitegreen/side{dir = 4},/area/medical/medbay3{name = "Medbay Aft"}) +"cNz" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/virology{name = "Virology Access"; req_access_txt = "39"},/turf/open/floor/plasteel/whitegreen,/area/medical/medbay3{name = "Medbay Aft"}) +"cNA" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/white,/area/medical/medbay3{name = "Medbay Aft"}) +"cNB" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/medbay3{name = "Medbay Aft"}) +"cNC" = (/turf/open/floor/plasteel/white/side{dir = 8},/area/medical/medbay3{name = "Medbay Aft"}) +"cND" = (/obj/machinery/door/airlock{name = "Medical Surplus Storeroom"; req_access_txt = "5"},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cNE" = (/turf/open/floor/plasteel/floorgrime,/area/maintenance/aft{name = "Aft Maintenance"}) +"cNF" = (/obj/structure/table,/obj/machinery/light/small{dir = 1},/obj/item/weapon/storage/backpack/dufflebag/med,/obj/item/device/flashlight/pen{pixel_x = 4; pixel_y = 3},/turf/open/floor/plasteel/floorgrime,/area/maintenance/aft{name = "Aft Maintenance"}) +"cNG" = (/obj/structure/table,/obj/item/weapon/retractor,/obj/item/weapon/hemostat,/obj/item/device/healthanalyzer,/obj/item/clothing/glasses/eyepatch,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka{pixel_x = 3; pixel_y = 2},/obj/effect/decal/cleanable/cobweb/cobweb2,/turf/open/floor/plasteel/floorgrime,/area/maintenance/aft{name = "Aft Maintenance"}) +"cNH" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/maintenance{name = "Morgue Maintenance"; req_access_txt = "6"},/turf/open/floor/plating,/area/medical/morgue) +"cNI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/aft) +"cNJ" = (/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/r_n_d/circuit_imprinter,/turf/open/floor/plasteel/bot,/area/assembly/robotics) +"cNK" = (/obj/effect/landmark/start{name = "Roboticist"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/bot,/area/assembly/robotics) +"cNL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/warning{dir = 4},/area/assembly/robotics) +"cNM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/rack,/obj/item/weapon/storage/firstaid/regular{empty = 1; name = "First-Aid (empty)"},/obj/item/weapon/storage/firstaid/regular{empty = 1; name = "First-Aid (empty)"},/obj/item/weapon/storage/firstaid/regular{empty = 1; name = "First-Aid (empty)"},/obj/item/device/healthanalyzer{pixel_x = 4; pixel_y = -4},/obj/item/device/healthanalyzer{pixel_x = 4; pixel_y = -4},/obj/item/device/healthanalyzer{pixel_x = 4; pixel_y = -4},/obj/item/device/radio/headset/headset_sci{pixel_x = -3},/turf/open/floor/plasteel/delivery,/area/assembly/robotics) +"cNN" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/assembly/robotics) +"cNO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/whitepurple/corner{dir = 8},/area/medical/research{name = "Research Division"}) +"cNP" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cNQ" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel/whiteblue/corner{dir = 2},/area/medical/research{name = "Research Division"}) +"cNR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/sign/securearea{desc = "A warning sign which reads 'SERVER ROOM'."; name = "SERVER ROOM"; pixel_y = 0},/turf/closed/wall/r_wall,/area/toxins/server{name = "\improper Research Division Server Room"}) +"cNS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/toxins/server{name = "\improper Research Division Server Room"}) +"cNT" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/turf/closed/wall/r_wall,/area/toxins/server{name = "\improper Research Division Server Room"}) +"cNU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cNV" = (/obj/machinery/door/airlock/maintenance{name = "Toxins Lab Maintenance"; req_access_txt = "8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/poddoor/shutters/preopen{id = "toxins_blastdoor"; name = "biohazard containment shutters"},/turf/open/floor/plating/warnplate{dir = 1},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cNW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/closed/wall/r_wall,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cNX" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cNY" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cNZ" = (/obj/structure/rack,/obj/item/clothing/mask/gas,/obj/item/clothing/glasses/sunglasses,/obj/effect/spawner/lootdrop/maintenance,/obj/machinery/light/small{dir = 4},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cOa" = (/obj/structure/cable,/obj/machinery/power/tracker,/turf/open/floor/plating/airless,/area/solar/port) +"cOb" = (/obj/structure/table/glass,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 9},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/extinguisher_cabinet{pixel_x = -25; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/whitegreen/side{dir = 10},/area/medical/virology) +"cOc" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plasteel/whitegreen/side,/area/medical/virology) +"cOd" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/whitegreen/side,/area/medical/virology) +"cOe" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel/whitegreen/side,/area/medical/virology) +"cOf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/open/floor/plasteel/whitegreen/side{dir = 6},/area/medical/virology) +"cOg" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/turf/open/floor/plating,/area/medical/virology) +"cOh" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/whitegreen/side{dir = 10},/area/medical/virology) +"cOi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/whitegreen/side,/area/medical/virology) +"cOj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/whitegreen/side,/area/medical/virology) +"cOk" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/turf/open/floor/plasteel/whitegreen/side,/area/medical/virology) +"cOl" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/obj/machinery/camera{c_tag = "Virology - Lab"; dir = 8; network = list("SS13","Medbay")},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/machinery/light_switch{pixel_x = 26; pixel_y = 0},/turf/open/floor/plasteel/whitegreen/side{dir = 6},/area/medical/virology) +"cOm" = (/obj/structure/closet/emcloset,/obj/item/device/radio/intercom{pixel_x = -28; pixel_y = 0},/turf/open/floor/plasteel/warnwhite{dir = 10},/area/medical/virology) +"cOn" = (/obj/machinery/camera{c_tag = "Virology - Airlock"; dir = 1; network = list("SS13","Medbay")},/obj/machinery/light,/obj/structure/closet/l3closet,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/plasteel/warnwhite{dir = 2},/area/medical/virology) +"cOo" = (/obj/structure/closet/l3closet,/turf/open/floor/plasteel/warnwhite{dir = 6},/area/medical/virology) +"cOp" = (/obj/structure/sign/biohazard{pixel_x = -32},/turf/open/floor/plasteel/whitegreen/side{dir = 8},/area/medical/medbay3{name = "Medbay Aft"}) +"cOq" = (/obj/machinery/camera{c_tag = "Virology - Entrance"; dir = 8; network = list("SS13","Medbay")},/obj/machinery/light/small{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel/whitegreen/side{dir = 4},/area/medical/medbay3{name = "Medbay Aft"}) +"cOr" = (/obj/structure/sign/biohazard{pixel_x = -32},/obj/item/weapon/storage/box/gloves{pixel_x = 3; pixel_y = 4},/obj/item/weapon/storage/box/masks{pixel_x = 0; pixel_y = 0},/obj/structure/table/glass,/turf/open/floor/plasteel/whitegreen/corner{dir = 1},/area/medical/medbay3{name = "Medbay Aft"}) +"cOs" = (/obj/structure/sign/nosmoking_2{pixel_x = 0; pixel_y = -30},/obj/item/weapon/storage/box/beakers{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/box/bodybags,/obj/structure/table/glass,/turf/open/floor/plasteel/white,/area/medical/medbay3{name = "Medbay Aft"}) +"cOt" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/item/weapon/folder/white,/obj/item/weapon/folder/white,/obj/machinery/light,/obj/item/weapon/hand_labeler,/obj/item/weapon/pen,/obj/item/weapon/pen,/obj/structure/table/glass,/turf/open/floor/plasteel/white,/area/medical/medbay3{name = "Medbay Aft"}) +"cOu" = (/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 8},/obj/structure/table/glass,/turf/open/floor/plasteel/white/side{dir = 10},/area/medical/medbay3{name = "Medbay Aft"}) +"cOv" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/open/floor/plasteel/floorgrime,/area/maintenance/aft{name = "Aft Maintenance"}) +"cOw" = (/obj/effect/decal/cleanable/oil,/turf/open/floor/plasteel/floorgrime,/area/maintenance/aft{name = "Aft Maintenance"}) +"cOx" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 8; pixel_y = 2},/obj/item/weapon/reagent_containers/blood/empty{pixel_x = 0; pixel_y = 0},/obj/item/weapon/reagent_containers/blood/empty{pixel_x = 0; pixel_y = 0},/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/dropper,/obj/structure/sign/biohazard{pixel_x = 32},/turf/open/floor/plasteel/floorgrime,/area/maintenance/aft{name = "Aft Maintenance"}) +"cOy" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cOz" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/aft{name = "Aft Maintenance"}) +"cOA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cOB" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/aft{name = "Aft Maintenance"}) +"cOC" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;5;39;6"},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cOD" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/aft) +"cOE" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"cOF" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/bodycontainer/morgue,/turf/open/floor/plasteel/bot,/area/assembly/robotics) +"cOG" = (/turf/open/floor/plasteel/warning{dir = 10},/area/assembly/robotics) +"cOH" = (/turf/open/floor/plasteel/warning{dir = 2},/area/assembly/robotics) +"cOI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/warning{dir = 2},/area/assembly/robotics) +"cOJ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 6},/area/assembly/robotics) +"cOK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/bot,/area/assembly/robotics) +"cOL" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Robotics Lab"; req_access_txt = "29"; req_one_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/purple,/area/assembly/robotics) +"cOM" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/whitepurple/side{dir = 8},/area/medical/research{name = "Research Division"}) +"cON" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cOO" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel/whiteblue/side{dir = 4},/area/medical/research{name = "Research Division"}) +"cOP" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{name = "Research Division Server Room"; req_access = null; req_access_txt = "30"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/black,/area/toxins/server{name = "\improper Research Division Server Room"}) +"cOQ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light_switch{pixel_y = 28},/turf/open/floor/plasteel/black,/area/toxins/server{name = "\improper Research Division Server Room"}) +"cOR" = (/obj/machinery/camera{c_tag = "Research Division - Server Room"; dir = 2; network = list("SS13","RD"); pixel_x = 22},/obj/machinery/power/apc{dir = 1; name = "Research Division Server Room APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/effect/landmark{name = "revenantspawn"},/turf/open/floor/plasteel/black,/area/toxins/server{name = "\improper Research Division Server Room"}) +"cOS" = (/obj/machinery/atmospherics/components/unary/thermomachine/freezer{target_temperature = 80; dir = 2; on = 1},/obj/effect/decal/cleanable/cobweb/cobweb2,/turf/open/floor/plasteel/black,/area/toxins/server{name = "\improper Research Division Server Room"}) +"cOT" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/sign/securearea{desc = "A warning sign which reads 'SERVER ROOM'."; name = "SERVER ROOM"; pixel_y = 32},/turf/open/floor/plating,/area/toxins/server{name = "\improper Research Division Server Room"}) +"cOU" = (/obj/machinery/r_n_d/server/robotics,/turf/open/floor/bluegrid{name = "Server Base"; initial_gas_mix = "n2=500;TEMP=80"},/area/toxins/server{name = "\improper Research Division Server Room"}) +"cOV" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; external_pressure_bound = 140; on = 1; pressure_checks = 0},/turf/open/floor/bluegrid{name = "Server Base"; initial_gas_mix = "n2=500;TEMP=80"},/area/toxins/server{name = "\improper Research Division Server Room"}) +"cOW" = (/turf/closed/wall/r_wall,/area/toxins/server{name = "\improper Research Division Server Room"}) +"cOX" = (/obj/structure/closet,/obj/item/weapon/storage/box/lights/mixed,/obj/item/device/flashlight,/obj/effect/decal/cleanable/cobweb,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cOY" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/aft{name = "Aft Maintenance"}) +"cOZ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/sign/biohazard{pixel_y = 32},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cPa" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cPb" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/obj/structure/sign/poster{pixel_y = -32},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cPc" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cPd" = (/obj/structure/closet/crate,/obj/item/clothing/mask/gas,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cPe" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/structure/cable/yellow,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/medical/virology) +"cPf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_virology{name = "Isolation B"; req_access_txt = "39"},/turf/open/floor/plasteel/freezer,/area/medical/virology) +"cPg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_virology{name = "Isolation A"; req_access_txt = "39"},/turf/open/floor/plasteel/freezer,/area/medical/virology) +"cPh" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/closed/wall,/area/medical/virology) +"cPi" = (/obj/structure/closet/wardrobe/virology_white,/obj/item/weapon/storage/backpack/satchel/vir,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/firealarm{dir = 8; pixel_x = -26; pixel_y = 0},/turf/open/floor/plasteel/vault,/area/medical/virology) +"cPj" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/blood/empty,/obj/item/weapon/reagent_containers/blood/empty{pixel_x = -3; pixel_y = -3},/obj/item/weapon/reagent_containers/blood/AMinus,/obj/item/weapon/reagent_containers/blood/BMinus{pixel_x = -4; pixel_y = 4},/obj/item/weapon/reagent_containers/blood/BPlus{pixel_x = 1; pixel_y = 2},/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OPlus{pixel_x = -2; pixel_y = -1},/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/random,/turf/open/floor/plasteel/vault,/area/medical/virology) +"cPk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/vault,/area/medical/virology) +"cPl" = (/obj/structure/closet/secure_closet/medical1,/turf/open/floor/plasteel/vault,/area/medical/virology) +"cPm" = (/obj/structure/closet/l3closet/virology,/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/turf/open/floor/plasteel/vault,/area/medical/virology) +"cPn" = (/obj/structure/sign/biohazard{pixel_x = -32},/turf/open/space,/area/space) +"cPo" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;5;39;6"},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cPp" = (/obj/structure/bed/roller,/obj/structure/bed/roller,/obj/machinery/iv_drip{density = 0},/obj/machinery/iv_drip{density = 0},/turf/open/floor/plasteel/floorgrime,/area/maintenance/aft{name = "Aft Maintenance"}) +"cPq" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cPr" = (/obj/item/clothing/gloves/color/latex/nitrile,/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/suit/toggle/labcoat,/obj/item/clothing/suit/apron/surgical,/obj/item/clothing/mask/surgical,/obj/item/clothing/mask/breath/medical,/turf/open/floor/plating{icon_state = "platingdmg2"},/area/maintenance/aft{name = "Aft Maintenance"}) +"cPs" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cPt" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/open/floor/plasteel/escape{dir = 2},/area/hallway/primary/aft) +"cPu" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/escape{dir = 2},/area/hallway/primary/aft) +"cPv" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/camera{c_tag = "Aft Primary Hallway - Aft"; dir = 8; network = list("SS13")},/turf/open/floor/plasteel/escape{dir = 2},/area/hallway/primary/aft) +"cPw" = (/obj/structure/sign/directions/evac{pixel_y = 0},/turf/closed/wall/r_wall,/area/hallway/primary/aft) +"cPx" = (/obj/structure/table,/obj/item/weapon/circular_saw,/obj/item/weapon/scalpel{pixel_y = 12},/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/obj/item/weapon/razor{pixel_y = 5},/turf/open/floor/plasteel/white/side{dir = 4},/area/assembly/robotics) +"cPy" = (/obj/effect/landmark/start{name = "Roboticist"},/obj/structure/sink{dir = 8; icon_state = "sink"; pixel_x = -12; pixel_y = 2},/turf/open/floor/plasteel/white,/area/assembly/robotics) +"cPz" = (/obj/machinery/holopad,/turf/open/floor/plasteel/white,/area/assembly/robotics) +"cPA" = (/obj/structure/table,/obj/item/clothing/gloves/color/latex,/obj/item/weapon/surgical_drapes,/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/turf/open/floor/plasteel/white/side{dir = 8},/area/assembly/robotics) +"cPB" = (/turf/open/floor/plasteel/delivery,/area/assembly/robotics) +"cPC" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/table,/obj/item/weapon/storage/box/bodybags{pixel_x = 2; pixel_y = 2},/obj/item/borg/upgrade/rename,/turf/open/floor/plasteel/delivery,/area/assembly/robotics) +"cPD" = (/obj/structure/rack,/obj/item/weapon/storage/toolbox/electrical{pixel_x = -1; pixel_y = 4},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = 2; pixel_y = -1},/obj/item/clothing/head/welding{pixel_x = -3; pixel_y = 5},/obj/item/clothing/glasses/welding,/obj/item/device/multitool{pixel_x = 3},/turf/open/floor/plasteel/delivery,/area/assembly/robotics) +"cPE" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/assembly/robotics) +"cPF" = (/turf/open/floor/plasteel/whitepurple/corner{dir = 1},/area/medical/research{name = "Research Division"}) +"cPG" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_Toxins = 0},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"cPH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/open/floor/plasteel/whiteblue/corner{dir = 4},/area/medical/research{name = "Research Division"}) +"cPI" = (/turf/closed/wall,/area/toxins/server{name = "\improper Research Division Server Room"}) +"cPJ" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/black,/area/toxins/server{name = "\improper Research Division Server Room"}) +"cPK" = (/obj/structure/chair/office/light,/turf/open/floor/plasteel/black,/area/toxins/server{name = "\improper Research Division Server Room"}) +"cPL" = (/obj/machinery/atmospherics/pipe/simple{dir = 5},/turf/open/floor/plasteel/black,/area/toxins/server{name = "\improper Research Division Server Room"}) +"cPM" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_command{name = "Server Access"; req_access_txt = "30"},/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/open/floor/plasteel/black,/area/toxins/server{name = "\improper Research Division Server Room"}) +"cPN" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/open/floor/plasteel/black{name = "Server Walkway"; initial_gas_mix = "n2=500;TEMP=80"},/area/toxins/server{name = "\improper Research Division Server Room"}) +"cPO" = (/obj/effect/landmark{name = "blobstart"},/obj/machinery/atmospherics/pipe/manifold{dir = 4},/obj/machinery/light/small{dir = 4},/obj/machinery/airalarm/server{dir = 8; pixel_x = 22; pixel_y = 0},/turf/open/floor/plasteel/black{name = "Server Walkway"; initial_gas_mix = "n2=500;TEMP=80"},/area/toxins/server{name = "\improper Research Division Server Room"}) +"cPP" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cPQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cPR" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/aft{name = "Aft Maintenance"}) +"cPS" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/aft{name = "Aft Maintenance"}) +"cPT" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = -32},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/aft{name = "Aft Maintenance"}) +"cPU" = (/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/lattice/catwalk,/turf/open/space,/area/space) +"cPV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/weapon/bedsheet/medical,/obj/structure/bed,/turf/open/floor/plasteel/freezer,/area/medical/virology) +"cPW" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/freezer,/area/medical/virology) +"cPX" = (/obj/structure/bed,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/weapon/bedsheet/medical,/turf/open/floor/plasteel/freezer,/area/medical/virology) +"cPY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/turf/closed/wall,/area/medical/virology) +"cPZ" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/virology{name = "Break Room"; req_access_txt = "39"},/turf/open/floor/plasteel/whitegreen,/area/medical/virology) +"cQa" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/sign/poster{pixel_y = 32},/turf/open/floor/plating{icon_state = "platingdmg2"},/area/maintenance/aft{name = "Aft Maintenance"}) +"cQb" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cQc" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/aft{name = "Aft Maintenance"}) +"cQd" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/item/weapon/ore/slag,/obj/item/weapon/storage/box/lights/mixed,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cQe" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/space_heater,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cQf" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/closet/crate,/obj/item/clothing/gloves/color/fyellow,/obj/item/weapon/wrench,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cQg" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/closet/firecloset,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cQh" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/screwdriver{pixel_y = 6},/obj/item/weapon/crowbar,/obj/item/weapon/storage/pill_bottle,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cQi" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/item/weapon/cigbutt,/turf/open/floor/plating{icon_state = "platingdmg1"},/area/maintenance/aft{name = "Aft Maintenance"}) +"cQj" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/decal/cleanable/generic,/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/aft{name = "Aft Maintenance"}) +"cQk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/airlock/maintenance{name = "Medical Surplus Storeroom"; req_access_txt = "12"; req_one_access_txt = "0"},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cQl" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/aft{name = "Aft Maintenance"}) +"cQm" = (/obj/structure/closet/firecloset,/turf/open/floor/plasteel/vault,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cQn" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/vault,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cQo" = (/obj/machinery/computer/arcade,/turf/open/floor/plasteel/vault,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cQp" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/obj/machinery/newscaster{pixel_x = 0; pixel_y = 32},/turf/open/floor/plasteel/vault,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cQq" = (/obj/machinery/vending/coffee,/obj/structure/sign/map/left{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-left-MS"; pixel_y = 32},/turf/open/floor/plasteel/vault,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cQr" = (/obj/machinery/vending/snack,/obj/structure/sign/map/right{desc = "A framed picture of the station. Clockwise from security in red at the top, you see engineering in yellow, science in purple, escape in checkered red-and-white, medbay in green, arrivals in checkered red-and-blue, and then cargo in brown."; icon_state = "map-right-MS"; pixel_y = 32},/turf/open/floor/plasteel/vault,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cQs" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Departure Lounge"},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cQt" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Departure Lounge"},/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cQu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Departure Lounge"},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cQv" = (/obj/structure/table,/obj/item/weapon/retractor,/obj/item/weapon/hemostat,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -29},/turf/open/floor/plasteel/white/corner{dir = 4},/area/assembly/robotics) +"cQw" = (/obj/structure/table/optable{name = "Robotics Operating Table"},/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/obj/machinery/camera{c_tag = "Robotics - Aft"; dir = 1; network = list("SS13","RD")},/turf/open/floor/plasteel/white/side{dir = 1},/area/assembly/robotics) +"cQx" = (/obj/machinery/computer/operating{name = "Robotics Operating Computer"},/turf/open/floor/plasteel/white/side{dir = 1},/area/assembly/robotics) +"cQy" = (/obj/structure/table,/obj/item/device/mmi,/obj/item/device/mmi,/obj/item/device/mmi,/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/turf/open/floor/plasteel/white/corner{dir = 1},/area/assembly/robotics) +"cQz" = (/obj/machinery/door/window/eastleft{dir = 1; name = "Robotics Deliveries"; req_access_txt = "29"},/turf/open/floor/plasteel/delivery,/area/assembly/robotics) +"cQA" = (/obj/structure/closet/wardrobe/robotics_black{pixel_x = 2},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/delivery,/area/assembly/robotics) +"cQB" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/crowbar,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/turf/open/floor/plasteel/delivery,/area/assembly/robotics) +"cQC" = (/obj/structure/sink{dir = 8; icon_state = "sink"; pixel_x = -12; pixel_y = 2},/turf/open/floor/plasteel/whitepurple/corner{dir = 2},/area/medical/research{name = "Research Division"}) +"cQD" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/whitepurple/side{dir = 2},/area/medical/research{name = "Research Division"}) +"cQE" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-10"; layer = 4.1},/turf/open/floor/plasteel/whitepurple/corner{dir = 8},/area/medical/research{name = "Research Division"}) +"cQF" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/filingcabinet/chestdrawer,/turf/open/floor/plasteel/black,/area/toxins/server{name = "\improper Research Division Server Room"}) +"cQG" = (/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = -28},/obj/machinery/computer/rdservercontrol,/turf/open/floor/plasteel/black,/area/toxins/server{name = "\improper Research Division Server Room"}) +"cQH" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/weapon/pen,/turf/open/floor/plasteel/black,/area/toxins/server{name = "\improper Research Division Server Room"}) +"cQI" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/toxins/server{name = "\improper Research Division Server Room"}) +"cQJ" = (/obj/machinery/r_n_d/server/core,/turf/open/floor/bluegrid{name = "Server Base"; initial_gas_mix = "n2=500;TEMP=80"},/area/toxins/server{name = "\improper Research Division Server Room"}) +"cQK" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 120; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/open/floor/bluegrid{name = "Server Base"; initial_gas_mix = "n2=500;TEMP=80"},/area/toxins/server{name = "\improper Research Division Server Room"}) +"cQL" = (/obj/structure/easel,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cQM" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/aft{name = "Aft Maintenance"}) +"cQN" = (/obj/structure/rack,/obj/effect/landmark/costume,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating/warnplate{dir = 2},/area/maintenance/aft{name = "Aft Maintenance"}) +"cQO" = (/obj/effect/decal/cleanable/dirt,/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plating/warnplate{dir = 2},/area/maintenance/aft{name = "Aft Maintenance"}) +"cQP" = (/obj/structure/closet,/obj/item/clothing/glasses/science,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating/warnplate{dir = 2},/area/maintenance/aft{name = "Aft Maintenance"}) +"cQQ" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 1},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cQR" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating/warnplate{dir = 2},/area/maintenance/aft{name = "Aft Maintenance"}) +"cQS" = (/obj/structure/closet,/obj/item/device/flashlight,/obj/effect/spawner/lootdrop/maintenance{lootcount = 3; name = "3maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cQT" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel/freezer,/area/medical/virology) +"cQU" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/freezer,/area/medical/virology) +"cQV" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/freezer,/area/medical/virology) +"cQW" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel/freezer,/area/medical/virology) +"cQX" = (/obj/structure/table/glass,/obj/machinery/newscaster{pixel_x = -30},/obj/item/weapon/folder/white,/obj/item/weapon/folder/white,/obj/item/weapon/paper,/obj/item/weapon/pen/red,/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = 30},/turf/open/floor/plasteel/whitegreen/side{dir = 9},/area/medical/virology) +"cQY" = (/obj/structure/chair/office/light{dir = 8},/obj/machinery/light{dir = 1},/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 0; pixel_y = 29},/turf/open/floor/plasteel/whitegreen/side{dir = 1},/area/medical/virology) +"cQZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/whitegreen/side{dir = 1},/area/medical/virology) +"cRa" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/machinery/light_switch{pixel_x = 0; pixel_y = 26},/obj/machinery/camera{c_tag = "Virology - Break Room"; dir = 2; network = list("SS13","Medbay")},/turf/open/floor/plasteel/whitegreen/side{dir = 1},/area/medical/virology) +"cRb" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/obj/structure/table/glass,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/turf/open/floor/plasteel/whitegreen/side{dir = 5},/area/medical/virology) +"cRc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plating/warnplate,/area/maintenance/aft{name = "Aft Maintenance"}) +"cRd" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating{icon_state = "platingdmg1"},/area/maintenance/aft{name = "Aft Maintenance"}) +"cRe" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cRf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cRg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j2s"; sortType = 17},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/warnplate,/area/maintenance/aft{name = "Aft Maintenance"}) +"cRh" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cRi" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/grille,/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/aft{name = "Aft Maintenance"}) +"cRj" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cRk" = (/obj/machinery/airalarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/open/floor/plasteel/warning{dir = 9},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cRl" = (/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cRm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cRn" = (/obj/machinery/power/apc{cell_type = 5000; dir = 1; name = "Departure Lounge APC"; pixel_y = 24},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cRo" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cRp" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cRq" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cRr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/item/device/radio/intercom{pixel_y = 25},/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cRs" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cRt" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cRu" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel/warning{dir = 5},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cRv" = (/obj/structure/plasticflaps{opacity = 1},/obj/machinery/navbeacon{codes_txt = "delivery;dir=1"; dir = 1; freq = 1400; location = "Robotics"},/turf/open/floor/plasteel/delivery,/area/assembly/robotics) +"cRw" = (/obj/machinery/door/airlock/maintenance{name = "Robotics Maintenance"; req_access_txt = "29"},/turf/open/floor/plating,/area/assembly/robotics) +"cRx" = (/obj/structure/sign/securearea,/turf/closed/wall/r_wall,/area/medical/research{name = "Research Division"}) +"cRy" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Xenobiology Lab"; req_access_txt = "47"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/whitepurple{dir = 4},/area/medical/research{name = "Research Division"}) +"cRz" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/aft{name = "Aft Maintenance"}) +"cRA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/airlock/maintenance{icon_state = "door_closed"; locked = 0; name = "Storage Room"; req_access_txt = "0"; req_one_access_txt = "12;47"},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cRB" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/aft{name = "Aft Maintenance"}) +"cRC" = (/obj/item/weapon/storage/box/lights/mixed,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cRD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating{icon_state = "platingdmg1"},/area/maintenance/aft{name = "Aft Maintenance"}) +"cRE" = (/turf/closed/wall/r_wall,/area/maintenance/starboardsolar) +"cRF" = (/obj/machinery/door/airlock/engineering{name = "Aft Starboard Solar Access"; req_access_txt = "10"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/starboardsolar) +"cRG" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 0},/turf/closed/wall/r_wall,/area/maintenance/starboardsolar) +"cRH" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/glass/beaker,/turf/open/floor/plasteel/freezer,/area/medical/virology) +"cRI" = (/obj/structure/table/glass,/obj/item/weapon/folder/white{pixel_y = 4},/obj/item/weapon/pen/red,/turf/open/floor/plasteel/freezer,/area/medical/virology) +"cRJ" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/closed/wall,/area/medical/virology) +"cRK" = (/obj/structure/table/glass,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 9},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/whitegreen/side{dir = 8},/area/medical/virology) +"cRL" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/virology) +"cRM" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/white,/area/medical/virology) +"cRN" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/white,/area/medical/virology) +"cRO" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/open/floor/plasteel/whitegreen/side{dir = 4},/area/medical/virology) +"cRP" = (/turf/closed/wall,/area/chapel/office) +"cRQ" = (/obj/machinery/door/airlock/centcom{layer = 2.7; name = "Crematorium Maintenance"; opacity = 1; req_access_txt = "27"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cRR" = (/obj/machinery/door/airlock/centcom{name = "Chapel Office Maintenance"; opacity = 1; req_access_txt = "27"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cRS" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cRT" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cRU" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cRV" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/junction{dir = 8; icon_state = "pipe-j2"},/turf/open/floor/plating/warnplate,/area/maintenance/aft{name = "Aft Maintenance"}) +"cRW" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cRX" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating{icon_state = "platingdmg2"},/area/maintenance/aft{name = "Aft Maintenance"}) +"cRY" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/aft{name = "Aft Maintenance"}) +"cRZ" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;5;39;6"},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cSa" = (/turf/open/floor/plasteel/warning{dir = 8},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cSb" = (/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cSc" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=10-Aft-To-Central"; location = "9.4-Escape-4"},/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cSd" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cSe" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cSf" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cSg" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cSh" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cSi" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cSj" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 4},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cSk" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;47"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cSl" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/aft{name = "Aft Maintenance"}) +"cSm" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/aft{name = "Aft Maintenance"}) +"cSn" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/aft{name = "Aft Maintenance"}) +"cSo" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/aft{name = "Aft Maintenance"}) +"cSp" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;47"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cSq" = (/obj/machinery/light/small{dir = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/camera{c_tag = "Research Division Hallway - Xenobiology Lab Access"; dir = 2; network = list("SS13","RD")},/turf/open/floor/plasteel/whitepurple/side{dir = 1},/area/toxins/xenobiology) +"cSr" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plasteel/whitepurple/side{dir = 1},/area/toxins/xenobiology) +"cSs" = (/obj/machinery/light/small{dir = 1},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/whitepurple/side{dir = 1},/area/toxins/xenobiology) +"cSt" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/sign/poster{pixel_y = 32},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cSu" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating{icon_state = "platingdmg2"},/area/maintenance/aft{name = "Aft Maintenance"}) +"cSv" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cSw" = (/obj/machinery/space_heater,/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/aft{name = "Aft Maintenance"}) +"cSx" = (/obj/structure/closet/crate,/obj/item/weapon/poster/legit,/obj/effect/spawner/lootdrop/maintenance,/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/aft{name = "Aft Maintenance"}) +"cSy" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/closet,/obj/item/weapon/storage/box/lights/mixed,/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/aft{name = "Aft Maintenance"}) +"cSz" = (/obj/machinery/power/apc{dir = 8; name = "Aft Starboard Solar APC"; pixel_x = -26; pixel_y = 3},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/open/floor/plating,/area/maintenance/starboardsolar) +"cSA" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/starboardsolar) +"cSB" = (/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/power/smes,/turf/open/floor/plating,/area/maintenance/starboardsolar) +"cSC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/turf/closed/wall/r_wall,/area/medical/virology) +"cSD" = (/obj/machinery/airalarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel/whitegreen/side{dir = 10},/area/medical/virology) +"cSE" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/whitegreen/side,/area/medical/virology) +"cSF" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/plasteel/whitegreen/side,/area/medical/virology) +"cSG" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/whitegreen/side,/area/medical/virology) +"cSH" = (/obj/structure/chair/stool,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel/whitegreen/side{dir = 6},/area/medical/virology) +"cSI" = (/obj/structure/bodycontainer/crematorium,/obj/effect/decal/cleanable/cobweb,/turf/open/floor/plasteel/black,/area/chapel/office) +"cSJ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/light_switch{pixel_x = 25; pixel_y = 0},/turf/open/floor/plasteel/black,/area/chapel/office) +"cSK" = (/obj/item/device/radio/intercom{pixel_y = 25},/obj/machinery/firealarm{dir = 8; pixel_x = -26; pixel_y = 0},/obj/structure/table/wood,/obj/item/clothing/under/burial,/obj/item/clothing/under/burial,/obj/item/clothing/under/burial,/obj/item/clothing/under/burial,/obj/item/clothing/under/burial,/obj/item/clothing/under/burial,/turf/open/floor/plasteel/grimy,/area/chapel/office) +"cSL" = (/obj/machinery/requests_console{department = "Chapel"; departmentType = 2; pixel_y = 30},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plasteel/grimy,/area/chapel/office) +"cSM" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/grimy,/area/chapel/office) +"cSN" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/grimy,/area/chapel/office) +"cSO" = (/obj/machinery/door/morgue{name = "Relic Closet"; req_access_txt = "22"},/turf/open/floor/plasteel/cult{dir = 2},/area/chapel/office) +"cSP" = (/obj/structure/table/wood,/obj/item/weapon/spellbook/oneuse/smoke{name = "mysterious old book of "},/obj/item/weapon/reagent_containers/food/drinks/bottle/holywater{name = "flask of holy water"; pixel_x = -2; pixel_y = 2},/obj/item/weapon/nullrod{pixel_x = 4},/obj/item/organ/heart,/obj/item/device/soulstone/anybody/chaplain,/obj/effect/landmark{name = "revenantspawn"},/turf/open/floor/plasteel/cult{dir = 2},/area/chapel/office) +"cSQ" = (/obj/machinery/door/airlock/maintenance{name = "Chapel Maintenance Access "; req_access_txt = "0"; req_one_access_txt = "12;27"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cSR" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/camera{c_tag = "Departure Lounge - Port Fore"; dir = 4; network = list("SS13")},/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-24"; layer = 4.1},/obj/structure/sign/poster{pixel_x = -32; pixel_y = 0},/turf/open/floor/plasteel/warning{dir = 8},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cSS" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cST" = (/turf/open/floor/plasteel/warning/corner{dir = 2},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cSU" = (/turf/open/floor/plasteel/warning,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cSV" = (/turf/open/floor/plasteel/warning/corner{dir = 1},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cSW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cSX" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=9.2-Escape-2"; location = "9.1-Escape-1"},/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cSY" = (/obj/machinery/light{dir = 4},/obj/machinery/camera{c_tag = "Departure Lounge - Starboard Fore"; dir = 8; network = list("SS13")},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-14"; layer = 4.1},/turf/open/floor/plasteel/warning{dir = 4},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cSZ" = (/obj/machinery/power/apc{cell_type = 5000; dir = 2; name = "Aft Maintenance APC"; pixel_y = -24},/obj/structure/cable/yellow,/turf/open/floor/plating/warnplate,/area/maintenance/aft{name = "Aft Maintenance"}) +"cTa" = (/obj/machinery/space_heater,/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cTb" = (/obj/machinery/door/poddoor/preopen{id = "xeno_blastdoor"; name = "biohazard containment door"},/turf/open/floor/plasteel/delivery,/area/toxins/xenobiology) +"cTc" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/poddoor/preopen{id = "xeno_blastdoor"; name = "biohazard containment door"},/turf/open/floor/plasteel/delivery,/area/toxins/xenobiology) +"cTd" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/obj/machinery/door/poddoor/preopen{id = "xeno_blastdoor"; name = "biohazard containment door"},/turf/open/floor/plasteel/delivery,/area/toxins/xenobiology) +"cTe" = (/obj/structure/chair,/obj/item/weapon/cigbutt,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cTf" = (/obj/structure/chair/stool,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/camera{c_tag = "Aft Starboard Solar Maintenance"; dir = 4; network = list("SS13")},/turf/open/floor/plating,/area/maintenance/starboardsolar) +"cTg" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plating,/area/maintenance/starboardsolar) +"cTh" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/light/small{dir = 4},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/turf/open/floor/plating,/area/maintenance/starboardsolar) +"cTi" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plating/airless,/area/space) +"cTj" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating/airless,/area/space) +"cTk" = (/obj/machinery/atmospherics/components/unary/outlet_injector{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plating/airless,/area/space) +"cTl" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plating,/area/medical/virology) +"cTm" = (/obj/machinery/atmospherics/components/unary/tank/air{dir = 1},/turf/open/floor/plasteel/vault,/area/medical/virology) +"cTn" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 1; name = "virology air connector port"},/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plasteel/vault,/area/medical/virology) +"cTo" = (/obj/item/trash/popcorn,/obj/structure/table/glass,/turf/open/floor/plasteel/vault,/area/medical/virology) +"cTp" = (/obj/item/weapon/reagent_containers/food/snacks/sosjerky,/obj/structure/table/glass,/turf/open/floor/plasteel/vault,/area/medical/virology) +"cTq" = (/obj/item/trash/cheesie{pixel_y = 4},/obj/structure/table/glass,/turf/open/floor/plasteel/vault,/area/medical/virology) +"cTr" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/button/crematorium{pixel_x = -25},/turf/open/floor/plasteel/black,/area/chapel/office) +"cTs" = (/obj/machinery/light/small{dir = 4},/obj/effect/landmark/start{name = "Chaplain"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/black,/area/chapel/office) +"cTt" = (/obj/item/device/flashlight/lamp,/obj/machinery/newscaster{pixel_x = -30},/obj/structure/table/wood,/turf/open/floor/plasteel/grimy,/area/chapel/office) +"cTu" = (/obj/structure/chair,/obj/effect/landmark/start{name = "Chaplain"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/grimy,/area/chapel/office) +"cTv" = (/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 8},/obj/item/weapon/pen,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/table/wood,/turf/open/floor/plasteel/grimy,/area/chapel/office) +"cTw" = (/obj/machinery/light/small{dir = 4},/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 30; pixel_y = 0},/turf/open/floor/plasteel/grimy,/area/chapel/office) +"cTx" = (/turf/closed/wall,/area/chapel/main) +"cTy" = (/obj/item/candle,/obj/machinery/light_switch{pixel_x = -27},/obj/effect/decal/cleanable/cobweb,/obj/structure/table/wood,/turf/open/floor/plasteel/vault,/area/chapel/main) +"cTz" = (/obj/item/weapon/storage/book/bible,/obj/machinery/light/small{dir = 1},/obj/machinery/newscaster{pixel_x = 0; pixel_y = 32},/obj/machinery/camera{c_tag = "Chapel - Fore"; dir = 2; network = list("SS13")},/obj/structure/table/wood,/turf/open/floor/plasteel/vault,/area/chapel/main) +"cTA" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/snacks/grown/poppy{pixel_y = 2},/obj/item/weapon/reagent_containers/food/snacks/grown/poppy{pixel_y = 2},/obj/item/weapon/reagent_containers/food/snacks/grown/poppy{pixel_y = 2},/obj/item/weapon/reagent_containers/food/snacks/grown/poppy{pixel_y = 2},/obj/item/weapon/reagent_containers/food/snacks/grown/poppy{pixel_y = 2},/turf/open/floor/plasteel/vault,/area/chapel/main) +"cTB" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/vault,/area/chapel/main) +"cTC" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/snacks/grown/harebell,/obj/item/weapon/reagent_containers/food/snacks/grown/harebell,/obj/item/weapon/reagent_containers/food/snacks/grown/harebell,/obj/item/weapon/reagent_containers/food/snacks/grown/harebell,/obj/item/weapon/reagent_containers/food/snacks/grown/harebell,/turf/open/floor/plasteel/vault,/area/chapel/main) +"cTD" = (/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 8},/obj/machinery/light/small{dir = 1},/obj/structure/table/wood,/obj/structure/noticeboard{pixel_y = 29},/turf/open/floor/plasteel/vault,/area/chapel/main) +"cTE" = (/obj/item/candle,/obj/machinery/light_switch{pixel_x = 0; pixel_y = 25},/obj/effect/decal/cleanable/cobweb/cobweb2,/obj/structure/table/wood,/turf/open/floor/plasteel/vault,/area/chapel/main) +"cTF" = (/obj/structure/table,/obj/item/candle,/turf/open/floor/plasteel/delivery,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cTG" = (/obj/structure/chair{dir = 4},/obj/effect/landmark/start{name = "Assistant"},/turf/open/floor/plasteel/warning{dir = 8},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cTH" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/warning{dir = 4},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cTI" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 0},/turf/closed/wall,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cTJ" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/warning{dir = 8},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cTK" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cTL" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cTM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 4},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cTN" = (/obj/structure/table/reinforced,/obj/machinery/door/window/westleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Outer Window"; req_access_txt = "0"},/obj/machinery/door/window/brigdoor{dir = 4; name = "Security Desk"; req_access_txt = "1"},/obj/item/weapon/folder/red,/obj/item/weapon/pen,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cTO" = (/obj/structure/chair/office/dark{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/computer/security/telescreen{desc = "Used for watching output from station security cameras."; name = "Security Camera Monitor"; network = list("SS13"); pixel_x = 0; pixel_y = 30},/turf/open/floor/plasteel/red/side{dir = 9},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cTP" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/obj/structure/reagent_dispensers/peppertank{pixel_x = 0; pixel_y = 28},/turf/open/floor/plasteel/red/side{dir = 1},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cTQ" = (/obj/structure/chair,/obj/structure/sign/map/left{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-left-MS"; pixel_y = 32},/turf/open/floor/plasteel/red/side{dir = 1},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cTR" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 4},/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/sign/map/right{desc = "A framed picture of the station. Clockwise from security in red at the top, you see engineering in yellow, science in purple, escape in checkered red-and-white, medbay in green, arrivals in checkered red-and-blue, and then cargo in brown."; icon_state = "map-right-MS"; pixel_y = 32},/turf/open/floor/plasteel/red/side{dir = 5},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cTS" = (/obj/machinery/door/airlock/external{name = "Auxiliary Escape Airlock"},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cTT" = (/obj/structure/sign/biohazard,/turf/closed/wall,/area/toxins/xenobiology) +"cTU" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Xenobiology Lab"; req_access_txt = "47"},/turf/open/floor/plasteel/whitepurple{dir = 4},/area/toxins/xenobiology) +"cTV" = (/obj/structure/sign/securearea,/turf/closed/wall,/area/toxins/xenobiology) +"cTW" = (/obj/machinery/biogenerator,/turf/open/floor/plating/warnplate,/area/maintenance/aft{name = "Aft Maintenance"}) +"cTX" = (/obj/item/weapon/reagent_containers/food/snacks/grown/banana,/obj/item/weapon/reagent_containers/food/snacks/grown/banana,/obj/item/weapon/reagent_containers/food/snacks/grown/wheat,/obj/item/weapon/reagent_containers/food/snacks/grown/watermelon,/obj/item/weapon/reagent_containers/food/snacks/grown/watermelon,/obj/item/weapon/reagent_containers/food/snacks/grown/watermelon,/obj/item/weapon/reagent_containers/food/snacks/grown/citrus/orange,/obj/item/weapon/reagent_containers/food/snacks/grown/grapes,/obj/item/weapon/reagent_containers/food/snacks/grown/cocoapod,/obj/structure/rack{layer = 2.8},/obj/item/seeds/wheat,/obj/item/seeds/watermelon,/obj/item/seeds/watermelon,/obj/item/seeds/grape,/obj/item/seeds/glowshroom,/turf/open/floor/plating/warnplate,/area/maintenance/aft{name = "Aft Maintenance"}) +"cTY" = (/obj/item/weapon/storage/bag/plants/portaseeder,/obj/item/weapon/storage/bag/plants/portaseeder,/obj/item/device/plant_analyzer,/obj/item/weapon/cultivator,/obj/item/weapon/reagent_containers/glass/bucket,/obj/structure/rack{layer = 2.8},/obj/item/seeds/corn,/obj/item/seeds/cabbage,/obj/item/seeds/ambrosia,/obj/item/seeds/grass,/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/glowshroom,/turf/open/floor/plating/warnplate,/area/maintenance/aft{name = "Aft Maintenance"}) +"cTZ" = (/obj/machinery/hydroponics/soil{pixel_y = 8},/obj/item/seeds/carrot,/turf/open/floor/plating/warnplate,/area/maintenance/aft{name = "Aft Maintenance"}) +"cUa" = (/obj/machinery/hydroponics/soil{pixel_y = 8},/obj/item/seeds/glowshroom,/obj/item/seeds/corn,/obj/structure/sign/poster{pixel_y = 32},/turf/open/floor/plating/warnplate,/area/maintenance/aft{name = "Aft Maintenance"}) +"cUb" = (/obj/machinery/hydroponics/soil{pixel_y = 8},/obj/item/device/plant_analyzer,/turf/open/floor/plating/warnplate,/area/maintenance/aft{name = "Aft Maintenance"}) +"cUc" = (/obj/machinery/power/solar_control{id = "aftstarboard"; name = "Aft Starboard Solar Control"; track = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable,/turf/open/floor/plating,/area/maintenance/starboardsolar) +"cUd" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating/warnplate{dir = 2},/area/maintenance/starboardsolar) +"cUe" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 32; pixel_y = 0},/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/starboardsolar) +"cUf" = (/obj/structure/disposaloutlet,/obj/structure/disposalpipe/trunk{dir = 1},/turf/open/floor/plating/airless,/area/space) +"cUg" = (/obj/machinery/atmospherics/components/unary/outlet_injector{dir = 1},/turf/open/floor/plating/airless,/area/space) +"cUh" = (/obj/structure/bodycontainer/morgue,/turf/open/floor/plasteel/black,/area/chapel/office) +"cUi" = (/obj/machinery/camera{c_tag = "Chapel Office - Backroom"; dir = 8; network = list("SS13")},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/turf/open/floor/plasteel/black,/area/chapel/office) +"cUj" = (/obj/item/weapon/storage/crayons,/obj/machinery/light/small{dir = 8},/obj/structure/table/wood,/turf/open/floor/plasteel/grimy,/area/chapel/office) +"cUk" = (/obj/structure/disposalpipe/segment,/obj/structure/table/wood,/obj/item/weapon/folder{pixel_y = 2},/turf/open/floor/plasteel/grimy,/area/chapel/office) +"cUl" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/weapon/storage/fancy/candle_box{pixel_x = 0; pixel_y = 5},/obj/structure/table/wood,/turf/open/floor/plasteel/grimy,/area/chapel/office) +"cUm" = (/turf/open/floor/plasteel/grimy,/area/chapel/office) +"cUn" = (/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1480; name = "Confessional Intercom"; pixel_x = -25},/obj/structure/chair,/turf/open/floor/plasteel/black,/area/chapel/office) +"cUo" = (/obj/machinery/door/morgue{name = "Confession Booth"},/turf/open/floor/plasteel/black,/area/chapel/main) +"cUp" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/carpet,/area/chapel/main) +"cUq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/carpet,/area/chapel/main) +"cUr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/carpet,/area/chapel/main) +"cUs" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/carpet,/area/chapel/main) +"cUt" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/carpet,/area/chapel/main) +"cUu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/carpet,/area/chapel/main) +"cUv" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/centcom{name = "Chapel"; opacity = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/black,/area/chapel/main) +"cUw" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 9},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cUx" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/warning/corner{dir = 4},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cUy" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cUz" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cUA" = (/obj/effect/landmark{name = "lightsout"},/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cUB" = (/obj/structure/flora/ausbushes/fernybush,/obj/structure/flora/ausbushes/fullgrass,/obj/structure/flora/ausbushes/ppflowers,/obj/structure/flora/ausbushes/palebush,/obj/structure/window/reinforced{dir = 5; obj_integrity = 10000},/turf/open/floor/grass,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cUC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cUD" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/open/floor/plating,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cUE" = (/obj/machinery/computer/secure_data,/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/red/side{dir = 8},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cUF" = (/obj/structure/chair/office/dark{dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cUG" = (/obj/structure/table,/obj/item/weapon/folder/red{pixel_x = 3},/obj/item/weapon/folder/white{pixel_x = -4; pixel_y = 2},/obj/item/weapon/restraints/handcuffs,/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/item/device/radio/off,/obj/machinery/requests_console{department = "Security"; departmentType = 5; pixel_x = 30; pixel_y = 0},/turf/open/floor/plasteel/red/side{dir = 4},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cUH" = (/obj/structure/sign/vacuum{pixel_x = 32},/turf/open/floor/plating/warnplate,/area/maintenance/aft{name = "Aft Maintenance"}) +"cUI" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/toxins/xenobiology) +"cUJ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/whitepurple/side{dir = 1},/area/toxins/xenobiology) +"cUK" = (/obj/structure/sink/kitchen{desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; name = "old sink"; pixel_y = 28},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/aft{name = "Aft Maintenance"}) +"cUL" = (/obj/item/seeds/watermelon,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cUM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/grille,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cUN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/obj/structure/chair,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cUO" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/starboardsolar) +"cUP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/airlock/external{name = "Solar Maintenance"; req_access = null; req_access_txt = "10; 13"},/turf/open/floor/plating,/area/maintenance/starboardsolar) +"cUQ" = (/obj/structure/table,/obj/machinery/light/small{dir = 8},/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/item/weapon/storage/box/bodybags{pixel_x = 2; pixel_y = 2},/turf/open/floor/plasteel/black,/area/chapel/office) +"cUR" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/plasteel/black,/area/chapel/office) +"cUS" = (/obj/machinery/door/airlock/centcom{layer = 2.7; name = "Crematorium"; opacity = 1; req_access_txt = "27"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/chapel/office) +"cUT" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/grimy,/area/chapel/office) +"cUU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/grimy,/area/chapel/office) +"cUV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/grimy,/area/chapel/office) +"cUW" = (/obj/machinery/light_switch{pixel_x = 28; pixel_y = 0},/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/machinery/camera{c_tag = "Chapel Office"; dir = 8; network = list("SS13")},/turf/open/floor/plasteel/grimy,/area/chapel/office) +"cUX" = (/obj/structure/grille,/obj/structure/window/reinforced/tinted/fulltile,/turf/open/floor/plasteel/black,/area/chapel/office) +"cUY" = (/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc{dir = 8; name = "Chapel APC"; pixel_x = -25},/turf/open/floor/carpet,/area/chapel/main) +"cUZ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/carpet,/area/chapel/main) +"cVa" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/carpet,/area/chapel/main) +"cVb" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/carpet,/area/chapel/main) +"cVc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/carpet,/area/chapel/main) +"cVd" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/centcom{name = "Chapel"; opacity = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/chapel/main) +"cVe" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 10},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cVf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/warning/corner{dir = 1},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cVg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cVh" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cVi" = (/obj/machinery/ai_status_display{pixel_x = 0; pixel_y = 0},/turf/closed/wall,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cVj" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cVk" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 4},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cVl" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Departure Lounge Security Post"; req_access_txt = "63"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cVm" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/plasteel/red/side{dir = 10},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cVn" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/red/side,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cVo" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/open/floor/plasteel/red/side,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cVp" = (/obj/structure/table,/obj/machinery/newscaster/security_unit{pixel_x = 29; pixel_y = 1},/obj/machinery/camera{c_tag = "Departure Lounge - Security Post"; dir = 1; network = list("SS13")},/obj/item/weapon/book/manual/wiki/security_space_law{pixel_x = -4; pixel_y = 4},/obj/item/device/taperecorder{pixel_x = 4; pixel_y = 0},/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = -32},/turf/open/floor/plasteel/red/side{dir = 6},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cVq" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"cVr" = (/obj/item/seeds/sunflower/moonflower,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cVs" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cVt" = (/obj/item/seeds/berry,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cVu" = (/obj/structure/reagent_dispensers/watertank,/obj/item/weapon/reagent_containers/glass/bucket,/turf/open/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cVv" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating/warnplate{dir = 2},/area/maintenance/starboardsolar) +"cVw" = (/obj/machinery/airalarm{dir = 1; pixel_y = -22},/turf/open/floor/plasteel/black,/area/chapel/office) +"cVx" = (/obj/structure/closet/wardrobe/chaplain_black,/obj/machinery/airalarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/open/floor/plasteel/grimy,/area/chapel/office) +"cVy" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 1},/turf/open/floor/plasteel/grimy,/area/chapel/office) +"cVz" = (/obj/machinery/power/apc{dir = 2; lighting = 3; name = "Chapel Office APC"; pixel_x = 0; pixel_y = -25},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/obj/structure/cable/yellow,/turf/open/floor/plasteel/grimy,/area/chapel/office) +"cVA" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/grimy,/area/chapel/office) +"cVB" = (/obj/machinery/door/morgue{name = "Confession Booth (Chaplain)"; req_access_txt = "22"},/turf/open/floor/plasteel/black,/area/chapel/office) +"cVC" = (/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1480; name = "Confessional Intercom"; pixel_x = 25},/obj/structure/chair{dir = 1},/obj/effect/landmark/start{name = "Chaplain"},/turf/open/floor/plasteel/black,/area/chapel/office) +"cVD" = (/turf/open/floor/plasteel/chapel{dir = 4},/area/chapel/main) +"cVE" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/chapel{dir = 1},/area/chapel/main) +"cVF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/chair/stool,/turf/open/floor/plasteel/chapel{dir = 4},/area/chapel/main) +"cVG" = (/turf/open/floor/plasteel/black,/area/chapel/main) +"cVH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/chair/stool,/turf/open/floor/plasteel/chapel{dir = 1},/area/chapel/main) +"cVI" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/chapel{dir = 4},/area/chapel/main) +"cVJ" = (/turf/open/floor/plasteel/chapel{dir = 1},/area/chapel/main) +"cVK" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cVL" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cVM" = (/obj/structure/chair{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 4},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cVN" = (/obj/structure/flora/ausbushes/fernybush,/obj/structure/flora/ausbushes/fullgrass,/obj/structure/flora/ausbushes/brflowers,/obj/structure/flora/ausbushes/sunnybush,/obj/structure/window/reinforced{dir = 5; obj_integrity = 10000},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/grass,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cVO" = (/obj/structure/chair{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 8},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cVP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cVQ" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cVR" = (/obj/structure/chair{dir = 8},/obj/structure/sign/electricshock{pixel_x = 32},/turf/open/floor/plasteel/warning{dir = 4},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cVS" = (/turf/closed/wall,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cVT" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/open/floor/plating,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cVU" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cVV" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"cVW" = (/obj/machinery/hydroponics/soil{pixel_y = 8},/obj/item/seeds/glowshroom,/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/aft{name = "Aft Maintenance"}) +"cVX" = (/obj/machinery/hydroponics/soil{pixel_y = 8},/obj/item/weapon/cultivator,/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/aft{name = "Aft Maintenance"}) +"cVY" = (/obj/machinery/hydroponics/soil{pixel_y = 8},/obj/item/seeds/ambrosia,/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/aft{name = "Aft Maintenance"}) +"cVZ" = (/obj/machinery/hydroponics/soil{pixel_y = 8},/obj/item/seeds/watermelon,/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/aft{name = "Aft Maintenance"}) +"cWa" = (/obj/machinery/hydroponics/soil{pixel_y = 8},/obj/item/seeds/berry,/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/aft{name = "Aft Maintenance"}) +"cWb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/chapel/office) +"cWc" = (/obj/machinery/door/airlock/centcom{name = "Chapel Office"; opacity = 1; req_access_txt = "27"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/chapel/office) +"cWd" = (/obj/machinery/airalarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/chapel,/area/chapel/main) +"cWe" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/chapel{dir = 8},/area/chapel/main) +"cWf" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/chapel,/area/chapel/main) +"cWg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/chair/stool,/turf/open/floor/plasteel/chapel{dir = 8},/area/chapel/main) +"cWh" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/chapel,/area/chapel/main) +"cWi" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/chapel{dir = 8},/area/chapel/main) +"cWj" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cWk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cWl" = (/obj/structure/chair{dir = 8},/obj/effect/landmark/start{name = "Assistant"},/turf/open/floor/plasteel/warning{dir = 4},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cWm" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cWn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard) +"cWo" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/shutters/preopen{id = "chapel_shutters_parlour"; name = "chapel shutters"},/turf/open/floor/plating,/area/chapel/main) +"cWp" = (/obj/structure/closet/coffin,/obj/machinery/light/small{dir = 1},/obj/effect/decal/cleanable/cobweb,/turf/open/floor/plating,/area/chapel/main) +"cWq" = (/obj/structure/closet/coffin,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating,/area/chapel/main) +"cWr" = (/obj/structure/noticeboard{desc = "A memorial wall for pinning up momentos"; name = "memorial board"; pixel_y = 32},/obj/item/weapon/storage/fancy/candle_box,/obj/item/weapon/storage/fancy/candle_box{pixel_x = -2; pixel_y = 2},/obj/effect/decal/cleanable/cobweb,/obj/structure/table/wood,/turf/open/floor/carpet,/area/chapel/main) +"cWs" = (/obj/structure/sign/atmosplaque{desc = "A plaque commemorating the fallen, may they rest in peace, forever asleep amongst the stars. Someone has drawn a picture of a crying badger at the bottom."; icon_state = "kiddieplaque"; name = "Remembrance Plaque"; pixel_x = 0; pixel_y = 32},/obj/item/weapon/reagent_containers/food/snacks/grown/poppy{pixel_y = 2},/obj/item/weapon/reagent_containers/food/snacks/grown/poppy{pixel_y = 2},/obj/item/weapon/reagent_containers/food/snacks/grown/poppy{pixel_y = 2},/obj/item/weapon/reagent_containers/food/snacks/grown/poppy{pixel_y = 2},/obj/item/weapon/reagent_containers/food/snacks/grown/poppy{pixel_y = 2},/obj/machinery/light/small{dir = 1},/obj/structure/table/wood,/turf/open/floor/carpet,/area/chapel/main) +"cWt" = (/obj/structure/noticeboard{desc = "A memorial wall for pinning up momentos"; name = "memorial board"; pixel_y = 32},/obj/item/weapon/storage/book/bible,/obj/structure/table/wood,/turf/open/floor/carpet,/area/chapel/main) +"cWu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/chapel/main) +"cWv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/chapel/main) +"cWw" = (/obj/machinery/light/small{dir = 1},/obj/machinery/light_switch{pixel_y = 28},/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 8},/obj/effect/decal/cleanable/cobweb/cobweb2,/obj/structure/table/wood,/turf/open/floor/plasteel/black,/area/chapel/main) +"cWx" = (/obj/structure/chair/comfy/black{dir = 4},/obj/effect/decal/cleanable/cobweb,/turf/open/floor/plasteel/chapel{dir = 1},/area/chapel/main) +"cWy" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/chapel{dir = 4},/area/chapel/main) +"cWz" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/chapel{dir = 1},/area/chapel/main) +"cWA" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/chapel{dir = 4},/area/chapel/main) +"cWB" = (/obj/effect/decal/cleanable/cobweb/cobweb2,/obj/structure/chair/comfy/black{dir = 8},/turf/open/floor/plasteel/chapel{dir = 4},/area/chapel/main) +"cWC" = (/obj/machinery/camera{c_tag = "Departure Lounge - Port Aft"; dir = 4; network = list("SS13")},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-04"; layer = 4.1},/turf/open/floor/plasteel/warning{dir = 8},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cWD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cWE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cWF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/warning/corner{dir = 8},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cWG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/item/device/radio/beacon,/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cWH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/warning/corner{dir = 4},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cWI" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cWJ" = (/obj/machinery/camera{c_tag = "Departure Lounge - Starboard Aft"; dir = 8; network = list("SS13")},/obj/machinery/light{dir = 4},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-16"; layer = 4.1},/turf/open/floor/plasteel/warning{dir = 4},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cWK" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"cWL" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"cWM" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"cWN" = (/obj/structure/closet/coffin,/turf/open/floor/plating,/area/chapel/main) +"cWO" = (/obj/machinery/newscaster{pixel_x = 0; pixel_y = 32},/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel/black,/area/chapel/main) +"cWP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/chapel/main) +"cWQ" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 21},/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/chapel/main) +"cWR" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/open/floor/plasteel/black,/area/chapel/main) +"cWS" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/chapel/main) +"cWT" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/airlock/centcom{name = "Funeral Parlour"; opacity = 1},/turf/open/floor/plasteel/black,/area/chapel/main) +"cWU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/chapel{dir = 8},/area/chapel/main) +"cWV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/chapel,/area/chapel/main) +"cWW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/chapel,/area/chapel/main) +"cWX" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/open/floor/plasteel/chapel{dir = 8},/area/chapel/main) +"cWY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/chapel{dir = 8},/area/chapel/main) +"cWZ" = (/turf/open/floor/plasteel/chapel,/area/chapel/main) +"cXa" = (/turf/open/floor/plasteel/warning{dir = 10},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cXb" = (/turf/open/floor/plasteel/warning{dir = 2},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cXc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=9.4-Escape-4"; location = "9.3-Escape-3"},/turf/open/floor/plasteel/warning{dir = 2},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cXd" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=9.3-Escape-3"; location = "9.2-Escape-2"},/turf/open/floor/plasteel/warning{dir = 2},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cXe" = (/turf/open/floor/plasteel/warning{dir = 6},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cXf" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard) +"cXg" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard) +"cXh" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard) +"cXi" = (/obj/machinery/door/window/eastleft{dir = 4; name = "Coffin Storage"; req_access_txt = "22"},/turf/open/floor/plating,/area/chapel/main) +"cXj" = (/obj/structure/chair{pixel_y = -2},/turf/open/floor/plasteel/vault,/area/chapel/main) +"cXk" = (/obj/structure/chair{pixel_y = -2},/obj/effect/landmark/start{name = "Chaplain"},/turf/open/floor/plasteel/vault,/area/chapel/main) +"cXl" = (/turf/open/floor/plasteel/vault,/area/chapel/main) +"cXm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/black,/area/chapel/main) +"cXn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/chapel/main) +"cXo" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-21"; layer = 4.1},/turf/open/floor/plasteel/black,/area/chapel/main) +"cXp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/chapel/main) +"cXq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/chair/comfy/black{dir = 4},/turf/open/floor/plasteel/chapel{dir = 1},/area/chapel/main) +"cXr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/chapel{dir = 4},/area/chapel/main) +"cXs" = (/obj/structure/table/wood,/turf/open/floor/plasteel/black,/area/chapel/main) +"cXt" = (/obj/item/weapon/storage/book/bible,/obj/structure/table/wood,/turf/open/floor/plasteel/black,/area/chapel/main) +"cXu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/chapel{dir = 1},/area/chapel/main) +"cXv" = (/obj/structure/chair/comfy/black{dir = 8},/obj/machinery/camera{c_tag = "Chapel - Starboard"; dir = 8; network = list("SS13")},/turf/open/floor/plasteel/chapel{dir = 4},/area/chapel/main) +"cXw" = (/obj/structure/sign/vacuum{pixel_x = -32},/turf/open/floor/plasteel/delivery,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cXx" = (/turf/open/floor/plasteel/delivery,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cXy" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel/delivery,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cXz" = (/obj/machinery/holopad,/turf/open/floor/plasteel/delivery,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cXA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/delivery,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cXB" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/delivery,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cXC" = (/obj/structure/sign/vacuum{pixel_x = 32},/turf/open/floor/plasteel/delivery,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cXD" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/whitepurple/side{dir = 2},/area/toxins/xenobiology) +"cXE" = (/obj/structure/closet/coffin,/obj/machinery/light/small,/turf/open/floor/plating,/area/chapel/main) +"cXF" = (/obj/machinery/light/small{dir = 4},/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/camera{c_tag = "Chapel - Funeral Parlour"; dir = 8; network = list("SS13")},/turf/open/floor/plasteel/black,/area/chapel/main) +"cXG" = (/obj/machinery/camera{c_tag = "Chapel - Port"; dir = 4; network = list("SS13")},/obj/structure/chair/comfy/black{dir = 4},/turf/open/floor/plasteel/chapel{dir = 8},/area/chapel/main) +"cXH" = (/obj/item/device/flashlight/lantern{pixel_y = 7},/obj/structure/table/wood,/turf/open/floor/plasteel/black,/area/chapel/main) +"cXI" = (/obj/effect/landmark/start{name = "Chaplain"},/turf/open/floor/plasteel/black,/area/chapel/main) +"cXJ" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel/chapel{dir = 8},/area/chapel/main) +"cXK" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/turf/open/floor/plasteel/chapel,/area/chapel/main) +"cXL" = (/obj/machinery/door/airlock/external{name = "Departure Lounge Airlock"},/turf/open/floor/plasteel/delivery,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cXM" = (/obj/structure/sign/biohazard,/turf/closed/wall/r_wall,/area/toxins/xenobiology) +"cXN" = (/turf/closed/wall/r_wall,/area/toxins/xenobiology) +"cXO" = (/obj/machinery/doorButtons/access_button{idDoor = "xeno_airlock_exterior"; idSelf = "xeno_airlock_control"; name = "Access Button"; pixel_x = -24; pixel_y = 0; req_access_txt = "0"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{autoclose = 0; frequency = 1449; icon_state = "door_locked"; id_tag = "xeno_airlock_exterior"; locked = 1; name = "Xenobiology Lab External Airlock"; req_access_txt = "55"},/turf/open/floor/plasteel/whitepurple{dir = 4},/area/toxins/xenobiology) +"cXP" = (/obj/structure/sign/securearea,/turf/closed/wall/r_wall,/area/toxins/xenobiology) +"cXQ" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/black,/area/chapel/main) +"cXR" = (/obj/machinery/door/window{dir = 4; name = "Mass Driver"; req_access_txt = "22"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/chapel/main) +"cXS" = (/obj/machinery/mass_driver{dir = 2; id = "chapelgun"},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/machinery/light/small{dir = 1},/obj/item/device/gps,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/darkwarning{dir = 1},/area/chapel/main) +"cXT" = (/obj/structure/bookcase{name = "Holy Bookcase"},/turf/open/floor/plasteel/chapel{dir = 4},/area/chapel/main) +"cXU" = (/obj/machinery/light/small,/turf/open/floor/plasteel/chapel{dir = 4},/area/chapel/main) +"cXV" = (/obj/machinery/holopad,/turf/open/floor/plasteel/vault,/area/chapel/main) +"cXW" = (/obj/machinery/light/small,/obj/machinery/button/door{id = "chapel_shutters_space"; name = "chapel shutters control"; pixel_x = -6; pixel_y = -25; req_access_txt = "0"},/obj/machinery/light_switch{pixel_x = 6; pixel_y = -25},/turf/open/floor/plasteel/chapel{dir = 1},/area/chapel/main) +"cXX" = (/obj/structure/chair/comfy/black{dir = 8},/turf/open/floor/plasteel/chapel{dir = 4},/area/chapel/main) +"cXY" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/delivery,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cXZ" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/delivery,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cYa" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1},/obj/machinery/firealarm{dir = 8; pixel_x = -26; pixel_y = 0},/turf/open/floor/plasteel/warnwhite{dir = 9},/area/toxins/xenobiology) +"cYb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/warnwhite{dir = 1},/area/toxins/xenobiology) +"cYc" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/warnwhite{dir = 5},/area/toxins/xenobiology) +"cYd" = (/obj/structure/cable,/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard) +"cYe" = (/obj/machinery/hydroponics/soil{pixel_y = 8},/obj/item/weapon/reagent_containers/food/snacks/grown/harebell,/obj/item/weapon/reagent_containers/food/snacks/grown/harebell,/obj/item/weapon/reagent_containers/food/snacks/grown/harebell,/obj/item/weapon/reagent_containers/food/snacks/grown/harebell,/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/cult{dir = 2},/area/chapel/main) +"cYf" = (/obj/machinery/door/morgue{name = "Chapel Garden"; req_access_txt = "0"},/turf/open/floor/plasteel/cult{dir = 2},/area/chapel/main) +"cYg" = (/obj/machinery/light/small,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/obj/machinery/button/door{id = "chapel_shutters_parlour"; name = "chapel shutters control"; pixel_x = 0; pixel_y = -25; req_access_txt = "0"},/turf/open/floor/plasteel/vault,/area/chapel/main) +"cYh" = (/obj/structure/chair,/turf/open/floor/plasteel/vault,/area/chapel/main) +"cYi" = (/obj/structure/chair,/obj/effect/landmark/start{name = "Chaplain"},/turf/open/floor/plasteel/vault,/area/chapel/main) +"cYj" = (/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/reagent_containers/food/snacks/grown/harebell,/obj/item/weapon/reagent_containers/food/snacks/grown/harebell,/obj/item/weapon/reagent_containers/food/snacks/grown/harebell,/obj/item/weapon/reagent_containers/food/snacks/grown/harebell,/obj/item/weapon/reagent_containers/food/snacks/grown/harebell,/obj/machinery/button/massdriver{id = "chapelgun"; name = "Chapel Mass Driver"; pixel_x = -4; pixel_y = -26},/obj/structure/table/wood,/turf/open/floor/plasteel/vault,/area/chapel/main) +"cYk" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel/darkwarning{dir = 2},/area/chapel/main) +"cYl" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/shutters/preopen{id = "chapel_shutters_space"; name = "chapel shutters"},/turf/open/floor/plating,/area/chapel/main) +"cYm" = (/obj/machinery/shower{icon_state = "shower"; dir = 4},/turf/open/floor/plasteel/warnwhite{dir = 8},/area/toxins/xenobiology) +"cYn" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"cYo" = (/obj/structure/closet/l3closet/scientist,/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/camera{c_tag = "Xenobiology Lab - Airlock"; dir = 8; network = list("SS13","RD")},/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/warnwhite{dir = 4},/area/toxins/xenobiology) +"cYp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/toxins/xenobiology) +"cYq" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar{id = "aftstarboard"; name = "Aft-Starboard Solar Array"},/turf/open/floor/plasteel/airless/solarpanel,/area/solar/starboard) +"cYr" = (/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard) +"cYs" = (/obj/machinery/door/poddoor{id = "chapelgun"; name = "Chapel Launcher Door"},/turf/open/floor/plating,/area/chapel/main) +"cYt" = (/turf/closed/wall/mineral/titanium,/area/shuttle/escape) +"cYu" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/escape) +"cYv" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"cYw" = (/obj/structure/sign/nosmoking_2,/turf/closed/wall/mineral/titanium,/area/shuttle/escape) +"cYx" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/obj/docking_port/mobile/emergency{dir = 2; dwidth = 5; height = 14; name = "Meta emergency shuttle"; width = 25},/obj/docking_port/stationary{dheight = 0; dir = 2; dwidth = 9; height = 25; id = "emergency_home"; name = "MetaStation emergency evac bay"; width = 29},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"cYy" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/doorButtons/access_button{idDoor = "xeno_airlock_interior"; idSelf = "xeno_airlock_control"; name = "Access Button"; pixel_x = 8; pixel_y = -28; req_access_txt = "0"},/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/warnwhite{dir = 10},/area/toxins/xenobiology) +"cYz" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/warnwhite{dir = 2},/area/toxins/xenobiology) +"cYA" = (/obj/structure/closet/l3closet/scientist,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/turf/open/floor/plasteel/warnwhite{dir = 6},/area/toxins/xenobiology) +"cYB" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard) +"cYC" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard) +"cYD" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard) +"cYE" = (/obj/item/stack/cable_coil,/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard) +"cYF" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard) +"cYG" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard) +"cYH" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard) +"cYI" = (/obj/structure/table,/obj/item/weapon/phone{pixel_x = -3; pixel_y = 3},/obj/item/weapon/cigbutt/cigarbutt{pixel_x = 5; pixel_y = -1},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"cYJ" = (/obj/machinery/computer/crew,/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"cYK" = (/obj/machinery/computer/security,/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"cYL" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular,/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"cYM" = (/obj/structure/closet/emcloset,/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"cYN" = (/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"cYO" = (/obj/structure/chair,/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"cYP" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 27},/obj/structure/chair,/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"cYQ" = (/obj/item/clothing/suit/hazardvest{desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; name = "emergency lifejacket"},/obj/item/clothing/suit/hazardvest{desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; name = "emergency lifejacket"},/obj/item/clothing/suit/hazardvest{desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; name = "emergency lifejacket"},/obj/item/clothing/suit/hazardvest{desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; name = "emergency lifejacket"},/obj/item/clothing/suit/hazardvest{desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; name = "emergency lifejacket"},/obj/item/weapon/tank/internals/emergency_oxygen/double{pixel_x = 3},/obj/item/weapon/tank/internals/emergency_oxygen/double{pixel_x = 3},/obj/item/weapon/tank/internals/emergency_oxygen/double{pixel_x = 3},/obj/item/weapon/tank/internals/emergency_oxygen/double{pixel_x = 3},/obj/item/weapon/tank/internals/emergency_oxygen/double{pixel_x = 3},/obj/item/clothing/mask/breath{pixel_x = -3; pixel_y = -3},/obj/item/clothing/mask/breath{pixel_x = -3; pixel_y = -3},/obj/item/clothing/mask/breath{pixel_x = -3; pixel_y = -3},/obj/item/clothing/mask/breath{pixel_x = -3; pixel_y = -3},/obj/item/clothing/mask/breath{pixel_x = -3; pixel_y = -3},/obj/item/clothing/head/hardhat/orange{name = "protective hat"; pixel_y = 9},/obj/item/clothing/head/hardhat/orange{name = "protective hat"; pixel_y = 9},/obj/item/clothing/head/hardhat/orange{name = "protective hat"; pixel_y = 9},/obj/item/clothing/head/hardhat/orange{name = "protective hat"; pixel_y = 9},/obj/item/clothing/head/hardhat/orange{name = "protective hat"; pixel_y = 9},/obj/structure/closet/crate{name = "lifejackets"},/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"cYR" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 7},/obj/item/weapon/storage/box/syringes{pixel_y = 5},/turf/open/floor/plasteel/whitepurple{dir = 4},/area/toxins/xenobiology) +"cYS" = (/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/obj/structure/table/glass,/obj/item/stack/sheet/mineral/plasma{layer = 2.9; pixel_y = 4},/obj/item/stack/sheet/mineral/plasma{layer = 2.9; pixel_y = 4},/obj/item/stack/sheet/mineral/plasma{layer = 2.9; pixel_y = 4},/obj/item/stack/sheet/mineral/plasma{layer = 2.9; pixel_y = 4},/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 8; pixel_y = 2},/obj/item/weapon/reagent_containers/glass/beaker/large{pixel_x = -3; pixel_y = 3},/obj/item/weapon/reagent_containers/dropper,/turf/open/floor/plasteel/whitepurple{dir = 4},/area/toxins/xenobiology) +"cYT" = (/obj/machinery/light{dir = 1},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/chem_dispenser/constructable,/turf/open/floor/plasteel/whitepurple{dir = 4},/area/toxins/xenobiology) +"cYU" = (/obj/machinery/chem_master{pixel_x = -2; pixel_y = 1},/obj/structure/noticeboard{pixel_y = 30},/turf/open/floor/plasteel/whitepurple{dir = 4},/area/toxins/xenobiology) +"cYV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall/r_wall,/area/toxins/xenobiology) +"cYW" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{autoclose = 0; frequency = 1449; icon_state = "door_locked"; id_tag = "xeno_airlock_interior"; locked = 1; name = "Xenobiology Lab Internal Airlock"; req_access_txt = "55"},/turf/open/floor/plasteel/whitepurple{dir = 4},/area/toxins/xenobiology) +"cYX" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/monkeycubes{pixel_x = 3; pixel_y = 5},/obj/item/weapon/storage/box/monkeycubes{pixel_x = -3; pixel_y = 4},/turf/open/floor/plasteel/whitepurple{dir = 4},/area/toxins/xenobiology) +"cYY" = (/obj/structure/table/glass,/obj/item/weapon/folder/white{pixel_y = 4},/obj/item/weapon/pen,/obj/machinery/light{dir = 1},/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_x = 0; pixel_y = 30},/turf/open/floor/plasteel/whitepurple{dir = 4},/area/toxins/xenobiology) +"cYZ" = (/obj/structure/table/glass,/obj/item/weapon/paper_bin{pixel_x = -1; pixel_y = 8},/obj/machinery/power/apc{cell_type = 10000; dir = 1; name = "Xenobiology APC"; pixel_x = 0; pixel_y = 27},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/open/floor/plasteel/whitepurple{dir = 4},/area/toxins/xenobiology) +"cZa" = (/obj/machinery/smartfridge/extract,/turf/open/floor/plasteel/whitepurple{dir = 4},/area/toxins/xenobiology) +"cZb" = (/obj/structure/cable,/obj/machinery/power/solar{id = "aftstarboard"; name = "Aft-Starboard Solar Array"},/turf/open/floor/plasteel/airless/solarpanel,/area/solar/starboard) +"cZc" = (/obj/structure/shuttle/engine/propulsion{dir = 4},/turf/open/floor/plating/airless,/area/shuttle/escape) +"cZd" = (/obj/structure/shuttle/engine/heater{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating/airless,/area/shuttle/escape) +"cZe" = (/obj/structure/table,/obj/item/weapon/storage/fancy/donut_box,/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"cZf" = (/obj/structure/chair/office/dark{dir = 1},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"cZg" = (/obj/structure/table,/obj/item/weapon/restraints/handcuffs{pixel_y = 3},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"cZh" = (/obj/machinery/status_display,/turf/closed/wall/mineral/titanium,/area/shuttle/escape) +"cZi" = (/obj/structure/tank_dispenser/oxygen{layer = 2.7; pixel_x = -1; pixel_y = 2},/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"cZj" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/machinery/chem_heater{pixel_x = -4; pixel_y = 4},/turf/open/floor/plasteel/whitepurple/side{dir = 9},/area/toxins/xenobiology) +"cZk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/whitepurple/side{dir = 1},/area/toxins/xenobiology) +"cZl" = (/obj/structure/chair/office/light{dir = 1},/obj/effect/landmark/start{name = "Scientist"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/whitepurple/side{dir = 1},/area/toxins/xenobiology) +"cZm" = (/turf/open/floor/plasteel/whitepurple/side{dir = 1},/area/toxins/xenobiology) +"cZn" = (/obj/machinery/light_switch{pixel_x = -6; pixel_y = 26},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/whitepurple/side{dir = 1},/area/toxins/xenobiology) +"cZo" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/doorButtons/airlock_controller{idExterior = "xeno_airlock_exterior"; idInterior = "xeno_airlock_interior"; idSelf = "xeno_airlock_control"; name = "Access Console"; pixel_x = -25; pixel_y = 25},/turf/open/floor/plasteel/whitepurple/side{dir = 1},/area/toxins/xenobiology) +"cZp" = (/obj/machinery/camera{c_tag = "Xenobiology Lab - Fore"; dir = 2; network = list("SS13","RD")},/obj/machinery/firealarm{dir = 2; pixel_y = 26},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/whitepurple/side{dir = 1},/area/toxins/xenobiology) +"cZq" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/whitepurple/side{dir = 1},/area/toxins/xenobiology) +"cZr" = (/obj/structure/chair/office/light{dir = 1; pixel_y = 3},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/whitepurple/side{dir = 1},/area/toxins/xenobiology) +"cZs" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/whitepurple/side{dir = 1},/area/toxins/xenobiology) +"cZt" = (/turf/open/floor/plasteel/whitepurple/side{dir = 5},/area/toxins/xenobiology) +"cZu" = (/obj/machinery/computer/communications,/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"cZv" = (/obj/structure/chair/office/dark,/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"cZw" = (/obj/structure/chair{dir = 1},/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"cZx" = (/obj/structure/sink{dir = 8; icon_state = "sink"; pixel_x = -12},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/whitepurple/side{dir = 8},/area/toxins/xenobiology) +"cZy" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"cZz" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"cZA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"cZB" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"cZC" = (/obj/machinery/holopad,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"cZD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"cZE" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"cZF" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/open/floor/plasteel/whitepurple/side{dir = 4},/area/toxins/xenobiology) +"cZG" = (/obj/machinery/computer/emergency_shuttle,/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"cZH" = (/obj/structure/chair/office/dark{dir = 8},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"cZI" = (/obj/machinery/door/airlock/glass_command{name = "Cockpit"; req_access_txt = "19"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"cZJ" = (/obj/machinery/vending/wallmed{name = "Emergency NanoMed"; pixel_x = 0; pixel_y = 0; req_access_txt = "0"; use_power = 0},/turf/closed/wall/mineral/titanium,/area/shuttle/escape) +"cZK" = (/obj/structure/extinguisher_cabinet,/turf/closed/wall/mineral/titanium,/area/shuttle/escape) +"cZL" = (/obj/structure/extinguisher_cabinet,/turf/closed/wall/mineral/titanium/nodiagonal,/area/shuttle/escape) +"cZM" = (/obj/machinery/vending/wallmed{name = "Emergency NanoMed"; pixel_x = 0; pixel_y = 0; req_access_txt = "0"; use_power = 0},/turf/closed/wall/mineral/titanium/nodiagonal,/area/shuttle/escape) +"cZN" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 1; name = "xenobiology air connector port"},/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plasteel/whitepurple/side{dir = 10},/area/toxins/xenobiology) +"cZO" = (/obj/structure/reagent_dispensers/watertank,/obj/item/weapon/extinguisher{pixel_x = 4; pixel_y = 3},/obj/item/weapon/extinguisher,/turf/open/floor/plasteel/whitepurple/side{dir = 2},/area/toxins/xenobiology) +"cZP" = (/obj/machinery/disposal/bin,/obj/structure/sign/deathsposal{pixel_x = 0; pixel_y = -32},/obj/structure/disposalpipe/trunk{dir = 4},/turf/open/floor/plasteel/whitepurple/side{dir = 2},/area/toxins/xenobiology) +"cZQ" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/whitepurple/corner{dir = 8},/area/toxins/xenobiology) +"cZR" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/warnwhite/corner{dir = 2},/area/toxins/xenobiology) +"cZS" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/warnwhite{dir = 2},/area/toxins/xenobiology) +"cZT" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plasteel/warnwhite{dir = 2},/area/toxins/xenobiology) +"cZU" = (/turf/open/floor/plasteel/warnwhite{dir = 2},/area/toxins/xenobiology) +"cZV" = (/turf/open/floor/plasteel/warnwhite/corner{dir = 1},/area/toxins/xenobiology) +"cZW" = (/turf/open/floor/plasteel/whitepurple/corner{dir = 2},/area/toxins/xenobiology) +"cZX" = (/obj/machinery/monkey_recycler,/turf/open/floor/plasteel/whitepurple/side{dir = 2},/area/toxins/xenobiology) +"cZY" = (/obj/machinery/processor{desc = "A machine used to process slimes and retrieve their extract."; name = "Slime Processor"},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/open/floor/plasteel/whitepurple/side{dir = 2},/area/toxins/xenobiology) +"cZZ" = (/obj/structure/table,/obj/machinery/reagentgrinder,/turf/open/floor/plasteel/whitepurple/side{dir = 6},/area/toxins/xenobiology) +"daa" = (/obj/machinery/computer/station_alert,/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"dab" = (/obj/machinery/status_display{dir = 8; pixel_x = 32; pixel_y = 0},/obj/machinery/holopad,/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"dac" = (/turf/closed/wall,/area/toxins/xenobiology) +"dad" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor,/turf/open/floor/plasteel/delivery{name = "floor"},/area/toxins/xenobiology) +"dae" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/turf/open/floor/plasteel/delivery{name = "floor"},/area/toxins/xenobiology) +"daf" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/delivery{name = "floor"},/area/toxins/xenobiology) +"dag" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/emergency{pixel_y = 3},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"dah" = (/obj/structure/disposalpipe/trunk{dir = 4},/obj/structure/disposaloutlet,/turf/open/floor/engine,/area/toxins/xenobiology) +"dai" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/engine,/area/toxins/xenobiology) +"daj" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/door/poddoor/preopen{id = "xenobio3"; name = "containment blast door"},/turf/open/floor/plating,/area/toxins/xenobiology) +"dak" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/window/reinforced,/turf/open/floor/plasteel/warning{dir = 6},/area/toxins/xenobiology) +"dal" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/warnwhite{dir = 1},/area/toxins/xenobiology) +"dam" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/warnwhite{dir = 1},/area/toxins/xenobiology) +"dan" = (/turf/open/floor/plasteel/warnwhite{dir = 1},/area/toxins/xenobiology) +"dao" = (/obj/structure/window/reinforced,/obj/structure/table/reinforced,/obj/machinery/button/door{id = "xenobio8"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/turf/open/floor/plasteel/warning{dir = 10},/area/toxins/xenobiology) +"dap" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/door/poddoor/preopen{id = "xenobio8"; name = "containment blast door"},/turf/open/floor/plating,/area/toxins/xenobiology) +"daq" = (/turf/open/floor/engine,/area/toxins/xenobiology) +"dar" = (/obj/structure/table,/obj/machinery/recharger{active_power_usage = 0; idle_power_usage = 0; pixel_y = 4; use_power = 0},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"das" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 8},/obj/item/device/radio/intercom{dir = 2; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -31},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"dat" = (/obj/structure/table,/obj/item/weapon/folder/blue,/obj/structure/extinguisher_cabinet{dir = 4; pixel_x = 0; pixel_y = -27},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"dau" = (/obj/item/device/radio/intercom{dir = 2; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -31},/obj/structure/chair{dir = 1},/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"dav" = (/obj/structure/table,/obj/item/stack/medical/gauze,/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/ointment,/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"daw" = (/obj/machinery/light/small{dir = 8},/obj/machinery/camera{c_tag = "Xenobiology Lab - Pen #1"; dir = 4; network = list("SS13","RD","Xeno")},/turf/open/floor/engine,/area/toxins/xenobiology) +"dax" = (/obj/effect/landmark{name = "revenantspawn"},/turf/open/floor/engine,/area/toxins/xenobiology) +"day" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Containment Pen #1"; req_access_txt = "55"},/obj/machinery/door/poddoor/preopen{id = "xenobio3"; name = "containment blast door"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/engine,/area/toxins/xenobiology) +"daz" = (/obj/machinery/door/window/northleft{dir = 4; name = "Containment Pen #1"; req_access_txt = "55"},/turf/open/floor/plasteel/warning{dir = 4},/area/toxins/xenobiology) +"daA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"daB" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"daC" = (/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"daD" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Containment Pen #2"; req_access_txt = "55"},/turf/open/floor/plasteel/warning{dir = 8},/area/toxins/xenobiology) +"daE" = (/obj/machinery/door/window/northleft{dir = 4; name = "Containment Pen #2"; req_access_txt = "55"},/obj/machinery/door/poddoor/preopen{id = "xenobio8"; name = "containment blast door"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/engine,/area/toxins/xenobiology) +"daF" = (/obj/machinery/light/small{dir = 4},/obj/machinery/camera{c_tag = "Xenobiology Lab - Pen #2"; dir = 8; network = list("SS13","RD","Xeno")},/turf/open/floor/engine,/area/toxins/xenobiology) +"daG" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard) +"daH" = (/obj/machinery/door/airlock/command{name = "Emergency Recovery Airlock"; req_access = null; req_access_txt = "19"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"daI" = (/obj/machinery/door/airlock/glass_security{name = "Brig"; req_access_txt = "2"},/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/escape) +"daJ" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Escape Shuttle Infirmary"; req_access_txt = "0"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"daK" = (/obj/structure/sign/bluecross_2,/turf/closed/wall/mineral/titanium,/area/shuttle/escape) +"daL" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Cargo Bay Airlock"},/turf/open/floor/plasteel/delivery,/area/shuttle/escape) +"daM" = (/mob/living/simple_animal/slime,/turf/open/floor/engine,/area/toxins/xenobiology) +"daN" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/door/poddoor/preopen{id = "xenobio3"; name = "containment blast door"},/turf/open/floor/plating,/area/toxins/xenobiology) +"daO" = (/obj/structure/table/reinforced,/obj/machinery/button/door{id = "xenobio3"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/warning{dir = 5},/area/toxins/xenobiology) +"daP" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/warnwhite/corner{dir = 1},/area/toxins/xenobiology) +"daQ" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"daR" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/warnwhite/corner{dir = 2},/area/toxins/xenobiology) +"daS" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/warning{dir = 9},/area/toxins/xenobiology) +"daT" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow,/obj/machinery/door/poddoor/preopen{id = "xenobio8"; name = "containment blast door"},/turf/open/floor/plating,/area/toxins/xenobiology) +"daU" = (/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/disposaloutlet{dir = 1},/turf/open/floor/engine,/area/toxins/xenobiology) +"daV" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/space,/area/solar/starboard) +"daW" = (/obj/structure/lattice/catwalk,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/space,/area/solar/starboard) +"daX" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/shuttle/escape) +"daY" = (/turf/open/floor/plasteel/floorgrime,/area/shuttle/escape) +"daZ" = (/obj/machinery/door/airlock/external{name = "Emergency Recovery Airlock"},/turf/open/floor/plasteel/floorgrime,/area/shuttle/escape) +"dba" = (/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/escape) +"dbb" = (/obj/structure/chair{dir = 4},/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/escape) +"dbc" = (/obj/structure/chair,/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/escape) +"dbd" = (/obj/structure/table,/obj/item/weapon/defibrillator/loaded,/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"dbe" = (/obj/machinery/shower,/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"dbf" = (/obj/machinery/sleeper{dir = 8},/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"dbg" = (/obj/structure/rack,/obj/item/weapon/crowbar,/obj/item/weapon/wrench,/obj/item/weapon/weldingtool,/obj/item/weapon/wirecutters,/obj/item/stack/cable_coil,/turf/open/floor/plasteel/warning{dir = 4},/area/shuttle/escape) +"dbh" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plasteel/delivery,/area/shuttle/escape) +"dbi" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel/delivery,/area/shuttle/escape) +"dbj" = (/turf/open/floor/plasteel/delivery,/area/shuttle/escape) +"dbk" = (/obj/machinery/recharge_station,/turf/open/floor/plasteel/delivery,/area/shuttle/escape) +"dbl" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/closed/wall,/area/toxins/xenobiology) +"dbm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/warnwhite{dir = 8},/area/toxins/xenobiology) +"dbn" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"dbo" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/machinery/camera{c_tag = "Xenobiology Lab - Central"; dir = 8; network = list("SS13","RD")},/turf/open/floor/plasteel/warnwhite{dir = 4},/area/toxins/xenobiology) +"dbp" = (/obj/structure/lattice/catwalk,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/space,/area/solar/starboard) +"dbq" = (/turf/closed/wall/mineral/titanium/nodiagonal,/area/shuttle/escape) +"dbr" = (/obj/structure/chair{dir = 8},/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/escape) +"dbs" = (/obj/structure/reagent_dispensers/peppertank,/turf/closed/wall/mineral/titanium,/area/shuttle/escape) +"dbt" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{pixel_x = 6; pixel_y = 0},/obj/item/weapon/reagent_containers/glass/bottle/charcoal{pixel_x = -3},/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{pixel_x = -3; pixel_y = 8},/obj/item/weapon/reagent_containers/glass/bottle/charcoal{pixel_x = 6; pixel_y = 8},/obj/item/weapon/reagent_containers/syringe/epinephrine{pixel_x = 3; pixel_y = -2},/obj/item/weapon/reagent_containers/syringe/epinephrine{pixel_x = 4; pixel_y = 1},/obj/item/weapon/reagent_containers/syringe/epinephrine{pixel_x = -2; pixel_y = 5},/obj/item/weapon/reagent_containers/syringe/epinephrine{pixel_x = 2; pixel_y = 8},/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"dbu" = (/obj/structure/rack,/obj/item/weapon/storage/toolbox/electrical{pixel_x = -3; pixel_y = 1},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = 0; pixel_y = -1},/obj/item/weapon/storage/toolbox/emergency{pixel_x = 3; pixel_y = -5},/turf/open/floor/plasteel/warning{dir = 4},/area/shuttle/escape) +"dbv" = (/obj/item/weapon/cigbutt,/turf/open/floor/plasteel/floorgrime,/area/shuttle/escape) +"dbw" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/door/poddoor/preopen{id = "xenobio2"; name = "containment blast door"},/turf/open/floor/plating,/area/toxins/xenobiology) +"dbx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/warnwhite/corner{dir = 4},/area/toxins/xenobiology) +"dby" = (/turf/open/floor/plasteel/warnwhite/corner{dir = 8},/area/toxins/xenobiology) +"dbz" = (/obj/structure/window/reinforced,/obj/structure/table/reinforced,/obj/machinery/button/door{id = "xenobio7"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/turf/open/floor/plasteel/warning{dir = 10},/area/toxins/xenobiology) +"dbA" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/door/poddoor/preopen{id = "xenobio7"; name = "containment blast door"},/turf/open/floor/plating,/area/toxins/xenobiology) +"dbB" = (/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 24; id = "syndicate_se"; name = "southeast of station"; turf_type = /turf/open/space; width = 18},/turf/open/space,/area/space) +"dbC" = (/obj/machinery/suit_storage_unit/standard_unit,/turf/open/floor/plasteel/floorgrime,/area/shuttle/escape) +"dbD" = (/obj/structure/table/optable,/obj/item/weapon/surgical_drapes,/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"dbE" = (/turf/open/floor/plasteel/warning{dir = 4},/area/shuttle/escape) +"dbF" = (/obj/machinery/light/small{dir = 8},/obj/machinery/camera{c_tag = "Xenobiology Lab - Pen #3"; dir = 4; network = list("SS13","RD","Xeno")},/turf/open/floor/engine,/area/toxins/xenobiology) +"dbG" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Containment Pen #3"; req_access_txt = "55"},/obj/machinery/door/poddoor/preopen{id = "xenobio2"; name = "containment blast door"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/engine,/area/toxins/xenobiology) +"dbH" = (/obj/machinery/door/window/northleft{dir = 4; name = "Containment Pen #3"; req_access_txt = "55"},/turf/open/floor/plasteel/warning{dir = 4},/area/toxins/xenobiology) +"dbI" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/landmark{name = "lightsout"},/obj/machinery/holopad,/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"dbJ" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Containment Pen #4"; req_access_txt = "55"},/turf/open/floor/plasteel/warning{dir = 8},/area/toxins/xenobiology) +"dbK" = (/obj/machinery/door/window/northleft{dir = 4; name = "Containment Pen #4"; req_access_txt = "55"},/obj/machinery/door/poddoor/preopen{id = "xenobio7"; name = "containment blast door"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/engine,/area/toxins/xenobiology) +"dbL" = (/obj/machinery/light/small{dir = 4},/obj/machinery/camera{c_tag = "Xenobiology Lab - Pen #4"; dir = 8; network = list("SS13","RD","Xeno")},/turf/open/floor/engine,/area/toxins/xenobiology) +"dbM" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plasteel/floorgrime,/area/shuttle/escape) +"dbN" = (/obj/structure/table,/obj/item/weapon/folder/red{pixel_x = 3},/obj/item/weapon/folder/white{pixel_x = -4; pixel_y = 2},/obj/item/device/radio/intercom{dir = 2; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -31},/obj/item/weapon/book/manual/wiki/security_space_law{pixel_x = -4; pixel_y = 4},/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/escape) +"dbO" = (/obj/structure/table,/obj/item/weapon/restraints/handcuffs{pixel_y = 3},/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/escape) +"dbP" = (/obj/structure/table,/obj/machinery/recharger{active_power_usage = 0; idle_power_usage = 0; use_power = 0},/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/escape) +"dbQ" = (/obj/structure/table,/obj/item/weapon/storage/box/handcuffs{pixel_x = 2; pixel_y = 2},/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/escape) +"dbR" = (/obj/structure/table,/obj/item/weapon/scalpel{pixel_y = 12},/obj/item/weapon/circular_saw,/obj/item/weapon/retractor{pixel_x = 4},/obj/item/weapon/hemostat{pixel_x = -4},/obj/item/clothing/gloves/color/latex,/obj/item/clothing/mask/surgical,/obj/item/device/radio/intercom{dir = 2; name = "Station Intercom (General)"; pixel_x = -27; pixel_y = 0},/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"dbS" = (/obj/structure/sink,/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"dbT" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"dbU" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/toxin,/obj/item/weapon/storage/firstaid/o2{pixel_x = 3; pixel_y = 3},/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"dbV" = (/obj/structure/rack{dir = 1},/obj/item/weapon/tank/internals/oxygen/red,/obj/item/clothing/suit/fire/firefighter,/obj/item/clothing/mask/gas,/obj/item/clothing/head/hardhat/red,/turf/open/floor/plasteel/warning{dir = 4},/area/shuttle/escape) +"dbW" = (/obj/machinery/space_heater,/obj/structure/extinguisher_cabinet{dir = 4; pixel_x = 0; pixel_y = -27},/turf/open/floor/plasteel/bot,/area/shuttle/escape) +"dbX" = (/obj/structure/closet/crate{name = "emergency supplies crate"},/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/storage/toolbox/emergency,/obj/item/device/flashlight/flare{pixel_x = 3; pixel_y = 3},/obj/item/device/flashlight/flare{pixel_x = -6; pixel_y = -2},/obj/item/weapon/crowbar,/obj/item/weapon/wrench,/obj/item/device/radio,/turf/open/floor/plasteel/bot,/area/shuttle/escape) +"dbY" = (/obj/structure/closet/crate/medical{name = "medical crate"},/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/firstaid/o2{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/toxin{pixel_x = -4; pixel_y = 3},/obj/item/device/healthanalyzer{pixel_x = 3; pixel_y = 3},/obj/item/weapon/lazarus_injector,/mob/living/simple_animal/bot/medbot{name = "\improper emergency medibot"; pixel_x = -3; pixel_y = 2},/turf/open/floor/plasteel/bot,/area/shuttle/escape) +"dbZ" = (/obj/item/device/radio/intercom{dir = 2; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -31},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/plasteel/bot,/area/shuttle/escape) +"dca" = (/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/folder/yellow,/obj/item/weapon/pen,/obj/item/hand_labeler_refill,/turf/open/floor/plasteel/bot,/area/shuttle/escape) +"dcb" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/door/poddoor/preopen{id = "xenobio2"; name = "containment blast door"},/turf/open/floor/plating,/area/toxins/xenobiology) +"dcc" = (/obj/structure/table/reinforced,/obj/machinery/button/door{id = "xenobio2"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/warning{dir = 5},/area/toxins/xenobiology) +"dcd" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/effect/landmark/start{name = "Scientist"},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"dce" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/warnwhite/corner{dir = 2},/area/toxins/xenobiology) +"dcf" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow,/obj/machinery/door/poddoor/preopen{id = "xenobio7"; name = "containment blast door"},/turf/open/floor/plating,/area/toxins/xenobiology) +"dcg" = (/obj/structure/cable,/obj/machinery/power/tracker,/turf/open/floor/plating/airless,/area/solar/starboard) +"dch" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/warnwhite{dir = 8},/area/toxins/xenobiology) +"dci" = (/turf/open/floor/plasteel/warnwhite{dir = 4},/area/toxins/xenobiology) +"dcj" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/door/poddoor/preopen{id = "xenobio1"; name = "containment blast door"},/turf/open/floor/plating,/area/toxins/xenobiology) +"dck" = (/obj/machinery/button/door{id = "xenobio1"; name = "Containment Blast Doors"; pixel_x = -24; pixel_y = 24; req_access_txt = "55"},/turf/open/floor/plasteel/warnwhite{dir = 1},/area/toxins/xenobiology) +"dcl" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel/warnwhite/corner{dir = 4},/area/toxins/xenobiology) +"dcm" = (/obj/structure/window/reinforced,/obj/machinery/button/door{id = "xenobio6"; name = "Containment Blast Doors"; pixel_x = 24; pixel_y = 24; req_access_txt = "55"},/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/disposal/bin,/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/turf/open/floor/plasteel/warning{dir = 10},/area/toxins/xenobiology) +"dcn" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/door/poddoor/preopen{id = "xenobio6"; name = "containment blast door"},/turf/open/floor/plating,/area/toxins/xenobiology) +"dco" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/engine,/area/toxins/xenobiology) +"dcp" = (/obj/machinery/light/small{dir = 8},/obj/machinery/camera{c_tag = "Xenobiology Lab - Pen #5"; dir = 4; network = list("SS13","RD","Xeno")},/turf/open/floor/engine,/area/toxins/xenobiology) +"dcq" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Containment Pen #5"; req_access_txt = "55"},/obj/machinery/door/poddoor/preopen{id = "xenobio1"; name = "containment blast door"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/engine,/area/toxins/xenobiology) +"dcr" = (/obj/machinery/door/window/northleft{dir = 4; name = "Containment Pen #5"; req_access_txt = "55"},/turf/open/floor/plasteel/warning{dir = 4},/area/toxins/xenobiology) +"dcs" = (/obj/machinery/computer/camera_advanced/xenobio,/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"dct" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Containment Pen #6"; req_access_txt = "55"},/turf/open/floor/plasteel/warning{dir = 8},/area/toxins/xenobiology) +"dcu" = (/obj/machinery/door/window/northleft{dir = 4; name = "Containment Pen #6"; req_access_txt = "55"},/obj/machinery/door/poddoor/preopen{id = "xenobio6"; name = "containment blast door"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/engine,/area/toxins/xenobiology) +"dcv" = (/obj/structure/disposalpipe/segment,/turf/open/floor/engine,/area/toxins/xenobiology) +"dcw" = (/obj/machinery/light/small{dir = 4},/obj/machinery/camera{c_tag = "Xenobiology Lab - Pen #6"; dir = 8; network = list("SS13","RD","Xeno")},/turf/open/floor/engine,/area/toxins/xenobiology) +"dcx" = (/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 24; id = "syndicate_sw"; name = "southwest of station"; turf_type = /turf/open/space; width = 18},/turf/open/space,/area/space) +"dcy" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/structure/cable/yellow,/obj/machinery/door/poddoor/preopen{id = "xenobio1"; name = "containment blast door"},/turf/open/floor/plating,/area/toxins/xenobiology) +"dcz" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/canister,/turf/open/floor/plasteel/warning{dir = 5},/area/toxins/xenobiology) +"dcA" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/components/binary/pump{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"dcB" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 1},/obj/structure/chair/comfy/black{dir = 1},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"dcC" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"dcD" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/obj/structure/chair/comfy/black{dir = 1},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"dcE" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/components/binary/pump{dir = 8},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"dcF" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 8},/obj/machinery/portable_atmospherics/canister,/turf/open/floor/plasteel/warning{dir = 9},/area/toxins/xenobiology) +"dcG" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "xenobio6"; name = "containment blast door"},/turf/open/floor/plating,/area/toxins/xenobiology) +"dcH" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/engine,/area/toxins/xenobiology) +"dcI" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/camera{c_tag = "Xenobiology Lab - Aft-Port"; dir = 4; network = list("SS13","RD")},/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/warning{dir = 4},/area/toxins/xenobiology) +"dcJ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/warnwhite{dir = 2},/area/toxins/xenobiology) +"dcK" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/general/visible,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/open/floor/plasteel/warnwhite{dir = 2},/area/toxins/xenobiology) +"dcL" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plasteel/warnwhite{dir = 2},/area/toxins/xenobiology) +"dcM" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/warnwhite{dir = 2},/area/toxins/xenobiology) +"dcN" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/camera{c_tag = "Xenobiology Lab - Aft-Starboard"; dir = 8; network = list("SS13","RD")},/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/warning{dir = 8},/area/toxins/xenobiology) +"dcO" = (/obj/structure/closet,/turf/open/floor/plating,/area/toxins/xenobiology) +"dcP" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plating,/area/toxins/xenobiology) +"dcQ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/hatch{icon_state = "door_closed"; name = "Test Chamber Maintenance"; req_access_txt = "47"; req_one_access_txt = "0"},/turf/open/floor/plating,/area/toxins/xenobiology) +"dcR" = (/obj/item/weapon/crowbar/red,/obj/item/weapon/wrench,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/warning{dir = 2},/area/toxins/xenobiology) +"dcS" = (/obj/machinery/computer/security/telescreen{dir = 1; name = "Test Chamber Monitor"; network = list("Xeno"); pixel_x = 0; pixel_y = 2},/obj/structure/table/reinforced,/turf/open/floor/plasteel/warning{dir = 2},/area/toxins/xenobiology) +"dcT" = (/obj/machinery/atmospherics/pipe/simple/general/visible,/obj/structure/window/reinforced{dir = 4},/obj/machinery/button/ignition{id = "Xenobio"; pixel_x = -6; pixel_y = -2},/obj/machinery/button/door{id = "Xenolab"; name = "Test Chamber Blast Doors"; pixel_x = 4; pixel_y = -2; req_access_txt = "55"},/obj/structure/table/reinforced,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/warning{dir = 6},/area/toxins/xenobiology) +"dcU" = (/obj/machinery/door/window/southleft{dir = 1; name = "Maximum Security Test Chamber"; req_access_txt = "55"},/turf/open/floor/plasteel/warning{dir = 2},/area/toxins/xenobiology) +"dcV" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 2},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/warning{dir = 10},/area/toxins/xenobiology) +"dcW" = (/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/glasses/science,/obj/item/clothing/glasses/science,/obj/structure/table,/turf/open/floor/plasteel/warning{dir = 2},/area/toxins/xenobiology) +"dcX" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/warning{dir = 2},/area/toxins/xenobiology) +"dcY" = (/obj/machinery/door/airlock/hatch{icon_state = "door_closed"; name = "Test Chamber Maintenance"; req_access_txt = "47"; req_one_access_txt = "0"},/turf/open/floor/plating,/area/toxins/xenobiology) +"dcZ" = (/turf/open/floor/plating,/area/toxins/xenobiology) +"dda" = (/obj/machinery/space_heater,/turf/open/floor/plating,/area/toxins/xenobiology) +"ddb" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/toxins/xenobiology) +"ddc" = (/obj/machinery/shieldwallgen{req_access = list(55)},/obj/structure/cable/yellow,/turf/open/floor/plating,/area/toxins/xenobiology) +"ddd" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/door/poddoor/preopen{id = "Xenolab"; name = "test chamber blast door"},/turf/open/floor/plating,/area/toxins/xenobiology) +"dde" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/atmospherics/pipe/simple/general/visible,/obj/machinery/door/poddoor/preopen{id = "Xenolab"; name = "test chamber blast door"},/turf/open/floor/plating,/area/toxins/xenobiology) +"ddf" = (/obj/machinery/door/window/southleft{dir = 2; name = "Maximum Security Test Chamber"; req_access_txt = "55"},/obj/machinery/door/poddoor/preopen{id = "Xenolab"; name = "test chamber blast door"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/engine,/area/toxins/xenobiology) +"ddg" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/door/poddoor/preopen{id = "Xenolab"; name = "test chamber blast door"},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/toxins/xenobiology) +"ddh" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "Xenolab"; name = "test chamber blast door"},/turf/open/floor/plating,/area/toxins/xenobiology) +"ddi" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/closed/wall/r_wall,/area/toxins/xenobiology) +"ddj" = (/obj/machinery/atmospherics/pipe/simple/general/visible,/turf/open/floor/engine,/area/toxins/xenobiology) +"ddk" = (/obj/structure/disposaloutlet{dir = 2},/turf/open/floor/engine,/area/toxins/xenobiology) +"ddl" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 10},/obj/item/device/electropack,/turf/open/floor/engine,/area/toxins/xenobiology) +"ddm" = (/obj/machinery/sparker{id = "Xenobio"; pixel_x = -25},/turf/open/floor/engine,/area/toxins/xenobiology) +"ddn" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 1},/turf/open/floor/engine,/area/toxins/xenobiology) +"ddo" = (/obj/item/device/radio/beacon,/turf/open/floor/engine,/area/toxins/xenobiology) +"ddp" = (/obj/structure/table,/obj/machinery/cell_charger{pixel_y = 5},/obj/item/stack/cable_coil,/obj/item/device/multitool,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/turf/open/floor/engine,/area/toxins/xenobiology) +"ddq" = (/obj/effect/spawner/lootdrop{loot = list(/obj/effect/decal/remains/xeno = 49, /obj/structure/alien/egg = 1); name = "2% chance xeno egg spawner"},/turf/open/floor/engine,/area/toxins/xenobiology) +"ddr" = (/obj/machinery/light/small,/turf/open/floor/engine,/area/toxins/xenobiology) +"dds" = (/obj/machinery/camera{c_tag = "Xenobiology Lab - Test Chamber"; dir = 1; network = list("SS13","RD","Xeno")},/turf/open/floor/engine,/area/toxins/xenobiology) +"ddt" = (/obj/item/device/radio/intercom{pixel_y = -25},/turf/open/floor/engine,/area/toxins/xenobiology) +"ddu" = (/obj/structure/table,/obj/item/device/assembly/igniter{pixel_x = -5; pixel_y = 3},/obj/item/device/assembly/igniter{pixel_x = 5; pixel_y = -4},/obj/item/device/assembly/igniter{pixel_x = 2; pixel_y = 6},/obj/item/device/assembly/igniter{pixel_x = 2; pixel_y = -1},/turf/open/floor/engine,/area/toxins/xenobiology) +"ddv" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plating,/area/toxins/xenobiology) +"ddw" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 6; initialize_directions = 6},/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/toxins/xenobiology) +"ddx" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/turf/open/floor/plating,/area/toxins/xenobiology) +"ddy" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/chair,/obj/item/weapon/cigbutt,/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 10; initialize_directions = 10},/turf/open/floor/plating,/area/toxins/xenobiology) +"ddz" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/turf/open/floor/plating,/area/toxins/xenobiology) +"ddA" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 10; initialize_directions = 10},/turf/open/floor/plating,/area/toxins/xenobiology) +"ddB" = (/obj/structure/rack,/obj/item/clothing/shoes/winterboots,/obj/item/clothing/suit/hooded/wintercoat,/turf/open/floor/plating,/area/toxins/xenobiology) +"ddC" = (/obj/machinery/atmospherics/components/unary/thermomachine/freezer{dir = 1; name = "euthanization chamber freezer"; on = 1; target_temperature = 80},/turf/open/floor/plating,/area/toxins/xenobiology) +"ddD" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/cyan/visible,/turf/open/floor/plating,/area/toxins/xenobiology) +"ddE" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Slime Euthanization Chamber"; req_access_txt = "55"},/turf/open/floor/plating,/area/toxins/xenobiology) +"ddF" = (/turf/open/floor/bluegrid{name = "Killroom Floor"; initial_gas_mix = "n2=500;TEMP=80"},/area/toxins/xenobiology) +"ddG" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 140; on = 1; pressure_checks = 0},/turf/open/floor/bluegrid{name = "Killroom Floor"; initial_gas_mix = "n2=500;TEMP=80"},/area/toxins/xenobiology) +"ddH" = (/obj/structure/disposalpipe/segment,/turf/open/floor/bluegrid{name = "Killroom Floor"; initial_gas_mix = "n2=500;TEMP=80"},/area/toxins/xenobiology) +"ddI" = (/obj/machinery/camera{c_tag = "Xenobiology Lab - Kill Chamber"; dir = 1; network = list("SS13","RD","Xeno"); start_active = 1},/turf/open/floor/bluegrid{name = "Killroom Floor"; initial_gas_mix = "n2=500;TEMP=80"},/area/toxins/xenobiology) +"ddJ" = (/obj/structure/disposalpipe/segment,/obj/machinery/light/small,/turf/open/floor/bluegrid{name = "Killroom Floor"; initial_gas_mix = "n2=500;TEMP=80"},/area/toxins/xenobiology) +"ddK" = (/obj/structure/disposalpipe/trunk{dir = 1},/obj/structure/disposaloutlet,/turf/open/floor/plating/airless,/area/space) +"ddL" = (/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 24; id = "syndicate_s"; name = "south of station"; turf_type = /turf/open/space; width = 18},/turf/open/space,/area/space) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaadaaeaaeaaeaaeaaeaadaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaagaahaaiaajaakaalaalaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaamaahaahaanaahaahaahaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaoaahaahaahaapaahaaqaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaraadaadaadaasaadaadaadaataaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaauaadaavaahaawaadaataaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaahaahaaxaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaadaadaadaadaadaahaahaaxaazaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaAaahaahaaBaadaahaahaaxaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaAaahaaCaaDaadaahaahaaxaadaadaaEaaFaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaAaahaahaaGaadaaHaaIaaHaadaahaahaahaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaAaahaahaahaaJaahaahaahaaKaahaahaahaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaAaahaahaahaaLaahaahaahaaHaahaahaahaadaaMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaadaadaadaadaadaadaaOaahaahaadaadaadaadaadaadaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaQaaPaaRaaPaaQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaSaaTaaUaaVaaWaadaahaahaahaadaaXaaYaaZabaabbaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPabcabdaaQaaQaaaaaaaaaabeaaaaaaaaaaaQabcabdabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadabfaaTaaTaaTaaTabgaahaahaahaadaahaahaahaaCabhaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaaaaaaaaPaaPaaaaaaaaaabeaaPaaPaaaaaPaaPaaaaaPaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaSaaTaaTaaTaaTabiaahaahaahabjaahaahaahaahaahaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQaaPabkabkabkabkabkaaPablaaPabkabkabkabkabkaaaabcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaTaaTaaTaaTaaTabmaahaahaahabnaahaahaahaahaboaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQaaPabpabqabqabqabqabrabsabtabuabuabuabuabvaaPaaQaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxabyabzabAabBabCaadaahaahaahaadabDabEaahaahaboaazaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaQaaPabFabFabFabFabFaaPabsaaPabFabFabFabFabFaaPabcaaPaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadabGaaTabHaadaadaadaaHabIaaHaadabJaadaahaahaahaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcaaaaaaaaaaaPaaaaaaaaPabsaaaaaaaaPaaaaaPaaaaaaaaQaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadabKabLabMaadaaaaadabNabNabNaadaadaadabOabPabQaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQaaPabkabkabkabkabkaaPabRaaPabkabkabkabkabkaaPabdaaPaaPaaPaaaaaaaaaaaPabcabdabcaaPaaPaaPaaaaaPaaPaaPaaaaaPaaPaaPaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadabNabNabNaadaaaaarabSabTabUaataaaaadabNabNabNaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQaaPabpabqabqabqabqabrabsabtabuabuabuabuabvaaaaaQaaaaaaaaPaaaaaaaaaaaPaaaaaPaaaaaaaaPaaaaaaaaaaaPaaaaaaaaaaaPaaaaaPaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarabSabTabUabVaaaaaaaaaaaaaaaaaaaaaabWabSabTabUaataaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQaaPabFabFabFabFabFaaPabsaaPabFabFabFabFabFaaPabcaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaaaaPaaaabXabXabYabXabYabXabXaaaaaPaaPaaaaaPaaPaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaaQaaQaaQabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPabdaaaaaaaaaaaPaaaaaaaaaabZaaaaaaaaaaaPaaaaaaaaPabdaaaaaaaaaaaaaaPaaPaaaaaaaaaaaPaaaaaPaaPabXacaacbaccacdaceabXaaPaaPaaaacfaaaaaaaaPaaPaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcaaaaaaaaaabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQaaPabkabkabkabkabkaaPabsaaPabkabkabkabkabkaaPaaaaaaaaaaaaaaaaaaaaPaaaaaaaaaaaPaaPaaPaaaacgachaciacjackaclacmaaaaaaacnacoacnaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaaPacpaaaabcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQaaPabpabqabqabqabqabrabsabtabuabuabuabuabvaaPaaaaaaaaaaaaaaaaaaaaPaaaaaaaaPaaPaaaaaPaaaabXacqacracsactacuabXaaaacvacnacwacnacxaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaQaaQaaQaaQaaQaaQaaQaaaacyaaaabdaaQaaQaaQabdabdabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcaaaabFabFabFabFabFaaPabsaaPabFabFabFabFabFaaPaaPaaPaaPaaaaczaaPaaPaaPabXabYabXabXabYabXabXabXacAacBacCabXabXabYabXacnacDacnacEaaPaaPaaPaaPaaaaaaaaaaaaaaaabwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcaaaaaaaaPaaPaaPaaaaaaacyaaPaaPaaaaaPaaPaaaaaaabcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaQaaaaaPaaPaaPaaPaaPaaaacFaaaaaaaaaaaPaaaaaaaaPaaaaaaaaPaaPaczacGacGacGabXacHacIacJacKacLacMacNacOacjacPacQacRacSabXacTacUacTacEaaaaaPaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQaaaacVacVacVacVacVaaPacWaaPacVacVacVacVacVaaPaaQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQaaQaaQaaPaaaaaaaaPaaPabeaaPaaPaaPaaPaaPaaPaaPaaaaaaaaaaaaaczacXacYacZabXadaadbacsadcaddadeadeadfadgadhadiadjadkabXadladmadnacEacEacEaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQaaPadoadpadpadpadpadqadradsadtadtadtadtaduaaaaaQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaPaaPaaPaaPaaPaaPaaaabeaaaaaaaaaaaPaaaaaaaaPaaPaaPaaPaaPaczadvadwadxabXadyacEadzadcadeacsaddadAadBadCadcadDadEabXadFadGadHadIadJadIadKadKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaPaaPaaPaaPaaPaaPabcaaQabcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQaaPadLadLadLadLadLaaPadraaPadLadLadLadLadLaaPaaQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaaaaPaaaabeaaaaaaaaaaaPaaaaaaaaPaaaaaaaaaaaaaczadMadNadOabXadPacEadQadRacjacjadSadTadUadVadWadeadXabXadYabXabXabXabXabXaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPabcaaQaaQaaQabcaaQaaQabcaaaaaaaaPaaaaaaaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaaaaaaaaaaaPaaaaaaaaPadZaaaaaaaaaaaPaaaaaaaaaabcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaaaaPaaaabeaaaaaaaaaaaPaaaaaaaaPaaaaaaaaaaaaaczaeaaebaecabXabXabXaedaeeaefaegaehaeiaejaekaeladeaemacEadlacEaenaeoaepabXaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaaaaaaaaaaPaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaPaaaaeqaeraeqaesacxaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQaaPacVacVacVacVacVaaPadraaPacVacVacVacVacVaaaaaQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaPaaPaaPaaPaaPaetaeuaeuaeuaeuaeuaeuaevaaPaaPaaPaaPaczaewaexaeyaezaeAaeBacEaeCacEaeDacEaeEacEacEacEaeFacEacEaeGacEaeHaeIaeJacmaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaPaaaaeqaeKaeLaeMaeMaeMaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQaaaadoadpadpadpadpadqadradsadtadtadtadtaduaaPaaQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaaaaaaaPaaaaaPaaaaaaaaaabeaaaaaaaaPaaaaczaeNaeOaePaeQaeRaeSaeTadeaeUaeDaeVaeWaeXacEaeYadeaeZacEafaacEafbafcafdabXaaaaaPaaaaaaaaaafeaaaaaaaaaaaPaaaaaPaaaaaaaaaaaPaaaaaaaaaaaaaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaeraffafgafhafiafjafkabcaaQabcaaPaaPaaaaaaaaaaaaaaaaaaaaaaaaaaQaaPadLadLadLadLadLaaPadraaPadLadLadLadLadLaaPaaQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaPaaaaaaaaaaaaaaPaaaaaPaaPabeaaPaaPaaPaaPaczaflafmafnafoafpaeSafqadeafrafsaftafuafvacEafwadeafvacEadFacEafxafyafzabXaaPaaPaaPafAafAafAafAafAaaPaaPaaaaaPafBafBafCafDafEafBafBaaaaaPaaaaaaaaPaaaaaaaaaaaPaaaaaaaaaaaPaaaaaaaaaaaaaaPaaaaaaaaaaaaaeqafFaeLaeMaeMaeMaaaaaPaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaabcaaaaaaaaaaaPaaaaaaaaaadraaaaaaaaaaaPaaaaaaaaaabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaPaaPaaaaaPaaaaaPafGafHafGaaPaaaaaaaczafIafJafKabXafLafMafNafOacEaeDacEafPaeDacEafNafQaeDacEadYacEaeDafRafNabXaaPaaPafAafAafSafTafUafAafAaaPaaPafBafBafVafWafXafYafZafBafBaaPagaagaagbagaagaaaPaaPaaPaaPaeqaeraeqaeraeraeraeqaeraeraeraeqaeqagcaeqagdageageagfageageaggaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaQaaaacVacVacVacVacVaaPaghaaPacVacVacVacVacVaaPaaQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaPaaaaaaaaPaaPaaPafGagiafGaaPaaPaaaaczagjagkaglabXagmagnagoagpagqagragsagtaguagvagwagxagyagzagAagBagCagDagEagFaaPafAafAagGagHagIagIagJafAafAaaPafBagKagLagMagNagOagPagQafBaaPagaagRagSagTagaaaaaaaaaaaaPaeqagUaeqagVagWagXaeqagYagZahaaeqahbahcahdaheahfahfahfahfahfaheaaPaaPaaPaaPaaPaaaaaaaaaaaaaaaaaQaaPadoadpadpadpadpadqadradsadtadtadtadtaduaaPaaQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaPaaPaaPaaPaaPaaPaaPaaPafGafGahgafGafGaaPaaPaczaczaczaczabXahhahiahjahkahlahmahnahiahoahpahqahrahsahtahiahuahvahwahxahyaaPafAahzahAahBahCahDahEahFafAaaPahGahHahIahJahKahLahMahNahOaaPagbahPahQahRagbaaaahSahSahSaeqahTahUahVahWahWahXahWahYahZaiaaibaibaibaheahfahfahfahfahfaheaaaaaaaaaaaaaaPaaaaaaaaaaaaaaaaaQaaPadLadLadLadLadLaaPadraaPadLadLadLadLadLaaaabcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaPaaaaaaaaaaaaaaaaaPaicaidaieaifaicaaPaaaaaaaaaaaPaaaabXabXaigaihaiiabXaijaikaijacEacEacEacEailaimainaioaipaiqairabXaaPafAaisahAaitaiuaivahEaiwafAaaPaixaiyaizaiAaiBaiCaizaiDaixaaPagaahPaiEahRagaahSahSaiFaiGaeqaeqaeqaiHaiIaiJaiJaiKaiLaiMaiNaiNaiOaiPaheahfahfahfahfahfaiQaeqaeqaeqaaaaaPaaaaaaaaaaaaaaaabcaaaaaaaaaaaPaaaaaaaaaadraaaaaaaaPaaaaaaaaPaaaaaQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaPaaPaiRaiRaiSaiSaiSaiSaiSaicaiTaiUaiVaicaaPaaPaaPaaPaaPaaaaaaabXabXahyabXabXabXahyabXabXaiWaiXaiYaiZajaajbajcajdajdajdajeajeafAajfajgajhajiajjahEajkafAaaPafBajlajmajnajoajpajqajrafBaaPagaahPaiEahRagaajsahSajtajuajvajwaeqajxaiIaiJajyajzajzajzajAaiNajBajCajDahfahfahfahfahfajEajFajGaeraaaaaPaaPaaPaaPaaPaaPaaQaaPaaPaaPaaPaaPaaaaaaadraaaaaaaaaaaaaaaaaPaaaabcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajHajIaiSajJajKajLajMaicajNajOajPajQajRajSajRajRaaPaaPaaaaaaaaaaaPaaaaaaaaaaaPaaPajTajUajVajUajWajXajYajZajdakaakbakcajeafAakdakeakfafAafAakgafAafAakhafBafBakiakjakkaklakmafBafBakhaknakoakpakqagaahSahSakrakraksaktaeqakuaiIakvakwakxakxakyakzakAakBakCaerahfahfahfahfahfaerakDakEaeraaaaaPaaaaaPaaaakFakFakFakFakFakFakFaaPaaPaaPadraaPaaPaaPaaPaaPaaQaaPaaQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaPaiRakGaiRakHakIakJakKaicaicakLakMajQakNakOakPajRajRaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPakQaiZaiZaiZaiZakRakSakTajdakUakVakWajeakXakYakZalaalbalcaldaleajealfalgalhalialjalkallalmalhalnaloaknalpalqalragaalsakrakraltakrahSaeqalualvalwalxalyalyalzakzakEalAakCaerahfahfahfahfahfaeralBalCaeraaPaaPaaPaaPaaPakFalDalEalFalGalDakFaaPaaaalHalIalHaaaaaaaaPaaaaaaaaaabcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaiSalJalKalLalMalNalOalPalQalRalSajRalTalUalValWajRaaPaaaaaaaaPaaaaaaaaaahSahSahSakQalXalYalZamaambamcamdajdameakVamfajeamgakYamhamiamjamkamlammamnamoampamqamramsamtamuamvamwamxamyamzamAamBamCagaamDamEamFamGamHahSamIamJaiIamKakwamLakxamMakzamNakBamOamPahfahfahfahfahfamQamRamSamTamUamTaaaaaPaaaakFamVamWalDamWamXakFaaPaaaamYamZamYaaaaaaaaPaaaaaaaaaaaQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaiRanaaiRanbancandaneaiRanfanganhanianjankanlanmajRaaPannannajSannannaaaahSanoanoakQanpanqanransantanuanvanwanxanyanxanzanAanAanBanCanDanEanFanFanGanHanIanJanKanLanManNanOanPanQanRanSanTanUanVagaanWakrakranXajuahSanYamJaiIaibanZaoaaobaocaodaoeakBaofaogahfahfahfahfahfaohaeqaoiamTaojaokadKadKaaPakFaolaomaonaooaopakFaaPalHamYaoqamYalHaaaaaPaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaPaiRaoraosaosaosaotaouaiRaovaowaoxajRaoyaozaoAaoBajRannannaoCaoDalSannahSahSaoEaoFakQaoGaoHaoIaoJaoKaoLaoMajdaoNaoOaoPajeaoQaoRaoSaoTaoUaoVaoWaoXajdaoYaoZapaanKapbapcapdapeapfapgaphaknaknapiagaagaahSahSahSapjahSahSahSapkaplaibaibapmapnapoappappapqaofaogahfahfahfahfahfaohaprapsamTaokamTamTamUamTakFaptapualDapvapwakFaaPamYamYamZamYamYaaPaaPaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapxapyaaaaaaapxaaaapxaaaaaaaaPaaPaaPaaaaaaaaaaaaaaaaaPaaaaaPaaaaaPaaaaiRapzapAapBapCapDapEaiRapFaowapGannapHapGapGapGapIannapJapKapLapMannapNapOapPapQapRapSapTapUapVapWapXapYajealbapZalbajeajeaqaaqbaqaajeaqcaqdaqeaqfaqgaoZaqhaqianKaqjaqkaqlaqmapgaqnaqoaqpaqqaqraqsaqtaquaqvaqwaqxaqvaqyaqzaqAaqBaqBaqCaqDaqEaqFaqFaqFaqGaogahfahfahfahfahfaohaqHaqIamTapsaqJaqKaqLaqMakFaqNaqOaqPaqQaqRakFaaPaqSaqTaqUaqVaqSaaaaaPaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapxapxaaPaaPapxapxapxaaPaaaapxapxaqWapxapxaaaaaPannannajSannaaPaaaaaPaaPaaPaaPaaPannajSaiRaiRaqXaqYaqZaiRaiRaiRanfaraanharbanjarcardapGareannanfarfargannannarhariarjarkakQakQakQaiZaiZarlarmarnaroarparqarrarsartaruaoVarvajealdarwarxajdaryaoZarzarAarBarCarDarEarFapgarGarHarHalhalhalhalharIahSahSahSahSahSarJarKarLarMarNarOarParQarRarSarTarUarVarVarVarVarVarWarXarYamTaqIaqIaqIaqIarZakFasaasbascasdaseakFaaPaqSasfasgashaqSaaaaaPaaPaaPadKaaPaaPaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapyasiaaPapxaaPasiaaPapxapxaaPapxapxapxapxapxaaaaaaaaaannasjaskannaslasmasmasmasmasmasnannapJasoannaspasqanfasrassannastasuasvannapHarfaswasxasyannaszardasAannasBariaiFasCasDahSasEakQasFasGaoKarmarnajeasHasIasJasKasKasLasMasNasOaldasPasQasRasSasTasUasVasWasXasWasYasWasZataatbatcatcatdatealharIahSatfatgathatiatiatiatiatiatjatkatlatiatiatiatiatiatmamTatnatoatpamTamTaqIamTatqatratsaqIattatuatvatwatxatyatzakFamUaqSatAatBatCaqSaaaaaPaaaaaaadKaaPaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapxaaPapxaaPapxapxapxaqWaaPaaPaaPapxapxaaPaaaaaPaaPajSatDatEatFatGatHatHatHatHatHatIatJatKatLatMatNatOatHatPatQatHatRatSahSahSahSahSahSahSahSahSahSahSatTahSatUahSahSahSahSahSahSakQatVatWaoKarmarnaroatXatYatZauaaubaucaudaueaqfaldaufaugauhauiaujaukaulaumaunauoaupauqaurausarHautauuautauvalhauwauxauyauzakratiauAauBauCauDauEauFauGatiauHauIauJatiamTamTauKauLauMaqHamTaqIamTatpaqIauNaqIamTauOauPakFakFauQauRakFauSaqSaqSauTauUaqSamTamUamTamTauVamTaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapxapxapxapxapxaaPapxapxaaPasiapxapxaaPaaPaaPaaPannannauWannannauXauYauYauYauYauYauZannannannannavaavbavcavcavcavdaveavfahSavgavhaviavjavkavlavmavnavoavpavqavrahSavsavtavtavtavsakSavuavvaoKavwavxavyaoUavzaoUajeajeavAavBaoUajeavCavDajdajdalhavEavFavGavEalhavHavIalhavJarHarHavKavKavKalhalhavLahSakravMavNatiavOavPavQavRavSavTavUavVavWavXavYatiavZamTawaawbawcawdamTaweamTamTamTawfamTamTawgawhawiakFakFakFakFaweaqHaqIawjawkamTawlawmawnamTawoamTaaPaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapyaaPapxapxapxapxapxapxapxapxapxapxapxawpapxaaPasiannannannawqawrannaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPannaoCawsapGanfawtanfawuawvawwawxawyawzahSahSahSawAawBawBawBawCahSahSavsawDawEawFavsakSakSaiZawGawHawIawJawJawKawLawJawJawMawNawJawOawJawPawQawRawSawLawTawUawJawJawJawLawJawVakQawWawXawXawXawXaiZarIahSavNakrakratiatiatiatiatiawYawZaxaaxbaxcatiatiatiaxdamTaqHaxeauNaqIamTaqIamTaxfamTaxgaxhaxiaxjaxkaxlaxmaxnaxoaxpaxqaxraxoaxsaqIaqIaxeaqIaxtauVaxtauVadKadKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasiaaPapxaqWapxapxapxapxaxuaaPapxapxapxapxapxapxaxvaxwaxvaxxaxyannannaaPaaaaaaaaaaaaaaaaaaaaaaaaaaPannannannardanfaxzanfaxAaxBaxCaxDaxEaxFahSaaaaaPaaaaaaaaaaaaaaaaaPaaaavtaxGaxHaxIaxJaxKawXaxLaxMaxNaxOaxPaxPaxQaxOaxPaxPaxRaxSaxTaxUaxVaxWaxXaxYaxPaxZayaaybaycaycaydayeayfaygayhayiayjaykaylaymaiZarIahSaynaiFayoatiaypayqayrauDauEauFaysatiaytauBayuatiayvamTamTamTawfamTamTaqIamTarYamTaywayxayxauOayyakFayxayxayxayxayxayxayxayxayxaprayxayxayxayxayxayxayxaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapxapxapxapxapxapxapxapxapxapxapxaaPapxapxapxaaPannannannayzaxFapGannaaaayAayAayBayAayAaaPaaPaaPaaPannayCannayDatHatHatHayEayFannayGayHayIahSaaaayJayJayJayJayJayJayJaaaavsayKavsayLavsakSakSaiZayMayNayOayPayQayRayOaySayQayNayTayUayVayWayXayYayZazaazbazcazdazeazfazdazgazhaziazjazkazlazmaznazoaiZarIazpazpazpazpazpavYazqazrazsaztazuavUazvazwazxavOatiazyazzazAazBazCazDazEazFazGazFazFazHazIazJazKazLazMazNazOazNazPazQazRazQazSayxayxayxazPazQazSazTazTazNaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaPaaPaaPaaPapxapxapxapxapxapxapxazUapxaaPaaPaaPaaPannanfaxFapHajSaaaayAazVazWazVayAazXazXazXazYazYazYazYazZazYazYaAaaAaaAaaAaaAbaAaaAcahSaaPayJaAdaAeaAfaAgaAhayJaaaavsaAiaAiaAjavsaaaaaaaAkaAlaAmaAnaiZaAlaAoaAnaiZaAlaApaAnaiZaAqakSaAraiZakSaAsaAtakSakSaAuaAuaAvaAwaAxaAuaAuaAyaiZaiZaiZaiZaiZarIazpaAzaAAaABazpatiatiatiatiaACaADaAEaxbaxcatiatiatiamTaAFaqHapraqIaqIaAGaqIayxayxayxayxayxaAHaAIaAJaAKaALaAMaALaANaAOaAPaAQaARazQaASazQaATaAQaAPaAOazTazNaaPaaPaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapyaaPaaPaaPapxapxapxapxaqWapxapxapxaAUapxapxapxapxaaPaaaaaPajSawsaxFaoxannaaaayBaAVaAWaAVayBazXaAXaAYazYaAZaBaaBbaBcaBdazYaBeaBfaBgaBhaBiaAaaAcahSaaaayJaBjaBkaBlaBmaBnayJaaaavtaBoaAiaBpavsaBqaBraczaBsaBtaBuaiZaBvaBtaBuaiZaBwaBtaBuaiZaBxaByaBzaiZaBAaBBaBCaBDaBEaAuaBFaBGaBHaBIaBJaBKaAyaBLaBMaBNaBOaBPaBQazpaBRaBSaBTazpaBUaBVaBWatiaBXaBYaBZaCaaCbaCcaCdaCeazFaCfayxayxayxayxayxayxayxaCgaChaCiaCjaCkaClaCmaCnazNazNazNaaPapxaCoaCpaAOaAOaAOaAOaAOaCqaCoaAOaAOazNazNazNaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPapxapxapxapxapxapxapxaaPapxaaPaaPapxapxaaPaaPannannaCraxFannannaaaayAaAVaAVaAVaCsaCtaCuaCuaCvaCwaCxaCyaCzaCAaCBaCCaCDaCEaCFaCGaAaaAcahSaaaayJaCHaCIaCJaCKaCLayJaaaavsaCMaAiaAiaCNaCOaCPaczaCQaBtaCRaiZaCQaBtaCSaiZaCQaBtaCTaiZaCUaCVaCWaiZaCXaCYaCZaDaaDbaAuaDcaDdaDeaDfaDgaDhaAyaDiaqvaqvaqvaDjaDkazpaDlaDmaDnazpaDoaDpaDpaDqaDraDsaDtatiatiatiatiatiamTaDuayxaDvaDwaDxaDyaDzaDAaDBaDCaDCaDCaDCaDDaDEaDFaDGaDHazNaDIaaPaaPaaaaaaaaaaaPaaPaaaaaaaaPaaPaaaaaaazNaDJaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaaaaaapxapxapxapxapxaaPaaPaaPapxapxapxabcaaaaaPaaPaaPaaaannanfanfaDKajSaaaaaaayBaAWaAWaAWayBazXaDLaDMaDNaCwaCuaDOaDPaDQazYaDRaDSaDTaDUaDVaAaaAcahSaaPayJaDWaDXaDYaDZaEaayJaaaavsaEbaEbaEbavsaBqaEcaczaEdaEeaEfakQaEdaEeaEfakQaEdaEeaEfakQaEgaEhaEiakQakQaAsaEjakQaEkaAuaElaEmaEnaEoaEpaEqaAyaErahSahSahSaEsahSazpaEtaEuazpazpaEvaEwaExaEyaEzaEAaEBaxbaECaEDauJatiaEEaEFayxaEGaEHaEIaEIaEJaEKaAIaELaEMaENaENaENaEOaEPaEQaERaESaaPaETaEUaEVaEUaEUaEVaEUaEUaEVaEUaEUaEWaEXazNaDJaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaEYaEYaEYaEYaEYaEYaEYaEYaEYaEYaEYaxFannannaaaayAaEZaFaaFbayAazXazXazXazYaFcaCuaFdaDPaFeazYaFfaFgaFhaFiaFjaAaaAcahSaaaayJaFkaFlaFmaFnayJayJaaaavsaFoaFoaFoavsaBraFpaBraFqaFraFqaFsaFqaFraFqaFtaFqaFraFqaFuaFvaFwaFxaFyaFzaFAaFBakQawXaAyaFCaFDaFEaFFaFGaFHaAyaFIazpaFJaFKaFLaFMaFMaFNaFOaFPaFQaFRaFSaFTaFUaFVaFWavUaFXaFYaFZaGaatiaGbaxsayxaGcaGdaGeaGfaGgaGhaGiaGjaGkaGlaGlaGlaGmaGnaEQaERaESaGoaGpapxaGqapxapxaGqapxapxaGqapxapxaGraGoazNaDJaaPaaPaaaaaaaaaaaaaaaaaaaaaaayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaPaaaaaaaaPaaPaaaapxaEYaGsaGtaGtaGtaGtaGtaGtaGtaGuaEYaGvaGwannaaaayAayAaGxayAayAaaPaaPaaPazXaGyaGzaGAaGBaGCazYaGDaGEaGFaGGaGHaAaaAcahSaaaaaPaaaaGIaGJaGKaaaaaPaaaaBraBqaBqaBqaBraBraGLaGMaFwaGNaGOaGPaGQaGRaGRaGSaGRaGTaGQaGUaGVaGWaGXaGYaGZaHaaHbakQawXaAyaAyaHcaHdaAyaHeaAyaAyaErazpazpazpaHfaHgaHhaHiaHjaHkaHlaHmaHnaHoaHpaHpaHqaHratiatiatiatiatiaHsaHtayxaHuaHvaHwaHxaHyaHzaHAaHBaHCaHDaHEaHFaHGaHHaEQaERaESaESaGpaHIaaaaaaaaaaaaaHIaaaaaaaHIapxaGraaPazNaHJaaPaaPaaPaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaPaaaaaaaaaaaPaaaaaaaEYaHKaHLaHLaHLaHLaHLaHLaHLaHMaEYaxyaHNannaaaaaaaaaaaaaaaaaaaaaaaaaaPazXaHOaHPaHQaHRaHSazYaHTaHUaAaaAaaAaaAaaHVahSaHWaHXaHYaHZaIaaIbaIcaIdaHWaBraIeaIfaIfaIgaIhaIiaIjaIkaIlaImaInaIoaIpaIqaIraIpaIsaItaIuaIvaIwaIxaIyaIzaIAaIBakQawXaICaAyaIDaIEaAyaIFaIGaqxaIHazpaIIaIJaIKaILazpaIMaINaIOazpaIPaIQaIRaISaIRaITaIUaIVaIWaIXaIYatiaIZaJaayxaJbaJcaJdaJeaJfaDAaJgaJhaHCaJiazNazNaJjaHJazNaESaESaESaGpaaaaaaaaaaaaaaaaJkaaaaaaaaaaJlaJmaaaazNaDJaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaPaEYaHKaHLaHLaHLaHLaHLaHLaHLaHMaEYaxFaJnannaaaaJoaJoaJoaJoaJoaJoaJoaaPazYazYazYaJpaJqazYazYaJraJsaJtaJuaJvaJwaJxaJyaJzaJAaJBaJCaJDaJBaJEaJFaJGaBraJHaJIaJJaJKaJKaJLaJKaJKaJKaJKaJKaJKaJKaJKaJLaJKaJMaJNaJOaJPaJQaJQaJRaJRaJRaJRaJRaJQaJSaJQaJTaJTaJTaJTaJUaJTaErazpazpazpaJVaJWazpaJXazpaJYazpaJZaKaaKbaxbaKcaKdaKeaxbaKfaKgaKhatiaKiaHsayxazNazNazNazNazNaDAaKjaKkaHCaKlazNaKmaKnaKoaKpaKoaKqaESaGpaaaaaaaaPaaPaaPaaPaaPaaaaaaapxaGraaaazNaDJaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapyapyapyapyapyapyapyapyapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaPaaaaaaaaaaaaaaaaaaaaaaEYaHKaHLaHLaHLaKraHLaHLaHLaHMaEYaxFapGajSaaaaJoaKsaKsaKsaKsaKsaJoaaPaaPaKtaKuaKvaKwaKxaKyaKzaKAaKBaKCaKDaKEaKFaKGaJwaKHaKIaKJaKKaKLaKMaKNaKOaKPaKQaKRaKSaKTaaaaaaaaaaaPaaaaaaaaaaaPaaaaaaaaaaKUaKVaKWaKXaJQaKYaKZaLaaLbaLcaLdaLeaLfaLgaJQaLhaLiaLjaLkaLlaJTaLmazpaLnaLoaHgaJWazpaLpazpaLqazpaLraLsaLtaLuaLuaLuaLuaLuaLuaLuaLuaLuamTaLvayxaLwaLxaLyaLzazNaLAaGdaKkaLBaLCaLDaLEaLFaLGaLHaLIaLJaESaGpaHIaaPaaPaLKaLLaLMaaPaLNaaaapxaGraaPazNaDJaaPaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapyaaaaLOaLOaLOaLOaLOaaaapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaaaaaaaaaaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaEYaHKaHLaHLaLPaLQaLRaHLaHLaHMaEYaxFapGannaaaaJoaKsaKsaKsaKsaKsaJoaLSaKtaKtaLTaLUaLVaLVaLWaLXaLYaLZaMaaMbannaMcannannannannaMdaMeaMfaMgaMhaMfaMeaMeaMeaMeaMiaaaaaaaMjaMjaMjaMjaMjaMjaMjaaaaaaaJKaMkaMlaMmaMnaMoaLeaMpaMqaMraMsaMtaMuaMvaJQaMwaMxaMyaMzaMAaJTaMBazpazpazpaMCaMCazpazpazpazpazpaMDaMEaMFaLuaMGaMHaMIaMJaMKaMLaMMaLuaMNaEFayxaLxaLxaMOaMPaMQaEHaMRaMSaMTaMUazNaMVaMWaMXaMYaMZaNaaNbaNcaaaaaaaaPaNdaNeaNfaaPaaaaaaaJlaJmaGoazNaNgaaPaaPaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapyapyapyapyapyapyapyaNhaNiaNjaNkaNjaNlaNmapyapyapyapyapyapyapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaPaEYaHKaHLaHLaHLaHLaHLaHLaHLaHMaEYaxFaNnannaaaaJoaKsaKsaKsaKsaKsaNoaNpaNqaNpaNraNsaNtaNuaNvaNwaNxaNyaNzaNAaNBaNCaNDaNEaNFaNEaNGaMeaNHaNIaNJaNKaNLaNMaNNaNOaNPaNQaNRaNRaNSaNTaNUaNVaNWaNXaNXaNYaNZaOaaItaKXaJQaObaLeaOcaLeaOdaLeaOeaLeaLeaJQaOfaOgaMyaOhaOiaJTaOjaOkaOlaOmaOnaOoaOpaOqaOraOsaOtaOuaOvaOwaLuaOxaOyaOyaOyaOzaOAaOBaLuaOCaEFayxaODaODaOEaLHaMQaHvaOFaOGaOHaOIaOJaOKaOLaOMaONaOOaOPaESaGpaaaaOQaaPaORaOSaOTaaPaaPaHIapxaGraaPazNaDJaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapyaaaaLOaLOaLOaLOaOUaOVaOWaOXaOYaOXaOZaPaaOUaLOaLOaLOaLOaaaapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPbaaaaaPaaPaEYaHKaHLaHLaHLaHLaHLaHLaHLaHMaEYaxFawtannaaPaJoaKsaKsaKsaKsaKsaPcaPdaPeaPdaPfaNsaPgaPgaPhaPgaLYaPiaPjaPkannannannannannannaxFaMeaPlaPmaPnaPoaPpaPpaPpaPqaMiaaaaMjaPraPsaPsaPsaPsaPsaPtaMjaaaaJKaPuaJNaJOaJQaPvaPwaPxaLeaPyaLeaPzaPAaLeaPBaPCaPDaPEaPFaPGaJTaPHaPIaPJaPJaPJaPKaPLaPLaPMaPMaPNaPOaPPaPQaPRaPSaPTaPTaPTaPUaPVaPWaLuaPXaEFayxaODaPYaPZaQaazNaQbaGdaQcaHCaQdazNaQeaQfaQgaQgaQgaQhaESaGpaaaaaaaaPaaPaaPaaPaaPaaaaaaapxaGraaaazNaDJaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapyaQiaQjaQkaQkaQkaQkaQkaQlaQlaQmaQlaQlaQnaQnaQnaQnaQnaQoaQpapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQqaQraQqaaaaaPaEYaHKaHLaHLaHLaHLaHLaHLaHLaHMaEYaxFalSannaaPaJoaKsaKsaKsaKsaQsaJoaLSaKtaKtaQtaNsaQuaQvaQwaQxaQyaQzaQAaQBaQCaQDaQEaQFaQGannaQHaMeaQIaPmaQJaQKaQLaQLaQMaQNaMiaaaaQOaQPaPsaQQaQRaQSaPsaQTaQOaaaaJKaJMaJNaJOaJQaQUaQVaQWaQXaQYaQXaQZaRaaRbaJQaRcaRdaReaRfaRgaJTaRhaRiaRjaRkaRlaRmaRnaRoaRpaRqaRraRsaRtaRuaRvaRwaRxaRyaRzaRAaRBaRCaLuaqHaEFayxazNazNazNazNazNaDAaRDaREaRFaRGazNazNaJjaHJazNaESaESaESaGpaaaaaaaaaaaPaaaaaaaaaaaaaaaaJlaJmaaaazNaDJaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapyaNhaRHaRIaRJaRJaRJaRJaRJaRJaRKaRJaRJaRJaRJaRJaRJaRLaRHaNmapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacvaQqaRMaQqacxaaPaEYaRNaROaROaROaROaROaROaROaRPaEYaxFaRQannaaaaJoaKsaKsaKsaKsaKsaRRaPdaRSaPdaPfaNsaPgaPgaPhaPgaLYaLZaRTaRUaRVaRWaRXaRYaRZannaSaaSbaScaPmaPmaSdaSeaPmaSfaSgaMiaaaaShaSiaSjaSkaSlaSkaSjaSmaSnaaaaJKaJMaSoaSpaJQaSqaSqaSqaSqaSraSqaSqaSsaSqaJQaJTaStaSuaSvaJTaJTaSwaRiaRkaRlaSxaSyaRiaRjaRlaRlaRkaSzaSAaSBaSCaSDaPTaPTaSEaPUaSFaSGaLuaSHaSIayxaSJaSKaSLaSMaSNaSOaGdaQcaHCaSPaSQaSRaSSaSTaEQaERaESaESaGpaHIaaaaaaaHIaaaaaaaaaaaaaHIapxaGraaPazNaHJaaPaaPaaPaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapyaNhaRHaNmaaaaaaaaaaaaaaaaaaaRKaaaaaaaaaaaaaaaaaaaNhaRHaNmapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaesaQqaSUaQqaesaaaaEYaSVaSVaSVaSVaSWaSVaSVaSVaSVaEYaxFanfannaaaaJoaKsaKsaKsaKsaKsaSXaSYaSZaSYaTaaNsaPgaTbaTcaTdaTeaTfaLYaTgaThaTiaTjaTkaTlannaTmaMeaTnaPmaPmaToaTpaTqaSfaTraMiaaaaMjaTsaTtaSjaTuaPsaTvaTwaMjaaaaJKaTxaMlaMmaTyaTzaTAaTAaTAaLgaTAaTAaTBaTCaJQaTDaTEaTFaTGaTHaTIaTGaTJaTKaTKaTLaTMaTNaTOaTPaTQaTRaTOaTSaTTaLuaTUaTVaTWaTXaTYaTZaUaaLuaUbaUcayxaUdaUeaUfaUgaUhaUiaUjaUkaUlaUmaUnaUnaUoaUpaEQaUqaESaGoaGpapxaUrapxapxaUrapxapxaUrapxapxaGraGoazNaDJaaPaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapyapyaNhaRHaNmaaaaaaaaaaaaaUsaUsaUtaUsaUsaaaaaaaaaaaaaNhaRHaNmapyapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaPaaaaUuaUvaUwaUvaUuaaPaEYaUxaUyaUyaUzaUAaUBaUyaUyaUCaEYaxFaUDajSaaaaJoaKsaKsaKsaKsaKsaJoaLSaKtaKtaUEaNsaPgaPgaPhaPgaLYaTfaUFaUGaThaUHaUIaUJaUKannaxyaMeaULaUMaUMaUNaUOaPmaSfaUPaMiaaPaMjaMjaMjaUQaURaUSaMjaMjaMjaaPaJKaMkaUTaJOaUUaUVaTAaTAaTAaUWaTAaTAaUXaLgaUUaOnaUYaUZaVaaRjaVbaRjaRiaRkaRjaVcaRjaVdaRkaRlaRjaRlaRkaVeaVfaLuaVgaVhaViaVjaVkaMLaOBaLuaVlaEFayxaVmaVnaVoaVpaVqaVraVsaVtaVuaVvaVwaVwaVxaVyaEQaERaESaaPaVzaEUaVAaEUaEUaVAaEUaEUaVAaEUaEUaVBaVCazNaDJaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapyaaaaOVaRHaNmaaaaaaaUsaUsaUsaUsaVDaVEaUsaUsaUsaaaaaaaNhaRHaVFaaaapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaaaUuaVGaVHaVIaUuaaPaEYaVJaVKaVKaVLaVMaVNaVOaVPaVQaEYaVRaVSannaaPaJoaVTaKsaKsaKsaVTaJoaaPaaPaKtaUEaVUaNtaNuaVVaVWaVXaVYaVZaWaaWbaWbaWbaWbaWbannaWcaWdaWeaWfaWfaWgaWhaWiaWjaWkaWlaaaaaaaaaaMjaMjaWmaMjaMjaaaaaaaaaaKUaKVaWnaJOaWoaWpaLgaWqaWraLgaLgaWsaWtaLgaWoaOnaWuaWvaWwaWxaWyaWxaWzaWAaWBaWCaWxaWxaWxaWxaWxaWxaWDaWEaWFaLuaLuaLuaLuaWGaLuaLuaLuaLuamTaEFayxaWHaWIaWIaSMaWJaWKaWLaWMaWNaWOaWPaWQaWRaWSaDGaWTazNaWUaaPaaPaaaaaaaaaaaaaaPaaaaaaaaPaaPaaPaaaazNaDJaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapyaQiaWVaWWaWXaWYaUsaUsaWZaWZaWZaXaaXbaWZaWZaUsaUsaWYaXcaXdaXeaQpapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaaaUuaXfaXgaUuaUuaUuaEYaEYaXhaXhaEYaXiaXjaEYaEYaEYaEYaXkannannaaPaJoaJoaXlaXlaXlaJoaJoaaPaaPaXmaXnaNsaPgaPgaPhaPgaLYaXoaXpaXqaWbaXraXsaXtaXuannaxFaMeaXvaXwaXxaXyaXzaXAaXBaXCaMiaXDaXEaXDaXFaXGaXHaXIaXFaXDaXEaXDaXJaXKaXLaXMaXNaJQaJQaJQaJQaXOaXPaXQaLgaXRaJQaOnaXSaRmaXTaXUaXUaXUaXUamTamTamTaXVaXWaXXaXYaXZaYaaXUaYbaYbamTaYcaxqaxoaYdaxoaYeaxoaYfaxoaxsayxazNazNazNazNaYgaYhaYiaYjaYkaYlaYmaGdaYnaYoazNazNazNaaPapxaYpaYqaAOaAOaAOaAOaAOaAOaYpaAOaYrazNazNazNaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapyaNhaRHaYsaaaaaaaUsaWZaYtaYuaYvaYwaYxaYyaYzaWZaUsaaaaaaaRLaRHaNmapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaaaYAaYBaYCaYDaYEaYFaYCaYGaYHaYHaYIaYJaYKaYLaYLaYMaYNaYOaYPannaaaaaaaYQaYRaYRaYRaYSaaaaaPaXmaYTaUEaNsaYUaPgaYVaYWaLYaYXaYYaYZaZaaZbaZcaZdaZeannaxFaMeaMeaMeaMfaMfaZfaMiaZgaZhaMiaZiaZjaZkaXFaZlaZmaZnaXFaZoaZpaZqaZraZsaZtaZuaZvaZwaZxaZyaJQaJQaWoaZzaWoaJQaJQaVbaZAaZBaVbaZCaZDaZEaZFaZGaZHamTamTamTamTaZIamTamTamTamTamTamTaEFaqHaqIaZJaZJaZJaZJaZJaZJaZJaZKaZLaZMaZNaZKaZOaZPaZKaZQaZRaDAaDAaZSaZTaZUaALaZVaALaZWaAOaZXaAQazPazQaZYazQazSaAQaZXaAOazTazNaaPaaPaaPaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapyaNhaRHaNmaaaaUsaUsaWZaZZbaababbacbadbaebafaWZaUsaUsaaaaNhaRHaNmapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaPaaabagbahbaibaibajbaibaibaibakbalbalbambanbanbanbaobapbaqbarannaaaaaaaaPaaPaaaaaaaaPaaPaaPaXmbasaUEaNsbataPgbaubavbawbaxbaybazbaAbaBbaCbaDbaEannbaFbaGbaHbaIbaJbaKbaLbaMbaNbaObaPbaQbaRbaQbaSbaTbaUbaVbaWbaQbaXbaYbaZbbabbbbbcbbdbbebbfbbgbbgbbgbbhbbibbgbbgbbjbbgbbkbblbbgbbgbbgbbmbbnamTaIZbbobbpbbqbbrbbsbbrbbtbbrbbubbvaYfaxsauLaqIaZJbbwbbxbbybbzbbAbbBaZKbbCbbDbbDbbEbbDbbFaZKbbGaYkbbHbbIbbIbbIbbIbbIazOazNaARazQbbJazQaATazNazNazNaARazQaATazTazTazNaaPaaaaaaabcaaQabcaaPabcaaQaaQabcabcaaQaaQaaQabcapyapyapyapyapyaNhaRHaNmaaaaUsaWZaWZbbKbaaaWZbbLaWZbbMbbNaWZaWZaUsaaaaNhaRHaNmapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaPbagbagbbObagaUubagbbPbagbahbaibaibbQbagbbPbagbbRbbSbbTbbUannannannannajSajSajSannannannaXmbbVbbWbbXbbYbbYbbZaPgbcabcbbccbcdaWbaWbaWbaWbbceannannbcfannannbcgbchbcibcjbckbclbcmbcjbcnbcobcpbclbcqbcjbcjbcjbcrbcsbctbcubcvbcwbcxbcybcjbcjbcjbcjbczbcAbcjbcjbcmbcBbcCbcjbcjbcjbcjbcDbcEbcFbcFbcFbcGbcFbcFbcFamTbcHamTaEFamTamTbcIbcIbcIbcIbcJbcKbcKbcLbcMbcNaZKbcObcPbcQbcRbcSbcTaZKbcUbcVbcWbbIbcXbcYbcZbdaazNazNazNazNazNazNazNazNbdbazNazNazNazNazNazNazNaaPaaPaaaaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaapyaNhaRHaNmaaaaUsaWZbdcbddbdebdfbdgbdhbdibdjbdkaWZaUsaaaaNhaRHaNmapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaabagaaPaaaaaPaaabagbdlbagbdmbdmbdnbdobagbdlbagbagaUubdpbdqbdratGatHbdsatHatQatHbdtbduatIbdvbdwbdxbdybdzbdAbdBbdCbdDbdEbdFbdGbdEbdHbdIbdJbdKbdLbdMbdNbdObdPbdQbdRbdSbdTbdTbdUbdVbdWbdXbdYbdZbeabebbebbebbebbebbebbebbecbedbeebeebeebeebeebeebeebeebefbegbehbeibeebejbefbeebeebekbelbembcFbenbeobepbeqberbcFbesbetamTbeuamTaaabcIbevbewbcIbexbeybezbeAbeBbeCaZKbeDbeEbeFbeGbeHbeIaZKbeJbeKbeLbbIbeMbeNbeObdabePaLHbeQbeRaLHbeSbeQaLHaLHbeTbeQbeUbeVaOPbeVadKadKaaPabcabcapyapyapyapyabcapyapyapyapyabcapyapyapyasiapyapyapyaNhaRHaNmaaaaUsaWZaWZbeWbaaaWZbeXaWZbbMbeYaWZaWZaUsaaaaNhaRHaNmapyapyapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaPaaPaaPaaPaaPaaabagbbPbagbagbagbagbagbagbbPbagaaaaUubeZbfabfbbfbbfbbfbbfbbfbbfbbfbbfcbfdbdEbdEbfebffbfebdEbdEbdEbfgbdEbfhbfibfjbfkbflbfmbfnbfobfpbfqbfrbdPbfsbdRbftbfubfubfvbfubfwbfubfxbfybfxbfzbfzbfzbfzbfzbfzbfzbfzbfzbfzbfzbfzbfzbfzbfzbfzbfzbfAbfAbfBbfAbfAbfAbfAbfAbfAbfCbdRbfDbcFbfEbfFbfGbfHbfIbcFbfJbfKamTaEFamUaaabfLbfMbfNbfObfPbfQbfRbfSbfTbfUaZKbfVbfWbfXbfXbfYbfZaZKbgabgbbgabbIbgcbgdbgebdabeSbgfbggbghaDAaDAaDAaDAaDAaDAaESaDAaDAbgiaDAaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaaaaPaaaaaaapyaaaaOVaRHaNmaaaaUsaUsaWZbgjbaaaWZaWZaWZbbMbafaWZaUsaUsaaaaNhaRHaPaaLOaaaapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabgkbglbgmbglbgnbglbglbgnbglbgmbglbgkaUubeZbgobgpbgqbgrbgsbgtbgubgvbfbbgwbgxbgybgzbgAbgBbgAbgBbgCbgBbgDbdEbgEbgFbgGbgHbgIbgJbgKbgLbgMbgNbgObgPbgQbgRbgSbfubgTbgUbgVbgWbfubgXbgYbgZaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPbfAbhabhbbhcbhdbhebhfbhgbfAbhhbhibhjbcFbhkbhlbhmbhnbhobcFamTamTamTbhpamTaaabcIbhqbhrbcIbhsbhtbhubhvbhwbhxaZKbhybhzbhAbhBbhCbhDaZKaDAbhEaDAbbIbhFbhGbhHbdabhIbhJbhJbhKbhKaaaaaPaaPaaPaaPaaPaaPaDAbeVaDAaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaaaaPaLOaLObhLbhMbhNbhOaWXaWYaUsaUsaWZaYtbaabhPbhQbhRbhSaYzaWZaUsaUsaWYaXcbhTbhUbhVaQpaaQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabgkbglbglbglbhWbhXbhYbhZbiabibbicbidbhXbglbiebagbeZbfabifbigbihbiibijbikbilbimbinbiobipbiqbiqbirbisbitbdEbdEbdEbdEbiubivbiwbixbiybfebizbfobfpbiAbiBbiCbiDbdRbiEbfubiFbiGbiHbiIbiJbiKbiLbiMaaPaaPbiNbiObiPbiQbiRbiSbiObiQbiRbiSbiPbiPbiTaaPaaPbfAbiUbiVbiWbiXbiWbiYbiZbfAbjabdRbjbbjcbcFbjdbjebjfbcFbcFbjgbjhamTbjiamTbjjbcIbcIbcIbcIaZJaZJaZJbjkbjlaZJaZKaZKaZKaZKaZKbjmbjnaZKbjobjpbjobbIbjqbjrbjsbdabjtbjubjvbjwbjwbjwaaaaaPaaaaaaaaaaaPaaPadKaaPaaPaaaaaaaaaaaaaaaaayaaaaaaaaaaaaaaaaaaaaaaaPaaPaaPadKbjxbjybjzbjAbjBaYsaaaaaaaUsaUsaWZbjCbjDbabbjEbjFbjGbjHaWZaUsaUsaaaaaabjIbjJaRHaNmapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabglbjKbjKbglbhXbjLbjMbjLbjMbjLbjMbjLbhXbjNbjObagbeZbjPbfbbjQbjRbjSbjTbjUbjVbfbbjWbjXbjYbjZbkabkbbkcbkdbkebkfbkgbkhbkibkjbkkbklbkmbknbkobkpbkqbkrbksbktbgQbdRbiEbfubkubkvbkwbkxbfubkybkzbgZaaPaaPbkAbkBbkCbkDbkEbkFbkGbkHbkIbkJbkKbkLbkMaaPaaPbfAbkNbkObkPbkQbkRbkSbkTbfAbkUbkVbkWbkXbkYbkZbkYblablbblcbkYbkYbkYbldbkYbleblfblgblhbkYbkYblibleblabldbljblkblibllblmbhJblnbloblpblqblrblsbltblublvblwblxbjtbjtblyblzblAblBblCaaPaaaaaaaaaaaaaaaadKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaadKbjxbjyblDbjyblEaNmaaaaaaaUsaUsaWZblFblGblHblIblJblKblLaWZaUsaUsaaaaaaaaaaNhaRHaNmapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabgnbhXbhXbgmbhXbjLbjMbjLblMbjLbjMbjLbhXbjNbjObagblNblOblPblQblRblSblTblSbgpbgpblUblVbfgbdEblWblXblYblZbmabmbbmcbdEbmdbmebmabixbmfbdEbmgbmhbmibmjbmkbgPbiDbdRbiEbfubmlbmmbmnbmobfubmpbmqbgZbiRbmrbiRbmsbmtbmubmvbmubmwbmubmvbmubmxbmybiRbmrbiRbfAbmzbmzbmzbmAbmBbmCbmDbfAbmEbmFbmGbmHbmIbmJbmIbmKbmIbmLbmIbmIbmIbmMbmIbmNbmObmPbmQbmIbmIbmRbmSbmTbmMbmUbmMbmVbmWbmXbhJbmYbmZbmZbnabnbbmZbmZbncbndbnebnfbjtbngbjvbjwbjwbjwaaaaaPaaaaaaaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaPaRJaRJbhLbnhbniaNmaaaaUsaUsbnjbnjbnkbnlbnlbnmbnkbnkbnkbnnbnnaUsaUsaUsaaaaNhaRHaNmapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabglbnobnobglbhXbjLbjMbjLbjMbjLbjMbjLbhXbjNbjObagbnpbnqbnrbnsbntbnubnubnvbnwbnxbnybnzbnAbdEbnBbnCbnDbnEbnFbnGbnHbdEbnIbnJbnKbnLbnMbdEbnNbnObnPbnQbnRbdPbnSbhibnTbnUbnUbnUbnUbnUbfxbnVbnWbfxbiRbnXbnYbnZbmvbmvbmvbmvboabmvbmvbmvbmvbobbocbodbiRboebofbogbohboibojbojbokbfAbolbombonboobopboqbopborbopbosbopbopbotbopbopboubovbopbowbotboxboybouborbopbozboAboBboCboDboEboFboGboHboIbneboJboJboKboLboMboNbhJbhJbhJbhJbhKaaaaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPboOboPboQboRboSaesboTboUaVFboVaUsboWboXboYbnkboZbpabpbbpcbpdbnkbpebpfbpgbphaUsaaaaNhaRHaNmapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabgkbglbglbglbpibhXbpjbhXbpkbplbhXbpmbhXbglbpnbagbnpbpobppbpqbprbpsbptbpubpvbpqbpwbpxbpybdEbpzbfebpAbpBbdEbdEbdEbdEbdEbfebpCbpDbdEbpEbgPbpFbpGbgPbgPbpHbcgbdRbpIbnUbpJbpKbpLbnUbpMbpNbpObpPbpQbpRbpSbpTbpUbpVbpWbpXbpYbpWbpWbpZbpUbqabqbbqcbiRbfAbmzbmzbmzbqdbmzbmzbmzbfAbqeaZtbqfbqgbqhbqibqhbqjbqkbqkbqkbqkbqkbqkamTamTbqlamTamTamTbqmbqnamTamTamTbqobqpbqqbqrbqsbqtbqubqvbqwbqxboJbqybqzbqAboLbqBbhJbhJbqCbqDbqEbqFaaPaaPaaaaaaaaPaaaaaaaaPaaaaaaaaaaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaaaPaaaaaabqGbqHbqIaaPbqJbqKbqLbqMbqNbqObqPbqQbqRbqSbqTbqUbqVbqWbqXbqYbqZbqUbrabrbbrcbrdaUsaLOaOVaRHaNmapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabgkbglbrebglbgnbglbglbgnbglbgmbglbgkaUubrfbrgbrhbdPbribrjbrkbrjbrlbdPbrmbrnbrobrpbrqbrrbrsbrtbrubrrbrvbrwbrrbrqbrqbrxbrqbrybrzbrAbrBbrCbrqbrDbrEbrFbiEbrGbrHbrIbrJbnUbgZbgZbgZbgZbiRbrKbrLbrMbrNbrObrPbmvbrQbrRbrSbrTbrNbrUbrVbrWbrXbfAbrYbrZbsabsbbscbmzbsdbfAbseaZtbsfbsgbshbsibsjbqjbskbslbsmbsnbsobspbsqbsrbssamTbstbfJbsubsvbswamTauSbsxamTbsybszbsAblxbsBbsBbsBbsCbsDboJboJbsEbsFbsGbsHbsIbsJbsKbsLbsMbsNbsNbsNbsNbsObsNbsNbsObsNbsNbsNbsNbsPbsNbsObsNbsNbsNbsNbsNbsNbsObsQbsQbsRbsSbsTbsTbsUbsVbsWbsXbsYbsZbtabtbbtcbtdbtebtfbtgbthbtibtjbtkbtlbtmbtnbtobtpbtqbtrbtsbttaQpapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaPaaPaaPaaPaaabagbbPbagbagbagbagbagbagbbPbagaaaaUubtubtvbtwbdPbtxbtybtzbtybtAbdPbtBbtCbtDbtEbtFbtGbtHbtEbtEbtIbtJbtKbtLbtEbtEbtMbtEbtEbtEbtNbtObtPbtPbtQbtRbtSbtTbnUbtUbtVbtWbnUbtXbtYbtZbuabubbrTbucbrObudbuebufbugbuhbugbuibujbukbulbumbunbuobfAbupbuqburbusbutbfAbfAbfAbuubuvbuwbqjbuxbuybuzbqjbuAbuBbuCbuDbuEbuFbuGbuHbuIbuJbuKbuLbuMbuNbuObuPbuQbuRamTbqqbuSbuTbhJbuUbuVbuWbuXbuYbuZbvabvbbvcbvdbhJbhJbvebvfbvgaQpaaPaaaaaaaaaaaPaaaaaaaaPaaaaaaaaaaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaaaPaaaaaabvhbvibvjaaPbvkbvlbvmbvnbvobvpbvqbvrbvsbvtbvubvvbvwbvxbvybvzbvAbvvbvBbvCbvDbvEaUsbjIbvFaRHaNmapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaPbagaaPaaaaaPaaabagaVHbagbvGbvHbdmbvIbagaVHbagbagaUubeZbvJbvKbdPbvLbtybvMbtybvNbdPbvObvPbvQbvRbvSbvTbvUbvVbvWbvXbvYbvZbvSbwabwbbwcbwdbwebwfbvUbwgbvSbvSbwhbwibwjbtTbnUbwkbwlbwmbwnbwobwpbwobwqbubbwrbwsbwtbwtbwtbwubwvbwwbwxbwybwtbwtbwtbwzbwAbiRbfAbwBbwCbwDbwEbwFbfAbwGbwHbwIbwJbuwbqhbwKbwLbwMbqjbwNbwObwPbwQbqkbqkamTamTbwRamTamTamTbwSbwTamTamTbwUbwVamTbwWbuSbwXbhJbwYbwYbwYbwYbwZbwYbwYbxabxbbxcbhJbxdbxebhJbxfbhJaaPaaPaaaaaaaaPaaaaaaaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPbxgbxhboQbxibxjaesaRLboUaRIaRJaUsaUsaUsbxkbxkbxkbxlbxmbxkbxkbxkbxkaUsaUsaUsaUsaaaaNhaRHaNmapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaabagbagbbObagaUubagbbPbagbxnaYCbxobxpbagbbPbagbxqbxrbxsbrgbrhbdPbxtbxubrkbxubxvbdPbxwbxxbxybdPbxzbxAbxBbdPannbxCannbxDbxDbxDbxEbxFbxDbxDbxDbxDbxDbxDbxDbxGbxHbxIbxJbxKbxLbxMbxNbxObxNbxPbxQbxRbxSbxTbxUbxVbxWbxVbxVbxXbxYbxZbwtbwtbyabwtbybbycbfAbydbyebyfbiWbygbyhbfAbyibfxbyjaZtbykbqjbqjbqjbqjbqjbylbymbqkbqkbqkbynbyobqkbypbyqbyramTaxfbysamTbytbyubyvbywbyxbyybyzbyAbyBbyCbyDbyEbyFbyGbwYbyHbyIbyJbyKbyLbyMbyNbyObyPadKaaPaaPaaPaaPaaPaaPaaPaaaaaPaaaaaPaaaaaPaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaaapyaNhboUaNmaaaaaabyQaUsbxkbyRbySbyTbyUbyVbyWbyXbxkaUsbyQaaaaaaaaaaNhaRHaNmapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaabagbyYaYCbyZbzabzbaYCaYCbzcbalbzdbzebzfbzfbzfbzgbzhbzibzjbzkbzlbzmbznbzobzpbzqbzlbzmbzrbzsbztbztbzubztbztapJbzvbzwbxDbzxbzybzzbzAbzBbxDbzCbzDbxDbzEbzFbxDbzGbdRbiEbnUbzHbzIbzJbzKbzLbzMbzNbzObubbzPbzQbwtbzRbzSbzTbmvbmvbycbzUbzVbzWbwtbzXbzYbfAbzZbAabAbbAcbAdbAebAfbAgbfxbhhbAhbAibqkbAjbAkbAlbAmbAnbAobApbqkbAqbArbAsbAtbAubAvbAwamTamTamTamTamTamTbAxamTbAybAzbAAbABbACbACbACbACbACbABbABbACbADbAEbAFbAGbAHbAIbAJbAKbABbABbABaaPaaaaaaaaaaaPaaaaaPaaaaaPaaaabcaaaabcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaaapyaNhboUaPaaLOaaaaaaaUsbxkbALbAMbANbAObAPbAQbARbxkaUsaaaaaaaLOaLOboTaRHaNmapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaabagbahbaibaibASbaibATbAUbAVbAVbAWbAVbAXbAYbAZbBabBbbBcbBdbBebnsbBfbBgbBhbBibBjbBkbBlbBmbBnbBobBpbBqbBrbztbBsbBtapFbxDbBubBvbzzbzAbBwbxDbBxbBybxDbBxbBybxDbBzbhibnTbnUbnUbBAbnUbnUbnUbBBbBCbnUbnUbBDbBEbBFbmvbugbugbBGbBHbBIbBJbBKbBLbBMbBNbBObBPbiWbBQbBRbBSbBTbBUbfAbBVbfxbBWaZtbBXbBYbAnbBZbAnbCabAnbCbbAnbCcbCdbAwbCebCfbCgbChbCibCjbCkbClbCmbCnbCobCpamTbCqbuSbCrbABbCsbCtbCubCvbCwbABbCxbCybCzbCAbCBbCCbCDbCEbCFbCGbCHbCIbABaaPaaPaaPaaPaaPaaPaaPaaaabcaaabCJaaabCKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaaapyaQibCLbCMbCNaWXaWYaUsbxkbCObCPbCQbCRbCSbCTbCUbxkaUsaWYaXcbCVbhUbhUbCWaQpapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaPbagbagaUubagbbObagaUubagbagbagaUubagaUuaUuaUublNblOannbCXannannbCYbCZbCYbDabCYbCYbCYbCYbztbztbDbbDcbztbztbztaGvanfbxDbDdbDebzzbDfbDgbxDbDhbxDbxDbDibxDbxDbDjbdRbDkbDlbDmbDnbDobDpbDqbDnbDrbDsbDtbycbDubxVbDvbugbDwbDxbDybDzbDAbugbDBbwtbDCbDDbfAbDEbDFbiWbDGbDHbDIbfAbDJbfxbfCaZtbBXbqkbDKbDLbDMbDNbDObDPbDQbDRbCdbAwbDSbDTbAwbCdbDUbDVbDWbDXbDYbDZbCobwVamTbEabEbbEcbEdbEebEfbEgbEhbEibABbEjbEkbElbEmbCBbEnbEobEpbEqbErbEsbEtbABaaPbEubEubEubEubEuaaPaaabCKaaabCJaaabCKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaaapyaaabEvbEwaRHaNmaaaaUsbxkbExbEybEzbEAbEBbECbEDbxkaUsaaaaNhaRHaYsbjIbEEaaaapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaabEFbEGbEGbEHbEGbEGbEGbEIbEGbEGbEJaaPbagbEKbeZbELannbzvawsbEMbCYbENbEObEPbEQbERbESbCYbETbEUbEVbEWbEXbEYbztaGvbEZbxDbFabFbbzzbzAbFcbFdbDebFebFfbDebFgbFhbxHbdRbiEbFibFjbFkbFlbFlbFlbFlbFmbDtbFnbFobFpbiRbiRbFqbFrbFsbFtbFubFvbFqbiRbiRbFwbFobFxbfAbBPbfAbfAbfAbfBbfAbFybFzbFAbFBbBXbFCbAnbFDbFDbFEbFDbFFbFDbBYbCdbCdbFGbCdbCdbAwbFHbFIbFJbFKbFLbFMbCobAxamTbFNbEbbFObFPbFQbFRbFSbFTbFUbFVbFWbFXbFYbFZbCBbGabGbbGcbGdbGebGfbGgbGhbGibGjbGkbGlbGlbEuaaPaaabCKaaabCJaaaabcabcaaPabcaaQaaQabcabcaaQaaQaaQaaQaaQabcaaQaaQapyapyaNhaRHaNmaaaaUsbGmbGmbGmbGnbGobGnbGmbGmbGmaUsaaaaNhaRHaNmapyapyapyapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabEFbGpbGqbGrbGsbGsbGsbGsbGsbGsbGsbEHbGtbagbagbeZbGuannbGvbGwbGxbCYbGybEObEPbGzbGAbGBbCYbGCbGDbGEbGFbztbztbztaGvarfbxDbGGbGHbzzbzAbGIbGIbGIbGIbGIbGIbGIbGJbGKbGLbGMbGNbGObGPbGObGQbGObGPbGRbGObGSbGTbGUbGVbGWbGXbGYbGYbGZbHabGYbHbbHcbHdbHebHfbHgbGXbHhbHibGXbHjbHkbGXbHlbHmbHnbHobHpbHqbAnbHrbAnbHsbAnbHtbAnbHubCdbCdbHvbCdbCdbHwbHxbFIbHybHzbFLbHAbCobAxamTbHBbHCbwXbEdbHDbFRbHEbFRbHFbHGbHHbHIbHJbHKbCBbHLbHMbHNbHObHPbHQbHRbCBaaPbCBbHSbGlbHTbEuaaPaaabCKaaabCJaaabCKaaaaaaaaPaaaaaaaaaaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaapyaNhaRHaNmaaaaUsbHUbHVbHWbGnbHXbGnbHYbHVbHZaUsaaaaNhaRHaNmapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIabIbbIbbIbbIbbIbbIbbIbbIbbIbbIbbIcbIdbIebIdbeZbIfannbIgbIhalSbCYbIibEObEPbIjbEObIkbCYbztbIlbztbEWbImbInbztbIobIpbxDbIqbFbbIrbIsbItbItbIubGIbGIbGIbGIbGJbxHbIvbIwbIxbIybIzbIybIAbIBbICbIDbIybIEbIFbIGbIHbIIbIHbIJbIJbIKbILbIJbIMbINbIObIPbIQbIRbISbITbIUbIVbIWbIXbIQbIYbIZbJabJbbJcbJdbJebJfbJgbJgbJhbJibJebJjbJkbJlbJmbAwbJnbAwbJobJpbJqbJrbJsbJtbJubJvamTbJwbJxbJybJzbJAbJBbJCbJDbJEbCBbJFbJGbJHbJIbJJbJKbJLbJMbJNbJObJPbJQbJRbJSbJTbJUbGlbJVbEuaaPaaabCKaaabCJaaaapyapyapyapyapyabcapyapyapyapyabcapyapyapyabcapyaaQapyaNhaRHaNmaaaaUsbJWbJXbJYbGnbGobGnbJYbJXbJZaUsaaaaNhaRHaNmapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabEFbGpbKabKabKbbKbbKbbKbbKbbKbbKbbEHbagbagbagbeZbKcannbKdannannbCYbKebKfbKgbEObEObEObCYbKhbKibztbKjbztbztbztanfaGvbKkbDebDebzzbKlbKmbKnbKobDebKpbDebKqbFhbxHbdRbKrbKsbKtbKubKvbKwbKtbKtbKxbKxbKybKzbKxbKAbDtbKBbKCbKDbKEbKFbKCbKGbDtbKAbKHbKIbKJbKKbKHbKHbKLbKMbKNbKHbKObKPbKQbKRbKSbKTbKUbKVbKUbKWbKXbAnbAnbBYbFGbCdbKYbKZbLabKZbJlbLbbLcbLdbLebLfbCobLgamTbLhbLibLjbAJbLkbLlbLmbLnbAJbAKbLobLpbErbLqbCBbLrbLsbLtbLubLtbLvbLwbCBaaPbEubEubEubEubEuaaPaaabCKaaabCJaaabCKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapybLxbLyaNmaaaaUsbLzbJXbJXbLAbLBbLCbJXbJXbLDaUsaaaaNhaRHaNmapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaabEFbEGbEGbEHbEGbEGbEGbEIbEGbEGbEJaaPbagbLEbeZbLFannaGvarfbLGbCYbLHbEPbLIbLJbLKbLLbCYbLMbLNbztbLObLPbLQbztbLRbLSbxDbLTbLTbzzbzAbLUbLUbFcbLVbLWbLXbxDbxDbLYbLZbKrbKtbMabMbbMcbMdbMebMfbMgbMhbMibMjbKxaaPbFjbMkbKCbKCbMlbKCbKCbMmbMnaaPbKHbMobMpbMqbMrbKHbKHbKHbKHbKHbMsbfxbKQbMtbMubqkbMvbMwbFDbFDbMxbFDbFDbqkbFGbMybCdbCdbCdbCdbCdbMzbMAbMBbMCbMDbCobMEamTbMFbMGbMHbAFbMIbMJbMKbMLbMMbMNbMObMPbMQbMRbMSbMTbMUbMVbMWbMXbMYbMZbNabNbbGjbNcbNdbNdbEuaaPaaPbNeaaPbNfaaPbCKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapyaNhbLyaNmaaaaUsbNgbNhbNibJXbNjbNkbNlbNmbNnaUsaaaaNhaRHaNmapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaPbagbagaUubagbbObagaUubagbagbagaUubagaUuaUuaUubnpbNobNpbNqbNrbNsbCYbNtbNubLIbNvbNwbNxbCYbztbztbztbztbztbztbztaGvapFbxDbNybNzbzzbzAbDebDebNAbDebNBbNCbxDbNDbxHbdRbNEbKtbNFbNGbNHbNIbNJbMfbNKbNLbNMbNNbNOaaPbFjbNPbNQbNRbNSbNQbNRbNTbMnaaPbNUbNVbNWbNXbNYbNZbOabObbOcbKHbOdbfxbOebAhbOfbOgbOhbOhbOibOjbOkbOlbOmbOhbOnbOhbOobOpbOqbOrbOsbCobCobOtbCobCobCobLgbOubOvbOwbOubABbOxbOybOzbOAbOBbAFbOCbODbOEbOFbOGbOHbOIbOJbOKbOLbOMbONbCBaaPbCBbOObOPbOQbEuaaPaaabCKaaabCJaaabORaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapyaNhbOSbOTaWYaUsaUsbOUbOVbJXbOWbNkbOXbOYaUsaUsaWYaXcbOZaQpapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaabagbPabxrbyZbPbbyZaYCaYCbPcaYCbxraYCbPdbxraYCbxsbPeannbPfanfargbCYbPgbPhbEObEObEObPibCYbPjbPkbPlbPmbPnbPoannaGvasvbxDbPpbPqbzzbPrbPsbPsbPtbDebDebPubxDbPvbxHbdRbKrbKtbPwbPxbPybPzbPAbMfbPBbPCbPDbPEbKxbPFbPGbPFbPGbPGbPHbPGbPGbPFbPGbPFbKHbPIbPJbPKbPLbPMbPNbPObPPbKHbPQbfxbPRaZtbMubOhbPSbPTbPUbPVbPWbPXbPXbPYbPZbOhbOhbOhbOhbOhbOhbOhbCobQabQbbQcbCobQdbOubQebQfbQgbOuayxayxayxayxbABbQhbQibQjbQkbQlbQmbQnbQobQpbQqbOLbQrbQsbJRbJSbJTbQtbNdbQubEuaaPaaabCKaaabCJaaabCKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapyaNhbLyaNmaaabyQaUsbQvbJXbJXbQwbQxbQybQzaUsbyQaaaaNhbLyaNmapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaabagbahbaibaibaibaibaibQAbQBbAYbAVbAVbQCbQDbQEbQFbQGannbQHaCrargbCYbEQbQIbEObEObQIbQJbCYbQKapIapKbQLbNsbPnannaGvbQMbxDbQNbQObQPbQQbDebQRbQSbQTbQUbQVbxDaZkbxHbdRbQWbKtbQXbQYbQZbRabMfbMfbRbbRcbRdbRebKxbRfbRgbRhbRibRjbRkbRlbRibRmbRnbRobRpbRqbPJbRrbRsbKHbRtbRubRvbKHbRwbfxbRxaZtbRybRzbRAbRBbRCbRDbREbPUbPUbRFbRGbOhbRHbRIbRJbRIbRKbOhbRLbRMbRNbRObCobLgbOubRPbRQbRRbOubRSbRTbRUbRVbABbQhbRWbRXbACbRYbACbRZbSabSbbFRbOLbScbONbCBaaPbEubEubEubEubEuaaPaaaabcaaabCJaaabCKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapyaNhbLyaNmaaabyQaUsbSdbSebSfbSgbShbSibSjaUsbyQaaaaNhbLyaNmapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaPbagbagbSkbSkbagbagbagaUubagaUubagaUuaUuannbSlannannannbQHasvargbCYbQJbSmbSnbEObSnbSobCYbSpardapGarfbSqaoxannaGvanfbxDbxDbxDbSrbSsbxDbxDbxDbxDbxDbStbxDbxDbBzbhibSubKtbSvbSwbSxbSybSzbMfbSAbSBbRdbSCbSDbSEbSFbSGbSHbSIbSGbSJbSGbSKbSLbSMbRpbSNbPJbSObSPbSQbSRbSSbSTbKHbSUbfxbSVaZtbMubSWbSXbSYbSZbTabTbbTcbSYbRFbTdbOhbTebTfbTgbThbRKbOhbTibTjbTkbTlbTmbTnbOubTobTpbTqbOubTrbTsbTtbTubABbTvbTwbTxbTybRYbTzbTAbFRbQnbTBbTCbTDbMZbNabNbbGjbTEbTFbTGbEuaaPaaabCKaaabCJaaabCKaaaaaaaayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapybLxbLyaNmaaaaaaaUsaUsaUsaUsaUtaUsaUsaUsaUsaaaaaaaNhbLyaNmapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaabagbTHbdlbagaaaaaPaaaaaaaaaaaPaaaaaaannbTIbTJbTKbTLbTMbTLbTNbCYbCYbCYbCYbTObCYbCYbCYbTPaCranfapGbTQbTRannbTSaGwbxDbTTbTUbTVbTWbTXbTYbTZbxDbUabUbbUcbxDbxHbdRbUdbKtbNFbQYbUebUfbNFbMfbUgbUhbUibUjbSDbUkbUlbUmbUnbUobUpbUqbUlbUrbUsbUtbRpbUubUvbUwbUxbUybUzbUAbUBbUCbUDbfxbUEaZtbMubSWbUFbUGbUGbUHbUIbUJbUKbULbUMbOhbUNbTfbUObUPbUQbOhbURbUSbUTbUUbCobLgbOubOubOubOubOubUVaqIaqIbUWbABbTvbTwbTxbUXbUYbTzbUZbOKbVabTBbOLbVbbONbCBaaPbCBbVcbVdbVebEuaaPaaabCKaaabCJaaabCKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapyaNhbLyaNmaaaaaaaaaaaabyQbyQbVfbyQbyQaaaaaaaaaaaaaNhbLyaNmapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaPaaPbagbSkbSkbagaaPaaPaaPaaPaaPaaPaaPaaPannbVgatHatHatHbBtardarganfaoCawsapFbVhbViasvannannannannannbVjannannaGvarfbxDbVkbVlbVmbVmbTWbVnbVobxDbVpbVqbVrbxDbzGbdRbVsbKtbNFbVtbVubVvbNFbMfbVwbVxbVybVzbSDbVAbVBbVCbVDbVEbVFbVGbVHbVIbVJbVKbRpbVLbVMbVNbVObPMbVPbVPbVQbKHbVRbfxbVSaZtbMubOhbVTbVUbVVbPUbVWbVXbRDbVYbVZbWabWbbWcbWdbWebWfbOhbCobCobCobCobCobWgamTbWhbWiarYaqIbWjauLbWkaqIbABbABbWlbLpbTybRYbWmbWnbFRbQnbTBbOLbWobQsbJRbJSbJTbWpbTFbWqbEuaaPaaabCKaaabCJaaabCKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapyaNhaRHaNmaaaaaaaaaaaaaaaaaaaRKaaaaaaaaaaaaaaaaaaaNhbLyaNmapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWrbWrbWrbWsbWrbWsbWrbWrbWrbWsbWsbWrbWrbWtbWubWrbWrbWsbWsbWrbWraaaaaaaaaannannannannbTRbWvatHbWwbWxbWybWzbWzbWzbWAbWBbWzbWxbWCbWDbWzbWEbIpanfaGvbWFbxDbWGbWHbWIbWJbFbbWKbWLbxDbxDbxDbxDbxDbWMbdRbKrbKtbKtbWNbWNbWObKtbKvbKxbWPbWQbKxbKxbWRbWSbWTbPGbWRbWRbWRbPGbWUbWSbWRbKHbKHbKHbKHbKHbKHbWVbWVbWVbKIbWWbfxbWXaZtbWYbWZbXabXabXabXbbXabXabXcbXdbXabXabXabXabOhbXebXfbXgbXhbXibXjaqIbXkbXlamTbTtbXmbXnaqIbXoaqIaqIaprbABbXpbHHbXqbACbRYbACbXrbFRbQnbXsbOLbScbONbCBaaPbEubEubEubEubEuaaPaaPbORaaPbNfaaPabcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapyaNhaRHaPaaLOaLOaLOaLOaLOaLObXtaLOaLOaLOaLOaLOaLOboTbLyaNmapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXubWrbWrbXvbXwbWrbXxbXybWrbXzbXAbXAbXBbXCbXDbXEbWrbXFbXGbXHbXIbWraaaaaaaaaaaaaaPaaabXJbXJbXKbXLbXJannbXMannannannaVRbXNbXNbXNbXNbXNbXNbXNbIobWAbLSbXObxDbXPbXQbXRbXSbFbbTWbXTbXUbXVawsannbXWbxHbXXbXYbXZbYabYbbYbbYbbYcbYdbYebYbbYbbYfbYgbXZbXZbYhbYibYjbYjbYkbYjbYlbYmbYmbYnbYobYpbYqbYrbYsbYbbYbbYbbYcbYtbYmbYuaZtbYvbYwbYxbYybYzbYAbYBbYCbYDbYAbYEbYFbYGbYHbOhbYIbYJbYKbYLbYMbYNbYObXlbYPamTamTamTamTamTbYQbYRbABbABbABbYSbHHbLpbYTbYUbYVbHLbYWbYXbYYbYZbZabMZbNabNbbGjbZbbZcbZcbEuaaPaaabCKaaabCJaaabCKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapyaQibZdaQkaQkaQkbhUbhUbZebZebZfbZebZebhUbhUbhUbhUbhUbZgaQpapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabZhbZibWrbWrbZjbWrbZkbZlbWrbZmbZnbXEbZobZpbZobZqbZrbZsbZtbZtbZubWsaaaaaaaaaaaaaaPaaabXJbZvbZwbZxbXJapGbZybNsbZzannbZAbXNbZBbZCbZDbZEbZFbXNanfbZGanfanfbxDbxDbxDbxDbxDbxDbxDbxDbxDavfanfannbZHbxHbZIbZJbcjbcjbcjbcjbcjbcjbcmbcjbZKbZLbZMbclbcjbcjbZNbZObZPbZQbZRbZSbZTbcjbcjbcjbZUbZVbcjbcjbcmbcjbcjbcjbcjbZWbcjbZKbZXbZYbZZcaacabcaccabcadcadcaecafcagcadcaccahbOhbOhbOhbOhcaicajaqHaprcakcalaqHcalcamcanamTawfamTbABcaocapcaqcarcascatbJIcatbJKbFRcaubOKbOLcavbONbCBaaPbCBcawcaxcaybEuaaPaaabCKaaabCJaaabCKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapyaaabEEbjIbjIbjIbEEbEwaOWcazcaAcazaOZaYsbEEbjIbjIbjIbEEaaaapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabZhbZibWrcaBcaCbWrcaDcaEbWrcaFcaGbZocaHbWrbXEbZobWrcaIbZtcaJcaKbWraaaaaaaaaaaaaaPaaPbXJcaLcaMcaNbXJapGcaOcaPannanncaQbXNcaRcaScaTcaUcaVbXNcaWcaXbWzbWzbWxbWzbWDbWzcaYcaZcbacaZcaZcbbbaHcbccbdcbecbfcbgcbhcbicbjcbgcbgcbgcbkcbgcblbbfcbmcbnbbfbbfcbocbpcbqcbrcbscbtcbubbfbbfcbvcbwcbxcbxcbycbzcbycbycbycbAcbBcbCcbDcbEcbFcbGcbHcbIcbJcbKcbLcbMcbNcbOcbPcbQcbNcbRbXacbScbTbXacbUcajaqHaqHaqHaqHaqHcbVcbWcbXcbYcbZccaccbcccccdcceccfccgcchcciccjccjccjcckcclccmccnbQsbJRbJSbJTccobZcccpbEuaaPaaabCKaaabCJaaabCKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapyapyapyapyapyapyapyaNhccqaQlccraQlbCWaNmapyapyapyapyapyapyapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabZhbWrbWrbWrccsbWrcctccubWrbWrbWrbZpbWrbWrccvccvbWrbWrccwbWrbWrbWrbWsbWsbWraaaaaPaaabXJccxccycczbXJccAapGccBannccCccDbXNccEccFccGccHccIbXNbXNbXNbXNbXNbXNccJbXNbXNccKccLccManfaCrccNasvccOccOccOccOccOccOccOccPccPccPccPccPccQccRccRccSccTccRccUccRccVccWaZtccXccYccZcdaccZcdbcdcccZccZcddbWZaZiaZkaZkcdebWZcdfbWZcdgcdhcdgbXacdicdjcbOcdkcdlcbNcbOcdmcdncdocdpbXacdqcdrbXacdscdtcducbXcbXcbXcbXcdvcdwcdxcdyaqIawebABcdzbErbFRcdAcdBcdCbMSbMScdDbMScdEbQqbOLbSccdFbABaaPbEubEubEubEubEuaaPaaabCKaaabCJaaabCKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapyaaabjIbjIbjIbjIbjIaaaapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWrbWsbWrcdGbZocdHcdIcdJbZobZocdKbWrbXEbZobZobZobXEbZobZobZobWrcdLcdMcdNcdObWsaaaabcaaabXJcdPcdQcdPbXJannannannannbXNcdRbXNcdScdTcdUcdVcdWbXNcdXcdYcdZbXNceacebcecbXNcedbXNbXNbXNbXNbXNbXNccOceecefcegcehceicejccPcekcelcemccPcenceocencepceqcenceocencercescetceucevcewcexcewceycezcewcexcewceAceBceBceBceBceBceCbWZceDceEceFbYxceGcaccbOcbQcbQcbNceHcbQcbQcbNceIbXaceJceKbXacaiceLceMceMceMceNceMceMceOcePceQceRceRbABceSceTbFRcdAbQnceUceVceVceWceXceWceVceYceZbONbABaaPaaPaaPaaPaaPaaPaaPaaPbNeaaPbNfaaPbORaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapyapyapyapyapyapyapyapyapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWrcfabWrcfbbZocfccfdcfdcfdcfebZobWrbZocfccfecdJbZocfccfcbZobWrcffbXEbZocfgbWsaaaapyaaaaaacdPcfhcdPaaaaaPaaaaaaaaabXNcdRbXNbXNbXNbXNcfibXNbXNcfjcfkcfjbXNbXNbXNbXNbXNcflcfmbXNcfncfocfpcfqcfrcfscftcfucftcfvcfwcfxcfycfzcfAcfBcfCcfDcfEcfFcfGcfHcfIcfJceocfKcfLcfMcexcfNcfOcfPcfQcfRcfScfTcfUcfVceBcfWcfXcfYceBcfZbWZcgacgbcgccgdcgecgfcggcghcgicgfcggcghcghcgfcgjcgkcglcgmcgncgocajaqHcgpcgqceRceRceRceRcgrcgscgtcgubABcgvcgwcgxcgycgzcgAcgBcgCcgDcgEcgFcgGcgHcgIbONbABbABbABaOUaLOaOUaLOaOUaaabCKaaaaaPaaabCKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWubXEcgJbXEbZocgKcgLcgMcgNcgObXEcgPbZocgQcgRcgScgTcgUcgVbXEcgWbZobZocgXcgYbWsaaaabcaaPaaPcdPcdQcdPaaPaaPaaPaaPaaPbXNcgZchachbbXNchcchdchebXNchfchgchhchichjccIchkbXNchlchmchnchochpchqchrchschtchuchvchwchxchychzccPchAchBchCchDchEchFchGchHchIchJchKchLcfKcfLcfMchMchNchOchPchQchRchSchSchTchTchUchVchWchXceBchYbWZchZciacibbYxciccidciecifcigcifcihcifciicijcikbXacilcimcincioceOamTamTamTceRcipciqcirciscitciucivciwcixcixciycizciAciBciCciDciAciAbONciBciEciFciGciHciIciHciJciJciJciJciKaaPabcaaaaaPaaabCKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWrciLbWrciMbZocfeciNciNciNcfcbZobWrbZocfccfebZobXEcfccfebZobWrciOcdJciPciQbWsaaaaaPaaaaaaaaaciRaaaaaaaaPaaaaaPaaabXNbXNbXNcdRbXNciSciTciUciVciWciXciYccIccIcheciZbXNcjacjbbXNcjccjdcjecjfccOcjgcjhcjicjjcjkcjlcjmcjncjncjocjncjpcjqcjrcjscjtchKcjucjvcjwcjxcjycjzchMchNchNchNcjAcjBcjCcjDcjEcjFcjGcjHcjIcjJceBcjKbWZbWZbWZbWZbXabXacjLbXabXabXabXabXabXabXabXabXabXabXabXabXacjMcjNamTcjOcjPceRcjQcjRcjScjTcjUcjVcjWbABbABbABcjXbCBcjYbCBcjXbCBcjYcjYcjZbCBcjZbABbABbABbABbABbEEbjJciJaYsbEEaaabCKaaaaaPaaPaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWrbWsbWrckabZobZobZobZobZobZobZobWrbZobZockbbZobZobZobZobZobWrcfcckcckdckebWsaaaaaPaaPaaPaaackfaaaaaaaaPaaaadKadKckgckhbXNckickjckkbXNbXNbXNcklckmccIcknckobXNbXNbXNckpckqbXNckrckrckrckrckrckrckrckscjjcktckuckvcjnckwckxckyckzckAckBckCckDckEckFckGcencfKckHcfMcewckIckJckKckLckMckNckOckPckQceBckRckSckTceBckUckVckVckVckWckVckXckYckZckVckVclackVckVckVclbclccldcleclfcbXclgclhclicljbTsceRclkcjRcllclmclncloclpclqaaPaaPclraaPclsaaPclraaPcltcluclvaaPclvaaPaaPaaPaaPaaPaaPaQiciJaQpaaPaaPaaPaaPaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabZhbWrbWrbWrclwclxbWrbWrclybWrbWrbWrbWrbWrclzbWrbWrclAclBbWrbWrbWrbWsbWsbWraaaaaPaaaabcaaPclCaaPaaPaaPaaaaaPaaPbXNbZCclDclEbXNbXNbXNclFbXNbXNbXNbXNbXNbXNbXNcjcclGcjaclHclIckrclJclKclLclMclNckrclOclPclQclRclScjnclTclUclVclWclXclYclZcmacmbcmccmacmdcmeckHcmfcmgcmgcmgcmgcmgcmhcmicmjcmkcmlceBcmmcmncmoceBcmpcmqcmrcmrcmrcmrcmscmrcmtcmtcmtcmtcmtcmtcmtcmtcmtcmubXNcmvaqIaqIaqIamTaqIaxeceRcmwcmxcmyclncmzcmAcmBcmCaaPbEucmDbCBcmDbEucmDbCBcmDbEucmEbCBcmFbEuaaPaaaaaPaaaaaacmGciJcmHaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabZhbZibWrcmIcmJbXEcmKbWrbZocmLcmMcmNbWrcmObZocfcbWrcmPbXEcmQcmRbWraaaaaaaaaaaaaaPaaaapyaaacmSaaaaaPaaaaaaaaPaaabXNcmTbXNcgZchaciTcmUciTciTcmVcmWcmXcmWcmYcmWcmWcmWcmZcnacnbcnccndcnecnfcngcnhckrccOcnicnjcnkccOcjncnlcnmcjncnncnocmdcnpcnqcnrcnscntcmacnuckHcnvcmhcnwcnxcnycnzcnycnAcmgcnBcnCcnDcnEcnDceBceBcnFbXNcmrcnGcnHcnIcnJcnKcmtcnLcnLcnLcnMcnLcnNcnLcmtcmubXNcnOaqHcnPcnQamTcnRcnSceRcnTcnUcnVcnWcnXcnYcnZcmCaaPbEucoacobcocbEucodcoecofbEucogcohcoibEuaaPaaaaaPaaPaaPcojciJcokaaPaaPabcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabZhbZibWrcolbXEbZocomconcoobXEcopcoqbWrcfccorcfcbWrcoscotcoucovbWsaaaaaaaaaaaaaaPaaPapyaaacowaaaaaPaaaaaaaaPaaabXNbXNbXNbXNbXNbXNbXNbXNbXNcoxcoycoycozcoAcoAcoAcoAcoBcoAcoAcoAcoCcoDcoEcoFcoGcoHcoIcoJcoKcoLcoMcoNcoOcoPcoQcoRcoScoTcoUcoVcoWcoXcoYcmdcnuckHcnvcmgcoZcpacpbcpccpdcpecmgcpfcpgcphcpicmrcjdcpjcpkcfmcmrcplcpmcpncpocppcmtcnLcpqcprcpscptcpucpvcmtcpwbXNbXNbXNbXNbXNamTamTamTceRceRceRcpxcmCcpycpzcpAcmCaaPbEucpBcpCcpDbEucpEcpFcpGbEucpHcpIcpJbEuaaPaaPaaPaaabABcpKcpLcpMcpNaaabCKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacpObWrbWrcpPcpPcpQcpPbWrcpRcpScpTcpUbWrcpVcpWcpXbWrcpYcpZcqacqbbWraaaaaaaaaaaaaaPaaaabcaaackfaaPaaPaaPaaPaaPaaabXNcqccqdcqecqfcqgcqhcqibXNcoxcoycqjcqkcqlcqmcqncoycqocqpcqqcoycqrcqscqtcqucqvcqwcqxcqycqzcqAcqBcqCcqBcqAcqBcqDcqEcmbcqFcqGcqHcqIcqJcmacnuckHcnvcmhcqKcqLcqMcqNcqOcqPcqQcqRcqScqTcqUcmrcqVcqWcqXcqYcmrcqZcracrbcrccrdcmtcnLcnLcrecnLcnLcrfcrgcmtcmubXNcrhcribXNcrjcrkcrlcrmcrncroamTcrpcmCcrqcrrcrscmCaaPbEucpBcrtcpBbEucpEcrucpEbEucrvcrwcrvbEuaaPaaaaaPaaPcpNcrxcrycrzcrAaaPabcaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWrbWrbWrbWsbWsbWrbWrbWrbWsbWsbWrbWrbWrbWsbWrbWrbWrbWsbWsbWrbWraaaaaaaaaaaaaaPaaaapyaaackfaaPaaaaaaaaaaaPaaacrBcrCcrDcrEcrFcrGcrHcrIbXNcoxcoycrJcrKcrLcrMcrNcrOcrPcrQcrRcoycrScrTcrUcrVcrWcrXcrYcrZcsacsbcsccsdcsdcsdcsecsfcsgcshcsicqGcsjcskcslcmdcsmckHcsncmgcsocspcsqcsrcsscstcmgcsucsvcswcsxcmrcsycszcsAcsBcmrcsCcsDcsEcsFcsGcmtcmtcsHcsIcsJcsJcmtcsKcmtcsLcsMcsNcsObXNcsPaqIaqIaqIccFcsQbXNcsRcmCcpycsScpAcmCaaPbEubEubEubEubEubEubEubEubEubEubEubEubEuaaPaaPaaPaaacrAcrycsTcrycsUaaabCKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaPaaPabcaaPckfaaPaaaaaaaaaaaPaaacrBcsVcrHcrDcsWcrGcsXbXNbXNcsYcoycsZctacsZctbcsZcoycsZctccsZcoyckrctdcteckrckrckrctfctgcthctictictjctkctlctictictmcmdctnctoctpctqcmdcmdctrckHctscmgcmgcttctuctvctwctxcmgcnBcnCceAceAcmrctycmrctzcmrcmrceActActBceAceActCctDctEctFctGctHctIctJcmtctKbXNctLctMbXNctNccFchecaVctOctPbXNcsRcmCctQctRctSctTaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaaaaPaaPcsUcrycrycrycrAaaPbCKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaaaaPaaaaaaapyaaaclCaaaaaaaaaaaaaaPaaacrBctUcrDctVctWcrGctXctYccJcoxcoyctZcuacubcuccudcoycuecufcugcoycuhcuicujcukculcumcuncfFcuocticupcuqcurcuscutcticaTcmdcuucuvcuwcuxcuycuzcuAcuBcuCcuDcuEcuFcuGcuHcuIcuJcuKcuLcuMcuNcuOcuPchNcuQcuRcuSchNcuTcuUcuVchNcuWctCcuXcuYcuZcvacvbcvccvdcmtcmubXNbXNcvebXNcvfcvgccIccIcvhcvibXNcsRcmCcmCcvjcmCcmCaaaaaaaaaaaaaaaaaPaaaaaaaaaaaPaaaaaaaaaaaaaaPaaaaaPaaacsUcrAcpNbABcpNaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaPaaPaaaaaaaaPaaaaaaabcaaacmSaaPaaaaaaaaaaaPaaacrBcrBcrDcrGcrGcrDcrDcvkccJcoxcoycvlcvmcvncvocvpcoycvqcvrcvscvtcvucvvcvwcvxcvycvzcvAcfFcfGctjcvBcvCcvDcvEcvFctichecmdcvGcvHcvIcvJcvKcvLcvMckHcvNcvOcvPcvQcvRcvScvTcvUcvVcvWcvXcvYcvZcwacwbcwccwdcwecwfcwecwgcwhcwicwjcwkcwlcwmcwncwocwpcwqcwrcwscwtbXNcwucwvcwwbZEctOccIccIcwxcwycrBcwzcwAcmCcwBcmCcwCaaPabcbCJbCJbCJbCJbCJbCJabcbCJbCKbCJbNfaaPbCKaaaaaPaaaaaaaaPaaaaaPaaaaaaaaPaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaaaaaaaPaaPaaaaaaapyaaaciRaaaaaaaaaaaaaaPaaacrBcwDcrDcwEcrDcrDcsXbXNbXNcwFcwGcwHcvmcwIcvocwJcwKcwLcwMcwNcwOcwPcwQcwRcwScwTcwUcwVcwWcjqcwXcwYcwZcxacxbcxacxccxdcmdcxecxfcxgcxhcuycvLcvMckHcvNcxicxjcxkcxlcxmcxncxocuKcxpcxqcxrcxscxtcxucxvcxwchSchScxxcxycxzcxAcxBcxCcxDcxEcxFcxGcxHcxIcxJcmtcmubXNcxKcxLcxMcsNcxNcvhcmvccIcxObXNcxPcxQcxRcxScxRadKaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaPaaabCKaaPaaPabcbORbORbORabcaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaaaaaaaaaaPaaaaaaapyaaackfaaaaaaaaPaaPaaPaaacrBcxTcrGcrEcrGcxUchecxVbXNcoxcoycxWcxXcxYcxZcyacoycybcyccydcoycyecyfcygcyhcyicumcyjcfFcykcticylcymcyncyocypcticyqcmdcmdcyrcmdcmdcmdcmdcyscytcyucmgcmgcmgcmgcmgcyvcywcmgcmrcmrcyxcyycyzcyAcyBcyCcyDcyDcyDcyDcyEcyFcyGcyEcmtcmtcmtcyHcyIcyJcyKcmtcmubXNcwucyLbXNcyMcyNcyOcyPcyPcyQbXNaaPadKaaaaaaaaaadKaaPaaPabcbCKbCKbCKabcbCKbCKbCKabcbCKbORbCKbCKaaaaaaaaPaaaaaaaaPaaaaaPaaPaaaaayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapyapyaaPabcapyaaaabcapyapyaaPaaPaaPckfaaPaaPaaPaaaaaPaaPcrBcrGcxUcrGcyRctOcyScyTcyUcyVcoycyWcyXcyYcyZczacoyczbczcczdcoyczeczfczfczfczfczfczgczhcziczjczkczlczmcznczocticzpczqczrczscztczuchmczvczwczxczyczzczAczBczCczDczEczFczGczHczIczJczKczLczMczNczOczPczQczRczScyEczTczUczVczWczXcmtcmtcmtcmtcmtcmtczYbXNbXNbXNbXNbXNcrBbXNcrBbXNcrBbXNczZadKadKadKadKadKaaaaaaaaaaaPaaaaaPaaaaaaaaPaaaaaPaaaaaPaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaaaaaaaaaaaaPaaaaaaaaaaaPaaaaaaaaPaaaclCaaaaaaaaPaaaaaPaaacrBcrBcrBcrBbXNcAbcAcbXNbXNcoxcoycoycoycoycoycoycoycoycAdcoycoycaTbXNcAecAfcAgcAhcwVcAicAjcticAkcAlcAmcAncAncAncAncAncAncAncAocApcAocAqcArcAscAtcAucAvcAwcAxbXNcAycAycAzcAycAycAAcABcACczMcADcAEcAFcAGcAHcAIcyEcAJcAKcALcAMcANcszcfmclIbXNcAOcnacAPbXNcAQcfmbXNaaaaaPaaaaaaaaaaaaaaPaaaaaPaaaaaaaaaaaaaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapyaaacARcARcARcARcARaaPaaPaaPcARcARcARcmScARaaaapyaaaaaPaaaaaaaaaaaaaaPbXNbXNbXNbXNcAScoxckqcATcAUckqcAVcjcckqclGcaTbXNcAWccIbXNcAXcAYcAZcBacBbcBccBdcticticticticAncBecBfcBgcBhcBicAncBjcBkcBlcBmcBncfLcmfbXNcBocBpcBqcBrcAycBscBtcBucAycBvcBwcBxcBycBzcBAcBBcBCcBDcBEcyEcBFcBGcBHcBIcBJcszcBKcBLcBMcBNckqcBOcBMcBPcwxcrBaaPaaPaaPaaPaaPaaPaaPaaPaaPaaaaaaaaaaaaaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcaaPcBQcBRcBRcBRcBRcBSckfcBTcBUcBUcBUcBUcBVaaPaaPaaPaaPaaPaaPaaPaaPaaPadKbXNcBWbXNcBXcBYckVckVcBZckqcCacCbckVclcckVcCcccIcCdbXNcCecCfcCfcCfcCgcChcCicCjcCkcClcCmcAncCncCocCpcCqcCrcAncCscCtcCucCvcBncfLcCwcCxcCycCxcCxcCxcAycCzcCAcBtcCBcCCcCDcCEcCFcCGcCHcCIcCIcCJcCKcyEcCLcBGcCMcCNcCOcszcCPcCQbXNcCRccIcCSbXNccIcCTbXNaaaaaPaaaaaaaaaaaaaaPaaPaaaaaaaaaaaaaaaaaaaaaaaaaaPaayaaaaaaaaaaaaaaaaaaaaaaaaaaPaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapyaaPcCUcCUcCUcCUcCUaaackfaaacCUcCUcCUcCUcCUaaaapyaaaaaaaaaaaaaaPaaPcCVcCWclDcCXcCYcCXchhcheccIcCZckVckVcDacDbckqckqcDcccIcDdbXNcDecDfcDgcDhcDicDjcDkcCjcDlcDmcDncAncDocDpcDqcDrcDscAncDtcDucAocAocDvcfLcnvcCxcDwcDxcDycDzcAycDAcBtcDBcAycDCcDDcDEcyDcDFcDGcDHcDIcDJcDKcyEcDLcDMcDNcDOcCNcszbXNbXNbXNctKbXNcDPbXNbXNbXNbXNaaPaaPaaaaaaaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaPaaPaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcaaaaaPaaaaaPaaPaaPaaacDQaaaaaPaaaaaPaaaaaPaaaapyaaaaaaaaaaaPaaPaaaadKadKbXNcDRbXNccIckqccIccIcDSbXNbXNbXNbXNbXNcCbcDTccIcDUbXNcDVcDWcDXcDYcDZcEacEbcEccEdcEecEfcEgcEhcEicEjcEkcElcEmcEncEocEpcAocEqcErcEscEtcEucEvcEwcExcAycEycEycEzcAycfQcDDcEAcyDcyDcyDcyDcyDcyDcyDcyEcyEcyEcEBcyEcyEcszcAOcECcnacEDbXNccIcEEcEFcEGcEFadKadKaaaaaaaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapyaaacARcARcARcARcARaaPckfaaPcARcARcARcARcARaaPapyaaaaaaaaaabcaaaaaaaaPadKbXNbXNbXNcfnbXNcjdcEHcEIbXNcEJcEKcEJbXNcDcckqcELcELcELcELcELcELcELcEMcENcEOcEPcEQcERcEScETcEUcEVcEWcEXcEYcEZcFacFbcFccFdcFecfLcFfcFgcFhcFicFicFjcAycFkcFlcFlcAycFmcFncFocFpcFqcFrcFscFtcFucFvcFwcFxcFycFzcFAcFBcfncFCccIcjdbXNbXNcFDbXNbXNbXNbXNaaPaaaaaaaaaaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaPaaPaaPaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapyaaPcBQcBRcBRcBRcBRcBSckfcBTcBUcBUcBUcBUcBVaaPasiaaPaaPaaPapyaaPaaPaaPaaPaaPaaabXNbXNbXNbXNbXNbXNbXNbXNbXNbXNbXNcDccfncELcFEcFFcFGcFHcFIcELcFJcFKcFLcCjcFMcFNcFOcAncFPcFQcFQcFQcFRcAncFScFTcFUcFVcFWcFXcFYcCxcFZcDxcGacGbcAycGccGdcGecCBcGfcGgcGhcGicGjcGkcGlcGmcGncGocGpcGqcGocGrcGscFBbXNcGtbXNcGucGucGvcGwcGxcGycGzaaPaaPaaaaaaaaaaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaPaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaPcGAcGBcGAaaPaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapyaaPcCUcCUcCUcCUcCUaaacGCaaPcCUcCUcCUcCUcCUaaaapyaaaaaaaaaaaPaaaaaaaaaaaaaaPaaaaaaaaaaaPaaPaaaaaaaaaaaPaaaaaabXNcCZcGDcGEcGFcGGcGHcGIcGJcGKcGLcGMcGNcCjcGOcGPcGQcAncGRcGScGTcGUcGVcAncGWcGXcGXcAocGYcGZcHacHbcHccHdcHecHfcAycHgcHhcHicHjcHkcHlcHmcHncHocHpcHqcHrcHrcHscHtcHucHvcHwcHxcHycHzcHAcHBcHCcHDcHEcHEcHEcHFcHGaaPaaaaaaaaaaaaaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaPaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaPcGBcGAcHHcGAcGBaaPaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasiaaaaaPaaaaaPaaaaaPaaacmSaaaaaPaaaaaPaaPaaPaaPasiaaaaaaaaaaaPaaaaaaaaaaaaaaPaaaaaaaaaaaaaaPaaaaaaaaaaaPaaaaaabXNckqcHIcELcHJcHKcHLcHMcHNcHOcHPcHQcHRcCjcCjcHScCjcAncAncAncAncAncAncAncHTcAocAocHUcHVcAscAtcHWcHXcHXcHYcHZcAycIacIbcIccIdcIecIfcIgcIhcIicIjcIkcIlcImcIncIocIpcIqcIrcIscItcIucIvcIwcIxcIycIzcIAcIBcICcHGaaPaaPaaaaaaaaaaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaPcIDcGBcIEcIFcIGcGBcIDaaPaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapyaaacARcARcARcARcARaaPcIHaaPcARcARcARcARcARaaPapyaaaaaaaaaabcaaPcIIcIIcIIcIJcIIcIIcIIaaaaaPaaaaaaaaaaaPaaaaaabXNcIKcDccELcILcIMcINcIOcIPcELcIQcIRcIScELcITcIUcIVcIWcIXcIYcIXcIZcIXcJacJbcJccIWcJdcnucfLcJecCxcJfcJgcJhcJfcJicJicJicJicJicJjcyycJkcFpcJlcJlcJmcJncJocJpcJqcJrcJscJtcJucFBcJvcJwcJxcFpcJycHGcHGcGucHGcGuapxaaPaaaaaaaaPaaaaaaaaPaaPaaPaaaaaaaaaaaaaaaaaPaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaPaaPcGBcGBcJzcJAcJAcJAcJBcGBcGBaaPaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapyaaPcBQcBRcBRcBRcBRcBSckfcBTcBUcBUcBUcBUcBVaaPapyaaaaaPaaPapyaaacIIcJCcJDcJCcJEcJCcIIcIIcIJcIIcIJcIIcIIaaPaaPbXNclIcDccELcELcELcELcELcELcELcJFcJGcJHcJIcJJcJKcJLcIWcJMcJNcIXcJbcIXcJOcJPcJQcIWcJRcnucfLcvNcxicJScJTcJUcJVcJWcJXcJYcJZcKacKbcDDcACcFBcFBcFBcFBcFBcFBcKccKdcKecKfcKgcKhcFBbXNcGtbXNcGucKicKjcKkcKlaNdapxapxaaPaaPaaPaaPaaPaaPaaPaaaaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPcKmcKncKmcJAcKocJAcKpcKqcGAaaPaaPaaPaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapyaaPcCUcCUcCUcCUcCUaaacGCaaacCUcCUcCUcCUcCUaaaasiaaPaaPaaaapyaaPcIIcKrcKscKtcKucKrcKvcKwcKxcKycKzcKAcIIaaaaaabXNbXNcCZcKBcKBcKCcKBcKDcKEcKFcKGcKHcKIcKJcKKcKLcKMcKNcKOcKPcKOcKOcKQcKRcKScKTcKUcKVcKWcFXcKXcKYcKZcLacLbcLccLccLccLdcLecKacfQcDDcLfcFBcLgcLhcLicLjcLkcLlcLkcLmcLncLocFBcszcLpcaQcfmcGucGucGucGucGucLqaesapxaaPaaaaaaaaaaaaaaaaaPaaPaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaaaPaaPcGBcGBcLrcJAcJAcJAcLscGBcGBaaPaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapyaaaaaaaaPaaPaaPaaaaaacmSaaPaaaaaaaaPaaPaaaaaaapyaaaaaaaaaabcaaacIIcLtcLucLvcLwcLtcLtcLxcLycLzcLAcLBcIIaaaaaaaaacszcszcszcszcszbXNcLCcELcELcLDcLEcLFcELcLGcLHcLIcIWcLJcJbcIXcJbcIXcLKcLLcLMcLNcLOcLPcLQcLRcJicJicLScLTcLUcLVcLWcLXcLYcKacLZcMacMbcHGcLgcLhcMccMccMdcMecMfcIicKfcMgcFBcjccMhcdRccIcMibXNaaPaaPaaPaaPaaPaaPaaPaaaaaaaaaaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaPcIDcGBcMjcMkcMlcGBcIDaaPaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasiaaaaaaaaaaaaaaaaaaaaacmSaaaaaaaaaaaaaaPaaaaaaasiaaaaaaaaaapyaaPcIIcMmcMncMocMpcMqcMrcMscMtcMucMvcMwcMxcMycMycMycMxcMzcMAcMBcIIcMCcMDcELcMEcMFcMGcMHbXNbXNbXNbXNcIWcIXcJbcIXcMIcIXcMJcMKcMLcIWcMMcMNcfLcnvcJicMOcMPcMQcLVcLVcMRcMScMTcKacMUcMVcMWcFBcLgcLhcMccMXcLkcMYcLkcMZcNacNbcFBckqckqcNcckqckqbXNaaPaaaaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaPcGBcGAcNdcGAcGBaaPaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapyabcapyapyapyaaaaaaaaacmSaaaaaaaaaapyapyapyasiapyaaPaaPaaaapyaaacIJcNecNfcNgcNhcNicNjcNkcNlcNmcNncNocNpcNqcNrcNscNtcNucNgcNvcNwcNxcNycNzcNxcNAcNBcNCcNDcNEcNFcNGcIWcIWcIWcIWcIWcIWcIWcNHcIWcIWbXNcNIcfLcnvcJicNJcMPcLVcLWcLVcNKcNLcNMcNNcNOcNPcNQcNRcNScNScNScNScNScNTcNScNUcNVcNWcFBcAOcnacNXcNYcNZbXNbXNaaPaaPaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaPcGAcGBcGAaaPaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaPaaaaaaaaaapyaaPcOaaaPapyaaaaaaaaPaaaaaaaaPaaaaaPaaPaaPaaacIIcObcOccOdcOecOfcOgcOhcOicOjcOkcOlcIIcIJcIJcIJcIIcOmcOncOocIIcOpcOqcELcOrcOscOtcOubXNcOvcOwcOxbXNcOycmWcOzcmYcmXcOAcOBcECcnbcOCcODcOEcCwcJicOFcOGcOHcOHcOHcOIcOJcOKcOLcOMcONcOOcOPcOQcORcOScOTcOUcOVcOWcOXcOYcOZcPacPbckqccIcPccNYcPdbXNbXNbXNadKaaaaaPaaaaaaaaaaaaaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaPaaPaaPaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaaaaaapyaaaaaPaaaapyaaaaaaaaPaaPaaPaaPaaaaaaaaaaaPaaPcIIcPecPfcLtcPgcPecPhcPicPjcPkcPlcPmcIIcPnaaaaaacszcszcszcszcszbXNcPocELcELcELcELcELbXNcPpcPqcPrbXNcPsbXNbXNbXNbXNbXNbXNbXNbXNcAucPtcPucPvcPwcPxcPycPzcPAcPBcPCcLWcPDcPEcPFcPGcPHcPIcPJcPKcPLcPMcPNcPOcOWclGcPPbXNbXNbXNbXNbXNcPQcPRcPSclDcPTclDcPUaaPaaPaaaaaaaaaaaaaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapyapyapyapyapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaacIIcPVcPWcLtcPWcPXcPYcLtcLtcPZcLtcLtcIIaaPaaPaaPbXNcjdcfncDbcQacQbcQccnacQdcQecQfcQgbXNcQhcQicQjcQkcQlbXNcQmcQncQobXNcQpcQqcQrbXNcQscQtcQucJicQvcQwcQxcQycQzcQAcLWcQBcJicQCcQDcQEcPIcQFcQGcQHcQIcQJcQKcOWcQLcQMbXNcQNcQOcQPbXNcQQcQRcQSbXNbXNbXNadKaaaaaPaaaaaaaaaaaaaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcaaacIIcQTcQUcLtcQVcQWcPYcQXcQYcQZcRacRbcIIaaaaaPaaabXNcRccRdcRecRfcRgcRhcRicRhcRhcRjcQMbXNbXNbXNbXNbXNcPsbXNcRkcRlcRmcRncRocRpcRqcRrcRscRtcRucJicJicJicJicJicRvcJicRwcszcszcRxcRycmrcOWcOWcOWcOWcOWcOWcOWcOWckqcRzcRAcRBcRCcRDcREcREcRFcRGcREaaaaaaaaaaaaaaPaaPaaaaaaaaPaaaaaaaaPaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapyaaacIIcRHcRIcLtcRIcRHcRJcRKcRLcRMcRNcROcIJaaaaaacRPbXNcRQbXNbXNbXNcRRbXNbXNbXNbXNcRScRTcRUcRVcRWcRUcRXcRYcRZcSacSbcSccSdcSecSfcSgcSgcShcSicSjcSkcSlcSmcnacnacSncnacSocnbcSpcSqcSrcSscSpcSlcnacStcSucPacnacnacnacSvbXNcSwcSxcSycREcSzcSAcSBcREaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaPcIIcIIcIJcIIcIJcIIcSCcSDcSEcSFcSGcSHcIIaaPaaPcRPcSIcSJcRPcSKcSLcSMcSNcSOcSPbXNbXNbXNbXNcSQbXNbXNbXNbXNbXNcSRcSbcSScSbcSTcSUcSVcSbcSWcSXcSYbXNbXNbXNbXNbXNbXNcCScSZcTabXNcTbcTccTdbXNcjdcfncTebXNbXNbXNbXNbXNbXNbXNbXNbXNcvecREcTfcTgcThcREaaaaaPaaaaaaaaaaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcaaaaaPaaPaaPcTicTjcTkcTlcTmcTncTocTpcTqcIIaaaaaacRPcTrcTscRPcTtcTucTvcTwcRPcRPcTxcTycTzcTAcTBcTCcTDcTEcTxcTFcTGcSbcSScSbcTHcTIcTJcSbcTKcTLcTMcTNcTOcTPcTQcTRbXNcTSbXNbXNbXNcTTcTUcTVbXNbXNbXNcrBbXNcTWcTXcTYbXNcTZcUacUbbXNctMcREcUccUdcUecREaaaaaPaaaaaaaaaaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapyaaaaaPaaaaaacUfaaPcUgcIIcIIcIIcIIcIIcIIcIIaaaaaacRPcUhcUicRPcUjcUkcUlcUmcRPcUncUocUpcUqcUrcUscUtcUucUucUvcUwcUxcUycUzcUAcTHcUBcTJcSbcSWcUCcTHcUDcUEcSbcUFcUGbXNcUHbXNaaPaaacUIcUJcUIaaaaaaaaPaaabXNcmvccIccIcUKciXcULciXcUMcUNcREcUOcUPcUOcREaaaaaPaaaaaPaaPaaaaaaaaPasiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcaaPaaPaaPaaaaaaaaaaaPaaPaaPaaaaaaaaaaaPaaaaaaaaacRPcUQcURcUScUTcUUcUVcUWcRPcUXcRPcUYcUZcVacVbcVccUqcUqcVdcVecVfcVgcVgcVhcTHcVicTJcSbcSWcVjcVkcVlcVmcVncVocVpbXNcTSbXNaaPaaPcUIcVqcUIaaPaaPaaPaaabXNcVrccIccIcVscVtcaRcVubXNcrBcREcUOcVvcUOaaPaaaaaPaaaaaaaaPaaPaaPaaPapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcaaaaaaaaaaaaaaaaaPaaaaaaaaaaaPaaaaaaaaacRPcUhcVwcRPcVxcVycVzcVAcVBcVCcRPcVDcVEcVFcVGcVHcVIcVJcTxcTFcTJcSbcVKcVLcVMcVNcVOcVgcVPcVQcVRcVScVScVTcVUcVSbXNadKaaPaaPaaacUIcVVcUIaaaaaaaaPaaPbXNcVWcVXcVYbXNcVZcWacVYbXNaaaaaPcUOcUPcUOaaPaaaaaPaaaaaaaaPaaPaaaaaaapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQabcaaaaaaaaPabcaaQabcaaPabcabcabcaaPcTxcTxcTxcRPcRPcRPcRPcWbcWccRPcRPcRPcWdcWecWfcVGcWgcWhcWicTxcTxcTJcSbcSbcSbcTHcTIcTJcSbcWjcWkcWlcWmaaPaaPaaaaaaaaaadKaaaaaPaaacUIcVVcUIcUIcUIcUIaaabXNbXNbXNbXNbXNbXNbXNbXNbXNaaaaaPaaacWnaaaaaPaaPaaPaaPaaPaaPaaaaaaaaPapyaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQaaaaaacWocWpcWqcTxcWrcWscWtcWucWvcWwcTxcWxcWycWzcWAcVGcVHcVIcVJcWBcTxcWCcSbcWDcWEcWFcWGcWHcWEcWIcSbcWJcVSaaaaaPaaaaaaaaaaaaaaaaaPaaacUIcWKcWLcWLcWMcUIaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaaaaPaaacWnaaaaaPaaPaaaaaaaaaaaPaaaaaaaaaasiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQaaaaaacWocWNcWqcWOcWPcWPcWPcWQcWRcWScWTcWUcWVcWUcWWcWPcWXcWWcWYcWZcTxcXacXbcXccXbcXbcXbcXbcXbcXdcXbcXecWmaaaaaPaaaaaaaaaaaaaaaaaPaaacUIcUIcUIcUIcVVcUIaaaaaaaaaaaaaaPaaPaaPaaPaaPaaPaaPaaPaaacXfcXgcXgcXgcXhaaaaaaaaaaaaaaaaaaapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQaaaaaacWocWNcXicWvcXjcXkcXlcXmcXncXocXpcXqcXrcXscXscXtcXscXscXucXvcTxcXwcXxcXycXxcXxcXzcXxcXxcXAcXBcXCcVSaaPaaPaaaaaaaaaaaaaaaaaPaaaaaaaaaaaacUIcXDcUIaaaaaaaaaaaaaaPaaaaaaaaaaaPaaaaaaaaPaaaaaaaaaaaaaaacWnaaaaaaaaPaaaaaaaaaasiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQaaPaaacWocXEcWqcWvcXjcXjcXFcTxcTxcTxcTxcXGcWZcXHcVGcXIcVGcXHcXJcXKcTxcXLcWmcXLcWmcWmcWmcWmcWmcXLcWmcXLcWmaaaaaPaaaaaaaaaaaaaaaaaPaaaaaPaaacXMcXNcXOcXNcXPaaaaaPaaaaaaaaaaaaaaaaaPaaPasiapyasiaaPaaPaaPaaPcWnaaPaaPaaPaaPaaPabcapyapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaPcTxcTxcTxcXQcWPcWPcWPcXRcXScTxcXTcVJcXUcXlcXlcXVcXlcXlcXWcXXcTxcXYcWmcXxcWmaaaaaaaaacWmcXxcWmcXZcWmaaaaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPcXNcYacYbcYccXNaaPaaPaaaaaaaaPaaaaaPaaPaaPaaaaaPaaaaaPaaaaaaaaacYdaaaaaaaaPaaaaaaaaaaaaasiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaacWocYecYfcYgcYhcYicXVcYjcYkcTxcTxcTxcTxcYlcYlcYlcYlcYlcTxcTxcTxcXLcWmcXLcWmaaPaaPaaPcWmcXLcWmcXLcWmaaPaaPaaaaaaaaaaaaaaaaaPaaaaaaaaacXNcYmcYncYocYpcwAaaPaaPaaPaaPaaPaaaaaaabcaaacYqcYqcYqcYqcYqaaPcYraaPcYqcYqcYqcYqcYqaaaapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaPcTxcWocTxcTxcWocWocWocTxcYscTxaaaaaacYtcYucYucYucYucYtcYtcYucYtcYvcYucYvcYwcYucYucYucYtcYxcYucYvcYtcYtcYtaaaaaaaaaaaacXNcXNcXNcXNcXNcXNcYycYzcYAcXNcXNcXNcXNcXNcXNaaaaaaaaaapyaaPcYBcYCcYCcYCcYCcYDcYEcYFcYGcYGcYGcYGcYHaaPapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaPaaaaaaaaPaaaaaaaaaaaaaaaaaPaaacYtcYtcYIcYJcYKcYLcYtcYMcYNcYOcYNcYOcYNcYOcYOcYOcYOcYPcYNcYOcYNcYNcYQcYtaaaaaaaaaaaPcXNcYRcYScYTcYUcXNcYVcYWcXNcXNcYXcYYcYZcZacXNaaPaaPaaPapyaaPcZbcZbcZbcZbcZbaaacYraaacZbcZbcZbcZbcZbaaPapyaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPcZccZdcYtcZecYNcZfcZgcZhcYNcYNcYNcYNcYNcYNcYNcYNcYNcYNcYNcYNcYNcYNcYNcZicYuaaaaaaaaaaaacUIcZjcZkcZlcZmcZmcZncZocZpcZqcZqcZrcZscZtcUIaaaaaaaaaabcaaaaaPaaaaaPaaPaaPaaacYraaaaaPaaaaaPaaaaaPaaaapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacZccZdcYtcZucZvcYNcYNcYtcYNcYNcZwcZwcZwcZwcZwcYNcZwcZwcZwcZwcZwcYNcYNcYQcYtaaaaaaaaaaaacUIcZxcZycZzcZAcZAcZBcZCcZDcZDcZDcZDcZEcZFcUIaaaaaaaaaapyaaacYqcYqcYqcYqcYqaaPcYraaPcYqcYqcYqcYqcYqaaPapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacZccZdcYtcZGcZHcYNcYNcZIcYNcYNcYucZJcYucZKcYucYNcYucZLcYucZMcYucYNcYNcYNcYuaaaaaaaaaaaacXNcZNcZOcZPcZQcZRcZScZTcZUcZVcZWcZXcZYcZZcXNaaaaaPaaPapyaaPcYBcYCcYCcYCcYCcYDcYrcYFcYGcYGcYGcYGcYHaaPapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYtcYtcYtdaacZfcYNcYNcYtcYNcYNcYOcYOcYOcYOcYOcYNcYOcYOcYOcYOcYOcYNcYNdabcYtaaaaaaaaaaaacXNdacdacdacdaccTTdaddaedafcTTdacdacdacdaccXNaaPaaaaaPapyaaPcZbcZbcZbcZbcZbaaacYraaPcZbcZbcZbcZbcZbaaaapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacZccZdcYtdagcYNcZvcYNcZhcYNcYNcYNcYNcYNcYNcYNcYNcYNcYNcYNcYNcYNcYNcYNcYNcYuaaaaaaaaaaaacXNdahdaidaidajdakdaldamdandaodapdaqdaqdaqcXNaaaaaaaaPasiaaaaaPaaaaaPaaaaaPaaacYraaaaaPaaaaaPaaPaaPaaPasiaaaaayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacZccZdcYtdardasdatcYNcYtcYMcYNcZwcZwdaucZwcZwcYNcZwcZwcZwcZwcZwcYNcYNdavcYtaaaaaaaaaaaPcXNdawdaxdaqdaydazdaAdaBdaCdaDdaEdaqdaxdaFcXNaaaaaaaaaapyaaacYqcYqcYqcYqcYqaaPdaGaaPcYqcYqcYqcYqcYqaaPapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYtcYtcYtcZKcYtcYtdaHcYtcYtdaIcYucYtcYtcYtcYudaJcYudaKcYtcYucZKdaLdaLcYwcYtaaaaaaaaaaaacXNdaMdaqdaqdaNdaOdaPdaQdaRdaSdaTdaidaidaUcXNaaaaaaaaPapyaaPcYBcYCcYCcYCcYCdaVcYrdaWcYGcYGcYGcYGcYHaaPapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacZccZdcYtdaXdaYdaZdbacYtdbbdbadbcdbccYtdbddbecYNdbfcYtdbgdbhdbidbjdbjdbkcYtaaaaaaaaaaaacXNdacdacdacdacdbldbmdbndbodbldacdacdacdaccXNaaaaaPaaPaaPaaPcZbcZbcZbcZbcZbaaadbpaaacZbcZbcZbcZbcZbaaaapyaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacZccZdcYtdaXdaYdbqcYtcYtdbbdbadbadbrdbsdbtcYNcYNdbfcYudbudbvdaYdaYdaYdbjcYuaaaaaaaaaaaacXNdahdaidaidbwdakdbxdbndbydbzdbAdaqdaqdaMcXNaaPaaaaaaabcaaaaaaaaPaaPaaPaaaaaacWnaaPaaaaaaaaPaaPaaaaaaapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadbBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacZccZdcYtdaXdaYdaYdbCcZhdbbdbadbadbrcZhdbDcYNcYNcYNdaJdbEdaYdaYdbvdaYdbjcYuaaaaaaaaaaaacXNdbFdaxdaqdbGdbHdaAdbIdaCdbJdbKdaqdaxdbLcXNaaaaaaaaaapyabcapyapyapyaaaaaaaaacWnaaaaaaaaaapyapyapyasiapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYtcYtdbMdaYdaYdbCcYtdbNdbOdbPdbQcYtdbRdbSdbTdbUdaKdbVdbWdbXdbYdbZdcacYtaaaaaaaaaaaPcXNdaMdaqdaqdcbdccdaPdcddcedaSdcfdaidaidaUcXNaaaaaPaaPaaaaaaaaaaaaaaPaaaapyaaPdcgaaPapyaaaaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYtcYudaZdaZcYucYtcYtcYucYucYtcYtcYtcYucYucYtcYtcYtcYtcYucYucYtcYtcYtaaaaaaaaaaaacXNdacdacdacdacdbldchdbndcidbldacdacdacdaccXNcXNaaaaaaaaaaaaaaaaaaaaaaaaapyaaaaaPaaaapyaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaaaaaaaaaaacXNdahdaidcjdakdckdcldbndbydandcmdcndcodaqdaqcXNaaaaaaaaaaaaaaaaaaaaaaaaapyapyapyapyapyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaaaaaaaaaaacXNdcpdaxdcqdcrdaCdcsdbndcsdaCdctdcudcvdaxdcwcXNaaaaaaaaaaaaaaaaaaaaaaaaaaPaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaPaaPaaPaaPaaacXNdaqdaqdcydczdcAdcBdcCdcDdcEdcFdcGdcHdaidaUcXNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacXNcXNcXNcXNdcIdcJdcKdcLcZUdcMdcNcXNcXNcXNcXNcXNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacXNdcOdcPdcQdcRdcSdcTdcUdcVdcWdcXdcYdcZddacXNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacXNcXNddbcXNddcdddddeddfddgddhddccXNdcZcXNcXNaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaPcXNddbcXNcXNddiddjdaqddkddicXNcXNdcZcXNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaacXNddbcXNdaqdaqddjdaqdaqdaqddlcXNdcZcXNaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacXNddbcXNddmdaqddndaxddodaqddpcXNdcZcXNaaPaaaaaaaaaaaaaaaaaaaaaaayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaPcXNddbcXNddqdaqdaqddrddsddtdducXNdcZcXNaaPaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaacXNddbcXNcXNcXNcXNcXNcXNcXNcXNcXNdcZcXNaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacXNddvddwddxddxddyddzddAdcZdcZdcZdcZcXNaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaacXNddBddCcXNcXNddDddEddDcXNcXNcXNcXNcXNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaaPcXNcXNcXNcXNddFddGddHddGddFcXNaaPaaPaaPaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcaaaaaPaaaaaacXNddIddFddJddFddFcXNaaaaaPaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQaaQaaaaaaaaacXNcXNcUIcXNcUIcXNcXNaaaaaaaaaaaQabcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQabcaaQaaQaaaaaPaaaddKaaaaaaaaPaaQabcaaQaaQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQabcaaQaaaaaaaaPaaQaaQaaQaaaaaaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +"} diff --git a/_maps/map_files/MiniStation/MiniStation.dmm b/_maps/map_files/MiniStation/MiniStation.dmm new file mode 100644 index 0000000..86824d3 --- /dev/null +++ b/_maps/map_files/MiniStation/MiniStation.dmm @@ -0,0 +1,80657 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/open/space, +/area/space) +"ab" = ( +/obj/docking_port/stationary{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 22; + id = "syndicate_n"; + name = "north of station"; + turf_type = /turf/open/floor/plating/asteroid/snow; + width = 18 + }, +/turf/open/space, +/area/space) +"ac" = ( +/obj/effect/landmark{ + name = "carpspawn" + }, +/turf/open/space, +/area/space) +"ad" = ( +/turf/closed/mineral/random/low_chance, +/area/mine/explored) +"ae" = ( +/obj/docking_port/stationary{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 22; + id = "syndicate_ne"; + name = "northeast of station"; + turf_type = /turf/open/floor/plating/asteroid/snow; + width = 18 + }, +/turf/open/space, +/area/space) +"af" = ( +/turf/closed/mineral/random/low_chance, +/area/mine/unexplored) +"ag" = ( +/turf/closed/mineral/random/high_chance, +/area/mine/explored) +"ah" = ( +/turf/closed/wall, +/area/bridge) +"ai" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + layer = 2.9; + name = "bridge blast door" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating/airless, +/area/bridge) +"aj" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE"; + pixel_x = -32; + pixel_y = 0 + }, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + layer = 2.9; + name = "bridge blast door" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating/airless, +/area/bridge) +"ak" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + layer = 2.9; + name = "bridge blast door" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating/airless, +/area/bridge) +"al" = ( +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + layer = 2.9; + name = "bridge blast door" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating/airless, +/area/bridge) +"am" = ( +/obj/structure/lattice, +/turf/open/space, +/area/space) +"an" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/wrench, +/obj/item/device/assembly/timer, +/obj/item/device/assembly/signaler, +/obj/item/device/assembly/signaler, +/turf/open/floor/plasteel, +/area/bridge) +"ao" = ( +/obj/structure/table/reinforced, +/obj/item/device/aicard, +/obj/item/device/multitool, +/turf/open/floor/plasteel, +/area/bridge) +"ap" = ( +/obj/machinery/computer/secure_data, +/turf/open/floor/plasteel/red/side, +/area/bridge) +"aq" = ( +/obj/machinery/computer/security, +/turf/open/floor/plasteel/red/side, +/area/bridge) +"ar" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/computer/communications, +/turf/open/floor/plasteel/blue/side{ + dir = 0 + }, +/area/bridge) +"as" = ( +/obj/machinery/computer/station_alert, +/turf/open/floor/plasteel/white/side{ + dir = 2 + }, +/area/bridge) +"at" = ( +/obj/machinery/computer/med_data, +/turf/open/floor/plasteel/white/side{ + dir = 2 + }, +/area/bridge) +"au" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/box/PDAs{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/weapon/storage/box/ids, +/turf/open/floor/plasteel, +/area/bridge) +"av" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/lockbox/medal, +/turf/open/floor/plasteel, +/area/bridge) +"aw" = ( +/obj/structure/displaycase/labcage, +/turf/open/floor/plasteel, +/area/bridge) +"ax" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger, +/obj/item/weapon/hand_tele, +/turf/open/floor/plasteel, +/area/bridge) +"ay" = ( +/turf/open/floor/plasteel, +/area/bridge) +"az" = ( +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/bridge) +"aA" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/bridge) +"aB" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 1 + }, +/area/bridge) +"aC" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/bridge) +"aD" = ( +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/bridge) +"aE" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/firstaid/regular, +/obj/item/weapon/storage/toolbox/emergency, +/turf/open/floor/plasteel, +/area/bridge) +"aF" = ( +/obj/structure/displaycase/captain, +/turf/open/floor/plasteel, +/area/bridge) +"aG" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aH" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aI" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/weapon/pen, +/turf/open/floor/plasteel, +/area/bridge) +"aJ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel, +/area/bridge) +"aK" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder/yellow, +/obj/item/weapon/disk/nuclear, +/turf/open/floor/plasteel, +/area/bridge) +"aL" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE"; + pixel_x = 32; + pixel_y = 0 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + layer = 2.9; + name = "bridge blast door" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating/airless, +/area/bridge) +"aM" = ( +/obj/structure/fireaxecabinet{ + pixel_x = 32 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aN" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/bridge) +"aP" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/secure/briefcase, +/obj/item/device/assembly/flash/handheld, +/obj/item/device/assembly/flash/handheld, +/turf/open/floor/plasteel, +/area/bridge) +"aQ" = ( +/obj/structure/chair/comfy/black{ + dir = 2 + }, +/obj/effect/landmark/start{ + name = "Captain" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/button/door{ + id = "bridge blast"; + name = "Bridge Blast Door Control"; + pixel_x = 29; + pixel_y = 6; + req_access_txt = "19" + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + freerange = 0; + listening = 1; + name = "Common Channel"; + pixel_y = 28 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aR" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/card/id/captains_spare, +/turf/open/floor/plasteel, +/area/bridge) +"aS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/bridge) +"aT" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aU" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23; + pixel_y = 0 + }, +/obj/machinery/keycard_auth{ + pixel_y = -24 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aV" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aY" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aZ" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0 + }, +/obj/machinery/keycard_auth{ + pixel_y = -24 + }, +/turf/open/floor/plasteel, +/area/bridge) +"ba" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel, +/area/bridge) +"bb" = ( +/obj/machinery/camera/autoname{ + dir = 1 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 0 + }, +/area/bridge) +"bc" = ( +/turf/open/floor/plasteel/blue/side{ + dir = 0 + }, +/area/bridge) +"bd" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 0 + }, +/area/bridge) +"be" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/blue/side{ + dir = 0 + }, +/area/bridge) +"bf" = ( +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Bridge"; + departmentType = 5; + name = "Bridge RC"; + pixel_y = -30 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 0 + }, +/area/bridge) +"bg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/closet/emcloset, +/obj/machinery/newscaster/security_unit{ + pixel_y = -28 + }, +/turf/open/floor/plasteel, +/area/bridge) +"bh" = ( +/obj/item/weapon/ore/iron{ + pixel_x = -1; + pixel_y = -4 + }, +/obj/item/weapon/ore/iron{ + pixel_x = 2; + pixel_y = 4 + }, +/obj/item/weapon/ore/iron, +/turf/open/floor/plating/airless, +/area/quartermaster/storage) +"bi" = ( +/obj/machinery/conveyor_switch/oneway{ + id = "mining_internal"; + name = "mining conveyor" + }, +/turf/open/floor/plating/airless, +/area/quartermaster/storage) +"bj" = ( +/obj/item/stack/rods{ + amount = 50 + }, +/turf/open/floor/plating/airless, +/area/quartermaster/storage) +"bk" = ( +/obj/item/weapon/storage/bag/ore, +/turf/open/floor/plating/airless, +/area/quartermaster/storage) +"bl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/bridge) +"bm" = ( +/obj/structure/table, +/obj/machinery/microwave, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"bn" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel, +/area/bridge) +"bo" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_command{ + name = "Bridge"; + req_access_txt = "19" + }, +/turf/open/floor/plasteel, +/area/bridge) +"bp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/bridge) +"bq" = ( +/turf/closed/wall, +/area/quartermaster/storage) +"br" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/mineral/unloading_machine{ + icon_state = "unloader-corner"; + input_dir = 4; + output_dir = 2 + }, +/turf/open/floor/plating/airless, +/area/quartermaster/storage) +"bs" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "mining_internal" + }, +/turf/open/floor/plating/airless, +/area/quartermaster/storage) +"bt" = ( +/obj/machinery/light/small, +/obj/machinery/conveyor{ + dir = 8; + id = "mining_internal" + }, +/turf/open/floor/plating/airless, +/area/quartermaster/storage) +"bu" = ( +/obj/structure/ore_box, +/turf/open/floor/plating/airless, +/area/quartermaster/storage) +"bv" = ( +/turf/open/floor/plating/airless, +/area/quartermaster/storage) +"bw" = ( +/obj/machinery/light/small, +/turf/open/floor/plating/airless, +/area/quartermaster/storage) +"bx" = ( +/turf/closed/wall, +/area/hallway/primary/central) +"by" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = 0 + }, +/turf/closed/wall, +/area/hallway/primary/central) +"bz" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"bA" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/bridge) +"bB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/bridge) +"bC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_command{ + name = "Bridge"; + req_access_txt = "19" + }, +/turf/open/floor/plasteel, +/area/bridge) +"bD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 1 + }, +/area/bridge) +"bE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/blue/side{ + dir = 1 + }, +/area/bridge) +"bF" = ( +/obj/machinery/power/apc{ + auto_name = 1; + dir = 1; + name = "_North APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/bridge) +"bG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/closet, +/turf/open/floor/plating, +/area/hallway/primary/central) +"bH" = ( +/obj/structure/plasticflaps/mining, +/obj/machinery/conveyor{ + dir = 2; + id = "mining_internal" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bI" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/bridge) +"bJ" = ( +/obj/machinery/status_display{ + density = 0; + pixel_y = 2; + supply_display = 1 + }, +/turf/closed/wall, +/area/quartermaster/storage) +"bK" = ( +/obj/machinery/door/airlock/external{ + name = "Mining Unload Airlock"; + req_access = null; + req_access_txt = "48" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"bL" = ( +/turf/open/floor/plating/airless, +/area/space) +"bM" = ( +/obj/machinery/door/airlock/external{ + req_access_txt = "13" + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"bN" = ( +/turf/open/floor/plating, +/area/hallway/primary/central) +"bO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/hallway/primary/central) +"bP" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 1 + }, +/area/bridge) +"bQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/quartermaster/storage) +"bR" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE"; + pixel_x = -32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 0 + }, +/area/bridge) +"bS" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"bT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/hallway/primary/central) +"bU" = ( +/turf/closed/wall, +/area/medical/research{ + name = "Research Division" + }) +"bV" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/medical/research{ + name = "Research Division" + }) +"bW" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/bridge) +"bX" = ( +/obj/machinery/conveyor{ + dir = 5; + id = "mining_internal" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bY" = ( +/turf/open/floor/plasteel/loadingarea{ + dir = 4 + }, +/area/quartermaster/storage) +"bZ" = ( +/obj/machinery/mineral/processing_unit{ + input_dir = 8; + output_dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"ca" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/conveyor{ + dir = 4; + id = "mining_internal" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"cb" = ( +/obj/machinery/mineral/stacking_machine{ + input_dir = 8; + output_dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"cc" = ( +/obj/machinery/conveyor{ + dir = 9; + id = "mining_internal" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"cd" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"ce" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = 0 + }, +/turf/closed/wall, +/area/quartermaster/storage) +"cf" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"cg" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 0 + }, +/area/bridge) +"ch" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/blue/side{ + dir = 0 + }, +/area/bridge) +"ci" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"cj" = ( +/turf/closed/wall/r_wall, +/area/security/brig) +"ck" = ( +/turf/closed/wall, +/area/security/brig) +"cl" = ( +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/structure/disposaloutlet, +/turf/open/floor/engine, +/area/medical/research{ + name = "Research Division" + }) +"cm" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/engine, +/area/medical/research{ + name = "Research Division" + }) +"cn" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio2"; + name = "containment blast door" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/engine, +/area/medical/research{ + name = "Research Division" + }) +"co" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/structure/window/reinforced, +/obj/machinery/camera/autoname, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/medical/research{ + name = "Research Division" + }) +"cp" = ( +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"cq" = ( +/obj/machinery/door/poddoor/preopen{ + id = "xenobio8"; + name = "containment blast door" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/engine, +/area/medical/research{ + name = "Research Division" + }) +"cr" = ( +/obj/structure/window/reinforced, +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "xenobio8"; + name = "Containment Blast Doors"; + pixel_x = 0; + pixel_y = 4; + req_access_txt = "55" + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/medical/research{ + name = "Research Division" + }) +"cs" = ( +/turf/open/floor/engine, +/area/medical/research{ + name = "Research Division" + }) +"ct" = ( +/obj/structure/plasticflaps, +/obj/machinery/conveyor{ + dir = 1; + id = "mining_internal" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"cu" = ( +/obj/machinery/mineral/processing_unit_console{ + layer = 3; + machinedir = 1; + pixel_y = 0 + }, +/turf/closed/wall, +/area/quartermaster/storage) +"cv" = ( +/obj/machinery/mineral/stacking_unit_console{ + layer = 3; + machinedir = 5; + pixel_y = 0 + }, +/turf/closed/wall, +/area/quartermaster/storage) +"cw" = ( +/obj/machinery/conveyor{ + dir = 2; + id = "mining_internal" + }, +/obj/structure/plasticflaps, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"cx" = ( +/obj/structure/closet, +/turf/open/floor/plating, +/area/hallway/primary/central) +"cy" = ( +/turf/open/floor/plasteel/blue/side{ + dir = 1 + }, +/area/hallway/primary/central) +"cz" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/blue/side{ + dir = 1 + }, +/area/hallway/primary/central) +"cA" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/blue/side{ + dir = 1 + }, +/area/hallway/primary/central) +"cB" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + frequency = 1446; + on = 1 + }, +/obj/structure/table, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + freerange = 0; + listening = 1; + name = "Common Channel"; + pixel_y = 25 + }, +/obj/item/toy/beach_ball/holoball, +/turf/open/floor/carpet{ + icon_state = "carpetnoconnect" + }, +/area/hallway/primary/central) +"cC" = ( +/obj/structure/closet/secure_closet/security, +/turf/open/floor/plasteel, +/area/security/brig) +"cD" = ( +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"cE" = ( +/obj/machinery/photocopier, +/turf/open/floor/plasteel, +/area/security/brig) +"cF" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/engine, +/area/medical/research{ + name = "Research Division" + }) +"cG" = ( +/mob/living/simple_animal/slime, +/turf/open/floor/engine, +/area/medical/research{ + name = "Research Division" + }) +"cH" = ( +/obj/machinery/door/window/northleft{ + base_state = "right"; + dir = 8; + icon_state = "right"; + name = "Containment Pen"; + req_access_txt = "55" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio2"; + name = "containment blast door" + }, +/turf/open/floor/engine, +/area/medical/research{ + name = "Research Division" + }) +"cI" = ( +/obj/machinery/door/window/northleft{ + dir = 4; + name = "Containment Pen"; + req_access_txt = "55" + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"cJ" = ( +/obj/machinery/door/window/northleft{ + base_state = "right"; + dir = 8; + icon_state = "right"; + name = "Containment Pen"; + req_access_txt = "55" + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"cK" = ( +/obj/machinery/door/window/northleft{ + dir = 4; + name = "Containment Pen"; + req_access_txt = "55" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio8"; + name = "containment blast door" + }, +/turf/open/floor/engine, +/area/medical/research{ + name = "Research Division" + }) +"cL" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/engine, +/area/medical/research{ + name = "Research Division" + }) +"cM" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "mining_internal" + }, +/turf/open/floor/plasteel/brown{ + dir = 1 + }, +/area/quartermaster/storage) +"cN" = ( +/obj/machinery/conveyor_switch/oneway{ + id = "mining_internal"; + name = "mining conveyor" + }, +/turf/open/floor/plasteel/brown{ + dir = 1 + }, +/area/quartermaster/storage) +"cO" = ( +/turf/open/floor/plasteel/brown{ + dir = 1 + }, +/area/quartermaster/storage) +"cP" = ( +/obj/machinery/camera/autoname, +/turf/open/floor/plasteel/brown{ + dir = 1 + }, +/area/quartermaster/storage) +"cQ" = ( +/obj/machinery/conveyor{ + dir = 2; + id = "mining_internal" + }, +/turf/open/floor/plasteel/brown{ + dir = 1 + }, +/area/quartermaster/storage) +"cR" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"cS" = ( +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"cT" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"cU" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"cV" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plating, +/area/hallway/primary/central) +"cW" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"cX" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"cY" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"cZ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"da" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"db" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/hallway/primary/central) +"dc" = ( +/obj/machinery/power/apc{ + auto_name = 1; + dir = 4; + name = "_East APC"; + pixel_x = 27; + pixel_y = 2 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/security/brig) +"dd" = ( +/obj/structure/closet/wardrobe/red, +/turf/open/floor/plasteel, +/area/security/brig) +"de" = ( +/turf/open/floor/plasteel, +/area/security/brig) +"df" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 2 + }, +/area/security/brig) +"dg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/security/brig) +"dh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/closet{ + name = "Contraband Locker" + }, +/turf/open/floor/plasteel/bot{ + dir = 2 + }, +/area/security/brig) +"di" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/security/brig) +"dj" = ( +/obj/structure/rack, +/obj/item/clothing/suit/armor/riot, +/obj/item/clothing/suit/armor/riot, +/obj/item/clothing/suit/armor/riot, +/obj/item/clothing/head/helmet/riot, +/obj/item/clothing/head/helmet/riot, +/obj/item/clothing/head/helmet/riot, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/obj/item/weapon/shield/riot, +/obj/item/weapon/shield/riot, +/obj/item/weapon/shield/riot, +/turf/open/floor/plasteel/black, +/area/security/brig) +"dk" = ( +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "xenobio2"; + name = "Containment Blast Doors"; + pixel_x = 0; + pixel_y = 4; + req_access_txt = "55" + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/medical/research{ + name = "Research Division" + }) +"dl" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio8"; + name = "containment blast door" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/engine, +/area/medical/research{ + name = "Research Division" + }) +"dm" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/medical/research{ + name = "Research Division" + }) +"dn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/brig) +"do" = ( +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/structure/disposaloutlet{ + dir = 1 + }, +/turf/open/floor/engine, +/area/medical/research{ + name = "Research Division" + }) +"dp" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"dq" = ( +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"dr" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE"; + pixel_y = 32 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_security{ + name = "Brig"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"ds" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Cargo Bay Maintenance"; + req_access_txt = "31" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"dt" = ( +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/hallway/primary/central) +"du" = ( +/obj/structure/closet/secure_closet/personal, +/obj/machinery/airalarm{ + frequency = 1446; + pixel_y = 23 + }, +/turf/open/floor/carpet{ + icon_state = "carpetnoconnect" + }, +/area/hallway/primary/central) +"dv" = ( +/obj/machinery/photocopier, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"dw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/hallway/primary/central) +"dx" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/closed/wall, +/area/hallway/primary/central) +"dy" = ( +/obj/machinery/status_display{ + density = 0; + pixel_y = 2; + supply_display = 1 + }, +/turf/closed/wall, +/area/hallway/primary/central) +"dz" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"dA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"dB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"dC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/security/brig) +"dD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/security/brig) +"dE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/security/brig) +"dF" = ( +/obj/structure/rack, +/obj/item/weapon/storage/box/seccarts{ + pixel_x = 3; + pixel_y = 2 + }, +/obj/item/weapon/storage/box/handcuffs, +/obj/item/weapon/storage/box/flashbangs{ + pixel_x = -2; + pixel_y = -2 + }, +/obj/machinery/camera/autoname{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"dG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/security/brig) +"dH" = ( +/obj/machinery/door/airlock/glass_command{ + name = "Armoury"; + req_access_txt = "19" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"dI" = ( +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/security/brig) +"dJ" = ( +/obj/structure/rack, +/obj/item/weapon/gun/energy/laser{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/gun/energy/laser, +/obj/item/weapon/gun/energy/laser{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"dK" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE" + }, +/turf/closed/wall, +/area/medical/research{ + name = "Research Division" + }) +"dL" = ( +/obj/structure/sink{ + icon_state = "sink"; + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"dM" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"dN" = ( +/obj/machinery/mineral/equipment_vendor, +/turf/open/floor/plasteel/brown/corner{ + dir = 8 + }, +/area/quartermaster/storage) +"dO" = ( +/obj/effect/landmark/start{ + name = "Cargo Technician" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"dP" = ( +/obj/effect/landmark/start{ + name = "Cargo Tech" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"dQ" = ( +/obj/structure/tank_dispenser/oxygen, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"dR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/quartermaster/storage) +"dS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/quartermaster/storage) +"dT" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"dU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"dV" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/loadingarea{ + dir = 8 + }, +/area/hallway/primary/central) +"dW" = ( +/obj/machinery/camera/autoname, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"dX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"dY" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"dZ" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"ea" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_security{ + name = "Brig"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"eb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/brig) +"ec" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio1"; + name = "containment blast door" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/engine, +/area/medical/research{ + name = "Research Division" + }) +"ed" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/brig) +"ee" = ( +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/brig) +"ef" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"eg" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"eh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning/corner{ + dir = 8 + }, +/area/security/brig) +"ei" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/security/brig) +"ej" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + freerange = 0; + listening = 1; + name = "Common Channel"; + pixel_x = -27; + pixel_y = 3 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"ek" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/security/brig) +"el" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/hallway/primary/central) +"em" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/brig) +"en" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/medical/research{ + name = "Research Division" + }) +"eo" = ( +/obj/machinery/monkey_recycler, +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"ep" = ( +/obj/machinery/processor{ + desc = "A machine used to process slimes and retrieve their extract."; + name = "Slime Processor" + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + freerange = 0; + listening = 1; + name = "Common Channel"; + pixel_y = 25 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"eq" = ( +/obj/machinery/smartfridge/extract, +/obj/machinery/camera/autoname, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"er" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder, +/obj/machinery/airalarm{ + frequency = 1442; + pixel_y = 23 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"es" = ( +/obj/structure/closet/crate/bin, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"et" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/brig) +"eu" = ( +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/syndicate) +"ev" = ( +/obj/machinery/suit_storage_unit/mining/eva, +/turf/open/floor/plasteel/brown{ + dir = 8 + }, +/area/quartermaster/storage) +"ew" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_mining{ + name = "Cargo Bay"; + req_access_txt = "31" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"ex" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"ey" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"ez" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"eA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"eB" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"eC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"eD" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/weapon/cartridge/quartermaster{ + pixel_x = -4; + pixel_y = 7 + }, +/obj/item/weapon/cartridge/quartermaster{ + pixel_x = -4; + pixel_y = 7 + }, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"eE" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 6; + pixel_y = -5 + }, +/obj/item/device/multitool, +/obj/machinery/requests_console{ + department = "Cargo Bay"; + departmentType = 2; + pixel_x = 0; + pixel_y = 30 + }, +/obj/item/clothing/head/soft, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"eF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/machinery/camera/autoname, +/obj/item/device/radio/intercom{ + broadcasting = 0; + freerange = 0; + listening = 1; + name = "Common Channel"; + pixel_y = 25 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"eG" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/weapon/stamp{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/stamp/denied{ + pixel_x = 4; + pixel_y = -2 + }, +/obj/item/weapon/pen/red, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"eH" = ( +/obj/structure/rack, +/obj/item/clothing/suit/armor/laserproof, +/obj/item/clothing/suit/armor/reactive, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/security/brig) +"eI" = ( +/turf/open/floor/plasteel/bot, +/area/hallway/primary/central) +"eJ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/brig) +"eK" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/hallway/primary/central) +"eL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"eM" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"eN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"eO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/brig) +"eP" = ( +/obj/machinery/door/window/northleft{ + base_state = "right"; + dir = 8; + icon_state = "right"; + name = "Containment Pen"; + req_access_txt = "55" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio1"; + name = "containment blast door" + }, +/turf/open/floor/engine, +/area/medical/research{ + name = "Research Division" + }) +"eQ" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE"; + pixel_y = -32 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_security{ + name = "Brig"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"eR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/brig) +"eS" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"eT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"eU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/door_timer{ + dir = 4; + id = "Cell 1"; + name = "Cell 1"; + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/brig) +"eV" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/brig) +"eW" = ( +/obj/structure/cable, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/brig) +"eX" = ( +/turf/closed/wall, +/area/space) +"eY" = ( +/turf/closed/wall/shuttle{ + icon_state = "wall3" + }, +/area/space) +"eZ" = ( +/obj/structure/rack, +/obj/item/weapon/pickaxe, +/obj/item/weapon/pickaxe{ + pixel_x = 5 + }, +/obj/item/weapon/shovel{ + pixel_x = -5 + }, +/obj/item/weapon/shovel{ + pixel_x = -5 + }, +/turf/open/floor/plasteel/brown{ + dir = 8 + }, +/area/quartermaster/storage) +"fa" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"fb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"fc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"fd" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"fe" = ( +/obj/structure/closet/secure_closet/miner, +/turf/open/floor/plasteel/brown{ + dir = 4 + }, +/area/quartermaster/storage) +"ff" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/structure/filingcabinet, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"fg" = ( +/obj/machinery/computer/cargo, +/turf/open/floor/plasteel/yellow/corner{ + dir = 2 + }, +/area/quartermaster/storage) +"fh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/brig) +"fi" = ( +/obj/structure/closet/secure_closet/brig{ + id = "Cell 2"; + name = "Cell 2 Locker" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"fj" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"fk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/hallway/primary/central) +"fl" = ( +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "xenobio1"; + name = "Containment Blast Doors"; + pixel_x = 0; + pixel_y = 4; + req_access_txt = "55" + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/medical/research{ + name = "Research Division" + }) +"fm" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/window/brigdoor{ + dir = 4; + id = "Cell 1"; + name = "Cell 1"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/brig) +"fn" = ( +/turf/open/floor/plasteel/red/side{ + dir = 8 + }, +/area/security/brig) +"fo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"fp" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/brig) +"fq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"fr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"fs" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/obj/structure/closet/secure_closet/brig{ + id = "Cell 2"; + name = "Cell 2 Locker" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"ft" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_mining{ + name = "Cargo Bay"; + req_access_txt = "31" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"fu" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research{ + name = "Xenobiology Lab"; + req_access_txt = "7" + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"fv" = ( +/obj/effect/landmark/start{ + name = "Scientist" + }, +/obj/structure/chair/stool, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"fw" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/primary/central) +"fx" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + freerange = 0; + listening = 1; + name = "Common Channel"; + pixel_x = -25; + pixel_y = 0 + }, +/obj/structure/closet/wardrobe/miner, +/turf/open/floor/plasteel/brown/corner{ + dir = 1 + }, +/area/quartermaster/storage) +"fy" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"fz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"fA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"fB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/closet/wardrobe/cargotech, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/quartermaster/storage) +"fC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/quartermaster/storage) +"fD" = ( +/obj/machinery/autolathe, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"fE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"fF" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Cargo Technician" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/quartermaster/storage) +"fG" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/westleft{ + name = "Cargo Desk"; + req_access_txt = "50" + }, +/obj/item/weapon/folder/yellow, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"fH" = ( +/turf/open/floor/plasteel/delivery, +/area/hallway/primary/central) +"fI" = ( +/obj/machinery/computer/cargo/request, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"fJ" = ( +/obj/structure/closet/crate/bin, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/hallway/primary/central) +"fK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/brig) +"fL" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"fM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/brig) +"fN" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1 + }, +/obj/structure/table, +/obj/machinery/computer/stockexchange, +/turf/open/floor/plasteel/caution/corner{ + dir = 4 + }, +/area/quartermaster/storage) +"fO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"fP" = ( +/obj/machinery/r_n_d/server/core, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/medical/research{ + name = "Research Division" + }) +"fQ" = ( +/obj/machinery/flasher{ + id = "Cell 2"; + pixel_x = 28 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"fR" = ( +/obj/structure/table, +/obj/item/weapon/extinguisher{ + pixel_x = 4; + pixel_y = 3 + }, +/obj/item/weapon/extinguisher, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"fS" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + frequency = 1442; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"fT" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/monkeycubes, +/obj/item/weapon/storage/box/monkeycubes, +/obj/machinery/light, +/obj/item/stack/sheet/mineral/plasma{ + layer = 2.9 + }, +/obj/item/stack/sheet/mineral/plasma{ + layer = 2.9 + }, +/obj/item/stack/sheet/mineral/plasma{ + layer = 2.9 + }, +/obj/item/stack/sheet/mineral/plasma{ + layer = 2.9 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"fU" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/beakers{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/weapon/storage/box/syringes, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + frequency = 1442; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"fV" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_mining{ + name = "Cargo Office"; + req_access_txt = "31" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"fW" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/secondary/exit) +"fX" = ( +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"fY" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"fZ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"ga" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"gb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/structure/closet/secure_closet/security, +/turf/open/floor/plasteel, +/area/security/brig) +"gc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"gd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/requests_console{ + department = "Security"; + departmentType = 5; + pixel_y = 30 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"ge" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"gf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/chair, +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"gg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/airalarm{ + frequency = 1440; + pixel_y = 23 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"gh" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"gi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/brig) +"gj" = ( +/obj/structure/bed, +/obj/item/weapon/book/manual/wiki/security_space_law, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"gk" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/door_timer{ + dir = 4; + id = "Cell 2"; + name = "Cell 2"; + pixel_x = 32; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/brig) +"gl" = ( +/obj/machinery/computer/secure_data, +/obj/machinery/camera/autoname{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"gm" = ( +/obj/machinery/vending/security, +/turf/open/floor/plasteel, +/area/security/brig) +"gn" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + frequency = 1448; + on = 1 + }, +/obj/machinery/airalarm{ + dir = 4; + frequency = 1448; + pixel_x = -24 + }, +/turf/open/floor/plasteel/grimy, +/area/security/brig) +"go" = ( +/turf/closed/wall/r_wall, +/area/medical/research{ + name = "Research Division" + }) +"gp" = ( +/obj/structure/table, +/obj/item/weapon/wrench, +/obj/item/weapon/crowbar/red, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"gq" = ( +/obj/structure/table, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/obj/item/clothing/glasses/science, +/obj/item/clothing/glasses/science, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"gr" = ( +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/obj/structure/closet/l3closet/scientist, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"gs" = ( +/obj/structure/closet/wardrobe/science_white, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"gt" = ( +/obj/structure/sign/biohazard, +/turf/closed/wall, +/area/medical/research{ + name = "Research Division" + }) +"gu" = ( +/obj/machinery/button/door{ + dir = 2; + id = "rnd"; + name = "Shutters Control Button"; + pixel_x = -24; + pixel_y = -6 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + freerange = 0; + listening = 1; + name = "Common Channel"; + pixel_x = -27; + pixel_y = 3 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"gv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/medical/research{ + name = "Research Division" + }) +"gw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/medical/research{ + name = "Research Division" + }) +"gx" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + external_pressure_bound = 120; + frequency = 1450; + initialize_directions = 1; + internal_pressure_bound = 4000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'SERVER ROOM'."; + name = "SERVER ROOM"; + pixel_y = 32 + }, +/turf/open/floor/bluegrid, +/area/medical/research{ + name = "Research Division" + }) +"gy" = ( +/obj/structure/closet/crate, +/obj/machinery/camera/autoname{ + dir = 8 + }, +/obj/item/weapon/ore/glass, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"gz" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + external_pressure_bound = 140; + frequency = 1450; + on = 1; + pressure_checks = 0 + }, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'SERVER ROOM'."; + name = "SERVER ROOM"; + pixel_y = 32 + }, +/turf/open/floor/bluegrid, +/area/medical/research{ + name = "Research Division" + }) +"gA" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; + name = "KEEP CLEAR: DOCKING AREA"; + pixel_y = 0 + }, +/turf/closed/wall, +/area/quartermaster/storage) +"gB" = ( +/turf/open/floor/plasteel/caution/corner{ + dir = 8 + }, +/area/quartermaster/storage) +"gC" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 5; + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"gD" = ( +/obj/structure/closet/crate, +/obj/item/weapon/ore/slag, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"gE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/structure/closet/secure_closet/security, +/turf/open/floor/plasteel, +/area/security/brig) +"gF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"gG" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"gH" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/chemimp{ + pixel_x = 4; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/trackimp, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"gI" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/weapon/storage/box/handcuffs, +/obj/item/weapon/pen, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"gJ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + frequency = 1448; + on = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/security/brig) +"gK" = ( +/obj/machinery/computer/security/wooden_tv, +/obj/item/device/radio/intercom{ + broadcasting = 0; + freerange = 0; + listening = 1; + name = "Common Channel"; + pixel_y = 25 + }, +/turf/open/floor/plasteel/grimy, +/area/security/brig) +"gL" = ( +/obj/structure/table/wood, +/obj/item/device/camera/detective, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/obj/item/device/taperecorder{ + pixel_y = 0 + }, +/obj/machinery/camera/autoname, +/obj/item/weapon/folder/yellow, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/turf/open/floor/carpet, +/area/security/brig) +"gM" = ( +/obj/item/weapon/storage/secure/safe{ + pixel_x = 4; + pixel_y = 26 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/security/brig) +"gN" = ( +/obj/machinery/mineral/ore_redemption{ + input_dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/hallway/primary/central) +"gO" = ( +/turf/open/floor/plasteel/loadingarea{ + dir = 4 + }, +/area/hallway/primary/central) +"gP" = ( +/turf/open/floor/plasteel/purple/corner{ + dir = 2 + }, +/area/hallway/primary/central) +"gQ" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start{ + name = "Scientist" + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"gR" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/southright{ + dir = 4; + name = "Research and Development Desk"; + req_access_txt = "7" + }, +/obj/item/weapon/folder/yellow, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rnd"; + name = "research lab shutters" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"gS" = ( +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/obj/structure/table, +/obj/item/weapon/disk/tech_disk{ + pixel_x = 0; + pixel_y = 0 + }, +/obj/item/weapon/disk/tech_disk{ + pixel_x = 0; + pixel_y = 0 + }, +/obj/item/weapon/disk/design_disk, +/obj/item/weapon/disk/design_disk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/camera/autoname, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"gT" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/weapon/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"gU" = ( +/obj/structure/table, +/obj/item/weapon/stock_parts/micro_laser, +/obj/item/weapon/stock_parts/micro_laser, +/obj/item/weapon/stock_parts/manipulator, +/obj/item/weapon/stock_parts/capacitor, +/obj/item/weapon/stock_parts/capacitor, +/obj/item/weapon/stock_parts/manipulator, +/obj/machinery/airalarm{ + frequency = 1441; + pixel_y = 23 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"gV" = ( +/obj/structure/table, +/obj/item/stack/cable_coil{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stack/cable_coil, +/obj/item/weapon/stock_parts/scanning_module, +/obj/item/weapon/stock_parts/scanning_module{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"gW" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 5 + }, +/turf/open/floor/bluegrid, +/area/medical/research{ + name = "Research Division" + }) +"gX" = ( +/obj/machinery/atmospherics/pipe/manifold{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/medical/research{ + name = "Research Division" + }) +"gY" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 9 + }, +/turf/open/floor/bluegrid, +/area/medical/research{ + name = "Research Division" + }) +"gZ" = ( +/obj/machinery/door/airlock/external{ + name = "Supply Dock Airlock"; + req_access_txt = "31" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"ha" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/quartermaster/storage) +"hb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"hc" = ( +/obj/structure/closet/crate, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"hd" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 2 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_research{ + name = "Server Room"; + req_access_txt = "47" + }, +/turf/open/floor/plasteel/black, +/area/medical/research{ + name = "Research Division" + }) +"he" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"hf" = ( +/obj/structure/table, +/obj/item/weapon/restraints/handcuffs, +/obj/item/device/assembly/timer, +/obj/item/device/assembly/flash/handheld, +/turf/open/floor/plasteel, +/area/security/brig) +"hg" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"hh" = ( +/obj/structure/table, +/obj/machinery/recharger{ + pixel_y = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"hi" = ( +/obj/structure/table, +/obj/item/weapon/book/manual/wiki/security_space_law, +/obj/item/weapon/storage/lockbox/loyalty, +/turf/open/floor/plasteel, +/area/security/brig) +"hj" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/brig) +"hk" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = -32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/hallway/secondary/exit) +"hl" = ( +/obj/structure/filingcabinet, +/obj/machinery/requests_console{ + department = "Detective's office"; + pixel_x = -30; + pixel_y = 0 + }, +/turf/open/floor/plasteel/grimy, +/area/security/brig) +"hm" = ( +/obj/structure/table/wood, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/item/weapon/folder/red, +/obj/item/weapon/hand_labeler, +/obj/item/clothing/glasses/sunglasses, +/obj/item/weapon/book/codex_gigas, +/turf/open/floor/carpet, +/area/security/brig) +"hn" = ( +/obj/effect/landmark/start{ + name = "Detective" + }, +/obj/structure/chair/office/dark{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/security/brig) +"ho" = ( +/obj/structure/table, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"hp" = ( +/turf/open/floor/plasteel/purple/side{ + dir = 4 + }, +/area/hallway/primary/central) +"hq" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/window/brigdoor{ + dir = 4; + id = "Cell 2"; + name = "Cell 2"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/brig) +"hr" = ( +/obj/structure/table, +/obj/item/weapon/hand_labeler, +/obj/item/stack/packageWrap, +/obj/item/stack/packageWrap, +/obj/item/weapon/pen, +/obj/machinery/requests_console{ + department = "Science"; + departmentType = 2; + name = "Science Requests Console"; + pixel_x = -30; + pixel_y = 0 + }, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"hs" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + frequency = 1441; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"ht" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"hu" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"hv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"hw" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9; + pixel_y = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"hx" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/medical/medbay) +"hy" = ( +/obj/structure/closet/crate, +/obj/item/weapon/ore/glass, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"hz" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_security{ + name = "Detective"; + req_access_txt = "4" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"hA" = ( +/turf/open/floor/plasteel/yellow/corner{ + dir = 1 + }, +/area/quartermaster/storage) +"hB" = ( +/obj/machinery/vending/cola, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"hC" = ( +/obj/machinery/vending/snack, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"hD" = ( +/obj/item/device/radio/intercom{ + broadcasting = 0; + freerange = 0; + listening = 1; + name = "Common Channel"; + pixel_x = -25; + pixel_y = 0 + }, +/obj/structure/table, +/obj/machinery/recharger{ + pixel_y = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"hE" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/landmark/start{ + name = "Security Officer" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"hF" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + frequency = 1441; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"hG" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"hH" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"hI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research{ + name = "Research and Development Lab"; + req_access_txt = "7" + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"hJ" = ( +/obj/machinery/flasher{ + id = "Cell 3"; + pixel_x = 28 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"hK" = ( +/obj/structure/closet/secure_closet/detective, +/turf/open/floor/plasteel/grimy, +/area/security/brig) +"hL" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/weapon/pen, +/obj/item/weapon/restraints/handcuffs, +/obj/item/weapon/storage/fancy/cigarettes, +/turf/open/floor/carpet, +/area/security/brig) +"hM" = ( +/turf/open/floor/carpet, +/area/security/brig) +"hN" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"hO" = ( +/turf/open/floor/plasteel/purple/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"hP" = ( +/obj/machinery/camera{ + c_tag = "Toxin Test Site"; + dir = 8; + network = list("RD","Toxins"); + use_power = 0 + }, +/turf/open/floor/plating/airless, +/area/space) +"hQ" = ( +/turf/open/floor/plasteel/warnwhite{ + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"hR" = ( +/obj/machinery/r_n_d/destructive_analyzer, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"hS" = ( +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"hT" = ( +/obj/machinery/r_n_d/protolathe, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"hU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"hV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"hW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"hX" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start{ + name = "Scientist" + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"hY" = ( +/obj/structure/closet/crate, +/obj/item/weapon/ore/iron, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"hZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/sink{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 9 + }, +/area/medical/research{ + name = "Research Division" + }) +"ia" = ( +/obj/machinery/computer/rdservercontrol, +/obj/machinery/door/window/southright{ + dir = 8; + name = "Server Controller Computer"; + req_access_txt = "7" + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"ib" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/ai_monitored/storage/eva) +"ic" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/obj/structure/closet/crate, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"id" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"ie" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"if" = ( +/obj/machinery/vending/cigarette{ + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"ig" = ( +/obj/structure/table, +/obj/item/clothing/ears/earmuffs, +/obj/item/clothing/ears/earmuffs{ + pixel_x = -3; + pixel_y = -2 + }, +/obj/item/clothing/glasses/sunglasses, +/obj/item/clothing/glasses/sunglasses{ + pixel_x = 3; + pixel_y = 3 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"ih" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 5; + pixel_y = -32 + }, +/obj/machinery/computer/security, +/turf/open/floor/plasteel, +/area/security/brig) +"ii" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + frequency = 1446; + on = 1 + }, +/turf/open/floor/carpet{ + icon_state = "carpetnoconnect" + }, +/area/hallway/primary/central) +"ij" = ( +/obj/machinery/light, +/obj/machinery/computer/prisoner, +/turf/open/floor/plasteel, +/area/security/brig) +"ik" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + frequency = 1440; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"il" = ( +/obj/structure/filingcabinet, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"im" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 4 + }, +/area/security/brig) +"in" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"io" = ( +/turf/open/floor/plasteel/grimy, +/area/security/brig) +"ip" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + frequency = 1440; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"iq" = ( +/obj/machinery/newscaster{ + pixel_x = -32; + pixel_y = 0 + }, +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"ir" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/whitepurple/side{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"is" = ( +/obj/machinery/computer/rdconsole/core, +/turf/open/floor/plasteel, +/area/medical/research{ + name = "Research Division" + }) +"it" = ( +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/medical/research{ + name = "Research Division" + }) +"iu" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + frequency = 1441; + on = 1 + }, +/obj/machinery/r_n_d/circuit_imprinter, +/obj/item/weapon/reagent_containers/glass/beaker/sulphuric, +/turf/open/floor/plasteel, +/area/medical/research{ + name = "Research Division" + }) +"iv" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"iw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/poddoor/preopen{ + id = "Biohazard"; + name = "biohazard blast door" + }, +/turf/open/floor/plasteel/bot, +/area/medical/research{ + name = "Research Division" + }) +"ix" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/glass/beaker/large{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/reagent_containers/glass/beaker{ + pixel_x = 8; + pixel_y = 2 + }, +/obj/item/weapon/reagent_containers/glass/beaker{ + pixel_x = 8; + pixel_y = 2 + }, +/obj/item/weapon/reagent_containers/dropper, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"iy" = ( +/obj/structure/table, +/obj/item/weapon/stock_parts/console_screen, +/obj/item/weapon/stock_parts/console_screen, +/obj/item/weapon/stock_parts/console_screen, +/obj/item/weapon/stock_parts/matter_bin, +/obj/item/weapon/stock_parts/matter_bin, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"iz" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50; + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/clothing/glasses/welding, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"iA" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = 2; + pixel_y = 3 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"iB" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 2 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"iC" = ( +/obj/item/device/radio/intercom{ + broadcasting = 0; + freerange = 0; + listening = 1; + name = "Common Channel"; + pixel_x = 27; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warnwhite/corner{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"iD" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'BOMB RANGE"; + name = "BOMB RANGE" + }, +/turf/closed/wall/mineral/plastitanium, +/area/space) +"iE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"iF" = ( +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"iG" = ( +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"iH" = ( +/obj/machinery/vending/autodrobe{ + req_access_txt = "" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 9 + }, +/area/hallway/primary/central) +"iI" = ( +/obj/structure/closet/wardrobe/mixed, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/hallway/primary/central) +"iJ" = ( +/obj/machinery/camera/autoname, +/obj/structure/table/wood, +/obj/item/weapon/storage/crayons, +/obj/item/stack/cable_coil/random, +/obj/item/stack/cable_coil/random, +/obj/item/stack/cable_coil/random, +/obj/item/toy/cards/deck, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/hallway/primary/central) +"iK" = ( +/obj/machinery/washing_machine, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/hallway/primary/central) +"iL" = ( +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 5 + }, +/area/hallway/primary/central) +"iM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/glass{ + name = "Central Access" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"iN" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/door/airlock/glass{ + name = "Central Access" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"iO" = ( +/obj/machinery/door/airlock/glass{ + name = "Central Access" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"iP" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"iQ" = ( +/obj/machinery/portable_atmospherics/pump, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/turf/open/floor/plating, +/area/hallway/primary/central) +"iR" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"iS" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"iT" = ( +/obj/machinery/camera/autoname{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"iU" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"iV" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research{ + name = "Research Division Access"; + req_access_txt = "47" + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"iW" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 2 + }, +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"iX" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + target_temperature = 80; + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"iY" = ( +/obj/machinery/mass_driver{ + dir = 4; + id = "toxinsdriver" + }, +/turf/open/floor/plating, +/area/medical/research{ + name = "Research Division" + }) +"iZ" = ( +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"ja" = ( +/obj/machinery/door/poddoor{ + id = "toxinsdriver"; + name = "Toxins Launcher Bay Door" + }, +/turf/open/floor/plating, +/area/medical/research{ + name = "Research Division" + }) +"jb" = ( +/obj/machinery/door/poddoor/preopen{ + id = "Biohazard"; + name = "biohazard blast door" + }, +/turf/open/floor/plasteel/bot, +/area/medical/research{ + name = "Research Division" + }) +"jc" = ( +/turf/closed/wall/mineral/titanium/overspace, +/area/shuttle/arrival) +"jd" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Arrivals Shuttle Airlock" + }, +/obj/docking_port/mobile{ + dir = 2; + dwidth = 5; + height = 7; + id = "arrival"; + name = "arrival shuttle"; + port_angle = -90; + width = 15 + }, +/obj/docking_port/stationary{ + dir = 2; + dwidth = 5; + height = 7; + id = "arrival_home"; + name = "port bay 1"; + width = 15 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"je" = ( +/obj/machinery/light/small, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/bot, +/area/quartermaster/storage) +"jf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research{ + name = "Research Division Access"; + req_access_txt = "47" + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"jg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/closed/wall, +/area/hallway/primary/central) +"jh" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/structure/closet/jcloset, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel, +/area/janitor) +"ji" = ( +/turf/open/floor/carpet{ + icon_state = "carpetnoconnect" + }, +/area/hallway/primary/central) +"jj" = ( +/obj/machinery/door/airlock{ + id_tag = "Dorm1"; + name = "Dorm 1" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"jk" = ( +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 8 + }, +/area/hallway/primary/central) +"jl" = ( +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"jm" = ( +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"jn" = ( +/obj/machinery/airalarm{ + frequency = 1445; + pixel_y = 23 + }, +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 5 + }, +/area/hallway/primary/central) +"jo" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"jp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"jq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"jr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"js" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/red/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"jt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/red/side{ + dir = 1 + }, +/area/hallway/primary/central) +"ju" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/red/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"jv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/purple/side{ + dir = 4 + }, +/area/hallway/primary/central) +"jw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/medical/research{ + name = "Research Division" + }) +"jx" = ( +/obj/structure/closet/emcloset, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/warnwhite{ + dir = 10 + }, +/area/medical/research{ + name = "Research Division" + }) +"jy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/shower{ + pixel_y = 18 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"jz" = ( +/obj/structure/sink{ + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/sign/securearea{ + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 5 + }, +/area/medical/research{ + name = "Research Division" + }) +"jA" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/closed/wall, +/area/medical/research{ + name = "Research Division" + }) +"jB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/poddoor/preopen{ + id = "Biohazard"; + name = "biohazard blast door" + }, +/turf/open/floor/plasteel/bot, +/area/medical/research{ + name = "Research Division" + }) +"jC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"jD" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/white/side{ + dir = 2 + }, +/area/medical/research{ + name = "Research Division" + }) +"jE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 10 + }, +/area/medical/research{ + name = "Research Division" + }) +"jF" = ( +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 10 + }, +/area/medical/research{ + name = "Research Division" + }) +"jG" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 10 + }, +/area/medical/research{ + name = "Research Division" + }) +"jH" = ( +/obj/machinery/camera/autoname, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 10 + }, +/area/medical/research{ + name = "Research Division" + }) +"jI" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"jJ" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"jK" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"jL" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = 0 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/research{ + name = "Research Division" + }) +"jM" = ( +/obj/machinery/door/window/southleft{ + dir = 1; + name = "Mass Driver Door"; + req_access_txt = "7" + }, +/turf/open/floor/plasteel/loadingarea{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"jN" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"jO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/hallway/primary/central) +"jP" = ( +/obj/machinery/door/window/eastleft, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/hallway/primary/central) +"jQ" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/airlock/research{ + heat_proof = 1; + name = "Toxins Lab"; + req_access_txt = "7" + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"jR" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"jS" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/ai_monitored/storage/eva) +"jT" = ( +/turf/open/floor/plasteel/loadingarea{ + dir = 4 + }, +/area/janitor) +"jU" = ( +/turf/open/floor/plasteel/white/side{ + dir = 9 + }, +/area/medical/research{ + name = "Research Division" + }) +"jV" = ( +/obj/machinery/airalarm{ + frequency = 1440; + pixel_y = 23 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/table/reinforced, +/obj/item/device/assembly/prox_sensor{ + pixel_x = -4; + pixel_y = 1 + }, +/obj/item/device/assembly/prox_sensor{ + pixel_x = 8; + pixel_y = 9 + }, +/obj/item/device/assembly/prox_sensor{ + pixel_x = 9; + pixel_y = -2 + }, +/obj/item/device/assembly/prox_sensor{ + pixel_x = 0; + pixel_y = 2 + }, +/obj/item/weapon/screwdriver{ + pixel_y = 10 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"jW" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/ai_monitored/storage/eva) +"jX" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/ai_monitored/storage/eva) +"jY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warnwhite{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"jZ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"ka" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"kb" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"kc" = ( +/turf/open/floor/plasteel, +/area/medical/research{ + name = "Research Division" + }) +"kd" = ( +/obj/machinery/doppler_array{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"ke" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE"; + pixel_x = -32 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/ai_monitored/storage/eva) +"kf" = ( +/turf/closed/wall, +/area/hallway/secondary/exit) +"kg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE"; + pixel_x = 32 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/ai_monitored/storage/eva) +"kh" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/crew_quarters/bar) +"ki" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/hallway/primary/central) +"kj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"kk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"kl" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plating, +/area/hallway/primary/central) +"km" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/hallway/primary/central) +"kn" = ( +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"ko" = ( +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"kp" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"kq" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"kr" = ( +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + frequency = 1445; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"ks" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"kt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/camera/autoname{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"ku" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"kv" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"kw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/purple/side{ + dir = 4 + }, +/area/hallway/primary/central) +"kx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/medical/research{ + name = "Research Division" + }) +"ky" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 2 + }, +/area/medical/medbay) +"kz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/closet/firecloset, +/obj/machinery/light/small, +/turf/open/floor/plasteel/warnwhite{ + dir = 2 + }, +/area/medical/research{ + name = "Research Division" + }) +"kA" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/structure/closet/firecloset, +/obj/structure/sign/securearea{ + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 6 + }, +/area/medical/research{ + name = "Research Division" + }) +"kB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/medical/research{ + name = "Research Division" + }) +"kC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 2 + }, +/area/medical/medbay) +"kD" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/warnwhite{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"kE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"kF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/white/side{ + dir = 9 + }, +/area/medical/research{ + name = "Research Division" + }) +"kG" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + icon_state = "connector_map"; + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"kH" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/white/side{ + dir = 9 + }, +/area/medical/research{ + name = "Research Division" + }) +"kI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"kJ" = ( +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"kK" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the test chamber."; + layer = 4; + name = "Test Chamber Telescreen"; + network = list("Toxins"); + pixel_x = 32; + pixel_y = 0 + }, +/obj/machinery/button/massdriver{ + dir = 2; + id = "toxinsdriver"; + pixel_y = -24 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"kL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/medical/medbay) +"kM" = ( +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/obj/structure/chair, +/turf/open/floor/plasteel/escape{ + dir = 9 + }, +/area/hallway/secondary/exit) +"kN" = ( +/obj/structure/chair, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"kO" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/closet/crate/bin, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"kP" = ( +/obj/machinery/vending/snack, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"kQ" = ( +/obj/machinery/vending/cola, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"kR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/hallway/primary/central) +"kS" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"kT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"kU" = ( +/obj/structure/rack{ + dir = 1 + }, +/obj/item/clothing/mask/gas, +/obj/item/clothing/glasses/meson, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"kV" = ( +/obj/structure/rack{ + dir = 1 + }, +/obj/item/weapon/extinguisher, +/obj/item/clothing/head/hardhat/red, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"kW" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/closed/wall, +/area/hallway/primary/central) +"kX" = ( +/obj/machinery/door/airlock{ + id_tag = "Dorm2"; + name = "Dorm 2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"kY" = ( +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 10 + }, +/area/hallway/primary/central) +"kZ" = ( +/obj/effect/landmark/start{ + name = "Assistant" + }, +/turf/open/floor/plasteel/neutral/side, +/area/hallway/primary/central) +"la" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/device/paicard, +/obj/item/weapon/coin/silver, +/obj/item/weapon/pen, +/obj/machinery/light, +/obj/item/weapon/storage/toolbox/mechanical, +/turf/open/floor/plasteel/neutral/side, +/area/hallway/primary/central) +"lb" = ( +/obj/machinery/bookbinder, +/turf/open/floor/plasteel/neutral/side, +/area/hallway/primary/central) +"lc" = ( +/obj/machinery/libraryscanner, +/turf/open/floor/plasteel/neutral/side, +/area/hallway/primary/central) +"ld" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 22; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"le" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/medical, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"lf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"lg" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"lh" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'BOMB RANGE"; + name = "BOMB RANGE" + }, +/turf/closed/wall, +/area/medical/research{ + name = "Research Division" + }) +"li" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"lj" = ( +/obj/machinery/light, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"lk" = ( +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/hallway/secondary/exit) +"ll" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"lm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"ln" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"lo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"lp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/hallway/secondary/exit) +"lq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/hallway/primary/central) +"lr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"ls" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"lt" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"lu" = ( +/obj/machinery/vending/assist, +/turf/open/floor/plating, +/area/hallway/primary/central) +"lv" = ( +/obj/machinery/vending/tool, +/turf/open/floor/plating, +/area/hallway/primary/central) +"lw" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "ToxinLoad" + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plasteel/bot, +/area/medical/research{ + name = "Research Division" + }) +"lx" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/door/window/eastright, +/turf/open/floor/plasteel/blue{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"ly" = ( +/turf/open/floor/plasteel/warnwhite{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"lz" = ( +/obj/structure/tank_dispenser, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"lA" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + frequency = 1440; + on = 1 + }, +/obj/structure/table/reinforced, +/obj/item/device/transfer_valve{ + pixel_x = -5 + }, +/obj/item/device/transfer_valve{ + pixel_x = 0 + }, +/obj/item/device/transfer_valve{ + pixel_x = 5 + }, +/obj/item/device/transfer_valve{ + pixel_x = 5 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"lB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/structure/table/reinforced, +/obj/item/device/assembly/signaler{ + pixel_x = 0; + pixel_y = 8 + }, +/obj/item/device/assembly/signaler{ + pixel_x = -8; + pixel_y = 5 + }, +/obj/item/device/assembly/signaler{ + pixel_x = 6; + pixel_y = 5 + }, +/obj/item/device/assembly/signaler{ + pixel_x = -2; + pixel_y = -2 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"lC" = ( +/obj/machinery/meter, +/obj/machinery/button/door{ + id = "mixvent"; + name = "Mixing Room Vent Control"; + pixel_x = 25; + pixel_y = 5; + req_access_txt = "7" + }, +/obj/machinery/button/ignition{ + id = "burnchamber"; + pixel_x = 25; + pixel_y = -5 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/visible{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/warnwhite/corner{ + dir = 2 + }, +/area/medical/research{ + name = "Research Division" + }) +"lD" = ( +/obj/structure/table/reinforced, +/obj/item/device/assembly/timer{ + pixel_x = 5; + pixel_y = 4 + }, +/obj/item/device/assembly/timer{ + pixel_x = 6; + pixel_y = -4 + }, +/obj/item/device/assembly/timer{ + pixel_x = -4; + pixel_y = 2 + }, +/obj/item/device/assembly/timer{ + pixel_x = 0; + pixel_y = 0 + }, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"lE" = ( +/obj/item/device/radio/intercom{ + broadcasting = 0; + freerange = 0; + listening = 1; + name = "Common Channel"; + pixel_y = 25 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"lF" = ( +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"lG" = ( +/obj/item/weapon/wrench, +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"lH" = ( +/obj/structure/closet/bombcloset, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"lI" = ( +/obj/machinery/door/airlock/external{ + name = "Escape Airlock" + }, +/turf/open/floor/plating, +/area/hallway/secondary/exit) +"lJ" = ( +/turf/open/floor/plating, +/area/hallway/secondary/exit) +"lK" = ( +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"lL" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"lM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"lN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/hallway/secondary/exit) +"lO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/meter{ + frequency = 1441; + id_tag = "distro_meter"; + name = "Distribution Loop" + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"lP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"lQ" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel, +/area/janitor) +"lR" = ( +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/hallway/primary/central) +"lS" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "recycler" + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"lT" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "recycler" + }, +/obj/machinery/recycler, +/turf/open/floor/plating, +/area/hallway/primary/central) +"lU" = ( +/obj/machinery/airalarm{ + dir = 8; + frequency = 1441; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"lV" = ( +/obj/machinery/mineral/stacking_machine{ + input_dir = 8; + output_dir = 10; + stack_amt = 10 + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"lW" = ( +/obj/machinery/mineral/stacking_unit_console{ + dir = 2; + machinedir = 8; + pixel_y = 27 + }, +/obj/structure/chair/stool, +/turf/open/floor/plating, +/area/hallway/primary/central) +"lX" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"lY" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"lZ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"ma" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"mb" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/storage/eva) +"mc" = ( +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + frequency = 1445; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"md" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "ToxinLoad" + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/machinery/portable_atmospherics/canister/toxins, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/bot, +/area/medical/research{ + name = "Research Division" + }) +"me" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "ToxinLoad" + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/machinery/portable_atmospherics/canister/toxins, +/turf/open/floor/plasteel/bot, +/area/medical/research{ + name = "Research Division" + }) +"mf" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/machinery/portable_atmospherics/canister/toxins, +/obj/machinery/door/window/eastright, +/turf/open/floor/plasteel/red{ + dir = 2 + }, +/area/medical/research{ + name = "Research Division" + }) +"mg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"mh" = ( +/obj/machinery/airlock_sensor{ + id_tag = "tox_airlock_sensor"; + master_tag = "tox_airlock_control"; + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/visible{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/engine, +/area/medical/research{ + name = "Research Division" + }) +"mi" = ( +/obj/machinery/atmospherics/components/binary/volume_pump{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"mj" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/visible{ + icon_state = "intact"; + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/medical/research{ + name = "Research Division" + }) +"mk" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + external_pressure_bound = 0; + frequency = 1450; + initialize_directions = 1; + internal_pressure_bound = 4000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine/vacuum, +/area/medical/research{ + name = "Research Division" + }) +"ml" = ( +/obj/structure/sign/fire, +/obj/machinery/atmospherics/pipe/simple/supplymain/visible{ + icon_state = "intact"; + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/medical/research{ + name = "Research Division" + }) +"mm" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + frequency = 1440; + on = 1 + }, +/obj/machinery/portable_atmospherics/pump, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 2 + }, +/area/medical/research{ + name = "Research Division" + }) +"mn" = ( +/obj/machinery/camera/autoname{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 2 + }, +/area/medical/research{ + name = "Research Division" + }) +"mo" = ( +/obj/machinery/door/poddoor{ + id = "mixvent"; + name = "Mixer Room Vent" + }, +/turf/open/floor/engine/vacuum, +/area/medical/research{ + name = "Research Division" + }) +"mp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"mq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"mr" = ( +/obj/structure/closet, +/turf/open/floor/plating, +/area/hallway/secondary/exit) +"ms" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"mt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"mu" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"mv" = ( +/turf/open/floor/plating/warnplate/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"mw" = ( +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/hallway/primary/central) +"mx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"my" = ( +/obj/machinery/conveyor_switch/oneway{ + id = "recycler"; + name = "recycler conveyor" + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"mz" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"mA" = ( +/obj/structure/table, +/obj/item/clothing/head/welding, +/obj/item/weapon/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000 + }, +/obj/item/weapon/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000 + }, +/obj/item/weapon/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000 + }, +/obj/item/areaeditor/blueprints, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/ai_monitored/storage/eva) +"mB" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/structure/closet/crate/rcd, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/ai_monitored/storage/eva) +"mC" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/ai_monitored/storage/eva) +"mD" = ( +/obj/machinery/camera/autoname, +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/suit_storage_unit/standard_unit, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/ai_monitored/storage/eva) +"mE" = ( +/obj/item/device/radio/intercom{ + broadcasting = 0; + freerange = 0; + listening = 1; + name = "Common Channel"; + pixel_y = 25 + }, +/obj/machinery/suit_storage_unit/standard_unit, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/ai_monitored/storage/eva) +"mF" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/weapon/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000 + }, +/obj/item/device/multitool, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/ai_monitored/storage/eva) +"mG" = ( +/obj/effect/landmark{ + name = "blobstart" + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"mH" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"mI" = ( +/obj/machinery/power/apc{ + auto_name = 1; + dir = 4; + name = "_East APC"; + pixel_x = 27; + pixel_y = 2 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/medical/research{ + name = "Research Division" + }) +"mJ" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 6; + icon_state = "intact"; + level = 2 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"mK" = ( +/obj/machinery/atmospherics/pipe/manifold{ + dir = 1; + icon_state = "manifold"; + level = 2 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"mL" = ( +/obj/machinery/atmospherics/pipe/simple{ + icon_state = "intact"; + dir = 10; + pixel_x = 0; + level = 2; + initialize_directions = 10 + }, +/turf/open/floor/plasteel/white, +/area/medical/research{ + name = "Research Division" + }) +"mM" = ( +/obj/machinery/door/airlock/glass_research{ + autoclose = 0; + frequency = 1449; + glass = 1; + icon_state = "door_locked"; + id_tag = "tox_airlock_interior"; + locked = 1; + name = "Mixing Room Interior Airlock"; + req_access_txt = "8" + }, +/turf/open/floor/engine, +/area/medical/research{ + name = "Research Division" + }) +"mN" = ( +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume{ + dir = 2; + frequency = 1449; + id = "tox_airlock_pump" + }, +/turf/open/floor/engine, +/area/medical/research{ + name = "Research Division" + }) +"mO" = ( +/obj/machinery/door/airlock/glass_research{ + autoclose = 0; + frequency = 1449; + glass = 1; + icon_state = "door_locked"; + id_tag = "tox_airlock_exterior"; + locked = 1; + name = "Mixing Room Exterior Airlock"; + req_access_txt = "8" + }, +/turf/open/floor/engine, +/area/medical/research{ + name = "Research Division" + }) +"mP" = ( +/obj/machinery/igniter{ + icon_state = "igniter0"; + id = "burnchamber"; + on = 0 + }, +/turf/open/floor/engine/vacuum, +/area/medical/research{ + name = "Research Division" + }) +"mQ" = ( +/turf/open/floor/plasteel/escape{ + dir = 8 + }, +/area/hallway/secondary/exit) +"mR" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"mS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"mT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"mU" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/hallway/secondary/exit) +"mV" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plating, +/area/hallway/secondary/exit) +"mW" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/hallway/secondary/exit) +"mX" = ( +/turf/open/floor/plating/warnplate/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"mY" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"mZ" = ( +/obj/structure/table, +/obj/item/stack/sheet/rglass{ + amount = 50 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/ai_monitored/storage/eva) +"na" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"nb" = ( +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"nc" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 2 + }, +/area/medical/research{ + name = "Research Division" + }) +"nd" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/ai_monitored/storage/eva) +"ne" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"nf" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/mob/living/simple_animal/mouse, +/turf/open/floor/plating, +/area/hallway/primary/central) +"ng" = ( +/turf/closed/wall/r_wall, +/area/hallway/primary/central) +"nh" = ( +/obj/machinery/conveyor_switch{ + id = "ToxinLoad" + }, +/turf/open/floor/plasteel/warnwhite/corner{ + dir = 2 + }, +/area/medical/research{ + name = "Research Division" + }) +"ni" = ( +/obj/machinery/portable_atmospherics/canister/nitrogen, +/obj/machinery/light, +/turf/open/floor/plasteel/warnwhite{ + dir = 2 + }, +/area/medical/research{ + name = "Research Division" + }) +"nj" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/plasteel/warnwhite{ + dir = 2 + }, +/area/medical/research{ + name = "Research Division" + }) +"nk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plasteel/warnwhite{ + dir = 2 + }, +/area/medical/research{ + name = "Research Division" + }) +"nl" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + icon_state = "connector_map"; + dir = 4 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 2 + }, +/area/medical/research{ + name = "Research Division" + }) +"nm" = ( +/obj/machinery/meter, +/obj/machinery/embedded_controller/radio/airlock_controller{ + airpump_tag = "tox_airlock_pump"; + exterior_door_tag = "tox_airlock_exterior"; + id_tag = "tox_airlock_control"; + interior_door_tag = "tox_airlock_interior"; + pixel_x = 24; + pixel_y = 0; + sanitize_external = 1; + sensor_tag = "tox_airlock_sensor" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/visible{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plasteel/warnwhite/corner{ + dir = 8 + }, +/area/medical/research{ + name = "Research Division" + }) +"nn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/sign/fire{ + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/visible{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/engine, +/area/medical/research{ + name = "Research Division" + }) +"no" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + icon_state = "inje_map"; + dir = 8 + }, +/turf/open/floor/engine/vacuum, +/area/medical/research{ + name = "Research Division" + }) +"np" = ( +/obj/machinery/atmospherics/components/binary/volume_pump{ + dir = 4 + }, +/turf/open/floor/plasteel/warnwhite/corner{ + dir = 1 + }, +/area/medical/research{ + name = "Research Division" + }) +"nq" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + frequency = 1441; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"nr" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"ns" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/ai_monitored/storage/eva) +"nt" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/heads{ + name = "\improper Job Assignment" + }) +"nu" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/escape{ + dir = 8 + }, +/area/hallway/secondary/exit) +"nv" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"nw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"nx" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + frequency = 1447; + on = 1 + }, +/obj/structure/table, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + freerange = 0; + listening = 1; + name = "Common Channel"; + pixel_y = 25 + }, +/obj/item/weapon/storage/pill_bottle/dice, +/turf/open/floor/carpet{ + icon_state = "carpetnoconnect" + }, +/area/hallway/primary/central) +"ny" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/hallway/secondary/exit) +"nz" = ( +/obj/structure/closet/secure_closet/personal, +/obj/machinery/airalarm{ + frequency = 1447; + pixel_y = 23 + }, +/turf/open/floor/carpet{ + icon_state = "carpetnoconnect" + }, +/area/hallway/primary/central) +"nA" = ( +/turf/closed/wall, +/area/janitor) +"nB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/closed/wall, +/area/janitor) +"nC" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/machinery/meter{ + frequency = 1441; + id_tag = "distro_meter"; + name = "Distribution Loop" + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"nD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"nE" = ( +/mob/living/simple_animal/mouse, +/turf/open/floor/plating, +/area/hallway/primary/central) +"nF" = ( +/turf/open/floor/plating/warnplate{ + dir = 9 + }, +/area/hallway/primary/central) +"nG" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/ai_monitored/storage/eva) +"nH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"nI" = ( +/turf/open/floor/plasteel/delivery, +/area/ai_monitored/storage/eva) +"nJ" = ( +/obj/item/weapon/pen{ + desc = "Writes upside down!"; + name = "astronaut pen" + }, +/turf/open/floor/plasteel/delivery, +/area/ai_monitored/storage/eva) +"nK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"nL" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/ai_monitored/storage/eva) +"nM" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/hallway/primary/central) +"nN" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"nO" = ( +/obj/machinery/power/apc{ + auto_name = 1; + dir = 4; + name = "_East APC"; + pixel_x = 27; + pixel_y = 2 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/medical/medbay) +"nP" = ( +/turf/closed/wall, +/area/medical/medbay) +"nQ" = ( +/obj/structure/table, +/obj/item/weapon/crowbar, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"nR" = ( +/obj/structure/table, +/obj/item/clothing/neck/stethoscope, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"nS" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/masks{ + pixel_x = 0; + pixel_y = 0 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + freerange = 0; + listening = 1; + name = "Common Channel"; + pixel_y = 25 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"nT" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/gloves{ + pixel_x = 3; + pixel_y = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"nU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/medical/research{ + name = "Research Division" + }) +"nV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/medical/research{ + name = "Research Division" + }) +"nW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/camera/autoname{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"nX" = ( +/obj/machinery/power/apc{ + auto_name = 1; + dir = 8; + name = "_West APC"; + pixel_x = -25 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/hallway/secondary/exit) +"nY" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/hallway/secondary/exit) +"nZ" = ( +/obj/machinery/power/apc{ + auto_name = 1; + dir = 4; + name = "_East APC"; + pixel_x = 27; + pixel_y = 2 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/janitor) +"oa" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"ob" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + freerange = 0; + listening = 1; + name = "Common Channel"; + pixel_y = 25 + }, +/turf/open/floor/plasteel, +/area/janitor) +"oc" = ( +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/camera/autoname, +/obj/item/weapon/paper/recycler, +/turf/open/floor/plasteel, +/area/janitor) +"od" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/mousetraps, +/obj/machinery/newscaster{ + pixel_x = 32; + pixel_y = 0 + }, +/obj/item/weapon/storage/box/lights/mixed, +/obj/item/weapon/storage/box/lights/mixed, +/obj/item/weapon/grenade/chem_grenade/cleaner, +/turf/open/floor/plasteel, +/area/janitor) +"oe" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/janitor) +"of" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"og" = ( +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner, +/area/hallway/primary/central) +"oh" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"oi" = ( +/obj/machinery/power/apc{ + auto_name = 1; + dir = 4; + name = "_East APC"; + pixel_x = 27; + pixel_y = 2 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/hallway/primary/central) +"oj" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/weapon/extinguisher, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/ai_monitored/storage/eva) +"ok" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 2 + }, +/area/ai_monitored/storage/eva) +"ol" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warning{ + dir = 2 + }, +/area/ai_monitored/storage/eva) +"om" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/tank/jetpack/carbondioxide, +/obj/item/weapon/tank/jetpack/carbondioxide, +/obj/item/clothing/shoes/magboots, +/obj/item/clothing/shoes/magboots, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/ai_monitored/storage/eva) +"on" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/hallway/primary/central) +"oo" = ( +/obj/effect/landmark/start{ + name = "Assistant" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"op" = ( +/turf/open/floor/plasteel/warnwhite/corner{ + dir = 1 + }, +/area/medical/medbay) +"oq" = ( +/obj/structure/table, +/obj/item/weapon/hemostat, +/obj/machinery/airalarm{ + frequency = 1444; + pixel_y = 23 + }, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/medical/medbay) +"or" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"os" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/sleeper{ + dir = 8; + icon_state = "sleeper-open" + }, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/medical/medbay) +"ot" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/computer/med_data, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/medical/medbay) +"ou" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/medical/medbay) +"ov" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/table, +/obj/item/clothing/suit/straight_jacket, +/obj/item/clothing/mask/muzzle, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"ow" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/table, +/obj/item/device/radio/intercom{ + broadcasting = 0; + freerange = 0; + listening = 1; + name = "Common Channel"; + pixel_y = 25 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"ox" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/table, +/obj/item/weapon/gun/syringe, +/obj/item/weapon/reagent_containers/dropper, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"oy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/vending/medical{ + pixel_x = -2 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"oz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/closet/wardrobe/white, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"oA" = ( +/obj/structure/closet/wardrobe/white, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"oB" = ( +/obj/structure/table, +/obj/item/weapon/surgicaldrill, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/medical/medbay) +"oC" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + frequency = 1444; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"oD" = ( +/obj/structure/table, +/obj/item/weapon/scalpel{ + pixel_y = 12 + }, +/obj/item/weapon/circular_saw, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/medical/medbay) +"oE" = ( +/obj/structure/table, +/obj/item/weapon/retractor, +/obj/item/device/radio/intercom{ + broadcasting = 0; + freerange = 0; + listening = 1; + name = "Common Channel"; + pixel_y = 25 + }, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/medical/medbay) +"oF" = ( +/obj/structure/table, +/obj/item/weapon/cautery{ + pixel_x = 4 + }, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/medical/medbay) +"oG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/medical/medbay) +"oH" = ( +/obj/structure/closet/l3closet/janitor, +/turf/open/floor/plasteel, +/area/janitor) +"oI" = ( +/turf/open/floor/plasteel, +/area/janitor) +"oJ" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start{ + name = "Janitor" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/janitor) +"oK" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/weapon/pen, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/janitor) +"oL" = ( +/turf/open/floor/plating/warnplate{ + dir = 10 + }, +/area/hallway/primary/central) +"oM" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"oN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/ai_monitored/storage/eva) +"oO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/medical/medbay) +"oP" = ( +/obj/machinery/door/airlock/glass_command{ + name = "E.V.A."; + req_access_txt = "18" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"oQ" = ( +/obj/structure/closet/crate/bin, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"oR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/ai_monitored/storage/eva) +"oS" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Medbay Maintenance"; + req_access_txt = "45" + }, +/turf/open/floor/plating, +/area/medical/medbay) +"oT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Custodial Closet"; + req_access_txt = "26" + }, +/turf/open/floor/plasteel, +/area/janitor) +"oU" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + on = 1 + }, +/obj/machinery/newscaster{ + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"oV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"oW" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"oX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"oY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"oZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"pa" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"pb" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"pc" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/latex, +/obj/item/clothing/mask/surgical, +/obj/item/clothing/suit/apron/surgical, +/turf/open/floor/plasteel/white/side{ + dir = 4 + }, +/area/medical/medbay) +"pd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"pe" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + frequency = 1444; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"pf" = ( +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"pg" = ( +/obj/structure/table, +/obj/item/weapon/surgical_drapes, +/turf/open/floor/plasteel/white/side{ + dir = 8 + }, +/area/medical/medbay) +"ph" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/shuttle/arrival) +"pi" = ( +/obj/structure/chair/comfy/beige, +/turf/open/floor/plasteel/grimy, +/area/hallway/secondary/exit) +"pj" = ( +/obj/structure/chair/comfy/beige, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/grimy, +/area/hallway/secondary/exit) +"pk" = ( +/turf/open/floor/plasteel/grimy, +/area/hallway/secondary/exit) +"pl" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp/green{ + pixel_x = 1; + pixel_y = 5 + }, +/turf/open/floor/plasteel/grimy, +/area/hallway/secondary/exit) +"pm" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"pn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/item/weapon/reagent_containers/glass/bucket, +/turf/open/floor/plasteel, +/area/janitor) +"po" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/janitor) +"pp" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_command{ + name = "E.V.A."; + req_access_txt = "18" + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"pq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock/maintenance{ + name = "Custodial Maintenance"; + req_access_txt = "26" + }, +/turf/open/floor/plating, +/area/janitor) +"pr" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"ps" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"pt" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"pu" = ( +/obj/machinery/power/apc{ + auto_name = 1; + dir = 1; + name = "_North APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/ai_monitored/storage/eva) +"pv" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/ai_monitored/storage/eva) +"pw" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"px" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/primary/central) +"py" = ( +/obj/structure/toilet{ + pixel_y = 8 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/item/weapon/razor, +/turf/open/floor/plasteel/freezer, +/area/hallway/primary/central) +"pz" = ( +/obj/structure/mirror{ + pixel_x = 0; + pixel_y = 32 + }, +/obj/structure/sink{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/freezer, +/area/hallway/primary/central) +"pA" = ( +/obj/structure/closet, +/turf/open/floor/plating/warnplate/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"pB" = ( +/obj/structure/sink{ + icon_state = "sink"; + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/turf/open/floor/plasteel/warnwhite/corner{ + dir = 4 + }, +/area/medical/medbay) +"pC" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"pD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"pE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/landmark/start{ + name = "Medical Doctor" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"pF" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/effect/landmark/start{ + name = "Medical Doctor" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"pG" = ( +/obj/effect/landmark/start{ + name = "Medical Doctor" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"pH" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"pI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"pJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"pK" = ( +/obj/structure/table/optable, +/obj/item/weapon/surgical_drapes, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"pL" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/airalarm{ + frequency = 1442; + pixel_y = 23 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"pM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"pN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"pO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"pP" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"pQ" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/fancy/cigarettes{ + pixel_y = 2 + }, +/obj/item/weapon/lighter/greyscale{ + pixel_x = 4; + pixel_y = 2 + }, +/turf/open/floor/carpet, +/area/hallway/secondary/exit) +"pR" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/weapon/pen, +/obj/item/device/camera, +/turf/open/floor/carpet, +/area/hallway/secondary/exit) +"pS" = ( +/obj/structure/chair/comfy/beige{ + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/hallway/secondary/exit) +"pT" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/structure/janitorialcart, +/obj/item/weapon/mop, +/turf/open/floor/plasteel/bot{ + dir = 2 + }, +/area/janitor) +"pU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/requests_console{ + department = "Janitorial"; + departmentType = 1; + pixel_y = -29 + }, +/turf/open/floor/plasteel, +/area/janitor) +"pV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_medical{ + id_tag = "MedbayFoyer"; + name = "Medbay"; + req_access_txt = "5" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"pW" = ( +/obj/structure/closet/crate/bin, +/turf/open/floor/plasteel, +/area/janitor) +"pX" = ( +/obj/machinery/camera/autoname{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"pY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/storage/eva) +"pZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_medical{ + id_tag = "MedbayFoyer"; + name = "Medbay"; + req_access_txt = "5" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"qa" = ( +/obj/structure/sign/nosmoking_2{ + pixel_x = 28 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 2 + }, +/area/medical/medbay) +"qb" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/medical{ + name = "Operating Theatre"; + req_access_txt = "45" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"qc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/storage/eva) +"qd" = ( +/turf/open/floor/plasteel/freezer, +/area/hallway/primary/central) +"qe" = ( +/obj/machinery/shower{ + icon_state = "shower"; + dir = 8 + }, +/turf/open/floor/plasteel/freezer, +/area/hallway/primary/central) +"qf" = ( +/obj/structure/bed/roller, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"qg" = ( +/obj/machinery/button/door{ + desc = "A remote control switch for the medbay foyer."; + id = "MedbayFoyer"; + name = "Medbay Exit Button"; + normaldoorcontrol = 1; + pixel_x = 0; + pixel_y = -26 + }, +/obj/structure/bed/roller, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"qh" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_medical{ + id_tag = null; + name = "Medbay"; + req_access_txt = "5" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"qi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Diner" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"qj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Diner" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"qk" = ( +/obj/machinery/requests_console{ + announcementConsole = 0; + department = "Medbay"; + departmentType = 1; + name = "Medbay RC"; + pixel_x = 0; + pixel_y = -30; + pixel_z = 0 + }, +/obj/structure/closet/crate/bin, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"ql" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"qm" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"qn" = ( +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/medbay) +"qo" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"qp" = ( +/obj/structure/chair/comfy/beige{ + dir = 1; + icon_state = "comfychair" + }, +/turf/open/floor/plasteel/grimy, +/area/hallway/secondary/exit) +"qq" = ( +/obj/machinery/computer/operating, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/medical/medbay) +"qr" = ( +/obj/machinery/camera/autoname{ + dir = 8 + }, +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 4 + }, +/area/medical/medbay) +"qs" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/escape{ + dir = 10 + }, +/area/hallway/secondary/exit) +"qt" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"qu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 4 + }, +/area/medical/medbay) +"qv" = ( +/obj/structure/closet/crate/bin, +/turf/open/floor/plasteel/grimy, +/area/hallway/secondary/exit) +"qw" = ( +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 2 + }, +/area/medical/medbay) +"qx" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"qy" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + frequency = 1442; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"qz" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/eastright{ + dir = 2; + name = "Chemistry Desk"; + req_access_txt = "33" + }, +/obj/item/clothing/glasses/science, +/obj/machinery/door/firedoor/heavy, +/turf/open/floor/plating, +/area/medical/medbay) +"qA" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + frequency = 1442; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"qB" = ( +/obj/machinery/door/airlock{ + name = "Public Toilets" + }, +/turf/open/floor/plasteel/freezer, +/area/hallway/primary/central) +"qC" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/effect/landmark/start{ + name = "Cook" + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"qD" = ( +/obj/structure/chair, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + frequency = 1442; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"qE" = ( +/obj/structure/chair, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"qF" = ( +/obj/structure/sign/bluecross, +/turf/closed/wall, +/area/medical/medbay) +"qG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 4 + }, +/area/medical/medbay) +"qH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_medical{ + id_tag = null; + name = "Cryo"; + req_access_txt = "45" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"qI" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/engineering) +"qJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/engineering) +"qK" = ( +/obj/machinery/camera/autoname{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"qL" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads{ + name = "\improper Job Assignment" + }) +"qM" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Head of Personnel Office"; + req_access = null; + req_access_txt = "57" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads{ + name = "\improper Job Assignment" + }) +"qN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 8 + }, +/area/medical/medbay) +"qO" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + frequency = 1440; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"qP" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer, +/obj/machinery/airalarm{ + frequency = 1441; + pixel_y = 23 + }, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/medical/medbay) +"qQ" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"qR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/camera/autoname, +/obj/machinery/airalarm{ + frequency = 1440; + pixel_y = 23 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"qS" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"qT" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"qU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"qV" = ( +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"qW" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"qX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"qY" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"qZ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/hallway/primary/central) +"ra" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/hallway/primary/central) +"rb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/hallway/primary/central) +"rc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"rd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side{ + dir = 1 + }, +/area/hallway/primary/central) +"re" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"rf" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"rg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 8 + }, +/area/medical/medbay) +"rh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 1 + }, +/area/medical/medbay) +"ri" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 1 + }, +/area/medical/medbay) +"rj" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/reagent_containers/food/drinks/britcup{ + desc = "Kingston's personal cup." + }, +/obj/machinery/camera/autoname, +/obj/item/device/radio/intercom{ + broadcasting = 0; + freerange = 0; + listening = 1; + name = "Common Channel"; + pixel_y = 25 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"rk" = ( +/obj/machinery/button/door{ + desc = "A remote control switch for the medbay foyer."; + id = "MedbayFoyer"; + name = "Medbay Doors Control"; + normaldoorcontrol = 1; + pixel_x = -26; + req_access_txt = "5" + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 8 + }, +/area/medical/medbay) +"rl" = ( +/obj/machinery/computer/med_data, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"rm" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple{ + dir = 4; + icon_state = "intact"; + level = 2 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"rn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 8 + }, +/area/medical/medbay) +"ro" = ( +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 + }, +/area/medical/medbay) +"rp" = ( +/obj/structure/closet/secure_closet/medical2, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/medical/medbay) +"rq" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/beakers{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/weapon/reagent_containers/dropper, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"rr" = ( +/obj/machinery/vending/wallmed{ + pixel_y = -28 + }, +/obj/structure/table, +/obj/item/weapon/storage/box/syringes, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"rs" = ( +/obj/machinery/computer/pandemic, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"rt" = ( +/obj/structure/closet/crate/freezer, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"ru" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"rv" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel{ + icon_state = "L1"; + dir = 4 + }, +/area/hallway/secondary/exit) +"rw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel{ + icon_state = "L3"; + dir = 4 + }, +/area/hallway/secondary/exit) +"rx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + icon_state = "L5"; + dir = 4 + }, +/area/hallway/secondary/exit) +"ry" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + icon_state = "L7"; + dir = 4 + }, +/area/hallway/secondary/exit) +"rz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + icon_state = "L9"; + dir = 4 + }, +/area/hallway/secondary/exit) +"rA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + icon_state = "L11"; + dir = 4 + }, +/area/hallway/secondary/exit) +"rB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + icon_state = "L13"; + dir = 4 + }, +/area/hallway/secondary/exit) +"rC" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"rD" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"rE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"rF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"rG" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"rH" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + frequency = 1441; + on = 1 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 8 + }, +/area/medical/medbay) +"rI" = ( +/turf/open/floor/plasteel/warnwhite{ + dir = 8 + }, +/area/medical/medbay) +"rJ" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/folder/white, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"rK" = ( +/obj/structure/chair/office/light{ + dir = 8 + }, +/obj/effect/landmark/start{ + name = "Medical Doctor" + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 8 + }, +/area/medical/medbay) +"rL" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/eastright{ + dir = 8; + name = "Chemistry Desk"; + req_access_txt = "33" + }, +/obj/machinery/door/firedoor/heavy, +/turf/open/floor/plating, +/area/medical/medbay) +"rM" = ( +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"rN" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel{ + icon_state = "L2"; + dir = 4 + }, +/area/hallway/secondary/exit) +"rO" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel{ + icon_state = "L4"; + dir = 4 + }, +/area/hallway/secondary/exit) +"rP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel{ + icon_state = "L6"; + dir = 4 + }, +/area/hallway/secondary/exit) +"rQ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel{ + icon_state = "L8"; + dir = 4 + }, +/area/hallway/secondary/exit) +"rR" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel{ + icon_state = "L10"; + dir = 4 + }, +/area/hallway/secondary/exit) +"rS" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel{ + icon_state = "L12"; + dir = 4 + }, +/area/hallway/secondary/exit) +"rT" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel{ + icon_state = "L14"; + dir = 4 + }, +/area/hallway/secondary/exit) +"rU" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/telecomms/server/presets/common/birdstation, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/computer) +"rV" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"rW" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"rX" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"rY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warnwhite{ + dir = 8 + }, +/area/medical/medbay) +"rZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"sa" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/weapon/pen, +/obj/structure/sign/nosmoking_2{ + pixel_x = 0; + pixel_y = -30 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"sb" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 8 + }, +/area/medical/medbay) +"sc" = ( +/obj/machinery/vending/medical{ + pixel_x = -2 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"sd" = ( +/obj/machinery/chem_heater, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"se" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar) +"sf" = ( +/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{ + pixel_x = 7; + pixel_y = 1 + }, +/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{ + pixel_x = 0; + pixel_y = 0 + }, +/obj/item/weapon/wrench{ + pixel_x = 5; + pixel_y = -5 + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"sg" = ( +/obj/machinery/atmospherics/components/unary/cryo_cell, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/medical/medbay) +"sh" = ( +/obj/machinery/atmospherics/components/unary/portables_connector, +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/medical/medbay) +"si" = ( +/obj/structure/table, +/obj/item/stack/packageWrap, +/obj/item/weapon/hand_labeler, +/obj/item/device/radio/headset/headset_med, +/obj/item/device/radio/intercom{ + broadcasting = 0; + freerange = 0; + listening = 1; + name = "Common Channel"; + pixel_y = 25 + }, +/obj/machinery/camera/autoname, +/turf/open/floor/plasteel/whiteyellow/corner{ + dir = 2 + }, +/area/medical/medbay) +"sj" = ( +/obj/structure/bed/roller, +/obj/item/device/radio/intercom{ + broadcasting = 0; + freerange = 0; + listening = 1; + name = "Common Channel"; + pixel_y = 25 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"sk" = ( +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"sl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"sm" = ( +/turf/open/floor/plasteel/loadingarea{ + dir = 4 + }, +/area/hallway/secondary/exit) +"sn" = ( +/turf/open/floor/plasteel/bot, +/area/hallway/secondary/exit) +"so" = ( +/turf/open/floor/plasteel/delivery, +/area/hallway/secondary/exit) +"sp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/crew_quarters/heads{ + name = "\improper Job Assignment" + }) +"sq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/crew_quarters/heads{ + name = "\improper Job Assignment" + }) +"sr" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/heads{ + name = "\improper Job Assignment" + }) +"ss" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + frequency = 1440; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"st" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + frequency = 1441; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"su" = ( +/turf/closed/wall, +/area/crew_quarters/bar) +"sv" = ( +/obj/structure/sign/barsign, +/turf/closed/wall, +/area/crew_quarters/bar) +"sw" = ( +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"sx" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 8 + }, +/area/medical/medbay) +"sy" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"sz" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 4 + }, +/area/medical/medbay) +"sA" = ( +/obj/structure/table, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/obj/machinery/chem_dispenser/drinks, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar) +"sB" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + frequency = 1442; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"sC" = ( +/obj/structure/sign/chemistry, +/turf/closed/wall, +/area/medical/medbay) +"sD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_medical{ + id_tag = "GeneticsDoor"; + name = "Genetics"; + req_access_txt = "45" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"sE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"sF" = ( +/obj/machinery/telecomms/receiver/preset_left/birdstation, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/computer) +"sG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 2 + }, +/area/medical/medbay) +"sH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/engine/engineering) +"sI" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/beakers{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/weapon/storage/box/beakers{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/weapon/storage/box/syringes, +/obj/item/weapon/storage/pill_bottle/epinephrine{ + pixel_x = 5; + pixel_y = -2 + }, +/obj/item/weapon/storage/pill_bottle/epinephrine{ + pixel_x = 5; + pixel_y = -2 + }, +/obj/item/weapon/reagent_containers/dropper, +/obj/item/weapon/reagent_containers/dropper, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"sJ" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 5; + icon_state = "intact"; + level = 2 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"sK" = ( +/obj/machinery/atmospherics/pipe/manifold{ + icon_state = "manifold"; + level = 2 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"sL" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 9; + icon_state = "intact"; + level = 2 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"sM" = ( +/obj/structure/table, +/obj/machinery/chem_dispenser/drinks/beer, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar) +"sN" = ( +/obj/item/weapon/screwdriver{ + pixel_x = -2; + pixel_y = 6 + }, +/obj/item/stack/sheet/mineral/plasma{ + layer = 2.9 + }, +/obj/item/stack/sheet/mineral/plasma{ + layer = 2.9 + }, +/obj/item/device/radio/headset/headset_med, +/obj/item/device/assembly/igniter, +/obj/item/device/assembly/igniter, +/obj/item/device/assembly/timer, +/obj/item/device/assembly/timer, +/obj/item/weapon/grenade/chem_grenade, +/obj/item/weapon/grenade/chem_grenade, +/obj/machinery/light, +/obj/structure/table/glass, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"sO" = ( +/obj/machinery/pipedispenser/disposal/transit_tube, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"sP" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/arrival) +"sQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"sR" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/brigdoor{ + base_state = "rightsecure"; + dir = 2; + icon_state = "rightsecure"; + name = "Head of Personnel's Desk"; + req_access_txt = "57" + }, +/obj/machinery/door/window/northright{ + name = "Reception Window" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads{ + name = "\improper Job Assignment" + }) +"sS" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/closed/wall/r_wall, +/area/crew_quarters/heads{ + name = "\improper Job Assignment" + }) +"sT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/table, +/obj/item/weapon/book/manual/wiki/security_space_law, +/obj/item/stack/packageWrap, +/obj/item/weapon/hand_labeler, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads{ + name = "\improper Job Assignment" + }) +"sU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/table, +/obj/item/weapon/folder/blue, +/obj/item/weapon/stamp/hop, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Lieutenant Office"; + departmentType = 5; + name = "Lieutenant RC"; + pixel_y = 30 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads{ + name = "\improper Job Assignment" + }) +"sV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/closet/crate/bin, +/turf/open/floor/plasteel, +/area/crew_quarters/heads{ + name = "\improper Job Assignment" + }) +"sW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/crew_quarters/heads{ + name = "\improper Job Assignment" + }) +"sX" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"sY" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + frequency = 1443; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"sZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"ta" = ( +/obj/machinery/vending/cigarette{ + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"tb" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"tc" = ( +/obj/structure/chair, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"td" = ( +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"te" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 8 + }, +/area/medical/medbay) +"tf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/airlock/glass_medical{ + id_tag = null; + name = "Chemistry Lab"; + req_access_txt = "5; 33" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"tg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/whiteyellow/corner{ + dir = 1 + }, +/area/medical/medbay) +"th" = ( +/obj/structure/closet/crate/bin, +/obj/structure/noticeboard{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"ti" = ( +/obj/machinery/reagentgrinder, +/obj/structure/table/glass, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"tj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"tk" = ( +/obj/machinery/suit_storage_unit/engine, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"tl" = ( +/obj/structure/table, +/obj/machinery/door/window/southleft{ + layer = 3.1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"tm" = ( +/obj/structure/table, +/obj/machinery/door/window/southright{ + layer = 3.1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"tn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads{ + name = "\improper Job Assignment" + }) +"to" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/medbay) +"tp" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + frequency = 1442; + on = 1 + }, +/obj/machinery/button/door{ + desc = "A remote control switch for the genetics doors."; + id = "GeneticsDoor"; + name = "Genetics Exit Button"; + normaldoorcontrol = 1; + pixel_x = 8; + pixel_y = 24 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 8 + }, +/area/medical/medbay) +"tq" = ( +/obj/machinery/smartfridge/chemistry, +/turf/closed/wall, +/area/medical/medbay) +"tr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whiteyellow/corner{ + dir = 8 + }, +/area/medical/medbay) +"ts" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_medical{ + id_tag = null; + name = "Medbay Storage"; + req_access_txt = "45" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"tt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Bar Storage"; + req_access_txt = "25" + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"tu" = ( +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/crew_quarters/heads{ + name = "\improper Job Assignment" + }) +"tv" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"tw" = ( +/obj/machinery/vending/wallmed{ + pixel_y = -28 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"tx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/engine/engineering) +"ty" = ( +/obj/machinery/door/airlock/external{ + name = "Arrival Airlock" + }, +/turf/open/floor/plating, +/area/hallway/secondary/exit) +"tz" = ( +/obj/structure/closet/secure_closet/engineering_electrical, +/turf/open/floor/plasteel, +/area/engine/engineering) +"tA" = ( +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/hallway/secondary/exit) +"tB" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"tC" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Bar Storage"; + req_access_txt = "25" + }, +/turf/open/floor/plasteel{ + icon_state = "wood" + }, +/area/crew_quarters/bar) +"tD" = ( +/obj/machinery/airalarm{ + frequency = 1442; + pixel_y = 23 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"tE" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads{ + name = "\improper Job Assignment" + }) +"tF" = ( +/obj/machinery/computer/card, +/turf/open/floor/plasteel, +/area/crew_quarters/heads{ + name = "\improper Job Assignment" + }) +"tG" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/effect/landmark/start{ + name = "Head of Personnel" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads{ + name = "\improper Job Assignment" + }) +"tH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/computer/secure_data, +/obj/item/device/radio/intercom{ + broadcasting = 0; + freerange = 0; + listening = 1; + name = "Common Channel"; + pixel_y = 25 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads{ + name = "\improper Job Assignment" + }) +"tI" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/structure/table, +/obj/item/weapon/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/weapon/pen, +/turf/open/floor/plasteel, +/area/crew_quarters/heads{ + name = "\improper Job Assignment" + }) +"tJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/chair{ + dir = 8 + }, +/mob/living/simple_animal/pet/dog/corgi/Ian, +/turf/open/floor/plasteel, +/area/crew_quarters/heads{ + name = "\improper Job Assignment" + }) +"tK" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads{ + name = "\improper Job Assignment" + }) +"tL" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads{ + name = "\improper Job Assignment" + }) +"tM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9; + pixel_y = 0 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"tN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/hallway/primary/central) +"tO" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"tP" = ( +/obj/structure/transit_tube{ + icon_state = "N-S" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/engine/engineering) +"tQ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"tR" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/condiment/peppermill{ + pixel_x = 3 + }, +/obj/item/weapon/reagent_containers/food/condiment/saltshaker{ + pixel_x = -3; + pixel_y = 0 + }, +/obj/item/weapon/kitchen/fork, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"tS" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"tT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"tU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"tV" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/lighter, +/obj/structure/sign/securearea{ + desc = "Under the painting a plaque reads: 'While the meat grinder may not have spared you, fear not. Not one part of you has gone to waste... You were delicious.'"; + icon_state = "monkey_painting"; + name = "Mr. Deempisi portrait"; + pixel_x = 4; + pixel_y = 28 + }, +/turf/open/floor/carpet, +/area/crew_quarters/bar) +"tW" = ( +/obj/structure/chair/stool, +/turf/open/floor/carpet, +/area/crew_quarters/bar) +"tX" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1 + }, +/obj/machinery/photocopier, +/turf/open/floor/plasteel, +/area/crew_quarters/heads{ + name = "\improper Job Assignment" + }) +"tY" = ( +/obj/item/device/radio/intercom{ + broadcasting = 0; + freerange = 0; + listening = 1; + name = "Common Channel"; + pixel_x = 25; + pixel_y = 0 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar) +"tZ" = ( +/obj/machinery/door/window/eastright, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/neutral/side, +/area/hallway/primary/central) +"ua" = ( +/obj/machinery/chem_dispenser, +/obj/item/weapon/reagent_containers/glass/beaker/large, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"ub" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Chemist" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"uc" = ( +/obj/machinery/chem_master, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"ud" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start{ + name = "Chemist" + }, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 4 + }, +/area/medical/medbay) +"ue" = ( +/obj/item/device/radio/intercom{ + broadcasting = 0; + freerange = 0; + listening = 1; + name = "Common Channel"; + pixel_y = 25 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/bar) +"uf" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Frozen Storage"; + req_access_txt = "25" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/bar) +"ug" = ( +/obj/machinery/camera/autoname{ + dir = 8 + }, +/obj/structure/sign/nosmoking_2{ + pixel_x = 28 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 4 + }, +/area/medical/medbay) +"uh" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/tcommsat/computer) +"ui" = ( +/obj/structure/closet/secure_closet/engineering_welding, +/turf/open/floor/plasteel, +/area/engine/engineering) +"uj" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/hallway/secondary/exit) +"uk" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/warning, +/area/hallway/secondary/exit) +"ul" = ( +/obj/machinery/camera/autoname{ + dir = 1 + }, +/turf/open/floor/plasteel/warning, +/area/hallway/secondary/exit) +"um" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/hallway/secondary/exit) +"un" = ( +/turf/open/floor/plasteel, +/area/crew_quarters/heads{ + name = "\improper Job Assignment" + }) +"uo" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads{ + name = "\improper Job Assignment" + }) +"up" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"uq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads{ + name = "\improper Job Assignment" + }) +"ur" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads{ + name = "\improper Job Assignment" + }) +"us" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads{ + name = "\improper Job Assignment" + }) +"ut" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/camera/autoname{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads{ + name = "\improper Job Assignment" + }) +"uu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"uv" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/blue/side{ + dir = 9 + }, +/area/hallway/primary/central) +"uw" = ( +/obj/structure/transit_tube{ + icon_state = "N-S" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/tcommsat/computer) +"ux" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"uy" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/fancy/donut_box, +/turf/open/floor/carpet, +/area/crew_quarters/bar) +"uz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar) +"uA" = ( +/obj/machinery/requests_console{ + department = "Bar"; + departmentType = 2; + pixel_x = 30; + pixel_y = 0 + }, +/mob/living/carbon/monkey/punpun, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar) +"uB" = ( +/obj/machinery/hydroponics/soil, +/obj/item/weapon/cultivator, +/turf/open/floor/plasteel/green/side{ + dir = 1 + }, +/area/hallway/primary/central) +"uC" = ( +/obj/machinery/hydroponics/soil, +/obj/item/weapon/hatchet, +/turf/open/floor/plasteel/green/side{ + dir = 1 + }, +/area/hallway/primary/central) +"uD" = ( +/obj/machinery/hydroponics/soil, +/turf/open/floor/plasteel/green/side{ + dir = 1 + }, +/area/hallway/primary/central) +"uE" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -27; + pixel_y = 0 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + frequency = 1440; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"uF" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + frequency = 1440; + on = 1 + }, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 4 + }, +/area/medical/medbay) +"uG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"uH" = ( +/turf/open/floor/wood, +/area/crew_quarters/bar) +"uI" = ( +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"uJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 1 + }, +/area/medical/medbay) +"uK" = ( +/obj/machinery/vending/wallmed{ + pixel_y = 28 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"uL" = ( +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"uM" = ( +/obj/item/device/radio/intercom{ + broadcasting = 0; + freerange = 0; + listening = 1; + name = "Common Channel"; + pixel_y = 25 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + frequency = 1442; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"uN" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + icon_state = "intact"; + dir = 1 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/engineering) +"uO" = ( +/obj/machinery/door/airlock/external{ + name = "Arrival Airlock" + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"uP" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + icon_state = "intact"; + dir = 1 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/engineering) +"uQ" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ + dir = 8 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/engineering) +"uR" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/tcommsat/computer) +"uS" = ( +/obj/machinery/airalarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22 + }, +/obj/structure/closet/secure_closet/hop, +/turf/open/floor/plasteel, +/area/crew_quarters/heads{ + name = "\improper Job Assignment" + }) +"uT" = ( +/obj/item/device/radio/intercom{ + broadcasting = 0; + freerange = 0; + listening = 1; + name = "Common Channel"; + pixel_y = 25 + }, +/obj/structure/closet/radiation, +/turf/open/floor/plasteel, +/area/engine/engineering) +"uU" = ( +/obj/structure/closet/crate/bin, +/obj/machinery/airalarm{ + dir = 4; + frequency = 1440; + icon_state = "alarm0"; + pixel_x = -22 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"uV" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/book/manual/barman_recipes, +/obj/item/stack/packageWrap, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = -32 + }, +/turf/open/floor/carpet, +/area/crew_quarters/bar) +"uW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/filingcabinet/employment, +/turf/open/floor/plasteel, +/area/crew_quarters/heads{ + name = "\improper Job Assignment" + }) +"uX" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/blue/side{ + dir = 10 + }, +/area/hallway/primary/central) +"uY" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"uZ" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/head/that{ + throwforce = 1; + throwing = 1 + }, +/turf/open/floor/carpet, +/area/crew_quarters/bar) +"va" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0 + }, +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar) +"vb" = ( +/turf/open/floor/plasteel/green/side{ + dir = 1 + }, +/area/hallway/primary/central) +"vc" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8; + frequency = 1447; + on = 1 + }, +/turf/open/floor/carpet{ + icon_state = "carpetnoconnect" + }, +/area/hallway/primary/central) +"vd" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"ve" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/airalarm{ + dir = 8; + frequency = 1443; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/hallway/primary/central) +"vf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/whiteyellow/side{ + dir = 4 + }, +/area/medical/medbay) +"vg" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) +"vh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering{ + name = "Engineering"; + req_access_txt = "10" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"vi" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"vj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/whiteblue/corner{ + dir = 4 + }, +/area/medical/medbay) +"vk" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/brute{ + pixel_x = 2; + pixel_y = 6 + }, +/obj/item/weapon/storage/firstaid/brute{ + pixel_x = -2; + pixel_y = 4 + }, +/obj/machinery/airalarm{ + frequency = 1445; + pixel_y = 23 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"vl" = ( +/obj/structure/chair, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"vm" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/arrival) +"vn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/tcommsat/computer) +"vo" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/space) +"vp" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall14"; + dir = 2 + }, +/area/shuttle/arrival) +"vq" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Arrivals Shuttle Airlock" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"vr" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s10"; + dir = 2 + }, +/area/shuttle/arrival) +"vs" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall11"; + dir = 2 + }, +/area/shuttle/arrival) +"vt" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/door/airlock/maintenance{ + name = "Lieutenant Office Maintenance Access"; + req_access_txt = "57" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads{ + name = "\improper Job Assignment" + }) +"vu" = ( +/obj/machinery/vending/cart, +/turf/open/floor/plasteel, +/area/crew_quarters/heads{ + name = "\improper Job Assignment" + }) +"vv" = ( +/obj/machinery/pdapainter, +/turf/open/floor/plasteel, +/area/crew_quarters/heads{ + name = "\improper Job Assignment" + }) +"vw" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"vx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"vy" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"vz" = ( +/obj/structure/table/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/bar) +"vA" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/bar) +"vB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar) +"vC" = ( +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/crew_quarters/bar) +"vD" = ( +/obj/machinery/smartfridge, +/turf/closed/wall, +/area/crew_quarters/bar) +"vE" = ( +/obj/machinery/camera/autoname{ + dir = 4 + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"vF" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + frequency = 1445; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"vG" = ( +/obj/machinery/vending/boozeomat, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"vH" = ( +/obj/machinery/reagentgrinder, +/obj/structure/table/wood, +/obj/machinery/airalarm{ + frequency = 1440; + pixel_y = 24 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"vI" = ( +/obj/structure/closet/secure_closet/chemical, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"vJ" = ( +/obj/structure/closet/wardrobe/chemistry_white, +/turf/open/floor/plasteel/whiteyellow/corner{ + dir = 4 + }, +/area/medical/medbay) +"vK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + freerange = 0; + listening = 1; + name = "Common Channel"; + pixel_y = 25 + }, +/obj/structure/closet/secure_closet/engineering_personal, +/turf/open/floor/plasteel, +/area/engine/engineering) +"vL" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 9 + }, +/area/engine/engineering) +"vM" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 5 + }, +/area/engine/engineering) +"vN" = ( +/obj/structure/closet/secure_closet/personal/patient, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"vO" = ( +/obj/machinery/dna_scannernew, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/medical/medbay) +"vP" = ( +/obj/machinery/light, +/obj/machinery/computer/cloning, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/medical/medbay) +"vQ" = ( +/obj/machinery/clonepod, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/medical/medbay) +"vR" = ( +/obj/structure/table, +/obj/item/weapon/book/manual/medical_cloning{ + pixel_y = 6 + }, +/obj/item/weapon/storage/box/rxglasses{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/bodybags, +/obj/item/weapon/pen, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"vS" = ( +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"vT" = ( +/obj/structure/closet/wardrobe/green, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"vU" = ( +/obj/machinery/computer/arcade, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"vV" = ( +/obj/structure/closet/wardrobe/mixed, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"vW" = ( +/obj/structure/closet/wardrobe/black, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"vX" = ( +/obj/structure/closet/wardrobe/grey, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"vY" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall7"; + dir = 2 + }, +/area/shuttle/arrival) +"vZ" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion"; + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/shuttle/arrival) +"wa" = ( +/turf/open/floor/mineral/titanium/blue, +/turf/closed/wall/mineral/titanium/interior, +/area/shuttle/arrival) +"wb" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/tank/internals/emergency_oxygen, +/turf/open/floor/plating, +/area/hallway/primary/central) +"wc" = ( +/turf/closed/wall, +/area/crew_quarters/heads{ + name = "\improper Job Assignment" + }) +"wd" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/closet, +/turf/open/floor/plating, +/area/hallway/primary/central) +"we" = ( +/obj/structure/piano, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"wf" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/light, +/obj/effect/landmark/start{ + name = "Clown" + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"wg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"wh" = ( +/obj/structure/reagent_dispensers/beerkeg, +/obj/machinery/airalarm{ + dir = 4; + frequency = 1441; + pixel_x = -24 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/bar) +"wi" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"wj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"wk" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/machinery/camera/autoname{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/bar, +/area/crew_quarters/bar) +"wl" = ( +/obj/structure/kitchenspike, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/monkey, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/monkey, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/monkey, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/monkey, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/monkey, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 2; + frequency = 1441; + on = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/bar) +"wm" = ( +/obj/machinery/light/small, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + frequency = 1441; + on = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/bar) +"wn" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/brigdoor{ + dir = 8; + layer = 3.1; + name = "Bar Access"; + req_access = list(); + req_one_access_txt = "25" + }, +/turf/open/floor/plasteel/delivery, +/area/crew_quarters/bar) +"wo" = ( +/turf/open/floor/plating/warnplate/corner{ + dir = 2 + }, +/area/hallway/primary/central) +"wp" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/gravity_generator) +"wq" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/gravity_generator) +"wr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/gravity_generator) +"ws" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/turf/open/floor/plasteel, +/area/engine/engineering) +"wt" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/gravity_generator) +"wu" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall3"; + dir = 2 + }, +/area/shuttle/arrival) +"wv" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"ww" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/landmark{ + name = "JoinLate" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"wx" = ( +/obj/structure/shuttle/engine/heater{ + icon_state = "heater"; + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/shuttle/arrival) +"wy" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + external_pressure_bound = 0; + frequency = 1444; + id_tag = "o2_out"; + initialize_directions = 1; + internal_pressure_bound = 4000; + on = 1; + pressure_checks = 2; + pump_direction = 0 + }, +/turf/open/floor/engine{ + name = "air floor"; + initial_gas_mix = "n2=10580;o2=2644" + }, +/area/engine/engineering) +"wz" = ( +/obj/effect/landmark{ + name = "Observer-Start" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"wA" = ( +/obj/machinery/power/apc{ + auto_name = 1; + dir = 1; + name = "_North APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/crew_quarters/heads{ + name = "\improper Job Assignment" + }) +"wB" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + frequency = 1443; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"wC" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"wD" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"wE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"wF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"wG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/crew_quarters/bar) +"wH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 5; + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"wI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/crew_quarters/bar) +"wJ" = ( +/obj/machinery/light/small, +/obj/structure/closet/gmcloset, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + frequency = 1440; + on = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"wK" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_engineering{ + name = "Engineering"; + req_access_txt = "10"; + req_one_access_txt = "0" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"wL" = ( +/obj/machinery/vending/hydronutrients, +/turf/open/floor/plasteel/yellow/side, +/area/hallway/primary/central) +"wM" = ( +/obj/machinery/seed_extractor, +/turf/open/floor/plasteel/yellow/side, +/area/hallway/primary/central) +"wN" = ( +/obj/machinery/biogenerator, +/turf/open/floor/plasteel/yellow/side, +/area/hallway/primary/central) +"wO" = ( +/obj/machinery/vending/hydroseeds, +/turf/open/floor/plasteel/yellow/side, +/area/hallway/primary/central) +"wP" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/o2{ + pixel_x = 2; + pixel_y = 6 + }, +/obj/item/weapon/storage/firstaid/o2{ + pixel_x = -2; + pixel_y = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"wQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/medical/medbay) +"wR" = ( +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/medical/medbay) +"wS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/warnwhite{ + dir = 1 + }, +/area/medical/medbay) +"wT" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass_engineering{ + name = "Engineering"; + req_access_txt = "10"; + req_one_access_txt = "0" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"wU" = ( +/turf/open/floor/plasteel/shuttle, +/turf/closed/wall/shuttle{ + icon_state = "swall_f10"; + dir = 2 + }, +/area/shuttle/arrival) +"wV" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall13"; + dir = 2 + }, +/area/shuttle/arrival) +"wW" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/mob/living/simple_animal/mouse, +/turf/open/floor/plating, +/area/hallway/primary/central) +"wX" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating/warnplate/corner{ + dir = 2 + }, +/area/hallway/primary/central) +"wY" = ( +/obj/machinery/atmospherics/components/binary/pump/on, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating/warnplate{ + dir = 2 + }, +/area/hallway/primary/central) +"wZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/machinery/meter{ + use_power = 0 + }, +/turf/open/floor/plating/warnplate/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"xa" = ( +/obj/structure/closet/crate{ + desc = "It's a storage unit for kitchen clothes and equipment."; + name = "Kitchen Crate" + }, +/obj/item/clothing/head/chefhat, +/obj/item/clothing/under/rank/chef, +/obj/item/weapon/storage/box/mousetraps{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/weapon/storage/box/mousetraps, +/obj/item/clothing/under/waiter, +/obj/item/clothing/under/waiter, +/obj/item/weapon/reagent_containers/food/condiment/flour, +/obj/item/weapon/reagent_containers/food/condiment/flour, +/obj/item/weapon/reagent_containers/food/condiment/flour, +/obj/item/weapon/reagent_containers/food/condiment/flour, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/bar) +"xb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/firealarm{ + dir = 2; + pixel_y = 24 + }, +/obj/machinery/camera/autoname, +/mob/living/simple_animal/mouse/brown/Tom, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/bar) +"xc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/engine/engineering) +"xd" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/engine/engineering) +"xe" = ( +/obj/structure/sink/kitchen{ + pixel_y = 28 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"xf" = ( +/obj/machinery/pipedispenser/disposal, +/turf/open/floor/plasteel, +/area/engine/engineering) +"xg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/vending/dinnerware, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"xh" = ( +/obj/machinery/light/small, +/obj/machinery/processor, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + frequency = 1440; + on = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"xi" = ( +/obj/machinery/microwave{ + pixel_x = -3; + pixel_y = 6 + }, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"xj" = ( +/obj/structure/closet/crate/bin, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"xk" = ( +/obj/machinery/suit_storage_unit/engine, +/turf/open/floor/plasteel, +/area/engine/engineering) +"xl" = ( +/obj/structure/closet/wardrobe/white/medical, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"xm" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/fire{ + pixel_x = 2; + pixel_y = 6 + }, +/obj/item/weapon/storage/firstaid/fire{ + pixel_x = -2; + pixel_y = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"xn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/engine/engineering) +"xo" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/engine/engineering) +"xp" = ( +/obj/structure/closet/secure_closet/medical3, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"xq" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s5"; + dir = 2 + }, +/area/shuttle/arrival) +"xr" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"xs" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE" + }, +/turf/closed/wall, +/area/hallway/primary/central) +"xt" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/engine/engineering) +"xu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/meter, +/turf/open/floor/plating, +/area/hallway/primary/central) +"xv" = ( +/obj/machinery/door/airlock/glass{ + name = "Central Access" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"xw" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/bar) +"xx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/chem_master/condimaster{ + name = "CondiMaster Neo" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/bar) +"xy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/closed/wall, +/area/crew_quarters/bar) +"xz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + freerange = 0; + listening = 1; + name = "Common Channel"; + pixel_x = -25; + pixel_y = 0 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"xA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"xB" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/obj/structure/closet/wardrobe/engineering_yellow, +/turf/open/floor/plasteel/blue/side{ + dir = 4 + }, +/area/engine/engineering) +"xC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/landmark/start{ + name = "Bartender" + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"xD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"xE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"xF" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"xG" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/toxin{ + pixel_x = 2; + pixel_y = 6 + }, +/obj/item/weapon/storage/firstaid/toxin{ + pixel_x = -2; + pixel_y = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"xH" = ( +/obj/structure/closet/l3closet, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"xI" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s9"; + dir = 2 + }, +/area/shuttle/arrival) +"xJ" = ( +/turf/open/space, +/obj/machinery/porta_turret/syndicate, +/turf/closed/wall/shuttle{ + dir = 1; + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) +"xK" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/donkpockets{ + pixel_x = 3; + pixel_y = 3 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"xL" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"xM" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/meter{ + use_power = 0 + }, +/turf/open/space, +/area/space) +"xN" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/hallway/primary/central) +"xO" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/hallway/primary/central) +"xP" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/engine/engineering) +"xQ" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + icon_state = "intact"; + dir = 10 + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/engine/engineering) +"xR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/gibber, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/bar) +"xS" = ( +/obj/structure/closet/secure_closet/bar{ + req_access_txt = "25" + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"xT" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + icon_state = "intact"; + dir = 1 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"xU" = ( +/obj/structure/table/wood, +/obj/item/weapon/gun/projectile/revolver/doublebarrel, +/obj/item/weapon/reagent_containers/food/drinks/shaker, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"xV" = ( +/obj/machinery/camera/autoname{ + dir = 1 + }, +/obj/structure/table/wood, +/obj/item/weapon/book/manual/chef_recipes{ + pixel_y = 5 + }, +/obj/item/weapon/reagent_containers/food/condiment/enzyme, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"xW" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"xX" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + icon_state = "intact"; + dir = 1 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"xY" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/engine/engineering) +"xZ" = ( +/obj/structure/table, +/obj/item/weapon/storage/belt/medical{ + pixel_x = 0; + pixel_y = 2 + }, +/obj/item/weapon/storage/belt/medical{ + pixel_x = 0; + pixel_y = 2 + }, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 2; + pixel_y = 6 + }, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = -2; + pixel_y = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"ya" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{ + pixel_x = 7; + pixel_y = -3 + }, +/obj/item/weapon/reagent_containers/glass/bottle/charcoal{ + pixel_x = -4; + pixel_y = -3 + }, +/obj/item/weapon/reagent_containers/syringe/epinephrine{ + pixel_x = 3; + pixel_y = -2 + }, +/obj/item/weapon/reagent_containers/glass/bottle/morphine, +/obj/item/weapon/reagent_containers/glass/bottle/toxin{ + pixel_x = 4; + pixel_y = 2 + }, +/obj/item/weapon/reagent_containers/syringe/epinephrine{ + pixel_x = 5; + pixel_y = -2 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"yb" = ( +/obj/structure/table, +/obj/machinery/light, +/obj/item/clothing/glasses/hud/health, +/obj/item/clothing/glasses/hud/health, +/obj/item/clothing/glasses/hud/health, +/obj/item/clothing/glasses/hud/health, +/obj/item/clothing/glasses/hud/health, +/obj/item/clothing/neck/stethoscope, +/obj/item/weapon/reagent_containers/hypospray, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"yc" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + icon_state = "intact"; + dir = 1 + }, +/turf/open/floor/plating/warnplate/corner{ + dir = 2 + }, +/area/engine/engineering) +"yd" = ( +/obj/structure/rack, +/obj/item/clothing/mask/gas, +/obj/item/clothing/glasses/sunglasses, +/turf/open/floor/plating, +/area/hallway/primary/central) +"ye" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + icon_state = "intact"; + dir = 1 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"yf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"yg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"yh" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/closed/wall, +/area/crew_quarters/bar) +"yi" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/closed/wall, +/area/crew_quarters/bar) +"yj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/bar) +"yk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/bar) +"yl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/closed/wall, +/area/crew_quarters/bar) +"ym" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Bar Storage Maintenance"; + req_access_txt = "25" + }, +/turf/open/floor/plating, +/area/crew_quarters/bar) +"yn" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/closed/wall, +/area/hallway/primary/central) +"yo" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/hallway/primary/central) +"yp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/camera/autoname{ + dir = 8 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/hallway/primary/central) +"yq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/hallway/primary/central) +"yr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"ys" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"yt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"yu" = ( +/obj/machinery/power/apc{ + auto_name = 1; + dir = 1; + name = "_North APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/crew_quarters/bar) +"yv" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/hallway/primary/central) +"yw" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"yx" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"yy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"yz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"yA" = ( +/turf/closed/wall/r_wall, +/area/engine/engineering) +"yB" = ( +/turf/closed/wall, +/area/engine/engineering) +"yC" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/door/airlock/maintenance{ + name = "Engineering Maintenance"; + req_access_txt = "10" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"yD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/hallway/primary/central) +"yE" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/hallway/primary/central) +"yF" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + frequency = 1443; + on = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"yG" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + frequency = 1443; + on = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"yH" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/conveyor{ + id = "CanisterStore" + }, +/obj/machinery/portable_atmospherics/canister/toxins, +/turf/open/floor/plasteel, +/area/engine/engineering) +"yI" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/conveyor{ + id = "CanisterStore" + }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plasteel, +/area/engine/engineering) +"yJ" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/conveyor{ + id = "CanisterStore" + }, +/obj/machinery/portable_atmospherics/canister/carbon_dioxide, +/turf/open/floor/plasteel, +/area/engine/engineering) +"yK" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plasteel, +/area/engine/engineering) +"yL" = ( +/obj/machinery/requests_console{ + department = "Garden"; + departmentType = 2; + pixel_x = 30; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"yM" = ( +/obj/item/device/radio/intercom{ + broadcasting = 0; + freerange = 0; + listening = 1; + name = "Common Channel"; + pixel_y = 25 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"yN" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"yO" = ( +/obj/structure/table, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/cell_charger, +/turf/open/floor/plasteel, +/area/engine/engineering) +"yP" = ( +/obj/structure/table, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/item/clothing/gloves/color/yellow, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_y = 5 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"yQ" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/camera/autoname, +/obj/machinery/power/smes/engineering, +/turf/open/floor/plasteel/warning{ + dir = 2 + }, +/area/engine/engineering) +"yR" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/smes/engineering, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/engine/engineering) +"yS" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/smes/engineering, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/engine/engineering) +"yT" = ( +/obj/structure/table, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/item/clothing/gloves/color/yellow, +/obj/item/weapon/storage/toolbox/electrical{ + pixel_y = 5 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + freerange = 0; + listening = 1; + name = "Common Channel"; + pixel_y = 25 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"yU" = ( +/obj/structure/closet/crate, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/weapon/electronics/airlock, +/obj/item/weapon/electronics/airlock, +/obj/item/weapon/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000 + }, +/obj/item/stack/sheet/mineral/plasma{ + amount = 30 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 8 + }, +/area/engine/engineering) +"yV" = ( +/obj/machinery/power/apc{ + auto_name = 1; + dir = 1; + name = "_North APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/engine/engineering) +"yW" = ( +/obj/structure/table, +/obj/item/weapon/electronics/airlock, +/obj/item/weapon/electronics/airlock, +/obj/item/weapon/electronics/apc, +/obj/item/weapon/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000 + }, +/obj/item/weapon/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 4 + }, +/area/engine/engineering) +"yX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/vending/cola, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"yY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/vending/snack, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"yZ" = ( +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plasteel, +/area/engine/engineering) +"za" = ( +/turf/open/floor/plasteel, +/area/engine/engineering) +"zb" = ( +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/obj/item/weapon/reagent_containers/glass/bucket{ + pixel_x = 1; + pixel_y = 3 + }, +/obj/item/weapon/reagent_containers/glass/bucket, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/blue/side{ + dir = 4 + }, +/area/hallway/primary/central) +"zc" = ( +/obj/structure/grille, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"zd" = ( +/obj/machinery/door/airlock/glass{ + name = "Central Access" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"ze" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + icon_state = "intact"; + dir = 1 + }, +/turf/open/floor/plating/warnplate/corner{ + dir = 1 + }, +/area/engine/engineering) +"zf" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"zg" = ( +/obj/machinery/power/terminal{ + icon_state = "term"; + dir = 1 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/engine/engineering) +"zh" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + icon_state = "intact"; + dir = 1 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"zi" = ( +/obj/machinery/computer/monitor, +/obj/structure/cable, +/turf/open/floor/plasteel, +/area/engine/engineering) +"zj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"zk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/vending/cigarette{ + pixel_x = 0; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"zl" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/clothing/mask/gas{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/device/flashlight{ + pixel_x = 1; + pixel_y = 5 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"zm" = ( +/turf/open/floor/plasteel/blue/side{ + dir = 4 + }, +/area/engine/engineering) +"zn" = ( +/turf/open/floor/plating, +/area/engine/engineering) +"zo" = ( +/turf/open/floor/engine{ + name = "air floor"; + initial_gas_mix = "o2=2644;n2=10580" + }, +/area/engine/engineering) +"zp" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + icon_state = "intact"; + dir = 1 + }, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/engine/engineering) +"zq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"zr" = ( +/obj/effect/landmark/start{ + name = "Station Engineer" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"zs" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"zt" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"zu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/structure/chair/stool, +/turf/open/floor/plasteel, +/area/engine/engineering) +"zv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/obj/machinery/computer/station_alert, +/turf/open/floor/plasteel, +/area/engine/engineering) +"zw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"zx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"zy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/sign/securearea{ + name = "ENGINEERING ACCESS"; + pixel_x = -32 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 10 + }, +/area/hallway/primary/central) +"zz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side, +/area/hallway/primary/central) +"zA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/sign/securearea{ + name = "ENGINEERING ACCESS"; + pixel_x = 32 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 6 + }, +/area/hallway/primary/central) +"zB" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"zC" = ( +/obj/machinery/conveyor_switch{ + id = "CanisterStore" + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"zD" = ( +/obj/machinery/portable_atmospherics/canister/toxins, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/door/window/southright, +/turf/open/floor/plasteel/red{ + dir = 2 + }, +/area/engine/engineering) +"zE" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/door/window/southright, +/turf/open/floor/plasteel/blue{ + dir = 1 + }, +/area/engine/engineering) +"zF" = ( +/obj/machinery/portable_atmospherics/canister/carbon_dioxide, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/door/window/southright, +/turf/open/floor/plasteel/black, +/area/engine/engineering) +"zG" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel, +/area/engine/engineering) +"zH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"zI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/meter, +/turf/open/floor/plating, +/area/engine/engineering) +"zJ" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"zK" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + icon_state = "intact"; + dir = 1 + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/engine/engineering) +"zL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space) +"zM" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + icon_state = "intact"; + dir = 1 + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/engine/engineering) +"zN" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + icon_state = "intact"; + dir = 1 + }, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/engine/engineering) +"zO" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/engine{ + name = "air floor"; + initial_gas_mix = "o2=2644;n2=10580" + }, +/area/engine/engineering) +"zP" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/engine{ + name = "air floor"; + initial_gas_mix = "o2=2644;n2=10580" + }, +/area/engine/engineering) +"zQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/blue/corner{ + dir = 4 + }, +/area/hallway/primary/central) +"zR" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"zS" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"zT" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"zU" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"zV" = ( +/obj/machinery/vending/tool, +/turf/open/floor/plasteel, +/area/engine/engineering) +"zW" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"zX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"zY" = ( +/obj/machinery/door/firedoor/heavy, +/turf/open/floor/plasteel, +/area/engine/engineering) +"zZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"Aa" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/airlock/glass_engineering{ + name = "Engineering"; + req_access_txt = "10"; + req_one_access_txt = "0" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"Ab" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"Ac" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/engine/engineering) +"Ad" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"Ae" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"Af" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"Ag" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"Ah" = ( +/obj/machinery/vending/engivend, +/turf/open/floor/plasteel, +/area/engine/engineering) +"Ai" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/engine/engineering) +"Aj" = ( +/obj/structure/grille, +/obj/structure/lattice, +/turf/open/space, +/area/engine/engineering) +"Ak" = ( +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 8; + icon_state = "grey" + }, +/turf/open/floor/plating, +/area/tcommsat/computer) +"Al" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + frequency = 1444; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Am" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/engine/engineering) +"An" = ( +/obj/machinery/pipedispenser, +/turf/open/floor/plasteel, +/area/engine/engineering) +"Ao" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel, +/area/engine/engineering) +"Ap" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/clothing/gloves/color/black, +/obj/item/weapon/extinguisher{ + pixel_x = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"Aq" = ( +/obj/machinery/suit_storage_unit/atmos, +/turf/open/floor/plasteel, +/area/engine/engineering) +"Ar" = ( +/obj/machinery/power/port_gen/pacman, +/turf/open/floor/plasteel, +/area/engine/engineering) +"As" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"At" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) +"Au" = ( +/obj/machinery/camera/autoname{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/newscaster{ + pixel_x = 32; + pixel_y = 0 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + frequency = 1444; + on = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Av" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"Aw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"Ax" = ( +/obj/machinery/airalarm{ + dir = 4; + frequency = 1444; + pixel_x = -24 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"Ay" = ( +/obj/machinery/airalarm{ + frequency = 1440; + pixel_y = 23 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"Az" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"AA" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) +"AB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 5; + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"AC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/camera/autoname{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"AD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"AE" = ( +/obj/machinery/portable_atmospherics/canister/nitrogen, +/turf/open/floor/plasteel, +/area/engine/engineering) +"AF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/portable_atmospherics/canister/nitrogen, +/turf/open/floor/plasteel, +/area/engine/engineering) +"AG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/tank_dispenser, +/turf/open/floor/plasteel, +/area/engine/engineering) +"AH" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/glass_engineering{ + name = "Engineering"; + req_access_txt = "10"; + req_one_access_txt = "0" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"AI" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"AJ" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/suit/hazardvest, +/obj/item/weapon/tank/internals/emergency_oxygen/engi, +/obj/item/weapon/tank/internals/emergency_oxygen/engi, +/turf/open/floor/plasteel, +/area/engine/engineering) +"AK" = ( +/obj/machinery/door/airlock/glass_engineering{ + name = "Engineering"; + req_access_txt = "10"; + req_one_access_txt = "0" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"AL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"AM" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"AN" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + frequency = 1440; + on = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"AO" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) +"AP" = ( +/obj/machinery/requests_console{ + announcementConsole = 0; + department = "Engineering"; + departmentType = 4; + name = "Engineering RC"; + pixel_y = 30 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"AQ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + frequency = 1440; + on = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"AR" = ( +/obj/structure/table/wood, +/obj/machinery/computer/libraryconsole/bookmanagement, +/turf/open/floor/plasteel/neutral/side{ + dir = 6 + }, +/area/hallway/primary/central) +"AS" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/turf/open/floor/plating, +/area/engine/engineering) +"AT" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/engine/engineering) +"AU" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/storage/belt/utility, +/obj/item/weapon/wrench, +/obj/item/weapon/weldingtool, +/obj/item/clothing/head/welding{ + pixel_x = -3; + pixel_y = 5 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"AV" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 1 + }, +/area/engine/engineering) +"AW" = ( +/obj/structure/table, +/obj/item/weapon/crowbar, +/obj/item/weapon/storage/box/lights/mixed, +/turf/open/floor/plasteel, +/area/engine/engineering) +"AX" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"AY" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"AZ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"Ba" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/camera/autoname, +/turf/open/floor/plasteel, +/area/engine/engineering) +"Bb" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + icon_state = "intact"; + dir = 1 + }, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/engine/engineering) +"Bc" = ( +/obj/machinery/conveyor{ + dir = 2; + id = "recycler" + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"Bd" = ( +/obj/machinery/airalarm{ + dir = 1; + frequency = 1441; + icon_state = "alarm0"; + pixel_y = -22 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"Be" = ( +/turf/open/floor/plating/warnplate{ + dir = 9 + }, +/area/engine/engineering) +"Bf" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + icon_state = "intact"; + dir = 1 + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/engine/engineering) +"Bg" = ( +/obj/item/device/radio/intercom{ + broadcasting = 0; + freerange = 0; + listening = 1; + name = "Common Channel"; + pixel_y = 25 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/turf/open/floor/plating, +/area/engine/engineering) +"Bh" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/engine/engineering) +"Bi" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + frequency = 1441; + on = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"Bj" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/engine/engineering) +"Bk" = ( +/turf/open/floor/plating/warnplate{ + dir = 5 + }, +/area/engine/engineering) +"Bl" = ( +/obj/machinery/airalarm{ + frequency = 1443; + pixel_y = 23 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"Bm" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + frequency = 1441; + on = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"Bn" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/engine/engineering) +"Bo" = ( +/obj/structure/closet/crate{ + name = "solar pack crate" + }, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/weapon/circuitboard/computer/solar_control, +/obj/item/weapon/electronics/tracker, +/obj/item/weapon/paper/solar, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/engine/engineering) +"Bp" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 4 + }, +/area/engine/engineering) +"Bq" = ( +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/engine/engineering) +"Br" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible, +/turf/open/floor/plating, +/area/engine/engineering) +"Bs" = ( +/obj/machinery/atmospherics/components/binary/circulator, +/turf/open/floor/plating, +/area/engine/engineering) +"Bt" = ( +/obj/machinery/power/generator, +/obj/structure/cable, +/turf/open/floor/plating, +/area/engine/engineering) +"Bu" = ( +/obj/machinery/atmospherics/components/binary/circulator{ + icon_state = "circ2-off" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"Bv" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible, +/turf/open/floor/plating/warnplate/corner{ + dir = 4 + }, +/area/engine/engineering) +"Bw" = ( +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/engine/engineering) +"Bx" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/engine/engineering) +"By" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"Bz" = ( +/obj/structure/transit_tube{ + icon_state = "Block" + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/engine/engineering) +"BA" = ( +/turf/open/floor/plating/warnplate{ + dir = 10 + }, +/area/engine/engineering) +"BB" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"BC" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible, +/turf/open/floor/plating, +/area/engine/engineering) +"BD" = ( +/obj/item/device/multitool, +/turf/open/floor/plating/warnplate{ + dir = 2 + }, +/area/engine/engineering) +"BE" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"BF" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/engine/engineering) +"BG" = ( +/turf/open/floor/plating/warnplate{ + dir = 6 + }, +/area/engine/engineering) +"BH" = ( +/obj/structure/transit_tube/station/reverse{ + dir = 8; + icon_state = "closed" + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/engine/engineering) +"BI" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + frequency = 1442; + on = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"BJ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + frequency = 1442; + on = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"BK" = ( +/obj/machinery/airalarm{ + dir = 1; + frequency = 1442; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/machinery/camera/autoname{ + dir = 1 + }, +/obj/item/device/flashlight{ + pixel_x = 1; + pixel_y = 5 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"BL" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/warning/corner{ + dir = 8 + }, +/area/engine/engineering) +"BM" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible, +/turf/open/floor/plating/warnplate/corner{ + dir = 8 + }, +/area/engine/engineering) +"BN" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"BO" = ( +/turf/open/floor/plasteel/yellow/side, +/area/engine/engineering) +"BP" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"BQ" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/engine/engineering) +"BR" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/warning/corner{ + dir = 4 + }, +/area/engine/engineering) +"BS" = ( +/obj/structure/table, +/obj/item/device/flashlight/lamp{ + pixel_x = 4; + pixel_y = 1 + }, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/syndicate) +"BT" = ( +/obj/item/device/radio/intercom{ + desc = "Talk through this. Evilly"; + freerange = 1; + frequency = 1213; + name = "Syndicate Intercom"; + pixel_y = -32; + subspace_transmission = 1; + syndie = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"BU" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"BV" = ( +/obj/machinery/light/small, +/turf/open/floor/plasteel, +/area/engine/engineering) +"BW" = ( +/obj/structure/transit_tube{ + icon_state = "N-S" + }, +/obj/structure/transit_tube_pod, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/engine/engineering) +"BX" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/camera/autoname, +/turf/open/floor/plasteel, +/area/engine/engineering) +"BY" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + icon_state = "manifold"; + dir = 8 + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/engine/engineering) +"BZ" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"Ca" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"Cb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + icon_state = "intact"; + dir = 6 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"Cc" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/machinery/camera/autoname, +/turf/open/floor/plasteel, +/area/engine/engineering) +"Cd" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"Ce" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"Cf" = ( +/obj/structure/table, +/obj/machinery/button/door{ + id = "syndieshutters"; + name = "remote shutter control"; + req_access_txt = "150" + }, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/syndicate) +"Cg" = ( +/obj/structure/chair/comfy/beige{ + dir = 1; + icon_state = "comfychair" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"Ch" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"Ci" = ( +/obj/structure/transit_tube{ + icon_state = "N-SE" + }, +/turf/open/space, +/area/space) +"Cj" = ( +/obj/structure/transit_tube{ + icon_state = "D-SW" + }, +/turf/open/space, +/area/space) +"Ck" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/chair/stool, +/turf/open/floor/plasteel, +/area/engine/engineering) +"Cl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"Cm" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/chair/stool, +/turf/open/floor/plasteel, +/area/engine/engineering) +"Cn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"Co" = ( +/obj/structure/transit_tube{ + icon_state = "D-NE" + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"Cp" = ( +/obj/structure/transit_tube{ + icon_state = "E-NW" + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"Cq" = ( +/obj/structure/transit_tube, +/turf/open/space, +/area/space) +"Cr" = ( +/obj/structure/transit_tube{ + icon_state = "E-W-Pass" + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"Cs" = ( +/obj/structure/transit_tube{ + icon_state = "W-SE" + }, +/turf/open/space, +/area/space) +"Ct" = ( +/obj/structure/table, +/obj/item/stack/cable_coil, +/obj/item/weapon/electronics/airlock, +/obj/item/weapon/electronics/airlock, +/turf/open/floor/plasteel, +/area/engine/engineering) +"Cu" = ( +/obj/structure/table, +/obj/item/weapon/folder/yellow, +/obj/item/clothing/ears/earmuffs{ + pixel_x = -3; + pixel_y = -2 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"Cv" = ( +/obj/structure/table, +/obj/item/stack/rods{ + amount = 50 + }, +/obj/item/device/analyzer, +/turf/open/floor/plasteel, +/area/engine/engineering) +"Cw" = ( +/obj/structure/frame/computer, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/syndicate) +"Cx" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"Cy" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"Cz" = ( +/obj/structure/table, +/turf/open/floor/plasteel, +/area/engine/engineering) +"CA" = ( +/obj/structure/transit_tube{ + icon_state = "S-NW" + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"CB" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/plating/warnplate/corner{ + dir = 8 + }, +/area/engine/engineering) +"CC" = ( +/obj/machinery/atmospherics/components/binary/pump{ + target_pressure = 1000 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plating/warnplate/corner{ + dir = 4 + }, +/area/engine/engineering) +"CD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/engine/engineering) +"CE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"CF" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + icon_state = "intact"; + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"CG" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + icon_state = "manifold"; + dir = 1 + }, +/turf/open/floor/engine/vacuum, +/area/engine/engineering) +"CH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + icon_state = "intact"; + dir = 4 + }, +/turf/closed/wall, +/area/engine/engineering) +"CI" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector{ + dir = 8; + frequency = 1441; + id = "air_in"; + on = 1 + }, +/turf/open/floor/engine/vacuum, +/area/engine/engineering) +"CJ" = ( +/obj/structure/sign/fire, +/turf/closed/wall, +/area/engine/engineering) +"CK" = ( +/obj/structure/transit_tube{ + icon_state = "N-S-Pass" + }, +/turf/open/space, +/area/space) +"CL" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 6 + }, +/obj/structure/lattice, +/turf/open/space, +/area/engine/engineering) +"CM" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/obj/structure/lattice, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/space, +/area/engine/engineering) +"CN" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/obj/structure/lattice, +/turf/open/space, +/area/engine/engineering) +"CO" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 10 + }, +/obj/structure/lattice, +/turf/open/space, +/area/engine/engineering) +"CP" = ( +/obj/machinery/atmospherics/components/binary/valve, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/engine/engineering) +"CQ" = ( +/obj/machinery/atmospherics/components/binary/valve, +/turf/open/floor/plating, +/area/engine/engineering) +"CR" = ( +/obj/machinery/atmospherics/components/binary/pump{ + target_pressure = 1500 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"CS" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + target_pressure = 2000 + }, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/engine/engineering) +"CT" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + target_pressure = 2000 + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/engine/engineering) +"CU" = ( +/obj/machinery/atmospherics/components/binary/valve, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/engine/engineering) +"CV" = ( +/obj/machinery/button/door{ + id = "burndoor"; + name = "Burn Chamber Vent Control"; + pixel_x = 25; + pixel_y = 5; + req_access_txt = "0" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"CW" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 6 + }, +/obj/machinery/sparker{ + id = "burnchamber"; + pixel_x = -25 + }, +/turf/open/floor/engine/vacuum, +/area/engine/engineering) +"CX" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/obj/machinery/meter/turf{ + pixel_y = 24 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/engine/vacuum, +/area/engine/engineering) +"CY" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/turf/open/floor/engine/vacuum, +/area/engine/engineering) +"CZ" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Burn Chamber"; + network = list("burnchamber") + }, +/turf/open/floor/engine/vacuum, +/area/engine/engineering) +"Da" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 10 + }, +/turf/open/floor/engine/vacuum, +/area/engine/engineering) +"Db" = ( +/obj/structure/transit_tube{ + icon_state = "N-S" + }, +/turf/open/space, +/area/space) +"Dc" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/obj/structure/lattice, +/turf/open/space, +/area/engine/engineering) +"Dd" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 5 + }, +/obj/structure/lattice, +/turf/open/space, +/area/engine/engineering) +"De" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"Df" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"Dg" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 5; + pixel_y = -32 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"Dh" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"Di" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + icon_state = "intact"; + dir = 9 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"Dj" = ( +/obj/machinery/sparker{ + id = "burnchamber"; + pixel_x = -25 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + icon_state = "intact"; + dir = 5 + }, +/turf/open/floor/engine/vacuum, +/area/engine/engineering) +"Dk" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + on = 1 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"Dl" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 + }, +/turf/open/floor/plating, +/area/tcommsat/computer) +"Dm" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1 + }, +/obj/machinery/camera/autoname{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/engine/gravity_generator) +"Dn" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ + dir = 4 + }, +/turf/closed/wall, +/area/engine/engineering) +"Do" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 9 + }, +/turf/open/floor/engine/vacuum, +/area/engine/engineering) +"Dp" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 6 + }, +/turf/open/floor/engine/vacuum, +/area/engine/engineering) +"Dq" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/turf/open/floor/engine/vacuum, +/area/engine/engineering) +"Dr" = ( +/obj/machinery/door/poddoor{ + id = "burndoor"; + name = "Mixer Room Vent" + }, +/turf/open/floor/plating/airless, +/area/engine/engineering) +"Ds" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass{ + amount = 10 + }, +/obj/item/device/multitool, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"Dt" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"Du" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"Dv" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"Dw" = ( +/obj/item/device/analyzer, +/obj/item/weapon/wrench, +/turf/open/floor/plasteel, +/area/engine/engineering) +"Dx" = ( +/obj/structure/chair/comfy/black{ + dir = 1; + icon_state = "comfychair"; + name = "pilot's chair" + }, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/syndicate) +"Dy" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass{ + amount = 10 + }, +/obj/item/device/multitool, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/syndicate) +"Dz" = ( +/obj/item/device/radio/intercom{ + desc = "Talk through this. Evilly"; + freerange = 1; + frequency = 1213; + name = "Syndicate Intercom"; + pixel_y = -32; + subspace_transmission = 1; + syndie = 1 + }, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/syndicate) +"DA" = ( +/obj/structure/closet/syndicate/personal, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/syndicate) +"DB" = ( +/turf/open/space, +/area/shuttle/syndicate) +"DC" = ( +/obj/machinery/door/window{ + name = "Cockpit"; + req_access_txt = "150" + }, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/syndicate) +"DD" = ( +/turf/open/space, +/obj/machinery/porta_turret/syndicate{ + dir = 6 + }, +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) +"DE" = ( +/obj/structure/table, +/obj/item/stack/cable_coil, +/obj/item/weapon/crowbar/red, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/syndicate) +"DF" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"DG" = ( +/obj/machinery/atmospherics/components/binary/volume_pump{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"DH" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/syndicate) +"DI" = ( +/turf/open/space, +/obj/machinery/porta_turret/syndicate{ + dir = 9 + }, +/turf/closed/wall/mineral/plastitanium{ + dir = 8; + icon_state = "diagonalWall3" + }, +/area/space) +"DJ" = ( +/turf/closed/wall/mineral/plastitanium, +/area/space) +"DK" = ( +/obj/structure/grille, +/obj/machinery/door/poddoor/shutters{ + id = "syndieshutters"; + name = "blast shutters" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/space) +"DL" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 9 + }, +/obj/structure/lattice, +/turf/open/space, +/area/engine/engineering) +"DM" = ( +/turf/open/space, +/obj/machinery/porta_turret/syndicate{ + dir = 5 + }, +/turf/closed/wall/mineral/plastitanium{ + dir = 1; + icon_state = "diagonalWall3" + }, +/area/space) +"DN" = ( +/obj/structure/table, +/obj/item/device/aicard, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"DO" = ( +/obj/structure/table, +/obj/item/weapon/c4{ + pixel_x = 2; + pixel_y = -5 + }, +/obj/item/weapon/c4{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/c4{ + pixel_x = 2; + pixel_y = -3 + }, +/obj/item/weapon/c4{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/weapon/c4{ + pixel_x = 3; + pixel_y = 3 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"DP" = ( +/obj/structure/table, +/obj/item/device/flashlight/lamp{ + pixel_x = 4; + pixel_y = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"DQ" = ( +/obj/machinery/computer/shuttle/syndicate, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"DR" = ( +/obj/structure/table, +/obj/machinery/button/door{ + id = "syndieshutters"; + name = "remote shutter control"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"DS" = ( +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the burn chamber."; + dir = 8; + layer = 4; + name = "Burn Chamber Telescreen"; + network = list("burnchamber"); + pixel_x = 0; + pixel_y = -30 + }, +/obj/structure/chair/stool, +/turf/open/floor/plating, +/area/engine/engineering) +"DT" = ( +/obj/machinery/light, +/turf/open/floor/plating, +/area/engine/engineering) +"DU" = ( +/obj/machinery/button/ignition{ + id = "burnchamber"; + pixel_x = 25 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"DV" = ( +/obj/structure/frame/computer, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"DW" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 5 + }, +/turf/open/floor/engine/vacuum, +/area/engine/engineering) +"DX" = ( +/obj/structure/transit_tube{ + icon_state = "N-S" + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"DY" = ( +/obj/structure/closet/syndicate/personal, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"DZ" = ( +/obj/structure/lattice, +/obj/structure/transit_tube{ + icon_state = "N-S-Pass" + }, +/turf/open/space, +/area/space) +"Ea" = ( +/turf/closed/wall, +/area/tcommsat/computer) +"Eb" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = 0 + }, +/turf/closed/wall, +/area/tcommsat/computer) +"Ec" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/tcommsat/computer) +"Ed" = ( +/obj/machinery/door/window{ + base_state = "right"; + dir = 4; + icon_state = "right"; + name = "EVA Storage"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"Ee" = ( +/obj/structure/transit_tube{ + icon_state = "N-SE" + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"Ef" = ( +/obj/structure/transit_tube{ + icon_state = "D-SW" + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"Eg" = ( +/obj/machinery/door/airlock/external{ + name = "Telecomms Emergency Access"; + req_access = null; + req_access_txt = "10;13" + }, +/turf/open/floor/plating, +/area/tcommsat/computer) +"Eh" = ( +/turf/open/floor/plating, +/area/tcommsat/computer) +"Ei" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/tcommsat/computer) +"Ej" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/tcommsat/computer) +"Ek" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 4 + }, +/turf/open/floor/plating, +/area/tcommsat/computer) +"El" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/tcommsat/computer) +"Em" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/meter, +/turf/open/floor/plating, +/area/tcommsat/computer) +"En" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) +"Eo" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/space) +"Ep" = ( +/obj/structure/transit_tube{ + icon_state = "D-NE" + }, +/turf/open/space, +/area/space) +"Eq" = ( +/obj/structure/transit_tube{ + icon_state = "E-NW" + }, +/turf/open/space, +/area/space) +"Er" = ( +/obj/structure/lattice, +/obj/structure/transit_tube{ + icon_state = "E-W-Pass" + }, +/turf/open/space, +/area/space) +"Es" = ( +/obj/structure/transit_tube, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"Et" = ( +/obj/structure/transit_tube{ + icon_state = "W-SE" + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"Eu" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/tcommsat/computer) +"Ev" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/tcommsat/computer) +"Ew" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/tcommsat/computer) +"Ex" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/tcommsat/computer) +"Ey" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/tcommsat/computer) +"Ez" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8 + }, +/turf/open/floor/plating, +/area/tcommsat/computer) +"EA" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/light/small, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/tcommsat/computer) +"EB" = ( +/obj/structure/transit_tube{ + icon_state = "NW-SE" + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"EC" = ( +/obj/machinery/door/window{ + name = "Cockpit"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"ED" = ( +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/tcommsat/computer) +"EE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/tcommsat/computer) +"EF" = ( +/obj/machinery/computer/message_monitor, +/turf/open/floor/plasteel/yellow/side{ + dir = 9 + }, +/area/tcommsat/computer) +"EG" = ( +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"EH" = ( +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"EI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/tcommsat/computer) +"EJ" = ( +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"EK" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/shuttle/syndicate) +"EL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/tcommsat/computer) +"EM" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) +"EN" = ( +/obj/structure/table, +/obj/item/stack/cable_coil, +/obj/item/weapon/crowbar/red, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"EO" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"EP" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin, +/obj/item/weapon/paper/monitorkey, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"EQ" = ( +/turf/open/floor/plasteel/black, +/area/engine/gravity_generator) +"ER" = ( +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/engine/gravity_generator) +"ES" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'RADIOACTIVE AREA'"; + icon_state = "radiation"; + name = "RADIOACTIVE AREA"; + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/gravity_generator) +"ET" = ( +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/engine/gravity_generator) +"EU" = ( +/obj/structure/bed/roller, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"EV" = ( +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/computer) +"EW" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/zipties{ + pixel_x = 1; + pixel_y = 2 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"EX" = ( +/obj/machinery/message_server, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/computer) +"EY" = ( +/obj/machinery/computer/telecomms/server{ + network = "tcommsat" + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 10 + }, +/area/tcommsat/computer) +"EZ" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"Fa" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"Fb" = ( +/obj/structure/table, +/obj/item/weapon/folder/blue, +/obj/item/weapon/pen/blue, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"Fc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/tcommsat/computer) +"Fd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/tcommsat/computer) +"Fe" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/engine/gravity_generator) +"Ff" = ( +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/gravity_generator) +"Fg" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/engine/gravity_generator) +"Fh" = ( +/obj/structure/transit_tube{ + icon_state = "N-S" + }, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/tcommsat/computer) +"Fi" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/tcommsat/computer) +"Fj" = ( +/obj/machinery/porta_turret/syndicate{ + dir = 4 + }, +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/syndicate) +"Fk" = ( +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/computer) +"Fl" = ( +/obj/machinery/suit_storage_unit/syndicate, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"Fm" = ( +/obj/structure/closet/syndicate/nuclear, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"Fn" = ( +/obj/machinery/door/airlock/glass_command{ + name = "Control Room"; + req_access_txt = "19; 61" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"Fo" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"Fp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/tcommsat/computer) +"Fq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/black, +/area/engine/gravity_generator) +"Fr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/vault{ + dir = 4 + }, +/area/engine/gravity_generator) +"Fs" = ( +/obj/machinery/gravity_generator/main/station, +/turf/open/floor/plasteel/vault{ + dir = 8 + }, +/area/engine/gravity_generator) +"Ft" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/engine/gravity_generator) +"Fu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/black, +/area/engine/gravity_generator) +"Fv" = ( +/obj/machinery/door/poddoor{ + auto_close = 300; + id = "smindicate"; + name = "outer blast door" + }, +/obj/machinery/button/door{ + id = "smindicate"; + name = "external door control"; + pixel_x = -26; + pixel_y = 0; + req_access_txt = "150" + }, +/obj/docking_port/mobile{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 24; + id = "syndicate"; + name = "syndicate infiltrator"; + port_angle = 0; + roundstart_move = "syndicate_away"; + width = 18 + }, +/obj/docking_port/stationary{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 24; + id = "syndicate_nw"; + name = "northwest of station"; + turf_type = /turf/open/space; + width = 18 + }, +/turf/open/floor/plating, +/area/space) +"Fw" = ( +/obj/structure/transit_tube/station/reverse{ + icon_state = "closed"; + dir = 4 + }, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/tcommsat/computer) +"Fx" = ( +/turf/closed/wall/r_wall, +/area/tcommsat/computer) +"Fy" = ( +/obj/machinery/power/apc{ + cell_type = 5000; + dir = 8; + name = "Telecoms Server APC"; + pixel_x = -25; + pixel_y = 1 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/computer) +"Fz" = ( +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/computer) +"FA" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/computer) +"FB" = ( +/obj/machinery/door/airlock/glass_engineering{ + name = "Server Room"; + req_access_txt = "61" + }, +/turf/open/floor/plasteel/vault{ + dir = 5 + }, +/area/tcommsat/computer) +"FC" = ( +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/tcommsat/computer) +"FD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"FE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"FF" = ( +/obj/structure/closet/emcloset, +/obj/machinery/camera/autoname{ + network = list("SS13") + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"FG" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/engine/gravity_generator) +"FH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/black, +/area/engine/gravity_generator) +"FI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/black, +/area/engine/gravity_generator) +"FJ" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0 + }, +/turf/closed/wall/mineral/plastitanium, +/area/space) +"FK" = ( +/obj/structure/transit_tube{ + icon_state = "Block"; + dir = 1 + }, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/tcommsat/computer) +"FL" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plating, +/area/tcommsat/computer) +"FM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/tcommsat/computer) +"FN" = ( +/obj/machinery/camera/autoname{ + dir = 4; + network = list("SS13") + }, +/turf/open/floor/bluegrid{ + name = "Mainframe Base"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/computer) +"FO" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'SERVER ROOM'."; + name = "SERVER ROOM"; + pixel_y = 0 + }, +/turf/closed/wall, +/area/tcommsat/computer) +"FP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/landmark/start{ + name = "Cyborg" + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"FQ" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/landmark/start{ + name = "Cyborg" + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"FR" = ( +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Telecoms Admin"; + departmentType = 5; + name = "Telecoms RC"; + pixel_x = 30; + pixel_y = 0 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/recharge_station, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"FS" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/closed/wall/r_wall, +/area/tcommsat/computer) +"FT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/tcommsat/computer) +"FU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"FV" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/syndicate, +/obj/item/weapon/crowbar/red, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"FW" = ( +/obj/machinery/door/window{ + name = "Ready Room"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"FX" = ( +/obj/machinery/door/airlock/glass_command{ + name = "Gravity Generator Area"; + req_access_txt = "19; 61" + }, +/turf/open/floor/plasteel/black, +/area/engine/gravity_generator) +"FY" = ( +/obj/machinery/door/window{ + dir = 4; + name = "Infirmary"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"FZ" = ( +/obj/machinery/door/window/westright{ + name = "Tool Storage"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"Ga" = ( +/obj/machinery/door/window{ + dir = 4; + name = "EVA Storage"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"Gb" = ( +/obj/machinery/telecomms/hub/preset, +/obj/structure/sign/nosmoking_2{ + pixel_y = -32 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/computer) +"Gc" = ( +/obj/machinery/blackbox_recorder, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/computer) +"Gd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/closed/wall, +/area/tcommsat/computer) +"Ge" = ( +/obj/structure/table, +/obj/item/device/multitool, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/tcommsat/computer) +"Gf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"Gg" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"Gh" = ( +/obj/machinery/light_switch{ + pixel_x = 27 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"Gi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/tcommsat/computer) +"Gj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"Gk" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/engine/gravity_generator) +"Gl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/engine/gravity_generator) +"Gm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/engine/gravity_generator) +"Gn" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/engine/gravity_generator) +"Go" = ( +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/engine/gravity_generator) +"Gp" = ( +/obj/docking_port/stationary{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 22; + id = "syndicate_sw"; + name = "southwest of station"; + turf_type = /turf/open/floor/plating/asteroid/snow; + width = 18 + }, +/turf/open/space, +/area/space) +"Gq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/tcommsat/computer) +"Gr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/tcommsat/computer) +"Gs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/tcommsat/computer) +"Gt" = ( +/obj/structure/table, +/turf/open/floor/plasteel/yellow/side{ + dir = 8 + }, +/area/tcommsat/computer) +"Gu" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/table, +/obj/item/bodypart/r_arm/robot, +/obj/item/bodypart/l_arm/robot, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"Gv" = ( +/obj/machinery/door/window{ + base_state = "right"; + dir = 4; + icon_state = "right"; + name = "Infirmary"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"Gw" = ( +/obj/machinery/door/airlock/engineering{ + name = "Telecommunications"; + req_access_txt = "61" + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"Gx" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Gravity Generator APC"; + pixel_x = -25; + pixel_y = 1 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"Gy" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"Gz" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"GA" = ( +/obj/machinery/door/window{ + dir = 8; + name = "Tool Storage"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"GB" = ( +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"GC" = ( +/obj/docking_port/stationary{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 22; + id = "syndicate_se"; + name = "southeast of station"; + turf_type = /turf/open/floor/plating/asteroid/snow; + width = 18 + }, +/turf/open/space, +/area/space) +"GD" = ( +/obj/structure/table, +/obj/item/device/radio, +/turf/open/floor/plasteel/yellow/side{ + dir = 10 + }, +/area/tcommsat/computer) +"GE" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -35 + }, +/obj/effect/landmark/start{ + name = "AI" + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"GF" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"GG" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/machinery/newscaster{ + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"GH" = ( +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/obj/structure/cable, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"GI" = ( +/obj/machinery/light, +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/machinery/power/terminal{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"GJ" = ( +/obj/structure/table, +/obj/item/weapon/paper/gravity_gen{ + layer = 3 + }, +/obj/item/weapon/pen/blue, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"GK" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'RADIOACTIVE AREA'"; + icon_state = "radiation"; + name = "RADIOACTIVE AREA"; + pixel_x = 0; + pixel_y = 0 + }, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"GL" = ( +/obj/machinery/door/airlock/highsecurity{ + name = "Gravity Generator Room"; + req_access_txt = "19;23" + }, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/engine/gravity_generator) +"GM" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/firstaid/fire, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = -3; + pixel_y = -3 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"GN" = ( +/obj/structure/closet/radiation, +/turf/open/floor/plating/warnplate{ + dir = 1 + }, +/area/tcommsat/computer) +"GO" = ( +/obj/structure/table, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/firstaid/brute, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = -3; + pixel_y = -3 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"GP" = ( +/obj/machinery/telecomms/processor/preset_one/birdstation, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/computer) +"GQ" = ( +/obj/machinery/door/airlock/external{ + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"GR" = ( +/obj/docking_port/stationary{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 22; + id = "syndicate_s"; + name = "south of station"; + turf_type = /turf/open/floor/plating/asteroid/snow; + width = 18 + }, +/turf/open/space, +/area/space) +"GS" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 1; + icon_state = "diagonalWall3" + }, +/area/space) +"GT" = ( +/obj/item/device/radio/intercom{ + desc = "Talk through this. Evilly"; + freerange = 1; + frequency = 1213; + name = "Syndicate Intercom"; + pixel_x = -32; + subspace_transmission = 1; + syndie = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"GU" = ( +/obj/structure/table, +/obj/item/device/sbeacondrop/bomb{ + pixel_y = 5 + }, +/obj/item/device/sbeacondrop/bomb, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"GV" = ( +/obj/structure/table, +/obj/item/weapon/grenade/syndieminibomb{ + pixel_x = 4; + pixel_y = 2 + }, +/obj/item/weapon/grenade/syndieminibomb{ + pixel_x = -1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"GW" = ( +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/obj/structure/mirror{ + pixel_x = 30 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"GX" = ( +/obj/machinery/sleeper/syndie{ + dir = 4 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"GY" = ( +/obj/machinery/nuclearbomb/syndicate, +/obj/machinery/door/window{ + dir = 1; + name = "Secure Storage"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"GZ" = ( +/obj/structure/table, +/obj/item/weapon/cautery, +/obj/item/weapon/scalpel, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"Ha" = ( +/obj/structure/table, +/obj/item/weapon/retractor, +/obj/item/weapon/hemostat, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"Hb" = ( +/obj/structure/table/optable, +/turf/open/floor/plasteel/white/side{ + dir = 1 + }, +/area/medical/medbay) +"Hc" = ( +/obj/structure/shuttle/engine/heater, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating, +/area/shuttle/syndicate) +"Hd" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"He" = ( +/obj/structure/rack, +/obj/item/clothing/suit/space/syndicate/black/red, +/obj/item/clothing/head/helmet/space/syndicate/black/red, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"Hf" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"Hg" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_l" + }, +/turf/open/floor/plating, +/area/shuttle/syndicate) +"Hh" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_r" + }, +/turf/open/floor/plating, +/area/shuttle/syndicate) +"Hi" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/open/floor/plating, +/area/shuttle/syndicate) +"Hj" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion"; + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/shuttle/supply) +"Hk" = ( +/turf/closed/wall/mineral/titanium/overspace, +/area/shuttle/supply) +"Hl" = ( +/obj/structure/shuttle/engine/heater{ + icon_state = "heater"; + dir = 1 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plating/airless, +/area/shuttle/supply) +"Hm" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/supply) +"Hn" = ( +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"Ho" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"Hp" = ( +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/supply) +"Hq" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Supply Shuttle Airlock"; + req_access_txt = "31" + }, +/turf/open/floor/plating, +/area/shuttle/supply) +"Hr" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Supply Shuttle Airlock"; + req_access_txt = "31" + }, +/obj/docking_port/mobile/supply{ + dwidth = 3; + width = 9 + }, +/obj/docking_port/stationary{ + dir = 8; + dwidth = 3; + height = 7; + id = "supply_home"; + name = "Cargo Bay"; + width = 9 + }, +/turf/open/floor/plating, +/area/shuttle/supply) +"Hs" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion"; + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"Ht" = ( +/obj/machinery/telecomms/broadcaster/preset_left/birdstation, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/computer) +"Hu" = ( +/obj/structure/tank_dispenser/oxygen, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"Hv" = ( +/obj/structure/shuttle/engine/heater{ + icon_state = "heater"; + dir = 1 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"Hw" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"Hx" = ( +/obj/structure/table, +/obj/item/stack/medical/ointment, +/obj/item/stack/medical/bruise_pack, +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"Hy" = ( +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"Hz" = ( +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 2; + pixel_y = 6 + }, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = -2; + pixel_y = 4 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"HA" = ( +/obj/machinery/sleeper{ + dir = 8; + icon_state = "sleeper-open" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"HB" = ( +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"HC" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"HD" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"HE" = ( +/obj/structure/table, +/obj/item/weapon/stock_parts/cell/high{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/stock_parts/cell/high, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"HF" = ( +/obj/structure/table, +/obj/item/weapon/screwdriver{ + pixel_y = 9 + }, +/obj/item/device/assembly/voice{ + pixel_y = 3 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"HG" = ( +/obj/structure/table, +/obj/item/weapon/wrench, +/obj/item/device/assembly/infra, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"HH" = ( +/obj/machinery/vending/wallmed{ + name = "Emergency NanoMed"; + pixel_x = 28; + req_access_txt = "0" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"HI" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Escape Shuttle Cell"; + req_access_txt = "2" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"HJ" = ( +/obj/machinery/telecomms/bus/preset_one/birdstation, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/computer) +"HK" = ( +/obj/machinery/door/airlock/glass_medical{ + id_tag = null; + name = "Escape Shuttle Infirmary"; + req_access_txt = "0" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"HL" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/escape) +"HM" = ( +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"HN" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"HO" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"HP" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"HQ" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"HR" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"HS" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/escape) +"HT" = ( +/obj/machinery/vending/wallmed{ + name = "Emergency NanoMed"; + req_access_txt = "0" + }, +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"HU" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/item/device/radio/intercom{ + pixel_x = 25 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"HV" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock" + }, +/obj/docking_port/mobile/emergency{ + dir = 8; + dwidth = 8; + height = 9; + name = "Mini emergency shuttle"; + timid = 0; + width = 21 + }, +/obj/docking_port/stationary{ + dir = 8; + dwidth = 8; + height = 9; + id = "emergency_home"; + name = "emergency evac bay"; + width = 21 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"HW" = ( +/obj/structure/chair, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"HX" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/fire, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/weapon/crowbar, +/obj/item/weapon/extinguisher, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"HY" = ( +/obj/structure/table, +/obj/item/device/assembly/signaler, +/obj/item/device/assembly/signaler, +/obj/item/device/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/device/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"HZ" = ( +/obj/structure/table, +/obj/item/weapon/weldingtool/largetank{ + pixel_y = 3 + }, +/obj/item/device/multitool, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"Ia" = ( +/obj/machinery/door/airlock/glass_command{ + name = "Escape Shuttle Cockpit"; + req_access_txt = "19" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"Ib" = ( +/obj/machinery/status_display, +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"Ic" = ( +/obj/structure/sign/bluecross_2, +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/syndicate) +"Id" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"Ie" = ( +/obj/machinery/computer/atmos_alert, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"If" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"Ig" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = 24 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"Ih" = ( +/obj/machinery/computer/security, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"Ii" = ( +/obj/machinery/computer/crew, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"Ij" = ( +/obj/machinery/computer/communications, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"Ik" = ( +/obj/machinery/recharge_station, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"Il" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/fire, +/obj/item/weapon/extinguisher, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"Im" = ( +/obj/machinery/porta_turret/syndicate{ + dir = 5 + }, +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/syndicate) +"In" = ( +/obj/machinery/computer/emergency_shuttle, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"Io" = ( +/obj/structure/chair, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"Ip" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/weapon/crowbar, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"Iq" = ( +/obj/machinery/door/window{ + dir = 1; + name = "Surgery"; + req_access_txt = "150" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"Ir" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"Is" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion"; + dir = 4 + }, +/turf/closed/wall/mineral/titanium/overspace, +/area/shuttle/transport) +"It" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/transport) +"Iu" = ( +/obj/structure/window/shuttle, +/obj/structure/grille, +/turf/open/floor/plating, +/area/shuttle/transport) +"Iv" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/transport) +"Iw" = ( +/obj/machinery/telecomms/receiver/preset_left/birdstation, +/turf/open/floor/plasteel/black{ + name = "Mainframe Floor"; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/tcommsat/computer) +"Ix" = ( +/turf/open/floor/mineral/titanium/blue, +/turf/closed/wall/mineral/titanium/interior, +/area/shuttle/transport) +"Iy" = ( +/obj/machinery/computer/shuttle/ferry/request, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"Iz" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"IA" = ( +/obj/structure/chair, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"IB" = ( +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"IC" = ( +/obj/machinery/door/airlock/shuttle, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"ID" = ( +/obj/machinery/door/airlock/shuttle, +/obj/docking_port/mobile{ + dir = 8; + dwidth = 2; + height = 12; + id = "ferry"; + name = "ferry shuttle"; + roundstart_move = "ferry_away"; + port_angle = 180; + width = 5 + }, +/obj/docking_port/stationary{ + dir = 8; + dwidth = 2; + height = 12; + id = "ferry_home"; + name = "port bay 2"; + turf_type = /turf/open/space; + width = 5 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"IE" = ( +/obj/structure/table, +/obj/item/weapon/surgicaldrill, +/obj/item/weapon/circular_saw, +/turf/open/floor/mineral/titanium, +/area/shuttle/syndicate) +"IF" = ( +/obj/machinery/telecomms/allinone{ + intercept = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/syndicate) +"IG" = ( +/obj/structure/closet/crate, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"IH" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"II" = ( +/turf/open/space, +/obj/machinery/porta_turret/syndicate{ + dir = 10 + }, +/turf/closed/wall/mineral/plastitanium{ + icon_state = "diagonalWall3" + }, +/area/shuttle/syndicate) +"IJ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1; + frequency = 1445; + on = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay) +"IK" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"IL" = ( +/obj/structure/table, +/obj/item/clothing/under/burial, +/obj/item/clothing/under/burial, +/obj/item/clothing/under/burial, +/obj/item/clothing/under/burial, +/obj/item/clothing/under/burial, +/obj/item/clothing/under/burial, +/turf/open/floor/plating, +/area/hallway/primary/central) +"IM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/power/apc{ + auto_name = 1; + dir = 2; + name = "_South APC"; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plating/warnplate{ + dir = 2 + }, +/area/quartermaster/storage) +"IN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0; + tag = "" + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"IO" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"IP" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"IQ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"IR" = ( +/obj/machinery/atmospherics/pipe/manifold{ + color = "#0000ff"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) + +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(8,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(9,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(10,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(11,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(12,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(13,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(14,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(15,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(16,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(17,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(18,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(19,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(20,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(21,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(22,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(23,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(24,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(25,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(26,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(27,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(28,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(29,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(30,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +DI +eu +eu +eu +eu +Im +eu +eu +eu +En +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(31,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +DI +eu +eu +eu +eu +eu +eu +GX +EU +GX +Hn +Gu +IE +GZ +Hc +Hg +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(32,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +DJ +Fl +Fl +Fl +Fl +Fl +eu +Hn +Hn +Hn +Hn +Iq +Hn +pK +Hc +Hi +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(33,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 +DJ +uI +uI +uI +uI +uI +eu +Ho +Hn +Hn +Hn +Ir +GW +Ha +Hc +Hh +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(34,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 +DI +eu +eu +eu +En +DB +aa +DJ +uI +Fo +uI +uI +uI +eu +Hu +Hn +Hn +Hn +GO +eu +eu +eu +DD +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(35,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 +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +DJ +bm +xK +Ds +eu +DB +aa +DJ +Fm +DN +DO +uI +uI +eu +Hx +Hn +Hn +Hn +GM +eu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(36,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 +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +DK +uI +uI +uI +eu +eu +eu +eu +eu +eu +eu +Ga +Ed +eu +eu +Ic +FY +Gv +eu +eu +eu +En +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(37,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 +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +DK +DP +uI +uI +eu +EN +uI +uI +uI +uI +EK +uI +uI +GT +uI +uI +uI +uI +uI +EK +Hc +Hg +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(38,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 +ad +ad +ad +ag +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +DK +DQ +Cg +uI +EC +uI +uI +uI +uI +uI +FW +uI +uI +uI +uI +uI +uI +uI +uI +GY +Hc +Hi +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(39,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 +ad +ad +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +DK +DR +uI +BT +eu +EW +DF +DF +DF +DF +EK +uI +uI +uI +uI +uI +uI +uI +uI +EK +Hc +Hh +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(40,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 +ad +ad +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +DK +DV +uI +uI +eu +eu +eu +Fj +eu +eu +eu +GQ +EK +eu +eu +eu +FZ +GA +eu +eu +eu +EM +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(41,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 +ad +aa +aa +aa +aa +aa +ad +ad +ad +aa +aa +DJ +DV +uI +DY +eu +EM +aa +aa +aa +DJ +uI +uI +uI +eu +HE +uI +uI +uI +GU +IF +DJ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(42,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 +ad +ad +ad +aa +aa +DM +eu +eu +eu +EM +DB +aa +aa +aa +Fv +uI +uI +uI +eu +HF +uI +uI +uI +GV +eu +eu +eu +II +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(43,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 +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +FJ +uI +uI +uI +eu +HG +uI +uI +uI +uI +uI +Hd +Hc +Hg +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(44,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 +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ag +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +DM +eu +eu +eu +eu +HY +Fo +uI +uI +uI +uI +Hf +Hc +Hi +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(45,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 +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +GS +DJ +HZ +FV +uI +Ik +Ik +uI +He +Hc +Hh +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(46,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 +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +ad +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +DM +eu +eu +eu +eu +Fj +eu +eu +eu +EM +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(47,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 +ad +ad +ad +aa +aa +aa +aa +aa +aa +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(48,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 +ad +ad +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(49,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 +ad +ad +ad +aa +ad +ad +ad +ad +ad +aa +aa +aa +aa +ad +ad +aa +aa +aa +aa +ad +ad +ad +ad +aa +aa +aa +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(50,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 +ad +ag +ad +aa +ad +ad +ag +ad +ad +aa +aa +ad +ad +ad +ad +ad +aa +aa +ad +ad +ag +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(51,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 +ad +ad +ad +aa +ad +ad +ad +ad +ad +aa +ad +ad +ad +ad +ad +ad +aa +aa +aa +ad +ad +ad +ad +aa +aa +aa +aa +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(52,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 +ad +ad +ad +ad +aa +aa +ad +ad +ad +ag +ad +ad +aa +aa +aa +ad +ad +ad +ad +aa +aa +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(53,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 +ad +ad +ad +aa +aa +aa +ad +ad +ad +ad +aa +aa +aa +aa +ad +ad +ad +aa +aa +aa +ad +ad +ad +ag +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(54,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 +ad +aa +aa +aa +aa +aa +ad +ad +ad +ad +aa +aa +aa +aa +aa +ad +ad +aa +aa +aa +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +ag +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +Gp +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(55,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 +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(56,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 +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(57,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 +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(58,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 +ad +ad +ag +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(59,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 +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(60,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 +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ag +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ag +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(61,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 +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +ad +ad +ad +aa +aa +aa +aa +aa +aa +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(62,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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +aa +aa +aa +ad +aa +ad +ag +ad +ad +aa +aa +aa +aa +aa +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(63,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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +aa +aa +aa +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(64,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 +ad +ad +ag +ad +ad +ad +ad +aa +aa +aa +aa +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(65,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 +ad +ad +ad +ad +ad +ad +ad +aa +aa +aa +ad +ad +ag +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(66,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 +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(67,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 +ad +ad +ad +ad +aa +aa +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +aa +aa +aa +aa +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(68,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 +ad +ag +ad +ad +aa +aa +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +aa +aa +aa +aa +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(69,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 +ad +ad +ad +ad +aa +aa +ad +ad +ag +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ag +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(70,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 +ad +ad +aa +ad +ad +ad +ad +aa +aa +ad +ad +ad +ad +aa +aa +aa +aa +ac +aa +aa +aa +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(71,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 +ad +ad +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ag +ad +aa +aa +aa +aa +aa +aa +aa +aa +ad +ag +ad +ad +ad +ad +aa +aa +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(72,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 +ad +ad +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +aa +aa +aa +aa +aa +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +aa +aa +aa +aa +aa +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ag +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ag +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +ad +ad +ag +ad +ad +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +aa +aa +aa +aa +ad +ad +ag +ad +ad +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +ad +ad +aa +aa +aa +aa +ad +ad +ad +ad +ad +aa +aa +aa +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +ad +ad +ad +ad +ag +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +ad +ad +aa +aa +aa +aa +ad +ad +ad +ad +ad +aa +aa +aa +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(80,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 +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +aa +aa +aa +aa +aa +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(81,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ag +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(82,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(83,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(84,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +aa +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(85,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ag +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(86,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(87,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(88,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(89,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +ad +ad +ag +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +Hw +Hw +Hw +Hw +Hw +Hw +Hw +HS +HS +HS +Hw +Hw +Hw +Hw +Hw +Hw +Hw +Hw +Hw +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(90,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ag +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +Hw +Hw +Hz +Hy +Hy +HK +HM +HP +HP +HP +HP +HP +HM +HP +HP +HX +Hw +Ie +Ii +HL +Hw +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(91,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +Hs +Hv +Hy +Hy +Hy +HS +HM +HM +HM +HM +HM +HM +HM +HM +HM +Hy +Hw +Id +Id +Il +HS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(92,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +aa +aa +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +aa +aa +aa +aa +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +Hs +Hv +HA +HH +HA +HS +HM +HR +HR +HR +HR +HR +HR +HR +HM +Hy +Ib +HM +HM +Io +HS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(93,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +aa +aa +aa +ad +ad +ad +ad +aa +aa +aa +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +Hs +Hv +Hw +Hw +Hw +HL +HM +HQ +HS +HS +HT +HS +HS +HW +HM +HM +Ia +HM +HM +In +HS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(94,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ag +ad +aa +aa +ad +ad +ad +ag +ad +aa +aa +aa +ad +ag +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +Hs +Hv +HC +HC +HS +Hy +HM +HP +HP +HP +HP +HP +HP +HP +HM +Hy +Hw +Ig +HM +Io +HS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(95,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +aa +aa +aa +ad +ad +ad +ad +aa +aa +aa +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +Hs +Hv +HB +HB +HI +HM +HM +HM +HM +HM +HM +HM +HM +HM +HM +Hy +Hw +If +If +Ip +HS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(96,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +aa +aa +aa +aa +ad +ad +ad +aa +aa +aa +aa +ad +ad +aa +aa +aa +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +Hw +Hw +HD +HD +HS +HN +HM +HR +HR +HR +HU +HR +HM +HR +HR +HX +Hw +Ih +Ij +HL +Hw +aa +aa +aa +vm +vm +HS +vm +vm +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(97,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +aa +aa +aa +aa +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +Hw +Hw +Hw +Hw +Hw +HO +Hw +Hw +HS +Hw +Hw +HV +Hw +Hw +Hw +Hw +Hw +Hw +Hw +aa +aa +aa +aa +vm +wa +vS +wa +vm +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(98,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ag +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +fW +lI +fW +am +am +am +fW +lI +fW +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +vm +wv +vS +wv +vm +aa +aa +Is +IC +Is +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(99,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +Hm +Hm +Hm +Hm +Hm +Hm +Hm +Hm +am +am +fW +lJ +fW +am +am +am +fW +lJ +fW +am +am +am +am +aa +aa +aa +aa +aa +vm +vm +vm +vq +vm +vm +vm +Is +Ix +IB +Ix +Is +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(100,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +aa +aa +aa +aa +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +Hj +Hm +Hp +Hp +Hp +Hp +Hp +Hp +Hm +kf +kf +fW +lI +fW +kf +fW +kf +fW +lI +fW +kf +kf +am +kf +fW +kf +fW +fW +of +vm +vS +vS +vS +vS +vS +vm +It +Iz +IB +IG +It +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(101,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +Hj +Hl +Hp +Hp +Hp +Hp +Hp +Hp +Hm +kf +kM +lk +lk +hk +mQ +nu +mQ +hk +lk +lk +qs +kf +am +kf +sk +lK +ty +lJ +uO +jd +vS +ww +ww +ww +vS +vm +It +Iy +IB +IG +It +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(102,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +Hj +Hl +Hp +Hp +Hp +Hp +Hp +Hp +Hm +fW +kN +lK +lK +lK +lK +lK +lK +lK +lK +lK +qt +kf +eX +kf +lK +li +fW +fW +of +vm +vU +vS +vS +vS +vS +vm +Iu +IA +IB +IH +Iu +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(103,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +aa +aa +aa +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +Hj +Hl +Hp +Hp +Hp +Hp +Hp +Hp +Hm +fW +kN +ll +lK +lK +lK +lK +lK +lK +lK +oa +lK +lK +ru +lK +lK +lK +lk +uj +fW +vm +vT +ww +ww +ww +vS +vm +It +IA +IB +IH +It +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(104,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ag +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +Hj +Hm +Hp +Hp +Hp +Hp +Hp +Hp +Hm +kf +kO +lm +lK +lK +mR +nv +nv +nv +nv +pN +nv +nv +rv +rN +lK +lK +lK +uk +fW +sP +vW +vS +wz +vS +vS +vm +It +IA +IB +IH +It +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(105,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +Hm +Hm +Hq +Hm +Hr +Hm +Hm +Hm +kf +kP +ln +lL +mp +mS +mp +mp +mp +mp +pO +mp +mp +rw +rO +lK +lK +lK +ul +fW +sP +vV +ww +ww +ww +vS +vm +It +IA +IB +IH +It +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(106,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +bq +bq +bq +bq +bq +bq +bq +bq +bJ +bq +bq +gA +gZ +bQ +gZ +bQ +bQ +gA +kf +kQ +lo +lM +ld +mT +nw +nW +mq +mq +pP +mq +qQ +rx +rP +ss +lK +tA +um +fW +vm +vX +vS +vS +vS +vS +vm +Iv +IA +IB +IH +Iv +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(107,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 +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +aa +aa +aa +aa +aa +am +bh +br +bH +bX +ct +cM +dp +dN +ev +eZ +fx +cS +gB +ha +ha +ha +hA +cS +bJ +kf +kf +lp +lN +kf +mU +kf +kf +kf +pi +pQ +qp +pM +ry +rQ +lK +lj +fW +fW +of +vm +vU +ww +ww +ww +vS +vm +It +IA +IB +IH +It +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(108,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 +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +am +am +am +am +am +am +bi +bs +bq +bY +bQ +cN +cS +cS +cS +dT +fy +fb +fb +fb +fb +fb +fb +fb +dR +ki +kR +lq +dx +mr +mV +lJ +nX +kf +pj +pR +qp +pM +rz +rR +lK +lK +ty +lJ +uO +vq +vS +vS +vS +vS +vS +vm +It +IA +IB +IH +It +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(109,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 +am +bj +bs +bQ +bZ +cu +cO +cS +dO +cS +cS +fA +cS +ey +hb +fc +hb +fc +je +dS +kj +kS +lr +lO +lJ +mW +ny +nY +kf +pk +pk +pk +pM +rA +rS +lK +lK +fW +fW +of +vm +vm +wx +wx +wx +vm +vm +It +Iu +ID +Iu +It +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(110,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 +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bj +bt +bq +ca +bQ +cO +cS +cS +cS +cS +fA +cS +ez +gD +cS +hy +cS +hc +bq +kk +kT +bN +kk +lJ +lJ +lJ +nZ +kf +pl +pS +qv +pM +rB +rT +lK +lK +kf +kf +am +vm +vZ +vZ +vZ +vZ +vZ +vm +bx +bx +bM +bx +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(111,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 +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +bk +bu +bQ +bY +cv +cP +cS +cS +cS +cS +fA +cS +ez +gy +cS +ic +cS +hY +bq +kk +kT +cf +lP +ms +bN +nA +nA +nA +nA +nA +nA +qR +lm +rC +nv +nv +tB +kf +am +am +am +am +am +am +am +am +by +bN +bN +bx +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +yB +yB +yB +yB +yB +yB +yB +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(112,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 +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bk +bv +bq +cb +bQ +cO +cS +dP +cS +cS +fA +cS +ez +bq +bq +bq +bq +bq +bq +kk +kU +bx +bx +kk +bN +nA +jh +oH +lQ +pT +nA +pM +lm +lK +sm +sr +qM +sr +sr +sr +bx +bx +bx +bx +bx +bx +bx +bM +yB +yB +qI +qI +qI +yB +yB +yB +am +am +am +am +am +am +am +am +am +am +yB +CL +Dc +Dc +Dc +Dd +Aj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(113,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 +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +bv +bJ +cc +cw +cQ +dq +cS +cS +cS +fA +cS +gC +bq +bN +bN +iE +bO +bO +kl +kV +bx +iQ +kl +bN +nA +ob +oI +pn +pU +oe +qS +lm +lK +sn +sr +qL +un +uS +sr +bN +bN +bN +bN +cx +yd +bx +cT +yC +vg +za +za +za +za +Ao +yB +aa +am +aa +aa +aa +aa +aa +am +aa +aa +yB +CM +CL +Dc +Dc +DL +Aj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(114,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 +am +am +bw +bq +bq +bq +cR +cS +dO +cS +fd +fz +fc +dZ +bq +bN +bx +dw +jg +jO +km +kW +bx +iQ +mt +bN +nA +oc +oJ +po +po +oT +pO +rD +qO +sn +nt +tE +uo +tL +vt +bS +bS +bS +bS +nN +dt +bx +pr +yA +yO +zf +zq +zq +Af +Ao +yB +aa +am +yB +qI +qI +qI +yB +am +aa +aa +yB +CN +CO +Dc +Dc +Dd +Aj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(115,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 +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +am +bv +bK +cd +bK +cS +cS +dQ +fe +fe +fB +cS +ez +bq +bN +bx +cB +ii +bx +nx +vc +bx +bx +mu +bN +nA +od +oK +jT +pW +nA +pM +lm +lK +sn +nt +tF +tn +un +sr +wb +bN +bN +bN +pr +mG +bx +pr +yA +yP +za +zr +za +Ab +Ap +yB +aa +am +qI +Bo +Bo +Bo +qI +am +aa +aa +yB +CN +CL +Dc +Dc +DL +Aj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(116,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 +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +bv +bq +ce +bq +ds +bq +bq +bJ +bq +fC +ft +ew +bq +bN +bx +du +ji +bx +nz +ji +bx +lR +mv +bN +nB +oe +oe +pq +oe +oe +qT +lm +lK +so +sR +tG +tn +tu +sr +wc +bx +bx +bx +pr +bN +bx +yw +yA +yR +zg +zs +zR +Ab +Ar +yB +yB +yB +yB +za +za +za +yB +yB +yB +yB +yB +CN +CO +Dc +Dc +Dd +Aj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(117,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bx +cx +bN +bq +eD +cS +ff +fD +fa +ez +bq +bN +bx +bx +jj +bx +bx +kX +bx +lS +mw +bN +nC +jo +bx +bN +IL +bx +ps +rE +qX +sp +sS +tH +uq +un +vu +sr +wA +bN +bN +pr +bN +bN +pr +yA +yQ +zg +zt +zS +Ag +As +zq +zq +zq +xc +zq +As +zq +zq +Ce +Af +Ct +yB +CN +CL +Dc +Dc +DL +Aj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(118,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bL +bx +bN +dt +bq +eE +cS +cS +fA +cS +ez +bq +bN +bx +iH +jk +jk +jk +kY +bx +lT +fw +mv +nD +jo +bx +cT +bS +qx +qU +rF +rW +sq +sT +tI +ur +un +vv +sr +Av +wW +xr +xL +xr +xr +yx +yA +yS +zg +zt +zS +za +Ab +za +AM +AY +xd +Bp +sH +za +za +yF +Ck +Cu +yB +CM +CO +Dc +Dc +Dd +Aj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(119,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 +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bx +bM +bx +bN +iE +dR +eF +fb +fb +fE +cS +ez +bq +bN +bx +iI +iF +kr +jl +kZ +bx +Bc +Bc +mw +dt +bx +bx +pr +bN +bx +fX +cX +ks +sr +sU +tJ +us +tX +sr +sr +wC +wX +xs +bx +bx +bx +pr +yA +yT +za +zr +zT +za +Ab +yB +yB +yB +qI +qI +sy +yB +BX +za +Ab +Cv +yB +CO +Dd +CL +Dc +DL +Aj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(120,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 +ah +ah +ah +ah +ah +ah +am +by +bN +bx +bN +IM +bq +eG +dv +fg +fF +fN +dZ +bq +bN +bx +iJ +iG +jl +ko +la +bx +lV +fw +mX +bN +vE +bN +pr +dt +bx +qV +cX +ks +sr +sV +tK +ut +uW +sq +bG +wD +wY +px +xM +vo +bx +pr +yA +yU +za +za +zT +za +wH +yB +AW +za +xf +An +sO +yB +yB +za +Ab +yB +yB +yB +uQ +uQ +yB +yB +yB +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(121,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 +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ah +ah +aw +aG +aN +aU +ah +ah +bx +bM +bx +bN +IN +bq +bq +bQ +bQ +fG +bQ +fV +bq +bN +bx +iK +iG +jl +jl +lb +bx +lW +my +bN +nE +bN +bN +pr +lv +bx +fX +qy +rV +sr +sW +sr +sr +sr +sr +wd +wE +wZ +xs +bx +bx +bx +pr +yA +yV +vw +zu +zU +zs +At +AH +AO +zR +za +Bi +Ae +tz +yB +Bl +Ag +Ai +BI +za +Bn +BN +Cb +De +yB +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(122,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 +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aj +an +ax +aH +aO +aO +ba +bl +bz +bO +bO +bO +cV +bx +eI +eI +eI +fH +fX +ks +bx +bN +id +iL +kn +mc +oo +lc +bx +bN +bN +cT +bS +oh +bS +mY +lu +bx +qW +rG +fj +qx +sX +uu +uu +uu +uu +uu +wF +nD +bT +bT +yf +bN +pr +yA +yW +zi +zv +za +za +Ab +yB +AP +AZ +za +za +za +Bd +yB +za +za +yB +AT +CP +Bv +BP +Cd +Df +yB +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(123,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 +ai +ao +ay +ay +ay +ay +ay +ah +bA +bN +cf +bN +IO +dy +dV +el +el +fI +fX +ks +bx +bx +bx +bx +jn +jm +og +AR +bx +cT +mz +mY +nF +oi +oL +bN +cx +bx +lY +fX +fX +bx +on +bx +bx +bx +bx +bN +lP +bO +xu +bO +yg +ms +pr +yA +yA +yA +zw +zV +Ah +Ab +yB +AU +AZ +Be +Bq +BA +BL +yB +zY +zY +yB +AS +CQ +Br +BP +Cd +De +yB +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(124,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 +ai +ap +az +ay +ay +ay +bb +ah +bB +ah +ah +bx +IP +bx +dW +eK +eK +fJ +fX +ks +bx +hB +ie +bx +kq +jP +tZ +el +bx +lX +bx +bx +bx +bx +bx +bx +bx +bx +lY +fX +fX +bx +bx +bx +uv +uX +bx +bx +bx +bx +bx +bx +tN +yn +yy +yD +yX +zj +zx +zW +Ai +wK +yB +yB +AZ +xt +xT +ye +zK +uN +zK +zK +uN +ye +CR +BB +BP +Cd +De +yB +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(125,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 +ai +aq +aA +aI +aP +ay +bc +bo +bD +bR +bo +cy +IQ +IR +eL +eL +eL +eL +eL +dX +eL +fY +eL +iM +kp +eL +dX +eL +ls +jZ +eL +eL +eL +mx +fX +fX +fX +fX +lY +fX +fX +iO +fX +iT +fX +fX +fX +fX +fX +tO +fX +xN +ks +yo +jZ +yE +eL +mx +zy +zX +vL +Ae +AI +qI +AZ +xo +Bs +yc +zp +uN +zp +zp +uN +Bb +CS +zp +BQ +CB +Dg +yB +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(126,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 +al +ar +aB +aJ +aQ +aV +bd +bI +bP +ch +bW +cz +cY +dA +fj +eM +fj +fj +fj +dY +fj +fZ +fj +iN +dA +hF +dY +fj +fj +lZ +fX +fX +fX +nq +fX +fX +fX +fX +lY +fX +fX +iO +fX +sY +fX +fX +fX +fX +fX +fX +fX +fX +ks +jq +lY +fX +fX +wB +zz +vh +AV +za +za +qI +Ba +Bh +Bt +BD +BO +AK +AV +BO +Aa +AV +za +za +Dw +CD +BK +yB +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(127,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 +ak +as +aC +aK +aR +aW +be +bC +bE +cg +bC +cA +cZ +dB +fk +eN +fk +ga +dU +ex +he +ga +ga +zd +jp +fL +kv +fX +fX +lY +lU +fX +fX +fX +oM +fX +pX +fX +lY +fX +fX +iO +fX +sZ +ga +ga +ga +ga +ga +up +ga +ve +kv +yp +lY +xO +fX +fX +zA +zX +vM +Aw +AJ +qI +za +xP +Bu +ze +zM +uP +zM +zM +uP +Bf +CT +zM +BY +CC +Dh +yB +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(128,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ak +at +aD +ay +ay +aX +bf +ah +ah +ah +ah +bx +cW +dC +dr +et +eQ +cj +cj +cj +cj +hC +if +bx +eC +hG +jN +bx +bx +lX +bx +bx +bx +bx +bx +bx +bx +bx +lY +fX +fX +su +su +kh +kh +kh +kh +su +su +su +su +su +yh +yq +yz +jO +yY +zk +zB +zZ +Am +wT +yB +yB +yM +xQ +xX +zh +zN +uP +zN +zN +uP +zh +CR +BE +BZ +Cd +Di +yB +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(129,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 +ak +au +ay +ay +ay +aX +ay +ah +bF +bS +ci +bS +da +dD +dn +ed +dn +eR +gb +gE +cj +cj +cj +cj +jq +fX +ks +bx +cT +ma +bS +bS +bS +bS +bS +nN +bN +bx +pL +fX +fX +sv +ta +td +td +td +td +we +su +xa +wh +wl +yi +yr +mY +yA +yA +yA +yA +vK +ws +Az +yB +AU +za +Bk +Bw +BG +BR +yB +zY +zY +yB +Bg +CQ +BC +BZ +CE +DS +yB +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(130,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 +aL +av +aE +bn +aS +aY +bg +bp +bG +bT +bT +bT +db +dE +eb +em +eV +eW +gc +gF +hf +hD +ig +cj +jq +fX +ks +bx +cU +mb +mb +mb +mb +mb +mb +pt +bN +bx +qY +fX +fX +su +tb +tQ +tT +tT +vx +wf +wG +xb +xw +wm +yj +ys +yA +yA +yZ +yZ +zC +Ab +za +Az +yB +za +za +za +za +za +za +yB +za +za +yB +Bj +CU +BM +BZ +DG +DT +yB +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(131,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 +ah +ah +aF +aM +aT +aZ +ah +ah +bx +bM +bx +bN +cU +cj +ea +eJ +ea +ck +gd +gF +de +hE +ih +cj +jq +fX +kt +bx +cU +mb +mA +mZ +nG +oj +mb +pu +cx +bx +qm +qA +fX +su +tc +tR +ux +uY +tR +wg +su +ue +xx +xR +yk +yt +yA +yH +yH +yH +zD +Ac +AN +AA +AK +AV +za +za +Bm +Aw +ui +yB +za +Cl +Am +BJ +CV +BF +Ca +CF +DU +yB +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(132,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 +ah +ah +ah +ah +ah +ah +am +by +bN +bx +bN +dc +cj +ee +eS +fn +de +ge +gG +hg +de +gl +cj +jq +fX +ku +bx +cU +mb +mB +na +nH +ok +oN +oN +pY +mb +qo +fX +fX +su +sw +tS +td +td +tS +tj +su +uf +xy +wI +yl +pr +yA +yH +yH +yH +zD +Ac +za +AB +yB +AW +za +xk +Aq +tk +yB +yB +za +Az +yB +CJ +yB +Dn +Dn +CH +yB +CJ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(133,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bx +bM +cj +cj +cj +cj +ef +eS +de +de +gf +gH +hh +eB +ij +cj +jq +fX +ks +bx +cU +mb +mC +nb +nI +nb +ib +pv +jW +ke +qZ +eL +eL +qi +tT +tT +tT +tT +tT +wi +su +xe +xz +xS +su +yu +yA +yI +yI +yI +zE +Ac +zr +AC +yB +yB +yB +qI +qI +sQ +yB +Cc +za +Az +Cx +yB +CW +Do +CY +CG +Dj +yB +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(134,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +bL +ck +cC +dd +dF +IK +eS +de +de +gf +gI +hi +de +gm +cj +jq +fX +ks +bx +cU +mb +mD +nb +nb +nb +oP +pw +pw +pp +ra +fX +fX +kh +td +td +td +td +td +wj +tt +uG +xA +wJ +su +bN +yA +yI +yI +yI +zE +Ac +za +Az +za +AX +AI +xY +Bx +tx +za +za +yG +Cm +Cy +yB +CX +Dp +Do +CI +CI +yB +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(135,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +ck +cD +de +de +eg +eT +fo +fo +gh +eA +fo +fo +il +cj +dz +ik +ks +bx +cU +mb +mE +nb +nJ +nb +jS +ns +jX +kg +rb +ga +rW +qj +tU +tU +tU +tU +vy +wk +wI +xg +qC +xU +su +bN +yA +yJ +yJ +yJ +zF +Ac +zr +AD +AL +AL +AL +xn +AL +BU +AL +AL +Ch +Cn +Cz +yB +CY +Da +Dq +Dq +DW +yB +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(136,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ck +cE +df +dG +eh +eU +fp +fO +gi +gk +hj +hH +im +cj +jq +fX +ks +bx +cU +mb +mC +iS +nK +ol +oR +oR +qc +mb +rc +fX +ks +su +th +tW +tW +tW +vA +tW +su +vH +xC +xV +su +mu +yA +yJ +yJ +yJ +zF +Ac +za +AE +yB +yB +yB +yB +By +za +BV +yB +yB +yB +yB +yB +CZ +Dp +Dq +Dq +Do +yB +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(137,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ck +ck +dg +dH +ei +ck +eO +fm +fh +ck +eO +hq +fh +cj +jr +fX +ks +bx +cU +mb +mF +nd +nL +om +mb +py +qd +qB +rd +fX +ks +su +su +tV +uy +uZ +vz +uV +su +xi +xD +xW +su +bN +yA +yK +yK +zl +zG +Ad +zq +AF +yB +aa +aa +qI +Bz +BH +BW +tP +Ci +Co +am +yB +CY +Da +Dq +Dq +DW +yB +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(138,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ck +dh +de +ej +ck +fr +de +ge +ck +fr +de +ge +cj +fq +fX +ks +bx +cU +mb +mb +mb +mb +mb +mb +pz +qe +bx +re +fX +ks +su +sM +se +uz +uz +vB +vC +vG +xj +xE +xh +su +bN +yA +Ay +za +za +zH +Ae +AQ +AG +yB +aa +aa +yB +qI +qI +qI +yB +Cj +Cp +am +yB +CY +Dp +Dq +Dq +Do +yB +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(139,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ck +di +dI +ek +ck +fi +fQ +gj +ck +fs +hJ +gj +cj +jq +fX +ks +bx +cU +bN +mG +ne +nM +on +bx +bx +bx +bx +jq +fX +ks +su +sA +tY +uA +va +vC +vC +tC +uH +xF +uH +ym +bN +yA +uT +xB +zm +zI +zm +zm +Ao +yB +aa +aa +aa +aa +aa +aa +aa +aa +Cq +am +yB +CX +Da +Dq +Dq +DW +yB +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +GR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(140,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ck +dj +dJ +eH +ck +ck +ck +cj +cj +cj +cj +cj +cj +gg +fX +kt +bx +lt +bS +mH +nf +nN +bN +bN +bN +bN +id +jq +fX +kt +su +su +su +su +su +vD +wn +su +su +su +su +su +bN +yA +yB +yB +zn +zJ +zn +yB +yB +yB +aa +aa +aa +aa +aa +aa +aa +aa +Cq +am +yB +Da +Dq +Dq +Dq +Do +yB +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(141,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ck +ck +ck +ck +ck +am +am +ck +gK +hl +hK +gn +fK +js +fX +ks +bx +lu +bN +cU +bN +cU +bN +bN +bN +bx +bx +jr +fX +rX +ga +xv +ga +ga +yN +ga +Al +Ax +id +bN +bN +bN +bN +bx +aa +yB +qI +qJ +qI +yB +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +Cq +am +yB +yB +Dr +Dr +Dr +yB +yB +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(142,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +aa +aa +aa +am +aa +ck +gM +hn +hM +io +hz +jt +fX +ks +bx +lv +bN +mI +ng +nO +wo +lR +pA +bx +oQ +jq +fX +ks +fX +el +fX +uB +vb +uB +vb +wL +bx +bx +bx +bM +bx +bx +aa +am +aa +zL +aa +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +Cr +am +aa +aa +aa +aa +aa +aa +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(143,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +aa +aa +aa +am +aa +ck +gL +hm +hL +gJ +fM +ju +ga +kv +go +go +go +go +go +nP +nP +oS +nP +nP +qD +rf +fX +rX +sB +tl +fX +uC +vb +uC +vb +wM +bx +am +bx +bN +by +am +aa +am +aa +zL +aa +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +Cq +am +aa +aa +aa +aa +aa +aa +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(144,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +aa +aa +aa +am +aa +ck +ck +ck +ck +ck +ck +jq +fX +ks +go +lw +md +me +go +nQ +op +rI +pB +nP +qE +jq +fX +ks +fX +tm +fX +uD +vb +uD +vb +wN +bx +am +bx +bM +bx +am +aa +zc +zc +rm +zc +zc +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +Cq +am +aa +aa +aa +aa +aa +aa +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(145,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +aa +aa +aa +am +aa +fw +gN +ho +hN +iq +iT +jq +fX +ks +go +lw +me +me +go +nR +pd +pm +pf +nP +hC +dz +eL +dX +eL +yv +yL +eL +zb +zQ +Au +wO +bx +aa +am +bL +am +aa +aa +zc +zo +wy +zo +zc +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +Cq +am +aa +aa +aa +aa +aa +aa +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(146,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +aa +aa +aa +am +aa +fw +gO +fX +fX +fX +fX +jq +ip +kv +go +lw +me +me +go +nS +or +pf +pC +nP +nP +jq +fX +ks +bx +bx +bx +fw +bx +fw +bx +bx +bx +aa +aa +am +aa +aa +aa +zc +zo +zO +zo +zc +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +Cq +am +aa +aa +aa +aa +aa +aa +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(147,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +am +am +aa +am +am +am +fw +gP +hp +hO +fX +iU +jv +hp +kw +go +lx +mf +mf +go +nT +or +pf +pf +qf +qF +eC +hG +sl +bx +am +aa +aa +aa +aa +am +aa +aa +aa +aa +am +aa +aa +aa +zc +zo +zP +zo +zc +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +Cs +Co +am +aa +aa +aa +aa +am +am +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(148,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bU +bU +bU +bU +bU +bU +bU +bU +bU +go +go +gR +go +go +go +jw +iV +kx +go +ly +ly +ly +go +go +or +nr +pf +qg +nP +rg +rI +rY +sC +nP +nP +nP +nP +nP +nP +aa +aa +aa +aa +am +aa +aa +aa +zc +zc +zc +zc +zc +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +Cj +CA +CK +Db +Db +Db +Db +DX +DZ +DX +Db +Db +Db +Ee +Ep +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(149,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bU +cl +cF +cs +bU +cl +cF +cs +bU +gp +gu +gQ +hr +ir +bU +hZ +iR +jx +bU +cp +cp +cp +nh +go +os +oW +pD +ky +pV +rh +pD +rZ +qw +hx +ua +uE +vd +uU +hx +aa +aa +aa +aa +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +am +am +am +am +am +am +am +am +am +am +am +Ef +Eq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(150,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bU +cm +cG +cs +bU +cm +cG +cs +bU +gq +cp +cp +hQ +hQ +bU +jy +cp +kz +bU +lz +cp +cp +ni +go +ot +oX +pE +kC +pZ +ri +pf +pf +qw +qz +ub +pf +or +ti +hx +aa +aa +aa +aa +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +Cq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(151,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bU +cm +cs +cs +bU +cm +cs +cs +bU +gr +cp +cp +hR +is +bU +jz +jR +kA +gv +jV +mg +mg +nj +nU +ou +oY +pF +nP +nP +rj +rJ +sa +nP +nP +uc +sd +or +sN +hx +am +aa +aa +aa +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +Er +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(152,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bU +cn +cH +cn +dK +ec +eP +ec +bU +gs +cp +cp +hS +it +bU +jA +jf +kB +gw +lB +hX +cp +nk +kx +ov +oV +pG +le +hx +rk +rK +sb +nP +sI +pf +pf +or +vI +hx +am +am +aa +aa +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +Cq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(153,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bU +co +cI +dk +bU +en +cI +fl +bU +bU +cp +hs +hT +iu +bU +iw +jb +jB +bU +lA +cp +cp +mm +kx +ow +oV +pG +le +hx +rl +pf +sc +nP +si +ud +uF +vf +vJ +nP +nP +hx +nP +nP +nP +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +Cq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(154,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bV +cp +cp +cp +dL +cp +cp +cp +cp +gt +cp +ht +hU +iv +gv +jC +jY +kD +bU +lD +cp +mJ +nc +kx +ox +oV +pG +qk +nP +hx +qh +hx +nP +tq +rL +to +tf +nP +nP +wP +xm +xG +xZ +nP +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +Cq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(155,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bV +cp +cp +cp +dM +cp +cp +cp +cp +fu +cp +hu +hV +kI +hI +jD +cp +kE +jQ +cp +cp +mK +mn +kx +oy +oZ +pD +pD +qK +pD +pD +ql +sE +tr +rn +sx +te +tg +oG +wQ +vF +pf +ya +hx +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +Cq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(156,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bU +cr +cJ +dm +bU +eo +cp +cp +fS +gv +gS +hv +hW +ix +bU +jE +iR +kF +bU +lE +cp +mL +nc +kx +oz +pa +pH +pH +oX +pa +pa +oX +pH +pa +pa +oX +vi +pf +ts +wR +pf +pf +yb +hx +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +Cq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(157,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bU +cq +cK +dl +bU +ep +cp +cp +fR +bU +gT +ht +cp +iy +bU +jF +cp +jU +bU +lF +kG +cp +nl +kx +oA +pb +or +qa +qu +ro +rM +oU +sG +qG +ug +sz +vj +pD +oO +wS +IJ +pf +pf +hx +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +Cq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(158,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bU +cs +cs +cm +bU +eq +cp +fv +fT +bU +gU +ht +cp +iz +bU +jE +cp +jU +bU +lG +mi +cp +np +kx +nP +nP +ou +nP +qb +nP +nP +nP +kL +qH +nP +sD +kL +nP +nP +vk +xp +xH +xl +nP +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +Er +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(159,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bU +cs +cs +cm +bU +er +cp +cp +fU +gw +gV +hw +hX +iA +bU +jG +cp +jU +bU +lH +lC +hQ +nm +kx +oB +pc +pI +qn +qN +rp +nP +sf +rH +qN +nP +tp +uJ +vN +nP +nP +hx +nP +nP +nP +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +Cq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(160,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bU +cs +cL +do +bU +es +cp +cp +bU +bU +bU +bU +bU +bU +bU +jH +cp +kH +bU +gt +mj +mM +mj +kx +oq +pd +pJ +pf +oV +rq +nP +sg +sJ +oV +nP +uK +or +vO +nP +am +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +Cq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(161,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bU +bU +bU +bU +bU +bV +bV +bV +bU +gx +gW +bV +cp +cp +cp +ka +in +kI +lf +gw +mh +mN +nn +nV +oD +oC +Hb +qq +pe +rr +nP +sh +sK +tv +nP +uL +vl +vP +nP +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +Cq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +am +bU +fP +gX +hd +iB +iB +iW +jI +ht +cp +lg +bU +ml +mO +ml +go +oE +pf +pf +pf +pf +rs +nP +qP +sL +tw +nP +tD +or +vQ +nP +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +Cq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +bU +gz +gY +bV +hQ +iC +cp +jJ +iP +cp +es +bU +mk +mP +no +go +oF +pg +pf +qr +pf +rt +nP +sj +st +rZ +nP +uM +tM +vR +nP +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +Er +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bU +bU +bU +bU +ia +bU +iX +jK +cp +cp +bU +bU +mo +mo +mo +go +hx +hx +nP +nP +hx +hx +nP +nP +hx +hx +nP +hx +hx +nP +nP +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +Es +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +bU +bU +bU +bU +jL +kb +kJ +lh +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +Et +Co +am +am +am +am +am +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +am +bU +iY +jM +kc +kc +bV +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +Ef +EB +Co +Ea +uR +uR +uR +Ea +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +bU +iZ +jL +kd +kK +bU +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +am +Ef +CA +uw +Fh +Fw +FK +uR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bU +ja +bU +bV +bV +bU +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +am +Ea +uR +uR +Ea +Fi +Eh +ED +Ea +uR +uR +Ea +am +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +bL +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +am +Ea +Eh +Eh +Eh +Eh +Eh +Eh +Eh +Eh +Eh +Ea +am +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +aa +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +am +bL +Ea +Eh +Eh +Eh +Dl +Eh +FL +Eh +Eh +Eh +Ea +bL +am +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +aa +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +bL +bL +Ea +ED +Ev +EE +EL +Fx +FM +EI +Gq +Fi +Ea +bL +bL +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +aa +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +Ea +Eg +Ea +Eh +Ew +Ht +Fk +Fy +FN +Iw +Gr +Eh +Ea +Eg +Ea +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +aa +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +Eb +Eh +Ea +Eh +Ew +rU +EV +Fz +EV +Gb +Gr +Eh +Ea +Eh +Eb +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(174,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +aa +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +Ea +Eg +Ea +Eh +Ew +GP +EV +FA +EV +EX +Gr +Eh +Ea +Eg +Ea +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(175,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +aa +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +Ea +Eh +Eu +Eh +Ew +HJ +EV +EV +EV +Gc +Gr +Eh +Eu +Eh +Ea +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(176,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +aa +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +Ea +Eh +Ev +EE +EL +Ea +Ea +FB +FO +Gd +Gs +Fx +Fx +Eh +Ea +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(177,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +aa +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +Ea +Eh +Ew +EF +Gt +EY +uR +FC +FC +Ge +Gt +GD +Fx +Eh +Ea +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(178,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +aa +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +Ea +Eh +Ew +EG +Dk +EZ +vn +FD +FP +Gf +Dt +GE +Fx +Eh +Ea +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(179,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +aa +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +Ea +Eh +Ew +EG +EO +Fa +Fn +FE +FQ +Gg +EG +GF +Fx +Eh +Ea +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(180,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +aa +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +Ea +Ei +Ex +EH +EP +Fb +uR +FF +FR +Gh +Du +GG +Fx +Eh +Ea +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(181,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +aa +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +Ea +Ej +Ey +EI +EI +Fc +EI +EI +FS +Fx +Gw +Fx +Fx +Fi +Ea +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(182,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +aa +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +Ea +Ea +Ek +Ez +Eh +Eh +Fd +Fp +Fp +FT +Gi +Eh +Eh +Eh +Eh +Ea +Ea +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(183,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +aa +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +Ea +Ec +El +EA +EJ +EJ +EJ +EJ +EJ +FU +Gj +EJ +EJ +GK +Eh +GN +Ea +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(184,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +aa +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +Ea +Ak +Em +Ak +EJ +EQ +Fe +Fq +FG +wq +Gk +Gx +GB +GL +Eh +GN +Ea +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(185,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +bL +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +Ea +Ea +uh +Ea +EJ +ER +Ff +Fr +FH +wp +Gl +Gy +GB +GK +uR +Ea +Ea +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(186,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +DJ +hP +DJ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +Eo +am +EJ +ES +EQ +Fs +EQ +FX +Gm +Gz +GH +EJ +am +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(187,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +DJ +iD +DJ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +EJ +ET +Ff +Ft +FI +wr +Gn +Dv +GI +EJ +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(188,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +EJ +EQ +Fg +Fu +Dm +wt +Go +GB +GJ +EJ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(189,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +aa +aa +aa +aa +aa +aa +aa +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(190,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +am +am +am +am +am +am +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(191,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 +ae +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +am +aa +aa +am +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(192,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +aa +aa +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(193,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +aa +aa +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(194,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +am +aa +aa +am +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(195,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(196,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(197,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(198,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 +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(199,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(200,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(201,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(202,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(203,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(204,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(205,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(206,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(207,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(208,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(209,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(210,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(211,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(212,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(213,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(214,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(215,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(216,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(217,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(218,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(219,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(220,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(221,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(222,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +GC +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(223,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(224,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(225,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(226,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(227,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(228,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(229,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(230,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(231,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(232,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(233,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(234,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(235,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(236,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(237,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(238,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(239,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(240,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(241,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(242,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(243,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(244,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(245,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(246,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(247,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(248,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} diff --git a/_maps/map_files/MiniStation/cargopacks.dm b/_maps/map_files/MiniStation/cargopacks.dm new file mode 100644 index 0000000..097711e --- /dev/null +++ b/_maps/map_files/MiniStation/cargopacks.dm @@ -0,0 +1,9 @@ +/obj/machinery/hydroponics/constructable/unattached + anchored = 0 + +/datum/supply_pack/organic/hydroponics/hydro_tray + name = "Hydroponics Tray Kit" + contains = list(/obj/machinery/hydroponics/constructable/unattached) + cost = 10 + crate_name = "hydroponics kit" + crate_type = /obj/structure/closet/crate/large \ No newline at end of file diff --git a/_maps/map_files/MiniStation/job/jobs.dm b/_maps/map_files/MiniStation/job/jobs.dm new file mode 100644 index 0000000..03bdf00 --- /dev/null +++ b/_maps/map_files/MiniStation/job/jobs.dm @@ -0,0 +1,83 @@ +/* + In this file we modify the job datums when the ministation.dm file is included/ticked. + Since we will be overriden by the job datums, we have to modify the variables in the constructor. +*/ + + +/datum/job/New() + ..() + supervisors = "the captain and the head of personnel" + +/datum/job/assistant // Here so assistant appears on the top of the select job list. + +// Command + +/datum/job/captain/New() + ..() + supervisors = "Nanotrasen and Central Command" + +/datum/job/hop/New() + ..() + supervisors = "the captain and Central Command" + +/datum/job/hop/get_access() + return get_all_accesses() + +// Cargo + +/datum/job/cargo_tech/New() + ..() + total_positions = 3 + spawn_positions = 3 + access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mint, access_mining, access_mining_station) + minimal_access = list(access_maint_tunnels, access_cargo, access_cargo_bot, access_mining, access_mint, access_mining_station, access_mailsorting) + +// Engineering + +/datum/job/engineer/New() + ..() + total_positions = 4 + spawn_positions = 4 + access = list(access_eva, access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, access_external_airlocks, access_construction, access_atmospherics, access_tcomsat) + minimal_access = list(access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, access_external_airlocks, access_construction, access_tcomsat, access_atmospherics) + +// Medical + +/datum/job/doctor/New() + ..() + total_positions = 4 + spawn_positions = 4 + access = list(access_medical, access_morgue, access_surgery, access_chemistry, access_virology, access_genetics) + minimal_access = list(access_medical, access_morgue, access_surgery) + + +/datum/job/chemist/New() + ..() + total_positions = 1 + spawn_positions = 1 + access = list(access_medical, access_morgue, access_surgery, access_chemistry, access_virology, access_genetics) + minimal_access = list(access_medical, access_chemistry) + +// Science + +/datum/job/scientist/New() + ..() + total_positions = 4 + spawn_positions = 4 + access = list(access_robotics, access_tox, access_tox_storage, access_research, access_xenobiology) + minimal_access = list(access_tox, access_tox_storage, access_research, access_xenobiology, access_robotics) + +// Security + +/datum/job/detective/New() + ..() + supervisors = "no one but yourself" + access = list(access_sec_doors, access_forensics_lockers, access_morgue, access_maint_tunnels, access_court, access_engine) + minimal_access = list(access_sec_doors, access_forensics_lockers, access_morgue, access_maint_tunnels, access_court) + +/datum/job/officer/New() + ..() + total_positions = 4 + spawn_positions = 4 + access = list(access_security, access_sec_doors, access_brig, access_court) + minimal_access = list(access_security, access_sec_doors, access_brig, access_court) \ No newline at end of file diff --git a/_maps/map_files/MiniStation/job/removed.dm b/_maps/map_files/MiniStation/job/removed.dm new file mode 100644 index 0000000..3954ecf --- /dev/null +++ b/_maps/map_files/MiniStation/job/removed.dm @@ -0,0 +1,55 @@ +// Removed Jobs, setting config_check to 0 will stop them from being initialised. + +/datum/job/chef/config_check() + return 0 + +/datum/job/hydro/config_check() + return 0 + +/datum/job/qm/config_check() + return 0 + +/datum/job/mining/config_check() + return 0 + +/datum/job/mime/config_check() + return 0 + +/datum/job/librarian/config_check() + return 0 + +/datum/job/lawyer/config_check() + return 0 + +/datum/job/chaplain/config_check() + return 0 + +/datum/job/chief_engineer/config_check() + return 0 + +/datum/job/atmos/config_check() + return 0 + +/datum/job/cmo/config_check() + return 0 + +/datum/job/geneticist/config_check() + return 0 + +/datum/job/virologist/config_check() + return 0 + +/datum/job/rd/config_check() + return 0 + +/datum/job/roboticist/config_check() + return 0 + +/datum/job/hos/config_check() + return 0 + +/datum/job/warden/config_check() + return 0 + +/datum/job/cyborg/config_check() + return 0 \ No newline at end of file diff --git a/_maps/map_files/MiniStation/misc.dm b/_maps/map_files/MiniStation/misc.dm new file mode 100644 index 0000000..cb5481b --- /dev/null +++ b/_maps/map_files/MiniStation/misc.dm @@ -0,0 +1,19 @@ +// Override global variables here! + +var/datum/map_config/MiniStation = new() + +/datum/map_config/New() + ..() + accessable_z_levels = list(1,4,5) // Restrict the map to the non-empty z levels, which were all combined in MiniStation + +// Enable all headsets by default in MiniStation, we don't worry about spam here. +// Also both heads are in charge of everything, give them all department channels. + +/obj/item/device/encryptionkey/heads/New() + ..() + // Give all channels and turn everything on + channels = list("Command" = 1, "Security" = 1, "Engineering" = 1, "Science" = 1, "Medical" = 1, "Supply" = 1, "Service" = 1) + +/obj/item/weapon/paper/generator + name = "paper - 'generator instructions'" + info = "

How to setup the Thermo-Generator

  1. To the top right is a room full of canisters; to the bottom there is a room full of pipes. Connect C02 canisters to the pipe room's top connector ports, the cansisters will help act as a buffer so only remove them when refilling the gas..
  2. Connect 3 plasma and 2 oxygen canisters to the bottom ports of the pipe room.
  3. Turn on all the pumps and valves in the room except for the one connected to the yellow pipe and red pipe, no adjustments to the pump strength needed.
  4. Look into the camera monitor to see the burn chamber. When it is full of plasma, press the igniter button.
  5. Setup the SMES cells in the North West of Engineering and set an input of half the max; and an output that is half the input.
Well done, you should have a functioning generator generating power. If the generator stops working, and there is enough gas and it's hot and cold, it might mean there is too much pressure and you need to turn on the pump that is connected to the red and yellow pipes to release the pressure. Make sure you don't take out too much pressure though.
You optimize the generator you must work out how much power your station is using and lowering the circulation pumps enough so that the generator doesn't create excess power, and it will allow the generator to powering the station for a longer duration, without having to replace the canisters. " \ No newline at end of file diff --git a/_maps/map_files/MiniStation/readme.dm b/_maps/map_files/MiniStation/readme.dm new file mode 100644 index 0000000..d185c75 --- /dev/null +++ b/_maps/map_files/MiniStation/readme.dm @@ -0,0 +1,6 @@ +/* + The contents of these files should not be ticked/included while compiling. + + These files are only included, and compiled, when \_maps\ministation.dm is included; as these files are necessary to run the MiniStation mod. + You do not have to tick them yourself, it will be automatically done by the ministation.dm file. +*/ \ No newline at end of file diff --git a/_maps/map_files/MiniStation/z5.dmm b/_maps/map_files/MiniStation/z5.dmm new file mode 100644 index 0000000..3797247 --- /dev/null +++ b/_maps/map_files/MiniStation/z5.dmm @@ -0,0 +1,264 @@ +"a" = (/turf/open/space,/area/space) +"b" = (/turf/closed/mineral/random/low_chance,/area/space) +"c" = (/turf/closed/mineral/random/high_chance,/area/space) +"d" = (/turf/closed/mineral,/area/space) +"e" = (/turf/closed/mineral/random,/area/space) +"f" = (/turf/open/floor/plating/asteroid/airless/cave,/area/space) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbabbbaaaaaaaaabbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbaaaaaaaaaaaaaaaaaaaaaaaabbbcbbbbbbbbbaaaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbaaaaaaaabbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbabbbaaaaaaaabbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbabaaaaaaaaaaaabbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaabbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaabbbbaaaaaaaaabbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaabbbbaaaaaaaaabbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaabbbbccbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaabbbbccbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbcbbaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbaaaaaaaaaaabbbbbbbbbbbaaaaaaaaaaaaaaaaabbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbaaaaaaaaaaabbbbbbbbbcbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbcbbbbbbbaaaaaaaabbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbcbbbbaaaaaaaabbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbaaaabbbaaaaaaaaaaaaaaaaaaaaabbbcbcbbbbcbaaaaaaaabbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaabbcbbbbbbbbbbaaaaaaaabbbbaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbcbbbbaaaaaaaaaaaaaaaaaaaabbbbbbbcbaaaaaaaaaaaabbbbaaaaabbaaabbaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbcbaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaabbbbbbbbbaaaaaaaaaaabbaaaaaaaabbbaabbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaaaaaaaaaaaaabbbbbbbbbbcbbbbabbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbabbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbabbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbaaaaaaaaccaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaabbaaabbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaabbaaabbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbcbbbbbbbbcbbbbbbaaaaaaaaaaabbbbaaaaaabbaaabbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbaaaaaaaaaaabbbbaaaaaaaaaaabbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaabbbbbbcbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaabbbbaaaaaaaaaaaaaabbbbbbbbbaaaaaabbaaaaaaaaaaaaaaaabbbbbbcbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbabbaaaaaaaaaaaabbbbbaaaaaaaaaaaaaaaaaaaabbbaaaaaabbaaaaaaaaaaaaaaaabbbbbbcbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbabbaaaaaaaaaaaabbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaabbbbbbbbbabbaaaaaaaaaaaabbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaabbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbabbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbaaaaaaaaaaaaaaabbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbaaaaaaaaaaaaaaabbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaaaabbaaaaaaaaaaaabbbbbabbbbbaaaaaaaabbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbcbbbbbbbbbbbbbbbbaaaaaaaaaaaabbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaabbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaaaabbbabbbabbbbbaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaaaabbbbbbbbbbbbbaaaaaaaaaaaabbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaabbbbbbbbbbbcbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbaaaaaaaaaaaaabbbbbbbbcbbbbbbbaaaaaaaaaaaaaaaaaaabbbbbbcbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbcbbbbbcbbaaaaaaaaaaaaabbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbaaaaaaaaaaaaabbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaaaaabbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaaaaaaabbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaaaaaaabbbbbbbbbabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaaaaaaabbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaaaaaaaabbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbaaaaaabbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbaaaaaaaaaaaaaaaaabbbbbaaaaaabbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbaabbbbbaaaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaabbbbbbbbbaabbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaabbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaabbbbbbbbbcbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbcbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbcbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddadddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadaaaddddddddaaddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddddddddddddddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddddddddddddddddddddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbcbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddeeddddddddddddddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddeeeeceeeeeeeeeeceeeeedddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddeeeeeeeeeeeeeeeeeeeeeddddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddeceeeeeeeeeeeeeeeeeeeddddddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddeeeeeeeeeeeeeeeeeeeeeeeeeeeeddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddeeeeeeeeeeeeeeeeeeeeeeeeceeeddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddeeeeeceeeeeeeeeeeeeeeeeeeeeeeeeedddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddddddddddddddddddddddeeeeeeeeeeeeeeeeeefeeeeeeeedddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddddddddddddddddddddeeeeeeeeeeeeeeeceeeeeeeeeeeeeddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddeeeeeeeeeeeeeeeeeeeceeeeeeeeeeeeeeeeeeeeeeeedddaaaddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddeeeeeeeceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeddddddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedddddddddddddaaddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedddddddddddddaddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedddddddddddadddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedddddddddddadddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedddddddddadddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeddddadddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddeeeeeeeeeeeeeeeefeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedddadddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedddadddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeddddadddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeceeeeeeeeeddddadddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddeeeeeeeceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeddddaddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedddaaaddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddeeeeeeeeeeeeeeeeeeeeeeeceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeceeeeeddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddeeeeeeeeeeeeeeeeeeefeeeeeeeeeeeeeeeeeeeeeceeeeeeeeddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeddddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddddddddddddddeeeeeeeeeeeeeedddddddddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddddddddddddddddddddddddddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddddddddddddddddddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddddddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +"} diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm new file mode 100644 index 0000000..45ad36e --- /dev/null +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -0,0 +1,5549 @@ +"aaa" = (/turf/open/space,/area/space) +"aab" = (/obj/structure/lattice,/obj/structure/grille,/turf/open/space,/area/space) +"aac" = (/obj/structure/lattice,/turf/open/space,/area/space) +"aad" = (/obj/structure/lattice,/obj/machinery/camera/motion{c_tag = "MiniSat External Fore"; dir = 1; network = list("MiniSat")},/turf/open/space,/area/space) +"aae" = (/obj/effect/landmark{name = "carpspawn"},/turf/open/space,/area/space) +"aaf" = (/turf/closed/wall/r_wall,/area/wreck/ai) +"aag" = (/turf/open/floor/plasteel/warnwhite/corner,/area/wreck/ai) +"aah" = (/turf/open/floor/plasteel/warnwhite,/area/wreck/ai) +"aai" = (/turf/open/floor/plasteel/warnwhite/corner{dir = 1},/area/wreck/ai) +"aaj" = (/turf/open/floor/plasteel/white,/area/wreck/ai) +"aak" = (/turf/open/floor/plasteel/warnwhite{dir = 4},/area/wreck/ai) +"aal" = (/obj/machinery/porta_turret/ai{dir = 4},/turf/open/floor/plasteel/black,/area/wreck/ai) +"aam" = (/turf/open/floor/bluegrid,/area/wreck/ai) +"aan" = (/obj/machinery/camera/motion{c_tag = "MiniSat AI Chamber North"; dir = 1; network = list("MiniSat")},/obj/machinery/light,/obj/machinery/flasher{id = "AI"; pixel_x = 0; pixel_y = -24},/turf/open/floor/bluegrid,/area/wreck/ai) +"aao" = (/turf/open/floor/plasteel/warnwhite{dir = 8},/area/wreck/ai) +"aap" = (/turf/open/floor/plasteel/warnwhite/corner{dir = 8},/area/wreck/ai) +"aaq" = (/turf/open/floor/plasteel/warnwhite/corner{dir = 4; heat_capacity = 1e+006},/area/wreck/ai) +"aar" = (/turf/open/space,/obj/machinery/porta_turret/syndicate{dir = 9},/turf/closed/wall/mineral/plastitanium{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/syndicate) +"aas" = (/turf/closed/wall/mineral/plastitanium,/area/shuttle/syndicate) +"aat" = (/obj/structure/grille,/obj/machinery/door/poddoor/shutters{id = "syndieshutters"; name = "blast shutters"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/shuttle/syndicate) +"aau" = (/turf/open/space,/obj/machinery/porta_turret/syndicate{dir = 5},/turf/closed/wall/mineral/plastitanium{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/syndicate) +"aav" = (/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 24; id = "syndicate_n"; name = "north of station"; turf_type = /turf/open/space; width = 18},/turf/open/space,/area/space) +"aaw" = (/obj/structure/table,/obj/machinery/microwave,/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aax" = (/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aay" = (/obj/structure/table,/obj/item/device/flashlight/lamp{pixel_x = 4; pixel_y = 1},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aaz" = (/obj/machinery/computer/shuttle/syndicate,/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aaA" = (/obj/structure/table,/obj/machinery/button/door{id = "syndieshutters"; name = "remote shutter control"; req_access_txt = "150"},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aaB" = (/obj/structure/frame/computer,/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aaC" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/effect/landmark{name = "tripai"},/obj/item/device/radio/intercom{anyai = 1; broadcasting = 0; freerange = 1; frequency = 1447; name = "Private Channel"; pixel_x = -27; pixel_y = 0},/obj/machinery/firealarm{dir = 1; pixel_y = 26},/turf/open/floor/bluegrid,/area/wreck/ai) +"aaD" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/camera/motion{c_tag = "MiniSat AI Chamber Center"; dir = 2; network = list("MiniSat")},/obj/machinery/light/small{dir = 1},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/ai_status_display{pixel_y = 32},/turf/open/floor/bluegrid,/area/wreck/ai) +"aaE" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{aidisabled = 0; dir = 1; name = "AI Chamber APC"; pixel_y = 24},/obj/effect/landmark{name = "tripai"},/obj/item/device/radio/intercom{anyai = 1; broadcasting = 0; freerange = 1; frequency = 1447; name = "Private Channel"; pixel_x = 27; pixel_y = 0},/turf/open/floor/bluegrid,/area/wreck/ai) +"aaF" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aaG" = (/obj/structure/chair/comfy/beige{dir = 1; icon_state = "comfychair"},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aaH" = (/obj/machinery/camera/motion{c_tag = "MiniSat External Port"; dir = 8; network = list("MiniSat")},/turf/open/space,/area/space) +"aaI" = (/obj/machinery/porta_turret/ai{dir = 4},/obj/machinery/camera/motion{c_tag = "MiniSat AI Chamber West"; dir = 4; network = list("MiniSat")},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/black,/area/wreck/ai) +"aaJ" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/open/floor/bluegrid,/area/wreck/ai) +"aaK" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/firedoor/heavy,/obj/machinery/door/airlock/glass_command{name = "AI Core"; req_access_txt = "65"},/turf/open/floor/plasteel/white,/area/wreck/ai) +"aaL" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/turretid{name = "AI Chamber turret control"; pixel_x = 5; pixel_y = -24},/turf/open/floor/plasteel/white,/area/wreck/ai) +"aaM" = (/obj/machinery/ai_slipper{icon_state = "motion0"; uses = 8},/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/machinery/holopad,/turf/open/floor/plasteel/white,/area/wreck/ai) +"aaN" = (/obj/machinery/turretid{name = "AI Chamber turret control"; pixel_x = -5; pixel_y = -24},/turf/open/floor/plasteel/white,/area/wreck/ai) +"aaO" = (/obj/machinery/door/firedoor/heavy,/obj/machinery/door/airlock/glass_command{name = "AI Core"; req_access_txt = "65"},/turf/open/floor/plasteel/white,/area/wreck/ai) +"aaP" = (/obj/machinery/porta_turret/ai{dir = 4},/obj/machinery/camera/motion{c_tag = "MiniSat AI Chamber East"; dir = 8; network = list("MiniSat")},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/open/floor/plasteel/black,/area/wreck/ai) +"aaQ" = (/obj/machinery/camera/motion{c_tag = "MiniSat External Starboard"; dir = 4; network = list("MiniSat")},/turf/open/space,/area/space) +"aaR" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 10},/obj/item/device/multitool,/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aaS" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; freerange = 1; frequency = 1213; name = "Syndicate Intercom"; pixel_y = -32; subspace_transmission = 1; syndie = 1},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aaT" = (/obj/structure/closet/syndicate/personal,/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aaU" = (/turf/open/floor/plasteel/warnwhite{dir = 1},/area/wreck/ai) +"aaV" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/bluegrid,/area/wreck/ai) +"aaW" = (/obj/effect/landmark/start{name = "AI"},/obj/item/device/radio/intercom{broadcasting = 0; freerange = 1; listening = 1; name = "Common Channel"; pixel_x = -27; pixel_y = -9},/obj/item/device/radio/intercom{anyai = 1; freerange = 1; listening = 0; name = "Custom Channel"; pixel_x = 0; pixel_y = -31},/obj/item/device/radio/intercom{anyai = 1; broadcasting = 0; freerange = 1; frequency = 1447; name = "Private Channel"; pixel_x = 27; pixel_y = -9},/obj/machinery/newscaster/security_unit{pixel_x = -28; pixel_y = -28},/obj/machinery/requests_console{department = "AI"; departmentType = 5; pixel_x = 28; pixel_y = -28},/turf/open/floor/bluegrid,/area/wreck/ai) +"aaX" = (/turf/open/space,/turf/closed/wall/mineral/plastitanium{icon_state = "diagonalWall3"},/area/shuttle/syndicate) +"aaY" = (/obj/machinery/door/window{name = "Cockpit"; req_access_txt = "150"},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aaZ" = (/turf/open/space,/turf/closed/wall/mineral/plastitanium{dir = 4; icon_state = "diagonalWall3"},/area/shuttle/syndicate) +"aba" = (/turf/open/space,/area/shuttle/syndicate) +"abb" = (/obj/structure/table,/obj/item/stack/cable_coil,/obj/item/weapon/crowbar/red,/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"abc" = (/obj/structure/table,/obj/item/weapon/storage/box/zipties{pixel_x = 1; pixel_y = 2},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"abd" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/bluegrid,/area/wreck/ai) +"abe" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/bluegrid,/area/wreck/ai) +"abf" = (/obj/structure/chair{dir = 8},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"abg" = (/obj/machinery/door/firedoor/heavy,/turf/open/floor/bluegrid,/area/wreck/ai) +"abh" = (/obj/machinery/airalarm{pixel_y = 22},/turf/open/floor/bluegrid,/area/wreck/ai) +"abi" = (/obj/machinery/camera/motion{c_tag = "MiniSat AI Chamber South"; dir = 2; network = list("MiniSat")},/obj/machinery/light{dir = 1},/obj/machinery/flasher{id = "AI"; pixel_x = 0; pixel_y = 20},/obj/machinery/ai_status_display{pixel_y = 37},/turf/open/floor/bluegrid,/area/wreck/ai) +"abj" = (/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1447; listening = 0; name = "Station Intercom (AI Private)"; pixel_x = 0; pixel_y = 24},/turf/open/floor/bluegrid,/area/wreck/ai) +"abk" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on,/turf/open/floor/plating/airless,/area/space) +"abl" = (/obj/machinery/porta_turret/syndicate{dir = 4},/turf/closed/wall/mineral/plastitanium,/area/shuttle/syndicate) +"abm" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/open/floor/plasteel/warnwhite/corner{dir = 8},/area/wreck/ai) +"abn" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/warnwhite{dir = 1},/area/wreck/ai) +"abo" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/warnwhite/corner{dir = 4; heat_capacity = 1e+006},/area/wreck/ai) +"abp" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/firedoor/heavy,/turf/open/floor/plasteel/white,/area/wreck/ai) +"abq" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/white,/area/wreck/ai) +"abr" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/ai_slipper{icon_state = "motion0"; uses = 8},/turf/open/floor/plasteel/white,/area/wreck/ai) +"abs" = (/obj/machinery/door/firedoor/heavy,/turf/open/floor/plasteel/white,/area/wreck/ai) +"abt" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/space,/area/space) +"abu" = (/obj/structure/grille/broken,/turf/open/space,/area/space) +"abv" = (/obj/machinery/suit_storage_unit/syndicate,/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"abw" = (/obj/structure/closet/syndicate/nuclear,/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"abx" = (/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/AIsatextAP) +"aby" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/AIsatextAP) +"abz" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/turf/open/floor/plasteel/black,/area/wreck/ai) +"abA" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/wreck/ai) +"abB" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/wreck/ai) +"abC" = (/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/AIsatextAS) +"abD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/AIsatextAS) +"abE" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"abF" = (/obj/structure/table,/obj/item/device/aicard,/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"abG" = (/obj/machinery/door/poddoor{id = "smindicate"; name = "outer blast door"},/obj/machinery/button/door{id = "smindicate"; name = "external door control"; pixel_x = -26; pixel_y = 0; req_access_txt = "150"},/obj/docking_port/mobile{dheight = 9; dir = 2; dwidth = 5; height = 24; id = "syndicate"; name = "syndicate infiltrator"; port_angle = 0; roundstart_move = "syndicate_away"; width = 18},/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 24; id = "syndicate_nw"; name = "northwest of station"; turf_type = /turf/open/space; width = 18},/turf/open/floor/plating,/area/shuttle/syndicate) +"abH" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/turf/closed/wall/mineral/plastitanium,/area/shuttle/syndicate) +"abI" = (/obj/machinery/computer/station_alert,/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP) +"abJ" = (/obj/machinery/computer/monitor,/obj/structure/cable/yellow,/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP) +"abK" = (/obj/machinery/computer/atmos_alert,/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP) +"abL" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating,/area/wreck/ai) +"abM" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/plating,/area/wreck/ai) +"abN" = (/obj/machinery/door/firedoor,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/glass_command{name = "AI Core"; req_access_txt = "65"},/turf/open/floor/plasteel/vault{dir = 8},/area/wreck/ai) +"abO" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plating,/area/wreck/ai) +"abP" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plating,/area/wreck/ai) +"abQ" = (/obj/structure/table/glass,/obj/item/stack/sheet/metal,/obj/item/stack/sheet/glass{amount = 20; pixel_x = 3; pixel_y = -4},/obj/item/device/assembly/flash/handheld,/obj/item/device/assembly/flash/handheld,/obj/item/device/mmi,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAS) +"abR" = (/obj/machinery/light/small{dir = 1},/obj/machinery/computer/rdconsole/robotics,/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAS) +"abS" = (/obj/machinery/mecha_part_fabricator,/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAS) +"abT" = (/obj/structure/table,/obj/item/weapon/c4{pixel_x = 2; pixel_y = -5},/obj/item/weapon/c4{pixel_x = -3; pixel_y = 3},/obj/item/weapon/c4{pixel_x = 2; pixel_y = -3},/obj/item/weapon/c4{pixel_x = -2; pixel_y = -1},/obj/item/weapon/c4{pixel_x = 3; pixel_y = 3},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"abU" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/shuttle/syndicate) +"abV" = (/obj/machinery/door/window{name = "Ready Room"; req_access_txt = "150"},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"abW" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP) +"abX" = (/obj/structure/chair/office/dark{dir = 1},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP) +"abY" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP) +"abZ" = (/obj/structure/table,/obj/item/weapon/folder,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 8; name = "MiniSat Antechamber APC"; pixel_x = -24; pixel_y = 0},/turf/open/floor/plasteel/grimy,/area/ai_monitored/turret_protected/aisat_interior) +"aca" = (/obj/structure/chair/office/dark{dir = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/grimy,/area/ai_monitored/turret_protected/aisat_interior) +"acb" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/grimy,/area/ai_monitored/turret_protected/aisat_interior) +"acc" = (/obj/structure/chair/office/dark{dir = 4},/turf/open/floor/plasteel/grimy,/area/ai_monitored/turret_protected/aisat_interior) +"acd" = (/obj/structure/table,/obj/item/weapon/pen,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/firealarm{dir = 4; pixel_x = 28},/obj/item/weapon/paper_bin{layer = 2.9; pixel_x = 0; pixel_y = 0; tag = "every single paper bin is edited to this"},/turf/open/floor/plasteel/grimy,/area/ai_monitored/turret_protected/aisat_interior) +"ace" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAS) +"acf" = (/obj/structure/chair/office/dark{dir = 1},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAS) +"acg" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAS) +"ach" = (/obj/machinery/door/window{dir = 4; name = "EVA Storage"; req_access_txt = "150"},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aci" = (/obj/machinery/door/airlock/external{req_access_txt = "150"},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"acj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP) +"ack" = (/obj/machinery/camera{c_tag = "MiniSat Maintenance Port Fore"; dir = 1; network = list("MiniSat")},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP) +"acl" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP) +"acm" = (/obj/machinery/door/airlock/maintenance_hatch{name = "MiniSat Maintenance"; req_access_txt = "65"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP) +"acn" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/obj/machinery/airalarm{dir = 1; pixel_y = -22},/turf/open/floor/plasteel/grimy,/area/ai_monitored/turret_protected/aisat_interior) +"aco" = (/obj/machinery/light/small,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/grimy,/area/ai_monitored/turret_protected/aisat_interior) +"acp" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/grimy,/area/ai_monitored/turret_protected/aisat_interior) +"acq" = (/obj/machinery/light/small,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1447; listening = 0; name = "Station Intercom (AI Private)"; pixel_x = 0; pixel_y = -29},/obj/machinery/camera/motion{c_tag = "MiniSat AI Chamber Observation"; dir = 1; network = list("MiniSat")},/turf/open/floor/plasteel/grimy,/area/ai_monitored/turret_protected/aisat_interior) +"acr" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel/grimy,/area/ai_monitored/turret_protected/aisat_interior) +"acs" = (/obj/machinery/door/airlock/maintenance_hatch{name = "MiniSat Maintenance"; req_access_txt = "65"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAS) +"act" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAS) +"acu" = (/obj/machinery/atmospherics/components/binary/pump{dir = 4; name = "Waste Out"; on = 1},/obj/machinery/camera{c_tag = "MiniSat Maintenance Starboard Fore"; dir = 1; network = list("MiniSat")},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAS) +"acv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAS) +"acw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/AIsatextAS) +"acx" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "EVA Storage"; req_access_txt = "150"},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"acy" = (/turf/open/space,/turf/closed/wall/mineral/plastitanium{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/syndicate) +"acz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/AIsatextAP) +"acA" = (/obj/machinery/door/airlock/maintenance_hatch{name = "MiniSat Maintenance"; req_access_txt = "65"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP) +"acB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/AIsatextAP) +"acC" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/AIsatextAP) +"acD" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/AIsatextAP) +"acE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/aisat_interior) +"acF" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/hatch{name = "MiniSat Chamber Observation"; req_one_access_txt = "65"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) +"acG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/AIsatextAS) +"acH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/AIsatextAS) +"acI" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/AIsatextAS) +"acJ" = (/obj/machinery/door/airlock/maintenance_hatch{name = "MiniSat Maintenance"; req_access_txt = "65"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAS) +"acK" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; freerange = 1; frequency = 1213; name = "Syndicate Intercom"; pixel_x = -32; subspace_transmission = 1; syndie = 1},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"acL" = (/obj/structure/grille,/obj/structure/lattice,/turf/open/space,/area/space) +"acM" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/AIsatextAP) +"acN" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP) +"acO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/AIsatextAP) +"acP" = (/turf/open/space,/area/ai_monitored/turret_protected/AIsatextAP) +"acQ" = (/obj/structure/lattice,/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/camera/motion{c_tag = "MiniSat Bridge Port Fore"; dir = 2; network = list("MiniSat")},/turf/open/space,/area/ai_monitored/turret_protected/AIsatextAP) +"acR" = (/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/aisat_interior) +"acS" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) +"acT" = (/turf/open/space,/area/ai_monitored/turret_protected/AIsatextAS) +"acU" = (/obj/structure/lattice,/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/camera/motion{c_tag = "MiniSat Bridge Starboard Fore"; dir = 2; network = list("MiniSat")},/turf/open/space,/area/ai_monitored/turret_protected/AIsatextAS) +"acV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/AIsatextAS) +"acW" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAS) +"acX" = (/obj/machinery/sleeper/syndie{dir = 4},/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"acY" = (/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"acZ" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"ada" = (/obj/structure/tank_dispenser/oxygen,/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"adb" = (/obj/structure/table,/obj/item/stack/medical/ointment,/obj/item/stack/medical/bruise_pack,/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"adc" = (/obj/structure/table,/obj/item/weapon/stock_parts/cell/high{pixel_x = -3; pixel_y = 3},/obj/item/weapon/stock_parts/cell/high,/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"add" = (/obj/structure/table,/obj/item/weapon/screwdriver{pixel_y = 9},/obj/item/device/assembly/voice{pixel_y = 3},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"ade" = (/obj/structure/table,/obj/item/weapon/wrench,/obj/item/device/assembly/infra,/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"adf" = (/obj/structure/table,/obj/item/device/assembly/signaler,/obj/item/device/assembly/signaler,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"adg" = (/obj/structure/table,/obj/item/weapon/weldingtool/largetank{pixel_y = 3},/obj/item/device/multitool,/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"adh" = (/obj/structure/lattice,/obj/structure/grille/broken,/turf/open/space,/area/space) +"adi" = (/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP) +"adj" = (/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP) +"adk" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/space,/area/ai_monitored/turret_protected/AIsatextAP) +"adl" = (/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat_interior) +"adm" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) +"adn" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/space,/area/ai_monitored/turret_protected/AIsatextAS) +"ado" = (/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAS) +"adp" = (/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAS) +"adq" = (/obj/structure/bed/roller,/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"adr" = (/obj/structure/sign/bluecross_2,/turf/closed/wall/mineral/plastitanium,/area/shuttle/syndicate) +"ads" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/syndicate,/obj/item/weapon/crowbar/red,/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"adt" = (/turf/closed/wall/r_wall,/area/security/prison) +"adu" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/open/floor/plating,/area/security/prison) +"adv" = (/obj/machinery/door/window{dir = 4; name = "Infirmary"; req_access_txt = "150"},/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"adw" = (/obj/machinery/door/window/westright{name = "Tool Storage"; req_access_txt = "150"},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"adx" = (/obj/machinery/hydroponics/constructable,/obj/item/seeds/potato,/obj/item/seeds/carrot,/obj/item/seeds/corn,/turf/open/floor/plasteel/black,/area/security/prison) +"ady" = (/obj/item/weapon/cultivator,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/sign/poster{pixel_y = 32},/turf/open/floor/plasteel/black,/area/security/prison) +"adz" = (/obj/machinery/hydroponics/constructable,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/item/seeds/glowshroom,/obj/machinery/computer/security/telescreen/entertainment{pixel_y = 32},/obj/machinery/camera{c_tag = "Permabrig Central"; network = list("SS13","Prison")},/turf/open/floor/plasteel/black,/area/security/prison) +"adA" = (/obj/item/weapon/reagent_containers/glass/bucket,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/sign/poster{pixel_y = 32},/turf/open/floor/plasteel/black,/area/security/prison) +"adB" = (/obj/structure/easel,/obj/item/weapon/canvas/nineteenXnineteen,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel/black,/area/security/prison) +"adC" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/sign/poster{pixel_y = 32},/turf/open/floor/plasteel/black,/area/security/prison) +"adD" = (/obj/machinery/biogenerator,/turf/open/floor/plasteel/darkgreen/side{dir = 8},/area/security/prison) +"adE" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP) +"adF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/AIsatextAP) +"adG" = (/obj/structure/lattice,/obj/machinery/light/small,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/camera/motion{c_tag = "MiniSat Bridge Port Aft"; dir = 1; network = list("MiniSat")},/turf/open/space,/area/ai_monitored/turret_protected/AIsatextAP) +"adH" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) +"adI" = (/obj/structure/lattice,/obj/machinery/light/small,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/camera/motion{c_tag = "MiniSat Bridge Starboard Aft"; dir = 1; network = list("MiniSat")},/turf/open/space,/area/ai_monitored/turret_protected/AIsatextAS) +"adJ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/AIsatextAS) +"adK" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAS) +"adL" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Infirmary"; req_access_txt = "150"},/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"adM" = (/obj/machinery/door/window{dir = 8; name = "Tool Storage"; req_access_txt = "150"},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"adN" = (/obj/machinery/recharge_station,/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"adO" = (/obj/machinery/hydroponics/constructable,/obj/item/seeds/grass,/turf/open/floor/plasteel/black,/area/security/prison) +"adP" = (/obj/item/device/plant_analyzer,/turf/open/floor/plasteel/black,/area/security/prison) +"adQ" = (/obj/machinery/hydroponics/constructable,/obj/item/seeds/sunflower,/obj/item/seeds/poppy,/turf/open/floor/plasteel/black,/area/security/prison) +"adR" = (/obj/machinery/holopad,/turf/open/floor/plasteel/black,/area/security/prison) +"adS" = (/obj/item/weapon/storage/crayons,/turf/open/floor/plasteel/black,/area/security/prison) +"adT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/security/prison) +"adU" = (/obj/machinery/seed_extractor,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/darkgreen/side{dir = 8},/area/security/prison) +"adV" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/AIsatextAP) +"adW" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/AIsatextAP) +"adX" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/AIsatextAP) +"adY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/AIsatextAP) +"adZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/aisat_interior) +"aea" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/hatch{name = "MiniSat Chamber Hallway"; req_one_access_txt = "65"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) +"aeb" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/aisat_interior) +"aec" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/AIsatextAS) +"aed" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/AIsatextAS) +"aee" = (/obj/machinery/door/airlock/maintenance_hatch{name = "MiniSat Maintenance"; req_access_txt = "65"},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAS) +"aef" = (/obj/machinery/porta_turret/syndicate{dir = 5},/turf/closed/wall/mineral/plastitanium,/area/shuttle/syndicate) +"aeg" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table,/obj/item/bodypart/r_arm/robot,/obj/item/bodypart/l_arm/robot,/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"aeh" = (/obj/machinery/door/window{dir = 1; name = "Surgery"; req_access_txt = "150"},/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"aei" = (/obj/structure/window/reinforced{dir = 1},/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"aej" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/storage/firstaid/regular{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/brute,/obj/item/weapon/storage/firstaid/regular{pixel_x = -3; pixel_y = -3},/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"aek" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = -3; pixel_y = -3},/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"ael" = (/obj/structure/table,/obj/item/device/sbeacondrop/bomb{pixel_y = 5},/obj/item/device/sbeacondrop/bomb,/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aem" = (/obj/structure/table,/obj/item/weapon/grenade/syndieminibomb{pixel_x = 4; pixel_y = 2},/obj/item/weapon/grenade/syndieminibomb{pixel_x = -1},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aen" = (/obj/structure/bookcase,/turf/open/floor/plasteel/black,/area/security/prison) +"aeo" = (/turf/open/floor/plasteel/black,/area/security/prison) +"aep" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/plasteel/black,/area/security/prison) +"aeq" = (/obj/structure/sink{pixel_y = 30},/turf/open/floor/plasteel/barber,/area/security/prison) +"aer" = (/obj/machinery/washing_machine,/turf/open/floor/plasteel/barber,/area/security/prison) +"aes" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable/yellow{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 8; name = "MiniSat Port Maintenance APC"; pixel_x = -24; pixel_y = 0},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP) +"aet" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP) +"aeu" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/airalarm{pixel_y = 22},/obj/machinery/camera{c_tag = "MiniSat Maintenance Port Aft"; dir = 2; network = list("MiniSat")},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP) +"aev" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP) +"aew" = (/obj/machinery/door/airlock/maintenance_hatch{name = "MiniSat Maintenance"; req_access_txt = "65"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP) +"aex" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) +"aey" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-09"; name = "Photosynthetic Potted plant"; pixel_y = 10},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/darkblue/side{dir = 8},/area/ai_monitored/turret_protected/aisat_interior) +"aez" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/darkblue/side{dir = 1},/area/ai_monitored/turret_protected/aisat_interior) +"aeA" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-09"; name = "Photosynthetic Potted plant"; pixel_y = 10},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/camera/motion{c_tag = "MiniSat Foyer"; dir = 2; network = list("MiniSat")},/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (EAST)"; dir = 4},/area/ai_monitored/turret_protected/aisat_interior) +"aeB" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) +"aeC" = (/obj/machinery/door/airlock/maintenance_hatch{name = "MiniSat Maintenance"; req_access_txt = "65"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAS) +"aeD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAS) +"aeE" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/airalarm{pixel_y = 22},/obj/machinery/camera{c_tag = "MiniSat Maintenance Starboard Aft"; dir = 2; network = list("MiniSat")},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAS) +"aeF" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAS) +"aeG" = (/obj/structure/reagent_dispensers/fueltank,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "MiniSat Starboard Maintenance APC"; pixel_x = 24; pixel_y = 0},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAS) +"aeH" = (/obj/structure/table,/obj/item/weapon/surgicaldrill,/obj/item/weapon/circular_saw,/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"aeI" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/mirror{pixel_x = 30},/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"aeJ" = (/obj/machinery/nuclearbomb/syndicate,/obj/machinery/door/window{dir = 1; name = "Secure Storage"; req_access_txt = "150"},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aeK" = (/obj/machinery/telecomms/allinone{intercept = 1},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aeL" = (/obj/machinery/computer/libraryconsole/bookmanagement{pixel_y = 0},/obj/structure/table,/obj/machinery/newscaster{pixel_x = -32; pixel_y = 0},/turf/open/floor/plasteel/black,/area/security/prison) +"aeM" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/black,/area/security/prison) +"aeN" = (/obj/item/weapon/storage/pill_bottle/dice,/obj/structure/table,/turf/open/floor/plasteel/black,/area/security/prison) +"aeO" = (/obj/item/device/camera,/obj/structure/table,/turf/open/floor/plasteel/black,/area/security/prison) +"aeP" = (/obj/machinery/light/small,/turf/open/floor/plasteel/barber,/area/security/prison) +"aeQ" = (/obj/structure/table,/obj/structure/bedsheetbin,/turf/open/floor/plasteel/barber,/area/security/prison) +"aeR" = (/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP) +"aeS" = (/obj/machinery/atmospherics/components/binary/pump{dir = 4; name = "Air Out"; on = 1},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP) +"aeT" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP) +"aeU" = (/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) +"aeV" = (/turf/open/floor/plasteel/darkblue/side{dir = 8},/area/ai_monitored/turret_protected/aisat_interior) +"aeW" = (/obj/effect/landmark/start{name = "Cyborg"},/obj/item/device/radio/beacon,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) +"aeX" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (EAST)"; dir = 4},/area/ai_monitored/turret_protected/aisat_interior) +"aeY" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) +"aeZ" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high,/obj/machinery/light/small{dir = 4},/obj/item/stack/cable_coil,/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAS) +"afa" = (/obj/structure/table,/obj/item/weapon/cautery,/obj/item/weapon/scalpel,/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"afb" = (/obj/structure/table/optable,/obj/item/weapon/surgical_drapes,/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"afc" = (/obj/structure/table,/obj/item/weapon/retractor,/obj/item/weapon/hemostat,/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"afd" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating,/area/shuttle/syndicate) +"afe" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aff" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/rods{amount = 50},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"afg" = (/obj/structure/rack,/obj/item/clothing/suit/space/syndicate/black/red,/obj/item/clothing/head/helmet/space/syndicate/black/red,/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"afh" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/security/prison) +"afi" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/black,/area/security/prison) +"afj" = (/obj/item/toy/cards/deck,/obj/structure/table,/turf/open/floor/plasteel/black,/area/security/prison) +"afk" = (/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (SOUTHEAST)"; icon_state = "intact"; dir = 6},/turf/open/floor/plasteel/black,/area/security/prison) +"afl" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (WEST)"; icon_state = "intact"; dir = 8},/turf/open/floor/plasteel/black,/area/security/prison) +"afm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; layer = 2.4; on = 1},/turf/open/floor/plasteel/black,/area/security/prison) +"afn" = (/obj/machinery/computer/arcade,/turf/open/floor/plasteel/black,/area/security/prison) +"afo" = (/obj/machinery/atmospherics/components/unary/tank/air{dir = 1},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP) +"afp" = (/obj/structure/table,/obj/item/weapon/wrench,/obj/item/weapon/tank/internals/emergency_oxygen,/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP) +"afq" = (/obj/structure/table,/obj/item/weapon/crowbar,/obj/item/clothing/mask/gas,/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP) +"afr" = (/obj/machinery/teleport/hub,/turf/open/floor/plating/warnplate{dir = 5},/area/ai_monitored/turret_protected/aisat_interior) +"afs" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) +"aft" = (/obj/machinery/holopad,/mob/living/simple_animal/bot/secbot/pingsky,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) +"afu" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) +"afv" = (/obj/structure/transit_tube{icon_state = "Block"},/turf/open/floor/plating/warnplate{dir = 9},/area/ai_monitored/turret_protected/aisat_interior) +"afw" = (/obj/machinery/recharge_station,/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAS) +"afx" = (/obj/structure/rack,/obj/item/weapon/storage/toolbox/electrical{pixel_x = -3; pixel_y = 3},/obj/item/weapon/storage/toolbox/mechanical,/obj/item/device/multitool{layer = 5},/obj/item/weapon/extinguisher{layer = 4},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAS) +"afy" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"},/turf/open/floor/plating,/area/shuttle/syndicate) +"afz" = (/obj/structure/shuttle/engine/propulsion,/turf/open/floor/plating,/area/shuttle/syndicate) +"afA" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"},/turf/open/floor/plating,/area/shuttle/syndicate) +"afB" = (/turf/closed/wall,/area/security/transfer) +"afC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/closed/wall,/area/security/transfer) +"afD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/security/transfer) +"afE" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/closed/wall,/area/security/transfer) +"afF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/closed/wall/r_wall,/area/security/transfer) +"afG" = (/obj/machinery/vending/sustenance,/turf/open/floor/plasteel/black,/area/security/prison) +"afH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/security/prison) +"afI" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/open/floor/plasteel/black,/area/security/prison) +"afJ" = (/obj/machinery/light/small{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/freezer,/area/security/prison) +"afK" = (/obj/machinery/shower{dir = 8},/obj/item/weapon/soap/nanotrasen,/turf/open/floor/plasteel/freezer,/area/security/prison) +"afL" = (/obj/machinery/teleport/station,/turf/open/floor/plating/warnplate{dir = 4},/area/ai_monitored/turret_protected/aisat_interior) +"afM" = (/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) +"afN" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -28},/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (EAST)"; dir = 4},/area/ai_monitored/turret_protected/aisat_interior) +"afO" = (/obj/structure/transit_tube/station{dir = 8; icon_state = "closed"; reverse_launch = 1},/turf/open/floor/plating/warnplate{dir = 8},/area/ai_monitored/turret_protected/aisat_interior) +"afP" = (/turf/open/space,/obj/machinery/porta_turret/syndicate{dir = 6},/turf/closed/wall/mineral/plastitanium{dir = 4; icon_state = "diagonalWall3"},/area/shuttle/syndicate) +"afQ" = (/turf/open/space,/obj/machinery/porta_turret/syndicate{dir = 10},/turf/closed/wall/mineral/plastitanium{icon_state = "diagonalWall3"},/area/shuttle/syndicate) +"afR" = (/obj/machinery/door/poddoor{id = "executionspaceblast"; name = "blast door"},/turf/open/floor/plating,/area/security/transfer) +"afS" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/darkwarning{dir = 9},/area/security/transfer) +"afT" = (/obj/machinery/light/small{dir = 1},/obj/machinery/flasher{id = "executionflash"; pixel_x = 0; pixel_y = 25},/turf/open/floor/plasteel/darkwarning{dir = 1},/area/security/transfer) +"afU" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/darkwarning{dir = 5},/area/security/transfer) +"afV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/security/transfer) +"afW" = (/obj/machinery/vending/cola,/turf/open/floor/plasteel/black,/area/security/prison) +"afX" = (/obj/machinery/door/window/westleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Unisex Showers"; req_access_txt = "0"},/turf/open/floor/plasteel/freezer,/area/security/prison) +"afY" = (/turf/open/floor/plasteel/freezer,/area/security/prison) +"afZ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat_interior) +"aga" = (/obj/machinery/computer/teleporter,/turf/open/floor/plating/warnplate{dir = 4},/area/ai_monitored/turret_protected/aisat_interior) +"agb" = (/obj/machinery/light,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) +"agc" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 2; name = "MiniSat External Access"; req_access = null; req_access_txt = "65"},/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat_interior) +"agd" = (/obj/structure/transit_tube{icon_state = "N-S"},/turf/open/floor/plating/warnplate{dir = 8},/area/ai_monitored/turret_protected/aisat_interior) +"age" = (/turf/open/floor/plasteel/darkwarning{dir = 8},/area/security/transfer) +"agf" = (/obj/structure/bed,/obj/effect/landmark{name = "revenantspawn"},/turf/open/floor/plasteel/black,/area/security/transfer) +"agg" = (/obj/machinery/sparker{dir = 2; id = "executionburn"; pixel_x = 25},/turf/open/floor/plasteel/darkwarning{dir = 4},/area/security/transfer) +"agh" = (/turf/closed/wall,/area/security/prison) +"agi" = (/obj/machinery/door/poddoor/preopen{id = "permacell2"; name = "cell blast door"},/obj/machinery/door/airlock/glass{id_tag = "permabolt2"; name = "Cell 2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/vault,/area/security/prison) +"agj" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/closed/wall,/area/security/prison) +"agk" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/poddoor/preopen{id = "permacell1"; name = "cell blast door"},/obj/machinery/door/airlock/glass{id_tag = "permabolt1"; name = "Cell 1"},/turf/open/floor/plasteel/vault,/area/security/prison) +"agl" = (/obj/machinery/door/airlock{name = "Unisex Restroom"; req_access_txt = "0"},/turf/open/floor/plasteel/freezer,/area/security/prison) +"agm" = (/obj/machinery/light/small{dir = 8},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 32; pixel_y = 0},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = -32; pixel_y = 0},/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat_interior) +"agn" = (/obj/structure/window/reinforced/fulltile,/obj/structure/transit_tube{icon_state = "N-S"},/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat_interior) +"ago" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/darkwarning{dir = 10},/area/security/transfer) +"agp" = (/turf/open/floor/plasteel/darkwarning{dir = 2},/area/security/transfer) +"agq" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 2},/turf/open/floor/plasteel/darkwarning{dir = 6},/area/security/transfer) +"agr" = (/obj/structure/bed,/obj/machinery/camera{c_tag = "Permabrig Cell 2"; network = list("SS13","Prison")},/obj/item/device/radio/intercom{desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; pixel_x = 0; pixel_y = 24; prison_radio = 1},/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"ags" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"agt" = (/obj/machinery/light/small{dir = 1},/obj/machinery/button/door{id = "permabolt2"; name = "Cell Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/chair,/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"agu" = (/obj/structure/bed,/obj/machinery/camera{c_tag = "Permabrig Cell 1"; network = list("SS13","Prison")},/obj/item/device/radio/intercom{desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; pixel_x = 0; pixel_y = 24; prison_radio = 1},/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"agv" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"agw" = (/obj/machinery/light/small{dir = 1},/obj/machinery/button/door{id = "permabolt1"; name = "Cell Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/chair,/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"agx" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/freezer,/area/security/prison) +"agy" = (/turf/closed/wall,/area/security/main) +"agz" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/main) +"agA" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 1; name = "MiniSat External Access"; req_access = null; req_access_txt = "65"},/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat_interior) +"agB" = (/obj/structure/transit_tube{icon_state = "N-S"},/turf/open/floor/plating/airless,/area/space) +"agC" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "executionfireblast"; layer = 2.9; name = "blast door"},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/open/floor/plating,/area/security/transfer) +"agD" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "executionfireblast"; layer = 2.9; name = "blast door"},/obj/machinery/door/firedoor,/turf/open/floor/plating,/area/security/transfer) +"agE" = (/obj/machinery/door/poddoor/preopen{id = "executionfireblast"; layer = 2.9; name = "blast door"},/obj/machinery/atmospherics/pipe/simple/general/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/window/westright{dir = 1; name = "Transfer Room"; req_access_txt = "2"},/turf/open/floor/plasteel/vault{dir = 8},/area/security/transfer) +"agF" = (/obj/machinery/flasher{id = "PCell 2"; pixel_x = -28},/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"agG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"agH" = (/obj/structure/table,/obj/item/weapon/paper{layer = 2.9},/obj/item/weapon/pen,/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"agI" = (/obj/machinery/flasher{id = "PCell 1"; pixel_x = -28},/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"agJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"agK" = (/obj/structure/toilet{dir = 1},/turf/open/floor/plasteel/freezer,/area/security/prison) +"agL" = (/obj/structure/closet/wardrobe/red,/turf/open/floor/plasteel/showroomfloor,/area/security/main) +"agM" = (/obj/structure/closet/secure_closet/security/sec,/turf/open/floor/plasteel/showroomfloor,/area/security/main) +"agN" = (/obj/structure/closet/secure_closet/security/sec,/obj/machinery/camera{c_tag = "Brig Equipment Room"; dir = 2},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = 29},/turf/open/floor/plasteel/showroomfloor,/area/security/main) +"agO" = (/obj/machinery/vending/security,/turf/open/floor/plasteel/showroomfloor,/area/security/main) +"agP" = (/obj/machinery/suit_storage_unit/security,/turf/open/floor/plasteel/showroomfloor,/area/security/main) +"agQ" = (/obj/structure/lattice/catwalk,/obj/structure/showcase{density = 0; desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; dir = 2; icon = 'icons/mob/robots.dmi'; icon_state = "robot_old"; name = "Cyborg Statue"; pixel_x = 0; pixel_y = 20},/turf/open/space,/area/space) +"agR" = (/obj/structure/lattice/catwalk,/turf/open/space,/area/space) +"agS" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -28; pixel_y = 0},/obj/structure/table,/obj/item/weapon/storage/backpack/dufflebag/sec{contents = newlist(/obj/item/weapon/scalpel,/obj/item/weapon/hemostat,/obj/item/weapon/retractor,/obj/item/weapon/cautery,/obj/item/weapon/circular_saw,/obj/item/weapon/surgical_drapes,/obj/item/clothing/mask/surgical); desc = "A large dufflebag for holding extra supplies - this one has a material inlay with space for various sharp-looking tools."; name = "dufflebag"; pixel_y = 5},/obj/item/clothing/mask/balaclava,/obj/item/device/mmi,/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/open/floor/plasteel/black,/area/security/transfer) +"agT" = (/obj/structure/table,/obj/item/weapon/folder/red{pixel_x = 3},/obj/item/device/taperecorder{pixel_x = -3; pixel_y = 0},/turf/open/floor/plasteel/black,/area/security/transfer) +"agU" = (/obj/machinery/button/flasher{id = "executionflash"; pixel_x = 24; pixel_y = 5},/obj/machinery/button/door{id = "executionspaceblast"; name = "Vent to Space"; pixel_x = 25; pixel_y = -5; req_access_txt = "7"},/obj/machinery/atmospherics/pipe/simple/general/hidden,/turf/open/floor/plasteel/black,/area/security/transfer) +"agV" = (/obj/machinery/door/airlock/glass_security{name = "Long-Term Cell 2"; req_access_txt = "2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"agW" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (NORTHEAST)"; icon_state = "intact"; dir = 5},/turf/closed/wall,/area/security/prison) +"agX" = (/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{tag = "icon-manifold (EAST)"; icon_state = "manifold"; dir = 4},/turf/closed/wall,/area/security/prison) +"agY" = (/obj/machinery/door/airlock/glass_security{name = "Long-Term Cell 1"; req_access_txt = "2"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"agZ" = (/turf/open/floor/plasteel/showroomfloor,/area/security/main) +"aha" = (/obj/structure/lattice,/obj/machinery/camera/motion{c_tag = "MiniSat Entrance"; dir = 2; network = list("MiniSat")},/turf/open/space,/area/space) +"ahb" = (/obj/structure/transit_tube{icon_state = "N-S-Pass"},/turf/open/floor/plating/airless,/area/space) +"ahc" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/transfer) +"ahd" = (/obj/machinery/portable_atmospherics/canister/nitrous_oxide,/obj/machinery/atmospherics/components/unary/portables_connector/visible,/turf/open/floor/plating/warnplate{dir = 9},/area/security/transfer) +"ahe" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/obj/machinery/atmospherics/components/unary/portables_connector/visible,/turf/open/floor/plating/warnplate{dir = 1},/area/security/transfer) +"ahf" = (/obj/structure/table,/obj/item/device/flashlight/lamp,/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/open/floor/plasteel/black,/area/security/transfer) +"ahg" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/black,/area/security/transfer) +"ahh" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/button/ignition{id = "executionburn"; pixel_x = 24; pixel_y = 5},/obj/machinery/button/door{id = "executionfireblast"; name = "Transfer Area Lockdown"; pixel_x = 25; pixel_y = -5; req_access_txt = "2"},/obj/machinery/atmospherics/pipe/simple/general/hidden,/turf/open/floor/plasteel/black,/area/security/transfer) +"ahi" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/closed/wall/r_wall,/area/security/transfer) +"ahj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red,/area/security/prison) +"ahk" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/button/flasher{id = "PCell 2"; pixel_x = 5; pixel_y = 24},/obj/machinery/button/door{id = "permacell2"; name = "Cell 2 Lockdown"; pixel_x = 4; pixel_y = 34; req_access_txt = "2"},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/prison) +"ahl" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel/red/side{dir = 5},/area/security/prison) +"ahm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/prison) +"ahn" = (/obj/machinery/camera{c_tag = "Brig Prison Hallway"; network = list("SS13","Prison")},/obj/machinery/computer/security/telescreen{desc = "Used for watching Prison Wing holding areas."; name = "Prison Monitor"; network = list("Prison"); pixel_x = 0; pixel_y = 30},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/prison) +"aho" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/button/flasher{id = "PCell 1"; pixel_x = 5; pixel_y = 24},/obj/machinery/button/door{id = "permacell1"; name = "Cell 1 Lockdown"; pixel_x = 4; pixel_y = 34; req_access_txt = "2"},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/prison) +"ahp" = (/obj/structure/cable{icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/prison) +"ahq" = (/obj/machinery/light{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/prison) +"ahr" = (/obj/machinery/power/apc{cell_type = 5000; dir = 1; name = "Prison Wing APC"; pixel_x = 1; pixel_y = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/prison) +"ahs" = (/obj/structure/table,/obj/item/weapon/melee/chainofcommand,/obj/item/weapon/reagent_containers/food/drinks/bottle/holywater,/turf/open/floor/plasteel/red,/area/security/prison) +"aht" = (/turf/closed/wall/r_wall,/area/security/armory) +"ahu" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (SOUTHEAST)"; icon_state = "intact"; dir = 6},/turf/open/floor/plasteel/showroomfloor,/area/security/main) +"ahv" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; layer = 2.4; on = 1},/turf/open/floor/plasteel/showroomfloor,/area/security/main) +"ahw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/showroomfloor,/area/security/main) +"ahx" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/showroomfloor,/area/security/main) +"ahy" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/showroomfloor,/area/security/main) +"ahz" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 8},/obj/machinery/light/small{dir = 8},/obj/machinery/portable_atmospherics/canister/nitrous_oxide,/turf/open/floor/plating/warnplate{dir = 8},/area/security/transfer) +"ahA" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 9},/obj/item/weapon/wrench,/turf/open/floor/plating,/area/security/transfer) +"ahB" = (/obj/structure/rack,/obj/item/weapon/tank/internals/anesthetic{pixel_x = -3; pixel_y = 1},/obj/item/weapon/tank/internals/oxygen/red{pixel_x = 3},/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (NORTHEAST)"; icon_state = "intact"; dir = 5},/turf/open/floor/plasteel/vault{dir = 8},/area/security/transfer) +"ahC" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{tag = "icon-manifold (NORTH)"; icon_state = "manifold"; dir = 1},/turf/open/floor/plasteel/black,/area/security/transfer) +"ahD" = (/obj/machinery/atmospherics/pipe/simple/general/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/open/floor/plasteel/black,/area/security/transfer) +"ahE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/security{aiControlDisabled = 0; icon_state = "door_closed"; id_tag = null; locked = 0; name = "Prisoner Transfer Centre"; req_access = null; req_access_txt = "2"},/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/open/floor/plasteel/black,/area/security/transfer) +"ahF" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/prison) +"ahG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{tag = "icon-manifold (EAST)"; icon_state = "manifold"; dir = 4},/turf/open/floor/plasteel,/area/security/prison) +"ahH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel,/area/security/prison) +"ahI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/security/prison) +"ahJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/open/floor/plasteel,/area/security/prison) +"ahK" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel,/area/security/prison) +"ahL" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/security/prison) +"ahM" = (/turf/open/floor/plasteel,/area/security/prison) +"ahN" = (/obj/structure/table,/obj/item/weapon/razor{pixel_x = -6},/obj/item/device/assembly/signaler{pixel_x = 4},/turf/open/floor/plasteel/red,/area/security/prison) +"ahO" = (/obj/structure/table,/obj/item/weapon/storage/box/chemimp{pixel_x = 6},/obj/item/weapon/storage/box/trackimp{pixel_x = -3},/turf/open/floor/plasteel/black,/area/security/armory) +"ahP" = (/obj/structure/closet/secure_closet{anchored = 1; name = "Contraband Locker"; req_access_txt = "3"},/obj/item/weapon/book/codex_gigas,/obj/item/weapon/poster/contraband,/turf/open/floor/plasteel/black,/area/security/armory) +"ahQ" = (/obj/structure/closet/secure_closet/lethalshots,/obj/machinery/camera/motion{c_tag = "Armory Motion Sensor"; dir = 2; name = "motion-sensitive security camera"},/turf/open/floor/plasteel/black,/area/security/armory) +"ahR" = (/obj/vehicle/secway,/turf/open/floor/plasteel/black,/area/security/armory) +"ahS" = (/obj/item/weapon/grenade/barrier{pixel_x = 4},/obj/item/weapon/grenade/barrier,/obj/item/weapon/grenade/barrier{pixel_x = -4},/obj/structure/table,/turf/open/floor/plasteel/black,/area/security/armory) +"ahT" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/open/floor/plasteel/showroomfloor,/area/security/main) +"ahU" = (/obj/structure/closet/l3closet,/turf/open/floor/plasteel/showroomfloor,/area/security/main) +"ahV" = (/obj/structure/closet/bombcloset,/turf/open/floor/plasteel/showroomfloor,/area/security/main) +"ahW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/showroomfloor,/area/security/main) +"ahX" = (/obj/vehicle/secway,/obj/item/key/security,/turf/open/floor/plasteel/showroomfloor,/area/security/main) +"ahY" = (/obj/structure/tank_dispenser/oxygen,/turf/open/floor/plasteel/showroomfloor,/area/security/main) +"ahZ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"aia" = (/turf/closed/wall,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"aib" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 5},/turf/open/floor/plating/warnplate{dir = 10},/area/security/transfer) +"aic" = (/obj/machinery/atmospherics/components/binary/pump{dir = 4; layer = 2.4},/obj/machinery/door/window/southleft{base_state = "right"; dir = 4; icon_state = "right"; name = "Armory"; req_access_txt = "2"},/turf/open/floor/plating/warnplate,/area/security/transfer) +"aid" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{icon_state = "intact"; dir = 4},/turf/open/floor/plasteel/black,/area/security/transfer) +"aie" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/obj/machinery/atmospherics/pipe/simple/general/hidden{icon_state = "intact"; dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/security/transfer) +"aif" = (/obj/machinery/light_switch{pixel_x = 25; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 9},/turf/open/floor/plasteel/black,/area/security/transfer) +"aig" = (/turf/closed/wall/r_wall,/area/security/transfer) +"aih" = (/turf/open/floor/plasteel/red,/area/security/prison) +"aii" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (NORTHEAST)"; icon_state = "intact"; dir = 5},/turf/open/floor/plasteel/red/side{dir = 6},/area/security/prison) +"aij" = (/obj/machinery/atmospherics/pipe/manifold/cyan/hidden,/turf/open/floor/plasteel/red/side{dir = 6},/area/security/prison) +"aik" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/open/floor/plasteel/red/side{dir = 6},/area/security/prison) +"ail" = (/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{tag = "icon-manifold (NORTH)"; icon_state = "manifold"; dir = 1},/turf/open/floor/plasteel/red/side{dir = 6},/area/security/prison) +"aim" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/turf/open/floor/plasteel/red/side{dir = 6},/area/security/prison) +"ain" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/side{dir = 6},/area/security/prison) +"aio" = (/turf/open/floor/plasteel/red/side{dir = 6},/area/security/prison) +"aip" = (/obj/machinery/airalarm{dir = 1; pixel_y = -22},/turf/open/floor/plasteel/red/side{dir = 6},/area/security/prison) +"aiq" = (/obj/structure/table,/obj/item/device/electropack,/turf/open/floor/plasteel/red,/area/security/prison) +"air" = (/obj/structure/table,/obj/item/weapon/storage/box/flashbangs{pixel_x = 6; pixel_y = 3},/obj/item/weapon/storage/box/flashbangs{pixel_x = -3; pixel_y = 3},/obj/item/weapon/storage/lockbox/loyalty{layer = 4},/turf/open/floor/plasteel/black,/area/security/armory) +"ais" = (/turf/open/floor/plasteel/black,/area/security/armory) +"ait" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/open/floor/plasteel/black,/area/security/armory) +"aiu" = (/obj/structure/table,/obj/item/weapon/storage/box/firingpins,/obj/item/weapon/storage/box/firingpins,/obj/item/key/security,/obj/machinery/power/apc{cell_type = 5000; dir = 4; name = "Armory APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel/black,/area/security/armory) +"aiv" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/security{name = "Equipment Room"; req_access = null; req_access_txt = "1"},/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/open/floor/plasteel/delivery,/area/security/main) +"aiw" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/security{name = "Equipment Room"; req_access = null; req_access_txt = "1"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/delivery,/area/security/main) +"aix" = (/turf/closed/wall,/area/space) +"aiy" = (/turf/closed/wall,/area/maintenance/fsmaint) +"aiz" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/fsmaint) +"aiA" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/sign/barsign,/turf/open/floor/plating,/area/maintenance/fsmaint) +"aiB" = (/obj/structure/table,/obj/machinery/microwave,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"aiC" = (/obj/structure/table,/obj/structure/bedsheetbin,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"aiD" = (/obj/structure/sink/kitchen{pixel_y = 28},/obj/item/weapon/reagent_containers/glass/beaker,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"aiE" = (/obj/structure/table,/obj/item/device/flashlight/lamp,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"aiF" = (/obj/structure/table,/obj/item/weapon/storage/box/bodybags,/obj/item/weapon/pen,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/machinery/airalarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/open/floor/plasteel/black,/area/security/transfer) +"aiG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/open/floor/plasteel/black,/area/security/transfer) +"aiH" = (/obj/structure/closet/secure_closet/injection,/obj/machinery/power/apc{dir = 4; name = "Prisoner Transfer Centre"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel/black,/area/security/transfer) +"aiI" = (/obj/structure/closet/secure_closet/brig{anchored = 1},/turf/open/floor/plasteel/black,/area/security/prison) +"aiJ" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Prison Wing"; req_access_txt = "1"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/open/floor/plasteel/red,/area/security/prison) +"aiK" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/prison) +"aiL" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/glass_security{name = "Prison Wing"; req_access_txt = "1"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red,/area/security/prison) +"aiM" = (/obj/structure/rack,/obj/item/weapon/gun/energy/ionrifle,/obj/item/weapon/gun/energy/temperature/security,/obj/item/clothing/suit/armor/laserproof,/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_x = 0},/obj/machinery/airalarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/open/floor/plasteel/black,/area/security/armory) +"aiN" = (/obj/structure/rack,/obj/item/clothing/suit/armor/riot{pixel_x = -3; pixel_y = 3},/obj/item/clothing/suit/armor/riot,/obj/item/clothing/suit/armor/riot{pixel_x = 3; pixel_y = -3},/obj/item/clothing/head/helmet/riot{pixel_x = -3; pixel_y = 3},/obj/item/clothing/head/helmet/riot,/obj/item/clothing/head/helmet/riot{pixel_x = 3; pixel_y = -3},/obj/item/weapon/shield/riot{pixel_x = -3; pixel_y = 3},/obj/item/weapon/shield/riot,/obj/item/weapon/shield/riot{pixel_x = 3; pixel_y = -3},/turf/open/floor/plasteel/black,/area/security/armory) +"aiO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/security/armory) +"aiP" = (/obj/structure/rack,/obj/item/weapon/storage/box/rubbershot{pixel_x = -3; pixel_y = 3},/obj/item/weapon/storage/box/rubbershot{pixel_x = -3; pixel_y = 3},/obj/item/weapon/storage/box/rubbershot,/obj/item/weapon/storage/box/rubbershot,/obj/item/weapon/storage/box/rubbershot{pixel_x = 3; pixel_y = -3},/obj/item/weapon/storage/box/rubbershot{pixel_x = 3; pixel_y = -3},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/sign/nosmoking_2{pixel_x = 32},/turf/open/floor/plasteel/black,/area/security/armory) +"aiQ" = (/obj/effect/landmark/start{name = "Security Officer"},/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/open/floor/plasteel/red,/area/security/main) +"aiR" = (/obj/structure/filingcabinet,/obj/machinery/requests_console{department = "Security"; departmentType = 5; pixel_x = 0; pixel_y = 30},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/main) +"aiS" = (/obj/structure/table,/obj/item/weapon/storage/fancy/donut_box{pixel_y = 2},/obj/structure/noticeboard{pixel_y = 32},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/main) +"aiT" = (/obj/structure/table,/obj/structure/sign/goldenplaque{pixel_y = 32},/obj/machinery/light{dir = 1},/obj/item/weapon/storage/box/handcuffs{pixel_x = 1; pixel_y = 3},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/main) +"aiU" = (/obj/machinery/vending/coffee,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/main) +"aiV" = (/obj/machinery/photocopier,/obj/machinery/computer/security/telescreen/entertainment{pixel_y = 32},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/main) +"aiW" = (/obj/effect/landmark/start{name = "Security Officer"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/reagent_dispensers/peppertank{pixel_x = 32; pixel_y = 0},/turf/open/floor/plasteel/red,/area/security/main) +"aiX" = (/obj/item/weapon/reagent_containers/food/snacks/donut,/turf/open/floor/plating,/area/security/hos) +"aiY" = (/turf/closed/wall/r_wall,/area/security/hos) +"aiZ" = (/obj/structure/table,/obj/machinery/chem_dispenser/drinks/beer,/turf/open/floor/plating,/area/maintenance/fsmaint) +"aja" = (/turf/open/floor/plating{broken = 1; icon_state = "platingdmg3"},/area/maintenance/fsmaint) +"ajb" = (/turf/open/floor/plating,/area/maintenance/fsmaint) +"ajc" = (/obj/machinery/vending/boozeomat{products = list(/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey = 1, /obj/item/weapon/reagent_containers/food/drinks/bottle/absinthe = 1, /obj/item/weapon/reagent_containers/food/drinks/bottle/limejuice = 1, /obj/item/weapon/reagent_containers/food/drinks/bottle/cream = 1, /obj/item/weapon/reagent_containers/food/drinks/soda_cans/tonic = 1, /obj/item/weapon/reagent_containers/food/drinks/drinkingglass = 10, /obj/item/weapon/reagent_containers/food/drinks/ice = 3, /obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass = 6, /obj/item/weapon/reagent_containers/food/drinks/flask = 1); req_access_txt = "0"},/turf/open/floor/plasteel/bar,/area/maintenance/fsmaint) +"ajd" = (/obj/machinery/button/door{id = "supplybridge"; name = "Space Bridge Control"; pixel_x = 0; pixel_y = -27; req_access_txt = "13"},/turf/open/space,/area/space) +"aje" = (/obj/item/weapon/storage/box/mousetraps,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"ajf" = (/obj/structure/chair/stool,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"ajg" = (/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"ajh" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/structure/sign/poster{pixel_x = 32; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"aji" = (/obj/machinery/atmospherics/components/unary/tank/oxygen,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"ajj" = (/obj/machinery/atmospherics/components/unary/tank/nitrogen,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"ajk" = (/turf/closed/wall,/area/security/processing{name = "Crematorium"}) +"ajl" = (/obj/machinery/door/airlock/security{aiControlDisabled = 0; icon_state = "closed"; id_tag = null; locked = 0; name = "Crematorium"; req_access = null; req_access_txt = "2;27"; req_one_access_txt = "0"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/open/floor/plasteel/black,/area/security/processing{name = "Crematorium"}) +"ajm" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/preopen{id = "Prison Gate"; name = "prison blast door"},/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/open/floor/plasteel/delivery{name = "floor"},/area/security/brig) +"ajn" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/preopen{id = "Prison Gate"; name = "prison blast door"},/obj/structure/cable{tag = "icon-1-2"; icon_state = "1-2"},/turf/open/floor/plasteel/delivery{name = "floor"},/area/security/brig) +"ajo" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/preopen{id = "Prison Gate"; name = "prison blast door"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/delivery{name = "floor"},/area/security/brig) +"ajp" = (/turf/closed/wall,/area/security/brig) +"ajq" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/red/side{dir = 9},/area/security/brig) +"ajr" = (/obj/structure/closet{name = "Evidence Closet"},/turf/open/floor/plasteel/red/side{tag = "icon-red (NORTHEAST)"; dir = 5},/area/security/brig) +"ajs" = (/obj/structure/rack,/obj/item/weapon/gun/energy/gun{pixel_x = -3; pixel_y = 3},/obj/item/weapon/gun/energy/gun,/obj/item/weapon/gun/energy/gun{pixel_x = 3; pixel_y = -3},/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/black,/area/security/armory) +"ajt" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/security/armory) +"aju" = (/obj/structure/rack,/obj/item/clothing/suit/armor/bulletproof{pixel_x = -3; pixel_y = 3},/obj/item/clothing/suit/armor/bulletproof{pixel_y = 0},/obj/item/clothing/suit/armor/bulletproof{pixel_x = 3; pixel_y = -3},/obj/item/clothing/head/helmet/alt{layer = 3.00001; pixel_x = -3; pixel_y = 3},/obj/item/clothing/head/helmet/alt{layer = 3.00001},/obj/item/clothing/head/helmet/alt{layer = 3.00001; pixel_x = 3; pixel_y = -3},/turf/open/floor/plasteel/black,/area/security/armory) +"ajv" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/black,/area/security/armory) +"ajw" = (/obj/structure/rack,/obj/item/weapon/gun/energy/laser{pixel_x = -3; pixel_y = 3},/obj/item/weapon/gun/energy/laser,/obj/item/weapon/gun/energy/laser{pixel_x = 3; pixel_y = -3},/turf/open/floor/plasteel/black,/area/security/armory) +"ajx" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 8; name = "Security Office APC"; pixel_x = -24; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/open/floor/plasteel/red/side{dir = 8},/area/security/main) +"ajy" = (/obj/effect/landmark/start{name = "Security Officer"},/turf/open/floor/plasteel,/area/security/main) +"ajz" = (/obj/structure/chair/stool,/obj/effect/landmark/start{name = "Security Officer"},/turf/open/floor/plasteel,/area/security/main) +"ajA" = (/obj/effect/landmark/start{name = "Security Officer"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/security/main) +"ajB" = (/obj/effect/landmark/start{name = "Security Officer"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/main) +"ajC" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/main) +"ajD" = (/turf/closed/wall,/area/security/hos) +"ajE" = (/obj/machinery/suit_storage_unit/hos,/obj/machinery/airalarm{pixel_y = 22},/turf/open/floor/plasteel/black,/area/security/hos) +"ajF" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/obj/structure/sign/atmosplaque{desc = "An embossed piece of paper from the University of Nanotrasen at Portpoint."; icon_state = "kiddieplaque"; name = "\improper 'Diploma' frame"; pixel_x = 0; pixel_y = 32},/turf/open/floor/plasteel/black,/area/security/hos) +"ajG" = (/obj/structure/table/wood,/obj/machinery/recharger,/obj/machinery/light{dir = 1},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/open/floor/plasteel/black,/area/security/hos) +"ajH" = (/obj/structure/table/wood,/obj/item/weapon/storage/box/seccarts{pixel_x = 3; pixel_y = 2},/obj/item/weapon/storage/box/deputy,/obj/machinery/newscaster/security_unit{pixel_y = 32},/turf/open/floor/plasteel/black,/area/security/hos) +"ajI" = (/obj/structure/closet/secure_closet/hos,/obj/machinery/requests_console{announcementConsole = 1; department = "Head of Security's Desk"; departmentType = 5; name = "Head of Security RC"; pixel_x = 0; pixel_y = 30},/turf/open/floor/plasteel/black,/area/security/hos) +"ajJ" = (/obj/structure/extinguisher_cabinet{pixel_x = -24},/turf/open/floor/plating,/area/maintenance/fsmaint) +"ajK" = (/obj/structure/mineral_door/wood,/turf/open/floor/plating,/area/maintenance/fsmaint) +"ajL" = (/obj/effect/decal/cleanable/oil{icon_state = "floor5"},/turf/open/floor/plating,/area/maintenance/fsmaint) +"ajM" = (/obj/item/weapon/cigbutt/cigarbutt,/obj/structure/sign/poster{pixel_x = 32; pixel_y = 0},/turf/open/floor/plating{burnt = 1; icon_state = "panelscorched"},/area/maintenance/fsmaint) +"ajN" = (/obj/machinery/door/poddoor/shutters{id = "supplybridge"},/turf/open/floor/plating/warnplate{dir = 9},/area/maintenance/fsmaint) +"ajO" = (/obj/machinery/door/poddoor/shutters{id = "supplybridge"},/turf/open/floor/plating/warnplate{tag = "icon-warnplate (NORTH)"; dir = 1},/area/maintenance/fsmaint) +"ajP" = (/obj/machinery/door/poddoor/shutters{id = "supplybridge"},/turf/open/floor/plating/warnplate{dir = 5},/area/maintenance/fsmaint) +"ajQ" = (/obj/machinery/washing_machine,/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = -31},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"ajR" = (/obj/machinery/light/small,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"ajS" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/machinery/button/door{id = "mainthideout"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"ajT" = (/obj/machinery/atmospherics/components/trinary/mixer/flipped{dir = 1; node1_concentration = 0.2; node2_concentration = 0.8; on = 1},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"ajU" = (/obj/machinery/atmospherics/pipe/manifold/general/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"ajV" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 9},/obj/machinery/meter,/obj/machinery/light/small{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"ajW" = (/obj/structure/bodycontainer/crematorium,/obj/effect/landmark{name = "revenantspawn"},/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = -27},/turf/open/floor/plasteel/black,/area/security/processing{name = "Crematorium"}) +"ajX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/open/floor/plasteel/black,/area/security/processing{name = "Crematorium"}) +"ajY" = (/obj/machinery/button/crematorium{pixel_x = 25},/obj/machinery/power/apc{dir = 1; name = "Crematorium APC"; pixel_x = 0; pixel_y = 24},/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel/black,/area/security/processing{name = "Crematorium"}) +"ajZ" = (/turf/closed/wall/r_wall,/area/security/brig) +"aka" = (/obj/item/clothing/gloves/color/latex,/obj/item/clothing/mask/surgical,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/structure/table/glass,/turf/open/floor/plasteel/whitered/side{dir = 9},/area/security/brig) +"akb" = (/obj/item/weapon/storage/firstaid/regular{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/regular,/obj/structure/table/glass,/obj/machinery/airalarm{pixel_y = 22},/turf/open/floor/plasteel/whitered/side{dir = 1},/area/security/brig) +"akc" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 24},/obj/structure/table/glass,/obj/machinery/computer/med_data/laptop,/turf/open/floor/plasteel/whitered/side{dir = 1},/area/security/brig) +"akd" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/iv_drip{density = 0},/turf/open/floor/plasteel/whitered/side{dir = 5},/area/security/brig) +"ake" = (/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{tag = "icon-manifold (WEST)"; icon_state = "manifold"; dir = 8},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/brig) +"akf" = (/obj/structure/cable{tag = "icon-1-2"; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (WEST)"; icon_state = "intact"; dir = 8},/turf/open/floor/plasteel,/area/security/brig) +"akg" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/security/brig) +"akh" = (/obj/machinery/door/airlock/security{name = "Evidence Room"; req_access_txt = "63"},/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/open/floor/plasteel/red,/area/security/brig) +"aki" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/turf/open/floor/plasteel,/area/security/brig) +"akj" = (/obj/structure/closet{name = "Evidence Closet"},/obj/machinery/camera{c_tag = "Brig Evidence Room"; dir = 8},/obj/effect/landmark{name = "revenantspawn"},/turf/open/floor/plasteel/red/side{tag = "icon-red (EAST)"; dir = 4},/area/security/brig) +"akk" = (/obj/structure/rack,/obj/item/weapon/gun/energy/gun/advtaser{pixel_x = -3; pixel_y = 3},/obj/item/weapon/gun/energy/gun/advtaser,/obj/item/weapon/gun/energy/gun/advtaser{pixel_x = 3; pixel_y = -3},/turf/open/floor/plasteel/black,/area/security/armory) +"akl" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/security/armory) +"akm" = (/obj/effect/landmark/event_spawn,/mob/living/simple_animal/bot/secbot{arrest_type = 1; health = 45; icon_state = "secbot1"; idcheck = 1; name = "Sergeant-at-Armsky"; on = 1; weaponscheck = 1},/turf/open/floor/plasteel/black,/area/security/armory) +"akn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/open/floor/plasteel/black,/area/security/armory) +"ako" = (/obj/structure/rack,/obj/item/weapon/gun/projectile/shotgun/riot{pixel_x = -3; pixel_y = 3},/obj/item/weapon/gun/projectile/shotgun/riot,/obj/item/weapon/gun/projectile/shotgun/riot{pixel_x = 3; pixel_y = -3},/turf/open/floor/plasteel/black,/area/security/armory) +"akp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/newscaster{pixel_x = -32},/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/open/floor/plasteel/red/side{dir = 9},/area/security/main) +"akq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/side{dir = 5},/area/security/main) +"akr" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-22"},/turf/open/floor/plasteel/black,/area/security/main) +"aks" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating,/area/security/hos) +"akt" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/darkred/corner,/area/security/hos) +"aku" = (/obj/item/weapon/storage/secure/safe{pixel_x = -22; pixel_y = 32},/turf/open/floor/plasteel/darkred/side,/area/security/hos) +"akv" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/darkred/side,/area/security/hos) +"akw" = (/turf/open/floor/plasteel/darkred/side,/area/security/hos) +"akx" = (/obj/machinery/keycard_auth{pixel_x = 28; pixel_y = 28},/turf/open/floor/plasteel/darkred/side,/area/security/hos) +"aky" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/open/floor/plating,/area/security/hos) +"akz" = (/obj/structure/table,/obj/item/weapon/lighter,/obj/machinery/light/small{dir = 8},/turf/open/floor/plating,/area/maintenance/fsmaint) +"akA" = (/obj/structure/table,/obj/item/weapon/storage/fancy/cigarettes/cigars,/obj/item/stack/spacecash/c20,/turf/open/floor/plating,/area/maintenance/fsmaint) +"akB" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/bottle/gin{pixel_y = 8},/obj/machinery/light/small{dir = 4},/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass,/turf/open/floor/plating,/area/maintenance/fsmaint) +"akC" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/light/small{brightness = 3; dir = 8},/obj/item/weapon/cigbutt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/fsmaint) +"akD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/fsmaint) +"akE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/airlock/glass{name = "space-bridge access"},/obj/machinery/button/door{id = "supplybridge"; name = "Space Bridge Control"; pixel_x = 0; pixel_y = 27; req_access_txt = "0"},/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/fsmaint) +"akF" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating/warnplate{tag = "icon-warnplate (WEST)"; dir = 8},/area/maintenance/fsmaint) +"akG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint) +"akH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/plating,/area/maintenance/fsmaint) +"akI" = (/obj/machinery/door/airlock/glass{name = "space-bridge access"},/obj/machinery/button/door{id = "supplybridge"; name = "Space Bridge Control"; pixel_x = 0; pixel_y = 27; req_access_txt = "0"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating/warnplate{tag = "icon-warnplate (WEST)"; dir = 8},/area/maintenance/fsmaint) +"akJ" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/fsmaint) +"akK" = (/obj/machinery/door/airlock{id_tag = "mainthideout"; name = "Hideout"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"akL" = (/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{tag = "icon-manifold (WEST)"; icon_state = "manifold"; dir = 8},/obj/item/weapon/wrench,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"akM" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 8},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"akN" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible,/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"akO" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/open/floor/plasteel/black,/area/security/processing{name = "Crematorium"}) +"akP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/open/floor/plasteel/black,/area/security/processing{name = "Crematorium"}) +"akQ" = (/obj/machinery/light/small{dir = 4},/obj/machinery/camera{c_tag = "Brig Crematorium"; dir = 8; network = list("SS13")},/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{tag = "icon-manifold (WEST)"; icon_state = "manifold"; dir = 8},/turf/open/floor/plasteel/black,/area/security/processing{name = "Crematorium"}) +"akR" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/closed/wall/r_wall,/area/security/brig) +"akS" = (/obj/item/weapon/storage/box/bodybags,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/table/glass,/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/obj/item/weapon/reagent_containers/syringe{name = "steel point"},/obj/item/weapon/reagent_containers/glass/bottle/charcoal,/obj/item/weapon/reagent_containers/glass/bottle/epinephrine,/turf/open/floor/plasteel/whitered/side{dir = 10},/area/security/brig) +"akT" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/open/floor/plasteel/whitered/corner{tag = "icon-whiteredcorner (WEST)"; dir = 8},/area/security/brig) +"akU" = (/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{tag = "icon-manifold (NORTH)"; icon_state = "manifold"; dir = 1},/turf/open/floor/plasteel/white,/area/security/brig) +"akV" = (/obj/machinery/door/window/westleft{base_state = "left"; dir = 4; icon_state = "left"; name = "Brig Infirmary"; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/open/floor/plasteel/whitered/side{dir = 4},/area/security/brig) +"akW" = (/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{tag = "icon-manifold (EAST)"; icon_state = "manifold"; dir = 4},/turf/open/floor/plasteel,/area/security/brig) +"akX" = (/obj/structure/cable{tag = "icon-1-2"; icon_state = "1-2"},/turf/open/floor/plasteel,/area/security/brig) +"akY" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/brig) +"akZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/security/brig) +"ala" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/light/small,/turf/open/floor/plasteel/red/side{dir = 10},/area/security/brig) +"alb" = (/obj/structure/closet{name = "Evidence Closet"},/turf/open/floor/plasteel/red/side{dir = 6},/area/security/brig) +"alc" = (/obj/machinery/flasher/portable,/turf/open/floor/plasteel/vault{dir = 8},/area/security/armory) +"ald" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/open/floor/plasteel/red/side{dir = 8},/area/security/main) +"ale" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green{pixel_x = -4; pixel_y = 12},/obj/item/weapon/pen,/obj/item/weapon/folder/red{layer = 2.9; pixel_x = 8},/turf/open/floor/plasteel,/area/security/main) +"alf" = (/obj/machinery/computer/secure_data,/turf/open/floor/plasteel,/area/security/main) +"alg" = (/turf/open/floor/plasteel,/area/security/main) +"alh" = (/obj/machinery/computer/security,/turf/open/floor/plasteel,/area/security/main) +"ali" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/side{dir = 4},/area/security/main) +"alj" = (/turf/open/floor/plasteel/black,/area/security/main) +"alk" = (/obj/structure/cable{tag = "icon-1-2"; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/open/floor/plasteel/black,/area/security/hos) +"all" = (/turf/open/floor/carpet,/area/security/hos) +"alm" = (/obj/structure/chair{dir = 4},/obj/structure/disposalpipe/segment,/turf/open/floor/carpet,/area/security/hos) +"aln" = (/obj/structure/table/wood,/obj/item/weapon/folder/red,/obj/item/weapon/stamp/hos,/turf/open/floor/carpet,/area/security/hos) +"alo" = (/obj/machinery/computer/secure_data,/turf/open/floor/carpet,/area/security/hos) +"alp" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable,/turf/open/floor/plating,/area/security/hos) +"alq" = (/turf/open/floor/plating{burnt = 1; icon_state = "panelscorched"},/area/maintenance/fsmaint) +"alr" = (/obj/structure/chair/stool/bar,/turf/open/floor/wood{icon_state = "wood-broken7"},/area/maintenance/fsmaint) +"als" = (/obj/effect/landmark{name = "blobstart"},/obj/structure/chair/stool/bar,/turf/open/floor/wood,/area/maintenance/fsmaint) +"alt" = (/obj/structure/chair/stool/bar,/turf/open/floor/wood,/area/maintenance/fsmaint) +"alu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint) +"alv" = (/obj/machinery/door/poddoor/shutters{id = "supplybridge"},/turf/open/floor/plating/warnplate{dir = 10},/area/maintenance/fsmaint) +"alw" = (/obj/machinery/door/poddoor/shutters{id = "supplybridge"},/turf/open/floor/plating/warnplate,/area/maintenance/fsmaint) +"alx" = (/obj/machinery/door/poddoor/shutters{id = "supplybridge"},/turf/open/floor/plating/warnplate{dir = 6},/area/maintenance/fsmaint) +"aly" = (/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 24; id = "syndicate_ne"; name = "northeast of station"; turf_type = /turf/open/space; width = 18},/turf/open/space,/area/space) +"alz" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (NORTHEAST)"; icon_state = "intact"; dir = 5},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"alA" = (/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{tag = "icon-manifold (NORTH)"; icon_state = "manifold"; dir = 1},/obj/machinery/meter,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"alB" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"alC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/security/processing{name = "Crematorium"}) +"alD" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/open/floor/plasteel/black,/area/security/processing{name = "Crematorium"}) +"alE" = (/obj/structure/bodycontainer/morgue,/obj/machinery/camera{c_tag = "Brig Infirmary"; dir = 4},/obj/structure/window/reinforced{dir = 1; layer = 2.9},/obj/effect/landmark{name = "revenantspawn"},/turf/open/floor/plasteel/black,/area/security/brig) +"alF" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1},/turf/open/floor/plasteel/whitered/side{dir = 8},/area/security/brig) +"alG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel/white,/area/security/brig) +"alH" = (/obj/machinery/door/window/westleft{base_state = "right"; dir = 4; icon_state = "right"; name = "Brig Infirmary"; req_access_txt = "0"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel/whitered/side{dir = 4},/area/security/brig) +"alI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/open/floor/plasteel,/area/security/brig) +"alJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/security/brig) +"alK" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{cell_type = 10000; dir = 4; name = "Brig APC"; pixel_x = 24; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/brig) +"alL" = (/turf/closed/wall/r_wall,/area/security/warden) +"alM" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/warden) +"alN" = (/obj/machinery/door/firedoor,/obj/machinery/door/window/southleft{base_state = "right"; icon_state = "right"; name = "Armory"; req_access_txt = "3"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/vault,/area/security/warden) +"alO" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/warden) +"alP" = (/obj/machinery/door/firedoor,/obj/machinery/door/window/southleft{base_state = "right"; icon_state = "right"; name = "Armory"; req_access_txt = "3"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/open/floor/plasteel/vault,/area/security/warden) +"alQ" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/closed/wall/r_wall,/area/security/warden) +"alR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/light{dir = 8},/obj/machinery/camera{c_tag = "Security Office"; dir = 4; network = list("SS13")},/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{tag = "icon-manifold (WEST)"; icon_state = "manifold"; dir = 8},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = -31},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/main) +"alS" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/open/floor/plasteel,/area/security/main) +"alT" = (/obj/structure/chair/office/dark{dir = 1},/obj/effect/landmark/start{name = "Security Officer"},/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/open/floor/plasteel,/area/security/main) +"alU" = (/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{tag = "icon-manifold (NORTH)"; icon_state = "manifold"; dir = 1},/turf/open/floor/plasteel,/area/security/main) +"alV" = (/obj/structure/chair/office/dark{dir = 1},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/effect/landmark/start{name = "Security Officer"},/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/open/floor/plasteel,/area/security/main) +"alW" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/side{dir = 4},/area/security/main) +"alX" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/open/floor/plasteel/black,/area/security/main) +"alY" = (/obj/machinery/door/airlock/glass_command{name = "Head of Security"; req_access_txt = "58"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/open/floor/plasteel/black,/area/security/hos) +"alZ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/turf/open/floor/plasteel/black,/area/security/hos) +"ama" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/landmark/start{name = "Head of Security"},/turf/open/floor/carpet,/area/security/hos) +"amb" = (/obj/structure/chair{dir = 4},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/carpet,/area/security/hos) +"amc" = (/obj/structure/table/wood,/obj/item/weapon/book/manual/wiki/security_space_law,/turf/open/floor/carpet,/area/security/hos) +"amd" = (/obj/structure/chair/comfy/black{dir = 8},/turf/open/floor/carpet,/area/security/hos) +"ame" = (/obj/machinery/computer/security,/turf/open/floor/carpet,/area/security/hos) +"amf" = (/obj/item/weapon/cigbutt/roach,/turf/open/floor/wood,/area/maintenance/fsmaint) +"amg" = (/turf/open/floor/wood{broken = 1; icon_state = "wood-broken"; tag = "icon-wood-broken"},/area/maintenance/fsmaint) +"amh" = (/obj/effect/decal/cleanable/oil{icon_state = "floor6"},/turf/open/floor/wood{icon_state = "wood-broken4"},/area/maintenance/fsmaint) +"ami" = (/obj/machinery/door/airlock/atmos{name = "Atmospherics Maintenance"; req_access_txt = "12;24"},/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"amj" = (/obj/machinery/door/airlock/maintenance{name = "Crematorium Maintenance"; req_access_txt = "0"; req_one_access_txt = "2;27"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/security/processing{name = "Crematorium"}) +"amk" = (/obj/machinery/door/window/eastright{base_state = "left"; dir = 1; icon_state = "left"; name = "Security Delivery"; req_access_txt = "1"},/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/obj/machinery/navbeacon{codes_txt = "delivery;dir=4"; dir = 1; freq = 1400; location = "Security"},/turf/open/floor/plasteel/vault{dir = 8},/area/security/processing{name = "Crematorium"}) +"aml" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/black,/area/security/brig) +"amm" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel/whitered/side{dir = 10},/area/security/brig) +"amn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/whitered/side,/area/security/brig) +"amo" = (/obj/structure/closet/crate/freezer,/obj/structure/window/reinforced{dir = 4; layer = 2.9},/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/whitered/side{dir = 6},/area/security/brig) +"amp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/open/floor/plasteel/red/side{dir = 8},/area/security/brig) +"amq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/brig) +"amr" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/brig) +"ams" = (/obj/structure/closet/secure_closet/warden,/obj/item/clothing/mask/gas/sechailer,/obj/machinery/power/apc{dir = 8; name = "Brig Control APC"; pixel_x = -24; pixel_y = 0},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/reagent_dispensers/peppertank{pixel_y = 30},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"amt" = (/obj/machinery/computer/prisoner,/obj/machinery/airalarm{pixel_y = 22},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"amu" = (/obj/machinery/computer/security,/obj/machinery/light{dir = 1},/obj/machinery/camera{c_tag = "Brig Control Room"; dir = 2},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"amv" = (/obj/machinery/computer/secure_data,/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"amw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"amx" = (/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"amy" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"amz" = (/obj/structure/table,/obj/machinery/recharger,/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"amA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/closed/wall/r_wall,/area/security/warden) +"amB" = (/obj/structure/table/wood,/obj/machinery/recharger,/turf/open/floor/plasteel,/area/security/main) +"amC" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/open/floor/plasteel,/area/security/main) +"amD" = (/obj/structure/table/wood,/obj/machinery/recharger,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/security/main) +"amE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/side{dir = 4},/area/security/main) +"amF" = (/obj/structure/cable{tag = "icon-1-2"; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/security/hos) +"amG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/open/floor/carpet,/area/security/hos) +"amH" = (/obj/structure/chair{dir = 4},/turf/open/floor/carpet,/area/security/hos) +"amI" = (/obj/structure/table/wood,/obj/item/weapon/phone,/turf/open/floor/carpet,/area/security/hos) +"amJ" = (/obj/machinery/computer/card/minor/hos,/turf/open/floor/carpet,/area/security/hos) +"amK" = (/obj/machinery/door/airlock/maintenance{name = "Pete's Speakeasy"; req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/fsmaint) +"amL" = (/turf/closed/wall/mineral/titanium,/area/shuttle/pod_1) +"amM" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/pod_1) +"amN" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/robot_debris{icon_state = "gib6"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint) +"amO" = (/obj/structure/grille/broken,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"amP" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"amQ" = (/obj/item/weapon/wirecutters,/obj/effect/spawner/lootdrop/maintenance,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (NORTHEAST)"; icon_state = "intact"; dir = 5},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"amR" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"amS" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"amT" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/closed/wall,/area/security/processing{name = "Crematorium"}) +"amU" = (/obj/structure/plasticflaps{opacity = 1},/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/turf/open/floor/plasteel/vault{dir = 8},/area/security/processing{name = "Crematorium"}) +"amV" = (/obj/machinery/door/airlock/maintenance{name = "Brig Infirmary Maintenance"; req_access_txt = "63"; req_one_access_txt = "0"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/security/brig) +"amW" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/open/floor/plasteel/red/side{dir = 8},/area/security/brig) +"amX" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/open/floor/plasteel,/area/security/brig) +"amY" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/side{dir = 4},/area/security/brig) +"amZ" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/grille,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/warden) +"ana" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"anb" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"anc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"and" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"ane" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"anf" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (SOUTHEAST)"; icon_state = "intact"; dir = 6},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"ang" = (/obj/machinery/atmospherics/pipe/manifold/cyan/hidden,/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"anh" = (/obj/structure/table,/obj/machinery/recharger,/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"ani" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/open/floor/plating,/area/security/warden) +"anj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/turf/open/floor/plasteel/red/side{dir = 10},/area/security/main) +"ank" = (/obj/structure/chair/office/dark{dir = 1},/obj/effect/landmark/start{name = "Security Officer"},/turf/open/floor/plasteel,/area/security/main) +"anl" = (/obj/structure/chair/office/dark{dir = 1},/obj/structure/disposalpipe/segment,/obj/effect/landmark/start{name = "Security Officer"},/turf/open/floor/plasteel,/area/security/main) +"anm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel/red/side{dir = 6},/area/security/main) +"ann" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-22"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/security/main) +"ano" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/security/hos) +"anp" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/light_switch{pixel_y = -24},/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (EAST)"; dir = 4},/area/security/hos) +"anq" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (NORTH)"; dir = 1},/area/security/hos) +"anr" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (NORTH)"; dir = 1},/area/security/hos) +"ans" = (/obj/machinery/light,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/camera{c_tag = "Head of Security's Office"; dir = 1; network = list("SS13")},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -27},/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (NORTH)"; dir = 1},/area/security/hos) +"ant" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 2; name = "Head of Security's Office APC"; pixel_x = 0; pixel_y = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (NORTH)"; dir = 1},/area/security/hos) +"anu" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable,/turf/open/floor/plating,/area/security/hos) +"anv" = (/obj/structure/grille/broken,/turf/open/floor/plating,/area/maintenance/fsmaint) +"anw" = (/obj/structure/closet/emcloset,/turf/open/floor/plating,/area/maintenance/fsmaint) +"anx" = (/obj/structure/chair{dir = 1},/turf/open/floor/mineral/titanium/blue,/area/shuttle/pod_1) +"any" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"anz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"anA" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/light/small{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"anB" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"anC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"anD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"anE" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"anF" = (/obj/machinery/computer/security{name = "Labor Camp Monitoring"; network = list("Labor")},/turf/open/floor/plasteel/black,/area/security/brig) +"anG" = (/obj/machinery/computer/shuttle/labor,/turf/open/floor/plasteel/black,/area/security/brig) +"anH" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/open/floor/plasteel/red/side{dir = 8},/area/security/brig) +"anI" = (/turf/open/floor/plasteel,/area/security/brig) +"anJ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/side{dir = 4},/area/security/brig) +"anK" = (/obj/structure/bed/dogbed,/obj/machinery/requests_console{department = "Security"; departmentType = 5; pixel_x = -30; pixel_y = 0},/mob/living/simple_animal/pet/dog/pug{name = "McGriff"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"anL" = (/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{tag = "icon-manifold (WEST)"; icon_state = "manifold"; dir = 8},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"anM" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; layer = 2.4; on = 1},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"anN" = (/obj/machinery/door/airlock/security{name = "Brig Control"; req_access_txt = "3"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"anO" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/main) +"anP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/security/main) +"anQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; layer = 2.4; on = 1},/turf/open/floor/plasteel,/area/security/main) +"anR" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/security/main) +"anS" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/sortjunction{dir = 4; icon_state = "pipe-j2s"; sortType = 8},/turf/open/floor/plasteel,/area/security/main) +"anT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/side{dir = 4},/area/security/main) +"anU" = (/turf/closed/wall/r_wall,/area/maintenance/fore) +"anV" = (/obj/effect/spawner/lootdrop/grille_or_trash,/turf/open/floor/plating,/area/maintenance/fsmaint) +"anW" = (/obj/structure/chair{dir = 4},/obj/machinery/status_display{density = 0; layer = 3; pixel_x = -32; pixel_y = 0},/turf/open/floor/mineral/titanium/blue,/area/shuttle/pod_1) +"anX" = (/turf/open/floor/mineral/titanium/blue,/area/shuttle/pod_1) +"anY" = (/obj/structure/chair{dir = 8},/obj/machinery/status_display{density = 0; layer = 3; pixel_x = 32; pixel_y = 0},/turf/open/floor/mineral/titanium/blue,/area/shuttle/pod_1) +"anZ" = (/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"aoa" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"aob" = (/obj/structure/chair/stool,/obj/item/trash/raisins,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"aoc" = (/obj/structure/table,/obj/item/weapon/paper,/obj/item/weapon/pen,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"aod" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/obj/machinery/camera{c_tag = "Brig Gulag Teleporter"; dir = 4},/obj/machinery/light{dir = 8},/obj/structure/table,/obj/item/weapon/storage/box/prisoner,/obj/item/weapon/razor{pixel_x = -6},/obj/item/weapon/paper{desc = ""; info = "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, surveilance 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."; name = "Labor Camp Operating Guide"},/obj/item/weapon/pen,/turf/open/floor/plasteel/black,/area/security/brig) +"aoe" = (/obj/structure/chair/office/dark{dir = 8},/turf/open/floor/plasteel/black,/area/security/brig) +"aof" = (/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/warden) +"aog" = (/obj/item/weapon/book/manual/wiki/security_space_law,/obj/item/clothing/ears/earmuffs,/obj/item/clothing/glasses/sunglasses,/obj/structure/table/reinforced,/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"aoh" = (/obj/structure/table/reinforced,/obj/machinery/button/door{id = "Secure Gate"; name = "Entrance Lockdown"; pixel_x = 5; pixel_y = -2; req_access_txt = "0"},/obj/machinery/button/door{id = "Prison Gate"; name = "Permabrig Lockdown"; pixel_x = 5; pixel_y = 8; req_access_txt = "2"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"aoi" = (/obj/structure/chair/office/dark,/obj/effect/landmark/start{name = "Warden"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"aoj" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 0},/obj/structure/table/reinforced,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"aok" = (/obj/machinery/disposal/bin,/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"aol" = (/obj/structure/rack,/obj/item/weapon/crowbar,/obj/item/weapon/wrench,/obj/item/device/laser_pointer/red,/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"aom" = (/obj/structure/filingcabinet/chestdrawer,/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"aon" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/warden) +"aoo" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 4},/turf/open/floor/plasteel/red,/area/security/main) +"aop" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/plasteel/red/side,/area/security/main) +"aoq" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/red/side,/area/security/main) +"aor" = (/obj/structure/disposalpipe/sortjunction{dir = 1; icon_state = "pipe-j2s"; sortType = 7},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel,/area/security/main) +"aos" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/side,/area/security/main) +"aot" = (/obj/machinery/airalarm{dir = 1; pixel_y = -22},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/side,/area/security/main) +"aou" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 32; pixel_y = -32},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/red,/area/security/main) +"aov" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/security{name = "Security Access"; req_access = null; req_access_txt = "1"},/turf/open/floor/plating,/area/maintenance/fore) +"aow" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/fore) +"aox" = (/obj/machinery/power/apc{dir = 1; name = "Fore Maintenance APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/fore) +"aoy" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light{dir = 1},/turf/open/floor/plating,/area/maintenance/fore) +"aoz" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/fore) +"aoA" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 0; name = "Security External Airlock"; req_access_txt = "63"},/turf/open/floor/plating,/area/maintenance/fore) +"aoB" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/maintenance/fore) +"aoC" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 8; name = "Security External Airlock"; req_access_txt = "63"},/turf/open/floor/plating,/area/maintenance/fore) +"aoD" = (/obj/structure/chair{dir = 8},/obj/item/clothing/mask/cigarette,/turf/open/floor/plating,/area/maintenance/fsmaint) +"aoE" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/fsmaint) +"aoF" = (/obj/structure/cable{icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/fsmaint) +"aoG" = (/obj/structure/chair{dir = 4},/turf/open/floor/mineral/titanium/blue,/area/shuttle/pod_1) +"aoH" = (/obj/structure/chair{dir = 8},/turf/open/floor/mineral/titanium/blue,/area/shuttle/pod_1) +"aoI" = (/obj/structure/chair{dir = 8},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"aoJ" = (/mob/living/simple_animal/mouse/gray,/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"aoK" = (/obj/structure/closet/firecloset,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"aoL" = (/turf/closed/wall/mineral/titanium,/area/shuttle/labor) +"aoM" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/labor) +"aoN" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/brig) +"aoO" = (/obj/machinery/computer/gulag_teleporter_computer,/turf/open/floor/plasteel/black,/area/security/brig) +"aoP" = (/obj/machinery/gulag_teleporter,/turf/open/floor/plasteel/black,/area/security/brig) +"aoQ" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (SOUTHWEST)"; icon_state = "intact"; dir = 10},/turf/open/floor/plasteel,/area/security/brig) +"aoR" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/closed/wall/r_wall,/area/security/warden) +"aoS" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/warden) +"aoT" = (/obj/structure/table/reinforced,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/window/brigdoor{dir = 1; name = "Armory Desk"; req_access_txt = "3"},/obj/machinery/door/window/southleft{name = "Reception Desk"; req_access_txt = "63"},/obj/item/weapon/paper_bin{layer = 2.9; pixel_x = 0; pixel_y = 0},/obj/item/weapon/pen{pixel_x = 4; pixel_y = 4},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"aoU" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/security/warden) +"aoV" = (/obj/machinery/door/airlock/glass_security{name = "Brig Control"; req_access_txt = "3"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"aoW" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/closed/wall/r_wall,/area/security/warden) +"aoX" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/closed/wall/r_wall,/area/security/warden) +"aoY" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/security{name = "Security Office"; req_access = null; req_access_txt = "1"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/security/main) +"aoZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/disposalpipe/segment,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 32; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/fore) +"apa" = (/turf/closed/wall,/area/maintenance/fore) +"apb" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/fore) +"apc" = (/turf/closed/wall,/area/crew_quarters/sleep) +"apd" = (/obj/structure/chair{dir = 4},/obj/item/weapon/storage/pod{pixel_x = -24; pixel_y = 0},/turf/open/floor/mineral/titanium/blue,/area/shuttle/pod_1) +"ape" = (/obj/structure/chair{dir = 8},/obj/item/device/radio/intercom{pixel_x = 30; pixel_y = 0},/turf/open/floor/mineral/titanium/blue,/area/shuttle/pod_1) +"apf" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/solar{id = "portsolar"; name = "Port Solar Array"},/turf/open/floor/plasteel/airless/solarpanel,/area/solar/port{name = "Port Solar Array"}) +"apg" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/space,/area/solar/starboard{name = "Starboard Solar Array"}) +"aph" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/solar{id = "portsolar"; name = "Port Solar Array"},/turf/open/floor/plasteel/airless/solarpanel,/area/solar/port{name = "Port Solar Array"}) +"api" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/space,/area/solar/port{name = "Port Solar Array"}) +"apj" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/solar{id = "starboardsolar"; name = "Starboard Solar Array"},/turf/open/floor/plasteel/airless/solarpanel,/area/solar/port{name = "Port Solar Array"}) +"apk" = (/obj/structure/rack,/obj/item/clothing/suit/hazardvest,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"apl" = (/obj/effect/decal/remains/human,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"apm" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"apn" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"apo" = (/obj/structure/closet,/obj/item/clothing/under/color/black,/obj/item/clothing/under/color/red,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"app" = (/obj/machinery/computer/shuttle/labor,/obj/structure/reagent_dispensers/peppertank{pixel_x = -31; pixel_y = 0},/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/labor) +"apq" = (/obj/structure/chair/office/dark{dir = 1},/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/labor) +"apr" = (/obj/structure/table,/obj/item/weapon/folder/red,/obj/item/weapon/restraints/handcuffs,/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/labor) +"aps" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel,/area/security/brig) +"apt" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel/red/corner{dir = 4},/area/security/brig) +"apu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/brig) +"apv" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/brig) +"apw" = (/obj/machinery/camera{c_tag = "Brig Cells"; dir = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/brig) +"apx" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/turf/open/floor/plasteel,/area/security/brig) +"apy" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel/red/side{dir = 1},/area/security/brig) +"apz" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/brig) +"apA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/open/floor/plasteel,/area/security/brig) +"apB" = (/obj/machinery/camera{c_tag = "Brig Entrance"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = 29},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/brig) +"apC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/reagent_dispensers/peppertank{pixel_y = 30},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/brig) +"apD" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/brig) +"apE" = (/turf/open/floor/plasteel/red/side{dir = 1},/area/security/brig) +"apF" = (/turf/open/floor/plasteel/red/side{dir = 5},/area/security/brig) +"apG" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1},/turf/open/floor/plasteel/black,/area/security/brig) +"apH" = (/turf/open/floor/plasteel/black,/area/security/brig) +"apI" = (/obj/machinery/ai_status_display{pixel_y = 32},/turf/open/floor/plasteel/black,/area/security/brig) +"apJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/fore) +"apK" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/closed/wall/r_wall,/area/bridge) +"apL" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "bridgespace"; name = "bridge external shutters"; opacity = 0},/turf/open/floor/plating,/area/bridge) +"apM" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/closed/wall/r_wall,/area/bridge) +"apN" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/closed/wall/r_wall,/area/bridge) +"apO" = (/obj/machinery/computer/arcade,/turf/open/floor/plasteel/barber,/area/crew_quarters/sleep) +"apP" = (/obj/machinery/washing_machine,/turf/open/floor/plasteel/barber,/area/crew_quarters/sleep) +"apQ" = (/obj/structure/table,/obj/structure/sign/poster{pixel_x = 32},/obj/item/clothing/under/color/grey,/turf/open/floor/plasteel/barber,/area/crew_quarters/sleep) +"apR" = (/obj/structure/shuttle/engine/propulsion/burst,/turf/closed/wall/mineral/titanium,/area/shuttle/pod_1) +"apS" = (/obj/machinery/door/airlock/shuttle{name = "Escape Pod Airlock"},/obj/docking_port/mobile/pod{dwidth = 2; height = 6; id = "pod1"; name = "escape pod 1"; port_angle = 180; width = 5},/turf/open/floor/mineral/titanium/blue,/area/shuttle/pod_1) +"apT" = (/obj/machinery/space_heater,/turf/open/floor/plating,/area/maintenance/fsmaint) +"apU" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/open/space,/area/solar/starboard{name = "Starboard Solar Array"}) +"apV" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/open/space,/area/solar/port{name = "Port Solar Array"}) +"apW" = (/obj/structure/closet/crate,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/obj/item/stack/rods{amount = 25},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"apX" = (/obj/item/weapon/weldingtool,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"apY" = (/obj/item/clothing/head/cone,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"apZ" = (/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/labor) +"aqa" = (/obj/machinery/button/flasher{id = "gulagshuttleflasher"; name = "Flash Control"; pixel_x = 0; pixel_y = -26; req_access_txt = "1"},/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/labor) +"aqb" = (/obj/machinery/mineral/labor_claim_console{machinedir = 2; pixel_x = 30; pixel_y = 30},/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/labor) +"aqc" = (/obj/machinery/door/airlock/shuttle{name = "Labor Shuttle Airlock"; req_access_txt = "2"},/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/labor) +"aqd" = (/obj/machinery/door/airlock/external{name = "Labor Camp Shuttle Airlock"; req_access_txt = "2"},/turf/open/floor/plasteel/black,/area/security/brig) +"aqe" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Labor Camp Shuttle Airlock"; req_access_txt = "2"},/obj/machinery/button/door{id = "prison release"; name = "Labor Camp Shuttle Lockdown"; pixel_x = 0; pixel_y = -25; req_access_txt = "2"},/turf/open/floor/plasteel/black,/area/security/brig) +"aqf" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/open/floor/plasteel,/area/security/brig) +"aqg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/security/brig) +"aqh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/open/floor/plasteel,/area/security/brig) +"aqi" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/security/brig) +"aqj" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel,/area/security/brig) +"aqk" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/security/brig) +"aql" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel,/area/security/brig) +"aqm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/brig) +"aqn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/brig) +"aqo" = (/obj/machinery/door/airlock/security{name = "Interrogation"; req_access = null; req_access_txt = "63"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/security/brig) +"aqp" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/security/brig) +"aqq" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/black,/area/security/brig) +"aqr" = (/obj/structure/table,/obj/item/device/flashlight/lamp,/turf/open/floor/plasteel/black,/area/security/brig) +"aqs" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/black,/area/security/brig) +"aqt" = (/obj/machinery/camera{c_tag = "Brig Interrogation"; dir = 8},/turf/open/floor/plasteel/black,/area/security/brig) +"aqu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/closed/wall/r_wall,/area/bridge) +"aqv" = (/obj/machinery/modular_computer/console/preset/command,/turf/open/floor/plasteel/darkgreen/side{dir = 9},/area/bridge) +"aqw" = (/obj/machinery/computer/med_data,/turf/open/floor/plasteel/darkgreen/side{dir = 1},/area/bridge) +"aqx" = (/obj/machinery/computer/crew,/turf/open/floor/plasteel/darkgreen/side{dir = 1},/area/bridge) +"aqy" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/item/weapon/folder/yellow{pixel_y = 4},/obj/structure/table/glass,/obj/machinery/light{dir = 1},/obj/item/weapon/pen,/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (NORTH)"; dir = 1},/area/bridge) +"aqz" = (/obj/machinery/computer/card,/obj/machinery/camera{c_tag = "Bridge - Central"; dir = 2; network = list("SS13")},/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (NORTH)"; dir = 1},/area/bridge) +"aqA" = (/obj/machinery/computer/communications,/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (NORTH)"; dir = 1},/area/bridge) +"aqB" = (/obj/machinery/computer/teleporter,/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (NORTH)"; dir = 1},/area/bridge) +"aqC" = (/obj/machinery/ai_status_display{pixel_y = 32},/obj/structure/table/glass,/obj/machinery/light{dir = 1},/obj/machinery/recharger,/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (NORTH)"; dir = 1},/area/bridge) +"aqD" = (/obj/machinery/computer/security,/turf/open/floor/plasteel/darkred/side{dir = 1},/area/bridge) +"aqE" = (/obj/machinery/computer/secure_data,/turf/open/floor/plasteel/darkred/side{dir = 1},/area/bridge) +"aqF" = (/obj/machinery/computer/prisoner,/turf/open/floor/plasteel/darkred/side{dir = 5},/area/bridge) +"aqG" = (/obj/structure/lattice,/obj/machinery/camera{c_tag = "Bridge Starboard Exterior"; dir = 1},/turf/open/space,/area/space) +"aqH" = (/turf/closed/wall/r_wall,/area/ai_monitored/nuke_storage) +"aqI" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint) +"aqJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/open/floor/plating,/area/crew_quarters/sleep) +"aqK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/barber,/area/crew_quarters/sleep) +"aqL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/barber,/area/crew_quarters/sleep) +"aqM" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/effect/landmark/start{name = "Assistant"},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1},/turf/open/floor/plasteel/barber,/area/crew_quarters/sleep) +"aqN" = (/obj/structure/bedsheetbin,/obj/machinery/newscaster{pixel_x = 32},/turf/open/floor/plasteel/barber,/area/crew_quarters/sleep) +"aqO" = (/obj/machinery/door/airlock/external{name = "Escape Pod"},/turf/open/floor/plating,/area/crew_quarters/sleep) +"aqP" = (/obj/item/clothing/under/kilt,/obj/item/clothing/head/collectable/wizard,/obj/structure/closet/cardboard,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fsmaint) +"aqQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/light{dir = 1},/obj/item/weapon/cigbutt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint) +"aqR" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/fsmaint) +"aqS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/vomit/old,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"aqT" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"aqU" = (/obj/item/clothing/head/cone,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"aqV" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"aqW" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"aqX" = (/obj/machinery/door/airlock/shuttle{name = "Labor Shuttle Airlock"; req_access_txt = "2"},/turf/open/floor/plasteel/black,/area/shuttle/labor) +"aqY" = (/obj/machinery/mineral/stacking_machine/laborstacker{input_dir = 2; output_dir = 1},/turf/open/floor/plasteel/black,/area/shuttle/labor) +"aqZ" = (/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{tag = "icon-manifold (WEST)"; icon_state = "manifold"; dir = 8},/turf/open/floor/plasteel/red/side{dir = 10},/area/security/brig) +"ara" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (WEST)"; icon_state = "intact"; dir = 8},/turf/open/floor/plasteel,/area/security/brig) +"arb" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (WEST)"; icon_state = "intact"; dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/side,/area/security/brig) +"arc" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (WEST)"; icon_state = "intact"; dir = 8},/obj/machinery/door_timer{id = "Cell 1"; name = "Cell 1"; pixel_y = -32},/turf/open/floor/plasteel/red/side,/area/security/brig) +"ard" = (/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{tag = "icon-manifold (NORTH)"; icon_state = "manifold"; dir = 1},/turf/open/floor/plasteel/red/side,/area/security/brig) +"are" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (WEST)"; icon_state = "intact"; dir = 8},/obj/machinery/door_timer{id = "Cell 2"; name = "Cell 2"; pixel_y = -32},/turf/open/floor/plasteel/red/side,/area/security/brig) +"arf" = (/obj/machinery/atmospherics/pipe/manifold/cyan/hidden,/turf/open/floor/plasteel,/area/security/brig) +"arg" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (WEST)"; icon_state = "intact"; dir = 8},/obj/machinery/door_timer{id = "Cell 3"; name = "Cell 3"; pixel_y = -32},/turf/open/floor/plasteel/red/side,/area/security/brig) +"arh" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (WEST)"; icon_state = "intact"; dir = 8},/turf/open/floor/plasteel/red/side,/area/security/brig) +"ari" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/cyan/hidden,/turf/open/floor/plasteel/red/side,/area/security/brig) +"arj" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (WEST)"; icon_state = "intact"; dir = 8},/turf/open/floor/plasteel/red/side,/area/security/brig) +"ark" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (WEST)"; icon_state = "intact"; dir = 8},/turf/open/floor/plasteel/red/side{dir = 6},/area/security/brig) +"arl" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (WEST)"; icon_state = "intact"; dir = 8},/turf/closed/wall,/area/security/brig) +"arm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (WEST)"; icon_state = "intact"; dir = 8},/turf/open/floor/plasteel/black,/area/security/brig) +"arn" = (/obj/structure/chair{dir = 4},/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (WEST)"; icon_state = "intact"; dir = 8},/turf/open/floor/plasteel/black,/area/security/brig) +"aro" = (/obj/structure/table,/obj/item/weapon/folder/red,/obj/item/device/taperecorder{pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (WEST)"; icon_state = "intact"; dir = 8},/turf/open/floor/plasteel/black,/area/security/brig) +"arp" = (/obj/structure/chair{dir = 8},/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (WEST)"; icon_state = "intact"; dir = 8},/turf/open/floor/plasteel/black,/area/security/brig) +"arq" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (SOUTHWEST)"; icon_state = "intact"; dir = 10},/turf/open/floor/plasteel/black,/area/security/brig) +"arr" = (/turf/closed/wall/r_wall,/area/bridge) +"ars" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/closed/wall/r_wall,/area/bridge) +"art" = (/obj/structure/chair/office/dark{dir = 1},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/keycard_auth{pixel_x = -28; pixel_y = 9},/obj/machinery/button/door{id = "bridge blast"; name = "Bridge Entrance Lockdown"; pixel_x = -28; pixel_y = -2; req_access_txt = "19"},/turf/open/floor/plasteel/darkgreen/side{dir = 8},/area/bridge) +"aru" = (/obj/structure/chair/office/dark{dir = 1},/turf/open/floor/plasteel/black,/area/bridge) +"arv" = (/turf/open/floor/plasteel/black,/area/bridge) +"arw" = (/obj/structure/chair/office/dark{dir = 1},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/button/door{id = "bridgespace"; name = "Bridge Space Lockdown"; pixel_x = 28; pixel_y = 8; req_access_txt = "19"},/obj/machinery/button/door{id = "bridge blast"; name = "Bridge Entrance Lockdown"; pixel_x = 28; pixel_y = -2; req_access_txt = "19"},/turf/open/floor/plasteel/darkred/side{dir = 4},/area/bridge) +"arx" = (/obj/structure/cable{icon_state = "1-8"},/turf/closed/wall/r_wall,/area/bridge) +"ary" = (/turf/closed/wall,/area/bridge) +"arz" = (/obj/structure/closet/secure_closet/freezer/money,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka/badminka,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass,/obj/item/clothing/head/bearpelt,/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/nuke_storage) +"arA" = (/obj/machinery/light_switch{pixel_y = 28},/turf/open/floor/plasteel/circuit/gcircuit{luminosity = 2},/area/ai_monitored/nuke_storage) +"arB" = (/obj/machinery/airalarm{pixel_y = 23},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/circuit/gcircuit{luminosity = 2},/area/ai_monitored/nuke_storage) +"arC" = (/obj/machinery/power/apc{dir = 1; name = "Vault APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plasteel/circuit/gcircuit{luminosity = 2},/area/ai_monitored/nuke_storage) +"arD" = (/obj/structure/filingcabinet,/obj/item/weapon/folder/documents,/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/nuke_storage) +"arE" = (/obj/machinery/power/apc{dir = 8; name = "Dormitory Maintenance APC"; pixel_x = -24; pixel_y = 0},/obj/structure/cable,/obj/machinery/light/small,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/fsmaint) +"arF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/crew_quarters/sleep) +"arG" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-24"; layer = 4.1},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel/barber,/area/crew_quarters/sleep) +"arH" = (/obj/machinery/light,/obj/machinery/camera{c_tag = "Laundry Room"; dir = 1},/turf/open/floor/plasteel/barber,/area/crew_quarters/sleep) +"arI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/barber,/area/crew_quarters/sleep) +"arJ" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/plasteel/barber,/area/crew_quarters/sleep) +"arK" = (/obj/structure/closet/emcloset,/turf/open/floor/plating,/area/crew_quarters/sleep) +"arL" = (/turf/open/floor/plating,/area/crew_quarters/sleep) +"arM" = (/obj/machinery/light/small{dir = 4},/obj/machinery/space_heater,/turf/open/floor/plating,/area/crew_quarters/sleep) +"arN" = (/obj/structure/closet,/obj/item/weapon/weldingtool,/obj/item/weapon/wrench,/obj/item/weapon/crowbar,/turf/open/floor/plating,/area/maintenance/fsmaint) +"arO" = (/turf/closed/wall,/area/crew_quarters/fitness{name = "Recreation Room"}) +"arP" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/obj/item/clothing/mask/balaclava,/turf/open/floor/plating,/area/maintenance/fsmaint) +"arQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/open/floor/plasteel/circuit/gcircuit,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"arR" = (/turf/open/floor/plasteel/circuit/gcircuit,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"arS" = (/turf/open/floor/mineral/titanium/blue,/area/shuttle/labor) +"arT" = (/obj/machinery/mineral/labor_claim_console{machinedir = 1; pixel_x = 30; pixel_y = 0},/turf/open/floor/mineral/titanium/blue,/area/shuttle/labor) +"arU" = (/turf/open/space,/area/security/brig) +"arV" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/open/floor/plating,/area/security/brig) +"arW" = (/obj/machinery/door/window/brigdoor{id = "Cell 1"; name = "Cell 1"; req_access_txt = "1"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/red/side,/area/security/brig) +"arX" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/security/brig) +"arY" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/closed/wall,/area/security/brig) +"arZ" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/open/floor/plating,/area/security/brig) +"asa" = (/obj/machinery/door/window/brigdoor{id = "Cell 2"; name = "Cell 2"; req_access_txt = "1"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/red/side,/area/security/brig) +"asb" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/closed/wall,/area/security/brig) +"asc" = (/obj/machinery/door/window/brigdoor{id = "Cell 3"; name = "Cell 3"; req_access_txt = "1"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/red/side,/area/security/brig) +"asd" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/security/brig) +"ase" = (/obj/machinery/door/airlock/glass_security{cyclelinkeddir = 2; id_tag = "innerbrig"; name = "Brig"; req_access_txt = "63"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/side{dir = 8},/area/security/brig) +"asf" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/brig) +"asg" = (/obj/machinery/door/airlock/glass_security{cyclelinkeddir = 2; id_tag = "innerbrig"; name = "Brig"; req_access_txt = "63"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/red/side{tag = "icon-red (EAST)"; dir = 4},/area/security/brig) +"ash" = (/obj/machinery/door/airlock/glass_security{name = "Brig Desk"; req_access_txt = "1"},/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/open/floor/plasteel/black,/area/security/brig) +"asi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/security/brig) +"asj" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel/black,/area/security/brig) +"ask" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/command{name = "Emergency Escape"; req_access = null; req_access_txt = "20"},/turf/open/floor/plating,/area/maintenance/fore) +"asl" = (/obj/structure/window/reinforced,/turf/open/space,/area/space) +"asm" = (/obj/machinery/computer/atmos_alert,/turf/open/floor/plasteel/darkpurple,/area/bridge) +"asn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/darkpurple/side{dir = 8},/area/bridge) +"aso" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (EAST)"; dir = 4},/area/bridge) +"asp" = (/turf/open/floor/plasteel/darkblue/side{dir = 1},/area/bridge) +"asq" = (/obj/item/device/radio/beacon,/turf/open/floor/plasteel/darkblue/side{dir = 1},/area/bridge) +"asr" = (/turf/open/floor/plasteel/darkblue/corner{dir = 1},/area/bridge) +"ass" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/darkyellow/side{dir = 4},/area/bridge) +"ast" = (/obj/machinery/computer/shuttle/labor,/turf/open/floor/plasteel/darkyellow,/area/bridge) +"asu" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 2; name = "Bridge External Access"; req_access = null; req_access_txt = "10;13"},/turf/open/floor/plating,/area/bridge) +"asv" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/vault{dir = 1},/area/ai_monitored/nuke_storage) +"asw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/circuit/gcircuit{luminosity = 2},/area/ai_monitored/nuke_storage) +"asx" = (/obj/machinery/nuclearbomb/selfdestruct,/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/nuke_storage) +"asy" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/circuit/gcircuit{luminosity = 2},/area/ai_monitored/nuke_storage) +"asz" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/vault{dir = 4},/area/ai_monitored/nuke_storage) +"asA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/crew_quarters/sleep) +"asB" = (/obj/machinery/door/airlock{name = "Laundry Room"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/barber,/area/crew_quarters/sleep) +"asC" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance,/obj/item/weapon/storage/box/lights/mixed,/turf/open/floor/plating,/area/maintenance/fsmaint) +"asD" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/fsmaint) +"asE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/grille/broken,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint) +"asF" = (/obj/effect/spawner/lootdrop/maintenance,/obj/structure/cable{icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/fsmaint) +"asG" = (/turf/open/floor/engine{name = "Holodeck Projector Floor"},/area/holodeck/rec_center) +"asH" = (/obj/machinery/mech_bay_recharge_port,/obj/structure/cable,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"asI" = (/obj/item/clothing/head/collectable/police,/turf/open/floor/mech_bay_recharge_floor,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"asJ" = (/obj/machinery/computer/mech_bay_power_console,/obj/structure/cable,/turf/open/floor/plasteel,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"asK" = (/obj/structure/chair{dir = 4},/turf/open/floor/mineral/titanium/blue,/area/shuttle/labor) +"asL" = (/obj/structure/chair{dir = 8},/obj/machinery/flasher{id = "gulagshuttleflasher"; pixel_x = 25},/turf/open/floor/mineral/titanium/blue,/area/shuttle/labor) +"asM" = (/obj/item/device/radio/intercom{desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; pixel_x = -25; pixel_y = -2; prison_radio = 1},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel/floorgrime,/area/security/brig) +"asN" = (/turf/open/floor/plasteel/floorgrime,/area/security/brig) +"asO" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/floorgrime,/area/security/brig) +"asP" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/floorgrime,/area/security/brig) +"asQ" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/flasher{id = "brigentry"; pixel_x = -28},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/brig) +"asR" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/red/side{tag = "icon-red (EAST)"; dir = 4},/area/security/brig) +"asS" = (/obj/structure/table/reinforced,/obj/machinery/door/window/eastleft{dir = 8; name = "Brig Desk"; req_access_txt = "1"},/obj/item/weapon/paper_bin{pixel_x = 0; pixel_y = 0; tag = "every single paper bin is edited to this"},/obj/item/weapon/pen{layer = 3.1},/turf/open/floor/plasteel/black,/area/security/brig) +"asT" = (/obj/machinery/computer/secure_data,/obj/machinery/button/door{desc = "A remote control switch for the medbay foyer."; id = "innerbrig"; name = "Brig Interior Doors Control"; normaldoorcontrol = 1; pixel_x = -6; pixel_y = 36; req_access_txt = "63"},/obj/machinery/button/door{desc = "A remote control switch for the medbay foyer."; id = "outerbrig"; name = "Brig Exterior Doors Control"; normaldoorcontrol = 1; pixel_x = -6; pixel_y = 24; req_access_txt = "63"},/obj/machinery/button/flasher{id = "brigentry"; pixel_x = 6; pixel_y = 24},/turf/open/floor/plasteel/black,/area/security/brig) +"asU" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/open/floor/plasteel/black,/area/security/brig) +"asV" = (/obj/machinery/computer/security,/turf/open/floor/plasteel/black,/area/security/brig) +"asW" = (/turf/closed/wall,/area/crew_quarters/captain) +"asX" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/crew_quarters/captain) +"asY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/disposalpipe/segment,/obj/machinery/light/small{dir = 4},/turf/open/floor/plating,/area/maintenance/fore) +"asZ" = (/obj/structure/window/reinforced{dir = 1; layer = 2.9},/turf/open/floor/plasteel/black,/area/crew_quarters/captain) +"ata" = (/obj/machinery/computer/monitor{name = "Bridge Power Monitoring Console"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel/darkpurple,/area/bridge) +"atb" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/darkpurple/side{dir = 8},/area/bridge) +"atc" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (EAST)"; dir = 4},/area/bridge) +"atd" = (/obj/structure/chair/comfy/black,/turf/open/floor/plasteel/black,/area/bridge) +"ate" = (/turf/open/floor/plasteel/darkblue/side{dir = 8},/area/bridge) +"atf" = (/obj/machinery/computer/cargo/request,/turf/open/floor/plasteel/darkyellow,/area/bridge) +"atg" = (/obj/structure/closet/emcloset{anchored = 1; desc = "It's a storage unit for emergency breath masks and O2 tanks, and is securely bolted in place."; name = "anchored emergency closet"},/turf/open/floor/plating,/area/bridge) +"ath" = (/turf/open/floor/plating,/area/bridge) +"ati" = (/obj/machinery/light/small{dir = 4},/obj/machinery/suit_storage_unit/standard_unit,/turf/open/floor/plating,/area/bridge) +"atj" = (/obj/structure/closet/crate{name = "Gold Crate"},/obj/item/stack/sheet/mineral/gold{pixel_x = -1; pixel_y = 5},/obj/item/stack/sheet/mineral/gold{pixel_y = 2},/obj/item/stack/sheet/mineral/gold{pixel_x = 1; pixel_y = -2},/obj/item/weapon/storage/belt/champion,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel/vault{dir = 1},/area/ai_monitored/nuke_storage) +"atk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/circuit/gcircuit{luminosity = 2},/area/ai_monitored/nuke_storage) +"atl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/landmark{name = "revenantspawn"},/turf/open/floor/plasteel/circuit/gcircuit{luminosity = 2},/area/ai_monitored/nuke_storage) +"atm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/circuit/gcircuit{luminosity = 2},/area/ai_monitored/nuke_storage) +"atn" = (/obj/item/weapon/coin/silver{pixel_x = 7; pixel_y = 12},/obj/item/weapon/coin/silver{pixel_x = 12; pixel_y = 7},/obj/item/weapon/coin/silver{pixel_x = 4; pixel_y = 8},/obj/item/weapon/coin/silver{pixel_x = -6; pixel_y = 5},/obj/item/weapon/coin/silver{pixel_x = 5; pixel_y = -8},/obj/structure/closet/crate{name = "Silver Crate"},/turf/open/floor/plasteel/vault{dir = 4},/area/ai_monitored/nuke_storage) +"ato" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/shutters/preopen{id = "Dorm3Shutters"; name = "Dorm Shutters"},/turf/open/floor/plating,/area/crew_quarters/sleep) +"atp" = (/obj/structure/bed,/obj/item/weapon/bedsheet/nanotrasen,/obj/machinery/button/door{id = "Dorm3Shutters"; name = "Privacy Shutters Control"; pixel_x = 0; pixel_y = 26; req_access_txt = "0"},/turf/open/floor/wood,/area/crew_quarters/sleep) +"atq" = (/obj/machinery/light/small{dir = 1},/obj/structure/sign/securearea{desc = "Under the painting a plaque reads: 'While the meat grinder may not have spared you, fear not. Not one part of you has gone to waste... You were delicious.'"; icon_state = "monkey_painting"; name = "Mr. Deempisi portrait"; pixel_x = 0; pixel_y = 28},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/wood,/area/crew_quarters/sleep) +"atr" = (/obj/machinery/button/door{id = "Dorm3"; name = "Dorm Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/structure/closet/secure_closet/personal/cabinet,/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/wood,/area/crew_quarters/sleep) +"ats" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/blue/side{dir = 1},/area/crew_quarters/sleep) +"att" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/requests_console{department = "Crew Quarters"; pixel_y = 30},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/blue/side{dir = 1},/area/crew_quarters/sleep) +"atu" = (/obj/machinery/power/apc{dir = 1; name = "Dormitory Maintenance APC"; pixel_y = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/blue/corner{dir = 1},/area/crew_quarters/sleep) +"atv" = (/obj/machinery/light{dir = 1},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/camera{c_tag = "Dormitories Fore"; dir = 2},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"atw" = (/obj/structure/sign/poster{pixel_y = 32},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"atx" = (/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"aty" = (/obj/structure/sign/pods{pixel_y = 32},/obj/machinery/firealarm{dir = 4; pixel_x = 28},/obj/machinery/portable_atmospherics/scrubber,/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"atz" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/fitness{name = "Recreation Room"}) +"atA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/open/floor/plating,/area/crew_quarters/fitness{name = "Recreation Room"}) +"atB" = (/obj/structure/closet/crate,/turf/open/floor/mineral/titanium/blue,/area/shuttle/labor) +"atC" = (/obj/machinery/door/airlock/shuttle{id_tag = "prisonshuttle"; name = "Labor Shuttle Airlock"},/obj/docking_port/mobile{dir = 8; dwidth = 2; height = 5; id = "laborcamp"; name = "labor camp shuttle"; port_angle = 90; width = 9},/obj/docking_port/stationary{dir = 8; dwidth = 2; height = 5; id = "laborcamp_home"; name = "fore bay 1"; width = 9},/turf/open/floor/mineral/titanium/blue,/area/shuttle/labor) +"atD" = (/obj/machinery/door/airlock/external{name = "Labor Camp Shuttle Airlock"},/turf/open/floor/plasteel/black,/area/security/brig) +"atE" = (/obj/machinery/light/small{dir = 4},/obj/machinery/camera{c_tag = "Labor Shuttle Dock"; dir = 8; network = list("SS13")},/obj/machinery/gulag_item_reclaimer{pixel_y = 24},/turf/open/floor/plasteel/black,/area/security/brig) +"atF" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/machinery/flasher{id = "Cell 1"; pixel_x = -28},/turf/open/floor/plasteel/blue/side,/area/security/brig) +"atG" = (/turf/open/floor/plasteel/blue/side,/area/security/brig) +"atH" = (/obj/structure/closet/secure_closet/brig{id = "Cell 2"; name = "Cell 2 Locker"},/turf/open/floor/plasteel/blue/side,/area/security/brig) +"atI" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/machinery/flasher{id = "Cell 2"; pixel_x = -28},/turf/open/floor/plasteel/green/side,/area/security/brig) +"atJ" = (/turf/open/floor/plasteel/green/side,/area/security/brig) +"atK" = (/obj/structure/closet/secure_closet/brig{id = "Cell 3"; name = "Cell 3 Locker"},/turf/open/floor/plasteel/green/side,/area/security/brig) +"atL" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/machinery/flasher{id = "Cell 3"; pixel_x = -28},/turf/open/floor/plasteel/yellow/side,/area/security/brig) +"atM" = (/turf/open/floor/plasteel/yellow/side,/area/security/brig) +"atN" = (/obj/structure/closet/secure_closet/brig{id = "Cell 3"; name = "Cell 3 Locker"},/turf/open/floor/plasteel/yellow/side,/area/security/brig) +"atO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/side{dir = 8},/area/security/brig) +"atP" = (/obj/structure/table/reinforced,/obj/machinery/door/window/eastleft{dir = 8; name = "Brig Desk"; req_access_txt = "1"},/obj/item/weapon/folder/red,/obj/item/weapon/restraints/handcuffs,/turf/open/floor/plasteel/black,/area/security/brig) +"atQ" = (/obj/structure/chair/office/dark{dir = 8},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/open/floor/plasteel/black,/area/security/brig) +"atR" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/turf/open/floor/plasteel/black,/area/security/brig) +"atS" = (/obj/structure/chair/office/dark,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/security/brig) +"atT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/crew_quarters/captain) +"atU" = (/obj/structure/toilet{dir = 4},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel/freezer,/area/crew_quarters/captain) +"atV" = (/obj/structure/sink{pixel_y = 28},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/freezer,/area/crew_quarters/captain) +"atW" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/freezer,/area/crew_quarters/captain) +"atX" = (/obj/machinery/shower{dir = 1},/obj/item/weapon/soap/deluxe,/obj/item/weapon/bikehorn/rubberducky,/obj/effect/landmark{name = "revenantspawn"},/obj/structure/curtain,/turf/open/floor/plasteel/freezer,/area/crew_quarters/captain) +"atY" = (/obj/machinery/vending/cigarette,/turf/open/floor/plating,/area/maintenance/fore) +"atZ" = (/obj/machinery/door/airlock/command{name = "Balcony"; req_access = null; req_access_txt = "20"},/turf/open/floor/plating,/area/crew_quarters/captain) +"aua" = (/turf/open/floor/plasteel/vault,/area/crew_quarters/captain) +"aub" = (/obj/structure/chair{dir = 1},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/vault,/area/crew_quarters/captain) +"auc" = (/obj/structure/chair{dir = 1},/obj/machinery/light,/obj/machinery/camera{c_tag = "Captain's Balcony"; dir = 1},/turf/open/floor/plasteel/vault,/area/crew_quarters/captain) +"aud" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-20"; layer = 4.1; pixel_y = 3},/turf/open/floor/plasteel/vault,/area/crew_quarters/captain) +"aue" = (/obj/machinery/computer/station_alert,/turf/open/floor/plasteel/darkpurple,/area/bridge) +"auf" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (EAST)"; dir = 4},/area/bridge) +"aug" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/ids{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/box/PDAs,/turf/open/floor/plasteel/black,/area/bridge) +"auh" = (/obj/structure/table/glass,/obj/item/weapon/storage/firstaid/regular,/turf/open/floor/plasteel/black,/area/bridge) +"aui" = (/obj/structure/table/glass,/obj/item/weapon/storage/toolbox/emergency,/turf/open/floor/plasteel/black,/area/bridge) +"auj" = (/obj/structure/table/glass,/obj/item/device/aicard,/turf/open/floor/plasteel/black,/area/bridge) +"auk" = (/obj/structure/table/glass,/obj/item/weapon/restraints/handcuffs,/obj/item/device/assembly/flash/handheld,/obj/item/device/laser_pointer/blue,/turf/open/floor/plasteel/black,/area/bridge) +"aul" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/darkblue/side{dir = 8},/area/bridge) +"aum" = (/obj/machinery/computer/security/mining,/turf/open/floor/plasteel/darkyellow,/area/bridge) +"aun" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 1; name = "Bridge External Access"; req_access = null; req_access_txt = "10;13"},/turf/open/floor/plating,/area/bridge) +"auo" = (/obj/structure/window/reinforced/fulltile,/obj/structure/transit_tube{icon_state = "N-S"},/turf/open/floor/plating,/area/bridge) +"aup" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/statue/gold/hop,/turf/open/floor/plasteel/vault{dir = 1},/area/ai_monitored/nuke_storage) +"auq" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/black,/area/ai_monitored/nuke_storage) +"aur" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/black,/area/ai_monitored/nuke_storage) +"aus" = (/obj/machinery/camera/motion{c_tag = "Vault"; dir = 1; network = list("SS13")},/obj/machinery/light,/obj/structure/cable{icon_state = "1-8"},/turf/open/floor/plasteel/black,/area/ai_monitored/nuke_storage) +"aut" = (/obj/structure/safe,/obj/item/weapon/bikehorn/golden,/obj/item/ammo_box/a357,/obj/item/weapon/tank/internals/plasma/full,/obj/item/weapon/disk/fakenucleardisk,/obj/item/weapon/gun/energy/disabler,/turf/open/floor/plasteel/vault{dir = 4},/area/ai_monitored/nuke_storage) +"auu" = (/obj/structure/table/wood,/obj/item/weapon/storage/book/bible,/turf/open/floor/wood,/area/crew_quarters/sleep) +"auv" = (/obj/structure/chair/wood/normal{icon_state = "wooden_chair"; dir = 8},/turf/open/floor/wood,/area/crew_quarters/sleep) +"auw" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/wood{icon_state = "wood-broken7"},/area/crew_quarters/sleep) +"aux" = (/obj/machinery/door/airlock{id_tag = "Dorm3"; name = "Dorm 3"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/vault{dir = 5},/area/crew_quarters/sleep) +"auy" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"auz" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 2},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"auA" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"auB" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/holopad,/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"auC" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"auD" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/crew_quarters/fitness{name = "Recreation Room"}) +"auE" = (/obj/structure/closet/athletic_mixed,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/arrival{dir = 1},/area/crew_quarters/fitness{name = "Recreation Room"}) +"auF" = (/obj/structure/closet/lasertag/blue,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/airalarm{pixel_y = 22},/turf/open/floor/plasteel/arrival{dir = 1},/area/crew_quarters/fitness{name = "Recreation Room"}) +"auG" = (/obj/structure/closet/lasertag/red,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/computer/security/telescreen/entertainment{pixel_y = 32},/turf/open/floor/plasteel/arrival{dir = 1},/area/crew_quarters/fitness{name = "Recreation Room"}) +"auH" = (/obj/machinery/disposal/bin,/obj/machinery/light{dir = 1},/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/sign/poster{pixel_y = 32},/obj/machinery/camera{c_tag = "Fitness Room"; dir = 2},/turf/open/floor/plasteel/arrival{dir = 1},/area/crew_quarters/fitness{name = "Recreation Room"}) +"auI" = (/obj/machinery/vending/clothing,/turf/open/floor/plasteel/arrival{dir = 1},/area/crew_quarters/fitness{name = "Recreation Room"}) +"auJ" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-05"; layer = 4.1},/obj/machinery/power/apc{dir = 1; name = "Fitness Room APC"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel,/area/crew_quarters/fitness{name = "Recreation Room"}) +"auK" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/crew_quarters/fitness{name = "Recreation Room"}) +"auL" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"auM" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"auN" = (/obj/effect/spawner/lootdrop/maintenance,/obj/effect/decal/cleanable/cobweb{icon_state = "cobweb2"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"auO" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1; layer = 2.9},/turf/open/floor/plating,/area/shuttle/labor) +"auP" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Labor Camp Shuttle Airlock"; req_access_txt = "0"},/turf/open/floor/plasteel/black,/area/security/brig) +"auQ" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "Secure Gate"; name = "brig shutters"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/brig) +"auR" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "Secure Gate"; name = "brig shutters"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/brig) +"auS" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/closed/wall,/area/security/brig) +"auT" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "Secure Gate"; name = "brig shutters"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/brig) +"auU" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{cyclelinkeddir = 1; id_tag = "outerbrig"; name = "Brig"; req_access_txt = "63"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/side{dir = 8},/area/security/brig) +"auV" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable,/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "Secure Gate"; name = "brig shutters"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/brig) +"auW" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{cyclelinkeddir = 1; id_tag = "outerbrig"; name = "Brig"; req_access_txt = "63"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/red/side{tag = "icon-red (EAST)"; dir = 4},/area/security/brig) +"auX" = (/obj/structure/table/reinforced,/obj/machinery/door/window/southleft{base_state = "right"; dir = 1; icon_state = "right"; name = "Brig Desk"; req_access_txt = "1"},/obj/machinery/door/poddoor/preopen{id = "Secure Gate"; name = "brig shutters"},/obj/item/device/radio,/turf/open/floor/plasteel/black,/area/security/brig) +"auY" = (/obj/machinery/door/window/southleft{base_state = "right"; dir = 1; icon_state = "right"; name = "Brig Desk"; req_access_txt = "1"},/obj/item/weapon/reagent_containers/food/snacks/donut{layer = 3},/obj/machinery/door/poddoor/preopen{id = "Secure Gate"; name = "brig shutters"},/obj/structure/table/reinforced,/obj/item/weapon/folder/red{layer = 2.9},/turf/open/floor/plasteel/black,/area/security/brig) +"auZ" = (/obj/structure/table/reinforced,/obj/machinery/door/window/southleft{base_state = "right"; dir = 1; icon_state = "right"; layer = 2.7; name = "Brig Desk"; req_access_txt = "1"},/obj/item/weapon/pen{layer = 3},/obj/machinery/door/poddoor/preopen{id = "Secure Gate"; name = "brig shutters"},/turf/open/floor/plasteel/black,/area/security/brig) +"ava" = (/turf/closed/wall/r_wall,/area/crew_quarters/captain) +"avb" = (/obj/machinery/door/airlock{name = "Private Restroom"; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/freezer,/area/crew_quarters/captain) +"avc" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/command{name = "Captain's Office Access"; req_access = null; req_access_txt = "20"},/turf/open/floor/plating,/area/crew_quarters/captain) +"avd" = (/obj/machinery/light{dir = 8},/obj/machinery/firealarm{dir = 4; pixel_x = -28},/turf/open/floor/plasteel/darkblue/side{dir = 8},/area/bridge) +"ave" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/bridge) +"avf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (EAST)"; dir = 4},/area/bridge) +"avg" = (/obj/structure/chair/comfy/black{dir = 1},/turf/open/floor/plasteel/black,/area/bridge) +"avh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/darkblue/side{dir = 8},/area/bridge) +"avi" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/firealarm{dir = 4; pixel_x = 28},/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (EAST)"; dir = 4},/area/bridge) +"avj" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "bridgespace"; name = "bridge external shutters"; opacity = 0},/turf/open/floor/plasteel/vault{dir = 8},/area/bridge) +"avk" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/black,/area/bridge) +"avl" = (/obj/machinery/camera{c_tag = "Bridge MiniSat Access"; dir = 4; network = list("SS13")},/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel,/area/bridge) +"avm" = (/obj/structure/transit_tube{icon_state = "N-S"},/turf/open/floor/plating/warnplate{dir = 8},/area/bridge) +"avn" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/bridge) +"avo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/closed/wall/r_wall,/area/ai_monitored/nuke_storage) +"avp" = (/obj/structure/sign/securearea,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/closed/wall/r_wall,/area/ai_monitored/nuke_storage) +"avq" = (/obj/machinery/door/airlock/vault{icon_state = "door_locked"; locked = 1; req_access_txt = "53"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/vault,/area/ai_monitored/nuke_storage) +"avr" = (/obj/structure/sign/securearea,/turf/closed/wall/r_wall,/area/ai_monitored/nuke_storage) +"avs" = (/obj/structure/sign/poster{pixel_x = -32},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"avt" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/carpet,/area/crew_quarters/sleep) +"avu" = (/obj/structure/chair/comfy/brown,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/carpet,/area/crew_quarters/sleep) +"avv" = (/obj/structure/chair/comfy/brown,/obj/effect/landmark/start{name = "Assistant"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/carpet,/area/crew_quarters/sleep) +"avw" = (/obj/structure/chair/comfy/brown,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/carpet,/area/crew_quarters/sleep) +"avx" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/carpet,/area/crew_quarters/sleep) +"avy" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"avz" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/crew_quarters/fitness{name = "Recreation Room"}) +"avA" = (/turf/open/floor/plasteel,/area/crew_quarters/fitness{name = "Recreation Room"}) +"avB" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1},/turf/open/floor/plasteel,/area/crew_quarters/fitness{name = "Recreation Room"}) +"avC" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Holodeck Door"},/turf/open/floor/plasteel,/area/crew_quarters/fitness{name = "Recreation Room"}) +"avD" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel,/area/crew_quarters/fitness{name = "Recreation Room"}) +"avE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/plasteel,/area/crew_quarters/fitness{name = "Recreation Room"}) +"avF" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/auxsolarport{name = "Port Solar Maintenance"}) +"avG" = (/turf/closed/wall,/area/maintenance/auxsolarport{name = "Port Solar Maintenance"}) +"avH" = (/obj/structure/shuttle/engine/propulsion,/turf/open/floor/plating,/area/shuttle/labor) +"avI" = (/obj/machinery/door/poddoor/preopen{id = "prison release"; name = "prisoner processing blast door"},/turf/open/floor/plasteel/delivery{name = "floor"},/area/security/brig) +"avJ" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-10"; layer = 4.1},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"avK" = (/turf/open/floor/plasteel,/area/hallway/primary/fore) +"avL" = (/obj/machinery/light{dir = 1},/obj/machinery/airalarm{pixel_y = 22},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"avM" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/primary/fore) +"avN" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/hallway/primary/fore) +"avO" = (/turf/open/floor/plasteel/red/side{dir = 4},/area/hallway/primary/fore) +"avP" = (/obj/structure/dresser,/obj/structure/sign/securearea{desc = "Under the painting a plaque reads: 'While the meat grinder may not have spared you, fear not. Not one part of you has gone to waste... You were delicious.'"; icon_state = "monkey_painting"; name = "Mr. Deempisi portrait"; pixel_x = 0; pixel_y = 28},/turf/open/floor/plasteel/grimy,/area/crew_quarters/captain) +"avQ" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/grimy,/area/crew_quarters/captain) +"avR" = (/obj/structure/closet/secure_closet/captains,/obj/machinery/light{dir = 1},/obj/machinery/camera{c_tag = "Captain's Quarters"; dir = 2},/obj/item/clothing/suit/armor/riot/knight/blue,/obj/item/clothing/head/helmet/knight/blue,/turf/open/floor/plasteel/grimy,/area/crew_quarters/captain) +"avS" = (/obj/machinery/suit_storage_unit/captain,/turf/open/floor/plasteel/grimy,/area/crew_quarters/captain) +"avT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (NORTH)"; dir = 1},/area/crew_quarters/captain) +"avU" = (/obj/machinery/power/apc{cell_type = 2500; dir = 1; name = "Captain's Office APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/carpet,/area/crew_quarters/captain) +"avV" = (/obj/structure/table/wood,/obj/machinery/recharger,/obj/machinery/requests_console{announcementConsole = 1; department = "Captain's Desk"; departmentType = 5; name = "Captain RC"; pixel_x = 0; pixel_y = 30},/turf/open/floor/carpet,/area/crew_quarters/captain) +"avW" = (/obj/machinery/computer/card,/obj/item/weapon/card/id/captains_spare,/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 26},/turf/open/floor/carpet,/area/crew_quarters/captain) +"avX" = (/obj/machinery/computer/communications,/obj/machinery/airalarm{pixel_y = 22},/turf/open/floor/carpet,/area/crew_quarters/captain) +"avY" = (/obj/structure/filingcabinet/employment,/turf/open/floor/carpet,/area/crew_quarters/captain) +"avZ" = (/obj/structure/extinguisher_cabinet{pixel_x = -24},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel/darkblue/side{dir = 8},/area/bridge) +"awa" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/bridge) +"awb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/darkblue/corner,/area/bridge) +"awc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/bridge) +"awd" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/darkblue/side,/area/bridge) +"awe" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/darkblue/corner{dir = 8},/area/bridge) +"awf" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (EAST)"; dir = 4},/area/bridge) +"awg" = (/obj/machinery/door/airlock/command{name = "External Access"; req_access_txt = "0"; req_one_access_txt = "19; 65"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/bridge) +"awh" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "bridgespace"; name = "bridge external shutters"; opacity = 0},/turf/open/floor/plasteel/vault{dir = 8},/area/bridge) +"awi" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/black,/area/bridge) +"awj" = (/obj/machinery/door/airlock/command{name = "MiniSat Access"; req_access_txt = "65"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/vault{dir = 5},/area/bridge) +"awk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/plasteel,/area/bridge) +"awl" = (/obj/structure/transit_tube_pod,/obj/structure/transit_tube/station{dir = 8; icon_state = "closed"; reverse_launch = 1},/turf/open/floor/plating/warnplate{dir = 8},/area/bridge) +"awm" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/hallway/primary/central) +"awn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/stairs,/area/hallway/primary/central) +"awo" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/hallway/primary/central) +"awp" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/shutters/preopen{id = "Dorm2Shutters"; name = "Dorm Shutters"},/turf/open/floor/plating,/area/crew_quarters/sleep) +"awq" = (/obj/structure/bed,/obj/item/weapon/bedsheet/nanotrasen,/obj/machinery/button/door{id = "Dorm2Shutters"; name = "Privacy Shutters Control"; pixel_x = 0; pixel_y = 26; req_access_txt = "0"},/turf/open/floor/carpet,/area/crew_quarters/sleep) +"awr" = (/obj/machinery/light/small{dir = 1},/obj/structure/sign/securearea{desc = "Under the painting a plaque reads: 'While the meat grinder may not have spared you, fear not. Not one part of you has gone to waste... You were delicious.'"; icon_state = "monkey_painting"; name = "Mr. Deempisi portrait"; pixel_x = 0; pixel_y = 28},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/carpet,/area/crew_quarters/sleep) +"aws" = (/obj/machinery/button/door{id = "Dorm2"; name = "Dorm Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/structure/closet/secure_closet/personal/cabinet,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/carpet,/area/crew_quarters/sleep) +"awt" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/extinguisher_cabinet{pixel_x = -24},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"awu" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/carpet,/area/crew_quarters/sleep) +"awv" = (/obj/structure/table/wood,/obj/item/weapon/storage/pill_bottle/dice,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (EAST)"; dir = 4},/turf/open/floor/carpet,/area/crew_quarters/sleep) +"aww" = (/obj/structure/table/wood,/obj/item/weapon/pen{layer = 4},/obj/item/weapon/paper_bin{layer = 2.9; pixel_x = 0; pixel_y = 0; tag = "every single paper bin is edited to this"},/turf/open/floor/carpet,/area/crew_quarters/sleep) +"awx" = (/obj/structure/table/wood,/obj/item/weapon/storage/backpack,/turf/open/floor/carpet,/area/crew_quarters/sleep) +"awy" = (/turf/open/floor/carpet,/area/crew_quarters/sleep) +"awz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"awA" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Recreation Room"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/fitness{name = "Recreation Room"}) +"awB" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/fitness{name = "Recreation Room"}) +"awC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel,/area/crew_quarters/fitness{name = "Recreation Room"}) +"awD" = (/obj/machinery/computer/holodeck,/turf/open/floor/plasteel,/area/crew_quarters/fitness{name = "Recreation Room"}) +"awE" = (/obj/structure/chair{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/crew_quarters/fitness{name = "Recreation Room"}) +"awF" = (/obj/structure/lattice/catwalk,/obj/structure/cable,/turf/open/space,/area/solar/starboard{name = "Starboard Solar Array"}) +"awG" = (/obj/structure/lattice/catwalk,/obj/structure/cable,/turf/open/space,/area/solar/port{name = "Port Solar Array"}) +"awH" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = -32; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/auxsolarport{name = "Port Solar Maintenance"}) +"awI" = (/obj/machinery/power/solar_control{id = "portsolar"; name = "Port Solar Control"; track = 0},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plating,/area/maintenance/auxsolarport{name = "Port Solar Maintenance"}) +"awJ" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/maintenance/auxsolarport{name = "Port Solar Maintenance"}) +"awK" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 1; name = "Port Solar APC"; pixel_x = 0; pixel_y = 24},/turf/open/floor/plating,/area/maintenance/auxsolarport{name = "Port Solar Maintenance"}) +"awL" = (/obj/structure/closet/firecloset,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"awM" = (/obj/machinery/button/door{id = "prison release"; name = "Labor Camp Shuttle Lockdown"; pixel_x = -25; pixel_y = 0; req_access_txt = "2"},/turf/open/floor/plasteel/red/side{dir = 8},/area/hallway/primary/fore) +"awN" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"awO" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"awP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"awQ" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=BrigS2"; location = "BrigP"},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"awR" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"awS" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"awT" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"awU" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/primary/fore) +"awV" = (/obj/machinery/holopad,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=BrigP"; location = "BrigS1"},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"awW" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"awX" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"awY" = (/obj/item/device/radio/beacon,/turf/open/floor/plasteel,/area/hallway/primary/fore) +"awZ" = (/obj/structure/sign/poster{pixel_x = 32},/turf/open/floor/plasteel/red/side{dir = 4},/area/hallway/primary/fore) +"axa" = (/obj/structure/bed,/obj/item/weapon/bedsheet/captain,/turf/open/floor/plasteel/grimy,/area/crew_quarters/captain) +"axb" = (/turf/open/floor/plasteel/grimy,/area/crew_quarters/captain) +"axc" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/grimy,/area/crew_quarters/captain) +"axd" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/grimy,/area/crew_quarters/captain) +"axe" = (/obj/machinery/door/airlock/command{name = "Captain's Quarters"; req_access = null; req_access_txt = "20"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/crew_quarters/captain) +"axf" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/crew_quarters/captain) +"axg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/carpet,/area/crew_quarters/captain) +"axh" = (/obj/machinery/door/window{dir = 8; name = "Captain's Desk"; req_access_txt = "20"},/turf/open/floor/carpet,/area/crew_quarters/captain) +"axi" = (/turf/open/floor/carpet,/area/crew_quarters/captain) +"axj" = (/obj/structure/chair/comfy/black,/obj/effect/landmark/start{name = "Captain"},/turf/open/floor/carpet,/area/crew_quarters/captain) +"axk" = (/obj/item/weapon/storage/secure/safe{pixel_x = 35; pixel_y = 5},/turf/open/floor/carpet,/area/crew_quarters/captain) +"axl" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/darkblue/side{dir = 8},/area/bridge) +"axm" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/black,/area/bridge) +"axn" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -28},/turf/open/floor/plasteel/black,/area/bridge) +"axo" = (/obj/structure/fireaxecabinet{pixel_y = -32},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/bridge) +"axp" = (/obj/machinery/light,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/airalarm{dir = 1; pixel_y = -22},/turf/open/floor/plasteel/black,/area/bridge) +"axq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/requests_console{announcementConsole = 1; department = "Bridge"; departmentType = 5; name = "Bridge RC"; pixel_y = -30},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/bridge) +"axr" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/turf/open/floor/plasteel/black,/area/bridge) +"axs" = (/obj/machinery/turretid{control_area = "AI Upload Chamber"; name = "AI Upload turret control"; pixel_y = -25},/obj/machinery/camera{c_tag = "Bridge Central"; dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/bridge) +"axt" = (/obj/machinery/light,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/newscaster{pixel_y = -28},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/bridge) +"axu" = (/obj/machinery/power/apc{cell_type = 10000; dir = 2; name = "Bridge APC"; pixel_y = -24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/bridge) +"axv" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -28},/turf/open/floor/plasteel/black,/area/bridge) +"axw" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/black,/area/bridge) +"axx" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (EAST)"; dir = 4},/area/bridge) +"axy" = (/obj/machinery/light,/obj/machinery/camera{c_tag = "Bridge External Access"; dir = 1; network = list("SS13")},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/bridge) +"axz" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/bridge) +"axA" = (/obj/structure/transit_tube{tag = "icon-Block (NORTH)"; icon_state = "Block"; dir = 1},/turf/open/floor/plating/warnplate{dir = 8},/area/bridge) +"axB" = (/turf/closed/wall/r_wall,/area/hallway/primary/central) +"axC" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/primary/central) +"axD" = (/obj/structure/table/wood,/obj/item/weapon/storage/book/bible,/turf/open/floor/carpet,/area/crew_quarters/sleep) +"axE" = (/obj/structure/chair/wood/normal{icon_state = "wooden_chair"; dir = 8},/turf/open/floor/carpet,/area/crew_quarters/sleep) +"axF" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/carpet,/area/crew_quarters/sleep) +"axG" = (/obj/machinery/door/airlock{id_tag = "Dorm2"; name = "Dorm 2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/vault{dir = 5},/area/crew_quarters/sleep) +"axH" = (/obj/structure/disposalpipe/segment,/turf/open/floor/carpet,/area/crew_quarters/sleep) +"axI" = (/obj/structure/table/wood,/obj/item/weapon/storage/crayons,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/carpet,/area/crew_quarters/sleep) +"axJ" = (/obj/structure/table/wood,/obj/item/device/paicard,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/carpet,/area/crew_quarters/sleep) +"axK" = (/obj/structure/table/wood,/obj/item/toy/cards/deck{pixel_x = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/carpet,/area/crew_quarters/sleep) +"axL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/carpet,/area/crew_quarters/sleep) +"axM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"axN" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Recreation Room"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/fitness{name = "Recreation Room"}) +"axO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/fitness{name = "Recreation Room"}) +"axP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel,/area/crew_quarters/fitness{name = "Recreation Room"}) +"axQ" = (/obj/structure/table,/obj/item/weapon/paper{desc = ""; info = "Brusies sustained in the holodeck can be healed simply by sleeping."; name = "Holodeck Disclaimer"},/turf/open/floor/plasteel,/area/crew_quarters/fitness{name = "Recreation Room"}) +"axR" = (/obj/structure/chair{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/camera{c_tag = "Holodeck"; dir = 8},/turf/open/floor/plasteel,/area/crew_quarters/fitness{name = "Recreation Room"}) +"axS" = (/obj/machinery/power/tracker,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel/airless/solarpanel,/area/solar/port{name = "Port Solar Array"}) +"axT" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/space,/area/solar/port{name = "Port Solar Array"}) +"axU" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/space,/area/solar/port{name = "Port Solar Array"}) +"axV" = (/obj/structure/lattice/catwalk,/obj/item/stack/cable_coil,/turf/open/space,/area/solar/starboard{name = "Starboard Solar Array"}) +"axW" = (/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port{name = "Port Solar Array"}) +"axX" = (/obj/structure/lattice/catwalk,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/space,/area/solar/port{name = "Port Solar Array"}) +"axY" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/airlock/external{cyclelinkeddir = 4; name = "Solar Maintenance"; req_access = null; req_access_txt = "10; 13"},/turf/open/floor/plating,/area/maintenance/auxsolarport{name = "Port Solar Maintenance"}) +"axZ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating,/area/maintenance/auxsolarport{name = "Port Solar Maintenance"}) +"aya" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/airlock/external{cyclelinkeddir = 8; name = "Solar Maintenance"; req_access = null; req_access_txt = "10; 13"},/turf/open/floor/plating,/area/maintenance/auxsolarport{name = "Port Solar Maintenance"}) +"ayb" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating,/area/maintenance/auxsolarport{name = "Port Solar Maintenance"}) +"ayc" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating,/area/maintenance/auxsolarport{name = "Port Solar Maintenance"}) +"ayd" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating,/area/maintenance/auxsolarport{name = "Port Solar Maintenance"}) +"aye" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/door/airlock/engineering{name = "Port Solar Access"; req_access_txt = "10"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating,/area/maintenance/auxsolarport{name = "Port Solar Maintenance"}) +"ayf" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"ayg" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating{broken = 1; icon_state = "platingdmg1"},/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"ayh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/light/small{dir = 1},/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"ayi" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/item/weapon/vending_refill/cigarette,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"ayj" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"ayk" = (/obj/structure/plasticflaps,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"ayl" = (/mob/living/simple_animal/bot/secbot/beepsky{name = "Officer Beepsky"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"aym" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/potato{name = "\improper Beepsky's emergency battery"},/obj/item/weapon/paper{info = "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"; name = "Note from Beepsky's Mom"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"ayn" = (/obj/machinery/power/apc{dir = 8; name = "Fore Primary Hallway APC"; pixel_x = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel/red/side{dir = 8},/area/hallway/primary/fore) +"ayo" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"ayp" = (/obj/machinery/light,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"ayq" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/fore) +"ayr" = (/obj/machinery/camera{c_tag = "Fore Primary Hallway Port"; dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"ays" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"ayt" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"ayu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"ayv" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"ayw" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=Tool"; location = "BrigS2"},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"ayx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"ayy" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"ayz" = (/obj/machinery/light,/obj/machinery/camera{c_tag = "Fore Primary Hallway Starboard"; dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"ayA" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-14"; layer = 4.1},/turf/open/floor/plasteel/red/side{dir = 4},/area/hallway/primary/fore) +"ayB" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green,/turf/open/floor/plasteel/grimy,/area/crew_quarters/captain) +"ayC" = (/obj/structure/table/wood,/obj/item/weapon/storage/box/matches,/obj/item/weapon/razor{pixel_x = -4; pixel_y = 2},/obj/item/clothing/mask/cigarette/cigar,/obj/item/weapon/reagent_containers/food/drinks/flask/gold,/turf/open/floor/plasteel/grimy,/area/crew_quarters/captain) +"ayD" = (/obj/structure/chair/comfy/brown{dir = 4},/turf/open/floor/plasteel/grimy,/area/crew_quarters/captain) +"ayE" = (/obj/structure/table/wood,/obj/item/weapon/kitchen/fork,/turf/open/floor/plasteel/grimy,/area/crew_quarters/captain) +"ayF" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/black,/area/crew_quarters/captain) +"ayG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/carpet,/area/crew_quarters/captain) +"ayH" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green,/turf/open/floor/carpet,/area/crew_quarters/captain) +"ayI" = (/obj/structure/table/wood,/obj/item/weapon/pen,/obj/item/weapon/paper_bin{layer = 2.9; pixel_x = 0; pixel_y = 0; tag = "every single paper bin is edited to this"},/turf/open/floor/carpet,/area/crew_quarters/captain) +"ayJ" = (/obj/structure/table/wood,/turf/open/floor/carpet,/area/crew_quarters/captain) +"ayK" = (/obj/structure/table/wood,/obj/item/weapon/folder/blue,/obj/item/weapon/stamp/captain,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/carpet,/area/crew_quarters/captain) +"ayL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/darkblue/side{dir = 8},/area/bridge) +"ayM" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/bridge) +"ayN" = (/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/ai_upload) +"ayO" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/highsecurity{icon_state = "door_closed"; locked = 0; name = "AI Upload Access"; req_access_txt = "16"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/darkblue,/area/ai_monitored/turret_protected/ai_upload) +"ayP" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel/black,/area/bridge) +"ayQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (EAST)"; dir = 4},/area/bridge) +"ayR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/crew_quarters/heads) +"ayS" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/closed/wall/r_wall,/area/crew_quarters/heads) +"ayT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/closed/wall/r_wall,/area/crew_quarters/heads) +"ayU" = (/turf/closed/wall/r_wall,/area/crew_quarters/heads) +"ayV" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/obj/structure/extinguisher_cabinet{pixel_x = -24},/turf/open/floor/plasteel,/area/hallway/primary/central) +"ayW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/central) +"ayX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel,/area/hallway/primary/central) +"ayY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel,/area/hallway/primary/central) +"ayZ" = (/obj/structure/chair,/turf/open/floor/plasteel,/area/hallway/primary/central) +"aza" = (/turf/closed/wall,/area/hallway/primary/central) +"azb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"azc" = (/obj/structure/chair/comfy/brown{dir = 1; name = "command chair"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/carpet,/area/crew_quarters/sleep) +"azd" = (/obj/structure/chair/comfy/brown{dir = 1; name = "command chair"},/obj/effect/landmark/start{name = "Assistant"},/turf/open/floor/carpet,/area/crew_quarters/sleep) +"aze" = (/obj/structure/chair/comfy/brown{dir = 1; name = "command chair"},/turf/open/floor/carpet,/area/crew_quarters/sleep) +"azf" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel,/area/crew_quarters/fitness{name = "Recreation Room"}) +"azg" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/crew_quarters/fitness{name = "Recreation Room"}) +"azh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel,/area/crew_quarters/fitness{name = "Recreation Room"}) +"azi" = (/obj/structure/lattice/catwalk,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/open/space,/area/solar/starboard{name = "Starboard Solar Array"}) +"azj" = (/obj/structure/lattice/catwalk,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/open/space,/area/solar/port{name = "Port Solar Array"}) +"azk" = (/obj/structure/rack,/obj/item/clothing/mask/gas,/obj/item/device/multitool,/turf/open/floor/plating,/area/maintenance/auxsolarport{name = "Port Solar Maintenance"}) +"azl" = (/obj/structure/chair/stool,/obj/machinery/power/terminal{dir = 4},/obj/structure/cable,/turf/open/floor/plating,/area/maintenance/auxsolarport{name = "Port Solar Maintenance"}) +"azm" = (/obj/machinery/power/smes,/obj/structure/cable,/turf/open/floor/plating,/area/maintenance/auxsolarport{name = "Port Solar Maintenance"}) +"azn" = (/turf/open/floor/plating{broken = 1; icon_state = "platingdmg3"},/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"azo" = (/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"azp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/open/floor/plating{broken = 1; icon_state = "platingdmg1"},/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"azq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"azr" = (/turf/closed/wall,/area/security/detectives_office) +"azs" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/shutters/preopen{id = "datboidetective"; name = "privacy shutters"},/turf/open/floor/plating,/area/security/detectives_office) +"azt" = (/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/security{name = "Detective's Office"; req_access = null; req_access_txt = "4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/grimy,/area/security/detectives_office) +"azu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/corner{tag = "icon-redcorner (WEST)"; dir = 8},/area/hallway/primary/fore) +"azv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/red/corner,/area/hallway/primary/fore) +"azw" = (/turf/closed/wall,/area/storage/primary) +"azx" = (/turf/closed/wall/r_wall,/area/storage/primary) +"azy" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plasteel/black,/area/crew_quarters/captain) +"azz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/crew_quarters/captain) +"azA" = (/turf/open/floor/plasteel/black,/area/crew_quarters/captain) +"azB" = (/obj/machinery/holopad,/turf/open/floor/plasteel/black,/area/crew_quarters/captain) +"azC" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/black,/area/crew_quarters/captain) +"azD" = (/obj/machinery/firealarm{dir = 8; pixel_x = 26; pixel_y = 0},/turf/open/floor/plasteel/black,/area/crew_quarters/captain) +"azE" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_command{cyclelinkeddir = 2; name = "Bridge Access"; req_access_txt = "19"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/bridge) +"azF" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_command{cyclelinkeddir = 2; name = "Bridge Access"; req_access_txt = "19"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/bridge) +"azG" = (/obj/machinery/porta_turret/ai{dir = 8},/turf/open/floor/plasteel/darkblue,/area/ai_monitored/turret_protected/ai_upload) +"azH" = (/turf/open/floor/plasteel/darkblue/side{dir = 9},/area/ai_monitored/turret_protected/ai_upload) +"azI" = (/turf/open/floor/plasteel/darkblue/side{dir = 1},/area/ai_monitored/turret_protected/ai_upload) +"azJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/darkblue/side{dir = 1},/area/ai_monitored/turret_protected/ai_upload) +"azK" = (/turf/open/floor/plasteel/darkblue/side{dir = 5},/area/ai_monitored/turret_protected/ai_upload) +"azL" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green,/obj/item/weapon/storage/secure/safe{pixel_x = -22; pixel_y = 4},/turf/open/floor/wood,/area/crew_quarters/heads) +"azM" = (/obj/machinery/computer/security/mining,/turf/open/floor/wood,/area/crew_quarters/heads) +"azN" = (/obj/machinery/computer/cargo/request,/turf/open/floor/wood,/area/crew_quarters/heads) +"azO" = (/obj/structure/closet/secure_closet/hop,/turf/open/floor/wood,/area/crew_quarters/heads) +"azP" = (/obj/structure/filingcabinet/chestdrawer{pixel_y = 2},/obj/machinery/light{dir = 1},/obj/machinery/camera{c_tag = "Head of Personnel's Office"; dir = 2; network = list("SS13")},/obj/machinery/newscaster{pixel_y = 32},/turf/open/floor/wood,/area/crew_quarters/heads) +"azQ" = (/obj/machinery/requests_console{announcementConsole = 1; department = "Head of Personnel's Desk"; departmentType = 5; name = "Head of Personnel RC"; pixel_y = 30},/obj/machinery/pdapainter{pixel_y = 2},/turf/open/floor/wood,/area/crew_quarters/heads) +"azR" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/structure/bed/dogbed{anchored = 1; desc = "Ian's bed! Looks comfy."; name = "Ian's bed"; pixel_y = 2},/mob/living/simple_animal/pet/dog/corgi/Ian,/turf/open/floor/wood,/area/crew_quarters/heads) +"azS" = (/obj/machinery/vending/cart{req_access_txt = "57"},/obj/machinery/airalarm{pixel_y = 22},/turf/open/floor/wood,/area/crew_quarters/heads) +"azT" = (/obj/machinery/power/apc{cell_type = 5000; dir = 8; name = "Central Hall APC"; pixel_x = -25},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/hallway/primary/central) +"azU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"azV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/primary/central) +"azW" = (/obj/structure/table,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"azX" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/shutters/preopen{id = "Dorm1Shutters"; name = "Dorm Shutters"},/turf/open/floor/plating,/area/crew_quarters/sleep) +"azY" = (/obj/structure/bed,/obj/item/weapon/bedsheet/nanotrasen,/obj/machinery/button/door{id = "Dorm1Shutters"; name = "Privacy Shutters Control"; pixel_x = 0; pixel_y = 26; req_access_txt = "0"},/turf/open/floor/plasteel/grimy,/area/crew_quarters/sleep) +"azZ" = (/obj/machinery/light/small{dir = 1},/obj/structure/sign/securearea{desc = "Under the painting a plaque reads: 'While the meat grinder may not have spared you, fear not. Not one part of you has gone to waste... You were delicious.'"; icon_state = "monkey_painting"; name = "Mr. Deempisi portrait"; pixel_x = 0; pixel_y = 28},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/grimy,/area/crew_quarters/sleep) +"aAa" = (/obj/machinery/button/door{id = "Dorm1"; name = "Dorm Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/structure/closet/secure_closet/personal/cabinet,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/grimy,/area/crew_quarters/sleep) +"aAb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"aAc" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"aAd" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (EAST)"; dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"aAe" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"aAf" = (/obj/structure/closet/wardrobe/white,/turf/open/floor/plasteel/arrival,/area/crew_quarters/fitness{name = "Recreation Room"}) +"aAg" = (/obj/structure/closet/wardrobe/mixed,/turf/open/floor/plasteel/arrival,/area/crew_quarters/fitness{name = "Recreation Room"}) +"aAh" = (/obj/structure/closet/wardrobe/green,/turf/open/floor/plasteel/arrival,/area/crew_quarters/fitness{name = "Recreation Room"}) +"aAi" = (/obj/structure/closet/wardrobe/grey,/obj/machinery/light,/turf/open/floor/plasteel/arrival,/area/crew_quarters/fitness{name = "Recreation Room"}) +"aAj" = (/obj/structure/closet/wardrobe/black,/obj/item/clothing/shoes/jackboots,/obj/item/weapon/storage/backpack,/turf/open/floor/plasteel/arrival,/area/crew_quarters/fitness{name = "Recreation Room"}) +"aAk" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-05"; layer = 4.1},/turf/open/floor/plasteel,/area/crew_quarters/fitness{name = "Recreation Room"}) +"aAl" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/crew_quarters/fitness{name = "Recreation Room"}) +"aAm" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/obj/structure/cable{icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/open/space,/area/solar/starboard{name = "Starboard Solar Array"}) +"aAn" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/obj/structure/cable{icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/open/space,/area/solar/port{name = "Port Solar Array"}) +"aAo" = (/obj/structure/rack,/obj/item/weapon/crowbar,/obj/item/weapon/wrench,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"aAp" = (/obj/structure/closet/emcloset,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"aAq" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating{broken = 1; icon_state = "platingdmg3"},/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"aAr" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"aAs" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"aAt" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"aAu" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"aAv" = (/obj/structure/table/wood,/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-18"; layer = 4.1; pixel_y = 12},/turf/open/floor/plasteel/grimy,/area/security/detectives_office) +"aAw" = (/obj/machinery/light/small{dir = 1},/obj/machinery/requests_console{department = "Detective's office"; pixel_x = 0; pixel_y = 30},/turf/open/floor/plasteel/grimy,/area/security/detectives_office) +"aAx" = (/turf/open/floor/plasteel/grimy,/area/security/detectives_office) +"aAy" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/grimy,/area/security/detectives_office) +"aAz" = (/obj/item/weapon/storage/briefcase,/turf/open/floor/plasteel/grimy,/area/security/detectives_office) +"aAA" = (/obj/machinery/light/small{dir = 1},/obj/structure/filingcabinet,/obj/machinery/button/door{id = "datboidetective"; name = "Privacy Shutters"; pixel_x = 2; pixel_y = 26},/obj/machinery/light_switch{pixel_x = -8; pixel_y = 27},/turf/open/floor/plasteel/grimy,/area/security/detectives_office) +"aAB" = (/obj/structure/closet/secure_closet/detective,/obj/item/weapon/hand_labeler,/obj/machinery/airalarm{pixel_y = 22},/turf/open/floor/plasteel/grimy,/area/security/detectives_office) +"aAC" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel/red/corner{tag = "icon-redcorner (WEST)"; dir = 8},/area/hallway/primary/fore) +"aAD" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"aAE" = (/obj/machinery/vending/assist,/turf/open/floor/plasteel/neutral/side{dir = 9},/area/storage/primary) +"aAF" = (/turf/open/floor/plasteel/neutral/side{dir = 1},/area/storage/primary) +"aAG" = (/obj/structure/table,/obj/item/weapon/wrench,/obj/item/device/analyzer,/obj/machinery/requests_console{department = "Tool Storage"; departmentType = 0; pixel_y = 30},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/storage/primary) +"aAH" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high/plus,/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 26},/obj/item/weapon/screwdriver{pixel_y = 16},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/storage/primary) +"aAI" = (/obj/structure/table,/obj/item/device/assembly/igniter{pixel_x = -8; pixel_y = -4},/obj/item/device/assembly/igniter,/obj/machinery/camera{c_tag = "Primary Tool Storage"},/obj/item/device/assembly/voice,/obj/structure/noticeboard{pixel_y = 32},/turf/open/floor/plasteel,/area/storage/primary) +"aAJ" = (/obj/structure/table,/obj/item/device/assembly/signaler,/obj/item/device/assembly/signaler,/obj/item/device/multitool,/obj/item/device/multitool,/obj/machinery/airalarm{pixel_y = 22},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/storage/primary) +"aAK" = (/obj/machinery/vending/tool,/turf/open/floor/plasteel/neutral/side{dir = 5},/area/storage/primary) +"aAL" = (/obj/structure/displaycase/captain,/turf/open/floor/plasteel/black,/area/crew_quarters/captain) +"aAM" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/crew_quarters/captain) +"aAN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/crew_quarters/captain) +"aAO" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/crew_quarters/captain) +"aAP" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/camera{c_tag = "Captain's Office"; dir = 8; network = list("SS13")},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/light_switch{pixel_x = 25},/turf/open/floor/plasteel/black,/area/crew_quarters/captain) +"aAQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/crew_quarters/captain) +"aAR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/bridge) +"aAS" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (WEST)"; dir = 8},/area/bridge) +"aAT" = (/obj/structure/table,/obj/item/weapon/aiModule/supplied/quarantine,/obj/machinery/camera/motion{c_tag = "AI Upload Port"; dir = 4},/obj/item/weapon/aiModule/reset,/turf/open/floor/plasteel/darkblue/side{dir = 9},/area/ai_monitored/turret_protected/ai_upload) +"aAU" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/darkblue/corner{dir = 1},/area/ai_monitored/turret_protected/ai_upload) +"aAV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) +"aAW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) +"aAX" = (/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) +"aAY" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (EAST)"; dir = 4},/area/ai_monitored/turret_protected/ai_upload) +"aAZ" = (/obj/structure/table,/obj/item/weapon/aiModule/supplied/freeform,/obj/machinery/camera/motion{c_tag = "AI Upload Starboard"; dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (NORTHEAST)"; dir = 5},/area/ai_monitored/turret_protected/ai_upload) +"aBa" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/ai_upload) +"aBb" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (EAST)"; dir = 4},/turf/open/floor/plasteel/black,/area/bridge) +"aBc" = (/obj/structure/table/wood,/obj/item/weapon/pen{layer = 4},/obj/machinery/keycard_auth{pixel_x = -26; pixel_y = 6},/obj/item/weapon/paper_bin{layer = 2.9; pixel_x = 0; pixel_y = 0; tag = "every single paper bin is edited to this"},/turf/open/floor/wood,/area/crew_quarters/heads) +"aBd" = (/obj/structure/chair/office/dark{dir = 1},/obj/effect/landmark/start{name = "Head of Personnel"},/turf/open/floor/wood,/area/crew_quarters/heads) +"aBe" = (/obj/machinery/holopad,/turf/open/floor/wood,/area/crew_quarters/heads) +"aBf" = (/turf/open/floor/wood,/area/crew_quarters/heads) +"aBg" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/wood,/area/crew_quarters/heads) +"aBh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1},/turf/open/floor/wood,/area/crew_quarters/heads) +"aBi" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{name = "Head of Personnel"; req_access = null; req_access_txt = "57"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/wood,/area/crew_quarters/heads) +"aBj" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aBk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aBl" = (/obj/machinery/holopad,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/effect/landmark/start{name = "Assistant"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aBm" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aBn" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aBo" = (/obj/structure/table/wood,/obj/item/weapon/storage/book/bible,/turf/open/floor/plasteel/grimy,/area/crew_quarters/sleep) +"aBp" = (/obj/structure/chair/wood/normal{icon_state = "wooden_chair"; dir = 8},/turf/open/floor/plasteel/grimy,/area/crew_quarters/sleep) +"aBq" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/grimy,/area/crew_quarters/sleep) +"aBr" = (/obj/machinery/door/airlock{id_tag = "Dorm1"; name = "Dorm 1"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/vault{dir = 5},/area/crew_quarters/sleep) +"aBs" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"aBt" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"aBu" = (/obj/machinery/light,/obj/machinery/camera{c_tag = "Dormitories Aft"; dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -26},/turf/open/floor/plasteel/white/corner,/area/crew_quarters/sleep) +"aBv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white/side,/area/crew_quarters/sleep) +"aBw" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel/white/side,/area/crew_quarters/sleep) +"aBx" = (/turf/open/floor/plasteel/white/side,/area/crew_quarters/sleep) +"aBy" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/open/floor/plating,/area/crew_quarters/fitness{name = "Recreation Room"}) +"aBz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"aBA" = (/obj/structure/grille/broken,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"aBB" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 4},/turf/open/floor/plasteel/grimy,/area/security/detectives_office) +"aBC" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/grimy,/area/security/detectives_office) +"aBD" = (/obj/structure/chair,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/grimy,/area/security/detectives_office) +"aBE" = (/obj/structure/chair,/obj/structure/disposalpipe/junction{icon_state = "pipe-y"; dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/grimy,/area/security/detectives_office) +"aBF" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/grimy,/area/security/detectives_office) +"aBG" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/grimy,/area/security/detectives_office) +"aBH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/firealarm{dir = 4; pixel_x = -28},/turf/open/floor/plasteel/red/corner{tag = "icon-redcorner (WEST)"; dir = 8},/area/hallway/primary/fore) +"aBI" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 8; name = "Tool Storage APC"; pixel_x = -24; pixel_y = 0},/turf/open/floor/plasteel/neutral/side{dir = 8},/area/storage/primary) +"aBJ" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel,/area/storage/primary) +"aBK" = (/obj/effect/landmark/start{name = "Assistant"},/turf/open/floor/plasteel,/area/storage/primary) +"aBL" = (/turf/open/floor/plasteel,/area/storage/primary) +"aBM" = (/obj/machinery/firealarm{dir = 4; pixel_x = 28},/turf/open/floor/plasteel/neutral/side{dir = 4},/area/storage/primary) +"aBN" = (/obj/structure/table/wood,/obj/item/weapon/storage/lockbox/medal{pixel_y = 0},/turf/open/floor/carpet,/area/crew_quarters/captain) +"aBO" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/carpet,/area/crew_quarters/captain) +"aBP" = (/obj/structure/chair/comfy/brown,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/carpet,/area/crew_quarters/captain) +"aBQ" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j1"; dir = 4},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (NORTH)"; dir = 1},/turf/open/floor/plasteel/black,/area/crew_quarters/captain) +"aBR" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/crew_quarters/captain) +"aBS" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{name = "Captain's Office"; req_access = null; req_access_txt = "20"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/crew_quarters/captain) +"aBT" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel/darkblue/corner{dir = 4},/area/bridge) +"aBU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (WEST)"; dir = 8},/area/bridge) +"aBV" = (/obj/machinery/porta_turret/ai{dir = 8},/turf/open/floor/plasteel/darkblue/side{dir = 8},/area/ai_monitored/turret_protected/ai_upload) +"aBW" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) +"aBX" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/open/floor/bluegrid,/area/ai_monitored/turret_protected/ai_upload) +"aBY" = (/obj/machinery/holopad,/obj/machinery/camera/motion{c_tag = "AI Upload Center"; dir = 1},/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1447; listening = 0; name = "Station Intercom (AI Private)"; pixel_y = -29},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/bluegrid,/area/ai_monitored/turret_protected/ai_upload) +"aBZ" = (/turf/open/floor/bluegrid,/area/ai_monitored/turret_protected/ai_upload) +"aCa" = (/obj/machinery/porta_turret/ai{dir = 8},/obj/structure/sign/kiddieplaque{pixel_x = 32},/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (EAST)"; dir = 4},/area/ai_monitored/turret_protected/ai_upload) +"aCb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/darkblue/corner,/area/bridge) +"aCc" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/darkblue/corner{dir = 1},/area/bridge) +"aCd" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{name = "Head of Personnel"; req_access = null; req_access_txt = "57"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/crew_quarters/heads) +"aCe" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/sortjunction{dir = 4; icon_state = "pipe-j1s"; sortType = 15},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/wood,/area/crew_quarters/heads) +"aCf" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/wood,/area/crew_quarters/heads) +"aCg" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/wood,/area/crew_quarters/heads) +"aCh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/wood,/area/crew_quarters/heads) +"aCi" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/carpet,/area/crew_quarters/heads) +"aCj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/carpet,/area/crew_quarters/heads) +"aCk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/carpet,/area/crew_quarters/heads) +"aCl" = (/obj/machinery/power/apc{dir = 4; name = "Head of Personnel APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/carpet,/area/crew_quarters/heads) +"aCm" = (/turf/open/floor/plasteel,/area/hallway/primary/central) +"aCn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/hallway/primary/central) +"aCo" = (/obj/machinery/newscaster{pixel_x = 32},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aCp" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"aCq" = (/turf/closed/wall,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aCr" = (/obj/machinery/door/airlock{name = "Unisex Restrooms"; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aCs" = (/obj/structure/urinal{pixel_y = 32},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aCt" = (/obj/structure/urinal{pixel_y = 32},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aCu" = (/obj/structure/urinal{pixel_y = 32},/obj/machinery/airalarm{dir = 8; pixel_x = 23; pixel_y = 0},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aCv" = (/obj/effect/landmark{name = "blobstart"},/obj/item/toy/beach_ball/holoball,/turf/open/floor/plating,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aCw" = (/turf/closed/wall,/area/maintenance/apmaint) +"aCx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/apmaint) +"aCy" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/apmaint) +"aCz" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp{pixel_x = 3; pixel_y = 6},/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = -27},/turf/open/floor/carpet,/area/security/detectives_office) +"aCA" = (/obj/structure/table/wood,/obj/item/weapon/pen,/obj/item/weapon/paper_bin{layer = 2.9; pixel_x = 0; pixel_y = 0; tag = "every single paper bin is edited to this"},/turf/open/floor/carpet,/area/security/detectives_office) +"aCB" = (/obj/structure/table/wood,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/clothing/glasses/hud/security/sunglasses,/turf/open/floor/carpet,/area/security/detectives_office) +"aCC" = (/obj/structure/table/wood,/obj/machinery/computer/security/wooden_tv,/turf/open/floor/carpet,/area/security/detectives_office) +"aCD" = (/obj/structure/table/wood,/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey{pixel_y = 20},/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass{pixel_y = 10},/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass{pixel_x = 7; pixel_y = 10},/turf/open/floor/carpet,/area/security/detectives_office) +"aCE" = (/obj/machinery/power/apc{dir = 4; name = "Detective's Office APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plasteel/grimy,/area/security/detectives_office) +"aCF" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/red/corner,/area/hallway/primary/fore) +"aCG" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/electrical{pixel_x = 2; pixel_y = 4},/obj/item/weapon/storage/toolbox/electrical{pixel_x = -2},/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/neutral/side{dir = 8},/area/storage/primary) +"aCH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel,/area/storage/primary) +"aCI" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1},/turf/open/floor/plasteel,/area/storage/primary) +"aCJ" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = 2; pixel_y = 4},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2},/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/neutral/side{dir = 4},/area/storage/primary) +"aCK" = (/obj/structure/table/wood,/obj/item/weapon/pinpointer,/obj/item/weapon/disk/nuclear,/obj/machinery/light{dir = 8},/turf/open/floor/carpet,/area/crew_quarters/captain) +"aCL" = (/obj/structure/table/wood,/obj/item/weapon/hand_tele,/turf/open/floor/carpet,/area/crew_quarters/captain) +"aCM" = (/obj/structure/table/wood,/obj/item/weapon/storage/photo_album,/turf/open/floor/carpet,/area/crew_quarters/captain) +"aCN" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel/black,/area/crew_quarters/captain) +"aCO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/darkblue/corner{dir = 4},/area/bridge) +"aCP" = (/obj/machinery/light{dir = 4},/obj/machinery/camera{c_tag = "Bridge Port Entrance"; dir = 8; network = list("SS13")},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (WEST)"; dir = 8},/area/bridge) +"aCQ" = (/obj/structure/table,/obj/item/weapon/aiModule/core/full/asimov,/obj/item/weapon/aiModule/core/freeformcore,/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Core Modules"; req_access_txt = "20"},/obj/item/weapon/aiModule/core/full/corp,/obj/item/weapon/aiModule/core/full/custom,/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/turf/open/floor/plasteel/darkblue/side{dir = 10},/area/ai_monitored/turret_protected/ai_upload) +"aCR" = (/obj/machinery/light,/obj/machinery/power/apc{cell_type = 5000; dir = 2; name = "Upload APC"; pixel_y = -24},/obj/structure/cable,/turf/open/floor/plasteel/darkblue/side,/area/ai_monitored/turret_protected/ai_upload) +"aCS" = (/obj/machinery/computer/upload/ai,/turf/open/floor/bluegrid,/area/ai_monitored/turret_protected/ai_upload) +"aCT" = (/obj/machinery/computer/upload/borg,/turf/open/floor/bluegrid,/area/ai_monitored/turret_protected/ai_upload) +"aCU" = (/obj/machinery/light,/obj/machinery/airalarm{dir = 1; pixel_y = -22},/turf/open/floor/plasteel/darkblue/side,/area/ai_monitored/turret_protected/ai_upload) +"aCV" = (/obj/structure/table,/obj/item/weapon/aiModule/supplied/oxygen,/obj/item/weapon/aiModule/zeroth/oneHuman,/obj/machinery/door/window{base_state = "left"; dir = 8; icon_state = "left"; name = "High-Risk Modules"; req_access_txt = "20"},/obj/item/weapon/aiModule/reset/purge,/obj/item/weapon/aiModule/core/full/antimov,/obj/item/weapon/aiModule/supplied/protectStation,/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/turf/open/floor/plasteel/darkblue/side{dir = 6},/area/ai_monitored/turret_protected/ai_upload) +"aCW" = (/obj/machinery/light{dir = 8},/obj/machinery/camera{c_tag = "Bridge Starboard Entrance"; dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/darkblue/corner,/area/bridge) +"aCX" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/darkblue/corner{dir = 1},/area/bridge) +"aCY" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 1},/turf/open/floor/wood,/area/crew_quarters/heads) +"aCZ" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-24"; layer = 4.1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/wood,/area/crew_quarters/heads) +"aDa" = (/obj/structure/table/wood,/obj/item/weapon/storage/box/PDAs{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/box/silver_ids,/obj/item/weapon/storage/box/ids,/turf/open/floor/wood,/area/crew_quarters/heads) +"aDb" = (/obj/machinery/computer/secure_data,/turf/open/floor/carpet,/area/crew_quarters/heads) +"aDc" = (/obj/machinery/computer/card,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/carpet,/area/crew_quarters/heads) +"aDd" = (/obj/structure/chair/office/dark,/obj/machinery/button/flasher{id = "hopflash"; pixel_x = 38; pixel_y = -25},/obj/machinery/button/door{id = "hop"; name = "Privacy Shutters Control"; pixel_x = 25; pixel_y = -26; req_access_txt = "28"},/obj/machinery/button/door{id = "hopqueue"; name = "Queue Shutters Control"; pixel_x = 25; pixel_y = -36; req_access_txt = "28"},/obj/machinery/light_switch{pixel_x = 38; pixel_y = -35},/turf/open/floor/carpet,/area/crew_quarters/heads) +"aDe" = (/obj/structure/table/wood,/obj/item/weapon/stamp/hop{pixel_x = -4; pixel_y = 4},/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = 27; pixel_y = 0},/obj/item/weapon/paper_bin{layer = 2.9; pixel_x = 0; pixel_y = 0; tag = "every single paper bin is edited to this"},/turf/open/floor/carpet,/area/crew_quarters/heads) +"aDf" = (/obj/machinery/camera{c_tag = "Central Primary Hallway Vault"; dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = -27},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aDg" = (/turf/closed/wall,/area/storage/emergency) +"aDh" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/plating,/area/storage/emergency) +"aDi" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plating,/area/storage/emergency) +"aDj" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"aDk" = (/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"aDl" = (/obj/machinery/door/firedoor,/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"aDm" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/structure/mirror{pixel_x = -28},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aDn" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aDo" = (/obj/machinery/light_switch{pixel_y = 25},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aDp" = (/obj/structure/extinguisher_cabinet{pixel_x = -24},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aDq" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aDr" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aDs" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/apmaint) +"aDt" = (/turf/open/floor/plating,/area/maintenance/apmaint) +"aDu" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 4; req_access_txt = "13"},/turf/open/floor/plating,/area/maintenance/apmaint) +"aDv" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 8; req_access_txt = "13"},/turf/open/floor/plating,/area/maintenance/apmaint) +"aDw" = (/obj/structure/bodycontainer/morgue,/obj/effect/landmark{name = "revenantspawn"},/turf/open/floor/plasteel/black,/area/security/detectives_office) +"aDx" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/black,/area/security/detectives_office) +"aDy" = (/obj/item/weapon/storage/secure/safe{pixel_x = -22},/turf/open/floor/carpet,/area/security/detectives_office) +"aDz" = (/turf/open/floor/carpet,/area/security/detectives_office) +"aDA" = (/obj/structure/chair/comfy/brown{buildstackamount = 0; dir = 1},/obj/effect/landmark/start{name = "Detective"},/turf/open/floor/carpet,/area/security/detectives_office) +"aDB" = (/obj/structure/table/wood,/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/device/taperecorder,/turf/open/floor/carpet,/area/security/detectives_office) +"aDC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/open/floor/plasteel/grimy,/area/security/detectives_office) +"aDD" = (/obj/machinery/camera{c_tag = "Fore Primary Hallway Entrance"; dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/corner{tag = "icon-redcorner (WEST)"; dir = 8},/area/hallway/primary/fore) +"aDE" = (/obj/structure/table,/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/device/t_scanner,/turf/open/floor/plasteel/neutral/side{dir = 8},/area/storage/primary) +"aDF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/storage/primary) +"aDG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/storage/primary) +"aDH" = (/obj/structure/table,/obj/item/weapon/weldingtool,/obj/item/weapon/crowbar,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/turf/open/floor/plasteel/neutral/side{dir = 4},/area/storage/primary) +"aDI" = (/obj/structure/table/wood,/obj/item/device/camera,/turf/open/floor/carpet,/area/crew_quarters/captain) +"aDJ" = (/obj/structure/chair/comfy/brown{dir = 1},/turf/open/floor/carpet,/area/crew_quarters/captain) +"aDK" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/darkblue/side,/area/crew_quarters/captain) +"aDL" = (/turf/open/floor/plasteel/darkblue/side,/area/crew_quarters/captain) +"aDM" = (/obj/structure/grille,/obj/machinery/door/poddoor/shutters/preopen{id = "hop"; layer = 2.9; name = "Privacy Shutters"},/obj/structure/window/reinforced/fulltile,/obj/structure/cable,/turf/open/floor/plating,/area/crew_quarters/heads) +"aDN" = (/obj/structure/table/reinforced,/obj/machinery/door/window/brigdoor{base_state = "rightsecure"; dir = 1; icon_state = "rightsecure"; name = "Head of Personnel's Desk"; req_access_txt = "57"},/obj/machinery/door/firedoor,/obj/machinery/door/window/northleft{dir = 2; icon_state = "left"; name = "Reception Window"; req_access_txt = "0"},/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "hop"; layer = 3.1; name = "privacy shutters"; opacity = 0},/turf/open/floor/plasteel,/area/crew_quarters/heads) +"aDO" = (/obj/machinery/vending/snack,/turf/open/floor/plasteel,/area/hallway/primary/central) +"aDP" = (/obj/item/weapon/extinguisher,/obj/machinery/power/apc{dir = 8; name = "Starboard Emergency Storage APC"; pixel_x = -24; pixel_y = 0},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/open/floor/plating,/area/storage/emergency) +"aDQ" = (/obj/item/weapon/storage/box/lights/mixed,/obj/machinery/light/small{dir = 4},/turf/open/floor/plating,/area/storage/emergency) +"aDR" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aDS" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aDT" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aDU" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aDV" = (/obj/machinery/door/airlock{name = "Unisex Showers"; req_access_txt = "0"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aDW" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aDX" = (/obj/machinery/shower{dir = 8},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aDY" = (/obj/structure/table,/obj/machinery/microwave,/turf/open/floor/plating,/area/maintenance/apmaint) +"aDZ" = (/obj/structure/sign/poster{pixel_x = 0; pixel_y = 32},/turf/open/floor/plating,/area/maintenance/apmaint) +"aEa" = (/obj/structure/sink/kitchen{pixel_y = 28},/turf/open/floor/plating,/area/maintenance/apmaint) +"aEb" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/bowl,/obj/item/weapon/reagent_containers/glass/bowl,/obj/item/weapon/reagent_containers/food/condiment/rice,/obj/machinery/light/small{dir = 1},/obj/effect/decal/cleanable/cobweb{icon_state = "cobweb2"},/turf/open/floor/plating,/area/maintenance/apmaint) +"aEc" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plating,/area/maintenance/apmaint) +"aEd" = (/turf/closed/wall/mineral/titanium,/area/shuttle/escape) +"aEe" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/escape) +"aEf" = (/obj/structure/table,/obj/item/weapon/storage/box/bodybags,/obj/item/weapon/pen,/turf/open/floor/plasteel/black,/area/security/detectives_office) +"aEg" = (/turf/open/floor/plasteel/black,/area/security/detectives_office) +"aEh" = (/obj/machinery/door/morgue{name = "Morgue"},/turf/open/floor/plasteel/black,/area/security/detectives_office) +"aEi" = (/obj/machinery/computer/med_data,/turf/open/floor/carpet,/area/security/detectives_office) +"aEj" = (/obj/machinery/computer/secure_data,/obj/machinery/light,/obj/machinery/camera{c_tag = "Detective's Office"; dir = 1},/turf/open/floor/carpet,/area/security/detectives_office) +"aEk" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/carpet,/area/security/detectives_office) +"aEl" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/grimy,/area/security/detectives_office) +"aEm" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Central Access"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/primary/fore) +"aEn" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"aEo" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Central Access"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/fore) +"aEp" = (/obj/structure/rack,/obj/item/weapon/wirecutters,/obj/item/device/flashlight,/obj/item/device/gps,/turf/open/floor/plasteel/neutral/side{dir = 10},/area/storage/primary) +"aEq" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plasteel/neutral/side,/area/storage/primary) +"aEr" = (/obj/structure/table,/obj/item/weapon/crowbar,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/clothing/gloves/color/fyellow,/obj/item/clothing/gloves/color/fyellow,/obj/item/device/assembly/timer,/turf/open/floor/plasteel/neutral/side,/area/storage/primary) +"aEs" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular,/turf/open/floor/plasteel/neutral/side,/area/storage/primary) +"aEt" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel/neutral/side,/area/storage/primary) +"aEu" = (/obj/machinery/disposal/bin,/turf/open/floor/plasteel/neutral/side{dir = 6},/area/storage/primary) +"aEv" = (/obj/machinery/vending/boozeomat{products = list(/obj/item/weapon/reagent_containers/food/drinks/bottle/rum = 1, /obj/item/weapon/reagent_containers/food/drinks/bottle/wine = 1, /obj/item/weapon/reagent_containers/food/drinks/ale = 1, /obj/item/weapon/reagent_containers/food/drinks/drinkingglass = 6, /obj/item/weapon/reagent_containers/food/drinks/ice = 1, /obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass = 4); req_access_txt = "20"},/turf/open/floor/plasteel/vault{dir = 5},/area/crew_quarters/captain) +"aEw" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 1},/turf/open/floor/plasteel/vault{dir = 8},/area/crew_quarters/captain) +"aEx" = (/obj/machinery/computer/arcade,/turf/open/floor/plasteel/vault{dir = 8},/area/crew_quarters/captain) +"aEy" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-09"; name = "Photosynthetic Potted plant"; pixel_y = 10},/turf/open/floor/plating/airless,/area/space) +"aEz" = (/obj/machinery/vending/cola,/turf/open/floor/plasteel/delivery,/area/hallway/primary/central) +"aEA" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/bot,/area/hallway/primary/central) +"aEB" = (/turf/open/floor/plasteel/bot,/area/hallway/primary/central) +"aEC" = (/obj/machinery/flasher{id = "hopflash"; pixel_x = 28; pixel_y = -28},/turf/open/floor/plasteel/delivery,/area/hallway/primary/central) +"aED" = (/obj/structure/table,/obj/item/weapon/pen,/obj/item/weapon/paper_bin{layer = 2.9; pixel_x = 0; pixel_y = 0; tag = "every single paper bin is edited to this"},/turf/open/floor/plasteel/delivery,/area/hallway/primary/central) +"aEE" = (/obj/machinery/vending/cigarette,/turf/open/floor/plasteel,/area/hallway/primary/central) +"aEF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/weapon/storage/toolbox/emergency,/turf/open/floor/plating,/area/storage/emergency) +"aEG" = (/obj/machinery/space_heater,/obj/structure/sign/poster{pixel_x = 32; pixel_y = 0},/turf/open/floor/plating,/area/storage/emergency) +"aEH" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"aEI" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"aEJ" = (/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aEK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aEL" = (/obj/machinery/camera{c_tag = "Dormitory Toilets"; dir = 1},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aEM" = (/obj/machinery/shower{dir = 4},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aEN" = (/obj/machinery/shower{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aEO" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/snacks/cookie{desc = "It has a distinctly eldritch taste to it."; name = "grandma's cookie"},/obj/item/weapon/cigbutt,/obj/machinery/light/small{dir = 8},/turf/open/floor/plating,/area/maintenance/apmaint) +"aEP" = (/obj/structure/chair/stool,/obj/item/clothing/suit/apron/chef,/turf/open/floor/plating,/area/maintenance/apmaint) +"aEQ" = (/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plating,/area/maintenance/apmaint) +"aER" = (/obj/machinery/hydroponics/constructable,/turf/open/floor/plating,/area/maintenance/apmaint) +"aES" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/apmaint) +"aET" = (/obj/structure/closet/emcloset,/turf/open/floor/plating,/area/maintenance/apmaint) +"aEU" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"aEV" = (/obj/machinery/computer/emergency_shuttle,/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"aEW" = (/obj/structure/table,/obj/machinery/recharger,/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"aEX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"aEY" = (/obj/machinery/door/airlock/maintenance{name = "Detective Maintenance"; req_access_txt = "4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/security/detectives_office) +"aEZ" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/primary/central) +"aFa" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/hallway/primary/central) +"aFb" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/central) +"aFc" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/storage/primary) +"aFd" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Primary Tool Storage"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/storage/primary) +"aFe" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Primary Tool Storage"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/storage/primary) +"aFf" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-21"; layer = 4.1; pixel_x = -3; pixel_y = 3},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aFg" = (/obj/machinery/computer/arcade,/turf/open/floor/plasteel,/area/hallway/primary/central) +"aFh" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/turf/open/floor/plasteel,/area/hallway/primary/central) +"aFi" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/poddoor/preopen{id = "bridge blast"; name = "bridge blast door"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_command{cyclelinkeddir = 1; name = "Bridge Access"; req_access_txt = "19"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/vault,/area/bridge) +"aFj" = (/obj/machinery/door/poddoor/preopen{id = "bridge blast"; name = "bridge blast door"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_command{cyclelinkeddir = 1; name = "Bridge Access"; req_access_txt = "19"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/vault,/area/bridge) +"aFk" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/open/floor/plating,/area/hallway/primary/central) +"aFl" = (/obj/machinery/door/poddoor/preopen{id = "bridge blast"; name = "bridge blast door"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_command{cyclelinkeddir = 1; name = "Bridge Access"; req_access_txt = "19"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/vault,/area/bridge) +"aFm" = (/obj/machinery/door/poddoor/shutters/preopen{id = "hopqueue"; name = "HoP Queue Shutters"},/turf/open/floor/plasteel/loadingarea{dir = 1},/area/hallway/primary/central) +"aFn" = (/obj/machinery/door/poddoor/shutters/preopen{id = "hopqueue"; name = "HoP Queue Shutters"},/turf/open/floor/plasteel/loadingarea,/area/hallway/primary/central) +"aFo" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/hallway/primary/central) +"aFp" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/sleep) +"aFq" = (/obj/machinery/door/airlock{name = "Starboard Emergency Storage"; req_access_txt = "0"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/storage/emergency) +"aFr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aFs" = (/obj/machinery/door/airlock{name = "Unit 1"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aFt" = (/obj/machinery/door/airlock{name = "Unit 2"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aFu" = (/obj/machinery/shower{dir = 4},/obj/item/weapon/soap/nanotrasen,/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aFv" = (/obj/structure/closet/crate,/obj/item/weapon/cultivator,/obj/item/weapon/shovel/spade,/obj/item/weapon/storage/bag/plants/portaseeder,/obj/item/seeds/wheat/rice,/obj/item/seeds/replicapod,/obj/item/seeds/carrot,/obj/item/seeds/tomato,/obj/item/weapon/reagent_containers/glass/bottle/nutrient/ez,/turf/open/floor/plating,/area/maintenance/apmaint) +"aFw" = (/obj/effect/decal/cleanable/egg_smudge,/turf/open/floor/plating,/area/maintenance/apmaint) +"aFx" = (/obj/structure/grille/broken,/turf/open/floor/plating,/area/maintenance/apmaint) +"aFy" = (/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"aFz" = (/obj/structure/chair/comfy/black{tag = "icon-comfychair (NORTH)"; icon_state = "comfychair"; dir = 1},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"aFA" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"aFB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"aFC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"aFD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"aFE" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4; initialize_directions = 11},/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"aFF" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aFG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=Dorms"; location = "Tool"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aFH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/central) +"aFI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aFJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/central) +"aFK" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aFL" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aFM" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/primary/central) +"aFN" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aFO" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aFP" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/blue/corner{dir = 1},/area/hallway/primary/central) +"aFQ" = (/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/blue/corner{dir = 1},/area/hallway/primary/central) +"aFR" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/turf/open/floor/plasteel/blue/corner{dir = 1},/area/hallway/primary/central) +"aFS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/junction,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/blue/corner{dir = 1},/area/hallway/primary/central) +"aFT" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel/blue/corner{dir = 1},/area/hallway/primary/central) +"aFU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/blue/corner{dir = 1},/area/hallway/primary/central) +"aFV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/blue/corner{dir = 1},/area/hallway/primary/central) +"aFW" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/blue/corner{dir = 1},/area/hallway/primary/central) +"aFX" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/turf/open/floor/plasteel/blue/corner{dir = 1},/area/hallway/primary/central) +"aFY" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/blue/corner{dir = 1},/area/hallway/primary/central) +"aFZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aGa" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aGb" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Dormitory"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"aGc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"aGd" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"aGe" = (/obj/machinery/vending/cigarette,/obj/machinery/airalarm{pixel_y = 22},/turf/open/floor/plasteel/white/side{dir = 4},/area/crew_quarters/sleep) +"aGf" = (/obj/machinery/power/apc{dir = 4; name = "Dormitory Bathrooms APC"; pixel_x = 26; pixel_y = 0},/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aGg" = (/obj/structure/toilet{dir = 8},/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aGh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/open/floor/plating,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aGi" = (/obj/structure/mineral_door/iron,/turf/open/floor/plating,/area/maintenance/apmaint) +"aGj" = (/obj/structure/grille,/turf/open/floor/plating,/area/maintenance/apmaint) +"aGk" = (/obj/structure/closet/coffin,/obj/item/toy/figure/lawyer,/obj/effect/decal/cleanable/cobweb{icon_state = "cobweb2"},/turf/open/floor/plating,/area/maintenance/apmaint) +"aGl" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/obj/structure/cable{icon_state = "1-8"},/turf/open/space,/area/solar/starboard{name = "Starboard Solar Array"}) +"aGm" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/obj/structure/cable{icon_state = "1-8"},/turf/open/space,/area/solar/port{name = "Port Solar Array"}) +"aGn" = (/obj/structure/closet/crate,/turf/open/floor/mineral/titanium/yellow,/area/shuttle/escape) +"aGo" = (/obj/structure/closet,/turf/open/floor/mineral/titanium/yellow,/area/shuttle/escape) +"aGp" = (/obj/machinery/vending/cola,/turf/open/floor/mineral/titanium/yellow,/area/shuttle/escape) +"aGq" = (/obj/machinery/computer/atmos_alert,/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"aGr" = (/obj/structure/chair{dir = 8},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"aGs" = (/obj/structure/chair{dir = 4},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"aGt" = (/obj/machinery/computer/security,/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"aGu" = (/obj/structure/chair,/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/escape) +"aGv" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"aGw" = (/obj/structure/chair/stool,/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"aGx" = (/obj/machinery/vending/cigarette,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"aGy" = (/turf/closed/wall,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aGz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"aGA" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/fpmaint2{name = "Brig Maintenance"}) +"aGB" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=Dorms"; location = "Tool"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aGC" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (EAST)"; dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aGD" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/central) +"aGE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aGF" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/primary/central) +"aGG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aGH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/hallway/primary/central) +"aGI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aGJ" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/central) +"aGK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aGL" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aGM" = (/obj/structure/cable{icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aGN" = (/obj/structure/cable{icon_state = "1-8"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aGO" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aGP" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aGQ" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/primary/central) +"aGR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 2},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aGS" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=Robo"; location = "HoP"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aGT" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aGU" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Dormitory"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"aGV" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"aGW" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; layer = 2.4; on = 1},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"aGX" = (/obj/structure/cable{icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"aGY" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"aGZ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=HoP"; location = "Dorms"},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"aHa" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"aHb" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white/side{dir = 4},/area/crew_quarters/sleep) +"aHc" = (/obj/machinery/door/airlock{name = "Unisex Restrooms"; req_access_txt = "0"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aHd" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aHe" = (/obj/structure/cable{icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aHf" = (/obj/item/chair,/turf/open/floor/plating,/area/maintenance/apmaint) +"aHg" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/apmaint) +"aHh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/apmaint) +"aHi" = (/obj/structure/grille,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/apmaint) +"aHj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/turf/open/floor/plating,/area/maintenance/apmaint) +"aHk" = (/obj/structure/closet/coffin,/obj/item/toy/figure/chaplain,/turf/open/floor/plating,/area/maintenance/apmaint) +"aHl" = (/turf/open/floor/mineral/titanium/yellow,/area/shuttle/escape) +"aHm" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/mineral/titanium/yellow,/area/shuttle/escape) +"aHn" = (/obj/machinery/computer/crew,/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"aHo" = (/obj/machinery/computer/communications,/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"aHp" = (/obj/machinery/flasher{id = "shuttle_flasher"; pixel_x = -24; pixel_y = 6},/obj/machinery/button/flasher{id = "shuttle_flasher"; pixel_x = -24; pixel_y = -6},/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/escape) +"aHq" = (/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/escape) +"aHr" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-17"},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = -32; pixel_y = 0},/turf/open/floor/plasteel/red/side{dir = 9},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aHs" = (/obj/structure/chair,/obj/machinery/computer/security/telescreen/entertainment{pixel_y = 32},/turf/open/floor/plasteel/red/side{dir = 1},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aHt" = (/obj/structure/chair,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 30},/turf/open/floor/plasteel/red/side{dir = 1},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aHu" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-17"},/turf/open/floor/plasteel/red/side{tag = "icon-red (NORTHEAST)"; dir = 5},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aHv" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/obj/structure/sign/directions/security{dir = 1; icon_state = "direction_sec"; pixel_x = 32; pixel_y = -26},/obj/structure/sign/directions/medical{pixel_x = 32; pixel_y = -38},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aHw" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aHx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aHy" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/central) +"aHz" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/primary/central) +"aHA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (NORTH)"; dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aHB" = (/obj/machinery/camera{c_tag = "Central Primary Hallway Bathroom"; dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aHC" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/primary/central) +"aHD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/central) +"aHE" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/central) +"aHF" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/central) +"aHG" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/central) +"aHH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/central) +"aHI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/firealarm{dir = 1; pixel_y = -29},/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/central) +"aHJ" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/central) +"aHK" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/central) +"aHL" = (/obj/machinery/camera{c_tag = "Central Primary Hallway EVA"; dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/central) +"aHM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/light,/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/central) +"aHN" = (/obj/structure/sign/directions/security{dir = 8; icon_state = "direction_sec"; pixel_x = -32; pixel_y = -24; tag = "icon-direction_sec (WEST)"},/obj/structure/sign/directions/evac{dir = 1; icon_state = "direction_evac"; pixel_x = -32; pixel_y = -32; tag = "icon-direction_evac (NORTH)"},/obj/structure/sign/directions/science{pixel_x = -32; pixel_y = -40},/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/central) +"aHO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aHP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aHQ" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aHR" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Dormitory"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"aHS" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"aHT" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"aHU" = (/obj/machinery/camera{c_tag = "Dormitories Hallway"; dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"aHV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"aHW" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-04"; layer = 4.1},/turf/open/floor/plasteel/white/side{dir = 4},/area/crew_quarters/sleep) +"aHX" = (/obj/machinery/light_switch{pixel_x = -25},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aHY" = (/obj/machinery/door/airlock{name = "Unit B"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aHZ" = (/obj/machinery/recharge_station,/obj/machinery/light/small{dir = 1},/obj/machinery/camera{c_tag = "Dormitory Cyborg Recharging Station"; dir = 2},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) +"aIa" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/apmaint) +"aIb" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/apmaint) +"aIc" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/apmaint) +"aId" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/apmaint) +"aIe" = (/mob/living/simple_animal/mouse/gray,/turf/open/floor/plating,/area/maintenance/apmaint) +"aIf" = (/obj/effect/spawner/lootdrop/grille_or_trash,/turf/open/floor/plating,/area/maintenance/apmaint) +"aIg" = (/obj/structure/closet/coffin,/obj/item/toy/figure/librarian,/turf/open/floor/plating,/area/maintenance/apmaint) +"aIh" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/obj/docking_port/mobile/emergency{dheight = 0; dir = 4; dwidth = 5; height = 15; name = "Pubby emergency shuttle"; width = 18},/obj/docking_port/stationary{dheight = 0; dir = 4; dwidth = 5; height = 15; id = "emergency_home"; name = "PubbyStation emergency evac bay"; width = 20},/turf/open/floor/plating,/area/shuttle/escape) +"aIi" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/mineral/titanium/yellow,/area/shuttle/escape) +"aIj" = (/obj/structure/sign/nanotrasen,/turf/closed/wall/mineral/titanium,/area/shuttle/escape) +"aIk" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Cockpit"; req_access_txt = "19"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"aIl" = (/obj/structure/chair{dir = 1},/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/escape) +"aIm" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"; req_access_txt = "2"},/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/escape) +"aIn" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 4; name = "Escape Airlock"},/turf/open/floor/plating,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aIo" = (/turf/open/floor/plating,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aIp" = (/obj/machinery/light{dir = 1},/turf/open/floor/plating,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aIq" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 8; name = "Escape Airlock"},/turf/open/floor/plating,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aIr" = (/turf/open/floor/plasteel/red/side{dir = 8},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aIs" = (/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aIt" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/camera{c_tag = "Departure Lounge Holding Area"; dir = 8},/turf/open/floor/plasteel/red/side{tag = "icon-red (EAST)"; dir = 4},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aIu" = (/obj/structure/closet/firecloset,/turf/open/floor/plasteel,/area/hallway/primary/central) +"aIv" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/central) +"aIw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/neutral/corner,/area/hallway/primary/central) +"aIx" = (/turf/closed/wall,/area/storage/art) +"aIy" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/storage/art) +"aIz" = (/obj/machinery/door/airlock/glass{name = "Art Storage"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/storage/art) +"aIA" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/crew_quarters/cafeteria{name = "Lunchroom"}) +"aIB" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/crew_quarters/cafeteria{name = "Lunchroom"}) +"aIC" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Lunchroom"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/crew_quarters/cafeteria{name = "Lunchroom"}) +"aID" = (/turf/closed/wall,/area/crew_quarters/cafeteria{name = "Lunchroom"}) +"aIE" = (/turf/closed/wall,/area/crew_quarters/toilet{name = "\improper Auxiliary Restroom"}) +"aIF" = (/obj/machinery/door/airlock{id_tag = "Potty1"; name = "Unisex Restrooms"; req_access_txt = "0"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet{name = "\improper Auxiliary Restroom"}) +"aIG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/crew_quarters/toilet{name = "\improper Auxiliary Restroom"}) +"aIH" = (/turf/closed/wall,/area/maintenance/fsmaint2) +"aII" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aIJ" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel,/area/maintenance/fsmaint2) +"aIK" = (/obj/machinery/camera{c_tag = "Central Primary Hallway Bridge"; dir = 1},/obj/structure/closet/emcloset,/turf/open/floor/plasteel,/area/maintenance/fsmaint2) +"aIL" = (/obj/structure/closet/firecloset,/turf/open/floor/plasteel,/area/maintenance/fsmaint2) +"aIM" = (/turf/closed/wall/r_wall,/area/storage/eva) +"aIN" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/storage/eva) +"aIO" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters{id = "evashutter"; name = "E.V.A. Storage Shutter"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/delivery,/area/storage/eva) +"aIP" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_command{name = "EVA Storage"; req_access_txt = "18"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/storage/eva) +"aIQ" = (/turf/closed/wall/r_wall,/area/teleporter) +"aIR" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/teleporter) +"aIS" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/glass_command{name = "Teleporter"; req_access_txt = "17"},/turf/open/floor/plasteel,/area/teleporter) +"aIT" = (/turf/closed/wall,/area/security/checkpoint/supply) +"aIU" = (/turf/closed/wall,/area/quartermaster/office) +"aIV" = (/turf/closed/wall,/area/quartermaster/storage) +"aIW" = (/obj/machinery/door/airlock/maintenance{name = "Cargo Bay Warehouse Maintenance"; req_access_txt = "31"},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/quartermaster/storage) +"aIX" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/apmaint) +"aIY" = (/obj/effect/spawner/lootdrop/grille_or_trash,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/apmaint) +"aIZ" = (/obj/structure/girder,/turf/open/floor/plating,/area/maintenance/apmaint) +"aJa" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/maintenance/apmaint) +"aJb" = (/obj/item/weapon/storage/box/mousetraps,/turf/open/floor/plating,/area/maintenance/apmaint) +"aJc" = (/turf/closed/wall,/area/maintenance/disposal) +"aJd" = (/obj/machinery/door/poddoor{id = "trash"; name = "disposal bay door"},/turf/open/floor/plating,/area/maintenance/disposal) +"aJe" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/disposal) +"aJf" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Cargo Hold"; req_access_txt = "0"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"aJg" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-22"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"aJh" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Brig"; req_access_txt = "2"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"aJi" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aJj" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/red/side{dir = 10},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aJk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/side,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aJl" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/red/side,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aJm" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/red/side{dir = 6},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aJn" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel,/area/hallway/primary/central) +"aJo" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/neutral/corner,/area/hallway/primary/central) +"aJp" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/storage/art) +"aJq" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/easel,/obj/item/weapon/canvas/twentythreeXnineteen,/turf/open/floor/plasteel/neutral/side{dir = 9},/area/storage/art) +"aJr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; layer = 2.4; on = 1},/turf/open/floor/plasteel,/area/storage/art) +"aJs" = (/obj/machinery/photocopier,/obj/machinery/airalarm{dir = 8; pixel_x = 23; pixel_y = 0},/turf/open/floor/plasteel/neutral/side{dir = 5},/area/storage/art) +"aJt" = (/obj/structure/table,/obj/item/weapon/kitchen/fork,/turf/open/floor/plasteel/neutral/side{dir = 9},/area/crew_quarters/cafeteria{name = "Lunchroom"}) +"aJu" = (/obj/structure/chair{dir = 8; name = "Defense"},/obj/effect/landmark/start{name = "Assistant"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/neutral/side{dir = 1},/area/crew_quarters/cafeteria{name = "Lunchroom"}) +"aJv" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel,/area/crew_quarters/cafeteria{name = "Lunchroom"}) +"aJw" = (/obj/machinery/airalarm{pixel_y = 22},/obj/machinery/vending/cola,/turf/open/floor/plasteel/neutral/side{dir = 5},/area/crew_quarters/cafeteria{name = "Lunchroom"}) +"aJx" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/airalarm{pixel_y = 22},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet{name = "\improper Auxiliary Restroom"}) +"aJy" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet{name = "\improper Auxiliary Restroom"}) +"aJz" = (/obj/structure/urinal{pixel_y = 32},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/button/door{id = "Potty1"; name = "Bathroom Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 4; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/light_switch{pixel_x = 36; pixel_y = 6},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet{name = "\improper Auxiliary Restroom"}) +"aJA" = (/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aJB" = (/obj/structure/closet/coffin,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aJC" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plating{broken = 1; icon_state = "platingdmg3"},/area/maintenance/fsmaint2) +"aJD" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/fsmaint2) +"aJE" = (/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aJF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating{broken = 1; icon_state = "platingdmg3"},/area/maintenance/fsmaint2) +"aJG" = (/obj/structure/closet/crate,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aJH" = (/obj/machinery/space_heater,/turf/open/floor/plating{burnt = 1; icon_state = "panelscorched"},/area/maintenance/fsmaint2) +"aJI" = (/obj/structure/girder,/turf/open/floor/plating{broken = 1; icon_state = "platingdmg3"},/area/maintenance/fsmaint2) +"aJJ" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/button/door{id = "evashutter"; name = "EVA Shutter Control"; pixel_x = -24; pixel_y = 0; req_access_txt = "18"},/turf/open/floor/plasteel/darkwarning{tag = "icon-warndark (EAST)"; dir = 4},/area/storage/eva) +"aJK" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/warning{dir = 1},/area/storage/eva) +"aJL" = (/turf/open/floor/plasteel/warning{dir = 1},/area/storage/eva) +"aJM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/warning{dir = 1},/area/storage/eva) +"aJN" = (/obj/structure/closet/crate/rcd,/turf/open/floor/plasteel/darkwarning{dir = 8},/area/storage/eva) +"aJO" = (/turf/closed/wall,/area/storage/eva) +"aJP" = (/obj/machinery/power/apc{dir = 8; name = "Teleporter APC"; pixel_x = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/airalarm{pixel_y = 22},/turf/open/floor/plasteel/blue/corner{dir = 1},/area/teleporter) +"aJQ" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/blue/corner{dir = 1},/area/teleporter) +"aJR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/teleporter) +"aJS" = (/turf/open/floor/plasteel/blue/corner{dir = 4},/area/teleporter) +"aJT" = (/obj/structure/closet/crate,/obj/machinery/button/door{id = "teleshutter"; name = "Teleporter Shutter Control"; pixel_x = 25; pixel_y = -5; req_access_txt = "17"},/turf/open/floor/plasteel/blue/corner{dir = 4},/area/teleporter) +"aJU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/brown/corner{dir = 1},/area/hallway/primary/central) +"aJV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/brown/corner{dir = 4},/area/hallway/primary/central) +"aJW" = (/obj/item/weapon/pen,/obj/structure/table,/obj/machinery/requests_console{department = "Security"; departmentType = 5; pixel_x = -32; pixel_y = 0},/obj/structure/reagent_dispensers/peppertank{pixel_y = 30},/obj/item/weapon/paper_bin{layer = 2.9; pixel_x = 0; pixel_y = 0; tag = "every single paper bin is edited to this"},/turf/open/floor/plasteel/red/side{dir = 9},/area/security/checkpoint/supply) +"aJX" = (/obj/machinery/computer/security/mining,/obj/machinery/light{dir = 1},/obj/machinery/camera{c_tag = "Cargo Security Post"; dir = 2; network = list("SS13")},/obj/machinery/airalarm{pixel_y = 22},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/checkpoint/supply) +"aJY" = (/obj/machinery/computer/secure_data,/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 26},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/checkpoint/supply) +"aJZ" = (/obj/machinery/conveyor{dir = 4; id = "packageSort2"},/obj/structure/disposaloutlet{dir = 4},/obj/structure/disposalpipe/trunk,/turf/open/floor/plating,/area/quartermaster/office) +"aKa" = (/obj/machinery/conveyor{dir = 4; id = "packageSort2"},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/quartermaster/office) +"aKb" = (/obj/machinery/conveyor{dir = 4; id = "packageSort2"},/obj/effect/spawner/lootdrop/maintenance,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 30; supply_display = 1},/turf/open/floor/plating,/area/quartermaster/office) +"aKc" = (/obj/machinery/conveyor{dir = 4; id = "packageSort2"},/obj/effect/spawner/lootdrop/maintenance,/obj/machinery/light{dir = 1},/obj/structure/sign/poster{pixel_x = 0; pixel_y = 32},/turf/open/floor/plating,/area/quartermaster/office) +"aKd" = (/obj/machinery/conveyor{dir = 4; id = "packageSort2"},/obj/effect/spawner/lootdrop/maintenance,/obj/machinery/computer/security/telescreen/entertainment{pixel_y = 32},/turf/open/floor/plating,/area/quartermaster/office) +"aKe" = (/obj/machinery/conveyor{dir = 4; id = "packageSort2"},/turf/open/floor/plating,/area/quartermaster/office) +"aKf" = (/obj/machinery/conveyor{dir = 4; id = "packageSort2"},/obj/structure/plasticflaps{opacity = 0},/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/quartermaster/office) +"aKg" = (/obj/machinery/disposal/deliveryChute{dir = 8},/obj/structure/disposalpipe/trunk{dir = 4},/turf/open/floor/plating/warnplate{dir = 4},/area/quartermaster/office) +"aKh" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/closed/wall,/area/quartermaster/storage) +"aKi" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) +"aKj" = (/obj/effect/spawner/lootdrop/maintenance,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) +"aKk" = (/obj/structure/closet/crate,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) +"aKl" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/sign/poster{pixel_x = 0; pixel_y = 32},/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) +"aKm" = (/obj/structure/closet/cardboard,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light/small{dir = 1},/obj/machinery/camera{c_tag = "Cargo Warehouse"; dir = 2},/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) +"aKn" = (/obj/item/weapon/cigbutt/cigarbutt,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) +"aKo" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) +"aKp" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/apmaint) +"aKq" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/apmaint) +"aKr" = (/obj/structure/cable{icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/obj/effect/decal/cleanable/ash,/turf/open/floor/plating,/area/maintenance/apmaint) +"aKs" = (/obj/structure/grille/broken,/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/obj/item/weapon/crowbar,/obj/machinery/light/small,/turf/open/floor/plating,/area/maintenance/apmaint) +"aKt" = (/obj/machinery/space_heater,/turf/open/floor/plating,/area/maintenance/apmaint) +"aKu" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/apmaint) +"aKv" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/apmaint) +"aKw" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/apmaint) +"aKx" = (/obj/machinery/button/massdriver{id = "trash"; pixel_x = 0; pixel_y = 32},/turf/open/floor/plating/warnplate{icon_plating = "warnplate"},/area/maintenance/disposal) +"aKy" = (/obj/machinery/conveyor_switch/oneway{convdir = 1; id = "garbagestacked"; name = "disposal coveyor"},/turf/open/floor/plating/warnplate{icon_plating = "warnplate"},/area/maintenance/disposal) +"aKz" = (/turf/open/floor/plating/warnplate{icon_plating = "warnplate"},/area/maintenance/disposal) +"aKA" = (/turf/open/floor/plating/warnplate/corner{dir = 1},/area/maintenance/disposal) +"aKB" = (/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"aKC" = (/obj/machinery/door/airlock/glass_security{name = "Holding Area"; req_access_txt = "2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aKD" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aKE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/open/floor/plating,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aKF" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/central) +"aKG" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aKH" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/neutral/corner,/area/hallway/primary/central) +"aKI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/storage/art) +"aKJ" = (/obj/structure/table,/obj/item/stack/cable_coil/random,/obj/item/stack/cable_coil/random,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/item/stack/cable_coil/random,/obj/item/stack/cable_coil/random,/turf/open/floor/plasteel/neutral/side{dir = 8},/area/storage/art) +"aKK" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/storage/art) +"aKL" = (/obj/structure/table,/obj/item/weapon/airlock_painter,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "Art Storage APC"; pixel_x = 24; pixel_y = 0},/turf/open/floor/plasteel/neutral/side{dir = 4},/area/storage/art) +"aKM" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/neutral/side{dir = 10},/area/crew_quarters/cafeteria{name = "Lunchroom"}) +"aKN" = (/obj/machinery/light,/obj/machinery/camera{c_tag = "Lunchroom"; dir = 1},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -28},/turf/open/floor/plasteel/neutral/side,/area/crew_quarters/cafeteria{name = "Lunchroom"}) +"aKO" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 2; name = "Cafeteria APC"; pixel_x = 0; pixel_y = -24},/turf/open/floor/plasteel/neutral/side,/area/crew_quarters/cafeteria{name = "Lunchroom"}) +"aKP" = (/obj/machinery/vending/sustenance{contraband = list(/obj/item/weapon/kitchen/knife = 6, /obj/item/weapon/reagent_containers/food/drinks/coffee = 12); desc = "A vending machine which vends food."; product_ads = "Sufficiently healthy."},/turf/open/floor/plasteel/neutral/side{dir = 6},/area/crew_quarters/cafeteria{name = "Lunchroom"}) +"aKQ" = (/obj/structure/toilet{dir = 4},/obj/effect/landmark/start{name = "Assistant"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet{name = "\improper Auxiliary Restroom"}) +"aKR" = (/obj/machinery/light/small,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet{name = "\improper Auxiliary Restroom"}) +"aKS" = (/obj/structure/cable,/obj/machinery/power/apc{cell_type = 5000; dir = 2; name = "Auxiliary Restrooms APC"; pixel_y = -24},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet{name = "\improper Auxiliary Restroom"}) +"aKT" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plating{burnt = 1; icon_state = "panelscorched"},/area/maintenance/fsmaint2) +"aKU" = (/obj/item/weapon/storage/box/lights/mixed,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aKV" = (/obj/item/weapon/extinguisher,/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/fsmaint2) +"aKW" = (/obj/structure/grille/broken,/obj/item/weapon/crowbar,/turf/open/floor/plating{broken = 1; icon_state = "platingdmg3"},/area/maintenance/fsmaint2) +"aKX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aKY" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aKZ" = (/obj/item/trash/pistachios,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aLa" = (/obj/structure/grille,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aLb" = (/obj/item/weapon/shard{icon_state = "small"},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aLc" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating{broken = 1; icon_state = "platingdmg3"},/area/maintenance/fsmaint2) +"aLd" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots{pixel_x = -4; pixel_y = 3},/obj/item/clothing/shoes/magboots{pixel_x = 0; pixel_y = 0},/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = -27},/turf/open/floor/plasteel/darkwarning{tag = "icon-warndark (EAST)"; dir = 4},/area/storage/eva) +"aLe" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/storage/eva) +"aLf" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/turf/open/floor/plasteel/warning/end{dir = 1},/area/storage/eva) +"aLg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/storage/eva) +"aLh" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/tank/jetpack/carbondioxide{pixel_x = 0; pixel_y = 0},/obj/item/weapon/tank/jetpack/carbondioxide{pixel_x = -4; pixel_y = 1},/turf/open/floor/plasteel/darkwarning{dir = 8},/area/storage/eva) +"aLi" = (/obj/structure/closet/crate,/obj/item/weapon/melee/flyswatter,/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = -27},/turf/open/floor/plasteel/blue/corner{dir = 1},/area/teleporter) +"aLj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/teleporter) +"aLk" = (/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/teleporter) +"aLl" = (/turf/open/floor/plasteel,/area/teleporter) +"aLm" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters{id = "teleshutter"; name = "Teleporter Shutter"},/turf/open/floor/plasteel/delivery,/area/teleporter) +"aLn" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/brown/corner{dir = 1},/area/hallway/primary/central) +"aLo" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/brown/corner{dir = 4},/area/hallway/primary/central) +"aLp" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/security/checkpoint/supply) +"aLq" = (/obj/machinery/recharger{pixel_y = 4},/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/checkpoint/supply) +"aLr" = (/obj/structure/chair/office/dark{dir = 1},/obj/effect/landmark/start/depsec/supply,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; layer = 2.4; on = 1},/turf/open/floor/plasteel,/area/security/checkpoint/supply) +"aLs" = (/obj/structure/filingcabinet,/turf/open/floor/plasteel/red/side{dir = 4},/area/security/checkpoint/supply) +"aLt" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/disposalpipe/wrapsortjunction{dir = 1},/turf/open/floor/plating,/area/quartermaster/office) +"aLu" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/warning{dir = 1},/area/quartermaster/office) +"aLv" = (/turf/open/floor/plasteel/warning{dir = 1},/area/quartermaster/office) +"aLw" = (/obj/machinery/conveyor_switch/oneway{id = "packageSort2"},/turf/open/floor/plasteel/warning{dir = 1},/area/quartermaster/office) +"aLx" = (/obj/structure/table,/obj/item/device/destTagger,/turf/open/floor/plasteel/warning{dir = 1},/area/quartermaster/office) +"aLy" = (/obj/item/stack/wrapping_paper{pixel_x = 3; pixel_y = 4},/obj/item/stack/packageWrap{pixel_x = -1; pixel_y = -1},/obj/structure/table,/turf/open/floor/plasteel/warning{dir = 1},/area/quartermaster/office) +"aLz" = (/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/hand_labeler,/obj/item/weapon/hand_labeler,/obj/structure/table,/obj/machinery/requests_console{department = "Cargo Bay"; departmentType = 2; pixel_x = 32; pixel_y = 0},/turf/open/floor/plasteel/warning{dir = 1},/area/quartermaster/office) +"aLA" = (/obj/structure/closet/crate/freezer,/obj/structure/sign/poster{pixel_x = -32; pixel_y = 0},/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) +"aLB" = (/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) +"aLC" = (/obj/structure/closet/crate,/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) +"aLD" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/apmaint) +"aLE" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/apmaint) +"aLF" = (/obj/machinery/mass_driver{dir = 1; id = "trash"},/obj/machinery/button/massdriver{id = "trash"; pixel_x = -28; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/disposal) +"aLG" = (/obj/machinery/mineral/stacking_machine{input_dir = 8; output_dir = 4},/turf/open/floor/plating,/area/maintenance/disposal) +"aLH" = (/obj/machinery/conveyor{dir = 4; id = "garbagestacked"},/obj/machinery/mineral/stacking_unit_console{dir = 2; machinedir = 8; pixel_x = -32; pixel_y = 32},/turf/open/floor/plating,/area/maintenance/disposal) +"aLI" = (/obj/machinery/conveyor{dir = 4; id = "garbagestacked"},/turf/open/floor/plating,/area/maintenance/disposal) +"aLJ" = (/obj/machinery/disposal/deliveryChute{dir = 8},/obj/structure/disposalpipe/trunk{dir = 4},/turf/open/floor/plating,/area/maintenance/disposal) +"aLK" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/disposal) +"aLL" = (/obj/structure/chair{dir = 4},/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"aLM" = (/obj/structure/chair{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"aLN" = (/obj/structure/chair{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"aLO" = (/turf/open/floor/carpet,/area/shuttle/escape) +"aLP" = (/obj/structure/chair/comfy/beige,/turf/open/floor/carpet,/area/shuttle/escape) +"aLQ" = (/obj/structure/chair{dir = 8},/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"aLR" = (/obj/structure/table,/obj/item/weapon/storage/firstaid,/turf/open/floor/plasteel/escape{tag = "icon-escape (NORTHWEST)"; dir = 9},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aLS" = (/obj/structure/chair,/turf/open/floor/plasteel/escape{dir = 1},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aLT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/escape{dir = 1},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aLU" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/escape{dir = 1},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aLV" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 26},/turf/open/floor/plasteel/escape{dir = 1},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aLW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/plasteel/escape{dir = 1},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aLX" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-16"; layer = 4.1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{cell_type = 5000; dir = 4; name = "Departure Lounge APC"; pixel_x = 24; pixel_y = 0},/obj/machinery/firealarm{dir = 1; pixel_y = 29},/turf/open/floor/plasteel/escape{dir = 5},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aLY" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/turf/open/floor/plasteel/neutral/side{dir = 10},/area/storage/art) +"aLZ" = (/obj/structure/table,/obj/item/weapon/storage/crayons,/obj/item/weapon/storage/crayons,/obj/machinery/light,/obj/machinery/camera{c_tag = "Art Storage"; dir = 1},/turf/open/floor/plasteel/neutral/side,/area/storage/art) +"aMa" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 20; layer = 3.1},/obj/item/stack/sheet/glass{amount = 20; layer = 3.2},/obj/item/stack/rods{amount = 20; layer = 3.3},/obj/item/weapon/canvas/twentythreeXtwentythree,/obj/item/weapon/canvas/nineteenXnineteen,/turf/open/floor/plasteel/neutral/side{dir = 6},/area/storage/art) +"aMb" = (/obj/structure/grille/broken,/turf/open/floor/plating{burnt = 1; icon_state = "panelscorched"},/area/maintenance/fsmaint2) +"aMc" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aMd" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aMe" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aMf" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aMg" = (/obj/machinery/suit_storage_unit/standard_unit,/obj/machinery/light{dir = 8},/obj/machinery/requests_console{department = "EVA"; pixel_x = -32; pixel_y = 0},/obj/machinery/camera{c_tag = "EVA Storage"; dir = 4; network = list("SS13")},/turf/open/floor/plasteel/darkwarning{tag = "icon-warndark (EAST)"; dir = 4},/area/storage/eva) +"aMh" = (/obj/structure/tank_dispenser/oxygen,/turf/open/floor/plasteel/warning/end,/area/storage/eva) +"aMi" = (/obj/machinery/suit_storage_unit/standard_unit,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/darkwarning{dir = 8},/area/storage/eva) +"aMj" = (/obj/structure/table,/obj/item/weapon/hand_tele,/obj/machinery/light{dir = 8},/obj/machinery/camera{c_tag = "Teleporter"; dir = 4; network = list("SS13")},/turf/open/floor/plasteel/blue/corner{dir = 1},/area/teleporter) +"aMk" = (/obj/structure/chair/stool,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel,/area/teleporter) +"aMl" = (/obj/structure/chair/stool,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/plasteel,/area/teleporter) +"aMm" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/teleporter) +"aMn" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/blue/corner{dir = 4},/area/teleporter) +"aMo" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters{id = "teleshutter"; name = "Teleporter Shutter"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/delivery,/area/teleporter) +"aMp" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/brown/corner{dir = 1},/area/hallway/primary/central) +"aMq" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/obj/structure/cable{icon_state = "1-8"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aMr" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/brown/corner{dir = 4},/area/hallway/primary/central) +"aMs" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/security/checkpoint/supply) +"aMt" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/checkpoint/supply) +"aMu" = (/turf/open/floor/plasteel,/area/security/checkpoint/supply) +"aMv" = (/turf/open/floor/plasteel/red/side{dir = 4},/area/security/checkpoint/supply) +"aMw" = (/obj/machinery/door/airlock/glass_security{name = "Cargo Security Post"; req_access_txt = "63"},/turf/open/floor/plasteel/red/side{dir = 8},/area/quartermaster/office) +"aMx" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1},/turf/open/floor/plasteel,/area/quartermaster/office) +"aMy" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/office) +"aMz" = (/obj/structure/chair/stool,/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/effect/landmark/start{name = "Cargo Technician"},/turf/open/floor/plasteel,/area/quartermaster/office) +"aMA" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/quartermaster/office) +"aMB" = (/obj/machinery/door/window/eastleft{dir = 8; icon_state = "right"; name = "Mail"; req_access_txt = "50"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light/small,/turf/open/floor/plating,/area/quartermaster/office) +"aMC" = (/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/disposaloutlet{dir = 8},/turf/open/floor/plating/warnplate{dir = 4},/area/quartermaster/office) +"aMD" = (/obj/effect/spawner/lootdrop/maintenance,/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1},/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) +"aME" = (/obj/item/stack/sheet/cardboard,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) +"aMF" = (/obj/structure/closet/crate,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) +"aMG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) +"aMH" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; layer = 2.4; on = 1},/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) +"aMI" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/quartermaster/storage) +"aMJ" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"},/turf/open/floor/plating/airless,/area/shuttle/supply) +"aMK" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/weapon/shard,/turf/open/floor/plating,/area/maintenance/apmaint) +"aML" = (/obj/machinery/light/small{dir = 8},/obj/machinery/conveyor{dir = 2; id = "garbage"},/turf/open/floor/plating,/area/maintenance/disposal) +"aMM" = (/obj/machinery/conveyor{dir = 4; id = "garbage"},/turf/open/floor/plating,/area/maintenance/disposal) +"aMN" = (/obj/machinery/light/small{dir = 4},/obj/structure/disposalpipe/segment,/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/disposal) +"aMO" = (/obj/structure/chair/comfy/beige{dir = 4},/turf/open/floor/carpet,/area/shuttle/escape) +"aMP" = (/obj/structure/table/wood/poker,/obj/item/toy/cards/deck,/turf/open/floor/carpet,/area/shuttle/escape) +"aMQ" = (/obj/structure/chair/comfy/beige{dir = 8},/turf/open/floor/carpet,/area/shuttle/escape) +"aMR" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/escape{dir = 8},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aMS" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aMT" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aMU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aMV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aMW" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Departure Lounge"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aMX" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/central) +"aMY" = (/obj/machinery/light/small{dir = 1},/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-22"},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aMZ" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-22"},/turf/open/floor/plating{broken = 1; icon_state = "platingdmg3"},/area/maintenance/fsmaint2) +"aNa" = (/turf/open/floor/plating{broken = 1; icon_state = "platingdmg3"},/area/maintenance/fsmaint2) +"aNb" = (/obj/item/trash/cheesie,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aNc" = (/obj/structure/girder,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aNd" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/obj/item/clothing/gloves/color/random,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aNe" = (/obj/machinery/power/apc{dir = 1; name = "Bar Maintenance APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aNf" = (/turf/closed/wall,/area/crew_quarters/bar) +"aNg" = (/obj/structure/grille/broken,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aNh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aNi" = (/obj/machinery/suit_storage_unit/standard_unit,/turf/open/floor/plasteel/darkwarning{tag = "icon-warndark (EAST)"; dir = 4},/area/storage/eva) +"aNj" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/storage/eva) +"aNk" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/storage/eva) +"aNl" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel,/area/storage/eva) +"aNm" = (/obj/machinery/suit_storage_unit/standard_unit,/turf/open/floor/plasteel/darkwarning{dir = 8},/area/storage/eva) +"aNn" = (/obj/structure/table,/obj/item/device/radio/beacon,/turf/open/floor/plasteel/blue/side{dir = 10},/area/teleporter) +"aNo" = (/obj/machinery/computer/teleporter,/turf/open/floor/plasteel/blue/side,/area/teleporter) +"aNp" = (/obj/machinery/teleport/station,/turf/open/floor/plasteel/blue/side,/area/teleporter) +"aNq" = (/obj/machinery/teleport/hub,/turf/open/floor/plating,/area/teleporter) +"aNr" = (/obj/structure/closet/crate,/obj/item/weapon/crowbar,/turf/open/floor/plasteel/blue/side{dir = 6},/area/teleporter) +"aNs" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/hallway/primary/central) +"aNt" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/brown/corner{dir = 4},/area/hallway/primary/central) +"aNu" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 8; name = "Security Post - Cargo APC"; pixel_x = -24; pixel_y = 0},/obj/structure/closet/wardrobe/red,/turf/open/floor/plasteel/red/side{dir = 10},/area/security/checkpoint/supply) +"aNv" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/red/side,/area/security/checkpoint/supply) +"aNw" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/red/side{dir = 6},/area/security/checkpoint/supply) +"aNx" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/quartermaster/office) +"aNy" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/quartermaster/office) +"aNz" = (/turf/open/floor/plasteel,/area/quartermaster/office) +"aNA" = (/obj/machinery/holopad,/turf/open/floor/plasteel,/area/quartermaster/office) +"aNB" = (/obj/structure/disposalpipe/wrapsortjunction{dir = 1},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel,/area/quartermaster/office) +"aNC" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/camera{c_tag = "Cargo Mailroom"; dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel,/area/quartermaster/office) +"aND" = (/obj/machinery/button/door{id = "qm_warehouse"; name = "Warehouse Door Control"; pixel_x = -24; pixel_y = 0; req_access_txt = "31"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) +"aNE" = (/obj/item/device/flashlight,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) +"aNF" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) +"aNG" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) +"aNH" = (/obj/structure/closet/crate/medical,/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) +"aNI" = (/turf/closed/wall/mineral/titanium,/area/shuttle/supply) +"aNJ" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 1},/obj/structure/window/reinforced,/turf/open/floor/plating/airless,/area/shuttle/supply) +"aNK" = (/obj/structure/disposalpipe/sortjunction{dir = 2; icon_state = "pipe-j2s"; sortType = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/apmaint) +"aNL" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/closed/wall,/area/maintenance/disposal) +"aNM" = (/obj/machinery/conveyor{dir = 8; id = "garbage"},/obj/structure/disposaloutlet{dir = 4},/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/disposal) +"aNN" = (/obj/machinery/conveyor{dir = 8; id = "garbage"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/disposal) +"aNO" = (/obj/machinery/conveyor{dir = 8; id = "garbage"},/obj/machinery/recycler,/turf/open/floor/plating,/area/maintenance/disposal) +"aNP" = (/obj/machinery/conveyor{dir = 2; id = "garbage"},/turf/open/floor/plating,/area/maintenance/disposal) +"aNQ" = (/obj/structure/disposalpipe/segment,/obj/effect/landmark{name = "revenantspawn"},/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/disposal) +"aNR" = (/obj/structure/chair/comfy/beige{tag = "icon-comfychair (NORTH)"; icon_state = "comfychair"; dir = 1},/turf/open/floor/carpet,/area/shuttle/escape) +"aNS" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = -32; pixel_y = 0},/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aNT" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aNU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aNV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aNW" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aNX" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Departure Lounge"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aNY" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/central) +"aNZ" = (/obj/structure/disposalpipe/junction{dir = 8; icon_state = "pipe-j2"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aOa" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/neutral/corner,/area/hallway/primary/central) +"aOb" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aOc" = (/obj/structure/grille/broken,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aOd" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aOe" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aOf" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plating{broken = 1; icon_state = "platingdmg3"},/area/maintenance/fsmaint2) +"aOg" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plating{burnt = 1; icon_state = "panelscorched"},/area/maintenance/fsmaint2) +"aOh" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating{burnt = 1; icon_state = "panelscorched"},/area/maintenance/fsmaint2) +"aOi" = (/obj/structure/grille,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aOj" = (/obj/structure/grille/broken,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aOk" = (/obj/item/weapon/reagent_containers/glass/bucket,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aOl" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aOm" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aOn" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aOo" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating{broken = 1; icon_state = "platingdmg3"},/area/maintenance/fsmaint2) +"aOp" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aOq" = (/obj/machinery/reagentgrinder,/obj/structure/table/wood,/turf/open/floor/wood,/area/crew_quarters/bar) +"aOr" = (/obj/machinery/vending/cigarette,/obj/machinery/light{dir = 1},/turf/open/floor/wood{icon_state = "wood-broken6"},/area/crew_quarters/bar) +"aOs" = (/obj/machinery/vending/coffee,/obj/machinery/camera{c_tag = "Bar Backroom"; dir = 2; network = list("SS13")},/turf/open/floor/wood,/area/crew_quarters/bar) +"aOt" = (/obj/structure/closet/secure_closet/bar{req_access_txt = "25"},/turf/open/floor/wood,/area/crew_quarters/bar) +"aOu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aOv" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/weapon/broken_bottle,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aOw" = (/obj/structure/table,/obj/item/stack/sheet/plasteel{amount = 10},/turf/open/floor/plasteel/darkwarning{tag = "icon-warndark (EAST)"; dir = 4},/area/storage/eva) +"aOx" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/weapon/crowbar,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 2; name = "E.V.A. Storage APC"; pixel_y = -24},/turf/open/floor/plasteel,/area/storage/eva) +"aOy" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/storage/eva) +"aOz" = (/obj/structure/table,/obj/item/stack/sheet/rglass{amount = 50},/obj/item/stack/sheet/rglass{amount = 50},/obj/item/stack/rods{amount = 50},/obj/item/stack/rods{amount = 50},/obj/machinery/airalarm{dir = 1; pixel_y = -22},/turf/open/floor/plasteel,/area/storage/eva) +"aOA" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/rglass{amount = 50},/turf/open/floor/plasteel/darkwarning{dir = 8},/area/storage/eva) +"aOB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/brown/corner{dir = 1; tag = "icon-browncorner (NORTH)"},/area/hallway/primary/central) +"aOC" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/checkpoint/supply) +"aOD" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Cargo Security Post"; req_access_txt = "63"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/side{dir = 1},/area/security/checkpoint/supply) +"aOE" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/quartermaster/office) +"aOF" = (/obj/structure/chair/stool,/turf/open/floor/plasteel,/area/quartermaster/office) +"aOG" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/yellow,/obj/item/weapon/pen,/obj/item/weapon/paper_bin{layer = 2.9; pixel_x = 0; pixel_y = 0; tag = "every single paper bin is edited to this"},/turf/open/floor/plasteel,/area/quartermaster/office) +"aOH" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/quartermaster/office) +"aOI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/quartermaster/office) +"aOJ" = (/obj/structure/closet/crate,/obj/item/weapon/reagent_containers/food/snacks/donut,/obj/item/weapon/reagent_containers/food/snacks/donut,/obj/item/weapon/reagent_containers/food/snacks/donut,/obj/item/weapon/reagent_containers/food/snacks/donut,/turf/open/floor/plating,/area/quartermaster/office) +"aOK" = (/obj/machinery/door/poddoor/shutters{id = "qm_warehouse"; name = "warehouse shutters"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/delivery{name = "floor"},/area/quartermaster/storage) +"aOL" = (/obj/machinery/door/poddoor/shutters{id = "qm_warehouse"; name = "warehouse shutters"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/delivery{name = "floor"},/area/quartermaster/storage) +"aOM" = (/obj/machinery/door/poddoor/shutters{id = "qm_warehouse"; name = "warehouse shutters"},/turf/open/floor/plasteel/delivery{name = "floor"},/area/quartermaster/storage) +"aON" = (/obj/structure/closet/crate/internals,/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) +"aOO" = (/turf/open/floor/mineral/titanium/blue,/area/shuttle/supply) +"aOP" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/apmaint) +"aOQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/maintenance/disposal) +"aOR" = (/obj/structure/chair{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/disposal) +"aOS" = (/obj/item/trash/can,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/disposal) +"aOT" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/disposal) +"aOU" = (/obj/machinery/conveyor_switch/oneway{convdir = -1; id = "garbage"; name = "disposal coveyor"},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/disposal) +"aOV" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/disposal) +"aOW" = (/obj/structure/disposalpipe/segment,/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/open/floor/plating/warnplate/corner{tag = "icon-warnplatecorner (EAST)"; dir = 4},/area/maintenance/disposal) +"aOX" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/turf/open/floor/plating,/area/shuttle/escape) +"aOY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aOZ" = (/obj/structure/chair,/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aPa" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aPb" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/vending/coffee,/turf/open/floor/plasteel,/area/hallway/primary/central) +"aPc" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aPd" = (/obj/structure/cable{icon_state = "1-8"},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aPe" = (/turf/closed/wall,/area/hydroponics) +"aPf" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/maintenance{name = "Hydroponics Maintenance"; req_access_txt = "35"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/hydroponics) +"aPg" = (/turf/closed/wall,/area/crew_quarters/kitchen) +"aPh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/light/small{brightness = 3; dir = 8},/turf/open/floor/plating,/area/crew_quarters/kitchen) +"aPi" = (/obj/structure/plasticflaps{opacity = 1},/turf/open/floor/plating{broken = 1; icon_state = "platingdmg3"},/area/maintenance/fsmaint2) +"aPj" = (/obj/item/weapon/reagent_containers/food/drinks/shaker,/obj/item/weapon/gun/projectile/revolver/doublebarrel,/obj/structure/table/wood,/obj/item/weapon/coin/silver,/turf/open/floor/wood,/area/crew_quarters/bar) +"aPk" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/wood{icon_state = "wood-broken"},/area/crew_quarters/bar) +"aPl" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/wood,/area/crew_quarters/bar) +"aPm" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/wood,/area/crew_quarters/bar) +"aPn" = (/obj/machinery/door/airlock/maintenance{name = "Bar Storage Maintenance"; req_access_txt = "25"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/crew_quarters/bar) +"aPo" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4; initialize_directions = 11},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aPp" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/chair,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aPq" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/maintenance{name = "EVA Maintenance"; req_access_txt = "18"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/storage/eva) +"aPr" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aPs" = (/obj/item/trash/tray,/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aPt" = (/obj/structure/closet/secure_closet/freezer/cream_pie,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aPu" = (/obj/structure/closet/secure_closet/freezer/cream_pie,/obj/item/seeds/banana,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aPv" = (/turf/open/floor/plasteel/brown/corner{dir = 4},/area/quartermaster/office) +"aPw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/brown/corner{dir = 4},/area/quartermaster/office) +"aPx" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/obj/structure/table/reinforced,/obj/machinery/door/window/westleft{dir = 1; name = "Delivery Desk"; req_access_txt = "50"},/turf/open/floor/plasteel/bot,/area/quartermaster/office) +"aPy" = (/obj/machinery/door/firedoor,/obj/structure/table/reinforced,/obj/machinery/door/window/westleft{dir = 1; name = "Delivery Desk"; req_access_txt = "50"},/turf/open/floor/plasteel/bot,/area/quartermaster/office) +"aPz" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/glass_mining{name = "Mailroom"; req_access_txt = "0"; req_one_access_txt = "48;50"},/turf/open/floor/plasteel,/area/quartermaster/office) +"aPA" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/quartermaster/office) +"aPB" = (/obj/machinery/button/door{id = "qm_warehouse"; name = "Warehouse Door Control"; pixel_x = -24; pixel_y = 0; req_access_txt = "31"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/warning{dir = 1},/area/quartermaster/storage) +"aPC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/warning{dir = 1},/area/quartermaster/storage) +"aPD" = (/turf/open/floor/plasteel/warning{dir = 1},/area/quartermaster/storage) +"aPE" = (/obj/machinery/power/apc{cell_type = 2500; dir = 4; name = "Cargo Maintenance APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/apmaint) +"aPF" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/plating,/area/maintenance/disposal) +"aPG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/disposal) +"aPH" = (/obj/machinery/power/apc{dir = 4; name = "Disposal APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/disposal) +"aPI" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Infirmary"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"aPJ" = (/obj/machinery/status_display{dir = 4; layer = 4; pixel_x = -32; pixel_y = 0},/obj/machinery/camera{c_tag = "Departure Lounge"; dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aPK" = (/obj/effect/landmark/event_spawn,/obj/item/device/radio/beacon,/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aPL" = (/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aPM" = (/obj/structure/table,/obj/item/weapon/storage/box/matches{pixel_x = -3; pixel_y = 8},/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aPN" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aPO" = (/obj/structure/sink{pixel_y = 28},/obj/machinery/firealarm{dir = 8; pixel_x = -28},/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) +"aPP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) +"aPQ" = (/obj/structure/closet/secure_closet/hydroponics,/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) +"aPR" = (/obj/structure/closet/secure_closet/hydroponics,/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) +"aPS" = (/obj/machinery/airalarm{pixel_y = 24},/obj/machinery/camera{c_tag = "Hydroponics Storage"},/obj/machinery/plantgenes,/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) +"aPT" = (/obj/machinery/chem_master/condimaster,/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) +"aPU" = (/obj/structure/table,/obj/item/weapon/book/manual/hydroponics_pod_people,/obj/item/weapon/paper/hydroponics,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/glass/bottle/mutagen,/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) +"aPV" = (/obj/machinery/door/airlock/maintenance{name = "Kitchen Maintenance"; req_access_txt = "28"},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/crew_quarters/kitchen) +"aPW" = (/obj/machinery/chem_master/condimaster{name = "CondiMaster Neo"; pixel_x = -4},/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) +"aPX" = (/obj/machinery/gibber,/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) +"aPY" = (/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) +"aPZ" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; freq = 1400; location = "Kitchen"},/obj/machinery/door/window/southleft{base_state = "left"; dir = 8; icon_state = "left"; name = "Kitchen Delivery"; req_access_txt = "28"},/turf/open/floor/plasteel/vault{dir = 8},/area/crew_quarters/kitchen) +"aQa" = (/turf/open/floor/plasteel/vault{dir = 8},/area/maintenance/fsmaint2) +"aQb" = (/turf/open/floor/wood{icon_state = "wood-broken6"},/area/crew_quarters/bar) +"aQc" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1},/turf/open/floor/wood,/area/crew_quarters/bar) +"aQd" = (/turf/open/floor/wood,/area/crew_quarters/bar) +"aQe" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/wood,/area/crew_quarters/bar) +"aQf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aQg" = (/obj/item/weapon/weldingtool,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aQh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aQi" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aQj" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aQk" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/office) +"aQl" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/office) +"aQm" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel,/area/quartermaster/office) +"aQn" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/brown/corner{dir = 4},/area/quartermaster/office) +"aQo" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel/brown/corner{dir = 4},/area/quartermaster/office) +"aQp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/brown/corner{dir = 4},/area/quartermaster/office) +"aQq" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/quartermaster/office) +"aQr" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/turf/open/floor/plasteel,/area/quartermaster/office) +"aQs" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/office) +"aQt" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/quartermaster/office) +"aQu" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/requests_console{department = "Cargo Bay"; departmentType = 2; pixel_x = 0; pixel_y = 32},/turf/open/floor/plasteel,/area/quartermaster/storage) +"aQv" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/turf/open/floor/plasteel,/area/quartermaster/storage) +"aQw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel,/area/quartermaster/storage) +"aQx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/quartermaster/storage) +"aQy" = (/turf/open/floor/plasteel,/area/quartermaster/storage) +"aQz" = (/obj/machinery/light{dir = 1},/obj/machinery/conveyor{dir = 8; id = "QMLoad"},/obj/machinery/airalarm{pixel_y = 22},/turf/open/floor/plating,/area/quartermaster/storage) +"aQA" = (/obj/machinery/conveyor{dir = 8; id = "QMLoad"},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 30; supply_display = 1},/turf/open/floor/plating,/area/quartermaster/storage) +"aQB" = (/obj/machinery/conveyor{dir = 8; id = "QMLoad"},/obj/structure/sign/poster{pixel_x = 0; pixel_y = 32},/turf/open/floor/plating,/area/quartermaster/storage) +"aQC" = (/obj/machinery/conveyor{dir = 8; id = "QMLoad"},/turf/open/floor/plating,/area/quartermaster/storage) +"aQD" = (/obj/machinery/door/poddoor{id = "QMLoaddoor"; name = "supply dock loading door"},/obj/machinery/conveyor{dir = 8; id = "QMLoad"},/turf/open/floor/plating,/area/quartermaster/storage) +"aQE" = (/obj/structure/plasticflaps,/obj/machinery/conveyor{dir = 8; id = "QMLoad"},/turf/open/floor/plating,/area/quartermaster/storage) +"aQF" = (/obj/machinery/door/poddoor{id = "QMLoaddoor"; name = "supply dock loading door"},/obj/machinery/conveyor{dir = 8; id = "QMLoad"},/turf/open/floor/plating,/area/shuttle/supply) +"aQG" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating,/area/maintenance/apmaint) +"aQH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/cable{icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/apmaint) +"aQI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/apmaint) +"aQJ" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/junction{dir = 2; icon_state = "pipe-y"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/apmaint) +"aQK" = (/obj/machinery/door/airlock/maintenance{name = "Disposal Access"; req_access_txt = "12"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/disposal) +"aQL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/disposal) +"aQM" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plating,/area/maintenance/disposal) +"aQN" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/disposal) +"aQO" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/solar{id = "portsolar"; name = "Port Solar Array"},/turf/open/floor/plasteel/airless/solarpanel,/area/solar/starboard{name = "Starboard Solar Array"}) +"aQP" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/solar{id = "starboardsolar"; name = "Starboard Solar Array"},/turf/open/floor/plasteel/airless/solarpanel,/area/solar/starboard{name = "Starboard Solar Array"}) +"aQQ" = (/obj/machinery/sleeper{dir = 4; icon_state = "sleeper-open"},/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"aQR" = (/obj/machinery/vending/medical,/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"aQS" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"aQT" = (/obj/machinery/light,/turf/open/floor/plating,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aQU" = (/obj/structure/chair{dir = 1; name = "Command Station"},/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aQV" = (/obj/machinery/camera{c_tag = "Central Primary Hallway Escape"; dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/firealarm{dir = 4; pixel_x = 28},/turf/open/floor/plasteel/neutral/corner,/area/hallway/primary/central) +"aQW" = (/obj/structure/extinguisher_cabinet{pixel_x = -24},/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) +"aQX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) +"aQY" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) +"aQZ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) +"aRa" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) +"aRb" = (/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) +"aRc" = (/obj/structure/table,/obj/item/weapon/reagent_containers/spray/plantbgone{pixel_x = 0; pixel_y = 3},/obj/item/weapon/reagent_containers/spray/plantbgone{pixel_x = 8; pixel_y = 8},/obj/item/weapon/reagent_containers/spray/plantbgone{pixel_x = 13; pixel_y = 5},/obj/item/weapon/watertank,/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) +"aRd" = (/obj/structure/kitchenspike,/obj/item/device/assembly/mousetrap,/obj/item/trash/deadmouse,/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) +"aRe" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) +"aRf" = (/obj/machinery/camera{c_tag = "Kitchen Cold Room"; dir = 2; network = list("SS13")},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; layer = 2.4; on = 1},/obj/machinery/requests_console{department = "Kitchen"; departmentType = 2; pixel_x = 0; pixel_y = 30},/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) +"aRg" = (/obj/structure/plasticflaps{opacity = 1},/turf/open/floor/plasteel/vault{dir = 8},/area/maintenance/fsmaint2) +"aRh" = (/obj/structure/reagent_dispensers/beerkeg,/turf/open/floor/wood,/area/crew_quarters/bar) +"aRi" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/wood,/area/crew_quarters/bar) +"aRj" = (/obj/structure/closet/gmcloset,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/cable_coil,/turf/open/floor/wood{icon_state = "wood-broken5"},/area/crew_quarters/bar) +"aRk" = (/turf/closed/wall,/area/crew_quarters/theatre) +"aRl" = (/obj/machinery/door/airlock/maintenance{name = "Theatre Maintenance"; req_access_txt = "0"; req_one_access_txt = "12;46"},/turf/open/floor/plating,/area/crew_quarters/theatre) +"aRm" = (/obj/machinery/door/airlock/maintenance{name = "Theatre Maintenance"; req_access_txt = "0"; req_one_access_txt = "12;46"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/crew_quarters/theatre) +"aRn" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/camera{c_tag = "Central Primary Hallway Cargo"; dir = 4},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/brown/corner{dir = 1; tag = "icon-browncorner (NORTH)"},/area/hallway/primary/central) +"aRo" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aRp" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/primary/central) +"aRq" = (/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/office) +"aRr" = (/obj/machinery/holopad,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/office) +"aRs" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel,/area/quartermaster/office) +"aRt" = (/obj/machinery/door/airlock/glass_mining{name = "Cargo Bay"; req_access_txt = "0"; req_one_access_txt = "31;48"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/office) +"aRu" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/quartermaster/office) +"aRv" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel,/area/quartermaster/office) +"aRw" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel,/area/quartermaster/office) +"aRx" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/office) +"aRy" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/storage) +"aRz" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/quartermaster/storage) +"aRA" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel,/area/quartermaster/storage) +"aRB" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel,/area/quartermaster/storage) +"aRC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/warning{dir = 1},/area/quartermaster/storage) +"aRD" = (/obj/machinery/door/airlock/external{name = "Supply Dock Airlock"; req_access_txt = "31"},/turf/open/floor/plating,/area/quartermaster/storage) +"aRE" = (/obj/machinery/light/small,/turf/open/floor/plating,/area/quartermaster/storage) +"aRF" = (/obj/machinery/door/airlock/shuttle{name = "Supply Shuttle Airlock"; req_access_txt = "31"},/obj/docking_port/mobile/supply{dir = 4},/obj/docking_port/stationary{dir = 4; dwidth = 5; height = 7; id = "supply_home"; name = "Cargo Bay"; width = 12},/turf/open/floor/plating,/area/shuttle/supply) +"aRG" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance,/obj/item/weapon/storage/toolbox/mechanical,/turf/open/floor/plating,/area/maintenance/apmaint) +"aRH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/apmaint) +"aRI" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/crowbar,/obj/structure/sign/nosmoking_2{pixel_x = 32},/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"aRJ" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aRK" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aRL" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aRM" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aRN" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Departure Lounge"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aRO" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/central) +"aRP" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aRQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/neutral/corner,/area/hallway/primary/central) +"aRR" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aRS" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/light/small,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aRT" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aRU" = (/obj/structure/plasticflaps{opacity = 1},/turf/open/floor/plasteel/vault{dir = 8},/area/hydroponics) +"aRV" = (/obj/machinery/door/window/eastright{name = "Hydroponics Delivery"; req_access_txt = "35"},/obj/machinery/navbeacon{codes_txt = "delivery;dir=4"; dir = 1; freq = 1400; location = "Hydroponics"},/turf/open/floor/plasteel/delivery,/area/hydroponics) +"aRW" = (/obj/structure/closet/crate/hydroponics,/obj/item/weapon/shovel/spade,/obj/item/weapon/wrench,/obj/item/weapon/reagent_containers/glass/bucket,/obj/item/weapon/reagent_containers/glass/bucket,/obj/item/weapon/wirecutters,/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) +"aRX" = (/obj/structure/closet/wardrobe/botanist,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) +"aRY" = (/obj/machinery/power/apc{name = "Hydroponics APC"; pixel_y = -24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) +"aRZ" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) +"aSa" = (/obj/machinery/light/small,/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) +"aSb" = (/obj/structure/table,/obj/machinery/reagentgrinder,/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) +"aSc" = (/obj/machinery/icecream_vat,/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) +"aSd" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) +"aSe" = (/mob/living/simple_animal/hostile/retaliate/goat{name = "Pete"},/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) +"aSf" = (/obj/machinery/holopad,/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) +"aSg" = (/obj/machinery/light{dir = 4},/obj/machinery/airalarm{dir = 8; pixel_x = 23; pixel_y = 0},/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) +"aSh" = (/obj/machinery/door/window/southleft{base_state = "left"; dir = 2; icon_state = "left"; name = "Bar Delivery"; req_access_txt = "25"},/obj/machinery/navbeacon{codes_txt = "delivery;dir=2"; freq = 1400; location = "Bar"},/turf/open/floor/plasteel/delivery,/area/crew_quarters/bar) +"aSi" = (/obj/machinery/door/airlock{name = "Bar Storage"; req_access_txt = "25"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/crew_quarters/bar) +"aSj" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/turf/open/floor/plasteel/black,/area/crew_quarters/bar) +"aSk" = (/obj/structure/sign/poster{pixel_x = -32},/turf/open/floor/wood,/area/crew_quarters/theatre) +"aSl" = (/turf/open/floor/carpet{icon_state = "carpetsymbol"},/area/crew_quarters/theatre) +"aSm" = (/obj/structure/sign/poster{pixel_y = 32},/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-04"; layer = 4.1},/turf/open/floor/carpet{icon_state = "carpetsymbol"},/area/crew_quarters/theatre) +"aSn" = (/obj/machinery/camera{c_tag = "Theatre Stage"; dir = 2},/obj/machinery/light/small{dir = 1},/turf/open/floor/carpet{icon_state = "carpetsymbol"},/area/crew_quarters/theatre) +"aSo" = (/obj/structure/sign/poster{pixel_x = 32},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/crew_quarters/theatre) +"aSp" = (/obj/structure/table/wood,/obj/item/weapon/lipstick/random{pixel_x = 2; pixel_y = 2},/obj/item/clothing/gloves/color/rainbow/clown,/obj/machinery/airalarm{pixel_y = 22},/obj/item/weapon/book/random,/obj/item/weapon/lipstick/random,/turf/open/floor/plasteel/black,/area/crew_quarters/theatre) +"aSq" = (/obj/structure/dresser,/obj/machinery/light{dir = 1},/obj/structure/sign/poster{pixel_y = 32},/turf/open/floor/plasteel/black,/area/crew_quarters/theatre) +"aSr" = (/obj/machinery/vending/autodrobe,/obj/machinery/computer/security/telescreen/entertainment{pixel_y = 32},/turf/open/floor/plasteel/black,/area/crew_quarters/theatre) +"aSs" = (/obj/machinery/door/airlock/maintenance{name = "Theatre Maintenance"; req_access_txt = "46"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/crew_quarters/theatre) +"aSt" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/brown/corner{dir = 1; tag = "icon-browncorner (NORTH)"},/area/hallway/primary/central) +"aSu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/office) +"aSv" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel,/area/quartermaster/office) +"aSw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/plasteel/loadingarea{dir = 8},/area/quartermaster/office) +"aSx" = (/obj/structure/plasticflaps{opacity = 1},/obj/machinery/conveyor{dir = 4; id = "cargodeliver"},/turf/open/floor/plasteel/delivery{name = "floor"},/area/quartermaster/office) +"aSy" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/brown{dir = 8},/area/quartermaster/office) +"aSz" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel,/area/quartermaster/office) +"aSA" = (/obj/machinery/conveyor_switch/oneway{convdir = -1; id = "cargodeliver"},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/plasteel/brown{dir = 4},/area/quartermaster/office) +"aSB" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=4"; freq = 1400; location = "QM #1"},/mob/living/simple_animal/bot/mulebot{beacon_freq = 1400; home_destination = "QM #1"; suffix = "#1"},/turf/open/floor/plasteel/bot,/area/quartermaster/storage) +"aSC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/warning{dir = 8},/area/quartermaster/storage) +"aSD" = (/obj/effect/landmark/start{name = "Cargo Technician"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/bot,/area/quartermaster/storage) +"aSE" = (/turf/open/floor/plasteel/bot,/area/quartermaster/storage) +"aSF" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel,/area/quartermaster/storage) +"aSG" = (/obj/machinery/conveyor_switch/oneway{convdir = -1; id = "QMLoad"},/obj/machinery/button/door{id = "QMLoaddoor2"; layer = 4; name = "Loading Doors"; pixel_x = 24; pixel_y = -8},/obj/machinery/button/door{dir = 2; id = "QMLoaddoor"; layer = 4; name = "Loading Doors"; pixel_x = 24; pixel_y = 8},/obj/machinery/camera{c_tag = "Cargo Supply Dock"; dir = 8},/turf/open/floor/plasteel,/area/quartermaster/storage) +"aSH" = (/obj/machinery/button/door{id = "QMLoaddoor2"; layer = 4; name = "Loading Doors"; pixel_x = -24; pixel_y = -8},/obj/machinery/button/door{dir = 2; id = "QMLoaddoor"; layer = 4; name = "Loading Doors"; pixel_x = -24; pixel_y = 8},/turf/open/floor/mineral/titanium/blue,/area/shuttle/supply) +"aSI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/apmaint) +"aSJ" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/apmaint) +"aSK" = (/obj/structure/easel,/turf/open/floor/plating,/area/maintenance/apmaint) +"aSL" = (/obj/structure/closet/l3closet/scientist,/obj/item/weapon/book/manual/wiki/chemistry,/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/maintenance/apmaint) +"aSM" = (/obj/structure/closet,/obj/item/weapon/canvas/twentythreeXnineteen,/obj/item/weapon/canvas/nineteenXnineteen,/obj/item/weapon/canvas/twentythreeXtwentythree,/obj/item/weapon/storage/crayons,/turf/open/floor/plating,/area/maintenance/apmaint) +"aSN" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/turf/open/floor/plating/airless,/area/shuttle/escape) +"aSO" = (/obj/structure/table,/obj/item/weapon/defibrillator/loaded,/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"aSP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aSQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aSR" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Departure Lounge"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aSS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/central) +"aST" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4; initialize_directions = 11},/obj/structure/sign/directions/evac{dir = 1; icon_state = "direction_evac"; pixel_x = 32; pixel_y = 0; tag = "icon-direction_evac (NORTH)"},/turf/open/floor/plasteel/neutral/corner,/area/hallway/primary/central) +"aSU" = (/turf/closed/wall,/area/janitor) +"aSV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/janitor) +"aSW" = (/obj/machinery/door/window/eastright{dir = 2; name = "Janitor Delivery"; req_access_txt = "26"},/obj/machinery/navbeacon{codes_txt = "delivery;dir=1"; dir = 1; freq = 1400; location = "Janitor"},/turf/open/floor/plasteel/vault{dir = 8},/area/janitor) +"aSX" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Hydroponics"; req_access_txt = "35"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hydroponics) +"aSY" = (/obj/structure/closet/chefcloset,/obj/item/weapon/wrench,/obj/item/weapon/crowbar,/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) +"aSZ" = (/obj/machinery/power/apc{dir = 2; name = "Kitchen APC"; pixel_y = -24},/obj/structure/cable,/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) +"aTa" = (/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen{name = "Kitchen Coldroom"}) +"aTb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) +"aTc" = (/obj/structure/closet/secure_closet/freezer/kitchen,/obj/item/weapon/reagent_containers/food/snacks/grown/potato,/obj/item/weapon/reagent_containers/food/snacks/grown/potato,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) +"aTd" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/crew_quarters/kitchen) +"aTe" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/extinguisher_cabinet{pixel_x = -24},/turf/open/floor/plasteel/black,/area/crew_quarters/bar) +"aTf" = (/obj/machinery/light/small{dir = 1},/obj/structure/sign/securearea{desc = "Under the painting a plaque reads: 'While the meat grinder may not have spared you, fear not. Not one part of you has gone to waste... You were delicious.'"; icon_state = "monkey_painting"; name = "Mr. Deempisi portrait"; pixel_x = 0; pixel_y = 28},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/crew_quarters/bar) +"aTg" = (/obj/structure/sink/kitchen{pixel_y = 28},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/crew_quarters/bar) +"aTh" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/crew_quarters/bar) +"aTi" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/requests_console{department = "Bar"; departmentType = 2; pixel_x = 0; pixel_y = 30},/obj/machinery/camera{c_tag = "Bar Access"; dir = 2; network = list("SS13")},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/crew_quarters/bar) +"aTj" = (/obj/machinery/light/small{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 26},/turf/open/floor/plasteel/black,/area/crew_quarters/bar) +"aTk" = (/obj/machinery/power/apc{dir = 4; name = "Bar APC"; pixel_x = 27},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/black,/area/crew_quarters/bar) +"aTl" = (/obj/structure/piano{tag = "icon-piano"; icon_state = "piano"},/turf/open/floor/wood,/area/crew_quarters/theatre) +"aTm" = (/obj/structure/chair/wood/normal{icon_state = "wooden_chair"; dir = 8},/turf/open/floor/carpet{icon_state = "carpetsymbol"},/area/crew_quarters/theatre) +"aTn" = (/obj/structure/chair/wood/normal,/mob/living/carbon/monkey/punpun,/turf/open/floor/carpet{icon_state = "carpetsymbol"},/area/crew_quarters/theatre) +"aTo" = (/obj/structure/table/wood,/obj/item/device/instrument/violin,/turf/open/floor/carpet{icon_state = "carpetsymbol"},/area/crew_quarters/theatre) +"aTp" = (/obj/structure/table/wood,/obj/item/device/instrument/guitar,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/crew_quarters/theatre) +"aTq" = (/obj/machinery/power/apc{dir = 8; name = "Theatre APC"; pixel_x = -25},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel/redblue,/area/crew_quarters/theatre) +"aTr" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/landmark/start{name = "Mime"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel/redblue,/area/crew_quarters/theatre) +"aTs" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/redblue,/area/crew_quarters/theatre) +"aTt" = (/obj/machinery/light/small{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/sign/poster{pixel_y = 32},/turf/open/floor/plasteel/redblue,/area/crew_quarters/theatre) +"aTu" = (/obj/structure/cable{icon_state = "1-8"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/obj/machinery/light_switch{pixel_x = 24; pixel_y = 24},/obj/structure/mirror{pixel_x = 28; pixel_y = -2},/turf/open/floor/plasteel/redblue,/area/crew_quarters/theatre) +"aTv" = (/obj/machinery/computer/cargo/request,/turf/open/floor/plasteel/brown/corner,/area/quartermaster/office) +"aTw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/brown/corner,/area/quartermaster/office) +"aTx" = (/turf/open/floor/plasteel/brown/corner,/area/quartermaster/office) +"aTy" = (/obj/machinery/door/firedoor,/obj/machinery/mineral/ore_redemption{input_dir = 4; output_dir = 8},/turf/open/floor/plasteel/black,/area/quartermaster/office) +"aTz" = (/obj/machinery/status_display{dir = 8; layer = 4; pixel_x = 32; pixel_y = 0; supply_display = 1},/turf/open/floor/plasteel/brown{dir = 4},/area/quartermaster/office) +"aTA" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=4"; freq = 1400; location = "QM #2"},/obj/machinery/camera{c_tag = "Cargo Bay"; dir = 4},/turf/open/floor/plasteel/bot,/area/quartermaster/storage) +"aTB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/bot,/area/quartermaster/storage) +"aTC" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plasteel/bot,/area/quartermaster/storage) +"aTD" = (/turf/open/floor/plasteel/warning,/area/quartermaster/storage) +"aTE" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/quartermaster/storage) +"aTF" = (/obj/machinery/door/airlock/shuttle{name = "Supply Shuttle Airlock"; req_access_txt = "31"},/turf/open/floor/plating,/area/shuttle/supply) +"aTG" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible,/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/plating,/area/maintenance/apmaint) +"aTH" = (/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plating,/area/maintenance/apmaint) +"aTI" = (/obj/structure/shuttle/engine/propulsion,/turf/open/floor/plating/airless,/area/shuttle/escape) +"aTJ" = (/obj/structure/table,/obj/item/toy/cards/deck,/turf/open/floor/plasteel/escape{dir = 10},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aTK" = (/obj/structure/chair{dir = 1},/obj/machinery/airalarm{dir = 1; pixel_y = -22},/turf/open/floor/plasteel/escape,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aTL" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/escape,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aTM" = (/obj/structure/chair{dir = 1},/obj/machinery/light,/turf/open/floor/plasteel/escape,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aTN" = (/turf/open/floor/plasteel/escape,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aTO" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-14"; layer = 4.1},/turf/open/floor/plasteel/escape{dir = 6},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aTP" = (/obj/machinery/washing_machine,/obj/structure/sign/securearea{desc = "Under the painting a plaque reads: 'While the meat grinder may not have spared you, fear not. Not one part of you has gone to waste... You were delicious.'"; icon_state = "monkey_painting"; name = "Mr. Deempisi portrait"; pixel_x = 0; pixel_y = 28},/turf/open/floor/plasteel/black,/area/janitor) +"aTQ" = (/obj/machinery/camera{c_tag = "Custodial Quarters"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/light/small{dir = 1},/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 26},/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/black,/area/janitor) +"aTR" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/effect/landmark/start{name = "Janitor"},/turf/open/floor/plasteel/black,/area/janitor) +"aTS" = (/obj/machinery/hydroponics/constructable,/turf/open/floor/plasteel/green/side{dir = 9},/area/hydroponics) +"aTT" = (/obj/machinery/hydroponics/constructable,/turf/open/floor/plasteel/green/corner{dir = 4},/area/hydroponics) +"aTU" = (/obj/structure/sink{pixel_y = 28},/turf/open/floor/plasteel,/area/hydroponics) +"aTV" = (/obj/structure/disposalpipe/sortjunction{dir = 2; icon_state = "pipe-j2s"; sortType = 21},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hydroponics) +"aTW" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/obj/machinery/light_switch{pixel_x = -4; pixel_y = 30},/turf/open/floor/plasteel/green/corner{dir = 4},/area/hydroponics) +"aTX" = (/obj/structure/closet/secure_closet/freezer/meat,/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) +"aTY" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) +"aTZ" = (/obj/structure/closet/secure_closet/freezer/fridge,/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) +"aUa" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plasteel/black,/area/crew_quarters/bar) +"aUb" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/black,/area/crew_quarters/bar) +"aUc" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/crew_quarters/bar) +"aUd" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/disposalpipe/sortjunction{dir = 4; icon_state = "pipe-j1s"; sortType = 19},/turf/open/floor/plasteel/black,/area/crew_quarters/bar) +"aUe" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/black,/area/crew_quarters/bar) +"aUf" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 4},/turf/open/floor/plasteel/black,/area/crew_quarters/bar) +"aUg" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/crew_quarters/bar) +"aUh" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/sign/poster{pixel_x = -32},/obj/machinery/light/small{brightness = 3; dir = 8},/turf/open/floor/wood,/area/crew_quarters/theatre) +"aUi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/carpet{icon_state = "carpetsymbol"},/area/crew_quarters/theatre) +"aUj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/effect/landmark/event_spawn,/turf/open/floor/carpet{icon_state = "carpetsymbol"},/area/crew_quarters/theatre) +"aUk" = (/obj/structure/sign/poster{pixel_x = 32},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/obj/machinery/light/small{dir = 4},/turf/open/floor/wood,/area/crew_quarters/theatre) +"aUl" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plasteel/redblue,/area/crew_quarters/theatre) +"aUm" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/camera{c_tag = "Theatre Storage"; dir = 1},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel/redblue,/area/crew_quarters/theatre) +"aUn" = (/obj/structure/disposalpipe/sortjunction{dir = 4; icon_state = "pipe-j1s"; sortType = 18},/obj/machinery/requests_console{department = "Theatre"; departmentType = 0; name = "theatre RC"; pixel_x = -32; pixel_y = -32},/turf/open/floor/plasteel/redblue,/area/crew_quarters/theatre) +"aUo" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/redblue,/area/crew_quarters/theatre) +"aUp" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/mirror{pixel_x = 28; pixel_y = -2},/turf/open/floor/plasteel/redblue,/area/crew_quarters/theatre) +"aUq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/crew_quarters/theatre) +"aUr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/brown/corner{dir = 1; tag = "icon-browncorner (NORTH)"},/area/hallway/primary/central) +"aUs" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/brown/corner{dir = 4},/area/hallway/primary/central) +"aUt" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor,/obj/machinery/door/window/westleft{dir = 2; name = "Cargo Desk"; req_access_txt = "50"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/quartermaster/office) +"aUu" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor,/obj/machinery/door/window/westleft{dir = 2; name = "Cargo Desk"; req_access_txt = "50"},/turf/open/floor/plasteel,/area/quartermaster/office) +"aUv" = (/obj/machinery/door/firedoor,/obj/machinery/autolathe,/turf/open/floor/plasteel/black,/area/quartermaster/office) +"aUw" = (/obj/machinery/newscaster{pixel_x = 32},/obj/machinery/camera{c_tag = "Cargo Foyer"; dir = 8},/turf/open/floor/plasteel/brown{dir = 4},/area/quartermaster/office) +"aUx" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=4"; freq = 1400; location = "QM #3"},/mob/living/simple_animal/bot/mulebot{home_destination = "QM #2"; suffix = "#2"},/turf/open/floor/plasteel/bot,/area/quartermaster/storage) +"aUy" = (/obj/effect/spawner/lootdrop/maintenance,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/bot,/area/quartermaster/storage) +"aUz" = (/obj/machinery/conveyor{dir = 8; id = "QMLoad2"},/turf/open/floor/plating,/area/quartermaster/storage) +"aUA" = (/obj/machinery/door/poddoor{id = "QMLoaddoor2"; name = "supply dock loading door"},/obj/machinery/conveyor{dir = 8; id = "QMLoad2"},/turf/open/floor/plating,/area/quartermaster/storage) +"aUB" = (/obj/structure/plasticflaps,/obj/machinery/conveyor{dir = 8; id = "QMLoad2"},/turf/open/floor/plating,/area/quartermaster/storage) +"aUC" = (/obj/machinery/door/poddoor{id = "QMLoaddoor2"; name = "supply dock loading door"},/obj/machinery/conveyor{dir = 8; id = "QMLoad2"},/turf/open/floor/plating,/area/shuttle/supply) +"aUD" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 1},/obj/item/device/assembly/timer{pixel_x = 0; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/apmaint) +"aUE" = (/obj/effect/decal/remains/human,/turf/open/floor/plating,/area/maintenance/apmaint) +"aUF" = (/obj/structure/chair/stool,/turf/open/floor/plating,/area/maintenance/apmaint) +"aUG" = (/turf/closed/wall/r_wall,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"aUH" = (/turf/closed/wall/r_wall,/area/security/checkpoint2{name = "Customs"}) +"aUI" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/shutters/preopen{id = "papersplease"; name = "security shutters"},/turf/open/floor/plating,/area/security/checkpoint2{name = "Customs"}) +"aUJ" = (/obj/machinery/door/firedoor,/obj/structure/table/reinforced,/obj/machinery/door/window/westright{dir = 2; name = "Security Checkpoint"; req_access_txt = "1"},/obj/machinery/door/window/northleft{dir = 1; icon_state = "left"; name = "Reception Window"; req_access_txt = "0"},/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "papersplease"; layer = 3.1; name = "privacy shutters"; opacity = 0},/turf/open/floor/plasteel/delivery,/area/security/checkpoint2{name = "Customs"}) +"aUK" = (/turf/closed/wall,/area/security/checkpoint2{name = "Customs"}) +"aUL" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/central) +"aUM" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/neutral/corner,/area/hallway/primary/central) +"aUN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/janitor) +"aUO" = (/obj/structure/bedsheetbin,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/vault,/area/janitor) +"aUP" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/vault,/area/janitor) +"aUQ" = (/obj/structure/table,/obj/item/clothing/under/maid,/obj/item/key/janitor,/obj/item/weapon/storage/box/mousetraps,/turf/open/floor/plasteel/vault,/area/janitor) +"aUR" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/open/floor/plasteel/green/side{dir = 8},/area/hydroponics) +"aUS" = (/obj/item/weapon/reagent_containers/glass/bucket,/turf/open/floor/plasteel,/area/hydroponics) +"aUT" = (/turf/open/floor/plasteel,/area/hydroponics) +"aUU" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hydroponics) +"aUV" = (/obj/machinery/biogenerator,/obj/machinery/requests_console{department = "Hydroponics"; departmentType = 2; pixel_x = 0; pixel_y = 30},/turf/open/floor/plasteel/green/corner{dir = 4},/area/hydroponics) +"aUW" = (/obj/machinery/hydroponics/constructable,/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 26},/turf/open/floor/plasteel/green/side{dir = 1},/area/hydroponics) +"aUX" = (/obj/machinery/hydroponics/constructable,/obj/structure/sign/botany{pixel_y = 32},/turf/open/floor/plasteel/green/side{dir = 1},/area/hydroponics) +"aUY" = (/obj/machinery/hydroponics/constructable,/turf/open/floor/plasteel/green/side{dir = 1},/area/hydroponics) +"aUZ" = (/obj/machinery/door/airlock{name = "Kitchen Cold Room"; req_access_txt = "28"},/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) +"aVa" = (/obj/machinery/door/airlock{name = "Bar Access"; req_access_txt = "28"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/black,/area/crew_quarters/kitchen) +"aVb" = (/obj/machinery/door/airlock{cyclelinkeddir = 4; name = "Bar Access"; req_access_txt = "25"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/black,/area/crew_quarters/bar) +"aVc" = (/obj/machinery/door/airlock{cyclelinkeddir = 8; name = "Bar Access"; req_access_txt = "0"; req_one_access_txt = "25; 28"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/crew_quarters/bar) +"aVd" = (/obj/structure/window/reinforced,/obj/item/device/flashlight/lantern,/turf/open/floor/wood,/area/crew_quarters/theatre) +"aVe" = (/obj/structure/window/reinforced,/turf/open/floor/wood,/area/crew_quarters/theatre) +"aVf" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/wood,/area/crew_quarters/theatre) +"aVg" = (/obj/machinery/door/window{base_state = "right"; icon_state = "right"},/turf/open/floor/wood,/area/crew_quarters/theatre) +"aVh" = (/obj/item/device/flashlight/lantern,/obj/structure/window/reinforced,/turf/open/floor/wood,/area/crew_quarters/theatre) +"aVi" = (/obj/machinery/door/airlock{name = "Theatre Storage"; req_access_txt = "46"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/redblue,/area/crew_quarters/theatre) +"aVj" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 1},/turf/open/floor/plasteel/redblue,/area/crew_quarters/theatre) +"aVk" = (/obj/effect/landmark/start{name = "Clown"},/turf/open/floor/plasteel/redblue,/area/crew_quarters/theatre) +"aVl" = (/obj/item/cardboard_cutout,/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = 30},/turf/open/floor/plasteel/redblue,/area/crew_quarters/theatre) +"aVm" = (/obj/machinery/computer/cargo,/obj/machinery/requests_console{department = "Cargo Bay"; departmentType = 2; pixel_x = -32; pixel_y = 0},/turf/open/floor/plasteel/brown{dir = 1},/area/quartermaster/office) +"aVn" = (/obj/structure/chair/office/dark{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/brown{dir = 1},/area/quartermaster/office) +"aVo" = (/obj/structure/chair/office/dark{dir = 1},/obj/effect/landmark/start{name = "Cargo Technician"},/turf/open/floor/plasteel/brown{dir = 1},/area/quartermaster/office) +"aVp" = (/obj/item/weapon/stamp{pixel_x = -3; pixel_y = 3},/obj/item/weapon/stamp/denied{pixel_x = 4; pixel_y = -2},/obj/structure/table,/turf/open/floor/plasteel/brown{dir = 1},/area/quartermaster/office) +"aVq" = (/turf/open/floor/plasteel/brown{dir = 1},/area/quartermaster/office) +"aVr" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/turf/open/floor/plasteel/brown{dir = 1},/area/quartermaster/office) +"aVs" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/disposalpipe/segment{dir = 4},/turf/closed/wall,/area/quartermaster/office) +"aVt" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/firealarm{dir = 4; pixel_x = 28},/turf/open/floor/plasteel/brown{dir = 4},/area/quartermaster/office) +"aVu" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=4"; freq = 1400; location = "QM #4"},/turf/open/floor/plasteel/bot,/area/quartermaster/storage) +"aVv" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel/warning{dir = 8},/area/quartermaster/storage) +"aVw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/bot,/area/quartermaster/storage) +"aVx" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/storage) +"aVy" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/bot,/area/quartermaster/storage) +"aVz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel,/area/quartermaster/storage) +"aVA" = (/obj/machinery/conveyor_switch/oneway{convdir = 1; id = "QMLoad2"},/turf/open/floor/plasteel/warning{dir = 1},/area/quartermaster/storage) +"aVB" = (/obj/structure/grille/broken,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/apmaint) +"aVC" = (/obj/structure/table,/obj/item/stack/cable_coil,/obj/item/stack/cable_coil,/obj/effect/spawner/lootdrop/maintenance,/obj/item/weapon/storage/box/matches,/turf/open/floor/plating,/area/maintenance/apmaint) +"aVD" = (/obj/structure/table,/obj/item/device/assembly/igniter,/obj/item/device/assembly/igniter,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/apmaint) +"aVE" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 10},/obj/item/stack/rods{amount = 25},/obj/item/weapon/shard{icon_state = "small"},/obj/effect/decal/cleanable/deadcockroach,/obj/item/weapon/light/bulb,/turf/open/floor/plating,/area/maintenance/apmaint) +"aVF" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/hallway/secondary/entry) +"aVG" = (/turf/closed/wall/r_wall,/area/hallway/secondary/entry) +"aVH" = (/obj/machinery/computer/security,/obj/machinery/requests_console{department = "Security"; departmentType = 5; pixel_y = 30},/obj/structure/reagent_dispensers/peppertank{pixel_x = -32; pixel_y = 0},/turf/open/floor/plasteel/red/side{dir = 9},/area/security/checkpoint2{name = "Customs"}) +"aVI" = (/turf/open/floor/plasteel/red/side{dir = 1},/area/security/checkpoint2{name = "Customs"}) +"aVJ" = (/obj/structure/closet/wardrobe/red,/turf/open/floor/plasteel/red/side{dir = 1},/area/security/checkpoint2{name = "Customs"}) +"aVK" = (/obj/structure/closet/secure_closet/security,/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 26},/turf/open/floor/plasteel/red/side{tag = "icon-red (NORTHEAST)"; dir = 5},/area/security/checkpoint2{name = "Customs"}) +"aVL" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/sign/poster{pixel_x = 32},/turf/open/floor/plasteel/neutral/corner,/area/hallway/primary/central) +"aVM" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock{name = "Custodial Quarters"; req_access_txt = "26"},/turf/open/floor/plasteel/vault{dir = 5},/area/janitor) +"aVN" = (/obj/machinery/hydroponics/constructable,/turf/open/floor/plasteel/green/side{dir = 8},/area/hydroponics) +"aVO" = (/turf/open/floor/plasteel/green/corner{dir = 4},/area/hydroponics) +"aVP" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/green/corner{dir = 1},/area/hydroponics) +"aVQ" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel,/area/hydroponics) +"aVR" = (/obj/machinery/vending/dinnerware,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"aVS" = (/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"aVT" = (/obj/structure/sink/kitchen{pixel_y = 28},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"aVU" = (/obj/machinery/processor,/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 26},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"aVV" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/disposalpipe/segment,/obj/machinery/firealarm{dir = 4; pixel_x = 28},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"aVW" = (/obj/structure/table,/obj/machinery/chem_dispenser/drinks/beer,/turf/open/floor/plasteel/black,/area/crew_quarters/bar) +"aVX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/black,/area/crew_quarters/bar) +"aVY" = (/obj/structure/table/reinforced,/obj/machinery/chem_dispenser/drinks,/turf/open/floor/plasteel/darkred/side{dir = 8},/area/crew_quarters/bar) +"aVZ" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/black,/area/crew_quarters/bar) +"aWa" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/vault{dir = 5},/area/crew_quarters/bar) +"aWb" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/crew_quarters/bar) +"aWc" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/vault{dir = 5},/area/crew_quarters/bar) +"aWd" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/vault{dir = 5},/area/crew_quarters/bar) +"aWe" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 1},/obj/machinery/firealarm{dir = 4; pixel_x = 28},/turf/open/floor/plasteel/black,/area/crew_quarters/bar) +"aWf" = (/obj/structure/table/wood,/obj/item/weapon/soap,/obj/item/weapon/bikehorn,/turf/open/floor/plasteel/black,/area/crew_quarters/theatre) +"aWg" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/bananalamp{pixel_y = 3},/turf/open/floor/plasteel/black,/area/crew_quarters/theatre) +"aWh" = (/obj/structure/table/wood,/obj/item/weapon/storage/crayons{pixel_x = 3; pixel_y = 3},/obj/item/weapon/reagent_containers/food/snacks/pie/cream{pixel_x = -3; pixel_y = -3},/turf/open/floor/plasteel/black,/area/crew_quarters/theatre) +"aWi" = (/obj/structure/extinguisher_cabinet{pixel_x = -24},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/brown/corner{dir = 1; tag = "icon-browncorner (NORTH)"},/area/hallway/primary/central) +"aWj" = (/obj/structure/table,/obj/machinery/computer/stockexchange,/obj/machinery/status_display{dir = 4; layer = 4; pixel_x = -32; pixel_y = 0; supply_display = 1},/turf/open/floor/plasteel,/area/quartermaster/office) +"aWk" = (/obj/structure/disposalpipe/junction{dir = 8; icon_state = "pipe-j1"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel,/area/quartermaster/office) +"aWl" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_mining{name = "Cargo Office"; req_access_txt = "50"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/office) +"aWm" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel,/area/quartermaster/office) +"aWn" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/quartermaster/office) +"aWo" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/storage) +"aWp" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/quartermaster/storage) +"aWq" = (/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j2s"; sortType = 3},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/quartermaster/storage) +"aWr" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/quartermaster/storage) +"aWs" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/quartermaster/storage) +"aWt" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/quartermaster/storage) +"aWu" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/apmaint) +"aWv" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/apmaint) +"aWw" = (/obj/structure/cable{icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plating,/area/maintenance/apmaint) +"aWx" = (/turf/open/floor/plasteel/arrival{dir = 1},/area/hallway/secondary/entry) +"aWy" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel/arrival{dir = 1},/area/hallway/secondary/entry) +"aWz" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/open/floor/plasteel/arrival{dir = 1},/area/hallway/secondary/entry) +"aWA" = (/obj/machinery/camera{c_tag = "Arrivals Fore"; dir = 2},/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/open/floor/plasteel/arrival{dir = 1},/area/hallway/secondary/entry) +"aWB" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 26},/turf/open/floor/plasteel/arrival{dir = 1},/area/hallway/secondary/entry) +"aWC" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/obj/machinery/airalarm{pixel_y = 22},/turf/open/floor/plasteel/arrival{dir = 1},/area/hallway/secondary/entry) +"aWD" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (SOUTHWEST)"; icon_state = "intact"; dir = 10},/turf/open/floor/plasteel/arrival{dir = 1},/area/hallway/secondary/entry) +"aWE" = (/obj/machinery/computer/card,/obj/machinery/light{dir = 8},/obj/machinery/camera{c_tag = "Security Checkpoint"; dir = 4; network = list("SS13")},/obj/machinery/airalarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/checkpoint2{name = "Customs"}) +"aWF" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/security/checkpoint2{name = "Customs"}) +"aWG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel,/area/security/checkpoint2{name = "Customs"}) +"aWH" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel,/area/security/checkpoint2{name = "Customs"}) +"aWI" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/red/side{tag = "icon-red (EAST)"; dir = 4},/area/security/checkpoint2{name = "Customs"}) +"aWJ" = (/obj/machinery/door/airlock/security{name = "Security Checkpoint"; req_access = null; req_access_txt = "1"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/red,/area/security/checkpoint2{name = "Customs"}) +"aWK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/primary/central) +"aWL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{icon_state = "1-8"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aWM" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel/neutral/corner,/area/hallway/primary/central) +"aWN" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/obj/machinery/airalarm{pixel_y = 24},/turf/open/floor/plasteel/floorgrime,/area/janitor) +"aWO" = (/turf/open/floor/plasteel/floorgrime,/area/janitor) +"aWP" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plasteel/floorgrime,/area/janitor) +"aWQ" = (/obj/machinery/hydroponics/constructable,/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/green/side{dir = 8},/area/hydroponics) +"aWR" = (/turf/open/floor/plasteel/green/side{dir = 4},/area/hydroponics) +"aWS" = (/obj/machinery/vending/hydronutrients,/turf/open/floor/plasteel/vault{dir = 5},/area/hydroponics) +"aWT" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/green/side{dir = 8},/area/hydroponics) +"aWU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hydroponics) +"aWV" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/hydroponics) +"aWW" = (/obj/effect/landmark/start{name = "Botanist"},/turf/open/floor/plasteel,/area/hydroponics) +"aWX" = (/obj/machinery/smartfridge,/turf/open/floor/plasteel/vault{dir = 8},/area/crew_quarters/kitchen) +"aWY" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"aWZ" = (/obj/machinery/vending/boozeomat,/turf/open/floor/plasteel/vault{dir = 8},/area/crew_quarters/kitchen) +"aXa" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel/black,/area/crew_quarters/bar) +"aXb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/black,/area/crew_quarters/bar) +"aXc" = (/obj/structure/table/reinforced,/obj/item/weapon/book/manual/barman_recipes,/obj/item/weapon/reagent_containers/glass/rag,/turf/open/floor/plasteel/darkred/side{dir = 8},/area/crew_quarters/bar) +"aXd" = (/obj/structure/chair/stool/bar,/obj/machinery/computer/security/telescreen/entertainment{pixel_y = 32},/turf/open/floor/plasteel/black,/area/crew_quarters/bar) +"aXe" = (/turf/open/floor/plasteel/vault{dir = 5},/area/crew_quarters/bar) +"aXf" = (/turf/open/floor/plasteel/black,/area/crew_quarters/bar) +"aXg" = (/obj/structure/chair/wood/normal,/turf/open/floor/plasteel/black,/area/crew_quarters/bar) +"aXh" = (/obj/effect/landmark/start{name = "Assistant"},/obj/structure/chair/wood/normal,/turf/open/floor/plasteel/vault{dir = 5},/area/crew_quarters/bar) +"aXi" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel/black,/area/crew_quarters/bar) +"aXj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/chair/wood/normal,/turf/open/floor/plasteel/vault{dir = 5},/area/crew_quarters/bar) +"aXk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/chair/wood/normal,/turf/open/floor/plasteel/black,/area/crew_quarters/bar) +"aXl" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/vault{dir = 5},/area/crew_quarters/bar) +"aXm" = (/obj/structure/disposalpipe/segment,/obj/machinery/newscaster{pixel_x = 32},/obj/structure/chair/wood/normal,/turf/open/floor/plasteel/vault{dir = 5},/area/crew_quarters/bar) +"aXn" = (/obj/machinery/firealarm{dir = 4; pixel_x = -28},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/brown/corner{dir = 1; tag = "icon-browncorner (NORTH)"},/area/hallway/primary/central) +"aXo" = (/obj/structure/table,/obj/item/weapon/pen,/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -26},/obj/item/weapon/paper_bin{layer = 2.9; pixel_x = 0; pixel_y = 0; tag = "every single paper bin is edited to this"},/turf/open/floor/plasteel,/area/quartermaster/office) +"aXp" = (/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/folder/yellow,/obj/machinery/airalarm{dir = 1; pixel_y = -22},/turf/open/floor/plasteel,/area/quartermaster/office) +"aXq" = (/obj/machinery/photocopier,/obj/machinery/light,/obj/machinery/camera{c_tag = "Cargo Office"; dir = 1},/turf/open/floor/plasteel,/area/quartermaster/office) +"aXr" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 2; name = "Cargo Office APC"; pixel_x = 1; pixel_y = -24},/turf/open/floor/plasteel,/area/quartermaster/office) +"aXs" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/quartermaster/office) +"aXt" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/quartermaster/office) +"aXu" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/closed/wall,/area/quartermaster/office) +"aXv" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/quartermaster/office) +"aXw" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel,/area/quartermaster/storage) +"aXx" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/storage) +"aXy" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/power/apc{dir = 2; name = "Cargo Bay APC"; pixel_x = 0; pixel_y = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel,/area/quartermaster/storage) +"aXz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -26},/turf/open/floor/plasteel,/area/quartermaster/storage) +"aXA" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/sortjunction{dir = 1; icon_state = "pipe-j1s"; sortType = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel,/area/quartermaster/storage) +"aXB" = (/obj/structure/disposalpipe/trunk{dir = 8},/obj/machinery/disposal/bin,/turf/open/floor/plasteel,/area/quartermaster/storage) +"aXC" = (/turf/closed/wall,/area/maintenance/auxsolarstarboard{name = "Starboard Solar Maintenance"}) +"aXD" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/auxsolarstarboard{name = "Starboard Solar Maintenance"}) +"aXE" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/solar{id = "portsolar"; name = "Port Solar Array"},/turf/open/floor/plasteel/airless/solarpanel,/area/solar/starboard{name = "Starboard Solar Array"}) +"aXF" = (/obj/machinery/light{dir = 8},/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"aXG" = (/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"aXH" = (/obj/machinery/holopad,/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"aXI" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"aXJ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"aXK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"aXL" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/hallway/secondary/entry) +"aXM" = (/obj/machinery/computer/secure_data,/obj/machinery/button/door{dir = 2; id = "papersplease"; name = "Shutters Control Button"; pixel_x = -26; pixel_y = 6; req_access_txt = "1"},/obj/machinery/button/flasher{id = "brigentry"; pixel_x = -26; pixel_y = -4},/turf/open/floor/plasteel/red/side{dir = 10},/area/security/checkpoint2{name = "Customs"}) +"aXN" = (/obj/item/weapon/pen,/obj/structure/table,/obj/item/weapon/paper_bin{layer = 2.9; pixel_x = 0; pixel_y = 0; tag = "every single paper bin is edited to this"},/turf/open/floor/plasteel/red/side,/area/security/checkpoint2{name = "Customs"}) +"aXO" = (/obj/structure/chair/office/dark,/obj/effect/landmark/event_spawn,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/side,/area/security/checkpoint2{name = "Customs"}) +"aXP" = (/obj/machinery/recharger{pixel_y = 4},/obj/structure/table,/turf/open/floor/plasteel/red/side,/area/security/checkpoint2{name = "Customs"}) +"aXQ" = (/obj/machinery/power/apc{dir = 2; name = "Security Checkpoint APC"; pixel_x = 1; pixel_y = -24},/obj/structure/cable,/turf/open/floor/plasteel/red/side{dir = 6},/area/security/checkpoint2{name = "Customs"}) +"aXR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aXS" = (/obj/vehicle/janicart,/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/janitor) +"aXT" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/floorgrime,/area/janitor) +"aXU" = (/obj/structure/closet/l3closet/janitor,/obj/machinery/requests_console{department = "Janitorial"; departmentType = 1; pixel_x = 32; pixel_y = 0},/turf/open/floor/plasteel/floorgrime,/area/janitor) +"aXV" = (/obj/effect/landmark/start{name = "Botanist"},/obj/machinery/holopad,/turf/open/floor/plasteel,/area/hydroponics) +"aXW" = (/obj/machinery/vending/hydroseeds{slogan_delay = 700},/turf/open/floor/plasteel/vault{dir = 5},/area/hydroponics) +"aXX" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/green/side{dir = 8},/area/hydroponics) +"aXY" = (/turf/open/floor/plasteel/green/corner,/area/hydroponics) +"aXZ" = (/turf/open/floor/plasteel/green/side,/area/hydroponics) +"aYa" = (/obj/structure/table/reinforced,/obj/machinery/door/window/eastleft{dir = 8; name = "Hydroponics Desk"; req_access_txt = "35"},/obj/machinery/door/firedoor,/obj/machinery/door/window/eastleft{dir = 4; name = "Kitchen Desk"; req_access_txt = "28"},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"aYb" = (/obj/effect/landmark/start{name = "Cook"},/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"aYc" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_x = 4; pixel_y = 4},/obj/item/weapon/reagent_containers/food/condiment/peppermill,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"aYd" = (/obj/structure/table,/obj/machinery/reagentgrinder,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"aYe" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor,/obj/item/weapon/reagent_containers/food/snacks/pie/cream,/obj/machinery/camera{c_tag = "Kitchen"; dir = 1; network = list("SS13")},/turf/open/floor/plasteel/hydrofloor,/area/crew_quarters/kitchen) +"aYf" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/black,/area/crew_quarters/bar) +"aYg" = (/obj/effect/landmark/start{name = "Bartender"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/black,/area/crew_quarters/bar) +"aYh" = (/obj/structure/table/reinforced,/obj/item/trash/plate,/turf/open/floor/plasteel/darkred/side{dir = 8},/area/crew_quarters/bar) +"aYi" = (/obj/structure/chair/stool/bar,/obj/effect/landmark/start{name = "Assistant"},/turf/open/floor/plasteel/vault{dir = 5},/area/crew_quarters/bar) +"aYj" = (/obj/item/trash/can,/obj/structure/table/wood/fancy,/turf/open/floor/plasteel/vault{dir = 5},/area/crew_quarters/bar) +"aYk" = (/obj/item/weapon/coin/silver,/obj/structure/table/wood/fancy,/turf/open/floor/plasteel/black,/area/crew_quarters/bar) +"aYl" = (/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/vault{dir = 5},/area/crew_quarters/bar) +"aYm" = (/obj/structure/table/wood/fancy,/obj/item/weapon/storage/fancy/candle_box,/turf/open/floor/plasteel/black,/area/crew_quarters/bar) +"aYn" = (/obj/structure/table/wood/fancy,/obj/item/toy/cards/deck,/turf/open/floor/plasteel/vault{dir = 5},/area/crew_quarters/bar) +"aYo" = (/obj/item/clothing/head/hardhat/cakehat,/obj/structure/disposalpipe/segment,/obj/structure/table/wood,/turf/open/floor/plasteel/black,/area/crew_quarters/bar) +"aYp" = (/obj/machinery/computer/slot_machine,/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 26},/turf/open/floor/carpet{icon_state = "carpetsymbol"},/area/crew_quarters/bar) +"aYq" = (/obj/machinery/computer/slot_machine,/obj/machinery/airalarm{pixel_y = 24},/turf/open/floor/carpet{icon_state = "carpetsymbol"},/area/crew_quarters/bar) +"aYr" = (/obj/machinery/computer/arcade,/obj/structure/noticeboard{pixel_y = 32},/turf/open/floor/carpet{icon_state = "carpetsymbol"},/area/crew_quarters/bar) +"aYs" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aYt" = (/obj/machinery/door/airlock/maintenance{name = "Cargo Office Maintenance"; req_access_txt = "50"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/quartermaster/office) +"aYu" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 6; pixel_y = -5},/turf/open/floor/plasteel,/area/quartermaster/office) +"aYv" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/hand_labeler,/obj/machinery/light/small,/turf/open/floor/plasteel,/area/quartermaster/office) +"aYw" = (/obj/structure/closet/wardrobe/cargotech,/obj/item/clothing/head/mailman,/obj/item/clothing/under/rank/mailman,/turf/open/floor/plasteel,/area/quartermaster/office) +"aYx" = (/turf/closed/wall,/area/quartermaster/qm) +"aYy" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/quartermaster/qm) +"aYz" = (/obj/machinery/door/airlock/glass_mining{name = "Quartermaster"; req_access_txt = "41"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/brown,/area/quartermaster/qm) +"aYA" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/quartermaster/qm) +"aYB" = (/turf/closed/wall,/area/quartermaster/miningdock) +"aYC" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/brown,/area/quartermaster/miningdock) +"aYD" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/brown,/area/quartermaster/miningdock) +"aYE" = (/obj/machinery/power/smes,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/open/floor/plating,/area/maintenance/auxsolarstarboard{name = "Starboard Solar Maintenance"}) +"aYF" = (/obj/machinery/power/terminal{dir = 8},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/maintenance/auxsolarstarboard{name = "Starboard Solar Maintenance"}) +"aYG" = (/obj/structure/rack,/obj/item/clothing/mask/gas,/obj/item/device/multitool,/turf/open/floor/plating,/area/maintenance/auxsolarstarboard{name = "Starboard Solar Maintenance"}) +"aYH" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 32; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/auxsolarstarboard{name = "Starboard Solar Maintenance"}) +"aYI" = (/obj/machinery/door/airlock/external{name = "Port Docking Bay 1"},/turf/open/floor/plating,/area/hallway/secondary/entry) +"aYJ" = (/turf/open/floor/plasteel/warning{dir = 8},/area/hallway/secondary/entry) +"aYK" = (/turf/open/floor/plasteel/warning{dir = 4},/area/hallway/secondary/entry) +"aYL" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"aYM" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/hallway/secondary/entry) +"aYN" = (/obj/machinery/door/firedoor,/obj/structure/table/reinforced,/obj/machinery/door/window/westright{dir = 1; name = "Security Checkpoint"; req_access_txt = "1"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/window/northleft{dir = 2; icon_state = "left"; name = "Reception Window"; req_access_txt = "0"},/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "papersplease"; layer = 3.1; name = "privacy shutters"; opacity = 0},/turf/open/floor/plasteel/delivery,/area/security/checkpoint2{name = "Customs"}) +"aYO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/sign/poster{pixel_x = 32},/turf/open/floor/plasteel/neutral/corner,/area/hallway/primary/central) +"aYP" = (/obj/structure/janitorialcart,/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/floorgrime,/area/janitor) +"aYQ" = (/obj/structure/closet/jcloset,/obj/item/clothing/head/crown,/obj/machinery/camera{c_tag = "Custodial Closet"; dir = 8},/obj/structure/extinguisher_cabinet{pixel_x = 24},/turf/open/floor/plasteel/floorgrime,/area/janitor) +"aYR" = (/obj/machinery/seed_extractor,/turf/open/floor/plasteel/vault{dir = 5},/area/hydroponics) +"aYS" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/camera{c_tag = "Hydroponics South"; dir = 8; network = list("SS13")},/turf/open/floor/plasteel,/area/hydroponics) +"aYT" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor,/obj/machinery/door/window/westright{dir = 1; name = "Hydroponics Desk"; req_access_txt = "35"},/obj/item/weapon/reagent_containers/glass/bucket,/turf/open/floor/plasteel,/area/hydroponics) +"aYU" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor,/obj/machinery/door/window/westright{dir = 1; name = "Hydroponics Desk"; req_access_txt = "35"},/turf/open/floor/plasteel,/area/hydroponics) +"aYV" = (/obj/structure/table,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"aYW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"aYX" = (/obj/structure/table,/obj/item/weapon/kitchen/rollingpin,/obj/item/weapon/reagent_containers/food/condiment/enzyme,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"aYY" = (/obj/structure/table,/obj/item/weapon/storage/box/ingredients/wildcard,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"aYZ" = (/obj/machinery/newscaster{pixel_y = 1},/turf/closed/wall,/area/crew_quarters/kitchen) +"aZa" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/crew_quarters/bar) +"aZb" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/black,/area/crew_quarters/bar) +"aZc" = (/obj/structure/table/reinforced,/obj/item/clothing/head/that{throwforce = 1; throwing = 1},/turf/open/floor/plasteel/darkred/side{dir = 8},/area/crew_quarters/bar) +"aZd" = (/obj/structure/chair/stool/bar,/turf/open/floor/plasteel/black,/area/crew_quarters/bar) +"aZe" = (/obj/structure/chair/wood/normal{icon_state = "wooden_chair"; dir = 1},/turf/open/floor/plasteel/black,/area/crew_quarters/bar) +"aZf" = (/obj/structure/chair/wood/normal{icon_state = "wooden_chair"; dir = 1},/turf/open/floor/plasteel/vault{dir = 5},/area/crew_quarters/bar) +"aZg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/crew_quarters/bar) +"aZh" = (/obj/effect/landmark/start{name = "Assistant"},/obj/structure/chair/wood/normal{icon_state = "wooden_chair"; dir = 1},/turf/open/floor/plasteel/black,/area/crew_quarters/bar) +"aZi" = (/obj/structure/disposalpipe/segment,/obj/structure/chair/wood/normal{icon_state = "wooden_chair"; dir = 1},/turf/open/floor/plasteel/vault{dir = 5},/area/crew_quarters/bar) +"aZj" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/open/floor/plasteel/black,/area/crew_quarters/bar) +"aZk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/chair/stool,/turf/open/floor/carpet{icon_state = "carpetsymbol"},/area/crew_quarters/bar) +"aZl" = (/obj/effect/landmark/start{name = "Assistant"},/obj/structure/chair/stool,/turf/open/floor/carpet{icon_state = "carpetsymbol"},/area/crew_quarters/bar) +"aZm" = (/obj/structure/chair/stool,/turf/open/floor/carpet{icon_state = "carpetsymbol"},/area/crew_quarters/bar) +"aZn" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/crew_quarters/bar) +"aZo" = (/turf/open/floor/plating{burnt = 1; icon_state = "panelscorched"},/area/maintenance/apmaint) +"aZp" = (/turf/open/floor/plating{broken = 1; icon_state = "platingdmg3"},/area/maintenance/apmaint) +"aZq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/apmaint) +"aZr" = (/obj/structure/closet/secure_closet/quartermaster,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/airalarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/open/floor/plasteel/brown{tag = "icon-brown (NORTHWEST)"; dir = 9},/area/quartermaster/qm) +"aZs" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel/brown{dir = 1; tag = "icon-brown (NORTH)"},/area/quartermaster/qm) +"aZt" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/plasteel/brown{dir = 5},/area/quartermaster/qm) +"aZu" = (/obj/structure/closet/wardrobe/miner,/obj/machinery/firealarm{dir = 4; pixel_x = -28},/turf/open/floor/plasteel/brown{tag = "icon-brown (NORTHWEST)"; dir = 9},/area/quartermaster/miningdock) +"aZv" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/brown{dir = 1},/area/quartermaster/miningdock) +"aZw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/brown{dir = 1},/area/quartermaster/miningdock) +"aZx" = (/obj/structure/closet/emcloset,/obj/machinery/airalarm{dir = 8; pixel_x = 23; pixel_y = 0},/turf/open/floor/plasteel/brown{dir = 5},/area/quartermaster/miningdock) +"aZy" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/apmaint) +"aZz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating,/area/maintenance/apmaint) +"aZA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/airlock/engineering{name = "Starboard Solar Access"; req_access_txt = "10"},/turf/open/floor/plating,/area/maintenance/auxsolarstarboard{name = "Starboard Solar Maintenance"}) +"aZB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating,/area/maintenance/auxsolarstarboard{name = "Starboard Solar Maintenance"}) +"aZC" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/turf/open/floor/plating,/area/maintenance/auxsolarstarboard{name = "Starboard Solar Maintenance"}) +"aZD" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating,/area/maintenance/auxsolarstarboard{name = "Starboard Solar Maintenance"}) +"aZE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/airlock/external{cyclelinkeddir = 4; name = "Solar Maintenance"; req_access = null; req_access_txt = "10; 13"},/turf/open/floor/plating,/area/maintenance/auxsolarstarboard{name = "Starboard Solar Maintenance"}) +"aZF" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating,/area/maintenance/auxsolarstarboard{name = "Starboard Solar Maintenance"}) +"aZG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/airlock/external{cyclelinkeddir = 8; name = "Solar Maintenance"; req_access = null; req_access_txt = "10; 13"},/turf/open/floor/plating,/area/maintenance/auxsolarstarboard{name = "Starboard Solar Maintenance"}) +"aZH" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/space,/area/solar/starboard{name = "Starboard Solar Array"}) +"aZI" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/space,/area/solar/starboard{name = "Starboard Solar Array"}) +"aZJ" = (/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard{name = "Starboard Solar Array"}) +"aZK" = (/obj/structure/lattice/catwalk,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/space,/area/solar/starboard{name = "Starboard Solar Array"}) +"aZL" = (/obj/machinery/power/tracker,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel/airless/solarpanel,/area/solar/starboard{name = "Starboard Solar Array"}) +"aZM" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/hallway/secondary/entry) +"aZN" = (/turf/open/floor/plating,/area/hallway/secondary/entry) +"aZO" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/warning{dir = 10},/area/hallway/secondary/entry) +"aZP" = (/obj/machinery/light,/turf/open/floor/plasteel/warning,/area/hallway/secondary/entry) +"aZQ" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/warning{dir = 6},/area/hallway/secondary/entry) +"aZR" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"aZS" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"aZT" = (/obj/machinery/light{dir = 1},/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"aZU" = (/obj/machinery/flasher{id = "brigentry"; pixel_x = -28; pixel_y = 24},/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"aZV" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"aZW" = (/obj/machinery/power/apc{dir = 8; name = "Custodial Closet APC"; pixel_x = -24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/floorgrime,/area/janitor) +"aZX" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/floorgrime,/area/janitor) +"aZY" = (/obj/item/weapon/reagent_containers/glass/bucket,/obj/item/weapon/mop,/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/open/floor/plasteel/floorgrime,/area/janitor) +"aZZ" = (/turf/open/floor/plasteel/green/corner{dir = 8},/area/hydroponics) +"baa" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/green/corner{dir = 8},/area/hydroponics) +"bab" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/hydroponics) +"bac" = (/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/central) +"bad" = (/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/hallway/primary/central) +"bae" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/beaker/large,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"baf" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/snacks/grown/tomato,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"bag" = (/obj/machinery/door/airlock/glass{name = "Kitchen"; req_access_txt = "25;28"},/turf/open/floor/plasteel/black,/area/crew_quarters/kitchen) +"bah" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/black,/area/crew_quarters/bar) +"bai" = (/obj/structure/table/reinforced,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/item/weapon/lighter,/turf/open/floor/plasteel/darkred/side{dir = 8},/area/crew_quarters/bar) +"baj" = (/obj/structure/chair/stool/bar,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/vault{dir = 5},/area/crew_quarters/bar) +"bak" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/crew_quarters/bar) +"bal" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/vault{dir = 5},/area/crew_quarters/bar) +"bam" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/obj/item/device/radio/beacon,/turf/open/floor/plasteel/vault{dir = 5},/area/crew_quarters/bar) +"ban" = (/obj/item/weapon/cigbutt,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/apmaint) +"bao" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/apmaint) +"bap" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/sign/poster{pixel_y = 32},/turf/open/floor/plating,/area/maintenance/apmaint) +"baq" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/apmaint) +"bar" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 8; name = "Quartermaster APC"; pixel_x = -24; pixel_y = 0},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/brown{dir = 8},/area/quartermaster/qm) +"bas" = (/obj/structure/cable{icon_state = "1-8"},/turf/open/floor/plasteel,/area/quartermaster/qm) +"bat" = (/obj/structure/filingcabinet,/turf/open/floor/plasteel/brown{dir = 4},/area/quartermaster/qm) +"bau" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/quartermaster/miningdock) +"bav" = (/obj/structure/table,/obj/item/weapon/folder/yellow,/obj/item/weapon/pen,/turf/open/floor/plasteel/brown/corner{dir = 1; tag = "icon-browncorner (NORTH)"},/area/quartermaster/miningdock) +"baw" = (/obj/structure/chair/office/dark{dir = 8},/obj/effect/landmark/start{name = "Shaft Miner"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/quartermaster/miningdock) +"bax" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/quartermaster/miningdock) +"bay" = (/obj/machinery/computer/security/mining,/obj/machinery/requests_console{department = "Mining"; departmentType = 0; pixel_x = 32; pixel_y = 0},/turf/open/floor/plasteel/brown/corner,/area/quartermaster/miningdock) +"baz" = (/obj/structure/table,/turf/open/floor/mineral/titanium/blue,/area/shuttle/labor) +"baA" = (/obj/machinery/computer/shuttle/mining,/turf/open/floor/mineral/titanium/blue,/area/shuttle/labor) +"baB" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/apmaint) +"baC" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 8; name = "Starboard Solar APC"; pixel_x = -24; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/auxsolarstarboard{name = "Starboard Solar Maintenance"}) +"baD" = (/obj/structure/chair/stool,/obj/item/weapon/cigbutt/cigarbutt,/turf/open/floor/plating,/area/maintenance/auxsolarstarboard{name = "Starboard Solar Maintenance"}) +"baE" = (/obj/machinery/power/solar_control{id = "starboardsolar"; name = "Starboard Solar Control"; track = 0},/obj/structure/cable,/turf/open/floor/plating,/area/maintenance/auxsolarstarboard{name = "Starboard Solar Maintenance"}) +"baF" = (/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{tag = "icon-manifold (WEST)"; icon_state = "manifold"; dir = 8},/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"baG" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"baH" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; layer = 2.4; on = 1},/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"baI" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"baJ" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"baK" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/central) +"baL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/floorgrime,/area/janitor) +"baM" = (/obj/structure/table,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/clusterbuster/cleaner,/obj/item/weapon/storage/box/lights/mixed,/turf/open/floor/plasteel/floorgrime,/area/janitor) +"baN" = (/obj/structure/table,/obj/item/weapon/reagent_containers/spray/cleaner,/turf/open/floor/plasteel/floorgrime,/area/janitor) +"baO" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/hydroponics) +"baP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hydroponics) +"baQ" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hydroponics) +"baR" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hydroponics) +"baS" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Hydroponics"; req_access_txt = "35"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hydroponics) +"baT" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/central) +"baU" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/holopad,/turf/open/floor/plasteel,/area/hallway/primary/central) +"baV" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/hallway/primary/central) +"baW" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Kitchen"; req_access_txt = "28"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/kitchen) +"baX" = (/obj/structure/disposalpipe/sortjunction{dir = 4; icon_state = "pipe-j1s"; sortType = 20},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"baY" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"baZ" = (/obj/effect/landmark/start{name = "Cook"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"bba" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"bbb" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"bbc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/firealarm{dir = 4; pixel_x = -28},/turf/open/floor/plasteel/black,/area/crew_quarters/bar) +"bbd" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plasteel/black,/area/crew_quarters/bar) +"bbe" = (/obj/machinery/party/turntable,/turf/open/floor/plasteel/vault{dir = 5},/area/crew_quarters/bar) +"bbf" = (/obj/structure/chair/wood/normal{icon_state = "wooden_chair"; dir = 4},/turf/open/floor/plasteel/black,/area/crew_quarters/bar) +"bbg" = (/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = 5; pixel_y = -2},/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_x = -2; pixel_y = 2},/obj/structure/table/wood,/turf/open/floor/plasteel/vault{dir = 5},/area/crew_quarters/bar) +"bbh" = (/obj/structure/chair/wood/normal{icon_state = "wooden_chair"; dir = 8},/obj/machinery/light,/turf/open/floor/plasteel/black,/area/crew_quarters/bar) +"bbi" = (/obj/structure/chair/wood/normal{icon_state = "wooden_chair"; dir = 4},/obj/machinery/light,/turf/open/floor/plasteel/black,/area/crew_quarters/bar) +"bbj" = (/obj/item/weapon/kitchen/fork,/obj/structure/table/wood,/turf/open/floor/plasteel/vault{dir = 5},/area/crew_quarters/bar) +"bbk" = (/obj/structure/chair/wood/normal{icon_state = "wooden_chair"; dir = 8},/turf/open/floor/plasteel/black,/area/crew_quarters/bar) +"bbl" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plasteel/vault{dir = 5},/area/crew_quarters/bar) +"bbm" = (/obj/machinery/light,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/black,/area/crew_quarters/bar) +"bbn" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/vault{dir = 5},/area/crew_quarters/bar) +"bbo" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/plasteel/vault{dir = 5},/area/crew_quarters/bar) +"bbp" = (/turf/closed/wall,/area/assembly/chargebay) +"bbq" = (/obj/structure/table,/obj/item/weapon/cartridge/quartermaster{pixel_x = 6; pixel_y = 5},/obj/item/weapon/cartridge/quartermaster,/obj/item/weapon/cartridge/quartermaster{pixel_x = -4; pixel_y = 7},/obj/item/weapon/coin/silver,/obj/machinery/status_display{dir = 4; layer = 4; pixel_x = -32; pixel_y = 0; supply_display = 1},/turf/open/floor/plasteel/brown{dir = 8},/area/quartermaster/qm) +"bbr" = (/obj/structure/chair/office/dark{dir = 4},/obj/effect/landmark/start{name = "Quartermaster"},/turf/open/floor/plasteel,/area/quartermaster/qm) +"bbs" = (/obj/machinery/computer/cargo,/turf/open/floor/plasteel/brown{dir = 4},/area/quartermaster/qm) +"bbt" = (/obj/machinery/mineral/equipment_vendor,/turf/open/floor/plasteel/brown/corner{dir = 1; tag = "icon-browncorner (NORTH)"},/area/quartermaster/miningdock) +"bbu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/effect/landmark/start{name = "Shaft Miner"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/quartermaster/miningdock) +"bbv" = (/turf/open/floor/plasteel,/area/quartermaster/miningdock) +"bbw" = (/obj/machinery/computer/shuttle/mining,/turf/open/floor/plasteel/brown/corner,/area/quartermaster/miningdock) +"bbx" = (/obj/structure/chair{dir = 1},/turf/open/floor/mineral/titanium/blue,/area/shuttle/labor) +"bby" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/spawner/lootdrop/maintenance,/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/apmaint) +"bbz" = (/obj/item/weapon/caution,/turf/open/floor/plating,/area/maintenance/apmaint) +"bbA" = (/obj/structure/table,/obj/item/weapon/paper_bin{layer = 2.9; pixel_x = 0; pixel_y = 0; tag = "every single paper bin is edited to this"},/turf/open/floor/plating,/area/maintenance/apmaint) +"bbB" = (/turf/closed/wall/mineral/titanium,/area/shuttle/arrival) +"bbC" = (/obj/machinery/door/airlock/shuttle{name = "Arrivals Shuttle Airlock"},/turf/open/floor/plating,/area/shuttle/arrival) +"bbD" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/arrival) +"bbE" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"; dir = 8},/turf/open/floor/plasteel/black,/area/shuttle/arrival) +"bbF" = (/obj/machinery/camera{c_tag = "Arrivals Central"; dir = 4; network = list("SS13")},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"bbG" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"bbH" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"bbI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/firealarm{dir = 1; pixel_y = -29},/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"bbJ" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"bbK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"bbL" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Central Access"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"bbM" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bbN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bbO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{icon_state = "1-8"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/hallway/primary/central) +"bbP" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock{name = "Custodial Closet"; req_access_txt = "26"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/floorgrime,/area/janitor) +"bbQ" = (/obj/machinery/hydroponics/constructable,/turf/open/floor/plasteel/green/side{dir = 10},/area/hydroponics) +"bbR" = (/obj/machinery/hydroponics/constructable,/turf/open/floor/plasteel/green/side,/area/hydroponics) +"bbS" = (/obj/machinery/hydroponics/constructable,/turf/open/floor/plasteel/green/corner,/area/hydroponics) +"bbT" = (/obj/item/weapon/reagent_containers/glass/bucket,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hydroponics) +"bbU" = (/obj/structure/reagent_dispensers/watertank/high,/turf/open/floor/plasteel/green/corner,/area/hydroponics) +"bbV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/hallway/primary/central) +"bbW" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/button/door{id = "kitchen"; name = "Kitchen Shutters Control"; pixel_x = -24; pixel_y = 0; req_access_txt = "28"},/obj/machinery/light_switch{pixel_x = -34; pixel_y = 1},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"bbX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/crew_quarters/bar) +"bbY" = (/obj/structure/sign/barsign,/turf/closed/wall,/area/crew_quarters/bar) +"bbZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/vault{dir = 5},/area/crew_quarters/bar) +"bca" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Diner"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/crew_quarters/bar) +"bcb" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Diner"},/turf/open/floor/plasteel,/area/crew_quarters/bar) +"bcc" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/apmaint) +"bcd" = (/obj/structure/table,/obj/item/weapon/crowbar/large,/obj/machinery/airalarm{pixel_y = 22},/turf/open/floor/plasteel,/area/assembly/chargebay) +"bce" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical,/obj/machinery/power/apc{cell_type = 2500; dir = 1; name = "Captain's Office APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plasteel,/area/assembly/chargebay) +"bcf" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/firealarm{dir = 1; pixel_y = 24},/turf/open/floor/plasteel/delivery,/area/assembly/chargebay) +"bcg" = (/obj/machinery/mech_bay_recharge_port,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plating,/area/assembly/chargebay) +"bch" = (/turf/open/floor/mech_bay_recharge_floor,/area/assembly/chargebay) +"bci" = (/obj/machinery/computer/mech_bay_power_console,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plasteel,/area/assembly/chargebay) +"bcj" = (/obj/structure/table,/obj/machinery/computer/stockexchange,/obj/machinery/requests_console{department = "Cargo Bay"; departmentType = 2; pixel_x = -30; pixel_y = 0},/turf/open/floor/plasteel/brown{dir = 10},/area/quartermaster/qm) +"bck" = (/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/stamp/qm{pixel_x = 0; pixel_y = 0},/obj/machinery/light,/obj/machinery/camera{c_tag = "Cargo Quartermaster's Office"; dir = 1; network = list("SS13")},/turf/open/floor/plasteel/brown{dir = 2},/area/quartermaster/qm) +"bcl" = (/obj/machinery/computer/security/mining,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -35},/turf/open/floor/plasteel/brown{dir = 6},/area/quartermaster/qm) +"bcm" = (/obj/structure/rack{dir = 1},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/item/weapon/pickaxe{pixel_x = 5},/obj/item/weapon/shovel{pixel_x = -5},/obj/machinery/camera{c_tag = "Cargo Mining Dock"; dir = 4},/turf/open/floor/plasteel/brown/corner{dir = 1; tag = "icon-browncorner (NORTH)"},/area/quartermaster/miningdock) +"bcn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/landmark/start{name = "Shaft Miner"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel,/area/quartermaster/miningdock) +"bco" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; layer = 2.4; on = 1},/turf/open/floor/plasteel,/area/quartermaster/miningdock) +"bcp" = (/turf/open/floor/plasteel/brown/corner,/area/quartermaster/miningdock) +"bcq" = (/obj/machinery/door/airlock/external{name = "Mining Dock Airlock"; req_access = null; req_access_txt = "48"},/turf/open/floor/plating,/area/quartermaster/miningdock) +"bcr" = (/turf/open/floor/plating,/area/quartermaster/miningdock) +"bcs" = (/obj/machinery/door/airlock/shuttle{name = "Mining Shuttle Airlock"; req_access_txt = "48"},/turf/open/floor/plating,/area/shuttle/labor) +"bct" = (/obj/machinery/door/airlock/shuttle{name = "Mining Shuttle Airlock"; req_access_txt = "48"},/obj/docking_port/mobile{dir = 8; dwidth = 3; height = 5; id = "mining"; name = "mining shuttle"; port_angle = 90; width = 7},/obj/docking_port/stationary{dir = 8; dwidth = 3; height = 5; id = "mining_home"; name = "mining shuttle bay"; width = 7},/turf/open/floor/plating,/area/shuttle/labor) +"bcu" = (/obj/structure/chair{dir = 4},/turf/open/floor/plating,/area/maintenance/apmaint) +"bcv" = (/obj/machinery/light/small{dir = 4},/obj/structure/table,/obj/item/weapon/paperplane,/obj/item/trash/chips,/turf/open/floor/plating,/area/maintenance/apmaint) +"bcw" = (/obj/structure/frame/machine,/turf/open/floor/plating,/area/maintenance/apmaint) +"bcx" = (/obj/structure/closet/cabinet,/obj/effect/spawner/lootdrop/maintenance,/obj/item/weapon/circuitboard/machine/hydroponics,/obj/item/weapon/electronics/apc,/turf/open/floor/plating,/area/maintenance/apmaint) +"bcy" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_y = 4},/obj/item/weapon/storage/toolbox/emergency,/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) +"bcz" = (/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) +"bcA" = (/obj/machinery/airalarm{pixel_y = 22},/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) +"bcB" = (/obj/structure/closet/wardrobe/black,/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) +"bcC" = (/obj/structure/closet/wardrobe/mixed,/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) +"bcD" = (/obj/machinery/atmospherics/components/unary/tank/air,/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) +"bcE" = (/obj/machinery/requests_console{department = "Arrival shuttle"; pixel_y = 30},/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) +"bcF" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/black,/area/shuttle/arrival) +"bcG" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/open/floor/plasteel/neutral/corner,/area/hallway/secondary/entry) +"bcH" = (/turf/closed/wall/r_wall,/area/library{name = "Lounge"}) +"bcI" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/door/poddoor/shutters/preopen{id = "loungeshutters"; name = "privacy shutters"},/turf/open/floor/plating,/area/library{name = "Lounge"}) +"bcJ" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Lounge"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/library{name = "Lounge"}) +"bcK" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/door/poddoor/shutters/preopen{id = "loungeshutters"; name = "privacy shutters"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/library{name = "Lounge"}) +"bcL" = (/turf/closed/wall,/area/library{name = "Lounge"}) +"bcM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/sign/directions/security{dir = 1; icon_state = "direction_sec"; pixel_x = 32; pixel_y = 40},/obj/structure/sign/directions/medical{dir = 4; icon_state = "direction_med"; pixel_x = 32; pixel_y = 32},/obj/structure/sign/directions/science{dir = 4; icon_state = "direction_sci"; pixel_x = 32; pixel_y = 24},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bcN" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/primary/central) +"bcO" = (/obj/structure/chair{name = "Throne of Custodia"},/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 26},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bcP" = (/obj/machinery/vending/cola,/turf/open/floor/plasteel,/area/hallway/primary/central) +"bcQ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/hydroponics) +"bcR" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters/preopen{id = "kitchen"; name = "kitchen shutters"},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"bcS" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters/preopen{id = "kitchen"; name = "kitchen shutters"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"bcT" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/sign/poster{pixel_y = 32},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/central) +"bcU" = (/obj/structure/sign/poster{pixel_y = 32},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/central) +"bcV" = (/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/central) +"bcW" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Diner"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/crew_quarters/bar) +"bcX" = (/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = 27},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/hallway/primary/central) +"bcY" = (/obj/machinery/light{dir = 1},/obj/machinery/airalarm{pixel_y = 24},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/hallway/primary/central) +"bcZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/hallway/primary/central) +"bda" = (/obj/structure/sign/poster{pixel_y = 32},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/hallway/primary/central) +"bdb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/sign/directions/evac{dir = 1; icon_state = "direction_evac"; pixel_x = -32; pixel_y = 38; tag = "icon-direction_evac (NORTH)"},/obj/structure/sign/directions/medical{dir = 8; icon_state = "direction_med"; pixel_x = -32; pixel_y = 28; tag = "icon-direction_med (WEST)"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bdc" = (/turf/open/floor/plasteel/purple/corner,/area/hallway/primary/central) +"bdd" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters{id = "Skynet_launch"; name = "mech bay"},/turf/open/floor/plasteel/delivery,/area/assembly/chargebay) +"bde" = (/obj/effect/decal/cleanable/oil{icon_state = "floor5"},/turf/open/floor/plasteel,/area/assembly/chargebay) +"bdf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/open/floor/plasteel/warning/corner{tag = "icon-plasteel_warn_corner (WEST)"; icon_state = "plasteel_warn_corner"; dir = 8},/area/assembly/chargebay) +"bdg" = (/turf/open/floor/plasteel/warning{dir = 5},/area/assembly/chargebay) +"bdh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/open/floor/plasteel/circuit/gcircuit,/area/assembly/chargebay) +"bdi" = (/turf/open/floor/plasteel/circuit/gcircuit,/area/assembly/chargebay) +"bdj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/circuit/gcircuit,/area/assembly/chargebay) +"bdk" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 8; name = "Mining Dock APC"; pixel_x = -24; pixel_y = 0; pixel_z = 0},/turf/open/floor/plasteel/brown/corner{dir = 1; tag = "icon-browncorner (NORTH)"},/area/quartermaster/miningdock) +"bdl" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/quartermaster/miningdock) +"bdm" = (/obj/structure/table,/obj/item/weapon/paperplane,/turf/open/floor/plating,/area/maintenance/apmaint) +"bdn" = (/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/apmaint) +"bdo" = (/obj/machinery/door/airlock/shuttle{name = "Arrivals Shuttle Airlock"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) +"bdp" = (/obj/structure/chair{dir = 8},/obj/effect/landmark{name = "JoinLate"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) +"bdq" = (/obj/effect/landmark/start{name = "Assistant"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) +"bdr" = (/obj/structure/chair{dir = 8},/obj/effect/landmark{name = "JoinLate"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) +"bds" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 8},/turf/open/floor/plasteel/black,/area/shuttle/arrival) +"bdt" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"bdu" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green{pixel_x = 1; pixel_y = 5},/turf/open/floor/plasteel/grimy,/area/library{name = "Lounge"}) +"bdv" = (/turf/open/floor/plasteel/grimy,/area/library{name = "Lounge"}) +"bdw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/grimy,/area/library{name = "Lounge"}) +"bdx" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/grimy,/area/library{name = "Lounge"}) +"bdy" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green{pixel_x = 1; pixel_y = 5},/obj/machinery/button/door{id = "loungeshutters"; name = "Privacy Shutters"; pixel_y = 25},/turf/open/floor/plasteel/grimy,/area/library{name = "Lounge"}) +"bdz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/sortjunction{dir = 1; icon_state = "pipe-j1s"; sortType = 22},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bdA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bdB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/junction{dir = 8; icon_state = "pipe-j1"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bdC" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/primary/central) +"bdD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bdE" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bdF" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/central) +"bdG" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (NORTH)"; dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bdH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/sign/directions/engineering{pixel_x = 32; pixel_y = 28},/obj/structure/sign/directions/evac{dir = 1; icon_state = "direction_evac"; pixel_x = 32; pixel_y = 38; tag = "icon-direction_evac (NORTH)"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bdI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/sign/nosmoking_2{pixel_x = -32; pixel_y = 32},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bdJ" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bdK" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=Bar1"; location = "Robo"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bdL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/purple/corner,/area/hallway/primary/central) +"bdM" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters{id = "Skynet_launch"; name = "mech bay"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/delivery,/area/assembly/chargebay) +"bdN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/assembly/chargebay) +"bdO" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (NORTH)"; dir = 1},/turf/open/floor/plasteel,/area/assembly/chargebay) +"bdP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/warning{dir = 4},/area/assembly/chargebay) +"bdQ" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/bluegrid,/area/assembly/chargebay) +"bdR" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/bluegrid,/area/assembly/chargebay) +"bdS" = (/obj/machinery/door/airlock/maintenance{name = "Mech Bay Maintenance"; req_access_txt = "29"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/assembly/chargebay) +"bdT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/apmaint) +"bdU" = (/obj/machinery/door/airlock/maintenance{name = "Mining Maintenance"; req_access_txt = "48"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/quartermaster/miningdock) +"bdV" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/cable{icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/brown{dir = 10},/area/quartermaster/miningdock) +"bdW" = (/obj/structure/closet/secure_closet/miner,/obj/structure/cable{icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/plasteel/brown,/area/quartermaster/miningdock) +"bdX" = (/obj/structure/closet/secure_closet/miner,/obj/machinery/light,/turf/open/floor/plasteel/brown,/area/quartermaster/miningdock) +"bdY" = (/obj/structure/closet/secure_closet/miner,/turf/open/floor/plasteel/brown{dir = 6},/area/quartermaster/miningdock) +"bdZ" = (/obj/structure/shuttle/engine/heater,/turf/open/floor/plating,/area/shuttle/labor) +"bea" = (/obj/structure/ore_box,/turf/open/floor/mineral/titanium/blue,/area/shuttle/labor) +"beb" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/apmaint) +"bec" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/apmaint) +"bed" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/grille/broken,/turf/open/floor/plating,/area/maintenance/apmaint) +"bee" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating,/area/maintenance/apmaint) +"bef" = (/obj/item/trash/tray,/obj/item/weapon/reagent_containers/food/snacks/badrecipe,/turf/open/floor/plating,/area/maintenance/apmaint) +"beg" = (/obj/structure/closet/radiation,/obj/structure/sign/poster{pixel_x = 32},/turf/open/floor/plating,/area/maintenance/apmaint) +"beh" = (/obj/effect/landmark{name = "Observer-Start"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) +"bei" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/open/floor/plasteel/neutral/corner,/area/hallway/secondary/entry) +"bej" = (/obj/structure/chair/comfy/beige{dir = 4},/obj/machinery/newscaster{pixel_x = -32},/turf/open/floor/plasteel/grimy,/area/library{name = "Lounge"}) +"bek" = (/turf/open/floor/carpet,/area/library{name = "Lounge"}) +"bel" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/carpet,/area/library{name = "Lounge"}) +"bem" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/carpet,/area/library{name = "Lounge"}) +"ben" = (/obj/structure/chair/comfy/beige{dir = 8},/obj/machinery/power/apc{dir = 4; name = "Lounge APC"; pixel_x = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/camera{c_tag = "Lounge"; dir = 8},/turf/open/floor/plasteel/grimy,/area/library{name = "Lounge"}) +"beo" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bep" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/hallway/primary/central) +"beq" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=BrigS1"; location = "Lounge"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"ber" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bes" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bet" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=Eng"; location = "Bar1"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"beu" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/purple/corner,/area/hallway/primary/central) +"bev" = (/obj/machinery/light{dir = 8},/obj/machinery/button/door{dir = 2; id = "Skynet_launch"; name = "Mech Bay Door Control"; pixel_x = -28; pixel_y = 0},/obj/machinery/camera{c_tag = "Mech Bay"; dir = 4},/turf/open/floor/plasteel,/area/assembly/chargebay) +"bew" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/assembly/chargebay) +"bex" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/warning{dir = 4},/area/assembly/chargebay) +"bey" = (/obj/machinery/mech_bay_recharge_port,/obj/structure/cable,/turf/open/floor/plating,/area/assembly/chargebay) +"bez" = (/obj/machinery/computer/mech_bay_power_console,/obj/structure/cable,/turf/open/floor/plasteel,/area/assembly/chargebay) +"beA" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/maintenance/apmaint) +"beB" = (/obj/structure/shuttle/engine/propulsion/burst,/obj/structure/window/reinforced{dir = 1; layer = 2.9},/turf/open/floor/plating/airless,/area/shuttle/labor) +"beC" = (/obj/item/chair,/obj/item/trash/popcorn,/turf/open/floor/plating{broken = 1; icon_state = "platingdmg3"},/area/maintenance/apmaint) +"beD" = (/obj/structure/chair,/obj/structure/sign/poster{pixel_x = 32},/turf/open/floor/plating{icon_state = "platingdmg1"},/area/maintenance/apmaint) +"beE" = (/obj/structure/closet/emcloset,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/clothing/mask/breath,/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) +"beF" = (/obj/structure/extinguisher_cabinet{pixel_y = -29},/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) +"beG" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) +"beH" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_l"; dir = 8},/turf/open/floor/plasteel/black,/area/shuttle/arrival) +"beI" = (/obj/structure/chair/comfy/beige{dir = 4},/turf/open/floor/plasteel/grimy,/area/library{name = "Lounge"}) +"beJ" = (/obj/effect/landmark/start{name = "Assistant"},/turf/open/floor/carpet,/area/library{name = "Lounge"}) +"beK" = (/obj/structure/chair/comfy/beige{dir = 8},/turf/open/floor/plasteel/grimy,/area/library{name = "Lounge"}) +"beL" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/structure/chair{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) +"beM" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/turf/open/floor/plasteel,/area/hallway/primary/central) +"beN" = (/obj/machinery/light,/obj/machinery/camera{c_tag = "Central Primary Hallway Genetics"; dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) +"beO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) +"beP" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/firealarm{dir = 1; pixel_y = -26},/turf/open/floor/plasteel,/area/hallway/primary/central) +"beQ" = (/obj/machinery/light,/obj/machinery/camera{c_tag = "Central Primary Hallway Hydroponics"; dir = 1},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/primary/central) +"beR" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) +"beS" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{initialize_directions = 11},/turf/open/floor/plasteel,/area/hallway/primary/central) +"beT" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=Lounge"; location = "Bar2"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"beU" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/central) +"beV" = (/obj/machinery/camera{c_tag = "Central Primary Hallway Robotics"; dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) +"beW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/purple/corner,/area/hallway/primary/central) +"beX" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Mech Bay"; req_access_txt = "29"; req_one_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/assembly/chargebay) +"beY" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/assembly/chargebay) +"beZ" = (/turf/open/floor/plasteel/warning{dir = 4},/area/assembly/chargebay) +"bfa" = (/obj/machinery/recharge_station,/turf/open/floor/plasteel/bot,/area/assembly/chargebay) +"bfb" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/decal/cleanable/robot_debris{icon_state = "gib3"},/turf/open/floor/plating,/area/maintenance/apmaint) +"bfc" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/apmaint) +"bfd" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/apmaint) +"bfe" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/mob/living/simple_animal/mouse/gray,/turf/open/floor/plating,/area/maintenance/apmaint) +"bff" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/junction{dir = 8; icon_state = "pipe-j2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/maintenance/apmaint) +"bfg" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/item/weapon/shard{icon_state = "small"},/turf/open/floor/plating,/area/maintenance/apmaint) +"bfh" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plating,/area/maintenance/apmaint) +"bfi" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/apmaint) +"bfj" = (/obj/item/weapon/cigbutt/cigarbutt,/obj/effect/decal/cleanable/cobweb{icon_state = "cobweb2"},/turf/open/floor/plating,/area/maintenance/apmaint) +"bfk" = (/obj/item/weapon/wrench,/turf/open/floor/plating,/area/maintenance/apmaint) +"bfl" = (/obj/structure/table,/obj/item/trash/plate,/turf/open/floor/plating{icon_state = "platingdmg1"},/area/maintenance/apmaint) +"bfm" = (/obj/structure/table,/obj/item/weapon/kitchen/fork,/turf/open/floor/plating{burnt = 1; icon_state = "panelscorched"},/area/maintenance/apmaint) +"bfn" = (/obj/machinery/door/airlock/shuttle{name = "Arrivals Shuttle Airlock"},/obj/docking_port/mobile{dwidth = 4; height = 6; id = "arrival"; name = "arrival shuttle"; port_angle = -90; preferred_direction = 8; width = 13},/obj/docking_port/stationary{dwidth = 4; height = 6; id = "arrival_home"; name = "port bay 1"; width = 13},/turf/open/floor/plating,/area/shuttle/arrival) +"bfo" = (/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{tag = "icon-manifold (WEST)"; icon_state = "manifold"; dir = 8},/turf/open/floor/plasteel/neutral/corner,/area/hallway/secondary/entry) +"bfp" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/door/poddoor/shutters/preopen{id = "loungeshutters"; name = "privacy shutters"},/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/open/floor/plating,/area/library{name = "Lounge"}) +"bfq" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green{pixel_x = 1; pixel_y = 5},/obj/machinery/airalarm{dir = 1; pixel_y = -22},/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/open/floor/plasteel/grimy,/area/library{name = "Lounge"}) +"bfr" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/open/floor/plasteel/grimy,/area/library{name = "Lounge"}) +"bfs" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; layer = 2.4; on = 1},/turf/open/floor/plasteel/grimy,/area/library{name = "Lounge"}) +"bft" = (/obj/structure/table/glass,/obj/item/device/healthanalyzer{layer = 3.1},/obj/item/weapon/pen{layer = 3.2},/turf/open/floor/plasteel/blue/side,/area/hallway/primary/central) +"bfu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/purple/side,/area/hallway/primary/central) +"bfv" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-05"; layer = 4.1},/turf/open/floor/plasteel/blue/side,/area/hallway/primary/central) +"bfw" = (/turf/closed/wall,/area/storage/emergency2) +"bfx" = (/obj/machinery/door/airlock{name = "Port Emergency Storage"; req_access_txt = "0"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/storage/emergency2) +"bfy" = (/turf/closed/wall,/area/medical/morgue) +"bfz" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/centcom{name = "Morgue"; opacity = 1; req_access_txt = "6"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/medical/morgue) +"bfA" = (/turf/closed/wall,/area/security/checkpoint/medical) +"bfB" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/security/checkpoint/medical) +"bfC" = (/turf/closed/wall,/area/medical/medbay) +"bfD" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/medical/medbay) +"bfE" = (/obj/structure/sign/bluecross_2,/turf/closed/wall,/area/medical/medbay) +"bfF" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white/side,/area/medical/medbay) +"bfG" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/white/side,/area/medical/medbay) +"bfH" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white/side,/area/medical/medbay) +"bfI" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-10"; layer = 4.1},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bfJ" = (/obj/machinery/camera{c_tag = "Central Primary Hallway Bar"; dir = 1},/obj/machinery/light,/turf/open/floor/plasteel,/area/hallway/primary/central) +"bfK" = (/obj/machinery/light,/turf/open/floor/plasteel,/area/hallway/primary/central) +"bfL" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/medical/research{name = "Research Division"}) +"bfM" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white/side,/area/medical/research{name = "Research Division"}) +"bfN" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/white/side,/area/medical/research{name = "Research Division"}) +"bfO" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white/side,/area/medical/research{name = "Research Division"}) +"bfP" = (/obj/structure/sign/science,/turf/closed/wall,/area/medical/research{name = "Research Division"}) +"bfQ" = (/turf/closed/wall,/area/medical/research{name = "Research Division"}) +"bfR" = (/turf/open/floor/plasteel/purple/side,/area/hallway/primary/central) +"bfS" = (/turf/open/floor/plasteel,/area/assembly/chargebay) +"bfT" = (/turf/closed/wall/r_wall,/area/assembly/chargebay) +"bfU" = (/turf/closed/wall/r_wall,/area/toxins/explab) +"bfV" = (/turf/closed/wall/r_wall,/area/maintenance/apmaint) +"bfW" = (/obj/structure/plasticflaps{opacity = 1},/turf/open/floor/plasteel/delivery,/area/toxins/explab) +"bfX" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/apmaint) +"bfY" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/spawner/lootdrop/maintenance,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/apmaint) +"bfZ" = (/obj/structure/cable{icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plating,/area/maintenance/apmaint) +"bga" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/apmaint) +"bgb" = (/obj/effect/spawner/lootdrop/maintenance,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/apmaint) +"bgc" = (/obj/item/trash/sosjerky,/obj/effect/decal/cleanable/vomit/old,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/apmaint) +"bgd" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/apmaint) +"bge" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/apmaint) +"bgf" = (/obj/structure/bookcase/random/nonfiction,/turf/open/floor/wood,/area/library{name = "Lounge"}) +"bgg" = (/obj/structure/bookcase/random/fiction,/turf/open/floor/wood,/area/library{name = "Lounge"}) +"bgh" = (/obj/structure/bookcase/random/religion,/turf/open/floor/wood,/area/library{name = "Lounge"}) +"bgi" = (/turf/closed/wall,/area/medical/genetics) +"bgj" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Genetics Access"; req_access_txt = "0"; req_one_access_txt = "5;9"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/freezer,/area/medical/genetics) +"bgk" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating{icon_state = "platingdmg3"},/area/storage/emergency2) +"bgl" = (/obj/structure/plasticflaps{opacity = 1},/turf/open/floor/plasteel/vault{dir = 8},/area/storage/emergency2) +"bgm" = (/obj/machinery/door/window/eastleft{dir = 4; name = "Medical Delivery"; req_access_txt = "5"},/obj/machinery/navbeacon{codes_txt = "delivery;dir=2"; dir = 4; freq = 1400; location = "Medbay"},/turf/open/floor/plasteel/vault{dir = 8},/area/medical/morgue) +"bgn" = (/turf/open/floor/plasteel/black,/area/medical/morgue) +"bgo" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/black,/area/medical/morgue) +"bgp" = (/obj/machinery/power/apc{dir = 1; name = "Morgue APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/medical/morgue) +"bgq" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/black,/area/medical/morgue) +"bgr" = (/obj/structure/filingcabinet,/obj/machinery/requests_console{department = "Security"; departmentType = 5; pixel_y = 30},/obj/machinery/airalarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/open/floor/plasteel/red/side{dir = 9},/area/security/checkpoint/medical) +"bgs" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 26},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/checkpoint/medical) +"bgt" = (/obj/machinery/computer/secure_data,/obj/structure/reagent_dispensers/peppertank{pixel_x = 0; pixel_y = 30},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/checkpoint/medical) +"bgu" = (/obj/machinery/computer/security,/turf/open/floor/plasteel/red/side{dir = 5},/area/security/checkpoint/medical) +"bgv" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/medical/medbay) +"bgw" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular,/obj/machinery/airalarm{pixel_y = 22},/turf/open/floor/plasteel/whiteblue/side{dir = 1},/area/medical/medbay) +"bgx" = (/obj/structure/chair,/turf/open/floor/plasteel/whiteblue/side{dir = 1; tag = "icon-whiteblue (NORTH)"},/area/medical/medbay) +"bgy" = (/obj/structure/chair,/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/whiteblue/side{dir = 1; tag = "icon-whiteblue (NORTH)"},/area/medical/medbay) +"bgz" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/turf/open/floor/plasteel/whiteblue/side{dir = 1},/area/medical/medbay) +"bgA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay) +"bgB" = (/turf/open/floor/plasteel/white,/area/medical/medbay) +"bgC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/shower{dir = 8},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bgD" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Diner"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/central) +"bgE" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Diner"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bgF" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Diner"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/primary/central) +"bgG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bgH" = (/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bgI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bgJ" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/turf/open/floor/plasteel/whitepurple/side{dir = 1},/area/medical/research{name = "Research Division"}) +"bgK" = (/obj/structure/table,/obj/item/device/assembly/igniter{pixel_x = -4; pixel_y = -4},/obj/item/weapon/screwdriver{pixel_y = 16},/obj/item/device/gps{gpstag = "RD0"},/turf/open/floor/plasteel/whitepurple/side{dir = 1},/area/medical/research{name = "Research Division"}) +"bgL" = (/obj/machinery/modular_computer/console/preset/civilian,/turf/open/floor/plasteel/whitepurple/side{dir = 1},/area/medical/research{name = "Research Division"}) +"bgM" = (/obj/structure/table,/obj/item/weapon/electronics/apc,/obj/item/weapon/wrench,/obj/item/stack/cable_coil,/turf/open/floor/plasteel/whitepurple/side{dir = 1},/area/medical/research{name = "Research Division"}) +"bgN" = (/turf/closed/wall/r_wall,/area/assembly/robotics) +"bgO" = (/obj/structure/grille,/obj/machinery/door/poddoor/shutters/preopen{id = "robotics"; name = "robotics lab shutters"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/assembly/robotics) +"bgP" = (/obj/structure/table/reinforced,/obj/machinery/door/window/eastright{base_state = "left"; dir = 2; icon_state = "left"; name = "Robotics Desk"; req_access_txt = "29"},/obj/item/weapon/paper_bin{pixel_x = 0; pixel_y = 0},/obj/item/weapon/pen,/obj/machinery/door/poddoor/shutters/preopen{id = "robotics"; name = "robotics lab shutters"},/turf/open/floor/plating,/area/assembly/robotics) +"bgQ" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Mech Bay"; req_access_txt = "29"; req_one_access_txt = "0"},/turf/open/floor/plasteel,/area/assembly/robotics) +"bgR" = (/turf/open/floor/engine,/area/toxins/explab) +"bgS" = (/obj/machinery/camera{c_tag = "Experimentor Lab Chamber"; dir = 2; network = list("SS13","RD")},/turf/open/floor/engine,/area/toxins/explab) +"bgT" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/engine,/area/toxins/explab) +"bgU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/engine,/area/toxins/explab) +"bgV" = (/obj/machinery/door/airlock/maintenance{name = "Testing Lab Maintenance"; req_access_txt = "47"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/toxins/explab) +"bgW" = (/obj/machinery/door/window/eastright{base_state = "left"; dir = 2; icon_state = "left"; name = "Research Division Delivery"; req_access_txt = "47"},/obj/machinery/navbeacon{codes_txt = "delivery;dir=2"; dir = 8; freq = 1400; location = "Research Division"},/turf/open/floor/plasteel/delivery,/area/toxins/explab) +"bgX" = (/obj/item/weapon/shard,/turf/open/floor/plating,/area/maintenance/apmaint) +"bgY" = (/turf/closed/wall/r_wall,/area/toxins/xenobiology) +"bgZ" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{tag = "icon-intact (SOUTHEAST)"; icon_state = "intact"; dir = 6},/turf/closed/wall/r_wall,/area/toxins/xenobiology) +"bha" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{tag = "icon-intact (WEST)"; icon_state = "intact"; dir = 8},/turf/closed/wall/r_wall,/area/toxins/xenobiology) +"bhb" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{tag = "icon-intact (SOUTHWEST)"; icon_state = "intact"; dir = 10},/turf/closed/wall/r_wall,/area/toxins/xenobiology) +"bhc" = (/obj/item/weapon/extinguisher,/turf/open/floor/plating,/area/maintenance/apmaint) +"bhd" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating,/area/maintenance/apmaint) +"bhe" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/apmaint) +"bhf" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/apmaint) +"bhg" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/apmaint) +"bhh" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/item/trash/deadmouse,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/effect/landmark{name = "revenantspawn"},/turf/open/floor/plating{broken = 1; icon_state = "platingdmg1"},/area/maintenance/apmaint) +"bhi" = (/obj/machinery/portable_atmospherics/canister,/turf/open/floor/plating,/area/maintenance/apmaint) +"bhj" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/plating,/area/maintenance/apmaint) +"bhk" = (/obj/item/weapon/tank/internals/air,/turf/open/floor/plating,/area/maintenance/apmaint) +"bhl" = (/obj/machinery/vending/snack,/turf/open/floor/plasteel/warning{dir = 9},/area/hallway/secondary/entry) +"bhm" = (/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/secondary/entry) +"bhn" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/warning{dir = 5},/area/hallway/secondary/entry) +"bho" = (/turf/closed/wall,/area/mining_construction{name = "Auxillary Closet Construction"}) +"bhp" = (/obj/item/weapon/hemostat,/obj/item/weapon/retractor,/obj/item/weapon/cautery,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft) +"bhq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/freezer,/area/medical/genetics) +"bhr" = (/turf/open/floor/plasteel/freezer,/area/medical/genetics) +"bhs" = (/obj/machinery/light{dir = 1},/obj/machinery/camera{c_tag = "Genetics Cloning Foyer"; dir = 2; network = list("SS13")},/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/freezer,/area/medical/genetics) +"bht" = (/obj/structure/table,/obj/item/weapon/paper_bin{layer = 2.9; pixel_x = 0; pixel_y = 0; tag = "every single paper bin is edited to this"},/obj/item/weapon/pen,/obj/structure/sign/poster{pixel_x = 32},/turf/open/floor/plasteel/freezer,/area/medical/genetics) +"bhu" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/plating{icon_state = "panelscorched"},/area/storage/emergency2) +"bhv" = (/obj/item/weapon/storage/box/lights/mixed,/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/storage/emergency2) +"bhw" = (/obj/item/weapon/extinguisher,/obj/structure/cable{tag = "icon-1-2"; icon_state = "1-2"},/turf/open/floor/plating,/area/storage/emergency2) +"bhx" = (/obj/structure/bodycontainer/morgue,/obj/effect/landmark{name = "revenantspawn"},/turf/open/floor/plasteel/black,/area/medical/morgue) +"bhy" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/medical/morgue) +"bhz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/medical/morgue) +"bhA" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/black,/area/medical/morgue) +"bhB" = (/obj/machinery/light{dir = 8},/obj/machinery/newscaster{pixel_x = -32},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/checkpoint/medical) +"bhC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel,/area/security/checkpoint/medical) +"bhD" = (/obj/structure/chair/office/light{dir = 4},/obj/effect/landmark/start/depsec/medical,/turf/open/floor/plasteel,/area/security/checkpoint/medical) +"bhE" = (/obj/structure/table,/obj/item/weapon/pen,/obj/item/weapon/paper_bin{layer = 2.9; pixel_x = 0; pixel_y = 0; tag = "every single paper bin is edited to this"},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/checkpoint/medical) +"bhF" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bhG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bhH" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (NORTH)"; dir = 1},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bhI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bhJ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/firealarm{dir = 8; pixel_x = 26; pixel_y = 28},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bhK" = (/obj/structure/chair,/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/whiteblue/side{dir = 1},/area/medical/medbay) +"bhL" = (/obj/structure/table,/obj/item/weapon/storage/box/bodybags{pixel_x = 3; pixel_y = 2},/turf/open/floor/plasteel/whiteblue/side{dir = 1},/area/medical/medbay) +"bhM" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/device/healthanalyzer,/turf/open/floor/plasteel/whiteblue/side{dir = 1},/area/medical/medbay) +"bhN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/hallway/primary/aft) +"bhO" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/hallway/primary/aft) +"bhP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/hallway/primary/aft) +"bhQ" = (/obj/structure/table,/obj/item/clothing/head/welding,/turf/open/floor/plasteel/whitepurple/side{dir = 1},/area/medical/research{name = "Research Division"}) +"bhR" = (/obj/structure/table,/obj/item/device/paicard,/obj/item/clothing/glasses/science,/turf/open/floor/plasteel/whitepurple/side{dir = 1},/area/medical/research{name = "Research Division"}) +"bhS" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high/plus,/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/whitepurple/side{dir = 1},/area/medical/research{name = "Research Division"}) +"bhT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/firealarm{dir = 8; pixel_x = -26; pixel_y = 28},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bhU" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bhV" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bhW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/chair/stool,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bhX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/chair/stool,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bhY" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bhZ" = (/obj/structure/filingcabinet/chestdrawer,/turf/open/floor/plasteel,/area/assembly/robotics) +"bia" = (/obj/structure/chair/office/light{dir = 1},/obj/effect/landmark/start{name = "Roboticist"},/turf/open/floor/plasteel,/area/assembly/robotics) +"bib" = (/turf/open/floor/plasteel,/area/assembly/robotics) +"bic" = (/obj/machinery/camera{c_tag = "Robotics Lab"; dir = 2; network = list("SS13","RD")},/obj/machinery/button/door{dir = 2; id = "robotics"; name = "Shutters Control Button"; pixel_x = -6; pixel_y = 24; req_access_txt = "29"},/turf/open/floor/plasteel,/area/assembly/robotics) +"bid" = (/obj/machinery/requests_console{department = "Robotics"; departmentType = 2; name = "Robotics RC"; pixel_y = 30},/turf/open/floor/plasteel,/area/assembly/robotics) +"bie" = (/obj/structure/disposalpipe/sortjunction{dir = 2; icon_state = "pipe-j2s"; sortType = 14},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/assembly/robotics) +"bif" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/power/apc{dir = 1; name = "Robotics Lab APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel,/area/assembly/robotics) +"big" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/plasteel,/area/assembly/robotics) +"bih" = (/obj/machinery/light{dir = 8},/turf/open/floor/engine,/area/toxins/explab) +"bii" = (/obj/effect/landmark/event_spawn,/obj/item/device/radio/beacon,/turf/open/floor/engine,/area/toxins/explab) +"bij" = (/obj/machinery/r_n_d/experimentor,/turf/open/floor/engine,/area/toxins/explab) +"bik" = (/obj/effect/landmark{name = "blobstart"},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/engine,/area/toxins/explab) +"bil" = (/obj/effect/landmark/event_spawn,/turf/open/floor/engine,/area/toxins/explab) +"bim" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/engine,/area/toxins/explab) +"bin" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/power/apc{dir = 1; name = "Testing Lab APC"; pixel_y = 25},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/engine,/area/toxins/explab) +"bio" = (/obj/structure/cable{icon_state = "1-8"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 10; pixel_x = 0; initialize_directions = 10},/turf/open/floor/engine,/area/toxins/explab) +"bip" = (/obj/structure/sign/atmosplaque{desc = "A guide to the drone shell dispenser, detailing the constructive and destructive applications of modern repair drones, as well as the development of the uncorruptable cyborg servants of tomorrow, available today."; icon_state = "kiddieplaque"; name = "\improper 'Perfect Drone' sign"; pixel_x = 0; pixel_y = 32},/turf/open/floor/engine,/area/toxins/explab) +"biq" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/apmaint) +"bir" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/grille/broken,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/apmaint) +"bis" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/grille/broken,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/apmaint) +"bit" = (/obj/structure/cable{icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/apmaint) +"biu" = (/turf/open/floor/engine,/area/toxins/xenobiology) +"biv" = (/obj/machinery/camera{c_tag = "Xenobiology Test Chamber"; dir = 2; network = list("Xeno","RD"); pixel_x = 0},/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/general/hidden,/turf/open/floor/engine,/area/toxins/xenobiology) +"biw" = (/obj/machinery/atmospherics/pipe/simple/general/hidden,/turf/closed/wall/r_wall,/area/toxins/xenobiology) +"bix" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/apmaint) +"biy" = (/obj/item/trash/candle,/obj/item/weapon/cautery,/turf/open/floor/plating,/area/maintenance/apmaint) +"biz" = (/turf/open/floor/plating,/area/shuttle/auxillary_base) +"biA" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating,/area/maintenance/aft) +"biB" = (/obj/machinery/door/airlock/maintenance{name = "Genetics Maintenance"; req_access_txt = "9"; req_one_access_txt = "0"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/medical/genetics) +"biC" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plasteel/freezer,/area/medical/genetics) +"biD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/freezer,/area/medical/genetics) +"biE" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/freezer,/area/medical/genetics) +"biF" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/machinery/newscaster{pixel_x = 32},/turf/open/floor/plasteel/freezer,/area/medical/genetics) +"biG" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plating,/area/storage/emergency2) +"biH" = (/obj/machinery/power/apc{dir = 2; name = "Port Emergency Storage APC"; pixel_x = 0; pixel_y = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating{icon_state = "panelscorched"},/area/storage/emergency2) +"biI" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/item/weapon/storage/toolbox/emergency,/turf/open/floor/plating,/area/storage/emergency2) +"biJ" = (/obj/machinery/space_heater,/turf/open/floor/plating,/area/storage/emergency2) +"biK" = (/obj/structure/bodycontainer/morgue,/obj/effect/landmark{name = "revenantspawn"},/obj/machinery/light/small{brightness = 3; dir = 8},/turf/open/floor/plasteel/black,/area/medical/morgue) +"biL" = (/obj/structure/table,/obj/item/weapon/storage/box/bodybags,/obj/item/weapon/pen,/obj/machinery/light/small{dir = 4},/obj/machinery/camera{c_tag = "Morgue"; dir = 8},/turf/open/floor/plasteel/black,/area/medical/morgue) +"biM" = (/obj/machinery/power/apc{dir = 8; name = "Medbay Security APC"; pixel_x = -25},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/camera{c_tag = "Medbay Security Post"; dir = 4; network = list("SS13")},/obj/structure/closet/wardrobe/red,/turf/open/floor/plasteel/red/side{dir = 10},/area/security/checkpoint/medical) +"biN" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel/red/side,/area/security/checkpoint/medical) +"biO" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; layer = 2.4; on = 1},/turf/open/floor/plasteel/red/side,/area/security/checkpoint/medical) +"biP" = (/obj/structure/table,/obj/item/weapon/book/manual/wiki/security_space_law,/turf/open/floor/plasteel/red/side{dir = 6},/area/security/checkpoint/medical) +"biQ" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-05"; layer = 4.1},/turf/open/floor/plasteel/white,/area/medical/medbay) +"biR" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel/white,/area/medical/medbay) +"biS" = (/obj/machinery/holopad,/turf/open/floor/plasteel/white,/area/medical/medbay) +"biT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay) +"biU" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/white/side{dir = 8},/area/medical/medbay) +"biV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/aft) +"biW" = (/turf/open/floor/plasteel,/area/hallway/primary/aft) +"biX" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/primary/aft) +"biY" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/white/side{dir = 4},/area/medical/research{name = "Research Division"}) +"biZ" = (/obj/machinery/holopad,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bja" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bjb" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bjc" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = 6},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/item/clothing/head/welding{pixel_x = -3; pixel_y = 5},/obj/item/clothing/glasses/welding,/turf/open/floor/plasteel,/area/assembly/robotics) +"bjd" = (/turf/open/floor/plasteel/warning/corner,/area/assembly/robotics) +"bje" = (/obj/machinery/mecha_part_fabricator,/turf/open/floor/plasteel,/area/assembly/robotics) +"bjf" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/warning/corner{dir = 1},/area/assembly/robotics) +"bjg" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/assembly/robotics) +"bjh" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 20; pixel_x = 3; pixel_y = -4},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/plasteel/delivery,/area/assembly/robotics) +"bji" = (/obj/machinery/atmospherics/components/unary/outlet_injector{on = 1},/turf/open/floor/engine,/area/toxins/explab) +"bjj" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/engine,/area/toxins/explab) +"bjk" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/engine,/area/toxins/explab) +"bjl" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/light{dir = 8},/turf/open/floor/engine,/area/toxins/explab) +"bjm" = (/obj/structure/disposalpipe/segment,/obj/effect/landmark/start{name = "Scientist"},/obj/machinery/atmospherics/components/trinary/filter,/turf/open/floor/engine{name = "Holodeck Projector Floor"},/area/toxins/explab) +"bjn" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 6},/turf/open/floor/engine,/area/toxins/explab) +"bjo" = (/obj/machinery/atmospherics/components/unary/thermomachine/heater{dir = 8},/turf/open/floor/engine,/area/toxins/explab) +"bjp" = (/obj/machinery/light/small{brightness = 3; dir = 8},/turf/open/floor/engine,/area/toxins/xenobiology) +"bjq" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 1; frequency = 1441; id = "air_in"},/turf/open/floor/engine,/area/toxins/xenobiology) +"bjr" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/engine,/area/toxins/xenobiology) +"bjs" = (/obj/machinery/light{dir = 1},/turf/open/floor/engine,/area/toxins/xenobiology) +"bjt" = (/obj/effect/landmark/event_spawn,/turf/open/floor/engine,/area/toxins/xenobiology) +"bju" = (/turf/closed/wall,/area/toxins/xenobiology) +"bjv" = (/obj/effect/decal/cleanable/ash,/obj/effect/landmark{name = "revenantspawn"},/turf/open/floor/plating,/area/maintenance/apmaint) +"bjw" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/turf/open/floor/plating,/area/maintenance/apmaint) +"bjx" = (/obj/effect/spawner/lootdrop/maintenance,/obj/machinery/atmospherics/pipe/manifold/general/hidden{tag = "icon-manifold (NORTH)"; icon_state = "manifold"; dir = 1},/turf/open/floor/plating{broken = 1; icon_state = "platingdmg1"},/area/maintenance/apmaint) +"bjy" = (/obj/machinery/atmospherics/components/unary/thermomachine/freezer{dir = 8},/turf/open/floor/plating{broken = 1; icon_state = "platingdmg1"},/area/maintenance/apmaint) +"bjz" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"bjA" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"bjB" = (/obj/item/device/radio/beacon,/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"bjC" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"bjD" = (/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{tag = "icon-manifold (EAST)"; icon_state = "manifold"; dir = 4},/turf/open/floor/plasteel/neutral/corner,/area/hallway/secondary/entry) +"bjE" = (/obj/structure/rack,/obj/item/stack/cable_coil,/obj/item/weapon/electronics/airlock,/obj/item/wallframe/camera,/obj/item/device/assault_pod/mining,/turf/open/floor/plating,/area/shuttle/auxillary_base) +"bjF" = (/obj/structure/rack,/obj/item/stack/sheet/metal{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/stack/sheet/metal{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/stack/sheet/glass{amount = 50},/obj/item/weapon/storage/box/lights/mixed,/turf/open/floor/plating,/area/shuttle/auxillary_base) +"bjG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/aft) +"bjH" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/medical/genetics) +"bjI" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Cloning"; req_access_txt = "0"; req_one_access_txt = "5;9"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/freezer,/area/medical/genetics) +"bjJ" = (/turf/closed/wall,/area/medical/medbay3) +"bjK" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/clothing/gloves/color/latex,/obj/item/weapon/storage/fancy/candle_box,/turf/open/floor/plasteel/black,/area/medical/morgue) +"bjL" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/checkpoint/medical) +"bjM" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Medbay Security Post"; req_access_txt = "63"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/red,/area/security/checkpoint/medical) +"bjN" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/food/drinks/britcup{desc = "Kingston's personal cup."},/turf/open/floor/plasteel/whiteblue/side,/area/medical/medbay) +"bjO" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 0},/turf/open/floor/plasteel/whiteblue/corner{dir = 8},/area/medical/medbay) +"bjP" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bjQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bjR" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay) +"bjS" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bjT" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bjU" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{initialize_directions = 11},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bjV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bjW" = (/obj/machinery/light,/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/camera{c_tag = "Research Division Entrance"; dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/firealarm{dir = 1; pixel_x = -2; pixel_y = -27},/turf/open/floor/plasteel/whitepurple/side,/area/medical/research{name = "Research Division"}) +"bjX" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/whitepurple/side,/area/medical/research{name = "Research Division"}) +"bjY" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/whitepurple/side,/area/medical/research{name = "Research Division"}) +"bjZ" = (/turf/open/floor/plasteel/whitepurple/side,/area/medical/research{name = "Research Division"}) +"bka" = (/obj/machinery/r_n_d/circuit_imprinter,/obj/machinery/light{dir = 8},/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = -27},/turf/open/floor/plasteel,/area/assembly/robotics) +"bkb" = (/turf/open/floor/plasteel/warning{dir = 4},/area/assembly/robotics) +"bkc" = (/turf/open/floor/plasteel/bot,/area/assembly/robotics) +"bkd" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/open/floor/plasteel/warning{dir = 8},/area/assembly/robotics) +"bke" = (/obj/structure/table,/obj/item/stack/sheet/plasteel{amount = 10},/obj/item/device/assembly/flash/handheld,/obj/item/device/assembly/flash/handheld,/obj/item/device/assembly/flash/handheld,/obj/item/device/assembly/flash/handheld,/obj/item/device/assembly/flash/handheld,/obj/item/device/assembly/flash/handheld,/obj/item/device/assembly/flash/handheld,/obj/machinery/airalarm{dir = 8; pixel_x = 23; pixel_y = 0},/turf/open/floor/plasteel/delivery,/area/assembly/robotics) +"bkf" = (/obj/machinery/atmospherics/pipe/simple/general/hidden,/turf/closed/wall/r_wall,/area/toxins/explab) +"bkg" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/poddoor/preopen{id = "testlab"; name = "test chamber blast door"},/turf/open/floor/engine,/area/toxins/explab) +"bkh" = (/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "testlab"; name = "test chamber blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/toxins/explab) +"bki" = (/obj/machinery/door/poddoor/preopen{id = "telelab"; name = "test chamber blast door"},/obj/machinery/door/firedoor/heavy,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/engine,/area/toxins/explab) +"bkj" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/turf/open/floor/engine,/area/toxins/explab) +"bkk" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/general/visible,/turf/open/floor/engine,/area/toxins/explab) +"bkl" = (/obj/machinery/atmospherics/pipe/manifold/general/visible,/obj/item/weapon/wrench,/turf/open/floor/engine,/area/toxins/explab) +"bkm" = (/obj/machinery/atmospherics/components/unary/thermomachine/freezer{dir = 8},/turf/open/floor/engine,/area/toxins/explab) +"bkn" = (/obj/structure/table,/obj/machinery/reagentgrinder,/turf/open/floor/plasteel/whitepurple/side{dir = 9},/area/toxins/xenobiology) +"bko" = (/obj/structure/table,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/syringes,/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 26},/turf/open/floor/plasteel/whitepurple/side{dir = 1},/area/toxins/xenobiology) +"bkp" = (/obj/structure/table,/obj/item/stack/sheet/mineral/plasma{layer = 2.9},/obj/item/stack/sheet/mineral/plasma{layer = 2.9},/obj/item/stack/sheet/mineral/plasma{layer = 2.9},/obj/machinery/airalarm{pixel_y = 22},/turf/open/floor/plasteel/whitepurple/side{dir = 1},/area/toxins/xenobiology) +"bkq" = (/obj/structure/table,/obj/item/weapon/pen,/obj/item/clothing/glasses/science,/obj/item/clothing/glasses/science,/obj/item/weapon/paper_bin{layer = 2.9; pixel_x = 0; pixel_y = 0; tag = "every single paper bin is edited to this"},/turf/open/floor/plasteel/whitepurple/side{dir = 5},/area/toxins/xenobiology) +"bkr" = (/obj/effect/landmark{name = "revenantspawn"},/turf/open/floor/engine,/area/toxins/xenobiology) +"bks" = (/obj/item/weapon/weldingtool,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/apmaint) +"bkt" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/apmaint) +"bku" = (/obj/machinery/atmospherics/pipe/manifold/general/hidden,/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/apmaint) +"bkv" = (/obj/machinery/atmospherics/components/unary/thermomachine/heater{dir = 8},/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/apmaint) +"bkw" = (/turf/open/floor/plasteel/arrival,/area/hallway/secondary/entry) +"bkx" = (/obj/machinery/camera{c_tag = "Arrivals Port Aft"; dir = 1},/turf/open/floor/plasteel/arrival,/area/hallway/secondary/entry) +"bky" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"bkz" = (/obj/machinery/door/airlock/engineering{cyclelinkeddir = 1; name = "Auxillary Mining Closet Construction"; req_access_txt = "0"; req_one_access_txt = "31;32;47;48"},/turf/open/floor/plating,/area/mining_construction{name = "Auxillary Closet Construction"}) +"bkA" = (/obj/machinery/camera{c_tag = "Auxillary Mining Base"; dir = 8},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/open/floor/plating,/area/shuttle/auxillary_base) +"bkB" = (/obj/docking_port/mobile/auxillary_base{dheight = 0; dir = 8; dwidth = 2; height = 4; width = 5},/obj/machinery/bluespace_beacon,/obj/machinery/computer/shuttle/auxillary_base{pixel_x = 0; pixel_y = 0},/turf/closed/wall,/area/shuttle/auxillary_base) +"bkC" = (/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = 26},/obj/structure/closet/secure_closet/personal/patient,/turf/open/floor/plasteel/whiteblue/side{tag = "icon-whiteblue (NORTH)"; dir = 1},/area/medical/genetics) +"bkD" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/whiteblue/side{tag = "icon-whiteblue (NORTH)"; dir = 1},/area/medical/genetics) +"bkE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel/whiteblue/side{tag = "icon-whiteblue (NORTH)"; dir = 1},/area/medical/genetics) +"bkF" = (/obj/structure/closet/wardrobe/mixed,/turf/open/floor/plasteel/whiteblue/side{tag = "icon-whiteblue (NORTH)"; dir = 1},/area/medical/genetics) +"bkG" = (/obj/machinery/vending/clothing,/turf/open/floor/plasteel/whiteblue/side{tag = "icon-whiteblue (NORTH)"; dir = 1},/area/medical/genetics) +"bkH" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/obj/structure/sign/poster{pixel_x = -32},/turf/open/floor/plasteel/whiteblue/side{dir = 9; initial_gas_mix = "n2=100;TEMP=80"; tag = "icon-whiteblue (NORTHWEST)"},/area/medical/medbay3) +"bkI" = (/obj/machinery/light{dir = 1},/obj/structure/table,/obj/machinery/airalarm{pixel_y = 22},/obj/item/weapon/storage/box/gloves{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/masks,/turf/open/floor/plasteel/whiteblue/side{dir = 1; tag = "icon-whiteblue (NORTH)"},/area/medical/medbay3) +"bkJ" = (/obj/machinery/vending/medical,/turf/open/floor/plasteel/whiteblue/side{tag = "icon-whiteblue (NORTHEAST)"; dir = 5},/area/medical/medbay3) +"bkK" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/black,/area/medical/morgue) +"bkL" = (/obj/item/weapon/ectoplasm,/turf/open/floor/plasteel/black,/area/medical/morgue) +"bkM" = (/obj/structure/sign/poster{pixel_x = -32},/turf/open/floor/plasteel/whiteblue/side{dir = 9; initial_gas_mix = "n2=100;TEMP=80"; tag = "icon-whiteblue (NORTHWEST)"},/area/medical/medbay) +"bkN" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/whiteblue/side{dir = 1; tag = "icon-whiteblue (NORTH)"},/area/medical/medbay) +"bkO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/whiteblue/side{tag = "icon-whiteblue (NORTHEAST)"; dir = 5},/area/medical/medbay) +"bkP" = (/obj/machinery/requests_console{announcementConsole = 0; department = "Medbay"; departmentType = 1; name = "Medbay RC"; pixel_x = -32; pixel_y = 0; pixel_z = 0},/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = 26},/turf/open/floor/plasteel/whiteblue/side{dir = 1},/area/medical/medbay) +"bkQ" = (/obj/structure/chair/office/light{dir = 4},/obj/effect/landmark/start{name = "Medical Doctor"},/turf/open/floor/plasteel/whiteblue/side{tag = "icon-whiteblue (NORTHEAST)"; dir = 5},/area/medical/medbay) +"bkR" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/white,/obj/item/weapon/pen,/turf/open/floor/plasteel/whiteblue/side{dir = 8},/area/medical/medbay) +"bkS" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay) +"bkT" = (/obj/structure/bed/roller,/turf/open/floor/plasteel/whiteblue/side,/area/medical/medbay) +"bkU" = (/obj/structure/bed/roller,/obj/machinery/camera{c_tag = "Medbay Entrance"; dir = 1},/turf/open/floor/plasteel/whiteblue/side,/area/medical/medbay) +"bkV" = (/turf/open/floor/plasteel/whiteblue/side,/area/medical/medbay) +"bkW" = (/obj/structure/table/glass,/obj/item/stack/medical/gauze,/obj/item/weapon/reagent_containers/glass/bottle/epinephrine,/turf/open/floor/plasteel/whiteblue/side,/area/medical/medbay) +"bkX" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/whitepurple/side,/area/medical/research{name = "Research Division"}) +"bkY" = (/obj/structure/closet/firecloset/full,/turf/open/floor/plasteel/whitepurple/side,/area/medical/research{name = "Research Division"}) +"bkZ" = (/obj/structure/table,/obj/item/weapon/paper_bin{layer = 2.9; pixel_x = -2; pixel_y = 4},/obj/item/weapon/pen,/turf/open/floor/plasteel/whitepurple/side,/area/medical/research{name = "Research Division"}) +"bla" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-18"; layer = 3; pixel_y = 0},/turf/open/floor/plasteel/whitepurple/side,/area/medical/research{name = "Research Division"}) +"blb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/medical/research{name = "Research Division"}) +"blc" = (/obj/machinery/door/airlock/research{cyclelinkeddir = 2; name = "Research Division Access"; req_access_txt = "47"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bld" = (/obj/machinery/computer/rdconsole/robotics,/turf/open/floor/plasteel,/area/assembly/robotics) +"ble" = (/obj/effect/landmark/start{name = "Roboticist"},/turf/open/floor/plasteel/bot,/area/assembly/robotics) +"blf" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high/plus,/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/firealarm{dir = 4; pixel_x = 28},/turf/open/floor/plasteel,/area/assembly/robotics) +"blg" = (/turf/closed/wall,/area/toxins/explab) +"blh" = (/obj/structure/rack,/obj/item/clothing/mask/gas{pixel_x = 3; pixel_y = 3},/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas{pixel_x = -3; pixel_y = -3},/obj/machinery/atmospherics/pipe/simple/general/visible,/turf/open/floor/plasteel/warning{dir = 1},/area/toxins/explab) +"bli" = (/obj/machinery/button/door{id = "testlab"; name = "Window Blast Doors"; pixel_x = -6; pixel_y = 0},/obj/structure/table/reinforced,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/button/door{id = "telelab"; name = "Test Chamber Blast Door"; pixel_x = 6; pixel_y = 0},/turf/open/floor/plasteel/warning{dir = 1},/area/toxins/explab) +"blj" = (/obj/machinery/computer/rdconsole/experiment,/turf/open/floor/plasteel/warning{dir = 1},/area/toxins/explab) +"blk" = (/obj/structure/table/reinforced,/obj/item/weapon/folder,/obj/item/weapon/book/manual/experimentor,/turf/open/floor/plasteel/warning{dir = 1},/area/toxins/explab) +"bll" = (/obj/item/weapon/paper_bin{pixel_x = 0; pixel_y = 6},/obj/item/weapon/pen,/obj/item/device/radio/off,/obj/structure/table/reinforced,/turf/open/floor/plasteel/warning{dir = 1},/area/toxins/explab) +"blm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/warning{dir = 1},/area/toxins/explab) +"bln" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/requests_console{department = "Science"; departmentType = 2; dir = 2; name = "Science Requests Console"; pixel_x = 0; pixel_y = 30},/turf/open/floor/plasteel/warning{dir = 1},/area/toxins/explab) +"blo" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/warning{dir = 1},/area/toxins/explab) +"blp" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plasteel/warning{dir = 1},/area/toxins/explab) +"blq" = (/turf/open/floor/plasteel/warning{dir = 1},/area/toxins/explab) +"blr" = (/obj/structure/rack,/obj/item/stack/packageWrap,/obj/item/stack/cable_coil,/obj/item/weapon/wirecutters,/turf/open/floor/plasteel/warning{dir = 1},/area/toxins/explab) +"bls" = (/obj/machinery/monkey_recycler,/turf/open/floor/plasteel/whitepurple/side{dir = 8},/area/toxins/xenobiology) +"blt" = (/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"blu" = (/obj/structure/chair/comfy/beige{dir = 4},/obj/effect/landmark/start{name = "Scientist"},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"blv" = (/obj/machinery/computer/camera_advanced/xenobio,/turf/open/floor/plasteel/whitepurple/side{dir = 4},/area/toxins/xenobiology) +"blw" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/closed/wall/r_wall,/area/toxins/xenobiology) +"blx" = (/obj/structure/disposaloutlet{dir = 1},/obj/structure/disposalpipe/trunk,/turf/open/floor/engine,/area/toxins/xenobiology) +"bly" = (/obj/machinery/space_heater,/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/apmaint) +"blz" = (/obj/structure/mining_shuttle_beacon,/turf/open/floor/plating,/area/shuttle/auxillary_base) +"blA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light/small{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) +"blB" = (/obj/machinery/clonepod,/turf/open/floor/plasteel/blue,/area/medical/genetics) +"blC" = (/turf/open/floor/plasteel/warnwhite{dir = 8},/area/medical/genetics) +"blD" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/white,/area/medical/genetics) +"blE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/genetics) +"blF" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/medical/genetics) +"blG" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/whiteblue/side{tag = "icon-whiteblue (WEST)"; dir = 8},/area/medical/medbay3) +"blH" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/white,/area/medical/medbay3) +"blI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/whiteblue/side{tag = "icon-whiteblue (EAST)"; dir = 4},/area/medical/medbay3) +"blJ" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/centcom{name = "Morgue"; opacity = 1; req_access_txt = "6;5"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/medical/morgue) +"blK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/medical/morgue) +"blL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/black,/area/medical/morgue) +"blM" = (/obj/machinery/light/small,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/medical/morgue) +"blN" = (/obj/structure/cable{icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/black,/area/medical/morgue) +"blO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/black,/area/medical/morgue) +"blP" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/centcom{name = "Morgue"; opacity = 1; req_access_txt = "6;5"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/black,/area/medical/morgue) +"blQ" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (NORTH)"; dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/whiteblue/side{dir = 8},/area/medical/medbay) +"blR" = (/obj/structure/cable{icon_state = "1-8"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; layer = 2.4; on = 1},/turf/open/floor/plasteel/white,/area/medical/medbay) +"blS" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/whiteblue/side{tag = "icon-whiteblue (EAST)"; dir = 4},/area/medical/medbay) +"blT" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{name = "Medbay Reception"; req_access_txt = "5"},/turf/open/floor/plasteel/white,/area/medical/medbay) +"blU" = (/obj/structure/chair/office/light{dir = 4},/turf/open/floor/plasteel/whiteblue/side{tag = "icon-whiteblue (EAST)"; dir = 4},/area/medical/medbay) +"blV" = (/obj/structure/table/reinforced,/obj/machinery/button/door{desc = "A remote control switch for the medbay foyer."; id = "MedbayFoyer"; name = "Medbay Door Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = 0; req_access_txt = "5"},/turf/open/floor/plasteel/whiteblue/side{dir = 8},/area/medical/medbay) +"blW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/whiteblue/corner{dir = 8},/area/medical/medbay) +"blX" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/whiteblue/corner,/area/medical/medbay) +"blY" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/shutters/preopen{id = "chemistry_shutters"; name = "chemistry shutters"},/turf/open/floor/plating,/area/medical/chemistry) +"blZ" = (/obj/structure/table/reinforced,/obj/machinery/door/window/northleft{dir = 2; name = "Chemistry Desk"; req_access_txt = "5; 33"},/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters/preopen{id = "chemistry_shutters"; name = "chemistry shutters"},/obj/item/weapon/folder/white,/obj/item/weapon/pen,/turf/open/floor/plasteel/whiteyellow{dir = 4},/area/medical/chemistry) +"bma" = (/obj/machinery/smartfridge/chemistry,/turf/open/floor/plasteel/black,/area/medical/chemistry) +"bmb" = (/turf/closed/wall,/area/medical/chemistry) +"bmc" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/shutters/preopen{id = "research_shutters_2"; name = "research shutters"},/turf/open/floor/plating,/area/toxins/explab) +"bmd" = (/obj/structure/table/reinforced,/obj/item/weapon/pen{layer = 3.1},/obj/machinery/door/firedoor,/obj/machinery/door/window/eastright{dir = 2; name = "Research and Development Desk"; req_access_txt = "7"},/obj/machinery/door/poddoor/shutters/preopen{id = "research_shutters_2"; name = "research shutters"},/obj/item/weapon/folder/white,/turf/open/floor/plating,/area/toxins/explab) +"bme" = (/obj/structure/sink{dir = 8; icon_state = "sink"; pixel_x = -12},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/warnwhite{dir = 8},/area/medical/research{name = "Research Division"}) +"bmf" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bmg" = (/obj/structure/closet/emcloset,/obj/machinery/camera{c_tag = "Research Division Access"; dir = 2; network = list("SS13")},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/warnwhite{dir = 4},/area/medical/research{name = "Research Division"}) +"bmh" = (/obj/structure/table,/obj/item/weapon/book/manual/robotics_cyborgs{pixel_x = 2; pixel_y = 5},/obj/item/weapon/storage/belt/utility,/obj/item/weapon/reagent_containers/glass/beaker/large,/turf/open/floor/plasteel,/area/assembly/robotics) +"bmi" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel,/area/assembly/robotics) +"bmj" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/assembly/robotics) +"bmk" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{icon_state = "1-8"},/turf/open/floor/plasteel,/area/assembly/robotics) +"bml" = (/obj/structure/sink{dir = 4; pixel_x = 11},/obj/effect/decal/cleanable/oil{icon_state = "floor6"},/turf/open/floor/plasteel,/area/assembly/robotics) +"bmm" = (/obj/machinery/atmospherics/components/binary/pump{dir = 1},/obj/structure/extinguisher_cabinet{pixel_x = -24},/turf/open/floor/plasteel,/area/toxins/explab) +"bmn" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel,/area/toxins/explab) +"bmo" = (/obj/structure/chair/stool,/obj/effect/landmark/start{name = "Scientist"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/toxins/explab) +"bmp" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/toxins/explab) +"bmq" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/toxins/explab) +"bmr" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel,/area/toxins/explab) +"bms" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/toxins/explab) +"bmt" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/toxins/explab) +"bmu" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 50; pixel_x = 3; pixel_y = 3},/obj/item/stack/sheet/metal{amount = 50},/obj/item/device/assembly/timer,/obj/item/device/assembly/timer,/turf/open/floor/plasteel,/area/toxins/explab) +"bmv" = (/obj/machinery/processor{desc = "A machine used to process slimes and retrieve their extract."; name = "Slime Processor"},/obj/structure/sign/poster{pixel_x = -32; pixel_y = 0},/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/whitepurple/side{dir = 8},/area/toxins/xenobiology) +"bmw" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bmx" = (/obj/machinery/smartfridge/extract,/turf/open/floor/plasteel/whitepurple/side{dir = 4},/area/toxins/xenobiology) +"bmy" = (/obj/machinery/shieldwallgen{req_access = list(55)},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating,/area/toxins/xenobiology) +"bmz" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "misclab"; name = "test chamber blast door"},/turf/open/floor/engine,/area/toxins/xenobiology) +"bmA" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/poddoor/preopen{id = "misclab"; name = "test chamber blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/toxins/xenobiology) +"bmB" = (/obj/machinery/door/window/southleft{dir = 1; name = "Test Chamber"; req_access_txt = "55"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/poddoor/preopen{id = "misclab"; name = "test chamber blast door"},/turf/open/floor/engine,/area/toxins/xenobiology) +"bmC" = (/obj/structure/grille,/obj/structure/disposalpipe/segment,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/poddoor/preopen{id = "misclab"; name = "test chamber blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/toxins/xenobiology) +"bmD" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "misclab"; name = "test chamber blast door"},/obj/structure/window/reinforced/fulltile,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/engine,/area/toxins/xenobiology) +"bmE" = (/obj/machinery/shieldwallgen{req_access = list(55)},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/toxins/xenobiology) +"bmF" = (/obj/machinery/atmospherics/pipe/simple/general/hidden,/turf/closed/wall,/area/toxins/xenobiology) +"bmG" = (/obj/machinery/door/poddoor/preopen{id = "xenobio5"; name = "containment blast door"},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/disposalpipe/segment,/turf/open/floor/engine,/area/toxins/xenobiology) +"bmH" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 1; icon_state = "right"; name = "Containment Pen #5"; req_access_txt = "55"},/obj/machinery/door/poddoor/preopen{id = "xenobio5"; name = "containment blast door"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/engine,/area/toxins/xenobiology) +"bmI" = (/obj/machinery/door/poddoor/preopen{id = "xenobio5"; name = "containment blast door"},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/engine,/area/toxins/xenobiology) +"bmJ" = (/obj/machinery/door/poddoor/preopen{id = "xenobio6"; name = "containment blast door"},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/disposalpipe/segment,/turf/open/floor/engine,/area/toxins/xenobiology) +"bmK" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 1; icon_state = "right"; name = "Containment Pen #6"; req_access_txt = "55"},/obj/machinery/door/poddoor/preopen{id = "xenobio6"; name = "containment blast door"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/engine,/area/toxins/xenobiology) +"bmL" = (/obj/machinery/door/poddoor/preopen{id = "xenobio6"; name = "containment blast door"},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/engine,/area/toxins/xenobiology) +"bmM" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/apmaint) +"bmN" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/maintenance/apmaint) +"bmO" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 4},/turf/closed/wall/mineral/titanium,/area/shuttle/transport) +"bmP" = (/turf/closed/wall/mineral/titanium,/area/shuttle/transport) +"bmQ" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/open/floor/plating,/area/shuttle/transport) +"bmR" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/transport) +"bmS" = (/obj/machinery/power/apc{dir = 4; name = "Arrivals APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/open/floor/plasteel/neutral/corner,/area/hallway/secondary/entry) +"bmT" = (/obj/machinery/computer/cloning,/obj/machinery/light{dir = 8},/obj/machinery/camera{c_tag = "Genetics Cloning"; dir = 4; network = list("SS13")},/turf/open/floor/plasteel/blue,/area/medical/genetics) +"bmU" = (/obj/machinery/holopad,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/genetics) +"bmV" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j2s"; sortType = 23},/turf/open/floor/plasteel/white,/area/medical/genetics) +"bmW" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/white,/area/medical/genetics) +"bmX" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{id_tag = "GeneticsDoor"; name = "Cloning"; req_access_txt = "5"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/white,/area/medical/genetics) +"bmY" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j1s"; sortType = 9},/turf/open/floor/plasteel/whiteblue/corner{dir = 1},/area/medical/medbay3) +"bmZ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel/white,/area/medical/medbay3) +"bna" = (/obj/machinery/power/apc{dir = 4; name = "Medbay APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel/whiteblue/corner{dir = 4},/area/medical/medbay3) +"bnb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/cable,/obj/machinery/power/apc{dir = 8; name = "Medbay APC"; pixel_x = -24; pixel_y = 0},/turf/open/floor/plasteel/whiteblue/corner{dir = 1},/area/medical/medbay) +"bnc" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (NORTH)"; dir = 1},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bnd" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/obj/structure/sign/poster{pixel_x = 32},/turf/open/floor/plasteel/whiteblue/corner{dir = 4},/area/medical/medbay) +"bne" = (/obj/machinery/computer/med_data,/turf/open/floor/plasteel/whiteblue/side,/area/medical/medbay) +"bnf" = (/obj/machinery/computer/crew,/turf/open/floor/plasteel/whiteblue/side{dir = 6},/area/medical/medbay) +"bng" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{id_tag = "MedbayFoyer"; name = "Medbay"; req_access_txt = "5"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/whiteblue/corner{dir = 8},/area/medical/medbay) +"bnh" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{id_tag = "MedbayFoyer"; name = "Medbay"; req_access_txt = "5"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/whiteblue/corner,/area/medical/medbay) +"bni" = (/obj/machinery/chem_master{layer = 2.7; pixel_x = -2},/turf/open/floor/plasteel/whiteyellow/side{dir = 9},/area/medical/chemistry) +"bnj" = (/obj/structure/chair/office/light{dir = 1},/obj/effect/landmark/start{name = "Chemist"},/turf/open/floor/plasteel/whiteyellow/side{dir = 1},/area/medical/chemistry) +"bnk" = (/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/structure/table/glass,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/item/clothing/glasses/science,/turf/open/floor/plasteel/whiteyellow/side{dir = 1},/area/medical/chemistry) +"bnl" = (/obj/machinery/chem_master{layer = 2.7; pixel_x = -2},/obj/machinery/button/door{id = "chemistry_shutters"; name = "Shutters Control"; pixel_x = 26; pixel_y = 4; req_access_txt = "5; 33"},/turf/open/floor/plasteel/whiteyellow/side{dir = 5},/area/medical/chemistry) +"bnm" = (/obj/structure/table,/obj/item/weapon/crowbar,/obj/item/weapon/wrench,/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_x = -32; pixel_y = 0},/obj/item/weapon/book/manual/research_and_development,/turf/open/floor/plasteel,/area/toxins/explab) +"bnn" = (/obj/structure/sink/kitchen{desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; name = "old sink"; pixel_y = 28},/turf/open/floor/plasteel,/area/toxins/explab) +"bno" = (/obj/machinery/disposal/bin,/obj/machinery/light{dir = 1},/obj/structure/disposalpipe/trunk{dir = 4},/turf/open/floor/plasteel,/area/toxins/explab) +"bnp" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1},/turf/open/floor/plasteel,/area/toxins/explab) +"bnq" = (/obj/structure/chair/office/light{dir = 1},/turf/open/floor/plasteel,/area/toxins/explab) +"bnr" = (/obj/item/weapon/storage/toolbox/mechanical,/obj/machinery/holopad,/turf/open/floor/plasteel,/area/toxins/explab) +"bns" = (/obj/machinery/shower{dir = 4; icon_state = "shower"; name = "emergency shower"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel/warnwhite{dir = 10; heat_capacity = 1e+006},/area/medical/research{name = "Research Division"}) +"bnt" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/warnwhite,/area/medical/research{name = "Research Division"}) +"bnu" = (/obj/structure/closet/firecloset/full,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/warnwhite{dir = 6},/area/medical/research{name = "Research Division"}) +"bnv" = (/obj/structure/closet/wardrobe/robotics_black,/obj/item/device/radio/headset/headset_sci{pixel_x = -3},/turf/open/floor/plasteel,/area/assembly/robotics) +"bnw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1},/turf/open/floor/plasteel,/area/assembly/robotics) +"bnx" = (/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/weapon/stock_parts/cell/high/plus,/obj/item/weapon/stock_parts/cell/high/plus{pixel_x = 5; pixel_y = -5},/obj/item/weapon/crowbar,/obj/structure/table,/turf/open/floor/plasteel,/area/assembly/robotics) +"bny" = (/obj/item/weapon/circular_saw,/obj/item/weapon/scalpel{pixel_y = 12},/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/obj/item/weapon/razor{pixel_y = 5},/obj/structure/window/reinforced{dir = 8; layer = 2.9},/obj/structure/table,/turf/open/floor/plasteel/warnwhite{dir = 9},/area/assembly/robotics) +"bnz" = (/turf/open/floor/plasteel/warnwhite{dir = 1},/area/assembly/robotics) +"bnA" = (/obj/machinery/holopad,/turf/open/floor/plasteel/warnwhite{dir = 1},/area/assembly/robotics) +"bnB" = (/obj/item/clothing/gloves/color/latex,/obj/item/weapon/surgical_drapes,/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/obj/structure/table,/turf/open/floor/plasteel/warnwhite{dir = 1},/area/assembly/robotics) +"bnC" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 1; name = "Connector Port (Air Supply)"},/obj/machinery/light_switch{pixel_x = -25},/turf/open/floor/plasteel,/area/toxins/explab) +"bnD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/toxins/explab) +"bnE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel,/area/toxins/explab) +"bnF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/obj/machinery/holopad,/turf/open/floor/plasteel,/area/toxins/explab) +"bnG" = (/turf/open/floor/plasteel,/area/toxins/explab) +"bnH" = (/obj/machinery/droneDispenser,/turf/open/floor/plasteel,/area/toxins/explab) +"bnI" = (/obj/structure/chair/stool,/obj/effect/decal/cleanable/oil{icon_state = "floor5"},/turf/open/floor/plasteel,/area/toxins/explab) +"bnJ" = (/obj/structure/chair/stool,/turf/open/floor/plasteel,/area/toxins/explab) +"bnK" = (/obj/structure/table,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/grenade/chem_grenade,/obj/item/weapon/grenade/chem_grenade,/obj/machinery/firealarm{dir = 4; pixel_x = 28},/turf/open/floor/plasteel,/area/toxins/explab) +"bnL" = (/obj/structure/table/glass,/obj/item/weapon/folder/white{layer = 2.9},/obj/item/weapon/pen,/turf/open/floor/plasteel/whitepurple/side{dir = 8},/area/toxins/xenobiology) +"bnM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bnN" = (/obj/structure/chair/comfy/beige{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bnO" = (/obj/machinery/computer/camera_advanced/xenobio,/obj/machinery/camera{c_tag = "Xenobiology Port"; dir = 8; network = list("SS13","RD")},/turf/open/floor/plasteel/whitepurple/side{dir = 4},/area/toxins/xenobiology) +"bnP" = (/obj/structure/sign/biohazard,/turf/closed/wall,/area/toxins/xenobiology) +"bnQ" = (/obj/item/weapon/wrench,/turf/open/floor/plasteel/warning{dir = 2},/area/toxins/xenobiology) +"bnR" = (/obj/machinery/computer/security/telescreen{name = "Test Chamber Moniter"; network = list("Xeno"); pixel_x = 0; pixel_y = 2},/obj/structure/table/reinforced,/turf/open/floor/plasteel/warning{dir = 2},/area/toxins/xenobiology) +"bnS" = (/obj/machinery/button/door{id = "misclab"; name = "Test Chamber Blast Doors"; pixel_x = 0; pixel_y = -2; req_access_txt = "55"},/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/warning{dir = 6},/area/toxins/xenobiology) +"bnT" = (/obj/machinery/door/window/southleft{name = "Test Chamber"; req_access_txt = "55"},/turf/open/floor/plasteel/warning{dir = 2},/area/toxins/xenobiology) +"bnU" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/warning{dir = 10},/area/toxins/xenobiology) +"bnV" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/turf/open/floor/plasteel/warning,/area/toxins/xenobiology) +"bnW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/binary/pump{dir = 4},/turf/open/floor/plasteel/warning{dir = 2},/area/toxins/xenobiology) +"bnX" = (/obj/structure/sign/xenobio,/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 9},/turf/closed/wall,/area/toxins/xenobiology) +"bnY" = (/obj/machinery/disposal/bin,/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/disposalpipe/trunk{dir = 1},/turf/open/floor/plasteel/warning{tag = "icon-warning (NORTHEAST)"; dir = 5},/area/toxins/xenobiology) +"bnZ" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 2; icon_state = "right"; name = "Containment Pen #5"; req_access_txt = "55"},/turf/open/floor/plasteel/warning{tag = "icon-warning (NORTH)"; dir = 1},/area/toxins/xenobiology) +"boa" = (/obj/structure/table/reinforced,/obj/machinery/button/door{id = "xenobio5"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/obj/structure/window/reinforced{dir = 8; layer = 2.9},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/warning{dir = 9},/area/toxins/xenobiology) +"bob" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 2; icon_state = "right"; name = "Containment Pen #6"; req_access_txt = "55"},/turf/open/floor/plasteel/warning{tag = "icon-warning (NORTH)"; dir = 1},/area/toxins/xenobiology) +"boc" = (/obj/structure/table/reinforced,/obj/machinery/button/door{id = "xenobio6"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/obj/structure/window/reinforced{dir = 8; layer = 2.9},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/warning{dir = 9},/area/toxins/xenobiology) +"bod" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12; 55"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/toxins/xenobiology) +"boe" = (/obj/structure/chair{dir = 4},/obj/item/weapon/cigbutt,/turf/open/floor/plating,/area/maintenance/apmaint) +"bof" = (/turf/open/floor/mineral/titanium/blue,/turf/closed/wall/mineral/titanium/interior,/area/shuttle/transport) +"bog" = (/turf/open/floor/mineral/titanium/blue,/area/shuttle/transport) +"boh" = (/obj/machinery/computer/shuttle/ferry/request,/turf/open/floor/mineral/titanium/blue,/area/shuttle/transport) +"boi" = (/obj/structure/chair,/turf/open/floor/mineral/titanium/blue,/area/shuttle/transport) +"boj" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/hallway/secondary/entry) +"bok" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/camera{c_tag = "Arrivals Starboard Aft"; dir = 8},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/open/floor/plasteel/neutral/corner,/area/hallway/secondary/entry) +"bol" = (/obj/machinery/dna_scannernew,/turf/open/floor/plasteel/blue,/area/medical/genetics) +"bom" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/warnwhite{dir = 8},/area/medical/genetics) +"bon" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/genetics) +"boo" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/turf/open/floor/plasteel/white,/area/medical/genetics) +"bop" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/chair/stool,/turf/open/floor/plasteel/white,/area/medical/genetics) +"boq" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/medical/genetics) +"bor" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/whiteblue/corner{dir = 1},/area/medical/medbay3) +"bos" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/white,/area/medical/medbay3) +"bot" = (/turf/open/floor/plasteel/whiteblue/corner{dir = 4},/area/medical/medbay3) +"bou" = (/turf/closed/wall,/area/medical/sleeper) +"bov" = (/obj/machinery/atmospherics/components/unary/thermomachine/freezer,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/structure/sign/poster{pixel_y = 32},/turf/open/floor/plasteel/blue,/area/medical/sleeper) +"bow" = (/obj/machinery/atmospherics/components/unary/cryo_cell,/turf/open/floor/plasteel/blue,/area/medical/sleeper) +"box" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/machinery/atmospherics/components/unary/portables_connector/visible,/obj/structure/noticeboard{pixel_y = 32},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/blue,/area/medical/sleeper) +"boy" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/machinery/atmospherics/components/unary/portables_connector/visible,/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = 28; pixel_y = 0},/obj/machinery/airalarm{pixel_y = 22},/turf/open/floor/plasteel/blue,/area/medical/sleeper) +"boz" = (/turf/open/floor/plasteel/whiteblue/corner{dir = 1},/area/medical/medbay) +"boA" = (/obj/structure/extinguisher_cabinet{pixel_x = 24},/turf/open/floor/plasteel/whiteblue/corner{dir = 4},/area/medical/medbay) +"boB" = (/obj/machinery/button/door{desc = "A remote control switch for the medbay foyer."; id = "MedbayFoyer"; name = "Medbay Exit Button"; normaldoorcontrol = 1; pixel_x = -26; pixel_y = -2},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/whiteblue/corner{dir = 8},/area/medical/medbay) +"boC" = (/obj/machinery/chem_dispenser{layer = 2.7},/obj/machinery/button/door{desc = "A remote control switch for the medbay foyer."; id = "MedbayFoyer"; name = "Medbay Door Control"; normaldoorcontrol = 1; pixel_x = -26; pixel_y = -2; req_access_txt = "5"},/turf/open/floor/plasteel/whiteyellow/side{dir = 8},/area/medical/chemistry) +"boD" = (/turf/open/floor/plasteel/white,/area/medical/chemistry) +"boE" = (/obj/item/weapon/book/manual/wiki/chemistry,/obj/item/weapon/storage/box/beakers,/obj/structure/table/glass,/turf/open/floor/plasteel/white,/area/medical/chemistry) +"boF" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/white,/area/medical/chemistry) +"boG" = (/obj/machinery/chem_dispenser{layer = 2.7},/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = 29},/turf/open/floor/plasteel/white,/area/medical/chemistry) +"boH" = (/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"boI" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"boJ" = (/obj/structure/table,/obj/structure/extinguisher_cabinet{pixel_x = -26},/obj/item/weapon/disk/tech_disk{pixel_x = 0; pixel_y = 0},/obj/item/weapon/disk/design_disk,/turf/open/floor/plasteel,/area/toxins/explab) +"boK" = (/turf/open/floor/plasteel/warning,/area/toxins/explab) +"boL" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/warning,/area/toxins/explab) +"boM" = (/obj/machinery/power/apc{dir = 4; name = "Research Lab APC"; pixel_x = 26; pixel_y = 0},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/open/floor/plasteel,/area/toxins/explab) +"boN" = (/obj/machinery/door/firedoor/heavy,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/poddoor/preopen{id = "rndshutters"; name = "research shutters"},/turf/open/floor/plasteel/bot,/area/medical/research{name = "Research Division"}) +"boO" = (/obj/machinery/door/firedoor/heavy,/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/poddoor/preopen{id = "rndshutters"; name = "research shutters"},/turf/open/floor/plasteel/bot,/area/medical/research{name = "Research Division"}) +"boP" = (/obj/machinery/door/firedoor/heavy,/obj/machinery/door/poddoor/preopen{id = "rndshutters"; name = "research shutters"},/turf/open/floor/plasteel/bot,/area/medical/research{name = "Research Division"}) +"boQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/assembly/robotics) +"boR" = (/obj/item/weapon/storage/firstaid/regular{empty = 1; name = "First-Aid (empty)"},/obj/item/weapon/storage/firstaid/regular{empty = 1; name = "First-Aid (empty)"},/obj/item/weapon/storage/firstaid/regular{empty = 1; name = "First-Aid (empty)"},/obj/item/device/healthanalyzer,/obj/item/device/healthanalyzer,/obj/item/device/healthanalyzer,/obj/item/stack/cable_coil,/obj/item/stack/cable_coil,/obj/structure/table,/turf/open/floor/plasteel,/area/assembly/robotics) +"boS" = (/obj/item/weapon/retractor,/obj/item/weapon/hemostat,/obj/structure/window/reinforced{dir = 8; layer = 2.9},/obj/structure/table,/turf/open/floor/plasteel/warnwhite{dir = 8},/area/assembly/robotics) +"boT" = (/obj/structure/table/optable{name = "Robotics Operating Table"},/obj/machinery/camera{c_tag = "Robotics - Aft"; dir = 1; network = list("SS13","RD")},/turf/open/floor/plasteel/white,/area/assembly/robotics) +"boU" = (/obj/machinery/computer/operating{name = "Robotics Operating Computer"},/turf/open/floor/plasteel/white,/area/assembly/robotics) +"boV" = (/obj/item/device/mmi,/obj/item/device/mmi,/obj/item/device/mmi,/obj/structure/table,/turf/open/floor/plasteel/white,/area/assembly/robotics) +"boW" = (/obj/structure/rack,/obj/item/weapon/crowbar,/obj/item/weapon/wrench,/turf/open/floor/plasteel,/area/toxins/explab) +"boX" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/toxins/explab) +"boY" = (/obj/structure/closet/emcloset,/obj/machinery/light,/turf/open/floor/plasteel,/area/toxins/explab) +"boZ" = (/obj/structure/closet/radiation,/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -28},/turf/open/floor/plasteel,/area/toxins/explab) +"bpa" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel,/area/toxins/explab) +"bpb" = (/obj/structure/reagent_dispensers/watertank,/obj/machinery/camera{c_tag = "Experimentation Lab"; dir = 1; network = list("SS13","RD"); pixel_y = 0},/obj/machinery/airalarm{dir = 1; pixel_y = -22},/turf/open/floor/plasteel,/area/toxins/explab) +"bpc" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical,/obj/item/clothing/ears/earmuffs,/turf/open/floor/plasteel,/area/toxins/explab) +"bpd" = (/obj/structure/table,/obj/item/device/electropack,/obj/item/device/healthanalyzer,/obj/item/device/assembly/signaler,/obj/machinery/light,/obj/item/device/assembly/voice,/turf/open/floor/plasteel,/area/toxins/explab) +"bpe" = (/obj/structure/table,/obj/machinery/cell_charger{pixel_y = 5},/obj/item/stack/cable_coil,/obj/item/device/multitool,/obj/item/weapon/screwdriver,/turf/open/floor/plasteel,/area/toxins/explab) +"bpf" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/obj/item/clothing/glasses/science,/obj/item/clothing/glasses/science,/turf/open/floor/plasteel,/area/toxins/explab) +"bpg" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/turf/open/floor/plasteel/whitepurple/side{dir = 8},/area/toxins/xenobiology) +"bph" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bpi" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bpj" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/whitepurple/corner{dir = 4},/area/toxins/xenobiology) +"bpk" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/whitegreen/side{dir = 1},/area/toxins/xenobiology) +"bpl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/whitegreen/side{dir = 1},/area/toxins/xenobiology) +"bpm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/whitegreen/side{dir = 1},/area/toxins/xenobiology) +"bpn" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/whitegreen/side{dir = 1},/area/toxins/xenobiology) +"bpo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/whitepurple/side{dir = 1},/area/toxins/xenobiology) +"bpp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/whitepurple/side{dir = 1},/area/toxins/xenobiology) +"bpq" = (/obj/machinery/camera{c_tag = "Xenobiology Starboard Fore"; dir = 2; network = list("SS13","RD")},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/whitepurple/side{dir = 1},/area/toxins/xenobiology) +"bpr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/whitepurple/side{dir = 1},/area/toxins/xenobiology) +"bps" = (/obj/structure/chair{dir = 4},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/obj/machinery/light/small{dir = 8},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/plasteel/floorgrime,/area/toxins/xenobiology) +"bpt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel/floorgrime,/area/toxins/xenobiology) +"bpu" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/sign/biohazard,/turf/open/floor/plating,/area/toxins/xenobiology) +"bpv" = (/turf/open/floor/plasteel/airless/circuit,/area/toxins/xenobiology) +"bpw" = (/obj/effect/decal/remains/xeno,/turf/open/floor/plasteel/airless/circuit,/area/toxins/xenobiology) +"bpx" = (/obj/structure/chair{dir = 4},/obj/item/weapon/reagent_containers/food/drinks/soda_cans/dr_gibb,/turf/open/floor/plating,/area/maintenance/apmaint) +"bpy" = (/obj/machinery/door/airlock/shuttle,/turf/open/floor/mineral/titanium/blue,/area/shuttle/transport) +"bpz" = (/obj/machinery/door/airlock/shuttle,/obj/docking_port/mobile{dir = 8; dwidth = 2; height = 12; id = "ferry"; name = "ferry shuttle"; port_angle = 0; preferred_direction = 4; roundstart_move = "ferry_away"; width = 5},/obj/docking_port/stationary{dir = 8; dwidth = 2; height = 12; id = "ferry_home"; name = "port bay 2"; turf_type = /turf/open/space; width = 5},/turf/open/floor/mineral/titanium/blue,/area/shuttle/transport) +"bpA" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 4; id_tag = null; name = "Port Docking Bay 2"; req_access_txt = "0"},/turf/open/floor/plating,/area/hallway/secondary/entry) +"bpB" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 8; id_tag = null; name = "Port Docking Bay 2"; req_access_txt = "0"},/turf/open/floor/plating,/area/hallway/secondary/entry) +"bpC" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (NORTHEAST)"; icon_state = "intact"; dir = 5},/turf/open/floor/plasteel/neutral/corner,/area/hallway/secondary/entry) +"bpD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (WEST)"; icon_state = "intact"; dir = 8},/turf/open/floor/plating,/area/maintenance/aft) +"bpE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (WEST)"; icon_state = "intact"; dir = 8},/turf/open/floor/plating,/area/maintenance/aft) +"bpF" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (WEST)"; icon_state = "intact"; dir = 8},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft) +"bpG" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (SOUTHWEST)"; icon_state = "intact"; dir = 10},/turf/open/floor/plating,/area/maintenance/aft) +"bpH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/aft) +"bpI" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating,/area/maintenance/aft) +"bpJ" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-21"},/turf/open/floor/plasteel/whiteblue/side,/area/medical/genetics) +"bpK" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/whiteblue/side,/area/medical/genetics) +"bpL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/whiteblue/side,/area/medical/genetics) +"bpM" = (/obj/structure/table,/obj/item/weapon/book/manual/medical_cloning{pixel_y = 6},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/whiteblue/side,/area/medical/genetics) +"bpN" = (/obj/structure/table,/obj/item/weapon/storage/box/rxglasses{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/bodybags,/obj/item/weapon/pen,/obj/machinery/button/door{desc = "A remote control switch for the genetics doors."; id = "GeneticsDoor"; name = "Genetics Exit Button"; normaldoorcontrol = 1; pixel_x = 24; pixel_y = 8},/turf/open/floor/plasteel/whiteblue/side,/area/medical/genetics) +"bpO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay3) +"bpP" = (/turf/open/floor/plasteel/white,/area/medical/medbay3) +"bpQ" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bpR" = (/obj/machinery/atmospherics/pipe/simple/general/visible{icon_state = "intact"; dir = 5},/turf/open/floor/plasteel/warnwhite/corner{dir = 8},/area/medical/sleeper) +"bpS" = (/obj/machinery/atmospherics/pipe/manifold/general/visible,/turf/open/floor/plasteel/warnwhite{dir = 1},/area/medical/sleeper) +"bpT" = (/obj/item/weapon/wrench/medical,/obj/machinery/atmospherics/pipe/manifold/general/visible,/turf/open/floor/plasteel/warnwhite{dir = 1},/area/medical/sleeper) +"bpU" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 9},/turf/open/floor/plasteel/warnwhite/corner{dir = 4; heat_capacity = 1e+006},/area/medical/sleeper) +"bpV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bpW" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bpX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bpY" = (/obj/machinery/light{dir = 4},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/whiteblue/corner,/area/medical/medbay) +"bpZ" = (/obj/machinery/chem_heater,/obj/machinery/light{dir = 8},/obj/structure/extinguisher_cabinet{pixel_x = -28},/obj/machinery/camera{c_tag = "Chemistry"; dir = 4; network = list("SS13")},/turf/open/floor/plasteel/whiteyellow/side{dir = 8},/area/medical/chemistry) +"bqa" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plasteel/white,/area/medical/chemistry) +"bqb" = (/obj/machinery/disposal/bin{pixel_x = 0},/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/plasteel/white,/area/medical/chemistry) +"bqc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/chemistry) +"bqd" = (/obj/machinery/chem_heater,/obj/machinery/firealarm{dir = 4; pixel_x = 28},/turf/open/floor/plasteel/whiteyellow/side{dir = 6},/area/medical/chemistry) +"bqe" = (/obj/structure/rack,/obj/effect/decal/cleanable/oil{icon_state = "floor6"},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/glass{amount = 50; pixel_x = 3; pixel_y = 3},/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/item/weapon/storage/box/beakers,/obj/item/clothing/glasses/welding,/turf/open/floor/plasteel,/area/toxins/explab) +"bqf" = (/obj/machinery/r_n_d/destructive_analyzer,/turf/open/floor/plasteel/delivery,/area/toxins/explab) +"bqg" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/bot,/area/toxins/explab) +"bqh" = (/obj/machinery/r_n_d/protolathe,/turf/open/floor/plasteel/delivery,/area/toxins/explab) +"bqi" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/camera{c_tag = "Research and Development Lab"; dir = 8; network = list("SS13","RD")},/obj/machinery/firealarm{dir = 4; pixel_x = 28},/turf/open/floor/plasteel,/area/toxins/explab) +"bqj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/medical/research{name = "Research Division"}) +"bqk" = (/obj/machinery/door/airlock/research{cyclelinkeddir = 1; name = "Research Division Access"; req_access_txt = "47"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/warnwhite{dir = 1},/area/medical/research{name = "Research Division"}) +"bql" = (/turf/closed/wall/r_wall,/area/medical/research{name = "Research Division"}) +"bqm" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/assembly/robotics) +"bqn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_research{name = "Robotics Lab"; req_access_txt = "29"},/turf/open/floor/plasteel,/area/assembly/robotics) +"bqo" = (/turf/closed/wall,/area/assembly/robotics) +"bqp" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/toxins/explab) +"bqq" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_research{name = "Experimentation Lab"; req_access_txt = "47"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/toxins/explab) +"bqr" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/toxins/explab) +"bqs" = (/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -28},/turf/closed/wall,/area/toxins/explab) +"bqt" = (/obj/machinery/light{dir = 8},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plasteel/whitepurple/side{dir = 8},/area/toxins/xenobiology) +"bqu" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bqv" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bqw" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bqx" = (/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bqy" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/holopad,/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bqz" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bqA" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bqB" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bqC" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bqD" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bqE" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bqF" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bqG" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bqH" = (/obj/machinery/door/airlock/research{name = "Kill Room Access"; req_access_txt = "55"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/toxins/xenobiology) +"bqI" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/floorgrime,/area/toxins/xenobiology) +"bqJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4; initialize_directions = 11},/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plasteel/floorgrime,/area/toxins/xenobiology) +"bqK" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_research{name = "Kill Room"; req_access_txt = "55"},/turf/open/floor/plating,/area/toxins/xenobiology) +"bqL" = (/obj/machinery/light/small{dir = 4},/obj/machinery/camera{c_tag = "Xenobiology Kill Room"; dir = 8; network = list("SS13","RD")},/turf/open/floor/plasteel/airless/circuit,/area/toxins/xenobiology) +"bqM" = (/obj/structure/closet/crate,/turf/open/floor/mineral/titanium/blue,/area/shuttle/transport) +"bqN" = (/obj/structure/chair{dir = 1},/turf/open/floor/mineral/titanium/blue,/area/shuttle/transport) +"bqO" = (/turf/open/floor/plasteel/neutral/corner,/area/hallway/secondary/entry) +"bqP" = (/turf/closed/wall,/area/maintenance/aft) +"bqQ" = (/obj/effect/spawner/lootdrop/grille_or_trash,/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/aft) +"bqR" = (/turf/open/floor/plating,/area/maintenance/aft) +"bqS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/aft) +"bqT" = (/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plating,/area/maintenance/aft) +"bqU" = (/obj/structure/girder,/turf/open/floor/plating,/area/maintenance/aft) +"bqV" = (/turf/closed/wall/r_wall,/area/medical/genetics) +"bqW" = (/obj/machinery/door/airlock/glass_research{name = "Genetics"; req_access_txt = "9"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/whiteblue,/area/medical/genetics) +"bqX" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/medical/genetics) +"bqY" = (/obj/machinery/camera{c_tag = "Medbay Port Hallway"; dir = 4; network = list("SS13")},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay3) +"bqZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plasteel/white,/area/medical/medbay3) +"bra" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay3) +"brb" = (/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/white,/area/medical/sleeper) +"brc" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/white,/area/medical/sleeper) +"brd" = (/obj/machinery/holopad,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bre" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay) +"brf" = (/obj/structure/disposalpipe/junction{dir = 8; icon_state = "pipe-j2"},/turf/open/floor/plasteel/white,/area/medical/medbay) +"brg" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay) +"brh" = (/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bri" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel/whiteblue/corner,/area/medical/medbay) +"brj" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Chemistry Lab"; req_access_txt = "5; 33"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/chemistry) +"brk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/white,/area/medical/chemistry) +"brl" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/white,/area/medical/chemistry) +"brm" = (/obj/machinery/shower{dir = 8; name = "emergency shower"},/obj/machinery/requests_console{department = "Chemistry"; departmentType = 2; pixel_x = 32; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/chemistry) +"brn" = (/obj/machinery/camera{c_tag = "Aft Primary Hallway Chemistry"; dir = 4; network = list("SS13"); pixel_x = 0; pixel_y = 0; start_active = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/aft) +"bro" = (/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = -28; pixel_y = 3},/obj/machinery/button/door{dir = 2; id = "research_shutters_2"; name = "Shutters Control Button"; pixel_x = -28; pixel_y = -7; req_access_txt = "7; 29"},/turf/open/floor/plasteel,/area/toxins/explab) +"brp" = (/obj/machinery/computer/rdconsole/core,/turf/open/floor/plasteel/delivery,/area/toxins/explab) +"brq" = (/obj/structure/disposalpipe/segment,/obj/effect/landmark/start{name = "Scientist"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/bot,/area/toxins/explab) +"brr" = (/obj/machinery/r_n_d/circuit_imprinter{pixel_y = 4},/obj/item/weapon/reagent_containers/glass/beaker/sulphuric,/turf/open/floor/plasteel/delivery,/area/toxins/explab) +"brs" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/toxins/explab) +"brt" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white/side{dir = 4},/area/medical/research{name = "Research Division"}) +"bru" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"brv" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"brw" = (/obj/machinery/power/apc{cell_type = 10000; dir = 1; name = "Research Division APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"brx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white/side,/area/medical/research{name = "Research Division"}) +"bry" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/whitepurple/side{dir = 1},/area/medical/research{name = "Research Division"}) +"brz" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"brA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/airalarm{pixel_y = 22},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"brB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/sign/poster{pixel_y = 32},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"brC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/firealarm{dir = 1; pixel_y = 24},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"brD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"brE" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (NORTH)"; dir = 1},/turf/open/floor/plasteel/white/side,/area/medical/research{name = "Research Division"}) +"brF" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/whitepurple/side{dir = 1},/area/medical/research{name = "Research Division"}) +"brG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white/side,/area/medical/research{name = "Research Division"}) +"brH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"brI" = (/turf/open/floor/plasteel/white/side{dir = 8},/area/medical/research{name = "Research Division"}) +"brJ" = (/obj/structure/closet/firecloset,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/open/floor/plasteel/warnwhite{dir = 9},/area/toxins/xenobiology) +"brK" = (/obj/structure/closet/l3closet,/obj/machinery/camera{c_tag = "Xenobiology Access"; dir = 2; network = list("SS13")},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"brL" = (/obj/structure/closet/l3closet,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/warnwhite{dir = 5},/area/toxins/xenobiology) +"brM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/toxins/xenobiology) +"brN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/whitepurple/side{dir = 8},/area/toxins/xenobiology) +"brO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"brP" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"brQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/whitepurple/corner,/area/toxins/xenobiology) +"brR" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/whitepurple/side,/area/toxins/xenobiology) +"brS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/whitepurple/side,/area/toxins/xenobiology) +"brT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/whitepurple/side,/area/toxins/xenobiology) +"brU" = (/obj/machinery/light,/obj/machinery/camera{c_tag = "Xenobiology Central"; dir = 1; network = list("SS13","RD")},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/turf/open/floor/plasteel/whitepurple/side,/area/toxins/xenobiology) +"brV" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel/whitepurple/side,/area/toxins/xenobiology) +"brW" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/camera{c_tag = "Xenobiology Starboard Aft"; dir = 1; network = list("SS13","RD")},/turf/open/floor/plasteel/whitepurple/side,/area/toxins/xenobiology) +"brX" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/toxins/xenobiology) +"brY" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 8; name = "Xenobiology APC"; pixel_x = -25},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/light/small{brightness = 3; dir = 8},/turf/open/floor/plasteel/floorgrime,/area/toxins/xenobiology) +"brZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/toxins/xenobiology) +"bsa" = (/obj/effect/spawner/lootdrop/maintenance,/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/apmaint) +"bsb" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/closed/wall,/area/maintenance/apmaint) +"bsc" = (/obj/structure/disposaloutlet{dir = 4},/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/plating/airless,/area/space) +"bsd" = (/obj/structure/closet,/obj/item/stack/cable_coil/random,/obj/item/weapon/electronics/airalarm,/turf/open/floor/plating,/area/maintenance/aft) +"bse" = (/turf/open/floor/plating{broken = 1; icon_state = "platingdmg1"},/area/maintenance/aft) +"bsf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/open/floor/plating,/area/maintenance/aft) +"bsg" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/weapon/pen,/obj/machinery/airalarm{pixel_y = 22},/turf/open/floor/plasteel/whitepurple/side{dir = 9},/area/medical/genetics) +"bsh" = (/obj/machinery/computer/scan_consolenew,/turf/open/floor/plasteel/whitepurple/side{dir = 1},/area/medical/genetics) +"bsi" = (/obj/machinery/dna_scannernew,/turf/open/floor/plasteel/whitepurple/side{dir = 1},/area/medical/genetics) +"bsj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/whitepurple/side{dir = 1},/area/medical/genetics) +"bsk" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/whitepurple/side{dir = 1},/area/medical/genetics) +"bsl" = (/obj/structure/table,/obj/item/weapon/storage/box/rxglasses{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/box/bodybags,/turf/open/floor/plasteel/whitepurple/side{dir = 5},/area/medical/genetics) +"bsm" = (/obj/machinery/requests_console{announcementConsole = 0; department = "Medbay"; departmentType = 1; name = "Medbay RC"; pixel_x = -32; pixel_y = 0; pixel_z = 0},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel/white,/area/medical/medbay3) +"bsn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/white,/area/medical/medbay3) +"bso" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel/white,/area/medical/medbay3) +"bsp" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bsq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/open/floor/plasteel/warnwhite/corner,/area/medical/sleeper) +"bsr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/warnwhite,/area/medical/sleeper) +"bss" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/warnwhite/corner{dir = 1},/area/medical/sleeper) +"bst" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bsu" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bsv" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bsw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay) +"bsx" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bsy" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/bed/roller,/turf/open/floor/plasteel/white,/area/medical/medbay) +"bsz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/bed/roller,/obj/machinery/iv_drip{density = 0},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bsA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/whiteblue/corner,/area/medical/medbay) +"bsB" = (/obj/machinery/smartfridge/chemistry,/turf/closed/wall,/area/medical/chemistry) +"bsC" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel/white,/area/medical/chemistry) +"bsD" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/chemistry) +"bsE" = (/obj/machinery/holopad,/turf/open/floor/plasteel/white,/area/medical/chemistry) +"bsF" = (/obj/structure/rack,/obj/item/stack/packageWrap,/obj/item/weapon/hand_labeler,/obj/item/device/radio/headset/headset_med,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/chemistry) +"bsG" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 4},/turf/open/floor/plasteel/yellow/side{dir = 8},/area/hallway/primary/aft) +"bsH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"bsI" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/disposalpipe/junction{dir = 2; icon_state = "pipe-y"},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"bsJ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/primary/aft) +"bsK" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/purple/side{dir = 4},/area/hallway/primary/aft) +"bsL" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/shutters/preopen{id = "research_shutters_2"; name = "research shutters"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/toxins/explab) +"bsM" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/open/floor/plasteel,/area/toxins/explab) +"bsN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/warning{tag = "icon-warning (NORTH)"; dir = 1},/area/toxins/explab) +"bsO" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j1s"; sortType = 12},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/warning{tag = "icon-warning (NORTH)"; dir = 1},/area/toxins/explab) +"bsP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/warning{tag = "icon-warning (NORTH)"; dir = 1},/area/toxins/explab) +"bsQ" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/toxins/explab) +"bsR" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_research{name = "Research and Development Lab"; req_access_txt = "0"; req_one_access_txt = "7;29"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/toxins/explab) +"bsS" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/whitepurple/side{dir = 8},/area/medical/research{name = "Research Division"}) +"bsT" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j2s"; sortType = 13},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bsU" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/junction{dir = 8; icon_state = "pipe-j1"},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bsV" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bsW" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bsX" = (/obj/structure/cable{icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/obj/machinery/holopad,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bsY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bsZ" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bta" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"btb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"btc" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"btd" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bte" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/whitepurple/side{dir = 4},/area/medical/research{name = "Research Division"}) +"btf" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{autoclose = 0; frequency = 1449; icon_state = "door_locked"; id_tag = "xeno_airlock_exterior"; locked = 1; name = "Xenobiology Lab External Airlock"; req_access_txt = "55"},/obj/machinery/doorButtons/access_button{idDoor = "xeno_airlock_exterior"; idSelf = "xeno_airlock_control"; name = "Access Button"; pixel_x = 0; pixel_y = -24; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/whitepurple{dir = 4},/area/toxins/xenobiology) +"btg" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/turf/open/floor/plasteel/warnwhite{dir = 8},/area/toxins/xenobiology) +"bth" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bti" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/warnwhite{dir = 4},/area/toxins/xenobiology) +"btj" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{autoclose = 0; frequency = 1449; icon_state = "door_locked"; id_tag = "xeno_airlock_interior"; locked = 1; name = "Xenobiology Lab Internal Airlock"; req_access_txt = "55"},/obj/machinery/doorButtons/access_button{idDoor = "xeno_airlock_interior"; idSelf = "xeno_airlock_control"; name = "Access Button"; pixel_x = 0; pixel_y = -24; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/whitepurple,/area/toxins/xenobiology) +"btk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/doorButtons/airlock_controller{idExterior = "xeno_airlock_exterior"; idInterior = "xeno_airlock_interior"; idSelf = "xeno_airlock_control"; name = "Access Console"; pixel_x = -25; pixel_y = 25},/turf/open/floor/plasteel/whitepurple/side{dir = 8},/area/toxins/xenobiology) +"btl" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"btm" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/open/floor/plasteel/whitepurple/side{dir = 4},/area/toxins/xenobiology) +"btn" = (/obj/machinery/disposal/bin,/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/disposalpipe/trunk,/turf/open/floor/plasteel/warning{tag = "icon-warning (NORTHEAST)"; dir = 5},/area/toxins/xenobiology) +"bto" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 1; icon_state = "right"; name = "Containment Pen #1"; req_access_txt = "55"},/turf/open/floor/plasteel/warning{tag = "icon-warning (NORTH)"; dir = 1},/area/toxins/xenobiology) +"btp" = (/obj/structure/table/reinforced,/obj/machinery/button/door{id = "xenobio1"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/obj/structure/window/reinforced{dir = 8; layer = 2.9},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/warning{dir = 9},/area/toxins/xenobiology) +"btq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/toxins/xenobiology) +"btr" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 1; icon_state = "right"; name = "Containment Pen #2"; req_access_txt = "55"},/turf/open/floor/plasteel/warning{tag = "icon-warning (NORTH)"; dir = 1},/area/toxins/xenobiology) +"bts" = (/obj/structure/table/reinforced,/obj/machinery/button/door{id = "xenobio2"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/obj/structure/window/reinforced{dir = 8; layer = 2.9},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/warning{dir = 9},/area/toxins/xenobiology) +"btt" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 1; icon_state = "right"; name = "Containment Pen #3"; req_access_txt = "55"},/turf/open/floor/plasteel/warning{tag = "icon-warning (NORTH)"; dir = 1},/area/toxins/xenobiology) +"btu" = (/obj/structure/table/reinforced,/obj/machinery/button/door{id = "xenobio3"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/obj/structure/window/reinforced{dir = 8; layer = 2.9},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/warning{dir = 9},/area/toxins/xenobiology) +"btv" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 1; icon_state = "right"; name = "Containment Pen #4"; req_access_txt = "55"},/turf/open/floor/plasteel/warning{tag = "icon-warning (NORTH)"; dir = 1},/area/toxins/xenobiology) +"btw" = (/obj/structure/table/reinforced,/obj/machinery/button/door{id = "xenobio4"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/obj/structure/window/reinforced{dir = 8; layer = 2.9},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/warning{dir = 9},/area/toxins/xenobiology) +"btx" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12; 55"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/toxins/xenobiology) +"bty" = (/obj/structure/girder,/turf/open/floor/plating/airless,/area/toxins/xenobiology) +"btz" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance,/obj/item/clothing/shoes/winterboots,/turf/open/floor/plating,/area/maintenance/aft) +"btA" = (/turf/open/floor/plating{burnt = 1; icon_state = "panelscorched"},/area/maintenance/aft) +"btB" = (/obj/structure/flora/ausbushes/palebush,/turf/open/floor/grass,/area/medical/genetics) +"btC" = (/obj/structure/window/reinforced{dir = 4; layer = 2.9},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/mob/living/carbon/monkey,/turf/open/floor/grass,/area/medical/genetics) +"btD" = (/obj/structure/table,/obj/item/weapon/storage/box/disks,/obj/item/device/flashlight/pen,/obj/item/device/flashlight/pen,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/whitepurple/side{dir = 8},/area/medical/genetics) +"btE" = (/obj/structure/chair/stool,/obj/effect/landmark/start{name = "Geneticist"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/genetics) +"btF" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/white,/area/medical/genetics) +"btG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/plasteel/white,/area/medical/genetics) +"btH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/genetics) +"btI" = (/obj/structure/table,/obj/item/clothing/gloves/color/latex,/obj/item/clothing/gloves/color/latex,/obj/item/weapon/storage/box/monkeycubes,/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/whitepurple/side{dir = 4},/area/medical/genetics) +"btJ" = (/obj/structure/extinguisher_cabinet{pixel_x = -24},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/whiteblue/corner{dir = 8},/area/medical/medbay3) +"btK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/medbay3) +"btL" = (/obj/machinery/shower{dir = 8},/turf/open/floor/plasteel/whiteblue/corner,/area/medical/medbay3) +"btM" = (/obj/structure/table/glass,/obj/item/stack/medical/gauze,/obj/machinery/power/apc{dir = 8; name = "Treatment Center APC"; pixel_x = -24; pixel_y = 0},/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone,/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone,/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone,/obj/structure/cable,/turf/open/floor/plasteel/blue,/area/medical/sleeper) +"btN" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 1},/turf/open/floor/plasteel/blue,/area/medical/sleeper) +"btO" = (/obj/machinery/camera{c_tag = "Medbay Sleepers"; dir = 1; network = list("SS13")},/obj/machinery/light,/turf/open/floor/plasteel/blue,/area/medical/sleeper) +"btP" = (/obj/structure/table/glass,/obj/item/clothing/neck/stethoscope,/obj/item/device/healthanalyzer,/turf/open/floor/plasteel/blue,/area/medical/sleeper) +"btQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/whiteblue/corner{dir = 8},/area/medical/medbay) +"btR" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/white,/area/medical/medbay) +"btS" = (/obj/machinery/light{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/whiteblue/corner,/area/medical/medbay) +"btT" = (/turf/closed/wall,/area/medical/cmo{name = "Chief Medical Office"}) +"btU" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/medical/cmo{name = "Chief Medical Office"}) +"btV" = (/obj/structure/closet/secure_closet/chemical,/obj/machinery/power/apc{dir = 8; name = "Chemistry APC"; pixel_x = -24; pixel_y = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/whiteyellow/side{dir = 8},/area/medical/chemistry) +"btW" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/white,/area/medical/chemistry) +"btX" = (/obj/structure/chair/office/light{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/whiteyellow/side{dir = 4},/area/medical/chemistry) +"btY" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor,/obj/machinery/door/window/eastright{dir = 8; name = "Chemistry Desk"; req_access_txt = "5; 33"},/obj/item/weapon/pen,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/item/weapon/paper_bin{layer = 2.9; pixel_x = -2; pixel_y = 0; tag = "every single paper bin is edited to this"},/obj/machinery/door/poddoor/shutters/preopen{id = "chemistry_shutters"; name = "chemistry shutters"},/turf/open/floor/plasteel/whiteyellow{dir = 4},/area/medical/chemistry) +"btZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/yellow/side{dir = 8},/area/hallway/primary/aft) +"bua" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"bub" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"buc" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/purple/side{dir = 4},/area/hallway/primary/aft) +"bud" = (/obj/structure/table/reinforced,/obj/machinery/door/window/eastright{dir = 4; name = "Research and Development Desk"; req_access_txt = "7"},/obj/item/weapon/folder/white,/obj/machinery/door/firedoor,/obj/item/weapon/pen,/obj/machinery/door/poddoor/shutters/preopen{id = "research_shutters_2"; name = "research shutters"},/turf/open/floor/plating,/area/toxins/explab) +"bue" = (/obj/structure/chair/office/light{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/toxins/explab) +"buf" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/turf/open/floor/plasteel,/area/toxins/explab) +"bug" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/white/side{dir = 4},/area/medical/research{name = "Research Division"}) +"buh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bui" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white/side{tag = "icon-whitehall (NORTH)"; icon_state = "whitehall"; dir = 1},/area/medical/research{name = "Research Division"}) +"buj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel/whitered/side,/area/medical/research{name = "Research Division"}) +"buk" = (/obj/machinery/camera{c_tag = "Research Division Port"; dir = 1},/turf/open/floor/plasteel/white/side{tag = "icon-whitehall (NORTH)"; icon_state = "whitehall"; dir = 1},/area/medical/research{name = "Research Division"}) +"bul" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-20"; layer = 4.1; pixel_y = 3},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bum" = (/obj/item/clothing/gloves/color/latex,/obj/item/clothing/glasses/science,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/obj/structure/table,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bun" = (/obj/item/device/analyzer,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/obj/structure/table,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"buo" = (/obj/machinery/vending/assist,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bup" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"buq" = (/obj/machinery/camera{c_tag = "Research Division Starboard"; dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bur" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-18"; layer = 4.1; pixel_y = 0},/turf/open/floor/plasteel/white/side{dir = 8},/area/medical/research{name = "Research Division"}) +"bus" = (/obj/structure/sink{dir = 8; icon_state = "sink"; pixel_x = -12},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/warnwhite{dir = 10; heat_capacity = 1e+006},/area/toxins/xenobiology) +"but" = (/obj/machinery/light,/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"buu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/shower{dir = 8; name = "emergency shower"; pixel_y = -4},/turf/open/floor/plasteel/warnwhite{dir = 6},/area/toxins/xenobiology) +"buv" = (/turf/open/floor/plasteel/whitepurple/side{dir = 10},/area/toxins/xenobiology) +"buw" = (/obj/structure/table,/obj/item/weapon/storage/box/monkeycubes,/obj/item/weapon/storage/box/monkeycubes,/turf/open/floor/plasteel/whitepurple/side,/area/toxins/xenobiology) +"bux" = (/obj/structure/table,/obj/item/weapon/extinguisher{pixel_x = 4; pixel_y = 3},/obj/item/weapon/extinguisher,/turf/open/floor/plasteel/whitepurple/side,/area/toxins/xenobiology) +"buy" = (/obj/structure/reagent_dispensers/watertank,/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_x = 32; pixel_y = 0},/turf/open/floor/plasteel/whitepurple/side{dir = 6},/area/toxins/xenobiology) +"buz" = (/obj/machinery/door/poddoor/preopen{id = "xenobio1"; name = "containment blast door"},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/disposalpipe/segment,/turf/open/floor/engine,/area/toxins/xenobiology) +"buA" = (/obj/machinery/door/poddoor/preopen{id = "xenobio1"; name = "containment blast door"},/obj/machinery/door/window/northleft{base_state = "right"; dir = 2; icon_state = "right"; name = "Containment Pen #1"; req_access_txt = "55"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/engine,/area/toxins/xenobiology) +"buB" = (/obj/machinery/door/poddoor/preopen{id = "xenobio1"; name = "containment blast door"},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable,/turf/open/floor/engine,/area/toxins/xenobiology) +"buC" = (/obj/machinery/door/poddoor/preopen{id = "xenobio2"; name = "containment blast door"},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/disposalpipe/segment,/turf/open/floor/engine,/area/toxins/xenobiology) +"buD" = (/obj/machinery/door/poddoor/preopen{id = "xenobio3"; name = "containment blast door"},/obj/machinery/door/window/northleft{base_state = "right"; dir = 2; icon_state = "right"; name = "Containment Pen #2"; req_access_txt = "55"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/engine,/area/toxins/xenobiology) +"buE" = (/obj/machinery/door/poddoor/preopen{id = "xenobio2"; name = "containment blast door"},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/engine,/area/toxins/xenobiology) +"buF" = (/obj/machinery/door/poddoor/preopen{id = "xenobio3"; name = "containment blast door"},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/disposalpipe/segment,/turf/open/floor/engine,/area/toxins/xenobiology) +"buG" = (/obj/machinery/door/poddoor/preopen{id = "xenobio3"; name = "containment blast door"},/obj/machinery/door/window/northleft{base_state = "right"; dir = 2; icon_state = "right"; name = "Containment Pen #3"; req_access_txt = "55"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/engine,/area/toxins/xenobiology) +"buH" = (/obj/machinery/door/poddoor/preopen{id = "xenobio3"; name = "containment blast door"},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable,/turf/open/floor/engine,/area/toxins/xenobiology) +"buI" = (/obj/machinery/door/poddoor/preopen{id = "xenobio4"; name = "containment blast door"},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/disposalpipe/segment,/turf/open/floor/engine,/area/toxins/xenobiology) +"buJ" = (/obj/machinery/door/poddoor/preopen{id = "xenobio4"; name = "containment blast door"},/obj/machinery/door/window/northleft{base_state = "right"; dir = 2; icon_state = "right"; name = "Containment Pen #4"; req_access_txt = "55"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/engine,/area/toxins/xenobiology) +"buK" = (/obj/machinery/door/poddoor/preopen{id = "xenobio4"; name = "containment blast door"},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/engine,/area/toxins/xenobiology) +"buL" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/asmaint2) +"buM" = (/obj/structure/cable{icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/asmaint2) +"buN" = (/turf/closed/wall,/area/maintenance/asmaint2) +"buO" = (/obj/structure/grille,/turf/open/space,/area/space) +"buP" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/aft) +"buQ" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/aft) +"buR" = (/obj/structure/chair/stool,/turf/open/floor/plating{burnt = 1; icon_state = "panelscorched"},/area/maintenance/aft) +"buS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/aft) +"buT" = (/obj/machinery/light{dir = 8},/obj/machinery/camera{c_tag = "Genetics Monkey Pen"; dir = 4; network = list("SS13","RD"); pixel_x = 0; pixel_y = 0},/mob/living/carbon/monkey,/turf/open/floor/grass,/area/medical/genetics) +"buU" = (/obj/machinery/door/window/eastleft{name = "Monkey Pen"; req_one_access_txt = "9"},/obj/item/weapon/reagent_containers/food/snacks/grown/banana,/turf/open/floor/grass,/area/medical/genetics) +"buV" = (/turf/open/floor/plasteel/whitepurple/side{dir = 8},/area/medical/genetics) +"buW" = (/turf/open/floor/plasteel/white,/area/medical/genetics) +"buX" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel/white,/area/medical/genetics) +"buY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/white,/area/medical/genetics) +"buZ" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/genetics) +"bva" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/mirror{pixel_x = 28},/turf/open/floor/plasteel/whitepurple/side{dir = 4},/area/medical/genetics) +"bvb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-10"; layer = 4.1},/turf/open/floor/plasteel/whitegreen/side,/area/medical/medbay3) +"bvc" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/whitegreen/side,/area/medical/medbay3) +"bvd" = (/obj/machinery/shower{dir = 8},/turf/open/floor/plasteel/whitegreen/side,/area/medical/medbay3) +"bve" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/open/floor/plasteel/whiteblue/corner{dir = 8},/area/medical/medbay) +"bvf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/whiteblue/corner,/area/medical/medbay) +"bvg" = (/obj/structure/sign/bluecross_2,/turf/closed/wall,/area/medical/cmo{name = "Chief Medical Office"}) +"bvh" = (/obj/machinery/suit_storage_unit/cmo,/turf/open/floor/plasteel/barber,/area/medical/cmo{name = "Chief Medical Office"}) +"bvi" = (/obj/machinery/computer/crew,/obj/machinery/light{dir = 1},/obj/machinery/requests_console{announcementConsole = 1; department = "Chief Medical Officer's Desk"; departmentType = 5; name = "Chief Medical Officer RC"; pixel_x = 0; pixel_y = 30},/turf/open/floor/plasteel/barber,/area/medical/cmo{name = "Chief Medical Office"}) +"bvj" = (/obj/machinery/computer/med_data,/turf/open/floor/plasteel/barber,/area/medical/cmo{name = "Chief Medical Office"}) +"bvk" = (/obj/machinery/computer/card/minor/cmo,/obj/machinery/airalarm{pixel_y = 22},/turf/open/floor/plasteel/barber,/area/medical/cmo{name = "Chief Medical Office"}) +"bvl" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/obj/machinery/button/door{desc = "A remote control switch for the medbay foyer."; id = "MedbayFoyer"; name = "Medbay Door Control"; normaldoorcontrol = 1; pixel_x = 26; pixel_y = -6; req_access_txt = "5"},/obj/machinery/keycard_auth{pixel_x = 26; pixel_y = 6},/turf/open/floor/plasteel/barber,/area/medical/cmo{name = "Chief Medical Office"}) +"bvm" = (/obj/structure/closet/wardrobe/chemistry_white,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/whiteyellow/side{dir = 10},/area/medical/chemistry) +"bvn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/whiteyellow/side,/area/medical/chemistry) +"bvo" = (/obj/structure/table/glass,/obj/machinery/reagentgrinder,/obj/machinery/light,/obj/machinery/airalarm{dir = 1; pixel_y = -22},/turf/open/floor/plasteel/whiteyellow/side,/area/medical/chemistry) +"bvp" = (/obj/structure/table/glass,/obj/item/stack/sheet/mineral/plasma{layer = 2.9},/obj/item/weapon/grenade/chem_grenade,/obj/item/weapon/grenade/chem_grenade,/obj/item/weapon/grenade/chem_grenade,/obj/item/stack/cable_coil/random,/obj/item/weapon/screwdriver,/turf/open/floor/plasteel/whiteyellow/side{dir = 6},/area/medical/chemistry) +"bvq" = (/obj/item/weapon/folder/white,/obj/item/clothing/gloves/color/latex,/obj/structure/table/glass,/turf/open/floor/plasteel/yellow/side{dir = 8},/area/hallway/primary/aft) +"bvr" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"bvs" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"bvt" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"bvu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/table/glass,/obj/item/weapon/paper_bin{layer = 2.9; pixel_x = -2; pixel_y = 4},/turf/open/floor/plasteel/purple/side{dir = 4},/area/hallway/primary/aft) +"bvv" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/shutters/preopen{id = "research_shutters_2"; name = "research shutters"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/toxins/explab) +"bvw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/toxins/explab) +"bvx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/plasteel,/area/toxins/explab) +"bvy" = (/obj/structure/table,/obj/machinery/light,/obj/item/weapon/stock_parts/console_screen,/obj/item/weapon/stock_parts/console_screen,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/scanning_module,/obj/item/weapon/stock_parts/scanning_module,/obj/item/device/multitool,/turf/open/floor/plasteel,/area/toxins/explab) +"bvz" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high/plus,/obj/item/weapon/stock_parts/cell/high/plus,/turf/open/floor/plasteel,/area/toxins/explab) +"bvA" = (/obj/structure/table,/obj/item/weapon/stock_parts/matter_bin,/obj/item/weapon/stock_parts/matter_bin,/obj/item/weapon/stock_parts/micro_laser,/obj/item/weapon/stock_parts/micro_laser,/obj/item/stack/cable_coil,/obj/item/stack/cable_coil,/obj/machinery/light_switch{pixel_x = 25},/turf/open/floor/plasteel,/area/toxins/explab) +"bvB" = (/turf/open/floor/plasteel/white/side{tag = "icon-whitehall (NORTH)"; icon_state = "whitehall"; dir = 1},/area/medical/research{name = "Research Division"}) +"bvC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/whiteblue/side,/area/medical/research{name = "Research Division"}) +"bvD" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/checkpoint/science) +"bvE" = (/obj/machinery/door/airlock/glass_security{name = "Research Security Post"; req_access_txt = "63"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/whitered,/area/security/checkpoint/science) +"bvF" = (/turf/closed/wall/r_wall,/area/toxins/storage) +"bvG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall/r_wall,/area/toxins/storage) +"bvH" = (/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bvI" = (/turf/closed/wall,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bvJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bvK" = (/obj/structure/disposaloutlet,/obj/structure/disposalpipe/trunk{dir = 1},/turf/open/floor/engine,/area/toxins/xenobiology) +"bvL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/asmaint2) +"bvM" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/grass,/area/medical/genetics) +"bvN" = (/obj/structure/window/reinforced{dir = 4; layer = 2.9},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/mob/living/carbon/monkey,/turf/open/floor/grass,/area/medical/genetics) +"bvO" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/storage/pill_bottle/mutadone,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/whitepurple/side{dir = 8},/area/medical/genetics) +"bvP" = (/obj/structure/chair/stool,/obj/effect/landmark/start{name = "Geneticist"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/genetics) +"bvQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/genetics) +"bvR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/white,/area/medical/genetics) +"bvS" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/genetics) +"bvT" = (/obj/machinery/shower{dir = 8},/obj/machinery/requests_console{department = "Genetics"; departmentType = 0; name = "Genetics Requests Console"; pixel_x = 32; pixel_y = 0},/turf/open/floor/plasteel/whitepurple/side{dir = 4},/area/medical/genetics) +"bvU" = (/turf/closed/wall,/area/medical/virology) +"bvV" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/virology{autoclose = 0; frequency = 1449; icon_state = "door_locked"; id_tag = "virology_airlock_exterior"; locked = 1; name = "Virology Exterior Airlock"; req_access_txt = "39"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/doorButtons/access_button{idDoor = "virology_airlock_exterior"; idSelf = "virology_airlock_control"; name = "Virology Access Button"; pixel_x = -24; pixel_y = 0; req_access_txt = "39"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/virology) +"bvW" = (/obj/structure/sign/biohazard,/turf/closed/wall,/area/medical/virology) +"bvX" = (/obj/structure/table,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/syringes,/turf/open/floor/plasteel/whiteblue/side{dir = 1},/area/medical/medbay) +"bvY" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/brute{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/brute,/obj/item/weapon/storage/firstaid/regular{pixel_x = -3; pixel_y = -3},/turf/open/floor/plasteel/whiteblue/side{dir = 1},/area/medical/medbay) +"bvZ" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = -3; pixel_y = -3},/turf/open/floor/plasteel/whiteblue/side{dir = 1},/area/medical/medbay) +"bwa" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/toxin{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/toxin,/obj/item/weapon/storage/firstaid/regular{pixel_x = -3; pixel_y = -3},/turf/open/floor/plasteel/whiteblue/side{dir = 1},/area/medical/medbay) +"bwb" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/o2{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/o2,/obj/item/weapon/storage/firstaid/regular{pixel_x = -3; pixel_y = -3},/turf/open/floor/plasteel/whiteblue/side{dir = 1},/area/medical/medbay) +"bwc" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel/whiteblue/side{dir = 8},/area/medical/medbay) +"bwd" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bwe" = (/turf/open/floor/plasteel/cmo,/area/medical/cmo{name = "Chief Medical Office"}) +"bwf" = (/mob/living/simple_animal/pet/cat/Runtime,/turf/open/floor/plasteel/cmo,/area/medical/cmo{name = "Chief Medical Office"}) +"bwg" = (/obj/effect/landmark/start{name = "Chief Medical Officer"},/obj/structure/chair/office/light{dir = 1},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/cmo,/area/medical/cmo{name = "Chief Medical Office"}) +"bwh" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/cmo,/area/medical/cmo{name = "Chief Medical Office"}) +"bwi" = (/obj/structure/disposalpipe/segment,/obj/machinery/camera{c_tag = "Chief Medical Office"; dir = 8; network = list("SS13")},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/machinery/computer/security/telescreen{desc = "Used for watching surgery."; dir = 8; layer = 4; name = "Surgery Telescreen"; network = list("Surgery"); pixel_x = 30; pixel_y = 0},/turf/open/floor/plasteel/cmo,/area/medical/cmo{name = "Chief Medical Office"}) +"bwj" = (/obj/machinery/door/airlock/maintenance{name = "Chemistry Lab Maintenance"; req_access_txt = "5; 33"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/medical/chemistry) +"bwk" = (/turf/closed/wall/r_wall,/area/toxins/server) +"bwl" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{name = "Server Room"; req_access = null; req_access_txt = "30"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/toxins/server) +"bwm" = (/turf/closed/wall,/area/toxins/server) +"bwn" = (/turf/closed/wall,/area/crew_quarters/hor) +"bwo" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/hor) +"bwp" = (/obj/machinery/door/airlock/glass_command{name = "Research Director"; req_access_txt = "30"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/crew_quarters/hor) +"bwq" = (/obj/structure/filingcabinet,/turf/open/floor/plasteel/red/side{dir = 9},/area/security/checkpoint/science) +"bwr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/side{dir = 1},/area/security/checkpoint/science) +"bws" = (/obj/structure/closet/wardrobe/red,/obj/machinery/airalarm{dir = 8; pixel_x = 23; pixel_y = 0},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/checkpoint/science) +"bwt" = (/obj/machinery/portable_atmospherics/canister/toxins,/turf/open/floor/plasteel/delivery{name = "floor"},/area/toxins/storage) +"bwu" = (/obj/machinery/portable_atmospherics/canister/toxins,/obj/machinery/light{dir = 1},/obj/machinery/camera{c_tag = "Toxins Storage"; dir = 2; network = list("SS13","RD")},/turf/open/floor/plasteel/delivery{name = "floor"},/area/toxins/storage) +"bwv" = (/turf/open/floor/plasteel/warning{dir = 8},/area/toxins/storage) +"bww" = (/obj/machinery/portable_atmospherics/scrubber/huge,/obj/machinery/power/apc{cell_type = 5000; dir = 1; name = "Toxins Storage APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/toxins/storage) +"bwx" = (/obj/machinery/portable_atmospherics/scrubber/huge,/obj/machinery/airalarm{pixel_y = 22},/turf/open/floor/plasteel,/area/toxins/storage) +"bwy" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bwz" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bwA" = (/obj/structure/closet/bombcloset,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/plasteel/white,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bwB" = (/obj/structure/closet/bombcloset,/turf/open/floor/plasteel/white,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bwC" = (/obj/machinery/portable_atmospherics/scrubber,/obj/machinery/light{dir = 1},/obj/machinery/airalarm{pixel_y = 22},/turf/open/floor/plasteel/white,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bwD" = (/obj/machinery/portable_atmospherics/pump,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 26},/turf/open/floor/plasteel/white,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bwE" = (/obj/machinery/portable_atmospherics/canister,/turf/open/floor/plasteel/white,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bwF" = (/obj/machinery/portable_atmospherics/canister,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 1; name = "Toxins Lab APC"; pixel_y = 25},/turf/open/floor/plasteel/warnwhite{dir = 4},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bwG" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible,/obj/machinery/camera{c_tag = "Toxins Lab"; dir = 2; network = list("SS13","RD"); pixel_y = 0},/obj/structure/sign/poster{pixel_y = 32},/turf/open/floor/plasteel/warning{dir = 8},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bwH" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible,/turf/open/floor/plasteel,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bwI" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible,/obj/structure/sign/poster{pixel_y = 32},/turf/open/floor/plasteel/warning{dir = 4},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bwJ" = (/obj/effect/landmark{name = "revenantspawn"},/mob/living/simple_animal/slime,/turf/open/floor/engine,/area/toxins/xenobiology) +"bwK" = (/turf/closed/wall/r_wall,/area/maintenance/aft) +"bwL" = (/obj/structure/closet/crate/medical,/obj/item/stack/medical/ointment,/obj/item/stack/medical/bruise_pack,/turf/open/floor/plating,/area/maintenance/aft) +"bwM" = (/obj/structure/table,/obj/item/weapon/pen,/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = -27},/obj/item/weapon/paper_bin{layer = 2.9; pixel_x = 0; pixel_y = 0; tag = "every single paper bin is edited to this"},/turf/open/floor/plasteel/whitepurple/side{dir = 10},/area/medical/genetics) +"bwN" = (/obj/machinery/computer/scan_consolenew,/turf/open/floor/plasteel/whitepurple/side,/area/medical/genetics) +"bwO" = (/obj/machinery/dna_scannernew,/obj/machinery/camera{c_tag = "Genetics"; dir = 1; network = list("SS13","RD"); pixel_x = 0; pixel_y = 0},/turf/open/floor/plasteel/whitepurple/side,/area/medical/genetics) +"bwP" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/whitepurple/corner{tag = "icon-whitepurplecorner (WEST)"; dir = 8},/area/medical/genetics) +"bwQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/white,/area/medical/genetics) +"bwR" = (/obj/machinery/power/apc{dir = 4; name = "Genetics APC"; pixel_x = 27},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel/whitepurple/side{dir = 4},/area/medical/genetics) +"bwS" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/warnwhite{dir = 9},/area/medical/virology) +"bwT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/virology) +"bwU" = (/obj/structure/closet/emcloset,/obj/machinery/camera{c_tag = "Virology Airlock"; dir = 2; network = list("SS13")},/turf/open/floor/plasteel/warnwhite{dir = 5},/area/medical/virology) +"bwV" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/requests_console{announcementConsole = 0; department = "Medbay"; departmentType = 1; name = "Medbay RC"; pixel_x = -32; pixel_y = 0; pixel_z = 0},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bwW" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bwX" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Medbay Storage"; req_access_txt = "45"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bwY" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/whiteblue/side{dir = 8},/area/medical/medbay) +"bwZ" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bxa" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/whiteblue/side{tag = "icon-whiteblue (EAST)"; dir = 4},/area/medical/medbay) +"bxb" = (/obj/machinery/door/airlock/glass_command{name = "Chief Medical Office"; req_access_txt = "40"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/barber,/area/medical/cmo{name = "Chief Medical Office"}) +"bxc" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/cmo,/area/medical/cmo{name = "Chief Medical Office"}) +"bxd" = (/obj/structure/table/glass,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/obj/item/weapon/pen{layer = 3.1},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/barber,/area/medical/cmo{name = "Chief Medical Office"}) +"bxe" = (/obj/structure/table/glass,/obj/item/weapon/folder/white,/obj/item/clothing/glasses/hud/health,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/barber,/area/medical/cmo{name = "Chief Medical Office"}) +"bxf" = (/obj/structure/table/glass,/obj/structure/disposalpipe/segment{dir = 4},/obj/item/stack/medical/gauze,/obj/item/clothing/neck/stethoscope,/turf/open/floor/plasteel/barber,/area/medical/cmo{name = "Chief Medical Office"}) +"bxg" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j1s"; sortType = 10},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/cmo,/area/medical/cmo{name = "Chief Medical Office"}) +"bxh" = (/obj/machinery/door/airlock/maintenance{name = "CMO Maintenance"; req_access_txt = "40"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) +"bxi" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) +"bxj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j1s"; sortType = 11},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/aft) +"bxk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light/small{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) +"bxl" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/aft) +"bxm" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/primary/aft) +"bxn" = (/obj/machinery/atmospherics/components/unary/thermomachine/freezer{target_temperature = 80; dir = 2; on = 1},/turf/open/floor/plasteel/black,/area/toxins/server) +"bxo" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/toxins/server) +"bxp" = (/obj/machinery/r_n_d/server/core,/turf/open/floor/bluegrid{name = "Server Base"; initial_gas_mix = "n2=500;TEMP=80"},/area/toxins/server) +"bxq" = (/obj/structure/closet/secure_closet/RD,/obj/machinery/airalarm{pixel_y = 22},/turf/open/floor/plasteel/whitepurple/side{dir = 9},/area/crew_quarters/hor) +"bxr" = (/obj/machinery/power/apc{dir = 1; name = "RD Office APC"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel/whitepurple/side{dir = 1},/area/crew_quarters/hor) +"bxs" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/whitepurple/side{dir = 1},/area/crew_quarters/hor) +"bxt" = (/obj/structure/cable{icon_state = "1-8"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/whitepurple/side{dir = 1},/area/crew_quarters/hor) +"bxu" = (/obj/item/weapon/twohanded/required/kirbyplants/dead,/obj/machinery/button/door{id = "rndshutters"; name = "Research Lockdown"; pixel_x = 28; pixel_y = 0; req_access_txt = "47"},/turf/open/floor/plasteel/whitepurple/side{dir = 5},/area/crew_quarters/hor) +"bxv" = (/obj/machinery/light{dir = 8},/obj/machinery/camera{c_tag = "Science Security Post"; dir = 4; network = list("SS13","RD")},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/checkpoint/science) +"bxw" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel,/area/security/checkpoint/science) +"bxx" = (/obj/machinery/power/apc{dir = 4; name = "Science Security APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/checkpoint/science) +"bxy" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/turf/open/floor/plasteel/bot,/area/toxins/storage) +"bxz" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/warning{dir = 8},/area/toxins/storage) +"bxA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/plasteel,/area/toxins/storage) +"bxB" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/toxins/storage) +"bxC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/toxins/storage) +"bxD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white/side{dir = 4},/area/medical/research{name = "Research Division"}) +"bxE" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bxF" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel/white/side{dir = 8},/area/medical/research{name = "Research Division"}) +"bxG" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bxH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 1},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bxI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/warning{dir = 1},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bxJ" = (/turf/open/floor/plasteel/warning{dir = 1},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bxK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/warning{dir = 1},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bxL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/open/floor/plasteel/warning{dir = 5},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bxM" = (/obj/machinery/atmospherics/components/trinary/mixer/flipped{dir = 1},/turf/open/floor/plasteel/warning{dir = 8},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bxN" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 9},/turf/open/floor/plasteel,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bxO" = (/obj/machinery/atmospherics/pipe/simple/general/visible,/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_x = 32; pixel_y = 0},/turf/open/floor/plasteel/warning{dir = 4},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bxP" = (/obj/machinery/light,/turf/open/floor/engine,/area/toxins/xenobiology) +"bxQ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/asmaint2) +"bxR" = (/obj/machinery/atmospherics/components/unary/tank/air{dir = 2},/turf/open/floor/plating,/area/maintenance/aft) +"bxS" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/plating,/area/maintenance/aft) +"bxT" = (/obj/item/trash/candy,/obj/effect/decal/cleanable/deadcockroach,/turf/open/floor/plating,/area/maintenance/aft) +"bxU" = (/obj/item/weapon/extinguisher,/turf/open/floor/plating,/area/maintenance/aft) +"bxV" = (/obj/item/chair,/obj/item/weapon/cigbutt/roach,/turf/open/floor/plating,/area/maintenance/aft) +"bxW" = (/obj/structure/closet/secure_closet/medical1,/turf/open/floor/plasteel/whitepurple/side{dir = 10},/area/medical/genetics) +"bxX" = (/obj/structure/closet/secure_closet/personal/patient,/obj/machinery/light,/obj/machinery/airalarm{dir = 1; pixel_y = -22},/turf/open/floor/plasteel/whitepurple/side,/area/medical/genetics) +"bxY" = (/obj/structure/closet/wardrobe/genetics_white,/turf/open/floor/plasteel/whitepurple/side{dir = 6},/area/medical/genetics) +"bxZ" = (/obj/machinery/shower{dir = 4},/turf/open/floor/plasteel/warnwhite{dir = 8},/area/medical/virology) +"bya" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/virology) +"byb" = (/obj/structure/closet/l3closet,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/warnwhite{dir = 4},/area/medical/virology) +"byc" = (/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = -28; pixel_y = 0},/turf/open/floor/plasteel/white,/area/medical/medbay) +"byd" = (/obj/effect/landmark/start{name = "Medical Doctor"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bye" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Medbay Storage"; req_access_txt = "45"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay) +"byf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/whiteblue/side{dir = 8},/area/medical/medbay) +"byg" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel/whiteblue/side{tag = "icon-whiteblue (EAST)"; dir = 4},/area/medical/medbay) +"byh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/cmo,/area/medical/cmo{name = "Chief Medical Office"}) +"byi" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/cmo,/area/medical/cmo{name = "Chief Medical Office"}) +"byj" = (/obj/structure/chair/office/light{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/cmo,/area/medical/cmo{name = "Chief Medical Office"}) +"byk" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; layer = 2.4; on = 1},/turf/open/floor/plasteel/cmo,/area/medical/cmo{name = "Chief Medical Office"}) +"byl" = (/obj/machinery/power/apc{dir = 4; name = "CMO's Office APC"; pixel_x = 26; pixel_y = 0},/obj/structure/cable,/turf/open/floor/plasteel/cmo,/area/medical/cmo{name = "Chief Medical Office"}) +"bym" = (/turf/closed/wall,/area/medical/exam_room) +"byn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/aft) +"byo" = (/obj/machinery/power/apc{dir = 8; name = "Server Room APC"; pixel_x = -24; pixel_y = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 8},/turf/open/floor/plasteel/black,/area/toxins/server) +"byp" = (/obj/structure/cable{icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/open/floor/plasteel/black,/area/toxins/server) +"byq" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/open/floor/plating,/area/toxins/server) +"byr" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; external_pressure_bound = 140; on = 1; pressure_checks = 0},/turf/open/floor/bluegrid{name = "Server Base"; initial_gas_mix = "n2=500;TEMP=80"},/area/toxins/server) +"bys" = (/obj/machinery/computer/robotics,/turf/open/floor/plasteel/whitepurple/side{dir = 8},/area/crew_quarters/hor) +"byt" = (/turf/open/floor/plasteel/white,/area/crew_quarters/hor) +"byu" = (/obj/structure/displaycase/labcage,/turf/open/floor/plasteel/white,/area/crew_quarters/hor) +"byv" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/crew_quarters/hor) +"byw" = (/obj/machinery/disposal/bin,/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/plasteel/whitepurple/side{dir = 4},/area/crew_quarters/hor) +"byx" = (/obj/item/weapon/pen,/obj/structure/table,/obj/structure/reagent_dispensers/peppertank{pixel_x = -32; pixel_y = 0},/obj/item/weapon/paper_bin{layer = 2.9; pixel_x = 0; pixel_y = 0; tag = "every single paper bin is edited to this"},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/checkpoint/science) +"byy" = (/obj/structure/chair/office/dark,/obj/effect/landmark/start/depsec/science,/turf/open/floor/plasteel,/area/security/checkpoint/science) +"byz" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/checkpoint/science) +"byA" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/plasteel/bot,/area/toxins/storage) +"byB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/open/floor/plasteel,/area/toxins/storage) +"byC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/toxins/storage) +"byD" = (/obj/machinery/door/firedoor/heavy,/obj/machinery/door/airlock/research{name = "Toxins Storage"; req_access_txt = "8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/toxins/storage) +"byE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/whitepurple/side{dir = 8},/area/medical/research{name = "Research Division"}) +"byF" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"byG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/whitepurple/side{dir = 4},/area/medical/research{name = "Research Division"}) +"byH" = (/obj/machinery/door/firedoor/heavy,/obj/machinery/door/airlock/glass_research{name = "Toxins Lab"; req_access_txt = "8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"byI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"byJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"byK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"byL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/warning{dir = 4},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"byM" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 8},/turf/open/floor/plasteel/warning{dir = 8},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"byN" = (/obj/machinery/atmospherics/components/binary/valve{dir = 4},/turf/open/floor/plasteel,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"byO" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 4},/obj/machinery/firealarm{dir = 4; pixel_x = 28},/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/warning{dir = 4},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"byP" = (/turf/closed/wall,/area/toxins/mineral_storeroom) +"byQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/toxins/mineral_storeroom) +"byR" = (/turf/closed/wall/r_wall,/area/toxins/mineral_storeroom) +"byS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/trash/sosjerky,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/asmaint2) +"byT" = (/obj/structure/grille/broken,/obj/structure/lattice,/turf/open/space,/area/space) +"byU" = (/obj/machinery/atmospherics/pipe/manifold/general/hidden{tag = "icon-manifold (WEST)"; icon_state = "manifold"; dir = 8},/turf/open/floor/plating,/area/maintenance/aft) +"byV" = (/obj/machinery/atmospherics/pipe/manifold/general/hidden,/obj/machinery/meter,/obj/machinery/light/small,/turf/open/floor/plating,/area/maintenance/aft) +"byW" = (/obj/machinery/atmospherics/components/binary/pump{dir = 4; name = "Air Out"; on = 1},/turf/open/floor/plating,/area/maintenance/aft) +"byX" = (/obj/machinery/door/airlock/atmos{name = "Atmospherics Maintenance"; req_access_txt = "12;24"},/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (WEST)"; icon_state = "intact"; dir = 8},/turf/open/floor/plating,/area/maintenance/aft) +"byY" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (WEST)"; icon_state = "intact"; dir = 8},/turf/open/floor/plating,/area/maintenance/aft) +"byZ" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/cyan/hidden{icon_state = "intact"; dir = 9},/turf/open/floor/plating,/area/maintenance/aft) +"bza" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating,/area/maintenance/aft) +"bzb" = (/turf/closed/wall/r_wall,/area/medical/virology) +"bzc" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/warnwhite{dir = 10},/area/medical/virology) +"bzd" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (WEST)"; icon_state = "intact"; dir = 8},/turf/open/floor/plasteel/white,/area/medical/virology) +"bze" = (/obj/structure/closet/l3closet,/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (SOUTHWEST)"; icon_state = "intact"; dir = 10},/turf/open/floor/plasteel/warnwhite{dir = 6},/area/medical/virology) +"bzf" = (/obj/machinery/vending/medical,/turf/open/floor/plasteel/whiteblue/side,/area/medical/medbay) +"bzg" = (/obj/structure/closet/secure_closet/medical3,/turf/open/floor/plasteel/whiteblue/side,/area/medical/medbay) +"bzh" = (/obj/structure/closet/secure_closet/medical3,/obj/machinery/light,/obj/machinery/camera{c_tag = "Medbay Equipment Room"; dir = 1; network = list("SS13")},/turf/open/floor/plasteel/whiteblue/side,/area/medical/medbay) +"bzi" = (/obj/structure/closet/wardrobe/white/medical,/turf/open/floor/plasteel/whiteblue/side,/area/medical/medbay) +"bzj" = (/obj/structure/table,/obj/item/weapon/storage/belt/medical{pixel_x = 0; pixel_y = 2},/obj/item/weapon/storage/belt/medical{pixel_x = 0; pixel_y = 2},/obj/item/weapon/storage/belt/medical{pixel_x = 0; pixel_y = 2},/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/weapon/reagent_containers/spray/cleaner,/turf/open/floor/plasteel/whiteblue/side,/area/medical/medbay) +"bzk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/whiteblue/corner{dir = 1},/area/medical/medbay) +"bzl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/whiteblue/corner{dir = 4},/area/medical/medbay) +"bzm" = (/obj/structure/closet/secure_closet/CMO,/obj/item/weapon/valentine,/turf/open/floor/plasteel/barber,/area/medical/cmo{name = "Chief Medical Office"}) +"bzn" = (/obj/machinery/modular_computer/console/preset/civilian,/turf/open/floor/plasteel/barber,/area/medical/cmo{name = "Chief Medical Office"}) +"bzo" = (/obj/item/weapon/cartridge/medical{pixel_x = -2; pixel_y = 6},/obj/item/weapon/cartridge/medical{pixel_x = 6; pixel_y = 3},/obj/item/weapon/cartridge/medical,/obj/item/weapon/cartridge/chemistry{pixel_y = 2},/obj/structure/table,/obj/machinery/light,/obj/item/weapon/wrench/medical,/turf/open/floor/plasteel/barber,/area/medical/cmo{name = "Chief Medical Office"}) +"bzp" = (/obj/item/weapon/folder/blue,/obj/item/weapon/stamp/cmo,/obj/structure/table,/turf/open/floor/plasteel/barber{dir = 8},/area/medical/cmo{name = "Chief Medical Office"}) +"bzq" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-16"; layer = 4.1},/turf/open/floor/plasteel/barber{dir = 8},/area/medical/cmo{name = "Chief Medical Office"}) +"bzr" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/closet,/obj/item/clothing/under/rank/nursesuit,/obj/item/clothing/head/nursehat,/obj/effect/decal/cleanable/cobweb,/obj/machinery/airalarm{pixel_y = 22},/turf/open/floor/plasteel/black,/area/medical/exam_room) +"bzs" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light/small{dir = 1},/obj/machinery/vending/wallmed{pixel_y = 28; products = list(/obj/item/weapon/reagent_containers/syringe = 3, /obj/item/weapon/reagent_containers/pill/patch/styptic = 1, /obj/item/weapon/reagent_containers/pill/patch/silver_sulf = 1, /obj/item/weapon/reagent_containers/spray/medical/sterilizer = 1)},/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/obj/effect/landmark{name = "blobstart"},/obj/item/weapon/melee/baton/cattleprod{bcell = new /obj/item/weapon/stock_parts/cell/high()},/turf/open/floor/plasteel/black,/area/medical/exam_room) +"bzt" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/button/door{id = "CMOCell"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = 26; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/plasteel/black,/area/medical/exam_room) +"bzu" = (/obj/machinery/door/airlock/command{id_tag = "CMOCell"; name = "Personal Examination Room"; req_access_txt = "40"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/medical/exam_room) +"bzv" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) +"bzw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/sign/poster{pixel_x = -32},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"bzx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"bzy" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"bzz" = (/obj/structure/chair/office/dark,/obj/machinery/light{dir = 8},/obj/machinery/camera{c_tag = "Server Room"; dir = 4; network = list("SS13","RD")},/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 5},/turf/open/floor/plasteel/black,/area/toxins/server) +"bzA" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/open/floor/plasteel/black,/area/toxins/server) +"bzB" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_command{name = "Server Room"; req_access_txt = "30"},/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/open/floor/plasteel/black,/area/toxins/server) +"bzC" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; external_pressure_bound = 120; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/open/floor/bluegrid{name = "Server Base"; initial_gas_mix = "n2=500;TEMP=80"},/area/toxins/server) +"bzD" = (/obj/machinery/computer/aifixer,/turf/open/floor/plasteel/whitepurple/side{dir = 8},/area/crew_quarters/hor) +"bzE" = (/obj/structure/chair/office/light{dir = 8},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/open/floor/plasteel/white,/area/crew_quarters/hor) +"bzF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/white,/area/crew_quarters/hor) +"bzG" = (/obj/structure/chair/office/light,/obj/effect/landmark/start{name = "Research Director"},/turf/open/floor/plasteel/white,/area/crew_quarters/hor) +"bzH" = (/obj/machinery/computer/card/minor/rd,/obj/machinery/keycard_auth{pixel_x = 28; pixel_y = 4},/turf/open/floor/plasteel/whitepurple/side{dir = 4},/area/crew_quarters/hor) +"bzI" = (/obj/machinery/recharger{pixel_y = 4},/obj/structure/table,/turf/open/floor/plasteel/red/side{dir = 10},/area/security/checkpoint/science) +"bzJ" = (/obj/machinery/computer/security/mining,/obj/item/device/radio/intercom{dir = 8; freerange = 1; name = "Station Intercom (Telecoms)"; pixel_x = 0; pixel_y = -26},/turf/open/floor/plasteel/red/side,/area/security/checkpoint/science) +"bzK" = (/obj/machinery/computer/secure_data,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/red/side{dir = 6},/area/security/checkpoint/science) +"bzL" = (/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plasteel/bot,/area/toxins/storage) +"bzM" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/toxins/storage) +"bzN" = (/turf/open/floor/plasteel,/area/toxins/storage) +"bzO" = (/turf/open/floor/plasteel/white/side{dir = 4},/area/medical/research{name = "Research Division"}) +"bzP" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bzQ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bzR" = (/turf/open/floor/plasteel,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bzS" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bzT" = (/obj/item/device/assembly/prox_sensor{pixel_x = -4; pixel_y = 1},/obj/item/device/assembly/prox_sensor{pixel_x = 8; pixel_y = 9},/obj/item/device/assembly/prox_sensor{pixel_x = 9; pixel_y = -2},/obj/item/device/assembly/prox_sensor{pixel_x = 0; pixel_y = 2},/obj/structure/table/reinforced,/turf/open/floor/plasteel,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bzU" = (/obj/structure/chair/stool,/obj/effect/landmark/start{name = "Scientist"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bzV" = (/obj/structure/table/reinforced,/obj/item/weapon/wrench,/obj/item/weapon/screwdriver{pixel_y = 10},/turf/open/floor/plasteel,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bzW" = (/obj/structure/closet/crate{name = "gas turbine crate"},/obj/item/stack/cable_coil,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/stack/sheet/metal{amount = 10},/obj/item/weapon/circuitboard/machine/power_compressor,/obj/item/weapon/circuitboard/machine/power_turbine,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/warning{dir = 4},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bzX" = (/obj/machinery/atmospherics/pipe/simple/general/visible,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/warning{dir = 8},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bzY" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bzZ" = (/obj/machinery/atmospherics/pipe/simple/general/visible,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/warning{dir = 4},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bAa" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/closed/wall,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bAb" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/closet/emcloset,/turf/open/floor/plasteel,/area/toxins/mineral_storeroom) +"bAc" = (/obj/machinery/power/smes,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel,/area/toxins/mineral_storeroom) +"bAd" = (/obj/machinery/suit_storage_unit/rd,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel,/area/toxins/mineral_storeroom) +"bAe" = (/obj/structure/ore_box,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/toxins/mineral_storeroom) +"bAf" = (/obj/structure/ore_box,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/sign/poster{pixel_x = 0; pixel_y = 32},/obj/machinery/camera{c_tag = "Toxins Launch Area"; dir = 2; network = list("SS13","RD")},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel,/area/toxins/mineral_storeroom) +"bAg" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel,/area/toxins/mineral_storeroom) +"bAh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/toxins/mineral_storeroom) +"bAi" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/toxins/mineral_storeroom) +"bAj" = (/obj/machinery/power/apc{dir = 1; name = "Toxins Launch Room APC"; pixel_y = 25},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/toxins/mineral_storeroom) +"bAk" = (/obj/machinery/door/airlock/maintenance{name = "Toxins Launch Room Maintenance"; req_access_txt = "8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/toxins/mineral_storeroom) +"bAl" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint2) +"bAm" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/item/weapon/cigbutt/cigarbutt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint2) +"bAn" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint2) +"bAo" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/plating,/area/maintenance/asmaint2) +"bAp" = (/obj/machinery/atmospherics/components/unary/tank/air{dir = 1},/turf/open/floor/plating,/area/maintenance/aft) +"bAq" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft) +"bAr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (SOUTHEAST)"; icon_state = "intact"; dir = 6},/turf/open/floor/plating,/area/maintenance/aft) +"bAs" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (WEST)"; icon_state = "intact"; dir = 8},/turf/closed/wall/r_wall,/area/medical/virology) +"bAt" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (WEST)"; icon_state = "intact"; dir = 8},/mob/living/carbon/monkey,/turf/open/floor/plasteel/freezer,/area/medical/virology) +"bAu" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (WEST)"; icon_state = "intact"; dir = 8},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/plasteel/freezer,/area/medical/virology) +"bAv" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; layer = 2.4; on = 1},/mob/living/carbon/monkey,/turf/open/floor/plasteel/freezer,/area/medical/virology) +"bAw" = (/turf/open/floor/plasteel/freezer,/area/medical/virology) +"bAx" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/virology{autoclose = 0; frequency = 1449; icon_state = "door_locked"; id_tag = "virology_airlock_interior"; locked = 1; name = "Virology Interior Airlock"; req_access_txt = "39"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/doorButtons/access_button{idDoor = "virology_airlock_interior"; idSelf = "virology_airlock_control"; name = "Virology Access Button"; pixel_x = -24; pixel_y = 0; req_access_txt = "39"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/virology) +"bAy" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/closed/wall/r_wall,/area/medical/virology) +"bAz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/turf/open/floor/plasteel/whiteblue/corner{dir = 1},/area/medical/medbay) +"bAA" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/white,/area/medical/medbay) +"bAB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor,/turf/open/floor/plasteel/whiteblue/corner{dir = 4},/area/medical/medbay) +"bAC" = (/turf/closed/wall,/area/medical/surgery) +"bAD" = (/obj/structure/table/glass,/obj/item/device/flashlight/pen,/obj/item/clothing/neck/stethoscope,/obj/item/weapon/lipstick/black,/obj/machinery/power/apc{dir = 8; name = "Personal Examination Room APC"; pixel_x = -25},/obj/structure/cable,/obj/item/weapon/reagent_containers/pill/morphine,/turf/open/floor/plasteel/black,/area/medical/exam_room) +"bAE" = (/obj/effect/decal/remains/human,/obj/structure/chair/office/dark{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/landmark{name = "revenantspawn"},/turf/open/floor/plasteel/black,/area/medical/exam_room) +"bAF" = (/obj/structure/bed,/obj/item/weapon/bedsheet/cmo,/obj/effect/decal/cleanable/blood/drip,/obj/item/weapon/restraints/handcuffs,/obj/item/clothing/mask/muzzle,/obj/effect/landmark{name = "revenantspawn"},/turf/open/floor/plasteel/black,/area/medical/exam_room) +"bAG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/structure/sign/examroom{pixel_x = -32},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/aft) +"bAH" = (/obj/machinery/camera{c_tag = "Aft Primary Hallway Central"; dir = 8; network = list("SS13")},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/primary/aft) +"bAI" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/weapon/pen,/turf/open/floor/plasteel/black,/area/toxins/server) +"bAJ" = (/obj/machinery/computer/rdservercontrol,/turf/open/floor/plasteel/black,/area/toxins/server) +"bAK" = (/obj/machinery/r_n_d/server/robotics,/turf/open/floor/bluegrid{name = "Server Base"; initial_gas_mix = "n2=500;TEMP=80"},/area/toxins/server) +"bAL" = (/obj/machinery/computer/mecha,/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -26},/turf/open/floor/plasteel/whitepurple/side{dir = 10},/area/crew_quarters/hor) +"bAM" = (/obj/structure/table,/obj/item/device/aicard,/obj/item/weapon/circuitboard/aicore,/obj/machinery/requests_console{announcementConsole = 1; department = "Research Director's Desk"; departmentType = 5; name = "Research Director RC"; pixel_x = 0; pixel_y = -30},/turf/open/floor/plasteel/whitepurple/side,/area/crew_quarters/hor) +"bAN" = (/obj/structure/table,/obj/item/weapon/paper_bin{layer = 2.9; pixel_x = -2; pixel_y = 5; tag = "every single paper bin is edited to this"},/obj/item/weapon/folder/white,/obj/item/weapon/pen,/obj/item/weapon/stamp/rd,/obj/machinery/status_display{density = 0; pixel_y = -30; supply_display = 1},/obj/machinery/camera{c_tag = "Research Director's Office"; dir = 1; network = list("SS13","RD")},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/whitepurple/side,/area/crew_quarters/hor) +"bAO" = (/obj/structure/table,/obj/item/weapon/cartridge/signal/toxins,/obj/item/weapon/cartridge/signal/toxins{pixel_x = -4; pixel_y = 2},/obj/item/weapon/cartridge/signal/toxins{pixel_x = 4; pixel_y = 6},/obj/machinery/computer/security/telescreen{desc = "Used for watching the RD's goons and the AI's satellite from the safety of his office."; name = "Research Monitor"; network = list("RD","MiniSat"); pixel_x = 0; pixel_y = -32},/turf/open/floor/plasteel/whitepurple/side,/area/crew_quarters/hor) +"bAP" = (/obj/machinery/newscaster{pixel_y = -30},/obj/machinery/modular_computer/console/preset/research,/turf/open/floor/plasteel/whitepurple/side{dir = 6},/area/crew_quarters/hor) +"bAQ" = (/turf/closed/wall/r_wall,/area/crew_quarters/hor) +"bAR" = (/turf/closed/wall/r_wall,/area/security/checkpoint/science) +"bAS" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall/r_wall,/area/security/checkpoint/science) +"bAT" = (/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/turf/open/floor/plasteel/bot,/area/toxins/storage) +"bAU" = (/obj/structure/sign/nosmoking_2{pixel_x = 32},/turf/open/floor/plasteel,/area/toxins/storage) +"bAV" = (/obj/structure/closet/firecloset,/turf/open/floor/plasteel/white/side{tag = "icon-whitehall (NORTH)"; icon_state = "whitehall"; dir = 1},/area/medical/research{name = "Research Division"}) +"bAW" = (/obj/structure/reagent_dispensers/watertank,/obj/machinery/light,/turf/open/floor/plasteel/white/side{tag = "icon-whitehall (NORTH)"; icon_state = "whitehall"; dir = 1},/area/medical/research{name = "Research Division"}) +"bAX" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel/white/side{tag = "icon-whitehall (NORTH)"; icon_state = "whitehall"; dir = 1},/area/medical/research{name = "Research Division"}) +"bAY" = (/obj/structure/tank_dispenser,/turf/open/floor/plasteel,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bAZ" = (/obj/structure/closet/wardrobe/science_white,/turf/open/floor/plasteel,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bBa" = (/obj/item/device/assembly/signaler{pixel_x = 0; pixel_y = 8},/obj/item/device/assembly/signaler{pixel_x = -8; pixel_y = 5},/obj/item/device/assembly/signaler{pixel_x = 6; pixel_y = 5},/obj/item/device/assembly/signaler{pixel_x = -2; pixel_y = -2},/obj/structure/table/reinforced,/turf/open/floor/plasteel/white,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bBb" = (/obj/item/device/transfer_valve{pixel_x = -5},/obj/item/device/transfer_valve{pixel_x = -5},/obj/item/device/transfer_valve{pixel_x = 0},/obj/item/device/transfer_valve{pixel_x = 0},/obj/item/device/transfer_valve{pixel_x = 5},/obj/item/device/transfer_valve{pixel_x = 5},/obj/structure/table/reinforced,/turf/open/floor/plasteel,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bBc" = (/obj/item/device/assembly/timer{pixel_x = 5; pixel_y = 4},/obj/item/device/assembly/timer{pixel_x = -4; pixel_y = 2},/obj/item/device/assembly/timer{pixel_x = 6; pixel_y = -4},/obj/item/device/assembly/timer{pixel_x = 0; pixel_y = 0},/obj/structure/table/reinforced,/turf/open/floor/plasteel,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bBd" = (/obj/machinery/computer/turbine_computer{id = "incineratorturbine"},/turf/open/floor/plasteel/warning{dir = 4},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bBe" = (/obj/machinery/atmospherics/pipe/simple/general/visible,/obj/machinery/meter,/turf/open/floor/plasteel/warning{dir = 8},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bBf" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/open/floor/plasteel,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bBg" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 8},/turf/open/floor/plasteel/warning{dir = 4},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bBh" = (/obj/machinery/door/firedoor/heavy,/obj/machinery/door/airlock/research{name = "Toxins Launch Room"; req_access_txt = "8"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/general/visible{color = "#330000"; dir = 4},/turf/open/floor/plasteel,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bBi" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 10; pixel_x = 0; initialize_directions = 10},/turf/open/floor/plasteel,/area/toxins/mineral_storeroom) +"bBj" = (/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/turf/open/floor/plasteel,/area/toxins/mineral_storeroom) +"bBk" = (/turf/open/floor/plasteel,/area/toxins/mineral_storeroom) +"bBl" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/toxins/mineral_storeroom) +"bBm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/toxins/mineral_storeroom) +"bBn" = (/turf/open/floor/plasteel/loadingarea{tag = "icon-loadingarea (EAST)"; dir = 4},/area/toxins/mineral_storeroom) +"bBo" = (/turf/open/floor/plasteel/delivery,/area/toxins/mineral_storeroom) +"bBp" = (/obj/structure/closet/boxinggloves,/turf/open/floor/plating,/area/maintenance/aft) +"bBq" = (/obj/structure/closet/masks,/obj/item/trash/deadmouse,/obj/effect/landmark{name = "revenantspawn"},/turf/open/floor/plating,/area/maintenance/aft) +"bBr" = (/obj/machinery/vending/cigarette,/turf/open/floor/plating,/area/maintenance/aft) +"bBs" = (/obj/structure/window/reinforced,/turf/open/floor/plasteel/freezer,/area/medical/virology) +"bBt" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1},/mob/living/carbon/monkey,/turf/open/floor/plasteel/freezer,/area/medical/virology) +"bBu" = (/obj/structure/window/reinforced,/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plasteel/freezer,/area/medical/virology) +"bBv" = (/obj/machinery/door/window/eastleft{dir = 2; name = "Monkey Pen"; req_one_access_txt = "39"},/mob/living/carbon/monkey,/turf/open/floor/plasteel/freezer,/area/medical/virology) +"bBw" = (/obj/machinery/doorButtons/airlock_controller{idExterior = "virology_airlock_exterior"; idInterior = "virology_airlock_interior"; idSelf = "virology_airlock_control"; name = "Virology Access Console"; pixel_x = 8; pixel_y = 22; req_access_txt = "39"},/obj/machinery/light_switch{pixel_x = -4; pixel_y = 24},/turf/open/floor/plasteel/whitegreen/side{tag = "icon-whitegreen (NORTHWEST)"; icon_state = "whitegreen"; dir = 9},/area/medical/virology) +"bBx" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/virology) +"bBy" = (/obj/machinery/power/apc{cell_type = 5000; dir = 1; name = "Virology APC"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/open/floor/plasteel/whitegreen/side{tag = "icon-whitegreen (NORTHEAST)"; icon_state = "whitegreen"; dir = 5},/area/medical/virology) +"bBz" = (/obj/item/weapon/bedsheet/medical,/obj/structure/bed,/obj/effect/landmark{name = "revenantspawn"},/obj/structure/mirror{pixel_x = -28},/obj/structure/curtain{layer = 4.5},/turf/open/floor/plasteel/freezer,/area/medical/medbay) +"bBA" = (/obj/machinery/vending/wallmed{pixel_y = 28; products = list(/obj/item/weapon/reagent_containers/syringe = 3, /obj/item/weapon/reagent_containers/pill/patch/styptic = 1, /obj/item/weapon/reagent_containers/pill/patch/silver_sulf = 1, /obj/item/weapon/reagent_containers/spray/medical/sterilizer = 1)},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/freezer,/area/medical/medbay) +"bBB" = (/obj/machinery/button/door{id = "patientA"; name = "Privacy Shutters"; pixel_y = 25},/obj/machinery/camera{c_tag = "Patient Room A"; dir = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/freezer,/area/medical/medbay) +"bBC" = (/obj/machinery/door/airlock/medical{name = "Patient Room A"; req_access_txt = "5"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/freezer,/area/medical/medbay) +"bBD" = (/obj/machinery/light{dir = 4},/obj/machinery/firealarm{dir = 4; pixel_x = 28},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel/whiteblue/side{tag = "icon-whiteblue (EAST)"; dir = 4},/area/medical/medbay) +"bBE" = (/obj/machinery/limbgrower,/obj/item/weapon/reagent_containers/glass/beaker/synthflesh,/obj/machinery/newscaster/security_unit{pixel_y = 32},/turf/open/floor/plasteel/freezer,/area/medical/surgery) +"bBF" = (/obj/machinery/computer/med_data,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/open/floor/plasteel/freezer,/area/medical/surgery) +"bBG" = (/obj/structure/table,/obj/structure/bedsheetbin,/obj/structure/extinguisher_cabinet{pixel_x = 24},/obj/machinery/computer/security/telescreen/entertainment{pixel_y = 32},/turf/open/floor/plasteel/freezer,/area/medical/surgery) +"bBH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/medical/surgery) +"bBI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall/r_wall,/area/crew_quarters/hor) +"bBJ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/structure/table,/obj/item/toy/cards/deck,/turf/open/floor/plating,/area/maintenance/maintcentral{name = "Atmospherics Maintenance"}) +"bBK" = (/obj/machinery/space_heater,/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/maintcentral{name = "Atmospherics Maintenance"}) +"bBL" = (/obj/machinery/space_heater,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/maintcentral{name = "Atmospherics Maintenance"}) +"bBM" = (/obj/machinery/portable_atmospherics/canister/nitrous_oxide,/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/turf/open/floor/plasteel/bot,/area/toxins/storage) +"bBN" = (/obj/machinery/portable_atmospherics/canister/nitrous_oxide,/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/turf/open/floor/plasteel/bot,/area/toxins/storage) +"bBO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/turf/open/floor/plasteel/warning{dir = 8},/area/toxins/storage) +"bBP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "External to Filter"; on = 1},/turf/open/floor/plasteel,/area/toxins/storage) +"bBQ" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 8},/turf/open/floor/plasteel,/area/toxins/storage) +"bBR" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/medical/research{name = "Research Division"}) +"bBS" = (/turf/closed/wall/r_wall,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bBT" = (/obj/machinery/atmospherics/components/binary/valve,/obj/machinery/button/door{id = "turbinevent"; name = "Aft Vent Control"; pixel_x = -6; pixel_y = -24; req_access_txt = "0"; req_one_access_txt = "8;24"},/obj/machinery/button/door{id = "mixvent"; name = "Starboard Vent Control"; pixel_x = 6; pixel_y = -24; req_access_txt = "0"; req_one_access_txt = "8;24"},/obj/machinery/computer/security/telescreen{desc = "Used for watching the turbine vent."; dir = 4; name = "turbine vent monitor"; network = list("Turbine"); pixel_x = -30; pixel_y = 0},/turf/open/floor/plasteel/warning{dir = 8},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bBU" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bBV" = (/obj/machinery/atmospherics/components/binary/valve,/obj/machinery/button/ignition{id = "Incinerator"; pixel_x = -6; pixel_y = -24},/obj/machinery/doorButtons/airlock_controller{idExterior = "incinerator_airlock_exterior"; idInterior = "incinerator_airlock_interior"; idSelf = "incinerator_access_control"; name = "Incinerator Access Console"; pixel_x = 6; pixel_y = -26; req_access_txt = "0"},/obj/structure/extinguisher_cabinet{pixel_x = 24},/turf/open/floor/plasteel/warning{dir = 4},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bBW" = (/obj/machinery/atmospherics/components/binary/pump{dir = 2; name = "Incinerator Output Pump"; on = 0},/turf/open/floor/plasteel,/area/toxins/mineral_storeroom) +"bBX" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/toxins/mineral_storeroom) +"bBY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/toxins/mineral_storeroom) +"bBZ" = (/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel,/area/toxins/mineral_storeroom) +"bCa" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel,/area/toxins/mineral_storeroom) +"bCb" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = 28},/turf/open/floor/plasteel/brown{dir = 4},/area/toxins/mineral_storeroom) +"bCc" = (/obj/machinery/mineral/unloading_machine{dir = 1; icon_state = "unloader-corner"; input_dir = 1; output_dir = 2},/turf/open/floor/plating/warnplate{dir = 9},/area/toxins/mineral_storeroom) +"bCd" = (/obj/structure/table,/obj/item/device/flashlight/lamp,/turf/open/floor/plating,/area/maintenance/aft) +"bCe" = (/obj/effect/spawner/lootdrop/grille_or_trash,/turf/open/floor/plating,/area/maintenance/aft) +"bCf" = (/obj/machinery/vending/medical,/turf/open/floor/plasteel/whitegreen/side{tag = "icon-whitegreen (NORTHWEST)"; icon_state = "whitegreen"; dir = 9},/area/medical/virology) +"bCg" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plasteel/whitegreen/side{dir = 1},/area/medical/virology) +"bCh" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/whitegreen/side{dir = 1},/area/medical/virology) +"bCi" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/turf/open/floor/plasteel/whitegreen/side{dir = 1},/area/medical/virology) +"bCj" = (/obj/machinery/camera{c_tag = "Virology"; dir = 2; network = list("SS13")},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/item/device/radio/intercom{dir = 8; freerange = 1; name = "Station Intercom (Telecoms)"; pixel_x = 0; pixel_y = 26},/turf/open/floor/plasteel/whitegreen/side{dir = 1},/area/medical/virology) +"bCk" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/turf/open/floor/plasteel/whitegreen/corner{dir = 1},/area/medical/virology) +"bCl" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/white,/area/medical/virology) +"bCm" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/open/floor/plasteel/whitegreen/corner{dir = 4},/area/medical/virology) +"bCn" = (/obj/machinery/light{dir = 1},/obj/machinery/airalarm{pixel_y = 22},/turf/open/floor/plasteel/whitegreen/side{dir = 1},/area/medical/virology) +"bCo" = (/obj/structure/closet/l3closet/virology,/turf/open/floor/plasteel/whitegreen/side{tag = "icon-whitegreen (NORTHEAST)"; icon_state = "whitegreen"; dir = 5},/area/medical/virology) +"bCp" = (/obj/structure/table,/obj/item/weapon/clipboard{toppaper = null},/obj/item/weapon/pen{layer = 3.1},/obj/item/clothing/neck/stethoscope{layer = 3.2},/turf/open/floor/plasteel/freezer,/area/medical/medbay) +"bCq" = (/obj/structure/chair/office/light{dir = 8},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/freezer,/area/medical/medbay) +"bCr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/closet/secure_closet/personal/patient,/turf/open/floor/plasteel/freezer,/area/medical/medbay) +"bCs" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/door/poddoor/shutters/preopen{id = "patientA"; name = "privacy shutters"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/medical/medbay) +"bCt" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bCu" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/medical/surgery) +"bCv" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/freezer,/area/medical/surgery) +"bCw" = (/obj/structure/chair/office/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/freezer,/area/medical/surgery) +"bCx" = (/obj/machinery/camera{c_tag = "Medbay Recovery Room"; dir = 8; network = list("SS13")},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = 28; pixel_y = 0},/obj/machinery/holopad,/turf/open/floor/plasteel/freezer,/area/medical/surgery) +"bCy" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/medical/surgery) +"bCz" = (/obj/structure/closet/crate/freezer/blood,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/whiteblue,/area/medical/surgery) +"bCA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/whiteblue/side{dir = 1},/area/medical/surgery) +"bCB" = (/obj/machinery/light{dir = 1},/obj/machinery/camera{c_tag = "Surgery"; dir = 2; network = list("SS13","Surgery")},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/airalarm{pixel_y = 22},/turf/open/floor/plasteel/whiteblue/side{dir = 1},/area/medical/surgery) +"bCC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/whiteblue/side{dir = 1},/area/medical/surgery) +"bCD" = (/obj/structure/closet/secure_closet/medical2,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/whiteblue,/area/medical/surgery) +"bCE" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/yellow/corner{dir = 8},/area/hallway/primary/aft) +"bCF" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"bCG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/yellow/corner,/area/hallway/primary/aft) +"bCH" = (/obj/machinery/door/airlock/maintenance{name = "Atmospherics Maintenance"; req_access_txt = "24"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/maintcentral{name = "Atmospherics Maintenance"}) +"bCI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/maintcentral{name = "Atmospherics Maintenance"}) +"bCJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/maintcentral{name = "Atmospherics Maintenance"}) +"bCK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/sign/poster{pixel_x = 0; pixel_y = 32},/turf/open/floor/plating,/area/maintenance/maintcentral{name = "Atmospherics Maintenance"}) +"bCL" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/maintcentral{name = "Atmospherics Maintenance"}) +"bCM" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plating,/area/maintenance/maintcentral{name = "Atmospherics Maintenance"}) +"bCN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/maintcentral{name = "Atmospherics Maintenance"}) +"bCO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/maintcentral{name = "Atmospherics Maintenance"}) +"bCP" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/effect/landmark{name = "blobstart"},/obj/item/chair/stool,/turf/open/floor/plating,/area/maintenance/maintcentral{name = "Atmospherics Maintenance"}) +"bCQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/obj/structure/sign/poster{pixel_x = 32; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/maintcentral{name = "Atmospherics Maintenance"}) +"bCR" = (/obj/machinery/door/firedoor/heavy,/obj/machinery/door/airlock/atmos{name = "Toxins Storage"; req_access_txt = "24"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/toxins/storage) +"bCS" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 2},/turf/closed/wall/r_wall,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bCT" = (/obj/machinery/door/airlock/glass{autoclose = 0; frequency = 1449; heat_proof = 1; icon_state = "door_locked"; id_tag = "incinerator_airlock_interior"; locked = 1; name = "Turbine Interior Airlock"; req_access_txt = "0"; req_one_access_txt = "8;24"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/engine,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bCU" = (/obj/machinery/atmospherics/pipe/simple/general/visible,/turf/closed/wall/r_wall,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bCV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/turf/open/floor/plasteel,/area/toxins/mineral_storeroom) +"bCW" = (/obj/structure/window/reinforced,/obj/machinery/doppler_array{dir = 2},/turf/open/floor/plasteel/bot{dir = 2},/area/toxins/mineral_storeroom) +"bCX" = (/obj/machinery/conveyor_switch/oneway{id = "toxmineral"; name = "smelting conveyor"},/turf/open/floor/plasteel/brown{dir = 4},/area/toxins/mineral_storeroom) +"bCY" = (/obj/effect/spawner/structure/window,/turf/open/floor/plating,/area/toxins/mineral_storeroom) +"bCZ" = (/obj/machinery/conveyor{dir = 2; id = "toxmineral"},/turf/open/floor/plating/warnplate{tag = "icon-warnplate (WEST)"; dir = 8},/area/toxins/mineral_storeroom) +"bDa" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/toxins/mineral_storeroom) +"bDb" = (/obj/structure/chair/comfy/black,/obj/item/trash/pistachios,/turf/open/floor/plating,/area/maintenance/aft) +"bDc" = (/obj/structure/chair/comfy/black,/obj/item/stack/spacecash/c100,/turf/open/floor/plating,/area/maintenance/aft) +"bDd" = (/obj/structure/chair/comfy/black,/turf/open/floor/plating,/area/maintenance/aft) +"bDe" = (/obj/structure/chair/comfy/black,/obj/item/weapon/cigbutt,/turf/open/floor/plating,/area/maintenance/aft) +"bDf" = (/obj/item/trash/popcorn,/turf/open/floor/plating,/area/maintenance/aft) +"bDg" = (/obj/structure/sign/poster{pixel_x = 32; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/aft) +"bDh" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-21"},/turf/open/floor/plating,/area/maintenance/aft) +"bDi" = (/obj/structure/rack,/obj/item/weapon/cartridge/medical,/turf/open/floor/plating,/area/maintenance/aft) +"bDj" = (/obj/structure/table/glass,/obj/item/weapon/book/manual/wiki/infections,/obj/item/weapon/hand_labeler,/obj/item/device/radio/headset/headset_med,/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/whitegreen/side{dir = 8},/area/medical/virology) +"bDk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/virology) +"bDl" = (/turf/open/floor/plasteel/white,/area/medical/virology) +"bDm" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/virology) +"bDn" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/open/floor/plasteel/white,/area/medical/virology) +"bDo" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-05"; layer = 4.1},/obj/machinery/firealarm{dir = 4; pixel_x = 28},/turf/open/floor/plasteel/whitegreen/side{tag = "icon-whitegreen (EAST)"; icon_state = "whitegreen"; dir = 4},/area/medical/virology) +"bDp" = (/obj/machinery/requests_console{announcementConsole = 0; department = "Medbay"; departmentType = 1; name = "Medbay RC"; pixel_x = -30; pixel_y = 0; pixel_z = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/whiteblue/side{dir = 8},/area/medical/medbay) +"bDq" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/whiteblue/side{tag = "icon-whiteblue (EAST)"; dir = 4},/area/medical/medbay) +"bDr" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Recovery Room"; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/freezer,/area/medical/surgery) +"bDs" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/freezer,/area/medical/surgery) +"bDt" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (NORTH)"; dir = 1},/turf/open/floor/plasteel/freezer,/area/medical/surgery) +"bDu" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{name = "Surgery"; req_access_txt = "45"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/freezer,/area/medical/surgery) +"bDv" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (NORTH)"; dir = 1},/turf/open/floor/plasteel/whiteblue/side{dir = 8},/area/medical/surgery) +"bDw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/white,/area/medical/surgery) +"bDx" = (/obj/machinery/computer/operating,/turf/open/floor/plasteel/white,/area/medical/surgery) +"bDy" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/surgery) +"bDz" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel/whiteblue/side{tag = "icon-whiteblue (EAST)"; dir = 4},/area/medical/surgery) +"bDA" = (/obj/machinery/door/airlock/maintenance{name = "Surgery Maintenance"; req_access_txt = "45"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/medical/surgery) +"bDB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plating,/area/maintenance/aft) +"bDC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/sign/poster{pixel_x = -32},/turf/open/floor/plasteel/yellow/corner{dir = 8},/area/hallway/primary/aft) +"bDD" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"bDE" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plasteel/yellow/corner,/area/hallway/primary/aft) +"bDF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/maintenance/maintcentral{name = "Atmospherics Maintenance"}) +"bDG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/maintcentral{name = "Atmospherics Maintenance"}) +"bDH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/maintcentral{name = "Atmospherics Maintenance"}) +"bDI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/maintcentral{name = "Atmospherics Maintenance"}) +"bDJ" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/obj/effect/decal/cleanable/vomit/old,/turf/open/floor/plating,/area/maintenance/maintcentral{name = "Atmospherics Maintenance"}) +"bDK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plating,/area/maintenance/maintcentral{name = "Atmospherics Maintenance"}) +"bDL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/maintcentral{name = "Atmospherics Maintenance"}) +"bDM" = (/obj/machinery/portable_atmospherics/canister,/turf/open/floor/plating,/area/maintenance/maintcentral{name = "Atmospherics Maintenance"}) +"bDN" = (/turf/closed/wall/r_wall,/area/atmos) +"bDO" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 8; name = "Atmospherics APC"; pixel_x = -24},/obj/machinery/portable_atmospherics/scrubber,/turf/open/floor/plasteel/yellow/side{dir = 1},/area/atmos) +"bDP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/airalarm{dir = 2; pixel_y = 22},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/atmos) +"bDQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/requests_console{announcementConsole = 1; department = "Head of Security's Desk"; departmentType = 5; name = "Head of Security RC"; pixel_x = 0; pixel_y = 30},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/atmos) +"bDR" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/light{dir = 1},/obj/machinery/camera{c_tag = "Atmospherics Toxins"; dir = 2; network = list("SS13"); pixel_x = 0; pixel_y = 0; start_active = 1},/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 26},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/atmos) +"bDS" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/atmos) +"bDT" = (/obj/structure/cable{icon_state = "1-8"},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/atmos) +"bDU" = (/turf/open/floor/plasteel/yellow/side{dir = 5},/area/atmos) +"bDV" = (/obj/structure/grille,/turf/closed/wall/r_wall,/area/atmos) +"bDW" = (/obj/machinery/atmospherics/components/binary/pump{dir = 2; on = 1; target_pressure = 101.325},/obj/machinery/doorButtons/access_button{idDoor = "incinerator_airlock_exterior"; idSelf = "incinerator_access_control"; layer = 3.1; name = "Incinerator airlock control"; pixel_x = 8; pixel_y = -24},/turf/open/floor/engine,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bDX" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/engine,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bDY" = (/obj/machinery/atmospherics/components/binary/pump{dir = 1; on = 1; target_pressure = 101.325},/obj/machinery/doorButtons/access_button{idSelf = "incinerator_access_control"; idDoor = "incinerator_airlock_interior"; name = "Incinerator airlock control"; pixel_x = -8; pixel_y = 24},/turf/open/floor/engine,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bDZ" = (/obj/machinery/computer/security/telescreen{desc = "Used for watching the test chamber."; dir = 2; layer = 4; name = "Test Chamber Telescreen"; network = list("Toxins"); pixel_x = 0; pixel_y = -32},/turf/open/floor/plasteel,/area/toxins/mineral_storeroom) +"bEa" = (/obj/machinery/button/massdriver{dir = 2; id = "toxinsdriver"; pixel_y = -24},/turf/open/floor/plasteel/loadingarea{tag = "icon-loadingarea (EAST)"; dir = 4},/area/toxins/mineral_storeroom) +"bEb" = (/obj/machinery/mass_driver{id = "toxinsdriver"},/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/machinery/door/window/southleft{dir = 8; name = "Mass Driver Door"; req_access_txt = "7"},/turf/open/floor/plating/warnplate/end{tag = "icon-plating_warn_end (NORTH)"; icon_state = "plating_warn_end"; dir = 1},/area/toxins/mineral_storeroom) +"bEc" = (/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/brown{dir = 4},/area/toxins/mineral_storeroom) +"bEd" = (/obj/machinery/mineral/processing_unit_console,/turf/closed/wall,/area/toxins/mineral_storeroom) +"bEe" = (/obj/machinery/mineral/processing_unit{dir = 1; output_dir = 2},/turf/open/floor/plating/warnplate{dir = 9},/area/toxins/mineral_storeroom) +"bEf" = (/obj/machinery/door/window/eastright{base_state = "left"; dir = 8; icon_state = "left"; name = "Fitness Ring"},/obj/structure/window/reinforced{dir = 1},/obj/structure/chair/stool,/turf/open/floor/plasteel/black,/area/maintenance/aft) +"bEg" = (/obj/structure/window/reinforced{dir = 1},/mob/living/simple_animal/chicken{name = "Bloodthirsty Peckins"},/turf/open/floor/plasteel/black,/area/maintenance/aft) +"bEh" = (/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plasteel/black,/area/maintenance/aft) +"bEi" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plasteel/black,/area/maintenance/aft) +"bEj" = (/obj/item/stack/medical/gauze,/turf/open/floor/plating,/area/maintenance/aft) +"bEk" = (/obj/structure/light_construct{tag = "icon-tube-construct-stage1 (EAST)"; icon_state = "tube-construct-stage1"; dir = 4},/turf/open/floor/plating,/area/maintenance/aft) +"bEl" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/medical/virology) +"bEm" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_virology{name = "Isolation B"; req_access_txt = "39"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/freezer,/area/medical/virology) +"bEn" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_virology{name = "Isolation A"; req_access_txt = "39"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/freezer,/area/medical/virology) +"bEo" = (/obj/machinery/computer/pandemic,/turf/open/floor/plasteel/white,/area/medical/virology) +"bEp" = (/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{tag = "icon-manifold (WEST)"; icon_state = "manifold"; dir = 8},/turf/open/floor/plasteel/white,/area/medical/virology) +"bEq" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; layer = 2.4; on = 1},/turf/open/floor/plasteel/white,/area/medical/virology) +"bEr" = (/obj/machinery/smartfridge/chemistry/virology,/turf/open/floor/plasteel/whitegreen/side{tag = "icon-whitegreen (EAST)"; icon_state = "whitegreen"; dir = 4},/area/medical/virology) +"bEs" = (/obj/machinery/button/door{id = "patientB"; name = "Privacy Shutters"; pixel_y = 25},/obj/machinery/camera{c_tag = "Patient Room B"; dir = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/freezer,/area/medical/medbay) +"bEt" = (/obj/machinery/door/airlock/medical{name = "Patient Room B"; req_access_txt = "5"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/freezer,/area/medical/medbay) +"bEu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/landmark/event_spawn,/obj/item/device/radio/beacon,/turf/open/floor/plasteel/white,/area/medical/medbay) +"bEv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/plasteel/whiteblue/side{tag = "icon-whiteblue (EAST)"; dir = 4},/area/medical/medbay) +"bEw" = (/obj/structure/bed/roller,/obj/machinery/iv_drip{density = 0},/turf/open/floor/plasteel/freezer,/area/medical/surgery) +"bEx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/freezer,/area/medical/surgery) +"bEy" = (/obj/structure/bed,/turf/open/floor/plasteel/freezer,/area/medical/surgery) +"bEz" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel/whiteblue/side{dir = 8},/area/medical/surgery) +"bEA" = (/obj/structure/table/optable,/obj/effect/landmark{name = "revenantspawn"},/turf/open/floor/plasteel/white,/area/medical/surgery) +"bEB" = (/obj/machinery/power/apc{dir = 4; name = "Surgery APC"; pixel_x = 26; pixel_y = 0},/obj/structure/cable,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/whiteblue/side{tag = "icon-whiteblue (EAST)"; dir = 4},/area/medical/surgery) +"bEC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/aft) +"bED" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/yellow/corner{dir = 8},/area/hallway/primary/aft) +"bEE" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"bEF" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/yellow/corner,/area/hallway/primary/aft) +"bEG" = (/turf/closed/wall,/area/maintenance/maintcentral{name = "Atmospherics Maintenance"}) +"bEH" = (/obj/machinery/door/firedoor/heavy,/obj/machinery/door/airlock/atmos{name = "Atmospherics Maintenance"; req_access_txt = "12;24"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/atmos) +"bEI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/turf/closed/wall/r_wall,/area/atmos) +"bEJ" = (/obj/machinery/atmospherics/pipe/simple/supply/visible,/turf/closed/wall/r_wall,/area/atmos) +"bEK" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 6},/obj/machinery/portable_atmospherics/scrubber,/turf/open/floor/plasteel,/area/atmos) +"bEL" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/turf/open/floor/plasteel,/area/atmos) +"bEM" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/atmos) +"bEN" = (/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Mix Outlet Pump"; on = 0},/turf/open/floor/plasteel/yellow/side{tag = "icon-yellow (EAST)"; dir = 4},/area/atmos) +"bEO" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/atmos) +"bEP" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/turf/open/space,/area/space) +"bEQ" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/grille,/obj/machinery/meter,/turf/closed/wall/r_wall,/area/atmos) +"bER" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; external_pressure_bound = 0; frequency = 1441; id_tag = "mix_in"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/open/floor/engine/vacuum,/area/atmos) +"bES" = (/obj/machinery/camera{c_tag = "Atmospherics Waste Tank"},/turf/open/floor/engine/vacuum,/area/atmos) +"bET" = (/turf/open/floor/engine/vacuum,/area/atmos) +"bEU" = (/obj/machinery/door/airlock/glass{autoclose = 0; frequency = 1449; heat_proof = 1; icon_state = "door_locked"; id_tag = "incinerator_airlock_exterior"; locked = 1; name = "Turbine Exterior Airlock"; req_access_txt = "0"; req_one_access_txt = "8;24"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/engine,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bEV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/machinery/door/airlock/external{cyclelinkeddir = 2; req_access_txt = "8"; req_one_access_txt = "0"},/turf/open/floor/plating,/area/toxins/mineral_storeroom) +"bEW" = (/obj/structure/window/reinforced{dir = 8; layer = 2.9},/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plating/warnplate/side,/area/toxins/mineral_storeroom) +"bEX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/closed/wall,/area/toxins/mineral_storeroom) +"bEY" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/item/weapon/storage/bag/ore,/obj/item/weapon/storage/bag/ore,/turf/open/floor/plasteel,/area/toxins/mineral_storeroom) +"bEZ" = (/turf/open/floor/plasteel/loadingarea{dir = 8},/area/toxins/mineral_storeroom) +"bFa" = (/obj/machinery/conveyor{dir = 8; id = "toxmineral"},/obj/structure/plasticflaps,/turf/open/floor/plating/warnplate{dir = 9},/area/toxins/mineral_storeroom) +"bFb" = (/obj/machinery/conveyor{dir = 10; icon_state = "conveyor0"; id = "toxmineral"},/obj/machinery/light/small,/turf/open/floor/plating/warnplate/corner{tag = "icon-warnplatecorner (EAST)"; dir = 4},/area/toxins/mineral_storeroom) +"bFc" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/black,/area/maintenance/aft) +"bFd" = (/obj/effect/landmark{name = "revenantspawn"},/turf/open/floor/plasteel/vault{dir = 5},/area/maintenance/aft) +"bFe" = (/turf/open/floor/plasteel/vault{dir = 5},/area/maintenance/aft) +"bFf" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/black,/area/maintenance/aft) +"bFg" = (/obj/structure/mineral_door/wood{name = "The Roosterdome"},/turf/open/floor/plating,/area/maintenance/aft) +"bFh" = (/obj/structure/barricade/wooden,/obj/structure/girder,/turf/open/floor/plating,/area/maintenance/aft) +"bFi" = (/obj/item/weapon/bedsheet/medical,/obj/structure/bed,/obj/effect/decal/cleanable/cobweb,/obj/effect/landmark{name = "revenantspawn"},/turf/open/floor/plasteel/freezer,/area/medical/virology) +"bFj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/freezer,/area/medical/virology) +"bFk" = (/obj/structure/bed,/obj/item/weapon/bedsheet/medical,/obj/effect/landmark{name = "revenantspawn"},/turf/open/floor/plasteel/freezer,/area/medical/virology) +"bFl" = (/obj/structure/table,/obj/item/clothing/gloves/color/latex,/obj/item/weapon/reagent_containers/dropper,/turf/open/floor/plasteel/white,/area/medical/virology) +"bFm" = (/obj/effect/landmark/start{name = "Virologist"},/obj/structure/chair/office/light{dir = 8},/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/open/floor/plasteel/white,/area/medical/virology) +"bFn" = (/obj/structure/table/glass,/obj/item/clothing/gloves/color/latex,/obj/item/clothing/glasses/hud/health,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/machinery/requests_console{department = "Virology"; name = "Virology Requests Console"; pixel_x = 32},/obj/item/weapon/storage/box/monkeycubes,/turf/open/floor/plasteel/whitegreen/side{tag = "icon-whitegreen (EAST)"; icon_state = "whitegreen"; dir = 4},/area/medical/virology) +"bFo" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/door/poddoor/shutters/preopen{id = "patientB"; name = "privacy shutters"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/medical/medbay) +"bFp" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel/whiteblue/side{dir = 8},/area/medical/medbay) +"bFq" = (/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/whiteblue/side{tag = "icon-whiteblue (EAST)"; dir = 4},/area/medical/medbay) +"bFr" = (/obj/machinery/light,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel/freezer,/area/medical/surgery) +"bFs" = (/obj/structure/table,/obj/item/clothing/gloves/color/latex,/obj/item/clothing/mask/surgical,/obj/item/clothing/suit/apron/surgical,/turf/open/floor/plasteel/whiteblue/side{dir = 8},/area/medical/surgery) +"bFt" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/white,/area/medical/surgery) +"bFu" = (/obj/effect/landmark/start{name = "Medical Doctor"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/surgery) +"bFv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/plasteel/white,/area/medical/surgery) +"bFw" = (/obj/structure/table,/obj/item/weapon/surgical_drapes,/turf/open/floor/plasteel/whiteblue/side{tag = "icon-whiteblue (EAST)"; dir = 4},/area/medical/surgery) +"bFx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/yellow/corner{dir = 8},/area/hallway/primary/aft) +"bFy" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/yellow/corner,/area/hallway/primary/aft) +"bFz" = (/turf/closed/wall,/area/hallway/primary/aft) +"bFA" = (/obj/machinery/vending/cigarette,/turf/open/floor/plasteel/yellow/corner{dir = 1},/area/hallway/primary/aft) +"bFB" = (/obj/machinery/vending/cola,/turf/open/floor/plasteel/yellow/corner{dir = 1},/area/hallway/primary/aft) +"bFC" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "applebush"; layer = 4.1},/obj/machinery/airalarm{pixel_y = 22},/turf/open/floor/plasteel/yellow/corner{dir = 1},/area/hallway/primary/aft) +"bFD" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/scrubber,/turf/open/floor/plasteel/escape{dir = 9},/area/hallway/primary/aft) +"bFE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{icon_state = "intact"; dir = 10},/turf/closed/wall/r_wall,/area/atmos) +"bFF" = (/turf/open/floor/plasteel/yellow/side{dir = 1},/area/atmos) +"bFG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/atmos) +"bFH" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; layer = 2.4; on = 1},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/atmos) +"bFI" = (/obj/machinery/computer/atmos_control,/turf/open/floor/plasteel/yellow/side{dir = 1},/area/atmos) +"bFJ" = (/obj/machinery/computer/atmos_alert,/turf/open/floor/plasteel/yellow/side{dir = 1},/area/atmos) +"bFK" = (/obj/machinery/meter{frequency = 1441; id_tag = "waste_meter"; name = "Waste Loop"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{dir = 8},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/atmos) +"bFL" = (/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Distro to Waste"; on = 0},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/atmos) +"bFM" = (/obj/machinery/meter{frequency = 1441; id_tag = "distro_meter"; name = "Distribution Loop"},/obj/machinery/atmospherics/pipe/manifold/supply/visible,/turf/open/floor/plasteel/yellow/side{dir = 1},/area/atmos) +"bFN" = (/obj/machinery/atmospherics/pipe/manifold/supply/visible{tag = "icon-manifold (NORTH)"; icon_state = "manifold"; dir = 1},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/atmos) +"bFO" = (/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Mix to Distro"; on = 0},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/atmos) +"bFP" = (/obj/machinery/atmospherics/pipe/manifold/yellow/visible{dir = 4},/turf/open/floor/plasteel,/area/atmos) +"bFQ" = (/turf/open/floor/plasteel,/area/atmos) +"bFR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/atmos) +"bFS" = (/obj/machinery/computer/atmos_control/tank{frequency = 1441; input_tag = "mix_in"; name = "Gas Mix Tank Control"; output_tag = "mix_in"; sensors = list("mix_sensor" = "Tank")},/turf/open/floor/plasteel/yellow/side{tag = "icon-yellow (EAST)"; dir = 4},/area/atmos) +"bFT" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/atmos) +"bFU" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating/airless,/area/atmos) +"bFV" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "mix_sensor"},/turf/open/floor/engine/vacuum,/area/atmos) +"bFW" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/engine/vacuum,/area/atmos) +"bFX" = (/obj/machinery/door/poddoor{id = "mixvent"; name = "Starboard Vent"},/turf/open/floor/engine/vacuum,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bFY" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 1; frequency = 1441; id = "inc_in"},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = -32},/turf/open/floor/engine/vacuum,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bFZ" = (/obj/machinery/igniter{icon_state = "igniter0"; id = "Incinerator"; luminosity = 2; on = 0},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/engine/vacuum,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bGa" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 0; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/open/floor/engine/vacuum,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bGb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/machinery/light/small{dir = 8},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = -32; pixel_y = 0},/turf/open/floor/plating,/area/toxins/mineral_storeroom) +"bGc" = (/obj/structure/closet/emcloset{anchored = 1; desc = "It's a storage unit for emergency breath masks and O2 tanks, and is securely bolted in place."; name = "anchored emergency closet"},/turf/open/floor/plating/warnplate{dir = 8},/area/toxins/mineral_storeroom) +"bGd" = (/obj/machinery/door/poddoor{id = "toxinsdriver"; name = "toxins launcher bay door"},/turf/open/floor/plating/warnplate/side,/area/toxins/mineral_storeroom) +"bGe" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/vault{dir = 5},/area/maintenance/aft) +"bGf" = (/obj/item/stack/spacecash/c10,/turf/open/floor/plating,/area/maintenance/aft) +"bGg" = (/obj/machinery/atmospherics/components/unary/vent_pump,/turf/open/floor/plasteel/freezer,/area/medical/virology) +"bGh" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/freezer,/area/medical/virology) +"bGi" = (/obj/structure/table,/obj/item/weapon/pen/red,/obj/item/weapon/paper_bin{layer = 2.9; pixel_x = 0; pixel_y = 0; tag = "every single paper bin is edited to this"},/turf/open/floor/plasteel/white,/area/medical/virology) +"bGj" = (/turf/open/floor/plasteel/whitegreen/corner,/area/medical/virology) +"bGk" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/beakers{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/box/syringes,/obj/structure/reagent_dispensers/virusfood{density = 0; pixel_x = 32; pixel_y = 0},/turf/open/floor/plasteel/whitegreen/side{tag = "icon-whitegreen (SOUTHEAST)"; icon_state = "whitegreen"; dir = 6},/area/medical/virology) +"bGl" = (/obj/machinery/vending/cigarette,/turf/open/floor/plasteel/whiteblue/side{dir = 10},/area/medical/medbay) +"bGm" = (/obj/machinery/light,/obj/item/weapon/soap/nanotrasen,/obj/item/clothing/neck/stethoscope,/obj/item/weapon/gun/syringe,/obj/structure/table/glass,/turf/open/floor/plasteel/whiteblue/side,/area/medical/medbay) +"bGn" = (/obj/structure/closet/l3closet,/turf/open/floor/plasteel/whiteblue/side{dir = 6},/area/medical/medbay) +"bGo" = (/obj/structure/table,/obj/item/weapon/hemostat,/turf/open/floor/plasteel/whiteblue,/area/medical/surgery) +"bGp" = (/obj/structure/table,/obj/item/weapon/surgicaldrill,/turf/open/floor/plasteel/whiteblue,/area/medical/surgery) +"bGq" = (/obj/structure/table,/obj/item/weapon/scalpel{pixel_y = 12},/obj/item/weapon/circular_saw,/obj/machinery/light,/turf/open/floor/plasteel/whiteblue,/area/medical/surgery) +"bGr" = (/obj/structure/table,/obj/item/weapon/cautery{pixel_x = 4},/obj/item/weapon/razor{pixel_y = 5},/turf/open/floor/plasteel/whiteblue,/area/medical/surgery) +"bGs" = (/obj/structure/table,/obj/item/weapon/retractor,/turf/open/floor/plasteel/whiteblue,/area/medical/surgery) +"bGt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"bGu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/primary/aft) +"bGv" = (/obj/machinery/camera{c_tag = "Aft Primary Hallway Atmospherics"; dir = 2; network = list("SS13"); pixel_x = 0; pixel_y = 0; start_active = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/item/device/radio/intercom{dir = 8; freerange = 1; name = "Station Intercom (Telecoms)"; pixel_x = 0; pixel_y = 26},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"bGw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"bGx" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/scrubber,/turf/open/floor/plasteel/escape{dir = 10},/area/hallway/primary/aft) +"bGy" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible,/turf/closed/wall/r_wall,/area/atmos) +"bGz" = (/obj/machinery/atmospherics/components/binary/pump{dir = 4; name = "External to Filter"; on = 1},/turf/open/floor/plasteel,/area/atmos) +"bGA" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/turf/open/floor/plasteel,/area/atmos) +"bGB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/turf/open/floor/plasteel,/area/atmos) +"bGC" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/atmos) +"bGD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/atmos) +"bGE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "Air to Distro"; on = 1},/turf/open/floor/plasteel,/area/atmos) +"bGF" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/atmos) +"bGG" = (/obj/structure/cable{icon_state = "1-8"},/turf/open/floor/plasteel,/area/atmos) +"bGH" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 6},/turf/open/floor/plasteel,/area/atmos) +"bGI" = (/obj/machinery/atmospherics/pipe/manifold/green/visible{dir = 1},/turf/open/floor/plasteel,/area/atmos) +"bGJ" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/turf/open/floor/plasteel/yellow/side{tag = "icon-yellow (EAST)"; dir = 4},/area/atmos) +"bGK" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/turf/open/floor/plating,/area/atmos) +"bGL" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/turf/open/space,/area/space) +"bGM" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 8; frequency = 1441; id = "mix_in"; pixel_y = 1},/turf/open/floor/engine/vacuum,/area/atmos) +"bGN" = (/obj/structure/cable/yellow,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/camera{c_tag = "Turbine Chamber"; dir = 4; network = list("Turbine")},/turf/open/floor/engine/vacuum,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bGO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/turf/open/floor/plating,/area/toxins/mineral_storeroom) +"bGP" = (/obj/item/stack/medical/bruise_pack,/turf/open/floor/plating,/area/maintenance/aft) +"bGQ" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/black,/area/maintenance/aft) +"bGR" = (/obj/structure/window/reinforced,/turf/open/floor/plasteel/black,/area/maintenance/aft) +"bGS" = (/obj/structure/window/reinforced,/mob/living/simple_animal/chicken{name = "Killer Cluck"},/turf/open/floor/plasteel/black,/area/maintenance/aft) +"bGT" = (/obj/machinery/door/window/eastright{base_state = "left"; icon_state = "left"; name = "Fitness Ring"},/obj/structure/window/reinforced,/obj/structure/chair/stool,/turf/open/floor/plasteel/black,/area/maintenance/aft) +"bGU" = (/obj/structure/grille/broken,/turf/open/floor/plating,/area/maintenance/aft) +"bGV" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/glass/beaker,/obj/machinery/light/small,/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/open/floor/plasteel/freezer,/area/medical/virology) +"bGW" = (/obj/structure/table/glass,/obj/item/weapon/folder/white{pixel_y = 4},/obj/item/weapon/pen/red,/turf/open/floor/plasteel/freezer,/area/medical/virology) +"bGX" = (/obj/structure/table/glass,/obj/item/weapon/folder/white{pixel_y = 4},/obj/item/weapon/pen/red,/obj/machinery/light/small,/turf/open/floor/plasteel/freezer,/area/medical/virology) +"bGY" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/glass/beaker,/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/open/floor/plasteel/freezer,/area/medical/virology) +"bGZ" = (/obj/machinery/disposal/bin,/obj/structure/sign/deathsposal{pixel_x = 0; pixel_y = -32},/obj/structure/disposalpipe/trunk,/turf/open/floor/plasteel/whitegreen/side,/area/medical/virology) +"bHa" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/open/floor/plasteel/whitegreen/side,/area/medical/virology) +"bHb" = (/turf/open/floor/plasteel/whitegreen/side{tag = "icon-whitegreen (SOUTHEAST)"; icon_state = "whitegreen"; dir = 6},/area/medical/virology) +"bHc" = (/obj/structure/closet/emcloset,/turf/open/floor/plating,/area/maintenance/aft) +"bHd" = (/obj/structure/closet/firecloset,/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/maintenance/aft) +"bHe" = (/obj/structure/chair,/turf/open/floor/plating,/area/maintenance/aft) +"bHf" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/aft) +"bHg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/aft) +"bHh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/aft) +"bHi" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/yellow/corner{dir = 8},/area/hallway/primary/aft) +"bHj" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"bHk" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"bHl" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"bHm" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/pump,/turf/open/floor/plasteel/arrival{tag = "icon-arrival (NORTHWEST)"; icon_state = "arrival"; dir = 9},/area/hallway/primary/aft) +"bHn" = (/obj/machinery/atmospherics/pipe/manifold/cyan/visible{dir = 1},/obj/machinery/meter,/turf/closed/wall/r_wall,/area/atmos) +"bHo" = (/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Air to External"; on = 1},/turf/open/floor/plasteel,/area/atmos) +"bHp" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/atmos) +"bHq" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/turf/open/floor/plasteel,/area/atmos) +"bHr" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/turf/open/floor/plasteel,/area/atmos) +"bHs" = (/obj/machinery/atmospherics/pipe/manifold/cyan/visible{initialize_directions = 11},/turf/open/floor/plasteel,/area/atmos) +"bHt" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/obj/machinery/atmospherics/components/binary/pump{dir = 0; name = "Mix to Port"; on = 0},/turf/open/floor/plasteel,/area/atmos) +"bHu" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "Pure to Mix"; on = 0},/turf/open/floor/plasteel,/area/atmos) +"bHv" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "Unfiltered to Mix"; on = 1},/turf/open/floor/plasteel,/area/atmos) +"bHw" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/turf/open/floor/plasteel/yellow/side{tag = "icon-yellow (EAST)"; dir = 4},/area/atmos) +"bHx" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 10; initialize_directions = 10},/turf/open/floor/plating,/area/atmos) +"bHy" = (/obj/structure/cable/yellow,/turf/open/floor/engine/vacuum,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bHz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/machinery/door/airlock/external{cyclelinkeddir = 1; req_access_txt = "8"; req_one_access_txt = "0"},/turf/open/floor/plating,/area/toxins/mineral_storeroom) +"bHA" = (/obj/structure/lattice,/turf/open/space,/area/toxins/mineral_storeroom) +"bHB" = (/obj/structure/chair/comfy/black{dir = 1},/turf/open/floor/plating,/area/maintenance/aft) +"bHC" = (/obj/structure/chair/stool,/turf/open/floor/plating,/area/maintenance/aft) +"bHD" = (/obj/structure/grille,/turf/open/floor/plating,/area/maintenance/aft) +"bHE" = (/obj/structure/disposalpipe/segment,/turf/closed/wall/r_wall,/area/medical/virology) +"bHF" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/aft) +"bHG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) +"bHH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plating,/area/maintenance/aft) +"bHI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/aft) +"bHJ" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plating,/area/maintenance/aft) +"bHK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/extinguisher_cabinet{pixel_x = -24},/turf/open/floor/plasteel/yellow/corner{dir = 8},/area/hallway/primary/aft) +"bHL" = (/obj/structure/chair/stool,/turf/open/floor/plasteel,/area/hallway/primary/aft) +"bHM" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/turf/open/floor/plasteel/arrival{dir = 10},/area/hallway/primary/aft) +"bHN" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 9},/turf/closed/wall/r_wall,/area/atmos) +"bHO" = (/turf/open/floor/plasteel/yellow/side,/area/atmos) +"bHP" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/yellow/side,/area/atmos) +"bHQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/yellow/side,/area/atmos) +"bHR" = (/obj/machinery/space_heater,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/camera{c_tag = "Atmospherics Monitoring"; dir = 1; network = list("SS13")},/turf/open/floor/plasteel/yellow/side,/area/atmos) +"bHS" = (/obj/machinery/space_heater,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/yellow/side,/area/atmos) +"bHT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/atmos) +"bHU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel,/area/atmos) +"bHV" = (/obj/structure/table,/obj/item/clothing/head/welding{pixel_x = -3; pixel_y = 7},/obj/item/clothing/head/welding{pixel_x = -5; pixel_y = 3},/obj/machinery/light{dir = 8},/obj/item/device/multitool{layer = 4},/turf/open/floor/plasteel/yellow/side,/area/atmos) +"bHW" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 50},/obj/item/weapon/storage/belt/utility,/obj/item/device/t_scanner,/obj/item/device/t_scanner,/obj/item/device/t_scanner,/turf/open/floor/plasteel/yellow/side,/area/atmos) +"bHX" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/stack/sheet/glass{layer = 3.1},/obj/item/stack/rods{amount = 50; layer = 3.2},/turf/open/floor/plasteel/yellow/side,/area/atmos) +"bHY" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 8},/turf/open/floor/plasteel,/area/atmos) +"bHZ" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/open/floor/plasteel,/area/atmos) +"bIa" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 1},/turf/open/floor/plasteel,/area/atmos) +"bIb" = (/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Pure to Port"},/turf/open/floor/plasteel,/area/atmos) +"bIc" = (/obj/machinery/atmospherics/pipe/manifold4w/yellow/visible,/turf/open/floor/plasteel,/area/atmos) +"bId" = (/obj/machinery/atmospherics/pipe/simple/green/visible,/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/turf/open/floor/plasteel,/area/atmos) +"bIe" = (/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "N2O Outlet Pump"; on = 0},/turf/open/floor/plasteel/yellow/side{tag = "icon-yellow (EAST)"; dir = 4},/area/atmos) +"bIf" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/cyan/visible,/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/atmos) +"bIg" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; external_pressure_bound = 0; frequency = 1441; id_tag = "n2o_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/open/floor/engine/n2o,/area/atmos) +"bIh" = (/turf/open/floor/engine/n2o,/area/atmos) +"bIi" = (/obj/structure/sign/fire{pixel_x = 0; pixel_y = 0},/turf/closed/wall/r_wall,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bIj" = (/obj/machinery/door/poddoor{id = "turbinevent"; name = "Aft Vent"},/turf/open/floor/engine/vacuum,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"bIk" = (/obj/structure/lattice/catwalk,/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/turf/open/space,/area/space) +"bIl" = (/obj/structure/sign/poster{pixel_x = 0; pixel_y = -32},/turf/open/floor/plating,/area/maintenance/aft) +"bIm" = (/obj/item/trash/chips,/turf/open/floor/plating,/area/maintenance/aft) +"bIn" = (/obj/structure/table,/obj/item/weapon/paper,/obj/item/weapon/pen,/turf/open/floor/plating,/area/maintenance/aft) +"bIo" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (NORTHEAST)"; icon_state = "intact"; dir = 5},/turf/open/floor/plating,/area/maintenance/aft) +"bIp" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (WEST)"; icon_state = "intact"; dir = 8},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/aft) +"bIq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (WEST)"; icon_state = "intact"; dir = 8},/turf/open/floor/plating,/area/maintenance/aft) +"bIr" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/cyan/hidden,/turf/open/floor/plating,/area/maintenance/aft) +"bIs" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{tag = "icon-manifold (NORTH)"; icon_state = "manifold"; dir = 1},/turf/open/floor/plating,/area/maintenance/aft) +"bIt" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/open/floor/plating,/area/maintenance/aft) +"bIu" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/cyan/hidden,/mob/living/simple_animal/mouse/gray,/turf/open/floor/plating,/area/maintenance/aft) +"bIv" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/aft) +"bIw" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/turf/open/floor/plating,/area/maintenance/aft) +"bIx" = (/turf/closed/wall/r_wall,/area/engine/gravity_generator) +"bIy" = (/obj/structure/table,/obj/item/trash/chips,/turf/open/floor/plating,/area/maintenance/aft) +"bIz" = (/turf/closed/wall,/area/storage/tech) +"bIA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/storage/tech) +"bIB" = (/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/plasteel/yellow/corner{dir = 8},/area/hallway/primary/aft) +"bIC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/hallway/primary/aft) +"bID" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/lemon_lime,/turf/open/floor/plasteel,/area/hallway/primary/aft) +"bIE" = (/obj/structure/table,/obj/item/clothing/gloves/color/fyellow,/obj/item/weapon/wrench,/turf/open/floor/plasteel,/area/hallway/primary/aft) +"bIF" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical,/turf/open/floor/plasteel,/area/hallway/primary/aft) +"bIG" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/yellow/corner,/area/hallway/primary/aft) +"bIH" = (/obj/machinery/door/firedoor/heavy,/obj/machinery/door/airlock/glass_atmos{name = "Atmospherics Monitoring"; req_access_txt = "24"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/atmos) +"bII" = (/turf/closed/wall,/area/atmos) +"bIJ" = (/obj/machinery/atmospherics/components/binary/pump{dir = 0; name = "Waste In"; on = 1},/turf/open/floor/plasteel,/area/atmos) +"bIK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/atmos) +"bIL" = (/obj/machinery/atmospherics/components/binary/pump{dir = 0; name = "Air to Port"; on = 0},/obj/machinery/light{dir = 8},/turf/open/floor/plasteel,/area/atmos) +"bIM" = (/obj/machinery/atmospherics/components/binary/pump{dir = 0; name = "Mix to Port"; on = 0},/turf/open/floor/plasteel,/area/atmos) +"bIN" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible,/turf/open/floor/plasteel,/area/atmos) +"bIO" = (/obj/machinery/atmospherics/pipe/simple/green/visible,/turf/open/floor/plasteel,/area/atmos) +"bIP" = (/obj/machinery/computer/atmos_control/tank{frequency = 1441; input_tag = "n2o_in"; name = "Nitrous Oxide Supply Control"; output_tag = "n2o_out"; sensors = list("n2o_sensor" = "Tank")},/turf/open/floor/plasteel/yellow/side{tag = "icon-yellow (EAST)"; dir = 4},/area/atmos) +"bIQ" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/cyan/visible,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/atmos) +"bIR" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "n2o_sensor"},/turf/open/floor/engine/n2o,/area/atmos) +"bIS" = (/obj/machinery/portable_atmospherics/canister/nitrous_oxide,/turf/open/floor/engine/n2o,/area/atmos) +"bIT" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/engine/n2o,/area/atmos) +"bIU" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/maintenance/aft) +"bIV" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/aft) +"bIW" = (/obj/structure/closet/emcloset,/obj/effect/decal/cleanable/deadcockroach,/turf/open/floor/plating,/area/maintenance/aft) +"bIX" = (/obj/structure/closet/firecloset,/turf/open/floor/plating,/area/maintenance/aft) +"bIY" = (/obj/structure/rack,/obj/item/weapon/book/manual/detective,/obj/item/clothing/head/that,/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/open/floor/plating,/area/maintenance/aft) +"bIZ" = (/obj/structure/girder,/turf/closed/wall,/area/maintenance/aft) +"bJa" = (/obj/item/trash/raisins,/turf/open/floor/plating,/area/maintenance/aft) +"bJb" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating,/area/maintenance/aft) +"bJc" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/aft) +"bJd" = (/obj/structure/cable{icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/aft) +"bJe" = (/turf/open/floor/plasteel/darkwarning/corner,/area/engine/gravity_generator) +"bJf" = (/turf/open/floor/plasteel/darkwarning,/area/engine/gravity_generator) +"bJg" = (/obj/machinery/camera{c_tag = "Gravity Generator"; dir = 2; network = list("SS13")},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/darkwarning,/area/engine/gravity_generator) +"bJh" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/darkwarning,/area/engine/gravity_generator) +"bJi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/darkwarning/corner{tag = "icon-black_warn_corner (NORTH)"; icon_state = "black_warn_corner"; dir = 1},/area/engine/gravity_generator) +"bJj" = (/turf/closed/wall/r_wall,/area/storage/tech) +"bJk" = (/obj/structure/table,/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/item/device/assembly/flash/handheld,/obj/item/device/assembly/flash/handheld,/obj/effect/decal/cleanable/cobweb,/turf/open/floor/plasteel/black,/area/storage/tech) +"bJl" = (/obj/structure/table,/obj/item/device/aicard,/obj/item/weapon/aiModule/reset,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/airalarm{dir = 2; pixel_y = 22},/turf/open/floor/plasteel/black,/area/storage/tech) +"bJm" = (/obj/structure/table,/obj/machinery/cell_charger{pixel_y = 5},/obj/item/weapon/stock_parts/cell/high/plus,/turf/open/floor/plasteel/black,/area/storage/tech) +"bJn" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/computer/pandemic{pixel_x = -3; pixel_y = 3},/obj/item/weapon/circuitboard/computer/rdconsole,/obj/item/weapon/circuitboard/machine/rdserver{pixel_x = 3; pixel_y = -3},/obj/item/weapon/circuitboard/machine/destructive_analyzer,/obj/item/weapon/circuitboard/machine/protolathe,/obj/item/weapon/circuitboard/computer/aifixer,/obj/item/weapon/circuitboard/computer/teleporter,/obj/item/weapon/circuitboard/machine/circuit_imprinter,/obj/item/weapon/circuitboard/machine/mechfab,/obj/structure/sign/poster{pixel_y = 32},/turf/open/floor/plasteel/black,/area/storage/tech) +"bJo" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/computer/mining,/obj/item/weapon/circuitboard/machine/autolathe{pixel_x = 3; pixel_y = -3},/obj/item/weapon/circuitboard/computer/arcade/battle,/obj/machinery/light{dir = 1},/obj/machinery/camera{c_tag = "Tech Storage"; dir = 2; network = list("SS13")},/turf/open/floor/plasteel/black,/area/storage/tech) +"bJp" = (/obj/structure/rack,/obj/item/weapon/circuitboard/machine/telecomms/processor,/obj/item/weapon/circuitboard/machine/telecomms/receiver,/obj/item/weapon/circuitboard/machine/telecomms/server,/obj/item/weapon/circuitboard/machine/telecomms/bus,/obj/item/weapon/circuitboard/machine/telecomms/broadcaster,/obj/item/weapon/circuitboard/computer/message_monitor{pixel_y = -5},/turf/open/floor/plasteel/black,/area/storage/tech) +"bJq" = (/obj/structure/rack,/obj/item/weapon/electronics/airalarm,/obj/item/weapon/electronics/airlock,/obj/item/weapon/electronics/apc,/obj/item/weapon/electronics/firealarm,/obj/item/weapon/electronics/firelock,/obj/item/weapon/electronics/tracker,/obj/structure/sign/poster{pixel_y = 32},/turf/open/floor/plasteel/black,/area/storage/tech) +"bJr" = (/obj/machinery/computer/arcade,/turf/open/floor/plasteel/black,/area/storage/tech) +"bJs" = (/obj/machinery/vending/assist,/turf/open/floor/plasteel/black,/area/storage/tech) +"bJt" = (/obj/machinery/power/apc{name = "Aft Hall APC"; dir = 8; pixel_x = -25; pixel_y = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/yellow/corner{dir = 8},/area/hallway/primary/aft) +"bJu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=Bar2"; location = "Eng"},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"bJv" = (/turf/open/floor/plasteel/yellow/corner,/area/hallway/primary/aft) +"bJw" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/heavy,/obj/machinery/door/window/northleft{dir = 4; icon_state = "left"; name = "Atmospherics Desk"; req_access_txt = "24"},/obj/machinery/door/poddoor/preopen{id = "atmos"; layer = 2.9; name = "atmos blast door"},/turf/open/floor/plasteel/delivery{name = "floor"},/area/atmos) +"bJx" = (/obj/structure/chair/office/dark{dir = 8},/obj/effect/landmark/start{name = "Atmospheric Technician"},/turf/open/floor/plasteel,/area/atmos) +"bJy" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel,/area/atmos) +"bJz" = (/obj/structure/tank_dispenser,/turf/open/floor/plasteel,/area/atmos) +"bJA" = (/obj/machinery/pipedispenser,/turf/open/floor/plasteel,/area/atmos) +"bJB" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/turf/open/floor/plasteel,/area/atmos) +"bJC" = (/obj/structure/closet/secure_closet/atmospherics,/turf/open/floor/plasteel/warning{dir = 8},/area/atmos) +"bJD" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/canister,/turf/open/floor/plasteel/bot{dir = 2},/area/atmos) +"bJE" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel,/area/atmos) +"bJF" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 8},/turf/open/floor/plasteel/bot{dir = 2},/area/atmos) +"bJG" = (/obj/machinery/atmospherics/components/trinary/filter{dir = 1; filter_type = "n2o"; on = 1},/turf/open/floor/plasteel,/area/atmos) +"bJH" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/cyan/visible,/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/turf/open/floor/plating,/area/atmos) +"bJI" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 8; frequency = 1441; id = "n2o_in"; pixel_y = 1},/turf/open/floor/engine/n2o,/area/atmos) +"bJJ" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 4},/turf/open/floor/plating/airless,/area/space/nearstation) +"bJK" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 9},/turf/open/space,/area/space) +"bJL" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/aft) +"bJM" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft) +"bJN" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/closed/wall,/area/maintenance/aft) +"bJO" = (/turf/open/floor/plasteel/darkwarning{dir = 4},/area/engine/gravity_generator) +"bJP" = (/turf/open/floor/plasteel/vault{dir = 1},/area/engine/gravity_generator) +"bJQ" = (/turf/open/floor/plasteel/vault{dir = 8},/area/engine/gravity_generator) +"bJR" = (/turf/open/floor/plasteel/vault{dir = 4},/area/engine/gravity_generator) +"bJS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/darkwarning{dir = 8},/area/engine/gravity_generator) +"bJT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/engine/gravity_generator) +"bJU" = (/obj/structure/closet/radiation,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/obj/machinery/airalarm{dir = 2; pixel_y = 22},/turf/open/floor/plasteel/warning{dir = 9},/area/engine/gravity_generator) +"bJV" = (/obj/structure/closet/radiation,/obj/machinery/camera{c_tag = "Gravity Generator Foyer"; dir = 2; network = list("SS13")},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/warning{tag = "icon-warning (NORTHEAST)"; dir = 5},/area/engine/gravity_generator) +"bJW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/storage/tech) +"bJX" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = -32; pixel_y = 0},/turf/open/floor/plasteel/black,/area/storage/tech) +"bJY" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/obj/structure/chair/office/dark{dir = 1},/turf/open/floor/plasteel/black,/area/storage/tech) +"bJZ" = (/turf/open/floor/plasteel/black,/area/storage/tech) +"bKa" = (/obj/machinery/light_switch{pixel_x = 25},/turf/open/floor/plasteel/black,/area/storage/tech) +"bKb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"bKc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"bKd" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"bKe" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/turf/open/floor/plasteel/yellow/corner,/area/hallway/primary/aft) +"bKf" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/heavy,/obj/machinery/door/window/northleft{dir = 4; icon_state = "left"; name = "Atmospherics Desk"; req_access_txt = "24"},/obj/machinery/door/poddoor/preopen{id = "atmos"; layer = 2.9; name = "atmos blast door"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/delivery{name = "floor"},/area/atmos) +"bKg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/chair/office/dark{dir = 8},/obj/effect/landmark/start{name = "Atmospheric Technician"},/turf/open/floor/plasteel,/area/atmos) +"bKh" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel,/area/atmos) +"bKi" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/mask/gas{pixel_x = 3; pixel_y = 3},/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas{pixel_x = -3; pixel_y = -3},/obj/machinery/requests_console{department = "Atmospherics"; departmentType = 4; name = "Atmos RC"; pixel_x = 30; pixel_y = 0},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel,/area/atmos) +"bKj" = (/obj/machinery/pipedispenser/disposal,/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/camera{c_tag = "Atmospherics Central"; dir = 4; network = list("SS13")},/turf/open/floor/plasteel,/area/atmos) +"bKk" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel,/area/atmos) +"bKl" = (/obj/machinery/suit_storage_unit/atmos,/turf/open/floor/plasteel/warning{dir = 8},/area/atmos) +"bKm" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 4; initialize_directions = 11},/obj/machinery/meter,/turf/open/floor/plasteel,/area/atmos) +"bKn" = (/obj/machinery/holopad,/turf/open/floor/plasteel,/area/atmos) +"bKo" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 8},/obj/machinery/meter,/turf/open/floor/plasteel,/area/atmos) +"bKp" = (/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/yellow/side{tag = "icon-yellow (EAST)"; dir = 4},/area/atmos) +"bKq" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (SOUTHEAST)"; icon_state = "intact"; dir = 6},/obj/item/weapon/wrench,/turf/open/floor/plating,/area/maintenance/aft) +"bKr" = (/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{tag = "icon-manifold (EAST)"; icon_state = "manifold"; dir = 4},/obj/machinery/meter,/turf/open/floor/plating,/area/maintenance/aft) +"bKs" = (/obj/item/weapon/broken_bottle,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft) +"bKt" = (/obj/effect/decal/cleanable/ash,/turf/open/floor/plating,/area/maintenance/aft) +"bKu" = (/obj/structure/closet,/obj/item/weapon/restraints/handcuffs/cable,/turf/open/floor/plating,/area/maintenance/aft) +"bKv" = (/turf/open/floor/plasteel/black,/area/engine/gravity_generator) +"bKw" = (/turf/open/floor/plasteel/darkwarning{dir = 8},/area/engine/gravity_generator) +"bKx" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/engineering{name = "Gravity Generator"; req_access_txt = "11"},/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/gravity_generator) +"bKy" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/warning{dir = 8},/area/engine/gravity_generator) +"bKz" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/warning{tag = "icon-warning (EAST)"; dir = 4},/area/engine/gravity_generator) +"bKA" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/engineering{name = "Gravity Generator"; req_access_txt = "11"},/turf/open/floor/plasteel/delivery{name = "floor"},/area/storage/tech) +"bKB" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel/black,/area/storage/tech) +"bKC" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/storage/tech) +"bKD" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/computer/cloning{pixel_x = 0},/obj/item/weapon/circuitboard/computer/med_data{pixel_x = 3; pixel_y = -3},/obj/item/weapon/circuitboard/machine/clonescanner,/obj/item/weapon/circuitboard/machine/clonepod,/obj/item/weapon/circuitboard/computer/scan_consolenew,/turf/open/floor/plasteel/black,/area/storage/tech) +"bKE" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/computer/secure_data{pixel_x = -2; pixel_y = 2},/obj/item/weapon/circuitboard/computer/security{pixel_x = 1; pixel_y = -1},/turf/open/floor/plasteel/black,/area/storage/tech) +"bKF" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/computer/powermonitor{pixel_x = -2; pixel_y = 2},/obj/item/weapon/circuitboard/computer/stationalert{pixel_x = 1; pixel_y = -1},/obj/item/weapon/circuitboard/computer/atmos_alert{pixel_x = 3; pixel_y = -3},/turf/open/floor/plasteel/black,/area/storage/tech) +"bKG" = (/obj/machinery/holopad,/turf/open/floor/plasteel/black,/area/storage/tech) +"bKH" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/black,/area/storage/tech) +"bKI" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel/black,/area/storage/tech) +"bKJ" = (/obj/machinery/door/airlock/engineering{name = "Tech Storage"; req_access_txt = "23"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/storage/tech) +"bKK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel/yellow/corner{dir = 8},/area/hallway/primary/aft) +"bKL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"bKM" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"bKN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"bKO" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"bKP" = (/obj/structure/plasticflaps{opacity = 1},/turf/open/floor/plasteel/delivery{name = "floor"},/area/atmos) +"bKQ" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=4"; freq = 1400; location = "Atmospherics"},/turf/open/floor/plasteel/loadingarea{dir = 4},/area/atmos) +"bKR" = (/obj/structure/disposalpipe/sortjunction{dir = 2; icon_state = "pipe-j2s"; sortType = 6},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/atmos) +"bKS" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/plasteel,/area/atmos) +"bKT" = (/obj/machinery/pipedispenser/disposal/transit_tube,/turf/open/floor/plasteel,/area/atmos) +"bKU" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 4; initialize_directions = 11},/obj/item/weapon/wrench,/turf/open/floor/plasteel,/area/atmos) +"bKV" = (/obj/machinery/atmospherics/pipe/manifold/yellow/visible{dir = 8},/turf/open/floor/plasteel,/area/atmos) +"bKW" = (/obj/machinery/camera{c_tag = "Atmospherics East"; dir = 8; network = list("SS13")},/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Plasma Outlet Pump"; on = 0},/turf/open/floor/plasteel/yellow/side{tag = "icon-yellow (EAST)"; dir = 4},/area/atmos) +"bKX" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/cyan/visible,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/turf/open/floor/plating,/area/atmos) +"bKY" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; external_pressure_bound = 0; frequency = 1441; id_tag = "tox_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/open/floor/engine/plasma,/area/atmos) +"bKZ" = (/turf/open/floor/engine/plasma,/area/atmos) +"bLa" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/engine/plasma,/area/atmos) +"bLb" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/aft) +"bLc" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) +"bLd" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/aft) +"bLe" = (/obj/machinery/door/airlock/atmos{name = "Atmospherics Maintenance"; req_access_txt = "12;24"},/turf/open/floor/plating,/area/maintenance/aft) +"bLf" = (/obj/machinery/atmospherics/components/binary/valve,/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plating,/area/maintenance/aft) +"bLg" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "Air Out"; on = 1},/turf/open/floor/plating,/area/maintenance/aft) +"bLh" = (/obj/item/weapon/picket_sign,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft) +"bLi" = (/obj/structure/bonfire,/turf/open/floor/plating,/area/maintenance/aft) +"bLj" = (/obj/structure/closet,/obj/item/weapon/cigbutt/cigarbutt,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft) +"bLk" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/aft) +"bLl" = (/obj/machinery/gravity_generator/main/station,/turf/open/floor/plasteel/vault{dir = 8},/area/engine/gravity_generator) +"bLm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel/darkwarning{dir = 8},/area/engine/gravity_generator) +"bLn" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall/r_wall,/area/engine/gravity_generator) +"bLo" = (/obj/structure/chair/office/light,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 10},/area/engine/gravity_generator) +"bLp" = (/obj/machinery/power/terminal,/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/warning{dir = 6},/area/engine/gravity_generator) +"bLq" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall/r_wall,/area/storage/tech) +"bLr" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = -32; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/storage/tech) +"bLs" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/device/radio/beacon,/turf/open/floor/plasteel/black,/area/storage/tech) +"bLt" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (NORTH)"; dir = 1},/turf/open/floor/plasteel/black,/area/storage/tech) +"bLu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/storage/tech) +"bLv" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/black,/area/storage/tech) +"bLw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/plasteel/black,/area/storage/tech) +"bLx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/yellow/corner,/area/hallway/primary/aft) +"bLy" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/yellow/corner,/area/hallway/primary/aft) +"bLz" = (/obj/machinery/camera{c_tag = "Aft Primary Hallway Engineering"; dir = 1; network = list("SS13"); pixel_x = 0; pixel_y = 0; start_active = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/yellow/corner,/area/hallway/primary/aft) +"bLA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/yellow/corner,/area/hallway/primary/aft) +"bLB" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-02"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/yellow/corner,/area/hallway/primary/aft) +"bLC" = (/obj/machinery/door/firedoor/heavy,/obj/machinery/door/airlock/glass_atmos{name = "Atmospherics Monitoring"; req_access_txt = "24"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/atmos) +"bLD" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/components/binary/pump{dir = 0; name = "Port to Filter"; on = 0},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/open/floor/plasteel,/area/atmos) +"bLE" = (/obj/item/device/radio/beacon,/turf/open/floor/plasteel,/area/atmos) +"bLF" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 8},/obj/structure/chair/stool,/turf/open/floor/plasteel,/area/atmos) +"bLG" = (/obj/machinery/atmospherics/components/unary/thermomachine/heater{dir = 8},/turf/open/floor/plasteel,/area/atmos) +"bLH" = (/obj/machinery/computer/atmos_control/tank{frequency = 1441; input_tag = "tox_in"; name = "Plasma Supply Control"; output_tag = "tox_out"; sensors = list("tox_sensor" = "Tank")},/turf/open/floor/plasteel/yellow/side{tag = "icon-yellow (EAST)"; dir = 4},/area/atmos) +"bLI" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "tox_sensor"},/turf/open/floor/engine/plasma,/area/atmos) +"bLJ" = (/obj/machinery/portable_atmospherics/canister/toxins,/turf/open/floor/engine/plasma,/area/atmos) +"bLK" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/engine/plasma,/area/atmos) +"bLL" = (/obj/structure/disposalpipe/trunk{dir = 4},/obj/structure/disposaloutlet{dir = 8},/turf/open/floor/plating/airless,/area/space) +"bLM" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating/airless,/area/maintenance/aft) +"bLN" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/chair/stool,/turf/open/floor/plating,/area/maintenance/aft) +"bLO" = (/obj/item/stack/sheet/cardboard{amount = 14},/obj/item/weapon/vending_refill/cola,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/aft) +"bLP" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 1; name = "Connector Port (Air Supply)"},/obj/machinery/portable_atmospherics/canister/nitrous_oxide,/turf/open/floor/plating,/area/maintenance/aft) +"bLQ" = (/obj/structure/grille/broken,/obj/structure/piano,/turf/open/floor/plating,/area/maintenance/aft) +"bLR" = (/obj/item/weapon/reagent_containers/food/snacks/beans,/turf/open/floor/plating,/area/maintenance/aft) +"bLS" = (/obj/structure/closet,/obj/item/weapon/shard,/obj/item/stack/spacecash/c10,/turf/open/floor/plating,/area/maintenance/aft) +"bLT" = (/obj/machinery/space_heater,/turf/open/floor/plating,/area/maintenance/aft) +"bLU" = (/turf/open/floor/plasteel/darkwarning/corner{tag = "icon-black_warn_corner (WEST)"; icon_state = "black_warn_corner"; dir = 8},/area/engine/gravity_generator) +"bLV" = (/turf/open/floor/plasteel/darkwarning{dir = 1},/area/engine/gravity_generator) +"bLW" = (/obj/machinery/light,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel/darkwarning{dir = 1},/area/engine/gravity_generator) +"bLX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/darkwarning{dir = 1},/area/engine/gravity_generator) +"bLY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/plasteel/darkwarning/corner{tag = "icon-black_warn_corner (EAST)"; icon_state = "black_warn_corner"; dir = 4},/area/engine/gravity_generator) +"bLZ" = (/obj/machinery/power/apc{dir = 8; name = "Gravity Generator APC"; pixel_x = -25; pixel_y = 1},/obj/structure/table,/obj/item/weapon/paper/gravity_gen{layer = 3},/obj/item/weapon/pen/blue,/obj/machinery/power/terminal{dir = 8},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/light,/turf/open/floor/plating/warnplate{dir = 1},/area/engine/gravity_generator) +"bMa" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/smes{charge = 5e+006},/turf/open/floor/plating/warnplate{dir = 1},/area/engine/gravity_generator) +"bMb" = (/obj/structure/statue/gold/ce{anchored = 1},/turf/open/floor/plasteel/black,/area/storage/tech) +"bMc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/storage/tech) +"bMd" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/closet/crate/engineering/electrical,/obj/item/stack/cable_coil,/obj/item/stack/cable_coil,/obj/item/weapon/electronics/apc,/obj/item/weapon/electronics/airalarm,/obj/item/weapon/electronics/airlock,/turf/open/floor/plasteel/black,/area/storage/tech) +"bMe" = (/obj/structure/rack,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/treatment,/obj/item/weapon/stock_parts/subspace/treatment,/obj/item/weapon/stock_parts/subspace/transmitter,/obj/item/weapon/stock_parts/subspace/transmitter,/turf/open/floor/plasteel/black,/area/storage/tech) +"bMf" = (/obj/structure/rack,/obj/item/weapon/stock_parts/subspace/ansible,/obj/item/weapon/stock_parts/subspace/ansible,/obj/item/weapon/stock_parts/subspace/crystal,/obj/item/weapon/stock_parts/subspace/crystal,/obj/machinery/light,/turf/open/floor/plasteel/black,/area/storage/tech) +"bMg" = (/obj/structure/rack,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/item/weapon/stock_parts/subspace/analyzer,/obj/item/weapon/stock_parts/subspace/analyzer,/turf/open/floor/plasteel/black,/area/storage/tech) +"bMh" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/toolbox/electrical{pixel_x = 2; pixel_y = 4},/obj/item/clothing/gloves/color/yellow,/obj/item/device/t_scanner,/turf/open/floor/plasteel/black,/area/storage/tech) +"bMi" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/toolbox/electrical{pixel_x = 2; pixel_y = 4},/obj/item/device/multitool,/obj/item/clothing/glasses/meson,/obj/machinery/requests_console{department = "Tech storage"; pixel_x = 0; pixel_y = -32},/turf/open/floor/plasteel/black,/area/storage/tech) +"bMj" = (/obj/structure/closet/crate{name = "solar pack crate"},/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/weapon/circuitboard/computer/solar_control,/obj/item/weapon/electronics/tracker,/obj/item/weapon/paper/solar,/obj/machinery/power/apc{dir = 2; name = "Tech Storage APC"; pixel_x = 0; pixel_y = -24},/obj/structure/cable,/turf/open/floor/plasteel/black,/area/storage/tech) +"bMk" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/checkpoint/engineering) +"bMl" = (/turf/closed/wall,/area/security/checkpoint/engineering) +"bMm" = (/turf/closed/wall,/area/engine/engineering) +"bMn" = (/obj/machinery/door/airlock/engineering{cyclelinkeddir = 2; name = "Engineering"; req_one_access_txt = "10;24"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/engine/engineering) +"bMo" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/engine/engineering) +"bMp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 6},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/yellow/side{dir = 1},/area/atmos) +"bMq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/atmos) +"bMr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/obj/structure/sign/atmosplaque{pixel_y = 32},/obj/machinery/light{dir = 1},/obj/machinery/camera{c_tag = "Atmospherics Entrance"; dir = 2; network = list("SS13")},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/atmos) +"bMs" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/obj/machinery/firealarm{dir = 1; pixel_y = 29},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/atmos) +"bMt" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible,/turf/open/floor/plasteel,/area/atmos) +"bMu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = 30; pixel_y = 26},/turf/open/floor/plasteel,/area/atmos) +"bMv" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/obj/structure/closet/wardrobe/atmospherics_yellow,/turf/open/floor/plasteel/yellow/side{dir = 1},/area/atmos) +"bMw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/obj/structure/reagent_dispensers/watertank/high,/obj/structure/fireaxecabinet{pixel_y = 32},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/atmos) +"bMx" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/obj/structure/reagent_dispensers/fueltank,/obj/machinery/camera{c_tag = "Atmospherics Mixing"; dir = 2; network = list("SS13")},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/atmos) +"bMy" = (/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Port to Filter"; on = 0},/turf/open/floor/plasteel,/area/atmos) +"bMz" = (/obj/machinery/atmospherics/pipe/manifold/general/visible,/obj/item/weapon/cigbutt,/turf/open/floor/plasteel,/area/atmos) +"bMA" = (/obj/machinery/atmospherics/components/unary/thermomachine/freezer{dir = 8},/turf/open/floor/plasteel,/area/atmos) +"bMB" = (/obj/machinery/atmospherics/components/trinary/filter{dir = 1; filter_type = "plasma"; on = 1},/turf/open/floor/plasteel,/area/atmos) +"bMC" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/cyan/visible,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/turf/open/floor/plating,/area/atmos) +"bMD" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 8; frequency = 1441; id = "tox_in"; pixel_y = 1},/turf/open/floor/engine/plasma,/area/atmos) +"bME" = (/obj/structure/table,/obj/item/weapon/storage/box/mousetraps,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft) +"bMF" = (/obj/structure/table,/obj/item/stack/cable_coil,/obj/item/weapon/extinguisher,/turf/open/floor/plating,/area/maintenance/aft) +"bMG" = (/turf/open/floor/plating{broken = 1; icon_state = "platingdmg3"},/area/maintenance/aft) +"bMH" = (/obj/item/clothing/head/welding,/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/aft) +"bMI" = (/obj/item/weapon/cigbutt/cigarbutt,/turf/open/floor/plating,/area/maintenance/aft) +"bMJ" = (/obj/structure/sign/securearea,/turf/closed/wall/r_wall,/area/storage/tech) +"bMK" = (/obj/machinery/door/airlock/highsecurity{name = "Secure Tech Storage"; req_access_txt = "19;23"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/storage/tech) +"bML" = (/obj/structure/sign/securearea,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall/r_wall,/area/storage/tech) +"bMM" = (/obj/structure/table,/obj/item/weapon/book/manual/wiki/security_space_law,/obj/machinery/camera{c_tag = "Engineering Security Post"; dir = 4; network = list("SS13")},/obj/machinery/airalarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/open/floor/plasteel/red/side{dir = 9},/area/security/checkpoint/engineering) +"bMN" = (/obj/machinery/computer/secure_data,/turf/open/floor/plasteel/red/side{dir = 1},/area/security/checkpoint/engineering) +"bMO" = (/obj/machinery/computer/secure_data,/turf/open/floor/plasteel/red/side{dir = 5},/area/security/checkpoint/engineering) +"bMP" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/warning{dir = 9},/area/engine/engineering) +"bMQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/warning{dir = 1},/area/engine/engineering) +"bMR" = (/obj/machinery/light{dir = 1},/obj/machinery/camera{c_tag = "Engineering Access"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 26},/turf/open/floor/plasteel/warning{dir = 5},/area/engine/engineering) +"bMS" = (/obj/machinery/door/poddoor/preopen{id = "atmos"; name = "atmos blast door"},/obj/machinery/door/firedoor/heavy,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/engineering) +"bMT" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/turf/open/floor/plasteel,/area/atmos) +"bMU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel,/area/atmos) +"bMV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/atmos) +"bMW" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/atmos) +"bMX" = (/turf/open/floor/plasteel/yellow/side{tag = "icon-yellow (EAST)"; dir = 4},/area/atmos) +"bMY" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/cyan/visible,/turf/open/floor/plating,/area/atmos) +"bMZ" = (/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 24; id = "syndicate_southmaint"; name = "south maintenance airlock"; turf_type = /turf/open/space; width = 18},/turf/open/space,/area/space) +"bNa" = (/obj/machinery/light/small{brightness = 3; dir = 8},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating{broken = 1; icon_state = "platingdmg3"},/area/maintenance/aft) +"bNb" = (/turf/open/floor/plating{icon_state = "platingdmg1"},/area/maintenance/aft) +"bNc" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/aft) +"bNd" = (/obj/structure/table/wood,/obj/item/weapon/clipboard,/obj/item/weapon/paper,/obj/item/weapon/pen,/obj/item/clothing/head/fedora,/turf/open/floor/plating,/area/maintenance/aft) +"bNe" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp,/turf/open/floor/plating,/area/maintenance/aft) +"bNf" = (/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/aft) +"bNg" = (/obj/structure/closet{name = "Clue Closet"},/obj/item/weapon/kitchen/knife,/obj/item/candle,/obj/item/pipe,/obj/item/weapon/gun/projectile/revolver/russian,/obj/item/stack/cable_coil/white,/obj/item/weapon/wrench,/obj/effect/decal/cleanable/cobweb{icon_state = "cobweb2"},/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/aft) +"bNh" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating,/area/maintenance/aft) +"bNi" = (/obj/item/weapon/circuitboard/computer/libraryconsole,/turf/open/floor/plating,/area/maintenance/aft) +"bNj" = (/turf/closed/wall/r_wall,/area/engine/chiefs_office) +"bNk" = (/obj/item/weapon/cartridge/engineering{pixel_x = 4; pixel_y = 5},/obj/item/weapon/cartridge/engineering{pixel_x = -3; pixel_y = 2},/obj/item/weapon/cartridge/engineering{pixel_x = 3},/obj/structure/table/reinforced,/obj/item/weapon/cartridge/atmos,/obj/machinery/requests_console{announcementConsole = 1; department = "Chief Engineer's Desk"; departmentType = 3; name = "Chief Engineer RC"; pixel_x = -32; pixel_y = 0},/turf/open/floor/plasteel/yellow/side{dir = 9},/area/engine/chiefs_office) +"bNl" = (/obj/structure/filingcabinet/chestdrawer,/obj/machinery/light{dir = 1},/obj/machinery/camera{c_tag = "Chief Engineer's Office"; dir = 2; network = list("SS13")},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/engine/chiefs_office) +"bNm" = (/obj/machinery/computer/atmos_alert,/obj/machinery/airalarm{dir = 2; pixel_y = 22},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/engine/chiefs_office) +"bNn" = (/obj/machinery/computer/station_alert,/obj/machinery/computer/security/telescreen/entertainment{pixel_y = 32},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/engine/chiefs_office) +"bNo" = (/obj/machinery/computer/card/minor/ce,/turf/open/floor/plasteel/yellow/side{dir = 5},/area/engine/chiefs_office) +"bNp" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-07"; name = "Photosynthetic Potted plant"; pixel_y = 10},/turf/open/floor/plasteel/black,/area/storage/tech) +"bNq" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-07"; name = "Photosynthetic Potted plant"; pixel_y = 10},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/storage/tech) +"bNr" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/closed/wall,/area/engine/engine_smes) +"bNs" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/smes/engineering,/turf/open/floor/plasteel/yellow/side{dir = 1},/area/engine/engine_smes) +"bNt" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/smes/engineering,/obj/machinery/camera{c_tag = "Engineering Power Storage"; dir = 2; network = list("SS13")},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/engine/engine_smes) +"bNu" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/smes/engineering,/turf/open/floor/plasteel/yellow/side{dir = 1},/area/engine/engine_smes) +"bNv" = (/turf/closed/wall,/area/engine/engine_smes) +"bNw" = (/turf/closed/wall/r_wall,/area/engine/engine_smes) +"bNx" = (/obj/structure/table,/obj/item/weapon/pen,/obj/machinery/light{dir = 8},/obj/machinery/requests_console{department = "Security"; departmentType = 5; pixel_x = -32; pixel_y = 0},/obj/item/weapon/paper_bin{layer = 2.9; pixel_x = 0; pixel_y = 0; tag = "every single paper bin is edited to this"},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/checkpoint/engineering) +"bNy" = (/obj/structure/chair/office/dark{dir = 1},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/effect/landmark/start/depsec/engineering,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/security/checkpoint/engineering) +"bNz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/checkpoint/engineering) +"bNA" = (/obj/machinery/door/airlock/glass_security{name = "Engineering Security Post"; req_access_txt = "63"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red,/area/security/checkpoint/engineering) +"bNB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/warning{dir = 8},/area/engine/engineering) +"bNC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/goonplaque,/area/engine/engineering) +"bND" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/warning{tag = "icon-warning (EAST)"; dir = 4},/area/engine/engineering) +"bNE" = (/obj/machinery/door/poddoor/preopen{id = "atmos"; name = "atmos blast door"},/obj/machinery/door/firedoor/heavy,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/engineering) +"bNF" = (/obj/machinery/door/firedoor/heavy,/obj/machinery/door/airlock/atmos{name = "Atmospherics"; req_access_txt = "24"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 4},/area/atmos) +"bNG" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/atmos) +"bNH" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/turf/open/floor/plasteel,/area/atmos) +"bNI" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/atmos) +"bNJ" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 6},/turf/open/floor/plasteel,/area/atmos) +"bNK" = (/obj/machinery/atmospherics/pipe/manifold/yellow/visible{dir = 1},/turf/open/floor/plasteel,/area/atmos) +"bNL" = (/obj/machinery/atmospherics/pipe/manifold/yellow/visible,/turf/open/floor/plasteel,/area/atmos) +"bNM" = (/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "CO2 Outlet Pump"; on = 0},/turf/open/floor/plasteel/yellow/side{tag = "icon-yellow (EAST)"; dir = 4},/area/atmos) +"bNN" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/cyan/visible,/turf/open/floor/plating,/area/atmos) +"bNO" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; external_pressure_bound = 0; frequency = 1441; id_tag = "co2_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/open/floor/engine/co2,/area/atmos) +"bNP" = (/turf/open/floor/engine/co2,/area/atmos) +"bNQ" = (/turf/open/floor/plating/airless,/area/space) +"bNR" = (/obj/structure/mopbucket,/obj/item/weapon/mop,/turf/open/floor/plating,/area/maintenance/aft) +"bNS" = (/obj/structure/grille/broken,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/maintenance/aft) +"bNT" = (/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/aft) +"bNU" = (/obj/structure/grille/broken,/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/aft) +"bNV" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating{burnt = 1; icon_state = "panelscorched"},/area/maintenance/aft) +"bNW" = (/obj/item/weapon/cigbutt/cigarbutt,/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/aft) +"bNX" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/light/small{dir = 4},/turf/open/floor/plating{broken = 1; icon_state = "platingdmg1"},/area/maintenance/aft) +"bNY" = (/obj/structure/chair{dir = 1},/turf/open/floor/plating,/area/maintenance/aft) +"bNZ" = (/obj/structure/closet/lawcloset,/obj/item/weapon/gavelhammer,/obj/item/weapon/gavelblock,/obj/item/weapon/cartridge/lawyer,/obj/item/clothing/head/powdered_wig,/turf/open/floor/plating,/area/maintenance/aft) +"bOa" = (/obj/structure/chair{dir = 8},/turf/open/floor/plating,/area/maintenance/aft) +"bOb" = (/obj/item/weapon/book/manual/barman_recipes,/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/item/weapon/cigbutt,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft) +"bOc" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plating,/area/maintenance/aft) +"bOd" = (/obj/machinery/button/door{desc = "A remote control-switch for the engineering security doors."; id = "Engineering"; name = "Engineering Lockdown"; pixel_x = -24; pixel_y = -10; req_access_txt = "10"},/obj/machinery/button/door{desc = "A remote control-switch for secure storage."; id = "Secure Storage"; name = "Engineering Secure Storage"; pixel_x = -24; pixel_y = 0; req_access_txt = "11"},/obj/machinery/button/door{id = "atmos"; name = "Atmospherics Lockdown"; pixel_x = -24; pixel_y = 10; req_access_txt = "24"},/obj/structure/table/reinforced,/obj/item/weapon/folder/yellow,/obj/item/weapon/paper/monitorkey,/obj/item/weapon/pen,/turf/open/floor/plasteel/yellow/side{dir = 8; tag = ""},/area/engine/chiefs_office) +"bOe" = (/turf/open/floor/plasteel,/area/engine/chiefs_office) +"bOf" = (/obj/effect/landmark/start{name = "Chief Engineer"},/turf/open/floor/plasteel,/area/engine/chiefs_office) +"bOg" = (/obj/structure/chair/office/light{dir = 1},/turf/open/floor/plasteel,/area/engine/chiefs_office) +"bOh" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/obj/item/weapon/lighter,/obj/item/clothing/glasses/meson{pixel_y = 4},/obj/item/weapon/stamp/ce,/obj/item/weapon/stock_parts/cell/high/plus,/obj/machinery/keycard_auth{pixel_x = 26; pixel_y = 26},/turf/open/floor/plasteel/yellow/side{tag = "icon-yellow (EAST)"; dir = 4},/area/engine/chiefs_office) +"bOi" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/black,/area/storage/tech) +"bOj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/black,/area/storage/tech) +"bOk" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/black,/area/storage/tech) +"bOl" = (/obj/structure/table,/obj/item/weapon/storage/box/metalfoam{pixel_x = 4; pixel_y = 7},/obj/item/weapon/storage/box/lights/mixed,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/airalarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/open/floor/plasteel/yellow/side{dir = 8; tag = ""},/area/engine/engine_smes) +"bOm" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/open/floor/plasteel/warning{tag = "icon-warning (NORTH)"; dir = 1},/area/engine/engine_smes) +"bOn" = (/obj/machinery/suit_storage_unit/engine,/turf/open/floor/plasteel/yellow/side{tag = "icon-yellow (EAST)"; dir = 4},/area/engine/engine_smes) +"bOo" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 4},/obj/machinery/power/apc{dir = 8; name = "Engineering Security APC"; pixel_x = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/checkpoint/engineering) +"bOp" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel,/area/security/checkpoint/engineering) +"bOq" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/checkpoint/engineering) +"bOr" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/security/checkpoint/engineering) +"bOs" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/warning{dir = 10},/area/engine/engineering) +"bOt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel/warning,/area/engine/engineering) +"bOu" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/warning{dir = 6},/area/engine/engineering) +"bOv" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/atmos) +"bOw" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 6},/turf/open/floor/plasteel,/area/atmos) +"bOx" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "O2 to Pure"; on = 0},/turf/open/floor/plasteel,/area/atmos) +"bOy" = (/obj/machinery/atmospherics/pipe/manifold/cyan/visible{dir = 1},/turf/open/floor/plasteel,/area/atmos) +"bOz" = (/obj/machinery/atmospherics/components/binary/pump{dir = 4; name = "N2 to Pure"; on = 0},/turf/open/floor/plasteel,/area/atmos) +"bOA" = (/obj/machinery/computer/atmos_control/tank{frequency = 1441; input_tag = "co2_in"; name = "Carbon Dioxide Supply Control"; output_tag = "co2_out"; sensors = list("co2_sensor" = "Tank")},/turf/open/floor/plasteel/yellow/side{tag = "icon-yellow (EAST)"; dir = 4},/area/atmos) +"bOB" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "co2_sensor"},/turf/open/floor/engine/co2,/area/atmos) +"bOC" = (/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/turf/open/floor/engine/co2,/area/atmos) +"bOD" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/engine/co2,/area/atmos) +"bOE" = (/obj/structure/grille/broken,/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/aft) +"bOF" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/aft) +"bOG" = (/obj/structure/closet/secure_closet/engineering_chief{req_access_txt = "0"},/turf/open/floor/plasteel/yellow/side{dir = 8; tag = ""},/area/engine/chiefs_office) +"bOH" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/engine/chiefs_office) +"bOI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel,/area/engine/chiefs_office) +"bOJ" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel,/area/engine/chiefs_office) +"bOK" = (/obj/machinery/power/apc{dir = 4; name = "CE Office APC"; pixel_x = 28; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel/yellow/side{tag = "icon-yellow (EAST)"; dir = 4},/area/engine/chiefs_office) +"bOL" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/computer/robotics{pixel_x = -2; pixel_y = 2},/obj/item/weapon/circuitboard/computer/mecha_control{pixel_x = 1; pixel_y = -1},/turf/open/floor/plasteel/vault{dir = 8},/area/storage/tech) +"bOM" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/computer/crew{pixel_x = -1; pixel_y = 1},/obj/item/weapon/circuitboard/computer/card{pixel_x = 2; pixel_y = -2},/obj/item/weapon/circuitboard/computer/communications{pixel_x = 5; pixel_y = -5},/obj/machinery/camera{c_tag = "Secure Tech Storage"; dir = 1},/turf/open/floor/plasteel/vault{dir = 8},/area/storage/tech) +"bON" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/computer/borgupload{pixel_x = -1; pixel_y = 1},/obj/item/weapon/circuitboard/computer/aiupload{pixel_x = 2; pixel_y = -2},/turf/open/floor/plasteel/vault{dir = 8},/area/storage/tech) +"bOO" = (/obj/structure/table,/obj/item/stack/sheet/plasteel{amount = 20; pixel_x = -3; pixel_y = 3},/obj/item/stack/sheet/glass{amount = 50; layer = 4},/obj/item/stack/sheet/glass{amount = 50; layer = 4},/obj/item/stack/sheet/glass{amount = 50; layer = 4},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light{dir = 8},/obj/machinery/computer/security/telescreen{desc = "Used for watching the engine containment area."; dir = 4; name = "Engine Monitor"; network = list("Singularity"); pixel_x = -32; pixel_y = 0},/turf/open/floor/plasteel/yellow/side{dir = 8; tag = ""},/area/engine/engine_smes) +"bOP" = (/obj/structure/cable/yellow{icon_state = "1-4"; d1 = 1; d2 = 4},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/engine/engine_smes) +"bOQ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/effect/landmark/start{name = "Station Engineer"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel,/area/engine/engine_smes) +"bOR" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel,/area/engine/engine_smes) +"bOS" = (/obj/structure/tank_dispenser,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/yellow/side{tag = "icon-yellow (EAST)"; dir = 4},/area/engine/engine_smes) +"bOT" = (/obj/structure/filingcabinet,/turf/open/floor/plasteel/red/side{dir = 10},/area/security/checkpoint/engineering) +"bOU" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel/red/side,/area/security/checkpoint/engineering) +"bOV" = (/obj/structure/reagent_dispensers/peppertank{pixel_x = 32; pixel_y = 0},/obj/structure/closet/wardrobe/red,/turf/open/floor/plasteel/red/side{dir = 6},/area/security/checkpoint/engineering) +"bOW" = (/turf/closed/wall/r_wall,/area/security/checkpoint/engineering) +"bOX" = (/obj/machinery/door/poddoor/preopen{id = "Engineering"; name = "engineering security door"},/obj/machinery/door/firedoor,/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/engineering) +"bOY" = (/obj/machinery/door/poddoor/preopen{id = "Engineering"; name = "engineering security door"},/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/engineering) +"bOZ" = (/obj/machinery/door/poddoor/preopen{id = "Engineering"; name = "engineering security door"},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/engineering) +"bPa" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/closed/wall,/area/engine/engineering) +"bPb" = (/obj/machinery/portable_atmospherics/scrubber,/turf/open/floor/plasteel,/area/atmos) +"bPc" = (/obj/machinery/portable_atmospherics/pump,/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{tag = "icon-intact (NORTHEAST)"; icon_state = "intact"; dir = 5},/turf/open/floor/plasteel,/area/atmos) +"bPd" = (/obj/machinery/atmospherics/components/trinary/filter{dir = 4; filter_type = "o2"; on = 1},/turf/open/floor/plasteel,/area/atmos) +"bPe" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/turf/open/floor/plasteel,/area/atmos) +"bPf" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/cyan/visible,/turf/open/floor/plasteel,/area/atmos) +"bPg" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4; initialize_directions = 12},/obj/machinery/atmospherics/pipe/simple/cyan/visible,/turf/open/floor/plasteel,/area/atmos) +"bPh" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 10},/turf/open/floor/plasteel,/area/atmos) +"bPi" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible,/turf/open/floor/plasteel,/area/atmos) +"bPj" = (/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "Air to Pure"; on = 0},/turf/open/floor/plasteel,/area/atmos) +"bPk" = (/obj/machinery/atmospherics/components/trinary/filter{dir = 1; filter_type = "co2"; on = 1},/turf/open/floor/plasteel,/area/atmos) +"bPl" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/cyan/visible,/turf/open/floor/plating,/area/atmos) +"bPm" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 8; frequency = 1441; id = "co2_in"; pixel_y = 1},/turf/open/floor/engine/co2,/area/atmos) +"bPn" = (/obj/item/device/flashlight,/turf/open/floor/plating,/area/maintenance/aft) +"bPo" = (/obj/effect/decal/cleanable/vomit/old,/obj/structure/grille/broken,/turf/open/floor/plating,/area/maintenance/aft) +"bPp" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/aft) +"bPq" = (/obj/machinery/suit_storage_unit/ce,/turf/open/floor/plasteel/yellow/side{dir = 10},/area/engine/chiefs_office) +"bPr" = (/turf/open/floor/plasteel/yellow/side,/area/engine/chiefs_office) +"bPs" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/yellow/side,/area/engine/chiefs_office) +"bPt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/yellow/side,/area/engine/chiefs_office) +"bPu" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/obj/machinery/light_switch{pixel_x = 25},/turf/open/floor/plasteel/yellow/side{dir = 6},/area/engine/chiefs_office) +"bPv" = (/turf/closed/wall/r_wall,/area/engine/engineering) +"bPw" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/rods{amount = 50},/obj/item/stack/cable_coil,/obj/machinery/power/apc{cell_type = 10000; dir = 8; name = "Engine Room APC"; pixel_x = -26; pixel_y = 0},/obj/structure/cable,/obj/item/stack/sheet/metal{amount = 50; layer = 2.9},/turf/open/floor/plasteel/yellow/side{dir = 8; tag = ""},/area/engine/engine_smes) +"bPx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/engine/engine_smes) +"bPy" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/engine/engine_smes) +"bPz" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/engine/engine_smes) +"bPA" = (/obj/machinery/door/airlock/engineering{cyclelinkeddir = 1; name = "Engine Room"; req_access_txt = "10"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/warning,/area/engine/engineering) +"bPB" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/engine/engineering) +"bPC" = (/obj/machinery/portable_atmospherics/scrubber,/turf/open/floor/plasteel/yellow/side,/area/atmos) +"bPD" = (/obj/machinery/portable_atmospherics/pump,/turf/open/floor/plasteel/yellow/side,/area/atmos) +"bPE" = (/obj/machinery/atmospherics/pipe/simple/green/visible,/turf/open/floor/plasteel/yellow/side,/area/atmos) +"bPF" = (/obj/machinery/computer/atmos_control/tank{frequency = 1441; input_tag = "n2_in"; name = "Nitrogen Supply Control"; output_tag = "n2_out"; sensors = list("n2_sensor" = "Tank")},/turf/open/floor/plasteel/yellow/side,/area/atmos) +"bPG" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible,/turf/open/floor/plasteel/yellow/side,/area/atmos) +"bPH" = (/obj/machinery/light,/turf/open/floor/plasteel/yellow/side,/area/atmos) +"bPI" = (/obj/machinery/computer/atmos_control/tank{frequency = 1441; input_tag = "o2_in"; name = "Oxygen Supply Control"; output_tag = "o2_out"; sensors = list("o2_sensor" = "Tank")},/turf/open/floor/plasteel/yellow/side,/area/atmos) +"bPJ" = (/obj/machinery/atmospherics/pipe/manifold/cyan/visible{dir = 8},/turf/open/floor/plasteel/yellow/side,/area/atmos) +"bPK" = (/obj/machinery/atmospherics/pipe/simple/green/visible,/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/turf/open/floor/plasteel/yellow/side,/area/atmos) +"bPL" = (/obj/machinery/atmospherics/components/trinary/mixer{node1_concentration = 0.8; node2_concentration = 0.2; on = 1},/turf/open/floor/plasteel/yellow/side,/area/atmos) +"bPM" = (/obj/machinery/computer/atmos_control/tank{frequency = 1441; input_tag = "air_in"; name = "Mixed Air Supply Control"; output_tag = "air_out"; sensors = list("air_sensor" = "Tank")},/turf/open/floor/plasteel/yellow/side,/area/atmos) +"bPN" = (/obj/machinery/light,/obj/machinery/atmospherics/components/binary/pump{dir = 4; name = "Air Outlet Pump"; on = 1},/turf/open/floor/plasteel/yellow/side,/area/atmos) +"bPO" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/turf/open/floor/plasteel/yellow/side,/area/atmos) +"bPP" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/turf/open/floor/plasteel/yellow/side{dir = 6},/area/atmos) +"bPQ" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/turf/closed/wall/r_wall,/area/atmos) +"bPR" = (/obj/structure/closet,/turf/open/floor/plating,/area/maintenance/aft) +"bPS" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating{broken = 1; icon_state = "platingdmg1"},/area/maintenance/aft) +"bPT" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/aft) +"bPU" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/aft) +"bPV" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/chiefs_office) +"bPW" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/engine/chiefs_office) +"bPX" = (/obj/machinery/door/airlock/glass_command{name = "Chief Engineer"; req_access_txt = "56"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/engine/chiefs_office) +"bPY" = (/turf/closed/wall,/area/engine/chiefs_office) +"bPZ" = (/obj/machinery/computer/atmos_alert,/turf/open/floor/plasteel/yellow/side{dir = 1},/area/engine/engineering) +"bQa" = (/obj/machinery/computer/monitor{name = "Engineering Power Monitoring Console"},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/engine/engineering) +"bQb" = (/obj/machinery/computer/station_alert,/turf/open/floor/plasteel/yellow/side{dir = 1},/area/engine/engineering) +"bQc" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/engine_smes) +"bQd" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/engine/engine_smes) +"bQe" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_engineering{name = "Power Storage"; req_access_txt = "11"; req_one_access_txt = "0"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/engine/engine_smes) +"bQf" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/engine/engine_smes) +"bQg" = (/obj/machinery/vending/engivend,/turf/open/floor/plasteel/yellow/side{dir = 1},/area/engine/engineering) +"bQh" = (/obj/machinery/vending/tool,/turf/open/floor/plasteel/yellow/side{dir = 1},/area/engine/engineering) +"bQi" = (/obj/structure/closet/firecloset,/turf/open/floor/plasteel/yellow/side{dir = 1},/area/engine/engineering) +"bQj" = (/turf/open/floor/plasteel/warning{dir = 1},/area/engine/engineering) +"bQk" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/warning{dir = 1},/area/engine/engineering) +"bQl" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/warning{dir = 1},/area/engine/engineering) +"bQm" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/green/visible,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/atmos) +"bQn" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/yellow/visible,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/atmos) +"bQo" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 5; initialize_directions = 12},/turf/open/floor/plating,/area/atmos) +"bQp" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible,/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4; initialize_directions = 12},/turf/open/floor/plating,/area/atmos) +"bQq" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4; initialize_directions = 12},/turf/open/floor/plating,/area/atmos) +"bQr" = (/obj/machinery/atmospherics/pipe/simple/green/hidden{tag = "icon-intact (WEST)"; icon_state = "intact"; dir = 8},/turf/closed/wall/r_wall,/area/atmos) +"bQs" = (/obj/machinery/atmospherics/pipe/simple/green/hidden{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/turf/closed/wall/r_wall,/area/atmos) +"bQt" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 2; name = "Atmospherics External Access"; req_access = null; req_access_txt = "24"},/turf/open/floor/plating,/area/atmos) +"bQu" = (/obj/structure/table_frame/wood,/turf/open/floor/plating,/area/maintenance/aft) +"bQv" = (/obj/item/trash/candy,/turf/open/floor/plating,/area/maintenance/aft) +"bQw" = (/turf/open/space,/area/space/nearstation) +"bQx" = (/obj/structure/lattice,/turf/open/space,/area/space/nearstation) +"bQy" = (/obj/machinery/power/apc{cell_type = 5000; dir = 8; name = "Engineering Maintenance APC"; pixel_x = -25; pixel_y = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating,/area/maintenance/aft) +"bQz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/aft) +"bQA" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/maintenance{name = "Engineering Maintenance"; req_access_txt = "10"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/engine/engineering) +"bQB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel,/area/engine/engineering) +"bQC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/engine/engineering) +"bQD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j1s"; sortType = 5},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel,/area/engine/engineering) +"bQE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) +"bQF" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/requests_console{announcementConsole = 0; department = "Engineering"; departmentType = 4; name = "Engineering RC"; pixel_y = 30},/obj/machinery/camera{c_tag = "Engineering Port Fore"; dir = 2; network = list("SS13")},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) +"bQG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel,/area/engine/engineering) +"bQH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) +"bQI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) +"bQJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/airalarm{dir = 2; pixel_y = 22},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) +"bQK" = (/obj/structure/cable{icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) +"bQL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) +"bQM" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel,/area/engine/engineering) +"bQN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel,/area/engine/engineering) +"bQO" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/firealarm{dir = 1; pixel_y = 29},/turf/open/floor/plasteel,/area/engine/engineering) +"bQP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/camera{c_tag = "Engineering Starboard Fore"; dir = 2; network = list("SS13")},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/item/device/radio/intercom{dir = 8; freerange = 1; name = "Station Intercom (Telecoms)"; pixel_x = 0; pixel_y = 26},/turf/open/floor/plasteel,/area/engine/engineering) +"bQQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j2s"; sortType = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) +"bQR" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/plasteel,/area/engine/engineering) +"bQS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/engine/engineering) +"bQT" = (/turf/open/floor/plasteel,/area/engine/engineering) +"bQU" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/green/visible,/turf/open/space,/area/space) +"bQV" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/yellow/visible,/turf/open/space,/area/space) +"bQW" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/cyan/visible,/turf/open/space,/area/space) +"bQX" = (/obj/machinery/light/small{dir = 8},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = -32; pixel_y = 0},/turf/open/floor/plating,/area/atmos) +"bQY" = (/obj/structure/table_frame/wood,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft) +"bQZ" = (/obj/item/weapon/bikehorn/rubberducky,/turf/open/floor/plating,/area/maintenance/aft) +"bRa" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/engine/engineering) +"bRb" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/open/floor/plasteel,/area/engine/engineering) +"bRc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) +"bRd" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/turf/open/floor/plasteel,/area/engine/engineering) +"bRe" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) +"bRf" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/turf/open/floor/plasteel,/area/engine/engineering) +"bRg" = (/obj/machinery/holopad,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel,/area/engine/engineering) +"bRh" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/engine/engineering) +"bRi" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) +"bRj" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) +"bRk" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) +"bRl" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/plasteel,/area/engine/engineering) +"bRm" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/grille,/obj/machinery/meter,/turf/closed/wall/r_wall,/area/atmos) +"bRn" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/grille,/obj/machinery/meter{name = "Mixed Air Tank In"},/turf/closed/wall/r_wall,/area/atmos) +"bRo" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/grille,/obj/machinery/meter{name = "Mixed Air Tank Out"},/turf/closed/wall/r_wall,/area/atmos) +"bRp" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 1; name = "Atmospherics External Access"; req_access = null; req_access_txt = "24"},/turf/open/floor/plating,/area/atmos) +"bRq" = (/obj/structure/plasticflaps{opacity = 1},/turf/open/floor/plasteel/vault{dir = 8},/area/engine/engineering) +"bRr" = (/obj/machinery/door/window/southleft{base_state = "left"; dir = 4; icon_state = "left"; name = "Engineering Delivery"; req_access_txt = "10"},/obj/machinery/navbeacon{codes_txt = "delivery;dir=4"; freq = 1400; location = "Engineering"},/turf/open/floor/plasteel/vault{dir = 8},/area/engine/engineering) +"bRs" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/loadingarea{dir = 4},/area/engine/engineering) +"bRt" = (/obj/structure/chair/stool,/turf/open/floor/plasteel,/area/engine/engineering) +"bRu" = (/obj/structure/chair/stool,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/engine/engineering) +"bRv" = (/obj/structure/chair/stool,/obj/effect/landmark/start{name = "Station Engineer"},/turf/open/floor/plasteel,/area/engine/engineering) +"bRw" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/belt/utility,/obj/item/clothing/head/welding{pixel_x = -3; pixel_y = 5},/obj/item/clothing/glasses/meson{pixel_x = 3; pixel_y = -4},/turf/open/floor/plasteel,/area/engine/engineering) +"bRx" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/engine/engineering) +"bRy" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/open/floor/plasteel,/area/engine/engineering) +"bRz" = (/obj/structure/cable/yellow{icon_state = "1-4"; d1 = 1; d2 = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/machinery/camera{c_tag = "Engineering Central"; dir = 1; network = list("SS13")},/obj/machinery/light,/turf/open/floor/plasteel,/area/engine/engineering) +"bRA" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel,/area/engine/engineering) +"bRB" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel,/area/engine/engineering) +"bRC" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/mask/gas{pixel_x = 3; pixel_y = 3},/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas{pixel_x = -3; pixel_y = -3},/turf/open/floor/plasteel,/area/engine/engineering) +"bRD" = (/obj/structure/table,/obj/item/weapon/airlock_painter{pixel_y = 3},/obj/item/device/flashlight,/turf/open/floor/plasteel,/area/engine/engineering) +"bRE" = (/obj/structure/table,/obj/item/weapon/electronics/airlock,/obj/item/weapon/electronics/airlock,/obj/item/weapon/electronics/apc,/obj/item/weapon/stock_parts/cell/high/plus,/obj/item/weapon/stock_parts/cell/high/plus,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/engine/engineering) +"bRF" = (/obj/structure/closet/wardrobe/engineering_yellow,/turf/open/floor/plasteel,/area/engine/engineering) +"bRG" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 1; frequency = 1441; id = "n2_in"},/turf/open/floor/engine/n2,/area/atmos) +"bRH" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "n2_sensor"},/turf/open/floor/engine/n2,/area/atmos) +"bRI" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 0; frequency = 1441; id_tag = "n2_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/open/floor/engine/n2,/area/atmos) +"bRJ" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 1; frequency = 1441; id = "o2_in"},/turf/open/floor/engine/o2,/area/atmos) +"bRK" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "o2_sensor"},/turf/open/floor/engine/o2,/area/atmos) +"bRL" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 0; frequency = 1441; id_tag = "o2_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/open/floor/engine/o2,/area/atmos) +"bRM" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 1; frequency = 1441; id = "air_in"},/turf/open/floor/engine/air,/area/atmos) +"bRN" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "air_sensor"},/turf/open/floor/engine/air,/area/atmos) +"bRO" = (/obj/machinery/atmospherics/components/unary/vent_pump/high_volume{dir = 1; external_pressure_bound = 0; frequency = 1441; icon_state = "vent_map"; id_tag = "air_out"; internal_pressure_bound = 2000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/open/floor/engine/air,/area/atmos) +"bRP" = (/obj/structure/rack,/obj/item/weapon/paper,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft) +"bRQ" = (/turf/open/floor/plating/airless,/area/space/nearstation) +"bRR" = (/obj/item/weapon/phone,/turf/open/floor/plating/airless,/area/space/nearstation) +"bRS" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/light{dir = 8},/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = -27},/turf/open/floor/plasteel/warning/corner{dir = 1},/area/engine/engineering) +"bRT" = (/obj/structure/table,/obj/item/weapon/pen,/obj/item/weapon/storage/belt/utility,/obj/item/clothing/glasses/meson,/obj/item/weapon/paper_bin{layer = 2.9; pixel_x = 0; pixel_y = 0; tag = "every single paper bin is edited to this"},/turf/open/floor/plasteel,/area/engine/engineering) +"bRU" = (/obj/structure/table,/obj/item/weapon/book/manual/wiki/engineering_hacking{pixel_x = 3; pixel_y = 3},/obj/item/weapon/book/manual/wiki/engineering_construction,/obj/item/clothing/gloves/color/yellow,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/engine/engineering) +"bRV" = (/obj/structure/table,/obj/item/weapon/book/manual/engineering_singularity_safety{pixel_x = 3; pixel_y = 3},/obj/item/weapon/book/manual/wiki/engineering_guide,/obj/item/weapon/book/manual/engineering_particle_accelerator{pixel_x = -3; pixel_y = -3},/obj/item/clothing/gloves/color/yellow,/turf/open/floor/plasteel,/area/engine/engineering) +"bRW" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/engine/engineering) +"bRX" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/closet/radiation,/turf/open/floor/plasteel,/area/engine/engineering) +"bRY" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 0; pixel_y = 0},/turf/closed/wall/r_wall,/area/engine/engineering) +"bRZ" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters/preopen{id = "Singularity"; name = "radiation shutters"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/bot{dir = 2},/area/engine/engineering) +"bSa" = (/obj/machinery/light{dir = 8},/obj/structure/closet/secure_closet/engineering_welding,/turf/open/floor/plasteel,/area/engine/engineering) +"bSb" = (/obj/structure/table,/obj/item/clothing/gloves/color/yellow,/obj/item/weapon/storage/belt/utility,/obj/item/clothing/glasses/meson,/turf/open/floor/plasteel,/area/engine/engineering) +"bSc" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/engine/engineering) +"bSd" = (/obj/effect/landmark/start{name = "Station Engineer"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/engine/engineering) +"bSe" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel,/area/engine/engineering) +"bSf" = (/obj/structure/closet/secure_closet/engineering_personal,/obj/machinery/light{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) +"bSg" = (/turf/open/floor/engine/n2,/area/atmos) +"bSh" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/turf/open/floor/engine/n2,/area/atmos) +"bSi" = (/turf/open/floor/engine/o2,/area/atmos) +"bSj" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/engine/o2,/area/atmos) +"bSk" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/engine/air,/area/atmos) +"bSl" = (/obj/machinery/portable_atmospherics/canister/air,/obj/effect/landmark/event_spawn,/turf/open/floor/engine/air,/area/atmos) +"bSm" = (/turf/open/floor/engine/air,/area/atmos) +"bSn" = (/obj/item/trash/tray,/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/aft) +"bSo" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/aft) +"bSp" = (/obj/machinery/shieldgen,/turf/open/floor/plating,/area/engine/engineering) +"bSq" = (/obj/machinery/shieldgen,/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/engine/engineering) +"bSr" = (/turf/open/floor/plating,/area/engine/engineering) +"bSs" = (/obj/machinery/door/poddoor{id = "Secure Storage"; name = "secure storage"},/turf/open/floor/plating/warnplate{dir = 4},/area/engine/engineering) +"bSt" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/warning{dir = 8},/area/engine/engineering) +"bSu" = (/obj/structure/closet/radiation,/turf/open/floor/plasteel,/area/engine/engineering) +"bSv" = (/turf/open/floor/plating/warnplate{dir = 9},/area/engine/engineering) +"bSw" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/warnplate{dir = 1},/area/engine/engineering) +"bSx" = (/obj/machinery/camera{c_tag = "Engineering Center"; dir = 2; pixel_x = 23},/obj/machinery/light{dir = 1},/turf/open/floor/plating/warnplate{dir = 1},/area/engine/engineering) +"bSy" = (/turf/open/floor/plating/warnplate{dir = 5},/area/engine/engineering) +"bSz" = (/obj/structure/closet/secure_closet/engineering_electrical,/turf/open/floor/plasteel,/area/engine/engineering) +"bSA" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = 2; pixel_y = 4},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2},/turf/open/floor/plasteel,/area/engine/engineering) +"bSB" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/electrical{pixel_x = 2; pixel_y = 4},/obj/item/weapon/storage/toolbox/electrical{pixel_x = -2},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/engine/engineering) +"bSC" = (/obj/structure/closet/secure_closet/engineering_personal,/turf/open/floor/plasteel,/area/engine/engineering) +"bSD" = (/obj/machinery/light/small,/turf/open/floor/engine/n2,/area/atmos) +"bSE" = (/obj/machinery/light/small,/turf/open/floor/engine/o2,/area/atmos) +"bSF" = (/obj/machinery/light/small,/turf/open/floor/engine/air,/area/atmos) +"bSG" = (/obj/structure/table,/obj/item/weapon/wirecutters,/obj/effect/spawner/lootdrop/maintenance,/obj/machinery/light/small{brightness = 3; dir = 8},/turf/open/floor/plating,/area/maintenance/aft) +"bSH" = (/obj/structure/table,/obj/item/weapon/storage/fancy/cigarettes/cigpack_robustgold,/obj/effect/decal/cleanable/deadcockroach,/turf/open/floor/plating,/area/maintenance/aft) +"bSI" = (/obj/structure/closet/emcloset,/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/aft) +"bSJ" = (/obj/machinery/field/generator,/turf/open/floor/plating,/area/engine/engineering) +"bSK" = (/obj/structure/closet/crate,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/rods{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/weapon/electronics/airlock,/obj/item/weapon/electronics/airlock,/obj/item/weapon/stock_parts/cell/high/plus,/obj/item/stack/sheet/mineral/plasma{amount = 30},/turf/open/floor/plating,/area/engine/engineering) +"bSL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/engine/engineering) +"bSM" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel,/area/engine/engineering) +"bSN" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel,/area/engine/engineering) +"bSO" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters/preopen{id = "Singularity"; name = "radiation shutters"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/bot{dir = 2},/area/engine/engineering) +"bSP" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/open/floor/plating/warnplate{dir = 8},/area/engine/engineering) +"bSQ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating,/area/engine/engineering) +"bSR" = (/obj/structure/particle_accelerator/end_cap,/turf/open/floor/plating,/area/engine/engineering) +"bSS" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/landmark/event_spawn,/turf/open/floor/plating,/area/engine/engineering) +"bST" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating/warnplate{dir = 4},/area/engine/engineering) +"bSU" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/engine/engineering) +"bSV" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/open/floor/plasteel,/area/engine/engineering) +"bSW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/engine/engineering) +"bSX" = (/obj/item/weapon/shovel,/turf/open/floor/plating,/area/maintenance/aft) +"bSY" = (/obj/machinery/field/generator,/obj/machinery/camera{c_tag = "Engineering Secure Storage"; dir = 4; network = list("SS13")},/turf/open/floor/plating,/area/engine/engineering) +"bSZ" = (/obj/machinery/portable_atmospherics/canister/toxins,/turf/open/floor/plating,/area/engine/engineering) +"bTa" = (/obj/machinery/power/port_gen/pacman,/turf/open/floor/plating,/area/engine/engineering) +"bTb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/warning/corner{dir = 4},/area/engine/engineering) +"bTc" = (/turf/open/floor/plasteel/warning/corner,/area/engine/engineering) +"bTd" = (/turf/open/floor/plasteel/warning,/area/engine/engineering) +"bTe" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/warning,/area/engine/engineering) +"bTf" = (/obj/machinery/camera{c_tag = "Engineering Port Aft"; dir = 1; network = list("SS13")},/obj/machinery/light,/turf/open/floor/plasteel/warning,/area/engine/engineering) +"bTg" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/yellow/side,/area/engine/engineering) +"bTh" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/button/door{id = "Singularity"; name = "Shutters Control"; pixel_x = 25; pixel_y = 0; req_access_txt = "11"},/turf/open/floor/plasteel/yellow/side,/area/engine/engineering) +"bTi" = (/obj/machinery/button/door{id = "Singularity"; name = "Shutters Control"; pixel_x = -25; pixel_y = 0; req_access_txt = "11"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/warnplate{dir = 8},/area/engine/engineering) +"bTj" = (/obj/machinery/particle_accelerator/control_box,/obj/structure/cable/yellow,/turf/open/floor/plating,/area/engine/engineering) +"bTk" = (/obj/structure/particle_accelerator/fuel_chamber,/turf/open/floor/plating,/area/engine/engineering) +"bTl" = (/obj/effect/landmark/start{name = "Station Engineer"},/turf/open/floor/plating,/area/engine/engineering) +"bTm" = (/obj/machinery/button/door{id = "Singularity"; name = "Shutters Control"; pixel_x = 25; pixel_y = 0; req_access_txt = "11"},/turf/open/floor/plating/warnplate{dir = 4},/area/engine/engineering) +"bTn" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/button/door{id = "Singularity"; name = "Shutters Control"; pixel_x = -25; pixel_y = 0; req_access_txt = "11"},/turf/open/floor/plasteel/yellow/side,/area/engine/engineering) +"bTo" = (/obj/machinery/camera{c_tag = "Engineering Starboard Aft"; dir = 1; network = list("SS13")},/obj/machinery/light,/turf/open/floor/plasteel/warning,/area/engine/engineering) +"bTp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/warning,/area/engine/engineering) +"bTq" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel/warning/corner{dir = 1},/area/engine/engineering) +"bTr" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plasteel,/area/engine/engineering) +"bTs" = (/obj/structure/closet/crate/medical,/obj/item/stack/medical/gauze,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft) +"bTt" = (/obj/structure/bed,/obj/item/weapon/bedsheet/random,/obj/structure/table/optable,/turf/open/floor/plating,/area/maintenance/aft) +"bTu" = (/obj/machinery/power/emitter,/turf/open/floor/plating,/area/engine/engineering) +"bTv" = (/obj/machinery/door/airlock/engineering{name = "Telecommunications Transit Tube"; req_access_txt = "10; 61"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/engine/engineering) +"bTw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/external{cyclelinkeddir = 2; name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/engine/engineering) +"bTx" = (/obj/machinery/door/poddoor/shutters/preopen{id = "Singularity"; name = "radiation shutters"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/warnplate{dir = 1},/area/engine/engineering) +"bTy" = (/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/weapon/crowbar,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/warnplate{dir = 8},/area/engine/engineering) +"bTz" = (/obj/structure/chair/stool,/turf/open/floor/plating,/area/engine/engineering) +"bTA" = (/obj/structure/particle_accelerator/power_box,/turf/open/floor/plating,/area/engine/engineering) +"bTB" = (/obj/item/weapon/screwdriver,/turf/open/floor/plating,/area/engine/engineering) +"bTC" = (/turf/open/floor/plating/warnplate{dir = 4},/area/engine/engineering) +"bTD" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/external{cyclelinkeddir = 2; name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/turf/open/floor/plating,/area/engine/engineering) +"bTE" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/plating,/area/maintenance/aft) +"bTF" = (/obj/effect/decal/cleanable/robot_debris{icon_state = "gib7"},/turf/open/floor/plating,/area/maintenance/aft) +"bTG" = (/obj/item/device/radio,/turf/open/floor/plating,/area/maintenance/aft) +"bTH" = (/obj/effect/spawner/lootdrop/maintenance,/obj/structure/grille/broken,/turf/open/floor/plating,/area/maintenance/aft) +"bTI" = (/obj/machinery/field/generator,/turf/open/floor/plating,/area/maintenance/aft) +"bTJ" = (/obj/machinery/power/emitter,/turf/open/floor/plating,/area/maintenance/aft) +"bTK" = (/obj/structure/transit_tube{icon_state = "Block"},/obj/effect/decal/cleanable/cobweb,/turf/open/floor/plating/warnplate{dir = 4},/area/engine/engineering) +"bTL" = (/obj/structure/sign/poster{pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel,/area/engine/engineering) +"bTM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/plasteel,/area/engine/engineering) +"bTN" = (/obj/machinery/light/small{dir = 8},/obj/structure/closet/emcloset{anchored = 1; desc = "It's a storage unit for emergency breath masks and O2 tanks, and is securely bolted in place."; name = "anchored emergency closet"},/turf/open/floor/plating,/area/engine/engineering) +"bTO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 32},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/engine/engineering) +"bTP" = (/obj/machinery/power/rad_collector{anchored = 1},/obj/item/weapon/tank/internals/plasma,/obj/structure/cable/yellow,/turf/open/floor/plating/warnplate{dir = 1},/area/engine/engineering) +"bTQ" = (/obj/machinery/power/rad_collector{anchored = 1},/obj/structure/cable/yellow,/turf/open/floor/plating/warnplate{dir = 1},/area/engine/engineering) +"bTR" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/engineering) +"bTS" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/warnplate{dir = 8},/area/engine/engineering) +"bTT" = (/obj/structure/particle_accelerator/particle_emitter/left,/turf/open/floor/plating,/area/engine/engineering) +"bTU" = (/obj/structure/particle_accelerator/particle_emitter/center,/turf/open/floor/plating,/area/engine/engineering) +"bTV" = (/obj/structure/particle_accelerator/particle_emitter/right,/turf/open/floor/plating,/area/engine/engineering) +"bTW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = -32},/turf/open/floor/plating,/area/engine/engineering) +"bTX" = (/obj/machinery/light/small{dir = 4},/obj/structure/closet/emcloset{anchored = 1; desc = "It's a storage unit for emergency breath masks and O2 tanks, and is securely bolted in place."; name = "anchored emergency closet"},/turf/open/floor/plating,/area/engine/engineering) +"bTY" = (/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 24; id = "syndicate_se"; name = "southeast of station"; turf_type = /turf/open/space; width = 18},/turf/open/space,/area/space) +"bTZ" = (/obj/structure/chair,/obj/item/weapon/cigbutt,/turf/open/floor/plating,/area/maintenance/aft) +"bUa" = (/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/turf/open/floor/plating,/area/maintenance/aft) +"bUb" = (/obj/structure/transit_tube_pod,/obj/structure/transit_tube/station{dir = 4; icon_state = "closed"; reverse_launch = 1},/turf/open/floor/plating/warnplate{dir = 4},/area/engine/engineering) +"bUc" = (/obj/machinery/camera{c_tag = "Engineering Telecoms Access"; dir = 8; network = list("Labor")},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/computer/security/telescreen{desc = "Used for watching telecoms."; dir = 8; layer = 4; name = "Telecoms Telescreen"; network = list("Telecoms"); pixel_x = 30; pixel_y = 0},/turf/open/floor/plasteel,/area/engine/engineering) +"bUd" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/external{cyclelinkeddir = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/engine/engineering) +"bUe" = (/obj/structure/cable/yellow{icon_state = "1-4"; d1 = 1; d2 = 4},/turf/open/floor/plating/warnplate{dir = 10},/area/engine/engineering) +"bUf" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plating/warnplate,/area/engine/engineering) +"bUg" = (/obj/item/weapon/wirecutters,/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/open/floor/plating/warnplate,/area/engine/engineering) +"bUh" = (/turf/open/floor/plating/warnplate,/area/engine/engineering) +"bUi" = (/turf/open/floor/plating/warnplate{dir = 6},/area/engine/engineering) +"bUj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/external{cyclelinkeddir = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/turf/open/floor/plating,/area/engine/engineering) +"bUk" = (/obj/structure/transit_tube{icon_state = "N-S"},/turf/open/floor/plating/warnplate{dir = 4},/area/engine/engineering) +"bUl" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/engine/engineering) +"bUm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/engine/engineering) +"bUn" = (/obj/structure/grille,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating/airless,/area/engine/engineering) +"bUo" = (/obj/structure/cable{icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plating/airless,/area/engine/engineering) +"bUp" = (/obj/machinery/camera/emp_proof{c_tag = "Engine Containment Port Fore"; dir = 2; network = list("Singularity")},/turf/open/floor/plating/airless,/area/engine/engineering) +"bUq" = (/obj/machinery/power/grounding_rod,/turf/open/floor/plating/airless,/area/engine/engineering) +"bUr" = (/turf/open/floor/plating/airless,/area/engine/engineering) +"bUs" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/engine/engineering) +"bUt" = (/obj/machinery/camera/emp_proof{c_tag = "Engine Containment Starboard Fore"; dir = 2; network = list("Singularity")},/turf/open/floor/plating/airless,/area/engine/engineering) +"bUu" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating/airless,/area/engine/engineering) +"bUv" = (/obj/structure/grille,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating/airless,/area/engine/engineering) +"bUw" = (/obj/structure/window/reinforced/fulltile,/obj/structure/transit_tube{icon_state = "N-S"},/turf/open/floor/plating,/area/engine/engineering) +"bUx" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 2; name = "Engineering External Access"; req_access = null; req_access_txt = "61"},/turf/open/floor/plating,/area/engine/engineering) +"bUy" = (/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/airless,/area/engine/engineering) +"bUz" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/open/floor/plating/airless,/area/engine/engineering) +"bUA" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plating/airless,/area/engine/engineering) +"bUB" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/turf/open/floor/plating/airless,/area/engine/engineering) +"bUC" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/open/floor/plating/airless,/area/engine/engineering) +"bUD" = (/obj/structure/transit_tube{icon_state = "N-S"},/turf/open/floor/plating,/area/space) +"bUE" = (/obj/machinery/light/small{dir = 8},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = -32; pixel_y = 0},/turf/open/floor/plating,/area/engine/engineering) +"bUF" = (/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating/airless,/area/engine/engineering) +"bUG" = (/obj/machinery/power/emitter{anchored = 1; dir = 4; state = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating/airless,/area/engine/engineering) +"bUH" = (/turf/open/floor/plating/airless/warnplate{dir = 8},/area/engine/engineering) +"bUI" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/airless,/area/engine/engineering) +"bUJ" = (/obj/machinery/field/generator{anchored = 1; state = 2},/turf/open/floor/plating/airless,/area/space/nearstation) +"bUK" = (/turf/open/floor/plating/airless/warnplate{dir = 4},/area/engine/engineering) +"bUL" = (/obj/machinery/power/emitter{anchored = 1; dir = 8; state = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating/airless,/area/engine/engineering) +"bUM" = (/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating/airless,/area/engine/engineering) +"bUN" = (/obj/item/chair/stool,/turf/open/floor/plating{broken = 1; icon_state = "platingdmg1"},/area/maintenance/aft) +"bUO" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating{broken = 1; icon_state = "platingdmg3"},/area/maintenance/aft) +"bUP" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "61"},/turf/open/floor/plating,/area/engine/engineering) +"bUQ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{icon_state = "1-4"; d1 = 1; d2 = 4},/turf/open/floor/plating/airless,/area/engine/engineering) +"bUR" = (/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/power/tesla_coil,/turf/open/floor/plating/airless,/area/engine/engineering) +"bUS" = (/obj/structure/cable/yellow{icon_state = "0-4"; d2 = 4},/obj/machinery/power/tesla_coil,/turf/open/floor/plating/airless,/area/engine/engineering) +"bUT" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/open/floor/plating/airless,/area/engine/engineering) +"bUU" = (/obj/structure/lattice/catwalk,/turf/open/space,/area/space/nearstation) +"bUV" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/grille,/turf/open/floor/plating/airless,/area/engine/engineering) +"bUW" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/grille,/turf/open/floor/plating/airless,/area/engine/engineering) +"bUX" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/grille,/turf/open/floor/plating/airless,/area/engine/engineering) +"bUY" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/grille,/turf/open/floor/plating/airless,/area/engine/engineering) +"bUZ" = (/turf/closed/mineral,/area/mine/explored{name = "Bomb Testing Asteroid"}) +"bVa" = (/turf/closed/wall,/area/mine/explored{name = "Bomb Testing Asteroid"}) +"bVb" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'BOMB RANGE"; name = "BOMB RANGE"},/turf/closed/indestructible{desc = "A wall impregnated with Fixium, able to withstand massive explosions with ease"; icon_state = "riveted"; name = "hyper-reinforced wall"},/area/mine/explored{name = "Bomb Testing Asteroid"}) +"bVc" = (/turf/open/floor/plating/asteroid/airless,/area/mine/explored{name = "Bomb Testing Asteroid"}) +"bVd" = (/obj/structure/transit_tube{icon_state = "N-S-Pass"},/turf/open/floor/plating,/area/space) +"bVe" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/grille,/turf/open/floor/plating/airless,/area/engine/engineering) +"bVf" = (/turf/open/floor/plating/airless/warnplate{dir = 9},/area/space/nearstation) +"bVg" = (/turf/open/floor/plating/airless/warnplate{dir = 1},/area/space/nearstation) +"bVh" = (/turf/open/floor/plating/airless/warnplate{dir = 5},/area/space/nearstation) +"bVi" = (/obj/machinery/camera{active_power_usage = 0; c_tag = "Bomb Testing Asteroid Fore"; desc = "A specially-reinforced camera with a long lasting battery, used to monitor the bomb testing site. An external light is attached to the top."; invuln = 1; luminosity = 3; name = "Hardened Bomb-Test Camera"; network = list("Toxins"); use_power = 0},/turf/open/floor/plating/asteroid/airless,/area/mine/explored{name = "Bomb Testing Asteroid"}) +"bVj" = (/obj/machinery/light{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/grille,/turf/open/floor/plating/airless,/area/engine/engineering) +"bVk" = (/obj/machinery/the_singularitygen,/turf/open/floor/plating/airless/warnplate{dir = 8},/area/space/nearstation) +"bVl" = (/obj/machinery/the_singularitygen/tesla,/turf/open/floor/plating/airless,/area/space/nearstation) +"bVm" = (/turf/open/floor/plating/airless/warnplate{dir = 4},/area/space/nearstation) +"bVn" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/grille,/turf/open/floor/plating/airless,/area/engine/engineering) +"bVo" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating/asteroid/airless,/area/mine/explored{name = "Bomb Testing Asteroid"}) +"bVp" = (/turf/open/floor/plating/airless/warnplate{dir = 10},/area/space/nearstation) +"bVq" = (/turf/open/floor/plating/airless/warnplate{dir = 2},/area/space/nearstation) +"bVr" = (/turf/open/floor/plating/airless/warnplate{dir = 6},/area/space/nearstation) +"bVs" = (/turf/closed/mineral/random/low_chance,/area/mine/explored{name = "Bomb Testing Asteroid"}) +"bVt" = (/obj/item/device/radio/beacon,/obj/effect/landmark{name = "revenantspawn"},/turf/open/floor/plating/airless,/area/mine/explored{name = "Bomb Testing Asteroid"}) +"bVu" = (/obj/item/device/flashlight/lantern{on = 1},/turf/open/floor/plating/asteroid/airless,/area/mine/explored{name = "Bomb Testing Asteroid"}) +"bVv" = (/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating/airless,/area/engine/engineering) +"bVw" = (/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating/airless,/area/engine/engineering) +"bVx" = (/obj/structure/grille,/turf/open/floor/plating/airless,/area/engine/engineering) +"bVy" = (/obj/structure/cable/yellow{icon_state = "0-2"; d2 = 2},/obj/machinery/power/tesla_coil,/turf/open/floor/plating/airless,/area/engine/engineering) +"bVz" = (/obj/machinery/camera/emp_proof{c_tag = "Engine Containment Port Aft"; dir = 1; network = list("Singularity")},/turf/open/floor/plating/airless,/area/engine/engineering) +"bVA" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/turf/open/floor/plating/airless,/area/engine/engineering) +"bVB" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/open/floor/plating/airless,/area/engine/engineering) +"bVC" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/machinery/light,/turf/open/floor/plating/airless,/area/engine/engineering) +"bVD" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/open/floor/plating/airless,/area/engine/engineering) +"bVE" = (/obj/machinery/camera/emp_proof{c_tag = "Engine Containment Starboard Aft"; dir = 1; network = list("Singularity")},/turf/open/floor/plating/airless,/area/engine/engineering) +"bVF" = (/turf/closed/mineral/iron,/area/mine/explored{name = "Bomb Testing Asteroid"}) +"bVG" = (/obj/structure/sign/securearea,/turf/closed/wall/r_wall,/area/engine/engineering) +"bVH" = (/obj/effect/spawner/lootdrop/maintenance,/turf/closed/mineral,/area/mine/explored{name = "Bomb Testing Asteroid"}) +"bVI" = (/obj/machinery/camera{c_tag = "Telecoms External Fore"; dir = 1; network = list("SS13, Telecoms"); pixel_x = 0; pixel_y = 0; start_active = 1},/turf/open/space,/area/space) +"bVJ" = (/turf/closed/wall/r_wall,/area/tcommsat/computer) +"bVK" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 4},/turf/open/floor/plating/airless,/area/space) +"bVL" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/space,/area/space) +"bVM" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 2; name = "Telecommunications External Access"; req_access = null; req_access_txt = "61"},/turf/open/floor/plating,/area/tcommsat/computer) +"bVN" = (/obj/machinery/light/small{brightness = 3; dir = 8},/turf/open/floor/plating,/area/tcommsat/computer) +"bVO" = (/obj/structure/closet/emcloset{anchored = 1; desc = "It's a storage unit for emergency breath masks and O2 tanks, and is securely bolted in place."; name = "anchored emergency closet"},/turf/open/floor/plating,/area/tcommsat/computer) +"bVP" = (/obj/structure/transit_tube{icon_state = "N-S"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/tcommsat/computer) +"bVQ" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 1; name = "Telecommunications External Access"; req_access = null; req_access_txt = "61"},/turf/open/floor/plating,/area/tcommsat/computer) +"bVR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/tcommsat/computer) +"bVS" = (/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 24; id = "syndicate_s"; name = "south of station"; turf_type = /turf/open/space; width = 18},/turf/open/space,/area/space) +"bVT" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/tcommsat/computer) +"bVU" = (/obj/structure/transit_tube{icon_state = "N-S"},/turf/open/floor/plating/warnplate{dir = 4},/area/tcommsat/computer) +"bVV" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel,/area/tcommsat/computer) +"bVW" = (/turf/open/floor/plasteel,/area/tcommsat/computer) +"bVX" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel,/area/tcommsat/computer) +"bVY" = (/turf/closed/wall,/area/tcommsat/computer) +"bVZ" = (/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "Waste Out"; on = 1},/turf/open/floor/plating,/area/tcommsat/computer) +"bWa" = (/obj/machinery/atmospherics/components/unary/tank/air,/turf/open/floor/plating,/area/tcommsat/computer) +"bWb" = (/obj/structure/grille,/obj/structure/lattice,/obj/structure/lattice,/turf/open/space,/area/space) +"bWc" = (/obj/structure/transit_tube/station{dir = 4; icon_state = "closed"; reverse_launch = 1},/turf/open/floor/plating/warnplate{dir = 4},/area/tcommsat/computer) +"bWd" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/tcommsat/computer) +"bWe" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/obj/item/device/radio/beacon,/turf/open/floor/plasteel,/area/tcommsat/computer) +"bWf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/tcommsat/computer) +"bWg" = (/obj/machinery/door/airlock/maintenance_hatch{name = "Telecommunications Maintenance"; req_access_txt = "61"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/tcommsat/computer) +"bWh" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plating,/area/tcommsat/computer) +"bWi" = (/obj/machinery/atmospherics/components/binary/pump{dir = 0; name = "Air Out"; on = 1},/obj/machinery/light/small{dir = 4},/turf/open/floor/plating,/area/tcommsat/computer) +"bWj" = (/obj/structure/transit_tube{tag = "icon-Block (NORTH)"; icon_state = "Block"; dir = 1},/turf/open/floor/plating/warnplate{dir = 4},/area/tcommsat/computer) +"bWk" = (/obj/machinery/camera/motion{c_tag = "Telecoms External Access"; dir = 1; network = list("SS13","Telecoms")},/turf/open/floor/plasteel,/area/tcommsat/computer) +"bWl" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/tcommsat/computer) +"bWm" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel,/area/tcommsat/computer) +"bWn" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/tcommsat/computer) +"bWo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/item/weapon/wrench,/obj/item/stack/cable_coil,/turf/open/floor/plating,/area/tcommsat/computer) +"bWp" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/obj/machinery/power/port_gen/pacman,/turf/open/floor/plating,/area/tcommsat/computer) +"bWq" = (/obj/machinery/door/airlock/engineering{name = "Telecommunications Chamber"; req_access_txt = "61"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/tcommsat/computer) +"bWr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall/r_wall,/area/tcommsat/computer) +"bWs" = (/obj/structure/rack,/obj/item/weapon/storage/toolbox/mechanical,/obj/item/device/radio,/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/open/floor/plasteel/yellow/side{dir = 9},/area/tcommsat/computer) +"bWt" = (/obj/machinery/requests_console{announcementConsole = 1; department = "Telecoms Admin"; departmentType = 5; name = "Telecoms RC"; pixel_x = 0; pixel_y = 30},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/tcommsat/computer) +"bWu" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel/yellow/side{dir = 1},/area/tcommsat/computer) +"bWv" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = 26},/obj/machinery/camera/motion{c_tag = "Telecoms Monitoring"; dir = 2; network = list("SS13","Telecoms")},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/tcommsat/computer) +"bWw" = (/obj/machinery/door/airlock/glass_command{name = "Control Room"; req_access_txt = "19; 61"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/tcommsat/computer) +"bWx" = (/obj/machinery/power/apc{dir = 1; name = "Telecoms Monitoring APC"; pixel_y = 25},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/tcommsat/computer) +"bWy" = (/obj/machinery/announcement_system,/turf/open/floor/plasteel/yellow/side{dir = 5},/area/tcommsat/computer) +"bWz" = (/obj/machinery/light/small{brightness = 3; dir = 8},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel/yellow/side{dir = 8; tag = ""},/area/tcommsat/computer) +"bWA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/chair/office/dark,/turf/open/floor/plasteel/yellow/corner,/area/tcommsat/computer) +"bWB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/yellow/side,/area/tcommsat/computer) +"bWC" = (/obj/structure/cable{tag = "icon-1-2"; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply,/turf/open/floor/plasteel/yellow/side,/area/tcommsat/computer) +"bWD" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/tcommsat/computer) +"bWE" = (/obj/structure/chair/office/dark,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/yellow/corner{dir = 8},/area/tcommsat/computer) +"bWF" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/yellow/side{dir = 4},/area/tcommsat/computer) +"bWG" = (/obj/structure/lattice,/obj/machinery/camera/motion{c_tag = "Telecoms External Port"; dir = 8; network = list("Telecoms")},/turf/open/space,/area/space) +"bWH" = (/obj/machinery/status_display{pixel_x = -32},/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5; tag = "every single paper bin is edited to this"},/obj/item/weapon/pen,/turf/open/floor/plasteel/yellow/side{dir = 10},/area/tcommsat/computer) +"bWI" = (/obj/machinery/computer/telecomms/monitor{network = "tcommsat"},/turf/open/floor/plasteel/yellow/side{dir = 6},/area/tcommsat/computer) +"bWJ" = (/obj/machinery/door/airlock/glass_engineering{cyclelinkeddir = 2; name = "Server Room"; req_access_txt = "61"},/obj/structure/cable{tag = "icon-1-2"; icon_state = "1-2"},/turf/open/floor/plasteel/vault{dir = 5},/area/tcommsat/computer) +"bWK" = (/obj/machinery/computer/telecomms/server{network = "tcommsat"},/turf/open/floor/plasteel/yellow/side{dir = 10},/area/tcommsat/computer) +"bWL" = (/obj/machinery/computer/message_monitor,/turf/open/floor/plasteel/yellow/side{dir = 6},/area/tcommsat/computer) +"bWM" = (/obj/structure/lattice,/obj/machinery/camera/motion{c_tag = "Telecoms External Starboard"; dir = 4; network = list("Telecoms")},/turf/open/space,/area/space) +"bWN" = (/obj/structure/cable{tag = "icon-1-2"; icon_state = "1-2"},/turf/open/floor/plasteel/vault{dir = 5},/area/tcommsat/computer) +"bWO" = (/turf/closed/wall/r_wall,/area/tcommsat/server) +"bWP" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/closed/wall/r_wall,/area/tcommsat/server) +"bWQ" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{tag = "icon-0-4"; icon_state = "0-4"},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bWR" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plating,/area/tcommsat/computer) +"bWS" = (/obj/machinery/door/airlock/glass_engineering{cyclelinkeddir = 1; name = "Server Room"; req_access_txt = "61"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/vault{dir = 5},/area/tcommsat/computer) +"bWT" = (/obj/machinery/blackbox_recorder,/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bWU" = (/obj/machinery/message_server,/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bWV" = (/obj/machinery/power/apc{cell_type = 5000; dir = 1; layer = 4; name = "Telecoms Server APC"; pixel_x = 0; pixel_y = 24},/obj/structure/cable,/turf/open/floor/plasteel/black,/area/tcommsat/server) +"bWW" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/turf/open/floor/plasteel/black,/area/tcommsat/server) +"bWX" = (/turf/open/floor/plasteel/black,/area/tcommsat/server) +"bWY" = (/obj/machinery/telecomms/bus/preset_three,/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bWZ" = (/obj/machinery/telecomms/receiver/preset_left,/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bXa" = (/obj/machinery/telecomms/processor/preset_three,/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bXb" = (/obj/machinery/telecomms/processor/preset_one,/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bXc" = (/obj/machinery/telecomms/receiver/preset_right,/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bXd" = (/obj/machinery/telecomms/bus/preset_one,/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bXe" = (/obj/machinery/camera{active_power_usage = 0; c_tag = "Bomb Testing Asteroid Aft"; desc = "A specially-reinforced camera with a long lasting battery, used to monitor the bomb testing site. An external light is attached to the top."; dir = 1; invuln = 1; luminosity = 3; name = "Hardened Bomb-Test Camera"; network = list("Toxins"); use_power = 0},/turf/open/floor/plating/asteroid/airless,/area/mine/explored{name = "Bomb Testing Asteroid"}) +"bXf" = (/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/darkred/side,/area/tcommsat/server) +"bXg" = (/turf/open/floor/plasteel/darkpurple/side,/area/tcommsat/server) +"bXh" = (/turf/open/floor/plasteel/darkgreen/side,/area/tcommsat/server) +"bXi" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/darkgreen/side,/area/tcommsat/server) +"bXj" = (/turf/closed/indestructible{desc = "A wall impregnated with Fixium, able to withstand massive explosions with ease"; icon_state = "riveted"; name = "hyper-reinforced wall"},/area/mine/explored{name = "Bomb Testing Asteroid"}) +"bXk" = (/obj/machinery/telecomms/server/presets/security,/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bXl" = (/obj/machinery/telecomms/server/presets/science,/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bXm" = (/obj/machinery/telecomms/hub/preset,/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bXn" = (/obj/machinery/telecomms/server/presets/common,/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bXo" = (/obj/machinery/telecomms/server/presets/service,/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bXp" = (/obj/machinery/telecomms/server/presets/medical,/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bXq" = (/obj/machinery/telecomms/server/presets/command,/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bXr" = (/obj/machinery/power/terminal,/obj/machinery/ntnet_relay,/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bXs" = (/obj/machinery/telecomms/server/presets/supply,/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bXt" = (/obj/machinery/telecomms/server/presets/engineering,/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bXu" = (/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/darkblue/side{dir = 1},/area/tcommsat/server) +"bXv" = (/turf/open/floor/plasteel/darkblue/side{dir = 1},/area/tcommsat/server) +"bXw" = (/turf/open/floor/plasteel/darkyellow/side{dir = 1},/area/tcommsat/server) +"bXx" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/darkyellow/side{dir = 1},/area/tcommsat/server) +"bXy" = (/obj/machinery/telecomms/processor/preset_four,/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bXz" = (/obj/machinery/telecomms/broadcaster/preset_left,/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bXA" = (/obj/machinery/telecomms/bus/preset_four,/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bXB" = (/obj/machinery/telecomms/bus/preset_two,/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bXC" = (/obj/machinery/telecomms/broadcaster/preset_right,/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bXD" = (/obj/machinery/telecomms/processor/preset_two,/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bXE" = (/obj/structure/table,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/item/weapon/stock_parts/subspace/analyzer,/obj/item/weapon/stock_parts/subspace/analyzer,/turf/open/floor/plasteel/black,/area/tcommsat/server) +"bXF" = (/obj/structure/table,/obj/item/weapon/stock_parts/subspace/ansible,/obj/item/weapon/stock_parts/subspace/ansible,/obj/item/weapon/stock_parts/subspace/crystal,/obj/item/weapon/stock_parts/subspace/crystal,/turf/open/floor/plasteel/black,/area/tcommsat/server) +"bXG" = (/obj/structure/table,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/transmitter,/obj/item/weapon/stock_parts/subspace/transmitter,/turf/open/floor/plasteel/black,/area/tcommsat/server) +"bXH" = (/obj/machinery/camera/motion{c_tag = "Telecoms Server Room"; dir = 1; network = list("SS13","Telecoms")},/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"bXI" = (/obj/structure/table,/obj/item/weapon/stock_parts/subspace/treatment,/obj/item/weapon/stock_parts/subspace/treatment,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/turf/open/floor/plasteel/black,/area/tcommsat/server) +"bXJ" = (/obj/structure/table,/obj/item/weapon/stock_parts/console_screen,/obj/item/weapon/stock_parts/console_screen,/obj/item/weapon/stock_parts/micro_laser,/obj/item/weapon/stock_parts/micro_laser,/turf/open/floor/plasteel/black,/area/tcommsat/server) +"bXK" = (/obj/structure/table,/obj/item/weapon/stock_parts/scanning_module,/obj/item/weapon/stock_parts/scanning_module,/turf/open/floor/plasteel/black,/area/tcommsat/server) +"bXL" = (/obj/structure/lattice,/obj/machinery/camera/motion{c_tag = "Telecoms External Port Aft"; dir = 2; network = list("Telecoms")},/turf/open/space,/area/space) +"bXM" = (/obj/structure/lattice,/obj/machinery/camera/motion{c_tag = "Telecoms External Starboard Aft"; dir = 2; network = list("Telecoms")},/turf/open/space,/area/space) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaacaaaaaaaaaaaaaadaaaaaaaaaaaaaacaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaacaafaafaafaafaafaafaafaafaafaafaafaafaafaacaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaafaagaahaaiaajaajaajaajaajaagaahaaiaafaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaafaakaalaamaamaamaanaamaamaamaalaaoaafaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaafaapaamaamaafaafaafaafaafaamaamaaqaafaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaraasaataataataataataasaauaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaafaajaamaafaafaafaafaafaafaafaamaajaafaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasaawaaxaayaazaaAaaBaaBaasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaacaafaahaamaafaafaaCaaDaaEaafaafaamaahaafaacaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasaaFaaxaaxaaGaaxaaxaaxaasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaHaafaaIaaJaaKaaKaaLaaMaaNaaOaaOaamaaPaafaaQaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasaaRaaxaaxaaxaaSaaxaaTaasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaafaaUaaVaafaafaafaaWaafaafaafaamaaUaafaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaXaasaasaasaaYaasaasaasaaZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaafaajaaVaafaafaafaafaafaafaafaamaajaafaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaasabbaaxabcaasaaZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaafaagabdabeaafaafaafaafaafaamaamaaiaafaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasaaxaaxabfaasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaacaafaakaalaaVabgabhabiabjabgaamaalaaoaafabkaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaraasaasaasaasaasaaxaaxabfablaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafabmabnaboabpabqabraajabsaapaaUaaqaafabtaaaabuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasabvaaxaaxabwaasaaxaaxabfaasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaabxabxabyabxabxaafabzabAabBaafabCabCabCabCabDaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasabvaaxabEabFaasaaxaaxabfaasaasabGabHaauaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaacabxabIabJabKabxabLabMabNabOabPabCabQabRabSabDaacaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasabvaaxaaxabTaasabUabVabUaasaaxaaxaaxaasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaabxabWabXabYabxabZacaacbaccacdabCaceacfacgabDaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasabvaaxaaxaaxachaaxaaxaaxaciaaxaaxaaxaasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaabxacjackaclacmacnacoacpacqacracsactacuacvacwaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasabvaaxaaxaaxacxaaxaaxaaxabUaaxaaxaaxaasacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaczacAacBacCacDacEacEacFacEacEacGacHacIacJabCaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaraasaasaasaasaasaasacKaaxaaxaasaasaasaasaasaasaauaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLacLacLacLacLacLacLacLacLacLacLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaacMacNacOacPacQacPacRacSacRacTacUacTacVacWabCaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasacXacYacZadaadbaasaaxaaxaaxaasadcaddadeadfadgaasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadhaaaaaaaacaaaaacaaaaacaaaaacaaaaaaadhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaacacMadiadjacPadkacPadladmadlacTadnacTadoadpabCaacaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasadqacYacYacYacYadraaxaaxaaxaasaaxaaxaaxabEadsaasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLaacadtadtaduadtaduadtaduadtadtaacacLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaacMadiadjacPadkacPadladmadlacTadnacTadoadpabCaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasacXacYacYacYacYadvaaxaaxaaxadwaaxaaxaaxaaxaaxaasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaadtadxadyadzadAadBadCadDadtaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabuaaaaaaacMadEadFacPadGacPacRadHacRacTadIacTadJadKabCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasacYacYacYacYacYadLaaxaaxaaxadMaaxaaxaaxaaxadNaasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacadtadtadOadPadQadRadSadTadUadtadtadtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaacabxadVacmadWadXadYadZadZaeaadZaebaecaedacwaeeabCabCaacaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaefaegaehaeiaejaekaasaaxaaxaaxaasaelaemaaxaaxadNablaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacadtaenaeoaeoaeoaepaeoadTaeoaeqaeradtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaabxaesaetaeuaevaewaexaeyaezaeAaeBaeCaeDaeEaeFaeGabCaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasaeHacYaeIaasaasaasabUaeJabUaasaeKaasaaxaaxaaxaasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacadtaeLaeoaeMaeNaeOaeMadTaeoaePaeQadtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaabxaeRaeSaeTabxabxaeUaeVaeWaeXaeYabCabCadpadpaeZabCaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasafaafbafcaasaaaaasafdafdafdaasaasaasafeaffafgaasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacadtadtafhafiafjafkaflafmafnadtadtadtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaabxafoafpafqabxafrafsaeVaftaeXafuafvabCafwafwafxabCaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasafdafdafdaasaaaaaXafyafzafAaaZaaaaasafdafdafdaasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafBafCafDafEafFafGaeoafHaeoafIaeoadTaeoafJafKadtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaacabxabxabxabxabxafLafMaeVafMafNafMafOabCabCabCabCabCaacaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaXafyafzafAafPaaaaaaaaaaaaaaaaaaaaaafQafyafzafAaaZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafRafSafTafUafVafWaeoafHaeoafIaeoadTaeoafXafYadtaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaacaaaaacaaaafZagaagbacRagcacRagbagdafZaaaaacaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafRageagfaggafVaghaghagiaghagjaghagkaghaghagladtaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaacaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaacRacRacRacRagmacRacRagnacRaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafRagoagpagqafVaghagragsagtagjaguagvagwaghagxadtaabaabaabaabaabagyagyagzagzagzagyagzagzagzagyagyaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRacRagAacRacRagBaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafBagCagDagEafVaghagFagGagHagjagIagJagHaghagKadtaacaacaacaacaacagzagLagMagMagMagNagMagOagPagPagzaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRagQagRagQacRagBaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafBafBafBagSagTagUafVaghagjagVaghagWagXagYaghaghaghadtaacaacaacaacaacagzagZagZagZagZagZagZagZagZagZagzaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahbaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahcahdaheahfahgahhahiahjahkahlahmahnahoahpahqahrahsahtahtahtahtahtahtahtahuahvagZagZagZagZahwahxahyagyaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacagBaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahcahzahAahBahCahDahEahFahGahHahIahIahJahKahLahMahNahtahOahPahQahRahSahtahTahUagMagMagMahVahWahXahYagyaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacagBaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahZahZahZaiaahZaiaaaaafBaibaicaidaieaifaigaihaiiaijaikailaimainaioaipaiqahtairaisaisaitaiuahtaivagyagyagyagyagyaiwagyagyagyaacaacaacaacaacaixaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacagBaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaiyaizaiAaizaiyaiyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahZaiBaiCaiDaiEaiaaiaafBafBafBaiFaiGaiHaigaiIaiIaiIaghaiJaiKaiLaghaghaghahtaiMaisaiNaiOaiPahtaiQaiRaiSaiTaiUaiVaiWagyaiXaiYaiYaiYaiYaiYaiYaiYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacagBaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiyaiyaiyaiZajaajbajcaiyaaaajdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahZajeajfajgajhaiaajiajjajjajkajkajlajkaigaghaghaghaghajmajnajoajpajqajrahtajsajtajuajvajwahtajxajyajzajzajAajBajCagyajDajDajEajFajGajHajIaiYaixaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacahbaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiyajJajKajaajLajMaiyaiyaizaiyajNajOajOajOajPaiyaizaizaiyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaajQajgajRajSaiaajTajUajVajkajWajXajYajZakaakbakcakdakeakfakgakhakiakjahtakkaklakmaknakoahtakpajyajyajyajyajyakqakraksaktakuakvakwakwakxakyaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacagBaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaizajaaiyakzakAakBaiyakCakDakEakFakGakHakGakDakIakFakJaiyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaakKaiaaiaaiaakLakMakNajkakOakPakQakRakSakTakUakVakWakXakYakZalaalbahtalcaklaisaknalcahtaldalealfalgalealhalialjajDalkallalmalnallaloalpaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacagBaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaizalqaiyalralsaltaiyaluaiyaiyalvalwalwalwalxaiyaiyaluaiyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahZajgahZaaaaiaalzalAalBajkalCakPalDajZalEalFalGalHalIalJalKalLalLalLalLalMalNalOalPalOalQalRalSalTalUalSalValWalXalYalZamaambamcamdamealpaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacagBaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiyalqajKamfamgamhaiyaluaiyaaaaaaaaaaaaaaaaaaaaaaiyaluaiyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahZajgahZaaaaiaaiaamiaiaajkamjajkamkajZamlammamnamoampamqamralLamsamtamuamvamwamxamyamzamAaldaleamBamCaleamDamEaljajDamFamGamHamIallamJalpaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacagBaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiyaiyaiyaiyamKaiyaiyaluaizaaaaaaamLamMamLaaaaaaaizamNaizaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaiaaiaaiaamOaiaaiaaiaamPamQamRamRamSamTamUajZamVajZajpajpamWamXamYamZanaanbancandaneanfanganhanianjalgankamCalganlanmannanoanpanqanransantanranuaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacahbaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiyajbanvaiyanwaluaizaaaamLamLanxamLamLaaaaizaluaizaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaiaanyajgajgamPanzanzanAaiaaiaaiaanBanCanCanDanEajZanFanGanHanIanJamAanKamxamxamwamxanLanMamxanNanOanPanPanQanRanSanTagyajDajDajDajDajDajDaiYaiYanUagRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacagBaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiyaiyajbaiyaiyanValuaizaaaamLanWanXanYamLaaaaizaluaizaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaacaabaabaabadhaabaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaiaaiaanZaiaaiaaoaajgajganZaobaocaiaaiaaiaaiaaiaaiaajZaodaoeanHanIanJaofaogaohaoiaojaokamyaolaomaonaooaopaoqaoraosaotaouaovaowaowaoxaowaoyaozaoAaoBaoCagRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacagBaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaizaoDaoEakGakGakGaoFaiyaaaamMaoGanXaoHamMaaaaiyaluaiyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaacaaaaaaaaaaacaaaaaaaaaaacaaaaaaaaaaacaaaaaaaacaaaaaaaaaaaaaaaahZaoIaoJaoKaiaaoaaiaaiaahZaiaaiaaiaaoLaoMaoMaoMaoLaoNaoOaoPakeaoQanJaoRaoSaoSaoTaoUaoSaoVaoSaoWaoXagyagyagzaoYagzagyajpajpajpajpajpajpajpaoZapaapbapaagRaaaaaaaacaaaaaaaaaaacaaaaaaaaaaacaaaaaaaaaaacaaaaaaaaaaaaaacagBaacaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaiyaiyaluapcapcapcapcapcapcamLapdanXapeamLaiyaiyaluaiyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaapfapgaphaaaapfapiaphaaaapfapiapjaaaapfapiapjaaaaabaaaaaaaaaaaaaaaahZapkaplajgaiaaoaaiaapmapnapoaiaaaaaoLappapqapraoLaoNaoNajpanHapsaptapuapvapwapxapyapzapAapzapvapBapCapvapvapDapEapFajpapGapHapIapHapHajpapJapaaaaaaaaaaaaaaaaapKapLapLapLapMapLapLapLapMapLapLapLapNaaaaaaaaaaaaaacagBaacaaaaaaaacaaaaacaacaacaacaacaaaaaaaaaaiyaluapcapOapPapPapQapcapRapRapSapRapRaiyapTaluaiyaiyaiyaizaizaiyaizaizaiyaiyaiyaiyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaapfapUaphaaaapfapVaphaaaapfapVapjaaaapfapVapjaaaaabaaaaaaaaaaaaaaaahZahZapWajgaiaaoaahZapXajgapYahZaaaaoMapZaqaaqbaqcaqdapHaqeaqfanIaqgaqhanIanIaqganIaqiaqfaqganIaqganIaqjaqkaqlaqmaqnaqoaqpaqqaqraqsaqtajpapJapaaaaaaaaaaaaaaaaaquaqvaqwaqxaqyaqzaqAaqBaqCaqDaqEaqFaquaaaaaaaaaaaaaqGahbaacaaaaaaaqHaqHaqHaqHaqHaqHaqHaaaaaaaaaaiyaqIaqJaqKaqLaqMaqNapcapcapcaqOapcapcaiyaqPaluanvaoEakGakGakGaqQakGakGakGakGaqRaizaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaapfapUaphaaaapfapVaphaaaapfapVapjaaaapfapVapjaacaabaaaaaaaaaaaaaaaaacaiaaiaanZaiaaqSaqTaqUaqVaqWahZaaaaoLaqXaoLaqYaoLaoNaoNajpaqZaraarbarcardaraarbareardarfarbargarbarhariarjarhardarkarlarmarnaroarparqajpapJapaaaaaaaaaaaaaarrarsartaruaruarvaruaruaruarvaruaruarwarxarragRagRagRaryagBaacaaaaaaaqHarzarAarBarCarDaqHaaaaaaaaaaiyarEarFarGarHarIarJapcapcarKarLarMapcarNajbaluaiyaluarOarOarOarOarOarOarOarPaluaiyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaapfapUaphaaaapfapVaphaaaapfapVapjaaaapfapVapjaaaaaaaaaaaaaaaaaaaaaaacaacahZajgaiaaoaaiaarQarRarQaiaaaaaoLarSarSarTaoLarUarUajparVarWarXarYarZasaarXasbarZascasdasbaseasfasgajpajpashajpajpasiapHapHapHasjajpaskapaaslaslaslaslarrasmasnasoarvaspaspasqaspasparvasrassastarraryasuaryaryagBaacaaaaaaaqHasvaswasxasyaszaqHaaaaaaaaaapcapcapcasAapcasBapcapcapcapcaqOapcapcasCajbasDasEasFarOasGasGasGasGasGarOaiyaluaiyaixaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaapfapUaphaaaapfapVaphaaaapfapVapjaaaapfapVapjaaaaaaaaaaaaaaaaaaaaaaacaacahZajgajgaoaahZasHasIasJahZaaaaoMasKarSasLaoLaoNajpajZasMasNasOajpasMasPasOajpasMasPasOajpasQaqhasRasSasTasUasVasWasXasWasWasWasWajpasYasWasZasZasZasZarrataatbatcarvatdatdatdatdatdarvateassatfarratgathatiaryagBaacaaaaaaaqHatjatkatlatmatnaqHaaaaaaaaaatoatpatqatrarFatsattatuatvatwatxatyarOarOarOarOarOarOatzasGasGasGasGasGatzarOatAarOaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaapfapUaphaaaapfapVaphaaaapfapVapjaaaapfapVapjaaaaaaaaaaaaaaaaaaaaaaaaaacaiaaiaaiaaoaaiaaiaaiaaiaaiaaaaaoLatBarSarSatCatDatEajZatFatGatHajpatIatJatKajpatLatMatNajpatOaqhasRatPatQatRatSatTatUatVatWatXasWatYapJatZauaaubaucaudarraueasnaufarvaugauhauiaujaukarvaulassaumarraryaunaryaryauoaryaaaaaaaqHaupauqaurausautaqHaaaaaaaaaatoauuauvauwauxauyauzauAauBauCauCauCauDauEauFauGauHauIatzasGasGasGasGasGatzauJauKarOaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaapfapUaphaaaapfapVaphaaaapfapVapjaaaapfapVapjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaauLanzanzauMauNaiaaaaaoLauOauOauOaoLaoNauPajZauQauRauRauSauTauRauRauSauTauRauRauSauUauVauWajpauXauYauZasWavaasWavbasWasWasWavcavaavaavaavaavaavaavdaveavfarvavgavgavgavgavgarvavhaveaviarravjavkaryavlavmavnaaaaaaaqHavoavpavqavraqHaqHaaaaaaaaaapcapcapcapcapcavsavtavuavvavwavxavyavzavAavAavBavAavAavCasGasGasGasGasGavCavDavEatzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaacaabaaaapfapUaphaaaapfapVaphaaaapfapVaphaaaapfapVaphaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavFavGavGavGavGaoaajgaiaaiaaoLavHavHavHaoLajpavIajpavJavKavKavKavKavKavKavLavKavKavKavKavMavKavNavKavKavKavKavOavaavPavQavRavSasWavTavUavVavWavXavYavaavZawaawbawcawdawdawdawdawdawcaweawaawfawgawhawiawjawkawlaryaaaaaaaacaacawmawnawoaacaacaaaaaaaaaawpawqawrawsarFawtawuawvawwawxawyawzawAawBawBawCavAavAatzasGasGasGasGasGatzawDawEatzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaacaaaaaaaaaawFaaaaaaaaaawGaaaaaaaaaawGaaaaaaaaaawGaaaaaaaaaaaaaaaaaaaaaaaaaaaavFawHavFawIawJawKavGaoaajgawLaiaaiaaiaaiaaiaaiaaiaawMawNavKawOawPawQavKavKawRawSawTawTawTawTawUawVawWavKavKawXawYawZavaaxaaxbaxcaxdaxeaxfaxgaxhaxiaxjaxkavaaxlaxmaxnaxoaxpaxqaxraxsaxtaxuaxvaxwaxxarravjaxyaryaxzaxAaryaaaaacaxBawoawmaxCawoawoaxBaaaaaaaaaawpaxDaxEaxFaxGauyaxHaxIaxJaxKaxLaxMaxNaxOaxOaxPavAavAatzasGasGasGasGasGatzaxQaxRatzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaacaxSaxTaxTaxUaxVaxWaxWaxWaxWaxWaxWaxWaxWaxWaxWaxWaxWaxWaxWaxXaxTaxTaxTaxTaxTaxTaxYaxZayaaybaycaydayeayfanzaygayhayiayjaykaylaymaiaaynayoaypayoayqayravKavKaysaytayuayuayuayuayvaywayxayyayyayzavKayAavaayBayCayDayEasWayFayGayHayIayJayKavaayLayMayNayNayNayNayOayNayNayNayNayPayQayRayRaySayRayTayUayUayUayUayUayVayWayXayYayZazaaaaaaaaaaapcapcapcapcapcazbaxHazcazdazeawyatxavzavAavAazfavAavAavCasGasGasGasGasGavCazgazhatzaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaacaaaaaaaaaaziaaaaaaaaaazjaaaaaaaaaazjaaaaaaaaaazjaaaaaaaaaaaaaaaaaaaaaaaaaaaavFavFavFazkazlazmavGanZajgaznazoazoazpaiaaiaaiaaiaaiaaiaaiaaiaazqazrazrazrazsaztazsazrazrazrazuavKazvazwazwazwazwazwazxazxazxazxazxavaazyazzazAazBazCazDavaazEazFayNazGazHazIazJazIazKazGayNazFazEayUazLazMazNazOazPazQazRazSayUazTayWazUazVazWawoaaaaaaaaaazXazYazZaAaarFaAbaAcaAdatxatxaAeatxavzaAfaAgaAhaAiaAjatzasGasGasGasGasGatzaAkaAlarOaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaacaabaaaapfaAmapjaaaapfaAnapjaaaapfaAnapjaaaapfaAnapjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavFavGavGavGavGaAoaApajgaAqajgauLanzanzaAranzanzanzaAsaAtaAuazraAvaAwaAxaAyaAzaAAaABazraACaADazvazwaAEaAFaAGaAHaAIaAJaAFaAKazxavaaALaAMaANaAOaAOaAPaAQaARaASayNaATaAUaAVaAWaAXaAYaAZaBaawbaBbayUaBcaBdaBeaBfaBfaBfaBgaBhaBiaBjaBkaBlaBmaBnawoaaaaaaaaaazXaBoaBpaBqaBrauyaBsaBtaBuaBvaBwaBxarOarOarOarOarOarOatzasGasGasGasGasGatzarOaByarOaacaacaaaaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaapfaAmapjaaaapfaAnapjaaaapfaAnapjaaaapfaAnapjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaaiaahZahZahZaiaaiaaiaaiaaiaaiaaiaaBzaBAanZazraBBaBCaBDaBEaBFaBGaAxazraBHavKazvazwaBIaBJaBKaBLaBLaBLaBLaBMazxavaaBNaBOaBPaBPaBQaBRaBSaBTaBUayNaBVaBWaBXaBYaBZaAXaCaayNaCbaCcaCdaCeaCfaCgaChaCiaCjaCkaClayUaCmayWaCnazVaCoazaaaaaaaaaaapcapcapcapcapcazbaBsaCpaCqaCqaCraCqaCqaCsaCtaCuaCqaCvarOasGasGasGasGasGarOaCwaCxaCwaCwaCwaCyaCwagRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaapfaAmapjaaaapfaAnapjaaaapfaAnapjaaaapfaAnapjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaBzazrazrazrazraCzaCAaCBaCCaCDaCEazrazuavKaCFazwaCGaCHaBLaBLaBLaBKaCIaCJazxavaaCKaxiaCLaCMaCNazAavaaCOaCPayNaCQaCRaCSayNaCTaCUaCVayNaCWaCXayUaCYaBfaCZaDaaDbaDcaDdaDeayUazaaDfaCnazVayZazaaaaaaaaaaaaaaDgaDhaDiaDgaDjaDkaDlaCqaDmaDnaDoaCqaDpaDqaDraCqaCqarOarOarOarOarOarOarOaDsaCxaCwaDtaDuaDtaDvagRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaapfaAmapjaaaapfaAnapjaaaapfaAnapjaaaapfaAnapjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaBzazraDwaDxazraDyaDzaDAaDzaDBaDCazraDDavKazvazwaDEaDFaBLaBLaBLaBLaDGaDHazxavaaDIaxiaDJaDJaDKaDLavaaCOaBUayNayNayNayNayNayNayNayNayNaCbaCXayUayUayUaDMayUayUaDMaDNayUayUaDOayWaCnazVazWawoaaaaaaaaaaaaaDgaDPaDQaDgazbaBsaCpaCqaDmaDRaDSaDTaDTaDUaDTaDVaDWaDXaCqaDYaDZaEaaEbaCwaDtaCxaCwaEcaCwaCwaCwagRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaapfaAmapjaaaapfaAnapjaaaapfaAnapjaaaapfaAnapjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEdaEeaEeaEeaEdaaaaaaaaaaaaaaaaiaaBzazraEfaEgaEhaDzaEiaEjaDzaEkaElazraEmaEnaEoazwaEpaDFaEqaEraEsaEtaDGaEuazxavaavaavaavaaEvaEwaExavaaCOayMarraEyaacaacaacaacaacaEyarrayMaCXaxBaEzaEAaEBaEBaEBaEBaECaEDazaaEEayWaCnazVaBnawoaaaaaaaaaaaaaDgaEFaEGaDgaEHaEIaCpaCqaDmaEJaEKaELaEJaEJaEJaCqaEMaENaCqaEOaEPaEQaERaCwaDtaCxaCwaESaETaCwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaapfaAmapjaaaapfaAnapjaaaapfaAnapjaaaapfaAnapjaacaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEdaEUaEVaEWaEdaaaaaaaaaaaaaaaaiaaEXazrazrazrazrazrazrazrazraEYazrazraEZaFaaFbazwaFcaFdaFcazwazwaFcaFeaFcazwaFfaFgaFhavaavaavaavaavaaFiaFjarraxBaFkaFkaFkaFkaFkaxBarraFjaFlaxBazaaFmawoawoawoawoaFnazaazaazaaFbaFoaEZazaapcapcaFpaFpaFpaDgaFqaDgaDgazbaBsaCpaCqaCqaEJaFraCqaFsaCqaFtaCqaFuaENaCqaFvaFwaDtaERaCwaDtaCxaFxaDtaCwaCwaCwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaapfaAmapjaaaapfaAnapjaaaapfaAnapjaaaapfaAnapjaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaEdaEdaEdaEdaEdaEdaFyaFzaFyaEdaEdaEdaEdaEdaEdaiaaFAaFBaAtaAtaAtaFCaFCaFCaFDaFEaApaiaaFFaFGaFHaFIaFIaFJaFIaFIaFKaFLaFMaFIaFIaFIaFIaFNaFOaFPaFQaFPaFRaFSaFTaFUaFUaFVaFVaFVaFVaFVaFUaFUaFTaFWaFXaFUaFUaFUaFUaFUaFUaFUaFUaFYaFUaFHaFZaBmaGaaGbaGcaGcaGcaGcaGcaGdaGcaGcauyaBsaCpaGeaCqaEJaGfaCqaGgaCqaGgaCqaCqaGhaCqaCwaCwaGiaCwaCwaDtaCxaCwaESaGjaGkaCyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaapfaGlaphaaaapfaGmaphaaaapfaGmaphaaaapfaGmaphaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaEeaGnaGoaGpaEdaGqaGraFyaGsaGtaEdaGuaGuaGuaEeaiaaGvaGwaGxaGyaGyaGyaGyaGyaGyaGzaGAaiaazVaGBaGCaCmaCmaGDaGEaGEaGEaGFaGGaGEaGEaGEaGGaGFaGEaGEaGHaGEaGIaGJaGKaGLaGEaGMaGMaGMaGMaGNaCmaCmaGOaGPaGQaCmaCmaCmaCmaCmaCmaCmaCmaFaaCmayWaGRaGSaGTaGUaGVaGVaGVaGVaGWaGXaGVaGVaGYaGZaHaaHbaHcaHdaHeaCqaCqaCqaCqaCqaHfaCxaCwaHgaHhaHhaHhaHiaHhaHjaCwaDtaCwaHkaCwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaacaaaaaaaaaaacaaaaaaaaaaacaaaaaaaaaaacaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaEeaHlaHlaHmaEdaHnaGraFyaGsaHoaEdaHpaHqaHqaEeaGyaGyaGyaGyaGyaHraHsaHtaHuaGyaGzaiaaiaazVaCmaHvaHwaHxaHyaHxaHxaHxaHzaHAaHxaHxaHBaHAaHCaHxaHDaHEaHDaHDaHFaHGaHHaHDaHDaHDaHDaHDaHIaHDaHDaHGaHFaHJaHDaHKaHDaHLaHMaHDaHKaHDaHEaHDaHNaHOaHPaHQaHRaxMaHSaxMaxMaHTaHUaxMaxMaxMaHSaHVaHWaCqaHXaEJaHYaHZaCqaIaaIbaIcaCxaCwaIdaCwaIeaDtaIfaDtaIdaGjaDtaCwaIgaCwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaacaabaabaabaabaabaabaabaabaabaabaabadhaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaIhaHlaHlaIiaEdaIjaEeaIkaEeaIjaEdaIlaHqaHqaImaInaIoaIpaIoaIqaIraIsaIsaItaGyaGzaiaaIuaIvaCmaIwaIxaIyaIzaIyaIxaIAaIBaICaIDaIEaIEaIFaIGaIEaIHaIHaIHaIHaIHaIHaIIaIHaIHaIJaIKaILaIHaIHaIHaIMaINaIOaINaIPaINaIMaIQaIRaISaIRaIQaIQayWaCnazVaITaITaITaITaIUaIUaIUaIUaIUaIUaIUaIUaIUaIVaCqaCqaCqaCqaCqaCqaIWaIVaIXaIYaIZaIdaJaaJbaDtaDtaDtaIdaCwaCwaCwaCwaJcaJdaJcaJcaJeaJeaJcaJcaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEdaEeaJfaEeaEdaJgaFyaFyaFyaJgaEdaEeaJhaEeaEdaJiaJiaJiaJiaGyaJjaJkaJlaJmaGyaGzaiaaJnaIvaCmaJoaJpaJqaJraJsaIxaJtaJuaJvaJwaIEaJxaJyaJzaIEaJAaJBaJCaJDaIHaJEaJFaJGaIHaIHaIHaIHaIHaJHaJIaIMaJJaJKaJLaJMaJNaJOaJPaJQaJRaJSaJTaIQaJUaCnaJVaITaJWaJXaJYaIUaJZaKaaKbaKcaKdaKeaKfaKgaKhaKiaKjaKkaKlaKmaKnaKoaIVaKpaKqaHhaKraJaaKsaCwaKtaDtaKuaHhaHhaKvaKwaJcaJdaJcaKxaKyaKzaKAaJcaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEdaKBaFyaFyaFyaFyaFyaFyaFyaFyaFyaFyaFyaKBaEdaaaaaaaacaJiaGyaJiaJiaKCaKDaGyaKEaGyaGyaKFaKGaKHaKIaKJaKKaKLaIxaKMaKNaKOaKPaIEaKQaKRaKSaIEaKTaKUaJEaKVaIHaKWaKXaJEaKYaKZaLaaJEaLbaJEaLcaIMaLdaLeaLfaLgaLhaJOaLiaLjaLkaLlaJSaLmaLnaHOaLoaLpaLqaLraLsaLtaLuaLvaLwaLxaLyaLzaIUaIUaIVaLAaLBaLBaLBaLCaLBaLBaIVaCwaCwaCwaCwaCwaCwaCwaCwaCwaCwaCwaCwaLDaLEaJcaLFaLGaLHaLIaLJaLKaJeaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEeaLLaFyaLMaLNaFyaLOaLPaLOaFyaLMaLNaFyaLQaEeaaaaaaaacaJiaLRaLSaLSaLTaLUaLVaLWaLXaGyaIvaCmaIwaIyaLYaLZaMaaIxaIDaIDaIDaIDaIEaIEaIEaIEaIEaIHaIHaMbaIHaIHaLaaMcaMdaMdaMdaMdaMdaMdaMeaMfaIMaMgaLeaMhaLgaMiaJOaMjaMkaMlaMmaMnaMoaMpaMqaMraMsaMtaMuaMvaMwaMxaMyaMyaMyaMzaMAaMBaMCaIVaMDaMEaMFaMGaMGaMHaLBaMIaaaaaaaaaaMJaMJaMJaMJaMJaaaaaaaaaaCwaLDaMKaJcaMLaMMaMMaMMaMMaMNaJcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEeaLLaFyaLMaLNaFyaMOaMPaMQaFyaLMaLNaFyaLQaEeaaaaaaaacaJiaMRaIsaIsaMSaMTaMUaMVaMUaMWaMXaCmaIwaIxaIxaIxaIxaIxaLaaMYaMZaNaaJEaJEaJEaNbaJEaJEaNcaJEaNdaNeaJEaKXaNfaNfaNfaNfaNfaNfaNgaNhaIMaNiaNjaNkaNlaNmaJOaNnaNoaNpaNqaNraIQaJUaNsaNtaITaNuaNvaNwaNxaNyaNzaNAaNzaNBaNCaIUaIUaIVaNDaNEaLBaNFaLBaNGaNHaMIaaaaaaaNIaNIaNJaNJaNJaNIaNIaaaaaaaCyaLDaNKaNLaNMaNNaNNaNOaNPaNQaJeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEdaLLaFyaLMaLNaFyaLOaNRaLOaFyaLMaLNaFyaLQaEdaJiaJiaJiaJiaJiaNSaIsaNTaNUaIsaNVaNWaNXaNYaNZaOaaObaIHaOcaOdaOeaOeaOfaOgaOhaOiaOjaOkaOlaOlaOmaOnaOnaOnaOoaOnaOpaNfaOqaOraOsaOtaNfaOuaOvaIMaOwaOxaOyaOzaOAaIMaIQaIQaIQaIQaIQaIQaOBaNsaJVaITaOCaODaOCaIUaOEaOFaOGaNzaOHaOIaIUaOJaIVaOKaOLaOMaIVaLCaONaLCaMIaaaaaaaNIaNIaOOaOOaOOaNIaNIaaaaaaaCyaLDaOPaOQaORaOSaOTaOUaOVaOWaJcaacaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabadhaabaabaabaabaabaabaabadhaabaabaabaacadhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaOXaKBaFyaFyaFyaFyaFyaFyaFyaFyaFyaFyaFyaKBaOXaInaIoaIpaIoaIqaIsaIsaIsaNUaIsaOYaOZaPaaIvaNsaIwaPbaIHaPcaPdaPeaPeaPfaPeaPeaPeaPeaPeaPgaPgaPhaPgaPgaPgaPgaPgaPiaNfaPjaPkaPlaPmaPnaPoaPpaIMaIMaIMaPqaIMaIMaIMaNcaPraPsaPtaPuaIHaOBaNsaJVaNxaPvaPwaPvaIUaPxaPyaIUaNxaPzaPAaIUaIVaIVaPBaPCaPDaIVaIVaIVaIVaIVaIVaIVaNIaOOaOOaOOaOOaOOaNIaaaaaaaCyaLDaPEaJcaJcaJcaJcaPFaPGaPHaJcaacaaaaaaaaaaaaaaaaaaaaaadhaaaaaaaacaaaaaaaaaaacaaaaaaaaaaacaaaaaaaaaaacaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEdaLLaFyaFyaEdaEdaEeaPIaEeaEdaEdaFyaFyaLQaEdaJiaJiaJiaJiaJiaPJaIsaPKaPLaIsaOYaPMaPaaIvaNsaIwaEEaIHaPNaPeaPeaPOaPPaPQaPRaPSaPTaPUaPgaPgaPVaPgaPWaPXaPYaPZaQaaNfaQbaQcaQdaQeaNfaQfaQgaMdaMdaMdaQhaOnaQiaOnaOnaOnaOnaOnaQjaIHaOBaNsaFFaQkaQlaQmaQlaQnaQoaQpaQqaQraQsaQtaQkaQuaQvaQwaQxaQyaQzaQAaQBaQCaQDaQEaQDaQFaOOaOOaOOaOOaOOaNIaaaaaaaCyaQGaQHaQIaQIaQJaQKaQLaQMaQNaJcaacaacaaaaaaaaaaaaaaaaaaaabaaaaQOapgaQPaaaaQOapgaQPaaaaQOapgaQPaaaaQOapgaQPaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaOXaKBaFyaLQaEdaQQaKBaKBaKBaQRaEdaLLaFyaKBaQSaInaIoaQTaIoaIqaIsaIsaIsaNUaIsaOYaQUaPaaIvaNsaQVaIHaIHaPNaPeaPeaQWaQXaQYaQZaRaaRbaRcaPgaRdaReaRfaPYaPYaPYaPgaRgaNfaRhaRiaRjaNfaNfaRkaRlaRkaRkaRkaRkaRkaRmaRkaRkaRkaRkaRkaKXaIHaRnaRoaRpaRqaMyaMyaRraMyaMyaRsaRtaRuaRvaRwaRxaRyaRzaRAaRBaRyaRCaPDaPDaPDaRDaREaRDaRFaOOaOOaOOaOOaOOaNIaaaaaaaCwaRGaESaDtaDtaRHaCwaCwaCwaCwaCwaCyaCwaaaaaaaaaaaaaaaaaaaabaaaaQOapUaQPaaaaQOapUaQPaaaaQOapUaQPaaaaQOapUaQPaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEdaLLaFyaLQaEdaKBaKBaKBaLLaRIaEdaLLaFyaLQaEdaJiaJiaJiaJiaJiaNSaIsaRJaRKaIsaRLaRMaRNaROaRPaRQaRRaRSaRTaRUaRVaRWaRXaRYaRbaRZaSaaSbaPgaScaSdaSeaPYaSfaSgaPgaShaNfaNfaSiaNfaNfaSjaRkaSkaSlaSmaSnaSmaSlaSoaRkaSpaSqaSraRkaSsaRkaStaHxaHPaRxaSuaSvaSuaSuaSuaSwaSxaSyaSzaSAaIUaSBaSCaSDaQyaSEaSFaQyaQyaSGaMIaMIaMIaNIaSHaOOaOOaOOaOOaNIaaaaaaaCwaCwaCwaDtaCwaSIaCwaSJaCwaSKaSLaSMaCwaaaaaaaaaaaaaaaaaaaabaacaQOapUaQPaaaaQOapUaQPaaaaQOapUaQPaaaaQOapUaQPaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEdaSNaSNaSNaEdaQQaKBaKBaLLaSOaEdaSNaSNaSNaEdaaaaaaaacaJiaMRaIsaIsaIsaSPaSQaSQaSQaSRaSSaHOaSTaSUaSUaSVaSWaSUaPeaPeaPeaPeaSXaPeaPeaPgaSYaSZaTaaPYaTbaTcaTdaTeaTfaTgaThaTiaTjaTkaRkaTlaTmaSlaTnaSlaToaTpaRkaTqaTraTsaTtaTuaRkaOBaCmaJVaNxaTvaTwaTxaTxaTxaTxaTyaSyaNzaTzaIUaTAaSCaTBaQyaTCaQyaQyaQyaTDaRDaTEaRDaTFaOOaOOaOOaOOaOOaNIaaaaaaaCyaTGaTHaDtaCwaRHaCwaDtaFxaDtaDtaDtaCyaaaaaaaaaaaaaaaaaaaaaaaaaQOapUaQPaaaaQOapUaQPaaaaQOapUaQPaaaaQOapUaQPaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEdaTIaTIaTIaEdaSNaSNaSNaSNaSNaEdaTIaTIaTIaEdaaaaaaaacaJiaTJaTKaTLaTMaTNaTNaTNaTOaGyaIvaCnaIwaSUaTPaTQaTRaSUaTSaTTaTTaTUaTVaTWaPeaPgaPgaPgaPgaTXaTYaTZaPgaUaaUbaUcaUdaUeaUfaUgaRkaUhaUiaUiaUjaSlaSlaUkaRkaUlaUmaUnaUoaUpaUqaUraFIaUsaIUaNxaUtaUuaUvaNxaIUaIUaSyaNzaUwaIUaUxaSCaUyaQyaSEaQyaQyaQyaUzaUAaUBaUAaUCaOOaOOaOOaOOaOOaNIaaaaaaaCyaUDaDtaUEaCwaRHaCwaDtaCwaDtaUFaUFaCyaaaaaaaaaaaaaaaaaaaaeaaaaQOapUaQPaaaaQOapUaQPaaaaQOapUaQPaaaaQOapUaQPaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEdaTIaTIaTIaTIaTIaEdaaaaaaaaaaaaaaaaaaaacaJiaUGaUGaUHaUHaUIaUJaUIaUKaUKaULaFoaUMaUNaUOaUPaUQaSUaURaUSaUTaUTaUUaUTaUVaUWaUXaUYaPgaPgaUZaPgaPgaVaaPgaNfaVbaNfaNfaVcaRkaVdaVeaVeaVfaVeaVgaVhaRkaViaRkaVjaVkaVlaRkaOBaCmaNtaIUaVmaVnaVoaVpaVqaVraVsaSyaNzaVtaIUaVuaVvaVwaVxaVyaQvaVxaVzaVAaIVaIVaIVaNIaOOaOOaOOaOOaOOaNIaaaaaaaCwaCwaCwaCwaCwaRHaVBaDtaCwaVCaVDaVEaCyaaaaaaaaaaaaaaaaaaaaaaaaaQOapUaQPaaaaQOapUaQPaaaaQOapUaQPaaaaQOapUaQPaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVFaVFaVFaVFaVFaVFaVFaVFaVFaVFaVGaVGaVGaVGaUHaVHaVIaVIaVJaVKaUIaIvaCnaVLaSUaSUaVMaSUaSUaVNaUTaVOaVOaVPaUTaUTaUTaUTaVQaPgaVRaVSaVTaVUaVVaPgaVWaVXaVYaNfaVZaWaaWbaWaaWbaWcaUeaWdaUeaWdaWeaRkaWfaWgaWhaRkaWiaCmaJVaIUaWjaSzaNzaNzaMAaWkaWlaWmaWnaMyaRqaWoaWpaWqaWoaWoaWraWsaWtaQyaIVaaaaaaaNIaOOaOOaOOaOOaOOaNIaaaaaaaCyaWuaWvaWvaWvaWwaCwaCwaCwaCwaCwaCwaCwaaaaaaaaaaaaaaaaaaaaaaaaaQOapUaQPaaaaQOapUaQPaaaaQOapUaQPaaaaQOapUaQPaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVFaWxaWxaWyaWzaWzaWzaWAaWzaWzaWzaWBaWCaWDaUHaWEaWFaWGaWHaWIaWJaWKaWLaWMaSUaWNaWOaWPaSUaWQaUTaWRaWSaWTaWUaWVaUTaWWaUTaWXaVSaVSaVSaVSaWYaWZaXaaXbaXcaXdaXeaXfaXeaXgaXhaXiaXjaXkaXlaXfaXmaRkaRkaRkaRkaRkaXnaCmaJVaIUaXoaXpaXqaXraXsaXtaXuaNzaNzaNzaXvaQyaWtaXwaXxaXyaXzaXAaWpaXBaIVaaaaaaaNIaNIaNIaNIaNIaNIaNIaaaaaaaCyaRHaESaXCaXCaXCaXCaXDaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQOapUaXEaaaaQOapUaXEaaaaQOapUaXEaaaaQOapUaXEaaaaabaacaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVFaXFaXGaXGaXGaXHaXGaXIaXJaXJaXJaXJaXKaXLaUHaXMaXNaXOaXPaXQaUIaIvaXRaJoaUNaXSaXTaXUaSUaVNaXVaWRaXWaXXaUTaXYaXZaXZaXZaYaaVSaYbaYcaYdaWYaYeaYfaYgaYhaYiaXfaXeaXfaYjaYkaYlaYmaYnaXfaXeaYoaNfaYpaYqaYraNfaOBaYsaUsaIUaIUaIUaIUaIUaYtaIUaIUaYuaYvaYwaIUaYxaYyaYzaYAaYBaYBaYCaYDaYBaYBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCwaRHaDtaXCaYEaYFaYGaXDaYHaXDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawFaaaaaaaaaawFaaaaaaaaaawFaaaaaaaaaawFaaaaaaaaaaacaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVFaVFaYIaVFaYJaXGaYKaVFaYIaVFaYJaXGaYLaYMaUHaUHaUIaYNaUIaUKaUKaIvaCnaYOaSUaYPaWOaYQaSUaVNaUTaWRaYRaXXaYSaPeaYTaYUaYUaPgaYVaYWaYXaYYaWYaYZaZaaZbaZcaZdaXeaXfaXeaZeaZfaZgaZfaZhaXeaXfaZiaZjaZkaZlaZmaZnaOBaCmaJVaCwaZoaZpaDtaDtaZqaDtaIUaIUaIUaIUaIUaYxaZraZsaZtaYBaZuaZvaZwaZxaYBaaaaaaaoLaoLaoMaoLaoLaaaaaaaCwaCyaCwaZyaZzaZAaZBaZCaZDaZEaZFaZGaZHaZHaZHaZHaZHaZHaZHaZHaZHaZIaZJaZJaZJaZJaZJaZJaZJaZJaZJaZJaZJaZJaZJaZJaxVaZKaZHaZHaZLaacaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZMaZNaVFaZOaZPaZQaVFaZNaZMaYJaXGaYLaZRaZSaZTaZUaYLaXGaZVaFaazVaCnayWaSUaZWaZXaZYaSUaVNaUTaXYaZZbaaaUTbabbacaCmbadaPgaYVaYWbaebafaWYbagaZabahbaibajbakbalbakbalbakbamaXfaXeaXfaXeaZbaXeaZaaXeaXfaZnaOBaCmaNtaCwaZpaIZbanaDtbaoaQIaQIbapaQIbapbaqaYxbarbasbatbaubavbawbaxbayaYBaaaaaaaoLbazbaAbazaoLaaaaaaaCwbaBaWvaWwaDtaXCbaCbaDbaEaXDaXDaXDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaziaaaaaaaaaaziaaaaaaaaaaziaaaaaaaaaaziaaaaaaaaaaacaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVFaYIaVFaVFaVFaVFaVFaYIaVFaVGaVGaYLbaFbaGbaHaXGbaIbaJaZVaFaazVaCnbaKaSUbaLbaMbaNaSUaURaUTbaObaPbaQbaRbaSbaTbaUbaVbaWbaXbaYbaZbbabbbaPgbbcbbdbbeaXfaXebbfbbgbbhaXeaZgaXebbibbjbbkbblbbmbbnaUebboaNfayWaCmazVaCwaDtaCwbbpbbpbbpbbpbbpbbpbbpbbpaZqaYxbbqbbrbbsbaubbtbbubbvbbwbaubaubauaoMarSbbxarSaoMaaaaaaaCwbbybbzaDtbbAaXCaXCaXCaXCaXDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQOaAmaQPaaaaQOaAmaQPaaaaQOaAmaQPaaaaQOaAmaQPaaaaabaacaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbBbbBbbCbbBbbDbbDbbDbbBbbCbbBbbEaVGbbFbbGbbHbbIaXJbbJbbKbbLbbMbbNbbOayWaSUbbPaSUaSUaSUbbQbbRbbSbbSbbTbbUbabbacaCmbbVaPgbbWaYWaVSaVSaVSaPgbbXaNfaZnbbYaNfaZnaZnaNfaXfbbZaXfaNfaZnaZnaNfaNfbcabcbaNfaNfaFbaFaaEZaCwbccaCwbbpbcdbcebcfbcgbchbcibbpaZqaYxbcjbckbclbaubcmbcnbcobcpbcqbcrbcqbcsarSarSarSbctaaaaaaaCyaRHaDtbcubcvaCwbcwbcxaCwaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQOaAmaQPaaaaQOaAmaQPaaaaQOaAmaQPaaaaQOaAmaQPaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbBbbBbbBbcybczbcAbcBbcCbcDbcEbczbcFbbEaVFaYLbcGbcHbcHbcIbcJbcKbcLbcLazVaCnbcMaFhbcNbcObcPaPebabbabbabbabbcQbabaPebacaCmbbVaPgbcRbcSbcRbcRbcRaPgbcTbcUbacbcVbacbacbacaNfbcbbcWbcbaNfbadbadbcXbcYbcZbadbdaaCmbdbaCmazVaCmaCmbdcbddbdebdfbdgbdhbdibdjbbpaZqaYxaYxaYxaYxaYBbdkbdlbbvbcpbaubaubauaoMbbxbbxbbxaoMaaaaaaaCyaRHaESaDtbdmaCwaDtbdnaCyaacaaaaaaaaaaCwaCyaCyaCwaaaaaaaaaaaaaaaaaaaQOaAmaQPaaaaQOaAmaQPaaaaQOaAmaQPaaaaQOaAmaQPaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbDbczbdobczbdpbczbdpbdqbdrbdpbczbcFbdsbdtaYLbcGbcIbdubdvbdwbdxbdybcIazVbdzbdAbdBbdCbdDbdDbdDbdEaHxaHxaHxbdFaHxbdGaHxaHxaHPaHxaHxbdFaHxaHxaHxaHxbdFbdGaHxaHxaHxaHxbdHaHxbdGaHPaHxaHxbdIaHxaHxaHxbdFbdJaHxaHxbdFbdKaHPaHxaHxbdLbdMbdNbdObdPbdQbdRbdQbdSbdTaCwaWuaWvaWvbdUbdVbdWbdXbdYaYBaaaaaaaoLatBbdZbeaaoLaaaaaaaCwbebbecbecbecbedbecbeeaCyaacaaaaCwaCwaCwbefbegaCwaaaaaaaaaaaaaaaaaaaQOaAmaQPaaaaQOaAmaQPaaaaQOaAmaQPaaaaQOaAmaQPaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbDbczbdobczbdpbczbdpbehbdpbdpbczbcFbdsbdtaYLbeibcHbejbekbelbembenbcLbeobepbeqaCmazVaCmaCmaCmazUaCmaCmaCmaCmaCmberaCmaCmazVaCmaCmaCmaCmaCmaCmaCmaCmayWaCmaCmaCmaCmbesaCmayWbetaCmaCmaCmaCmaCmaCmaCmayWaCmaCmaCmberazVaCmaCmbeubbpbevbewbexbeybchbezbbpaLDbeAaRHaCwaCwaYBaYBaYBaYBaYBaYBaixaixaoLaoLbeBaoLaoLaaaaaaaCyaRHaCwaCwaCwaCwaCwaLDaCwaCwaCwaCwaDtaZpbeCbeDaCwaaaaaaaaaaaaaaaaaaaQOaAmaQPaaaaQOaAmaQPaaaaQOaAmaQPaaaaQOaAmaQPaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbBbbBbbBbeEbczbeFbczbczbczbeGbczbcFbeHaVFaYLbcGbcHbeIbekbeJbekbeKbcLbeLbeMaFIbeNaFMaFIaFIaFIbeOaFIbePaFIaFIaFIaFLaFIaFIbeQaFLaFIaFIaFIaFIaFIbeRaFIaFHaFIaFLaFIaFIbeSaFIaFHbeTaFLaFIaFIaFIaFIbeUaFIaFHaFIbeRaFIbeVaFMaFIaFIbeWbeXbeYbewbeZbfabbpbbpbbpbfbbfcbfdaWvbfeaWvbffaWvaWvaWvbfgaDtaCwaCwaCwaCwaCwaCwaCwaCwaCwaRHaJabfhbfibfjaCwaLDaCwbfkaDtaDtaZpaCwbflbfmaCyaaaaaaaaaaaaaabaacaQOaAmaQPaaaaQOaAmaQPaaaaQOaAmaQPaaaaQOaAmaQPaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbBbbBbfnbbBbbDbbDbbDbbBbbCbbBbbEaVGaYLbfobfpbfqbfrbfsbdvbdubcIbftbfubfvazaaJnaJnaIubfwbfxbfwbfybfybfybfybfzbfybfybfAbfBbfAbfAbfCbfCbfDbfEbfDbfFbfGbfHbfDbfIaCmbfJayWaCmazVbfKaCmbfIbfLbfMbfNbfObfLbfPbfLbfQbfQbfRbfRbfRbbpbfSbewbeZbfabfTbfUbfUbfUbfUbfUbfUbfUbfVaZqbfUbfWbfUaRHaDtaCwaWuaWvaWvaWvbfXaWvbfYaWvbfZbgabgbbgcbgdbgdbgeaCwaCwaIZaCwaDtaCwaCwaCwaCwaCwaaaaaaaaaaabaaaaQOaAmaQPaaaaQOaAmaQPaaaaQOaAmaQPaaaaQOaAmaQPaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVFaYIaVFaVFaVFaVFaVFaYIaVFaVGaVGaYLbcGbcHbcHbgfbggbghbcLbcLbgibgjbgibgibgibgibfwbfwbgkbglbgmbgnbgobgpbgqbgnbfybgrbgsbgtbgubgvbgwbgxbgybgzbgAbgBbgCbfCbfDbfDbfEbgDbgEbgFbfPbfLbfLbfQbgGbgHbgIbgJbgKbgLbgMbgNbgObgPbgObgNbgNbgQbgNbgNbgNbgRbgRbgRbgSbgTbgUbfUbfUbgVbfUbgWbfUaRHbgXaCwaRHbgYbgYbgYbgYbgZbhabhabhabhbbhcbhdaDtaIfbhebhfbhgbhgbhgbhhaCwbhibhjbhkaCyaaaaaaaaaaabaaaaQOaGlaXEaaaaQOaGlaXEaaaaQOaGlaXEaaaaQOaGlaXEaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVFaZNaVFbhlbhmbhnaVFaZNaVFaYJaXGaYLbcGbhobhobhobhobhobhobhpbgibhqbhrbhsbhtbgibhubhvbhwbfwbfybhxbhybhxbhzbhAbfybhBbhCbhDbhEbgvbhFbgBbhGbhHbhIbgBbhJbhKbhLbhMbfDbhNbhObhPbfLbhQbhRbhSbhTbgHbhUbhVbhWbhXbhYbgObhZbiabibbicbidbiebifbigbgNbihbiibijbikbilbimbfUbinbiobipbgRbfUbiqbirbisbitbgYbiubiubiubivbiubiubiubiwbgYbgYbgYbgYbgYbgYbgYbgYaDtbixaFxaDtbiybdnaCyaaaaaaaaaaacaaaaaaaacaaaaaaaaaaacaaaaaaaaaaacaaaaaaaaaaacaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVFaVFaYIaVFaYJaXGaYKaVFaYIaVFaYJaXGaYLbcGbhobizbizbizbizbhobiAbiBbiCbiDbiEbiFbgibiGbiHbiIbiJbfybiKbgnbhxbhzbiLbfybiMbiNbiObiPbgvbiQbgBbgAbiRbgBbiSbiTbgBbgBbgBbiUbiVbiWbiXbiYbgHbgHbgHbgGbiZbjabjbbgHbgIbgHbgObjcbibbjdbjebjebjfbjgbjhbgNbjibjjbgRbgRbgTbjkbfUbjlbjmbjnbjobgYbgYbgYbgYbgYbgYbjpbiubiubjqbiubiubjrbiwbiubjsbjtbjubiubjsbiubgYbjvbixaCwbjwbjxbjyaCyaaaaaaaaaaabaabaabaabaabadhaabaabaabaabaabaabadhaabaabaabaabaacaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVFaXFaXGaXGaXGaXHaXGbjzbjAbjAbjAbjBbjCbjDbhobizbjEbjFbizbhobjGbgibgibjHbjIbjHbgibgibjJbjJbjJbfybhxbgnbhxbhzbjKbfybjLbjMbjLbfAbfCbjNbjObgAbjPbjQbjQbjRbjSbgBbgBbiUbiVbiWbiXbiYbgHbgHbjTbjUbjVbjVbjWbjXbjYbjZbgNbkabibbkbbkcbkcbkdbibbkebfUbkfbkgbkhbkhbkhbkibfUbkjbkkbklbkmbjubknbkobkpbkqbgYbiubiubjtbiubiubiubiubiwbiubkrbiubjubiubkrbiubgYbksbixaCwbktbkubkvaCyaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVFbkwbkwbkwbkwbkwbkwbkxbkwbkwaXGaXIbkybcGbkzbizbizbkAbkBbhobjGbgibkCbkDbkEbkFbkGbgibkHbkIbkJbfybhxbkKbhxbhzbkLbfybkMbkNbkObfCbkPbkQbkRbgAbkSbkTbkUbkVbkVbkVbkWbfDbiVbiWbiXbfLbkXbkYbkZbjZbjZblabfQblbblcbfQbgNbldbibbkbbkcblebkdbibblfblgblhblibljblkbllblmblnbloblpblqblrbjublsbltblublvbgYbgYblwbiubiublxblwbgYbiwblxbiubiubjublxbiubiubgYblybixaCwaCwaCwaCwaCwaCwaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVFaVFaVFaVFaVFaVFaVFaVFaVFaVFaYJaXGaXGbcGbhobizbizblzbizbhoblAbgiblBblCblDblEblEblFblGblHblIblJblKblLblMblNblOblPblQblRblSblTbgBblUblVblWblXblYblYblZbmablZblYbmbbiVbiWbiXbfUbfUbfUbfUbmcbmdbmcbfUbmebmfbmgbgNbmhbmibmjbmjbmjbmkbibbmlblgbmmbmnbmobmpbmqbmrbmsbmsbmsbmtbmubjubmvbmwbltbmxbjubmybmzbmAbmBbmCbmDbmEbmFbmGbmHbmIbjubmJbmKbmLbgYaKtbmMaIbaIbbmNaIbaIcaCyaCyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabmObmPbmPbmQbmPbmPbmPbmRbmPbmPbmPaVFaYJaXGaXGbmSbhobizbizbizbizbhobjGbgibmTblCbmUbmVbmWbmXbmYbmZbnabfybfybfybfybfybfybfybnbbncbndbfCbnebnfbgvbngbnhblYbnibnjbnkbnjbnlbmbbiVbiWbiXbfUbnmbnnbnobnpbnqbnrbfUbnsbntbnubgNbnvbnwbibbnxbnybnzbnAbnBblgbnCbnDbnEbmsbmsbnFbnGbnHbnIbnJbnKbjubnLbnMbnNbnObnPbnQbnRbnSbnTbnUbnVbnWbnXbnYbnZboabjubnYbobbocbgYbjubodbjubjubjubjuaIXboeaCyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabmObofbogbohboiboiboiboiboiboiboibmQbojaVFbojaXGbokbhobhobhobhobhobhobjGbgibolbombonboobopboqborbosbotboubovbowbowboxboyboubozbgAboAbfCbgvbgvbfCboBblXbmbboCboDboEboFboGbmbboHboIbiXbfUboJbnGboKboLboKboMbfUboNboOboPbgNbibboQbibboRboSboTboUboVblgboWbnDboXboYboZbpabpbbpcbpdbpebpfbjubpgbphbpibpjbpkbplbplbplbplbplbplbpmbpnbpobpobppbpqbpobpobprbgYbpsbptbpubpvbpwbjuaIXbpxaCyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpybogbogbogbogbogbogbogbogbogbogbpzbpAaZNbpBaXGbpCbpDbpEbpFbpGbpHbpHbpIbgibpJbpKbpLbpMbpNbgibpObosbpPbpQbpRbpSbpTbpSbpUbpQbgBbpVbncbpWbpXbpXbpXbhIbpYbmbbpZbqabqbbqcbqdbmbbiVbiWbiXbfUbqebnGbqfbqgbqhbqibfUbqjbqkbqlbgNbqmbqnbqmbqobqobqobqobqoblgbqpbqqbqrblgblgblgblgbqsblgblgblgbjubqtbqubqvbqwbqxbqwbqybqzbqAbqBbqCbqDbqCbqCbqCbqEbqFbqCbqCbqGbqHbqIbqJbqKbpvbqLbjuaIXaCyaCyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabmObofbqMbqMbqNbqNbqNbqNbqNbqNbqNbmQaVFaVFaVFaXGbqObqPbqQbqRbqSbqTbqUbqVbqVbjHbjHbqWbqXbqVbqVbqYbqZbrabrbbrcbrcbrdbrcbrcbrbbrebrfbrgbrhbrebrebrebrebribrjbrkbrlboDbrmbmbbmbbrnbiWbiXbfUbfUbrobrpbrqbrrbrsbqpbrtbrubrvbrwbrxbrybrxbrzbrAbrBbrCbrBbrDbrEbrFbrGbrDbrHbgHbrIbnPbrJbrKbrLbrMbrNbrObrPbrQbrRbrSbrSbrTbrUbrVbrSbrTbrSbrSbrSbrTbrWbrSbrSbrTbrXbrYbrZbpubpvbpvbjubsabsbbscaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabmObmPbmPbmQbmPbmPbmPbmRbmPbmPbmPaaaaaaaVFaVFaVFbqPbsdbsebsfbqVbqVbqVbsgbshbsibsjbskbslbqVbsmbsnbsobspbsqbsrbsrbsrbssbstbsubsvbswbsxbsybszbszbjQbsAbsBbsCbsDbsEbsFblYbsGbsHbsIbsJbsKbsLbsMbsNbsObsPbsQbsRbsSbsTbsUbsVbsWbsXbjVbjVbsYbsZbtabjVbjVbtbbjVbtcbgHbtdbtabtebtfbtgbthbtibtjbtkbthbtlbtmbnPbtnbtobtpbtqbtnbtrbtsbjubtnbttbtubjubtnbtvbtwbgYbjubtxbjubtybtybjuaCwaCwaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbqPbtzbtAbsfbqVbtBbtCbtDbtEbtFbtGbtHbtIbqVbtJbtKbtLboubtMbtNbtObtNbtPboubtQbtRbtSbtTbtUbtTbtUbtTbtUbmbbtVbtWboDbtXbtYbtZbuabubbiXbucbudbuebufbnJbnJbnJbqpbugbuhbjVbjVbuibujbukbgHbulbumbunbuobgHbupbgHbuqbjVbjVbtcburbjubusbutbuubjubuvbuwbuxbuybjubuzbuAbuBbtqbuCbuDbuEbjubuFbuGbuHbjubuIbuJbuKbgYbuLbuMbuNbuObuObuNaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbuPbuQbuRbuSbqVbuTbuUbuVbuWbuXbuYbuZbvabqVbvbbvcbvdbfCbfDbfCbfDbfCbfDbfCbvebtRbvfbvgbvhbvibvjbvkbvlbmbbvmbvnbvobvpblYbvqbvrbvsbvtbvubvvbvwbvxbvybvzbvAblgbvBbvCbvBbvDbvDbvEbvDbvFbvFbvFbvFbvFbvFbvGbvFbvFbvHbgHbgGbvIbvIbvIbvIbvJbvIbvIbvIbvIbvIbvIbvKbiubiubtqbvKbiubiubjubvKbiubiubjubvKbiubiubgYbvLbuNbuNaacaacbuNaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabuaaaaaaaaaaaaaaabuPbuQbtAbsfbqVbvMbvNbvObvPbvQbvRbvSbvTbqVbvUbvVbvWbfCbvXbvYbvZbwabwbbfDbwcbwdblSbtUbwebwfbwgbwhbwibmbbmbbwjbmbbmbbmbbqPbiVbubbiXbwkbwkbwlbwmbwmbwnbwnbwnbwobwpbwobwnbwqbwrbwsbvFbwtbwtbwtbwubwvbwwbwxbvFbwybwybwzbvIbwAbwBbwCbwDbwEbwFbwGbwHbwIbvIbiubwJbiubtqbiubwJbiubjubiubkrbiubjubiubkrbiubgYbvLbuNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLaacbwKbwKbwKbwKbqPbwLbqRbqSbqVbqVbqVbwMbwNbwObwPbwQbwRbqVbwSbwTbwUbfCbwVbgBbgBbwWbjQbwXbwYbwZbxabxbbxcbxdbxebxfbxgbxhbxibxjbxibxkbxlbqPbiVbubbxmbwkbxnbxobwmbxpbwnbxqbxrbxsbxtbxubwnbxvbxwbxxbvFbwtbwtbxybxybxzbxAbxBbxCbxDbxEbxFbxGbxHbxIbxJbxKbxJbxLbxMbxNbxObvIbiubxPbiubtqbiubxPbiubjubiubxPbiubjubiubxPbiubgYbvLbxQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLaacbwKbxRbxRbxSbqPbqRbxTbsfbxUbxVbqVbqVbqVbqVbxWbxXbxYbqVbxZbyabybbfCbycbgBbydbpXbpXbyebyfbpXbygbtUbyhbyibyjbykbylbymbymbymbymbymbynbqPbiVbubbiXbwkbyobypbyqbyrbwnbysbytbyubyvbywbwnbyxbyybyzbvFbyAbyAbyAbyAbwvbyBbyCbyDbyEbyFbyGbyHbyIbyJbyIbyKbyIbyLbyMbyNbyObvIbyPbyPbyPbyQbyPbyPbyPbyPbyPbyRbgYbgYbgYbgYbgYbgYbySbxQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyTaacbwKbyUbyVbyWbyXbyYbyYbyZbpHbpHbzabqRbzbbqVbqVbqVbqVbqVbzcbzdbzebfCbzfbzgbzhbzibzjbfDbzkbgBbzlbvgbzmbznbzobzpbzqbymbzrbzsbztbzubzvbqPbzwbzxbzybwkbzzbzAbzBbzCbwnbzDbzEbzFbzGbzHbwnbzIbzJbzKbvFbzLbzLbzLbzLbwvbzMbzNbvFbzObzPbrIbzQbzRbzSbzTbzUbzVbzWbzXbzYbzZbAabAbbAcbAdbAebAfbAgbAhbAibAjbAkbAlbAmbAlbAnbAlbAobuMbuNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLaacbwKbApbqPbqPbqPbqPbqPbAqbqRbqRbArbyYbAsbAtbAubAvbAwbvUbzbbAxbAybfCbfCbfCbfCbfCbfCbfCbAzbAAbABbACbACbACbACbACbACbymbADbAEbAFbymbAGbqPbiVbubbAHbwkbAIbAJbwmbAKbwnbALbAMbANbAObAPbAQbARbARbASbvFbATbATbATbATbwvbzMbAUbvFbAVbAWbAXbvIbAYbAZbBabBbbBcbBdbBebBfbBgbBhbBibBjbBkbBlbBmbBmbBkbBnbBobyRbuNbuNbuNbuNbuNbuNbuNbuNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqPbqPbqPbBpbBqbBrbqPbqPbqPbqPbsfbqRbzbbBsbBtbBubBvbvUbBwbBxbBybzbbzbbvUbBzbBAbBBbBCbyfbpXbBDbACbBEbBFbBGbACbACbACbACbBHbACbACbynbqPbiVbubbiXbwkbwkbwkbwkbwkbAQbAQbAQbBIbAQbAQbAQbBJbBKbBLbxCbBMbBMbBMbBNbBObBPbBQbvFbBRbBRbBRbBSbBSbBSbBSbBSbBSbBSbBTbBUbBVbvIbBWbBXbBYbBZbBmbCabCbbyPbCcbyRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqPbqPbqRbqRbqRbqRbqRbqRbCdbqPbCebsfbqRbzbbCfbCgbChbCibCjbCkbClbCmbCnbCobzbbCpbCqbCrbCsbwYbCtblSbCubCvbCwbCxbCybCzbCAbCBbCCbCDbACbynbqPbCEbCFbCGbCHbCIbCJbCJbCJbCKbCJbCLbCMbCNbCNbCNbCObCPbCQbvFbvFbvFbvFbvFbvFbCRbvFbvFaacaacaacaacaacaacaacaacaacbBSbCSbCTbCUbBSbCVbBkbBkbCWbBmbBkbCXbCYbCZbDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabuPbAqbqRbDbbDcbDdbDebDfbDgbqPbDhbsfbDibzbbDjbDkbDlbDkbDlbDmbDlbDnbDlbDobzbbfCbfCbfCbfCbDpbgBbDqbDrbDsbDtbDsbDubDvbDwbDxbDybDzbDAbDBbqPbDCbDDbDEbDFbDGbDHbDGbDGbDGbDGbDIbDGbDGbDGbDJbDKbDLbDMbDNbDObDPbDQbDRbDSbDTbDUbDNaacbDVbDVbDVbDVbDVaaaaaaaaabBSbDWbDXbDYbBSbCVbDZbEabEbbBmbBkbEcbEdbEebyRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabuPbqRbqRbEfbEgbEhbEibEjbEkbqPbqPbsfbqRbzbbElbEmbElbEnbElbElbEobEpbEqbErbzbbBzbBAbEsbEtbyfbEubEvbCubEwbExbEybACbEzbDybEAbDybEBbACbECbqPbEDbEEbEFbEGbEGbEGbEGbEGbDNbDNbEHbDNbDNbDNbEIbDNbEJbDNbDNbEKbELbELbEMbELbELbENbEObEPbEQbERbESbETbDVaaaaaaaaabBSbCSbEUbCUbBSbEVbyPbyPbEWbEXbEYbEZbFabFbbDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqPbqRbqRbFcbFdbFebFfbqRbqRbFgbFhbsfbqRbzbbFibFjbElbFjbFkbElbFlbFmbDlbFnbzbbCpbCqbCrbFobFpbjSbFqbACbEwbFrbEybACbFsbFtbFubFvbFwbACbECbqPbFxbDDbFybFzbFAbFBbFCbFDbFEbFFbFGbFHbFIbFJbFKbFLbFMbFNbFObFPbFQbFQbFRbFQbFQbFSbFTaacbFUbFVbETbFWbDVaaaaaaaaabFXbFYbFZbGabBSbGbbGcbyRbGdbyRbDabDabyRbyRbyRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqPbqRbqRbFcbGebFebFfbGfbqRbFgbFhbsfbqRbzbbGgbGhbElbGhbGgbElbGibDnbGjbGkbzbbfCbfCbfCbfCbGlbGmbGnbACbACbACbACbACbGobGpbGqbGrbGsbACbECbqPbCEbGtbGubGvbGwbiWbiWbGxbGybGzbGAbGBbGBbGBbGCbGDbGDbGEbGDbGFbGDbGDbGGbGHbGIbGJbGKbGLbEQbGMbETbETbDVaaaaaaaaabBSbBSbGNbBSbBSbGObyRbyRaaaaacaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabuPbGPbqRbGQbGRbGSbGTbqRbEkbqPbqPbsfbGUbzbbGVbGWbElbGXbGYbElbGZbHabHbbzbbzbbHcbHdbHebfCbfCbfCbfCbfCbqRbHfbAqbACbACbACbACbACbACbACbHgbHhbHibHjbHkbiWbHlbiWbiWbHmbHnbHobHpbHqbHqbHqbHrbHqbHqbHsbHqbHtbHqbHqbHqbHubHvbHwbHxaacbDVbDVbDVbDVbDVaaaaaaaaaaacbBSbHybBSbBSbHzbyRbHAaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabuPbqRbqRbHBbHBbHBbHBbqRbHCbqPbDhbsfbHDbzbbAybzbbzbbzbbAybzbbHEbAybzbbzbbHFbHGbHGbHGbHGbHGbHGbHGbHGbHGbHHbHGbHIbxibxibxibxibxibxibHJbqPbHKbDDbiXbHLbHLbHLbiWbHMbHNbHObHPbHQbHRbHSbHTbHUbHVbHWbHXbHYbHZbIabIbbIcbIdbIebIfbEPbEQbIgbIhbIhbDVaaaaaaaaaaacbIibIjbIiagRbIkagRaacaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqPbqPbIlbqRbqRbqRbqRbImbInbqPbCebIobIpbIqbIrbIsbItbItbIubItbIvbIwbzabqUbECbIxbIxbIxbIxbIxbIxbIxbHCbIybIzbIzbIAbIzbIzbIzbIzbIzbIzbIzbIzbIBbDDbICbIDbIEbIFbiWbIGbDNbFTbIHbFTbDNbIIbIJbIKbIIbIIbIIbILbFQbIMbFQbINbIObIPbIQaacbFUbIRbISbITbDVaaaaaaaaaaacaacaacaacagRbIkagRaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbqPbqPbuPbuPbuPbuPbqPbqPbqPbIUbqPbIVbIWbIXbIYbqPbIZbIZbqRbqUbJabJbbJcbJdbIxbJebJfbJgbJhbJibIxbIxbIxbJjbJkbJlbJmbJnbJobJpbJqbJrbJsbIzbJtbJubiXbHLbHLbHLbiWbJvbJwbJxbJybJzbDNbJAbJBbIKbJCbIIbJDbJEbFQbHYbJFbINbJGbGJbJHbGLbEQbJIbIhbIhbDVaaabuOaaaaaaaaaaaaaaabJJbJKaaaaacaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacbqPbJLbJMbqTbqPbIVbqPbqPbJNbqPbqPbIZbGUbqPbqPbqPbECbqRbIxbJObJPbJQbJRbJSbJTbJUbJVbJWbJXbJYbJZbJZbJZbJZbJZbJZbKabIzbFxbDDbKbbKcbKdbKcbKcbKebKfbKgbKhbKibDNbKjbJBbKkbKlbIIbJDbKmbKnbKobJFbINbIObKpbIQaacbDVbDVbDVbDVbDVaacaabaaaabuaaaaaaaaaaaaaaaaaaaacaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbuPbuPbqRbqRbqRbqRbIVbqPbKqbKrbqPbKsbqRbKtbHfbKubqPbECbqRbIxbJObJQbKvbJQbKwbKxbKybKzbKAbJZbKBbKCbKDbKEbKFbKGbKHbKIbKJbKKbKLbKMbKMbKNbKObiWbFybKPbKQbKRbKSbDNbKTbJBbFQbJCbIIbJDbKUbFQbHYbJFbKVbIdbKWbKXbEPbEQbKYbKZbLabDVaaaaabaaaaabaaaaaaaaaaaaaaaaaaaacaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabuPbqRbLbbLcbLcbLcbLdbLebLfbLgbqPbLhbHCbLibHCbLjbqPbLkbJMbIxbJObJRbLlbJPbLmbLnbLobLpbLqbLrbLsbLtbLubLubLubLubLvbLwbIzbLxbLybLybLzbLybLAbJvbLBbDNbFTbLCbFTbDNbIIbJBbFQbIIbIIbIIbLDbLEbLFbLGbINbIObLHbIQaacbFUbLIbLJbLKbDVaaaaabaacaabaaaaaaaaaaaaaaaaaaaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabLLbLMbLNbLObqRbqPbqPbqRbqPbLPbApbqPbLQbqRbqRbLRbLSbqPbECbLTbIxbLUbLVbLWbLXbLYbIxbLZbMabJjbMbbMcbMdbMebMfbMgbMhbMibMjbIzbMkbMkbMkbMlbMmbMnbMmbMobDNbFFbMpbMqbMrbMsbMtbMubMvbMwbMxbMtbMybMzbMAbINbMBbGJbMCbGLbEQbMDbKZbKZbDVaaaaabaaaaabaaaaaaaaaaaaaaaaaaaacaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbuPbMEbMFbMGbqPbMHbqRbqPbqPbqPbqPbqPbqUbqPbqPbqPbqPbECbMIbIxbIxbIxbIxbIxbIxbIxbIxbIxbJjbMJbMKbMLbJjbJjbJjbJjbJjbJjbJjbMMbMNbMObMkbMPbMQbMRbMSbDNbFQbMTbFQbMUbMVbMVbMWbFQbFQbFQbFQbFQbFQbFQbINbIObMXbMYaacbDVbDVbDVbDVbDVaacaabaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabMZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacbqPbqPbqPbqPbNabqPbNbbqRbNcbqPbNdbNebNfbqRbqRbNgbqPbNhbECbAqbHDbNibqRbNjbNkbNlbNmbNnbNobNjbNpbMcbNqbJjbNrbNsbNtbNubNvbNwbNxbNybNzbNAbNBbNCbNDbNEbNFbNGbNHbMVbNIbFQbFQbFQbFQbNJbELbELbELbNKbELbNLbIdbNMbNNbEPbEQbNObNPbNPbDVaaaaabaaaabuaaaaaaaaaaaaaaaaaaaacaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaixaixbNQaixbqPbNRbNSbNTbNUbqPbNVbNWbNXbqPbNYbqRbqRbqRbqRbNZbqPbqUbECbOabqPbObbOcbNjbOdbOebOfbOgbOhbNjbOibOjbOkbJjbOlbOmbOmbOmbOnbNwbOobOpbOqbOrbOsbOtbOubMSbDNbFQbJBbFQbOvbOwbHqbHqbHqbOxbHqbOybOzbFPbFQbFQbIObOAbMYaacbFUbOBbOCbODbDVaaaaabaacaabaaaaaaaaaaaaaaaaaaaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbqPbOcbqPbNfbqPbqPbqPbOEbOFbqPbqPbqPbqPbqPbqPbqPbqPbqPbECbqPbqPbIUbIUbNjbOGbOHbOIbOJbOKbNjbOLbOMbONbJjbOObOPbOQbORbOSbNwbOTbOUbOVbOWbOXbOYbOZbPabDNbPbbPcbPdbPebPfbPebPdbPebPgbPhbPibFQbPjbFQbFQbPkbGJbPlbGLbEQbPmbNPbNPbDVaaaaabaaabuOaaaaaaaaaaaaaaaaaaaacaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbNQaixaixbqPbqPbqPbNTbMGbqRbqPbqRbqPbqPbqRbqRbPnbGUbGUbPobqRbqRbECbCebPpbIXbqTbNjbPqbPrbPsbPtbPubNjbPvbPvbPvbPvbPwbPxbPybPzbOnbNwbMkbMkbMkbOWbPvbPAbPBbPvbDNbPCbPDbPEbPFbPGbPHbPEbPIbPJbPKbPLbPMbPJbPNbPObPKbPPbPQaacbDVbDVbDVbDVbDVaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacbqPbPRbqPbPSbqRbqRbqRbqRbAqbIUbqRbqPbqPbqPbqPbqPbqPbqPbPTbPUbqRbNfbqRbNjbNjbPVbPWbPXbPVbPYbPZbQabQbbMmbQcbQdbQebQfbQcbNvbQgbQhbQibMmbQjbQkbQlbMmbDNbDNbDNbQmbFTbQnbFTbQmbFTbQnbQobQpbQqbQpbQrbQrbQsbQtbDNaaaaacaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqPbxUbqRbqRbOcbqPbQubqRbqRbqPbQvbqPbQwbQxbQwbQwbqPbQybpHbQzbHGbHGbHGbHGbQAbQBbQCbQDbQEbQFbQGbQHbQIbQJbQIbQKbQLbQMbQNbQObQIbQIbQGbQPbQQbQRbQSbQTbPvaacaacbQUaacbQVaacbQUaacbQVaacbQWaacbQWaacaacbDNbQXbDNaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqPbqPbqPbuPbuPbqPbQYbIlbqRbqRbqRbuPbQwbQxbQwbQwbuPbqRbQZbwKbIUbGUbwKbPvbPvbRabRbbRcbRdbRcbRebRcbRcbRcbRfbRcbRgbRcbRhbRcbRcbRcbRebRcbRibRjbRkbRlbPvaacbDVbRmbFUbRmbDVbRmbFUbRmbDVbRnbFUbRobDVaaabDNbRpbDNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqPbqPbqPbqPbCebqRbqPbQwbQxbQwbQwbqPbqRbGUbGUbqRbqRbqRbRqbRrbRsbQSbRtbRubRvbRabQTbQTbRwbRxbRybRzbRAbRBbRCbQTbQTbRabRDbREbQTbQSbRFbPvaacbDVbRGbRHbRIbDVbRJbRKbRLbDVbRMbRNbRObDVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacbqPbRPbqRbuPbQxbRQbRRbQxbuPbqRbwKbPvbPvbPvbPvbPvbPvbRSbRxbRTbRUbRVbRWbQTbRXbRYbPvbRZbPvbRZbPvbRYbSabQTbRBbSbbScbSdbSebSfbPvaacbDVbSgbShbSgbDVbSibSjbSibDVbSkbSlbSmbDVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqPbuPbuPbuPbqPaacaacbqPbSnbqRbqPbQwbQwbQxbQwbqPbSobwKbSpbSqbSrbSrbSrbSsbStbQTbRvbRubRvbQTbQTbSubPvbSvbSwbSxbSwbSybPvbSzbQTbQTbSAbSBbQTbQTbSCbPvaacbDVbSgbSDbSgbDVbSibSEbSibDVbSmbSFbSmbDVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqPbSGbSHbSIbqPbuPbuPbqPbsebNfbuPbQwbQwbQxbQwbuPbNTbwKbSJbSKbSrbSrbSrbSsbStbQTbQTbSLbQTbSMbSNbSNbSObSPbSQbSRbSSbSTbSObSUbSUbSVbQTbSWbQTbQTbQTbPvaacbDVbDVbDVbDVbDVbDVbDVbDVbDVbDVbDVbDVbDVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabuPbHBbSXbqRbGUbqRbAqbqRbNfbNTbqPbQwbQwbQxbQwbqPbNfbwKbSYbSZbSrbTabTabPvbTbbTcbTdbTebTfbTgbTgbThbPvbTibTjbTkbTlbTmbPvbTnbTgbTgbTobTpbTdbTqbTrbPvaaaaacaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabuPbTsbqRbTtbqPbuPbuPbqPbqRbNfbqPbuPbuPbuPbuPbqPbqRbwKbSJbTubTubPvbPvbPvbTvbPvbPvbTwbPvbTxbTxbTxbPvbTybTzbTAbTBbTCbPvbTxbTxbTxbPvbTDbPvbPvbPvbPvaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabuPbuPbuPbuPbqPaacaacbqPbLTbTEbTFbqRbTGbqRbqRbTHbqRbwKbTIbTJbTJbPvbTKbTLbTMbPvbTNbTObMmbTPbTQbTQbTRbTSbTTbTUbTVbTCbTRbTQbTQbTQbPvbTWbTXbPvaaaaacaaaaacaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabTYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabuPbTZbUabqPbuPbuPbuPbuPbqPbqRbwKbwKbwKbwKbPvbUbbQTbUcbPvbPvbUdbPvbTRbTRbTRbTRbUebUfbUgbUhbUibTRbTRbTRbTRbPvbUjbPvbPvaaaacLacLacLacLaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabuPbuPbuPbqPaaaaaaaaaaaabqPbAqbqRbqRbqRbAqbPvbUkbUlbRcbUmbUnbUobUpbUqbUrbUqbTRbTRbTRbUsbTRbTRbTRbUqbUrbUqbUtbUubUvbPvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqPbqRbqPbMGbqPbqPbPvbUwbPvbUxbPvbUybUrbUrbUzbUAbUAbUAbUAbUAbUBbUAbUAbUAbUAbUAbUCbUrbUrbUybPvaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqPbuPbqPbqRbNTbuPaacbUDbPvbUEbPvbUFbUGbUHbUIbUrbUJbQwbQwbUJbQwbQxbQwbQwbUJbUrbUIbUKbULbUMbPvaaaaaaabuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqPbUNbUObqPaacbUDbPvbUPbPvbUybUrbUrbUQbURbQwbQwbQwbQxbQwbQxbQwbQwbQwbUSbUTbUrbUrbUybPvaaaaaaacLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacagRagRagRagRagRaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqPbqPbqPbqPaacbUDbPvbUUbPvbUVbUWbUrbUIbUrbQwbQwbQxbQxbQxbQxbQxbQwbQwbUrbUIbUrbUXbUYbPvaacaacacLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUZbVabVabVbbVcbVcbVcbVbbVabVabUZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbVdaacaacbPvbPvbVebUrbUIbUrbQxbQxbQxbVfbVgbVhbQxbQxbUJbUrbUIbUrbVebPvbPvaaaaaaacLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUZbUZbUZbVabVibVcbVcbVcbVcbVabUZbUZbUZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbUDaacaacbPvbPvbVjbUrbUQbURbQwbQwbQxbVkbVlbVmbQxbQwbQwbUSbUTbUrbVnbPvbRYaaaaaaacLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUZbUZbUZbUZbUZbUZbUZbVcbVobVcbVcbVcbVcbVcbUZbUZbUZbUZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbUDaacaacbRYbPvbVebUrbUIbUrbUJbQxbQxbVpbVqbVrbQxbQxbQxbUrbUIbUrbVebPvbPvaaaaaaacLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUZbUZbUZbUZbVsbUZbUZbVcbVcbVcbVtbVcbVobVcbUZbUZbUZbUZbUZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbUDaacaaabPvbUXbUYbUrbUIbUrbQwbQwbQxbQxbQxbQxbQxbQwbQwbUrbUIbUrbUVbUWbPvaacaacacLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUZbUZbUZbUZbUZbUZbUZbUZbUZbUZbVcbVcbVcbVcbVcbVcbVcbUZbUZbUZbUZbUZbUZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbUDaacaaabPvbUybUrbUrbUQbURbQwbQwbQwbQxbQwbQxbQwbQwbQwbUSbUTbUrbUrbUybPvaaaaaaacLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUZbUZbUZbUZbUZbVsbUZbUZbUZbVsbUZbVcbVcbVubVcbVcbUZbUZbVsbUZbUZbUZbUZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbVdaacaaabPvbVvbUGbUHbUIbUrbUJbQwbQwbQxbQwbUJbQwbQwbUJbUrbUIbUKbULbVwbPvaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUZbUZbUZbUZbUZbUZbUZbUZbUZbUZbUZbUZbUZbUZbVcbVcbVcbUZbVsbUZbUZbUZbUZbUZbUZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbUDaacaaabPvbVxbUrbUrbUIbUrbUrbVybUrbUrbVybUrbUrbVybUrbUrbUIbUrbUrbVxbPvaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUZbUZbUZbUZbUZbUZbUZbUZbUZbUZbUZbUZbVsbUZbVsbVsbUZbUZbUZbUZbUZbUZbUZbUZbVsbUZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbUDaacaaabPvbVxbUrbVzbVAbUAbUAbVBbUAbUAbVCbUAbUAbVBbUAbUAbVDbVEbUrbVxbPvaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUZbUZbUZbUZbUZbUZbVsbUZbUZbUZbVsbUZbUZbVsbVsbVsbUZbUZbUZbUZbVFbUZbUZbUZbUZbUZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbUDaacaacbPvbPvbPvbMmbMmbMmbMmbMmbMmbMmbMmbMmbMmbMmbMmbMmbMmbPvbPvbPvbVGaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUZbUZbUZbUZbUZbUZbUZbUZbVFbUZbUZbUZbUZbVsbVsbUZbUZbUZbUZbUZbUZbUZbVsbUZbUZbUZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbUDaacaaaaaaaaaaaaaaaaaaaacaacaacaacaacaacaaaaaaaaaaacaacaacaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUZbUZbUZbUZbUZbUZbUZbUZbUZbUZbUZbVsbVsbVsbVsbUZbUZbUZbUZbUZbUZbUZbUZbUZbUZbUZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbVdaacaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUZbUZbUZbUZbVsbUZbUZbUZbVsbUZbUZbUZbVsbVsbUZbUZbVsbVsbVsbUZbUZbUZbUZbVHbUZbUZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbUDaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUZbUZbVsbUZbUZbUZbUZbUZbUZbUZbUZbUZbUZbUZbUZbVsbVsbVsbVsbVsbVsbUZbUZbUZbUZbUZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbUDaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUZbUZbUZbUZbUZbUZbUZbUZbUZbUZbUZbUZbUZbVsbVsbVsbVsbUZbUZbUZbUZbUZbUZbUZbUZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbUDaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUZbUZbUZbUZbUZbUZbUZbUZbVsbVsbVsbVsbVsbVsbVsbVsbUZbUZbUZbUZbUZbVsbUZbUZbUZbUZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbUDaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUZbUZbUZbVsbUZbUZbUZbUZbVsbVsbVsbVsbVsbVsbUZbUZbUZbUZbVsbUZbUZbUZbUZbUZbUZbUZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbVdaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUZbUZbUZbUZbUZbUZbUZbVsbUZbUZbVsbVsbVsbUZbUZbUZbVsbVsbVsbUZbVFbUZbVsbUZbUZbUZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbUDaacaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUZbUZbUZbUZbUZbVsbVsbVFbUZbUZbUZbUZbUZbUZbUZbVsbVsbUZbUZbUZbUZbUZbUZbUZbUZbUZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbUDaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUZbUZbUZbUZbUZbUZbUZbUZbUZbUZbUZbUZbUZbVsbUZbUZbUZbUZbUZbUZbUZbUZbUZbUZbUZbUZbUZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbUDaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUZbUZbUZbUZbUZbUZbUZbUZbUZbUZbUZbUZbVsbVsbVsbUZbUZbVsbVsbUZbUZbUZbUZbVsbUZbUZbUZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbUDaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUZbUZbUZbVsbUZbUZbUZbUZbVHbUZbUZbUZbVsbVsbVsbVsbVsbVsbUZbUZbVsbUZbUZbUZbUZbUZbUZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbVdaacaaabVIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUZbUZbUZbUZbUZbUZbVsbUZbUZbUZbUZbUZbUZbUZbVsbVsbVsbUZbVsbVsbUZbUZbVsbUZbUZbUZbUZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbUDbVJagRbVJbVKbVLaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUZbUZbUZbUZbUZbUZbUZbUZbUZbUZbUZbVsbVsbUZbUZbVFbUZbVsbVsbUZbUZbVsbUZbUZbUZbUZbUZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbUDbVJbVMbVJbVJabtaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUZbUZbUZbUZbUZbUZbUZbUZbVsbUZbVsbVsbVsbVFbVFbUZbVsbVsbUZbUZbVsbUZbUZbUZbUZbUZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbUDbVJbVNbVObVJabtaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUZbUZbUZbUZbUZbUZbUZbVsbVsbVsbUZbUZbVFbUZbVsbVsbUZbUZbUZbUZbVsbUZbUZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLaaabVJbVPbVJbVQbVJbVJbVRbVJbVJaaaacLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUZbUZbUZbUZbUZbVsbUZbUZbUZbUZbUZbUZbUZbVsbUZbUZbUZbUZbUZbUZbUZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLaaabVTbVUbVVbVWbVXbVYbVZbWabVJaaaacLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUZbUZbVsbUZbUZbUZbUZbUZbVsbVsbVsbVsbUZbUZbUZbUZbUZbVsbUZbUZbUZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbWbaacbVTbWcbWdbWebWfbWgbWhbWibVJaacbWbaacaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUZbUZbUZbUZbUZbUZbUZbVsbVsbVsbVsbVsbVsbUZbUZbVsbUZbUZbUZbUZbUZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLaaabVTbWjbWkbWlbWmbWnbWobWpbVJaaaacLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUZbUZbUZbUZbUZbUZbUZbVsbVsbVsbVsbVsbUZbUZbUZbUZbUZbUZbUZbUZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLaaabVJbVJbVJbWqbWrbVJbVJbVJbVJaaaacLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUZbUZbVsbUZbUZbUZbUZbUZbVsbUZbUZbUZbVsbUZbUZbUZbVsbUZbUZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLaaabVJbWsbWtbWubWvbWwbWxbWybVJaaaacLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUZbUZbUZbUZbVFbUZbUZbUZbUZbVsbUZbUZbUZbUZbUZbUZbUZbUZbUZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLaaabVJbWzbWAbWBbWCbWDbWEbWFbVJaaaacLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUZbUZbUZbUZbUZbUZbUZbUZbUZbUZbUZbUZbUZbUZbUZbUZbUZbUZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbWbbWGbVJbWHbWIbVTbWJbVTbWKbWLbVJbWMbWbaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUZbUZbVFbUZbUZbUZbUZbUZbUZbUZbUZbUZbUZbUZbUZbUZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLaaabVJbVTbVTbVTbWNbVTbVTbVTbVJaaaacLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUZbUZbUZbUZbVFbUZbUZbUZbVsbUZbVsbUZbUZbVsbUZbUZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLaaabWObWPbWQbWRbWSbVTbWTbWUbWOaaaacLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUZbUZbUZbUZbUZbUZbUZbUZbUZbUZbUZbUZbUZbUZbUZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLaaabWObWVbWWbWXbWXbWXbWXbWXbWOaaaacLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUZbUZbUZbUZbUZbUZbVcbUZbUZbUZbUZbUZbUZbUZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLaaabWObWYbWZbXabWXbXbbXcbXdbWOaaaacLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUZbUZbUZbUZbUZbVcbXebVcbUZbUZbUZbUZbUZbUZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbWbaacbWObXfbXgbWXbWXbWXbXhbXibWOaacbWbaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUZbUZbUZbVsbUZbUZbXjbUZbUZbUZbVsbUZbUZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLaaabWObXkbXlbWXbXmbWXbXnbXobWOaaaacLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUZbUZbUZbUZbUZbUZbUZbUZbUZbUZbUZbUZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLaaabWObXpbXqbWXbXrbWXbXsbXtbWOaaaacLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUZbUZbUZbUZbUZbUZbUZbUZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLaaabWObXubXvbWXbWXbWXbXwbXxbWOaaaacLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLaaabWObXybXzbXAbWXbXBbXCbXDbWOaaaacLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbWbaacbWObWXbWXbWXbWXbWXbWXbWXbWOaacbWbaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLaaabWObXEbXFbXGbXHbXIbXJbXKbWOaaaacLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLaaabWObWObWObWObWObWObWObWObWOaaaacLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXLaaaaaaaaaaacaaaaaaaaabXMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLacLbWbacLacLacLbWbacLacLacLbWbacLacLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaacaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +"} diff --git a/_maps/map_files/PubbyStation/job/job_changes.dm b/_maps/map_files/PubbyStation/job/job_changes.dm new file mode 100644 index 0000000..232f127 --- /dev/null +++ b/_maps/map_files/PubbyStation/job/job_changes.dm @@ -0,0 +1,20 @@ +/datum/job/assistant +/datum/job/captain +/datum/job/hop + +/datum/job/hos/New() + ..() + access += access_crematorium + minimal_access += access_crematorium + +/datum/job/warden/New() + ..() + access += access_crematorium + minimal_access += access_crematorium + +/datum/job/officer/New() + ..() + access += access_crematorium + minimal_access += access_crematorium + +/datum/job/detective diff --git a/_maps/map_files/PubbyStation/job/removed_jobs.dm b/_maps/map_files/PubbyStation/job/removed_jobs.dm new file mode 100644 index 0000000..28e7292 --- /dev/null +++ b/_maps/map_files/PubbyStation/job/removed_jobs.dm @@ -0,0 +1,8 @@ +/datum/job/chaplain/config_check() + return 0 + +/datum/job/librarian/config_check() + return 0 + +/datum/job/lawyer/config_check() + return 0 diff --git a/_maps/map_files/TgStation/tgstation.2.1.3.dmm b/_maps/map_files/TgStation/tgstation.2.1.3.dmm new file mode 100644 index 0000000..a8bd4e5 --- /dev/null +++ b/_maps/map_files/TgStation/tgstation.2.1.3.dmm @@ -0,0 +1,7133 @@ +"aaa" = (/turf/open/space,/area/space) +"aab" = (/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 24; id = "syndicate_n"; name = "north of station"; turf_type = /turf/open/space; width = 18},/turf/open/space,/area/space) +"aac" = (/turf/open/space,/obj/machinery/porta_turret/syndicate{dir = 9},/turf/closed/wall/mineral/plastitanium{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/syndicate) +"aad" = (/turf/closed/wall/mineral/plastitanium,/area/shuttle/syndicate) +"aae" = (/obj/structure/grille,/obj/machinery/door/poddoor/shutters{id = "syndieshutters"; name = "blast shutters"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/shuttle/syndicate) +"aaf" = (/turf/open/space,/obj/machinery/porta_turret/syndicate{dir = 5},/turf/closed/wall/mineral/plastitanium{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/syndicate) +"aag" = (/obj/structure/table,/obj/machinery/microwave,/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aah" = (/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aai" = (/obj/structure/table,/obj/item/device/flashlight/lamp{pixel_x = 4; pixel_y = 1},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aaj" = (/obj/machinery/computer/shuttle/syndicate,/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aak" = (/obj/structure/table,/obj/machinery/button/door{id = "syndieshutters"; name = "remote shutter control"; req_access_txt = "150"},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aal" = (/obj/structure/frame/computer,/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aam" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aan" = (/obj/structure/chair/comfy/beige{dir = 1; icon_state = "comfychair"},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aao" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 10},/obj/item/device/multitool,/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aap" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; freerange = 1; frequency = 1213; name = "Syndicate Intercom"; pixel_y = -32; subspace_transmission = 1; syndie = 1},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aaq" = (/obj/structure/closet/syndicate/personal,/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aar" = (/turf/open/space,/turf/closed/wall/mineral/plastitanium{icon_state = "diagonalWall3"},/area/shuttle/syndicate) +"aas" = (/obj/machinery/door/window{name = "Cockpit"; req_access_txt = "150"},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aat" = (/turf/open/space,/turf/closed/wall/mineral/plastitanium{dir = 4; icon_state = "diagonalWall3"},/area/shuttle/syndicate) +"aau" = (/turf/open/space,/area/shuttle/syndicate) +"aav" = (/obj/structure/table,/obj/item/stack/cable_coil,/obj/item/weapon/crowbar/red,/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aaw" = (/obj/structure/table,/obj/item/weapon/storage/box/zipties{pixel_x = 1; pixel_y = 2},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aax" = (/obj/structure/chair{dir = 8},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aay" = (/obj/machinery/porta_turret/syndicate{dir = 4},/turf/closed/wall/mineral/plastitanium,/area/shuttle/syndicate) +"aaz" = (/obj/machinery/suit_storage_unit/syndicate,/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aaA" = (/obj/structure/closet/syndicate/nuclear,/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aaB" = (/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 24; id = "syndicate_ne"; name = "northeast of station"; turf_type = /turf/open/space; width = 18},/turf/open/space,/area/space) +"aaC" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aaD" = (/obj/structure/table,/obj/item/device/aicard,/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aaE" = (/obj/machinery/door/poddoor{id = "smindicate"; name = "outer blast door"},/obj/machinery/button/door{id = "smindicate"; name = "external door control"; pixel_x = -26; pixel_y = 0; req_access_txt = "150"},/obj/docking_port/mobile{dheight = 9; dir = 2; dwidth = 5; height = 24; id = "syndicate"; name = "syndicate infiltrator"; port_angle = 0; roundstart_move = "syndicate_away"; width = 18},/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 24; id = "syndicate_nw"; name = "northwest of station"; turf_type = /turf/open/space; width = 18},/turf/open/floor/plating,/area/shuttle/syndicate) +"aaF" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/turf/closed/wall/mineral/plastitanium,/area/shuttle/syndicate) +"aaG" = (/obj/structure/table,/obj/item/weapon/c4{pixel_x = 2; pixel_y = -5},/obj/item/weapon/c4{pixel_x = -3; pixel_y = 3},/obj/item/weapon/c4{pixel_x = 2; pixel_y = -3},/obj/item/weapon/c4{pixel_x = -2; pixel_y = -1},/obj/item/weapon/c4{pixel_x = 3; pixel_y = 3},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aaH" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/shuttle/syndicate) +"aaI" = (/obj/machinery/door/window{name = "Ready Room"; req_access_txt = "150"},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aaJ" = (/obj/effect/landmark{name = "carpspawn"},/turf/open/space,/area/space) +"aaK" = (/obj/machinery/door/window{dir = 4; name = "EVA Storage"; req_access_txt = "150"},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aaL" = (/obj/machinery/door/airlock/external{req_access_txt = "150"},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aaM" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "EVA Storage"; req_access_txt = "150"},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aaN" = (/turf/open/space,/turf/closed/wall/mineral/plastitanium{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/syndicate) +"aaO" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; freerange = 1; frequency = 1213; name = "Syndicate Intercom"; pixel_x = -32; subspace_transmission = 1; syndie = 1},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aaP" = (/obj/machinery/sleeper/syndie{dir = 4},/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"aaQ" = (/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"aaR" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"aaS" = (/obj/structure/tank_dispenser/oxygen,/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"aaT" = (/obj/structure/table,/obj/item/stack/medical/ointment,/obj/item/stack/medical/bruise_pack,/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"aaU" = (/obj/structure/table,/obj/item/weapon/stock_parts/cell/high{pixel_x = -3; pixel_y = 3},/obj/item/weapon/stock_parts/cell/high,/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aaV" = (/obj/structure/table,/obj/item/weapon/screwdriver{pixel_y = 9},/obj/item/device/assembly/voice{pixel_y = 3},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aaW" = (/obj/structure/table,/obj/item/weapon/wrench,/obj/item/device/assembly/infra,/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aaX" = (/obj/structure/table,/obj/item/device/assembly/signaler,/obj/item/device/assembly/signaler,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aaY" = (/obj/structure/table,/obj/item/weapon/weldingtool/largetank{pixel_y = 3},/obj/item/device/multitool,/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"aaZ" = (/obj/structure/bed/roller,/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"aba" = (/obj/structure/sign/bluecross_2,/turf/closed/wall/mineral/plastitanium,/area/shuttle/syndicate) +"abb" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/syndicate,/obj/item/weapon/crowbar/red,/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"abc" = (/obj/machinery/door/window{dir = 4; name = "Infirmary"; req_access_txt = "150"},/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"abd" = (/obj/machinery/door/window/westright{name = "Tool Storage"; req_access_txt = "150"},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"abe" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Infirmary"; req_access_txt = "150"},/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"abf" = (/obj/machinery/door/window{dir = 8; name = "Tool Storage"; req_access_txt = "150"},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"abg" = (/obj/machinery/recharge_station,/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"abh" = (/obj/structure/lattice,/turf/open/space,/area/space) +"abi" = (/obj/machinery/porta_turret/syndicate{dir = 5},/turf/closed/wall/mineral/plastitanium,/area/shuttle/syndicate) +"abj" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table,/obj/item/bodypart/r_arm/robot,/obj/item/bodypart/l_arm/robot,/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"abk" = (/obj/machinery/door/window{dir = 1; name = "Surgery"; req_access_txt = "150"},/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"abl" = (/obj/structure/window/reinforced{dir = 1},/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"abm" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/storage/firstaid/regular{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/brute,/obj/item/weapon/storage/firstaid/regular{pixel_x = -3; pixel_y = -3},/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"abn" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = -3; pixel_y = -3},/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"abo" = (/obj/structure/table,/obj/item/device/sbeacondrop/bomb{pixel_y = 5},/obj/item/device/sbeacondrop/bomb,/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"abp" = (/obj/structure/table,/obj/item/weapon/grenade/syndieminibomb{pixel_x = 4; pixel_y = 2},/obj/item/weapon/grenade/syndieminibomb{pixel_x = -1},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"abq" = (/obj/structure/lattice/catwalk,/turf/open/space,/area/space) +"abr" = (/obj/structure/table,/obj/item/weapon/surgicaldrill,/obj/item/weapon/circular_saw,/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"abs" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/mirror{pixel_x = 30},/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"abt" = (/obj/machinery/nuclearbomb/syndicate,/obj/machinery/door/window{dir = 1; name = "Secure Storage"; req_access_txt = "150"},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"abu" = (/obj/machinery/telecomms/allinone{intercept = 1},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"abv" = (/obj/structure/sign/securearea{pixel_y = -32},/turf/open/space,/area/space) +"abw" = (/obj/structure/table,/obj/item/weapon/cautery,/obj/item/weapon/scalpel,/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"abx" = (/obj/structure/table/optable,/obj/item/weapon/surgical_drapes,/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"aby" = (/obj/structure/table,/obj/item/weapon/retractor,/obj/item/weapon/hemostat,/turf/open/floor/mineral/titanium,/area/shuttle/syndicate) +"abz" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating,/area/shuttle/syndicate) +"abA" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"abB" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/rods{amount = 50},/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"abC" = (/obj/structure/rack,/obj/item/clothing/suit/space/syndicate/black/red,/obj/item/clothing/head/helmet/space/syndicate/black/red,/turf/open/floor/mineral/plastitanium,/area/shuttle/syndicate) +"abD" = (/turf/closed/wall/r_wall,/area/security/prison) +"abE" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/prison) +"abF" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/closed/wall/r_wall,/area/security/prison) +"abG" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/prison) +"abH" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/prison) +"abI" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"},/turf/open/floor/plating,/area/shuttle/syndicate) +"abJ" = (/obj/structure/shuttle/engine/propulsion,/turf/open/floor/plating,/area/shuttle/syndicate) +"abK" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"},/turf/open/floor/plating,/area/shuttle/syndicate) +"abL" = (/obj/machinery/hydroponics/soil,/obj/item/seeds/ambrosia,/turf/open/floor/plasteel/green/side{dir = 9},/area/security/prison) +"abM" = (/obj/machinery/hydroponics/soil,/obj/item/seeds/carrot,/turf/open/floor/plasteel/green/side{dir = 1},/area/security/prison) +"abN" = (/obj/machinery/airalarm{pixel_y = 23},/turf/open/floor/plating,/area/security/prison) +"abO" = (/obj/machinery/hydroponics/soil,/obj/item/seeds/glowshroom,/turf/open/floor/plasteel/green/side{dir = 1},/area/security/prison) +"abP" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/obj/machinery/hydroponics/soil,/obj/item/device/plant_analyzer,/obj/machinery/camera{c_tag = "Prison Common Room"; network = list("SS13","Prison")},/turf/open/floor/plasteel/green/side{dir = 5},/area/security/prison) +"abQ" = (/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"abR" = (/obj/structure/sink{pixel_y = 20},/turf/open/floor/plating,/area/security/prison) +"abS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"abT" = (/obj/machinery/biogenerator,/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"abU" = (/turf/open/space,/obj/machinery/porta_turret/syndicate{dir = 6},/turf/closed/wall/mineral/plastitanium{dir = 4; icon_state = "diagonalWall3"},/area/shuttle/syndicate) +"abV" = (/turf/open/space,/obj/machinery/porta_turret/syndicate{dir = 10},/turf/closed/wall/mineral/plastitanium{icon_state = "diagonalWall3"},/area/shuttle/syndicate) +"abW" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plating,/area/security/prison) +"abX" = (/turf/open/floor/plating,/area/security/prison) +"abY" = (/mob/living/simple_animal/mouse/brown/Tom,/turf/open/floor/plating,/area/security/prison) +"abZ" = (/obj/item/weapon/reagent_containers/glass/bucket,/turf/open/floor/plating,/area/security/prison) +"aca" = (/obj/machinery/seed_extractor,/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"acb" = (/obj/structure/window/reinforced,/obj/machinery/hydroponics/soil,/obj/item/seeds/potato,/turf/open/floor/plasteel/green/side{dir = 10},/area/security/prison) +"acc" = (/obj/structure/window/reinforced,/obj/machinery/hydroponics/soil,/obj/item/seeds/grass,/turf/open/floor/plasteel/green/side{dir = 2},/area/security/prison) +"acd" = (/obj/structure/window/reinforced,/turf/open/floor/plating,/area/security/prison) +"ace" = (/obj/structure/window/reinforced,/obj/machinery/hydroponics/soil,/obj/item/weapon/cultivator,/turf/open/floor/plasteel/green/side{dir = 2},/area/security/prison) +"acf" = (/obj/structure/window/reinforced,/obj/machinery/hydroponics/soil,/obj/item/weapon/cultivator,/turf/open/floor/plasteel/green/side{dir = 6},/area/security/prison) +"acg" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"ach" = (/turf/open/floor/plating/airless,/area/space/nearstation) +"aci" = (/obj/structure/bookcase,/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"acj" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"ack" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plasteel/barber,/area/security/prison) +"acl" = (/obj/machinery/washing_machine,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plasteel/barber,/area/security/prison) +"acm" = (/obj/machinery/computer/libraryconsole/bookmanagement{pixel_y = 0},/obj/structure/table,/obj/machinery/newscaster{pixel_x = -32; pixel_y = 0},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"acn" = (/obj/structure/table,/obj/item/weapon/storage/pill_bottle/dice,/turf/open/floor/plasteel,/area/security/prison) +"aco" = (/obj/structure/table,/obj/item/weapon/pen,/turf/open/floor/plasteel,/area/security/prison) +"acp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/barber,/area/security/prison) +"acq" = (/obj/structure/table,/obj/structure/bedsheetbin,/turf/open/floor/plasteel/barber,/area/security/prison) +"acr" = (/obj/structure/lattice,/obj/structure/sign/securearea{pixel_y = -32},/turf/open/space,/area/space) +"acs" = (/obj/structure/grille,/obj/structure/lattice,/turf/open/space,/area/space) +"act" = (/obj/machinery/computer/arcade,/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"acu" = (/obj/structure/chair/stool,/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"acv" = (/obj/structure/table,/obj/item/toy/cards/deck,/turf/open/floor/plasteel,/area/security/prison) +"acw" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/open/floor/plasteel,/area/security/prison) +"acx" = (/obj/structure/window/reinforced,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/barber,/area/security/prison) +"acy" = (/obj/machinery/washing_machine,/obj/structure/window/reinforced,/turf/open/floor/plasteel/barber,/area/security/prison) +"acz" = (/turf/closed/wall/r_wall,/area/ai_monitored/security/armory) +"acA" = (/obj/structure/lattice,/obj/structure/grille/broken,/turf/open/space,/area/space) +"acB" = (/turf/closed/wall,/area/security/transfer) +"acC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/closed/wall,/area/security/transfer) +"acD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/security/transfer) +"acE" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/closed/wall,/area/security/transfer) +"acF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/closed/wall/r_wall,/area/security/transfer) +"acG" = (/obj/machinery/vending/sustenance,/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"acH" = (/obj/machinery/holopad,/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"acI" = (/obj/machinery/light/small{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/freezer,/area/security/prison) +"acJ" = (/obj/machinery/shower{dir = 8},/obj/item/weapon/soap/nanotrasen,/turf/open/floor/plasteel/freezer,/area/security/prison) +"acK" = (/obj/structure/lattice,/obj/structure/grille,/turf/open/space,/area/space) +"acL" = (/obj/structure/grille,/turf/open/space,/area/space) +"acM" = (/turf/closed/wall/r_wall,/area/security/main) +"acN" = (/turf/closed/wall,/area/security/main) +"acO" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/main) +"acP" = (/turf/closed/wall,/area/security/hos) +"acQ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/hos) +"acR" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/tracker,/turf/open/floor/plasteel/airless/solarpanel,/area/solar/auxport) +"acS" = (/obj/machinery/door/poddoor{id = "executionspaceblast"; name = "blast door"},/turf/open/floor/plating,/area/security/transfer) +"acT" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/darkwarning{dir = 9},/area/security/transfer) +"acU" = (/obj/machinery/light/small{dir = 1},/obj/machinery/flasher{id = "executionflash"; pixel_x = 0; pixel_y = 25},/turf/open/floor/plasteel/darkwarning{dir = 1},/area/security/transfer) +"acV" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/darkwarning{dir = 5},/area/security/transfer) +"acW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/security/transfer) +"acX" = (/obj/machinery/vending/cola,/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"acY" = (/obj/machinery/light,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"acZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"ada" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"adb" = (/obj/machinery/light,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"adc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"add" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"ade" = (/obj/machinery/door/window/westleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Unisex Showers"; req_access_txt = "0"},/turf/open/floor/plasteel/freezer,/area/security/prison) +"adf" = (/turf/open/floor/plasteel/freezer,/area/security/prison) +"adg" = (/obj/structure/closet/secure_closet/security/sec,/turf/open/floor/plasteel/showroomfloor,/area/security/main) +"adh" = (/turf/open/floor/plasteel/showroomfloor,/area/security/main) +"adi" = (/obj/structure/closet/secure_closet/security/sec,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/showroomfloor,/area/security/main) +"adj" = (/obj/machinery/requests_console{announcementConsole = 1; department = "Head of Security's Desk"; departmentType = 5; name = "Head of Security RC"; pixel_x = 0; pixel_y = 30},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = -31},/obj/structure/table/wood,/obj/item/weapon/storage/box/seccarts{pixel_x = 3; pixel_y = 2},/obj/item/weapon/storage/box/deputy,/turf/open/floor/carpet,/area/security/hos) +"adk" = (/obj/machinery/computer/secure_data,/turf/open/floor/carpet,/area/security/hos) +"adl" = (/obj/machinery/computer/security,/turf/open/floor/carpet,/area/security/hos) +"adm" = (/obj/machinery/computer/card/minor/hos,/turf/open/floor/carpet,/area/security/hos) +"adn" = (/obj/machinery/airalarm{pixel_y = 23},/obj/structure/reagent_dispensers/peppertank{pixel_x = 30; pixel_y = 0},/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka/badminka,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass,/turf/open/floor/carpet,/area/security/hos) +"ado" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/tracker,/turf/open/floor/plasteel/airless/solarpanel,/area/solar/auxstarboard) +"adp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxport) +"adq" = (/turf/open/floor/plasteel/darkwarning{dir = 8},/area/security/transfer) +"adr" = (/obj/structure/bed,/obj/effect/landmark{name = "revenantspawn"},/turf/open/floor/plasteel/black,/area/security/transfer) +"ads" = (/obj/machinery/sparker{dir = 2; id = "executionburn"; pixel_x = 25},/turf/open/floor/plasteel/darkwarning{dir = 4},/area/security/transfer) +"adt" = (/turf/closed/wall,/area/security/prison) +"adu" = (/obj/machinery/door/poddoor/preopen{id = "permacell3"; name = "cell blast door"},/obj/machinery/door/airlock/glass{id_tag = "permabolt3"; name = "Cell 3"},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"adv" = (/obj/machinery/door/poddoor/preopen{id = "permacell2"; name = "cell blast door"},/obj/machinery/door/airlock/glass{id_tag = "permabolt2"; name = "Cell 2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"adw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/poddoor/preopen{id = "permacell1"; name = "cell blast door"},/obj/machinery/door/airlock/glass{id_tag = "permabolt1"; name = "Cell 1"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"adx" = (/obj/machinery/door/airlock{name = "Unisex Restroom"; req_access_txt = "0"},/turf/open/floor/plasteel/freezer,/area/security/prison) +"ady" = (/obj/structure/closet/bombcloset,/turf/open/floor/plasteel/showroomfloor,/area/security/main) +"adz" = (/obj/effect/landmark{name = "secequipment"},/turf/open/floor/plasteel/showroomfloor,/area/security/main) +"adA" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/showroomfloor,/area/security/main) +"adB" = (/obj/machinery/newscaster/security_unit{pixel_x = -30; pixel_y = 0},/obj/machinery/camera{c_tag = "Head of Security's Office"; dir = 4; network = list("SS13")},/obj/machinery/recharger{pixel_y = 4},/obj/structure/table/wood,/turf/open/floor/carpet,/area/security/hos) +"adC" = (/obj/structure/chair/comfy/black,/turf/open/floor/carpet,/area/security/hos) +"adD" = (/turf/open/floor/carpet,/area/security/hos) +"adE" = (/obj/machinery/holopad,/turf/open/floor/carpet,/area/security/hos) +"adF" = (/obj/machinery/keycard_auth{pixel_x = 24; pixel_y = 10},/obj/structure/table/wood,/obj/item/device/radio/off,/obj/item/device/taperecorder{pixel_y = 0},/turf/open/floor/carpet,/area/security/hos) +"adG" = (/obj/structure/sign/securearea{pixel_y = -32},/obj/structure/lattice/catwalk,/turf/open/space,/area/space) +"adH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxstarboard) +"adI" = (/obj/structure/lattice,/obj/item/stack/cable_coil/random,/turf/open/space,/area/space) +"adJ" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/darkwarning{dir = 10},/area/security/transfer) +"adK" = (/turf/open/floor/plasteel/darkwarning{dir = 2},/area/security/transfer) +"adL" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 2},/turf/open/floor/plasteel/darkwarning{dir = 6},/area/security/transfer) +"adM" = (/obj/structure/bed,/obj/machinery/camera{c_tag = "Prison Cell 3"; network = list("SS13","Prison")},/obj/item/device/radio/intercom{desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; pixel_x = 0; pixel_y = 24; prison_radio = 1},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"adN" = (/obj/structure/chair/stool,/obj/machinery/light/small{dir = 1},/obj/machinery/button/door{id = "permabolt3"; name = "Cell Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"adO" = (/obj/structure/bed,/obj/machinery/camera{c_tag = "Prison Cell 2"; network = list("SS13","Prison")},/obj/item/device/radio/intercom{desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; pixel_x = 0; pixel_y = 24; prison_radio = 1},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"adP" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"adQ" = (/obj/structure/chair/stool,/obj/machinery/light/small{dir = 1},/obj/machinery/button/door{id = "permabolt2"; name = "Cell Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"adR" = (/obj/structure/bed,/obj/machinery/camera{c_tag = "Prison Cell 1"; network = list("SS13","Prison")},/obj/item/device/radio/intercom{desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; pixel_x = 0; pixel_y = 24; prison_radio = 1},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"adS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"adT" = (/obj/structure/chair/stool,/obj/machinery/light/small{dir = 1},/obj/machinery/button/door{id = "permabolt1"; name = "Cell Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"adU" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/freezer,/area/security/prison) +"adV" = (/obj/structure/table,/obj/item/weapon/storage/box/firingpins,/obj/item/weapon/storage/box/firingpins,/obj/item/key/security,/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/security/armory) +"adW" = (/obj/structure/table,/obj/item/weapon/storage/box/chemimp{pixel_x = 6},/obj/item/weapon/storage/box/trackimp{pixel_x = -3},/obj/item/weapon/storage/lockbox/loyalty,/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/security/armory) +"adX" = (/obj/structure/rack,/obj/machinery/firealarm{pixel_y = 24},/obj/item/weapon/gun/energy/gun/dragnet,/obj/item/weapon/gun/energy/gun/dragnet,/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/security/armory) +"adY" = (/obj/structure/rack,/obj/item/clothing/suit/armor/bulletproof{pixel_x = -3; pixel_y = 3},/obj/item/clothing/suit/armor/bulletproof{pixel_y = 0},/obj/item/clothing/suit/armor/bulletproof{pixel_x = 3; pixel_y = -3},/obj/item/clothing/head/helmet/alt{layer = 3.00001; pixel_x = -3; pixel_y = 3},/obj/item/clothing/head/helmet/alt{layer = 3.00001},/obj/item/clothing/head/helmet/alt{layer = 3.00001; pixel_x = 3; pixel_y = -3},/obj/machinery/camera/motion{c_tag = "Armory Motion Sensor"; dir = 2; name = "motion-sensitive security camera"},/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/security/armory) +"adZ" = (/obj/structure/rack,/obj/item/clothing/suit/armor/riot{pixel_x = -3; pixel_y = 3},/obj/item/clothing/suit/armor/riot,/obj/item/clothing/suit/armor/riot{pixel_x = 3; pixel_y = -3},/obj/machinery/light{dir = 1},/obj/item/clothing/head/helmet/riot{pixel_x = -3; pixel_y = 3},/obj/item/clothing/head/helmet/riot,/obj/item/clothing/head/helmet/riot{pixel_x = 3; pixel_y = -3},/obj/item/weapon/shield/riot{pixel_x = -3; pixel_y = 3},/obj/item/weapon/shield/riot,/obj/item/weapon/shield/riot{pixel_x = 3; pixel_y = -3},/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/security/armory) +"aea" = (/obj/structure/rack,/obj/machinery/airalarm{pixel_y = 23},/obj/item/weapon/gun/energy/ionrifle,/obj/item/weapon/gun/energy/temperature/security,/obj/item/clothing/suit/armor/laserproof,/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/security/armory) +"aeb" = (/obj/structure/closet/secure_closet/lethalshots,/turf/open/floor/plasteel/black,/area/ai_monitored/security/armory) +"aec" = (/obj/vehicle/secway,/turf/open/floor/plasteel/black,/area/ai_monitored/security/armory) +"aed" = (/obj/structure/closet/l3closet/security,/obj/machinery/camera{c_tag = "Brig Equipment Room"; dir = 4},/turf/open/floor/plasteel/showroomfloor,/area/security/main) +"aee" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/showroomfloor,/area/security/main) +"aef" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green{on = 0; pixel_x = -3; pixel_y = 8},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/turf/open/floor/carpet,/area/security/hos) +"aeg" = (/obj/structure/table/wood,/obj/item/weapon/folder/red,/obj/item/weapon/stamp/hos,/turf/open/floor/carpet,/area/security/hos) +"aeh" = (/obj/item/weapon/book/manual/wiki/security_space_law,/obj/structure/table/wood,/turf/open/floor/carpet,/area/security/hos) +"aei" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/suit_storage_unit/hos,/turf/open/floor/carpet,/area/security/hos) +"aej" = (/obj/machinery/door/airlock/external{name = "Security External Airlock"; req_access_txt = "63"},/turf/open/floor/plating,/area/security/main) +"aek" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar{id = "auxsolareast"; name = "Port Auxiliary Solar Array"},/turf/open/floor/plasteel/airless/solarpanel,/area/solar/auxport) +"ael" = (/obj/structure/cable,/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxport) +"aem" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/poddoor/preopen{id = "executionfireblast"; layer = 2.9; name = "blast door"},/obj/machinery/door/firedoor,/turf/open/floor/plating,/area/security/transfer) +"aen" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "executionfireblast"; layer = 2.9; name = "blast door"},/obj/machinery/door/firedoor,/turf/open/floor/plating,/area/security/transfer) +"aeo" = (/obj/machinery/door/poddoor/preopen{id = "executionfireblast"; layer = 2.9; name = "blast door"},/obj/machinery/atmospherics/pipe/simple/general/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/window/westright{dir = 1; name = "Transfer Room"; req_access_txt = "2"},/turf/open/floor/plasteel/vault{dir = 8},/area/security/transfer) +"aep" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/obj/machinery/flasher{id = "PCell 3"; pixel_x = -28},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"aeq" = (/obj/structure/table,/obj/item/weapon/paper,/obj/item/weapon/pen,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"aer" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/obj/machinery/flasher{id = "PCell 2"; pixel_x = -28},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"aes" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"aet" = (/obj/structure/table,/obj/item/weapon/paper,/obj/item/weapon/pen,/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"aeu" = (/obj/machinery/flasher{id = "PCell 1"; pixel_x = -28},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"aev" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"aew" = (/obj/structure/toilet{dir = 1},/turf/open/floor/plasteel/freezer,/area/security/prison) +"aex" = (/obj/item/weapon/grenade/barrier{pixel_x = 4},/obj/item/weapon/grenade/barrier,/obj/item/weapon/grenade/barrier{pixel_x = -4},/obj/structure/table,/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/security/armory) +"aey" = (/turf/open/floor/plasteel/warning{dir = 9},/area/ai_monitored/security/armory) +"aez" = (/turf/open/floor/plasteel/warning{dir = 1},/area/ai_monitored/security/armory) +"aeA" = (/obj/machinery/power/apc{cell_type = 5000; dir = 4; name = "Armory APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/open/floor/plasteel/warning{dir = 1},/area/ai_monitored/security/armory) +"aeB" = (/obj/machinery/vending/security,/turf/open/floor/plasteel/showroomfloor,/area/security/main) +"aeC" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/carpet,/area/security/hos) +"aeD" = (/obj/structure/chair{dir = 1},/turf/open/floor/carpet,/area/security/hos) +"aeE" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/carpet,/area/security/hos) +"aeF" = (/obj/item/weapon/storage/secure/safe/HoS{pixel_x = 35},/obj/structure/closet/secure_closet/hos,/turf/open/floor/carpet,/area/security/hos) +"aeG" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = -32; pixel_y = 0},/turf/open/floor/plating,/area/security/main) +"aeH" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar{id = "auxsolareast"; name = "Port Auxiliary Solar Array"},/turf/open/floor/plasteel/airless/solarpanel,/area/solar/auxstarboard) +"aeI" = (/obj/structure/cable,/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxstarboard) +"aeJ" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxport) +"aeK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxport) +"aeL" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxport) +"aeM" = (/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxport) +"aeN" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxport) +"aeO" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxport) +"aeP" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxport) +"aeQ" = (/obj/structure/sign/securearea{pixel_x = 32; pixel_y = 0},/turf/open/space,/area/space) +"aeR" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/weapon/scalpel{pixel_y = 12},/obj/item/weapon/circular_saw,/obj/item/weapon/hemostat,/obj/item/weapon/retractor,/obj/item/weapon/surgical_drapes,/obj/item/weapon/razor,/turf/open/floor/plasteel/black,/area/security/transfer) +"aeS" = (/obj/structure/table,/obj/item/weapon/folder/red{pixel_x = 3},/obj/item/device/taperecorder{pixel_x = -3; pixel_y = 0},/obj/item/device/assembly/flash/handheld,/obj/item/weapon/reagent_containers/spray/pepper,/turf/open/floor/plasteel/black,/area/security/transfer) +"aeT" = (/obj/machinery/button/flasher{id = "executionflash"; pixel_x = 24; pixel_y = 5},/obj/machinery/button/door{id = "executionspaceblast"; name = "Vent to Space"; pixel_x = 25; pixel_y = -5; req_access_txt = "7"},/obj/machinery/atmospherics/pipe/simple/general/hidden,/turf/open/floor/plasteel/black,/area/security/transfer) +"aeU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/security/prison) +"aeV" = (/obj/machinery/door/airlock/glass_security{name = "Long-Term Cell 3"; req_access_txt = "2"},/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"aeW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/security/prison) +"aeX" = (/obj/machinery/door/airlock/glass_security{name = "Long-Term Cell 2"; req_access_txt = "2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"aeY" = (/obj/machinery/door/airlock/glass_security{name = "Long-Term Cell 1"; req_access_txt = "2"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/security/prison) +"aeZ" = (/obj/structure/closet/secure_closet{anchored = 1; name = "Contraband Locker"; req_access_txt = "3"},/turf/open/floor/plasteel/black,/area/ai_monitored/security/armory) +"afa" = (/obj/item/weapon/storage/toolbox/drone,/turf/open/floor/plasteel/warning{dir = 8},/area/ai_monitored/security/armory) +"afb" = (/obj/structure/rack,/obj/item/weapon/gun/projectile/shotgun/riot{pixel_x = -3; pixel_y = 3},/obj/item/weapon/gun/projectile/shotgun/riot,/obj/item/weapon/gun/projectile/shotgun/riot{pixel_x = 3; pixel_y = -3},/turf/open/floor/plasteel/bot{dir = 2},/area/ai_monitored/security/armory) +"afc" = (/obj/structure/rack,/obj/item/weapon/gun/energy/gun{pixel_x = -3; pixel_y = 3},/obj/item/weapon/gun/energy/gun,/obj/item/weapon/gun/energy/gun{pixel_x = 3; pixel_y = -3},/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/bot{dir = 2},/area/ai_monitored/security/armory) +"afd" = (/obj/structure/rack,/obj/item/weapon/gun/energy/laser{pixel_x = -3; pixel_y = 3},/obj/item/weapon/gun/energy/laser,/obj/item/weapon/gun/energy/laser{pixel_x = 3; pixel_y = -3},/turf/open/floor/plasteel/bot{dir = 2},/area/ai_monitored/security/armory) +"afe" = (/obj/structure/rack,/obj/item/weapon/gun/energy/gun/advtaser{pixel_x = -3; pixel_y = 3},/obj/item/weapon/gun/energy/gun/advtaser,/obj/item/weapon/gun/energy/gun/advtaser{pixel_x = 3; pixel_y = -3},/turf/open/floor/plasteel/bot{dir = 2},/area/ai_monitored/security/armory) +"aff" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/ai_monitored/security/armory) +"afg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/chair/office/dark{dir = 4},/turf/open/floor/plasteel,/area/ai_monitored/security/armory) +"afh" = (/obj/machinery/door/window/eastleft{name = "armoury desk"; req_access_txt = "1"},/obj/machinery/door/window/westleft{name = "armoury desk"; req_access_txt = "3"},/obj/structure/table/reinforced,/turf/open/floor/plasteel,/area/ai_monitored/security/armory) +"afi" = (/obj/machinery/power/apc{dir = 8; name = "Head of Security's Office APC"; pixel_x = -24; pixel_y = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/carpet,/area/security/hos) +"afj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/carpet,/area/security/hos) +"afk" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/carpet,/area/security/hos) +"afl" = (/obj/machinery/light_switch{pixel_y = -23},/obj/effect/landmark/event_spawn,/turf/open/floor/carpet,/area/security/hos) +"afm" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/turf/open/floor/carpet,/area/security/hos) +"afn" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxstarboard) +"afo" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxstarboard) +"afp" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxstarboard) +"afq" = (/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxstarboard) +"afr" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxstarboard) +"afs" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxstarboard) +"aft" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxstarboard) +"afu" = (/obj/structure/cable,/obj/machinery/power/solar{id = "auxsolareast"; name = "Port Auxiliary Solar Array"},/turf/open/floor/plasteel/airless/solarpanel,/area/solar/auxport) +"afv" = (/obj/machinery/portable_atmospherics/canister/nitrous_oxide,/obj/machinery/atmospherics/components/unary/portables_connector/visible,/turf/open/floor/plating/warnplate{dir = 9},/area/security/transfer) +"afw" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/obj/machinery/atmospherics/components/unary/portables_connector/visible,/turf/open/floor/plating/warnplate{dir = 1},/area/security/transfer) +"afx" = (/obj/structure/table,/obj/item/device/flashlight/lamp,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/security/transfer) +"afy" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/black,/area/security/transfer) +"afz" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/button/ignition{id = "executionburn"; pixel_x = 24; pixel_y = 5},/obj/machinery/button/door{id = "executionfireblast"; name = "Transfer Area Lockdown"; pixel_x = 25; pixel_y = -5; req_access_txt = "2"},/obj/machinery/atmospherics/pipe/simple/general/hidden,/turf/open/floor/plasteel/black,/area/security/transfer) +"afA" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/closed/wall/r_wall,/area/security/transfer) +"afB" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/red/side{dir = 8},/area/security/prison) +"afC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/prison) +"afD" = (/obj/machinery/button/door{id = "permacell3"; name = "Cell 3 Lockdown"; pixel_x = -4; pixel_y = 25; req_access_txt = "2"},/obj/machinery/button/flasher{id = "PCell 3"; pixel_x = 6; pixel_y = 24},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel/red/corner{dir = 4},/area/security/prison) +"afE" = (/obj/machinery/light{dir = 1},/obj/machinery/computer/security/telescreen{desc = "Used for watching Prison Wing holding areas."; name = "Prison Monitor"; network = list("Prison"); pixel_x = 0; pixel_y = 30},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/prison) +"afF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/red/corner{dir = 1},/area/security/prison) +"afG" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel,/area/security/prison) +"afH" = (/obj/machinery/button/door{id = "permacell2"; name = "Cell 2 Lockdown"; pixel_x = -4; pixel_y = 25; req_access_txt = "2"},/obj/machinery/button/flasher{id = "PCell 2"; pixel_x = 6; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/corner{dir = 4},/area/security/prison) +"afI" = (/obj/machinery/computer/security/telescreen{desc = "Used for watching Prison Wing holding areas."; name = "Prison Monitor"; network = list("Prison"); pixel_x = 0; pixel_y = 30},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/camera{c_tag = "Prison Hallway"; network = list("SS13","Prison")},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/prison) +"afJ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/corner{dir = 1},/area/security/prison) +"afK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/security/prison) +"afL" = (/obj/machinery/button/door{id = "permacell1"; name = "Cell 1 Lockdown"; pixel_x = -4; pixel_y = 25; req_access_txt = "2"},/obj/machinery/button/flasher{id = "PCell 1"; pixel_x = 6; pixel_y = 24},/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,/turf/open/floor/plasteel/red/corner{dir = 4},/area/security/prison) +"afM" = (/obj/machinery/airalarm{pixel_y = 23},/obj/machinery/light{dir = 1},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/prison) +"afN" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/power/apc{dir = 4; name = "Prison Wing APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/prison) +"afO" = (/obj/machinery/flasher/portable,/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/security/armory) +"afP" = (/turf/open/floor/plasteel/warning{dir = 10},/area/ai_monitored/security/armory) +"afQ" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/warning{dir = 2},/area/ai_monitored/security/armory) +"afR" = (/turf/open/floor/plasteel/warning{dir = 2},/area/ai_monitored/security/armory) +"afS" = (/turf/open/floor/plasteel/warning/corner{dir = 1},/area/ai_monitored/security/armory) +"afT" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1},/turf/open/floor/plasteel,/area/ai_monitored/security/armory) +"afU" = (/turf/open/floor/plasteel,/area/ai_monitored/security/armory) +"afV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/ai_monitored/security/armory) +"afW" = (/obj/machinery/door/poddoor/shutters{id = "armory"; name = "Armoury Shutter"},/obj/machinery/button/door{id = "armory"; name = "Armory Shutters"; pixel_x = 0; pixel_y = -26; req_access_txt = "3"},/turf/open/floor/plasteel/delivery{name = "floor"},/area/ai_monitored/security/armory) +"afX" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/showroomfloor,/area/security/main) +"afY" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/reagent_dispensers/peppertank{pixel_x = 30; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/showroomfloor,/area/security/main) +"afZ" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/hos) +"aga" = (/obj/machinery/door/airlock/glass_command{name = "Head of Security"; req_access_txt = "58"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/carpet,/area/security/hos) +"agb" = (/obj/structure/grille,/obj/structure/disposalpipe/segment,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/hos) +"agc" = (/obj/structure/table,/obj/item/stack/packageWrap,/obj/item/weapon/pen,/turf/open/floor/plasteel,/area/security/main) +"agd" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/turf/open/floor/plasteel/warning{dir = 5},/area/security/main) +"age" = (/obj/machinery/camera{c_tag = "Security Escape Pod"; dir = 4; network = list("SS13")},/turf/open/floor/plating,/area/security/main) +"agf" = (/obj/structure/shuttle/engine/propulsion/burst{dir = 4},/turf/closed/wall/mineral/titanium,/area/shuttle/pod_3) +"agg" = (/turf/closed/wall/mineral/titanium,/area/shuttle/pod_3) +"agh" = (/obj/structure/cable,/obj/machinery/power/solar{id = "auxsolareast"; name = "Port Auxiliary Solar Array"},/turf/open/floor/plasteel/airless/solarpanel,/area/solar/auxstarboard) +"agi" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 8},/obj/machinery/light/small{dir = 8},/obj/machinery/portable_atmospherics/canister/nitrous_oxide,/turf/open/floor/plating/warnplate{dir = 8},/area/security/transfer) +"agj" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 9},/turf/open/floor/plating,/area/security/transfer) +"agk" = (/obj/structure/rack,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/item/weapon/tank/internals/anesthetic{pixel_x = -3; pixel_y = 1},/obj/item/weapon/tank/internals/oxygen/red{pixel_x = 3},/turf/open/floor/plasteel/vault{dir = 8},/area/security/transfer) +"agl" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/black,/area/security/transfer) +"agm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/general/hidden,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/black,/area/security/transfer) +"agn" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/security{aiControlDisabled = 0; icon_state = "door_closed"; id_tag = null; locked = 0; name = "Prisoner Transfer Centre"; req_access = null; req_access_txt = "2"},/turf/open/floor/plasteel/black,/area/security/transfer) +"ago" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/prison) +"agp" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/security/prison) +"agq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel,/area/security/prison) +"agr" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/security/prison) +"ags" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/prison) +"agt" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/security/prison) +"agu" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/security/prison) +"agv" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/security/prison) +"agw" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/prison) +"agx" = (/obj/structure/rack,/obj/item/weapon/storage/box/rubbershot{pixel_x = -3; pixel_y = 3},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/weapon/storage/box/rubbershot{pixel_x = -3; pixel_y = 3},/obj/item/weapon/storage/box/rubbershot,/obj/item/weapon/storage/box/rubbershot,/obj/item/weapon/storage/box/rubbershot{pixel_x = 3; pixel_y = -3},/obj/item/weapon/storage/box/rubbershot{pixel_x = 3; pixel_y = -3},/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/security/armory) +"agy" = (/obj/structure/rack,/obj/item/weapon/storage/box/teargas{pixel_x = -3; pixel_y = 3},/obj/item/weapon/storage/box/handcuffs,/obj/item/weapon/storage/box/flashbangs{pixel_x = 3; pixel_y = -3},/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/security/armory) +"agz" = (/turf/open/floor/plasteel/warning{dir = 8},/area/ai_monitored/security/armory) +"agA" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/ai_monitored/security/armory) +"agB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/suit_storage_unit/security,/turf/open/floor/plasteel/red/side,/area/ai_monitored/security/armory) +"agC" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/suit_storage_unit/security,/turf/open/floor/plasteel/red/side,/area/ai_monitored/security/armory) +"agD" = (/obj/structure/table,/obj/machinery/recharger,/turf/open/floor/plasteel/showroomfloor,/area/security/main) +"agE" = (/obj/machinery/recharger,/obj/structure/table,/turf/open/floor/plasteel/showroomfloor,/area/security/main) +"agF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/showroomfloor,/area/security/main) +"agG" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/closet/wardrobe/red,/turf/open/floor/plasteel/showroomfloor,/area/security/main) +"agH" = (/obj/effect/landmark/start{name = "Security Officer"},/turf/open/floor/plasteel/red/side{dir = 9},/area/security/main) +"agI" = (/obj/effect/landmark/start{name = "Security Officer"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/red/side{dir = 1},/area/security/main) +"agJ" = (/obj/effect/landmark/start{name = "Security Officer"},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/main) +"agK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/side{dir = 1},/area/security/main) +"agL" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/effect/landmark/start{name = "Security Officer"},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/main) +"agM" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/effect/landmark/start{name = "Security Officer"},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/main) +"agN" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/main) +"agO" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plasteel/warning{dir = 4},/area/security/main) +"agP" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 4; name = "Escape Pod Three"; req_access_txt = "0"},/turf/open/floor/plating,/area/security/main) +"agQ" = (/turf/open/floor/plating,/area/security/main) +"agR" = (/obj/machinery/door/airlock/external{name = "Escape Pod Three"; req_access_txt = "0"},/turf/open/floor/plating,/area/security/main) +"agS" = (/obj/machinery/door/airlock/shuttle{name = "Escape Pod Airlock"},/obj/docking_port/mobile/pod{dir = 4; id = "pod3"; name = "escape pod 3"; port_angle = 180; preferred_direction = 4},/turf/open/floor/mineral/titanium/blue,/area/shuttle/pod_3) +"agT" = (/obj/item/device/radio/intercom{pixel_y = 25},/obj/item/weapon/storage/pod{pixel_x = 6; pixel_y = -32},/obj/structure/chair{dir = 4},/turf/open/floor/mineral/titanium/blue,/area/shuttle/pod_3) +"agU" = (/obj/machinery/computer/shuttle/pod{pixel_y = -32; possible_destinations = "pod_asteroid3"; shuttleId = "pod3"},/obj/structure/chair{dir = 4},/obj/machinery/status_display{density = 0; layer = 3; pixel_x = 0; pixel_y = 32},/turf/open/floor/mineral/titanium/blue,/area/shuttle/pod_3) +"agV" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/pod_3) +"agW" = (/obj/docking_port/stationary/random{dir = 4; id = "pod_asteroid3"; name = "asteroid"},/turf/open/space,/area/space) +"agX" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/transfer) +"agY" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 5},/turf/open/floor/plating/warnplate{dir = 10},/area/security/transfer) +"agZ" = (/obj/machinery/atmospherics/components/binary/pump{dir = 4; layer = 2.4},/obj/machinery/door/window/southleft{base_state = "right"; dir = 4; icon_state = "right"; name = "Armory"; req_access_txt = "2"},/turf/open/floor/plating/warnplate,/area/security/transfer) +"aha" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{icon_state = "intact"; dir = 4},/turf/open/floor/plasteel/black,/area/security/transfer) +"ahb" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/obj/machinery/atmospherics/pipe/simple/general/hidden{icon_state = "intact"; dir = 4},/turf/open/floor/plasteel/black,/area/security/transfer) +"ahc" = (/obj/machinery/light_switch{pixel_x = 25; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 9},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/security/transfer) +"ahd" = (/turf/closed/wall/r_wall,/area/security/transfer) +"ahe" = (/obj/structure/table,/obj/item/weapon/restraints/handcuffs,/turf/open/floor/plasteel/red/side{dir = 10},/area/security/prison) +"ahf" = (/obj/structure/extinguisher_cabinet{pixel_x = 1; pixel_y = -27},/turf/open/floor/plasteel/red/side,/area/security/prison) +"ahg" = (/turf/open/floor/plasteel/red/side,/area/security/prison) +"ahh" = (/obj/structure/table,/obj/item/device/electropack,/turf/open/floor/plasteel/red/side,/area/security/prison) +"ahi" = (/obj/structure/table,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/item/weapon/storage/box/hug,/obj/item/weapon/razor{pixel_x = -6},/turf/open/floor/plasteel/red/side,/area/security/prison) +"ahj" = (/obj/structure/table,/obj/item/device/assembly/signaler,/obj/item/clothing/suit/straight_jacket,/turf/open/floor/plasteel/red/side,/area/security/prison) +"ahk" = (/obj/structure/closet/secure_closet/brig{anchored = 1},/turf/open/floor/plasteel/red/side,/area/security/prison) +"ahl" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Prison Wing"; req_access_txt = "2"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/side{dir = 9},/area/security/prison) +"ahm" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Prison Wing"; req_access_txt = "2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/red/side{dir = 5},/area/security/prison) +"ahn" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/ai_monitored/security/armory) +"aho" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/ai_monitored/security/armory) +"ahp" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/window/southleft{name = "Armory"; req_access_txt = "3"},/obj/machinery/door/firedoor,/turf/open/floor/plasteel/warning{dir = 10},/area/ai_monitored/security/armory) +"ahq" = (/obj/machinery/door/firedoor,/obj/machinery/door/window/southleft{base_state = "right"; icon_state = "right"; name = "Armory"; req_access_txt = "3"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/warning{dir = 2},/area/ai_monitored/security/armory) +"ahr" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/window/reinforced/fulltile,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/ai_monitored/security/armory) +"ahs" = (/obj/structure/reagent_dispensers/peppertank,/turf/closed/wall/r_wall,/area/ai_monitored/security/armory) +"aht" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/sign/securearea{pixel_x = -32},/turf/open/floor/plating,/area/security/main) +"ahu" = (/obj/machinery/door/airlock/glass_security{name = "Equipment Room"; req_access_txt = "1"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/showroomfloor,/area/security/main) +"ahv" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/main) +"ahw" = (/obj/effect/landmark/start{name = "Security Officer"},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/main) +"ahx" = (/obj/structure/table,/obj/item/weapon/restraints/handcuffs,/obj/item/device/assembly/timer,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/security/main) +"ahy" = (/turf/open/floor/plasteel,/area/security/main) +"ahz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/landmark/start{name = "Head of Security"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/security/main) +"ahA" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/security/main) +"ahB" = (/obj/structure/table,/obj/item/device/radio/off,/obj/item/weapon/screwdriver{pixel_y = 10},/turf/open/floor/plasteel,/area/security/main) +"ahC" = (/obj/effect/landmark/start{name = "Security Officer"},/obj/structure/chair{dir = 8},/turf/open/floor/plasteel,/area/security/main) +"ahD" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/red/side{dir = 4},/area/security/main) +"ahE" = (/obj/structure/sign/pods{pixel_x = 32; pixel_y = 0},/turf/open/floor/plasteel/warning{dir = 6},/area/security/main) +"ahF" = (/obj/structure/closet/emcloset,/obj/machinery/light/small{dir = 8},/turf/open/floor/plating,/area/security/main) +"ahG" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 1},/obj/item/weapon/storage/box/bodybags,/obj/item/weapon/pen,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/plasteel/black,/area/security/transfer) +"ahH" = (/obj/structure/table,/obj/item/device/electropack,/obj/item/weapon/screwdriver,/obj/item/weapon/wrench,/obj/item/clothing/head/helmet,/obj/item/device/assembly/signaler,/obj/machinery/light/small,/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/open/floor/plasteel/black,/area/security/transfer) +"ahI" = (/obj/structure/closet/secure_closet/injection,/obj/structure/cable,/obj/machinery/power/apc{dir = 2; name = "Prisoner Transfer Centre"; pixel_x = 0; pixel_y = -27},/turf/open/floor/plasteel/black,/area/security/transfer) +"ahJ" = (/obj/machinery/door/airlock/security{name = "Interrogation"; req_access = null; req_access_txt = "63"},/turf/open/floor/plasteel/black,/area/security/prison) +"ahK" = (/turf/closed/wall,/area/security/brig) +"ahL" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/sign/securearea{pixel_x = -32; pixel_y = 0},/obj/machinery/door/poddoor/preopen{id = "Prison Gate"; name = "prison blast door"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/delivery{name = "floor"},/area/security/brig) +"ahM" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/preopen{id = "Prison Gate"; name = "prison blast door"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/delivery{name = "floor"},/area/security/brig) +"ahN" = (/turf/closed/wall/r_wall,/area/security/warden) +"ahO" = (/obj/machinery/requests_console{department = "Security"; departmentType = 5; pixel_x = -30; pixel_y = 0},/obj/machinery/camera{c_tag = "Brig Control Room"; dir = 4},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/rack,/obj/item/clothing/mask/gas/sechailer{pixel_x = -3; pixel_y = 3},/obj/item/clothing/mask/gas/sechailer,/obj/item/clothing/mask/gas/sechailer{pixel_x = 3; pixel_y = -3},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"ahP" = (/obj/machinery/computer/prisoner,/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"ahQ" = (/obj/machinery/computer/security,/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"ahR" = (/obj/machinery/computer/secure_data,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"ahS" = (/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"ahT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"ahU" = (/obj/structure/table,/obj/item/clothing/glasses/sunglasses{pixel_x = 3; pixel_y = 3},/obj/item/clothing/glasses/sunglasses{pixel_x = 3; pixel_y = 3},/obj/item/clothing/ears/earmuffs{pixel_x = -3; pixel_y = -2},/obj/item/clothing/ears/earmuffs{pixel_x = -3; pixel_y = -2},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"ahV" = (/obj/structure/table,/obj/machinery/recharger,/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"ahW" = (/obj/structure/table,/obj/machinery/syndicatebomb/training,/obj/item/weapon/gun/energy/laser/practice,/turf/open/floor/plasteel/red/side{dir = 9},/area/security/main) +"ahX" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/side{dir = 1},/area/security/main) +"ahY" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/main) +"ahZ" = (/obj/machinery/requests_console{department = "Security"; departmentType = 5; pixel_y = 30},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/main) +"aia" = (/obj/effect/landmark/start{name = "Security Officer"},/turf/open/floor/plasteel/red/corner{dir = 1},/area/security/main) +"aib" = (/obj/structure/table,/obj/item/device/assembly/flash/handheld,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/security/main) +"aic" = (/obj/machinery/holopad,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/security/main) +"aid" = (/obj/structure/table,/obj/item/weapon/folder/red,/obj/item/weapon/pen,/turf/open/floor/plasteel,/area/security/main) +"aie" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/main) +"aif" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/black,/area/security/prison) +"aig" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/security/prison) +"aih" = (/obj/machinery/airalarm{pixel_y = 23},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/security/prison) +"aii" = (/obj/item/weapon/cigbutt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/black,/area/security/prison) +"aij" = (/turf/open/floor/plasteel/black,/area/security/prison) +"aik" = (/obj/item/clothing/gloves/color/latex,/obj/item/clothing/mask/surgical,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/structure/table/glass,/turf/open/floor/plasteel/whitered/side{dir = 9},/area/security/brig) +"ail" = (/obj/item/weapon/storage/firstaid/regular{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/regular,/obj/structure/table/glass,/turf/open/floor/plasteel/whitered/side{dir = 1},/area/security/brig) +"aim" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 24},/obj/structure/table/glass,/obj/machinery/computer/med_data/laptop,/turf/open/floor/plasteel/whitered/side{dir = 1},/area/security/brig) +"ain" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/iv_drip{density = 0},/obj/item/weapon/reagent_containers/blood/empty,/turf/open/floor/plasteel/whitered/side{dir = 5},/area/security/brig) +"aio" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/side{dir = 9},/area/security/brig) +"aip" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/red/side{dir = 5},/area/security/brig) +"aiq" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/warden) +"air" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"ais" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"ait" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"aiu" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"aiv" = (/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"aiw" = (/obj/structure/table,/obj/machinery/recharger,/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"aix" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/warden) +"aiy" = (/obj/structure/table,/obj/item/weapon/storage/fancy/donut_box,/turf/open/floor/plasteel/red/side{dir = 8},/area/security/main) +"aiz" = (/obj/effect/landmark/start{name = "Security Officer"},/turf/open/floor/plasteel,/area/security/main) +"aiA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/security/main) +"aiB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/security/main) +"aiC" = (/obj/structure/table,/obj/item/weapon/book/manual/wiki/security_space_law,/obj/item/weapon/book/manual/wiki/security_space_law,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/security/main) +"aiD" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/security/main) +"aiE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/security/main) +"aiF" = (/obj/structure/disposalpipe/sortjunction{dir = 4; icon_state = "pipe-j2s"; sortType = 8},/turf/open/floor/plasteel,/area/security/main) +"aiG" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/turf/open/floor/plasteel,/area/security/main) +"aiH" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/landmark/start{name = "Security Officer"},/obj/structure/chair{dir = 8},/turf/open/floor/plasteel,/area/security/main) +"aiI" = (/obj/structure/disposalpipe/sortjunction{dir = 4; icon_state = "pipe-j2s"; sortType = 7},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/main) +"aiJ" = (/obj/machinery/door/window/eastright{base_state = "left"; dir = 8; icon_state = "left"; name = "Security Delivery"; req_access_txt = "1"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/delivery,/area/security/main) +"aiK" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; dir = 8; freq = 1400; location = "Security"},/obj/structure/plasticflaps{opacity = 1},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/bot,/area/security/main) +"aiL" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/fsmaint) +"aiM" = (/turf/closed/wall,/area/maintenance/fsmaint) +"aiN" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/black,/area/security/prison) +"aiO" = (/obj/structure/table,/obj/item/device/flashlight/lamp,/turf/open/floor/plasteel/black,/area/security/prison) +"aiP" = (/obj/structure/chair{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/security/prison) +"aiQ" = (/obj/item/weapon/storage/box/bodybags,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/item/weapon/reagent_containers/syringe{name = "steel point"},/obj/item/weapon/reagent_containers/glass/bottle/charcoal,/obj/item/weapon/reagent_containers/glass/bottle/epinephrine,/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/table/glass,/turf/open/floor/plasteel/whitered/side{dir = 10},/area/security/brig) +"aiR" = (/turf/open/floor/plasteel/whitered/corner{tag = "icon-whiteredcorner (WEST)"; dir = 8},/area/security/brig) +"aiS" = (/turf/open/floor/plasteel/white,/area/security/brig) +"aiT" = (/obj/machinery/door/window/westleft{base_state = "left"; dir = 4; icon_state = "left"; name = "Brig Infirmary"; req_access_txt = "0"},/turf/open/floor/plasteel/whitered/side{dir = 4},/area/security/brig) +"aiU" = (/obj/machinery/power/apc{dir = 8; name = "Brig Control APC"; pixel_x = -24; pixel_y = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"aiV" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"aiW" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"aiX" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"aiY" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"aiZ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"aja" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"ajb" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"ajc" = (/obj/machinery/door/airlock/glass_security{name = "Brig Control"; req_access_txt = "3"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"ajd" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/main) +"aje" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/main) +"ajf" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,/turf/open/floor/plasteel,/area/security/main) +"ajg" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/main) +"ajh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/main) +"aji" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-y"; dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/main) +"ajj" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/chair,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/obj/effect/landmark/start{name = "Security Officer"},/turf/open/floor/plasteel,/area/security/main) +"ajk" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/main) +"ajl" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/main) +"ajm" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/main) +"ajn" = (/obj/machinery/power/apc{dir = 4; name = "Security Office APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/main) +"ajo" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/security/main) +"ajp" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/fsmaint) +"ajq" = (/obj/structure/table,/obj/item/weapon/folder/red,/obj/item/device/taperecorder{pixel_y = 0},/turf/open/floor/plasteel/black,/area/security/prison) +"ajr" = (/obj/machinery/camera{c_tag = "Brig Interrogation"; dir = 8},/turf/open/floor/plasteel/black,/area/security/prison) +"ajs" = (/obj/structure/bodycontainer/morgue,/obj/machinery/camera{c_tag = "Brig Infirmary"; dir = 4},/turf/open/floor/plasteel/black,/area/security/brig) +"ajt" = (/turf/open/floor/plasteel/whitered/side{dir = 8},/area/security/brig) +"aju" = (/obj/machinery/door/window/westleft{base_state = "right"; dir = 4; icon_state = "right"; name = "Brig Infirmary"; req_access_txt = "0"},/turf/open/floor/plasteel/whitered/side{dir = 4},/area/security/brig) +"ajv" = (/obj/structure/closet/secure_closet/warden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"ajw" = (/obj/structure/table,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"ajx" = (/obj/structure/chair/office/dark,/obj/effect/landmark/start{name = "Warden"},/obj/machinery/button/door{id = "Prison Gate"; name = "Prison Wing Lockdown"; pixel_x = -27; pixel_y = 8; req_access_txt = "2"},/obj/machinery/button/door{id = "Secure Gate"; name = "Cell Shutters"; pixel_x = -27; pixel_y = -2; req_access_txt = "0"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"ajy" = (/obj/structure/table,/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"ajz" = (/obj/structure/table,/obj/item/weapon/folder/red,/obj/item/weapon/pen,/obj/item/weapon/hand_labeler,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/item/weapon/book/manual/wiki/security_space_law,/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"ajA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"ajB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/filingcabinet/chestdrawer,/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"ajC" = (/obj/machinery/light_switch{pixel_y = -23},/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"ajD" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/warden) +"ajE" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/red/side{dir = 10},/area/security/main) +"ajF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/red/side,/area/security/main) +"ajG" = (/obj/structure/noticeboard{dir = 1; pixel_y = -27},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/side,/area/security/main) +"ajH" = (/obj/machinery/light_switch{pixel_y = -23},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/red/side,/area/security/main) +"ajI" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/red/side,/area/security/main) +"ajJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/red/side,/area/security/main) +"ajK" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/red/side,/area/security/main) +"ajL" = (/obj/machinery/camera{c_tag = "Security Office"; dir = 1; network = list("SS13")},/obj/machinery/computer/secure_data,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/red/side,/area/security/main) +"ajM" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/machinery/computer/security,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/red/side,/area/security/main) +"ajN" = (/obj/structure/filingcabinet,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = -32},/turf/open/floor/plasteel/red/side,/area/security/main) +"ajO" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/red/side,/area/security/main) +"ajP" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/red/side,/area/security/main) +"ajQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/red/side{dir = 6},/area/security/main) +"ajR" = (/obj/machinery/door/airlock/maintenance{name = "Security Maintenance"; req_access_txt = "1"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/security/main) +"ajS" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint) +"ajT" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/fsmaint) +"ajU" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/fsmaint) +"ajV" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/security/prison) +"ajW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/security/prison) +"ajX" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/security/prison) +"ajY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/black,/area/security/prison) +"ajZ" = (/obj/structure/bodycontainer/morgue,/turf/open/floor/plasteel/black,/area/security/brig) +"aka" = (/turf/open/floor/plasteel/whitered/side{dir = 10},/area/security/brig) +"akb" = (/obj/structure/bed,/obj/item/clothing/suit/straight_jacket,/turf/open/floor/plasteel/whitered/side,/area/security/brig) +"akc" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/bed,/obj/item/clothing/suit/straight_jacket,/turf/open/floor/plasteel/whitered/side{dir = 6},/area/security/brig) +"akd" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_x = -32},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/warden) +"ake" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/warden) +"akf" = (/obj/structure/table/reinforced,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/window/brigdoor{dir = 1; name = "Armory Desk"; req_access_txt = "3"},/obj/machinery/door/window/southleft{name = "Reception Desk"; req_access_txt = "63"},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen{pixel_x = 4; pixel_y = 4},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"akg" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/warden) +"akh" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/warden) +"aki" = (/obj/machinery/door/airlock/glass_security{name = "Brig Control"; req_access_txt = "3"},/turf/open/floor/plasteel/showroomfloor,/area/security/warden) +"akj" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable,/turf/open/floor/plating,/area/security/warden) +"akk" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/security{name = "Security Office"; req_access = null; req_access_txt = "1"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/security/main) +"akl" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/security/main) +"akm" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint) +"akn" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint) +"ako" = (/obj/item/stack/rods,/turf/open/space,/area/space) +"akp" = (/turf/closed/wall,/area/security/processing) +"akq" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/processing) +"akr" = (/obj/machinery/door/airlock/security{name = "Interrogation"; req_access = null; req_access_txt = "63"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/security/prison) +"aks" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/corner{dir = 1},/area/security/brig) +"akt" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/red/corner{dir = 4},/area/security/brig) +"aku" = (/turf/open/floor/plasteel/red/side{dir = 1},/area/security/brig) +"akv" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/brig) +"akw" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/brig) +"akx" = (/obj/structure/sign/goldenplaque{pixel_y = 32},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/brig) +"aky" = (/obj/machinery/camera{c_tag = "Brig East"},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/brig) +"akz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/red/side{dir = 1},/area/security/brig) +"akA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/side{dir = 1},/area/security/brig) +"akB" = (/turf/open/floor/plasteel/red/side{dir = 5},/area/security/brig) +"akC" = (/turf/closed/wall/r_wall,/area/security/brig) +"akD" = (/obj/machinery/light_switch{pixel_y = 28},/obj/structure/closet/secure_closet/courtroom,/obj/effect/decal/cleanable/cobweb,/obj/structure/sign/securearea{pixel_x = -32},/obj/item/weapon/gavelhammer,/turf/open/floor/plasteel,/area/crew_quarters/courtroom) +"akE" = (/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/obj/machinery/camera{c_tag = "Courtroom North"},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/crew_quarters/courtroom) +"akF" = (/obj/structure/chair{name = "Judge"},/turf/open/floor/plasteel/blue/side{dir = 9},/area/crew_quarters/courtroom) +"akG" = (/obj/structure/chair{name = "Judge"},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/blue/side{dir = 1},/area/crew_quarters/courtroom) +"akH" = (/obj/structure/chair{name = "Judge"},/turf/open/floor/plasteel/blue/side{dir = 5},/area/crew_quarters/courtroom) +"akI" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/turf/open/floor/plasteel,/area/crew_quarters/courtroom) +"akJ" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) +"akK" = (/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) +"akL" = (/turf/closed/wall,/area/crew_quarters/courtroom) +"akM" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxport) +"akN" = (/obj/machinery/gulag_teleporter,/turf/open/floor/plasteel,/area/security/processing) +"akO" = (/obj/machinery/computer/gulag_teleporter_computer,/turf/open/floor/plasteel,/area/security/processing) +"akP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/machinery/computer/security{name = "Labor Camp Monitoring"; network = list("Labor")},/turf/open/floor/plasteel,/area/security/processing) +"akQ" = (/obj/structure/sign/securearea{pixel_x = 32; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/table,/obj/item/weapon/storage/box/prisoner,/obj/machinery/camera{c_tag = "Labor Shuttle Dock North"},/turf/open/floor/plasteel,/area/security/processing) +"akR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/security/brig) +"akS" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/side{dir = 9},/area/security/brig) +"akT" = (/obj/machinery/power/apc{dir = 1; name = "Labor Shuttle Dock APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/brig) +"akU" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/red/side{dir = 1},/area/security/brig) +"akV" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel/red/side{dir = 1},/area/security/brig) +"akW" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/brig) +"akX" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/red/side{dir = 1},/area/security/brig) +"akY" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/corner{dir = 1},/area/security/brig) +"akZ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/brig) +"ala" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel,/area/security/brig) +"alb" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel,/area/security/brig) +"alc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/security/brig) +"ald" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/brig) +"ale" = (/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,/turf/open/floor/plasteel,/area/security/brig) +"alf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/brig) +"alg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/brig) +"alh" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/brig) +"ali" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/security{name = "Brig"; req_access = null; req_access_txt = "63; 42"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/brig) +"alj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/courtroom) +"alk" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side{dir = 9},/area/crew_quarters/courtroom) +"all" = (/obj/structure/table/wood,/obj/item/device/radio/intercom{broadcasting = 0; dir = 8; listening = 1; name = "Station Intercom (Court)"; pixel_x = 0},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/crew_quarters/courtroom) +"alm" = (/obj/structure/table/wood,/obj/item/weapon/gavelblock,/turf/open/floor/plasteel/neutral/side{dir = 1},/area/crew_quarters/courtroom) +"aln" = (/obj/structure/table/wood,/obj/item/weapon/book/manual/wiki/security_space_law,/turf/open/floor/plasteel/neutral/side{dir = 1},/area/crew_quarters/courtroom) +"alo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/neutral/side{dir = 5},/area/crew_quarters/courtroom) +"alp" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/vault{dir = 8},/area/crew_quarters/courtroom) +"alq" = (/obj/machinery/door/window/southleft{name = "Court Cell"; req_access_txt = "2"},/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) +"alr" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/auxsolarport) +"als" = (/obj/machinery/door/airlock/external{name = "Solar Maintenance"; req_access = null; req_access_txt = "10; 13"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/auxsolarport) +"alt" = (/turf/closed/wall/mineral/titanium,/area/shuttle/labor) +"alu" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/labor) +"alv" = (/turf/closed/wall/r_wall,/area/security/processing) +"alw" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/warning/corner{dir = 1},/area/security/processing) +"alx" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel,/area/security/processing) +"aly" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/security/processing) +"alz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel,/area/security/processing) +"alA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/security{name = "Labor Shuttle"; req_access = null; req_access_txt = "2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/brig) +"alB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/brig) +"alC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/brig) +"alD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/camera{c_tag = "Brig West"; dir = 1},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/red/corner{dir = 2},/area/security/brig) +"alE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/red/side,/area/security/brig) +"alF" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/corner{dir = 8},/area/security/brig) +"alG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/brig) +"alH" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/red/corner{dir = 2},/area/security/brig) +"alI" = (/obj/machinery/light,/obj/machinery/door_timer{id = "Cell 1"; name = "Cell 1"; pixel_y = -32},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/red/side,/area/security/brig) +"alJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/corner{dir = 8},/area/security/brig) +"alK" = (/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel/red/corner{dir = 2},/area/security/brig) +"alL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door_timer{id = "Cell 2"; name = "Cell 2"; pixel_y = -32},/turf/open/floor/plasteel/red/side,/area/security/brig) +"alM" = (/obj/machinery/camera{c_tag = "Brig Central"; dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door_timer{id = "Cell 3"; name = "Cell 3"; pixel_y = -32},/turf/open/floor/plasteel/red/side,/area/security/brig) +"alN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/red/side,/area/security/brig) +"alO" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/red/side{dir = 9},/area/security/brig) +"alP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/brig) +"alQ" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door_timer{id = "Cell 4"; name = "Cell 4"; pixel_y = -32},/turf/open/floor/plasteel/red/side,/area/security/brig) +"alR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/red/corner{dir = 8},/area/security/brig) +"alS" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/security/brig) +"alT" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/brig) +"alU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall/r_wall,/area/security/brig) +"alV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/courtroom) +"alW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/neutral/side{dir = 8},/area/crew_quarters/courtroom) +"alX" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side{dir = 4},/area/crew_quarters/courtroom) +"alY" = (/turf/open/floor/plasteel,/area/crew_quarters/courtroom) +"alZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/auxsolarport) +"ama" = (/obj/machinery/computer/shuttle/labor,/obj/structure/reagent_dispensers/peppertank{pixel_x = -31; pixel_y = 0},/turf/open/floor/mineral/plastitanium,/area/shuttle/labor) +"amb" = (/obj/structure/chair/office/dark{dir = 1},/turf/open/floor/mineral/plastitanium,/area/shuttle/labor) +"amc" = (/obj/structure/table,/obj/item/weapon/folder/red,/obj/item/weapon/restraints/handcuffs,/turf/open/floor/mineral/plastitanium,/area/shuttle/labor) +"amd" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/processing) +"ame" = (/turf/open/floor/plasteel/warning{dir = 8},/area/security/processing) +"amf" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel,/area/security/processing) +"amg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/security/processing) +"amh" = (/obj/machinery/light_switch{pixel_x = 27},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/processing) +"ami" = (/obj/machinery/door/airlock/glass_security{id_tag = null; name = "Evidence Storage"; req_access_txt = "63"},/turf/open/floor/plasteel/red/side,/area/security/brig) +"amj" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/brig) +"amk" = (/obj/machinery/door/window/brigdoor{id = "Cell 1"; name = "Cell 1"; req_access_txt = "1"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/red/side,/area/security/brig) +"aml" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/brig) +"amm" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/closed/wall,/area/security/brig) +"amn" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/brig) +"amo" = (/obj/machinery/door/window/brigdoor{id = "Cell 2"; name = "Cell 2"; req_access_txt = "1"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/red/side,/area/security/brig) +"amp" = (/obj/machinery/door/window/brigdoor{id = "Cell 3"; name = "Cell 3"; req_access_txt = "1"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/red/side,/area/security/brig) +"amq" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/brig) +"amr" = (/obj/machinery/door/airlock/glass_security{name = "Brig Desk"; req_access_txt = "1"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/black,/area/security/brig) +"ams" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/brig) +"amt" = (/obj/machinery/door/airlock/glass_security{cyclelinkeddir = 2; id_tag = "innerbrig"; name = "Brig"; req_access_txt = "63"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/red/side{dir = 9},/area/security/brig) +"amu" = (/obj/machinery/door/airlock/glass_security{cyclelinkeddir = 2; id_tag = "innerbrig"; name = "Brig"; req_access_txt = "63"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/brig) +"amv" = (/obj/structure/grille,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/brig) +"amw" = (/obj/machinery/door/window/brigdoor{id = "Cell 4"; name = "Cell 4"; req_access_txt = "1"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/side,/area/security/brig) +"amx" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/brig) +"amy" = (/obj/structure/chair{dir = 4; name = "Prosecution"},/turf/open/floor/plasteel/red/side{dir = 9},/area/crew_quarters/courtroom) +"amz" = (/obj/structure/table/wood,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/neutral/side{dir = 8},/area/crew_quarters/courtroom) +"amA" = (/obj/machinery/holopad,/turf/open/floor/plasteel/bot,/area/crew_quarters/courtroom) +"amB" = (/obj/structure/table/wood,/obj/item/weapon/folder/blue,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/neutral/side{dir = 4},/area/crew_quarters/courtroom) +"amC" = (/obj/structure/chair{dir = 8; name = "Defense"},/turf/open/floor/plasteel/green/side{dir = 5},/area/crew_quarters/courtroom) +"amD" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxstarboard) +"amE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/external{name = "Solar Maintenance"; req_access = null; req_access_txt = "10; 13"},/turf/open/floor/plating,/area/maintenance/auxsolarport) +"amF" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/fpmaint2) +"amG" = (/turf/open/floor/mineral/plastitanium,/area/shuttle/labor) +"amH" = (/obj/machinery/button/flasher{id = "gulagshuttleflasher"; name = "Flash Control"; pixel_x = 0; pixel_y = -26; req_access_txt = "1"},/turf/open/floor/mineral/plastitanium,/area/shuttle/labor) +"amI" = (/obj/machinery/mineral/labor_claim_console{machinedir = 2; pixel_x = 30; pixel_y = 30},/turf/open/floor/mineral/plastitanium,/area/shuttle/labor) +"amJ" = (/obj/machinery/door/airlock/shuttle{name = "Labor Shuttle Airlock"; req_access_txt = "2"},/turf/open/floor/mineral/plastitanium,/area/shuttle/labor) +"amK" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 4; name = "Labor Camp Shuttle Airlock"; req_access_txt = "2"; shuttledocked = 1},/turf/open/floor/plating,/area/security/processing) +"amL" = (/turf/open/floor/plating,/area/security/processing) +"amM" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 8; name = "Labor Camp Shuttle Airlock"; req_access_txt = "2"},/turf/open/floor/plating,/area/security/processing) +"amN" = (/turf/open/floor/plasteel,/area/security/processing) +"amO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/security/processing) +"amP" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/security/processing) +"amQ" = (/obj/structure/closet{name = "Evidence Closet"},/turf/open/floor/plasteel/red/side{dir = 9},/area/security/brig) +"amR" = (/obj/structure/closet{name = "Evidence Closet"},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/brig) +"amS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/item/device/radio/intercom{desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; pixel_x = -25; pixel_y = -2; prison_radio = 1},/turf/open/floor/plasteel/floorgrime,/area/security/brig) +"amT" = (/turf/open/floor/plasteel/floorgrime,/area/security/brig) +"amU" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/security/brig) +"amV" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/item/device/radio/intercom{desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; pixel_x = -25; pixel_y = -2; prison_radio = 1},/turf/open/floor/plasteel/floorgrime,/area/security/brig) +"amW" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/floorgrime,/area/security/brig) +"amX" = (/obj/machinery/button/door{id = "briggate"; name = "Desk Shutters"; pixel_x = -26; pixel_y = 6; req_access_txt = "0"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/button/flasher{id = "brigentry"; pixel_x = -28; pixel_y = -8},/turf/open/floor/plasteel/black,/area/security/brig) +"amY" = (/obj/machinery/computer/secure_data,/turf/open/floor/plasteel/black,/area/security/brig) +"amZ" = (/obj/structure/table/reinforced,/obj/machinery/door/poddoor/shutters/preopen{id = "briggate"; name = "security shutters"},/obj/machinery/door/window/eastleft{name = "Brig Desk"; req_access_txt = "1"},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/open/floor/plasteel/black,/area/security/brig) +"ana" = (/turf/open/floor/plasteel/red/side{dir = 9},/area/security/brig) +"anb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/floorgrime,/area/security/brig) +"anc" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/obj/machinery/flasher{id = "Cell 4"; pixel_x = 28},/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/security/brig) +"and" = (/obj/structure/chair{dir = 4; name = "Prosecution"},/turf/open/floor/plasteel/red/side{dir = 10},/area/crew_quarters/courtroom) +"ane" = (/obj/structure/table/wood,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/neutral/side{dir = 10},/area/crew_quarters/courtroom) +"anf" = (/turf/open/floor/plasteel/neutral/side,/area/crew_quarters/courtroom) +"ang" = (/obj/item/device/radio/beacon,/turf/open/floor/plasteel/neutral/side,/area/crew_quarters/courtroom) +"anh" = (/obj/structure/table/wood,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/neutral/side{dir = 6},/area/crew_quarters/courtroom) +"ani" = (/obj/structure/chair{dir = 8; name = "Defense"},/turf/open/floor/plasteel/green/side{dir = 6},/area/crew_quarters/courtroom) +"anj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/auxstarboard) +"ank" = (/turf/closed/wall,/area/maintenance/fsmaint2) +"anl" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"anm" = (/turf/closed/wall/r_wall,/area/maintenance/auxsolarport) +"ann" = (/obj/machinery/power/solar_control{id = "auxsolareast"; name = "Fore Port Solar Control"; track = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating,/area/maintenance/auxsolarport) +"ano" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating,/area/maintenance/auxsolarport) +"anp" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 32; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/auxsolarport) +"anq" = (/turf/closed/wall,/area/maintenance/fpmaint2) +"anr" = (/obj/effect/decal/cleanable/vomit,/turf/open/floor/plating,/area/maintenance/fpmaint2) +"ans" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating,/area/maintenance/fpmaint2) +"ant" = (/obj/item/weapon/cigbutt/cigarbutt,/obj/effect/decal/cleanable/blood/old,/turf/open/floor/plating,/area/maintenance/fpmaint2) +"anu" = (/obj/machinery/door/airlock/shuttle{name = "Labor Shuttle Airlock"; req_access_txt = "2"},/turf/open/floor/plasteel/black,/area/shuttle/labor) +"anv" = (/obj/machinery/mineral/stacking_machine/laborstacker{input_dir = 2; output_dir = 1},/turf/open/floor/plasteel/black,/area/shuttle/labor) +"anw" = (/obj/machinery/computer/shuttle/labor,/turf/open/floor/plasteel/warning{dir = 8},/area/security/processing) +"anx" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/security/processing) +"any" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/processing) +"anz" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/security/processing) +"anA" = (/obj/structure/closet{name = "Evidence Closet"},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/brig) +"anB" = (/turf/open/floor/plasteel,/area/security/brig) +"anC" = (/obj/structure/closet{name = "Evidence Closet"},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/brig) +"anD" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/flasher{id = "Cell 1"; pixel_x = -28},/turf/open/floor/plasteel/floorgrime,/area/security/brig) +"anE" = (/obj/structure/closet/secure_closet/brig{id = "Cell 1"; name = "Cell 1 Locker"},/turf/open/floor/plasteel/floorgrime,/area/security/brig) +"anF" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/machinery/flasher{id = "Cell 2"; pixel_x = -28},/turf/open/floor/plasteel/floorgrime,/area/security/brig) +"anG" = (/obj/structure/closet/secure_closet/brig{id = "Cell 2"; name = "Cell 2 Locker"},/turf/open/floor/plasteel/floorgrime,/area/security/brig) +"anH" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/machinery/flasher{id = "Cell 3"; pixel_x = -28},/turf/open/floor/plasteel/floorgrime,/area/security/brig) +"anI" = (/obj/structure/closet/secure_closet/brig{id = "Cell 3"; name = "Cell 3 Locker"},/turf/open/floor/plasteel/floorgrime,/area/security/brig) +"anJ" = (/obj/machinery/light/small{dir = 8},/obj/machinery/button/door{desc = "A remote control switch for the medbay foyer."; id = "outerbrig"; name = "Brig Exterior Doors Control"; normaldoorcontrol = 1; pixel_x = -26; pixel_y = -5; req_access_txt = "63"},/obj/machinery/button/door{desc = "A remote control switch for the medbay foyer."; id = "innerbrig"; name = "Brig Interior Doors Control"; normaldoorcontrol = 1; pixel_x = -26; pixel_y = 5; req_access_txt = "63"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/security/brig) +"anK" = (/obj/structure/chair/office/dark{dir = 4},/turf/open/floor/plasteel/black,/area/security/brig) +"anL" = (/obj/structure/table/reinforced,/obj/machinery/door/poddoor/shutters/preopen{id = "briggate"; name = "security shutters"},/obj/machinery/door/window/eastright{name = "Brig Desk"; req_access_txt = "2"},/obj/item/weapon/restraints/handcuffs,/obj/item/device/radio/off,/turf/open/floor/plasteel/black,/area/security/brig) +"anM" = (/obj/machinery/flasher{id = "brigentry"; pixel_x = 28},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/brig) +"anN" = (/obj/structure/closet/secure_closet/brig{id = "Cell 4"; name = "Cell 4 Locker"},/turf/open/floor/plasteel/floorgrime,/area/security/brig) +"anO" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/floorgrime,/area/security/brig) +"anP" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/item/device/radio/intercom{desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; pixel_x = 25; pixel_y = -2; prison_radio = 1},/turf/open/floor/plasteel/floorgrime,/area/security/brig) +"anQ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/courtroom) +"anR" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/courtroom) +"anS" = (/obj/machinery/door/airlock/glass{name = "Courtroom"; req_access_txt = "42"},/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) +"anT" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/crew_quarters/courtroom) +"anU" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/auxsolarstarboard) +"anV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/external{cyclelinkeddir = 2; name = "Solar Maintenance"; req_access = null; req_access_txt = "10; 13"},/turf/open/floor/plating,/area/maintenance/auxsolarstarboard) +"anW" = (/obj/structure/chair{dir = 1},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"anX" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/plating,/area/maintenance/auxsolarport) +"anY" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating,/area/maintenance/auxsolarport) +"anZ" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/terminal,/obj/machinery/light/small{dir = 4},/turf/open/floor/plating,/area/maintenance/auxsolarport) +"aoa" = (/obj/machinery/atmospherics/components/unary/tank/air{dir = 2},/turf/open/floor/plating,/area/maintenance/fpmaint2) +"aob" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/open/floor/plating,/area/maintenance/fpmaint2) +"aoc" = (/turf/open/floor/plating,/area/maintenance/fpmaint2) +"aod" = (/obj/structure/bed,/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/item/weapon/bedsheet,/turf/open/floor/plating,/area/maintenance/fpmaint2) +"aoe" = (/obj/machinery/computer/slot_machine{balance = 15; money = 500},/obj/item/weapon/coin/iron,/obj/item/weapon/coin/diamond,/obj/item/weapon/coin/diamond,/obj/item/weapon/coin/diamond,/turf/open/floor/plating,/area/maintenance/fpmaint2) +"aof" = (/obj/structure/chair{dir = 1},/obj/item/toy/sword,/turf/open/floor/plating,/area/maintenance/fpmaint2) +"aog" = (/obj/structure/chair{dir = 1},/obj/structure/noticeboard{dir = 8; pixel_x = 27; pixel_y = 0},/obj/item/trash/plate,/turf/open/floor/plating,/area/maintenance/fpmaint2) +"aoh" = (/turf/open/floor/mineral/titanium/blue,/area/shuttle/labor) +"aoi" = (/obj/machinery/mineral/labor_claim_console{machinedir = 1; pixel_x = 30; pixel_y = 0},/turf/open/floor/mineral/titanium/blue,/area/shuttle/labor) +"aoj" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/turf/closed/wall,/area/security/processing) +"aok" = (/obj/machinery/door/airlock/glass_security{name = "Prisoner Processing"; req_access_txt = "2"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/security/processing) +"aol" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/processing) +"aom" = (/obj/structure/closet{name = "Evidence Closet"},/turf/open/floor/plasteel/red/side{dir = 10},/area/security/brig) +"aon" = (/obj/machinery/light,/turf/open/floor/plasteel/red/side,/area/security/brig) +"aoo" = (/obj/structure/closet{name = "Evidence Closet"},/turf/open/floor/plasteel/red/side{dir = 6},/area/security/brig) +"aop" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/grille,/obj/structure/cable,/obj/machinery/door/poddoor/preopen{id = "Secure Gate"; name = "brig shutters"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/brig) +"aoq" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "Secure Gate"; name = "brig shutters"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/brig) +"aor" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/closed/wall/r_wall,/area/security/brig) +"aos" = (/obj/structure/table/reinforced,/obj/machinery/door/poddoor/shutters/preopen{id = "briggate"; name = "security shutters"},/obj/machinery/door/window/southleft{name = "Brig Desk"; req_access_txt = "1"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/black,/area/security/brig) +"aot" = (/obj/structure/table/reinforced,/obj/machinery/door/poddoor/shutters/preopen{id = "briggate"; name = "security shutters"},/obj/machinery/door/window/southleft{base_state = "right"; icon_state = "right"; name = "Brig Desk"; req_access_txt = "1"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/black,/area/security/brig) +"aou" = (/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "briggate"; name = "security blast door"},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/brig) +"aov" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{cyclelinkeddir = 1; id_tag = "outerbrig"; name = "Brig"; req_access_txt = "63"},/turf/open/floor/plasteel/red/side{dir = 9},/area/security/brig) +"aow" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{cyclelinkeddir = 1; id_tag = "outerbrig"; name = "Brig"; req_access_txt = "63"},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/brig) +"aox" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) +"aoy" = (/obj/structure/chair{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) +"aoz" = (/obj/structure/chair{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) +"aoA" = (/obj/structure/disposalpipe/segment,/obj/machinery/power/apc{dir = 8; name = "Courtroom APC"; pixel_x = -24; pixel_y = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/crew_quarters/courtroom) +"aoB" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint) +"aoC" = (/obj/machinery/light/small{dir = 4},/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fsmaint) +"aoD" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/auxsolarstarboard) +"aoE" = (/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aoF" = (/turf/closed/wall,/area/mining_construction) +"aoG" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 8; name = "Fore Port Solar APC"; pixel_x = -25; pixel_y = 3},/obj/machinery/camera{c_tag = "Fore Port Solar Control"; dir = 1},/turf/open/floor/plating,/area/maintenance/auxsolarport) +"aoH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating,/area/maintenance/auxsolarport) +"aoI" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/smes,/turf/open/floor/plating,/area/maintenance/auxsolarport) +"aoJ" = (/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{icon_state = "manifold"; dir = 8},/turf/open/floor/plating,/area/maintenance/fpmaint2) +"aoK" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 9},/turf/open/floor/plating,/area/maintenance/fpmaint2) +"aoL" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/fpmaint2) +"aoM" = (/obj/item/trash/sosjerky,/turf/open/floor/plating,/area/maintenance/fpmaint2) +"aoN" = (/obj/item/weapon/electronics/airalarm,/obj/item/weapon/circuitboard/machine/seed_extractor,/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance{lootcount = 4; name = "4maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/fpmaint2) +"aoO" = (/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/fpmaint2) +"aoP" = (/obj/item/weapon/cigbutt,/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/fpmaint2) +"aoQ" = (/obj/structure/chair{dir = 8},/obj/machinery/flasher{id = "gulagshuttleflasher"; pixel_x = 25},/turf/open/floor/mineral/titanium/blue,/area/shuttle/labor) +"aoR" = (/obj/machinery/gulag_item_reclaimer{pixel_y = 24},/turf/open/floor/plasteel/warning{dir = 9},/area/security/processing) +"aoS" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/processing) +"aoT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/side{dir = 5},/area/security/processing) +"aoU" = (/obj/machinery/button/door{desc = "A remote control switch for the exit."; id = "laborexit"; name = "exit button"; normaldoorcontrol = 1; pixel_x = 26; pixel_y = -6; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/processing) +"aoV" = (/turf/open/floor/plasteel/red/corner{dir = 1},/area/hallway/primary/fore) +"aoW" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/turf/open/floor/plasteel/red/corner{dir = 1},/area/hallway/primary/fore) +"aoX" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/red/corner{dir = 1},/area/hallway/primary/fore) +"aoY" = (/turf/open/floor/plasteel,/area/hallway/primary/fore) +"aoZ" = (/obj/machinery/light{dir = 1},/obj/structure/sign/securearea{pixel_y = 32},/turf/open/floor/plasteel/red/corner{dir = 4},/area/hallway/primary/fore) +"apa" = (/turf/open/floor/plasteel/red/corner{dir = 4},/area/hallway/primary/fore) +"apb" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/crew_quarters/courtroom) +"apc" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint) +"apd" = (/turf/open/floor/plating,/area/maintenance/fsmaint) +"ape" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 4; req_access_txt = "13"},/turf/open/floor/plating,/area/maintenance/fsmaint) +"apf" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/open/floor/plating,/area/maintenance/fsmaint) +"apg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/external{cyclelinkeddir = 1; name = "Solar Maintenance"; req_access = null; req_access_txt = "10; 13"},/turf/open/floor/plating,/area/maintenance/auxsolarstarboard) +"aph" = (/turf/open/floor/plating/warnplate{dir = 9},/area/shuttle/auxillary_base) +"api" = (/turf/open/floor/plating/warnplate{dir = 1},/area/shuttle/auxillary_base) +"apj" = (/obj/structure/closet/secure_closet/miner{locked = 0},/turf/open/floor/plating/warnplate{dir = 5},/area/shuttle/auxillary_base) +"apk" = (/obj/machinery/door/airlock/engineering{icon_state = "door_closed"; locked = 0; name = "Fore Port Solar Access"; req_access_txt = "10"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/auxsolarport) +"apl" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 0},/turf/closed/wall/r_wall,/area/maintenance/auxsolarport) +"apm" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 1},/turf/open/floor/plating,/area/maintenance/fpmaint2) +"apn" = (/obj/effect/decal/cleanable/egg_smudge,/turf/open/floor/plating,/area/maintenance/fpmaint2) +"apo" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fpmaint2) +"app" = (/obj/structure/closet/crate,/turf/open/floor/mineral/titanium/blue,/area/shuttle/labor) +"apq" = (/obj/machinery/door/airlock/shuttle{id_tag = "prisonshuttle"; name = "Labor Shuttle Airlock"},/obj/docking_port/mobile{dir = 8; dwidth = 2; height = 5; id = "laborcamp"; name = "labor camp shuttle"; port_angle = 90; width = 9},/obj/docking_port/stationary{dir = 8; dwidth = 2; height = 5; id = "laborcamp_home"; name = "fore bay 1"; width = 9},/turf/open/floor/mineral/titanium/blue,/area/shuttle/labor) +"apr" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 4; name = "Labor Camp Shuttle Airlock"; shuttledocked = 1},/turf/open/floor/plating,/area/security/processing) +"aps" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 8; name = "Labor Camp Shuttle Airlock"},/turf/open/floor/plating,/area/security/processing) +"apt" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/security{id_tag = "laborexit"; name = "Labor Shuttle"; req_access = null; req_access_txt = "63"},/turf/open/floor/plasteel,/area/security/processing) +"apu" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"apv" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"apw" = (/obj/machinery/holopad,/turf/open/floor/plasteel,/area/hallway/primary/fore) +"apx" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"apy" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Courtroom"},/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) +"apz" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) +"apA" = (/obj/machinery/light/small,/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) +"apB" = (/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) +"apC" = (/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = -32},/obj/machinery/camera{c_tag = "Courtroom South"; dir = 1},/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) +"apD" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) +"apE" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/fsmaint) +"apF" = (/obj/structure/disposalpipe/segment,/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint) +"apG" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/fsmaint) +"apH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/maintenance/fsmaint) +"apI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/closed/wall,/area/maintenance/fsmaint) +"apJ" = (/turf/closed/wall/r_wall,/area/maintenance/auxsolarstarboard) +"apK" = (/obj/machinery/power/solar_control{id = "auxsolareast"; name = "Fore Starboard Solar Control"; track = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating,/area/maintenance/auxsolarstarboard) +"apL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating,/area/maintenance/auxsolarstarboard) +"apM" = (/obj/structure/rack,/obj/item/clothing/mask/gas,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/item/device/multitool,/turf/open/floor/plating,/area/maintenance/auxsolarstarboard) +"apN" = (/turf/open/floor/plating/warnplate{dir = 8},/area/shuttle/auxillary_base) +"apO" = (/turf/open/floor/plating,/area/shuttle/auxillary_base) +"apP" = (/turf/open/floor/plating/warnplate{dir = 4},/area/shuttle/auxillary_base) +"apQ" = (/obj/machinery/camera{c_tag = "Fore Port Solar Access"},/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/maintenance/fpmaint2) +"apR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/fpmaint2) +"apS" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 6},/turf/open/floor/plating,/area/maintenance/fpmaint2) +"apT" = (/obj/machinery/atmospherics/components/binary/valve{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2) +"apU" = (/obj/structure/chair,/turf/open/floor/plating,/area/maintenance/fpmaint2) +"apV" = (/obj/structure/rack,/obj/item/weapon/circuitboard/machine/monkey_recycler,/turf/open/floor/plating,/area/maintenance/fpmaint2) +"apW" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1; layer = 2.9},/turf/open/floor/plating/airless,/area/shuttle/labor) +"apX" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = -32},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/processing) +"apY" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/warning{dir = 10},/area/security/processing) +"apZ" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/red/side{dir = 6},/area/security/processing) +"aqa" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/camera{c_tag = "Labor Shuttle Dock South"; dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/red/side{dir = 6},/area/security/processing) +"aqb" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/red/side{dir = 6},/area/security/processing) +"aqc" = (/turf/open/floor/plasteel/red/corner{dir = 8},/area/hallway/primary/fore) +"aqd" = (/obj/machinery/camera{c_tag = "Fore Primary Hallway West"; dir = 1},/turf/open/floor/plasteel/red/corner{dir = 8},/area/hallway/primary/fore) +"aqe" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/corner{dir = 8},/area/hallway/primary/fore) +"aqf" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=EVA"; location = "Security"},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"aqg" = (/turf/open/floor/plasteel/red/corner{dir = 2},/area/hallway/primary/fore) +"aqh" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/red/corner{dir = 2},/area/hallway/primary/fore) +"aqi" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/plasteel/red/corner{dir = 2},/area/hallway/primary/fore) +"aqj" = (/obj/machinery/camera{c_tag = "Fore Primary Hallway East"; dir = 1},/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = -32},/turf/open/floor/plasteel/red/corner{dir = 2},/area/hallway/primary/fore) +"aqk" = (/obj/machinery/vending/coffee,/turf/open/floor/plasteel/red/corner{dir = 2},/area/hallway/primary/fore) +"aql" = (/obj/machinery/vending/snack,/turf/open/floor/plasteel/red/corner{dir = 2},/area/hallway/primary/fore) +"aqm" = (/obj/machinery/vending/cigarette,/turf/open/floor/plasteel/red/corner{dir = 2},/area/hallway/primary/fore) +"aqn" = (/obj/structure/table,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) +"aqo" = (/obj/structure/table,/obj/item/weapon/book/manual/wiki/security_space_law{pixel_x = -3; pixel_y = 5},/turf/open/floor/plasteel/black,/area/crew_quarters/courtroom) +"aqp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/fsmaint) +"aqq" = (/obj/machinery/light/small{dir = 8},/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/plating/warnplate{dir = 9},/area/maintenance/fsmaint) +"aqr" = (/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "Air Out"; on = 1},/turf/open/floor/plating/warnplate{dir = 5},/area/maintenance/fsmaint) +"aqs" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/plating,/area/maintenance/auxsolarstarboard) +"aqt" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating,/area/maintenance/auxsolarstarboard) +"aqu" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/terminal,/obj/machinery/light/small{dir = 4},/turf/open/floor/plating,/area/maintenance/auxsolarstarboard) +"aqv" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aqw" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aqx" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/mining_construction) +"aqy" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plating,/area/maintenance/fpmaint2) +"aqz" = (/obj/machinery/atmospherics/components/trinary/filter{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2) +"aqA" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 8},/turf/open/floor/plating,/area/maintenance/fpmaint2) +"aqB" = (/obj/structure/bed,/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/plating,/area/maintenance/fpmaint2) +"aqC" = (/turf/open/space,/area/space/nearstation) +"aqD" = (/obj/structure/lattice,/turf/open/space,/area/space/nearstation) +"aqE" = (/turf/open/floor/plasteel/airless,/area/space/nearstation) +"aqF" = (/obj/structure/table,/obj/item/weapon/stamp,/obj/item/weapon/poster/legit,/turf/open/floor/plating,/area/maintenance/fpmaint2) +"aqG" = (/obj/structure/closet/emcloset,/turf/open/floor/plating,/area/maintenance/fpmaint2) +"aqH" = (/obj/structure/shuttle/engine/propulsion,/turf/open/floor/plating/airless,/area/shuttle/labor) +"aqI" = (/obj/structure/plasticflaps,/turf/open/floor/plating,/area/security/processing) +"aqJ" = (/obj/machinery/door/airlock/maintenance{name = "Security Maintenance"; req_access_txt = "2"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/security/processing) +"aqK" = (/turf/closed/wall,/area/security/vacantoffice2) +"aqL" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/engineering{name = "Vacant Office B"; req_access_txt = "32"},/turf/open/floor/plating,/area/security/vacantoffice2) +"aqM" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint) +"aqN" = (/turf/closed/wall,/area/lawoffice) +"aqO" = (/obj/machinery/door/airlock{name = "Law Office"; req_access_txt = "38"},/turf/open/floor/plasteel,/area/lawoffice) +"aqP" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/red/corner{dir = 1},/area/hallway/primary/fore) +"aqQ" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/hallway/primary/fore) +"aqR" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/red/corner{dir = 4},/area/hallway/primary/fore) +"aqS" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/closed/wall,/area/maintenance/fsmaint) +"aqT" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/closed/wall,/area/maintenance/fsmaint) +"aqU" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/closed/wall,/area/maintenance/fsmaint) +"aqV" = (/obj/machinery/space_heater,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint) +"aqW" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/reagent_dispensers/fueltank,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint) +"aqX" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/reagent_dispensers/watertank,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint) +"aqY" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 1; name = "Dormitory Maintenance APC"; pixel_y = 24},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint) +"aqZ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint) +"ara" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint) +"arb" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/fsmaint) +"arc" = (/obj/machinery/door/airlock/atmos{name = "Atmospherics Maintenance"; req_access_txt = "12;24"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint) +"ard" = (/obj/machinery/atmospherics/components/binary/pump{dir = 4; name = "Air In"; on = 1},/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plating/warnplate{dir = 8},/area/maintenance/fsmaint) +"are" = (/obj/item/weapon/wrench,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/fsmaint) +"arf" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 8; name = "Fore Starboard Solar APC"; pixel_x = -25; pixel_y = 3},/turf/open/floor/plating,/area/maintenance/auxsolarstarboard) +"arg" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/auxsolarstarboard) +"arh" = (/obj/machinery/camera{c_tag = "Fore Starboard Solars"; dir = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/smes,/turf/open/floor/plating,/area/maintenance/auxsolarstarboard) +"ari" = (/turf/closed/wall/r_wall,/area/maintenance/fsmaint2) +"arj" = (/obj/structure/closet/wardrobe/mixed,/obj/item/clothing/shoes/jackboots,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"ark" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"arl" = (/obj/machinery/light,/turf/open/floor/plating,/area/shuttle/auxillary_base) +"arm" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/open/floor/plating,/area/mining_construction) +"arn" = (/obj/structure/closet/toolcloset,/turf/open/floor/plasteel/yellow/side{dir = 9},/area/mining_construction) +"aro" = (/obj/structure/closet/toolcloset,/turf/open/floor/plasteel/yellow/side{dir = 1},/area/mining_construction) +"arp" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel/yellow/side{dir = 5},/area/mining_construction) +"arq" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 2; name = "External Access"; req_access = null; req_access_txt = "13"},/turf/open/floor/plating,/area/maintenance/fpmaint2) +"arr" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/fpmaint2) +"ars" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible,/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/floorgrime,/area/maintenance/fpmaint2) +"art" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 1},/turf/open/floor/plating,/area/maintenance/fpmaint2) +"aru" = (/obj/structure/grille,/obj/structure/window/fulltile{obj_integrity = 35},/turf/open/floor/plating,/area/maintenance/fpmaint2) +"arv" = (/obj/effect/landmark{name = "carpspawn"},/obj/structure/lattice,/turf/open/space,/area/space/nearstation) +"arw" = (/obj/item/weapon/paper{info = "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"; name = "Note from Beepsky's Mom"},/turf/open/floor/plating,/area/security/processing) +"arx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/security/processing) +"ary" = (/obj/structure/chair,/turf/open/floor/plating,/area/security/vacantoffice2) +"arz" = (/obj/machinery/airalarm{frequency = 1439; locked = 0; pixel_y = 23},/obj/structure/chair,/turf/open/floor/plating,/area/security/vacantoffice2) +"arA" = (/turf/open/floor/plasteel,/area/security/vacantoffice2) +"arB" = (/turf/open/floor/plating,/area/security/vacantoffice2) +"arC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint) +"arD" = (/obj/machinery/light_switch{pixel_x = -20; pixel_y = 0},/obj/item/device/radio/intercom{pixel_y = 25},/turf/open/floor/wood,/area/lawoffice) +"arE" = (/obj/machinery/airalarm{pixel_y = 23},/turf/open/floor/wood,/area/lawoffice) +"arF" = (/turf/open/floor/wood,/area/lawoffice) +"arG" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/briefcase,/obj/effect/decal/cleanable/cobweb/cobweb2,/turf/open/floor/wood,/area/lawoffice) +"arH" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/open/floor/plasteel/red/corner{dir = 4},/area/hallway/primary/fore) +"arI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/maintenance/fsmaint) +"arJ" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/fsmaint) +"arK" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint) +"arL" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint) +"arM" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/fsmaint) +"arN" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint) +"arO" = (/obj/machinery/power/apc{dir = 2; name = "Dormitory APC"; pixel_y = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/crew_quarters/sleep) +"arP" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint) +"arQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint) +"arR" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/fsmaint) +"arS" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plating,/area/maintenance/fsmaint) +"arT" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/light/small{dir = 4},/obj/machinery/power/apc{dir = 2; name = "Fitness Room APC"; pixel_x = 0; pixel_y = -24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/crew_quarters/fitness) +"arU" = (/obj/structure/rack{dir = 1},/obj/item/clothing/suit/fire/firefighter,/obj/item/weapon/tank/internals/oxygen,/obj/item/clothing/mask/gas,/obj/item/weapon/extinguisher,/obj/item/clothing/head/hardhat/red,/obj/item/clothing/glasses/meson,/turf/open/floor/plating/warnplate{dir = 10},/area/maintenance/fsmaint) +"arV" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 1},/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plating/warnplate{dir = 6},/area/maintenance/fsmaint) +"arW" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/fitness) +"arX" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/fitness) +"arY" = (/obj/structure/grille,/obj/effect/landmark{name = "Syndicate Breach Area"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/fitness) +"arZ" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/fitness) +"asa" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 2; name = "External Access"; req_access = null; req_access_txt = "13"},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"asb" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/engineering{icon_state = "door_closed"; locked = 0; name = "Fore Starboard Solar Access"; req_access_txt = "10"},/turf/open/floor/plating,/area/maintenance/auxsolarstarboard) +"asc" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 0},/turf/closed/wall/r_wall,/area/maintenance/auxsolarstarboard) +"asd" = (/obj/structure/closet/emcloset,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"ase" = (/obj/structure/table,/obj/machinery/light/small{dir = 1},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"asf" = (/obj/structure/closet/firecloset,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"asg" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"ash" = (/obj/effect/decal/cleanable/cobweb/cobweb2,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"asi" = (/obj/effect/decal/cleanable/cobweb,/obj/item/weapon/coin/gold,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"asj" = (/obj/machinery/computer/slot_machine{balance = 15; money = 500},/obj/item/weapon/coin/iron,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"ask" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"asl" = (/obj/machinery/camera{c_tag = "Auxillary Mining Base"; dir = 8; network = list("SS13","AuxBase")},/turf/open/floor/plating,/area/shuttle/auxillary_base) +"asm" = (/obj/docking_port/mobile/auxillary_base{dheight = 4; dir = 4; dwidth = 4; height = 9; width = 9},/obj/machinery/bluespace_beacon,/obj/machinery/computer/shuttle/auxillary_base{pixel_y = 0},/turf/closed/wall,/area/shuttle/auxillary_base) +"asn" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 1; name = "Construction Zone"; req_access = null; req_access_txt = "0"; req_one_access_txt = "0"},/turf/open/floor/plating,/area/mining_construction) +"aso" = (/turf/open/floor/plasteel/yellow/side{dir = 8},/area/mining_construction) +"asp" = (/turf/open/floor/plasteel,/area/mining_construction) +"asq" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/camera{c_tag = "Auxillary Base Construction"; dir = 8},/obj/structure/mining_shuttle_beacon{dir = 2},/turf/open/floor/plasteel/yellow/side{dir = 4},/area/mining_construction) +"asr" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/floorgrime,/area/maintenance/fpmaint2) +"ass" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 5},/turf/open/floor/plating,/area/maintenance/fpmaint2) +"ast" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 10},/obj/machinery/meter,/turf/open/floor/plating,/area/maintenance/fpmaint2) +"asu" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/fpmaint2) +"asv" = (/obj/machinery/power/apc{dir = 1; name = "Arrivals North Maintenance APC"; pixel_x = -1; pixel_y = 26},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plating,/area/maintenance/fpmaint2) +"asw" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 1},/obj/effect/landmark/event_spawn,/turf/open/floor/plating,/area/maintenance/fpmaint2) +"asx" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/fpmaint) +"asy" = (/turf/open/floor/plating,/area/maintenance/fpmaint) +"asz" = (/obj/item/weapon/bedsheet/red,/mob/living/simple_animal/bot/secbot/beepsky{name = "Officer Beepsky"},/turf/open/floor/plating,/area/security/processing) +"asA" = (/obj/machinery/light/small{dir = 4},/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/potato{name = "\improper Beepsky's emergency battery"},/turf/open/floor/plating,/area/security/processing) +"asB" = (/obj/machinery/power/apc{dir = 8; name = "Labor Shuttle Dock APC"; pixel_x = -24},/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plating,/area/security/processing) +"asC" = (/obj/structure/table/wood,/obj/item/weapon/pen,/turf/open/floor/plating,/area/security/vacantoffice2) +"asD" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/obj/structure/table/wood,/obj/item/device/flashlight/lamp,/turf/open/floor/plating,/area/security/vacantoffice2) +"asE" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/turf/open/floor/plating,/area/security/vacantoffice2) +"asF" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/requests_console{department = "Law office"; pixel_x = -32; pixel_y = 0},/obj/structure/closet/lawcloset,/turf/open/floor/wood,/area/lawoffice) +"asG" = (/obj/structure/table/wood,/obj/item/weapon/book/manual/wiki/security_space_law,/obj/item/weapon/book/manual/wiki/security_space_law,/obj/item/weapon/pen/red,/turf/open/floor/wood,/area/lawoffice) +"asH" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green{pixel_x = 1; pixel_y = 5},/turf/open/floor/wood,/area/lawoffice) +"asI" = (/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "lawyer_blast"; name = "privacy door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/lawoffice) +"asJ" = (/turf/closed/wall,/area/crew_quarters/sleep) +"asK" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint) +"asL" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/maintenance/fsmaint) +"asM" = (/turf/closed/wall,/area/crew_quarters/fitness) +"asN" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint) +"asO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/crew_quarters/fitness) +"asP" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/fitness) +"asQ" = (/turf/open/floor/engine{name = "Holodeck Projector Floor"},/area/holodeck/rec_center) +"asR" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"asS" = (/obj/structure/table,/obj/effect/decal/cleanable/cobweb,/obj/effect/spawner/lootdrop/maintenance{lootcount = 8; name = "8maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"asT" = (/obj/machinery/power/apc{dir = 1; name = "Bar Maintenance APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"asU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"asV" = (/obj/machinery/light/small{dir = 1},/obj/machinery/camera{c_tag = "Fore Starboard Solar Access"},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"asW" = (/obj/structure/chair/stool,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"asX" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"asY" = (/obj/structure/table,/obj/item/weapon/pen,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"asZ" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"ata" = (/obj/item/weapon/coin/gold,/obj/item/weapon/coin/iron,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"atb" = (/obj/structure/closet,/obj/item/weapon/coin/iron,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"atc" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"atd" = (/obj/machinery/light{dir = 1},/turf/open/floor/plating,/area/shuttle/auxillary_base) +"ate" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/yellow/side{dir = 8},/area/mining_construction) +"atf" = (/obj/structure/rack{dir = 4},/obj/item/weapon/electronics/airlock,/obj/item/weapon/electronics/airlock,/obj/item/weapon/electronics/airlock,/obj/item/weapon/electronics/airlock,/obj/item/stack/cable_coil,/obj/item/stack/cable_coil,/obj/item/wallframe/camera,/obj/item/wallframe/camera,/obj/item/wallframe/camera,/obj/item/wallframe/camera,/obj/item/device/assault_pod/mining,/obj/machinery/computer/security/telescreen{desc = "Used for the Auxillary Mining Base."; dir = 8; name = "Auxillary Base Monitor"; network = list("AuxBase"); pixel_x = 28},/turf/open/floor/plasteel/yellow/side{dir = 4},/area/mining_construction) +"atg" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 5},/turf/closed/wall,/area/maintenance/fpmaint2) +"ath" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 4},/turf/closed/wall,/area/maintenance/fpmaint2) +"ati" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2) +"atj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2) +"atk" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2) +"atl" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2) +"atm" = (/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{icon_state = "intact"; dir = 9},/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/fpmaint2) +"atn" = (/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/fpmaint2) +"ato" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/fpmaint2) +"atp" = (/obj/machinery/monkey_recycler,/obj/item/weapon/reagent_containers/food/snacks/monkeycube,/obj/item/weapon/reagent_containers/food/snacks/monkeycube,/turf/open/floor/plating,/area/maintenance/fpmaint2) +"atq" = (/turf/closed/wall,/area/maintenance/fpmaint) +"atr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/fpmaint) +"ats" = (/obj/structure/rack,/turf/open/floor/plasteel,/area/security/vacantoffice2) +"att" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/chair{dir = 1},/turf/open/floor/plating,/area/security/vacantoffice2) +"atu" = (/obj/structure/table/wood,/turf/open/floor/plating,/area/security/vacantoffice2) +"atv" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plating,/area/security/vacantoffice2) +"atw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/closed/wall,/area/lawoffice) +"atx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/filingcabinet/employment,/turf/open/floor/wood,/area/lawoffice) +"aty" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/wood,/area/lawoffice) +"atz" = (/obj/structure/table/wood,/obj/item/weapon/folder/blue,/obj/item/weapon/folder/blue,/obj/item/weapon/folder/blue,/obj/item/weapon/folder/blue,/obj/item/weapon/stamp/law,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/wood,/area/lawoffice) +"atA" = (/obj/structure/chair/office/dark{dir = 8},/obj/effect/landmark/start{name = "Lawyer"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/wood,/area/lawoffice) +"atB" = (/obj/machinery/status_display{density = 0; layer = 3; pixel_x = 32; pixel_y = 0},/turf/open/floor/plasteel/red/corner{dir = 4},/area/hallway/primary/fore) +"atC" = (/obj/structure/table,/obj/machinery/light/small{dir = 8},/turf/open/floor/carpet,/area/crew_quarters/sleep) +"atD" = (/obj/structure/closet/secure_closet/personal,/turf/open/floor/carpet,/area/crew_quarters/sleep) +"atE" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/machinery/airalarm{pixel_y = 23},/obj/machinery/button/door{id = "Dorm4"; name = "Dorm Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/carpet,/area/crew_quarters/sleep) +"atF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/crew_quarters/sleep) +"atG" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side{dir = 9},/area/crew_quarters/sleep) +"atH" = (/obj/machinery/airalarm{pixel_y = 23},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/neutral/side{dir = 5},/area/crew_quarters/sleep) +"atI" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/wood,/area/crew_quarters/sleep) +"atJ" = (/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/wood,/area/crew_quarters/sleep) +"atK" = (/obj/machinery/airalarm{pixel_y = 23},/obj/structure/closet/secure_closet/personal/cabinet,/obj/effect/decal/cleanable/cobweb/cobweb2,/turf/open/floor/wood,/area/crew_quarters/sleep) +"atL" = (/obj/structure/dresser,/turf/open/floor/wood,/area/crew_quarters/sleep) +"atM" = (/obj/machinery/airalarm{pixel_y = 23},/obj/structure/closet/secure_closet/personal/cabinet,/turf/open/floor/wood,/area/crew_quarters/sleep) +"atN" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/neutral/side{dir = 9},/area/crew_quarters/fitness) +"atO" = (/obj/structure/disposalpipe/trunk{dir = 8},/obj/machinery/disposal/bin,/turf/open/floor/plasteel/neutral/side{dir = 1},/area/crew_quarters/fitness) +"atP" = (/obj/structure/closet/athletic_mixed,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/crew_quarters/fitness) +"atQ" = (/obj/structure/closet/boxinggloves,/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/item/clothing/shoes/jackboots,/turf/open/floor/plasteel/neutral/side{dir = 1},/area/crew_quarters/fitness) +"atR" = (/obj/machinery/camera{c_tag = "Fitness Room"},/obj/structure/closet/masks,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/crew_quarters/fitness) +"atS" = (/obj/structure/closet/lasertag/blue,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/crew_quarters/fitness) +"atT" = (/obj/structure/closet/lasertag/red,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/neutral/side{dir = 5},/area/crew_quarters/fitness) +"atU" = (/obj/machinery/door/airlock/external{name = "External Access"; req_access = null; req_access_txt = "13"},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"atV" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance{lootcount = 3; name = "3maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"atW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"atX" = (/obj/structure/door_assembly/door_assembly_mai,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"atY" = (/obj/machinery/door/airlock/maintenance{name = "Firefighting equipment"; req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"atZ" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aua" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/snacks/donut,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aub" = (/turf/closed/wall,/area/maintenance/electrical) +"auc" = (/turf/closed/wall,/area/space/nearstation) +"aud" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/yellow/side{dir = 8},/area/mining_construction) +"aue" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/turf/open/floor/plasteel/yellow/side{dir = 4},/area/mining_construction) +"auf" = (/obj/machinery/space_heater,/turf/open/floor/plating,/area/maintenance/fpmaint2) +"aug" = (/obj/structure/reagent_dispensers/watertank,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fpmaint2) +"auh" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/fpmaint2) +"aui" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2) +"auj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2) +"auk" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2) +"aul" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/closed/wall,/area/maintenance/fpmaint2) +"aum" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating,/area/maintenance/fpmaint2) +"aun" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plating,/area/maintenance/fpmaint) +"auo" = (/obj/structure/closet/emcloset,/turf/open/floor/plating,/area/maintenance/fpmaint) +"aup" = (/obj/structure/chair/stool,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fpmaint) +"auq" = (/obj/effect/decal/cleanable/cobweb,/obj/structure/closet/secure_closet/chemical,/turf/open/floor/plating,/area/maintenance/fpmaint) +"aur" = (/obj/structure/closet/secure_closet/chemical,/turf/open/floor/plating,/area/maintenance/fpmaint) +"aus" = (/obj/structure/closet/secure_closet/medical1,/turf/open/floor/plating,/area/maintenance/fpmaint) +"aut" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/security/vacantoffice2) +"auu" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plating,/area/security/vacantoffice2) +"auv" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plating,/area/maintenance/fpmaint) +"auw" = (/obj/machinery/door/airlock/maintenance{name = "Law Office Maintenance"; req_access_txt = "38"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/lawoffice) +"aux" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/wood,/area/lawoffice) +"auy" = (/obj/structure/chair/office/dark,/obj/effect/landmark/start{name = "Lawyer"},/turf/open/floor/wood,/area/lawoffice) +"auz" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/red/corner{dir = 4},/area/hallway/primary/fore) +"auA" = (/obj/structure/chair/stool{pixel_y = 8},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/carpet,/area/crew_quarters/sleep) +"auB" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/carpet,/area/crew_quarters/sleep) +"auC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/carpet,/area/crew_quarters/sleep) +"auD" = (/obj/machinery/door/airlock{id_tag = "Dorm4"; name = "Dorm 4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"auE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side{dir = 8},/area/crew_quarters/sleep) +"auF" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side{dir = 4},/area/crew_quarters/sleep) +"auG" = (/obj/structure/table/wood,/turf/open/floor/wood,/area/crew_quarters/sleep) +"auH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/crew_quarters/sleep) +"auI" = (/obj/structure/bed,/obj/item/weapon/bedsheet/red,/obj/machinery/button/door{id = "Dorm5"; name = "Cabin Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = -25; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/wood,/area/crew_quarters/sleep) +"auJ" = (/turf/open/floor/wood,/area/crew_quarters/sleep) +"auK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/landmark/event_spawn,/turf/open/floor/wood,/area/crew_quarters/sleep) +"auL" = (/obj/structure/bed,/obj/item/weapon/bedsheet/red,/obj/machinery/button/door{id = "Dorm6"; name = "Cabin Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = -25; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/wood,/area/crew_quarters/sleep) +"auM" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/neutral/side{dir = 8},/area/crew_quarters/fitness) +"auN" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel,/area/crew_quarters/fitness) +"auO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/fitness) +"auP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/fitness) +"auQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/side{dir = 4},/area/crew_quarters/fitness) +"auR" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plating,/area/crew_quarters/fitness) +"auS" = (/obj/structure/table,/obj/item/weapon/shard,/obj/item/weapon/shard{icon_state = "medium"},/obj/item/weapon/shard{icon_state = "small"},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"auT" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"auU" = (/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/fsmaint2) +"auV" = (/obj/machinery/button/door{id = "maint3"; name = "Blast Door Control C"; pixel_x = 0; pixel_y = 24; req_access_txt = "0"},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"auW" = (/mob/living/simple_animal/mouse,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"auX" = (/obj/structure/table,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"auY" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"auZ" = (/obj/machinery/recharge_station,/turf/open/floor/plasteel/floorgrime,/area/maintenance/electrical) +"ava" = (/obj/item/stack/rods{amount = 50},/obj/structure/rack,/obj/item/stack/cable_coil{pixel_x = -3; pixel_y = 3},/obj/item/stack/cable_coil{amount = 5},/obj/item/stack/sheet/mineral/plasma{amount = 10; layer = 2.9},/turf/open/floor/plasteel/floorgrime,/area/maintenance/electrical) +"avb" = (/obj/machinery/power/port_gen/pacman,/turf/open/floor/plating,/area/maintenance/electrical) +"avc" = (/obj/machinery/mech_bay_recharge_port,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plating,/area/maintenance/electrical) +"avd" = (/turf/open/floor/mech_bay_recharge_floor,/area/maintenance/electrical) +"ave" = (/obj/machinery/computer/mech_bay_power_console,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/bluegrid,/area/maintenance/electrical) +"avf" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/mining_construction) +"avg" = (/obj/structure/table,/obj/item/stack/sheet/plasteel{amount = 10},/obj/item/stack/rods{amount = 50},/turf/open/floor/plasteel/yellow/side{dir = 4},/area/mining_construction) +"avh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint2) +"avi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/closed/wall,/area/maintenance/fpmaint2) +"avj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/maintenance/fpmaint2) +"avk" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/fpmaint2) +"avl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/maintenance/fpmaint2) +"avm" = (/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/space/nearstation) +"avn" = (/obj/item/weapon/paper/crumpled,/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/space/nearstation) +"avo" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fpmaint2) +"avp" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plating,/area/maintenance/fpmaint2) +"avq" = (/obj/structure/rack{dir = 1},/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/fpmaint2) +"avr" = (/obj/structure/chair/stool,/turf/open/floor/plating,/area/maintenance/fpmaint2) +"avs" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/fpmaint) +"avt" = (/obj/structure/table/wood,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/light,/turf/open/floor/plating,/area/security/vacantoffice2) +"avu" = (/obj/machinery/camera{c_tag = "Vacant Office B"; dir = 1},/obj/structure/table/wood,/turf/open/floor/plasteel,/area/security/vacantoffice2) +"avv" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/security/vacantoffice2) +"avw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/lawoffice) +"avx" = (/obj/structure/table/wood,/obj/item/device/taperecorder{pixel_y = 0},/obj/item/weapon/cartridge/lawyer,/turf/open/floor/wood,/area/lawoffice) +"avy" = (/obj/structure/table/wood,/obj/machinery/camera{c_tag = "Law Office"; dir = 1; network = list("SS13")},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/machinery/computer/security/telescreen{desc = "Used for watching Prison Wing holding areas."; dir = 1; name = "Prison Monitor"; network = list("Prison"); pixel_x = 0; pixel_y = -27},/turf/open/floor/wood,/area/lawoffice) +"avz" = (/obj/machinery/photocopier,/obj/machinery/button/door{id = "lawyer_blast"; name = "Privacy Shutters"; pixel_x = 25; pixel_y = 8},/turf/open/floor/wood,/area/lawoffice) +"avA" = (/obj/machinery/power/apc{dir = 8; name = "Fore Primary Hallway APC"; pixel_x = -24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/camera{c_tag = "Fore Primary Hallway"; dir = 4; network = list("SS13")},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/red/corner{dir = 1},/area/hallway/primary/fore) +"avB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/neutral/side{dir = 8},/area/crew_quarters/sleep) +"avC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/neutral/side{dir = 4},/area/crew_quarters/sleep) +"avD" = (/obj/machinery/door/airlock{id_tag = "Dorm5"; name = "Cabin 1"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/crew_quarters/sleep) +"avE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/crew_quarters/sleep) +"avF" = (/obj/machinery/door/airlock{id_tag = "Dorm6"; name = "Cabin 2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/crew_quarters/sleep) +"avG" = (/obj/machinery/airalarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/neutral/side{dir = 8},/area/crew_quarters/fitness) +"avH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/crew_quarters/fitness) +"avI" = (/obj/machinery/door/window/eastright{base_state = "left"; dir = 8; icon_state = "left"; name = "Fitness Ring"},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plasteel/black,/area/crew_quarters/fitness) +"avJ" = (/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plasteel/black,/area/crew_quarters/fitness) +"avK" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/black,/area/crew_quarters/fitness) +"avL" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/fitness) +"avM" = (/turf/open/floor/plasteel/red/side{dir = 4},/area/crew_quarters/fitness) +"avN" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Holodeck Door"},/turf/open/floor/plasteel,/area/crew_quarters/fitness) +"avO" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Holodeck Door"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel,/area/crew_quarters/fitness) +"avP" = (/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/fitness) +"avQ" = (/obj/machinery/camera{c_tag = "Holodeck"},/obj/machinery/airalarm{pixel_y = 24},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/crew_quarters/fitness) +"avR" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/fitness) +"avS" = (/obj/machinery/light/small,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"avT" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"avU" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"avV" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"avW" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"avX" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"avY" = (/turf/open/floor/plasteel/floorgrime,/area/maintenance/electrical) +"avZ" = (/turf/open/floor/plating,/area/maintenance/electrical) +"awa" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/electrical) +"awb" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/electrical) +"awc" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/electrical) +"awd" = (/turf/open/floor/plating/warnplate{dir = 10},/area/shuttle/auxillary_base) +"awe" = (/turf/open/floor/plating/warnplate,/area/shuttle/auxillary_base) +"awf" = (/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plating/warnplate{dir = 6},/area/shuttle/auxillary_base) +"awg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/yellow/side{dir = 10},/area/mining_construction) +"awh" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/yellow/side,/area/mining_construction) +"awi" = (/obj/structure/table,/obj/item/weapon/storage/box/lights/mixed,/obj/item/weapon/pipe_dispenser,/obj/machinery/button/door{id = "aux_base_shutters"; name = "Public Shutters Control"; pixel_x = 24; pixel_y = 0; req_access_txt = "0"; req_one_access_txt = "32;47;48"},/turf/open/floor/plasteel/yellow/side{dir = 6},/area/mining_construction) +"awj" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 8; name = "Auxillary Base Construction APC"; pixel_x = -24; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plating,/area/mining_construction) +"awk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2) +"awl" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2) +"awm" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/maintenance/fpmaint2) +"awn" = (/obj/structure/mirror{icon_state = "mirror_broke"; pixel_y = 28; broken = 1},/obj/machinery/iv_drip,/turf/open/floor/plating,/area/maintenance/fpmaint2) +"awo" = (/obj/structure/frame/computer,/turf/open/floor/plating,/area/maintenance/fpmaint2) +"awp" = (/obj/structure/mirror{icon_state = "mirror_broke"; pixel_y = 28; broken = 1},/obj/item/weapon/shard{icon_state = "medium"},/obj/item/weapon/circuitboard/computer/operating,/turf/open/floor/plating,/area/maintenance/fpmaint2) +"awq" = (/obj/effect/decal/cleanable/cobweb/cobweb2,/obj/structure/chair,/obj/item/weapon/reagent_containers/blood/random,/turf/open/floor/plating,/area/maintenance/fpmaint2) +"awr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint2) +"aws" = (/obj/item/weapon/airlock_painter,/obj/structure/lattice,/obj/structure/closet,/turf/open/space,/area/space/nearstation) +"awt" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance{lootcount = 4; name = "4maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/fpmaint2) +"awu" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 4; req_access_txt = "13"},/turf/open/floor/plating,/area/maintenance/fpmaint) +"awv" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fpmaint) +"aww" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 8; req_access_txt = "13"},/turf/open/floor/plating,/area/maintenance/fpmaint) +"awx" = (/obj/machinery/door/airlock/maintenance{name = "Chemical Storage"; req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/fpmaint) +"awy" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/security/vacantoffice2) +"awz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/security/vacantoffice2) +"awA" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/power/apc{dir = 8; name = "Vacant Office B APC"; pixel_x = -24; pixel_y = 0},/turf/open/floor/plating,/area/security/vacantoffice2) +"awB" = (/obj/machinery/power/apc{dir = 1; name = "Law Office APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/lawoffice) +"awC" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/red/corner{dir = 1},/area/hallway/primary/fore) +"awD" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/plasteel/red/corner{dir = 4},/area/hallway/primary/fore) +"awE" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/machinery/airalarm{pixel_y = 23},/obj/machinery/button/door{id = "Dorm3"; name = "Dorm Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/carpet,/area/crew_quarters/sleep) +"awF" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel/neutral/side{dir = 8},/area/crew_quarters/sleep) +"awG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/crew_quarters/sleep) +"awH" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/crew_quarters/sleep) +"awI" = (/obj/machinery/requests_console{department = "Crew Quarters"; pixel_y = 30},/obj/machinery/camera{c_tag = "Dormitory North"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/crew_quarters/sleep) +"awJ" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/neutral/side{dir = 1},/area/crew_quarters/sleep) +"awK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/crew_quarters/sleep) +"awL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/crew_quarters/sleep) +"awM" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/crew_quarters/sleep) +"awN" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/crew_quarters/sleep) +"awO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/neutral/side{dir = 5},/area/crew_quarters/sleep) +"awP" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/crew_quarters/fitness) +"awQ" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/neutral/side{dir = 8},/area/crew_quarters/fitness) +"awR" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/black,/area/crew_quarters/fitness) +"awS" = (/turf/open/floor/plasteel/vault{dir = 5},/area/crew_quarters/fitness) +"awT" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/black,/area/crew_quarters/fitness) +"awU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/crew_quarters/fitness) +"awV" = (/obj/machinery/computer/holodeck,/turf/open/floor/plasteel,/area/crew_quarters/fitness) +"awW" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel,/area/crew_quarters/fitness) +"awX" = (/obj/machinery/door/poddoor/preopen{id = "maint3"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"awY" = (/obj/machinery/door/poddoor/preopen{id = "maint3"},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"awZ" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 0},/turf/closed/wall,/area/maintenance/electrical) +"axa" = (/obj/machinery/power/apc{dir = 1; name = "Electrical Maintenance APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plating,/area/maintenance/electrical) +"axb" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/electrical) +"axc" = (/obj/structure/table,/obj/item/clothing/gloves/color/fyellow,/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/obj/item/device/multitool,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/turf/open/floor/plasteel/floorgrime,/area/maintenance/electrical) +"axd" = (/turf/closed/wall/r_wall,/area/hallway/secondary/entry) +"axe" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/poddoor/shutters{id = "aux_base_shutters"; name = "Auxillary Base Shutters"},/turf/open/floor/plasteel/delivery,/area/mining_construction) +"axf" = (/obj/machinery/door/airlock/engineering{cyclelinkeddir = 1; name = "Auxillary Base Construction"; req_access_txt = "0"; req_one_access_txt = "32;47;48"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/mining_construction) +"axg" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint2) +"axh" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/maintenance/fpmaint2) +"axi" = (/obj/item/weapon/wrench,/turf/open/floor/plating,/area/maintenance/fpmaint2) +"axj" = (/obj/structure/table/optable{name = "Robotics Operating Table"},/obj/item/weapon/surgical_drapes,/turf/open/floor/plating,/area/maintenance/fpmaint2) +"axk" = (/turf/open/floor/plasteel/airless{icon_state = "damaged5"},/area/space/nearstation) +"axl" = (/obj/structure/table,/obj/machinery/cell_charger,/turf/open/floor/plating,/area/maintenance/fpmaint2) +"axm" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/fpmaint2) +"axn" = (/obj/machinery/light/small{dir = 4},/obj/structure/chair/stool,/turf/open/floor/plating,/area/maintenance/fpmaint2) +"axo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/closed/wall,/area/maintenance/fpmaint2) +"axp" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/maintenance/fpmaint2) +"axq" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/fpmaint) +"axr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/maintenance/fpmaint) +"axs" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint) +"axt" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/closed/wall,/area/maintenance/fpmaint) +"axu" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint) +"axv" = (/obj/machinery/power/apc{dir = 1; name = "EVA Maintenance APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint) +"axw" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/fpmaint) +"axx" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint) +"axy" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint) +"axz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint) +"axA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint) +"axB" = (/obj/effect/landmark{name = "blobstart"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint) +"axC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint) +"axD" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint) +"axE" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"axF" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"axG" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plating,/area/maintenance/fsmaint) +"axH" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint) +"axI" = (/obj/machinery/door/airlock{id_tag = "Dorm3"; name = "Dorm 3"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"axJ" = (/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"axK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"axL" = (/obj/structure/chair/stool{pixel_y = 8},/obj/effect/landmark/start{name = "Assistant"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"axM" = (/obj/structure/table/wood,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/item/weapon/storage/pill_bottle/dice,/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"axN" = (/obj/structure/table/wood,/obj/item/weapon/storage/firstaid/regular,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"axO" = (/obj/structure/table/wood,/obj/item/weapon/coin/silver,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"axP" = (/obj/structure/chair/stool{pixel_y = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"axQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"axR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"axS" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Fitness"},/turf/open/floor/plasteel,/area/crew_quarters/fitness) +"axT" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/crew_quarters/fitness) +"axU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/crew_quarters/fitness) +"axV" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/vault{dir = 5},/area/crew_quarters/fitness) +"axW" = (/obj/effect/landmark/start{name = "Assistant"},/turf/open/floor/plasteel/green/side{dir = 4},/area/crew_quarters/fitness) +"axX" = (/obj/structure/table,/obj/item/weapon/paper{desc = ""; info = "Brusies sustained in the holodeck can be healed simply by sleeping."; name = "Holodeck Disclaimer"},/turf/open/floor/plasteel,/area/crew_quarters/fitness) +"axY" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"axZ" = (/obj/effect/decal/cleanable/cobweb/cobweb2,/obj/structure/closet/crate,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aya" = (/obj/structure/closet/crate,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"ayb" = (/obj/structure/girder,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"ayc" = (/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"ayd" = (/obj/machinery/button/door{id = "maint2"; name = "Blast Door Control B"; pixel_x = -28; pixel_y = 4; req_access_txt = "0"},/obj/machinery/button/door{id = "maint1"; name = "Blast Door Control A"; pixel_x = -28; pixel_y = -6; req_access_txt = "0"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aye" = (/obj/structure/janitorialcart,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"ayf" = (/obj/structure/table/glass,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"ayg" = (/obj/structure/table/glass,/obj/item/weapon/pen,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"ayh" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"ayi" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"ayj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/engineering{name = "Electrical Maintenance"; req_access_txt = "11"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/electrical) +"ayk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/electrical) +"ayl" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/electrical) +"aym" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/electrical) +"ayn" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plating,/area/maintenance/electrical) +"ayo" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/plating,/area/maintenance/electrical) +"ayp" = (/obj/structure/table,/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/item/wallframe/camera,/obj/item/wallframe/camera,/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/turf/open/floor/plasteel/floorgrime,/area/maintenance/electrical) +"ayq" = (/turf/closed/wall/mineral/titanium,/area/shuttle/pod_2) +"ayr" = (/obj/structure/shuttle/engine/propulsion/burst{tag = "icon-propulsion (WEST)"; icon_state = "propulsion"; dir = 8},/turf/closed/wall/mineral/titanium,/area/shuttle/pod_2) +"ays" = (/turf/closed/wall,/area/hallway/secondary/entry) +"ayt" = (/obj/structure/closet/emcloset,/turf/open/floor/plating,/area/hallway/secondary/entry) +"ayu" = (/obj/structure/sign/pods,/turf/closed/wall,/area/hallway/secondary/entry) +"ayv" = (/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/arrival{dir = 1},/area/hallway/secondary/entry) +"ayw" = (/turf/open/floor/plasteel/arrival{dir = 1},/area/hallway/secondary/entry) +"ayx" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/arrival{dir = 1},/area/hallway/secondary/entry) +"ayy" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/yellow/corner{dir = 4},/area/hallway/secondary/entry) +"ayz" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel/yellow/side{dir = 1},/area/hallway/secondary/entry) +"ayA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/yellow/corner{dir = 1},/area/hallway/secondary/entry) +"ayB" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/arrival{dir = 1},/area/hallway/secondary/entry) +"ayC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/arrival{dir = 5},/area/hallway/secondary/entry) +"ayD" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint2) +"ayE" = (/obj/machinery/sleeper{dir = 4; icon_state = "sleeper-open"},/turf/open/floor/plating,/area/maintenance/fpmaint2) +"ayF" = (/mob/living/simple_animal/mouse,/turf/open/floor/plating,/area/maintenance/fpmaint2) +"ayG" = (/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plating,/area/maintenance/fpmaint2) +"ayH" = (/obj/structure/table/glass,/obj/item/weapon/storage/bag/trash,/turf/open/floor/plating,/area/maintenance/fpmaint2) +"ayI" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/closed/wall,/area/maintenance/fpmaint2) +"ayJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2) +"ayK" = (/obj/machinery/door/airlock/maintenance{name = "Firefighting equipment"; req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/fpmaint2) +"ayL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint2) +"ayM" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/fpmaint2) +"ayN" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2) +"ayO" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = -32},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint) +"ayP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint) +"ayQ" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/fpmaint) +"ayR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint) +"ayS" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint) +"ayT" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = -32},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint) +"ayU" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint) +"ayV" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint) +"ayW" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint) +"ayX" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint) +"ayY" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/fpmaint) +"ayZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/ai_monitored/storage/eva) +"aza" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/closed/wall/r_wall,/area/ai_monitored/storage/eva) +"azb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/ai_monitored/storage/eva) +"azc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/fore) +"azd" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/fore) +"aze" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel/blue/corner,/area/hallway/primary/fore) +"azf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/maintenance/fsmaint) +"azg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plating,/area/maintenance/fsmaint) +"azh" = (/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"azi" = (/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"azj" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"azk" = (/obj/structure/table/wood,/obj/item/weapon/storage/crayons,/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"azl" = (/obj/structure/table/wood,/obj/item/device/paicard,/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"azm" = (/obj/structure/table/wood,/obj/item/toy/cards/deck{pixel_x = 2},/obj/item/clothing/mask/balaclava{pixel_x = -8; pixel_y = 8},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"azn" = (/obj/structure/chair/stool{pixel_y = 8},/obj/effect/landmark/start{name = "Assistant"},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"azo" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"azp" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"azq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Fitness"},/turf/open/floor/plasteel,/area/crew_quarters/fitness) +"azr" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/crew_quarters/fitness) +"azs" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plasteel,/area/crew_quarters/fitness) +"azt" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/crew_quarters/fitness) +"azu" = (/obj/structure/window/reinforced,/turf/open/floor/plasteel/black,/area/crew_quarters/fitness) +"azv" = (/obj/machinery/door/window/eastright{base_state = "left"; icon_state = "left"; name = "Fitness Ring"},/obj/structure/window/reinforced,/turf/open/floor/plasteel/black,/area/crew_quarters/fitness) +"azw" = (/turf/open/floor/plasteel/green/side{dir = 4},/area/crew_quarters/fitness) +"azx" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Holodeck Door"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel,/area/crew_quarters/fitness) +"azy" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/fitness) +"azz" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/crew_quarters/fitness) +"azA" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"azB" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"azC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"azD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"azE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"azF" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/maintenance/electrical) +"azG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/maintenance/electrical) +"azH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/electrical) +"azI" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plating,/area/maintenance/electrical) +"azJ" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high/plus,/obj/item/weapon/stock_parts/cell/high/plus,/turf/open/floor/plating,/area/maintenance/electrical) +"azK" = (/obj/docking_port/stationary/random{dir = 8; id = "pod_asteroid2"; name = "asteroid"},/turf/open/space,/area/space) +"azL" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/pod_2) +"azM" = (/obj/machinery/computer/shuttle/pod{pixel_x = 0; pixel_y = -32; possible_destinations = "pod_asteroid2"; shuttleId = "pod2"},/obj/structure/chair{dir = 8},/obj/machinery/status_display{density = 0; layer = 3; pixel_x = 0; pixel_y = 32},/turf/open/floor/mineral/titanium/blue,/area/shuttle/pod_2) +"azN" = (/obj/item/weapon/storage/pod{pixel_x = 6; pixel_y = -28},/obj/item/device/radio/intercom{pixel_x = 0; pixel_y = 25},/obj/structure/chair{dir = 8},/turf/open/floor/mineral/titanium/blue,/area/shuttle/pod_2) +"azO" = (/obj/machinery/door/airlock/shuttle{name = "Escape Pod Airlock"},/obj/docking_port/mobile/pod{dir = 8; id = "pod2"; name = "escape pod 2"; port_angle = 180},/turf/open/floor/mineral/titanium/blue,/area/shuttle/pod_2) +"azP" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 1; name = "Escape Pod One"},/turf/open/floor/plating,/area/hallway/secondary/entry) +"azQ" = (/turf/open/floor/plating,/area/hallway/secondary/entry) +"azR" = (/turf/open/floor/plasteel/warning,/area/hallway/secondary/entry) +"azS" = (/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"azT" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/warning/corner{dir = 1},/area/hallway/secondary/entry) +"azU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"azV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/warning/corner{dir = 2},/area/hallway/secondary/entry) +"azW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/warning,/area/hallway/secondary/entry) +"azX" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/warning,/area/hallway/secondary/entry) +"azY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/warning/corner{dir = 1},/area/hallway/secondary/entry) +"azZ" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/arrival{dir = 4},/area/hallway/secondary/entry) +"aAa" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2) +"aAb" = (/obj/structure/closet/wardrobe/white,/obj/item/clothing/shoes/jackboots,/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka/badminka,/turf/open/floor/plating,/area/maintenance/fpmaint2) +"aAc" = (/obj/structure/table/glass,/obj/item/weapon/hemostat,/turf/open/floor/plating,/area/maintenance/fpmaint2) +"aAd" = (/obj/structure/table/glass,/obj/item/weapon/restraints/handcuffs/cable/zipties,/obj/item/weapon/reagent_containers/blood/random,/turf/open/floor/plating,/area/maintenance/fpmaint2) +"aAe" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plating,/area/maintenance/fpmaint2) +"aAf" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint2) +"aAg" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2) +"aAh" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/fpmaint2) +"aAi" = (/obj/structure/closet/firecloset,/turf/open/floor/plating,/area/maintenance/fpmaint2) +"aAj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint2) +"aAk" = (/turf/closed/wall/r_wall,/area/maintenance/fpmaint2) +"aAl" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/fpmaint) +"aAm" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/fpmaint) +"aAn" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/fpmaint) +"aAo" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/fpmaint) +"aAp" = (/obj/structure/grille,/obj/structure/cable,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/fpmaint) +"aAq" = (/turf/closed/wall/r_wall,/area/maintenance/fpmaint) +"aAr" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint) +"aAs" = (/turf/closed/wall/r_wall,/area/gateway) +"aAt" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint) +"aAu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/sign/securearea{pixel_x = 32; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint) +"aAv" = (/turf/closed/wall/r_wall,/area/ai_monitored/storage/eva) +"aAw" = (/obj/structure/closet/crate/rcd,/obj/machinery/camera/motion{c_tag = "EVA Motion Sensor"; name = "motion-sensitive security camera"},/turf/open/floor/plasteel/black,/area/ai_monitored/storage/eva) +"aAx" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/machinery/light{dir = 1},/obj/item/weapon/hand_labeler,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/item/device/flashlight,/turf/open/floor/plasteel/black,/area/ai_monitored/storage/eva) +"aAy" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/item/clothing/head/welding,/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) +"aAz" = (/obj/machinery/power/apc{dir = 1; name = "EVA Storage APC"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) +"aAA" = (/obj/machinery/airalarm{pixel_y = 23},/obj/item/device/radio/off,/obj/item/device/assembly/timer,/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) +"aAB" = (/obj/structure/table,/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high/plus,/turf/open/floor/plasteel/black,/area/ai_monitored/storage/eva) +"aAC" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/obj/item/weapon/screwdriver{pixel_y = 16},/turf/open/floor/plasteel/black,/area/ai_monitored/storage/eva) +"aAD" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/sign/securearea{pixel_y = 32},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ai_monitored/storage/eva) +"aAE" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/item/device/multitool,/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) +"aAF" = (/obj/machinery/light{dir = 1},/obj/structure/table,/obj/item/device/assembly/signaler,/obj/item/device/assembly/signaler,/obj/item/weapon/stock_parts/cell/high/plus,/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) +"aAG" = (/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) +"aAH" = (/obj/structure/table,/obj/item/weapon/storage/belt/utility,/obj/item/weapon/storage/belt/utility,/obj/item/weapon/storage/belt/utility,/obj/item/clothing/head/welding,/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) +"aAI" = (/turf/closed/wall,/area/ai_monitored/storage/eva) +"aAJ" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/fore) +"aAK" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/blue/corner,/area/hallway/primary/fore) +"aAL" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/machinery/airalarm{pixel_y = 23},/obj/machinery/button/door{id = "Dorm2"; name = "Dorm Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/carpet,/area/crew_quarters/sleep) +"aAM" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side{dir = 8},/area/crew_quarters/sleep) +"aAN" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"aAO" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/crew_quarters/sleep) +"aAP" = (/obj/machinery/light,/turf/open/floor/plasteel/neutral/side,/area/crew_quarters/sleep) +"aAQ" = (/turf/open/floor/plasteel/neutral/side,/area/crew_quarters/sleep) +"aAR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/neutral/side{dir = 6},/area/crew_quarters/sleep) +"aAS" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/open/floor/plasteel/neutral/side{dir = 10},/area/crew_quarters/fitness) +"aAT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/crew_quarters/fitness) +"aAU" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/crew_quarters/fitness) +"aAV" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular,/turf/open/floor/plasteel,/area/crew_quarters/fitness) +"aAW" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/plasteel,/area/crew_quarters/fitness) +"aAX" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel,/area/crew_quarters/fitness) +"aAY" = (/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel,/area/crew_quarters/fitness) +"aAZ" = (/obj/machinery/camera{c_tag = "Fitness Room South"; dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/green/side{dir = 4},/area/crew_quarters/fitness) +"aBa" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/crew_quarters/fitness) +"aBb" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/fitness) +"aBc" = (/obj/structure/grille/broken,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aBd" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aBe" = (/obj/machinery/power/terminal,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating,/area/maintenance/electrical) +"aBf" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/electrical) +"aBg" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/maintenance/electrical) +"aBh" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plating,/area/maintenance/electrical) +"aBi" = (/obj/machinery/light_switch{pixel_y = -25},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating,/area/maintenance/electrical) +"aBj" = (/obj/machinery/power/terminal,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/maintenance/electrical) +"aBk" = (/obj/machinery/camera{c_tag = "Arrivals Escape Pod 2"; dir = 8},/obj/machinery/light/small,/turf/open/floor/plating,/area/hallway/secondary/entry) +"aBl" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/hallway/secondary/entry) +"aBm" = (/obj/machinery/door/airlock/external{name = "Port Docking Bay 1"},/turf/open/floor/plating,/area/hallway/secondary/entry) +"aBn" = (/turf/open/floor/plasteel/warning{dir = 8},/area/hallway/secondary/entry) +"aBo" = (/turf/open/floor/plasteel/warning{dir = 4},/area/hallway/secondary/entry) +"aBp" = (/turf/open/floor/plasteel/warning{dir = 10},/area/hallway/secondary/entry) +"aBq" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/open/floor/plasteel/warning,/area/hallway/secondary/entry) +"aBr" = (/turf/open/floor/plasteel/warning/corner{dir = 1},/area/hallway/secondary/entry) +"aBs" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/arrival{dir = 4},/area/hallway/secondary/entry) +"aBt" = (/turf/closed/wall,/area/hallway/secondary/construction{name = "\improper Garden"}) +"aBu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/hallway/secondary/construction{name = "\improper Garden"}) +"aBv" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint2) +"aBw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/closed/wall,/area/maintenance/fpmaint2) +"aBx" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/space,/area/space) +"aBy" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/space,/area/space) +"aBz" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/black,/area/gateway) +"aBA" = (/obj/machinery/gateway{dir = 9},/turf/open/floor/plasteel/vault{dir = 1},/area/gateway) +"aBB" = (/obj/machinery/gateway{dir = 1},/turf/open/floor/plasteel/vault{dir = 8},/area/gateway) +"aBC" = (/obj/machinery/gateway{dir = 5},/turf/open/floor/plasteel/vault{dir = 4},/area/gateway) +"aBD" = (/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/black,/area/gateway) +"aBE" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plating,/area/maintenance/fpmaint) +"aBF" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/maintenance{name = "EVA Maintenance"; req_access_txt = "18"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) +"aBG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) +"aBH" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) +"aBI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) +"aBJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) +"aBK" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_command{name = "EVA Storage"; req_access_txt = "18"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) +"aBL" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) +"aBM" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) +"aBN" = (/obj/structure/table,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/item/device/assembly/prox_sensor,/obj/item/device/assembly/prox_sensor,/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) +"aBO" = (/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/fore) +"aBP" = (/turf/open/floor/plasteel/blue/corner,/area/hallway/primary/fore) +"aBQ" = (/obj/machinery/door/airlock{id_tag = "Dorm2"; name = "Dorm 2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"aBR" = (/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/crew_quarters/sleep) +"aBS" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/neutral/side,/area/crew_quarters/sleep) +"aBT" = (/obj/machinery/light_switch{pixel_y = -25},/turf/open/floor/plasteel/neutral/side,/area/crew_quarters/sleep) +"aBU" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/open/floor/plasteel/neutral/side,/area/crew_quarters/sleep) +"aBV" = (/obj/structure/closet/wardrobe/pjs,/turf/open/floor/plasteel/neutral/side,/area/crew_quarters/sleep) +"aBW" = (/obj/structure/closet/wardrobe/pjs,/turf/open/floor/plasteel/neutral/side{dir = 6},/area/crew_quarters/sleep) +"aBX" = (/turf/closed/wall,/area/crew_quarters/toilet) +"aBY" = (/obj/machinery/door/airlock{name = "Unisex Showers"; req_access_txt = "0"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) +"aBZ" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/neutral/side{dir = 10},/area/crew_quarters/fitness) +"aCa" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side,/area/crew_quarters/fitness) +"aCb" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light_switch{pixel_y = -25},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side,/area/crew_quarters/fitness) +"aCc" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side,/area/crew_quarters/fitness) +"aCd" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/neutral/side,/area/crew_quarters/fitness) +"aCe" = (/obj/structure/reagent_dispensers/water_cooler,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/neutral/side{dir = 6},/area/crew_quarters/fitness) +"aCf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aCg" = (/obj/machinery/atmospherics/components/unary/tank/air{dir = 8},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aCh" = (/obj/structure/closet,/obj/effect/decal/cleanable/cobweb,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aCi" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aCj" = (/obj/machinery/door/poddoor/preopen{id = "maint2"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aCk" = (/obj/machinery/door/poddoor/preopen{id = "maint2"},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aCl" = (/obj/structure/closet,/obj/effect/landmark{name = "blobstart"},/obj/effect/spawner/lootdrop/maintenance,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka/badminka,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aCm" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aCn" = (/obj/machinery/power/smes{charge = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating,/area/maintenance/electrical) +"aCo" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/closed/wall,/area/maintenance/electrical) +"aCp" = (/obj/machinery/computer/monitor{name = "backup power monitoring console"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable,/turf/open/floor/plating,/area/maintenance/electrical) +"aCq" = (/obj/machinery/power/smes{charge = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/maintenance/electrical) +"aCr" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/turf/closed/wall/r_wall,/area/hallway/secondary/entry) +"aCs" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/hallway/secondary/entry) +"aCt" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/warning{dir = 10},/area/hallway/secondary/entry) +"aCu" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/warning,/area/hallway/secondary/entry) +"aCv" = (/obj/machinery/camera{c_tag = "Arrivals Bay 1 North"; dir = 1},/turf/open/floor/plasteel/warning,/area/hallway/secondary/entry) +"aCw" = (/obj/machinery/vending/coffee,/turf/open/floor/plasteel/warning{dir = 6},/area/hallway/secondary/entry) +"aCx" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/warning{dir = 8},/area/hallway/secondary/entry) +"aCy" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/turf/open/floor/plasteel/arrival{dir = 4},/area/hallway/secondary/entry) +"aCz" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/power/apc{dir = 2; name = "Security Checkpoint APC"; pixel_x = 1; pixel_y = -24},/obj/structure/cable,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/security/checkpoint2) +"aCA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint2) +"aCB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating,/area/maintenance/fpmaint2) +"aCC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/fpmaint2) +"aCD" = (/obj/machinery/power/apc{dir = 4; name = "Garden APC"; pixel_x = 27; pixel_y = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/hallway/secondary/construction{name = "\improper Garden"}) +"aCE" = (/obj/machinery/hydroponics/soil,/turf/open/floor/grass,/area/hallway/secondary/construction{name = "\improper Garden"}) +"aCF" = (/obj/machinery/light{dir = 1},/obj/structure/sink{pixel_y = 30},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/construction{name = "\improper Garden"}) +"aCG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/construction{name = "\improper Garden"}) +"aCH" = (/obj/machinery/seed_extractor,/turf/open/floor/plasteel,/area/hallway/secondary/construction{name = "\improper Garden"}) +"aCI" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/open/floor/plasteel,/area/hallway/secondary/construction{name = "\improper Garden"}) +"aCJ" = (/obj/structure/sink{pixel_y = 30},/turf/open/floor/plasteel,/area/hallway/secondary/construction{name = "\improper Garden"}) +"aCK" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/spawner/lootdrop/maintenance,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/fpmaint2) +"aCL" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2) +"aCM" = (/obj/machinery/power/apc{dir = 2; name = "Primary Tool Storage APC"; pixel_x = 1; pixel_y = -24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/storage/primary) +"aCN" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2) +"aCO" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fpmaint2) +"aCP" = (/turf/closed/wall/r_wall,/area/ai_monitored/nuke_storage) +"aCQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/ai_monitored/nuke_storage) +"aCR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall/r_wall,/area/ai_monitored/nuke_storage) +"aCS" = (/turf/open/floor/plasteel/black,/area/gateway) +"aCT" = (/obj/machinery/gateway{dir = 8},/turf/open/floor/plasteel/vault{dir = 8},/area/gateway) +"aCU" = (/obj/machinery/gateway/centerstation,/turf/open/floor/plasteel/black,/area/gateway) +"aCV" = (/obj/machinery/gateway{dir = 4},/turf/open/floor/plasteel/vault{dir = 8},/area/gateway) +"aCW" = (/obj/machinery/power/apc{dir = 8; name = "Gateway APC"; pixel_x = -24; pixel_y = -1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/gateway) +"aCX" = (/obj/machinery/camera{c_tag = "EVA Maintenance"; dir = 8; network = list("SS13")},/obj/machinery/light/small{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint) +"aCY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall/r_wall,/area/ai_monitored/storage/eva) +"aCZ" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/item/weapon/tank/jetpack/carbondioxide,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 9},/area/ai_monitored/storage/eva) +"aDa" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/tank/jetpack/carbondioxide,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 1},/area/ai_monitored/storage/eva) +"aDb" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) +"aDc" = (/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) +"aDd" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) +"aDe" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 1},/area/ai_monitored/storage/eva) +"aDf" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 5},/area/ai_monitored/storage/eva) +"aDg" = (/obj/structure/grille,/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ai_monitored/storage/eva) +"aDh" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) +"aDi" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ai_monitored/storage/eva) +"aDj" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/blue/corner,/area/hallway/primary/fore) +"aDk" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/neutral/side{dir = 8},/area/crew_quarters/sleep) +"aDl" = (/obj/machinery/shower{dir = 4},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) +"aDm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) +"aDn" = (/obj/machinery/shower{dir = 8},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) +"aDo" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aDp" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/maintenance/fsmaint2) +"aDq" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aDr" = (/obj/item/clothing/under/rank/mailman,/obj/item/clothing/head/mailman,/obj/structure/closet,/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aDs" = (/obj/machinery/space_heater,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aDt" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/warning{dir = 8},/area/hallway/secondary/entry) +"aDu" = (/turf/closed/wall,/area/security/checkpoint2) +"aDv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/security/checkpoint2) +"aDw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/security/checkpoint2) +"aDx" = (/obj/machinery/door/airlock/maintenance{name = "Security Maintenance"; req_access_txt = "1"},/turf/open/floor/plating,/area/security/checkpoint2) +"aDy" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/construction{name = "\improper Garden"}) +"aDz" = (/obj/effect/landmark/start{name = "Assistant"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel,/area/hallway/secondary/construction{name = "\improper Garden"}) +"aDA" = (/obj/item/seeds/apple,/obj/item/seeds/banana,/obj/item/seeds/cocoapod,/obj/item/seeds/grape,/obj/item/seeds/orange,/obj/item/seeds/sugarcane,/obj/item/seeds/wheat,/obj/item/seeds/watermelon,/obj/structure/table/glass,/obj/item/seeds/tower,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/construction{name = "\improper Garden"}) +"aDB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/construction{name = "\improper Garden"}) +"aDC" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/hallway/secondary/construction{name = "\improper Garden"}) +"aDD" = (/obj/machinery/door/airlock/maintenance{name = "Garden Maintenance"; req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint2) +"aDE" = (/turf/closed/wall,/area/storage/primary) +"aDF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/storage/primary) +"aDG" = (/turf/closed/wall/r_wall,/area/storage/primary) +"aDH" = (/obj/structure/closet/secure_closet/freezer/money,/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/nuke_storage) +"aDI" = (/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/bluegrid,/area/ai_monitored/nuke_storage) +"aDJ" = (/obj/machinery/airalarm{pixel_y = 23},/obj/machinery/light{dir = 1},/turf/open/floor/bluegrid,/area/ai_monitored/nuke_storage) +"aDK" = (/obj/machinery/power/apc{dir = 1; name = "Vault APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/bluegrid,/area/ai_monitored/nuke_storage) +"aDL" = (/obj/structure/filingcabinet,/obj/item/weapon/folder/documents,/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/nuke_storage) +"aDM" = (/obj/machinery/gateway{dir = 10},/turf/open/floor/plasteel/vault{dir = 4},/area/gateway) +"aDN" = (/obj/machinery/gateway,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plasteel/vault{dir = 8},/area/gateway) +"aDO" = (/obj/machinery/gateway{dir = 6},/turf/open/floor/plasteel/vault{dir = 1},/area/gateway) +"aDP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/meter,/turf/open/floor/plating,/area/maintenance/fpmaint) +"aDQ" = (/obj/machinery/requests_console{department = "EVA"; pixel_x = -32; pixel_y = 0},/turf/open/floor/plasteel/warning{dir = 8},/area/ai_monitored/storage/eva) +"aDR" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) +"aDS" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) +"aDT" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) +"aDU" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/item/weapon/pen{desc = "Writes upside down!"; name = "astronaut pen"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) +"aDV" = (/turf/open/floor/plasteel/warning{dir = 4},/area/ai_monitored/storage/eva) +"aDW" = (/obj/structure/grille,/obj/structure/cable,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ai_monitored/storage/eva) +"aDX" = (/obj/machinery/camera{c_tag = "EVA East"; dir = 1},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) +"aDY" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/machinery/airalarm{pixel_y = 23},/obj/machinery/button/door{id = "Dorm1"; name = "Dorm Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/carpet,/area/crew_quarters/sleep) +"aDZ" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/structure/mirror{pixel_x = -28},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) +"aEa" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) +"aEb" = (/obj/structure/urinal{pixel_y = 32},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) +"aEc" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/item/weapon/bikehorn/rubberducky,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) +"aEd" = (/obj/structure/table/wood,/obj/machinery/requests_console{department = "Theatre"; departmentType = 0; name = "theatre RC"; pixel_x = -32; pixel_y = 0},/obj/item/weapon/reagent_containers/food/snacks/baguette,/turf/open/floor/plasteel/white/side{dir = 4},/area/crew_quarters/theatre) +"aEe" = (/obj/machinery/camera{c_tag = "Theatre Storage"},/turf/open/floor/plasteel/white/side{dir = 4},/area/crew_quarters/theatre) +"aEf" = (/obj/machinery/vending/autodrobe,/turf/open/floor/plasteel/white/side{dir = 4},/area/crew_quarters/theatre) +"aEg" = (/turf/closed/wall,/area/crew_quarters/theatre) +"aEh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aEi" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/fitness) +"aEj" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/fitness) +"aEk" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/fitness) +"aEl" = (/obj/machinery/atmospherics/components/binary/valve,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aEm" = (/obj/effect/decal/cleanable/oil,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aEn" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aEo" = (/obj/structure/grille/broken,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/window{icon_state = "window"; dir = 4},/obj/structure/window,/turf/open/floor/plating{icon_state = "panelscorched"},/area/maintenance/fsmaint2) +"aEp" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/closed/wall,/area/maintenance/fsmaint2) +"aEq" = (/obj/machinery/door/poddoor/preopen{id = "maint1"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aEr" = (/obj/machinery/door/poddoor/preopen{id = "maint1"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aEs" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/maintenance/fsmaint2) +"aEt" = (/obj/structure/girder,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aEu" = (/obj/machinery/space_heater,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aEv" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aEw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aEx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aEy" = (/obj/structure/chair/stool{pixel_y = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aEz" = (/obj/structure/reagent_dispensers/watertank,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aEA" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aEB" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aEC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/chapel/main) +"aED" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/black,/area/chapel/main) +"aEE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/black,/area/chapel/main) +"aEF" = (/turf/closed/wall,/area/chapel/main) +"aEG" = (/turf/closed/wall/mineral/titanium,/area/shuttle/arrival) +"aEH" = (/obj/machinery/door/airlock/shuttle{name = "Arrivals Shuttle Airlock"},/turf/open/floor/plating,/area/shuttle/arrival) +"aEI" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/arrival) +"aEJ" = (/obj/machinery/camera{c_tag = "Arrivals North"; dir = 8; network = list("SS13")},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/arrival{dir = 4},/area/hallway/secondary/entry) +"aEK" = (/obj/structure/closet/secure_closet/security,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/red/side{dir = 9},/area/security/checkpoint2) +"aEL" = (/obj/structure/closet/wardrobe/red,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/side{dir = 1},/area/security/checkpoint2) +"aEM" = (/obj/machinery/computer/security,/obj/structure/reagent_dispensers/peppertank{pixel_x = 0; pixel_y = 30},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/checkpoint2) +"aEN" = (/obj/machinery/computer/card,/obj/machinery/light{dir = 1},/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/checkpoint2) +"aEO" = (/obj/machinery/computer/secure_data,/obj/machinery/requests_console{department = "Security"; departmentType = 5; pixel_y = 30},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/checkpoint2) +"aEP" = (/turf/open/floor/plasteel/red/side{dir = 5},/area/security/checkpoint2) +"aEQ" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/hallway/secondary/construction{name = "\improper Garden"}) +"aER" = (/turf/open/floor/plasteel,/area/hallway/secondary/construction{name = "\improper Garden"}) +"aES" = (/obj/machinery/biogenerator,/turf/open/floor/plasteel,/area/hallway/secondary/construction{name = "\improper Garden"}) +"aET" = (/obj/machinery/vending/assist,/turf/open/floor/plasteel,/area/storage/primary) +"aEU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/storage/primary) +"aEV" = (/obj/structure/table,/obj/item/weapon/wirecutters,/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/open/floor/plasteel,/area/storage/primary) +"aEW" = (/obj/structure/table,/obj/item/device/t_scanner,/obj/machinery/airalarm{pixel_y = 23},/turf/open/floor/plasteel,/area/storage/primary) +"aEX" = (/obj/structure/table,/obj/item/device/assembly/igniter{pixel_x = -8; pixel_y = -4},/obj/item/device/assembly/igniter,/obj/item/weapon/screwdriver{pixel_y = 16},/obj/machinery/camera{c_tag = "Primary Tool Storage"},/obj/machinery/requests_console{department = "Tool Storage"; departmentType = 0; pixel_y = 30},/turf/open/floor/plasteel,/area/storage/primary) +"aEY" = (/obj/structure/table,/obj/item/device/assembly/signaler,/obj/item/device/assembly/signaler,/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20},/obj/item/device/multitool,/obj/item/device/multitool{pixel_x = 4},/turf/open/floor/plasteel,/area/storage/primary) +"aEZ" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/machinery/light_switch{pixel_y = 28},/obj/item/weapon/stock_parts/cell/high/plus,/turf/open/floor/plasteel,/area/storage/primary) +"aFa" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/turf/open/floor/plasteel,/area/storage/primary) +"aFb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/storage/primary) +"aFc" = (/obj/machinery/vending/tool,/turf/open/floor/plasteel,/area/storage/primary) +"aFd" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/vault{dir = 1},/area/ai_monitored/nuke_storage) +"aFe" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/bluegrid,/area/ai_monitored/nuke_storage) +"aFf" = (/obj/machinery/nuclearbomb/selfdestruct,/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/nuke_storage) +"aFg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/bluegrid,/area/ai_monitored/nuke_storage) +"aFh" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/vault{dir = 4},/area/ai_monitored/nuke_storage) +"aFi" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/black,/area/gateway) +"aFj" = (/obj/structure/window/reinforced,/turf/open/floor/plasteel/black,/area/gateway) +"aFk" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/window{name = "Gateway Chamber"; req_access_txt = "62"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/black,/area/gateway) +"aFl" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/gateway) +"aFm" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/gateway) +"aFn" = (/obj/structure/rack{dir = 1},/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint) +"aFo" = (/obj/machinery/suit_storage_unit/standard_unit,/turf/open/floor/plasteel/warning{dir = 10},/area/ai_monitored/storage/eva) +"aFp" = (/obj/machinery/suit_storage_unit/standard_unit,/turf/open/floor/plasteel/warning{dir = 2},/area/ai_monitored/storage/eva) +"aFq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) +"aFr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) +"aFs" = (/obj/machinery/suit_storage_unit/standard_unit,/obj/machinery/light,/obj/machinery/camera{c_tag = "EVA Storage"; dir = 1},/turf/open/floor/plasteel/warning{dir = 2},/area/ai_monitored/storage/eva) +"aFt" = (/obj/machinery/suit_storage_unit/standard_unit,/turf/open/floor/plasteel/warning{dir = 6},/area/ai_monitored/storage/eva) +"aFu" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/closed/wall/r_wall,/area/ai_monitored/storage/eva) +"aFv" = (/obj/machinery/door/airlock/command{name = "Command Tool Storage"; req_access = null; req_access_txt = "19"},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) +"aFw" = (/obj/machinery/door/airlock/command{cyclelinkeddir = 2; name = "Command Tool Storage"; req_access = null; req_access_txt = "19"},/turf/open/floor/plasteel/black,/area/ai_monitored/storage/eva) +"aFx" = (/obj/machinery/door/airlock{id_tag = "Dorm1"; name = "Dorm 1"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/sleep) +"aFy" = (/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,/turf/open/floor/plasteel/neutral/side{dir = 4},/area/crew_quarters/sleep) +"aFz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/crew_quarters/toilet) +"aFA" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) +"aFB" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) +"aFC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) +"aFD" = (/obj/machinery/door/airlock{name = "Unisex Showers"; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) +"aFE" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) +"aFF" = (/obj/machinery/light/small,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) +"aFG" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) +"aFH" = (/obj/structure/table/wood,/obj/structure/mirror{pixel_x = -28},/obj/item/weapon/lipstick/random{pixel_x = 2; pixel_y = 2},/obj/item/weapon/lipstick/random{pixel_x = -2; pixel_y = -2},/turf/open/floor/plasteel/white/side{dir = 4},/area/crew_quarters/theatre) +"aFI" = (/obj/structure/chair/stool,/obj/effect/landmark/start{name = "Mime"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white/side{dir = 4},/area/crew_quarters/theatre) +"aFJ" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white/side{dir = 4},/area/crew_quarters/theatre) +"aFK" = (/obj/machinery/door/airlock/maintenance{name = "Theatre Maintenance"; req_access_txt = "46"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/crew_quarters/theatre) +"aFL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/sortjunction{dir = 2; icon_state = "pipe-j1s"; sortType = 18},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aFM" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aFN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aFO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aFP" = (/obj/effect/decal/cleanable/cobweb/cobweb2,/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aFQ" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aFR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aFS" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aFT" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aFU" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aFV" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aFW" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aFX" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aFY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/power/apc{dir = 2; name = "Chapel APC"; pixel_x = 0; pixel_y = -24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/chapel/main) +"aFZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/airlock/maintenance{name = "Chapel Maintenance"; req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aGa" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/chapel/main) +"aGb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/black,/area/chapel/main) +"aGc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/chapel/main) +"aGd" = (/obj/machinery/door/window{dir = 8; name = "Mass Driver"; req_access_txt = "22"},/obj/machinery/mass_driver{dir = 4; id = "chapelgun"; name = "Holy Driver"},/turf/open/floor/plating/warnplate{dir = 8},/area/chapel/main) +"aGe" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/effect/landmark/event_spawn,/turf/open/floor/plating/warnplate{dir = 4},/area/chapel/main) +"aGf" = (/obj/machinery/door/poddoor{id = "chapelgun"; name = "Chapel Launcher Door"},/turf/open/floor/plating,/area/chapel/main) +"aGg" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular,/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) +"aGh" = (/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) +"aGi" = (/obj/machinery/computer/arcade,/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) +"aGj" = (/obj/structure/closet/wardrobe/green,/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) +"aGk" = (/obj/structure/closet/wardrobe/black,/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) +"aGl" = (/obj/structure/closet/wardrobe/mixed,/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) +"aGm" = (/obj/structure/closet/wardrobe/grey,/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) +"aGn" = (/obj/machinery/requests_console{department = "Arrival shuttle"; pixel_y = 30},/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) +"aGo" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/black,/area/shuttle/arrival) +"aGp" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"; dir = 8},/turf/open/floor/plasteel/black,/area/shuttle/arrival) +"aGq" = (/obj/machinery/power/apc{dir = 4; name = "Entry Hall APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable,/turf/open/floor/plasteel/arrival{dir = 4},/area/hallway/secondary/entry) +"aGr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/red/side{dir = 8},/area/security/checkpoint2) +"aGs" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel,/area/security/checkpoint2) +"aGt" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel,/area/security/checkpoint2) +"aGu" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel,/area/security/checkpoint2) +"aGv" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/security/checkpoint2) +"aGw" = (/turf/open/floor/plasteel/red/side{dir = 4},/area/security/checkpoint2) +"aGx" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/food/snacks/grown/wheat,/obj/item/weapon/reagent_containers/food/snacks/grown/watermelon,/obj/item/weapon/reagent_containers/food/snacks/grown/watermelon,/obj/item/weapon/reagent_containers/food/snacks/grown/watermelon,/obj/item/weapon/reagent_containers/food/snacks/grown/citrus/orange,/obj/item/weapon/reagent_containers/food/snacks/grown/grapes,/obj/item/weapon/reagent_containers/food/snacks/grown/cocoapod,/turf/open/floor/plasteel/green/side{dir = 4},/area/hallway/secondary/construction{name = "\improper Garden"}) +"aGy" = (/obj/machinery/door/airlock{name = "Garden"; req_access_txt = "0"},/turf/open/floor/plasteel,/area/hallway/secondary/construction{name = "\improper Garden"}) +"aGz" = (/turf/open/floor/plasteel,/area/storage/primary) +"aGA" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/storage/primary) +"aGB" = (/obj/structure/closet/crate{name = "Gold Crate"},/obj/item/stack/sheet/mineral/gold{pixel_x = -1; pixel_y = 5},/obj/item/stack/sheet/mineral/gold{pixel_y = 2},/obj/item/stack/sheet/mineral/gold{pixel_x = 1; pixel_y = -2},/obj/item/weapon/storage/belt/champion,/turf/open/floor/plasteel/vault{dir = 1},/area/ai_monitored/nuke_storage) +"aGC" = (/turf/open/floor/bluegrid,/area/ai_monitored/nuke_storage) +"aGD" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/bluegrid,/area/ai_monitored/nuke_storage) +"aGE" = (/obj/item/weapon/coin/silver{pixel_x = 7; pixel_y = 12},/obj/item/weapon/coin/silver{pixel_x = 12; pixel_y = 7},/obj/item/weapon/coin/silver{pixel_x = 4; pixel_y = 8},/obj/item/weapon/coin/silver{pixel_x = -6; pixel_y = 5},/obj/item/weapon/coin/silver{pixel_x = 5; pixel_y = -8},/obj/structure/closet/crate{name = "Silver Crate"},/turf/open/floor/plasteel/vault{dir = 4},/area/ai_monitored/nuke_storage) +"aGF" = (/obj/machinery/camera{c_tag = "Gateway"; dir = 4; network = list("SS13")},/obj/structure/table,/obj/structure/sign/biohazard{pixel_x = -32},/obj/item/weapon/storage/firstaid/regular,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/gateway) +"aGG" = (/obj/structure/table,/obj/item/weapon/paper/pamphlet,/turf/open/floor/plasteel,/area/gateway) +"aGH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/gateway) +"aGI" = (/obj/structure/table,/obj/item/device/radio/off{pixel_y = 6},/obj/item/device/radio/off{pixel_x = 6; pixel_y = 4},/obj/item/device/radio/off{pixel_x = -6; pixel_y = 4},/obj/item/device/radio/off,/turf/open/floor/plasteel,/area/gateway) +"aGJ" = (/obj/structure/table,/obj/machinery/recharger,/obj/structure/sign/biohazard{pixel_x = 32},/turf/open/floor/plasteel,/area/gateway) +"aGK" = (/obj/structure/reagent_dispensers/watertank,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint) +"aGL" = (/obj/structure/grille,/obj/structure/cable,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/ai_monitored/storage/eva) +"aGM" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_command{name = "EVA Storage"; req_access_txt = "18"},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) +"aGN" = (/obj/structure/grille,/obj/structure/cable,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/ai_monitored/storage/eva) +"aGO" = (/obj/structure/sign/securearea,/turf/closed/wall/r_wall,/area/ai_monitored/storage/eva) +"aGP" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/black,/area/ai_monitored/storage/eva) +"aGQ" = (/obj/machinery/camera{c_tag = "Dormitory South"; c_tag_order = 999; dir = 4},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/neutral/side{dir = 8},/area/crew_quarters/sleep) +"aGR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/neutral/side{dir = 4},/area/crew_quarters/sleep) +"aGS" = (/obj/machinery/door/airlock{name = "Unisex Restrooms"; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) +"aGT" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) +"aGU" = (/obj/machinery/power/apc{dir = 4; name = "Dormitory Bathrooms APC"; pixel_x = 26; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable,/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) +"aGV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/crew_quarters/toilet) +"aGW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/closed/wall,/area/crew_quarters/toilet) +"aGX" = (/obj/machinery/light/small{dir = 8},/obj/structure/dresser,/turf/open/floor/plasteel/redblue/redside,/area/crew_quarters/theatre) +"aGY" = (/turf/open/floor/plasteel/redblue/redside,/area/crew_quarters/theatre) +"aGZ" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 1},/turf/open/floor/plasteel/redblue/redside,/area/crew_quarters/theatre) +"aHa" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aHb" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aHc" = (/obj/effect/spawner/lootdrop/maintenance,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aHd" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aHe" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/space,/area/space) +"aHf" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aHg" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aHh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aHi" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aHj" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aHk" = (/turf/closed/wall,/area/library) +"aHl" = (/turf/closed/wall,/area/chapel/office) +"aHm" = (/obj/machinery/power/apc{dir = 2; name = "Chapel Office APC"; pixel_x = 0; pixel_y = -24},/obj/structure/cable,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/chapel/office) +"aHn" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aHo" = (/turf/open/floor/plasteel/black,/area/chapel/main) +"aHp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/chapel/main) +"aHq" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/computer/pod/old{density = 0; icon = 'icons/obj/airlock_machines.dmi'; icon_state = "airlock_control_standby"; id = "chapelgun"; name = "Mass Driver Controller"; pixel_x = 24; pixel_y = 0},/turf/open/floor/plasteel/black,/area/chapel/main) +"aHr" = (/obj/structure/chair,/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) +"aHs" = (/obj/structure/chair{dir = 8},/obj/effect/landmark{name = "JoinLate"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) +"aHt" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 8},/turf/open/floor/plasteel/black,/area/shuttle/arrival) +"aHu" = (/turf/open/floor/plasteel/arrival{dir = 4},/area/hallway/secondary/entry) +"aHv" = (/obj/machinery/camera{c_tag = "Security Checkpoint"; dir = 1},/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/light_switch{pixel_x = 6; pixel_y = -25},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/red/side{dir = 10},/area/security/checkpoint2) +"aHw" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/red/side,/area/security/checkpoint2) +"aHx" = (/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel/red/side,/area/security/checkpoint2) +"aHy" = (/obj/structure/chair/office/dark,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/red/side,/area/security/checkpoint2) +"aHz" = (/obj/machinery/recharger{pixel_y = 4},/obj/structure/table,/turf/open/floor/plasteel/red/side,/area/security/checkpoint2) +"aHA" = (/obj/item/device/radio/off,/obj/item/weapon/crowbar,/obj/item/device/assembly/flash/handheld,/obj/structure/table,/turf/open/floor/plasteel/red/side{dir = 6},/area/security/checkpoint2) +"aHB" = (/obj/structure/table/glass,/obj/item/weapon/cultivator,/obj/item/weapon/hatchet,/obj/item/weapon/crowbar,/obj/item/device/plant_analyzer,/obj/item/weapon/reagent_containers/glass/bucket,/turf/open/floor/plasteel/green/side{dir = 4},/area/hallway/secondary/construction{name = "\improper Garden"}) +"aHC" = (/obj/machinery/camera{c_tag = "Garden"; dir = 8; network = list("SS13")},/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/open/floor/plasteel,/area/hallway/secondary/construction{name = "\improper Garden"}) +"aHD" = (/obj/structure/table,/obj/item/stack/cable_coil{pixel_x = 2; pixel_y = -2},/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/weapon/screwdriver{pixel_y = 16},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel,/area/storage/primary) +"aHE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel,/area/storage/primary) +"aHF" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/storage/primary) +"aHG" = (/obj/effect/landmark/start{name = "Assistant"},/turf/open/floor/plasteel,/area/storage/primary) +"aHH" = (/obj/effect/landmark/start{name = "Assistant"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/storage/primary) +"aHI" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/storage/primary) +"aHJ" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/machinery/light{dir = 4},/turf/open/floor/plasteel,/area/storage/primary) +"aHK" = (/turf/open/floor/plasteel/vault{dir = 1},/area/ai_monitored/nuke_storage) +"aHL" = (/obj/machinery/light,/turf/open/floor/plasteel/vault{dir = 6},/area/ai_monitored/nuke_storage) +"aHM" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/vault,/area/ai_monitored/nuke_storage) +"aHN" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/camera/motion{c_tag = "Vault"; dir = 1; network = list("MiniSat")},/obj/machinery/light,/turf/open/floor/plasteel/vault{dir = 10},/area/ai_monitored/nuke_storage) +"aHO" = (/obj/structure/safe,/obj/item/clothing/head/bearpelt,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass,/obj/item/weapon/gun/projectile/revolver/russian,/obj/item/ammo_box/a357,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka/badminka,/turf/open/floor/plasteel/vault{dir = 4},/area/ai_monitored/nuke_storage) +"aHP" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint) +"aHQ" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -30},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/gateway) +"aHR" = (/obj/structure/chair/stool,/turf/open/floor/plasteel,/area/gateway) +"aHS" = (/turf/open/floor/plasteel,/area/gateway) +"aHT" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel,/area/gateway) +"aHU" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint) +"aHV" = (/obj/structure/table,/obj/item/stack/sheet/rglass{amount = 50},/obj/item/stack/sheet/rglass{amount = 50},/obj/item/stack/rods{amount = 50},/obj/item/stack/rods{amount = 50},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/warning{dir = 8},/area/ai_monitored/storage/eva) +"aHW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/ai_monitored/storage/eva) +"aHX" = (/turf/open/floor/plasteel/black,/area/ai_monitored/storage/eva) +"aHY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/ai_monitored/storage/eva) +"aHZ" = (/obj/item/stack/sheet/plasteel{amount = 10},/obj/structure/table,/turf/open/floor/plasteel/warning{dir = 4},/area/ai_monitored/storage/eva) +"aIa" = (/obj/machinery/light{dir = 8},/obj/structure/table,/obj/item/stack/sheet/plasteel{amount = 10},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) +"aIb" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/rglass{amount = 50},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) +"aIc" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/fore) +"aId" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/blue/corner,/area/hallway/primary/fore) +"aIe" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) +"aIf" = (/obj/machinery/light_switch{pixel_x = 27},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) +"aIg" = (/obj/structure/toilet{pixel_y = 8},/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) +"aIh" = (/obj/structure/toilet{pixel_y = 8},/obj/machinery/light/small{dir = 8},/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) +"aIi" = (/obj/machinery/light/small{dir = 8},/obj/machinery/recharge_station,/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) +"aIj" = (/obj/structure/table/wood,/obj/structure/mirror{pixel_x = -28},/obj/item/device/flashlight/lamp/bananalamp{pixel_y = 3},/turf/open/floor/plasteel/redblue,/area/crew_quarters/theatre) +"aIk" = (/obj/structure/chair/stool,/obj/effect/landmark/start{name = "Clown"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/redblue,/area/crew_quarters/theatre) +"aIl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/closet/secure_closet/freezer/cream_pie,/turf/open/floor/plasteel/redblue,/area/crew_quarters/theatre) +"aIm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/crew_quarters/theatre) +"aIn" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aIo" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aIp" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j1"; dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aIq" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aIr" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aIs" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aIt" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/sortjunction{dir = 4; icon_state = "pipe-j1s"; sortType = 19},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aIu" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aIv" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aIw" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/sortjunction{dir = 4; icon_state = "pipe-j1s"; sortType = 20},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aIx" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aIy" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aIz" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aIA" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aIB" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aIC" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aID" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aIE" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aIF" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/space,/area/space) +"aIG" = (/obj/structure/disposalpipe/sortjunction{dir = 4; icon_state = "pipe-j2s"; sortType = 17},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aIH" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aII" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/library) +"aIJ" = (/obj/machinery/door/airlock/maintenance{name = "Library Maintenance"; req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/library) +"aIK" = (/obj/structure/table/wood,/obj/item/weapon/storage/pill_bottle/dice,/turf/open/floor/wood,/area/library) +"aIL" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/stack/packageWrap,/turf/open/floor/wood,/area/library) +"aIM" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/turf/open/floor/wood,/area/library) +"aIN" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/chapel/office) +"aIO" = (/obj/machinery/door/airlock/maintenance{name = "Crematorium Maintenance"; req_access_txt = "27"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/chapel/office) +"aIP" = (/obj/structure/closet/wardrobe/chaplain_black,/obj/item/device/radio/intercom{pixel_y = 25},/turf/open/floor/plasteel/grimy,/area/chapel/office) +"aIQ" = (/obj/machinery/light/small{dir = 1},/obj/machinery/requests_console{department = "Chapel"; departmentType = 2; pixel_y = 30},/turf/open/floor/plasteel/grimy,/area/chapel/office) +"aIR" = (/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/camera{c_tag = "Chapel Office"; dir = 2; network = list("SS13")},/turf/open/floor/plasteel/grimy,/area/chapel/office) +"aIS" = (/obj/machinery/airalarm{pixel_y = 25},/turf/open/floor/plasteel/grimy,/area/chapel/office) +"aIT" = (/obj/structure/closet/coffin,/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/black,/area/chapel/office) +"aIU" = (/obj/structure/closet/coffin,/obj/machinery/door/window/eastleft{name = "Coffin Storage"; req_access_txt = "22"},/turf/open/floor/plasteel/black,/area/chapel/office) +"aIV" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/black,/area/chapel/main) +"aIW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/chapel/main) +"aIX" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/chapel/main) +"aIY" = (/turf/open/floor/plasteel/chapel{dir = 1},/area/chapel/main) +"aIZ" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/food/snacks/grown/poppy,/obj/item/weapon/reagent_containers/food/snacks/grown/harebell,/turf/open/floor/plasteel/chapel{dir = 4},/area/chapel/main) +"aJa" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/chapel/main) +"aJb" = (/turf/closed/wall/mineral/titanium,/area/shuttle/escape) +"aJc" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/escape) +"aJd" = (/obj/effect/landmark{name = "Marauder Entry"},/turf/open/space,/area/space) +"aJe" = (/obj/machinery/door/airlock/shuttle{name = "Arrivals Shuttle Airlock"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) +"aJf" = (/obj/effect/landmark{name = "Observer-Start"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) +"aJg" = (/obj/machinery/status_display{density = 0; layer = 3; pixel_x = 32; pixel_y = 0},/turf/open/floor/plasteel/white/corner{dir = 4},/area/hallway/secondary/entry) +"aJh" = (/obj/machinery/door/airlock/security{name = "Security Checkpoint"; req_access = null; req_access_txt = "1"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/security/checkpoint2) +"aJi" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/checkpoint2) +"aJj" = (/obj/machinery/door/firedoor,/obj/structure/table/reinforced,/obj/item/weapon/paper,/obj/machinery/door/window/westright{dir = 1; name = "Security Checkpoint"; req_access_txt = "1"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/delivery,/area/hallway/secondary/entry) +"aJk" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plasteel/green/side{dir = 5},/area/hallway/secondary/construction{name = "\improper Garden"}) +"aJl" = (/obj/effect/landmark/start{name = "Assistant"},/turf/open/floor/plasteel,/area/hallway/secondary/construction{name = "\improper Garden"}) +"aJm" = (/obj/item/weapon/reagent_containers/spray/plantbgone,/obj/item/weapon/reagent_containers/spray/pestspray{pixel_x = 3; pixel_y = 4},/obj/item/weapon/reagent_containers/glass/bottle/nutrient/ez,/obj/item/weapon/reagent_containers/glass/bottle/nutrient/rh{pixel_x = 2; pixel_y = 1},/obj/structure/table/glass,/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/green/side{dir = 9},/area/hallway/secondary/construction{name = "\improper Garden"}) +"aJn" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/turf/open/floor/plasteel,/area/storage/primary) +"aJo" = (/obj/structure/chair/stool{pixel_y = 8},/obj/effect/landmark/start{name = "Assistant"},/turf/open/floor/plasteel,/area/storage/primary) +"aJp" = (/obj/structure/table,/obj/item/weapon/weldingtool,/obj/item/weapon/crowbar,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/turf/open/floor/plasteel,/area/storage/primary) +"aJq" = (/obj/structure/sign/securearea,/turf/closed/wall/r_wall,/area/ai_monitored/nuke_storage) +"aJr" = (/obj/machinery/door/airlock/vault{icon_state = "door_locked"; locked = 1; req_access_txt = "53"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/vault{dir = 5},/area/ai_monitored/nuke_storage) +"aJs" = (/obj/machinery/light_switch{pixel_x = -20; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel,/area/gateway) +"aJt" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/gateway) +"aJu" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/gateway) +"aJv" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/gateway) +"aJw" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/closet/l3closet/scientist,/turf/open/floor/plasteel/warning{dir = 9},/area/gateway) +"aJx" = (/obj/structure/grille,/obj/structure/window/fulltile{obj_integrity = 25},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint) +"aJy" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/weapon/crowbar,/turf/open/floor/plasteel/warning{dir = 8},/area/ai_monitored/storage/eva) +"aJz" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/ai_monitored/storage/eva) +"aJA" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel/black,/area/ai_monitored/storage/eva) +"aJB" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel/warning{dir = 4},/area/ai_monitored/storage/eva) +"aJC" = (/obj/machinery/door/airlock/command{cyclelinkeddir = 1; name = "Command Tool Storage"; req_access = null; req_access_txt = "19"},/turf/open/floor/plasteel/black,/area/ai_monitored/storage/eva) +"aJD" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/central) +"aJE" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aJF" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/open/floor/plasteel/blue/side{dir = 4},/area/hallway/primary/central) +"aJG" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Dormitory"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/neutral/side{dir = 8},/area/crew_quarters/sleep) +"aJH" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Dormitory"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/neutral/side{dir = 4},/area/crew_quarters/sleep) +"aJI" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/structure/mirror{pixel_x = -28},/obj/effect/landmark/start{name = "Assistant"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) +"aJJ" = (/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) +"aJK" = (/obj/machinery/door/airlock{name = "Unit 1"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) +"aJL" = (/obj/machinery/door/airlock{name = "Unit 2"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) +"aJM" = (/obj/machinery/door/airlock{name = "Unit B"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) +"aJN" = (/obj/structure/table/wood,/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/item/weapon/storage/crayons{pixel_x = 3; pixel_y = 3},/obj/item/weapon/reagent_containers/food/snacks/pie/cream{pixel_x = -3; pixel_y = -3},/turf/open/floor/plasteel/redblue,/area/crew_quarters/theatre) +"aJO" = (/turf/open/floor/plasteel/redblue,/area/crew_quarters/theatre) +"aJP" = (/obj/structure/closet/secure_closet/freezer/cream_pie,/turf/open/floor/plasteel/redblue,/area/crew_quarters/theatre) +"aJQ" = (/obj/machinery/power/apc{dir = 8; name = "Theatre APC"; pixel_x = -25},/obj/structure/cable,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plating,/area/crew_quarters/theatre) +"aJR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aJS" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aJT" = (/obj/machinery/power/apc{dir = 2; name = "Bar APC"; pixel_y = -24},/obj/structure/cable,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/crew_quarters/bar) +"aJU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/crew_quarters/bar) +"aJV" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/maintenance{name = "Bar Storage Maintenance"; req_access_txt = "25"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/crew_quarters/bar) +"aJW" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/closed/wall,/area/crew_quarters/bar) +"aJX" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=2"; freq = 1400; location = "Bar"},/obj/structure/plasticflaps{opacity = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/bot{dir = 2},/area/crew_quarters/bar) +"aJY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/crew_quarters/kitchen) +"aJZ" = (/obj/machinery/power/apc{dir = 2; name = "Kitchen APC"; pixel_y = -24},/obj/structure/cable,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/crew_quarters/kitchen) +"aKa" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aKb" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aKc" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aKd" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aKe" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/sortjunction{dir = 4; icon_state = "pipe-j1s"; sortType = 21},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aKf" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aKg" = (/obj/machinery/power/apc{dir = 2; name = "Hydroponics APC"; pixel_y = -24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plating,/area/hydroponics) +"aKh" = (/turf/closed/wall,/area/hydroponics) +"aKi" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/hydroponics) +"aKj" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aKk" = (/obj/structure/filingcabinet,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/library) +"aKl" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/wood,/area/library) +"aKm" = (/obj/structure/chair/office/dark,/obj/machinery/camera{c_tag = "Library North"; dir = 2; network = list("SS13")},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/wood,/area/library) +"aKn" = (/obj/structure/chair/office/dark,/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/effect/landmark/start{name = "Assistant"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/wood,/area/library) +"aKo" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/wood,/area/library) +"aKp" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/wood,/area/library) +"aKq" = (/obj/structure/bodycontainer/crematorium,/obj/effect/landmark{name = "revenantspawn"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/chapel/office) +"aKr" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/chapel/office) +"aKs" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/turf/open/floor/plasteel/grimy,/area/chapel/office) +"aKt" = (/obj/effect/landmark/start{name = "Chaplain"},/obj/structure/chair,/turf/open/floor/plasteel/grimy,/area/chapel/office) +"aKu" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/obj/item/weapon/storage/crayons,/turf/open/floor/plasteel/grimy,/area/chapel/office) +"aKv" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/grimy,/area/chapel/office) +"aKw" = (/obj/structure/closet/coffin,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/black,/area/chapel/office) +"aKx" = (/turf/open/floor/plasteel/chapel{dir = 8},/area/chapel/main) +"aKy" = (/obj/structure/table/glass,/turf/open/floor/plasteel/chapel,/area/chapel/main) +"aKz" = (/turf/open/floor/mineral/titanium,/turf/closed/wall/mineral/titanium/interior,/area/shuttle/escape) +"aKA" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"aKB" = (/obj/structure/chair{dir = 1},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"aKC" = (/obj/machinery/computer/emergency_shuttle,/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"aKD" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/crowbar,/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"aKE" = (/obj/structure/chair{dir = 1},/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) +"aKF" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"aKG" = (/turf/open/floor/plasteel/bot,/area/hallway/secondary/entry) +"aKH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/bot,/area/hallway/secondary/entry) +"aKI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/bot,/area/hallway/secondary/entry) +"aKJ" = (/obj/machinery/camera{c_tag = "Arrivals Lounge"; dir = 2},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"aKK" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"aKL" = (/obj/structure/sign/map/left{pixel_y = 32},/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"aKM" = (/obj/structure/sign/map/right{pixel_y = 32},/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"aKN" = (/obj/structure/table/glass,/obj/item/weapon/hatchet,/obj/item/weapon/cultivator,/obj/item/weapon/crowbar,/obj/item/weapon/reagent_containers/glass/bucket,/obj/item/device/plant_analyzer,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/plasteel/green/side{dir = 4},/area/hallway/secondary/construction{name = "\improper Garden"}) +"aKO" = (/obj/item/weapon/storage/bag/plants/portaseeder,/obj/structure/table/glass,/obj/item/device/plant_analyzer,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/obj/machinery/light_switch{pixel_x = -6; pixel_y = -25},/turf/open/floor/plasteel/green/side{dir = 8},/area/hallway/secondary/construction{name = "\improper Garden"}) +"aKP" = (/obj/structure/table,/obj/item/weapon/wrench,/obj/item/device/analyzer,/turf/open/floor/plasteel,/area/storage/primary) +"aKQ" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plasteel,/area/storage/primary) +"aKR" = (/obj/structure/table,/obj/item/weapon/crowbar,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/clothing/gloves/color/fyellow,/turf/open/floor/plasteel,/area/storage/primary) +"aKS" = (/obj/structure/table,/obj/item/weapon/storage/belt/utility,/obj/item/weapon/storage/firstaid/regular,/turf/open/floor/plasteel,/area/storage/primary) +"aKT" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel,/area/storage/primary) +"aKU" = (/turf/open/floor/plasteel/delivery,/area/storage/primary) +"aKV" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; freq = 1400; location = "Tool Storage"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/bot,/area/storage/primary) +"aKW" = (/obj/structure/disposalpipe/trunk,/obj/machinery/disposal/bin,/turf/open/floor/plasteel,/area/storage/primary) +"aKX" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/hallway/primary/port) +"aKY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/vault{dir = 5},/area/hallway/primary/port) +"aKZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/gateway) +"aLa" = (/obj/machinery/button/door{id = "stationawaygate"; name = "Gateway Access Shutter Control"; pixel_x = -1; pixel_y = -24; req_access_txt = "31"},/turf/open/floor/plasteel,/area/gateway) +"aLb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/gateway) +"aLc" = (/obj/machinery/light{dir = 4},/obj/structure/closet/secure_closet/exile,/turf/open/floor/plasteel/warning{dir = 10},/area/gateway) +"aLd" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/item/weapon/extinguisher,/obj/item/weapon/extinguisher,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/warning{dir = 8},/area/ai_monitored/storage/eva) +"aLe" = (/obj/machinery/camera{c_tag = "EVA South"; dir = 1},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) +"aLf" = (/obj/structure/tank_dispenser/oxygen,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/open/floor/plasteel/warning{dir = 4},/area/ai_monitored/storage/eva) +"aLg" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/hallway/primary/central) +"aLh" = (/turf/open/floor/plasteel/blue/side{dir = 9},/area/hallway/primary/central) +"aLi" = (/obj/machinery/light{dir = 1},/obj/machinery/camera{c_tag = "Central Hallway North"; dir = 2},/turf/open/floor/plasteel/blue/side{dir = 1},/area/hallway/primary/central) +"aLj" = (/turf/open/floor/plasteel/blue/corner{dir = 1},/area/hallway/primary/central) +"aLk" = (/turf/open/floor/plasteel,/area/hallway/primary/central) +"aLl" = (/obj/structure/sign/directions/security{dir = 1; icon_state = "direction_sec"; pixel_x = 32; pixel_y = 40},/obj/structure/sign/directions/medical{dir = 4; icon_state = "direction_med"; pixel_x = 32; pixel_y = 32},/obj/structure/sign/directions/evac{dir = 4; icon_state = "direction_evac"; pixel_x = 32; pixel_y = 24},/turf/open/floor/plasteel/blue/corner{dir = 4},/area/hallway/primary/central) +"aLm" = (/turf/open/floor/plasteel/blue/side{dir = 1},/area/hallway/primary/central) +"aLn" = (/turf/open/floor/plasteel/blue/side{dir = 5},/area/hallway/primary/central) +"aLo" = (/turf/closed/wall,/area/hallway/primary/central) +"aLp" = (/obj/machinery/vending/cola,/turf/open/floor/plasteel/black,/area/hallway/primary/central) +"aLq" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/neutral/side{dir = 8},/area/hallway/primary/central) +"aLr" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/neutral/side{dir = 4},/area/hallway/primary/central) +"aLs" = (/obj/machinery/camera{c_tag = "Dormitory Toilets"; dir = 1},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) +"aLt" = (/obj/machinery/light/small,/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) +"aLu" = (/obj/machinery/door/airlock{name = "Theatre Backstage"; req_access_txt = "46"},/turf/open/floor/plasteel,/area/crew_quarters/theatre) +"aLv" = (/obj/machinery/door/airlock/maintenance{name = "Bar Maintenance"; req_access_txt = "12"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aLw" = (/turf/closed/wall,/area/crew_quarters/bar) +"aLx" = (/obj/item/weapon/reagent_containers/food/drinks/shaker,/obj/item/weapon/gun/projectile/revolver/doublebarrel,/obj/structure/table/wood,/turf/open/floor/wood,/area/crew_quarters/bar) +"aLy" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/crew_quarters/bar) +"aLz" = (/obj/structure/sink/kitchen{pixel_y = 28},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/wood,/area/crew_quarters/bar) +"aLA" = (/obj/machinery/door/window/southleft{base_state = "left"; dir = 2; icon_state = "left"; name = "Bar Delivery"; req_access_txt = "25"},/turf/open/floor/plasteel/delivery,/area/crew_quarters/bar) +"aLB" = (/turf/closed/wall,/area/crew_quarters/kitchen) +"aLC" = (/obj/machinery/door/airlock/maintenance{name = "Kitchen Maintenance"; req_access_txt = "28"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/crew_quarters/kitchen) +"aLD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/crew_quarters/kitchen) +"aLE" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=2"; freq = 1400; location = "Kitchen"},/obj/structure/plasticflaps{opacity = 1},/turf/open/floor/plasteel/bot{dir = 2},/area/crew_quarters/kitchen) +"aLF" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=2"; freq = 1400; location = "Hydroponics"},/obj/structure/plasticflaps{opacity = 1},/turf/open/floor/plasteel/bot{dir = 2},/area/hydroponics) +"aLG" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/maintenance{name = "Hydroponics Maintenance"; req_access_txt = "35"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/hydroponics) +"aLH" = (/obj/structure/table,/obj/machinery/reagentgrinder,/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) +"aLI" = (/obj/structure/table,/obj/item/weapon/book/manual/hydroponics_pod_people,/obj/item/weapon/paper/hydroponics,/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) +"aLJ" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/wood,/area/library) +"aLK" = (/obj/structure/chair/office/dark{dir = 4},/turf/open/floor/wood,/area/library) +"aLL" = (/obj/structure/table/wood,/obj/item/weapon/folder/yellow,/obj/item/weapon/pen,/turf/open/floor/wood,/area/library) +"aLM" = (/obj/structure/table/wood,/obj/structure/disposalpipe/segment,/turf/open/floor/wood,/area/library) +"aLN" = (/obj/structure/chair/office/dark{dir = 8},/turf/open/floor/wood,/area/library) +"aLO" = (/obj/machinery/newscaster{pixel_x = 30},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/wood,/area/library) +"aLP" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plasteel/black,/area/chapel/office) +"aLQ" = (/obj/structure/disposalpipe/segment,/obj/machinery/button/crematorium{pixel_x = 25},/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/chapel/office) +"aLR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/chapel/office) +"aLS" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp{pixel_y = 10},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/grimy,/area/chapel/office) +"aLT" = (/obj/structure/table/wood,/obj/item/weapon/pen,/obj/item/weapon/reagent_containers/food/drinks/bottle/holywater,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/grimy,/area/chapel/office) +"aLU" = (/obj/structure/table/wood,/obj/item/weapon/nullrod,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/grimy,/area/chapel/office) +"aLV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/grimy,/area/chapel/office) +"aLW" = (/obj/structure/closet/coffin,/obj/machinery/door/window/eastleft{dir = 8; name = "Coffin Storage"; req_access_txt = "22"},/turf/open/floor/plasteel/black,/area/chapel/office) +"aLX" = (/obj/structure/table/glass,/turf/open/floor/plasteel/chapel{dir = 4},/area/chapel/main) +"aLY" = (/obj/machinery/computer/atmos_alert,/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"aLZ" = (/obj/structure/chair{dir = 8},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"aMa" = (/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"aMb" = (/obj/structure/chair{dir = 4},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"aMc" = (/obj/machinery/computer/security,/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"aMd" = (/obj/structure/closet/emcloset,/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) +"aMe" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/open/floor/mineral/titanium/blue,/area/shuttle/arrival) +"aMf" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_l"; dir = 8},/turf/open/floor/plasteel/black,/area/shuttle/arrival) +"aMg" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/neutral/corner{dir = 2},/area/hallway/secondary/entry) +"aMh" = (/turf/open/floor/plasteel/neutral/side,/area/hallway/secondary/entry) +"aMi" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/neutral/side,/area/hallway/secondary/entry) +"aMj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/neutral/side,/area/hallway/secondary/entry) +"aMk" = (/turf/open/floor/plasteel/neutral/corner{dir = 8},/area/hallway/secondary/entry) +"aMl" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/hallway/secondary/construction{name = "\improper Garden"}) +"aMm" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Garden"},/turf/open/floor/plasteel,/area/hallway/secondary/construction{name = "\improper Garden"}) +"aMn" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/storage/primary) +"aMo" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Primary Tool Storage"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/storage/primary) +"aMp" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Primary Tool Storage"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/storage/primary) +"aMq" = (/obj/structure/grille,/obj/structure/disposalpipe/segment,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/storage/primary) +"aMr" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/hallway/primary/port) +"aMs" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/hallway/primary/port) +"aMt" = (/obj/structure/grille,/obj/structure/cable,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/hallway/primary/port) +"aMu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/door/firedoor,/turf/open/floor/plasteel/vault{dir = 5},/area/hallway/primary/port) +"aMv" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/obj/structure/cable,/turf/open/floor/plating,/area/hallway/primary/port) +"aMw" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/hallway/primary/port) +"aMx" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/fpmaint) +"aMy" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{icon_state = "door_closed"; lockdownbyai = 0; locked = 0; name = "Gateway Access"; req_access_txt = "62"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/gateway) +"aMz" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters{id = "stationawaygate"; name = "Gateway Access Shutters"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/gateway) +"aMA" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters{id = "stationawaygate"; name = "Gateway Access Shutters"},/turf/open/floor/plasteel,/area/gateway) +"aMB" = (/obj/structure/sign/securearea,/turf/closed/wall/r_wall,/area/gateway) +"aMC" = (/turf/open/floor/plasteel/blue/side{dir = 8},/area/hallway/primary/central) +"aMD" = (/turf/open/floor/plasteel/blue/side{dir = 4},/area/hallway/primary/central) +"aME" = (/obj/machinery/vending/snack,/turf/open/floor/plasteel/black,/area/hallway/primary/central) +"aMF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/neutral/side{dir = 4},/area/hallway/primary/central) +"aMG" = (/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/light{dir = 1},/turf/open/floor/wood,/area/crew_quarters/bar) +"aMH" = (/turf/open/floor/wood,/area/crew_quarters/bar) +"aMI" = (/obj/machinery/airalarm{dir = 2; pixel_y = 24},/turf/open/floor/wood,/area/crew_quarters/bar) +"aMJ" = (/obj/item/device/radio/intercom{pixel_y = 25},/obj/machinery/camera{c_tag = "Theatre Stage"; dir = 2},/turf/open/floor/wood,/area/crew_quarters/bar) +"aMK" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/wood,/area/crew_quarters/bar) +"aML" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"aMM" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"aMN" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"aMO" = (/obj/machinery/reagentgrinder,/obj/structure/table/wood,/turf/open/floor/wood,/area/crew_quarters/bar) +"aMP" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/wood,/area/crew_quarters/bar) +"aMQ" = (/obj/machinery/camera{c_tag = "Bar Storage"},/turf/open/floor/wood,/area/crew_quarters/bar) +"aMR" = (/obj/structure/closet/secure_closet/freezer/meat,/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) +"aMS" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) +"aMT" = (/obj/machinery/door/window/southleft{base_state = "left"; dir = 2; icon_state = "left"; name = "Kitchen Delivery"; req_access_txt = "28"},/turf/open/floor/plasteel/delivery,/area/crew_quarters/kitchen) +"aMU" = (/obj/machinery/door/window/eastright{name = "Hydroponics Delivery"; req_access_txt = "35"},/turf/open/floor/plasteel/delivery,/area/hydroponics) +"aMV" = (/obj/machinery/light_switch{pixel_y = 28},/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) +"aMW" = (/obj/structure/sink{pixel_y = 30},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) +"aMX" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) +"aMY" = (/obj/structure/closet/wardrobe/botanist,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) +"aMZ" = (/obj/structure/closet/secure_closet/hydroponics,/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) +"aNa" = (/obj/machinery/airalarm{pixel_y = 24},/obj/machinery/camera{c_tag = "Hydroponics Storage"},/obj/machinery/light/small{dir = 1},/obj/machinery/plantgenes,/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) +"aNb" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) +"aNc" = (/obj/structure/table,/obj/item/weapon/reagent_containers/spray/plantbgone{pixel_x = 0; pixel_y = 3},/obj/item/weapon/reagent_containers/spray/plantbgone{pixel_x = 8; pixel_y = 8},/obj/item/weapon/reagent_containers/spray/plantbgone{pixel_x = 13; pixel_y = 5},/obj/item/weapon/watertank,/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) +"aNd" = (/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/open/floor/wood,/area/library) +"aNe" = (/obj/structure/chair/office/dark{dir = 4},/obj/effect/landmark/event_spawn,/turf/open/floor/wood,/area/library) +"aNf" = (/obj/structure/table/wood,/turf/open/floor/wood,/area/library) +"aNg" = (/obj/structure/table/wood,/obj/structure/disposalpipe/segment,/obj/item/toy/cards/deck/cas,/obj/item/toy/cards/deck/cas/black{pixel_x = -2; pixel_y = 6},/turf/open/floor/wood,/area/library) +"aNh" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/wood,/area/library) +"aNi" = (/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/camera{c_tag = "Chapel Crematorium"; dir = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/chapel/office) +"aNj" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/black,/area/chapel/office) +"aNk" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock{name = "Crematorium"; req_access_txt = "27"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/chapel/office) +"aNl" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/grimy,/area/chapel/office) +"aNm" = (/obj/structure/chair{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/grimy,/area/chapel/office) +"aNn" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/grimy,/area/chapel/office) +"aNo" = (/turf/open/floor/plasteel/grimy,/area/chapel/office) +"aNp" = (/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/black,/area/chapel/main) +"aNq" = (/obj/machinery/computer/crew,/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"aNr" = (/obj/structure/chair{dir = 8},/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"aNs" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -29},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"aNt" = (/obj/machinery/button/flasher{id = "cockpit_flasher"; pixel_x = 6; pixel_y = -24},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"aNu" = (/obj/machinery/computer/communications,/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"aNv" = (/obj/machinery/door/airlock/shuttle{name = "Arrivals Shuttle Airlock"},/obj/docking_port/mobile{dwidth = 5; height = 7; id = "arrival"; name = "arrival shuttle"; port_angle = -90; preferred_direction = 8; width = 15},/obj/docking_port/stationary{dwidth = 5; height = 7; id = "arrival_home"; name = "port bay 1"; width = 15},/turf/open/floor/plating,/area/shuttle/arrival) +"aNw" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/plasteel/warning{dir = 8},/area/hallway/secondary/entry) +"aNx" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/hallway/secondary/entry) +"aNy" = (/obj/structure/chair/comfy/beige,/obj/effect/landmark/start{name = "Assistant"},/turf/open/floor/plasteel/grimy,/area/hallway/secondary/entry) +"aNz" = (/obj/structure/chair/comfy/beige,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/grimy,/area/hallway/secondary/entry) +"aNA" = (/turf/open/floor/plasteel/grimy,/area/hallway/secondary/entry) +"aNB" = (/obj/structure/chair/comfy/beige,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/grimy,/area/hallway/secondary/entry) +"aNC" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green{pixel_x = 1; pixel_y = 5},/turf/open/floor/plasteel/grimy,/area/hallway/secondary/entry) +"aND" = (/obj/machinery/vending/cigarette,/turf/open/floor/plasteel/black,/area/hallway/secondary/entry) +"aNE" = (/turf/open/floor/plasteel/neutral/side{dir = 8},/area/hallway/secondary/entry) +"aNF" = (/obj/machinery/door/firedoor,/obj/machinery/newscaster{pixel_y = 32},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"aNG" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/hallway/primary/port) +"aNH" = (/turf/open/floor/plasteel,/area/hallway/primary/port) +"aNI" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{name = "Port Hall APC"; dir = 1; pixel_y = 26},/turf/open/floor/plasteel,/area/hallway/primary/port) +"aNJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel,/area/hallway/primary/port) +"aNK" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/hallway/primary/port) +"aNL" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/hallway/primary/port) +"aNM" = (/obj/machinery/light{dir = 1},/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/turf/open/floor/plasteel/warning/corner{dir = 8},/area/hallway/primary/port) +"aNN" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/primary/port) +"aNO" = (/obj/machinery/camera{c_tag = "Port Hallway 2"; dir = 2},/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/primary/port) +"aNP" = (/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/primary/port) +"aNQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/primary/port) +"aNR" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/warning/corner{dir = 4},/area/hallway/primary/port) +"aNS" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/port) +"aNT" = (/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/warning/corner{dir = 8},/area/hallway/primary/port) +"aNU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/primary/port) +"aNV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/primary/port) +"aNW" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/warning/corner{dir = 4},/area/hallway/primary/port) +"aNX" = (/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = 30},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aNY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/primary/central) +"aNZ" = (/obj/machinery/camera{c_tag = "Central Hallway North-West"; dir = 2},/obj/machinery/airalarm{pixel_y = 23},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aOa" = (/obj/machinery/light{dir = 1},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aOb" = (/turf/open/floor/plasteel/blue/corner{dir = 4},/area/hallway/primary/central) +"aOc" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/hallway/primary/central) +"aOd" = (/turf/open/floor/plasteel{icon_state = "L1"},/area/hallway/primary/central) +"aOe" = (/turf/open/floor/plasteel{icon_state = "L3"},/area/hallway/primary/central) +"aOf" = (/turf/open/floor/plasteel{icon_state = "L5"},/area/hallway/primary/central) +"aOg" = (/turf/open/floor/plasteel{icon_state = "L7"},/area/hallway/primary/central) +"aOh" = (/turf/open/floor/plasteel{icon_state = "L9"},/area/hallway/primary/central) +"aOi" = (/turf/open/floor/plasteel{icon_state = "L11"},/area/hallway/primary/central) +"aOj" = (/turf/open/floor/plasteel{desc = ""; icon_state = "L13"; name = "floor"},/area/hallway/primary/central) +"aOk" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aOl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/hallway/primary/central) +"aOm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/central) +"aOn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/hallway/primary/central) +"aOo" = (/obj/machinery/newscaster{pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/primary/central) +"aOp" = (/obj/machinery/camera{c_tag = "Central Hallway North-East"; dir = 2},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aOq" = (/obj/machinery/light{dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aOr" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aOs" = (/obj/machinery/airalarm{pixel_y = 23},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aOt" = (/obj/structure/piano{tag = "icon-piano"; icon_state = "piano"},/turf/open/floor/wood,/area/crew_quarters/bar) +"aOu" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/wood,/area/crew_quarters/bar) +"aOv" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/wood,/area/crew_quarters/bar) +"aOw" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/wood,/area/crew_quarters/bar) +"aOx" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"aOy" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"aOz" = (/obj/machinery/computer/slot_machine,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"aOA" = (/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/light/small{dir = 8},/obj/structure/reagent_dispensers/beerkeg,/turf/open/floor/wood,/area/crew_quarters/bar) +"aOB" = (/obj/structure/disposalpipe/segment,/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/crew_quarters/bar) +"aOC" = (/obj/machinery/vending/cola,/turf/open/floor/wood,/area/crew_quarters/bar) +"aOD" = (/obj/machinery/vending/coffee,/turf/open/floor/wood,/area/crew_quarters/bar) +"aOE" = (/obj/machinery/icecream_vat,/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) +"aOF" = (/obj/machinery/chem_master/condimaster{name = "CondiMaster Neo"},/obj/machinery/camera{c_tag = "Kitchen Cold Room"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) +"aOG" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) +"aOH" = (/obj/structure/closet/crate/hydroponics,/obj/item/weapon/shovel/spade,/obj/item/weapon/wrench,/obj/item/weapon/reagent_containers/glass/bucket,/obj/item/weapon/wirecutters,/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) +"aOI" = (/obj/machinery/light/small,/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) +"aOJ" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) +"aOK" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) +"aOL" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = -31},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) +"aOM" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) +"aON" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) +"aOO" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) +"aOP" = (/obj/machinery/chem_master/condimaster,/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) +"aOQ" = (/turf/open/floor/wood,/area/library) +"aOR" = (/obj/structure/chair/office/dark{dir = 1},/turf/open/floor/wood,/area/library) +"aOS" = (/obj/structure/chair/office/dark{dir = 1},/obj/structure/disposalpipe/segment,/turf/open/floor/wood,/area/library) +"aOT" = (/obj/structure/bodycontainer/morgue,/obj/effect/landmark{name = "revenantspawn"},/turf/open/floor/plasteel/black,/area/chapel/office) +"aOU" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel/black,/area/chapel/office) +"aOV" = (/obj/structure/table/wood,/obj/item/clothing/under/burial,/obj/item/clothing/under/burial,/obj/item/clothing/under/burial,/obj/item/clothing/under/burial,/obj/item/clothing/under/burial,/obj/item/clothing/under/burial,/turf/open/floor/plasteel/grimy,/area/chapel/office) +"aOW" = (/obj/machinery/camera{c_tag = "Chapel North"; dir = 2; network = list("SS13")},/turf/open/floor/plasteel/black,/area/chapel/main) +"aOX" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/chapel/main) +"aOY" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/chapel/main) +"aOZ" = (/turf/closed/wall,/area/hallway/secondary/exit) +"aPa" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/hallway/secondary/exit) +"aPb" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Cockpit"; req_access_txt = "19"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"aPc" = (/obj/machinery/status_display,/turf/closed/wall/mineral/titanium,/area/shuttle/escape) +"aPd" = (/obj/machinery/holopad,/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"aPe" = (/obj/structure/table/wood,/turf/open/floor/plasteel/grimy,/area/hallway/secondary/entry) +"aPf" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/snacks/chips,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/carpet,/area/hallway/secondary/entry) +"aPg" = (/turf/open/floor/carpet,/area/hallway/secondary/entry) +"aPh" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/carpet,/area/hallway/secondary/entry) +"aPi" = (/obj/structure/chair/comfy/beige{dir = 8},/turf/open/floor/plasteel/grimy,/area/hallway/secondary/entry) +"aPj" = (/obj/machinery/vending/coffee,/turf/open/floor/plasteel/black,/area/hallway/secondary/entry) +"aPk" = (/turf/open/floor/goonplaque,/area/hallway/secondary/entry) +"aPl" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=CHW"; location = "Lockers"},/turf/open/floor/plasteel,/area/hallway/primary/port) +"aPm" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel,/area/hallway/primary/port) +"aPn" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel,/area/hallway/primary/port) +"aPo" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/hallway/primary/port) +"aPp" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel,/area/hallway/primary/port) +"aPq" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/hallway/primary/port) +"aPr" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/hallway/primary/port) +"aPs" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel,/area/hallway/primary/port) +"aPt" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel,/area/hallway/primary/port) +"aPu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) +"aPv" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/primary/port) +"aPw" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/port) +"aPx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/port) +"aPy" = (/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/primary/port) +"aPz" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) +"aPA" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Central Access"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aPB" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aPC" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/primary/central) +"aPD" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aPE" = (/turf/open/floor/plasteel{icon_state = "L2"},/area/hallway/primary/central) +"aPF" = (/turf/open/floor/plasteel{icon_state = "L4"},/area/hallway/primary/central) +"aPG" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=Lockers"; location = "EVA"},/turf/open/floor/plasteel{icon_state = "L6"},/area/hallway/primary/central) +"aPH" = (/turf/open/floor/plasteel{icon_state = "L8"},/area/hallway/primary/central) +"aPI" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=Security"; location = "EVA2"},/turf/open/floor/plasteel{icon_state = "L10"},/area/hallway/primary/central) +"aPJ" = (/turf/open/floor/plasteel{icon_state = "L12"},/area/hallway/primary/central) +"aPK" = (/turf/open/floor/plasteel{desc = ""; icon_state = "L14"},/area/hallway/primary/central) +"aPL" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/hallway/primary/central) +"aPM" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=EVA2"; location = "Dorm"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aPN" = (/obj/structure/table/wood,/obj/item/device/instrument/guitar{pixel_x = -7},/obj/item/device/instrument/eguitar{pixel_x = 5},/turf/open/floor/wood,/area/crew_quarters/bar) +"aPO" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/wood,/area/crew_quarters/bar) +"aPP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/effect/landmark/event_spawn,/turf/open/floor/wood,/area/crew_quarters/bar) +"aPQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/wood,/area/crew_quarters/bar) +"aPR" = (/obj/machinery/door/window{dir = 4; name = "Theatre Stage"; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/wood,/area/crew_quarters/bar) +"aPS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"aPT" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"aPU" = (/obj/machinery/computer/slot_machine,/obj/machinery/light/small{dir = 4},/obj/machinery/status_display{density = 0; layer = 3; pixel_x = 32; pixel_y = 0},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"aPV" = (/obj/structure/closet/secure_closet/bar{req_access_txt = "25"},/turf/open/floor/wood,/area/crew_quarters/bar) +"aPW" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/wood,/area/crew_quarters/bar) +"aPX" = (/obj/structure/closet/gmcloset,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/cable_coil,/obj/item/device/flashlight/lamp,/obj/item/device/flashlight/lamp/green,/turf/open/floor/wood,/area/crew_quarters/bar) +"aPY" = (/obj/structure/kitchenspike,/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) +"aPZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/mob/living/simple_animal/hostile/retaliate/goat{name = "Pete"},/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) +"aQa" = (/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) +"aQb" = (/obj/machinery/light/small{dir = 4},/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/closet/chefcloset,/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) +"aQc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/hydroponics) +"aQd" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/hydroponics) +"aQe" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Hydroponics"; req_access_txt = "35"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/hydrofloor,/area/hydroponics) +"aQf" = (/obj/machinery/bookbinder{pixel_y = 0},/turf/open/floor/wood,/area/library) +"aQg" = (/obj/structure/disposalpipe/segment,/turf/open/floor/wood,/area/library) +"aQh" = (/obj/machinery/photocopier,/turf/open/floor/wood,/area/library) +"aQi" = (/obj/machinery/door/airlock/glass{name = "Chapel Office"; req_access_txt = "22"},/turf/open/floor/plasteel/black,/area/chapel/office) +"aQj" = (/obj/machinery/door/morgue{name = "Confession Booth (Chaplain)"; req_access_txt = "22"},/turf/open/floor/plasteel/black,/area/chapel/main) +"aQk" = (/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1480; name = "Confessional Intercom"; pixel_x = 25},/obj/structure/chair,/turf/open/floor/plasteel/black,/area/chapel/main) +"aQl" = (/obj/structure/chair,/turf/open/floor/plasteel/red/side{dir = 9},/area/hallway/secondary/exit) +"aQm" = (/obj/structure/chair,/turf/open/floor/plasteel/red/side{dir = 1},/area/hallway/secondary/exit) +"aQn" = (/obj/machinery/light{dir = 1},/obj/structure/chair,/turf/open/floor/plasteel/red/side{dir = 1},/area/hallway/secondary/exit) +"aQo" = (/obj/structure/chair,/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/secondary/exit) +"aQp" = (/obj/structure/chair,/turf/open/floor/plasteel/warning{dir = 5},/area/hallway/secondary/exit) +"aQq" = (/obj/structure/chair,/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/escape) +"aQr" = (/obj/machinery/flasher{id = "cockpit_flasher"; pixel_x = 6; pixel_y = 24},/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"aQs" = (/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"aQt" = (/obj/structure/closet/emcloset,/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"aQu" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/crowbar,/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"aQv" = (/obj/machinery/vending/snack,/turf/open/floor/plasteel/warning{dir = 9},/area/hallway/secondary/entry) +"aQw" = (/obj/item/device/radio/beacon,/obj/machinery/camera{c_tag = "Arrivals Bay 1 South"},/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/secondary/entry) +"aQx" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/secondary/entry) +"aQy" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/warning{dir = 5},/area/hallway/secondary/entry) +"aQz" = (/obj/structure/table/wood,/obj/item/weapon/storage/fancy/cigarettes{pixel_y = 2},/obj/item/weapon/lighter/greyscale{pixel_x = 4; pixel_y = 2},/turf/open/floor/plasteel/grimy,/area/hallway/secondary/entry) +"aQA" = (/obj/structure/table/wood,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/carpet,/area/hallway/secondary/entry) +"aQB" = (/obj/machinery/vending/cola,/turf/open/floor/plasteel/black,/area/hallway/secondary/entry) +"aQC" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/hallway/primary/port) +"aQD" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) +"aQE" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) +"aQF" = (/obj/machinery/light,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) +"aQG" = (/obj/machinery/camera{c_tag = "Port Hallway 3"; dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) +"aQH" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j1"; dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) +"aQI" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) +"aQJ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/hallway/primary/port) +"aQK" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/camera{c_tag = "Port Hallway"; dir = 1},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel,/area/hallway/primary/port) +"aQL" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) +"aQM" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/light,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) +"aQN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) +"aQO" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) +"aQP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/port) +"aQQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) +"aQR" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/port) +"aQS" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/port) +"aQT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) +"aQU" = (/obj/structure/sign/directions/security{dir = 4; icon_state = "direction_sec"; pixel_x = 32; pixel_y = -24},/obj/structure/sign/directions/evac{dir = 4; icon_state = "direction_evac"; pixel_x = 32; pixel_y = -32},/obj/structure/sign/directions/engineering{pixel_x = 32; pixel_y = -40},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) +"aQV" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/port) +"aQW" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Central Access"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aQX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aQY" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=QM"; location = "CHW"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aQZ" = (/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/central) +"aRa" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/central) +"aRb" = (/obj/machinery/light,/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = -32},/obj/machinery/door/firedoor,/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/central) +"aRc" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = -32},/obj/machinery/door/firedoor,/obj/machinery/light,/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/central) +"aRd" = (/obj/structure/window/reinforced,/obj/structure/table/wood,/obj/item/device/instrument/violin,/turf/open/floor/wood,/area/crew_quarters/bar) +"aRe" = (/obj/structure/window/reinforced,/turf/open/floor/wood,/area/crew_quarters/bar) +"aRf" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/wood,/area/crew_quarters/bar) +"aRg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/chair/stool,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"aRh" = (/obj/machinery/door/airlock{name = "Bar Storage"; req_access_txt = "25"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel{icon_state = "wood"},/area/crew_quarters/bar) +"aRi" = (/obj/effect/landmark{name = "blobstart"},/obj/item/toy/beach_ball/holoball,/obj/item/stack/spacecash{amount = 50},/turf/open/floor/plating,/area/crew_quarters/bar) +"aRj" = (/obj/structure/kitchenspike,/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) +"aRk" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) +"aRl" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) +"aRm" = (/obj/machinery/gibber,/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) +"aRn" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/open/floor/plasteel/black,/area/hydroponics) +"aRo" = (/obj/machinery/requests_console{department = "Hydroponics"; departmentType = 2; pixel_x = 0; pixel_y = 30},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/hydroponics) +"aRp" = (/obj/machinery/hydroponics/constructable,/turf/open/floor/plasteel/black,/area/hydroponics) +"aRq" = (/obj/machinery/hydroponics/constructable,/obj/machinery/camera{c_tag = "Hydroponics North"; dir = 2},/turf/open/floor/plasteel/black,/area/hydroponics) +"aRr" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/hydroponics) +"aRs" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/plasteel/black,/area/hydroponics) +"aRt" = (/obj/structure/bookcase/random/religion,/turf/open/floor/wood,/area/library) +"aRu" = (/turf/open/floor/carpet,/area/library) +"aRv" = (/obj/structure/disposalpipe/segment,/turf/open/floor/carpet,/area/library) +"aRw" = (/obj/structure/bookcase/random/reference,/turf/open/floor/wood,/area/library) +"aRx" = (/obj/machinery/computer/libraryconsole,/obj/structure/table/wood,/turf/open/floor/wood,/area/library) +"aRy" = (/obj/structure/bookcase{name = "Forbidden Knowledge"},/turf/open/floor/engine/cult,/area/library) +"aRz" = (/obj/structure/table/wood,/obj/item/device/taperecorder{pixel_y = 0},/obj/item/device/camera,/obj/item/device/radio/intercom{pixel_y = 25},/turf/open/floor/engine/cult,/area/library) +"aRA" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen/invisible,/turf/open/floor/engine/cult,/area/library) +"aRB" = (/obj/machinery/light_switch{pixel_y = 28},/turf/open/floor/plasteel/black,/area/chapel/main) +"aRC" = (/turf/open/floor/plasteel/chapel{dir = 4},/area/chapel/main) +"aRD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/chapel{dir = 1},/area/chapel/main) +"aRE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/chapel{dir = 4},/area/chapel/main) +"aRF" = (/obj/structure/grille,/obj/structure/window/reinforced/tinted/fulltile,/turf/open/floor/plasteel/black,/area/chapel/main) +"aRG" = (/obj/machinery/camera{c_tag = "Escape Arm Holding Area"; dir = 4},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/open/floor/plasteel/red/side{dir = 8},/area/hallway/secondary/exit) +"aRH" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel,/area/hallway/secondary/exit) +"aRI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel,/area/hallway/secondary/exit) +"aRJ" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/hallway/secondary/exit) +"aRK" = (/turf/open/floor/plasteel/warning{dir = 4},/area/hallway/secondary/exit) +"aRL" = (/obj/machinery/flasher{id = "shuttle_flasher"; pixel_x = -24; pixel_y = 6},/obj/machinery/button/flasher{id = "shuttle_flasher"; pixel_x = -24; pixel_y = -6},/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/escape) +"aRM" = (/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/escape) +"aRN" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Brig"; req_access_txt = "2"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"aRO" = (/turf/closed/wall/mineral/titanium,/area/shuttle/pod_1) +"aRP" = (/obj/structure/shuttle/engine/propulsion/burst{tag = "icon-propulsion (WEST)"; icon_state = "propulsion"; dir = 8},/turf/closed/wall/mineral/titanium,/area/shuttle/pod_1) +"aRQ" = (/turf/open/floor/plasteel/warning{dir = 9},/area/hallway/secondary/entry) +"aRR" = (/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20},/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/secondary/entry) +"aRS" = (/turf/open/floor/plasteel/warning/corner{dir = 4},/area/hallway/secondary/entry) +"aRT" = (/obj/structure/chair/comfy/beige{dir = 1; icon_state = "comfychair"},/turf/open/floor/plasteel/grimy,/area/hallway/secondary/entry) +"aRU" = (/obj/structure/chair/comfy/beige{dir = 1; icon_state = "comfychair"},/obj/effect/landmark/start{name = "Assistant"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/grimy,/area/hallway/secondary/entry) +"aRV" = (/obj/structure/chair/comfy/beige{dir = 1; icon_state = "comfychair"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/grimy,/area/hallway/secondary/entry) +"aRW" = (/obj/machinery/vending/snack,/turf/open/floor/plasteel/black,/area/hallway/secondary/entry) +"aRX" = (/turf/closed/wall,/area/maintenance/port) +"aRY" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/port) +"aRZ" = (/turf/closed/wall,/area/crew_quarters/locker) +"aSa" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aSb" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aSc" = (/obj/machinery/status_display{density = 0; layer = 4},/turf/closed/wall,/area/crew_quarters/locker) +"aSd" = (/turf/closed/wall,/area/storage/art) +"aSe" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/storage/art) +"aSf" = (/obj/machinery/door/airlock/glass{name = "Art Storage"},/turf/open/floor/plasteel,/area/storage/art) +"aSg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/storage/art) +"aSh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/port) +"aSi" = (/turf/closed/wall,/area/storage/emergency2) +"aSj" = (/obj/structure/table,/turf/open/floor/plasteel,/area/hallway/primary/port) +"aSk" = (/obj/structure/table,/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/open/floor/plasteel,/area/hallway/primary/port) +"aSl" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel,/area/hallway/primary/port) +"aSm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/port) +"aSn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/primary/port) +"aSo" = (/turf/closed/wall,/area/storage/tools) +"aSp" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aSq" = (/turf/closed/wall/r_wall,/area/bridge) +"aSr" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/poddoor/preopen{id = "bridge blast"; layer = 2.9; name = "bridge blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/bridge) +"aSs" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "bridge blast"; layer = 2.9; name = "bridge blast door"},/turf/open/floor/plating,/area/bridge) +"aSt" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/status_display{density = 0; layer = 4},/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "bridge blast"; layer = 2.9; name = "bridge blast door"},/turf/open/floor/plating,/area/bridge) +"aSu" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "bridge blast"; layer = 2.9; name = "bridge blast door"},/turf/open/floor/plating,/area/bridge) +"aSv" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/status_display{density = 0; layer = 4},/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "bridge blast"; layer = 2.9; name = "bridge blast door"},/turf/open/floor/plating,/area/bridge) +"aSw" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "bridge blast"; layer = 2.9; name = "bridge blast door"},/turf/open/floor/plating,/area/bridge) +"aSx" = (/obj/structure/table,/obj/machinery/computer/security/telescreen/entertainment{pixel_x = -31},/obj/item/clothing/head/hardhat/cakehat,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"aSy" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"aSz" = (/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"aSA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"aSB" = (/obj/machinery/party/musicwriter,/turf/closed/wall,/area/crew_quarters/bar) +"aSC" = (/obj/machinery/disposal/bin,/obj/structure/sign/securearea{desc = "Under the painting a plaque reads: 'While the meat grinder may not have spared you, fear not. Not one part of you has gone to waste... You were delicious.'"; icon_state = "monkey_painting"; name = "Mr. Deempisi portrait"; pixel_x = -28; pixel_y = -4},/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/button/door{id = "barShutters"; name = "bar shutters"; pixel_x = 4; pixel_y = 28},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"aSD" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"aSE" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/table,/obj/machinery/chem_dispenser/drinks/beer,/obj/item/device/radio/intercom{pixel_y = 25},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"aSF" = (/obj/machinery/door/airlock{name = "Kitchen cold room"; req_access_txt = "28"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) +"aSG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/green/side{dir = 9},/area/hydroponics) +"aSH" = (/turf/open/floor/plasteel/green/side{dir = 1},/area/hydroponics) +"aSI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/green/side{dir = 5},/area/hydroponics) +"aSJ" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/wood,/area/library) +"aSK" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/wood,/area/library) +"aSL" = (/obj/machinery/light/small,/turf/open/floor/engine/cult,/area/library) +"aSM" = (/obj/effect/landmark{name = "blobstart"},/obj/structure/chair/comfy/brown{dir = 1},/turf/open/floor/engine/cult,/area/library) +"aSN" = (/obj/structure/destructible/cult/tome,/obj/item/clothing/under/suit_jacket/red,/obj/item/weapon/book/codex_gigas,/turf/open/floor/engine/cult,/area/library) +"aSO" = (/turf/open/floor/plasteel/chapel,/area/chapel/main) +"aSP" = (/obj/structure/table/wood,/turf/open/floor/plasteel/black,/area/chapel/main) +"aSQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/chapel{dir = 8},/area/chapel/main) +"aSR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/chapel,/area/chapel/main) +"aSS" = (/obj/machinery/door/morgue{name = "Confession Booth"},/turf/open/floor/plasteel/black,/area/chapel/main) +"aST" = (/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1480; name = "Confessional Intercom"; pixel_x = 25},/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/black,/area/chapel/main) +"aSU" = (/turf/open/floor/plasteel/red/side{dir = 8},/area/hallway/secondary/exit) +"aSV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/exit) +"aSW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/exit) +"aSX" = (/turf/open/floor/plasteel,/area/hallway/secondary/exit) +"aSY" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 4; name = "Security Escape Airlock"; req_access_txt = "2"},/turf/open/floor/plating,/area/hallway/secondary/exit) +"aSZ" = (/turf/open/floor/plating,/area/hallway/secondary/exit) +"aTa" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/hallway/secondary/exit) +"aTb" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 8; name = "Security Escape Airlock"; req_access_txt = "2"},/turf/open/floor/plating,/area/hallway/secondary/exit) +"aTc" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"; req_access_txt = "2"},/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/escape) +"aTd" = (/obj/structure/chair{dir = 1},/turf/open/floor/mineral/plastitanium/brig,/area/shuttle/escape) +"aTe" = (/obj/structure/chair,/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"aTf" = (/obj/structure/chair{dir = 4},/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"aTg" = (/obj/structure/table,/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"aTh" = (/obj/docking_port/stationary/random{dir = 8; id = "pod_asteroid1"; name = "asteroid"},/turf/open/space,/area/space) +"aTi" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/pod_1) +"aTj" = (/obj/machinery/computer/shuttle/pod{pixel_x = 0; pixel_y = -32; possible_destinations = "pod_asteroid1"; shuttleId = "pod1"},/obj/structure/chair{dir = 8},/obj/machinery/status_display{density = 0; layer = 3; pixel_x = 0; pixel_y = 32},/turf/open/floor/mineral/titanium/blue,/area/shuttle/pod_1) +"aTk" = (/obj/item/weapon/storage/pod{pixel_x = 6; pixel_y = -28},/obj/item/device/radio/intercom{pixel_x = 0; pixel_y = 25},/obj/structure/chair{dir = 8},/turf/open/floor/mineral/titanium/blue,/area/shuttle/pod_1) +"aTl" = (/obj/machinery/door/airlock/shuttle{name = "Escape Pod Airlock"},/obj/docking_port/mobile/pod{dir = 8; id = "pod1"; name = "escape pod 1"; port_angle = 180},/turf/open/floor/mineral/titanium/blue,/area/shuttle/pod_1) +"aTm" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/secondary/entry) +"aTn" = (/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/secondary/entry) +"aTo" = (/turf/open/floor/plasteel/warning/corner{dir = 8},/area/hallway/secondary/entry) +"aTp" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/neutral/corner{dir = 4},/area/hallway/secondary/entry) +"aTq" = (/turf/open/floor/plasteel/neutral/side{dir = 1},/area/hallway/secondary/entry) +"aTr" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/hallway/secondary/entry) +"aTs" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/hallway/secondary/entry) +"aTt" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/hallway/secondary/entry) +"aTu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/hallway/secondary/entry) +"aTv" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel/neutral/side{dir = 1},/area/hallway/secondary/entry) +"aTw" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/neutral/corner{dir = 1},/area/hallway/secondary/entry) +"aTx" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/port) +"aTy" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/port) +"aTz" = (/obj/structure/closet/wardrobe/white,/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aTA" = (/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aTB" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aTC" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/light_switch{pixel_y = 28},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aTD" = (/obj/machinery/vending/cola,/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aTE" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aTF" = (/obj/machinery/vending/coffee,/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aTG" = (/obj/machinery/vending/clothing,/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aTH" = (/obj/machinery/vending/cigarette,/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aTI" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aTJ" = (/obj/structure/closet/secure_closet/personal,/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aTK" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/obj/structure/table,/obj/item/stack/cable_coil/random,/obj/item/stack/cable_coil/random,/turf/open/floor/plasteel,/area/storage/art) +"aTL" = (/turf/open/floor/plasteel,/area/storage/art) +"aTM" = (/obj/machinery/light/small{dir = 4},/obj/machinery/light_switch{pixel_x = 27},/turf/open/floor/plasteel,/area/storage/art) +"aTN" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/port) +"aTO" = (/obj/machinery/door/airlock{name = "Port Emergency Storage"; req_access_txt = "0"},/turf/open/floor/plating,/area/storage/emergency2) +"aTP" = (/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/storage/tools) +"aTQ" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Auxiliary Tool Storage"; req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/storage/tools) +"aTR" = (/obj/machinery/light{dir = 8},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aTS" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/secure/briefcase,/obj/item/weapon/storage/box/PDAs{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/box/ids,/turf/open/floor/plasteel,/area/bridge) +"aTT" = (/obj/machinery/computer/atmos_alert,/turf/open/floor/plasteel/yellow/side{dir = 10},/area/bridge) +"aTU" = (/obj/machinery/computer/station_alert,/turf/open/floor/plasteel/yellow/side,/area/bridge) +"aTV" = (/obj/machinery/computer/monitor{name = "bridge power monitoring console"},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plasteel/yellow/side{dir = 6},/area/bridge) +"aTW" = (/obj/machinery/computer/shuttle/labor,/turf/open/floor/plasteel/blue/side{dir = 10},/area/bridge) +"aTX" = (/obj/machinery/computer/communications,/turf/open/floor/plasteel/blue/side{dir = 0},/area/bridge) +"aTY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/computer/shuttle/mining,/turf/open/floor/plasteel/blue/side{dir = 6},/area/bridge) +"aTZ" = (/obj/machinery/modular_computer/console/preset/command,/turf/open/floor/plasteel/green/side{dir = 10},/area/bridge) +"aUa" = (/obj/machinery/computer/crew,/turf/open/floor/plasteel/green/side{dir = 2},/area/bridge) +"aUb" = (/obj/machinery/computer/med_data,/turf/open/floor/plasteel/green/side{dir = 6},/area/bridge) +"aUc" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/wrench,/obj/item/device/assembly/timer,/obj/item/device/assembly/signaler,/obj/item/device/assembly/signaler,/turf/open/floor/plasteel,/area/bridge) +"aUd" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aUe" = (/obj/effect/landmark/event_spawn,/turf/closed/wall,/area/crew_quarters/bar) +"aUf" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/chair/stool,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"aUg" = (/obj/structure/chair,/obj/effect/landmark/start{name = "Assistant"},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"aUh" = (/obj/machinery/party/turntable,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"aUi" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"aUj" = (/obj/machinery/vending/boozeomat,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"aUk" = (/obj/machinery/vending/dinnerware,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"aUl" = (/obj/structure/sink/kitchen{pixel_y = 28},/obj/machinery/food_cart,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"aUm" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"aUn" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"aUo" = (/obj/item/device/radio/intercom{pixel_y = 25},/obj/machinery/camera{c_tag = "Kitchen"; dir = 2},/obj/structure/closet/secure_closet/freezer/fridge,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"aUp" = (/obj/structure/table,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/obj/machinery/airalarm{pixel_y = 24},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"aUq" = (/obj/structure/table,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"aUr" = (/obj/structure/closet/secure_closet/freezer/kitchen,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"aUs" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/green/side{dir = 8},/area/hydroponics) +"aUt" = (/turf/open/floor/plasteel,/area/hydroponics) +"aUu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/green/side{dir = 4},/area/hydroponics) +"aUv" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/power/apc{dir = 4; name = "Library APC"; pixel_x = 24},/obj/structure/cable,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/library) +"aUw" = (/obj/structure/bookcase/random/fiction,/turf/open/floor/wood,/area/library) +"aUx" = (/obj/structure/bookcase/random/nonfiction,/turf/open/floor/wood,/area/library) +"aUy" = (/obj/machinery/camera{c_tag = "Library South"; dir = 8; network = list("SS13")},/turf/open/floor/wood,/area/library) +"aUz" = (/obj/machinery/door/morgue{name = "Private Study"; req_access_txt = "37"},/turf/open/floor/engine/cult,/area/library) +"aUA" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/plasteel/black,/area/chapel/main) +"aUB" = (/turf/open/floor/carpet,/area/chapel/main) +"aUC" = (/obj/effect/landmark/event_spawn,/turf/open/floor/carpet,/area/chapel/main) +"aUD" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/hallway/secondary/exit) +"aUE" = (/obj/machinery/door/airlock/glass_security{name = "Holding Area"; req_access_txt = "2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/exit) +"aUF" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/hallway/secondary/exit) +"aUG" = (/turf/closed/wall/mineral/titanium/nodiagonal,/area/shuttle/escape) +"aUH" = (/obj/machinery/camera{c_tag = "Arrivals Escape Pod 1"; dir = 8},/obj/machinery/light/small,/turf/open/floor/plating,/area/hallway/secondary/entry) +"aUI" = (/obj/machinery/light,/turf/open/floor/plasteel/arrival{dir = 2},/area/hallway/secondary/entry) +"aUJ" = (/turf/open/floor/plasteel/arrival{dir = 2},/area/hallway/secondary/entry) +"aUK" = (/turf/open/floor/plasteel/white/corner{dir = 8},/area/hallway/secondary/entry) +"aUL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"aUM" = (/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"aUN" = (/obj/machinery/firealarm{dir = 2; pixel_y = -24},/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"aUO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"aUP" = (/obj/machinery/light,/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"aUQ" = (/obj/machinery/camera{c_tag = "Arrivals Hallway"; dir = 8; network = list("SS13")},/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"aUR" = (/turf/open/floor/plating,/area/maintenance/port) +"aUS" = (/obj/structure/closet/wardrobe/mixed,/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = -27},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aUT" = (/obj/effect/landmark{name = "lightsout"},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aUU" = (/obj/structure/table,/obj/item/stack/cable_coil/random,/obj/item/stack/cable_coil/random,/turf/open/floor/plasteel,/area/storage/art) +"aUV" = (/obj/machinery/light_switch{pixel_y = 28},/obj/item/weapon/storage/box/lights/mixed,/turf/open/floor/plating,/area/storage/emergency2) +"aUW" = (/turf/open/floor/plating,/area/storage/emergency2) +"aUX" = (/obj/item/weapon/extinguisher,/turf/open/floor/plating,/area/storage/emergency2) +"aUY" = (/obj/machinery/power/apc{dir = 1; name = "Auxiliary Tool Storage APC"; pixel_y = 24},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/table,/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/rods{amount = 50},/turf/open/floor/plasteel,/area/storage/tools) +"aUZ" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/rack,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/weapon/electronics/apc,/obj/item/weapon/electronics/airlock,/turf/open/floor/plasteel,/area/storage/tools) +"aVa" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/storage/tools) +"aVb" = (/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/camera{c_tag = "Auxiliary Tool Storage"; dir = 2},/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/weapon/storage/box/lights/mixed,/turf/open/floor/plasteel,/area/storage/tools) +"aVc" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/emergency,/turf/open/floor/plasteel,/area/storage/tools) +"aVd" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/storage/tools) +"aVe" = (/obj/structure/table/reinforced,/obj/item/device/assembly/flash/handheld,/obj/item/device/assembly/flash/handheld,/turf/open/floor/plasteel,/area/bridge) +"aVf" = (/turf/open/floor/plasteel/yellow/corner{dir = 1},/area/bridge) +"aVg" = (/obj/structure/chair{dir = 1; name = "Engineering Station"},/turf/open/floor/plasteel,/area/bridge) +"aVh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/yellow/corner{dir = 4},/area/bridge) +"aVi" = (/obj/structure/table/reinforced,/obj/item/device/aicard,/obj/item/device/multitool,/turf/open/floor/plasteel/blue/side{dir = 8},/area/bridge) +"aVj" = (/obj/structure/chair{dir = 1; name = "Command Station"},/obj/machinery/button/door{id = "bridge blast"; name = "Bridge Blast Door Control"; pixel_x = 28; pixel_y = -2; req_access_txt = "19"},/obj/machinery/keycard_auth{pixel_x = 29; pixel_y = 8},/turf/open/floor/plasteel,/area/bridge) +"aVk" = (/obj/structure/table/reinforced,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/blue/side{dir = 4},/area/bridge) +"aVl" = (/turf/open/floor/plasteel/green/corner{dir = 1},/area/bridge) +"aVm" = (/obj/structure/chair{dir = 1; name = "Crew Station"},/turf/open/floor/plasteel,/area/bridge) +"aVn" = (/turf/open/floor/plasteel/green/corner{dir = 4},/area/bridge) +"aVo" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/fancy/donut_box,/turf/open/floor/plasteel,/area/bridge) +"aVp" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/door/poddoor/preopen{id = "barShutters"; name = "privacy shutters"},/turf/open/floor/plating,/area/crew_quarters/bar) +"aVq" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"aVr" = (/obj/structure/table,/obj/item/weapon/kitchen/fork,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"aVs" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"aVt" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"aVu" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"aVv" = (/obj/structure/table/wood/poker,/obj/item/toy/cards/deck,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"aVw" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"aVx" = (/obj/structure/chair/stool/bar,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"aVy" = (/obj/structure/table/reinforced,/obj/item/weapon/lighter,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"aVz" = (/mob/living/carbon/monkey/punpun,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"aVA" = (/obj/machinery/door/airlock/glass{name = "Kitchen"; req_access_txt = "28"},/turf/open/floor/plasteel/bar,/area/crew_quarters/kitchen) +"aVB" = (/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"aVC" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"aVD" = (/obj/effect/landmark/start{name = "Cook"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"aVE" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"aVF" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"aVG" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"aVH" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"aVI" = (/obj/machinery/smartfridge,/turf/closed/wall,/area/crew_quarters/kitchen) +"aVJ" = (/turf/open/floor/plasteel/black,/area/hydroponics) +"aVK" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/green/side{dir = 8},/area/hydroponics) +"aVL" = (/obj/machinery/seed_extractor,/turf/open/floor/plasteel,/area/hydroponics) +"aVM" = (/obj/machinery/biogenerator,/turf/open/floor/plasteel,/area/hydroponics) +"aVN" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel/green/side{dir = 4},/area/hydroponics) +"aVO" = (/obj/machinery/door/window/northright{base_state = "right"; dir = 8; icon_state = "right"; name = "Library Desk Door"; req_access_txt = "37"},/turf/open/floor/wood,/area/library) +"aVP" = (/obj/machinery/newscaster{pixel_y = 32},/turf/open/floor/wood,/area/library) +"aVQ" = (/obj/structure/table/wood,/obj/machinery/computer/libraryconsole/bookmanagement{pixel_y = 0},/obj/machinery/light_switch{pixel_y = 28},/turf/open/floor/wood,/area/library) +"aVR" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/chapel{dir = 8},/area/chapel/main) +"aVS" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/chapel,/area/chapel/main) +"aVT" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/landmark/start{name = "Assistant"},/turf/open/floor/plasteel/chapel{dir = 8},/area/chapel/main) +"aVU" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/chapel,/area/chapel/main) +"aVV" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/black,/area/chapel/main) +"aVW" = (/obj/machinery/vending/cola,/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/open/floor/plasteel/escape{dir = 9},/area/hallway/secondary/exit) +"aVX" = (/turf/open/floor/plasteel/red/corner{dir = 1},/area/hallway/secondary/exit) +"aVY" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 4; name = "Escape Airlock"},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/open/floor/plating,/area/hallway/secondary/exit) +"aVZ" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 8; name = "Escape Airlock"},/turf/open/floor/plating,/area/hallway/secondary/exit) +"aWa" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/obj/docking_port/mobile/emergency{name = "Box emergency shuttle"; timid = 0},/obj/docking_port/stationary{dir = 4; dwidth = 12; height = 18; id = "emergency_home"; name = "BoxStation emergency evac bay"; turf_type = /turf/open/space; width = 32},/turf/open/floor/plating,/area/shuttle/escape) +"aWb" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"aWc" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"aWd" = (/obj/machinery/door/firedoor,/obj/machinery/status_display{density = 0; layer = 3; pixel_x = 32; pixel_y = 0},/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"aWe" = (/turf/closed/wall,/area/security/vacantoffice) +"aWf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/security/vacantoffice) +"aWg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/security/vacantoffice) +"aWh" = (/turf/closed/wall,/area/security/vacantoffice{name = "Vacant Office A"}) +"aWi" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/port) +"aWj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/port) +"aWk" = (/obj/structure/closet/wardrobe/green,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aWl" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aWm" = (/obj/structure/chair/stool{pixel_y = 8},/obj/effect/landmark/start{name = "Assistant"},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aWn" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aWo" = (/obj/structure/table,/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aWp" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aWq" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aWr" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aWs" = (/obj/structure/closet/secure_closet/personal,/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/camera{c_tag = "Locker Room East"; dir = 8; network = list("SS13")},/obj/machinery/light{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aWt" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/turf/open/floor/plasteel,/area/storage/art) +"aWu" = (/obj/structure/table,/obj/item/weapon/storage/crayons,/obj/item/weapon/storage/crayons,/turf/open/floor/plasteel,/area/storage/art) +"aWv" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/table,/obj/item/device/camera_film,/obj/item/device/camera,/turf/open/floor/plasteel,/area/storage/art) +"aWw" = (/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plating,/area/storage/emergency2) +"aWx" = (/obj/machinery/light/small,/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plating,/area/storage/emergency2) +"aWy" = (/obj/machinery/space_heater,/turf/open/floor/plating,/area/storage/emergency2) +"aWz" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/turf/open/floor/plating,/area/storage/emergency2) +"aWA" = (/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/open/floor/plasteel,/area/storage/tools) +"aWB" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel,/area/storage/tools) +"aWC" = (/turf/open/floor/plasteel,/area/storage/tools) +"aWD" = (/obj/structure/rack,/obj/item/clothing/gloves/color/fyellow,/obj/item/clothing/suit/hazardvest,/obj/item/device/multitool,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel,/area/storage/tools) +"aWE" = (/turf/closed/wall,/area/bridge) +"aWF" = (/obj/machinery/computer/prisoner,/turf/open/floor/plasteel/red/side{dir = 10},/area/bridge) +"aWG" = (/obj/machinery/computer/security,/turf/open/floor/plasteel/red/side,/area/bridge) +"aWH" = (/obj/machinery/computer/secure_data,/turf/open/floor/plasteel/red/side{dir = 6},/area/bridge) +"aWI" = (/obj/structure/table/reinforced,/obj/machinery/recharger,/turf/open/floor/plasteel,/area/bridge) +"aWJ" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/bridge) +"aWK" = (/turf/open/floor/plasteel,/area/bridge) +"aWL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel,/area/bridge) +"aWM" = (/turf/open/floor/plasteel/blue/corner{dir = 1},/area/bridge) +"aWN" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/blue/corner{dir = 4},/area/bridge) +"aWO" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/bridge) +"aWP" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel,/area/bridge) +"aWQ" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/firstaid/regular,/turf/open/floor/plasteel,/area/bridge) +"aWR" = (/obj/machinery/computer/teleporter,/turf/open/floor/plasteel/brown{dir = 10},/area/bridge) +"aWS" = (/obj/machinery/computer/cargo/request,/turf/open/floor/plasteel/brown{dir = 2},/area/bridge) +"aWT" = (/obj/machinery/computer/security/mining{network = list("MINE","AuxBase")},/turf/open/floor/plasteel/brown{dir = 6},/area/bridge) +"aWU" = (/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/camera{c_tag = "Bar West"; dir = 4; network = list("SS13")},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"aWV" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"aWW" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"aWX" = (/obj/structure/table/reinforced,/obj/item/clothing/head/that{throwforce = 1; throwing = 1},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"aWY" = (/obj/effect/landmark/start{name = "Bartender"},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"aWZ" = (/obj/machinery/requests_console{department = "Bar"; departmentType = 2; pixel_x = 30; pixel_y = 0},/obj/machinery/camera{c_tag = "Bar"; dir = 8; network = list("SS13")},/obj/structure/table,/obj/machinery/chem_dispenser/drinks,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"aXa" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/snacks/mint,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"aXb" = (/obj/structure/table,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"aXc" = (/obj/structure/table,/obj/item/weapon/kitchen/rollingpin,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"aXd" = (/obj/structure/table,/obj/item/weapon/book/manual/chef_recipes,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"aXe" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"aXf" = (/obj/structure/table/reinforced,/obj/machinery/door/window/eastleft{name = "Hydroponics Desk"; req_access_txt = "35"},/obj/machinery/door/firedoor,/turf/open/floor/plasteel/delivery{name = "floor"},/area/crew_quarters/kitchen) +"aXg" = (/turf/open/floor/plasteel/vault{dir = 8},/area/hydroponics) +"aXh" = (/turf/open/floor/plasteel/green/side{dir = 8},/area/hydroponics) +"aXi" = (/obj/machinery/vending/hydronutrients,/turf/open/floor/plasteel,/area/hydroponics) +"aXj" = (/obj/machinery/vending/hydroseeds{slogan_delay = 700},/turf/open/floor/plasteel,/area/hydroponics) +"aXk" = (/turf/open/floor/plasteel/green/side{dir = 4},/area/hydroponics) +"aXl" = (/obj/machinery/hydroponics/constructable,/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/open/floor/plasteel/black,/area/hydroponics) +"aXm" = (/obj/structure/bookcase/random/adult,/turf/open/floor/wood,/area/library) +"aXn" = (/obj/structure/chair/comfy/black,/obj/effect/landmark/start{name = "Assistant"},/turf/open/floor/wood,/area/library) +"aXo" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green{pixel_x = 1; pixel_y = 5},/turf/open/floor/wood,/area/library) +"aXp" = (/obj/effect/landmark/start{name = "Librarian"},/obj/structure/chair/office/dark,/turf/open/floor/wood,/area/library) +"aXq" = (/obj/machinery/libraryscanner,/turf/open/floor/wood,/area/library) +"aXr" = (/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/open/floor/plasteel/black,/area/chapel/main) +"aXs" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/chapel{dir = 1},/area/chapel/main) +"aXt" = (/obj/structure/chair/stool,/obj/effect/landmark/start{name = "Assistant"},/turf/open/floor/plasteel/chapel{dir = 4},/area/chapel/main) +"aXu" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/chapel{dir = 1},/area/chapel/main) +"aXv" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/chapel{dir = 4},/area/chapel/main) +"aXw" = (/obj/machinery/computer/arcade,/turf/open/floor/plasteel/escape{dir = 8},/area/hallway/secondary/exit) +"aXx" = (/obj/structure/chair{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"aXy" = (/obj/structure/chair{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"aXz" = (/obj/structure/chair{dir = 8},/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"aXA" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 4},/turf/closed/wall/mineral/titanium,/area/shuttle/transport) +"aXB" = (/turf/closed/wall/mineral/titanium,/area/shuttle/transport) +"aXC" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/open/floor/plating,/area/shuttle/transport) +"aXD" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/transport) +"aXE" = (/obj/machinery/camera{c_tag = "Arrivals Bay 2"; dir = 8; network = list("SS13")},/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"aXF" = (/turf/open/floor/wood,/area/security/vacantoffice) +"aXG" = (/obj/structure/chair/office/dark{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/security/vacantoffice) +"aXH" = (/obj/structure/table/wood,/turf/open/floor/wood,/area/security/vacantoffice) +"aXI" = (/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/turf/open/floor/wood,/area/security/vacantoffice) +"aXJ" = (/obj/structure/chair/office/dark{dir = 8},/turf/open/floor/wood,/area/security/vacantoffice) +"aXK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/wood,/area/security/vacantoffice) +"aXL" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating,/area/maintenance/port) +"aXM" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating,/area/maintenance/port) +"aXN" = (/obj/structure/closet/wardrobe/grey,/obj/machinery/requests_console{department = "Locker Room"; pixel_x = -32; pixel_y = 0},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aXO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aXP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aXQ" = (/obj/structure/chair/stool{pixel_y = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aXR" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aXS" = (/obj/structure/table,/obj/item/clothing/head/soft/grey{pixel_x = -2; pixel_y = 3},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aXT" = (/obj/structure/table,/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aXU" = (/obj/structure/chair/stool{pixel_y = 8},/obj/effect/landmark/start{name = "Assistant"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aXV" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aXW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aXX" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aXY" = (/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/structure/closet/toolcloset,/turf/open/floor/plasteel,/area/storage/tools) +"aXZ" = (/obj/structure/closet/toolcloset,/turf/open/floor/plasteel,/area/storage/tools) +"aYa" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/storage/tools) +"aYb" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel,/area/storage/tools) +"aYc" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/obj/machinery/door/firedoor,/turf/open/floor/plasteel/blue/side{dir = 5},/area/hallway/primary/central) +"aYd" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/bridge) +"aYe" = (/obj/structure/sign/securearea{pixel_x = 32; pixel_y = 0},/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/preopen{id = "bridge blast"; name = "bridge blast door"},/turf/open/floor/plasteel/delivery{name = "floor"},/area/bridge) +"aYf" = (/obj/machinery/camera{c_tag = "Bridge West"; dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/red/corner{dir = 1},/area/bridge) +"aYg" = (/obj/structure/chair{dir = 1; name = "Security Station"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/bridge) +"aYh" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/corner{dir = 4},/area/bridge) +"aYi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/bridge) +"aYj" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/bridge) +"aYk" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/bridge) +"aYl" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel,/area/bridge) +"aYm" = (/obj/machinery/holopad,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/bridge) +"aYn" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/bridge) +"aYo" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/bridge) +"aYp" = (/obj/item/device/radio/beacon,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/bridge) +"aYq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/bridge) +"aYr" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/brown/corner{dir = 1},/area/bridge) +"aYs" = (/obj/structure/chair{dir = 1; name = "Logistics Station"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/bridge) +"aYt" = (/obj/machinery/camera{c_tag = "Bridge East"; dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/brown/corner{dir = 4},/area/bridge) +"aYu" = (/obj/structure/sign/securearea{pixel_x = -32; pixel_y = 0},/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/preopen{id = "bridge blast"; name = "bridge blast door"},/turf/open/floor/plasteel/delivery{name = "floor"},/area/bridge) +"aYv" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/obj/machinery/door/firedoor,/turf/open/floor/plasteel/blue/side{dir = 9},/area/hallway/primary/central) +"aYw" = (/obj/machinery/camera{c_tag = "Bridge East Entrance"; dir = 2},/turf/open/floor/plasteel/blue/side{dir = 1},/area/hallway/primary/central) +"aYx" = (/obj/machinery/holopad,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"aYy" = (/obj/structure/chair,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"aYz" = (/obj/structure/table/reinforced,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"aYA" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor,/obj/item/weapon/reagent_containers/food/snacks/pie/cream,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"aYB" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/enzyme{layer = 5},/obj/item/stack/packageWrap,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"aYC" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 5},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"aYD" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_x = -3; pixel_y = 0},/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = 3},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"aYE" = (/obj/machinery/processor,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"aYF" = (/obj/machinery/light{dir = 8},/obj/machinery/hydroponics/constructable,/turf/open/floor/plasteel/black,/area/hydroponics) +"aYG" = (/obj/effect/landmark/start{name = "Botanist"},/turf/open/floor/plasteel,/area/hydroponics) +"aYH" = (/obj/machinery/hydroponics/constructable,/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/black,/area/hydroponics) +"aYI" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"aYJ" = (/obj/structure/table/wood,/obj/item/weapon/paper,/turf/open/floor/wood,/area/library) +"aYK" = (/obj/structure/chair/comfy/black{dir = 8},/turf/open/floor/wood,/area/library) +"aYL" = (/obj/structure/table/wood,/obj/item/device/camera_film,/obj/item/device/camera_film,/turf/open/floor/wood,/area/library) +"aYM" = (/obj/structure/table/wood,/obj/item/weapon/pen/red,/obj/item/weapon/pen/blue{pixel_x = 5; pixel_y = 5},/turf/open/floor/wood,/area/library) +"aYN" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/turf/open/floor/wood,/area/library) +"aYO" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/chapel{dir = 8},/area/chapel/main) +"aYP" = (/obj/machinery/camera{c_tag = "Chapel South"; dir = 8; network = list("SS13")},/turf/open/floor/plasteel/black,/area/chapel/main) +"aYQ" = (/obj/item/device/radio/intercom{pixel_x = -25},/turf/open/floor/plasteel/escape{dir = 8},/area/hallway/secondary/exit) +"aYR" = (/turf/open/floor/mineral/titanium/blue,/turf/closed/wall/mineral/titanium/interior,/area/shuttle/transport) +"aYS" = (/turf/open/floor/mineral/titanium/blue,/area/shuttle/transport) +"aYT" = (/obj/machinery/computer/shuttle/ferry/request,/turf/open/floor/mineral/titanium/blue,/area/shuttle/transport) +"aYU" = (/obj/structure/chair,/turf/open/floor/mineral/titanium/blue,/area/shuttle/transport) +"aYV" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/hallway/secondary/entry) +"aYW" = (/obj/machinery/camera{c_tag = "Vacant Office"; dir = 4; network = list("SS13")},/turf/open/floor/wood,/area/security/vacantoffice) +"aYX" = (/obj/structure/table/wood,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/security/vacantoffice) +"aYY" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp,/turf/open/floor/wood,/area/security/vacantoffice) +"aYZ" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green,/turf/open/floor/wood,/area/security/vacantoffice) +"aZa" = (/obj/structure/table/wood,/obj/item/weapon/pen/red,/turf/open/floor/wood,/area/security/vacantoffice) +"aZb" = (/obj/structure/grille,/obj/structure/window{icon_state = "window"; dir = 8},/obj/structure/window,/turf/open/floor/plating,/area/maintenance/port) +"aZc" = (/obj/structure/grille,/obj/structure/window{icon_state = "window"; dir = 1},/turf/open/floor/plating,/area/maintenance/port) +"aZd" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/port) +"aZe" = (/obj/structure/closet/wardrobe/black,/obj/item/clothing/shoes/jackboots,/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aZf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aZg" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aZh" = (/obj/machinery/camera{c_tag = "Locker Room West"; dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aZi" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aZj" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aZk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aZl" = (/obj/structure/closet/secure_closet/personal,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"aZm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating,/area/maintenance/port) +"aZn" = (/obj/machinery/power/apc{dir = 1; name = "Art Storage"; pixel_x = 0; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/open/floor/plating,/area/storage/art) +"aZo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/open/floor/plating,/area/maintenance/port) +"aZp" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/open/floor/plating,/area/maintenance/port) +"aZq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating,/area/maintenance/port) +"aZr" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/port) +"aZs" = (/obj/machinery/power/apc{dir = 1; name = "Port Emergency Storage APC"; pixel_y = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/open/floor/plating,/area/storage/emergency2) +"aZt" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating,/area/maintenance/port) +"aZu" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating,/area/maintenance/port) +"aZv" = (/turf/closed/wall,/area/security/detectives_office) +"aZw" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/blue/side{dir = 4},/area/hallway/primary/central) +"aZx" = (/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/airlock/glass_command{crit_fail = 4; name = "Bridge"; req_access_txt = "19"},/turf/open/floor/plasteel,/area/bridge) +"aZy" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/preopen{id = "bridge blast"; name = "bridge blast door"},/turf/open/floor/plasteel/delivery{name = "floor"},/area/bridge) +"aZz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/glass_command{cyclelinkeddir = 8; name = "Bridge"; req_access_txt = "19"},/turf/open/floor/plasteel,/area/bridge) +"aZA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/bridge) +"aZB" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel,/area/bridge) +"aZC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/bridge) +"aZD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/blue/corner,/area/bridge) +"aZE" = (/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = -32},/obj/machinery/light,/obj/machinery/light_switch{pixel_x = -6; pixel_y = -22},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/blue/side{dir = 0},/area/bridge) +"aZF" = (/obj/structure/fireaxecabinet{pixel_y = -32},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/blue/side{dir = 0},/area/bridge) +"aZG" = (/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/blue/side{dir = 0},/area/bridge) +"aZH" = (/obj/machinery/requests_console{announcementConsole = 1; department = "Bridge"; departmentType = 5; name = "Bridge RC"; pixel_y = -30},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/blue/side{dir = 0},/area/bridge) +"aZI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/blue/side{dir = 0},/area/bridge) +"aZJ" = (/obj/machinery/turretid{control_area = "AI Upload Chamber"; name = "AI Upload turret control"; pixel_y = -25},/obj/machinery/camera{c_tag = "Bridge Center"; dir = 1},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/blue/side{dir = 0},/area/bridge) +"aZK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/blue/side{dir = 0},/area/bridge) +"aZL" = (/obj/machinery/newscaster{pixel_y = -32},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/blue/side{dir = 0},/area/bridge) +"aZM" = (/obj/machinery/power/apc{cell_type = 5000; dir = 2; name = "Bridge APC"; pixel_y = -24},/obj/structure/cable,/obj/machinery/light,/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/blue/side{dir = 0},/area/bridge) +"aZN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/blue/corner{dir = 8},/area/bridge) +"aZO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel,/area/bridge) +"aZP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/bridge) +"aZQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/glass_command{cyclelinkeddir = 4; name = "Bridge"; req_access_txt = "19"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/bridge) +"aZR" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/poddoor/preopen{id = "bridge blast"; name = "bridge blast door"},/turf/open/floor/plasteel/delivery{name = "floor"},/area/bridge) +"aZS" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/door/airlock/glass_command{cyclelinkeddir = 8; name = "Bridge"; req_access_txt = "19"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/bridge) +"aZT" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/blue/side{dir = 8},/area/hallway/primary/central) +"aZU" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aZV" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aZW" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"aZX" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/computer/security/telescreen/entertainment{pixel_x = -31},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"aZY" = (/obj/structure/table/wood/poker,/obj/item/clothing/mask/cigarette/cigar,/obj/item/toy/cards/deck,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"aZZ" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = 5; pixel_y = -2},/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_x = -2; pixel_y = 2},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"baa" = (/obj/machinery/door/window/southright{name = "Bar Door"; req_access_txt = "0"; req_one_access_txt = "25;28"},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bab" = (/obj/structure/table/reinforced,/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 32},/obj/item/weapon/book/manual/barman_recipes,/obj/item/weapon/reagent_containers/glass/rag,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bac" = (/obj/effect/landmark/start{name = "Cook"},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"bad" = (/obj/structure/table,/obj/machinery/reagentgrinder,/obj/machinery/requests_console{department = "Kitchen"; departmentType = 2; pixel_x = 30; pixel_y = 0},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"bae" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/sortjunction{dir = 2; icon_state = "pipe-j2s"; sortType = 16},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"baf" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/airalarm{pixel_y = 25},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bag" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bah" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Library"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/carpet,/area/library) +"bai" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/carpet,/area/library) +"baj" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/carpet,/area/library) +"bak" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/carpet,/area/library) +"bal" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/carpet,/area/library) +"bam" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Chapel"},/turf/open/floor/carpet,/area/chapel/main) +"ban" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/carpet,/area/chapel/main) +"bao" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/carpet,/area/chapel/main) +"bap" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/carpet,/area/chapel/main) +"baq" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Chapel"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/carpet,/area/chapel/main) +"bar" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/escape{dir = 8},/area/hallway/secondary/exit) +"bas" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/exit) +"bat" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/hallway/secondary/exit) +"bau" = (/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/exit) +"bav" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/warning{dir = 4},/area/hallway/secondary/exit) +"baw" = (/obj/machinery/door/airlock/shuttle,/turf/open/floor/mineral/titanium/blue,/area/shuttle/transport) +"bax" = (/obj/machinery/door/airlock/shuttle,/obj/docking_port/mobile{dir = 8; dwidth = 2; height = 12; id = "ferry"; name = "ferry shuttle"; port_angle = 0; preferred_direction = 4; roundstart_move = "ferry_away"; width = 5},/obj/docking_port/stationary{dir = 8; dwidth = 2; height = 12; id = "ferry_home"; name = "port bay 2"; turf_type = /turf/open/space; width = 5},/turf/open/floor/mineral/titanium/blue,/area/shuttle/transport) +"bay" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 4; id_tag = null; name = "Port Docking Bay 2"; req_access_txt = "0"},/turf/open/floor/plating,/area/hallway/secondary/entry) +"baz" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 8; id_tag = null; name = "Port Docking Bay 2"; req_access_txt = "0"},/turf/open/floor/plating,/area/hallway/secondary/entry) +"baA" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/light_switch{pixel_x = -28; pixel_y = 0},/turf/open/floor/wood,/area/security/vacantoffice) +"baB" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/wood,/area/security/vacantoffice) +"baC" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/carpet,/area/security/vacantoffice) +"baD" = (/turf/open/floor/carpet,/area/security/vacantoffice) +"baE" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/carpet,/area/security/vacantoffice) +"baF" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/wood,/area/security/vacantoffice) +"baG" = (/obj/machinery/light{dir = 4},/obj/structure/filingcabinet/chestdrawer,/turf/open/floor/wood,/area/security/vacantoffice) +"baH" = (/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plating,/area/maintenance/port) +"baI" = (/turf/closed/wall,/area/crew_quarters/locker/locker_toilet) +"baJ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/crew_quarters/locker/locker_toilet) +"baK" = (/obj/machinery/door/airlock{name = "Unisex Restrooms"; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet) +"baL" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"baM" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"baN" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/crew_quarters/locker) +"baO" = (/turf/open/floor/plasteel/warning/corner{dir = 2},/area/crew_quarters/locker) +"baP" = (/turf/open/floor/plasteel/warning{dir = 2},/area/crew_quarters/locker) +"baQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/warning/corner{dir = 1},/area/crew_quarters/locker) +"baR" = (/obj/structure/closet/secure_closet/personal,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/crew_quarters/locker) +"baS" = (/obj/machinery/power/apc{dir = 8; name = "Locker Room Maintenance APC"; pixel_x = -27; pixel_y = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/open/floor/plating,/area/maintenance/port) +"baT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/structure/disposalpipe/segment{dir = 4},/turf/closed/wall,/area/maintenance/port) +"baU" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/maintenance/port) +"baV" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/maintenance/port) +"baW" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/closed/wall,/area/maintenance/port) +"baX" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/obj/machinery/door/airlock/maintenance{name = "Cargo Bay Warehouse Maintenance"; req_access_txt = "31"},/turf/open/floor/plating,/area/maintenance/port) +"baY" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/port) +"baZ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/security/detectives_office) +"bba" = (/obj/structure/closet/secure_closet/detective,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/grimy,/area/security/detectives_office) +"bbb" = (/obj/machinery/computer/med_data,/obj/machinery/newscaster{pixel_x = 0; pixel_y = 32},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/grimy,/area/security/detectives_office) +"bbc" = (/obj/machinery/computer/secure_data,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/grimy,/area/security/detectives_office) +"bbd" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/closed/wall,/area/security/detectives_office) +"bbe" = (/obj/structure/table/wood,/obj/item/weapon/storage/box/evidence,/obj/item/weapon/hand_labeler{pixel_x = 5},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/grimy,/area/security/detectives_office) +"bbf" = (/obj/structure/table/wood,/obj/item/device/taperecorder,/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/button/door{id = "kanyewest"; name = "Privacy Shutters"; pixel_x = 0; pixel_y = 24},/turf/open/floor/plasteel/grimy,/area/security/detectives_office) +"bbg" = (/turf/open/floor/plasteel/blue/corner,/area/hallway/primary/central) +"bbh" = (/obj/machinery/light,/turf/open/floor/plasteel/blue/side{dir = 0},/area/hallway/primary/central) +"bbi" = (/obj/machinery/camera{c_tag = "Bridge West Entrance"; dir = 1},/turf/open/floor/plasteel/blue/side{dir = 0},/area/hallway/primary/central) +"bbj" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/blue/side{dir = 6},/area/hallway/primary/central) +"bbk" = (/obj/structure/grille,/obj/structure/cable,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/bridge) +"bbl" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/preopen{id = "bridge blast"; name = "bridge blast door"},/turf/open/floor/plasteel/delivery{name = "floor"},/area/bridge) +"bbm" = (/obj/structure/closet/emcloset,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/blue/side{dir = 0},/area/bridge) +"bbn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/blue/side{dir = 0},/area/bridge) +"bbo" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/open/floor/plasteel/blue/side{dir = 0},/area/bridge) +"bbp" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/open/floor/plasteel/blue/side{dir = 6},/area/bridge) +"bbq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/ai_upload) +"bbr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/ai_upload) +"bbs" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/ai_upload) +"bbt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/highsecurity{icon_state = "door_closed"; locked = 0; name = "AI Upload Access"; req_access_txt = "16"},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) +"bbu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/ai_upload) +"bbv" = (/obj/machinery/ai_status_display,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/ai_upload) +"bbw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/ai_upload) +"bbx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/ai_upload) +"bby" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/filingcabinet/filingcabinet,/turf/open/floor/plasteel/blue/side{dir = 10},/area/bridge) +"bbz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/blue/side{dir = 0},/area/bridge) +"bbA" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/blue/side{dir = 10},/area/hallway/primary/central) +"bbB" = (/obj/machinery/power/apc{dir = 2; name = "Central Hall APC"; pixel_y = -24},/obj/structure/cable,/turf/open/floor/plasteel/blue/side{dir = 0},/area/hallway/primary/central) +"bbC" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/central) +"bbD" = (/obj/structure/chair{dir = 1},/obj/effect/landmark/start{name = "Assistant"},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bbE" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bbF" = (/obj/structure/chair/stool/bar,/obj/effect/landmark/start{name = "Assistant"},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bbG" = (/obj/structure/chair/stool/bar,/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bbH" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock{name = "Kitchen"; req_access_txt = "28"},/turf/open/floor/plasteel/bar,/area/crew_quarters/kitchen) +"bbI" = (/obj/machinery/light_switch{pixel_y = -25},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"bbJ" = (/obj/machinery/light,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"bbK" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"bbL" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/button/door{id = "kitchen"; name = "Kitchen Shutters Control"; pixel_x = -1; pixel_y = -24; req_access_txt = "28"},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"bbM" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"bbN" = (/obj/structure/reagent_dispensers/watertank/high,/turf/open/floor/plasteel,/area/hydroponics) +"bbO" = (/obj/item/weapon/reagent_containers/glass/bucket,/turf/open/floor/plasteel,/area/hydroponics) +"bbP" = (/obj/machinery/hydroponics/constructable,/turf/open/floor/plasteel/green/side{dir = 1},/area/hydroponics) +"bbQ" = (/obj/structure/chair/stool,/obj/effect/landmark/start{name = "Botanist"},/turf/open/floor/plasteel,/area/hydroponics) +"bbR" = (/obj/machinery/camera{c_tag = "Hydroponics South"; dir = 8; network = list("SS13")},/obj/structure/reagent_dispensers/watertank/high,/turf/open/floor/plasteel,/area/hydroponics) +"bbS" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/closed/wall,/area/hydroponics) +"bbT" = (/obj/structure/disposalpipe/segment,/obj/machinery/light{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bbU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bbV" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Library"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/carpet,/area/library) +"bbW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/carpet,/area/library) +"bbX" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/carpet,/area/library) +"bbY" = (/obj/machinery/holopad,/turf/open/floor/carpet,/area/library) +"bbZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/carpet,/area/chapel/main) +"bca" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/carpet,/area/chapel/main) +"bcb" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/carpet,/area/chapel/main) +"bcc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/carpet,/area/chapel/main) +"bcd" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Chapel"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/carpet,/area/chapel/main) +"bce" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/escape{dir = 8},/area/hallway/secondary/exit) +"bcf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/exit) +"bcg" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/exit) +"bch" = (/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/exit) +"bci" = (/obj/machinery/camera{c_tag = "Escape Arm Airlocks"; dir = 8; network = list("SS13")},/turf/open/floor/plasteel/warning{dir = 4},/area/hallway/secondary/exit) +"bcj" = (/obj/structure/closet/crate,/turf/open/floor/mineral/titanium/blue,/area/shuttle/transport) +"bck" = (/obj/structure/chair{dir = 1},/turf/open/floor/mineral/titanium/blue,/area/shuttle/transport) +"bcl" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"bcm" = (/obj/machinery/door/airlock/engineering{name = "Vacant Office A"; req_access_txt = "32"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/wood,/area/security/vacantoffice) +"bcn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/wood,/area/security/vacantoffice) +"bco" = (/obj/structure/chair/office/dark,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/wood,/area/security/vacantoffice) +"bcp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/carpet,/area/security/vacantoffice) +"bcq" = (/obj/structure/chair/office/dark,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/wood,/area/security/vacantoffice) +"bcr" = (/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/components/unary/tank/air{dir = 4},/turf/open/floor/plating,/area/maintenance/port) +"bcs" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/port) +"bct" = (/obj/structure/toilet{pixel_y = 8},/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet) +"bcu" = (/obj/machinery/door/airlock{name = "Unit 1"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet) +"bcv" = (/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet) +"bcw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet) +"bcx" = (/obj/structure/table,/obj/item/weapon/razor,/obj/structure/window{icon_state = "window"; dir = 1},/turf/open/floor/plasteel/barber,/area/crew_quarters/locker) +"bcy" = (/turf/open/floor/plasteel/barber,/area/crew_quarters/locker) +"bcz" = (/obj/structure/closet,/obj/item/clothing/under/suit_jacket/female{pixel_x = 3; pixel_y = 1},/obj/item/clothing/under/suit_jacket/really_black{pixel_x = -2; pixel_y = 0},/obj/structure/window{icon_state = "window"; dir = 1},/turf/open/floor/plasteel/barber,/area/crew_quarters/locker) +"bcA" = (/obj/machinery/portable_atmospherics/pump,/turf/open/floor/plasteel/delivery,/area/crew_quarters/locker) +"bcB" = (/obj/machinery/portable_atmospherics/scrubber,/turf/open/floor/plasteel/delivery,/area/crew_quarters/locker) +"bcC" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/warning{dir = 8},/area/crew_quarters/locker) +"bcD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/crew_quarters/locker) +"bcE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/port) +"bcF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/maintenance/port) +"bcG" = (/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) +"bcH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) +"bcI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) +"bcJ" = (/turf/closed/wall,/area/quartermaster/storage) +"bcK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/port) +"bcL" = (/obj/machinery/light/small{dir = 8},/obj/structure/rack,/obj/item/weapon/storage/briefcase,/turf/open/floor/plasteel/grimy,/area/security/detectives_office) +"bcM" = (/turf/open/floor/carpet,/area/security/detectives_office) +"bcN" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/grimy,/area/security/detectives_office) +"bcO" = (/obj/machinery/firealarm{pixel_y = 24},/obj/machinery/camera{c_tag = "Detective's Office"; dir = 2},/turf/open/floor/plasteel/grimy,/area/security/detectives_office) +"bcP" = (/turf/open/floor/plasteel/grimy,/area/security/detectives_office) +"bcQ" = (/obj/machinery/light_switch{pixel_x = 27},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/grimy,/area/security/detectives_office) +"bcR" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/blue/corner,/area/hallway/primary/central) +"bcS" = (/turf/closed/wall/r_wall,/area/bridge/meeting_room) +"bcT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/bridge/meeting_room) +"bcU" = (/obj/machinery/door/airlock/command{name = "Conference Room"; req_access = null; req_access_txt = "19"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/bridge/meeting_room) +"bcV" = (/turf/closed/wall,/area/bridge/meeting_room) +"bcW" = (/obj/machinery/porta_turret/ai{dir = 4},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) +"bcX" = (/turf/open/floor/bluegrid,/area/ai_monitored/turret_protected/ai_upload) +"bcY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) +"bcZ" = (/obj/machinery/porta_turret/ai{dir = 8},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) +"bda" = (/turf/closed/wall/r_wall,/area/crew_quarters/captain) +"bdb" = (/obj/machinery/door/airlock/command{name = "Captain's Office"; req_access = null; req_access_txt = "20"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/crew_quarters/captain) +"bdc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/crew_quarters/captain) +"bdd" = (/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/central) +"bde" = (/obj/machinery/computer/arcade,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bdf" = (/obj/machinery/vending/cigarette{pixel_x = 0; pixel_y = 0},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bdg" = (/obj/machinery/newscaster{pixel_y = -28},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bdh" = (/obj/machinery/light,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bdi" = (/obj/machinery/light,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bdj" = (/obj/machinery/camera{c_tag = "Bar South"; dir = 1},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bdk" = (/obj/structure/noticeboard{pixel_y = -27},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bdl" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bdm" = (/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bdn" = (/obj/machinery/light/small,/turf/open/floor/plasteel/bar,/area/crew_quarters/bar) +"bdo" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/fancy/donut_box,/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters/preopen{id = "kitchen"; name = "kitchen shutters"},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"bdp" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters/preopen{id = "kitchen"; name = "kitchen shutters"},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) +"bdq" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/plasteel,/area/hydroponics) +"bdr" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/effect/landmark/event_spawn,/turf/open/floor/plating,/area/hydroponics) +"bds" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/hydroponics) +"bdt" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor,/obj/machinery/door/window/northleft{name = "Hydroponics Desk"; req_access_txt = "35"},/turf/open/floor/plasteel,/area/hydroponics) +"bdu" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor,/obj/machinery/door/window/westright{dir = 1; name = "Hydroponics Desk"; req_access_txt = "35"},/turf/open/floor/plasteel,/area/hydroponics) +"bdv" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bdw" = (/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bdx" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bdy" = (/obj/machinery/vending/coffee,/turf/open/floor/wood,/area/library) +"bdz" = (/obj/structure/chair/comfy/black{dir = 4},/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/open/floor/wood,/area/library) +"bdA" = (/obj/structure/table/wood,/obj/item/weapon/pen,/turf/open/floor/wood,/area/library) +"bdB" = (/obj/structure/chair/comfy/black{dir = 4},/turf/open/floor/wood,/area/library) +"bdC" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/wood,/area/library) +"bdD" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel/black,/area/chapel/main) +"bdE" = (/turf/open/floor/carpet{icon_state = "carpetsymbol"},/area/chapel/main) +"bdF" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/chapel/main) +"bdG" = (/obj/machinery/power/apc{dir = 8; name = "Escape Hallway APC"; pixel_x = -25},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel/escape{dir = 8},/area/hallway/secondary/exit) +"bdH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/hallway/secondary/exit) +"bdI" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/exit) +"bdJ" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/warning{dir = 9},/area/hallway/secondary/entry) +"bdK" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"bdL" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/open/floor/wood,/area/security/vacantoffice) +"bdM" = (/obj/structure/table/wood,/obj/item/weapon/folder/blue,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/wood,/area/security/vacantoffice) +"bdN" = (/obj/machinery/atmospherics/components/unary/tank/air{dir = 4},/turf/open/floor/plating,/area/maintenance/port) +"bdO" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port) +"bdP" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/power/apc{dir = 4; name = "Locker Restrooms APC"; pixel_x = 27; pixel_y = 2},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plating,/area/crew_quarters/locker/locker_toilet) +"bdQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet) +"bdR" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet) +"bdS" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/barber,/area/crew_quarters/locker) +"bdT" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/stack/sheet/cardboard,/obj/item/stack/rods{amount = 50},/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) +"bdU" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/electronics/apc,/obj/item/weapon/stock_parts/cell{maxcharge = 2000},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) +"bdV" = (/obj/effect/landmark/event_spawn,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) +"bdW" = (/obj/item/weapon/storage/secure/safe{pixel_x = -23},/turf/open/floor/plasteel/grimy,/area/security/detectives_office) +"bdX" = (/obj/structure/chair/comfy/brown,/obj/effect/landmark/start{name = "Detective"},/turf/open/floor/carpet,/area/security/detectives_office) +"bdY" = (/obj/structure/table/wood,/obj/item/device/camera/detective,/turf/open/floor/carpet,/area/security/detectives_office) +"bdZ" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/grimy,/area/security/detectives_office) +"bea" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/security{name = "Detective's Office"; req_access_txt = "4"},/turf/open/floor/plasteel/grimy,/area/security/detectives_office) +"beb" = (/obj/machinery/photocopier,/turf/open/floor/wood,/area/bridge/meeting_room) +"bec" = (/obj/machinery/button/door{id = "heads_meeting"; name = "Security Shutters"; pixel_x = 0; pixel_y = 24},/turf/open/floor/wood,/area/bridge/meeting_room) +"bed" = (/obj/machinery/newscaster{pixel_y = 32},/turf/open/floor/wood,/area/bridge/meeting_room) +"bee" = (/obj/machinery/camera{c_tag = "Conference Room"; dir = 2},/turf/open/floor/wood,/area/bridge/meeting_room) +"bef" = (/turf/open/floor/wood,/area/bridge/meeting_room) +"beg" = (/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/wood,/area/bridge/meeting_room) +"beh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/bridge/meeting_room) +"bei" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/wood,/area/bridge/meeting_room) +"bej" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/ai_upload) +"bek" = (/obj/structure/table,/obj/item/weapon/aiModule/reset,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) +"bel" = (/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) +"bem" = (/obj/structure/table,/obj/item/weapon/folder/blue,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) +"ben" = (/obj/structure/table,/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) +"beo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/ai_upload) +"bep" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 4},/turf/open/floor/wood,/area/crew_quarters/captain) +"beq" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/wood,/area/crew_quarters/captain) +"ber" = (/obj/machinery/light_switch{pixel_y = 28},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/wood,/area/crew_quarters/captain) +"bes" = (/obj/machinery/ai_status_display{pixel_y = 32},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/carpet,/area/crew_quarters/captain) +"bet" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/carpet,/area/crew_quarters/captain) +"beu" = (/obj/machinery/status_display{pixel_x = 0; pixel_y = 32},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/carpet,/area/crew_quarters/captain) +"bev" = (/obj/machinery/power/apc{cell_type = 2500; dir = 1; name = "Captain's Office APC"; pixel_y = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/wood,/area/crew_quarters/captain) +"bew" = (/turf/open/floor/wood,/area/crew_quarters/captain) +"bex" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Diner"},/turf/open/floor/plasteel,/area/crew_quarters/bar) +"bey" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/crew_quarters/bar) +"bez" = (/obj/structure/sign/barsign,/turf/closed/wall,/area/crew_quarters/bar) +"beA" = (/turf/open/floor/plasteel/white/corner{dir = 1},/area/hallway/primary/starboard) +"beB" = (/obj/machinery/camera{c_tag = "Starboard Primary Hallway 2"; dir = 2; network = list("SS13")},/turf/open/floor/plasteel/white/corner{dir = 1},/area/hallway/primary/starboard) +"beC" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Hydroponics"; req_access_txt = "35"},/turf/open/floor/plasteel,/area/hydroponics) +"beD" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/library) +"beE" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/chapel/main) +"beF" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/plasteel/escape{dir = 8},/area/hallway/secondary/exit) +"beG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/exit) +"beH" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 4; name = "Escape Airlock"},/turf/open/floor/plating,/area/hallway/secondary/exit) +"beI" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/turf/open/floor/plating,/area/shuttle/escape) +"beJ" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"beK" = (/obj/machinery/power/apc{dir = 8; name = "Vacant Office A APC"; pixel_x = -24; pixel_y = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating,/area/security/vacantoffice{name = "Vacant Office A"}) +"beL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/port) +"beM" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating,/area/maintenance/port) +"beN" = (/obj/machinery/door/airlock{name = "Unit 2"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet) +"beO" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/mirror{pixel_x = 28},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet) +"beP" = (/obj/machinery/washing_machine,/turf/open/floor/plasteel/barber,/area/crew_quarters/locker) +"beQ" = (/obj/machinery/washing_machine,/obj/machinery/light,/turf/open/floor/plasteel/barber,/area/crew_quarters/locker) +"beR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/closet/crate,/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) +"beS" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) +"beT" = (/obj/structure/closet/crate,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) +"beU" = (/obj/machinery/door/airlock/maintenance{name = "Detective Maintenance"; req_access_txt = "4"},/turf/open/floor/plating,/area/security/detectives_office) +"beV" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey{pixel_x = 3},/obj/item/weapon/lighter,/turf/open/floor/carpet,/area/security/detectives_office) +"beW" = (/obj/structure/table/wood,/obj/machinery/computer/security/wooden_tv,/turf/open/floor/carpet,/area/security/detectives_office) +"beX" = (/obj/structure/table/wood,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/clothing/glasses/sunglasses,/turf/open/floor/carpet,/area/security/detectives_office) +"beY" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green,/turf/open/floor/carpet,/area/security/detectives_office) +"beZ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/shutters/preopen{id = "kanyewest"; layer = 2.9; name = "privacy shutters"},/turf/open/floor/plating,/area/security/detectives_office) +"bfa" = (/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "heads_meeting"; layer = 2.9; name = "privacy shutters"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/bridge/meeting_room) +"bfb" = (/obj/machinery/recharger{pixel_y = 4},/obj/structure/table,/turf/open/floor/wood,/area/bridge/meeting_room) +"bfc" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/carpet,/area/bridge/meeting_room) +"bfd" = (/obj/structure/chair/comfy/black,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/carpet,/area/bridge/meeting_room) +"bfe" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/carpet,/area/bridge/meeting_room) +"bff" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/wood,/area/bridge/meeting_room) +"bfg" = (/obj/machinery/vending/snack,/turf/open/floor/wood,/area/bridge/meeting_room) +"bfh" = (/obj/structure/table,/obj/item/weapon/aiModule/supplied/quarantine,/obj/machinery/camera/motion{dir = 4},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) +"bfi" = (/obj/machinery/holopad,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) +"bfj" = (/obj/structure/table,/obj/item/weapon/aiModule/supplied/freeform,/obj/structure/sign/kiddieplaque{pixel_x = 32},/obj/machinery/camera/motion{dir = 8},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) +"bfk" = (/obj/machinery/vending/cigarette,/turf/open/floor/wood,/area/crew_quarters/captain) +"bfl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/crew_quarters/captain) +"bfm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/wood,/area/crew_quarters/captain) +"bfn" = (/obj/structure/chair/comfy/brown{dir = 4},/turf/open/floor/carpet,/area/crew_quarters/captain) +"bfo" = (/obj/structure/table/wood,/obj/item/weapon/storage/fancy/donut_box,/turf/open/floor/carpet,/area/crew_quarters/captain) +"bfp" = (/obj/structure/chair/comfy/brown{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/carpet,/area/crew_quarters/captain) +"bfq" = (/obj/structure/displaycase/captain,/turf/open/floor/wood,/area/crew_quarters/captain) +"bfr" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=Dorm"; location = "HOP2"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bfs" = (/obj/structure/sign/directions/evac{dir = 4; icon_state = "direction_evac"; pixel_x = 32; pixel_y = 28},/obj/structure/sign/directions/security{dir = 1; icon_state = "direction_sec"; pixel_x = 32; pixel_y = 36},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bft" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bfu" = (/obj/machinery/camera{c_tag = "Starboard Primary Hallway"; dir = 2; network = list("SS13")},/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bfv" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bfw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bfx" = (/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bfy" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bfz" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bfA" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bfB" = (/obj/machinery/camera{c_tag = "Starboard Primary Hallway 5"; dir = 2; network = list("SS13")},/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bfC" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/white/corner{dir = 4},/area/hallway/secondary/exit) +"bfD" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel,/area/hallway/secondary/exit) +"bfE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/exit) +"bfF" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/hallway/secondary/exit) +"bfG" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 32; pixel_y = 0},/turf/open/floor/plasteel/warning{dir = 4},/area/hallway/secondary/exit) +"bfH" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Cargo"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"bfI" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Infirmary"},/turf/open/floor/mineral/titanium/blue,/area/shuttle/escape) +"bfJ" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/blue/corner{dir = 1},/area/hallway/secondary/entry) +"bfK" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port) +"bfL" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port) +"bfM" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plating,/area/maintenance/port) +"bfN" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port) +"bfO" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/port) +"bfP" = (/obj/effect/landmark{name = "blobstart"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/port) +"bfQ" = (/obj/structure/closet/emcloset,/turf/open/floor/plating,/area/maintenance/port) +"bfR" = (/obj/structure/rack{dir = 4},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/port) +"bfS" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/port) +"bfT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 1},/turf/open/floor/plating,/area/maintenance/port) +"bfU" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet) +"bfV" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet) +"bfW" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/warning{dir = 8},/area/crew_quarters/locker) +"bfX" = (/obj/machinery/camera{c_tag = "Locker Room South"; dir = 8; network = list("SS13")},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/crew_quarters/locker) +"bfY" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/obj/structure/closet/crate/freezer,/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) +"bfZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) +"bga" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) +"bgb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/quartermaster/storage) +"bgc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/power/apc{dir = 4; name = "Detective's Office APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable,/turf/open/floor/plating,/area/maintenance/port) +"bgd" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/security/detectives_office) +"bge" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/grimy,/area/security/detectives_office) +"bgf" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/grimy,/area/security/detectives_office) +"bgg" = (/obj/machinery/light/small,/turf/open/floor/plasteel/grimy,/area/security/detectives_office) +"bgh" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/filingcabinet,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/grimy,/area/security/detectives_office) +"bgi" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bgj" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "heads_meeting"; layer = 2.9; name = "privacy shutters"},/turf/open/floor/plating,/area/bridge/meeting_room) +"bgk" = (/obj/item/weapon/hand_labeler,/obj/item/device/assembly/timer,/obj/structure/table,/turf/open/floor/wood,/area/bridge/meeting_room) +"bgl" = (/obj/structure/chair/comfy/black{dir = 4},/turf/open/floor/carpet,/area/bridge/meeting_room) +"bgm" = (/obj/structure/table/wood,/obj/item/device/radio/intercom{dir = 8; freerange = 1; name = "Station Intercom (Command)"; pixel_x = 0},/turf/open/floor/carpet,/area/bridge/meeting_room) +"bgn" = (/obj/item/weapon/book/manual/wiki/security_space_law,/obj/structure/table/wood,/turf/open/floor/carpet,/area/bridge/meeting_room) +"bgo" = (/obj/structure/chair/comfy/black{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/carpet,/area/bridge/meeting_room) +"bgp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/bridge/meeting_room) +"bgq" = (/obj/machinery/vending/cola,/turf/open/floor/wood,/area/bridge/meeting_room) +"bgr" = (/obj/machinery/airalarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/machinery/porta_turret/ai{dir = 4},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) +"bgs" = (/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/turret_protected/ai_upload) +"bgt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/bluegrid,/area/ai_monitored/turret_protected/ai_upload) +"bgu" = (/obj/machinery/computer/arcade,/turf/open/floor/wood,/area/crew_quarters/captain) +"bgv" = (/obj/structure/table/wood,/turf/open/floor/carpet,/area/crew_quarters/captain) +"bgw" = (/obj/machinery/camera{c_tag = "Central Hallway East"; dir = 4; network = list("SS13")},/obj/structure/disposalpipe/segment,/obj/machinery/status_display{density = 0; layer = 3; pixel_x = -32; pixel_y = 0},/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/central) +"bgx" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bgy" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bgz" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bgA" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bgB" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bgC" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bgD" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/junction{dir = 8; icon_state = "pipe-j1"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bgE" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bgF" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bgG" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=HOP2"; location = "Stbd"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bgH" = (/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bgI" = (/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/exit) +"bgJ" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/exit) +"bgK" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/exit) +"bgL" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/hallway/secondary/exit) +"bgM" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 4; name = "Cargo Escape Airlock"},/turf/open/floor/plating,/area/hallway/secondary/exit) +"bgN" = (/obj/machinery/light/small,/turf/open/floor/plating,/area/hallway/secondary/exit) +"bgO" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 8; name = "Cargo Escape Airlock"},/turf/open/floor/plating,/area/hallway/secondary/exit) +"bgP" = (/turf/open/floor/mineral/titanium/yellow,/area/shuttle/escape) +"bgQ" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/mineral/titanium/yellow,/area/shuttle/escape) +"bgR" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 8},/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"bgS" = (/turf/open/floor/plasteel/warning/corner{dir = 2},/area/hallway/secondary/entry) +"bgT" = (/turf/closed/wall,/area/maintenance/disposal) +"bgU" = (/obj/structure/disposalpipe/segment,/turf/closed/wall,/area/maintenance/disposal) +"bgV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/maintenance/disposal) +"bgW" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/port) +"bgX" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/port) +"bgY" = (/obj/machinery/door/airlock{name = "Unit 3"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet) +"bgZ" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet) +"bha" = (/obj/item/latexballon,/turf/open/floor/plating,/area/maintenance/port) +"bhb" = (/obj/effect/landmark{name = "blobstart"},/obj/item/clothing/suit/ianshirt,/obj/structure/closet,/turf/open/floor/plating,/area/maintenance/port) +"bhc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/crew_quarters/locker) +"bhd" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/port) +"bhe" = (/obj/structure/closet/crate/internals,/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) +"bhf" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) +"bhg" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) +"bhh" = (/obj/structure/closet/crate,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) +"bhi" = (/obj/structure/disposalpipe/segment,/turf/closed/wall,/area/security/detectives_office) +"bhj" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bhk" = (/obj/item/weapon/storage/fancy/donut_box,/obj/structure/table,/turf/open/floor/wood,/area/bridge/meeting_room) +"bhl" = (/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/structure/table/wood,/turf/open/floor/carpet,/area/bridge/meeting_room) +"bhm" = (/obj/item/weapon/folder/blue,/obj/structure/table/wood,/turf/open/floor/carpet,/area/bridge/meeting_room) +"bhn" = (/obj/structure/table,/obj/item/weapon/aiModule/core/full/asimov,/obj/item/weapon/aiModule/core/freeformcore,/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Core Modules"; req_access_txt = "20"},/obj/structure/window/reinforced,/obj/item/weapon/aiModule/core/full/corp,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/aiModule/core/full/custom,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) +"bho" = (/obj/machinery/light,/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) +"bhp" = (/obj/machinery/computer/upload/ai,/obj/machinery/flasher{id = "AI"; pixel_x = 0; pixel_y = -21},/turf/open/floor/bluegrid,/area/ai_monitored/turret_protected/ai_upload) +"bhq" = (/obj/machinery/power/apc{cell_type = 5000; dir = 2; name = "Upload APC"; pixel_y = -24},/obj/structure/cable,/turf/open/floor/bluegrid,/area/ai_monitored/turret_protected/ai_upload) +"bhr" = (/obj/machinery/computer/upload/borg,/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1447; listening = 0; name = "Station Intercom (AI Private)"; pixel_y = -29},/turf/open/floor/bluegrid,/area/ai_monitored/turret_protected/ai_upload) +"bhs" = (/obj/machinery/light,/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) +"bht" = (/obj/structure/table,/obj/item/weapon/aiModule/supplied/oxygen,/obj/item/weapon/aiModule/zeroth/oneHuman,/obj/machinery/door/window{base_state = "left"; dir = 8; icon_state = "left"; name = "High-Risk Modules"; req_access_txt = "20"},/obj/item/weapon/aiModule/reset/purge,/obj/structure/window/reinforced,/obj/item/weapon/aiModule/core/full/antimov,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/aiModule/supplied/protectStation,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai_upload) +"bhu" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/wood,/area/crew_quarters/captain) +"bhv" = (/obj/structure/chair,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/crew_quarters/captain) +"bhw" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/wood,/area/crew_quarters/captain) +"bhx" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/carpet,/area/crew_quarters/captain) +"bhy" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/carpet,/area/crew_quarters/captain) +"bhz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/carpet,/area/crew_quarters/captain) +"bhA" = (/obj/structure/table/wood,/obj/machinery/camera{c_tag = "Captain's Office"; dir = 8},/obj/item/weapon/storage/lockbox/medal{pixel_y = 0},/turf/open/floor/wood,/area/crew_quarters/captain) +"bhB" = (/obj/structure/disposalpipe/segment,/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/central) +"bhC" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=Stbd"; location = "HOP"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bhD" = (/obj/structure/sign/directions/medical{dir = 4; icon_state = "direction_med"; pixel_x = 32; pixel_y = -24},/obj/structure/sign/directions/science{dir = 4; icon_state = "direction_sci"; pixel_x = 32; pixel_y = -32},/obj/structure/sign/directions/engineering{pixel_x = 32; pixel_y = -40},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bhE" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bhF" = (/obj/machinery/light,/turf/open/floor/plasteel/blue/corner,/area/hallway/primary/starboard) +"bhG" = (/turf/open/floor/plasteel/blue/side{dir = 0},/area/hallway/primary/starboard) +"bhH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/blue/side{dir = 0},/area/hallway/primary/starboard) +"bhI" = (/obj/machinery/light,/turf/open/floor/plasteel/blue/corner{dir = 8},/area/hallway/primary/starboard) +"bhJ" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bhK" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/obj/machinery/light,/turf/open/floor/plasteel/white/corner{dir = 2},/area/hallway/primary/starboard) +"bhL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white/side{dir = 2},/area/hallway/primary/starboard) +"bhM" = (/turf/open/floor/plasteel/white/corner{dir = 8},/area/hallway/primary/starboard) +"bhN" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bhO" = (/obj/machinery/camera{c_tag = "Starboard Primary Hallway 3"; dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bhP" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bhQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bhR" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bhS" = (/obj/machinery/light,/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bhT" = (/obj/machinery/camera{c_tag = "Starboard Primary Hallway 4"; dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bhU" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/red/corner{dir = 2},/area/hallway/secondary/exit) +"bhV" = (/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = -32},/turf/open/floor/plasteel/escape{dir = 2},/area/hallway/secondary/exit) +"bhW" = (/obj/machinery/newscaster{pixel_y = -32},/obj/machinery/light,/turf/open/floor/plasteel/escape{dir = 2},/area/hallway/secondary/exit) +"bhX" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white/corner{dir = 8},/area/hallway/secondary/exit) +"bhY" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/crowbar,/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"bhZ" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 2; name = "Port Docking Bay 4"; req_access_txt = "0"},/turf/open/floor/plating,/area/hallway/secondary/entry) +"bia" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 2; name = "Port Docking Bay 3"; req_access_txt = "0"},/turf/open/floor/plating,/area/hallway/secondary/entry) +"bib" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/warning,/area/hallway/secondary/entry) +"bic" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/warning,/area/hallway/secondary/entry) +"bid" = (/obj/structure/disposaloutlet{dir = 4},/obj/structure/disposalpipe/trunk{dir = 1},/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/disposal) +"bie" = (/obj/machinery/conveyor{dir = 8; id = "garbage"},/turf/open/floor/plating,/area/maintenance/disposal) +"bif" = (/obj/machinery/conveyor{dir = 8; id = "garbage"},/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/maintenance/disposal) +"big" = (/obj/machinery/conveyor{dir = 8; id = "garbage"},/obj/machinery/recycler,/obj/structure/sign/securearea{name = "\improper STAY CLEAR HEAVY MACHINERY"; pixel_y = 32},/turf/open/floor/plating,/area/maintenance/disposal) +"bih" = (/obj/machinery/conveyor{dir = 6; id = "garbage"; verted = 1},/turf/open/floor/plating,/area/maintenance/disposal) +"bii" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/port) +"bij" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port) +"bik" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port) +"bil" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port) +"bim" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/sortjunction{dir = 1; icon_state = "pipe-j2s"; sortType = 1},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/port) +"bin" = (/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet) +"bio" = (/obj/machinery/camera{c_tag = "Locker Room Toilets"; dir = 8; network = list("SS13")},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet) +"bip" = (/obj/machinery/power/apc{dir = 1; name = "Locker Room APC"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/mob/living/simple_animal/mouse,/turf/open/floor/plating,/area/crew_quarters/locker) +"biq" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port) +"bir" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/port) +"bis" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plating,/area/maintenance/port) +"bit" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/port) +"biu" = (/obj/structure/closet/crate/medical,/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) +"biv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/stack/sheet/cardboard,/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) +"biw" = (/obj/item/clothing/gloves/color/rainbow,/obj/item/clothing/head/soft/rainbow,/obj/item/clothing/shoes/sneakers/rainbow,/obj/item/clothing/under/color/rainbow,/turf/open/floor/plating,/area/maintenance/port) +"bix" = (/obj/structure/disposalpipe/trunk,/obj/structure/disposaloutlet{dir = 4},/turf/open/floor/plating,/area/quartermaster/office) +"biy" = (/obj/machinery/conveyor{dir = 4; id = "packageSort2"},/turf/open/floor/plating,/area/quartermaster/office) +"biz" = (/obj/machinery/conveyor{dir = 4; id = "packageSort2"},/obj/structure/plasticflaps,/turf/open/floor/plating,/area/quartermaster/office) +"biA" = (/obj/machinery/disposal/deliveryChute{dir = 8},/obj/structure/disposalpipe/trunk{dir = 1},/turf/open/floor/plating,/area/quartermaster/office) +"biB" = (/turf/closed/wall,/area/quartermaster/office) +"biC" = (/turf/open/floor/plasteel/brown/corner{dir = 8},/area/hallway/primary/central) +"biD" = (/obj/machinery/requests_console{announcementConsole = 1; department = "Bridge"; departmentType = 5; name = "Bridge RC"; pixel_y = -30},/obj/machinery/light,/turf/open/floor/wood,/area/bridge/meeting_room) +"biE" = (/turf/open/floor/carpet,/area/bridge/meeting_room) +"biF" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/carpet,/area/bridge/meeting_room) +"biG" = (/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/carpet,/area/bridge/meeting_room) +"biH" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/carpet,/area/bridge/meeting_room) +"biI" = (/obj/structure/noticeboard{dir = 8; pixel_x = 27; pixel_y = 0},/turf/open/floor/wood,/area/bridge/meeting_room) +"biJ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/ai_upload) +"biK" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/ai_upload) +"biL" = (/obj/machinery/ai_status_display,/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/ai_upload) +"biM" = (/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/ai_upload) +"biN" = (/obj/machinery/status_display{density = 0; layer = 4},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/ai_upload) +"biO" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/ai_upload) +"biP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/ai_upload) +"biQ" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/open/floor/wood,/area/crew_quarters/captain) +"biR" = (/obj/structure/table/wood,/obj/item/weapon/folder/blue,/obj/item/weapon/stamp/captain,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/crew_quarters/captain) +"biS" = (/obj/structure/table/wood,/obj/item/weapon/hand_tele,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/wood,/area/crew_quarters/captain) +"biT" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green,/turf/open/floor/wood,/area/crew_quarters/captain) +"biU" = (/obj/effect/landmark/event_spawn,/turf/open/floor/wood,/area/crew_quarters/captain) +"biV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/wood,/area/crew_quarters/captain) +"biW" = (/obj/structure/table/wood,/obj/item/weapon/pinpointer,/obj/item/weapon/disk/nuclear,/obj/item/weapon/storage/secure/safe{pixel_x = 35; pixel_y = 5},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/wood,/area/crew_quarters/captain) +"biX" = (/turf/closed/wall,/area/medical/chemistry) +"biY" = (/obj/structure/sign/bluecross_2,/turf/closed/wall,/area/medical/medbay) +"biZ" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/medical/medbay) +"bja" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay) +"bjb" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/white,/area/medical/medbay) +"bjc" = (/turf/closed/wall,/area/security/checkpoint/medical) +"bjd" = (/turf/closed/wall,/area/medical/morgue) +"bje" = (/obj/machinery/door/airlock/medical{name = "Morgue"; req_access_txt = "6"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/medical/morgue) +"bjf" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bjg" = (/obj/machinery/power/apc{dir = 2; name = "Starboard Primary Hallway APC"; pixel_y = -24},/obj/structure/cable,/turf/open/floor/plasteel,/area/hallway/primary/starboard) +"bjh" = (/turf/closed/wall,/area/storage/emergency) +"bji" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/asmaint) +"bjj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/assembly/chargebay) +"bjk" = (/turf/open/floor/plasteel/loadingarea{dir = 1},/area/hallway/primary/starboard) +"bjl" = (/turf/closed/wall/r_wall,/area/assembly/robotics) +"bjm" = (/turf/open/floor/plasteel/purple/side{dir = 10},/area/hallway/primary/starboard) +"bjn" = (/turf/open/floor/plasteel/purple/side{dir = 2},/area/hallway/primary/starboard) +"bjo" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/open/floor/plasteel/purple/side{dir = 2},/area/hallway/primary/starboard) +"bjp" = (/obj/structure/sign/securearea{pixel_x = 0; pixel_y = -32},/turf/open/floor/plasteel/purple/side{dir = 2},/area/hallway/primary/starboard) +"bjq" = (/obj/machinery/light,/turf/open/floor/plasteel/purple/side{dir = 2},/area/hallway/primary/starboard) +"bjr" = (/turf/open/floor/plasteel/purple/side{dir = 6},/area/hallway/primary/starboard) +"bjs" = (/turf/closed/wall/r_wall,/area/toxins/lab) +"bjt" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/escape{dir = 10},/area/hallway/secondary/exit) +"bju" = (/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/escape{dir = 2},/area/hallway/secondary/exit) +"bjv" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/warning,/area/hallway/secondary/exit) +"bjw" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/warning{dir = 6},/area/hallway/secondary/exit) +"bjx" = (/obj/structure/closet,/turf/open/floor/mineral/titanium/yellow,/area/shuttle/escape) +"bjy" = (/obj/structure/closet/crate,/turf/open/floor/mineral/titanium/yellow,/area/shuttle/escape) +"bjz" = (/obj/machinery/camera{c_tag = "Arrivals Bay 3 & 4"; dir = 1},/turf/open/floor/plasteel/warning,/area/hallway/secondary/entry) +"bjA" = (/obj/machinery/vending/cigarette,/turf/open/floor/plasteel/warning{dir = 6},/area/hallway/secondary/entry) +"bjB" = (/obj/machinery/conveyor{dir = 5; id = "garbage"},/turf/open/floor/plating,/area/maintenance/disposal) +"bjC" = (/obj/machinery/conveyor{dir = 4; id = "garbage"},/turf/open/floor/plating,/area/maintenance/disposal) +"bjD" = (/obj/machinery/conveyor{dir = 10; id = "garbage"; verted = -1},/turf/open/floor/plating,/area/maintenance/disposal) +"bjE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/closed/wall,/area/maintenance/disposal) +"bjF" = (/obj/machinery/power/apc{dir = 8; name = "Disposal APC"; pixel_x = -24; pixel_y = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/disposal) +"bjG" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port) +"bjH" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port) +"bjI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/port) +"bjJ" = (/obj/machinery/door/airlock{name = "Unit 4"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet) +"bjK" = (/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/open/floor/plasteel/freezer,/area/crew_quarters/locker/locker_toilet) +"bjL" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/port) +"bjM" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/port) +"bjN" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port) +"bjO" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port) +"bjP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/port) +"bjQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port) +"bjR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/power/apc{dir = 2; name = "Cargo Bay APC"; pixel_x = 1; pixel_y = -24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating,/area/maintenance/port) +"bjS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/closed/wall,/area/maintenance/port) +"bjT" = (/obj/structure/closet/cardboard,/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) +"bjU" = (/obj/machinery/button/door{id = "qm_warehouse"; name = "Warehouse Door Control"; pixel_x = -1; pixel_y = -24; req_access_txt = "31"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/structure/closet/crate,/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) +"bjV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/obj/structure/closet/crate,/turf/open/floor/plasteel/floorgrime,/area/quartermaster/storage) +"bjW" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/closed/wall,/area/quartermaster/storage) +"bjX" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/closed/wall,/area/quartermaster/office) +"bjY" = (/obj/machinery/conveyor_switch/oneway{id = "packageSort2"},/obj/machinery/camera{c_tag = "Cargo Delivery Office"; dir = 4; network = list("SS13")},/obj/machinery/requests_console{department = "Cargo Bay"; departmentType = 2; pixel_x = -30; pixel_y = 0},/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/brown{dir = 1},/area/quartermaster/office) +"bjZ" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/brown{dir = 1},/area/quartermaster/office) +"bka" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/brown{dir = 1},/area/quartermaster/office) +"bkb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/window/reinforced{dir = 1; layer = 2.9},/turf/open/floor/plasteel/brown{dir = 1},/area/quartermaster/office) +"bkc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/window/reinforced{dir = 1; layer = 2.9},/obj/structure/filingcabinet/filingcabinet,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel/brown{dir = 1},/area/quartermaster/office) +"bkd" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/quartermaster/office) +"bke" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/brown/corner{dir = 8},/area/hallway/primary/central) +"bkf" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bkg" = (/obj/machinery/camera{c_tag = "Central Hallway West"; dir = 8},/turf/open/floor/plasteel/blue/corner,/area/hallway/primary/central) +"bkh" = (/obj/machinery/door/window/eastright{dir = 1; name = "Bridge Delivery"; req_access_txt = "19"},/turf/open/floor/plasteel/delivery,/area/bridge/meeting_room) +"bki" = (/obj/structure/reagent_dispensers/water_cooler,/turf/open/floor/wood,/area/bridge/meeting_room) +"bkj" = (/obj/machinery/computer/slot_machine,/turf/open/floor/wood,/area/bridge/meeting_room) +"bkk" = (/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 0; pixel_y = -32},/turf/open/floor/wood,/area/bridge/meeting_room) +"bkl" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/wood,/area/bridge/meeting_room) +"bkm" = (/obj/machinery/vending/coffee,/obj/machinery/light{dir = 4},/turf/open/floor/wood,/area/bridge/meeting_room) +"bkn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/engine/gravity_generator) +"bko" = (/turf/open/floor/plasteel/black,/area/engine/gravity_generator) +"bkp" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall/r_wall,/area/engine/gravity_generator) +"bkq" = (/obj/machinery/requests_console{announcementConsole = 1; department = "Captain's Desk"; departmentType = 5; name = "Captain RC"; pixel_x = -30; pixel_y = 0},/obj/structure/filingcabinet,/turf/open/floor/wood,/area/crew_quarters/captain) +"bkr" = (/obj/structure/chair/comfy/brown{dir = 4},/obj/effect/landmark/start{name = "Captain"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/crew_quarters/captain) +"bks" = (/obj/machinery/computer/communications,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/wood,/area/crew_quarters/captain) +"bkt" = (/obj/structure/table/wood,/obj/item/weapon/book/manual/wiki/security_space_law,/obj/item/weapon/coin/plasma,/turf/open/floor/wood,/area/crew_quarters/captain) +"bku" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/holopad,/turf/open/floor/wood,/area/crew_quarters/captain) +"bkv" = (/obj/structure/table/wood,/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/item/device/camera,/obj/item/weapon/storage/photo_album{pixel_y = -10},/turf/open/floor/wood,/area/crew_quarters/captain) +"bkw" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bkx" = (/obj/structure/closet/secure_closet/chemical,/turf/open/floor/plasteel/white,/area/medical/chemistry) +"bky" = (/obj/machinery/power/apc{dir = 1; name = "Chemistry APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/mob/living/simple_animal/bot/cleanbot{name = "C.L.E.A.N."},/turf/open/floor/plasteel/white,/area/medical/chemistry) +"bkz" = (/obj/machinery/camera{c_tag = "Chemistry"; dir = 2; network = list("SS13")},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/chem_heater,/turf/open/floor/plasteel/white,/area/medical/chemistry) +"bkA" = (/obj/machinery/chem_dispenser,/turf/open/floor/plasteel/whiteyellow/side{dir = 1},/area/medical/chemistry) +"bkB" = (/obj/machinery/chem_master,/turf/open/floor/plasteel/whiteyellow/side{dir = 5},/area/medical/chemistry) +"bkC" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 0; pixel_y = 0},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bkD" = (/obj/structure/chair,/turf/open/floor/plasteel/white,/area/medical/medbay) +"bkE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay) +"bkF" = (/turf/open/floor/plasteel/white,/area/medical/medbay) +"bkG" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/checkpoint/medical) +"bkH" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/obj/machinery/button/door{desc = "A remote control switch for the medbay foyer."; id = "MedbayFoyer"; name = "Medbay Doors Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = 26; req_access_txt = "5"},/obj/item/weapon/book/manual/wiki/security_space_law,/turf/open/floor/plasteel/red/side{dir = 9},/area/security/checkpoint/medical) +"bkI" = (/obj/machinery/camera{c_tag = "Security Post - Medbay"; dir = 2; network = list("SS13")},/obj/machinery/requests_console{department = "Security"; departmentType = 5; pixel_y = 30},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/checkpoint/medical) +"bkJ" = (/obj/structure/filingcabinet,/obj/machinery/newscaster{pixel_x = 32; pixel_y = 0},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/checkpoint/medical) +"bkK" = (/obj/structure/table,/obj/item/weapon/storage/box/bodybags,/obj/item/weapon/pen,/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/black,/area/medical/morgue) +"bkL" = (/turf/open/floor/plasteel/black,/area/medical/morgue) +"bkM" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/black,/area/medical/morgue) +"bkN" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/medical/morgue) +"bkO" = (/obj/machinery/power/apc{dir = 1; name = "Morgue APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plasteel/black,/area/medical/morgue) +"bkP" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/black,/area/medical/morgue) +"bkQ" = (/obj/machinery/door/airlock{name = "Starboard Emergency Storage"; req_access_txt = "0"},/turf/open/floor/plating,/area/storage/emergency) +"bkR" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/asmaint) +"bkS" = (/turf/closed/wall,/area/assembly/chargebay) +"bkT" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Mech Bay"; req_access_txt = "29"; req_one_access_txt = "0"},/turf/open/floor/plasteel,/area/assembly/chargebay) +"bkU" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters{id = "Skynet_launch"; name = "mech bay"},/turf/open/floor/plasteel/delivery,/area/assembly/chargebay) +"bkV" = (/obj/machinery/computer/rdconsole/robotics,/obj/machinery/airalarm{pixel_y = 25},/turf/open/floor/plasteel/white,/area/assembly/robotics) +"bkW" = (/obj/structure/table,/obj/item/weapon/book/manual/robotics_cyborgs{pixel_x = 2; pixel_y = 5},/obj/item/weapon/storage/belt/utility,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/machinery/requests_console{department = "Robotics"; departmentType = 2; name = "Robotics RC"; pixel_y = 30},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/white,/area/assembly/robotics) +"bkX" = (/obj/machinery/r_n_d/circuit_imprinter,/turf/open/floor/plasteel/white,/area/assembly/robotics) +"bkY" = (/obj/structure/grille,/obj/machinery/door/poddoor/shutters/preopen{id = "robotics"; name = "robotics lab shutters"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/assembly/robotics) +"bkZ" = (/obj/structure/table/reinforced,/obj/machinery/door/window/eastright{base_state = "left"; dir = 2; icon_state = "left"; name = "Robotics Desk"; req_access_txt = "29"},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/machinery/door/poddoor/shutters/preopen{id = "robotics"; name = "robotics lab shutters"},/turf/open/floor/plating,/area/assembly/robotics) +"bla" = (/turf/closed/wall,/area/medical/research{name = "Research Division"}) +"blb" = (/obj/machinery/door/airlock/research{cyclelinkeddir = 2; name = "Research Division Access"; req_access_txt = "47"},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"blc" = (/obj/structure/grille,/obj/machinery/door/poddoor/shutters/preopen{id = "rnd"; name = "research lab shutters"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/toxins/lab) +"bld" = (/obj/structure/table/reinforced,/obj/machinery/door/window/southright{name = "Research and Development Desk"; req_access_txt = "7"},/obj/machinery/door/poddoor/shutters/preopen{id = "rnd"; name = "research lab shutters"},/turf/open/floor/plating,/area/toxins/lab) +"ble" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 50; pixel_x = 3; pixel_y = 3},/obj/item/stack/sheet/metal{amount = 50},/obj/item/clothing/glasses/welding,/turf/open/floor/plasteel/white,/area/toxins/lab) +"blf" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = 2; pixel_y = 3},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/white,/area/toxins/lab) +"blg" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/asmaint2) +"blh" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/maintenance/asmaint2) +"bli" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/turf/open/floor/plating/airless,/area/shuttle/escape) +"blj" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 1; name = "Port Docking Bay 4"; req_access_txt = "0"},/turf/open/floor/plating,/area/hallway/secondary/entry) +"blk" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 1; name = "Port Docking Bay 3"; req_access_txt = "0"},/turf/open/floor/plating,/area/hallway/secondary/entry) +"bll" = (/obj/machinery/conveyor{dir = 1; id = "garbage"},/turf/open/floor/plating,/area/maintenance/disposal) +"blm" = (/obj/structure/disposalpipe/trunk{dir = 2},/obj/machinery/disposal/deliveryChute{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; layer = 3},/turf/open/floor/plating/warnplate{dir = 4},/area/maintenance/disposal) +"bln" = (/obj/machinery/mineral/stacking_machine{input_dir = 1; stack_amt = 10},/turf/open/floor/plating,/area/maintenance/disposal) +"blo" = (/obj/machinery/mineral/stacking_unit_console{dir = 2; machinedir = 8},/turf/closed/wall,/area/maintenance/disposal) +"blp" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light/small,/turf/open/floor/plating,/area/maintenance/port) +"blq" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/port) +"blr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/port) +"bls" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/crew_quarters/locker/locker_toilet) +"blt" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/window{icon_state = "window"; dir = 8},/turf/open/floor/plating,/area/maintenance/port) +"blu" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/window{icon_state = "window"; dir = 1},/obj/structure/window,/turf/open/floor/plating,/area/maintenance/port) +"blv" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/window,/turf/open/floor/plating,/area/maintenance/port) +"blw" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port) +"blx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/port) +"bly" = (/obj/machinery/door/poddoor/shutters{id = "qm_warehouse"; name = "warehouse shutters"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/delivery{name = "floor"},/area/quartermaster/storage) +"blz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/quartermaster/storage) +"blA" = (/obj/structure/disposalpipe/wrapsortjunction{dir = 1},/turf/closed/wall,/area/quartermaster/storage) +"blB" = (/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/disposaloutlet{dir = 4},/turf/open/floor/plating,/area/quartermaster/office) +"blC" = (/obj/machinery/door/window/eastleft{dir = 4; icon_state = "right"; name = "Mail"; req_access_txt = "50"},/turf/open/floor/plating,/area/quartermaster/office) +"blD" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/quartermaster/office) +"blE" = (/turf/open/floor/plasteel,/area/quartermaster/office) +"blF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/quartermaster/office) +"blG" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/yellow,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/turf/open/floor/plasteel,/area/quartermaster/office) +"blH" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/quartermaster/office) +"blI" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/plasteel/blue/corner,/area/hallway/primary/central) +"blJ" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=1"; dir = 1; freq = 1400; location = "Bridge"},/obj/structure/plasticflaps{opacity = 1},/turf/open/floor/plasteel/bot,/area/bridge/meeting_room) +"blK" = (/obj/machinery/vending/cigarette,/turf/open/floor/wood,/area/bridge/meeting_room) +"blL" = (/turf/open/floor/plasteel/vault{dir = 1},/area/engine/gravity_generator) +"blM" = (/turf/open/floor/plasteel/vault{dir = 8},/area/engine/gravity_generator) +"blN" = (/turf/open/floor/plasteel/vault{dir = 4},/area/engine/gravity_generator) +"blO" = (/obj/item/device/radio/intercom{dir = 8; freerange = 1; name = "Station Intercom (Command)"; pixel_x = -28},/obj/machinery/suit_storage_unit/captain,/turf/open/floor/wood,/area/crew_quarters/captain) +"blP" = (/obj/machinery/computer/card,/obj/item/weapon/card/id/captains_spare,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/wood,/area/crew_quarters/captain) +"blQ" = (/obj/structure/table/wood,/obj/machinery/recharger,/obj/item/weapon/melee/chainofcommand,/turf/open/floor/wood,/area/crew_quarters/captain) +"blR" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/glass/bottle/epinephrine,/obj/item/stack/sheet/mineral/plasma{layer = 2.9},/obj/item/stack/sheet/mineral/plasma{layer = 2.9},/obj/machinery/requests_console{department = "Chemistry"; departmentType = 2; pixel_x = -30; pixel_y = 0},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/white,/area/medical/chemistry) +"blS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/white,/area/medical/chemistry) +"blT" = (/turf/open/floor/plasteel/white,/area/medical/chemistry) +"blU" = (/obj/structure/chair/office/light{dir = 4},/obj/effect/landmark/start{name = "Chemist"},/turf/open/floor/plasteel/whiteyellow/side{dir = 4},/area/medical/chemistry) +"blV" = (/obj/structure/table/reinforced,/obj/machinery/door/window/eastright{dir = 8; name = "Chemistry Desk"; req_access_txt = "33"},/obj/machinery/door/firedoor,/turf/open/floor/plating,/area/medical/chemistry) +"blW" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/white,/area/medical/medbay) +"blX" = (/obj/structure/chair/office/dark{dir = 8},/obj/effect/landmark/start/depsec/medical,/turf/open/floor/plasteel/red/side{dir = 8},/area/security/checkpoint/medical) +"blY" = (/turf/open/floor/plasteel,/area/security/checkpoint/medical) +"blZ" = (/obj/machinery/computer/secure_data,/obj/item/device/radio/intercom{pixel_x = 25},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/checkpoint/medical) +"bma" = (/obj/structure/bodycontainer/morgue,/obj/effect/landmark{name = "revenantspawn"},/turf/open/floor/plasteel/black,/area/medical/morgue) +"bmb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/medical/morgue) +"bmc" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/medical/morgue) +"bmd" = (/turf/open/floor/plating,/area/storage/emergency) +"bme" = (/obj/machinery/light/small{dir = 1},/obj/item/weapon/extinguisher,/turf/open/floor/plating,/area/storage/emergency) +"bmf" = (/obj/item/weapon/storage/box/lights/mixed,/turf/open/floor/plating,/area/storage/emergency) +"bmg" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/power/apc{dir = 4; name = "Mech Bay APC"; pixel_x = 26; pixel_y = 0},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/assembly/chargebay) +"bmh" = (/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/plasteel,/area/assembly/chargebay) +"bmi" = (/turf/open/floor/plasteel,/area/assembly/chargebay) +"bmj" = (/obj/machinery/button/door{dir = 2; id = "Skynet_launch"; name = "Mech Bay Door Control"; pixel_x = 6; pixel_y = 24},/turf/open/floor/plasteel/warning/corner{dir = 8},/area/assembly/chargebay) +"bmk" = (/turf/open/floor/plasteel/warning{dir = 1},/area/assembly/chargebay) +"bml" = (/obj/machinery/power/apc{dir = 8; name = "Robotics Lab APC"; pixel_x = -25},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plasteel/white,/area/assembly/robotics) +"bmm" = (/obj/structure/chair/office/light{dir = 1},/obj/effect/landmark/start{name = "Roboticist"},/turf/open/floor/plasteel/white,/area/assembly/robotics) +"bmn" = (/turf/open/floor/plasteel/white,/area/assembly/robotics) +"bmo" = (/obj/machinery/camera{c_tag = "Robotics Lab"; dir = 2; network = list("SS13","RD")},/obj/machinery/button/door{dir = 2; id = "robotics"; name = "Shutters Control Button"; pixel_x = 6; pixel_y = 24; req_access_txt = "29"},/turf/open/floor/plasteel/whitered/corner{dir = 4},/area/assembly/robotics) +"bmp" = (/turf/open/floor/plasteel/whitered/side{dir = 1},/area/assembly/robotics) +"bmq" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/whitered/side{dir = 1},/area/assembly/robotics) +"bmr" = (/obj/structure/filingcabinet/chestdrawer,/turf/open/floor/plasteel/whitered/side{dir = 1},/area/assembly/robotics) +"bms" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/warnwhite{dir = 9},/area/medical/research{name = "Research Division"}) +"bmt" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bmu" = (/obj/machinery/camera{c_tag = "Research Division Access"; dir = 2; network = list("SS13")},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/open/floor/plasteel/warnwhite{dir = 5},/area/medical/research{name = "Research Division"}) +"bmv" = (/turf/open/floor/plasteel/whitepurple/side{dir = 1},/area/toxins/lab) +"bmw" = (/obj/structure/chair/stool,/obj/effect/landmark/start{name = "Scientist"},/turf/open/floor/plasteel/whitepurple/side{dir = 1},/area/toxins/lab) +"bmx" = (/obj/machinery/camera{c_tag = "Research and Development"; dir = 2; network = list("SS13","RD"); pixel_x = 22},/obj/machinery/button/door{dir = 2; id = "rnd"; name = "Shutters Control Button"; pixel_x = -6; pixel_y = 24; req_access_txt = "47"},/turf/open/floor/plasteel/whitepurple/corner{dir = 1},/area/toxins/lab) +"bmy" = (/turf/open/floor/plasteel/white,/area/toxins/lab) +"bmz" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/asmaint2) +"bmA" = (/obj/structure/shuttle/engine/propulsion,/turf/open/floor/plating/airless,/area/shuttle/escape) +"bmB" = (/turf/closed/wall/mineral/titanium,/area/shuttle/abandoned) +"bmC" = (/obj/machinery/door/airlock/shuttle,/obj/docking_port/mobile{dheight = 0; dir = 2; dwidth = 11; height = 22; id = "whiteship"; launch_status = 0; name = "NT Medical Ship"; port_angle = -90; preferred_direction = 4; roundstart_move = "whiteship_away"; timid = null; width = 35},/obj/docking_port/stationary{dir = 2; dwidth = 11; height = 22; id = "whiteship_home"; name = "SS13 Arrival Docking"; turf_type = /turf/open/space; width = 35},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"bmD" = (/obj/machinery/door/airlock/shuttle,/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"bmE" = (/obj/machinery/conveyor{dir = 1; id = "garbage"},/obj/structure/sign/vacuum{pixel_x = -32},/turf/open/floor/plating,/area/maintenance/disposal) +"bmF" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/disposal) +"bmG" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/disposal) +"bmH" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/disposal) +"bmI" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/disposal) +"bmJ" = (/obj/machinery/door/airlock/maintenance{name = "Disposal Access"; req_access_txt = "12"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/disposal) +"bmK" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/port) +"bmL" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/port) +"bmM" = (/obj/structure/closet/crate,/obj/effect/spawner/lootdrop/maintenance,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/port) +"bmN" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port) +"bmO" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port) +"bmP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port) +"bmQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/port) +"bmR" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/port) +"bmS" = (/obj/structure/table,/obj/item/clothing/head/soft,/obj/item/clothing/head/soft,/turf/open/floor/plasteel,/area/quartermaster/storage) +"bmT" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/obj/item/weapon/hand_labeler,/obj/machinery/requests_console{department = "Cargo Bay"; departmentType = 2; pixel_x = 0; pixel_y = 30},/turf/open/floor/plasteel,/area/quartermaster/storage) +"bmU" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/turf/open/floor/plasteel,/area/quartermaster/storage) +"bmV" = (/obj/machinery/camera{c_tag = "Cargo Bay North"},/obj/structure/closet/wardrobe/cargotech,/turf/open/floor/plasteel,/area/quartermaster/storage) +"bmW" = (/turf/open/floor/plasteel,/area/quartermaster/storage) +"bmX" = (/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = 30},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel,/area/quartermaster/storage) +"bmY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/quartermaster/storage) +"bmZ" = (/obj/machinery/button/door{id = "qm_warehouse"; name = "Warehouse Door Control"; pixel_x = -1; pixel_y = 24; req_access_txt = "31"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/quartermaster/storage) +"bna" = (/obj/machinery/photocopier,/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/turf/open/floor/plasteel,/area/quartermaster/office) +"bnb" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/turf/open/floor/plasteel,/area/quartermaster/office) +"bnc" = (/obj/structure/disposalpipe/segment,/turf/closed/wall,/area/quartermaster/office) +"bnd" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/obj/machinery/airalarm{dir = 4; locked = 0; pixel_x = -23; pixel_y = 0},/turf/open/floor/plasteel,/area/quartermaster/office) +"bne" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/office) +"bnf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/office) +"bng" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/chair{dir = 4},/obj/effect/landmark/start{name = "Cargo Technician"},/turf/open/floor/plasteel,/area/quartermaster/office) +"bnh" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/hand_labeler,/obj/item/weapon/hand_labeler,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/office) +"bni" = (/obj/machinery/door/firedoor,/obj/machinery/door/window/westleft{name = "Delivery Desk"; req_access_txt = "50"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/bot,/area/quartermaster/office) +"bnj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/brown/corner{dir = 8},/area/hallway/primary/central) +"bnk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bnl" = (/turf/closed/wall/r_wall,/area/maintenance/maintcentral) +"bnm" = (/turf/open/floor/plating,/area/maintenance/maintcentral) +"bnn" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/maintcentral) +"bno" = (/obj/machinery/power/apc{dir = 1; name = "Bridge Maintenance APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plating,/area/maintenance/maintcentral) +"bnp" = (/obj/structure/closet/wardrobe/black,/turf/open/floor/plating,/area/maintenance/maintcentral) +"bnq" = (/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/wood,/area/bridge/meeting_room) +"bnr" = (/obj/machinery/newscaster/security_unit{pixel_x = -32; pixel_y = 0},/obj/machinery/keycard_auth{pixel_x = 0; pixel_y = -24},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/crew_quarters/captain) +"bns" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Captain's Desk Door"; req_access_txt = "20"},/turf/open/floor/wood,/area/crew_quarters/captain) +"bnt" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/wood,/area/crew_quarters/captain) +"bnu" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/wood,/area/crew_quarters/captain) +"bnv" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/wood,/area/crew_quarters/captain) +"bnw" = (/obj/structure/table/glass,/obj/machinery/reagentgrinder,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/open/floor/plasteel/white,/area/medical/chemistry) +"bnx" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plasteel/white,/area/medical/chemistry) +"bny" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/plasteel/white,/area/medical/chemistry) +"bnz" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/dropper,/turf/open/floor/plasteel/whiteyellow/side{dir = 4},/area/medical/chemistry) +"bnA" = (/obj/machinery/smartfridge/chemistry,/turf/open/floor/plating,/area/medical/chemistry) +"bnB" = (/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay) +"bnC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/whiteblue/corner{dir = 2},/area/medical/medbay) +"bnD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/whiteblue/side{dir = 2},/area/medical/medbay) +"bnE" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel/whiteblue/side{dir = 2},/area/medical/medbay) +"bnF" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/whiteblue/side{dir = 2},/area/medical/medbay) +"bnG" = (/turf/open/floor/plasteel/whiteblue/side{dir = 2},/area/medical/medbay) +"bnH" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 4},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/checkpoint/medical) +"bnI" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/security/checkpoint/medical) +"bnJ" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/checkpoint/medical) +"bnK" = (/obj/machinery/camera{c_tag = "Medbay Morgue"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/open/floor/plasteel/black,/area/medical/morgue) +"bnL" = (/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plating,/area/storage/emergency) +"bnM" = (/obj/machinery/space_heater,/turf/open/floor/plating,/area/storage/emergency) +"bnN" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plating,/area/storage/emergency) +"bnO" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/turf/open/floor/plating,/area/storage/emergency) +"bnP" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/bluegrid,/area/assembly/chargebay) +"bnQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/bluegrid,/area/assembly/chargebay) +"bnR" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel,/area/assembly/chargebay) +"bnS" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/assembly/chargebay) +"bnT" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_research{name = "Robotics Lab"; req_access_txt = "29"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/assembly/robotics) +"bnU" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/assembly/robotics) +"bnV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/assembly/robotics) +"bnW" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/assembly/robotics) +"bnX" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = 6},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/item/clothing/head/welding{pixel_x = -3; pixel_y = 5},/obj/item/clothing/glasses/welding,/turf/open/floor/plasteel/white,/area/assembly/robotics) +"bnY" = (/obj/structure/closet/firecloset,/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/warnwhite{dir = 8},/area/medical/research{name = "Research Division"}) +"bnZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"boa" = (/obj/machinery/shower{dir = 8},/obj/structure/sign/securearea{pixel_x = 32; pixel_y = 0},/turf/open/floor/plasteel/warnwhite{dir = 4},/area/medical/research{name = "Research Division"}) +"bob" = (/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_x = -30; pixel_y = 0},/turf/open/floor/plasteel/white,/area/toxins/lab) +"boc" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plasteel/white,/area/toxins/lab) +"bod" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/lab) +"boe" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/turf/open/floor/plasteel/white,/area/toxins/lab) +"bof" = (/turf/closed/wall,/area/maintenance/asmaint2) +"bog" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 4},/turf/open/floor/plating/airless,/area/shuttle/abandoned) +"boh" = (/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"boi" = (/obj/structure/table,/obj/item/device/radio/off,/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"boj" = (/obj/structure/table,/obj/item/weapon/screwdriver,/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"bok" = (/obj/machinery/conveyor{dir = 1; id = "garbage"; layer = 2.5},/obj/machinery/door/poddoor/preopen{id = "Disposal Exit"; layer = 3; name = "disposal exit vent"},/turf/open/floor/plating,/area/maintenance/disposal) +"bol" = (/obj/machinery/button/door{id = "Disposal Exit"; name = "Disposal Vent Control"; pixel_x = -25; pixel_y = 4; req_access_txt = "12"},/obj/machinery/button/massdriver{id = "trash"; pixel_x = -26; pixel_y = -6},/obj/structure/chair/stool,/turf/open/floor/plating,/area/maintenance/disposal) +"bom" = (/turf/open/floor/plating,/area/maintenance/disposal) +"bon" = (/obj/effect/decal/cleanable/oil,/obj/machinery/light_switch{pixel_x = 25; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/disposal) +"boo" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/port) +"bop" = (/turf/closed/wall/r_wall,/area/maintenance/port) +"boq" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/turf/closed/wall/r_wall,/area/maintenance/port) +"bor" = (/obj/machinery/door/airlock/maintenance{name = "Cargo Bay Maintenance"; req_access_txt = "31"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/quartermaster/storage) +"bos" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel,/area/quartermaster/storage) +"bot" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/quartermaster/storage) +"bou" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/quartermaster/storage) +"bov" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/brown/corner{dir = 8},/area/quartermaster/office) +"bow" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/office) +"box" = (/obj/structure/disposalpipe/sortjunction{dir = 1; icon_state = "pipe-j2s"; sortType = 2},/obj/structure/noticeboard{pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/office) +"boy" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_mining{name = "Cargo Office"; req_access_txt = "50"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel,/area/quartermaster/office) +"boz" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/office) +"boA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/quartermaster/office) +"boB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel,/area/quartermaster/office) +"boC" = (/obj/structure/table/reinforced,/obj/item/device/destTagger,/obj/item/device/destTagger,/obj/machinery/computer/stockexchange,/turf/open/floor/plasteel,/area/quartermaster/office) +"boD" = (/obj/structure/table/reinforced,/obj/item/stack/wrapping_paper{pixel_x = 3; pixel_y = 4},/obj/item/stack/packageWrap{pixel_x = -1; pixel_y = -1},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -26},/turf/open/floor/plasteel,/area/quartermaster/office) +"boE" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/hallway/primary/central) +"boF" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/hallway/primary/central) +"boG" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating,/area/maintenance/maintcentral) +"boH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating,/area/maintenance/maintcentral) +"boI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/power/apc{dir = 2; name = "Head of Personnel APC"; pixel_y = -24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/crew_quarters/heads) +"boJ" = (/obj/effect/landmark{name = "blobstart"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/maintcentral) +"boK" = (/obj/machinery/power/apc{dir = 4; name = "Conference Room APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/bridge/meeting_room) +"boL" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/closed/wall/r_wall,/area/engine/gravity_generator) +"boM" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/engine/gravity_generator) +"boN" = (/obj/machinery/gravity_generator/main/station,/turf/open/floor/plasteel/vault{dir = 8},/area/engine/gravity_generator) +"boO" = (/obj/machinery/camera{c_tag = "Gravity Generator Room"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/black,/area/engine/gravity_generator) +"boP" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/closed/wall/r_wall,/area/engine/gravity_generator) +"boQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall/r_wall,/area/crew_quarters/captain) +"boR" = (/obj/machinery/door/airlock/command{name = "Captain's Quarters"; req_access = null; req_access_txt = "20"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/carpet,/area/crew_quarters/captain) +"boS" = (/obj/machinery/door/airlock/maintenance{name = "Captain's Office Maintenance"; req_access_txt = "20"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/crew_quarters/captain) +"boT" = (/obj/structure/disposalpipe/segment,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 1},/turf/open/floor/plasteel,/area/hallway/primary/central) +"boU" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/syringes,/obj/item/clothing/glasses/science{pixel_x = 2; pixel_y = 4},/obj/item/clothing/glasses/science,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/open/floor/plasteel/white,/area/medical/chemistry) +"boV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/chemistry) +"boW" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/white,/area/medical/chemistry) +"boX" = (/obj/structure/table/reinforced,/obj/machinery/door/window/eastright{base_state = "left"; dir = 8; icon_state = "left"; name = "Chemistry Desk"; req_access_txt = "33"},/obj/machinery/door/firedoor,/turf/open/floor/plating,/area/medical/chemistry) +"boY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay) +"boZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/whiteblue/side{dir = 4},/area/medical/medbay) +"bpa" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bpb" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/food/drinks/britcup{desc = "Kingston's personal cup."},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bpc" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/white,/obj/item/weapon/pen,/obj/item/weapon/reagent_containers/glass/bottle/epinephrine,/turf/open/floor/plasteel/white,/area/medical/medbay) +"bpd" = (/obj/structure/table/reinforced,/obj/machinery/camera{c_tag = "Medbay Foyer"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/obj/machinery/cell_charger,/turf/open/floor/plasteel/white,/area/medical/medbay) +"bpe" = (/obj/machinery/power/apc{dir = 8; name = "Medbay Security APC"; pixel_x = -25},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/checkpoint/medical) +"bpf" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/security/checkpoint/medical) +"bpg" = (/obj/structure/reagent_dispensers/peppertank{pixel_x = 30; pixel_y = 0},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/checkpoint/medical) +"bph" = (/obj/machinery/mech_bay_recharge_port,/obj/structure/cable,/turf/open/floor/plating,/area/assembly/chargebay) +"bpi" = (/turf/open/floor/mech_bay_recharge_floor,/area/assembly/chargebay) +"bpj" = (/obj/machinery/computer/mech_bay_power_console,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/bluegrid,/area/assembly/chargebay) +"bpk" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/assembly/chargebay) +"bpl" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel,/area/assembly/chargebay) +"bpm" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/assembly/robotics) +"bpn" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 20; pixel_x = -3; pixel_y = 6},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/device/multitool{pixel_x = 3},/obj/item/device/multitool{pixel_x = 3},/turf/open/floor/plasteel/warning{dir = 1},/area/assembly/robotics) +"bpo" = (/turf/open/floor/plasteel/warning{dir = 1},/area/assembly/robotics) +"bpp" = (/obj/machinery/mecha_part_fabricator,/turf/open/floor/plasteel/warning{dir = 1},/area/assembly/robotics) +"bpq" = (/turf/open/floor/plasteel/warnwhite{dir = 8},/area/assembly/robotics) +"bpr" = (/obj/machinery/ai_status_display{pixel_x = 32; pixel_y = 0},/obj/structure/table,/obj/item/device/assembly/flash/handheld,/obj/item/device/assembly/flash/handheld,/obj/item/device/assembly/flash/handheld,/obj/item/device/assembly/flash/handheld,/obj/item/device/assembly/flash/handheld,/turf/open/floor/plasteel/white,/area/assembly/robotics) +"bps" = (/obj/structure/closet/firecloset,/turf/open/floor/plasteel/warnwhite{dir = 10},/area/medical/research{name = "Research Division"}) +"bpt" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/warnwhite{dir = 6},/area/medical/research{name = "Research Division"}) +"bpu" = (/obj/machinery/r_n_d/destructive_analyzer,/turf/open/floor/plasteel/warning{dir = 1},/area/toxins/lab) +"bpv" = (/turf/open/floor/plasteel/warning{dir = 1},/area/toxins/lab) +"bpw" = (/obj/machinery/r_n_d/protolathe,/turf/open/floor/plasteel/warning{dir = 1},/area/toxins/lab) +"bpx" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/warnwhite{dir = 8},/area/toxins/lab) +"bpy" = (/obj/machinery/holopad,/turf/open/floor/plasteel/white,/area/toxins/lab) +"bpz" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/glass/beaker/large{pixel_x = -3; pixel_y = 3},/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 8; pixel_y = 2},/obj/item/weapon/reagent_containers/dropper,/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/open/floor/plasteel/white,/area/toxins/lab) +"bpA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/asmaint2) +"bpB" = (/obj/machinery/light/small{dir = 1},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/asmaint2) +"bpC" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 4; req_access_txt = "13"},/turf/open/floor/plating,/area/maintenance/asmaint2) +"bpD" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/item/weapon/cigbutt,/turf/open/floor/plating,/area/maintenance/asmaint2) +"bpE" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 8; req_access_txt = "13"},/turf/open/floor/plating,/area/maintenance/asmaint2) +"bpF" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 4},/turf/open/floor/plating/airless,/area/shuttle/abandoned) +"bpG" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating/airless,/area/shuttle/abandoned) +"bpH" = (/turf/open/floor/plating,/turf/closed/wall/mineral/titanium/interior,/area/shuttle/abandoned) +"bpI" = (/obj/machinery/computer/pod{id = "oldship_gun"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"bpJ" = (/obj/machinery/light/small{dir = 8},/obj/machinery/mass_driver{id = "trash"},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/disposal) +"bpK" = (/obj/machinery/conveyor_switch/oneway{convdir = -1; id = "garbage"; name = "disposal coveyor"},/turf/open/floor/plating,/area/maintenance/disposal) +"bpL" = (/obj/machinery/light/small,/turf/open/floor/plating,/area/maintenance/disposal) +"bpM" = (/obj/structure/closet,/turf/open/floor/plating,/area/maintenance/disposal) +"bpN" = (/turf/closed/wall/mineral/titanium,/area/shuttle/supply) +"bpO" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/quartermaster/storage) +"bpP" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/warning{dir = 8},/area/quartermaster/storage) +"bpQ" = (/obj/structure/closet/emcloset,/obj/machinery/airalarm{dir = 2; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/quartermaster/storage) +"bpR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel,/area/quartermaster/storage) +"bpS" = (/obj/machinery/light{dir = 1},/obj/machinery/firealarm{pixel_y = 27},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/storage) +"bpT" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/quartermaster/storage) +"bpU" = (/mob/living/simple_animal/sloth/paperwork,/turf/open/floor/plasteel,/area/quartermaster/storage) +"bpV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel,/area/quartermaster/storage) +"bpW" = (/obj/machinery/door/airlock/glass_mining{name = "Cargo Bay"; req_access_txt = "31"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/storage) +"bpX" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/brown{dir = 8},/area/quartermaster/office) +"bpY" = (/obj/structure/disposalpipe/segment,/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel,/area/quartermaster/office) +"bpZ" = (/obj/machinery/status_display{density = 0; pixel_y = 2; supply_display = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/quartermaster/office) +"bqa" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/quartermaster/office) +"bqb" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plating,/area/quartermaster/office) +"bqc" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_mining{name = "Delivery Office"; req_access_txt = "50"},/turf/open/floor/plasteel,/area/quartermaster/office) +"bqd" = (/obj/machinery/light{dir = 8},/obj/machinery/door/firedoor,/obj/machinery/status_display{density = 0; layer = 3; pixel_x = -32; pixel_y = 0},/turf/open/floor/plasteel/brown/corner{dir = 8},/area/hallway/primary/central) +"bqe" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/hallway/primary/central) +"bqf" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/maintcentral) +"bqg" = (/turf/closed/wall,/area/crew_quarters/heads) +"bqh" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/crew_quarters/heads) +"bqi" = (/obj/machinery/door/airlock/command{name = "Head of Personnel"; req_access = null; req_access_txt = "57"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/wood,/area/crew_quarters/heads) +"bqj" = (/turf/closed/wall/r_wall,/area/crew_quarters/heads) +"bqk" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/black,/area/engine/gravity_generator) +"bql" = (/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/black,/area/engine/gravity_generator) +"bqm" = (/turf/closed/wall,/area/crew_quarters/captain) +"bqn" = (/obj/machinery/light/small{dir = 1},/obj/structure/dresser,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/carpet,/area/crew_quarters/captain) +"bqo" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/carpet,/area/crew_quarters/captain) +"bqp" = (/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/carpet,/area/crew_quarters/captain) +"bqq" = (/obj/machinery/door/airlock{name = "Private Restroom"; req_access_txt = "0"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/captain) +"bqr" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/mirror{pixel_x = 28},/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/freezer,/area/crew_quarters/captain) +"bqs" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/crew_quarters/captain) +"bqt" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/hallway/primary/central) +"bqu" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bqv" = (/obj/structure/table/glass,/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/item/stack/cable_coil/random,/obj/item/stack/cable_coil/random,/turf/open/floor/plasteel/white,/area/medical/chemistry) +"bqw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/chemistry) +"bqx" = (/obj/structure/disposalpipe/segment,/obj/machinery/chem_heater,/turf/open/floor/plasteel/white,/area/medical/chemistry) +"bqy" = (/obj/machinery/chem_dispenser,/turf/open/floor/plasteel/whiteyellow/side{dir = 2},/area/medical/chemistry) +"bqz" = (/obj/machinery/chem_master,/turf/open/floor/plasteel/whiteyellow/side{dir = 6},/area/medical/chemistry) +"bqA" = (/obj/item/device/radio/intercom{broadcasting = 1; freerange = 0; frequency = 1485; listening = 0; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = -30},/obj/machinery/light,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bqB" = (/obj/structure/table/reinforced,/turf/open/floor/plasteel/white,/area/medical/medbay) +"bqC" = (/obj/structure/chair/office/light{dir = 8},/obj/machinery/button/door{desc = "A remote control switch for the medbay foyer."; id = "MedbayFoyer"; name = "Medbay Doors Control"; normaldoorcontrol = 1; pixel_x = -26; req_access_txt = "5"},/obj/effect/landmark/start{name = "Medical Doctor"},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bqD" = (/obj/structure/chair/office/light{dir = 1},/obj/structure/sign/nosmoking_2{pixel_x = 28},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bqE" = (/obj/structure/closet,/turf/open/floor/plasteel/red/side{dir = 10},/area/security/checkpoint/medical) +"bqF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/side,/area/security/checkpoint/medical) +"bqG" = (/obj/machinery/light_switch{pixel_x = 28; pixel_y = 0},/obj/item/weapon/screwdriver{pixel_y = 10},/obj/item/device/radio/off,/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/red/side{dir = 6},/area/security/checkpoint/medical) +"bqH" = (/obj/structure/table,/turf/open/floor/plasteel/black,/area/medical/morgue) +"bqI" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel/black,/area/medical/morgue) +"bqJ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/light_switch{pixel_y = -25},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/medical/morgue) +"bqK" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/light/small,/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/black,/area/medical/morgue) +"bqL" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/medical/morgue) +"bqM" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/medical/morgue) +"bqN" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/maintenance{name = "Morgue Maintenance"; req_access_txt = "6"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/medical/morgue) +"bqO" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) +"bqP" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/power/apc{dir = 1; name = "Starboard Emergency Storage APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/storage/emergency) +"bqQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/sortjunction{sortType = 9},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) +"bqR" = (/obj/machinery/light{dir = 8},/obj/machinery/camera{c_tag = "Mech Bay"; dir = 4},/turf/open/floor/plasteel,/area/assembly/chargebay) +"bqS" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/assembly/chargebay) +"bqT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/assembly/chargebay) +"bqU" = (/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel,/area/assembly/chargebay) +"bqV" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/assembly/robotics) +"bqW" = (/obj/structure/table,/obj/item/stack/sheet/plasteel{amount = 10},/obj/item/stack/cable_coil,/obj/item/device/assembly/flash/handheld,/obj/item/device/assembly/flash/handheld,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/assembly/robotics) +"bqX" = (/obj/structure/chair/stool,/obj/effect/landmark/start{name = "Roboticist"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/assembly/robotics) +"bqY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/bot,/area/assembly/robotics) +"bqZ" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/warnwhite{dir = 8},/area/assembly/robotics) +"bra" = (/obj/machinery/holopad,/turf/open/floor/plasteel/white,/area/assembly/robotics) +"brb" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high/plus,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/turf/open/floor/plasteel/white,/area/assembly/robotics) +"brc" = (/turf/closed/wall/r_wall,/area/medical/research{name = "Research Division"}) +"brd" = (/obj/machinery/door/airlock/research{cyclelinkeddir = 1; name = "Research Division Access"; req_access_txt = "47"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bre" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/medical/research{name = "Research Division"}) +"brf" = (/obj/machinery/computer/rdconsole/core,/turf/open/floor/plasteel,/area/toxins/lab) +"brg" = (/turf/open/floor/plasteel,/area/toxins/lab) +"brh" = (/obj/machinery/r_n_d/circuit_imprinter,/obj/item/weapon/reagent_containers/glass/beaker/sulphuric,/turf/open/floor/plasteel,/area/toxins/lab) +"bri" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/warnwhite{dir = 8},/area/toxins/lab) +"brj" = (/obj/structure/table/glass,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/micro_laser,/obj/item/weapon/stock_parts/micro_laser,/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = 3},/obj/item/stack/cable_coil,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel/white,/area/toxins/lab) +"brk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating,/area/maintenance/asmaint2) +"brl" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/asmaint2) +"brm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating,/area/maintenance/asmaint2) +"brn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/maintenance/asmaint2) +"bro" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/closed/wall,/area/maintenance/asmaint2) +"brp" = (/turf/open/floor/plating,/area/shuttle/abandoned) +"brq" = (/turf/open/floor/mineral/titanium,/turf/closed/wall/mineral/titanium/interior,/area/shuttle/abandoned) +"brr" = (/obj/structure/rack,/obj/item/clothing/suit/space/hardsuit/medical,/obj/item/clothing/mask/breath,/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"brs" = (/obj/machinery/door/airlock/glass,/turf/open/floor/plating,/area/shuttle/abandoned) +"brt" = (/obj/machinery/mass_driver{dir = 4; icon_state = "mass_driver"; id = "oldship_gun"},/turf/open/floor/plating,/area/shuttle/abandoned) +"bru" = (/obj/machinery/door/poddoor{id = "oldship_gun"; name = "pod bay door"},/turf/open/floor/plating,/area/shuttle/abandoned) +"brv" = (/obj/machinery/door/poddoor{id = "trash"; name = "disposal bay door"},/turf/open/floor/plating,/area/maintenance/disposal) +"brw" = (/turf/open/floor/mineral/titanium/blue,/area/shuttle/supply) +"brx" = (/turf/open/floor/plasteel/warning{dir = 8},/area/quartermaster/storage) +"bry" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/quartermaster/storage) +"brz" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/quartermaster/storage) +"brA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/quartermaster/storage) +"brB" = (/obj/machinery/door/airlock/glass_mining{name = "Cargo Bay"; req_access_txt = "31"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/quartermaster/storage) +"brC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel/brown{dir = 8},/area/quartermaster/office) +"brD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/quartermaster/office) +"brE" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/quartermaster/office) +"brF" = (/obj/item/weapon/stamp{pixel_x = -3; pixel_y = 3},/obj/item/weapon/stamp/denied{pixel_x = 4; pixel_y = -2},/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/quartermaster/office) +"brG" = (/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/clipboard,/obj/item/weapon/pen/red,/obj/structure/table,/obj/machinery/computer/stockexchange,/turf/open/floor/plasteel,/area/quartermaster/office) +"brH" = (/obj/machinery/computer/cargo/request,/turf/open/floor/plasteel,/area/quartermaster/office) +"brI" = (/obj/machinery/firealarm{pixel_y = 27},/turf/open/floor/plasteel,/area/quartermaster/office) +"brJ" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/quartermaster/office) +"brK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel,/area/hallway/primary/central) +"brL" = (/turf/open/floor/plasteel/red/corner{dir = 2},/area/hallway/primary/central) +"brM" = (/obj/machinery/button/flasher{id = "hopflash"; pixel_x = 6; pixel_y = 36},/obj/machinery/button/door{id = "hop"; name = "Privacy Shutters Control"; pixel_x = 6; pixel_y = 25; req_access_txt = "28"},/obj/machinery/button/door{id = "hopqueue"; name = "Queue Shutters Control"; pixel_x = -4; pixel_y = 25; req_access_txt = "28"},/obj/machinery/light_switch{pixel_x = -4; pixel_y = 36},/obj/machinery/pdapainter,/turf/open/floor/plasteel/blue/side{dir = 9},/area/crew_quarters/heads) +"brN" = (/obj/structure/table,/obj/machinery/newscaster/security_unit{pixel_x = 0; pixel_y = 32},/obj/item/weapon/hand_labeler,/obj/item/stack/packageWrap,/turf/open/floor/plasteel,/area/crew_quarters/heads) +"brO" = (/obj/machinery/computer/security/telescreen{desc = "Used for watching Prison Wing holding areas."; name = "Prison Monitor"; network = list("Prison"); pixel_x = 0; pixel_y = 30},/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/turf/open/floor/plasteel,/area/crew_quarters/heads) +"brP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/bed/dogbed{anchored = 1; desc = "Ian's bed! Looks comfy."; name = "Ian's bed"},/mob/living/simple_animal/pet/dog/corgi/Ian{dir = 8},/turf/open/floor/plasteel,/area/crew_quarters/heads) +"brQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/crew_quarters/heads) +"brR" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_x = -32; pixel_y = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/gravity_generator) +"brS" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/gravity_generator) +"brT" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/glass_engineering{name = "Gravity Generator"; req_access_txt = "11"; req_one_access_txt = "0"},/turf/open/floor/plasteel/black,/area/engine/gravity_generator) +"brU" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 32; pixel_y = 0},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/gravity_generator) +"brV" = (/obj/structure/bed,/obj/item/weapon/bedsheet/captain,/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/carpet,/area/crew_quarters/captain) +"brW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/carpet,/area/crew_quarters/captain) +"brX" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green,/turf/open/floor/carpet,/area/crew_quarters/captain) +"brY" = (/obj/structure/toilet{dir = 4},/turf/open/floor/plasteel/freezer,/area/crew_quarters/captain) +"brZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/central) +"bsa" = (/obj/structure/table/glass,/obj/item/weapon/grenade/chem_grenade,/obj/item/weapon/grenade/chem_grenade,/obj/item/weapon/grenade/chem_grenade,/obj/item/weapon/grenade/chem_grenade,/obj/item/weapon/screwdriver{pixel_x = -2; pixel_y = 6},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/white,/area/medical/chemistry) +"bsb" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/white,/area/medical/chemistry) +"bsc" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/device/radio/headset/headset_med,/turf/open/floor/plasteel/white,/area/medical/chemistry) +"bsd" = (/turf/closed/wall,/area/medical/medbay) +"bse" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{id_tag = "MedbayFoyer"; name = "Medbay"; req_access_txt = "5"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/whiteblue/side{dir = 1},/area/medical/medbay) +"bsf" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{id_tag = "MedbayFoyer"; name = "Medbay"; req_access_txt = "5"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/whiteblue/side{dir = 1},/area/medical/medbay) +"bsg" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/medical/medbay) +"bsh" = (/obj/machinery/computer/med_data,/turf/open/floor/plasteel/white,/area/medical/medbay) +"bsi" = (/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/machinery/requests_console{announcementConsole = 0; department = "Medbay"; departmentType = 1; name = "Medbay RC"; pixel_x = 30; pixel_y = 0; pixel_z = 0},/obj/machinery/light,/turf/open/floor/plasteel/white,/area/medical/medbay) +"bsj" = (/obj/machinery/door/airlock/glass_security{name = "Security Office"; req_access_txt = "63"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/security/checkpoint/medical) +"bsk" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/security/checkpoint/medical) +"bsl" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/medical{name = "Morgue"; req_access_txt = "6;5"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/medical/morgue) +"bsm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/closed/wall,/area/medical/morgue) +"bsn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/medical/morgue) +"bso" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/closed/wall/r_wall,/area/medical/genetics) +"bsp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/medical/genetics) +"bsq" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) +"bsr" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/assembly/chargebay) +"bss" = (/obj/machinery/mech_bay_recharge_port,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plating,/area/assembly/chargebay) +"bst" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/assembly/chargebay) +"bsu" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/assembly/chargebay) +"bsv" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/assembly/robotics) +"bsw" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/plasteel,/area/assembly/robotics) +"bsx" = (/turf/open/floor/plasteel,/area/assembly/robotics) +"bsy" = (/obj/structure/table,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/weapon/stock_parts/cell/high/plus,/obj/item/weapon/stock_parts/cell/high/plus{pixel_x = 5; pixel_y = -5},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/item/weapon/crowbar,/turf/open/floor/plasteel/white,/area/assembly/robotics) +"bsz" = (/turf/closed/wall,/area/assembly/robotics) +"bsA" = (/obj/machinery/door/firedoor/heavy,/obj/machinery/door/poddoor/preopen{id = "Biohazard"; name = "biohazard containment door"},/turf/open/floor/plasteel/bot,/area/medical/research{name = "Research Division"}) +"bsB" = (/obj/machinery/door/firedoor/heavy,/obj/machinery/door/poddoor/preopen{id = "Biohazard"; name = "biohazard containment door"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/bot,/area/medical/research{name = "Research Division"}) +"bsC" = (/obj/machinery/door/firedoor/heavy,/obj/machinery/door/poddoor/preopen{id = "Biohazard"; name = "biohazard containment door"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/bot,/area/medical/research{name = "Research Division"}) +"bsD" = (/turf/closed/wall,/area/toxins/lab) +"bsE" = (/turf/open/floor/plasteel/warnwhite{dir = 1},/area/toxins/lab) +"bsF" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/warnwhite{dir = 1},/area/toxins/lab) +"bsG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/warnwhite{dir = 1},/area/toxins/lab) +"bsH" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/warnwhite/corner{dir = 4},/area/toxins/lab) +"bsI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/white,/area/toxins/lab) +"bsJ" = (/obj/item/weapon/stock_parts/console_screen,/obj/structure/table/glass,/obj/item/weapon/stock_parts/console_screen,/obj/item/weapon/stock_parts/console_screen,/obj/item/weapon/stock_parts/matter_bin,/obj/item/weapon/stock_parts/matter_bin,/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/item/weapon/stock_parts/scanning_module{pixel_x = 2; pixel_y = 3},/obj/item/weapon/stock_parts/scanning_module,/obj/machinery/power/apc{dir = 4; name = "Research Lab APC"; pixel_x = 26; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel/white,/area/toxins/lab) +"bsK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/plasticflaps{opacity = 1},/turf/open/floor/plasteel/loadingarea,/area/toxins/lab) +"bsL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/toxins/lab) +"bsM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating,/area/maintenance/asmaint2) +"bsN" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint2) +"bsO" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/asmaint2) +"bsP" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/quartermaster/storage) +"bsQ" = (/obj/machinery/conveyor_switch/oneway{id = "QMLoad2"},/turf/open/floor/plasteel/warning{dir = 8},/area/quartermaster/storage) +"bsR" = (/turf/open/floor/plasteel/bot,/area/quartermaster/storage) +"bsS" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/quartermaster/storage) +"bsT" = (/turf/open/floor/plasteel/brown/corner{dir = 1},/area/quartermaster/office) +"bsU" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/quartermaster/office) +"bsV" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,/turf/open/floor/plasteel,/area/quartermaster/office) +"bsW" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/quartermaster/office) +"bsX" = (/obj/effect/landmark/start{name = "Cargo Technician"},/obj/structure/chair/office/dark{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/office) +"bsY" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor,/obj/machinery/door/window/westleft{name = "Cargo Desk"; req_access_txt = "50"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/office) +"bsZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/delivery,/area/quartermaster/office) +"bta" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/quartermaster/office) +"btb" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plasteel/brown/corner{dir = 8},/area/hallway/primary/central) +"btc" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) +"btd" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/red/side{dir = 4},/area/hallway/primary/central) +"bte" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/poddoor/shutters/preopen{id = "hopqueue"; name = "HoP Queue Shutters"},/turf/open/floor/plasteel/loadingarea{dir = 8},/area/hallway/primary/central) +"btf" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/delivery,/area/hallway/primary/central) +"btg" = (/obj/structure/table/reinforced,/obj/machinery/door/window/northleft{dir = 8; icon_state = "left"; name = "Reception Window"; req_access_txt = "0"},/obj/machinery/door/window/brigdoor{base_state = "rightsecure"; dir = 4; icon_state = "rightsecure"; name = "Head of Personnel's Desk"; req_access = null; req_access_txt = "57"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/flasher{id = "hopflash"; pixel_x = 0; pixel_y = 28},/obj/machinery/door/poddoor/shutters/preopen{id = "hop"; layer = 2.9; name = "Privacy Shutters"},/turf/open/floor/plasteel,/area/crew_quarters/heads) +"bth" = (/obj/structure/chair/office/dark{dir = 8},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/blue/side{dir = 8},/area/crew_quarters/heads) +"bti" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/carpet,/area/crew_quarters/heads) +"btj" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/carpet,/area/crew_quarters/heads) +"btk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/carpet,/area/crew_quarters/heads) +"btl" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/crew_quarters/heads) +"btm" = (/obj/structure/chair/office/light,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/plasteel/warning{dir = 9},/area/engine/gravity_generator) +"btn" = (/turf/open/floor/plasteel/warning{dir = 1},/area/engine/gravity_generator) +"bto" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/warning{dir = 5},/area/engine/gravity_generator) +"btp" = (/obj/structure/closet/secure_closet/captains,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/carpet,/area/crew_quarters/captain) +"btq" = (/obj/structure/chair/comfy/brown{dir = 4},/obj/machinery/camera{c_tag = "Captain's Quarters"; dir = 1},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/carpet,/area/crew_quarters/captain) +"btr" = (/obj/structure/table/wood,/obj/item/weapon/storage/box/matches,/obj/item/weapon/razor{pixel_x = -4; pixel_y = 2},/obj/item/clothing/mask/cigarette/cigar,/obj/item/weapon/reagent_containers/food/drinks/flask/gold,/turf/open/floor/carpet,/area/crew_quarters/captain) +"bts" = (/obj/machinery/shower{dir = 1},/obj/item/weapon/soap/deluxe,/obj/item/weapon/bikehorn/rubberducky,/obj/effect/landmark{name = "revenantspawn"},/obj/structure/curtain,/turf/open/floor/plasteel/freezer,/area/crew_quarters/captain) +"btt" = (/obj/structure/disposalpipe/segment,/obj/machinery/light{dir = 8},/turf/open/floor/plasteel,/area/hallway/primary/central) +"btu" = (/obj/structure/closet/wardrobe/chemistry_white,/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/turf/open/floor/plasteel/white,/area/medical/chemistry) +"btv" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/table,/obj/item/weapon/book/manual/wiki/chemistry,/obj/item/weapon/book/manual/wiki/chemistry{pixel_x = 3; pixel_y = 3},/turf/open/floor/plasteel/white,/area/medical/chemistry) +"btw" = (/obj/structure/chair,/turf/open/floor/plasteel/white,/area/medical/chemistry) +"btx" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/obj/item/stack/packageWrap,/turf/open/floor/plasteel/white,/area/medical/chemistry) +"bty" = (/obj/structure/bed/roller,/obj/machinery/button/door{desc = "A remote control switch for the medbay foyer."; id = "MedbayFoyer"; name = "Medbay Exit Button"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = 26},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/open/floor/plasteel/white,/area/medical/medbay) +"btz" = (/obj/machinery/status_display,/turf/closed/wall,/area/medical/medbay) +"btA" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{name = "Medbay Reception"; req_access_txt = "5"},/turf/open/floor/plasteel/white,/area/medical/medbay) +"btB" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plasteel/white,/area/medical/medbay) +"btC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay) +"btD" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/white,/area/medical/medbay) +"btE" = (/obj/structure/sign/nosmoking_2{pixel_x = 0; pixel_y = 30},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay) +"btF" = (/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay) +"btG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay) +"btH" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/white,/area/medical/medbay) +"btI" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay) +"btJ" = (/obj/structure/bed/roller,/turf/open/floor/plasteel/whiteblue/side{dir = 4},/area/medical/medbay) +"btK" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/medical/genetics) +"btL" = (/obj/structure/table/glass,/obj/item/weapon/folder/white,/obj/item/device/radio/headset/headset_medsci,/obj/machinery/requests_console{department = "Genetics"; departmentType = 0; name = "Genetics Requests Console"; pixel_x = 0; pixel_y = 30},/obj/item/weapon/storage/pill_bottle/mutadone,/obj/item/weapon/storage/pill_bottle/mannitol,/turf/open/floor/plasteel/white,/area/medical/genetics) +"btM" = (/obj/machinery/power/apc{dir = 1; name = "Genetics APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plasteel/white,/area/medical/genetics) +"btN" = (/obj/machinery/light{dir = 1},/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/turf/open/floor/plasteel/white,/area/medical/genetics) +"btO" = (/obj/machinery/dna_scannernew,/turf/open/floor/plasteel/whiteblue/side{dir = 5},/area/medical/genetics) +"btP" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel,/area/medical/genetics) +"btQ" = (/mob/living/carbon/monkey,/turf/open/floor/plasteel,/area/medical/genetics) +"btR" = (/turf/closed/wall/r_wall,/area/medical/genetics) +"btS" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/closed/wall,/area/assembly/chargebay) +"btT" = (/obj/structure/extinguisher_cabinet{pixel_x = -27},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/bluegrid,/area/assembly/chargebay) +"btU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/bluegrid,/area/assembly/chargebay) +"btV" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/bluegrid,/area/assembly/chargebay) +"btW" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel,/area/assembly/chargebay) +"btX" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/assembly/chargebay) +"btY" = (/obj/structure/table,/obj/item/weapon/retractor,/obj/item/weapon/hemostat,/turf/open/floor/plasteel,/area/assembly/robotics) +"btZ" = (/obj/structure/table,/obj/item/device/mmi,/obj/item/device/mmi,/obj/item/device/mmi,/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/turf/open/floor/plasteel,/area/assembly/robotics) +"bua" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{empty = 1; name = "First-Aid (empty)"},/obj/item/weapon/storage/firstaid/regular{empty = 1; name = "First-Aid (empty)"},/obj/item/weapon/storage/firstaid/regular{empty = 1; name = "First-Aid (empty)"},/obj/item/device/healthanalyzer,/obj/item/device/healthanalyzer,/obj/item/device/healthanalyzer,/turf/open/floor/plasteel/white,/area/assembly/robotics) +"bub" = (/obj/structure/grille,/obj/machinery/door/poddoor/shutters/preopen{id = "robotics2"; name = "robotics lab shutters"},/obj/structure/window/fulltile,/obj/machinery/door/poddoor/shutters/preopen{id = "robotics2"; name = "robotics lab shutters"},/turf/open/floor/plating,/area/assembly/robotics) +"buc" = (/turf/open/floor/plasteel/white/corner{dir = 2},/area/medical/research{name = "Research Division"}) +"bud" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white/side{dir = 2},/area/medical/research{name = "Research Division"}) +"bue" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white/corner{dir = 8},/area/medical/research{name = "Research Division"}) +"buf" = (/obj/item/weapon/folder/white,/obj/structure/table,/obj/item/weapon/disk/tech_disk{pixel_x = 0; pixel_y = 0},/obj/item/weapon/disk/tech_disk{pixel_x = 0; pixel_y = 0},/obj/item/weapon/disk/design_disk,/obj/item/weapon/disk/design_disk,/turf/open/floor/plasteel/white,/area/toxins/lab) +"bug" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high/plus,/obj/item/weapon/stock_parts/cell/high/plus,/turf/open/floor/plasteel/white,/area/toxins/lab) +"buh" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/toxins/lab) +"bui" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/white,/area/toxins/lab) +"buj" = (/obj/machinery/light_switch{pixel_x = 0; pixel_y = -23},/turf/open/floor/plasteel/white,/area/toxins/lab) +"buk" = (/obj/machinery/door/window/eastright{base_state = "left"; dir = 8; icon_state = "left"; name = "Research Division Delivery"; req_access_txt = "47"},/turf/open/floor/plasteel/delivery,/area/toxins/lab) +"bul" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; dir = 8; freq = 1400; location = "Research Division"},/turf/open/floor/plasteel/bot,/area/toxins/lab) +"bum" = (/turf/closed/wall/r_wall,/area/toxins/explab) +"bun" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"; dir = 4},/turf/open/floor/plating/airless,/area/shuttle/abandoned) +"buo" = (/obj/machinery/door/airlock/shuttle,/turf/open/floor/plating,/area/shuttle/abandoned) +"bup" = (/obj/item/weapon/stock_parts/cell{charge = 100; maxcharge = 15000},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"buq" = (/obj/structure/rack,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/storage/toolbox/mechanical,/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"bur" = (/obj/structure/frame/computer{anchored = 1},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"bus" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/obj/machinery/door/poddoor{id = "QMLoaddoor2"; name = "supply dock loading door"},/turf/open/floor/plating,/area/shuttle/supply) +"but" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/obj/machinery/door/poddoor{id = "QMLoaddoor2"; name = "supply dock loading door"},/turf/open/floor/plating,/area/quartermaster/storage) +"buu" = (/obj/structure/plasticflaps,/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/turf/open/floor/plating,/area/quartermaster/storage) +"buv" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/turf/open/floor/plating/warnplate{dir = 1},/area/quartermaster/storage) +"buw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/loadingarea{dir = 4},/area/quartermaster/storage) +"bux" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/quartermaster/storage) +"buy" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/storage) +"buz" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/quartermaster/storage) +"buA" = (/obj/machinery/light_switch{pixel_x = 27},/turf/open/floor/plasteel,/area/quartermaster/storage) +"buB" = (/obj/machinery/autolathe,/obj/machinery/light_switch{pixel_x = -27},/turf/open/floor/plasteel,/area/quartermaster/office) +"buC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/quartermaster/office) +"buD" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/quartermaster/office) +"buE" = (/obj/machinery/computer/cargo,/turf/open/floor/plasteel,/area/quartermaster/office) +"buF" = (/turf/open/floor/plasteel/bot,/area/quartermaster/office) +"buG" = (/obj/machinery/holopad,/turf/open/floor/plasteel,/area/quartermaster/office) +"buH" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/quartermaster/office) +"buI" = (/turf/open/floor/plasteel/red/corner{dir = 4},/area/hallway/primary/central) +"buJ" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/hallway/primary/central) +"buK" = (/turf/open/floor/plasteel/bot,/area/hallway/primary/central) +"buL" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/door/poddoor/shutters/preopen{id = "hop"; layer = 2.9; name = "Privacy Shutters"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/heads) +"buM" = (/obj/machinery/computer/card,/turf/open/floor/plasteel/blue/side{dir = 10},/area/crew_quarters/heads) +"buN" = (/turf/open/floor/carpet,/area/crew_quarters/heads) +"buO" = (/obj/machinery/holopad,/turf/open/floor/carpet,/area/crew_quarters/heads) +"buP" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/crew_quarters/heads) +"buQ" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 8; name = "Gravity Generator APC"; pixel_x = -25; pixel_y = 1},/obj/structure/table,/obj/item/weapon/paper/gravity_gen{layer = 3},/obj/item/weapon/pen/blue,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -35},/turf/open/floor/plasteel,/area/engine/gravity_generator) +"buR" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/engine/gravity_generator) +"buS" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/holopad,/turf/open/floor/plasteel,/area/engine/gravity_generator) +"buT" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable,/obj/machinery/power/smes{charge = 5e+006},/turf/open/floor/plasteel,/area/engine/gravity_generator) +"buU" = (/turf/closed/wall/r_wall,/area/teleporter) +"buV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall/r_wall,/area/teleporter) +"buW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/teleporter) +"buX" = (/obj/machinery/door/airlock/maintenance{name = "Teleporter Maintenance"; req_access_txt = "17"},/obj/structure/sign/securearea{pixel_x = -32; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/teleporter) +"buY" = (/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/hallway/primary/central) +"buZ" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/central) +"bva" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Chemistry Lab"; req_access_txt = "5; 33"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/chemistry) +"bvb" = (/obj/structure/grille,/obj/structure/disposalpipe/segment,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/medical/chemistry) +"bvc" = (/obj/structure/table/reinforced,/obj/machinery/door/window/southleft{dir = 1; name = "Chemistry Desk"; req_access_txt = "33"},/obj/machinery/door/firedoor,/turf/open/floor/plating,/area/medical/chemistry) +"bvd" = (/obj/structure/bed/roller,/turf/open/floor/plasteel/white,/area/medical/medbay) +"bve" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bvf" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay) +"bvg" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/white,/area/medical/medbay) +"bvh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bvi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bvj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bvk" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bvl" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/rxglasses,/turf/open/floor/plasteel/white,/area/medical/genetics) +"bvm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/white,/area/medical/genetics) +"bvn" = (/obj/structure/chair/office/light{dir = 4},/obj/effect/landmark/start{name = "Geneticist"},/turf/open/floor/plasteel/white,/area/medical/genetics) +"bvo" = (/obj/machinery/computer/scan_consolenew,/turf/open/floor/plasteel/whiteblue/side{dir = 6},/area/medical/genetics) +"bvp" = (/obj/structure/window/reinforced{dir = 8},/mob/living/carbon/monkey,/turf/open/floor/plasteel,/area/medical/genetics) +"bvq" = (/turf/open/floor/plasteel,/area/medical/genetics) +"bvr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/sortjunction{dir = 2; icon_state = "pipe-j2s"; sortType = 14},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plating,/area/maintenance/asmaint) +"bvs" = (/obj/machinery/door/airlock/maintenance{name = "Mech Bay Maintenance"; req_access_txt = "29"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/assembly/chargebay) +"bvt" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/assembly/chargebay) +"bvu" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/assembly/chargebay) +"bvv" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/assembly/chargebay) +"bvw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel,/area/assembly/chargebay) +"bvx" = (/obj/structure/table,/obj/item/weapon/circular_saw,/obj/item/weapon/scalpel{pixel_y = 12},/turf/open/floor/plasteel/white/corner{dir = 2},/area/assembly/robotics) +"bvy" = (/obj/structure/table,/obj/item/clothing/gloves/color/latex,/obj/item/weapon/surgical_drapes,/obj/item/weapon/razor,/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/turf/open/floor/plasteel/white/corner{dir = 8},/area/assembly/robotics) +"bvz" = (/obj/machinery/button/door{dir = 2; id = "robotics2"; name = "Shutters Control Button"; pixel_x = 24; pixel_y = -24; req_access_txt = "29"},/turf/open/floor/plasteel/white,/area/assembly/robotics) +"bvA" = (/obj/structure/table/reinforced,/obj/machinery/door/window/eastright{base_state = "left"; dir = 8; icon_state = "left"; name = "Robotics Desk"; req_access_txt = "29"},/obj/machinery/door/poddoor/shutters/preopen{id = "robotics2"; name = "robotics lab shutters"},/obj/item/weapon/folder/white,/obj/item/weapon/pen,/turf/open/floor/plating,/area/assembly/robotics) +"bvB" = (/turf/open/floor/plasteel/white/side{dir = 5},/area/medical/research{name = "Research Division"}) +"bvC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white/side{dir = 9},/area/medical/research{name = "Research Division"}) +"bvD" = (/obj/structure/grille,/obj/machinery/door/poddoor/shutters/preopen{id = "rnd2"; name = "research lab shutters"},/obj/structure/window/fulltile,/turf/open/floor/plating,/area/toxins/lab) +"bvE" = (/obj/machinery/door/firedoor/heavy,/obj/machinery/door/poddoor/shutters/preopen{id = "rnd2"; name = "research lab shutters"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/toxins/lab) +"bvF" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor/heavy,/obj/machinery/door/poddoor/shutters/preopen{id = "rnd2"; name = "research lab shutters"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/toxins/lab) +"bvG" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 0; pixel_y = 6},/turf/open/floor/plasteel/white/corner{dir = 2},/area/toxins/explab) +"bvH" = (/obj/structure/table,/obj/item/weapon/pen,/obj/machinery/camera{c_tag = "Experimentor Lab"; dir = 2; network = list("SS13","RD")},/obj/item/weapon/hand_labeler,/obj/item/stack/packageWrap,/turf/open/floor/plasteel/white/side{dir = 2},/area/toxins/explab) +"bvI" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/weapon/folder/white,/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/obj/item/device/radio/off,/turf/open/floor/plasteel/white/side{dir = 2},/area/toxins/explab) +"bvJ" = (/obj/structure/closet/l3closet/scientist,/turf/open/floor/plasteel/white/side{dir = 2},/area/toxins/explab) +"bvK" = (/obj/structure/closet/emcloset{pixel_x = -2},/turf/open/floor/plasteel/white/corner{dir = 8},/area/toxins/explab) +"bvL" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/sign/securearea{pixel_x = -32},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/asmaint2) +"bvM" = (/obj/structure/chair{dir = 1},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"bvN" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"bvO" = (/obj/machinery/door/airlock/shuttle{name = "Supply Shuttle Airlock"; req_access_txt = "31"},/turf/open/floor/plating,/area/shuttle/supply) +"bvP" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 4; name = "Supply Dock Airlock"; req_access_txt = "31"},/turf/open/floor/plating,/area/quartermaster/storage) +"bvQ" = (/turf/open/floor/plating,/area/quartermaster/storage) +"bvR" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 8; name = "Supply Dock Airlock"; req_access_txt = "31"},/turf/open/floor/plating,/area/quartermaster/storage) +"bvS" = (/turf/open/floor/plasteel/warning{dir = 9},/area/quartermaster/storage) +"bvT" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/bot,/area/quartermaster/storage) +"bvU" = (/turf/open/floor/plasteel/delivery,/area/quartermaster/storage) +"bvV" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; dir = 8; freq = 1400; location = "QM #1"},/mob/living/simple_animal/bot/mulebot{beacon_freq = 1400; home_destination = "QM #1"; suffix = "#1"},/turf/open/floor/plasteel/bot,/area/quartermaster/storage) +"bvW" = (/obj/structure/table,/obj/machinery/requests_console{department = "Cargo Bay"; departmentType = 2; pixel_x = -30; pixel_y = 0},/obj/item/device/multitool,/obj/machinery/camera{c_tag = "Cargo Office"; dir = 4; network = list("SS13")},/turf/open/floor/plasteel,/area/quartermaster/office) +"bvX" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_mining{name = "Cargo Office"; req_access_txt = "50"},/turf/open/floor/plasteel,/area/quartermaster/office) +"bvY" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/quartermaster/office) +"bvZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bwa" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/bot,/area/hallway/primary/central) +"bwb" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = -32},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable,/obj/machinery/door/poddoor/shutters/preopen{id = "hop"; layer = 2.9; name = "Privacy Shutters"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/heads) +"bwc" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/filingcabinet/chestdrawer,/turf/open/floor/plasteel,/area/crew_quarters/heads) +"bwd" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/carpet,/area/crew_quarters/heads) +"bwe" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/carpet,/area/crew_quarters/heads) +"bwf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/crew_quarters/heads) +"bwg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/closed/wall/r_wall,/area/engine/gravity_generator) +"bwh" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/closed/wall/r_wall,/area/engine/gravity_generator) +"bwi" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/engine/gravity_generator) +"bwj" = (/turf/open/floor/plasteel,/area/engine/gravity_generator) +"bwk" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel,/area/engine/gravity_generator) +"bwl" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/closed/wall/r_wall,/area/engine/gravity_generator) +"bwm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/closed/wall/r_wall,/area/engine/gravity_generator) +"bwn" = (/turf/closed/wall,/area/teleporter) +"bwo" = (/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 1},/obj/structure/table,/obj/item/device/radio/beacon,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel,/area/teleporter) +"bwp" = (/obj/structure/table,/obj/item/weapon/hand_tele,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/teleporter) +"bwq" = (/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/obj/structure/closet/crate,/obj/item/weapon/crowbar,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/teleporter) +"bwr" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/teleporter) +"bws" = (/obj/machinery/camera{c_tag = "Teleporter"},/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/teleporter) +"bwt" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/teleporter) +"bwu" = (/obj/machinery/light_switch{pixel_x = 27},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/teleporter) +"bwv" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/blue/side{dir = 8},/area/hallway/primary/central) +"bww" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bwx" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/medical/medbay) +"bwy" = (/obj/structure/table,/obj/item/weapon/crowbar,/obj/item/clothing/neck/stethoscope,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/structure/sign/nosmoking_2{pixel_x = 0; pixel_y = 30},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/whiteyellow/corner{dir = 4},/area/medical/medbay) +"bwz" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/whiteyellow/side{dir = 1},/area/medical/medbay) +"bwA" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel/whiteyellow/side{dir = 1},/area/medical/medbay) +"bwB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/whiteyellow/side{dir = 1},/area/medical/medbay) +"bwC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/whiteyellow/corner{dir = 1},/area/medical/medbay) +"bwD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/noticeboard{pixel_y = 32},/obj/machinery/camera{c_tag = "Medbay West"; dir = 2; network = list("SS13")},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bwE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bwF" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bwG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay) +"bwH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bwI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/white,/area/medical/medbay) +"bwJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bwK" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/whiteblue/corner{dir = 2},/area/medical/medbay) +"bwL" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/whiteblue/side{dir = 2},/area/medical/medbay) +"bwM" = (/obj/structure/bed/roller,/turf/open/floor/plasteel/whiteblue/side{dir = 6},/area/medical/medbay) +"bwN" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/disks{pixel_x = 2; pixel_y = 2},/turf/open/floor/plasteel/white,/area/medical/genetics) +"bwO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/white,/area/medical/genetics) +"bwP" = (/turf/open/floor/plasteel/white,/area/medical/genetics) +"bwQ" = (/obj/machinery/door/window/westleft{name = "Monkey Pen"; req_access_txt = "9"},/turf/open/floor/plasteel,/area/medical/genetics) +"bwR" = (/obj/structure/table,/obj/item/weapon/crowbar/large,/turf/open/floor/plasteel,/area/assembly/chargebay) +"bwS" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical,/turf/open/floor/plasteel,/area/assembly/chargebay) +"bwT" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel,/area/assembly/chargebay) +"bwU" = (/obj/machinery/recharge_station,/turf/open/floor/plasteel/bot,/area/assembly/chargebay) +"bwV" = (/obj/structure/table,/obj/item/weapon/storage/box/bodybags,/obj/item/weapon/pen,/turf/open/floor/plasteel/white/side{dir = 4},/area/assembly/robotics) +"bwW" = (/obj/structure/table/optable{name = "Robotics Operating Table"},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/white,/area/assembly/robotics) +"bwX" = (/obj/machinery/computer/operating{name = "Robotics Operating Computer"},/obj/machinery/light,/turf/open/floor/plasteel/white,/area/assembly/robotics) +"bwY" = (/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/turf/open/floor/plasteel/warnwhite{dir = 8},/area/assembly/robotics) +"bwZ" = (/obj/structure/closet/wardrobe/robotics_black,/obj/item/device/radio/headset/headset_sci{pixel_x = -3},/turf/open/floor/plasteel/white,/area/assembly/robotics) +"bxa" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/white/side{dir = 5},/area/medical/research{name = "Research Division"}) +"bxb" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bxc" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white/side{dir = 9},/area/medical/research{name = "Research Division"}) +"bxd" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/noticeboard{pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bxe" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/camera{c_tag = "Research Division North"; dir = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bxf" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white/side{dir = 10},/area/medical/research{name = "Research Division"}) +"bxg" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bxh" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bxi" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white/side{dir = 6},/area/medical/research{name = "Research Division"}) +"bxj" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bxk" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/toxins/explab) +"bxl" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/explab) +"bxm" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/white,/area/toxins/explab) +"bxn" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/explab) +"bxo" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/explab) +"bxp" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/explab) +"bxq" = (/obj/machinery/door/airlock/maintenance{name = "Experimentation Lab Maintenance"; req_access_txt = "7"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/toxins/explab) +"bxr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 1},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint2) +"bxs" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/abandoned) +"bxt" = (/obj/machinery/button/door{dir = 2; id = "QMLoaddoor2"; name = "Loading Doors"; pixel_x = 24; pixel_y = 8},/obj/machinery/button/door{id = "QMLoaddoor"; name = "Loading Doors"; pixel_x = 24; pixel_y = -8},/turf/open/floor/mineral/titanium/blue,/area/shuttle/supply) +"bxu" = (/obj/machinery/camera{c_tag = "Cargo Recieving Dock"; dir = 4},/obj/machinery/button/door{id = "QMLoaddoor"; layer = 4; name = "Loading Doors"; pixel_x = -24; pixel_y = -8},/obj/machinery/button/door{dir = 2; id = "QMLoaddoor2"; layer = 4; name = "Loading Doors"; pixel_x = -24; pixel_y = 8},/turf/open/floor/plasteel/warning{dir = 8},/area/quartermaster/storage) +"bxv" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; dir = 8; freq = 1400; location = "QM #2"},/mob/living/simple_animal/bot/mulebot{home_destination = "QM #2"; suffix = "#2"},/turf/open/floor/plasteel/bot,/area/quartermaster/storage) +"bxw" = (/obj/structure/table,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/item/weapon/folder/yellow,/turf/open/floor/plasteel,/area/quartermaster/office) +"bxx" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel,/area/quartermaster/office) +"bxy" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel,/area/quartermaster/office) +"bxz" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/quartermaster/office) +"bxA" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/quartermaster/office) +"bxB" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel,/area/quartermaster/office) +"bxC" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/brown/corner{dir = 8},/area/hallway/primary/central) +"bxD" = (/obj/structure/table,/obj/machinery/recharger,/turf/open/floor/plasteel/blue/side{dir = 9},/area/crew_quarters/heads) +"bxE" = (/turf/open/floor/plasteel,/area/crew_quarters/heads) +"bxF" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/open/floor/plasteel,/area/crew_quarters/heads) +"bxG" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/crew_quarters/heads) +"bxH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/light{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/crew_quarters/heads) +"bxI" = (/turf/closed/wall/r_wall,/area/engine/gravity_generator) +"bxJ" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/engineering{name = "Gravity Generator"; req_access_txt = "11"},/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/gravity_generator) +"bxK" = (/obj/machinery/power/apc{dir = 8; name = "Teleporter APC"; pixel_x = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel,/area/teleporter) +"bxL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/teleporter) +"bxM" = (/obj/machinery/holopad,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/teleporter) +"bxN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/bluespace_beacon,/turf/open/floor/plasteel,/area/teleporter) +"bxO" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/teleporter) +"bxP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel,/area/teleporter) +"bxQ" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{name = "Teleport Access"; req_access_txt = "17"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/teleporter) +"bxR" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/blue/side{dir = 8},/area/hallway/primary/central) +"bxS" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bxT" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/medical/medbay) +"bxU" = (/obj/structure/table,/obj/item/weapon/storage/box/masks{pixel_x = 0; pixel_y = 0},/obj/item/weapon/storage/box/gloves{pixel_x = 3; pixel_y = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bxV" = (/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,/turf/open/floor/plasteel/white,/area/medical/medbay) +"bxW" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bxX" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bxY" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bxZ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = -30},/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bya" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay) +"byb" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/medbay) +"byc" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/plasteel/white,/area/medical/medbay) +"byd" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bye" = (/obj/machinery/light,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plasteel/white,/area/medical/medbay) +"byf" = (/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = 30; pixel_y = 0},/obj/machinery/camera{c_tag = "Medbay East"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = -22},/turf/open/floor/plasteel/white,/area/medical/medbay) +"byg" = (/turf/closed/wall,/area/medical/genetics) +"byh" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{id_tag = "GeneticsDoor"; name = "Genetics"; req_access_txt = "5; 9"},/turf/open/floor/plasteel/white,/area/medical/genetics) +"byi" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/genetics) +"byj" = (/obj/structure/chair/office/light{dir = 4},/turf/open/floor/plasteel/white,/area/medical/genetics) +"byk" = (/obj/machinery/computer/scan_consolenew,/turf/open/floor/plasteel/whiteblue/side{dir = 5},/area/medical/genetics) +"byl" = (/turf/closed/wall/r_wall,/area/assembly/chargebay) +"bym" = (/obj/structure/grille,/obj/machinery/door/poddoor/shutters/preopen{id = "robotics2"; name = "robotics lab shutters"},/obj/structure/window/fulltile,/turf/open/floor/plating,/area/assembly/robotics) +"byn" = (/obj/machinery/door/airlock/research{name = "Robotics Lab"; req_access_txt = "29"; req_one_access_txt = "0"},/turf/open/floor/plasteel/white,/area/assembly/robotics) +"byo" = (/obj/machinery/status_display{density = 0; layer = 3; pixel_x = -32; pixel_y = 0},/turf/open/floor/plasteel/white/side{dir = 5},/area/medical/research{name = "Research Division"}) +"byp" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"byq" = (/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,/turf/open/floor/plasteel/white/side{dir = 9},/area/medical/research{name = "Research Division"}) +"byr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bys" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"byt" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"byu" = (/obj/machinery/light,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"byv" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"byw" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor/heavy,/obj/machinery/door/airlock/research{name = "Experimentation Lab"; req_access_txt = "7"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/explab) +"byx" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/explab) +"byy" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/explab) +"byz" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/explab) +"byA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/white,/area/toxins/explab) +"byB" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/explab) +"byC" = (/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel/white,/area/toxins/explab) +"byD" = (/obj/machinery/power/apc{dir = 4; name = "Experimentation Lab APC"; pixel_x = 26; pixel_y = 0},/obj/structure/cable,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/explab) +"byE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/toxins/explab) +"byF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint2) +"byG" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/maintenance/asmaint2) +"byH" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/asmaint2) +"byI" = (/obj/machinery/door/airlock/shuttle,/turf/open/floor/plasteel/shuttle/white,/area/shuttle/abandoned) +"byJ" = (/obj/machinery/door/airlock/shuttle{name = "Supply Shuttle Airlock"; req_access_txt = "31"},/obj/docking_port/mobile/supply{dwidth = 5; width = 12},/obj/docking_port/stationary{dir = 8; dwidth = 5; height = 7; id = "supply_home"; name = "Cargo Bay"; width = 12},/turf/open/floor/plating,/area/shuttle/supply) +"byK" = (/obj/machinery/conveyor_switch/oneway{convdir = -1; id = "QMLoad"},/turf/open/floor/plasteel,/area/quartermaster/storage) +"byL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/storage) +"byM" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; dir = 8; freq = 1400; location = "QM #3"},/turf/open/floor/plasteel/bot,/area/quartermaster/storage) +"byN" = (/obj/structure/table,/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/computer/stockexchange,/turf/open/floor/plasteel,/area/quartermaster/office) +"byO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/quartermaster/office) +"byP" = (/obj/machinery/mineral/ore_redemption{input_dir = 8; output_dir = 4},/obj/machinery/door/firedoor,/turf/open/floor/plasteel/floorgrime,/area/quartermaster/office) +"byQ" = (/turf/open/floor/plasteel/loadingarea{dir = 4},/area/quartermaster/office) +"byR" = (/obj/structure/chair{dir = 8},/obj/machinery/light,/turf/open/floor/plasteel,/area/quartermaster/office) +"byS" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/bot,/area/hallway/primary/central) +"byT" = (/obj/machinery/keycard_auth{pixel_x = -24; pixel_y = 0},/obj/machinery/computer/cargo,/turf/open/floor/plasteel/blue/side{dir = 8},/area/crew_quarters/heads) +"byU" = (/obj/structure/chair/office/dark{dir = 4},/obj/effect/landmark/start{name = "Head of Personnel"},/turf/open/floor/plasteel,/area/crew_quarters/heads) +"byV" = (/obj/structure/table,/obj/item/weapon/folder/blue,/obj/item/weapon/stamp/hop,/turf/open/floor/plasteel,/area/crew_quarters/heads) +"byW" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel,/area/crew_quarters/heads) +"byX" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/closed/wall,/area/engine/gravity_generator) +"byY" = (/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/warning{dir = 9},/area/engine/gravity_generator) +"byZ" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/camera{c_tag = "Gravity Generator Foyer"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/warning{dir = 5},/area/engine/gravity_generator) +"bza" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/closed/wall,/area/engine/gravity_generator) +"bzb" = (/turf/open/floor/plasteel/warning{dir = 10},/area/teleporter) +"bzc" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/warning,/area/teleporter) +"bzd" = (/turf/open/floor/plasteel/warning,/area/teleporter) +"bze" = (/turf/open/floor/plasteel/warning{dir = 6},/area/teleporter) +"bzf" = (/obj/machinery/shieldwallgen,/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/bot,/area/teleporter) +"bzg" = (/obj/machinery/shieldwallgen,/turf/open/floor/plasteel/bot,/area/teleporter) +"bzh" = (/obj/structure/closet/crate,/turf/open/floor/plasteel,/area/teleporter) +"bzi" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/sign/securearea{pixel_x = -32; pixel_y = 0},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/blue/side{dir = 8},/area/hallway/primary/central) +"bzj" = (/obj/machinery/requests_console{announcementConsole = 0; department = "Medbay"; departmentType = 1; name = "Medbay RC"; pixel_x = -30; pixel_y = 0; pixel_z = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay) +"bzk" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay) +"bzl" = (/obj/machinery/vending/medical{pixel_x = -2},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bzm" = (/turf/closed/wall,/area/medical/sleeper) +"bzn" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/medical/sleeper) +"bzo" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bzp" = (/obj/machinery/button/door{desc = "A remote control switch for the genetics doors."; id = "GeneticsDoor"; name = "Genetics Exit Button"; normaldoorcontrol = 1; pixel_x = 8; pixel_y = 24},/obj/structure/table,/obj/item/weapon/book/manual/medical_cloning{pixel_y = 6},/turf/open/floor/plasteel/white,/area/medical/genetics) +"bzq" = (/obj/structure/closet/wardrobe/white,/turf/open/floor/plasteel/white,/area/medical/genetics) +"bzr" = (/obj/structure/closet/secure_closet/personal/patient,/turf/open/floor/plasteel/white,/area/medical/genetics) +"bzs" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/genetics) +"bzt" = (/obj/machinery/dna_scannernew,/turf/open/floor/plasteel/whiteblue/side{dir = 6},/area/medical/genetics) +"bzu" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/open/floor/plasteel,/area/medical/genetics) +"bzv" = (/obj/structure/window/reinforced,/mob/living/carbon/monkey,/turf/open/floor/plasteel,/area/medical/genetics) +"bzw" = (/obj/structure/disposalpipe/sortjunction{dir = 2; icon_state = "pipe-j2s"; sortType = 12},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/genetics) +"bzx" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/sign/securearea{pixel_x = 32},/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plasteel/white,/area/medical/genetics) +"bzy" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/medical/research{name = "Research Division"}) +"bzz" = (/obj/machinery/door/firedoor/heavy,/obj/machinery/door/poddoor/preopen{id = "Biohazard"; name = "biohazard containment door"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/bot,/area/medical/research{name = "Research Division"}) +"bzA" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/whiteblue/side{dir = 8},/area/medical/research{name = "Research Division"}) +"bzB" = (/obj/machinery/camera{c_tag = "Research Division West"; dir = 2; network = list("SS13")},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bzC" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bzD" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bzE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white/side{dir = 10},/area/medical/research{name = "Research Division"}) +"bzF" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bzG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white/side{dir = 6},/area/medical/research{name = "Research Division"}) +"bzH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white/side{dir = 5},/area/medical/research{name = "Research Division"}) +"bzI" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/holopad,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bzJ" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white/side{dir = 9},/area/medical/research{name = "Research Division"}) +"bzK" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/crew_quarters/hor) +"bzL" = (/turf/closed/wall,/area/crew_quarters/hor) +"bzM" = (/obj/machinery/light_switch{pixel_x = -20; pixel_y = 0},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/white,/area/toxins/explab) +"bzN" = (/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_x = 0; pixel_y = -30},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel/white,/area/toxins/explab) +"bzO" = (/turf/open/floor/plasteel/white,/area/toxins/explab) +"bzP" = (/obj/structure/chair/office/light,/obj/effect/landmark/start{name = "Scientist"},/turf/open/floor/plasteel/white,/area/toxins/explab) +"bzQ" = (/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = -32},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/toxins/explab) +"bzR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/asmaint2) +"bzS" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/asmaint2) +"bzT" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/asmaint2) +"bzU" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/asmaint2) +"bzV" = (/turf/open/floor/plating,/area/maintenance/asmaint2) +"bzW" = (/obj/machinery/door/window,/turf/open/floor/mineral/titanium/purple,/area/shuttle/abandoned) +"bzX" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/mineral/titanium/purple,/area/shuttle/abandoned) +"bzY" = (/obj/structure/table,/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"bzZ" = (/obj/structure/table,/obj/item/weapon/gun/energy/laser/retro,/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"bAa" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/obj/machinery/door/poddoor{id = "QMLoaddoor"; name = "supply dock loading door"},/turf/open/floor/plating,/area/shuttle/supply) +"bAb" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/obj/machinery/door/poddoor{id = "QMLoaddoor"; name = "supply dock loading door"},/turf/open/floor/plating,/area/quartermaster/storage) +"bAc" = (/obj/structure/plasticflaps,/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/turf/open/floor/plating,/area/quartermaster/storage) +"bAd" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/turf/open/floor/plating/warnplate{dir = 1},/area/quartermaster/storage) +"bAe" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/obj/machinery/light,/obj/machinery/status_display{density = 0; pixel_y = -30; supply_display = 1},/turf/open/floor/plating/warnplate{dir = 1},/area/quartermaster/storage) +"bAf" = (/obj/machinery/light,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -35},/turf/open/floor/plasteel/loadingarea{dir = 8},/area/quartermaster/storage) +"bAg" = (/obj/machinery/camera{c_tag = "Cargo Bay South"; dir = 1},/turf/open/floor/plasteel,/area/quartermaster/storage) +"bAh" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; dir = 8; freq = 1400; location = "QM #4"},/turf/open/floor/plasteel/bot,/area/quartermaster/storage) +"bAi" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 6; pixel_y = -5},/turf/open/floor/plasteel,/area/quartermaster/office) +"bAj" = (/obj/structure/closet/crate,/turf/open/floor/plasteel,/area/quartermaster/office) +"bAk" = (/obj/machinery/light,/obj/machinery/power/apc{dir = 2; name = "Cargo Office APC"; pixel_x = 1; pixel_y = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/brown/corner{dir = 2},/area/quartermaster/office) +"bAl" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/quartermaster/office) +"bAm" = (/turf/open/floor/plasteel/brown/corner{dir = 8},/area/quartermaster/office) +"bAn" = (/turf/closed/wall,/area/security/checkpoint/supply) +"bAo" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/checkpoint/supply) +"bAp" = (/obj/machinery/camera{c_tag = "Cargo Bay Entrance"; dir = 4; network = list("SS13")},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/brown/corner{dir = 8},/area/hallway/primary/central) +"bAq" = (/obj/machinery/door/poddoor/shutters/preopen{id = "hopqueue"; name = "HoP Queue Shutters"},/turf/open/floor/plasteel/loadingarea{dir = 4},/area/hallway/primary/central) +"bAr" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/structure/closet/secure_closet/hop,/turf/open/floor/plasteel/blue/side{dir = 10},/area/crew_quarters/heads) +"bAs" = (/obj/machinery/requests_console{announcementConsole = 1; department = "Head of Personnel's Desk"; departmentType = 5; name = "Head of Personnel RC"; pixel_y = -30},/obj/machinery/camera{c_tag = "Head of Personnel's Office"; dir = 1},/turf/open/floor/plasteel,/area/crew_quarters/heads) +"bAt" = (/obj/structure/table,/obj/item/weapon/book/manual/wiki/security_space_law,/turf/open/floor/plasteel,/area/crew_quarters/heads) +"bAu" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel,/area/crew_quarters/heads) +"bAv" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel,/area/crew_quarters/heads) +"bAw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/engine/gravity_generator) +"bAx" = (/obj/structure/closet/radiation,/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = -32; pixel_y = 0},/turf/open/floor/plasteel/warning{dir = 8},/area/engine/gravity_generator) +"bAy" = (/obj/structure/closet/radiation,/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 32; pixel_y = 0},/turf/open/floor/plasteel/warning{dir = 4},/area/engine/gravity_generator) +"bAz" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/engine/gravity_generator) +"bAA" = (/obj/machinery/computer/teleporter,/turf/open/floor/plating,/area/teleporter) +"bAB" = (/obj/machinery/teleport/station,/turf/open/floor/plating,/area/teleporter) +"bAC" = (/obj/machinery/teleport/hub,/turf/open/floor/plating,/area/teleporter) +"bAD" = (/obj/structure/rack,/obj/item/weapon/tank/internals/oxygen,/obj/item/clothing/mask/gas,/turf/open/floor/plating,/area/teleporter) +"bAE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/hallway/primary/central) +"bAF" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=4"; dir = 4; freq = 1400; location = "Medbay"},/obj/structure/plasticflaps{opacity = 1},/turf/open/floor/plasteel/bot,/area/medical/medbay) +"bAG" = (/obj/machinery/door/window/eastleft{name = "Medical Delivery"; req_access_txt = "5"},/turf/open/floor/plasteel/delivery,/area/medical/medbay) +"bAH" = (/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay) +"bAI" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bAJ" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bAK" = (/obj/machinery/computer/med_data,/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bAL" = (/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bAM" = (/turf/open/floor/plasteel/white/side{dir = 8},/area/medical/sleeper) +"bAN" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 8},/turf/open/floor/plasteel,/area/medical/sleeper) +"bAO" = (/obj/structure/sign/nosmoking_2,/turf/closed/wall,/area/medical/sleeper) +"bAP" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = 7; pixel_y = 1},/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = 7; pixel_y = 1},/turf/open/floor/plasteel,/area/medical/sleeper) +"bAQ" = (/obj/machinery/atmospherics/components/unary/cryo_cell,/turf/open/floor/plasteel,/area/medical/sleeper) +"bAR" = (/obj/structure/table,/obj/machinery/cell_charger,/turf/open/floor/plasteel,/area/medical/sleeper) +"bAS" = (/obj/structure/table/glass,/obj/machinery/camera{c_tag = "Medbay Cryogenics"; dir = 2; network = list("SS13"); pixel_x = 0; pixel_y = 0},/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = 0; pixel_y = 0},/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = 0; pixel_y = 0},/turf/open/floor/plasteel,/area/medical/sleeper) +"bAT" = (/obj/machinery/camera{c_tag = "Genetics Cloning"; dir = 4; network = list("SS13")},/obj/structure/table,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/item/weapon/storage/box/rxglasses{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/bodybags,/obj/item/weapon/pen,/turf/open/floor/plasteel/white,/area/medical/genetics) +"bAU" = (/obj/machinery/holopad,/turf/open/floor/plasteel/white,/area/medical/genetics) +"bAV" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/white,/area/medical/genetics) +"bAW" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/medical/genetics) +"bAX" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/genetics) +"bAY" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/genetics) +"bAZ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/genetics) +"bBa" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/whitepurple/side{dir = 4},/area/medical/genetics) +"bBb" = (/obj/machinery/door/airlock/research{name = "Genetics Research"; req_access_txt = "9"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/genetics) +"bBc" = (/obj/structure/disposalpipe/sortjunction{sortType = 23},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/genetics) +"bBd" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/genetics) +"bBe" = (/obj/machinery/door/airlock/research{name = "Genetics Research Access"; req_access_txt = "47"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bBf" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/firedoor/heavy,/obj/machinery/door/poddoor/preopen{id = "Biohazard"; name = "biohazard containment door"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/bot,/area/medical/research{name = "Research Division"}) +"bBg" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/whiteblue/side{dir = 8},/area/medical/research{name = "Research Division"}) +"bBh" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bBi" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bBj" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bBk" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bBl" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bBm" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white/side{dir = 5},/area/medical/research{name = "Research Division"}) +"bBn" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bBo" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/white/side{dir = 9},/area/medical/research{name = "Research Division"}) +"bBp" = (/obj/structure/filingcabinet/chestdrawer,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/hor) +"bBq" = (/obj/machinery/computer/security/telescreen{desc = "Used for watching the RD's goons and the AI's satellite from the safety of his office."; name = "Research Monitor"; network = list("RD","MiniSat"); pixel_x = 0; pixel_y = 2},/obj/structure/table,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/hor) +"bBr" = (/obj/machinery/computer/aifixer,/obj/machinery/requests_console{announcementConsole = 1; department = "Research Director's Desk"; departmentType = 5; name = "Research Director RC"; pixel_x = -2; pixel_y = 30},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/hor) +"bBs" = (/obj/structure/rack,/obj/item/weapon/circuitboard/aicore{pixel_x = -2; pixel_y = 4},/turf/open/floor/plasteel/warnwhite{dir = 9},/area/crew_quarters/hor) +"bBt" = (/obj/machinery/ai_status_display{pixel_y = 32},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/warnwhite{dir = 1},/area/crew_quarters/hor) +"bBu" = (/turf/open/floor/plasteel/warnwhite{dir = 5},/area/crew_quarters/hor) +"bBv" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 1},/turf/open/floor/plasteel/warning{dir = 1},/area/toxins/explab) +"bBw" = (/turf/closed/wall,/area/toxins/explab) +"bBx" = (/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/book/manual/experimentor,/turf/open/floor/plasteel/white/corner{dir = 4},/area/toxins/explab) +"bBy" = (/obj/machinery/computer/rdconsole/experiment,/turf/open/floor/plasteel/white/side{dir = 1},/area/toxins/explab) +"bBz" = (/obj/structure/closet/radiation,/turf/open/floor/plasteel/white/corner{dir = 1},/area/toxins/explab) +"bBA" = (/obj/machinery/button/door{id = "telelab"; name = "Test Chamber Blast Doors"; pixel_x = 25; pixel_y = 0},/turf/open/floor/plasteel/warnwhite{dir = 2},/area/toxins/explab) +"bBB" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 6},/turf/open/floor/plating,/area/maintenance/asmaint2) +"bBC" = (/obj/machinery/atmospherics/components/binary/valve{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint2) +"bBD" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 8},/obj/machinery/light/small{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint2) +"bBE" = (/obj/structure/lattice,/obj/effect/landmark{name = "carpspawn"},/turf/open/space,/area/space) +"bBF" = (/obj/machinery/door/airlock/glass,/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"bBG" = (/obj/machinery/door/airlock/glass,/turf/open/floor/plasteel/shuttle/white,/area/shuttle/abandoned) +"bBH" = (/obj/structure/chair{dir = 4},/obj/effect/decal/remains/human,/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"bBI" = (/obj/machinery/computer/shuttle/white_ship,/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"bBJ" = (/turf/closed/wall,/area/quartermaster/qm) +"bBK" = (/obj/machinery/door/airlock/glass_mining{name = "Quartermaster"; req_access_txt = "41"},/turf/open/floor/plasteel,/area/quartermaster/qm) +"bBL" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/quartermaster/qm) +"bBM" = (/turf/closed/wall,/area/quartermaster/miningdock) +"bBN" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/quartermaster/miningdock) +"bBO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/mining{req_access_txt = "48"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/quartermaster/miningdock) +"bBP" = (/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/obj/structure/table,/turf/open/floor/plasteel/red/side{dir = 9},/area/security/checkpoint/supply) +"bBQ" = (/obj/item/weapon/book/manual/wiki/security_space_law,/obj/structure/table,/turf/open/floor/plasteel/red/side{dir = 1},/area/security/checkpoint/supply) +"bBR" = (/obj/machinery/recharger{pixel_y = 4},/obj/structure/table,/turf/open/floor/plasteel/red/side{dir = 1},/area/security/checkpoint/supply) +"bBS" = (/obj/machinery/computer/secure_data,/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/checkpoint/supply) +"bBT" = (/obj/machinery/door/airlock/command{name = "Head of Personnel"; req_access = null; req_access_txt = "57"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/crew_quarters/heads) +"bBU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/closed/wall,/area/engine/gravity_generator) +"bBV" = (/obj/machinery/ai_status_display,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/closed/wall,/area/engine/gravity_generator) +"bBW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/closed/wall,/area/engine/gravity_generator) +"bBX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/closed/wall,/area/engine/gravity_generator) +"bBY" = (/obj/machinery/camera{c_tag = "Central Hallway South-East"; dir = 8},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bBZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/medical/sleeper) +"bCa" = (/obj/machinery/door/airlock/glass_medical{id_tag = ""; name = "Surgery Observation"; req_access_txt = "0"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/medical/sleeper) +"bCb" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/structure/mirror{pixel_x = -28},/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bCc" = (/obj/machinery/holopad,/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bCd" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/delivery,/area/medical/sleeper) +"bCe" = (/turf/open/floor/plasteel,/area/medical/sleeper) +"bCf" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 5},/turf/open/floor/plasteel,/area/medical/sleeper) +"bCg" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/open/floor/plasteel,/area/medical/sleeper) +"bCh" = (/obj/machinery/atmospherics/pipe/manifold/general/visible,/turf/open/floor/plasteel,/area/medical/sleeper) +"bCi" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 10; pixel_x = 0; initialize_directions = 10},/turf/open/floor/plasteel,/area/medical/sleeper) +"bCj" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/white,/area/medical/genetics) +"bCk" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/genetics) +"bCl" = (/obj/structure/chair,/obj/effect/landmark/start{name = "Geneticist"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/genetics) +"bCm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/genetics) +"bCn" = (/obj/machinery/door/airlock/glass_research{name = "Genetics Research"; req_access_txt = "5; 9"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/genetics) +"bCo" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/genetics) +"bCp" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/genetics) +"bCq" = (/obj/machinery/camera{c_tag = "Genetics Research"; dir = 1; network = list("SS13","RD"); pixel_x = 0},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/whitepurple/side{dir = 4},/area/medical/genetics) +"bCr" = (/obj/structure/sign/securearea,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/medical/genetics) +"bCs" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/genetics) +"bCt" = (/obj/machinery/camera{c_tag = "Genetics Access"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = -22},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/genetics) +"bCu" = (/turf/closed/wall/r_wall,/area/toxins/server) +"bCv" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{name = "Server Room"; req_access = null; req_access_txt = "30"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/toxins/server) +"bCw" = (/turf/closed/wall,/area/security/checkpoint/science) +"bCx" = (/obj/machinery/door/airlock/glass_security{name = "Security Office"; req_access_txt = "63"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/security/checkpoint/science) +"bCy" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/security/checkpoint/science) +"bCz" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/checkpoint/science) +"bCA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bCB" = (/obj/structure/table,/obj/machinery/button/door{id = "Biohazard"; name = "Biohazard Shutter Control"; pixel_x = -5; pixel_y = 5; req_access_txt = "47"},/obj/machinery/button/door{id = "rnd2"; name = "Research Lab Shutter Control"; pixel_x = 5; pixel_y = 5; req_access_txt = "47"},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/hor) +"bCC" = (/obj/structure/chair/office/light{dir = 8},/obj/effect/landmark/start{name = "Research Director"},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/hor) +"bCD" = (/obj/machinery/computer/robotics,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/hor) +"bCE" = (/obj/structure/rack,/obj/item/device/aicard,/turf/open/floor/plasteel/warnwhite{dir = 8},/area/crew_quarters/hor) +"bCF" = (/obj/machinery/holopad,/turf/open/floor/plasteel/white,/area/crew_quarters/hor) +"bCG" = (/obj/structure/displaycase/labcage,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/warnwhite{dir = 4},/area/crew_quarters/hor) +"bCH" = (/turf/closed/wall/r_wall,/area/crew_quarters/hor) +"bCI" = (/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "telelab"; name = "test chamber blast door"},/obj/structure/window/reinforced/fulltile,/obj/machinery/door/firedoor/heavy,/turf/open/floor/engine,/area/toxins/explab) +"bCJ" = (/obj/machinery/door/poddoor/preopen{id = "telelab"; name = "test chamber blast door"},/obj/machinery/door/firedoor/heavy,/turf/open/floor/engine,/area/toxins/explab) +"bCK" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 8},/turf/open/floor/plating,/area/maintenance/asmaint2) +"bCL" = (/obj/machinery/atmospherics/components/unary/thermomachine/freezer{dir = 8},/turf/open/floor/plating,/area/maintenance/asmaint2) +"bCM" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"bCN" = (/obj/structure/table,/obj/item/weapon/tank/internals/oxygen,/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"bCO" = (/turf/open/floor/mineral/titanium/blue,/turf/closed/wall/mineral/titanium/interior,/area/shuttle/supply) +"bCP" = (/obj/structure/table,/obj/item/weapon/cartridge/quartermaster{pixel_x = 6; pixel_y = 5},/obj/item/weapon/cartridge/quartermaster,/obj/item/weapon/cartridge/quartermaster{pixel_x = -4; pixel_y = 7},/obj/machinery/requests_console{department = "Cargo Bay"; departmentType = 2; pixel_x = -30; pixel_y = 0},/obj/item/weapon/coin/silver,/turf/open/floor/plasteel/brown{dir = 9},/area/quartermaster/qm) +"bCQ" = (/obj/machinery/power/apc{dir = 1; name = "Quartermaster APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plasteel/brown{dir = 1},/area/quartermaster/qm) +"bCR" = (/turf/open/floor/plasteel/brown{dir = 1},/area/quartermaster/qm) +"bCS" = (/obj/machinery/holopad,/turf/open/floor/plasteel/brown{dir = 1},/area/quartermaster/qm) +"bCT" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/turf/open/floor/plasteel/brown{dir = 1},/area/quartermaster/qm) +"bCU" = (/obj/structure/closet/secure_closet/quartermaster,/obj/machinery/airalarm{pixel_y = 23},/turf/open/floor/plasteel/brown{dir = 5},/area/quartermaster/qm) +"bCV" = (/obj/machinery/power/apc{dir = 1; name = "Mining Dock APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plasteel,/area/quartermaster/miningdock) +"bCW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/quartermaster/miningdock) +"bCX" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/quartermaster/miningdock) +"bCY" = (/obj/machinery/light{dir = 1},/obj/machinery/light_switch{pixel_y = 28},/turf/open/floor/plasteel,/area/quartermaster/miningdock) +"bCZ" = (/turf/open/floor/plasteel/red/side{dir = 8},/area/security/checkpoint/supply) +"bDa" = (/obj/structure/chair/office/dark{dir = 1},/obj/effect/landmark/start/depsec/supply,/turf/open/floor/plasteel,/area/security/checkpoint/supply) +"bDb" = (/turf/open/floor/plasteel,/area/security/checkpoint/supply) +"bDc" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/obj/machinery/computer/security/mining{network = list("MINE","AuxBase")},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/checkpoint/supply) +"bDd" = (/obj/machinery/newscaster{pixel_y = 32},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bDe" = (/obj/structure/sign/securearea{pixel_y = 32},/turf/open/floor/plasteel/blue/side{dir = 1},/area/hallway/primary/central) +"bDf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plasteel/blue/side{dir = 1},/area/hallway/primary/central) +"bDg" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/blue/side{dir = 1},/area/hallway/primary/central) +"bDh" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/warning/corner{dir = 8},/area/hallway/primary/central) +"bDi" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/primary/central) +"bDj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/primary/central) +"bDk" = (/obj/structure/sign/securearea{pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 1},/area/hallway/primary/central) +"bDl" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/warning/corner{dir = 4},/area/hallway/primary/central) +"bDm" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bDn" = (/obj/structure/chair,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/medical/sleeper) +"bDo" = (/obj/structure/chair,/obj/machinery/camera{c_tag = "Surgery Observation"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/medical/sleeper) +"bDp" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/medical/sleeper) +"bDq" = (/obj/structure/chair,/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/turf/open/floor/plasteel/black,/area/medical/sleeper) +"bDr" = (/obj/structure/chair,/turf/open/floor/plasteel/black,/area/medical/sleeper) +"bDs" = (/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/shower{dir = 4},/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bDt" = (/obj/effect/landmark/start{name = "Medical Doctor"},/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bDu" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 6},/turf/open/floor/plasteel,/area/medical/sleeper) +"bDv" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 1},/turf/open/floor/plasteel,/area/medical/sleeper) +"bDw" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel,/area/medical/sleeper) +"bDx" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bDy" = (/obj/machinery/dna_scannernew,/turf/open/floor/plasteel/whiteblue/side{dir = 10},/area/medical/genetics) +"bDz" = (/obj/machinery/computer/cloning,/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/open/floor/plasteel/whiteblue/side{dir = 2},/area/medical/genetics) +"bDA" = (/obj/machinery/clonepod,/turf/open/floor/plasteel/whiteblue/side{dir = 6},/area/medical/genetics) +"bDB" = (/obj/structure/sign/securearea,/turf/closed/wall/r_wall,/area/medical/genetics) +"bDC" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/light_switch{pixel_y = -28},/turf/open/floor/plasteel/white,/area/medical/genetics) +"bDD" = (/obj/structure/closet/secure_closet/medical1,/turf/open/floor/plasteel/white,/area/medical/genetics) +"bDE" = (/obj/structure/closet/secure_closet/personal/patient,/obj/machinery/light,/turf/open/floor/plasteel/white,/area/medical/genetics) +"bDF" = (/obj/structure/closet/wardrobe/genetics_white,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/open/floor/plasteel/white,/area/medical/genetics) +"bDG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/maintenance/asmaint) +"bDH" = (/obj/machinery/r_n_d/server/robotics,/turf/open/floor/bluegrid{name = "Server Base"; initial_gas_mix = "n2=500;TEMP=80"},/area/toxins/server) +"bDI" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; external_pressure_bound = 140; on = 1; pressure_checks = 0},/turf/open/floor/bluegrid{name = "Server Base"; initial_gas_mix = "n2=500;TEMP=80"},/area/toxins/server) +"bDJ" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/sign/securearea{desc = "A warning sign which reads 'SERVER ROOM'."; name = "SERVER ROOM"; pixel_y = 32},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/toxins/server) +"bDK" = (/obj/machinery/atmospherics/pipe/simple{dir = 10},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/black,/area/toxins/server) +"bDL" = (/obj/machinery/camera{c_tag = "Server Room"; dir = 2; network = list("SS13","RD"); pixel_x = 22},/obj/machinery/power/apc{dir = 1; name = "Server Room APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel/black,/area/toxins/server) +"bDM" = (/obj/machinery/atmospherics/components/unary/thermomachine/freezer{target_temperature = 80; dir = 2; on = 1},/obj/effect/decal/cleanable/cobweb/cobweb2,/turf/open/floor/plasteel/black,/area/toxins/server) +"bDN" = (/obj/structure/reagent_dispensers/peppertank{pixel_x = -30; pixel_y = 0},/obj/machinery/airalarm{pixel_y = 25},/obj/structure/closet,/turf/open/floor/plasteel/red/side{dir = 9},/area/security/checkpoint/science) +"bDO" = (/obj/machinery/light_switch{pixel_x = 8; pixel_y = 28},/obj/machinery/button/door{id = "Biohazard"; name = "Biohazard Shutter Control"; pixel_x = -5; pixel_y = 28; req_access_txt = "47"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/checkpoint/science) +"bDP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel/red/side{dir = 1},/area/security/checkpoint/science) +"bDQ" = (/obj/structure/table,/obj/machinery/computer/security/telescreen{desc = "Used for watching the RD's goons from the safety of your own office."; name = "Research Monitor"; network = list("RD"); pixel_x = 0; pixel_y = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/red/side{dir = 1},/area/security/checkpoint/science) +"bDR" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 4},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/checkpoint/science) +"bDS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/white/side{dir = 9},/area/medical/research{name = "Research Division"}) +"bDT" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/crew_quarters/hor) +"bDU" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/item/weapon/folder/white,/obj/item/weapon/stamp/rd{pixel_x = 3; pixel_y = -2},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/hor) +"bDV" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/hor) +"bDW" = (/obj/machinery/computer/mecha,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/hor) +"bDX" = (/obj/structure/rack,/obj/item/device/taperecorder{pixel_x = -3},/obj/item/device/paicard{pixel_x = 4},/turf/open/floor/plasteel/warnwhite{dir = 10},/area/crew_quarters/hor) +"bDY" = (/turf/open/floor/plasteel/warnwhite{dir = 2},/area/crew_quarters/hor) +"bDZ" = (/obj/machinery/modular_computer/console/preset/research,/turf/open/floor/plasteel/warnwhite{dir = 6},/area/crew_quarters/hor) +"bEa" = (/turf/open/floor/engine,/area/toxins/explab) +"bEb" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/general/visible,/turf/open/floor/plating,/area/maintenance/asmaint2) +"bEc" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/mineral/titanium/purple,/area/shuttle/abandoned) +"bEd" = (/obj/machinery/door/window/northright,/obj/effect/decal/remains/human,/turf/open/floor/mineral/titanium/purple,/area/shuttle/abandoned) +"bEe" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/turf/open/floor/plating/airless,/area/shuttle/supply) +"bEf" = (/obj/machinery/computer/cargo,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/brown{dir = 8},/area/quartermaster/qm) +"bEg" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel,/area/quartermaster/qm) +"bEh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/quartermaster/qm) +"bEi" = (/obj/structure/chair/office/dark,/obj/effect/landmark/start{name = "Quartermaster"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/quartermaster/qm) +"bEj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel,/area/quartermaster/qm) +"bEk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/brown{dir = 4},/area/quartermaster/qm) +"bEl" = (/obj/machinery/door/airlock/glass_mining{name = "Quartermaster"; req_access_txt = "41"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/qm) +"bEm" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/miningdock) +"bEn" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/landmark/start{name = "Shaft Miner"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/quartermaster/miningdock) +"bEo" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/sortjunction{dir = 1; icon_state = "pipe-j2s"; sortType = 3},/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel,/area/quartermaster/miningdock) +"bEp" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/miningdock) +"bEq" = (/obj/machinery/door/airlock/glass_security{name = "Security Office"; req_access_txt = "63"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/checkpoint/supply) +"bEr" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/checkpoint/supply) +"bEs" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/security/checkpoint/supply) +"bEt" = (/obj/item/weapon/screwdriver{pixel_y = 10},/obj/machinery/light{dir = 4},/obj/item/device/radio/off,/turf/open/floor/plasteel/red/side{dir = 4},/area/security/checkpoint/supply) +"bEu" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=AIW"; location = "QM"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bEv" = (/obj/machinery/door/firedoor,/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/hallway/primary/central) +"bEw" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=AftH"; location = "AIW"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/primary/central) +"bEx" = (/obj/machinery/holopad,/turf/open/floor/plasteel,/area/hallway/primary/central) +"bEy" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=CHE"; location = "AIE"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/central) +"bEz" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=HOP"; location = "CHE"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bEA" = (/obj/structure/chair,/obj/structure/sign/nosmoking_2{pixel_x = -28},/turf/open/floor/plasteel/black,/area/medical/sleeper) +"bEB" = (/obj/structure/chair,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/medical/sleeper) +"bEC" = (/obj/machinery/holopad,/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/black,/area/medical/sleeper) +"bED" = (/obj/structure/chair,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/black,/area/medical/sleeper) +"bEE" = (/obj/structure/closet/secure_closet/medical1,/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bEF" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 8},/obj/machinery/camera{c_tag = "Medbay Treatment Center"; dir = 8; network = list("SS13")},/turf/open/floor/plasteel,/area/medical/sleeper) +"bEG" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/plasteel,/area/medical/sleeper) +"bEH" = (/obj/structure/table/reinforced,/obj/item/weapon/wrench/medical,/turf/open/floor/plasteel,/area/medical/sleeper) +"bEI" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 1; name = "Connector Port (Air Supply)"},/obj/machinery/portable_atmospherics/canister/oxygen,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/machinery/light,/turf/open/floor/plasteel,/area/medical/sleeper) +"bEJ" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 1; name = "Connector Port (Air Supply)"},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/plasteel,/area/medical/sleeper) +"bEK" = (/obj/machinery/atmospherics/components/unary/thermomachine/freezer{dir = 1},/turf/open/floor/plasteel,/area/medical/sleeper) +"bEL" = (/turf/open/floor/plating,/area/maintenance/asmaint) +"bEM" = (/obj/structure/reagent_dispensers/watertank,/obj/effect/decal/cleanable/cobweb/cobweb2,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/asmaint) +"bEN" = (/obj/machinery/airalarm/server{dir = 4; pixel_x = -22; pixel_y = 0},/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/black{name = "Server Walkway"; initial_gas_mix = "n2=500;TEMP=80"},/area/toxins/server) +"bEO" = (/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plasteel/black{name = "Server Walkway"; initial_gas_mix = "n2=500;TEMP=80"},/area/toxins/server) +"bEP" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_command{name = "Server Room"; req_access_txt = "30"},/turf/open/floor/plasteel/black,/area/toxins/server) +"bEQ" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8},/turf/open/floor/plasteel/black,/area/toxins/server) +"bER" = (/obj/structure/chair/office/light,/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/open/floor/plasteel/black,/area/toxins/server) +"bES" = (/obj/machinery/atmospherics/pipe/simple{dir = 9},/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/black,/area/toxins/server) +"bET" = (/obj/machinery/camera{c_tag = "Security Post - Science"; dir = 4; network = list("SS13","RD")},/obj/machinery/newscaster{pixel_x = -30},/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/checkpoint/science) +"bEU" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel,/area/security/checkpoint/science) +"bEV" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/security/checkpoint/science) +"bEW" = (/obj/structure/chair/office/dark{dir = 4},/obj/effect/landmark/start/depsec/science,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/security/checkpoint/science) +"bEX" = (/obj/structure/table,/obj/item/weapon/book/manual/wiki/security_space_law,/turf/open/floor/plasteel/red/side{dir = 4},/area/security/checkpoint/science) +"bEY" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bEZ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white/side{dir = 9},/area/medical/research{name = "Research Division"}) +"bFa" = (/obj/machinery/door/airlock/glass_command{name = "Research Director"; req_access_txt = "30"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/hor) +"bFb" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/hor) +"bFc" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/hor) +"bFd" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/hor) +"bFe" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/hor) +"bFf" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/hor) +"bFg" = (/obj/machinery/r_n_d/experimentor,/turf/open/floor/engine,/area/toxins/explab) +"bFh" = (/obj/effect/landmark{name = "blobstart"},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/engine,/area/toxins/explab) +"bFi" = (/obj/machinery/atmospherics/components/unary/thermomachine/heater{dir = 8},/turf/open/floor/plating,/area/maintenance/asmaint2) +"bFj" = (/obj/machinery/portable_atmospherics/scrubber,/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"bFk" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_l"},/turf/open/floor/plating/airless,/area/shuttle/supply) +"bFl" = (/obj/structure/shuttle/engine/propulsion,/turf/open/floor/plating/airless,/area/shuttle/supply) +"bFm" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"},/turf/open/floor/plating/airless,/area/shuttle/supply) +"bFn" = (/obj/machinery/computer/security/mining{network = list("MINE","AuxBase")},/obj/machinery/camera{c_tag = "Quartermaster's Office"; dir = 4},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -35},/obj/machinery/status_display{density = 0; pixel_x = -32; pixel_y = 0; supply_display = 1},/turf/open/floor/plasteel/brown{dir = 10},/area/quartermaster/qm) +"bFo" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/brown{dir = 2},/area/quartermaster/qm) +"bFp" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/computer/stockexchange,/turf/open/floor/plasteel/brown{dir = 2},/area/quartermaster/qm) +"bFq" = (/obj/structure/table,/obj/item/weapon/folder/yellow,/obj/item/weapon/pen{pixel_x = 4; pixel_y = 4},/obj/item/weapon/pen/red,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/brown{dir = 2},/area/quartermaster/qm) +"bFr" = (/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/stamp/qm{pixel_x = 0; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/brown{dir = 2},/area/quartermaster/qm) +"bFs" = (/obj/structure/filingcabinet,/obj/machinery/light_switch{pixel_y = -25},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/brown{dir = 6},/area/quartermaster/qm) +"bFt" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/quartermaster/qm) +"bFu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/miningdock) +"bFv" = (/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,/turf/open/floor/plasteel,/area/quartermaster/miningdock) +"bFw" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/miningdock) +"bFx" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/security/checkpoint/supply) +"bFy" = (/obj/machinery/light_switch{pixel_y = -25},/obj/structure/closet,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/side{dir = 10},/area/security/checkpoint/supply) +"bFz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/side,/area/security/checkpoint/supply) +"bFA" = (/obj/machinery/requests_console{department = "Security"; departmentType = 5; pixel_y = -30},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/red/side,/area/security/checkpoint/supply) +"bFB" = (/obj/structure/filingcabinet,/obj/structure/reagent_dispensers/peppertank{pixel_x = 30; pixel_y = 0},/obj/machinery/newscaster{pixel_x = 0; pixel_y = -32},/obj/machinery/camera{c_tag = "Security Post - Cargo"; dir = 1},/turf/open/floor/plasteel/red/side{dir = 6},/area/security/checkpoint/supply) +"bFC" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/brown/corner{dir = 8},/area/hallway/primary/central) +"bFD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bFE" = (/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bFF" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/camera{c_tag = "Central Primary Hallway South-West"; dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bFG" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bFH" = (/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = -32},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bFI" = (/obj/machinery/light,/turf/open/floor/plasteel,/area/hallway/primary/central) +"bFJ" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/sign/directions/engineering{pixel_x = -32; pixel_y = -40},/obj/structure/sign/directions/medical{dir = 4; icon_state = "direction_med"; pixel_x = -32; pixel_y = -24},/obj/structure/sign/directions/evac{dir = 4; icon_state = "direction_evac"; pixel_x = -32; pixel_y = -32},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bFK" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bFL" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bFM" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/status_display{pixel_y = -32},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bFN" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light,/turf/open/floor/plasteel,/area/hallway/primary/central) +"bFO" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/camera{c_tag = "Central Primary Hallway South"; dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bFP" = (/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j2s"; sortType = 22},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bFQ" = (/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bFR" = (/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = -32},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bFS" = (/obj/machinery/light,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bFT" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/junction{dir = 8; icon_state = "pipe-j2"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bFU" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bFV" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/hallway/primary/central) +"bFW" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/window/fulltile,/turf/open/floor/plating,/area/medical/sleeper) +"bFX" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/medical/sleeper) +"bFY" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/medical/sleeper) +"bFZ" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Recovery Room"; req_access_txt = "0"},/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bGa" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bGb" = (/obj/structure/table,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/weapon/pen,/obj/machinery/requests_console{announcementConsole = 0; department = "Medbay"; departmentType = 1; name = "Medbay RC"; pixel_x = 0; pixel_y = 30; pixel_z = 0},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bGc" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bGd" = (/turf/closed/wall,/area/medical/cmo) +"bGe" = (/obj/machinery/suit_storage_unit/cmo,/turf/open/floor/plasteel/barber,/area/medical/cmo) +"bGf" = (/obj/machinery/computer/crew,/obj/machinery/requests_console{announcementConsole = 1; department = "Chief Medical Officer's Desk"; departmentType = 5; name = "Chief Medical Officer RC"; pixel_x = 0; pixel_y = 32},/turf/open/floor/plasteel/barber,/area/medical/cmo) +"bGg" = (/obj/machinery/computer/med_data,/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/turf/open/floor/plasteel/barber,/area/medical/cmo) +"bGh" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/barber,/area/medical/cmo) +"bGi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/asmaint) +"bGj" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plating,/area/maintenance/asmaint) +"bGk" = (/obj/machinery/r_n_d/server/core,/turf/open/floor/bluegrid{name = "Server Base"; initial_gas_mix = "n2=500;TEMP=80"},/area/toxins/server) +"bGl" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; external_pressure_bound = 120; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/open/floor/bluegrid{name = "Server Base"; initial_gas_mix = "n2=500;TEMP=80"},/area/toxins/server) +"bGm" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'SERVER ROOM'."; name = "SERVER ROOM"; pixel_y = -32},/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/toxins/server) +"bGn" = (/obj/machinery/atmospherics/pipe/simple{dir = 9},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/plasteel/black,/area/toxins/server) +"bGo" = (/obj/machinery/computer/rdservercontrol,/turf/open/floor/plasteel/black,/area/toxins/server) +"bGp" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/weapon/pen,/turf/open/floor/plasteel/black,/area/toxins/server) +"bGq" = (/obj/item/device/radio/intercom{pixel_x = -25},/obj/structure/filingcabinet,/turf/open/floor/plasteel/red/side{dir = 10},/area/security/checkpoint/science) +"bGr" = (/obj/machinery/power/apc{dir = 2; name = "Science Security APC"; pixel_y = -24},/obj/structure/cable,/turf/open/floor/plasteel/red/side,/area/security/checkpoint/science) +"bGs" = (/obj/item/weapon/screwdriver{pixel_y = 10},/obj/item/device/radio/off,/turf/open/floor/plasteel/red/side,/area/security/checkpoint/science) +"bGt" = (/obj/machinery/computer/secure_data,/obj/machinery/requests_console{department = "Security"; departmentType = 5; pixel_y = -30},/turf/open/floor/plasteel/red/side,/area/security/checkpoint/science) +"bGu" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/turf/open/floor/plasteel/red/side{dir = 6},/area/security/checkpoint/science) +"bGv" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bGw" = (/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/white/side{dir = 9},/area/medical/research{name = "Research Division"}) +"bGx" = (/obj/machinery/power/apc{dir = 8; name = "RD Office APC"; pixel_x = -25},/obj/structure/cable,/obj/machinery/light_switch{pixel_y = -23},/obj/item/weapon/twohanded/required/kirbyplants/dead,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/hor) +"bGy" = (/obj/machinery/keycard_auth{pixel_x = 0; pixel_y = -24},/obj/machinery/light,/obj/machinery/computer/card/minor/rd,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/hor) +"bGz" = (/obj/structure/table,/obj/item/weapon/cartridge/signal/toxins,/obj/item/weapon/cartridge/signal/toxins{pixel_x = -4; pixel_y = 2},/obj/item/weapon/cartridge/signal/toxins{pixel_x = 4; pixel_y = 6},/obj/machinery/camera{c_tag = "Research Director's Office"; dir = 1; network = list("SS13","RD")},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/hor) +"bGA" = (/obj/structure/closet/secure_closet/RD,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/hor) +"bGB" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 1},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/hor) +"bGC" = (/obj/machinery/suit_storage_unit/rd,/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/hor) +"bGD" = (/obj/machinery/camera{c_tag = "Experimentor Lab Chamber"; dir = 1; network = list("SS13","RD")},/obj/machinery/light,/obj/structure/sign/nosmoking_2{pixel_y = -32},/turf/open/floor/engine,/area/toxins/explab) +"bGE" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 5},/turf/open/floor/plating,/area/maintenance/asmaint2) +"bGF" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/turf/open/floor/plasteel,/area/quartermaster/miningdock) +"bGG" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel,/area/quartermaster/miningdock) +"bGH" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/aft) +"bGI" = (/turf/closed/wall,/area/maintenance/aft) +"bGJ" = (/turf/closed/wall,/area/storage/tech) +"bGK" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Central Access"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/central) +"bGL" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Central Access"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/yellow/corner{dir = 2},/area/hallway/primary/central) +"bGM" = (/turf/closed/wall,/area/janitor) +"bGN" = (/obj/machinery/door/airlock{name = "Custodial Closet"; req_access_txt = "26"},/obj/structure/disposalpipe/segment,/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/janitor) +"bGO" = (/turf/closed/wall,/area/maintenance/asmaint) +"bGP" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/asmaint) +"bGQ" = (/obj/machinery/vending/cigarette,/turf/open/floor/plasteel/black,/area/hallway/primary/central) +"bGR" = (/obj/structure/disposalpipe/segment,/obj/structure/table,/obj/item/weapon/surgicaldrill,/turf/open/floor/plasteel,/area/medical/sleeper) +"bGS" = (/obj/structure/table,/obj/item/weapon/hemostat,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white/side{dir = 2},/area/medical/sleeper) +"bGT" = (/obj/structure/table,/obj/item/weapon/scalpel{pixel_y = 12},/obj/item/weapon/circular_saw,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bGU" = (/obj/structure/table,/obj/item/weapon/retractor,/turf/open/floor/plasteel/white/side{dir = 2},/area/medical/sleeper) +"bGV" = (/obj/structure/table,/obj/item/weapon/cautery{pixel_x = 4},/turf/open/floor/plasteel,/area/medical/sleeper) +"bGW" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/weapon/gun/syringe,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/soap/nanotrasen,/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bGX" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/whiteblue/corner{dir = 2},/area/medical/sleeper) +"bGY" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/medical/sleeper) +"bGZ" = (/obj/structure/closet/l3closet,/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bHa" = (/obj/structure/closet/wardrobe/white/medical,/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bHb" = (/obj/structure/closet/secure_closet/medical3,/obj/machinery/airalarm{pixel_y = 24},/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bHc" = (/obj/structure/closet/secure_closet/medical3,/obj/machinery/camera{c_tag = "Medbay Storage"; dir = 2; network = list("SS13")},/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bHd" = (/obj/structure/table,/obj/item/weapon/storage/box/bodybags{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/rxglasses,/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bHe" = (/obj/structure/disposalpipe/trunk,/obj/machinery/disposal/bin,/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bHf" = (/turf/open/floor/plasteel/whiteblue/corner{dir = 8},/area/medical/medbay) +"bHg" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/medical/cmo) +"bHh" = (/turf/open/floor/plasteel/barber,/area/medical/cmo) +"bHi" = (/obj/structure/chair/office/light,/obj/effect/landmark/start{name = "Chief Medical Officer"},/turf/open/floor/plasteel/barber,/area/medical/cmo) +"bHj" = (/obj/machinery/keycard_auth{pixel_x = 24; pixel_y = 0},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/barber,/area/medical/cmo) +"bHk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/asmaint) +"bHl" = (/turf/closed/wall/r_wall,/area/toxins/xenobiology) +"bHm" = (/turf/closed/wall,/area/toxins/storage) +"bHn" = (/obj/machinery/door/firedoor/heavy,/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/open/floor/plasteel/white/side{dir = 5},/area/medical/research{name = "Research Division"}) +"bHo" = (/obj/machinery/door/firedoor/heavy,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bHp" = (/obj/machinery/door/firedoor/heavy,/turf/open/floor/plasteel/white/side{dir = 9},/area/medical/research{name = "Research Division"}) +"bHq" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/asmaint2) +"bHr" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance{lootcount = 3; name = "3maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/asmaint2) +"bHs" = (/obj/item/device/multitool,/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"bHt" = (/obj/structure/chair,/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"bHu" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 32},/turf/open/space,/area/space) +"bHv" = (/obj/structure/table,/obj/item/weapon/folder/yellow,/obj/item/weapon/pen,/obj/machinery/requests_console{department = "Mining"; departmentType = 0; pixel_x = -30; pixel_y = 0},/obj/machinery/light{dir = 8},/turf/open/floor/plasteel,/area/quartermaster/miningdock) +"bHw" = (/obj/structure/chair/office/dark{dir = 8},/obj/effect/landmark/start{name = "Shaft Miner"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/quartermaster/miningdock) +"bHx" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel,/area/quartermaster/miningdock) +"bHy" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/miningdock) +"bHz" = (/obj/machinery/door/airlock/maintenance{name = "Mining Maintenance"; req_access_txt = "48"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/quartermaster/miningdock) +"bHA" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) +"bHB" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/power/apc{dir = 1; name = "Cargo Security APC"; pixel_x = 1; pixel_y = 24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/security/checkpoint/supply) +"bHC" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) +"bHD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) +"bHE" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/aft) +"bHF" = (/obj/structure/table,/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/item/device/assembly/flash/handheld,/obj/item/device/assembly/flash/handheld,/obj/machinery/ai_status_display{pixel_x = -32; pixel_y = 0},/turf/open/floor/plating,/area/storage/tech) +"bHG" = (/obj/structure/table,/obj/item/weapon/electronics/apc,/obj/item/weapon/electronics/airlock,/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/storage/tech) +"bHH" = (/obj/structure/table,/obj/item/weapon/screwdriver{pixel_y = 16},/obj/item/weapon/wirecutters,/turf/open/floor/plating,/area/storage/tech) +"bHI" = (/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/turf/open/floor/plating,/area/storage/tech) +"bHJ" = (/obj/machinery/camera{c_tag = "Tech Storage"; dir = 2},/obj/machinery/power/apc{dir = 1; name = "Tech Storage APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plating,/area/storage/tech) +"bHK" = (/obj/structure/table,/obj/item/device/analyzer,/obj/item/device/healthanalyzer,/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/storage/tech) +"bHL" = (/obj/structure/table,/obj/item/device/plant_analyzer,/obj/item/weapon/stock_parts/cell/high/plus,/turf/open/floor/plating,/area/storage/tech) +"bHM" = (/turf/open/floor/plating,/area/storage/tech) +"bHN" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/aft) +"bHO" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel,/area/hallway/primary/aft) +"bHP" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/yellow/corner{dir = 2},/area/hallway/primary/aft) +"bHQ" = (/obj/structure/closet/jcloset,/turf/open/floor/plasteel,/area/janitor) +"bHR" = (/obj/structure/closet/l3closet/janitor,/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/turf/open/floor/plasteel,/area/janitor) +"bHS" = (/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/camera{c_tag = "Custodial Closet"},/obj/vehicle/janicart,/turf/open/floor/plasteel,/area/janitor) +"bHT" = (/obj/item/weapon/storage/box/lights/mixed,/obj/item/weapon/storage/box/lights/mixed,/turf/open/floor/plasteel,/area/janitor) +"bHU" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/janitor) +"bHV" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/janitor) +"bHW" = (/obj/machinery/portable_atmospherics/canister/water_vapor,/turf/open/floor/plasteel,/area/janitor) +"bHX" = (/obj/machinery/door/window/westleft{name = "Janitoral Delivery"; req_access_txt = "26"},/turf/open/floor/plasteel/delivery,/area/janitor) +"bHY" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; dir = 1; freq = 1400; location = "Janitor"},/obj/structure/plasticflaps{opacity = 1},/turf/open/floor/plasteel/bot,/area/janitor) +"bHZ" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating,/area/maintenance/asmaint) +"bIa" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating,/area/maintenance/asmaint) +"bIb" = (/obj/structure/disposalpipe/segment,/obj/structure/table,/obj/item/clothing/gloves/color/latex,/obj/item/clothing/mask/surgical,/obj/item/clothing/suit/apron/surgical,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/white/side{dir = 4},/area/medical/sleeper) +"bIc" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bId" = (/obj/effect/landmark/start{name = "Medical Doctor"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bIe" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bIf" = (/obj/structure/table,/obj/item/weapon/surgical_drapes,/obj/item/weapon/razor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white/side{dir = 8},/area/medical/sleeper) +"bIg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/medical/sleeper) +"bIh" = (/obj/structure/table,/obj/structure/bedsheetbin{pixel_x = 2},/obj/item/clothing/suit/straight_jacket,/obj/item/clothing/mask/muzzle,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/whiteblue/corner{dir = 8},/area/medical/sleeper) +"bIi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bIj" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel/whiteblue/side{dir = 4},/area/medical/sleeper) +"bIk" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Medbay Storage"; req_access_txt = "45"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bIl" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bIm" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bIn" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Medbay Storage"; req_access_txt = "45"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bIo" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/whiteblue/side{dir = 8},/area/medical/medbay) +"bIp" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bIq" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bIr" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bIs" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bIt" = (/obj/structure/table/glass,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/turf/open/floor/plasteel/barber,/area/medical/cmo) +"bIu" = (/obj/structure/table/glass,/obj/item/weapon/folder/white,/obj/item/weapon/stamp/cmo,/obj/item/clothing/glasses/hud/health,/turf/open/floor/plasteel/barber,/area/medical/cmo) +"bIv" = (/obj/structure/table/glass,/obj/item/weapon/pen,/obj/item/clothing/neck/stethoscope,/mob/living/simple_animal/pet/cat/Runtime,/turf/open/floor/plasteel/barber,/area/medical/cmo) +"bIw" = (/obj/structure/disposalpipe/segment,/obj/item/device/radio/intercom{pixel_x = 25},/obj/machinery/camera{c_tag = "Chief Medical Office"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = -22},/turf/open/floor/plasteel/barber,/area/medical/cmo) +"bIx" = (/turf/open/floor/engine,/area/toxins/xenobiology) +"bIy" = (/obj/machinery/camera{c_tag = "Xenobiology Test Chamber"; dir = 2; network = list("Xeno","RD"); pixel_x = 0},/obj/machinery/light{dir = 1},/turf/open/floor/engine,/area/toxins/xenobiology) +"bIz" = (/obj/machinery/portable_atmospherics/canister/toxins,/turf/open/floor/plasteel/delivery{name = "floor"},/area/toxins/storage) +"bIA" = (/obj/machinery/portable_atmospherics/canister/toxins,/obj/structure/sign/nosmoking_2{pixel_x = 0; pixel_y = 32},/turf/open/floor/plasteel/delivery{name = "floor"},/area/toxins/storage) +"bIB" = (/obj/machinery/power/apc{dir = 8; name = "Misc Research APC"; pixel_x = -25},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel/white/side{dir = 5},/area/medical/research{name = "Research Division"}) +"bIC" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bID" = (/turf/open/floor/plasteel/white/side{dir = 9},/area/medical/research{name = "Research Division"}) +"bIE" = (/obj/machinery/vending/coffee,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bIF" = (/turf/closed/wall,/area/toxins/mixing) +"bIG" = (/obj/structure/closet/bombcloset,/obj/machinery/light_switch{pixel_x = 0; pixel_y = 28},/turf/open/floor/plasteel/warnwhite{dir = 2},/area/toxins/mixing) +"bIH" = (/obj/structure/closet/bombcloset,/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/warnwhite{dir = 2},/area/toxins/mixing) +"bII" = (/obj/machinery/portable_atmospherics/canister,/obj/structure/window/reinforced{dir = 8},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/camera{c_tag = "Toxins Lab West"; dir = 2; network = list("SS13","RD"); pixel_y = 0},/turf/open/floor/plasteel/warnwhite{dir = 2},/area/toxins/mixing) +"bIJ" = (/obj/machinery/portable_atmospherics/canister,/obj/item/device/radio/intercom{pixel_y = 25},/turf/open/floor/plasteel/warnwhite{dir = 2},/area/toxins/mixing) +"bIK" = (/obj/machinery/portable_atmospherics/scrubber,/obj/machinery/airalarm{frequency = 1439; locked = 0; pixel_y = 23},/obj/item/weapon/storage/firstaid/toxin,/turf/open/floor/plasteel/warnwhite{dir = 2},/area/toxins/mixing) +"bIL" = (/obj/machinery/portable_atmospherics/pump,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/warnwhite{dir = 2},/area/toxins/mixing) +"bIM" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible,/turf/open/floor/plasteel/warnwhite{dir = 9},/area/toxins/mixing) +"bIN" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible,/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/warnwhite{dir = 1},/area/toxins/mixing) +"bIO" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible,/turf/open/floor/plasteel/warnwhite{dir = 5},/area/toxins/mixing) +"bIP" = (/turf/closed/wall/r_wall,/area/toxins/mixing) +"bIQ" = (/obj/structure/closet/crate,/obj/effect/spawner/lootdrop/maintenance{lootcount = 4; name = "4maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/asmaint2) +"bIR" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/asmaint2) +"bIS" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint2) +"bIT" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/asmaint2) +"bIU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/toxins/mixing) +"bIV" = (/obj/structure/frame/computer{anchored = 1},/turf/open/floor/plasteel/shuttle/white,/area/shuttle/abandoned) +"bIW" = (/obj/machinery/computer/security/mining{network = list("MINE","AuxBase")},/obj/machinery/camera{c_tag = "Mining Dock"; dir = 4; network = list("SS13")},/turf/open/floor/plasteel,/area/quartermaster/miningdock) +"bIX" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plasteel,/area/quartermaster/miningdock) +"bIY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/quartermaster/miningdock) +"bIZ" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/closet/wardrobe/miner,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/quartermaster/miningdock) +"bJa" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/quartermaster/miningdock) +"bJb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) +"bJc" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) +"bJd" = (/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j1s"; sortType = 15},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) +"bJe" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/aft) +"bJf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/closed/wall,/area/maintenance/aft) +"bJg" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/storage/tech) +"bJh" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/storage/tech) +"bJi" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/storage/tech) +"bJj" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/storage/tech) +"bJk" = (/obj/structure/table,/obj/item/device/aicard,/obj/item/weapon/aiModule/reset,/turf/open/floor/plating,/area/storage/tech) +"bJl" = (/obj/structure/table,/obj/item/stack/cable_coil{pixel_x = -3; pixel_y = 3},/obj/item/stack/cable_coil,/obj/item/weapon/stock_parts/cell/high/plus,/turf/open/floor/plating,/area/storage/tech) +"bJm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/storage/tech) +"bJn" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/aft) +"bJo" = (/turf/open/floor/plasteel,/area/hallway/primary/aft) +"bJp" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/yellow/corner{dir = 2},/area/hallway/primary/aft) +"bJq" = (/turf/open/floor/plasteel,/area/janitor) +"bJr" = (/obj/structure/chair/stool,/obj/effect/landmark/start{name = "Janitor"},/turf/open/floor/plasteel,/area/janitor) +"bJs" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/janitor) +"bJt" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel,/area/janitor) +"bJu" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel,/area/janitor) +"bJv" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/mob/living/simple_animal/hostile/lizard{name = "Wags-His-Tail"; real_name = "Wags-His-Tail"},/turf/open/floor/plasteel,/area/janitor) +"bJw" = (/obj/item/weapon/mop,/obj/item/weapon/reagent_containers/glass/bucket,/turf/open/floor/plasteel,/area/janitor) +"bJx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/power/apc{dir = 8; name = "Custodial Closet APC"; pixel_x = -24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plating,/area/janitor) +"bJy" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/grille/broken,/turf/open/floor/plating,/area/maintenance/asmaint) +"bJz" = (/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j2s"; sortType = 6},/obj/structure/grille,/obj/structure/window/fulltile{obj_integrity = 25},/turf/open/floor/plating,/area/maintenance/asmaint) +"bJA" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/window/fulltile,/turf/open/floor/plating,/area/maintenance/asmaint) +"bJB" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/asmaint) +"bJC" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/asmaint) +"bJD" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/maintenance{name = "Surgery Maintenance"; req_access_txt = "45"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/medical/sleeper) +"bJE" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bJF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bJG" = (/obj/structure/table/optable,/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bJH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bJI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bJJ" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{name = "Operating Theatre"; req_access_txt = "45"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/medical/sleeper) +"bJK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/whiteblue/side{dir = 8},/area/medical/sleeper) +"bJL" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bJM" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/iv_drip,/turf/open/floor/plasteel/whiteblue/corner{dir = 4},/area/medical/sleeper) +"bJN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/medical/sleeper) +"bJO" = (/obj/structure/table,/obj/item/weapon/storage/belt/medical{pixel_x = 0; pixel_y = 2},/obj/item/weapon/storage/belt/medical{pixel_x = 0; pixel_y = 2},/obj/item/weapon/storage/belt/medical{pixel_x = 0; pixel_y = 2},/obj/item/clothing/neck/stethoscope,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bJP" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bJQ" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bJR" = (/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = -30; pixel_y = 0},/obj/machinery/camera{c_tag = "Medbay South"; dir = 4; network = list("SS13")},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bJS" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bJT" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/barber,/area/medical/cmo) +"bJU" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/barber,/area/medical/cmo) +"bJV" = (/obj/structure/disposalpipe/segment,/obj/machinery/light_switch{pixel_x = 28; pixel_y = 0},/turf/open/floor/plasteel/barber,/area/medical/cmo) +"bJW" = (/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/floorgrime,/area/toxins/storage) +"bJX" = (/turf/open/floor/plasteel/floorgrime,/area/toxins/storage) +"bJY" = (/obj/effect/decal/cleanable/oil,/obj/item/weapon/cigbutt,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/floorgrime,/area/toxins/storage) +"bJZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/toxins/storage) +"bKa" = (/obj/machinery/light_switch{pixel_x = 27},/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/toxins/storage) +"bKb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/toxins/storage) +"bKc" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white/side{dir = 5},/area/medical/research{name = "Research Division"}) +"bKd" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bKe" = (/turf/open/floor/plasteel/warnwhite{dir = 9},/area/medical/research{name = "Research Division"}) +"bKf" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/toxins/mixing) +"bKg" = (/turf/open/floor/plasteel/white,/area/toxins/mixing) +"bKh" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 5},/turf/open/floor/plasteel/white,/area/toxins/mixing) +"bKi" = (/obj/machinery/atmospherics/pipe/manifold/general/visible,/obj/machinery/meter,/turf/open/floor/plasteel/white,/area/toxins/mixing) +"bKj" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 9},/turf/open/floor/plasteel/white,/area/toxins/mixing) +"bKk" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/asmaint2) +"bKl" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/closed/wall,/area/maintenance/asmaint2) +"bKm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/toxins/mixing) +"bKn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/closed/wall,/area/toxins/mixing) +"bKo" = (/obj/machinery/doppler_array{dir = 4},/turf/open/floor/plasteel/bot{dir = 2},/area/toxins/mixing) +"bKp" = (/turf/closed/wall,/area/toxins/test_area) +"bKq" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating/airless,/area/toxins/test_area) +"bKr" = (/obj/item/weapon/scalpel,/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"bKs" = (/obj/structure/table,/turf/open/floor/mineral/titanium/blue,/area/shuttle/labor) +"bKt" = (/obj/machinery/computer/shuttle/mining,/turf/open/floor/mineral/titanium/blue,/area/shuttle/labor) +"bKu" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/quartermaster/miningdock) +"bKv" = (/obj/machinery/computer/shuttle/mining,/turf/open/floor/plasteel/brown{dir = 9},/area/quartermaster/miningdock) +"bKw" = (/turf/open/floor/plasteel,/area/quartermaster/miningdock) +"bKx" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel,/area/quartermaster/miningdock) +"bKy" = (/obj/structure/closet/secure_closet/miner,/turf/open/floor/plasteel,/area/quartermaster/miningdock) +"bKz" = (/obj/machinery/door/airlock/maintenance{name = "Firefighting equipment"; req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/aft) +"bKA" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/aft) +"bKB" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/aft) +"bKC" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/storage/tech) +"bKD" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/computer/borgupload{pixel_x = -1; pixel_y = 1},/obj/item/weapon/circuitboard/computer/aiupload{pixel_x = 2; pixel_y = -2},/turf/open/floor/plasteel,/area/storage/tech) +"bKE" = (/obj/machinery/camera{c_tag = "Secure Tech Storage"; dir = 2},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/storage/tech) +"bKF" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/closed/wall/r_wall,/area/storage/tech) +"bKG" = (/obj/structure/table,/obj/machinery/cell_charger{pixel_y = 5},/obj/item/device/multitool,/turf/open/floor/plating,/area/storage/tech) +"bKH" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/computer/pandemic{pixel_x = -3; pixel_y = 3},/obj/item/weapon/circuitboard/computer/rdconsole,/obj/item/weapon/circuitboard/machine/rdserver{pixel_x = 3; pixel_y = -3},/obj/item/weapon/circuitboard/machine/destructive_analyzer,/obj/item/weapon/circuitboard/machine/protolathe,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/weapon/circuitboard/computer/aifixer,/obj/item/weapon/circuitboard/computer/teleporter,/obj/item/weapon/circuitboard/machine/circuit_imprinter,/obj/item/weapon/circuitboard/machine/mechfab,/turf/open/floor/plating,/area/storage/tech) +"bKI" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/computer/mining,/obj/item/weapon/circuitboard/machine/autolathe{pixel_x = 3; pixel_y = -3},/obj/item/weapon/circuitboard/computer/arcade/battle,/turf/open/floor/plating,/area/storage/tech) +"bKJ" = (/obj/structure/rack,/obj/item/weapon/circuitboard/machine/telecomms/processor,/obj/item/weapon/circuitboard/machine/telecomms/receiver,/obj/item/weapon/circuitboard/machine/telecomms/server,/obj/item/weapon/circuitboard/machine/telecomms/bus,/obj/item/weapon/circuitboard/machine/telecomms/broadcaster,/obj/item/weapon/circuitboard/computer/message_monitor{pixel_y = -5},/turf/open/floor/plating,/area/storage/tech) +"bKK" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/yellow/corner{dir = 2},/area/hallway/primary/aft) +"bKL" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/item/key/janitor,/turf/open/floor/plasteel,/area/janitor) +"bKM" = (/obj/structure/table,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/machinery/requests_console{department = "Janitorial"; departmentType = 1; pixel_y = -29},/obj/item/weapon/reagent_containers/spray/cleaner,/turf/open/floor/plasteel,/area/janitor) +"bKN" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/light,/turf/open/floor/plasteel,/area/janitor) +"bKO" = (/obj/structure/janitorialcart,/turf/open/floor/plasteel,/area/janitor) +"bKP" = (/obj/item/weapon/restraints/legcuffs/beartrap,/obj/item/weapon/restraints/legcuffs/beartrap,/obj/item/weapon/storage/box/mousetraps,/obj/item/weapon/storage/box/mousetraps,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/janitor) +"bKQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/janitor) +"bKR" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plasteel,/area/janitor) +"bKS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating,/area/maintenance/asmaint) +"bKT" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/asmaint) +"bKU" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment,/mob/living/simple_animal/mouse,/turf/open/floor/plating,/area/maintenance/asmaint) +"bKV" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/asmaint) +"bKW" = (/obj/structure/disposalpipe/segment,/obj/machinery/power/apc{dir = 4; name = "Treatment Center APC"; pixel_x = 26; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/medical/sleeper) +"bKX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white/side{dir = 4},/area/medical/sleeper) +"bKY" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bKZ" = (/obj/machinery/computer/operating,/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bLa" = (/obj/structure/sign/nosmoking_2{pixel_x = -28},/obj/structure/bed,/obj/item/weapon/bedsheet/medical,/turf/open/floor/plasteel/whiteblue/corner{dir = 1},/area/medical/sleeper) +"bLb" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bLc" = (/obj/machinery/vending/wallmed{pixel_x = 28; pixel_y = 0},/obj/machinery/camera{c_tag = "Medbay Recovery Room"; dir = 8; network = list("SS13")},/obj/machinery/iv_drip,/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bLd" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/obj/item/weapon/gun/syringe,/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bLe" = (/obj/machinery/limbgrower,/obj/item/weapon/reagent_containers/glass/beaker/synthflesh,/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bLf" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/clothing/neck/stethoscope,/obj/machinery/vending/wallmed{pixel_y = 28},/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bLg" = (/obj/structure/chair/office/light{dir = 8},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bLh" = (/obj/structure/closet/secure_closet/personal/patient,/obj/machinery/button/door{id = "medpriv4"; name = "Privacy Shutters"; pixel_y = 25},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bLi" = (/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "medpriv4"; name = "privacy door"},/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/medical/medbay) +"bLj" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bLk" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bLl" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay) +"bLm" = (/obj/machinery/door/airlock/glass_command{name = "Chief Medical Officer"; req_access_txt = "40"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/barber,/area/medical/cmo) +"bLn" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel/barber,/area/medical/cmo) +"bLo" = (/obj/machinery/holopad,/turf/open/floor/plasteel/barber,/area/medical/cmo) +"bLp" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plasteel/barber,/area/medical/cmo) +"bLq" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/closed/wall,/area/medical/cmo) +"bLr" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/asmaint) +"bLs" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/sortjunction{sortType = 10},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/asmaint) +"bLt" = (/obj/effect/landmark/event_spawn,/turf/open/floor/engine,/area/toxins/xenobiology) +"bLu" = (/obj/machinery/power/apc{dir = 8; name = "Toxins Storage APC"; pixel_x = -25},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/camera{c_tag = "Toxins Storage"; dir = 4; network = list("SS13","RD")},/turf/open/floor/plasteel/floorgrime,/area/toxins/storage) +"bLv" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/floorgrime,/area/toxins/storage) +"bLw" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/mob/living/simple_animal/mouse,/turf/open/floor/plasteel/floorgrime,/area/toxins/storage) +"bLx" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/plasteel/floorgrime,/area/toxins/storage) +"bLy" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/floorgrime,/area/toxins/storage) +"bLz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/airlock/research{name = "Toxins Storage"; req_access_txt = "8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/toxins/storage) +"bLA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/white/side{dir = 5},/area/medical/research{name = "Research Division"}) +"bLB" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bLC" = (/turf/open/floor/plasteel/warnwhite{dir = 8},/area/medical/research{name = "Research Division"}) +"bLD" = (/obj/machinery/door/firedoor/heavy,/obj/machinery/door/airlock/research{name = "Toxins Lab"; req_access_txt = "8"},/turf/open/floor/plasteel/white,/area/toxins/mixing) +"bLE" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/white,/area/toxins/mixing) +"bLF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/mixing) +"bLG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall/r_wall,/area/toxins/mixing) +"bLH" = (/obj/structure/sign/securearea{pixel_x = -32},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/warning/corner{dir = 1},/area/toxins/mixing) +"bLI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel,/area/toxins/mixing) +"bLJ" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/warning/corner{dir = 2},/area/toxins/mixing) +"bLK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/toxins/mixing) +"bLL" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/obj/item/device/radio/intercom{pixel_y = 25},/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel,/area/toxins/mixing) +"bLM" = (/obj/machinery/button/massdriver{dir = 2; id = "toxinsdriver"; pixel_y = 24},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/warning/corner{dir = 8},/area/toxins/mixing) +"bLN" = (/obj/machinery/computer/security/telescreen{desc = "Used for watching the test chamber."; dir = 8; layer = 4; name = "Test Chamber Telescreen"; network = list("Toxins"); pixel_x = 30; pixel_y = 0},/turf/open/floor/plasteel/warning{dir = 5},/area/toxins/mixing) +"bLO" = (/obj/item/target,/obj/structure/window/reinforced,/turf/open/floor/plating/warnplate{dir = 1},/area/toxins/test_area) +"bLP" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 6; pixel_y = -5},/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"bLQ" = (/obj/structure/chair{dir = 1},/turf/open/floor/mineral/titanium/blue,/area/shuttle/labor) +"bLR" = (/obj/item/weapon/ore/iron,/turf/open/floor/plasteel/warning{dir = 9},/area/quartermaster/miningdock) +"bLS" = (/obj/structure/closet/crate,/obj/machinery/light/small{dir = 4},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/turf/open/floor/plasteel/warning{dir = 1},/area/quartermaster/miningdock) +"bLT" = (/turf/open/floor/plasteel/brown{dir = 8},/area/quartermaster/miningdock) +"bLU" = (/obj/effect/landmark/start{name = "Shaft Miner"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/quartermaster/miningdock) +"bLV" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/quartermaster/miningdock) +"bLW" = (/obj/machinery/light/small{dir = 1},/obj/structure/chair/stool,/turf/open/floor/plating,/area/maintenance/aft) +"bLX" = (/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plating,/area/maintenance/aft) +"bLY" = (/turf/open/floor/plating,/area/maintenance/aft) +"bLZ" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/computer/crew{pixel_x = -1; pixel_y = 1},/obj/item/weapon/circuitboard/computer/card{pixel_x = 2; pixel_y = -2},/obj/item/weapon/circuitboard/computer/communications{pixel_x = 5; pixel_y = -5},/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel,/area/storage/tech) +"bMa" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/storage/tech) +"bMb" = (/obj/machinery/door/airlock/highsecurity{name = "Secure Tech Storage"; req_access_txt = "19;23"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating,/area/storage/tech) +"bMc" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating,/area/storage/tech) +"bMd" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/plating,/area/storage/tech) +"bMe" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plating,/area/storage/tech) +"bMf" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/effect/landmark{name = "blobstart"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/storage/tech) +"bMg" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/storage/tech) +"bMh" = (/obj/machinery/door/airlock/engineering{name = "Tech Storage"; req_access_txt = "23"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/storage/tech) +"bMi" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/aft) +"bMj" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"bMk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/yellow/corner{dir = 2},/area/hallway/primary/aft) +"bMl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/janitor) +"bMm" = (/obj/machinery/door/airlock/maintenance{name = "Custodial Maintenance"; req_access_txt = "26"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/janitor) +"bMn" = (/obj/machinery/power/apc{dir = 8; name = "Medbay Maintenance APC"; pixel_x = -24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plating,/area/maintenance/asmaint) +"bMo" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/grille/broken,/turf/open/floor/plating,/area/maintenance/asmaint) +"bMp" = (/obj/structure/grille,/obj/structure/window/fulltile{obj_integrity = 25},/turf/open/floor/plating,/area/maintenance/asmaint) +"bMq" = (/obj/structure/disposalpipe/segment,/obj/structure/grille,/obj/structure/window/fulltile{obj_integrity = 35},/turf/open/floor/plating,/area/maintenance/asmaint) +"bMr" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/maintenance/asmaint) +"bMs" = (/obj/structure/disposalpipe/segment,/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/asmaint) +"bMt" = (/obj/structure/disposalpipe/segment,/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/asmaint) +"bMu" = (/obj/structure/closet/secure_closet/medical2,/turf/open/floor/plasteel,/area/medical/sleeper) +"bMv" = (/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel/white/side{dir = 1},/area/medical/sleeper) +"bMw" = (/obj/machinery/vending/wallmed{pixel_y = -28},/obj/machinery/camera{c_tag = "Surgery Operating"; dir = 1; network = list("SS13"); pixel_x = 22},/obj/machinery/light,/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bMx" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/plasteel/white/side{dir = 1},/area/medical/sleeper) +"bMy" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/blood/empty,/obj/item/weapon/reagent_containers/blood/empty,/obj/item/weapon/reagent_containers/blood/AMinus,/obj/item/weapon/reagent_containers/blood/BMinus{pixel_x = -4; pixel_y = 4},/obj/item/weapon/reagent_containers/blood/BPlus{pixel_x = 1; pixel_y = 2},/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OPlus{pixel_x = -2; pixel_y = -1},/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/APlus,/obj/item/weapon/reagent_containers/blood/random,/turf/open/floor/plasteel,/area/medical/sleeper) +"bMz" = (/obj/structure/bed,/obj/item/weapon/bedsheet/medical,/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bMA" = (/obj/machinery/light,/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bMB" = (/obj/structure/closet/wardrobe/pjs,/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bMC" = (/obj/structure/table,/obj/machinery/light,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bMD" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/o2{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/o2,/obj/item/weapon/storage/firstaid/regular{pixel_x = -3; pixel_y = -3},/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bME" = (/obj/structure/table,/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = -30},/obj/item/weapon/storage/firstaid/toxin{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/toxin,/obj/item/weapon/storage/firstaid/regular{pixel_x = -3; pixel_y = -3},/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bMF" = (/obj/structure/table,/obj/machinery/requests_console{announcementConsole = 0; department = "Medbay"; departmentType = 1; name = "Medbay RC"; pixel_x = 0; pixel_y = -30; pixel_z = 0},/obj/item/weapon/storage/firstaid/fire{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = -3; pixel_y = -3},/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bMG" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/brute{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/brute,/obj/item/weapon/storage/firstaid/regular{pixel_x = -3; pixel_y = -3},/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bMH" = (/obj/machinery/light,/obj/structure/table,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/syringes,/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{pixel_x = 7; pixel_y = -3},/obj/item/weapon/reagent_containers/glass/bottle/morphine{pixel_x = 8; pixel_y = -3},/obj/item/weapon/reagent_containers/syringe{pixel_x = 6; pixel_y = -3},/turf/open/floor/plasteel/white,/area/medical/sleeper) +"bMI" = (/obj/structure/bed,/obj/item/weapon/bedsheet/medical,/turf/open/floor/plasteel/white,/area/medical/medbay) +"bMJ" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bMK" = (/obj/machinery/door/airlock/medical{name = "Patient Room"; req_access_txt = "5"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bML" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 2},/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,/turf/open/floor/plasteel/white,/area/medical/medbay) +"bMM" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay) +"bMN" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/medical/cmo) +"bMO" = (/obj/structure/table,/obj/item/weapon/cartridge/medical{pixel_x = -2; pixel_y = 6},/obj/item/weapon/cartridge/medical{pixel_x = 6; pixel_y = 3},/obj/item/weapon/cartridge/medical,/obj/item/weapon/cartridge/chemistry{pixel_y = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/barber,/area/medical/cmo) +"bMP" = (/obj/machinery/computer/card/minor/cmo,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/barber,/area/medical/cmo) +"bMQ" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/barber,/area/medical/cmo) +"bMR" = (/obj/structure/closet/secure_closet/CMO,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/barber,/area/medical/cmo) +"bMS" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/closed/wall/r_wall,/area/toxins/xenobiology) +"bMT" = (/obj/structure/disposaloutlet{dir = 1},/obj/structure/disposalpipe/trunk,/turf/open/floor/engine,/area/toxins/xenobiology) +"bMU" = (/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/turf/open/floor/plasteel/bot,/area/toxins/storage) +"bMV" = (/obj/machinery/portable_atmospherics/canister/nitrous_oxide,/turf/open/floor/plasteel/bot,/area/toxins/storage) +"bMW" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/plasteel/bot,/area/toxins/storage) +"bMX" = (/obj/machinery/portable_atmospherics/scrubber/huge,/turf/open/floor/plasteel/floorgrime,/area/toxins/storage) +"bMY" = (/obj/structure/sign/nosmoking_2{pixel_x = -32},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white/side{dir = 5},/area/medical/research{name = "Research Division"}) +"bMZ" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bNa" = (/turf/open/floor/plasteel/warnwhite{dir = 10},/area/medical/research{name = "Research Division"}) +"bNb" = (/obj/item/device/assembly/prox_sensor{pixel_x = -4; pixel_y = 1},/obj/item/device/assembly/prox_sensor{pixel_x = 8; pixel_y = 9},/obj/item/device/assembly/prox_sensor{pixel_x = 9; pixel_y = -2},/obj/item/device/assembly/prox_sensor{pixel_x = 0; pixel_y = 2},/obj/structure/table/reinforced,/turf/open/floor/plasteel/white,/area/toxins/mixing) +"bNc" = (/obj/structure/chair/stool,/obj/effect/landmark/start{name = "Scientist"},/turf/open/floor/plasteel/white,/area/toxins/mixing) +"bNd" = (/obj/structure/table/reinforced,/obj/item/weapon/wrench,/obj/item/weapon/screwdriver{pixel_y = 10},/turf/open/floor/plasteel/white,/area/toxins/mixing) +"bNe" = (/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/white,/area/toxins/mixing) +"bNf" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/mixing) +"bNg" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/firedoor/heavy,/obj/machinery/door/airlock/research{name = "Toxins Launch Room Access"; req_access_txt = "8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/mixing) +"bNh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 8},/area/toxins/mixing) +"bNi" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/toxins/mixing) +"bNj" = (/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,/turf/open/floor/plasteel/warning{dir = 4},/area/toxins/mixing) +"bNk" = (/obj/machinery/door/airlock/research{name = "Toxins Launch Room"; req_access_txt = "8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/toxins/mixing) +"bNl" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/toxins/mixing) +"bNm" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/warning/corner{dir = 2},/area/toxins/mixing) +"bNn" = (/turf/open/floor/plasteel/warning{dir = 6},/area/toxins/mixing) +"bNo" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'BOMB RANGE"; name = "BOMB RANGE"},/turf/closed/wall,/area/toxins/test_area) +"bNp" = (/obj/structure/chair,/turf/open/floor/plating/airless/warnplate{dir = 9},/area/toxins/test_area) +"bNq" = (/obj/item/device/flashlight/lamp,/turf/open/floor/plating/airless/warnplate{dir = 1},/area/toxins/test_area) +"bNr" = (/obj/structure/chair,/turf/open/floor/plating/airless/warnplate{dir = 5},/area/toxins/test_area) +"bNs" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 8},/obj/effect/decal/remains/human,/turf/open/floor/mineral/titanium,/area/shuttle/abandoned) +"bNt" = (/obj/machinery/door/airlock/shuttle{name = "Mining Shuttle Airlock"; req_access_txt = "48"},/obj/docking_port/mobile{dir = 8; dwidth = 3; height = 5; id = "mining"; name = "mining shuttle"; port_angle = 90; width = 7},/obj/docking_port/stationary{dir = 8; dwidth = 3; height = 5; id = "mining_home"; name = "mining shuttle bay"; width = 7},/turf/open/floor/plating,/area/shuttle/labor) +"bNu" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 4; name = "Mining Dock Airlock"; req_access = null; req_access_txt = "48"; shuttledocked = 1},/turf/open/floor/plating,/area/quartermaster/miningdock) +"bNv" = (/obj/machinery/door/airlock/glass_mining{cyclelinkeddir = 8; name = "Mining Dock"; req_access_txt = "48"},/turf/open/floor/plasteel,/area/quartermaster/miningdock) +"bNw" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/quartermaster/miningdock) +"bNx" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft) +"bNy" = (/obj/structure/closet/firecloset,/turf/open/floor/plating,/area/maintenance/aft) +"bNz" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/computer/robotics{pixel_x = -2; pixel_y = 2},/obj/item/weapon/circuitboard/computer/mecha_control{pixel_x = 1; pixel_y = -1},/turf/open/floor/plasteel,/area/storage/tech) +"bNA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/storage/tech) +"bNB" = (/obj/structure/sign/securearea,/turf/closed/wall/r_wall,/area/storage/tech) +"bNC" = (/obj/structure/table,/obj/item/weapon/stock_parts/subspace/analyzer,/obj/item/weapon/stock_parts/subspace/analyzer,/obj/item/weapon/stock_parts/subspace/analyzer,/turf/open/floor/plating,/area/storage/tech) +"bND" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/computer/cloning{pixel_x = 0},/obj/item/weapon/circuitboard/computer/med_data{pixel_x = 3; pixel_y = -3},/obj/item/weapon/circuitboard/machine/clonescanner,/obj/item/weapon/circuitboard/machine/clonepod,/obj/item/weapon/circuitboard/computer/scan_consolenew,/turf/open/floor/plating,/area/storage/tech) +"bNE" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/computer/secure_data{pixel_x = -2; pixel_y = 2},/obj/item/weapon/circuitboard/computer/security{pixel_x = 1; pixel_y = -1},/turf/open/floor/plating,/area/storage/tech) +"bNF" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/computer/powermonitor{pixel_x = -2; pixel_y = 2},/obj/item/weapon/circuitboard/computer/stationalert{pixel_x = 1; pixel_y = -1},/obj/item/weapon/circuitboard/computer/atmos_alert{pixel_x = 3; pixel_y = -3},/turf/open/floor/plating,/area/storage/tech) +"bNG" = (/obj/machinery/light_switch{pixel_x = 27},/turf/open/floor/plating,/area/storage/tech) +"bNH" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/aft) +"bNI" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"bNJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/yellow/corner{dir = 2},/area/hallway/primary/aft) +"bNK" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) +"bNL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) +"bNM" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/asmaint) +"bNN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/asmaint) +"bNO" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) +"bNP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) +"bNQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/asmaint) +"bNR" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/effect/landmark/event_spawn,/turf/open/floor/plating,/area/maintenance/asmaint) +"bNS" = (/obj/effect/landmark{name = "blobstart"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) +"bNT" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/asmaint) +"bNU" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,/turf/open/floor/plating,/area/maintenance/asmaint) +"bNV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/medical/sleeper) +"bNW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/closed/wall/r_wall,/area/medical/sleeper) +"bNX" = (/turf/closed/wall/r_wall,/area/medical/medbay) +"bNY" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bNZ" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay) +"bOa" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/shieldwallgen{req_access = list(55)},/turf/open/floor/plating,/area/toxins/xenobiology) +"bOb" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/poddoor/preopen{id = "misclab"; name = "test chamber blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/toxins/xenobiology) +"bOc" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/poddoor/preopen{id = "misclab"; name = "test chamber blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/toxins/xenobiology) +"bOd" = (/obj/machinery/door/window/southleft{dir = 1; name = "Test Chamber"; req_access_txt = "55"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/poddoor/preopen{id = "misclab"; name = "test chamber blast door"},/turf/open/floor/engine,/area/toxins/xenobiology) +"bOe" = (/obj/structure/grille,/obj/structure/disposalpipe/segment,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/poddoor/preopen{id = "misclab"; name = "test chamber blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/toxins/xenobiology) +"bOf" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "misclab"; name = "test chamber blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/toxins/xenobiology) +"bOg" = (/turf/closed/wall,/area/toxins/xenobiology) +"bOh" = (/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white/side{dir = 5},/area/medical/research{name = "Research Division"}) +"bOi" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bOj" = (/obj/machinery/vending/cigarette,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bOk" = (/obj/structure/closet/l3closet/scientist{pixel_x = -2},/turf/open/floor/plasteel/white,/area/toxins/mixing) +"bOl" = (/obj/structure/closet/wardrobe/science_white,/turf/open/floor/plasteel/white,/area/toxins/mixing) +"bOm" = (/obj/item/device/assembly/signaler{pixel_x = 0; pixel_y = 8},/obj/item/device/assembly/signaler{pixel_x = -8; pixel_y = 5},/obj/item/device/assembly/signaler{pixel_x = 6; pixel_y = 5},/obj/item/device/assembly/signaler{pixel_x = -2; pixel_y = -2},/obj/structure/table/reinforced,/turf/open/floor/plasteel/white,/area/toxins/mixing) +"bOn" = (/obj/item/device/transfer_valve{pixel_x = -5},/obj/item/device/transfer_valve{pixel_x = -5},/obj/item/device/transfer_valve{pixel_x = 0},/obj/item/device/transfer_valve{pixel_x = 0},/obj/item/device/transfer_valve{pixel_x = 5},/obj/item/device/transfer_valve{pixel_x = 5},/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_x = 0; pixel_y = -30},/obj/structure/table/reinforced,/turf/open/floor/plasteel/white,/area/toxins/mixing) +"bOo" = (/obj/item/device/assembly/timer{pixel_x = 5; pixel_y = 4},/obj/item/device/assembly/timer{pixel_x = -4; pixel_y = 2},/obj/item/device/assembly/timer{pixel_x = 6; pixel_y = -4},/obj/item/device/assembly/timer{pixel_x = 0; pixel_y = 0},/obj/structure/table/reinforced,/turf/open/floor/plasteel/white,/area/toxins/mixing) +"bOp" = (/obj/structure/tank_dispenser,/turf/open/floor/plasteel/white,/area/toxins/mixing) +"bOq" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/toxins/mixing) +"bOr" = (/obj/machinery/power/apc{dir = 4; name = "Toxins Lab APC"; pixel_x = 26; pixel_y = 0},/obj/structure/cable,/turf/open/floor/plasteel/white,/area/toxins/mixing) +"bOs" = (/turf/open/floor/plasteel/warning/corner{dir = 4},/area/toxins/mixing) +"bOt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/toxins/mixing) +"bOu" = (/obj/machinery/camera{c_tag = "Toxins Launch Room Access"; dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/warning/corner{dir = 8},/area/toxins/mixing) +"bOv" = (/obj/machinery/door/window/southleft{name = "Mass Driver Door"; req_access_txt = "7"},/turf/open/floor/plasteel/loadingarea,/area/toxins/mixing) +"bOw" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/toxins/mixing) +"bOx" = (/turf/open/floor/plating/airless/warnplate{dir = 9},/area/toxins/test_area) +"bOy" = (/turf/open/floor/plating/airless,/area/toxins/test_area) +"bOz" = (/obj/structure/chair{dir = 8},/turf/open/floor/plating/airless/warnplate{dir = 5},/area/toxins/test_area) +"bOA" = (/obj/item/weapon/ore/silver,/obj/item/weapon/ore/silver,/turf/open/floor/plasteel/warning{dir = 10},/area/quartermaster/miningdock) +"bOB" = (/obj/machinery/camera{c_tag = "Mining Dock External"; dir = 8},/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel/warning,/area/quartermaster/miningdock) +"bOC" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/turf/closed/wall,/area/quartermaster/miningdock) +"bOD" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/brown{dir = 10},/area/quartermaster/miningdock) +"bOE" = (/obj/structure/rack{dir = 1},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/item/weapon/pickaxe{pixel_x = 5},/obj/item/weapon/shovel{pixel_x = -5},/turf/open/floor/plasteel,/area/quartermaster/miningdock) +"bOF" = (/obj/structure/closet/crate,/turf/open/floor/plasteel,/area/quartermaster/miningdock) +"bOG" = (/obj/machinery/light,/turf/open/floor/plasteel,/area/quartermaster/miningdock) +"bOH" = (/obj/machinery/mineral/equipment_vendor,/turf/open/floor/plasteel,/area/quartermaster/miningdock) +"bOI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/maintenance/aft) +"bOJ" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable,/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/storage/tech) +"bOK" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/grille,/obj/structure/cable,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/storage/tech) +"bOL" = (/obj/structure/table,/obj/item/weapon/stock_parts/micro_laser,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/micro_laser/high,/obj/item/weapon/stock_parts/micro_laser/high,/obj/item/weapon/stock_parts/micro_laser/high,/obj/item/weapon/stock_parts/micro_laser/high,/turf/open/floor/plating,/area/storage/tech) +"bOM" = (/obj/structure/table,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/item/weapon/stock_parts/subspace/amplifier,/turf/open/floor/plating,/area/storage/tech) +"bON" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plating,/area/storage/tech) +"bOO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/storage/tech) +"bOP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/storage/tech) +"bOQ" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/aft) +"bOR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"bOS" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel/yellow/corner{dir = 2},/area/hallway/primary/aft) +"bOT" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/maintenance/asmaint) +"bOU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall/r_wall,/area/maintenance/asmaint) +"bOV" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/closed/wall/r_wall,/area/maintenance/asmaint) +"bOW" = (/obj/structure/closet,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) +"bOX" = (/obj/structure/reagent_dispensers/watertank,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) +"bOY" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) +"bOZ" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) +"bPa" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/asmaint) +"bPb" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/asmaint) +"bPc" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/sign/securearea{pixel_x = 0; pixel_y = -32},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) +"bPd" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plating,/area/maintenance/asmaint) +"bPe" = (/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j1s"; sortType = 11},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) +"bPf" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/asmaint) +"bPg" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/asmaint) +"bPh" = (/obj/effect/decal/cleanable/cobweb/cobweb2,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "Medbay APC"; pixel_x = 24; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/medical/medbay) +"bPi" = (/obj/machinery/vending/wallmed{pixel_y = 28},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bPj" = (/obj/machinery/door/airlock/medical{name = "Patient Room 2"; req_access_txt = "5"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bPk" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/medbay) +"bPl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/medical/medbay) +"bPm" = (/obj/structure/rack{dir = 1},/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) +"bPn" = (/obj/machinery/power/apc{dir = 1; name = "CM Office APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/medical/cmo) +"bPo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) +"bPp" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/mob/living/simple_animal/mouse,/turf/open/floor/plating,/area/maintenance/asmaint) +"bPq" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) +"bPr" = (/obj/item/weapon/wrench,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/warning{dir = 2},/area/toxins/xenobiology) +"bPs" = (/obj/machinery/computer/security/telescreen{name = "Test Chamber Moniter"; network = list("Xeno"); pixel_x = 0; pixel_y = 2},/obj/structure/table/reinforced,/turf/open/floor/plasteel/warning{dir = 2},/area/toxins/xenobiology) +"bPt" = (/obj/machinery/button/door{id = "misclab"; name = "Test Chamber Blast Doors"; pixel_x = 0; pixel_y = -2; req_access_txt = "55"},/obj/structure/table/reinforced,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/warning{dir = 6},/area/toxins/xenobiology) +"bPu" = (/obj/machinery/door/window/southleft{name = "Test Chamber"; req_access_txt = "55"},/turf/open/floor/plasteel/warning{dir = 2},/area/toxins/xenobiology) +"bPv" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/warning{dir = 10},/area/toxins/xenobiology) +"bPw" = (/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/glasses/science,/obj/item/clothing/glasses/science,/obj/structure/table,/turf/open/floor/plasteel/warning{dir = 2},/area/toxins/xenobiology) +"bPx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/warning{dir = 2},/area/toxins/xenobiology) +"bPy" = (/obj/structure/sign/biohazard,/turf/closed/wall,/area/toxins/xenobiology) +"bPz" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/door/firedoor/heavy,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white/side{dir = 5},/area/medical/research{name = "Research Division"}) +"bPA" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/heavy,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bPB" = (/obj/machinery/camera{c_tag = "Research Division South"; dir = 8; network = list("SS13")},/obj/machinery/door/firedoor/heavy,/turf/open/floor/plasteel/white/side{dir = 9},/area/medical/research{name = "Research Division"}) +"bPC" = (/obj/structure/sign/fire,/turf/closed/wall,/area/medical/research{name = "Research Division"}) +"bPD" = (/obj/structure/sign/nosmoking_2{pixel_x = -32},/turf/open/floor/plasteel/white,/area/toxins/mixing) +"bPE" = (/obj/machinery/mass_driver{dir = 4; id = "toxinsdriver"},/turf/open/floor/plating,/area/toxins/mixing) +"bPF" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = -32},/turf/open/floor/plating,/area/toxins/mixing) +"bPG" = (/turf/open/floor/plating/warnplate{dir = 4},/area/toxins/mixing) +"bPH" = (/obj/machinery/door/poddoor{id = "toxinsdriver"; name = "toxins launcher bay door"},/turf/open/floor/plating,/area/toxins/mixing) +"bPI" = (/turf/open/floor/plating/airless/warnplate{dir = 8},/area/toxins/test_area) +"bPJ" = (/turf/open/floor/plating/airless/warnplate{dir = 4},/area/toxins/test_area) +"bPK" = (/obj/item/device/radio/beacon,/turf/open/floor/plating/airless,/area/toxins/test_area) +"bPL" = (/obj/machinery/camera{active_power_usage = 0; c_tag = "Bomb Test Site"; desc = "A specially-reinforced camera with a long lasting battery, used to monitor the bomb testing site."; dir = 8; invuln = 1; light = null; name = "Hardened Bomb-Test Camera"; network = list("Toxins"); use_power = 0},/obj/item/target/alien{anchored = 1},/turf/open/floor/plating/warnplate{dir = 4; luminosity = 2; initial_gas_mix = "o2=0.01;n2=0.01"},/area/toxins/test_area) +"bPM" = (/turf/closed/indestructible{desc = "A wall impregnated with Fixium, able to withstand massive explosions with ease"; icon_state = "riveted"; name = "hyper-reinforced wall"},/area/toxins/test_area) +"bPN" = (/obj/structure/shuttle/engine/heater,/turf/open/floor/plating,/area/shuttle/labor) +"bPO" = (/obj/structure/ore_box,/turf/open/floor/mineral/titanium/blue,/area/shuttle/labor) +"bPP" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft) +"bPQ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/aft) +"bPR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/aft) +"bPS" = (/obj/structure/table,/obj/item/weapon/stock_parts/subspace/transmitter,/obj/item/weapon/stock_parts/subspace/transmitter,/obj/item/weapon/stock_parts/subspace/treatment,/obj/item/weapon/stock_parts/subspace/treatment,/obj/item/weapon/stock_parts/subspace/treatment,/turf/open/floor/plating,/area/storage/tech) +"bPT" = (/obj/structure/table,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/machinery/light/small,/turf/open/floor/plating,/area/storage/tech) +"bPU" = (/obj/structure/table,/obj/item/weapon/stock_parts/subspace/ansible,/obj/item/weapon/stock_parts/subspace/ansible,/obj/item/weapon/stock_parts/subspace/ansible,/obj/item/weapon/stock_parts/subspace/crystal,/obj/item/weapon/stock_parts/subspace/crystal,/obj/item/weapon/stock_parts/subspace/crystal,/turf/open/floor/plating,/area/storage/tech) +"bPV" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/obj/item/clothing/gloves/color/yellow,/obj/item/device/t_scanner,/obj/item/device/multitool,/turf/open/floor/plating,/area/storage/tech) +"bPW" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/obj/item/device/multitool,/obj/item/clothing/glasses/meson,/obj/machinery/light/small,/turf/open/floor/plating,/area/storage/tech) +"bPX" = (/obj/machinery/requests_console{department = "Tech storage"; pixel_x = 0; pixel_y = -32},/turf/open/floor/plating,/area/storage/tech) +"bPY" = (/obj/machinery/vending/assist,/turf/open/floor/plating,/area/storage/tech) +"bPZ" = (/obj/structure/disposalpipe/segment,/obj/machinery/camera{c_tag = "Aft Primary Hallway 2"; dir = 4; network = list("SS13")},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/aft) +"bQa" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/aft) +"bQb" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"bQc" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/caution{dir = 5},/area/hallway/primary/aft) +"bQd" = (/turf/closed/wall/r_wall,/area/atmos) +"bQe" = (/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plasteel/bot,/area/atmos) +"bQf" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/plasteel/bot,/area/atmos) +"bQg" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/turf/open/floor/plasteel/bot,/area/atmos) +"bQh" = (/obj/machinery/portable_atmospherics/canister/nitrous_oxide,/turf/open/floor/plasteel/bot,/area/atmos) +"bQi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/atmos) +"bQj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor/heavy,/obj/machinery/door/airlock/maintenance{name = "Atmospherics Maintenance"; req_access_txt = "24"},/turf/open/floor/plating,/area/atmos) +"bQk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/turf/closed/wall/r_wall,/area/atmos) +"bQl" = (/obj/machinery/atmospherics/pipe/simple/supply/visible,/turf/closed/wall/r_wall,/area/atmos) +"bQm" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/asmaint) +"bQn" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/clothing/neck/stethoscope,/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bQo" = (/obj/structure/chair/office/light{dir = 8},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bQp" = (/obj/structure/closet/secure_closet/personal/patient,/obj/machinery/button/door{id = "medpriv1"; name = "Privacy Shutters"; pixel_y = -25},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bQq" = (/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "medpriv1"; name = "privacy door"},/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/medical/medbay) +"bQr" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,/turf/open/floor/plasteel/white,/area/medical/medbay) +"bQs" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay) +"bQt" = (/obj/machinery/door/airlock/maintenance{name = "Medbay Maintenance"; req_access_txt = "5"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/medical/medbay) +"bQu" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) +"bQv" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) +"bQw" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) +"bQx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/junction,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/asmaint) +"bQy" = (/obj/machinery/power/apc{dir = 8; name = "Xenobiology APC"; pixel_x = -25},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bQz" = (/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bQA" = (/obj/structure/chair/stool,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bQB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bQC" = (/obj/machinery/monkey_recycler,/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bQD" = (/obj/machinery/processor{desc = "A machine used to process slimes and retrieve their extract."; name = "Slime Processor"},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bQE" = (/obj/machinery/smartfridge/extract,/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bQF" = (/obj/structure/table,/obj/machinery/reagentgrinder,/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bQG" = (/obj/structure/closet/l3closet/scientist,/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bQH" = (/obj/structure/closet/l3closet/scientist,/obj/machinery/light_switch{pixel_x = 0; pixel_y = 28},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bQI" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/toxins/xenobiology) +"bQJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white/side{dir = 5},/area/medical/research{name = "Research Division"}) +"bQK" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/medical/research{name = "Research Division"}) +"bQL" = (/obj/machinery/door/poddoor{id = "mixvent"; name = "Mixer Room Vent"},/turf/open/floor/engine/vacuum,/area/toxins/mixing) +"bQM" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/open/floor/engine/vacuum,/area/toxins/mixing) +"bQN" = (/obj/machinery/sparker{dir = 2; id = "mixingsparker"; pixel_x = 25},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; external_pressure_bound = 0; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/open/floor/engine/vacuum,/area/toxins/mixing) +"bQO" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/closed/wall/r_wall,/area/toxins/mixing) +"bQP" = (/obj/machinery/airlock_sensor{id_tag = "tox_airlock_sensor"; master_tag = "tox_airlock_control"; pixel_y = 24},/obj/machinery/atmospherics/components/binary/pump{dir = 4; on = 1},/turf/open/floor/engine,/area/toxins/mixing) +"bQQ" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/obj/machinery/meter,/obj/machinery/embedded_controller/radio/airlock_controller{airpump_tag = "tox_airlock_pump"; exterior_door_tag = "tox_airlock_exterior"; id_tag = "tox_airlock_control"; interior_door_tag = "tox_airlock_interior"; pixel_x = -24; pixel_y = 0; sanitize_external = 1; sensor_tag = "tox_airlock_sensor"},/turf/open/floor/plasteel/warnwhite/corner{dir = 1},/area/toxins/mixing) +"bQR" = (/obj/machinery/atmospherics/components/binary/valve{dir = 4; name = "mix to port"},/turf/open/floor/plasteel/warnwhite{dir = 4},/area/toxins/mixing) +"bQS" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 8},/turf/open/floor/plasteel/warning{dir = 5},/area/toxins/mixing) +"bQT" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating,/area/maintenance/asmaint2) +"bQU" = (/obj/effect/decal/cleanable/cobweb/cobweb2,/obj/effect/spawner/lootdrop/maintenance,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/asmaint2) +"bQV" = (/turf/open/floor/plating/airless/warnplate{dir = 10},/area/toxins/test_area) +"bQW" = (/obj/structure/chair{dir = 8},/turf/open/floor/plating/airless/warnplate{dir = 6},/area/toxins/test_area) +"bQX" = (/obj/structure/shuttle/engine/propulsion/burst,/obj/structure/window/reinforced{dir = 1; layer = 2.9},/turf/open/floor/plating/airless,/area/shuttle/labor) +"bQY" = (/obj/structure/disposalpipe/segment,/obj/machinery/status_display{density = 0; layer = 3; pixel_x = -32; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/aft) +"bQZ" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/hallway/primary/aft) +"bRa" = (/turf/open/floor/plasteel/caution{dir = 4},/area/hallway/primary/aft) +"bRb" = (/turf/closed/wall,/area/atmos) +"bRc" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plasteel,/area/atmos) +"bRd" = (/obj/machinery/atmospherics/components/trinary/filter{dir = 4},/turf/open/floor/plasteel,/area/atmos) +"bRe" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 8},/obj/machinery/airalarm{pixel_y = 23},/turf/open/floor/plasteel,/area/atmos) +"bRf" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/atmos) +"bRg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/atmos) +"bRh" = (/obj/machinery/pipedispenser,/turf/open/floor/plasteel,/area/atmos) +"bRi" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/atmos) +"bRj" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{dir = 8},/obj/machinery/light{dir = 1},/obj/machinery/meter{frequency = 1441; id_tag = "waste_meter"; name = "Waste Loop"},/turf/open/floor/plasteel,/area/atmos) +"bRk" = (/obj/machinery/camera{c_tag = "Atmospherics North East"},/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Distro to Waste"; on = 0},/turf/open/floor/plasteel,/area/atmos) +"bRl" = (/obj/machinery/atmospherics/pipe/manifold/supply/visible{dir = 2},/obj/machinery/meter{frequency = 1441; id_tag = "distro_meter"; name = "Distribution Loop"},/turf/open/floor/plasteel,/area/atmos) +"bRm" = (/obj/machinery/atmospherics/pipe/manifold/supply/visible{dir = 1},/turf/open/floor/plasteel,/area/atmos) +"bRn" = (/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Air to Distro"; on = 1},/turf/open/floor/plasteel,/area/atmos) +"bRo" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 10; initialize_directions = 10},/turf/open/floor/plasteel,/area/atmos) +"bRp" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 6},/turf/open/floor/plasteel,/area/atmos) +"bRq" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/turf/closed/wall/r_wall,/area/atmos) +"bRr" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/turf/open/space,/area/space/nearstation) +"bRs" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/turf/open/space,/area/space) +"bRt" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/yellow/visible{icon_state = "intact"; dir = 10},/turf/open/space,/area/space/nearstation) +"bRu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/medical/virology) +"bRv" = (/turf/closed/wall/r_wall,/area/medical/virology) +"bRw" = (/turf/closed/wall,/area/medical/virology) +"bRx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/doorButtons/access_button{idDoor = "virology_airlock_exterior"; idSelf = "virology_airlock_control"; name = "Virology Access Button"; pixel_x = -24; pixel_y = 0; req_access_txt = "39"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/virology{autoclose = 0; frequency = 1449; icon_state = "door_locked"; id_tag = "virology_airlock_exterior"; locked = 1; name = "Virology Exterior Airlock"; req_access_txt = "39"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/medical/virology) +"bRy" = (/obj/structure/sign/biohazard,/turf/closed/wall,/area/medical/virology) +"bRz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/sortjunction{dir = 2; icon_state = "pipe-j2s"; sortType = 13},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plating,/area/maintenance/asmaint) +"bRA" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/maintenance{name = "Xenobiology Maintenance"; req_access_txt = "55"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/toxins/xenobiology) +"bRB" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bRC" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bRD" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bRE" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bRF" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bRG" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bRH" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bRI" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Xenobiology Lab"; req_access_txt = "55"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bRJ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/white/side{dir = 5},/area/medical/research{name = "Research Division"}) +"bRK" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/white,/area/medical/research{name = "Research Division"}) +"bRL" = (/turf/open/floor/engine/vacuum,/area/toxins/mixing) +"bRM" = (/obj/effect/landmark/event_spawn,/turf/open/floor/engine/vacuum,/area/toxins/mixing) +"bRN" = (/obj/machinery/door/airlock/glass_research{autoclose = 0; frequency = 1449; glass = 1; heat_proof = 1; icon_state = "door_locked"; id_tag = "tox_airlock_exterior"; locked = 1; name = "Mixing Room Exterior Airlock"; req_access_txt = "8"},/turf/open/floor/engine,/area/toxins/mixing) +"bRO" = (/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume{dir = 2; frequency = 1449; id = "tox_airlock_pump"},/turf/open/floor/engine,/area/toxins/mixing) +"bRP" = (/obj/machinery/door/airlock/glass_research{autoclose = 0; frequency = 1449; glass = 1; heat_proof = 1; icon_state = "door_locked"; id_tag = "tox_airlock_interior"; locked = 1; name = "Mixing Room Interior Airlock"; req_access_txt = "8"},/turf/open/floor/engine,/area/toxins/mixing) +"bRQ" = (/turf/open/floor/plasteel/warnwhite{dir = 8},/area/toxins/mixing) +"bRR" = (/turf/open/floor/plasteel/warnwhite{dir = 4},/area/toxins/mixing) +"bRS" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/camera{c_tag = "Toxins Lab East"; dir = 8; network = list("SS13","RD"); pixel_y = -22},/turf/open/floor/plasteel/warning{dir = 4},/area/toxins/mixing) +"bRT" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plating,/area/maintenance/asmaint2) +"bRU" = (/obj/structure/closet/wardrobe/grey,/turf/open/floor/plating,/area/maintenance/asmaint2) +"bRV" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/asmaint2) +"bRW" = (/obj/structure/chair{dir = 1},/turf/open/floor/plating/airless/warnplate{dir = 10},/area/toxins/test_area) +"bRX" = (/obj/item/device/flashlight/lamp,/turf/open/floor/plating/airless/warnplate{dir = 2},/area/toxins/test_area) +"bRY" = (/obj/structure/chair{dir = 1},/turf/open/floor/plating/airless/warnplate{dir = 6},/area/toxins/test_area) +"bRZ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/toxins/test_area) +"bSa" = (/turf/closed/wall,/area/construction) +"bSb" = (/obj/structure/closet/crate,/turf/open/floor/plating,/area/construction) +"bSc" = (/turf/open/floor/plating,/area/construction) +"bSd" = (/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/turf/open/floor/plating,/area/construction) +"bSe" = (/turf/open/floor/plasteel,/area/construction) +"bSf" = (/obj/structure/closet/toolcloset,/turf/open/floor/plasteel,/area/construction) +"bSg" = (/turf/open/floor/plasteel/caution{dir = 6},/area/hallway/primary/aft) +"bSh" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -30},/turf/open/floor/plasteel,/area/atmos) +"bSi" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/atmos) +"bSj" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/atmos) +"bSk" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/obj/machinery/airalarm{pixel_y = 23},/obj/machinery/camera{c_tag = "Atmospherics Monitoring"; dir = 2; network = list("SS13")},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/caution{dir = 5},/area/atmos) +"bSl" = (/obj/machinery/camera{c_tag = "Atmospherics North West"; dir = 4; network = list("SS13")},/obj/machinery/light{dir = 8},/turf/open/floor/plasteel,/area/atmos) +"bSm" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 1},/turf/open/floor/plasteel,/area/atmos) +"bSn" = (/turf/open/floor/plasteel,/area/atmos) +"bSo" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel,/area/atmos) +"bSp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel,/area/atmos) +"bSq" = (/obj/machinery/pipedispenser/disposal,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/atmos) +"bSr" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/atmos) +"bSs" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/atmos) +"bSt" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/atmos) +"bSu" = (/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "Mix to Distro"; on = 0},/turf/open/floor/plasteel,/area/atmos) +"bSv" = (/obj/machinery/atmospherics/pipe/manifold/cyan/visible{dir = 8; initialize_directions = 11},/obj/machinery/meter,/turf/open/floor/plasteel,/area/atmos) +"bSw" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "Mix to Incinerator"; on = 0},/turf/open/floor/plasteel,/area/atmos) +"bSx" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 10; initialize_directions = 10},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/atmos) +"bSy" = (/obj/structure/grille,/turf/closed/wall/r_wall,/area/atmos) +"bSz" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/yellow/visible,/turf/open/space,/area/space/nearstation) +"bSA" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/closed/wall/r_wall,/area/medical/virology) +"bSB" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/virology) +"bSC" = (/obj/item/weapon/storage/secure/safe{pixel_x = 5; pixel_y = 29},/obj/machinery/camera{c_tag = "Virology Break Room"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/virology) +"bSD" = (/obj/machinery/light{dir = 1},/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/turf/open/floor/plasteel/white,/area/medical/virology) +"bSE" = (/obj/item/weapon/bedsheet,/obj/structure/bed,/turf/open/floor/plasteel/white,/area/medical/virology) +"bSF" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/open/floor/plasteel/warnwhite{dir = 9},/area/medical/virology) +"bSG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/virology) +"bSH" = (/obj/structure/closet/emcloset,/obj/machinery/camera{c_tag = "Virology Airlock"; dir = 2; network = list("SS13")},/turf/open/floor/plasteel/warnwhite{dir = 5},/area/medical/virology) +"bSI" = (/turf/open/floor/plasteel/white,/area/medical/virology) +"bSJ" = (/mob/living/carbon/monkey,/turf/open/floor/plasteel/white,/area/medical/virology) +"bSK" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/white,/area/medical/virology) +"bSL" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/sign/securearea{pixel_x = 32},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) +"bSM" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/toxins/xenobiology) +"bSN" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bSO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/chair/comfy/black,/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bSP" = (/obj/effect/landmark/start{name = "Scientist"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/chair/comfy/black,/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bSQ" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bSR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bSS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bST" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bSU" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/toxins/xenobiology) +"bSV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white/side{dir = 1},/area/medical/research{name = "Research Division"}) +"bSW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/white/side{dir = 1},/area/medical/research{name = "Research Division"}) +"bSX" = (/turf/open/floor/plasteel/white/side{dir = 1},/area/medical/research{name = "Research Division"}) +"bSY" = (/obj/machinery/sparker{dir = 2; id = "mixingsparker"; pixel_x = 25},/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 4; frequency = 1441; id = "air_in"},/turf/open/floor/engine/vacuum,/area/toxins/mixing) +"bSZ" = (/obj/structure/sign/fire{pixel_y = -32},/obj/machinery/atmospherics/components/binary/pump{dir = 8; on = 1},/turf/open/floor/engine,/area/toxins/mixing) +"bTa" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/obj/machinery/meter,/obj/machinery/button/door{id = "mixvent"; name = "Mixing Room Vent Control"; pixel_x = -25; pixel_y = 5; req_access_txt = "7"},/obj/machinery/button/ignition{id = "mixingsparker"; pixel_x = -25; pixel_y = -5},/turf/open/floor/plasteel/warnwhite/corner{dir = 4},/area/toxins/mixing) +"bTb" = (/obj/machinery/light,/obj/machinery/atmospherics/components/binary/valve{dir = 4; name = "port to mix"},/turf/open/floor/plasteel/warnwhite{dir = 4},/area/toxins/mixing) +"bTc" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 8},/turf/open/floor/plasteel/warning{dir = 6},/area/toxins/mixing) +"bTd" = (/obj/item/target,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating/warnplate,/area/toxins/test_area) +"bTe" = (/obj/structure/barricade/wooden,/obj/structure/girder,/turf/open/floor/plating,/area/maintenance/aft) +"bTf" = (/obj/structure/light_construct{dir = 8},/turf/open/floor/plating,/area/construction) +"bTg" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plating,/area/construction) +"bTh" = (/obj/structure/light_construct{dir = 4},/turf/open/floor/plasteel,/area/construction) +"bTi" = (/obj/structure/disposalpipe/segment,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 1},/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/aft) +"bTj" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"bTk" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/loadingarea{dir = 8},/area/hallway/primary/aft) +"bTl" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/plasticflaps{opacity = 1},/obj/machinery/navbeacon{codes_txt = "delivery;dir=4"; dir = 4; freq = 1400; location = "Atmospherics"},/turf/open/floor/plasteel/delivery{name = "floor"},/area/atmos) +"bTm" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/loadingarea{dir = 4},/area/atmos) +"bTn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/atmos) +"bTo" = (/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/atmos) +"bTp" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel,/area/atmos) +"bTq" = (/obj/machinery/computer/atmos_control,/obj/machinery/requests_console{department = "Atmospherics"; departmentType = 4; name = "Atmos RC"; pixel_x = 30; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/caution{dir = 4},/area/atmos) +"bTr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/atmos) +"bTs" = (/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,/turf/open/floor/plasteel,/area/atmos) +"bTt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/atmos) +"bTu" = (/obj/machinery/pipedispenser/disposal/transit_tube,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/atmos) +"bTv" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/atmos) +"bTw" = (/obj/machinery/atmospherics/components/binary/pump{dir = 0; name = "Waste In"; on = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/atmos) +"bTx" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/atmos) +"bTy" = (/obj/machinery/atmospherics/pipe/manifold/yellow/visible,/turf/open/floor/plasteel,/area/atmos) +"bTz" = (/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Mix Outlet Pump"; on = 0},/turf/open/floor/plasteel,/area/atmos) +"bTA" = (/obj/machinery/atmospherics/components/binary/pump{dir = 0; name = "Air to Mix"; on = 0},/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/turf/open/floor/plasteel,/area/atmos) +"bTB" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/manifold/yellow/visible,/turf/open/floor/plasteel/green/side{dir = 5},/area/atmos) +"bTC" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/cyan/visible,/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/atmos) +"bTD" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/grille,/obj/machinery/meter,/turf/closed/wall/r_wall,/area/atmos) +"bTE" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; external_pressure_bound = 0; frequency = 1441; id_tag = "mix_in"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/open/floor/engine/vacuum,/area/atmos) +"bTF" = (/obj/machinery/camera{c_tag = "Atmospherics Waste Tank"},/turf/open/floor/engine/vacuum,/area/atmos) +"bTG" = (/turf/open/floor/engine/vacuum,/area/atmos) +"bTH" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/asmaint) +"bTI" = (/obj/structure/table,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/turf/open/floor/plasteel/white,/area/medical/virology) +"bTJ" = (/obj/machinery/iv_drip,/turf/open/floor/plasteel/white,/area/medical/virology) +"bTK" = (/obj/machinery/shower{dir = 4},/obj/structure/sign/securearea{pixel_x = -32; pixel_y = 0},/turf/open/floor/plasteel/warnwhite{dir = 8},/area/medical/virology) +"bTL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/white,/area/medical/virology) +"bTM" = (/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/closet/l3closet,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/warnwhite{dir = 4},/area/medical/virology) +"bTN" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/virology) +"bTO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/mob/living/carbon/monkey,/turf/open/floor/plasteel/white,/area/medical/virology) +"bTP" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/medical/virology) +"bTQ" = (/obj/machinery/disposal/bin,/obj/structure/sign/deathsposal{pixel_x = 0; pixel_y = -32},/obj/structure/disposalpipe/trunk{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bTR" = (/obj/machinery/computer/camera_advanced/xenobio,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bTS" = (/obj/machinery/light,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/table/glass,/obj/item/weapon/storage/box/monkeycubes,/obj/item/weapon/storage/box/monkeycubes,/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bTT" = (/obj/structure/table/glass,/obj/structure/disposalpipe/segment{dir = 4},/obj/item/weapon/folder/white,/obj/item/weapon/pen,/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bTU" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bTV" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bTW" = (/obj/structure/table,/obj/item/weapon/extinguisher{pixel_x = 4; pixel_y = 3},/obj/item/weapon/extinguisher,/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bTX" = (/obj/structure/table,/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_x = 0; pixel_y = -30},/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bTY" = (/obj/structure/table,/obj/item/stack/sheet/mineral/plasma{layer = 2.9},/obj/item/stack/sheet/mineral/plasma{layer = 2.9},/obj/item/stack/sheet/mineral/plasma{layer = 2.9},/obj/machinery/light,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bTZ" = (/obj/structure/table,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/syringes,/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bUa" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bUb" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/toxins/misc_lab) +"bUc" = (/obj/machinery/door/airlock/research{name = "Testing Lab"; req_access_txt = "47"},/turf/open/floor/plasteel,/area/toxins/misc_lab) +"bUd" = (/turf/closed/wall,/area/toxins/misc_lab) +"bUe" = (/obj/effect/spawner/lootdrop/maintenance,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/asmaint2) +"bUf" = (/obj/effect/decal/cleanable/oil,/turf/open/floor/plating,/area/maintenance/asmaint2) +"bUg" = (/obj/machinery/vending/boozeomat,/turf/open/floor/plasteel/bar,/area/maintenance/aft) +"bUh" = (/turf/open/floor/wood,/area/maintenance/aft) +"bUi" = (/obj/effect/decal/cleanable/robot_debris/old,/turf/open/floor/wood,/area/maintenance/aft) +"bUj" = (/turf/open/floor/wood{icon_state = "wood-broken"},/area/maintenance/aft) +"bUk" = (/obj/machinery/door/airlock/maintenance{name = "Maint Bar Access"; req_access_txt = "12"},/obj/structure/barricade/wooden{name = "wooden barricade (CLOSED)"},/turf/open/floor/plating,/area/maintenance/aft) +"bUl" = (/obj/item/weapon/shard,/turf/open/floor/plating,/area/maintenance/aft) +"bUm" = (/obj/effect/decal/cleanable/oil,/turf/open/floor/plating,/area/maintenance/aft) +"bUn" = (/obj/structure/girder,/obj/structure/grille/broken,/turf/open/floor/plating,/area/maintenance/fsmaint2) +"bUo" = (/obj/structure/closet/emcloset,/obj/effect/decal/cleanable/cobweb,/turf/open/floor/plating,/area/maintenance/aft) +"bUp" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft) +"bUq" = (/obj/structure/chair{dir = 1},/turf/open/floor/plating,/area/maintenance/aft) +"bUr" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/aft) +"bUs" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) +"bUt" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/construction) +"bUu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/construction) +"bUv" = (/obj/structure/closet/crate,/obj/effect/landmark{name = "blobstart"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/construction) +"bUw" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plating,/area/construction) +"bUx" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/construction) +"bUy" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/construction) +"bUz" = (/obj/machinery/door/airlock/engineering{name = "Construction Area"; req_access_txt = "32"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/construction) +"bUA" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/aft) +"bUB" = (/turf/open/floor/plasteel/caution{dir = 5},/area/hallway/primary/aft) +"bUC" = (/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "atmos"; layer = 2.9; name = "atmos blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/atmos) +"bUD" = (/obj/structure/tank_dispenser{pixel_x = -1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/atmos) +"bUE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel,/area/atmos) +"bUF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/atmos) +"bUG" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel,/area/atmos) +"bUH" = (/obj/machinery/computer/atmos_control,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/caution{dir = 4},/area/atmos) +"bUI" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/window/fulltile,/turf/open/floor/plating,/area/atmos) +"bUJ" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/atmos) +"bUK" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/atmos) +"bUL" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel,/area/atmos) +"bUM" = (/obj/structure/closet/crate,/turf/open/floor/plasteel,/area/atmos) +"bUN" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{dir = 8},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/atmos) +"bUO" = (/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Mix to Filter"; on = 1},/turf/open/floor/plasteel,/area/atmos) +"bUP" = (/obj/machinery/atmospherics/pipe/manifold/yellow/visible{dir = 4},/turf/open/floor/plasteel,/area/atmos) +"bUQ" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 6},/turf/open/floor/plasteel,/area/atmos) +"bUR" = (/obj/machinery/atmospherics/pipe/manifold/green/visible{dir = 1},/turf/open/floor/plasteel,/area/atmos) +"bUS" = (/obj/machinery/atmospherics/pipe/manifold/green/visible{dir = 4},/turf/open/floor/plasteel,/area/atmos) +"bUT" = (/obj/machinery/computer/atmos_control/tank{frequency = 1441; input_tag = "mix_in"; name = "Gas Mix Tank Control"; output_tag = "mix_in"; sensors = list("mix_sensor" = "Tank")},/turf/open/floor/plasteel/green/side{dir = 4},/area/atmos) +"bUU" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/cyan/visible,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/atmos) +"bUV" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating/airless,/area/atmos) +"bUW" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "mix_sensor"},/turf/open/floor/engine/vacuum,/area/atmos) +"bUX" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/engine/vacuum,/area/atmos) +"bUY" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/machinery/newscaster{pixel_x = -30},/turf/open/floor/plasteel/white,/area/medical/virology) +"bUZ" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/white,/area/medical/virology) +"bVa" = (/obj/structure/closet/wardrobe/virology_white,/turf/open/floor/plasteel/white,/area/medical/virology) +"bVb" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/doorButtons/access_button{idDoor = "virology_airlock_interior"; idSelf = "virology_airlock_control"; name = "Virology Access Button"; pixel_x = 8; pixel_y = -28; req_access_txt = "39"},/turf/open/floor/plasteel/warnwhite{dir = 10},/area/medical/virology) +"bVc" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/white,/area/medical/virology) +"bVd" = (/obj/structure/closet/l3closet,/turf/open/floor/plasteel/warnwhite{dir = 6},/area/medical/virology) +"bVe" = (/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plasteel/white,/area/medical/virology) +"bVf" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/warnwhite{dir = 1},/area/toxins/xenobiology) +"bVg" = (/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/warnwhite{dir = 1},/area/toxins/xenobiology) +"bVh" = (/obj/machinery/door/firedoor,/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/camera{c_tag = "Xenobiology North"; dir = 8; network = list("SS13","RD")},/turf/open/floor/plasteel/warnwhite{dir = 1},/area/toxins/xenobiology) +"bVi" = (/obj/structure/closet/bombcloset,/obj/machinery/light_switch{pixel_x = -20; pixel_y = 0},/turf/open/floor/plasteel,/area/toxins/misc_lab) +"bVj" = (/turf/open/floor/plasteel,/area/toxins/misc_lab) +"bVk" = (/turf/open/floor/plasteel/floorgrime,/area/toxins/misc_lab) +"bVl" = (/obj/machinery/requests_console{department = "Science"; departmentType = 2; dir = 2; name = "Science Requests Console"; pixel_x = 0; pixel_y = 30},/turf/open/floor/plasteel,/area/toxins/misc_lab) +"bVm" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/storage/toolbox/mechanical,/obj/item/clothing/ears/earmuffs,/obj/machinery/camera{c_tag = "Testing Lab North"; dir = 2; network = list("SS13","RD")},/turf/open/floor/plasteel,/area/toxins/misc_lab) +"bVn" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/turf/open/floor/engine,/area/toxins/misc_lab) +"bVo" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 1},/turf/open/floor/engine,/area/toxins/misc_lab) +"bVp" = (/obj/machinery/atmospherics/components/trinary/filter{dir = 4; req_access = null},/turf/open/floor/engine,/area/toxins/misc_lab) +"bVq" = (/obj/machinery/atmospherics/components/unary/thermomachine/heater{dir = 8},/turf/open/floor/engine,/area/toxins/misc_lab) +"bVr" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/warning{dir = 9},/area/toxins/misc_lab) +"bVs" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/warning{dir = 5},/area/toxins/misc_lab) +"bVt" = (/turf/closed/wall/r_wall,/area/toxins/misc_lab) +"bVu" = (/obj/structure/rack,/turf/open/floor/plating,/area/maintenance/asmaint2) +"bVv" = (/obj/structure/table,/obj/machinery/chem_dispenser/drinks/beer,/turf/open/floor/wood,/area/maintenance/aft) +"bVw" = (/obj/structure/table/wood,/obj/item/weapon/soap/nanotrasen,/turf/open/floor/wood{icon_state = "wood-broken7"},/area/maintenance/aft) +"bVx" = (/obj/structure/table/wood,/turf/open/floor/wood{icon_state = "wood-broken5"},/area/maintenance/aft) +"bVy" = (/obj/structure/table/wood,/obj/effect/spawner/lootdrop/maintenance{lootcount = 4; name = "4maintenance loot spawner"},/turf/open/floor/wood,/area/maintenance/aft) +"bVz" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/aft) +"bVA" = (/obj/effect/spawner/lootdrop/maintenance{lootcount = 3; name = "3maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/aft) +"bVB" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/aft) +"bVC" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/aft) +"bVD" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/maintenance{name = "Construction Area Maintenance"; req_access_txt = "32"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/construction) +"bVE" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/construction) +"bVF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/construction) +"bVG" = (/obj/machinery/light_switch{pixel_x = 27},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/construction) +"bVH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/construction) +"bVI" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/aft) +"bVJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"bVK" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/heavy,/obj/machinery/door/window/northleft{dir = 4; icon_state = "left"; name = "Atmospherics Desk"; req_access_txt = "24"},/obj/machinery/door/poddoor/preopen{id = "atmos"; layer = 2.9; name = "atmos blast door"},/turf/open/floor/plasteel/delivery{name = "floor"},/area/atmos) +"bVL" = (/obj/structure/chair{dir = 8},/obj/effect/landmark/start{name = "Atmospheric Technician"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/atmos) +"bVM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/atmos) +"bVN" = (/obj/structure/chair/office/dark{dir = 4},/obj/effect/landmark/start{name = "Atmospheric Technician"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel,/area/atmos) +"bVO" = (/obj/machinery/computer/atmos_alert,/turf/open/floor/plasteel/caution{dir = 4},/area/atmos) +"bVP" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/atmos) +"bVQ" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/plasteel,/area/atmos) +"bVR" = (/obj/machinery/atmospherics/components/trinary/mixer{dir = 8},/turf/open/floor/plasteel,/area/atmos) +"bVS" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 8},/turf/open/floor/plasteel,/area/atmos) +"bVT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 6},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/atmos) +"bVU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/turf/open/floor/plasteel,/area/atmos) +"bVV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_atmos{name = "Distribution Loop"; req_access_txt = "24"},/turf/open/floor/plasteel,/area/atmos) +"bVW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 9},/turf/open/floor/plasteel,/area/atmos) +"bVX" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 9},/turf/open/floor/plasteel,/area/atmos) +"bVY" = (/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "Pure to Mix"; on = 0},/turf/open/floor/plasteel,/area/atmos) +"bVZ" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 5; initialize_directions = 12},/turf/open/floor/plasteel,/area/atmos) +"bWa" = (/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "Unfiltered to Mix"; on = 1},/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4; initialize_directions = 12},/turf/open/floor/plasteel,/area/atmos) +"bWb" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/turf/open/floor/plasteel/green/side{dir = 6},/area/atmos) +"bWc" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/cyan/visible,/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/atmos) +"bWd" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/turf/open/space,/area/space/nearstation) +"bWe" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 8; frequency = 1441; id = "mix_in"; pixel_y = 1},/turf/open/floor/engine/vacuum,/area/atmos) +"bWf" = (/obj/structure/table,/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/obj/machinery/reagentgrinder,/turf/open/floor/plasteel/white,/area/medical/virology) +"bWg" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/white,/area/medical/virology) +"bWh" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel/white,/area/medical/virology) +"bWi" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/virology{autoclose = 0; frequency = 1449; icon_state = "door_locked"; id_tag = "virology_airlock_interior"; locked = 1; name = "Virology Interior Airlock"; req_access_txt = "39"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/virology) +"bWj" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/medical/virology) +"bWk" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_virology{name = "Monkey Pen"; req_access_txt = "39"},/turf/open/floor/plasteel/white,/area/medical/virology) +"bWl" = (/obj/structure/disposalpipe/trunk{dir = 4},/obj/structure/disposaloutlet,/turf/open/floor/engine,/area/toxins/xenobiology) +"bWm" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/engine,/area/toxins/xenobiology) +"bWn" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/door/poddoor/preopen{id = "xenobio3"; name = "containment blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/toxins/xenobiology) +"bWo" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/window/reinforced,/turf/open/floor/plasteel/warning{dir = 6},/area/toxins/xenobiology) +"bWp" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bWq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bWr" = (/obj/structure/window/reinforced,/obj/structure/table/reinforced,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/button/door{id = "xenobio8"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/turf/open/floor/plasteel/warning{dir = 10},/area/toxins/xenobiology) +"bWs" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "xenobio8"; name = "containment blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/toxins/xenobiology) +"bWt" = (/obj/structure/closet/l3closet/scientist{pixel_x = -2},/turf/open/floor/plasteel,/area/toxins/misc_lab) +"bWu" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/floorgrime,/area/toxins/misc_lab) +"bWv" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 4},/obj/item/device/electropack,/obj/item/device/healthanalyzer,/obj/item/device/assembly/signaler,/turf/open/floor/plasteel,/area/toxins/misc_lab) +"bWw" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 4; initialize_directions = 11},/turf/open/floor/engine,/area/toxins/misc_lab) +"bWx" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 8},/turf/open/floor/engine,/area/toxins/misc_lab) +"bWy" = (/obj/machinery/atmospherics/pipe/manifold/general/visible,/turf/open/floor/engine,/area/toxins/misc_lab) +"bWz" = (/obj/machinery/atmospherics/components/unary/thermomachine/freezer{dir = 8},/turf/open/floor/engine,/area/toxins/misc_lab) +"bWA" = (/obj/machinery/magnetic_module,/obj/effect/landmark{name = "blobstart"},/obj/structure/target_stake,/turf/open/floor/plasteel/bot{dir = 2},/area/toxins/misc_lab) +"bWB" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/asmaint2) +"bWC" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/asmaint2) +"bWD" = (/obj/machinery/space_heater,/turf/open/floor/wood,/area/maintenance/aft) +"bWE" = (/obj/structure/chair/stool,/turf/open/floor/wood,/area/maintenance/aft) +"bWF" = (/obj/structure/grille/broken,/turf/open/floor/plating,/area/maintenance/aft) +"bWG" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/effect/decal/cleanable/cobweb,/turf/open/floor/plating,/area/maintenance/aft) +"bWH" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plating,/area/maintenance/aft) +"bWI" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft) +"bWJ" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/aft) +"bWK" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 1},/turf/open/floor/plating,/area/construction) +"bWL" = (/obj/machinery/camera{c_tag = "Construction Area"; dir = 1},/turf/open/floor/plating,/area/construction) +"bWM" = (/obj/structure/rack{dir = 1},/obj/item/clothing/suit/hazardvest,/turf/open/floor/plating,/area/construction) +"bWN" = (/obj/structure/table,/obj/item/stack/cable_coil{amount = 5},/obj/item/device/flashlight,/turf/open/floor/plating,/area/construction) +"bWO" = (/obj/structure/table,/turf/open/floor/plating,/area/construction) +"bWP" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/aft) +"bWQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/hallway/primary/aft) +"bWR" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "atmos"; layer = 2.9; name = "atmos blast door"},/turf/open/floor/plating,/area/atmos) +"bWS" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/table,/obj/item/weapon/tank/internals/emergency_oxygen{pixel_x = -8; pixel_y = 0},/obj/item/weapon/tank/internals/emergency_oxygen{pixel_x = -8; pixel_y = 0},/obj/item/clothing/mask/breath{pixel_x = 4; pixel_y = 0},/obj/item/clothing/mask/breath{pixel_x = 4; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/atmos) +"bWT" = (/obj/structure/sign/atmosplaque{pixel_x = 0; pixel_y = -32},/obj/structure/table,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/atmos) +"bWU" = (/obj/machinery/computer/station_alert,/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/button/door{id = "atmos"; name = "Atmospherics Lockdown"; pixel_x = 24; pixel_y = 4; req_access_txt = "24"},/turf/open/floor/plasteel/caution{dir = 6},/area/atmos) +"bWV" = (/obj/structure/table,/obj/item/clothing/head/welding{pixel_x = -3; pixel_y = 7},/obj/item/clothing/head/welding{pixel_x = -5; pixel_y = 3},/obj/machinery/light{dir = 8},/obj/item/device/multitool,/turf/open/floor/plasteel,/area/atmos) +"bWW" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 50},/obj/item/weapon/storage/belt/utility,/obj/item/device/t_scanner,/obj/item/device/t_scanner,/obj/item/device/t_scanner,/turf/open/floor/plasteel,/area/atmos) +"bWX" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50; pixel_x = 2; pixel_y = 2},/turf/open/floor/plasteel,/area/atmos) +"bWY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/atmos) +"bWZ" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 6; initialize_directions = 6},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/atmos) +"bXa" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/yellow/visible,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/atmos) +"bXb" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/atmos) +"bXc" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/yellow/visible,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/atmos) +"bXd" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/atmos) +"bXe" = (/obj/machinery/atmospherics/pipe/simple/green/visible,/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/atmos) +"bXf" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/manifold/cyan/visible{dir = 4; initialize_directions = 11},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/atmos) +"bXg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/white,/area/medical/virology) +"bXh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/virology) +"bXi" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/virology{name = "Break Room"; req_access_txt = "39"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/virology) +"bXj" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/virology) +"bXk" = (/obj/machinery/doorButtons/airlock_controller{idExterior = "virology_airlock_exterior"; idInterior = "virology_airlock_interior"; idSelf = "virology_airlock_control"; name = "Virology Access Console"; pixel_x = 8; pixel_y = 22; req_access_txt = "39"},/obj/machinery/light_switch{pixel_x = -4; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/virology) +"bXl" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/virology) +"bXm" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/firealarm{pixel_y = 25},/turf/open/floor/plasteel/white,/area/medical/virology) +"bXn" = (/obj/machinery/power/apc{cell_type = 5000; dir = 1; name = "Virology APC"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/camera{c_tag = "Virology Module"},/turf/open/floor/plasteel/white,/area/medical/virology) +"bXo" = (/obj/machinery/vending/medical,/turf/open/floor/plasteel/white,/area/medical/virology) +"bXp" = (/obj/effect/landmark{name = "revenantspawn"},/turf/open/floor/engine,/area/toxins/xenobiology) +"bXq" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Containment Pen"; req_access_txt = "55"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/poddoor/preopen{id = "xenobio3"; name = "containment blast door"},/turf/open/floor/engine,/area/toxins/xenobiology) +"bXr" = (/obj/machinery/door/window/northleft{dir = 4; name = "Containment Pen"; req_access_txt = "55"},/turf/open/floor/plasteel/warning{dir = 4},/area/toxins/xenobiology) +"bXs" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bXt" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Containment Pen"; req_access_txt = "55"},/turf/open/floor/plasteel/warning{dir = 8},/area/toxins/xenobiology) +"bXu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/window/northleft{dir = 4; name = "Containment Pen"; req_access_txt = "55"},/obj/machinery/door/poddoor/preopen{id = "xenobio8"; name = "containment blast door"},/turf/open/floor/engine,/area/toxins/xenobiology) +"bXv" = (/obj/structure/rack,/obj/item/clothing/mask/gas{pixel_x = 3; pixel_y = 3},/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas{pixel_x = -3; pixel_y = -3},/obj/machinery/airalarm{dir = 4; locked = 0; pixel_x = -23; pixel_y = 0},/turf/open/floor/plasteel,/area/toxins/misc_lab) +"bXw" = (/obj/structure/table,/obj/machinery/cell_charger{pixel_y = 5},/obj/item/stack/cable_coil,/obj/item/device/multitool,/obj/item/weapon/stock_parts/cell/high/plus,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel,/area/toxins/misc_lab) +"bXx" = (/turf/open/floor/engine,/area/toxins/misc_lab) +"bXy" = (/obj/machinery/atmospherics/components/binary/valve,/turf/open/floor/engine,/area/toxins/misc_lab) +"bXz" = (/obj/machinery/atmospherics/pipe/simple/general/visible,/turf/open/floor/engine,/area/toxins/misc_lab) +"bXA" = (/obj/item/pipe{dir = 4; icon_state = "mixer"; name = "gas mixer fitting"; pipe_type = 14},/turf/open/floor/engine,/area/toxins/misc_lab) +"bXB" = (/obj/structure/table,/obj/item/device/assembly/igniter{pixel_x = -5; pixel_y = 3},/obj/item/device/assembly/igniter{pixel_x = 5; pixel_y = -4},/obj/item/device/assembly/igniter{pixel_x = 2; pixel_y = 6},/obj/item/device/assembly/igniter{pixel_x = 2; pixel_y = -1},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/item/device/assembly/timer{pixel_x = -3; pixel_y = 3},/obj/item/device/assembly/timer{pixel_x = -3; pixel_y = 3},/obj/item/device/assembly/timer{pixel_x = -3; pixel_y = 3},/obj/item/device/assembly/timer{pixel_x = -3; pixel_y = 3},/turf/open/floor/engine,/area/toxins/misc_lab) +"bXC" = (/turf/open/floor/plasteel/warning{dir = 10},/area/toxins/misc_lab) +"bXD" = (/turf/open/floor/plasteel/warning{dir = 6},/area/toxins/misc_lab) +"bXE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/toxins/misc_lab) +"bXF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/asmaint2) +"bXG" = (/turf/open/floor/wood{icon_state = "wood-broken5"},/area/maintenance/aft) +"bXH" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/wood,/area/maintenance/aft) +"bXI" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{icon_state = "intact"; dir = 4},/turf/open/floor/wood{icon_state = "wood-broken6"},/area/maintenance/aft) +"bXJ" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/general/hidden{icon_state = "intact"; dir = 4},/turf/open/floor/plating,/area/maintenance/aft) +"bXK" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{icon_state = "intact"; dir = 4},/turf/open/floor/plating,/area/maintenance/aft) +"bXL" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/general/hidden{icon_state = "intact"; dir = 4},/turf/open/floor/plating,/area/maintenance/fsmaint2) +"bXM" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{icon_state = "connector_map"; dir = 8},/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plating,/area/maintenance/aft) +"bXN" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/aft) +"bXO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/closed/wall,/area/maintenance/aft) +"bXP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/maintenance/aft) +"bXQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/aft) +"bXR" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/closed/wall,/area/maintenance/aft) +"bXS" = (/obj/structure/closet/emcloset,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) +"bXT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/closed/wall,/area/maintenance/aft) +"bXU" = (/obj/machinery/power/apc{name = "Aft Hall APC"; dir = 8; pixel_x = -25; pixel_y = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/aft) +"bXV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"bXW" = (/obj/item/weapon/crowbar,/obj/item/weapon/wrench,/obj/structure/window/reinforced,/turf/open/floor/plasteel/caution{dir = 6},/area/hallway/primary/aft) +"bXX" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/atmos) +"bXY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/atmos) +"bXZ" = (/obj/machinery/door/firedoor/heavy,/obj/machinery/door/airlock/glass_atmos{name = "Atmospherics Monitoring"; req_access_txt = "24"},/turf/open/floor/plasteel,/area/atmos) +"bYa" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 6; initialize_directions = 6},/turf/open/floor/plasteel,/area/atmos) +"bYb" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/turf/open/floor/plasteel,/area/atmos) +"bYc" = (/obj/machinery/atmospherics/pipe/manifold/cyan/visible{dir = 4; initialize_directions = 11},/obj/machinery/meter,/turf/open/floor/plasteel,/area/atmos) +"bYd" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible,/obj/machinery/meter,/turf/open/floor/plasteel,/area/atmos) +"bYe" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 6},/obj/machinery/meter,/turf/open/floor/plasteel,/area/atmos) +"bYf" = (/obj/machinery/atmospherics/pipe/manifold/yellow/visible{dir = 1},/turf/open/floor/plasteel,/area/atmos) +"bYg" = (/obj/machinery/atmospherics/pipe/simple/green/visible,/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/turf/open/floor/plasteel,/area/atmos) +"bYh" = (/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "N2O Outlet Pump"; on = 0},/turf/open/floor/plasteel/escape{dir = 5},/area/atmos) +"bYi" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; external_pressure_bound = 0; frequency = 1441; id_tag = "n2o_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/open/floor/engine/n2o,/area/atmos) +"bYj" = (/turf/open/floor/engine/n2o,/area/atmos) +"bYk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/closed/wall/r_wall,/area/medical/virology) +"bYl" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/medical/virology) +"bYm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/closed/wall,/area/medical/virology) +"bYn" = (/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/open/floor/plasteel/white,/area/medical/virology) +"bYo" = (/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/white,/area/medical/virology) +"bYp" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/white,/area/medical/virology) +"bYq" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/white,/area/medical/virology) +"bYr" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable,/obj/machinery/door/poddoor/preopen{id = "xenobio3"; name = "containment blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/toxins/xenobiology) +"bYs" = (/obj/structure/table/reinforced,/obj/machinery/button/door{id = "xenobio3"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel/warning{dir = 5},/area/toxins/xenobiology) +"bYt" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bYu" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 4},/turf/open/floor/plasteel/warning{dir = 9},/area/toxins/xenobiology) +"bYv" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable,/obj/machinery/door/poddoor/preopen{id = "xenobio8"; name = "containment blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/toxins/xenobiology) +"bYw" = (/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/disposaloutlet{dir = 1},/turf/open/floor/engine,/area/toxins/xenobiology) +"bYx" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/floorgrime,/area/toxins/misc_lab) +"bYy" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 10; pixel_x = 0; initialize_directions = 10},/turf/open/floor/plasteel,/area/toxins/misc_lab) +"bYz" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/table,/obj/item/weapon/hand_labeler,/obj/item/clothing/glasses/science,/obj/item/clothing/glasses/science,/turf/open/floor/plasteel,/area/toxins/misc_lab) +"bYA" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 9},/turf/open/floor/engine,/area/toxins/misc_lab) +"bYB" = (/obj/structure/table,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/grenade/chem_grenade,/obj/item/weapon/grenade/chem_grenade,/turf/open/floor/engine,/area/toxins/misc_lab) +"bYC" = (/turf/open/floor/plating,/area/toxins/misc_lab) +"bYD" = (/obj/structure/target_stake,/obj/effect/decal/cleanable/cobweb,/turf/open/floor/plating,/area/toxins/misc_lab) +"bYE" = (/obj/structure/lattice/catwalk,/turf/open/space,/area/space/nearstation) +"bYF" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 2},/turf/open/floor/plating/airless,/area/space/nearstation) +"bYG" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating,/area/maintenance/aft) +"bYH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/aft) +"bYI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/aft) +"bYJ" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/aft) +"bYK" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-y"; dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plating,/area/maintenance/aft) +"bYL" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) +"bYM" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plating,/area/maintenance/aft) +"bYN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) +"bYO" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/power/apc{dir = 1; name = "Construction Area APC"; pixel_y = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/construction) +"bYP" = (/obj/machinery/power/apc{dir = 2; name = "Telecoms Monitoring APC"; pixel_y = -24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/tcommsat/computer) +"bYQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) +"bYR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/aft) +"bYS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"bYT" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/pump,/turf/open/floor/plasteel/arrival{dir = 8},/area/atmos) +"bYU" = (/obj/machinery/atmospherics/pipe/manifold/cyan/visible{dir = 1},/obj/machinery/meter,/turf/closed/wall/r_wall,/area/atmos) +"bYV" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/caution{dir = 8},/area/atmos) +"bYW" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/atmos) +"bYX" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/turf/open/floor/plasteel/caution{dir = 4},/area/atmos) +"bYY" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/obj/machinery/door/firedoor/heavy,/obj/machinery/door/airlock/atmos{name = "Atmospherics"; req_access_txt = "24"},/turf/open/floor/plasteel,/area/atmos) +"bYZ" = (/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Air to External"; on = 1},/turf/open/floor/plasteel,/area/atmos) +"bZa" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/turf/open/floor/plasteel,/area/atmos) +"bZb" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 9},/turf/open/floor/plasteel,/area/atmos) +"bZc" = (/obj/item/device/radio/beacon,/turf/open/floor/plasteel,/area/atmos) +"bZd" = (/obj/machinery/atmospherics/components/binary/pump{dir = 0; name = "Air to Port"; on = 0},/turf/open/floor/plasteel,/area/atmos) +"bZe" = (/obj/machinery/atmospherics/components/binary/pump{dir = 0; name = "Mix to Port"; on = 0},/turf/open/floor/plasteel,/area/atmos) +"bZf" = (/obj/machinery/atmospherics/components/binary/pump{dir = 0; name = "Pure to Port"; on = 0},/turf/open/floor/plasteel,/area/atmos) +"bZg" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible,/turf/open/floor/plasteel,/area/atmos) +"bZh" = (/obj/machinery/atmospherics/pipe/simple/green/visible,/turf/open/floor/plasteel,/area/atmos) +"bZi" = (/obj/machinery/computer/atmos_control/tank{frequency = 1441; input_tag = "n2o_in"; name = "Nitrous Oxide Supply Control"; output_tag = "n2o_out"; sensors = list("n2o_sensor" = "Tank")},/turf/open/floor/plasteel/escape{dir = 4},/area/atmos) +"bZj" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "n2o_sensor"},/turf/open/floor/engine/n2o,/area/atmos) +"bZk" = (/obj/machinery/portable_atmospherics/canister/nitrous_oxide,/turf/open/floor/engine/n2o,/area/atmos) +"bZl" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/engine/n2o,/area/atmos) +"bZm" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/asmaint) +"bZn" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) +"bZo" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/asmaint) +"bZp" = (/obj/machinery/smartfridge/chemistry/virology,/turf/open/floor/plasteel/whitegreen/side{dir = 8},/area/medical/virology) +"bZq" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel/white,/area/medical/virology) +"bZr" = (/obj/machinery/computer/pandemic,/turf/open/floor/plasteel/whitegreen/side{dir = 4},/area/medical/virology) +"bZs" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/medical/virology) +"bZt" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_virology{name = "Isolation A"; req_access_txt = "39"},/turf/open/floor/plasteel/white,/area/medical/virology) +"bZu" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/medical/virology) +"bZv" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_virology{name = "Isolation B"; req_access_txt = "39"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/white,/area/medical/virology) +"bZw" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/closed/wall,/area/toxins/xenobiology) +"bZx" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bZy" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"bZz" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/toxins/misc_lab) +"bZA" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 4; initialize_directions = 11},/obj/machinery/meter,/turf/open/floor/plasteel/floorgrime,/area/toxins/misc_lab) +"bZB" = (/turf/open/floor/plasteel/warning/corner{dir = 8},/area/toxins/misc_lab) +"bZC" = (/turf/open/floor/plasteel/warning{dir = 1},/area/toxins/misc_lab) +"bZD" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 50; pixel_x = 3; pixel_y = 3},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/mineral/plasma{layer = 2.9},/turf/open/floor/plasteel/warning{dir = 1},/area/toxins/misc_lab) +"bZE" = (/obj/machinery/camera{c_tag = "Testing Firing Range"; dir = 8; network = list("SS13","RD"); pixel_y = -22},/turf/open/floor/plating,/area/toxins/misc_lab) +"bZF" = (/obj/structure/target_stake,/turf/open/floor/plating,/area/toxins/misc_lab) +"bZG" = (/obj/structure/disposaloutlet{dir = 8},/obj/structure/disposalpipe/trunk{dir = 4},/turf/open/floor/plating/airless,/area/space/nearstation) +"bZH" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating/airless,/area/space/nearstation) +"bZI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 5},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating/airless,/area/space/nearstation) +"bZJ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating/airless,/area/space/nearstation) +"bZK" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Mix to Space"; on = 1},/turf/open/floor/plating/airless,/area/space/nearstation) +"bZL" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/aft) +"bZM" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/closet/emcloset,/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) +"bZN" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/reagent_dispensers/fueltank,/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{icon_state = "intact"; dir = 10},/turf/open/floor/plating,/area/maintenance/aft) +"bZO" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/sign/deathsposal{pixel_y = 32},/turf/open/floor/plating,/area/maintenance/aft) +"bZP" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible,/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/maintenance/aft) +"bZQ" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible,/turf/open/floor/plating,/area/maintenance/aft) +"bZR" = (/obj/effect/decal/cleanable/cobweb/cobweb2,/obj/machinery/atmospherics/components/unary/portables_connector/visible,/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/plating,/area/maintenance/aft) +"bZS" = (/obj/structure/sign/nosmoking_2{pixel_x = -28},/turf/open/floor/plating,/area/maintenance/aft) +"bZT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/aft) +"bZU" = (/turf/closed/wall/r_wall,/area/tcommsat/server) +"bZV" = (/turf/closed/wall/r_wall,/area/tcommsat/computer) +"bZW" = (/obj/structure/rack{dir = 1},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft) +"bZX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/aft) +"bZY" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 9},/turf/closed/wall/r_wall,/area/atmos) +"bZZ" = (/obj/machinery/camera{c_tag = "Atmospherics Access"; dir = 4; network = list("SS13")},/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/caution{dir = 8},/area/atmos) +"caa" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel,/area/atmos) +"cab" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 6},/turf/open/floor/plasteel,/area/atmos) +"cac" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/turf/open/floor/plasteel/caution{dir = 4},/area/atmos) +"cad" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/obj/structure/sign/securearea,/turf/closed/wall,/area/atmos) +"cae" = (/obj/machinery/atmospherics/components/binary/pump{dir = 4; name = "External to Filter"; on = 1},/turf/open/floor/plasteel,/area/atmos) +"caf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{dir = 4},/turf/open/floor/plasteel,/area/atmos) +"cag" = (/obj/structure/reagent_dispensers/watertank/high,/turf/open/floor/plasteel,/area/atmos) +"cah" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel,/area/atmos) +"cai" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/suit/hazardvest,/obj/item/clothing/suit/hazardvest,/obj/item/clothing/suit/hazardvest,/obj/item/clothing/suit/hazardvest,/obj/item/clothing/gloves/color/black,/obj/item/clothing/gloves/color/black,/obj/item/clothing/gloves/color/black,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/turf/open/floor/plasteel,/area/atmos) +"caj" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 8},/turf/open/floor/plasteel,/area/atmos) +"cak" = (/obj/machinery/atmospherics/pipe/manifold/general/visible,/obj/machinery/meter,/turf/open/floor/plasteel,/area/atmos) +"cal" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel,/area/atmos) +"cam" = (/obj/machinery/atmospherics/components/trinary/filter{dir = 1; filter_type = "n2o"; on = 1},/turf/open/floor/plasteel,/area/atmos) +"can" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/turf/open/floor/plasteel/escape{dir = 6},/area/atmos) +"cao" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 8; frequency = 1441; id = "n2o_in"; pixel_y = 1},/turf/open/floor/engine/n2o,/area/atmos) +"cap" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/asmaint) +"caq" = (/obj/structure/table/glass,/obj/item/clothing/gloves/color/latex,/obj/machinery/requests_console{department = "Virology"; name = "Virology Requests Console"; pixel_x = -32},/obj/item/device/healthanalyzer,/obj/item/clothing/glasses/hud/health,/turf/open/floor/plasteel/whitegreen/side{dir = 8},/area/medical/virology) +"car" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/obj/item/device/radio/headset/headset_med,/turf/open/floor/plasteel/whitegreen/side{dir = 4},/area/medical/virology) +"cas" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plating,/area/medical/virology) +"cat" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/white,/area/medical/virology) +"cau" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/effect/landmark{name = "revenantspawn"},/turf/open/floor/plasteel/white,/area/medical/virology) +"cav" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel/white,/area/medical/virology) +"caw" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/door/poddoor/preopen{id = "xenobio2"; name = "containment blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/toxins/xenobiology) +"cax" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"cay" = (/obj/structure/window/reinforced,/obj/structure/table/reinforced,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/button/door{id = "xenobio7"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/turf/open/floor/plasteel/warning{dir = 10},/area/toxins/xenobiology) +"caz" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "xenobio7"; name = "containment blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/toxins/xenobiology) +"caA" = (/obj/item/device/radio/intercom{pixel_x = -25},/turf/open/floor/plasteel/floorgrime,/area/toxins/misc_lab) +"caB" = (/obj/machinery/atmospherics/components/binary/pump{dir = 2},/turf/open/floor/plasteel/floorgrime,/area/toxins/misc_lab) +"caC" = (/obj/structure/chair/office/light,/obj/effect/landmark/start{name = "Scientist"},/turf/open/floor/plasteel/floorgrime,/area/toxins/misc_lab) +"caD" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/floorgrime,/area/toxins/misc_lab) +"caE" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel,/area/toxins/misc_lab) +"caF" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/plasteel/warning/corner{dir = 2},/area/toxins/misc_lab) +"caG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/turf/open/floor/plating,/area/maintenance/aft) +"caH" = (/turf/open/floor/plasteel/floorgrime,/area/maintenance/aft) +"caI" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 5},/turf/open/floor/plating,/area/maintenance/aft) +"caJ" = (/obj/machinery/atmospherics/pipe/manifold4w/general,/obj/machinery/meter,/turf/open/floor/plating,/area/maintenance/aft) +"caK" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 9},/turf/open/floor/plating,/area/maintenance/aft) +"caL" = (/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"caM" = (/obj/machinery/telecomms/server/presets/engineering,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"caN" = (/obj/machinery/telecomms/bus/preset_four,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"caO" = (/obj/machinery/light{dir = 1},/obj/machinery/power/apc{cell_type = 5000; dir = 1; name = "Telecoms Server APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"caP" = (/obj/machinery/telecomms/processor/preset_three,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"caQ" = (/obj/machinery/telecomms/server/presets/security,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"caR" = (/obj/structure/window/reinforced/fulltile,/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plating,/area/tcommsat/computer) +"caS" = (/obj/structure/table,/turf/open/floor/plasteel/yellow/side{dir = 9},/area/tcommsat/computer) +"caT" = (/obj/item/device/radio/intercom{dir = 8; freerange = 1; name = "Station Intercom (Telecoms)"; pixel_x = 0; pixel_y = 26},/turf/open/floor/plasteel,/area/tcommsat/computer) +"caU" = (/obj/machinery/light{dir = 1},/obj/machinery/announcement_system,/turf/open/floor/plasteel,/area/tcommsat/computer) +"caV" = (/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/structure/disposalpipe/segment,/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/aft) +"caW" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/scrubber,/turf/open/floor/plasteel/escape{dir = 8},/area/atmos) +"caX" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{dir = 1},/obj/machinery/meter,/turf/closed/wall/r_wall,/area/atmos) +"caY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/obj/machinery/door/poddoor/preopen{id = "atmos"; name = "atmos blast door"},/turf/open/floor/plasteel/delivery{name = "floor"},/area/atmos) +"caZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 9},/obj/machinery/door/poddoor/preopen{id = "atmos"; name = "atmos blast door"},/turf/open/floor/plasteel/delivery{name = "floor"},/area/atmos) +"cba" = (/turf/closed/wall/r_wall,/area/security/checkpoint/engineering) +"cbb" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -30},/turf/open/floor/plasteel,/area/atmos) +"cbc" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/camera{c_tag = "Atmospherics West"; dir = 8; network = list("SS13")},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel,/area/atmos) +"cbd" = (/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/machinery/atmospherics/components/binary/pump{dir = 0; name = "Air to Port"; on = 0},/obj/machinery/light{dir = 8},/turf/open/floor/plasteel,/area/atmos) +"cbe" = (/obj/machinery/light{dir = 4},/turf/open/floor/plasteel,/area/atmos) +"cbf" = (/obj/structure/door_assembly/door_assembly_mai,/turf/open/floor/plating,/area/maintenance/asmaint) +"cbg" = (/obj/structure/table/glass,/obj/item/device/radio/intercom{pixel_x = -25},/obj/machinery/light{dir = 8},/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/syringes,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/whitegreen/side{dir = 8},/area/medical/virology) +"cbh" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel/white,/area/medical/virology) +"cbi" = (/obj/structure/chair/office/light{dir = 4},/obj/effect/landmark/start{name = "Virologist"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/virology) +"cbj" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/obj/item/weapon/pen/red,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/whitegreen/side{dir = 4},/area/medical/virology) +"cbk" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/window/fulltile,/turf/open/floor/plating,/area/medical/virology) +"cbl" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/white,/area/medical/virology) +"cbm" = (/obj/structure/table,/turf/open/floor/plasteel/white,/area/medical/virology) +"cbn" = (/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/white,/area/medical/virology) +"cbo" = (/obj/effect/landmark{name = "revenantspawn"},/mob/living/simple_animal/slime,/turf/open/floor/engine,/area/toxins/xenobiology) +"cbp" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Containment Pen"; req_access_txt = "55"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/poddoor/preopen{id = "xenobio2"; name = "containment blast door"},/turf/open/floor/engine,/area/toxins/xenobiology) +"cbq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/window/northleft{dir = 4; name = "Containment Pen"; req_access_txt = "55"},/obj/machinery/door/poddoor/preopen{id = "xenobio7"; name = "containment blast door"},/turf/open/floor/engine,/area/toxins/xenobiology) +"cbr" = (/obj/structure/filingcabinet/chestdrawer,/turf/open/floor/plasteel/floorgrime,/area/toxins/misc_lab) +"cbs" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/general/visible,/obj/machinery/button/ignition{id = "testigniter"; pixel_x = -6; pixel_y = 2},/obj/machinery/button/door{id = "testlab"; name = "Test Chamber Blast Doors"; pixel_x = 4; pixel_y = 2; req_access_txt = "55"},/turf/open/floor/plasteel/floorgrime,/area/toxins/misc_lab) +"cbt" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/weapon/folder/white,/obj/item/weapon/pen,/obj/item/device/taperecorder{pixel_y = 0},/turf/open/floor/plasteel/floorgrime,/area/toxins/misc_lab) +"cbu" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 0; pixel_y = 6},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/floorgrime,/area/toxins/misc_lab) +"cbv" = (/obj/structure/rack,/obj/item/weapon/wrench,/obj/item/weapon/crowbar,/obj/machinery/computer/security/telescreen{name = "Test Chamber Moniter"; network = list("Test"); pixel_x = 0; pixel_y = -30},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel/floorgrime,/area/toxins/misc_lab) +"cbw" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/droneDispenser,/turf/open/floor/plasteel,/area/toxins/misc_lab) +"cbx" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/toxins/misc_lab) +"cby" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/toxins/misc_lab) +"cbz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/warning{dir = 4},/area/toxins/misc_lab) +"cbA" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/recharger{pixel_y = 4},/obj/item/weapon/paper/range,/turf/open/floor/plating/warnplate{dir = 6},/area/toxins/misc_lab) +"cbB" = (/obj/structure/table/reinforced,/obj/machinery/magnetic_controller{autolink = 1},/obj/structure/window/reinforced{dir = 1},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plating/warnplate{dir = 10},/area/toxins/misc_lab) +"cbC" = (/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/window/reinforced/tinted/fulltile,/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/asmaint2) +"cbD" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 4; name = "External Access"; req_access = null; req_access_txt = "13"},/turf/open/floor/plating,/area/maintenance/aft) +"cbE" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 8; name = "External Access"; req_access = null; req_access_txt = "13"},/turf/open/floor/plating,/area/maintenance/aft) +"cbF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/turf/open/floor/plasteel/floorgrime,/area/maintenance/aft) +"cbG" = (/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/aft) +"cbH" = (/obj/machinery/atmospherics/pipe/simple/general/visible,/turf/open/floor/plasteel/floorgrime,/area/maintenance/aft) +"cbI" = (/obj/machinery/telecomms/server/presets/common,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"cbJ" = (/obj/machinery/telecomms/processor/preset_four,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"cbK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"cbL" = (/obj/machinery/telecomms/bus/preset_three,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"cbM" = (/obj/machinery/telecomms/server/presets/command,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"cbN" = (/obj/structure/window/reinforced/fulltile,/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/turf/open/floor/plating,/area/tcommsat/computer) +"cbO" = (/obj/machinery/computer/message_monitor,/turf/open/floor/plasteel/yellow/side{dir = 8},/area/tcommsat/computer) +"cbP" = (/obj/structure/chair/office/dark{dir = 8},/turf/open/floor/plasteel,/area/tcommsat/computer) +"cbQ" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel,/area/tcommsat/computer) +"cbR" = (/obj/structure/table,/obj/item/weapon/paper_bin,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel,/area/tcommsat/computer) +"cbS" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/scrubber,/obj/machinery/light/small,/turf/open/floor/plasteel/escape{dir = 8},/area/atmos) +"cbT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 9},/turf/closed/wall/r_wall,/area/atmos) +"cbU" = (/obj/machinery/door/firedoor/heavy,/obj/machinery/door/airlock/atmos{name = "Atmospherics"; req_access_txt = "24"},/turf/open/floor/plasteel,/area/atmos) +"cbV" = (/obj/structure/sign/securearea,/turf/closed/wall/r_wall,/area/atmos) +"cbW" = (/obj/machinery/power/apc{dir = 8; name = "Engineering Security APC"; pixel_x = -24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/newscaster{pixel_y = 32},/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel/red/side{dir = 9},/area/security/checkpoint/engineering) +"cbX" = (/obj/machinery/requests_console{department = "Security"; departmentType = 5; pixel_y = 30},/obj/structure/closet,/turf/open/floor/plasteel/red/side{dir = 1},/area/security/checkpoint/engineering) +"cbY" = (/obj/structure/filingcabinet,/obj/machinery/airalarm{pixel_y = 23},/turf/open/floor/plasteel/red/side{dir = 5},/area/security/checkpoint/engineering) +"cbZ" = (/obj/structure/fireaxecabinet{pixel_x = -32; pixel_y = 0},/turf/open/floor/plasteel,/area/atmos) +"cca" = (/obj/structure/closet/secure_closet/atmospherics,/turf/open/floor/plasteel/warning{dir = 8},/area/atmos) +"ccb" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/canister,/turf/open/floor/plasteel/bot{dir = 2},/area/atmos) +"ccc" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 8},/turf/open/floor/plasteel/bot{dir = 2},/area/atmos) +"ccd" = (/obj/machinery/atmospherics/pipe/manifold/yellow/visible{dir = 8},/turf/open/floor/plasteel,/area/atmos) +"cce" = (/obj/machinery/camera{c_tag = "Atmospherics East"; dir = 8; network = list("SS13")},/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Plasma Outlet Pump"; on = 0},/turf/open/floor/plasteel/warning{dir = 5},/area/atmos) +"ccf" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; external_pressure_bound = 0; frequency = 1441; id_tag = "tox_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/open/floor/engine/plasma,/area/atmos) +"ccg" = (/turf/open/floor/engine/plasma,/area/atmos) +"cch" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/engine/plasma,/area/atmos) +"cci" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating,/area/maintenance/asmaint) +"ccj" = (/obj/structure/closet/crate,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/asmaint) +"cck" = (/obj/structure/table/glass,/obj/structure/reagent_dispensers/virusfood{density = 0; pixel_x = -30},/obj/item/weapon/book/manual/wiki/infections{pixel_y = 7},/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/spray/cleaner,/turf/open/floor/plasteel/whitegreen/side{dir = 8},/area/medical/virology) +"ccl" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/white,/area/medical/virology) +"ccm" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plasteel/white,/area/medical/virology) +"ccn" = (/obj/machinery/disposal/bin,/obj/structure/sign/deathsposal{pixel_x = 0; pixel_y = -32},/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/plasteel/whitegreen/side{dir = 4},/area/medical/virology) +"cco" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/medical/virology) +"ccp" = (/obj/structure/closet/secure_closet/personal/patient,/turf/open/floor/plasteel/white,/area/medical/virology) +"ccq" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/poddoor/preopen{id = "xenobio2"; name = "containment blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/toxins/xenobiology) +"ccr" = (/obj/structure/table/reinforced,/obj/machinery/button/door{id = "xenobio2"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel/warning{dir = 5},/area/toxins/xenobiology) +"ccs" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable,/obj/machinery/door/poddoor/preopen{id = "xenobio7"; name = "containment blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/toxins/xenobiology) +"cct" = (/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "testlab"; name = "test chamber blast door"},/obj/machinery/atmospherics/pipe/simple/general/visible,/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/toxins/misc_lab) +"ccu" = (/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "testlab"; name = "test chamber blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/toxins/misc_lab) +"ccv" = (/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "testlab"; name = "test chamber blast door"},/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/engine,/area/toxins/misc_lab) +"ccw" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel/bot{dir = 2},/area/toxins/misc_lab) +"ccx" = (/obj/structure/reagent_dispensers/watertank,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/bot{dir = 2},/area/toxins/misc_lab) +"ccy" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel,/area/toxins/misc_lab) +"ccz" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/warning{dir = 4},/area/toxins/misc_lab) +"ccA" = (/obj/machinery/door/airlock/glass_research{name = "Firing Range"; req_access_txt = "47"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/toxins/misc_lab) +"ccB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/warning/corner{dir = 8},/area/toxins/misc_lab) +"ccC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 1},/area/toxins/misc_lab) +"ccD" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/warning/corner{dir = 4},/area/toxins/misc_lab) +"ccE" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/asmaint2) +"ccF" = (/obj/structure/closet/crate,/obj/item/clothing/under/color/lightpurple,/obj/item/stack/spacecash/c200,/turf/open/floor/plating,/area/maintenance/asmaint2) +"ccG" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = -32; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/aft) +"ccH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 5},/turf/open/floor/plating,/area/maintenance/aft) +"ccI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/maintenance/aft) +"ccJ" = (/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Mix to Space"; on = 0},/turf/open/floor/plasteel/floorgrime,/area/maintenance/aft) +"ccK" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel/floorgrime,/area/maintenance/aft) +"ccL" = (/obj/machinery/door/airlock/maintenance{name = "Incinerator Access"; req_access_txt = "12"},/obj/structure/barricade/wooden{name = "wooden barricade (CLOSED)"},/turf/open/floor/plating,/area/maintenance/aft) +"ccM" = (/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"ccN" = (/obj/machinery/blackbox_recorder,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"ccO" = (/obj/machinery/telecomms/broadcaster/preset_right,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"ccP" = (/obj/machinery/telecomms/receiver/preset_right,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"ccQ" = (/obj/machinery/computer/telecomms/server{network = "tcommsat"},/turf/open/floor/plasteel/yellow/side{dir = 10},/area/tcommsat/computer) +"ccR" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/tcommsat/computer) +"ccS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel,/area/tcommsat/computer) +"ccT" = (/obj/structure/table,/obj/item/weapon/folder/blue,/obj/item/weapon/pen/blue,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/tcommsat/computer) +"ccU" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel/yellow/corner{dir = 2},/area/hallway/primary/aft) +"ccV" = (/turf/closed/wall,/area/engine/break_room) +"ccW" = (/turf/open/floor/plasteel/caution{dir = 9},/area/engine/break_room) +"ccX" = (/turf/open/floor/plasteel/caution{dir = 1},/area/engine/break_room) +"ccY" = (/turf/open/floor/plasteel/caution{dir = 5},/area/engine/break_room) +"ccZ" = (/turf/closed/wall,/area/security/checkpoint/engineering) +"cda" = (/obj/item/weapon/screwdriver{pixel_y = 10},/obj/machinery/button/door{desc = "A remote control-switch for the engineering security doors."; id = "Engineering"; name = "Engineering Lockdown"; pixel_x = -24; pixel_y = -6; req_access_txt = "10"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/item/device/radio/off,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/red/side{dir = 8},/area/security/checkpoint/engineering) +"cdb" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/security/checkpoint/engineering) +"cdc" = (/obj/machinery/camera{c_tag = "Security Post - Engineering"; dir = 8; network = list("SS13")},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/checkpoint/engineering) +"cdd" = (/obj/machinery/suit_storage_unit/atmos,/turf/open/floor/plasteel/warning{dir = 8},/area/atmos) +"cde" = (/obj/structure/sign/nosmoking_2,/turf/closed/wall,/area/atmos) +"cdf" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 4; initialize_directions = 11},/obj/machinery/meter,/turf/open/floor/plasteel,/area/atmos) +"cdg" = (/obj/machinery/computer/atmos_control/tank{frequency = 1441; input_tag = "tox_in"; name = "Plasma Supply Control"; output_tag = "tox_out"; sensors = list("tox_sensor" = "Tank")},/turf/open/floor/plasteel/warning{dir = 4},/area/atmos) +"cdh" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "tox_sensor"},/turf/open/floor/engine/plasma,/area/atmos) +"cdi" = (/obj/machinery/portable_atmospherics/canister/toxins,/turf/open/floor/engine/plasma,/area/atmos) +"cdj" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/engine/plasma,/area/atmos) +"cdk" = (/obj/structure/closet/l3closet/virology,/turf/open/floor/plasteel/whitegreen/side{dir = 2},/area/medical/virology) +"cdl" = (/obj/structure/closet/secure_closet/medical1,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/whitegreen/side{dir = 2},/area/medical/virology) +"cdm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall/r_wall,/area/medical/virology) +"cdn" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/camera{c_tag = "Xenobiology South"; dir = 4; network = list("SS13","RD")},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"cdo" = (/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"cdp" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 1},/turf/open/floor/engine,/area/toxins/misc_lab) +"cdq" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/engine,/area/toxins/misc_lab) +"cdr" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/toxins/misc_lab) +"cds" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plasteel/warning{dir = 4},/area/toxins/misc_lab) +"cdt" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/toxins/misc_lab) +"cdu" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/toxins/misc_lab) +"cdv" = (/obj/structure/rack,/obj/item/weapon/gun/energy/laser/practice,/obj/item/clothing/ears/earmuffs,/turf/open/floor/plasteel,/area/toxins/misc_lab) +"cdw" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/canister,/turf/open/floor/plating,/area/maintenance/aft) +"cdx" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) +"cdy" = (/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Mix to Port"; on = 0},/obj/machinery/light/small,/turf/open/floor/plating,/area/maintenance/aft) +"cdz" = (/obj/item/stack/tile/plasteel,/turf/open/space,/area/space/nearstation) +"cdA" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"cdB" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"cdC" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"cdD" = (/obj/structure/window/reinforced/fulltile,/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plating,/area/tcommsat/computer) +"cdE" = (/obj/structure/window/reinforced/fulltile,/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable,/turf/open/floor/plating,/area/tcommsat/computer) +"cdF" = (/obj/machinery/status_display,/turf/closed/wall,/area/tcommsat/computer) +"cdG" = (/obj/structure/window/reinforced/fulltile,/obj/structure/grille,/turf/open/floor/plating,/area/tcommsat/computer) +"cdH" = (/obj/machinery/door/airlock/glass_command{name = "Control Room"; req_access_txt = "19; 61"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/tcommsat/computer) +"cdI" = (/obj/structure/window/reinforced/fulltile,/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/tcommsat/computer) +"cdJ" = (/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/aft) +"cdK" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"cdL" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/yellow/corner{dir = 2},/area/hallway/primary/aft) +"cdM" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/obj/machinery/light{dir = 8},/turf/open/floor/plasteel,/area/engine/break_room) +"cdN" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel,/area/engine/break_room) +"cdO" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel,/area/engine/break_room) +"cdP" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/break_room) +"cdQ" = (/obj/machinery/door/airlock/glass_security{name = "Security Office"; req_access_txt = "63"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/security/checkpoint/engineering) +"cdR" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel/red/side{dir = 8},/area/security/checkpoint/engineering) +"cdS" = (/obj/structure/chair/office/dark,/obj/effect/landmark/start/depsec/engineering,/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/security/checkpoint/engineering) +"cdT" = (/obj/machinery/computer/secure_data,/obj/machinery/light_switch{pixel_x = 27},/turf/open/floor/plasteel/red/side{dir = 4},/area/security/checkpoint/engineering) +"cdU" = (/obj/machinery/power/apc{dir = 8; name = "Atmospherics APC"; pixel_x = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel,/area/atmos) +"cdV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/atmos) +"cdW" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 4; initialize_directions = 11},/obj/item/weapon/wrench,/turf/open/floor/plasteel,/area/atmos) +"cdX" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 8},/obj/machinery/meter,/turf/open/floor/plasteel,/area/atmos) +"cdY" = (/obj/machinery/atmospherics/components/trinary/filter{dir = 1; filter_type = "plasma"; on = 1},/turf/open/floor/plasteel,/area/atmos) +"cdZ" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/turf/open/floor/plasteel/warning{dir = 6},/area/atmos) +"cea" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 8; frequency = 1441; id = "tox_in"; pixel_y = 1},/turf/open/floor/engine/plasma,/area/atmos) +"ceb" = (/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/asmaint) +"cec" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plating,/area/maintenance/asmaint) +"ced" = (/obj/effect/decal/cleanable/cobweb/cobweb2,/obj/effect/spawner/lootdrop/maintenance,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plating,/area/maintenance/asmaint) +"cee" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/closed/wall/r_wall,/area/medical/virology) +"cef" = (/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/obj/item/weapon/wrench,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plating/warnplate{dir = 9},/area/maintenance/asmaint) +"ceg" = (/obj/machinery/atmospherics/components/binary/valve/open{icon_state = "mvalve_map"; dir = 4},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/asmaint) +"ceh" = (/obj/machinery/atmospherics/components/unary/tank/air{dir = 8},/turf/open/floor/plating/warnplate{dir = 5},/area/maintenance/asmaint) +"cei" = (/obj/structure/closet/emcloset,/obj/effect/decal/cleanable/cobweb,/turf/open/floor/plating,/area/maintenance/asmaint) +"cej" = (/obj/structure/rack{dir = 1},/obj/machinery/light/small{dir = 1},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/asmaint) +"cek" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/door/poddoor/preopen{id = "xenobio1"; name = "containment blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/toxins/xenobiology) +"cel" = (/obj/structure/window/reinforced,/obj/structure/table/reinforced,/obj/machinery/button/door{id = "xenobio6"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/warning{dir = 10},/area/toxins/xenobiology) +"cem" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "xenobio6"; name = "containment blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/toxins/xenobiology) +"cen" = (/obj/item/device/radio/intercom{pixel_x = -25},/turf/open/floor/engine,/area/toxins/misc_lab) +"ceo" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/toxins/misc_lab) +"cep" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/warning/corner{dir = 1},/area/toxins/misc_lab) +"ceq" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/warning/corner{dir = 8},/area/toxins/misc_lab) +"cer" = (/obj/structure/table,/obj/item/device/flashlight/lamp,/turf/open/floor/plating,/area/maintenance/asmaint2) +"ces" = (/obj/structure/chair/stool,/turf/open/floor/plating,/area/maintenance/asmaint2) +"cet" = (/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/asmaint2) +"ceu" = (/obj/item/weapon/weldingtool,/turf/open/floor/plating/airless,/area/space/nearstation) +"cev" = (/obj/machinery/power/terminal{dir = 4},/obj/machinery/ntnet_relay,/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"cew" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"cex" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"cey" = (/obj/machinery/telecomms/hub/preset,/turf/open/floor/plasteel/vault{dir = 8; name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"cez" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"ceA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"ceB" = (/obj/machinery/door/airlock/glass_engineering{cyclelinkeddir = 4; name = "Server Room"; req_access_txt = "61"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/vault{dir = 5},/area/tcommsat/computer) +"ceC" = (/turf/open/floor/plasteel/vault{dir = 5},/area/tcommsat/computer) +"ceD" = (/obj/machinery/door/airlock/glass_engineering{cyclelinkeddir = 8; name = "Server Room"; req_access_txt = "61"},/turf/open/floor/plasteel/vault{dir = 5},/area/tcommsat/computer) +"ceE" = (/turf/open/floor/plasteel/warning{dir = 8},/area/tcommsat/computer) +"ceF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/tcommsat/computer) +"ceG" = (/obj/structure/closet/emcloset,/obj/machinery/camera{c_tag = "Telecoms Monitoring"; dir = 8; network = list("SS13")},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/tcommsat/computer) +"ceH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/aft) +"ceI" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) +"ceJ" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/aft) +"ceK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"ceL" = (/turf/open/floor/plasteel/yellow/corner{dir = 2},/area/hallway/primary/aft) +"ceM" = (/obj/structure/table,/obj/item/clothing/glasses/meson,/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/open/floor/plasteel,/area/engine/break_room) +"ceN" = (/turf/open/floor/plasteel,/area/engine/break_room) +"ceO" = (/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/engine/break_room) +"ceP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel,/area/engine/break_room) +"ceQ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/security/checkpoint/engineering) +"ceR" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/side{dir = 10},/area/security/checkpoint/engineering) +"ceS" = (/obj/structure/table,/obj/item/weapon/book/manual/wiki/security_space_law,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel/red/side,/area/security/checkpoint/engineering) +"ceT" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/obj/structure/reagent_dispensers/peppertank{pixel_x = 30; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/red/side{dir = 6},/area/security/checkpoint/engineering) +"ceU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/security/checkpoint/engineering) +"ceV" = (/obj/machinery/requests_console{department = "Atmospherics"; departmentType = 4; name = "Atmos RC"; pixel_x = 30; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel,/area/atmos) +"ceW" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/camera{c_tag = "Atmospherics Central"; dir = 4; network = list("SS13")},/obj/machinery/atmospherics/components/binary/pump{dir = 0; name = "Port to Filter"; on = 0},/turf/open/floor/plasteel,/area/atmos) +"ceX" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 8},/obj/structure/chair/stool,/turf/open/floor/plasteel,/area/atmos) +"ceY" = (/obj/machinery/atmospherics/components/unary/thermomachine/heater{dir = 8},/turf/open/floor/plasteel,/area/atmos) +"ceZ" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/yellow/visible{icon_state = "intact"; dir = 5},/turf/open/space,/area/space/nearstation) +"cfa" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) +"cfb" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) +"cfc" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/yellow/visible{icon_state = "intact"; dir = 10},/turf/open/floor/plating,/area/maintenance/asmaint) +"cfd" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/asmaint) +"cfe" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plating,/area/maintenance/asmaint) +"cff" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/asmaint) +"cfg" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/asmaint) +"cfh" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/asmaint) +"cfi" = (/obj/structure/chair/stool{pixel_y = 8},/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating/warnplate{dir = 10},/area/maintenance/asmaint) +"cfj" = (/obj/machinery/atmospherics/components/binary/valve{dir = 4},/turf/open/floor/plating/warnplate{dir = 2},/area/maintenance/asmaint) +"cfk" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 8},/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plating/warnplate{dir = 6},/area/maintenance/asmaint) +"cfl" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/asmaint) +"cfm" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/asmaint) +"cfn" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Containment Pen"; req_access_txt = "55"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/poddoor/preopen{id = "xenobio1"; name = "containment blast door"},/turf/open/floor/engine,/area/toxins/xenobiology) +"cfo" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/window/northleft{dir = 4; name = "Containment Pen"; req_access_txt = "55"},/obj/machinery/door/poddoor/preopen{id = "xenobio6"; name = "containment blast door"},/turf/open/floor/engine,/area/toxins/xenobiology) +"cfp" = (/obj/machinery/sparker{id = "testigniter"; pixel_x = -25},/turf/open/floor/engine,/area/toxins/misc_lab) +"cfq" = (/obj/item/device/radio/beacon,/turf/open/floor/engine,/area/toxins/misc_lab) +"cfr" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/engine,/area/toxins/misc_lab) +"cfs" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/engine,/area/toxins/misc_lab) +"cft" = (/obj/machinery/door/poddoor/preopen{id = "testlab"; name = "test chamber blast door"},/obj/machinery/door/airlock/glass_research{cyclelinkeddir = 4; name = "Test Chamber"; req_access_txt = "47"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/engine,/area/toxins/misc_lab) +"cfu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/delivery{name = "floor"},/area/toxins/misc_lab) +"cfv" = (/obj/machinery/door/airlock/glass_research{cyclelinkeddir = 8; name = "Test Chamber"; req_access_txt = "47"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/delivery{name = "floor"},/area/toxins/misc_lab) +"cfw" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 8},/area/toxins/misc_lab) +"cfx" = (/obj/machinery/power/apc{dir = 4; name = "Testing Lab APC"; pixel_x = 26; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/floorgrime,/area/toxins/misc_lab) +"cfy" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel,/area/toxins/misc_lab) +"cfz" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/asmaint2) +"cfA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/asmaint2) +"cfB" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/turf/open/floor/plating,/area/maintenance/asmaint2) +"cfC" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/weapon/folder/white,/obj/item/weapon/pen,/turf/open/floor/plating,/area/maintenance/asmaint2) +"cfD" = (/obj/structure/closet/secure_closet/freezer/kitchen/maintenance,/turf/open/floor/plating,/area/maintenance/aft) +"cfE" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/maintenance/aft) +"cfF" = (/obj/item/stack/sheet/metal,/turf/open/floor/plating/airless,/area/space/nearstation) +"cfG" = (/obj/item/stack/cable_coil{amount = 5},/turf/open/floor/plating/airless,/area/space/nearstation) +"cfH" = (/obj/machinery/camera{c_tag = "Telecoms Server Room"; dir = 4; network = list("SS13")},/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"cfI" = (/obj/structure/window/reinforced/fulltile,/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable,/turf/open/floor/plating,/area/tcommsat/computer) +"cfJ" = (/obj/structure/window/reinforced/fulltile,/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating,/area/tcommsat/computer) +"cfK" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'SERVER ROOM'."; name = "SERVER ROOM"; pixel_y = 0},/turf/closed/wall,/area/tcommsat/computer) +"cfL" = (/turf/open/floor/plasteel,/area/tcommsat/computer) +"cfM" = (/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/tcommsat/computer) +"cfN" = (/obj/machinery/requests_console{announcementConsole = 1; department = "Telecoms Admin"; departmentType = 5; name = "Telecoms RC"; pixel_x = 30; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/tcommsat/computer) +"cfO" = (/obj/structure/disposalpipe/sortjunction{dir = 2; icon_state = "pipe-j2s"; sortType = 5},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/caution/corner{dir = 8},/area/hallway/primary/aft) +"cfP" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"cfQ" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/camera{c_tag = "Aft Primary Hallway 1"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = -22},/turf/open/floor/plasteel/yellow/corner{dir = 2},/area/hallway/primary/aft) +"cfR" = (/obj/machinery/power/apc{dir = 8; name = "Engineering Foyer APC"; pixel_x = -24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plasteel,/area/engine/break_room) +"cfS" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/engine/break_room) +"cfT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/engine/break_room) +"cfU" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/security/checkpoint/engineering) +"cfV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/turf/open/floor/plasteel,/area/atmos) +"cfW" = (/obj/structure/closet/wardrobe/atmospherics_yellow,/turf/open/floor/plasteel,/area/atmos) +"cfX" = (/obj/machinery/space_heater,/turf/open/floor/plasteel/warning{dir = 10},/area/atmos) +"cfY" = (/obj/machinery/space_heater,/turf/open/floor/plasteel/warning{dir = 6},/area/atmos) +"cfZ" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{dir = 8},/turf/open/floor/plasteel,/area/atmos) +"cga" = (/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Port to Filter"; on = 0},/turf/open/floor/plasteel,/area/atmos) +"cgb" = (/obj/machinery/atmospherics/pipe/manifold/general/visible,/obj/item/weapon/cigbutt,/turf/open/floor/plasteel,/area/atmos) +"cgc" = (/obj/machinery/atmospherics/components/unary/thermomachine/freezer{dir = 8},/turf/open/floor/plasteel,/area/atmos) +"cgd" = (/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "CO2 Outlet Pump"; on = 0},/turf/open/floor/plasteel/yellow/side{dir = 5},/area/atmos) +"cge" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; external_pressure_bound = 0; frequency = 1441; id_tag = "co2_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/open/floor/engine/co2,/area/atmos) +"cgf" = (/turf/open/floor/engine/co2,/area/atmos) +"cgg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/yellow/visible,/turf/open/floor/plating,/area/maintenance/asmaint) +"cgh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/asmaint) +"cgi" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/asmaint) +"cgj" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/asmaint) +"cgk" = (/obj/machinery/door/airlock/atmos{name = "Atmospherics Maintenance"; req_access_txt = "12;24"},/turf/open/floor/plating,/area/maintenance/asmaint) +"cgl" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/asmaint) +"cgm" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/asmaint) +"cgn" = (/obj/structure/grille,/obj/structure/cable,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/poddoor/preopen{id = "xenobio1"; name = "containment blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/toxins/xenobiology) +"cgo" = (/obj/structure/table/reinforced,/obj/machinery/button/door{id = "xenobio1"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/light,/turf/open/floor/plasteel/warning{dir = 5},/area/toxins/xenobiology) +"cgp" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"cgq" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable,/obj/machinery/door/poddoor/preopen{id = "xenobio6"; name = "containment blast door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/engine,/area/toxins/xenobiology) +"cgr" = (/obj/machinery/camera{c_tag = "Testing Chamber"; dir = 1; network = list("Test","RD"); pixel_x = 0},/obj/machinery/light,/turf/open/floor/engine,/area/toxins/misc_lab) +"cgs" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/warning/corner{dir = 4},/area/toxins/misc_lab) +"cgt" = (/obj/machinery/camera{c_tag = "Testing Lab South"; dir = 8; network = list("SS13","RD"); pixel_y = -22},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/toxins/misc_lab) +"cgu" = (/obj/structure/closet/crate,/obj/item/target,/obj/item/target,/obj/item/target,/turf/open/floor/plasteel,/area/toxins/misc_lab) +"cgv" = (/obj/structure/closet/crate,/obj/item/target/syndicate,/obj/item/target/alien,/obj/item/target/clown,/turf/open/floor/plasteel,/area/toxins/misc_lab) +"cgw" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/solar{id = "portsolar"; name = "Port Solar Array"},/turf/open/floor/plasteel/airless/solarpanel,/area/solar/port) +"cgx" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port) +"cgy" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/solar{id = "portsolar"; name = "Port Solar Array"},/turf/open/floor/plasteel/airless/solarpanel,/area/solar/port) +"cgz" = (/obj/structure/table,/obj/machinery/microwave,/turf/open/floor/plating,/area/maintenance/aft) +"cgA" = (/obj/structure/sink/kitchen{dir = 8; pixel_x = 11},/turf/open/floor/plating,/area/maintenance/aft) +"cgB" = (/obj/item/clothing/head/hardhat,/turf/open/floor/plating/airless,/area/space/nearstation) +"cgC" = (/obj/machinery/message_server,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"cgD" = (/obj/machinery/telecomms/broadcaster/preset_left,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"cgE" = (/obj/machinery/telecomms/receiver/preset_left,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"cgF" = (/obj/structure/table,/obj/item/device/multitool,/turf/open/floor/plasteel/yellow/side{dir = 9},/area/tcommsat/computer) +"cgG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/tcommsat/computer) +"cgH" = (/obj/machinery/light_switch{pixel_x = 27},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel,/area/tcommsat/computer) +"cgI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall/r_wall,/area/tcommsat/computer) +"cgJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/yellow/side{dir = 9},/area/hallway/primary/aft) +"cgK" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/hallway/primary/aft) +"cgL" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/yellow/corner{dir = 1},/area/hallway/primary/aft) +"cgM" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"cgN" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/yellow/corner{dir = 4},/area/hallway/primary/aft) +"cgO" = (/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/yellow/side{dir = 5},/area/hallway/primary/aft) +"cgP" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/engine/break_room) +"cgQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/break_room) +"cgR" = (/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel,/area/engine/break_room) +"cgS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/engine/break_room) +"cgT" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/break_room) +"cgU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/engine/break_room) +"cgV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel,/area/engine/break_room) +"cgW" = (/obj/machinery/vending/snack,/turf/open/floor/plasteel,/area/engine/break_room) +"cgX" = (/turf/closed/wall/r_wall,/area/engine/engineering) +"cgY" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/plasteel,/area/atmos) +"cgZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 5},/turf/open/floor/plasteel,/area/atmos) +"cha" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{dir = 1},/obj/machinery/meter,/turf/open/floor/plasteel,/area/atmos) +"chb" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{dir = 1},/turf/open/floor/plasteel,/area/atmos) +"chc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 9},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/atmos) +"chd" = (/obj/machinery/atmospherics/components/binary/pump{dir = 4; name = "N2 to Pure"; on = 0},/turf/open/floor/plasteel,/area/atmos) +"che" = (/obj/machinery/computer/atmos_control/tank{frequency = 1441; input_tag = "co2_in"; name = "Carbon Dioxide Supply Control"; output_tag = "co2_out"; sensors = list("co2_sensor" = "Tank")},/turf/open/floor/plasteel/yellow/side{dir = 4},/area/atmos) +"chf" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "co2_sensor"},/turf/open/floor/engine/co2,/area/atmos) +"chg" = (/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/turf/open/floor/engine/co2,/area/atmos) +"chh" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/engine/co2,/area/atmos) +"chi" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/yellow/visible,/turf/open/floor/plating,/area/maintenance/asmaint) +"chj" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/maintenance/asmaint) +"chk" = (/obj/structure/sign/nosmoking_2{pixel_x = 0; pixel_y = 28},/turf/open/floor/plating,/area/maintenance/asmaint) +"chl" = (/obj/structure/chair/stool,/obj/effect/decal/cleanable/cobweb{icon_state = "cobweb2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/asmaint) +"chm" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/asmaint) +"chn" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) +"cho" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) +"chp" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/asmaint) +"chq" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) +"chr" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plating,/area/maintenance/asmaint) +"chs" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/asmaint) +"cht" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/asmaint2) +"chu" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"chv" = (/obj/structure/rack,/obj/item/clothing/shoes/winterboots,/obj/item/clothing/suit/hooded/wintercoat,/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"chw" = (/obj/machinery/portable_atmospherics/pump,/turf/open/floor/plasteel/bot{dir = 2},/area/toxins/misc_lab) +"chx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/toxins/misc_lab) +"chy" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/floorgrime,/area/toxins/misc_lab) +"chz" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/maintenance/asmaint2) +"chA" = (/obj/structure/table,/obj/effect/decal/cleanable/cobweb,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/asmaint2) +"chB" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/asmaint2) +"chC" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port) +"chD" = (/obj/structure/table,/obj/item/weapon/kitchen/rollingpin,/obj/item/weapon/reagent_containers/food/condiment/enzyme,/obj/item/weapon/reagent_containers/food/condiment/sugar,/turf/open/floor/plating,/area/maintenance/aft) +"chE" = (/obj/structure/chair/stool,/turf/open/floor/plating,/area/maintenance/aft) +"chF" = (/obj/machinery/light/small{dir = 1},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft) +"chG" = (/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plating,/area/maintenance/aft) +"chH" = (/obj/machinery/telecomms/server/presets/supply,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"chI" = (/obj/machinery/telecomms/bus/preset_two,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"chJ" = (/obj/machinery/telecomms/processor/preset_one,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"chK" = (/obj/machinery/telecomms/server/presets/medical,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"chL" = (/obj/machinery/computer/telecomms/monitor{network = "tcommsat"},/turf/open/floor/plasteel/yellow/side{dir = 8},/area/tcommsat/computer) +"chM" = (/obj/structure/chair/office/dark{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel,/area/tcommsat/computer) +"chN" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel,/area/tcommsat/computer) +"chO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/tcommsat/computer) +"chP" = (/obj/machinery/door/airlock/engineering{name = "Telecommunications"; req_access_txt = "61"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/tcommsat/computer) +"chQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/yellow/side{dir = 8},/area/hallway/primary/aft) +"chR" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"chS" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"chT" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=AIE"; location = "AftH"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"chU" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/aft) +"chV" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/yellow/side{dir = 4},/area/hallway/primary/aft) +"chW" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access_txt = "32"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/break_room) +"chX" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/break_room) +"chY" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/break_room) +"chZ" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,/turf/open/floor/plasteel,/area/engine/break_room) +"cia" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/break_room) +"cib" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/break_room) +"cic" = (/obj/machinery/vending/cigarette{pixel_x = 0; pixel_y = 0},/turf/open/floor/plasteel,/area/engine/break_room) +"cid" = (/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/open/floor/plasteel,/area/atmos) +"cie" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/turf/open/floor/plasteel,/area/atmos) +"cif" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/obj/machinery/meter,/turf/open/floor/plasteel,/area/atmos) +"cig" = (/obj/machinery/atmospherics/pipe/manifold/cyan/visible,/turf/open/floor/plasteel,/area/atmos) +"cih" = (/obj/machinery/atmospherics/components/trinary/mixer{dir = 4; node1_concentration = 0.8; node2_concentration = 0.2; on = 1; pixel_x = 0; pixel_y = 0; target_pressure = 4500},/turf/open/floor/plasteel,/area/atmos) +"cii" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "O2 to Pure"; on = 0},/turf/open/floor/plasteel,/area/atmos) +"cij" = (/obj/machinery/atmospherics/components/trinary/filter{dir = 1; filter_type = "co2"; on = 1},/turf/open/floor/plasteel,/area/atmos) +"cik" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/turf/open/floor/plasteel/yellow/side{dir = 6},/area/atmos) +"cil" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 8; frequency = 1441; id = "co2_in"; pixel_y = 1},/turf/open/floor/engine/co2,/area/atmos) +"cim" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/yellow/visible,/turf/open/floor/plating,/area/maintenance/asmaint) +"cin" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/asmaint) +"cio" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) +"cip" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plating,/area/maintenance/asmaint) +"ciq" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/asmaint) +"cir" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/asmaint) +"cis" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) +"cit" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/asmaint) +"ciu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/mob/living/simple_animal/mouse,/turf/open/floor/plating,/area/maintenance/asmaint) +"civ" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) +"ciw" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/asmaint) +"cix" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/asmaint2) +"ciy" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; external_pressure_bound = 140; on = 1; pressure_checks = 0},/obj/machinery/camera{c_tag = "Xenobiology Kill Room"; dir = 4; network = list("SS13","RD")},/turf/open/floor/bluegrid{name = "Killroom Floor"; initial_gas_mix = "n2=500;TEMP=80"},/area/toxins/xenobiology) +"ciz" = (/turf/open/floor/bluegrid{name = "Killroom Floor"; initial_gas_mix = "n2=500;TEMP=80"},/area/toxins/xenobiology) +"ciA" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; external_pressure_bound = 120; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/open/floor/bluegrid{name = "Killroom Floor"; initial_gas_mix = "n2=500;TEMP=80"},/area/toxins/xenobiology) +"ciB" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/sign/biohazard,/turf/open/floor/plating,/area/toxins/xenobiology) +"ciC" = (/obj/machinery/atmospherics/components/unary/thermomachine/freezer{target_temperature = 80; dir = 2; on = 1},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"ciD" = (/obj/structure/closet/emcloset,/obj/effect/decal/cleanable/cobweb,/turf/open/floor/plating,/area/maintenance/asmaint2) +"ciE" = (/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/maintenance/asmaint2) +"ciF" = (/obj/machinery/atmospherics/components/unary/tank/air,/turf/open/floor/plating,/area/maintenance/asmaint2) +"ciG" = (/obj/machinery/portable_atmospherics/scrubber,/turf/open/floor/plasteel/bot{dir = 2},/area/toxins/misc_lab) +"ciH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/toxins/misc_lab) +"ciI" = (/obj/structure/rack{dir = 1},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/asmaint2) +"ciJ" = (/obj/structure/table,/turf/open/floor/plating,/area/maintenance/asmaint2) +"ciK" = (/obj/structure/table,/obj/item/weapon/kitchen/knife,/obj/item/weapon/storage/box/donkpockets,/turf/open/floor/plating,/area/maintenance/aft) +"ciL" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_y = 2},/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = 2},/obj/item/weapon/reagent_containers/food/snacks/mint{pixel_y = 9},/turf/open/floor/plating,/area/maintenance/aft) +"ciM" = (/obj/machinery/power/apc{dir = 8; name = "Engineering Maintenance APC"; pixel_x = -25; pixel_y = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating,/area/maintenance/aft) +"ciN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating,/area/maintenance/aft) +"ciO" = (/obj/effect/spawner/lootdrop/maintenance,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plating,/area/maintenance/aft) +"ciP" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating,/area/maintenance/aft) +"ciQ" = (/obj/machinery/telecomms/server/presets/service,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"ciR" = (/obj/machinery/telecomms/processor/preset_two,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"ciS" = (/obj/structure/sign/nosmoking_2{pixel_y = -32},/obj/machinery/light,/turf/open/floor/bluegrid{name = "Mainframe Base"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"ciT" = (/obj/machinery/telecomms/bus/preset_one,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"ciU" = (/obj/machinery/telecomms/server/presets/science,/turf/open/floor/plasteel/black{name = "Mainframe Floor"; initial_gas_mix = "n2=100;TEMP=80"},/area/tcommsat/server) +"ciV" = (/obj/structure/window/reinforced/fulltile,/obj/structure/grille,/obj/structure/cable,/turf/open/floor/plating,/area/tcommsat/computer) +"ciW" = (/obj/structure/table,/obj/item/device/radio/off,/turf/open/floor/plasteel/yellow/side{dir = 10},/area/tcommsat/computer) +"ciX" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -35},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/tcommsat/computer) +"ciY" = (/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/machinery/light,/obj/structure/filingcabinet/chestdrawer,/turf/open/floor/plasteel,/area/tcommsat/computer) +"ciZ" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/turf/open/floor/plasteel,/area/tcommsat/computer) +"cja" = (/obj/structure/sign/securearea{pixel_x = -32; pixel_y = 0},/turf/open/floor/plasteel/yellow/side{dir = 10},/area/hallway/primary/aft) +"cjb" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/yellow/side,/area/hallway/primary/aft) +"cjc" = (/turf/open/floor/plasteel/yellow/side,/area/hallway/primary/aft) +"cjd" = (/obj/machinery/light,/turf/open/floor/plasteel/yellow/side,/area/hallway/primary/aft) +"cje" = (/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/yellow/side,/area/hallway/primary/aft) +"cjf" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/yellow/side{dir = 6},/area/hallway/primary/aft) +"cjg" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/break_room) +"cjh" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/engine/break_room) +"cji" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/engine/break_room) +"cjj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/engine/break_room) +"cjk" = (/obj/machinery/camera{c_tag = "Engineering Foyer"; dir = 1},/obj/structure/noticeboard{dir = 1; pixel_y = -27},/turf/open/floor/plasteel,/area/engine/break_room) +"cjl" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/engine/break_room) +"cjm" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel,/area/engine/break_room) +"cjn" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/break_room) +"cjo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall/r_wall,/area/engine/engineering) +"cjp" = (/obj/machinery/camera{c_tag = "Atmospherics South West"; dir = 4; network = list("SS13")},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/atmos) +"cjq" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible,/turf/open/floor/plasteel,/area/atmos) +"cjr" = (/obj/machinery/atmospherics/components/binary/valve/digital{name = "Waste Release"},/turf/open/floor/plasteel,/area/atmos) +"cjs" = (/obj/machinery/light{dir = 4},/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 6},/turf/open/floor/plasteel,/area/atmos) +"cjt" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 9},/turf/open/floor/plating,/area/atmos) +"cju" = (/obj/machinery/power/apc{dir = 2; name = "Incinerator APC"; pixel_x = 0; pixel_y = -24},/obj/structure/cable,/obj/machinery/atmospherics/pipe/simple/yellow/visible,/turf/open/floor/plating,/area/maintenance/incinerator) +"cjv" = (/obj/structure/sign/fire{pixel_x = 0; pixel_y = -32},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/asmaint) +"cjw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plating/warnplate,/area/maintenance/asmaint) +"cjx" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) +"cjy" = (/obj/structure/closet/emcloset,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plating,/area/maintenance/asmaint) +"cjz" = (/obj/structure/sign/biohazard,/turf/closed/wall,/area/maintenance/asmaint) +"cjA" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/maintenance/asmaint) +"cjB" = (/obj/structure/disposalpipe/segment,/turf/closed/wall,/area/maintenance/asmaint) +"cjC" = (/obj/structure/disposalpipe/segment,/obj/machinery/light/small,/turf/open/floor/plating,/area/maintenance/asmaint) +"cjD" = (/obj/structure/disposalpipe/segment,/obj/structure/closet/l3closet,/turf/open/floor/plating,/area/maintenance/asmaint) +"cjE" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 5},/turf/open/floor/bluegrid{name = "Killroom Floor"; initial_gas_mix = "n2=500;TEMP=80"},/area/toxins/xenobiology) +"cjF" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/open/floor/bluegrid{name = "Killroom Floor"; initial_gas_mix = "n2=500;TEMP=80"},/area/toxins/xenobiology) +"cjG" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/manifold/general/visible,/turf/open/floor/bluegrid{name = "Killroom Floor"; initial_gas_mix = "n2=500;TEMP=80"},/area/toxins/xenobiology) +"cjH" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Kill Chamber"; req_access_txt = "55"},/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/open/floor/plating,/area/toxins/xenobiology) +"cjI" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"cjJ" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"cjK" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 9},/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/weapon/pen,/turf/open/floor/plasteel/white,/area/toxins/xenobiology) +"cjL" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/asmaint2) +"cjM" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold/cyan/hidden,/turf/open/floor/plating,/area/maintenance/asmaint2) +"cjN" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden{icon_state = "intact"; dir = 9},/turf/open/floor/plating,/area/maintenance/asmaint2) +"cjO" = (/obj/machinery/portable_atmospherics/canister,/turf/open/floor/plasteel/bot{dir = 2},/area/toxins/misc_lab) +"cjP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/toxins/misc_lab) +"cjQ" = (/obj/item/stack/sheet/cardboard,/turf/open/floor/plating,/area/maintenance/asmaint2) +"cjR" = (/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plating,/area/maintenance/asmaint2) +"cjS" = (/obj/machinery/light/small,/turf/open/floor/plating,/area/maintenance/asmaint2) +"cjT" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = -32},/turf/open/floor/plating,/area/maintenance/asmaint2) +"cjU" = (/obj/machinery/processor,/turf/open/floor/plating,/area/maintenance/aft) +"cjV" = (/obj/machinery/light/small,/turf/open/floor/plating,/area/maintenance/aft) +"cjW" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/aft) +"cjX" = (/obj/machinery/space_heater,/turf/open/floor/plating,/area/maintenance/aft) +"cjY" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating,/area/maintenance/aft) +"cjZ" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/aft) +"cka" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/aft) +"ckb" = (/turf/closed/wall/r_wall,/area/engine/chiefs_office) +"ckc" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/poddoor/preopen{id = "Engineering"; name = "engineering security door"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/chiefs_office) +"ckd" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/disposalpipe/segment,/obj/machinery/door/poddoor/preopen{id = "Engineering"; name = "engineering security door"},/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/engine/chiefs_office) +"cke" = (/obj/machinery/door/poddoor/preopen{id = "Engineering"; name = "engineering security door"},/obj/machinery/door/airlock/glass_command{name = "Chief Engineer"; req_access_txt = "56"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/chiefs_office) +"ckf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/yellow/side{dir = 10},/area/engine/break_room) +"ckg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/yellow/side,/area/engine/break_room) +"ckh" = (/obj/machinery/light,/turf/open/floor/plasteel/yellow/side{dir = 6},/area/engine/break_room) +"cki" = (/obj/machinery/atmospherics/components/trinary/filter{dir = 2; filter_type = "n2"; on = 1},/turf/open/floor/plasteel,/area/atmos) +"ckj" = (/turf/closed/wall,/area/maintenance/incinerator) +"ckk" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible,/turf/closed/wall,/area/maintenance/incinerator) +"ckl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall,/area/maintenance/incinerator) +"ckm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/airlock/atmos{name = "Turbine Access"; req_access_txt = "32"},/turf/open/floor/plating,/area/maintenance/incinerator) +"ckn" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/obj/item/toy/minimeteor,/obj/item/weapon/poster/contraband,/turf/open/floor/plating,/area/maintenance/asmaint) +"cko" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance,/obj/item/roller,/turf/open/floor/plating,/area/maintenance/asmaint) +"ckp" = (/obj/structure/disposalpipe/segment,/obj/structure/rack{dir = 1},/obj/effect/spawner/lootdrop/maintenance,/obj/item/weapon/reagent_containers/food/snacks/donkpocket,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/asmaint) +"ckq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/weapon/c_tube,/turf/open/floor/plating,/area/maintenance/asmaint) +"ckr" = (/obj/structure/mopbucket,/obj/item/weapon/caution,/turf/open/floor/plating,/area/maintenance/asmaint) +"cks" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/toxins/xenobiology) +"ckt" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/toxins/xenobiology) +"cku" = (/obj/machinery/door/airlock/maintenance{name = "Air Supply Maintenance"; req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/asmaint2) +"ckv" = (/obj/machinery/door/airlock/maintenance{name = "Testing Lab Maintenance"; req_access_txt = "47"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/toxins/misc_lab) +"ckw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/toxins/misc_lab) +"ckx" = (/obj/structure/closet/cardboard,/turf/open/floor/plating,/area/maintenance/asmaint2) +"cky" = (/obj/machinery/door/airlock/maintenance{name = "Firefighting equipment"; req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/asmaint2) +"ckz" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating/airless,/area/maintenance/portsolar) +"ckA" = (/turf/closed/wall/r_wall,/area/maintenance/portsolar) +"ckB" = (/obj/structure/grille,/turf/open/floor/plating,/area/maintenance/aft) +"ckC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/aft) +"ckD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/closed/wall,/area/maintenance/aft) +"ckE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) +"ckF" = (/obj/structure/closet/wardrobe/black,/obj/effect/decal/cleanable/cobweb,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/aft) +"ckG" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) +"ckH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) +"ckI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) +"ckJ" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plating,/area/maintenance/aft) +"ckK" = (/obj/machinery/suit_storage_unit/ce,/turf/open/floor/plasteel/warnwhite{dir = 4},/area/engine/chiefs_office) +"ckL" = (/obj/machinery/holopad,/turf/open/floor/plasteel/neutral{dir = 2},/area/engine/chiefs_office) +"ckM" = (/obj/machinery/light{dir = 1},/obj/machinery/keycard_auth{pixel_x = 0; pixel_y = 24},/turf/open/floor/plasteel/neutral{dir = 2},/area/engine/chiefs_office) +"ckN" = (/turf/open/floor/plasteel/neutral{dir = 2},/area/engine/chiefs_office) +"ckO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/neutral{dir = 2},/area/engine/chiefs_office) +"ckP" = (/obj/machinery/power/apc{cell_type = 5000; dir = 4; name = "CE Office APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/neutral{dir = 2},/area/engine/chiefs_office) +"ckQ" = (/obj/structure/sign/securearea,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/engine/engineering) +"ckR" = (/obj/machinery/door/airlock/engineering{cyclelinkeddir = 2; name = "Engine Room"; req_access_txt = "10"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/engine/engineering) +"ckS" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 0; pixel_y = 0},/turf/closed/wall,/area/engine/engineering) +"ckT" = (/obj/machinery/portable_atmospherics/scrubber,/turf/open/floor/plasteel,/area/atmos) +"ckU" = (/obj/machinery/atmospherics/pipe/simple/green/visible,/obj/machinery/portable_atmospherics/pump,/turf/open/floor/plasteel,/area/atmos) +"ckV" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/cyan/visible,/turf/open/floor/plasteel,/area/atmos) +"ckW" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/turf/open/floor/plasteel,/area/atmos) +"ckX" = (/obj/machinery/atmospherics/components/trinary/filter{dir = 4; filter_type = "o2"; on = 1},/turf/open/floor/plasteel,/area/atmos) +"ckY" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/turf/open/floor/plasteel,/area/atmos) +"ckZ" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4; initialize_directions = 12},/turf/open/floor/plasteel,/area/atmos) +"cla" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 9},/turf/open/floor/plasteel,/area/atmos) +"clb" = (/obj/effect/decal/cleanable/cobweb,/obj/structure/reagent_dispensers/watertank,/obj/item/weapon/extinguisher,/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"clc" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/components/binary/pump{dir = 2; name = "atmospherics mix pump"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cld" = (/obj/machinery/light_switch{pixel_x = 0; pixel_y = 26},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cle" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plating/warnplate{dir = 1},/area/maintenance/incinerator) +"clf" = (/obj/machinery/disposal/bin,/obj/structure/sign/deathsposal{pixel_x = 0; pixel_y = 32},/obj/structure/disposalpipe/trunk,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/incinerator) +"clg" = (/obj/machinery/power/smes{capacity = 9e+006; charge = 10000},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/effect/decal/cleanable/cobweb{icon_state = "cobweb2"},/turf/open/floor/plating,/area/maintenance/incinerator) +"clh" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/asmaint) +"cli" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/asmaint) +"clj" = (/obj/structure/disposalpipe/segment,/obj/structure/grille/broken,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) +"clk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) +"cll" = (/obj/structure/disposalpipe/segment,/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) +"clm" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) +"cln" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/barricade/wooden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) +"clo" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/asmaint2) +"clp" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plating/airless,/area/space/nearstation) +"clq" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating,/area/maintenance/asmaint2) +"clr" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plating,/area/maintenance/asmaint2) +"cls" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint2) +"clt" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/asmaint2) +"clu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/maintenance/asmaint2) +"clv" = (/obj/machinery/space_heater,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint2) +"clw" = (/obj/structure/sign/securearea{pixel_y = 32},/obj/effect/spawner/lootdrop/maintenance,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint2) +"clx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/asmaint2) +"cly" = (/obj/structure/rack{dir = 1},/obj/effect/decal/cleanable/cobweb/cobweb2,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/asmaint2) +"clz" = (/obj/machinery/door/airlock/maintenance{name = "Research Delivery access"; req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/asmaint2) +"clA" = (/obj/machinery/light/small{dir = 1},/obj/structure/chair/stool,/turf/open/floor/plating,/area/maintenance/asmaint2) +"clB" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plating,/area/maintenance/asmaint2) +"clC" = (/obj/structure/cable,/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port) +"clD" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = -32; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/portsolar) +"clE" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/maintenance/portsolar) +"clF" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/smes,/turf/open/floor/plating,/area/maintenance/portsolar) +"clG" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 0},/turf/closed/wall/r_wall,/area/maintenance/portsolar) +"clH" = (/obj/machinery/camera{c_tag = "Aft Port Solar Access"; dir = 4},/obj/machinery/light/small{dir = 8},/obj/structure/closet/emcloset,/turf/open/floor/plating,/area/maintenance/aft) +"clI" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating,/area/maintenance/aft) +"clJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating,/area/maintenance/aft) +"clK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/aft) +"clL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/aft) +"clM" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/aft) +"clN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/aft) +"clO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/maintenance/aft) +"clP" = (/obj/machinery/computer/atmos_alert,/obj/machinery/requests_console{announcementConsole = 1; department = "Chief Engineer's Desk"; departmentType = 3; name = "Chief Engineer RC"; pixel_x = -32; pixel_y = 0},/turf/open/floor/plasteel/neutral{dir = 2},/area/engine/chiefs_office) +"clQ" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/obj/item/weapon/lighter,/obj/item/clothing/glasses/meson{pixel_y = 4},/obj/item/weapon/stamp/ce,/obj/item/weapon/stock_parts/cell/high/plus,/turf/open/floor/plasteel/neutral{dir = 2},/area/engine/chiefs_office) +"clR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/neutral{dir = 2},/area/engine/chiefs_office) +"clS" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/neutral{dir = 2},/area/engine/chiefs_office) +"clT" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/chiefs_office) +"clU" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/engine/engineering) +"clV" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) +"clW" = (/obj/machinery/camera{c_tag = "Engineering Access"},/obj/structure/closet/radiation,/turf/open/floor/plasteel,/area/engine/engineering) +"clX" = (/obj/machinery/atmospherics/pipe/simple/green/visible,/obj/machinery/portable_atmospherics/pump,/turf/open/floor/plasteel/red/side{dir = 10},/area/atmos) +"clY" = (/obj/machinery/computer/atmos_control/tank{frequency = 1441; input_tag = "n2_in"; name = "Nitrogen Supply Control"; output_tag = "n2_out"; sensors = list("n2_sensor" = "Tank")},/turf/open/floor/plasteel/red/side,/area/atmos) +"clZ" = (/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "N2 Outlet Pump"; on = 1},/turf/open/floor/plasteel/red/side{dir = 6},/area/atmos) +"cma" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/turf/open/floor/plasteel,/area/atmos) +"cmb" = (/obj/machinery/atmospherics/pipe/simple/green/visible,/turf/open/floor/plasteel/blue/side{dir = 10},/area/atmos) +"cmc" = (/obj/machinery/computer/atmos_control/tank{frequency = 1441; input_tag = "o2_in"; name = "Oxygen Supply Control"; output_tag = "o2_out"; sensors = list("o2_sensor" = "Tank")},/turf/open/floor/plasteel/blue/side{dir = 0},/area/atmos) +"cmd" = (/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "O2 Outlet Pump"; on = 1},/turf/open/floor/plasteel/blue/side{dir = 6},/area/atmos) +"cme" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible,/turf/open/floor/plasteel/arrival{dir = 10},/area/atmos) +"cmf" = (/obj/machinery/computer/atmos_control/tank{frequency = 1441; input_tag = "air_in"; name = "Mixed Air Supply Control"; output_tag = "air_out"; sensors = list("air_sensor" = "Tank")},/turf/open/floor/plasteel/arrival,/area/atmos) +"cmg" = (/obj/machinery/camera{c_tag = "Atmospherics South East"; dir = 1},/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "Air Outlet Pump"; on = 1},/turf/open/floor/plasteel/arrival{dir = 6},/area/atmos) +"cmh" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 4; name = "Atmospherics External Airlock"; req_access_txt = "24"},/turf/open/floor/plating,/area/atmos) +"cmi" = (/turf/open/floor/plating,/area/atmos) +"cmj" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 8; name = "Atmospherics External Airlock"; req_access_txt = "24"},/turf/open/floor/plating,/area/atmos) +"cmk" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 6},/turf/open/space,/area/space/nearstation) +"cml" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/turf/closed/wall,/area/maintenance/incinerator) +"cmm" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/obj/structure/reagent_dispensers/fueltank,/obj/item/weapon/storage/toolbox/emergency,/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cmn" = (/obj/machinery/atmospherics/components/binary/pump{dir = 8; name = "Mix to MiniSat"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cmo" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 4; initialize_directions = 11},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cmp" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cmq" = (/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cmr" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cms" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/machinery/airalarm{desc = "This particular atmos control unit appears to have no access restrictions."; dir = 8; icon_state = "alarm0"; locked = 0; name = "all-access air alarm"; pixel_x = 24; req_access = "0"; req_one_access = "0"},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cmt" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/asmaint2) +"cmu" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/asmaint2) +"cmv" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/asmaint2) +"cmw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/asmaint2) +"cmx" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/asmaint2) +"cmy" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/asmaint2) +"cmz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint2) +"cmA" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/asmaint2) +"cmB" = (/obj/structure/reagent_dispensers/watertank,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint2) +"cmC" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/asmaint2) +"cmD" = (/obj/structure/rack{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/spawner/lootdrop/maintenance,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint2) +"cmE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/asmaint2) +"cmF" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint2) +"cmG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plating,/area/maintenance/asmaint2) +"cmH" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/asmaint2) +"cmI" = (/obj/structure/closet/firecloset,/turf/open/floor/plating,/area/maintenance/asmaint2) +"cmJ" = (/obj/machinery/power/tracker,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel/airless/solarpanel,/area/solar/port) +"cmK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port) +"cmL" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port) +"cmM" = (/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port) +"cmN" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port) +"cmO" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/external{cyclelinkeddir = 4; name = "Solar Maintenance"; req_access = null; req_access_txt = "10; 13"},/turf/open/floor/plating,/area/maintenance/portsolar) +"cmP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/portsolar) +"cmQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/external{cyclelinkeddir = 8; name = "Solar Maintenance"; req_access = null; req_access_txt = "10; 13"},/turf/open/floor/plating,/area/maintenance/portsolar) +"cmR" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating,/area/maintenance/portsolar) +"cmS" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating,/area/maintenance/portsolar) +"cmT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating,/area/maintenance/portsolar) +"cmU" = (/obj/machinery/door/airlock/engineering{name = "Aft Port Solar Access"; req_access_txt = "10"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/portsolar) +"cmV" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/mob/living/simple_animal/mouse,/turf/open/floor/plating,/area/maintenance/aft) +"cmW" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating,/area/maintenance/aft) +"cmX" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/aft) +"cmY" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/aft) +"cmZ" = (/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j2s"; sortType = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/aft) +"cna" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/aft) +"cnb" = (/obj/machinery/shieldgen,/turf/open/floor/plating,/area/engine/engineering) +"cnc" = (/obj/machinery/the_singularitygen{anchored = 0},/turf/open/floor/plating,/area/engine/engineering) +"cnd" = (/obj/machinery/power/apc{cell_type = 15000; dir = 1; name = "Engineering APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel/yellow/side,/area/engine/engineering) +"cne" = (/obj/machinery/light{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/yellow/side,/area/engine/engineering) +"cnf" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/portable_atmospherics/pump,/turf/open/floor/plasteel/yellow/side,/area/engine/engineering) +"cng" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/table,/turf/open/floor/plasteel/yellow/side,/area/engine/engineering) +"cnh" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/table,/obj/item/weapon/tank/internals/emergency_oxygen/engi,/obj/item/clothing/mask/breath,/turf/open/floor/plasteel/yellow/side,/area/engine/engineering) +"cni" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/open/floor/plasteel/yellow/side,/area/engine/engineering) +"cnj" = (/obj/machinery/airalarm{pixel_y = 23},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/plasteel/yellow/side,/area/engine/engineering) +"cnk" = (/turf/closed/wall,/area/engine/engineering) +"cnl" = (/obj/machinery/computer/station_alert,/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20},/turf/open/floor/plasteel,/area/engine/engineering) +"cnm" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/modular_computer/console/preset/engineering,/turf/open/floor/plasteel,/area/engine/engineering) +"cnn" = (/obj/machinery/computer/station_alert,/obj/machinery/button/door{desc = "A remote control-switch for the engineering security doors."; id = "Engineering"; name = "Engineering Lockdown"; pixel_x = -24; pixel_y = -10; req_access_txt = "10"},/obj/machinery/button/door{desc = "A remote control-switch for secure storage."; id = "Secure Storage"; name = "Engineering Secure Storage"; pixel_x = -24; pixel_y = 0; req_access_txt = "11"},/obj/machinery/button/door{id = "atmos"; name = "Atmospherics Lockdown"; pixel_x = -24; pixel_y = 10; req_access_txt = "24"},/turf/open/floor/plasteel/neutral{dir = 2},/area/engine/chiefs_office) +"cno" = (/obj/structure/chair/office/light{dir = 4},/obj/effect/landmark/start{name = "Chief Engineer"},/turf/open/floor/plasteel/neutral{dir = 2},/area/engine/chiefs_office) +"cnp" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/yellow,/obj/item/weapon/paper/monitorkey,/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/neutral{dir = 2},/area/engine/chiefs_office) +"cnq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel/neutral{dir = 2},/area/engine/chiefs_office) +"cnr" = (/obj/structure/closet/secure_closet/engineering_chief{req_access_txt = "0"},/turf/open/floor/plasteel/neutral{dir = 2},/area/engine/chiefs_office) +"cns" = (/obj/structure/grille,/obj/structure/cable,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/chiefs_office) +"cnt" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plasteel,/area/engine/engineering) +"cnu" = (/obj/effect/landmark{name = "lightsout"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/engine/engineering) +"cnv" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/closet/radiation,/turf/open/floor/plasteel,/area/engine/engineering) +"cnw" = (/obj/machinery/atmospherics/pipe/simple/green/visible,/turf/closed/wall/r_wall,/area/atmos) +"cnx" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/yellow/visible,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/atmos) +"cny" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/turf/open/floor/plating,/area/atmos) +"cnz" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/green/visible,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/atmos) +"cnA" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible,/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/atmos) +"cnB" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible,/turf/closed/wall/r_wall,/area/atmos) +"cnC" = (/obj/machinery/atmospherics/components/unary/tank/toxins{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cnD" = (/obj/machinery/atmospherics/components/binary/pump{dir = 4; name = "plasma tank pump"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cnE" = (/obj/machinery/atmospherics/pipe/manifold4w/general{level = 2},/obj/machinery/meter,/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cnF" = (/obj/effect/landmark{name = "blobstart"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/components/binary/pump{dir = 4; name = "Mix to Incinerator"; on = 0},/mob/living/simple_animal/mouse,/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cnG" = (/obj/item/weapon/cigbutt,/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 10},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cnH" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cnI" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{name = "output gas connector port"},/obj/machinery/portable_atmospherics/canister,/obj/structure/sign/nosmoking_2{pixel_x = 28},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cnJ" = (/obj/structure/table,/obj/item/weapon/cartridge/medical,/turf/open/floor/plating,/area/maintenance/asmaint) +"cnK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/closet/firecloset/full,/turf/open/floor/plating,/area/maintenance/asmaint) +"cnL" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/obj/item/latexballon,/turf/open/floor/plating,/area/maintenance/asmaint) +"cnM" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating,/area/maintenance/aft) +"cnN" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/landmark/event_spawn,/turf/open/floor/plating,/area/maintenance/aft) +"cnO" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) +"cnP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) +"cnQ" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) +"cnR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating,/area/maintenance/asmaint2) +"cnS" = (/obj/structure/rack,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/asmaint2) +"cnT" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/asmaint2) +"cnU" = (/obj/structure/grille,/obj/structure/window/reinforced/tinted/fulltile,/turf/open/floor/plating,/area/maintenance/asmaint2) +"cnV" = (/obj/structure/grille,/obj/structure/window/reinforced/tinted/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plating,/area/maintenance/asmaint2) +"cnW" = (/obj/machinery/power/apc{dir = 8; name = "Science Maintenance APC"; pixel_x = -25},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/camera{c_tag = "Aft Starboard Solar Access"; dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint2) +"cnX" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint2) +"cnY" = (/obj/structure/closet/emcloset,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plating,/area/maintenance/asmaint2) +"cnZ" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port) +"coa" = (/obj/machinery/power/solar_control{id = "portsolar"; name = "Aft Port Solar Control"; track = 0},/obj/structure/cable,/turf/open/floor/plating,/area/maintenance/portsolar) +"cob" = (/turf/open/floor/plating,/area/maintenance/portsolar) +"coc" = (/obj/machinery/power/apc{dir = 4; name = "Aft Port Solar APC"; pixel_x = 23; pixel_y = 2},/obj/machinery/camera{c_tag = "Aft Port Solar Control"; dir = 1},/obj/structure/cable,/turf/open/floor/plating,/area/maintenance/portsolar) +"cod" = (/obj/structure/closet/emcloset,/turf/open/floor/plating,/area/maintenance/aft) +"coe" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/aft) +"cof" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/aft) +"cog" = (/obj/structure/closet/crate,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/rods{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/weapon/electronics/airlock,/obj/item/weapon/electronics/airlock,/obj/item/weapon/stock_parts/cell/high/plus,/obj/item/stack/sheet/mineral/plasma{amount = 30},/turf/open/floor/plating,/area/engine/engineering) +"coh" = (/obj/effect/landmark{name = "blobstart"},/turf/open/floor/plating,/area/engine/engineering) +"coi" = (/turf/open/floor/plating,/area/engine/engineering) +"coj" = (/obj/machinery/door/poddoor{id = "Secure Storage"; name = "secure storage"},/turf/open/floor/plating,/area/engine/engineering) +"cok" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel,/area/engine/engineering) +"col" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel,/area/engine/engineering) +"com" = (/turf/open/floor/plasteel,/area/engine/engineering) +"con" = (/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel,/area/engine/engineering) +"coo" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plasteel,/area/engine/engineering) +"cop" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/engine/engineering) +"coq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/sign/nosmoking_2{pixel_y = 32},/obj/machinery/camera{c_tag = "Engineering Power Storage"},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel,/area/engine/engineering) +"cor" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/chair/office/dark{dir = 1},/obj/effect/landmark/start{name = "Station Engineer"},/turf/open/floor/plasteel,/area/engine/engineering) +"cos" = (/obj/machinery/camera{c_tag = "Chief Engineer's Office"; dir = 4; network = list("SS13")},/obj/machinery/airalarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/computer/card/minor/ce,/turf/open/floor/plasteel/neutral{dir = 2},/area/engine/chiefs_office) +"cot" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/item/weapon/storage/fancy/cigarettes,/turf/open/floor/plasteel/neutral{dir = 2},/area/engine/chiefs_office) +"cou" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel/neutral{dir = 2},/area/engine/chiefs_office) +"cov" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/obj/structure/filingcabinet/chestdrawer,/mob/living/simple_animal/parrot/Poly,/turf/open/floor/plasteel/neutral{dir = 2},/area/engine/chiefs_office) +"cow" = (/obj/machinery/door/poddoor/preopen{id = "Engineering"; name = "engineering security door"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/engineering) +"cox" = (/obj/machinery/door/poddoor/preopen{id = "Engineering"; name = "engineering security door"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/engineering) +"coy" = (/obj/machinery/door/poddoor/preopen{id = "Engineering"; name = "engineering security door"},/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/engineering) +"coz" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/green/visible,/turf/open/space,/area/space/nearstation) +"coA" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 1; frequency = 1441; id = "waste_out"},/turf/open/floor/plating/airless,/area/atmos) +"coB" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/cyan/visible,/turf/open/space,/area/space/nearstation) +"coC" = (/obj/structure/sign/nosmoking_2{pixel_x = -28},/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4; name = "input gas connector port"},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"coD" = (/obj/machinery/atmospherics/components/binary/pump{dir = 4; name = "input port pump"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"coE" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"coF" = (/obj/machinery/atmospherics/pipe/simple/general/visible,/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"coG" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"coH" = (/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "Incinerator to Output"; on = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"coI" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/closed/wall,/area/maintenance/incinerator) +"coJ" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/closed/wall,/area/maintenance/asmaint) +"coK" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/closed/wall,/area/maintenance/asmaint) +"coL" = (/obj/structure/disposalpipe/segment,/obj/item/weapon/shard,/turf/open/floor/plating,/area/maintenance/asmaint) +"coM" = (/obj/structure/disposalpipe/segment,/obj/item/weapon/cigbutt/roach,/turf/open/floor/plating,/area/maintenance/asmaint) +"coN" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/closed/wall,/area/maintenance/asmaint) +"coO" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) +"coP" = (/obj/structure/chair,/obj/item/weapon/storage/fancy/cigarettes,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) +"coQ" = (/obj/structure/chair,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) +"coR" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/maintenance/aft) +"coS" = (/obj/structure/closet,/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint2) +"coT" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plating,/area/maintenance/asmaint2) +"coU" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/asmaint2) +"coV" = (/obj/structure/rack,/obj/effect/decal/cleanable/cobweb/cobweb2,/obj/effect/spawner/lootdrop/maintenance,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/asmaint2) +"coW" = (/turf/closed/wall/r_wall,/area/maintenance/starboardsolar) +"coX" = (/obj/machinery/door/airlock/engineering{name = "Aft Starboard Solar Access"; req_access_txt = "10"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/starboardsolar) +"coY" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 0},/turf/closed/wall/r_wall,/area/maintenance/starboardsolar) +"coZ" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port) +"cpa" = (/obj/structure/closet/crate,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/aft) +"cpb" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/closed/wall/r_wall,/area/engine/engine_smes) +"cpc" = (/turf/closed/wall/r_wall,/area/engine/engine_smes) +"cpd" = (/obj/effect/spawner/lootdrop/maintenance,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/aft) +"cpe" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/aft) +"cpf" = (/obj/machinery/portable_atmospherics/canister/toxins,/obj/machinery/light/small{dir = 8},/obj/machinery/camera{c_tag = "Engineering Secure Storage"; dir = 4; network = list("SS13")},/turf/open/floor/plating,/area/engine/engineering) +"cpg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/engine/engineering) +"cph" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/engine/engineering) +"cpi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) +"cpj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel,/area/engine/engineering) +"cpk" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/engine/engineering) +"cpl" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 4},/turf/open/floor/plasteel/neutral{dir = 2},/area/engine/chiefs_office) +"cpm" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/neutral{dir = 2},/area/engine/chiefs_office) +"cpn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plasteel/neutral{dir = 2},/area/engine/chiefs_office) +"cpo" = (/obj/item/weapon/cartridge/engineering{pixel_x = 4; pixel_y = 5},/obj/item/weapon/cartridge/engineering{pixel_x = -3; pixel_y = 2},/obj/item/weapon/cartridge/engineering{pixel_x = 3},/obj/structure/table/reinforced,/obj/machinery/light_switch{pixel_x = 27},/obj/item/weapon/cartridge/atmos,/turf/open/floor/plasteel/neutral{dir = 2},/area/engine/chiefs_office) +"cpp" = (/obj/structure/sign/securearea,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/engine/engineering) +"cpq" = (/obj/machinery/door/airlock/engineering{cyclelinkeddir = 1; name = "Engine Room"; req_access_txt = "10"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/engine/engineering) +"cpr" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 0; pixel_y = 0},/turf/closed/wall/r_wall,/area/engine/engineering) +"cps" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/grille,/obj/machinery/meter,/turf/closed/wall/r_wall,/area/atmos) +"cpt" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/grille,/obj/machinery/meter{name = "Mixed Air Tank In"},/turf/closed/wall/r_wall,/area/atmos) +"cpu" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/grille,/obj/machinery/meter{name = "Mixed Air Tank Out"},/turf/closed/wall/r_wall,/area/atmos) +"cpv" = (/obj/structure/grille,/obj/structure/disposalpipe/segment,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/incinerator) +"cpw" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cpx" = (/obj/machinery/atmospherics/components/binary/valve{name = "Mix to Space"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cpy" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 2},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cpz" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cpA" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/simple/general/visible,/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cpB" = (/obj/machinery/portable_atmospherics/canister,/obj/effect/decal/cleanable/cobweb,/turf/open/floor/plating,/area/maintenance/asmaint) +"cpC" = (/obj/machinery/door/airlock/maintenance{name = "Biohazard Disposals"; req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/asmaint) +"cpD" = (/obj/structure/disposalpipe/segment,/turf/closed/wall,/area/maintenance/asmaint2) +"cpE" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/asmaint2) +"cpF" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/asmaint2) +"cpG" = (/obj/machinery/power/apc{dir = 8; name = "Aft Starboard Solar APC"; pixel_x = -26; pixel_y = 3},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating,/area/maintenance/starboardsolar) +"cpH" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/starboardsolar) +"cpI" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/smes,/turf/open/floor/plating,/area/maintenance/starboardsolar) +"cpJ" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plating,/area/maintenance/aft) +"cpK" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/black,/area/engine/engine_smes) +"cpL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/black,/area/engine/engine_smes) +"cpM" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/black,/area/engine/engine_smes) +"cpN" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/black,/area/engine/engine_smes) +"cpO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/aft) +"cpP" = (/obj/machinery/field/generator,/turf/open/floor/plating,/area/engine/engineering) +"cpQ" = (/obj/machinery/power/emitter,/turf/open/floor/plating,/area/engine/engineering) +"cpR" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel,/area/engine/engineering) +"cpS" = (/obj/structure/table,/obj/item/weapon/electronics/airlock,/obj/item/weapon/electronics/airlock,/obj/item/weapon/electronics/apc,/obj/item/weapon/stock_parts/cell/high/plus,/obj/item/weapon/stock_parts/cell/high/plus,/turf/open/floor/plasteel,/area/engine/engineering) +"cpT" = (/obj/structure/table,/obj/item/weapon/book/manual/engineering_singularity_safety,/obj/item/clothing/gloves/color/yellow,/turf/open/floor/plasteel,/area/engine/engineering) +"cpU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/engine/engineering) +"cpV" = (/obj/structure/closet/crate{name = "solar pack crate"},/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/weapon/circuitboard/computer/solar_control,/obj/item/weapon/electronics/tracker,/obj/item/weapon/paper/solar,/turf/open/floor/plasteel,/area/engine/engineering) +"cpW" = (/obj/structure/tank_dispenser,/turf/open/floor/plasteel,/area/engine/engineering) +"cpX" = (/obj/machinery/suit_storage_unit/engine,/turf/open/floor/plasteel,/area/engine/engineering) +"cpY" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/chiefs_office) +"cpZ" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/chiefs_office) +"cqa" = (/obj/machinery/door/airlock/glass_command{name = "Chief Engineer"; req_access_txt = "56"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel/neutral{dir = 2},/area/engine/chiefs_office) +"cqb" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/chiefs_office) +"cqc" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/closed/wall/r_wall,/area/engine/chiefs_office) +"cqd" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/yellow/side{dir = 9},/area/engine/engineering) +"cqe" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/yellow/side{dir = 1},/area/engine/engineering) +"cqf" = (/obj/machinery/door/firedoor,/turf/open/floor/plasteel/yellow/side{dir = 5},/area/engine/engineering) +"cqg" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 1; frequency = 1441; id = "n2_in"},/turf/open/floor/engine/n2,/area/atmos) +"cqh" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "n2_sensor"},/turf/open/floor/engine/n2,/area/atmos) +"cqi" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 0; frequency = 1441; id_tag = "n2_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/open/floor/engine/n2,/area/atmos) +"cqj" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 1; frequency = 1441; id = "o2_in"},/turf/open/floor/engine/o2,/area/atmos) +"cqk" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "o2_sensor"},/turf/open/floor/engine/o2,/area/atmos) +"cql" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 0; frequency = 1441; id_tag = "o2_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/open/floor/engine/o2,/area/atmos) +"cqm" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 1; frequency = 1441; id = "air_in"},/turf/open/floor/engine/air,/area/atmos) +"cqn" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "air_sensor"},/turf/open/floor/engine/air,/area/atmos) +"cqo" = (/obj/machinery/atmospherics/components/unary/vent_pump/high_volume{dir = 1; external_pressure_bound = 0; frequency = 1441; icon_state = "vent_map"; id_tag = "air_out"; internal_pressure_bound = 2000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/open/floor/engine/air,/area/atmos) +"cqp" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/open/floor/plating,/area/maintenance/incinerator) +"cqq" = (/obj/machinery/light/small,/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -31},/obj/machinery/computer/turbine_computer{id = "incineratorturbine"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cqr" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 8},/obj/machinery/meter,/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cqs" = (/obj/machinery/computer/security/telescreen{desc = "Used for watching the turbine vent."; dir = 1; name = "turbine vent monitor"; network = list("Turbine"); pixel_x = 0; pixel_y = -29},/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cqt" = (/obj/machinery/button/door{id = "auxincineratorvent"; name = "Auxiliary Vent Control"; pixel_x = 6; pixel_y = -24; req_access_txt = "32"},/obj/machinery/button/door{id = "turbinevent"; name = "Turbine Vent Control"; pixel_x = -6; pixel_y = -24; req_access_txt = "32"},/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/general/visible,/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cqu" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/binary/valve{dir = 4; name = "Incinerator to Space"},/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cqv" = (/obj/machinery/doorButtons/airlock_controller{idExterior = "incinerator_airlock_exterior"; idSelf = "incinerator_access_control"; idInterior = "incinerator_airlock_interior"; name = "Incinerator Access Console"; pixel_x = 6; pixel_y = -26; req_access_txt = "12"},/obj/machinery/button/ignition{id = "Incinerator"; pixel_x = -6; pixel_y = -24},/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 4; initialize_directions = 11},/obj/machinery/meter,/turf/open/floor/plasteel/floorgrime,/area/maintenance/incinerator) +"cqw" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) +"cqx" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold/general/hidden{icon_state = "manifold"; dir = 1},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/asmaint) +"cqy" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/components/binary/pump{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) +"cqz" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/obj/machinery/meter,/turf/open/floor/plating,/area/maintenance/asmaint) +"cqA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plating,/area/maintenance/asmaint) +"cqB" = (/obj/structure/disposalpipe/segment,/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating,/area/maintenance/asmaint) +"cqC" = (/obj/machinery/door/airlock/external{name = "Solar Maintenance"; req_access = null; req_access_txt = "10; 13"},/turf/open/floor/plating,/area/maintenance/aft) +"cqD" = (/obj/structure/rack,/obj/structure/disposalpipe/segment,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/asmaint2) +"cqE" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance{lootcount = 3; name = "3maintenance loot spawner"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/asmaint2) +"cqF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/asmaint2) +"cqG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint2) +"cqH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/asmaint2) +"cqI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plating,/area/maintenance/asmaint2) +"cqJ" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/asmaint2) +"cqK" = (/obj/structure/chair/stool,/obj/machinery/camera{c_tag = "Aft Starboard Solar Control"; dir = 4; network = list("SS13")},/turf/open/floor/plating,/area/maintenance/starboardsolar) +"cqL" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating,/area/maintenance/starboardsolar) +"cqM" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/light/small{dir = 4},/turf/open/floor/plating,/area/maintenance/starboardsolar) +"cqN" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/open/floor/plating,/area/maintenance/aft) +"cqO" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/aft) +"cqP" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/engine/engine_smes) +"cqQ" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/smes/engineering,/turf/open/floor/plasteel/vault{dir = 1},/area/engine/engine_smes) +"cqR" = (/turf/open/floor/plasteel/vault{dir = 8},/area/engine/engine_smes) +"cqS" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/smes/engineering,/turf/open/floor/plasteel/vault{dir = 4},/area/engine/engine_smes) +"cqT" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/engine/engine_smes) +"cqU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/closed/wall,/area/engine/engineering) +"cqV" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/engine/engineering) +"cqW" = (/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/window/fulltile,/turf/open/floor/plating,/area/engine/engineering) +"cqX" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_engineering{name = "Power Storage"; req_access_txt = "11"; req_one_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/engine/engineering) +"cqY" = (/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/engine/engineering) +"cqZ" = (/obj/structure/table,/obj/item/weapon/crowbar/large,/obj/item/weapon/storage/box/lights/mixed,/turf/open/floor/plasteel/yellow/side{dir = 9},/area/engine/engineering) +"cra" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/belt/utility,/obj/item/weapon/wrench,/obj/item/weapon/weldingtool,/obj/item/clothing/head/welding{pixel_x = -3; pixel_y = 5},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/engine/engineering) +"crb" = (/turf/open/floor/plasteel/yellow/corner{dir = 1},/area/engine/engineering) +"crc" = (/turf/open/floor/plasteel/yellow/corner{dir = 4},/area/engine/engineering) +"crd" = (/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/engine/engineering) +"cre" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/yellow/corner{dir = 1},/area/engine/engineering) +"crf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/engine/engineering) +"crg" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel/yellow/side{dir = 4},/area/engine/engineering) +"crh" = (/turf/open/floor/engine/n2,/area/atmos) +"cri" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/turf/open/floor/engine/n2,/area/atmos) +"crj" = (/turf/open/floor/engine/o2,/area/atmos) +"crk" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/engine/o2,/area/atmos) +"crl" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/open/floor/engine/air,/area/atmos) +"crm" = (/obj/machinery/portable_atmospherics/canister/air,/obj/effect/landmark/event_spawn,/turf/open/floor/engine/air,/area/atmos) +"crn" = (/turf/open/floor/engine/air,/area/atmos) +"cro" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/incinerator) +"crp" = (/turf/closed/wall/r_wall,/area/maintenance/incinerator) +"crq" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 2},/turf/closed/wall/r_wall,/area/maintenance/incinerator) +"crr" = (/obj/machinery/door/airlock/glass{autoclose = 0; frequency = 1449; heat_proof = 1; icon_state = "door_locked"; id_tag = "incinerator_airlock_interior"; locked = 1; name = "Turbine Interior Airlock"; req_access_txt = "32"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/engine,/area/maintenance/incinerator) +"crs" = (/obj/machinery/atmospherics/pipe/simple/general/visible,/turf/closed/wall/r_wall,/area/maintenance/incinerator) +"crt" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 9},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/asmaint) +"cru" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/asmaint) +"crv" = (/obj/structure/disposalpipe/junction{dir = 2; icon_state = "pipe-y"},/turf/open/floor/plating,/area/maintenance/asmaint) +"crw" = (/obj/structure/disposalpipe/segment,/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) +"crx" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/plating,/area/maintenance/asmaint) +"cry" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/structure/disposalpipe/segment,/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/asmaint2) +"crz" = (/obj/structure/closet/toolcloset,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/asmaint2) +"crA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint2) +"crB" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint2) +"crC" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/asmaint2) +"crD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/closed/wall,/area/maintenance/asmaint2) +"crE" = (/obj/machinery/power/solar_control{id = "starboardsolar"; name = "Aft Starboard Solar Control"; track = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating,/area/maintenance/starboardsolar) +"crF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating,/area/maintenance/starboardsolar) +"crG" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = -32},/turf/open/floor/plating,/area/maintenance/starboardsolar) +"crH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/engine/engine_smes) +"crI" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/open/floor/plasteel/vault{dir = 8},/area/engine/engine_smes) +"crJ" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/black,/area/engine/engine_smes) +"crK" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel/vault{dir = 8},/area/engine/engine_smes) +"crL" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=2"; freq = 1400; location = "Engineering"},/obj/structure/plasticflaps{opacity = 1},/turf/open/floor/plasteel/bot,/area/engine/engineering) +"crM" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/engine/engineering) +"crN" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = -32; pixel_y = 0},/obj/structure/disposalpipe/segment,/obj/structure/sign/securearea{pixel_x = 32; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/aft) +"crO" = (/obj/structure/closet/secure_closet/engineering_welding,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/yellow/side{dir = 9},/area/engine/engineering) +"crP" = (/obj/structure/closet/secure_closet/engineering_electrical,/turf/open/floor/plasteel/yellow/side{dir = 1},/area/engine/engineering) +"crQ" = (/obj/machinery/vending/engivend,/turf/open/floor/plasteel/yellow/side{dir = 1},/area/engine/engineering) +"crR" = (/obj/machinery/vending/tool,/turf/open/floor/plasteel/yellow/corner{dir = 1},/area/engine/engineering) +"crS" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/yellow/corner{dir = 4},/area/engine/engineering) +"crT" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/engine/engineering) +"crU" = (/obj/machinery/requests_console{announcementConsole = 0; department = "Engineering"; departmentType = 4; name = "Engineering RC"; pixel_y = 30},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/engine/engineering) +"crV" = (/obj/structure/sign/nosmoking_2{pixel_y = 32},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel/yellow/side{dir = 1},/area/engine/engineering) +"crW" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel/yellow/corner{dir = 1},/area/engine/engineering) +"crX" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/engine/engineering) +"crY" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/open/floor/plasteel,/area/engine/engineering) +"crZ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/engine/engineering) +"csa" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) +"csb" = (/obj/structure/closet/secure_closet/engineering_personal,/turf/open/floor/plasteel/yellow/side{dir = 4},/area/engine/engineering) +"csc" = (/obj/machinery/light/small,/turf/open/floor/engine/n2,/area/atmos) +"csd" = (/obj/machinery/light/small,/turf/open/floor/engine/o2,/area/atmos) +"cse" = (/obj/machinery/light/small,/turf/open/floor/engine/air,/area/atmos) +"csf" = (/obj/structure/lattice,/obj/machinery/atmospherics/components/binary/pump{dir = 2; name = "Incinerator Output Pump"; on = 1},/turf/open/space,/area/maintenance/incinerator) +"csg" = (/obj/machinery/atmospherics/components/binary/pump{dir = 2; on = 1},/obj/machinery/doorButtons/access_button{idDoor = "incinerator_airlock_exterior"; idSelf = "incinerator_access_control"; layer = 3.1; name = "Incinerator airlock control"; pixel_x = 8; pixel_y = -24},/obj/machinery/light/small{dir = 8},/obj/structure/sign/fire{pixel_x = -32; pixel_y = 0},/turf/open/floor/engine,/area/maintenance/incinerator) +"csh" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/engine,/area/maintenance/incinerator) +"csi" = (/obj/machinery/atmospherics/components/binary/pump{dir = 1; on = 1},/obj/structure/sign/fire{pixel_x = 32; pixel_y = 0},/obj/machinery/doorButtons/access_button{idSelf = "incinerator_access_control"; idDoor = "incinerator_airlock_interior"; name = "Incinerator airlock control"; pixel_x = -8; pixel_y = 24},/obj/machinery/light/small{dir = 4},/turf/open/floor/engine,/area/maintenance/incinerator) +"csj" = (/obj/machinery/light/small,/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/asmaint) +"csk" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/asmaint) +"csl" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/asmaint) +"csm" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/asmaint) +"csn" = (/obj/machinery/light/small,/obj/structure/table,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/effect/spawner/lootdrop/maintenance,/obj/item/weapon/clipboard,/turf/open/floor/plating,/area/maintenance/asmaint) +"cso" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/asmaint) +"csp" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/asmaint2) +"csq" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/starboardsolar) +"csr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/airlock/external{cyclelinkeddir = 2; name = "Solar Maintenance"; req_access = null; req_access_txt = "10; 13"},/turf/open/floor/plating,/area/maintenance/starboardsolar) +"css" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/port) +"cst" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/engine/engine_smes) +"csu" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/smes/engineering,/turf/open/floor/plasteel/vault{dir = 4},/area/engine/engine_smes) +"csv" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/vault{dir = 8},/area/engine/engine_smes) +"csw" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/smes/engineering,/turf/open/floor/plasteel/vault{dir = 1},/area/engine/engine_smes) +"csx" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/camera{c_tag = "SMES Room"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/engine/engine_smes) +"csy" = (/obj/machinery/door/window/southleft{base_state = "left"; dir = 2; icon_state = "left"; name = "Engineering Delivery"; req_access_txt = "10"},/turf/open/floor/plasteel/delivery,/area/engine/engineering) +"csz" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/maintenance{name = "Engineering Maintenance"; req_access_txt = "10"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/engine/engineering) +"csA" = (/obj/machinery/camera{c_tag = "Engineering West"; dir = 4; network = list("SS13")},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/yellow/corner{dir = 1},/area/engine/engineering) +"csB" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/engine/engineering) +"csC" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plasteel,/area/engine/engineering) +"csD" = (/obj/machinery/computer/security/telescreen{desc = "Used for watching the singularity chamber."; dir = 1; layer = 4; name = "Singularity Engine Telescreen"; network = list("Singularity"); pixel_x = 0; pixel_y = -30},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/engine/engineering) +"csE" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel,/area/engine/engineering) +"csF" = (/obj/effect/landmark/start{name = "Station Engineer"},/turf/open/floor/plasteel,/area/engine/engineering) +"csG" = (/obj/structure/closet/secure_closet/engineering_personal,/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/open/floor/plasteel/yellow/side{dir = 4},/area/engine/engineering) +"csH" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/turf/open/space,/area/maintenance/incinerator) +"csI" = (/obj/machinery/door/airlock/glass{autoclose = 0; frequency = 1449; heat_proof = 1; icon_state = "door_locked"; id_tag = "incinerator_airlock_exterior"; locked = 1; name = "Turbine Exterior Airlock"; req_access_txt = "32"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/engine,/area/maintenance/incinerator) +"csJ" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/closed/wall,/area/maintenance/asmaint) +"csK" = (/obj/machinery/atmospherics/components/binary/pump{dir = 2; name = "Waste Out"; on = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint) +"csL" = (/obj/structure/disposalpipe/junction{dir = 4; icon_state = "pipe-j2"},/turf/open/floor/plating,/area/maintenance/asmaint) +"csM" = (/obj/structure/closet/emcloset,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/asmaint) +"csN" = (/obj/structure/disposalpipe/segment,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/asmaint2) +"csO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/maintenance/starboardsolar) +"csP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/engine/engine_smes) +"csQ" = (/obj/structure/window/reinforced,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/turf/open/floor/plasteel/black,/area/engine/engine_smes) +"csR" = (/obj/machinery/door/window{name = "SMES Chamber"; req_access_txt = "32"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel/black,/area/engine/engine_smes) +"csS" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/window/reinforced,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/open/floor/plasteel/black,/area/engine/engine_smes) +"csT" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/black,/area/engine/engine_smes) +"csU" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/engine/engine_smes) +"csV" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 8},/area/engine/engine_smes) +"csW" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/camera{c_tag = "SMES Access"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel/warning{dir = 4},/area/engine/engine_smes) +"csX" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_x = -32; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/loadingarea,/area/engine/engineering) +"csY" = (/obj/machinery/light/small{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,/turf/open/floor/plasteel,/area/engine/engineering) +"csZ" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) +"cta" = (/obj/machinery/firealarm{pixel_y = 24},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) +"ctb" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/sign/nosmoking_2{pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) +"ctc" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) +"ctd" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) +"cte" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/airalarm{pixel_y = 23},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) +"ctf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) +"ctg" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel,/area/engine/engineering) +"cth" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/item/weapon/storage/firstaid/fire,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) +"cti" = (/obj/effect/landmark/start{name = "Station Engineer"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) +"ctj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel,/area/engine/engineering) +"ctk" = (/obj/structure/closet/radiation,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/engine/engineering) +"ctl" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters/preopen{id = "Singularity"; name = "radiation shutters"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/bot{dir = 2},/area/engine/engineering) +"ctm" = (/obj/structure/closet/radiation,/turf/open/floor/plasteel,/area/engine/engineering) +"ctn" = (/obj/structure/table,/obj/item/device/flashlight{pixel_y = 5},/obj/item/clothing/ears/earmuffs{pixel_x = -5; pixel_y = 6},/obj/item/weapon/airlock_painter,/turf/open/floor/plasteel,/area/engine/engineering) +"cto" = (/obj/machinery/camera{c_tag = "Engineering East"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/obj/structure/closet/wardrobe/engineering_yellow,/turf/open/floor/plasteel/yellow/corner{dir = 4},/area/engine/engineering) +"ctp" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 1; frequency = 1441; id = "inc_in"},/turf/open/floor/engine/vacuum,/area/maintenance/incinerator) +"ctq" = (/obj/machinery/igniter{icon_state = "igniter0"; id = "Incinerator"; luminosity = 2; on = 0},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/engine/vacuum,/area/maintenance/incinerator) +"ctr" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 0; initialize_directions = 1; internal_pressure_bound = 4000; on = 0; pressure_checks = 2; pump_direction = 0},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = -32},/turf/open/floor/engine/vacuum,/area/maintenance/incinerator) +"cts" = (/obj/machinery/door/poddoor{id = "auxincineratorvent"; name = "Auxiliary Incinerator Vent"},/turf/open/floor/engine/vacuum,/area/maintenance/incinerator) +"ctt" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/maintenance/asmaint) +"ctu" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/asmaint2) +"ctv" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint2) +"ctw" = (/obj/structure/table,/obj/item/weapon/weldingtool,/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/open/floor/plating,/area/maintenance/asmaint2) +"ctx" = (/obj/machinery/space_heater,/turf/open/floor/plating,/area/maintenance/asmaint2) +"cty" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/airlock/external{cyclelinkeddir = 1; name = "Solar Maintenance"; req_access = null; req_access_txt = "10; 13"},/turf/open/floor/plating,/area/maintenance/starboardsolar) +"ctz" = (/obj/machinery/power/port_gen/pacman,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/warning{dir = 9},/area/engine/engine_smes) +"ctA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 1},/area/engine/engine_smes) +"ctB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/warning{dir = 1},/area/engine/engine_smes) +"ctC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/warning{dir = 1},/area/engine/engine_smes) +"ctD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/warning{dir = 5},/area/engine/engine_smes) +"ctE" = (/obj/machinery/door/airlock/engineering{cyclelinkeddir = 4; name = "SMES Room"; req_access_txt = "32"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/engine_smes) +"ctF" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/warning{dir = 8},/area/engine/engine_smes) +"ctG" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/warning{dir = 4},/area/engine/engine_smes) +"ctH" = (/obj/machinery/door/airlock/engineering{cyclelinkeddir = 8; name = "SMES Room"; req_access_txt = "32"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/delivery{name = "floor"},/area/engine/engine_smes) +"ctI" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/warning{dir = 8},/area/engine/engineering) +"ctJ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/engine/engineering) +"ctK" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel,/area/engine/engineering) +"ctL" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) +"ctM" = (/obj/machinery/door/firedoor,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) +"ctN" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) +"ctO" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) +"ctP" = (/obj/structure/table,/obj/item/weapon/book/manual/wiki/engineering_hacking{pixel_x = 3; pixel_y = 3},/obj/item/weapon/book/manual/wiki/engineering_construction,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel,/area/engine/engineering) +"ctQ" = (/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) +"ctR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) +"ctS" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/gloves/color/black,/obj/item/weapon/extinguisher{pixel_x = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel,/area/engine/engineering) +"ctT" = (/turf/open/floor/plating/warnplate{dir = 9},/area/engine/engineering) +"ctU" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/warnplate{dir = 1},/area/engine/engineering) +"ctV" = (/obj/machinery/camera{c_tag = "Engineering Center"; dir = 2; pixel_x = 23},/obj/machinery/light{dir = 1},/turf/open/floor/plating/warnplate{dir = 1},/area/engine/engineering) +"ctW" = (/turf/open/floor/plating/warnplate{dir = 5},/area/engine/engineering) +"ctX" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/gloves/color/yellow,/obj/item/weapon/storage/belt/utility,/turf/open/floor/plasteel,/area/engine/engineering) +"ctY" = (/obj/machinery/holopad,/turf/open/floor/plasteel,/area/engine/engineering) +"ctZ" = (/obj/structure/table,/obj/item/weapon/book/manual/wiki/engineering_guide,/obj/item/weapon/book/manual/engineering_particle_accelerator{pixel_y = 6},/turf/open/floor/plasteel,/area/engine/engineering) +"cua" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel,/area/engine/engineering) +"cub" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel,/area/engine/engineering) +"cuc" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/open/floor/plasteel/warning{dir = 5},/area/engine/engineering) +"cud" = (/obj/structure/closet/emcloset,/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/engine/engineering) +"cue" = (/obj/structure/shuttle/engine/propulsion/burst{dir = 4},/turf/closed/wall/mineral/titanium,/area/shuttle/pod_4) +"cuf" = (/turf/closed/wall/mineral/titanium,/area/shuttle/pod_4) +"cug" = (/obj/machinery/power/compressor{comp_id = "incineratorturbine"; dir = 1; luminosity = 2},/obj/structure/cable/yellow,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/camera{c_tag = "Turbine Chamber"; dir = 4; network = list("Turbine")},/turf/open/floor/engine/vacuum,/area/maintenance/incinerator) +"cuh" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/turf/open/space,/area/space/nearstation) +"cui" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard) +"cuj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel/warning{dir = 8},/area/engine/engine_smes) +"cuk" = (/turf/open/floor/plasteel,/area/engine/engine_smes) +"cul" = (/turf/open/floor/plasteel/warning/corner{dir = 2},/area/engine/engine_smes) +"cum" = (/obj/machinery/light,/turf/open/floor/plasteel/warning,/area/engine/engine_smes) +"cun" = (/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/warning{dir = 6},/area/engine/engine_smes) +"cuo" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel/warning{dir = 8},/area/engine/engine_smes) +"cup" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/open/floor/plasteel/warning{dir = 4},/area/engine/engine_smes) +"cuq" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_x = -32; pixel_y = 0},/turf/open/floor/plasteel,/area/engine/engineering) +"cur" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/engine/engineering) +"cus" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/engine/engineering) +"cut" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/turf/open/floor/plasteel,/area/engine/engineering) +"cuu" = (/obj/structure/table,/obj/item/clothing/gloves/color/yellow,/obj/item/weapon/storage/toolbox/electrical{pixel_y = 5},/turf/open/floor/plasteel,/area/engine/engineering) +"cuv" = (/obj/effect/landmark/start{name = "Station Engineer"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel,/area/engine/engineering) +"cuw" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel,/area/engine/engineering) +"cux" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel,/area/engine/engineering) +"cuy" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters/preopen{id = "Singularity"; name = "radiation shutters"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plasteel/bot{dir = 2},/area/engine/engineering) +"cuz" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/open/floor/plating/warnplate{dir = 8},/area/engine/engineering) +"cuA" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating,/area/engine/engineering) +"cuB" = (/obj/structure/particle_accelerator/end_cap,/turf/open/floor/plating,/area/engine/engineering) +"cuC" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/landmark/event_spawn,/turf/open/floor/plating,/area/engine/engineering) +"cuD" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/open/floor/plating/warnplate{dir = 4},/area/engine/engineering) +"cuE" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel,/area/engine/engineering) +"cuF" = (/obj/effect/landmark/start{name = "Station Engineer"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel,/area/engine/engineering) +"cuG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) +"cuH" = (/turf/open/floor/plasteel/warning{dir = 4},/area/engine/engineering) +"cuI" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 4; name = "Escape Pod Four"; req_access = null; req_access_txt = "0"},/turf/open/floor/plating,/area/engine/engineering) +"cuJ" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 8; name = "Escape Pod Four"; req_access = null; req_access_txt = "0"; shuttledocked = 1},/turf/open/floor/plating,/area/engine/engineering) +"cuK" = (/obj/machinery/door/airlock/shuttle{name = "Escape Pod Airlock"},/obj/docking_port/mobile/pod{dir = 4; id = "pod4"; name = "escape pod 4"; port_angle = 180; preferred_direction = 4},/turf/open/floor/mineral/titanium/blue,/area/shuttle/pod_4) +"cuL" = (/obj/item/device/radio/intercom{pixel_y = 25},/obj/item/weapon/storage/pod{pixel_x = 6; pixel_y = -32},/obj/structure/chair{dir = 4},/turf/open/floor/mineral/titanium/blue,/area/shuttle/pod_4) +"cuM" = (/obj/machinery/computer/shuttle/pod{pixel_y = -32; possible_destinations = "pod_asteroid4"; shuttleId = "pod4"},/obj/structure/chair{dir = 4},/obj/machinery/status_display{density = 0; layer = 3; pixel_x = 0; pixel_y = 32},/turf/open/floor/mineral/titanium/blue,/area/shuttle/pod_4) +"cuN" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/pod_4) +"cuO" = (/obj/docking_port/stationary/random{dir = 4; id = "pod_asteroid4"; name = "asteroid"},/turf/open/space,/area/space) +"cuP" = (/obj/machinery/power/turbine{luminosity = 2},/obj/structure/cable/yellow,/turf/open/floor/engine/vacuum,/area/maintenance/incinerator) +"cuQ" = (/obj/item/weapon/wrench,/obj/structure/lattice/catwalk,/turf/open/space,/area/space/nearstation) +"cuR" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 1},/turf/open/floor/plating/airless,/area/space/nearstation) +"cuS" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table_frame,/obj/item/weapon/wirerod,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plating,/area/maintenance/asmaint2) +"cuT" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating,/area/maintenance/asmaint2) +"cuU" = (/obj/structure/disposaloutlet,/obj/structure/disposalpipe/trunk{dir = 1},/turf/open/floor/plating/airless,/area/space) +"cuV" = (/obj/machinery/door/airlock{name = "Observatory Access"},/turf/open/floor/plating,/area/maintenance/aft) +"cuW" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 2; name = "SMES room APC"; pixel_y = -24},/turf/open/floor/plasteel/warning{dir = 10},/area/engine/engine_smes) +"cuX" = (/obj/structure/chair/office/light{dir = 4},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/plasteel/warning,/area/engine/engine_smes) +"cuY" = (/obj/structure/table,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -35},/obj/item/weapon/stock_parts/cell/high/plus,/turf/open/floor/plasteel/warning{dir = 6},/area/engine/engine_smes) +"cuZ" = (/obj/structure/table,/obj/machinery/camera{c_tag = "Engineering Storage"; dir = 4; network = list("SS13")},/turf/open/floor/plasteel,/area/engine/engineering) +"cva" = (/obj/structure/table,/obj/item/stack/rods{amount = 50},/turf/open/floor/plasteel,/area/engine/engineering) +"cvb" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical{pixel_y = 5},/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/turf/open/floor/plasteel/warning{dir = 2},/area/engine/engineering) +"cvc" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 0; pixel_y = -32},/obj/machinery/light,/turf/open/floor/plasteel/warning{dir = 2},/area/engine/engineering) +"cvd" = (/turf/open/floor/plasteel/warning{dir = 2},/area/engine/engineering) +"cve" = (/obj/item/clothing/glasses/meson,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/warning{dir = 2},/area/engine/engineering) +"cvf" = (/obj/structure/chair/stool,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/warning{dir = 2},/area/engine/engineering) +"cvg" = (/obj/machinery/button/door{id = "Singularity"; name = "Shutters Control"; pixel_x = 25; pixel_y = 0; req_access_txt = "11"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/warning{dir = 2},/area/engine/engineering) +"cvh" = (/obj/machinery/button/door{id = "Singularity"; name = "Shutters Control"; pixel_x = -25; pixel_y = 0; req_access_txt = "11"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/warnplate{dir = 8},/area/engine/engineering) +"cvi" = (/obj/machinery/particle_accelerator/control_box,/obj/structure/cable/yellow,/turf/open/floor/plating,/area/engine/engineering) +"cvj" = (/obj/structure/particle_accelerator/fuel_chamber,/turf/open/floor/plating,/area/engine/engineering) +"cvk" = (/obj/effect/landmark/start{name = "Station Engineer"},/turf/open/floor/plating,/area/engine/engineering) +"cvl" = (/obj/machinery/button/door{id = "Singularity"; name = "Shutters Control"; pixel_x = 25; pixel_y = 0; req_access_txt = "11"},/turf/open/floor/plating/warnplate{dir = 4},/area/engine/engineering) +"cvm" = (/obj/machinery/button/door{id = "Singularity"; name = "Shutters Control"; pixel_x = -25; pixel_y = 0; req_access_txt = "11"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/warning{dir = 2},/area/engine/engineering) +"cvn" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/warning{dir = 2},/area/engine/engineering) +"cvo" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/mask/gas{pixel_x = 3; pixel_y = 3},/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas{pixel_x = -3; pixel_y = -3},/turf/open/floor/plasteel/warning{dir = 2},/area/engine/engineering) +"cvp" = (/obj/structure/closet/firecloset,/turf/open/floor/plasteel,/area/engine/engineering) +"cvq" = (/obj/structure/sign/pods{pixel_x = 32; pixel_y = 0},/turf/open/floor/plasteel/warning{dir = 6},/area/engine/engineering) +"cvr" = (/obj/machinery/camera{c_tag = "Engineering Escape Pod"; dir = 4; network = list("SS13")},/turf/open/floor/plating,/area/engine/engineering) +"cvs" = (/obj/effect/landmark{name = "carpspawn"},/turf/open/space,/area/space/nearstation) +"cvt" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 1},/turf/open/floor/plating/airless,/area/maintenance/incinerator) +"cvu" = (/obj/structure/sign/fire{pixel_x = 0; pixel_y = 0},/turf/closed/wall/r_wall,/area/maintenance/incinerator) +"cvv" = (/obj/machinery/door/poddoor{id = "turbinevent"; name = "Turbine Vent"},/turf/open/floor/engine/vacuum,/area/maintenance/incinerator) +"cvw" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light/small{dir = 4},/turf/open/floor/plating,/area/maintenance/asmaint2) +"cvx" = (/obj/effect/decal/cleanable/cobweb/cobweb2,/turf/open/floor/plating,/area/maintenance/aft) +"cvy" = (/obj/structure/table,/obj/item/stack/sheet/plasteel{amount = 10},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/plasteel,/area/engine/engineering) +"cvz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/open/floor/plasteel,/area/engine/engineering) +"cvA" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) +"cvB" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/turf/open/floor/plasteel,/area/engine/engineering) +"cvC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/external{cyclelinkeddir = 2; name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/turf/open/floor/plating,/area/engine/engineering) +"cvD" = (/obj/machinery/door/poddoor/shutters/preopen{id = "Singularity"; name = "radiation shutters"},/turf/open/floor/plating,/area/engine/engineering) +"cvE" = (/obj/machinery/door/poddoor/shutters/preopen{id = "Singularity"; name = "radiation shutters"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/engine/engineering) +"cvF" = (/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/weapon/crowbar,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/warnplate{dir = 8},/area/engine/engineering) +"cvG" = (/obj/structure/chair/stool,/turf/open/floor/plating,/area/engine/engineering) +"cvH" = (/obj/structure/particle_accelerator/power_box,/turf/open/floor/plating,/area/engine/engineering) +"cvI" = (/obj/item/weapon/screwdriver,/turf/open/floor/plating,/area/engine/engineering) +"cvJ" = (/turf/open/floor/plating/warnplate{dir = 4},/area/engine/engineering) +"cvK" = (/obj/machinery/door/airlock/external{name = "External Access"; req_access = null; req_access_txt = "13"},/turf/open/floor/plating,/area/maintenance/asmaint2) +"cvL" = (/obj/effect/decal/cleanable/dirt,/obj/structure/closet/emcloset,/turf/open/floor/plating,/area/maintenance/asmaint2) +"cvM" = (/obj/structure/cable,/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard) +"cvN" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plating,/area/maintenance/aft) +"cvO" = (/obj/structure/chair,/turf/open/floor/plating,/area/maintenance/aft) +"cvP" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plating,/area/maintenance/aft) +"cvQ" = (/obj/structure/table,/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/stack/cable_coil,/obj/item/weapon/electronics/airlock,/obj/item/weapon/electronics/airlock,/turf/open/floor/plasteel,/area/engine/engineering) +"cvR" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/turf/open/floor/plasteel,/area/engine/engineering) +"cvS" = (/obj/structure/table,/obj/item/weapon/folder/yellow,/obj/item/clothing/ears/earmuffs{pixel_x = -3; pixel_y = -2},/turf/open/floor/plasteel,/area/engine/engineering) +"cvT" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel,/area/engine/engineering) +"cvU" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plasteel,/area/engine/engineering) +"cvV" = (/obj/machinery/light/small{dir = 8},/obj/structure/closet/emcloset,/turf/open/floor/plating,/area/engine/engineering) +"cvW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 32},/turf/open/floor/plating,/area/engine/engineering) +"cvX" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating/warnplate{dir = 1},/area/engine/engineering) +"cvY" = (/obj/machinery/power/rad_collector{anchored = 1},/obj/structure/cable/yellow,/turf/open/floor/plating/warnplate{dir = 1},/area/engine/engineering) +"cvZ" = (/obj/machinery/power/rad_collector{anchored = 1},/obj/item/weapon/tank/internals/plasma,/obj/structure/cable/yellow,/turf/open/floor/plating/warnplate{dir = 1},/area/engine/engineering) +"cwa" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/engineering) +"cwb" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/warnplate{dir = 8},/area/engine/engineering) +"cwc" = (/obj/structure/particle_accelerator/particle_emitter/left,/turf/open/floor/plating,/area/engine/engineering) +"cwd" = (/obj/structure/particle_accelerator/particle_emitter/center,/turf/open/floor/plating,/area/engine/engineering) +"cwe" = (/obj/structure/particle_accelerator/particle_emitter/right,/turf/open/floor/plating,/area/engine/engineering) +"cwf" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plating/warnplate{dir = 1},/area/engine/engineering) +"cwg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = -32},/turf/open/floor/plating,/area/engine/engineering) +"cwh" = (/obj/machinery/light/small{dir = 4},/obj/structure/closet/emcloset,/turf/open/floor/plating,/area/engine/engineering) +"cwi" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel,/area/engine/engineering) +"cwj" = (/obj/structure/sign/securearea,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall/r_wall,/area/engine/engineering) +"cwk" = (/obj/machinery/camera{c_tag = "Engineering MiniSat Access"; dir = 4; network = list("SS13")},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) +"cwl" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel,/area/engine/engineering) +"cwm" = (/obj/structure/transit_tube{icon_state = "Block"},/turf/open/floor/plating/warnplate{dir = 8},/area/engine/engineering) +"cwn" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar{id = "starboardsolar"; name = "Starboard Solar Array"},/turf/open/floor/plasteel/airless/solarpanel,/area/solar/starboard) +"cwo" = (/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard) +"cwp" = (/obj/structure/table,/obj/item/device/taperecorder{pixel_y = 0},/turf/open/floor/plating,/area/maintenance/aft) +"cwq" = (/obj/structure/table,/obj/item/weapon/storage/box/matches,/obj/item/weapon/storage/fancy/cigarettes,/turf/open/floor/plating,/area/maintenance/aft) +"cwr" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating/airless,/area/engine/engineering) +"cws" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/closed/wall/r_wall,/area/engine/engineering) +"cwt" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/engineering) +"cwu" = (/obj/structure/grille,/obj/structure/cable,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/engineering) +"cwv" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "Secure Gate"; name = "brig shutters"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/engineering) +"cww" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/external{cyclelinkeddir = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/turf/open/floor/plating,/area/engine/engineering) +"cwx" = (/obj/structure/cable/yellow{icon_state = "1-4"; d1 = 1; d2 = 4},/turf/open/floor/plating/warnplate{dir = 10},/area/engine/engineering) +"cwy" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plating/warnplate,/area/engine/engineering) +"cwz" = (/obj/item/weapon/wirecutters,/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/open/floor/plating/warnplate,/area/engine/engineering) +"cwA" = (/turf/open/floor/plating/warnplate,/area/engine/engineering) +"cwB" = (/turf/open/floor/plating/warnplate{dir = 6},/area/engine/engineering) +"cwC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel,/area/engine/engineering) +"cwD" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) +"cwE" = (/obj/machinery/door/airlock/command{name = "MiniSat Access"; req_access_txt = "65"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering) +"cwF" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel,/area/engine/engineering) +"cwG" = (/obj/structure/transit_tube/station{dir = 8; icon_state = "closed"; reverse_launch = 1},/obj/structure/transit_tube_pod,/turf/open/floor/plating/warnplate{dir = 8},/area/engine/engineering) +"cwH" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/yellow/visible,/turf/open/space,/area/space) +"cwI" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard) +"cwJ" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard) +"cwK" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard) +"cwL" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard) +"cwM" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard) +"cwN" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard) +"cwO" = (/obj/structure/grille,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/plating/airless,/area/engine/engineering) +"cwP" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating/airless,/area/engine/engineering) +"cwQ" = (/obj/machinery/camera/emp_proof{c_tag = "Singularity North-West"; dir = 2; network = list("Singularity")},/obj/machinery/power/grounding_rod,/turf/open/floor/plating/airless,/area/engine/engineering) +"cwR" = (/obj/machinery/power/grounding_rod,/turf/open/floor/plating/airless,/area/space/nearstation) +"cwS" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/engine/engineering) +"cwT" = (/obj/machinery/camera/emp_proof{c_tag = "Singularity North East"; dir = 2; network = list("Singularity")},/obj/machinery/power/grounding_rod,/turf/open/floor/plating/airless,/area/engine/engineering) +"cwU" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating/airless,/area/engine/engineering) +"cwV" = (/obj/structure/grille,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plating/airless,/area/engine/engineering) +"cwW" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 2; name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/turf/open/floor/plasteel,/area/engine/engineering) +"cwX" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel,/area/engine/engineering) +"cwY" = (/obj/machinery/light,/turf/open/floor/plasteel,/area/engine/engineering) +"cwZ" = (/obj/structure/transit_tube{icon_state = "N-S"},/turf/open/floor/plating/warnplate{dir = 8},/area/engine/engineering) +"cxa" = (/obj/structure/cable,/obj/machinery/power/solar{id = "starboardsolar"; name = "Starboard Solar Array"},/turf/open/floor/plasteel/airless/solarpanel,/area/solar/starboard) +"cxb" = (/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/airless,/area/engine/engineering) +"cxc" = (/turf/open/floor/plating/airless,/area/engine/engineering) +"cxd" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/open/floor/plating/airless,/area/space/nearstation) +"cxe" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plating/airless,/area/space/nearstation) +"cxf" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/turf/open/floor/plating/airless,/area/space/nearstation) +"cxg" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/open/floor/plating/airless,/area/space/nearstation) +"cxh" = (/obj/item/weapon/wrench,/turf/open/floor/plating/airless,/area/engine/engineering) +"cxi" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plating,/area/engine/engineering) +"cxj" = (/obj/structure/closet/emcloset,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 32},/turf/open/floor/plating,/area/engine/engineering) +"cxk" = (/obj/structure/transit_tube{icon_state = "N-S"},/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/engine/engineering) +"cxl" = (/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating/airless,/area/engine/engineering) +"cxm" = (/obj/machinery/power/emitter{anchored = 1; dir = 4; state = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/plating/airless,/area/engine/engineering) +"cxn" = (/turf/open/floor/plating/airless/warnplate{dir = 8},/area/engine/engineering) +"cxo" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating/airless,/area/space/nearstation) +"cxp" = (/obj/machinery/field/generator{anchored = 1; state = 2},/turf/open/floor/plating/airless,/area/space/nearstation) +"cxq" = (/turf/open/floor/plating/airless/warnplate{dir = 4},/area/engine/engineering) +"cxr" = (/obj/machinery/power/emitter{anchored = 1; dir = 8; state = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plating/airless,/area/engine/engineering) +"cxs" = (/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating/airless,/area/engine/engineering) +"cxt" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/turf/open/floor/plating,/area/engine/engineering) +"cxu" = (/obj/structure/sign/securearea,/turf/closed/wall,/area/engine/engineering) +"cxv" = (/obj/structure/transit_tube{icon_state = "N-SE"},/turf/open/space,/area/space) +"cxw" = (/obj/structure/transit_tube{icon_state = "D-SW"},/turf/open/space,/area/space) +"cxx" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat_interior) +"cxy" = (/obj/item/device/multitool,/turf/open/floor/plating/airless,/area/engine/engineering) +"cxz" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{icon_state = "1-4"; d1 = 1; d2 = 4},/turf/open/floor/plating/airless,/area/space/nearstation) +"cxA" = (/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/power/tesla_coil,/turf/open/floor/plating/airless,/area/space/nearstation) +"cxB" = (/obj/item/weapon/wirecutters,/obj/structure/lattice,/turf/open/space,/area/space/nearstation) +"cxC" = (/obj/structure/cable/yellow{icon_state = "0-4"; d2 = 4},/obj/machinery/power/tesla_coil,/turf/open/floor/plating/airless,/area/space/nearstation) +"cxD" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/open/floor/plating/airless,/area/space/nearstation) +"cxE" = (/obj/structure/transit_tube{icon_state = "D-NE"},/turf/open/space,/area/space) +"cxF" = (/obj/structure/transit_tube{icon_state = "E-NW"},/turf/open/space,/area/space) +"cxG" = (/obj/structure/transit_tube,/obj/structure/lattice,/turf/open/space,/area/space) +"cxH" = (/obj/structure/transit_tube,/turf/open/space,/area/space) +"cxI" = (/obj/structure/transit_tube{icon_state = "E-W-Pass"},/turf/open/space,/area/space) +"cxJ" = (/obj/structure/transit_tube,/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/yellow/visible,/turf/open/space,/area/space) +"cxK" = (/obj/structure/window/reinforced/fulltile,/obj/structure/transit_tube,/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat_interior) +"cxL" = (/obj/structure/transit_tube,/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat_interior) +"cxM" = (/obj/structure/transit_tube/station{reverse_launch = 1},/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat_interior) +"cxN" = (/obj/structure/transit_tube{dir = 8; icon_state = "Block"},/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat_interior) +"cxO" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/grille,/turf/open/floor/plating/airless,/area/engine/engineering) +"cxP" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/grille,/turf/open/floor/plating/airless,/area/engine/engineering) +"cxQ" = (/obj/effect/landmark/event_spawn,/turf/open/space,/area/space/nearstation) +"cxR" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/grille,/turf/open/floor/plating/airless,/area/engine/engineering) +"cxS" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/grille,/turf/open/floor/plating/airless,/area/engine/engineering) +"cxT" = (/turf/open/floor/plating/warnplate{dir = 1},/area/ai_monitored/turret_protected/aisat_interior) +"cxU" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plating/warnplate{dir = 1},/area/ai_monitored/turret_protected/aisat_interior) +"cxV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/grille,/turf/open/floor/plating/airless,/area/engine/engineering) +"cxW" = (/turf/open/floor/plating/airless/warnplate{dir = 9},/area/space/nearstation) +"cxX" = (/turf/open/floor/plating/airless/warnplate{dir = 1},/area/space/nearstation) +"cxY" = (/turf/open/floor/plating/airless/warnplate{dir = 5},/area/space/nearstation) +"cxZ" = (/obj/item/weapon/crowbar,/turf/open/space,/area/space/nearstation) +"cya" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 4; name = "MiniSat External Access"; req_access = null; req_access_txt = "65;13"},/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat_interior) +"cyb" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat_interior) +"cyc" = (/obj/machinery/door/airlock/external{cyclelinkeddir = 8; name = "MiniSat External Access"; req_access = null; req_access_txt = "65;13"},/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat_interior) +"cyd" = (/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat_interior) +"cye" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat_interior) +"cyf" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard) +"cyg" = (/obj/machinery/light{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/grille,/turf/open/floor/plating/airless,/area/engine/engineering) +"cyh" = (/obj/machinery/the_singularitygen,/turf/open/floor/plating/airless/warnplate{dir = 8},/area/space/nearstation) +"cyi" = (/obj/item/weapon/wrench,/turf/open/floor/plating/airless,/area/space/nearstation) +"cyj" = (/obj/machinery/the_singularitygen/tesla,/turf/open/floor/plating/airless/warnplate{dir = 4},/area/space/nearstation) +"cyk" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/grille,/turf/open/floor/plating/airless,/area/engine/engineering) +"cyl" = (/obj/structure/lattice/catwalk,/obj/machinery/atmospherics/pipe/simple/yellow/visible,/turf/open/space,/area/space) +"cym" = (/obj/structure/closet/emcloset,/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat_interior) +"cyn" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/sign/securearea{pixel_y = -32},/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat_interior) +"cyo" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -29},/obj/machinery/light/small,/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat_interior) +"cyp" = (/obj/machinery/camera{c_tag = "MiniSat Pod Access"; dir = 1; network = list("MiniSat"); pixel_x = 0; pixel_y = 0; start_active = 1},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 2; on = 1},/obj/machinery/light/small,/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat_interior) +"cyq" = (/obj/item/weapon/weldingtool,/turf/open/space,/area/space/nearstation) +"cyr" = (/turf/open/floor/plating/airless/warnplate{dir = 10},/area/space/nearstation) +"cys" = (/turf/open/floor/plating/airless/warnplate{dir = 2},/area/space/nearstation) +"cyt" = (/turf/open/floor/plating/airless/warnplate{dir = 6},/area/space/nearstation) +"cyu" = (/turf/closed/wall,/area/ai_monitored/turret_protected/aisat_interior) +"cyv" = (/obj/machinery/door/airlock/hatch{name = "MiniSat Foyer"; req_one_access_txt = "65"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) +"cyw" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/closed/wall,/area/ai_monitored/turret_protected/aisat_interior) +"cyx" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall,/area/ai_monitored/turret_protected/aisat_interior) +"cyy" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 8},/turf/open/floor/plating/airless,/area/ai_monitored/turret_protected/aisat_interior) +"cyz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard) +"cyA" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable,/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/starboard) +"cyB" = (/obj/structure/table,/obj/machinery/light/small{dir = 1},/obj/item/weapon/folder{pixel_x = 3},/obj/item/weapon/phone{pixel_x = -3; pixel_y = 3},/obj/item/weapon/pen,/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/turret_protected/aisat_interior) +"cyC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) +"cyD" = (/obj/structure/rack{dir = 1},/obj/machinery/light/small{dir = 1},/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/device/radio/off{pixel_y = 4},/obj/item/weapon/screwdriver{pixel_y = 10},/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/turret_protected/aisat_interior) +"cyE" = (/obj/item/device/radio/off,/turf/open/floor/plating/airless,/area/engine/engineering) +"cyF" = (/obj/machinery/airalarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/machinery/computer/station_alert,/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/turret_protected/aisat_interior) +"cyG" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/grimy,/area/ai_monitored/turret_protected/aisat_interior) +"cyH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/grimy,/area/ai_monitored/turret_protected/aisat_interior) +"cyI" = (/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,/turf/open/floor/plasteel/grimy,/area/ai_monitored/turret_protected/aisat_interior) +"cyJ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) +"cyK" = (/obj/machinery/door/poddoor/shutters{id = "teledoor"; name = "MiniSat Teleport Access"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) +"cyL" = (/obj/machinery/button/door{id = "teledoor"; name = "MiniSat Teleport Shutters Control"; pixel_x = 0; pixel_y = 25; req_access_txt = "17;65"},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/darkwarning{dir = 4},/area/ai_monitored/turret_protected/aisat_interior) +"cyM" = (/obj/machinery/teleport/hub,/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat_interior) +"cyN" = (/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plating/airless,/area/engine/engineering) +"cyO" = (/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating/airless,/area/engine/engineering) +"cyP" = (/obj/machinery/computer/security/telescreen/entertainment{pixel_x = -31},/obj/machinery/computer/monitor,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/turret_protected/aisat_interior) +"cyQ" = (/obj/structure/chair/office/dark{dir = 8},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/grimy,/area/ai_monitored/turret_protected/aisat_interior) +"cyR" = (/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/effect/landmark/start{name = "Cyborg"},/turf/open/floor/plasteel/grimy,/area/ai_monitored/turret_protected/aisat_interior) +"cyS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/grimy,/area/ai_monitored/turret_protected/aisat_interior) +"cyT" = (/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) +"cyU" = (/obj/machinery/door/airlock/hatch{name = "MiniSat Teleporter"; req_access_txt = "17;65"},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) +"cyV" = (/obj/machinery/bluespace_beacon,/turf/open/floor/plasteel/darkwarning{dir = 4},/area/ai_monitored/turret_protected/aisat_interior) +"cyW" = (/obj/machinery/teleport/station,/obj/machinery/light/small{dir = 4},/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat_interior) +"cyX" = (/obj/structure/grille,/turf/open/floor/plating/airless,/area/engine/engineering) +"cyY" = (/obj/structure/cable/yellow{icon_state = "0-2"; d2 = 2},/obj/machinery/power/tesla_coil,/turf/open/floor/plating/airless,/area/space/nearstation) +"cyZ" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/yellow/visible{icon_state = "intact"; dir = 5},/turf/open/space,/area/space) +"cza" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{icon_state = "intact"; dir = 10},/obj/structure/lattice,/turf/open/space,/area/space) +"czb" = (/obj/structure/table,/obj/machinery/microwave{pixel_x = 0; pixel_y = 4},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/turret_protected/aisat_interior) +"czc" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/grimy,/area/ai_monitored/turret_protected/aisat_interior) +"czd" = (/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/grimy,/area/ai_monitored/turret_protected/aisat_interior) +"cze" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/grimy,/area/ai_monitored/turret_protected/aisat_interior) +"czf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "MiniSat Foyer APC"; pixel_x = 27; pixel_y = 0},/obj/structure/chair,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) +"czg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/ai_monitored/turret_protected/aisat_interior) +"czh" = (/obj/machinery/camera{c_tag = "MiniSat Teleporter"; dir = 1; network = list("MiniSat"); pixel_x = 0; pixel_y = 0; start_active = 1},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/darkwarning{dir = 4},/area/ai_monitored/turret_protected/aisat_interior) +"czi" = (/obj/machinery/computer/teleporter,/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat_interior) +"czj" = (/obj/structure/cable,/obj/machinery/power/tracker,/turf/open/floor/plasteel/airless/solarpanel,/area/solar/starboard) +"czk" = (/obj/machinery/camera/emp_proof{c_tag = "Singularity West"; dir = 1; network = list("Singularity")},/turf/open/floor/plating/airless,/area/engine/engineering) +"czl" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/turf/open/floor/plating/airless,/area/space/nearstation) +"czm" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/open/floor/plating/airless,/area/space/nearstation) +"czn" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/open/floor/plating/airless,/area/space/nearstation) +"czo" = (/obj/machinery/camera/emp_proof{c_tag = "Singularity East"; dir = 1; network = list("Singularity")},/turf/open/floor/plating/airless,/area/engine/engineering) +"czp" = (/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/AIsatextAS{name = "AI Satellite Atmospherics"}) +"czq" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible,/obj/machinery/meter,/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/AIsatextAS{name = "AI Satellite Atmospherics"}) +"czr" = (/obj/structure/rack{dir = 1},/obj/machinery/status_display{pixel_y = -32},/obj/item/weapon/storage/box/donkpockets,/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/turret_protected/aisat_interior) +"czs" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -29},/obj/machinery/light/small,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) +"czt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) +"czu" = (/obj/machinery/turretid{control_area = null; enabled = 1; icon_state = "control_standby"; name = "Antechamber Turret Control"; pixel_x = 0; pixel_y = -24; req_access = list(65)},/obj/machinery/light/small,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/camera/motion{c_tag = "MiniSat Foyer"; dir = 1; network = list("MiniSat")},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) +"czv" = (/obj/machinery/ai_status_display{pixel_y = -32},/obj/structure/table,/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/turret_protected/aisat_interior) +"czw" = (/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/AIsatextFP{name = "AI Satellite Service"}) +"czx" = (/obj/structure/sign/securearea,/turf/closed/wall/r_wall,/area/engine/engineering) +"czy" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible,/obj/structure/rack,/obj/item/weapon/wrench,/obj/item/weapon/crowbar/red,/obj/item/clothing/head/welding,/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAS{name = "AI Satellite Atmospherics"}) +"czz" = (/obj/machinery/atmospherics/components/unary/tank/air,/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAS{name = "AI Satellite Atmospherics"}) +"czA" = (/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/aisat_interior) +"czB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/hatch{name = "MiniSat Antechamber"; req_one_access_txt = "65"},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) +"czC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/aisat_interior) +"czD" = (/obj/machinery/recharge_station,/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextFP{name = "AI Satellite Service"}) +"czE" = (/obj/machinery/portable_atmospherics/canister/air,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/plating/warnplate/corner{tag = "icon-warnplatecorner"; dir = 2},/area/ai_monitored/turret_protected/AIsatextAS{name = "AI Satellite Atmospherics"}) +"czF" = (/obj/machinery/atmospherics/components/binary/pump{dir = 2; name = "Mix to MiniSat"},/turf/open/floor/plating/warnplate{icon_plating = "warnplate"},/area/ai_monitored/turret_protected/AIsatextAS{name = "AI Satellite Atmospherics"}) +"czG" = (/obj/machinery/atmospherics/components/binary/pump{dir = 0; name = "Air Out"; on = 0},/turf/open/floor/plating/warnplate{icon_plating = "warnplate"},/area/ai_monitored/turret_protected/AIsatextAS{name = "AI Satellite Atmospherics"}) +"czH" = (/obj/structure/showcase{density = 0; desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; dir = 8; icon = 'icons/mob/robots.dmi'; icon_state = "robot_old"; name = "Cyborg Statue"; pixel_x = 9; pixel_y = 2},/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/open/floor/plating/warnplate{icon_plating = "warnplate"},/area/ai_monitored/turret_protected/AIsatextAS{name = "AI Satellite Atmospherics"}) +"czI" = (/obj/structure/showcase{density = 0; desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; dir = 4; icon = 'icons/mob/robots.dmi'; icon_state = "robot_old"; name = "Cyborg Statue"; pixel_x = -9; pixel_y = 2},/turf/open/floor/plasteel/darkblue/corner{dir = 1},/area/ai_monitored/turret_protected/aisat_interior) +"czJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) +"czK" = (/obj/structure/showcase{density = 0; desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; dir = 8; icon = 'icons/mob/robots.dmi'; icon_state = "robot_old"; name = "Cyborg Statue"; pixel_x = 9; pixel_y = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/darkblue/corner{dir = 4},/area/ai_monitored/turret_protected/aisat_interior) +"czL" = (/obj/structure/showcase{density = 0; desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; dir = 4; icon = 'icons/mob/robots.dmi'; icon_state = "robot_old"; name = "Cyborg Statue"; pixel_x = -9; pixel_y = 2},/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = 30},/turf/open/floor/plating/warnplate{icon_plating = "warnplate"},/area/ai_monitored/turret_protected/AIsatextFP{name = "AI Satellite Service"}) +"czM" = (/turf/open/floor/plating/warnplate{icon_plating = "warnplate"},/area/ai_monitored/turret_protected/AIsatextFP{name = "AI Satellite Service"}) +"czN" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/clothing/head/welding,/obj/item/stack/sheet/mineral/plasma{amount = 35; layer = 3.1},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plating/warnplate/corner{dir = 1},/area/ai_monitored/turret_protected/AIsatextFP{name = "AI Satellite Service"}) +"czO" = (/obj/machinery/light/small{dir = 8},/obj/machinery/camera{c_tag = "MiniSat Atmospherics"; dir = 4; network = list("MiniSat"); pixel_x = 0; pixel_y = 0; start_active = 1},/obj/machinery/airalarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/machinery/space_heater,/turf/open/floor/plating/warnplate{dir = 4},/area/ai_monitored/turret_protected/AIsatextAS{name = "AI Satellite Atmospherics"}) +"czP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/AIsatextAS{name = "AI Satellite Atmospherics"}) +"czQ" = (/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/AIsatextAS{name = "AI Satellite Atmospherics"}) +"czR" = (/obj/machinery/light/small{dir = 4},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 28; pixel_y = 0},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/darkblue/corner{dir = 4},/area/ai_monitored/turret_protected/AIsatextAS{name = "AI Satellite Atmospherics"}) +"czS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/aisat_interior) +"czT" = (/obj/machinery/light/small{dir = 8},/obj/machinery/camera{c_tag = "MiniSat Antechamber"; dir = 4; network = list("MiniSat"); pixel_x = 0; pixel_y = 0; start_active = 1},/obj/machinery/turretid{control_area = "AI Satellite Atmospherics"; enabled = 1; icon_state = "control_standby"; name = "Atmospherics Turret Control"; pixel_x = -27; pixel_y = 0; req_access = list(65)},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/darkblue/corner{dir = 1},/area/ai_monitored/turret_protected/aisat_interior) +"czU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) +"czV" = (/obj/machinery/light/small{dir = 4},/obj/machinery/turretid{control_area = "AI Satellite Service"; enabled = 1; icon_state = "control_standby"; name = "Service Bay Turret Control"; pixel_x = 27; pixel_y = 0; req_access = list(65)},/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,/turf/open/floor/plasteel/darkblue/corner{dir = 4},/area/ai_monitored/turret_protected/aisat_interior) +"czW" = (/obj/machinery/light/small{dir = 8},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = -28; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/darkblue/corner{dir = 1},/area/ai_monitored/turret_protected/AIsatextFP{name = "AI Satellite Service"}) +"czX" = (/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/AIsatextFP{name = "AI Satellite Service"}) +"czY" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/AIsatextFP{name = "AI Satellite Service"}) +"czZ" = (/obj/machinery/light/small{dir = 4},/obj/machinery/camera{c_tag = "MiniSat Service Bay"; dir = 8; network = list("MiniSat"); pixel_x = 0; pixel_y = 0; start_active = 1},/obj/machinery/airalarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/rack,/obj/item/weapon/storage/toolbox/electrical{pixel_x = -3; pixel_y = 3},/obj/item/weapon/storage/toolbox/mechanical,/obj/item/device/multitool,/turf/open/floor/plating/warnplate{dir = 8},/area/ai_monitored/turret_protected/AIsatextFP{name = "AI Satellite Service"}) +"cAa" = (/obj/machinery/power/apc{dir = 8; name = "MiniSat Atmospherics APC"; pixel_x = -27; pixel_y = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/portable_atmospherics/scrubber,/turf/open/floor/plating/warnplate{dir = 4},/area/ai_monitored/turret_protected/AIsatextAS{name = "AI Satellite Atmospherics"}) +"cAb" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/AIsatextAS{name = "AI Satellite Atmospherics"}) +"cAc" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/ai_slipper{icon_state = "motion0"; uses = 10},/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/AIsatextAS{name = "AI Satellite Atmospherics"}) +"cAd" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/AIsatextAS{name = "AI Satellite Atmospherics"}) +"cAe" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/hatch{name = "MiniSat Atmospherics"; req_one_access_txt = "65"},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) +"cAf" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) +"cAg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/ai_slipper{icon_state = "motion0"; uses = 10},/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/mob/living/simple_animal/bot/secbot/pingsky,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) +"cAh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) +"cAi" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/hatch{name = "MiniSat Service Bay"; req_one_access_txt = "65"},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) +"cAj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/AIsatextFP{name = "AI Satellite Service"}) +"cAk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/ai_slipper{icon_state = "motion0"; uses = 10},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/AIsatextFP{name = "AI Satellite Service"}) +"cAl" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/AIsatextFP{name = "AI Satellite Service"}) +"cAm" = (/obj/machinery/power/apc{dir = 4; name = "MiniSat Service Bay APC"; pixel_x = 27; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/port_gen/pacman,/turf/open/floor/plating/warnplate{dir = 8},/area/ai_monitored/turret_protected/AIsatextFP{name = "AI Satellite Service"}) +"cAn" = (/obj/machinery/porta_turret/ai{dir = 4},/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/turret_protected/AIsatextAS{name = "AI Satellite Atmospherics"}) +"cAo" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/mob/living/simple_animal/bot/floorbot,/turf/open/floor/plasteel/darkblue/corner,/area/ai_monitored/turret_protected/AIsatextAS{name = "AI Satellite Atmospherics"}) +"cAp" = (/obj/structure/sign/securearea{pixel_x = -32; pixel_y = 0},/obj/machinery/porta_turret/ai{dir = 4},/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1447; listening = 0; name = "Station Intercom (AI Private)"; pixel_y = -29},/turf/open/floor/plasteel/darkblue/corner{dir = 8},/area/ai_monitored/turret_protected/aisat_interior) +"cAq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/turretid{control_area = "AI Satellite Hallway"; enabled = 1; icon_state = "control_standby"; name = "Chamber Hallway Turret Control"; pixel_x = 32; pixel_y = -24; req_access = list(65)},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/aisat_interior) +"cAr" = (/obj/machinery/porta_turret/ai{dir = 4},/obj/structure/sign/securearea{pixel_x = 32; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/darkblue/corner,/area/ai_monitored/turret_protected/aisat_interior) +"cAs" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/mob/living/simple_animal/bot/cleanbot,/turf/open/floor/plasteel/darkblue/corner{dir = 8},/area/ai_monitored/turret_protected/AIsatextFP{name = "AI Satellite Service"}) +"cAt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/AIsatextFP{name = "AI Satellite Service"}) +"cAu" = (/obj/machinery/porta_turret/ai{dir = 4},/turf/open/floor/plasteel/vault{dir = 8},/area/ai_monitored/turret_protected/AIsatextFP{name = "AI Satellite Service"}) +"cAv" = (/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) +"cAw" = (/turf/closed/wall,/area/ai_monitored/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) +"cAx" = (/obj/machinery/door/airlock/maintenance_hatch{name = "MiniSat Maintenance"; req_access_txt = "65"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) +"cAy" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/hatch{name = "MiniSat Chamber Hallway"; req_one_access_txt = "65"},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) +"cAz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) +"cAA" = (/obj/machinery/door/airlock/maintenance_hatch{name = "MiniSat Maintenance"; req_access_txt = "65"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) +"cAB" = (/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 24; id = "syndicate_southmaint"; name = "south maintenance airlock"; turf_type = /turf/open/space; width = 18},/turf/open/space,/area/space) +"cAC" = (/obj/machinery/portable_atmospherics/scrubber,/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) +"cAD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) +"cAE" = (/turf/open/floor/bluegrid,/area/ai_monitored/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) +"cAF" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) +"cAG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) +"cAH" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) +"cAI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) +"cAJ" = (/obj/structure/rack,/obj/item/weapon/crowbar/red,/obj/item/weapon/wrench,/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) +"cAK" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) +"cAL" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) +"cAM" = (/obj/structure/lattice,/obj/machinery/camera{c_tag = "MiniSat External NorthWest"; dir = 8; network = list("MiniSat"); pixel_x = 0; pixel_y = 0; start_active = 1},/turf/open/space,/area/space) +"cAN" = (/obj/machinery/porta_turret/ai{dir = 4; installation = /obj/item/weapon/gun/energy/gun},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/bluegrid,/area/ai_monitored/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) +"cAO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) +"cAP" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) +"cAQ" = (/obj/machinery/porta_turret/ai{dir = 4; installation = /obj/item/weapon/gun/energy/gun},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/open/floor/bluegrid,/area/ai_monitored/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) +"cAR" = (/obj/structure/lattice,/obj/machinery/camera{c_tag = "MiniSat External NorthEast"; dir = 4; network = list("MiniSat"); pixel_x = 0; pixel_y = 0; start_active = 1},/turf/open/space,/area/space) +"cAS" = (/obj/structure/sign/securearea{pixel_x = 32; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) +"cAT" = (/obj/machinery/camera/motion{c_tag = "MiniSat Core Hallway"; dir = 4; network = list("MiniSat")},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/open/floor/bluegrid,/area/ai_monitored/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) +"cAU" = (/obj/structure/sign/securearea{pixel_x = -32; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) +"cAV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) +"cAW" = (/obj/machinery/door/airlock/maintenance_hatch{name = "MiniSat Maintenance"; req_access_txt = "65"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) +"cAX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/bluegrid,/area/ai_monitored/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) +"cAY" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) +"cAZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) +"cBa" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/floor/bluegrid,/area/ai_monitored/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) +"cBb" = (/obj/machinery/door/airlock/maintenance_hatch{name = "MiniSat Maintenance"; req_access_txt = "65"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) +"cBc" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) +"cBd" = (/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) +"cBe" = (/obj/machinery/airalarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/open/floor/bluegrid,/area/ai_monitored/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) +"cBf" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) +"cBg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/landmark/event_spawn,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) +"cBh" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 4; name = "MiniSat Chamber Hallway APC"; pixel_x = 27; pixel_y = 0},/turf/open/floor/bluegrid,/area/ai_monitored/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) +"cBi" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) +"cBj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) +"cBk" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1447; listening = 0; name = "Station Intercom (AI Private)"; pixel_x = -28; pixel_y = -29},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) +"cBl" = (/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/ai) +"cBm" = (/obj/machinery/status_display,/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/ai) +"cBn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/hatch{name = "MiniSat Chamber Observation"; req_one_access_txt = "65"},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) +"cBo" = (/obj/structure/sign/securearea,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/ai) +"cBp" = (/obj/machinery/ai_status_display,/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/ai) +"cBq" = (/obj/machinery/light/small{dir = 1},/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen{pixel_x = 4; pixel_y = 4},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) +"cBr" = (/obj/machinery/airalarm{frequency = 1439; pixel_y = 23},/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) +"cBs" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) +"cBt" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) +"cBu" = (/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) +"cBv" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/white,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) +"cBw" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 4; on = 1},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) +"cBx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) +"cBy" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) +"cBz" = (/obj/structure/chair/office/dark,/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) +"cBA" = (/obj/structure/grille,/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextFS{name = "AI Satellite Hallway"}) +"cBB" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ai_monitored/turret_protected/ai) +"cBC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_command{name = "AI Core"; req_access_txt = "65"},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) +"cBD" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/ai_monitored/turret_protected/ai) +"cBE" = (/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 24; id = "syndicate_se"; name = "southeast of station"; turf_type = /turf/open/space; width = 18},/turf/open/space,/area/space) +"cBF" = (/turf/open/floor/bluegrid,/area/ai_monitored/turret_protected/ai) +"cBG" = (/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) +"cBH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/ai_slipper{icon_state = "motion0"; uses = 10},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) +"cBI" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/status_display{pixel_x = -32},/turf/open/floor/bluegrid,/area/ai_monitored/turret_protected/ai) +"cBJ" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) +"cBK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) +"cBL" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/holopad,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) +"cBM" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) +"cBN" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) +"cBO" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/ai_status_display{pixel_x = 32},/turf/open/floor/bluegrid,/area/ai_monitored/turret_protected/ai) +"cBP" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/turretid{name = "AI Chamber turret control"; pixel_x = 5; pixel_y = -24},/turf/open/floor/bluegrid,/area/ai_monitored/turret_protected/ai) +"cBQ" = (/obj/machinery/door/window{dir = 1; name = "AI Core Door"; req_access_txt = "16"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/bluegrid,/area/ai_monitored/turret_protected/ai) +"cBR" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{cell_type = 5000; dir = 2; name = "AI Chamber APC"; pixel_y = -24},/obj/machinery/flasher{id = "AI"; pixel_x = -11; pixel_y = -24},/obj/machinery/camera/motion{c_tag = "MiniSat AI Chamber North"; dir = 1; network = list("MiniSat")},/turf/open/floor/bluegrid,/area/ai_monitored/turret_protected/ai) +"cBS" = (/obj/machinery/porta_turret/ai{dir = 4},/turf/open/floor/bluegrid,/area/ai_monitored/turret_protected/ai) +"cBT" = (/turf/closed/wall,/area/ai_monitored/turret_protected/ai) +"cBU" = (/obj/effect/landmark/start{name = "AI"},/obj/item/device/radio/intercom{broadcasting = 0; freerange = 1; listening = 1; name = "Common Channel"; pixel_x = -27; pixel_y = -9},/obj/item/device/radio/intercom{anyai = 1; freerange = 1; listening = 0; name = "Custom Channel"; pixel_x = 0; pixel_y = -31},/obj/item/device/radio/intercom{anyai = 1; broadcasting = 0; freerange = 1; frequency = 1447; name = "Private Channel"; pixel_x = 27; pixel_y = -9},/obj/machinery/newscaster/security_unit{pixel_x = -28; pixel_y = -28},/obj/machinery/requests_console{department = "AI"; departmentType = 5; pixel_x = 28; pixel_y = -28},/turf/open/floor/bluegrid,/area/ai_monitored/turret_protected/ai) +"cBV" = (/obj/machinery/ai_slipper{icon_state = "motion0"; uses = 10},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) +"cBW" = (/obj/structure/lattice,/obj/machinery/camera{c_tag = "MiniSat External SouthWest"; dir = 8; network = list("MiniSat"); pixel_x = 0; pixel_y = 0; start_active = 1},/turf/open/space,/area/space) +"cBX" = (/obj/effect/landmark{name = "tripai"},/obj/item/device/radio/intercom{anyai = 1; freerange = 1; listening = 0; name = "Custom Channel"; pixel_x = 0; pixel_y = 28},/obj/item/device/radio/intercom{broadcasting = 0; freerange = 1; listening = 1; name = "Common Channel"; pixel_x = -27; pixel_y = 5},/obj/item/device/radio/intercom{anyai = 1; broadcasting = 0; freerange = 1; frequency = 1447; name = "Private Channel"; pixel_x = 0; pixel_y = -25},/turf/open/floor/bluegrid,/area/ai_monitored/turret_protected/ai) +"cBY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/showcase{density = 0; desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; dir = 8; icon = 'icons/mob/robots.dmi'; icon_state = "robot_old"; name = "Cyborg Statue"; pixel_x = 9; pixel_y = 2},/obj/machinery/atmospherics/components/unary/vent_pump{dir = 1; on = 1},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) +"cBZ" = (/obj/structure/showcase{density = 0; desc = "An old, deactivated cyborg. Whilst once actively used to guard against intruders, it now simply intimidates them with its cold, steely gaze."; dir = 4; icon = 'icons/mob/robots.dmi'; icon_state = "robot_old"; name = "Cyborg Statue"; pixel_x = -9; pixel_y = 2},/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; on = 1},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) +"cCa" = (/obj/effect/landmark{name = "tripai"},/obj/item/device/radio/intercom{anyai = 1; freerange = 1; listening = 0; name = "Custom Channel"; pixel_x = 0; pixel_y = 28},/obj/item/device/radio/intercom{broadcasting = 0; freerange = 1; listening = 1; name = "Common Channel"; pixel_x = 27; pixel_y = 5},/obj/item/device/radio/intercom{anyai = 1; broadcasting = 0; freerange = 1; frequency = 1447; name = "Private Channel"; pixel_x = 0; pixel_y = -25},/turf/open/floor/bluegrid,/area/ai_monitored/turret_protected/ai) +"cCb" = (/obj/structure/lattice,/obj/machinery/camera{c_tag = "MiniSat External SouthEast"; dir = 4; network = list("MiniSat"); pixel_x = 0; pixel_y = 0; start_active = 1},/turf/open/space,/area/space) +"cCc" = (/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 24; id = "syndicate_s"; name = "south of station"; turf_type = /turf/open/space; width = 18},/turf/open/space,/area/space) +"cCd" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) +"cCe" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/closed/wall,/area/ai_monitored/turret_protected/ai) +"cCf" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/open/floor/bluegrid,/area/ai_monitored/turret_protected/ai) +"cCg" = (/obj/machinery/camera/motion{c_tag = "MiniSat AI Chamber South"; dir = 2; network = list("MiniSat")},/turf/open/floor/bluegrid,/area/ai_monitored/turret_protected/ai) +"cCh" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/machinery/ai_slipper{icon_state = "motion0"; uses = 10},/turf/open/floor/bluegrid,/area/ai_monitored/turret_protected/ai) +"cCi" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) +"cCj" = (/obj/machinery/airalarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/machinery/holopad,/turf/open/floor/plasteel/black,/area/ai_monitored/turret_protected/ai) +"cCk" = (/obj/machinery/camera{c_tag = "MiniSat External South"; dir = 2; network = list("MiniSat"); pixel_x = 0; pixel_y = 0; start_active = 1},/turf/open/space,/area/space) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaadaaeaaeaaeaaeaaeaadaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaagaahaaiaajaakaalaalaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaamaahaahaanaahaahaahaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaoaahaahaahaapaahaaqaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaraadaadaadaasaadaadaadaataaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaauaadaavaahaawaadaataaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaahaahaaxaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaadaadaadaadaadaahaahaaxaayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaazaahaahaaAaadaahaahaaxaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaazaahaaCaaDaadaahaahaaxaadaadaaEaaFaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaazaahaahaaGaadaaHaaIaaHaadaahaahaahaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaazaahaahaahaaKaahaahaahaaLaahaahaahaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaazaahaahaahaaMaahaahaahaaHaahaahaahaadaaNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaadaadaadaadaadaadaaOaahaahaadaadaadaadaadaadaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaPaaQaaRaaSaaTaadaahaahaahaadaaUaaVaaWaaXaaYaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaZaaQaaQaaQaaQabaaahaahaahaadaahaahaahaaCabbaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaPaaQaaQaaQaaQabcaahaahaahabdaahaahaahaahaahaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaQaaQaaQaaQaaQabeaahaahaahabfaahaahaahaahabgaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabjabkablabmabnaadaahaahaahaadaboabpaahaahabgaayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqabqabqabqabqabqabqabqabqabqabqaaaabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadabraaQabsaadaadaadaaHabtaaHaadabuaadaahaahaahaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvabhaaaabhaaaabhaaaabhaaaabhaaaaaaabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadabwabxabyaadaaaaadabzabzabzaadaadaadabAabBabCaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhabDabDabEabFabGabFabGabFabHabDabDaaaabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadabzabzabzaadaaaaarabIabJabKaataaaaadabzabzabzaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhabDabLabMabNabOabPabQabRabSabTabDaaaabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarabIabJabKabUaaaaaaaaaaaaaaaaaaaaaabVabIabJabKaataaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhabhabDabWabXabYabXabXabXabZabSacaabDabhabhaaaaaaaaaaaaaaaaaaaaaaaaabhaaaaaaaaaaaaaaaabhaaaabhaaaabhaaaaaaaaaaaaaaaaaaabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhabDabDacbaccacdaceacfabQabQabSacgabDabhabhabhabhabhabhabhabhabhabhabhaaaaaaaaaabhaaaabhaaaabhaaaabhaaaaaaaaaaaaaaaaaaabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachabDaciabQabQabQabQacjabQabQackaclabDaaaabhaaaaaaaaaaaaaaaaaaaaaaaaabhabhaaaaaaabhaaaabhaaaabhaaaabhaaaaaaaaaaaaaaaaaaabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabDabDacmacjabQabQacnacoacjabQacpacqabDabhacrabhabhabhabhabhabhabhabhabhabhabhabhabhaaaabhaaaabhaaaabhaaaaaaaaaaaaaaaaaaabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJaaaaaaacsacsacsacsacsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabDactabQabQabQacuacvacwabQabQacxacyabDabDaczabhabhabhabhabhabhabhabhaaaaaaaaaaaaabhabhabhabhabhabhabhabhaaaaaaaaaaaaaaaabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsacsacsacsacsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsaaaabhaaaacAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBacCacDacEacFacGabQacHabQabQabQabQabQabQabSabQacIacJaczacKacKacLacKacKacLacLacKacMacNacOacNacOacNacPacPacQacQacQacPacPaaaaaaaaaaaaaaaabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsaaaabhaaaacAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsabhacRabhacsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSacTacUacVacWacXabQabQacYacZadaabQadbadcaddabQadeadfaczabhaaaaaaaaaaaaaaaaaaabhacOadgadhadhadhadiacPadjadkadladmadnacPaaaaaaaaaabhaaaabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsabhadoabhacsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsacLacLacLacLabhabhaaaadpaaaabhabhacsacsacsacsacsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSadqadradsacWadtaduadtadtadtadvadtadtadtadwadtadtadxaczaczaczaczaczaczaczaczaczaczadyadhadzadAadgacPadBadCadDadEadFacPaaaabhadGabqabqabhabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsacsacsacsacsabhabhaaaadHaaaadIabhacsacsacsacsacsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsaaaaaaabhaaaabhaaaaaaadpaaaaaaabhaaaabhaaaaaaacsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSadJadKadLacWadMabQadNadtadOadPadQadtadRadSadTadtadUaczadVadWadXadYadZaeaaebaecaczaedadhadzaeeadgacQaefaegaehadDaeiacPaaaabhacNaejacNabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaaaaaaabhaaaabhaaaaaaadHaaaaaaabhaaaabhaaaaaaacsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsabhaekaekaekaekaekaaaaelaaaaekaekaekaekaekabhacsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBaemaenaeoacWaepabQaeqadtaeraesaetadtaeuaevaeqadtaewaczaexaeyaezaezaezaezaezaeAaczaeBadhadzaeeadgacQaeCaeDaeEadDaeFacPabhabhacNaeGacNabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsabhaeHaeHaeHaeHaeHaaaaeIaaaaeHaeHaeHaeHaeHabhacsaaaaaaaaaaaJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsaaaaeJaeKaeKaeKaeKaeLaeMaeNaeOaeOaeOaeOaePaaaacsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeQacBacBacBaeRaeSaeTacWaeUaeVaeWadtaeUaeXadtadtadtaeYaeWadtadtaczaeZafaafbafcafdafeaffafgafhadhadhadzaeeadgacPafiafjafkaflafmacPacOacOacMaejacNacNacMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsaaaafnafoafoafoafoafpafqafrafsafsafsafsaftaaaacsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsabhafuafuafuafuafuaaaaeMaaaafuafuafuafuafuabhacsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBafvafwafxafyafzafAafBafCafDafEafFafGafHafIafJafKafLafMafNaczafOafPafQafRafSafTafUafVafWadhadhafXafYacNacPafZacPagaacPagbacPagcagdacNageacNagfaggaggaggaaaaaaaaJaaaaaaaaaaaaaaaaaaaaaaaaaaaacsabhaghaghaghaghaghaaaafqaaaaghaghaghaghaghabhacsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsaaaaaaaaaabhaaaaaaaaaaeMaaaaaaaaaabhaaaaaaaaaacAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBagiagjagkaglagmagnagoagpagpagqagragpagpagpagsagtaguagvagwaczafOafOagxagyagzagAagBagCaczagDagEagFagGacNagHagIagJagKagLagMagJagNagOagPagQagRagSagTagUagVagWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsaaaaaaaaaabhaaaaaaaaaafqaaaaaaaaaabhaaaaaaaaaacsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsabhaekaekaekaekaekaaaaeMaaaaekaekaekaekaekabhacsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagXagYagZahaahbahcahdaheahfahgahgahhahiahjahkahkahkadtahlahmaczaczaczahnahoahpahqahrahsaczahtacOahuahvacNahwahxahyahzahAahBahCahDahEacNahFacNagfaggaggaggaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsabhaeHaeHaeHaeHaeHaaaafqaaaaeHaeHaeHaeHaeHabhacsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsaaaaeJaeKaeKaeKaeKaeLaeMaeNaeOaeOaeOaeOaePaaaacsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBacBacBahGahHahIahdabDadtahJadtadtadtahKahKahKahKahKahLahMahNahOahPahQahRahSahTahUahVahNahWagJahXahYahZaiaaibahyaicahAaidahCaieacNacMacNacNacNacMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsaaaafnafoafoafoafoafpafqafrafsafsafsafsaftaaaacsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsadIafuafuafuafuafuaaaaeMaaaafuafuafuafuafuabhacsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJaaaaaaaaaaaaacBacBacBacBahdabDaifaigaihaiiaijahKaikailaimainaioaipaiqairaisaitaiuahSaivahSaiwaixaiyaizaiAaiBahyaizaiCaiDaiEaiFaiGaiHaiIaiJaiKaiLaiMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsabhaghaghaghaghaghaaaafqaaaaghaghaghaghaghabhacsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsaaaaaaaaaabhaaaaaaaaaaeMaaaaaaaaaabhaaaaaaaaaacsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhabhabhabhabhabDaijaiNaiOaiPaijahKaiQaiRaiSaiTaioaipahNaiUaiVaiWaiXaiYaiZajaajbajcajdajeajfajgajhajhajgajiajjajkajlajmajnacNajoajpaiMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsaaaaaaaaaabhaaaaaaaaaafqaaaaaaaaaabhaaaaaaaaaacsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsabhaekaekaekaekaekaaaaeMaaaaekaekaekaekaekabhacsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabDaijaiNajqaiPajrahKajsajtaiSajuaioaipaiqajvajwajxajyajzajAajBajCajDajEajFajGajHajIajJajKajLajMajNajOajPajQajRajSajTajUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsabhaeHaeHaeHaeHaeHaaaafqaaaaeHaeHaeHaeHaeHabhacsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsaaaaeJaeKaeKaeKaeKaeLaeMaeNaeOaeOaeOaeOaePaaaacsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhaaaabhaaaaaaabDajVajWajWajXajYahKajZakaakbakcaioaipahNakdakeakfakgakhakiakjahNahNacMakkaklacMacMacNacNacNacNacNacNacNacNacNakmaknajUabhabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsaaaafnafoafoafoafoafpafqafrafsafsafsafsaftaaaacsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAakoafuafuafuafuafuaaaaeMaaaafuafuafuafuafuabhacsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhakpakpakqakqabDabDadtadtaeUakrahKahKahKahKahKaksaktakuakvakuakuakuakuakuakuakwakxakyakzakAakBakCakDakEakFakGakHakIakJakKakLakmaknajUabhabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsabhaghaghaghaghaghaaaafqaaaaghaghaghaghaghakoacAaaaaaaaaaaaaaaaaaaaaaaaaabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsaaaaaaabhaaaabhaaaaaaakMaaaaaaabhaaaabhaaaaaaacsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhakpakNakOakPakQakRakSakTakUakVakWakXakYakZalaalbalcaldalealdaldaldaldaldaldalfaldaldalgalealhalialjalkallalmalnaloalpalqakLakmaknaiMabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsaaaaaaabhaaaabhaaaaaaafqaaaaaaabhaaaabhaaaaaaacsaaaaaaaaaaaaaaaaaaaaaaaaabhaaaaaaaaaaaaaaaaaaaaaaaJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsacsacsabhabhabhabhalralsalrabhabhabhabhacsacsacsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaltalualualualtaaaabhalvalwalxalyalzalAalBalCalDalEalFalGalHalIalJalGalKalLalJalGalHalMalNalNalNalOalPalQalRalSalTalUalValWalValValValXalYalYakLakmaknajUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsacsacsabhabhabhabhabhafqabhabhabhabhabhacsacsacsabhaaaaaaaaaaaaaaaaaaaaaabhaaaaaaabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhaaaabhaaaaaaabhaaaalralZalraaaaaaabhaaaaaaabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaltamaambamcaltakqakqamdameamfamgamhakCahKamiahKahKamjamkamlammamnamoamlammamnampamqammamramsammamtamuammamvamwamxakCamyamzalYamAalYamBamCalYakLakmaknajUabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhabhaaaaaaabhaaaaaaamDaaaaaaabhaaaaaaabhaaaabhabhabhaaaaaaaaaaaaaaaaaaabhaaaaaaabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhaaaabhaaaaaaabhalralramEalralraaaabhaaaaaaabhaaaaaaaaaaaaaaaaaaaaaaaJamFamFamFamFamFaaaaluamGamHamIamJamKamLamMameamNamOamPakCamQakuamRahKamSamTamUahKamVamTamUahKamVamWamUahKamXamYamZanaakBahKamTanbancakCandaneanfanganfanhanialYakLakmaknajUabhaaaaaaaaaaaaaaaaaaaaaaaJaaaaaaaaaaaaaaaaaaaaaabhabhaaaaaaaaaabhaaaaaaanjaaaaaaabhaaaaaaabhaaaaaaaaaabhabhaaaaaaaaaaaaaaaankanlankabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhaaaabhaaaaaaabhanmannanoanpanmanqanqanqanqanqanqanqanqanqaaaaaaaaaaaaamFanransantamFaaaaltanualtanvaltakqakqakqanwanxanyanzakCanAanBanCahKanDamTanEahKanFamTanGahKanHamTanIahKanJanKanLanaanMahKanNanOanPakCanQanRanQanSanQanTanQanQakLakmaknaiMaiMabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhabhaaaaaaaaaaaaabhaaaanUanVanUaaaabhaaaaaaabhaaaaaaaaaaaaabhabhaaaaaaaaaaaaankanWankabhaaaabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhabhabhaaaaaaaaaabhaaaaaaaaaaaaaaaaaaaaaaaJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanmanXanYanZanmaoaaoaanqaobaocaodanqaoeanqaaaaaaaaaabhanqaofaocaoganqaaaaltaohaohaoialtaaaaaaaojakpakqaokaolakCaomaonaooakCaopaoqaoqaoraoqaoqaoqaoraoqaoqaoqaoraosaotaouaovaowakCakCakCakCakCaoxaoyaoxakKaoxaozaoxakKakLaoAaoBaoCaiMaiMaiMabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhabhaaaaaaaaaaaaaaaabhaaaanUaoDanUaaaabhabhabhabhaaaabhaaaaaaaaaabhabhaaaaaaaaaankaoEankabhaaaabhaaaabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoFaoFaoFaoFaoFaoFaoFaoFaoFaoFaoFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanmaoGaoHaoIanmaoJaoKaoLaoMaocaoNanqanqanqamFanqamFamFanqaoOaoPaoOanqaaaaluaohaohaoQaltakqakqakqaoRaoSaoTaoUalvakCakCakCakCaoVaoVaoVaoWaoVaoVaoVaoXaoVaoVaoVaoWaoVaoVaoVaoYaoYaoZapaapaapaapbaoxaoyaoxakKaoxaozaoxakKakLakmapcapdapeapfapeabqaaaaaaaaaaaaaaaaaaaaaaaaaaaabhabhaaaaaaaaaaaaaaaaaaabhanUanUapganUanUabhaaaaaaabhaaaabhaaaaaaaaaaaaabhabhaaaaaaankaoEankabhabhabhabhabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoFaphapiapiapiapiapiapiapiapjaoFabhaaaaaaaaaaaaaaaaaaaaaaaaabhaaaaaaaaaaaaaaaaaaanmanmapkaplanmapmaocanqaocaocaocaoLaocaocapnaocansaocaocaocaocapoamFaaaaltappaohaohapqapramLapsameamNamOamNaptaoYaoYaoYapuaoYaoYapvaoYaoYaoYaoYaoYaoYaoYapwaoYaoYaoYapxaoYaoYaoYaoYaoYaoYapyakKapzapAapBapCapDapAakKapEapFapGapHapHapIaiMabqaaaaaaaaaaaaaaaaaaaaaaaaabhabhaaaaaaaaaaaaaaaaaaaaaabhapJapKapLapMapJabhaaaaaaabhaaaabhaaaabhaaaaaaaaaabhankankankaoEankankankankankankaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoFapNapOapOapOapOapOapOapOapPaoFabhaaaaaaaaaabhaaaaaaaaaaaaanqanqanqanqanqabhabhanqapQapRapSapTaoKanqanqamFamFanqanqanqanqamFanqamFamFanqapUaocapVanqaaaaltapWapWapWaltakqakqapXapYapZaqaaqbakpaqcaqcaqcaqcaqcaqdaqeaqcaqcaqcaqcaqcaqcaqcaqfaqgaqgaqgaqhaqiaqgaqjaqkaqlaqmapbaqnaqoakLakLakLakLakLakLakLakmaqpaiMaqqaqraiMaaaaaaaaaaaaaaaaaaaaaaaaabhabhaaaaaaaaaaaaaaaaaaaaaaaaabhapJaqsaqtaquapJabhaaaaaaabhaaaabhaaaabhankanlankanlankaqvaoEaoEaoEaoEaoEaoEaqwankabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhaoFapNapOapOapOapOapOapOapOapPaoFaoFaqxaoFaoFabhabqabqanqanqanqaqyaqzaqAanqaaaaaaanqaocapRapmaocaqBanqaqCaqCaqDaqCaqCaqDaqDachachaqEaqEanqaqFaocaqGanqaaaaltaqHaqHaqHaltaaaabhalvakpaqIakpaqJaqKaqKaqKaqLaqKaqKaqKaqMaqNaqNaqNaqOaqNaqNaqPaqQaqRaqSapHaqTapHapHapHapHaqUapHapHapHapHapHaqVaqWaqXaqYaqZaqZaraarbarcardareaiMaaaaaaaaaaaaaaaaaaaaaaaaabhabhaaaaaaaaaaaaabqabqabqaaaabhapJarfargarhapJariariariariarianlanlanlankarjaoEaqwankankaoEankankankankarkankankabhabhabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhabhaoFapNapOapOapOarlapOapOapOapParmarnaroarpaoFabhanqarqanqarrarsaocartaocanqamFamFanqaruapRapmaruanqanqanqamFamFamFanqanqacharvaqDaqDachanqanqaoLanqanqaaaaaaaaaaaaaaaaaaaaaabhakparwamLakparxaqKaryarzarAarBarAaqKarCaqNarDarEarFarGaqNaoVaoYarHarIarJarKarKarKarKarKarLarMarKarKarKarKarKarNarOarParQarRarSarTaiMarUarVaiMabharWarXarXarYarXarXarZabhabhaaaaaaaaaabhanlasaanlaaaariapJapJasbascapJasdaoEaoEaoEankaseaoEasfankasgaoEaoEashankaoEankasiasjankaoEaskankaaaaaaaaaaaaaaaaaaaaaaaaaaJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhaoFapNapOapOaslasmapOapOapOapPasnasoaspasqaoFabhanqaocanqasrassapTastasuanqaqGaocasvaocapRaswaocaocaocaocaocaocaocaocanqanqanqaqDachaqDachasxasyasxaaaaaaaaaaaaaaaaaaaaaaaaabhakpaszasAakpasBaqKasCasDasEarAarAaqKarCaqNasFarFasGasHasIaoVaoYapaarIakmasJasJasJasJasJasKasLasJasJasJasJasJasJasJasJasMasNaiMasOasMasMasMasMasMasPasQasQasQasQasQasPasMabhaaaaaaaaaabhasRaoEanlaaaariasSasTasUasVaoEaoEaoEankaoEankasWaoEaoEankaoEasXasYasZarkaoEankataatbankaoEatcankaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhaoFapNapOapOapOatdapOapOapOapPaqxateaspatfaoFanqanqarqanqanqanqaoLatgathathatiatjatkatjatlatmatnatoanqaocanqanqanqaocanqatpanqachaqDaqCaqDasxasyasxaaaaaaaaaaaaaaaatqatqatqatqatqatqatqatqatraqKatsattatuarAatvaqKarCatwatxatyatzatAasIaoVaoYatBarIakmasJatCatDatEatFatGatHasJatIatJatKasJatLatJatMasMatNatOatPatQatRatSatTasMasPasQasQasQasQasQasPasMabhabhabhabhanlanlatUanlanlariatVaoEatWaoEaqvaoEankankatXankankatYankankasZatZauaaoEankaoEaubaubaubaubaubaubaubaubaubaucaucaucaucachaucaucaqDaqDaqCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhaoFapNapOapOapOapOapOapOapOapPaqxaudaspaueaoFaufaugauhauiauiauiauiauiauiaujaukaulanqanqanqanqaocanqanqaocaumanqatnaocanqanqanqanqaqCaqCaqCasxaunasxaaaaaaaaaabhabhatqauoaupatqauqaurausatqatraqKarBautarBauuarAaqKauvauwauxarFauyarFasIaoVaoYauzarIakmasJauAauBauCauDauEauFasJauGauHauIasJauJauKauLasMauMauNauOauOauOauOauPauQauRasQasQasQasQasQasPasMasMasMaaaaaaanlaoEaoEaoEasdariauSasZatWaoEauTauUauVarkaoEaoEaoEaoEauWaoEaoEatZauXaoEauYaoEaubauZavaavbaubavcavdaveaubaqDaqCaqCaqCaqCaqCaqCaqCaqCaqCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJaaaaaaaaaaaaaoFapNapOapOapOapOapOapOapOapPaqxaudavfavgaoFaocaocavhaviavjavjavjavjavjavjavkavlavmachavnanqaocavoaruatnavpanqavqaocaocaocavramFaqCaqCaqDasxasyasxaaaaaaaaaatqatqatqasyasyatqasyasyasyatqavsaqKarBavtavuavvarBaqKarCavwaqNavxavyavzaqNavAaoYapaarIakmasJasJasJasJasJavBavCasJasJavDavEasJasJavFavEasMavGavHavIavJavJavKavLavMavNasQasQasQasQasQavOavPavQavRaaaaaaanlaoEaoEavSaoEariavTaoEavUavVavVavVavVavWavVavXaoEaoEaoEaoEaoEaoEaoEaoEankauUaubavYavZavZaubawaawbawcaubaqCaqCaqCaqCaqCaqCaqCaqCaqCaqCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhabhabhabhabhaoFawdaweaweaweaweaweaweaweawfaqxawgawhawiaoFawjawkawlawmapUawnawoawpawqanqawravlachawsavmamFaocaumanqanqanqanqanqanqanqawtavramFaqDaqCaqDasxasyasxabqabqabqawuawvawwasyasyatqatqawxatqatqavsaqKaqKawyaqKawzaqKaqKawAawBaqNaqNaqNaqNaqNawCaoYawDarIakmasJatCatDawEatFawFawGawHawIawJawKawLawMawNawOawPawQavHawRawSawSawTawUavMavRasQasQasQasQasQavRawVawWavRabhabhankaoEaoEankankariariariariariariariariariankawXawYankankankankankankankankaoEawZaubavZavZaxaaxbavYaxcaubaqCaqCaqCaqCaqCaqCaqCaqCaqCaqCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxdaoFaoFaoFaoFaoFaoFaoFaoFaoFaoFaoFaxeaxfaoFaoFaxganqavhaxhaocaxiaxjaocaocanqawravlaxkaqDaxkanqaocaxlanqaxmaxnanqavqasuaxoaxpaxpaxpaxqaxqaxqaxraxsaxtaxqaxqaxqaxraxtaxraxraxsaxraxuaxsaxvaxwaxxaxyaxyaxzaxyaxAaxyaxyaxBaxCaxyaxyaxyaxyaxDaxEaxFaxFaxGaxHasJauAauCauCaxIauEaxJaxKaxLaxMaxNaxOaxPaxQaxRaxSaxTaxUawRaxVawSawTawUaxWavRasQasQasQasQasQavRaxXawWasMaaaaaaankaxYasgaoEaxZankayaaqwaybaycaqvankavTaqvankaydaoEankayeaoEankayfaygayhayiayiayiayjaykaylaymaynayoaypaubaucaucachachaucaucaucaucaqDaqDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayqayqayqayraysaytayuayvaywaywaywaywaywaywaywayxayyayzayAayBayCanqayDaxhayEayFayGaocayHanqawrayIaxpaxpaxpaxpayJaxpaulaocayGayKaocaocayLayMayNayOayPayPayPayQayPayRayPayPaySayTayUayVayVayVayVayVayVayWayXayYayZayZayZayZazaayZayZazaayZazbazbazbazbazbazcazdazeazfazgasJasJasJasJasJavBazhaziazjazkazlazmaznazoazpazqazrazsaztazuazuazvawUazwavNasQasQasQasQasQazxazyazzasMaaaaaaankaoEaoEaoEaoEaoEaoEazAavVavVavVavVavVavVavVazBaoEaoEaoEaoEauYaoEaoEazCazDazEazFazGazHazIavZavZavZazJaubaqDaqCaqCaqCaqCaqCaqCaqCaqCaqCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazKazLazMazNazOazPazQazPazRazSazRazTazUazUazVazWazUazXazYazUazUazZaxpaAaaxhaAbaocaocaAcaAdanqaAeaAfaAgaAgaAgaAgaAgaAhavlaAiaocanqaufaufavlaAjanqaAkaAlaAmaAmaAnaAmaAoaAmaAmaApaAqaAraAsaAsaAsaAsaAsaAsaAsaAtaAuaAvaAwaAxaAyaAzaAAaABaACaADaAEaAFaAGaAHaAIaAJaoYaAKaiMapdasJatCatDaALatFaAMaANaziaziaziazjaAOaAPaAQaARawPaASaATaAUaAVaAWaAXaAYaAZaBaasQasQasQasQasQaBbasMasMasMankankankaqvankankarkankankatWankankaBcankankarkankatWaxYankankarkankaoEaxYazCaBdatZaubaBeaBfaBgaBhaBiaBfaBjaubaqDaqCaqCaqCaqCaqCaqCaqCaqCaqCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayqayqayqayraysaBkaysaBlaBmaBlaBnazSazSaBoaBlaBmaBlaBpaBqaBraBsanqayDaxhanqanqanqanqaBtaBtaBuaBvaBtaBtaBtaBtaBtawrayIaxpaxpaxpaxpaxpaBwaAjaqGaAkaaaabhaaaaBxaaaaByaaaabhaaaaAqaAraAsaBzaBAaBBaBCaBDaAsaAtaBEaBFaBGaBGaBHaBIaBJaBJaBJaBKaBLaBLaBMaBNaAIaBOaoYaBPaiMapdasJauAauCauCaBQauEaBRaBSaBTaBUaBVaBWaBXaBXaBYaBXasMaBZaCaaCbaCcaCdaCeasMaBbasQasQasQasQasQaBbankatcaoEaCfaCgankankankatcaoEankatcatWankaChaoEankaCiaoEankaCjaCkankaClaoEankarkarkazCaCmarkaubaCnaBfaCoaCpaCoaBfaCqaubaqDaqDaqDaqCaqCaqCaqCaqCaqCaqCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxdaCraxdaCsazQaBlaCtaCuaCvaCwaBlazQaCsaBlaxdaCxaCyanqaCzaCAaCBaCBaCCaCDaBtaCEaCFaCGaCHaCIaCJaCEaBtaCKaCLaCMaCNaCNaCNaCNaCNaCOaufaAkabhaCPaCPaCQaCPaCRaCPaCPabhaAqaAraAsaCSaCTaCUaCVaCSaAsaCWaCXaCYaCZaDaaDbaDcaDdaDeaDfaDgaDhaAGaAGaAGaDiaBOaoYaDjaiMapdasJasJasJasJasJaDkavCaBXaBXaBXaBXaBXaBXaDlaDmaDnaBXasMasMasMasMaDoaDpasMaBbasQasQasQasQasQaBbankankaoEaDqaCgankaDrankaoEaoEankaoEatWankaoEaoEankaoEaoEankatWauUankaoEaoEankaDsaoEazCaBdasZaubaubaubaubaubaubaubaubaubaucaucaucaucaucaqDaqCaqCaqCaqCaaaaaaaaaaaaaaJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBlaBmaBlaBlaBlaBlaBlaBlaBmaBlaaaaxdaDtaBsaDuaDvaDwaDuaDuaDuaDxaBtaCEaDyaDzaDAaDBaDCaCEaBtanqaDDaDEaDEaDEaDEaDEaDEaDFaDEaDGaaaaCPaDHaDIaDJaDKaDLaCPaaaaAqaAraAsaCSaDMaDNaDOaCSaAsasyaDPaAvaDQaDRaDSaDTaDUaDhaDVaDWaAGaAGaDXaAGaDiaBOaoYaBPaiMapdasJatCatDaDYatFaAMavCaBXaDZaEaaEbaEbaBXaDlaEcaDnaBXaEdaEeaEfaEgaEhaDpabhaEiaEjaEjaEjaEjaEjaEkaaaankaoEaElaEmankankankankankankaEnaEoankankankankankankaEpaEqaEraEsaEsaEsaEtaEuaEvaEwaExaEyaEzaEAaEBaEsaECaEDaEEaEFaEFaEFabhabhabhabhabhabhabhabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJaaaaaaaaaaaaaaaaEGaEGaEHaEGaEIaEIaEIaEIaEGaEHaEGaEGaxdaBnaEJaDuaEKaELaEMaENaEOaEPaBtaCEaEQaERaESaERaERaCEaBtaETaEUaEVaEWaEXaEYaEZaFaaFbaFcaDGabhaCPaFdaFeaFfaFgaFhaCPabhaAqaAraAsaFiaFjaFkaFlaFmaAsasyaFnaAvaFoaFpaFqaAGaFraFsaFtaFuaFvaDiaAIaFwaAIaBOaoYaBPaiMapdasJauAauBauCaFxauEaFyaFzaFAaFBaFCaFCaFDaFEaFFaFGaBXaFHaFIaFJaFKaFLaDpaaaabhaaaabhaaaabhaaaabhaaaankaxYaFMaFNaFOaFPankauTaoEaxYatWaoEankaaaankaCfaFNaFNaFQaFRaFSaFSaFSaFSaFSaFTaFUaFVaFWaFXaFXaFXaFYaFZaGaaGbaGcaGdaGeaGfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEGaEGaEGaEGaGgaGhaGiaGjaGkaGlaGmaGnaGhaGoaGpaBlaBnaGqaDuaGraGsaGtaGuaGvaGwaBtaGxaERaERaERaERaERaERaGyaGzaEUaGzaGAaGzaGzaGzaGzaFbaGzaDGaaaaCPaGBaGCaGCaGDaGEaCPaaaaAqaAraAsaGFaGGaGHaGIaGJaAsasyaGKaAvaAvaFuaGLaGMaGNaGOaAvaAvaAGaAGaAIaGPaAIaBOaoYaBPaiMapdasJasJasJasJasJaGQaGRaGSaGTaGUaGVaGVaGVaGVaGVaGWaBXaGXaGYaGZaEgaEhaDpankankankankankankankankankankankankankaHaankankankankaCfaHbaHcaHdaHeaHdaHfaHgaHhaHiaHjaHkaHkaHkaHkaHlaHmaHnaHlaHlaHlaHlaHlaHlaHlaHoaHpaHqaEFaEFaEFabhabhabhabhabhabhabhabhabhabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEIaHraHraEGaGhaHsaGhaHsaGhaHsaGhaHsaGhaGoaHtaBlaBnaHuaDuaHvaHwaHxaHyaHzaHAaBtaHBaERaERaERaERaERaHCaBtaHDaHEaHFaHGaGzaGzaGzaHHaHIaHJaDGabhaCPaHKaHLaHMaHNaHOaCPabhaAqaHPaAsaHQaHRaGHaHSaHTaAsasyaHUaAIaHVaAGaHWaHXaHYaAGaHZaAIaIaaIbaAIaHXaAIaIcaqQaIdaiMapdapdapdapdapdapEavBavCaBXaIeaIfaBXaIgaBXaIhaBXaIiaBXaIjaIkaIlaImaInaIoaIpaIqaIraIsaItaIuaIuaIuaIuaIvaIwaIuaIuaIxaIyaIzaIAaEsaIBaICaIDaIEaIFaIEaIGaIHaHkaIIaIJaHkaIKaILaIMaHlaINaIOaHlaIPaIQaIRaISaITaIUaIVaIWaIXaIYaIZaJaaaaaaaaaaaaaaaaabhaaaaaaaaaaaaaaaaaaaaaaJbaJcaJcaJcaJcaJcaJbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJdaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEIaGhaGhaJeaGhaHsaGhaHsaJfaHsaGhaHsaGhaGoaHtaBlaBnaJgaDuaDuaJhaJiaJjaJiaDuaBtaBtaBtaBtaJkaERaJlaJmaBtaJnaEUaGzaGzaGzaJoaGzaGzaFbaJpaDGaaaaCPaCPaJqaJraJqaCPaCPaaaaAqaAraAsaJsaJtaJuaJvaJwaAsasyaJxaAIaJyaAGaJzaHXaJAaAGaJBaAIaDiaDiaAIaJCaAIaJDaJEaJFaiMapEaiMaiMaiMaiMaiMaJGaJHaBXaJIaJJaBXaJKaBXaJLaBXaJMaBXaJNaJOaJPaEgaJQaJRaJSaJTaJUaJUaJVaJWaJUaJXaJYaJZaKaaKbazEazEazEaKcaKdaKeaKfaKgaoEaKhaKhaKhaKiaKjaHkaKkaKlaKmaKnaKoaKpaHlaKqaKraHlaKsaKtaKuaKvaITaKwaHoaHpaGcaKxaKyaJaaaaaaaaaaaaaaaaabhaaaaaaaaaaaaaaaaaaaJbaKzaKAaKBaKCaKBaKDaKzaJbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEIaKEaKEaEGaGhaHsaGhaHsaGhaHsaGhaHsaGhaGoaHtaBlaBnazSaKFaKGaKHaKGaKIazSaKJaKKaKLaKMaBtaKNaERaERaKOaBtaKPaEUaGzaKQaKRaKSaKTaKUaKVaKWaDGaaaabhaaaaKXaKYaKXaaaabhaaaaAqaAraAsaKZaLaaLbaHSaLcaAsasyarCaAIaLdaAGaHXaHXaHXaLeaLfaAIaaaaaaaLgaLhaLiaLjaLkaLlaLmaLnaLgaaaaaaaLoaLpaLqaLraBXaLsaJJaJJaJJaLtaJJaJJaJJaBXaEgaLuaEgaEgaEgaDpaLvaLwaLwaLxaLyaLzaLwaLAaLBaLBaLCaLDaLEaLBaLFaKhaKhaLGaKiaKhaKhaKhaLHaLIaKiaKjaHkaLJaLKaLLaLMaLNaLOaHlaLPaLQaLRaLSaLTaLUaLVaLWaKwaHoaHpaGcaIYaLXaJaaaaaaaaaaaaaaaaabhaaaaaaaaaaaaaaaaaaaJbaLYaLZaMaaMaaMaaMbaMcaJbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEGaEGaEGaEGaMdaGhaGhaGhaGhaGhaGhaMeaGhaGoaMfaBlaBnazSaMgaMhaMiaMhaMjaMhaMhaMhaMkazSaBtaMlaMmaMlaBtaBtaMnaMoaMnaDEaDEaDEaDEaMnaMpaMqaDGaMraMsaMsaMtaMuaMvaMsaMsaMwaAqaMxaAsaMyaAsaMzaMAaMBaAsatqaqMaAIaAIaAIaDiaGMaDiaAIaAIaAIaLgaLgaLgaMCaLkaLkaLkaLkaLkaMDaLgaLgaLgaLoaMEaLqaMFaBXaBXaBXaBXaBXaBXaBXaBXaBXaBXaMGaMHaMIaMJaMKaMLaMMaMNaLwaMOaLyaMPaMQaMHaLBaMRaMSaLDaMTaLBaMUaMVaMWaMXaMYaMZaMZaNaaNbaNcaKiaKjaHkaNdaNeaNfaNgaLNaNhaHlaNiaNjaNkaNlaNmaNnaNoaHlaHlaNpaHpaGcaKxaKyaJaaaaabhabhabhabhabhabhabhaaaaaaaaaaaaaJbaNqaNraNsaNtaMaaMbaNuaJbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEGaEGaNvaEGaEIaEIaEIaEIaEGaEHaEGaEGaxdaNwazSaNxaNyaNzaNAaNBaNCaysaNDaNEazSaNFaNGaNHaNHaNIaNHaNHaNJaNHaNHaNHaNHaNHaNHaNKaNLaNMaNNaNOaNPaNPaNQaNPaNPaNPaNPaNRaNSaNTaNUaNPaNVaNPaNWaJEaNXaNYaNZaOaaObaLmaLmaLmaLjaLkaLkaOcaLkaLkaOdaOeaOfaOgaOhaOiaOjaLkaLkaOcaOkaOlaOmaOnaOoaOpaOqaOraLkaOsaLkaLwaOtaOuaMHaMHaMHaOvaOwaOxaOyaOzaLwaOAaOBaMHaOCaODaLBaOEaMSaOFaOGaLBaLBaOHaOIaOJaOKaOLaOMaONaOOaOPaKiaKjaHkaOQaOQaORaOSaOQaOQaHlaOTaOUaHlaOVaNoaNoaNoaHlaOWaOXaOYaGcaEFaEFaEFaOZaOZaOZaPaaPaaPaabhabhaaaaaaaaaaJbaJbaJbaJbaJbaJbaPbaPcaJbaJbaJbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBlaBmaBlaBlaBlaBlaBlaBlaBmaBlaaaaxdaDtaPdaNxaPeaPfaPgaPhaPiaysaPjaNEaPkaKFaNGaPlaPmaPnaPoaPpaPqaNHaNHaNHaNHaNHaNHaNHaNLaNHaNGaPraNHaNHaPsaPtaPuaPuaPuaPvaPwaPuaPxaPuaPyaPuaPzaPAaPBaPCaPDaLkaLkaLkaLkaLkaLkaLkaLkaOcaLkaLkaPEaPFaPGaPHaPIaPJaPKaLkaLkaOcaLkaPLaLkaLkaLkaLkaLkaLkaLkaPMaLkaLwaPNaMHaMHaPOaPPaPQaPRaPSaPTaPUaLwaPVaPWaPXaLwaLwaLBaPYaMSaPZaQaaQbaLBaKhaKhaQcaKhaKhaKhaQdaQeaQdaKiaKjaHkaQfaOQaOQaQgaOQaQhaHlaHlaHlaHlaHlaHlaHlaQiaHlaHoaHoaHpaGcaQjaQkaEFaQlaQmaQnaQoaQpaPaabhaaaaaaaaaaaaaJbaQqaQqaQqaJcaQraMaaQsaQtaQuaJcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxdaCraxdaBlazQaBlaQvaQwaQxaQyaBlazQaBlaBlaxdaBnazSaNxaQzaQAaPgaPhaPiaysaQBaNEazSaKFaNGaNHaQCaQDaQDaQDaQEaQFaQGaQDaQHaQDaQDaQDaQIaQDaQJaQDaQDaQDaQKaQLaQMaQNaQNaQOaQPaQQaQRaQSaQTaQUaQVaQWaQXaQYaLkaQZaQZaQZaRaaQZaQZaQZaQZaRbaQZaQZaQZaQZaQZaQZaQZaQZaQZaQZaQZaRcaQZaQZaQZaQZaQZaQZaQZaQZaLkaLkaLkaLwaRdaReaReaReaReaReaRfaMLaRgaOzaLwaLwaRhaLwaLwaRiaLBaRjaRkaRlaQaaRmaLBaKhaRnaRoaRpaRqaRpaRpaRraRsaKiaKjaHkaRtaRtaRuaRvaRwaRwaRxaHkaRyaRzaRAaEFaRBaIYaRCaHoaHoaRDaREaEFaRFaEFaRGaRHaRIaRJaRKaPaaPaaPaaPaaPaaPaaJbaRLaRMaRMaRNaMaaMaaMaaMaaQsaJbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaROaROaROaRPaysaytaysaBlaBmaBlaBnazSazSaBoaBlaBmaBlaRQaRRaRSazSaNxaRTaRUaNAaRVaNCaysaRWaNEazSaRXaRXaRXaRYaRZaRZaRZaRZaRZaRZaSaaSbaRZaScaRZaRZaRZaSdaSeaSfaSeaSgaShaSiaNHaNHaSjaSkaSlaNHaSmaSnaNHaSoaSoaLkaSpaObaLgaLgaLgaLgaLgaLgaLgaLgaSqaSraSsaStaSsaSsaSsaSuaSsaSvaSsaSwaSqaLgaLgaLgaLgaLgaLgaLgaLgaLjaLkaLkaLwaSxaSyaSzaSzaSzaSzaSzaMLaSAaSBaLwaSCaSDaSEaLBaLBaLBaLBaSFaLDaLBaLBaLBaLBaRpaSGaSHaSHaSHaSHaSIaRpaKiaKjaHkaSJaOQaRuaRvaOQaOQaSKaHkaSLaSMaSNaEFaHoaKxaSOaSPaSPaSQaSRaSSaSTaEFaSUaSVaSWaSXaSXaSYaSZaSZaTaaSZaTbaTcaRMaTdaTdaJcaTeaTfaTgaMaaQsaJcaaaaaaaaaaaaaaaaaaaaaaaJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaThaTiaTjaTkaTlazPazQazPaTmazSaTnaRSazSazSaToaTnazSaTmaRSazSazSazSaTpaTqaTraTsaTtaTuaTuaTvaTwazSaRXaTxaRXaTyaRZaTzaTAaTBaTCaTDaTAaTEaTFaTGaTHaTIaTJaSdaTKaTLaTMaSgaTNaSiaSiaTOaSiaSiaSoaSoaTPaTQaSoaSoaSoaTRaLkaObaLgaaaaaaaaaaaaaaaaaaaaaaSqaTSaTTaTUaTVaTWaTXaTYaTZaUaaUbaUcaSqaaaaaaaaaaaaaaaaaaaaaaLgaLjaLkaUdaUeaUfaSzaUgaSzaSzaSzaSyaMLaSAaSzaUhaSzaUiaUjaLBaUkaUlaUmaUnaUoaUpaUqaUraLBaRpaUsaUtaUtaUtaUtaUuaRpaKiaUvaHkaUwaUwaRuaRvaUxaUxaUyaHkaHkaUzaHkaEFaUAaIYaRCaUBaUCaRDaREaEFaEFaEFaPaaUDaUEaPaaPaaPaaPaaPaaPaaPaaUFaJbaJbaJbaJbaUGaTgaTgaTgaMaaQsaJbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJaaaaaaaROaROaROaRPaysaUHayuaUIaUJaUJaUJaUJaUJaUJaUJaUJaUIaUJaUKazSazSaKFazSaULaUMazSaUNazSaUOaUPaUQaRXaURaRXaTyaRZaUSaTAaTAaTAaTAaTAaTEaUTaTAaTAaTAaTJaSdaUUaTLaTLaSgaTNaSiaUVaUWaUWaUXaSoaUYaUZaVaaVbaVcaVdaLkaLkaObaLgaaaaaaaaaaaaaSqaSqaSqaSqaVeaVfaVgaVhaViaVjaVkaVlaVmaVnaVoaSqaSqaSqaSqaaaaaaaaaaaaaLgaLjaLkaLkaVpaSzaVqaVraVsaVtaVuaVvaVwaSAaVxaVyaSzaVzaSzaVAaVBaVCaVDaVEaVFaVGaVHaVBaVIaVJaVKaUtaVLaVMaUtaVNaRpaKiaKjaHkaOQaOQaRuaRvaOQaOQaOQaVOaVPaOQaVQaEFaNpaVRaVSaUBaUBaVTaVUaVVaEFaVWaVXaSVaSWaSXaSXaVYaSZaSZaSZaSZaVZaWaaMaaWbaMaaMaaMaaMaaMaaMaaWcaJbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxdaxdaxdaxdaBlaBlaBlaBlaBlaBlaBlaBlaxdaxdaysaKFaWdaWeaWeaWfaWeaWeaWeaWeaWgaWeaWhaRXaURaWiaWjaRZaWkaTAaWlaWmaWnaWoaWpaWqaWraTAaTAaWsaSdaWtaWuaWvaSgaTNaSiaWwaWxaWyaWzaSoaWAaWBaVaaWCaWDaVdaLkaLkaObaLgaLgaLoaWEaSqaSqaWFaWGaWHaWIaWJaWKaWLaWMaWKaWNaWKaWOaWPaWQaWRaWSaWTaSqaSqaWEaLoaLgaLgaLjaLkaLkaLwaWUaSzaWVaSzaWWaSzaSyaSzaSAaVxaWXaWYaSzaWZaLBaVBaVBaXaaXbaXcaXdaXeaVBaXfaXgaXhaUtaXiaXjaUtaXkaXlaKiaKjaHkaXmaXmaRuaRvaXnaOQaOQaXoaOQaXpaXqaEFaXraXsaXtaUBaUBaXuaXvaHoaEFaXwaSXaSVaSWaSXaRKaPaaPaaPaaPaaPaaPaaJbaTfaMaaXxaXyaMaaXxaXyaMaaXzaJbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaXAaXBaXBaXCaXBaXBaXBaXDaXBaXBaXBaaaaBlaCtaBraXEaWeaXFaXGaXHaXIaXHaXJaXKaXHaWhaURaURaXLaXMaRZaXNaXOaXPaXQaXRaXSaXTaXUaXVaXWaXXaTJaSdaSdaSdaSdaSgaTNaSiaSiaSiaSiaSiaSoaXYaXZaYaaWCaYbaVdaLkaLkaObaLmaLmaYcaYdaYeaSqaYfaYgaYhaYiaYjaYiaYkaYlaYmaYnaYoaYpaYqaYoaYraYsaYtaSqaYuaYdaYvaYwaLmaLjaLkaLkaVpaSzaSzaSyaSzaYxaSzaYyaSzaSAaVxaYzaSzaSzaSzaYAaVBaVBaYBaYCaYDaXbaXeaYEaLBaYFaXhaYGaUtaUtaUtaXkaYHaKiaYIaHkaHkaHkaRuaRvaYJaYKaOQaYLaYMaNfaYNaEFaHoaVRaVSaUBaUBaYOaVUaYPaEFaYQaSXaSVaSWaSXaRKaPaaaaabhabhabhaaaaJcaTfaMaaXxaXyaMaaXxaXyaMaaXzaJcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaXAaYRaYSaYTaYUaYUaYUaYUaYUaYUaYUaXCaYVaBlaBlaBnazSaWeaYWaYXaYYaXFaYZaZaaXKaXHaWhaZbaZcaZdaRXaRZaZeaZfaZgaZhaZiaZiaZjaZiaZiaZiaZkaZlaRZaZmaZnaZoaZpaZqaZraZsaZtaZuaZvaZvaZvaZvaZvaZvaZvaZvaLkaLkaLkaLkaLkaZwaZxaZyaZzaZAaZBaZCaZDaZEaZFaZGaZHaZIaZJaZKaZLaZMaZNaZCaZOaZPaZQaZRaZSaZTaZUaZVaZWaLkaLkaLwaZXaSyaZYaSyaSzaVqaZZaVsaSAaVxaYzaYzbaababaLBaVBaVBaVBbacaVBaVBaXebadaLBaRpaXhaUtaUtaUtaUtaXkaRpaKibaebafbagbahbaibajbakbakbalaRuaRuaRuaRubamaUBaUBaUBaUBaUBbanbaobapbaqbarbasbatbauaRJbavaPaabhabhaaaabhabhaJcaTfaMaaXxaXyaMaaXxaXyaMaaXzaJcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabawaYSaYSaYSaYSaYSaYSaYSaYSaYSaYSbaxbayazQbazazSazSaWebaAbaBbaCbaDbaDbaEbaFbaGaWhbaHaURaZdbaIbaIbaIbaJbaKbaIbaLbaMbaNbaObaPbaPbaQbaRaRZbaSbaTbaUbaVbaWbaXbaUbaYbaZbaZbbabbbbbcbbdbbebbfaZvaLkaLkbbgbbhbbibbjbbkbblaSqbbmbbnbbobbpbbqbbrbbrbbsbbtbbubbvbbwbbxbbybbobbzbbmaSqbblbbkbbAbbBbbhbbCaLkaLkaVpaSzaSzaSyaSzaSzaSzbbDaSzbbEaSzbbFbbGaSzaSzbbHbbIbbJaVBaVBbbKaVBbbLbbMaLBbbNbbOaUtbbPbbPbbQbbObbRbbSbbTbbUbbUbbVbbWbbXaRuaRubbYaRuaRuaRuaRubambbZbcabcabcabcabcabcbbccbcdbcebcfbcgbchaSXbciaPaaaaabhabhabhaaaaJcaTfaMaaXxaXyaMaaXxaXyaMaaXzaJcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaXAaYRbcjbcjbckbckbckbckbckbckbckaXCaBlaBlaBlaBnbclbcmbcnbcobcpbcpbcpbcpbcqaXFaWhbcrbcsaZdbaIbctbcubcvbcwbaIbcxbcybczaRZbcAbcBbcCbcDaRZbcEbcFbcGbcHbcGbcIbcJbcKaZvbcLbcMbcMbcNbcObcPbcQaZvaOcaOcbcRbcSbcSbcSbcSbcSbcSbcTbcUbcVbbqbbsbcWbcXbcXbcYbcXbcXbcZbbubbxbdabdbbdcbdabdabdabdabdabdabddaOcaOcaLwbdebdfbdgbdhaSzaSzaSzbdibdjbdkbdlbdmbdnaSzaLBaLBaLBbdobdpbdpbdpaLBaLBaLBbdqaUtaUtbdrbdsbdtbdubdsaKibdvbdwbdxaHkbdybdzbdAaYKaOQbdBaXoaYKbdCaEFbdDaHobdEaUBaUBbdEaHobdFaEFbdGbdHbdIaSWaSXaRKaPaaPaaPaaPaaPaaPaaJbaTfaMaaXxaXyaMaaXxaXyaMaaXzaJbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaXAaXBaXBaXCaXBaXBaXBaXDaXBaXBaXBaaaaBlbdJaRSbdKaWeaXHaYXaXHaXFbdLaXHbdMaXHaWhbdNbdObdPbaIbaIbaIbdQbdRbaIbcybdSbcyaRZbcAbcBbcCbcDaRZbcEbcFbdTbdUbcGbdVbcJbcKaZvbdWbcMbcMbdXbdYbcMbdZbeaaLkaLkbbgbcSbebbecbedbeebefbegbehbeibejbekbcXbcXbelbembelbcXbcXbenbeobepbeqberbesbetbeubevbewbdabbCaLkaLkaLwaLwaLwaLwaLwbexbeybexbezaLwaLwaLwaLwaLwaLwaLBbeAbeAbeAbeAbeAbeAbeBbeAaLBbdsbeCbeCbdsbdwbdwbdwbdwaKibdvbdwbdxaHkaHkaHkbeDaHkbeDaHkbeDaHkaHkaEFaEFbeEbeEbeEbeEbeEbeEaEFaEFbeFaSXbeGaSWaSXaSXbeHaSZaSZaSZaSZaVZbeIaMabeJaMaaMaaMaaMaaMaaMaaWcaJbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhabhabhabhaxdaxdaBlaBlaBlaBlaBlaBlaBlaBlaxdaxdaysazSazSaWeaWeaWfaWeaWeaWeaWeaWgaWeaWhbeKbeLbeMbaIbctbeNbdQbeObaIbePbeQbePaRZbcAbcBbcCbcDaRZbcEbcFbcGbeRbeSbeTbcJbcKbeUbcPbeVbeWbeXbeYbcMbdZbeZaLkaLkbbgbfabfbbefbfcbfdbfdbfebffbfgbejbfhbcXbcXbelbfibelbcXbcXbfjbeobfkbflbfmbfnbfobfpbewbfqbdabbCbfrbfsaJEbftbdwbdwbdwbdwbdwbdwbdwbdwbfubdwbdwbdwbdwbfvbdwbdwbdwbdwbdwbdwbdwbdwbftbdwbdwbdwbdwbdwbdwbdwbfwbfxbfybfzbdwbfAbdwbdwbdwbdwbdwbdwbdwbdwbdwbfvbfBbdwbdwbdwbdwbdwbdwbftbfCaVXaSXbfDbfEbfFbfGaPaaPaaPaaPaaPaaUFaJbaJbaJbbfHaJbaPcaJcbfIaJcaJcaJbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBlayvaywaywaywaywaywaywaywaywayvaywbfJazUazUbfKbfLbfMbfNbfNbfNbfObfPbfQaRXbfRbfSbfTbaIbaIbaIbfUbfVbaIaRZaRZaRZaRZbcAbcBbfWbfXaRZbcEbcFbcGbfYbfZbgabgbbgcbgdbgebgebgebgfbggbcPbghaZvbgiaPLbbgbgjbgkbefbglbgmbgnbgobgpbgqbejbgrbelbcXbgsbgtbgsbcXbelbcZbeobgubflbfmbfnbgvbfpbewbewbdabgwaLkaLkaJEbftbdwbdwbdwbdwbdwbdwbdwbdwbdwbgxbdwbdwbdwbdwbdwbgybbUbbUbbUbbUbgzbdwbftbdwbdwbdwbdwbdwbdwbgAbgBbgCbgDbgEbgEbgEbgFbgEbgEbgEbgEbgEbgEbgEbgEbgEbgEbgEbgEbgEbgEbgEbgGbgHbgIbgJbgJbgKaSWbgLaSXbgMaSZaSZbgNaSZbgObeIbgPbgPbgPbgQaJbaQtaQsaQsbgRaJcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhaBlazRazSazRaBrazSazSbgSazRazSazRaBrazSazSazSbgTbgUbgTbgTbgTbgTbgVbgWaRXaRXaRXbgXaZdbaIbctbgYbgZbeObaIbhabhbbhaaRZaRZaRZbhcbhdaRZbcEbcFbhebhfbhgbhhbcJaRXaZvaZvaZvaZvaZvaZvaZvbhiaZvbhjaLkbbgbgjbhkbefbglbhlbhmbgobgpbefbejbhnbhobcXbhpbhqbhrbcXbhsbhtbeobhubhvbhwbhxbhybhzbewbhAbdabhBbhCbhDaJEbftbdwbdwbhEbdwbhFbhGbhGbhGbhGbhHbhGbhGbhIbdwbdwbdwbdwbdwbhJbhKbhLbhMbftbdwbdwbdwbdwbdwbhNbhObhPbhQbhRbdwbdwbdwbdwbdwbhSbhTbdwbdwbdwbdwbdwbdwbdwbdwbdwbdwbdwbdwbdwbftbhUbhVbhWbhXaSWaSXaRKaPaaPaaPaaPaaPaaPaaJbbgPbgPbgPbgPaJbaQsaQsaQsbhYaJbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaysaBlbhZaBlaBnazSazSaBoaBlbiaaBlaBpbibbicbicbgTbidbiebifbigbihbgVbiibijbikbikbilbimbaIbaIbaIbinbiobaIaRXaRXaRXaRXbipbiqbirbisbiqbitbcFbiubivbcGbcIbcJbiwbcJbixbiybiybiybiybizbiAbiBbiCaLkbbgbcSbefbiDbiEbiFbiGbiHbgpbiIbiJbbrbiKbiLbiMbiMbiMbiNbiObbwbiPbiQbiRbiSbiTbiUbiVbewbiWbdabbCaLkaLkbiXbiXbiXbiXbiXbiXbiXbiYbiZbiZbiZbjabjbbiYbjcbjcbjcbjcbjcbjdbjdbjdbjebjdbjdbjdbjdbjfbdwbhSbjgbjhbjibjjbdwbdwbdwbjkbjkbjlbjlbjlbjlbjlbjmbjnbjnbjnbjobjnbjpbjqbjnbjnbjrbjsbjsbjsbjsbjtbjubjvbjwaPaabhaaaaaaaaaaaaaJbbjxbjxbjybjyaJbaQtaQsaQsbgRaJcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhaCraxdaCsazQaBlaCtaCubjzbjAaBlazQaCsaBlaxdaCraysbgTbjBbjCbjCbjCbjDbjEbjFbjGbiqbiqbjHbjIbaIbctbjJbinbjKbaIbjLbjLaURbjMbjNbjObjPbjQbjQbjRbjSbjTbcHbjUbjVbcJaURbjWbjXbiBbjYbjZbkabkbbkcbkdbkebkfbkgbcSbkhbcVbkibkjbkkbklbgpbkmbcSabhbknbkobkobkobkobkobkpabhbdabkqbkrbksbktbewbkubewbkvbdabbCaLkbkwbiXbkxbkybkzbkAbkBbiXbkCbkDbkDbkDbkEbkFbkFbkGbkHbkIbkJbjcbkKbkLbkMbkNbkLbkObkPbjdbjhbkQbjhbjhbjhbkRbjjbkSbkTbkSbkUbkUbjlbkVbkWbkXbjlbkYbkZbkYbjlblablbblabjsblcbldblcbjsbleblfbjsblgblhaPaaPaaPaabhabhaaaaaaaaaaJbaJbbliblibliblibliblibliaJbaJbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJaaaaaaaaaabhabhabhabhaBlbljaBlaBlaBlaBlaBlaBlblkaBlabhabhabhaaabgTbllbgTblmbjCblnblobgTaURaWiblpblqblrblsblsblsblsblsblsbltblublvblwblxbcJbcJbcJbcJbcJbcJbcJblyblzbcJbcJbcJblAblBblCblDblEblFblEblGblHbiCaLkblIbcSblJbcVbcVbcVbcVbklbgpblKbcSabhbknbkoblLblMblNbkobkpabhbdablObflblPblQbewbiVbewbewbdabbCaLkaLkbiXblRblSblTblTblUblVbkFblWbkFbkFbkEbkFbkFbkGblXblYblZbjcbmabkLbmabmbbmabmcbkLbjdbmdbmdbmebmfbjhbmgbjjbmhbmibmjbmkbmkbjlbmlbmmbmnbmobmpbmqbmrbjlbmsbmtbmubjsbmvbmwbmvbmxbmybmybjsbmzblhaaaabhaaaabhaaaaaaaaaabhaaaaJbbmAbmAbmAbmAbmAbmAbmAaJbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabmBbmBaaaaaaaaaaaaaaaaaabmBbmCbmBbmBbmBbmBbmBbmBbmDbmBaaaabhabhaaabgTbmEbmFbmGbmHbmHbmIbmJbmKbmLaRXbmMbmNbmObmObmObmPbmPbmPbmPbmPbmPbmQbmRbcJbmSbmTbmUbmVbmWbmXbmYbmZbcJbnabnbbncbiBbiBbndbnebnfbngbnhbnibnjbnkbbgbnlbnmbnnbnobnpbcVbnqbgpbcSbcSabhbknbkoblMbkoblMbkobkpabhbdabdabnrbfmbnsbewbntbnubnvbdabbCaLkaLkbiXbnwblSbnxbnybnzbnAbkFbnBbnCbnDbnEbnFbnGbkGbnHbnIbnJbjcbmabkLbmabmbbmabmcbnKbjdbnLbnMbnNbnObjhbkRbjjbnPbnQbnQbnRbnSbnTbnUbnVbnWbmnbmnbmnbnXbjlbnYbnZboabjsbobbmybmybocbodboebjsbmzblhbofbofbofbofabhabhabhabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabogbmBbmBaaaaaaaaaaaabmBbmBbohbohboibojbohbohbohbohbmBaaaabhabhaaabgTbokbgTbolbombombonbgTboobooaRXbopboqbopbopbopboqbopaRXaRXbcJbcJblzborbcJbmWbmWbmWbmWbmWbmWbosbotboubovbowboxboybozboAbozboBboCboDblHbiCboEboFboGboHboIboJboKbcVbklbgpbcSabhabhboLboMblNboNblLboOboPabhabhbdaboQboRbdabdabdabdaboSbdaboTaLkaLkbiXboUboVboWblTblUboXbkFboYboZbpabpbbpcbpdbjcbpebpfbpgbjcbmabkLbmabmbbmabmcbkLbjdbjhbjhbjhbjhbjhbkRbjjbphbpibpjbpkbplbpmbpnbpobppbppbpqbmnbprbjlbpsbnZbptbjsbpubpvbpwbpxbpybpzbjsbmzbpAbpBbpCbpDbpEaaaaaaabhabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpFbpGbpHbmBaaaaaabmBbmBbmBbohbohbohbohbohbohbohbpIbmBbmBbmBabhaaabgTbpJbmFbpKbombpLbpMbgTaaaaaaaaabpNbpNbpNbpNbpNbpNbpNaaaaaabpObpPbpQbpRbpSbpTbmWbmWbmWbpUbmWbmWbpVbpWbpXbnebpYbpZbqabqbblHbqcbiBbiBbiBbqdbqeaOcbnlbqfbqgbqgbqgbqgbqhbqibqjabhaaabknbqkbkobkobkobqlbkpaaaabhbqmbqnbqobqpbqqbqrbqmbqsbqmbqtaLkbqubiXbqvbqwbqxbqybqzbiXbqAboYboZbqBbqCbkFbqDbjcbqEbqFbqGbjcbqHbqIbqJbqKbqLbqMbqLbqNbqObqPbqObqObqObqQbjjbqRbmibqSbqTbqUbqVbqWbqXbqYbqYbqZbrabrbbjlbrcbrdbrebjsbrfbrgbrhbribmybrjbjsbrkbrlbrmbrnbrnbrnbrnbrnbrnbroaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpFbpGbrpbpHbmBbmBbmBbrqbmBbrrbohbohbohbohbohbohbohbrsbrtbruabhaaabgTbrvbmFbmFbmFbgTbgTbgTaaaaaaaaabpNbrwbrwbrwbrwbrwbpNaaaaaabpObrxbrybrzbrAbrAbrAbrAbrAbrAbrAbrAbrAbrBbrCbrDbrEbrFbrGblHbrHblEbrIblEbrJbiCbrKbrLbnlbnlbqjbrMbrNbrObrPbrQbqjaaaaaabknbrRbrSbrTbrSbrUbkpaaaaaabqmbrVbrWbrXbqmbrYbqmbqsbqmbqtaLkbrZbiXbsabqwbsbblTbscbiXbsdbsebsfbsgbshbkFbsibjcbkGbsjbskbjcbjdbslbjdbsmbsnbsobspbspbspbspbspbspbspbsqbsrbssbpibpjbstbsubsvbswbsxbsxbsxbpqbmnbsybszbsAbsBbsCbsDbsEbsFbsGbsHbsIbsJbjsbsKbsLbsMbsNbsNbsNbsNbsNbsOblhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpFbpGbrpbrpbmBbmBbrqbohbmBbrrbohbohbohbohbohbrqbmBbmBbmBbmBbmBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpNbrwbrwbrwbrwbrwbpNbsPbpObpObsQbrybmYbmWbsRbsRbsRbsRbmWbmWbmWbmWbsSbsTbsUbsVbsWbsXbsYbsZbtablEblEbrJbtbbtcbtdbtebtfbtgbthbtibtjbtkbtlbqjabhaaabknbtmbtnbtnbtnbtobkpaaaabhbqmbtpbtqbtrbqmbtsbqmbqsbqmbttaLkbrZbiXbtubqwbtvbtwbtxbiXbtyboYbkEbsgbtzbtAbsdbsdbtBbtCbtDbtEbtFbtGbtHbtIbtJbtKbtLbtMbtNbtObtPbtQbtRbkRbtSbtTbtUbtVbtWbtXbjlbtYbsxbsxbtZbpqbmnbuabubbucbudbuebsDbufbugbuhbuibmybujbukbulbjsbumbumbumbumbumbumbmzblhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabunbmBbpHbrpbuobohbupbohbmBbrqbuqbohbohbohbrqbmBbrqburburbrqbmBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpNbrwbrwbrwbrwbrwbusbutbuubutbuvbuwbuxbuybuzbmWbmWbmWbmWbmWbuAbcJbcJbuBblEbuCbuDbuEblHbuFblEbuGblEbuHbqtbrKbuIbuJbuKbuLbuMbuNbuObtkbuPbqjaaaaaabknbuQbuRbuSbuRbuTbkpaaaaaabuUbuVbuWbuUbuUbuUbuUbuXbuUbuYaOcbuZbiXbiXbvabvbbvcbiXbiXbvdbvebvfbkFbkFbkFbkFbkFbvgbvhbvibvibvibvjbvibvkbtJbtKbvlbvmbvnbvobvpbvqbtRbvrbvsbvtbvubvubvvbvwbjlbvxbmnbmnbvybpqbmnbvzbvAbvBbnZbvCbsDbsDbvDbvEbvFbvDbsDbjsbjsbjsbvGbvHbvIbvJbvKbumbvLblhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabmBbmBbmBbmBbohbohbohbrqbmBbmBbmBbmDbmBbmBbrqbohbvMbvMbvNbmBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpNbrwbrwbrwbrwbrwbvObvPbvQbvRbvSbmWbmYbmWbsRbsRbvTbsRbmWbmWbvUbvVbcJbvWblEbuCbuDblEbvXblEblEbvYblEbuHbqtbvZaLkbuJbwabwbbwcbwdbwdbwebwfbqjabhabhbwgbwhbwibwjbwkbwlbwmabhabhbwnbwobwpbwqbwrbwsbwtbwubuUbwvaLkbwwbwxbwybwzbwAbwBbwCbwDbwEbwFbwGbwHbwHbwHbwHbwHbwIbwJbwHbwHbwHbwKbnGbwLbwMbtKbwNbwObwPbwPbwQbtQbtRbkRbjjbwRbwSbwTbwUbwUbjlbwVbwWbwXbszbwYbmnbwZbszbxabxbbxcbxdbxebxfbxgbxhbxibxjbxkbxlbxmbxnbxobxobxobxpbxqbxrblhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabmBbmBbmBbrqbohbmBbohbohbohbohbohbohbohbohbrqbmBbohbohbohbohbohbxsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpNbrwbrwbrwbrwbxtbpNbsPbpObpObxubmWbmYbmWbmWbmWbmWbmWbmWbmWbvUbxvbcJbxwbxxboAbxybozbxzbozbxAblEbxBbrJbxCbvZaLkbuJbuKbqjbxDbxEbxFbxGbxHbqjaaaaaaabhbknbxIbxJbxIbkpabhaaaaaabwnbxKbxLbxMbxNbxObxObxPbxQbxRbxSaPBbxTbxUbxVbxWbxXbxYbxZbxYbxYbyabybbycbydbydbydbyebkFbkFbkFbyfbygbygbyhbtKbtKbtKbyibyjbykbvpbtQbtRbjibjjbylbylbylbylbylbjlbszbszbszbszbymbynbymbszbyobypbyqbyrbyrbyrbysbytbyubyvbywbyxbyybyzbyAbyBbyCbyDbyEbyFbyGbofbyHbyHbofabhabhabhabhabhabhabhabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabmBbmBbmBbmBbmBbmBbmBbmBbmBbmBbmBaaabmBbmBbrqbohbohbohbmBbohbohbmBbmBbmBbyIbmBbohbohbmBbohbohbohbohbohbxsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpNbrwbrwbrwbrwbrwbyJbvPbvQbvRbrxbyKbosbyLbpTbmWbyKbmWbmWbmWbvUbyMbcJbyNblEbuCbyObuFbyPbyQblEblEbyRbrJbxCbvZbbgbuJbySbqjbyTbyUbyVbyWbrQbqjaaaaaaabhbyXbyYbtnbyZbzaabhaaaaaabwnbzbbzcbzdbzebzfbzgbzhbuUbziaLkaLkbsdbsdbzjbzkbvgbzlbzmbznbzobzobznbzmbznbzmbznbzmbznbzmbjbbjbbygbzpbwPbzqbzrbtKbyibzsbztbzubzvbtRbzwbzxbzybzzbzAbyrbyrbzBbyrbyrbzCbzDbzEbzFbzGbyrbzHbzIbzJbzKbzKbzKbzLbzLbzLbzLbzLbzMbzNbzObzPbzObzQbzObumbzRbzSbzTbzUbzVbofabhaaaaaaaaaaaaaaaaaaabhaaaabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabmBbrqbohbohbohbohbohbohbohbrqbmBbmBbmBbrqbohbohbohbohbxsbohbohbmBbzWbzXbohbmBbohbohbxsbohbohbohbzYbzZbxsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpNbrwbrwbrwbrwbrwbAabAbbAcbAbbAdbAebAdbAdbAdbAdbAdbAfbAgbmWbvUbAhbcJbAibAjbAkbAlbAmbAnbAobAobAobAnbAnbApbvZaMDbAqbuKbqjbArbAsbAtbAubAvbqjaaaaaaabhbAwbAxbwjbAybAzabhaaaaaabwnbAAbABbACbADbzfbzgbzhbuUbAEaLkaLkbAFbAGbAHbzkbAIbAJbzmbAKbALbAMbANbAObAPbAQbARbAQbASbzmbkFbkFbygbATbwPbAUbAVbAWbAXbAYbAZbAZbBabBbbBcbBdbBebBfbBgbBhbBibBhbBhbBjbBhbBhbBkbBlbBhbBhbBmbBnbBobzKbBpbBqbBrbBsbBtbBubzLbBvbBwbBxbBybBzbBwbBAbumbzRblhbBBbBCbBDbofaaaaaaaaaaaaaaaaaaaaaabhbBEabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabmDbohbohbohbohbohbohbohbohbohbmDbohbmDbohbohbohbohbohbBFbohbohbmBbohbohbohbmBbohbohbBGbohbohbohbBHbBIbxsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpNbrwbrwbrwbrwbrwbpNbsPbpObpObpObcJbpObpObpObBJbBJbBJbBJbBKbBLbBLbBJbBJbBMbBNbBObBMbAnbBPbBQbBRbBSbAnbxCbvZaObaLoaLobqjbqjbqjbqjbqjbBTbqjaLgaLgaLgbBUbBVbxJbBWbBXaLgaLgaLgbuUbuUbuUbuUbuUbuUbuUbuUbuUbAEaLkbBYbzmbzmbBZbCabzmbzmbzmbCbbALbCcbALbCdbCebCfbCgbChbCibCdbkFbkFbygbCjbCkbClbCmbCnbCobCpbCmbCmbCqbCrbCsbCtbCubCubCubCubCvbCubCubCubCwbCwbCxbCybCzbCzbvBbCAbvCbzKbCBbCCbCDbCEbCFbCGbCHbumbumbCIbCIbCIbumbCJbumbzRblhbCKbBCbCLbofabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabmBbrqbohbohbohbohbohbohbCMbrqbmBbmBbmBbrqbohbohbohbohbxsbohbohbmBbohbCNbohbmBbohbohbxsbohbohbohbzYbzYbxsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpNbCObrwbrwbrwbCObpNaaaaaaaaaaaaabhaaaaaaaaaaaabBJbCPbCQbCRbCSbCTbCUbBLbCVbCWbCXbCYbAobCZbDabDbbDcbAnbxCbvZaLkaLkaLkbDdaOraOqaOcbDebDfbDgaZVaZVaZVbDhbDibDjbDkbDlaLkaLkaLkaLkaOraLkaOcaLkaLkaLkbDdaLkbAEaLkbDmbzmbDnbDobDpbDqbDrbzmbDsbALbDtbALbCdbCebCebDubDvbDwbCdbkFbDxbygbwPbDybDzbDAbDBbDCbDDbDEbDFbtRbtRbjibDGbCubDHbDIbDJbDKbDLbDMbCubDNbDObDPbDQbDRbCzbvBbCAbDSbDTbDUbDVbDWbDXbDYbDZbCHbEabEabEabEabEabEabEabumbzRblhbEbbzVbzVbofabhabhabhabhabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJdaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabmBbmBbmBbmBbmBbmBbmBbmBbmBbmBbmBaaabmBbmBbrqbohbohbohbmBbohbohbmBbohbEcbEdbmBbohbohbmBbohbohbohbohbohbxsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpNbpNbEebEebEebpNbpNaaaaaaaaaaaaabhaaaaaaaaaaaabBLbEfbEgbEhbEibEjbEkbElbEmbEnbEobEpbEqbErbDbbEsbEtbAnbxCbEuaLkaLkaLkaLkaLkaLkbEvaLkbvZaLkaLkaLkaLkaLkbEwbExbEyaLkaLkaLkaLkaLkaLkaLkaOcaLkaLkaLkaLkaPLbAEbEzaLkbzmbEAbEBbECbEDbDrbzmbEEbALbAMbEFbzmbEGbEHbEIbEJbEKbzmbkFbkFbygbygbygbygbygbtRbtRbtRbtRbtRbtRbELbkRbEMbCubENbEObEPbEQbERbESbCubETbEUbEVbEWbEXbCzbvBbEYbEZbFabFbbFcbFcbFdbFebFfbCHbEabEabFgbFhbEabEabEabumbzRblhbCKbBCbFibofabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabmBbmBbmBbrqbFjbmBbohbohbmBbyIbmBbmBbmBbohbohbmBbzYbohbohbohbohbxsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFkbFlbFlbFlbFmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBJbFnbFobFpbFqbFrbFsbFtbFubFvbFwbFubFxbFybFzbFAbFBbAnbFCbFDboFboFboFbFEboFboFbFFboFbFGaLkbFHbFIaLkaOkbFJbFKbFLbFMbFNbFOaZVaZVbFPaZVbFQbFRaZVbFSbFTbFUbFVaLkaLkbzmbFWbFXbFYbznbznbzmbznbFZbznbzmbzmbzmbzmbzmbzmbzmbzmbkFbkFbkFbGabGbbzlbGcbGdbGebGfbGgbGhbGdbGibsqbGjbCubGkbGlbGmbGnbGobGpbCubGqbGrbGsbGtbGubCzbvBbGvbGwbzLbGxbGybGzbGAbGBbGCbCHbEabEabEabGDbEabEabEabumbzRbzSbGEbBCbBDbofaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabmBbmBbmBbmBbohbohbohbohbohbohbohbohbohbmBbzYbohbohbohbohbmBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBJbBJbBLbBLbBLbBLbBJbBJbGFbCWbCXbGGbAnbAnbAnbAnbAnbAnbGHbGIaLoaLoaLoaLobGJbGJbGJbGJbGJbGJbGJbGJbGJbGJbGKaJEbGLbGMbGMbGMbGMbGMbGNbGMbGMbGMbGMbGObGPbGOaLpaMEbGQbzmbGRbGSbGTbGUbGVbzmbGWbALbGXbGYbGZbHabHbbHcbHdbHebGYbHfbkFbkFbkFbkFbkFbvgbHgbHhbHibHhbHjbGdbHkbkRbHlbHlbHlbHlbHlbHlbHlbHlbHlbHmbHmbHmbHmbHmbHmbHnbHobHpbzLbzLbzLbzLbzLbzLbzLbCHbumbumbumbumbumbumbumbumbzRblhbHqbHrbofbofabhabhabhabqabqabqabqabqabqabqabqabhabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabogbmBbpHbrpbuobohbohbohbohbohbohbupbohbHsbmBbzYbohbHtbohbrqbmBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabHuaaaaaaaaaabhaaaaaabBMbHvbHwbHxbHybHybHzbHAbHBbHCbHDbHEbGIaaaaaaabhaaabGJbHFbHGbHHbHIbHJbHKbHLbHMbGJbHNbHObHPbGMbHQbHRbHSbHTbHUbHVbHWbHXbHYbHZbIabGObGObGObGObzmbIbbIcbIdbIebIfbIgbIhbIibIjbIkbIibIibIibIlbALbImbInbIobydbydbIpbIqbIrbIsbHgbItbIubIvbIwbGdbHkbkRbHlbIxbIxbIxbIybIxbIxbIxbHlbIzbIzbIAbIzbIzbHmbIBbICbIDbIEbIFbIGbIHbIIbIJbIKbILbIMbINbIObIPbIQbIRbISbISbITbIUbIFbIFbofabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhabhabhabhabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpFbpGbrpbrpbmBbmBbmBbmBbmDbmBbmBbxsbxsbxsbmBbmBbrqbIVbrqbmBbmBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaltaltalualtaltaaaabhaaabBMbBMbIWbIXbIYbFubIZbJabJbbJbbJcbJdbJebJfabhbJgbJhbJibJjbJkbHMbJlbHMbJmbHMbHMbHMbGJbJnbJobJpbGMbJqbJrbJsbJtbJubJvbJwbGMbGMbJxbJybJzbJAbJBbJCbJDbJEbJFbJGbJHbJIbJJbJKbJLbJMbJNbJObJPbALbALbALbJQbsdbsdbsdbsdbsdbJRbJSbzkbHgbJTbJUbHhbJVbGdbHkbkRbHlbIxbIxbIxbIxbIxbIxbIxbHlbJWbJXbJYbJZbKabKbbKcbKdbIDbKebKfbKgbKgbKgbKgbKgbKgbKhbKibKjbIPbofbKkbKlbKmbKmbKnbKobKfabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhabhbKpbKqbKpabhabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpFbpGbrpbpHbmBbmBbmBbmBbohbohbohbKrbohbohbohbohbrqbmBbmBbmBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaltbKsbKtbKsaltbKubKubKubBMbKvbKwbCWbKxbKwbKybBMbGIbKzbGIbGIbKAbKBaaabKCbKDbKEbKFbHMbHMbKGbHMbKHbKIbKJbHMbGJbJnbJobKKbGMbKLbKMbKNbKObKPbKQbKRbGMbELbKSbKTbKUbKTbKVbKWbJNbKXbKYbKZbALbAMbzmbLabLbbLcbzmbLdbALbALbALbALbLebsdbLfbLgbLhbLibLjbLkbLlbLmbLnbHhbLobLpbLqbLrbLsbHlbIxbIxbLtbIxbIxbIxbIxbHlbLubLvbLwbLxbLybLzbLAbLBbIDbLCbLDbKgbKgbKgbKgbLEbLFbLFbLFbLFbLGbLHbLIbLJbLKbLLbLMbLNbKfabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhabhbKqbKpbLObKpbKqabhabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpFbpGbpHbmBaaaaaabmBbmBbrqbLPbohbohbohbohbohbohburbmBbmBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaluaohbLQaohalubKubLRbLSbBMbLTbKwbLUbKwbLVbKybBMbLWbLXbLYbGIbKAbKBabhbKCbLZbMabMbbMcbMdbMcbMcbMebMfbMgbMgbMhbMibMjbMkbGMbGMbGMbGMbGMbMlbMmbGMbGMbMnbMobMpbMqbMrbMsbMtbzmbMubMvbMwbMxbMybzmbMzbMAbMBbzmbMCbMDbMEbMFbMGbMHbsdbMIbMJbvibMKbvibMLbMMbMNbMObMPbMQbMRbGdbHkbkRbHlbHlbMSbIxbIxbMTbMSbHlbHlbMUbMVbMWbMWbMXbHmbMYbMZbIDbNabKfbKgbKgbNbbNcbNdbKgbKgbNebNfbNgbNhbNibNjbNkbNlbNmbNnbKfabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhabhbNobKqbNpbNqbNrbKqbNoabhabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabunbmBbmBaaaaaaaaaaaabmBbmBbmBbrqbohbNsbohbohbrqbmBbmBaaaaaaaaaaaaaaaaaaaaJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaltaohaohaohbNtbNubKwbKwbNvbLTbKwbNwbKwbKwbKybBMbNxbLYbNybGIbKAbKBaaabKCbNzbNAbNBbHMbHMbNCbHMbNDbNEbNFbNGbGJbNHbNIbNJbNKbNLbNLbNLbNLbNMbNNbNLbNLbNObNPbNQbNRbNSbNTbNUbIgbIgbIgbIgbIgbIgbIgbIgbIgbIgbNVbNVbNVbNVbNVbNVbNWbNXbsdbsdbsdbsdbNYbNZboYbGdbGdbGdbGdbGdbGdbHkbkRbHlbOabObbOcbOdbOebOfbOabOgbMUbMVbMWbMWbMXbHmbOhbOibIDbOjbIFbOkbOlbOmbOnbOobOpbKgbOqbOrbIPbOsbOtbOubIFbOvbOwbOwbIFabhabhabhabhabhabhabhabhabhabhabhabhabhabhabhabhabhabhabhabhabhabhbKqbKqbOxbOybOybOybOzbKqbKqabhabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabmBbmBaaaaaaaaaaaaaaaaaaaaabmBbmBbmBbmBbmBbmBbmBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalubLQbLQbLQalubKubOAbOBbOCbODbKwbOEbOFbOGbOHbBMbGIbGIbGIbGIbKAbOIabhbOJbJhbOKbJjbOLbHMbOMbHMbHMbHMbONbOObOPbOQbORbOSbOTbOUbOUbOUbOUbOVbOUbOWbOXbOYbOZbPabPbbPcbPdbPebqObPfbqObqObqObqObqObqObqObqObqObqObqObqObqObPgbPhbsdbMIbPibLjbPjbLjbLkbPkbPlbPmbPmbPnbPobOZbPpbPqbHlbPrbPsbPtbPubPvbPwbPxbOgbOgbOgbOgbOgbOgbPybPzbPAbPBbPCbIFbIPbIPbIPbIPbIPbIPbPDbKgbKgbIPbofbKkblhbIFbPEbPFbPGbPHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabPIbPJbPIbOybPKbOybPLbPMbKpabhabhabhabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaltappbPNbPOaltbKubKubKubBMbBMbKubKubKubBMbBMbBMbPPbGIaaabPQbPRbKBaaaaaaabhaaabGJbPSbPTbPUbHMbPVbPWbPXbPYbGJbPZbQabQbbQcbQdbQebQfbQgbQhbQdbQdbQdbQdbQdbQibQjbQdbQdbQkbQdbQlbQdbQdbQdbQdbQdbGObGObGObGObGObGObGObGObQmbHkbsdbQnbQobQpbQqbvibQrbQsbQtbQubQubQvbQubQubQwbQxbHlbQybQzbQAbQzbQzbQzbQBbQCbQDbQEbQFbQGbQHbQIbQJbMZbIDbQKabhbQLbQMbQNbQObQPbQObQQbQRbQSbIPbQTbzRbQUbIFbIFbIFbIFbIFabhabhabhabhabhabhabhabhabhabhabhabhabhabhabhabhabhabhabhabhabhabhbKqbKqbQVbOybOybOybQWbKqbKqabhabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhaaaaaaaltaltbQXaltaltaqCaqCaqCaqDachaqDaqCaqDachaqDbPQbLYbPQabhbPQbKAbKBabhabhabhabhbGJbGJbGJbGJbGJbGJbGJbGJbGJbGJbQYbQabQZbRabQdbQebQfbQgbQhbRbbRbbRcbRdbRebRfbRgbRhbRibRjbRkbRlbRmbRnbRobRpbRqbRrbRsbRsbRsbRsbRsbRtbGObQmbRubRvbRvbRvbRvbRvbRwbRxbRybRvbRvbRvbRvbRvbRvbRubRzbRAbRBbRCbRDbRCbREbRCbRFbRGbRHbRGbRGbRGbRGbRIbRJbRKbIDbQKabhbQLbRLbRMbRNbRObRPbRQbRRbRSbIPbRTbzRbpAbofbRUbRVbofabhabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJaaaaaaaaaaaaaaaaaaaaaaaaabhabhbNobKqbRWbRXbRYbRZbNoabhabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhaaaaaaaaaaaaaaaaaaaaaaqCaqCaqCaqDachaqDaqCaqDachaqDbPQbLYbPQbPQbPQbKAbKBaaaaaaaaaabhbSabSbbSbbScbSdbSebSebSfbSfbSabJnbQabQZbSgbQdbShbSibSibSjbSkbRbbSlbSmbSnbSobSpbSqbSrbSsbStbSnbSubSnbSvbSwbSxaqDbSybSybSybSybSybSzbGObQmbSAbSBbSCbSDbSEbRvbSFbSGbSHbRvbSIbSJbSKbSJbSIbSAbSLbSMbSNbSObSNbSPbSQbSNbSRbSNbSSbSNbSTbSNbSNbSUbSVbSWbSXbQKabhbQLbRLbSYbQObSZbQObTabTbbTcbIPbzVbzRbpAbofbzVbzVbofaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhabhbKqbKpbTdbKpbRZabhabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhbGIbGIbGIbPQbGIbPQbGIbGIbGIbGIbGIbGIbPQbPQbPQbGIbGIbGIbLYbLYbLYbTebKAbKBaaaaaaaaaabhbSabTfbScbScbScbTgbSebSebThbSabTibQabTjbTkbTlbTmbTnbTobTpbTqbTrbTnbTnbTnbTsbTtbTubTvbTwbTxbRpbTybTzbTAbTBbTCbRrbTDbTEbTFbTGbSybSzbTHbQmbRubTIbSIbSIbTJbRvbTKbTLbTMbRvbSJbSIbSJbTNbTObTPbkRbHlbTQbTRbTSbTRbTTbTUbTVbQzbTWbTXbTYbTZbUabOgbUbbUcbUbbUdbUdbIPbIPbIPbIPbIPbIPbIFbIFbIFbIPbzVbzRbUebzVbzVbUfbofabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhabhbKpbKqbKpabhabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGIbUgbUhbUibUhbUjbUkbUlbUmbLYbUnbUobUpbUqbLYbLYbTebLYbLYbPQbPQbPQbPRbKBaaaabhbUrbUsbUtbUubUubUvbUubUwbUxbUybUybUzbUAbQabJobUBbUCbUDbUEbUFbUGbUHbUIbUFbUJbUFbUKbULbUMbRibUNbUObUPbUQbURbUSbUTbUUaqDbUVbUWbTGbUXbSybSzbTHbQmbRubUYbUZbSIbVabRvbVbbVcbVdbRvbSIbSIbVebSIbSIbRubQmbHlbOgbOgbOgbOgbPybVfbVgbVhbPybOgbOgbOgbOgbOgbVibVjbVkbVlbVmbVnbVobVpbVobVqbUdbVrbVkbVsbVtbVubzRbpAbofbofbofbofaucabhabhabhabqabqabqabqabqabqabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhabhabhabhabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGIbGIbVvbVwbVxbVybGIbLYbGIbLYarkbVzbLYbLYbLYbVAbGIbPQbPQbGIaaabPQbKAbKBaaaabhbVBbVCbVDbVEbVFbVFbVFbVFbVFbVFbVGbVHbVIbVJbJobRabVKbVLbVMbSnbVNbVObVPbVQbVRbVSbVTbVUbVUbVVbVWbRpbVXbVYbVZbWabWbbWcbWdbTDbWebTGbTGbSybSzbTHbQmbRubWfbWgbWhbRwbRvbRvbWibRvbRvbWjbWjbWkbWjbWjbRubQmbHlbWlbWmbWmbWnbWobQzbWpbWqbWrbWsbIxbIxbIxbOgbWtbVkbVjbWubWvbVnbWwbWxbWybWzbUbbVkbWAbVkbVtbHqbWBbWCbofaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqabqabqabqabqabqabqabqabqabqabqabqbPQbWDbUhbWEbWEbWEbGIbWFbGIbWGbGIbVzbLYbLYbWHbWIbGIaaaabhaaaaaabPQbKAbOIbGIbGIbOIbWJbSabWKbScbScbScbWLbWMbWNbWObSabWPbWQbJobRabWRbWSbWTbSnbSnbWUbRbbWVbWWbWXbWYbSnbSnbRibWZbXabXbbXcbXdbXebXdbXfaqDbSybSybSybSybSybSzbGObQmbRubSIbXgbXhbXibXjbXkbXlbXmbXnbSIbSIbSIbSIbXobRubQmbHlbIxbXpbIxbXqbXrbQzbXsbQzbXtbXubIxbXpbIxbOgbXvbVkbVkbVjbXwbXxbXybXzbXAbXBbUdbXCbVkbXDbVtbUdbXEbXFbofaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGIbGIbUhbXGbXHbXIbXJbXKbXLbXMbGIbGIbGIbXNbGIbGIbGIbPQbPQbPQbXObXPbXQbXRbXSbJbbXTbWJbSabSabSabSabSabSabSabSabSabSabXUbXVbJobXWbQdbXXbXYbVPbXZbVPbRbbSnbSnbSnbWYbYabYbbYbbYcbYdbYebTybYfbYgbYhbTCbRrbTDbYibYjbYjbSybSzbGObQmbYkbYlbYlbYlbYmbYnbSIbYobXhbYpbXhbXhbXhbXhbYqbRubQmbHlbIxbIxbIxbYrbYsbWqbYtbQzbYubYvbWmbWmbYwbOgbYxbYybVkbVjbYzbVnbWybYAbXxbYBbUdbYCbYCbYCbVtbYDbXEbXFbofabhabhabhabhabhabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqCaqCbYEaqDaqDbYFaqCbGIbGIbGIbGIbGIbGIbGIbGIbGIbGIbLYbLYbLYbLYbLYbLYbLYbYGbYHbYIbYJbYKbYLbYLbYLbYLbYMbYNbYNbYNbYObYNbYPbYQbYQbYRbGIbWPbYSbJobYTbYUbYVbYWbYbbYbbYXbYYbYbbYbbYZbZabZbbSnbZcbZdbZebZfbSnbZgbZhbZibUUaqDbUVbZjbZkbZlbSybSzbTHbZmbZnbZnbZnbZobRubZpbSIbZqbZrbZsbZtbZubZubZubZvbRubQmbHlbOgbOgbOgbOgbZwbZxbXsbZybZwbOgbOgbOgbOgbOgbZzbZAbVjbVkbZBbZCbZCbZCbZCbZDbUbbYCbYCbZEbVtbZFbXEbXFbofbofbofaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabZGbZHbZHbZHbZHbZIbZJbZJbZKbZLbZMbZNbZObZPbZQbZRbGIbZSbPQbPQbPQbPQbPQbPQbPQbPQbOIbZTbZUbZUbZUbZUbZUbZUbZUbZUbZVbZVbZVbZVbZVbZWbZXbGIbWPbYSbJobYTbZYbZZcaacabbVUcaccadbVUbVUcaecafcagcahcaicajcakcalbSnbZgcamcanbWcbWdbTDcaobYjbYjbSybSzbTHcapbGObGObGObkRbRucaqbSIbSIcarcascatcaubZucaucavbRubQmbHlbWlbWmbWmcawbWobQzcaxbWqcaycazbIxbIxbIxbOgcaAcaBcaCbVjcaDbVjbVkbVkcaEcaFbUdbYCbYCbYCbVtbZFbXEbXFbzVbzVbofabhabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqCaqDbYEaqCaqDaqCaqCbPQbPQbPQbLYcaGcaHcaIcaJcaKbGIbLYbPQaqCaqCaqDaqCaqCaqDaqCbOIbZTbZUcaLcaMcaNcaOcaPcaQcaLcaRcaScaTcaUbZVbZVbZXbGIcaVbYSbJocaWcaXcaYcaYcaZcbacbacbacbacbacbbcbcbRbbRbbRbcbdbSnbZebSnbZgbZhcbebUUaqDbSybSybSybSybSybSzbTHcapcbfbELbELbkRbSAcbgcbhcbicbjcbkcblcbmbZucbmcbnbRubQmbHlbIxcbobIxcbpbXrbQzbXsbQzbXtcbqbIxcbobIxbOgcbrcbscbtcbucbvcbwcbxcbxcbycbzbUbcbAbZCcbBbVtbYCbXEcbCbofbzVbofbofbofabqabqabhabhabhabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqCaqDbYEbYEbYEbYEbYEcbDbLYcbEbLYcbFcbGcaHcbHbLYbGIbLYbPQaqCaqCaqDaqCaqCaqDaqCbOIbZTbZUcaLcbIcbJcbKcbLcbMcaLcbNcbOcbPcbQcbRbZVbZXbGIbWPbYSbJocbScbTbQdcbUcbVcbacbWcbXcbYcbacbZbWYccabRbccbcalbSncajcccccdbYgccebTCbRrbTDccfccgcchbSybSzbGOcapbGOcciccjbkRbRucckcclccmccnccocclccpbZuccpbTNbTPbQmbHlbIxbIxbIxccqccrbWqbYtbQzbYuccsbWmbWmbYwbHlbVtcctccuccvbVtbVtccwccxccycczccAccBccCccDbYCbYCbXEbXFbofccEbofccFbofabhabhabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqCaqCaqCaqCaqCaqDaqDbPQbPQbPQccGccHccIccJccKbLYccLbLYbPQaqCaqCaqCaqCaqCaqCaqCbOIbZTbZUccMccNccOcbKccPccMccMcbNccQccRccSccTbZVbZXbGIbWPbYSccUccVccVccWccXccYccZcdacdbcdccbabSnbWYcddcdeccbcdfbSncajcccbZgbZhcdgbUUaqDbUVcdhcdicdjbSybSzbGOcapbGObMrbMrbkRbRubRvcdkcdlbRvcdmbRvbRvbRvbRvbRvbRubQmbHlbOgbOgbOgbOgbZwcdnbXscdobZwbOgbOgbOgbOgbHlbXxcdpbXxcdqbXxbVtccwccxcdrcdscdtcdubVjcdvbVtbYCbXEbXFbofbzVbzVbzVbyHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhabhabhabhabhabhabhaaaaaaaaaaaaaaaaaaabhabhabhbPQcdwcdxcdxcdycaKbPPbGIbPQbPQaqCcdzaqCaqCaqCaqCaqCbKBbZTbZUccMccMcdAcdBcdCccMcdDcdEcdFcdGcdHcdIbZVbZXbGIcdJcdKcdLccVcdMcdNcdOcdPcdQcdRcdScdTcbacdUcdVccabRbccbcdWbSncdXcccbZgcdYcdZbWcbWdbTDceaccgccgbSybSzbTHcapcebbGOcecbkRcedbYlbYlceebRvcefcegcehbGOceicejbHkbQmbHlbWlbWmbWmcekbWobQzcaxbWqcelcembIxbIxbIxbHlcenbXxbXxbXxbXxbVtceoceocepceqbUdbUdbVjbUdbVtbUdbXEbXFbofcercescetbyHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsacsacsacsacsacsacsacsacsacAacsacsacsacsacsaaaaaabGIbGIbGIbGIbGIbGIccLbGIbGIbGIbGIaqDaqCaqCaqDachceuaqCaqCaqCbKBbZTbZUcevcewcexceycezceAceBceCceDceEceFceGbZVceHceIceJceKceLccVceMceNceOcePceQceRceSceTceUbTxceVbRbbRbbRbceWbSnceXceYbZgbZhbSnbUUaqDbSybSybSybSybSyceZcfacfbcfcbGOcfdcfecffbZncfgcfhbGOcficfjcfkbGOcflbQubQwcfmbHlbIxbXpbIxcfnbXrbQzbXsbQzbXtcfobIxbXpbIxbHlcfpbXxcfqcfrcfscftcfucfvcfwcfxbUdbVjbVjcfybVtbHqcfzcfAbofcfBcfCbzVbyHaaaaaaaaaaaaaaaaaaaaJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsaaaabhaaaabhaaaabhaaaadIaaaabhaaaabhaaaacsabhabhbGIcfDcfEbLYbXNbLYbLYbLYbLYbPPbPQaqCaqCaqCachcfFcfGachachaqDbKBbZTbZUcfHccMcaLcaLcaLccMcfIcfJcfKcfLcfMcfNbZVbGIbGIcfOcfPcfQccVccVcfRcfScfTcfUcfUcfUcfUcbabSncfVcfWcfXcfYcfZcgacgbcgcccdbYgcgdbTCbRrbTDcgecgfcgfbSyaqDbTHbELcggbGObGOcghbDGbGOcgicgjbGObGOcgkbGObGOcgjcglbLrcgmbHlbIxbIxbLtcgncgobWqcgpbQzbYucgqbWmbWmbYwbHlbXxbXxcgrbXxbXxbVtceoceocgscgtbUdcgucgvcgvbVtbzUcfzbXFbofbofbofbzVbofabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsaaacgwcgxcgyaaacgwcgxcgyaaacgwcgxcgyaaaacsaaaaaabGIcgzbLYcgAbGIbGIbXNbGIbGIbGIbGIaqCaqCaqCcgBachachaqDaqCaqCbKBbZTbZUccMcgCcgDcaLcgEccMccMcbNcgFcbQcgGcgHcgIcgJcgKcgLcgMcgNcgOcgPcgQcgRcgScgTcgUcgVcgWcgXcgYcgZchabVUchbchcbYachdbYfbVXbZhchebUUaqDbUVchfchgchhbSyaqDbGObGOchichjchkcghchlbGOcgichmchnchochpchqchnchrchsblhchtbHlbHlbHlbHlbHlbHlbQzchuchvbHlbHlbHlbHlbHlbHlbVtbVtbVtbVtbVtbVtchwchwchxchybVtbVtbVtbVtbVtbofchzbXFbofchAchBbzVbofabhabhabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsabhcgwchCcgyaaacgwchCcgyaaacgwchCcgyabhabhaaaaaabGIchDbLYchEbGIbWGbLYchFbUpchGbGIaqCaqCaqCaqCaqDaqCaqCaqCaqCbOIbZTbZUcaLchHchIcaLchJchKcaLcbNchLchMchNchOchPchQchRchSchTchUchVchWchXchYchZciacibcfSciccgXcidbSncfVbYaciecifcigcihciibRocijcikbWcbWdbTDcilcgfcgfbSyaqDbGObELcimcinciocipciqbGOcirciscitchsciuchscglcivciwblhcixbHlciycizcizciAciBbQzchuciCbHlabhabhabhabhbofciDbRVciEciFciFbVtciGciGchxciHbVtciIbzVbzVbzVbHqchzcbCbofciJbzVbzVbofbofbofabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsaaacgwchCcgyabhcgwchCcgyabhcgwchCcgyaaaabhabhabhbGIciKchEciLbGIciMciNciOciPbWHbGIaqCaqCaqCaqCaqDaqCaqCaqDaqCbOIbZTbZUcaLciQciRciSciTciUcaLciVciWciXciYciZbZVcjacjbcjccjdcjecjfcjgcjhcjicjjcjkcjlcjmcjncjocjpbSncfVcjqcjrbSnbSncjqcjqcjqbZhcjscjtaqDbSybSybSybSybSyaqDbGOcfdcjucjvcjwcjxcjybGObGOcjzcjAcjBbHkcjCcjDbGObGOblhcixbHlcjEcjFcjFcjGcjHcjIcjJcjKbHlabhaaaaaaabhbofbzVcjLbBCcjMcjNbVtcjOcjOcjPciHbVtbofbofcjQcjRbHqchzbXFbzVbzVbzVcjSbpCcjTbpEabqabqabhabhabhabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhabhcgwchCcgyaaacgwchCcgyaaacgwchCcgyabhabhaaaaaabGIcjUcjVcjWbGIcjXcjYbGIcjZbGIbGIaqCaqDaqCaqCaqDaqCaqCaqDaqCbOIbZTbZUbZUbZUbZUbZUbZUbZUbZUbZVbZVbZVbZVbZVbZVbGIckabGIcgXckbckbckbckcckdckeckbckfckgckhcgXbSnbUQckicjqcfZbVSbSnbSvbZbcjqbZhcjqbQdaqDaqDaqDaqDaqDaqDaqDckjckjckkcklckmckjckjckjcknckockpcjBckqcjBcjBbGOckrbDGcixbHlbHlckscksbHlbHlckscktcksbHlaaaaaaaaaaaabofbofchzckubofbofbVtbVtbVtckvckwbVtbHqbofcetbzVckxchzcfAbofbofckybofbofbofbofabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsacsacsabhaaacgwchCcgyaaacgwchCcgyaaacgwchCcgyaaaabhaaaaaackzckAckAckAckAbGIbGIckBckCbGIbPQbPQbPQbPQbPQbPQbPQbPQbPQbGIckDckEbXPckFckGckHckHckHckHckHckHckHckHckHckIckIckHckJcjXcgXckKckLckMckNckOckPckbckQckRckScgXckTckUbVZckVckWckXckYckVckZckVclacjqbQdbQdbQdaqCaqCaqDaqDckjckjclbclccldcleclfclgckjclhbELclicljclkcllclmbPobPoclnclobofaaaaaaaaaaaaaaaabhclpabhaaaaaaaaaaaaaaabofclqclrclsclscltcluclvclwclxclybofbofbofbofclzbofchzbXFbofclAclBbzVbofaaaabhabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsaaaabhaaaaaaaaaclCaaaaaaaaaclCaaaaaaaaaclCaaaaaaabhckzckzckzclDclEclFclGclHbLYclIclJclKclLclLclLclLclLclLclLclLclLclLclLclMbYQclNclOcgXcgXcgXcgXcgXcgXcgXcgXcgXcgXcgXcgXcgXcgXcgXckbclPckNclQclRclSclTclUclVclWcgXckTclXclYclZcmacmbcmccmdbSncmecmfcmgcmhcmicmjaqCaqCaqDcmkcmlcmmcmncmocmpcmqcmrcmsckjbELbELcjBcjBbDGcjBchsbELbELbDGcmtbofbofbyHbyHbofbofbyHcmubyHbofbofbyHbyHbyHbofcmvcmwbrncmxcmycmzcmzcmzcmAcmBcmCcmDcmEcmFcmFcmFcmGcmHbofchBbzVcmIbofaaaabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsabhcmJcmKcmKcmLcmMcmMcmMcmMcmMcmMcmMcmMcmMcmMcmMcmNcmOcmPcmQcmRcmScmTcmUclLcmVcmWbUpbGIbPQbPQbPQbPQbPQbPQbPQbPQbPQbGIbGIcmXcmYcmZcnacgXcnbcnbcnccgXcndcnecnfcngcnhcnicnjcnkcnlcnmckbcnncnocnpcnqcnrcnscntcnucnvcgXbQdcnwbRicnxcnycnzbRicnxbRicnAbRicnBbQdbQdbQdaqDaqDaqDbSzckjcnCcnDcnEcnFcnGcnHcnIckjcnJbELchschscnKcjBchsbELcnLbDGcnMbYLbYLbYLbYLbYLcnNbYLcnOcnPcnPcnPcnPcnPcnPcnQcnRbpAbofcnScnTbofbofbyHbyHbofbofcnUcfzcnVbrncnWcnXcnYbofbofbofbofbofaaaabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsaaaabhaaaaaaaaacnZaaaaaaaaacnZaaaaaaaaacnZaaaaaaabhckzckzckzcoacobcocckAbLYbLYbLYbLYbGIaaaaaaabhaaaaaaabhaaaaaaabhaaabGIcodbGIcoecofcgXcogcohcoicojcokcolcomconcomcoocopcoqcorcolckbcosckNcotcoucovckbcowcoxcoycgXaqDcozaqDbSzcoAcozaqDbSzaqDcoBaqDcoBaqDaqDaqCaqCaqCaqDbSzckjcoCcoDcmocoEcoFcoGcoHcoIcoJcoKcoLchsbHkchscoMcglcivcoNcoOcoOcoOcoOcoOcoOcoOcoPcoQcoOcoOcoOcoOcoOcoOcoRcoScoTbofcoUcfzbofaaaaaaaaaaaabofbzVcfzcoVcoWcoWcoXcoYcoWaaaabhabhabhabhabhabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsacsacsabhaaacgwcoZcgyaaacgwcoZcgyaaacgwcoZcgyaaaabhaaaaaackzckAckAckAckAcpabPPbLYbLYbGIbGIbPQcpbcpccpccpccpccpccpcabhbGIbGIbGIcpdcpecgXcpfcoicoicojcpgcomcphcpicpjcpkcomcomcomcomckbcplcpmcpmcpncpockbcppcpqcprcgXbSycpsbUVcpsbSycpsbUVcpsbSycptbUVcpubSyaqCaqCaqCaqCaqCbSzcpvcpwcmqcpxcmqcpycpzcpAckjcpBcjBcjBcjBcpCcjBcjBcjBbGObGIbGIbGIbPQbPQbPQbGIbGIbPQbPQbPQbGIbGIbPQbPQbPQbGIcpDbofbofcpEcfzbofbofbyHbyHbofbofbzVcfzcpFcoWcpGcpHcpIcoWaaaaaaabhabhaaaabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhabhcgwcoZcgyaaacgwcoZcgyaaacgwcoZcgyabhabhabhaaaaaaaaaaaaabqbGIbGIbGIcpJbLYbGIcpJbNycpccpKcpLcpMcpLcpNcpcaaabGIbWHbLYcpOcpecgXcpPcpPcpQcgXcpRcpScpTcomcpUcpkcpVcpWcpXcpXckbcpYcpZcpZcqacqbcqccqdcqecqfcgXbSycqgcqhcqibSycqjcqkcqlbSycqmcqncqobSyaqCaqCaqCaqCaqCbSzckjcqpcqqcqrcqscqtcqucqvckjcqwcqxcqycqzcqAcqBchschsbELcqCbLYbPQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhaaabofcqDbHqbofcqEcqFcqGclucqGcqGcqGcqGcqHcqIcqJcoWcqKcqLcqMcoWabhaaaaaaaaaaaaabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJdaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsaaacgwcoZcgyabhcgwcoZcgyabhcgwcoZcgyaaaabhabhabhaaaaaaaaaabqcbDcqNcbEbLYbLYbXNbLYcqOcpccqPcqQcqRcqScqTcpcaaabGIcjYbLYcpOcpecgXcpPcpPcpQcgXcqUcnkcqVcqWcqXcqYcqVcnkcqVcqVcnkcqZcracrbcpgcrccrdcrecrfcrgcgXbSycrhcricrhbSycrjcrkcrjbSycrlcrmcrnbSyaqDaqDaqDaqDaqDbSzckjckjckjcrocrpcrqcrrcrscrpcqwcrtchscrucrvcrwciwchscrxbGIbLYbPQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhaaabofcryclBbofcrzcrAcrAcrBcrAbrnbrnbrncrCcrCcrDcoWcrEcrFcrGcoWabhaaaabhaaaaaaabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsabhcgwcoZcgyaaacgwcoZcgyaaacgwcoZcgyabhabhaaaabhabhaaaaaaabqbGIbGIbGIbGIbLYbGIbGIbGIcpccrHcrIcrJcrKcrHcpcabhbGIcgXcrLcrMcrNcgXcpPcpQcpQcgXcrOcrPcrQcrRcpUcrScrTcrUcrTcrTcrVcrWcrXcrXcrYcrXcrXcrZcsacsbcgXbSycrhcsccrhbSycrjcsdcrjbSycrncsecrnbSyaqDaqDaqCaqCaqCceZbRtaqCaqCcsfcrpcsgcshcsicrpbELcsjcskbLrcslcsmcglcsncsobGIcqCbPQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhaaabofcspbzVbofbofbofbofbofbzVbofabhaaaaaaaaaabhcsqcsqcsrcsqcsqabhabhabhabhabhabhabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaaacgwcsscgyaaacgwcsscgyaaacgwcsscgyaaaacsaaaaaaabhabhaaaaaaaaaaaaaaabPQbLYbPQaaaaaacpccstcsucsvcswcsxcpccpccpccgXcsycrMcszcgXcgXcgXcgXcgXcsAcsBcomcomcpUcrfcomconcsCcsDcsEcomcomcomcomcsFcomcpUcpkcsGcgXbSybSybSybSybSybSybSybSybSybSybSybSybSyaqDaqCaqCaqCaqCaqCbSzaqCaqCcsHcrpcrqcsIcrscrpbGOcsJcivcsKcsLcivcsMbGObGObGIabqabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhabhbofcsNbzVbzVbzVbzVbzVbzVbzVbofabhaaaaaaaaaabhaaacsqcsOcsqaaaabhaaaabhaaaaaaabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsaaaabhaaaabhaaaabhaaaabhaaaabhaaaabhaaaacsaaaaaaaaaabhabhaaaaaaaaaaaabPQbLYbPQaaaaaacpccsPcsQcsRcsScsTcsUcsVcsWcsUcsXcsYcsZctactbctcctdctectfctgcthctictjctkcprcgXctlcgXctlcgXcprctmcomcomctncpUcpkctocgXcgXcgXcgXcgXcnkcnkcnkcnkcgXaaaaaaaaaaaaaqCaqCaqCaqCaqCaqCbSzaqCaqCcsHcrpctpctqctrctsaqDbGOcjzcttbTHbTHbGObGOaaaabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhabhbofctuctvctwciIctxbQTbRTbofbofabhaaaaaaaaaabhaaacsqctycsqaaaabhaaaabhaaaaaaabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsacsacsacsacsacAacsacsacsacsacsacsacsacsacsaaaaaaaaaaaaabhabhaaaaaaabhbPQbLYbPQabhabhcpcctzctActBctCctDctEctFctGctHctIctJctKctLctLctLctMctLctNctOctPctQctRctScgXctTctUctVctUctWcgXctXcomctYctZcpUcuactRctRctRcubcuccgXcudcnkcuecufcufcufaaaaaaaaaaqCaqCaqCaqCaqCaqCbSzaqCaqCcsHcrpcrpcugcrpcrpaaaaqDaaacuhaqCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabofbofbofccEbofcpDbofbyHbyHbofbofaaaabhaaaaaaaaaabhaaaaaacuiaaaaaaabhaaaabhaaaaaaabhaaaaaaaaaaaJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhabhaaaaaabPQbLYbPQaaaaaacpccujcukculcumcuncpccuocupcpccuqcurcusconcomcutcqVcuucpgcuvcuwcuxcuxcuxcuycuzcuAcuBcuCcuDcuycuEcuEcsEcphcuFcuGcpicpicpjcrfcuHcuIcoicuJcuKcuLcuMcuNcuOaaaaaaaqCaqCaqCaqCaqCaqCbSzaqCaqCcsHbYEcrpcuPcrpcuQaqDaqDaaacuRaqCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabofcuScuTcuTbofcuUabhaaaaaaabhaaaaaaabhaaaaaaaaaabhaaaaaacuiaaaaaaabhaaaabhaaaaaaabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhabhbGIbGIcuVbGIbGIaaacpccuWcuXcuYcpccpccpccpccpccgXcuZcomcuscomcomcvacqVcvbcpgcvccvdcvecvfcvgcgXcvhcvicvjcvkcvlcgXcvmcvncvncvdcvccpgcvocvpcpUcrfcvqcgXcvrcnkcuecufcufcufaaaaaaaaaaqCaqCaqCaqCcvsaqCbSzaqCaqCcvtbYEcvucvvcvubYEaqDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyHbyHbyHcuTcuTcvwbofaaaabhaaaaaaabhaaaacsacsacsacAabhabhabhabhcuiabhabhabhabhabhacAacsacsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhbGIcodbLYcvxbGIabhcpccpccpccpccpcabhaaaaaaabhcgXcvycomcvzcvAcvAcvBcnkcnkcvCcgXcvDcvEcvEcvEcgXcvFcvGcvHcvIcvJcgXcvEcvEcvEcvDcgXcvCcnkcnkcpUcrfcgXcgXcnkcnkcnkcnkcgXaaaaaaaaaaaaaqCaqCaqCaqCaqCaqCbSzaqCaqCaqDbYEaaaaaaaaabYEaqDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyHbzVcvKcuTcuTcvLbofaaaabhaaaaaaabhaaaacsaaaaaaabhaaaabhaaaaaacvMaaaaaaabhaaaabhaaaaaaacsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabPQcvNcvOcvPbGIabhaaaaaaabhaaaaaaabhaaaaaaabhcgXcvQcvRcpgcvScvTcvUcnkcvVcvWcgXcvXcvYcvZcvYcwacwbcwccwdcwecvJcwacvYcvYcvYcwfcgXcwgcwhcgXcpUcwicwjcwkcwlcwmcwaaaaabhabhabhabhabhaqCaqCaqCaqCaqCaqCbSzaqCaqCaqCbYEbYEbYEbYEbYEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyHcvKbyHbyHbyHbyHbofaaaabhaaaaaaabhaaaacsabhcwncwncwncwncwnaaacwoaaacwncwncwncwncwnabhacsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabPQcwpcwqbNxbGIcnkcwrcwrcwrcwrcwrcwrcwrcwrcnkcgXcwscwtcwucwvcwscgXcgXcgXcwwcgXcgXcwacwacwacwacwxcwycwzcwAcwBcwacwacwacwacgXcgXcwwcgXcgXcwCcwDcwEcwFcomcwGcwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqabqabqaaaaaaaaaaaaaaaaaaaaaaaaabhaaaacsaaacwIcwJcwJcwJcwJcwKcwocwLcwMcwMcwMcwMcwNaaaacsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabPQbPQbPQbPQbGIabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacgXcwOcwPcwQaqCachcwRcwacwacwacwacwScwacwacwacwacwRachaqCcwTcwUcwVcgXcwWcgXcgXcwXcwYcwZcwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhaaaacsadIcxacxacxacxacxaaaacwoaaacxacxacxacxacxaabhacsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacgXcxbcxccxcaqCcxdcxecxecxecxecxecxfcxecxecxecxecxecxgaqCcxccxhcxbcgXcxicxjcgXcnkcnkcxkcnkabhabhabhabhabhabhabhabhabhabhabhabhcwHabhabhabhabhabhabhabhabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhaaaacsaaaaaaaaaabhaaaaaaaaacwoaaaaaaaaaabhaaaaaaaaaacsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacgXcxlcxmcxnaqDcxoachcxpaqCaqCaqCaqCcxpaqCaqCcxpachcxoaqCcxqcxrcxscgXcxtcxucnkabhaaacxvcxwabhaaaaaaaaaabhaaaaaaaaaabhaaaaaaaaacwHaaaaaaaaacxxcxxcxxcxxcxxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsabhcwncwncwncwncwnaaacwoaaacwncwncwncwncwnabhacsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacgXcxbcxccxyaqCcxzcxAaqCaqCaqCaqCaqCcxBaqCaqCaqCcxCcxDaqCcxccxccxbcgXabqabqabqabhaaacxEcxFcxGcxHcxIcxHcxGcxHcxIcxHcxGcxHcxIcxHcxJcxHcxHcxHcxKcxLcxMcxNcxxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsaaacwIcwJcwJcwJcwJcwKcwocwLcwMcwMcwMcwMcwNaaaacsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacgXcxOcxPcxcaqCcxoachaqCaqCaqDaqDaqDaqDaqDaqCaqCachcxocxQcxccxRcxScgXaaaaaaabqabhaaaaaaaaaabhaaaaaaaaaabhaaaaaaaaaabhaaaaaaaaacwHabqcxxcxxcxxcxTcxUcxTcxxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsabhcxacxacxacxacxaaaacwoaaacxacxacxacxacxaabhacsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacgXcgXcxVcxcaqCcxoachcxpaqDaqDcxWcxXcxYaqDcxZaqCachcxoaqCcxccxVcgXcgXaaaaaaabqabhabhabhabhabhabhabhabhabhabhabhabhabhabhabhabhcwHabqcyacybcyccydcyecydcxxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaaaaaaaaaabhaaaaaaaaacyfaaaaaaaaaabhaaaaaaaaaacsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhcprcgXcygcxcaqCcxzcxAaqCaqCaqDcyhcyicyjaqDaqCaqCcxCcxDaqCcxccykcgXcpraaaaaaabqabqabqabqabqabqabqabqabqabqabqabqabqabqabqabqabqcylabqcxxcymcyncyocyecypcynaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsabhcwncwncwncwncwnaaacuiaaacwncwncwncwncwnabhacsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacgXcgXcxVcxcaqCcxoachaqCcyqaqDcyrcyscytaqDaqDcxpachcxoaqCcxccxVcgXcgXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwHabqcyucyucyucyucyvcywcyxcyyabhabhabhabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsaaacwIcwJcwJcwJcwJcyzcyAcyzcwMcwMcwMcwMcwNaaaacsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacgXcxRcxScxcaqCcxoachaqCaqCaqDaqDaqDaqDaqDaqCaqCachcxoaqCcxccxOcxPcgXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwHaaaaaacyucyucyBcyCcyDcyucyucyucyucyuabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsabhcxacxacxacxacxaaaacuiaaacxacxacxacxacxaabhacsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacgXcxbcxccyEaqCcxzcxAaqCaqCaqCaqDaqCaqCaqCaqCaqCcxCcxDaqCcxccxccxbcgXaaaaaaaaaaaJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwHaaaaaacyucyFcyGcyHcyIcyJcyKcyLcyMcyuabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsaaaaaaabhaaaabhaaaaaacuiaaaaaaabhaaaabhaaaaaaacsaaaaaaaaaaaaaaJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJaaaaaaaaaaaaaaacgXcyNcxmcxnaqDcxoachcxpaqCaqCcxpaqCaqCaqCaqCcxpachcxoaqCcxqcxrcyOcgXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwHaaaaaacyucyPcyQcyRcyScyTcyUcyVcyWcyuabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJaaaaaaaaaaaaacsacsacsacsacsabhabhaaacuiaaaabhabhacsacsacsacAacsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacgXcyXcxccxcaqCcxoachachcyYachachcyYachachcyYachachcxoaqCcxccxccyXcgXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhcyZczaabhcyuczbczcczdczeczfczgczhczicyuabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsabhczjabhacsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacgXcyXcxcczkaqCczlcxecxeczmcxecxeczmcxecxeczmcxecxecznaqCczocxccyXcgXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhczpczqczpczpczrczscztczuczvczwczwczwczwabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsaaaabhaaaacsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczxcgXcgXcgXcxcaqDaqDaqDaqDaqCaqCaqCaqCaqCaqDaqDaqDaqDcxccgXcgXcgXczxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczpczpczyczzczpczAczAczBczCczAczwczDczDczwczwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsacsacsacsacsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhaaacyXcgXcgXcnkcnkcnkcnkcnkcnkcnkcnkcnkcnkcnkcnkcnkcgXcgXcyXabhabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczpczEczFczGczHczAczIczJczKczAczLczMczMczNczwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhaaaaaacyXcyXcyXcyXckScyXcyXcyXcyXcyXcyXcyXckScyXcyXcyXcyXaaaaaaabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczpczOczPczQczRczSczTczUczVczSczWczXczYczZczwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhabhabhaaaaaaaaaaaaabhabhabhabhaaaaaaaaaaaaaaaabhaaaaaJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczpcAacAbcAccAdcAecAfcAgcAhcAicAjcAkcAlcAmczwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhaaaaaaaaaaaaaaaaaaaaaabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczpczpcAnczPcAoczAcApcAqcArczAcAscAtcAuczwczwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhaaaaaaaaaaaaaaaaaaaaaabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhcAvcAwcAxcAwcAvcAvcAycAzcAvcAwcAAcAwcAvabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacABaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJaaaaaaaaaaaaabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAvcACcADcAwcAEcAFcAGcAHcAEcAwcAIcAJcAvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhcAvcAKcADcAwcAEcAFcAGcAHcAEcAwcAIcALcAvabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAMcAvcAvcADcAwcANcAFcAOcAPcAQcAwcAIcAvcAvcARaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhabhcAvcAScAwcATcAFcAGcAHcAEcAwcAUcAvabhabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhcAvcAVcAWcAXcAYcAZcAHcBacBbcBccAvabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhcAvcBdcAwcBecBfcBgcAHcBhcAwcBdcAvabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhabhcAvcBdcAwcANcBicBjcAHcAQcAwcBdcAvabhabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhcAvcAvcBdcAwcAEcAFcAGcAHcAEcAwcBdcAvcAvabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhcAvcBdcBdcAwcAEcAFcBkcAHcAEcAwcBdcBdcAvabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAvcBdcBlcBlcBmcBlcBncBocBpcBlcBlcBdcAvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAvcBdcBlcBlcBqcBrcBscBtcBucBlcBlcBdcAvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAvcBdcBlcBlcBvcBwcBxcBycBzcBlcBlcBdcAvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAvcBAcBlcBlcBBcBBcBCcBDcBBcBlcBlcBAcAvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAvcBAcBlcBFcBFcBGcBHcBycBFcBFcBlcBAcAvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBlcBlcBlcBIcBJcBKcBLcBMcBNcBOcBlcBlcBlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBlcBlcBlcBFcBscBPcBQcBRcBycBFcBlcBlcBlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhcBlcBlcBlcBScBHcBTcBUcBTcBVcBScBlcBlcBlabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBWcBlcBlcBXcBGcBYcBTcBTcBTcBZcBGcCacBlcBlcCbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacCcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhcBlcBlcBlcBScCdcCecCfcBTcBGcBScBlcBlcBlabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBlcBlcBlcBIcBGcCgcChcBFcBGcBOcBlcBlcBlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBlcBlcBlcBFcBGcCicCjcBGcBGcBFcBlcBlcBlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBlcBlcBlcBlcBlcBlcBlcBlcBlcBlcBlcBlcBlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBlcBlcBlcBlcBlcBlcBlcBlcBlcBlcBlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhcBlcBlcBlcBlcBlcBlcBlcBlcBlabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhabhaaaaaacCkaaaaaaabhabhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +"} diff --git a/_maps/map_files/generic/lavaland.dmm b/_maps/map_files/generic/lavaland.dmm new file mode 100644 index 0000000..5d5b80a --- /dev/null +++ b/_maps/map_files/generic/lavaland.dmm @@ -0,0 +1,68343 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/closed/indestructible/necropolis, +/area/lavaland/surface/outdoors) +"ab" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ac" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"ad" = ( +/turf/closed/indestructible/necropolis, +/area/lavaland/surface/outdoors) +"ae" = ( +/obj/structure/necropolis_gate, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"af" = ( +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"ag" = ( +/obj/item/device/radio/intercom{ + dir = 8; + name = "Station Intercom (General)"; + pixel_x = 28 + }, +/turf/open/floor/plasteel/purple/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 4 + }, +/area/mine/living_quarters) +"ah" = ( +/turf/closed/indestructible/necropolis, +/area/ruin/unpowered{ + name = "Necropolis Bridge" + }) +"ai" = ( +/turf/open/indestructible/necropolis, +/area/ruin/unpowered{ + name = "Necropolis Bridge" + }) +"aj" = ( +/turf/open/indestructible/necropolis, +/area/lavaland/surface/outdoors) +"ak" = ( +/obj/effect/light_emitter, +/turf/open/indestructible/necropolis, +/area/lavaland/surface/outdoors) +"al" = ( +/turf/closed/mineral/random/volcanic, +/area/lavaland/surface/outdoors) +"am" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"an" = ( +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"ao" = ( +/obj/structure/table, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"ap" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"aq" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/medical, +/obj/machinery/camera{ + c_tag = "Labor Camp Medical"; + dir = 8; + network = list("Labor") + }, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"ar" = ( +/obj/structure/rack{ + dir = 1 + }, +/obj/item/weapon/storage/bag/ore, +/obj/item/weapon/pickaxe, +/obj/item/device/flashlight, +/obj/item/clothing/glasses/meson, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"as" = ( +/obj/structure/rack{ + dir = 1 + }, +/obj/item/weapon/storage/bag/ore, +/obj/item/device/flashlight, +/obj/item/weapon/pickaxe, +/obj/item/clothing/glasses/meson, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"at" = ( +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"au" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"av" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"aw" = ( +/obj/machinery/door/airlock/glass_medical{ + id_tag = null; + name = "Infirmary"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"ax" = ( +/obj/structure/closet/crate/internals, +/obj/item/weapon/tank/internals/emergency_oxygen, +/obj/item/weapon/tank/internals/emergency_oxygen, +/obj/item/weapon/tank/internals/emergency_oxygen, +/obj/item/weapon/tank/internals/emergency_oxygen, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"ay" = ( +/obj/structure/table, +/obj/item/trash/plate, +/obj/item/weapon/kitchen/fork, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"az" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"aA" = ( +/obj/item/device/radio/intercom{ + desc = "Talk through this. It looks like it has been modified to not broadcast."; + dir = 2; + name = "Prison Intercom (General)"; + pixel_x = 0; + pixel_y = 24; + prison_radio = 1 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"aB" = ( +/obj/machinery/door/airlock{ + name = "Labor Camp Storage" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"aC" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"aD" = ( +/obj/machinery/door/airlock{ + name = "Vending" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"aE" = ( +/obj/machinery/door/airlock{ + name = "Labor Camp External Access" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"aF" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"aG" = ( +/obj/machinery/vending/sustenance, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"aH" = ( +/obj/item/device/radio/intercom{ + dir = 8; + name = "Station Intercom (General)"; + pixel_x = -28 + }, +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"aI" = ( +/obj/machinery/mineral/unloading_machine{ + dir = 1; + icon_state = "unloader-corner"; + input_dir = 1; + output_dir = 2 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"aJ" = ( +/obj/machinery/camera{ + c_tag = "Labor Camp External"; + dir = 4; + network = list("Labor") + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"aK" = ( +/obj/machinery/flasher{ + id = "Labor"; + pixel_x = 0; + pixel_y = 0 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"aL" = ( +/obj/machinery/mineral/processing_unit_console{ + dir = 2; + machinedir = 4 + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"aM" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"aN" = ( +/obj/structure/closet/crate, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/explored) +"aO" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Labor Camp Shuttle Security Airlock"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"aP" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/button/door{ + id = "Labor"; + name = "Labor Camp Lockdown"; + pixel_x = 0; + pixel_y = 28; + req_access_txt = "2" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"aQ" = ( +/obj/machinery/door/poddoor/preopen{ + id = "Labor"; + name = "labor camp blast door" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"aR" = ( +/obj/machinery/camera{ + c_tag = "Labor Camp Central"; + network = list("Labor") + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"aS" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "gulag" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"aT" = ( +/obj/machinery/conveyor{ + dir = 2; + id = "gulag" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"aU" = ( +/obj/item/weapon/pickaxe, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"aV" = ( +/obj/machinery/conveyor{ + dir = 10; + icon_state = "conveyor0"; + id = "gulag" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"aW" = ( +/obj/machinery/power/terminal, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"aX" = ( +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable{ + tag = "icon-0-9"; + icon_state = "0-9"; + d1 = 2; + d2 = 4 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"aY" = ( +/obj/structure/ore_box, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"aZ" = ( +/obj/machinery/computer/shuttle/labor/one_way, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"ba" = ( +/obj/machinery/status_display{ + density = 0; + layer = 4; + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"bb" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/eva) +"bc" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"bd" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Labor Camp Backroom"; + req_access_txt = "2" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"be" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"bf" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Labor Camp APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"bg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"bh" = ( +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"bi" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"bj" = ( +/turf/open/floor/mech_bay_recharge_floor{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/eva) +"bk" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"bl" = ( +/obj/docking_port/stationary{ + area_type = /area/lavaland/surface/outdoors; + dir = 8; + dwidth = 2; + height = 5; + id = "laborcamp_away"; + name = "labor camp"; + turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + width = 9 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/explored) +"bm" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Labor Camp Shuttle Prisoner Airlock"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"bn" = ( +/obj/structure/ore_box, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (SOUTHWEST)"; + dir = 10; + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"bo" = ( +/obj/structure/closet/secure_closet/miner, +/turf/open/floor/plasteel/purple/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"bp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 4 + }, +/area/mine/living_quarters) +"bq" = ( +/obj/machinery/airalarm{ + frequency = 1439; + pixel_y = 23 + }, +/obj/machinery/computer/shuttle/mining{ + req_access = "0" + }, +/turf/open/floor/plasteel/purple/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1 + }, +/area/mine/production) +"br" = ( +/obj/structure/table, +/obj/item/stack/packageWrap, +/obj/item/stack/packageWrap, +/obj/item/stack/packageWrap, +/obj/item/weapon/hand_labeler, +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/mine/eva) +"bs" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/door/airlock/glass_mining{ + name = "Mining Station Bridge"; + req_access_txt = "48" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"bt" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/mine/eva) +"bu" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Labor Camp Monitoring"; + req_access_txt = "2" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"bv" = ( +/obj/structure/closet/secure_closet/miner, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 6 + }, +/area/mine/living_quarters) +"bw" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Labor Camp Maintenance"; + req_access_txt = "2" + }, +/obj/structure/cable{ + tag = "icon-1-10"; + icon_state = "1-10"; + d1 = 2; + d2 = 4 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"bx" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"by" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; + name = "KEEP CLEAR: DOCKING AREA"; + pixel_y = 0 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"bz" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/door/airlock/glass_mining{ + name = "Mining Station EVA"; + req_access_txt = "54" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/eva) +"bA" = ( +/turf/open/floor/plating/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors/explored) +"bB" = ( +/obj/structure/table, +/obj/machinery/recharger, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp/security) +"bC" = ( +/obj/structure/chair/office/dark, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/mob/living/simple_animal/bot/secbot/beepsky{ + desc = "Powered by tears and swet of laborer."; + name = "Prison Ofitser" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp/security) +"bD" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/weapon/pen, +/obj/machinery/power/apc{ + dir = 4; + name = "Labor Camp Security APC"; + pixel_x = 24; + pixel_y = 0 + }, +/obj/machinery/camera{ + c_tag = "Labor Camp Monitoring"; + network = list("Labor") + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp/security) +"bE" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + tag = "icon-5-6"; + icon_state = "5-6"; + d1 = 2; + d2 = 4 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"bF" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"bG" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"bH" = ( +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Mining Shuttle Airlock"; + opacity = 0; + req_access_txt = "0" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"bI" = ( +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 4 + }, +/area/mine/production) +"bJ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (WEST)"; + dir = 8 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"bK" = ( +/obj/machinery/computer/secure_data, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp/security) +"bL" = ( +/obj/machinery/computer/security{ + name = "Labor Camp Monitoring"; + network = list("Labor") + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp/security) +"bM" = ( +/obj/machinery/computer/prisoner, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp/security) +"bN" = ( +/obj/machinery/power/port_gen/pacman{ + anchored = 1 + }, +/obj/structure/cable, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"bO" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"bP" = ( +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1 + }, +/area/mine/production) +"bQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/mine/living_quarters) +"bR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"bS" = ( +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 4 + }, +/area/mine/production) +"bT" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 30; + pixel_y = 0 + }, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 4 + }, +/area/mine/production) +"bU" = ( +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/mine/production) +"bV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"bW" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/mine/production) +"bX" = ( +/obj/machinery/power/terminal{ + icon_state = "term"; + dir = 1 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"bY" = ( +/obj/structure/cable, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/power/port_gen/pacman{ + anchored = 1 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"bZ" = ( +/obj/machinery/power/port_gen/pacman{ + anchored = 1 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"ca" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"cb" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/door/airlock/glass_mining{ + name = "Mining Station Bridge"; + req_access_txt = "48" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"cc" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/door/airlock/maintenance{ + name = "Mining Station Maintenance"; + req_access_txt = "48" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"cd" = ( +/obj/machinery/mineral/equipment_vendor, +/turf/open/floor/plasteel/brown{ + tag = "icon-brown (NORTHWEST)"; + dir = 9; + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"ce" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"cf" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1; + tag = "icon-brown (NORTH)" + }, +/area/mine/living_quarters) +"cg" = ( +/obj/machinery/camera{ + c_tag = "Crew Area Hallway East"; + network = list("MINE") + }, +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1 + }, +/area/mine/living_quarters) +"ch" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"ci" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"cj" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (NORTH)"; + dir = 1 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"ck" = ( +/obj/docking_port/stationary{ + area_type = /area/lavaland/surface/outdoors; + dir = 8; + dwidth = 3; + height = 5; + id = "mining_away"; + name = "lavaland mine"; + turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + width = 7 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"cl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"cm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 4 + }, +/area/mine/production) +"cn" = ( +/obj/machinery/door/airlock/glass_mining{ + name = "Processing Area"; + req_access_txt = "48" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"co" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/mine/production) +"cp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"cq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"cr" = ( +/turf/open/floor/plasteel/purple/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 6 + }, +/area/mine/production) +"cs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"ct" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock{ + glass = 1; + name = "Break Room"; + opacity = 0 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"cu" = ( +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/mine/living_quarters) +"cv" = ( +/obj/machinery/light, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"cw" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"cx" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"cy" = ( +/obj/machinery/door/airlock/mining{ + name = "Mining Station Storage"; + req_access_txt = "48" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"cz" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/turf/open/floor/plasteel/purple/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"cA" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"cB" = ( +/obj/docking_port/stationary{ + area_type = /area/lavaland/surface/outdoors; + dir = 2; + dwidth = 11; + height = 22; + id = "whiteship_lavaland"; + name = "lavaland wastes"; + turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface; + width = 35 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"cC" = ( +/obj/structure/closet/crate, +/turf/open/floor/plasteel/purple/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"cD" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 6 + }, +/area/mine/production) +"cE" = ( +/turf/open/floor/plasteel/loadingarea{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/mine/production) +"cF" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "mining_internal" + }, +/obj/structure/plasticflaps, +/turf/open/floor/plating/warnplate{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 9 + }, +/area/mine/production) +"cG" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "mining_internal" + }, +/turf/open/floor/plating/warnplate{ + tag = "icon-warnplate (NORTH)"; + dir = 1; + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"cH" = ( +/obj/machinery/light/small, +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 4 + }, +/area/mine/living_quarters) +"cI" = ( +/obj/machinery/conveyor{ + icon_state = "conveyor0"; + dir = 10; + id = "mining_internal" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating/warnplate/corner{ + tag = "icon-warnplatecorner (EAST)"; + dir = 4; + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"cJ" = ( +/obj/machinery/airalarm{ + frequency = 1439; + pixel_y = 23 + }, +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1 + }, +/area/mine/living_quarters) +"cK" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/brown, +/obj/machinery/airalarm{ + frequency = 1439; + pixel_y = 23 + }, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"cL" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"cM" = ( +/obj/machinery/door/airlock{ + id_tag = "miningdorm1"; + name = "Room 1" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"cN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/mine/living_quarters) +"cO" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (EAST)"; + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"cP" = ( +/obj/machinery/vending/snack, +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"cQ" = ( +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"cR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"cS" = ( +/obj/machinery/vending/cigarette, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"cT" = ( +/obj/structure/table, +/obj/machinery/microwave{ + pixel_y = 6 + }, +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"cU" = ( +/obj/structure/ore_box, +/turf/open/floor/plasteel/purple/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/mine/living_quarters) +"cV" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"cW" = ( +/obj/structure/table, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"cX" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "miningdorm1"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 25; + pixel_y = 0; + req_access_txt = "0"; + specialfunctions = 4 + }, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"cY" = ( +/obj/structure/chair, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"cZ" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder, +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"da" = ( +/obj/machinery/recharge_station, +/turf/open/floor/plasteel/purple/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"db" = ( +/obj/structure/closet/secure_closet/miner, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"dc" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"dd" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/drinks/beer, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"de" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"df" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"dg" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/drinks/beer, +/obj/item/weapon/reagent_containers/food/drinks/beer, +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"dh" = ( +/obj/machinery/door/airlock{ + id_tag = "miningdorm2"; + name = "Room 2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"di" = ( +/obj/machinery/camera{ + c_tag = "Crew Area"; + dir = 1; + network = list("MINE") + }, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = 0; + pixel_y = -32 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"dj" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"dk" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/donkpockets, +/turf/open/floor/plasteel/bar{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"dl" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "miningdorm2"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 25; + pixel_y = 0; + req_access_txt = "0"; + specialfunctions = 4 + }, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"dm" = ( +/turf/open/floor/bluegrid{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/maintenance) +"dn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"do" = ( +/obj/machinery/door/airlock{ + id_tag = "miningdorm3"; + name = "Room 3" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"dp" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "miningdorm3"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 25; + pixel_y = 0; + req_access_txt = "0"; + specialfunctions = 4 + }, +/turf/open/floor/carpet{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"dq" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/explored) +"dr" = ( +/obj/machinery/conveyor_switch/oneway{ + id = "gulag" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"ds" = ( +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/eva) +"dt" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/eva) +"du" = ( +/obj/structure/table, +/obj/item/weapon/pickaxe, +/obj/item/device/gps/mining, +/obj/item/device/gps/mining, +/obj/item/device/gps/mining, +/obj/item/device/gps/mining, +/turf/open/floor/plasteel/purple/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 9 + }, +/area/mine/eva) +"dv" = ( +/obj/machinery/suit_storage_unit/mining, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1 + }, +/area/mine/eva) +"dw" = ( +/obj/machinery/suit_storage_unit/mining, +/turf/open/floor/plasteel/purple/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 5 + }, +/area/mine/eva) +"dx" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"dy" = ( +/obj/machinery/camera{ + c_tag = "EVA"; + dir = 4; + network = list("MINE") + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23; + pixel_y = 0 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/mine/eva) +"dz" = ( +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/eva) +"dA" = ( +/obj/machinery/light_switch{ + pixel_x = 27 + }, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 4 + }, +/area/mine/eva) +"dB" = ( +/obj/structure/closet/crate, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1 + }, +/area/mine/production) +"dC" = ( +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"dD" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/eva) +"dE" = ( +/obj/structure/tank_dispenser/oxygen, +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/eva) +"dF" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/mine/eva) +"dG" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/eva) +"dH" = ( +/obj/item/device/radio/beacon, +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/mine/production) +"dI" = ( +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"dJ" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"dK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 4 + }, +/area/mine/production) +"dL" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/mine/eva) +"dM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/eva) +"dN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/eva) +"dO" = ( +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 4 + }, +/area/mine/eva) +"dP" = ( +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Mining External Airlock"; + opacity = 0; + req_access_txt = "54" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/eva) +"dQ" = ( +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/mine/eva) +"dR" = ( +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/mine/production) +"dS" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"dT" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + tag = "icon-manifold-b-f (EAST)"; + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"dU" = ( +/obj/machinery/power/apc{ + dir = 2; + name = "Mining EVA APC"; + pixel_x = 1; + pixel_y = -23 + }, +/obj/structure/cable, +/obj/machinery/recharge_station, +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1 + }, +/area/mine/eva) +"dV" = ( +/obj/machinery/mech_bay_recharge_port, +/obj/structure/cable, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/eva) +"dW" = ( +/obj/machinery/computer/mech_bay_power_console, +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 4 + }, +/area/mine/eva) +"dX" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1 + }, +/area/mine/eva) +"dY" = ( +/obj/structure/ore_box, +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 4 + }, +/area/mine/eva) +"dZ" = ( +/turf/open/floor/plasteel/purple/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 4 + }, +/area/mine/production) +"ea" = ( +/obj/machinery/door/airlock{ + name = "Closet"; + req_access_txt = "0" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"eb" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"ec" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"ed" = ( +/turf/closed/mineral/random/high_chance/volcanic, +/area/lavaland/surface/outdoors) +"ee" = ( +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"ef" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE" + }, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"eg" = ( +/obj/item/device/radio/intercom{ + dir = 8; + name = "Station Intercom (General)"; + pixel_x = -28 + }, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/mine/production) +"eh" = ( +/turf/closed/wall/r_wall{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/maintenance) +"ei" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"ej" = ( +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"ek" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/closet/crate/secure/loot, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"el" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"em" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"en" = ( +/obj/structure/fluff/drake_statue, +/turf/open/indestructible/necropolis, +/area/lavaland/surface/outdoors) +"eo" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Mining Station Starboard Wing APC"; + pixel_x = -27; + pixel_y = 2 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/purple/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/mine/production) +"ep" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"eq" = ( +/obj/machinery/mineral/equipment_vendor, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 5 + }, +/area/mine/production) +"er" = ( +/obj/machinery/mineral/mint{ + input_dir = 4 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"es" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/loadingarea{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/mine/production) +"et" = ( +/obj/structure/closet/crate, +/obj/machinery/airalarm{ + frequency = 1439; + pixel_y = 23 + }, +/turf/open/floor/plasteel/bot{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"eu" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/obj/structure/table, +/obj/item/weapon/paper{ + anchored = 0; + info = "A hastily written note has been scribbled here...

Please use the ore redemption machine in the science wing for smelting. PLEASE!

--The Research Staff"; + name = "URGENT!" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"ev" = ( +/obj/structure/ore_box, +/turf/open/floor/plasteel/bot{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"ew" = ( +/turf/open/floor/plasteel/bot{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"ex" = ( +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Mining Communications APC"; + pixel_x = 1; + pixel_y = 25 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/maintenance) +"ey" = ( +/obj/machinery/telecomms/relay/preset/mining, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8; + tag = "icon-vault (WEST)" + }, +/area/mine/maintenance) +"ez" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/maintenance) +"eA" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/airalarm{ + frequency = 1439; + pixel_y = 23 + }, +/obj/machinery/iv_drip, +/turf/open/floor/plasteel/whiteblue/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1; + tag = "icon-whiteblue (NORTH)" + }, +/area/mine/living_quarters) +"eB" = ( +/turf/open/floor/plasteel/whiteblue/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1; + tag = "icon-whiteblue (NORTH)" + }, +/area/mine/living_quarters) +"eC" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/toxin{ + pixel_x = 3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/whiteblue/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 5; + tag = "icon-whiteblue (NORTHEAST)" + }, +/area/mine/living_quarters) +"eD" = ( +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"eE" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"eF" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"eG" = ( +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 8 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"eH" = ( +/obj/machinery/mineral/equipment_vendor, +/turf/open/floor/plasteel/purple/side{ + dir = 4 + }, +/area/mine/production) +"eI" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"eJ" = ( +/turf/open/floor/plasteel/loadingarea{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"eK" = ( +/turf/open/floor/plasteel/loadingarea{ + tag = "icon-loadingarea (EAST)"; + dir = 4; + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"eL" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"eM" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/bluegrid{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/maintenance) +"eN" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/black{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/maintenance) +"eO" = ( +/obj/machinery/light_switch{ + pixel_y = -25 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/bluegrid{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/maintenance) +"eP" = ( +/obj/machinery/camera{ + c_tag = "Communications Relay"; + dir = 8; + network = list("MINE") + }, +/turf/open/floor/bluegrid{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/maintenance) +"eQ" = ( +/obj/structure/closet/crate/freezer, +/obj/item/weapon/reagent_containers/blood/empty, +/obj/item/weapon/reagent_containers/blood/empty{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/weapon/reagent_containers/blood/AMinus, +/obj/item/weapon/reagent_containers/blood/BMinus{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/weapon/reagent_containers/blood/BPlus{ + pixel_x = 1; + pixel_y = 2 + }, +/obj/item/weapon/reagent_containers/blood/OMinus, +/obj/item/weapon/reagent_containers/blood/OPlus{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/weapon/reagent_containers/blood/random, +/obj/item/weapon/reagent_containers/blood/random, +/obj/item/weapon/reagent_containers/blood/random, +/obj/machinery/camera{ + c_tag = "Sleeper Room"; + dir = 1; + network = list("MINE") + }, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"eR" = ( +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"eS" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"eT" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/plasteel/whiteblue/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 4; + tag = "icon-whiteblue (EAST)" + }, +/area/mine/living_quarters) +"eU" = ( +/turf/open/floor/plasteel/purple/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/mine/production) +"eV" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Shuttle Docking Foyer"; + dir = 8; + network = list("MINE") + }, +/obj/machinery/newscaster{ + pixel_x = 30; + pixel_y = 1 + }, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 4 + }, +/area/mine/production) +"eW" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/turf/open/floor/plasteel/bot{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"eX" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"eY" = ( +/obj/machinery/camera{ + c_tag = "Processing Area Room"; + dir = 8; + network = list("MINE") + }, +/obj/item/device/radio/intercom{ + dir = 8; + name = "Station Intercom (General)"; + pixel_x = 28 + }, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 4 + }, +/area/mine/production) +"eZ" = ( +/obj/machinery/mineral/unloading_machine{ + dir = 1; + icon_state = "unloader-corner"; + input_dir = 1; + output_dir = 2 + }, +/turf/open/floor/plating/warnplate{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 9 + }, +/area/mine/production) +"fa" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Mining Station Communications"; + req_access_txt = "48" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/maintenance) +"fb" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"fc" = ( +/obj/machinery/door/airlock/glass_medical{ + id_tag = null; + name = "Infirmary"; + req_access_txt = "0" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"fd" = ( +/obj/machinery/camera{ + c_tag = "Storage"; + dir = 2; + network = list("MINE") + }, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 5 + }, +/area/mine/living_quarters) +"fe" = ( +/turf/open/floor/plasteel/brown/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1; + tag = "icon-browncorner (NORTH)" + }, +/area/mine/production) +"ff" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"fg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"fh" = ( +/obj/machinery/conveyor_switch/oneway{ + id = "mining_internal"; + name = "mining conveyor" + }, +/turf/open/floor/plasteel/purple/side{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 4 + }, +/area/mine/production) +"fi" = ( +/obj/machinery/conveyor{ + dir = 2; + id = "mining_internal" + }, +/turf/open/floor/plating/warnplate{ + tag = "icon-warnplate (WEST)"; + dir = 8; + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"fj" = ( +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"fk" = ( +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 4 + }, +/area/mine/living_quarters) +"fl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1; + tag = "icon-brown (NORTH)" + }, +/area/mine/living_quarters) +"fm" = ( +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1 + }, +/area/mine/living_quarters) +"fn" = ( +/obj/machinery/airalarm{ + frequency = 1439; + pixel_y = 23 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"fo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1; + tag = "icon-brown (NORTH)" + }, +/area/mine/living_quarters) +"fp" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Mining Station Port Wing APC"; + pixel_x = 1; + pixel_y = 25 + }, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"fq" = ( +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"fr" = ( +/obj/machinery/door/airlock/glass_mining{ + name = "Processing Area"; + req_access_txt = "48" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"fs" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/brown{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 4 + }, +/area/mine/production) +"ft" = ( +/obj/machinery/mineral/processing_unit_console, +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/production) +"fu" = ( +/obj/machinery/mineral/processing_unit{ + dir = 1; + output_dir = 2 + }, +/turf/open/floor/plating/warnplate{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 9 + }, +/area/mine/production) +"fv" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"fw" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"fx" = ( +/obj/structure/fluff/drake_statue/falling, +/turf/open/indestructible/necropolis, +/area/lavaland/surface/outdoors) +"fy" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/turf/closed/mineral/random/volcanic, +/area/lavaland/surface/outdoors) +"fz" = ( +/obj/machinery/camera{ + c_tag = "Crew Area Hallway West"; + network = list("MINE") + }, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/living_quarters) +"fA" = ( +/obj/machinery/camera{ + c_tag = "Dormatories"; + dir = 4; + network = list("MINE") + }, +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 1 + }, +/area/mine/living_quarters) +"fB" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 4 + }, +/area/mine/living_quarters) +"fC" = ( +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/turf/open/floor/bluegrid{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/maintenance) +"fD" = ( +/turf/open/floor/plasteel/white{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"fE" = ( +/obj/machinery/light/small, +/turf/open/floor/plasteel/loadingarea{ + tag = "icon-loadingarea (EAST)"; + dir = 4; + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"fF" = ( +/turf/open/floor/plasteel/delivery{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"fG" = ( +/obj/machinery/mineral/processing_unit{ + dir = 1; + output_dir = 2 + }, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"fH" = ( +/turf/open/floor/plasteel/loadingarea{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 8 + }, +/area/mine/laborcamp) +"fI" = ( +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/lavaland/surface/outdoors) +"fJ" = ( +/turf/closed/mineral/random/volcanic, +/area/lavaland/surface/outdoors/explored) +"fK" = ( +/turf/closed/mineral/random/labormineral/volcanic, +/area/lavaland/surface/outdoors) +"fL" = ( +/obj/structure/ore_box, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/explored) +"fM" = ( +/obj/structure/gulag_beacon, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"fN" = ( +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp/security) +"fO" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp/security) +"fP" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/turf/closed/indestructible/riveted, +/area/ruin/unpowered{ + name = "Necropolis Bridge" + }) + +(1,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(2,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(3,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ed +ed +ed +ed +ed +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(4,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +al +al +af +af +af +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(5,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +fK +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +al +al +al +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(6,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +af +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ed +ed +ed +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +ab +af +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +af +af +af +af +af +fK +fK +fK +fK +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +af +af +af +af +af +af +af +af +ab +al +dq +ab +af +af +af +af +af +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(7,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +af +ab +ab +af +af +af +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +al +al +al +al +al +al +al +ed +af +af +af +af +af +af +af +af +fK +fK +fK +fK +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +af +af +bA +bA +ab +dq +ab +af +af +af +af +af +af +af +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +af +af +af +af +"} +(8,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +ed +af +ab +ab +ed +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +ed +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +ab +ab +ab +fK +fK +ab +ab +fK +fK +fK +fK +fK +fK +fK +fK +fK +ab +ab +ab +af +af +af +af +af +af +af +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +af +af +af +ab +af +af +af +bA +bA +af +af +af +af +af +af +af +af +af +af +af +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +af +af +af +af +af +af +"} +(9,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +ab +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +af +ab +ab +af +af +af +af +bA +bA +af +af +bA +bA +af +af +bA +af +ab +af +af +af +af +af +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +af +ab +af +af +af +af +af +af +af +af +af +af +af +"} +(10,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +ab +ab +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +af +af +af +bA +bA +bA +bA +bA +bA +bA +bA +bA +bA +bA +bA +bA +af +af +af +af +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +af +af +af +af +af +ab +af +af +af +af +af +af +af +"} +(11,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +ab +ab +fK +fK +fK +fK +fK +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +bA +bA +dq +bA +bA +bA +bA +bA +bA +bA +bA +bA +bA +bA +bA +bA +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +af +ab +af +af +af +af +af +af +af +"} +(12,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +af +af +af +af +af +af +af +af +fK +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +bA +bA +bA +dq +bA +bA +bA +bA +bA +dq +bA +bA +dq +bA +bA +bA +af +bA +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(13,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +ab +ab +af +af +af +af +af +af +ab +fK +fK +af +af +af +af +af +af +af +af +ab +af +af +af +af +af +af +ab +af +bA +bA +bA +dq +dq +dq +dq +dq +dq +dq +dq +dq +bA +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +af +af +af +af +af +af +af +"} +(14,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +ab +ab +fK +fK +fK +fK +fK +fK +fK +fK +af +af +af +af +af +af +af +ab +ab +af +af +af +af +af +af +af +bA +bA +bA +bA +dq +dq +dq +dq +dq +dq +dq +dq +dq +bA +bA +ab +af +af +af +af +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +ab +af +ab +af +af +af +af +af +"} +(15,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +al +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +af +af +af +af +af +af +af +af +af +af +af +ab +af +af +af +af +bA +bA +bA +bA +dq +dq +dq +dq +dq +dq +dq +dq +dq +bA +bA +bA +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +ab +af +af +af +af +af +af +af +"} +(16,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +af +af +af +af +af +ab +af +af +af +af +af +af +ab +ed +ed +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +bA +bA +bA +dq +dq +dq +dq +dq +dq +dq +dq +dq +bA +af +af +af +af +af +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +af +af +af +af +af +af +af +"} +(17,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ed +ed +ab +ab +af +af +af +af +af +ab +af +af +af +af +af +af +ab +af +ed +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +bA +bA +dq +dq +dq +dq +dq +dq +dq +bl +dq +dq +dq +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +af +af +ab +af +af +af +af +"} +(18,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +af +af +af +af +ab +ab +ab +af +af +af +af +af +ab +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +ab +ab +af +af +af +af +af +ab +af +af +af +af +af +af +af +af +af +an +an +an +an +an +aO +an +an +an +bm +an +bA +bA +af +af +af +af +af +al +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(19,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +af +af +af +af +ab +ab +ab +af +af +af +af +af +ab +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +ab +ab +fK +ab +af +af +af +af +af +ab +an +ay +aC +aG +an +aP +an +aZ +an +aF +an +dq +fJ +af +af +dq +af +ab +al +al +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(20,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +af +af +af +af +ab +ab +ab +ab +af +af +af +af +ab +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +ab +af +af +af +ab +ab +an +az +at +au +an +aO +an +fM +an +bm +an +fJ +fJ +fJ +af +af +af +al +al +al +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(21,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +af +af +af +af +ab +ab +ab +ab +af +af +af +af +ab +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +am +am +am +an +an +an +aD +an +an +aQ +an +ba +at +at +an +fN +fN +fN +af +af +af +al +ed +al +al +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(22,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +af +af +af +ab +ab +ab +ab +af +af +af +af +ab +ab +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +am +ao +ao +an +at +at +at +at +at +at +at +at +at +at +an +bB +bK +fO +af +af +af +af +al +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(23,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +ab +ab +ab +ab +af +ab +ab +ab +af +af +af +af +af +af +ab +ab +ab +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +an +ap +fD +aw +at +at +at +at +aK +aR +at +at +at +bc +bu +bC +bL +fO +af +af +af +af +af +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(24,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +ab +ab +ab +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +an +aq +aM +an +aA +at +at +at +at +at +au +fH +at +be +an +bD +bM +fO +af +af +af +af +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(25,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +ab +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +ab +ab +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +an +an +an +an +an +at +at +at +at +dr +an +aS +an +bd +an +an +an +an +af +af +af +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(26,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +ab +ab +af +af +af +af +af +af +af +af +af +af +af +ab +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +ed +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +an +ar +ar +ar +an +at +fE +an +an +aL +an +aS +an +be +an +bE +bN +an +af +af +af +ab +ab +ab +ab +ab +ab +af +af +af +al +al +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(27,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +an +as +at +at +aB +at +fF +aI +aT +fG +aT +aV +an +bf +bw +aW +aX +an +af +af +ab +ed +al +ab +ab +ab +al +ab +ab +ab +ed +al +al +al +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(28,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +al +ab +ab +af +af +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +an +an +av +ax +an +aE +an +an +an +an +an +an +an +an +an +bx +bO +an +af +eh +eh +eh +eh +ei +ei +ei +ee +ei +ei +ei +ee +al +al +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(29,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +ab +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +al +af +af +af +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +an +an +an +an +at +an +fL +aN +aN +dq +dq +dq +dq +an +bF +bG +an +af +eh +dm +dm +eh +fj +fj +fj +ee +cd +cU +bn +ee +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(30,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +ab +ab +af +ab +ab +ab +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +an +aF +an +fL +dq +dq +dq +dq +dq +dq +an +an +an +an +af +eh +ex +eM +eh +fk +fv +fq +ee +fB +fj +da +ei +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(31,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +af +af +af +ab +ab +ab +af +af +af +af +ab +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +al +af +af +af +af +af +fK +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +dq +an +aE +an +fL +dq +dq +dq +dq +dq +af +af +af +af +af +ab +eh +ey +eN +fa +fl +fw +cs +cy +fo +cV +db +ei +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(32,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +af +af +af +ab +ab +ab +af +af +af +af +af +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +af +af +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +dq +dq +aJ +dq +dq +dq +dq +dq +af +af +af +af +af +ab +ed +eh +ez +eO +eh +fm +bg +cu +ee +cJ +fj +bo +ei +ab +al +al +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(33,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +af +af +af +ab +ab +af +af +af +af +af +af +af +ab +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +al +af +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +dq +dq +dq +dq +dq +dq +dq +dq +dq +af +af +af +af +ab +al +eh +fC +eP +eh +fz +bg +cv +ee +fd +ag +bv +ee +al +ed +al +al +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(34,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +ab +ab +ab +ab +af +af +ab +ab +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +af +af +af +af +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +dq +dq +dq +dq +dq +dq +dq +af +af +af +af +ab +ab +eh +eh +eh +eh +fn +bg +fj +ee +ee +ee +ee +ee +ee +ee +ee +ee +ee +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(35,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +ed +ab +ab +ab +af +af +ab +ab +af +af +af +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +dq +dq +dq +dq +dq +dq +dq +af +af +af +af +af +ab +ee +eA +eQ +ee +fj +bg +fj +ee +cK +cW +ee +cK +cW +ee +cK +cW +ee +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(36,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +af +af +ab +ab +af +af +af +af +af +af +af +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +dq +dq +dq +dq +dq +dq +dq +dq +af +af +af +af +ab +ei +eB +eR +fb +fk +bg +fj +ee +cL +cX +ee +cL +dl +ee +cL +dp +ee +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(37,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +af +af +af +ab +ab +ab +af +af +ab +af +ab +ab +ab +ab +ab +ab +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +dq +fP +fL +fK +dq +dq +af +af +af +af +ab +ei +eB +eS +fc +fo +bi +fj +ee +cM +ee +ee +dh +ee +ee +do +ee +ee +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(38,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +af +af +af +ab +ab +ab +ab +af +af +af +af +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +fK +fK +fK +ab +ab +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +dq +dq +dq +af +af +al +ed +ee +eC +eT +fb +fm +bg +fj +cu +cN +fA +cu +cN +fm +cu +cN +fm +ei +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(39,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +af +af +af +ab +ab +ab +ab +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +ab +ab +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +af +af +al +ee +ee +ee +ee +ee +fp +ci +cl +cl +cO +cl +cl +cO +dn +cl +cO +cV +ei +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(40,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +af +af +af +af +ab +ab +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +al +al +al +af +af +af +af +af +af +af +ab +ab +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +dq +af +af +ee +ej +bX +bY +ee +cx +bg +fj +ee +ee +fb +fb +ee +ee +ee +ei +ei +ee +al +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +"} +(41,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +af +af +af +af +af +ab +af +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +ab +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +dq +dq +af +af +ef +ek +eD +bZ +ee +fk +bg +cv +ee +cP +cQ +cQ +aH +ee +ab +ab +ab +al +ed +al +al +ab +ab +ab +ab +af +af +af +af +af +af +af +af +"} +(42,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +ab +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +ab +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +dq +dq +af +af +ee +el +eE +bJ +cc +cf +bk +fq +fb +cQ +cQ +dc +cQ +ee +ab +af +ab +ab +al +al +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +"} +(43,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +af +af +af +ab +ab +af +af +af +af +af +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +af +af +af +af +af +ab +ab +ab +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +dq +dq +af +ab +ee +eD +eF +ca +ee +cg +cj +cs +ct +cR +cY +dd +di +ee +al +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(44,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +af +af +af +ab +ab +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +ab +ab +af +af +af +af +af +af +af +af +af +ab +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +ab +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +dq +dq +af +af +ab +ee +em +eG +eG +ee +fj +bg +cu +fb +cQ +cQ +de +dj +ee +ed +af +af +af +af +af +af +ab +ab +af +af +af +af +af +af +af +af +af +af +"} +(45,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +af +af +af +af +ab +ab +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +af +af +af +af +af +af +af +af +af +af +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +af +af +af +af +af +af +af +af +af +af +af +af +fK +fK +ab +af +af +ab +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +ab +af +af +fK +fK +fK +fK +fK +dq +dq +dq +dq +af +af +af +af +ee +ee +ee +ee +ee +fj +bg +fj +ee +cS +cQ +df +cQ +ee +al +af +af +af +af +af +af +af +ab +af +af +af +af +af +af +af +af +af +af +"} +(46,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +af +af +af +al +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +fK +fK +fK +fK +fK +af +af +af +af +af +af +af +dq +dq +dq +dq +af +af +af +af +af +af +af +af +ab +ab +ei +fj +bg +fj +ee +cT +cZ +dg +dk +ee +al +al +af +af +af +af +af +af +af +af +af +ab +af +af +af +af +af +af +af +"} +(47,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +al +al +al +af +af +al +al +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +af +af +af +af +af +af +ab +ei +fq +bp +cH +ee +ei +ei +ei +ei +ee +al +al +al +af +ab +af +af +ab +ab +af +ab +ab +ab +af +af +af +af +af +af +"} +(48,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +al +al +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +af +ab +af +af +af +af +af +ei +ei +bs +ei +ei +ab +ab +ab +ab +al +al +al +ab +af +af +af +af +ab +ab +ab +al +ed +ed +ab +ab +af +af +af +af +"} +(49,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +ed +ab +ab +ab +al +af +af +af +af +af +af +af +al +al +al +al +al +al +al +af +af +af +af +af +al +al +al +al +al +al +al +ab +ab +al +al +al +al +af +af +af +af +al +al +af +af +af +af +af +af +af +al +al +al +af +af +af +af +af +af +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +ei +bQ +ei +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +ab +ed +ed +ed +ed +ed +al +al +af +af +af +"} +(50,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +ab +af +af +af +af +af +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +ei +bg +ei +ab +af +af +af +af +af +af +af +af +af +ab +af +ab +ab +ed +ed +ed +ed +ed +ed +ed +ed +ab +af +af +"} +(51,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +af +af +af +af +af +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +ei +bg +ei +ab +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +ed +ed +ed +ed +ed +ed +ed +ab +af +af +"} +(52,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +af +af +ab +ab +af +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +ei +bg +ei +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ed +ed +ed +ed +ed +ed +ed +ab +af +af +"} +(53,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +af +ab +ab +af +af +af +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +ab +dx +bV +dx +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +ed +ed +al +ed +ab +ab +af +af +"} +(54,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +ab +ab +ab +ab +ck +ab +ab +ab +ab +af +af +ab +dx +bV +dx +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +ab +ab +ab +af +af +af +af +"} +(55,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ed +ed +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +ab +af +af +af +af +af +ab +ab +by +bH +dx +ab +ab +af +af +af +ab +dx +bV +dx +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +ab +af +af +af +af +af +"} +(56,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +al +al +al +al +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +af +af +af +af +af +af +ab +dx +dI +dx +ab +af +af +af +af +ab +dx +dK +dx +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +af +af +af +af +af +"} +(57,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ed +al +al +al +al +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +af +af +af +af +af +af +dx +dx +bH +dx +dx +ab +af +af +ab +dx +dx +cb +dx +dx +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +af +af +af +af +af +"} +(58,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ed +al +al +al +al +ab +af +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +bh +dx +dH +dR +bP +dx +bh +bh +bh +bh +dx +bU +bW +bP +dx +bh +al +al +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(59,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ed +ed +ed +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +ab +bh +bq +dI +dS +dI +bU +eg +eo +dR +eU +fe +dI +bV +dI +cz +bh +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +af +af +af +af +af +"} +(60,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +af +ab +af +af +ab +ab +af +ab +af +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +ab +dx +dB +dJ +dT +bR +bR +bR +ep +bR +bR +bR +bR +ce +cw +cA +bh +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(61,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +ab +ab +af +af +af +af +af +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +ab +ab +dx +dC +dK +bI +bS +dZ +bT +bI +dI +dI +dI +dI +ch +dI +cC +dx +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(62,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +ab +ab +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +al +ab +ds +ds +ds +bb +bz +bb +ds +ea +bh +eq +eH +eV +dC +bS +cm +bI +cD +dx +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(63,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +af +af +af +af +af +ab +ab +ab +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ds +du +dy +br +dL +dU +ds +eb +bh +bh +eI +bh +ff +fr +cn +ff +bh +bh +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(64,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +af +af +af +af +af +ab +ab +ab +ab +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +dt +dv +dz +dz +dM +dV +ds +ec +bh +er +eJ +eW +bU +dR +co +bP +dI +dx +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(65,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +af +ab +ab +af +ab +ab +ab +ab +ab +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +ab +dt +dv +dz +dD +dN +bj +ds +bh +bh +es +dI +dI +dI +dI +cp +bS +cE +bh +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(66,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +af +af +af +af +af +af +ab +ab +ab +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +ab +ds +dw +dA +dE +dO +dW +ds +ed +bh +et +dI +eX +fg +fg +cq +bh +cF +bh +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +af +af +af +af +af +"} +(67,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +ab +ab +ab +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +ab +ds +ds +ds +dt +dP +dt +ds +al +bh +eu +dI +eY +fh +fs +cr +ff +cG +bh +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +af +af +af +af +af +"} +(68,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +ab +ab +ab +ab +ab +af +af +af +af +af +ab +ab +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +ab +ab +ab +ds +dF +dQ +dX +ds +al +bh +ev +eK +bh +ff +ft +ff +ff +cG +bh +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ab +af +af +af +af +af +"} +(69,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +af +af +af +af +af +ab +ab +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +ab +ab +ds +dG +dO +dY +ds +al +bh +ew +eL +eZ +fi +fu +fi +fi +cI +bh +ab +ab +ab +af +af +af +af +af +af +af +af +ab +af +af +af +af +af +af +af +af +af +af +af +"} +(70,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +af +af +af +af +af +ab +ab +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +al +al +af +af +ab +ds +dt +dP +dt +ds +al +bh +bh +bh +bh +bh +bh +bh +bh +bh +bh +ab +ab +ab +af +af +af +af +ab +af +af +af +ab +af +af +af +af +af +ab +af +af +af +af +af +"} +(71,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +af +af +af +af +ab +ab +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +fy +ab +ab +ab +ab +ab +ab +ab +bt +ab +ab +ab +bt +al +al +ab +ab +af +af +af +af +ab +ab +ab +ab +ab +ab +af +af +ab +af +af +af +af +ab +ab +af +af +af +af +af +af +af +af +af +af +af +"} +(72,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +af +af +af +af +ab +ab +ab +af +af +af +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +ab +ab +af +af +af +af +af +ab +af +af +af +af +af +"} +(73,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ed +ed +ab +ab +ab +ab +ab +af +af +af +af +ab +ab +ab +af +ab +af +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +fy +ab +ab +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +ab +ab +af +af +ab +af +af +af +af +ab +ab +af +af +af +af +ab +ab +ab +af +af +af +af +"} +(74,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +ab +ab +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +al +ab +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +ab +ab +ab +af +af +ab +af +af +af +af +ab +ab +af +af +af +af +ab +ab +ab +af +af +af +af +"} +(75,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +ab +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +al +al +ab +ab +ab +af +ab +ab +ab +af +af +af +ab +ab +ab +af +af +af +ab +ab +ab +af +af +af +af +"} +(76,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +al +ab +ab +ab +ab +ab +ab +fy +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +al +al +al +al +al +ab +ab +af +ab +ab +ab +af +af +af +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +"} +(77,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +ab +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +al +ab +ab +ab +ab +al +al +ab +ab +ab +ab +al +al +al +ab +ab +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +ab +af +ab +ab +ab +ab +ab +af +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +"} +(78,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +al +al +ab +ab +ab +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +al +al +al +al +af +af +af +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +"} +(79,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ed +ed +ed +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +ab +ab +ab +ab +ab +ab +ab +af +ab +af +af +af +af +"} +(80,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ed +al +al +al +ab +ab +af +af +af +af +af +af +af +af +af +ab +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +"} +(81,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ed +al +al +al +ed +ab +af +af +af +af +af +af +af +af +af +ab +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +al +al +al +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +"} +(82,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +al +al +al +ed +ab +af +af +af +af +af +af +af +af +af +ab +ab +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +"} +(83,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ed +ed +ab +ab +af +af +af +af +af +af +af +ab +af +ab +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +fy +ab +ab +ab +ab +ab +ab +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +al +al +al +al +ab +af +af +af +af +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +"} +(84,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +ab +ab +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +fy +ab +ab +ab +ab +ab +ab +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +al +al +al +al +al +af +af +af +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +"} +(85,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +ab +ab +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +fy +al +al +al +af +af +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +"} +(86,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +ab +ab +af +ab +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +al +fy +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +al +al +al +af +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +"} +(87,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +ab +ab +ab +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +fy +ab +ab +ab +ab +ab +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +al +ab +ab +ab +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +"} +(88,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +ab +ab +af +ab +af +ab +ab +ab +af +ab +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +al +al +al +al +al +al +ab +al +al +al +al +al +al +fy +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +"} +(89,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +af +af +af +af +af +ab +ab +af +ab +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +fy +al +al +al +al +al +al +al +al +al +al +al +al +al +fy +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +"} +(90,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +af +af +af +af +af +ab +ab +ab +ab +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +"} +(91,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +af +af +af +af +af +ab +ab +ab +ab +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +"} +(92,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +ab +ab +ab +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +fy +al +al +al +al +al +al +al +al +al +al +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) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +ab +ab +ab +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +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) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +ab +ab +ab +ab +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +"} +(95,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +ab +ab +ab +ab +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +"} +(96,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +ab +ab +ab +ab +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +ab +ab +"} +(97,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +ab +ab +ab +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +al +al +ab +ab +ab +ab +ab +al +ab +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +"} +(98,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +al +al +ab +ab +ab +ab +ab +ab +af +af +af +af +af +ab +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +al +ab +ab +ab +ab +ab +ab +al +fy +ab +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +"} +(99,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +al +al +ed +ab +ab +ab +ab +af +af +af +af +af +af +ab +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +al +ab +ab +ab +ab +ab +ab +al +al +al +al +al +al +ab +ab +al +al +al +al +al +al +al +ed +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +"} +(100,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ed +al +al +ed +ab +ab +ab +af +af +af +af +af +af +af +ab +ab +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +fy +ab +ab +al +al +al +al +al +al +fy +ab +ab +ab +ab +fy +fy +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +"} +(101,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ed +ed +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +ab +af +ab +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +fy +fy +ab +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +cB +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +"} +(102,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +al +al +al +al +al +al +aU +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +"} +(103,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +al +al +al +al +al +al +aY +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +"} +(104,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +al +al +al +al +al +al +ab +ab +ab +ab +ab +fy +fy +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +"} +(105,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +ed +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +"} +(106,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +ab +ab +fy +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +"} +(107,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +af +af +af +af +af +af +af +af +ab +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +al +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +"} +(108,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +"} +(109,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +"} +(110,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +"} +(111,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +ed +ed +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +"} +(112,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ed +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +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) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +ab +ab +ab +ab +"} +(114,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +ab +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +ab +af +af +"} +(115,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ed +ab +ab +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +"} +(116,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ed +al +al +ab +af +af +af +af +af +af +af +af +af +af +af +ab +ab +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +ab +af +af +"} +(117,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ed +ed +al +al +ed +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +"} +(118,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ed +al +al +ed +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +"} +(119,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ed +al +al +ab +af +af +af +af +af +af +af +af +af +af +ab +ab +ab +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +"} +(120,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +af +af +af +af +ab +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +ab +ab +af +ab +ab +af +af +af +af +"} +(121,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aj +aj +ab +ab +ab +ab +ab +ab +ab +af +af +ab +af +af +af +ab +ab +af +af +af +ab +ab +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +af +af +ab +af +af +af +af +"} +(122,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aj +aj +aj +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +ed +ab +ab +ab +ab +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +af +af +af +af +af +af +af +"} +(123,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aj +en +aj +aj +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +ab +ab +ab +ab +ab +ab +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +af +af +ab +af +af +af +af +"} +(124,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aj +aj +aj +aj +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +ab +ab +ab +ed +al +ed +ab +ab +ab +ab +ab +ab +ab +ab +ab +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +af +af +ab +af +af +ab +ab +af +af +af +"} +(125,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aj +aj +aj +aj +aj +ab +ab +ah +ah +af +af +af +af +af +af +af +af +af +af +af +ah +ah +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +ab +af +af +af +"} +(126,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aj +aj +aj +aj +aj +aj +aj +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ah +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +ab +af +af +af +af +af +af +af +"} +(127,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ae +ak +aj +aj +aj +aj +aj +aj +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(128,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aj +aj +aj +aj +aj +aj +aj +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ai +ah +ab +ab +ab +ab +ab +ab +ab +ab +ab +ed +ab +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(129,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aj +aj +aj +aj +aj +ab +ab +ah +ah +af +af +af +af +af +af +af +af +af +af +af +ah +ah +ab +ab +ab +ab +ab +ab +ab +ab +ab +ed +ed +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +af +af +af +af +af +af +af +af +af +af +af +"} +(130,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aj +aj +aj +aj +ab +ab +ab +ab +ab +af +af +af +ab +af +af +af +af +af +af +af +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +al +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +af +af +af +af +af +ab +af +af +af +af +af +"} +(131,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aj +fx +aj +aj +ab +ab +ab +ab +ab +af +af +af +ab +ab +af +ab +ab +af +af +af +ab +ab +al +ed +ab +ab +ab +ab +ab +ab +ed +al +al +ed +ab +ab +ab +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +af +af +af +af +af +af +af +af +af +af +af +"} +(132,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aj +aj +aj +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +ab +ab +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +af +af +af +af +af +af +af +af +af +af +"} +(133,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aj +aj +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +ab +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +af +af +af +af +af +ab +af +af +af +af +"} +(134,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +af +ab +af +ab +af +af +af +af +af +af +"} +(135,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +af +af +af +af +af +af +af +af +af +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +af +af +af +af +af +af +af +af +af +af +af +"} +(136,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ed +ed +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +af +af +af +af +af +af +af +af +af +af +af +"} +(137,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +af +af +af +af +af +af +af +af +af +af +af +"} +(138,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(139,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(140,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(141,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +ab +af +af +af +ab +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(142,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(143,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +ab +af +af +af +ab +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(144,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +ab +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(145,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +ab +ab +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(146,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +ab +ab +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(147,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +ab +ab +af +af +af +af +af +ab +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(148,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +ab +ed +ab +ab +ab +ab +ab +af +af +af +ab +ab +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(149,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +af +af +af +ab +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(150,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +af +af +af +ab +af +af +af +af +af +af +ab +ab +ab +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(151,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ed +ed +ed +ab +ab +ab +af +af +af +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(152,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ed +ed +ed +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(153,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(154,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(155,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +ed +ed +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(156,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(157,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(158,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(159,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(160,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(161,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(162,1,1) = {" +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 +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(163,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(164,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +ab +af +af +af +af +ab +ab +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(165,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +ab +ab +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(166,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ed +ed +ab +ab +af +af +af +af +ab +ab +ab +af +ab +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(167,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +al +al +al +al +ab +af +af +af +ab +ab +ab +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +ab +af +ab +af +af +af +af +af +af +"} +(168,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +al +al +al +al +ab +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +"} +(169,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ed +al +al +al +al +ab +ab +ab +ab +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +af +af +af +af +af +ab +af +af +af +af +af +"} +(170,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ed +ed +al +al +al +al +ed +ab +ab +ab +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +af +af +af +af +af +af +af +af +af +af +af +"} +(171,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ed +al +al +al +al +ed +ed +ab +ab +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +ab +af +af +af +af +af +"} +(172,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ed +al +al +al +al +ed +ed +ab +ab +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +ab +af +af +af +af +af +"} +(173,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ed +al +al +al +al +ed +ab +ab +ab +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(174,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ed +al +al +al +al +ed +ab +ab +ab +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(175,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +ab +ab +ab +al +al +al +al +ab +ab +ab +ab +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(176,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +al +al +al +al +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(177,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ed +ed +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(178,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(179,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +ab +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(180,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ed +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(181,1,1) = {" +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 +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(182,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(183,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(184,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ed +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(185,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +al +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(186,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +al +ed +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +af +af +af +af +af +af +af +af +af +af +"} +(187,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +al +ed +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +al +af +af +af +af +af +af +af +af +af +"} +(188,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +al +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +"} +(189,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +"} +(190,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +ab +af +af +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +"} +(191,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +af +af +af +af +af +af +af +af +af +"} +(192,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +"} +(193,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +"} +(194,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +"} +(195,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +"} +(196,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +"} +(197,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +"} +(198,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +ab +ab +ed +ed +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +"} +(199,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +"} +(200,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +"} +(201,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +"} +(202,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +"} +(203,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +ed +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +"} +(204,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +"} +(205,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +"} +(206,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +al +al +ab +ab +ab +af +af +af +af +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +af +af +af +af +af +af +af +af +af +"} +(207,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ed +al +al +ab +ab +ab +af +ab +af +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(208,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +al +al +ed +ab +af +af +af +af +af +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(209,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ed +ab +ab +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(210,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(211,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(212,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(213,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +"} +(214,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +ab +af +af +af +af +af +af +af +af +af +"} +(215,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +"} +(216,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +"} +(217,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +"} +(218,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +"} +(219,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +ed +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +"} +(220,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +al +al +al +al +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +af +af +af +af +af +af +af +af +"} +(221,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +al +al +al +al +ed +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +af +af +af +af +af +af +af +af +"} +(222,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +al +al +al +al +ed +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +af +af +af +af +af +af +af +af +"} +(223,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +al +al +al +al +ed +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +"} +(224,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +al +al +al +al +ed +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +af +af +af +af +af +af +af +af +af +"} +(225,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +al +al +al +al +ed +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +af +af +af +af +af +af +af +af +af +"} +(226,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +ab +ab +ed +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +"} +(227,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +al +al +al +al +ab +ab +ab +ab +ab +ab +ab +ab +af +af +ab +ab +ab +ed +ed +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +"} +(228,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +ab +ed +ed +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +af +af +af +af +af +af +af +af +af +af +"} +(229,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +af +af +af +af +af +af +af +af +af +af +"} +(230,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +"} +(231,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ab +ab +af +af +af +af +af +af +af +af +af +af +"} +(232,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +"} +(233,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +"} +(234,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +"} +(235,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +ed +ed +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +"} +(236,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +ed +ed +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +ab +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +"} +(237,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ed +ed +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +af +af +af +af +af +af +af +af +af +"} +(238,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +af +af +af +af +af +ab +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +"} +(239,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +af +af +af +af +ab +ab +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +"} +(240,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +af +ab +af +ab +ab +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +"} +(241,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +af +af +af +af +af +ab +ab +ab +ab +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +"} +(242,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +"} +(243,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +"} +(244,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +"} +(245,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +"} +(246,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +"} +(247,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +"} +(248,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +"} +(249,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +ed +ed +ed +ed +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +"} +(250,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +ab +ab +ed +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +al +al +al +al +al +af +af +af +af +af +af +af +af +af +"} +(251,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +ed +af +af +af +af +af +af +af +af +af +af +af +"} +(252,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +af +"} +(253,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ed +ed +ed +ab +ab +ab +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +af +"} +(254,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +af +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +af +af +"} +(255,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ed +ab +ab +ab +af +af +af +af +af +af +af +af +af +ab +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +al +af +af +af +af +af +af +af +af +af +af +af +af +af +af +"} diff --git a/_maps/map_files/generic/z10.dmm b/_maps/map_files/generic/z10.dmm new file mode 100644 index 0000000..c71d2e7 --- /dev/null +++ b/_maps/map_files/generic/z10.dmm @@ -0,0 +1,259 @@ +"a" = (/turf/open/space,/area/space) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +"} diff --git a/_maps/map_files/generic/z11.dmm b/_maps/map_files/generic/z11.dmm new file mode 100644 index 0000000..c71d2e7 --- /dev/null +++ b/_maps/map_files/generic/z11.dmm @@ -0,0 +1,259 @@ +"a" = (/turf/open/space,/area/space) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +"} diff --git a/_maps/map_files/generic/z2.dmm b/_maps/map_files/generic/z2.dmm new file mode 100644 index 0000000..7859174 --- /dev/null +++ b/_maps/map_files/generic/z2.dmm @@ -0,0 +1,1298 @@ +"aa" = (/turf/open/space,/area/space) +"ab" = (/turf/closed/indestructible/riveted,/area/space) +"ac" = (/obj/structure/window/reinforced,/turf/closed/indestructible/riveted,/area/space) +"ad" = (/obj/effect/landmark/transit,/turf/open/space,/area/space) +"ae" = (/obj/structure/window/reinforced{dir = 4},/turf/closed/indestructible/riveted,/area/space) +"af" = (/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) +"ag" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/closed/indestructible/riveted,/area/space) +"ah" = (/obj/structure/foamedmetal,/obj/structure/window{icon_state = "rwindow"; dir = 8},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/bunker) +"ai" = (/obj/structure/foamedmetal,/obj/structure/window{icon_state = "rwindow"; dir = 4},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/bunker) +"aj" = (/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/bunker) +"ak" = (/turf/open/floor/holofloor{tag = "icon-asteroid_warn_side (WEST)"; icon_state = "asteroid_warn_side"; dir = 8},/area/holodeck/rec_center/bunker) +"al" = (/obj/structure/table,/obj/item/stack/medical/ointment{heal_burn = 10},/turf/open/floor/holofloor{tag = "icon-asteroid_warn_side (WEST)"; icon_state = "asteroid_warn_side"; dir = 8},/area/holodeck/rec_center/bunker) +"am" = (/obj/structure/table/wood{layer = 3.3},/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-05"; layer = 4.1; pixel_y = 4},/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) +"an" = (/obj/structure/closet/crate/bin,/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) +"ao" = (/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) +"ap" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green{layer = 3.3; pixel_y = 0},/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) +"aq" = (/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/wildlife) +"ar" = (/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/offline) +"as" = (/turf/open/floor/holofloor/plating/burnmix,/area/holodeck/rec_center/burn) +"at" = (/turf/open/floor/holofloor{dir = 9; icon_state = "red"},/area/holodeck/rec_center/court) +"au" = (/turf/open/floor/holofloor{dir = 1; icon_state = "red"},/area/holodeck/rec_center/court) +"av" = (/turf/open/floor/holofloor{dir = 5; icon_state = "red"},/area/holodeck/rec_center/court) +"aw" = (/obj/structure/window/reinforced{dir = 8},/turf/closed/indestructible/riveted,/area/space) +"ax" = (/obj/structure/flora/bush,/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) +"ay" = (/obj/item/toy/snowball{pixel_x = 0; pixel_y = 6},/obj/item/toy/snowball{pixel_x = 5; pixel_y = 0},/obj/item/toy/snowball{pixel_x = -4},/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) +"az" = (/turf/open/floor/holofloor{tag = "icon-asteroid_warn (WEST)"; icon_state = "asteroid_warn"; dir = 8},/area/holodeck/rec_center/bunker) +"aA" = (/obj/structure/table,/obj/machinery/recharger,/turf/open/floor/holofloor{tag = "icon-asteroidfloor (WEST)"; icon_state = "asteroidfloor"; dir = 8},/area/holodeck/rec_center/bunker) +"aB" = (/obj/structure/table/wood,/obj/item/weapon/storage/box/matches{pixel_x = -4; pixel_y = 8},/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) +"aC" = (/obj/structure/chair/wood/normal,/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) +"aD" = (/obj/effect/holodeck_effect/mobspawner,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/wildlife) +"aE" = (/obj/effect/holodeck_effect/sparks,/turf/open/floor/holofloor/plating/burnmix,/area/holodeck/rec_center/burn) +"aF" = (/turf/open/floor/holofloor{dir = 8; icon_state = "red"},/area/holodeck/rec_center/court) +"aG" = (/turf/open/floor/holofloor,/area/holodeck/rec_center/court) +"aH" = (/turf/open/floor/holofloor{dir = 4; icon_state = "red"},/area/holodeck/rec_center/court) +"aI" = (/obj/structure/flora/grass/brown,/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) +"aJ" = (/obj/structure/table,/obj/item/weapon/gun/energy/laser,/turf/open/floor/holofloor{tag = "icon-asteroidfloor (WEST)"; icon_state = "asteroidfloor"; dir = 8},/area/holodeck/rec_center/bunker) +"aK" = (/obj/structure/chair/wood/normal{icon_state = "wooden_chair"; dir = 4},/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) +"aL" = (/obj/structure/table/wood/poker,/obj/item/clothing/mask/cigarette/pipe,/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) +"aM" = (/obj/structure/table/wood/poker,/obj/structure/table/wood/poker,/obj/effect/holodeck_effect/cards,/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) +"aN" = (/obj/structure/chair/wood/normal{icon_state = "wooden_chair"; dir = 8},/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) +"aO" = (/obj/structure/statue/snow/snowman{anchored = 1},/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) +"aP" = (/obj/structure/chair/wood/normal{icon_state = "wooden_chair"; dir = 1},/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) +"aQ" = (/obj/structure/chair/wood/wings,/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) +"aR" = (/obj/structure/window/reinforced/tinted{icon_state = "rwindow"; dir = 4},/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) +"aS" = (/obj/structure/window/reinforced,/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) +"aT" = (/obj/structure/flora/tree/pine,/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) +"aU" = (/obj/structure/chair/wood,/turf/open/floor/holofloor/snow/cold,/area/holodeck/rec_center/winterwonderland) +"aV" = (/obj/structure/table/wood,/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-05"; layer = 4.1; pixel_y = 10},/turf/open/floor/holofloor{icon_state = "wood"; dir = 9},/area/holodeck/rec_center/lounge) +"aW" = (/turf/open/floor/holofloor{dir = 9; icon_state = "stairs-l"},/area/holodeck/rec_center/lounge) +"aX" = (/turf/open/floor/holofloor{dir = 9; icon_state = "stairs-r"},/area/holodeck/rec_center/lounge) +"aY" = (/turf/open/floor/holofloor{dir = 8; icon_state = "green"},/area/holodeck/rec_center/court) +"aZ" = (/turf/open/floor/holofloor{dir = 4; icon_state = "green"},/area/holodeck/rec_center/court) +"ba" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green{pixel_y = 4},/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) +"bb" = (/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) +"bc" = (/obj/structure/chair/comfy/brown{dir = 4},/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) +"bd" = (/obj/structure/chair/comfy/brown{dir = 8},/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) +"be" = (/obj/structure/table,/obj/item/stack/medical/bruise_pack{heal_brute = 10},/turf/open/floor/holofloor{tag = "icon-asteroid_warn_side (WEST)"; icon_state = "asteroid_warn_side"; dir = 8},/area/holodeck/rec_center/bunker) +"bf" = (/obj/structure/table/wood,/obj/item/device/instrument/violin,/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) +"bg" = (/obj/structure/chair/comfy/brown{buildstackamount = 0; dir = 1},/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) +"bh" = (/obj/structure/table/wood,/obj/item/weapon/book/manual/barman_recipes,/obj/item/clothing/mask/cigarette/pipe,/turf/open/floor/holofloor/carpet,/area/holodeck/rec_center/lounge) +"bi" = (/turf/open/floor/holofloor{dir = 10; icon_state = "green"},/area/holodeck/rec_center/court) +"bj" = (/turf/open/floor/holofloor{dir = 2; icon_state = "green"},/area/holodeck/rec_center/court) +"bk" = (/turf/open/floor/holofloor{dir = 6; icon_state = "green"},/area/holodeck/rec_center/court) +"bl" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/closed/indestructible/riveted,/area/space) +"bm" = (/obj/effect/holodeck_effect/mobspawner/bee,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/anthophila) +"bn" = (/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"bo" = (/obj/structure/flora/ausbushes/sunnybush,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"bp" = (/obj/structure/flora/ausbushes/genericbush,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"bq" = (/obj/structure/table/glass,/obj/item/weapon/surgicaldrill,/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHWEST)"; icon_state = "white_warn"; dir = 9},/area/holodeck/rec_center/medical) +"br" = (/obj/structure/table/glass,/obj/item/weapon/hemostat,/turf/open/floor/holofloor{tag = "icon-white_warn (NORTH)"; icon_state = "white_warn"; dir = 1},/area/holodeck/rec_center/medical) +"bs" = (/obj/structure/table/glass,/obj/item/weapon/scalpel{pixel_y = 10},/obj/item/weapon/circular_saw,/turf/open/floor/holofloor{tag = "icon-white_warn (NORTH)"; icon_state = "white_warn"; dir = 1},/area/holodeck/rec_center/medical) +"bt" = (/obj/structure/table/glass,/obj/item/weapon/retractor,/turf/open/floor/holofloor{tag = "icon-white_warn (NORTH)"; icon_state = "white_warn"; dir = 1},/area/holodeck/rec_center/medical) +"bu" = (/obj/structure/table/glass,/obj/item/stack/medical/gauze,/obj/item/weapon/cautery,/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHEAST)"; icon_state = "white_warn"; dir = 5},/area/holodeck/rec_center/medical) +"bv" = (/turf/open/floor/holofloor{dir = 9; icon_state = "red"},/area/holodeck/rec_center/basketball) +"bw" = (/obj/structure/holohoop{layer = 3.9},/turf/open/floor/holofloor{dir = 1; icon_state = "red"},/area/holodeck/rec_center/basketball) +"bx" = (/turf/open/floor/holofloor{dir = 5; icon_state = "red"},/area/holodeck/rec_center/basketball) +"by" = (/turf/open/floor/holofloor/beach,/area/holodeck/rec_center/beach) +"bz" = (/turf/open/floor/holofloor/basalt,/obj/structure/table,/obj/machinery/readybutton,/turf/open/floor/holofloor{tag = "icon-warningline"; icon_state = "warningline"; dir = 2},/area/holodeck/rec_center/thunderdome) +"bA" = (/turf/open/floor/holofloor/basalt,/obj/structure/table,/obj/item/clothing/head/helmet/thunderdome,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/under/color/red,/obj/item/weapon/holo/esword/red,/turf/open/floor/holofloor{tag = "icon-warningline"; icon_state = "warningline"; dir = 2},/area/holodeck/rec_center/thunderdome) +"bB" = (/turf/open/floor/holofloor/basalt,/obj/structure/table,/turf/open/floor/holofloor{tag = "icon-warningline"; icon_state = "warningline"; dir = 2},/area/holodeck/rec_center/thunderdome) +"bC" = (/obj/machinery/readybutton,/turf/open/floor/holofloor{dir = 9; icon_state = "red"},/area/holodeck/rec_center/dodgeball) +"bD" = (/turf/open/floor/holofloor{dir = 1; icon_state = "red"},/area/holodeck/rec_center/dodgeball) +"bE" = (/turf/open/floor/holofloor{dir = 5; icon_state = "red"},/area/holodeck/rec_center/dodgeball) +"bF" = (/obj/effect/holodeck_effect/mobspawner/pet,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"bG" = (/obj/structure/flora/ausbushes/ppflowers,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"bH" = (/obj/effect/holodeck_effect/mobspawner/pet,/obj/structure/flora/ausbushes/brflowers,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"bI" = (/obj/structure/table/glass,/obj/item/weapon/surgical_drapes,/obj/item/weapon/razor,/turf/open/floor/holofloor{tag = "icon-white_warn (WEST)"; icon_state = "white_warn"; dir = 8},/area/holodeck/rec_center/medical) +"bJ" = (/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/medical) +"bK" = (/turf/open/floor/holofloor{tag = "icon-white_warn (EAST)"; icon_state = "white_warn"; dir = 4},/area/holodeck/rec_center/medical) +"bL" = (/turf/open/floor/holofloor{dir = 8; icon_state = "red"},/area/holodeck/rec_center/basketball) +"bM" = (/turf/open/floor/holofloor,/area/holodeck/rec_center/basketball) +"bN" = (/turf/open/floor/holofloor{dir = 4; icon_state = "red"},/area/holodeck/rec_center/basketball) +"bO" = (/obj/effect/overlay/palmtree_r,/turf/open/floor/holofloor/beach,/area/holodeck/rec_center/beach) +"bP" = (/obj/effect/overlay/palmtree_l,/obj/effect/overlay/coconut,/turf/open/floor/holofloor/beach,/area/holodeck/rec_center/beach) +"bQ" = (/turf/open/floor/holofloor/basalt,/area/holodeck/rec_center/thunderdome) +"bR" = (/turf/open/floor/holofloor{dir = 8; icon_state = "red"},/area/holodeck/rec_center/dodgeball) +"bS" = (/turf/open/floor/holofloor,/area/holodeck/rec_center/dodgeball) +"bT" = (/turf/open/floor/holofloor{dir = 4; icon_state = "red"},/area/holodeck/rec_center/dodgeball) +"bU" = (/obj/structure/flora/ausbushes/brflowers,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"bV" = (/obj/item/weapon/storage/bag/easterbasket{name = "picnic basket"; pixel_y = 6},/turf/open/floor/holofloor{icon_state = "redbluefull"},/area/holodeck/rec_center/pet_lounge) +"bW" = (/obj/item/trash/plate,/turf/open/floor/holofloor{icon_state = "redbluefull"},/area/holodeck/rec_center/pet_lounge) +"bX" = (/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHWEST)"; icon_state = "white_warn"; dir = 10},/area/holodeck/rec_center/medical) +"bY" = (/turf/open/floor/holofloor{icon_state = "white_warn"},/area/holodeck/rec_center/medical) +"bZ" = (/obj/structure/table/optable,/turf/open/floor/holofloor{icon_state = "white_warn"},/area/holodeck/rec_center/medical) +"ca" = (/obj/machinery/computer/operating,/turf/open/floor/holofloor{icon_state = "white_warn"},/area/holodeck/rec_center/medical) +"cb" = (/obj/structure/table/glass,/obj/item/clothing/gloves/color/latex/nitrile,/obj/item/clothing/suit/apron/surgical,/obj/item/clothing/mask/surgical,/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHEAST)"; icon_state = "white_warn"; dir = 6},/area/holodeck/rec_center/medical) +"cc" = (/turf/open/floor/holofloor{dir = 1; icon_state = "red"},/area/holodeck/rec_center/basketball) +"cd" = (/obj/effect/holodeck_effect/mobspawner/monkey,/turf/open/floor/holofloor/beach,/area/holodeck/rec_center/beach) +"ce" = (/turf/open/floor/holofloor{dir = 2; icon_state = "red"},/area/holodeck/rec_center/dodgeball) +"cf" = (/obj/structure/flora/ausbushes/palebush,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"cg" = (/obj/effect/holodeck_effect/mobspawner/pet,/turf/open/floor/holofloor{icon_state = "redbluefull"},/area/holodeck/rec_center/pet_lounge) +"ch" = (/obj/item/weapon/shovel/spade{pixel_x = 2; pixel_y = -2},/turf/open/floor/holofloor{icon_state = "redbluefull"},/area/holodeck/rec_center/pet_lounge) +"ci" = (/obj/structure/window{dir = 1},/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/medical) +"cj" = (/obj/effect/holodeck_effect/mobspawner/bee,/obj/item/clothing/head/beekeeper_head,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/anthophila) +"ck" = (/obj/structure/table/glass,/obj/machinery/reagentgrinder,/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHWEST)"; icon_state = "white_warn"; dir = 9},/area/holodeck/rec_center/medical) +"cl" = (/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHEAST)"; icon_state = "white_warn"; dir = 5},/area/holodeck/rec_center/medical) +"cm" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/syringes{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/box/beakers,/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/medical) +"cn" = (/obj/machinery/washing_machine,/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/medical) +"co" = (/turf/open/floor/holofloor{dir = 10; icon_state = "red"},/area/holodeck/rec_center/basketball) +"cp" = (/turf/open/floor/holofloor{dir = 2; icon_state = "red"},/area/holodeck/rec_center/basketball) +"cq" = (/turf/open/floor/holofloor{dir = 6; icon_state = "red"},/area/holodeck/rec_center/basketball) +"cr" = (/obj/item/clothing/under/color/rainbow,/obj/item/clothing/glasses/sunglasses,/turf/open/floor/holofloor/beach,/area/holodeck/rec_center/beach) +"cs" = (/obj/structure/window,/turf/open/floor/holofloor/basalt,/area/holodeck/rec_center/thunderdome) +"ct" = (/obj/structure/window{dir = 1},/obj/item/toy/beach_ball/holoball/dodgeball,/turf/open/floor/holofloor{dir = 10; icon_state = "red"},/area/holodeck/rec_center/dodgeball) +"cu" = (/obj/structure/window{dir = 1},/obj/item/toy/beach_ball/holoball/dodgeball,/turf/open/floor/holofloor{dir = 2; icon_state = "red"},/area/holodeck/rec_center/dodgeball) +"cv" = (/obj/structure/window{dir = 1},/obj/item/toy/beach_ball/holoball/dodgeball,/turf/open/floor/holofloor{dir = 6; icon_state = "red"},/area/holodeck/rec_center/dodgeball) +"cw" = (/obj/effect/holodeck_effect/mobspawner/bee,/obj/effect/decal/remains/human,/obj/item/clothing/suit/beekeeper_suit,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/anthophila) +"cx" = (/obj/effect/holodeck_effect/mobspawner/bee,/obj/item/weapon/melee/flyswatter,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/anthophila) +"cy" = (/obj/machinery/chem_master,/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHWEST)"; icon_state = "white_warn"; dir = 10},/area/holodeck/rec_center/medical) +"cz" = (/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHEAST)"; icon_state = "white_warn"; dir = 6},/area/holodeck/rec_center/medical) +"cA" = (/obj/structure/table/glass,/obj/item/device/healthanalyzer,/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/medical) +"cB" = (/obj/structure/closet/wardrobe/white,/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/medical) +"cC" = (/turf/open/floor/holofloor{dir = 9; icon_state = "green"},/area/holodeck/rec_center/basketball) +"cD" = (/turf/open/floor/holofloor{dir = 1; icon_state = "green"},/area/holodeck/rec_center/basketball) +"cE" = (/turf/open/floor/holofloor{dir = 5; icon_state = "green"},/area/holodeck/rec_center/basketball) +"cF" = (/obj/item/toy/beach_ball,/turf/open/floor/holofloor/beach,/area/holodeck/rec_center/beach) +"cG" = (/obj/structure/window{dir = 1},/turf/open/floor/holofloor/basalt,/area/holodeck/rec_center/thunderdome) +"cH" = (/obj/structure/window,/obj/item/toy/beach_ball/holoball/dodgeball,/turf/open/floor/holofloor{dir = 9; icon_state = "green"},/area/holodeck/rec_center/dodgeball) +"cI" = (/obj/structure/window,/obj/item/toy/beach_ball/holoball/dodgeball,/turf/open/floor/holofloor{dir = 1; icon_state = "green"},/area/holodeck/rec_center/dodgeball) +"cJ" = (/obj/structure/window,/obj/item/toy/beach_ball/holoball/dodgeball,/turf/open/floor/holofloor{dir = 5; icon_state = "green"},/area/holodeck/rec_center/dodgeball) +"cK" = (/obj/structure/sink/puddle,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"cL" = (/obj/item/weapon/reagent_containers/glass/bucket,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"cM" = (/turf/open/floor/holofloor{dir = 8; icon_state = "green"},/area/holodeck/rec_center/basketball) +"cN" = (/obj/item/toy/beach_ball/holoball,/turf/open/floor/holofloor,/area/holodeck/rec_center/basketball) +"cO" = (/turf/open/floor/holofloor{dir = 4; icon_state = "green"},/area/holodeck/rec_center/basketball) +"cP" = (/turf/open/floor/holofloor{dir = 8; icon_state = "green"},/area/holodeck/rec_center/dodgeball) +"cQ" = (/turf/open/floor/holofloor{dir = 4; icon_state = "green"},/area/holodeck/rec_center/dodgeball) +"cR" = (/obj/machinery/hydroponics/soil,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"cS" = (/obj/machinery/hydroponics/soil,/obj/item/weapon/cultivator,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"cT" = (/obj/machinery/hydroponics/soil,/obj/effect/holodeck_effect/mobspawner/pet,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"cU" = (/obj/structure/flora/ausbushes/grassybush,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"cV" = (/obj/structure/bed,/obj/item/weapon/bedsheet/medical,/obj/structure/window{dir = 1},/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHWEST)"; icon_state = "white_warn"; dir = 9},/area/holodeck/rec_center/medical) +"cW" = (/obj/structure/window{icon_state = "rwindow"; dir = 8},/obj/structure/bed,/obj/item/weapon/bedsheet/medical,/obj/structure/window{dir = 1},/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHEAST)"; icon_state = "white_warn"; dir = 5},/area/holodeck/rec_center/medical) +"cX" = (/obj/structure/window{icon_state = "rwindow"; dir = 8},/obj/machinery/computer/pandemic,/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/medical) +"cY" = (/turf/open/floor/holofloor{dir = 2; icon_state = "green"},/area/holodeck/rec_center/basketball) +"cZ" = (/turf/open/floor/holofloor/beach/coast_t,/area/holodeck/rec_center/beach) +"da" = (/obj/item/weapon/reagent_containers/glass/bucket,/turf/open/floor/holofloor/beach/coast_t,/area/holodeck/rec_center/beach) +"db" = (/obj/item/weapon/shovel/spade,/turf/open/floor/holofloor/beach/coast_t,/area/holodeck/rec_center/beach) +"dc" = (/turf/open/floor/holofloor{dir = 1; icon_state = "green"},/area/holodeck/rec_center/dodgeball) +"dd" = (/obj/structure/flora/ausbushes/pointybush,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/pet_lounge) +"de" = (/turf/open/floor/holofloor{tag = "icon-white_warn (WEST)"; icon_state = "white_warn"; dir = 8},/area/holodeck/rec_center/medical) +"df" = (/turf/open/floor/holofloor{dir = 8; icon_state = "white_warn_corner"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/medical) +"dg" = (/obj/machinery/door/window/westleft,/turf/open/floor/holofloor{tag = "icon-white_warn (NORTH)"; icon_state = "white_warn"; dir = 1},/area/holodeck/rec_center/medical) +"dh" = (/turf/open/floor/holofloor{tag = "icon-white_warn (NORTH)"; icon_state = "white_warn"; dir = 1},/area/holodeck/rec_center/medical) +"di" = (/turf/open/floor/holofloor/beach/coast_b,/area/holodeck/rec_center/beach) +"dj" = (/obj/structure/bed,/obj/item/weapon/bedsheet/medical,/obj/machinery/iv_drip{density = 0},/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHWEST)"; icon_state = "white_warn"; dir = 10},/area/holodeck/rec_center/medical) +"dk" = (/obj/structure/window{icon_state = "rwindow"; dir = 8},/obj/structure/bed,/obj/item/weapon/bedsheet/medical,/obj/machinery/iv_drip{density = 0},/turf/open/floor/holofloor{icon_state = "white_warn"},/area/holodeck/rec_center/medical) +"dl" = (/obj/structure/window{icon_state = "rwindow"; dir = 8},/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 1},/turf/open/floor/holofloor{icon_state = "white_warn"},/area/holodeck/rec_center/medical) +"dm" = (/obj/machinery/iv_drip{density = 0},/turf/open/floor/holofloor{icon_state = "white_warn"},/area/holodeck/rec_center/medical) +"dn" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 1},/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHEAST)"; icon_state = "white_warn"; dir = 6},/area/holodeck/rec_center/medical) +"do" = (/turf/open/floor/holofloor{dir = 10; icon_state = "green"},/area/holodeck/rec_center/basketball) +"dp" = (/obj/structure/holohoop{dir = 1; layer = 4.1},/turf/open/floor/holofloor{dir = 2; icon_state = "green"},/area/holodeck/rec_center/basketball) +"dq" = (/turf/open/floor/holofloor{dir = 6; icon_state = "green"},/area/holodeck/rec_center/basketball) +"dr" = (/turf/open/floor/holofloor/beach/water,/area/holodeck/rec_center/beach) +"ds" = (/turf/open/floor/holofloor/basalt,/obj/structure/table,/turf/open/floor/holofloor{tag = "icon-warningline (NORTH)"; icon_state = "warningline"; dir = 1},/area/holodeck/rec_center/thunderdome) +"dt" = (/turf/open/floor/holofloor/basalt,/obj/structure/table,/obj/item/clothing/head/helmet/thunderdome,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/under/color/green,/obj/item/weapon/holo/esword/green,/turf/open/floor/holofloor{tag = "icon-warningline (NORTH)"; icon_state = "warningline"; dir = 1},/area/holodeck/rec_center/thunderdome) +"du" = (/turf/open/floor/holofloor/basalt,/obj/structure/table,/obj/machinery/readybutton,/turf/open/floor/holofloor{tag = "icon-warningline (NORTH)"; icon_state = "warningline"; dir = 1},/area/holodeck/rec_center/thunderdome) +"dv" = (/turf/open/floor/holofloor{dir = 10; icon_state = "green"},/area/holodeck/rec_center/dodgeball) +"dw" = (/turf/open/floor/holofloor{dir = 2; icon_state = "green"},/area/holodeck/rec_center/dodgeball) +"dx" = (/obj/machinery/readybutton,/turf/open/floor/holofloor{dir = 6; icon_state = "green"},/area/holodeck/rec_center/dodgeball) +"dy" = (/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/refuel) +"dz" = (/turf/open/floor/holofloor/grass,/turf/open/floor/holofloor{tag = "icon-warningline"; icon_state = "warningline"; dir = 2},/area/holodeck/rec_center/spacechess) +"dA" = (/obj/item/weapon/banner/blue,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) +"dB" = (/obj/structure/table/wood/fancy,/obj/item/clothing/suit/armor/riot/knight/blue,/obj/item/clothing/head/helmet/knight/blue,/obj/item/weapon/claymore/weak,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) +"dC" = (/obj/structure/table/wood/fancy,/obj/item/clothing/head/crown/fancy{pixel_y = 6},/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) +"dD" = (/obj/structure/table/wood/fancy,/obj/item/clothing/suit/armor/riot/knight/red,/obj/item/clothing/head/helmet/knight/red,/obj/item/weapon/claymore/weak,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) +"dE" = (/obj/item/weapon/banner/red,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) +"dF" = (/turf/open/floor/holofloor/hyperspace,/area/holodeck/rec_center/kobayashi) +"dG" = (/obj/structure/window/reinforced,/turf/open/floor/holofloor/hyperspace,/area/holodeck/rec_center/kobayashi) +"dH" = (/obj/structure/closet{density = 0; opened = 1},/obj/item/clothing/suit/judgerobe,/obj/item/clothing/head/powdered_wig,/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/chapelcourt) +"dI" = (/obj/structure/table/wood/fancy,/obj/item/clothing/suit/nun,/obj/item/clothing/head/nun_hood,/obj/item/clothing/suit/holidaypriest,/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/chapelcourt) +"dJ" = (/obj/structure/table/wood/fancy,/obj/item/weapon/storage/book/bible,/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/chapelcourt) +"dK" = (/obj/structure/table/wood/fancy,/obj/item/weapon/book/manual/wiki/security_space_law,/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/chapelcourt) +"dL" = (/obj/structure/closet{name = "Evidence Closet"},/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/chapelcourt) +"dM" = (/obj/machinery/conveyor/holodeck{dir = 5; icon_state = "conveyor0"; id = "holocoaster"; movedir = null; verted = -1},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) +"dN" = (/obj/machinery/conveyor/holodeck{dir = 8; id = "holocoaster"},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) +"dO" = (/obj/machinery/conveyor/holodeck{dir = 6; id = "holocoaster"; movedir = null; verted = -1},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) +"dP" = (/turf/open/floor/holofloor{dir = 8; icon_state = "green"},/area/holodeck/rec_center/firingrange) +"dQ" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHWEST)"; icon_state = "white_warn"; dir = 9},/area/holodeck/rec_center/firingrange) +"dR" = (/obj/structure/window/reinforced{dir = 1},/turf/open/floor/holofloor{tag = "icon-white_warn (NORTH)"; icon_state = "white_warn"; dir = 1},/area/holodeck/rec_center/firingrange) +"dS" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/holofloor{tag = "icon-white_warn (NORTHEAST)"; icon_state = "white_warn"; dir = 5},/area/holodeck/rec_center/firingrange) +"dT" = (/turf/open/floor/holofloor{dir = 4; icon_state = "green"},/area/holodeck/rec_center/firingrange) +"dU" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/refuel) +"dV" = (/obj/item/cardboard_cutout/adaptive{color = "#9999BB"; icon_state = "cutout_viva"; name = "Black Rook"; tag = "icon-cutout_viva"},/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/spacechess) +"dW" = (/obj/item/cardboard_cutout/adaptive{color = "#9999BB"; icon_state = "cutout_mime"; name = "Black Queen"; tag = "icon-cutout_mime"},/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/spacechess) +"dX" = (/obj/item/cardboard_cutout/adaptive{color = "#9999BB"; icon_state = "cutout_clown"; name = "Black King"; tag = "icon-cutout_clown"},/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/spacechess) +"dY" = (/obj/item/cardboard_cutout/adaptive{color = "#9999BB"; icon_state = "cutout_ian"; name = "Black Knight"; tag = "icon-cutout_ian"},/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/spacechess) +"dZ" = (/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) +"ea" = (/obj/structure/chair/wood/wings,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) +"eb" = (/obj/structure/window/reinforced,/obj/machinery/mass_driver{dir = 1; icon_state = "mass_driver"; id = "trektorpedo1"; name = "photon torpedo tube"; tag = "icon-mass_driver (NORTH)"},/obj/item/toy/minimeteor{color = ""; icon = 'icons/effects/effects.dmi'; icon_state = "impact_laser"; name = "photon torpedo"},/turf/open/floor/holofloor/hyperspace,/area/holodeck/rec_center/kobayashi) +"ec" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/computer/arcade/orion_trail{desc = "A test for cadets"; events = list("Raiders" = 3, "Interstellar Flux" = 1, "Illness" = 3, "Breakdown" = 2, "Malfunction" = 2, "Collision" = 1, "Spaceport" = 2); icon = 'icons/obj/machines/particle_accelerator.dmi'; icon_state = "control_boxp"; name = "Kobayashi Maru control computer"; prizes = list(/obj/item/weapon/paper/trek_diploma = 1); settlers = list("Kirk","Worf","Gene")},/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"ed" = (/obj/machinery/button/massdriver{id = "trektorpedo1"; layer = 3.9; name = "photon torpedo button"; pixel_x = -16; pixel_y = -5},/obj/machinery/button/massdriver{id = "trektorpedo2"; layer = 3.9; name = "photon torpedo button"; pixel_x = 16; pixel_y = -5},/obj/machinery/computer/arcade/orion_trail{desc = "A test for cadets"; events = list("Raiders" = 3, "Interstellar Flux" = 1, "Illness" = 3, "Breakdown" = 2, "Malfunction" = 2, "Collision" = 1, "Spaceport" = 2); icon = 'icons/obj/machines/particle_accelerator.dmi'; icon_state = "control_boxp"; name = "Kobayashi Maru control computer"; prizes = list(/obj/item/weapon/paper/trek_diploma = 1); settlers = list("Kirk","Worf","Gene")},/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"ee" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/computer/arcade/orion_trail{desc = "A test for cadets"; events = list("Raiders" = 3, "Interstellar Flux" = 1, "Illness" = 3, "Breakdown" = 2, "Malfunction" = 2, "Collision" = 1, "Spaceport" = 2); icon = 'icons/obj/machines/particle_accelerator.dmi'; icon_state = "control_boxp"; name = "Kobayashi Maru control computer"; prizes = list(/obj/item/weapon/paper/trek_diploma = 1); settlers = list("Kirk","Worf","Gene")},/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"ef" = (/obj/structure/window/reinforced,/obj/machinery/mass_driver{dir = 1; icon_state = "mass_driver"; id = "trektorpedo2"; name = "photon torpedo tube"; tag = "icon-mass_driver (NORTH)"},/obj/item/toy/minimeteor{color = ""; icon = 'icons/effects/effects.dmi'; icon_state = "impact_laser"; name = "photon torpedo"},/turf/open/floor/holofloor/hyperspace,/area/holodeck/rec_center/kobayashi) +"eg" = (/obj/structure/chair{dir = 4},/turf/open/floor/holofloor{tag = "icon-chapel (NORTH)"; icon_state = "chapel"; dir = 1},/area/holodeck/rec_center/chapelcourt) +"eh" = (/turf/open/floor/holofloor{tag = "icon-chapel (EAST)"; icon_state = "chapel"; dir = 4},/area/holodeck/rec_center/chapelcourt) +"ei" = (/obj/structure/chair,/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/chapelcourt) +"ej" = (/turf/open/floor/holofloor{tag = "icon-chapel (NORTH)"; icon_state = "chapel"; dir = 1},/area/holodeck/rec_center/chapelcourt) +"ek" = (/obj/structure/chair{dir = 8},/turf/open/floor/holofloor{tag = "icon-chapel (EAST)"; icon_state = "chapel"; dir = 4},/area/holodeck/rec_center/chapelcourt) +"el" = (/obj/machinery/conveyor/holodeck{id = "holocoaster"},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) +"em" = (/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) +"en" = (/obj/machinery/conveyor/holodeck{dir = 1; id = "holocoaster"; layer = 2.5},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) +"eo" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/holofloor{tag = "icon-white_warn (WEST)"; icon_state = "white_warn"; dir = 8},/area/holodeck/rec_center/firingrange) +"ep" = (/obj/structure/target_stake,/obj/machinery/magnetic_module,/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/firingrange) +"eq" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/holofloor{tag = "icon-white_warn (EAST)"; icon_state = "white_warn"; dir = 4},/area/holodeck/rec_center/firingrange) +"er" = (/obj/item/cardboard_cutout/adaptive{color = "#9999BB"; icon_state = "cutout_greytide"; name = "Black Pawn"; tag = "icon-cutout_greytide"},/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/spacechess) +"es" = (/obj/item/cardboard_cutout/adaptive{color = "#9999BB"; icon_state = "cutout_greytide"; name = "Black Pawn"; tag = "icon-cutout_greytide"},/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/spacechess) +"et" = (/obj/machinery/door/window/westleft{dir = 2; icon_state = "right"},/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) +"eu" = (/obj/structure/window/reinforced,/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) +"ev" = (/obj/machinery/door/window/westleft{dir = 2},/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) +"ew" = (/obj/structure/table/glass,/obj/machinery/recharger,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"ex" = (/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"ey" = (/obj/structure/chair/comfy{tag = "icon-comfychair (NORTH)"; icon_state = "comfychair"; dir = 1},/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"ez" = (/obj/structure/table/glass,/obj/item/weapon/gun/energy/gun/mini/practice_phaser,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"eA" = (/obj/structure/chair{dir = 4},/turf/open/floor/holofloor{dir = 8; icon_state = "chapel"; tag = "icon-chapel"},/area/holodeck/rec_center/chapelcourt) +"eB" = (/turf/open/floor/holofloor{tag = "icon-chapel"; icon_state = "chapel"; dir = 2},/area/holodeck/rec_center/chapelcourt) +"eC" = (/obj/item/weapon/gavelblock,/obj/item/weapon/gavelhammer,/obj/structure/table/wood,/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/chapelcourt) +"eD" = (/turf/open/floor/holofloor{dir = 8; icon_state = "chapel"; tag = "icon-chapel"},/area/holodeck/rec_center/chapelcourt) +"eE" = (/obj/structure/chair{dir = 8},/turf/open/floor/holofloor{tag = "icon-chapel"; icon_state = "chapel"; dir = 2},/area/holodeck/rec_center/chapelcourt) +"eF" = (/obj/item/weapon/shovel,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) +"eG" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHWEST)"; icon_state = "white_warn"; dir = 10},/area/holodeck/rec_center/firingrange) +"eH" = (/turf/open/floor/holofloor{icon_state = "white_warn"},/area/holodeck/rec_center/firingrange) +"eI" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/holofloor{tag = "icon-white_warn (SOUTHEAST)"; icon_state = "white_warn"; dir = 6},/area/holodeck/rec_center/firingrange) +"eJ" = (/obj/item/weapon/weldingtool,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/refuel) +"eK" = (/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/spacechess) +"eL" = (/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/spacechess) +"eM" = (/turf/open/floor/holofloor{tag = "icon-stairs-old (WEST)"; icon_state = "stairs-old"; dir = 8},/area/holodeck/rec_center/thunderdome1218) +"eN" = (/obj/structure/table/wood,/obj/item/weapon/melee/chainofcommand{name = "chain whip"},/obj/item/weapon/twohanded/spear,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/thunderdome1218) +"eO" = (/obj/structure/table/wood,/obj/item/weapon/scythe,/obj/item/weapon/twohanded/spear,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/thunderdome1218) +"eP" = (/obj/structure/table/wood,/obj/item/weapon/tailclub,/obj/item/weapon/twohanded/spear,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/thunderdome1218) +"eQ" = (/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/chapelcourt) +"eR" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/holofloor{dir = 8; icon_state = "red"},/area/holodeck/rec_center/firingrange) +"eS" = (/turf/open/floor/holofloor,/area/holodeck/rec_center/firingrange) +"eT" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/holofloor{dir = 4; icon_state = "red"},/area/holodeck/rec_center/firingrange) +"eU" = (/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/thunderdome1218) +"eV" = (/obj/machinery/modular_computer/console/preset/civilian,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"eW" = (/obj/structure/chair/office/dark{dir = 8},/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"eX" = (/obj/structure/chair/office/dark{dir = 4},/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"eY" = (/obj/machinery/computer/station_alert,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"eZ" = (/obj/structure/chair{dir = 1},/turf/open/floor/holofloor{tag = "icon-chapel (NORTH)"; icon_state = "chapel"; dir = 1},/area/holodeck/rec_center/chapelcourt) +"fa" = (/obj/structure/chair{dir = 1},/turf/open/floor/holofloor{tag = "icon-chapel (EAST)"; icon_state = "chapel"; dir = 4},/area/holodeck/rec_center/chapelcourt) +"fb" = (/obj/machinery/modular_computer/console/preset/civilian,/obj/structure/window/reinforced,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"fc" = (/obj/machinery/computer/atmos_alert,/obj/structure/window/reinforced,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"fd" = (/obj/structure/chair{dir = 1},/turf/open/floor/holofloor{dir = 8; icon_state = "chapel"; tag = "icon-chapel"},/area/holodeck/rec_center/chapelcourt) +"fe" = (/obj/structure/chair{dir = 1},/turf/open/floor/holofloor{tag = "icon-chapel"; icon_state = "chapel"; dir = 2},/area/holodeck/rec_center/chapelcourt) +"ff" = (/obj/machinery/conveyor/holodeck{id = "holocoaster"},/obj/structure/chair/office{dir = 1; name = "coaster car"},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) +"fg" = (/obj/machinery/conveyor_switch/oneway{convdir = -1; id = "holocoaster"},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) +"fh" = (/obj/structure/window/reinforced,/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"fi" = (/obj/item/cardboard_cutout/adaptive{icon_state = "cutout_greytide"; name = "White Pawn"; tag = "icon-cutout_greytide"},/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/spacechess) +"fj" = (/obj/item/cardboard_cutout/adaptive{icon_state = "cutout_greytide"; name = "White Pawn"; tag = "icon-cutout_greytide"},/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/spacechess) +"fk" = (/obj/structure/window/reinforced,/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/thunderdome1218) +"fl" = (/obj/machinery/door/window/westleft{dir = 2},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/thunderdome1218) +"fm" = (/obj/machinery/door/window/westleft{dir = 2; icon_state = "right"},/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"fn" = (/obj/structure/table,/obj/item/weapon/folder,/obj/item/weapon/pen/blue,/obj/structure/window/reinforced{dir = 8},/turf/open/floor/holofloor{tag = "icon-neutral (NORTH)"; icon_state = "neutral"; dir = 1},/area/holodeck/rec_center/kobayashi) +"fo" = (/obj/structure/table,/obj/item/weapon/folder,/obj/item/weapon/pen,/turf/open/floor/holofloor{tag = "icon-neutral (NORTH)"; icon_state = "neutral"; dir = 1},/area/holodeck/rec_center/kobayashi) +"fp" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/folder,/obj/item/weapon/pen/red,/turf/open/floor/holofloor{tag = "icon-neutral (NORTH)"; icon_state = "neutral"; dir = 1},/area/holodeck/rec_center/kobayashi) +"fq" = (/obj/machinery/door/window/westleft{dir = 2},/turf/open/floor/holofloor/plating,/area/holodeck/rec_center/kobayashi) +"fr" = (/obj/structure/closet/crate/miningcar{can_buckle = 1; desc = "Great for mining!"; name = "minecart"},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) +"fs" = (/obj/structure/table/reinforced,/obj/machinery/recharger,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/holofloor{dir = 8; icon_state = "red"},/area/holodeck/rec_center/firingrange) +"ft" = (/obj/item/weapon/paper/range,/turf/open/floor/holofloor,/area/holodeck/rec_center/firingrange) +"fu" = (/obj/structure/table/reinforced,/obj/machinery/magnetic_controller{autolink = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/holofloor{dir = 4; icon_state = "red"},/area/holodeck/rec_center/firingrange) +"fv" = (/obj/item/cardboard_cutout/adaptive{icon_state = "cutout_viva"; name = "White Rook"; tag = "icon-cutout_viva"},/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/spacechess) +"fw" = (/obj/item/cardboard_cutout/adaptive{icon_state = "cutout_mime"; name = "White Queen"; tag = "icon-cutout_mime"},/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/spacechess) +"fx" = (/obj/item/cardboard_cutout/adaptive{icon_state = "cutout_clown"; name = "White King"; tag = "icon-cutout_clown"},/turf/open/floor/holofloor{icon_state = "white"},/area/holodeck/rec_center/spacechess) +"fy" = (/obj/item/cardboard_cutout/adaptive{icon_state = "cutout_ian"; name = "White Knight"; tag = "icon-cutout_ian"},/turf/open/floor/holofloor{dir = 8; icon_state = "dark"; tag = "icon-white_warn (WEST)"},/area/holodeck/rec_center/spacechess) +"fz" = (/turf/open/floor/holofloor{tag = "icon-neutral (NORTH)"; icon_state = "neutral"; dir = 1},/area/holodeck/rec_center/kobayashi) +"fA" = (/obj/structure/chair{dir = 1},/turf/open/floor/holofloor,/area/holodeck/rec_center/kobayashi) +"fB" = (/turf/open/floor/holofloor{dir = 1; icon_state = "green"},/area/holodeck/rec_center/firingrange) +"fC" = (/turf/open/floor/holofloor/grass,/turf/open/floor/holofloor{tag = "icon-warningline (NORTH)"; icon_state = "warningline"; dir = 1},/area/holodeck/rec_center/spacechess) +"fD" = (/obj/structure/chair/wood/normal{icon_state = "wooden_chair"; dir = 1},/turf/open/floor/holofloor/grass,/area/holodeck/rec_center/thunderdome1218) +"fE" = (/obj/structure/rack,/obj/item/clothing/under/trek/medsci,/obj/item/clothing/under/trek/medsci,/obj/item/clothing/under/trek/command,/turf/open/floor/holofloor{tag = "icon-neutral (NORTH)"; icon_state = "neutral"; dir = 1},/area/holodeck/rec_center/kobayashi) +"fF" = (/turf/open/floor/holofloor{tag = "icon-neutral"; icon_state = "neutral"; dir = 2},/area/holodeck/rec_center/kobayashi) +"fG" = (/obj/structure/rack,/obj/item/clothing/under/trek/engsec,/obj/item/clothing/under/trek/engsec,/turf/open/floor/holofloor{tag = "icon-neutral (NORTH)"; icon_state = "neutral"; dir = 1},/area/holodeck/rec_center/kobayashi) +"fH" = (/obj/machinery/conveyor/holodeck{dir = 9; icon_state = "conveyor0"; id = "holocoaster"; tag = "icon-conveyor0 (NORTHWEST)"; verted = -1},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) +"fI" = (/obj/machinery/conveyor/holodeck{dir = 4; id = "holocoaster"},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) +"fJ" = (/obj/machinery/conveyor/holodeck{dir = 10; id = "holocoaster"; verted = -1},/turf/open/floor/holofloor/asteroid,/area/holodeck/rec_center/rollercoaster) +"fK" = (/obj/item/target,/obj/item/target/clown,/turf/open/floor/holofloor,/area/holodeck/rec_center/firingrange) +"fL" = (/obj/item/target,/obj/item/target/syndicate,/turf/open/floor/holofloor,/area/holodeck/rec_center/firingrange) +"fM" = (/obj/structure/rack,/obj/item/weapon/gun/energy/laser/practice,/obj/item/clothing/ears/earmuffs,/turf/open/floor/holofloor,/area/holodeck/rec_center/firingrange) +"fN" = (/obj/structure/window/reinforced{dir = 1},/turf/closed/indestructible/riveted,/area/space) +"fO" = (/turf/closed/indestructible/riveted,/area/tdome/arena_source) +"fP" = (/obj/machinery/igniter,/turf/open/floor/plasteel,/area/tdome/arena_source) +"fQ" = (/turf/open/floor/plasteel,/area/tdome/arena_source) +"fR" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/saber/red,/turf/open/floor/plasteel/black,/area/tdome/arena_source) +"fS" = (/obj/machinery/door/poddoor{id = "thunderdomegen"; name = "General Supply"},/turf/open/floor/plasteel/black,/area/tdome/arena_source) +"fT" = (/obj/machinery/door/poddoor{id = "thunderdome"; name = "Thunderdome Blast Door"},/turf/open/floor/plasteel,/area/tdome/arena_source) +"fU" = (/turf/open/floor/plasteel/red/side{dir = 8},/area/tdome/arena_source) +"fV" = (/turf/open/floor/plasteel/green/side{dir = 4},/area/tdome/arena_source) +"fW" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/saber/green,/turf/open/floor/plasteel/black,/area/tdome/arena_source) +"fX" = (/turf/open/floor/bluegrid,/area/tdome/arena_source) +"fY" = (/obj/machinery/flasher{id = "tdomeflash"; name = "Thunderdome Flash"},/turf/open/floor/bluegrid,/area/tdome/arena_source) +"fZ" = (/obj/machinery/door/poddoor{id = "thunderdomehea"; name = "Heavy Supply"},/turf/open/floor/plasteel/black,/area/tdome/arena_source) +"ga" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/turf/open/floor/plasteel/black,/area/tdome/arena_source) +"gb" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/turf/open/floor/plasteel/black,/area/tdome/arena_source) +"gc" = (/turf/closed/indestructible/riveted,/area/start) +"gd" = (/obj/effect/landmark/start,/turf/open/floor/plating,/area/start) +"ge" = (/turf/closed/indestructible/riveted,/area/ctf) +"gf" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (NORTHWEST)"; dir = 9},/area/ctf) +"gg" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (NORTH)"; dir = 1},/area/ctf) +"gh" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (NORTHEAST)"; dir = 5},/area/ctf) +"gi" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (NORTHWEST)"; dir = 9},/area/ctf) +"gj" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (NORTH)"; dir = 1},/area/ctf) +"gk" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (NORTHEAST)"; dir = 5},/area/ctf) +"gl" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (WEST)"; dir = 8},/area/ctf) +"gm" = (/turf/open/floor/plasteel/black,/area/ctf) +"gn" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (EAST)"; dir = 4},/area/ctf) +"go" = (/turf/open/floor/plasteel/blue,/area/ctf) +"gp" = (/turf/open/floor/plasteel/darkblue,/area/ctf) +"gq" = (/obj/structure/barricade/security/ctf,/turf/open/floor/plasteel/circuit,/area/ctf) +"gr" = (/obj/structure/table/reinforced,/turf/open/floor/plasteel/bluespace,/area/ctf) +"gs" = (/obj/structure/barricade/security/ctf,/turf/open/floor/plasteel/bluespace,/area/ctf) +"gt" = (/turf/open/floor/plasteel/bluespace,/area/ctf) +"gu" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (WEST)"; dir = 8},/area/ctf) +"gv" = (/obj/structure/barricade/security/ctf,/turf/open/floor/plasteel/circuit/rcircuit,/area/ctf) +"gw" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (EAST)"; dir = 4},/area/ctf) +"gx" = (/turf/open/floor/plasteel/red,/area/ctf) +"gy" = (/obj/structure/kitchenspike,/turf/open/floor/plasteel/black,/area/ctf) +"gz" = (/turf/closed/indestructible/splashscreen,/area/start) +"gA" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (SOUTHWEST)"; dir = 10},/area/ctf) +"gB" = (/turf/open/floor/plasteel/darkblue/side,/area/ctf) +"gC" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (SOUTHEAST)"; dir = 6},/area/ctf) +"gD" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (SOUTHWEST)"; dir = 10},/area/ctf) +"gE" = (/turf/open/floor/plasteel/darkred/side,/area/ctf) +"gF" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (SOUTHEAST)"; dir = 6},/area/ctf) +"gG" = (/obj/structure/window/reinforced/fulltile{obj_integrity = 5000; max_integrity = 5000; name = "hardened window"},/turf/open/floor/plating,/area/ctf) +"gH" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline,/area/ctf) +"gI" = (/turf/open/floor/plasteel/darkblue/corner,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHWEST)"; dir = 9},/area/ctf) +"gJ" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (WEST)"; dir = 8},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) +"gK" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) +"gL" = (/turf/open/floor/plasteel/darkblue/corner,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) +"gM" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHEAST)"; dir = 5},/area/ctf) +"gN" = (/obj/machinery/power/emitter/energycannon,/turf/open/floor/plating,/area/ctf) +"gO" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (EAST)"; dir = 4},/area/ctf) +"gP" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (EAST)"; dir = 4},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (WEST)"; dir = 8},/area/ctf) +"gQ" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (WEST)"; dir = 8},/area/ctf) +"gR" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (EAST)"; dir = 4},/area/ctf) +"gS" = (/turf/open/floor/plating/warnplate{icon_plating = "warnplate"},/area/ctf) +"gT" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (WEST)"; dir = 8},/area/ctf) +"gU" = (/turf/open/floor/plating/warnplate{dir = 8},/area/ctf) +"gV" = (/turf/open/floor/plating,/area/ctf) +"gW" = (/turf/open/floor/plating/airless/warnplate{dir = 4; luminosity = 2},/area/ctf) +"gX" = (/turf/open/floor/plasteel/darkblue/corner,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (WEST)"; dir = 8},/area/ctf) +"gY" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (NORTH)"; dir = 1},/area/ctf) +"gZ" = (/turf/open/floor/plasteel/darkblue/corner,/area/ctf) +"ha" = (/turf/open/floor/plating/warnplate{dir = 1},/area/ctf) +"hb" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (EAST)"; dir = 4},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHWEST)"; dir = 10},/area/ctf) +"hc" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (NORTH)"; dir = 1},/turf/open/floor/plasteel/warningline,/area/ctf) +"hd" = (/turf/open/floor/plasteel/darkblue/corner{tag = "icon-darkbluecorners (EAST)"; dir = 4},/turf/open/floor/plasteel/warningline,/area/ctf) +"he" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHEAST)"; dir = 6},/area/ctf) +"hf" = (/obj/machinery/power/emitter/energycannon{tag = "icon-emitter (NORTH)"; icon_state = "emitter"; dir = 1},/turf/open/floor/plating,/area/ctf) +"hg" = (/obj/structure/trap/ctf/blue,/turf/open/floor/plasteel/blue,/area/ctf) +"hh" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHWEST)"; dir = 9},/area/ctf) +"hi" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) +"hj" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHEAST)"; dir = 5},/area/ctf) +"hk" = (/turf/open/floor/plasteel/darkred,/area/ctf) +"hl" = (/obj/structure/trap/ctf/red,/turf/open/floor/plasteel/darkred,/area/ctf) +"hm" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (WEST)"; dir = 8},/area/ctf) +"hn" = (/turf/open/floor/plasteel/circuit,/area/ctf) +"ho" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (EAST)"; dir = 4},/area/ctf) +"hp" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHWEST)"; dir = 10},/area/ctf) +"hq" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline,/area/ctf) +"hr" = (/turf/open/floor/plasteel/circuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHEAST)"; dir = 6},/area/ctf) +"hs" = (/obj/structure/barricade/security/ctf,/turf/open/floor/plasteel/circuit/gcircuit/off,/area/ctf) +"ht" = (/obj/structure/trap/ctf/red,/turf/open/floor/plasteel/red,/area/ctf) +"hu" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (NORTHWEST)"; dir = 9},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHWEST)"; dir = 9},/area/ctf) +"hv" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (NORTH)"; dir = 1},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) +"hw" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (NORTHEAST)"; dir = 5},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) +"hx" = (/turf/open/floor/plasteel/circuit/gcircuit/off,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) +"hy" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (NORTHWEST)"; dir = 9},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) +"hz" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (NORTH)"; dir = 1},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) +"hA" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (NORTHEAST)"; dir = 5},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHEAST)"; dir = 5},/area/ctf) +"hB" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (WEST)"; dir = 8},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (WEST)"; dir = 8},/area/ctf) +"hC" = (/turf/open/floor/plasteel/circuit/gcircuit/off,/area/ctf) +"hD" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (EAST)"; dir = 4},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (EAST)"; dir = 4},/area/ctf) +"hE" = (/turf/open/floor/plasteel/circuit/rcircuit,/area/ctf) +"hF" = (/turf/open/floor/plasteel/circuit/gcircuit/animated,/area/ctf) +"hG" = (/obj/machinery/capture_the_flag/blue,/turf/open/floor/plasteel/circuit/gcircuit/animated,/area/ctf) +"hH" = (/obj/item/weapon/twohanded/required/ctf/blue,/turf/open/floor/plasteel/circuit/gcircuit/animated,/area/ctf) +"hI" = (/obj/item/weapon/twohanded/required/ctf/red,/turf/open/floor/plasteel/circuit/gcircuit/animated,/area/ctf) +"hJ" = (/obj/machinery/capture_the_flag/red,/turf/open/floor/plasteel/circuit/gcircuit/animated,/area/ctf) +"hK" = (/obj/effect/landmark/shuttle_import,/turf/open/space,/area/space) +"hL" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (SOUTHWEST)"; dir = 10},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHWEST)"; dir = 10},/area/ctf) +"hM" = (/turf/open/floor/plasteel/darkblue/side,/turf/open/floor/plasteel/warningline,/area/ctf) +"hN" = (/turf/open/floor/plasteel/darkblue/side{tag = "icon-darkblue (SOUTHEAST)"; dir = 6},/turf/open/floor/plasteel/warningline,/area/ctf) +"hO" = (/turf/open/floor/plasteel/circuit/gcircuit/off,/turf/open/floor/plasteel/warningline,/area/ctf) +"hP" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (SOUTHWEST)"; dir = 10},/turf/open/floor/plasteel/warningline,/area/ctf) +"hQ" = (/turf/open/floor/plasteel/darkred/side,/turf/open/floor/plasteel/warningline,/area/ctf) +"hR" = (/turf/open/floor/plasteel/darkred/side{tag = "icon-darkred (SOUTHEAST)"; dir = 6},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHEAST)"; dir = 6},/area/ctf) +"hS" = (/turf/closed/wall/mineral/titanium/overspace,/area/centcom/evac) +"hT" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"; dir = 1},/turf/open/floor/plating/airless,/area/centcom/evac) +"hU" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 1},/turf/open/floor/plating/airless,/area/centcom/evac) +"hV" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 1},/turf/open/floor/plating/airless,/area/centcom/evac) +"hW" = (/obj/docking_port/stationary{dir = 1; dwidth = 1; height = 4; id = "pod4_away"; name = "recovery ship"; width = 3},/turf/open/space,/area/space) +"hX" = (/obj/docking_port/stationary{dir = 1; dwidth = 1; height = 4; id = "pod3_away"; name = "recovery ship"; width = 3},/turf/open/space,/area/space) +"hY" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHWEST)"; dir = 9},/area/ctf) +"hZ" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) +"ia" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHEAST)"; dir = 5},/area/ctf) +"ib" = (/turf/closed/wall/mineral/titanium,/area/centcom/evac) +"ic" = (/obj/structure/window/reinforced,/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 1},/turf/open/floor/plating/airless,/area/centcom/evac) +"id" = (/obj/machinery/door/airlock/shuttle,/turf/open/floor/plating,/area/centcom/evac) +"ie" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/open/floor/plating,/area/centcom/evac) +"if" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (WEST)"; dir = 8},/area/ctf) +"ig" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (EAST)"; dir = 4},/area/ctf) +"ih" = (/turf/open/floor/plating,/area/centcom/evac) +"ii" = (/turf/open/floor/plating,/turf/closed/wall/mineral/titanium/interior,/area/centcom/evac) +"ij" = (/turf/open/floor/mineral/titanium/blue,/turf/closed/wall/mineral/titanium/interior,/area/centcom/evac) +"ik" = (/obj/structure/closet/emcloset,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"il" = (/turf/open/floor/mineral/titanium/yellow,/area/centcom/evac) +"im" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/toxin{pixel_x = -2; pixel_y = 4},/obj/item/weapon/storage/firstaid/toxin,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"in" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/fire{pixel_x = -2; pixel_y = 4},/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"io" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 0},/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"ip" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHWEST)"; dir = 10},/area/ctf) +"iq" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline,/area/ctf) +"ir" = (/turf/open/floor/plasteel/circuit/rcircuit,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHEAST)"; dir = 6},/area/ctf) +"is" = (/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"it" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (WEST)"; dir = 8},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) +"iu" = (/turf/open/floor/plasteel/darkred/corner,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) +"iv" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (WEST)"; dir = 8},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; dir = 1},/area/ctf) +"iw" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (WEST)"; dir = 8},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (NORTHEAST)"; dir = 5},/area/ctf) +"ix" = (/turf/open/floor/plasteel/darkred/corner,/area/ctf) +"iy" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (NORTH)"; dir = 1},/area/ctf) +"iz" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (NORTH)"; dir = 1},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (EAST)"; dir = 4},/area/ctf) +"iA" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/open/floor/mineral/plastitanium,/area/centcom/evac) +"iB" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/fancy/donut_box,/turf/open/floor/mineral/plastitanium,/area/centcom/evac) +"iC" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/open/floor/mineral/plastitanium,/area/centcom/evac) +"iD" = (/obj/structure/table/reinforced,/turf/open/floor/mineral/plastitanium,/area/centcom/evac) +"iE" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 8},/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"iF" = (/obj/structure/chair{dir = 8},/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"iG" = (/obj/machinery/computer/secure_data,/turf/open/floor/mineral/plastitanium,/area/centcom/evac) +"iH" = (/obj/structure/chair{dir = 1},/turf/open/floor/mineral/plastitanium,/area/centcom/evac) +"iI" = (/obj/structure/chair{dir = 4},/turf/open/floor/mineral/plastitanium,/area/centcom/evac) +"iJ" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/obj/item/weapon/stamp,/turf/open/floor/mineral/plastitanium,/area/centcom/evac) +"iK" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (EAST)"; dir = 4},/area/ctf) +"iL" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (WEST)"; dir = 8},/area/ctf) +"iM" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (WEST)"; dir = 8},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (EAST)"; dir = 4},/area/ctf) +"iN" = (/obj/structure/table,/obj/item/device/assembly/flash/handheld,/turf/open/floor/mineral/plastitanium,/area/centcom/evac) +"iO" = (/turf/open/floor/mineral/plastitanium,/area/centcom/evac) +"iP" = (/obj/structure/chair{dir = 4},/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"iQ" = (/turf/open/floor/plasteel/black,/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHWEST)"; dir = 10},/area/ctf) +"iR" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (EAST)"; dir = 4},/turf/open/floor/plasteel/warningline,/area/ctf) +"iS" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (NORTH)"; dir = 1},/turf/open/floor/plasteel/warningline,/area/ctf) +"iT" = (/turf/open/floor/plasteel/darkred/corner{tag = "icon-darkredcorners (NORTH)"; dir = 1},/turf/open/floor/plasteel/warningline{tag = "icon-warningline (SOUTHEAST)"; dir = 6},/area/ctf) +"iU" = (/obj/structure/table,/obj/item/weapon/storage/box/handcuffs,/turf/open/floor/mineral/plastitanium,/area/centcom/evac) +"iV" = (/obj/machinery/door/window/northright{base_state = "right"; dir = 4; icon_state = "right"; name = "Security Desk"; req_access_txt = "103"},/turf/open/floor/mineral/plastitanium,/area/centcom/evac) +"iW" = (/obj/docking_port/stationary{dir = 4; dwidth = 1; height = 4; id = "pod2_away"; name = "recovery ship"; width = 3},/turf/open/space,/area/space) +"iX" = (/obj/structure/bed,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"iY" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/centcom/evac) +"iZ" = (/obj/machinery/door/airlock/shuttle,/turf/open/floor/mineral/titanium/yellow,/area/centcom/evac) +"ja" = (/obj/docking_port/stationary{dir = 4; dwidth = 2; height = 7; id = "pod1_away"; name = "recovery ship"; width = 5},/turf/open/space,/area/space) +"jb" = (/obj/structure/table,/obj/structure/bedsheetbin,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"jc" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"jd" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"je" = (/obj/machinery/door/airlock/shuttle{name = "Cockpit"; req_access_txt = "109"},/turf/open/floor/mineral/titanium/yellow,/area/centcom/evac) +"jf" = (/obj/structure/table,/obj/item/device/radio/off,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"jg" = (/obj/structure/chair{dir = 4; name = "Prosecution"},/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"jh" = (/obj/structure/filingcabinet,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"ji" = (/obj/structure/chair,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"jj" = (/turf/closed/wall/mineral/titanium,/area/shuttle/escape) +"jk" = (/obj/machinery/status_display,/turf/closed/wall/mineral/titanium,/area/shuttle/escape) +"jl" = (/obj/structure/table,/obj/item/weapon/storage/lockbox,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"jm" = (/obj/structure/table,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"jn" = (/obj/machinery/computer/shuttle,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"jo" = (/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/pen,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"jp" = (/obj/structure/table,/obj/item/weapon/paper_bin,/turf/open/floor/mineral/titanium/blue,/area/centcom/evac) +"jq" = (/turf/closed/indestructible/riveted,/area/centcom/ferry) +"jr" = (/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"js" = (/turf/open/floor/mineral/plastitanium,/area/shuttle/escape) +"jt" = (/turf/open/floor/plasteel/black,/area/centcom/ferry) +"ju" = (/turf/open/floor/plasteel/darkwarning{tag = "icon-warndark (EAST)"; dir = 4},/area/centcom/ferry) +"jv" = (/turf/open/floor/plasteel/delivery,/area/centcom/ferry) +"jw" = (/obj/machinery/door/airlock/external{name = "Backup Emergency Escape Shuttle"},/turf/open/floor/plasteel/delivery,/area/centcom/ferry) +"jx" = (/obj/machinery/door/airlock/shuttle,/obj/docking_port/stationary{dir = 4; dwidth = 3; height = 8; id = "backup_away"; name = "Backup Shuttle Dock"; width = 8},/obj/docking_port/mobile/emergency/backup{dwidth = 3},/turf/open/floor/plating,/area/shuttle/escape) +"jy" = (/obj/structure/chair/office/light{dir = 4},/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"jz" = (/obj/structure/table/wood,/obj/item/weapon/paper{info = "Due to circumstances beyond our control, your Emergency Evacuation Shuttle is out of service.

We apologise for the inconvinience this may cause you.

Please enjoy the use of this complementary book.

Sincerely,
Centcom Operations Demolitions Examination Retribution Bugfixing Underlining Services"},/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"jA" = (/obj/structure/table/wood,/obj/item/weapon/book/manual/random,/turf/open/floor/mineral/titanium,/area/shuttle/escape) +"jB" = (/turf/closed/indestructible/fakedoor,/area/centcom/ferry) +"jC" = (/obj/machinery/door/airlock/centcom{name = "Centcom Backup Docks"; opacity = 1; req_access_txt = "101"},/turf/open/floor/plasteel/black,/area/centcom/ferry) +"jD" = (/obj/machinery/vending/coffee,/turf/open/floor/plasteel/black,/area/centcom/ferry) +"jE" = (/obj/machinery/vending/cigarette{products = list(/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate = 7, /obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 2, /obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 1, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/lighter/greyscale = 4, /obj/item/weapon/storage/fancy/rollingpapers = 5)},/turf/open/floor/plasteel/black,/area/centcom/ferry) +"jF" = (/obj/structure/reagent_dispensers/water_cooler,/turf/open/floor/plasteel/black,/area/centcom/ferry) +"jG" = (/obj/machinery/status_display{density = 0; pixel_y = 32; supply_display = 1},/turf/open/floor/plasteel/black,/area/centcom/ferry) +"jH" = (/obj/item/weapon/twohanded/required/kirbyplants,/obj/machinery/status_display{pixel_y = 32},/turf/open/floor/plasteel/black,/area/centcom/ferry) +"jI" = (/obj/structure/chair/office/dark,/obj/effect/landmark{name = "Emergencyresponseteam"},/turf/open/floor/plasteel/black,/area/centcom/ferry) +"jJ" = (/obj/structure/table/reinforced,/turf/open/floor/vault,/area/centcom/ferry) +"jK" = (/obj/structure/chair/office/dark{dir = 8},/obj/effect/landmark{name = "Emergencyresponseteam"},/turf/open/floor/plasteel/black,/area/centcom/ferry) +"jL" = (/obj/structure/chair/office/dark{dir = 4},/obj/effect/landmark{name = "Emergencyresponseteam"},/turf/open/floor/plasteel/black,/area/centcom/ferry) +"jM" = (/obj/machinery/shuttle_manipulator,/turf/open/floor/plasteel/circuit,/area/centcom/ferry) +"jN" = (/turf/open/floor/plasteel/circuit,/area/centcom/ferry) +"jO" = (/obj/structure/extinguisher_cabinet{pixel_x = 28},/turf/open/floor/plasteel/black,/area/centcom/ferry) +"jP" = (/obj/structure/closet/secure_closet/ertCom,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) +"jQ" = (/obj/structure/chair/office/dark,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) +"jR" = (/obj/structure/table/reinforced,/obj/item/weapon/c4,/obj/item/weapon/c4{pixel_x = 7},/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) +"jS" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/syringes,/obj/item/weapon/gun/syringe/rapidsyringe,/obj/structure/extinguisher_cabinet{pixel_y = 28},/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) +"jT" = (/obj/structure/closet/secure_closet/ertEngi,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) +"jU" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/drinks/bottle/rum,/obj/item/weapon/reagent_containers/food/drinks/bottle/tequila,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka{pixel_x = -5},/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey{pixel_x = 5},/turf/open/floor/plasteel/black,/area/centcom/ferry) +"jV" = (/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) +"jW" = (/obj/machinery/door/poddoor/ert,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) +"jX" = (/obj/structure/chair/office/dark{dir = 1},/obj/effect/landmark{name = "Emergencyresponseteam"},/turf/open/floor/plasteel/black,/area/centcom/ferry) +"jY" = (/obj/structure/table/wood,/obj/item/weapon/storage/box/drinkingglasses,/turf/open/floor/plasteel/black,/area/centcom/ferry) +"jZ" = (/turf/closed/indestructible/riveted,/area/centcom/prison) +"ka" = (/turf/open/floor/plasteel/darkgreen/side{dir = 4},/area/centcom/ferry) +"kb" = (/obj/machinery/door/poddoor/shutters/preopen{id = "adminshut"; name = "Administrative Shutters"},/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/centcom/ferry) +"kc" = (/turf/open/floor/wood,/area/centcom/ferry) +"kd" = (/obj/effect/landmark{name = "prisonwarp"},/turf/open/floor/plasteel,/area/centcom/prison) +"ke" = (/obj/structure/closet/secure_closet/ertSec,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) +"kf" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/emps,/obj/item/weapon/gun/energy/ionrifle{pin = /obj/item/device/firing_pin},/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) +"kg" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/syringes,/obj/item/weapon/gun/syringe/rapidsyringe,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) +"kh" = (/obj/structure/closet/secure_closet/ertMed,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/ferry) +"ki" = (/obj/structure/table/reinforced,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/turf/open/floor/vault,/area/centcom/ferry) +"kj" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 5},/obj/item/weapon/pen/blue,/turf/open/floor/vault,/area/centcom/ferry) +"kk" = (/obj/machinery/door/airlock/centcom{name = "Administrative Office"; opacity = 1; req_access_txt = "109"},/turf/open/floor/wood,/area/centcom/ferry) +"kl" = (/obj/structure/chair/office/dark,/turf/open/floor/wood,/area/centcom/ferry) +"km" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 8},/area/centcom/ferry) +"kn" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/centcom/ferry) +"ko" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 4},/area/centcom/ferry) +"kp" = (/obj/machinery/door/airlock/centcom{name = "briefing room"; opacity = 1; req_access_txt = "101"},/turf/open/floor/plasteel/black,/area/centcom/ferry) +"kq" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin,/turf/open/floor/carpet,/area/centcom/ferry) +"kr" = (/obj/structure/table/wood,/obj/item/weapon/pen,/turf/open/floor/carpet,/area/centcom/ferry) +"ks" = (/turf/open/floor/carpet,/area/centcom/ferry) +"kt" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/ferry) +"ku" = (/obj/machinery/door/poddoor/shutters/preopen{id = "adminshut"; name = "Administrative Shutters"},/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/ferry) +"kv" = (/obj/machinery/button/door{id = "adminshut"; name = "Administrative Shutter-Control"; pixel_y = 26},/turf/open/floor/carpet,/area/centcom/ferry) +"kw" = (/obj/structure/chair/comfy/black{dir = 1},/turf/open/floor/carpet,/area/centcom/ferry) +"kx" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 9},/area/centcom/ferry) +"ky" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 6},/area/centcom/ferry) +"kz" = (/obj/machinery/door/poddoor/shutters/preopen{id = "adminshut"; name = "Administrative Shutters"},/turf/closed/indestructible/fakeglass,/area/centcom/ferry) +"kA" = (/obj/structure/showcase/fakesec,/turf/open/floor/carpet,/area/centcom/ferry) +"kB" = (/obj/structure/filingcabinet,/turf/open/floor/carpet,/area/centcom/ferry) +"kC" = (/obj/structure/reagent_dispensers/water_cooler,/turf/open/floor/carpet,/area/centcom/ferry) +"kD" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 8},/area/centcom/ferry) +"kE" = (/obj/machinery/computer/shuttle/ferry,/turf/open/floor/plasteel/darkwarning{dir = 8},/area/centcom/ferry) +"kF" = (/turf/closed/indestructible/riveted,/area/centcom/evac) +"kG" = (/obj/docking_port/stationary{dir = 8; dwidth = 2; height = 12; id = "ferry_away"; name = "unknown"; width = 5},/turf/open/space,/area/space) +"kH" = (/obj/machinery/door/airlock/external{name = "Ferry Airlock"; req_access_txt = "0"},/turf/open/floor/plasteel/delivery,/area/centcom/ferry) +"kI" = (/turf/open/floor/plasteel/darkwarning{dir = 8},/area/centcom/ferry) +"kJ" = (/turf/open/floor/plasteel/darkgreen/corner{dir = 4},/area/centcom/ferry) +"kK" = (/obj/structure/mirror{pixel_y = 32},/obj/structure/dresser,/turf/open/floor/wood,/area/centcom/ferry) +"kL" = (/obj/machinery/vending/autodrobe,/turf/open/floor/wood,/area/centcom/ferry) +"kM" = (/turf/open/floor/plasteel/darkred/side{dir = 9},/area/centcom/evac) +"kN" = (/turf/open/floor/plasteel/darkred/side{dir = 1},/area/centcom/evac) +"kO" = (/obj/structure/table,/obj/item/weapon/storage/box/handcuffs,/turf/open/floor/plasteel/darkred/side{dir = 5},/area/centcom/evac) +"kP" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 5},/area/centcom/ferry) +"kQ" = (/obj/machinery/door/airlock/centcom{name = "Dressing Room"; opacity = 1; req_access_txt = "0"},/turf/open/floor/wood,/area/centcom/ferry) +"kR" = (/obj/machinery/vending/clothing,/turf/open/floor/wood,/area/centcom/ferry) +"kS" = (/turf/closed/indestructible/fakedoor{name = "Centcom Security"},/area/centcom/evac) +"kT" = (/turf/open/floor/plasteel/black,/area/centcom/evac) +"kU" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 10},/area/centcom/ferry) +"kV" = (/turf/open/floor/plasteel/darkgreen/corner,/area/centcom/ferry) +"kW" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin{pixel_y = 4},/obj/item/weapon/pen,/turf/open/floor/wood,/area/centcom/ferry) +"kX" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/turf/open/floor/plasteel/darkred/side{dir = 8},/area/centcom/evac) +"kY" = (/obj/structure/chair/office/dark,/turf/open/floor/plasteel/black,/area/centcom/evac) +"kZ" = (/obj/structure/showcase/fakesec,/turf/open/floor/plasteel/black,/area/centcom/evac) +"la" = (/turf/closed/indestructible/fakeglass,/area/centcom/ferry) +"lb" = (/obj/structure/chair/comfy/black{dir = 4},/turf/open/floor/wood,/area/centcom/ferry) +"lc" = (/obj/structure/table/wood,/turf/open/floor/wood,/area/centcom/ferry) +"ld" = (/obj/machinery/door/window/northleft{dir = 2; name = "Centcom Security"; req_access_txt = "101"},/turf/open/floor/plasteel/black,/area/centcom/evac) +"le" = (/obj/structure/table/reinforced,/turf/open/floor/plasteel/darkred/side{dir = 10},/area/centcom/evac) +"lf" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/open/floor/plasteel/darkred/side{dir = 2},/area/centcom/evac) +"lg" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/open/floor/plasteel/darkred/side{dir = 2},/area/centcom/evac) +"lh" = (/obj/machinery/door/airlock/centcom{name = "Transport Shuttle"; opacity = 1; req_access_txt = "101"},/turf/open/floor/plasteel/darkgreen/side{dir = 2},/area/centcom/ferry) +"li" = (/turf/closed/indestructible/riveted,/area/centcom/control) +"lj" = (/obj/structure/flora/ausbushes/brflowers,/turf/open/floor/grass,/area/centcom/control) +"lk" = (/obj/structure/flora/ausbushes/palebush,/turf/open/floor/grass,/area/centcom/control) +"ll" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/control) +"lm" = (/turf/open/floor/plasteel/green/side{dir = 1},/area/centcom/control) +"ln" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 9},/area/centcom/evac) +"lo" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/centcom/evac) +"lp" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 4},/area/centcom/evac) +"lq" = (/obj/machinery/door/airlock/centcom{name = "Centcom Security"; opacity = 1; req_access_txt = "0"},/turf/open/floor/plasteel/black,/area/centcom/evac) +"lr" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/centcom/evac) +"ls" = (/turf/closed/indestructible/fakeglass,/area/centcom/control) +"lt" = (/turf/open/floor/plasteel,/area/centcom/control) +"lu" = (/obj/item/weapon/twohanded/required/kirbyplants,/turf/open/floor/plasteel/red/side{dir = 9},/area/centcom/evac) +"lv" = (/obj/structure/chair,/turf/open/floor/plasteel/red/side{dir = 1},/area/centcom/evac) +"lw" = (/turf/open/floor/plasteel/red/side{dir = 1},/area/centcom/evac) +"lx" = (/obj/structure/rack,/obj/item/weapon/gun/projectile/shotgun/toy/crossbow,/obj/item/toy/foamblade,/turf/open/floor/plasteel/red/side{dir = 1},/area/centcom/evac) +"ly" = (/obj/structure/rack,/obj/item/weapon/storage/crayons,/obj/item/toy/sword,/turf/open/floor/plasteel/red/side{dir = 1},/area/centcom/evac) +"lz" = (/turf/closed/indestructible/fakeglass,/area/centcom/evac) +"lA" = (/turf/open/floor/plasteel/yellowsiding{dir = 8},/area/centcom/evac) +"lB" = (/turf/open/floor/plasteel,/area/centcom/evac) +"lC" = (/turf/open/floor/plasteel/warning{dir = 4},/area/centcom/evac) +"lD" = (/obj/machinery/door/poddoor/shuttledock,/turf/open/floor/engine,/area/centcom/evac) +"lE" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/centcom/control) +"lF" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/red/side{dir = 8},/area/centcom/evac) +"lG" = (/obj/structure/chair/office/dark,/turf/open/floor/plasteel,/area/centcom/evac) +"lH" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/red/side{dir = 4},/area/centcom/evac) +"lI" = (/turf/open/floor/grass,/area/centcom/control) +"lJ" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/green/side{dir = 8},/area/centcom/control) +"lK" = (/turf/open/floor/plasteel/warning{dir = 4},/area/centcom/control) +"lL" = (/obj/machinery/door/airlock/centcom{name = "Centcom Customs"; opacity = 1; req_access_txt = "109"},/turf/open/floor/plasteel/black,/area/centcom/control) +"lM" = (/turf/open/floor/plasteel/black,/area/centcom/control) +"lN" = (/obj/structure/table,/turf/open/floor/plasteel/black,/area/centcom/control) +"lO" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/open/floor/plasteel/red/side{dir = 2},/area/centcom/evac) +"lP" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/open/floor/plasteel/red/side{dir = 2},/area/centcom/evac) +"lQ" = (/obj/structure/table/reinforced,/obj/item/toy/carpplushie,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/red/side{dir = 6},/area/centcom/evac) +"lR" = (/turf/open/space/transit,/area/space) +"lS" = (/turf/closed/indestructible/riveted,/area/centcom/supply) +"lT" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/centcom/control) +"lU" = (/turf/open/floor/plasteel/green/corner,/area/centcom/control) +"lV" = (/obj/structure/table,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/turf/open/floor/plasteel/black,/area/centcom/control) +"lW" = (/turf/open/floor/plasteel/yellowsiding{dir = 1},/area/centcom/evac) +"lX" = (/turf/open/floor/plasteel/yellowsiding/corner{dir = 1},/area/centcom/evac) +"lY" = (/obj/docking_port/stationary{dir = 4; dwidth = 25; height = 50; id = "emergency_away"; name = "Centcom Emergency Shuttle Dock"; width = 50},/turf/open/space,/area/space) +"lZ" = (/turf/closed/indestructible/rock/snow,/area/syndicate_mothership) +"ma" = (/obj/structure/closet,/turf/open/floor/plasteel/warning/corner{dir = 1},/area/centcom/supply) +"mb" = (/obj/structure/closet/wardrobe/cargotech,/turf/open/floor/plasteel/loadingarea,/area/centcom/supply) +"mc" = (/obj/structure/closet/secure_closet/quartermaster,/turf/open/floor/plasteel/loadingarea,/area/centcom/supply) +"md" = (/obj/structure/closet,/turf/open/floor/plasteel,/area/centcom/supply) +"me" = (/turf/open/floor/plasteel/green/side{dir = 4},/area/centcom/control) +"mf" = (/obj/machinery/button/door{desc = "A remote control switch for port-side blast doors."; icon_state = "doorctrl0"; id = "CentComPort"; name = "Security Doors"; pixel_y = 28; req_access_txt = "101"},/obj/structure/showcase/fakeid,/turf/open/floor/plasteel/black,/area/centcom/control) +"mg" = (/obj/structure/chair/office/dark{dir = 8},/turf/open/floor/plasteel/black,/area/centcom/control) +"mh" = (/obj/structure/table,/obj/item/weapon/stamp{pixel_x = -3; pixel_y = 3},/obj/item/weapon/stamp/denied{pixel_x = 4; pixel_y = -2},/obj/item/weapon/paper/centcom,/turf/open/floor/plasteel/black,/area/centcom/control) +"mi" = (/turf/open/floor/plasteel/red/corner{dir = 1},/area/centcom/evac) +"mj" = (/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) +"mk" = (/obj/structure/flora/grass/brown,/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) +"ml" = (/obj/structure/flora/tree/pine,/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) +"mm" = (/obj/structure/flora/grass/both,/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) +"mn" = (/obj/item/weapon/disk/data,/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) +"mo" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/centcom/supply) +"mp" = (/turf/open/floor/plasteel/warning{dir = 8},/area/centcom/supply) +"mq" = (/turf/open/floor/plasteel,/area/centcom/supply) +"mr" = (/turf/open/floor/plasteel/green/corner{dir = 1},/area/centcom/control) +"ms" = (/turf/open/floor/plasteel/green/corner{dir = 4},/area/centcom/control) +"mt" = (/obj/structure/table/reinforced,/obj/machinery/door/window/brigdoor{base_state = "rightsecure"; dir = 1; icon_state = "rightsecure"; name = "Centcom Customs"; req_access_txt = "109"},/turf/open/floor/plasteel/black,/area/centcom/control) +"mu" = (/turf/open/floor/plasteel/warning/corner{dir = 1},/area/centcom/evac) +"mv" = (/obj/item/toy/figure/syndie,/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) +"mw" = (/obj/machinery/door/airlock/external{name = "Supply Shuttle"; req_access_txt = "106"},/turf/open/floor/plasteel/delivery,/area/centcom/supply) +"mx" = (/obj/machinery/door/airlock/centcom{name = "Centcom Supply"; req_access_txt = "106"},/turf/open/floor/plasteel/brown{dir = 4},/area/centcom/supply) +"my" = (/turf/open/floor/plasteel/brown{dir = 8},/area/centcom/control) +"mz" = (/obj/machinery/door/airlock/centcom{name = "Centcom Docks"; opacity = 1; req_access_txt = "101"},/turf/open/floor/plasteel/black,/area/centcom/control) +"mA" = (/obj/machinery/door/poddoor/preopen{id = "CentComPort"; name = "security door"},/turf/open/floor/plasteel/loadingarea{dir = 8},/area/centcom/control) +"mB" = (/turf/open/floor/plasteel/warning{dir = 8},/area/centcom/evac) +"mC" = (/obj/structure/flora/bush,/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) +"mD" = (/obj/machinery/computer/cargo,/turf/open/floor/plasteel/warning{dir = 8},/area/centcom/supply) +"mE" = (/turf/open/floor/plasteel/green/corner{dir = 8},/area/centcom/control) +"mF" = (/obj/effect/spawner/structure/window/reinforced,/turf/open/floor/plating,/area/centcom/control) +"mG" = (/turf/open/floor/plasteel/warning/corner{dir = 4},/area/centcom/evac) +"mH" = (/obj/docking_port/stationary{dir = 8; dwidth = 5; height = 7; id = "supply_away"; name = "Centcom"; width = 12},/turf/open/space,/area/space) +"mI" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/green/side{dir = 4},/area/centcom/control) +"mJ" = (/turf/open/floor/plasteel/green/corner{dir = 8},/area/centcom/evac) +"mK" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/supply) +"mL" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/green/side{dir = 8},/area/centcom/evac) +"mM" = (/turf/open/floor/plasteel/yellowsiding,/area/centcom/evac) +"mN" = (/turf/open/floor/plasteel/yellowsiding/corner{dir = 8},/area/centcom/evac) +"mO" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/centcom/supply) +"mP" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/green/side{dir = 10},/area/centcom/control) +"mQ" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/green/side{dir = 6},/area/centcom/control) +"mR" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/open/floor/plasteel/green/side{dir = 1},/area/centcom/evac) +"mS" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/open/floor/plasteel/green/side{dir = 1},/area/centcom/evac) +"mT" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/green/side{dir = 5},/area/centcom/evac) +"mU" = (/turf/open/floor/plating/asteroid/snow,/area/space) +"mV" = (/turf/closed/indestructible/fakeglass,/area/centcom/supply) +"mW" = (/turf/closed/indestructible/riveted,/area/tdome/tdomeobserve) +"mX" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 8},/area/tdome/tdomeobserve) +"mY" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 4},/area/tdome/tdomeobserve) +"mZ" = (/obj/machinery/door/airlock/centcom{name = "Thunderdome"; opacity = 1; req_access_txt = "101"},/turf/open/floor/plasteel,/area/tdome/tdomeobserve) +"na" = (/obj/structure/chair/office/dark{dir = 1},/turf/open/floor/plasteel,/area/centcom/evac) +"nb" = (/obj/structure/table/reinforced,/obj/item/toy/talking/AI,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/green/side{dir = 4},/area/centcom/evac) +"nc" = (/turf/closed/indestructible/riveted,/area/syndicate_mothership) +"nd" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 8},/area/syndicate_mothership) +"ne" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 4},/area/syndicate_mothership) +"nf" = (/obj/structure/table,/obj/item/weapon/paper_bin,/turf/open/floor/plasteel/warning/corner{dir = 4},/area/centcom/supply) +"ng" = (/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/coin/silver,/turf/open/floor/plasteel,/area/centcom/supply) +"nh" = (/obj/structure/table,/obj/item/weapon/pen/blue{pixel_x = 4; pixel_y = 4},/obj/item/weapon/pen/red,/obj/item/weapon/pen{pixel_x = 8; pixel_y = 8},/turf/open/floor/plasteel,/area/centcom/supply) +"ni" = (/obj/structure/table,/turf/open/floor/plasteel/red/side{dir = 9},/area/tdome/tdomeobserve) +"nj" = (/turf/open/floor/plasteel/red/side{dir = 1},/area/tdome/tdomeobserve) +"nk" = (/obj/structure/table,/turf/open/floor/plasteel/red/side{dir = 1},/area/tdome/tdomeobserve) +"nl" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/neutral/side{dir = 8},/area/tdome/tdomeobserve) +"nm" = (/turf/open/floor/plasteel,/area/tdome/tdomeobserve) +"nn" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/neutral/side{dir = 4},/area/tdome/tdomeobserve) +"no" = (/obj/structure/table,/turf/open/floor/plasteel/green/side{dir = 1},/area/tdome/tdomeobserve) +"np" = (/turf/open/floor/plasteel/green/side{dir = 1},/area/tdome/tdomeobserve) +"nq" = (/obj/structure/table,/turf/open/floor/plasteel/green/side{dir = 5},/area/tdome/tdomeobserve) +"nr" = (/obj/item/weapon/twohanded/required/kirbyplants,/turf/open/floor/plasteel/green/side{dir = 10},/area/centcom/evac) +"ns" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/green/side,/area/centcom/evac) +"nt" = (/turf/open/floor/plasteel/green/side,/area/centcom/evac) +"nu" = (/obj/structure/rack,/obj/item/weapon/gun/projectile/shotgun/toy/crossbow,/obj/item/toy/katana,/turf/open/floor/plasteel/green/side,/area/centcom/evac) +"nv" = (/obj/structure/rack,/obj/item/weapon/storage/crayons,/obj/item/toy/sword,/turf/open/floor/plasteel/green/side,/area/centcom/evac) +"nw" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/evac) +"nx" = (/obj/item/weapon/storage/crayons,/obj/structure/table,/obj/item/weapon/storage/crayons,/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) +"ny" = (/obj/machinery/washing_machine,/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) +"nz" = (/obj/machinery/door/airlock/centcom{name = "Crate Storage"; req_access_txt = "106"},/turf/open/floor/plasteel/delivery,/area/centcom/supply) +"nA" = (/obj/structure/closet/secure_closet/bar,/turf/open/floor/plasteel/red/side{dir = 8},/area/tdome/tdomeobserve) +"nB" = (/obj/structure/table,/turf/open/floor/plasteel,/area/tdome/tdomeobserve) +"nC" = (/obj/structure/closet/secure_closet/freezer/kitchen,/turf/open/floor/plasteel/green/side{dir = 4},/area/tdome/tdomeobserve) +"nD" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 10},/area/centcom/evac) +"nE" = (/obj/machinery/door/airlock/centcom{name = "Centcom"; opacity = 1; req_access_txt = "0"},/turf/open/floor/plasteel/black,/area/centcom/evac) +"nF" = (/turf/closed/indestructible/riveted/uranium,/area/wizard_station) +"nG" = (/turf/closed/indestructible/fakeglass{color = "#008000"; dir = 8; icon_state = "fakewindows"},/area/wizard_station) +"nH" = (/turf/closed/indestructible/fakeglass{color = "#008000"; dir = 8; icon_state = "fakewindows2"},/area/wizard_station) +"nI" = (/turf/closed/indestructible/fakeglass{color = "#008000"; dir = 4; icon_state = "fakewindows"},/area/wizard_station) +"nJ" = (/obj/machinery/computer/shuttle/syndicate/recall,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"nK" = (/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"nL" = (/obj/machinery/vending/coffee,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"nM" = (/obj/machinery/vending/cola,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"nN" = (/obj/machinery/vending/cigarette{products = list(/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate = 7, /obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 2, /obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 1, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/lighter/greyscale = 4, /obj/item/weapon/storage/fancy/rollingpapers = 5)},/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"nO" = (/obj/structure/urinal{pixel_y = 28},/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) +"nP" = (/obj/item/weapon/soap/syndie,/obj/structure/mopbucket,/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) +"nQ" = (/obj/structure/mirror{pixel_x = 28},/obj/item/weapon/mop,/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) +"nR" = (/obj/structure/closet/crate,/turf/open/floor/plasteel,/area/centcom/supply) +"nS" = (/obj/structure/table,/obj/item/weapon/storage/box/drinkingglasses,/turf/open/floor/plasteel/red/side{dir = 8},/area/tdome/tdomeobserve) +"nT" = (/obj/structure/table,/turf/open/floor/plasteel/green/side{dir = 4},/area/tdome/tdomeobserve) +"nU" = (/turf/open/floor/engine/cult,/area/wizard_station) +"nV" = (/obj/machinery/computer/shuttle,/turf/open/floor/engine/cult,/area/wizard_station) +"nW" = (/obj/item/weapon/paper{info = "GET DAT FUKKEN DISK"; name = "memo"},/obj/structure/noticeboard{pixel_x = -32; pixel_y = 0},/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"nX" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"nY" = (/mob/living/simple_animal/hostile/carp/cayenne,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"nZ" = (/obj/machinery/door/airlock/centcom{name = "Restroom"; opacity = 1; req_access_txt = "150"},/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"oa" = (/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) +"ob" = (/obj/structure/mirror{pixel_x = 28},/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) +"oc" = (/turf/open/floor/plasteel/red/side{dir = 8},/area/tdome/tdomeobserve) +"od" = (/obj/structure/closet/secure_closet/freezer/fridge,/turf/open/floor/plasteel/green/side{dir = 4},/area/tdome/tdomeobserve) +"oe" = (/obj/structure/table/reinforced,/turf/open/floor/plasteel/green/side{dir = 9},/area/centcom/evac) +"of" = (/obj/structure/table/wood,/obj/item/device/paicard,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"og" = (/obj/structure/table/wood,/obj/item/pizzabox,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"oh" = (/obj/structure/chair/stool,/obj/effect/landmark{name = "Syndicate-Spawn"},/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"oi" = (/obj/machinery/computer/telecrystals/uplinker,/turf/open/floor/plasteel/podhatch{dir = 9},/area/syndicate_mothership) +"oj" = (/obj/structure/toilet{icon_state = "toilet00"; dir = 8},/obj/structure/window/reinforced/tinted{tag = "icon-rwindow (NORTH)"; icon_state = "rwindow"; dir = 1},/obj/machinery/door/window{tag = "icon-right (WEST)"; name = "Tactical Toilet"; icon_state = "right"; dir = 8; opacity = 1},/turf/open/floor/plasteel/freezer{dir = 2},/area/syndicate_mothership) +"ok" = (/turf/open/floor/plating/airless,/area/syndicate_mothership) +"ol" = (/turf/open/floor/plating/airless/warnplate{dir = 2},/area/syndicate_mothership) +"om" = (/turf/open/floor/plasteel/red/side{dir = 10},/area/tdome/tdomeobserve) +"on" = (/turf/open/floor/plasteel/red/side{dir = 2},/area/tdome/tdomeobserve) +"oo" = (/turf/open/floor/plasteel/neutral/side{dir = 8},/area/tdome/tdomeobserve) +"op" = (/turf/open/floor/plasteel/neutral/side{dir = 4},/area/tdome/tdomeobserve) +"oq" = (/turf/open/floor/plasteel/green/side,/area/tdome/tdomeobserve) +"or" = (/turf/open/floor/plasteel/green/side{dir = 6},/area/tdome/tdomeobserve) +"os" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/turf/open/floor/plasteel/green/side{dir = 8},/area/centcom/evac) +"ot" = (/obj/structure/filingcabinet/filingcabinet,/turf/open/floor/plasteel,/area/centcom/evac) +"ou" = (/obj/structure/showcase{desc = "A strange machine supposedly from another world. The Wizard Federation has been meddling with it for years."; icon = 'icons/obj/machines/telecomms.dmi'; icon_state = "processor"; name = "byond random number generator"},/turf/open/floor/engine/cult,/area/wizard_station) +"ov" = (/obj/structure/showcase{desc = "A historical figure of great importance to the wizard federation. He spent his long life learning magic, stealing artifacts, and harassing idiots with swords. May he rest forever, Rodney."; icon = 'icons/mob/mob.dmi'; icon_state = "nim"; name = "wizard of yendor showcase"},/turf/open/floor/engine/cult,/area/wizard_station) +"ow" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 9},/area/syndicate_mothership) +"ox" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/syndicate_mothership) +"oy" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/snacks/pizzaslice/mushroom,/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"oz" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/drinks/beer{pixel_x = 5; pixel_y = -2},/obj/item/toy/cards/deck/syndicate{icon_state = "deck_syndicate_full"; pixel_x = -6; pixel_y = 6},/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"oA" = (/obj/machinery/computer/telecrystals/uplinker,/turf/open/floor/plasteel/podhatch{dir = 8},/area/syndicate_mothership) +"oB" = (/obj/structure/closet/cardboard,/turf/open/floor/plating/airless,/area/syndicate_mothership) +"oC" = (/turf/open/floor/plating/airless/warnplate{dir = 6},/area/syndicate_mothership) +"oD" = (/turf/open/space,/obj/machinery/porta_turret/syndicate/pod,/turf/closed/wall/mineral/plastitanium{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/assault_pod) +"oE" = (/turf/closed/wall/mineral/plastitanium,/area/shuttle/assault_pod) +"oF" = (/obj/machinery/door/airlock/centcom{name = "Assault Pod"; opacity = 1; req_access_txt = "150"},/turf/open/floor/plating,/area/shuttle/assault_pod) +"oG" = (/turf/open/space,/obj/machinery/porta_turret/syndicate/pod,/turf/closed/wall/mineral/plastitanium{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/assault_pod) +"oH" = (/turf/open/floor/plating/airless/warnplate{dir = 10},/area/syndicate_mothership) +"oI" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/tdome/tdomeobserve) +"oJ" = (/turf/closed/indestructible/fakedoor{name = "Centcom"},/area/centcom/evac) +"oK" = (/turf/closed/indestructible/fakeglass{color = "#008000"; dir = 6; icon_state = "fakewindows2"},/area/wizard_station) +"oL" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Cockpit"},/turf/open/floor/engine/cult,/area/wizard_station) +"oM" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/syndicate_mothership) +"oN" = (/turf/open/floor/plating,/area/syndicate_mothership) +"oO" = (/obj/machinery/door/poddoor/shutters{id = "nukeop_ready"; name = "shuttle dock"},/turf/open/floor/plating,/area/syndicate_mothership) +"oP" = (/turf/open/floor/plating/airless/warnplate{dir = 4},/area/syndicate_mothership) +"oQ" = (/obj/structure/chair{dir = 4},/turf/open/floor/mineral/plastitanium,/area/shuttle/assault_pod) +"oR" = (/turf/open/floor/mineral/plastitanium,/area/shuttle/assault_pod) +"oS" = (/obj/structure/chair{dir = 8},/turf/open/floor/mineral/plastitanium,/area/shuttle/assault_pod) +"oT" = (/turf/open/floor/plating/airless/warnplate{dir = 8},/area/syndicate_mothership) +"oU" = (/turf/open/floor/grass,/area/tdome/tdomeobserve) +"oV" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/tdome/tdomeobserve) +"oW" = (/turf/open/floor/plasteel/green/side{dir = 10},/area/centcom/evac) +"oX" = (/turf/open/floor/plasteel/green/side{dir = 6},/area/centcom/evac) +"oY" = (/obj/machinery/computer/camera_advanced,/turf/open/floor/wood,/area/wizard_station) +"oZ" = (/obj/structure/table/wood/fancy,/obj/item/device/radio/intercom{desc = "Talk smack through this."; syndie = 1},/turf/open/floor/wood,/area/wizard_station) +"pa" = (/turf/open/floor/carpet,/area/wizard_station) +"pb" = (/obj/structure/chair/wood/wings,/turf/open/floor/carpet,/area/wizard_station) +"pc" = (/turf/closed/indestructible/fakeglass,/area/syndicate_mothership) +"pd" = (/obj/machinery/door/airlock/external{req_access_txt = "150"},/turf/open/floor/plating,/area/syndicate_mothership) +"pe" = (/obj/machinery/button/door{id = "nukeop_ready"; name = "mission launch control"; pixel_x = -26; pixel_y = 0; req_access_txt = "151"},/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"pf" = (/obj/machinery/computer/telecrystals/uplinker,/turf/open/floor/plasteel/podhatch{dir = 10},/area/syndicate_mothership) +"pg" = (/obj/structure/chair{dir = 1},/turf/open/floor/mineral/plastitanium,/area/shuttle/assault_pod) +"ph" = (/turf/open/floor/wood,/area/wizard_station) +"pi" = (/obj/structure/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 1},/turf/open/floor/wood,/area/wizard_station) +"pj" = (/obj/structure/chair/wood/wings{tag = "icon-wooden_chair_wings (EAST)"; icon_state = "wooden_chair_wings"; dir = 4},/turf/open/floor/carpet,/area/wizard_station) +"pk" = (/obj/structure/table/wood/poker,/obj/item/toy/figure/wizard,/turf/open/floor/carpet,/area/wizard_station) +"pl" = (/obj/structure/chair/wood/wings{tag = "icon-wooden_chair_wings (WEST)"; icon_state = "wooden_chair_wings"; dir = 8},/turf/open/floor/carpet,/area/wizard_station) +"pm" = (/obj/docking_port/stationary{area_type = /area/syndicate_mothership; dheight = 9; dir = 2; dwidth = 5; height = 24; id = "syndicate_away"; name = "syndicate recon outpost"; turf_type = /turf/open/floor/plating/asteroid/snow; width = 18},/turf/open/floor/plating/asteroid/snow,/area/space) +"pn" = (/obj/item/weapon/storage/box/drinkingglasses,/obj/item/weapon/reagent_containers/food/drinks/bottle/rum,/obj/structure/table/wood,/turf/open/floor/wood,/area/syndicate_mothership) +"po" = (/obj/structure/table/wood,/turf/open/floor/wood,/area/syndicate_mothership) +"pp" = (/obj/structure/table/wood,/obj/item/device/syndicatedetonator{desc = "This gaudy button can be used to instantly detonate syndicate bombs that have been activated on the station. It is also fun to press."},/turf/open/floor/wood,/area/syndicate_mothership) +"pq" = (/obj/structure/table/wood,/obj/item/toy/nuke,/turf/open/floor/wood,/area/syndicate_mothership) +"pr" = (/obj/machinery/door/airlock/centcom{aiControlDisabled = 1; name = "Assault Pod"; opacity = 1; req_access_txt = "150"},/turf/open/floor/plating,/area/shuttle/assault_pod) +"ps" = (/obj/machinery/computer/shuttle/syndicate/drop_pod,/turf/closed/wall/shuttle{tag = "icon-wall3"; icon_state = "wall3"; dir = 2},/area/shuttle/assault_pod) +"pt" = (/turf/open/floor/plasteel/redblue,/area/tdome/tdomeobserve) +"pu" = (/obj/structure/chair,/obj/effect/landmark{name = "tdomeobserve"},/turf/open/floor/plasteel/redblue,/area/tdome/tdomeobserve) +"pv" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Observation Room"},/turf/open/floor/engine/cult,/area/wizard_station) +"pw" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Game Room"},/turf/open/floor/engine/cult,/area/wizard_station) +"px" = (/obj/structure/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 1},/turf/open/floor/carpet,/area/wizard_station) +"py" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'FOURTH WALL'."; name = "\improper FOURTH WALL"; pixel_x = -32},/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) +"pz" = (/turf/open/floor/wood,/area/syndicate_mothership) +"pA" = (/obj/effect/landmark{name = "Syndicate-Spawn"},/turf/open/floor/wood,/area/syndicate_mothership) +"pB" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Uplink Management Control"; req_access_txt = "151"},/turf/open/floor/wood,/area/syndicate_mothership) +"pC" = (/obj/structure/chair,/turf/open/floor/mineral/plastitanium,/area/shuttle/assault_pod) +"pD" = (/turf/closed/indestructible/fakedoor{name = "Thunderdome"},/area/tdome/tdomeobserve) +"pE" = (/obj/machinery/computer/security/telescreen,/turf/open/floor/plasteel/redblue,/area/tdome/tdomeobserve) +"pF" = (/obj/structure/chair/wood/wings{tag = "icon-wooden_chair_wings (WEST)"; icon_state = "wooden_chair_wings"; dir = 8},/turf/open/floor/wood,/area/wizard_station) +"pG" = (/obj/structure/table/wood/fancy,/obj/item/device/camera/spooky,/turf/open/floor/carpet,/area/wizard_station) +"pH" = (/obj/structure/table/wood/poker,/obj/item/toy/cards/deck,/turf/open/floor/carpet,/area/wizard_station) +"pI" = (/obj/machinery/computer/telecrystals/boss,/turf/open/floor/plasteel/podhatch{dir = 5},/area/syndicate_mothership) +"pJ" = (/obj/structure/sign/map/left{pixel_y = -32},/obj/structure/rack{icon = 'icons/obj/stationobjs.dmi'; icon_state = "minibar_left"; name = "skeletal minibar"},/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka,/turf/open/floor/wood,/area/syndicate_mothership) +"pK" = (/obj/structure/sign/map/right{pixel_y = -32},/obj/structure/rack{icon = 'icons/obj/stationobjs.dmi'; icon_state = "minibar_right"; name = "skeletal minibar"},/obj/item/weapon/reagent_containers/food/drinks/bottle/gin,/turf/open/floor/wood,/area/syndicate_mothership) +"pL" = (/obj/machinery/door/airlock/centcom{name = "Equipment Room"; opacity = 1; req_access_txt = "150"},/turf/open/floor/plasteel/bar{dir = 2},/area/syndicate_mothership) +"pM" = (/turf/open/space,/obj/machinery/porta_turret/syndicate/pod,/turf/closed/wall/mineral/plastitanium{icon_state = "diagonalWall3"},/area/shuttle/assault_pod) +"pN" = (/turf/open/space,/obj/machinery/porta_turret/syndicate/pod,/turf/closed/wall/mineral/plastitanium{dir = 4; icon_state = "diagonalWall3"},/area/shuttle/assault_pod) +"pO" = (/obj/item/weapon/statuebust{pixel_y = 12},/obj/structure/table/wood/fancy,/turf/open/floor/wood,/area/wizard_station) +"pP" = (/obj/machinery/vending/magivend,/turf/open/floor/engine/cult,/area/wizard_station) +"pQ" = (/obj/machinery/vending/snack,/turf/open/floor/engine/cult,/area/wizard_station) +"pR" = (/obj/structure/table/wood/fancy,/obj/item/weapon/storage/pill_bottle/dice{icon_state = "magicdicebag"},/turf/open/floor/carpet,/area/wizard_station) +"pS" = (/obj/structure/table/wood/fancy,/obj/item/weapon/storage/photo_album,/turf/open/floor/carpet,/area/wizard_station) +"pT" = (/turf/open/floor/plasteel/black,/area/syndicate_mothership) +"pU" = (/obj/machinery/mech_bay_recharge_port,/turf/open/floor/plating,/area/syndicate_mothership) +"pV" = (/turf/open/floor/mech_bay_recharge_floor,/area/syndicate_mothership) +"pW" = (/obj/machinery/computer/mech_bay_power_console,/turf/open/floor/plating,/area/syndicate_mothership) +"pX" = (/obj/machinery/vending/tool,/turf/open/floor/plasteel/black,/area/syndicate_mothership) +"pY" = (/obj/structure/closet/cardboard/metal,/turf/open/floor/plating/airless,/area/syndicate_mothership) +"pZ" = (/turf/open/floor/plating/airless/warnplate{dir = 5},/area/syndicate_mothership) +"qa" = (/obj/machinery/door/airlock/centcom{aiControlDisabled = 1; name = "Assault Pod"; opacity = 1; req_access_txt = "150"},/obj/docking_port/mobile/assault_pod{dwidth = 3; name = "steel rain"; port_angle = 90; preferred_direction = 4},/turf/open/floor/plating,/area/shuttle/assault_pod) +"qb" = (/turf/open/floor/plating/airless/warnplate{dir = 9},/area/syndicate_mothership) +"qc" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Study"},/turf/open/floor/engine/cult,/area/wizard_station) +"qd" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Break Room"},/turf/open/floor/engine/cult,/area/wizard_station) +"qe" = (/turf/open/floor/plating/airless/warnplate{dir = 1},/area/syndicate_mothership) +"qf" = (/turf/closed/indestructible/riveted,/area/tdome/arena) +"qg" = (/obj/machinery/igniter,/turf/open/floor/plasteel,/area/tdome/arena) +"qh" = (/turf/open/floor/plasteel,/area/tdome/arena) +"qi" = (/obj/structure/chair/wood/wings,/turf/open/floor/engine/cult,/area/wizard_station) +"qj" = (/obj/structure/table/wood,/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/ointment,/turf/open/floor/engine/cult,/area/wizard_station) +"qk" = (/obj/structure/table/wood,/obj/item/weapon/retractor,/turf/open/floor/engine/cult,/area/wizard_station) +"ql" = (/obj/structure/table/wood,/obj/item/clothing/suit/wizrobe/magusblue,/obj/item/clothing/head/wizard/magus,/obj/item/weapon/staff,/obj/structure/mirror/magic{pixel_y = 28},/turf/open/floor/engine/cult,/area/wizard_station) +"qm" = (/obj/structure/table/wood,/obj/item/clothing/suit/wizrobe/magusred,/obj/item/clothing/head/wizard/magus,/obj/item/weapon/staff,/turf/open/floor/engine/cult,/area/wizard_station) +"qn" = (/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,/turf/open/floor/grass,/area/wizard_station) +"qo" = (/obj/effect/decal/cleanable/blood/splatter,/obj/effect/decal/cleanable/blood/gibs/body,/turf/open/floor/grass,/area/wizard_station) +"qp" = (/obj/effect/decal/remains/xeno/larva,/turf/open/floor/grass,/area/wizard_station) +"qq" = (/obj/effect/decal/cleanable/blood/splatter,/turf/open/floor/grass,/area/wizard_station) +"qr" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/syndicate_mothership) +"qs" = (/obj/structure/chair/stool,/turf/open/floor/plasteel/black,/area/syndicate_mothership) +"qt" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/saber/red,/turf/open/floor/plasteel/black,/area/tdome/arena) +"qu" = (/obj/machinery/door/poddoor{id = "thunderdomegen"; name = "General Supply"},/turf/open/floor/plasteel/black,/area/tdome/arena) +"qv" = (/obj/effect/landmark{name = "tdome2"},/turf/open/floor/plasteel,/area/tdome/tdome2) +"qw" = (/obj/machinery/door/poddoor{id = "thunderdome"; name = "Thunderdome Blast Door"},/turf/open/floor/plasteel,/area/tdome/arena) +"qx" = (/turf/open/floor/plasteel/red/side{dir = 8},/area/tdome/arena) +"qy" = (/turf/open/floor/plasteel/green/side{dir = 4},/area/tdome/arena) +"qz" = (/obj/effect/landmark{name = "tdome1"},/turf/open/floor/plasteel,/area/tdome/tdome1) +"qA" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/saber/green,/turf/open/floor/plasteel/black,/area/tdome/arena) +"qB" = (/turf/closed/indestructible/fakeglass{color = "#008000"; dir = 1; icon_state = "fakewindows"},/area/wizard_station) +"qC" = (/obj/structure/destructible/cult/tome,/turf/open/floor/engine/cult,/area/wizard_station) +"qD" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/item/clothing/suit/wizrobe/red,/obj/item/clothing/head/wizard/red,/obj/item/weapon/staff,/obj/item/clothing/shoes/sandal,/turf/open/floor/engine/cult,/area/wizard_station) +"qE" = (/turf/open/floor/grass,/area/wizard_station) +"qF" = (/obj/item/weapon/reagent_containers/food/snacks/meat/slab/corgi,/turf/open/floor/grass,/area/wizard_station) +"qG" = (/obj/structure/closet/syndicate/personal,/turf/open/floor/plasteel/darkwarning{dir = 1},/area/syndicate_mothership) +"qH" = (/obj/structure/table,/obj/item/weapon/gun/energy/ionrifle{pin = /obj/item/device/firing_pin},/turf/open/floor/plasteel/darkwarning{dir = 1},/area/syndicate_mothership) +"qI" = (/obj/machinery/recharger{pixel_y = 4},/obj/effect/landmark{name = "tdome2"},/turf/open/floor/plasteel,/area/tdome/tdome2) +"qJ" = (/obj/machinery/recharger{pixel_y = 4},/obj/effect/landmark{name = "tdome1"},/turf/open/floor/plasteel,/area/tdome/tdome1) +"qK" = (/turf/closed/indestructible/fakeglass{color = "#008000"; dir = 1; icon_state = "fakewindows2"},/area/wizard_station) +"qL" = (/obj/structure/bookcase/random/reference,/turf/open/floor/engine/cult,/area/wizard_station) +"qM" = (/obj/structure/destructible/cult/talisman{desc = "A altar dedicated to the Wizard's Federation"},/obj/item/weapon/kitchen/knife/ritual,/turf/open/floor/engine/cult,/area/wizard_station) +"qN" = (/obj/item/clothing/shoes/sandal/marisa,/obj/item/clothing/suit/wizrobe/marisa,/obj/item/clothing/head/wizard/marisa,/obj/item/weapon/staff/broom,/turf/open/floor/engine/cult,/area/wizard_station) +"qO" = (/obj/effect/decal/cleanable/blood/splatter,/mob/living/simple_animal/hostile/creature{name = "Experiment 35b"},/turf/open/floor/grass,/area/wizard_station) +"qP" = (/obj/machinery/camera{pixel_x = 11; pixel_y = -9; network = list("thunder"); c_tag = "Red Team"},/obj/effect/landmark{name = "tdome2"},/turf/open/floor/plasteel,/area/tdome/tdome2) +"qQ" = (/turf/open/floor/bluegrid,/area/tdome/arena) +"qR" = (/obj/machinery/flasher{id = "tdomeflash"; name = "Thunderdome Flash"},/turf/open/floor/bluegrid,/area/tdome/arena) +"qS" = (/obj/machinery/camera{pixel_x = 12; pixel_y = -10; network = list("thunder"); c_tag = "Green Team"},/obj/effect/landmark{name = "tdome1"},/turf/open/floor/plasteel,/area/tdome/tdome1) +"qT" = (/turf/closed/indestructible/fakeglass{color = "#008000"},/area/wizard_station) +"qU" = (/obj/effect/landmark/start{name = "wizard"},/turf/open/floor/engine/cult,/area/wizard_station) +"qV" = (/obj/effect/decal/remains/human,/obj/effect/decal/cleanable/blood/splatter,/turf/open/floor/grass,/area/wizard_station) +"qW" = (/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/slime,/turf/open/floor/grass,/area/wizard_station) +"qX" = (/obj/effect/decal/remains/xeno,/turf/open/floor/grass,/area/wizard_station) +"qY" = (/obj/machinery/camera{pixel_x = 10; network = list("thunder"); c_tag = "Arena"},/turf/open/floor/bluegrid,/area/tdome/arena) +"qZ" = (/obj/structure/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 1},/turf/open/floor/engine/cult,/area/wizard_station) +"ra" = (/mob/living/simple_animal/bot/medbot/mysterious{desc = "If you don't accidentally blow yourself up from time to time you're not really a wizard anyway."; faction = list("neutral","silicon","creature"); name = "Nobody's Perfect"},/turf/open/floor/engine/cult,/area/wizard_station) +"rb" = (/obj/item/weapon/reagent_containers/food/snacks/meat/slab/xeno,/turf/open/floor/grass,/area/wizard_station) +"rc" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Observation Deck"},/turf/open/floor/engine/cult,/area/wizard_station) +"rd" = (/obj/structure/statue/uranium/nuke,/turf/open/floor/plating/asteroid/snow,/area/syndicate_mothership) +"re" = (/obj/machinery/door/poddoor{id = "thunderdomehea"; name = "Heavy Supply"},/turf/open/floor/plasteel/black,/area/tdome/arena) +"rf" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/turf/open/floor/plasteel/black,/area/tdome/arena) +"rg" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 8},/area/tdome/tdomeadmin) +"rh" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/tdome/tdomeadmin) +"ri" = (/turf/closed/indestructible/fakeglass{icon_state = "fakewindows"; dir = 4},/area/tdome/tdomeadmin) +"rj" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/turf/open/floor/plasteel/black,/area/tdome/arena) +"rk" = (/turf/open/floor/plasteel/redyellow,/area/tdome/tdomeadmin) +"rl" = (/obj/structure/chair{dir = 1},/obj/effect/landmark{name = "tdomeadmin"},/turf/open/floor/plasteel/redyellow,/area/tdome/tdomeadmin) +"rm" = (/obj/structure/table,/obj/machinery/computer/security/telescreen{pixel_y = 0},/turf/open/floor/plasteel/redyellow,/area/tdome/tdomeadmin) +"rn" = (/obj/structure/chair/comfy/brown{dir = 1},/turf/open/floor/plasteel/redyellow,/area/tdome/tdomeadmin) +"ro" = (/obj/machinery/button/flasher{id = "tdomeflash"; pixel_x = 0; pixel_y = 0},/obj/structure/table,/turf/open/floor/plasteel/redyellow,/area/tdome/tdomeadmin) +"rp" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Storage"},/turf/open/floor/engine/cult,/area/wizard_station) +"rq" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Personal Quarters"},/turf/open/floor/engine/cult,/area/wizard_station) +"rr" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Bathroom"},/turf/open/floor/engine/cult,/area/wizard_station) +"rs" = (/turf/closed/indestructible/riveted,/area/tdome/tdomeadmin) +"rt" = (/obj/machinery/computer/security/telescreen{pixel_y = -32},/turf/open/floor/plasteel/redyellow,/area/tdome/tdomeadmin) +"ru" = (/turf/open/floor/plasteel,/area/tdome/tdomeadmin) +"rv" = (/obj/item/clothing/suit/wizrobe/black,/obj/item/clothing/head/wizard/black,/turf/open/floor/plasteel/bot,/area/wizard_station) +"rw" = (/turf/open/floor/plasteel/bot,/area/wizard_station) +"rx" = (/obj/item/cardboard_cutout,/turf/open/floor/plasteel/bot,/area/wizard_station) +"ry" = (/obj/structure/table/wood,/obj/effect/landmark{name = "Teleport-Scroll"},/obj/item/weapon/dice/d20,/obj/item/weapon/dice,/turf/open/floor/carpet,/area/wizard_station) +"rz" = (/obj/structure/punching_bag,/turf/open/floor/carpet,/area/wizard_station) +"rA" = (/obj/structure/urinal{pixel_y = 28},/turf/open/floor/plasteel/white,/area/wizard_station) +"rB" = (/turf/open/floor/plasteel/white,/area/wizard_station) +"rC" = (/obj/structure/mirror/magic{pixel_y = 28},/obj/structure/sink{pixel_y = 20},/turf/open/floor/plasteel/white,/area/wizard_station) +"rD" = (/turf/closed/indestructible/fakedoor{name = "Thunderdome Admin"},/area/tdome/tdomeadmin) +"rE" = (/obj/structure/table,/obj/machinery/button/door{id = "thunderdomehea"; name = "Heavy Supply Control"; pixel_y = 0; req_access_txt = "102"},/turf/open/floor/plasteel,/area/tdome/tdomeadmin) +"rF" = (/obj/structure/table,/obj/machinery/button/door{id = "thunderdome"; name = "Main Blast Doors Control"; pixel_y = 0; req_access_txt = "102"},/turf/open/floor/plasteel,/area/tdome/tdomeadmin) +"rG" = (/obj/structure/table,/obj/machinery/button/door{id = "thunderdomegen"; name = "General Supply Control"; pixel_y = 0; req_access_txt = "102"},/turf/open/floor/plasteel,/area/tdome/tdomeadmin) +"rH" = (/obj/item/weapon/cautery/alien,/turf/open/floor/plasteel/bot,/area/wizard_station) +"rI" = (/obj/item/weapon/coin/antagtoken,/turf/open/floor/plasteel/bot,/area/wizard_station) +"rJ" = (/obj/structure/bed,/obj/item/weapon/bedsheet/wiz,/turf/open/floor/carpet,/area/wizard_station) +"rK" = (/obj/item/weapon/soap/homemade,/turf/open/floor/plasteel/white,/area/wizard_station) +"rL" = (/obj/structure/closet/cardboard,/obj/item/weapon/banhammer,/turf/open/floor/plasteel/warning,/area/wizard_station) +"rM" = (/turf/open/floor/plasteel/warning,/area/wizard_station) +"rN" = (/obj/vehicle/scooter/skateboard{tag = "icon-skateboard (EAST)"; icon_state = "skateboard"; dir = 4},/turf/open/floor/plasteel/warning,/area/wizard_station) +"rO" = (/obj/structure/dresser,/obj/item/weapon/storage/backpack/satchel,/turf/open/floor/carpet,/area/wizard_station) +"rP" = (/obj/structure/table/wood,/obj/item/weapon/storage/bag/tray,/obj/item/weapon/reagent_containers/food/snacks/burger/spell,/turf/open/floor/carpet,/area/wizard_station) +"rQ" = (/obj/structure/bookcase/random/adult,/turf/open/floor/plasteel/white,/area/wizard_station) +"rR" = (/obj/structure/toilet{tag = "icon-toilet00 (NORTH)"; icon_state = "toilet00"; dir = 1},/turf/open/floor/plasteel/white,/area/wizard_station) +"rS" = (/obj/structure/table/wood/fancy,/obj/item/weapon/skub{pixel_y = 16},/turf/open/floor/plasteel/white,/area/wizard_station) +"rT" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Engine Room"},/obj/structure/barricade/wooden,/turf/open/floor/engine/cult,/area/wizard_station) +"rU" = (/turf/closed/indestructible/riveted,/area/centcom/holding) +"rV" = (/obj/structure/table/wood,/turf/open/floor/engine/cult,/area/wizard_station) +"rW" = (/obj/structure/table/wood,/obj/item/weapon/gun/magic/wand{desc = "Used in emergencies to reignite magma engines."; max_charges = 0; name = "wand of emergency engine ignition"},/turf/open/floor/engine/cult,/area/wizard_station) +"rX" = (/obj/structure/table/wood,/obj/item/weapon/bikehorn/golden{pixel_x = -8; pixel_y = 8},/turf/open/floor/engine/cult,/area/wizard_station) +"rY" = (/obj/structure/table,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) +"rZ" = (/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) +"sa" = (/obj/structure/closet/secure_closet/bar{req_access_txt = "25"},/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) +"sb" = (/obj/structure/reagent_dispensers/beerkeg,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) +"sc" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) +"sd" = (/obj/structure/rack,/obj/item/device/camera,/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) +"se" = (/obj/structure/rack,/obj/item/toy/sword,/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) +"sf" = (/obj/structure/rack,/obj/item/toy/gun,/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) +"sg" = (/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) +"sh" = (/turf/open/floor/plating/beach/sand,/area/centcom/holding) +"si" = (/obj/effect/overlay/palmtree_r,/obj/effect/overlay/coconut,/turf/open/floor/plating/beach/sand,/area/centcom/holding) +"sj" = (/obj/effect/overlay/palmtree_l,/turf/open/floor/plating/beach/sand,/area/centcom/holding) +"sk" = (/obj/structure/table,/obj/item/clothing/head/that,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) +"sl" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) +"sm" = (/obj/item/device/camera,/turf/open/floor/plating/beach/sand,/area/centcom/holding) +"sn" = (/obj/structure/destructible/cult/forge{desc = "A engine used in powering the wizards ship"; name = "magma engine"},/turf/open/floor/engine/cult,/area/wizard_station) +"so" = (/obj/structure/table,/obj/item/ammo_box/foambox,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) +"sp" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/shaker,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) +"sq" = (/obj/structure/table,/obj/item/weapon/lighter,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) +"sr" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) +"ss" = (/obj/structure/table,/obj/item/weapon/dice/d20,/turf/open/floor/plasteel/freezer{dir = 2},/area/centcom/holding) +"st" = (/obj/structure/chair/stool{pixel_y = 8},/obj/item/clothing/head/bandana{pixel_y = -10},/obj/item/clothing/glasses/sunglasses,/turf/open/floor/plating/beach/sand,/area/centcom/holding) +"su" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/plating/beach/sand,/area/centcom/holding) +"sv" = (/obj/structure/window/reinforced{resistance_flags = 3; color = "#008000"; dir = 1},/turf/open/floor/plating/lava,/area/wizard_station) +"sw" = (/obj/structure/rack,/obj/item/clothing/head/that,/obj/item/clothing/under/suit_jacket,/obj/item/clothing/tie/waistcoat,/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) +"sx" = (/obj/item/toy/beach_ball,/turf/open/floor/plating/beach/sand,/area/centcom/holding) +"sy" = (/obj/structure/shuttle/engine/heater{resistance_flags = 3},/turf/open/floor/plating/lava,/area/wizard_station) +"sz" = (/obj/structure/rack,/obj/item/weapon/storage/crayons,/obj/item/weapon/gun/projectile/automatic/toy/pistol,/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) +"sA" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) +"sB" = (/obj/structure/shuttle/engine/propulsion,/turf/open/space,/area/wizard_station) +"sC" = (/obj/structure/rack,/obj/item/weapon/storage/crayons,/obj/item/weapon/gun/projectile/shotgun/toy/crossbow,/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) +"sD" = (/turf/open/floor/plating/beach/coastline_b,/area/centcom/holding) +"sE" = (/obj/item/clothing/head/collectable/paper,/turf/open/floor/plating/beach/coastline_b,/area/centcom/holding) +"sF" = (/obj/structure/rack,/obj/item/clothing/shoes/laceup,/obj/item/clothing/under/suit_jacket/female{desc = "A black trouser suit for women. Very formal."; name = "black suit"; pixel_x = 3; pixel_y = 1},/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) +"sG" = (/obj/structure/table,/obj/item/weapon/gun/projectile/automatic/toy/pistol,/turf/open/floor/plasteel/cafeteria,/area/centcom/holding) +"sH" = (/turf/open/floor/plating/beach/water,/area/centcom/holding) +"sI" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel,/area/centcom/holding) +"sJ" = (/turf/open/floor/plasteel/delivery,/area/centcom/holding) +"sK" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel,/area/centcom/holding) +"sL" = (/obj/item/weapon/reagent_containers/food/snacks/egg/rainbow{desc = "I bet you think you're pretty clever... well you are."; name = "easter egg"},/turf/open/space,/area/space) +"sM" = (/obj/effect/landmark{name = "Holding Facility"},/turf/open/floor/engine,/area/centcom/holding) +"sN" = (/turf/closed/indestructible/abductor{icon_state = "alien20"},/area/abductor_ship) +"sO" = (/turf/closed/indestructible/abductor{icon_state = "alien21"},/area/abductor_ship) +"sP" = (/turf/closed/indestructible/abductor{icon_state = "alien22"},/area/abductor_ship) +"sQ" = (/turf/closed/indestructible/abductor{icon_state = "alien23"},/area/abductor_ship) +"sR" = (/turf/closed/indestructible/abductor{icon_state = "alien24"},/area/abductor_ship) +"sS" = (/turf/closed/indestructible/abductor{icon_state = "alien16"},/area/abductor_ship) +"sT" = (/turf/closed/indestructible/abductor{icon_state = "alien17"},/area/abductor_ship) +"sU" = (/obj/machinery/abductor/experiment{team = 1},/turf/open/floor/plating/abductor,/area/abductor_ship) +"sV" = (/obj/effect/landmark/abductor/console,/turf/open/floor/plating/abductor,/area/abductor_ship) +"sW" = (/obj/machinery/abductor/pad{team = 1},/turf/open/floor/plating/abductor,/area/abductor_ship) +"sX" = (/turf/closed/indestructible/abductor{icon_state = "alien18"},/area/abductor_ship) +"sY" = (/turf/closed/indestructible/abductor{icon_state = "alien19"},/area/abductor_ship) +"sZ" = (/obj/machinery/abductor/experiment{team = 4},/turf/open/floor/plating/abductor,/area/abductor_ship) +"ta" = (/obj/effect/landmark/abductor/console{team = 4},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tb" = (/obj/machinery/abductor/pad{team = 4},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tc" = (/turf/closed/indestructible/abductor{icon_state = "alien14"},/area/abductor_ship) +"td" = (/obj/machinery/computer/camera_advanced/abductor{team = 1},/turf/open/floor/plating/abductor,/area/abductor_ship) +"te" = (/turf/open/floor/plating/abductor,/area/abductor_ship) +"tf" = (/obj/structure/closet/abductor,/turf/open/floor/plating/abductor,/area/abductor_ship) +"tg" = (/turf/closed/indestructible/abductor{icon_state = "alien15"},/area/abductor_ship) +"th" = (/obj/machinery/computer/camera_advanced/abductor{team = 4},/turf/open/floor/plating/abductor,/area/abductor_ship) +"ti" = (/turf/closed/indestructible/abductor{icon_state = "alien12"},/area/abductor_ship) +"tj" = (/obj/item/weapon/retractor/alien,/obj/item/weapon/hemostat/alien,/obj/structure/table/abductor,/turf/open/floor/plating/abductor,/area/abductor_ship) +"tk" = (/obj/effect/landmark/abductor/scientist,/turf/open/floor/plating/abductor,/area/abductor_ship) +"tl" = (/obj/structure/table/optable/abductor,/turf/open/floor/plating/abductor,/area/abductor_ship) +"tm" = (/obj/effect/landmark/abductor/agent,/turf/open/floor/plating/abductor,/area/abductor_ship) +"tn" = (/obj/structure/table/abductor,/obj/item/weapon/storage/box/alienhandcuffs,/turf/open/floor/plating/abductor,/area/abductor_ship) +"to" = (/turf/closed/indestructible/abductor{icon_state = "alien13"},/area/abductor_ship) +"tp" = (/obj/effect/landmark/abductor/scientist{team = 4},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tq" = (/obj/effect/landmark/abductor/agent{team = 4},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tr" = (/turf/closed/indestructible/abductor{icon_state = "alien10"},/area/abductor_ship) +"ts" = (/obj/item/weapon/surgical_drapes,/obj/item/weapon/paper/abductor,/obj/item/weapon/scalpel/alien,/obj/structure/table/abductor,/obj/item/weapon/cautery/alien,/turf/open/floor/plating/abductor,/area/abductor_ship) +"tt" = (/turf/closed/indestructible/abductor{icon_state = "alien11"},/area/abductor_ship) +"tu" = (/turf/closed/indestructible/abductor{icon_state = "alien6"},/area/abductor_ship) +"tv" = (/turf/closed/indestructible/abductor{icon_state = "alien7"},/area/abductor_ship) +"tw" = (/obj/machinery/abductor/gland_dispenser,/turf/open/floor/plating/abductor,/area/abductor_ship) +"tx" = (/obj/structure/table/abductor,/obj/item/weapon/surgicaldrill/alien,/obj/item/weapon/circular_saw/alien,/turf/open/floor/plating/abductor,/area/abductor_ship) +"ty" = (/obj/structure/bed/abductor,/turf/open/floor/plating/abductor,/area/abductor_ship) +"tz" = (/turf/closed/indestructible/abductor{icon_state = "alien8"},/area/abductor_ship) +"tA" = (/turf/closed/indestructible/abductor{icon_state = "alien9"},/area/abductor_ship) +"tB" = (/turf/closed/indestructible/abductor,/area/abductor_ship) +"tC" = (/turf/closed/indestructible/abductor{icon_state = "alien2"},/area/abductor_ship) +"tD" = (/turf/closed/indestructible/abductor{icon_state = "alien3"},/area/abductor_ship) +"tE" = (/turf/closed/indestructible/abductor{icon_state = "alien4"},/area/abductor_ship) +"tF" = (/turf/closed/indestructible/abductor{icon_state = "alien5"},/area/abductor_ship) +"tG" = (/obj/machinery/abductor/experiment{team = 2},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tH" = (/obj/effect/landmark/abductor/console{team = 2},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tI" = (/obj/machinery/abductor/pad{team = 2},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tJ" = (/obj/machinery/abductor/experiment{team = 3},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tK" = (/obj/effect/landmark/abductor/console{team = 3},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tL" = (/obj/machinery/abductor/pad{team = 3},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tM" = (/obj/machinery/computer/camera_advanced/abductor{team = 2},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tN" = (/obj/machinery/computer/camera_advanced/abductor{team = 3},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tO" = (/obj/effect/landmark/abductor/scientist{team = 2},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tP" = (/obj/effect/landmark/abductor/agent{team = 2},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tQ" = (/obj/effect/landmark/abductor/scientist{team = 3},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tR" = (/obj/effect/landmark/abductor/agent{team = 3},/turf/open/floor/plating/abductor,/area/abductor_ship) +"tS" = (/turf/closed/indestructible/riveted,/area/awaymission/errorroom) +"tT" = (/turf/closed/mineral/ash_rock,/area/awaymission/errorroom) +"tU" = (/obj/structure/speaking_tile,/turf/closed/mineral/ash_rock,/area/awaymission/errorroom) +"tV" = (/obj/item/rupee,/turf/open/floor/plating/ashplanet/wateryrock{initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; planetary_atmos = 0},/area/awaymission/errorroom) +"tW" = (/turf/open/floor/plating/ashplanet/wateryrock{initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; planetary_atmos = 0},/area/awaymission/errorroom) +"tX" = (/obj/effect/landmark/error,/turf/open/floor/plating/ashplanet/wateryrock{initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; planetary_atmos = 0},/area/awaymission/errorroom) +"tY" = (/obj/structure/signpost/salvation{icon = 'icons/obj/structures.dmi'; icon_state = "ladder10"; invisibility = 100},/turf/open/floor/plating/ashplanet/wateryrock{initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; planetary_atmos = 0},/area/awaymission/errorroom) +"tZ" = (/obj/structure/lattice,/turf/open/space,/area/space) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacabacacacacacabacacacacacabacacacacacabacacacacacabacacacacacabacacacacacab +aaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafafafafafagahaiajakalagamanaoaoapagaqaqaqaqaqagarararararagasasasasasagatauauauavaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafaxayayafagahaiajazaAagaBaoaCaCaoagaqaDaqaDaqagarararararagasaEasaEasagaFaGaGaGaHaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafafafaIafagahaiajazaJagaoaKaLaMaNagaqaqaqaqaqagarararararagasasasasasagaFaGaGaGaHaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafafafaOafagahaiajakakagaoaoaPaPaoagaqaqaqaqaqagarararararagasasaEasasagaFaGaGaGaHaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafaQafafafagahaiajazaJagaRaSaoaoaSagaqaqaDaqaqagarararararagasasasasasagaFaGaGaGaHaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafaTafaUaxagahaiajazaJagaRaVaWaXaVagaqaqaDaqaqagarararararagasasasasasagaYaGaGaGaZaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafaIafafafagahaiajakakagaRbabbbbbbagaqaqaqaqaqagarararararagasasaEasasagaYaGaGaGaZaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafafafafafagahaiajazaJagaRbcbbbbbdagaqaqaqaqaqagarararararagasasasasasagaYaGaGaGaZaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafayayaIafagahaiajazaAagaRbcbbbbbdagaqaDaqaDaqagarararararagasaEasaEasagaYaGaGaGaZaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeafafafafafagahaiajakbeagaRbfbgbgbhagaqaqaqaqaqagarararararagasasasasasagbibjbjbjbkaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabblblblblblabblblblblblabblblblblblabblblblblblabblblblblblabblblblblblabblblblblblab +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmbmbmbmagbnbobnbpbnagbqbrbsbtbuagbvbvbwbxbxagbybybybybyagbzbAbAbAbBagbCbDbDbDbEaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmbmbmbmagbpbFbGbHbnagbIbJbJbJbKagbLbLbMbNbNagbybObybPbyagbQbQbQbQbQagbRbSbSbSbTaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmbmbmbmagbFbUbVbWbFagbXbYbZcacbagbLccccccbNagbycdbycdbyagbQbQbQbQbQagbRcececebTaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmbmbmbmagcfbncgchcfagbJbJciciciagbLbMbMbMbNagbybybybybyagbQbQbQbQbQagbRbSbSbSbTaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmcjbmbmagbFbnbnbnbnagckclcmbJcnagcocpcpcpcqagbycrbybybyagcscscscscsagctcucucucvaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmcwcxbmagbnbGbnbobFagcyczcAbJcBagcCcDcDcDcEagbybybycFbyagcGcGcGcGcGagcHcIcIcIcJaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmbmbmbmagcfcKbUcLbnagbJbJbJbJbJagcMbMcNbMcOagbybybybybyagbQbQbQbQbQagcPbSbSbScQaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmbmbmbmagbFcRcScTcUagcVcWcXbJbJagcMcYcYcYcOagcZdadbcZcZagbQbQbQbQbQagcPdcdcdccQaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmbmbmbmagbocRcTcRddagdedfdgdhclagcMcMbMcOcOagdididididiagbQbQbQbQbQagcPbSbSbScQaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebmbmbmbmbmagbncfbnbpbnagdjdkdldmdnagdododpdqdqagdrdrdrdrdragdsdtdtdtduagdvdwdwdwdxaw +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabblblblblblabblblblblblabacacacacacabblblblblblabblblblblblabblblblblblabblblblblblab +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydydydydyagdzdzdzdzdzagdAdBdCdDdEagdFdGdGdGdFagdHdIdJdKdLagdMdNdNdNdOagdPdQdRdSdTag +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydUdUdUdyagdVdWdXdYdVagdZdZeadZdZagebecedeeefagegeheiejekagelemememenagdPeoepeqdTag +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydUdUdUdyageresereserageteueueuevagewexeyexezageAeBeCeDeEageleFememenagdPeGeHeIdTag +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydyeJdydyageKeLeKeLeKageMeNeOePeMagexexexexexageQeQeQeQeQagelemememenagdPeReSeTdTag +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydUdUdUdyageLeKeLeKeLageUeUeUeUeUageVeWexeXeYageZfaeQeZfaagelemememenagdPeReSeTdTag +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydUdUdUdyageKeLeKeLeKageUeUeUeUeUagfbeWexeXfcagfdfeeQfdfeagfffgememenagdPeReSeTdTag +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydyeJdydyageLeKeLeKeLageUeUeUeUeUagexfhfhfhexageZfaeQeZfaagffemememenagdPeReSeTdTag +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydUdUdUdyagfifjfifjfiagfkfkflfkfkagfmfnfofpfqagfdfeeQfdfeagffememfrenagdPfsftfudTag +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydUdUdUdyagfvfwfxfyfvagdZdZdZdZdZagfzfAfAfAfzageZfaeQeZfaagffemememenagdPfBfBfBdTag +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedydydydydyagfCfCfCfCfCagfDfDfDfDfDagfEfFfFfFfGageDeBeQeDeBagfHfIfIfIfJagdPfKfLfMdTag +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfNfNfNfNfNabfNfNfNfNfNabfNfNfNfNfNabfNfNfNfNfNabfNfNfNfNfNabfNfNfNfNfNabfNfNfNfNfNab +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfOfOfOfOfOfOfOfOfPfQfQfQfQfQfQfQfQfQfQfQfQfQfPfOfOfOfOfOfOfOfOfO +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfRfSabababababfTfUfQfQfQfQfQfQfQfQfQfQfQfQfQfVfTabababababfSfWfO +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfRfSabababababfTfUfQfQfQfQfQfQfQfQfQfQfQfQfQfVfTabababababfSfWfO +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfRfSabababababfTfUfQfQfQfQfQfXfYfXfQfQfQfQfQfVfTabababababfSfWfO +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfRfSabababababfTfUfQfQfQfQfQfXfXfXfQfQfQfQfQfVfTabababababfSfWfO +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfRfSabababababfTfUfQfQfQfQfQfQfQfQfQfQfQfQfQfVfTabababababfSfWfO +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfRfSabababababfTfUfQfQfQfQfQfQfQfQfQfQfQfQfQfVfTabababababfSfWfO +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfOfOfZfZfZfZfZfOfPfQfQfQfQfQfQfQfQfQfQfQfQfQfPfOfZfZfZfZfZfOfOfO +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOgagagagagafOabababababababababababababababfOgbgbgbgbgbfOaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfOfOfOfOfOfOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfOfOfOfOfOfOaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +gcgcgcgcgcgcgcgdgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegeaa +gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegfggggggggggghgegfggggggghgegfggggggghgegfggggggghgegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegigjgjgjgkgegigjgjgjgkgegigjgjgjgkgegigjgjgjgjgjgkgeaa +gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngoglgpgqgpgngoglgpgqgpgngoglgpgqgpgngrgrgrgrgrgsgsgrgrgrgrgrgrgtgrgrgrgrgrgrgrgrgrgtgrgrgrgrgrgrgrgtgrgrgrgrgrgrgrgrgrgtgrgrgrgrgrgrgsgsgrgrgrgrgrgugmgvgmgwgxgugmgvgmgwgxgugmgvgmgwgxgugmgmgmgmgmgwgeaa +gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgygygygmgngoglgpgqgqgngoglgqgqgqgngoglgqgqgpgngrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgsgrgrgrgrgrgrgrgrgsgrgrgrgrgrgrgrgrgsgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgugmgvgvgwgxgugvgvgvgwgxgugvgvgmgwgxgugmgygygygmgwgeaa +gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngoglgpgqgpgngoglgpgqgpgngoglgpgqgpgngrgrgrgrgrgsgsgrgrgrgrgrgrgtgrgrgrgrgrgrgrgrgrgtgrgrgrgrgrgrgrgtgrgrgrgrgrgrgrgrgrgtgrgrgrgrgrgrgsgsgrgrgrgrgrgugmgvgmgwgxgugmgvgmgwgxgugmgvgmgwgxgugmgmgmgmgmgwgeaa +gzgcgcgcgcgcgcgcgcgcgcgcgcgcgcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgygygygmgngegAgBgBgBgCgegAgBgBgBgCgegAgBgBgBgCgegmgmgmgegegegegmgmgmgegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegDgEgEgEgFgegDgEgEgEgFgegDgEgEgEgFgegugmgygygygmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngegegogogogegegegGgGgGgegegegogogogegegHgHgHgegegegegHgHgHgegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegxgxgxgegegegGgGgGgegegegxgxgxgegegugmgmgmgmgmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgygygygmgngegfggggggghgegfggggggghgegfggggggghgegIgJgKgKgLgJgKgKgLgJgKgKgLgJgKgKgLgJgKgMgegegNgegegegNgegegegNgegegegegNgegegegegNgegegegNgegegegNgegegegegegigjgjgjgkgegigjgjgjgkgegigjgjgjgkgegugmgygygygmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngoglgpgqgpgngoglgpgqgpgngoglgpgqgpgngOgPgpgQgmgRgpgQgmgRgpgQgmgRgpgQgmgRgqgQgOgegegSgegegegSgegegegSgegegegegSgegegegegSgegegegSgegegegSgegegegegegugmgvgmgwgxgugmgvgmgwgxgugmgvgmgwgxgugmgmgmgmgmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgygygygmgngoglgpgqgqgngoglgqgqgqgngoglgqgqgpgngOgTgngpgmgmgngpgmgmgngpgmgmgngpgmgmgqgpgOgUgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgWgugmgvgvgwgxgugvgvgvgwgxgugvgvgmgwgxgugmgygygygmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngoglgpgqgpgngoglgpgqgpgngoglgpgqgpgngOgXgpgYgmgZgpgYgmgZgpgYgmgZgpgYgmgZgqgYgOgegehagegGgehagegGgehagegegGgehagegGgegehagegGgehagegGgehagegegGgegegugmgvgmgwgxgugmgvgmgwgxgugmgvgmgwgxgugmgmgmgmgmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegAgBgBgBgBgBgCgegAgBgBgBgCgegAgBgBgBgCgegAgBgBgBgCgehbhcgHgHhdhcgHgHhdhcgHgHhdhcgHgHhdhcgHhegegehfgegGgehfgegGgehfgegegGgehfgegGgegehfgegGgehfgegGgehfgegegGgegegDgEgEgEgFgegDgEgEgEgFgegDgEgEgEgFgegDgEgEgEgEgEgFgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagehggegegegegehggegegogogogegegegpgpgpgegegegegVgegegegegKgegegegegegqgqgqgegegegegehhhihihihjgegegGgegGgegGgegGgegGgegegGgegGgegGgegegGgegGgegGgegGgegGgegegGgegegegegVgegegegehkhkhkgegegegxgxgxgegehlgegegegegehlgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgpgpgpgpgpgpgegfggggggghgegpgpgpgpgpgegegegVgegegegegmgtgtgtgtgtgtgtgtgtgtgtgtgthmhnhnhnhogtgtgtgtgtgtgtgtgtgtgtgtgtgmgegegegmgtgtgtgtgtgtgtgtgtgtgtgtgtgmgegegegegVgegegehkhkhkhkhkgegigjgjgjgkgehkhkhkhkhkhkhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgqgqgqgqgqgphgglgpgqgpgngegpgmgmgmgpgegegegVgegegegegmgegGgGgGgegqgqgqgegGgGgGgehphqhqhqhrgegGgGgGgehshshsgegGgGgGgegmgegegegmgegGgGgGgegvgvgvgegGgGgGgegmgegegegegVgegegehkgmgmgmhkgegugmgvgmgwhthkgvgvgvgvgvhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgqgpgpgpgqgphgglgqgqgqgngegpgegqgegpgegVgVgVgVgVgVgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmhuhvhvhvhwhxhxhxhxhxhxhxhxhxhxhxhxhxhyhzhzhzhAgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgVgVgVgVgVgVgehkgegvgehkgegugvgvgvgwhthkgvhkhkhkgvhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgqgpgpgpgqgphgglgpgqgpgngegpgmgmgmgpgegegegVgegGgegmgmgmhnhnhnhnhnhnhnhnhnhnhngmhBgpgpgpgnhChChChChCgehCgehChChChChCguhkhkhkhDgmhEhEhEhEhEhEhEhEhEhEhEgmgmgmgegGgegVgegegehkgmgmgmhkgegugmgvgmgwhthkgvhkhkhkgvhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgpgpgpgpgpgpgegAgBgBgBgCgegpgpgpgpgpgegegegVgGgGgGgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmhBgpgqgpgnhChChChChChCgehChChChChChCguhkgvhkhDgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgGgGgGgVgegegehkhkhkhkhkgegDgEgEgEgFgehkhkhkhkhkhkhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegegogogogogogegegegegegegegegegpgpgpgegegegegegegGgegmgmgegpgogpgegGgGgGgegpgogpgehBgpgpgpgngehChngqhChChChChCgvhEhCgeguhkhkhkhDgehkgxhkgegGgGgGgehkgxhkgegmgmgegGgegegegegegehkhkhkgegegegegegegegegehkhkhkhkhkgegeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgpgpgpgpgpgpgegpgpgpgpgpgegpgpgpgpgpgegpgpgpgpgpgegmgmgegogpgogqhnhnhngqgogpgogehBgpgegpgngehChChngqhChChCgvhEhChCgeguhkgehkhDgegxhkgxgvhEhEhEgvgxhkgxgegmgmgehkhkhkhkhkgehkhkhkhkhkgehkhkhkhkhkgehkhkhkhkhkhkhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgpgphFgpgpgpgegpgmgegmgpgpgpgqhFgqgpgpgpgmgegmgpgpgmgmgGgpgogphnhnhnhnhngpgogpgehBgpgqgpgngehnhChChngqhCgvhEhChChEgeguhkgvhkhDgehkgxhkhEhEhEhEhEhkgxhkgGgmgmhkhkgmgegmhkhkhkgvhFgvhkhkhkgmgegmhkgehkhkhkhFhkhkhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgphFhGhFgpgpgegpgmgqgmgpgpgphFhHhFgpgpgpgmgqgmgpgpgmgmgGgogpgohnhngqhnhngogpgogehBgpgqgpgngegqhnhChChnhChEhChChEgvgeguhkgvhkhDgegxhkgxhEhEgvhEhEgxhkgxgGgmgmhkhkgmgvgmhkhkhkhFhIhFhkhkhkgmgvgmhkgehkhkhFhJhFhkhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgpgphFgpgpgpgegpgmgegmgpgpgpgqhFgqgpgpgpgmgegmgpgpgmgmgGgpgogphnhnhnhnhngpgogpgehBgpgqgpgngehnhChChngqhCgvhEhChChEgeguhkgvhkhDgehkgxhkhEhEhEhEhEhkgxhkgGgmgmhkhkgmgegmhkhkhkgvhFgvhkhkhkgmgegmhkgehkhkhkhFhkhkhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgpgpgpgpgpgpgegpgpgpgpgpgegpgpgpgpgpgegpgpgpgpgpgegmgmgegogpgogqhnhnhngqgogpgogehBgpgegpgngehChChngqhChChCgvhEhChCgeguhkgehkhDgegxhkgxgvhEhEhEgvgxhkgxgegmgmgehkhkhkhkhkgehkhkhkhkhkgehkhkhkhkhkgehkhkhkhkhkhkhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegegogogogogogegegegegegegegegegpgpgpgegegegegegegGgegmgmgegpgogpgegGgGgGgegpgogpgehBgpgpgpgngehChngqhChChChChCgvhEhCgeguhkhkhkhDgehkgxhkgegGgGgGgehkgxhkgegmgmgegGgegegegegegehkhkhkgegegegegegegegegehkhkhkhkhkgegeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgpgpgpgpgpgpgegfggggggghgegpgpgpgpgpgegegegVgGgGgGgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmhBgpgqgpgnhChChChChChCgehChChChChChCguhkgvhkhDgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgGgGgGgVgegegehkhkhkhkhkgegigjgjgjgkgehkhkhkhkhkhkhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgqgpgpgpgqgphgglgmgqgmgngegpgmgmgmgpgegegegVgegGgegmgmgmhnhnhnhnhnhnhnhnhnhnhngmhBgpgpgpgnhChChChChCgehCgehChChChChCguhkhkhkhDgmhEhEhEhEhEhEhEhEhEhEhEgmgmgmgegGgegVgegegehkgmgmgmhkgeguhkgvhkgwhthkgvhkhkhkgvhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgqgpgpgpgqgphgglgqgqgqgngegpgegqgegpgegVgVgVgVgVgVgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmhLhMhMhMhNhOhOhOhOhOhOhOhOhOhOhOhOhOhPhQhQhQhRgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgVgVgVgVgVgVgehkgegvgehkgegugvgvgvgwhthkgvhkhkhkgvhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahShThUhVhSaahWaaaaaahXaahShThUhVhSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgqgqgqgqgqgphgglgmgqgmgngegpgmgmgmgpgegegegVgegegegegmgegGgGgGgegqgqgqgegGgGgGgegmgegegegmgegGgGgGgehshshsgegGgGgGgehYhZhZhZiagegGgGgGgegvgvgvgegGgGgGgegmgegegegegVgegegehkgmgmgmhkgeguhkgvhkgwhthkgvgvgvgvgvhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibicicicibibidibieibidibibicicicibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegpgpgpgpgpgpgpgegAgBgBgBgCgegpgpgpgpgpgegegegVgegegegegmgtgtgtgtgtgtgtgtgtgtgtgtgtgmgegegegmgtgtgtgtgtgtgtgtgtgtgtgtgtifhEhEhEiggtgtgtgtgtgtgtgtgtgtgtgtgtgmgegegegegVgegegehkhkhkhkhkgegDgEgEgEgFgehkhkhkhkhkhkhkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibihihiiijikiliminioilikijiiihihibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagehggegegegegehggegegogogogegegegpgpgpgegegegegVgegegegegGgegegGgegGgegGgegGgegGgegegGgegegegGgegegGgegGgegGgegGgegGgegeipiqiqiqirgegegegegegvgvgvgegegegegegHgegegegegVgegegegehkhkhkgegegegxgxgxgegehlgegegegegehlgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibihihibisisilisisisilisisibihihibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegfggggggggggghgegfggggggghgegfggggggghgegfggggggghgegegGgegegNgegGgegNgegGgegNgegegGgegNgegGgegegNgegGgegNgegGgegNgegeitgKiuivgKgKiuivgKgKiuivgKgKiuivgKgKiuiwgegigjgjgjgkgegigjgjgjgkgegigjgjgjgkgegigjgjgjgjgjgkgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahSihihidisilililililililisidihihhSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngoglgmgqgmgngoglgmgqgmgngoglgmgqgmgngegegGgegegSgegGgegSgegGgegSgegegGgegSgegGgegegSgegGgegSgegGgegSgegegTixgviygmixhkiygmixhkiygmixhkiygmixhkizgTgugmgvgmgwgxgugmgvgmgwgxgugmgvgmgwgxgugmgmgmgmgmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahSibibiAiBiCiDiliEisiliFibibhSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgygygygmgngoglgmgqgqgngoglgqgqgqgngoglgqgqgmgngUgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgVgWgThkgvgmgmhkgugmgmhkgugmgmhkgugmgmhkgugOgTgugmgvgvgwgxgugvgvgvgwgxgugvgvgmgwgxgugmgygygygmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibiGiHiIiJilisisiliFibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngoglgmgqgmgngoglgmgqgmgngoglgmgqgmgngegegegegehagegegehagegegehagegegegehagegegegehagegegehagegegehagegegTiKgviLgmiKhkiLgmiKhkiLgmiKhkiLgmiKhkiMgTgugmgvgmgwgxgugmgvgmgwgxgugmgvgmgwgxgugmgmgmgmgmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibiNiOiOiDiliFiPiliFibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgygygygmgngegAgBgBgBgCgegAgBgBgBgCgegAgBgBgBgCgegegegegehfgegegehfgegegehfgegegegehfgegegegehfgegegehfgegegehfgegeiQgHiRiSgHgHiRiSgHgHiRiSgHgHiRiSgHgHiRiTgegDgEgEgEgFgegDgEgEgEgFgegDgEgEgEgFgegugmgygygygmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibiUiOiOiViliFiPililidiWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngegegogogogegegegGgGgGgegegegogogogegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegKgKgKgegegegegKgKgKgegegxgxgxgegegegGgGgGgegegegxgxgxgegegugmgmgmgmgmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibibibibibilisisiliFibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgygygygmgngegfggggggghgegfggggggghgegfggggggghgegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegmgmgmgegegegegmgmgmgegigjgjgjgkgegigjgjgjgkgegigjgjgjgkgegugmgygygygmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibiXiliXibiliFiPiliFiYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngoglgmgqgmgngoglgmgqgmgngoglgmgqgmgngmgrgrgrgrgsgsgrgrgrgrgrgrgtgrgrgrgrgrgrgrgrgrgtgrgrgrgrgrgrgrgtgrgrgrgrgrgrgrgrgrgtgrgrgrgrgrgrgsgsgrgrgrgrgrgugmgvgmgwgxgugmgvgmgwgxgugmgvgmgwgxgugmgmgmgmgmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibiXiliXibiliFiPiliFibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgygygygmgngoglgmgqgqgngoglgqgqgqgngoglgqgqgmgngmgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgsgrgrgrgrgrgrgrgrgsgrgrgrgrgrgrgrgrgsgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgugmgvgvgwgxgugvgvgvgwgxgugvgvgmgwgxgugmgygygygmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibiXililiZilililililidjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageglgmgmgmgmgmgngoglgmgqgmgngoglgmgqgmgngoglgmgqgmgngmgrgrgrgrgsgsgrgrgrgrgrgrgtgrgrgrgrgrgrgrgrgrgtgrgrgrgrgrgrgrgtgrgrgrgrgrgrgrgrgrgtgrgrgrgrgrgrgsgsgrgrgrgrgrgugmgvgmgwgxgugmgvgmgwgxgugmgvgmgwgxgugmgmgmgmgmgwgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibiXiliXibilisisisisibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegAgBgBgBgBgBgCgegAgBgBgBgCgegAgBgBgBgCgegAgBgBgBgCgegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegDgEgEgEgFgegDgEgEgEgFgegDgEgEgEgFgegDgEgEgEgEgEgFgeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibiXiliXibiljbjcjdikibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegegeaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahSibibibibjeibibibibhSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahSibjfiFiljgjhibhSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibjdisjiisjfibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajjjkjjjjjjjjjkjjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibjljmjnjojpibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjqjqjqjqjjjrjrjsjsjrjrjjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahSiYiYiYiYiYhSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjtjujvjwjxjrjrjsjsjyjzjjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjtjqjqjqjjjrjrjsjsjrjAjjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjqjqjqjqjBjqjqjqjCjqaaaajjjrjrjsjsjrjrjjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjDjEjFjtjtjtjGjHjtjqaaaajjjrjrjrjrjrjrjjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjtjtjtjIjtjIjtjtjtjqaaaajjjrjrjsjsjrjrjjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjtjtjJjJjJjJjKjtjtjqaaaajjjkjjjjjjjjjkjjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjqjqjqjqjqjqjqjtjLjJjMjNjJjtjtjOjqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjPjQjRjSjTjTjqjtjtjJjJjJjJjKjtjUjqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjVjVjVjVjVjVjWjtjtjXjtjXjtjtjtjYjqjqjqjqjqjZjZjZjZjZjZjZjZjZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjVjVjVjVjVjVjWjtjtjtjtjtjtjtjtkakbkckckcjqjZkdjZkdjZkdjZkdjZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqkekekfkgkhkhjqkikjjtjtjtjtjtjtkakkkcklkcjqjZjZjZjZjZjZjZjZjZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjqkmknknkojqjqkmknknkojqjqjqkpjqjqkqkrksjqjZkdjZkdjZkdjZkdjZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaktjtjtkakukvkwksjqjZjZjZjZjZjZjZjZjZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakxkyjtjtkakzkAkBkCjqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakDkykEjtjtkajqjqjqjqjqjZjZjZjZjZjZjZjZjZaakFkFkFkFkFkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakGkHjvkIjtjtkJjqkKkckLjqjZkdjZkdjZkdjZkdjZaakFkMkNkNkOkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakDkPkIjtjtjtkQkckckRjqjZjZjZjZjZjZjZjZjZaakSkTkTkTkTkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakUkPjtjtkVjqkckckWjqjZkdjZkdjZkdjZkdjZaakFkTkXkYkZkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalajtjtkajqkclblcjqjZjZjZjZjZjZjZjZjZaakFldlelflgkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqjqjqjqjqlhjqjqjqjqjqjqaaaaaaaaaaaaaaaaaaaakFkTkTkTkTkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaliljlkljlllmllljlkljliaaaaaakFkFkFkFkFkFkFkFlnlolplqlrkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaliljljljlsltlsljljljliaaaaaakFlulvlvlvlwlxlylzlAlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalilElilEliltlilElilElilililikFlFlBlBlBlBlBlGlHlAlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalilIlllJltltltltltlKlLlMlMlNkFlFlBlBlBlBlOlPlQlAlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalSlSlSlSlSlSlSlIlTlJltltltlUlilElililMlVkFlFlBlBlBlBlWlWlWlXlBlBlClDlYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalSmambmcmbmdlSlIlslJltltltmelElIlimfmgmhkFmilBlBlBlBlBlBlBlBlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmjmjmjmkmjmjmjmlmmmjmjmjmjmjmlmjmjmjmjmjmnmlmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamompmqmqmqmqlSlElimrltltltmslilElilEmtlEkFmulBlBlBlBlBlBlBlBlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmkmjmjmjmjmjmjmjmjmjmjmjmlmjmjmjmjmjmjmjmlmjmvmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamwmpmqmqmqmqmxmyltltltltltltltlKmzlMlMlMmAmBlBlBlBlBlBlBlBlBlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmjmCmjmjmjmjmjmkmjmjmmmjmjmlmjmjmlmjmjmlmmmjmlmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamomDmqmqmqmqlSlElimEltltltlUlimFlilililikFmGlBlBlBlBlBlBlBlBlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmlmjmjmkmjmjmlmmmjmjmlmjmmlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamHmwmpmqmqmqmqlSlIlllJltltltmIlllIliaaaaaakFmJlBlBlBlBlBlBlBlBlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmkmjmjmjmjmjmjmjmmmjmlmmmjmlmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamKmpmqmqmqmqlSlIlTlJltltltmIlTlIliaaaaaakFmLlBlBlBlBmMmMmMmNlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmmmjmjmjmlmjmjmCmmmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamOmpmqmqmqmqlSlIlsmPmEltlUmQlslIliaaaaaakFmLlBlBlBlBmRmSmTlAlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmUmUmUmUmUmUmUmUmUmjmjmjmjmjmjmCmjmjmkmjmkmjmlmjmllZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamVmpmqmqmqmqlSmWmWmXmYmZmXmYmWmWmWaaaaaakFmLlBlBlBlBlBnanblAlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmUmUmUmUmUmUmUmUmUmjmjmjmjmjmjncncndnencncmjmmmlmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalSnfngnhmqmqlSninjnknlnmnnnonpnqmWaaaaaakFnrnsnsnsntnunvnwlAlBlBlClDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmUmUmUmUmUmUmUmUmUmjmjmjmjmjncncnxnynynxncncncncncncncncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalSlSlSlSnzlSlSnAnmnBnlnmnnnBnmnCmWaaaaaakFkFkFkFkFkFkFkFnDlolpnElrkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRnFnGnHnInFlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmUmUmUmUmUmUmUmUmUmjmCmjmjmjncnJnKnKnKnKnLnMnNncnOnPnQncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalSnRnRnRlSnSnmnBnlnmnnnBnmnTmWaaaaaaaaaaaaaaaaaaaaaakFlBlBlBlBkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRnFnFnUnVnUnFnFlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmUmUmUmUmUmUmUmUmUmjmjmjmjmkncnWnKnXnXnYnKnKnKnZoaoaobncncncncncncncncncncncncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalSnRnRnRlSocnmnBnlnmnnnBnmodmWaaaaaaaaaaaaaaaaaaaaaakFlBoemSmRkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRnFnUnUnUnUnUnFlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmUmUmUmUmUmUmUmjmjmjmjmjmjncnKnXofognXnKohoincoaojncncokokokolololololokokncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalSnRnRnRlSomononoonmopoqoqormWaaaaaaaaaaaaaaaaaaaaaakFlBosnaotkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRnFounUnUnUovnFlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmjmUmUmUmUmUowoxoxoxoxoxnencnKnXoyoznXnKohoAncncncncncokoBoCoDoEoFoEoGoHokncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalSlSlSlSlSmXoImYmWnmmWmXoImYmWaaaaaaaaaaaaaaaaaaaaaaoJlBlBlBlBkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRnFnFnFnFoKoLoKnFnFnFnFlRlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmUmUmUmUmUmUmUmUmUmUoMoNoNoNoNoNoNoOnKnKnKnKnKnKohoAncncncncncokoPoDoEoQoRoSoEoGoTncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamWoUoUoUoVnmoVoUoUoUmWaaaaaaaaaaaaaaaaaaaaaakFoWntntoXkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRnFnFoYoZnFnUnUnUnFpapbnFnFlRlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmUmUmUmUmUmUmUmUmUmUpcpdndoxoxoxnencpenXnXnXnKnKohpfndoxoxoxoxoxoxoEoQoRpgoRoSoEoTncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamWmWmWmWmWmWmWmWmZmWmWmWmWmWmWmWmWaaaaaaaaaaaaaaaakFkFkFkFkFkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRnFnFphpiphnFnUnUnUnFpjpkplnFnFlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmUmUmUmUmUmUmUmUmUmUmUpmmUmUmjmjmjncpnpopppopqnKnKnKpdoNoNoNoNoNpdproRoSpsoQoRproTncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamWptpupupupupuptptptpupupupupuptmWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRnFnFoZphphphpvnUnUnUpwpapxpapbnFnFlRlRlRlRlRlRlRaaaaaaaalZpymjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmjmkncpzpApzpzpBnKnKnKndoxoxoxoxoxoxoEoQoRpCoRoSoEoTncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapDptptptpEptptptptptptptpEptptptpDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRnFoYpFphphphnFnUnUnUnFpGpapjpHplnFlRlRlRlRlRlRlRaaaaaaaalZmjmjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmCmjncncoipIpJpKncpLncncncncncncokoPpMoEoQoRoSoEpNoTncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamWptpupupupupuptptptpupupupupuptmWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRnFphphphphpOnFpPnUpQnFpRpSpapxpanFlRlRlRlRlRlRlRaaaaaaaalZmjmjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmjmjncncncncncncpTpTpUpVpWpXncokpYpZpMoEqaoEpNqbokncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamWmXoIoIoIoIoIoIoIoIoIoIoIoIoImYmWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRnFnFqcnFnFnFnFnFnFqdnFnFnFnFnGnHnInFnFlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmjmjmjmjmCmjncpTpTpTpTpTpTncokokokqeqeqeqeqeokokncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqfqfqfqfqfqfqfqfqgqhqhqhqhqhqhqhqhqhqhqhqhqhqgqfqfqfqfqfqfqfqfqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRnFqinUnUqinFqjqknUnUnUqlqmnFqnqoqpqqnFlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmjmjmkmjmjmmqrpTpTpTpTpTqsncncncncncncncncncncncncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqtquqvqvqvqvqvqwqxqhqhqhqhqhqhqhqhqhqhqhqhqhqyqwqzqzqzqzqzquqAqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRqBqCnUnUqCqBnUnUnUnUnUnUqDqBqqqEqFqEnFlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmjmjmCmlmkmCncqGqGqGqGqGqHncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqtquqvqIqvqIqvqwqxqhqhqhqhqhqhqhqhqhqhqhqhqhqyqwqzqJqzqJqzquqAqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRqKqLnUnUnUqKnUnUnUqMnUnUqNqKqOqoqqqonFlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmjmjmjmjmlmjncncncncncncncncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqtquqvqvqPqvqvqwqxqhqhqhqhqhqQqRqQqhqhqhqhqhqyqwqzqzqSqzqzquqAqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRqTqCnUnUqCqTnUnUnUqUnUnUnUqTqVqWqEqXnFlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmjmjmlmjmCmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqtquqvqvqvqvqvqwqxqhqhqhqhqhqQqYqQqhqhqhqhqhqyqwqzqzqzqzqzquqAqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRnFqZnUnUqZnFranUnUnUnUnUnUnFqqqoqqrbnFlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmUmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqtquqvqIqvqIqvqwqxqhqhqhqhqhqhqhqhqhqhqhqhqhqyqwqzqJqzqJqzquqAqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRnFnFrcnFnFnFnFnFoKrcoKnFnFnFnGnHnInFnFlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmjmUmUmUmUmUmUmUmUmUmUmUmjmjmjmjmvmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqtquqvqvqvqvqvqwqxqhqhqhqhqhqhqhqhqhqhqhqhqhqyqwqzqzqzqzqzquqAqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRqBnUnUnUnUnUnUnUnUnUnUnUnUnUnUnUqBlRlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmjmUmUmUmUmUmjmUmUmUmUmUmjmjmjmvrdmvmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqfqfrerererereqfqgqhqhqhqhqhqhqhqhqhqhqhqhqhqgqfrerererereqfqfqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRqTnUpanUpanUpanUpanUpanUpanUpanUqTlRlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmjmjmjmjmjmjmjmUmUmUmUmUmjmjmjmjmvmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfrfrfrfrfrfqfrgrhrhrhrhrhrhrhrhrhrhrhrhrhriqfrjrjrjrjrjqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRnFnFnUnUnUnUnUnUnUnUnUnUnUnUnUnFnFlRlRlRlRlRlRlRaaaaaaaalZmjmUmUmUmUmUmjmjmjmjmjmjmjmUmUmUmUmUmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfqfqfqfqfqfqfrkrlrlrlrlrlrmrnrorlrlrlrlrlrkqfqfqfqfqfqfqfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRnFnFnFrpnFnFnFrqnFnFnFrrnFnFnFlRlRlRlRlRlRlRlRaaaaaaaalZmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjmjlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarsrkrkrkrtrkrurururururkrtrkrkrkrsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRnFrvrwrxnFryparznFrArBrCnFlRlRlRlRlRlRlRlRlRaaaaaaaalZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZlZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarsrsrDrsrsrsrsrErFrGrsrsrsrsrDrsrsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRnFrHrwrInFparJpanFrKrBrBnFlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarsrsrsrsrsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRnFrLrMrNnFrOparPnFrQrRrSnFlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRnFnFrTnFnFnFoKnFnFnFnFnFnFlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUrUrUrUrUrUrUrUrUrUrUrUrUrUrUrUrUrUrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRnFnUnFnUrVrWrVrXnFlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUrYrZsasbsbrZscsdsesfsgshsishshshsjrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRoKnUrTnUnUnUnUnUoKlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUrYrZrZrZrZrZsksgsgsgslshshshsmshshrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRnFnFnFsnnUnUnUsnnFlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUsorZsprYsqsrsssgsgsgsgshshstshsusirUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRnFsvsvsvsvsvnFlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUswsgslslslslslsgsgsgsgshshshsxshshrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRnFnFsysysynFnFlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUszsgsgsgsgsgsgsgsgsgsgsAshshshshshrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRsBsBsBlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUsCsgsgsgsgsgsgsgsgslsgsAsDsDsDsEsDrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUsFsgsgsgsgsgsgsgslsGslsAsHsHsHsHsHrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaalRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUrUsIsJsJsKrUrUrUrUrUrUrUrUrUrUrUrUrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUsMsMsMsMrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUsMsMsMsMrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarUrUrUrUrUrUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasNsOsPsQsRaaaaaasNsOsPsQsRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasSsTsUsVsWsXsYaasSsTsZtatbsXsYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatctdtetetetftgaatcthtetetetftgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatitjtktltmtntoaatitjtptltqtntoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatrtstetetetfttaatrtstetetetfttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatutvtwtxtytztAaatutvtwtxtytztAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatBtCtDtEtFaaaaaatBtCtDtEtFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasNsOsPsQsRaaaaaasNsOsPsQsRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasSsTtGtHtIsXsYaasSsTtJtKtLsXsYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatctMtetetetftgaatctNtetetetftgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatitjtOtltPtntoaatitjtQtltRtntoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatrtstetetetfttaatrtstetetetfttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatutvtwtxtytztAaatutvtwtxtytztAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatBtCtDtEtFaaaaaatBtCtDtEtFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aatStStStStStStStStStStStStStStSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aatStTtTtTtTtTtTtUtTtTtTtTtTtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aatStTtVtVtVtWtVtVtVtWtVtVtVtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aatStTtVtVtVtWtVtVtVtWtVtVtVtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aatStTtVtVtVtWtVtVtVtWtVtVtVtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aatStTtWtWtWtWtWtWtWtWtWtWtWtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aatStTtVtVtVtWtWtWtWtWtVtVtVtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aatStTtVtVtVtWtWtXtWtWtVtVtVtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aatStTtVtVtVtWtWtYtWtWtVtVtVtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aatStTtTtTtTtTtTtTtTtTtTtTtTtTtSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aatStStStStStStStStStStStStStStSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatZ +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatZ +"} diff --git a/_maps/map_files/generic/z3.dmm b/_maps/map_files/generic/z3.dmm new file mode 100644 index 0000000..abc53bc --- /dev/null +++ b/_maps/map_files/generic/z3.dmm @@ -0,0 +1,260 @@ +"a" = (/turf/open/space,/area/space) +"b" = (/obj/docking_port/stationary{dheight = 0; dir = 2; dwidth = 11; height = 22; id = "whiteship_away"; name = "Deep Space"; width = 35},/turf/open/space,/area/space) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +"} diff --git a/_maps/map_files/generic/z4.dmm b/_maps/map_files/generic/z4.dmm new file mode 100644 index 0000000..c71d2e7 --- /dev/null +++ b/_maps/map_files/generic/z4.dmm @@ -0,0 +1,259 @@ +"a" = (/turf/open/space,/area/space) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +"} diff --git a/_maps/map_files/generic/z5.dmm b/_maps/map_files/generic/z5.dmm new file mode 100644 index 0000000..b5fa974 --- /dev/null +++ b/_maps/map_files/generic/z5.dmm @@ -0,0 +1,70811 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/open/space, +/area/space) +"ab" = ( +/turf/closed/mineral, +/area/mine/explored) +"ac" = ( +/turf/closed/mineral, +/area/mine/unexplored) +"ad" = ( +/turf/closed/mineral/random, +/area/mine/unexplored) +"ae" = ( +/turf/closed/mineral/random/low_chance, +/area/mine/explored) +"af" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/mine/abandoned) +"ag" = ( +/obj/machinery/door/airlock/external, +/turf/open/floor/plasteel/airless, +/area/mine/abandoned) +"ah" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/mine/abandoned) +"ai" = ( +/turf/open/floor/plasteel/airless, +/area/mine/abandoned) +"aj" = ( +/obj/structure/lattice, +/turf/open/space, +/area/space) +"ak" = ( +/turf/closed/mineral/random/high_chance, +/area/mine/unexplored) +"al" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/item/weapon/shard{ + icon_state = "small" + }, +/turf/open/floor/plating/airless, +/area/mine/abandoned) +"am" = ( +/obj/item/stack/rods, +/obj/structure/door_assembly/door_assembly_ext{ + name = "Broken External Airlock" + }, +/turf/open/floor/plasteel/airless, +/area/mine/abandoned) +"an" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plating/airless, +/area/mine/abandoned) +"ao" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/mine/abandoned) +"ap" = ( +/turf/open/floor/plating/airless, +/area/mine/abandoned) +"aq" = ( +/obj/item/stack/rods, +/turf/open/floor/plasteel/airless{ + icon_state = "damaged2" + }, +/area/mine/abandoned) +"ar" = ( +/obj/item/weapon/shard{ + icon_state = "medium" + }, +/turf/open/floor/plasteel/airless, +/area/mine/abandoned) +"as" = ( +/turf/open/floor/plasteel/airless{ + icon_state = "damaged3" + }, +/area/mine/abandoned) +"at" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plating/airless, +/area/mine/abandoned) +"au" = ( +/obj/item/weapon/shard, +/turf/open/floor/plasteel/airless{ + icon_state = "damaged2" + }, +/area/mine/abandoned) +"av" = ( +/turf/closed/wall, +/area/mine/abandoned) +"aw" = ( +/obj/item/stack/rods, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/item/weapon/shard, +/turf/open/floor/plating/airless, +/area/mine/abandoned) +"ax" = ( +/obj/item/stack/rods, +/turf/open/floor/plasteel/airless, +/area/mine/abandoned) +"ay" = ( +/obj/structure/lattice, +/obj/item/weapon/shard{ + icon_state = "medium" + }, +/turf/open/space, +/area/space) +"az" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plating/airless, +/area/mine/abandoned) +"aA" = ( +/obj/item/clothing/mask/facehugger{ + icon_state = "facehugger_dead"; + stat = 2 + }, +/turf/open/floor/plasteel/airless, +/area/mine/abandoned) +"aB" = ( +/obj/structure/alien/weeds, +/turf/open/floor/plasteel/airless{ + icon_state = "damaged2" + }, +/area/mine/abandoned) +"aC" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/mine/abandoned) +"aD" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plating/airless, +/area/mine/abandoned) +"aE" = ( +/obj/structure/grille, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/mine/abandoned) +"aF" = ( +/obj/structure/alien/weeds, +/turf/open/floor/plasteel/airless, +/area/mine/abandoned) +"aG" = ( +/obj/effect/decal/remains/xeno, +/obj/structure/alien/weeds, +/turf/open/floor/plasteel/airless{ + icon_state = "floorscorched1" + }, +/area/mine/abandoned) +"aH" = ( +/obj/item/stack/rods, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"aI" = ( +/obj/item/weapon/shard, +/obj/item/stack/rods, +/turf/open/floor/plating/airless, +/area/mine/abandoned) +"aJ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/mine/abandoned) +"aK" = ( +/obj/structure/table, +/turf/open/floor/plasteel/airless{ + icon_state = "floorscorched2" + }, +/area/mine/abandoned) +"aL" = ( +/obj/structure/table, +/turf/open/floor/plasteel/airless{ + icon_state = "floorscorched1" + }, +/area/mine/abandoned) +"aM" = ( +/obj/structure/alien/weeds, +/turf/open/floor/plasteel/airless{ + icon_state = "damaged3" + }, +/area/mine/abandoned) +"aN" = ( +/obj/structure/alien/weeds, +/turf/open/floor/plating/airless, +/area/mine/abandoned) +"aO" = ( +/obj/item/stack/rods, +/turf/open/floor/plating/airless, +/area/mine/abandoned) +"aP" = ( +/obj/item/weapon/shard{ + icon_state = "small" + }, +/turf/open/floor/plating/airless, +/area/mine/abandoned) +"aQ" = ( +/turf/open/floor/plasteel/airless{ + icon_state = "floorscorched1" + }, +/area/mine/abandoned) +"aR" = ( +/turf/open/floor/plasteel/airless{ + icon_state = "floorscorched2" + }, +/area/mine/abandoned) +"aS" = ( +/obj/structure/grille, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/mine/abandoned) +"aT" = ( +/obj/structure/alien/weeds/node, +/turf/open/floor/plating/airless, +/area/mine/abandoned) +"aU" = ( +/obj/item/clothing/mask/facehugger{ + icon_state = "facehugger_dead"; + stat = 2 + }, +/obj/structure/alien/weeds, +/turf/open/floor/plating/airless, +/area/mine/abandoned) +"aV" = ( +/obj/item/weapon/shard, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"aW" = ( +/turf/open/floor/plasteel/airless{ + icon_state = "damaged2" + }, +/area/mine/abandoned) +"aX" = ( +/obj/structure/alien/weeds, +/turf/open/floor/plasteel/airless{ + icon_state = "floorscorched2" + }, +/area/mine/abandoned) +"aY" = ( +/obj/effect/decal/remains/xeno, +/obj/structure/alien/weeds, +/turf/open/floor/plating/airless, +/area/mine/abandoned) +"aZ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/mine/abandoned) +"ba" = ( +/obj/item/weapon/shard, +/turf/open/floor/plating/airless, +/area/mine/abandoned) +"bb" = ( +/obj/structure/lattice, +/obj/item/weapon/shard{ + icon_state = "small" + }, +/obj/item/clothing/mask/facehugger{ + icon_state = "facehugger_dead"; + stat = 2 + }, +/turf/open/space, +/area/mine/abandoned) +"bc" = ( +/obj/structure/lattice, +/turf/open/space, +/area/mine/abandoned) +"bd" = ( +/obj/machinery/door/airlock/hatch, +/turf/open/floor/plasteel/airless, +/area/mine/abandoned) +"be" = ( +/obj/structure/grille, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/mine/abandoned) +"bf" = ( +/obj/structure/grille, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/mine/abandoned) +"bg" = ( +/turf/open/floor/plasteel/airless{ + icon_state = "damaged4" + }, +/area/mine/abandoned) +"bh" = ( +/obj/effect/decal/remains/xeno, +/turf/open/floor/plasteel/airless{ + icon_state = "floorscorched2" + }, +/area/mine/abandoned) +"bi" = ( +/obj/structure/alien/weeds, +/turf/open/floor/plasteel/airless{ + icon_state = "floorscorched1" + }, +/area/mine/abandoned) +"bj" = ( +/obj/effect/decal/remains/xeno, +/obj/structure/alien/weeds, +/turf/open/floor/plasteel/airless{ + icon_state = "damaged4" + }, +/area/mine/abandoned) +"bk" = ( +/obj/structure/table, +/turf/open/floor/plasteel/airless, +/area/mine/abandoned) +"bl" = ( +/obj/structure/rack, +/turf/open/floor/plasteel/airless, +/area/mine/abandoned) +"bm" = ( +/obj/effect/decal/remains/human, +/turf/open/floor/plasteel/airless{ + icon_state = "damaged5" + }, +/area/mine/abandoned) +"bn" = ( +/obj/item/clothing/mask/facehugger{ + icon_state = "facehugger_dead"; + stat = 2 + }, +/obj/structure/alien/weeds, +/turf/open/floor/plasteel/airless{ + icon_state = "floorscorched1" + }, +/area/mine/abandoned) +"bo" = ( +/obj/structure/alien/weeds/node, +/turf/open/floor/plasteel/airless{ + icon_state = "floorscorched2" + }, +/area/mine/abandoned) +"bp" = ( +/obj/structure/table, +/obj/structure/alien/weeds, +/turf/open/floor/plasteel/airless, +/area/mine/abandoned) +"bq" = ( +/obj/item/weapon/shard, +/turf/open/floor/plasteel/airless{ + icon_state = "floorscorched2" + }, +/area/mine/abandoned) +"br" = ( +/obj/item/weapon/shard{ + icon_state = "small" + }, +/obj/structure/alien/weeds, +/turf/open/floor/plasteel/airless, +/area/mine/abandoned) +"bs" = ( +/turf/open/floor/plasteel/black, +/area/mine/abandoned) +"bt" = ( +/obj/structure/sink{ + pixel_y = 30 + }, +/turf/open/floor/plasteel/floorgrime, +/area/mine/abandoned) +"bu" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/glass/bucket, +/turf/open/floor/plasteel/floorgrime, +/area/mine/abandoned) +"bv" = ( +/obj/structure/table, +/obj/item/weapon/paper/crumpled, +/obj/item/seeds/cherry, +/obj/item/weapon/reagent_containers/glass/bottle/nutrient/ez, +/obj/item/weapon/reagent_containers/glass/bottle/nutrient/ez, +/turf/open/floor/plasteel/floorgrime, +/area/mine/abandoned) +"bw" = ( +/obj/structure/grille, +/obj/structure/window/reinforced, +/obj/item/weapon/shard{ + icon_state = "medium" + }, +/turf/open/floor/plating/airless, +/area/mine/abandoned) +"bx" = ( +/obj/structure/alien/resin/membrane, +/obj/structure/alien/weeds, +/turf/open/floor/plating/airless, +/area/mine/abandoned) +"by" = ( +/obj/item/clothing/mask/facehugger{ + icon_state = "facehugger_dead"; + stat = 2 + }, +/obj/structure/alien/weeds, +/turf/open/floor/plasteel/airless, +/area/mine/abandoned) +"bz" = ( +/turf/open/floor/plasteel/floorgrime, +/area/mine/abandoned) +"bA" = ( +/turf/open/floor/plasteel{ + icon_state = "damaged2" + }, +/area/mine/abandoned) +"bB" = ( +/obj/machinery/door/airlock/hatch, +/turf/open/floor/plasteel/floorgrime, +/area/mine/abandoned) +"bC" = ( +/obj/structure/alien/weeds, +/obj/structure/alien/weeds, +/turf/open/floor/plasteel/airless, +/area/mine/abandoned) +"bD" = ( +/obj/structure/alien/weeds/node, +/turf/open/floor/plasteel/airless, +/area/mine/abandoned) +"bE" = ( +/obj/effect/decal/remains/xeno, +/obj/structure/alien/weeds, +/turf/open/floor/plasteel/airless{ + icon_state = "damaged2" + }, +/area/mine/abandoned) +"bF" = ( +/turf/open/floor/plasteel{ + icon_state = "damaged3" + }, +/area/mine/abandoned) +"bG" = ( +/obj/effect/decal/remains/human, +/obj/item/clothing/suit/xenos, +/obj/item/clothing/head/xenos, +/turf/open/floor/plasteel{ + icon_state = "damaged2" + }, +/area/mine/abandoned) +"bH" = ( +/obj/structure/table, +/obj/item/stack/sheet/mineral/sandstone{ + amount = 30 + }, +/turf/open/floor/plasteel{ + icon_state = "damaged3" + }, +/area/mine/abandoned) +"bI" = ( +/obj/structure/alien/weeds, +/turf/open/floor/plasteel/airless/floorgrime, +/area/mine/abandoned) +"bJ" = ( +/obj/structure/alien/resin/wall, +/turf/open/floor/plating/airless, +/area/mine/abandoned) +"bK" = ( +/obj/effect/decal/remains/xeno, +/turf/open/floor/plasteel/airless, +/area/mine/abandoned) +"bL" = ( +/turf/closed/mineral/random/labormineral, +/area/mine/unexplored) +"bM" = ( +/obj/structure/alien/weeds/node, +/turf/open/floor/plasteel/airless/floorgrime, +/area/mine/abandoned) +"bN" = ( +/obj/structure/alien/weeds, +/turf/open/floor/plasteel/airless{ + icon_state = "damaged4" + }, +/area/mine/abandoned) +"bO" = ( +/obj/structure/grille, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/mine/abandoned) +"bP" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/item/weapon/shard, +/turf/open/floor/plating/airless, +/area/mine/abandoned) +"bQ" = ( +/obj/machinery/door/airlock/glass, +/turf/open/floor/plasteel/airless/asteroid, +/area/mine/abandoned) +"bR" = ( +/obj/structure/grille, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/mine/abandoned) +"bS" = ( +/turf/open/floor/plating/asteroid/airless, +/area/mine/explored) +"bT" = ( +/obj/effect/decal/remains/human, +/obj/structure/alien/weeds, +/turf/open/floor/plasteel/airless, +/area/mine/abandoned) +"bU" = ( +/obj/structure/alien/weeds/node, +/turf/open/floor/plasteel/airless{ + icon_state = "damaged2" + }, +/area/mine/abandoned) +"bV" = ( +/turf/open/floor/plasteel/airless/asteroid, +/area/mine/abandoned) +"bW" = ( +/obj/structure/rack, +/turf/open/floor/plasteel/airless/asteroid, +/area/mine/abandoned) +"bX" = ( +/turf/open/floor/plasteel{ + icon_plating = "asteroid"; + icon_state = "asteroid"; + name = "Asteroid" + }, +/area/mine/unexplored) +"bY" = ( +/obj/item/weapon/rack_parts, +/turf/open/floor/plasteel/airless/asteroid, +/area/mine/abandoned) +"bZ" = ( +/obj/structure/girder/displaced, +/turf/open/floor/plating/airless/astplate, +/area/mine/abandoned) +"ca" = ( +/obj/item/clothing/under/soviet, +/obj/item/clothing/head/ushanka, +/turf/open/floor/plasteel{ + icon_plating = "asteroid"; + icon_state = "asteroid"; + name = "Asteroid" + }, +/area/mine/unexplored) +"cb" = ( +/obj/effect/decal/remains/human, +/turf/open/floor/plasteel{ + icon_plating = "asteroid"; + icon_state = "asteroid"; + name = "Asteroid" + }, +/area/mine/unexplored) +"cc" = ( +/obj/structure/alien/resin/wall, +/turf/open/floor/plasteel/airless/floorgrime, +/area/mine/abandoned) +"cd" = ( +/turf/open/floor/plasteel/airless/floorgrime, +/area/mine/abandoned) +"ce" = ( +/obj/structure/girder, +/turf/open/floor/plating/airless/astplate, +/area/mine/abandoned) +"cf" = ( +/obj/item/weapon/storage/toolbox/syndicate, +/obj/structure/alien/weeds/node, +/turf/open/floor/plasteel/airless{ + icon_state = "floorscorched1" + }, +/area/mine/abandoned) +"cg" = ( +/obj/effect/decal/remains/xeno, +/obj/item/clothing/suit/space/syndicate/black/red, +/obj/item/clothing/head/helmet/space/syndicate/black/red, +/obj/structure/alien/weeds, +/turf/open/floor/plasteel/airless{ + icon_state = "damaged4" + }, +/area/mine/abandoned) +"ch" = ( +/obj/machinery/door/airlock/external{ + name = "External Airlock"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/airless/asteroid, +/area/mine/abandoned) +"ci" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/grille/broken, +/obj/item/weapon/shard{ + icon_state = "small" + }, +/obj/item/stack/rods, +/turf/open/floor/plating/airless, +/area/mine/abandoned) +"cj" = ( +/turf/open/floor/plating/asteroid/airless, +/area/mine/unexplored) +"ck" = ( +/obj/effect/spawner/lootdrop/crate_spawner, +/turf/open/floor/plasteel/airless/asteroid, +/area/mine/abandoned) +"cl" = ( +/turf/open/floor/plasteel/airless/asteroid/warning{ + dir = 2 + }, +/area/mine/abandoned) +"cm" = ( +/obj/item/weapon/shard{ + icon_state = "medium" + }, +/turf/open/floor/plasteel/airless/asteroid/warning{ + dir = 2 + }, +/area/mine/abandoned) +"cn" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/grille/broken, +/obj/item/stack/rods, +/obj/item/weapon/shard, +/turf/open/floor/plating/airless/astplate, +/area/mine/abandoned) +"co" = ( +/obj/structure/grille, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating/airless/astplate, +/area/mine/abandoned) +"cp" = ( +/turf/open/floor/plasteel/airless/asteroid/warning{ + dir = 10 + }, +/area/mine/unexplored) +"cq" = ( +/turf/open/floor/plasteel/airless/asteroid/warning{ + dir = 2 + }, +/area/mine/unexplored) +"cr" = ( +/turf/open/floor/plasteel/airless/asteroid/warning{ + dir = 6 + }, +/area/mine/unexplored) +"cs" = ( +/turf/open/floor/plating/airless/astplate, +/area/mine/unexplored) +"ct" = ( +/turf/closed/wall/r_wall, +/area/mine/laborcamp) +"cu" = ( +/obj/effect/spawner/lootdrop/crate_spawner, +/turf/open/floor/plating/asteroid/airless/cave, +/area/mine/unexplored) +"cv" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/mine/laborcamp) +"cw" = ( +/obj/structure/rack{ + dir = 1 + }, +/obj/item/clothing/glasses/meson, +/obj/item/device/flashlight, +/obj/item/weapon/storage/bag/ore, +/obj/machinery/atmospherics/pipe/simple{ + dir = 9 + }, +/obj/item/weapon/shovel{ + attack_verb = list("ineffectively hit"); + desc = "A large tool for digging and moving dirt. Was modified with extra safety, making it ineffective as a weapon."; + force = 1; + name = "safety shovel"; + pixel_x = -5; + throwforce = 1 + }, +/obj/item/weapon/pickaxe{ + attack_verb = list("ineffectively hit"); + desc = "A pickaxe designed to be only effective at digging rock and ore, very ineffective as a weapon."; + force = 1; + name = "safety pickaxe"; + pixel_x = 5; + throwforce = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/mine/laborcamp) +"cx" = ( +/obj/structure/rack{ + dir = 1 + }, +/obj/item/clothing/glasses/meson, +/obj/item/device/flashlight, +/obj/item/weapon/storage/bag/ore, +/obj/machinery/atmospherics/pipe/simple{ + dir = 9 + }, +/obj/item/weapon/shovel{ + attack_verb = list("ineffectively hit"); + desc = "A large tool for digging and moving dirt. Was modified with extra safety, making it ineffective as a weapon."; + force = 1; + name = "safety shovel"; + pixel_x = -5; + throwforce = 1 + }, +/obj/item/weapon/pickaxe{ + attack_verb = list("ineffectively hit"); + desc = "A pickaxe designed to be only effective at digging rock and ore, very ineffective as a weapon."; + force = 1; + name = "safety pickaxe"; + pixel_x = 5; + throwforce = 1 + }, +/obj/machinery/camera{ + c_tag = "Labor Camp Storage"; + dir = 8; + network = list("Labor") + }, +/turf/open/floor/plasteel/floorgrime, +/area/mine/laborcamp) +"cy" = ( +/turf/closed/mineral/random/labormineral, +/area/mine/explored) +"cz" = ( +/obj/machinery/light, +/turf/open/floor/plating/asteroid/airless, +/area/mine/north_outpost) +"cA" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/o2{ + pixel_x = 2; + pixel_y = 2 + }, +/turf/open/floor/plasteel/white, +/area/mine/laborcamp) +"cB" = ( +/obj/structure/table, +/obj/item/device/healthanalyzer, +/obj/item/stack/medical/bruise_pack, +/turf/open/floor/plasteel/white, +/area/mine/laborcamp) +"cC" = ( +/obj/structure/sign/bluecross_2{ + pixel_y = 32 + }, +/obj/structure/chair, +/turf/open/floor/plasteel/white, +/area/mine/laborcamp) +"cD" = ( +/obj/machinery/camera{ + c_tag = "Labor Camp Medical"; + dir = 8; + network = list("Labor") + }, +/obj/structure/bed, +/obj/item/weapon/bedsheet/medical, +/turf/open/floor/plasteel/white, +/area/mine/laborcamp) +"cE" = ( +/turf/closed/wall, +/area/mine/laborcamp) +"cF" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/mine/laborcamp) +"cG" = ( +/turf/open/floor/plasteel/floorgrime, +/area/mine/laborcamp) +"cH" = ( +/turf/closed/wall, +/area/mine/explored) +"cI" = ( +/turf/open/floor/plating/asteroid, +/area/mine/explored) +"cJ" = ( +/turf/closed/wall/rust, +/area/mine/unexplored) +"cK" = ( +/obj/structure/lattice, +/obj/structure/window/reinforced, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/space, +/area/mine/north_outpost) +"cL" = ( +/obj/structure/lattice, +/obj/structure/window/reinforced, +/turf/open/space, +/area/mine/explored) +"cM" = ( +/obj/structure/lattice, +/obj/structure/window/reinforced, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/space, +/area/mine/north_outpost) +"cN" = ( +/turf/closed/wall/rust, +/area/mine/explored) +"cO" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plating/asteroid/airless, +/area/mine/north_outpost) +"cP" = ( +/obj/structure/sink{ + icon_state = "sink"; + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 2 + }, +/area/mine/laborcamp) +"cQ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 2 + }, +/area/mine/laborcamp) +"cR" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=1-Storage"; + location = "Sleeper" + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 2 + }, +/area/mine/laborcamp) +"cS" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/bed/roller, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 2 + }, +/area/mine/laborcamp) +"cT" = ( +/obj/machinery/atmospherics/pipe/simple, +/obj/structure/closet/crate/internals, +/obj/item/weapon/tank/internals/emergency_oxygen, +/obj/item/weapon/tank/internals/emergency_oxygen, +/obj/item/weapon/tank/internals/emergency_oxygen, +/obj/item/weapon/tank/internals/emergency_oxygen, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/turf/open/floor/plasteel/floorgrime, +/area/mine/laborcamp) +"cU" = ( +/obj/machinery/light/small, +/turf/open/floor/plasteel/floorgrime, +/area/mine/laborcamp) +"cV" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=2-NMine"; + location = "1-Storage" + }, +/mob/living/simple_animal/bot/secbot/beepsky{ + desc = "Powered by tears and swet of laborer."; + name = "Prison Ofitser" + }, +/turf/open/floor/plasteel/asteroid, +/area/mine/laborcamp) +"cW" = ( +/obj/structure/plasticflaps/mining, +/turf/open/floor/plasteel/asteroid, +/area/mine/laborcamp) +"cX" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=3-SMine"; + location = "2-NMine" + }, +/turf/open/floor/plasteel/asteroid, +/area/mine/laborcamp) +"cY" = ( +/turf/open/floor/plating/astplate{ + icon_plating = "asteroidplating" + }, +/area/mine/explored) +"cZ" = ( +/obj/effect/decal/remains/human, +/turf/open/floor/plating/asteroid, +/area/mine/explored) +"da" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plasteel/airless, +/area/mine/explored) +"db" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating/airless{ + icon_state = "platingdmg3" + }, +/area/mine/explored) +"dc" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating/airless{ + icon_state = "platingdmg1" + }, +/area/mine/explored) +"dd" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/mine/explored) +"de" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/mine/laborcamp) +"df" = ( +/obj/machinery/door/airlock/glass_medical{ + id_tag = null; + name = "Infirmary"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/whiteblue, +/area/mine/laborcamp) +"dg" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/mine/laborcamp) +"dh" = ( +/obj/machinery/atmospherics/pipe/simple, +/turf/closed/wall, +/area/mine/laborcamp) +"di" = ( +/obj/machinery/door/airlock{ + name = "Labor Camp Storage" + }, +/turf/open/floor/plasteel/floorgrime, +/area/mine/laborcamp) +"dj" = ( +/obj/structure/plasticflaps/mining, +/turf/open/floor/plating/astplate{ + icon_plating = "asteroidplating" + }, +/area/mine/explored) +"dk" = ( +/turf/closed/wall/r_wall, +/area/mine/explored) +"dl" = ( +/obj/structure/girder/reinforced, +/turf/open/floor/plating/astplate{ + icon_plating = "asteroidplating" + }, +/area/mine/explored) +"dm" = ( +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/airless, +/area/mine/explored) +"dn" = ( +/obj/structure/window/reinforced, +/turf/open/floor/plating/airless, +/area/mine/explored) +"do" = ( +/obj/structure/table, +/obj/item/trash/plate, +/obj/item/weapon/kitchen/fork, +/turf/open/floor/plasteel/floorgrime, +/area/mine/laborcamp) +"dp" = ( +/obj/effect/decal/cleanable/cobweb2, +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/floorgrime, +/area/mine/laborcamp) +"dq" = ( +/obj/machinery/atmospherics/pipe/simple, +/turf/open/floor/plasteel/floorgrime, +/area/mine/laborcamp) +"dr" = ( +/obj/machinery/status_display{ + density = 0; + layer = 4; + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plasteel/floorgrime, +/area/mine/laborcamp) +"ds" = ( +/obj/machinery/atmospherics/pipe/simple, +/obj/item/device/radio/intercom{ + desc = "Talk through this. It looks like it has been modified to not broadcast."; + dir = 2; + name = "Prison Intercom (General)"; + pixel_x = 0; + pixel_y = 24; + prison_radio = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/mine/laborcamp) +"dt" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/mine/laborcamp) +"du" = ( +/turf/open/floor/plasteel/asteroid, +/area/mine/explored) +"dv" = ( +/obj/structure/lattice, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/space, +/area/mine/north_outpost) +"dw" = ( +/obj/structure/lattice, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/space, +/area/mine/explored) +"dx" = ( +/obj/structure/lattice, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/space, +/area/mine/north_outpost) +"dy" = ( +/turf/closed/wall, +/area/mine/north_outpost) +"dz" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE" + }, +/turf/closed/wall, +/area/mine/north_outpost) +"dA" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/mine/laborcamp) +"dB" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=7-Sleeper"; + location = "6-Vending" + }, +/mob/living/simple_animal/mouse, +/turf/open/floor/plasteel/floorgrime, +/area/mine/laborcamp) +"dC" = ( +/obj/machinery/door/airlock{ + name = "Vending" + }, +/turf/open/floor/plasteel/floorgrime, +/area/mine/laborcamp) +"dD" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/floorgrime, +/area/mine/laborcamp) +"dE" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/mine/laborcamp) +"dF" = ( +/obj/machinery/atmospherics/pipe/manifold{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/mine/laborcamp) +"dG" = ( +/obj/machinery/door/poddoor/preopen{ + id = "Labor"; + name = "labor camp blast door" + }, +/obj/machinery/door/airlock{ + name = "Labor Camp External Access" + }, +/turf/open/floor/plasteel/floorgrime, +/area/mine/laborcamp) +"dH" = ( +/obj/structure/ore_box, +/turf/open/floor/plating/asteroid, +/area/mine/explored) +"dI" = ( +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/power/port_gen/pacman{ + anchored = 1 + }, +/turf/open/floor/plating, +/area/mine/north_outpost) +"dJ" = ( +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/mine/north_outpost) +"dK" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/turf/open/floor/plating, +/area/mine/north_outpost) +"dL" = ( +/obj/machinery/atmospherics/components/unary/tank/air, +/turf/open/floor/plating, +/area/mine/north_outpost) +"dM" = ( +/obj/machinery/vending/sustenance, +/turf/open/floor/plasteel/floorgrime, +/area/mine/laborcamp) +"dN" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/mine/laborcamp) +"dO" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 4 + }, +/turf/closed/wall, +/area/mine/laborcamp) +"dP" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23; + pixel_y = 0 + }, +/turf/open/floor/plasteel/floorgrime, +/area/mine/laborcamp) +"dQ" = ( +/obj/machinery/flasher{ + id = "Labor"; + pixel_x = 0; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/manifold{ + dir = 4 + }, +/turf/closed/wall, +/area/mine/laborcamp) +"dR" = ( +/obj/machinery/conveyor_switch/oneway{ + id = "gulag" + }, +/turf/open/floor/plasteel/floorgrime, +/area/mine/laborcamp) +"dS" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/asteroid/warning, +/area/mine/laborcamp) +"dT" = ( +/turf/open/floor/plasteel/asteroid/warning, +/area/mine/explored) +"dU" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plating, +/area/mine/north_outpost) +"dV" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/mine/north_outpost) +"dW" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/item/weapon/storage/box/lights/bulbs, +/obj/machinery/atmospherics/pipe/simple{ + dir = 6 + }, +/turf/open/floor/plating, +/area/mine/north_outpost) +"dX" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + dir = 9 + }, +/obj/machinery/meter, +/turf/open/floor/plating, +/area/mine/north_outpost) +"dY" = ( +/obj/machinery/light_switch{ + pixel_x = -27; + pixel_y = 0 + }, +/turf/open/floor/plasteel/floorgrime, +/area/mine/laborcamp) +"dZ" = ( +/obj/machinery/camera{ + c_tag = "Labor Camp Central"; + network = list("Labor") + }, +/obj/machinery/atmospherics/pipe/manifold{ + dir = 8 + }, +/turf/open/floor/plasteel/floorgrime, +/area/mine/laborcamp) +"ea" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/floorgrime, +/area/mine/laborcamp) +"eb" = ( +/obj/machinery/conveyor{ + dir = 2; + id = "gulag" + }, +/turf/open/floor/plasteel/floorgrime, +/area/mine/laborcamp) +"ec" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "gulag" + }, +/obj/structure/plasticflaps/mining, +/turf/open/floor/plasteel/floorgrime, +/area/mine/laborcamp) +"ed" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "gulag" + }, +/turf/open/floor/plating/astplate, +/area/mine/laborcamp) +"ee" = ( +/obj/machinery/mineral/unloading_machine{ + dir = 1; + input_dir = 4; + output_dir = 8 + }, +/turf/open/floor/plating/astplate, +/area/mine/laborcamp) +"ef" = ( +/obj/structure/ore_box, +/turf/open/floor/plasteel/asteroid/warning{ + dir = 8 + }, +/area/mine/explored) +"eg" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/turf/open/floor/plating/asteroid, +/area/mine/explored) +"eh" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/door/airlock/maintenance{ + name = "Mining Station Maintenance"; + req_access_txt = "54" + }, +/turf/open/floor/plating, +/area/mine/north_outpost) +"ei" = ( +/obj/machinery/atmospherics/pipe/simple, +/turf/closed/wall, +/area/mine/north_outpost) +"ej" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Labor Camp Shuttle Security Airlock"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/floorgrime, +/area/mine/laborcamp) +"ek" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/button/door{ + id = "Labor"; + name = "Labor Camp Lockdown"; + pixel_x = 0; + pixel_y = 28; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/floorgrime, +/area/mine/laborcamp) +"el" = ( +/obj/machinery/door/poddoor/preopen{ + id = "Labor"; + name = "labor camp blast door" + }, +/turf/open/floor/plasteel/floorgrime, +/area/mine/laborcamp) +"em" = ( +/turf/open/floor/plasteel, +/area/mine/laborcamp) +"en" = ( +/obj/machinery/mineral/processing_unit_console{ + machinedir = 6 + }, +/turf/closed/wall, +/area/mine/laborcamp) +"eo" = ( +/obj/structure/plasticflaps, +/obj/machinery/conveyor{ + dir = 2; + id = "gulag" + }, +/turf/open/floor/plasteel/floorgrime, +/area/mine/laborcamp) +"ep" = ( +/obj/machinery/camera{ + c_tag = "Labor Camp External"; + dir = 4; + network = list("Labor") + }, +/turf/open/floor/plasteel/asteroid/warning{ + dir = 1 + }, +/area/mine/explored) +"eq" = ( +/turf/open/floor/plasteel/asteroid/warning{ + dir = 1 + }, +/area/mine/explored) +"er" = ( +/obj/machinery/conveyor_switch/oneway{ + id = "gulag" + }, +/turf/open/floor/plasteel/asteroid/warning{ + dir = 1 + }, +/area/mine/explored) +"es" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating/asteroid, +/area/mine/explored) +"et" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/mine/north_outpost) +"eu" = ( +/obj/structure/table, +/obj/item/weapon/pickaxe, +/turf/open/floor/plasteel, +/area/mine/north_outpost) +"ev" = ( +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/mine/north_outpost) +"ew" = ( +/obj/structure/table, +/obj/machinery/microwave, +/turf/open/floor/plasteel, +/area/mine/north_outpost) +"ex" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/mine/north_outpost) +"ey" = ( +/obj/machinery/atmospherics/pipe/simple, +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/north_outpost) +"ez" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/turf/open/floor/plasteel, +/area/mine/north_outpost) +"eA" = ( +/turf/open/floor/plasteel, +/area/mine/north_outpost) +"eB" = ( +/turf/open/floor/plasteel/loadingarea{ + dir = 4 + }, +/area/mine/north_outpost) +"eC" = ( +/obj/machinery/mineral/unloading_machine{ + dir = 2; + output_dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/mine/north_outpost) +"eD" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "mining_north" + }, +/turf/open/floor/plasteel/floorgrime, +/area/mine/north_outpost) +"eE" = ( +/obj/machinery/disposal/deliveryChute{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/floorgrime, +/area/mine/north_outpost) +"eF" = ( +/obj/machinery/mineral/stacking_unit_console{ + machinedir = 2 + }, +/turf/closed/wall, +/area/mine/laborcamp) +"eG" = ( +/obj/machinery/mineral/processing_unit{ + dir = 1; + output_dir = 2 + }, +/turf/open/floor/plasteel/floorgrime, +/area/mine/laborcamp) +"eH" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating/asteroid, +/area/mine/laborcamp) +"eI" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/airless, +/area/mine/north_outpost) +"eJ" = ( +/obj/structure/table, +/obj/item/weapon/shovel, +/turf/open/floor/plasteel, +/area/mine/north_outpost) +"eK" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/donkpockets, +/turf/open/floor/plasteel, +/area/mine/north_outpost) +"eL" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/mine/north_outpost) +"eM" = ( +/obj/machinery/atmospherics/pipe/simple, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel, +/area/mine/north_outpost) +"eN" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + dir = 4; + name = "Mining North Outpost APC"; + pixel_x = 26; + pixel_y = 0 + }, +/obj/machinery/conveyor_switch{ + id = "mining_north" + }, +/obj/machinery/camera{ + c_tag = "North Outpost"; + dir = 8; + network = list("MINE") + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/mine/north_outpost) +"eO" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/closed/wall, +/area/mine/north_outpost) +"eP" = ( +/obj/machinery/conveyor{ + backwards = 2; + dir = 2; + forwards = 1; + id = "mining_north" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/plasticflaps/mining, +/turf/open/floor/plasteel, +/area/mine/north_outpost) +"eQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/mine/north_outpost) +"eR" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/closed/wall, +/area/mine/north_outpost) +"eS" = ( +/obj/machinery/computer/shuttle/labor/one_way, +/turf/open/floor/plasteel/floorgrime, +/area/mine/laborcamp) +"eT" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "gulag" + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=6-Vending"; + location = "5-Central" + }, +/turf/open/floor/plasteel/floorgrime, +/area/mine/laborcamp) +"eU" = ( +/obj/machinery/mineral/stacking_machine{ + dir = 1; + input_dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/mine/laborcamp) +"eV" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "gulag" + }, +/turf/open/floor/plasteel/floorgrime, +/area/mine/laborcamp) +"eW" = ( +/obj/machinery/conveyor{ + dir = 10; + icon_state = "conveyor0"; + id = "gulag" + }, +/turf/open/floor/plasteel/floorgrime, +/area/mine/laborcamp) +"eX" = ( +/obj/structure/closet/crate, +/turf/open/floor/plasteel/asteroid, +/area/mine/explored) +"eY" = ( +/obj/item/stack/sheet/metal{ + amount = 5 + }, +/obj/structure/closet/crate, +/turf/open/floor/plasteel/asteroid, +/area/mine/explored) +"eZ" = ( +/obj/structure/table, +/obj/item/weapon/storage/backpack/satchel, +/obj/item/clothing/glasses/meson, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/item/device/radio/intercom{ + dir = 8; + name = "Station Intercom (General)"; + pixel_x = -28 + }, +/turf/open/floor/plasteel, +/area/mine/north_outpost) +"fa" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel, +/area/mine/north_outpost) +"fb" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/north_outpost) +"fc" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 4 + }, +/obj/machinery/door/airlock/glass_mining{ + name = "Break Room"; + req_access_txt = "54" + }, +/turf/open/floor/plasteel, +/area/mine/north_outpost) +"fd" = ( +/obj/machinery/atmospherics/pipe/manifold{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/north_outpost) +"fe" = ( +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/mine/north_outpost) +"ff" = ( +/obj/machinery/door/window/northleft{ + dir = 8; + name = "Pneumatic Tube Access" + }, +/obj/machinery/disposal/deliveryChute{ + dir = 8; + pixel_x = 8; + pixel_y = 0 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel/bot, +/area/mine/north_outpost) +"fg" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/closed/wall, +/area/mine/north_outpost) +"fh" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/mine/explored) +"fi" = ( +/turf/open/floor/plasteel/airless/asteroid/warning{ + dir = 1 + }, +/area/mine/north_outpost) +"fj" = ( +/obj/machinery/conveyor_switch{ + id = "mining_north" + }, +/turf/open/floor/plasteel/airless/asteroid/warning{ + dir = 1 + }, +/area/mine/north_outpost) +"fk" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating/airless/astplate, +/area/mine/north_outpost) +"fl" = ( +/turf/closed/wall/r_wall, +/area/mine/laborcamp/security) +"fm" = ( +/turf/open/floor/plasteel/floorgrime, +/area/mine/laborcamp/security) +"fn" = ( +/obj/machinery/camera{ + c_tag = "Labor Camp Security Hallway"; + dir = 8; + network = list("Labor"); + pixel_x = 0; + pixel_y = 0 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/mine/laborcamp/security) +"fo" = ( +/obj/machinery/atmospherics/pipe/simple, +/turf/closed/wall, +/area/mine/laborcamp/security) +"fp" = ( +/obj/structure/plasticflaps/mining, +/turf/open/floor/plating, +/area/mine/laborcamp/security) +"fq" = ( +/turf/closed/wall, +/area/mine/laborcamp/security) +"fr" = ( +/obj/structure/girder, +/turf/open/floor/plating/astplate{ + icon_plating = "asteroidplating" + }, +/area/mine/laborcamp/security) +"fs" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical, +/turf/open/floor/plasteel, +/area/mine/north_outpost) +"ft" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/north_outpost) +"fu" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel, +/area/mine/north_outpost) +"fv" = ( +/obj/structure/rack, +/turf/open/floor/plasteel/bot, +/area/mine/north_outpost) +"fw" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/mine/north_outpost) +"fx" = ( +/obj/docking_port/stationary{ + dir = 8; + dwidth = 2; + height = 5; + id = "laborcamp_away"; + name = "labor camp"; + width = 9 + }, +/turf/open/space, +/area/space) +"fy" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Labor Camp Shuttle Prisoner Airlock"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"fz" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Labor Camp Shuttle Prisoner Airlock"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/floorgrime, +/area/mine/laborcamp/security) +"fA" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 6 + }, +/turf/open/floor/plasteel/floorgrime, +/area/mine/laborcamp/security) +"fB" = ( +/obj/machinery/atmospherics/pipe/manifold, +/obj/machinery/door/airlock/glass_security{ + name = "Labor Camp Backroom"; + req_access_txt = "2" + }, +/turf/open/floor/plating, +/area/mine/laborcamp/security) +"fC" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/mine/laborcamp/security) +"fD" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/mine/laborcamp/security) +"fE" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 2 + }, +/area/mine/laborcamp/security) +"fF" = ( +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Labor Camp APC"; + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple{ + dir = 10 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=5-Central"; + location = "4-Maint" + }, +/turf/open/floor/plating, +/area/mine/laborcamp) +"fG" = ( +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/mine/laborcamp/security) +"fH" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Labor Camp External Access"; + req_access_txt = "2" + }, +/turf/open/floor/plating, +/area/mine/laborcamp/security) +"fI" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel, +/area/mine/north_outpost) +"fJ" = ( +/obj/machinery/recharge_station, +/turf/open/floor/plasteel, +/area/mine/north_outpost) +"fK" = ( +/obj/structure/tank_dispenser/oxygen, +/turf/open/floor/plasteel, +/area/mine/north_outpost) +"fL" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Labor Camp Monitoring"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"fM" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE" + }, +/turf/closed/wall, +/area/mine/laborcamp/security) +"fN" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Labor Camp Maintenance"; + req_access_txt = "2" + }, +/turf/open/floor/plating, +/area/mine/laborcamp/security) +"fO" = ( +/obj/structure/plasticflaps/mining, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple, +/turf/open/floor/plating, +/area/mine/laborcamp/security) +"fP" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/asteroid, +/area/mine/explored) +"fQ" = ( +/obj/machinery/door/airlock/external{ + name = "Mining North Outpost Airlock"; + req_access_txt = "54" + }, +/turf/open/floor/plasteel, +/area/mine/north_outpost) +"fR" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"fS" = ( +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"fT" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/light_switch{ + pixel_y = 28 + }, +/obj/machinery/status_display{ + density = 0; + layer = 4; + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"fU" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"fV" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/power/apc{ + dir = 4; + name = "Labor Camp Security APC"; + pixel_x = 24; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple, +/obj/machinery/camera{ + c_tag = "Labor Camp Monitoring"; + network = list("Labor") + }, +/obj/machinery/light_switch{ + pixel_y = 28 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"fW" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/closed/wall, +/area/mine/laborcamp/security) +"fX" = ( +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/mine/laborcamp/security) +"fY" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/item/weapon/storage/box/lights/mixed, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/mine/laborcamp/security) +"fZ" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/mine/laborcamp/security) +"ga" = ( +/obj/machinery/atmospherics/pipe/manifold{ + dir = 8 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/mine/laborcamp/security) +"gb" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 4 + }, +/turf/open/floor/plating, +/area/mine/laborcamp/security) +"gc" = ( +/obj/structure/plasticflaps/mining, +/turf/closed/wall, +/area/mine/laborcamp/security) +"gd" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 4 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=4-Maint"; + location = "3-SMine" + }, +/turf/open/floor/plasteel/asteroid, +/area/mine/laborcamp) +"ge" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 4 + }, +/obj/structure/closet/crate, +/turf/open/floor/plasteel/asteroid, +/area/mine/explored) +"gf" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/obj/structure/closet/crate, +/turf/open/floor/plating/asteroid, +/area/mine/explored) +"gg" = ( +/obj/machinery/mech_bay_recharge_port, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/airless/asteroid, +/area/mine/north_outpost) +"gh" = ( +/turf/open/floor/mech_bay_recharge_floor/airless, +/area/mine/north_outpost) +"gi" = ( +/obj/machinery/computer/mech_bay_power_console, +/turf/open/floor/plasteel/airless/asteroid, +/area/mine/north_outpost) +"gj" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/north_outpost) +"gk" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel, +/area/mine/north_outpost) +"gl" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE" + }, +/turf/closed/wall/r_wall, +/area/mine/laborcamp/security) +"gm" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"gn" = ( +/obj/structure/chair/office/dark, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"go" = ( +/obj/machinery/button/door{ + id = "Labor"; + name = "Labor Camp Lockdown"; + pixel_x = 28; + pixel_y = 7; + req_access_txt = "2" + }, +/obj/machinery/button/flasher{ + id = "Labor"; + pixel_x = 26; + pixel_y = -3 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"gp" = ( +/obj/machinery/power/terminal{ + icon_state = "term"; + dir = 1 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plating, +/area/mine/laborcamp/security) +"gq" = ( +/turf/open/floor/plating, +/area/mine/laborcamp/security) +"gr" = ( +/obj/machinery/atmospherics/pipe/manifold{ + dir = 8 + }, +/obj/machinery/meter, +/turf/open/floor/plating, +/area/mine/laborcamp/security) +"gs" = ( +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 8 + }, +/turf/open/floor/plating, +/area/mine/laborcamp/security) +"gt" = ( +/turf/open/floor/plating/airless/astplate, +/area/mine/north_outpost) +"gu" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = -32 + }, +/turf/open/floor/plasteel/warning, +/area/mine/north_outpost) +"gv" = ( +/turf/open/floor/plasteel/warning, +/area/mine/north_outpost) +"gw" = ( +/obj/structure/ore_box, +/turf/open/floor/plasteel/warning, +/area/mine/north_outpost) +"gx" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/mine/laborcamp/security) +"gy" = ( +/obj/structure/table, +/obj/machinery/recharger, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"gz" = ( +/obj/machinery/computer/secure_data, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"gA" = ( +/obj/machinery/computer/security{ + name = "Labor Camp Monitoring"; + network = list("Labor") + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"gB" = ( +/obj/machinery/computer/prisoner, +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"gC" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/weapon/pen, +/turf/open/floor/plasteel, +/area/mine/laborcamp/security) +"gD" = ( +/obj/machinery/space_heater, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/mine/laborcamp/security) +"gE" = ( +/obj/machinery/power/port_gen/pacman{ + anchored = 1 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/mine/laborcamp/security) +"gF" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating, +/area/mine/laborcamp/security) +"gG" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + dir = 5 + }, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/mine/laborcamp/security) +"gH" = ( +/obj/machinery/door/airlock/external{ + name = "Mining North Outpost Airlock"; + req_access_txt = "54" + }, +/turf/open/floor/plasteel/airless/asteroid, +/area/mine/north_outpost) +"gI" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plating, +/area/mine/explored) +"gJ" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/mine/laborcamp/security) +"gK" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/mine/laborcamp/security) +"gL" = ( +/obj/structure/grille, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/structure/cable, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/mine/laborcamp/security) +"gM" = ( +/turf/open/floor/plasteel/airless/asteroid/warning{ + dir = 10 + }, +/area/mine/explored) +"gN" = ( +/turf/open/floor/plasteel/airless/asteroid/warning{ + dir = 2 + }, +/area/mine/explored) +"gO" = ( +/turf/open/floor/plasteel/airless/asteroid/warning{ + dir = 6 + }, +/area/mine/explored) +"gP" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/airless/asteroid/warning{ + dir = 1 + }, +/area/mine/north_outpost) +"gQ" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/airless/asteroid/warning{ + dir = 1 + }, +/area/mine/explored) +"gR" = ( +/turf/open/floor/plasteel/airless/asteroid/warning{ + dir = 5 + }, +/area/mine/explored) +"gS" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/airless/asteroid/warning{ + dir = 2 + }, +/area/mine/explored) +"gT" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/airless/astplate, +/area/mine/explored) +"gU" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plating/airless/astplate, +/area/mine/explored) +"gV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/airless/astplate, +/area/mine/explored) +"gW" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plating/airless/astplate, +/area/mine/explored) +"gX" = ( +/turf/open/floor/plasteel/airless/asteroid/warning{ + dir = 9 + }, +/area/mine/explored) +"gY" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plating/airless/astplate, +/area/mine/explored) +"gZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plating/airless/astplate, +/area/mine/explored) +"ha" = ( +/obj/structure/ore_box, +/turf/open/floor/plating/asteroid/airless, +/area/mine/explored) +"hb" = ( +/turf/closed/wall/r_wall, +/area/mine/maintenance) +"hc" = ( +/turf/open/floor/bluegrid, +/area/mine/maintenance) +"hd" = ( +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Mining Communications APC"; + pixel_x = 1; + pixel_y = 25 + }, +/turf/open/floor/plasteel/black, +/area/mine/maintenance) +"he" = ( +/obj/machinery/telecomms/relay/preset/mining, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/vault{ + dir = 1 + }, +/area/mine/maintenance) +"hf" = ( +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel/black, +/area/mine/maintenance) +"hg" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/bluegrid, +/area/mine/maintenance) +"hh" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple{ + dir = 6 + }, +/turf/open/floor/plasteel/black, +/area/mine/maintenance) +"hi" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + dir = 9 + }, +/obj/machinery/light_switch{ + pixel_y = -25 + }, +/turf/open/floor/bluegrid, +/area/mine/maintenance) +"hj" = ( +/obj/machinery/camera{ + c_tag = "Communications Relay"; + dir = 8; + network = list("MINE") + }, +/turf/open/floor/bluegrid, +/area/mine/maintenance) +"hk" = ( +/turf/open/floor/plating/airless/astplate, +/area/mine/west_outpost) +"hl" = ( +/turf/open/floor/plating/airless/astplate, +/area/mine/explored) +"hm" = ( +/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/vulgaris, +/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/vulgaris, +/turf/open/floor/plating/airless/astplate, +/area/mine/explored) +"hn" = ( +/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/libertycap, +/turf/open/floor/plating/airless/astplate, +/area/mine/explored) +"ho" = ( +/turf/closed/wall, +/area/mine/living_quarters) +"hp" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Mining Station Communications"; + req_access_txt = "48" + }, +/obj/machinery/atmospherics/pipe/simple, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel/vault, +/area/mine/maintenance) +"hq" = ( +/obj/machinery/mech_bay_recharge_port, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/airless/asteroid, +/area/mine/west_outpost) +"hr" = ( +/turf/open/floor/mech_bay_recharge_floor/airless, +/area/mine/west_outpost) +"hs" = ( +/obj/machinery/computer/mech_bay_power_console, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plasteel/airless/asteroid, +/area/mine/west_outpost) +"ht" = ( +/obj/item/clothing/under/rank/miner, +/obj/effect/decal/remains/human, +/turf/open/floor/plating/airless/astplate, +/area/mine/explored) +"hu" = ( +/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/vulgaris, +/turf/open/floor/plasteel/airless/asteroid, +/area/mine/explored) +"hv" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/brown, +/turf/open/floor/carpet, +/area/mine/living_quarters) +"hw" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "miningdorm1"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 25; + pixel_y = 0; + req_access_txt = "0"; + specialfunctions = 4 + }, +/turf/open/floor/carpet, +/area/mine/living_quarters) +"hx" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"hy" = ( +/turf/closed/wall, +/area/mine/west_outpost) +"hz" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/mine/west_outpost) +"hA" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/airless, +/area/mine/west_outpost) +"hB" = ( +/obj/structure/table, +/turf/open/floor/carpet, +/area/mine/living_quarters) +"hC" = ( +/turf/open/floor/carpet, +/area/mine/living_quarters) +"hD" = ( +/obj/machinery/door/airlock{ + id_tag = "miningdorm1"; + name = "Room 1" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"hE" = ( +/obj/structure/table, +/obj/item/weapon/pickaxe, +/turf/open/floor/plasteel, +/area/mine/west_outpost) +"hF" = ( +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/mine/west_outpost) +"hG" = ( +/obj/structure/table, +/obj/machinery/microwave, +/turf/open/floor/plasteel, +/area/mine/west_outpost) +"hH" = ( +/obj/machinery/recharge_station, +/turf/open/floor/plasteel/bot, +/area/mine/west_outpost) +"hI" = ( +/obj/structure/tank_dispenser/oxygen, +/turf/open/floor/plasteel/bot, +/area/mine/west_outpost) +"hJ" = ( +/obj/structure/rack, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/bot, +/area/mine/west_outpost) +"hK" = ( +/obj/structure/rack, +/turf/open/floor/plasteel/bot, +/area/mine/west_outpost) +"hL" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk, +/obj/machinery/door/window/northleft{ + dir = 2; + name = "Pneumatic Tube Access" + }, +/obj/machinery/disposal/deliveryChute{ + pixel_y = 5 + }, +/turf/open/floor/plasteel/bot, +/area/mine/west_outpost) +"hM" = ( +/turf/open/floor/plasteel, +/area/mine/west_outpost) +"hN" = ( +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/mine/west_outpost) +"hO" = ( +/obj/structure/grille, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = 32 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/mine/west_outpost) +"hP" = ( +/turf/open/floor/plasteel/airless/asteroid/warning{ + dir = 5 + }, +/area/mine/west_outpost) +"hQ" = ( +/obj/structure/disposalpipe/trunk, +/obj/structure/disposaloutlet{ + dir = 1 + }, +/turf/open/floor/plating/airless/astplate, +/area/mine/explored) +"hR" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"hS" = ( +/obj/structure/table, +/obj/item/weapon/shovel, +/turf/open/floor/plasteel, +/area/mine/west_outpost) +"hT" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/donkpockets, +/turf/open/floor/plasteel, +/area/mine/west_outpost) +"hU" = ( +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/mine/west_outpost) +"hV" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/mine/west_outpost) +"hW" = ( +/obj/machinery/door/airlock/external{ + name = "Mining West Outpost Airlock"; + req_access_txt = "54" + }, +/turf/open/floor/plasteel, +/area/mine/west_outpost) +"hX" = ( +/obj/machinery/door/airlock/external{ + name = "Mining West Outpost Airlock"; + req_access_txt = "54" + }, +/turf/open/floor/plasteel/airless/asteroid, +/area/mine/west_outpost) +"hY" = ( +/turf/open/floor/plasteel/airless/asteroid/warning{ + dir = 4 + }, +/area/mine/west_outpost) +"hZ" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/mineral, +/area/mine/explored) +"ia" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "miningdorm2"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 25; + pixel_y = 0; + req_access_txt = "0"; + specialfunctions = 4 + }, +/turf/open/floor/carpet, +/area/mine/living_quarters) +"ib" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/mine/living_quarters) +"ic" = ( +/obj/structure/table, +/obj/item/weapon/storage/backpack/satchel, +/obj/item/clothing/glasses/meson, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/item/device/radio/intercom{ + dir = 8; + name = "Station Intercom (General)"; + pixel_x = -28 + }, +/turf/open/floor/plasteel, +/area/mine/west_outpost) +"id" = ( +/obj/machinery/door/airlock/glass_mining{ + name = "Break Room"; + req_access_txt = "54" + }, +/turf/open/floor/plasteel, +/area/mine/west_outpost) +"ie" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/mine/west_outpost) +"if" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel, +/area/mine/west_outpost) +"ig" = ( +/obj/structure/ore_box, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/mine/west_outpost) +"ih" = ( +/turf/open/floor/plasteel/airless/asteroid/warning{ + dir = 6 + }, +/area/mine/west_outpost) +"ii" = ( +/obj/machinery/door/airlock{ + id_tag = "miningdorm2"; + name = "Room 2" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"ij" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical, +/turf/open/floor/plasteel, +/area/mine/west_outpost) +"ik" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel, +/area/mine/west_outpost) +"il" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple{ + dir = 4 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/mine/west_outpost) +"im" = ( +/obj/machinery/atmospherics/pipe/manifold{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/west_outpost) +"in" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/west_outpost) +"io" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel, +/area/mine/west_outpost) +"ip" = ( +/obj/machinery/conveyor_switch{ + id = "mining_west" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/mine/west_outpost) +"iq" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/sign/deathsposal, +/turf/closed/wall, +/area/mine/living_quarters) +"ir" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel, +/area/mine/west_outpost) +"is" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/west_outpost) +"it" = ( +/obj/machinery/power/apc{ + dir = 2; + name = "Mining West Outpost APC"; + pixel_x = 1; + pixel_y = -23 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/obj/machinery/atmospherics/pipe/simple, +/turf/open/floor/plasteel, +/area/mine/west_outpost) +"iu" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/camera{ + c_tag = "West Outpost"; + dir = 1; + network = list("MINE") + }, +/turf/open/floor/plasteel, +/area/mine/west_outpost) +"iv" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/mine/west_outpost) +"iw" = ( +/obj/machinery/airalarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/mine/west_outpost) +"ix" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/loadingarea{ + dir = 4 + }, +/area/mine/west_outpost) +"iy" = ( +/obj/machinery/mineral/unloading_machine{ + dir = 2; + output_dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/mine/west_outpost) +"iz" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "mining_west" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/mine/west_outpost) +"iA" = ( +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/disposal/deliveryChute{ + dir = 8 + }, +/turf/open/floor/plasteel/floorgrime, +/area/mine/west_outpost) +"iB" = ( +/obj/structure/grille, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/mine/west_outpost) +"iC" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/airless/asteroid/warning{ + dir = 8 + }, +/area/mine/explored) +"iD" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/airless/asteroid/warning{ + dir = 4 + }, +/area/mine/explored) +"iE" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/airless/astplate, +/area/mine/unexplored) +"iF" = ( +/obj/structure/table, +/obj/machinery/microwave{ + pixel_y = 6 + }, +/turf/open/floor/plasteel/bar, +/area/mine/living_quarters) +"iG" = ( +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plasteel/bar, +/area/mine/living_quarters) +"iH" = ( +/obj/machinery/computer/arcade, +/turf/open/floor/plasteel/bar, +/area/mine/living_quarters) +"iI" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/bar, +/area/mine/living_quarters) +"iJ" = ( +/obj/machinery/vending/cigarette, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/bar, +/area/mine/living_quarters) +"iK" = ( +/obj/machinery/vending/snack, +/turf/open/floor/plasteel/bar, +/area/mine/living_quarters) +"iL" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "miningdorm3"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 25; + pixel_y = 0; + req_access_txt = "0"; + specialfunctions = 4 + }, +/turf/open/floor/carpet, +/area/mine/living_quarters) +"iM" = ( +/obj/machinery/atmospherics/pipe/simple, +/turf/closed/wall, +/area/mine/west_outpost) +"iN" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE" + }, +/turf/closed/wall, +/area/mine/west_outpost) +"iO" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Mining Station Maintenance"; + req_access_txt = "54" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plating, +/area/mine/west_outpost) +"iP" = ( +/obj/machinery/conveyor{ + backwards = 2; + dir = 2; + forwards = 1; + id = "mining_west" + }, +/obj/structure/plasticflaps/mining, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/mine/west_outpost) +"iQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/mine/west_outpost) +"iR" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder, +/turf/open/floor/plasteel/bar, +/area/mine/living_quarters) +"iS" = ( +/turf/open/floor/plasteel/bar, +/area/mine/living_quarters) +"iT" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/bar, +/area/mine/living_quarters) +"iU" = ( +/obj/item/device/radio/intercom{ + dir = 4; + name = "Station Intercom (General)"; + pixel_x = 31 + }, +/turf/open/floor/plasteel/bar, +/area/mine/living_quarters) +"iV" = ( +/obj/machinery/door/airlock{ + id_tag = "miningdorm3"; + name = "Room 3" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"iW" = ( +/obj/structure/ore_box, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"iX" = ( +/obj/machinery/recharge_station, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"iY" = ( +/obj/structure/closet/secure_closet/miner, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"iZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/closed/wall, +/area/mine/eva) +"ja" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/closed/wall, +/area/mine/eva) +"jb" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/mine/eva) +"jc" = ( +/turf/closed/wall, +/area/mine/eva) +"jd" = ( +/obj/machinery/atmospherics/pipe/simple, +/obj/machinery/meter, +/turf/open/floor/plating, +/area/mine/west_outpost) +"je" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plating, +/area/mine/west_outpost) +"jf" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/mine/west_outpost) +"jg" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/obj/item/weapon/storage/box/lights/bulbs, +/turf/open/floor/plating, +/area/mine/west_outpost) +"jh" = ( +/turf/open/floor/plasteel/airless/asteroid/warning{ + dir = 1 + }, +/area/mine/explored) +"ji" = ( +/obj/machinery/conveyor_switch{ + id = "mining_west" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/airless/asteroid/warning{ + dir = 1 + }, +/area/mine/explored) +"jj" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/drinks/beer, +/obj/item/weapon/reagent_containers/food/drinks/beer, +/turf/open/floor/plasteel/bar, +/area/mine/living_quarters) +"jk" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/bar, +/area/mine/living_quarters) +"jl" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/drinks/beer, +/turf/open/floor/plasteel/bar, +/area/mine/living_quarters) +"jm" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/bar, +/area/mine/living_quarters) +"jn" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/bar, +/area/mine/living_quarters) +"jo" = ( +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"jp" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + on = 1 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"jq" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/table, +/obj/item/weapon/pickaxe, +/turf/open/floor/plasteel, +/area/mine/eva) +"jr" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/suit_storage_unit/mining/eva, +/turf/open/floor/plasteel, +/area/mine/eva) +"js" = ( +/obj/machinery/suit_storage_unit/mining/eva, +/turf/open/floor/plasteel, +/area/mine/eva) +"jt" = ( +/obj/machinery/light, +/turf/open/floor/plating/asteroid/airless, +/area/mine/explored) +"ju" = ( +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 1; + initialize_directions = 0; + level = 1 + }, +/turf/open/floor/plating, +/area/mine/west_outpost) +"jv" = ( +/obj/machinery/power/port_gen/pacman{ + anchored = 1 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plating, +/area/mine/west_outpost) +"jw" = ( +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/machinery/light/small, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/mine/west_outpost) +"jx" = ( +/obj/structure/cable, +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/turf/open/floor/plating, +/area/mine/west_outpost) +"jy" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/donkpockets, +/turf/open/floor/plasteel/bar, +/area/mine/living_quarters) +"jz" = ( +/obj/machinery/camera{ + c_tag = "Crew Area"; + dir = 1; + network = list("MINE") + }, +/turf/open/floor/plasteel/bar, +/area/mine/living_quarters) +"jA" = ( +/obj/item/weapon/cigbutt, +/turf/open/floor/plasteel/bar, +/area/mine/living_quarters) +"jB" = ( +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"jC" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"jD" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"jE" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"jF" = ( +/obj/machinery/mineral/equipment_vendor, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"jG" = ( +/obj/machinery/camera{ + c_tag = "Storage Room"; + dir = 1; + network = list("MINE") + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"jH" = ( +/obj/machinery/atmospherics/pipe/simple, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"jI" = ( +/turf/closed/wall, +/area/mine/production) +"jJ" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/mine/production) +"jK" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/mine/production) +"jL" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 6 + }, +/obj/machinery/camera{ + c_tag = "EVA"; + dir = 4; + network = list("MINE") + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23; + pixel_y = 0 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/obj/structure/table, +/obj/item/device/gps/mining, +/obj/item/device/gps/mining, +/obj/item/device/gps/mining, +/obj/item/device/gps/mining, +/turf/open/floor/plasteel, +/area/mine/eva) +"jM" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/mine/eva) +"jN" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/eva) +"jO" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8; + on = 1 + }, +/obj/machinery/light_switch{ + pixel_x = 27 + }, +/turf/open/floor/plasteel, +/area/mine/eva) +"jP" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plating/asteroid/airless, +/area/mine/eva) +"jQ" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/mine/living_quarters) +"jR" = ( +/obj/machinery/door/airlock/glass{ + name = "Crew Area"; + req_access_txt = "48" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"jS" = ( +/obj/machinery/atmospherics/pipe/simple, +/obj/machinery/door/airlock/mining{ + name = "Mining Station Storage"; + req_access_txt = "48" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"jT" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/door/window/northleft{ + dir = 2; + name = "Pneumatic Tube Access" + }, +/obj/machinery/disposal/deliveryChute{ + pixel_y = 5 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/bot{ + dir = 1 + }, +/area/mine/production) +"jU" = ( +/obj/structure/closet/crate, +/turf/open/floor/plasteel/bot{ + dir = 1 + }, +/area/mine/production) +"jV" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 6 + }, +/obj/structure/closet/crate, +/turf/open/floor/plasteel/bot{ + dir = 1 + }, +/area/mine/production) +"jW" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple{ + dir = 4 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/mine/eva) +"jX" = ( +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/mine/eva) +"jY" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/mine/eva) +"jZ" = ( +/turf/open/floor/plasteel, +/area/mine/eva) +"ka" = ( +/obj/structure/tank_dispenser/oxygen, +/turf/open/floor/plasteel, +/area/mine/eva) +"kb" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/floorgrime, +/area/mine/eva) +"kc" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/mine/eva) +"kd" = ( +/turf/open/floor/plasteel/airless/asteroid/warning{ + dir = 5 + }, +/area/mine/eva) +"ke" = ( +/obj/structure/toilet{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/mine/living_quarters) +"kf" = ( +/obj/structure/sink{ + pixel_y = 30 + }, +/obj/machinery/light/small, +/obj/structure/mirror{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/mine/living_quarters) +"kg" = ( +/obj/machinery/door/airlock{ + name = "Toilet" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/mine/living_quarters) +"kh" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"ki" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Mining Station Port Wing APC"; + pixel_x = 1; + pixel_y = 25 + }, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1; + d2 = 2 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"kj" = ( +/obj/machinery/camera{ + c_tag = "Crew Area Hallway"; + network = list("MINE") + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"kk" = ( +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/mine/living_quarters) +"kl" = ( +/obj/structure/window/reinforced, +/obj/structure/lattice, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/space, +/area/mine/living_quarters) +"km" = ( +/obj/structure/window/reinforced, +/obj/structure/lattice, +/turf/open/space, +/area/mine/living_quarters) +"kn" = ( +/obj/structure/window/reinforced, +/obj/structure/lattice, +/turf/open/space, +/area/mine/production) +"ko" = ( +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/mine/production) +"kp" = ( +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/mine/production) +"kq" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/mine/production) +"kr" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple, +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/mine/production) +"ks" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/door/airlock/glass_mining{ + name = "Mining Station EVA"; + req_access_txt = "54" + }, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/mine/eva) +"kt" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/mine/eva) +"ku" = ( +/obj/machinery/door/airlock/external{ + name = "Mining External Airlock"; + req_access_txt = "54" + }, +/turf/open/floor/plasteel, +/area/mine/eva) +"kv" = ( +/turf/open/floor/plasteel/floorgrime, +/area/mine/eva) +"kw" = ( +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/mine/eva) +"kx" = ( +/obj/machinery/door/airlock/external{ + name = "Mining External Airlock"; + req_access_txt = "54" + }, +/turf/open/floor/plasteel/airless/asteroid, +/area/mine/eva) +"ky" = ( +/turf/open/floor/plasteel/airless/asteroid/warning{ + dir = 4 + }, +/area/mine/eva) +"kz" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"kA" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"kB" = ( +/obj/machinery/atmospherics/pipe/simple, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"kC" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/simple, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"kD" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"kE" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"kF" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"kG" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/mine/living_quarters) +"kH" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/door/airlock/glass_mining{ + name = "Mining Station Bridge"; + req_access_txt = "48" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"kI" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"kJ" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"kK" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/door/airlock/glass_mining{ + name = "Mining Station Bridge"; + req_access_txt = "48" + }, +/turf/open/floor/plasteel, +/area/mine/production) +"kL" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/mine/production) +"kM" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4; + layer = 2.4; + on = 1 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"kN" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"kO" = ( +/obj/machinery/atmospherics/pipe/manifold{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/mine/production) +"kP" = ( +/obj/machinery/power/apc{ + dir = 2; + name = "Mining EVA APC"; + pixel_x = 1; + pixel_y = -23 + }, +/obj/structure/cable, +/obj/structure/table, +/obj/item/stack/packageWrap, +/obj/item/stack/packageWrap, +/obj/item/stack/packageWrap, +/obj/item/weapon/hand_labeler, +/turf/open/floor/plasteel, +/area/mine/eva) +"kQ" = ( +/obj/machinery/mech_bay_recharge_port, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/mine/eva) +"kR" = ( +/turf/open/floor/mech_bay_recharge_floor, +/area/mine/eva) +"kS" = ( +/obj/machinery/computer/mech_bay_power_console, +/turf/open/floor/plasteel, +/area/mine/eva) +"kT" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel, +/area/mine/eva) +"kU" = ( +/obj/structure/ore_box, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/mine/eva) +"kV" = ( +/turf/open/floor/plasteel/airless/asteroid/warning{ + dir = 6 + }, +/area/mine/eva) +"kW" = ( +/obj/machinery/atmospherics/pipe/manifold{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"kX" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"kY" = ( +/obj/machinery/atmospherics/pipe/manifold, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"kZ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"la" = ( +/obj/machinery/atmospherics/pipe/manifold{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"lb" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 4 + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"lc" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/mine/living_quarters) +"ld" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple{ + dir = 4 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/mine/living_quarters) +"le" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple{ + dir = 4 + }, +/turf/open/space, +/area/mine/living_quarters) +"lf" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple{ + dir = 4 + }, +/turf/open/space, +/area/mine/production) +"lg" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/space, +/area/mine/production) +"lh" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple{ + dir = 4 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/mine/production) +"li" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/mine/production) +"lj" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 1 + }, +/area/mine/production) +"lk" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"ll" = ( +/obj/machinery/atmospherics/pipe/manifold{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/mine/production) +"lm" = ( +/obj/machinery/camera{ + c_tag = "Production Line External"; + dir = 4; + network = list("MINE") + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plasteel/airless/asteroid/warning{ + dir = 2 + }, +/area/mine/production) +"ln" = ( +/turf/open/floor/plasteel/airless/asteroid/warning{ + dir = 2 + }, +/area/mine/production) +"lo" = ( +/obj/machinery/conveyor_switch{ + id = "mining_external" + }, +/turf/open/floor/plasteel/airless/asteroid/warning{ + dir = 2 + }, +/area/mine/production) +"lp" = ( +/turf/open/floor/plating/airless/astplate, +/area/mine/production) +"lq" = ( +/obj/machinery/atmospherics/pipe/simple, +/obj/machinery/door/airlock/glass_medical{ + id_tag = null; + name = "Infirmary"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/whiteblue, +/area/mine/living_quarters) +"lr" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE" + }, +/turf/closed/wall, +/area/mine/living_quarters) +"ls" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/door/airlock/maintenance{ + name = "Mining Station Maintenance"; + req_access_txt = "48" + }, +/turf/open/floor/plating, +/area/mine/living_quarters) +"lt" = ( +/obj/machinery/atmospherics/pipe/simple, +/turf/closed/wall, +/area/mine/living_quarters) +"lu" = ( +/obj/machinery/door/airlock/external{ + name = "Mining External Airlock"; + req_access_txt = "54" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"lv" = ( +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/mine/production) +"lw" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"lx" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/mine/production) +"ly" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock{ + name = "Closet"; + req_access_txt = "0" + }, +/turf/open/floor/plating, +/area/mine/production) +"lz" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/mine/production) +"lA" = ( +/obj/structure/disposalpipe/junction{ + dir = 8; + icon_state = "pipe-j1" + }, +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/mine/production) +"lB" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/mine/production) +"lC" = ( +/obj/machinery/disposal/deliveryChute{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/mine/production) +"lD" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "mining_external" + }, +/turf/open/floor/plating, +/area/mine/production) +"lE" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "mining_external" + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/mine/production) +"lF" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "mining_external" + }, +/obj/structure/plasticflaps/mining, +/turf/open/floor/plasteel/floorgrime, +/area/mine/production) +"lG" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "mining_external" + }, +/turf/open/floor/plating/airless/astplate, +/area/mine/production) +"lH" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/airalarm{ + frequency = 1439; + pixel_y = 23 + }, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 1 + }, +/area/mine/living_quarters) +"lI" = ( +/turf/open/floor/plasteel/whiteblue/side{ + dir = 1 + }, +/area/mine/living_quarters) +"lJ" = ( +/obj/machinery/atmospherics/pipe/simple, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 1 + }, +/area/mine/living_quarters) +"lK" = ( +/turf/open/floor/plasteel/whiteblue/side{ + dir = 5 + }, +/area/mine/living_quarters) +"lL" = ( +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plating, +/area/mine/living_quarters) +"lM" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/closet/crate/secure/loot, +/turf/open/floor/plating, +/area/mine/living_quarters) +"lN" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/mine/living_quarters) +"lO" = ( +/obj/machinery/atmospherics/pipe/simple, +/obj/item/weapon/storage/box/lights, +/turf/open/floor/plating, +/area/mine/living_quarters) +"lP" = ( +/obj/structure/rack, +/obj/item/weapon/storage/firstaid/regular, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = -3; + pixel_y = -3 + }, +/turf/open/floor/plating, +/area/mine/living_quarters) +"lQ" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/floorgrime, +/area/mine/living_quarters) +"lR" = ( +/turf/open/floor/plasteel/floorgrime, +/area/mine/living_quarters) +"lS" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"lT" = ( +/obj/structure/sign/xeno_warning_mining, +/turf/closed/wall, +/area/mine/living_quarters) +"lU" = ( +/obj/item/device/radio/intercom{ + dir = 8; + name = "Station Intercom (General)"; + pixel_x = -28 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/mine/production) +"lV" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"lW" = ( +/obj/machinery/atmospherics/pipe/simple, +/obj/machinery/status_display{ + layer = 4; + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/mine/production) +"lX" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/plating/airless/astplate, +/area/mine/production) +"lY" = ( +/obj/structure/closet/crate/freezer, +/obj/item/weapon/reagent_containers/blood/empty, +/obj/item/weapon/reagent_containers/blood/empty{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/weapon/reagent_containers/blood/AMinus, +/obj/item/weapon/reagent_containers/blood/BMinus{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/weapon/reagent_containers/blood/BPlus{ + pixel_x = 1; + pixel_y = 2 + }, +/obj/item/weapon/reagent_containers/blood/OMinus, +/obj/item/weapon/reagent_containers/blood/OPlus{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/weapon/reagent_containers/blood/random, +/obj/item/weapon/reagent_containers/blood/random, +/obj/item/weapon/reagent_containers/blood/random, +/turf/open/floor/plasteel/white, +/area/mine/living_quarters) +"lZ" = ( +/obj/machinery/iv_drip, +/turf/open/floor/plasteel/white, +/area/mine/living_quarters) +"ma" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/obj/machinery/camera{ + c_tag = "Sleeper Room"; + dir = 1; + network = list("MINE") + }, +/turf/open/floor/plasteel/white, +/area/mine/living_quarters) +"mb" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/brute{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/plasteel/whiteblue/side{ + dir = 4 + }, +/area/mine/living_quarters) +"mc" = ( +/obj/machinery/power/terminal{ + icon_state = "term"; + dir = 1 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/open/floor/plating, +/area/mine/living_quarters) +"md" = ( +/turf/open/floor/plating, +/area/mine/living_quarters) +"me" = ( +/obj/machinery/atmospherics/pipe/manifold{ + dir = 8 + }, +/obj/machinery/meter, +/turf/open/floor/plating, +/area/mine/living_quarters) +"mf" = ( +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 8 + }, +/turf/open/floor/plating, +/area/mine/living_quarters) +"mg" = ( +/obj/structure/ore_box, +/turf/open/floor/plasteel/warning, +/area/mine/living_quarters) +"mh" = ( +/turf/open/floor/plasteel/warning, +/area/mine/living_quarters) +"mi" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 32; + pixel_y = 0 + }, +/turf/open/floor/plasteel/warning, +/area/mine/living_quarters) +"mj" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "Mining Station Starboard Wing APC"; + pixel_x = -27; + pixel_y = 2 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/mine/production) +"mk" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/mine/production) +"ml" = ( +/obj/machinery/atmospherics/pipe/simple, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/mine/production) +"mm" = ( +/obj/machinery/mineral/equipment_vendor, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/mine/production) +"mn" = ( +/obj/machinery/mineral/mint{ + input_dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"mo" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/loadingarea{ + dir = 8 + }, +/area/mine/production) +"mp" = ( +/obj/machinery/airalarm{ + pixel_y = 28 + }, +/obj/structure/closet/crate, +/turf/open/floor/plasteel/bot{ + dir = 1 + }, +/area/mine/production) +"mq" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/obj/structure/table, +/obj/item/weapon/paper{ + anchored = 0; + info = "A hastily written note has been scribbled here...

Please use the ore redemption machine in the science wing for smelting. PLEASE!

--The Research Staff"; + name = "URGENT!" + }, +/turf/open/floor/plasteel/bot{ + dir = 1 + }, +/area/mine/production) +"mr" = ( +/obj/structure/barricade/wooden, +/turf/open/floor/plasteel/bot{ + dir = 1 + }, +/area/mine/production) +"ms" = ( +/obj/structure/cable, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/power/port_gen/pacman{ + anchored = 1 + }, +/turf/open/floor/plating, +/area/mine/living_quarters) +"mt" = ( +/obj/machinery/power/port_gen/pacman{ + anchored = 1 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/mine/living_quarters) +"mu" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plating, +/area/mine/living_quarters) +"mv" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + dir = 5 + }, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/mine/living_quarters) +"mw" = ( +/obj/machinery/door/airlock/external{ + name = "Mining External Airlock"; + req_access_txt = "54" + }, +/turf/open/floor/plasteel/airless/asteroid, +/area/mine/living_quarters) +"mx" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/mine/production) +"my" = ( +/turf/open/floor/plasteel/loadingarea, +/area/mine/production) +"mz" = ( +/turf/open/floor/plasteel/warning{ + dir = 5 + }, +/area/mine/production) +"mA" = ( +/obj/structure/barricade/wooden, +/turf/open/floor/plasteel/loadingarea{ + dir = 4 + }, +/area/space) +"mB" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/barricade/wooden, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/mine/production) +"mC" = ( +/turf/open/floor/plasteel/airless/asteroid, +/area/mine/explored) +"mD" = ( +/turf/open/floor/plasteel/airless/asteroid/warning{ + dir = 4 + }, +/area/mine/explored) +"mE" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/airless, +/area/mine/living_quarters) +"mF" = ( +/obj/structure/grille, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; + name = "KEEP CLEAR: DOCKING AREA"; + pixel_y = 0 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/mine/production) +"mG" = ( +/obj/structure/grille, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0 + }, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/mine/production) +"mH" = ( +/obj/item/device/radio/beacon, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/mine/production) +"mI" = ( +/turf/open/floor/plasteel/warning/corner{ + dir = 4 + }, +/area/mine/production) +"mJ" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 4 + }, +/obj/machinery/computer/shuttle/mining{ + req_access = "0" + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Shuttle Docking Foyer"; + dir = 8; + network = list("MINE") + }, +/obj/machinery/newscaster{ + pixel_x = 30; + pixel_y = 1 + }, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/mine/production) +"mK" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/turf/open/floor/plasteel/bot{ + dir = 1 + }, +/area/mine/production) +"mL" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 2; + on = 1 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"mM" = ( +/obj/machinery/camera{ + c_tag = "Processing Area Room"; + dir = 8; + network = list("MINE") + }, +/obj/item/device/radio/intercom{ + dir = 8; + name = "Station Intercom (General)"; + pixel_x = 28 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/mine/production) +"mN" = ( +/obj/machinery/mineral/unloading_machine{ + dir = 1; + icon_state = "unloader-corner"; + input_dir = 1; + output_dir = 2 + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/mine/production) +"mO" = ( +/obj/docking_port/stationary{ + dir = 8; + dwidth = 3; + height = 5; + id = "mining_away"; + name = "asteroid mine"; + width = 7 + }, +/turf/open/space, +/area/space) +"mP" = ( +/obj/machinery/door/airlock/external{ + name = "Mining Shuttle Airlock"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/mine/production) +"mQ" = ( +/turf/open/floor/plasteel, +/area/mine/production) +"mR" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/mine/production) +"mS" = ( +/obj/machinery/atmospherics/pipe/simple, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 8 + }, +/area/mine/production) +"mT" = ( +/obj/machinery/atmospherics/pipe/simple, +/turf/open/floor/plasteel, +/area/mine/production) +"mU" = ( +/obj/machinery/conveyor_switch/oneway{ + id = "mining_internal"; + name = "mining conveyor" + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/mine/production) +"mV" = ( +/obj/machinery/conveyor{ + dir = 2; + id = "mining_internal" + }, +/turf/open/floor/plasteel/warning{ + dir = 8 + }, +/area/mine/production) +"mW" = ( +/obj/effect/decal/remains/human{ + desc = "Seems to be all that remains of a poor miner that didn't heed the warning signs." + }, +/turf/open/floor/plating/asteroid/airless, +/area/mine/explored) +"mX" = ( +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/mine/production) +"mY" = ( +/turf/open/floor/plasteel/warning/corner{ + dir = 1 + }, +/area/mine/production) +"mZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel, +/area/mine/production) +"na" = ( +/obj/machinery/atmospherics/pipe/manifold{ + dir = 8 + }, +/obj/structure/disposalpipe/junction{ + dir = 4; + icon_state = "pipe-j2" + }, +/turf/open/floor/plasteel, +/area/mine/production) +"nb" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/mine/production) +"nc" = ( +/obj/machinery/door/airlock/glass_mining{ + name = "Processing Area"; + req_access_txt = "48" + }, +/obj/machinery/atmospherics/pipe/simple{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/mine/production) +"nd" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/mine/production) +"ne" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 4 + }, +/area/mine/production) +"nf" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"ng" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/mine/production) +"nh" = ( +/obj/machinery/mineral/processing_unit_console, +/turf/closed/wall/r_wall, +/area/mine/production) +"ni" = ( +/obj/machinery/mineral/processing_unit{ + dir = 1; + output_dir = 2 + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/mine/production) +"nj" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1; + on = 1 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"nk" = ( +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/mine/production) +"nl" = ( +/obj/machinery/door/airlock/glass_mining{ + name = "Processing Area"; + req_access_txt = "48" + }, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/mine/production) +"nm" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/mine/production) +"nn" = ( +/turf/open/floor/plasteel/warning{ + dir = 2 + }, +/area/mine/production) +"no" = ( +/obj/structure/ore_box, +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/mine/production) +"np" = ( +/obj/structure/lattice, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/space, +/area/space) +"nq" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 10 + }, +/area/mine/production) +"nr" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plasteel/warning{ + dir = 2 + }, +/area/mine/production) +"ns" = ( +/turf/open/floor/plasteel/warning{ + dir = 6 + }, +/area/mine/production) +"nt" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/door/window/northleft{ + name = "Output Access" + }, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/mine/production) +"nu" = ( +/obj/machinery/door/window/northleft{ + base_state = "right"; + icon_state = "right"; + name = "Output Access" + }, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/mine/production) +"nv" = ( +/obj/machinery/mineral/stacking_unit_console, +/turf/closed/wall/r_wall, +/area/mine/production) +"nw" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/grille, +/turf/open/floor/plating, +/area/mine/explored) +"nx" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/mine/explored) +"ny" = ( +/obj/structure/lattice, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/space, +/area/space) +"nz" = ( +/obj/structure/lattice, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/space, +/area/space) +"nA" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk, +/obj/machinery/door/window/northleft{ + name = "Pneumatic Tube Access" + }, +/obj/machinery/disposal/deliveryChute{ + dir = 1; + pixel_y = -1 + }, +/turf/open/floor/plasteel/bot{ + dir = 1 + }, +/area/mine/production) +"nB" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen"; + opened = 1 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/bot{ + dir = 1 + }, +/area/mine/production) +"nC" = ( +/obj/structure/ore_box, +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/mine/production) +"nD" = ( +/turf/open/floor/plasteel/delivery{ + name = "floor" + }, +/area/mine/production) +"nE" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "mining_internal" + }, +/obj/structure/plasticflaps, +/obj/structure/barricade/wooden, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/mine/production) +"nF" = ( +/obj/machinery/mineral/stacking_machine{ + dir = 1; + input_dir = 4 + }, +/turf/open/floor/plasteel/warning{ + dir = 9 + }, +/area/mine/production) +"nG" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "mining_internal" + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/mine/production) +"nH" = ( +/obj/machinery/conveyor{ + icon_state = "conveyor0"; + dir = 10; + id = "mining_internal" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/warning/corner{ + dir = 4 + }, +/area/mine/production) +"nI" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/grille, +/turf/open/floor/plating, +/area/mine/explored) +"nJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/closed/wall, +/area/mine/production) +"nK" = ( +/obj/structure/disposaloutlet{ + dir = 1; + eject_range = 1 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/warning{ + dir = 1 + }, +/area/mine/production) +"nL" = ( +/obj/docking_port/stationary{ + dheight = 9; + dir = 2; + dwidth = 5; + height = 24; + id = "syndicate_z5"; + name = "south of asteroid"; + turf_type = /turf/open/space; + width = 18 + }, +/turf/open/space, +/area/space) + +(1,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(8,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(9,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(10,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(11,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(12,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(13,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(14,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(15,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(16,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(17,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ak +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(18,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ak +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(19,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ak +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(20,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ak +ac +ac +ac +aa +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(21,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ad +ad +ac +ac +aa +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(22,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +aa +aa +ac +ac +ad +ad +ad +ac +ac +aa +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +aa +aa +aa +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(23,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ad +ad +ad +ad +ad +ac +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ad +ad +ad +ad +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(24,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +aa +aa +aa +ac +ac +ac +ac +ad +ad +ad +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ad +ad +ad +ad +ad +ad +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(25,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ad +ad +ad +ad +ad +ac +ac +ac +aa +aa +aa +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ad +ad +ad +ad +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ad +ad +ad +ac +ac +ac +ac +ac +ac +aa +aa +aa +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(26,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ad +ak +ad +ad +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ad +ad +ad +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(27,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +ac +ad +ad +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ad +ad +ad +ad +ad +ad +ad +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(28,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ad +ad +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ad +ad +ad +ad +ad +ad +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(29,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ad +ad +cu +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ad +ad +ad +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(30,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ad +ad +ad +ad +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(31,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +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 +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +aa +aa +aa +aa +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +aa +aa +aa +aa +aa +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +bS +bS +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(32,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ak +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +aa +aa +aa +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +aa +aa +aa +aa +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +bS +bS +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(33,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 +ac +ac +ac +ac +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 +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +aa +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bS +bS +bS +ac +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +ac +bS +bS +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(34,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 +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ad +ac +ac +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +ac +aa +ac +ac +aa +aa +aa +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bS +bS +ac +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +bS +bS +bS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(35,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 +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ad +ad +ad +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +aa +aa +ac +ac +ac +ac +aa +aa +aa +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bS +bS +ac +ac +ad +ad +ad +ad +ad +ad +ac +ac +bS +bS +bS +bS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(36,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 +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +aa +aa +aa +aa +aa +aa +ac +aa +aa +aa +aa +aa +aa +ac +ac +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 +ac +ac +aa +aa +ac +ac +ac +ac +ac +aa +aa +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bS +bS +bS +ac +ad +ad +ad +ad +ad +ad +ac +ac +bS +bS +bS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(37,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 +ac +ac +ac +aa +aa +aj +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +bS +bS +bS +bS +ac +ac +ac +ac +aa +ac +ac +ac +ac +ac +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 +ac +ac +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +ac +ac +ac +ac +aa +aa +aa +aa +bS +bS +ac +ad +ad +ad +ad +ad +ad +ac +ac +bS +bS +bS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(38,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 +aj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aj +aa +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +bS +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +ac +ac +ac +ac +ac +ac +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bS +aa +aa +aa +aa +bS +bS +ac +ac +ad +ad +ad +ad +ad +ac +ac +ac +ac +bS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(39,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 +aj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aj +aa +aa +aa +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +bS +bS +ac +ac +ac +ac +ac +ac +ac +ac +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 +ac +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +ac +ac +bS +bS +bS +aa +aa +aa +bS +bS +ac +ac +ad +ad +ad +ad +ad +ac +ac +ac +ac +bS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(40,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 +aj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aj +aa +aa +aa +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +ac +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 +cu +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 +ac +ac +bS +bS +bS +aa +aa +aa +aa +bS +ac +ac +ad +ad +ac +ad +ad +ac +ac +bS +bS +bS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(41,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 +aj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aj +aa +aa +aa +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +ac +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +bS +bS +aa +aa +aa +aa +bS +bS +ac +ac +ac +ac +ad +ad +ac +ac +bS +bS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(42,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 +aj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aj +aa +aa +aa +aa +ac +ac +ac +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 +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 +ac +ac +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +ac +ac +ad +ac +ac +bS +bS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(43,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 +aj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aj +aa +aa +aa +aa +aa +ac +ac +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 +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 +ac +ac +bS +hy +hz +hz +hy +hz +hz +hy +bS +bS +ac +ac +ac +ac +ac +bS +bS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(44,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 +aj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aj +aa +aa +aa +aa +aa +ac +ac +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 +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 +ac +ac +bS +bS +hy +hE +hS +ic +ij +ir +hy +bS +bS +bS +bS +ac +ac +ac +bS +bS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(45,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 +aj +aa +aa +aa +aa +aa +aa +fx +aa +aa +aj +aa +aa +aa +aa +ac +ac +ac +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 +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 +ac +ac +ac +bS +bS +hy +hF +hM +hM +hM +hM +hy +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(46,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 +ct +ct +ct +ct +ct +ej +ct +aa +fl +fy +fl +fl +gl +gx +gJ +aa +aa +ac +ac +ac +ad +ad +cj +cj +cj +cj +cj +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +bS +bS +bS +hy +hG +hT +hM +ik +is +hy +bS +bS +bS +bS +bS +ac +ac +ac +ac +bS +bS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(47,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 +ct +do +dA +dM +cE +ek +ct +aa +fl +fm +fq +fR +gm +gy +gK +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +cj +cj +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ak +ad +ad +ad +ad +ad +ad +ad +ad +ak +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 +ac +ac +ac +bS +bS +bS +bS +hy +hz +hz +id +il +hz +hy +hy +hy +hy +bS +bS +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(48,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 +cv +cv +cv +ct +dp +dB +dN +cE +ej +ct +ct +fl +fz +fq +fS +fS +gz +gL +aa +ac +ac +ac +bL +bL +bL +bL +bL +bL +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ak +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 +ak +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +bS +bS +bS +bS +hy +hH +hU +hM +im +it +iM +jd +ju +hy +bS +bS +bS +bS +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ad +ad +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(49,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 +ac +ac +ac +ac +ac +aa +aa +aa +aa +cv +cA +cP +cE +cE +dC +dO +cE +el +ct +eS +fm +fm +fq +fT +gn +gA +fl +ab +ac +ac +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +ac +ac +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +bS +bS +bS +hk +hq +hz +hI +hU +hM +in +iu +iN +je +jv +hy +bS +bS +bS +bS +ac +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ad +ad +ad +ad +ac +ac +aa +aa +aa +aa +aa +aa +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(50,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 +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ct +cB +cQ +de +dq +dD +dP +dY +em +cG +cG +fm +fm +fL +fU +fS +gB +fl +cy +ac +ac +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +ac +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +bS +bS +bS +hk +hr +hz +hJ +hU +hM +io +iv +iO +jf +jw +hy +bS +bS +bS +bS +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(51,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 +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ct +cC +cR +df +cG +dE +dE +cG +cG +cG +cG +fn +fA +fo +fV +go +gC +fl +cy +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +ac +ac +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ha +bS +bS +hk +hs +hz +hK +hU +hM +hM +hM +hy +jg +jx +hy +bS +bS +bS +bS +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(52,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 +ac +ac +ac +ac +ac +ac +bL +bL +bL +bL +bL +bL +bL +bL +ct +cD +cS +dg +cF +dF +dQ +dZ +dq +dq +dq +fo +fB +fq +fW +fq +fq +fq +cy +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +ac +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ha +bS +bS +bS +bS +hz +hL +hV +ie +ip +iw +hy +hy +hy +hy +bS +bS +bS +bS +ac +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 +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(53,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 +ac +ac +ac +ac +ac +ac +ac +bL +bL +bL +bL +bL +bL +bL +ct +ct +cE +cE +cE +dr +cG +cG +dE +cG +dg +eT +fp +fC +fq +fX +gp +gD +fq +cy +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +ac +cj +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +bS +bS +bS +bS +hy +hz +hW +hz +hy +ix +iP +jh +bS +bS +bS +bS +bS +bS +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +ac +ad +ad +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(54,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 +ac +ac +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +ct +cw +cF +cT +dh +ds +dq +dq +ea +cG +eF +eU +fq +fD +fM +fY +gq +gE +fq +cy +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +ac +cj +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +bS +bS +bS +bS +hy +hM +hM +if +hy +iy +iQ +ji +bS +bS +bS +bS +bS +bS +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(55,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 +ac +ac +ac +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +ct +cw +cG +cG +di +cG +cG +dR +dg +en +cE +eV +fq +fE +fN +fZ +gq +gF +fq +cy +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +ac +cj +cj +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +bS +bS +bS +hy +hN +hN +ig +hy +iz +iQ +hl +bS +bS +bS +bS +bS +bS +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +bS +bS +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(56,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 +ac +ac +ac +bL +bL +bL +bL +bL +bL +ac +ac +bL +bL +bL +ct +cw +cG +cU +cE +dt +cG +cG +eb +eo +eG +eW +cE +fF +fO +ga +gr +gG +fq +cy +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +ac +cj +cj +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +bS +bS +bS +hy +hO +hX +hz +hy +iA +iQ +bS +bS +bS +bS +bS +bS +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +bS +bS +bS +bS +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(57,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 +ac +ac +bL +bX +ca +bL +bL +ac +ac +ac +ac +bL +bL +bL +ct +cx +cG +cV +cE +cE +dG +cE +ec +cE +cE +cE +fq +fG +fq +gb +gs +gs +fq +cy +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +ac +cj +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +bS +bS +bS +hA +hP +hY +ih +hy +iB +iQ +bS +bS +bS +bS +bS +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +bS +bS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(58,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 +ac +bL +bL +bL +cb +bL +bL +ac +ac +ac +ac +bL +bL +bL +ct +ct +ct +cW +ct +du +du +dS +ed +ep +du +eX +fq +fH +fq +gc +fq +fq +fq +cy +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +ac +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +bS +bS +bS +bS +bS +bS +gX +iC +iC +gM +bS +bS +ac +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +bS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(59,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 +ac +bL +bL +bL +bL +bL +bL +ac +ac +ac +ac +bL +bL +bL +bL +bL +cH +cX +ct +du +du +dT +ed +eq +du +eY +fr +du +fP +gd +cy +cy +cy +cy +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +ac +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +ac +ac +bS +gR +iD +iD +gO +bS +ac +ac +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +bS +bS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(60,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 +ac +ac +ac +bL +ac +ac +ac +ac +ac +ac +ac +bL +bL +bL +bL +bL +cH +cY +ct +du +cY +dT +ee +er +du +cI +cI +du +du +ge +cy +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +ac +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +ac +ha +bS +gV +gV +bS +bS +ac +ac +ac +ac +bS +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +bS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(61,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 +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bL +bL +bL +bL +bL +cH +cY +dj +cI +cY +cY +ef +cY +cI +cI +cY +cI +cI +gf +cy +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +ac +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +bS +gV +gV +bS +bS +ac +ac +ac +ac +bS +ac +ac +ad +ad +ad +ad +ad +cu +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +bS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(62,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 +ac +ac +ac +ac +ac +aa +aa +aa +aa +ac +bL +bL +bL +bL +cy +cH +cH +dk +cY +cY +cY +cY +cY +cI +cI +cI +cI +cI +cy +cy +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +ac +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +cj +gV +gV +bS +bS +ac +ac +ac +bS +bS +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +bS +bS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(63,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 +ac +ac +aa +aa +aa +aa +aa +aa +ac +ac +ac +bL +bL +cy +cI +cI +dl +cY +cY +cI +cI +cI +cI +cI +cI +cI +cy +cy +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +ac +ac +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +cj +gV +gV +bS +ac +ac +ac +ac +bS +bS +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +bS +bS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(64,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 +ac +ac +ac +bL +bL +bL +cy +cZ +cy +cy +dH +cI +cI +cI +cI +dH +dH +cy +cy +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +ac +ac +ac +ad +ad +ad +ad +ad +ak +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ak +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 +ac +ac +cj +gV +gV +bS +ac +ac +ac +bS +bS +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +bS +bS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(65,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 +ac +ac +ac +bL +bL +bL +bL +cy +cy +cy +cy +cy +eg +es +eH +cy +cy +cy +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +ac +ac +cj +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 +ak +ad +ak +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +cj +iE +gV +bS +cj +ac +ac +bS +bS +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +bS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(66,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 +ac +ac +ac +bL +bL +bL +bL +bL +bL +bL +bL +cy +cy +cy +cE +cy +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +ac +cj +cj +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +cj +iE +gW +gU +bS +cj +bS +bS +bS +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +bS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(67,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 +ac +ac +ac +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +ac +ac +cj +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +cu +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 +ad +ad +ad +ad +ad +ad +ad +ac +ac +cj +gW +gU +gW +gU +bS +bS +bS +bS +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +bS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(68,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 +ac +ac +aa +aa +ac +ac +ac +ac +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +ac +cj +cj +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 +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 +ac +ac +cj +bS +gW +gU +gW +gU +bS +bS +bS +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +bS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(69,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 +ac +ac +ac +aa +ac +ac +ac +ac +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +ac +cj +cj +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 +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 +ac +ac +ac +bS +bS +gW +gU +gW +gU +bS +bS +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(70,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 +ac +ac +ac +ac +ac +ac +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +ac +cj +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 +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 +ac +ac +bS +bS +bS +gW +gU +gV +bS +bS +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(71,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 +ac +ac +ac +ac +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +ac +ac +cj +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 +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 +ac +ac +bS +bS +bS +gV +gV +bS +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(72,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 +ac +ac +aa +aa +aa +aa +aa +aa +ac +ac +ac +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +ac +cj +cj +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ak +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +bS +bS +bS +gV +gV +bS +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +aa +aa +aa +aa +ac +ac +ac +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +ac +cj +cj +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 +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 +ac +ac +ac +bS +bS +bS +gV +gV +bS +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +aa +aa +aa +aa +aa +ac +ac +ac +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +ac +cj +cj +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 +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 +ac +ac +ac +bS +bS +bS +gV +gV +bS +ac +ac +bS +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +ac +ac +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +ac +cj +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 +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 +ac +ac +ac +bS +bS +bS +gX +iC +iC +gM +bS +bS +bS +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +ac +ac +ac +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +ac +ac +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 +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 +ac +ac +ac +bS +bS +bS +gR +iD +iD +gO +bS +bS +bS +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +ac +ac +ad +ad +ac +ac +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +ac +ac +ac +ac +ac +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 +ad +ak +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 +ac +ac +ac +bS +bS +bS +bS +bS +gV +gV +bS +bS +bS +bS +bS +bS +bS +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +ac +ac +ad +ad +ac +ac +aa +aa +aa +aa +aa +ac +bS +ac +ac +ac +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +ac +ac +ac +ac +ac +ac +ac +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +cu +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +bS +bS +bS +bS +bS +gV +gW +gT +gT +gT +gU +bS +bS +bS +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +ac +ac +ac +ac +ac +ac +ac +ak +ak +ac +ac +aa +aa +aa +aa +aa +aa +ac +aa +ac +ac +ad +ad +ac +ac +ac +aa +aa +aa +aa +aa +bS +bS +ac +ac +ac +ac +ac +ac +ac +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +bL +ac +ac +ac +ac +cj +cj +cj +cj +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 +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 +ac +ac +bS +bS +bS +bS +bS +bS +gW +gT +gT +gT +gU +gV +bS +bS +bS +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(80,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 +ac +ac +ac +ac +ac +ac +ac +ak +ak +ac +ac +ac +ac +aa +aa +aa +aa +ac +ac +ac +ac +ad +ad +ak +ac +ac +aa +aa +aa +aa +aa +aa +bS +bS +bS +ac +ac +ac +ac +ac +ac +ac +bL +bL +bL +bL +bL +ac +ac +ac +ac +ac +ac +cj +cj +cj +cj +cj +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 +ak +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 +ac +ac +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +gV +gV +bS +bS +bS +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(81,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ad +ad +ad +ad +ad +ac +ac +ac +ac +aa +aa +aa +aa +ac +ac +ac +ac +ad +ad +ad +ac +ac +ac +aa +aa +aa +aa +aa +aa +bS +bS +bS +bS +bS +bS +ac +ac +ac +ac +ac +ac +ac +ac +ac +cj +cj +cj +cj +cj +cj +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ak +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +bS +bS +bS +bS +bS +bS +ac +ac +ac +bS +gV +gV +bS +bS +bS +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(82,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ad +ad +ad +ad +ad +ad +ac +ac +ac +aa +aa +aa +aa +aa +ac +ac +ac +ad +ad +ad +ad +ad +ac +ac +aa +aa +aa +aa +aa +aa +bS +bS +bS +ac +ac +bS +bS +ac +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 +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 +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +bS +bS +bS +bS +bS +bS +ac +ac +ac +bS +gV +gV +bS +bS +bS +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(83,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ad +ad +ad +ad +ad +ad +ac +ac +aa +aa +aa +aa +aa +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ac +ac +aa +aa +aa +aa +aa +aa +bS +bS +ac +ac +ac +ac +ac +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 +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 +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +bS +bS +bS +bS +bS +bS +bS +ac +ac +gX +iC +iC +gM +bS +bS +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(84,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ac +ac +aa +aa +aa +aa +aa +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ac +ac +aa +aa +aa +aa +aa +bS +bS +bS +ac +ac +ac +ac +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 +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 +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +bS +bS +bS +bS +bS +bS +bS +ac +ac +gR +iD +iD +gO +bS +bS +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(85,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ac +ac +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ac +ac +aa +aa +aa +aa +aa +aa +bS +bS +bS +ac +ac +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 +ad +ad +ak +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 +ad +ad +ad +ad +ad +ac +ac +bS +bS +bS +bS +bS +bS +ac +ac +ac +bS +gV +gV +bS +bS +bS +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(86,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +bS +ac +ac +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 +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 +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +bS +bS +bS +bS +bS +bS +ac +ac +bS +bS +gV +gV +bS +bS +bS +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(87,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +aa +aa +aa +aa +aa +aa +bS +bS +ac +ac +ac +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 +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 +ad +ad +ad +ad +ad +ad +ac +ac +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +gV +gV +bS +bS +bS +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(88,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +aa +aa +ac +ac +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +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 +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 +ad +ad +ad +ad +ac +ac +ac +bS +bS +bS +bS +bS +bS +gY +gT +gT +gZ +gV +bS +bS +bS +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(89,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ad +ad +ad +ad +ac +ac +ac +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +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 +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 +ad +ad +ad +ad +ac +ac +ac +bS +bS +bS +bS +bS +bS +gV +gY +gT +gT +gZ +bS +bS +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(90,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ad +ad +ad +ac +ac +ac +aa +aa +aa +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +ac +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 +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 +ad +ad +ad +ad +ad +ac +ac +bS +bS +bS +bS +bS +bS +gV +gV +bS +bS +bS +bS +bS +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(91,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ad +ad +ad +ac +ac +ac +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +aa +aa +aa +aa +aa +ac +ac +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 +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 +ad +ad +ad +ad +ac +ac +bS +bS +bS +bS +bS +bS +gV +gV +bS +bS +bS +bS +ac +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(92,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ad +ad +ad +ac +ac +ac +ac +ac +ac +ac +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 +ac +ac +ac +ac +aa +aa +aa +aa +ac +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 +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 +ad +ad +ad +ad +ac +ac +ac +ac +ac +bS +bS +bS +gV +gV +bS +bS +bS +bS +ac +ac +ac +bS +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(93,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +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 +ac +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ak +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ak +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +bS +bS +bS +gV +gV +bS +bS +bS +bS +ac +ac +ac +bS +ac +ac +ac +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 +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(94,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +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 +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 +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 +ad +ad +ad +ad +ad +ac +ac +ac +bS +bS +bS +gV +gV +bS +bS +bS +bS +bS +ac +ac +bS +bS +ac +ac +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 +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(95,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +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 +ad +ad +ak +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 +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 +ad +ad +ac +ac +bS +bS +bS +gX +iC +iC +gM +bS +bS +bS +bS +bS +ac +bS +bS +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(96,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +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 +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 +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 +ad +ad +ad +ad +ad +ac +ac +bS +bS +bS +gR +iD +iD +gO +bS +bS +ac +bS +bS +bS +bS +bS +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +cu +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(97,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +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 +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 +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 +ad +ad +ad +ad +ad +ac +ac +bS +bS +bS +bS +gV +gV +bS +bS +bS +ac +ac +bS +bS +bS +bS +bS +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +aa +aa +aa +aa +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(98,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +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 +cu +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ak +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 +ac +ac +bS +bS +bS +bS +gV +gV +bS +bS +bS +ac +ac +ac +bS +bS +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +aa +aa +aa +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(99,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +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 +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 +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 +ad +ad +ad +ad +ad +ad +ac +ac +bS +bS +bS +bS +gV +gV +bS +bS +bS +ac +ac +ac +ac +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +aa +aa +aa +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(100,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ad +ad +ad +ac +ac +ac +ac +av +av +av +av +av +av +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 +ak +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 +ak +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 +ac +ac +ac +bS +bS +bS +bS +gV +gV +bS +bS +ac +ac +ac +ac +ac +ac +ac +ac +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 +ac +ac +aa +aa +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(101,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +av +bs +bs +bs +bs +av +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 +ad +ad +ad +ad +ad +ad +ad +ak +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +bS +bS +bS +bS +gV +gV +bS +ac +ac +ac +ac +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 +ac +ac +aa +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(102,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +aa +aa +ac +ac +ac +ac +ac +ac +aj +aj +av +bt +bz +bz +bG +av +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +cu +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +bS +bS +bS +bS +bS +gV +gV +bS +bS +ac +ac +ac +ac +ac +ac +ac +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 +ac +ac +ac +ac +ac +ac +ad +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(103,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ac +ac +ac +aa +aa +aa +aa +aa +aj +aj +aj +aj +aj +aj +aj +aj +av +bu +bA +bF +bF +av +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 +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +bS +bS +bS +bS +bS +gV +gW +gU +bS +bS +ac +ac +ac +ac +ac +ac +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 +ac +ac +ac +ac +ac +ad +ad +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(104,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ad +ad +ad +ad +ad +ac +ac +ac +aa +aa +aa +aa +aa +aj +aa +aa +aa +aa +aj +aj +aj +av +bv +bz +bF +bH +av +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 +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +bS +bS +bS +bS +bS +bS +gW +gU +gW +gU +bS +ac +ac +ac +bS +ac +ac +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 +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(105,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ad +ad +ad +ad +ad +ac +ac +aa +aa +aa +aa +aa +aa +aj +aa +aa +aa +aa +aj +be +av +av +av +bB +bB +av +av +av +av +av +av +av +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 +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +bS +bS +bS +bS +bS +bS +bS +gW +gU +gV +bS +ac +ac +bS +bS +ac +ac +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 +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(106,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ad +ad +ad +ad +ad +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aV +aZ +bf +aL +aK +be +aF +aX +bI +bM +bI +bI +cc +cc +av +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 +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +bS +bS +bS +bS +bS +bS +bS +bS +bS +gV +gV +bS +ac +ac +bS +bS +ac +ac +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 +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(107,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 +ac +ac +ac +ad +ad +ad +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aj +aO +ba +bg +aW +aQ +bw +bC +aF +bJ +bJ +bJ +bJ +bJ +bI +av +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 +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +ac +ac +bS +bS +bS +bS +bS +bS +bS +bS +bS +gX +iC +iC +gM +ac +bS +bS +bS +ac +ac +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 +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(108,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 +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aj +aO +aP +ap +ap +bm +bq +bf +by +aF +bx +aF +aF +aF +bJ +bI +av +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 +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +gR +iD +iD +gO +ac +bS +bS +bS +ac +ac +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 +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(109,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 +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aH +aP +aO +bb +bc +ap +aW +av +aF +aM +bx +aF +aX +bi +bJ +bI +av +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ak +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 +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 +ac +ac +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +ac +bS +bS +cj +gV +gV +bS +bS +bS +bS +bS +ac +ac +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 +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(110,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 +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aj +aI +aI +ap +bc +ap +bg +aQ +bd +bD +aB +bJ +aF +bT +aF +bJ +cf +av +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ak +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 +ac +ac +ac +ac +ac +ac +ac +bS +bS +bS +bS +bS +bS +ac +bS +bS +cj +gV +gV +bS +bS +bS +bS +bS +ac +ac +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 +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(111,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 +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aj +ap +as +ap +ap +as +aQ +aX +av +bi +aF +aX +aF +bU +aF +bJ +cg +av +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 +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +ac +ac +ac +bS +bS +bS +bS +bS +ac +ac +bS +bS +gV +gW +gU +bS +bS +bS +bS +ac +ac +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 +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(112,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 +ac +ac +aa +aa +aa +aa +aa +aa +aa +aj +aC +aJ +aQ +aW +aW +bh +bn +br +bx +aM +aF +bJ +by +aB +bN +bJ +bI +av +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 +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +bS +bS +bS +ac +ac +ac +bS +bS +gW +gU +gW +gU +bS +bS +bS +ac +ac +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 +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(113,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 +aj +aj +aD +aK +aR +aQ +aX +bi +bo +bp +bx +bE +aF +bx +aF +bi +aF +bJ +bI +av +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 +ak +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 +ak +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 +ac +ac +ac +bS +bS +bS +bS +bS +ac +ac +bS +bS +gW +gU +gV +bS +bS +bS +ac +ac +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 +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(114,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 +aj +ay +aE +aL +aR +aQ +aX +aF +bp +bp +bx +aF +by +bx +bN +aF +aX +bJ +bI +av +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 +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +bS +bS +bS +bS +bS +ac +ac +ac +bS +bS +gV +gV +bS +bS +bS +ac +ac +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 +ac +ac +aa +aa +aa +aa +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(115,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 +af +ah +al +ap +ap +aa +aw +az +av +af +aS +av +bd +av +af +aS +av +bi +aF +bx +bx +bx +bJ +bJ +cc +av +cj +cj +ad +ad +ad +cj +ad +ad +ad +ad +ak +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 +ak +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +bS +bS +bS +bS +bS +ac +bS +bS +bS +gV +gV +bS +bS +bS +ac +ac +ac +ac +ac +ac +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 +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(116,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 +ag +ai +am +aq +ar +au +ax +aA +aF +aM +aB +aF +aW +aR +aR +ai +aQ +aM +aF +aF +bD +aF +bI +bI +cc +av +cj +cj +cj +cj +cj +cj +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 +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +bS +bS +bS +bS +bS +ac +bS +bS +bS +gV +gV +bS +bS +bS +ac +ac +ac +ac +ac +ac +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 +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(117,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 +af +ah +an +ai +as +ai +ai +aB +aG +aB +aF +aX +aF +bj +aQ +ai +ai +aW +aF +aF +bi +aF +av +av +av +av +cj +cj +cj +cj +cj +cj +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 +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +bS +bS +bS +bS +bS +bS +bS +bS +gV +gV +bS +bS +bS +ac +ac +ac +bS +ac +ac +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 +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(118,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 +aj +ao +ah +at +av +av +av +av +av +aT +av +av +av +av +av +ai +av +av +av +av +av +av +bk +bk +av +av +av +av +cj +cj +cj +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 +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +bS +bS +bS +bS +bS +bS +bS +gX +iC +iC +gM +bS +bS +ac +ac +ac +bS +ac +ac +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 +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(119,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 +aj +aj +aj +ac +ac +ac +av +aN +aU +aN +av +bk +bk +bk +ai +ai +aF +bK +bO +ai +bk +ai +cd +bR +ck +cl +cn +cp +cj +cj +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 +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +ac +bS +bS +bS +bS +bS +bS +gR +iD +iD +gO +bS +bS +ac +ac +ac +bS +ac +ac +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 +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(120,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 +aj +ac +ac +ac +av +aN +aN +aY +av +ai +ai +as +ai +aX +bi +by +bP +bV +ai +cd +cd +ch +bV +cm +ch +cq +cj +cj +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 +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +gV +gV +bS +bS +bS +ac +ac +bS +bS +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +cu +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(121,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 +ac +ac +ac +ac +ac +ac +ac +av +av +av +av +av +aQ +ai +aF +by +aF +bD +aF +bQ +bV +bV +ai +cd +ci +cd +cl +co +cr +cs +cj +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 +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 +ak +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +gV +gV +bS +bS +bS +ac +ac +bS +bS +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(122,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 +ac +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +av +bl +bl +bl +bi +aF +aF +aX +bR +bW +bY +bW +bl +av +av +av +av +cj +cj +cs +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 +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +ac +bS +bS +ab +ab +bS +bS +bS +gV +gV +bS +bS +bS +ac +bS +bS +bS +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(123,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 +ac +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +av +av +av +av +av +av +av +av +av +av +bZ +ce +av +av +cj +cj +cj +cj +cj +cj +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ak +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 +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 +ac +ac +ac +ac +ac +ac +bS +bS +ab +ab +bS +bS +bS +gV +gV +bS +bS +bS +bS +bS +bS +bS +bS +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(124,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 +ac +ac +ac +ac +ac +ac +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 +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 +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 +ac +ac +bS +bS +ab +ab +bS +bS +bS +gV +gV +bS +bS +bS +bS +bS +bS +bS +bS +bS +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(125,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 +ac +ac +ac +ac +ac +ac +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 +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 +ak +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 +ad +ad +ab +ab +ab +ab +bS +ab +ab +ab +bS +bS +bS +gV +gV +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(126,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 +ac +ac +aa +ac +aa +ac +ac +ac +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ab +ho +ho +ho +ho +ho +ho +ab +ab +bS +bS +gV +gW +gT +gT +gU +bS +bS +ab +ab +ac +ac +bS +bS +bS +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(127,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 +ac +aa +aa +aa +aa +ac +ac +ac +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +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 +ak +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ab +ho +iF +iR +jj +jy +ho +ab +ab +ab +bS +gW +gT +gT +gU +gV +bS +bS +bS +ab +ac +ac +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(128,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ad +ad +ad +ad +ad +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +ad +ad +ad +ad +ak +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 +ad +ad +ad +ak +ad +ad +ad +ad +ad +ad +ad +ad +cu +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ab +ab +ab +ab +ab +ab +ab +ho +iG +iS +iS +iS +ho +ab +ab +ab +bS +bS +bS +bS +gV +gW +gU +bS +bS +ab +ab +ac +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(129,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 +ac +ac +ac +ad +ad +ad +ad +ad +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bS +ac +ac +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ac +ac +ac +bS +ac +ac +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 +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 +ab +hl +ht +ab +ab +ab +ab +ho +iH +iS +jk +jz +ho +ho +ho +ab +ab +bS +bS +bS +gW +gU +gW +gU +bS +bS +ab +ac +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 +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(130,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 +ac +ac +ac +ac +ad +ad +ad +ad +ad +ac +ac +aa +aa +aa +aa +aa +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +ac +ac +ac +ac +ad +ad +ad +ad +ad +ac +ac +ac +bS +bS +ac +ac +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 +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 +ab +hm +hn +hl +hQ +hZ +hZ +iq +iI +iT +jl +iS +ho +ke +ho +ab +ab +ab +bS +bS +bS +gW +gU +gW +gU +bS +ab +ab +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 +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(131,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 +ac +ac +ac +ad +ad +ad +ad +ad +ac +ac +ac +aa +aa +aa +aa +bS +bS +ac +ac +ac +ac +ac +ac +ac +ac +bS +bS +bS +ac +ac +ad +ad +ad +ac +ac +ac +ac +ac +bS +bS +ac +ac +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 +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 +ab +hn +hu +cH +ab +ab +ab +ho +iJ +iS +jm +jA +ho +kf +ho +ab +ho +ho +ho +lT +bS +bS +gW +gU +gV +bS +bS +ab +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 +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(132,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 +ac +ac +ac +ac +ad +ak +ad +ad +ac +ac +ac +aa +aa +aa +aa +bS +bS +ac +ac +ac +ac +ac +ac +ac +ac +ac +bS +bS +bS +ac +ac +ac +ac +ac +bS +bS +bS +bS +bS +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +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 +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ab +ab +ab +ab +ab +ab +ab +ab +ho +iK +iU +jn +iS +ho +kg +ho +ho +ho +lH +lY +ho +bS +bS +mW +gV +gV +bS +bS +ab +ad +ad +ad +ac +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(133,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 +ac +ac +ac +ad +ad +ad +ad +ac +ac +aa +aa +aa +aa +aa +aa +bS +bS +bS +ac +ac +ac +ac +ac +ac +ac +ac +ac +bS +bS +ac +ac +ac +bS +bS +bS +bS +bS +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +bS +ac +ac +ac +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +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 +ad +ad +ad +ad +ab +ab +ab +ab +ho +ho +ho +ho +ho +ho +ho +ho +ho +ho +jB +ib +jo +kz +jo +ib +lI +lZ +ho +bS +bS +bS +gV +gV +bS +bS +ab +ad +ad +ac +ac +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(134,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 +ac +ac +ad +ad +ad +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +bS +bS +bS +ac +ac +ac +ac +ac +ac +ac +bS +bS +bS +bS +bS +bS +bS +aa +aa +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +bS +bS +ac +ac +ac +ad +ad +ad +ad +ac +ac +ac +ac +ac +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 +ad +ad +ad +ad +ab +hb +hb +hb +hb +hv +hB +ho +hv +hB +ho +hv +hB +ho +jp +jQ +jH +jH +kW +lq +lJ +ma +ho +bS +bS +bS +gV +gV +bS +bS +ab +ad +ac +ac +ac +ac +bS +bS +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +aa +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(135,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 +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +bS +bS +bS +ac +ac +ac +ac +ac +ac +bS +bS +bS +bS +bS +bS +aa +aa +aa +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +bS +bS +ac +ac +ac +ac +ad +ad +ac +ac +aa +ac +ac +ac +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 +ak +ad +ad +ad +ad +ab +hb +hc +hc +hb +hw +hC +ho +ia +hC +ho +iL +hC +ho +jC +jR +kh +kA +kX +ib +lK +mb +ho +bS +bS +bS +gV +gV +bS +bS +ab +ac +ac +ac +ac +bS +bS +bS +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(136,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 +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bS +bS +bS +ac +ac +ac +ac +bS +bS +cJ +bS +bS +cN +aa +aa +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +bS +ac +ac +ac +ac +ac +ac +ac +ac +aa +ac +ac +ac +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 +ad +ad +ad +ab +hb +hd +hg +hb +ho +hD +ho +ho +ii +ho +ho +iV +ho +jD +ib +jp +kB +kY +ho +ho +ho +ho +lT +bS +bS +gV +gV +bS +bS +ab +ac +ac +ac +bS +bS +bS +bS +bS +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(137,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 +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bS +bS +bS +bS +bS +bS +bS +cK +da +dm +dv +aa +aa +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +bS +bS +bS +ac +ac +ac +ac +ac +ac +aa +aa +ac +ac +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 +ad +ad +ad +ab +hb +he +hh +hp +hx +hx +hR +hx +hx +hx +hR +hx +hx +jE +jQ +jH +kC +kY +ho +lL +mc +ms +ho +bS +bS +gV +gV +bS +bS +ab +ac +ac +bS +bS +bS +ac +ac +bS +bS +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(138,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 +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bS +aa +aa +aa +aa +aa +cL +da +dm +dw +aa +aa +ac +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +bS +aa +aa +ac +ac +ac +ac +aa +aa +aa +ac +ac +ac +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 +ad +ad +ab +hb +hf +hi +hb +ho +ho +ho +ib +ib +ib +ho +ho +ho +ho +ho +jB +jD +kX +lr +lM +md +mt +ho +gM +bS +gV +gV +bS +ab +ab +bS +bS +bS +ac +ac +ac +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(139,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 +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cL +da +dm +dw +aa +aa +aa +aa +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +aa +aa +aa +ac +ac +ac +aa +aa +aa +ac +ac +ac +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 +ad +ad +ab +hb +hc +hj +hb +ab +bS +bS +bS +bS +bS +ho +iW +iW +jF +ho +ki +kD +kZ +ls +lN +md +mu +ho +gN +bS +gV +gV +bS +ab +ab +bS +bS +bS +ac +ac +ac +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(140,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 +cL +da +dm +dw +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +aa +aa +aa +ac +ac +aa +aa +aa +aa +ac +ac +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 +ad +ad +ab +hb +hb +hb +hb +ab +ab +bS +bS +bS +bS +ho +iX +jo +jo +ho +kj +kE +la +lt +lO +me +mv +ho +gN +bS +gV +gV +bS +bS +ab +bS +bS +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(141,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 +cL +db +dm +dw +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +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 +ad +ab +ab +ab +ab +ab +ab +ab +ab +bS +bS +bS +ib +iY +jo +jG +ho +jo +kE +lb +ho +lP +mf +mf +ho +gN +bS +gV +gV +bS +bS +bS +bS +bS +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(142,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 +cL +dc +dn +dw +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +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 +ad +ab +ab +ab +ab +ab +ab +ab +ab +bS +bS +bS +ib +iY +jo +jo +ho +jp +kF +kY +ho +ho +ho +ho +lT +gN +bS +gV +gV +bS +bS +bS +bS +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(143,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 +cL +dd +dm +dw +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ad +ak +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ak +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 +ac +ac +ac +ac +ac +ac +ac +ab +bS +bS +bS +ib +iY +jp +jH +jS +jH +kF +kY +ib +lQ +mg +ib +mC +gN +bS +gV +gV +bS +bS +bS +bS +bS +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(144,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 +cL +da +dm +dw +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +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 +ac +ac +ac +ac +ac +ac +ac +ab +bS +bS +bS +ho +ib +ib +ib +ho +jo +kE +kX +lu +lR +mh +mw +mC +gN +bS +gV +gV +bS +bS +bS +bS +bS +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(145,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 +cL +da +dm +dw +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +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 +ak +ak +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +ac +ac +ab +ab +bS +bS +bS +bS +bS +bS +ho +jo +kE +kX +ib +lS +mi +ib +mD +gO +bS +gV +gV +bS +bS +bS +bS +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(146,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 +cL +da +dm +dw +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ak +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +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 +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ab +ab +ab +bS +bS +bS +bS +ib +kk +kG +lc +ho +lT +ho +ho +mE +bS +bS +gV +gW +gT +gU +bS +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(147,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 +cL +da +dm +dw +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ak +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ak +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 +ac +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ab +bS +bS +bS +bS +ib +ib +kH +ld +ib +bS +bS +bS +bS +bS +bS +gW +gT +gU +gV +bS +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(148,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 +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aj +cM +da +dm +dx +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +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 +ac +ac +bS +bS +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ab +bS +bS +bS +bS +bS +ib +kG +ld +bS +bS +bS +bS +bS +bS +bS +bS +bS +gV +gV +bS +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(149,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 +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aj +aj +cN +bS +bS +cN +bS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ad +ad +ad +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +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 +ac +ac +ac +bS +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ab +bS +bS +bS +bS +bS +ib +kH +ld +bS +bS +bS +bS +bS +bS +bS +bS +gX +iC +iC +gM +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(150,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 +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aj +bS +bS +bS +bS +bS +bS +bS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +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 +ac +ac +ac +bS +bS +bS +ac +ac +ac +ac +ad +ad +ad +ad +ab +ac +bS +bS +bS +aa +kl +kI +le +bS +bS +bS +bS +bS +bS +bS +bS +gR +iD +iD +gO +ac +ac +ad +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ad +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(151,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aj +bS +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 +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +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 +ac +ac +ac +bS +aa +aa +ac +ac +ac +ac +ac +ad +ad +ac +ac +ac +ac +aa +aa +km +kI +le +aa +bS +bS +bS +bS +bS +bS +bS +bS +gV +gV +bS +ac +ac +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ad +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(152,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 +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aj +bS +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 +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +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 +ac +ac +ac +ac +aa +aa +aa +ac +ac +ac +ac +ac +ad +ac +ac +ac +aa +aa +aa +km +kI +le +aa +bS +bS +bS +aa +aj +bS +bS +bS +gV +gV +bS +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(153,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aj +bS +ab +ab +ab +ab +ae +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 +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +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 +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +km +kI +le +aa +aa +aj +aa +aa +aj +aa +bS +bS +gV +gV +bS +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(154,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 +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aj +bS +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +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 +ac +ac +ac +ac +ac +ac +ac +ac +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 +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +aa +aa +aa +aa +aa +km +kI +le +aa +aa +aj +aa +aa +aj +aa +aa +dk +nw +nI +dk +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(155,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 +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +ab +ab +ab +aj +cz +cN +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +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 +ac +ac +ac +ac +ac +ac +ac +ac +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 +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +aa +aa +aa +aa +aa +km +kI +le +aj +aj +aj +aj +aj +aj +aa +aa +dk +nx +nx +dk +bS +bS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(156,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 +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +aj +bS +cO +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +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 +ac +ac +ac +ac +ac +ak +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 +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +km +kI +le +aa +aa +aj +aa +aa +aj +aa +aa +aj +ny +ny +aj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(157,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 +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +aj +aj +bS +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +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 +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +km +kI +le +aa +aa +aj +aa +aa +aj +aa +aa +aa +ny +ny +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(158,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 +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +aa +bS +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +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 +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +kn +kJ +lf +aa +aa +aj +aa +aa +aj +aa +aa +aa +ny +ny +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(159,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 +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +aa +bS +bS +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +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 +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +kn +kJ +lf +aj +aj +aj +aj +aj +aj +aj +aj +aj +ny +ny +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(160,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 +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +aa +aa +bS +bS +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +ab +aa +aa +aa +aa +kn +kJ +lf +aa +aj +aa +aa +aa +aa +aa +aa +aa +ny +ny +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(161,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 +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +aa +aa +aa +aa +bS +cz +cN +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +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 +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ad +ad +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +bS +aj +aj +kn +kJ +lf +aa +aj +aa +aa +aa +aa +aa +aa +aa +ny +ny +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +aa +aa +aa +aa +aa +aa +bS +cO +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +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 +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +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 +bS +aa +aa +kn +kJ +lf +aa +aj +aa +aa +aa +aa +aa +aa +aa +ny +ny +aa +aa +aa +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(163,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 +ab +ab +ab +ab +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +bS +bS +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +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 +ac +ac +ac +ac +ac +ac +ac +aa +aa +aa +aa +aa +aa +aa +aa +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 +bS +bS +aa +kn +kJ +lf +aa +aj +aa +aa +aa +aa +aa +aa +aa +ny +ny +aa +aa +aa +aa +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 +"} +(164,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +aa +aa +aa +aa +aa +aa +ab +aa +aa +bS +bS +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +aa +aa +aa +ab +bS +bS +bS +aa +kn +kJ +lg +aa +aj +aa +aa +aa +mO +aa +aa +aa +ny +ny +aa +aa +aa +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 +"} +(165,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +bS +bS +bS +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +ab +ab +ab +ab +ab +ab +ab +bS +bS +bS +bS +jK +kK +lh +aj +aj +aj +aj +mF +mP +jK +aj +aj +ny +ny +aa +aa +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +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 +"} +(166,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 +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bS +bS +bS +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +bS +bS +bS +bS +bS +jK +kL +lh +aa +aj +aa +aa +jK +lv +jK +aa +aa +ny +ny +aa +aa +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +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 +"} +(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 +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +ab +ab +ab +ae +ae +ab +ab +ab +ab +cN +eI +bS +bS +cN +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ae +ae +ae +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 +ab +ab +ab +ab +bS +bS +bS +bS +bS +bS +bS +bS +jK +jK +kK +lh +jK +aj +aj +jK +mG +mP +jK +jK +np +nz +ny +aj +aa +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +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 +"} +(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 +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +bS +bS +bS +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bS +bS +bS +bS +bS +bS +bS +bS +bS +jI +jK +ko +kL +li +jK +jI +jI +jK +mH +lv +mX +jK +lB +jI +lB +aj +aa +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +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 +"} +(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 +ab +ab +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ab +ab +ab +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +bS +bS +bS +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +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 +bS +bS +bS +bS +bS +bS +bS +bS +gY +jJ +jT +kp +kM +lj +lv +lU +mj +lv +mI +mQ +mY +lv +nq +nA +nJ +aj +aa +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +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 +"} +(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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +bS +bS +bS +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +bS +bS +bS +bS +bS +gX +gM +bS +gV +jK +jU +kq +kN +lk +lw +lV +mk +mx +mx +mR +mZ +mx +nr +nB +jI +aj +aa +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +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 +"} +(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 +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +bS +bS +bS +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +ab +aa +aa +aa +aa +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +bS +gY +gT +gT +gT +gQ +gS +gT +gZ +jK +jV +kr +kO +ll +lx +lW +ml +ml +ml +mS +na +nj +nn +jU +jK +aj +aa +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +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 +"} +(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 +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +bS +bS +bS +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +bS +gV +gY +gT +gT +gQ +gS +iZ +jc +jc +jW +ks +jb +jI +ly +jI +mm +mm +mJ +mz +nb +nk +ns +mK +jK +aj +aa +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +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 +"} +(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 +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +bS +bS +bS +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +bS +bS +gV +gV +bS +bS +gR +gO +ja +jq +jL +jX +kt +kP +jI +lz +jI +jI +lh +jI +lh +nc +nl +lh +jI +jI +jI +aa +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +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 +"} +(174,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 +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +cN +eI +bS +bS +cN +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +ab +ab +ab +ab +ae +ae +ab +ab +ab +ab +aa +aa +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +bS +bS +gV +gV +bS +bS +bS +bS +jb +jr +jM +jY +jY +kQ +jJ +lA +jI +mn +my +mK +jU +nd +nm +nt +nC +nK +jI +aa +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +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 +"} +(175,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 +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +bS +bS +bS +bS +bS +bS +bS +bS +bS +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ab +ab +ab +aa +aa +aa +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +bS +bS +gV +gV +bS +bS +bS +bS +jb +js +jN +jZ +jZ +kR +jI +lB +jI +mo +ko +lv +lv +ne +nn +nu +nD +jI +jI +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +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 +"} +(176,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 +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +aa +aa +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +bS +bS +gV +gV +bS +bS +bS +bS +jc +js +jO +ka +jZ +kS +jI +lC +jI +mp +kp +mL +mT +nf +nn +nv +nE +jI +ae +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +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 +"} +(177,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 +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +aa +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +bS +bS +gV +gV +bS +bS +bS +bS +jc +jc +jc +jb +ku +jb +jI +lD +jI +mq +mz +mM +mU +ng +no +jK +nF +jI +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +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 +"} +(178,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +bS +bS +bS +bS +bS +dy +et +et +dy +et +et +dy +bS +bS +bS +bS +bS +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +aa +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +bS +bS +gV +gV +bS +bS +bS +bS +bS +bS +jc +kb +kv +kT +jI +lD +jI +mr +mA +jI +jK +nh +jK +jK +nG +jI +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +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 +"} +(179,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +bS +bS +bS +bS +bS +dy +eu +eJ +eZ +fs +fI +dy +bS +bS +bS +bS +bS +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +aa +aa +aa +ab +ab +ab +ab +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +bS +bS +bS +bS +gV +gV +bS +bS +bS +bS +bS +jt +jc +kc +kw +kU +jI +lE +jI +mr +mB +mN +mV +ni +mV +mV +nH +jI +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +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 +"} +(180,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 +ab +ab +ab +aa +aa +aa +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +bS +bS +bS +bS +bS +dy +ev +eA +fa +eA +eA +et +gg +gt +bS +bS +bS +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +aa +aa +bS +ab +ab +ab +ab +ae +ae +ae +ae +ab +ab +ab +ab +ab +bS +bS +bS +gY +gZ +gV +bS +bS +bS +bS +bS +bS +jc +jb +kx +jb +jI +lF +jI +jI +jI +jI +jI +jI +jI +jI +jI +jI +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +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 +"} +(181,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 +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ab +ab +bS +bS +dy +dy +dy +dy +ew +eK +fb +ft +fJ +et +gh +gt +bS +bS +bS +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +bS +bS +ab +ab +ab +ab +ae +ae +ae +ab +ab +bS +bS +bS +bS +bS +gY +gZ +gY +gZ +bS +bS +bS +bS +bS +bS +jP +kd +ky +kV +lm +lG +lX +bS +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +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 +"} +(182,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 +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ab +ab +bS +bS +dy +dI +dU +dy +et +et +fc +et +et +dy +gi +gt +bS +bS +bS +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +bS +bS +bS +ab +ab +ab +ae +ae +ab +ab +bS +gY +gT +gT +gT +gZ +gY +gZ +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +ln +lG +lp +bS +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(183,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 +ab +ab +ab +ae +ae +ae +ae +ae +ae +ab +ab +bS +bS +dz +dJ +dV +eh +ex +eL +fb +eA +fK +dy +dy +dy +dy +bS +bS +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +bS +bS +ab +ab +ae +ae +ab +ab +bS +gV +gY +gT +gT +gT +gZ +bS +bS +bS +bS +bS +ab +ab +ab +bS +bS +bS +bS +lo +lG +lp +bS +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +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 +"} +(184,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 +ab +ab +ab +ae +ae +ae +ae +ae +ae +ab +ab +bS +bS +dy +dK +dW +ei +ey +eM +fd +fu +eA +et +gj +gu +et +gM +bS +bS +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +bS +ab +ab +ae +ae +ab +ab +bS +gV +gV +bS +bS +bS +bS +bS +ab +ab +ab +ab +ab +ab +ab +ab +bS +bS +bS +ln +lG +lp +bS +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +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 +"} +(185,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 +ab +ab +ae +ae +ae +ae +ae +ae +ab +ab +bS +bS +dy +dL +dX +dy +ez +eN +fe +fe +fe +fQ +eA +gv +gH +gN +bS +bS +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +ab +ab +ab +ab +bS +bS +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +ab +ae +ae +ab +ab +bS +gV +gV +bS +bS +bS +bS +ab +ab +ab +ab +ae +ae +ae +ae +ab +ha +ha +bS +lp +lp +lp +bS +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +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 +"} +(186,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 +ab +ab +ae +ae +ae +ae +ae +ae +ab +ab +bS +bS +dy +dy +dy +dy +eA +dy +ff +fv +fv +et +gk +gw +et +gO +gM +bS +ab +ab +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +ab +ab +ab +ab +bS +bS +bS +bS +bS +bS +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +ae +ae +ab +ab +bS +gV +gV +bS +bS +bS +ab +ab +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ha +bS +bS +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +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 +"} +(187,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 +ab +ab +ab +ae +ae +ae +ae +ae +ae +ab +ab +bS +bS +bS +bS +bS +dy +eA +dy +fg +fw +fw +fw +fw +fw +fw +gP +gS +gT +gT +gU +bS +bS +ab +ab +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +ab +ab +ab +ab +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +bS +gV +gV +bS +bS +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +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 +"} +(188,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 +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ab +ab +bS +bS +bS +bS +bS +dy +eA +eO +fh +fh +fh +fh +fh +fh +gI +gQ +gS +gT +gU +gV +bS +bS +bS +bS +bS +bS +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +gX +gM +bS +bS +bS +bS +bS +bS +bS +ab +ab +ab +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +bS +gV +gV +bS +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +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 +"} +(189,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 +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ab +ab +bS +bS +bS +bS +bS +dy +eB +eP +fi +bS +bS +bS +bS +bS +bS +gR +gO +bS +gV +gW +gT +gT +gT +gT +gU +bS +bS +bS +bS +bS +ab +ab +ab +ab +ab +ab +ab +ab +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +gY +gT +gT +gT +gT +gT +gT +gT +gT +gQ +gS +gT +gT +gT +gT +gT +gU +bS +bS +bS +bS +bS +bS +ab +ab +ab +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ab +ab +bS +bS +gV +gV +bS +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +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 +"} +(190,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 +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ab +ab +bS +bS +bS +bS +bS +dy +eC +eQ +fj +bS +bS +bS +bS +bS +bS +bS +bS +bS +gW +gT +gT +gT +gT +gU +gW +gT +gT +gT +gU +bS +gX +gM +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +gY +gT +gT +gT +gT +gZ +gY +gT +gT +gT +gT +gT +gT +gT +gQ +gS +gT +gT +gT +gT +gU +gW +gT +gT +gT +gT +gU +bS +bS +bS +bS +bS +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bS +gY +gZ +gV +bS +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +nL +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(191,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 +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ab +ab +bS +bS +bS +bS +bS +dy +eD +eQ +fk +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +gW +gT +gT +gT +gU +gW +gT +gQ +gS +gT +gT +gT +gT +gT +gT +gT +gT +gT +gT +gT +gT +gT +gZ +gY +gT +gT +gT +gT +gZ +bS +bS +bS +bS +bS +bS +bS +gR +gO +bS +bS +bS +bS +gW +gT +gT +gT +gT +gU +gW +gT +gT +gT +gU +bS +bS +bS +bS +bS +bS +ab +ab +ab +ab +ab +ab +ab +bS +gV +gY +gZ +bS +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +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 +"} +(192,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 +ab +ab +ab +ae +ae +ae +ae +ae +ab +ab +ab +ab +bS +bS +bS +dy +eE +eR +bS +bS +bS +bS +bS +bS +bS +bS +bS +ab +ab +ab +ab +bS +bS +bS +bS +bS +bS +gW +gT +gT +gQ +gS +gT +gT +gT +gT +gT +gT +gT +gT +gT +gT +gT +gT +gT +gT +gZ +bS +bS +bS +bS +bS +bS +ab +ab +ab +ab +ab +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +gW +gT +gT +gT +gU +gW +gT +gT +gT +gT +gU +bS +bS +bS +bS +bS +bS +ab +ab +bS +gV +gV +bS +bS +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +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 +"} +(193,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 +ab +ab +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +bS +bS +dy +dy +dy +bS +bS +bS +bS +bS +bS +bS +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bS +bS +bS +bS +bS +gR +gO +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +gW +gT +gT +gT +gT +gU +gW +gT +gT +gT +gT +gU +bS +gX +gM +bS +gV +gV +bS +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +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 +"} +(194,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 +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +ab +ab +ab +ab +ae +ae +ae +ae +ab +ab +ab +ab +ab +ab +ab +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +ab +ab +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +ab +ab +ab +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +gW +gT +gT +gT +gT +gU +gW +gT +gQ +gS +gT +gZ +gV +bS +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +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 +"} +(195,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 +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +ab +ab +bS +bS +bS +bS +bS +bS +bS +ab +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +ab +ab +ab +ab +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +gW +gT +gT +gQ +gS +gT +gT +gZ +bS +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +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 +"} +(196,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 +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +bS +bS +ab +ab +ab +bS +bS +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +ab +ab +ab +ab +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +gR +gO +bS +bS +bS +bS +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +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 +"} +(197,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 +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +ab +bS +bS +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +ab +ab +ab +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +bS +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +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 +"} +(198,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 +ab +ab +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +bS +bS +bS +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +ab +ab +ab +bS +bS +bS +bS +bS +bS +bS +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +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 +"} +(199,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 +ab +ab +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +bS +bS +bS +bS +bS +bS +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +ab +ab +ab +ab +bS +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +ae +ae +ab +ab +ab +ab +aa +ab +ab +ab +ae +ae +ae +ae +ae +ae +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 +"} +(200,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 +ab +ab +ab +ab +aa +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +bS +bS +bS +bS +bS +bS +bS +bS +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +ab +ae +ae +ab +ab +ab +aa +aa +aa +ab +ab +ae +ae +ae +ae +ae +ae +ab +ab +ab +aa +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 +"} +(201,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 +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +bS +bS +bS +ab +ab +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +aa +ab +ab +ae +ae +ab +ab +aa +aa +aa +aa +ab +ab +ae +ae +ae +ae +ae +ae +ab +ab +aa +aa +aa +aa +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 +"} +(202,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 +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +bS +bS +ab +ab +ab +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +aa +aa +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +ab +ab +ae +ae +ae +ae +ae +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 +"} +(203,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +aa +aa +ab +ab +ab +ab +ab +ab +aa +aa +aa +ab +ab +ab +ae +ae +ae +ae +ae +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 +"} +(204,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +aa +aa +ab +ab +ab +ab +ab +aa +aa +ab +ab +ab +ab +ab +ab +ae +ae +ae +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 +"} +(205,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +ab +aa +ab +ab +ab +ab +aa +aa +aa +aa +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 +"} +(206,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 +ab +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +aa +aa +aa +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +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 +"} +(207,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 +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +aa +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(208,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 +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +aa +aa +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +"} +(209,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 +ab +ab +ae +ae +ae +ae +ab +ab +ab +ab +ab +ab +ab +ab +ae +ae +ae +ab +ab +ab +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +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 +"} +(210,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 +ab +ab +ab +ae +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 +ab +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +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 +"} +(211,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bS +bS +bS +bS +bS +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +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 +"} +(212,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 +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bS +bS +bS +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +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 +"} +(213,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 +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bS +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +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 +"} +(214,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 +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +aa +aa +aa +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +ab +ae +ae +ae +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +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 +"} +(215,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 +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 +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ae +ab +ab +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ae +ae +ae +ae +ab +ab +ab +ab +aa +aa +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 +"} +(216,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 +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +ab +ab +ab +ab +ab +ab +ab +aa +aa +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ae +ae +ab +ab +aa +aa +aa +aa +aa +aa +aa +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 +"} +(217,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 +ab +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +aa +aa +aa +aa +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(218,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ae +ae +ae +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +"} +(219,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ae +ae +ae +ae +ae +ab +ab +ab +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 +ae +ae +ae +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +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 +"} +(220,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 +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +ab +ab +ae +ae +ae +ae +ae +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +aa +ab +ab +ab +ae +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 +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 +"} +(221,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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ae +ae +ae +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +aa +aa +ab +ab +ab +ab +ab +ab +ab +aa +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(222,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 +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ae +ae +ae +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 +ab +ab +ab +ab +ab +aa +aa +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(223,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 +ab +ab +ab +ae +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 +ab +ab +ab +ab +aa +aa +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(224,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 +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 +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(225,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 +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 +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(226,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 +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 +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(227,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 +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 +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(228,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 +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 +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(229,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 +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(230,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 +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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(231,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(232,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(233,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(234,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(235,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(236,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(237,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(238,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(239,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(240,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(241,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(242,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(243,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(244,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(245,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(246,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(247,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(248,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(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 +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} diff --git a/_maps/map_files/generic/z6.dmm b/_maps/map_files/generic/z6.dmm new file mode 100644 index 0000000..c71d2e7 --- /dev/null +++ b/_maps/map_files/generic/z6.dmm @@ -0,0 +1,259 @@ +"a" = (/turf/open/space,/area/space) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +"} diff --git a/_maps/map_files/generic/z7.dmm b/_maps/map_files/generic/z7.dmm new file mode 100644 index 0000000..c71d2e7 --- /dev/null +++ b/_maps/map_files/generic/z7.dmm @@ -0,0 +1,259 @@ +"a" = (/turf/open/space,/area/space) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +"} diff --git a/_maps/map_files/generic/z8.dmm b/_maps/map_files/generic/z8.dmm new file mode 100644 index 0000000..c71d2e7 --- /dev/null +++ b/_maps/map_files/generic/z8.dmm @@ -0,0 +1,259 @@ +"a" = (/turf/open/space,/area/space) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +"} diff --git a/_maps/map_files/generic/z9.dmm b/_maps/map_files/generic/z9.dmm new file mode 100644 index 0000000..c71d2e7 --- /dev/null +++ b/_maps/map_files/generic/z9.dmm @@ -0,0 +1,259 @@ +"a" = (/turf/open/space,/area/space) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +"} diff --git a/_maps/metastation.dm b/_maps/metastation.dm new file mode 100644 index 0000000..9987cd2 --- /dev/null +++ b/_maps/metastation.dm @@ -0,0 +1,29 @@ +#if !defined(MAP_FILE) + + #define TITLESCREEN "title" //Add an image in misc/fullscreen.dmi, and set this define to the icon_state, to set a custom titlescreen for your map + + #define MINETYPE "lavaland" + + #include "map_files\MetaStation\MetaStation.dmm" + #include "map_files\generic\z2.dmm" + #include "map_files\generic\z3.dmm" + #include "map_files\generic\z4.dmm" + #include "map_files\generic\lavaland.dmm" + #include "map_files\generic\z6.dmm" + #include "map_files\generic\z7.dmm" + #include "map_files\generic\z8.dmm" + #include "map_files\generic\z9.dmm" + #include "map_files\generic\z10.dmm" + #include "map_files\generic\z11.dmm" + + #define MAP_PATH "map_files/MetaStation" + #define MAP_FILE "MetaStation.dmm" + #define MAP_NAME "MetaStation" + + #define MAP_TRANSITION_CONFIG DEFAULT_MAP_TRANSITION_CONFIG + +#elif !defined(MAP_OVERRIDE) + + #warn a map has already been included, ignoring MetaStation. + +#endif diff --git a/_maps/ministation.dm b/_maps/ministation.dm new file mode 100644 index 0000000..c013f89 --- /dev/null +++ b/_maps/ministation.dm @@ -0,0 +1,85 @@ +/* +MiniStation FAQ - Mod Created By Giacom + + +What is it? + +A mod of tgstation 13 that is modified for low population servers; with simplified jobs, maps, duties and command structure. + +How do I run it? + +Simply tick this file, and only this file in the _maps folder, then compile and you will be running MiniStation. + +Who is the target audience? + +Server hosters who want to host a server for a player count of around 5 to 20 people. + +What about the map? + +The map has been created from the ground up with population size in mind. + +What about the jobs? + +Many jobs have been combined or just plainly cut out. These are the remaining jobs with their duties next to them. + + * Captain - Make sure your station is running. + * HoP - You're second in command, protect the Captain and be his right hand man. + * Cargo Tech x3 - Running cargo bay and mining minerals for the station. + * Bartender - Keeping the bar, serving drinks and food. Hire the unemployeed to grow food for you, or do it yourself. + * Janitor - Cleans the station, removes litter and empty trash bins to be recycled by the crusher. + * Station Engineer x4 - Keeping the power running and fixing station damage. + * Security Officer x4 - Protecting the crewmembers and serving space law. + * Detective - Using forensic science to help security officers catch criminals. + * Scientist x4 - Research and development of new technologies and create bombs. + * Medical Doctor x4 - Healing the crew, performing surgeries and cloning dead crew. + * Chemist - Creating useful chemicals for the crew to use. + * Clown - Create laughter and boost the morale of the crew. Honk! + * Assistant xInfinity - Not in charge at all. + +There will be 26 job slots (not including Assistant) available on MiniStation; the HoP can add more from his ID computer. +There is a more simplified command system, with the Captain being the big boss and the HoP being second in command. +The heads will have control over all departments and jobs. + +What else has changed? + +Changes to the uplinks were made to discourage murderboning, the rest is the same. + +*/ + +#if !defined(MAP_FILE) + + #define TITLESCREEN "title" //Add an image in misc/fullscreen.dmi, and set this define to the icon_state, to set a custom titlescreen for your map + + #define MINETYPE "mining" + + #include "map_files\MiniStation\MiniStation.dmm" + #include "map_files\generic\z2.dmm" + #include "map_files\generic\z3.dmm" + #include "map_files\generic\z4.dmm" + #include "map_files\MiniStation\z5.dmm" + #include "map_files\generic\z6.dmm" + #include "map_files\generic\z7.dmm" + #include "map_files\generic\z8.dmm" + #include "map_files\generic\z9.dmm" + #include "map_files\generic\z10.dmm" + #include "map_files\generic\z11.dmm" + + #define MAP_PATH "map_files/MiniStation" + #define MAP_FILE "MiniStation.dmm" + #define MAP_NAME "MiniStation" + + #define MAP_TRANSITION_CONFIG DEFAULT_MAP_TRANSITION_CONFIG + + #if !defined(MAP_OVERRIDE_FILES) + #define MAP_OVERRIDE_FILES + #include "map_files\MiniStation\misc.dm" + #include "map_files\MiniStation\cargopacks.dm" + #include "map_files\MiniStation\job\jobs.dm" + #include "map_files\MiniStation\job\removed.dm" + #endif + +#elif !defined(MAP_OVERRIDE) + + #warn a map has already been included, ignoring ministation. + +#endif diff --git a/_maps/pubbystation.dm b/_maps/pubbystation.dm new file mode 100644 index 0000000..0f1241d --- /dev/null +++ b/_maps/pubbystation.dm @@ -0,0 +1,35 @@ +#if !defined(MAP_FILE) + + #define TITLESCREEN "title" //Add an image in misc/fullscreen.dmi, and set this define to the icon_state, to set a custom titlescreen for your map + + #define MINETYPE "lavaland" + + #include "map_files\PubbyStation\PubbyStation.dmm" + #include "map_files\generic\z2.dmm" + #include "map_files\generic\z3.dmm" + #include "map_files\generic\z4.dmm" + #include "map_files\generic\lavaland.dmm" + #include "map_files\generic\z6.dmm" + #include "map_files\generic\z7.dmm" + #include "map_files\generic\z8.dmm" + #include "map_files\generic\z9.dmm" + #include "map_files\generic\z10.dmm" + #include "map_files\generic\z11.dmm" + + #define MAP_PATH "map_files/PubbyStation" + #define MAP_FILE "PubbyStation.dmm" + #define MAP_NAME "PubbyStation" + + #define MAP_TRANSITION_CONFIG DEFAULT_MAP_TRANSITION_CONFIG + + #if !defined(MAP_OVERRIDE_FILES) + #define MAP_OVERRIDE_FILES + #include "map_files\PubbyStation\job\job_changes.dm" + #include "map_files\PubbyStation\job\removed_jobs.dm" + #endif + +#elif !defined(MAP_OVERRIDE) + + #warn a map has already been included, ignoring PubbyStation. + +#endif diff --git a/_maps/shuttles/cargo_birdboat.dmm b/_maps/shuttles/cargo_birdboat.dmm new file mode 100644 index 0000000..f74e28f --- /dev/null +++ b/_maps/shuttles/cargo_birdboat.dmm @@ -0,0 +1,269 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/closed/wall/mineral/titanium/overspace, +/area/shuttle/supply) +"b" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/supply) +"c" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s10"; + dir = 2 + }, +/area/shuttle/supply) +"d" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall3"; + dir = 2 + }, +/area/shuttle/supply) +"e" = ( +/obj/machinery/conveyor{ + dir = 2; + id = "cargoshuttle"; + name = "cargo shuttle conveyor belt" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/supply) +"f" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "cargoshuttle"; + name = "cargo shuttle conveyor belt" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/supply) +"g" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "cargoshuttle"; + name = "cargo shuttle conveyor belt" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/supply) +"h" = ( +/obj/machinery/conveyor{ + dir = 9; + id = "cargoshuttle"; + name = "cargo shuttle conveyor belt" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/supply) +"i" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "cargoshuttle"; + name = "cargo shuttle conveyor belt" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/supply) +"j" = ( +/obj/machinery/conveyor{ + dir = 10; + id = "cargoshuttle"; + name = "cargo shuttle conveyor belt" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/supply) +"k" = ( +/obj/machinery/conveyor{ + dir = 6; + id = "cargoshuttle"; + name = "cargo shuttle conveyor belt" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/supply) +"l" = ( +/obj/machinery/door/poddoor{ + id = "QMLoaddoor2"; + name = "supply dock loading door" + }, +/obj/machinery/conveyor{ + dir = 8; + id = "cargoshuttle"; + name = "cargo shuttle conveyor belt" + }, +/turf/open/floor/plating, +/area/shuttle/supply) +"m" = ( +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/supply) +"n" = ( +/turf/open/floor/mineral/titanium, +/area/shuttle/supply) +"o" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Supply Shuttle Airlock"; + req_access_txt = "31" + }, +/turf/open/floor/plating, +/area/shuttle/supply) +"p" = ( +/obj/machinery/button/door{ + dir = 2; + id = "QMLoaddoor2"; + name = "Loading Doors"; + pixel_x = 24; + pixel_y = 8 + }, +/obj/machinery/button/door{ + id = "QMLoaddoor"; + name = "Loading Doors"; + pixel_x = 24; + pixel_y = -8 + }, +/obj/machinery/conveyor_switch/oneway{ + id = "cargoshuttle" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/supply) +"q" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Supply Shuttle Airlock"; + req_access_txt = "31" + }, +/obj/docking_port/mobile/supply{ + dwidth = 3; + width = 10; + timid = 1 + }, +/turf/open/floor/plating, +/area/shuttle/supply) +"r" = ( +/obj/machinery/door/poddoor{ + id = "QMLoaddoor"; + name = "supply dock loading door" + }, +/obj/machinery/conveyor{ + dir = 4; + id = "cargoshuttle"; + name = "cargo shuttle conveyor belt" + }, +/turf/open/floor/plating, +/area/shuttle/supply) +"s" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/supply) +"t" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall14"; + dir = 2 + }, +/area/shuttle/supply) +"u" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/shuttle/engine/heater, +/turf/open/floor/plating/airless, +/area/shuttle/supply) +"v" = ( +/turf/closed/wall/shuttle{ + icon_state = "swallc4"; + dir = 2 + }, +/area/shuttle/supply) +"w" = ( +/turf/open/space, +/area/space) +"x" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "burst_l" + }, +/turf/open/floor/plating/airless, +/area/shuttle/supply) +"y" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/open/floor/plating/airless, +/area/shuttle/supply) +"z" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "burst_r" + }, +/turf/open/floor/plating/airless, +/area/shuttle/supply) + +(1,1,1) = {" +b +b +b +b +b +b +b +b +b +w +"} +(2,1,1) = {" +b +e +g +e +m +m +m +g +b +x +"} +(3,1,1) = {" +b +f +g +f +m +m +m +g +u +y +"} +(4,1,1) = {" +b +f +g +f +m +m +m +g +u +y +"} +(5,1,1) = {" +b +f +h +j +m +m +m +g +u +y +"} +(6,1,1) = {" +b +f +i +k +n +p +n +g +b +z +"} +(7,1,1) = {" +b +b +b +l +o +b +q +r +b +w +"} diff --git a/_maps/shuttles/cargo_box.dmm b/_maps/shuttles/cargo_box.dmm new file mode 100644 index 0000000..e1f2a02 --- /dev/null +++ b/_maps/shuttles/cargo_box.dmm @@ -0,0 +1,244 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/closed/wall/mineral/titanium/overspace, +/area/shuttle/supply) +"b" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/supply) +"c" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s10"; + dir = 2 + }, +/area/shuttle/supply) +"d" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall3"; + dir = 2 + }, +/area/shuttle/supply) +"e" = ( +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/supply) +"f" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "QMLoad2" + }, +/obj/machinery/door/poddoor{ + id = "QMLoaddoor2"; + name = "supply dock loading door" + }, +/turf/open/floor/plating, +/area/shuttle/supply) +"g" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Supply Shuttle Airlock"; + req_access_txt = "31" + }, +/turf/open/floor/plating, +/area/shuttle/supply) +"h" = ( +/obj/machinery/button/door{ + dir = 2; + id = "QMLoaddoor2"; + name = "Loading Doors"; + pixel_x = 24; + pixel_y = 8 + }, +/obj/machinery/button/door{ + id = "QMLoaddoor"; + name = "Loading Doors"; + pixel_x = 24; + pixel_y = -8 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/supply) +"i" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Supply Shuttle Airlock"; + req_access_txt = "31" + }, +/obj/docking_port/mobile/supply{ + dwidth = 5; + width = 12; + timid = 1 + }, +/turf/open/floor/plating, +/area/shuttle/supply) +"j" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "QMLoad" + }, +/obj/machinery/door/poddoor{ + id = "QMLoaddoor"; + name = "supply dock loading door" + }, +/turf/open/floor/plating, +/area/shuttle/supply) +"k" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall7"; + dir = 2 + }, +/area/shuttle/supply) +"l" = ( +/turf/open/floor/mineral/titanium/blue, +/turf/closed/wall/mineral/titanium/interior, +/area/shuttle/supply) +"m" = ( +/turf/open/floor/plasteel/shuttle, +/turf/closed/wall/shuttle/interior{ + icon_state = "swall_f6" + }, +/area/shuttle/supply) +"n" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall11"; + dir = 2 + }, +/area/shuttle/supply) +"o" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s5"; + dir = 2 + }, +/area/shuttle/supply) +"p" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall15"; + dir = 2 + }, +/area/shuttle/supply) +"q" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/shuttle/engine/heater, +/turf/open/floor/plating/airless, +/area/shuttle/supply) +"r" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s9"; + dir = 2 + }, +/area/shuttle/supply) +"s" = ( +/turf/open/space, +/area/space) +"t" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "burst_l" + }, +/turf/open/floor/plating/airless, +/area/shuttle/supply) +"u" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/open/floor/plating/airless, +/area/shuttle/supply) +"v" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "burst_r" + }, +/turf/open/floor/plating/airless, +/area/shuttle/supply) + +(1,1,1) = {" +b +b +b +b +b +b +b +b +b +b +b +s +"} +(2,1,1) = {" +b +e +e +e +e +e +e +e +e +l +b +t +"} +(3,1,1) = {" +b +e +e +e +e +e +e +e +e +e +q +u +"} +(4,1,1) = {" +b +e +e +e +e +e +e +e +e +e +q +u +"} +(5,1,1) = {" +b +e +e +e +e +e +e +e +e +e +q +u +"} +(6,1,1) = {" +b +e +e +e +e +h +e +e +e +l +b +v +"} +(7,1,1) = {" +b +b +b +f +g +b +i +j +b +b +b +s +"} diff --git a/_maps/shuttles/emergency_airless.dmm b/_maps/shuttles/emergency_airless.dmm new file mode 100644 index 0000000..17c492a --- /dev/null +++ b/_maps/shuttles/emergency_airless.dmm @@ -0,0 +1,381 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/open/space, +/area/space) +"b" = ( +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"c" = ( +/turf/closed/wall, +/area/shuttle/escape) +"d" = ( +/obj/structure/fireaxecabinet, +/turf/closed/wall, +/area/shuttle/escape) +"e" = ( +/obj/structure/closet/malf, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"f" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"g" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"h" = ( +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"i" = ( +/obj/machinery/computer/emergency_shuttle, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"j" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"k" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"l" = ( +/turf/open/floor/plating, +/area/shuttle/escape) +"m" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"n" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"o" = ( +/obj/docking_port/mobile/emergency{ + name = "Shuttle Under Construction"; + timid = 1 + }, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"p" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 4; + name = "4maintenance loot spawner" + }, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"q" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/shuttle/engine/heater, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"r" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"s" = ( +/obj/machinery/status_display, +/turf/closed/wall, +/area/shuttle/escape) + +(1,1,1) = {" +a +a +a +a +a +a +b +l +b +o +b +b +b +b +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +b +c +s +c +b +b +b +b +b +b +b +b +b +b +b +b +c +c +c +a +a +"} +(3,1,1) = {" +b +b +e +e +e +b +b +m +m +m +m +m +b +b +b +b +b +b +b +b +q +r +"} +(4,1,1) = {" +c +b +b +b +b +b +b +n +n +n +n +n +b +b +b +b +b +b +b +b +q +r +"} +(5,1,1) = {" +c +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +q +r +"} +(6,1,1) = {" +c +b +b +b +b +b +b +m +m +m +m +m +b +b +b +b +b +b +b +b +q +r +"} +(7,1,1) = {" +d +b +b +b +b +b +b +n +n +n +n +n +b +b +b +b +b +b +b +b +q +r +"} +(8,1,1) = {" +c +b +f +h +j +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +q +r +"} +(9,1,1) = {" +c +b +g +i +k +b +b +m +m +m +m +m +b +b +b +p +p +p +b +b +q +r +"} +(10,1,1) = {" +a +b +c +c +c +b +b +b +b +b +b +b +b +b +b +c +s +c +b +c +a +a +"} +(11,1,1) = {" +a +a +a +a +a +a +c +c +c +c +c +b +c +c +a +a +a +a +a +a +a +a +"} diff --git a/_maps/shuttles/emergency_asteroid.dmm b/_maps/shuttles/emergency_asteroid.dmm new file mode 100644 index 0000000..5f2ade3 --- /dev/null +++ b/_maps/shuttles/emergency_asteroid.dmm @@ -0,0 +1,930 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/open/space, +/area/space) +"ab" = ( +/turf/closed/wall/mineral/titanium/overspace, +/area/shuttle/escape) +"ac" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"ad" = ( +/obj/structure/window/shuttle, +/obj/structure/grille, +/turf/open/floor/plating, +/area/shuttle/escape) +"ae" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock" + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"af" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s10"; + dir = 2 + }, +/area/shuttle/escape) +"ag" = ( +/turf/open/space, +/area/space/nearstation) +"ah" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/escape) +"ai" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"aj" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock" + }, +/obj/docking_port/mobile/emergency{ + dir = 2; + dwidth = 10; + height = 13; + name = "Asteroid emergency shuttle"; + width = 28; + timid = 1 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"ak" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall12"; + dir = 2 + }, +/area/shuttle/escape) +"al" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock"; + req_access_txt = "2" + }, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"am" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion"; + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"an" = ( +/obj/structure/shuttle/engine/heater{ + icon_state = "heater"; + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"ao" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall11"; + dir = 2 + }, +/area/shuttle/escape) +"ap" = ( +/obj/structure/ore_box, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"aq" = ( +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"ar" = ( +/obj/machinery/recharge_station, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"as" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall7"; + dir = 2 + }, +/area/shuttle/escape) +"at" = ( +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"au" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall3"; + dir = 2 + }, +/area/shuttle/escape) +"av" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"aw" = ( +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"ax" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"ay" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall15"; + dir = 2 + }, +/area/shuttle/escape) +"az" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/escape) +"aA" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall13"; + dir = 2 + }, +/area/shuttle/escape) +"aB" = ( +/turf/open/floor/mineral/titanium, +/turf/closed/wall/mineral/titanium/interior, +/area/shuttle/escape) +"aC" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_f11" + }, +/area/shuttle/escape) +"aD" = ( +/obj/structure/window/shuttle, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"aE" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + dir = 8; + name = "Station Intercom (General)"; + pixel_x = -28 + }, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"aF" = ( +/obj/machinery/suit_storage_unit, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"aG" = ( +/obj/machinery/door/airlock/mining{ + name = "Emergency Shuttle Storage"; + req_access_txt = "0" + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"aH" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = 30 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"aI" = ( +/obj/structure/closet, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"aJ" = ( +/obj/structure/table, +/obj/item/weapon/extinguisher, +/obj/item/weapon/crowbar, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"aK" = ( +/obj/structure/chair, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"aL" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/fire, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 2; + pixel_y = 3 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"aM" = ( +/obj/structure/closet/emcloset, +/obj/item/device/radio/intercom{ + broadcasting = 0; + name = "Station Intercom (General)"; + pixel_y = 23 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"aN" = ( +/obj/structure/bed/roller, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"aO" = ( +/turf/closed/wall/shuttle{ + icon_state = "swallc1"; + dir = 2 + }, +/area/shuttle/escape) +"aP" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Emergency Shuttle Brig"; + req_access_txt = "2" + }, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"aQ" = ( +/obj/structure/bed, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"aR" = ( +/obj/machinery/computer/station_alert, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"aS" = ( +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"aT" = ( +/obj/structure/chair/office/light{ + name = "Chief Engineer" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"aU" = ( +/obj/structure/chair/office/light{ + name = "Captain" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"aV" = ( +/obj/structure/chair/office/light{ + name = "Head of Security" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"aW" = ( +/obj/item/device/radio/intercom{ + broadcasting = 0; + name = "Station Intercom (General)"; + pixel_y = 23 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"aX" = ( +/obj/machinery/ai_status_display, +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"aY" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"aZ" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"ba" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"bb" = ( +/obj/machinery/computer/security, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"bc" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin{ + pixel_x = -1; + pixel_y = 6 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"bd" = ( +/obj/machinery/computer/emergency_shuttle, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"be" = ( +/obj/structure/table, +/obj/item/weapon/folder/blue, +/obj/item/weapon/pen, +/obj/machinery/recharger, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"bf" = ( +/obj/machinery/ai_slipper, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"bg" = ( +/obj/machinery/door/airlock/glass_command{ + name = "Emergency Shuttle Cockpit"; + req_access_txt = "19" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"bh" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/escape) +"bi" = ( +/obj/machinery/status_display, +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"bj" = ( +/obj/machinery/computer/communications, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"bk" = ( +/obj/structure/chair/office/light{ + dir = 1; + name = "Research Director" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"bl" = ( +/obj/structure/chair/office/light{ + dir = 1; + name = "Head of Personnel" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"bm" = ( +/obj/structure/chair/office/light{ + dir = 1; + name = "Chief Medical Officer" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"bn" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = -30 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"bo" = ( +/obj/machinery/status_display, +/turf/closed/wall/shuttle{ + icon_state = "swall2"; + dir = 2 + }, +/area/shuttle/escape) +"bp" = ( +/obj/machinery/computer/crew, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"bq" = ( +/obj/machinery/door/airlock/glass_medical{ + id_tag = null; + name = "Escape Shuttle Infirmary"; + req_access_txt = "5" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"br" = ( +/obj/machinery/door/airlock/glass_medical{ + id_tag = null; + name = "Escape Shuttle Infirmary"; + req_access_txt = "0" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"bs" = ( +/obj/structure/bed, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"bt" = ( +/obj/structure/sink{ + icon_state = "sink"; + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/structure/mirror{ + pixel_x = -30 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"bu" = ( +/obj/machinery/door/airlock{ + name = "Emergency Shuttle Restroom" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"bv" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"bw" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -29 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"bx" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = -30 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"by" = ( +/obj/structure/table, +/obj/item/weapon/extinguisher, +/obj/item/weapon/crowbar, +/obj/machinery/recharger, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"bz" = ( +/obj/machinery/sleeper{ + icon_state = "sleeper-open"; + dir = 8 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"bA" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s9"; + dir = 2 + }, +/area/shuttle/escape) +"bB" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s5"; + dir = 2 + }, +/area/shuttle/escape) +"bC" = ( +/obj/item/device/radio/intercom{ + dir = 8; + name = "Station Intercom (General)"; + pixel_x = -28 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"bD" = ( +/obj/structure/closet/secure_closet/medical2, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"bE" = ( +/obj/structure/toilet{ + dir = 1 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"bF" = ( +/obj/structure/table, +/obj/item/weapon/retractor, +/obj/item/weapon/hemostat, +/obj/item/weapon/scalpel, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"bG" = ( +/obj/structure/table/optable, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"bH" = ( +/obj/structure/table, +/obj/item/weapon/circular_saw, +/obj/item/weapon/cautery{ + pixel_x = 4 + }, +/obj/item/weapon/surgical_drapes, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"bI" = ( +/obj/structure/window/shuttle, +/obj/structure/grille, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) + +(1,1,1) = {" +aa +aa +ac +am +ac +ad +ad +bI +ac +am +ac +aa +aa +"} +(2,1,1) = {" +ac +am +ac +an +ac +aR +aS +bj +ac +an +ac +am +ac +"} +(3,1,1) = {" +ac +an +ac +ac +ac +aS +aS +aS +ac +ac +ac +an +ac +"} +(4,1,1) = {" +ac +ac +az +aF +ac +aT +bc +bk +ac +bt +az +ac +ac +"} +(5,1,1) = {" +ad +ap +aq +aq +ac +aU +bd +bl +ac +at +bu +bE +ad +"} +(6,1,1) = {" +ae +aq +aq +aq +ac +aV +be +bm +ac +at +ac +ac +ac +"} +(7,1,1) = {" +ad +ar +aq +aq +ac +aW +bf +bn +ac +at +bu +bE +ad +"} +(8,1,1) = {" +ac +ac +ac +aG +ac +aX +bg +bi +az +bu +az +ac +ac +"} +(9,1,1) = {" +ag +ac +ac +aH +at +at +at +at +at +at +ac +ac +aa +"} +(10,1,1) = {" +ag +ag +ac +aI +at +aY +aY +aY +at +bv +ac +aa +aa +"} +(11,1,1) = {" +ah +ah +aB +aJ +at +aZ +ah +aK +at +aL +ac +aa +aa +"} +(12,1,1) = {" +ai +at +at +at +at +aZ +ah +aK +at +aS +ac +aa +aa +"} +(13,1,1) = {" +ah +ah +aB +aK +at +aZ +ah +aK +at +bw +ac +aa +aa +"} +(14,1,1) = {" +ag +ag +ad +aK +at +aZ +ah +aK +at +aZ +ad +aa +aa +"} +(15,1,1) = {" +ag +ag +ad +aK +at +at +at +at +at +aZ +ad +aa +aa +"} +(16,1,1) = {" +ag +ag +ad +aK +at +aZ +ah +aK +at +aZ +ad +aa +aa +"} +(17,1,1) = {" +ah +ah +aB +aK +at +aZ +ah +aK +at +bx +ac +aa +aa +"} +(18,1,1) = {" +aj +at +at +at +at +aZ +ah +aK +at +aS +ac +aa +aa +"} +(19,1,1) = {" +ah +ah +aB +aL +at +aZ +ah +aK +at +by +ac +aa +aa +"} +(20,1,1) = {" +ag +ag +ac +aM +at +ba +ba +ba +at +aI +ac +aa +aa +"} +(21,1,1) = {" +ag +ac +ac +aN +at +at +at +at +at +aN +ac +ac +aa +"} +(22,1,1) = {" +ac +ac +ac +ad +aP +ad +bi +ad +br +ad +ac +ac +ac +"} +(23,1,1) = {" +ac +av +aE +av +aw +bb +ac +bp +at +at +bC +bF +ac +"} +(24,1,1) = {" +al +aw +aw +aw +aw +aw +ad +at +at +at +at +bG +ad +"} +(25,1,1) = {" +ac +ax +ax +ax +aw +aw +ac +at +at +bz +bD +bH +ac +"} +(26,1,1) = {" +ac +ac +ac +ac +ad +aP +ac +bq +ad +ac +ac +ac +ac +"} +(27,1,1) = {" +aa +aa +ac +ac +aQ +aw +ad +at +bs +ac +ac +aa +aa +"} +(28,1,1) = {" +ag +ag +ag +ac +ac +ad +ac +ad +ac +ac +aa +aa +aa +"} diff --git a/_maps/shuttles/emergency_bar.dmm b/_maps/shuttles/emergency_bar.dmm new file mode 100644 index 0000000..f866a19 --- /dev/null +++ b/_maps/shuttles/emergency_bar.dmm @@ -0,0 +1,867 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/open/space, +/area/space) +"ab" = ( +/turf/closed/wall/mineral/titanium/overspace, +/area/shuttle/escape) +"ac" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/escape) +"ad" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s10"; + dir = 2 + }, +/area/shuttle/escape) +"ae" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/escape) +"af" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp/green, +/turf/open/floor/carpet, +/area/shuttle/escape) +"ag" = ( +/obj/structure/chair/comfy/brown{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/shuttle/escape) +"ah" = ( +/obj/machinery/computer/emergency_shuttle, +/turf/open/floor/carpet, +/area/shuttle/escape) +"ai" = ( +/obj/structure/table/wood, +/obj/item/weapon/storage/fancy/cigarettes/cigars/havana, +/obj/item/weapon/lighter{ + pixel_x = -4; + pixel_y = 6 + }, +/turf/open/floor/carpet, +/area/shuttle/escape) +"aj" = ( +/turf/closed/wall/shuttle{ + tag = "icon-swallc3"; + icon_state = "swallc3"; + dir = 2 + }, +/area/shuttle/escape) +"ak" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = 30 + }, +/turf/open/floor/plasteel/freezer, +/area/shuttle/escape) +"al" = ( +/obj/machinery/computer/atmos_alert, +/turf/open/floor/carpet, +/area/shuttle/escape) +"am" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/shuttle/escape) +"an" = ( +/turf/open/floor/carpet, +/area/shuttle/escape) +"ao" = ( +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/shuttle/escape) +"ap" = ( +/obj/machinery/computer/security, +/turf/open/floor/carpet, +/area/shuttle/escape) +"aq" = ( +/obj/machinery/computer/crew, +/turf/open/floor/carpet, +/area/shuttle/escape) +"ar" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = -30 + }, +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/shuttle/escape) +"as" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = -29 + }, +/turf/open/floor/carpet, +/area/shuttle/escape) +"at" = ( +/obj/machinery/button/flasher{ + id = "cockpit_flasher"; + pixel_x = 6; + pixel_y = -24 + }, +/obj/structure/table/wood/poker, +/obj/item/weapon/storage/box/drinkingglasses, +/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey, +/turf/open/floor/carpet, +/area/shuttle/escape) +"au" = ( +/obj/machinery/computer/communications, +/turf/open/floor/carpet, +/area/shuttle/escape) +"av" = ( +/turf/closed/wall/shuttle{ + tag = "icon-swall13"; + icon_state = "swall13"; + dir = 2 + }, +/area/shuttle/escape) +"aw" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall12"; + dir = 2 + }, +/area/shuttle/escape) +"ax" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall14"; + dir = 2 + }, +/area/shuttle/escape) +"ay" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall8"; + dir = 2 + }, +/area/shuttle/escape) +"az" = ( +/obj/machinery/door/airlock/glass{ + name = "Emergency Shuttle Cockpit"; + req_access_txt = "19" + }, +/turf/open/floor/carpet, +/area/shuttle/escape) +"aA" = ( +/obj/machinery/status_display, +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"aB" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall4"; + dir = 2 + }, +/area/shuttle/escape) +"aC" = ( +/obj/structure/chair, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"aD" = ( +/obj/machinery/flasher{ + id = "cockpit_flasher"; + pixel_x = 6; + pixel_y = 24 + }, +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/bar, +/area/shuttle/escape) +"aE" = ( +/turf/open/floor/plasteel/bar, +/area/shuttle/escape) +"aF" = ( +/obj/structure/piano{ + icon_state = "piano"; + name = "space piano"; + tag = "icon-piano" + }, +/turf/open/floor/plasteel/grimy, +/area/shuttle/escape) +"aG" = ( +/obj/structure/chair/stool{ + can_buckle = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/shuttle/escape) +"aH" = ( +/obj/machinery/flasher{ + id = "shuttle_flasher"; + pixel_x = -24; + pixel_y = 6 + }, +/obj/machinery/button/flasher{ + id = "shuttle_flasher"; + pixel_x = -24; + pixel_y = -6 + }, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"aI" = ( +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"aJ" = ( +/obj/machinery/door/airlock/glass{ + name = "Emergency Shuttle Brig"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/bar, +/area/shuttle/escape) +"aK" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock"; + req_access_txt = "2" + }, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"aL" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = -30 + }, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"aM" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"aN" = ( +/obj/structure/chair/stool/bar{ + can_buckle = 1; + name = "buckable bar stool" + }, +/turf/open/floor/plasteel/bar, +/area/shuttle/escape) +"aO" = ( +/obj/structure/table/wood/bar{ + boot_dir = 9 + }, +/turf/open/floor/plasteel/bar, +/area/shuttle/escape) +"aP" = ( +/obj/structure/table/wood/bar, +/turf/open/floor/plasteel/bar, +/area/shuttle/escape) +"aQ" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall7"; + dir = 2 + }, +/area/shuttle/escape) +"aR" = ( +/obj/structure/table/wood/bar{ + boot_dir = 8 + }, +/turf/open/floor/plasteel/bar, +/area/shuttle/escape) +"aS" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0 + }, +/obj/structure/table, +/obj/item/weapon/storage/box/drinkingglasses, +/obj/item/weapon/reagent_containers/food/drinks/bottle/lizardwine, +/turf/open/floor/plasteel/bar, +/area/shuttle/escape) +"aT" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock" + }, +/obj/docking_port/mobile/emergency{ + name = "The Emergency Escape Bar"; + timid = 1 + }, +/turf/open/floor/plasteel/bar, +/area/shuttle/escape) +"aU" = ( +/mob/living/simple_animal/hostile/alien/maid/barmaid, +/turf/open/floor/plasteel/bar, +/area/shuttle/escape) +"aV" = ( +/obj/structure/table, +/obj/machinery/chem_dispenser/drinks/beer, +/turf/open/floor/plasteel/bar, +/area/shuttle/escape) +"aW" = ( +/obj/structure/chair/wood/normal, +/turf/open/floor/plasteel/grimy, +/area/shuttle/escape) +"aX" = ( +/mob/living/simple_animal/drone/snowflake/bardrone, +/turf/open/floor/plasteel/bar, +/area/shuttle/escape) +"aY" = ( +/obj/machinery/vending/boozeomat, +/turf/open/floor/plasteel/bar, +/area/shuttle/escape) +"aZ" = ( +/obj/structure/chair/wood/normal{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/shuttle/escape) +"ba" = ( +/obj/structure/table/wood/bar, +/obj/effect/spawner/lootdrop/gambling, +/turf/open/floor/plasteel/grimy, +/area/shuttle/escape) +"bb" = ( +/obj/structure/table, +/obj/machinery/chem_dispenser/drinks, +/turf/open/floor/plasteel/bar, +/area/shuttle/escape) +"bc" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/grimy, +/area/shuttle/escape) +"bd" = ( +/obj/structure/table/wood/bar{ + boot_dir = 10 + }, +/turf/open/floor/plasteel/bar, +/area/shuttle/escape) +"be" = ( +/obj/structure/table/wood/bar{ + boot_dir = 2 + }, +/turf/open/floor/plasteel/bar, +/area/shuttle/escape) +"bf" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall1"; + dir = 2 + }, +/area/shuttle/escape) +"bg" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock" + }, +/turf/open/floor/plasteel/bar, +/area/shuttle/escape) +"bh" = ( +/obj/machinery/shower{ + dir = 4 + }, +/turf/open/floor/plasteel/shuttle/white, +/area/shuttle/escape) +"bi" = ( +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"bj" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/firstaid/regular, +/obj/item/weapon/storage/firstaid/toxin{ + pixel_x = 4; + pixel_y = 4 + }, +/turf/open/floor/plasteel/shuttle/white, +/area/shuttle/escape) +"bk" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/bar, +/area/shuttle/escape) +"bl" = ( +/turf/closed/wall/shuttle{ + icon_state = "swallc2"; + dir = 2 + }, +/area/shuttle/escape) +"bm" = ( +/obj/machinery/door/airlock{ + name = "Unisex Restrooms"; + req_access_txt = "0" + }, +/turf/open/floor/plasteel/freezer, +/area/shuttle/escape) +"bn" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/obj/structure/sign/bluecross_2, +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"bo" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock" + }, +/turf/open/floor/plasteel/freezer, +/area/shuttle/escape) +"bp" = ( +/turf/open/floor/plasteel/freezer, +/area/shuttle/escape) +"bq" = ( +/obj/machinery/door/airlock/glass_medical{ + name = "Medbay" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"br" = ( +/obj/machinery/sleeper{ + dir = 8 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"bs" = ( +/obj/machinery/door/airlock{ + name = "Unit 1" + }, +/turf/open/floor/plasteel/freezer, +/area/shuttle/escape) +"bt" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"bu" = ( +/obj/machinery/door/airlock{ + name = "Unit 2" + }, +/turf/open/floor/plasteel/freezer, +/area/shuttle/escape) +"bv" = ( +/obj/machinery/door/airlock{ + name = "Unit B" + }, +/turf/open/floor/plasteel/freezer, +/area/shuttle/escape) +"bw" = ( +/obj/structure/table/optable, +/obj/item/weapon/surgical_drapes, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"bx" = ( +/obj/structure/toilet{ + dir = 4; + icon_state = "toilet00"; + tag = "icon-toilet00 (NORTH)" + }, +/turf/open/floor/plasteel/freezer, +/area/shuttle/escape) +"by" = ( +/obj/machinery/recharge_station, +/turf/open/floor/plasteel/freezer, +/area/shuttle/escape) +"bz" = ( +/obj/structure/table, +/obj/item/weapon/circular_saw, +/obj/item/weapon/hemostat, +/obj/item/weapon/retractor, +/obj/item/weapon/scalpel, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"bA" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + icon_state = "diagonalWall3" + }, +/area/shuttle/escape) +"bB" = ( +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/escape) +"bC" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/shuttle/engine/heater, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"bD" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" + }, +/area/shuttle/escape) +"bE" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"bF" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plasteel/freezer, +/area/shuttle/escape) +"bG" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1; + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/bar, +/area/shuttle/escape) +"bH" = ( +/turf/open/floor/plasteel/grimy, +/area/shuttle/escape) +"bI" = ( +/obj/structure/table/wood/bar, +/obj/item/device/instrument/guitar, +/turf/open/floor/plasteel/bar, +/area/shuttle/escape) +"bJ" = ( +/obj/structure/table/wood/bar, +/obj/item/weapon/storage/fancy/donut_box, +/turf/open/floor/plasteel/grimy, +/area/shuttle/escape) +"bK" = ( +/obj/structure/chair/wood/normal{ + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/shuttle/escape) +"bL" = ( +/obj/structure/table/wood/bar, +/turf/open/floor/plasteel/grimy, +/area/shuttle/escape) +"bM" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/shuttle/escape) +"bN" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/drinkingglasses, +/obj/item/weapon/reagent_containers/food/drinks/shaker, +/obj/item/weapon/storage/fancy/cigarettes/cigars/havana, +/turf/open/floor/plasteel/bar, +/area/shuttle/escape) +"bO" = ( +/obj/structure/table/wood/bar, +/obj/item/weapon/folder/red, +/turf/open/floor/plasteel/grimy, +/area/shuttle/escape) +"bP" = ( +/obj/structure/table/wood/bar, +/obj/item/toy/cards/deck/cas, +/obj/item/toy/cards/deck/cas/black{ + pixel_y = 6 + }, +/turf/open/floor/plasteel/grimy, +/area/shuttle/escape) +"bQ" = ( +/obj/structure/chair/wood/normal{ + dir = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/shuttle/escape) +"bR" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = -30 + }, +/turf/open/floor/plasteel/bar, +/area/shuttle/escape) +"bS" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular, +/obj/item/weapon/storage/firstaid/toxin{ + pixel_x = 4; + pixel_y = 4 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"bT" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + tag = "icon-plant-10"; + icon_state = "plant-10" + }, +/turf/open/floor/plasteel/bar, +/area/shuttle/escape) +"bU" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/fire, +/obj/item/weapon/storage/firstaid/brute{ + pixel_x = 4; + pixel_y = 4 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"bV" = ( +/obj/structure/table/wood/bar{ + boot_dir = 8 + }, +/obj/effect/fun_balloon/sentience/emergency_shuttle{ + group_name = "bar staff on the Emergency Escape Bar" + }, +/turf/open/floor/plasteel/bar, +/area/shuttle/escape) + +(1,1,1) = {" +aa +aa +aa +aa +bt +bt +bt +aK +bt +aT +bt +ac +ac +ac +bt +bg +bt +bo +bt +bt +bt +aa +"} +(2,1,1) = {" +aa +bt +bt +bt +bt +aC +aH +aL +bt +aE +bH +aZ +bc +aZ +bH +aE +bt +bp +bs +bx +bt +bt +"} +(3,1,1) = {" +bt +ae +al +aq +bt +aC +aI +aM +bt +aE +aW +ba +bL +bO +bQ +bR +bt +bp +bt +bt +bC +bE +"} +(4,1,1) = {" +ac +af +am +ar +bt +aC +aI +aM +bt +aE +aW +bJ +bM +bP +bQ +aE +bt +ak +bu +bx +bC +bE +"} +(5,1,1) = {" +ac +ag +an +as +bt +ac +aJ +ac +ae +aE +bH +bK +bH +bK +bH +aE +aA +bp +bt +bt +bC +bE +"} +(6,1,1) = {" +ac +ah +an +at +bt +aD +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +bm +bp +bv +by +bC +bE +"} +(7,1,1) = {" +ac +ag +an +an +az +aE +aE +aN +aN +aN +aN +aN +aN +aN +aE +aE +ae +bt +bt +bt +bC +bE +"} +(8,1,1) = {" +ac +ai +ao +ao +aA +bG +aE +aO +aR +bV +aR +aR +aR +bd +aN +aE +bn +bi +bw +bz +bC +bE +"} +(9,1,1) = {" +bt +ae +ap +au +bt +aF +bH +aP +aE +aU +aX +aE +aE +be +aE +aE +bq +bi +bi +bS +bC +bE +"} +(10,1,1) = {" +aa +bt +bt +bt +bt +aG +bH +bI +aS +aV +aY +bb +bN +be +bT +bk +bF +br +br +bU +bt +bt +"} +(11,1,1) = {" +aa +aa +aa +aa +bt +ac +bt +ac +bt +bt +bt +ac +ac +ac +bt +bt +bt +ac +bt +ac +bt +aa +"} diff --git a/_maps/shuttles/emergency_birdboat.dmm b/_maps/shuttles/emergency_birdboat.dmm new file mode 100644 index 0000000..0e9d590 --- /dev/null +++ b/_maps/shuttles/emergency_birdboat.dmm @@ -0,0 +1,552 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/open/space, +/area/space) +"b" = ( +/turf/closed/wall/mineral/titanium/overspace, +/area/shuttle/escape) +"c" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"d" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/escape) +"e" = ( +/obj/structure/table, +/obj/item/weapon/scalpel, +/obj/item/weapon/retractor{ + pixel_x = 0; + pixel_y = 5 + }, +/obj/item/weapon/hemostat, +/turf/open/floor/plasteel/white, +/area/shuttle/escape) +"f" = ( +/obj/structure/table, +/obj/item/weapon/cautery, +/obj/item/weapon/surgicaldrill, +/obj/item/weapon/circular_saw{ + pixel_y = 9 + }, +/turf/open/floor/plasteel/white, +/area/shuttle/escape) +"g" = ( +/turf/open/floor/plasteel/white, +/area/shuttle/escape) +"h" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_r"; + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"i" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/escape) +"j" = ( +/obj/machinery/computer/emergency_shuttle, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"k" = ( +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"l" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"m" = ( +/obj/structure/chair, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"n" = ( +/obj/structure/table/optable, +/obj/item/weapon/surgical_drapes, +/turf/open/floor/plasteel/white, +/area/shuttle/escape) +"o" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion"; + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"p" = ( +/obj/machinery/computer/communications, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"q" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"r" = ( +/obj/machinery/door/airlock/glass_command{ + name = "bridge door"; + req_access_txt = "19" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"s" = ( +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"t" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_l"; + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"u" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = -32 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"v" = ( +/obj/structure/table, +/obj/machinery/recharger{ + active_power_usage = 0; + idle_power_usage = 0; + pixel_y = 4; + use_power = 0 + }, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"w" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/handcuffs, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"x" = ( +/obj/machinery/door/airlock/glass_security{ + name = "security airlock"; + req_access_txt = "63" + }, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"y" = ( +/obj/machinery/door/airlock/glass, +/turf/open/floor/plasteel/white, +/area/shuttle/escape) +"z" = ( +/obj/item/weapon/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + layer = 4.1 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"A" = ( +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"B" = ( +/turf/open/floor/plasteel/black, +/area/shuttle/escape) +"C" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/black, +/area/shuttle/escape) +"D" = ( +/obj/structure/table, +/turf/open/floor/plasteel/black, +/area/shuttle/escape) +"E" = ( +/obj/machinery/door/airlock/shuttle, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"F" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/black, +/area/shuttle/escape) +"G" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/snacks/boiledspaghetti{ + name = "pasghetti"; + pixel_x = 4; + pixel_y = 7 + }, +/turf/open/floor/plasteel/black, +/area/shuttle/escape) +"H" = ( +/obj/machinery/door/airlock/shuttle, +/obj/docking_port/mobile/emergency{ + dheight = 0; + dir = 8; + dwidth = 6; + height = 18; + port_angle = 90; + width = 14; + timid = 1; + name = "Birdboat emergency escape shuttle" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"I" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/snacks/chocolatebar, +/turf/open/floor/plasteel/black, +/area/shuttle/escape) +"J" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/black, +/area/shuttle/escape) +"K" = ( +/obj/structure/chair, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 2 + }, +/turf/open/floor/plasteel/black, +/area/shuttle/escape) +"L" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/turf/open/floor/plasteel/white, +/area/shuttle/escape) +"M" = ( +/obj/structure/table/glass, +/obj/item/weapon/storage/firstaid/fire{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/weapon/storage/firstaid/toxin, +/turf/open/floor/plasteel/white, +/area/shuttle/escape) +"N" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/shuttle/escape) +"O" = ( +/obj/structure/table/glass, +/obj/item/weapon/storage/firstaid/brute{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/weapon/storage/firstaid/brute, +/turf/open/floor/plasteel/white, +/area/shuttle/escape) +"P" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = -32 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"Q" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/black, +/area/shuttle/escape) +"R" = ( +/obj/machinery/sleeper{ + icon_state = "sleeper-open"; + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/shuttle/escape) +"S" = ( +/obj/structure/table/glass, +/obj/item/weapon/defibrillator/loaded, +/turf/open/floor/plasteel/white, +/area/shuttle/escape) + +(1,1,1) = {" +a +a +c +c +d +c +d +d +d +d +d +c +a +a +"} +(2,1,1) = {" +a +c +i +p +l +d +z +F +F +F +z +i +c +a +"} +(3,1,1) = {" +a +c +j +q +k +r +A +A +A +A +A +N +c +a +"} +(4,1,1) = {" +a +d +k +k +k +c +B +B +D +A +A +N +c +a +"} +(5,1,1) = {" +a +d +k +k +u +c +C +C +I +A +A +N +c +a +"} +(6,1,1) = {" +a +c +l +k +l +c +D +G +D +A +A +N +i +c +"} +(7,1,1) = {" +a +c +c +r +d +c +A +A +A +A +A +A +z +c +"} +(8,1,1) = {" +a +c +m +s +s +d +z +A +A +A +A +A +P +c +"} +(9,1,1) = {" +a +c +m +s +s +x +A +A +J +K +A +A +Q +d +"} +(10,1,1) = {" +a +c +m +s +s +d +A +A +J +K +A +A +Q +d +"} +(11,1,1) = {" +a +c +m +s +v +c +A +A +J +K +A +A +Q +d +"} +(12,1,1) = {" +a +c +m +s +w +c +A +A +J +K +A +A +z +c +"} +(13,1,1) = {" +c +c +c +c +c +i +A +A +c +c +y +d +c +c +"} +(14,1,1) = {" +c +e +n +g +g +y +A +A +y +L +g +g +R +c +"} +(15,1,1) = {" +c +f +g +g +g +y +A +A +y +g +g +g +g +c +"} +(16,1,1) = {" +c +g +g +g +c +c +E +E +c +c +M +O +S +c +"} +(17,1,1) = {" +c +c +c +c +c +c +A +A +c +c +c +c +c +c +"} +(18,1,1) = {" +c +h +o +t +c +c +E +H +c +c +h +o +t +c +"} diff --git a/_maps/shuttles/emergency_box.dmm b/_maps/shuttles/emergency_box.dmm new file mode 100644 index 0000000..c271224 --- /dev/null +++ b/_maps/shuttles/emergency_box.dmm @@ -0,0 +1,642 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/open/space, +/area/space) +"ab" = ( +/turf/closed/wall/mineral/titanium/overspace, +/area/shuttle/escape) +"ac" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/escape) +"ad" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s10"; + dir = 2 + }, +/area/shuttle/escape) +"ae" = ( +/turf/open/floor/mineral/titanium, +/turf/closed/wall/mineral/titanium/interior, +/area/shuttle/escape) +"af" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/fire, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"ag" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"ah" = ( +/obj/machinery/computer/emergency_shuttle, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"ai" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/weapon/crowbar, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"aj" = ( +/turf/open/floor/plasteel/shuttle/white, +/turf/closed/wall/shuttle/interior{ + icon_state = "swall_f5" + }, +/area/shuttle/escape) +"ak" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"al" = ( +/obj/machinery/computer/atmos_alert, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"am" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"an" = ( +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"ao" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"ap" = ( +/obj/machinery/computer/security, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"aq" = ( +/obj/machinery/computer/crew, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"ar" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = -30 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"as" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = -29 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"at" = ( +/obj/machinery/button/flasher{ + id = "cockpit_flasher"; + pixel_x = 6; + pixel_y = -24 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"au" = ( +/obj/machinery/computer/communications, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"av" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall13"; + dir = 2 + }, +/area/shuttle/escape) +"aw" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall12"; + dir = 2 + }, +/area/shuttle/escape) +"ax" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall14"; + dir = 2 + }, +/area/shuttle/escape) +"ay" = ( +/obj/machinery/door/airlock/glass{ + name = "Emergency Shuttle Cockpit"; + req_access_txt = "19" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"az" = ( +/obj/machinery/status_display, +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"aA" = ( +/obj/structure/chair, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"aB" = ( +/obj/machinery/flasher{ + id = "cockpit_flasher"; + pixel_x = 6; + pixel_y = 24 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"aC" = ( +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"aD" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"aE" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/fire, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/weapon/crowbar, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"aF" = ( +/obj/machinery/flasher{ + id = "shuttle_flasher"; + pixel_x = -24; + pixel_y = 6 + }, +/obj/machinery/button/flasher{ + id = "shuttle_flasher"; + pixel_x = -24; + pixel_y = -6 + }, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"aG" = ( +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"aH" = ( +/obj/machinery/door/airlock/glass{ + name = "Emergency Shuttle Brig"; + req_access_txt = "2" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"aI" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock"; + req_access_txt = "2" + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"aJ" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"aK" = ( +/obj/structure/chair, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"aL" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"aM" = ( +/obj/structure/table, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"aN" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall7"; + dir = 2 + }, +/area/shuttle/escape) +"aO" = ( +/turf/closed/wall/shuttle{ + icon_state = "swallc4"; + dir = 2 + }, +/area/shuttle/escape) +"aP" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock" + }, +/obj/docking_port/mobile/emergency{ + timid = 1; + name = "Box emergency shuttle" + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"aQ" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"aR" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"aS" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"aT" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"aU" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"aV" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock" + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"aW" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = -30 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"aX" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Cargo" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"aY" = ( +/obj/machinery/status_display, +/turf/closed/wall/shuttle{ + icon_state = "swall14"; + dir = 2 + }, +/area/shuttle/escape) +"aZ" = ( +/obj/machinery/door/airlock/glass{ + name = "Emergency Shuttle Infirmary" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"ba" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall11"; + dir = 2 + }, +/area/shuttle/escape) +"bb" = ( +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"bc" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"bd" = ( +/obj/machinery/sleeper{ + icon_state = "sleeper-open"; + dir = 8 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"be" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/fire, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/weapon/crowbar, +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"bf" = ( +/obj/structure/closet, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"bg" = ( +/obj/structure/closet/crate, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"bh" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s5"; + dir = 2 + }, +/area/shuttle/escape) +"bi" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/shuttle/engine/heater, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"bj" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/escape) +"bk" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/open/floor/plating/airless, +/area/shuttle/escape) + +(1,1,1) = {" +aa +aa +aa +aa +ak +ak +ak +aI +ak +aP +ak +ac +ac +ac +ak +aV +ak +aV +ak +ak +ak +aa +"} +(2,1,1) = {" +aa +ak +ak +ak +ak +aA +aF +aG +ak +an +aL +aL +aL +aL +aL +an +ak +bb +bb +bf +ak +ak +"} +(3,1,1) = {" +ak +ae +al +aq +ak +aA +aG +aJ +ak +aQ +an +an +an +an +an +aW +ak +bb +bb +bf +bi +bk +"} +(4,1,1) = {" +ac +af +am +ar +ak +aA +aG +aJ +ak +an +aS +aS +aS +aS +aS +an +aX +bb +bb +bg +bi +bk +"} +(5,1,1) = {" +ac +ag +an +as +ak +ac +aH +ac +bj +an +aT +aT +aT +aT +aT +an +ak +bc +bb +bg +bi +bk +"} +(6,1,1) = {" +ac +ah +an +at +ak +aB +an +aK +aM +an +an +an +an +an +an +an +az +ak +ak +ak +bi +bk +"} +(7,1,1) = {" +ac +ag +an +an +ay +an +an +aL +aM +an +aS +aS +aS +aS +aS +an +ac +aD +aC +aD +bi +bk +"} +(8,1,1) = {" +ac +ai +ao +ao +az +aC +an +aM +aM +an +aT +aT +aT +aT +aT +an +aZ +aC +aC +aC +bi +bk +"} +(9,1,1) = {" +ak +ae +ap +au +ak +aD +an +an +an +an +an +an +an +an +an +an +ac +aC +aC +aC +bi +bk +"} +(10,1,1) = {" +aa +ak +ak +ak +ak +aE +aC +aC +aC +aR +aU +aU +aU +aU +aU +aR +ac +bd +be +bd +ak +ak +"} +(11,1,1) = {" +aa +aa +aa +aa +ak +ac +ak +ac +ak +ak +ak +ac +ac +ac +ak +ak +ak +ac +ak +ac +ak +aa +"} diff --git a/_maps/shuttles/emergency_clown.dmm b/_maps/shuttles/emergency_clown.dmm new file mode 100644 index 0000000..9ff252d --- /dev/null +++ b/_maps/shuttles/emergency_clown.dmm @@ -0,0 +1,567 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/open/space, +/area/space) +"b" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"c" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/escape) +"d" = ( +/turf/open/floor/mineral/titanium, +/turf/closed/wall/mineral/titanium/interior, +/area/shuttle/escape) +"e" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/fire, +/turf/open/floor/noslip, +/area/shuttle/escape) +"f" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/bluespace, +/area/shuttle/escape) +"g" = ( +/obj/machinery/computer/emergency_shuttle, +/turf/open/floor/bluespace, +/area/shuttle/escape) +"h" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/weapon/crowbar, +/turf/open/floor/noslip, +/area/shuttle/escape) +"i" = ( +/obj/machinery/computer/atmos_alert, +/turf/open/floor/noslip, +/area/shuttle/escape) +"j" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/bluespace, +/area/shuttle/escape) +"k" = ( +/obj/item/toy/snappop/phoenix, +/turf/open/floor/bluespace, +/area/shuttle/escape) +"l" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/bluespace, +/area/shuttle/escape) +"m" = ( +/obj/machinery/computer/security, +/turf/open/floor/noslip, +/area/shuttle/escape) +"n" = ( +/obj/machinery/computer/crew, +/turf/open/floor/noslip, +/area/shuttle/escape) +"o" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = -30 + }, +/turf/open/floor/bluespace, +/area/shuttle/escape) +"p" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = -29 + }, +/obj/item/toy/snappop/phoenix, +/turf/open/floor/bluespace, +/area/shuttle/escape) +"q" = ( +/obj/machinery/computer/communications, +/turf/open/floor/noslip, +/area/shuttle/escape) +"r" = ( +/obj/machinery/door/airlock/glass{ + name = "Emergency Shuttle Premium Lounge"; + req_access_txt = "0" + }, +/turf/open/floor/bluespace, +/area/shuttle/escape) +"s" = ( +/obj/machinery/status_display, +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"t" = ( +/turf/open/chasm/straight_down/lava_land_surface/normal_air, +/area/shuttle/escape) +"u" = ( +/turf/open/floor/noslip, +/area/shuttle/escape) +"v" = ( +/obj/structure/closet/emcloset, +/obj/item/toy/sword, +/turf/open/floor/noslip, +/area/shuttle/escape) +"w" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/fire, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/weapon/crowbar, +/turf/open/floor/noslip, +/area/shuttle/escape) +"x" = ( +/obj/item/weapon/greentext/quiet{ + anchored = 1 + }, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"y" = ( +/obj/machinery/door/airlock/glass{ + name = "Emergency Shuttle Greentext"; + req_access_txt = "0" + }, +/turf/open/floor/bluespace, +/area/shuttle/escape) +"z" = ( +/obj/structure/chair, +/turf/open/floor/noslip, +/area/shuttle/escape) +"A" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/noslip, +/area/shuttle/escape) +"B" = ( +/obj/structure/table, +/obj/item/device/multitool/ai_detect, +/turf/open/floor/noslip, +/area/shuttle/escape) +"C" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/escape) +"D" = ( +/obj/structure/table, +/obj/item/toy/sword, +/turf/open/floor/noslip, +/area/shuttle/escape) +"E" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock" + }, +/obj/docking_port/mobile/emergency{ + name = "Snappop(tm)!"; + timid = 1 + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"F" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/obj/item/toy/snappop/phoenix, +/turf/open/floor/bluespace, +/area/shuttle/escape) +"G" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0 + }, +/obj/item/toy/snappop/phoenix, +/turf/open/floor/bluespace, +/area/shuttle/escape) +"H" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/random, +/turf/open/floor/noslip, +/area/shuttle/escape) +"I" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/bed, +/obj/item/weapon/bedsheet/random, +/turf/open/floor/noslip, +/area/shuttle/escape) +"J" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/bed, +/obj/item/weapon/bedsheet/random, +/turf/open/floor/noslip, +/area/shuttle/escape) +"K" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/random, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/noslip, +/area/shuttle/escape) +"L" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock" + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"M" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = -30 + }, +/obj/item/toy/snappop/phoenix, +/turf/open/floor/bluespace, +/area/shuttle/escape) +"N" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Cargo" + }, +/turf/open/floor/bluespace, +/area/shuttle/escape) +"O" = ( +/obj/machinery/door/airlock/glass{ + name = "Emergency Shuttle Infirmary" + }, +/turf/open/floor/bluespace, +/area/shuttle/escape) +"P" = ( +/turf/open/floor/mineral/bananium, +/area/shuttle/escape) +"Q" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0 + }, +/turf/open/floor/mineral/bananium, +/area/shuttle/escape) +"R" = ( +/obj/machinery/sleeper{ + icon_state = "sleeper-open"; + dir = 8 + }, +/turf/open/floor/noslip, +/area/shuttle/escape) +"S" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/fire, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/weapon/crowbar, +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0 + }, +/turf/open/floor/noslip, +/area/shuttle/escape) +"T" = ( +/obj/structure/closet/crate/trashcart{ + desc = "A heavy, metal trashcart with wheels. Feel free to hop in at any time!" + }, +/obj/item/toy/sword, +/turf/open/floor/mineral/bananium, +/area/shuttle/escape) +"U" = ( +/obj/machinery/vending/autodrobe{ + extended_inventory = 1; + scan_id = 0 + }, +/turf/open/floor/mineral/bananium, +/area/shuttle/escape) +"V" = ( +/obj/machinery/vending/clothing{ + extended_inventory = 1 + }, +/turf/open/floor/mineral/bananium, +/area/shuttle/escape) +"W" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/shuttle/engine/heater, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"X" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/open/floor/plating/airless, +/area/shuttle/escape) + +(1,1,1) = {" +a +a +a +a +b +b +b +b +b +E +b +c +c +c +b +L +b +L +b +b +b +a +"} +(2,1,1) = {" +a +b +b +b +b +t +t +t +b +k +H +H +H +H +H +k +b +P +P +T +b +b +"} +(3,1,1) = {" +b +d +i +n +b +t +x +t +b +F +k +k +k +k +k +M +b +P +P +T +W +X +"} +(4,1,1) = {" +c +e +j +o +b +t +t +t +b +k +I +I +I +I +I +k +N +P +P +U +W +X +"} +(5,1,1) = {" +c +f +k +p +b +c +y +c +C +k +J +J +J +J +J +k +b +Q +P +V +W +X +"} +(6,1,1) = {" +c +g +k +k +b +u +k +z +D +k +k +k +k +k +k +k +s +b +b +b +W +X +"} +(7,1,1) = {" +c +f +k +k +r +k +k +A +D +k +I +I +I +I +I +k +c +v +u +v +W +X +"} +(8,1,1) = {" +c +h +l +l +s +u +k +B +D +k +K +J +J +J +J +k +O +u +u +u +W +X +"} +(9,1,1) = {" +b +d +m +q +b +v +k +k +k +k +k +k +k +k +k +k +c +u +u +u +W +X +"} +(10,1,1) = {" +a +b +b +b +b +w +u +u +u +G +H +H +H +H +H +G +c +R +S +R +b +b +"} +(11,1,1) = {" +a +a +a +a +b +c +b +c +b +b +b +c +c +c +b +b +b +c +b +c +b +a +"} diff --git a/_maps/shuttles/emergency_cramped.dmm b/_maps/shuttles/emergency_cramped.dmm new file mode 100644 index 0000000..f87e43d --- /dev/null +++ b/_maps/shuttles/emergency_cramped.dmm @@ -0,0 +1,205 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"b" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/escape) +"c" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock"; + req_access_txt = "2" + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"d" = ( +/turf/open/floor/plasteel/black, +/area/shuttle/escape) +"e" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/black, +/area/shuttle/escape) +"f" = ( +/obj/machinery/computer/emergency_shuttle, +/turf/open/floor/plasteel/black, +/area/shuttle/escape) +"g" = ( +/obj/structure/window/reinforced, +/obj/structure/table/reinforced, +/obj/item/weapon/storage/firstaid/regular, +/obj/item/weapon/book/manual/random, +/obj/structure/extinguisher_cabinet{ + pixel_x = -30 + }, +/turf/open/floor/plasteel/black, +/area/shuttle/escape) +"h" = ( +/obj/machinery/door/window/southleft, +/turf/open/floor/plasteel/black, +/area/shuttle/escape) +"i" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced, +/obj/item/device/gps{ + gpstag = "STV5" + }, +/turf/open/floor/plasteel/black, +/area/shuttle/escape) +"j" = ( +/obj/machinery/status_display, +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"k" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock" + }, +/obj/docking_port/mobile/emergency{ + dwidth = 3; + height = 5; + name = "Secure Transport Vessel 5"; + width = 14; + timid = 1 + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"l" = ( +/turf/open/floor/plating, +/area/shuttle/escape) +"m" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/shuttle/escape) +"n" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"o" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 8; + name = "8maintenance loot spawner" + }, +/turf/open/floor/plasteel/bot, +/area/shuttle/escape) +"p" = ( +/obj/structure/closet/crate/secure/loot, +/turf/open/floor/plasteel/bot, +/area/shuttle/escape) +"q" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock" + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"r" = ( +/obj/structure/closet/crate/secure/weapon, +/obj/effect/spawner/lootdrop/armory_contraband, +/turf/open/floor/plasteel/bot, +/area/shuttle/escape) +"s" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -30 + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"t" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/shuttle/engine/heater, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"u" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/open/floor/plating/airless, +/area/shuttle/escape) + +(1,1,1) = {" +a +c +a +k +a +b +b +b +a +q +a +q +a +a +"} +(2,1,1) = {" +b +d +g +l +n +n +n +n +n +l +s +l +t +u +"} +(3,1,1) = {" +b +e +h +l +l +l +l +l +l +l +l +l +t +u +"} +(4,1,1) = {" +b +f +i +m +o +o +o +p +p +r +r +m +t +u +"} +(5,1,1) = {" +a +a +j +a +a +b +b +b +a +a +a +a +a +a +"} diff --git a/_maps/shuttles/emergency_goon.dmm b/_maps/shuttles/emergency_goon.dmm new file mode 100644 index 0000000..3fb5e72 --- /dev/null +++ b/_maps/shuttles/emergency_goon.dmm @@ -0,0 +1,509 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/open/space, +/area/space) +"b" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion"; + dir = 4 + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"c" = ( +/obj/structure/shuttle/engine/heater{ + icon_state = "heater"; + dir = 8 + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"d" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"e" = ( +/turf/closed/wall/mineral/titanium/overspace, +/area/shuttle/escape) +"f" = ( +/obj/machinery/status_display, +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"g" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"h" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock" + }, +/obj/docking_port/mobile/emergency{ + dheight = 0; + dir = 2; + dwidth = 9; + name = "NES Port"; + width = 19; + timid = 1 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"i" = ( +/turf/closed/wall/shuttle{ + tag = "icon-wall_space (WEST)"; + icon_state = "wall_space"; + dir = 8 + }, +/area/shuttle/escape) +"j" = ( +/turf/closed/wall/shuttle{ + tag = "icon-swall4"; + icon_state = "swall4" + }, +/area/shuttle/escape) +"k" = ( +/turf/closed/wall/shuttle{ + tag = "icon-swall12"; + icon_state = "swall12" + }, +/area/shuttle/escape) +"l" = ( +/obj/machinery/vending/wallmed, +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"m" = ( +/obj/structure/window/shuttle, +/obj/structure/grille, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/escape) +"n" = ( +/turf/closed/wall/shuttle{ + tag = "icon-swall1"; + icon_state = "swall1" + }, +/area/shuttle/escape) +"o" = ( +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"p" = ( +/obj/structure/shuttle/engine/heater{ + icon_state = "heater"; + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"q" = ( +/obj/machinery/sleeper{ + icon_state = "sleeper-open"; + dir = 4 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"r" = ( +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"s" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"t" = ( +/turf/open/floor/mineral/titanium/blue, +/turf/closed/wall/mineral/titanium/interior, +/area/shuttle/escape) +"u" = ( +/turf/open/space, +/area/shuttle/escape) +"v" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"w" = ( +/obj/machinery/door/airlock/glass{ + name = "Emergency Shuttle Infirmary" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"x" = ( +/obj/structure/window/shuttle, +/obj/structure/grille, +/turf/open/floor/plasteel/shuttle/yellow, +/area/shuttle/escape) +"y" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/toolbox/emergency, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"z" = ( +/obj/structure/table/reinforced, +/obj/item/device/radio, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"A" = ( +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"B" = ( +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/table/reinforced, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"C" = ( +/turf/closed/wall/shuttle{ + tag = "icon-swall8"; + icon_state = "swall8" + }, +/area/shuttle/escape) +"D" = ( +/turf/closed/wall/shuttle{ + tag = "icon-swall3"; + icon_state = "swall3" + }, +/area/shuttle/escape) +"E" = ( +/obj/machinery/door/airlock/glass{ + name = "Emergency Shuttle Cockpit"; + req_access_txt = "19" + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"F" = ( +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"G" = ( +/obj/machinery/computer/emergency_shuttle, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"H" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"I" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/obj/structure/window/reinforced, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"J" = ( +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"K" = ( +/obj/machinery/door/airlock/glass{ + name = "Emergency Shuttle Brig"; + req_access_txt = "2" + }, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"L" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"M" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/firstaid/regular, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = 0 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"N" = ( +/turf/closed/wall/shuttle{ + tag = "icon-wall_space (EAST)"; + icon_state = "wall_space"; + dir = 4 + }, +/area/shuttle/escape) +"O" = ( +/turf/closed/wall/shuttle{ + tag = "icon-wall_floor (WEST)"; + icon_state = "wall_floor"; + dir = 8 + }, +/area/shuttle/escape) +"P" = ( +/obj/machinery/status_display, +/turf/closed/wall/shuttle{ + tag = "icon-swall0"; + icon_state = "swall0" + }, +/area/shuttle/escape) + +(1,1,1) = {" +a +d +b +b +b +d +b +b +b +d +a +"} +(2,1,1) = {" +b +d +p +p +p +d +p +p +p +d +b +"} +(3,1,1) = {" +c +d +q +v +q +d +H +H +H +d +c +"} +(4,1,1) = {" +d +l +r +r +r +d +H +J +H +d +d +"} +(5,1,1) = {" +d +d +d +w +f +d +f +K +d +d +d +"} +(6,1,1) = {" +a +d +s +o +s +s +s +o +s +d +a +"} +(7,1,1) = {" +a +m +s +o +s +s +s +o +s +m +a +"} +(8,1,1) = {" +d +d +s +o +d +m +d +o +s +d +d +"} +(9,1,1) = {" +g +o +o +o +o +o +o +o +o +o +g +"} +(10,1,1) = {" +h +o +o +o +o +o +o +o +o +o +g +"} +(11,1,1) = {" +d +d +s +s +o +o +o +s +s +d +d +"} +(12,1,1) = {" +a +m +s +s +s +o +s +s +s +m +a +"} +(13,1,1) = {" +a +m +s +s +s +o +s +s +s +m +a +"} +(14,1,1) = {" +a +d +t +s +s +o +s +s +t +d +a +"} +(15,1,1) = {" +a +d +d +x +d +E +f +x +d +d +a +"} +(16,1,1) = {" +a +a +d +y +A +F +A +L +d +a +a +"} +(17,1,1) = {" +a +a +d +z +A +A +A +M +d +a +a +"} +(18,1,1) = {" +a +a +a +x +B +G +I +x +a +a +a +"} +(19,1,1) = {" +a +a +a +d +x +x +x +d +a +a +a +"} diff --git a/_maps/shuttles/emergency_imfedupwiththisworld.dmm b/_maps/shuttles/emergency_imfedupwiththisworld.dmm new file mode 100644 index 0000000..aa4719f --- /dev/null +++ b/_maps/shuttles/emergency_imfedupwiththisworld.dmm @@ -0,0 +1,281 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/closed/wall/mineral/wood, +/area/shuttle/escape) +"b" = ( +/obj/machinery/light_switch, +/turf/closed/wall/mineral/wood, +/area/shuttle/escape) +"c" = ( +/obj/docking_port/mobile/emergency{ + dheight = 0; + dir = 4; + dwidth = 1; + height = 10; + name = "Oh Hi Mark"; + width = 12; + timid = 1 + }, +/obj/machinery/door/airlock/wood, +/turf/open/floor/wood, +/area/shuttle/escape) +"d" = ( +/turf/open/floor/wood, +/area/shuttle/escape) +"e" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/shuttle/escape) +"f" = ( +/obj/structure/chair/comfy/teal, +/turf/open/floor/carpet, +/area/shuttle/escape) +"g" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp, +/turf/open/floor/carpet, +/area/shuttle/escape) +"h" = ( +/turf/open/floor/carpet, +/area/shuttle/escape) +"i" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/kitchen/knife, +/turf/open/floor/carpet, +/area/shuttle/escape) +"j" = ( +/turf/open/floor/plasteel/bar, +/area/shuttle/escape) +"k" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/obj/machinery/vending/boozeomat, +/turf/open/floor/plasteel/bar, +/area/shuttle/escape) +"l" = ( +/obj/machinery/computer/security/wooden_tv, +/turf/open/floor/carpet, +/area/shuttle/escape) +"m" = ( +/obj/structure/table/glass, +/turf/open/floor/carpet, +/area/shuttle/escape) +"n" = ( +/obj/structure/chair/comfy/teal{ + tag = "icon-comfychair (WEST)"; + icon_state = "comfychair"; + dir = 8 + }, +/turf/open/floor/carpet, +/area/shuttle/escape) +"o" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/reagent_containers/food/snacks/store/cake/birthday, +/turf/open/floor/carpet, +/area/shuttle/escape) +"p" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/reagent_containers/food/drinks/shaker, +/turf/open/floor/plasteel/bar, +/area/shuttle/escape) +"q" = ( +/obj/structure/table/reinforced, +/turf/open/floor/carpet, +/area/shuttle/escape) +"r" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass, +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass, +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass, +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass, +/turf/open/floor/plasteel/bar, +/area/shuttle/escape) +"s" = ( +/obj/machinery/door/window{ + dir = 8 + }, +/turf/open/floor/plasteel/bar, +/area/shuttle/escape) +"t" = ( +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/bar, +/area/shuttle/escape) +"u" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/wood, +/area/shuttle/escape) +"v" = ( +/obj/structure/chair/office/dark, +/turf/open/floor/wood, +/area/shuttle/escape) +"w" = ( +/obj/effect/decal/cleanable/blood, +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/blood/gibs, +/obj/effect/mob_spawn/human/corpse, +/obj/item/weapon/gun/projectile/automatic/pistol/m1911, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/item/weapon/reagent_containers/food/snacks/cakeslice/birthday, +/turf/open/floor/carpet, +/area/shuttle/escape) +"x" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/red, +/obj/item/weapon/paper{ + info = "i love daniel
daniel is my best friend

you are tearing me apart elise" + }, +/turf/open/floor/carpet, +/area/shuttle/escape) +"y" = ( +/obj/item/weapon/twohanded/required/kirbyplants, +/turf/open/floor/wood, +/area/shuttle/escape) +"z" = ( +/obj/structure/table/wood, +/obj/item/weapon/papercutter, +/turf/open/floor/wood, +/area/shuttle/escape) +"A" = ( +/obj/structure/table/wood, +/obj/machinery/computer/libraryconsole/bookmanagement, +/turf/open/floor/wood, +/area/shuttle/escape) +"B" = ( +/obj/machinery/light, +/obj/structure/table/wood, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen, +/turf/open/floor/wood, +/area/shuttle/escape) +"C" = ( +/obj/structure/mineral_door/wood, +/turf/open/floor/wood, +/area/shuttle/escape) +"D" = ( +/obj/machinery/computer/emergency_shuttle, +/turf/open/floor/carpet, +/area/shuttle/escape) +"E" = ( +/obj/machinery/status_display, +/turf/closed/wall/mineral/wood, +/area/shuttle/escape) + +(1,1,1) = {" +a +c +a +a +a +a +a +a +a +"} +(2,1,1) = {" +b +d +d +d +d +u +d +y +a +"} +(3,1,1) = {" +a +e +l +h +h +d +d +z +a +"} +(4,1,1) = {" +a +f +m +m +h +d +v +A +a +"} +(5,1,1) = {" +a +g +n +n +h +d +d +B +a +"} +(6,1,1) = {" +a +h +h +h +h +d +d +d +a +"} +(7,1,1) = {" +a +i +o +q +s +a +E +C +a +"} +(8,1,1) = {" +a +j +j +j +j +a +w +h +a +"} +(9,1,1) = {" +a +k +p +r +t +a +x +D +a +"} +(10,1,1) = {" +a +a +a +a +a +a +a +a +a +"} diff --git a/_maps/shuttles/emergency_meta.dmm b/_maps/shuttles/emergency_meta.dmm new file mode 100644 index 0000000..b9b3e06 --- /dev/null +++ b/_maps/shuttles/emergency_meta.dmm @@ -0,0 +1,1186 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/open/space, +/area/space) +"ab" = ( +/turf/closed/wall/mineral/titanium/overspace, +/area/shuttle/escape) +"ac" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/escape) +"ad" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"ae" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall12"; + dir = 2 + }, +/area/shuttle/escape) +"af" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"ag" = ( +/obj/structure/sign/nosmoking_2, +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"ah" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock" + }, +/obj/docking_port/mobile/emergency{ + dir = 2; + dwidth = 5; + height = 14; + name = "Meta emergency shuttle"; + timid = 1; + width = 25 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"ai" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s10"; + dir = 2 + }, +/area/shuttle/escape) +"aj" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 8; + icon_state = "diagonalWall3" + }, +/area/shuttle/escape) +"ak" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall3"; + dir = 2 + }, +/area/shuttle/escape) +"al" = ( +/obj/structure/table, +/obj/item/weapon/phone{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/cigbutt/cigarbutt{ + pixel_x = 5; + pixel_y = -1 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"am" = ( +/obj/machinery/computer/crew, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"an" = ( +/obj/machinery/computer/security, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"ao" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"ap" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"aq" = ( +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"ar" = ( +/obj/structure/chair, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"as" = ( +/obj/item/device/radio/intercom{ + dir = 4; + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = 27 + }, +/obj/structure/chair, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"at" = ( +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/weapon/tank/internals/emergency_oxygen/double{ + pixel_x = 3 + }, +/obj/item/weapon/tank/internals/emergency_oxygen/double{ + pixel_x = 3 + }, +/obj/item/weapon/tank/internals/emergency_oxygen/double{ + pixel_x = 3 + }, +/obj/item/weapon/tank/internals/emergency_oxygen/double{ + pixel_x = 3 + }, +/obj/item/weapon/tank/internals/emergency_oxygen/double{ + pixel_x = 3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/structure/closet/crate{ + name = "lifejackets" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"au" = ( +/obj/structure/shuttle/engine/propulsion{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"av" = ( +/obj/structure/shuttle/engine/heater{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"aw" = ( +/obj/structure/table, +/obj/item/weapon/storage/fancy/donut_box, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"ax" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"ay" = ( +/obj/structure/table, +/obj/item/weapon/restraints/handcuffs{ + pixel_y = 3 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"az" = ( +/obj/machinery/status_display, +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"aA" = ( +/obj/structure/tank_dispenser/oxygen{ + layer = 2.7; + pixel_x = -1; + pixel_y = 2 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"aB" = ( +/obj/machinery/computer/communications, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"aC" = ( +/obj/structure/chair/office/dark, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"aD" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall1" + }, +/area/shuttle/escape) +"aE" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"aF" = ( +/obj/machinery/computer/emergency_shuttle, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"aG" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"aH" = ( +/obj/machinery/door/airlock/glass_command{ + name = "Cockpit"; + req_access_txt = "19" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"aI" = ( +/obj/machinery/vending/wallmed{ + name = "Emergency NanoMed"; + pixel_x = 0; + pixel_y = 0; + req_access_txt = "0"; + use_power = 0 + }, +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"aJ" = ( +/obj/structure/extinguisher_cabinet, +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"aK" = ( +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/escape) +"aL" = ( +/obj/machinery/computer/station_alert, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"aM" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall2" + }, +/area/shuttle/escape) +"aN" = ( +/obj/machinery/status_display{ + dir = 8; + pixel_x = 32; + pixel_y = 0 + }, +/obj/machinery/holopad, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"aO" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/emergency{ + pixel_y = 3 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"aP" = ( +/obj/structure/table, +/obj/machinery/recharger{ + active_power_usage = 0; + idle_power_usage = 0; + pixel_y = 4; + use_power = 0 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"aQ" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin{ + pixel_x = -2; + pixel_y = 8 + }, +/obj/item/device/radio/intercom{ + dir = 2; + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = -31 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"aR" = ( +/obj/structure/table, +/obj/item/weapon/folder/blue, +/obj/structure/extinguisher_cabinet{ + dir = 4; + pixel_x = 0; + pixel_y = -27 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"aS" = ( +/obj/item/device/radio/intercom{ + dir = 2; + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = -31 + }, +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"aT" = ( +/obj/structure/table, +/obj/item/stack/medical/gauze, +/obj/item/stack/medical/bruise_pack, +/obj/item/stack/medical/ointment, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"aU" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall7"; + dir = 2 + }, +/area/shuttle/escape) +"aV" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall8"; + dir = 2 + }, +/area/shuttle/escape) +"aW" = ( +/obj/machinery/door/airlock/command{ + name = "Emergency Recovery Airlock"; + req_access = null; + req_access_txt = "19" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"aX" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall15"; + dir = 2 + }, +/area/shuttle/escape) +"aY" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Brig"; + req_access_txt = "2" + }, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"aZ" = ( +/obj/machinery/door/airlock/glass_medical{ + id_tag = null; + name = "Escape Shuttle Infirmary"; + req_access_txt = "0" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"ba" = ( +/obj/structure/sign/bluecross_2, +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"bb" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Cargo Bay Airlock" + }, +/turf/open/floor/plasteel/delivery, +/area/shuttle/escape) +"bc" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall11"; + dir = 2 + }, +/area/shuttle/escape) +"bd" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/escape) +"be" = ( +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/escape) +"bf" = ( +/obj/machinery/door/airlock/external{ + name = "Emergency Recovery Airlock" + }, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/escape) +"bg" = ( +/turf/open/floor/mineral/plastitanium, +/area/shuttle/escape) +"bh" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"bi" = ( +/obj/structure/chair, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"bj" = ( +/obj/structure/table, +/obj/item/weapon/defibrillator/loaded, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"bk" = ( +/obj/machinery/shower, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"bl" = ( +/obj/machinery/sleeper{ + dir = 8 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"bm" = ( +/obj/structure/rack, +/obj/item/weapon/crowbar, +/obj/item/weapon/wrench, +/obj/item/weapon/weldingtool, +/obj/item/weapon/wirecutters, +/obj/item/stack/cable_coil, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/shuttle/escape) +"bn" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plasteel/delivery, +/area/shuttle/escape) +"bo" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/delivery, +/area/shuttle/escape) +"bp" = ( +/turf/open/floor/plasteel/delivery, +/area/shuttle/escape) +"bq" = ( +/obj/machinery/recharge_station, +/turf/open/floor/plasteel/delivery, +/area/shuttle/escape) +"br" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall4"; + dir = 2 + }, +/area/shuttle/escape) +"bs" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"bt" = ( +/obj/structure/reagent_dispensers/peppertank, +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"bu" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{ + pixel_x = 6; + pixel_y = 0 + }, +/obj/item/weapon/reagent_containers/glass/bottle/charcoal{ + pixel_x = -3 + }, +/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{ + pixel_x = -3; + pixel_y = 8 + }, +/obj/item/weapon/reagent_containers/glass/bottle/charcoal{ + pixel_x = 6; + pixel_y = 8 + }, +/obj/item/weapon/reagent_containers/syringe/epinephrine{ + pixel_x = 3; + pixel_y = -2 + }, +/obj/item/weapon/reagent_containers/syringe/epinephrine{ + pixel_x = 4; + pixel_y = 1 + }, +/obj/item/weapon/reagent_containers/syringe/epinephrine{ + pixel_x = -2; + pixel_y = 5 + }, +/obj/item/weapon/reagent_containers/syringe/epinephrine{ + pixel_x = 2; + pixel_y = 8 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"bv" = ( +/obj/structure/rack, +/obj/item/weapon/storage/toolbox/electrical{ + pixel_x = -3; + pixel_y = 1 + }, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = 0; + pixel_y = -1 + }, +/obj/item/weapon/storage/toolbox/emergency{ + pixel_x = 3; + pixel_y = -5 + }, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/shuttle/escape) +"bw" = ( +/obj/item/weapon/cigbutt, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/escape) +"bx" = ( +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/escape) +"by" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/escape) +"bz" = ( +/obj/structure/table/optable, +/obj/item/weapon/surgical_drapes, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"bA" = ( +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/shuttle/escape) +"bB" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + icon_state = "diagonalWall3" + }, +/area/shuttle/escape) +"bC" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plasteel/floorgrime, +/area/shuttle/escape) +"bD" = ( +/obj/structure/table, +/obj/item/weapon/folder/red{ + pixel_x = 3 + }, +/obj/item/weapon/folder/white{ + pixel_x = -4; + pixel_y = 2 + }, +/obj/item/device/radio/intercom{ + dir = 2; + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = -31 + }, +/obj/item/weapon/book/manual/wiki/security_space_law{ + pixel_x = -4; + pixel_y = 4 + }, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"bE" = ( +/obj/structure/table, +/obj/item/weapon/restraints/handcuffs{ + pixel_y = 3 + }, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"bF" = ( +/obj/structure/table, +/obj/machinery/recharger{ + active_power_usage = 0; + idle_power_usage = 0; + use_power = 0 + }, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"bG" = ( +/obj/structure/table, +/obj/item/weapon/storage/box/handcuffs{ + pixel_x = 2; + pixel_y = 2 + }, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"bH" = ( +/obj/structure/table, +/obj/item/weapon/scalpel{ + pixel_y = 12 + }, +/obj/item/weapon/circular_saw, +/obj/item/weapon/retractor{ + pixel_x = 4 + }, +/obj/item/weapon/hemostat{ + pixel_x = -4 + }, +/obj/item/clothing/gloves/color/latex, +/obj/item/clothing/mask/surgical, +/obj/item/device/radio/intercom{ + dir = 2; + name = "Station Intercom (General)"; + pixel_x = -27; + pixel_y = 0 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"bI" = ( +/obj/structure/sink, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"bJ" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/fire, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 2; + pixel_y = 3 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"bK" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/toxin, +/obj/item/weapon/storage/firstaid/o2{ + pixel_x = 3; + pixel_y = 3 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"bL" = ( +/obj/structure/extinguisher_cabinet, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/escape) +"bM" = ( +/obj/structure/rack{ + dir = 1 + }, +/obj/item/weapon/tank/internals/oxygen/red, +/obj/item/clothing/suit/fire/firefighter, +/obj/item/clothing/mask/gas, +/obj/item/clothing/head/hardhat/red, +/turf/open/floor/plasteel/warning{ + dir = 4 + }, +/area/shuttle/escape) +"bN" = ( +/obj/machinery/space_heater, +/obj/structure/extinguisher_cabinet{ + dir = 4; + pixel_x = 0; + pixel_y = -27 + }, +/turf/open/floor/plasteel/bot, +/area/shuttle/escape) +"bO" = ( +/obj/structure/closet/crate{ + name = "emergency supplies crate" + }, +/obj/item/weapon/storage/toolbox/emergency, +/obj/item/weapon/storage/toolbox/emergency, +/obj/item/device/flashlight/flare{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/device/flashlight/flare{ + pixel_x = -6; + pixel_y = -2 + }, +/obj/item/weapon/crowbar, +/obj/item/weapon/wrench, +/obj/item/device/radio, +/turf/open/floor/plasteel/bot, +/area/shuttle/escape) +"bP" = ( +/obj/structure/closet/crate/medical{ + name = "medical crate" + }, +/obj/item/weapon/storage/firstaid/regular, +/obj/item/weapon/storage/firstaid/o2{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/firstaid/toxin{ + pixel_x = -4; + pixel_y = 3 + }, +/obj/item/device/healthanalyzer{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/lazarus_injector, +/mob/living/simple_animal/bot/medbot{ + name = "\improper emergency medibot"; + pixel_x = -3; + pixel_y = 2 + }, +/turf/open/floor/plasteel/bot, +/area/shuttle/escape) +"bQ" = ( +/obj/item/device/radio/intercom{ + dir = 2; + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = -31 + }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plasteel/bot, +/area/shuttle/escape) +"bR" = ( +/obj/structure/table, +/obj/item/weapon/clipboard, +/obj/item/weapon/folder/yellow, +/obj/item/weapon/pen, +/obj/item/hand_labeler_refill, +/turf/open/floor/plasteel/bot, +/area/shuttle/escape) +"bS" = ( +/obj/machinery/vending/wallmed{ + name = "Emergency NanoMed"; + pixel_x = 0; + pixel_y = 0; + req_access_txt = "0"; + use_power = 0 + }, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/escape) +"bT" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/escape) +"bU" = ( +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) + +(1,1,1) = {" +aa +aa +au +au +au +ad +au +au +ad +au +au +au +aa +aa +"} +(2,1,1) = {" +aa +ad +av +av +av +ad +av +av +ad +av +av +av +ad +aa +"} +(3,1,1) = {" +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +"} +(4,1,1) = {" +ac +al +aw +aB +aF +aL +aO +aP +aJ +bd +bd +bd +bC +ac +"} +(5,1,1) = {" +ac +am +aq +aC +aG +ax +aq +aQ +ad +be +be +be +be +bf +"} +(6,1,1) = {" +ac +an +ax +aq +aq +aq +aC +aR +ad +bf +bT +be +be +bf +"} +(7,1,1) = {" +ac +ao +ay +aq +aq +aq +aq +aq +aW +bU +ad +by +by +ac +"} +(8,1,1) = {" +ad +ad +az +ad +aH +ad +az +ad +ad +ad +ad +az +ad +ad +"} +(9,1,1) = {" +ad +ap +aq +aq +aq +aq +aq +ap +ad +bh +bh +bh +bD +ad +"} +(10,1,1) = {" +ac +aq +aq +aq +aq +aq +aq +aq +aY +bU +bU +bU +bE +ac +"} +(11,1,1) = {" +ad +ar +aq +aE +ac +ar +aq +aE +ac +bi +bU +bU +bF +ac +"} +(12,1,1) = {" +af +aq +aq +aE +aI +ar +aq +aE +ad +bi +bs +bs +bG +ad +"} +(13,1,1) = {" +ac +ar +aq +aE +ac +ar +aq +aS +ad +ad +bt +az +ad +ad +"} +(14,1,1) = {" +af +aq +aq +aE +aJ +ar +aq +aE +ad +bj +bu +bz +bH +ad +"} +(15,1,1) = {" +ag +ar +aq +aE +ac +ar +aq +aE +ac +bk +aq +aq +bI +ac +"} +(16,1,1) = {" +ac +ar +aq +aq +aq +aq +aq +aq +aZ +aq +aq +aq +bJ +ac +"} +(17,1,1) = {" +ac +ar +aq +aE +ac +ar +aq +aE +ac +bl +bl +aq +bK +ad +"} +(18,1,1) = {" +ac +ar +aq +aE +bL +ar +aq +aE +ba +ad +ac +aZ +ba +ad +"} +(19,1,1) = {" +ad +as +aq +aE +ac +ar +aq +aE +ad +bm +bv +bA +bM +ad +"} +(20,1,1) = {" +ah +aq +aq +aE +bS +ar +aq +aE +ac +bn +bw +be +bN +ad +"} +(21,1,1) = {" +ac +ar +aq +aE +ac +ar +aq +aE +aJ +bo +be +be +bO +ac +"} +(22,1,1) = {" +af +aq +aq +aq +aq +aq +aq +aq +bb +bp +be +bw +bP +ac +"} +(23,1,1) = {" +ad +aq +aq +aq +aq +aq +aq +aq +bb +bp +be +be +bQ +ad +"} +(24,1,1) = {" +ad +at +aA +at +aq +aN +aq +aT +ag +bq +bp +bp +bR +ad +"} +(25,1,1) = {" +ad +ad +ac +ad +ac +ad +ac +ad +ad +ad +ac +ac +ad +ad +"} diff --git a/_maps/shuttles/emergency_mini.dmm b/_maps/shuttles/emergency_mini.dmm new file mode 100644 index 0000000..901c3fa --- /dev/null +++ b/_maps/shuttles/emergency_mini.dmm @@ -0,0 +1,506 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/open/space, +/area/space) +"b" = ( +/turf/closed/wall/mineral/titanium/overspace, +/area/shuttle/escape) +"c" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion"; + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"d" = ( +/turf/open/space, +/turf/closed/wall/shuttle{ + icon_state = "swall_f10"; + dir = 2 + }, +/area/shuttle/escape) +"e" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"f" = ( +/obj/structure/shuttle/engine/heater{ + icon_state = "heater"; + dir = 1 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"g" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall3"; + dir = 2 + }, +/area/shuttle/escape) +"h" = ( +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 2; + pixel_y = 6 + }, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = -2; + pixel_y = 4 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"i" = ( +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"j" = ( +/obj/machinery/sleeper{ + dir = 8; + icon_state = "sleeper-open" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"k" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"l" = ( +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"m" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium/brig, +/area/shuttle/escape) +"n" = ( +/obj/machinery/vending/wallmed{ + name = "Emergency NanoMed"; + pixel_x = 28; + req_access_txt = "0" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"o" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/shuttle/escape) +"p" = ( +/obj/machinery/door/airlock/glass_security{ + name = "Escape Shuttle Cell"; + req_access_txt = "2" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"q" = ( +/obj/machinery/door/airlock/glass_medical{ + id_tag = null; + name = "Escape Shuttle Infirmary"; + req_access_txt = "0" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"r" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/escape) +"s" = ( +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"t" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"u" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"v" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"w" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"x" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"y" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/escape) +"z" = ( +/obj/machinery/vending/wallmed{ + name = "Emergency NanoMed"; + req_access_txt = "0" + }, +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"A" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/item/device/radio/intercom{ + pixel_x = 25 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"B" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock" + }, +/obj/docking_port/mobile/emergency{ + dir = 8; + dwidth = 8; + height = 9; + name = "Mini emergency shuttle"; + timid = 1; + width = 21 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"C" = ( +/obj/structure/chair, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"D" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/fire, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/weapon/crowbar, +/obj/item/weapon/extinguisher, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"E" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall7"; + dir = 2 + }, +/area/shuttle/escape) +"F" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall12"; + dir = 2 + }, +/area/shuttle/escape) +"G" = ( +/obj/machinery/status_display, +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"H" = ( +/obj/machinery/door/airlock/glass_command{ + name = "Escape Shuttle Cockpit"; + req_access_txt = "19" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"I" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall11"; + dir = 2 + }, +/area/shuttle/escape) +"J" = ( +/obj/machinery/computer/atmos_alert, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"K" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"L" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = 24 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"M" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"N" = ( +/obj/machinery/computer/security, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"O" = ( +/obj/machinery/computer/crew, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"P" = ( +/obj/machinery/computer/communications, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"Q" = ( +/turf/open/space, +/turf/closed/wall/shuttle{ + icon_state = "swall_f5"; + dir = 2 + }, +/area/shuttle/escape) +"R" = ( +/turf/closed/wall/shuttle{ + icon_state = "swallc1"; + dir = 2 + }, +/area/shuttle/escape) +"S" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/fire, +/obj/item/weapon/extinguisher, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"T" = ( +/obj/structure/chair, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"U" = ( +/obj/machinery/computer/emergency_shuttle, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/escape) +"V" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/weapon/crowbar, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"W" = ( +/turf/closed/wall/shuttle{ + icon_state = "swallc2"; + dir = 2 + }, +/area/shuttle/escape) +"X" = ( +/turf/open/space, +/turf/closed/wall/shuttle{ + icon_state = "swall_f9"; + dir = 2 + }, +/area/shuttle/escape) + +(1,1,1) = {" +a +e +e +e +e +e +e +e +y +y +y +e +e +e +e +e +e +e +e +e +a +"} +(2,1,1) = {" +e +e +h +i +i +q +s +v +v +v +v +v +s +v +v +D +e +J +O +r +e +"} +(3,1,1) = {" +c +f +i +i +i +y +s +s +s +s +s +s +s +s +s +i +e +K +K +S +y +"} +(4,1,1) = {" +c +f +j +n +j +y +s +w +w +w +w +w +w +w +s +i +G +s +s +T +y +"} +(5,1,1) = {" +c +f +e +e +e +r +s +x +y +y +z +y +y +C +s +s +H +s +s +U +y +"} +(6,1,1) = {" +c +f +k +k +y +i +s +v +v +v +v +v +v +v +s +i +e +L +s +T +y +"} +(7,1,1) = {" +c +f +l +l +p +s +s +s +s +s +s +s +s +s +s +i +e +M +M +V +y +"} +(8,1,1) = {" +e +e +m +m +y +t +s +w +w +w +A +w +s +w +w +D +e +N +P +r +e +"} +(9,1,1) = {" +a +e +e +e +e +e +u +e +e +y +e +e +B +e +e +e +e +e +e +e +a +"} diff --git a/_maps/shuttles/emergency_narnar.dmm b/_maps/shuttles/emergency_narnar.dmm new file mode 100644 index 0000000..a6da04a --- /dev/null +++ b/_maps/shuttles/emergency_narnar.dmm @@ -0,0 +1,527 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/open/space, +/area/space) +"b" = ( +/turf/closed/wall/mineral/cult, +/area/shuttle/escape) +"c" = ( +/obj/effect/forcefield/cult, +/turf/open/floor/plating, +/area/shuttle/escape) +"d" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/fire, +/turf/open/floor/plasteel/cult, +/area/shuttle/escape) +"e" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/cult, +/area/shuttle/escape) +"f" = ( +/obj/machinery/computer/emergency_shuttle, +/turf/open/floor/plasteel/cult, +/area/shuttle/escape) +"g" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/weapon/crowbar, +/turf/open/floor/plasteel/cult, +/area/shuttle/escape) +"h" = ( +/obj/machinery/computer/atmos_alert, +/turf/open/floor/plasteel/cult, +/area/shuttle/escape) +"i" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/cult, +/area/shuttle/escape) +"j" = ( +/turf/open/floor/plasteel/cult, +/area/shuttle/escape) +"k" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/cult, +/area/shuttle/escape) +"l" = ( +/obj/machinery/computer/security, +/turf/open/floor/plasteel/cult, +/area/shuttle/escape) +"m" = ( +/obj/machinery/computer/crew, +/turf/open/floor/plasteel/cult, +/area/shuttle/escape) +"n" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = -30 + }, +/turf/open/floor/plasteel/cult, +/area/shuttle/escape) +"o" = ( +/obj/item/device/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = 0; + pixel_y = -29 + }, +/turf/open/floor/plasteel/cult, +/area/shuttle/escape) +"p" = ( +/obj/machinery/computer/communications, +/turf/open/floor/plasteel/cult, +/area/shuttle/escape) +"q" = ( +/obj/item/stack/sheet/metal, +/obj/effect/decal/remains/human, +/turf/open/floor/plasteel/cult, +/area/shuttle/escape) +"r" = ( +/obj/machinery/door/airlock/cult/unruned/glass/friendly, +/turf/open/floor/plasteel/cult, +/area/shuttle/escape) +"s" = ( +/obj/machinery/status_display, +/turf/closed/wall/mineral/cult, +/area/shuttle/escape) +"t" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel/cult, +/area/shuttle/escape) +"u" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/fire, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/weapon/crowbar, +/turf/open/floor/plasteel/cult, +/area/shuttle/escape) +"v" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plasteel/cult, +/area/shuttle/escape) +"w" = ( +/mob/living/simple_animal/hostile/construct/builder, +/turf/open/floor/plasteel/cult, +/area/shuttle/escape) +"x" = ( +/obj/machinery/door/airlock/cult/friendly, +/turf/open/floor/plating, +/area/shuttle/escape) +"y" = ( +/obj/effect/decal/cleanable/blood/gibs/up, +/obj/item/candle/infinite, +/turf/open/floor/plasteel/cult, +/area/shuttle/escape) +"z" = ( +/obj/effect/rune/raise_dead, +/turf/open/floor/plasteel/cult, +/area/shuttle/escape) +"A" = ( +/obj/item/candle/infinite, +/turf/open/floor/plasteel/cult, +/area/shuttle/escape) +"B" = ( +/obj/effect/rune/convert, +/obj/effect/decal/remains/human, +/obj/effect/decal/cleanable/blood/gibs/body, +/obj/effect/decal/cleanable/blood/gibs/core, +/turf/open/floor/plasteel/cult, +/area/shuttle/escape) +"C" = ( +/mob/living/simple_animal/hostile/construct/armored, +/turf/open/floor/plasteel/cult, +/area/shuttle/escape) +"D" = ( +/obj/effect/rune/convert, +/obj/effect/decal/remains/human, +/turf/open/floor/plasteel/cult, +/area/shuttle/escape) +"E" = ( +/obj/machinery/door/airlock/cult/friendly, +/obj/docking_port/mobile/emergency{ + name = "shuttle 667"; + timid = 1 + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"F" = ( +/obj/effect/decal/cleanable/blood/gibs/down, +/turf/open/floor/plasteel/cult, +/area/shuttle/escape) +"G" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0 + }, +/obj/item/weapon/extinguisher{ + safety = 0 + }, +/turf/open/floor/plasteel/cult, +/area/shuttle/escape) +"H" = ( +/mob/living/simple_animal/hostile/construct/wraith, +/turf/open/floor/plasteel/cult, +/area/shuttle/escape) +"I" = ( +/obj/effect/rune/narsie, +/obj/effect/fun_balloon/sentience/emergency_shuttle{ + effect_range = 5; + group_name = "horrible monsters on Shuttle 667" + }, +/turf/open/floor/plasteel/cult, +/area/shuttle/escape) +"J" = ( +/mob/living/simple_animal/hostile/carp/eyeball{ + faction = list("cult"); + name = "left eyeball" + }, +/turf/open/floor/plasteel/cult, +/area/shuttle/escape) +"K" = ( +/mob/living/simple_animal/hostile/carp/eyeball{ + faction = list("cult"); + name = "right eyeball" + }, +/turf/open/floor/plasteel/cult, +/area/shuttle/escape) +"L" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/plasteel/cult, +/area/shuttle/escape) +"M" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0 + }, +/turf/open/floor/plasteel/cult, +/area/shuttle/escape) +"N" = ( +/obj/machinery/door/airlock/cult/glass/friendly, +/turf/open/floor/plasteel/cult, +/area/shuttle/escape) +"O" = ( +/obj/structure/dresser, +/turf/open/floor/plasteel/cult, +/area/shuttle/escape) +"P" = ( +/obj/structure/showcase/horrific_experiment, +/turf/open/floor/plasteel/cult, +/area/shuttle/escape) +"Q" = ( +/obj/item/weapon/storage/firstaid/fire, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/weapon/crowbar, +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0 + }, +/obj/item/stack/sheet/metal, +/turf/open/floor/plasteel/cult, +/area/shuttle/escape) +"R" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/plasteel/cult, +/area/shuttle/escape) +"S" = ( +/obj/structure/table/wood, +/obj/item/weapon/tome, +/turf/open/floor/plasteel/cult, +/area/shuttle/escape) +"T" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/cult, +/turf/open/floor/plasteel/cult, +/area/shuttle/escape) +"U" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/shuttle/engine/heater, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"V" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/open/floor/plating/airless, +/area/shuttle/escape) + +(1,1,1) = {" +a +a +a +a +b +b +b +x +b +E +b +c +c +c +b +x +b +x +b +b +b +a +"} +(2,1,1) = {" +a +b +b +b +b +j +j +j +j +j +j +j +j +j +j +j +b +j +j +R +b +b +"} +(3,1,1) = {" +b +b +h +m +b +j +v +j +A +j +z +j +A +j +j +v +q +j +j +R +U +V +"} +(4,1,1) = {" +c +d +i +n +b +j +j +y +B +F +H +j +D +A +j +j +N +j +j +S +U +V +"} +(5,1,1) = {" +c +e +j +o +b +j +w +j +j +j +j +j +j +j +J +L +b +O +M +T +U +V +"} +(6,1,1) = {" +c +f +j +j +q +j +j +z +C +j +I +j +C +z +j +j +s +b +b +b +U +V +"} +(7,1,1) = {" +c +e +j +j +r +j +w +j +j +j +j +j +j +j +K +L +c +t +j +t +U +V +"} +(8,1,1) = {" +c +g +k +k +s +j +j +A +D +j +H +j +D +A +v +j +r +L +j +j +U +V +"} +(9,1,1) = {" +b +b +l +p +b +t +j +v +A +j +z +j +A +j +j +j +c +j +j +j +U +V +"} +(10,1,1) = {" +a +b +b +b +b +u +j +j +j +G +j +j +j +j +j +M +c +P +Q +P +b +b +"} +(11,1,1) = {" +a +a +a +a +b +c +b +c +b +b +b +c +c +c +b +b +b +c +b +c +b +a +"} diff --git a/_maps/shuttles/emergency_supermatter.dmm b/_maps/shuttles/emergency_supermatter.dmm new file mode 100644 index 0000000..7947026 --- /dev/null +++ b/_maps/shuttles/emergency_supermatter.dmm @@ -0,0 +1,602 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/open/space, +/area/space) +"ab" = ( +/turf/closed/wall/mineral/titanium/overspace, +/area/shuttle/escape) +"ac" = ( +/obj/structure/sign/radiation, +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"ad" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/escape) +"ae" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s10"; + dir = 2 + }, +/area/shuttle/escape) +"af" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"ag" = ( +/obj/structure/closet/radiation{ + anchored = 1 + }, +/obj/item/clothing/glasses/meson/engine, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"ah" = ( +/obj/structure/chair, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"ai" = ( +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"aj" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"ak" = ( +/obj/structure/sign/radiation, +/turf/closed/wall/shuttle{ + tag = "icon-swall3"; + icon_state = "swall3" + }, +/area/shuttle/escape) +"al" = ( +/obj/machinery/shower{ + dir = 8 + }, +/turf/open/floor/noslip, +/area/shuttle/escape) +"am" = ( +/obj/structure/reflector/single{ + anchored = 1 + }, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/shuttle/escape) +"an" = ( +/obj/structure/reflector/box{ + anchored = 1 + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"ao" = ( +/obj/structure/reflector/single{ + tag = "icon-reflector (WEST)"; + icon_state = "reflector"; + dir = 8; + anchored = 1 + }, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/shuttle/escape) +"ap" = ( +/obj/machinery/shower{ + dir = 4 + }, +/turf/open/floor/noslip, +/area/shuttle/escape) +"aq" = ( +/obj/machinery/status_display, +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"ar" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"as" = ( +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/shuttle/escape) +"at" = ( +/turf/open/floor/plating, +/area/shuttle/escape) +"au" = ( +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/shuttle/escape) +"av" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"aw" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/escape) +"ax" = ( +/turf/open/floor/mineral/titanium/yellow, +/turf/closed/wall/mineral/titanium/interior, +/area/shuttle/escape) +"ay" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_f5"; + dir = 2 + }, +/area/shuttle/escape) +"az" = ( +/turf/closed/wall/shuttle{ + icon_state = "swallc1" + }, +/area/shuttle/escape) +"aA" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock" + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"aB" = ( +/obj/machinery/power/supermatter_shard/hugbox{ + anchored = 1; + base_icon_state = "darkmatter"; + explosion_power = 20; + gasefficency = 0.15; + icon_state = "darkmatter"; + name = "anchored supermatter crystal" + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"aC" = ( +/obj/structure/sign/radiation, +/turf/closed/wall/shuttle/smooth, +/area/shuttle/escape) +"aD" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/firstaid/toxin, +/obj/item/weapon/crowbar/red, +/obj/item/weapon/storage/box/snappops{ + pixel_x = 4; + pixel_y = -4 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"aE" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/mineral/titanium/yellow, +/area/shuttle/escape) +"aF" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock" + }, +/obj/docking_port/mobile/emergency{ + name = "Hyperfractal Gigashuttle"; + timid = 1 + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"aG" = ( +/turf/closed/wall/shuttle{ + icon_state = "swallc3" + }, +/area/shuttle/escape) +"aH" = ( +/obj/machinery/status_display, +/turf/closed/wall/shuttle{ + icon_state = "swall12" + }, +/area/shuttle/escape) +"aI" = ( +/obj/structure/sign/radiation, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/escape) +"aJ" = ( +/obj/structure/sign/radiation, +/turf/closed/wall/shuttle{ + icon_state = "swallc2"; + dir = 2 + }, +/area/shuttle/escape) +"aK" = ( +/turf/closed/wall/shuttle{ + icon_state = "swallc4"; + dir = 2 + }, +/area/shuttle/escape) +"aL" = ( +/obj/machinery/door/airlock/external{ + name = "Emergency Launch Catwalk"; + req_access = null; + req_access_txt = "10;13" + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"aM" = ( +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"aN" = ( +/obj/structure/reflector/single{ + anchored = 1 + }, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"aO" = ( +/obj/structure/reflector/double{ + anchored = 1 + }, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"aP" = ( +/obj/structure/reflector/double{ + tag = "icon-reflector_double (NORTH)"; + icon_state = "reflector_double"; + dir = 1; + anchored = 1 + }, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"aQ" = ( +/obj/structure/reflector/single{ + tag = "icon-reflector (WEST)"; + icon_state = "reflector"; + dir = 8; + anchored = 1 + }, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"aR" = ( +/turf/open/floor/plating/airless/warnplate{ + dir = 9 + }, +/area/shuttle/escape) +"aS" = ( +/turf/open/floor/plating/airless/warnplate{ + dir = 1 + }, +/area/shuttle/escape) +"aT" = ( +/turf/open/floor/plating/airless/warnplate{ + dir = 5 + }, +/area/shuttle/escape) +"aU" = ( +/turf/open/floor/plating/airless/warnplate{ + dir = 8 + }, +/area/shuttle/escape) +"aV" = ( +/obj/machinery/power/supermatter_shard/hugbox{ + anchored = 1; + name = "anchored supermatter shard" + }, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"aW" = ( +/turf/open/floor/plating/airless/warnplate{ + dir = 4 + }, +/area/shuttle/escape) +"aX" = ( +/turf/open/floor/plating/airless/warnplate{ + dir = 10 + }, +/area/shuttle/escape) +"aY" = ( +/turf/open/floor/plating/airless/warnplate{ + dir = 2 + }, +/area/shuttle/escape) +"aZ" = ( +/turf/open/floor/plating/airless/warnplate{ + dir = 6 + }, +/area/shuttle/escape) +"ba" = ( +/obj/machinery/power/emitter/energycannon{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"bb" = ( +/obj/structure/chair, +/turf/open/floor/plating/airless/warnplate{ + dir = 1 + }, +/area/shuttle/escape) +"bc" = ( +/obj/structure/shuttle/engine/heater, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"bd" = ( +/obj/machinery/computer/emergency_shuttle, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"be" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"bf" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/shuttle/escape) +"bg" = ( +/obj/structure/grille, +/turf/open/floor/plating/warnplate{ + dir = 8 + }, +/area/shuttle/escape) +"bh" = ( +/obj/structure/grille, +/turf/open/floor/plating/warnplate{ + dir = 4 + }, +/area/shuttle/escape) + +(1,1,1) = {" +aa +aa +aa +aa +aa +aa +aw +aA +aC +aF +aw +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(2,1,1) = {" +af +af +ad +ac +aq +ad +ax +ai +aD +ai +aq +aa +aa +aN +aM +aR +aU +aX +at +ba +bc +be +"} +(3,1,1) = {" +ac +ag +ag +ag +ag +ag +ag +ai +ai +ai +ad +aa +aa +at +aa +aS +aV +aY +at +ba +bc +be +"} +(4,1,1) = {" +ad +ah +ai +al +ar +ar +ar +ar +ar +ar +aI +aw +aa +at +aa +aT +aW +aZ +aa +aM +aa +aa +"} +(5,1,1) = {" +ad +ag +aj +am +as +as +as +bg +as +as +as +ad +at +aO +aa +aa +aM +aa +aa +aR +aU +aX +"} +(6,1,1) = {" +ad +ag +aj +an +at +at +bf +aB +bf +at +at +aL +aM +aM +aM +aM +aM +aM +aM +bb +bd +aY +"} +(7,1,1) = {" +ad +ag +aj +ao +au +au +au +bh +au +au +au +ad +at +aP +aa +aa +aM +aa +aa +aT +aW +aZ +"} +(8,1,1) = {" +ad +ah +ai +ap +av +av +av +av +av +av +aI +aw +aa +at +aa +aR +aU +aX +aa +aM +aa +aa +"} +(9,1,1) = {" +ac +ag +ag +ag +ag +ag +ag +ai +ai +ai +ad +aa +aa +at +aa +aS +aV +aY +at +ba +bc +be +"} +(10,1,1) = {" +af +af +ad +ac +aq +ad +ax +ai +aE +ai +aq +aa +aa +aQ +aM +aT +aW +aZ +at +ba +bc +be +"} +(11,1,1) = {" +aa +aa +aa +aa +aa +aa +aw +aA +aC +aA +aw +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} diff --git a/_maps/shuttles/emergency_wabbajack.dmm b/_maps/shuttles/emergency_wabbajack.dmm new file mode 100644 index 0000000..90473b6 --- /dev/null +++ b/_maps/shuttles/emergency_wabbajack.dmm @@ -0,0 +1,602 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/open/space, +/area/space) +"ab" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"ac" = ( +/obj/structure/grille, +/obj/structure/window/shuttle/tinted, +/turf/open/floor/plating, +/area/shuttle/escape) +"ad" = ( +/turf/open/floor/plasteel/green, +/area/shuttle/escape) +"ae" = ( +/turf/open/floor/plasteel/darkgreen, +/area/shuttle/escape) +"af" = ( +/obj/machinery/power/emitter/energycannon/magical, +/turf/open/floor/plasteel/darkgreen, +/area/shuttle/escape) +"ag" = ( +/obj/structure/table/abductor/wabbajack/left, +/turf/open/floor/plasteel/darkgreen, +/area/shuttle/escape) +"ah" = ( +/obj/structure/table/abductor/wabbajack/right, +/turf/open/floor/plasteel/darkgreen, +/area/shuttle/escape) +"ai" = ( +/obj/structure/sign/biohazard, +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"aj" = ( +/obj/structure/barricade/wooden, +/obj/machinery/door/airlock/shuttle, +/turf/open/floor/plasteel/cult, +/area/shuttle/escape) +"ak" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/escape) +"al" = ( +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/escape) +"am" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/escape) +"an" = ( +/obj/structure/table/wood, +/obj/item/candle/infinite, +/turf/open/floor/plasteel/cult, +/area/shuttle/escape) +"ao" = ( +/obj/structure/barricade/wooden, +/turf/open/floor/plasteel/cult, +/area/shuttle/escape) +"ap" = ( +/turf/open/floor/plasteel/cult, +/area/shuttle/escape) +"aq" = ( +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"ar" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/fire, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/weapon/crowbar, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"as" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/escape) +"at" = ( +/obj/machinery/flasher{ + id = "shuttle_flasher"; + pixel_x = -24; + pixel_y = 6 + }, +/obj/machinery/button/flasher{ + id = "shuttle_flasher"; + pixel_x = -24; + pixel_y = -6 + }, +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/escape) +"au" = ( +/obj/structure/chair/wood, +/turf/open/floor/plasteel/cult, +/area/shuttle/escape) +"av" = ( +/obj/structure/chair, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"aw" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"ax" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock"; + req_access_txt = "2" + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"ay" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen{ + pixel_x = -2; + pixel_y = 4 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"az" = ( +/obj/machinery/computer/emergency_shuttle, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"aA" = ( +/obj/structure/table, +/obj/item/weapon/coin/mythril, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"aB" = ( +/obj/machinery/door/airlock/glass{ + name = "Emergency Shuttle Brig"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/escape) +"aC" = ( +/obj/machinery/door/airlock/shuttle, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"aD" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock" + }, +/obj/docking_port/mobile/emergency{ + timid = 1; + name = "NT Lepton Violet" + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"aE" = ( +/turf/open/floor/plasteel/shuttle, +/area/shuttle/escape) +"aF" = ( +/obj/machinery/door/window/eastleft, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"aG" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27; + pixel_y = 0 + }, +/obj/structure/table/glass, +/obj/item/weapon/storage/box/syringes{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/storage/box/beakers, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"aH" = ( +/obj/machinery/status_display, +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"aI" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"aJ" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"aK" = ( +/obj/machinery/sleeper{ + icon_state = "sleeper-open"; + dir = 4 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"aL" = ( +/obj/structure/table/reinforced, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"aM" = ( +/obj/machinery/chem_dispenser, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"aN" = ( +/obj/structure/table, +/obj/item/weapon/storage/toolbox/mechanical, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = -1; + pixel_y = 1 + }, +/obj/item/weapon/wrench/medical, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"aO" = ( +/turf/open/floor/plating, +/area/shuttle/escape) +"aP" = ( +/obj/structure/chair/office/light{ + dir = 8 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"aQ" = ( +/obj/machinery/chem_heater, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"aR" = ( +/obj/machinery/chem_master, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"aS" = ( +/obj/machinery/door/window/eastright, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"aT" = ( +/obj/structure/table/glass, +/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/weapon/reagent_containers/glass/bottle/charcoal, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"aU" = ( +/obj/machinery/door/airlock/glass, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/escape) +"aV" = ( +/obj/machinery/door/airlock/shuttle{ + name = "Emergency Shuttle Airlock" + }, +/turf/open/floor/plating, +/area/shuttle/escape) +"aW" = ( +/turf/open/floor/plasteel/yellow, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (NORTH)"; + dir = 1 + }, +/area/shuttle/escape) +"aX" = ( +/turf/open/floor/plasteel/yellow, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (NORTHEAST)"; + dir = 5 + }, +/area/shuttle/escape) +"aY" = ( +/turf/open/floor/plasteel/whitered, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (NORTHWEST)"; + dir = 9 + }, +/area/shuttle/escape) +"aZ" = ( +/turf/open/floor/plasteel/whitered, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (NORTH)"; + dir = 1 + }, +/area/shuttle/escape) +"ba" = ( +/obj/structure/destructible/cult/forge{ + desc = "A engine used in powering the shuttle."; + name = "magma engine" + }, +/turf/open/floor/plasteel/yellow, +/area/shuttle/escape) +"bb" = ( +/turf/open/floor/plasteel/yellow, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (EAST)"; + dir = 4 + }, +/area/shuttle/escape) +"bc" = ( +/turf/open/floor/plasteel/whitered, +/turf/open/floor/plasteel/warningline{ + tag = "icon-warningline (WEST)"; + dir = 8 + }, +/area/shuttle/escape) +"bd" = ( +/obj/structure/destructible/cult/forge{ + desc = "A engine used in powering the shuttle."; + name = "magma engine" + }, +/turf/open/floor/plasteel/whitered, +/area/shuttle/escape) +"be" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating/lava/smooth/airless, +/area/shuttle/escape) +"bf" = ( +/obj/structure/shuttle/engine/heater, +/turf/open/floor/plating/lava/smooth/airless, +/area/shuttle/escape) +"bg" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"bh" = ( +/turf/closed/wall/mineral/titanium/overspace, +/area/shuttle/escape) + +(1,1,1) = {" +aa +aa +aa +aa +ab +ab +ab +ax +ab +aD +ab +as +as +as +ab +aV +ab +aV +ab +ab +ab +aa +"} +(2,1,1) = {" +aa +ab +ab +ab +ab +ak +at +al +as +aE +aI +aI +aI +aE +ab +aE +aI +aW +ba +be +ab +ab +"} +(3,1,1) = {" +ab +ab +ag +ae +ab +al +al +al +aB +aE +aE +aE +aE +aE +ab +aE +aE +aX +bb +be +bf +bg +"} +(4,1,1) = {" +ac +ad +ae +ad +ab +am +am +am +as +aE +aJ +aJ +aJ +aE +aU +aE +aE +aE +aE +be +bf +bg +"} +(5,1,1) = {" +ac +ae +ad +ae +ab +ab +ab +ab +ab +aq +aK +aN +aK +aq +ab +aw +aw +aw +aw +be +bf +bg +"} +(6,1,1) = {" +ac +af +ad +ae +ai +an +au +ay +ab +aq +aq +aq +aq +aq +aH +ab +ab +ab +ab +be +bf +bg +"} +(7,1,1) = {" +ac +ae +ad +ae +aj +ao +au +az +ab +aF +aJ +aq +aJ +aS +as +aI +aI +aI +aI +be +bf +bg +"} +(8,1,1) = {" +ac +ad +ae +ad +ai +ap +av +aA +ab +aq +aL +aO +aL +aq +aU +aE +aE +aE +aE +be +bf +bg +"} +(9,1,1) = {" +ab +ab +ah +ae +aH +aq +aq +aq +aC +aq +aq +aP +aq +aq +as +av +aE +aY +bc +be +bf +bg +"} +(10,1,1) = {" +aa +ab +ab +ab +ab +ar +aw +aw +ab +aG +aM +aQ +aR +aT +as +av +aE +aZ +bd +be +ab +ab +"} +(11,1,1) = {" +aa +aa +aa +aa +ab +as +ab +as +ab +ab +ab +as +as +as +ab +ab +ab +as +ab +ab +ab +aa +"} diff --git a/_maps/shuttles/ferry_base.dmm b/_maps/shuttles/ferry_base.dmm new file mode 100644 index 0000000..18fd93c --- /dev/null +++ b/_maps/shuttles/ferry_base.dmm @@ -0,0 +1,184 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/open/space, +/area/space) +"b" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion"; + dir = 4 + }, +/turf/closed/wall/mineral/titanium, +/area/shuttle/transport) +"c" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/transport) +"d" = ( +/obj/structure/window/shuttle, +/obj/structure/grille, +/turf/open/floor/plating, +/area/shuttle/transport) +"e" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/transport) +"f" = ( +/turf/closed/wall/mineral/titanium/overspace, +/area/shuttle/transport) +"g" = ( +/turf/open/floor/mineral/titanium/blue, +/turf/closed/wall/mineral/titanium/interior, +/area/shuttle/transport) +"h" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"i" = ( +/obj/machinery/computer/shuttle/ferry/request, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"j" = ( +/obj/structure/chair, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"k" = ( +/obj/machinery/door/airlock/shuttle, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"l" = ( +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"m" = ( +/obj/machinery/door/airlock/shuttle, +/obj/docking_port/mobile{ + dir = 8; + dwidth = 2; + height = 12; + id = "ferry"; + name = "ferry shuttle"; + roundstart_move = "ferry_away"; + port_angle = 180; + width = 5; + timid = 1 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"n" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion"; + dir = 4 + }, +/turf/closed/wall/shuttle{ + icon_state = "swall_s5"; + dir = 2 + }, +/area/shuttle/transport) +"o" = ( +/turf/open/floor/plasteel/shuttle, +/turf/closed/wall/shuttle/interior{ + icon_state = "swall_f10" + }, +/area/shuttle/transport) +"p" = ( +/obj/structure/closet/crate, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"q" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"r" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s9"; + dir = 2 + }, +/area/shuttle/transport) + +(1,1,1) = {" +a +b +k +b +a +"} +(2,1,1) = {" +b +g +l +g +b +"} +(3,1,1) = {" +c +h +l +p +c +"} +(4,1,1) = {" +c +i +l +p +c +"} +(5,1,1) = {" +d +j +l +q +d +"} +(6,1,1) = {" +c +j +l +q +c +"} +(7,1,1) = {" +c +j +l +q +c +"} +(8,1,1) = {" +c +j +l +q +c +"} +(9,1,1) = {" +e +j +l +q +e +"} +(10,1,1) = {" +c +j +l +q +c +"} +(11,1,1) = {" +c +j +l +q +c +"} +(12,1,1) = {" +c +d +m +d +c +"} diff --git a/_maps/shuttles/ferry_lighthouse.dmm b/_maps/shuttles/ferry_lighthouse.dmm new file mode 100644 index 0000000..839c368 --- /dev/null +++ b/_maps/shuttles/ferry_lighthouse.dmm @@ -0,0 +1,807 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/open/space, +/area/shuttle/transport) +"ab" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_l"; + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/shuttle/transport) +"ac" = ( +/obj/structure/shuttle/engine/heater{ + icon_state = "heater"; + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/shuttle/transport) +"ad" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/transport) +"ae" = ( +/turf/open/space, +/area/space) +"af" = ( +/turf/closed/wall/r_wall, +/area/shuttle/transport) +"ag" = ( +/turf/open/floor/plating/airless, +/area/shuttle/transport) +"ah" = ( +/obj/structure/foamedmetal, +/turf/open/space, +/area/shuttle/transport) +"ai" = ( +/obj/machinery/vending/liberationstation, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"aj" = ( +/obj/machinery/door/airlock/vault, +/turf/open/floor/plating/airless, +/area/shuttle/transport) +"ak" = ( +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"al" = ( +/obj/machinery/computer/shuttle/ferry/request, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"am" = ( +/obj/structure/grille{ + density = 0; + icon_state = "brokengrille" + }, +/turf/open/floor/plating/airless, +/area/shuttle/transport) +"an" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/vending/autodrobe, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"ao" = ( +/obj/structure/mirror/magic/badmin{ + pixel_x = 30 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"ap" = ( +/turf/closed/wall, +/area/shuttle/transport) +"aq" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/vending/clothing, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"ar" = ( +/obj/structure/chair, +/turf/open/floor/wood, +/area/shuttle/transport) +"as" = ( +/obj/structure/emergency_shield, +/turf/open/space, +/area/shuttle/transport) +"at" = ( +/obj/machinery/door/airlock, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/transport) +"au" = ( +/turf/open/floor/wood, +/area/shuttle/transport) +"av" = ( +/obj/machinery/door/airlock/wood, +/turf/open/floor/wood, +/area/shuttle/transport) +"aw" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/closed/wall/shuttle/smooth, +/area/shuttle/transport) +"ax" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall12"; + dir = 2 + }, +/area/shuttle/transport) +"ay" = ( +/obj/structure/window/shuttle, +/obj/structure/grille, +/turf/open/floor/plating, +/area/shuttle/transport) +"az" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/transport) +"aA" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s10"; + dir = 2 + }, +/area/shuttle/transport) +"aB" = ( +/obj/structure/grille{ + density = 0; + icon_state = "brokengrille" + }, +/obj/structure/window/fulltile, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/transport) +"aC" = ( +/obj/structure/table/wood, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/wood, +/area/shuttle/transport) +"aD" = ( +/turf/open/floor/carpet, +/area/shuttle/transport) +"aE" = ( +/turf/open/floor/bluespace, +/area/shuttle/transport) +"aF" = ( +/obj/machinery/vending/sovietsoda, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"aG" = ( +/obj/machinery/vending/snack, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"aH" = ( +/obj/machinery/newscaster{ + pixel_y = 30 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"aI" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/wiz, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"aJ" = ( +/obj/structure/chair, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"aK" = ( +/obj/structure/table/wood, +/obj/item/device/flashlight/lamp/green, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"aL" = ( +/turf/closed/wall/rust, +/area/shuttle/transport) +"aM" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/transport) +"aN" = ( +/obj/machinery/power/grounding_rod{ + anchored = 1 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"aO" = ( +/obj/machinery/door/airlock/shuttle, +/obj/docking_port/mobile{ + dir = 8; + dwidth = 8; + height = 27; + id = "ferry"; + name = "The Lighthouse"; + roundstart_move = "ferry_away"; + timid = 1; + port_angle = 180; + width = 16 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"aP" = ( +/obj/machinery/vending/magivend, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"aQ" = ( +/obj/structure/grille, +/obj/structure/window/fulltile, +/turf/open/floor/plasteel/shuttle, +/area/shuttle/transport) +"aR" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/turf/open/floor/wood, +/area/shuttle/transport) +"aS" = ( +/obj/structure/table/wood, +/obj/item/toy/crayon/spraycan, +/turf/open/floor/wood, +/area/shuttle/transport) +"aT" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/centcom, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"aU" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/rainbow, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"aV" = ( +/obj/structure/closet/crate, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"aW" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"aX" = ( +/obj/structure/window/fulltile, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/transport) +"aY" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/closed/wall/shuttle/smooth, +/area/shuttle/transport) +"aZ" = ( +/turf/closed/wall/mineral/titanium/overspace, +/area/shuttle/transport) +"ba" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "garbage" + }, +/turf/open/floor/wood, +/area/shuttle/transport) +"bb" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "garbage"; + layer = 2.5 + }, +/turf/open/floor/wood, +/area/shuttle/transport) +"bc" = ( +/obj/structure/table/wood, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/item/weapon/vending_refill/snack, +/turf/open/floor/wood, +/area/shuttle/transport) +"bd" = ( +/obj/item/weapon/twohanded/required/kirbyplants/dead{ + desc = "It doesn't look very healthy..."; + name = "potted plant" + }, +/turf/open/floor/wood, +/area/shuttle/transport) +"be" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "garbage" + }, +/turf/open/floor/wood, +/area/shuttle/transport) +"bf" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "garbage" + }, +/obj/structure/plasticflaps, +/turf/open/floor/wood, +/area/shuttle/transport) +"bg" = ( +/obj/machinery/conveyor{ + dir = 10; + id = "garbage"; + verted = -1 + }, +/turf/open/floor/wood, +/area/shuttle/transport) +"bh" = ( +/obj/structure/foamedmetal, +/turf/open/floor/plating/airless, +/area/shuttle/transport) +"bi" = ( +/obj/structure/shuttle/engine/heater, +/turf/open/floor/plating/airless, +/area/shuttle/transport) +"bj" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_r" + }, +/turf/open/floor/plating/airless, +/area/shuttle/transport) + +(1,1,1) = {" +aa +af +aa +ag +aa +aa +ag +ag +aa +aa +aa +aa +aa +aa +ab +aa +"} +(2,1,1) = {" +aa +af +af +aj +af +af +aa +ag +aa +aa +ab +aa +aa +aa +ac +aa +"} +(3,1,1) = {" +ab +af +ag +ag +am +af +aa +ag +aa +ag +ac +ag +aa +ag +ag +aa +"} +(4,1,1) = {" +ac +af +ah +ah +an +aq +as +aB +as +as +aX +ah +ah +ah +bi +bj +"} +(5,1,1) = {" +ad +aM +ai +ak +ao +ak +ak +ak +ak +aP +aX +ba +be +bh +bi +bj +"} +(6,1,1) = {" +ae +ad +aM +al +ap +ap +at +ap +aL +aQ +ap +aL +be +bh +aM +ad +"} +(7,1,1) = {" +ae +ae +ad +ad +aM +ar +au +au +au +au +au +aL +bf +aM +ad +ae +"} +(8,1,1) = {" +ae +ae +ae +ae +ad +ar +au +au +au +aR +au +bb +bg +ad +ae +ae +"} +(9,1,1) = {" +ae +ae +ae +ae +ap +ap +av +aC +aC +aS +aC +bc +aM +ad +ae +ae +"} +(10,1,1) = {" +ae +ae +ae +ae +ae +ap +au +aD +aD +aD +aD +bd +ad +ae +ae +ae +"} +(11,1,1) = {" +ae +ae +ae +ae +ae +ap +ap +aD +aD +aD +aD +aM +ad +ae +ae +ae +"} +(12,1,1) = {" +ae +ae +ae +ae +ae +ae +ap +aD +aD +aD +aD +ad +ae +ae +ae +ae +"} +(13,1,1) = {" +ae +ae +ae +ae +ae +ae +ap +aE +aN +aE +aM +ad +ae +ae +ae +ae +"} +(14,1,1) = {" +ae +ae +ae +ae +ae +ae +aw +aE +aN +aE +ad +ae +ae +ae +ae +ae +"} +(15,1,1) = {" +ae +ae +ae +ae +ae +ae +aw +aE +aE +aE +ad +ae +ae +ae +ae +ae +"} +(16,1,1) = {" +ae +ae +ae +ae +ae +ae +ad +ak +aE +ak +aY +ae +ae +ae +ae +ae +"} +(17,1,1) = {" +ae +ae +ae +ae +ae +ae +ad +aF +aE +aT +aw +ae +ae +ae +ae +ae +"} +(18,1,1) = {" +ae +ae +ae +ae +ae +ae +ad +aG +aE +aU +ad +ae +ae +ae +ae +ae +"} +(19,1,1) = {" +ae +ae +ae +ae +ae +ae +ad +aH +aE +aV +ad +ae +ae +ae +ae +ae +"} +(20,1,1) = {" +ae +ae +ae +ae +ae +ae +ay +aI +aE +aW +ay +ae +ae +ae +ae +ae +"} +(21,1,1) = {" +ae +ae +ae +ae +ae +ae +ad +ak +aE +aW +ad +ae +ae +ae +ae +ae +"} +(22,1,1) = {" +ae +ae +ae +ae +ae +ae +ad +aJ +aE +aW +ad +ae +ae +ae +ae +ae +"} +(23,1,1) = {" +ae +ae +ae +ae +ae +ae +ad +aJ +aE +aW +ad +ae +ae +ae +ae +ae +"} +(24,1,1) = {" +ae +ae +ae +ae +ae +ae +az +aJ +aE +aW +az +ae +ae +ae +ae +ae +"} +(25,1,1) = {" +ae +ae +ae +ae +ae +ae +ad +aJ +aE +aW +ad +ae +ae +ae +ae +ae +"} +(26,1,1) = {" +ae +ae +ae +ae +ae +ae +ad +aK +aE +aW +ad +ae +ae +ae +ae +ae +"} +(27,1,1) = {" +ae +ae +ae +ae +ae +ae +ad +ay +aO +ay +ad +ae +ae +ae +ae +ae +"} diff --git a/_maps/shuttles/ferry_meat.dmm b/_maps/shuttles/ferry_meat.dmm new file mode 100644 index 0000000..09bc387 --- /dev/null +++ b/_maps/shuttles/ferry_meat.dmm @@ -0,0 +1,252 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/open/space, +/area/space) +"b" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion"; + dir = 4 + }, +/turf/closed/wall/mineral/titanium/overspace, +/area/shuttle/transport) +"c" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/transport) +"d" = ( +/turf/closed/wall/mineral/titanium/overspace, +/area/shuttle/transport) +"e" = ( +/turf/open/floor/plasteel/freezer, +/turf/closed/wall/mineral/titanium/interior, +/area/shuttle/transport) +"f" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/shuttle/transport) +"g" = ( +/obj/machinery/computer/shuttle/ferry/request, +/turf/open/floor/plasteel/freezer, +/area/shuttle/transport) +"h" = ( +/obj/structure/closet/secure_closet/freezer/meat{ + name = "\"meat\" fridge" + }, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/bear, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/corgi, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/goliath, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/killertomato, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/pug, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/spider, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/xeno, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human{ + name = "human meat" + }, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/fly{ + name = "flyman meat" + }, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/golem/adamantine{ + name = "golem meat" + }, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard{ + name = "lizard meat" + }, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/plant{ + name = "podperson meat" + }, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/shadow{ + name = "shadowling meat" + }, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/slime{ + name = "slimeperson meat" + }, +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/zombie{ + name = "rotten meat" + }, +/turf/open/floor/plasteel/freezer, +/area/shuttle/transport) +"i" = ( +/turf/open/floor/plasteel/freezer, +/area/shuttle/transport) +"j" = ( +/obj/machinery/gibber, +/turf/open/floor/plasteel/freezer, +/area/shuttle/transport) +"k" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 0; + pixel_y = 30; + tag = "n" + }, +/turf/open/floor/plasteel/freezer, +/area/shuttle/transport) +"l" = ( +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/freezer, +/area/shuttle/transport) +"m" = ( +/obj/structure/sink/kitchen{ + desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; + name = "old sink"; + pixel_y = 28 + }, +/turf/open/floor/plasteel/freezer, +/area/shuttle/transport) +"n" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair, +/turf/open/floor/plasteel/freezer, +/area/shuttle/transport) +"o" = ( +/obj/structure/window/shuttle, +/obj/structure/grille, +/turf/open/floor/plating, +/area/shuttle/transport) +"p" = ( +/obj/machinery/door/airlock/shuttle, +/turf/open/floor/plasteel/freezer, +/area/shuttle/transport) +"q" = ( +/obj/machinery/door/airlock/shuttle, +/obj/docking_port/mobile{ + dir = 8; + dwidth = 2; + height = 12; + id = "ferry"; + name = "ferry shuttle"; + roundstart_move = "ferry_away"; + port_angle = 180; + width = 5; + timid = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/shuttle/transport) +"r" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion"; + dir = 4 + }, +/turf/closed/wall/shuttle{ + icon_state = "swall_s5"; + dir = 2 + }, +/area/shuttle/transport) +"s" = ( +/turf/open/floor/plasteel/freezer, +/turf/closed/wall/shuttle/interior{ + icon_state = "swall_f10" + }, +/area/shuttle/transport) +"t" = ( +/obj/structure/closet/chefcloset, +/turf/open/floor/plasteel/freezer, +/area/shuttle/transport) +"u" = ( +/obj/structure/kitchenspike, +/turf/open/floor/plasteel/freezer, +/area/shuttle/transport) +"v" = ( +/obj/machinery/door/airlock/freezer{ + name = "Meat Tradeship Backroom"; + req_access = "28" + }, +/turf/open/floor/plasteel/freezer, +/area/shuttle/transport) +"w" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/shuttle/transport) +"x" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s9"; + dir = 2 + }, +/area/shuttle/transport) + +(1,1,1) = {" +a +b +p +b +a +"} +(2,1,1) = {" +b +e +i +e +b +"} +(3,1,1) = {" +c +f +i +t +c +"} +(4,1,1) = {" +c +g +i +u +c +"} +(5,1,1) = {" +c +h +i +u +c +"} +(6,1,1) = {" +c +i +i +u +c +"} +(7,1,1) = {" +c +j +i +i +c +"} +(8,1,1) = {" +c +k +i +i +c +"} +(9,1,1) = {" +c +l +l +v +c +"} +(10,1,1) = {" +c +m +i +i +c +"} +(11,1,1) = {" +c +n +i +w +c +"} +(12,1,1) = {" +c +o +q +o +c +"} diff --git a/_maps/shuttles/whiteship_box.dmm b/_maps/shuttles/whiteship_box.dmm new file mode 100644 index 0000000..43134ac --- /dev/null +++ b/_maps/shuttles/whiteship_box.dmm @@ -0,0 +1,1182 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/open/space, +/area/space) +"ab" = ( +/turf/closed/wall/mineral/titanium/overspace, +/area/shuttle/abandoned) +"ac" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s10"; + dir = 2 + }, +/area/shuttle/abandoned) +"ad" = ( +/obj/machinery/door/airlock/shuttle, +/obj/docking_port/mobile{ + dheight = 0; + dir = 2; + dwidth = 11; + height = 22; + id = "whiteship"; + launch_status = 0; + name = "NT Medical Ship"; + roundstart_move = "whiteship_away"; + port_angle = 180; + width = 35; + timid = 1 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"ae" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall12"; + dir = 2 + }, +/area/shuttle/abandoned) +"af" = ( +/obj/machinery/door/airlock/shuttle, +/turf/open/floor/plasteel/shuttle/white, +/area/shuttle/abandoned) +"ag" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_l"; + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/shuttle/abandoned) +"ah" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall13"; + dir = 2 + }, +/area/shuttle/abandoned) +"ai" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall11"; + dir = 2 + }, +/area/shuttle/abandoned) +"aj" = ( +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"ak" = ( +/obj/structure/table, +/obj/item/device/radio/off, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"al" = ( +/obj/structure/table, +/obj/item/weapon/screwdriver, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"am" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall3"; + dir = 2 + }, +/area/shuttle/abandoned) +"an" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion"; + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/shuttle/abandoned) +"ao" = ( +/obj/structure/shuttle/engine/heater{ + icon_state = "heater"; + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/shuttle/abandoned) +"ap" = ( +/turf/open/floor/plating, +/turf/closed/wall/mineral/titanium/interior, +/area/shuttle/abandoned) +"aq" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall15"; + dir = 2 + }, +/area/shuttle/abandoned) +"ar" = ( +/obj/machinery/computer/pod{ + id = "oldship_gun" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"as" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall7"; + dir = 2 + }, +/area/shuttle/abandoned) +"at" = ( +/turf/open/floor/plating, +/area/shuttle/abandoned) +"au" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_f13" + }, +/area/shuttle/abandoned) +"av" = ( +/obj/structure/rack, +/obj/item/clothing/suit/space/hardsuit/medical, +/obj/item/clothing/mask/breath, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"aw" = ( +/obj/machinery/door/airlock/glass, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"ax" = ( +/obj/machinery/mass_driver{ + dir = 4; + icon_state = "mass_driver"; + id = "oldship_gun" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"ay" = ( +/obj/machinery/door/poddoor{ + id = "oldship_gun"; + name = "pod bay door" + }, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"az" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_f12" + }, +/area/shuttle/abandoned) +"aA" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall14"; + dir = 2 + }, +/area/shuttle/abandoned) +"aB" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_r"; + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/shuttle/abandoned) +"aC" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"aD" = ( +/obj/machinery/door/airlock/shuttle, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"aE" = ( +/obj/item/weapon/stock_parts/cell{ + charge = 100; + maxcharge = 15000 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"aF" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_f14" + }, +/area/shuttle/abandoned) +"aG" = ( +/obj/structure/rack, +/obj/item/weapon/tank/internals/emergency_oxygen, +/obj/item/weapon/tank/internals/emergency_oxygen, +/obj/item/weapon/tank/internals/emergency_oxygen, +/obj/item/weapon/tank/internals/emergency_oxygen, +/obj/item/weapon/storage/toolbox/mechanical, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"aH" = ( +/obj/structure/frame/computer{ + anchored = 1 + }, +/turf/open/floor/plasteel/shuttle/white, +/area/shuttle/abandoned) +"aI" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_f11" + }, +/area/shuttle/abandoned) +"aJ" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"aK" = ( +/obj/item/weapon/shard{ + icon_state = "medium" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"aL" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"aM" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plasteel/shuttle/white, +/area/shuttle/abandoned) +"aN" = ( +/obj/machinery/door/window, +/turf/open/floor/mineral/titanium/purple, +/area/shuttle/abandoned) +"aO" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/purple, +/area/shuttle/abandoned) +"aP" = ( +/obj/structure/table, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"aQ" = ( +/obj/structure/table, +/obj/item/weapon/gun/energy/laser/retro, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"aR" = ( +/obj/machinery/door/airlock/glass, +/turf/open/floor/plasteel/shuttle/white, +/area/shuttle/abandoned) +"aS" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/decal/remains/human, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"aT" = ( +/obj/machinery/computer/shuttle/white_ship, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"aU" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"aV" = ( +/obj/structure/table, +/obj/item/weapon/tank/internals/oxygen, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"aW" = ( +/obj/machinery/door/airlock/shuttle, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"aX" = ( +/turf/open/floor/mineral/titanium, +/turf/closed/wall/mineral/titanium/interior, +/area/shuttle/abandoned) +"aY" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/purple, +/area/shuttle/abandoned) +"aZ" = ( +/obj/machinery/door/window/northright, +/obj/effect/decal/remains/human, +/turf/open/floor/mineral/titanium/purple, +/area/shuttle/abandoned) +"ba" = ( +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"bb" = ( +/obj/structure/frame/computer{ + anchored = 1 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"bc" = ( +/obj/item/device/multitool, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"bd" = ( +/obj/structure/chair, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"be" = ( +/obj/machinery/door/airlock/glass, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"bf" = ( +/obj/item/weapon/scalpel, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"bg" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular{ + pixel_x = 6; + pixel_y = -5 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"bh" = ( +/obj/machinery/sleeper{ + icon_state = "sleeper-open"; + dir = 8 + }, +/obj/effect/decal/remains/human, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) + +(1,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aC +aC +aW +aC +aC +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(2,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aC +aX +aj +aX +aC +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(3,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aC +aj +aj +aj +aC +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(4,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aC +aj +aj +aj +aC +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(5,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aC +aj +aj +aj +aC +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(6,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aC +aj +aj +aj +aC +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(7,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aC +aj +aj +aj +aC +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(8,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aC +aj +aj +aj +aC +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(9,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aC +aj +aj +aU +aC +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(10,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aC +aX +aj +aX +aC +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(11,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aC +aC +aW +aC +aC +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(12,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aC +aj +aC +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(13,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aC +aC +aW +aC +aC +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(14,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aC +aC +aX +aj +aX +aC +aC +aa +aa +aa +aa +aa +aa +aa +aa +"} +(15,1,1) = {" +aC +ag +an +an +an +aB +aa +aC +aX +aj +aj +aj +aX +aC +aa +ag +an +an +an +aB +aC +aa +"} +(16,1,1) = {" +aC +aC +ao +ao +ao +aC +aC +aC +aj +aj +aj +aj +aj +aC +aC +aC +ao +ao +ao +aC +aC +aa +"} +(17,1,1) = {" +aa +aC +ap +at +at +ap +aC +aX +aj +aj +aj +aj +aj +aX +aC +ap +at +at +ap +aC +aa +aa +"} +(18,1,1) = {" +aa +aa +aC +ap +at +at +aC +aj +aj +aj +aj +aj +aj +ba +aC +at +at +ap +aC +aa +aa +aa +"} +(19,1,1) = {" +aa +aa +aa +aC +aC +aD +aC +aC +aC +aL +be +aL +aC +aC +aC +aD +aC +aC +aa +aa +aa +aa +"} +(20,1,1) = {" +aa +aa +aa +aC +aC +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aC +aC +aa +aa +aa +aa +"} +(21,1,1) = {" +aa +aa +aC +aC +aX +aE +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aC +aC +aC +aa +aa +aa +"} +(22,1,1) = {" +aa +aC +aC +aX +aj +aj +aj +aj +az +am +am +am +am +aI +aj +aj +aC +aC +aC +aC +aa +aa +"} +(23,1,1) = {" +aC +aC +aC +aC +aC +aC +aX +aj +ae +aN +aj +aj +aj +af +aj +aj +aW +aj +aX +aC +aa +aa +"} +(24,1,1) = {" +ad +aj +aj +av +av +aX +aC +aj +ae +aO +aj +aV +aY +ae +aj +aj +aC +aj +bg +aC +aC +aa +"} +(25,1,1) = {" +aC +aj +aj +aj +aj +aG +aC +aj +af +aj +aj +aj +aZ +ae +aj +aj +aC +aj +aj +aX +aC +aa +"} +(26,1,1) = {" +aC +ak +aj +aj +aj +aj +aC +aj +aF +am +am +am +am +au +aj +aE +aL +bf +aj +aj +aC +aa +"} +(27,1,1) = {" +aC +al +aj +aj +aj +aj +aW +aj +aj +aj +aj +aj +aj +aj +aj +aj +aL +aj +aj +bh +aC +aa +"} +(28,1,1) = {" +aC +aj +aj +aj +aj +aj +aC +aX +aj +aj +aj +aj +aj +aj +aj +bc +aL +aj +aj +aj +aC +aa +"} +(29,1,1) = {" +aC +aj +aj +aj +aj +aX +aC +aC +aC +aL +aR +aL +aC +aC +aC +aC +aC +aj +aj +aj +aC +aa +"} +(30,1,1) = {" +aC +aj +aj +aj +aX +aC +aX +aj +aj +aj +aj +aj +aj +aP +aP +aP +aC +aj +aj +aX +aC +aa +"} +(31,1,1) = {" +aW +aj +ar +aj +aC +aX +aj +aj +aj +aj +aj +aj +aj +aj +aj +aj +aX +aX +bb +aC +aa +aa +"} +(32,1,1) = {" +aC +aC +aC +aw +aC +bb +aJ +aj +aj +aj +aj +aj +aj +aj +aj +bd +aH +aC +aC +aC +aa +aa +"} +(33,1,1) = {" +aa +aa +aC +ax +aC +bb +aJ +aj +aj +aP +aS +aP +aj +aj +aj +aj +aX +aC +aC +aa +aa +aa +"} +(34,1,1) = {" +aa +aa +aC +ay +aC +aX +aK +aj +aj +aQ +aT +aP +aj +aj +aj +aX +aC +aC +aa +aa +aa +aa +"} +(35,1,1) = {" +aa +aa +aa +aa +aC +aC +aC +aL +aL +aL +aL +aL +aL +aL +aC +aC +aC +aa +aa +aa +aa +aa +"} diff --git a/_maps/shuttles/whiteship_meta.dmm b/_maps/shuttles/whiteship_meta.dmm new file mode 100644 index 0000000..2a63bb7 --- /dev/null +++ b/_maps/shuttles/whiteship_meta.dmm @@ -0,0 +1,2152 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/open/space, +/area/space) +"ab" = ( +/turf/closed/wall/mineral/titanium/overspace, +/area/shuttle/abandoned) +"ac" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"ad" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall12"; + dir = 2 + }, +/area/shuttle/abandoned) +"ae" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/abandoned) +"af" = ( +/turf/closed/wall/shuttle{ + icon_state = "swallc1"; + dir = 2 + }, +/area/shuttle/abandoned) +"ag" = ( +/obj/docking_port/mobile{ + dheight = 0; + dir = 2; + dwidth = 11; + height = 15; + id = "whiteship"; + launch_status = 0; + name = "NT Recovery White-Ship"; + port_angle = 180; + preferred_direction = 1; + roundstart_move = "whiteship_away"; + timid = 1; + width = 27 + }, +/obj/machinery/door/airlock/shuttle{ + name = "recovery shuttle external airlock" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"ah" = ( +/obj/machinery/door/airlock/shuttle{ + name = "recovery shuttle external airlock" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"ai" = ( +/turf/closed/wall/shuttle{ + icon_state = "swallc2"; + dir = 2 + }, +/area/shuttle/abandoned) +"aj" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s10"; + dir = 2 + }, +/area/shuttle/abandoned) +"ak" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_l"; + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/shuttle/abandoned) +"al" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall13"; + dir = 2 + }, +/area/shuttle/abandoned) +"am" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall11"; + dir = 2 + }, +/area/shuttle/abandoned) +"an" = ( +/obj/structure/toilet{ + pixel_y = 9 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/greenglow{ + desc = "Looks like something's sprung a leak" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"ao" = ( +/obj/structure/mirror{ + pixel_x = 28; + pixel_y = 0 + }, +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"ap" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall3"; + dir = 2 + }, +/area/shuttle/abandoned) +"aq" = ( +/obj/structure/closet/wardrobe/mixed, +/obj/item/clothing/under/rank/centcom_officer{ + desc = "A badge on the arm indicates that it's meant to be worn by Centcom recovery teams. This one seems dusty and clearly hasn't been cleaned in some time."; + name = "\improper dusty old Centcom jumpsuit" + }, +/obj/item/clothing/under/rank/centcom_commander{ + desc = "A badge on the arm indicates that it's meant to be worn by Centcom recovery teams. This one seems dusty and clearly hasn't been cleaned in some time."; + name = "\improper dusty old Centcom jumpsuit" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"ar" = ( +/obj/structure/table, +/obj/item/weapon/storage/pill_bottle/dice{ + pixel_y = 3 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"as" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/weapon/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000; + pixel_y = 2 + }, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"at" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"au" = ( +/obj/structure/tank_dispenser/oxygen{ + layer = 2.7; + pixel_x = -1; + pixel_y = 2 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"av" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall1" + }, +/area/shuttle/abandoned) +"aw" = ( +/obj/structure/sign/vacuum{ + pixel_x = -32 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"ax" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"ay" = ( +/obj/structure/closet/crate/medical{ + name = "medical crate" + }, +/obj/item/weapon/storage/firstaid/o2{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/roller{ + pixel_y = 4 + }, +/obj/item/device/healthanalyzer, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/bot, +/area/shuttle/abandoned) +"az" = ( +/obj/structure/closet/crate{ + name = "spare equipment crate" + }, +/obj/item/weapon/grenade/chem_grenade/metalfoam, +/obj/item/weapon/relic, +/obj/item/device/t_scanner, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/bot, +/area/shuttle/abandoned) +"aA" = ( +/obj/item/weapon/storage/box/lights/mixed, +/obj/item/weapon/cigbutt, +/obj/structure/closet/crate{ + icon_state = "crateopen"; + name = "spare equipment crate"; + opened = 1 + }, +/obj/item/weapon/tank/internals/oxygen/red, +/obj/item/weapon/tank/internals/air, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/bot, +/area/shuttle/abandoned) +"aB" = ( +/obj/structure/closet/crate{ + name = "emergency supplies crate" + }, +/obj/item/weapon/storage/toolbox/emergency, +/obj/item/weapon/storage/toolbox/emergency, +/obj/item/device/flashlight/flare{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/device/flashlight/flare{ + pixel_x = -6; + pixel_y = -2 + }, +/obj/item/weapon/crowbar, +/obj/item/weapon/wrench, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/weapon/extinguisher, +/obj/item/weapon/extinguisher, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/bot, +/area/shuttle/abandoned) +"aC" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion"; + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/shuttle/abandoned) +"aD" = ( +/obj/structure/shuttle/engine/heater{ + icon_state = "heater"; + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/shuttle/abandoned) +"aE" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall7"; + dir = 2 + }, +/area/shuttle/abandoned) +"aF" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall8"; + dir = 2 + }, +/area/shuttle/abandoned) +"aG" = ( +/obj/machinery/door/airlock/shuttle{ + name = "bathroom" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"aH" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/blood/gibs/old, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/ash{ + desc = "They look like human remains, and have clearly been gnawed at."; + icon = 'icons/effects/blood.dmi'; + icon_state = "remains"; + name = "remains" + }, +/obj/item/weapon/gun/energy/laser/retro, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"aI" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/centcom, +/obj/effect/decal/remains/human, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"aJ" = ( +/obj/structure/table, +/obj/item/weapon/storage/belt/utility, +/obj/item/weapon/storage/belt/utility, +/obj/item/device/radio/off, +/obj/item/device/radio/off, +/obj/item/device/radio/off, +/obj/item/device/radio/off, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"aK" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"aL" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"aM" = ( +/obj/machinery/door/airlock/shuttle{ + name = "E.V.A. equipment" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"aN" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/blood/gibs/old, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/ash{ + desc = "They look like human remains, and have clearly been gnawed at."; + icon = 'icons/effects/blood.dmi'; + icon_state = "remains"; + name = "remains" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"aO" = ( +/obj/machinery/door/airlock/shuttle{ + name = "cargo bay" + }, +/turf/open/floor/plasteel/delivery{ + dir = 1 + }, +/area/shuttle/abandoned) +"aP" = ( +/obj/effect/decal/cleanable/oil, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/delivery{ + dir = 1 + }, +/area/shuttle/abandoned) +"aQ" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/delivery{ + dir = 1 + }, +/area/shuttle/abandoned) +"aR" = ( +/obj/effect/decal/cleanable/robot_debris/old, +/obj/effect/decal/cleanable/oil, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/delivery{ + dir = 1 + }, +/area/shuttle/abandoned) +"aS" = ( +/obj/machinery/shower{ + icon_state = "shower"; + dir = 4 + }, +/obj/machinery/door/window/westright{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/weapon/soap/nanotrasen, +/obj/effect/decal/cleanable/ash{ + desc = "They look like human remains, and have clearly been gnawed at."; + icon = 'icons/effects/blood.dmi'; + icon_state = "remains"; + name = "remains" + }, +/obj/effect/decal/cleanable/blood/gibs/old, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"aT" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/structure/mirror{ + pixel_x = 28; + pixel_y = 0 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"aU" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/blood/gibs/limb, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"aV" = ( +/obj/structure/bed, +/obj/item/weapon/bedsheet/centcom, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"aW" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass{ + amount = 50; + pixel_x = -2; + pixel_y = 2 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/weapon/wrench, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"aX" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9; + pixel_y = 2 + }, +/obj/item/weapon/storage/toolbox/electrical{ + pixel_x = 1; + pixel_y = 6 + }, +/obj/item/weapon/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/clothing/head/welding{ + pixel_x = -3; + pixel_y = 5 + }, +/obj/item/clothing/glasses/welding, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"aY" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"aZ" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall2" + }, +/area/shuttle/abandoned) +"ba" = ( +/obj/effect/decal/cleanable/oil, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/bot, +/area/shuttle/abandoned) +"bb" = ( +/obj/structure/closet/emcloset, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/bot, +/area/shuttle/abandoned) +"bc" = ( +/obj/structure/closet/firecloset/full, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/bot, +/area/shuttle/abandoned) +"bd" = ( +/obj/machinery/door/airlock/shuttle{ + name = "bathroom" + }, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"be" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall1"; + dir = 2 + }, +/area/shuttle/abandoned) +"bf" = ( +/obj/machinery/door/airlock/shuttle{ + name = "dormitory" + }, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"bg" = ( +/obj/machinery/vending/boozeomat{ + icon_deny = "smartfridge"; + icon_state = "smartfridge"; + req_access_txt = "0"; + use_power = 0 + }, +/turf/closed/wall/shuttle{ + icon_state = "swall12"; + dir = 2 + }, +/area/shuttle/abandoned) +"bh" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall4"; + dir = 2 + }, +/area/shuttle/abandoned) +"bi" = ( +/turf/closed/wall/shuttle{ + icon_state = "swallc4"; + dir = 2 + }, +/area/shuttle/abandoned) +"bj" = ( +/obj/machinery/door/airlock/shuttle{ + name = "recovery shuttle interior airlock" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"bk" = ( +/turf/closed/wall/shuttle{ + icon_state = "swallc3"; + dir = 2 + }, +/area/shuttle/abandoned) +"bl" = ( +/obj/machinery/door/airlock/shuttle{ + name = "cargo bay" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plasteel/delivery{ + dir = 1 + }, +/area/shuttle/abandoned) +"bm" = ( +/obj/machinery/vending/cigarette{ + use_power = 0 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"bn" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/blood/gibs/limb, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"bo" = ( +/obj/effect/decal/cleanable/blood/gibs/old, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"bp" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"bq" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"br" = ( +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"bs" = ( +/obj/structure/table, +/obj/item/device/camera, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"bt" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/weapon/storage/photo_album, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"bu" = ( +/obj/structure/table, +/obj/item/weapon/paper_bin{ + pixel_x = -1; + pixel_y = 6 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"bv" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/structure/sign/vacuum{ + pixel_x = -32 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"bw" = ( +/obj/machinery/vending/coffee{ + pixel_x = -2; + use_power = 0 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"bx" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"by" = ( +/obj/structure/chair, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"bz" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"bA" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/fluff/empty_sleeper/nanotrasen{ + dir = 1; + pixel_y = 0 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"bB" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/fluff/empty_sleeper/nanotrasen{ + dir = 1; + pixel_y = 0 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"bC" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"bD" = ( +/obj/structure/table, +/obj/item/weapon/folder/blue, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/device/gps{ + gpstag = "NTREC1"; + pixel_x = -1; + pixel_y = 2 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"bE" = ( +/obj/machinery/door/airlock/shuttle{ + name = "recovery shuttle interior airlock" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"bF" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"bG" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/drinks/shaker, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"bH" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/condiment/peppermill{ + pixel_x = 3; + pixel_y = 4 + }, +/obj/item/weapon/reagent_containers/food/condiment/saltshaker{ + pixel_x = -3; + pixel_y = 4 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"bI" = ( +/obj/structure/table, +/obj/item/weapon/storage/fancy/donut_box, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"bJ" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"bK" = ( +/obj/machinery/door/airlock/shuttle{ + name = "living quarters" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"bL" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/roller{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/roller{ + pixel_x = 3; + pixel_y = 4 + }, +/obj/item/weapon/reagent_containers/spray/cleaner, +/obj/structure/table, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"bM" = ( +/obj/item/clothing/suit/bio_suit, +/obj/item/clothing/suit/bio_suit, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/clothing/gloves/color/latex, +/obj/item/clothing/gloves/color/latex, +/obj/item/clothing/head/bio_hood, +/obj/item/clothing/head/bio_hood, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/obj/structure/table, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"bN" = ( +/obj/effect/decal/cleanable/blood/gibs/old, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/ash{ + desc = "They look like human remains, and have clearly been gnawed at."; + icon = 'icons/effects/blood.dmi'; + icon_state = "remains"; + name = "remains" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"bO" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/blood/gibs/limb, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"bP" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/suit/armor/vest, +/obj/item/clothing/suit/armor/vest, +/obj/structure/table, +/obj/item/clothing/head/helmet/swat/nanotrasen, +/obj/item/clothing/head/helmet/swat/nanotrasen, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"bQ" = ( +/obj/item/weapon/storage/toolbox/emergency{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/storage/toolbox/emergency, +/obj/item/weapon/storage/toolbox/emergency{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/table, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"bR" = ( +/obj/machinery/door/airlock/shuttle{ + name = "bridge" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"bS" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"bT" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/computer/shuttle/white_ship, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"bU" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"bV" = ( +/obj/machinery/vending/cola{ + pixel_x = -1; + use_power = 0 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"bW" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"bX" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/fluff/empty_sleeper/nanotrasen{ + dir = 2; + pixel_y = 3 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"bY" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/fluff/empty_sleeper/nanotrasen{ + dir = 2; + pixel_y = 3 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"bZ" = ( +/obj/structure/chair/office/light, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"ca" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/blood/gibs/old, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/clothing/head/centhat{ + desc = "There's a gouge through the top where something has clawed clean through it. Whoever was wearing it probably doesn't need a hat any more."; + name = "\improper damaged CentCom hat" + }, +/obj/effect/decal/cleanable/ash{ + desc = "They look like human remains, and have clearly been gnawed at."; + icon = 'icons/effects/blood.dmi'; + icon_state = "remains"; + name = "remains" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"cb" = ( +/obj/item/weapon/phone{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/weapon/cigbutt/cigarbutt{ + pixel_x = 5; + pixel_y = -1 + }, +/obj/structure/table, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"cc" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s5"; + dir = 2 + }, +/area/shuttle/abandoned) +"cd" = ( +/obj/machinery/vending/snack{ + pixel_x = -1; + use_power = 0 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"ce" = ( +/obj/structure/sign/science{ + pixel_y = -32 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"cf" = ( +/obj/structure/frame/computer, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"cg" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/device/megaphone, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"ch" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/device/mass_spectrometer, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"ci" = ( +/obj/structure/table, +/obj/item/device/radio/off{ + pixel_y = 6 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"cj" = ( +/obj/structure/sign/botany, +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"ck" = ( +/obj/machinery/door/airlock/shuttle{ + name = "hydroponics" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"cl" = ( +/obj/machinery/door/airlock/shuttle{ + name = "kitchen" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"cm" = ( +/obj/machinery/door/airlock/shuttle{ + name = "laboratory" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"cn" = ( +/obj/structure/sign/bluecross_2, +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"co" = ( +/obj/machinery/door/airlock/shuttle{ + icon_state = "door_closed"; + name = "medbay"; + welded = 0 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"cp" = ( +/turf/closed/wall/shuttle{ + icon_state = "swall_s9"; + dir = 2 + }, +/area/shuttle/abandoned) +"cq" = ( +/obj/item/weapon/storage/bag/plants/portaseeder, +/obj/structure/table, +/obj/item/weapon/reagent_containers/spray/plantbgone{ + pixel_x = 13; + pixel_y = 5 + }, +/obj/item/weapon/reagent_containers/glass/bottle/nutrient/ez, +/obj/item/weapon/reagent_containers/glass/bottle/nutrient/ez, +/obj/item/weapon/reagent_containers/glass/bottle/nutrient/ez, +/obj/item/weapon/reagent_containers/glass/bottle/nutrient/rh{ + pixel_x = -2; + pixel_y = 3 + }, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"cr" = ( +/obj/machinery/biogenerator{ + idle_power_usage = 0; + use_power = 0 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"cs" = ( +/obj/machinery/vending/hydroseeds{ + pixel_x = 2; + use_power = 0 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"ct" = ( +/obj/machinery/processor, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"cu" = ( +/obj/structure/kitchenspike, +/obj/effect/decal/cleanable/blood/gibs/old, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"cv" = ( +/obj/structure/table, +/obj/machinery/microwave{ + pixel_x = -3; + pixel_y = 6 + }, +/obj/item/weapon/storage/box/donkpockets, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"cw" = ( +/obj/effect/decal/cleanable/oil, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"cx" = ( +/obj/structure/fluff/empty_sleeper/nanotrasen, +/obj/item/weapon/circuitboard/machine/autolathe, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"cy" = ( +/obj/machinery/sleeper{ + dir = 4; + use_power = 0 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"cz" = ( +/obj/structure/closet/crate/freezer, +/obj/item/weapon/reagent_containers/blood/empty{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/weapon/reagent_containers/blood/OMinus, +/obj/item/weapon/reagent_containers/blood/random, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/xenoblood, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"cA" = ( +/obj/structure/table/optable, +/obj/item/weapon/surgical_drapes, +/obj/item/weapon/storage/firstaid/regular, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"cB" = ( +/obj/structure/table, +/obj/item/weapon/wrench, +/obj/item/weapon/crowbar, +/obj/item/clothing/suit/apron, +/obj/item/weapon/shovel/spade, +/obj/item/weapon/cultivator, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/weapon/wirecutters, +/obj/item/device/plant_analyzer, +/obj/item/weapon/reagent_containers/glass/bucket, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"cC" = ( +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"cD" = ( +/obj/machinery/smartfridge{ + use_power = 0 + }, +/turf/closed/wall/mineral/titanium, +/area/shuttle/abandoned) +"cE" = ( +/obj/structure/sink{ + icon_state = "sink"; + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"cF" = ( +/obj/effect/decal/cleanable/egg_smudge, +/obj/effect/decal/cleanable/flour, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"cG" = ( +/obj/structure/table, +/obj/item/weapon/kitchen/rollingpin, +/obj/item/weapon/kitchen/knife, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"cH" = ( +/obj/structure/fluff/empty_sleeper/nanotrasen, +/obj/item/weapon/circuitboard/machine/chem_dispenser, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"cI" = ( +/obj/structure/chair/office/light, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"cJ" = ( +/obj/structure/fluff/empty_sleeper/nanotrasen, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"cK" = ( +/obj/machinery/vending/wallmed{ + name = "Emergency NanoMed"; + pixel_x = -28; + pixel_y = 0; + req_access_txt = "0"; + use_power = 0 + }, +/obj/machinery/iv_drip{ + density = 0; + pixel_x = -8 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"cL" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/ash, +/obj/effect/decal/cleanable/xenoblood, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"cM" = ( +/obj/effect/decal/cleanable/xenoblood, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/ash{ + desc = "A pile of remains that look vaguely humanoid. The skull is abnormally elongated, and there are burns through some of the other bones."; + icon = 'icons/effects/blood.dmi'; + icon_state = "remainsxeno"; + name = "remains" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"cN" = ( +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/obj/effect/decal/cleanable/xenoblood, +/obj/effect/decal/cleanable/xenoblood/xgibs/limb, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/abandoned) +"cO" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_r"; + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/shuttle/abandoned) +"cP" = ( +/obj/machinery/hydroponics/constructable, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"cQ" = ( +/obj/machinery/hydroponics/constructable, +/obj/item/seeds/glowshroom, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"cR" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder{ + pixel_y = 6 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"cS" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/weapon/storage/box/monkeycubes{ + pixel_y = 4 + }, +/obj/item/weapon/storage/fancy/egg_box{ + pixel_y = 5 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"cT" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/glass/beaker{ + pixel_x = 5 + }, +/obj/item/weapon/reagent_containers/food/condiment/enzyme{ + layer = 5 + }, +/obj/item/weapon/reagent_containers/dropper, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"cU" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/food/condiment/flour, +/obj/item/weapon/reagent_containers/food/condiment/flour, +/obj/item/weapon/reagent_containers/food/condiment/flour, +/obj/item/weapon/reagent_containers/food/condiment/flour, +/obj/item/weapon/reagent_containers/food/condiment/milk, +/obj/item/weapon/reagent_containers/food/condiment/milk, +/obj/item/weapon/reagent_containers/food/condiment/milk, +/obj/item/weapon/reagent_containers/food/condiment/soymilk, +/obj/item/weapon/reagent_containers/food/condiment/soymilk, +/obj/item/weapon/reagent_containers/food/condiment/sugar, +/obj/item/weapon/reagent_containers/food/condiment/sugar, +/obj/item/weapon/reagent_containers/food/condiment/sugar, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"cV" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/glass/beaker{ + pixel_x = 5; + pixel_y = 2 + }, +/obj/item/weapon/reagent_containers/glass/beaker, +/obj/item/weapon/reagent_containers/dropper, +/obj/item/weapon/reagent_containers/syringe, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"cW" = ( +/obj/structure/table, +/obj/item/weapon/folder/white, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"cX" = ( +/obj/structure/table, +/obj/item/weapon/hand_labeler, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"cY" = ( +/obj/structure/table, +/obj/item/weapon/defibrillator, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"cZ" = ( +/obj/structure/table, +/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{ + pixel_x = 6; + pixel_y = 0 + }, +/obj/item/weapon/reagent_containers/glass/bottle/charcoal{ + pixel_x = -3 + }, +/obj/item/weapon/reagent_containers/syringe, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"da" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/latex, +/obj/item/clothing/mask/surgical, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/clothing/suit/apron/surgical, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) +"db" = ( +/obj/structure/table, +/obj/item/weapon/storage/backpack/dufflebag/med{ + contents = newlist(/obj/item/weapon/scalpel,/obj/item/weapon/hemostat,/obj/item/weapon/retractor,/obj/item/weapon/cautery,/obj/item/weapon/circular_saw,/obj/item/weapon/surgicaldrill,/obj/item/weapon/razor); + desc = "A large dufflebag for holding extra medical supplies - this one seems to be designed for holding surgical tools."; + name = "surgical dufflebag"; + pixel_y = 4 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/abandoned) + +(1,1,1) = {" +aa +aa +aa +aa +aa +ac +ac +ah +ac +ac +aa +aa +aa +aa +aa +"} +(2,1,1) = {" +aa +ak +aC +aC +aC +ae +bv +ax +bU +ae +aC +aC +aC +cO +aa +"} +(3,1,1) = {" +ac +ac +aD +aD +ac +ac +ac +bE +ac +ac +ac +aD +aD +ac +ac +"} +(4,1,1) = {" +ac +ac +ac +ac +ac +bm +bw +ax +bV +cd +ac +ac +ac +ac +ac +"} +(5,1,1) = {" +ac +an +ac +aS +ac +aL +aL +aL +aL +aL +ac +cq +cB +cP +ac +"} +(6,1,1) = {" +ae +ao +aG +aT +bd +bn +bx +bF +bz +aL +cj +cr +ax +cP +ae +"} +(7,1,1) = {" +ac +ac +ac +ac +ac +bo +by +bG +bW +aL +ck +ax +aL +cQ +ae +"} +(8,1,1) = {" +ae +aq +aH +aU +bf +bp +by +bH +bW +aL +ac +cs +cC +cP +ac +"} +(9,1,1) = {" +ac +ar +aI +aV +bg +aL +by +bI +bW +aL +ac +ac +cD +ac +ac +"} +(10,1,1) = {" +ac +ac +ac +ac +ac +aL +bz +bJ +bx +aL +cl +aL +cE +cR +ac +"} +(11,1,1) = {" +ac +as +aJ +aW +ac +bq +aL +ax +aL +aL +ac +ct +ax +cS +ae +"} +(12,1,1) = {" +ae +at +aK +aX +ac +ac +ac +bK +ac +ac +ac +cu +cF +cT +ae +"} +(13,1,1) = {" +ae +at +ax +aL +aM +ax +aL +aL +aL +aL +ac +cv +cG +cU +ac +"} +(14,1,1) = {" +ac +au +aL +aY +ac +aL +bx +bL +bx +aL +ac +ac +ac +ac +ac +"} +(15,1,1) = {" +ac +av +aM +ac +ac +aL +bz +bM +bz +ce +ac +cw +bx +cV +ac +"} +(16,1,1) = {" +ag +aw +aL +ax +bj +aL +bp +bN +aL +aL +cm +aL +cI +cW +ae +"} +(17,1,1) = {" +ah +ax +aN +aL +bj +ax +aL +bO +ax +aL +ac +bx +bx +cX +ac +"} +(18,1,1) = {" +ac +ac +aO +ac +ac +aL +bx +bP +bx +aL +ac +ac +ac +ac +ac +"} +(19,1,1) = {" +ac +ay +aP +ba +ac +aL +bx +bQ +bz +aL +cn +cy +cK +cY +ac +"} +(20,1,1) = {" +ae +az +aQ +aQ +bl +aL +aL +ax +aL +aL +co +ax +cL +cZ +ae +"} +(21,1,1) = {" +ae +aA +aQ +bb +ac +ac +ac +bR +ac +ac +ac +cz +cM +da +ae +"} +(22,1,1) = {" +ac +aB +aR +bc +ac +br +bC +aL +bZ +bx +ac +cA +cN +db +ac +"} +(23,1,1) = {" +ac +ac +ae +ac +ac +bs +ax +aL +bp +cg +ac +ac +ae +ac +ac +"} +(24,1,1) = {" +aa +aa +aa +aa +ae +bt +aL +bS +ca +ch +ae +aa +aa +aa +aa +"} +(25,1,1) = {" +aa +aa +aa +aa +ae +bu +bD +bT +cb +ci +ae +aa +aa +aa +aa +"} +(26,1,1) = {" +aa +aa +aa +aa +ac +ae +ae +ae +ae +ae +ac +aa +aa +aa +aa +"} +(27,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} diff --git a/_maps/templates/medium_shuttle1.dmm b/_maps/templates/medium_shuttle1.dmm new file mode 100644 index 0000000..7a75899 --- /dev/null +++ b/_maps/templates/medium_shuttle1.dmm @@ -0,0 +1,570 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/open/space, +/area/space) +"b" = ( +/obj/structure/shuttle/engine/propulsion/burst/left{ + tag = "icon-burst_l (EAST)"; + icon_state = "burst_l"; + dir = 4 + }, +/turf/open/space, +/area/ruin/powered{ + name = "Shuttle" + }) +"c" = ( +/obj/structure/shuttle/engine/heater{ + tag = "icon-heater (WEST)"; + icon_state = "heater"; + dir = 8 + }, +/obj/structure/window/reinforced{ + tag = "icon-rwindow (EAST)"; + icon_state = "rwindow"; + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/ruin/powered{ + name = "Shuttle" + }) +"d" = ( +/turf/closed/wall/mineral/plastitanium, +/area/ruin/powered{ + name = "Shuttle" + }) +"e" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 1; + icon_state = "diagonalWall3" + }, +/area/ruin/powered{ + name = "Shuttle" + }) +"f" = ( +/turf/open/floor/plating, +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" + }, +/turf/closed/wall/mineral/titanium, +/area/ruin/powered{ + name = "Shuttle" + }) +"g" = ( +/turf/closed/wall/mineral/titanium, +/area/ruin/powered{ + name = "Shuttle" + }) +"h" = ( +/obj/machinery/door/airlock/glass_external, +/turf/open/floor/plating, +/area/ruin/powered{ + name = "Shuttle" + }) +"i" = ( +/turf/closed/wall/mineral/titanium/overspace, +/area/ruin/powered{ + name = "Shuttle" + }) +"j" = ( +/turf/open/floor/plasteel/black, +/area/ruin/powered{ + name = "Shuttle" + }) +"k" = ( +/obj/machinery/door/airlock/glass, +/turf/open/floor/plasteel/black, +/area/ruin/powered{ + name = "Shuttle" + }) +"l" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/plasteel/darkblue, +/area/ruin/powered{ + name = "Shuttle" + }) +"m" = ( +/obj/machinery/sleeper, +/turf/open/floor/plasteel/darkblue, +/area/ruin/powered{ + name = "Shuttle" + }) +"n" = ( +/turf/open/floor/plasteel, +/area/ruin/powered{ + name = "Shuttle" + }) +"o" = ( +/obj/machinery/door/airlock/glass, +/turf/open/floor/plasteel, +/area/ruin/powered{ + name = "Shuttle" + }) +"p" = ( +/turf/open/floor/plasteel/darkblue, +/area/ruin/powered{ + name = "Shuttle" + }) +"q" = ( +/turf/open/floor/plasteel/darkyellow, +/area/ruin/powered{ + name = "Shuttle" + }) +"r" = ( +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/darkyellow, +/area/ruin/powered{ + name = "Shuttle" + }) +"s" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/ruin/powered{ + name = "Shuttle" + }) +"t" = ( +/obj/machinery/power/smes/magical, +/turf/open/floor/plasteel, +/area/ruin/powered{ + name = "Shuttle" + }) +"u" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/ruin/powered{ + name = "Shuttle" + }) +"v" = ( +/obj/structure/chair/comfy{ + tag = "icon-comfychair (EAST)"; + icon_state = "comfychair"; + dir = 4 + }, +/turf/open/floor/plasteel/darkyellow, +/area/ruin/powered{ + name = "Shuttle" + }) +"w" = ( +/obj/structure/shuttle/engine/propulsion/burst/right{ + tag = "icon-burst_r (EAST)"; + icon_state = "burst_r"; + dir = 4 + }, +/turf/open/space, +/area/ruin/powered{ + name = "Shuttle" + }) +"x" = ( +/turf/open/floor/plating, +/turf/closed/wall/mineral/plastitanium{ + dir = 1; + icon_state = "diagonalWall3" + }, +/turf/closed/wall/mineral/titanium, +/area/ruin/powered{ + name = "Shuttle" + }) +"y" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" + }, +/area/ruin/powered{ + name = "Shuttle" + }) + +(1,1,1) = {" +a +a +a +a +a +i +h +g +h +i +a +a +a +a +a +"} +(2,1,1) = {" +a +a +a +a +a +g +n +n +n +g +a +a +a +a +a +"} +(3,1,1) = {" +a +a +a +i +g +g +o +g +o +g +g +i +a +a +a +"} +(4,1,1) = {" +b +b +b +g +j +g +n +n +n +g +j +g +w +w +w +"} +(5,1,1) = {" +c +c +c +g +j +k +n +t +n +k +j +g +c +c +c +"} +(6,1,1) = {" +d +d +f +g +k +g +g +g +g +g +k +g +x +d +d +"} +(7,1,1) = {" +d +d +g +j +j +g +j +j +j +g +j +j +g +d +d +"} +(8,1,1) = {" +d +d +g +j +j +k +j +j +j +k +j +j +g +d +y +"} +(9,1,1) = {" +e +d +g +j +j +g +j +j +j +g +j +j +g +y +a +"} +(10,1,1) = {" +a +e +g +g +g +g +k +g +k +g +g +g +g +a +a +"} +(11,1,1) = {" +a +a +h +j +k +j +j +u +j +j +k +j +h +a +a +"} +(12,1,1) = {" +a +a +h +j +g +j +j +u +j +j +g +j +h +a +a +"} +(13,1,1) = {" +a +a +i +g +g +g +k +g +k +g +g +g +i +a +a +"} +(14,1,1) = {" +a +a +a +a +g +l +p +u +j +j +g +a +a +a +a +"} +(15,1,1) = {" +a +a +a +a +g +m +p +u +j +j +g +a +a +a +a +"} +(16,1,1) = {" +a +a +a +a +g +g +k +g +k +g +g +a +a +a +a +"} +(17,1,1) = {" +a +a +a +a +g +j +j +g +j +j +g +a +a +a +a +"} +(18,1,1) = {" +a +a +a +a +g +j +j +g +j +j +g +a +a +a +a +"} +(19,1,1) = {" +a +a +a +a +i +g +k +g +k +g +i +a +a +a +a +"} +(20,1,1) = {" +a +a +a +a +a +g +q +q +q +g +a +a +a +a +a +"} +(21,1,1) = {" +a +a +a +a +a +g +q +v +q +g +a +a +a +a +a +"} +(22,1,1) = {" +a +a +a +a +a +g +r +r +r +g +a +a +a +a +a +"} +(23,1,1) = {" +a +a +a +a +a +i +s +s +s +i +a +a +a +a +a +"} diff --git a/_maps/templates/medium_shuttle2.dmm b/_maps/templates/medium_shuttle2.dmm new file mode 100644 index 0000000..0b81941 --- /dev/null +++ b/_maps/templates/medium_shuttle2.dmm @@ -0,0 +1,625 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/open/space, +/area/space) +"b" = ( +/obj/structure/shuttle/engine/propulsion/burst/left{ + tag = "icon-burst_l (EAST)"; + icon_state = "burst_l"; + dir = 4 + }, +/turf/open/space, +/area/ruin/powered{ + name = "Shuttle" + }) +"c" = ( +/obj/structure/shuttle/engine/heater{ + tag = "icon-heater (WEST)"; + icon_state = "heater"; + dir = 8 + }, +/obj/structure/window/reinforced{ + tag = "icon-rwindow (EAST)"; + icon_state = "rwindow"; + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/ruin/powered{ + name = "Shuttle" + }) +"d" = ( +/turf/closed/wall/mineral/plastitanium, +/area/ruin/powered{ + name = "Shuttle" + }) +"e" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 1; + icon_state = "diagonalWall3" + }, +/area/ruin/powered{ + name = "Shuttle" + }) +"f" = ( +/obj/structure/shuttle/engine/propulsion/burst/right{ + tag = "icon-burst_r (EAST)"; + icon_state = "burst_r"; + dir = 4 + }, +/turf/open/space, +/area/ruin/powered{ + name = "Shuttle" + }) +"g" = ( +/turf/open/floor/plating, +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" + }, +/turf/closed/wall/mineral/titanium, +/area/ruin/powered{ + name = "Shuttle" + }) +"h" = ( +/turf/closed/wall/mineral/titanium, +/area/ruin/powered{ + name = "Shuttle" + }) +"i" = ( +/turf/closed/wall/mineral/titanium/overspace, +/area/ruin/powered{ + name = "Shuttle" + }) +"j" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 8; + icon_state = "diagonalWall3" + }, +/area/ruin/powered{ + name = "Shuttle" + }) +"k" = ( +/turf/open/floor/plasteel/black, +/area/ruin/powered{ + name = "Shuttle" + }) +"l" = ( +/obj/machinery/door/airlock/glass_external, +/turf/open/floor/plating, +/area/ruin/powered{ + name = "Shuttle" + }) +"m" = ( +/turf/open/floor/plasteel, +/area/ruin/powered{ + name = "Shuttle" + }) +"n" = ( +/obj/machinery/door/airlock/glass, +/turf/open/floor/plasteel/black, +/area/ruin/powered{ + name = "Shuttle" + }) +"o" = ( +/turf/open/floor/plasteel/darkblue, +/area/ruin/powered{ + name = "Shuttle" + }) +"p" = ( +/turf/open/floor/plasteel/darkyellow, +/area/ruin/powered{ + name = "Shuttle" + }) +"q" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + icon_state = "diagonalWall3" + }, +/area/ruin/powered{ + name = "Shuttle" + }) +"r" = ( +/obj/structure/table, +/turf/open/floor/plasteel, +/area/ruin/powered{ + name = "Shuttle" + }) +"s" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid/regular, +/turf/open/floor/plasteel/darkblue, +/area/ruin/powered{ + name = "Shuttle" + }) +"t" = ( +/obj/machinery/sleeper{ + tag = "icon-sleeper (NORTH)"; + icon_state = "sleeper"; + dir = 1 + }, +/turf/open/floor/plasteel/darkblue, +/area/ruin/powered{ + name = "Shuttle" + }) +"u" = ( +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/darkyellow, +/area/ruin/powered{ + name = "Shuttle" + }) +"v" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/ruin/powered{ + name = "Shuttle" + }) +"w" = ( +/obj/machinery/power/smes/magical, +/turf/open/floor/plating, +/area/ruin/powered{ + name = "Shuttle" + }) +"x" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating, +/area/ruin/powered{ + name = "Shuttle" + }) +"y" = ( +/obj/structure/chair/comfy{ + tag = "icon-comfychair (EAST)"; + icon_state = "comfychair"; + dir = 4 + }, +/turf/open/floor/plasteel/darkyellow, +/area/ruin/powered{ + name = "Shuttle" + }) +"z" = ( +/turf/open/floor/plating, +/turf/closed/wall/mineral/plastitanium{ + dir = 1; + icon_state = "diagonalWall3" + }, +/turf/closed/wall/mineral/titanium, +/area/ruin/powered{ + name = "Shuttle" + }) +"A" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" + }, +/area/ruin/powered{ + name = "Shuttle" + }) +"B" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ruin/powered{ + name = "Shuttle" + }) + +(1,1,1) = {" +a +a +a +b +f +a +a +a +b +f +a +a +a +"} +(2,1,1) = {" +a +a +a +c +c +a +a +a +c +c +a +a +a +"} +(3,1,1) = {" +a +a +a +d +d +a +a +a +d +d +a +a +a +"} +(4,1,1) = {" +b +f +j +d +d +q +a +j +d +d +q +b +f +"} +(5,1,1) = {" +c +c +d +d +g +h +l +h +z +d +d +c +c +"} +(6,1,1) = {" +d +d +g +h +h +r +m +r +h +h +z +d +d +"} +(7,1,1) = {" +d +d +h +m +m +m +m +m +m +m +h +d +d +"} +(8,1,1) = {" +d +g +h +n +h +B +w +B +h +n +h +z +d +"} +(9,1,1) = {" +d +h +k +k +h +h +B +h +h +k +k +h +d +"} +(10,1,1) = {" +e +h +k +k +h +h +h +h +h +k +k +h +A +"} +(11,1,1) = {" +a +i +h +n +h +h +h +h +h +n +h +i +a +"} +(12,1,1) = {" +a +a +h +k +k +n +k +n +k +k +h +a +a +"} +(13,1,1) = {" +a +a +h +k +k +h +h +h +k +k +h +a +a +"} +(14,1,1) = {" +a +a +h +h +n +h +h +h +n +h +h +a +a +"} +(15,1,1) = {" +a +a +l +k +k +h +h +h +k +k +l +a +a +"} +(16,1,1) = {" +a +a +i +h +n +h +h +h +n +h +i +a +a +"} +(17,1,1) = {" +a +a +a +h +k +k +k +k +k +h +a +a +a +"} +(18,1,1) = {" +a +a +a +h +n +h +h +h +n +h +a +a +a +"} +(19,1,1) = {" +a +a +a +h +o +s +x +k +k +h +a +a +a +"} +(20,1,1) = {" +a +a +a +h +o +t +x +k +k +h +a +a +a +"} +(21,1,1) = {" +a +a +a +h +n +h +h +h +n +h +a +a +a +"} +(22,1,1) = {" +a +a +a +h +k +k +x +k +k +h +a +a +a +"} +(23,1,1) = {" +a +a +a +h +k +k +x +k +k +h +a +a +a +"} +(24,1,1) = {" +a +a +a +h +n +h +h +h +n +h +a +a +a +"} +(25,1,1) = {" +a +a +a +h +p +p +y +p +p +h +a +a +a +"} +(26,1,1) = {" +a +a +a +h +p +u +u +u +p +h +a +a +a +"} +(27,1,1) = {" +a +a +a +i +h +v +v +v +h +i +a +a +a +"} +(28,1,1) = {" +a +a +a +a +i +a +a +a +i +a +a +a +a +"} diff --git a/_maps/templates/medium_shuttle3.dmm b/_maps/templates/medium_shuttle3.dmm new file mode 100644 index 0000000..406677a --- /dev/null +++ b/_maps/templates/medium_shuttle3.dmm @@ -0,0 +1,772 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/open/space, +/area/space) +"b" = ( +/obj/structure/shuttle/engine/propulsion{ + tag = "icon-propulsion (NORTH)"; + icon_state = "propulsion"; + dir = 1 + }, +/turf/open/space, +/area/ruin/powered{ + name = "Shuttle" + }) +"c" = ( +/turf/closed/wall/mineral/plastitanium, +/area/ruin/powered{ + name = "Shuttle" + }) +"d" = ( +/obj/structure/shuttle/engine/heater{ + tag = "icon-heater (NORTH)"; + icon_state = "heater"; + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/ruin/powered{ + name = "Shuttle" + }) +"e" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 8; + icon_state = "diagonalWall3" + }, +/area/ruin/powered{ + name = "Shuttle" + }) +"f" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 1; + icon_state = "diagonalWall3" + }, +/area/ruin/powered{ + name = "Shuttle" + }) +"g" = ( +/turf/open/floor/plating, +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" + }, +/turf/closed/wall/mineral/titanium, +/area/ruin/powered{ + name = "Shuttle" + }) +"h" = ( +/turf/closed/wall/mineral/titanium, +/area/ruin/powered{ + name = "Shuttle" + }) +"i" = ( +/turf/open/floor/plating, +/turf/closed/wall/mineral/plastitanium{ + icon_state = "diagonalWall3" + }, +/turf/closed/wall/mineral/titanium, +/area/ruin/powered{ + name = "Shuttle" + }) +"j" = ( +/obj/machinery/door/airlock/glass_external, +/turf/open/floor/plating, +/area/ruin/powered{ + name = "Shuttle" + }) +"k" = ( +/obj/machinery/power/smes/magical, +/turf/open/floor/plasteel, +/area/ruin/powered{ + name = "Shuttle" + }) +"l" = ( +/turf/open/floor/plasteel, +/area/ruin/powered{ + name = "Shuttle" + }) +"m" = ( +/turf/open/floor/plating, +/area/ruin/powered{ + name = "Shuttle" + }) +"n" = ( +/obj/structure/shuttle/engine/propulsion{ + tag = "icon-propulsion (EAST)"; + icon_state = "propulsion"; + dir = 4 + }, +/turf/open/space, +/area/ruin/powered{ + name = "Shuttle" + }) +"o" = ( +/obj/structure/shuttle/engine/heater{ + tag = "icon-heater (WEST)"; + icon_state = "heater"; + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/ruin/powered{ + name = "Shuttle" + }) +"p" = ( +/obj/machinery/door/airlock/glass, +/turf/open/floor/plasteel, +/area/ruin/powered{ + name = "Shuttle" + }) +"q" = ( +/obj/structure/shuttle/engine/heater{ + tag = "icon-heater (EAST)"; + icon_state = "heater"; + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/ruin/powered{ + name = "Shuttle" + }) +"r" = ( +/obj/structure/shuttle/engine/propulsion{ + tag = "icon-propulsion (WEST)"; + icon_state = "propulsion"; + dir = 8 + }, +/turf/open/space, +/area/ruin/powered{ + name = "Shuttle" + }) +"s" = ( +/turf/open/floor/plating, +/turf/closed/wall/mineral/plastitanium{ + dir = 1; + icon_state = "diagonalWall3" + }, +/turf/closed/wall/mineral/titanium, +/area/ruin/powered{ + name = "Shuttle" + }) +"t" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/ruin/powered{ + name = "Shuttle" + }) +"u" = ( +/turf/open/floor/plating, +/turf/closed/wall/mineral/plastitanium{ + dir = 8; + icon_state = "diagonalWall3" + }, +/turf/closed/wall/mineral/titanium, +/area/ruin/powered{ + name = "Shuttle" + }) +"v" = ( +/obj/structure/table, +/turf/open/floor/plasteel/darkyellow, +/area/ruin/powered{ + name = "Shuttle" + }) +"w" = ( +/turf/open/floor/plasteel/darkyellow, +/area/ruin/powered{ + name = "Shuttle" + }) +"x" = ( +/obj/structure/chair/comfy{ + tag = "icon-comfychair (WEST)"; + icon_state = "comfychair"; + dir = 8 + }, +/turf/open/floor/plasteel/darkyellow, +/area/ruin/powered{ + name = "Shuttle" + }) +"y" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + icon_state = "diagonalWall3" + }, +/area/ruin/powered{ + name = "Shuttle" + }) +"z" = ( +/obj/machinery/sleeper, +/turf/open/floor/plasteel/darkblue, +/area/ruin/powered{ + name = "Shuttle" + }) +"A" = ( +/turf/open/floor/plasteel/black, +/area/ruin/powered{ + name = "Shuttle" + }) +"B" = ( +/turf/open/space, +/turf/closed/wall/mineral/plastitanium{ + dir = 4; + icon_state = "diagonalWall3" + }, +/area/ruin/powered{ + name = "Shuttle" + }) +"C" = ( +/turf/open/floor/plasteel/darkblue, +/area/ruin/powered{ + name = "Shuttle" + }) +"D" = ( +/obj/structure/table, +/obj/item/weapon/storage/firstaid, +/turf/open/floor/plasteel/darkblue, +/area/ruin/powered{ + name = "Shuttle" + }) +"E" = ( +/obj/structure/shuttle/engine/heater, +/turf/open/floor/plating/airless, +/area/ruin/powered{ + name = "Shuttle" + }) +"F" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/open/space, +/area/ruin/powered{ + name = "Shuttle" + }) +"G" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ruin/powered{ + name = "Shuttle" + }) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +n +a +a +a +a +n +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +a +a +a +a +a +n +c +o +a +a +a +a +o +c +n +a +a +a +a +a +a +"} +(3,1,1) = {" +a +a +a +a +a +e +o +c +c +y +a +a +e +c +c +o +y +a +a +a +a +a +"} +(4,1,1) = {" +a +a +a +a +e +c +c +c +c +c +a +a +c +c +c +c +c +y +a +a +a +a +"} +(5,1,1) = {" +a +a +a +e +g +h +h +s +c +g +j +j +s +c +g +h +h +s +y +a +a +a +"} +(6,1,1) = {" +a +a +e +c +h +k +l +G +h +G +m +m +G +h +G +l +k +h +c +y +a +a +"} +(7,1,1) = {" +a +b +d +c +h +l +l +l +l +p +l +l +p +l +l +l +l +h +c +E +F +a +"} +(8,1,1) = {" +a +c +c +c +i +G +l +l +l +G +t +t +G +l +l +l +G +u +c +c +c +a +"} +(9,1,1) = {" +b +d +c +c +c +h +l +l +G +z +C +C +D +G +l +l +h +c +c +c +E +F +"} +(10,1,1) = {" +a +a +f +c +g +G +p +G +v +G +C +C +G +A +G +p +G +s +c +B +a +a +"} +(11,1,1) = {" +a +a +a +a +j +m +l +t +w +w +l +l +A +A +t +l +m +j +a +a +a +a +"} +(12,1,1) = {" +a +a +a +a +j +m +l +t +x +w +l +l +A +A +t +l +m +j +a +a +a +a +"} +(13,1,1) = {" +a +a +e +c +i +G +p +G +w +G +A +A +G +A +G +p +G +u +c +y +a +a +"} +(14,1,1) = {" +b +d +c +c +c +h +l +l +G +A +A +A +A +G +l +l +h +c +c +c +E +F +"} +(15,1,1) = {" +a +c +c +c +g +G +l +l +l +G +t +t +G +l +l +l +G +s +c +c +c +a +"} +(16,1,1) = {" +a +b +d +c +h +l +l +l +l +p +l +l +p +l +l +l +l +h +c +E +F +a +"} +(17,1,1) = {" +a +a +f +c +h +k +l +G +h +G +m +m +G +h +G +l +k +h +c +B +a +a +"} +(18,1,1) = {" +a +a +a +f +i +h +h +u +c +i +j +j +u +c +i +h +h +u +B +a +a +a +"} +(19,1,1) = {" +a +a +a +a +f +c +c +c +c +c +a +a +c +c +c +c +c +B +a +a +a +a +"} +(20,1,1) = {" +a +a +a +a +a +f +q +c +c +B +a +a +f +c +c +q +B +a +a +a +a +a +"} +(21,1,1) = {" +a +a +a +a +a +a +r +c +q +a +a +a +a +q +c +r +a +a +a +a +a +a +"} +(22,1,1) = {" +a +a +a +a +a +a +a +a +r +a +a +a +a +r +a +a +a +a +a +a +a +a +"} diff --git a/_maps/templates/medium_shuttle4.dmm b/_maps/templates/medium_shuttle4.dmm new file mode 100644 index 0000000..3f0edd1 --- /dev/null +++ b/_maps/templates/medium_shuttle4.dmm @@ -0,0 +1,480 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/open/space, +/area/space) +"b" = ( +/turf/open/space, +/turf/closed/indestructible/oldshuttle/corner{ + tag = "icon-corner (WEST)"; + icon_state = "corner"; + dir = 8 + }, +/area/ruin/powered) +"c" = ( +/turf/closed/indestructible/oldshuttle, +/area/ruin/powered) +"d" = ( +/obj/machinery/door/airlock/glass, +/turf/open/floor/oldshuttle{ + baseturf = /turf/open/space; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15" + }, +/area/ruin/powered) +"e" = ( +/turf/open/space, +/turf/closed/indestructible/oldshuttle/corner, +/area/ruin/powered) +"f" = ( +/turf/open/floor/oldshuttle{ + baseturf = /turf/open/space; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15" + }, +/turf/closed/indestructible/oldshuttle/corner{ + tag = "icon-corner (NORTH)"; + icon_state = "corner"; + dir = 1 + }, +/area/ruin/powered) +"g" = ( +/turf/open/floor/oldshuttle{ + baseturf = /turf/open/space; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15" + }, +/area/ruin/powered) +"h" = ( +/turf/open/floor/oldshuttle{ + baseturf = /turf/open/space; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15" + }, +/turf/closed/indestructible/oldshuttle/corner{ + tag = "icon-corner (EAST)"; + icon_state = "corner"; + dir = 4 + }, +/area/ruin/powered) +"i" = ( +/obj/structure/closet{ + icon_state = "oldcloset" + }, +/turf/open/floor/oldshuttle{ + baseturf = /turf/open/space; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15" + }, +/area/ruin/powered) +"j" = ( +/obj/structure/shuttle/engine/propulsion/burst{ + tag = "icon-propulsion (NORTH)"; + icon_state = "propulsion"; + dir = 1 + }, +/turf/open/space, +/area/ruin/powered) +"k" = ( +/turf/closed/indestructible/oldshuttle{ + tag = "icon-orange"; + icon_state = "orange" + }, +/area/ruin/powered) +"l" = ( +/obj/structure/chair/old{ + tag = "icon-chairold (NORTH)"; + icon_state = "chairold"; + dir = 1 + }, +/turf/open/floor/oldshuttle{ + baseturf = /turf/open/space; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15" + }, +/area/ruin/powered) +"m" = ( +/turf/open/floor/oldshuttle{ + baseturf = /turf/open/space; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15" + }, +/turf/closed/indestructible/oldshuttle/corner{ + tag = "icon-corner (WEST)"; + icon_state = "corner"; + dir = 8 + }, +/area/ruin/powered) +"n" = ( +/turf/open/floor/oldshuttle{ + baseturf = /turf/open/space; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15" + }, +/turf/closed/indestructible/oldshuttle/corner, +/area/ruin/powered) +"o" = ( +/turf/open/space, +/turf/closed/indestructible/oldshuttle/corner{ + tag = "icon-corner (NORTH)"; + icon_state = "corner"; + dir = 1 + }, +/area/ruin/powered) +"p" = ( +/turf/open/space, +/turf/closed/indestructible/oldshuttle/corner{ + tag = "icon-corner (EAST)"; + icon_state = "corner"; + dir = 4 + }, +/area/ruin/powered) +"q" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/turf/closed/indestructible/oldshuttle/corner, +/area/ruin/powered) +"r" = ( +/obj/machinery/power/generator, +/turf/open/floor/oldshuttle{ + baseturf = /turf/open/space; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15" + }, +/area/ruin/powered) +"s" = ( +/obj/machinery/power/smes, +/turf/open/floor/oldshuttle{ + baseturf = /turf/open/space; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15" + }, +/area/ruin/powered) +"t" = ( +/obj/structure/shuttle/engine/propulsion/burst/left, +/turf/open/space, +/area/ruin/powered) +"u" = ( +/obj/structure/shuttle/engine/propulsion/burst/right, +/turf/open/space, +/area/ruin/powered) +"v" = ( +/obj/structure/shuttle/engine/propulsion/burst/right, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/powered) +"w" = ( +/obj/structure/shuttle/engine/propulsion/burst, +/turf/open/space, +/area/ruin/powered) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +a +b +c +k +t +a +"} +(2,1,1) = {" +a +a +a +a +a +a +a +b +c +c +f +g +k +k +w +"} +(3,1,1) = {" +a +a +a +a +a +b +d +f +g +g +g +g +k +k +w +"} +(4,1,1) = {" +a +a +a +a +j +k +g +g +g +g +m +d +k +u +a +"} +(5,1,1) = {" +a +a +a +a +b +c +g +g +g +m +o +a +a +a +a +"} +(6,1,1) = {" +a +a +b +c +c +c +c +c +c +c +c +c +c +p +a +"} +(7,1,1) = {" +a +b +f +i +c +i +i +i +i +i +i +c +s +c +p +"} +(8,1,1) = {" +b +f +i +i +c +l +l +l +l +l +l +c +g +n +c +"} +(9,1,1) = {" +c +g +g +g +g +l +l +l +l +l +m +c +g +g +c +"} +(10,1,1) = {" +d +g +g +g +g +g +g +g +g +g +c +r +g +g +d +"} +(11,1,1) = {" +c +g +g +g +g +l +l +l +l +l +n +c +g +g +c +"} +(12,1,1) = {" +e +h +i +i +c +l +l +l +l +l +l +c +g +m +c +"} +(13,1,1) = {" +a +e +h +i +c +i +i +i +i +i +i +c +s +c +o +"} +(14,1,1) = {" +a +a +e +c +c +c +c +c +c +c +c +c +c +o +a +"} +(15,1,1) = {" +a +a +a +a +e +c +g +g +g +n +p +a +a +a +a +"} +(16,1,1) = {" +a +a +a +a +j +k +g +g +g +g +n +d +k +t +a +"} +(17,1,1) = {" +a +a +a +a +a +e +d +h +g +g +g +g +k +k +w +"} +(18,1,1) = {" +a +a +a +a +a +a +a +e +c +c +h +g +k +k +w +"} +(19,1,1) = {" +a +a +a +a +a +a +a +a +a +a +q +c +k +v +a +"} diff --git a/_maps/templates/shelter_1.dmm b/_maps/templates/shelter_1.dmm new file mode 100644 index 0000000..0c21c13 --- /dev/null +++ b/_maps/templates/shelter_1.dmm @@ -0,0 +1,110 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/closed/wall/shuttle/survival/pod, +/area/survivalpod) +"b" = ( +/obj/structure/sign/mining/survival{ + tag = "icon-survival (NORTH)"; + icon_state = "survival"; + dir = 1 + }, +/turf/closed/wall/shuttle/survival/pod, +/area/survivalpod) +"c" = ( +/obj/structure/fans, +/turf/open/floor/pod, +/area/survivalpod) +"d" = ( +/obj/machinery/smartfridge/survival_pod, +/turf/open/floor/pod, +/area/survivalpod) +"e" = ( +/obj/item/device/gps/computer, +/turf/open/floor/pod, +/area/survivalpod) +"f" = ( +/obj/structure/sign/mining/survival{ + dir = 8 + }, +/turf/closed/wall/shuttle/survival/pod, +/area/survivalpod) +"g" = ( +/obj/machinery/sleeper/survival_pod, +/turf/open/floor/pod, +/area/survivalpod) +"h" = ( +/turf/open/floor/pod, +/area/survivalpod) +"i" = ( +/obj/structure/bed/pod, +/obj/item/weapon/bedsheet/black, +/turf/open/floor/pod, +/area/survivalpod) +"j" = ( +/obj/structure/sign/mining/survival{ + tag = "icon-survival (EAST)"; + icon_state = "survival"; + dir = 4 + }, +/turf/closed/wall/shuttle/survival/pod, +/area/survivalpod) +"k" = ( +/obj/structure/table/survival_pod, +/turf/open/floor/pod, +/area/survivalpod) +"l" = ( +/obj/structure/tubes, +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/turf/open/floor/pod, +/area/survivalpod) +"m" = ( +/obj/structure/sign/mining/survival, +/turf/closed/wall/shuttle/survival/pod, +/area/survivalpod) +"n" = ( +/obj/structure/fans/tiny, +/obj/machinery/door/airlock/survival_pod, +/turf/open/floor/pod, +/area/survivalpod) +"o" = ( +/obj/structure/sign/mining, +/turf/closed/wall/shuttle/survival/pod, +/area/survivalpod) + +(1,1,1) = {" +a +a +f +a +a +"} +(2,1,1) = {" +a +c +g +k +m +"} +(3,1,1) = {" +b +d +h +h +n +"} +(4,1,1) = {" +a +e +i +l +o +"} +(5,1,1) = {" +a +a +j +a +a +"} diff --git a/_maps/templates/small_asteroid_1.dmm b/_maps/templates/small_asteroid_1.dmm new file mode 100644 index 0000000..82708d6 --- /dev/null +++ b/_maps/templates/small_asteroid_1.dmm @@ -0,0 +1,81 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/open/space, +/area/space) +"b" = ( +/turf/closed/mineral, +/area/space) +"c" = ( +/turf/closed/mineral/random/low_chance, +/area/space) + +(1,1,1) = {" +a +a +b +c +b +b +b +a +"} +(2,1,1) = {" +a +b +b +c +c +c +c +a +"} +(3,1,1) = {" +b +b +c +c +c +c +b +b +"} +(4,1,1) = {" +b +b +c +c +c +c +c +b +"} +(5,1,1) = {" +a +c +c +c +c +c +b +a +"} +(6,1,1) = {" +a +a +c +b +c +b +b +a +"} +(7,1,1) = {" +a +a +a +b +b +b +a +a +"} diff --git a/_maps/templates/small_shuttle_1.dmm b/_maps/templates/small_shuttle_1.dmm new file mode 100644 index 0000000..8aeacad --- /dev/null +++ b/_maps/templates/small_shuttle_1.dmm @@ -0,0 +1,191 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/open/space, +/area/space) +"b" = ( +/turf/closed/wall/mineral/titanium/overspace, +/area/space) +"c" = ( +/obj/structure/grille, +/obj/structure/window/shuttle, +/turf/open/floor/plating/airless, +/area/space) +"d" = ( +/turf/open/space, +/turf/closed/wall/shuttle{ + tag = "icon-swall_f10"; + icon_state = "swall_f10" + }, +/area/space) +"e" = ( +/turf/closed/wall/mineral/titanium, +/area/space) +"f" = ( +/turf/open/floor/mineral/titanium/blue, +/area/space) +"g" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/blue, +/area/space) +"h" = ( +/turf/closed/wall/shuttle{ + tag = "icon-swall13"; + icon_state = "swall13" + }, +/area/space) +"i" = ( +/turf/closed/wall/shuttle{ + tag = "icon-swall8"; + icon_state = "swall8" + }, +/area/space) +"j" = ( +/obj/machinery/door/unpowered/shuttle, +/turf/open/floor/mineral/titanium/blue, +/area/space) +"k" = ( +/turf/closed/wall/shuttle{ + tag = "icon-swall4"; + icon_state = "swall4" + }, +/area/space) +"l" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/blue, +/area/space) +"m" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/blue, +/area/space) +"n" = ( +/obj/structure/shuttle/engine/heater, +/turf/open/floor/plating/airless, +/area/space) +"o" = ( +/turf/open/space, +/turf/closed/wall/shuttle{ + tag = "icon-swall_f5"; + icon_state = "swall_f5" + }, +/area/space) +"p" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_l" + }, +/turf/open/floor/plating/airless, +/area/space) +"q" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/open/floor/plating/airless, +/area/space) +"r" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "propulsion_r" + }, +/turf/open/floor/plating/airless, +/area/space) +"s" = ( +/turf/open/space, +/turf/closed/wall/shuttle{ + tag = "icon-swall_f9"; + icon_state = "swall_f9" + }, +/area/space) + +(1,1,1) = {" +a +a +a +b +e +e +j +j +e +e +b +"} +(2,1,1) = {" +b +e +e +e +l +l +f +f +f +n +p +"} +(3,1,1) = {" +c +f +f +e +f +f +f +f +f +n +q +"} +(4,1,1) = {" +c +g +f +j +f +f +f +f +f +n +q +"} +(5,1,1) = {" +c +f +f +e +f +f +f +f +f +n +q +"} +(6,1,1) = {" +b +e +e +e +m +m +f +f +f +n +r +"} +(7,1,1) = {" +a +a +a +b +e +e +j +j +e +e +b +"} diff --git a/_maps/tgstation2.dm b/_maps/tgstation2.dm new file mode 100644 index 0000000..9f027f8 --- /dev/null +++ b/_maps/tgstation2.dm @@ -0,0 +1,29 @@ +#if !defined(MAP_FILE) + + #define TITLESCREEN "title" //Add an image in misc/fullscreen.dmi, and set this define to the icon_state, to set a custom titlescreen for your map + + #define MINETYPE "lavaland" + + #include "map_files\TgStation\tgstation.2.1.3.dmm" + #include "map_files\generic\z2.dmm" + #include "map_files\generic\z3.dmm" + #include "map_files\generic\z4.dmm" + #include "map_files\generic\lavaland.dmm" + #include "map_files\generic\z6.dmm" + #include "map_files\generic\z7.dmm" + #include "map_files\generic\z8.dmm" + #include "map_files\generic\z9.dmm" + #include "map_files\generic\z10.dmm" + #include "map_files\generic\z11.dmm" + + #define MAP_PATH "map_files/TgStation" + #define MAP_FILE "tgstation.2.1.3.dmm" + #define MAP_NAME "Box Station" + + #define MAP_TRANSITION_CONFIG DEFAULT_MAP_TRANSITION_CONFIG + +#elif !defined(MAP_OVERRIDE) + + #warn a map has already been included, ignoring /tg/station 2. + +#endif diff --git a/bot/LICENCE-bot_folder.txt b/bot/LICENCE-bot_folder.txt new file mode 100644 index 0000000..22dfb25 --- /dev/null +++ b/bot/LICENCE-bot_folder.txt @@ -0,0 +1,5 @@ +The author or authors of this code dedicate any and all copyright interest in +this code to the public domain. We make this dedication for the benefit of the +public at large and to the detriment of our heirs and successors. We intend +this dedication to be an overt act of relinquishment in perpetuity of all +present and future rights to this code under copyright law. diff --git a/bot/config.py b/bot/config.py new file mode 100644 index 0000000..8888753 --- /dev/null +++ b/bot/config.py @@ -0,0 +1,14 @@ +# Configuration for the minibot.py bot starts here +server = "irc.rizon.net" +port = 6667 + +channels = ["#asdfgbus", "#botbus"] +defaultchannel = "#asdfgbus" + +nick = "minibot-testing-ss13" +altnick = "minibot-testing-ss13_" +name = "minibot" +ident = "minibot" +realname = "minibot" +password = "CHANGETHIS" +# Configuration ends here diff --git a/bot/minibot.py b/bot/minibot.py new file mode 100644 index 0000000..c244b7e --- /dev/null +++ b/bot/minibot.py @@ -0,0 +1,119 @@ +#!/usr/bin/env python3 +# This bot was made by tkdrg. +# Ask #coderbus@irc.rizon.net if this breaks. +# See LICENSE-bot_folder.txt for the license of the files in this folder. +from config import * +import collections +import time +import pickle +import socket +import sys +import threading +import logging + +logging.basicConfig(level=logging.INFO) +global irc + + +def print_err(msg): + logging.error(msg) + + +def setup_irc_socket(): + s = socket.socket() + s.settimeout(240) + + while 1: + try: + s.connect((server, port)) + except socket.error: + print_err("Unable to connect to server {0}:{1}, attempting to reconnect in 20 seconds.".format(server, port)) + time.sleep(20) + else: + print_err("Connection established to server {0}:{1}.".format(server, port)) + break + + s.send(bytes("NICK {0}\r\n".format(nick), "UTF-8")) + s.send(bytes("USER {0} {1} {2} :{3}\r\n".format(ident, server, name, realname), "UTF-8")) + return s + + +def setup_nudge_socket(): + s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + s.bind(("", 45678)) # localhost:45678 + s.listen(5) + return s + + +def nudge_handler(): + global irc + nudge = setup_nudge_socket() + message_queue = collections.deque() + while 1: + if len(message_queue): + message = message_queue.popleft() + else: + try: + s, ip = nudge.accept() + except: + print_err("Nudge socket lost, attempting to reopen.") + nudge = setup_nudge_socket() + continue + rawdata = s.recv(1024) + s.close() + data = pickle.loads(rawdata) + logging.info(data) + if data["ip"][0] == "#": + message = "{0} :AUTOMATIC ANNOUNCEMENT : {1}\r\n".format(data["ip"], str(" ".join(data["data"]))) + else: + message = "{0} :AUTOMATIC ANNOUNCEMENT : {1} | {2}\r\n".format(defaultchannel, data["ip"], str(" ".join(data["data"]))) + try: + irc.send(bytes("PRIVMSG {0}".format(message), "UTF-8")) + except: + print_err("Nudge received without IRC socket, appending to queue.") + print_err("Message: {0}".format(message)) + message_queue.append(message) + + +def irc_handler(): + global irc + while 1: + try: + buf = irc.recv(1024).decode("UTF-8").split("\n") + for i in buf: + logging.info(i) + if i[0:4] == "PING": + irc.send(bytes("PONG {0}\r\n".format(i[5:]), "UTF-8")) + else: + l = i.split(" ") + if len(l) < 2: + continue + elif l[1] == "001": + print_err("connected and registered, identifing and joining channels") + irc.send(bytes("PRIVMSG NickServ :IDENTIFY {0}\r\n".format(password), "UTF-8")) + time.sleep(1) + for channel in channels: + irc.send(bytes("JOIN {0}\r\n".format(channel), "UTF-8")) + elif l[1] == "477": + print_err("Error: Nickname was not registered when joining {0}. Reauthing and retrying...".format(l[3])) + irc.send(bytes("PRIVMSG NickServ :IDENTIFY {0}\r\n".format(password), "UTF-8")) + time.sleep(5) + irc.send(bytes("JOIN {0}\r\n".format(l[3]), "UTF-8")) + elif l[1] == "433": + print_err("Error: Nickname already in use. Attempting to use alt nickname if available, sleeping 60s otherwise...") + if(altnick): + irc.send(bytes("NICK {0}\r\n".format(altnick), "UTF-8")) + else: + time.sleep(60) + irc = setup_irc_socket() + except: + print_err("Lost connection to IRC server.") + irc = setup_irc_socket() + + +if __name__ == "__main__": + irc = setup_irc_socket() + t = threading.Thread(target=nudge_handler) + t.daemon = True + t.start() + irc_handler() diff --git a/bot/nudge.py b/bot/nudge.py new file mode 100644 index 0000000..7f195ad --- /dev/null +++ b/bot/nudge.py @@ -0,0 +1,24 @@ +#!/usr/bin/env python3 +import sys +import pickle +import socket + + +def pack(): + ip = sys.argv[1] + try: + data = sys.argv[2:] + except: + data = "NO DATA SPECIFIED" + + nudge(pickle.dumps({"ip": ip, "data": data})) + + +def nudge(data): + s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + s.connect(("localhost", 45678)) + s.send(data) + s.close() + +if __name__ == "__main__" and len(sys.argv) > 1: + pack() diff --git a/code/__DATASTRUCTURES/heap.dm b/code/__DATASTRUCTURES/heap.dm new file mode 100644 index 0000000..7246eff --- /dev/null +++ b/code/__DATASTRUCTURES/heap.dm @@ -0,0 +1,75 @@ + +////////////////////// +//Heap object +////////////////////// + +/Heap + var/list/L + var/cmp + +/Heap/New(compare) + L = new() + cmp = compare + +/Heap/proc/IsEmpty() + return !L.len + +//Insert and place at its position a new node in the heap +/Heap/proc/Insert(atom/A) + + L.Add(A) + Swim(L.len) + +//removes and returns the first element of the heap +//(i.e the max or the min dependant on the comparison function) +/Heap/proc/Pop() + if(!L.len) + return 0 + . = L[1] + + L[1] = L[L.len] + L.Cut(L.len) + + Sink(1) + +//Get a node up to its right position in the heap +/Heap/proc/Swim(var/index) + var/parent = round(index * 0.5) + + while(parent > 0 && (call(cmp)(L[index],L[parent]) > 0)) + L.Swap(index,parent) + index = parent + parent = round(index * 0.5) + +//Get a node down to its right position in the heap +/Heap/proc/Sink(var/index) + var/g_child = GetGreaterChild(index) + + while(g_child > 0 && (call(cmp)(L[index],L[g_child]) < 0)) + L.Swap(index,g_child) + index = g_child + g_child = GetGreaterChild(index) + +//Returns the greater (relative to the comparison proc) of a node children +//or 0 if there's no child +/Heap/proc/GetGreaterChild(var/index) + if(index * 2 > L.len) + return 0 + + if(index * 2 + 1 > L.len) + return index * 2 + + if(call(cmp)(L[index * 2],L[index * 2 + 1]) < 0) + return index * 2 + 1 + else + return index * 2 + +//Replaces a given node so it verify the heap condition +/Heap/proc/ReSort(atom/A) + var/index = L.Find(A) + + Swim(index) + Sink(index) + +/Heap/proc/List() + . = L.Copy() diff --git a/code/__DATASTRUCTURES/linked_lists.dm b/code/__DATASTRUCTURES/linked_lists.dm new file mode 100644 index 0000000..eccc3c4 --- /dev/null +++ b/code/__DATASTRUCTURES/linked_lists.dm @@ -0,0 +1,191 @@ + +//Ok so it's technically a double linked list, bite me. + +/datum/linked_list + var/datum/linked_node/head + var/datum/linked_node/tail + var/node_amt = 0 + + +/datum/linked_node + var/value = null + var/datum/linked_list/linked_list = null + var/datum/linked_node/next_node = null + var/datum/linked_node/previous_node = null + + +/datum/linked_list/proc/IsEmpty() + . = (node_amt <= 0) + + +//Add a linked_node (or value, creating a linked_node) at position +//the added node BECOMES the position-th element, +//eg: add("Test",5), the 5th node is now "Test", the previous 5th moves up to become the 6th +/datum/linked_list/proc/Add(node, position) + var/datum/linked_node/adding + if(istype(node, /datum/linked_node)) + adding = node + else + adding = new() + adding.value = node + + if(!adding.linked_list || (adding.linked_list && (adding.linked_list != src))) + node_amt++ + + adding.linked_list = src + + if(position && position < node_amt) + //Replacing head + if(position == 1) + if(head) + head.previous_node = adding + adding.next_node = head + head = adding + + //Replacing any middle node + else + var/location = 0 + var/datum/linked_node/at + while((location != position) && (location <= node_amt)) + if(at) + if(at.next_node) + at = at.next_node + else + break + else + at = head + location++ + + //Push at up and assume it's place as the position-th element + if(at && at.previous_node) + at.previous_node.next_node = adding + adding.previous_node = at.previous_node + at.previous_node = adding + adding.next_node = at + return + + //Replacing tail + if(tail) + tail.next_node = adding + adding.previous_node = tail + if(!tail.previous_node) + head = tail + tail = adding + + + +//Remove a linked_node or the linked_node of a value +//If you specify a value the FIRST ONE is removed +/datum/linked_list/proc/Remove(node) + var/datum/linked_node/removing + if(istype(node,/datum/linked_node)) + removing = node + else + //optimise removing head and tail, no point looping for them, especially the tail + if(removing == head) + removing = head + else if(removing == tail) + removing = tail + else + var/location = 1 + var/current_value = null + var/datum/linked_node/at = null + while((current_value != node) && (location <= node_amt)) + if(at) + if(at.next_node) + at = at.next_node + else + at = head + location++ + if(at) + current_value = at.value + if(current_value == node) + removing = at + break + + //Adjust pointers of where removing -was- in the chain. + if(removing) + if(removing.previous_node) + if(removing == tail) + tail = removing.previous_node + if(removing.next_node) + if(removing == head) + head = removing.next_node + removing.next_node.previous_node = removing.previous_node + removing.previous_node.next_node = removing.next_node + else + removing.previous_node.next_node = null + else + if(removing.next_node) + if(removing == head) + head = removing.next_node + removing.next_node.previous_node = null + + //if this is still true at this point, there's no more nodes to replace them with + if(removing == head) + head = null + if(removing == tail) + tail = null + + removing.next_node = null + removing.previous_node = null + if(removing.linked_list == src) + node_amt-- + removing.linked_list = null + + return removing + return 0 + + +//Removes and deletes a node or value +/datum/linked_list/proc/RemoveDelete(node) + var/datum/linked_node/dead = Remove(node) + if(dead) + qdel(dead) + return 1 + return 0 + + +//Empty the linked_list, deleting all nodes +/datum/linked_list/proc/Empty() + var/datum/linked_node/n = head + while(n) + var/next = n.next_node + Remove(n) + qdel(n) + n = next + node_amt = 0 + + +//Some debugging tools +/datum/linked_list/proc/CheckNodeLinks() + var/datum/linked_node/n = head + while(n) + . = "|[n.value]|" + if(n.previous_node) + . = "[n.previous_node.value]<-" + . + if(n.next_node) + . += "->[n.next_node.value]" + n = n.next_node + . += "
" + + +/datum/linked_list/proc/DrawNodeLinks() + . = "|<-" + var/datum/linked_node/n = head + while(n) + if(n.previous_node) + . += "<-" + . += "[n.value]" + if(n.next_node) + . += "->" + n = n.next_node + . += "->|" + + +/datum/linked_list/proc/ToList() + . = list() + var/datum/linked_node/n = head + while(n) + . += n + n = n.next_node \ No newline at end of file diff --git a/code/__DATASTRUCTURES/priority_queue.dm b/code/__DATASTRUCTURES/priority_queue.dm new file mode 100644 index 0000000..8689a19 --- /dev/null +++ b/code/__DATASTRUCTURES/priority_queue.dm @@ -0,0 +1,83 @@ + +////////////////////// +//PriorityQueue object +////////////////////// + +//an ordered list, using the cmp proc to weight the list elements +/PriorityQueue + var/list/L //the actual queue + var/cmp //the weight function used to order the queue + +/PriorityQueue/New(compare) + L = new() + cmp = compare + +/PriorityQueue/proc/IsEmpty() + return !L.len + +//return the index the element should be in the priority queue using dichotomic search +/PriorityQueue/proc/FindElementIndex(atom/A) + var/i = 1 + var/j = L.len + var/mid + + while(i < j) + mid = round((i+j)/2) + + if(call(cmp)(L[mid],A) < 0) + i = mid + 1 + else + j = mid + + if(i == 1 || i == L.len) //edge cases + return (call(cmp)(L[i],A) > 0) ? i : i+1 + else + return i + + +//add an element in the list, +//immediatly ordering it to its position using dichotomic search +/PriorityQueue/proc/Enqueue(atom/A) + if(!L.len) + L.Add(A) + return + + L.Insert(FindElementIndex(A),A) + +//removes and returns the first element in the queue +/PriorityQueue/proc/Dequeue() + if(!L.len) + return 0 + . = L[1] + + Remove(.) + +//removes an element +/PriorityQueue/proc/Remove(atom/A) + return L.Remove(A) + +//returns a copy of the elements list +/PriorityQueue/proc/List() + . = L.Copy() + +//return the position of an element or 0 if not found +/PriorityQueue/proc/Seek(atom/A) + . = L.Find(A) + +//return the element at the i_th position +/PriorityQueue/proc/Get(i) + if(i > L.len || i < 1) + return 0 + return L[i] + +//replace the passed element at it's right position using the cmp proc +/PriorityQueue/proc/ReSort(atom/A) + var/i = Seek(A) + if(i == 0) + return + while(i < L.len && call(cmp)(L[i],L[i+1]) > 0) + L.Swap(i,i+1) + i++ + while(i > 1 && call(cmp)(L[i],L[i-1]) <= 0) //last inserted element being first in case of ties (optimization) + L.Swap(i,i-1) + i-- \ No newline at end of file diff --git a/code/__DATASTRUCTURES/stacks.dm b/code/__DATASTRUCTURES/stacks.dm new file mode 100644 index 0000000..b310a3b --- /dev/null +++ b/code/__DATASTRUCTURES/stacks.dm @@ -0,0 +1,56 @@ +/datum/stack + var/list/stack = list() + var/max_elements = 0 + +/datum/stack/New(list/elements,max) + ..() + if(elements) + stack = elements.Copy() + if(max) + max_elements = max + +/datum/stack/proc/Pop() + if(is_empty()) + return null + . = stack[stack.len] + stack.Cut(stack.len,0) + +/datum/stack/proc/Push(element) + if(max_elements && (stack.len+1 > max_elements)) + return null + stack += element + +/datum/stack/proc/Top() + if(is_empty()) + return null + . = stack[stack.len] + +/datum/stack/proc/is_empty() + . = stack.len ? 0 : 1 + +//Rotate entire stack left with the leftmost looping around to the right +/datum/stack/proc/RotateLeft() + if(is_empty()) + return 0 + . = stack[1] + stack.Cut(1,2) + Push(.) + +//Rotate entire stack to the right with the rightmost looping around to the left +/datum/stack/proc/RotateRight() + if(is_empty()) + return 0 + . = stack[stack.len] + stack.Cut(stack.len,0) + stack.Insert(1,.) + + +/datum/stack/proc/Copy() + var/datum/stack/S=new() + S.stack = stack.Copy() + S.max_elements = max_elements + return S + + +/datum/stack/proc/Clear() + stack.Cut() diff --git a/code/__DEFINES/MC.dm b/code/__DEFINES/MC.dm new file mode 100644 index 0000000..b003079 --- /dev/null +++ b/code/__DEFINES/MC.dm @@ -0,0 +1,49 @@ +#define MC_TICK_CHECK ( world.tick_usage > CURRENT_TICKLIMIT ? pause() : 0 ) +// Used to smooth out costs to try and avoid oscillation. +#define MC_AVERAGE_FAST(average, current) (0.7 * (average) + 0.3 * (current)) +#define MC_AVERAGE(average, current) (0.8 * (average) + 0.2 * (current)) +#define MC_AVERAGE_SLOW(average, current) (0.9 * (average) + 0.1 * (current)) +#define NEW_SS_GLOBAL(varname) if(varname != src){if(istype(varname)){Recover();qdel(varname);}varname = src;} + +#define START_PROCESSING(Processor, Datum) if (!Datum.isprocessing) {Datum.isprocessing = 1;Processor.processing += Datum} +#define STOP_PROCESSING(Processor, Datum) Datum.isprocessing = 0;Processor.processing -= Datum + +//SubSystem flags (Please design any new flags so that the default is off, to make adding flags to subsystems easier) + +//subsystem should fire during pre-game lobby. +#define SS_FIRE_IN_LOBBY 1 + +//subsystem does not initialize. +#define SS_NO_INIT 2 + +//subsystem does not fire. +// (like can_fire = 0, but keeps it from getting added to the processing subsystems list) +// (Requires a MC restart to change) +#define SS_NO_FIRE 4 + +//subsystem only runs on spare cpu (after all non-background subsystems have ran that tick) +// SS_BACKGROUND has its own priority bracket +#define SS_BACKGROUND 8 + +//subsystem does not tick check, and should not run unless there is enough time (or its running behind (unless background)) +#define SS_NO_TICK_CHECK 16 + +//Treat wait as a tick count, not DS, run every wait ticks. +// (also forces it to run first in the tick, above even SS_NO_TICK_CHECK subsystems) +// (implies SS_FIRE_IN_LOBBY because of how it works) +// (overrides SS_BACKGROUND) +// This is designed for basically anything that works as a mini-mc (like SStimer) +#define SS_TICKER 32 + +//keep the subsystem's timing on point by firing early if it fired late last fire because of lag +// ie: if a 20ds subsystem fires say 5 ds late due to lag or what not, its next fire would be in 15ds, not 20ds. +#define SS_KEEP_TIMING 64 + +//Calculate its next fire after its fired. +// (IE: if a 5ds wait SS takes 2ds to run, its next fire should be 5ds away, not 3ds like it normally would be) +// This flag overrides SS_KEEP_TIMING +#define SS_POST_FIRE_TIMING 128 + + +//Timing subsystem +#define GLOBAL_PROC "some_magic_bullshit" diff --git a/code/__DEFINES/_readme.dm b/code/__DEFINES/_readme.dm new file mode 100644 index 0000000..42ad522 --- /dev/null +++ b/code/__DEFINES/_readme.dm @@ -0,0 +1,14 @@ +/* + This folder is full of #define statements. They are similar to constants, + but must come before any code that references them, and they do not take up + memory the way constants do. + + The values in this folder are NOT options. They are not for hosts to play with. + Some of the values are arbitrary and only need to be different from similar constants; + for example, the genetic mutation numbers in genetics.dm mean nothing, but MUST be distinct. + + It is wise not to touch them unless you understand what they do, where they're used, + and most importantly, + how to undo your changes if you screw it up. + - Sayu +*/ \ No newline at end of file diff --git a/code/__DEFINES/admin.dm b/code/__DEFINES/admin.dm new file mode 100644 index 0000000..dd02cbb --- /dev/null +++ b/code/__DEFINES/admin.dm @@ -0,0 +1,56 @@ +//A set of constants used to determine which type of mute an admin wishes to apply: +//Please read and understand the muting/automuting stuff before changing these. MUTE_IC_AUTO etc = (MUTE_IC << 1) +//Therefore there needs to be a gap between the flags for the automute flags +#define MUTE_IC 1 +#define MUTE_OOC 2 +#define MUTE_PRAY 4 +#define MUTE_ADMINHELP 8 +#define MUTE_DEADCHAT 16 +#define MUTE_ALL 31 + +//Some constants for DB_Ban +#define BANTYPE_PERMA 1 +#define BANTYPE_TEMP 2 +#define BANTYPE_JOB_PERMA 3 +#define BANTYPE_JOB_TEMP 4 +#define BANTYPE_ANY_FULLBAN 5 //used to locate stuff to unban. + +#define BANTYPE_ADMIN_PERMA 7 +#define BANTYPE_ADMIN_TEMP 8 +#define BANTYPE_ANY_JOB 9 //used to remove jobbans + +//Please don't edit these values without speaking to Errorage first ~Carn +//Admin Permissions +#define R_BUILDMODE 1 +#define R_ADMIN 2 +#define R_BAN 4 +#define R_FUN 8 +#define R_SERVER 16 +#define R_DEBUG 32 +#define R_POSSESS 64 +#define R_PERMISSIONS 128 +#define R_STEALTH 256 +#define R_REJUVINATE 512 +#define R_VAREDIT 1024 +#define R_SOUNDS 2048 +#define R_SPAWN 4096 + +#define R_MAXPERMISSION 4096 //This holds the maximum value for a permission. It is used in iteration, so keep it updated. + +#define ADMIN_QUE(user) "(?)" +#define ADMIN_FLW(user) "(FLW)" +#define ADMIN_PP(user) "(PP)" +#define ADMIN_VV(atom) "(VV)" +#define ADMIN_SM(user) "(SM)" +#define ADMIN_TP(user) "(TP)" +#define ADMIN_BSA(user) "(BSA)" +#define ADMIN_CENTCOM_REPLY(user) "(RPLY)" +#define ADMIN_SYNDICATE_REPLY(user) "(RPLY)" +#define ADMIN_SC(user) "(SC)" +#define ADMIN_LOOKUP(user) "[key_name_admin(user)][ADMIN_QUE(user)]" +#define ADMIN_LOOKUPFLW(user) "[key_name_admin(user)][ADMIN_QUE(user)] [ADMIN_FLW(user)]" +#define ADMIN_SET_SD_CODE "(SETCODE)" +#define ADMIN_FULLMONTY(user) "[key_name_admin(user)] [ADMIN_QUE(user)] [ADMIN_PP(user)] [ADMIN_VV(user)] [ADMIN_SM(user)] [ADMIN_FLW(user)] [ADMIN_TP(user)]" +#define ADMIN_JMP(src) "(JMP)" +#define COORD(src) "[src ? "([src.x],[src.y],[src.z])" : "nonexistent location"]" +#define ADMIN_COORDJMP(src) "[src ? "[COORD(src)] [ADMIN_JMP(src)]" : "nonexistent location"]" diff --git a/code/__DEFINES/atmospherics.dm b/code/__DEFINES/atmospherics.dm new file mode 100644 index 0000000..69d51ed --- /dev/null +++ b/code/__DEFINES/atmospherics.dm @@ -0,0 +1,165 @@ +#define FIRE_DAMAGE_MODIFIER 0.0215 //Higher values result in more external fire damage to the skin (default 0.0215) +#define AIR_DAMAGE_MODIFIER 2.025 //More means less damage from hot air scalding lungs, less = more damage. (default 2.025) + +#define MOLES_CELLSTANDARD (ONE_ATMOSPHERE*CELL_VOLUME/(T20C*R_IDEAL_GAS_EQUATION)) //moles in a 2.5 m^3 cell at 101.325 Pa and 20 degC +#define M_CELL_WITH_RATIO (MOLES_CELLSTANDARD * 0.005) +#define O2STANDARD 0.21 +#define N2STANDARD 0.79 +#define MOLES_O2STANDARD (MOLES_CELLSTANDARD*O2STANDARD) // O2 standard value (21%) +#define MOLES_N2STANDARD (MOLES_CELLSTANDARD*N2STANDARD) // N2 standard value (79%) + +//indices of values in gas lists. used by listmos. +#define MOLES 1 +#define ARCHIVE 2 +#define GAS_META 3 +#define META_GAS_SPECIFIC_HEAT 1 +#define META_GAS_NAME 2 +#define META_GAS_OVERLAY 4 +#define META_GAS_MOLES_VISIBLE 3 + +//stuff you should probably leave well alone! +//ATMOS +#define CELL_VOLUME 2500 //liters in a cell +#define BREATH_VOLUME 0.5 //liters in a normal breath +#define BREATH_PERCENTAGE (BREATH_VOLUME/CELL_VOLUME) //Amount of air to take a from a tile +#define HUMAN_NEEDED_OXYGEN (MOLES_CELLSTANDARD*BREATH_PERCENTAGE*0.16) //Amount of air needed before pass out/suffocation commences +#define NORMPIPERATE 30 //pipe-insulation rate divisor +#define HEATPIPERATE 8 //heat-exch pipe insulation +#define FLOWFRAC 0.99 //fraction of gas transfered per process +#define TANK_LEAK_PRESSURE (30.*ONE_ATMOSPHERE) //Tank starts leaking +#define TANK_RUPTURE_PRESSURE (35.*ONE_ATMOSPHERE) //Tank spills all contents into atmosphere +#define TANK_FRAGMENT_PRESSURE (40.*ONE_ATMOSPHERE) //Boom 3x3 base explosion +#define TANK_FRAGMENT_SCALE (6.*ONE_ATMOSPHERE) //+1 for each SCALE kPa aboe threshold +#define MINIMUM_AIR_RATIO_TO_SUSPEND 0.1 //Ratio of air that must move to/from a tile to reset group processing +#define MINIMUM_AIR_RATIO_TO_MOVE 0.001 //Minimum ratio of air that must move to/from a tile +#define MINIMUM_AIR_TO_SUSPEND (MOLES_CELLSTANDARD*MINIMUM_AIR_RATIO_TO_SUSPEND) //Minimum amount of air that has to move before a group processing can be suspended +#define MINIMUM_MOLES_DELTA_TO_MOVE (MOLES_CELLSTANDARD*MINIMUM_AIR_RATIO_TO_MOVE) //Either this must be active +#define EXCITED_GROUP_BREAKDOWN_CYCLES 4 +#define EXCITED_GROUP_DISMANTLE_CYCLES 16 +#define MINIMUM_TEMPERATURE_TO_MOVE (T20C+100) //or this (or both, obviously) +#define MINIMUM_TEMPERATURE_RATIO_TO_SUSPEND 0.012 +#define MINIMUM_TEMPERATURE_DELTA_TO_SUSPEND 4 //Minimum temperature difference before group processing is suspended +#define MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER 0.5 //Minimum temperature difference before the gas temperatures are just set to be equal +#define MINIMUM_TEMPERATURE_FOR_SUPERCONDUCTION T20C+10 +#define MINIMUM_TEMPERATURE_START_SUPERCONDUCTION T20C+200 +#define FLOOR_HEAT_TRANSFER_COEFFICIENT 0.4 +#define WALL_HEAT_TRANSFER_COEFFICIENT 0.0 +#define DOOR_HEAT_TRANSFER_COEFFICIENT 0.0 +#define SPACE_HEAT_TRANSFER_COEFFICIENT 0.2 //a hack to partly simulate radiative heat +#define OPEN_HEAT_TRANSFER_COEFFICIENT 0.4 +#define WINDOW_HEAT_TRANSFER_COEFFICIENT 0.1 //a hack for now + //Must be between 0 and 1. Values closer to 1 equalize temperature faster + //Should not exceed 0.4 else strange heat flow occur +#define FIRE_MINIMUM_TEMPERATURE_TO_SPREAD 150+T0C +#define FIRE_MINIMUM_TEMPERATURE_TO_EXIST 100+T0C +#define FIRE_SPREAD_RADIOSITY_SCALE 0.85 +#define FIRE_CARBON_ENERGY_RELEASED 500000 //Amount of heat released per mole of burnt carbon into the tile +#define FIRE_PLASMA_ENERGY_RELEASED 3000000 //Amount of heat released per mole of burnt plasma into the tile +#define FIRE_GROWTH_RATE 40000 //For small fires +#define CARBON_LIFEFORM_FIRE_RESISTANCE 200+T0C //Resistance to fire damage +#define CARBON_LIFEFORM_FIRE_DAMAGE 4 //Fire damage + //Plasma fire properties +#define OXYGEN_BURN_RATE_BASE 1.4 +#define PLASMA_BURN_RATE_DELTA 9 +#define PLASMA_MINIMUM_BURN_TEMPERATURE 100+T0C +#define PLASMA_UPPER_TEMPERATURE 1370+T0C +#define PLASMA_MINIMUM_OXYGEN_NEEDED 2 +#define PLASMA_MINIMUM_OXYGEN_PLASMA_RATIO 30 +#define PLASMA_OXYGEN_FULLBURN 10 +#define MIN_PLASMA_DAMAGE 1 +#define MAX_PLASMA_DAMAGE 10 +#define MOLES_PLASMA_VISIBLE 0.5 //Moles in a standard cell after which plasma is visible + //Plasma fusion properties +#define PLASMA_BINDING_ENERGY 3000000 +#define MAX_CARBON_EFFICENCY 9 +#define PLASMA_FUSED_COEFFICENT 0.08 +#define CARBON_CATALYST_COEFFICENT 0.01 +#define FUSION_PURITY_THRESHOLD 0.9 +// Pressure limits. +#define HAZARD_HIGH_PRESSURE 550 //This determins at what pressure the ultra-high pressure red icon is displayed. (This one is set as a constant) +#define WARNING_HIGH_PRESSURE 325 //This determins when the orange pressure icon is displayed (it is 0.7 * HAZARD_HIGH_PRESSURE) +#define WARNING_LOW_PRESSURE 50 //This is when the gray low pressure icon is displayed. (it is 2.5 * HAZARD_LOW_PRESSURE) +#define HAZARD_LOW_PRESSURE 20 //This is when the black ultra-low pressure icon is displayed. (This one is set as a constant) + +#define TEMPERATURE_DAMAGE_COEFFICIENT 1.5 //This is used in handle_temperature_damage() for humans, and in reagents that affect body temperature. Temperature damage is multiplied by this amount. +#define BODYTEMP_AUTORECOVERY_DIVISOR 12 //This is the divisor which handles how much of the temperature difference between the current body temperature and 310.15K (optimal temperature) humans auto-regenerate each tick. The higher the number, the slower the recovery. This is applied each tick, so long as the mob is alive. +#define BODYTEMP_AUTORECOVERY_MINIMUM 10 //Minimum amount of kelvin moved toward 310.15K per tick. So long as abs(310.15 - bodytemp) is more than 50. +#define BODYTEMP_COLD_DIVISOR 6 //Similar to the BODYTEMP_AUTORECOVERY_DIVISOR, but this is the divisor which is applied at the stage that follows autorecovery. This is the divisor which comes into play when the human's loc temperature is lower than their body temperature. Make it lower to lose bodytemp faster. +#define BODYTEMP_HEAT_DIVISOR 6 //Similar to the BODYTEMP_AUTORECOVERY_DIVISOR, but this is the divisor which is applied at the stage that follows autorecovery. This is the divisor which comes into play when the human's loc temperature is higher than their body temperature. Make it lower to gain bodytemp faster. +#define BODYTEMP_COOLING_MAX 30 //The maximum number of degrees that your body can cool in 1 tick, when in a cold area. +#define BODYTEMP_HEATING_MAX 30 //The maximum number of degrees that your body can heat up in 1 tick, when in a hot area. + +#define BODYTEMP_HEAT_DAMAGE_LIMIT 360.15 // The limit the human body can take before it starts taking damage from heat. +#define BODYTEMP_COLD_DAMAGE_LIMIT 260.15 // The limit the human body can take before it starts taking damage from coldness. + +#define SPACE_HELM_MIN_TEMP_PROTECT 2.0 //what min_cold_protection_temperature is set to for space-helmet quality headwear. MUST NOT BE 0. +#define SPACE_HELM_MAX_TEMP_PROTECT 1500 //Thermal insulation works both ways /Malkevin +#define SPACE_SUIT_MIN_TEMP_PROTECT 2.0 //what min_cold_protection_temperature is set to for space-suit quality jumpsuits or suits. MUST NOT BE 0. +#define SPACE_SUIT_MAX_TEMP_PROTECT 1500 + +#define FIRE_SUIT_MIN_TEMP_PROTECT 60 //Cold protection for firesuits +#define FIRE_SUIT_MAX_TEMP_PROTECT 30000 //what max_heat_protection_temperature is set to for firesuit quality suits. MUST NOT BE 0. +#define FIRE_HELM_MIN_TEMP_PROTECT 60 //Cold protection for fire helmets +#define FIRE_HELM_MAX_TEMP_PROTECT 30000 //for fire helmet quality items (red and white hardhats) + +#define FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT 35000 //what max_heat_protection_temperature is set to for firesuit quality suits. MUST NOT BE 0. +#define FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT 35000 //for fire helmet quality items (red and white hardhats) + +#define HELMET_MIN_TEMP_PROTECT 160 //For normal helmets +#define HELMET_MAX_TEMP_PROTECT 600 //For normal helmets +#define ARMOR_MIN_TEMP_PROTECT 160 //For armor +#define ARMOR_MAX_TEMP_PROTECT 600 //For armor + +#define GLOVES_MIN_TEMP_PROTECT 2.0 //For some gloves (black and) +#define GLOVES_MAX_TEMP_PROTECT 1500 //For some gloves +#define SHOES_MIN_TEMP_PROTECT 2.0 //For gloves +#define SHOES_MAX_TEMP_PROTECT 1500 //For gloves + + +#define PRESSURE_DAMAGE_COEFFICIENT 4 //The amount of pressure damage someone takes is equal to (pressure / HAZARD_HIGH_PRESSURE)*PRESSURE_DAMAGE_COEFFICIENT, with the maximum of MAX_PRESSURE_DAMAGE +#define MAX_HIGH_PRESSURE_DAMAGE 4 //This used to be 20... I got this much random rage for some retarded decision by polymorph?! Polymorph now lies in a pool of blood with a katana jammed in his spleen. ~Errorage --PS: The katana did less than 20 damage to him :( +#define LOW_PRESSURE_DAMAGE 2 //The amounb of damage someone takes when in a low pressure area (The pressure threshold is so low that it doesn't make sense to do any calculations, so it just applies this flat value). + +#define COLD_SLOWDOWN_FACTOR 20 //Humans are slowed by the difference between bodytemp and BODYTEMP_COLD_DAMAGE_LIMIT divided by this + +// Atmos pipe limits +#define MAX_OUTPUT_PRESSURE 4500 // (kPa) What pressure pumps and powered equipment max out at. +#define MAX_TRANSFER_RATE 200 // (L/s) Maximum speed powered equipment can work at. + +//Atmos machinery pipenet stuff + +// used for device_type vars; used by DEVICE_TYPE_LOOP +#define UNARY 1 +#define BINARY 2 +#define TRINARY 3 +#define QUATERNARY 4 + +// this is the standard for loop used by all sorts of atmos machinery procs +#define DEVICE_TYPE_LOOP var/I in 1 to device_type + +// defines for the various machinery lists +// NODE_I, AIR_I, PARENT_I are used within DEVICE_TYPE_LOOP + +// nodes list - all atmos machinery +#define NODE1 nodes[1] +#define NODE2 nodes[2] +#define NODE3 nodes[3] +#define NODE4 nodes[4] +#define NODE_I nodes[I] + +// airs list - components only +#define AIR1 airs[1] +#define AIR2 airs[2] +#define AIR3 airs[3] +#define AIR_I airs[I] + +// parents list - components only +#define PARENT1 parents[1] +#define PARENT2 parents[2] +#define PARENT3 parents[3] +#define PARENT_I parents[I] + +//Tanks +#define TANK_MAX_RELEASE_PRESSURE (ONE_ATMOSPHERE*3) +#define TANK_MIN_RELEASE_PRESSURE 0 +#define TANK_DEFAULT_RELEASE_PRESSURE 16 diff --git a/code/__DEFINES/bots.dm b/code/__DEFINES/bots.dm new file mode 100644 index 0000000..29a5435 --- /dev/null +++ b/code/__DEFINES/bots.dm @@ -0,0 +1,26 @@ +//Bot defines, placed here so they can be read by other things! + +#define BOT_STEP_DELAY 4 //Delay between movemements +#define BOT_STEP_MAX_RETRIES 5 //Maximum times a bot will retry to step from its position + +#define DEFAULT_SCAN_RANGE 7 //default view range for finding targets. + +//Mode defines +#define BOT_IDLE 0 // idle +#define BOT_HUNT 1 // found target, hunting +#define BOT_PREP_ARREST 2 // at target, preparing to arrest +#define BOT_ARREST 3 // arresting target +#define BOT_START_PATROL 4 // start patrol +#define BOT_PATROL 5 // patrolling +#define BOT_SUMMON 6 // summoned by PDA +#define BOT_CLEANING 7 // cleaning (cleanbots) +#define BOT_REPAIRING 8 // repairing hull breaches (floorbots) +#define BOT_MOVING 9 // for clean/floor/med bots, when moving. +#define BOT_HEALING 10 // healing people (medbots) +#define BOT_RESPONDING 11 // responding to a call from the AI +#define BOT_DELIVER 12 // moving to deliver +#define BOT_GO_HOME 13 // returning to home +#define BOT_BLOCKED 14 // blocked +#define BOT_NAV 15 // computing navigation +#define BOT_WAIT_FOR_NAV 16 // waiting for nav computation +#define BOT_NO_ROUTE 17 // no destination beacon found (or no route) \ No newline at end of file diff --git a/code/__DEFINES/clockcult.dm b/code/__DEFINES/clockcult.dm new file mode 100644 index 0000000..89a39c9 --- /dev/null +++ b/code/__DEFINES/clockcult.dm @@ -0,0 +1,80 @@ +//component id defines +#define BELLIGERENT_EYE "belligerent_eye" +#define VANGUARD_COGWHEEL "vanguard_cogwheel" +#define GUVAX_CAPACITOR "guvax_capacitor" +#define REPLICANT_ALLOY "replicant_alloy" +#define HIEROPHANT_ANSIBLE "hierophant_ansible" + +var/global/clockwork_construction_value = 0 //The total value of all structures built by the clockwork cult +var/global/clockwork_caches = 0 //How many clockwork caches exist in the world (not each individual) +var/global/clockwork_daemons = 0 //How many daemons exist in the world +var/global/list/clockwork_generals_invoked = list("nezbere" = FALSE, "sevtug" = FALSE, "nzcrentr" = FALSE, "inath-neq" = FALSE) //How many generals have been recently invoked +var/global/list/all_clockwork_objects = list() //All clockwork items, structures, and effects in existence +var/global/list/all_clockwork_mobs = list() //All clockwork SERVANTS (not creatures) in existence +var/global/list/clockwork_component_cache = list(BELLIGERENT_EYE = 0, VANGUARD_COGWHEEL = 0, GUVAX_CAPACITOR = 0, REPLICANT_ALLOY = 0, HIEROPHANT_ANSIBLE = 0) //The pool of components that caches draw from +var/global/ratvar_awakens = FALSE //If Ratvar has been summoned +var/global/clockwork_gateway_activated = FALSE //if a gateway to the celestial derelict has ever been successfully activated + +//Scripture tiers; peripherals should never be used +#define SCRIPTURE_PERIPHERAL "Peripheral" +#define SCRIPTURE_DRIVER "Driver" +#define SCRIPTURE_SCRIPT "Script" +#define SCRIPTURE_APPLICATION "Application" +#define SCRIPTURE_REVENANT "Revenant" +#define SCRIPTURE_JUDGEMENT "Judgement" + +//general component/cooldown things +#define SLAB_PRODUCTION_TIME 900 //how long(deciseconds) slabs require to produce a single component; defaults to 1 minute 30 seconds + +#define SLAB_SERVANT_SLOWDOWN 300 //how much each servant above 5 slows down slab-based generation; defaults to 30 seconds per sevant + +#define SLAB_SLOWDOWN_MAXIMUM 2700 //maximum slowdown from additional servants; defaults to 4 minutes 30 seconds + +#define CACHE_PRODUCTION_TIME 900 //how long(deciseconds) caches require to produce a component; defaults to 1 minute 30 seconds + +#define LOWER_PROB_PER_COMPONENT 10 //how much each component in the cache reduces the weight of getting another of that component type + +#define MAX_COMPONENTS_BEFORE_RAND 10*LOWER_PROB_PER_COMPONENT //the number of each component, times LOWER_PROB_PER_COMPONENT, you need to have before component generation will become random + +#define CLOCKWORK_GENERAL_COOLDOWN 3000 //how long clockwork generals go on cooldown after use, defaults to 5 minutes + +//proselytizer defines +#define REPLICANT_ALLOY_UNIT 100 //how much each piece of replicant alloy gives in a clockwork proselytizer + +#define REPLICANT_STANDARD REPLICANT_ALLOY_UNIT*0.2 //how much alloy is in anything else; doesn't matter as much as the following + +#define REPLICANT_FLOOR REPLICANT_ALLOY_UNIT*0.1 //how much alloy is in a clockwork floor, determines the cost of clockwork floor production + +#define REPLICANT_WALL_MINUS_FLOOR REPLICANT_ALLOY_UNIT*0.4 //amount of alloy in a clockwork wall, determines the cost of clockwork wall production + +#define REPLICANT_GEAR REPLICANT_ALLOY_UNIT*0.3 //amount of alloy in a wall gear, minus the brass from the wall + +#define REPLICANT_WALL_TOTAL REPLICANT_WALL_MINUS_FLOOR+REPLICANT_FLOOR //how much alloy is in a clockwork wall and the floor under it + +#define RATVAR_ALLOY_CHECK "ratvar?" //when passed into can_use_alloy(), converts it into a check for if ratvar has woken/the proselytizer is debug + +//clockcult power defines +#define MIN_CLOCKCULT_POWER 50 //the minimum amount of power clockcult machines will handle gracefully + +#define CLOCKCULT_POWER_TO_ALLOY_MULTIPLIER 0.04 //conversion rate for power -> alloy + +#define CLOCKCULT_ALLOY_TO_POWER_MULTIPLIER 25 //conversion rate for alloy -> power + +#define REPLICANT_ALLOY_POWER REPLICANT_ALLOY_UNIT*CLOCKCULT_ALLOY_TO_POWER_MULTIPLIER //the amount of power you get from a single piece of replicant alloy + +//Ark defines +#define GATEWAY_SUMMON_RATE 2 //the time amount the Gateway to the Celestial Derelict gets each process tick; defaults to 2 per tick + +#define GATEWAY_REEBE_FOUND 100 //when progress is at or above this, the gateway finds reebe and begins drawing power + +#define GATEWAY_RATVAR_COMING 250 //when progress is at or above this, ratvar has entered and is coming through the gateway + +#define GATEWAY_RATVAR_ARRIVAL 300 //when progress is at or above this, game over ratvar's here everybody go home + +//Objective defines + +#define CLOCKCULT_GATEWAY "gateway" + +#define CLOCKCULT_ESCAPE "escape" + +#define CLOCKCULT_SILICONS "silicons" diff --git a/code/__DEFINES/clothing.dm b/code/__DEFINES/clothing.dm new file mode 100644 index 0000000..cfab9e1 --- /dev/null +++ b/code/__DEFINES/clothing.dm @@ -0,0 +1,153 @@ +//ITEM INVENTORY SLOT BITMASKS +#define SLOT_OCLOTHING 1 +#define SLOT_ICLOTHING 2 +#define SLOT_GLOVES 4 +#define SLOT_EYES 8 +#define SLOT_EARS 16 +#define SLOT_MASK 32 +#define SLOT_HEAD 64 +#define SLOT_FEET 128 +#define SLOT_ID 256 +#define SLOT_BELT 512 +#define SLOT_BACK 1024 +#define SLOT_POCKET 2048 //this is to allow items with a w_class of 3 or 4 to fit in pockets. +#define SLOT_DENYPOCKET 4096 //this is to deny items with a w_class of 2 or 1 to fit in pockets. +#define SLOT_NECK 8192 + +//SLOTS +#define slot_back 1 +#define slot_wear_mask 2 +#define slot_handcuffed 3 +#define slot_hands 4 //wherever you provide a slot for hands you provide slot_hands + //slot_hands as a slot will pick ANY available hand +#define slot_belt 5 +#define slot_wear_id 6 +#define slot_ears 7 +#define slot_glasses 8 +#define slot_gloves 9 +#define slot_neck 10 +#define slot_head 11 +#define slot_shoes 12 +#define slot_wear_suit 13 +#define slot_w_uniform 14 +#define slot_l_store 15 +#define slot_r_store 16 +#define slot_s_store 17 +#define slot_in_backpack 18 +#define slot_legcuffed 19 +#define slot_generic_dextrous_storage 20 + +#define slots_amt 20 // Keep this up to date! + +//I hate that this has to exist +/proc/slotdefine2slotbit(slotdefine) //Keep this up to date with the value of SLOT BITMASKS and SLOTS (the two define sections above) + . = 0 + switch(slotdefine) + if(slot_back) + . = SLOT_BACK + if(slot_wear_mask) + . = SLOT_MASK + if(slot_neck) + . = SLOT_NECK + if(slot_belt) + . = SLOT_BELT + if(slot_wear_id) + . = SLOT_ID + if(slot_ears) + . = SLOT_EARS + if(slot_glasses) + . = SLOT_EYES + if(slot_gloves) + . = SLOT_GLOVES + if(slot_head) + . = SLOT_HEAD + if(slot_shoes) + . = SLOT_FEET + if(slot_wear_suit) + . = SLOT_OCLOTHING + if(slot_w_uniform) + . = SLOT_ICLOTHING + if(slot_l_store, slot_r_store) + . = SLOT_POCKET + + +//Bit flags for the flags_inv variable, which determine when a piece of clothing hides another. IE a helmet hiding glasses. +#define HIDEGLOVES 1 +#define HIDESUITSTORAGE 2 +#define HIDEJUMPSUIT 4 //these first four are only used in exterior suits +#define HIDESHOES 8 +#define HIDEMASK 16 //these last six are only used in masks and headgear. +#define HIDEEARS 32 // (ears means headsets and such) +#define HIDEEYES 64 // Whether eyes and glasses are hidden +#define HIDEFACE 128 // Whether we appear as unknown. +#define HIDEHAIR 256 +#define HIDEFACIALHAIR 512 +#define HIDENECK 1024 + +//Cant seem to find a mob bitflags area other than the powers one + +// bitflags for clothing parts - also used for limbs +#define HEAD 1 +#define CHEST 2 +#define GROIN 4 +#define LEG_LEFT 8 +#define LEG_RIGHT 16 +#define LEGS 24 +#define FOOT_LEFT 32 +#define FOOT_RIGHT 64 +#define FEET 96 +#define ARM_LEFT 128 +#define ARM_RIGHT 256 +#define ARMS 384 +#define HAND_LEFT 512 +#define HAND_RIGHT 1024 +#define HANDS 1536 +#define NECK 2048 +#define FULL_BODY 4095 + +// bitflags for the percentual amount of protection a piece of clothing which covers the body part offers. +// Used with human/proc/get_heat_protection() and human/proc/get_cold_protection() +// The values here should add up to 1. +// Hands and feet have 2.5%, arms and legs 7.5%, each of the torso parts has 15% and the head has 30% +#define THERMAL_PROTECTION_HEAD 0.3 +#define THERMAL_PROTECTION_CHEST 0.15 +#define THERMAL_PROTECTION_GROIN 0.15 +#define THERMAL_PROTECTION_LEG_LEFT 0.075 +#define THERMAL_PROTECTION_LEG_RIGHT 0.075 +#define THERMAL_PROTECTION_FOOT_LEFT 0.025 +#define THERMAL_PROTECTION_FOOT_RIGHT 0.025 +#define THERMAL_PROTECTION_ARM_LEFT 0.075 +#define THERMAL_PROTECTION_ARM_RIGHT 0.075 +#define THERMAL_PROTECTION_HAND_LEFT 0.025 +#define THERMAL_PROTECTION_HAND_RIGHT 0.025 + +//flags for female outfits: How much the game can safely "take off" the uniform without it looking weird + +#define NO_FEMALE_UNIFORM 0 +#define FEMALE_UNIFORM_FULL 1 +#define FEMALE_UNIFORM_TOP 2 + +//flags for alternate styles: These are hard sprited so don't set this if you didn't put the effort it + +#define NORMAL_STYLE 0 +#define ALT_STYLE 1 +#define DIGITIGRADE_STYLE 2 + +//flags for outfits that have mutantrace variants (try not to use this): Currently only needed if you're trying to add tight fitting bootyshorts + +#define NO_MUTANTRACE_VARIATION 0 +#define MUTANTRACE_VARIATION 1 + +#define NOT_DIGITIGRADE 0 +#define FULL_DIGITIGRADE 1 +#define SQUISHED_DIGITIGRADE 2 + +//flags for covering body parts +#define GLASSESCOVERSEYES 1 +#define MASKCOVERSEYES 2 // get rid of some of the other retardation in these flags +#define HEADCOVERSEYES 4 // feel free to realloc these numbers for other purposes +#define MASKCOVERSMOUTH 8 // on other items, these are just for mask/head +#define HEADCOVERSMOUTH 16 + +#define TINT_DARKENED 2 //Threshold of tint level to apply weld mask overlay +#define TINT_BLIND 3 //Threshold of tint level to obscure vision fully diff --git a/code/__DEFINES/combat.dm b/code/__DEFINES/combat.dm new file mode 100644 index 0000000..cd0dfdc --- /dev/null +++ b/code/__DEFINES/combat.dm @@ -0,0 +1,90 @@ +//Damage things //TODO: merge these down to reduce on defines +//Way to waste perfectly good damagetype names (BRUTE) on this... If you were really worried about case sensitivity, you could have just used lowertext(damagetype) in the proc... +#define BRUTE "brute" +#define BURN "fire" +#define TOX "tox" +#define OXY "oxy" +#define CLONE "clone" +#define STAMINA "stamina" + +#define STUN "stun" +#define WEAKEN "weaken" +#define PARALYZE "paralize" +#define IRRADIATE "irradiate" +#define STUTTER "stutter" +#define SLUR "slur" +#define EYE_BLUR "eye_blur" +#define DROWSY "drowsy" +#define JITTER "jitter" + +//I hate adding defines like this but I'd much rather deal with bitflags than lists and string searches +#define BRUTELOSS 1 +#define FIRELOSS 2 +#define TOXLOSS 4 +#define OXYLOSS 8 +#define SHAME 16 + +//Bitflags defining which status effects could be or are inflicted on a mob +#define CANSTUN 1 +#define CANWEAKEN 2 +#define CANPARALYSE 4 +#define CANPUSH 8 +#define IGNORESLOWDOWN 16 +#define GOTTAGOFAST 32 +#define GOTTAGOREALLYFAST 64 +#define GODMODE 4096 +#define FAKEDEATH 8192 //Replaces stuff like changeling.changeling_fakedeath +#define DISFIGURED 16384 //I'll probably move this elsewhere if I ever get wround to writing a bitflag mob-damage system +#define XENO_HOST 32768 //Tracks whether we're gonna be a baby alien's mummy. + + +//Grab levels +#define GRAB_PASSIVE 0 +#define GRAB_AGGRESSIVE 1 +#define GRAB_NECK 2 +#define GRAB_KILL 3 + + +//Hostile Mob AI Status +#define AI_ON 1 +#define AI_IDLE 2 +#define AI_OFF 3 + + +//Embedded objects +#define EMBEDDED_PAIN_CHANCE 15 //Chance for embedded objects to cause pain (damage user) +#define EMBEDDED_ITEM_FALLOUT 5 //Chance for embedded object to fall out (causing pain but removing the object) +#define EMBED_CHANCE 45 //Chance for an object to embed into somebody when thrown (if it's sharp) +#define EMBEDDED_PAIN_MULTIPLIER 2 //Coefficient of multiplication for the damage the item does while embedded (this*item.w_class) +#define EMBEDDED_FALL_PAIN_MULTIPLIER 5 //Coefficient of multiplication for the damage the item does when it falls out (this*item.w_class) +#define EMBEDDED_IMPACT_PAIN_MULTIPLIER 4 //Coefficient of multiplication for the damage the item does when it first embeds (this*item.w_class) +#define EMBED_THROWSPEED_THRESHOLD 4 //The minimum value of an item's throw_speed for it to embed (Unless it has embedded_ignore_throwspeed_threshold set to 1) +#define EMBEDDED_UNSAFE_REMOVAL_PAIN_MULTIPLIER 8 //Coefficient of multiplication for the damage the item does when removed without a surgery (this*item.w_class) +#define EMBEDDED_UNSAFE_REMOVAL_TIME 30 //A Time in ticks, total removal time = (this*item.w_class) + + +//Attack types for checking shields/hit reactions + +#define MELEE_ATTACK 1 +#define UNARMED_ATTACK 2 +#define PROJECTILE_ATTACK 3 +#define THROWN_PROJECTILE_ATTACK 4 +#define LEAP_ATTACK 5 + +//the define for visible message range in combat +#define COMBAT_MESSAGE_RANGE 3 + + +//Gun Stuff + #define SAWN_INTACT 0 + #define SAWN_OFF 1 + + #define WEAPON_LIGHT 0 + #define WEAPON_MEDIUM 1 + #define WEAPON_HEAVY 2 + + +//Health Defines + +#define HEALTH_THRESHOLD_CRIT 0 +#define HEALTH_THRESHOLD_DEAD -100 \ No newline at end of file diff --git a/code/__DEFINES/contracts.dm b/code/__DEFINES/contracts.dm new file mode 100644 index 0000000..629493c --- /dev/null +++ b/code/__DEFINES/contracts.dm @@ -0,0 +1,42 @@ +#define CONTRACT_POWER "power" +#define CONTRACT_WEALTH "wealth" +#define CONTRACT_PRESTIGE "prestige" +#define CONTRACT_MAGIC "magic" +#define CONTRACT_REVIVE "revive" +#define CONTRACT_KNOWLEDGE "knowledge" +#define CONTRACT_UNWILLING "unwilling" + +#define BANE_SALT "salt" +#define BANE_LIGHT "light" +#define BANE_IRON "iron" +#define BANE_WHITECLOTHES "whiteclothes" +#define BANE_SILVER "silver" +#define BANE_HARVEST "harvest" +#define BANE_TOOLBOX "toolbox" + +#define OBLIGATION_FOOD "food" +#define OBLIGATION_FIDDLE "fiddle" +#define OBLIGATION_GREET "greet" +#define OBLIGATION_PRESENCEKNOWN "presenceknown" +#define OBLIGATION_SAYNAME "sayname" +#define OBLIGATION_ANNOUNCEKILL "announcekill" +#define OBLIGATION_ANSWERTONAME "answername" + +#define BAN_HURTWOMAN "hurtwoman" +#define BAN_CHAPEL "chapel" +#define BAN_HURTPRIEST "hurtpriest" +#define BAN_AVOIDWATER "avoidwater" +#define BAN_STRIKEUNCONCIOUS "strikeunconcious" +#define BAN_HURTLIZARD "hurtlizard" +#define BAN_HURTANIMAL "hurtanimal" + +#define BANISH_WATER "water" +#define BANISH_COFFIN "coffin" +#define BANISH_FORMALDYHIDE "embalm" +#define BANISH_RUNES "runes" +#define BANISH_CANDLES "candles" +#define BANISH_DESTRUCTION "destruction" +#define BANISH_FUNERAL_GARB "funeral" + +#define LORE 1 +#define LAW 2 \ No newline at end of file diff --git a/code/__DEFINES/events.dm b/code/__DEFINES/events.dm new file mode 100644 index 0000000..0eb196d --- /dev/null +++ b/code/__DEFINES/events.dm @@ -0,0 +1,4 @@ +#define SUCCESSFUL_SPAWN 2 +#define NOT_ENOUGH_PLAYERS 3 +#define MAP_ERROR 4 +#define WAITING_FOR_SOMETHING 5 diff --git a/code/__DEFINES/flags.dm b/code/__DEFINES/flags.dm new file mode 100644 index 0000000..92e632e --- /dev/null +++ b/code/__DEFINES/flags.dm @@ -0,0 +1,94 @@ +/* + These defines are specific to the atom/flags bitmask +*/ +#define ALL ~0 //For convenience. +#define NONE 0 + +//FLAGS BITMASK +#define STOPSPRESSUREDMAGE 1 //This flag is used on the flags variable for SUIT and HEAD items which stop pressure damage. Note that the flag 1 was previous used as ONBACK, so it is possible for some code to use (flags & 1) when checking if something can be put on your back. Replace this code with (inv_flags & SLOT_BACK) if you see it anywhere +//To successfully stop you taking all pressure damage you must have both a suit and head item with this flag. + +#define NODROP 2 // This flag makes it so that an item literally cannot be removed at all, or at least that's how it should be. Only deleted. +#define NOBLUDGEON 4 // when an item has this it produces no "X has been hit by Y with Z" message in the default attackby() +#define MASKINTERNALS 8 // mask allows internals +#define HEAR 16 // This flag is what recursive_hear_check() uses to determine wether to add an item to the hearer list or not. +#define HANDSLOW 32 // If an item has this flag, it will slow you to carry it +#define CONDUCT 64 // conducts electricity (metal etc.) +#define ABSTRACT 128 // for all things that are technically items but used for various different stuff, made it 128 because it could conflict with other flags other way +#define NODECONSTRUCT 128 // For machines and structures that should not break into parts, eg, holodeck stuff +#define FPRINT 256 // takes a fingerprint +#define ON_BORDER 512 // item has priority to check when entering or leaving + +#define EARBANGPROTECT 1024 + +#define NOSLIP 1024 //prevents from slipping on wet floors, in space etc (NOTE: flag shared with THICKMATERIAL for external suits and helmet) + +#define OPENCONTAINER 4096 // is an open container for chemistry purposes +#define HEADBANGPROTECT 4096 + +// BLOCK_GAS_SMOKE_EFFECT only used in masks at the moment. +#define BLOCK_GAS_SMOKE_EFFECT 8192 // blocks the effect that chemical clouds would have on a mob --glasses, mask and helmets ONLY! (NOTE: flag shared with THICKMATERIAL) +#define THICKMATERIAL 8192 //prevents syringes, parapens and hypos if the external suit or helmet (if targeting head) has this flag. Example: space suits, biosuit, bombsuits, thick suits that cover your body. (NOTE: flag shared with BLOCK_GAS_SMOKE_EFFECT) +#define DROPDEL 16384 // When dropped, it calls qdel on itself +#define HOLOGRAM 32768 // HOlodeck shit should not be used in any fucking things + +//turf-only flags +#define NOJAUNT 1 +#define UNUSED_TRANSIT_TURF 2 +#define CAN_BE_DIRTY 4 //If a turf can be made dirty at roundstart. This is also used in areas. + +/* + These defines are used specifically with the atom/pass_flags bitmask + the atom/checkpass() proc uses them (tables will call movable atom checkpass(PASSTABLE) for example) +*/ +//flags for pass_flags +#define PASSTABLE 1 +#define PASSGLASS 2 +#define PASSGRILLE 4 +#define PASSBLOB 8 +#define PASSMOB 16 +#define LETPASSTHROW 32 + +//flags for species + +#define MUTCOLORS 1 +#define HAIR 2 +#define FACEHAIR 3 +#define EYECOLOR 4 +#define LIPS 5 +#define RESISTTEMP 6 +#define RADIMMUNE 7 +#define NOBREATH 8 +#define NOGUNS 9 +#define NOBLOOD 10 +#define NOFIRE 11 +#define VIRUSIMMUNE 12 +#define PIERCEIMMUNE 13 +#define NOTRANSSTING 14 +#define MUTCOLORS_PARTSONLY 15 //Used if we want the mutant colour to be only used by mutant bodyparts. Don't combine this with MUTCOLORS, or it will be useless. +#define NODISMEMBER 16 +#define NOHUNGER 17 +#define NOCRITDAMAGE 18 +#define NOZOMBIE 19 +#define EASYDISMEMBER 20 +#define EASYLIMBATTACHMENT 21 +#define TOXINLOVER 22 +#define DIGITIGRADE 23 //Uses weird leg sprites. Optional for Lizards, required for ashwalkers. Don't give it to other races unless you make sprites for this (see human_parts_greyscale.dmi) + +#define FLYING 65536 + +/* + These defines are used specifically with the atom/movable/languages bitmask. + They are used in atom/movable/Hear() and atom/movable/say() to determine whether hearers can understand a message. +*/ +#define HUMAN 1 +#define MONKEY 2 +#define ALIEN 4 +#define ROBOT 8 +#define SLIME 16 +#define DRONE 32 +#define SWARMER 64 +#define RATVAR 128 + +// Flags for reagents +#define REAGENT_NOREACT 1 diff --git a/code/__DEFINES/genetics.dm b/code/__DEFINES/genetics.dm new file mode 100644 index 0000000..ede9dd4 --- /dev/null +++ b/code/__DEFINES/genetics.dm @@ -0,0 +1,113 @@ + +//Defines copying names of mutations in all cases, make sure to change this if you change mutation's name +#define HULK "Hulk" +#define XRAY "X Ray Vision" +#define COLDRES "Cold Resistance" +#define TK "Telekinesis" +#define NERVOUS "Nervousness" +#define EPILEPSY "Epilepsy" +#define MUTATE "Unstable DNA" +#define COUGH "Cough" +#define DWARFISM "Dwarfism" +#define CLOWNMUT "Clumsiness" +#define TOURETTES "Tourettes Syndrome" +#define DEAFMUT "Deafness" +#define BLINDMUT "Blindness" +#define RACEMUT "Monkified" +#define BADSIGHT "Near Sightness" +#define LASEREYES "Laser Eyes" +#define CHAMELEON "Chameleon" +#define WACKY "Wacky" +#define MUT_MUTE "Mute" +#define SMILE "Smile" +#define UNINTELLIGABLE "Unintelligable" +#define SWEDISH "Swedish" +#define CHAV "Chav" +#define ELVIS "Elvis" + +#define UI_CHANGED "ui changed" +#define UE_CHANGED "ue changed" + +#define CHAMELEON_MUTATION_DEFAULT_TRANSPARENCY 204 + +// String identifiers for associative list lookup + +//Types of usual mutations +#define POSITIVE 1 +#define NEGATIVE 2 +#define MINOR_NEGATIVE 3 + +//Mutations that cant be taken from genetics and are not in SE +#define NON_SCANNABLE -1 + + // Extra powers: +#define LASER 9 // harm intent - click anywhere to shoot lasers from eyes +#define HEAL 10 // healing people with hands +#define SHADOW 11 // shadow teleportation (create in/out portals anywhere) (25%) +#define SCREAM 12 // supersonic screaming (25%) +#define EXPLOSIVE 13 // exploding on-demand (15%) +#define REGENERATION 14 // superhuman regeneration (30%) +#define REPROCESSOR 15 // eat anything (50%) +#define SHAPESHIFTING 16 // take on the appearance of anything (40%) +#define PHASING 17 // ability to phase through walls (40%) +#define SHIELD 18 // shielding from all projectile attacks (30%) +#define SHOCKWAVE 19 // attack a nearby tile and cause a massive shockwave, knocking most people on their asses (25%) +#define ELECTRICITY 20 // ability to shoot electric attacks (15%) + +//DNA - Because fuck you and your magic numbers being all over the codebase. +#define DNA_BLOCK_SIZE 3 + +#define DNA_UNI_IDENTITY_BLOCKS 7 +#define DNA_HAIR_COLOR_BLOCK 1 +#define DNA_FACIAL_HAIR_COLOR_BLOCK 2 +#define DNA_SKIN_TONE_BLOCK 3 +#define DNA_EYE_COLOR_BLOCK 4 +#define DNA_GENDER_BLOCK 5 +#define DNA_FACIAL_HAIR_STYLE_BLOCK 6 +#define DNA_HAIR_STYLE_BLOCK 7 + +#define DNA_STRUC_ENZYMES_BLOCKS 19 +#define DNA_UNIQUE_ENZYMES_LEN 32 + +//Transformation proc stuff +#define TR_KEEPITEMS 1 +#define TR_KEEPVIRUS 2 +#define TR_KEEPDAMAGE 4 +#define TR_HASHNAME 8 // hashing names (e.g. monkey(e34f)) (only in monkeyize) +#define TR_KEEPIMPLANTS 16 +#define TR_KEEPSE 32 // changelings shouldn't edit the DNA's SE when turning into a monkey +#define TR_DEFAULTMSG 64 +#define TR_KEEPSRC 128 +#define TR_KEEPORGANS 256 + +//Organ stuff, It's here because "Genetics" is the most relevant file for organs and bodyparts +#define ORGAN_ORGANIC 1 +#define ORGAN_ROBOTIC 2 + +#define BODYPART_ORGANIC 1 +#define BODYPART_ROBOTIC 2 + +#define MONKEY_BODYPART "monkey" +#define ALIEN_BODYPART "alien" +#define LARVA_BODYPART "larva" +#define DEVIL_BODYPART "devil" + +//Nutrition levels for humans. No idea where else to put it +#define NUTRITION_LEVEL_FAT 600 +#define NUTRITION_LEVEL_FULL 550 +#define NUTRITION_LEVEL_WELL_FED 450 +#define NUTRITION_LEVEL_FED 350 +#define NUTRITION_LEVEL_HUNGRY 250 +#define NUTRITION_LEVEL_STARVING 150 + +#define CLONER_FRESH_CLONE "fresh" +#define CLONER_MATURE_CLONE "mature" + +//Blood levels +#define BLOOD_VOLUME_MAXIMUM 2000 +#define BLOOD_VOLUME_SLIME_SPLIT 1120 +#define BLOOD_VOLUME_NORMAL 560 +#define BLOOD_VOLUME_SAFE 501 +#define BLOOD_VOLUME_OKAY 336 +#define BLOOD_VOLUME_BAD 224 +#define BLOOD_VOLUME_SURVIVE 122 diff --git a/code/__DEFINES/hud.dm b/code/__DEFINES/hud.dm new file mode 100644 index 0000000..cb2c3ad --- /dev/null +++ b/code/__DEFINES/hud.dm @@ -0,0 +1,45 @@ +// for secHUDs and medHUDs and variants. The number is the location of the image on the list hud_list +// note: if you add more HUDs, even for non-human atoms, make sure to use unique numbers for the defines! +// /datum/atom_hud expects these to be unique +// these need to be strings in order to make them associative lists +#define HEALTH_HUD "1" // dead, alive, sick, health status +#define STATUS_HUD "2" // a simple line rounding the mob's number health +#define ID_HUD "3" // the job asigned to your ID +#define WANTED_HUD "4" // wanted, released, parroled, security status +#define IMPLOYAL_HUD "5" // loyality implant +#define IMPCHEM_HUD "6" // chemical implant +#define IMPTRACK_HUD "7" // tracking implant +#define DIAG_STAT_HUD "8" // Silicon/Mech Status +#define DIAG_HUD "9" // Silicon health bar +#define DIAG_BATT_HUD "10"// Borg/Mech power meter +#define DIAG_MECH_HUD "11"// Mech health bar +#define DIAG_BOT_HUD "12"// Bot HUDs +//for antag huds. these are used at the /mob level +#define ANTAG_HUD "13" + +//data HUD (medhud, sechud) defines +//Don't forget to update human/New() if you change these! +#define DATA_HUD_SECURITY_BASIC 1 +#define DATA_HUD_SECURITY_ADVANCED 2 +#define DATA_HUD_MEDICAL_BASIC 3 +#define DATA_HUD_MEDICAL_ADVANCED 4 +#define DATA_HUD_DIAGNOSTIC 5 +//antag HUD defines +#define ANTAG_HUD_CULT 6 +#define ANTAG_HUD_REV 7 +#define ANTAG_HUD_OPS 8 +#define ANTAG_HUD_WIZ 9 +#define ANTAG_HUD_SHADOW 10 +#define ANTAG_HUD_TRAITOR 11 +#define ANTAG_HUD_NINJA 12 +#define ANTAG_HUD_CHANGELING 13 +#define ANTAG_HUD_ABDUCTOR 14 +#define ANTAG_HUD_DEVIL 15 +#define ANTAG_HUD_SINTOUCHED 16 +#define ANTAG_HUD_SOULLESS 17 +#define ANTAG_HUD_CLOCKWORK 18 + +// Notification action types +#define NOTIFY_JUMP "jump" +#define NOTIFY_ATTACK "attack" +#define NOTIFY_ORBIT "orbit" diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm new file mode 100644 index 0000000..d96df8b --- /dev/null +++ b/code/__DEFINES/is_helpers.dm @@ -0,0 +1,126 @@ +// simple is_type and similar inline helpers + +#define islist(L) (istype(L,/list)) + +#define in_range(source, user) (get_dist(source, user) <= 1) + +#define ismovableatom(A) (istype(A, /atom/movable)) + +//Turfs +#define isopenturf(A) (istype(A, /turf/open)) + +#define isspaceturf(A) (istype(A, /turf/open/space)) + +#define isfloorturf(A) (istype(A, /turf/open/floor)) + +#define isclosedturf(A) (istype(A, /turf/closed)) + +#define iswallturf(A) (istype(A, /turf/closed/wall)) + +#define ismineralturf(A) (istype(A, /turf/closed/mineral)) + +//Mobs +#define isliving(A) (istype(A, /mob/living)) + +#define isbrain(A) (istype(A, /mob/living/brain)) + +//Carbon mobs +#define iscarbon(A) (istype(A, /mob/living/carbon)) + +#define ishuman(A) (istype(A, /mob/living/carbon/human)) + +//Human sub-species +#define isabductor(A) (is_species(A, /datum/species/abductor)) +#define isgolem(A) (is_species(A, /datum/species/golem)) +#define islizard(A) (is_species(A, /datum/species/lizard)) +#define isplasmaman(A) (is_species(A, /datum/species/plasmaman)) +#define ispodperson(A) (is_species(A, /datum/species/podperson)) +#define isflyperson(A) (is_species(A, /datum/species/fly)) +#define isslimeperson(A) (is_species(A, /datum/species/jelly/slime)) +#define isshadowperson(A) (is_species(A, /datum/species/shadow)) +#define iszombie(A) (is_species(A, /datum/species/zombie)) +#define ishumanbasic(A) (is_species(A, /datum/species/human)) + +//more carbon mobs +#define ismonkey(A) (istype(A, /mob/living/carbon/monkey)) + +#define isalien(A) (istype(A, /mob/living/carbon/alien)) + +#define islarva(A) (istype(A, /mob/living/carbon/alien/larva)) + +#define isalienadult(A) (istype(A, /mob/living/carbon/alien/humanoid)) + +//Silicon mobs +#define issilicon(A) (istype(A, /mob/living/silicon)) + +#define iscyborg(A) (istype(A, /mob/living/silicon/robot)) + +#define isAI(A) (istype(A, /mob/living/silicon/ai)) + +#define ispAI(A) (istype(A, /mob/living/silicon/pai)) + +//Simple animals +#define isanimal(A) (istype(A, /mob/living/simple_animal)) + +#define isbot(A) (istype(A, /mob/living/simple_animal/bot)) + +#define iscrab(A) (istype(A, /mob/living/simple_animal/crab)) + +#define isshade(A) (istype(A, /mob/living/simple_animal/shade)) + +#define ismouse(A) (istype(A, /mob/living/simple_animal/mouse)) + +#define isslime(A) (istype(A, /mob/living/simple_animal/slime)) + +#define isdrone(A) (istype(A, /mob/living/simple_animal/drone)) + +#define iscat(A) (istype(A, /mob/living/simple_animal/pet/cat)) + +#define isdog(A) (istype(A, /mob/living/simple_animal/pet/dog)) + +#define iscorgi(A) (istype(A, /mob/living/simple_animal/pet/dog/corgi)) + +#define ishostile(A) (istype(A, /mob/living/simple_animal/hostile)) + +#define isbear(A) (istype(A, /mob/living/simple_animal/hostile/bear)) + +#define iscarp(A) (istype(A, /mob/living/simple_animal/hostile/carp)) + +#define isswarmer(A) (istype(A, /mob/living/simple_animal/hostile/swarmer)) + +#define isguardian(A) (istype(A, /mob/living/simple_animal/hostile/guardian)) + +#define isclockmob(A) (istype(A, /mob/living/simple_animal/hostile/clockwork)) + +#define isconstruct(A) (istype(A, /mob/living/simple_animal/hostile/construct)) + +#define ismegafauna(A) (istype(A, /mob/living/simple_animal/hostile/megafauna)) + +#define isclown(A) (istype(A, /mob/living/simple_animal/hostile/retaliate/clown)) + +//Misc mobs +#define isobserver(A) (istype(A, /mob/dead/observer)) + +#define isnewplayer(A) (istype(A, /mob/new_player)) + +#define isovermind(A) (istype(A, /mob/camera/blob)) + +//Objects +#define isobj(A) istype(A, /obj) //override the byond proc because it returns true on children of /atom/movable that aren't objs + +#define islimb(A) (istype(A, /obj/item/bodypart)) + +#define is_cleanable(A) (istype(A, /obj/effect/decal/cleanable) || istype(A, /obj/effect/rune)) //if something is cleanable + +//Assemblies +#define isassembly(O) (istype(O, /obj/item/device/assembly)) + +#define isigniter(O) (istype(O, /obj/item/device/assembly/igniter)) + +#define isinfared(O) (istype(O, /obj/item/device/assembly/infra)) + +#define isprox(O) (istype(O, /obj/item/device/assembly/prox_sensor)) + +#define issignaler(O) (istype(O, /obj/item/device/assembly/signaler)) + +#define istimer(O) (istype(O, /obj/item/device/assembly/timer)) diff --git a/code/__DEFINES/layers.dm b/code/__DEFINES/layers.dm new file mode 100644 index 0000000..64866ab --- /dev/null +++ b/code/__DEFINES/layers.dm @@ -0,0 +1,69 @@ +//Defines for atom layers and planes +//KEEP THESE IN A NICE ACSCENDING ORDER, PLEASE + +#define CLICKCATCHER_PLANE -99 + +#define GAME_PLANE 0 +//#define TURF_LAYER 2 //For easy recordkeeping; this is a byond define +#define MID_TURF_LAYER 2.02 +#define HIGH_TURF_LAYER 2.03 +#define ABOVE_OPEN_TURF_LAYER 2.04 +#define CLOSED_TURF_LAYER 2.05 +#define ABOVE_NORMAL_TURF_LAYER 2.08 +#define LATTICE_LAYER 2.2 +#define DISPOSAL_PIPE_LAYER 2.3 +#define GAS_PIPE_LAYER 2.35 +#define WIRE_LAYER 2.4 +#define WIRE_TERMINAL_LAYER 2.45 +#define LOW_OBJ_LAYER 2.5 + +#define BELOW_OPEN_DOOR_LAYER 2.6 +#define OPEN_DOOR_LAYER 2.7 +#define PROJECTILE_HIT_THRESHHOLD_LAYER 2.75 //projectiles won't hit objects at or below this layer if possible +#define TABLE_LAYER 2.8 +#define BELOW_OBJ_LAYER 2.9 +#define LOW_ITEM_LAYER 2.95 +//#define OBJ_LAYER 3 //For easy recordkeeping; this is a byond define +#define CLOSED_DOOR_LAYER 3.1 +#define CLOSED_FIREDOOR_LAYER 3.11 +#define ABOVE_OBJ_LAYER 3.2 +#define ABOVE_WINDOW_LAYER 3.3 +#define SIGN_LAYER 3.4 +#define HIGH_OBJ_LAYER 3.5 + +#define BELOW_MOB_LAYER 3.7 +#define LYING_MOB_LAYER 3.8 +//#define MOB_LAYER 4 //For easy recordkeeping; this is a byond define +#define ABOVE_MOB_LAYER 4.1 +#define WALL_OBJ_LAYER 4.25 +#define EDGED_TURF_LAYER 4.3 +#define ON_EDGED_TURF_LAYER 4.35 +#define LARGE_MOB_LAYER 4.4 +#define ABOVE_ALL_MOB_LAYER 4.5 + +#define SPACEVINE_LAYER 4.8 +#define SPACEVINE_MOB_LAYER 4.9 +//#define FLY_LAYER 5 //For easy recordkeeping; this is a byond define +#define RIPPLE_LAYER 5.1 + +#define GHOST_LAYER 6 +#define AREA_LAYER 10 +#define MASSIVE_OBJ_LAYER 11 +#define POINT_LAYER 12 + +#define LIGHTING_PLANE 15 +#define LIGHTING_LAYER 15 + +//HUD layer defines + +#define FULLSCREEN_PLANE 18 +#define FLASH_LAYER 18 +#define FULLSCREEN_LAYER 18.1 +#define UI_DAMAGE_LAYER 18.2 +#define BLIND_LAYER 18.3 +#define CRIT_LAYER 18.4 + +#define HUD_PLANE 19 +#define HUD_LAYER 19 +#define ABOVE_HUD_PLANE 20 +#define ABOVE_HUD_LAYER 20 diff --git a/code/__DEFINES/machines.dm b/code/__DEFINES/machines.dm new file mode 100644 index 0000000..c876c40 --- /dev/null +++ b/code/__DEFINES/machines.dm @@ -0,0 +1,35 @@ +// channel numbers for power +#define EQUIP 1 +#define LIGHT 2 +#define ENVIRON 3 +#define TOTAL 4 //for total power used only +#define STATIC_EQUIP 5 +#define STATIC_LIGHT 6 +#define STATIC_ENVIRON 7 + + +//bitflags for door switches. +#define OPEN 1 +#define IDSCAN 2 +#define BOLTS 4 +#define SHOCK 8 +#define SAFE 16 + +//used in design to specify which machine can build it +#define IMPRINTER 1 //For circuits. Uses glass/chemicals. +#define PROTOLATHE 2 //New stuff. Uses glass/metal/chemicals +#define AUTOLATHE 4 //Uses glass/metal only. +#define CRAFTLATHE 8 //Uses fuck if I know. For use eventually. +#define MECHFAB 16 //Remember, objects utilising this flag should have construction_time and construction_cost vars. +#define BIOGENERATOR 32 //Uses biomass +#define LIMBGROWER 64 //Uses synthetic flesh +//Note: More then one of these can be added to a design but imprinter and lathe designs are incompatable. + +#define MC_CPU "CPU" +#define MC_HDD "HDD" +#define MC_SDD "SDD" +#define MC_CARD "CARD" +#define MC_NET "NET" +#define MC_PRINT "PRINT" +#define MC_CELL "CELL" +#define MC_CHARGE "CHARGE" \ No newline at end of file diff --git a/code/__DEFINES/math.dm b/code/__DEFINES/math.dm new file mode 100644 index 0000000..f128a2c --- /dev/null +++ b/code/__DEFINES/math.dm @@ -0,0 +1,17 @@ +#define PI 3.1415 +#define SPEED_OF_LIGHT 3e8 //not exact but hey! +#define SPEED_OF_LIGHT_SQ 9e+16 +#define INFINITY 1e31 //closer then enough + +//atmos +#define R_IDEAL_GAS_EQUATION 8.31 //kPa*L/(K*mol) +#define ONE_ATMOSPHERE 101.325 //kPa +#define T0C 273.15 // 0degC +#define T20C 293.15 // 20degC +#define TCMB 2.7 // -270.3degC + +//"fancy" math for calculating time in ms from tick_usage percentage and the length of ticks +//percent_of_tick_used * (ticklag * 100(to convert to ms)) / 100(percent ratio) +//collapsed to percent_of_tick_used * tick_lag +#define TICK_DELTA_TO_MS(percent_of_tick_used) ((percent_of_tick_used) * world.tick_lag) +#define TICK_USAGE_TO_MS(starting_tickusage) (TICK_DELTA_TO_MS(world.tick_usage-starting_tickusage)) \ No newline at end of file diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm new file mode 100644 index 0000000..aad1c57 --- /dev/null +++ b/code/__DEFINES/misc.dm @@ -0,0 +1,560 @@ +// Byond direction defines, because I want to put them somewhere. +// #define NORTH 1 +// #define SOUTH 2 +// #define EAST 4 +// #define WEST 8 + + +#define MIDNIGHT_ROLLOVER 864000 //number of deciseconds in a day + +#define JANUARY 1 +#define FEBRUARY 2 +#define MARCH 3 +#define APRIL 4 +#define MAY 5 +#define JUNE 6 +#define JULY 7 +#define AUGUST 8 +#define SEPTEMBER 9 +#define OCTOBER 10 +#define NOVEMBER 11 +#define DECEMBER 12 + +//Select holiday names -- If you test for a holiday in the code, make the holiday's name a define and test for that instead +#define NEW_YEAR "New Year" +#define VALENTINES "Valentine's Day" +#define APRIL_FOOLS "April Fool's Day" +#define EASTER "Easter" +#define HALLOWEEN "Halloween" +#define CHRISTMAS "Christmas" +#define FRIDAY_13TH "Friday the 13th" + +//Human Overlays Indexes///////// +#define MUTATIONS_LAYER 26 //mutations. Tk headglows, cold resistance glow, etc +#define BODY_BEHIND_LAYER 25 //certain mutantrace features (tail when looking south) that must appear behind the body parts +#define BODYPARTS_LAYER 24 //Initially "AUGMENTS", this was repurposed to be a catch-all bodyparts flag +#define BODY_ADJ_LAYER 23 //certain mutantrace features (snout, body markings) that must appear above the body parts +#define BODY_LAYER 22 //underwear, undershirts, socks, eyes, lips(makeup) +#define FRONT_MUTATIONS_LAYER 21 //mutations that should appear above body, body_adj and bodyparts layer (e.g. laser eyes) +#define DAMAGE_LAYER 20 //damage indicators (cuts and burns) +#define UNIFORM_LAYER 19 +#define ID_LAYER 18 +#define SHOES_LAYER 17 +#define GLOVES_LAYER 16 +#define EARS_LAYER 15 +#define SUIT_LAYER 14 +#define GLASSES_LAYER 13 +#define BELT_LAYER 12 //Possible make this an overlay of somethign required to wear a belt? +#define SUIT_STORE_LAYER 11 +#define BACK_LAYER 10 +#define HAIR_LAYER 9 //TODO: make part of head layer? +#define NECK_LAYER 8 +#define FACEMASK_LAYER 7 +#define HEAD_LAYER 6 +#define HANDCUFF_LAYER 5 +#define LEGCUFF_LAYER 4 +#define HANDS_LAYER 3 +#define BODY_FRONT_LAYER 2 +#define FIRE_LAYER 1 //If you're on fire +#define TOTAL_LAYERS 26 //KEEP THIS UP-TO-DATE OR SHIT WILL BREAK ;_; + +//Human Overlay Index Shortcuts for alternate_worn_layer, layers +//Because I *KNOW* somebody will think layer+1 means "above" +//IT DOESN'T OK, IT MEANS "UNDER" +#define UNDER_BODY_BEHIND_LAYER BODY_BEHIND_LAYER+1 +#define UNDER_BODY_LAYER BODY_LAYER+1 +#define UNDER_BODY_ADJ_LAYER BODY_ADJ_LAYER+1 +#define UNDER_MUTATIONS_LAYER MUTATIONS_LAYER+1 +#define UNDER_BODYPARTS_LAYER BODYPARTS_LAYER+1 +#define UNDER_DAMAGE_LAYER DAMAGE_LAYER+1 +#define UNDER_UNIFORM_LAYER UNIFORM_LAYER+1 +#define UNDER_ID_LAYER ID_LAYER+1 +#define UNDER_SHOES_LAYER SHOES_LAYER+1 +#define UNDER_GLOVES_LAYER GLOVES_LAYER+1 +#define UNDER_EARS_LAYER EARS_LAYER+1 +#define UNDER_SUIT_LAYER SUIT_LAYER+1 +#define UNDER_GLASSES_LAYER GLASSES_LAYER+1 +#define UNDER_BELT_LAYER BELT_LAYER+1 +#define UNDER_SUIT_STORE_LAYER SUIT_STORE_LAYER+1 +#define UNDER_BACK_LAYER BACK_LAYER+1 +#define UNDER_HAIR_LAYER HAIR_LAYER+1 +#define UNDER_FACEMASK_LAYER FACEMASK_LAYER+1 +#define UNDER_HEAD_LAYER HEAD_LAYER+1 +#define UNDER_HANDCUFF_LAYER HANDCUFF_LAYER+1 +#define UNDER_LEGCUFF_LAYER LEGCUFF_LAYER+1 +#define UNDER_HANDS_LAYER HANDS_LAYER+1 +#define UNDER_BODY_FRONT_LAYER BODY_FRONT_LAYER+1 +#define UNDER_FIRE_LAYER FIRE_LAYER+1 + +//AND -1 MEANS "ABOVE", OK?, OK!?! +#define ABOVE_BODY_BEHIND_LAYER BODY_BEHIND_LAYER-1 +#define ABOVE_BODY_LAYER BODY_LAYER-1 +#define ABOVE_BODY_ADJ_LAYER BODY_ADJ_LAYER-1 +#define ABOVE_MUTATIONS_LAYER MUTATIONS_LAYER-1 +#define ABOVE_BODYPARTS_LAYER BODYPARTS_LAYER-1 +#define ABOVE_DAMAGE_LAYER DAMAGE_LAYER-1 +#define ABOVE_UNIFORM_LAYER UNIFORM_LAYER-1 +#define ABOVE_ID_LAYER ID_LAYER-1 +#define ABOVE_SHOES_LAYER SHOES_LAYER-1 +#define ABOVE_GLOVES_LAYER GLOVES_LAYER-1 +#define ABOVE_EARS_LAYER EARS_LAYER-1 +#define ABOVE_SUIT_LAYER SUIT_LAYER-1 +#define ABOVE_GLASSES_LAYER GLASSES_LAYER-1 +#define ABOVE_BELT_LAYER BELT_LAYER-1 +#define ABOVE_SUIT_STORE_LAYER SUIT_STORE_LAYER-1 +#define ABOVE_BACK_LAYER BACK_LAYER-1 +#define ABOVE_HAIR_LAYER HAIR_LAYER-1 +#define ABOVE_FACEMASK_LAYER FACEMASK_LAYER-1 +#define ABOVE_HEAD_LAYER HEAD_LAYER-1 +#define ABOVE_HANDCUFF_LAYER HANDCUFF_LAYER-1 +#define ABOVE_LEGCUFF_LAYER LEGCUFF_LAYER-1 +#define ABOVE_HANDS_LAYER HANDS_LAYER-1 +#define ABOVE_BODY_FRONT_LAYER BODY_FRONT_LAYER-1 +#define ABOVE_FIRE_LAYER FIRE_LAYER-1 + + +//Security levels +#define SEC_LEVEL_GREEN 0 +#define SEC_LEVEL_BLUE 1 +#define SEC_LEVEL_RED 2 +#define SEC_LEVEL_DELTA 3 + +//some arbitrary defines to be used by self-pruning global lists. (see master_controller) +#define PROCESS_KILL 26 //Used to trigger removal from a processing list + +// Cargo-related stuff. +#define MANIFEST_ERROR_CHANCE 5 +#define MANIFEST_ERROR_NAME 1 +#define MANIFEST_ERROR_CONTENTS 2 +#define MANIFEST_ERROR_ITEM 4 + +#define TRANSITIONEDGE 7 //Distance from edge to move to another z-level + + + +//HUD styles. Please ensure HUD_VERSIONS is the same as the maximum index. Index order defines how they are cycled in F12. +#define HUD_STYLE_STANDARD 1 +#define HUD_STYLE_REDUCED 2 +#define HUD_STYLE_NOHUD 3 + + +#define HUD_VERSIONS 3 //used in show_hud() +//1 = standard hud +//2 = reduced hud (just hands and intent switcher) +//3 = no hud (for screenshots) + +#define MINERAL_MATERIAL_AMOUNT 2000 +//The amount of materials you get from a sheet of mineral like iron/diamond/glass etc +#define MAX_STACK_SIZE 50 +//The maximum size of a stack object. + +#define CLICK_CD_MELEE 8 +#define CLICK_CD_RANGE 4 +#define CLICK_CD_RAPID 2 +#define CLICK_CD_CLICK_ABILITY 6 +#define CLICK_CD_BREAKOUT 100 +#define CLICK_CD_HANDCUFFED 10 +#define CLICK_CD_RESIST 20 +#define CLICK_CD_GRABBING 10 + +//click cooldowns, in tenths of a second + + +#define BE_CLOSE 1 //in the case of a silicon, to select if they need to be next to the atom +#define NO_DEXTERY 1 //if other mobs (monkeys, aliens, etc) can use this +//used by canUseTopic() + +//Sizes of mobs, used by mob/living/var/mob_size +#define MOB_SIZE_TINY 0 +#define MOB_SIZE_SMALL 1 +#define MOB_SIZE_HUMAN 2 +#define MOB_SIZE_LARGE 3 + +//Cuff resist speeds + +#define FAST_CUFFBREAK 1 +#define INSTANT_CUFFBREAK 2 + +//Slime evolution threshold. Controls how fast slimes can split/grow +#define SLIME_EVOLUTION_THRESHOLD 10 + +//singularity defines +#define STAGE_ONE 1 +#define STAGE_TWO 3 +#define STAGE_THREE 5 +#define STAGE_FOUR 7 +#define STAGE_FIVE 9 +#define STAGE_SIX 11 //From supermatter shard + +//zlevel defines, can be overridden for different maps in the appropriate _maps file. +#define ZLEVEL_STATION 1 +#define ZLEVEL_CENTCOM 2 +#define ZLEVEL_MINING 5 +#define ZLEVEL_LAVALAND 5 +#define ZLEVEL_EMPTY_SPACE 11 + +#define ZLEVEL_SPACEMIN 3 +#define ZLEVEL_SPACEMAX 11 + +//ticker.current_state values +#define GAME_STATE_STARTUP 0 +#define GAME_STATE_PREGAME 1 +#define GAME_STATE_SETTING_UP 2 +#define GAME_STATE_PLAYING 3 +#define GAME_STATE_FINISHED 4 +//SOUND: +#define SOUND_MINIMUM_PRESSURE 10 +#define FALLOFF_SOUNDS 1 +#define SURROUND_CAP 7 + +//FONTS: +// Used by Paper and PhotoCopier (and PaperBin once a year). +// Used by PDA's Notekeeper. +// Used by NewsCaster and NewsPaper. +#define PEN_FONT "Verdana" +#define CRAYON_FONT "Comic Sans MS" +#define SIGNFONT "Times New Roman" + + +//NPC DEFINES +#define INTERACTING 2 +#define TRAVEL 4 +#define FIGHTING 8 + +//TRAITS + +#define TRAIT_ROBUST 2 +#define TRAIT_UNROBUST 4 +#define TRAIT_SMART 8 +#define TRAIT_DUMB 16 +#define TRAIT_MEAN 32 +#define TRAIT_FRIENDLY 64 +#define TRAIT_THIEVING 128 + +//SNPC defines +#define MAX_RANGE_FIND 32 +#define MIN_RANGE_FIND 16 +#define FUZZY_CHANCE_HIGH 85 +#define FUZZY_CHANCE_LOW 50 +#define CHANCE_TALK 1 + +#define SNPC_BRUTE 1 +#define SNPC_STEALTH 2 +#define SNPC_MARTYR 3 +#define SNPC_PSYCHO 4 + + +#define MAXCOIL 30 +#define RESIZE_DEFAULT_SIZE 1 + +//transfer_ai() defines. Main proc in ai_core.dm +#define AI_TRANS_TO_CARD 1 //Downloading AI to InteliCard. +#define AI_TRANS_FROM_CARD 2 //Uploading AI from InteliCard +#define AI_MECH_HACK 3 //Malfunctioning AI hijacking mecha + +//Material defines +#define MAT_METAL "$metal" +#define MAT_GLASS "$glass" +#define MAT_SILVER "$silver" +#define MAT_GOLD "$gold" +#define MAT_DIAMOND "$diamond" +#define MAT_URANIUM "$uranium" +#define MAT_PLASMA "$plasma" +#define MAT_BANANIUM "$bananium" +#define MAT_TITANIUM "$titanium" +#define MAT_BIOMASS "$biomass" + + +//check_target_facings() return defines +#define FACING_FAILED 0 +#define FACING_SAME_DIR 1 +#define FACING_EACHOTHER 2 +#define FACING_INIT_FACING_TARGET_TARGET_FACING_PERPENDICULAR 3 //Do I win the most informative but also most stupid define award? + + +//Cache of bloody footprint images +//Key: +//"entered-[blood_state]-[dir_of_image]" +//or: "exited-[blood_state]-[dir_of_image]" +var/list/bloody_footprints_cache = list() + +//Bloody shoes/footprints +#define MAX_SHOE_BLOODINESS 100 +#define BLOODY_FOOTPRINT_BASE_ALPHA 150 +#define BLOOD_GAIN_PER_STEP 100 +#define BLOOD_LOSS_PER_STEP 5 +#define BLOOD_FADEOUT_TIME 2 + +//Bloody shoe blood states +#define BLOOD_STATE_HUMAN "blood" +#define BLOOD_STATE_XENO "xeno" +#define BLOOD_STATE_OIL "oil" +#define BLOOD_STATE_NOT_BLOODY "no blood whatsoever" +//Turf wet states +#define TURF_DRY 0 +#define TURF_WET_WATER 1 +#define TURF_WET_LUBE 2 +#define TURF_WET_ICE 3 +#define TURF_WET_PERMAFROST 4 +#define TURF_WET_SLIDE 5 + +//Maximum amount of time, (in approx. seconds.) a tile can be wet for. +#define MAXIMUM_WET_TIME 300 + +//Object/Item sharpness +#define IS_BLUNT 0 +#define IS_SHARP 1 +#define IS_SHARP_ACCURATE 2 + +//unmagic-strings for types of polls +#define POLLTYPE_OPTION "OPTION" +#define POLLTYPE_TEXT "TEXT" +#define POLLTYPE_RATING "NUMVAL" +#define POLLTYPE_MULTI "MULTICHOICE" +#define POLLTYPE_IRV "IRV" + + + +//lighting area defines +#define DYNAMIC_LIGHTING_DISABLED 0 //dynamic lighting disabled (area stays at full brightness) +#define DYNAMIC_LIGHTING_ENABLED 1 //dynamic lighting enabled +#define DYNAMIC_LIGHTING_IFSTARLIGHT 2 //dynamic lighting enabled only if starlight is. +#define IS_DYNAMIC_LIGHTING(A) ( A.lighting_use_dynamic == DYNAMIC_LIGHTING_IFSTARLIGHT ? config.starlight : A.lighting_use_dynamic ) + +//subtypesof(), typesof() without the parent path +#define subtypesof(typepath) ( typesof(typepath) - typepath ) + +//Gets the turf this atom inhabits +#define get_turf(A) (get_step(A, 0)) + +//Bot types +#define SEC_BOT 1 // Secutritrons (Beepsky) and ED-209s +#define MULE_BOT 2 // MULEbots +#define FLOOR_BOT 4 // Floorbots +#define CLEAN_BOT 8 // Cleanbots +#define MED_BOT 16 // Medibots + +//Sentience types +#define SENTIENCE_ORGANIC 1 +#define SENTIENCE_ARTIFICIAL 2 +#define SENTIENCE_OTHER 3 +#define SENTIENCE_MINEBOT 4 +#define SENTIENCE_BOSS 5 + + +//Fire and Acid stuff, for resistance_flags +#define LAVA_PROOF 1 +#define FIRE_PROOF 2 //100% immune to fire damage (but not necessarily to lava or heat) +#define FLAMMABLE 4 +#define ON_FIRE 8 +#define UNACIDABLE 16 //acid can't even appear on it, let alone melt it. +#define ACID_PROOF 32 //acid stuck on it doesn't melt it. +#define INDESTRUCTIBLE 64 //doesn't take damage + +//Ghost orbit types: +#define GHOST_ORBIT_CIRCLE "circle" +#define GHOST_ORBIT_TRIANGLE "triangle" +#define GHOST_ORBIT_HEXAGON "hexagon" +#define GHOST_ORBIT_SQUARE "square" +#define GHOST_ORBIT_PENTAGON "pentagon" + +//Ghost showing preferences: +#define GHOST_ACCS_NONE 1 +#define GHOST_ACCS_DIR 50 +#define GHOST_ACCS_FULL 100 + +#define GHOST_ACCS_NONE_NAME "default sprites" +#define GHOST_ACCS_DIR_NAME "only directional sprites" +#define GHOST_ACCS_FULL_NAME "full accessories" + +#define GHOST_ACCS_DEFAULT_OPTION GHOST_ACCS_FULL + +var/global/list/ghost_accs_options = list(GHOST_ACCS_NONE, GHOST_ACCS_DIR, GHOST_ACCS_FULL) //So save files can be sanitized properly. + +#define GHOST_OTHERS_SIMPLE 1 +#define GHOST_OTHERS_DEFAULT_SPRITE 50 +#define GHOST_OTHERS_THEIR_SETTING 100 + +#define GHOST_OTHERS_SIMPLE_NAME "white ghost" +#define GHOST_OTHERS_DEFAULT_SPRITE_NAME "default sprites" +#define GHOST_OTHERS_THEIR_SETTING_NAME "their setting" + +#define GHOST_OTHERS_DEFAULT_OPTION GHOST_OTHERS_THEIR_SETTING + +var/global/list/ghost_others_options = list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DEFAULT_SPRITE, GHOST_OTHERS_THEIR_SETTING) //Same as ghost_accs_options. + +//Bloodcrawling +#define BLOODCRAWL 1 +#define BLOODCRAWL_EAT 2 + +//Color Defines +#define OOC_COLOR "#002eb8" + +///////////////////////////////////// +// atom.appearence_flags shortcuts // +///////////////////////////////////// +//this was added midway thru 510, so it might not exist in some versions, but we can't check by minor verison +#ifndef TILE_BOUND +#error this version of 510 is too old, You must use byond 510.1332 or later. (TILE_BOUND is not defined) +#endif + +// Disabling certain features +#define APPEARANCE_IGNORE_TRANSFORM RESET_TRANSFORM +#define APPEARANCE_IGNORE_COLOUR RESET_COLOR +#define APPEARANCE_IGNORE_CLIENT_COLOUR NO_CLIENT_COLOR +#define APPEARANCE_IGNORE_COLOURING RESET_COLOR|NO_CLIENT_COLOR +#define APPEARANCE_IGNORE_ALPHA RESET_ALPHA +#define APPEARANCE_NORMAL_GLIDE ~LONG_GLIDE + +// Enabling certain features +#define APPEARANCE_CONSIDER_TRANSFORM ~RESET_TRANSFORM +#define APPEARANCE_CONSIDER_COLOUR ~RESET_COLOUR +#define APPEARANCE_CONSIDER_CLIENT_COLOUR ~NO_CLIENT_COLOR +#define APPEARANCE_CONSIDER_COLOURING ~RESET_COLOR|~NO_CLIENT_COLOR +#define APPEARANCE_CONSIDER_ALPHA ~RESET_ALPHA +#define APPEARANCE_LONG_GLIDE LONG_GLIDE + +// Consider these images/atoms as part of the UI/HUD +#define APPEARANCE_UI_IGNORE_ALPHA RESET_COLOR|RESET_TRANSFORM|NO_CLIENT_COLOR|RESET_ALPHA +#define APPEARANCE_UI RESET_COLOR|RESET_TRANSFORM|NO_CLIENT_COLOR + +//Just space +#define SPACE_ICON_STATE "[((x + y) ^ ~(x * y) + z) % 25]" + +//Gun trigger guards +#define TRIGGER_GUARD_ALLOW_ALL -1 +#define TRIGGER_GUARD_NONE 0 +#define TRIGGER_GUARD_NORMAL 1 + +// Plant types +#define PLANT_NORMAL 0 +#define PLANT_WEED 1 +#define PLANT_MUSHROOM 2 +#define PLANT_ALIEN 3 + +// Maploader bounds indices +#define MAP_MINX 1 +#define MAP_MINY 2 +#define MAP_MINZ 3 +#define MAP_MAXX 4 +#define MAP_MAXY 5 +#define MAP_MAXZ 6 + +#define CHECK_DNA_AND_SPECIES(C) if((!(C.dna)) || (!(C.dna.species))) return + +// Evil narsie colour +#define NARSIE_WINDOW_COLOUR "#7D1919" + +//let's just pretend fulltile windows being children of border windows is fine +#define FULLTILE_WINDOW_DIR NORTHEAST + +// Defib stats +#define DEFIB_TIME_LIMIT 120 +#define DEFIB_TIME_LOSS 60 + +// Diagonal movement +#define FIRST_DIAG_STEP 1 +#define SECOND_DIAG_STEP 2 + +//Slime commands defines +#define SLIME_FRIENDSHIP_FOLLOW 3 //Min friendship to order it to follow +#define SLIME_FRIENDSHIP_STOPEAT 5 //Min friendship to order it to stop eating someone +#define SLIME_FRIENDSHIP_STOPEAT_NOANGRY 7 //Min friendship to order it to stop eating someone without it losing friendship +#define SLIME_FRIENDSHIP_STOPCHASE 4 //Min friendship to order it to stop chasing someone (their target) +#define SLIME_FRIENDSHIP_STOPCHASE_NOANGRY 6 //Min friendship to order it to stop chasing someone (their target) without it losing friendship +#define SLIME_FRIENDSHIP_STAY 3 //Min friendship to order it to stay +#define SLIME_FRIENDSHIP_ATTACK 8 //Min friendship to order it to attack + +#define DEADCHAT_ARRIVALRATTLE "arrivalrattle" +#define DEADCHAT_DEATHRATTLE "deathrattle" +#define DEADCHAT_REGULAR "regular-deadchat" + +// Bluespace shelter deploy checks +#define SHELTER_DEPLOY_ALLOWED "allowed" +#define SHELTER_DEPLOY_BAD_TURFS "bad turfs" +#define SHELTER_DEPLOY_BAD_AREA "bad area" +#define SHELTER_DEPLOY_ANCHORED_OBJECTS "anchored objects" + +//debug printing macros +#define debug_world(msg) if (Debug2) world << "DEBUG: [msg]" +#define debug_admins(msg) if (Debug2) admins << "DEBUG: [msg]" +#define debug_world_log(msg) if (Debug2) world.log << "DEBUG: [msg]" + +#define COORD(A) "([A.x],[A.y],[A.z])" +#define INCREMENT_TALLY(L, stat) if(L[stat]){L[stat]++}else{L[stat] = 1} + +// Inventory depth: limits how many nested storage items you can access directly. +// 1: stuff in mob, 2: stuff in backpack, 3: stuff in box in backpack, etc +#define INVENTORY_DEPTH 3 +#define STORAGE_VIEW_DEPTH 2 + + +// Medal names + +#define BOSS_KILL_MEDAL "Killer" + +#define ALL_KILL_MEDAL "Exterminator" //Killing all of x type + +// Score names + +#define LEGION_SCORE "Legion Killed" +#define COLOSSUS_SCORE "Colossus Killed" +#define BUBBLEGUM_SCORE "Bubblegum Killed" +#define DRAKE_SCORE "Drakes Killed" +#define BIRD_SCORE "Hierophants Killed" +#define BOSS_SCORE "Bosses Killed" +#define TENDRIL_CLEAR_SCORE "Tendrils Killed" + + + + // NTNet module-configuration values. Do not change these. If you need to add another use larger number (5..6..7 etc) +#define NTNET_SOFTWAREDOWNLOAD 1 // Downloads of software from NTNet +#define NTNET_PEERTOPEER 2 // P2P transfers of files between devices +#define NTNET_COMMUNICATION 3 // Communication (messaging) +#define NTNET_SYSTEMCONTROL 4 // Control of various systems, RCon, air alarm control, etc. + +// NTNet transfer speeds, used when downloading/uploading a file/program. +#define NTNETSPEED_LOWSIGNAL 0.5 // GQ/s transfer speed when the device is wirelessly connected and on Low signal +#define NTNETSPEED_HIGHSIGNAL 1 // GQ/s transfer speed when the device is wirelessly connected and on High signal +#define NTNETSPEED_ETHERNET 2 // GQ/s transfer speed when the device is using wired connection + + +// Program bitflags +#define PROGRAM_ALL 7 +#define PROGRAM_CONSOLE 1 +#define PROGRAM_LAPTOP 2 +#define PROGRAM_TABLET 4 + +#define PROGRAM_STATE_KILLED 0 +#define PROGRAM_STATE_BACKGROUND 1 +#define PROGRAM_STATE_ACTIVE 2 + +// Caps for NTNet logging. Less than 10 would make logging useless anyway, more than 500 may make the log browser too laggy. Defaults to 100 unless user changes it. +#define MAX_NTNET_LOGS 300 +#define MIN_NTNET_LOGS 10 +//TODO Move to a pref +#define STATION_GOAL_BUDGET 1 + +//Luma coefficients suggested for HDTVs. If you change these, make sure they add up to 1. +#define LUMA_R 0.213 +#define LUMA_G 0.715 +#define LUMA_B 0.072 + + +//attack visual effects +#define ATTACK_EFFECT_PUNCH "punch" +#define ATTACK_EFFECT_KICK "kick" +#define ATTACK_EFFECT_SMASH "smash" +#define ATTACK_EFFECT_CLAW "claw" +#define ATTACK_EFFECT_DISARM "disarm" +#define ATTACK_EFFECT_BITE "bite" +#define ATTACK_EFFECT_MECHFIRE "mech_fire" +#define ATTACK_EFFECT_MECHTOXIN "mech_toxin" + + +//different types of atom colorations +#define ADMIN_COLOUR_PRIORITY 1 //only used by rare effects like greentext coloring mobs and when admins varedit color +#define TEMPORARY_COLOUR_PRIORITY 2 //e.g. purple effect of the revenant on a mob, black effect when mob electrocuted +#define WASHABLE_COLOUR_PRIORITY 3 //color splashed onto an atom (e.g. paint on turf) +#define FIXED_COLOUR_PRIORITY 4 //color inherent to the atom (e.g. blob color) +#define COLOUR_PRIORITY_AMOUNT 4 //how many priority levels there are. \ No newline at end of file diff --git a/code/__DEFINES/pinpointers.dm b/code/__DEFINES/pinpointers.dm new file mode 100644 index 0000000..80403e5 --- /dev/null +++ b/code/__DEFINES/pinpointers.dm @@ -0,0 +1,7 @@ +//I would rather have these in pinpointer.dm, but Malf_Modules.dm is loaded before that file so they need to be here. +#define TRACK_NUKE_DISK 1 //We track the nuclear authentication disk, either to protect it or steal it +#define TRACK_MALF_AI 2 //We track the malfunctioning AI, so we can prevent it from blowing us all up +#define TRACK_INFILTRATOR 3 //We track the Syndicate infiltrator, so we can get back to ship when the nuke's armed +#define TRACK_OPERATIVES 4 //We track the closest operative, so we can regroup when we need to +#define TRACK_ATOM 5 //We track a specified atom, so admins can make us function for events +#define TRACK_COORDINATES 6 //We point towards the specified coordinates on our z-level, so we can navigate diff --git a/code/__DEFINES/pipe_construction.dm b/code/__DEFINES/pipe_construction.dm new file mode 100644 index 0000000..f19c198 --- /dev/null +++ b/code/__DEFINES/pipe_construction.dm @@ -0,0 +1,41 @@ +/* +PIPE CONSTRUCTION DEFINES +Update these any time a path is changed +Construction breaks otherwise +*/ + +//Pipes +#define PIPE_SIMPLE /obj/machinery/atmospherics/pipe/simple +#define PIPE_MANIFOLD /obj/machinery/atmospherics/pipe/manifold +#define PIPE_4WAYMANIFOLD /obj/machinery/atmospherics/pipe/manifold4w +#define PIPE_HE /obj/machinery/atmospherics/pipe/heat_exchanging/simple +#define PIPE_HE_MANIFOLD /obj/machinery/atmospherics/pipe/heat_exchanging/manifold +#define PIPE_HE_4WAYMANIFOLD /obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w +#define PIPE_JUNCTION /obj/machinery/atmospherics/pipe/heat_exchanging/junction +//Unary +#define PIPE_CONNECTOR /obj/machinery/atmospherics/components/unary/portables_connector +#define PIPE_UVENT /obj/machinery/atmospherics/components/unary/vent_pump +#define PIPE_SCRUBBER /obj/machinery/atmospherics/components/unary/vent_scrubber +#define PIPE_HEAT_EXCHANGE /obj/machinery/atmospherics/components/unary/heat_exchanger +//Binary +#define PIPE_PUMP /obj/machinery/atmospherics/components/binary/pump +#define PIPE_PASSIVE_GATE /obj/machinery/atmospherics/components/binary/passive_gate +#define PIPE_VOLUME_PUMP /obj/machinery/atmospherics/components/binary/volume_pump +#define PIPE_MVALVE /obj/machinery/atmospherics/components/binary/valve +#define PIPE_DVALVE /obj/machinery/atmospherics/components/binary/valve/digital +//Trinary +#define PIPE_GAS_FILTER /obj/machinery/atmospherics/components/trinary/filter +#define PIPE_GAS_MIXER /obj/machinery/atmospherics/components/trinary/mixer + +//Disposal piping numbers - do NOT hardcode these, use the defines +#define DISP_PIPE_STRAIGHT 0 +#define DISP_PIPE_BENT 1 +#define DISP_JUNCTION 2 +#define DISP_JUNCTION_FLIP 3 +#define DISP_YJUNCTION 4 +#define DISP_END_TRUNK 5 +#define DISP_END_BIN 6 +#define DISP_END_OUTLET 7 +#define DISP_END_CHUTE 8 +#define DISP_SORTJUNCTION 9 +#define DISP_SORTJUNCTION_FLIP 10 \ No newline at end of file diff --git a/code/__DEFINES/preferences.dm b/code/__DEFINES/preferences.dm new file mode 100644 index 0000000..50af9c4 --- /dev/null +++ b/code/__DEFINES/preferences.dm @@ -0,0 +1,33 @@ + +//Preference toggles +#define SOUND_ADMINHELP 1 +#define SOUND_MIDI 2 +#define SOUND_AMBIENCE 4 +#define SOUND_LOBBY 8 +#define MEMBER_PUBLIC 16 +#define INTENT_STYLE 32 +#define MIDROUND_ANTAG 64 +#define SOUND_INSTRUMENTS 128 +#define SOUND_SHIP_AMBIENCE 256 +#define SOUND_PRAYERS 512 +#define ANNOUNCE_LOGIN 1024 +#define SOUND_ANNOUNCEMENTS 2048 +#define DISABLE_DEATHRATTLE 4096 +#define DISABLE_ARRIVALRATTLE 8192 + +#define TOGGLES_DEFAULT (SOUND_ADMINHELP|SOUND_MIDI|SOUND_AMBIENCE|SOUND_LOBBY|MEMBER_PUBLIC|INTENT_STYLE|MIDROUND_ANTAG|SOUND_INSTRUMENTS|SOUND_SHIP_AMBIENCE|SOUND_PRAYERS|SOUND_ANNOUNCEMENTS) + +//Chat toggles +#define CHAT_OOC 1 +#define CHAT_DEAD 2 +#define CHAT_GHOSTEARS 4 +#define CHAT_GHOSTSIGHT 8 +#define CHAT_PRAYER 16 +#define CHAT_RADIO 32 +#define CHAT_PULLR 64 +#define CHAT_GHOSTWHISPER 128 +#define CHAT_GHOSTPDA 256 +#define CHAT_GHOSTRADIO 512 + +#define TOGGLES_DEFAULT_CHAT (CHAT_OOC|CHAT_DEAD|CHAT_GHOSTEARS|CHAT_GHOSTSIGHT|CHAT_PRAYER|CHAT_RADIO|CHAT_PULLR|CHAT_GHOSTWHISPER|CHAT_GHOSTPDA|CHAT_GHOSTRADIO) + diff --git a/code/__DEFINES/qdel.dm b/code/__DEFINES/qdel.dm new file mode 100644 index 0000000..78c0b53 --- /dev/null +++ b/code/__DEFINES/qdel.dm @@ -0,0 +1,15 @@ +//defines that give qdel hints. these can be given as a return in destory() or by calling + + +#define QDEL_HINT_QUEUE 0 //qdel should queue the object for deletion. +#define QDEL_HINT_LETMELIVE 1 //qdel should let the object live after calling destory. +#define QDEL_HINT_IWILLGC 2 //functionally the same as the above. qdel should assume the object will gc on its own, and not check it. +#define QDEL_HINT_HARDDEL 3 //qdel should assume this object won't gc, and queue a hard delete using a hard reference. +#define QDEL_HINT_HARDDEL_NOW 4 //qdel should assume this object won't gc, and hard del it post haste. +#define QDEL_HINT_PUTINPOOL 5 //qdel will put this object in the atom pool. +#define QDEL_HINT_FINDREFERENCE 6 //functionally identical to QDEL_HINT_QUEUE if TESTING is not enabled in _compiler_options.dm. + //if TESTING is enabled, qdel will call this object's find_references() verb. +//defines for the gc_destroyed var + +#define GC_QUEUED_FOR_QUEUING -1 +#define GC_QUEUED_FOR_HARD_DEL -2 \ No newline at end of file diff --git a/code/__DEFINES/radio.dm b/code/__DEFINES/radio.dm new file mode 100644 index 0000000..edacfb8 --- /dev/null +++ b/code/__DEFINES/radio.dm @@ -0,0 +1,5 @@ +#define MIN_FREE_FREQ 1201 +#define MAX_FREE_FREQ 1599 + +#define MIN_FREQ 1441 +#define MAX_FREQ 1489 \ No newline at end of file diff --git a/code/__DEFINES/reagents.dm b/code/__DEFINES/reagents.dm new file mode 100644 index 0000000..3e81a67 --- /dev/null +++ b/code/__DEFINES/reagents.dm @@ -0,0 +1,3 @@ +#define SOLID 1 +#define LIQUID 2 +#define GAS 3 \ No newline at end of file diff --git a/code/__DEFINES/role_preferences.dm b/code/__DEFINES/role_preferences.dm new file mode 100644 index 0000000..5150294 --- /dev/null +++ b/code/__DEFINES/role_preferences.dm @@ -0,0 +1,53 @@ + + +//Values for antag preferences, event roles, etc. unified here + + + +//These are synced with the Database, if you change the values of the defines +//then you MUST update the database! +#define ROLE_TRAITOR "traitor" +#define ROLE_OPERATIVE "operative" +#define ROLE_CHANGELING "changeling" +#define ROLE_WIZARD "wizard" +#define ROLE_MALF "malf AI" +#define ROLE_REV "revolutionary" +#define ROLE_ALIEN "xenomorph" +#define ROLE_PAI "pAI" +#define ROLE_CULTIST "cultist" +#define ROLE_BLOB "blob" +#define ROLE_NINJA "space ninja" +#define ROLE_MONKEY "monkey" +#define ROLE_GANG "gangster" +#define ROLE_ABDUCTOR "abductor" +#define ROLE_REVENANT "revenant" +#define ROLE_DEVIL "devil" +#define ROLE_SERVANT_OF_RATVAR "servant of Ratvar" + +//Missing assignment means it's not a gamemode specific role, IT'S NOT A BUG OR ERROR. +//The gamemode specific ones are just so the gamemodes can query whether a player is old enough +//(in game days played) to play that role +var/global/list/special_roles = list( + ROLE_TRAITOR = /datum/game_mode/traitor, + ROLE_OPERATIVE = /datum/game_mode/nuclear, + ROLE_CHANGELING = /datum/game_mode/changeling, + ROLE_WIZARD = /datum/game_mode/wizard, + ROLE_MALF, + ROLE_REV = /datum/game_mode/revolution, + ROLE_ALIEN, + ROLE_PAI, + ROLE_CULTIST = /datum/game_mode/cult, + ROLE_BLOB = /datum/game_mode/blob, + ROLE_NINJA, + ROLE_MONKEY = /datum/game_mode/monkey, + ROLE_GANG = /datum/game_mode/gang, + ROLE_REVENANT, + ROLE_ABDUCTOR = /datum/game_mode/abduction, + ROLE_DEVIL = /datum/game_mode/devil, + ROLE_SERVANT_OF_RATVAR = /datum/game_mode/clockwork_cult, +) + +//Job defines for what happens when you fail to qualify for any job during job selection +#define BEASSISTANT 1 +#define BERANDOMJOB 2 +#define RETURNTOLOBBY 3 \ No newline at end of file diff --git a/code/__DEFINES/say.dm b/code/__DEFINES/say.dm new file mode 100644 index 0000000..070837b --- /dev/null +++ b/code/__DEFINES/say.dm @@ -0,0 +1,35 @@ +/* + Defines for use in saycode and text formatting. + Currently contains speech spans and message modes +*/ + +//Message modes. Each one defines a radio channel, more or less. +#define MODE_HEADSET "headset" +#define MODE_ROBOT "robot" +#define MODE_R_HAND "right hand" +#define MODE_L_HAND "left hand" +#define MODE_INTERCOM "intercom" +#define MODE_BINARY "binary" +#define MODE_WHISPER "whisper" +#define MODE_DEPARTMENT "department" +#define MODE_ALIEN "alientalk" +#define MODE_HOLOPAD "holopad" +#define MODE_CHANGELING "changeling" + +//Spans. Robot speech, italics, etc. Applied in compose_message(). +#define SPAN_ROBOT "robot" +#define SPAN_YELL "yell" +#define SPAN_ITALICS "italics" +#define SPAN_SANS "sans" +#define SPAN_PAPYRUS "papyrus" +#define SPAN_REALLYBIG "reallybig" +#define SPAN_COMMAND "command_headset" +#define SPAN_CLOWN "clown" + +//bitflag #defines for return value of the radio() proc. +#define ITALICS 1 +#define REDUCE_RANGE 2 +#define NOPASS 4 + +// A link given to ghost alice to follow bob +#define FOLLOW_LINK(alice, bob) "(F)" diff --git a/code/__DEFINES/shuttles.dm b/code/__DEFINES/shuttles.dm new file mode 100644 index 0000000..caf1723 --- /dev/null +++ b/code/__DEFINES/shuttles.dm @@ -0,0 +1,39 @@ +//shuttle mode defines +#define SHUTTLE_IDLE "idle" +#define SHUTTLE_IGNITING "igniting" +#define SHUTTLE_RECALL "recall" +#define SHUTTLE_CALL "call" +#define SHUTTLE_DOCKED "docked" +#define SHUTTLE_STRANDED "stranded" +#define SHUTTLE_ESCAPE "escape" +#define SHUTTLE_ENDGAME "endgame: game over" + +#define EMERGENCY_IDLE_OR_RECALLED (SSshuttle.emergency && ((SSshuttle.emergency.mode == SHUTTLE_IDLE) || (SSshuttle.emergency.mode == SHUTTLE_RECALL))) +#define EMERGENCY_ESCAPED_OR_ENDGAMED (SSshuttle.emergency && ((SSshuttle.emergency.mode == SHUTTLE_ESCAPE) || (SSshuttle.emergency.mode == SHUTTLE_ENDGAME))) +#define EMERGENCY_AT_LEAST_DOCKED (SSshuttle.emergency && SSshuttle.emergency.mode != SHUTTLE_IDLE && SSshuttle.emergency.mode != SHUTTLE_RECALL && SSshuttle.emergency.mode != SHUTTLE_CALL) + +// Shuttle return values +#define SHUTTLE_CAN_DOCK "can_dock" +#define SHUTTLE_NOT_A_DOCKING_PORT "not_a_docking_port" +#define SHUTTLE_DWIDTH_TOO_LARGE "docking_width_too_large" +#define SHUTTLE_WIDTH_TOO_LARGE "width_too_large" +#define SHUTTLE_DHEIGHT_TOO_LARGE "docking_height_too_large" +#define SHUTTLE_HEIGHT_TOO_LARGE "height_too_large" +#define SHUTTLE_ALREADY_DOCKED "we_are_already_docked" +#define SHUTTLE_SOMEONE_ELSE_DOCKED "someone_else_docked" + +//Launching Shuttles to Centcomm +#define NOLAUNCH -1 +#define UNLAUNCHED 0 +#define ENDGAME_LAUNCHED 1 +#define EARLY_LAUNCHED 2 + +// Ripples, effects that signal a shuttle's arrival +#define SHUTTLE_RIPPLE_TIME 100 +#define SHUTTLE_RIPPLE_FADEIN 50 + +#define TRANSIT_REQUEST 1 +#define TRANSIT_READY 2 +#define TRANSIT_FULL 3 + +#define SHUTTLE_TRANSIT_BORDER 8 diff --git a/code/__DEFINES/sight.dm b/code/__DEFINES/sight.dm new file mode 100644 index 0000000..ad5217c --- /dev/null +++ b/code/__DEFINES/sight.dm @@ -0,0 +1,27 @@ + +#define SEE_INVISIBLE_MINIMUM 5 + +#define SEE_INVISIBLE_NOLIGHTING 15 //to not see the lighting objects. Used for nightvision and observer with darkness toggled. + +#define INVISIBILITY_LIGHTING 20 + +#define SEE_INVISIBLE_LIVING 25 + +#define SEE_INVISIBLE_LEVEL_ONE 35 //currently unused +#define INVISIBILITY_LEVEL_ONE 35 //currently unused + +#define SEE_INVISIBLE_LEVEL_TWO 45 //currently unused +#define INVISIBILITY_LEVEL_TWO 45 //currently unused + +#define INVISIBILITY_OBSERVER 60 +#define SEE_INVISIBLE_OBSERVER 60 + +#define INVISIBILITY_MAXIMUM 100 //the maximum allowed for "real" objects + +#define INVISIBILITY_ABSTRACT 101 //only used for abstract objects (e.g. spacevine_controller), things that are not really there. + + +#define BORGMESON 1 +#define BORGTHERM 2 +#define BORGXRAY 4 +#define BORGMATERIAL 8 diff --git a/code/__DEFINES/stat.dm b/code/__DEFINES/stat.dm new file mode 100644 index 0000000..9711fa9 --- /dev/null +++ b/code/__DEFINES/stat.dm @@ -0,0 +1,26 @@ +/* + Used with the various stat variables (mob, machines) +*/ + +//mob/var/stat things +#define CONSCIOUS 0 +#define UNCONSCIOUS 1 +#define DEAD 2 + +//mob disabilities stat + +#define BLIND 1 +#define MUTE 2 +#define DEAF 4 +#define NEARSIGHT 8 +#define FAT 32 +#define HUSK 64 +#define NOCLONE 128 +#define CLUMSY 256 + +// bitflags for machine stat variable +#define BROKEN 1 +#define NOPOWER 2 +#define POWEROFF 4 // tbd +#define MAINT 8 // under maintaince +#define EMPED 16 // temporary broken by EMP pulse diff --git a/code/__DEFINES/status_effects.dm b/code/__DEFINES/status_effects.dm new file mode 100644 index 0000000..4d8d648 --- /dev/null +++ b/code/__DEFINES/status_effects.dm @@ -0,0 +1,19 @@ + +//These are all the different status effects. Use the paths for each effect in the defines. + +#define BASIC_STATUS_EFFECT /datum/status_effect //Has no effect. + +/////////// +// BUFFS // +/////////// + +#define STATUS_EFFECT_SHADOW_MEND /datum/status_effect/shadow_mend //Quick, powerful heal that deals damage afterwards. Heals 15 brute/burn every second for 3 seconds. +#define STATUS_EFFECT_VOID_PRICE /datum/status_effect/void_price //The price of healing yourself with void energy. Deals 3 brute damage every 3 seconds for 30 seconds. + +#define STATUS_EFFECT_VANGUARD /datum/status_effect/vanguard_shield //Grants temporary stun absorption, but will stun the user based on how many stuns they absorbed. +#define STATUS_EFFECT_INATHNEQS_ENDOWMENT /datum/status_effect/inathneqs_endowment //A 15-second invulnerability and stun absorption, granted by Inath-neq. +#define STATUS_EFFECT_WRAITHSPECS /datum/status_effect/wraith_spectacles + +///////////// +// DEBUFFS // +///////////// diff --git a/code/__DEFINES/tablecrafting.dm b/code/__DEFINES/tablecrafting.dm new file mode 100644 index 0000000..a5dc040 --- /dev/null +++ b/code/__DEFINES/tablecrafting.dm @@ -0,0 +1,20 @@ + +#define CAT_NONE "" +#define CAT_WEAPON "Weaponry" +#define CAT_AMMO "Ammunition" +#define CAT_ROBOT "Robots" +#define CAT_MISC "Misc" +#define CAT_PRIMAL "Tribal" +#define CAT_BREAD "Breads" +#define CAT_BURGER "Burgers" +#define CAT_CAKE "Cakes" +#define CAT_EGG "Egg-Based Food" +#define CAT_MEAT "Meats" +#define CAT_MISCFOOD "Misc. Food" +#define CAT_PASTRY "Pastries" +#define CAT_PIE "Pies" +#define CAT_PIZZA "Pizzas" +#define CAT_SALAD "Salads" +#define CAT_SANDWICH "Sandwiches" +#define CAT_SOUP "Soups" +#define CAT_SPAGHETTI "Spaghettis" diff --git a/code/__DEFINES/tgui.dm b/code/__DEFINES/tgui.dm new file mode 100644 index 0000000..5ba0096 --- /dev/null +++ b/code/__DEFINES/tgui.dm @@ -0,0 +1,4 @@ +#define UI_INTERACTIVE 2 // Green/Interactive +#define UI_UPDATE 1 // Orange/Updates Only +#define UI_DISABLED 0 // Red/Disabled +#define UI_CLOSE -1 // Closed \ No newline at end of file diff --git a/code/__DEFINES/tick.dm b/code/__DEFINES/tick.dm new file mode 100644 index 0000000..03ba94a --- /dev/null +++ b/code/__DEFINES/tick.dm @@ -0,0 +1,7 @@ +#define TICK_LIMIT_RUNNING 80 +#define TICK_LIMIT_TO_RUN 78 +#define TICK_LIMIT_MC 70 +#define TICK_LIMIT_MC_INIT 98 + +#define TICK_CHECK ( world.tick_usage > CURRENT_TICKLIMIT ? stoplag() : 0 ) +#define CHECK_TICK if (world.tick_usage > CURRENT_TICKLIMIT) stoplag() diff --git a/code/__DEFINES/wires.dm b/code/__DEFINES/wires.dm new file mode 100644 index 0000000..fce2ad4 --- /dev/null +++ b/code/__DEFINES/wires.dm @@ -0,0 +1,44 @@ +#define WIRE_DUD_PREFIX "__dud" +#define WIRE_ACTIVATE "Activate" +#define WIRE_AI "AI Connection" +#define WIRE_ALARM "Alarm" +#define WIRE_AVOIDANCE "Avoidance" +#define WIRE_BACKUP1 "Auxillary Power 1" +#define WIRE_BACKUP2 "Auxillary Power 2" +#define WIRE_BEACON "Beacon" +#define WIRE_BOLTS "Bolts" +#define WIRE_BOOM "Boom" +#define WIRE_CAMERA "Camera" +#define WIRE_CONTRABAND "Contraband" +#define WIRE_DELAY "Delay" +#define WIRE_DISABLE "Disable" +#define WIRE_DISARM "Disarm" +#define WIRE_HACK "Hack" +#define WIRE_IDSCAN "ID Scan" +#define WIRE_INTERFACE "Interface" +#define WIRE_LAWSYNC "AI Law Synchronization" +#define WIRE_LIGHT "Bolt Lights" +#define WIRE_LIMIT "Limiter" +#define WIRE_LOADCHECK "Load Check" +#define WIRE_LOCKDOWN "Lockdown" +#define WIRE_MOTOR1 "Motor 1" +#define WIRE_MOTOR2 "Motor 2" +#define WIRE_OPEN "Open" +#define WIRE_PANIC "Panic Siphon" +#define WIRE_POWER "Power" +#define WIRE_POWER1 "Main Power 1" +#define WIRE_POWER2 "Main Power 2" +#define WIRE_PROCEED "Proceed" +#define WIRE_RX "Recieve" +#define WIRE_SAFETY "Safety" +#define WIRE_SHOCK "High Voltage Ground" +#define WIRE_SIGNAL "Signal" +#define WIRE_SPEAKER "Speaker" +#define WIRE_STRENGTH "Strength" +#define WIRE_THROW "Throw" +#define WIRE_TIMING "Timing" +#define WIRE_TX "Transmit" +#define WIRE_UNBOLT "Unbolt" +#define WIRE_ZAP "High Voltage Circuit" +#define WIRE_ZAP1 "High Voltage Circuit 1" +#define WIRE_ZAP2 "High Voltage Circuit 2" diff --git a/code/__HELPERS/_logging.dm b/code/__HELPERS/_logging.dm new file mode 100644 index 0000000..b6f7407 --- /dev/null +++ b/code/__HELPERS/_logging.dm @@ -0,0 +1,81 @@ +//print a warning message to world.log +#define WARNING(MSG) warning("[MSG] in [__FILE__] at line [__LINE__] src: [src] usr: [usr].") +/proc/warning(msg) + world.log << "## WARNING: [msg]" + +//not an error or a warning, but worth to mention on the world log, just in case. +#define NOTICE(MSG) notice(MSG) +/proc/notice(msg) + world.log << "## NOTICE: [msg]" + +//print a testing-mode debug message to world.log +/proc/testing(msg) +#ifdef TESTING + world.log << "## TESTING: [msg]" +#endif + +/proc/log_admin(text) + admin_log.Add(text) + if (config.log_admin) + diary << "\[[time_stamp()]]ADMIN: [text]" + +/proc/log_adminsay(text) + if (config.log_adminchat) + log_admin("ASAY: [text]") + +/proc/log_dsay(text) + if (config.log_adminchat) + log_admin("DSAY: [text]") + +/proc/log_game(text) + if (config.log_game) + diary << "\[[time_stamp()]]GAME: [text]" + +/proc/log_vote(text) + if (config.log_vote) + diary << "\[[time_stamp()]]VOTE: [text]" + +/proc/log_access(text) + if (config.log_access) + diary << "\[[time_stamp()]]ACCESS: [text]" + +/proc/log_say(text) + if (config.log_say) + diary << "\[[time_stamp()]]SAY: [text]" + +/proc/log_prayer(text) + if (config.log_prayer) + diary << "\[[time_stamp()]]PRAY: [text]" + +/proc/log_law(text) + if (config.log_law) + diary << "\[[time_stamp()]]LAW: [text]" + +/proc/log_ooc(text) + if (config.log_ooc) + diary << "\[[time_stamp()]]OOC: [text]" + +/proc/log_whisper(text) + if (config.log_whisper) + diary << "\[[time_stamp()]]WHISPER: [text]" + +/proc/log_emote(text) + if (config.log_emote) + diary << "\[[time_stamp()]]EMOTE: [text]" + +/proc/log_attack(text) + if (config.log_attack) + diaryofmeanpeople << "\[[time_stamp()]]ATTACK: [text]" + +/proc/log_pda(text) + if (config.log_pda) + diary << "\[[time_stamp()]]PDA: [text]" + +/proc/log_comment(text) + if (config.log_pda) + //reusing the PDA option because I really don't think news comments are worth a config option + diary << "\[[time_stamp()]]COMMENT: [text]" + +/proc/log_chat(text) + if (config.log_pda) + diary << "\[[time_stamp()]]CHAT: [text]" \ No newline at end of file diff --git a/code/__HELPERS/_string_lists.dm b/code/__HELPERS/_string_lists.dm new file mode 100644 index 0000000..b101efa --- /dev/null +++ b/code/__HELPERS/_string_lists.dm @@ -0,0 +1,41 @@ +#define pick_list(FILE, KEY) (pick(strings(FILE, KEY))) +#define pick_list_replacements(FILE, KEY) (strings_replacement(FILE, KEY)) +#define json_load(FILE) (json_decode(file2text(FILE))) + +var/global/list/string_cache +var/global/string_filename_current_key + + +/proc/strings_replacement(filename, key) + load_strings_file(filename) + + if((filename in string_cache) && (key in string_cache[filename])) + var/response = pick(string_cache[filename][key]) + var/regex/r = regex("@pick\\((\\D+?)\\)", "g") + response = r.Replace(response, /proc/strings_subkey_lookup) + return response + else + CRASH("strings list not found: strings/[filename], index=[key]") + +/proc/strings(filename as text, key as text) + load_strings_file(filename) + if((filename in string_cache) && (key in string_cache[filename])) + return string_cache[filename][key] + else + CRASH("strings list not found: strings/[filename], index=[key]") + +/proc/strings_subkey_lookup(match, group1) + return pick_list(string_filename_current_key, group1) + +/proc/load_strings_file(filename) + string_filename_current_key = filename + if(filename in string_cache) + return //no work to do + + if(!string_cache) + string_cache = new + + if(fexists("strings/[filename]")) + string_cache[filename] = json_load("strings/[filename]") + else + CRASH("file not found: strings/[filename]") diff --git a/code/__HELPERS/bandetect.dm b/code/__HELPERS/bandetect.dm new file mode 100644 index 0000000..61698c5 --- /dev/null +++ b/code/__HELPERS/bandetect.dm @@ -0,0 +1,38 @@ +#define YOUNG 4 + + +/client/proc/join_date_check(y,m,d) + var/DBQuery/query = dbcon.NewQuery("SELECT DATEDIFF(Now(),'[y]-[m]-[d]')") + + if(!query.Execute()) + world.log << "SQL ERROR doing datediff. Error : \[[query.ErrorMsg()]\]\n" + return FALSE + + if(query.NextRow()) + var/diff = text2num(query.item[1]) + if(config.use_account_age_for_jobs) + player_age = max(0,diff) //So job code soesn't freak out if they are time traveling. + if(diff < YOUNG) + var/msg = "(IP: [address], ID: [computer_id]) is a new BYOND account made on [y]-[m]-[d]." + if(diff < 0) + msg += " They are also apparently from the future." + message_admins("[key_name_admin(src)] [msg]") + return TRUE +#undef YOUNG + + +/client/proc/findJoinDate() + var/http[] = world.Export("http://byond.com/members/[src.ckey]?format=text") + if(!http) + world.log << "Failed to connect to byond age check for [src.ckey]" + return FALSE + + var/F = file2text(http["CONTENT"]) + if(F) + var/regex/R = regex("joined = \"(\\d{4})-(\\d{2})-(\\d{2})\"") + if(!R.Find(F)) + CRASH("Age check regex failed") + var/y = R.group[1] + var/m = R.group[2] + var/d = R.group[3] + return join_date_check(y,m,d) diff --git a/code/__HELPERS/cmp.dm b/code/__HELPERS/cmp.dm new file mode 100644 index 0000000..1cad2a5 --- /dev/null +++ b/code/__HELPERS/cmp.dm @@ -0,0 +1,47 @@ +/proc/cmp_numeric_dsc(a,b) + return b - a + +/proc/cmp_numeric_asc(a,b) + return a - b + +/proc/cmp_text_asc(a,b) + return sorttext(b,a) + +/proc/cmp_text_dsc(a,b) + return sorttext(a,b) + +/proc/cmp_name_asc(atom/a, atom/b) + return sorttext(b.name, a.name) + +/proc/cmp_name_dsc(atom/a, atom/b) + return sorttext(a.name, b.name) + +var/cmp_field = "name" +/proc/cmp_records_asc(datum/data/record/a, datum/data/record/b) + return sorttext(b.fields[cmp_field], a.fields[cmp_field]) + +/proc/cmp_records_dsc(datum/data/record/a, datum/data/record/b) + return sorttext(a.fields[cmp_field], b.fields[cmp_field]) + +/proc/cmp_ckey_asc(client/a, client/b) + return sorttext(b.ckey, a.ckey) + +/proc/cmp_ckey_dsc(client/a, client/b) + return sorttext(a.ckey, b.ckey) + +/proc/cmp_subsystem_init(datum/subsystem/a, datum/subsystem/b) + return b.init_order - a.init_order + +/proc/cmp_subsystem_display(datum/subsystem/a, datum/subsystem/b) + if(a.display_order == b.display_order) + return sorttext(b.name, a.name) + return a.display_order - b.display_order + +/proc/cmp_subsystem_priority(datum/subsystem/a, datum/subsystem/b) + return a.priority - b.priority + +/proc/cmp_clientcolour_priority(datum/client_colour/A, datum/client_colour/B) + return B.priority - A.priority + +/proc/cmp_clockscripture_priority(datum/clockwork_scripture/A, datum/clockwork_scripture/B) + return initial(A.sort_priority) - initial(B.sort_priority) \ No newline at end of file diff --git a/code/__HELPERS/files.dm b/code/__HELPERS/files.dm new file mode 100644 index 0000000..f16e5f9 --- /dev/null +++ b/code/__HELPERS/files.dm @@ -0,0 +1,78 @@ +//checks if a file exists and contains text +//returns text as a string if these conditions are met +/proc/return_file_text(filename) + if(fexists(filename) == 0) + throw EXCEPTION("return_file_text(): File not found") + return + + var/text = file2text(filename) + if(!text) + throw EXCEPTION("return_file_text(): File empty") + return + + return text + +//Sends resource files to client cache +/client/proc/getFiles() + for(var/file in args) + src << browse_rsc(file) + +/client/proc/browse_files(root="data/logs/", max_iterations=10, list/valid_extensions=list(".txt",".log",".htm")) + var/path = root + + for(var/i=0, iError: browse_files(): File not found/Invalid file([path]).
" + return + + return path + +#define FTPDELAY 200 //200 tick delay to discourage spam +/* This proc is a failsafe to prevent spamming of file requests. + It is just a timer that only permits a download every [FTPDELAY] ticks. + This can be changed by modifying FTPDELAY's value above. + + PLEASE USE RESPONSIBLY, Some log files can reach sizes of 4MB! */ +/client/proc/file_spam_check() + var/time_to_wait = fileaccess_timer - world.time + if(time_to_wait > 0) + src << "Error: file_spam_check(): Spam. Please wait [round(time_to_wait/10)] seconds." + return 1 + fileaccess_timer = world.time + FTPDELAY + return 0 +#undef FTPDELAY + +/proc/pathwalk(path) + var/list/jobs = list(path) + var/list/filenames = list() + + while(jobs.len) + var/current_dir = pop(jobs) + var/list/new_filenames = flist(current_dir) + for(var/new_filename in new_filenames) + // if filename ends in / it is a directory, append to currdir + if(findtext(new_filename, "/", -1)) + jobs += current_dir + new_filename + else + filenames += current_dir + new_filename + return filenames + +/proc/pathflatten(path) + return replacetext(path, "/", "_") diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm new file mode 100644 index 0000000..e04f63c --- /dev/null +++ b/code/__HELPERS/game.dm @@ -0,0 +1,478 @@ +//supposedly the fastest way to do this according to https://gist.github.com/Giacom/be635398926bb463b42a +#define RANGE_TURFS(RADIUS, CENTER) \ + block( \ + locate(max(CENTER.x-(RADIUS),1), max(CENTER.y-(RADIUS),1), CENTER.z), \ + locate(min(CENTER.x+(RADIUS),world.maxx), min(CENTER.y+(RADIUS),world.maxy), CENTER.z) \ + ) + +#define Z_TURFS(ZLEVEL) block(locate(1,1,ZLEVEL), locate(world.maxx, world.maxy, ZLEVEL)) + +/proc/get_area(atom/A) + if (!istype(A)) + return + for(A, A && !isarea(A), A=A.loc); //semicolon is for the empty statement + return A + +/proc/get_area_name(atom/X) + var/area/Y = get_area(X) + return Y.name + +/proc/get_area_master(O) + var/area/A = get_area(O) + if(A && A.master) + A = A.master + return A + +/proc/get_area_by_name(N) //get area by its name + for(var/area/A in world) + if(A.name == N) + return A + return 0 + +/proc/get_areas_in_range(dist=0, atom/center=usr) + if(!dist) + var/turf/T = get_turf(center) + return T ? list(T.loc) : list() + if(!center) + return list() + + var/list/turfs = RANGE_TURFS(dist, center) + var/list/areas = list() + for(var/V in turfs) + var/turf/T = V + areas |= T.loc + return areas + +// Like view but bypasses luminosity check + +/proc/get_hear(range, atom/source) + + var/lum = source.luminosity + source.luminosity = 6 + + var/list/heard = view(range, source) + source.luminosity = lum + + return heard + +/proc/alone_in_area(area/the_area, mob/must_be_alone, check_type = /mob/living/carbon) + var/area/our_area = get_area_master(the_area) + for(var/C in living_mob_list) + if(!istype(C, check_type)) + continue + if(C == must_be_alone) + continue + if(our_area == get_area_master(C)) + return 0 + return 1 + +//We used to use linear regression to approximate the answer, but Mloc realized this was actually faster. +//And lo and behold, it is, and it's more accurate to boot. +/proc/cheap_hypotenuse(Ax,Ay,Bx,By) + return sqrt(abs(Ax - Bx)**2 + abs(Ay - By)**2) //A squared + B squared = C squared + +/proc/circlerange(center=usr,radius=3) + + var/turf/centerturf = get_turf(center) + var/list/turfs = new/list() + var/rsq = radius * (radius+0.5) + + for(var/atom/T in range(radius, centerturf)) + var/dx = T.x - centerturf.x + var/dy = T.y - centerturf.y + if(dx*dx + dy*dy <= rsq) + turfs += T + + //turfs += centerturf + return turfs + +/proc/circleview(center=usr,radius=3) + + var/turf/centerturf = get_turf(center) + var/list/atoms = new/list() + var/rsq = radius * (radius+0.5) + + for(var/atom/A in view(radius, centerturf)) + var/dx = A.x - centerturf.x + var/dy = A.y - centerturf.y + if(dx*dx + dy*dy <= rsq) + atoms += A + + //turfs += centerturf + return atoms + +/proc/get_dist_euclidian(atom/Loc1 as turf|mob|obj,atom/Loc2 as turf|mob|obj) + var/dx = Loc1.x - Loc2.x + var/dy = Loc1.y - Loc2.y + + var/dist = sqrt(dx**2 + dy**2) + + return dist + +/proc/circlerangeturfs(center=usr,radius=3) + + var/turf/centerturf = get_turf(center) + var/list/turfs = new/list() + var/rsq = radius * (radius+0.5) + + for(var/turf/T in range(radius, centerturf)) + var/dx = T.x - centerturf.x + var/dy = T.y - centerturf.y + if(dx*dx + dy*dy <= rsq) + turfs += T + return turfs + +/proc/circleviewturfs(center=usr,radius=3) //Is there even a diffrence between this proc and circlerangeturfs()? + + var/turf/centerturf = get_turf(center) + var/list/turfs = new/list() + var/rsq = radius * (radius+0.5) + + for(var/turf/T in view(radius, centerturf)) + var/dx = T.x - centerturf.x + var/dy = T.y - centerturf.y + if(dx*dx + dy*dy <= rsq) + turfs += T + return turfs + + +//This is the new version of recursive_mob_check, used for say(). +//The other proc was left intact because morgue trays use it. +//Sped this up again for real this time +/proc/recursive_hear_check(O) + var/list/processing_list = list(O) + . = list() + while(processing_list.len) + var/atom/A = processing_list[1] + if(A.flags & HEAR) + . += A + processing_list.Cut(1, 2) + processing_list += A.contents + +// Better recursive loop, technically sort of not actually recursive cause that shit is retarded, enjoy. +//No need for a recursive limit either +/proc/recursive_mob_check(atom/O,client_check=1,sight_check=1,include_radio=1) + + var/list/processing_list = list(O) + var/list/processed_list = list() + var/list/found_mobs = list() + + while(processing_list.len) + + var/atom/A = processing_list[1] + var/passed = 0 + + if(ismob(A)) + var/mob/A_tmp = A + passed=1 + + if(client_check && !A_tmp.client) + passed=0 + + if(sight_check && !isInSight(A_tmp, O)) + passed=0 + + else if(include_radio && istype(A, /obj/item/device/radio)) + passed=1 + + if(sight_check && !isInSight(A, O)) + passed=0 + + if(passed) + found_mobs |= A + + for(var/atom/B in A) + if(!processed_list[B]) + processing_list |= B + + processing_list.Cut(1, 2) + processed_list[A] = A + + return found_mobs + + +/proc/get_hearers_in_view(R, atom/source) + // Returns a list of hearers in view(R) from source (ignoring luminosity). Used in saycode. + var/turf/T = get_turf(source) + var/list/hear = list() + + if(!T) + return hear + + var/list/range = get_hear(R, T) + for(var/atom/movable/A in range) + hear |= recursive_hear_check(A) + + return hear + + +/proc/get_mobs_in_radio_ranges(list/obj/item/device/radio/radios) + + set background = BACKGROUND_ENABLED + + . = list() + // Returns a list of mobs who can hear any of the radios given in @radios + for(var/obj/item/device/radio/R in radios) + if(R) + . |= get_hearers_in_view(R.canhear_range, R) + + +#define SIGN(X) ((X<0)?-1:1) + +/proc/inLineOfSight(X1,Y1,X2,Y2,Z=1,PX1=16.5,PY1=16.5,PX2=16.5,PY2=16.5) + var/turf/T + if(X1==X2) + if(Y1==Y2) + return 1 //Light cannot be blocked on same tile + else + var/s = SIGN(Y2-Y1) + Y1+=s + while(Y1!=Y2) + T=locate(X1,Y1,Z) + if(T.opacity) + return 0 + Y1+=s + else + var/m=(32*(Y2-Y1)+(PY2-PY1))/(32*(X2-X1)+(PX2-PX1)) + var/b=(Y1+PY1/32-0.015625)-m*(X1+PX1/32-0.015625) //In tiles + var/signX = SIGN(X2-X1) + var/signY = SIGN(Y2-Y1) + if(X1 abs (dx)) //slope is above 1:1 (move horizontally in a tie) + if(dy > 0) + return get_step(start, SOUTH) + else + return get_step(start, NORTH) + else + if(dx > 0) + return get_step(start, WEST) + else + return get_step(start, EAST) + +/proc/try_move_adjacent(atom/movable/AM) + var/turf/T = get_turf(AM) + for(var/direction in cardinal) + if(AM.Move(get_step(T, direction))) + break + +/proc/get_mob_by_key(key) + for(var/mob/M in mob_list) + if(M.ckey == lowertext(key)) + return M + return null + +// Will return a list of active candidates. It increases the buffer 5 times until it finds a candidate which is active within the buffer. + +/proc/get_candidates(be_special_type, afk_bracket=3000, var/jobbanType) + var/list/candidates = list() + // Keep looping until we find a non-afk candidate within the time bracket (we limit the bracket to 10 minutes (6000)) + while(!candidates.len && afk_bracket < 6000) + for(var/mob/dead/observer/G in player_list) + if(G.client != null) + if(!(G.mind && G.mind.current && G.mind.current.stat != DEAD)) + if(!G.client.is_afk(afk_bracket) && (be_special_type in G.client.prefs.be_special)) + if (jobbanType) + if(!(jobban_isbanned(G, jobbanType) || jobban_isbanned(G, "Syndicate"))) + candidates += G.client + else + candidates += G.client + afk_bracket += 600 // Add a minute to the bracket, for every attempt + return candidates + +/proc/ScreenText(obj/O, maptext="", screen_loc="CENTER-7,CENTER-7", maptext_height=480, maptext_width=480) + if(!isobj(O)) + O = new /obj/screen/text() + O.maptext = maptext + O.maptext_height = maptext_height + O.maptext_width = maptext_width + O.screen_loc = screen_loc + return O + +/proc/Show2Group4Delay(obj/O, list/group, delay=0) + if(!isobj(O)) + return + if(!group) + group = clients + for(var/client/C in group) + C.screen += O + if(delay) + spawn(delay) + for(var/client/C in group) + C.screen -= O + +/proc/flick_overlay(image/I, list/show_to, duration) + for(var/client/C in show_to) + C.images += I + spawn(duration) + for(var/client/C in show_to) + C.images -= I + +/proc/get_active_player_count(var/alive_check = 0, var/afk_check = 0, var/human_check = 0) + // Get active players who are playing in the round + var/active_players = 0 + for(var/i = 1; i <= player_list.len; i++) + var/mob/M = player_list[i] + if(M && M.client) + if(alive_check && M.stat) + continue + else if(afk_check && M.client.is_afk()) + continue + else if(human_check && !ishuman(M)) + continue + else if(isnewplayer(M)) // exclude people in the lobby + continue + else if(isobserver(M)) // Ghosts are fine if they were playing once (didn't start as observers) + var/mob/dead/observer/O = M + if(O.started_as_observer) // Exclude people who started as observers + continue + active_players++ + return active_players + +/datum/projectile_data + var/src_x + var/src_y + var/time + var/distance + var/power_x + var/power_y + var/dest_x + var/dest_y + +/datum/projectile_data/New(var/src_x, var/src_y, var/time, var/distance, \ + var/power_x, var/power_y, var/dest_x, var/dest_y) + src.src_x = src_x + src.src_y = src_y + src.time = time + src.distance = distance + src.power_x = power_x + src.power_y = power_y + src.dest_x = dest_x + src.dest_y = dest_y + +/proc/projectile_trajectory(src_x, src_y, rotation, angle, power) + + // returns the destination (Vx,y) that a projectile shot at [src_x], [src_y], with an angle of [angle], + // rotated at [rotation] and with the power of [power] + // Thanks to VistaPOWA for this function + + var/power_x = power * cos(angle) + var/power_y = power * sin(angle) + var/time = 2* power_y / 10 //10 = g + + var/distance = time * power_x + + var/dest_x = src_x + distance*sin(rotation); + var/dest_y = src_y + distance*cos(rotation); + + return new /datum/projectile_data(src_x, src_y, time, distance, power_x, power_y, dest_x, dest_y) + +/proc/pollCandidates(var/Question, var/jobbanType, var/datum/game_mode/gametypeCheck, var/be_special_flag = 0, var/poll_time = 300, var/ignore_category = null) + var/list/mob/dead/observer/candidates = list() + var/time_passed = world.time + if (!Question) + Question = "Would you like to be a special role?" + + for(var/mob/dead/observer/G in player_list) + if(!G.key || !G.client || (ignore_category && poll_ignore[ignore_category] && G.ckey in poll_ignore[ignore_category])) + continue + if(be_special_flag) + if(!(G.client.prefs) || !(be_special_flag in G.client.prefs.be_special)) + continue + if (gametypeCheck) + if(!gametypeCheck.age_check(G.client)) + continue + if (jobbanType) + if(jobban_isbanned(G, jobbanType) || jobban_isbanned(G, "Syndicate")) + continue + spawn(0) + G << 'sound/misc/notice2.ogg' //Alerting them to their consideration + switch(ignore_category ? askuser(G,Question,"Please answer in [poll_time/10] seconds!","Yes","No","Never for this round", StealFocus=0, Timeout=poll_time) : askuser(G,Question,"Please answer in [poll_time/10] seconds!","Yes","No", StealFocus=0, Timeout=poll_time)) + if(1) + G << "Choice registered: Yes." + if((world.time-time_passed)>poll_time) + G << "Sorry, you were too late for the consideration!" + G << 'sound/machines/buzz-sigh.ogg' + else + candidates += G + if(2) + G << "Choice registered: No." + if(3) + var/list/L = poll_ignore[ignore_category] + if(!L) + poll_ignore[ignore_category] = list() + poll_ignore[ignore_category] += G.ckey + G << "Choice registered: Never for this round." + sleep(poll_time) + + //Check all our candidates, to make sure they didn't log off during the wait period. + for(var/mob/dead/observer/G in candidates) + if(!G.key || !G.client) + candidates.Remove(G) + + return candidates + +/proc/pollCandidatesForMob(Question, jobbanType, datum/game_mode/gametypeCheck, be_special_flag = 0, poll_time = 300, mob/M, ignore_category = null) + var/list/L = pollCandidates(Question, jobbanType, gametypeCheck, be_special_flag, poll_time, ignore_category) + if(!M || qdeleted(M) || !M.loc) + return list() + return L + +/proc/pollCandidatesForMobs(Question, jobbanType, datum/game_mode/gametypeCheck, be_special_flag = 0, poll_time = 300, list/mobs, ignore_category = null) + var/list/L = pollCandidates(Question, jobbanType, gametypeCheck, be_special_flag, poll_time, ignore_category) + var/i=1 + for(var/v in mobs) + var/atom/A = v + if(!A || qdeleted(A) || !A.loc) + mobs.Cut(i,i+1) + else + ++i + return L + +/proc/makeBody(mob/dead/observer/G_found) // Uses stripped down and bastardized code from respawn character + if(!G_found || !G_found.key) + return + + //First we spawn a dude. + var/mob/living/carbon/human/new_character = new(pick(latejoin))//The mob being spawned. + + G_found.client.prefs.copy_to(new_character) + new_character.dna.update_dna_identity() + new_character.key = G_found.key + + return new_character + +/proc/window_flash(var/client_or_usr) + if (!client_or_usr) + return + winset(client_or_usr, "mainwindow", "flash=5") diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm new file mode 100644 index 0000000..e838429 --- /dev/null +++ b/code/__HELPERS/global_lists.dm @@ -0,0 +1,85 @@ +////////////////////////// +/////Initial Building///// +////////////////////////// + +/proc/make_datum_references_lists() + //hair + init_sprite_accessory_subtypes(/datum/sprite_accessory/hair, hair_styles_list, hair_styles_male_list, hair_styles_female_list) + //facial hair + init_sprite_accessory_subtypes(/datum/sprite_accessory/facial_hair, facial_hair_styles_list, facial_hair_styles_male_list, facial_hair_styles_female_list) + //underwear + init_sprite_accessory_subtypes(/datum/sprite_accessory/underwear, underwear_list, underwear_m, underwear_f) + //undershirt + init_sprite_accessory_subtypes(/datum/sprite_accessory/undershirt, undershirt_list, undershirt_m, undershirt_f) + //socks + init_sprite_accessory_subtypes(/datum/sprite_accessory/socks, socks_list) + //lizard bodyparts (blizzard intensifies) + init_sprite_accessory_subtypes(/datum/sprite_accessory/body_markings, body_markings_list) + init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/lizard, tails_list_lizard) + init_sprite_accessory_subtypes(/datum/sprite_accessory/tails_animated/lizard, animated_tails_list_lizard) + init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/human, tails_list_human) + init_sprite_accessory_subtypes(/datum/sprite_accessory/tails_animated/human, animated_tails_list_human) + init_sprite_accessory_subtypes(/datum/sprite_accessory/snouts, snouts_list) + init_sprite_accessory_subtypes(/datum/sprite_accessory/horns, horns_list) + init_sprite_accessory_subtypes(/datum/sprite_accessory/ears, ears_list) + init_sprite_accessory_subtypes(/datum/sprite_accessory/wings, wings_list) + init_sprite_accessory_subtypes(/datum/sprite_accessory/wings_open, wings_open_list) + init_sprite_accessory_subtypes(/datum/sprite_accessory/frills, frills_list) + init_sprite_accessory_subtypes(/datum/sprite_accessory/spines, spines_list) + init_sprite_accessory_subtypes(/datum/sprite_accessory/spines_animated, animated_spines_list) + init_sprite_accessory_subtypes(/datum/sprite_accessory/legs, legs_list) + init_sprite_accessory_subtypes(/datum/sprite_accessory/wings, r_wings_list,roundstart = TRUE) + + + //Species + for(var/spath in subtypesof(/datum/species)) + var/datum/species/S = new spath() + if(S.roundstart) + roundstart_species[S.id] = S.type + species_list[S.id] = S.type + + //Surgeries + for(var/path in subtypesof(/datum/surgery)) + surgeries_list += new path() + + //Materials + for(var/path in subtypesof(/datum/material)) + var/datum/material/D = new path() + materials_list[D.id] = D + + //Techs + for(var/path in subtypesof(/datum/tech)) + var/datum/tech/D = new path() + tech_list[D.id] = D + + init_subtypes(/datum/crafting_recipe, crafting_recipes) + +/* // Uncomment to debug chemical reaction list. +/client/verb/debug_chemical_list() + + for (var/reaction in chemical_reactions_list) + . += "chemical_reactions_list\[\"[reaction]\"\] = \"[chemical_reactions_list[reaction]]\"\n" + if(islist(chemical_reactions_list[reaction])) + var/list/L = chemical_reactions_list[reaction] + for(var/t in L) + . += " has: [t]\n" + world << . +*/ + +//creates every subtype of prototype (excluding prototype) and adds it to list L. +//if no list/L is provided, one is created. +/proc/init_subtypes(prototype, list/L) + if(!istype(L)) + L = list() + for(var/path in subtypesof(prototype)) + L += new path() + return L + +//returns a list of paths to every subtype of prototype (excluding prototype) +//if no list/L is provided, one is created. +/proc/init_paths(prototype, list/L) + if(!istype(L)) + L = list() + for(var/path in subtypesof(prototype)) + L+= path + return L diff --git a/code/__HELPERS/icon_smoothing.dm b/code/__HELPERS/icon_smoothing.dm new file mode 100644 index 0000000..2f78768 --- /dev/null +++ b/code/__HELPERS/icon_smoothing.dm @@ -0,0 +1,390 @@ + +//generic (by snowflake) tile smoothing code; smooth your icons with this! +/* + Each tile is divided in 4 corners, each corner has an image associated to it; the tile is then overlayed by these 4 images + To use this, just set your atom's 'smooth' var to 1. If your atom can be moved/unanchored, set its 'can_be_unanchored' var to 1. + If you don't want your atom's icon to smooth with anything but atoms of the same type, set the list 'canSmoothWith' to null; + Otherwise, put all types you want the atom icon to smooth with in 'canSmoothWith' INCLUDING THE TYPE OF THE ATOM ITSELF. + + Each atom has its own icon file with all the possible corner states. See 'smooth_wall.dmi' for a template. + + DIAGONAL SMOOTHING INSTRUCTIONS + To make your atom smooth diagonally you need all the proper icon states (see 'smooth_wall.dmi' for a template) and + to add the 'SMOOTH_DIAGONAL' flag to the atom's smooth var (in addition to either SMOOTH_TRUE or SMOOTH_MORE). + + For turfs, what appears under the diagonal corners depends on the turf that was in the same position previously: if you make a wall on + a plating floor, you will see plating under the diagonal wall corner, if it was space, you will see space. + + If you wish to map a diagonal wall corner with a fixed underlay, you must configure the turf's 'fixed_underlay' list var, like so: + fixed_underlay = list("icon"='icon_file.dmi', "icon_state"="iconstatename") + A non null 'fixed_underlay' list var will skip copying the previous turf appearance and always use the list. If the list is + not set properly, the underlay will default to regular floor plating. + + To see an example of a diagonal wall, see '/turf/closed/wall/shuttle' and its subtypes. +*/ + +//Redefinitions of the diagonal directions so they can be stored in one var without conflicts +#define N_NORTH 2 +#define N_SOUTH 4 +#define N_EAST 16 +#define N_WEST 256 +#define N_NORTHEAST 32 +#define N_NORTHWEST 512 +#define N_SOUTHEAST 64 +#define N_SOUTHWEST 1024 + +#define SMOOTH_FALSE 0 //not smooth +#define SMOOTH_TRUE 1 //smooths with exact specified types or just itself +#define SMOOTH_MORE 2 //smooths with all subtypes of specified types or just itself (this value can replace SMOOTH_TRUE) +#define SMOOTH_DIAGONAL 4 //if atom should smooth diagonally, this should be present in 'smooth' var +#define SMOOTH_BORDER 8 //atom will smooth with the borders of the map + +#define NULLTURF_BORDER 123456789 + +#define DEFAULT_UNDERLAY_ICON 'icons/turf/floors.dmi' +#define DEFAULT_UNDERLAY_ICON_STATE "plating" +#define DEFAULT_UNDERLAY_IMAGE image(DEFAULT_UNDERLAY_ICON, DEFAULT_UNDERLAY_ICON_STATE) + +/atom/var/smooth = SMOOTH_FALSE +/atom/var/top_left_corner +/atom/var/top_right_corner +/atom/var/bottom_left_corner +/atom/var/bottom_right_corner +/atom/var/list/canSmoothWith = null // TYPE PATHS I CAN SMOOTH WITH~~~~~ If this is null and atom is smooth, it smooths only with itself +/atom/movable/var/can_be_unanchored = 0 +/turf/var/list/fixed_underlay = null + +/proc/calculate_adjacencies(atom/A) + if(!A.loc) + return 0 + + var/adjacencies = 0 + + var/atom/movable/AM + if(istype(A, /atom/movable)) + AM = A + if(AM.can_be_unanchored && !AM.anchored) + return 0 + + for(var/direction in cardinal) + AM = find_type_in_direction(A, direction) + if(AM == NULLTURF_BORDER) + if((A.smooth & SMOOTH_BORDER)) + adjacencies |= 1 << direction + else if( (AM && !istype(AM)) || (istype(AM) && AM.anchored) ) + adjacencies |= 1 << direction + + if(adjacencies & N_NORTH) + if(adjacencies & N_WEST) + AM = find_type_in_direction(A, NORTHWEST) + if(AM == NULLTURF_BORDER) + if((A.smooth & SMOOTH_BORDER)) + adjacencies |= N_NORTHWEST + else if( (AM && !istype(AM)) || (istype(AM) && AM.anchored) ) + adjacencies |= N_NORTHWEST + if(adjacencies & N_EAST) + AM = find_type_in_direction(A, NORTHEAST) + if(AM == NULLTURF_BORDER) + if((A.smooth & SMOOTH_BORDER)) + adjacencies |= N_NORTHEAST + else if( (AM && !istype(AM)) || (istype(AM) && AM.anchored) ) + adjacencies |= N_NORTHEAST + + if(adjacencies & N_SOUTH) + if(adjacencies & N_WEST) + AM = find_type_in_direction(A, SOUTHWEST) + if(AM == NULLTURF_BORDER) + if((A.smooth & SMOOTH_BORDER)) + adjacencies |= N_SOUTHWEST + else if( (AM && !istype(AM)) || (istype(AM) && AM.anchored) ) + adjacencies |= N_SOUTHWEST + if(adjacencies & N_EAST) + AM = find_type_in_direction(A, SOUTHEAST) + if(AM == NULLTURF_BORDER) + if((A.smooth & SMOOTH_BORDER)) + adjacencies |= N_SOUTHEAST + else if( (AM && !istype(AM)) || (istype(AM) && AM.anchored) ) + adjacencies |= N_SOUTHEAST + + return adjacencies + +/proc/smooth_icon(atom/A) + if(qdeleted(A)) + return + if(!A || !A.smooth) + return + spawn(0) + if((A.smooth & SMOOTH_TRUE) || (A.smooth & SMOOTH_MORE)) + var/adjacencies = calculate_adjacencies(A) + + if(A.smooth & SMOOTH_DIAGONAL) + A.diagonal_smooth(adjacencies) + else + cardinal_smooth(A, adjacencies) + +/atom/proc/diagonal_smooth(adjacencies) + switch(adjacencies) + if(N_NORTH|N_WEST) + replace_smooth_overlays("d1-se-0","d2-se","d3-se","d4-se") + if(N_NORTH|N_EAST) + replace_smooth_overlays("d1-sw","d2-sw-0","d3-sw","d4-sw") + if(N_SOUTH|N_WEST) + replace_smooth_overlays("d1-ne","d2-ne","d3-ne-0","d4-ne") + if(N_SOUTH|N_EAST) + replace_smooth_overlays("d1-nw","d2-nw","d3-nw","d4-nw-0") + + if(N_NORTH|N_WEST|N_NORTHWEST) + replace_smooth_overlays("d1-se-1","d2-se","d3-se","d4-se") + if(N_NORTH|N_EAST|N_NORTHEAST) + replace_smooth_overlays("d1-sw","d2-sw-1","d3-sw","d4-sw") + if(N_SOUTH|N_WEST|N_SOUTHWEST) + replace_smooth_overlays("d1-ne","d2-ne","d3-ne-1","d4-ne") + if(N_SOUTH|N_EAST|N_SOUTHEAST) + replace_smooth_overlays("d1-nw","d2-nw","d3-nw","d4-nw-1") + + else + cardinal_smooth(src, adjacencies) + return + + icon_state = "" + return adjacencies + +//only walls should have a need to handle underlays +/turf/closed/wall/diagonal_smooth(adjacencies) + adjacencies = reverse_ndir(..()) + if(adjacencies) + underlays.Cut() + if(fixed_underlay) + if(fixed_underlay["space"]) + underlays += image('icons/turf/space.dmi', SPACE_ICON_STATE, layer=TURF_LAYER) + else + underlays += image(fixed_underlay["icon"], fixed_underlay["icon_state"], layer=TURF_LAYER) + else + var/turf/T = get_step(src, turn(adjacencies, 180)) + if(T && (T.density || T.smooth)) + T = get_step(src, turn(adjacencies, 135)) + if(T && (T.density || T.smooth)) + T = get_step(src, turn(adjacencies, 225)) + + if(isspaceturf(T) && !istype(T, /turf/open/space/transit)) + underlays += image('icons/turf/space.dmi', SPACE_ICON_STATE, layer=TURF_LAYER) + else if(T && !T.density && !T.smooth) + underlays += T + else if(baseturf && !initial(baseturf.density) && !initial(baseturf.smooth)) + underlays += image(initial(baseturf.icon), initial(baseturf.icon_state), layer=TURF_LAYER) + else + underlays += DEFAULT_UNDERLAY_IMAGE + +/proc/cardinal_smooth(atom/A, adjacencies) + //NW CORNER + var/nw = "1-i" + if((adjacencies & N_NORTH) && (adjacencies & N_WEST)) + if(adjacencies & N_NORTHWEST) + nw = "1-f" + else + nw = "1-nw" + else + if(adjacencies & N_NORTH) + nw = "1-n" + else if(adjacencies & N_WEST) + nw = "1-w" + + //NE CORNER + var/ne = "2-i" + if((adjacencies & N_NORTH) && (adjacencies & N_EAST)) + if(adjacencies & N_NORTHEAST) + ne = "2-f" + else + ne = "2-ne" + else + if(adjacencies & N_NORTH) + ne = "2-n" + else if(adjacencies & N_EAST) + ne = "2-e" + + //SW CORNER + var/sw = "3-i" + if((adjacencies & N_SOUTH) && (adjacencies & N_WEST)) + if(adjacencies & N_SOUTHWEST) + sw = "3-f" + else + sw = "3-sw" + else + if(adjacencies & N_SOUTH) + sw = "3-s" + else if(adjacencies & N_WEST) + sw = "3-w" + + //SE CORNER + var/se = "4-i" + if((adjacencies & N_SOUTH) && (adjacencies & N_EAST)) + if(adjacencies & N_SOUTHEAST) + se = "4-f" + else + se = "4-se" + else + if(adjacencies & N_SOUTH) + se = "4-s" + else if(adjacencies & N_EAST) + se = "4-e" + + if(A.top_left_corner != nw) + A.overlays -= A.top_left_corner + A.top_left_corner = nw + A.add_overlay(nw) + + if(A.top_right_corner != ne) + A.overlays -= A.top_right_corner + A.top_right_corner = ne + A.add_overlay(ne) + + if(A.bottom_right_corner != sw) + A.overlays -= A.bottom_right_corner + A.bottom_right_corner = sw + A.add_overlay(sw) + + if(A.bottom_left_corner != se) + A.overlays -= A.bottom_left_corner + A.bottom_left_corner = se + A.add_overlay(se) + +/proc/find_type_in_direction(atom/source, direction) + var/turf/target_turf = get_step(source, direction) + if(!target_turf) + return NULLTURF_BORDER + + if(source.canSmoothWith) + var/atom/A + if(source.smooth & SMOOTH_MORE) + for(var/a_type in source.canSmoothWith) + if( istype(target_turf, a_type) ) + return target_turf + A = locate(a_type) in target_turf + if(A) + return A + return null + + for(var/a_type in source.canSmoothWith) + if(a_type == target_turf.type) + return target_turf + A = locate(a_type) in target_turf + if(A && A.type == a_type) + return A + return null + else + if(isturf(source)) + return source.type == target_turf.type ? target_turf : null + var/atom/A = locate(source.type) in target_turf + return A && A.type == source.type ? A : null + +//Icon smoothing helpers +/proc/smooth_zlevel(var/zlevel, now = FALSE) + var/list/away_turfs = block(locate(1, 1, zlevel), locate(world.maxx, world.maxy, zlevel)) + for(var/V in away_turfs) + var/turf/T = V + if(T.smooth) + if(now) + smooth_icon(T) + else + queue_smooth(T) + for(var/R in T) + var/atom/A = R + if(A.smooth) + if(now) + smooth_icon(A) + else + queue_smooth(A) + +/atom/proc/clear_smooth_overlays() + overlays -= top_left_corner + top_left_corner = null + overlays -= top_right_corner + top_right_corner = null + overlays -= bottom_right_corner + bottom_right_corner = null + overlays -= bottom_left_corner + bottom_left_corner = null + +/atom/proc/replace_smooth_overlays(nw, ne, sw, se) + clear_smooth_overlays() + top_left_corner = nw + add_overlay(nw) + top_right_corner = ne + add_overlay(ne) + bottom_left_corner = sw + add_overlay(sw) + bottom_right_corner = se + add_overlay(se) + +/proc/reverse_ndir(ndir) + switch(ndir) + if(N_NORTH) + return NORTH + if(N_SOUTH) + return SOUTH + if(N_WEST) + return WEST + if(N_EAST) + return EAST + if(N_NORTHWEST) + return NORTHWEST + if(N_NORTHEAST) + return NORTHEAST + if(N_SOUTHEAST) + return SOUTHEAST + if(N_SOUTHWEST) + return SOUTHWEST + if(N_NORTH|N_WEST) + return NORTHWEST + if(N_NORTH|N_EAST) + return NORTHEAST + if(N_SOUTH|N_WEST) + return SOUTHWEST + if(N_SOUTH|N_EAST) + return SOUTHEAST + if(N_NORTH|N_WEST|N_NORTHWEST) + return NORTHWEST + if(N_NORTH|N_EAST|N_NORTHEAST) + return NORTHEAST + if(N_SOUTH|N_WEST|N_SOUTHWEST) + return SOUTHWEST + if(N_SOUTH|N_EAST|N_SOUTHEAST) + return SOUTHEAST + else + return 0 + +//SSicon_smooth +/proc/ss_smooth_icon(atom/A) + if(qdeleted(A)) + return + if(!istype(A) || (A && !A.smooth)) + return + if((A.smooth & SMOOTH_TRUE) || (A.smooth & SMOOTH_MORE)) + var/adjacencies = calculate_adjacencies(A) + if(A.smooth & SMOOTH_DIAGONAL) + A.diagonal_smooth(adjacencies) + else + cardinal_smooth(A, adjacencies) + +//SSicon_smooth +/proc/queue_smooth_neighbors(atom/A) + for(var/V in orange(1,A)) + var/atom/T = V + if(T.smooth) + queue_smooth(T) + +//SSicon_smooth +/proc/queue_smooth(atom/A) + if(SSicon_smooth) + SSicon_smooth.smooth_queue[A] = A + SSicon_smooth.can_fire = 1 + else + smooth_icon(A) + +//Example smooth wall +/turf/closed/wall/smooth + name = "smooth wall" + icon = 'icons/turf/smooth_wall.dmi' + icon_state = "smooth" + smooth = SMOOTH_TRUE|SMOOTH_DIAGONAL|SMOOTH_BORDER + canSmoothWith = null diff --git a/code/__HELPERS/icons.dm b/code/__HELPERS/icons.dm new file mode 100644 index 0000000..164ce1b --- /dev/null +++ b/code/__HELPERS/icons.dm @@ -0,0 +1,1033 @@ +/* +IconProcs README + +A BYOND library for manipulating icons and colors + +by Lummox JR + +version 1.0 + +The IconProcs library was made to make a lot of common icon operations much easier. BYOND's icon manipulation +routines are very capable but some of the advanced capabilities like using alpha transparency can be unintuitive to beginners. + +CHANGING ICONS + +Several new procs have been added to the /icon datum to simplify working with icons. To use them, +remember you first need to setup an /icon var like so: + +var/icon/my_icon = new('iconfile.dmi') + +icon/ChangeOpacity(amount = 1) + A very common operation in DM is to try to make an icon more or less transparent. Making an icon more + transparent is usually much easier than making it less so, however. This proc basically is a frontend + for MapColors() which can change opacity any way you like, in much the same way that SetIntensity() + can make an icon lighter or darker. If amount is 0.5, the opacity of the icon will be cut in half. + If amount is 2, opacity is doubled and anything more than half-opaque will become fully opaque. +icon/GrayScale() + Converts the icon to grayscale instead of a fully colored icon. Alpha values are left intact. +icon/ColorTone(tone) + Similar to GrayScale(), this proc converts the icon to a range of black -> tone -> white, where tone is an + RGB color (its alpha is ignored). This can be used to create a sepia tone or similar effect. + See also the global ColorTone() proc. +icon/MinColors(icon) + The icon is blended with a second icon where the minimum of each RGB pixel is the result. + Transparency may increase, as if the icons were blended with ICON_ADD. You may supply a color in place of an icon. +icon/MaxColors(icon) + The icon is blended with a second icon where the maximum of each RGB pixel is the result. + Opacity may increase, as if the icons were blended with ICON_OR. You may supply a color in place of an icon. +icon/Opaque(background = "#000000") + All alpha values are set to 255 throughout the icon. Transparent pixels become black, or whatever background color you specify. +icon/BecomeAlphaMask() + You can convert a simple grayscale icon into an alpha mask to use with other icons very easily with this proc. + The black parts become transparent, the white parts stay white, and anything in between becomes a translucent shade of white. +icon/AddAlphaMask(mask) + The alpha values of the mask icon will be blended with the current icon. Anywhere the mask is opaque, + the current icon is untouched. Anywhere the mask is transparent, the current icon becomes transparent. + Where the mask is translucent, the current icon becomes more transparent. +icon/UseAlphaMask(mask, mode) + Sometimes you may want to take the alpha values from one icon and use them on a different icon. + This proc will do that. Just supply the icon whose alpha mask you want to use, and src will change + so it has the same colors as before but uses the mask for opacity. + +COLOR MANAGEMENT AND HSV + +RGB isn't the only way to represent color. Sometimes it's more useful to work with a model called HSV, which stands for hue, saturation, and value. + + * The hue of a color describes where it is along the color wheel. It goes from red to yellow to green to + cyan to blue to magenta and back to red. + * The saturation of a color is how much color is in it. A color with low saturation will be more gray, + and with no saturation at all it is a shade of gray. + * The value of a color determines how bright it is. A high-value color is vivid, moderate value is dark, + and no value at all is black. + +Just as BYOND uses "#rrggbb" to represent RGB values, a similar format is used for HSV: "#hhhssvv". The hue is three +hex digits because it ranges from 0 to 0x5FF. + + * 0 to 0xFF - red to yellow + * 0x100 to 0x1FF - yellow to green + * 0x200 to 0x2FF - green to cyan + * 0x300 to 0x3FF - cyan to blue + * 0x400 to 0x4FF - blue to magenta + * 0x500 to 0x5FF - magenta to red + +Knowing this, you can figure out that red is "#000ffff" in HSV format, which is hue 0 (red), saturation 255 (as colorful as possible), +value 255 (as bright as possible). Green is "#200ffff" and blue is "#400ffff". + +More than one HSV color can match the same RGB color. + +Here are some procs you can use for color management: + +ReadRGB(rgb) + Takes an RGB string like "#ffaa55" and converts it to a list such as list(255,170,85). If an RGBA format is used + that includes alpha, the list will have a fourth item for the alpha value. +hsv(hue, sat, val, apha) + Counterpart to rgb(), this takes the values you input and converts them to a string in "#hhhssvv" or "#hhhssvvaa" + format. Alpha is not included in the result if null. +ReadHSV(rgb) + Takes an HSV string like "#100FF80" and converts it to a list such as list(256,255,128). If an HSVA format is used that + includes alpha, the list will have a fourth item for the alpha value. +RGBtoHSV(rgb) + Takes an RGB or RGBA string like "#ffaa55" and converts it into an HSV or HSVA color such as "#080aaff". +HSVtoRGB(hsv) + Takes an HSV or HSVA string like "#080aaff" and converts it into an RGB or RGBA color such as "#ff55aa". +BlendRGB(rgb1, rgb2, amount) + Blends between two RGB or RGBA colors using regular RGB blending. If amount is 0, the first color is the result; + if 1, the second color is the result. 0.5 produces an average of the two. Values outside the 0 to 1 range are allowed as well. + The returned value is an RGB or RGBA color. +BlendHSV(hsv1, hsv2, amount) + Blends between two HSV or HSVA colors using HSV blending, which tends to produce nicer results than regular RGB + blending because the brightness of the color is left intact. If amount is 0, the first color is the result; if 1, + the second color is the result. 0.5 produces an average of the two. Values outside the 0 to 1 range are allowed as well. + The returned value is an HSV or HSVA color. +BlendRGBasHSV(rgb1, rgb2, amount) + Like BlendHSV(), but the colors used and the return value are RGB or RGBA colors. The blending is done in HSV form. +HueToAngle(hue) + Converts a hue to an angle range of 0 to 360. Angle 0 is red, 120 is green, and 240 is blue. +AngleToHue(hue) + Converts an angle to a hue in the valid range. +RotateHue(hsv, angle) + Takes an HSV or HSVA value and rotates the hue forward through red, green, and blue by an angle from 0 to 360. + (Rotating red by 60° produces yellow.) The result is another HSV or HSVA color with the same saturation and value + as the original, but a different hue. +GrayScale(rgb) + Takes an RGB or RGBA color and converts it to grayscale. Returns an RGB or RGBA string. +ColorTone(rgb, tone) + Similar to GrayScale(), this proc converts an RGB or RGBA color to a range of black -> tone -> white instead of + using strict shades of gray. The tone value is an RGB color; any alpha value is ignored. +*/ + +/* +Get Flat Icon DEMO by DarkCampainger + +This is a test for the get flat icon proc, modified approprietly for icons and their states. +Probably not a good idea to run this unless you want to see how the proc works in detail. +mob + icon = 'old_or_unused.dmi' + icon_state = "green" + + Login() + // Testing image underlays + underlays += image(icon='old_or_unused.dmi',icon_state="red") + underlays += image(icon='old_or_unused.dmi',icon_state="red", pixel_x = 32) + underlays += image(icon='old_or_unused.dmi',icon_state="red", pixel_x = -32) + + // Testing image overlays + add_overlay(image(icon='old_or_unused.dmi',icon_state="green", pixel_x = 32, pixel_y = -32)) + add_overlay(image(icon='old_or_unused.dmi',icon_state="green", pixel_x = 32, pixel_y = 32)) + add_overlay(image(icon='old_or_unused.dmi',icon_state="green", pixel_x = -32, pixel_y = -32)) + + // Testing icon file overlays (defaults to mob's state) + add_overlay('_flat_demoIcons2.dmi') + + // Testing icon_state overlays (defaults to mob's icon) + add_overlay("white") + + // Testing dynamic icon overlays + var/icon/I = icon('old_or_unused.dmi', icon_state="aqua") + I.Shift(NORTH,16,1) + add_overlay(I) + + // Testing dynamic image overlays + I=image(icon=I,pixel_x = -32, pixel_y = 32) + add_overlay(I) + + // Testing object types (and layers) + add_overlay(/obj/effect/overlayTest) + + loc = locate (10,10,1) + verb + Browse_Icon() + set name = "1. Browse Icon" + // Give it a name for the cache + var/iconName = "[ckey(src.name)]_flattened.dmi" + // Send the icon to src's local cache + src<

") + + Output_Icon() + set name = "2. Output Icon" + src<<"Icon is: \icon[getFlatIcon(src)]" + + Label_Icon() + set name = "3. Label Icon" + // Give it a name for the cache + var/iconName = "[ckey(src.name)]_flattened.dmi" + // Copy the file to the rsc manually + var/icon/I = fcopy_rsc(getFlatIcon(src)) + // Send the icon to src's local cache + src< transparent, gray -> translucent white, white -> solid white +/icon/proc/BecomeAlphaMask() + SwapColor(null, "#000000ff") // don't let transparent become gray + MapColors(0,0,0,0.3, 0,0,0,0.59, 0,0,0,0.11, 0,0,0,0, 1,1,1,0) + +/icon/proc/UseAlphaMask(mask) + Opaque() + AddAlphaMask(mask) + +/icon/proc/AddAlphaMask(mask) + var/icon/M = new(mask) + M.Blend("#ffffff", ICON_SUBTRACT) + // apply mask + Blend(M, ICON_ADD) + +/* + HSV format is represented as "#hhhssvv" or "#hhhssvvaa" + + Hue ranges from 0 to 0x5ff (1535) + + 0x000 = red + 0x100 = yellow + 0x200 = green + 0x300 = cyan + 0x400 = blue + 0x500 = magenta + + Saturation is from 0 to 0xff (255) + + More saturation = more color + Less saturation = more gray + + Value ranges from 0 to 0xff (255) + + Higher value means brighter color + */ + +/proc/ReadRGB(rgb) + if(!rgb) return + + // interpret the HSV or HSVA value + var/i=1,start=1 + if(text2ascii(rgb) == 35) ++start // skip opening # + var/ch,which=0,r=0,g=0,b=0,alpha=0,usealpha + var/digits=0 + for(i=start, i<=length(rgb), ++i) + ch = text2ascii(rgb, i) + if(ch < 48 || (ch > 57 && ch < 65) || (ch > 70 && ch < 97) || ch > 102) break + ++digits + if(digits == 8) break + + var/single = digits < 6 + if(digits != 3 && digits != 4 && digits != 6 && digits != 8) return + if(digits == 4 || digits == 8) usealpha = 1 + for(i=start, digits>0, ++i) + ch = text2ascii(rgb, i) + if(ch >= 48 && ch <= 57) ch -= 48 + else if(ch >= 65 && ch <= 70) ch -= 55 + else if(ch >= 97 && ch <= 102) ch -= 87 + else break + --digits + switch(which) + if(0) + r = (r << 4) | ch + if(single) + r |= r << 4 + ++which + else if(!(digits & 1)) ++which + if(1) + g = (g << 4) | ch + if(single) + g |= g << 4 + ++which + else if(!(digits & 1)) ++which + if(2) + b = (b << 4) | ch + if(single) + b |= b << 4 + ++which + else if(!(digits & 1)) ++which + if(3) + alpha = (alpha << 4) | ch + if(single) alpha |= alpha << 4 + + . = list(r, g, b) + if(usealpha) . += alpha + +/proc/ReadHSV(hsv) + if(!hsv) return + + // interpret the HSV or HSVA value + var/i=1,start=1 + if(text2ascii(hsv) == 35) ++start // skip opening # + var/ch,which=0,hue=0,sat=0,val=0,alpha=0,usealpha + var/digits=0 + for(i=start, i<=length(hsv), ++i) + ch = text2ascii(hsv, i) + if(ch < 48 || (ch > 57 && ch < 65) || (ch > 70 && ch < 97) || ch > 102) break + ++digits + if(digits == 9) break + if(digits > 7) usealpha = 1 + if(digits <= 4) ++which + if(digits <= 2) ++which + for(i=start, digits>0, ++i) + ch = text2ascii(hsv, i) + if(ch >= 48 && ch <= 57) ch -= 48 + else if(ch >= 65 && ch <= 70) ch -= 55 + else if(ch >= 97 && ch <= 102) ch -= 87 + else break + --digits + switch(which) + if(0) + hue = (hue << 4) | ch + if(digits == (usealpha ? 6 : 4)) ++which + if(1) + sat = (sat << 4) | ch + if(digits == (usealpha ? 4 : 2)) ++which + if(2) + val = (val << 4) | ch + if(digits == (usealpha ? 2 : 0)) ++which + if(3) + alpha = (alpha << 4) | ch + + . = list(hue, sat, val) + if(usealpha) . += alpha + +/proc/HSVtoRGB(hsv) + if(!hsv) return "#000000" + var/list/HSV = ReadHSV(hsv) + if(!HSV) return "#000000" + + var/hue = HSV[1] + var/sat = HSV[2] + var/val = HSV[3] + + // Compress hue into easier-to-manage range + hue -= hue >> 8 + if(hue >= 0x5fa) hue -= 0x5fa + + var/hi,mid,lo,r,g,b + hi = val + lo = round((255 - sat) * val / 255, 1) + mid = lo + round(abs(round(hue, 510) - hue) * (hi - lo) / 255, 1) + if(hue >= 765) + if(hue >= 1275) {r=hi; g=lo; b=mid} + else if(hue >= 1020) {r=mid; g=lo; b=hi } + else {r=lo; g=mid; b=hi } + else + if(hue >= 510) {r=lo; g=hi; b=mid} + else if(hue >= 255) {r=mid; g=hi; b=lo } + else {r=hi; g=mid; b=lo } + + return (HSV.len > 3) ? rgb(r,g,b,HSV[4]) : rgb(r,g,b) + +/proc/RGBtoHSV(rgb) + if(!rgb) return "#0000000" + var/list/RGB = ReadRGB(rgb) + if(!RGB) return "#0000000" + + var/r = RGB[1] + var/g = RGB[2] + var/b = RGB[3] + var/hi = max(r,g,b) + var/lo = min(r,g,b) + + var/val = hi + var/sat = hi ? round((hi-lo) * 255 / hi, 1) : 0 + var/hue = 0 + + if(sat) + var/dir + var/mid + if(hi == r) + if(lo == b) {hue=0; dir=1; mid=g} + else {hue=1535; dir=-1; mid=b} + else if(hi == g) + if(lo == r) {hue=512; dir=1; mid=b} + else {hue=511; dir=-1; mid=r} + else if(hi == b) + if(lo == g) {hue=1024; dir=1; mid=r} + else {hue=1023; dir=-1; mid=g} + hue += dir * round((mid-lo) * 255 / (hi-lo), 1) + + return hsv(hue, sat, val, (RGB.len>3 ? RGB[4] : null)) + +/proc/hsv(hue, sat, val, alpha) + if(hue < 0 || hue >= 1536) hue %= 1536 + if(hue < 0) hue += 1536 + if((hue & 0xFF) == 0xFF) + ++hue + if(hue >= 1536) hue = 0 + if(sat < 0) sat = 0 + if(sat > 255) sat = 255 + if(val < 0) val = 0 + if(val > 255) val = 255 + . = "#" + . += TO_HEX_DIGIT(hue >> 8) + . += TO_HEX_DIGIT(hue >> 4) + . += TO_HEX_DIGIT(hue) + . += TO_HEX_DIGIT(sat >> 4) + . += TO_HEX_DIGIT(sat) + . += TO_HEX_DIGIT(val >> 4) + . += TO_HEX_DIGIT(val) + if(!isnull(alpha)) + if(alpha < 0) alpha = 0 + if(alpha > 255) alpha = 255 + . += TO_HEX_DIGIT(alpha >> 4) + . += TO_HEX_DIGIT(alpha) + +/* + Smooth blend between HSV colors + + amount=0 is the first color + amount=1 is the second color + amount=0.5 is directly between the two colors + + amount<0 or amount>1 are allowed + */ +/proc/BlendHSV(hsv1, hsv2, amount) + var/list/HSV1 = ReadHSV(hsv1) + var/list/HSV2 = ReadHSV(hsv2) + + // add missing alpha if needed + if(HSV1.len < HSV2.len) HSV1 += 255 + else if(HSV2.len < HSV1.len) HSV2 += 255 + var/usealpha = HSV1.len > 3 + + // normalize hsv values in case anything is screwy + if(HSV1[1] > 1536) HSV1[1] %= 1536 + if(HSV2[1] > 1536) HSV2[1] %= 1536 + if(HSV1[1] < 0) HSV1[1] += 1536 + if(HSV2[1] < 0) HSV2[1] += 1536 + if(!HSV1[3]) {HSV1[1] = 0; HSV1[2] = 0} + if(!HSV2[3]) {HSV2[1] = 0; HSV2[2] = 0} + + // no value for one color means don't change saturation + if(!HSV1[3]) HSV1[2] = HSV2[2] + if(!HSV2[3]) HSV2[2] = HSV1[2] + // no saturation for one color means don't change hues + if(!HSV1[2]) HSV1[1] = HSV2[1] + if(!HSV2[2]) HSV2[1] = HSV1[1] + + // Compress hues into easier-to-manage range + HSV1[1] -= HSV1[1] >> 8 + HSV2[1] -= HSV2[1] >> 8 + + var/hue_diff = HSV2[1] - HSV1[1] + if(hue_diff > 765) hue_diff -= 1530 + else if(hue_diff <= -765) hue_diff += 1530 + + var/hue = round(HSV1[1] + hue_diff * amount, 1) + var/sat = round(HSV1[2] + (HSV2[2] - HSV1[2]) * amount, 1) + var/val = round(HSV1[3] + (HSV2[3] - HSV1[3]) * amount, 1) + var/alpha = usealpha ? round(HSV1[4] + (HSV2[4] - HSV1[4]) * amount, 1) : null + + // normalize hue + if(hue < 0 || hue >= 1530) hue %= 1530 + if(hue < 0) hue += 1530 + // decompress hue + hue += round(hue / 255) + + return hsv(hue, sat, val, alpha) + +/* + Smooth blend between RGB colors + + amount=0 is the first color + amount=1 is the second color + amount=0.5 is directly between the two colors + + amount<0 or amount>1 are allowed + */ +/proc/BlendRGB(rgb1, rgb2, amount) + var/list/RGB1 = ReadRGB(rgb1) + var/list/RGB2 = ReadRGB(rgb2) + + // add missing alpha if needed + if(RGB1.len < RGB2.len) RGB1 += 255 + else if(RGB2.len < RGB1.len) RGB2 += 255 + var/usealpha = RGB1.len > 3 + + var/r = round(RGB1[1] + (RGB2[1] - RGB1[1]) * amount, 1) + var/g = round(RGB1[2] + (RGB2[2] - RGB1[2]) * amount, 1) + var/b = round(RGB1[3] + (RGB2[3] - RGB1[3]) * amount, 1) + var/alpha = usealpha ? round(RGB1[4] + (RGB2[4] - RGB1[4]) * amount, 1) : null + + return isnull(alpha) ? rgb(r, g, b) : rgb(r, g, b, alpha) + +/proc/BlendRGBasHSV(rgb1, rgb2, amount) + return HSVtoRGB(RGBtoHSV(rgb1), RGBtoHSV(rgb2), amount) + +/proc/HueToAngle(hue) + // normalize hsv in case anything is screwy + if(hue < 0 || hue >= 1536) hue %= 1536 + if(hue < 0) hue += 1536 + // Compress hue into easier-to-manage range + hue -= hue >> 8 + return hue / (1530/360) + +/proc/AngleToHue(angle) + // normalize hsv in case anything is screwy + if(angle < 0 || angle >= 360) angle -= 360 * round(angle / 360) + var/hue = angle * (1530/360) + // Decompress hue + hue += round(hue / 255) + return hue + + +// positive angle rotates forward through red->green->blue +/proc/RotateHue(hsv, angle) + var/list/HSV = ReadHSV(hsv) + + // normalize hsv in case anything is screwy + if(HSV[1] >= 1536) HSV[1] %= 1536 + if(HSV[1] < 0) HSV[1] += 1536 + + // Compress hue into easier-to-manage range + HSV[1] -= HSV[1] >> 8 + + if(angle < 0 || angle >= 360) angle -= 360 * round(angle / 360) + HSV[1] = round(HSV[1] + angle * (1530/360), 1) + + // normalize hue + if(HSV[1] < 0 || HSV[1] >= 1530) HSV[1] %= 1530 + if(HSV[1] < 0) HSV[1] += 1530 + // decompress hue + HSV[1] += round(HSV[1] / 255) + + return hsv(HSV[1], HSV[2], HSV[3], (HSV.len > 3 ? HSV[4] : null)) + +// Convert an rgb color to grayscale +/proc/GrayScale(rgb) + var/list/RGB = ReadRGB(rgb) + var/gray = RGB[1]*0.3 + RGB[2]*0.59 + RGB[3]*0.11 + return (RGB.len > 3) ? rgb(gray, gray, gray, RGB[4]) : rgb(gray, gray, gray) + +// Change grayscale color to black->tone->white range +/proc/ColorTone(rgb, tone) + var/list/RGB = ReadRGB(rgb) + var/list/TONE = ReadRGB(tone) + + var/gray = RGB[1]*0.3 + RGB[2]*0.59 + RGB[3]*0.11 + var/tone_gray = TONE[1]*0.3 + TONE[2]*0.59 + TONE[3]*0.11 + + if(gray <= tone_gray) return BlendRGB("#000000", tone, gray/(tone_gray || 1)) + else return BlendRGB(tone, "#ffffff", (gray-tone_gray)/((255-tone_gray) || 1)) + + +//Used in the OLD chem colour mixing algorithm +/proc/GetColors(hex) + hex = uppertext(hex) + // No alpha set? Default to full alpha. + if(length(hex) == 7) + hex += "FF" + var/hi1 = text2ascii(hex, 2) // R + var/lo1 = text2ascii(hex, 3) // R + var/hi2 = text2ascii(hex, 4) // G + var/lo2 = text2ascii(hex, 5) // G + var/hi3 = text2ascii(hex, 6) // B + var/lo3 = text2ascii(hex, 7) // B + var/hi4 = text2ascii(hex, 8) // A + var/lo4 = text2ascii(hex, 9) // A + return list(((hi1>= 65 ? hi1-55 : hi1-48)<<4) | (lo1 >= 65 ? lo1-55 : lo1-48), + ((hi2 >= 65 ? hi2-55 : hi2-48)<<4) | (lo2 >= 65 ? lo2-55 : lo2-48), + ((hi3 >= 65 ? hi3-55 : hi3-48)<<4) | (lo3 >= 65 ? lo3-55 : lo3-48), + ((hi4 >= 65 ? hi4-55 : hi4-48)<<4) | (lo4 >= 65 ? lo4-55 : lo4-48)) + + +/* +Get flat icon by DarkCampainger. As it says on the tin, will return an icon with all the overlays +as a single icon. Useful for when you want to manipulate an icon via the above as overlays are not normally included. +The _flatIcons list is a cache for generated icon files. +*/ + +// Creates a single icon from a given /atom or /image. Only the first argument is required. +/proc/getFlatIcon(image/A, defdir=A.dir, deficon=A.icon, defstate=A.icon_state, defblend=A.blend_mode) + // We start with a blank canvas, otherwise some icon procs crash silently + var/icon/flat = icon('icons/effects/effects.dmi', "nothing") // Final flattened icon + if(!A) + return flat + if(A.alpha <= 0) + return flat + var/noIcon = FALSE + + var/curicon + if(A.icon) + curicon = A.icon + else + curicon = deficon + + if(!curicon) + noIcon = TRUE // Do not render this object. + + var/curstate + if(A.icon_state) + curstate = A.icon_state + else + curstate = defstate + + if(!noIcon && !(curstate in icon_states(curicon))) + if("" in icon_states(curicon)) + curstate = "" + else + noIcon = TRUE // Do not render this object. + + var/curdir + if(A.dir != 2) + curdir = A.dir + else + curdir = defdir + + var/curblend + if(A.blend_mode == BLEND_DEFAULT) + curblend = defblend + else + curblend = A.blend_mode + + // 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 + // Add the atom's icon itself, without pixel_x/y offsets. + if(!noIcon) + copy = image(icon=curicon, icon_state=curstate, layer=A.layer, dir=curdir) + copy.color = A.color + copy.alpha = A.alpha + copy.blend_mode = curblend + layers[copy] = A.layer + + // Loop through the underlays, then overlays, sorting them into the layers list + var/list/process = A.underlays // Current list being processed + var/pSet=0 // Which list is being processed: 0 = underlays, 1 = overlays + var/curIndex=1 // index of 'current' in list being processed + var/current // Current overlay being sorted + var/currentLayer // Calculated layer that overlay appears on (special case for FLOAT_LAYER) + var/compare // The overlay 'add' is being compared against + var/cmpIndex // The index in the layers list of 'compare' + while(TRUE) + if(curIndex<=process.len) + current = process[curIndex] + if(!current) + curIndex++ //Try the next layer + continue + currentLayer = current:layer + if(currentLayer<0) // Special case for FLY_LAYER + if(currentLayer <= -1000) return flat + if(pSet == 0) // Underlay + currentLayer = A.layer+currentLayer/1000 + else // Overlay + currentLayer = A.layer+(1000+currentLayer)/1000 + + // Sort add into layers list + for(cmpIndex=1,cmpIndex<=layers.len,cmpIndex++) + compare = layers[cmpIndex] + if(currentLayer < layers[compare]) // Associated value is the calculated layer + layers.Insert(cmpIndex,current) + layers[current] = currentLayer + break + if(cmpIndex>layers.len) // Reached end of list without inserting + layers[current]=currentLayer // Place at end + + curIndex++ + + if(curIndex>process.len) + if(pSet == 0) // Switch to overlays + curIndex = 1 + pSet = 1 + process = A.overlays + else // All done + break + + var/icon/add // Icon of overlay being added + + // Current dimensions of flattened icon + var/{flatX1=1;flatX2=flat.Width();flatY1=1;flatY2=flat.Height()} + // Dimensions of overlay being added + var/{addX1;addX2;addY1;addY2} + + for(var/I in layers) + + if(I:alpha == 0) + continue + + if(I == copy) // 'I' is an /image based on the object being flattened. + curblend = BLEND_OVERLAY + add = icon(I:icon, I:icon_state, I:dir) + else // 'I' is an appearance object. + add = getFlatIcon(new/image(I), curdir, curicon, curstate, curblend) + + // Find the new dimensions of the flat icon to fit the added overlay + addX1 = min(flatX1, I:pixel_x+1) + addX2 = max(flatX2, I:pixel_x+add.Width()) + addY1 = min(flatY1, I:pixel_y+1) + addY2 = max(flatY2, I:pixel_y+add.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=addX2 + flatY1=addY1;flatY2=addY2 + + // Blend the overlay into the flattened icon + flat.Blend(add, blendMode2iconMode(curblend), I:pixel_x + 2 - flatX1, I:pixel_y + 2 - flatY1) + + if(A.color) + flat.Blend(A.color, ICON_MULTIPLY) + if(A.alpha < 255) + flat.Blend(rgb(255, 255, 255, A.alpha), ICON_MULTIPLY) + + return icon(flat, "", SOUTH) + +/proc/getIconMask(atom/A)//By yours truly. Creates a dynamic mask for a mob/whatever. /N + var/icon/alpha_mask = new(A.icon,A.icon_state)//So we want the default icon and icon state of A. + for(var/I in A.overlays)//For every image in overlays. var/image/I will not work, don't try it. + if(I:layer>A.layer) + continue//If layer is greater than what we need, skip it. + var/icon/image_overlay = new(I:icon,I:icon_state)//Blend only works with icon objects. + //Also, icons cannot directly set icon_state. Slower than changing variables but whatever. + alpha_mask.Blend(image_overlay,ICON_OR)//OR so they are lumped together in a nice overlay. + return alpha_mask//And now return the mask. + +/mob/proc/AddCamoOverlay(atom/A)//A is the atom which we are using as the overlay. + var/icon/opacity_icon = new(A.icon, A.icon_state)//Don't really care for overlays/underlays. + //Now we need to culculate overlays+underlays and add them together to form an image for a mask. + //var/icon/alpha_mask = getFlatIcon(src)//Accurate but SLOW. Not designed for running each tick. Could have other uses I guess. + var/icon/alpha_mask = getIconMask(src)//Which is why I created that proc. Also a little slow since it's blending a bunch of icons together but good enough. + opacity_icon.AddAlphaMask(alpha_mask)//Likely the main source of lag for this proc. Probably not designed to run each tick. + opacity_icon.ChangeOpacity(0.4)//Front end for MapColors so it's fast. 0.5 means half opacity and looks the best in my opinion. + for(var/i=0,i<5,i++)//And now we add it as overlays. It's faster than creating an icon and then merging it. + var/image/I = image("icon" = opacity_icon, "icon_state" = A.icon_state, "layer" = layer+0.8)//So it's above other stuff but below weapons and the like. + switch(i)//Now to determine offset so the result is somewhat blurred. + if(1) + I.pixel_x-- + if(2) + I.pixel_x++ + if(3) + I.pixel_y-- + if(4) + I.pixel_y++ + add_overlay(I)//And finally add the overlay. + +/proc/getHologramIcon(icon/A, safety=1)//If safety is on, a new icon is not created. + var/icon/flat_icon = safety ? A : new(A)//Has to be a new icon to not constantly change the same icon. + flat_icon.ColorTone(rgb(125,180,225))//Let's make it bluish. + flat_icon.ChangeOpacity(0.5)//Make it half transparent. + var/icon/alpha_mask = new('icons/effects/effects.dmi', "scanline")//Scanline effect. + flat_icon.AddAlphaMask(alpha_mask)//Finally, let's mix in a distortion effect. + return flat_icon + +//For photo camera. +/proc/build_composite_icon(atom/A) + var/icon/composite = icon(A.icon, A.icon_state, A.dir, 1) + for(var/O in A.overlays) + var/image/I = O + composite.Blend(icon(I.icon, I.icon_state, I.dir, 1), ICON_OVERLAY) + return composite + + +//What the mob looks like as animated static +//By vg's ComicIronic +/proc/getStaticIcon(icon/A, safety=1) + var/icon/flat_icon = safety ? A : new(A) + flat_icon.Blend(rgb(255,255,255)) + flat_icon.BecomeAlphaMask() + var/icon/static_icon = new/icon('icons/effects/effects.dmi', "static_base") + static_icon.AddAlphaMask(flat_icon) + return static_icon + + +//What the mob looks like as a pitch black outline +//By vg's ComicIronic +/proc/getBlankIcon(icon/A, safety=1) + var/icon/flat_icon = safety ? A : new(A) + flat_icon.Blend(rgb(255,255,255)) + flat_icon.BecomeAlphaMask() + var/icon/blank_icon = new/icon('icons/effects/effects.dmi', "blank_base") + blank_icon.AddAlphaMask(flat_icon) + return blank_icon + + +//Dwarf fortress style icons based on letters (defaults to the first letter of the Atom's name) +//By vg's ComicIronic +/proc/getLetterImage(atom/A, letter= "", uppercase = 0) + if(!A) + return + + var/icon/atom_icon = new(A.icon, A.icon_state) + + if(!letter) + letter = copytext(A.name, 1, 2) + if(uppercase == 1) + letter = uppertext(letter) + else if(uppercase == -1) + letter = lowertext(letter) + + var/image/text_image = new(loc = A) + text_image.maptext = "[letter]" + text_image.color = AverageColour(atom_icon) + text_image.pixel_x = 7 + text_image.pixel_y = 5 + del(atom_icon) + return text_image + +var/global/list/friendly_animal_types = list() + +// Pick a random animal instead of the icon, and use that instead +/proc/getRandomAnimalImage(atom/A) + if(!friendly_animal_types.len) + for(var/T in typesof(/mob/living/simple_animal)) + var/mob/living/simple_animal/SA = T + if(initial(SA.gold_core_spawnable) == 2) + friendly_animal_types += SA + + + var/mob/living/simple_animal/SA = pick(friendly_animal_types) + + var/icon = initial(SA.icon) + var/icon_state = initial(SA.icon_state) + + var/image/final_image = image(icon, icon_state=icon_state, loc = A) + + if(ispath(SA, /mob/living/simple_animal/butterfly)) + final_image.color = rgb(rand(0,255), rand(0,255), rand(0,255)) + + // For debugging + final_image.text = initial(SA.name) + return final_image + +//Find's the average colour of the icon +//By vg's ComicIronic +/proc/AverageColour(icon/I) + var/list/colours = list() + for(var/x_pixel = 1 to I.Width()) + for(var/y_pixel = 1 to I.Height()) + var/this_colour = I.GetPixel(x_pixel, y_pixel) + if(this_colour) + colours.Add(this_colour) + + if(!colours.len) + return null + + var/final_average = colours[1] + for(var/colour in (colours - colours[1])) + final_average = BlendRGB(final_average, colour, 1) + return final_average + + +//Interface for using DrawBox() to draw 1 pixel on a coordinate. +//Returns the same icon specifed in the argument, but with the pixel drawn +/proc/DrawPixel(icon/I,colour,drawX,drawY) + if(!I) + return 0 + + var/Iwidth = I.Width() + var/Iheight = I.Height() + + if(drawX > Iwidth || drawX <= 0) + return 0 + if(drawY > Iheight || drawY <= 0) + return 0 + + I.DrawBox(colour,drawX, drawY) + return I + + +//Interface for easy drawing of one pixel on an atom. +/atom/proc/DrawPixelOn(colour, drawX, drawY) + var/icon/I = new(icon) + var/icon/J = DrawPixel(I, colour, drawX, drawY) + if(J) //Only set the icon if it succeeded, the icon without the pixel is 1000x better than a black square. + icon = J + return J + return 0 + +/atom/proc/cut_overlays() + overlays.Cut() + overlays += priority_overlays + +/atom/proc/add_overlay(image, priority = 0) + var/list/new_overlays = overlays.Copy() + new_overlays -= image + if(priority) + if(!priority_overlays) + priority_overlays = list() + priority_overlays += image + new_overlays += image + else + if(priority_overlays) + new_overlays -= priority_overlays + new_overlays += image + new_overlays += priority_overlays + else + new_overlays += image + overlays = new_overlays + +var/global/list/humanoid_icon_cache = list() +//For creating consistent icons for human looking simple animals +/proc/get_flat_human_icon(var/icon_id,var/outfit,var/datum/preferences/prefs) + if(!icon_id || !humanoid_icon_cache[icon_id]) + var/mob/living/carbon/human/dummy/body = new() + + if(prefs) + prefs.copy_to(body) + if(outfit) + body.equipOutfit(outfit, TRUE) + + var/icon/out_icon = icon('icons/effects/effects.dmi', "nothing") + + body.setDir(NORTH) + var/icon/partial = getFlatIcon(body) + out_icon.Insert(partial,dir=NORTH) + + body.setDir(SOUTH) + partial = getFlatIcon(body) + out_icon.Insert(partial,dir=SOUTH) + + body.setDir(WEST) + partial = getFlatIcon(body) + out_icon.Insert(partial,dir=WEST) + + body.setDir(EAST) + partial = getFlatIcon(body) + out_icon.Insert(partial,dir=EAST) + + qdel(body) + + humanoid_icon_cache[icon_id] = out_icon + return out_icon + else + return humanoid_icon_cache[icon_id] + + +//Hook, override to run code on- wait this is images +//Images have dir without being an atom, so they get their own definition. +//Lame. +/image/proc/setDir(newdir) + dir = newdir + +// Used to make the frozen item visuals for Freon. +var/list/freeze_item_icons = list() + +/atom/proc/freeze_icon_index() + return "\ref[initial(icon)]-[initial(icon_state)]" + +/obj/proc/make_frozen_visual(var/obj/F) + if(!F.is_frozen && (initial(icon) && initial(icon_state))) + var/index = freeze_icon_index() + var/icon/IC + var/icon/P = freeze_item_icons[index] + if(!P) + P = new /icon + for(var/iconstate in icon_states(F.icon)) + var/icon/O = new('icons/effects/freeze.dmi', "ice_cube") + IC = new(F.icon, iconstate) + O.Blend(IC, ICON_ADD) + P.Insert(O, iconstate) + freeze_item_icons[index] = P + F.icon = P + F.name = "frozen [F.name]" + F.is_frozen = TRUE + return + return \ No newline at end of file diff --git a/code/__HELPERS/lists.dm b/code/__HELPERS/lists.dm new file mode 100644 index 0000000..6082a43 --- /dev/null +++ b/code/__HELPERS/lists.dm @@ -0,0 +1,415 @@ +/* + * Holds procs to help with list operations + * Contains groups: + * Misc + * Sorting + */ + +/* + * Misc + */ + +//Returns a list in plain english as a string +/proc/english_list(list/input, nothing_text = "nothing", and_text = " and ", comma_text = ", ", final_comma_text = "" ) + var/total = input.len + if (!total) + return "[nothing_text]" + else if (total == 1) + return "[input[1]]" + else if (total == 2) + return "[input[1]][and_text][input[2]]" + else + var/output = "" + var/index = 1 + while (index < total) + if (index == total - 1) + comma_text = final_comma_text + + output += "[input[index]][comma_text]" + index++ + + return "[output][and_text][input[index]]" + +//Returns list element or null. Should prevent "index out of bounds" error. +/proc/listgetindex(list/L, index) + if(istype(L)) + if(isnum(index) && IsInteger(index)) + if(IsInRange(index,1,L.len)) + return L[index] + else if(index in L) + return L[index] + return + +//Return either pick(list) or null if list is not of type /list or is empty +/proc/safepick(list/L) + if(istype(L) && L.len) + return pick(L) + +//Checks if the list is empty +/proc/isemptylist(list/L) + if(!L.len) + return 1 + return 0 + +//Checks for specific types in a list +/proc/is_type_in_list(atom/A, list/L) + if(!L || !L.len || !A) + return 0 + for(var/type in L) + if(istype(A, type)) + return 1 + return 0 + +//Checks for specific types in specifically structured (Assoc "type" = TRUE) lists ('typecaches') +/proc/is_type_in_typecache(atom/A, list/L) + if(!L || !L.len || !A) + + return 0 + return L[A.type] + +//returns a new list with only atoms that are in typecache L +/proc/typecache_filter_list(list/atoms, list/typecache) + . = list() + for (var/thing in atoms) + var/atom/A = thing + if (typecache[A.type]) + . += A + +//Like typesof() or subtypesof(), but returns a typecache instead of a list +/proc/typecacheof(path, ignore_root_path) + if(ispath(path)) + var/list/types = ignore_root_path ? subtypesof(path) : typesof(path) + var/list/L = list() + for(var/T in types) + L[T] = TRUE + return L + else if(islist(path)) + var/list/pathlist = path + var/list/L = list() + if(ignore_root_path) + for(var/P in pathlist) + for(var/T in subtypesof(P)) + L[T] = TRUE + else + for(var/P in pathlist) + for(var/T in typesof(P)) + L[T] = TRUE + return L + +//Empties the list by setting the length to 0. Hopefully the elements get garbage collected +/proc/clearlist(list/list) + if(istype(list)) + list.len = 0 + return + +//Removes any null entries from the list +/proc/listclearnulls(list/L) + if(istype(L)) + var/i=1 + for(var/thing in L) + if(thing != null) + ++i + continue + L.Cut(i,i+1) + +/* + * Returns list containing all the entries from first list that are not present in second. + * If skiprep = 1, repeated elements are treated as one. + * If either of arguments is not a list, returns null + */ +/proc/difflist(list/first, list/second, skiprep=0) + if(!islist(first) || !islist(second)) + return + var/list/result = new + if(skiprep) + for(var/e in first) + if(!(e in result) && !(e in second)) + result += e + else + result = first - second + return result + +/* + * Returns list containing entries that are in either list but not both. + * If skipref = 1, repeated elements are treated as one. + * If either of arguments is not a list, returns null + */ +/proc/uniquemergelist(list/first, list/second, skiprep=0) + if(!islist(first) || !islist(second)) + return + var/list/result = new + if(skiprep) + result = difflist(first, second, skiprep)+difflist(second, first, skiprep) + else + result = first ^ second + return result + +//Pretends to pick an element based on its weight but really just seems to pick a random element. +/proc/pickweight(list/L) + var/total = 0 + var/item + for (item in L) + if (!L[item]) + L[item] = 1 + total += L[item] + + total = rand(1, total) + for (item in L) + total -=L [item] + if (total <= 0) + return item + + return null + +//Pick a random element from the list and remove it from the list. +/proc/pick_n_take(list/L) + if(L.len) + var/picked = rand(1,L.len) + . = L[picked] + L.Cut(picked,picked+1) //Cut is far more efficient that Remove() + +//Returns the top(last) element from the list and removes it from the list (typical stack function) +/proc/pop(list/L) + if(L.len) + . = L[L.len] + L.len-- + +/proc/popleft(list/L) + if(L.len) + . = L[1] + L.Cut(1,2) + +/proc/sorted_insert(list/L, thing, comparator) + var/pos = L.len + while(pos > 0 && call(comparator)(thing, L[pos]) > 0) + pos-- + L.Insert(pos+1, thing) + +// Returns the next item in a list +/proc/next_list_item(item, list/L) + var/i + i = L.Find(item) + if(i == L.len) + i = 1 + else + i++ + return L[i] + +// Returns the previous item in a list +/proc/previous_list_item(item, list/L) + var/i + i = L.Find(item) + if(i == 1) + i = L.len + else + i-- + return L[i] + +/* + * Sorting + */ +/* +//Reverses the order of items in the list +/proc/reverselist(list/input) + var/list/output = list() + for(var/i = input.len; i >= 1; i--) + output += input[i] + return output +*/ + +//Randomize: Return the list in a random order +/proc/shuffle(list/L) + if(!L) + return + L = L.Copy() + + for(var/i=1, i= 0 ? /proc/cmp_ckey_asc : /proc/cmp_ckey_dsc) + +//Specifically for record datums in a list. +/proc/sortRecord(list/L, field = "name", order = 1) + cmp_field = field + return sortTim(L, order >= 0 ? /proc/cmp_records_asc : /proc/cmp_records_dsc) + +//any value in a list +/proc/sortList(list/L, cmp=/proc/cmp_text_asc) + return sortTim(L.Copy(), cmp) + +//uses sortList() but uses the var's name specifically. This should probably be using mergeAtom() instead +/proc/sortNames(list/L, order=1) + return sortTim(L, order >= 0 ? /proc/cmp_name_asc : /proc/cmp_name_dsc) + + +//Converts a bitfield to a list of numbers (or words if a wordlist is provided) +/proc/bitfield2list(bitfield = 0, list/wordlist) + var/list/r = list() + if(istype(wordlist,/list)) + var/max = min(wordlist.len,16) + var/bit = 1 + for(var/i=1, i<=max, i++) + if(bitfield & bit) + r += wordlist[i] + bit = bit << 1 + else + for(var/bit=1, bit<=65535, bit = bit << 1) + if(bitfield & bit) + r += bit + + return r + +// Returns the key based on the index +#define KEYBYINDEX(L, index) (((index <= L:len) && (index > 0)) ? L[index] : null) + +/proc/count_by_type(list/L, type) + var/i = 0 + for(var/T in L) + if(istype(T, type)) + i++ + return i + +/proc/find_record(field, value, list/L) + for(var/datum/data/record/R in L) + if(R.fields[field] == value) + return R + + +//Move a single element from position fromIndex within a list, to position toIndex +//All elements in the range [1,toIndex) before the move will be before the pivot afterwards +//All elements in the range [toIndex, L.len+1) before the move will be after the pivot afterwards +//In other words, it's as if the range [fromIndex,toIndex) have been rotated using a <<< operation common to other languages. +//fromIndex and toIndex must be in the range [1,L.len+1] +//This will preserve associations ~Carnie +/proc/moveElement(list/L, fromIndex, toIndex) + if(fromIndex == toIndex || fromIndex+1 == toIndex) //no need to move + return + if(fromIndex > toIndex) + ++fromIndex //since a null will be inserted before fromIndex, the index needs to be nudged right by one + + L.Insert(toIndex, null) + L.Swap(fromIndex, toIndex) + L.Cut(fromIndex, fromIndex+1) + + +//Move elements [fromIndex,fromIndex+len) to [toIndex-len, toIndex) +//Same as moveElement but for ranges of elements +//This will preserve associations ~Carnie +/proc/moveRange(list/L, fromIndex, toIndex, len=1) + var/distance = abs(toIndex - fromIndex) + if(len >= distance) //there are more elements to be moved than the distance to be moved. Therefore the same result can be achieved (with fewer operations) by moving elements between where we are and where we are going. The result being, our range we are moving is shifted left or right by dist elements + if(fromIndex <= toIndex) + return //no need to move + fromIndex += len //we want to shift left instead of right + + for(var/i=0, i toIndex) + fromIndex += len + + for(var/i=0, i distance) //there is an overlap, therefore swapping each element will require more swaps than inserting new elements + if(fromIndex < toIndex) + toIndex += len + else + fromIndex += len + + for(var/i=0, i fromIndex) + var/a = toIndex + toIndex = fromIndex + fromIndex = a + + for(var/i=0, i 512 +#error Remie said that lummox was adding a way to get a lists +#error contents via list.values, if that is true remove this +#error otherwise, update the version and bug lummox +#elseif +//Flattens a keyed list into a list of it's contents +/proc/flatten_list(list/key_list) + if(!islist(key_list)) + return null + . = list() + for(var/key in key_list) + . |= key_list[key] + +//Picks from the list, with some safeties, and returns the "default" arg if it fails +#define DEFAULTPICK(L, default) ((istype(L, /list) && L:len) ? pick(L) : default) + +#define LAZYINITLIST(L) if (!L) L = list() + +#define UNSETEMPTY(L) if (L && !L.len) L = null + +#define LAZYLEN(L) ( L ? L.len : 0 ) \ No newline at end of file diff --git a/code/__HELPERS/maths.dm b/code/__HELPERS/maths.dm new file mode 100644 index 0000000..c64350a --- /dev/null +++ b/code/__HELPERS/maths.dm @@ -0,0 +1,167 @@ +// Credits to Nickr5 for the useful procs I've taken from his library resource. + +var/const/E = 2.71828183 +var/const/Sqrt2 = 1.41421356 + +// List of square roots for the numbers 1-100. +var/list/sqrtTable = list(1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10) + +/proc/sign(x) + return x!=0?x/abs(x):0 + +/proc/Atan2(x, y) + if(!x && !y) return 0 + var/a = arccos(x / sqrt(x*x + y*y)) + return y >= 0 ? a : -a + +/proc/Ceiling(x, y=1) + return -round(-x / y) * y + +#define Clamp(CLVALUE,CLMIN,CLMAX) ( max( (CLMIN), min((CLVALUE), (CLMAX)) ) ) + +// cotangent +/proc/Cot(x) + return 1 / Tan(x) + +// cosecant +/proc/Csc(x) + return 1 / sin(x) + +/proc/Default(a, b) + return a ? a : b + +// Greatest Common Divisor - Euclid's algorithm +/proc/Gcd(a, b) + return b ? Gcd(b, a % b) : a + +/proc/Inverse(x) + return 1 / x + +/proc/IsAboutEqual(a, b, deviation = 0.1) + return abs(a - b) <= deviation + +/proc/IsEven(x) + return x % 2 == 0 + +// Returns true if val is from min to max, inclusive. +/proc/IsInRange(val, min, max) + return min <= val && val <= max + +/proc/IsInteger(x) + return round(x) == x + +/proc/IsOdd(x) + return !IsEven(x) + +/proc/IsMultiple(x, y) + return x % y == 0 + +// Least Common Multiple +/proc/Lcm(a, b) + return abs(a) / Gcd(a, b) * abs(b) + +// Performs a linear interpolation between a and b. +// Note that amount=0 returns a, amount=1 returns b, and +// amount=0.5 returns the mean of a and b. +/proc/Lerp(a, b, amount = 0.5) + return a + (b - a) * amount + +//Calculates the sum of a list of numbers. +/proc/Sum(var/list/data) + . = 0 + for(var/val in data) + .+= val + +//Calculates the mean of a list of numbers. +/proc/Mean(var/list/data) + . = Sum(data) / (data.len) + + +// Returns the nth root of x. +/proc/Root(n, x) + return x ** (1 / n) + +// secant +/proc/Sec(x) + return 1 / cos(x) + +// The quadratic formula. Returns a list with the solutions, or an empty list +// if they are imaginary. +/proc/SolveQuadratic(a, b, c) + ASSERT(a) + . = list() + var/d = b*b - 4 * a * c + var/bottom = 2 * a + if(d < 0) return + var/root = sqrt(d) + . += (-b + root) / bottom + if(!d) return + . += (-b - root) / bottom + +// tangent +/proc/Tan(x) + return sin(x) / cos(x) + +/proc/ToDegrees(radians) + // 180 / Pi + return radians * 57.2957795 + +/proc/ToRadians(degrees) + // Pi / 180 + return degrees * 0.0174532925 + +// Will filter out extra rotations and negative rotations +// E.g: 540 becomes 180. -180 becomes 180. +/proc/SimplifyDegrees(degrees) + degrees = degrees % 360 + if(degrees < 0) + degrees += 360 + return degrees + +// min is inclusive, max is exclusive +/proc/Wrap(val, min, max) + var/d = max - min + var/t = round((val - min) / d) + return val - (t * d) + + +//A logarithm that converts an integer to a number scaled between 0 and 1 (can be tweaked to be higher). +//Currently, this is used for hydroponics-produce sprite transforming, but could be useful for other transform functions. +/proc/TransformUsingVariable(input, inputmaximum, scaling_modifier = 0) + + var/inputToDegrees = (input/inputmaximum)*180 //Converting from a 0 -> 100 scale to a 0 -> 180 scale. The 0 -> 180 scale corresponds to degrees + var/size_factor = ((-cos(inputToDegrees) +1) /2) //returns a value from 0 to 1 + + return size_factor + scaling_modifier //scale mod of 0 results in a number from 0 to 1. A scale modifier of +0.5 returns 0.5 to 1.5 + //world<< "Transform multiplier of [src] is [size_factor + scaling_modifer]" + + + +//converts a uniform distributed random number into a normal distributed one +//since this method produces two random numbers, one is saved for subsequent calls +//(making the cost negligble for every second call) +//This will return +/- decimals, situated about mean with standard deviation stddev +//68% chance that the number is within 1stddev +//95% chance that the number is within 2stddev +//98% chance that the number is within 3stddev...etc +var/gaussian_next +#define ACCURACY 10000 +/proc/gaussian(mean, stddev) + var/R1;var/R2;var/working + if(gaussian_next != null) + R1 = gaussian_next + gaussian_next = null + else + do + R1 = rand(-ACCURACY,ACCURACY)/ACCURACY + R2 = rand(-ACCURACY,ACCURACY)/ACCURACY + working = R1*R1 + R2*R2 + while(working >= 1 || working==0) + working = sqrt(-2 * log(working) / working) + R1 *= working + gaussian_next = R2 * working + return (mean + stddev * R1) +#undef ACCURACY diff --git a/code/__HELPERS/matrices.dm b/code/__HELPERS/matrices.dm new file mode 100644 index 0000000..c77b8aa --- /dev/null +++ b/code/__HELPERS/matrices.dm @@ -0,0 +1,158 @@ +/matrix/proc/TurnTo(old_angle, new_angle) + . = new_angle - old_angle + Turn(.) //BYOND handles cases such as -270, 360, 540 etc. DOES NOT HANDLE 180 TURNS WELL, THEY TWEEN AND LOOK LIKE SHIT + +/atom/proc/SpinAnimation(speed = 10, loops = -1, clockwise = 1, segments = 3) + if(!segments) + return + var/segment = 360/segments + if(!clockwise) + segment = -segment + var/list/matrices = list() + for(var/i in 1 to segments-1) + var/matrix/M = matrix(transform) + M.Turn(segment*i) + matrices += M + var/matrix/last = matrix(transform) + matrices += last + + speed /= segments + + animate(src, transform = matrices[1], time = speed, loops) + for(var/i in 2 to segments) //2 because 1 is covered above + animate(transform = matrices[i], time = speed) + //doesn't have an object argument because this is "Stacking" with the animate call above + //3 billion% intentional + + +//Dumps the matrix data in format a-f +/matrix/proc/tolist() + . = list() + . += a + . += b + . += c + . += d + . += e + . += f + +//Dumps the matrix data in a matrix-grid format +/* + a d 0 + b e 0 + c f 1 +*/ +/matrix/proc/togrid() + . = list() + . += a + . += d + . += 0 + . += b + . += e + . += 0 + . += c + . += f + . += 1 + +//The X pixel offset of this matrix +/matrix/proc/get_x_shift() + . = c + +//The Y pixel offset of this matrix +/matrix/proc/get_y_shift() + . = f + +// Color matrices: + +/* Documenting a couple of potentially useful color matrices here to inspire ideas +// Greyscale - indentical to saturation @ 0 +list(LUMA_R,LUMA_R,LUMA_R,0, LUMA_G,LUMA_G,LUMA_G,0, LUMA_B,LUMA_B,LUMA_B,0, 0,0,0,1, 0,0,0,0) + +// Color inversion +list(-1,0,0,0, 0,-1,0,0, 0,0,-1,0, 0,0,0,1, 1,1,1,0) + +// Sepiatone +list(0.393,0.349,0.272,0, 0.769,0.686,0.534,0, 0.189,0.168,0.131,0, 0,0,0,1, 0,0,0,0) +*/ + +//Does nothing +/proc/color_matrix_identity() + return list(1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1, 0,0,0,0) + +//Adds/subtracts overall lightness +//0 is identity, 1 makes everything white, -1 makes everything black +/proc/color_matrix_lightness(power) + return list(1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1, power,power,power,0) + +//Changes distance hues have from grey while maintaining the overall lightness. Greys are unaffected. +//1 is identity, 0 is greyscale, >1 oversaturates colors +/proc/color_matrix_saturation(value) + var/inv = 1 - value + var/R = round(LUMA_R * inv, 0.001) + var/G = round(LUMA_G * inv, 0.001) + var/B = round(LUMA_B * inv, 0.001) + + return list(R + value,R,R,0, G,G + value,G,0, B,B,B + value,0, 0,0,0,1, 0,0,0,0) + +//Changes distance colors have from rgb(127,127,127) grey +//1 is identity. 0 makes everything grey >1 blows out colors and greys +/proc/color_matrix_contrast(value) + var/add = (1 - value) / 2 + return list(value,0,0,0, 0,value,0,0, 0,0,value,0, 0,0,0,1, add,add,add,0) + +//Moves all colors angle degrees around the color wheel while maintaining intensity of the color and not affecting greys +//0 is identity, 120 moves reds to greens, 240 moves reds to blues +/proc/color_matrix_rotate_hue(angle) + var/sin = sin(angle) + var/cos = cos(angle) + var/cos_inv_third = 0.333*(1-cos) + var/sqrt3_sin = sqrt(3)*sin + return list( +round(cos+cos_inv_third, 0.001), round(cos_inv_third+sqrt3_sin, 0.001), round(cos_inv_third-sqrt3_sin, 0.001), 0, +round(cos_inv_third-sqrt3_sin, 0.001), round(cos+cos_inv_third, 0.001), round(cos_inv_third+sqrt3_sin, 0.001), 0, +round(cos_inv_third+sqrt3_sin, 0.001), round(cos_inv_third-sqrt3_sin, 0.001), round(cos+cos_inv_third, 0.001), 0, +0,0,0,1, +0,0,0,0) + +//These next three rotate values about one axis only +//x is the red axis, y is the green axis, z is the blue axis. +/proc/color_matrix_rotate_x(angle) + var/sinval = round(sin(angle), 0.001); var/cosval = round(cos(angle), 0.001) + return list(1,0,0,0, 0,cosval,sinval,0, 0,-sinval,cosval,0, 0,0,0,1, 0,0,0,0) + +/proc/color_matrix_rotate_y(angle) + var/sinval = round(sin(angle), 0.001); var/cosval = round(cos(angle), 0.001) + return list(cosval,0,-sinval,0, 0,1,0,0, sinval,0,cosval,0, 0,0,0,1, 0,0,0,0) + +/proc/color_matrix_rotate_z(angle) + var/sinval = round(sin(angle), 0.001); var/cosval = round(cos(angle), 0.001) + return list(cosval,sinval,0,0, -sinval,cosval,0,0, 0,0,1,0, 0,0,0,1, 0,0,0,0) + + +//Returns a matrix addition of A with B +/proc/color_matrix_add(list/A, list/B) + if(!istype(A) || !istype(B)) + return color_matrix_identity() + if(A.len != 20 || B.len != 20) + return color_matrix_identity() + var/list/output = list() + output.len = 20 + for(var/value in 1 to 20) + output[value] = A[value] + B[value] + return output + +//Returns a matrix multiplication of A with B +/proc/color_matrix_multiply(list/A, list/B) + if(!istype(A) || !istype(B)) + return color_matrix_identity() + if(A.len != 20 || B.len != 20) + return color_matrix_identity() + var/list/output = list() + output.len = 20 + var/x = 1 + var/y = 1 + var/offset = 0 + for(y in 1 to 5) + offset = (y-1)*4 + for(x in 1 to 4) + output[offset+x] = round(A[offset+1]*B[x] + A[offset+2]*B[x+4] + A[offset+3]*B[x+8] + A[offset+4]*B[x+12]+(y==5?B[x+16]:0), 0.001) + return output \ No newline at end of file diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm new file mode 100644 index 0000000..600cdd1 --- /dev/null +++ b/code/__HELPERS/mobs.dm @@ -0,0 +1,391 @@ +/proc/random_blood_type() + return pick(4;"O-", 36;"O+", 3;"A-", 28;"A+", 1;"B-", 20;"B+", 1;"AB-", 5;"AB+") + +/proc/random_eye_color() + switch(pick(20;"brown",20;"hazel",20;"grey",15;"blue",15;"green",1;"amber",1;"albino")) + if("brown") + return "630" + if("hazel") + return "542" + if("grey") + return pick("666","777","888","999","aaa","bbb","ccc") + if("blue") + return "36c" + if("green") + return "060" + if("amber") + return "fc0" + if("albino") + return pick("c","d","e","f") + pick("0","1","2","3","4","5","6","7","8","9") + pick("0","1","2","3","4","5","6","7","8","9") + else + return "000" + +/proc/random_underwear(gender) + if(!underwear_list.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/underwear, underwear_list, underwear_m, underwear_f) + switch(gender) + if(MALE) + return pick(underwear_m) + if(FEMALE) + return pick(underwear_f) + else + return pick(underwear_list) + +/proc/random_undershirt(gender) + if(!undershirt_list.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/undershirt, undershirt_list, undershirt_m, undershirt_f) + switch(gender) + if(MALE) + return pick(undershirt_m) + if(FEMALE) + return pick(undershirt_f) + else + return pick(undershirt_list) + +/proc/random_socks() + if(!socks_list.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/socks, socks_list) + return pick(socks_list) + +/proc/random_features() + if(!tails_list_human.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/human, tails_list_human) + if(!tails_list_lizard.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/lizard, tails_list_lizard) + if(!snouts_list.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/snouts, snouts_list) + if(!horns_list.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/horns, horns_list) + if(!ears_list.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/ears, horns_list) + if(!frills_list.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/frills, frills_list) + if(!spines_list.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/spines, spines_list) + if(!legs_list.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/legs, legs_list) + if(!body_markings_list.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/body_markings, body_markings_list) + if(!wings_list.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/wings, wings_list) + + //For now we will always return none for tail_human and ears. + return(list("mcolor" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), "tail_lizard" = pick(tails_list_lizard), "tail_human" = "None", "wings" = "None", "snout" = pick(snouts_list), "horns" = pick(horns_list), "ears" = "None", "frills" = pick(frills_list), "spines" = pick(spines_list), "body_markings" = pick(body_markings_list), "legs" = "Normal Legs")) + +/proc/random_hair_style(gender) + switch(gender) + if(MALE) + return pick(hair_styles_male_list) + if(FEMALE) + return pick(hair_styles_female_list) + else + return pick(hair_styles_list) + +/proc/random_facial_hair_style(gender) + switch(gender) + if(MALE) + return pick(facial_hair_styles_male_list) + if(FEMALE) + return pick(facial_hair_styles_female_list) + else + return pick(facial_hair_styles_list) + +/proc/random_unique_name(gender, attempts_to_find_unique_name=10) + for(var/i=1, i<=attempts_to_find_unique_name, i++) + if(gender==FEMALE) + . = capitalize(pick(first_names_female)) + " " + capitalize(pick(last_names)) + else + . = capitalize(pick(first_names_male)) + " " + capitalize(pick(last_names)) + + if(i != attempts_to_find_unique_name && !findname(.)) + break + +/proc/random_unique_lizard_name(gender, attempts_to_find_unique_name=10) + for(var/i=1, i<=attempts_to_find_unique_name, i++) + . = capitalize(lizard_name(gender)) + + if(i != attempts_to_find_unique_name && !findname(.)) + break + +/proc/random_skin_tone() + return pick(skin_tones) + +var/list/skin_tones = list( + "albino", + "caucasian1", + "caucasian2", + "caucasian3", + "latino", + "mediterranean", + "asian1", + "asian2", + "arab", + "indian", + "african1", + "african2" + ) + +var/global/list/species_list[0] +var/global/list/roundstart_species[0] + +/proc/age2agedescription(age) + switch(age) + if(0 to 1) + return "infant" + if(1 to 3) + return "toddler" + if(3 to 13) + return "child" + if(13 to 19) + return "teenager" + if(19 to 30) + return "young adult" + if(30 to 45) + return "adult" + if(45 to 60) + return "middle-aged" + if(60 to 70) + return "aging" + if(70 to INFINITY) + return "elderly" + else + return "unknown" + +/* +Proc for attack log creation, because really why not +1 argument is the actor +2 argument is the target of action +3 is the description of action(like punched, throwed, or any other verb) +4 should it make adminlog note or not +5 is the tool with which the action was made(usually item) 5 and 6 are very similar(5 have "by " before it, that it) and are separated just to keep things in a bit more in order +6 is additional information, anything that needs to be added +*/ + +/proc/add_logs(mob/user, mob/target, what_done, object=null, addition=null) + var/newhealthtxt = "" + var/coordinates = "" + var/turf/attack_location = get_turf(target) + if(attack_location) + coordinates = "([attack_location.x],[attack_location.y],[attack_location.z])" + if(target && isliving(target)) + var/mob/living/L = target + newhealthtxt = " (NEWHP: [L.health])" + if(user && ismob(user)) + user.attack_log += text("\[[time_stamp()]\] Has [what_done] [target ? "[target.name][(ismob(target) && target.ckey) ? "([target.ckey])" : ""]" : "NON-EXISTANT SUBJECT"][object ? " with [object]" : " "][addition][newhealthtxt][coordinates]") + if(user.mind) + user.mind.attack_log += text("\[[time_stamp()]\] [user ? "[user.name][(ismob(user) && user.ckey) ? "([user.ckey])" : ""]" : "NON-EXISTANT SUBJECT"] has [what_done] [target ? "[target.name][(ismob(target) && target.ckey) ? "([target.ckey])" : ""]" : "NON-EXISTANT SUBJECT"][object ? " with [object]" : " "][addition][newhealthtxt][coordinates]") + if(target && ismob(target)) + target.attack_log += text("\[[time_stamp()]\] Has been [what_done] by [user ? "[user.name][(ismob(user) && user.ckey) ? "([user.ckey])" : ""]" : "NON-EXISTANT SUBJECT"][object ? " with [object]" : " "][addition][newhealthtxt][coordinates]") + if(target.mind) + target.mind.attack_log += text("\[[time_stamp()]\] [target ? "[target.name][(ismob(target) && target.ckey) ? "([target.ckey])" : ""]" : "NON-EXISTANT SUBJECT"] has been [what_done] by [user ? "[user.name][(ismob(user) && user.ckey) ? "([user.ckey])" : ""]" : "NON-EXISTANT SUBJECT"][object ? " with [object]" : " "][addition][newhealthtxt][coordinates]") + log_attack("[user ? "[user.name][(ismob(user) && user.ckey) ? "([user.ckey])" : ""]" : "NON-EXISTANT SUBJECT"] [what_done] [target ? "[target.name][(ismob(target) && target.ckey)? "([target.ckey])" : ""]" : "NON-EXISTANT SUBJECT"][object ? " with [object]" : " "][addition][newhealthtxt][coordinates]") + + + +/proc/do_mob(mob/user , mob/target, time = 30, uninterruptible = 0, progress = 1) + if(!user || !target) + return 0 + var/user_loc = user.loc + + var/drifting = 0 + if(!user.Process_Spacemove(0) && user.inertia_dir) + drifting = 1 + + var/target_loc = target.loc + + var/holding = user.get_active_held_item() + var/datum/progressbar/progbar + if (progress) + progbar = new(user, time, target) + + var/endtime = world.time+time + var/starttime = world.time + . = 1 + while (world.time < endtime) + stoplag() + if (progress) + progbar.update(world.time - starttime) + if(!user || !target) + . = 0 + break + if(uninterruptible) + continue + + if(drifting && !user.inertia_dir) + drifting = 0 + user_loc = user.loc + + if((!drifting && user.loc != user_loc) || target.loc != target_loc || user.get_active_held_item() != holding || user.incapacitated() || user.lying ) + . = 0 + break + if (progress) + qdel(progbar) + + +/proc/do_after(mob/user, delay, needhand = 1, atom/target = null, progress = 1) + if(!user) + return 0 + var/atom/Tloc = null + if(target) + Tloc = target.loc + + var/atom/Uloc = user.loc + + var/drifting = 0 + if(!user.Process_Spacemove(0) && user.inertia_dir) + drifting = 1 + + var/holding = user.get_active_held_item() + + var/holdingnull = 1 //User's hand started out empty, check for an empty hand + if(holding) + holdingnull = 0 //Users hand started holding something, check to see if it's still holding that + + var/datum/progressbar/progbar + if (progress) + progbar = new(user, delay, target) + + var/endtime = world.time + delay + var/starttime = world.time + . = 1 + while (world.time < endtime) + stoplag() + if (progress) + progbar.update(world.time - starttime) + + if(drifting && !user.inertia_dir) + drifting = 0 + Uloc = user.loc + + if(!user || user.stat || user.weakened || user.stunned || (!drifting && user.loc != Uloc)) + . = 0 + break + + if(Tloc && (!target || Tloc != target.loc)) + . = 0 + break + + if(needhand) + //This might seem like an odd check, but you can still need a hand even when it's empty + //i.e the hand is used to pull some item/tool out of the construction + if(!holdingnull) + if(!holding) + . = 0 + break + if(user.get_active_held_item() != holding) + . = 0 + break + if (progress) + qdel(progbar) + +/proc/do_after_mob(mob/user, var/list/targets, time = 30, uninterruptible = 0, progress = 1) + if(!user || !targets) + return 0 + if(!islist(targets)) + targets = list(targets) + var/user_loc = user.loc + + var/drifting = 0 + if(!user.Process_Spacemove(0) && user.inertia_dir) + drifting = 1 + + var/list/originalloc = list() + for(var/atom/target in targets) + originalloc[target] = target.loc + + var/holding = user.get_active_held_item() + var/datum/progressbar/progbar + if(progress) + progbar = new(user, time, targets[1]) + + var/endtime = world.time + time + var/starttime = world.time + . = 1 + mainloop: + while(world.time < endtime) + sleep(1) + if(progress) + progbar.update(world.time - starttime) + if(!user || !targets) + . = 0 + break + if(uninterruptible) + continue + + if(drifting && !user.inertia_dir) + drifting = 0 + user_loc = user.loc + + for(var/atom/target in targets) + if((!drifting && user_loc != user.loc) || originalloc[target] != target.loc || user.get_active_held_item() != holding || user.incapacitated() || user.lying ) + . = 0 + break mainloop + if(progbar) + qdel(progbar) + +/proc/is_species(A, species_datum) + . = FALSE + if(ishuman(A)) + var/mob/living/carbon/human/H = A + if(H.dna && istype(H.dna.species, species_datum)) + . = TRUE + +/proc/spawn_atom_to_turf(spawn_type, target, amount, admin_spawn=FALSE) + var/turf/T = get_turf(target) + if(!T) + throw EXCEPTION("attempt to spawn atom type: [spawn_type] in nullspace") + + for(var/j in 1 to amount) + var/atom/X = new spawn_type(T) + X.admin_spawned = admin_spawn + +/proc/spawn_and_random_walk(spawn_type, target, amount, walk_chance=100, max_walk=3, always_max_walk=FALSE, admin_spawn=FALSE) + var/turf/T = get_turf(target) + var/step_count = 0 + if(!T) + throw EXCEPTION("attempt to spawn atom type: [spawn_type] in nullspace") + + for(var/j in 1 to amount) + var/atom/movable/X = new spawn_type(T) + X.admin_spawned = admin_spawn + + if(always_max_walk || prob(walk_chance)) + if(always_max_walk) + step_count = max_walk + else + step_count = rand(1, max_walk) + + for(var/i in 1 to step_count) + step(X, pick(NORTH, SOUTH, EAST, WEST)) + +/proc/deadchat_broadcast(message, mob/follow_target=null, speaker_key=null, message_type=DEADCHAT_REGULAR) + for(var/mob/M in player_list) + var/datum/preferences/prefs + if(M.client && M.client.prefs) + prefs = M.client.prefs + else + prefs = new + + var/adminoverride = 0 + if(M.client && M.client.holder && (prefs.chat_toggles & CHAT_DEAD)) + adminoverride = 1 + if(isnewplayer(M) && !adminoverride) + continue + if(M.stat != DEAD && !adminoverride) + continue + if(speaker_key && speaker_key in prefs.ignoring) + continue + + switch(message_type) + if(DEADCHAT_DEATHRATTLE) + if(prefs.toggles & DISABLE_DEATHRATTLE) + continue + if(DEADCHAT_ARRIVALRATTLE) + if(prefs.toggles & DISABLE_ARRIVALRATTLE) + continue + + if(isobserver(M) && follow_target) + var/link = FOLLOW_LINK(M, follow_target) + M << "[link] [message]" + else + M << "[message]" diff --git a/code/__HELPERS/names.dm b/code/__HELPERS/names.dm new file mode 100644 index 0000000..f362f8d --- /dev/null +++ b/code/__HELPERS/names.dm @@ -0,0 +1,228 @@ +/proc/lizard_name(gender) + if(gender == MALE) + return "[pick(lizard_names_male)]-[pick(lizard_names_male)]" + else + return "[pick(lizard_names_female)]-[pick(lizard_names_female)]" + + +var/church_name = null +/proc/church_name() + if (church_name) + return church_name + + var/name = "" + + name += pick("Holy", "United", "First", "Second", "Last") + + if (prob(20)) + name += " Space" + + name += " " + pick("Church", "Cathedral", "Body", "Worshippers", "Movement", "Witnesses") + name += " of [religion_name()]" + + return name + +var/command_name = null +/proc/command_name() + if (command_name) + return command_name + + var/name = "Central Command" + + command_name = name + return name + +/proc/change_command_name(name) + + command_name = name + + return name + +var/religion_name = null +/proc/religion_name() + if (religion_name) + return religion_name + + var/name = "" + + name += pick("bee", "science", "edu", "captain", "assistant", "monkey", "alien", "space", "unit", "sprocket", "gadget", "bomb", "revolution", "beyond", "station", "goon", "robot", "ivor", "hobnob") + name += pick("ism", "ia", "ology", "istism", "ites", "ick", "ian", "ity") + + return capitalize(name) + +/proc/station_name() + if(station_name) + return station_name + + if(config && config.station_name) + station_name = config.station_name + else + station_name = new_station_name() + + if(config && config.server_name) + world.name = "[config.server_name][config.server_name==station_name ? "" : ": [station_name]"]" + else + world.name = station_name + + return station_name + +/proc/new_station_name() + //var/random = rand(1,5) + var/name = "" + var/new_station_name = "" + + //Rare: Pre-Prefix + /*if (prob(10)) + name = pick(station_prefixes) + new_station_name = name + " " + name = "" + + // Prefix + for(var/holiday_name in SSevent.holidays) + if(holiday_name == "Friday the 13th") + random = 13 + var/datum/holiday/holiday = SSevent.holidays[holiday_name] + name = holiday.getStationPrefix() + + */ + //get normal name + if(!name) + name = pick(station_names) + if(name) + new_station_name += name + " " + + // Suffix + name = "Edition"//pick(station_suffixes) + new_station_name += name //+ " " + + // ID Number + /*switch(random) + if(1) + new_station_name += "[rand(1, 99)]" + if(2) + new_station_name += pick(greek_letters) + if(3) + new_station_name += "\Roman[rand(1,99)]" + if(4) + new_station_name += pick(phonetic_alphabet) + if(5) + new_station_name += pick(numbers_as_words) + if(13) + new_station_name += pick("13","XIII","Thirteen") + */ + return new_station_name + +var/syndicate_name = null +/proc/syndicate_name() + if (syndicate_name) + return syndicate_name + + var/name = "" + + // Prefix + name += pick("Clandestine", "Prima", "Blue", "Zero-G", "Max", "Blasto", "Waffle", "North", "Omni", "Newton", "Cyber", "Bonk", "Gene", "Gib") + + // Suffix + if (prob(80)) + name += " " + + // Full + if (prob(60)) + name += pick("Syndicate", "Consortium", "Collective", "Corporation", "Group", "Holdings", "Biotech", "Industries", "Systems", "Products", "Chemicals", "Enterprises", "Family", "Creations", "International", "Intergalactic", "Interplanetary", "Foundation", "Positronics", "Hive") + // Broken + else + name += pick("Syndi", "Corp", "Bio", "System", "Prod", "Chem", "Inter", "Hive") + name += pick("", "-") + name += pick("Tech", "Sun", "Co", "Tek", "X", "Inc", "Code") + // Small + else + name += pick("-", "*", "") + name += pick("Tech", "Sun", "Co", "Tek", "X", "Inc", "Gen", "Star", "Dyne", "Code", "Hive") + + syndicate_name = name + return name + + +//Traitors and traitor silicons will get these. Revs will not. +var/syndicate_code_phrase//Code phrase for traitors. +var/syndicate_code_response//Code response for traitors. + + /* + Should be expanded. + How this works: + Instead of "I'm looking for James Smith," the traitor would say "James Smith" as part of a conversation. + Another traitor may then respond with: "They enjoy running through the void-filled vacuum of the derelict." + The phrase should then have the words: James Smith. + The response should then have the words: run, void, and derelict. + This way assures that the code is suited to the conversation and is unpredicatable. + Obviously, some people will be better at this than others but in theory, everyone should be able to do it and it only enhances roleplay. + Can probably be done through "{ }" but I don't really see the practical benefit. + One example of an earlier system is commented below. + /N + */ + +/proc/generate_code_phrase()//Proc is used for phrase and response in master_controller.dm + + var/code_phrase = ""//What is returned when the proc finishes. + var/words = pick(//How many words there will be. Minimum of two. 2, 4 and 5 have a lesser chance of being selected. 3 is the most likely. + 50; 2, + 200; 3, + 50; 4, + 25; 5 + ) + + var/safety[] = list(1,2,3)//Tells the proc which options to remove later on. + var/nouns[] = list("love","hate","anger","peace","pride","sympathy","bravery","loyalty","honesty","integrity","compassion","charity","success","courage","deceit","skill","beauty","brilliance","pain","misery","beliefs","dreams","justice","truth","faith","liberty","knowledge","thought","information","culture","trust","dedication","progress","education","hospitality","leisure","trouble","friendships", "relaxation") + var/drinks[] = list("vodka and tonic","gin fizz","bahama mama","manhattan","black Russian","whiskey soda","long island tea","margarita","Irish coffee"," manly dwarf","Irish cream","doctor's delight","Beepksy Smash","tequila sunrise","brave bull","gargle blaster","bloody mary","whiskey cola","white Russian","vodka martini","martini","Cuba libre","kahlua","vodka","wine","moonshine") + var/locations[] = teleportlocs.len ? teleportlocs : drinks//if null, defaults to drinks instead. + + var/names[] = list() + for(var/datum/data/record/t in data_core.general)//Picks from crew manifest. + names += t.fields["name"] + + var/maxwords = words//Extra var to check for duplicates. + + for(words,words>0,words--)//Randomly picks from one of the choices below. + + if(words==1&&(1 in safety)&&(2 in safety))//If there is only one word remaining and choice 1 or 2 have not been selected. + safety = list(pick(1,2))//Select choice 1 or 2. + else if(words==1&&maxwords==2)//Else if there is only one word remaining (and there were two originally), and 1 or 2 were chosen, + safety = list(3)//Default to list 3 + + switch(pick(safety))//Chance based on the safety list. + if(1)//1 and 2 can only be selected once each to prevent more than two specific names/places/etc. + switch(rand(1,2))//Mainly to add more options later. + if(1) + if(names.len&&prob(70)) + code_phrase += pick(names) + else + if(prob(10)) + code_phrase += pick(lizard_name(MALE),lizard_name(FEMALE)) + else + code_phrase += pick(pick(first_names_male,first_names_female)) + code_phrase += " " + code_phrase += pick(last_names) + if(2) + code_phrase += pick(get_all_jobs())//Returns a job. + safety -= 1 + if(2) + switch(rand(1,2))//Places or things. + if(1) + code_phrase += pick(drinks) + if(2) + code_phrase += pick(locations) + safety -= 2 + if(3) + switch(rand(1,3))//Nouns, adjectives, verbs. Can be selected more than once. + if(1) + code_phrase += pick(nouns) + if(2) + code_phrase += pick(adjectives) + if(3) + code_phrase += pick(verbs) + if(words==1) + code_phrase += "." + else + code_phrase += ", " + + return code_phrase diff --git a/code/__HELPERS/pronouns.dm b/code/__HELPERS/pronouns.dm new file mode 100644 index 0000000..c2c6eb2 --- /dev/null +++ b/code/__HELPERS/pronouns.dm @@ -0,0 +1,215 @@ +//pronoun procs, for getting pronouns without using the text macros that only work in certain positions +//datums don't have gender, but most of their subtypes do! +/datum/proc/p_they(capitalized, temp_gender) + . = "it" + if(capitalized) + . = capitalize(.) + +/datum/proc/p_their(capitalized, temp_gender) + . = "its" + if(capitalized) + . = capitalize(.) + +/datum/proc/p_them(capitalized, temp_gender) + . = "it" + if(capitalized) + . = capitalize(.) + +/datum/proc/p_have(temp_gender) + . = "has" + +/datum/proc/p_are(temp_gender) + . = "is" + +/datum/proc/p_were(temp_gender) + . = "was" + +/datum/proc/p_theyre(capitalized, temp_gender) + . = p_they(capitalized, temp_gender) + "'" + copytext(p_are(temp_gender), 2) + +/datum/proc/p_s(temp_gender) //is this a descriptive proc name, or what? + . = "s" + +//like clients, which do have gender. +/client/p_they(capitalized, temp_gender) + if(!temp_gender) + temp_gender = gender + . = "they" + switch(temp_gender) + if(FEMALE) + . = "she" + if(MALE) + . = "he" + if(capitalized) + . = capitalize(.) + +/client/p_their(capitalized, temp_gender) + if(!temp_gender) + temp_gender = gender + . = "their" + switch(temp_gender) + if(FEMALE) + . = "her" + if(MALE) + . = "his" + if(capitalized) + . = capitalize(.) + +/client/p_them(capitalized, temp_gender) + if(!temp_gender) + temp_gender = gender + . = "them" + switch(temp_gender) + if(FEMALE) + . = "her" + if(MALE) + . = "him" + if(capitalized) + . = capitalize(.) + +/client/p_have(temp_gender) + if(!temp_gender) + temp_gender = gender + . = "has" + if(temp_gender == PLURAL || temp_gender == NEUTER) + . = "have" + +/client/p_are(temp_gender) + if(!temp_gender) + temp_gender = gender + . = "is" + if(temp_gender == PLURAL || temp_gender == NEUTER) + . = "are" + +/client/p_were(temp_gender) + if(!temp_gender) + temp_gender = gender + . = "was" + if(temp_gender == PLURAL || temp_gender == NEUTER) + . = "were" + +/client/p_s(temp_gender) + if(!temp_gender) + temp_gender = gender + if(temp_gender != PLURAL && temp_gender != NEUTER) + . = "s" + +//mobs(and atoms but atoms don't really matter write your own proc overrides) also have gender! +/mob/p_they(capitalized, temp_gender) + if(!temp_gender) + temp_gender = gender + . = "it" + switch(temp_gender) + if(FEMALE) + . = "she" + if(MALE) + . = "he" + if(PLURAL) + . = "they" + if(capitalized) + . = capitalize(.) + +/mob/p_their(capitalized, temp_gender) + if(!temp_gender) + temp_gender = gender + . = "its" + switch(temp_gender) + if(FEMALE) + . = "her" + if(MALE) + . = "his" + if(PLURAL) + . = "their" + if(capitalized) + . = capitalize(.) + +/mob/p_them(capitalized, temp_gender) + if(!temp_gender) + temp_gender = gender + . = "it" + switch(temp_gender) + if(FEMALE) + . = "her" + if(MALE) + . = "him" + if(PLURAL) + . = "them" + if(capitalized) + . = capitalize(.) + +/mob/p_have(temp_gender) + if(!temp_gender) + temp_gender = gender + . = "has" + if(temp_gender == PLURAL) + . = "have" + +/mob/p_are(temp_gender) + if(!temp_gender) + temp_gender = gender + . = "is" + if(temp_gender == PLURAL) + . = "are" + +/mob/p_were(temp_gender) + if(!temp_gender) + temp_gender = gender + . = "was" + if(temp_gender == PLURAL) + . = "were" + +/mob/p_s(temp_gender) + if(!temp_gender) + temp_gender = gender + if(temp_gender != PLURAL) + . = "s" + +//humans need special handling, because they can have their gender hidden +/mob/living/carbon/human/p_they(capitalized, temp_gender) + var/list/obscured = check_obscured_slots() + var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE)) + if((slot_w_uniform in obscured) && skipface) + temp_gender = PLURAL + return ..() + +/mob/living/carbon/human/p_their(capitalized, temp_gender) + var/list/obscured = check_obscured_slots() + var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE)) + if((slot_w_uniform in obscured) && skipface) + temp_gender = PLURAL + return ..() + +/mob/living/carbon/human/p_them(capitalized, temp_gender) + var/list/obscured = check_obscured_slots() + var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE)) + if((slot_w_uniform in obscured) && skipface) + temp_gender = PLURAL + return ..() + +/mob/living/carbon/human/p_have(temp_gender) + var/list/obscured = check_obscured_slots() + var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE)) + if((slot_w_uniform in obscured) && skipface) + temp_gender = PLURAL + return ..() + +/mob/living/carbon/human/p_are(temp_gender) + var/list/obscured = check_obscured_slots() + var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE)) + if((slot_w_uniform in obscured) && skipface) + temp_gender = PLURAL + return ..() + +/mob/living/carbon/human/p_were(temp_gender) + var/list/obscured = check_obscured_slots() + var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE)) + if((slot_w_uniform in obscured) && skipface) + temp_gender = PLURAL + return ..() + +/mob/living/carbon/human/p_s(temp_gender) + var/list/obscured = check_obscured_slots() + var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE)) + if((slot_w_uniform in obscured) && skipface) + temp_gender = PLURAL + return ..() diff --git a/code/__HELPERS/radio.dm b/code/__HELPERS/radio.dm new file mode 100644 index 0000000..1706e86 --- /dev/null +++ b/code/__HELPERS/radio.dm @@ -0,0 +1,14 @@ +// Ensure the frequency is within bounds of what it should be sending/recieving at +/proc/sanitize_frequency(frequency, free = FALSE) + . = round(frequency) + if(free) + . = Clamp(frequency, MIN_FREE_FREQ, MAX_FREE_FREQ) + else + . = Clamp(frequency, MIN_FREQ, MAX_FREQ) + if(!(. % 2)) // Ensure the last digit is an odd number + . += 1 + +// Format frequency by moving the decimal. +/proc/format_frequency(frequency) + frequency = text2num(frequency) + return "[round(frequency / 10)].[frequency % 10]" diff --git a/code/__HELPERS/sanitize_values.dm b/code/__HELPERS/sanitize_values.dm new file mode 100644 index 0000000..b511c61 --- /dev/null +++ b/code/__HELPERS/sanitize_values.dm @@ -0,0 +1,74 @@ +//general stuff +/proc/sanitize_integer(number, min=0, max=1, default=0) + if(isnum(number)) + number = round(number) + if(min <= number && number <= max) + return number + return default + +/proc/sanitize_text(text, default="") + if(istext(text)) + return text + return default + +/proc/sanitize_inlist(value, list/List, default) + if(value in List) + return value + if(default) + return default + if(List && List.len) + return pick(List) + + + +//more specialised stuff +/proc/sanitize_gender(gender,neuter=0,plural=0, default="male") + switch(gender) + if(MALE, FEMALE) + return gender + if(NEUTER) + if(neuter) + return gender + else + return default + if(PLURAL) + if(plural) + return gender + else + return default + return default + +/proc/sanitize_hexcolor(color, desired_format=3, include_crunch=0, default) + var/crunch = include_crunch ? "#" : "" + if(!istext(color)) + color = "" + + var/start = 1 + (text2ascii(color,1)==35) + var/len = length(color) + var/step_size = 1 + ((len+1)-start != desired_format) + + . = "" + for(var/i=start, i<=len, i+=step_size) + var/ascii = text2ascii(color,i) + switch(ascii) + if(48 to 57) + . += ascii2text(ascii) //numbers 0 to 9 + if(97 to 102) + . += ascii2text(ascii) //letters a to f + if(65 to 70) + . += ascii2text(ascii+32) //letters A to F - translates to lowercase + else + break + + if(length(.) != desired_format) + if(default) + return default + return crunch + repeat_string(desired_format, "0") + + return crunch + . + +/proc/sanitize_ooccolor(color) + var/list/HSL = rgb2hsl(hex2num(copytext(color,2,4)),hex2num(copytext(color,4,6)),hex2num(copytext(color,6,8))) + HSL[3] = min(HSL[3],0.4) + var/list/RGB = hsl2rgb(arglist(HSL)) + return "#[num2hex(RGB[1],2)][num2hex(RGB[2],2)][num2hex(RGB[3],2)]" \ No newline at end of file diff --git a/code/__HELPERS/sorts/InsertSort.dm b/code/__HELPERS/sorts/InsertSort.dm new file mode 100644 index 0000000..5ffaa4c --- /dev/null +++ b/code/__HELPERS/sorts/InsertSort.dm @@ -0,0 +1,16 @@ +//simple insertion sort - generally faster than merge for runs of 7 or smaller +/proc/sortInsert(list/L, cmp=/proc/cmp_numeric_asc, associative, fromIndex=1, toIndex=0) + if(L && L.len >= 2) + fromIndex = fromIndex % L.len + toIndex = toIndex % (L.len+1) + if(fromIndex <= 0) + fromIndex += L.len + if(toIndex <= 0) + toIndex += L.len + 1 + + sortInstance.L = L + sortInstance.cmp = cmp + sortInstance.associative = associative + + sortInstance.binarySort(fromIndex, toIndex, fromIndex) + return L \ No newline at end of file diff --git a/code/__HELPERS/sorts/MergeSort.dm b/code/__HELPERS/sorts/MergeSort.dm new file mode 100644 index 0000000..228a08e --- /dev/null +++ b/code/__HELPERS/sorts/MergeSort.dm @@ -0,0 +1,16 @@ +//merge-sort - gernerally faster than insert sort, for runs of 7 or larger +/proc/sortMerge(list/L, cmp=/proc/cmp_numeric_asc, associative, fromIndex=1, toIndex) + if(L && L.len >= 2) + fromIndex = fromIndex % L.len + toIndex = toIndex % (L.len+1) + if(fromIndex <= 0) + fromIndex += L.len + if(toIndex <= 0) + toIndex += L.len + 1 + + sortInstance.L = L + sortInstance.cmp = cmp + sortInstance.associative = associative + sortInstance.mergeSort(fromIndex, toIndex) + + return L \ No newline at end of file diff --git a/code/__HELPERS/sorts/TimSort.dm b/code/__HELPERS/sorts/TimSort.dm new file mode 100644 index 0000000..4aa5126 --- /dev/null +++ b/code/__HELPERS/sorts/TimSort.dm @@ -0,0 +1,17 @@ +//TimSort interface +/proc/sortTim(list/L, cmp=/proc/cmp_numeric_asc, associative, fromIndex=1, toIndex=0) + if(L && L.len >= 2) + fromIndex = fromIndex % L.len + toIndex = toIndex % (L.len+1) + if(fromIndex <= 0) + fromIndex += L.len + if(toIndex <= 0) + toIndex += L.len + 1 + + sortInstance.L = L + sortInstance.cmp = cmp + sortInstance.associative = associative + + sortInstance.timSort(fromIndex, toIndex) + + return L \ No newline at end of file diff --git a/code/__HELPERS/sorts/__main.dm b/code/__HELPERS/sorts/__main.dm new file mode 100644 index 0000000..e2c0083 --- /dev/null +++ b/code/__HELPERS/sorts/__main.dm @@ -0,0 +1,656 @@ + //These are macros used to reduce on proc calls +#define fetchElement(L, i) (associative) ? L[L[i]] : L[i] + + //Minimum sized sequence that will be merged. Anything smaller than this will use binary-insertion sort. + //Should be a power of 2 +#define MIN_MERGE 32 + + //When we get into galloping mode, we stay there until both runs win less often than MIN_GALLOP consecutive times. +#define MIN_GALLOP 7 + + //This is a global instance to allow much of this code to be reused. The interfaces are kept seperately +var/datum/sortInstance/sortInstance = new() +/datum/sortInstance + //The array being sorted. + var/list/L + + //The comparator proc-reference + var/cmp = /proc/cmp_numeric_asc + + //whether we are sorting list keys (0: L[i]) or associated values (1: L[L[i]]) + var/associative = 0 + + //This controls when we get *into* galloping mode. It is initialized to MIN_GALLOP. + //The mergeLo and mergeHi methods nudge it higher for random data, and lower for highly structured data. + var/minGallop = MIN_GALLOP + + //Stores information regarding runs yet to be merged. + //Run i starts at runBase[i] and extends for runLen[i] elements. + //runBase[i] + runLen[i] == runBase[i+1] + //var/stackSize + var/list/runBases = list() + var/list/runLens = list() + + + proc/timSort(start, end) + runBases.Cut() + runLens.Cut() + + var/remaining = end - start + + //If array is small, do a 'mini-TimSort' with no merges + if(remaining < MIN_MERGE) + var/initRunLen = countRunAndMakeAscending(start, end) + binarySort(start, end, start+initRunLen) + return + + //March over the array finding natural runs + //Extend any short natural runs to runs of length minRun + var/minRun = minRunLength(remaining) + + do + //identify next run + var/runLen = countRunAndMakeAscending(start, end) + + //if run is short, extend to min(minRun, remaining) + if(runLen < minRun) + var/force = (remaining <= minRun) ? remaining : minRun + + binarySort(start, start+force, start+runLen) + runLen = force + + //add data about run to queue + runBases.Add(start) + runLens.Add(runLen) + + //maybe merge + mergeCollapse() + + //Advance to find next run + start += runLen + remaining -= runLen + + while(remaining > 0) + + + //Merge all remaining runs to complete sort + //ASSERT(start == end) + mergeForceCollapse(); + //ASSERT(runBases.len == 1) + + //reset minGallop, for successive calls + minGallop = MIN_GALLOP + + return L + + /* + Sorts the specified portion of the specified array using a binary + insertion sort. This is the best method for sorting small numbers + of elements. It requires O(n log n) compares, but O(n^2) data + movement (worst case). + + If the initial part of the specified range is already sorted, + this method can take advantage of it: the method assumes that the + elements in range [lo,start) are already sorted + + lo the index of the first element in the range to be sorted + hi the index after the last element in the range to be sorted + start the index of the first element in the range that is not already known to be sorted + */ + proc/binarySort(lo, hi, start) + //ASSERT(lo <= start && start <= hi) + if(start <= lo) + start = lo + 1 + + for(,start < hi, ++start) + var/pivot = fetchElement(L,start) + + //set left and right to the index where pivot belongs + var/left = lo + var/right = start + //ASSERT(left <= right) + + //[lo, left) elements <= pivot < [right, start) elements + //in other words, find where the pivot element should go using bisection search + while(left < right) + var/mid = (left + right) >> 1 //round((left+right)/2) + if(call(cmp)(fetchElement(L,mid), pivot) > 0) + right = mid + else + left = mid+1 + + //ASSERT(left == right) + moveElement(L, start, left) //move pivot element to correct location in the sorted range + + /* + Returns the length of the run beginning at the specified position and reverses the run if it is back-to-front + + A run is the longest ascending sequence with: + a[lo] <= a[lo + 1] <= a[lo + 2] <= ... + or the longest descending sequence with: + a[lo] > a[lo + 1] > a[lo + 2] > ... + + For its intended use in a stable mergesort, the strictness of the + definition of "descending" is needed so that the call can safely + reverse a descending sequence without violating stability. + */ + proc/countRunAndMakeAscending(lo, hi) + //ASSERT(lo < hi) + + var/runHi = lo + 1 + if(runHi >= hi) + return 1 + + var/last = fetchElement(L,lo) + var/current = fetchElement(L,runHi++) + + if(call(cmp)(current, last) < 0) + while(runHi < hi) + last = current + current = fetchElement(L,runHi) + if(call(cmp)(current, last) >= 0) + break + ++runHi + reverseRange(L, lo, runHi) + else + while(runHi < hi) + last = current + current = fetchElement(L,runHi) + if(call(cmp)(current, last) < 0) + break + ++runHi + + return runHi - lo + + //Returns the minimum acceptable run length for an array of the specified length. + //Natural runs shorter than this will be extended with binarySort + proc/minRunLength(n) + //ASSERT(n >= 0) + var/r = 0 //becomes 1 if any bits are shifted off + while(n >= MIN_MERGE) + r |= (n & 1) + n >>= 1 + return n + r + + //Examines the stack of runs waiting to be merged and merges adjacent runs until the stack invariants are reestablished: + // runLen[i-3] > runLen[i-2] + runLen[i-1] + // runLen[i-2] > runLen[i-1] + //This method is called each time a new run is pushed onto the stack. + //So the invariants are guaranteed to hold for i= 2) + var/n = runBases.len - 1 + if(n > 1 && runLens[n-1] <= runLens[n] + runLens[n+1]) + if(runLens[n-1] < runLens[n+1]) + --n + mergeAt(n) + else if(runLens[n] <= runLens[n+1]) + mergeAt(n) + else + break //Invariant is established + + + //Merges all runs on the stack until only one remains. + //Called only once, to finalise the sort + proc/mergeForceCollapse() + while(runBases.len >= 2) + var/n = runBases.len - 1 + if(n > 1 && runLens[n-1] < runLens[n+1]) + --n + mergeAt(n) + + + //Merges the two consecutive runs at stack indices i and i+1 + //Run i must be the penultimate or antepenultimate run on the stack + //In other words, i must be equal to stackSize-2 or stackSize-3 + proc/mergeAt(i) + //ASSERT(runBases.len >= 2) + //ASSERT(i >= 1) + //ASSERT(i == runBases.len - 1 || i == runBases.len - 2) + + var/base1 = runBases[i] + var/base2 = runBases[i+1] + var/len1 = runLens[i] + var/len2 = runLens[i+1] + + //ASSERT(len1 > 0 && len2 > 0) + //ASSERT(base1 + len1 == base2) + + //Record the legth of the combined runs. If i is the 3rd last run now, also slide over the last run + //(which isn't involved in this merge). The current run (i+1) goes away in any case. + runLens[i] += runLens[i+1] + runLens.Cut(i+1, i+2) + runBases.Cut(i+1, i+2) + + + //Find where the first element of run2 goes in run1. + //Prior elements in run1 can be ignored (because they're already in place) + var/k = gallopRight(fetchElement(L,base2), base1, len1, 0) + //ASSERT(k >= 0) + base1 += k + len1 -= k + if(len1 == 0) + return + + //Find where the last element of run1 goes in run2. + //Subsequent elements in run2 can be ignored (because they're already in place) + len2 = gallopLeft(fetchElement(L,base1 + len1 - 1), base2, len2, len2-1) + //ASSERT(len2 >= 0) + if(len2 == 0) + return + + //Merge remaining runs, using tmp array with min(len1, len2) elements + if(len1 <= len2) + mergeLo(base1, len1, base2, len2) + else + mergeHi(base1, len1, base2, len2) + + + /* + Locates the position to insert key within the specified sorted range + If the range contains elements equal to key, this will return the index of the LEFTMOST of those elements + + key the element to be inserted into the sorted range + base the index of the first element of the sorted range + len the length of the sorted range, must be greater than 0 + hint the offset from base at which to begin the search, such that 0 <= hint < len; i.e. base <= hint < base+hint + + Returns the index at which to insert element 'key' + */ + proc/gallopLeft(key, base, len, hint) + //ASSERT(len > 0 && hint >= 0 && hint < len) + + var/lastOffset = 0 + var/offset = 1 + if(call(cmp)(key, fetchElement(L,base+hint)) > 0) + var/maxOffset = len - hint + while(offset < maxOffset && call(cmp)(key, fetchElement(L,base+hint+offset)) > 0) + lastOffset = offset + offset = (offset << 1) + 1 + + if(offset > maxOffset) + offset = maxOffset + + lastOffset += hint + offset += hint + + else + var/maxOffset = hint + 1 + while(offset < maxOffset && call(cmp)(key, fetchElement(L,base+hint-offset)) <= 0) + lastOffset = offset + offset = (offset << 1) + 1 + + if(offset > maxOffset) + offset = maxOffset + + var/temp = lastOffset + lastOffset = hint - offset + offset = hint - temp + + //ASSERT(-1 <= lastOffset && lastOffset < offset && offset <= len) + + //Now L[base+lastOffset] < key <= L[base+offset], so key belongs somewhere to the right of lastOffset but no farther than + //offset. Do a binary search with invariant L[base+lastOffset-1] < key <= L[base+offset] + ++lastOffset + while(lastOffset < offset) + var/m = lastOffset + ((offset - lastOffset) >> 1) + + if(call(cmp)(key, fetchElement(L,base+m)) > 0) + lastOffset = m + 1 + else + offset = m + + //ASSERT(lastOffset == offset) + return offset + + /** + * Like gallopLeft, except that if the range contains an element equal to + * key, gallopRight returns the index after the rightmost equal element. + * + * @param key the key whose insertion point to search for + * @param a the array in which to search + * @param base the index of the first element in the range + * @param len the length of the range; must be > 0 + * @param hint the index at which to begin the search, 0 <= hint < n. + * The closer hint is to the result, the faster this method will run. + * @param c the comparator used to order the range, and to search + * @return the int k, 0 <= k <= n such that a[b + k - 1] <= key < a[b + k] + */ + proc/gallopRight(key, base, len, hint) + //ASSERT(len > 0 && hint >= 0 && hint < len) + + var/offset = 1 + var/lastOffset = 0 + if(call(cmp)(key, fetchElement(L,base+hint)) < 0) //key <= L[base+hint] + var/maxOffset = hint + 1 //therefore we want to insert somewhere in the range [base,base+hint] = [base+,base+(hint+1)) + while(offset < maxOffset && call(cmp)(key, fetchElement(L,base+hint-offset)) < 0) //we are iterating backwards + lastOffset = offset + offset = (offset << 1) + 1 //1 3 7 15 + //if(offset <= 0) //int overflow, not an issue here since we are using floats + // offset = maxOffset + + if(offset > maxOffset) + offset = maxOffset + + var/temp = lastOffset + lastOffset = hint - offset + offset = hint - temp + + else //key > L[base+hint] + var/maxOffset = len - hint //therefore we want to insert somewhere in the range (base+hint,base+len) = [base+hint+1, base+hint+(len-hint)) + while(offset < maxOffset && call(cmp)(key, fetchElement(L,base+hint+offset)) >= 0) + lastOffset = offset + offset = (offset << 1) + 1 + //if(offset <= 0) //int overflow, not an issue here since we are using floats + // offset = maxOffset + + if(offset > maxOffset) + offset = maxOffset + + lastOffset += hint + offset += hint + + //ASSERT(-1 <= lastOffset && lastOffset < offset && offset <= len) + + ++lastOffset + while(lastOffset < offset) + var/m = lastOffset + ((offset - lastOffset) >> 1) + + if(call(cmp)(key, fetchElement(L,base+m)) < 0) //key <= L[base+m] + offset = m + else //key > L[base+m] + lastOffset = m + 1 + + //ASSERT(lastOffset == offset) + + return offset + + + //Merges two adjacent runs in-place in a stable fashion. + //For performance this method should only be called when len1 <= len2! + proc/mergeLo(base1, len1, base2, len2) + //ASSERT(len1 > 0 && len2 > 0 && base1 + len1 == base2) + + var/cursor1 = base1 + var/cursor2 = base2 + + //degenerate cases + if(len2 == 1) + moveElement(L, cursor2, cursor1) + return + + if(len1 == 1) + moveElement(L, cursor1, cursor2+len2) + return + + + //Move first element of second run + moveElement(L, cursor2++, cursor1++) + --len2 + + outer: + while(1) + var/count1 = 0 //# of times in a row that first run won + var/count2 = 0 // " " " " " " second run won + + //do the straightfoward thin until one run starts winning consistently + + do + //ASSERT(len1 > 1 && len2 > 0) + if(call(cmp)(fetchElement(L,cursor2), fetchElement(L,cursor1)) < 0) + moveElement(L, cursor2++, cursor1++) + --len2 + + ++count2 + count1 = 0 + + if(len2 == 0) + break outer + else + ++cursor1 + + ++count1 + count2 = 0 + + if(--len1 == 1) + break outer + + while((count1 | count2) < minGallop) + + + //one run is winning consistently so galloping may provide huge benifits + //so try galloping, until such time as the run is no longer consistently winning + do + //ASSERT(len1 > 1 && len2 > 0) + + count1 = gallopRight(fetchElement(L,cursor2), cursor1, len1, 0) + if(count1) + cursor1 += count1 + len1 -= count1 + + if(len1 <= 1) + break outer + + moveElement(L, cursor2, cursor1) + ++cursor2 + ++cursor1 + if(--len2 == 0) + break outer + + count2 = gallopLeft(fetchElement(L,cursor1), cursor2, len2, 0) + if(count2) + moveRange(L, cursor2, cursor1, count2) + + cursor2 += count2 + cursor1 += count2 + len2 -= count2 + + if(len2 == 0) + break outer + + ++cursor1 + if(--len1 == 1) + break outer + + --minGallop + + while((count1|count2) > MIN_GALLOP) + + if(minGallop < 0) + minGallop = 0 + minGallop += 2; // Penalize for leaving gallop mode + + + if(len1 == 1) + //ASSERT(len2 > 0) + moveElement(L, cursor1, cursor2+len2) + + //else + //ASSERT(len2 == 0) + //ASSERT(len1 > 1) + + + proc/mergeHi(base1, len1, base2, len2) + //ASSERT(len1 > 0 && len2 > 0 && base1 + len1 == base2) + + var/cursor1 = base1 + len1 - 1 //start at end of sublists + var/cursor2 = base2 + len2 - 1 + + //degenerate cases + if(len2 == 1) + moveElement(L, base2, base1) + return + + if(len1 == 1) + moveElement(L, base1, cursor2+1) + return + + moveElement(L, cursor1--, cursor2-- + 1) + --len1 + + outer: + while(1) + var/count1 = 0 //# of times in a row that first run won + var/count2 = 0 // " " " " " " second run won + + //do the straightfoward thing until one run starts winning consistently + do + //ASSERT(len1 > 0 && len2 > 1) + if(call(cmp)(fetchElement(L,cursor2), fetchElement(L,cursor1)) < 0) + moveElement(L, cursor1--, cursor2-- + 1) + --len1 + + ++count1 + count2 = 0 + + if(len1 == 0) + break outer + else + --cursor2 + --len2 + + ++count2 + count1 = 0 + + if(len2 == 1) + break outer + while((count1 | count2) < minGallop) + + //one run is winning consistently so galloping may provide huge benifits + //so try galloping, until such time as the run is no longer consistently winning + do + //ASSERT(len1 > 0 && len2 > 1) + + count1 = len1 - gallopRight(fetchElement(L,cursor2), base1, len1, len1-1) //should cursor1 be base1? + if(count1) + cursor1 -= count1 + + moveRange(L, cursor1+1, cursor2+1, count1) //cursor1+1 == cursor2 by definition + + cursor2 -= count1 + len1 -= count1 + + if(len1 == 0) + break outer + + --cursor2 + + if(--len2 == 1) + break outer + + count2 = len2 - gallopLeft(fetchElement(L,cursor1), cursor1+1, len2, len2-1) + if(count2) + cursor2 -= count2 + len2 -= count2 + + if(len2 <= 1) + break outer + + moveElement(L, cursor1--, cursor2-- + 1) + --len1 + + if(len1 == 0) + break outer + + --minGallop + while((count1|count2) > MIN_GALLOP) + + if(minGallop < 0) + minGallop = 0 + minGallop += 2 // Penalize for leaving gallop mode + + if(len2 == 1) + //ASSERT(len1 > 0) + + cursor1 -= len1 + moveRange(L, cursor1+1, cursor2+1, len1) + + //else + //ASSERT(len1 == 0) + //ASSERT(len2 > 0) + + + proc/mergeSort(start, end) + var/remaining = end - start + + //If array is small, do an insertion sort + if(remaining < MIN_MERGE) + //var/initRunLen = countRunAndMakeAscending(start, end) + binarySort(start, end, start/*+initRunLen*/) + return + + var/minRun = minRunLength(remaining) + + do + var/runLen = (remaining <= minRun) ? remaining : minRun + + binarySort(start, start+runLen, start) + + //add data about run to queue + runBases.Add(start) + runLens.Add(runLen) + + //Advance to find next run + start += runLen + remaining -= runLen + + while(remaining > 0) + + while(runBases.len >= 2) + var/n = runBases.len - 1 + if(n > 1 && runLens[n-1] <= runLens[n] + runLens[n+1]) + if(runLens[n-1] < runLens[n+1]) + --n + mergeAt2(n) + else if(runLens[n] <= runLens[n+1]) + mergeAt2(n) + else + break //Invariant is established + + while(runBases.len >= 2) + var/n = runBases.len - 1 + if(n > 1 && runLens[n-1] < runLens[n+1]) + --n + mergeAt2(n) + + return L + + proc/mergeAt2(i) + var/cursor1 = runBases[i] + var/cursor2 = runBases[i+1] + + var/end1 = cursor1+runLens[i] + var/end2 = cursor2+runLens[i+1] + + var/val1 = fetchElement(L,cursor1) + var/val2 = fetchElement(L,cursor2) + + while(1) + if(call(cmp)(val1,val2) < 0) + if(++cursor1 >= end1) + break + val1 = fetchElement(L,cursor1) + else + moveElement(L,cursor2,cursor1) + + ++cursor2 + if(++cursor2 >= end2) + break + ++end1 + ++cursor1 + //if(++cursor1 >= end1) + // break + + val2 = fetchElement(L,cursor2) + + + //Record the legth of the combined runs. If i is the 3rd last run now, also slide over the last run + //(which isn't involved in this merge). The current run (i+1) goes away in any case. + runLens[i] += runLens[i+1] + runLens.Cut(i+1, i+2) + runBases.Cut(i+1, i+2) + +#undef MIN_GALLOP +#undef MIN_MERGE + +#undef fetchElement \ No newline at end of file diff --git a/code/__HELPERS/text.dm b/code/__HELPERS/text.dm new file mode 100644 index 0000000..f3290df --- /dev/null +++ b/code/__HELPERS/text.dm @@ -0,0 +1,440 @@ +/* + * Holds procs designed to help with filtering text + * Contains groups: + * SQL sanitization/formating + * Text sanitization + * Text searches + * Text modification + * Misc + */ + + +/* + * SQL sanitization + */ + +// Run all strings to be used in an SQL query through this proc first to properly escape out injection attempts. +/proc/sanitizeSQL(t as text) + var/sqltext = dbcon.Quote(t); + return copytext(sqltext, 2, lentext(sqltext));//Quote() adds quotes around input, we already do that + +/proc/format_table_name(table as text) + return sqlfdbktableprefix + table + +/* + * Text sanitization + */ + +//Simply removes < and > and limits the length of the message +/proc/strip_html_simple(t,limit=MAX_MESSAGE_LEN) + var/list/strip_chars = list("<",">") + t = copytext(t,1,limit) + for(var/char in strip_chars) + var/index = findtext(t, char) + while(index) + t = copytext(t, 1, index) + copytext(t, index+1) + index = findtext(t, char) + return t + +//Removes a few problematic characters +/proc/sanitize_simple(t,list/repl_chars = list("\n"="#","\t"="#")) + for(var/char in repl_chars) + var/index = findtext(t, char) + while(index) + t = copytext(t, 1, index) + repl_chars[char] + copytext(t, index+1) + index = findtext(t, char, index+1) + return t + +//Runs byond's sanitization proc along-side sanitize_simple +/proc/sanitize(t,list/repl_chars = null) + return html_encode(sanitize_simple(t,repl_chars)) + +//Runs sanitize and strip_html_simple +//I believe strip_html_simple() is required to run first to prevent '<' from displaying as '<' after sanitize() calls byond's html_encode() +/proc/strip_html(t,limit=MAX_MESSAGE_LEN) + return copytext((sanitize(strip_html_simple(t))),1,limit) + +//Runs byond's sanitization proc along-side strip_html_simple +//I believe strip_html_simple() is required to run first to prevent '<' from displaying as '<' that html_encode() would cause +/proc/adminscrub(t,limit=MAX_MESSAGE_LEN) + return copytext((html_encode(strip_html_simple(t))),1,limit) + + +//Returns null if there is any bad text in the string +/proc/reject_bad_text(text, max_length=512) + if(length(text) > max_length) + return //message too long + var/non_whitespace = 0 + for(var/i=1, i<=length(text), i++) + switch(text2ascii(text,i)) + if(62,60,92,47) + return //rejects the text if it contains these bad characters: <, >, \ or / + if(127 to 255) + return //rejects weird letters like � + if(0 to 31) + return //more weird stuff + if(32) + continue //whitespace + else + non_whitespace = 1 + if(non_whitespace) + return text //only accepts the text if it has some non-spaces + +// Used to get a properly sanitized input, of max_length +/proc/stripped_input(mob/user, message = "", title = "", default = "", max_length=MAX_MESSAGE_LEN) + var/name = input(user, message, title, default) as text|null + return trim(html_encode(name), max_length) //trim is "outside" because html_encode can expand single symbols into multiple symbols (such as turning < into <) + +// Used to get a properly sanitized multiline input, of max_length +/proc/stripped_multiline_input(mob/user, message = "", title = "", default = "", max_length=MAX_MESSAGE_LEN) + var/name = input(user, message, title, default) as message|null + return html_encode(trim(name, max_length)) + +//Filters out undesirable characters from names +/proc/reject_bad_name(t_in, allow_numbers=0, max_length=MAX_NAME_LEN) + if(!t_in || length(t_in) > max_length) + return //Rejects the input if it is null or if it is longer then the max length allowed + + var/number_of_alphanumeric = 0 + var/last_char_group = 0 + var/t_out = "" + + for(var/i=1, i<=length(t_in), i++) + var/ascii_char = text2ascii(t_in,i) + switch(ascii_char) + // A .. Z + if(65 to 90) //Uppercase Letters + t_out += ascii2text(ascii_char) + number_of_alphanumeric++ + last_char_group = 4 + + // a .. z + if(97 to 122) //Lowercase Letters + if(last_char_group<2) + t_out += ascii2text(ascii_char-32) //Force uppercase first character + else + t_out += ascii2text(ascii_char) + number_of_alphanumeric++ + last_char_group = 4 + + // 0 .. 9 + if(48 to 57) //Numbers + if(!last_char_group) + continue //suppress at start of string + if(!allow_numbers) + continue + t_out += ascii2text(ascii_char) + number_of_alphanumeric++ + last_char_group = 3 + + // ' - . + if(39,45,46) //Common name punctuation + if(!last_char_group) + continue + t_out += ascii2text(ascii_char) + last_char_group = 2 + + // ~ | @ : # $ % & * + + if(126,124,64,58,35,36,37,38,42,43) //Other symbols that we'll allow (mainly for AI) + if(!last_char_group) + continue //suppress at start of string + if(!allow_numbers) + continue + t_out += ascii2text(ascii_char) + last_char_group = 2 + + //Space + if(32) + if(last_char_group <= 1) + continue //suppress double-spaces and spaces at start of string + t_out += ascii2text(ascii_char) + last_char_group = 1 + else + return + + if(number_of_alphanumeric < 2) + return //protects against tiny names like "A" and also names like "' ' ' ' ' ' ' '" + + if(last_char_group == 1) + t_out = copytext(t_out,1,length(t_out)) //removes the last character (in this case a space) + + for(var/bad_name in list("space","floor","wall","r-wall","monkey","unknown","inactive ai")) //prevents these common metagamey names + if(cmptext(t_out,bad_name)) + return //(not case sensitive) + + return t_out + +//html_encode helper proc that returns the smallest non null of two numbers +//or 0 if they're both null (needed because of findtext returning 0 when a value is not present) +/proc/non_zero_min(a, b) + if(!a) + return b + if(!b) + return a + return (a < b ? a : b) + +/* + * Text searches + */ + +//Checks the beginning of a string for a specified sub-string +//Returns the position of the substring or 0 if it was not found +/proc/dd_hasprefix(text, prefix) + var/start = 1 + var/end = length(prefix) + 1 + return findtext(text, prefix, start, end) + +//Checks the beginning of a string for a specified sub-string. This proc is case sensitive +//Returns the position of the substring or 0 if it was not found +/proc/dd_hasprefix_case(text, prefix) + var/start = 1 + var/end = length(prefix) + 1 + return findtextEx(text, prefix, start, end) + +//Checks the end of a string for a specified substring. +//Returns the position of the substring or 0 if it was not found +/proc/dd_hassuffix(text, suffix) + var/start = length(text) - length(suffix) + if(start) + return findtext(text, suffix, start, null) + return + +//Checks the end of a string for a specified substring. This proc is case sensitive +//Returns the position of the substring or 0 if it was not found +/proc/dd_hassuffix_case(text, suffix) + var/start = length(text) - length(suffix) + if(start) + return findtextEx(text, suffix, start, null) + +//Adds 'u' number of zeros ahead of the text 't' +/proc/add_zero(t, u) + while (length(t) < u) + t = "0[t]" + return t + +//Adds 'u' number of spaces ahead of the text 't' +/proc/add_lspace(t, u) + while(length(t) < u) + t = " [t]" + return t + +//Adds 'u' number of spaces behind the text 't' +/proc/add_tspace(t, u) + while(length(t) < u) + t = "[t] " + return t + +//Returns a string with reserved characters and spaces before the first letter removed +/proc/trim_left(text) + for (var/i = 1 to length(text)) + if (text2ascii(text, i) > 32) + return copytext(text, i) + return "" + +//Returns a string with reserved characters and spaces after the last letter removed +/proc/trim_right(text) + for (var/i = length(text), i > 0, i--) + if (text2ascii(text, i) > 32) + return copytext(text, 1, i + 1) + + return "" + +//Returns a string with reserved characters and spaces before the first word and after the last word removed. +/proc/trim(text, max_length) + if(max_length) + text = copytext(text, 1, max_length) + return trim_left(trim_right(text)) + +//Returns a string with the first element of the string capitalized. +/proc/capitalize(t as text) + return uppertext(copytext(t, 1, 2)) + copytext(t, 2) + +//Centers text by adding spaces to either side of the string. +/proc/dd_centertext(message, length) + var/new_message = message + var/size = length(message) + var/delta = length - size + if(size == length) + return new_message + if(size > length) + return copytext(new_message, 1, length + 1) + if(delta == 1) + return new_message + " " + if(delta % 2) + new_message = " " + new_message + delta-- + var/spaces = add_lspace("",delta/2-1) + return spaces + new_message + spaces + +//Limits the length of the text. Note: MAX_MESSAGE_LEN and MAX_NAME_LEN are widely used for this purpose +/proc/dd_limittext(message, length) + var/size = length(message) + if(size <= length) + return message + return copytext(message, 1, length + 1) + + +/proc/stringmerge(text,compare,replace = "*") +//This proc fills in all spaces with the "replace" var (* by default) with whatever +//is in the other string at the same spot (assuming it is not a replace char). +//This is used for fingerprints + var/newtext = text + if(lentext(text) != lentext(compare)) + return 0 + for(var/i = 1, i < lentext(text), i++) + var/a = copytext(text,i,i+1) + var/b = copytext(compare,i,i+1) +//if it isn't both the same letter, or if they are both the replacement character +//(no way to know what it was supposed to be) + if(a != b) + if(a == replace) //if A is the replacement char + newtext = copytext(newtext,1,i) + b + copytext(newtext, i+1) + else if(b == replace) //if B is the replacement char + newtext = copytext(newtext,1,i) + a + copytext(newtext, i+1) + else //The lists disagree, Uh-oh! + return 0 + return newtext + +/proc/stringpercent(text,character = "*") +//This proc returns the number of chars of the string that is the character +//This is used for detective work to determine fingerprint completion. + if(!text || !character) + return 0 + var/count = 0 + for(var/i = 1, i <= lentext(text), i++) + var/a = copytext(text,i,i+1) + if(a == character) + count++ + return count + +/proc/reverse_text(text = "") + var/new_text = "" + for(var/i = length(text); i > 0; i--) + new_text += copytext(text, i, i+1) + return new_text + +var/list/zero_character_only = list("0") +var/list/hex_characters = list("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f") +var/list/alphabet = list("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z") +var/list/binary = list("0","1") +/proc/random_string(length, list/characters) + . = "" + for(var/i=1, i<=length, i++) + . += pick(characters) + +/proc/repeat_string(times, string="") + . = "" + for(var/i=1, i<=times, i++) + . += string + +/proc/random_short_color() + return random_string(3, hex_characters) + +/proc/random_color() + return random_string(6, hex_characters) + +/proc/add_zero2(t, u) + var/temp1 + while (length(t) < u) + t = "0[t]" + temp1 = t + if (length(t) > u) + temp1 = copytext(t,2,u+1) + return temp1 + +//merges non-null characters (3rd argument) from "from" into "into". Returns result +//e.g. into = "Hello World" +// from = "Seeya______" +// returns"Seeya World" +//The returned text is always the same length as into +//This was coded to handle DNA gene-splicing. +/proc/merge_text(into, from, null_char="_") + . = "" + if(!istext(into)) + into = "" + if(!istext(from)) + from = "" + var/null_ascii = istext(null_char) ? text2ascii(null_char,1) : null_char + + var/previous = 0 + var/start = 1 + var/end = length(into) + 1 + + for(var/i=1, i") + t = replacetext(t, "\[/center\]", "") + t = replacetext(t, "\[br\]", "
") + t = replacetext(t, "\[b\]", "") + t = replacetext(t, "\[/b\]", "") + t = replacetext(t, "\[i\]", "") + t = replacetext(t, "\[/i\]", "") + t = replacetext(t, "\[u\]", "") + t = replacetext(t, "\[/u\]", "") + t = replacetext(t, "\[large\]", "") + t = replacetext(t, "\[/large\]", "") + if(user) + t = replacetext(t, "\[sign\]", "[user.real_name]") + else + t = replacetext(t, "\[sign\]", "") + t = replacetext(t, "\[field\]", "") + + t = replacetext(t, "\[*\]", "
  • ") + t = replacetext(t, "\[hr\]", "
    ") + t = replacetext(t, "\[small\]", "") + t = replacetext(t, "\[/small\]", "") + t = replacetext(t, "\[list\]", "
      ") + t = replacetext(t, "\[/list\]", "
    ") + + return t + +#define string2charlist(string) (splittext(string, regex("(.)")) - splittext(string, "")) + +/proc/rot13(text = "") + var/list/textlist = string2charlist(text) + var/list/result = list() + for(var/c in textlist) + var/ca = text2ascii(c) + if(ca >= text2ascii("a") && ca <= text2ascii("m")) + ca += 13 + else if(ca >= text2ascii("n") && ca <= text2ascii("z")) + ca -= 13 + else if(ca >= text2ascii("A") && ca <= text2ascii("M")) + ca += 13 + else if(ca >= text2ascii("N") && ca <= text2ascii("Z")) + ca -= 13 + result += ascii2text(ca) + return jointext(result, "") diff --git a/code/__HELPERS/time.dm b/code/__HELPERS/time.dm new file mode 100644 index 0000000..ae34b69 --- /dev/null +++ b/code/__HELPERS/time.dm @@ -0,0 +1,25 @@ +//Returns the world time in english +/proc/worldtime2text() + return gameTimestamp("hh:mm") + +/proc/time_stamp(format = "hh:mm:ss") + return time2text(world.timeofday, format) + +/proc/gameTimestamp(format = "hh:mm:ss") // Get the game time in text + return time2text(world.time - timezoneOffset + 432000, format) + +/* Returns 1 if it is the selected month and day */ +/proc/isDay(month, day) + if(isnum(month) && isnum(day)) + var/MM = text2num(time2text(world.timeofday, "MM")) // get the current month + var/DD = text2num(time2text(world.timeofday, "DD")) // get the current day + if(month == MM && day == DD) + return 1 + + // Uncomment this out when debugging! + //else + //return 1 + +//returns timestamp in a sql and ISO 8601 friendly format +/proc/SQLtime() + return time2text(world.realtime, "YYYY-MM-DD hh:mm:ss") \ No newline at end of file diff --git a/code/__HELPERS/type2type.dm b/code/__HELPERS/type2type.dm new file mode 100644 index 0000000..4d7f48c --- /dev/null +++ b/code/__HELPERS/type2type.dm @@ -0,0 +1,594 @@ +/* + * Holds procs designed to change one type of value, into another. + * Contains: + * hex2num & num2hex + * file2list + * angle2dir + * angle2text + * worldtime2text + * text2dir_extended & dir2text_short + */ + +//Returns an integer given a hex input, supports negative values "-ff" +//skips preceding invalid characters +//breaks when hittin invalid characters thereafter +/proc/hex2num(hex) + . = 0 + if(istext(hex)) + var/negative = 0 + var/len = length(hex) + for(var/i=1, i<=len, i++) + var/num = text2ascii(hex,i) + switch(num) + if(48 to 57) + num -= 48 //0-9 + if(97 to 102) + num -= 87 //a-f + if(65 to 70) + num -= 55 //A-F + if(45) + negative = 1//- + else + if(num) + break + else + continue + . *= 16 + . += num + if(negative) + . *= -1 + return . + +//Returns the hex value of a decimal number +//len == length of returned string +//if len < 0 then the returned string will be as long as it needs to be to contain the data +//Only supports positive numbers +//if an invalid number is provided, it assumes num==0 +//Note, unlike previous versions, this one works from low to high <-- that way +/proc/num2hex(num, len=2) + if(!isnum(num)) + num = 0 + num = round(abs(num)) + . = "" + var/i=0 + while(1) + if(len<=0) + if(!num) + break + else + if(i>=len) + break + var/remainder = num/16 + num = round(remainder) + remainder = (remainder - num) * 16 + switch(remainder) + if(9,8,7,6,5,4,3,2,1) + . = "[remainder]" + . + if(10,11,12,13,14,15) + . = ascii2text(remainder+87) + . + else + . = "0" + . + i++ + return . + +//Splits the text of a file at seperator and returns them in a list. +/proc/file2list(filename, seperator="\n") + return splittext(return_file_text(filename),seperator) + + +//Turns a direction into text +/proc/dir2text(direction) + switch(direction) + if(1) + return "north" + if(2) + return "south" + if(4) + return "east" + if(8) + return "west" + if(5) + return "northeast" + if(6) + return "southeast" + if(9) + return "northwest" + if(10) + return "southwest" + else + return + +//Turns text into proper directions +/proc/text2dir(direction) + switch(uppertext(direction)) + if("NORTH") + return 1 + if("SOUTH") + return 2 + if("EAST") + return 4 + if("WEST") + return 8 + if("NORTHEAST") + return 5 + if("NORTHWEST") + return 9 + if("SOUTHEAST") + return 6 + if("SOUTHWEST") + return 10 + else + return + +//Converts an angle (degrees) into an ss13 direction +/proc/angle2dir(degree) + + degree = SimplifyDegrees(degree) + + if(degree < 45) + return NORTH + if(degree < 90) + return NORTHEAST + if(degree < 135) + return EAST + if(degree < 180) + return SOUTHEAST + if(degree < 225) + return SOUTH + if(degree < 270) + return SOUTHWEST + if(degree < 315) + return WEST + return NORTH|WEST + +//returns the north-zero clockwise angle in degrees, given a direction + +/proc/dir2angle(D) + switch(D) + if(NORTH) + return 0 + if(SOUTH) + return 180 + if(EAST) + return 90 + if(WEST) + return 270 + if(NORTHEAST) + return 45 + if(SOUTHEAST) + return 135 + if(NORTHWEST) + return 315 + if(SOUTHWEST) + return 225 + else + return null + +//Returns the angle in english +/proc/angle2text(degree) + return dir2text(angle2dir(degree)) + +//Converts a blend_mode constant to one acceptable to icon.Blend() +/proc/blendMode2iconMode(blend_mode) + switch(blend_mode) + if(BLEND_MULTIPLY) + return ICON_MULTIPLY + if(BLEND_ADD) + return ICON_ADD + if(BLEND_SUBTRACT) + return ICON_SUBTRACT + else + return ICON_OVERLAY + +//Converts a rights bitfield into a string +/proc/rights2text(rights, seperator="", list/adds, list/subs) + if(rights & R_BUILDMODE) + . += "[seperator]+BUILDMODE" + if(rights & R_ADMIN) + . += "[seperator]+ADMIN" + if(rights & R_BAN) + . += "[seperator]+BAN" + if(rights & R_FUN) + . += "[seperator]+FUN" + if(rights & R_SERVER) + . += "[seperator]+SERVER" + if(rights & R_DEBUG) + . += "[seperator]+DEBUG" + if(rights & R_POSSESS) + . += "[seperator]+POSSESS" + if(rights & R_PERMISSIONS) + . += "[seperator]+PERMISSIONS" + if(rights & R_STEALTH) + . += "[seperator]+STEALTH" + if(rights & R_REJUVINATE) + . += "[seperator]+REJUVINATE" + if(rights & R_VAREDIT) + . += "[seperator]+VAREDIT" + if(rights & R_SOUNDS) + . += "[seperator]+SOUND" + if(rights & R_SPAWN) + . += "[seperator]+SPAWN" + + for(var/verbpath in adds) + . += "[seperator]+[verbpath]" + for(var/verbpath in subs) + . += "[seperator]-[verbpath]" + return . + +/proc/ui_style2icon(ui_style) + switch(ui_style) + if("Retro") + return 'icons/mob/screen_retro.dmi' + if("Plasmafire") + return 'icons/mob/screen_plasmafire.dmi' + if("Slimecore") + return 'icons/mob/screen_slimecore.dmi' + if("Operative") + return 'icons/mob/screen_operative.dmi' + else + return 'icons/mob/screen_midnight.dmi' + +//colour formats +/proc/rgb2hsl(red, green, blue) + red /= 255;green /= 255;blue /= 255; + var/max = max(red,green,blue) + var/min = min(red,green,blue) + var/range = max-min + + var/hue=0;var/saturation=0;var/lightness=0; + lightness = (max + min)/2 + if(range != 0) + if(lightness < 0.5) + saturation = range/(max+min) + else + saturation = range/(2-max-min) + + var/dred = ((max-red)/(6*max)) + 0.5 + var/dgreen = ((max-green)/(6*max)) + 0.5 + var/dblue = ((max-blue)/(6*max)) + 0.5 + + if(max==red) + hue = dblue - dgreen + else if(max==green) + hue = dred - dblue + (1/3) + else + hue = dgreen - dred + (2/3) + if(hue < 0) + hue++ + else if(hue > 1) + hue-- + + return list(hue, saturation, lightness) + +/proc/hsl2rgb(hue, saturation, lightness) + var/red;var/green;var/blue; + if(saturation == 0) + red = lightness * 255 + green = red + blue = red + else + var/a;var/b; + if(lightness < 0.5) + b = lightness*(1+saturation) + else + b = (lightness+saturation) - (saturation*lightness) + a = 2*lightness - b + + red = round(255 * hue2rgb(a, b, hue+(1/3))) + green = round(255 * hue2rgb(a, b, hue)) + blue = round(255 * hue2rgb(a, b, hue-(1/3))) + + return list(red, green, blue) + +/proc/hue2rgb(a, b, hue) + if(hue < 0) + hue++ + else if(hue > 1) + hue-- + if(6*hue < 1) + return (a+(b-a)*6*hue) + if(2*hue < 1) + return b + if(3*hue < 2) + return (a+(b-a)*((2/3)-hue)*6) + return a + +// Very ugly, BYOND doesn't support unix time and rounding errors make it really hard to convert it to BYOND time. +// returns "YYYY-MM-DD" by default +/proc/unix2date(timestamp, seperator = "-") + + if(timestamp < 0) + return 0 //Do not accept negative values + + var/year = 1970 //Unix Epoc begins 1970-01-01 + var/dayInSeconds = 86400 //60secs*60mins*24hours + var/daysInYear = 365 //Non Leap Year + var/daysInLYear = daysInYear + 1//Leap year + var/days = round(timestamp / dayInSeconds) //Days passed since UNIX Epoc + var/tmpDays = days + 1 //If passed (timestamp < dayInSeconds), it will return 0, so add 1 + var/monthsInDays = list() //Months will be in here ***Taken from the PHP source code*** + var/month = 1 //This will be the returned MONTH NUMBER. + var/day //This will be the returned day number. + + while(tmpDays > daysInYear) //Start adding years to 1970 + year++ + if(isLeap(year)) + tmpDays -= daysInLYear + else + tmpDays -= daysInYear + + if(isLeap(year)) //The year is a leap year + monthsInDays = list(-1,30,59,90,120,151,181,212,243,273,304,334) + else + monthsInDays = list(0,31,59,90,120,151,181,212,243,273,304,334) + + var/mDays = 0; + var/monthIndex = 0; + + for(var/m in monthsInDays) + monthIndex++ + if(tmpDays > m) + mDays = m + month = monthIndex + + day = tmpDays - mDays //Setup the date + + return "[year][seperator][((month < 10) ? "0[month]" : month)][seperator][((day < 10) ? "0[day]" : day)]" + +/* +var/list/test_times = list("December" = 1323522004, "August" = 1123522004, "January" = 1011522004, + "Jan Leap" = 946684800, "Jan Normal" = 978307200, "New Years Eve" = 1009670400, + "New Years" = 1009836000, "New Years 2" = 1041372000, "New Years 3" = 1104530400, + "July Month End" = 744161003, "July Month End 12" = 1343777003, "End July" = 1091311200) +for(var/t in test_times) + world.log << "TEST: [t] is [unix2date(test_times[t])]" +*/ + +/proc/isLeap(y) + return ((y) % 4 == 0 && ((y) % 100 != 0 || (y) % 400 == 0)) + +// A copy of text2dir, extended to accept one and two letter +// directions, and to clearly return 0 otherwise. +/proc/text2dir_extended(direction) + switch(uppertext(direction)) + if("NORTH", "N") + return 1 + if("SOUTH", "S") + return 2 + if("EAST", "E") + return 4 + if("WEST", "W") + return 8 + if("NORTHEAST", "NE") + return 5 + if("NORTHWEST", "NW") + return 9 + if("SOUTHEAST", "SE") + return 6 + if("SOUTHWEST", "SW") + return 10 + else + return 0 + + + +// A copy of dir2text, which returns the short one or two letter +// directions used in tube icon states. +/proc/dir2text_short(direction) + switch(direction) + if(1) + return "N" + if(2) + return "S" + if(4) + return "E" + if(8) + return "W" + if(5) + return "NE" + if(6) + return "SE" + if(9) + return "NW" + if(10) + return "SW" + else + return + + +//Turns a Body_parts_covered bitfield into a list of organ/limb names. +//(I challenge you to find a use for this) +/proc/body_parts_covered2organ_names(bpc) + var/list/covered_parts = list() + + if(!bpc) + return 0 + + if(bpc & FULL_BODY) + covered_parts |= list("l_arm","r_arm","head","chest","l_leg","r_leg") + + else + if(bpc & HEAD) + covered_parts |= list("head") + if(bpc & CHEST) + covered_parts |= list("chest") + if(bpc & GROIN) + covered_parts |= list("chest") + + if(bpc & ARMS) + covered_parts |= list("l_arm","r_arm") + else + if(bpc & ARM_LEFT) + covered_parts |= list("l_arm") + if(bpc & ARM_RIGHT) + covered_parts |= list("r_arm") + + if(bpc & HANDS) + covered_parts |= list("l_arm","r_arm") + else + if(bpc & HAND_LEFT) + covered_parts |= list("l_arm") + if(bpc & HAND_RIGHT) + covered_parts |= list("r_arm") + + if(bpc & LEGS) + covered_parts |= list("l_leg","r_leg") + else + if(bpc & LEG_LEFT) + covered_parts |= list("l_leg") + if(bpc & LEG_RIGHT) + covered_parts |= list("r_leg") + + if(bpc & FEET) + covered_parts |= list("l_leg","r_leg") + else + if(bpc & FOOT_LEFT) + covered_parts |= list("l_leg") + if(bpc & FOOT_RIGHT) + covered_parts |= list("r_leg") + + return covered_parts + + + +//adapted from http://www.tannerhelland.com/4435/convert-temperature-rgb-algorithm-code/ +/proc/heat2colour(temp) + return rgb(heat2colour_r(temp), heat2colour_g(temp), heat2colour_b(temp)) + + +/proc/heat2colour_r(temp) + temp /= 100 + if(temp <= 66) + . = 255 + else + . = max(0, min(255, 329.698727446 * (temp - 60) ** -0.1332047592)) + + +/proc/heat2colour_g(temp) + temp /= 100 + if(temp <= 66) + . = max(0, min(255, 99.4708025861 * log(temp) - 161.1195681661)) + else + . = max(0, min(255, 288.1221685293 * ((temp - 60) ** -0.075148492))) + + +/proc/heat2colour_b(temp) + temp /= 100 + if(temp >= 66) + . = 255 + else + if(temp <= 16) + . = 0 + else + . = max(0, min(255, 138.5177312231 * log(temp - 10) - 305.0447927307)) + +/proc/color2hex(color) //web colors + if(!color) + return "#000000" + + switch(color) + if("white") + return "#FFFFFF" + if("black") + return "#000000" + if("gray") + return "#808080" + if("brown") + return "#A52A2A" + if("red") + return "#FF0000" + if("darkred") + return "#8B0000" + if("crimson") + return "#DC143C" + if("orange") + return "#FFA500" + if("yellow") + return "#FFFF00" + if("green") + return "#008000" + if("lime") + return "#00FF00" + if("darkgreen") + return "#006400" + if("cyan") + return "#00FFFF" + if("blue") + return "#0000FF" + if("navy") + return "#000080" + if("teal") + return "#008080" + if("purple") + return "#800080" + if("indigo") + return "#4B0082" + else + return "#FFFFFF" + + +//This is a weird one: +//It returns a list of all var names found in the string +//These vars must be in the [var_name] format +//It's only a proc because it's used in more than one place + +//Takes a string and a datum +//The string is well, obviously the string being checked +//The datum is used as a source for var names, to check validity +//Otherwise every single word could technically be a variable! +/proc/string2listofvars(var/t_string, var/datum/var_source) + if(!t_string || !var_source) + return list() + + . = list() + + var/var_found = findtext(t_string,"\[") //Not the actual variables, just a generic "should we even bother" check + if(var_found) + //Find var names + + // "A dog said hi [name]!" + // splittext() --> list("A dog said hi ","name]!" + // jointext() --> "A dog said hi name]!" + // splittext() --> list("A","dog","said","hi","name]!") + + t_string = replacetext(t_string,"\[","\[ ")//Necessary to resolve "word[var_name]" scenarios + var/list/list_value = splittext(t_string,"\[") + var/intermediate_stage = jointext(list_value, null) + + list_value = splittext(intermediate_stage," ") + for(var/value in list_value) + if(findtext(value,"]")) + value = splittext(value,"]") //"name]!" --> list("name","!") + for(var/A in value) + if(var_source.vars.Find(A)) + . += A + +//assumes format #RRGGBB #rrggbb +/proc/color_hex2num(A) + if(!A) + return 0 + var/R = hex2num(copytext(A,2,4)) + var/G = hex2num(copytext(A,4,6)) + var/B = hex2num(copytext(A,6,0)) + return R+G+B + +//word of warning: using a matrix like this as a color value will simplify it back to a string after being set +/proc/color_hex2color_matrix(string) + var/length = length(string) + if(length != 7 && length != 9) + return color_matrix_identity() + var/r = hex2num(copytext(string, 2, 4))/255 + var/g = hex2num(copytext(string, 4, 6))/255 + var/b = hex2num(copytext(string, 6, 8))/255 + var/a = 1 + if(length == 9) + a = hex2num(copytext(string, 8, 10))/255 + if(!isnum(r) || !isnum(g) || !isnum(b) || !isnum(a)) + return color_matrix_identity() + return list(r,0,0,0, 0,g,0,0, 0,0,b,0, 0,0,0,a, 0,0,0,0) + +//will drop all values not on the diagonal +/proc/color_matrix2color_hex(list/the_matrix) + if(!istype(the_matrix) || the_matrix.len != 20) + return "#ffffffff" + return rgb(the_matrix[1]*255, the_matrix[6]*255, the_matrix[11]*255, the_matrix[16]*255) \ No newline at end of file diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm new file mode 100644 index 0000000..392baf2 --- /dev/null +++ b/code/__HELPERS/unsorted.dm @@ -0,0 +1,1352 @@ +//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 + +/* + * A large number of misc global procs. + */ + +//Inverts the colour of an HTML string +/proc/invertHTML(HTMLstring) + + if (!( istext(HTMLstring) )) + CRASH("Given non-text argument!") + return + else + if (length(HTMLstring) != 7) + CRASH("Given non-HTML argument!") + return + var/textr = copytext(HTMLstring, 2, 4) + var/textg = copytext(HTMLstring, 4, 6) + var/textb = copytext(HTMLstring, 6, 8) + var/r = hex2num(textr) + var/g = hex2num(textg) + var/b = hex2num(textb) + textr = num2hex(255 - r, 2) + textg = num2hex(255 - g, 2) + textb = num2hex(255 - b, 2) + return text("#[][][]", textr, textg, textb) + return + +/proc/Get_Angle(atom/movable/start,atom/movable/end)//For beams. + if(!start || !end) + return 0 + var/dy + var/dx + dy=(32*end.y+end.pixel_y)-(32*start.y+start.pixel_y) + dx=(32*end.x+end.pixel_x)-(32*start.x+start.pixel_x) + if(!dy) + return (dx>=0)?90:270 + .=arctan(dx/dy) + if(dy<0) + .+=180 + else if(dx<0) + .+=360 + +//Returns location. Returns null if no location was found. +/proc/get_teleport_loc(turf/location,mob/target,distance = 1, density = 0, errorx = 0, errory = 0, eoffsetx = 0, eoffsety = 0) +/* +Location where the teleport begins, target that will teleport, distance to go, density checking 0/1(yes/no). +Random error in tile placement x, error in tile placement y, and block offset. +Block offset tells the proc how to place the box. Behind teleport location, relative to starting location, forward, etc. +Negative values for offset are accepted, think of it in relation to North, -x is west, -y is south. Error defaults to positive. +Turf and target are seperate in case you want to teleport some distance from a turf the target is not standing on or something. +*/ + + var/dirx = 0//Generic location finding variable. + var/diry = 0 + + var/xoffset = 0//Generic counter for offset location. + var/yoffset = 0 + + var/b1xerror = 0//Generic placing for point A in box. The lower left. + var/b1yerror = 0 + var/b2xerror = 0//Generic placing for point B in box. The upper right. + var/b2yerror = 0 + + errorx = abs(errorx)//Error should never be negative. + errory = abs(errory) + //var/errorxy = round((errorx+errory)/2)//Used for diagonal boxes. + + switch(target.dir)//This can be done through equations but switch is the simpler method. And works fast to boot. + //Directs on what values need modifying. + if(1)//North + diry+=distance + yoffset+=eoffsety + xoffset+=eoffsetx + b1xerror-=errorx + b1yerror-=errory + b2xerror+=errorx + b2yerror+=errory + if(2)//South + diry-=distance + yoffset-=eoffsety + xoffset+=eoffsetx + b1xerror-=errorx + b1yerror-=errory + b2xerror+=errorx + b2yerror+=errory + if(4)//East + dirx+=distance + yoffset+=eoffsetx//Flipped. + xoffset+=eoffsety + b1xerror-=errory//Flipped. + b1yerror-=errorx + b2xerror+=errory + b2yerror+=errorx + if(8)//West + dirx-=distance + yoffset-=eoffsetx//Flipped. + xoffset+=eoffsety + b1xerror-=errory//Flipped. + b1yerror-=errorx + b2xerror+=errory + b2yerror+=errorx + + var/turf/destination=locate(location.x+dirx,location.y+diry,location.z) + + if(destination)//If there is a destination. + if(errorx||errory)//If errorx or y were specified. + var/destination_list[] = list()//To add turfs to list. + //destination_list = new() + /*This will draw a block around the target turf, given what the error is. + Specifying the values above will basically draw a different sort of block. + If the values are the same, it will be a square. If they are different, it will be a rectengle. + In either case, it will center based on offset. Offset is position from center. + Offset always calculates in relation to direction faced. In other words, depending on the direction of the teleport, + the offset should remain positioned in relation to destination.*/ + + var/turf/center = locate((destination.x+xoffset),(destination.y+yoffset),location.z)//So now, find the new center. + + //Now to find a box from center location and make that our destination. + for(var/turf/T in block(locate(center.x+b1xerror,center.y+b1yerror,location.z), locate(center.x+b2xerror,center.y+b2yerror,location.z) )) + if(density&&T.density) + continue//If density was specified. + if(T.x>world.maxx || T.x<1) + continue//Don't want them to teleport off the map. + if(T.y>world.maxy || T.y<1) + continue + destination_list += T + if(destination_list.len) + destination = pick(destination_list) + else + return + + else//Same deal here. + if(density&&destination.density) + return + if(destination.x>world.maxx || destination.x<1) + return + if(destination.y>world.maxy || destination.y<1) + return + else return + + return destination + +/proc/getline(atom/M,atom/N)//Ultra-Fast Bresenham Line-Drawing Algorithm + var/px=M.x //starting x + var/py=M.y + var/line[] = list(locate(px,py,M.z)) + var/dx=N.x-px //x distance + var/dy=N.y-py + var/dxabs=abs(dx)//Absolute value of x distance + var/dyabs=abs(dy) + var/sdx=sign(dx) //Sign of x distance (+ or -) + var/sdy=sign(dy) + var/x=dxabs>>1 //Counters for steps taken, setting to distance/2 + var/y=dyabs>>1 //Bit-shifting makes me l33t. It also makes getline() unnessecarrily fast. + var/j //Generic integer for counting + if(dxabs>=dyabs) //x distance is greater than y + for(j=0;j=dxabs) //Every dyabs steps, step once in y direction + y-=dxabs + py+=sdy + px+=sdx //Step on in x direction + line+=locate(px,py,M.z)//Add the turf to the list + else + for(j=0;j=dyabs) + x-=dyabs + px+=sdx + py+=sdy + line+=locate(px,py,M.z) + return line + +//Returns whether or not a player is a guest using their ckey as an input +/proc/IsGuestKey(key) + if (findtext(key, "Guest-", 1, 7) != 1) //was findtextEx + return 0 + + var/i, ch, len = length(key) + + for (i = 7, i <= len, ++i) + ch = text2ascii(key, i) + if (ch < 48 || ch > 57) + return 0 + return 1 + +//Generalised helper proc for letting mobs rename themselves. Used to be clname() and ainame() +/mob/proc/rename_self(role) + var/oldname = real_name + var/newname + var/loop = 1 + var/safety = 0 + + while(loop && safety < 5) + if(client && client.prefs.custom_names[role] && !safety) + newname = client.prefs.custom_names[role] + else + switch(role) + if("clown") + newname = pick(clown_names) + if("mime") + newname = pick(mime_names) + if("ai") + newname = pick(ai_names) + if("deity") + newname = pick(clown_names|ai_names|mime_names) //pick any old name + else + return + + for(var/mob/living/M in player_list) + if(M == src) + continue + if(!newname || M.real_name == newname) + newname = null + loop++ // name is already taken so we roll again + break + loop-- + safety++ + + if(newname) + fully_replace_character_name(oldname,newname) + + +//Picks a string of symbols to display as the law number for hacked or ion laws +/proc/ionnum() + return "[pick("!","@","#","$","%","^","&")][pick("!","@","#","$","%","^","&","*")][pick("!","@","#","$","%","^","&","*")][pick("!","@","#","$","%","^","&","*")]" + +//Returns a list of unslaved cyborgs +/proc/active_free_borgs() + . = list() + for(var/mob/living/silicon/robot/R in living_mob_list) + if(R.connected_ai) + continue + if(R.stat == DEAD) + continue + if(R.emagged || R.scrambledcodes || R.syndicate) + continue + . += R + +//Returns a list of AI's +/proc/active_ais(check_mind=0) + . = list() + for(var/mob/living/silicon/ai/A in living_mob_list) + if(A.stat == DEAD) + continue + if(A.control_disabled == 1) + continue + if(check_mind) + if(!A.mind) + continue + . += A + return . + +//Find an active ai with the least borgs. VERBOSE PROCNAME HUH! +/proc/select_active_ai_with_fewest_borgs() + var/mob/living/silicon/ai/selected + var/list/active = active_ais() + for(var/mob/living/silicon/ai/A in active) + if(!selected || (selected.connected_robots.len > A.connected_robots.len)) + selected = A + + return selected + +/proc/select_active_free_borg(mob/user) + var/list/borgs = active_free_borgs() + if(borgs.len) + if(user) + . = input(user,"Unshackled cyborg signals detected:", "Cyborg Selection", borgs[1]) in borgs + else + . = pick(borgs) + return . + +/proc/select_active_ai(mob/user) + var/list/ais = active_ais() + if(ais.len) + if(user) + . = input(user,"AI signals detected:", "AI Selection", ais[1]) in ais + else + . = pick(ais) + return . + +//Returns a list of all items of interest with their name +/proc/getpois(mobs_only=0,skip_mindless=0) + var/list/mobs = sortmobs() + var/list/names = list() + var/list/pois = list() + var/list/namecounts = list() + + for(var/mob/M in mobs) + if(skip_mindless && (!M.mind && !M.ckey)) + if(!isbot(M) && !istype(M, /mob/camera/)) + continue + if(M.client && M.client.holder && M.client.holder.fakekey) //stealthmins + continue + var/name = M.name + if (name in names) + namecounts[name]++ + name = "[name] ([namecounts[name]])" + else + names.Add(name) + namecounts[name] = 1 + if (M.real_name && M.real_name != M.name) + name += " \[[M.real_name]\]" + if (M.stat == 2) + if(istype(M, /mob/dead/observer/)) + name += " \[ghost\]" + else + name += " \[dead\]" + pois[name] = M + + if(!mobs_only) + for(var/atom/A in poi_list) + if(!A || !A.loc) + continue + var/name = A.name + if (names.Find(name)) + namecounts[name]++ + name = "[name] ([namecounts[name]])" + else + names.Add(name) + namecounts[name] = 1 + pois[name] = A + + return pois +//Orders mobs by type then by name +/proc/sortmobs() + var/list/moblist = list() + var/list/sortmob = sortNames(mob_list) + for(var/mob/living/silicon/ai/M in sortmob) + moblist.Add(M) + for(var/mob/camera/M in sortmob) + moblist.Add(M) + for(var/mob/living/silicon/pai/M in sortmob) + moblist.Add(M) + for(var/mob/living/silicon/robot/M in sortmob) + moblist.Add(M) + for(var/mob/living/carbon/human/M in sortmob) + moblist.Add(M) + for(var/mob/living/brain/M in sortmob) + moblist.Add(M) + for(var/mob/living/carbon/alien/M in sortmob) + moblist.Add(M) + for(var/mob/dead/observer/M in sortmob) + moblist.Add(M) + for(var/mob/new_player/M in sortmob) + moblist.Add(M) + for(var/mob/living/carbon/monkey/M in sortmob) + moblist.Add(M) + for(var/mob/living/simple_animal/slime/M in sortmob) + moblist.Add(M) + for(var/mob/living/simple_animal/M in sortmob) + moblist.Add(M) +// for(var/mob/living/silicon/hivebot/M in world) +// mob_list.Add(M) +// for(var/mob/living/silicon/hive_mainframe/M in world) +// mob_list.Add(M) + for(var/mob/living/carbon/true_devil/M in sortmob) + moblist.Add(M) + return moblist + +//E = MC^2 +/proc/convert2energy(M) + var/E = M*(SPEED_OF_LIGHT_SQ) + return E + +//M = E/C^2 +/proc/convert2mass(E) + var/M = E/(SPEED_OF_LIGHT_SQ) + return M + +/proc/key_name(whom, include_link = null, include_name = 1) + var/mob/M + var/client/C + var/key + var/ckey + + if(!whom) + return "*null*" + if(istype(whom, /client)) + C = whom + M = C.mob + key = C.key + ckey = C.ckey + else if(ismob(whom)) + M = whom + C = M.client + key = M.key + ckey = M.ckey + else if(istext(whom)) + key = whom + ckey = ckey(whom) + C = directory[ckey] + if(C) + M = C.mob + else + return "*invalid*" + + . = "" + + if(!ckey) + include_link = 0 + + if(key) + if(C && C.holder && C.holder.fakekey && !include_name) + if(include_link) + . += "" + . += "Administrator" + else + if(include_link) + . += "" + . += key + if(!C) + . += "\[DC\]" + + if(include_link) + . += "" + else + . += "*no key*" + + if(include_name && M) + if(M.real_name) + . += "/([M.real_name])" + else if(M.name) + . += "/([M.name])" + + return . + +/proc/key_name_admin(whom, include_name = 1) + return key_name(whom, 1, include_name) + +/proc/get_mob_by_ckey(key) + if(!key) + return + var/list/mobs = sortmobs() + for(var/mob/M in mobs) + if(M.ckey == key) + return M + +// Returns the atom sitting on the turf. +// For example, using this on a disk, which is in a bag, on a mob, will return the mob because it's on the turf. +/proc/get_atom_on_turf(atom/movable/M) + var/atom/loc = M + while(loc && loc.loc && !isturf(loc.loc)) + loc = loc.loc + return loc + +// returns the turf located at the map edge in the specified direction relative to A +// used for mass driver +/proc/get_edge_target_turf(atom/A, direction) + var/turf/target = locate(A.x, A.y, A.z) + if(!A || !target) + return 0 + //since NORTHEAST == NORTH & EAST, etc, doing it this way allows for diagonal mass drivers in the future + //and isn't really any more complicated + + // Note diagonal directions won't usually be accurate + if(direction & NORTH) + target = locate(target.x, world.maxy, target.z) + if(direction & SOUTH) + target = locate(target.x, 1, target.z) + if(direction & EAST) + target = locate(world.maxx, target.y, target.z) + if(direction & WEST) + target = locate(1, target.y, target.z) + return target + +// returns turf relative to A in given direction at set range +// result is bounded to map size +// note range is non-pythagorean +// used for disposal system +/proc/get_ranged_target_turf(atom/A, direction, range) + + var/x = A.x + var/y = A.y + if(direction & NORTH) + y = min(world.maxy, y + range) + if(direction & SOUTH) + y = max(1, y - range) + if(direction & EAST) + x = min(world.maxx, x + range) + if(direction & WEST) + x = max(1, x - range) + + return locate(x,y,A.z) + + +// returns turf relative to A offset in dx and dy tiles +// bound to map limits +/proc/get_offset_target_turf(atom/A, dx, dy) + var/x = min(world.maxx, max(1, A.x + dx)) + var/y = min(world.maxy, max(1, A.y + dy)) + return locate(x,y,A.z) + +/proc/arctan(x) + var/y=arcsin(x/sqrt(1+x*x)) + return y + +/atom/proc/GetAllContents() + var/list/processing_list = list(src) + var/list/assembled = list() + + while(processing_list.len) + var/atom/A = processing_list[1] + processing_list -= A + + for(var/atom/a in A) + if(!(a in assembled)) + processing_list |= a + + assembled |= A + + return assembled + +//Step-towards method of determining whether one atom can see another. Similar to viewers() +/proc/can_see(atom/source, atom/target, length=5) // I couldnt be arsed to do actual raycasting :I This is horribly inaccurate. + var/turf/current = get_turf(source) + var/turf/target_turf = get_turf(target) + var/steps = 1 + if(current != target_turf) + current = get_step_towards(current, target_turf) + while(current != target_turf) + if(steps > length) + return 0 + if(current.opacity) + return 0 + for(var/thing in current) + var/atom/A = thing + if(A.opacity) + return 0 + current = get_step_towards(current, target_turf) + steps++ + + return 1 + +/proc/is_blocked_turf(turf/T) + if(T.density) + return 1 + for(var/i in T) + var/atom/A = i + if(A.density) + return 1 + return 0 + +/proc/is_anchored_dense_turf(turf/T) //like the older version of the above, fails only if also anchored + if(T.density) + return 1 + for(var/i in T) + var/atom/movable/A = i + if(A.density && A.anchored) + return 1 + return 0 + +/proc/get_step_towards2(atom/ref , atom/trg) + var/base_dir = get_dir(ref, get_step_towards(ref,trg)) + var/turf/temp = get_step_towards(ref,trg) + + if(is_blocked_turf(temp)) + var/dir_alt1 = turn(base_dir, 90) + var/dir_alt2 = turn(base_dir, -90) + var/turf/turf_last1 = temp + var/turf/turf_last2 = temp + var/free_tile = null + var/breakpoint = 0 + + while(!free_tile && breakpoint < 10) + if(!is_blocked_turf(turf_last1)) + free_tile = turf_last1 + break + if(!is_blocked_turf(turf_last2)) + free_tile = turf_last2 + break + turf_last1 = get_step(turf_last1,dir_alt1) + turf_last2 = get_step(turf_last2,dir_alt2) + breakpoint++ + + if(!free_tile) + return get_step(ref, base_dir) + else + return get_step_towards(ref,free_tile) + + else + return get_step(ref, base_dir) + +//Takes: Anything that could possibly have variables and a varname to check. +//Returns: 1 if found, 0 if not. +/proc/hasvar(datum/A, varname) + if(A.vars.Find(lowertext(varname))) + return 1 + else + return 0 + +//Repopulates sortedAreas list +/proc/SortAreas() + sortedAreas = list() + + for(var/area/A in world) + sortedAreas.Add(A) + + sortTim(sortedAreas, /proc/cmp_name_asc) + +/area/proc/addSorted() + sortedAreas.Add(src) + sortTim(sortedAreas, /proc/cmp_name_asc) + +//Takes: Area type as text string or as typepath OR an instance of the area. +//Returns: A list of all areas of that type in the world. +/proc/get_areas(areatype, subtypes=TRUE) + if(istext(areatype)) + areatype = text2path(areatype) + else if(isarea(areatype)) + var/area/areatemp = areatype + areatype = areatemp.type + else if(!ispath(areatype)) + return null + + var/list/areas = list() + if(subtypes) + var/list/cache = typecacheof(areatype) + for(var/V in sortedAreas) + var/area/A = V + if(cache[A.type]) + areas += V + else + for(var/V in sortedAreas) + var/area/A = V + if(A.type == areatype) + areas += V + return areas + +//Takes: Area type as text string or as typepath OR an instance of the area. +//Returns: A list of all turfs in areas of that type of that type in the world. +/proc/get_area_turfs(areatype, target_z = 0, subtypes=FALSE) + if(istext(areatype)) + areatype = text2path(areatype) + else if(isarea(areatype)) + var/area/areatemp = areatype + areatype = areatemp.type + else if(!ispath(areatype)) + return null + + var/list/turfs = list() + if(subtypes) + var/list/cache = typecacheof(areatype) + for(var/V in sortedAreas) + var/area/A = V + if(!cache[A.type]) + continue + for(var/turf/T in A) + if(target_z == 0 || target_z == T.z) + turfs += T + else + for(var/V in sortedAreas) + var/area/A = V + if(A.type != areatype) + continue + for(var/turf/T in A) + if(target_z == 0 || target_z == T.z) + turfs += T + return turfs + +/proc/get_cardinal_dir(atom/A, atom/B) + var/dx = abs(B.x - A.x) + var/dy = abs(B.y - A.y) + return get_dir(A, B) & (rand() * (dx+dy) < dy ? 3 : 12) + +//chances are 1:value. anyprob(1) will always return true +/proc/anyprob(value) + return (rand(1,value)==value) + +/proc/view_or_range(distance = world.view , center = usr , type) + switch(type) + if("view") + . = view(distance,center) + if("range") + . = range(distance,center) + return + +/proc/oview_or_orange(distance = world.view , center = usr , type) + switch(type) + if("view") + . = oview(distance,center) + if("range") + . = orange(distance,center) + return + +/proc/parse_zone(zone) + if(zone == "r_hand") + return "right hand" + else if (zone == "l_hand") + return "left hand" + else if (zone == "l_arm") + return "left arm" + else if (zone == "r_arm") + return "right arm" + else if (zone == "l_leg") + return "left leg" + else if (zone == "r_leg") + return "right leg" + else if (zone == "l_foot") + return "left foot" + else if (zone == "r_foot") + return "right foot" + else + return zone + +/* + + Gets the turf this atom's *ICON* appears to inhabit + It takes into account: + * Pixel_x/y + * Matrix x/y + + NOTE: if your atom has non-standard bounds then this proc + will handle it, but: + * if the bounds are even, then there are an even amount of "middle" turfs, the one to the EAST, NORTH, or BOTH is picked + (this may seem bad, but you're atleast as close to the center of the atom as possible, better than byond's default loc being all the way off) + * if the bounds are odd, the true middle turf of the atom is returned + +*/ + +/proc/get_turf_pixel(atom/movable/AM) + if(!istype(AM)) + return + + //Find AM's matrix so we can use it's X/Y pixel shifts + var/matrix/M = matrix(AM.transform) + + var/pixel_x_offset = AM.pixel_x + M.get_x_shift() + var/pixel_y_offset = AM.pixel_y + M.get_y_shift() + + //Irregular objects + if(AM.bound_height != world.icon_size || AM.bound_width != world.icon_size) + var/icon/AMicon = icon(AM.icon, AM.icon_state) + pixel_x_offset += ((AMicon.Width()/world.icon_size)-1)*(world.icon_size*0.5) + pixel_y_offset += ((AMicon.Height()/world.icon_size)-1)*(world.icon_size*0.5) + qdel(AMicon) + + //DY and DX + var/rough_x = round(round(pixel_x_offset,world.icon_size)/world.icon_size) + var/rough_y = round(round(pixel_y_offset,world.icon_size)/world.icon_size) + + //Find coordinates + var/turf/T = get_turf(AM) //use AM's turfs, as it's coords are the same as AM's AND AM's coords are lost if it is inside another atom + var/final_x = T.x + rough_x + var/final_y = T.y + rough_y + + if(final_x || final_y) + return locate(final_x, final_y, T.z) + +//Finds the distance between two atoms, in pixels +//centered = 0 counts from turf edge to edge +//centered = 1 counts from turf center to turf center +//of course mathematically this is just adding world.icon_size on again +/proc/getPixelDistance(atom/A, atom/B, centered = 1) + if(!istype(A)||!istype(B)) + return 0 + . = bounds_dist(A, B) + sqrt((((A.pixel_x+B.pixel_x)**2) + ((A.pixel_y+B.pixel_y)**2))) + if(centered) + . += world.icon_size + +/proc/get(atom/loc, type) + while(loc) + if(istype(loc, type)) + return loc + loc = loc.loc + return null + +//Quick type checks for some tools +var/global/list/common_tools = list( +/obj/item/stack/cable_coil, +/obj/item/weapon/wrench, +/obj/item/weapon/weldingtool, +/obj/item/weapon/screwdriver, +/obj/item/weapon/wirecutters, +/obj/item/device/multitool, +/obj/item/weapon/crowbar) + +/proc/istool(O) + if(O && is_type_in_list(O, common_tools)) + return 1 + return 0 + +/proc/is_pointed(obj/item/W) + if(istype(W, /obj/item/weapon/pen)) + return 1 + if(istype(W, /obj/item/weapon/screwdriver)) + return 1 + if(istype(W, /obj/item/weapon/reagent_containers/syringe)) + return 1 + if(istype(W, /obj/item/weapon/kitchen/fork)) + return 1 + else + return 0 + +//For objects that should embed, but make no sense being is_sharp or is_pointed() +//e.g: rods +/proc/can_embed(obj/item/W) + if(W.is_sharp()) + return 1 + if(is_pointed(W)) + return 1 + + var/list/embed_items = list(\ + /obj/item/stack/rods,\ + ) + + if(is_type_in_list(W, embed_items)) + return 1 + + +/* +Checks if that loc and dir has a item on the wall +*/ +var/list/WALLITEMS = list( + /obj/machinery/power/apc, /obj/machinery/airalarm, /obj/item/device/radio/intercom, + /obj/structure/extinguisher_cabinet, /obj/structure/reagent_dispensers/peppertank, + /obj/machinery/status_display, /obj/machinery/requests_console, /obj/machinery/light_switch, /obj/structure/sign, + /obj/machinery/newscaster, /obj/machinery/firealarm, /obj/structure/noticeboard, /obj/machinery/button, + /obj/machinery/computer/security/telescreen, /obj/machinery/embedded_controller/radio/simple_vent_controller, + /obj/item/weapon/storage/secure/safe, /obj/machinery/door_timer, /obj/machinery/flasher, /obj/machinery/keycard_auth, + /obj/structure/mirror, /obj/structure/fireaxecabinet, /obj/machinery/computer/security/telescreen/entertainment + ) + +var/list/WALLITEMS_EXTERNAL = list( + /obj/machinery/camera, /obj/structure/camera_assembly, + /obj/structure/light_construct, /obj/machinery/light) + +var/list/WALLITEMS_INVERSE = list( + /obj/structure/light_construct, /obj/machinery/light) + + +/proc/gotwallitem(loc, dir, var/check_external = 0) + var/locdir = get_step(loc, dir) + for(var/obj/O in loc) + if(is_type_in_list(O, WALLITEMS) && check_external != 2) + //Direction works sometimes + if(is_type_in_list(O, WALLITEMS_INVERSE)) + if(O.dir == turn(dir, 180)) + return 1 + else if(O.dir == dir) + return 1 + + //Some stuff doesn't use dir properly, so we need to check pixel instead + //That's exactly what get_turf_pixel() does + if(get_turf_pixel(O) == locdir) + return 1 + + if(is_type_in_list(O, WALLITEMS_EXTERNAL) && check_external) + if(is_type_in_list(O, WALLITEMS_INVERSE)) + if(O.dir == turn(dir, 180)) + return 1 + else if(O.dir == dir) + return 1 + + //Some stuff is placed directly on the wallturf (signs) + for(var/obj/O in locdir) + if(is_type_in_list(O, WALLITEMS) && check_external != 2) + if(O.pixel_x == 0 && O.pixel_y == 0) + return 1 + return 0 + +/proc/format_text(text) + return replacetext(replacetext(text,"\proper ",""),"\improper ","") + +/obj/proc/atmosanalyzer_scan(datum/gas_mixture/air_contents, mob/user, obj/target = src) + var/obj/icon = target + user.visible_message("[user] has used the analyzer on \icon[icon] [target].", "You use the analyzer on \icon[icon] [target].") + var/pressure = air_contents.return_pressure() + var/total_moles = air_contents.total_moles() + + user << "Results of analysis of \icon[icon] [target]." + if(total_moles>0) + user << "Pressure: [round(pressure,0.1)] kPa" + + var/list/cached_gases = air_contents.gases + + for(var/id in cached_gases) + var/gas_concentration = cached_gases[id][MOLES]/total_moles + if(id in hardcoded_gases || gas_concentration > 0.001) //ensures the four primary gases are always shown. + user << "[cached_gases[id][GAS_META][META_GAS_NAME]]: [round(gas_concentration*100, 0.01)] %" + + user << "Temperature: [round(air_contents.temperature-T0C)] °C" + else + user << "[target] is empty!" + return + +/proc/check_target_facings(mob/living/initator, mob/living/target) + /*This can be used to add additional effects on interactions between mobs depending on how the mobs are facing each other, such as adding a crit damage to blows to the back of a guy's head. + Given how click code currently works (Nov '13), the initiating mob will be facing the target mob most of the time + That said, this proc should not be used if the change facing proc of the click code is overriden at the same time*/ + if(!ismob(target) || target.lying) + //Make sure we are not doing this for things that can't have a logical direction to the players given that the target would be on their side + return FACING_FAILED + if(initator.dir == target.dir) //mobs are facing the same direction + return FACING_SAME_DIR + if(is_A_facing_B(initator,target) && is_A_facing_B(target,initator)) //mobs are facing each other + return FACING_EACHOTHER + if(initator.dir + 2 == target.dir || initator.dir - 2 == target.dir || initator.dir + 6 == target.dir || initator.dir - 6 == target.dir) //Initating mob is looking at the target, while the target mob is looking in a direction perpendicular to the 1st + return FACING_INIT_FACING_TARGET_TARGET_FACING_PERPENDICULAR + +/proc/random_step(atom/movable/AM, steps, chance) + var/initial_chance = chance + while(steps > 0) + if(prob(chance)) + step(AM, pick(alldirs)) + chance = max(chance - (initial_chance / steps), 0) + steps-- + +/proc/living_player_count() + var/living_player_count = 0 + for(var/mob in player_list) + if(mob in living_mob_list) + living_player_count += 1 + return living_player_count + +/proc/randomColor(mode = 0) //if 1 it doesn't pick white, black or gray + switch(mode) + if(0) + return pick("white","black","gray","red","green","blue","brown","yellow","orange","darkred", + "crimson","lime","darkgreen","cyan","navy","teal","purple","indigo") + if(1) + return pick("red","green","blue","brown","yellow","orange","darkred","crimson", + "lime","darkgreen","cyan","navy","teal","purple","indigo") + else + return "white" + +/proc/params2turf(scr_loc, turf/origin) + if(!scr_loc) + return null + var/tX = splittext(scr_loc, ",") + var/tY = splittext(tX[2], ":") + var/tZ = origin.z + tY = tY[1] + tX = splittext(tX[1], ":") + tX = tX[1] + tX = Clamp(origin.x + text2num(tX) - world.view + 1, 1, world.maxx) + tY = Clamp(origin.y + text2num(tY) - world.view + 1, 1, world.maxy) + return locate(tX, tY, tZ) + +/proc/screen_loc2turf(text, turf/origin) + if(!text) + return null + var/tZ = splittext(text, ",") + var/tX = splittext(tZ[1], "-") + var/tY = text2num(tX[2]) + tX = splittext(tZ[2], "-") + tX = text2num(tX[2]) + tZ = origin.z + tX = Clamp(origin.x + 7 - tX, 1, world.maxx) + tY = Clamp(origin.y + 7 - tY, 1, world.maxy) + return locate(tX, tY, tZ) + +/proc/IsValidSrc(datum/D) + if(istype(D)) + return !qdeleted(D) + return 0 + + + +//Get the dir to the RIGHT of dir if they were on a clock +//NORTH --> NORTHEAST +/proc/get_clockwise_dir(dir) + . = angle2dir(dir2angle(dir)+45) + +//Get the dir to the LEFT of dir if they were on a clock +//NORTH --> NORTHWEST +/proc/get_anticlockwise_dir(dir) + . = angle2dir(dir2angle(dir)-45) + + +//Compare A's dir, the clockwise dir of A and the anticlockwise dir of A +//To the opposite dir of the dir returned by get_dir(B,A) +//If one of them is a match, then A is facing B +/proc/is_A_facing_B(atom/A,atom/B) + if(!istype(A) || !istype(B)) + return 0 + if(isliving(A)) + var/mob/living/LA = A + if(LA.lying) + return 0 + var/goal_dir = angle2dir(dir2angle(get_dir(B,A)+180)) + var/clockwise_A_dir = get_clockwise_dir(A.dir) + var/anticlockwise_A_dir = get_anticlockwise_dir(B.dir) + + if(A.dir == goal_dir || clockwise_A_dir == goal_dir || anticlockwise_A_dir == goal_dir) + return 1 + return 0 + + +/* +rough example of the "cone" made by the 3 dirs checked + + B + \ + \ + > + < + \ + \ +B --><-- A + / + / + < + > + / + / + B + +*/ + + +//Center's an image. +//Requires: +//The Image +//The x dimension of the icon file used in the image +//The y dimension of the icon file used in the image +// eg: center_image(I, 32,32) +// eg2: center_image(I, 96,96) + +/proc/center_image(var/image/I, x_dimension = 0, y_dimension = 0) + if(!I) + return + + if(!x_dimension || !y_dimension) + return + + if((x_dimension == world.icon_size) && (y_dimension == world.icon_size)) + return I + + //Offset the image so that it's bottom left corner is shifted this many pixels + //This makes it infinitely easier to draw larger inhands/images larger than world.iconsize + //but still use them in game + var/x_offset = -((x_dimension/world.icon_size)-1)*(world.icon_size*0.5) + var/y_offset = -((y_dimension/world.icon_size)-1)*(world.icon_size*0.5) + + //Correct values under world.icon_size + if(x_dimension < world.icon_size) + x_offset *= -1 + if(y_dimension < world.icon_size) + y_offset *= -1 + + I.pixel_x = x_offset + I.pixel_y = y_offset + + return I + +//ultra range (no limitations on distance, faster than range for distances > 8); including areas drastically decreases performance +/proc/urange(dist=0, atom/center=usr, orange=0, areas=0) + if(!dist) + if(!orange) + return list(center) + else + return list() + + var/list/turfs = RANGE_TURFS(dist, center) + if(orange) + turfs -= get_turf(center) + . = list() + for(var/V in turfs) + var/turf/T = V + . += T + . += T.contents + if(areas) + . |= T.loc + +//similar function to range(), but with no limitations on the distance; will search spiralling outwards from the center +/proc/spiral_range(dist=0, center=usr, orange=0) + if(!dist) + if(!orange) + return list(center) + else + return list() + + var/turf/t_center = get_turf(center) + if(!t_center) + return list() + + var/list/L = list() + var/turf/T + var/y + var/x + var/c_dist = 1 + + if(!orange) + L += t_center + L += t_center.contents + + while( c_dist <= dist ) + y = t_center.y + c_dist + x = t_center.x - c_dist + 1 + for(x in x to t_center.x+c_dist) + T = locate(x,y,t_center.z) + if(T) + L += T + L += T.contents + + y = t_center.y + c_dist - 1 + x = t_center.x + c_dist + for(y in t_center.y-c_dist to y) + T = locate(x,y,t_center.z) + if(T) + L += T + L += T.contents + + y = t_center.y - c_dist + x = t_center.x + c_dist - 1 + for(x in t_center.x-c_dist to x) + T = locate(x,y,t_center.z) + if(T) + L += T + L += T.contents + + y = t_center.y - c_dist + 1 + x = t_center.x - c_dist + for(y in y to t_center.y+c_dist) + T = locate(x,y,t_center.z) + if(T) + L += T + L += T.contents + c_dist++ + + return L + +//similar function to RANGE_TURFS(), but will search spiralling outwards from the center (like the above, but only turfs) +/proc/spiral_range_turfs(dist=0, center=usr, orange=0) + if(!dist) + if(!orange) + return list(center) + else + return list() + + var/turf/t_center = get_turf(center) + if(!t_center) + return list() + + var/list/L = list() + var/turf/T + var/y + var/x + var/c_dist = 1 + + if(!orange) + L += t_center + + while( c_dist <= dist ) + y = t_center.y + c_dist + x = t_center.x - c_dist + 1 + for(x in x to t_center.x+c_dist) + T = locate(x,y,t_center.z) + if(T) + L += T + + y = t_center.y + c_dist - 1 + x = t_center.x + c_dist + for(y in t_center.y-c_dist to y) + T = locate(x,y,t_center.z) + if(T) + L += T + + y = t_center.y - c_dist + x = t_center.x + c_dist - 1 + for(x in t_center.x-c_dist to x) + T = locate(x,y,t_center.z) + if(T) + L += T + + y = t_center.y - c_dist + 1 + x = t_center.x - c_dist + for(y in y to t_center.y+c_dist) + T = locate(x,y,t_center.z) + if(T) + L += T + c_dist++ + + return L + +/atom/proc/contains(var/atom/A) + if(!A) + return 0 + for(var/atom/location = A.loc, location, location = location.loc) + if(location == src) + return 1 + +/proc/add_to_proximity_list(atom/A, range) + var/turf/T = get_turf(A) + if(!T || !A.loc) + throw EXCEPTION("Someone adding a prox sensor in nullspace") + var/list/L = block(locate(T.x - range, T.y - range, T.z), locate(T.x + range, T.y + range, T.z)) + for(var/B in L) + var/turf/C = B + LAZYINITLIST(C.proximity_checkers) + C.proximity_checkers[A] = TRUE + return L + +/proc/remove_from_proximity_list(atom/A, range) + var/turf/T = get_turf(A) + var/list/L = block(locate(T.x - range, T.y - range, T.z), locate(T.x + range, T.y + range, T.z)) + for(var/B in L) + var/turf/C = B + if (!C.proximity_checkers) + continue + C.proximity_checkers.Remove(A) + UNSETEMPTY(C.proximity_checkers) + + +/proc/shift_proximity(atom/checker, atom/A, range, atom/B, newrange) + var/turf/T = get_turf(A) + var/turf/Q = get_turf(B) + if(T == Q && range == newrange) + return 0 + var/list/L = block(locate(T.x - range, T.y - range, T.z), locate(T.x + range, T.y + range, T.z)) + var/list/M = block(locate(Q.x - newrange, Q.y - newrange, Q.z), locate(Q.x + newrange, Q.y + newrange, Q.z)) + var/list/N = L - M + var/list/O = M - L + for(var/C in N) + var/turf/D = C + if (!D.proximity_checkers) + continue + D.proximity_checkers.Remove(checker) + UNSETEMPTY(D.proximity_checkers) + for(var/E in O) + var/turf/F = E + LAZYINITLIST(F.proximity_checkers) + F.proximity_checkers[checker] = TRUE + return 1 + +/proc/flick_overlay_static(image/I, atom/A, duration) + set waitfor = 0 + if(!A || !I) + return + A.add_overlay(I) + sleep(duration) + A.overlays -= I + +/proc/get_areas_in_z(zlevel) + . = list() + var/validarea = FALSE + for(var/V in sortedAreas) + var/area/A = V + validarea = TRUE + for(var/turf/T in A) + if(T.z != zlevel) + validarea = FALSE + break + if(validarea) + . += A + +/proc/get_closest_atom(type, list, source) + var/closest_atom + var/closest_distance + for(var/A in list) + if(!istype(A, type)) + continue + var/distance = get_dist(source, A) + if(!closest_distance) + closest_distance = distance + closest_atom = A + else + if(closest_distance > distance) + closest_distance = distance + closest_atom = A + return closest_atom + +proc/pick_closest_path(value) + var/list/matches = get_fancy_list_of_types() + if (!isnull(value) && value!="") + matches = filter_fancy_list(matches, value) + + if(matches.len==0) + return + + var/chosen + if(matches.len==1) + chosen = matches[1] + else + chosen = input("Select an atom type", "Spawn Atom", matches[1]) as null|anything in matches + if(!chosen) + return + chosen = matches[chosen] + return chosen + +//gives us the stack trace from CRASH() without ending the current proc. +/proc/stack_trace(msg) + CRASH(msg) + +//Key thing that stops lag. Cornerstone of performance in ss13, Just sitting here, in unsorted.dm. + +//Increases delay as the server gets more overloaded, +//as sleeps aren't cheap and sleeping only to wake up and sleep again is wasteful +#define DELTA_CALC max(((max(world.tick_usage, world.cpu) / 100) * max(Master.sleep_delta,1)), 1) + +/proc/stoplag() + . = round(1*DELTA_CALC) + sleep(world.tick_lag) + if (world.tick_usage > TICK_LIMIT_TO_RUN) //woke up, still not enough tick, sleep for more. + . += round(2*DELTA_CALC) + sleep(world.tick_lag*2*DELTA_CALC) + if (world.tick_usage > TICK_LIMIT_TO_RUN) //woke up, STILL not enough tick, sleep for more. + . += round(4*DELTA_CALC) + sleep(world.tick_lag*4*DELTA_CALC) + //you might be thinking of adding more steps to this, or making it use a loop and a counter var + // not worth it. +#undef DELTA_CALC + +/proc/flash_color(mob_or_client, flash_color="#960000", flash_time=20) + var/client/C + if(istype(mob_or_client, /mob)) + var/mob/M = mob_or_client + if(M.client) + C = M.client + else + return + else if(istype(mob_or_client, /client)) + C = mob_or_client + + if(!istype(C)) + return + + C.color = flash_color + spawn(0) + animate(C, color = initial(C.color), time = flash_time) + +#define RANDOM_COLOUR (rgb(rand(0,255),rand(0,255),rand(0,255))) + +#define QDEL_IN(item, time) addtimer(GLOBAL_PROC, "qdel", time, FALSE, item) + +/proc/check_for_cleanbot_bug() + var/static/admins_warned //bet you didn't know you could do this! + var/icon/Icon_test = icon('icons/BadAss.dmi') + if(!istype(Icon_test)) + var/msg = "Cleanbot bug detected in icons! Icons are mapping to [Icon_test]" + if (!admins_warned) + admins_warned = 1 + spawn(25) + message_admins(msg) + stack_trace(msg) + var/sound/Sound_test = sound('sound/misc/null.ogg') + if(!istype(Sound_test)) + var/msg = "Cleanbot bug detected in sounds! Sounds are mapping to [Sound_test]" + if (!admins_warned) + admins_warned = 1 + spawn(25) + message_admins(msg) + stack_trace(msg) + +/proc/random_nukecode() + var/val = rand(0, 99999) + var/str = "[val]" + while(length(str) < 5) + str = "0" + str + . = str diff --git a/code/__PATH_COMPATIBILITY/path_compatibility.dm b/code/__PATH_COMPATIBILITY/path_compatibility.dm new file mode 100644 index 0000000..2d50b3e --- /dev/null +++ b/code/__PATH_COMPATIBILITY/path_compatibility.dm @@ -0,0 +1,21 @@ +/* + + This is a smart+stupid method of maintaining paths during refactors. + At this point in time we have more maps than ever, and our tools just aren't that great. + So instead of repathing all the maps... + + Keep the old path defined, just as an empty type with that path, and then define it's + parent_type as the new path, effectively maintaining the object/mob w/e without having + to touch all the maps, avoiding all those nasty conflicts! + + Ideally the old paths would be cleaned out as mappers go about their usual routine of + updating old maps. + + tl;dr TYPEFUCKERY, because fuck updating all these maps + + Example: + + /obj/structure/bed/chair/janicart/secway + parent_type = /obj/vehicle/secway + +*/ diff --git a/code/_compile_options.dm b/code/_compile_options.dm new file mode 100644 index 0000000..c591269 --- /dev/null +++ b/code/_compile_options.dm @@ -0,0 +1,64 @@ +#define DEBUG //Enables byond profiling and full runtime logs - note, this may also be defined in your .dme file + //Enables in-depth debug messages to runtime log (used for debugging) +//#define TESTING //By using the testing("message") proc you can create debug-feedback for people with this + //uncommented, but not visible in the release version) + +#define PRELOAD_RSC 1 /*set to: + 0 to allow using external resources or on-demand behaviour; + 1 to use the default behaviour; + 2 for preloading absolutely everything; + */ + +#define BACKGROUND_ENABLED 0 // The default value for all uses of set background. Set background can cause gradual lag and is recommended you only turn this on if necessary. + // 1 will enable set background. 0 will disable set background. + +#define INACTIVITY_KICK 6000 //10 minutes in ticks (approx.) + +//ADMIN STUFF +#define ROUNDSTART_LOGOUT_REPORT_TIME 6000 //Amount of time (in deciseconds) after the rounds starts, that the player disconnect report is issued. + +#define SPAM_TRIGGER_WARNING 5 //Number of identical messages required before the spam-prevention will warn you to stfu +#define SPAM_TRIGGER_AUTOMUTE 10 //Number of identical messages required before the spam-prevention will automute you + +//Don't set this very much higher then 1024 unless you like inviting people in to dos your server with message spam +#define MAX_MESSAGE_LEN 1024 +#define MAX_NAME_LEN 42 +#define MAX_BROADCAST_LEN 512 +#define MAX_CHARTER_LEN 80 + +//MINOR TWEAKS/MISC +#define AGE_MIN 17 //youngest a character can be +#define AGE_MAX 85 //oldest a character can be +#define SHOES_SLOWDOWN 0 //How much shoes slow you down by default. Negative values speed you up +#define POCKET_STRIP_DELAY 40 //time taken (in deciseconds) to search somebody's pockets +#define DOOR_CRUSH_DAMAGE 15 //the amount of damage that airlocks deal when they crush you + +#define HUNGER_FACTOR 0.1 //factor at which mob nutrition decreases +#define REAGENTS_METABOLISM 0.4 //How many units of reagent are consumed per tick, by default. +#define REAGENTS_EFFECT_MULTIPLIER (REAGENTS_METABOLISM / 0.4) // By defining the effect multiplier this way, it'll exactly adjust all effects according to how they originally were with the 0.4 metabolism + +#define MAX_STACK_AMOUNT_METAL 50 +#define MAX_STACK_AMOUNT_GLASS 50 +#define MAX_STACK_AMOUNT_RODS 60 + +// AI Toggles +#define AI_CAMERA_LUMINOSITY 5 +#define AI_VOX 1 // Comment out if you don't want VOX to be enabled and have players download the voice sounds. + +//Additional code for the above flags. +#ifdef TESTING +#warn compiling in TESTING mode. testing() debug messages will be visible. +#endif + +//Update this whenever you need to take advantage of more recent byond features +#define MIN_COMPILER_VERSION 510 +#if DM_VERSION < MIN_COMPILER_VERSION +//Don't forget to update this part +#error Your version of BYOND is too out-of-date to compile this project. Go to byond.com/download and update. +#error You need version 510 or higher +#endif + + +#ifndef SERVERTOOLS +#define SERVERTOOLS 0 +#endif diff --git a/code/_globalvars/configuration.dm b/code/_globalvars/configuration.dm new file mode 100644 index 0000000..cb3e38a --- /dev/null +++ b/code/_globalvars/configuration.dm @@ -0,0 +1,45 @@ +var/datum/configuration/config = null +var/datum/protected_configuration/protected_config = null + +var/host = null +var/join_motd = null +var/station_name = null +var/game_version = "/tg/ Station 13" +var/changelog_hash = "" + +var/ooc_allowed = 1 // used with admin verbs to disable ooc - not a config option apparently +var/dooc_allowed = 1 +var/abandon_allowed = 1 +var/enter_allowed = 1 +var/guests_allowed = 1 +var/shuttle_frozen = 0 +var/shuttle_left = 0 +var/tinted_weldhelh = 1 + + +// Debug is used exactly once (in living.dm) but is commented out in a lot of places. It is not set anywhere and only checked. +// Debug2 is used in conjunction with a lot of admin verbs and therefore is actually legit. +var/Debug = 0 // global debug switch +var/Debug2 = 0 + +//Server API key +var/global/comms_key = "default_pwd" +var/global/comms_allowed = 0 //By default, the server does not allow messages to be sent to it, unless the key is strong enough (this is to prevent misconfigured servers from becoming vulnerable) + +//Cross server communications +var/global/cross_address = "byond://" //This needs to be global as the message sent contains the comms key. +var/global/cross_allowed = 0 //Don't bother attempting to send if the address wasn't set. + +var/global/medal_hub = null +var/global/medal_pass = " " +var/global/medals_enabled = TRUE //will be auto set to false if the game fails contacting the medal hub to prevent unneeded calls. + + +//This was a define, but I changed it to a variable so it can be changed in-game.(kept the all-caps definition because... code...) -Errorage +var/MAX_EX_DEVESTATION_RANGE = 3 +var/MAX_EX_HEAVY_RANGE = 7 +var/MAX_EX_LIGHT_RANGE = 14 +var/MAX_EX_FLASH_RANGE = 14 +var/MAX_EX_FLAME_RANGE = 14 +var/DYN_EX_SCALE = 0.5 + diff --git a/code/_globalvars/database.dm b/code/_globalvars/database.dm new file mode 100644 index 0000000..c07251d --- /dev/null +++ b/code/_globalvars/database.dm @@ -0,0 +1,12 @@ + // MySQL configuration + +var/sqladdress = "localhost" +var/sqlport = "3306" +var/sqlfdbkdb = "test" +var/sqlfdbklogin = "root" +var/sqlfdbkpass = "" +var/sqlfdbktableprefix = "erro_" //backwords compatibility with downstream server hosts + +//Database connections +//A connection is established on world creation. Ideally, the connection dies when the server restarts (After feedback logging.). +var/DBConnection/dbcon = new() //Feedback database (New database) diff --git a/code/_globalvars/game_modes.dm b/code/_globalvars/game_modes.dm new file mode 100644 index 0000000..a8597af --- /dev/null +++ b/code/_globalvars/game_modes.dm @@ -0,0 +1,5 @@ +var/master_mode = "traitor"//"extended" +var/secret_force_mode = "secret" // if this is anything but "secret", the secret rotation will forceably choose this mode + +var/wavesecret = 0 // meteor mode, delays wave progression, terrible name +var/datum/station_state/start_state = null // Used in round-end report diff --git a/code/_globalvars/genetics.dm b/code/_globalvars/genetics.dm new file mode 100644 index 0000000..80c66db --- /dev/null +++ b/code/_globalvars/genetics.dm @@ -0,0 +1,28 @@ + ////////////// +var/NEARSIGHTBLOCK = 0 +var/EPILEPSYBLOCK = 0 +var/COUGHBLOCK = 0 +var/TOURETTESBLOCK = 0 +var/NERVOUSBLOCK = 0 +var/BLINDBLOCK = 0 +var/DEAFBLOCK = 0 +var/HULKBLOCK = 0 +var/TELEBLOCK = 0 +var/FIREBLOCK = 0 +var/XRAYBLOCK = 0 +var/CLUMSYBLOCK = 0 +var/STRANGEBLOCK = 0 +var/RACEBLOCK = 0 + +var/list/bad_se_blocks +var/list/good_se_blocks +var/list/op_se_blocks + +var/NULLED_SE +var/NULLED_UI + +var/list/global_mutations = list() // list of hidden mutation things + +var/list/bad_mutations = list() +var/list/good_mutations = list() +var/list/not_good_mutations = list() \ No newline at end of file diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm new file mode 100644 index 0000000..60a63ca --- /dev/null +++ b/code/_globalvars/lists/flavor_misc.dm @@ -0,0 +1,156 @@ +//Preferences stuff + //Hairstyles +var/global/list/hair_styles_list = list() //stores /datum/sprite_accessory/hair indexed by name +var/global/list/hair_styles_male_list = list() //stores only hair names +var/global/list/hair_styles_female_list = list() //stores only hair names +var/global/list/facial_hair_styles_list = list() //stores /datum/sprite_accessory/facial_hair indexed by name +var/global/list/facial_hair_styles_male_list = list() //stores only hair names +var/global/list/facial_hair_styles_female_list = list() //stores only hair names + //Underwear +var/global/list/underwear_list = list() //stores /datum/sprite_accessory/underwear indexed by name +var/global/list/underwear_m = list() //stores only underwear name +var/global/list/underwear_f = list() //stores only underwear name + //Undershirts +var/global/list/undershirt_list = list() //stores /datum/sprite_accessory/undershirt indexed by name +var/global/list/undershirt_m = list() //stores only undershirt name +var/global/list/undershirt_f = list() //stores only undershirt name + //Socks +var/global/list/socks_list = list() //stores /datum/sprite_accessory/socks indexed by name + //Lizard Bits (all datum lists indexed by name) +var/global/list/body_markings_list = list() +var/global/list/tails_list_lizard = list() +var/global/list/animated_tails_list_lizard = list() +var/global/list/snouts_list = list() +var/global/list/horns_list = list() +var/global/list/frills_list = list() +var/global/list/spines_list = list() +var/global/list/legs_list = list() +var/global/list/animated_spines_list = list() + + //Mutant Human bits +var/global/list/tails_list_human = list() +var/global/list/animated_tails_list_human = list() +var/global/list/ears_list = list() +var/global/list/wings_list = list() +var/global/list/wings_open_list = list() +var/global/list/r_wings_list = list() + +var/global/list/ghost_forms_with_directions_list = list("ghost") //stores the ghost forms that support directional sprites +var/global/list/ghost_forms_with_accessories_list = list("ghost") //stores the ghost forms that support hair and other such things + + //Backpacks +#define GBACKPACK "Grey Backpack" +#define GSATCHEL "Grey Satchel" +#define GDUFFLEBAG "Grey Dufflebag" +#define LSATCHEL "Leather Satchel" +#define DBACKPACK "Department Backpack" +#define DSATCHEL "Department Satchel" +#define DDUFFLEBAG "Department Dufflebag" +var/global/list/backbaglist = list(DBACKPACK, DSATCHEL, DDUFFLEBAG, GBACKPACK, GSATCHEL, GDUFFLEBAG, LSATCHEL) + //Female Uniforms +var/global/list/female_clothing_icons = list() + + //radical shit +var/list/hit_appends = list("-OOF", "-ACK", "-UGH", "-HRNK", "-HURGH", "-GLORF") + +var/list/scarySounds = list('sound/weapons/thudswoosh.ogg','sound/weapons/Taser.ogg','sound/weapons/armbomb.ogg','sound/voice/hiss1.ogg','sound/voice/hiss2.ogg','sound/voice/hiss3.ogg','sound/voice/hiss4.ogg','sound/voice/hiss5.ogg','sound/voice/hiss6.ogg','sound/effects/Glassbr1.ogg','sound/effects/Glassbr2.ogg','sound/effects/Glassbr3.ogg','sound/items/Welder.ogg','sound/items/Welder2.ogg','sound/machines/airlock.ogg','sound/effects/clownstep1.ogg','sound/effects/clownstep2.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 +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 +*/ + +var/list/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") + +var/global/list/guitar_notes = flist("sound/guitar/") + +var/global/list/station_prefixes = list()/*"", "Imperium", "Heretical", "Cuban", + "Psychic", "Elegant", "Common", "Uncommon", "Rare", "Unique", + "Houseruled", "Religious", "Atheist", "Traditional", "Houseruled", + "Mad", "Super", "Ultra", "Secret", "Top Secret", "Deep", "Death", + "Zybourne", "Central", "Main", "Government", "Uoi", "Fat", + "Automated", "Experimental", "Augmented")*/ + +var/global/list/station_names = list("Fuck This Shit", "No Memes Allowed", "Murder Boner Simulator", "READ THE FUCKING RULES", + "Rick Sanchez", "You're Here Forever","A Normal Round", "The Wild Ride", "Spessmen Simulator", "You Won't Survive", "IT'S ALL OVER NOW", + "Fresh Memes", "Dank Memes")/*"", "Stanford", "Dorf", "Alium", + "Prefix", "Clowning", "Aegis", "Ishimura", "Scaredy", "Death-World", + "Mime", "Honk", "Rogue", "MacRagge", "Ultrameens", "Safety", "Paranoia", + "Explosive", "Neckbear", "Donk", "Muppet", "North", "West", "East", + "South", "Slant-ways", "Widdershins", "Rimward", "Expensive", + "Procreatory", "Imperial", "Unidentified", "Immoral", "Carp", "Ork", + "Pete", "Control", "Nettle", "Aspie", "Class", "Crab", "Fist", + "Corrogated","Skeleton","Race", "Fatguy", "Gentleman", "Capitalist", + "Communist", "Bear", "Beard", "Derp", "Space", "Spess", "Star", "Moon", + "System", "Mining", "Neckbeard", "Research", "Supply", "Military", + "Orbital", "Battle", "Science", "Asteroid", "Home", "Production", + "Transport", "Delivery", "Extraplanetary", "Orbital", "Correctional", + "Robot", "Hats", "Pizza")*/ + +var/global/list/station_suffixes = list("Station", "Frontier", + "Suffix", "Death-trap", "Space-hulk", "Lab", "Hazard","Spess Junk", + "Fishery", "No-Moon", "Tomb", "Crypt", "Hut", "Monkey", "Bomb", + "Trade Post", "Fortress", "Village", "Town", "City", "Edition", "Hive", + "Complex", "Base", "Facility", "Depot", "Outpost", "Installation", + "Drydock", "Observatory", "Array", "Relay", "Monitor", "Platform", + "Construct", "Hangar", "Prison", "Center", "Port", "Waystation", + "Factory", "Waypoint", "Stopover", "Hub", "HQ", "Office", "Object", + "Fortification", "Colony", "Planet-Cracker", "Roost", "Fat Camp", + "Airstrip") + +var/global/list/greek_letters = list("Alpha", "Beta", "Gamma", "Delta", + "Epsilon", "Zeta", "Eta", "Theta", "Iota", "Kappa", "Lambda", "Mu", + "Nu", "Xi", "Omicron", "Pi", "Rho", "Sigma", "Tau", "Upsilon", "Phi", + "Chi", "Psi", "Omega") + +var/global/list/phonetic_alphabet = list("Alpha", "Bravo", "Charlie", + "Delta", "Echo", "Foxtrot", "Golf", "Hotel", "India", "Juliet", + "Kilo", "Lima", "Mike", "November", "Oscar", "Papa", "Quebec", + "Romeo", "Sierra", "Tango", "Uniform", "Victor", "Whiskey", "X-ray", + "Yankee", "Zulu") + +var/global/list/numbers_as_words = list("One", "Two", "Three", "Four", + "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve", + "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", + "Eighteen", "Nineteen") + +/proc/generate_number_strings() + var/list/L + for(var/i in 1 to 99) + L += "[i]" + L += "\Roman[i]" + return L + +var/global/list/station_numerals = greek_letters + phonetic_alphabet + numbers_as_words + generate_number_strings() diff --git a/code/_globalvars/lists/mapping.dm b/code/_globalvars/lists/mapping.dm new file mode 100644 index 0000000..f37fb05 --- /dev/null +++ b/code/_globalvars/lists/mapping.dm @@ -0,0 +1,68 @@ +#define Z_NORTH 1 +#define Z_EAST 2 +#define Z_SOUTH 3 +#define Z_WEST 4 + +var/list/cardinal = list( NORTH, SOUTH, EAST, WEST ) +var/list/alldirs = list(NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST) +var/list/diagonals = list(NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST) + +//This list contains the z-level numbers which can be accessed via space travel and the percentile chances to get there. +//(Exceptions: extended, sandbox and nuke) -Errorage +//Was list("3" = 30, "4" = 70). +//Spacing should be a reliable method of getting rid of a body -- Urist. +//Go away Urist, I'm restoring this to the longer list. ~Errorage +var/list/accessable_z_levels = list(1,3,4,5,6,7) //Keep this to six maps, repeating z-levels is ok if needed + +var/global/list/global_map = null + //list/global_map = list(list(1,5),list(4,3))//an array of map Z levels. + //Resulting sector map looks like + //|_1_|_4_| + //|_5_|_3_| + // + //1 - SS13 + //4 - Derelict + //3 - AI satellite + //5 - empty space + +var/list/landmarks_list = list() //list of all landmarks created +var/list/start_landmarks_list = list() //list of all spawn points created +var/list/department_security_spawns = list() //list of all department security spawns +var/list/generic_event_spawns = list() //list of all spawns for events + +var/list/monkeystart = list() +var/list/wizardstart = list() +var/list/newplayer_start = list() +var/list/latejoin = list() +var/list/prisonwarp = list() //prisoners go to these +var/list/holdingfacility = list() //captured people go here +var/list/xeno_spawn = list()//Aliens spawn at these. +var/list/tdome1 = list() +var/list/tdome2 = list() +var/list/tdomeobserve = list() +var/list/tdomeadmin = list() +var/list/prisonsecuritywarp = list() //prison security goes to these +var/list/prisonwarped = list() //list of players already warped +var/list/blobstart = list() +var/list/secequipment = list() +var/list/deathsquadspawn = list() +var/list/emergencyresponseteamspawn = list() +var/list/ruin_landmarks = list() + + //away missions +var/list/awaydestinations = list() //a list of landmarks that the warpgate can take you to + + //used by jump-to-area etc. Updated by area/updateName() +var/list/sortedAreas = list() + +//List of preloaded templates +var/list/datum/map_template/map_templates = list() + +var/list/datum/map_template/ruins_templates = list() +var/list/datum/map_template/space_ruins_templates = list() +var/list/datum/map_template/lava_ruins_templates = list() + +var/list/datum/map_template/shuttle_templates = list() +var/list/datum/map_template/shelter_templates = list() + +var/list/transit_markers = list() diff --git a/code/_globalvars/lists/mobs.dm b/code/_globalvars/lists/mobs.dm new file mode 100644 index 0000000..9e5fc17 --- /dev/null +++ b/code/_globalvars/lists/mobs.dm @@ -0,0 +1,15 @@ +var/list/clients = list() //all clients +var/list/admins = list() //all clients whom are admins +var/list/deadmins = list() //all clients who have used the de-admin verb. +var/list/directory = list() //all ckeys with associated client +var/list/stealthminID = list() //reference list with IDs that store ckeys, for stealthmins + +//Since it didn't really belong in any other category, I'm putting this here +//This is for procs to replace all the goddamn 'in world's that are chilling around the code + +var/global/list/player_list = list() //all mobs **with clients attached**. Excludes /mob/new_player +var/global/list/mob_list = list() //all mobs, including clientless +var/global/list/living_mob_list = list() //all alive mobs, including clientless. Excludes /mob/new_player +var/global/list/dead_mob_list = list() //all dead mobs, including clientless. Excludes /mob/new_player +var/global/list/joined_player_list = list() //all clients that have joined the game at round-start or as a latejoin. +var/global/list/silicon_mobs = list() //all silicon mobs \ No newline at end of file diff --git a/code/_globalvars/lists/names.dm b/code/_globalvars/lists/names.dm new file mode 100644 index 0000000..90a4c7b --- /dev/null +++ b/code/_globalvars/lists/names.dm @@ -0,0 +1,21 @@ +var/list/ai_names = file2list("config/names/ai.txt") +var/list/wizard_first = file2list("config/names/wizardfirst.txt") +var/list/wizard_second = file2list("config/names/wizardsecond.txt") +var/list/ninja_titles = file2list("config/names/ninjatitle.txt") +var/list/ninja_names = file2list("config/names/ninjaname.txt") +var/list/commando_names = file2list("config/names/death_commando.txt") +var/list/first_names_male = file2list("config/names/first_male.txt") +var/list/first_names_female = file2list("config/names/first_female.txt") +var/list/last_names = file2list("config/names/last.txt") +var/list/lizard_names_male = file2list("config/names/lizard_male.txt") +var/list/lizard_names_female = file2list("config/names/lizard_female.txt") +var/list/clown_names = file2list("config/names/clown.txt") +var/list/mime_names = file2list("config/names/mime.txt") +var/list/carp_names = file2list("config/names/carp.txt") +var/list/golem_names = file2list("config/names/golem.txt") + + +var/list/verbs = file2list("config/names/verbs.txt") +var/list/adjectives = file2list("config/names/adjectives.txt") +//loaded on startup because of " +//would include in rsc if ' was used diff --git a/code/_globalvars/lists/objects.dm b/code/_globalvars/lists/objects.dm new file mode 100644 index 0000000..f614f37 --- /dev/null +++ b/code/_globalvars/lists/objects.dm @@ -0,0 +1,29 @@ +var/global/list/cable_list = list() //Index for all cables, so that powernets don't have to look through the entire world all the time +var/global/list/portals = list() //list of all /obj/effect/portal +var/global/list/airlocks = list() //list of all airlocks +var/global/list/mechas_list = list() //list of all mechs. Used by hostile mobs target tracking. +var/global/list/shuttle_caller_list = list() //list of all communication consoles and AIs, for automatic shuttle calls when there are none. +var/global/list/machines = list() //NOTE: this is a list of ALL machines now. The processing machines list is SSmachine.processing ! +var/global/list/syndicate_shuttle_boards = list() //important to keep track of for managing nukeops war declarations. +var/global/list/navbeacons = list() //list of all bot nagivation beacons, used for patrolling. +var/global/list/teleportbeacons = list() //list of all tracking beacons used by teleporters +var/global/list/deliverybeacons = list() //list of all MULEbot delivery beacons. +var/global/list/deliverybeacontags = list() //list of all tags associated with delivery beacons. +var/global/list/nuke_list = list() +var/global/list/nuke_tiles = list() //list of all turfs that turn to animated red grids when a nuke is triggered +var/global/list/alarmdisplay = list() //list of all machines or programs that can display station alerts + +var/global/list/chemical_reactions_list //list of all /datum/chemical_reaction datums. Used during chemical reactions +var/global/list/chemical_reagents_list //list of all /datum/reagent datums indexed by reagent id. Used by chemistry stuff +var/global/list/materials_list = list() //list of all /datum/material datums indexed by material id. +var/global/list/tech_list = list() //list of all /datum/tech datums indexed by id. +var/global/list/surgeries_list = list() //list of all surgeries by name, associated with their path. +var/global/list/crafting_recipes = list() //list of all table craft recipes +var/global/list/rcd_list = list() //list of Rapid Construction Devices. +var/global/list/apcs_list = list() //list of all Area Power Controller machines, seperate from machines for powernet speeeeeeed. +var/global/list/tracked_implants = list() //list of all current implants that are tracked to work out what sort of trek everyone is on. Sadly not on lavaworld not implemented... +var/global/list/tracked_chem_implants = list() //list of implants the prisoner console can track and send inject commands too +var/global/list/poi_list = list() //list of points of interest for observe/follow +var/global/list/pinpointer_list = list() //list of all pinpointers. Used to change stuff they are pointing to all at once. +var/global/list/zombie_infection_list = list() // A list of all zombie_infection organs, for any mass "animation" +var/global/list/meteor_list = list() // List of all meteors. diff --git a/code/_globalvars/lists/poll_ignore.dm b/code/_globalvars/lists/poll_ignore.dm new file mode 100644 index 0000000..6a765f6 --- /dev/null +++ b/code/_globalvars/lists/poll_ignore.dm @@ -0,0 +1,6 @@ +//Each lists stores ckeys for "Never for this round" option category + +#define POLL_IGNORE_PAI "pai" +#define POLL_IGNORE_SENTIENCE_POTION "sentience_potion" + +var/list/poll_ignore = list() \ No newline at end of file diff --git a/code/_globalvars/logging.dm b/code/_globalvars/logging.dm new file mode 100644 index 0000000..348dc6d --- /dev/null +++ b/code/_globalvars/logging.dm @@ -0,0 +1,15 @@ +var/diary = null +var/diaryofmeanpeople = null +var/href_logfile = null + +var/list/bombers = list( ) +var/list/admin_log = list ( ) +var/list/lastsignalers = list( ) //keeps last 100 signals here in format: "[src] used \ref[src] @ location [src.loc]: [freq]/[code]" +var/list/lawchanges = list( ) //Stores who uploaded laws to which silicon-based lifeform, and what the law was + +var/list/combatlog = list() +var/list/IClog = list() +var/list/OOClog = list() +var/list/adminlog = list() + +var/list/active_turfs_startlist = list() diff --git a/code/_globalvars/misc.dm b/code/_globalvars/misc.dm new file mode 100644 index 0000000..baa8817 --- /dev/null +++ b/code/_globalvars/misc.dm @@ -0,0 +1,22 @@ +var/admin_notice = "" // Admin notice that all clients see when joining the server + +var/timezoneOffset = 0 // The difference betwen midnight (of the host computer) and 0 world.ticks. + + // For FTP requests. (i.e. downloading runtime logs.) + // However it'd be ok to use for accessing attack logs and such too, which are even laggier. +var/fileaccess_timer = 0 + +var/TAB = "    " + + + +var/map_ready = 0 +/* + basically, this will be used to avoid initialize() being called twice for objects + initialize() is necessary because the map is instanced on a turf-by-turf basis + i.e. all obj on a turf are instanced, then all mobs on that turf, before moving to the next turf (starting bottom-left) + This means if we want to say, get any neighbouring objects in New(), only objects to the south and west will exist yet. + Therefore, we'd need to use spawn() inside New() to wait for the surrounding turf contents to be instanced + However, using lots of spawn() has a severe performance impact, and often results in spaghetti-code + map_ready will be set to 1 when world/New() is called (which happens just after the map is instanced) +*/ \ No newline at end of file diff --git a/code/_globalvars/station.dm b/code/_globalvars/station.dm new file mode 100644 index 0000000..6d3ddf8 --- /dev/null +++ b/code/_globalvars/station.dm @@ -0,0 +1,10 @@ +var/global/datum/datacore/data_core = null +//var/global/defer_powernet_rebuild = 0 // true if net rebuild will be called manually after an event +//Noble idea, but doing this made GC fail. The gains from waiting on deffering are lost by using del() + +var/CELLRATE = 0.002 // multiplier for watts per tick <> cell storage (eg: .002 means if there is a load of 1000 watts, 20 units will be taken from a cell per second) +var/CHARGELEVEL = 0.001 // Cap for how fast cells charge, as a percentage-per-tick (.001 means cellcharge is capped to 1% per second) + +var/list/powernets = list() + +var/map_name = "Unknown" //The name of the map that is loaded. Assigned in world/New() \ No newline at end of file diff --git a/code/_onclick/adjacent.dm b/code/_onclick/adjacent.dm new file mode 100644 index 0000000..9f9cbca --- /dev/null +++ b/code/_onclick/adjacent.dm @@ -0,0 +1,97 @@ +/* + Adjacency proc for determining touch range + + This is mostly to determine if a user can enter a square for the purposes of touching something. + Examples include reaching a square diagonally or reaching something on the other side of a glass window. + + This is calculated by looking for border items, or in the case of clicking diagonally from yourself, dense items. + This proc will NOT notice if you are trying to attack a window on the other side of a dense object in its turf. There is a window helper for that. + + Note that in all cases the neighbor is handled simply; this is usually the user's mob, in which case it is up to you + to check that the mob is not inside of something +*/ +/atom/proc/Adjacent(atom/neighbor) // basic inheritance, unused + return 0 + +// Not a sane use of the function and (for now) indicative of an error elsewhere +/area/Adjacent(var/atom/neighbor) + CRASH("Call to /area/Adjacent(), unimplemented proc") + + +/* + Adjacency (to turf): + * If you are in the same turf, always true + * If you are vertically/horizontally adjacent, ensure there are no border objects + * If you are diagonally adjacent, ensure you can pass through at least one of the mutually adjacent square. + * Passing through in this case ignores anything with the LETPASSTHROW pass flag, such as tables, racks, and morgue trays. +*/ +/turf/Adjacent(var/atom/neighbor, var/atom/target = null) + var/turf/T0 = get_turf(neighbor) + + if(T0 == src) //same turf + return 1 + + if(get_dist(src,T0) > 1) //too far + return 0 + + // Non diagonal case + if(T0.x == x || T0.y == y) + // Check for border blockages + return T0.ClickCross(get_dir(T0,src), border_only = 1) && src.ClickCross(get_dir(src,T0), border_only = 1, target_atom = target) + + // Diagonal case + var/in_dir = get_dir(T0,src) // eg. northwest (1+8) = 9 (00001001) + var/d1 = in_dir&3 // eg. north (1+8)&3 (0000 0011) = 1 (0000 0001) + var/d2 = in_dir&12 // eg. west (1+8)&12 (0000 1100) = 8 (0000 1000) + + for(var/d in list(d1,d2)) + if(!T0.ClickCross(d, border_only = 1)) + continue // could not leave T0 in that direction + + var/turf/T1 = get_step(T0,d) + if(!T1 || T1.density || !T1.ClickCross(get_dir(T1,T0) | get_dir(T1,src), border_only = 0)) //let's check both directions at once + continue // couldn't enter or couldn't leave T1 + + if(!src.ClickCross(get_dir(src,T1), border_only = 1, target_atom = target)) + continue // could not enter src + + return 1 // we don't care about our own density + + return 0 + +/* + Adjacency (to anything else): + * Must be on a turf +*/ +/atom/movable/Adjacent(var/atom/neighbor) + if(neighbor == loc) return 1 + if(!isturf(loc)) return 0 + if(loc.Adjacent(neighbor,src)) return 1 + return 0 + +// This is necessary for storage items not on your person. +/obj/item/Adjacent(var/atom/neighbor, var/recurse = 1) + if(neighbor == loc) return 1 + if(istype(loc,/obj/item)) + if(recurse > 0) + return loc.Adjacent(neighbor,recurse - 1) + return 0 + return ..() + +/* + This checks if you there is uninterrupted airspace between that turf and this one. + This is defined as any dense ON_BORDER object, or any dense object without LETPASSTHROW. + The border_only flag allows you to not objects (for source and destination squares) +*/ +/turf/proc/ClickCross(target_dir, border_only, target_atom = null) + for(var/obj/O in src) + if( !O.density || O == target_atom || (O.pass_flags & LETPASSTHROW)) //check if there's a dense object present on the turf + continue // LETPASSTHROW is used for anything you can click through (or the firedoor special case, see above) + + if( O.flags&ON_BORDER) // windows are on border, check them first + if( O.dir & target_dir || O.dir & (O.dir-1) ) // full tile windows are just diagonals mechanically + return 0 //O.dir&(O.dir-1) is false for any cardinal direction, but true for diagonal ones + + else if( !border_only ) // dense, not on border, cannot pass over + return 0 + return 1 diff --git a/code/_onclick/ai.dm b/code/_onclick/ai.dm new file mode 100644 index 0000000..38df843 --- /dev/null +++ b/code/_onclick/ai.dm @@ -0,0 +1,177 @@ +/* + AI ClickOn() + + Note currently ai restrained() returns 0 in all cases, + therefore restrained code has been removed + + The AI can double click to move the camera (this was already true but is cleaner), + or double click a mob to track them. + + Note that AI have no need for the adjacency proc, and so this proc is a lot cleaner. +*/ +/mob/living/silicon/ai/DblClickOn(var/atom/A, params) + if(client.click_intercept) + if(call(client.click_intercept, "InterceptClickOn")(src, params, A)) + return + + if(control_disabled || stat) return + + if(ismob(A)) + ai_actual_track(A) + else + A.move_camera_by_click() + + +/mob/living/silicon/ai/ClickOn(var/atom/A, params) + if(world.time <= next_click) + return + next_click = world.time + 1 + + if(client.click_intercept) + if(call(client.click_intercept, "InterceptClickOn")(src, params, A)) + return + + if(control_disabled || stat) + return + + var/list/modifiers = params2list(params) + if(modifiers["shift"] && modifiers["ctrl"]) + CtrlShiftClickOn(A) + return + if(modifiers["middle"]) + if(controlled_mech) //Are we piloting a mech? Placed here so the modifiers are not overridden. + controlled_mech.click_action(A, src, params) //Override AI normal click behavior. + return + + return + if(modifiers["shift"]) + ShiftClickOn(A) + return + if(modifiers["alt"]) // alt and alt-gr (rightalt) + AltClickOn(A) + return + if(modifiers["ctrl"]) + CtrlClickOn(A) + return + + if(world.time <= next_move) + return + + if(aicamera.in_camera_mode) + aicamera.camera_mode_off() + aicamera.captureimage(A, usr) + return + if(waypoint_mode) + set_waypoint(A) + waypoint_mode = 0 + return + + /* + AI restrained() currently does nothing + if(restrained()) + RestrainedClickOn(A) + else + */ + A.attack_ai(src) + +/* + AI has no need for the UnarmedAttack() and RangedAttack() procs, + because the AI code is not generic; attack_ai() is used instead. + The below is only really for safety, or you can alter the way + it functions and re-insert it above. +*/ +/mob/living/silicon/ai/UnarmedAttack(atom/A) + A.attack_ai(src) +/mob/living/silicon/ai/RangedAttack(atom/A) + A.attack_ai(src) + +/atom/proc/attack_ai(mob/user) + return + +/* + Since the AI handles shift, ctrl, and alt-click differently + than anything else in the game, atoms have separate procs + for AI shift, ctrl, and alt clicking. +*/ + +/mob/living/silicon/ai/CtrlShiftClickOn(var/atom/A) + A.AICtrlShiftClick(src) +/mob/living/silicon/ai/ShiftClickOn(var/atom/A) + A.AIShiftClick(src) +/mob/living/silicon/ai/CtrlClickOn(var/atom/A) + A.AICtrlClick(src) +/mob/living/silicon/ai/AltClickOn(var/atom/A) + A.AIAltClick(src) + +/* + The following criminally helpful code is just the previous code cleaned up; + I have no idea why it was in atoms.dm instead of respective files. +*/ +/* Questions: Instead of an Emag check on every function, can we not add to airlocks onclick if emag return? */ + +/* Atom Procs */ +/atom/proc/AICtrlClick() + return +/atom/proc/AIAltClick(mob/living/silicon/ai/user) + AltClick(user) + return +/atom/proc/AIShiftClick() + return +/atom/proc/AICtrlShiftClick() + return + +/* Airlocks */ +/obj/machinery/door/airlock/AICtrlClick() // Bolts doors + if(emagged) + return + if(locked) + Topic("aiEnable=4", list("aiEnable"="4"), 1)// 1 meaning no window (consistency!) + else + Topic("aiDisable=4", list("aiDisable"="4"), 1) + return +/obj/machinery/door/airlock/AIAltClick() // Eletrifies doors. + if(emagged) + return + if(!secondsElectrified) + // permenant shock + Topic("aiEnable=6", list("aiEnable"="6"), 1) // 1 meaning no window (consistency!) + else + // disable/6 is not in Topic; disable/5 disables both temporary and permenant shock + Topic("aiDisable=5", list("aiDisable"="5"), 1) + return +/obj/machinery/door/airlock/AIShiftClick() // Opens and closes doors! + if(emagged) + return + if(density) + Topic("aiEnable=7", list("aiEnable"="7"), 1) // 1 meaning no window (consistency!) + else + Topic("aiDisable=7", list("aiDisable"="7"), 1) + return +/obj/machinery/door/airlock/AICtrlShiftClick() // Sets/Unsets Emergency Access Override + if(emagged) + return + if(!emergency) + Topic("aiEnable=11", list("aiEnable"="11"), 1) // 1 meaning no window (consistency!) + else + Topic("aiDisable=11", list("aiDisable"="11"), 1) + return + +/* APC */ +/obj/machinery/power/apc/AICtrlClick() // turns off/on APCs. + toggle_breaker() + add_fingerprint(usr) + +/* AI Turrets */ +/obj/machinery/turretid/AIAltClick() //toggles lethal on turrets + toggle_lethal() + add_fingerprint(usr) +/obj/machinery/turretid/AICtrlClick() //turns off/on Turrets + toggle_on() + add_fingerprint(usr) + +// +// Override TurfAdjacent for AltClicking +// + +/mob/living/silicon/ai/TurfAdjacent(var/turf/T) + return (cameranet && cameranet.checkTurfVis(T)) diff --git a/code/_onclick/autoclick.dm b/code/_onclick/autoclick.dm new file mode 100644 index 0000000..1ceeb18 --- /dev/null +++ b/code/_onclick/autoclick.dm @@ -0,0 +1,45 @@ +/client + var/list/atom/selected_target[2] + +/client/MouseDown(object, location, control, params) + var/delay = mob.CanMobAutoclick(object, location, params) + if(delay) + selected_target[1] = object + selected_target[2] = params + while(selected_target[1]) + Click(selected_target[1], location, control, selected_target[2]) + sleep(delay) + +/client/MouseUp(object, location, control, params) + selected_target[1] = null + +/client/MouseDrag(src_object,atom/over_object,src_location,over_location,src_control,over_control,params) + if(selected_target[1] && over_object.IsAutoclickable()) + selected_target[1] = over_object + selected_target[2] = params + +/mob/proc/CanMobAutoclick(object, location, params) + +/mob/living/carbon/CanMobAutoclick(atom/object, location, params) + if(!object.IsAutoclickable()) + return + var/obj/item/h = get_active_held_item() + if(h) + . = h.CanItemAutoclick(object, location, params) + +/obj/item/proc/CanItemAutoclick(object, location, params) + +/obj/item/weapon/gun + var/automatic = 0 //can gun use it, 0 is no, anything above 0 is the delay between clicks in ds + +/obj/item/weapon/gun/CanItemAutoclick(object, location, params) + . = automatic + +/atom/proc/IsAutoclickable() + . = 1 + +/obj/screen/IsAutoclickable() + . = 0 + +/obj/screen/click_catcher/IsAutoclickable() + . = 1 \ No newline at end of file diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm new file mode 100644 index 0000000..def7d84 --- /dev/null +++ b/code/_onclick/click.dm @@ -0,0 +1,375 @@ +/* + Click code cleanup + ~Sayu +*/ + +// 1 decisecond click delay (above and beyond mob/next_move) +//This is mainly modified by click code, to modify click delays elsewhere, use next_move and changeNext_move() +/mob/var/next_click = 0 + +// THESE DO NOT EFFECT THE BASE 1 DECISECOND DELAY OF NEXT_CLICK +/mob/var/next_move_adjust = 0 //Amount to adjust action/click delays by, + or - +/mob/var/next_move_modifier = 1 //Value to multiply action/click delays by + + +//Delays the mob's next click/action by num deciseconds +// eg: 10-3 = 7 deciseconds of delay +// eg: 10*0.5 = 5 deciseconds of delay +// DOES NOT EFFECT THE BASE 1 DECISECOND DELAY OF NEXT_CLICK + +/mob/proc/changeNext_move(num) + next_move = world.time + ((num+next_move_adjust)*next_move_modifier) + + +/* + Before anything else, defer these calls to a per-mobtype handler. This allows us to + remove istype() spaghetti code, but requires the addition of other handler procs to simplify it. + + Alternately, you could hardcode every mob's variation in a flat ClickOn() proc; however, + that's a lot of code duplication and is hard to maintain. + + Note that this proc can be overridden, and is in the case of screen objects. +*/ +/atom/Click(location,control,params) + usr.ClickOn(src, params) +/atom/DblClick(location,control,params) + usr.DblClickOn(src,params) + +/* + Standard mob ClickOn() + Handles exceptions: Buildmode, middle click, modified clicks, mech actions + + After that, mostly just check your state, check whether you're holding an item, + check whether you're adjacent to the target, then pass off the click to whoever + is recieving it. + The most common are: + * mob/UnarmedAttack(atom,adjacent) - used here only when adjacent, with no item in hand; in the case of humans, checks gloves + * atom/attackby(item,user) - used only when adjacent + * item/afterattack(atom,user,adjacent,params) - used both ranged and adjacent + * mob/RangedAttack(atom,params) - used only ranged, only used for tk and laser eyes but could be changed +*/ +/mob/proc/ClickOn( atom/A, params ) + if(world.time <= next_click) + return + next_click = world.time + 1 + + if(client.click_intercept) + if(call(client.click_intercept, "InterceptClickOn")(src, params, A)) + return + + var/list/modifiers = params2list(params) + if(modifiers["shift"] && modifiers["middle"]) + ShiftMiddleClickOn(A) + return + if(modifiers["shift"] && modifiers["ctrl"]) + CtrlShiftClickOn(A) + return + if(modifiers["middle"]) + MiddleClickOn(A) + return + if(modifiers["shift"]) + ShiftClickOn(A) + return + if(modifiers["alt"]) // alt and alt-gr (rightalt) + AltClickOn(A) + return + if(modifiers["ctrl"]) + CtrlClickOn(A) + return + + if(incapacitated(ignore_restraints = 1)) + return + + face_atom(A) + + if(next_move > world.time) // in the year 2000... + return + + if(istype(loc,/obj/mecha)) + var/obj/mecha/M = loc + return M.click_action(A,src,params) + + if(restrained()) + changeNext_move(CLICK_CD_HANDCUFFED) //Doing shit in cuffs shall be vey slow + RestrainedClickOn(A) + return + + if(in_throw_mode) + throw_item(A) + return + + var/obj/item/W = get_active_held_item() + + + if(W == A) + W.attack_self(src) + update_inv_hands() + return + + // operate three levels deep here (item in backpack in src; item in box in backpack in src, not any deeper) + if(A.ClickAccessible(src, depth=INVENTORY_DEPTH)) + // No adjacency needed + if(W) + var/resolved = A.attackby(W,src) + if(!resolved && A && W) + W.afterattack(A,src,1,params) // 1 indicates adjacency + else + if(ismob(A)) + changeNext_move(CLICK_CD_MELEE) + UnarmedAttack(A) + return + + if(!isturf(loc)) // This is going to stop you from telekinesing from inside a closet, but I don't shed many tears for that + return + + // Allows you to click on a box's contents, if that box is on the ground, but no deeper than that + if(isturf(A) || isturf(A.loc) || (A.loc && isturf(A.loc.loc))) + if(A.Adjacent(src)) // see adjacent.dm + if(W) + // Return 1 in attackby() to prevent afterattack() effects (when safely moving items for example) + var/resolved = A.attackby(W,src,params) + if(!resolved && A && W) + W.afterattack(A,src,1,params) // 1: clicking something Adjacent + else + if(ismob(A)) + changeNext_move(CLICK_CD_MELEE) + UnarmedAttack(A, 1) + return + else // non-adjacent click + if(W) + W.afterattack(A,src,0,params) // 0: not Adjacent + else + RangedAttack(A, params) + +// Default behavior: ignore double clicks (the second click that makes the doubleclick call already calls for a normal click) +/mob/proc/DblClickOn(atom/A, params) + return + + +/* + Translates into attack_hand, etc. + + Note: proximity_flag here is used to distinguish between normal usage (flag=1), + and usage when clicking on things telekinetically (flag=0). This proc will + not be called at ranged except with telekinesis. + + proximity_flag is not currently passed to attack_hand, and is instead used + in human click code to allow glove touches only at melee range. +*/ +/mob/proc/UnarmedAttack(atom/A, proximity_flag) + if(ismob(A)) + changeNext_move(CLICK_CD_MELEE) + return + +/* + Ranged unarmed attack: + + This currently is just a default for all mobs, involving + laser eyes and telekinesis. You could easily add exceptions + for things like ranged glove touches, spitting alien acid/neurotoxin, + animals lunging, etc. +*/ +/mob/proc/RangedAttack(atom/A, params) +/* + Restrained ClickOn + + Used when you are handcuffed and click things. + Not currently used by anything but could easily be. +*/ +/mob/proc/RestrainedClickOn(atom/A) + return + +/* + Middle click + Only used for swapping hands +*/ +/mob/proc/MiddleClickOn(atom/A) + A.MiddleClick(src) + return + +/mob/living/carbon/MiddleClickOn(atom/A) + if(!src.stat && src.mind && src.mind.changeling && src.mind.changeling.chosen_sting && (istype(A, /mob/living/carbon)) && (A != src)) + next_click = world.time + 5 + mind.changeling.chosen_sting.try_to_sting(src, A) + else + swap_hand() + +/mob/living/simple_animal/drone/MiddleClickOn(atom/A) + swap_hand() + +// In case of use break glass + +/atom/proc/MiddleClick(mob/M as mob) + return + + +/* + Shift click + For most mobs, examine. + This is overridden in ai.dm +*/ +/mob/proc/ShiftClickOn(atom/A) + A.ShiftClick(src) + return +/atom/proc/ShiftClick(mob/user) + if(user.client && user.client.eye == user || user.client.eye == user.loc) + user.examinate(src) + return + +/* + Ctrl click + For most objects, pull +*/ + +/mob/proc/CtrlClickOn(atom/A) + A.CtrlClick(src) + return + +/atom/proc/CtrlClick(mob/user) + var/mob/living/ML = user + if(istype(ML)) + ML.pulled(src) + +/mob/living/carbon/human/CtrlClick(mob/user) + if(ishuman(user) && Adjacent(user)) + var/mob/living/carbon/human/H = user + H.dna.species.grab(H, src, H.martial_art) + H.changeNext_move(CLICK_CD_MELEE) + return TRUE + return ..() + +/* + Alt click + Unused except for AI + and wielding objects in both hands. For now. - Matt +*/ +/mob/proc/AltClickOn(atom/A) + A.AltClick(src) + return + +/mob/living/carbon/AltClickOn(atom/A) + if(!src.stat && src.mind && src.mind.changeling && src.mind.changeling.chosen_sting && (istype(A, /mob/living/carbon)) && (A != src)) + next_click = world.time + 5 + mind.changeling.chosen_sting.try_to_sting(src, A) + else + ..() + +/atom/proc/AltClick(mob/user) + var/turf/T = get_turf(src) + if(T && user.TurfAdjacent(T)) + if(user.listed_turf == T) + user.listed_turf = null + else + user.listed_turf = T + user.client.statpanel = T.name + return + +/mob/proc/TurfAdjacent(turf/T) + return T.Adjacent(src) + +/* + Control+Shift click + Unused except for AI +*/ +/mob/proc/CtrlShiftClickOn(atom/A) + A.CtrlShiftClick(src) + return + +/mob/proc/ShiftMiddleClickOn(atom/A) + src.pointed(A) + return + +/atom/proc/CtrlShiftClick(mob/user) + return + +/* + Helper to check can the mob click/access an item. + Used by mob inventory and storage items. +*/ +/atom/proc/ClickAccessible(mob/user, depth=1) + if(src == user.loc || (src in user.contents)) + return TRUE + + if(loc && depth > 1) + return loc.ClickAccessible(user, depth-1) + +/turf/ClickAccessible(mob/user, depth=1) + return + + +/* + Misc helpers + + Laser Eyes: as the name implies, handles this since nothing else does currently + face_atom: turns the mob towards what you clicked on +*/ +/mob/proc/LaserEyes(atom/A) + return + +/mob/living/LaserEyes(atom/A) + changeNext_move(CLICK_CD_RANGE) + var/turf/T = get_turf(src) + var/turf/U = get_turf(A) + + var/obj/item/projectile/beam/LE = new /obj/item/projectile/beam( loc ) + LE.icon = 'icons/effects/genetics.dmi' + LE.icon_state = "eyelasers" + playsound(usr.loc, 'sound/weapons/taser2.ogg', 75, 1) + + LE.firer = src + LE.def_zone = get_organ_target() + LE.original = A + LE.current = T + LE.yo = U.y - T.y + LE.xo = U.x - T.x + LE.fire() + +// Simple helper to face what you clicked on, in case it should be needed in more than one place +/mob/proc/face_atom(atom/A) + if( buckled || stat != CONSCIOUS || !A || !x || !y || !A.x || !A.y ) + return + var/dx = A.x - x + var/dy = A.y - y + if(!dx && !dy) // Wall items are graphically shifted but on the floor + if(A.pixel_y > 16) + setDir(NORTH) + else if(A.pixel_y < -16) + setDir(SOUTH) + else if(A.pixel_x > 16) + setDir(EAST) + else if(A.pixel_x < -16) + setDir(WEST) + return + + if(abs(dx) < abs(dy)) + if(dy > 0) + setDir(NORTH) + else + setDir(SOUTH) + else + if(dx > 0) + setDir(EAST) + else + setDir(WEST) + +/obj/screen/click_catcher + icon = 'icons/mob/screen_gen.dmi' + icon_state = "click_catcher" + plane = CLICKCATCHER_PLANE + mouse_opacity = 2 + screen_loc = "CENTER" + +/obj/screen/click_catcher/New() + ..() + transform = matrix(200, 0, 0, 0, 200, 0) + +/obj/screen/click_catcher/Click(location, control, params) + var/list/modifiers = params2list(params) + if(modifiers["middle"] && istype(usr, /mob/living/carbon)) + var/mob/living/carbon/C = usr + C.swap_hand() + else + var/turf/T = params2turf(modifiers["screen-loc"], get_turf(usr)) + if(T) + T.Click(location, control, params) + . = 1 diff --git a/code/_onclick/cyborg.dm b/code/_onclick/cyborg.dm new file mode 100644 index 0000000..5eece3b --- /dev/null +++ b/code/_onclick/cyborg.dm @@ -0,0 +1,159 @@ +/* + Cyborg ClickOn() + + Cyborgs have no range restriction on attack_robot(), because it is basically an AI click. + However, they do have a range restriction on item use, so they cannot do without the + adjacency code. +*/ + +/mob/living/silicon/robot/ClickOn(var/atom/A, var/params) + if(world.time <= next_click) + return + next_click = world.time + 1 + + if(client.click_intercept) + if(call(client.click_intercept,"InterceptClickOn")(src,params,A)) + return + + if(stat || lockcharge || weakened || stunned || paralysis) + return + + var/list/modifiers = params2list(params) + if(modifiers["shift"] && modifiers["ctrl"]) + CtrlShiftClickOn(A) + return + if(modifiers["middle"]) + MiddleClickOn(A) + return + if(modifiers["shift"]) + ShiftClickOn(A) + return + if(modifiers["alt"]) // alt and alt-gr (rightalt) + AltClickOn(A) + return + if(modifiers["ctrl"]) + CtrlClickOn(A) + return + + if(next_move >= world.time) + return + + face_atom(A) // change direction to face what you clicked on + + /* + cyborg restrained() currently does nothing + if(restrained()) + RestrainedClickOn(A) + return + */ + if(aicamera.in_camera_mode) //Cyborg picture taking + aicamera.camera_mode_off() + aicamera.captureimage(A, usr) + return + + var/obj/item/W = get_active_held_item() + + // Cyborgs have no range-checking unless there is item use + if(!W) + A.attack_robot(src) + return + + // buckled cannot prevent machine interlinking but stops arm movement + if( buckled || incapacitated()) + return + + if(W == A) + W.attack_self(src) + return + + // cyborgs are prohibited from using storage items so we can I think safely remove (A.loc in contents) + if(A == loc || (A in loc) || (A in contents)) + // No adjacency checks + var/resolved = A.attackby(W,src, params) + if(!resolved && A && W) + W.afterattack(A,src,1,params) + return + + if(!isturf(loc)) + return + + // cyborgs are prohibited from using storage items so we can I think safely remove (A.loc && isturf(A.loc.loc)) + if(isturf(A) || isturf(A.loc)) + if(A.Adjacent(src)) // see adjacent.dm + var/resolved = A.attackby(W, src, params) + if(!resolved && A && W) + W.afterattack(A, src, 1, params) + return + else + W.afterattack(A, src, 0, params) + return + return + +//Middle click cycles through selected modules. +/mob/living/silicon/robot/MiddleClickOn(atom/A) + cycle_modules() + return + +//Give cyborgs hotkey clicks without breaking existing uses of hotkey clicks +// for non-doors/apcs +/mob/living/silicon/robot/CtrlShiftClickOn(atom/A) + A.BorgCtrlShiftClick(src) +/mob/living/silicon/robot/ShiftClickOn(atom/A) + A.BorgShiftClick(src) +/mob/living/silicon/robot/CtrlClickOn(atom/A) + A.BorgCtrlClick(src) +/mob/living/silicon/robot/AltClickOn(atom/A) + A.BorgAltClick(src) + +/atom/proc/BorgCtrlShiftClick(mob/living/silicon/robot/user) //forward to human click if not overriden + CtrlShiftClick(user) + +/obj/machinery/door/airlock/BorgCtrlShiftClick() // Sets/Unsets Emergency Access Override Forwards to AI code. + AICtrlShiftClick() + + +/atom/proc/BorgShiftClick(mob/living/silicon/robot/user) //forward to human click if not overriden + ShiftClick(user) + +/obj/machinery/door/airlock/BorgShiftClick() // Opens and closes doors! Forwards to AI code. + AIShiftClick() + + +/atom/proc/BorgCtrlClick(mob/living/silicon/robot/user) //forward to human click if not overriden + CtrlClick(user) + +/obj/machinery/door/airlock/BorgCtrlClick() // Bolts doors. Forwards to AI code. + AICtrlClick() + +/obj/machinery/power/apc/BorgCtrlClick() // turns off/on APCs. Forwards to AI code. + AICtrlClick() + +/obj/machinery/turretid/BorgCtrlClick() //turret control on/off. Forwards to AI code. + AICtrlClick() + +/atom/proc/BorgAltClick(mob/living/silicon/robot/user) + AltClick(user) + return + +/obj/machinery/door/airlock/BorgAltClick() // Eletrifies doors. Forwards to AI code. + AIAltClick() + +/obj/machinery/turretid/BorgAltClick() //turret lethal on/off. Forwards to AI code. + AIAltClick() + +/* + As with AI, these are not used in click code, + because the code for robots is specific, not generic. + + If you would like to add advanced features to robot + clicks, you can do so here, but you will have to + change attack_robot() above to the proper function +*/ +/mob/living/silicon/robot/UnarmedAttack(atom/A) + A.attack_robot(src) +/mob/living/silicon/robot/RangedAttack(atom/A) + A.attack_robot(src) + +/atom/proc/attack_robot(mob/user) + attack_ai(user) + return diff --git a/code/_onclick/drag_drop.dm b/code/_onclick/drag_drop.dm new file mode 100644 index 0000000..777d52f --- /dev/null +++ b/code/_onclick/drag_drop.dm @@ -0,0 +1,19 @@ +/* + MouseDrop: + + Called on the atom you're dragging. In a lot of circumstances we want to use the + recieving object instead, so that's the default action. This allows you to drag + almost anything into a trash can. +*/ +/atom/MouseDrop(atom/over, src_location, over_location, src_control, over_control, params) + if(!usr || !over) return + if(over == src) + return usr.client.Click(src, src_location, src_control, params) + if(!Adjacent(usr) || !over.Adjacent(usr)) return // should stop you from dragging through windows + + over.MouseDrop_T(src,usr) + return + +// recieve a mousedrop +/atom/proc/MouseDrop_T(atom/dropping, mob/user) + return diff --git a/code/_onclick/god.dm b/code/_onclick/god.dm new file mode 100644 index 0000000..24629a0 --- /dev/null +++ b/code/_onclick/god.dm @@ -0,0 +1,8 @@ +/mob/camera/god/UnarmedAttack(atom/A) + A.attack_god(src) + +/mob/camera/god/RangedAttack(atom/A) + A.attack_god(src) + +/atom/proc/attack_god(mob/user) + return diff --git a/code/_onclick/hud/_defines.dm b/code/_onclick/hud/_defines.dm new file mode 100644 index 0000000..c627d13 --- /dev/null +++ b/code/_onclick/hud/_defines.dm @@ -0,0 +1,156 @@ +/* + These defines specificy screen locations. For more information, see the byond documentation on the screen_loc var. + + The short version: + + Everything is encoded as strings because apparently that's how Byond rolls. + + "1,1" is the bottom left square of the user's screen. This aligns perfectly with the turf grid. + "1:2,3:4" is the square (1,3) with pixel offsets (+2, +4); slightly right and slightly above the turf grid. + Pixel offsets are used so you don't perfectly hide the turf under them, that would be crappy. + + In addition, the keywords NORTH, SOUTH, EAST, WEST and CENTER can be used to represent their respective + screen borders. NORTH-1, for example, is the row just below the upper edge. Useful if you want your + UI to scale with screen size. + + The size of the user's screen is defined by client.view (indirectly by world.view), in our case "15x15". + Therefore, the top right corner (except during admin shenanigans) is at "15,15" +*/ + +//Lower left, persistant menu +#define ui_inventory "WEST:6,SOUTH:5" + +//Middle left indicators +#define ui_lingchemdisplay "WEST:6,CENTER-1:15" +#define ui_lingstingdisplay "WEST:6,CENTER-3:11" +#define ui_crafting "12:-10,1:5" +#define ui_building "12:-10,1:21" + +#define ui_devilsouldisplay "WEST:6,CENTER-1:15" + +//Lower center, persistant menu +#define ui_sstore1 "CENTER-5:10,SOUTH:5" +#define ui_id "CENTER-4:12,SOUTH:5" +#define ui_belt "CENTER-3:14,SOUTH:5" +#define ui_back "CENTER-2:14,SOUTH:5" + +/proc/ui_hand_position(i) //values based on old hand ui positions (CENTER:-/+16,SOUTH:5) + var/x_off = -(!(i % 2)) + var/y_off = round((i-1) / 2) + return"CENTER+[x_off]:16,SOUTH+[y_off]:5" + +/proc/ui_equip_position(mob/M) + var/y_off = round((M.held_items.len-1) / 2) //values based on old equip ui position (CENTER: +/-16,SOUTH+1:5) + return "CENTER:-16,SOUTH+[y_off+1]:5" + +/proc/ui_swaphand_position(mob/M, which = 1) //values based on old swaphand ui positions (CENTER: +/-16,SOUTH+1:5) + var/x_off = which == 1 ? -1 : 0 + var/y_off = round((M.held_items.len-1) / 2) + return "CENTER+[x_off]:16,SOUTH+[y_off+1]:5" + +#define ui_storage1 "CENTER+1:18,SOUTH:5" +#define ui_storage2 "CENTER+2:20,SOUTH:5" + +#define ui_borg_sensor "CENTER-3:16, SOUTH:5" //borgs +#define ui_borg_lamp "CENTER-4:16, SOUTH:5" //borgs +#define ui_borg_thrusters "CENTER-5:16, SOUTH:5" //borgs +#define ui_inv1 "CENTER-2:16,SOUTH:5" //borgs +#define ui_inv2 "CENTER-1 :16,SOUTH:5" //borgs +#define ui_inv3 "CENTER :16,SOUTH:5" //borgs +#define ui_borg_module "CENTER+1:16,SOUTH:5" //borgs +#define ui_borg_store "CENTER+2:16,SOUTH:5" //borgs +#define ui_borg_camera "CENTER+3:21,SOUTH:5" //borgs +#define ui_borg_album "CENTER+4:21,SOUTH:5" //borgs +#define ui_borg_talk_wheel "CENTER+4:21,SOUTH+1:5" //borgs + +#define ui_monkey_head "CENTER-4:13,SOUTH:5" //monkey +#define ui_monkey_mask "CENTER-3:14,SOUTH:5" //monkey +#define ui_monkey_neck "CENTER-2:15,SOUTH:5" //monkey +#define ui_monkey_back "CENTER-1:16,SOUTH:5" //monkey + +#define ui_alien_storage_l "CENTER-2:14,SOUTH:5"//alien +#define ui_alien_storage_r "CENTER+1:18,SOUTH:5"//alien +#define ui_alien_talk_wheel "EAST-3:26,SOUTH:5" //alien + +#define ui_drone_drop "CENTER+1:18,SOUTH:5" //maintenance drones +#define ui_drone_pull "CENTER+2:2,SOUTH:5" //maintenance drones +#define ui_drone_storage "CENTER-2:14,SOUTH:5" //maintenance drones +#define ui_drone_head "CENTER-3:14,SOUTH:5" //maintenance drones + +//Lower right, persistant menu +#define ui_drop_throw "EAST-1:28,SOUTH+1:7" +#define ui_pull_resist "EAST-2:26,SOUTH+1:7" +#define ui_movi "EAST-2:26,SOUTH:5" +#define ui_acti "EAST-3:24,SOUTH:5" +#define ui_zonesel "EAST-1:28,SOUTH:5" +#define ui_acti_alt "EAST-1:28,SOUTH:5" //alternative intent switcher for when the interface is hidden (F12) + +#define ui_borg_pull "EAST-2:26,SOUTH+1:7" +#define ui_borg_radio "EAST-1:28,SOUTH+1:7" +#define ui_borg_intents "EAST-2:26,SOUTH:5" + + +//Upper-middle right (alerts) +#define ui_alert1 "EAST-1:28,CENTER+5:27" +#define ui_alert2 "EAST-1:28,CENTER+4:25" +#define ui_alert3 "EAST-1:28,CENTER+3:23" +#define ui_alert4 "EAST-1:28,CENTER+2:21" +#define ui_alert5 "EAST-1:28,CENTER+1:19" + + +//Middle right (status indicators) +#define ui_healthdoll "EAST-1:28,CENTER-2:13" +#define ui_health "EAST-1:28,CENTER-1:15" +#define ui_internal "EAST-1:28,CENTER:17" + +//borgs and aliens +#define ui_alien_nightvision "EAST-1:28,CENTER:17" +#define ui_borg_health "EAST-1:28,CENTER-1:15" //borgs have the health display where humans have the pressure damage indicator. +#define ui_alien_health "EAST-1:28,CENTER-1:15" //aliens have the health display where humans have the pressure damage indicator. +#define ui_alienplasmadisplay "EAST-1:28,CENTER-2:15" +#define ui_alien_queen_finder "EAST-1:28,CENTER-3:15" + +// AI + +#define ui_ai_core "SOUTH:6,WEST" +#define ui_ai_camera_list "SOUTH:6,WEST+1" +#define ui_ai_track_with_camera "SOUTH:6,WEST+2" +#define ui_ai_camera_light "SOUTH:6,WEST+3" +#define ui_ai_crew_monitor "SOUTH:6,WEST+4" +#define ui_ai_crew_manifest "SOUTH:6,WEST+5" +#define ui_ai_alerts "SOUTH:6,WEST+6" +#define ui_ai_announcement "SOUTH:6,WEST+7" +#define ui_ai_shuttle "SOUTH:6,WEST+8" +#define ui_ai_state_laws "SOUTH:6,WEST+9" +#define ui_ai_pda_send "SOUTH:6,WEST+10" +#define ui_ai_pda_log "SOUTH:6,WEST+11" +#define ui_ai_take_picture "SOUTH:6,WEST+12" +#define ui_ai_view_images "SOUTH:6,WEST+13" +#define ui_ai_sensor "SOUTH:6,WEST+14" + +//Pop-up inventory +#define ui_shoes "WEST+1:8,SOUTH:5" + +#define ui_iclothing "WEST:6,SOUTH+1:7" +#define ui_oclothing "WEST+1:8,SOUTH+1:7" +#define ui_gloves "WEST+2:10,SOUTH+1:7" + +#define ui_glasses "WEST:6,SOUTH+3:11" +#define ui_mask "WEST+1:8,SOUTH+2:9" +#define ui_ears "WEST+2:10,SOUTH+2:9" +#define ui_neck "WEST:6,SOUTH+2:9" +#define ui_head "WEST+1:8,SOUTH+3:11" + +//Ghosts + +#define ui_ghost_jumptomob "SOUTH:6,CENTER-2:16" +#define ui_ghost_orbit "SOUTH:6,CENTER-1:16" +#define ui_ghost_reenter_corpse "SOUTH:6,CENTER:16" +#define ui_ghost_teleport "SOUTH:6,CENTER+1:16" + +//Hand of God, god + +#define ui_deityhealth "EAST-1:28,CENTER-2:13" +#define ui_deitypower "EAST-1:28,CENTER-1:15" +#define ui_deityfollowers "EAST-1:28,CENTER:17" + diff --git a/code/_onclick/hud/action_button.dm b/code/_onclick/hud/action_button.dm new file mode 100644 index 0000000..7b6f2d6 --- /dev/null +++ b/code/_onclick/hud/action_button.dm @@ -0,0 +1,128 @@ + +/obj/screen/movable/action_button + var/datum/action/linked_action + var/actiontooltipstyle = "" + screen_loc = null + +/obj/screen/movable/action_button/Click(location,control,params) + var/list/modifiers = params2list(params) + if(modifiers["shift"]) + moved = 0 + usr.update_action_buttons() //redraw buttons that are no longer considered "moved" + return 1 + if(usr.next_move >= world.time) // Is this needed ? + return + linked_action.Trigger() + return 1 + +//Hide/Show Action Buttons ... Button +/obj/screen/movable/action_button/hide_toggle + name = "Hide Buttons" + icon = 'icons/mob/actions.dmi' + icon_state = "bg_default" + var/hidden = 0 + +/obj/screen/movable/action_button/hide_toggle/Click(location,control,params) + var/list/modifiers = params2list(params) + if(modifiers["shift"]) + moved = 0 + return 1 + usr.hud_used.action_buttons_hidden = !usr.hud_used.action_buttons_hidden + + hidden = usr.hud_used.action_buttons_hidden + if(hidden) + name = "Show Buttons" + else + name = "Hide Buttons" + UpdateIcon() + usr.update_action_buttons() + + +/obj/screen/movable/action_button/hide_toggle/proc/InitialiseIcon(mob/living/user) + if(isalien(user)) + icon_state = "bg_alien" + else + icon_state = "bg_default" + UpdateIcon() + +/obj/screen/movable/action_button/hide_toggle/proc/UpdateIcon() + cut_overlays() + var/image/img = image(icon, src, hidden ? "show" : "hide") + add_overlay(img) + + +/obj/screen/movable/action_button/MouseEntered(location,control,params) + openToolTip(usr,src,params,title = name,content = desc,theme = actiontooltipstyle) + + +/obj/screen/movable/action_button/MouseExited() + closeToolTip(usr) + + +/mob/proc/update_action_buttons_icon() + for(var/X in actions) + var/datum/action/A = X + A.UpdateButtonIcon() + +//This is the proc used to update all the action buttons. +/mob/proc/update_action_buttons(reload_screen) + if(!hud_used || !client) + return + + if(hud_used.hud_shown != HUD_STYLE_STANDARD) + return + + var/button_number = 0 + + if(hud_used.action_buttons_hidden) + for(var/datum/action/A in actions) + A.button.screen_loc = null + if(reload_screen) + client.screen += A.button + else + for(var/datum/action/A in actions) + button_number++ + A.UpdateButtonIcon() + var/obj/screen/movable/action_button/B = A.button + if(!B.moved) + B.screen_loc = hud_used.ButtonNumberToScreenCoords(button_number) + else + B.screen_loc = B.moved + if(reload_screen) + client.screen += B + + if(!button_number) + hud_used.hide_actions_toggle.screen_loc = null + return + + if(!hud_used.hide_actions_toggle.moved) + hud_used.hide_actions_toggle.screen_loc = hud_used.ButtonNumberToScreenCoords(button_number+1) + else + hud_used.hide_actions_toggle.screen_loc = hud_used.hide_actions_toggle.moved + if(reload_screen) + client.screen += hud_used.hide_actions_toggle + + + +#define AB_MAX_COLUMNS 10 + +/datum/hud/proc/ButtonNumberToScreenCoords(number) // TODO : Make this zero-indexed for readabilty + var/row = round((number - 1)/AB_MAX_COLUMNS) + var/col = ((number - 1)%(AB_MAX_COLUMNS)) + 1 + + var/coord_col = "+[col-1]" + var/coord_col_offset = 4 + 2 * col + + var/coord_row = "[row ? -row : "+0"]" + + return "WEST[coord_col]:[coord_col_offset],NORTH[coord_row]:-6" + +/datum/hud/proc/SetButtonCoords(obj/screen/button,number) + var/row = round((number-1)/AB_MAX_COLUMNS) + var/col = ((number - 1)%(AB_MAX_COLUMNS)) + 1 + var/x_offset = 32*(col-1) + 4 + 2*col + var/y_offset = -32*(row+1) + 26 + + var/matrix/M = matrix() + M.Translate(x_offset,y_offset) + button.transform = M diff --git a/code/_onclick/hud/ai.dm b/code/_onclick/hud/ai.dm new file mode 100644 index 0000000..901c4b1 --- /dev/null +++ b/code/_onclick/hud/ai.dm @@ -0,0 +1,246 @@ +/obj/screen/ai + icon = 'icons/mob/screen_ai.dmi' + +/obj/screen/ai/Click() + if(isobserver(usr)) + return 1 + +/obj/screen/ai/aicore + name = "AI core" + icon_state = "ai_core" + +/obj/screen/ai/aicore/Click() + if(..()) + return + var/mob/living/silicon/ai/AI = usr + AI.view_core() + +/obj/screen/ai/camera_list + name = "Show Camera List" + icon_state = "camera" + +/obj/screen/ai/camera_list/Click() + var/mob/living/silicon/ai/AI = usr + var/camera = input(AI, "Choose which camera you want to view", "Cameras") as null|anything in AI.get_camera_list() + AI.ai_camera_list(camera) + +/obj/screen/ai/camera_track + name = "Track With Camera" + icon_state = "track" + +/obj/screen/ai/camera_track/Click() + if(..()) + return + var/mob/living/silicon/ai/AI = usr + var/target_name = input(AI, "Choose who you want to track", "Tracking") as null|anything in AI.trackable_mobs() + AI.ai_camera_track(target_name) + +/obj/screen/ai/camera_light + name = "Toggle Camera Light" + icon_state = "camera_light" + +/obj/screen/ai/camera_light/Click() + if(..()) + return + var/mob/living/silicon/ai/AI = usr + AI.toggle_camera_light() + +/obj/screen/ai/crew_monitor + name = "Crew Monitoring Console" + icon_state = "crew_monitor" + +/obj/screen/ai/crew_monitor/Click() + if(..()) + return + var/mob/living/silicon/ai/AI = usr + crewmonitor.show(AI) + +/obj/screen/ai/crew_manifest + name = "Crew Manifest" + icon_state = "manifest" + +/obj/screen/ai/crew_manifest/Click() + if(..()) + return + var/mob/living/silicon/ai/AI = usr + AI.ai_roster() + +/obj/screen/ai/alerts + name = "Show Alerts" + icon_state = "alerts" + +/obj/screen/ai/alerts/Click() + if(..()) + return + var/mob/living/silicon/ai/AI = usr + AI.ai_alerts() + +/obj/screen/ai/announcement + name = "Make Announcement" + icon_state = "announcement" + +/obj/screen/ai/announcement/Click() + if(..()) + return + var/mob/living/silicon/ai/AI = usr + AI.announcement() + +/obj/screen/ai/call_shuttle + name = "Call Emergency Shuttle" + icon_state = "call_shuttle" + +/obj/screen/ai/call_shuttle/Click() + if(..()) + return + var/mob/living/silicon/ai/AI = usr + AI.ai_call_shuttle() + +/obj/screen/ai/state_laws + name = "State Laws" + icon_state = "state_laws" + +/obj/screen/ai/state_laws/Click() + if(..()) + return + var/mob/living/silicon/ai/AI = usr + AI.checklaws() + +/obj/screen/ai/pda_msg_send + name = "PDA - Send Message" + icon_state = "pda_send" + +/obj/screen/ai/pda_msg_send/Click() + if(..()) + return + var/mob/living/silicon/ai/AI = usr + AI.cmd_send_pdamesg(usr) + +/obj/screen/ai/pda_msg_show + name = "PDA - Show Message Log" + icon_state = "pda_receive" + +/obj/screen/ai/pda_msg_show/Click() + if(..()) + return + var/mob/living/silicon/ai/AI = usr + AI.cmd_show_message_log(usr) + +/obj/screen/ai/image_take + name = "Take Image" + icon_state = "take_picture" + +/obj/screen/ai/image_take/Click() + if(isAI(usr)) + var/mob/living/silicon/ai/AI = usr + AI.aicamera.toggle_camera_mode() + else if(iscyborg(usr)) + var/mob/living/silicon/robot/R = usr + R.aicamera.toggle_camera_mode() + +/obj/screen/ai/image_view + name = "View Images" + icon_state = "view_images" + +/obj/screen/ai/image_view/Click() + if(isAI(usr)) + var/mob/living/silicon/ai/AI = usr + AI.aicamera.viewpictures() + else if(iscyborg(usr)) + var/mob/living/silicon/robot/R = usr + R.aicamera.viewpictures() + +/obj/screen/ai/sensors + name = "Sensor Augmentation" + icon_state = "ai_sensor" + +/obj/screen/ai/sensors/Click() + if(..()) + return + var/mob/living/silicon/S = usr + S.sensor_mode() + + +/datum/hud/ai/New(mob/owner) + ..() + var/obj/screen/using + +//AI core + using = new /obj/screen/ai/aicore() + using.screen_loc = ui_ai_core + static_inventory += using + +//Camera list + using = new /obj/screen/ai/camera_list() + using.screen_loc = ui_ai_camera_list + static_inventory += using + +//Track + using = new /obj/screen/ai/camera_track() + using.screen_loc = ui_ai_track_with_camera + static_inventory += using + +//Camera light + using = new /obj/screen/ai/camera_light() + using.screen_loc = ui_ai_camera_light + static_inventory += using + +//Crew Monitoring + using = new /obj/screen/ai/crew_monitor() + using.screen_loc = ui_ai_crew_monitor + static_inventory += using + +//Crew Manifest + using = new /obj/screen/ai/crew_manifest() + using.screen_loc = ui_ai_crew_manifest + static_inventory += using + +//Alerts + using = new /obj/screen/ai/alerts() + using.screen_loc = ui_ai_alerts + static_inventory += using + +//Announcement + using = new /obj/screen/ai/announcement() + using.screen_loc = ui_ai_announcement + static_inventory += using + +//Shuttle + using = new /obj/screen/ai/call_shuttle() + using.screen_loc = ui_ai_shuttle + static_inventory += using + +//Laws + using = new /obj/screen/ai/state_laws() + using.screen_loc = ui_ai_state_laws + static_inventory += using + +//PDA message + using = new /obj/screen/ai/pda_msg_send() + using.screen_loc = ui_ai_pda_send + static_inventory += using + +//PDA log + using = new /obj/screen/ai/pda_msg_show() + using.screen_loc = ui_ai_pda_log + static_inventory += using + +//Take image + using = new /obj/screen/ai/image_take() + using.screen_loc = ui_ai_take_picture + static_inventory += using + +//View images + using = new /obj/screen/ai/image_view() + using.screen_loc = ui_ai_view_images + static_inventory += using + + +//Medical/Security sensors + using = new /obj/screen/ai/sensors() + using.screen_loc = ui_ai_sensor + static_inventory += using + + +/mob/living/silicon/ai/create_mob_hud() + if(client && !hud_used) + hud_used = new /datum/hud/ai(src) \ No newline at end of file diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm new file mode 100644 index 0000000..b9ca95d --- /dev/null +++ b/code/_onclick/hud/alert.dm @@ -0,0 +1,504 @@ +//A system to manage and display alerts on screen without needing you to do it yourself + +//PUBLIC - call these wherever you want + + +/mob/proc/throw_alert(category, type, severity, obj/new_master) + +/* Proc to create or update an alert. Returns the alert if the alert is new or updated, 0 if it was thrown already + category is a text string. Each mob may only have one alert per category; the previous one will be replaced + path is a type path of the actual alert type to throw + severity is an optional number that will be placed at the end of the icon_state for this alert + For example, high pressure's icon_state is "highpressure" and can be serverity 1 or 2 to get "highpressure1" or "highpressure2" + new_master is optional and sets the alert's icon state to "template" in the ui_style icons with the master as an overlay. + Clicks are forwarded to master */ + + if(!category) + return + + var/obj/screen/alert/alert + if(alerts[category]) + alert = alerts[category] + if(new_master && new_master != alert.master) + WARNING("[src] threw alert [category] with new_master [new_master] while already having that alert with master [alert.master]") + clear_alert(category) + return .() + else if(alert.type != type) + clear_alert(category) + return .() + else if(!severity || severity == alert.severity) + if(alert.timeout) + clear_alert(category) + return .() + else //no need to update + return 0 + else + alert = PoolOrNew(type) + + if(new_master) + var/old_layer = new_master.layer + var/old_plane = new_master.plane + new_master.layer = FLOAT_LAYER + new_master.plane = FLOAT_PLANE + alert.overlays += new_master + new_master.layer = old_layer + new_master.plane = old_plane + alert.icon_state = "template" // We'll set the icon to the client's ui pref in reorganize_alerts() + alert.master = new_master + else + alert.icon_state = "[initial(alert.icon_state)][severity]" + alert.severity = severity + + alerts[category] = alert + if(client && hud_used) + hud_used.reorganize_alerts() + alert.transform = matrix(32, 6, MATRIX_TRANSLATE) + animate(alert, transform = matrix(), time = 2.5, easing = CUBIC_EASING) + + if(alert.timeout) + spawn(alert.timeout) + if(alert.timeout && alerts[category] == alert && world.time >= alert.timeout) + clear_alert(category) + alert.timeout = world.time + alert.timeout - world.tick_lag + return alert + +// Proc to clear an existing alert. +/mob/proc/clear_alert(category) + var/obj/screen/alert/alert = alerts[category] + if(!alert) + return 0 + + alerts -= category + if(client && hud_used) + hud_used.reorganize_alerts() + client.screen -= alert + qdel(alert) + +/obj/screen/alert + icon = 'icons/mob/screen_alert.dmi' + icon_state = "default" + name = "Alert" + desc = "Something seems to have gone wrong with this alert, so report this bug please" + mouse_opacity = 1 + var/timeout = 0 //If set to a number, this alert will clear itself after that many deciseconds + var/severity = 0 + var/alerttooltipstyle = "" + + +/obj/screen/alert/MouseEntered(location,control,params) + openToolTip(usr,src,params,title = name,content = desc,theme = alerttooltipstyle) + + +/obj/screen/alert/MouseExited() + closeToolTip(usr) + + +//Gas alerts +/obj/screen/alert/oxy + name = "Choking (No O2)" + desc = "You're not getting enough oxygen. Find some good air before you pass out! \ +The box in your backpack has an oxygen tank and breath mask in it." + icon_state = "oxy" + +/obj/screen/alert/too_much_oxy + name = "Choking (O2)" + desc = "There's too much oxygen in the air, and you're breathing it in! Find some good air before you pass out!" + icon_state = "too_much_oxy" + +/obj/screen/alert/not_enough_co2 + name = "Choking (No CO2)" + desc = "You're not getting enough carbon dioxide. Find some good air before you pass out!" + icon_state = "not_enough_co2" + +/obj/screen/alert/too_much_co2 + name = "Choking (CO2)" + desc = "There's too much carbon dioxide in the air, and you're breathing it in! Find some good air before you pass out!" + icon_state = "too_much_co2" + +/obj/screen/alert/not_enough_tox + name = "Choking (No Plasma)" + desc = "You're not getting enough plasma. Find some good air before you pass out!" + icon_state = "not_enough_tox" + +/obj/screen/alert/tox_in_air + name = "Choking (Plasma)" + desc = "There's highly flammable, toxic plasma in the air and you're breathing it in. Find some fresh air. \ +The box in your backpack has an oxygen tank and gas mask in it." + icon_state = "tox_in_air" +//End gas alerts + + +/obj/screen/alert/fat + name = "Fat" + desc = "You ate too much food, lardass. Run around the station and lose some weight." + icon_state = "fat" + +/obj/screen/alert/hungry + name = "Hungry" + desc = "Some food would be good right about now." + icon_state = "hungry" + +/obj/screen/alert/starving + name = "Starving" + desc = "You're severely malnourished. The hunger pains make moving around a chore." + icon_state = "starving" + +/obj/screen/alert/hot + name = "Too Hot" + desc = "You're flaming hot! Get somewhere cooler and take off any insulating clothing like a fire suit." + icon_state = "hot" + +/obj/screen/alert/cold + name = "Too Cold" + desc = "You're freezing cold! Get somewhere warmer and take off any insulating clothing like a space suit." + icon_state = "cold" + +/obj/screen/alert/lowpressure + name = "Low Pressure" + desc = "The air around you is hazardously thin. A space suit would protect you." + icon_state = "lowpressure" + +/obj/screen/alert/highpressure + name = "High Pressure" + desc = "The air around you is hazardously thick. A fire suit would protect you." + icon_state = "highpressure" + +/obj/screen/alert/blind + name = "Blind" + desc = "You can't see! This may be caused by a genetic defect, eye trauma, being unconscious, \ +or something covering your eyes." + icon_state = "blind" + +/obj/screen/alert/high + name = "High" + desc = "Whoa man, you're tripping balls! Careful you don't get addicted... if you aren't already." + icon_state = "high" + +/obj/screen/alert/drunk //Not implemented + name = "Drunk" + desc = "All that alcohol you've been drinking is impairing your speech, motor skills, and mental cognition. Make sure to act like it." + icon_state = "drunk" + +/obj/screen/alert/embeddedobject + name = "Embedded Object" + desc = "Something got lodged into your flesh and is causing major bleeding. It might fall out with time, but surgery is the safest way. \ +If you're feeling frisky, click yourself in help intent to pull the object out." + icon_state = "embeddedobject" + +/obj/screen/alert/embeddedobject/Click() + if(isliving(usr)) + var/mob/living/carbon/human/M = usr + return M.help_shake_act(M) + +/obj/screen/alert/asleep + name = "Asleep" + desc = "You've fallen asleep. Wait a bit and you should wake up. Unless you don't, considering how helpless you are." + icon_state = "asleep" + +/obj/screen/alert/weightless + name = "Weightless" + desc = "Gravity has ceased affecting you, and you're floating around aimlessly. You'll need something large and heavy, like a \ +wall or lattice, to push yourself off if you want to move. A jetpack would enable free range of motion. A pair of \ +magboots would let you walk around normally on the floor. Barring those, you can throw things, use a fire extinguisher, \ +or shoot a gun to move around via Newton's 3rd Law of Motion." + icon_state = "weightless" + +/obj/screen/alert/fire + name = "On Fire" + desc = "You're on fire. Stop, drop and roll to put the fire out or move to a vacuum area." + icon_state = "fire" + +/obj/screen/alert/fire/Click() + if(isliving(usr)) + var/mob/living/L = usr + return L.resist() + + +//ALIENS + +/obj/screen/alert/alien_tox + name = "Plasma" + desc = "There's flammable plasma in the air. If it lights up, you'll be toast." + icon_state = "alien_tox" + alerttooltipstyle = "alien" + +/obj/screen/alert/alien_fire +// This alert is temporarily gonna be thrown for all hot air but one day it will be used for literally being on fire + name = "Too Hot" + desc = "It's too hot! Flee to space or at least away from the flames. Standing on weeds will heal you." + icon_state = "alien_fire" + alerttooltipstyle = "alien" + +/obj/screen/alert/alien_vulnerable + name = "Severed Matriarchy" + desc = "Your queen has been killed, you will suffer movement penalties and loss of hivemind. A new queen cannot be made until you recover." + icon_state = "alien_noqueen" + alerttooltipstyle = "alien" + +//BLOBS + +/obj/screen/alert/nofactory + name = "No Factory" + desc = "You have no factory, and are slowly dying!" + icon_state = "blobbernaut_nofactory" + alerttooltipstyle = "blob" + +// CLOCKCULT +/obj/screen/alert/clockwork + alerttooltipstyle = "clockcult" + +/obj/screen/alert/clockwork/nocache + name = "No Tinkerer's Cache" + desc = "In order to share components and unlock higher tier \ + scripture, a tinkerer's cache must be constructed somewhere \ + in the world. Try to place it somewhere accessible, yet hidden." + icon_state = "nocache" + +/obj/screen/alert/clockwork/infodump + name = "Global Records" + desc = "You shouldn't be seeing this description, because it should be dynamically generated." + icon_state = "clockinfo" + +/obj/screen/alert/clockwork/infodump/MouseEntered(location,control,params) + if(ratvar_awakens) + desc = "CHETR
    NYY
    HAGEHUGF-NAQ-UBABE
    RATVAR.
    " + else + var/servants = 0 + var/validservants = 0 + var/unconverted_ai_exists = FALSE + var/list/scripture_states = scripture_unlock_check() + for(var/mob/living/L in living_mob_list) + if(is_servant_of_ratvar(L)) + servants++ + if(ishuman(L) || issilicon(L)) + validservants++ + else if(isAI(L)) + unconverted_ai_exists = TRUE + if(servants > 1) + if(validservants > 1) + desc = "[servants] Servants, [validservants] of which count towards scripture.
    " + else + desc = "[servants] Servants, [validservants ? "[validservants] of which counts":"none of which count"] towards scripture.
    " + else + desc = "[servants] Servant, who [validservants ? "counts":"does not count"] towards scripture.
    " + desc += "[clockwork_caches ? "[clockwork_caches] Tinkerer's Caches.":"No Tinkerer's Caches, construct one!
    "]
    \ + [clockwork_construction_value] Construction Value.
    " + if(clockwork_daemons) + desc += "[clockwork_daemons] Tinkerer's Daemons: [servants * 0.2 < clockwork_daemons ? "DISABLED":"ACTIVE"]
    " + else + desc += "No Tinkerer's Daemons.
    " + for(var/obj/structure/destructible/clockwork/massive/celestial_gateway/G in all_clockwork_objects) + var/area/gate_area = get_area(G) + desc += "Ark Location: [uppertext(gate_area.map_name)]
    " + if(G.ratvar_portal) + desc += "Seconds until Ratvar's arrival: [G.get_arrival_text(TRUE)]
    " + else + desc += "Seconds until Proselytization: [G.get_arrival_text(TRUE)]
    " + if(unconverted_ai_exists) + desc += "An unconverted AI exists!
    " + if(scripture_states[SCRIPTURE_REVENANT]) + var/inathneq_available = clockwork_generals_invoked["inath-neq"] <= world.time + var/sevtug_available = clockwork_generals_invoked["sevtug"] <= world.time + var/nezbere_available = clockwork_generals_invoked["nezbere"] <= world.time + var/nezcrentr_available = clockwork_generals_invoked["nzcrentr"] <= world.time + if(inathneq_available || sevtug_available || nezbere_available || nezcrentr_available) + desc += "Generals available:[inathneq_available ? "
    INATH-NEQ":""][sevtug_available ? "
    SEVTUG":""]\ + [nezbere_available ? "
    NEZBERE":""][nezcrentr_available ? "
    NZCRENTR":""]

    " + else + desc += "Generals available: NONE
    " + else + desc += "Generals available: NONE
    " + for(var/i in scripture_states) + if(i != SCRIPTURE_DRIVER) //ignore the always-unlocked stuff + desc += "[i] Scripture: [scripture_states[i] ? "UNLOCKED":"LOCKED"]
    " + ..() + +//GUARDIANS + +/obj/screen/alert/cancharge + name = "Charge Ready" + desc = "You are ready to charge at a location!" + icon_state = "guardian_charge" + alerttooltipstyle = "parasite" + +/obj/screen/alert/canstealth + name = "Stealth Ready" + desc = "You are ready to enter stealth!" + icon_state = "guardian_canstealth" + alerttooltipstyle = "parasite" + +/obj/screen/alert/instealth + name = "In Stealth" + desc = "You are in stealth and your next attack will do bonus damage!" + icon_state = "guardian_instealth" + alerttooltipstyle = "parasite" + +//SILICONS + +/obj/screen/alert/nocell + name = "Missing Power Cell" + desc = "Unit has no power cell. No modules available until a power cell is reinstalled. Robotics may provide assistance." + icon_state = "nocell" + +/obj/screen/alert/emptycell + name = "Out of Power" + desc = "Unit's power cell has no charge remaining. No modules available until power cell is recharged. \ +Recharging stations are available in robotics, the dormitory bathrooms, and the AI satellite." + icon_state = "emptycell" + +/obj/screen/alert/lowcell + name = "Low Charge" + desc = "Unit's power cell is running low. Recharging stations are available in robotics, the dormitory bathrooms, and the AI satellite." + icon_state = "lowcell" + +//Need to cover all use cases - emag, illegal upgrade module, malf AI hack, traitor cyborg +/obj/screen/alert/hacked + name = "Hacked" + desc = "Hazardous non-standard equipment detected. Please ensure any usage of this equipment is in line with unit's laws, if any." + icon_state = "hacked" + +/obj/screen/alert/locked + name = "Locked Down" + desc = "Unit has been remotely locked down. Usage of a Robotics Control Console like the one in the Research Director's \ +office by your AI master or any qualified human may resolve this matter. Robotics may provide further assistance if necessary." + icon_state = "locked" + +/obj/screen/alert/newlaw + name = "Law Update" + desc = "Laws have potentially been uploaded to or removed from this unit. Please be aware of any changes \ +so as to remain in compliance with the most up-to-date laws." + icon_state = "newlaw" + timeout = 300 + +/obj/screen/alert/hackingapc + name = "Hacking APC" + desc = "An Area Power Controller is being hacked. When the process is \ + complete, you will have exclusive control of it, and you will gain \ + additional processing time to unlock more malfunction abilities." + icon_state = "hackingapc" + timeout = 600 + var/atom/target = null + +/obj/screen/alert/hackingapc/Click() + if(!usr || !usr.client) return + if(!target) return + var/mob/living/silicon/ai/AI = usr + var/turf/T = get_turf(target) + if(T) + AI.eyeobj.setLoc(T) + +//MECHS + +/obj/screen/alert/low_mech_integrity + name = "Mech Damaged" + desc = "Mech integrity is low." + icon_state = "low_mech_integrity" + + +//GHOSTS +//TODO: expand this system to replace the pollCandidates/CheckAntagonist/"choose quickly"/etc Yes/No messages +/obj/screen/alert/notify_cloning + name = "Revival" + desc = "Someone is trying to revive you. Re-enter your corpse if you want to be revived!" + icon_state = "template" + timeout = 300 + +/obj/screen/alert/notify_cloning/Click() + if(!usr || !usr.client) return + var/mob/dead/observer/G = usr + G.reenter_corpse() + +/obj/screen/alert/notify_action + name = "Body created" + desc = "A body was created. You can enter it." + icon_state = "template" + timeout = 300 + var/atom/target = null + var/action = NOTIFY_JUMP + +/obj/screen/alert/notify_action/Click() + if(!usr || !usr.client) return + if(!target) return + var/mob/dead/observer/G = usr + if(!istype(G)) return + switch(action) + if(NOTIFY_ATTACK) + target.attack_ghost(G) + if(NOTIFY_JUMP) + var/turf/T = get_turf(target) + if(T && isturf(T)) + G.loc = T + if(NOTIFY_ORBIT) + G.ManualFollow(target) + +//OBJECT-BASED + +/obj/screen/alert/restrained/buckled + name = "Buckled" + desc = "You've been buckled to something. Click the alert to unbuckle unless you're handcuffed." + +/obj/screen/alert/restrained/handcuffed + name = "Handcuffed" + desc = "You're handcuffed and can't act. If anyone drags you, you won't be able to move. Click the alert to free yourself." + +/obj/screen/alert/restrained/legcuffed + name = "Legcuffed" + desc = "You're legcuffed, which slows you down considerably. Click the alert to free yourself." + +/obj/screen/alert/restrained/Click() + if(isliving(usr)) + var/mob/living/L = usr + return L.resist() + +// PRIVATE = only edit, use, or override these if you're editing the system as a whole + +// Re-render all alerts - also called in /datum/hud/show_hud() because it's needed there +/datum/hud/proc/reorganize_alerts() + var/list/alerts = mymob.alerts + var/icon_pref + if(!hud_shown) + for(var/i = 1, i <= alerts.len, i++) + mymob.client.screen -= alerts[alerts[i]] + return 1 + for(var/i = 1, i <= alerts.len, i++) + var/obj/screen/alert/alert = alerts[alerts[i]] + if(alert.icon_state == "template") + if(!icon_pref) + icon_pref = ui_style2icon(mymob.client.prefs.UI_style) + alert.icon = icon_pref + switch(i) + if(1) + . = ui_alert1 + if(2) + . = ui_alert2 + if(3) + . = ui_alert3 + if(4) + . = ui_alert4 + if(5) + . = ui_alert5 // Right now there's 5 slots + else + . = "" + alert.screen_loc = . + mymob.client.screen |= alert + return 1 + +/mob + var/list/alerts = list() // contains /obj/screen/alert only // On /mob so clientless mobs will throw alerts properly + +/obj/screen/alert/Click(location, control, params) + if(!usr || !usr.client) + return + var/paramslist = params2list(params) + if(paramslist["shift"]) // screen objects don't do the normal Click() stuff so we'll cheat + usr << "[name] - [desc]" + return + if(master) + return usr.client.Click(master, location, control, params) + +/obj/screen/alert/Destroy() + ..() + severity = 0 + master = null + screen_loc = "" + return QDEL_HINT_PUTINPOOL //Don't destroy me, I have a family! diff --git a/code/_onclick/hud/alien.dm b/code/_onclick/hud/alien.dm new file mode 100644 index 0000000..079112f --- /dev/null +++ b/code/_onclick/hud/alien.dm @@ -0,0 +1,139 @@ +/obj/screen/alien + icon = 'icons/mob/screen_alien.dmi' + +/obj/screen/alien/leap + name = "toggle leap" + icon_state = "leap_off" + +/obj/screen/alien/leap/Click() + if(istype(usr, /mob/living/carbon/alien/humanoid/hunter)) + var/mob/living/carbon/alien/humanoid/hunter/AH = usr + AH.toggle_leap() + +/obj/screen/alien/nightvision + name = "toggle night-vision" + icon_state = "nightvision1" + screen_loc = ui_alien_nightvision + +/obj/screen/alien/nightvision/Click() + var/mob/living/carbon/alien/A = usr + var/obj/effect/proc_holder/alien/nightvisiontoggle/T = locate() in A.abilities + if(T) + T.fire(A) + +/obj/screen/alien/plasma_display + icon = 'icons/mob/screen_gen.dmi' + icon_state = "power_display2" + name = "plasma stored" + screen_loc = ui_alienplasmadisplay + + +/obj/screen/alien/alien_queen_finder + icon = 'icons/mob/screen_alien.dmi' + icon_state = "queen_finder" + name = "queen sense" + desc = "Allows you to sense the general direction of your Queen." + screen_loc = ui_alien_queen_finder + +/datum/hud/alien/New(mob/living/carbon/alien/humanoid/owner) + ..() + + var/obj/screen/using + +//equippable shit + +//hands + build_hand_slots('icons/mob/screen_alien.dmi') + +//begin buttons + + using = new /obj/screen/swap_hand() + using.icon = 'icons/mob/screen_alien.dmi' + using.icon_state = "swap_1" + using.screen_loc = ui_swaphand_position(owner,1) + static_inventory += using + + using = new /obj/screen/swap_hand() + using.icon = 'icons/mob/screen_alien.dmi' + using.icon_state = "swap_2" + using.screen_loc = ui_swaphand_position(owner,2) + static_inventory += using + + using = new /obj/screen/act_intent/alien() + using.icon_state = mymob.a_intent + static_inventory += using + action_intent = using + + if(istype(mymob, /mob/living/carbon/alien/humanoid/hunter)) + var/mob/living/carbon/alien/humanoid/hunter/H = mymob + H.leap_icon = new /obj/screen/alien/leap() + H.leap_icon.screen_loc = ui_alien_storage_r + static_inventory += H.leap_icon + + using = new/obj/screen/wheel/talk + using.screen_loc = ui_alien_talk_wheel + wheels += using + static_inventory += using + + using = new /obj/screen/drop() + using.icon = 'icons/mob/screen_alien.dmi' + using.screen_loc = ui_drop_throw + static_inventory += using + + using = new /obj/screen/resist() + using.icon = 'icons/mob/screen_alien.dmi' + using.screen_loc = ui_pull_resist + hotkeybuttons += using + + throw_icon = new /obj/screen/throw_catch() + throw_icon.icon = 'icons/mob/screen_alien.dmi' + throw_icon.screen_loc = ui_drop_throw + hotkeybuttons += throw_icon + + pull_icon = new /obj/screen/pull() + pull_icon.icon = 'icons/mob/screen_alien.dmi' + pull_icon.update_icon(mymob) + pull_icon.screen_loc = ui_pull_resist + static_inventory += pull_icon + +//begin indicators + + healths = new /obj/screen/healths/alien() + infodisplay += healths + + nightvisionicon = new /obj/screen/alien/nightvision() + infodisplay += nightvisionicon + + alien_plasma_display = new /obj/screen/alien/plasma_display() + infodisplay += alien_plasma_display + + if(!istype(mymob, /mob/living/carbon/alien/humanoid/royal/queen)) + alien_queen_finder = new /obj/screen/alien/alien_queen_finder + infodisplay += alien_queen_finder + + zone_select = new /obj/screen/zone_sel/alien() + zone_select.update_icon(mymob) + static_inventory += zone_select + + for(var/obj/screen/inventory/inv in (static_inventory + toggleable_inventory)) + if(inv.slot_id) + inv.hud = src + inv_slots[inv.slot_id] = inv + inv.update_icon() + +/datum/hud/alien/persistant_inventory_update() + if(!mymob) + return + var/mob/living/carbon/alien/humanoid/H = mymob + if(hud_version != HUD_STYLE_NOHUD) + for(var/obj/item/I in H.held_items) + I.screen_loc = ui_hand_position(H.get_held_index_of_item(I)) + H.client.screen += I + else + for(var/obj/item/I in H.held_items) + I.screen_loc = null + H.client.screen -= I + +/mob/living/carbon/alien/humanoid/create_mob_hud() + if(client && !hud_used) + hud_used = new /datum/hud/alien(src) diff --git a/code/_onclick/hud/alien_larva.dm b/code/_onclick/hud/alien_larva.dm new file mode 100644 index 0000000..2392e34 --- /dev/null +++ b/code/_onclick/hud/alien_larva.dm @@ -0,0 +1,35 @@ +/datum/hud/larva/New(mob/owner) + ..() + var/obj/screen/using + + using = new /obj/screen/act_intent/alien() + using.icon_state = mymob.a_intent + static_inventory += using + action_intent = using + + healths = new /obj/screen/healths/alien() + infodisplay += healths + + nightvisionicon = new /obj/screen/alien/nightvision() + nightvisionicon.screen_loc = ui_alien_nightvision + infodisplay += nightvisionicon + alien_queen_finder = new /obj/screen/alien/alien_queen_finder() + infodisplay += alien_queen_finder + pull_icon = new /obj/screen/pull() + pull_icon.icon = 'icons/mob/screen_alien.dmi' + pull_icon.update_icon(mymob) + pull_icon.screen_loc = ui_pull_resist + hotkeybuttons += pull_icon + + using = new/obj/screen/wheel/talk + using.screen_loc = ui_alien_talk_wheel + wheels += using + static_inventory += using + + zone_select = new /obj/screen/zone_sel/alien() + zone_select.update_icon(mymob) + static_inventory += zone_select + +/mob/living/carbon/alien/larva/create_mob_hud() + if(client && !hud_used) + hud_used = new /datum/hud/larva(src) diff --git a/code/_onclick/hud/blob_overmind.dm b/code/_onclick/hud/blob_overmind.dm new file mode 100644 index 0000000..c3cc385 --- /dev/null +++ b/code/_onclick/hud/blob_overmind.dm @@ -0,0 +1,184 @@ + +/obj/screen/blob + icon = 'icons/mob/blob.dmi' + +/obj/screen/blob/MouseEntered(location,control,params) + openToolTip(usr,src,params,title = name,content = desc, theme = "blob") + +/obj/screen/blob/MouseExited() + closeToolTip(usr) + +/obj/screen/blob/BlobHelp + icon_state = "ui_help" + name = "Blob Help" + desc = "Help on playing blob!" + +/obj/screen/blob/BlobHelp/Click() + if(isovermind(usr)) + var/mob/camera/blob/B = usr + B.blob_help() + +/obj/screen/blob/JumpToNode + icon_state = "ui_tonode" + name = "Jump to Node" + desc = "Moves your camera to a selected blob node." + +/obj/screen/blob/JumpToNode/Click() + if(isovermind(usr)) + var/mob/camera/blob/B = usr + B.jump_to_node() + +/obj/screen/blob/JumpToCore + icon_state = "ui_tocore" + name = "Jump to Core" + desc = "Moves your camera to your blob core." + +/obj/screen/blob/JumpToCore/MouseEntered(location,control,params) + if(hud && hud.mymob && isovermind(hud.mymob)) + var/mob/camera/blob/B = hud.mymob + if(!B.placed) + name = "Place Blob Core" + desc = "Attempt to place your blob core at this location." + else + name = initial(name) + desc = initial(desc) + ..() + +/obj/screen/blob/JumpToCore/Click() + if(isovermind(usr)) + var/mob/camera/blob/B = usr + if(!B.placed) + B.place_blob_core(B.base_point_rate, 0) + B.transport_core() + +/obj/screen/blob/Blobbernaut + icon_state = "ui_blobbernaut" + name = "Produce Blobbernaut (40)" + desc = "Produces a strong, smart blobbernaut from a factory blob for 40 resources.
    The factory blob used will become fragile and unable to produce spores." + +/obj/screen/blob/Blobbernaut/Click() + if(isovermind(usr)) + var/mob/camera/blob/B = usr + B.create_blobbernaut() + +/obj/screen/blob/ResourceBlob + icon_state = "ui_resource" + name = "Produce Resource Blob (40)" + desc = "Produces a resource blob for 40 resources.
    Resource blobs will give you resources every few seconds." + +/obj/screen/blob/ResourceBlob/Click() + if(isovermind(usr)) + var/mob/camera/blob/B = usr + B.create_resource() + +/obj/screen/blob/NodeBlob + icon_state = "ui_node" + name = "Produce Node Blob (50)" + desc = "Produces a node blob for 50 resources.
    Node blobs will expand and activate nearby resource and factory blobs." + +/obj/screen/blob/NodeBlob/Click() + if(isovermind(usr)) + var/mob/camera/blob/B = usr + B.create_node() + +/obj/screen/blob/FactoryBlob + icon_state = "ui_factory" + name = "Produce Factory Blob (60)" + desc = "Produces a factory blob for 60 resources.
    Factory blobs will produce spores every few seconds." + +/obj/screen/blob/FactoryBlob/Click() + if(isovermind(usr)) + var/mob/camera/blob/B = usr + B.create_factory() + +/obj/screen/blob/ReadaptChemical + icon_state = "ui_chemswap" + name = "Readapt Chemical (40)" + desc = "Randomly rerolls your chemical for 40 resources." + +/obj/screen/blob/ReadaptChemical/MouseEntered(location,control,params) + if(hud && hud.mymob && isovermind(hud.mymob)) + var/mob/camera/blob/B = hud.mymob + if(B.free_chem_rerolls) + name = "Readapt Chemical (FREE)" + desc = "Randomly rerolls your chemical for free." + else + name = initial(name) + desc = initial(desc) + ..() + +/obj/screen/blob/ReadaptChemical/Click() + if(isovermind(usr)) + var/mob/camera/blob/B = usr + B.chemical_reroll() + +/obj/screen/blob/RelocateCore + icon_state = "ui_swap" + name = "Relocate Core (80)" + desc = "Swaps a node and your core for 80 resources." + +/obj/screen/blob/RelocateCore/Click() + if(isovermind(usr)) + var/mob/camera/blob/B = usr + B.relocate_core() + +/datum/hud/blob_overmind/New(mob/owner) + ..() + var/obj/screen/using + + blobpwrdisplay = new /obj/screen() + blobpwrdisplay.name = "blob power" + blobpwrdisplay.icon_state = "block" + blobpwrdisplay.screen_loc = ui_health + blobpwrdisplay.mouse_opacity = 0 + blobpwrdisplay.layer = ABOVE_HUD_LAYER + blobpwrdisplay.plane = ABOVE_HUD_PLANE + infodisplay += blobpwrdisplay + + healths = new /obj/screen/healths/blob() + infodisplay += healths + + using = new /obj/screen/blob/BlobHelp() + using.screen_loc = "WEST:6,NORTH:-3" + static_inventory += using + + using = new /obj/screen/blob/JumpToNode() + using.screen_loc = ui_inventory + static_inventory += using + + using = new /obj/screen/blob/JumpToCore() + using.screen_loc = ui_zonesel + using.hud = src + static_inventory += using + + using = new /obj/screen/blob/Blobbernaut() + using.screen_loc = ui_belt + static_inventory += using + + using = new /obj/screen/blob/ResourceBlob() + using.screen_loc = ui_back + static_inventory += using + + using = new /obj/screen/blob/NodeBlob() + using.screen_loc = ui_hand_position(2) + static_inventory += using + + using = new /obj/screen/blob/FactoryBlob() + using.screen_loc = ui_hand_position(1) + static_inventory += using + + using = new /obj/screen/blob/ReadaptChemical() + using.screen_loc = ui_storage1 + using.hud = src + static_inventory += using + + using = new /obj/screen/blob/RelocateCore() + using.screen_loc = ui_storage2 + static_inventory += using + + +/mob/camera/blob/create_mob_hud() + if(client && !hud_used) + hud_used = new /datum/hud/blob_overmind(src) + + diff --git a/code/_onclick/hud/blobbernauthud.dm b/code/_onclick/hud/blobbernauthud.dm new file mode 100644 index 0000000..caed7cb --- /dev/null +++ b/code/_onclick/hud/blobbernauthud.dm @@ -0,0 +1,13 @@ + +/datum/hud/blobbernaut/New(mob/owner) + ..() + + blobpwrdisplay = new /obj/screen/healths/blob/naut/core() + infodisplay += blobpwrdisplay + + healths = new /obj/screen/healths/blob/naut() + infodisplay += healths + +/mob/living/simple_animal/hostile/blob/blobbernaut/create_mob_hud() + if(client && !hud_used) + hud_used = new /datum/hud/blobbernaut(src) diff --git a/code/_onclick/hud/clockwork_marauder.dm b/code/_onclick/hud/clockwork_marauder.dm new file mode 100644 index 0000000..0b5c2e0 --- /dev/null +++ b/code/_onclick/hud/clockwork_marauder.dm @@ -0,0 +1,64 @@ +/datum/hud/marauder + var/obj/screen/hosthealth + var/obj/screen/blockchance + var/obj/screen/counterchance + +/datum/hud/marauder/New(mob/living/simple_animal/hostile/guardian/owner) + ..() + var/obj/screen/using + + healths = new /obj/screen/healths/clock() + infodisplay += healths + + hosthealth = new /obj/screen/healths/clock() + hosthealth.screen_loc = ui_internal + infodisplay += hosthealth + + using = new /obj/screen/marauder/emerge() + using.screen_loc = ui_zonesel + static_inventory += using + + blockchance = new /obj/screen/marauder/blockchance() + blockchance.screen_loc = ui_hand_position(2) + infodisplay += blockchance + + counterchance = new /obj/screen/marauder/counterchance() + counterchance.screen_loc = ui_hand_position(1) + infodisplay += counterchance + +/datum/hud/marauder/Destroy() + blockchance = null + counterchance = null + hosthealth = null + return ..() + +/mob/living/simple_animal/hostile/clockwork/marauder/create_mob_hud() + if(client && !hud_used) + hud_used = new /datum/hud/marauder(src, ui_style2icon(client.prefs.UI_style)) + + +/obj/screen/marauder + icon = 'icons/mob/clockwork_mobs.dmi' + +/obj/screen/marauder/emerge + icon_state = "marauder_emerge" + name = "Emerge/Return" + desc = "Emerge or Return." + +/obj/screen/marauder/emerge/Click() + if(istype(usr, /mob/living/simple_animal/hostile/clockwork/marauder)) + var/mob/living/simple_animal/hostile/clockwork/marauder/M = usr + if(M.is_in_host()) + M.try_emerge() + else + M.return_to_host() + +/obj/screen/marauder/blockchance + icon_state = "marauder_block" + name = "Block Chance" + desc = "Clang." + +/obj/screen/marauder/counterchance + icon_state = "marauder_counter" + name = "Counter Chance" + desc = "Slash." diff --git a/code/_onclick/hud/devil.dm b/code/_onclick/hud/devil.dm new file mode 100644 index 0000000..ee01b27 --- /dev/null +++ b/code/_onclick/hud/devil.dm @@ -0,0 +1,65 @@ + +//Soul counter is stored with the humans, it does weird when you place it here apparently... + + +/datum/hud/devil/New(mob/owner, ui_style = 'icons/mob/screen_midnight.dmi') + ..() + var/obj/screen/using + + using = new /obj/screen/drop() + using.icon = ui_style + using.screen_loc = ui_drone_drop + static_inventory += using + + pull_icon = new /obj/screen/pull() + pull_icon.icon = ui_style + pull_icon.update_icon(mymob) + pull_icon.screen_loc = ui_drone_pull + static_inventory += pull_icon + + build_hand_slots(ui_style) + + using = new /obj/screen/inventory() + using.name = "hand" + using.icon = ui_style + using.icon_state = "swap_1_m" + using.screen_loc = ui_swaphand_position(owner,1) + using.layer = HUD_LAYER + using.plane = HUD_PLANE + static_inventory += using + + using = new /obj/screen/inventory() + using.name = "hand" + using.icon = ui_style + using.icon_state = "swap_2" + using.screen_loc = ui_swaphand_position(owner,2) + using.layer = HUD_LAYER + using.plane = HUD_PLANE + static_inventory += using + + zone_select = new /obj/screen/zone_sel() + zone_select.icon = ui_style + zone_select.update_icon(mymob) + + lingchemdisplay = new /obj/screen/ling/chems() + devilsouldisplay = new /obj/screen/devil/soul_counter + infodisplay += devilsouldisplay + + +/datum/hud/devil/persistant_inventory_update() + if(!mymob) + return + var/mob/living/carbon/true_devil/D = mymob + + if(hud_version != HUD_STYLE_NOHUD) + for(var/obj/item/I in D.held_items) + I.screen_loc = ui_hand_position(D.get_held_index_of_item(I)) + D.client.screen += I + else + for(var/obj/item/I in D.held_items) + I.screen_loc = null + D.client.screen -= I + +/mob/living/carbon/true_devil/create_mob_hud() + if(client && !hud_used) + hud_used = new /datum/hud/devil(src, ui_style2icon(client.prefs.UI_style)) diff --git a/code/_onclick/hud/drones.dm b/code/_onclick/hud/drones.dm new file mode 100644 index 0000000..4f621dc --- /dev/null +++ b/code/_onclick/hud/drones.dm @@ -0,0 +1,48 @@ +/datum/hud/dextrous/drone/New(mob/owner, ui_style = 'icons/mob/screen_midnight.dmi') + ..() + var/obj/screen/inventory/inv_box + + inv_box = new /obj/screen/inventory() + inv_box.name = "internal storage" + inv_box.icon = ui_style + inv_box.icon_state = "suit_storage" +// inv_box.icon_full = "template" + inv_box.screen_loc = ui_drone_storage + inv_box.slot_id = slot_generic_dextrous_storage + static_inventory += inv_box + + inv_box = new /obj/screen/inventory() + inv_box.name = "head/mask" + inv_box.icon = ui_style + inv_box.icon_state = "mask" +// inv_box.icon_full = "template" + inv_box.screen_loc = ui_drone_head + inv_box.slot_id = slot_head + static_inventory += inv_box + + for(var/obj/screen/inventory/inv in (static_inventory + toggleable_inventory)) + if(inv.slot_id) + inv.hud = src + inv_slots[inv.slot_id] = inv + inv.update_icon() + + +/datum/hud/dextrous/drone/persistant_inventory_update() + if(!mymob) + return + var/mob/living/simple_animal/drone/D = mymob + + if(hud_shown) + if(D.internal_storage) + D.internal_storage.screen_loc = ui_drone_storage + D.client.screen += D.internal_storage + if(D.head) + D.head.screen_loc = ui_drone_head + D.client.screen += D.head + else + if(D.internal_storage) + D.internal_storage.screen_loc = null + if(D.head) + D.head.screen_loc = null + + ..() diff --git a/code/_onclick/hud/fullscreen.dm b/code/_onclick/hud/fullscreen.dm new file mode 100644 index 0000000..fc4e30b --- /dev/null +++ b/code/_onclick/hud/fullscreen.dm @@ -0,0 +1,128 @@ + +/mob + var/list/screens = list() + +/mob/proc/overlay_fullscreen(category, type, severity) + var/obj/screen/fullscreen/screen + if(screens[category]) + screen = screens[category] + if(screen.type != type) + clear_fullscreen(category, FALSE) + return .() + else if(!severity || severity == screen.severity) + return null + else + screen = PoolOrNew(type) + + screen.icon_state = "[initial(screen.icon_state)][severity]" + screen.severity = severity + + screens[category] = screen + if(client && stat != DEAD) + client.screen += screen + return screen + +/mob/proc/clear_fullscreen(category, animated = 10) + var/obj/screen/fullscreen/screen = screens[category] + if(!screen) + return + + screens -= category + + if(animated) + spawn(0) + animate(screen, alpha = 0, time = animated) + sleep(animated) + if(client) + client.screen -= screen + qdel(screen) + else + if(client) + client.screen -= screen + qdel(screen) + +/mob/proc/clear_fullscreens() + for(var/category in screens) + clear_fullscreen(category) + +/mob/proc/hide_fullscreens() + if(client) + for(var/category in screens) + client.screen -= screens[category] + +/mob/proc/reload_fullscreen() + if(client && stat != DEAD) //dead mob do not see any of the fullscreen overlays that he has. + for(var/category in screens) + client.screen |= screens[category] + +/obj/screen/fullscreen + icon = 'icons/mob/screen_full.dmi' + icon_state = "default" + screen_loc = "CENTER-7,CENTER-7" + layer = FULLSCREEN_LAYER + plane = FULLSCREEN_PLANE + mouse_opacity = 0 + var/severity = 0 + +/obj/screen/fullscreen/Destroy() + ..() + severity = 0 + return QDEL_HINT_PUTINPOOL + +/obj/screen/fullscreen/brute + icon_state = "brutedamageoverlay" + layer = UI_DAMAGE_LAYER + plane = FULLSCREEN_PLANE + +/obj/screen/fullscreen/oxy + icon_state = "oxydamageoverlay" + layer = UI_DAMAGE_LAYER + plane = FULLSCREEN_PLANE + +/obj/screen/fullscreen/crit + icon_state = "passage" + layer = CRIT_LAYER + plane = FULLSCREEN_PLANE + +/obj/screen/fullscreen/blind + icon_state = "blackimageoverlay" + layer = BLIND_LAYER + plane = FULLSCREEN_PLANE + +/obj/screen/fullscreen/impaired + icon_state = "impairedoverlay" + +/obj/screen/fullscreen/blurry + icon = 'icons/mob/screen_gen.dmi' + screen_loc = "WEST,SOUTH to EAST,NORTH" + icon_state = "blurry" + +/obj/screen/fullscreen/flash + icon = 'icons/mob/screen_gen.dmi' + screen_loc = "WEST,SOUTH to EAST,NORTH" + icon_state = "flash" + +/obj/screen/fullscreen/flash/noise + icon = 'icons/mob/screen_gen.dmi' + screen_loc = "WEST,SOUTH to EAST,NORTH" + icon_state = "noise" + +/obj/screen/fullscreen/high + icon = 'icons/mob/screen_gen.dmi' + screen_loc = "WEST,SOUTH to EAST,NORTH" + icon_state = "druggy" + +/obj/screen/fullscreen/color_vision + icon = 'icons/mob/screen_gen.dmi' + screen_loc = "WEST,SOUTH to EAST,NORTH" + icon_state = "flash" + alpha = 80 + +/obj/screen/fullscreen/color_vision/green + color = "#00ff00" + +/obj/screen/fullscreen/color_vision/red + color = "#ff0000" + +/obj/screen/fullscreen/color_vision/blue + color = "#0000ff" \ No newline at end of file diff --git a/code/_onclick/hud/generic_dextrous.dm b/code/_onclick/hud/generic_dextrous.dm new file mode 100644 index 0000000..bb0bac5 --- /dev/null +++ b/code/_onclick/hud/generic_dextrous.dm @@ -0,0 +1,71 @@ +//Used for normal mobs that have hands. +/datum/hud/dextrous/New(mob/living/owner, ui_style = 'icons/mob/screen_midnight.dmi') + ..() + var/obj/screen/using + + using = new /obj/screen/drop() + using.icon = ui_style + using.screen_loc = ui_drone_drop + static_inventory += using + + pull_icon = new /obj/screen/pull() + pull_icon.icon = ui_style + pull_icon.update_icon(mymob) + pull_icon.screen_loc = ui_drone_pull + static_inventory += pull_icon + + build_hand_slots(ui_style) + + using = new /obj/screen/swap_hand() + using.icon = ui_style + using.icon_state = "swap_1_m" + using.screen_loc = ui_swaphand_position(owner,1) + static_inventory += using + + using = new /obj/screen/swap_hand() + using.icon = ui_style + using.icon_state = "swap_2" + using.screen_loc = ui_swaphand_position(owner,2) + static_inventory += using + + zone_select = new /obj/screen/zone_sel() + zone_select.icon = ui_style + zone_select.update_icon(mymob) + + using = new /obj/screen/inventory/craft + using.icon = ui_style + static_inventory += using + + using = new /obj/screen/inventory/area_creator + using.icon = ui_style + static_inventory += using + + mymob.client.screen = list() + + for(var/obj/screen/inventory/inv in (static_inventory + toggleable_inventory)) + if(inv.slot_id) + inv.hud = src + inv_slots[inv.slot_id] = inv + inv.update_icon() + +/datum/hud/dextrous/persistant_inventory_update() + if(!mymob) + return + var/mob/living/D = mymob + if(hud_version != HUD_STYLE_NOHUD) + for(var/obj/item/I in D.held_items) + I.screen_loc = ui_hand_position(D.get_held_index_of_item(I)) + D.client.screen += I + else + for(var/obj/item/I in D.held_items) + I.screen_loc = null + D.client.screen -= I + + +//Dextrous simple mobs can use hands! +/mob/living/simple_animal/create_mob_hud() + if(client && !hud_used) + if(dextrous) + hud_used = new dextrous_hud_type(src, ui_style2icon(client.prefs.UI_style)) + else + ..() diff --git a/code/_onclick/hud/ghost.dm b/code/_onclick/hud/ghost.dm new file mode 100644 index 0000000..aa39055 --- /dev/null +++ b/code/_onclick/hud/ghost.dm @@ -0,0 +1,74 @@ +/obj/screen/ghost + icon = 'icons/mob/screen_ghost.dmi' + +/obj/screen/ghost/MouseEntered() + flick(icon_state + "_anim", src) + +/obj/screen/ghost/jumptomob + name = "Jump to mob" + icon_state = "jumptomob" + +/obj/screen/ghost/jumptomob/Click() + var/mob/dead/observer/G = usr + G.jumptomob() + +/obj/screen/ghost/orbit + name = "Orbit" + icon_state = "orbit" + +/obj/screen/ghost/orbit/Click() + var/mob/dead/observer/G = usr + G.follow() + +/obj/screen/ghost/reenter_corpse + name = "Reenter corpse" + icon_state = "reenter_corpse" + +/obj/screen/ghost/reenter_corpse/Click() + var/mob/dead/observer/G = usr + G.reenter_corpse() + +/obj/screen/ghost/teleport + name = "Teleport" + icon_state = "teleport" + +/obj/screen/ghost/teleport/Click() + var/mob/dead/observer/G = usr + G.dead_tele() + +/datum/hud/ghost/New(mob/owner) + ..() + var/mob/dead/observer/G = mymob + if(!G.client.prefs.ghost_hud) + mymob.client.screen = null + return + + var/obj/screen/using + + using = new /obj/screen/ghost/jumptomob() + using.screen_loc = ui_ghost_jumptomob + static_inventory += using + + using = new /obj/screen/ghost/orbit() + using.screen_loc = ui_ghost_orbit + static_inventory += using + + using = new /obj/screen/ghost/reenter_corpse() + using.screen_loc = ui_ghost_reenter_corpse + static_inventory += using + + using = new /obj/screen/ghost/teleport() + using.screen_loc = ui_ghost_teleport + static_inventory += using + + +/datum/hud/ghost/show_hud() + var/mob/dead/observer/G = mymob + mymob.client.screen = list() + if(!G.client.prefs.ghost_hud) + return + mymob.client.screen += static_inventory + +/mob/dead/observer/create_mob_hud() + if(client && !hud_used) + hud_used = new /datum/hud/ghost(src) diff --git a/code/_onclick/hud/guardian.dm b/code/_onclick/hud/guardian.dm new file mode 100644 index 0000000..aa50ca3 --- /dev/null +++ b/code/_onclick/hud/guardian.dm @@ -0,0 +1,157 @@ + +/datum/hud/guardian/New(mob/living/simple_animal/hostile/guardian/owner) + ..() + var/obj/screen/using + + healths = new /obj/screen/healths/guardian() + infodisplay += healths + + using = new /obj/screen/guardian/Manifest() + using.screen_loc = ui_hand_position(2) + static_inventory += using + + using = new /obj/screen/guardian/Recall() + using.screen_loc = ui_hand_position(1) + static_inventory += using + + using = new owner.toggle_button_type() + using.screen_loc = ui_storage1 + static_inventory += using + + using = new /obj/screen/guardian/ToggleLight() + using.screen_loc = ui_inventory + static_inventory += using + + using = new /obj/screen/guardian/Communicate() + using.screen_loc = ui_back + static_inventory += using + + +/mob/living/simple_animal/hostile/guardian/create_mob_hud() + if(client && !hud_used) + if(dextrous) + ..() + else + hud_used = new /datum/hud/guardian(src, ui_style2icon(client.prefs.UI_style)) + +/datum/hud/dextrous/guardian/New(mob/living/simple_animal/hostile/guardian/owner, ui_style = 'icons/mob/screen_midnight.dmi') //for a dextrous guardian + ..() + var/obj/screen/using + if(istype(owner, /mob/living/simple_animal/hostile/guardian/dextrous)) + var/obj/screen/inventory/inv_box + + inv_box = new /obj/screen/inventory() + inv_box.name = "internal storage" + inv_box.icon = ui_style + inv_box.icon_state = "suit_storage" + inv_box.screen_loc = ui_id + inv_box.slot_id = slot_generic_dextrous_storage + static_inventory += inv_box + + using = new /obj/screen/guardian/Communicate() + using.screen_loc = ui_sstore1 + static_inventory += using + + else + + using = new /obj/screen/guardian/Communicate() + using.screen_loc = ui_id + static_inventory += using + + healths = new /obj/screen/healths/guardian() + infodisplay += healths + + using = new /obj/screen/guardian/Manifest() + using.screen_loc = ui_belt + static_inventory += using + + using = new /obj/screen/guardian/Recall() + using.screen_loc = ui_back + static_inventory += using + + using = new owner.toggle_button_type() + using.screen_loc = ui_storage2 + static_inventory += using + + using = new /obj/screen/guardian/ToggleLight() + using.screen_loc = ui_inventory + static_inventory += using + +/datum/hud/dextrous/guardian/persistant_inventory_update() + if(!mymob) + return + if(istype(mymob, /mob/living/simple_animal/hostile/guardian/dextrous)) + var/mob/living/simple_animal/hostile/guardian/dextrous/D = mymob + + if(hud_shown) + if(D.internal_storage) + D.internal_storage.screen_loc = ui_id + D.client.screen += D.internal_storage + else + if(D.internal_storage) + D.internal_storage.screen_loc = null + + ..() + +/obj/screen/guardian + icon = 'icons/mob/guardian.dmi' + +/obj/screen/guardian/Manifest + icon_state = "manifest" + name = "Manifest" + desc = "Spring forth into battle!" + +/obj/screen/guardian/Manifest/Click() + if(isguardian(usr)) + var/mob/living/simple_animal/hostile/guardian/G = usr + G.Manifest() + + +/obj/screen/guardian/Recall + icon_state = "recall" + name = "Recall" + desc = "Return to your user." + +/obj/screen/guardian/Recall/Click() + if(isguardian(usr)) + var/mob/living/simple_animal/hostile/guardian/G = usr + G.Recall() + +/obj/screen/guardian/ToggleMode + icon_state = "toggle" + name = "Toggle Mode" + desc = "Switch between ability modes." + +/obj/screen/guardian/ToggleMode/Click() + if(isguardian(usr)) + var/mob/living/simple_animal/hostile/guardian/G = usr + G.ToggleMode() + +/obj/screen/guardian/ToggleMode/Inactive + icon_state = "notoggle" //greyed out so it doesn't look like it'll work + +/obj/screen/guardian/ToggleMode/Assassin + icon_state = "stealth" + name = "Toggle Stealth" + desc = "Enter or exit stealth." + +/obj/screen/guardian/Communicate + icon_state = "communicate" + name = "Communicate" + desc = "Communicate telepathically with your user." + +/obj/screen/guardian/Communicate/Click() + if(isguardian(usr)) + var/mob/living/simple_animal/hostile/guardian/G = usr + G.Communicate() + + +/obj/screen/guardian/ToggleLight + icon_state = "light" + name = "Toggle Light" + desc = "Glow like star dust." + +/obj/screen/guardian/ToggleLight/Click() + if(isguardian(usr)) + var/mob/living/simple_animal/hostile/guardian/G = usr + G.ToggleLight() diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm new file mode 100644 index 0000000..c608968 --- /dev/null +++ b/code/_onclick/hud/hud.dm @@ -0,0 +1,272 @@ +/* + The hud datum + Used to show and hide huds for all the different mob types, + including inventories and item quick actions. +*/ + +/datum/hud + var/mob/mymob + + var/hud_shown = 1 //Used for the HUD toggle (F12) + var/hud_version = 1 //Current displayed version of the HUD + var/inventory_shown = 0 //Equipped item inventory + var/show_intent_icons = 0 + var/hotkey_ui_hidden = 0 //This is to hide the buttons that can be used via hotkeys. (hotkeybuttons list of buttons) + + var/obj/screen/ling/chems/lingchemdisplay + var/obj/screen/ling/sting/lingstingdisplay + + var/obj/screen/blobpwrdisplay + + var/obj/screen/alien_plasma_display + var/obj/screen/alien_queen_finder + + var/obj/screen/devil/soul_counter/devilsouldisplay + + var/obj/screen/deity_power_display + var/obj/screen/deity_follower_display + + var/obj/screen/nightvisionicon + var/obj/screen/action_intent + var/obj/screen/zone_select + var/obj/screen/pull_icon + var/obj/screen/throw_icon + var/obj/screen/module_store_icon + + var/list/wheels = list() //list of the wheel screen objects + + var/list/static_inventory = list() //the screen objects which are static + var/list/toggleable_inventory = list() //the screen objects which can be hidden + var/list/obj/screen/hotkeybuttons = list() //the buttons that can be used via hotkeys + var/list/infodisplay = list() //the screen objects that display mob info (health, alien plasma, etc...) + var/list/screenoverlays = list() //the screen objects used as whole screen overlays (flash, damageoverlay, etc...) + var/list/inv_slots[slots_amt] // /obj/screen/inventory objects, ordered by their slot ID. + var/list/hand_slots // /obj/screen/inventory/hand objects, assoc list of "[held_index]" = object + var/list/obj/screen/plane_master/plane_masters = list() // see "appearance_flags" in the ref, assoc list of "[plane]" = object + + var/obj/screen/movable/action_button/hide_toggle/hide_actions_toggle + var/action_buttons_hidden = 0 + + var/obj/screen/healths + var/obj/screen/healthdoll + var/obj/screen/internals + +/datum/hud/New(mob/owner) + mymob = owner + hide_actions_toggle = new + hide_actions_toggle.InitialiseIcon(mymob) + hand_slots = list() + for(var/mytype in subtypesof(/obj/screen/plane_master)) + var/obj/screen/plane_master/instance = new mytype() + plane_masters["[instance.plane]"] = instance + +/datum/hud/Destroy() + if(mymob.hud_used == src) + mymob.hud_used = null + + qdel(hide_actions_toggle) + hide_actions_toggle = null + + qdel(module_store_icon) + module_store_icon = null + + wheels = null //all wheels are also in static_inventory + + if(static_inventory.len) + for(var/thing in static_inventory) + qdel(thing) + static_inventory.Cut() + + inv_slots.Cut() + action_intent = null + zone_select = null + pull_icon = null + + if(toggleable_inventory.len) + for(var/thing in toggleable_inventory) + qdel(thing) + toggleable_inventory.Cut() + + if(hotkeybuttons.len) + for(var/thing in hotkeybuttons) + qdel(thing) + hotkeybuttons.Cut() + + throw_icon = null + + if(infodisplay.len) + for(var/thing in infodisplay) + qdel(thing) + infodisplay.Cut() + + healths = null + healthdoll = null + internals = null + lingchemdisplay = null + devilsouldisplay = null + lingstingdisplay = null + blobpwrdisplay = null + alien_plasma_display = null + alien_queen_finder = null + deity_power_display = null + deity_follower_display = null + nightvisionicon = null + + if(plane_masters.len) + for(var/thing in plane_masters) + qdel(plane_masters[thing]) + plane_masters.Cut() + + if(screenoverlays.len) + for(var/thing in screenoverlays) + qdel(thing) + screenoverlays.Cut() + mymob = null + return ..() + +/mob/proc/create_mob_hud() + if(client && !hud_used) + hud_used = new /datum/hud(src) + +//Version denotes which style should be displayed. blank or 0 means "next version" +/datum/hud/proc/show_hud(version = 0,mob/viewmob) + if(!ismob(mymob)) + return 0 + if(!mymob.client) + return 0 + + var/mob/screenmob = viewmob || mymob + + screenmob.client.screen = list() + + var/display_hud_version = version + if(!display_hud_version) //If 0 or blank, display the next hud version + display_hud_version = hud_version + 1 + if(display_hud_version > HUD_VERSIONS) //If the requested version number is greater than the available versions, reset back to the first version + display_hud_version = 1 + + switch(display_hud_version) + if(HUD_STYLE_STANDARD) //Default HUD + hud_shown = 1 //Governs behavior of other procs + if(static_inventory.len) + screenmob.client.screen += static_inventory + if(toggleable_inventory.len && screenmob.hud_used && screenmob.hud_used.inventory_shown) + screenmob.client.screen += toggleable_inventory + if(hotkeybuttons.len && !hotkey_ui_hidden) + screenmob.client.screen += hotkeybuttons + if(infodisplay.len) + screenmob.client.screen += infodisplay + + mymob.client.screen += hide_actions_toggle + + if(action_intent) + action_intent.screen_loc = initial(action_intent.screen_loc) //Restore intent selection to the original position + + if(HUD_STYLE_REDUCED) //Reduced HUD + hud_shown = 0 //Governs behavior of other procs + if(static_inventory.len) + screenmob.client.screen -= static_inventory + if(toggleable_inventory.len) + screenmob.client.screen -= toggleable_inventory + if(hotkeybuttons.len) + screenmob.client.screen -= hotkeybuttons + if(infodisplay.len) + screenmob.client.screen += infodisplay + + //These ones are a part of 'static_inventory', 'toggleable_inventory' or 'hotkeybuttons' but we want them to stay + for(var/h in hand_slots) + var/obj/screen/hand = hand_slots[h] + if(hand) + screenmob.client.screen += hand + if(action_intent) + screenmob.client.screen += action_intent //we want the intent switcher visible + action_intent.screen_loc = ui_acti_alt //move this to the alternative position, where zone_select usually is. + + if(HUD_STYLE_NOHUD) //No HUD + hud_shown = 0 //Governs behavior of other procs + if(static_inventory.len) + screenmob.client.screen -= static_inventory + if(toggleable_inventory.len) + screenmob.client.screen -= toggleable_inventory + if(hotkeybuttons.len) + screenmob.client.screen -= hotkeybuttons + if(infodisplay.len) + screenmob.client.screen -= infodisplay + + if(plane_masters.len) + for(var/thing in plane_masters) + screenmob.client.screen += plane_masters[thing] + hud_version = display_hud_version + persistant_inventory_update(screenmob) + mymob.update_action_buttons(1) + reorganize_alerts() + mymob.reload_fullscreen() + + +/datum/hud/human/show_hud(version = 0,mob/viewmob) + ..() + hidden_inventory_update(viewmob) + +/datum/hud/robot/show_hud(version = 0) + ..() + update_robot_modules_display() + +/datum/hud/proc/hidden_inventory_update() + return + +/datum/hud/proc/persistant_inventory_update(mob/viewer) + if(!mymob) + return + var/mob/living/L = mymob + + var/mob/screenmob = viewer || L + + for(var/X in wheels) + var/obj/screen/wheel/W = X + if(W.toggled) + screenmob.client.screen |= W.buttons_list + else + screenmob.client.screen -= W.buttons_list + +//Triggered when F12 is pressed (Unless someone changed something in the DMF) +/mob/verb/button_pressed_F12() + set name = "F12" + set hidden = 1 + + if(hud_used && client) + hud_used.show_hud() //Shows the next hud preset + usr << "Switched HUD mode. Press F12 to toggle." + else + usr << "This mob type does not use a HUD." + + +//(re)builds the hand ui slots, throwing away old ones +//not really worth jugglying existing ones so we just scrap+rebuild +//9/10 this is only called once per mob and only for 2 hands +/datum/hud/proc/build_hand_slots(ui_style = 'icons/mob/screen_midnight.dmi') + for(var/h in hand_slots) + var/obj/screen/inventory/hand/H = hand_slots[h] + if(H) + static_inventory -= H + hand_slots = list() + var/obj/screen/inventory/hand/hand_box + for(var/i in 1 to mymob.held_items.len) + hand_box = new /obj/screen/inventory/hand() + hand_box.name = mymob.get_held_index_name(i) + hand_box.icon = ui_style + hand_box.icon_state = "hand_[mymob.held_index_to_dir(i)]" + hand_box.screen_loc = ui_hand_position(i) + hand_box.held_index = i + hand_slots["[i]"] = hand_box + hand_box.hud = src + static_inventory += hand_box + hand_box.update_icon() + + var/i = 1 + for(var/obj/screen/swap_hand/SH in static_inventory) + SH.screen_loc = ui_swaphand_position(mymob,!(i % 2) ? 2: 1) + i++ + for(var/obj/screen/human/equip/E in static_inventory) + E.screen_loc = ui_equip_position(mymob) + if(mymob.hud_used) + show_hud(HUD_STYLE_STANDARD,mymob) \ No newline at end of file diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm new file mode 100644 index 0000000..24a23ad --- /dev/null +++ b/code/_onclick/hud/human.dm @@ -0,0 +1,437 @@ +/obj/screen/human + icon = 'icons/mob/screen_midnight.dmi' + +/obj/screen/human/toggle + name = "toggle" + icon_state = "toggle" + +/obj/screen/human/toggle/Click() + + var/mob/targetmob = usr + + if(isobserver(usr)) + if(ishuman(usr.client.eye) && (usr.client.eye != usr)) + var/mob/M = usr.client.eye + targetmob = M + + if(usr.hud_used.inventory_shown && targetmob.hud_used) + usr.hud_used.inventory_shown = 0 + usr.client.screen -= targetmob.hud_used.toggleable_inventory + else + usr.hud_used.inventory_shown = 1 + usr.client.screen += targetmob.hud_used.toggleable_inventory + + targetmob.hud_used.hidden_inventory_update(usr) + +/obj/screen/human/equip + name = "equip" + icon_state = "act_equip" + +/obj/screen/human/equip/Click() + if(istype(usr.loc,/obj/mecha)) // stops inventory actions in a mech + return 1 + var/mob/living/carbon/human/H = usr + H.quick_equip() + +/obj/screen/devil + invisibility = INVISIBILITY_ABSTRACT + +/obj/screen/devil/soul_counter + icon = 'icons/mob/screen_gen.dmi' + name = "souls owned" + icon_state = "Devil-6" + screen_loc = ui_devilsouldisplay + +/obj/screen/devil/soul_counter/proc/update_counter(souls = 0) + invisibility = 0 + maptext = "
    [souls]
    " + switch(souls) + if(0,null) + icon_state = "Devil-1" + if(1,2) + icon_state = "Devil-2" + if(3 to 5) + icon_state = "Devil-3" + if(6 to 8) + icon_state = "Devil-4" + if(9 to INFINITY) + icon_state = "Devil-5" + else + icon_state = "Devil-6" + +/obj/screen/devil/soul_counter/proc/clear() + invisibility = INVISIBILITY_ABSTRACT + +/obj/screen/ling + invisibility = INVISIBILITY_ABSTRACT + +/obj/screen/ling/sting + name = "current sting" + screen_loc = ui_lingstingdisplay + +/obj/screen/ling/sting/Click() + if(isobserver(usr)) + return + var/mob/living/carbon/U = usr + U.unset_sting() + +/obj/screen/ling/chems + name = "chemical storage" + icon_state = "power_display" + screen_loc = ui_lingchemdisplay + +/mob/living/carbon/human/create_mob_hud() + if(client && !hud_used) + hud_used = new /datum/hud/human(src, ui_style2icon(client.prefs.UI_style)) + + +/datum/hud/human/New(mob/living/carbon/human/owner, ui_style = 'icons/mob/screen_midnight.dmi') + ..() + + var/obj/screen/using + var/obj/screen/inventory/inv_box + + using = new /obj/screen/inventory/craft + using.icon = ui_style + static_inventory += using + + using = new/obj/screen/wheel/talk + using.icon = ui_style + wheels += using + static_inventory += using + + using = new /obj/screen/inventory/area_creator + using.icon = ui_style + static_inventory += using + + using = new /obj/screen/act_intent() + using.icon_state = mymob.a_intent + static_inventory += using + action_intent = using + + using = new /obj/screen/mov_intent() + using.icon = ui_style + using.icon_state = (mymob.m_intent == "run" ? "running" : "walking") + using.screen_loc = ui_movi + static_inventory += using + + using = new /obj/screen/drop() + using.icon = ui_style + using.screen_loc = ui_drop_throw + static_inventory += using + + inv_box = new /obj/screen/inventory() + inv_box.name = "i_clothing" + inv_box.icon = ui_style + inv_box.slot_id = slot_w_uniform + inv_box.icon_state = "uniform" +// inv_box.icon_full = "template" + inv_box.screen_loc = ui_iclothing + toggleable_inventory += inv_box + + inv_box = new /obj/screen/inventory() + inv_box.name = "o_clothing" + inv_box.icon = ui_style + inv_box.slot_id = slot_wear_suit + inv_box.icon_state = "suit" +// inv_box.icon_full = "template" + inv_box.screen_loc = ui_oclothing + toggleable_inventory += inv_box + + build_hand_slots(ui_style) + + using = new /obj/screen/swap_hand() + using.icon = ui_style + using.icon_state = "swap_1" + using.screen_loc = ui_swaphand_position(owner,1) + static_inventory += using + + using = new /obj/screen/swap_hand() + using.icon = ui_style + using.icon_state = "swap_2" + using.screen_loc = ui_swaphand_position(owner,2) + static_inventory += using + + inv_box = new /obj/screen/inventory() + inv_box.name = "id" + inv_box.icon = ui_style + inv_box.icon_state = "id" +// inv_box.icon_full = "template_small" + inv_box.screen_loc = ui_id + inv_box.slot_id = slot_wear_id + static_inventory += inv_box + + inv_box = new /obj/screen/inventory() + inv_box.name = "mask" + inv_box.icon = ui_style + inv_box.icon_state = "mask" +// inv_box.icon_full = "template" + inv_box.screen_loc = ui_mask + inv_box.slot_id = slot_wear_mask + toggleable_inventory += inv_box + + inv_box = new /obj/screen/inventory() + inv_box.name = "neck" + inv_box.icon = ui_style + inv_box.icon_state = "neck" +// inv_box.icon_full = "template" + inv_box.screen_loc = ui_neck + inv_box.slot_id = slot_neck + toggleable_inventory += inv_box + + inv_box = new /obj/screen/inventory() + inv_box.name = "back" + inv_box.icon = ui_style + inv_box.icon_state = "back" +// inv_box.icon_full = "template_small" + inv_box.screen_loc = ui_back + inv_box.slot_id = slot_back + static_inventory += inv_box + + inv_box = new /obj/screen/inventory() + inv_box.name = "storage1" + inv_box.icon = ui_style + inv_box.icon_state = "pocket" +// inv_box.icon_full = "template_small" + inv_box.screen_loc = ui_storage1 + inv_box.slot_id = slot_l_store + static_inventory += inv_box + + inv_box = new /obj/screen/inventory() + inv_box.name = "storage2" + inv_box.icon = ui_style + inv_box.icon_state = "pocket" +// inv_box.icon_full = "template_small" + inv_box.screen_loc = ui_storage2 + inv_box.slot_id = slot_r_store + static_inventory += inv_box + + inv_box = new /obj/screen/inventory() + inv_box.name = "suit storage" + inv_box.icon = ui_style + inv_box.icon_state = "suit_storage" +// inv_box.icon_full = "template" + inv_box.screen_loc = ui_sstore1 + inv_box.slot_id = slot_s_store + static_inventory += inv_box + + using = new /obj/screen/resist() + using.icon = ui_style + using.screen_loc = ui_pull_resist + hotkeybuttons += using + + using = new /obj/screen/human/toggle() + using.icon = ui_style + using.screen_loc = ui_inventory + static_inventory += using + + using = new /obj/screen/human/equip() + using.icon = ui_style + using.screen_loc = ui_equip_position(mymob) + static_inventory += using + + inv_box = new /obj/screen/inventory() + inv_box.name = "gloves" + inv_box.icon = ui_style + inv_box.icon_state = "gloves" +// inv_box.icon_full = "template" + inv_box.screen_loc = ui_gloves + inv_box.slot_id = slot_gloves + toggleable_inventory += inv_box + + inv_box = new /obj/screen/inventory() + inv_box.name = "eyes" + inv_box.icon = ui_style + inv_box.icon_state = "glasses" +// inv_box.icon_full = "template" + inv_box.screen_loc = ui_glasses + inv_box.slot_id = slot_glasses + toggleable_inventory += inv_box + + inv_box = new /obj/screen/inventory() + inv_box.name = "ears" + inv_box.icon = ui_style + inv_box.icon_state = "ears" +// inv_box.icon_full = "template" + inv_box.screen_loc = ui_ears + inv_box.slot_id = slot_ears + toggleable_inventory += inv_box + + inv_box = new /obj/screen/inventory() + inv_box.name = "head" + inv_box.icon = ui_style + inv_box.icon_state = "head" +// inv_box.icon_full = "template" + inv_box.screen_loc = ui_head + inv_box.slot_id = slot_head + toggleable_inventory += inv_box + + inv_box = new /obj/screen/inventory() + inv_box.name = "shoes" + inv_box.icon = ui_style + inv_box.icon_state = "shoes" +// inv_box.icon_full = "template" + inv_box.screen_loc = ui_shoes + inv_box.slot_id = slot_shoes + toggleable_inventory += inv_box + + inv_box = new /obj/screen/inventory() + inv_box.name = "belt" + inv_box.icon = ui_style + inv_box.icon_state = "belt" +// inv_box.icon_full = "template_small" + inv_box.screen_loc = ui_belt + inv_box.slot_id = slot_belt + static_inventory += inv_box + + throw_icon = new /obj/screen/throw_catch() + throw_icon.icon = ui_style + throw_icon.screen_loc = ui_drop_throw + hotkeybuttons += throw_icon + + internals = new /obj/screen/internals() + infodisplay += internals + + healths = new /obj/screen/healths() + infodisplay += healths + + healthdoll = new /obj/screen/healthdoll() + infodisplay += healthdoll + + pull_icon = new /obj/screen/pull() + pull_icon.icon = ui_style + pull_icon.update_icon(mymob) + pull_icon.screen_loc = ui_pull_resist + static_inventory += pull_icon + + lingchemdisplay = new /obj/screen/ling/chems() + infodisplay += lingchemdisplay + + lingstingdisplay = new /obj/screen/ling/sting() + infodisplay += lingstingdisplay + + devilsouldisplay = new /obj/screen/devil/soul_counter + infodisplay += devilsouldisplay + + zone_select = new /obj/screen/zone_sel() + zone_select.icon = ui_style + zone_select.update_icon(mymob) + static_inventory += zone_select + + for(var/obj/screen/inventory/inv in (static_inventory + toggleable_inventory)) + if(inv.slot_id) + inv.hud = src + inv_slots[inv.slot_id] = inv + inv.update_icon() + +/datum/hud/human/hidden_inventory_update(mob/viewer) + if(!mymob) + return + var/mob/living/carbon/human/H = mymob + + var/mob/screenmob = viewer || H + + if(screenmob.hud_used.inventory_shown && screenmob.hud_used.hud_shown) + if(H.shoes) + H.shoes.screen_loc = ui_shoes + screenmob.client.screen += H.shoes + if(H.gloves) + H.gloves.screen_loc = ui_gloves + screenmob.client.screen += H.gloves + if(H.ears) + H.ears.screen_loc = ui_ears + screenmob.client.screen += H.ears + if(H.glasses) + H.glasses.screen_loc = ui_glasses + screenmob.client.screen += H.glasses + if(H.w_uniform) + H.w_uniform.screen_loc = ui_iclothing + screenmob.client.screen += H.w_uniform + if(H.wear_suit) + H.wear_suit.screen_loc = ui_oclothing + screenmob.client.screen += H.wear_suit + if(H.wear_mask) + H.wear_mask.screen_loc = ui_mask + screenmob.client.screen += H.wear_mask + if(H.wear_neck) + H.wear_neck.screen_loc = ui_neck + screenmob.client.screen += H.wear_neck + if(H.head) + H.head.screen_loc = ui_head + screenmob.client.screen += H.head + else + if(H.shoes) screenmob.client.screen -= H.shoes + if(H.gloves) screenmob.client.screen -= H.gloves + if(H.ears) screenmob.client.screen -= H.ears + if(H.glasses) screenmob.client.screen -= H.glasses + if(H.w_uniform) screenmob.client.screen -= H.w_uniform + if(H.wear_suit) screenmob.client.screen -= H.wear_suit + if(H.wear_mask) screenmob.client.screen -= H.wear_mask + if(H.wear_neck) screenmob.client.screen -= H.wear_neck + if(H.head) screenmob.client.screen -= H.head + + + +/datum/hud/human/persistant_inventory_update(mob/viewer) + if(!mymob) + return + ..() + var/mob/living/carbon/human/H = mymob + + var/mob/screenmob = viewer || H + + if(screenmob.hud_used) + if(screenmob.hud_used.hud_shown) + if(H.s_store) + H.s_store.screen_loc = ui_sstore1 + screenmob.client.screen += H.s_store + if(H.wear_id) + H.wear_id.screen_loc = ui_id + screenmob.client.screen += H.wear_id + if(H.belt) + H.belt.screen_loc = ui_belt + screenmob.client.screen += H.belt + if(H.back) + H.back.screen_loc = ui_back + screenmob.client.screen += H.back + if(H.l_store) + H.l_store.screen_loc = ui_storage1 + screenmob.client.screen += H.l_store + if(H.r_store) + H.r_store.screen_loc = ui_storage2 + screenmob.client.screen += H.r_store + else + if(H.s_store) + screenmob.client.screen -= H.s_store + if(H.wear_id) + screenmob.client.screen -= H.wear_id + if(H.belt) + screenmob.client.screen -= H.belt + if(H.back) + screenmob.client.screen -= H.back + if(H.l_store) + screenmob.client.screen -= H.l_store + if(H.r_store) + screenmob.client.screen -= H.r_store + + if(hud_version != HUD_STYLE_NOHUD) + for(var/obj/item/I in H.held_items) + I.screen_loc = ui_hand_position(H.get_held_index_of_item(I)) + screenmob.client.screen += I + else + for(var/obj/item/I in H.held_items) + I.screen_loc = null + screenmob.client.screen -= I + + +/mob/living/carbon/human/verb/toggle_hotkey_verbs() + set category = "OOC" + set name = "Toggle hotkey buttons" + set desc = "This disables or enables the user interface buttons which can be used with hotkeys." + + if(hud_used.hotkey_ui_hidden) + client.screen += hud_used.hotkeybuttons + hud_used.hotkey_ui_hidden = 0 + else + client.screen -= hud_used.hotkeybuttons + hud_used.hotkey_ui_hidden = 1 diff --git a/code/_onclick/hud/monkey.dm b/code/_onclick/hud/monkey.dm new file mode 100644 index 0000000..f0ec2ac --- /dev/null +++ b/code/_onclick/hud/monkey.dm @@ -0,0 +1,158 @@ +/datum/hud/monkey/New(mob/living/carbon/monkey/owner, ui_style = 'icons/mob/screen_midnight.dmi') + ..() + var/obj/screen/using + var/obj/screen/inventory/inv_box + + using = new /obj/screen/act_intent() + using.icon = ui_style + using.icon_state = mymob.a_intent + using.screen_loc = ui_acti + static_inventory += using + action_intent = using + + using = new /obj/screen/mov_intent() + using.icon = ui_style + using.icon_state = (mymob.m_intent == "run" ? "running" : "walking") + using.screen_loc = ui_movi + static_inventory += using + + using = new/obj/screen/wheel/talk + using.icon = ui_style + wheels += using + static_inventory += using + + using = new /obj/screen/drop() + using.icon = ui_style + using.screen_loc = ui_drop_throw + static_inventory += using + + build_hand_slots(ui_style) + + using = new /obj/screen/swap_hand() + using.icon = ui_style + using.icon_state = "swap_1_m" //extra wide! + using.screen_loc = ui_swaphand_position(owner,1) + static_inventory += using + + using = new /obj/screen/swap_hand() + using.icon = ui_style + using.icon_state = "swap_2" + using.screen_loc = ui_swaphand_position(owner,2) + static_inventory += using + + inv_box = new /obj/screen/inventory() + inv_box.name = "mask" + inv_box.icon = ui_style + inv_box.icon_state = "mask" +// inv_box.icon_full = "template" + inv_box.screen_loc = ui_monkey_mask + inv_box.slot_id = slot_wear_mask + static_inventory += inv_box + + inv_box = new /obj/screen/inventory() + inv_box.name = "neck" + inv_box.icon = ui_style + inv_box.icon_state = "neck" +// inv_box.icon_full = "template" + inv_box.screen_loc = ui_monkey_neck + inv_box.slot_id = slot_neck + static_inventory += inv_box + + inv_box = new /obj/screen/inventory() + inv_box.name = "head" + inv_box.icon = ui_style + inv_box.icon_state = "head" +// inv_box.icon_full = "template" + inv_box.screen_loc = ui_monkey_head + inv_box.slot_id = slot_head + static_inventory += inv_box + + inv_box = new /obj/screen/inventory() + inv_box.name = "back" + inv_box.icon = ui_style + inv_box.icon_state = "back" + inv_box.icon_full = "template_small" + inv_box.screen_loc = ui_back + inv_box.slot_id = slot_back + static_inventory += inv_box + + throw_icon = new /obj/screen/throw_catch() + throw_icon.icon = ui_style + throw_icon.screen_loc = ui_drop_throw + hotkeybuttons += throw_icon + + internals = new /obj/screen/internals() + infodisplay += internals + + healths = new /obj/screen/healths() + infodisplay += healths + + pull_icon = new /obj/screen/pull() + pull_icon.icon = ui_style + pull_icon.update_icon(mymob) + pull_icon.screen_loc = ui_pull_resist + static_inventory += pull_icon + + lingchemdisplay = new /obj/screen/ling/chems() + infodisplay += lingchemdisplay + + lingstingdisplay = new /obj/screen/ling/sting() + infodisplay += lingstingdisplay + + + zone_select = new /obj/screen/zone_sel() + zone_select.icon = ui_style + zone_select.update_icon(mymob) + static_inventory += zone_select + + mymob.client.screen = list() + + using = new /obj/screen/resist() + using.icon = ui_style + using.screen_loc = ui_pull_resist + hotkeybuttons += using + + for(var/obj/screen/inventory/inv in (static_inventory + toggleable_inventory)) + if(inv.slot_id) + inv.hud = src + inv_slots[inv.slot_id] = inv + inv.update_icon() + +/datum/hud/monkey/persistant_inventory_update() + if(!mymob) + return + var/mob/living/carbon/monkey/M = mymob + + if(hud_shown) + if(M.back) + M.back.screen_loc = ui_back + M.client.screen += M.back + if(M.wear_mask) + M.wear_mask.screen_loc = ui_monkey_mask + M.client.screen += M.wear_mask + if(M.wear_neck) + M.wear_neck.screen_loc = ui_monkey_neck + M.client.screen += M.wear_neck + if(M.head) + M.head.screen_loc = ui_monkey_head + M.client.screen += M.head + else + if(M.back) + M.back.screen_loc = null + if(M.wear_mask) + M.wear_mask.screen_loc = null + if(M.head) + M.head.screen_loc = null + + if(hud_version != HUD_STYLE_NOHUD) + for(var/obj/item/I in M.held_items) + I.screen_loc = ui_hand_position(M.get_held_index_of_item(I)) + M.client.screen += I + else + for(var/obj/item/I in M.held_items) + I.screen_loc = null + M.client.screen -= I + +/mob/living/carbon/monkey/create_mob_hud() + if(client && !hud_used) + hud_used = new /datum/hud/monkey(src, ui_style2icon(client.prefs.UI_style)) diff --git a/code/_onclick/hud/movable_screen_objects.dm b/code/_onclick/hud/movable_screen_objects.dm new file mode 100644 index 0000000..315fce5 --- /dev/null +++ b/code/_onclick/hud/movable_screen_objects.dm @@ -0,0 +1,85 @@ + +////////////////////////// +//Movable Screen Objects// +// By RemieRichards // +////////////////////////// + + +//Movable Screen Object +//Not tied to the grid, places it's center where the cursor is + +/obj/screen/movable + var/snap2grid = FALSE + var/moved = FALSE + +//Snap Screen Object +//Tied to the grid, snaps to the nearest turf + +/obj/screen/movable/snap + snap2grid = TRUE + + +/obj/screen/movable/MouseDrop(over_object, src_location, over_location, src_control, over_control, params) + var/list/PM = params2list(params) + + //No screen-loc information? abort. + if(!PM || !PM["screen-loc"]) + return + + //Split screen-loc up into X+Pixel_X and Y+Pixel_Y + var/list/screen_loc_params = splittext(PM["screen-loc"], ",") + + //Split X+Pixel_X up into list(X, Pixel_X) + var/list/screen_loc_X = splittext(screen_loc_params[1],":") + + //Split Y+Pixel_Y up into list(Y, Pixel_Y) + var/list/screen_loc_Y = splittext(screen_loc_params[2],":") + + if(snap2grid) //Discard Pixel Values + screen_loc = "[screen_loc_X[1]],[screen_loc_Y[1]]" + + else //Normalise Pixel Values (So the object drops at the center of the mouse, not 16 pixels off) + var/pix_X = text2num(screen_loc_X[2]) - 16 + var/pix_Y = text2num(screen_loc_Y[2]) - 16 + screen_loc = "[screen_loc_X[1]]:[pix_X],[screen_loc_Y[1]]:[pix_Y]" + + moved = screen_loc + + +//Debug procs +/client/proc/test_movable_UI() + set category = "Debug" + set name = "Spawn Movable UI Object" + + var/obj/screen/movable/M = new() + M.name = "Movable UI Object" + M.icon_state = "block" + M.maptext = "Movable" + M.maptext_width = 64 + + var/screen_l = input(usr,"Where on the screen? (Formatted as 'X,Y' e.g: '1,1' for bottom left)","Spawn Movable UI Object") as text + if(!screen_l) + return + + M.screen_loc = screen_l + + screen += M + + +/client/proc/test_snap_UI() + set category = "Debug" + set name = "Spawn Snap UI Object" + + var/obj/screen/movable/snap/S = new() + S.name = "Snap UI Object" + S.icon_state = "block" + S.maptext = "Snap" + S.maptext_width = 64 + + var/screen_l = input(usr,"Where on the screen? (Formatted as 'X,Y' e.g: '1,1' for bottom left)","Spawn Snap UI Object") as text + if(!screen_l) + return + + S.screen_loc = screen_l + + screen += S \ No newline at end of file diff --git a/code/_onclick/hud/other_mobs.dm b/code/_onclick/hud/other_mobs.dm new file mode 100644 index 0000000..fa2a4eb --- /dev/null +++ b/code/_onclick/hud/other_mobs.dm @@ -0,0 +1,13 @@ + +/datum/hud/brain/show_hud(version = 0) + if(!ismob(mymob)) + return 0 + if(!mymob.client) + return 0 + mymob.client.screen = list() + mymob.client.screen += mymob.client.void + +/mob/living/brain/create_mob_hud() + if(client && !hud_used) + hud_used = new /datum/hud/brain(src) + diff --git a/code/_onclick/hud/plane_master.dm b/code/_onclick/hud/plane_master.dm new file mode 100644 index 0000000..eda44bd --- /dev/null +++ b/code/_onclick/hud/plane_master.dm @@ -0,0 +1,28 @@ +/obj/screen/plane_master + screen_loc = "CENTER" + icon_state = "blank" + appearance_flags = PLANE_MASTER|NO_CLIENT_COLOR + blend_mode = BLEND_OVERLAY + +/obj/screen/plane_master/New() + if(blend_mode == BLEND_MULTIPLY) + //What is this? Read http://www.byond.com/forum/?post=2141928 + var/image/backdrop = image('icons/mob/screen_gen.dmi', "black") + backdrop.transform = matrix(200, 0, 0, 0, 200, 0) + backdrop.layer = BACKGROUND_LAYER + backdrop.blend_mode = BLEND_OVERLAY + overlays += backdrop + ..() + +/obj/screen/plane_master/game_world + name = "game world plane master" + plane = GAME_PLANE + blend_mode = BLEND_OVERLAY + +/obj/screen/plane_master/lighting + name = "lighting plane master" + plane = LIGHTING_PLANE + blend_mode = BLEND_OVERLAY +// blend_mode = BLEND_MULTIPLY +// color = list(1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,0, 0.1,0.1,0.1,0) + mouse_opacity = 0 diff --git a/code/_onclick/hud/revenanthud.dm b/code/_onclick/hud/revenanthud.dm new file mode 100644 index 0000000..492e9e6 --- /dev/null +++ b/code/_onclick/hud/revenanthud.dm @@ -0,0 +1,10 @@ + +/datum/hud/revenant/New(mob/owner) + ..() + + healths = new /obj/screen/healths/revenant() + infodisplay += healths + +/mob/living/simple_animal/revenant/create_mob_hud() + if(client && !hud_used) + hud_used = new /datum/hud/revenant(src) diff --git a/code/_onclick/hud/robot.dm b/code/_onclick/hud/robot.dm new file mode 100644 index 0000000..4daf58b --- /dev/null +++ b/code/_onclick/hud/robot.dm @@ -0,0 +1,271 @@ +/obj/screen/robot + icon = 'icons/mob/screen_cyborg.dmi' + +/obj/screen/robot/module + name = "cyborg module" + icon_state = "nomod" + +/obj/screen/robot/Click() + if(isobserver(usr)) + return 1 + +/obj/screen/robot/module/Click() + if(..()) + return + var/mob/living/silicon/robot/R = usr + if(R.module) + R.hud_used.toggle_show_robot_modules() + return 1 + R.pick_module() + +/obj/screen/robot/module1 + name = "module1" + icon_state = "inv1" + +/obj/screen/robot/module1/Click() + if(..()) + return + var/mob/living/silicon/robot/R = usr + R.toggle_module(1) + +/obj/screen/robot/module2 + name = "module2" + icon_state = "inv2" + +/obj/screen/robot/module2/Click() + if(..()) + return + var/mob/living/silicon/robot/R = usr + R.toggle_module(2) + +/obj/screen/robot/module3 + name = "module3" + icon_state = "inv3" + +/obj/screen/robot/module3/Click() + if(..()) + return + var/mob/living/silicon/robot/R = usr + R.toggle_module(3) + +/obj/screen/robot/radio + name = "radio" + icon_state = "radio" + +/obj/screen/robot/radio/Click() + if(..()) + return + var/mob/living/silicon/robot/R = usr + R.radio.interact(R) + +/obj/screen/robot/store + name = "store" + icon_state = "store" + +/obj/screen/robot/store/Click() + if(..()) + return + var/mob/living/silicon/robot/R = usr + R.uneq_active() + +/obj/screen/robot/lamp + name = "headlamp" + icon_state = "lamp0" + +/obj/screen/robot/lamp/Click() + if(..()) + return + var/mob/living/silicon/robot/R = usr + R.control_headlamp() + +/obj/screen/robot/thrusters + name = "ion thrusters" + icon_state = "ionpulse0" + +/obj/screen/robot/thrusters/Click() + if(..()) + return + var/mob/living/silicon/robot/R = usr + R.toggle_ionpulse() + +/datum/hud/robot/New(mob/owner) + ..() + var/mob/living/silicon/robot/mymobR = mymob + var/obj/screen/using + + using = new/obj/screen/wheel/talk + using.screen_loc = ui_borg_talk_wheel + wheels += using + static_inventory += using + +//Radio + using = new /obj/screen/robot/radio() + using.screen_loc = ui_borg_radio + static_inventory += using + +//Module select + using = new /obj/screen/robot/module1() + using.screen_loc = ui_inv1 + static_inventory += using + mymobR.inv1 = using + + using = new /obj/screen/robot/module2() + using.screen_loc = ui_inv2 + static_inventory += using + mymobR.inv2 = using + + using = new /obj/screen/robot/module3() + using.screen_loc = ui_inv3 + static_inventory += using + mymobR.inv3 = using + +//End of module select + +//Photography stuff + using = new /obj/screen/ai/image_take() + using.screen_loc = ui_borg_camera + static_inventory += using + + using = new /obj/screen/ai/image_view() + using.screen_loc = ui_borg_album + static_inventory += using + +//Sec/Med HUDs + using = new /obj/screen/ai/sensors() + using.screen_loc = ui_borg_sensor + static_inventory += using + +//Headlamp control + using = new /obj/screen/robot/lamp() + using.screen_loc = ui_borg_lamp + static_inventory += using + mymobR.lamp_button = using + +//Thrusters + using = new /obj/screen/robot/thrusters() + using.screen_loc = ui_borg_thrusters + static_inventory += using + mymobR.thruster_button = using + +//Intent + using = new /obj/screen/act_intent/robot() + using.icon_state = mymob.a_intent + static_inventory += using + action_intent = using + +//Health + healths = new /obj/screen/healths/robot() + infodisplay += healths + +//Installed Module + mymobR.hands = new /obj/screen/robot/module() + mymobR.hands.screen_loc = ui_borg_module + static_inventory += mymobR.hands + +//Store + module_store_icon = new /obj/screen/robot/store() + module_store_icon.screen_loc = ui_borg_store + + pull_icon = new /obj/screen/pull() + pull_icon.icon = 'icons/mob/screen_cyborg.dmi' + pull_icon.update_icon(mymob) + pull_icon.screen_loc = ui_borg_pull + hotkeybuttons += pull_icon + + + zone_select = new /obj/screen/zone_sel/robot() + zone_select.update_icon(mymob) + static_inventory += zone_select + + +/datum/hud/proc/toggle_show_robot_modules() + if(!iscyborg(mymob)) return + + var/mob/living/silicon/robot/R = mymob + + R.shown_robot_modules = !R.shown_robot_modules + update_robot_modules_display() + +/datum/hud/proc/update_robot_modules_display(mob/viewer) + if(!iscyborg(mymob)) return + + var/mob/living/silicon/robot/R = mymob + + var/mob/screenmob = viewer || R + + if(!R.module) + return + + if(R.shown_robot_modules && screenmob.hud_used.hud_shown) + //Modules display is shown + screenmob.client.screen += module_store_icon //"store" icon + + if(!R.module.modules) + usr << "Selected module has no modules to select" + return + + if(!R.robot_modules_background) + return + + var/display_rows = Ceiling(length(R.module.get_inactive_modules()) / 8) + R.robot_modules_background.screen_loc = "CENTER-4:16,SOUTH+1:7 to CENTER+3:16,SOUTH+[display_rows]:7" + screenmob.client.screen += R.robot_modules_background + + var/x = -4 //Start at CENTER-4,SOUTH+1 + var/y = 1 + + for(var/atom/movable/A in R.module.get_inactive_modules()) + //Module is not currently active + screenmob.client.screen += A + if(x < 0) + A.screen_loc = "CENTER[x]:16,SOUTH+[y]:7" + else + A.screen_loc = "CENTER+[x]:16,SOUTH+[y]:7" + A.layer = ABOVE_HUD_LAYER + A.plane = ABOVE_HUD_PLANE + + x++ + if(x == 4) + x = -4 + y++ + + else + //Modules display is hidden + screenmob.client.screen -= module_store_icon //"store" icon + + for(var/atom/A in R.module.get_inactive_modules()) + //Module is not currently active + screenmob.client.screen -= A + R.shown_robot_modules = 0 + screenmob.client.screen -= R.robot_modules_background + +/mob/living/silicon/robot/create_mob_hud() + if(client && !hud_used) + hud_used = new /datum/hud/robot(src) + + +/datum/hud/robot/persistant_inventory_update(mob/viewer) + if(!mymob) + return + var/mob/living/silicon/robot/R = mymob + + var/mob/screenmob = viewer || R + + if(screenmob.hud_used) + if(screenmob.hud_used.hud_shown) + if(R.module_state_1) + R.module_state_1.screen_loc = ui_inv1 + screenmob.client.screen += R.module_state_1 + if(R.module_state_2) + R.module_state_2.screen_loc = ui_inv2 + screenmob.client.screen += R.module_state_2 + if(R.module_state_3) + R.module_state_3.screen_loc = ui_inv3 + screenmob.client.screen += R.module_state_3 + else + if(R.module_state_1) + screenmob.client.screen -= R.module_state_1 + if(R.module_state_2) + screenmob.client.screen -= R.module_state_2 + if(R.module_state_3) + screenmob.client.screen -= R.module_state_3 diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm new file mode 100644 index 0000000..d34ba67 --- /dev/null +++ b/code/_onclick/hud/screen_objects.dm @@ -0,0 +1,652 @@ +/* + Screen objects + Todo: improve/re-implement + + Screen objects are only used for the hud and should not appear anywhere "in-game". + They are used with the client/screen list and the screen_loc var. + For more information, see the byond documentation on the screen_loc and screen vars. +*/ +/obj/screen + name = "" + icon = 'icons/mob/screen_gen.dmi' + layer = ABOVE_HUD_LAYER + plane = ABOVE_HUD_PLANE + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF + appearance_flags = APPEARANCE_UI + var/obj/master = null //A reference to the object in the slot. Grabs or items, generally. + var/datum/hud/hud = null // A reference to the owner HUD, if any. + +/obj/screen/take_damage() + return + +/obj/screen/Destroy() + master = null + return ..() + + +/obj/screen/text + icon = null + icon_state = null + mouse_opacity = 0 + screen_loc = "CENTER-7,CENTER-7" + maptext_height = 480 + maptext_width = 480 + +/obj/screen/swap_hand + layer = HUD_LAYER + plane = HUD_PLANE + name = "swap hand" + +/obj/screen/swap_hand/Click() + // At this point in client Click() code we have passed the 1/10 sec check and little else + // We don't even know if it's a middle click + if(world.time <= usr.next_move) + return 1 + + if(usr.incapacitated()) + return 1 + + if(ismob(usr)) + var/mob/M = usr + M.swap_hand() + return 1 + +/obj/screen/inventory/craft + name = "crafting menu" + icon = 'icons/mob/screen_midnight.dmi' + icon_state = "craft" + screen_loc = ui_crafting + +/obj/screen/inventory/craft/Click() + var/mob/living/M = usr + if(isobserver(usr)) + return + M.OpenCraftingMenu() + +/obj/screen/inventory/area_creator + name = "create new area" + icon = 'icons/mob/screen_midnight.dmi' + icon_state = "area_edit" + screen_loc = ui_building + +/obj/screen/inventory/area_creator/Click() + if(usr.incapacitated()) + return 1 + var/area/A = get_area(usr) + if(!A.outdoors) + usr << "There is already a defined structure here." + return 1 + create_area(usr) + +/obj/screen/inventory + var/slot_id // The indentifier for the slot. It has nothing to do with ID cards. + var/icon_empty // Icon when empty. For now used only by humans. + var/icon_full // Icon when contains an item. For now used only by humans. + layer = HUD_LAYER + plane = HUD_PLANE + +/obj/screen/inventory/Click() + // At this point in client Click() code we have passed the 1/10 sec check and little else + // We don't even know if it's a middle click + if(world.time <= usr.next_move) + return 1 + + if(usr.incapacitated()) + return 1 + if (istype(usr.loc,/obj/mecha)) // stops inventory actions in a mech + return 1 + if(usr.attack_ui(slot_id)) + usr.update_inv_hands() + return 1 + +/obj/screen/inventory/update_icon() + if(!icon_empty) + icon_empty = icon_state + + if(hud && hud.mymob && slot_id && icon_full) + if(hud.mymob.get_item_by_slot(slot_id)) + icon_state = icon_full + else + icon_state = icon_empty + +/obj/screen/inventory/hand + var/image/active_overlay + var/image/handcuff_overlay + var/image/blocked_overlay + var/held_index = 0 + +/obj/screen/inventory/hand/update_icon() + ..() + + if(!active_overlay) + active_overlay = image("icon"=icon, "icon_state"="hand_active") + if(!handcuff_overlay) + var/state = (!(held_index % 2)) ? "markus" : "gabrielle" + handcuff_overlay = image("icon"='icons/mob/screen_gen.dmi', "icon_state"=state) + if(!blocked_overlay) + blocked_overlay = image("icon"='icons/mob/screen_gen.dmi', "icon_state"="blocked") + + cut_overlays() + + if(hud && hud.mymob) + if(iscarbon(hud.mymob)) + var/mob/living/carbon/C = hud.mymob + if(C.handcuffed) + add_overlay(handcuff_overlay) + + if(held_index) + if(!C.has_hand_for_held_index(held_index)) + add_overlay(blocked_overlay) + + if(held_index == hud.mymob.active_hand_index) + add_overlay(active_overlay) + + +/obj/screen/inventory/hand/Click() + // At this point in client Click() code we have passed the 1/10 sec check and little else + // We don't even know if it's a middle click + if(world.time <= usr.next_move) + return 1 + if(usr.incapacitated()) + return 1 + if (istype(usr.loc,/obj/mecha)) // stops inventory actions in a mech + return 1 + + if(ismob(usr)) + var/mob/M = usr + M.swap_hand(held_index) + return 1 + +/obj/screen/close + name = "close" + +/obj/screen/close/Click() + if(istype(master, /obj/item/weapon/storage)) + var/obj/item/weapon/storage/S = master + S.close(usr) + return 1 + + +/obj/screen/drop + name = "drop" + icon = 'icons/mob/screen_midnight.dmi' + icon_state = "act_drop" + layer = HUD_LAYER + plane = HUD_PLANE + +/obj/screen/drop/Click() + usr.drop_item_v() + +/obj/screen/act_intent + name = "intent" + icon_state = "help" + screen_loc = ui_acti + +/obj/screen/act_intent/Click(location, control, params) + if(ishuman(usr) && (usr.client.prefs.toggles & INTENT_STYLE)) + + var/_x = text2num(params2list(params)["icon-x"]) + var/_y = text2num(params2list(params)["icon-y"]) + + if(_x<=16 && _y<=16) + usr.a_intent_change("harm") + + else if(_x<=16 && _y>=17) + usr.a_intent_change("help") + + else if(_x>=17 && _y<=16) + usr.a_intent_change("grab") + + else if(_x>=17 && _y>=17) + usr.a_intent_change("disarm") + + else + usr.a_intent_change("right") + +/obj/screen/act_intent/alien + icon = 'icons/mob/screen_alien.dmi' + screen_loc = ui_movi + +/obj/screen/act_intent/robot + icon = 'icons/mob/screen_cyborg.dmi' + screen_loc = ui_borg_intents + +/obj/screen/internals + name = "toggle internals" + icon_state = "internal0" + screen_loc = ui_internal + +/obj/screen/internals/Click() + if(!iscarbon(usr)) + return + var/mob/living/carbon/C = usr + if(C.incapacitated()) + return + + if(C.internal) + C.internal = null + C << "You are no longer running on internals." + icon_state = "internal0" + else + if(!C.getorganslot("breathing_tube")) + if(!istype(C.wear_mask, /obj/item/clothing/mask)) + C << "You are not wearing an internals mask!" + return 1 + else + var/obj/item/clothing/mask/M = C.wear_mask + if(M.mask_adjusted) // if mask on face but pushed down + M.adjustmask(C) // adjust it back + if( !(M.flags & MASKINTERNALS) ) + C << "You are not wearing an internals mask!" + return + + var/obj/item/I = C.is_holding_item_of_type(/obj/item/weapon/tank) + if(I) + C << "You are now running on internals from the [I] on your [C.get_held_index_name(C.get_held_index_of_item(I))]." + C.internal = I + else if(ishuman(C)) + var/mob/living/carbon/human/H = C + if(istype(H.s_store, /obj/item/weapon/tank)) + H << "You are now running on internals from the [H.s_store] on your [H.wear_suit]." + H.internal = H.s_store + else if(istype(H.belt, /obj/item/weapon/tank)) + H << "You are now running on internals from the [H.belt] on your belt." + H.internal = H.belt + else if(istype(H.l_store, /obj/item/weapon/tank)) + H << "You are now running on internals from the [H.l_store] in your left pocket." + H.internal = H.l_store + else if(istype(H.r_store, /obj/item/weapon/tank)) + H << "You are now running on internals from the [H.r_store] in your right pocket." + H.internal = H.r_store + + //Seperate so CO2 jetpacks are a little less cumbersome. + if(!C.internal && istype(C.back, /obj/item/weapon/tank)) + C << "You are now running on internals from the [C.back] on your back." + C.internal = C.back + + if(C.internal) + icon_state = "internal1" + else + C << "You don't have an oxygen tank!" + return + C.update_action_buttons_icon() + +/obj/screen/mov_intent + name = "run/walk toggle" + icon = 'icons/mob/screen_midnight.dmi' + icon_state = "running" + +/obj/screen/mov_intent/Click() + toggle(usr) + +/obj/screen/mov_intent/proc/toggle(mob/user) + if(isobserver(user)) + return + switch(user.m_intent) + if("run") + user.m_intent = "walk" + icon_state = "walking" + if("walk") + user.m_intent = "run" + icon_state = "running" + user.update_icons() + +/obj/screen/pull + name = "stop pulling" + icon = 'icons/mob/screen_midnight.dmi' + icon_state = "pull" + +/obj/screen/pull/Click() + if(isobserver(usr)) + return + usr.stop_pulling() + +/obj/screen/pull/update_icon(mob/mymob) + if(!mymob) return + if(mymob.pulling) + icon_state = "pull" + else + icon_state = "pull0" + +/obj/screen/resist + name = "resist" + icon = 'icons/mob/screen_midnight.dmi' + icon_state = "act_resist" + layer = HUD_LAYER + plane = HUD_PLANE + +/obj/screen/resist/Click() + if(isliving(usr)) + var/mob/living/L = usr + L.resist() + +/obj/screen/storage + name = "storage" + +/obj/screen/storage/Click(location, control, params) + if(world.time <= usr.next_move) + return 1 + if(usr.stat || usr.paralysis || usr.stunned || usr.weakened) + return 1 + if (istype(usr.loc,/obj/mecha)) // stops inventory actions in a mech + return 1 + if(master) + var/obj/item/I = usr.get_active_held_item() + if(I) + master.attackby(I, usr, params) + return 1 + +/obj/screen/throw_catch + name = "throw/catch" + icon = 'icons/mob/screen_midnight.dmi' + icon_state = "act_throw_off" + +/obj/screen/throw_catch/Click() + if(iscarbon(usr)) + var/mob/living/carbon/C = usr + C.toggle_throw_mode() + +/obj/screen/zone_sel + name = "damage zone" + icon_state = "zone_sel" + screen_loc = ui_zonesel + var/selecting = "chest" + +/obj/screen/zone_sel/Click(location, control,params) + if(isobserver(usr)) + return + + var/list/PL = params2list(params) + var/icon_x = text2num(PL["icon-x"]) + var/icon_y = text2num(PL["icon-y"]) + var/choice + + switch(icon_y) + if(1 to 9) //Legs + switch(icon_x) + if(10 to 15) + choice = "r_leg" + if(17 to 22) + choice = "l_leg" + else + return 1 + if(10 to 13) //Hands and groin + switch(icon_x) + if(8 to 11) + choice = "r_arm" + if(12 to 20) + choice = "groin" + if(21 to 24) + choice = "l_arm" + else + return 1 + if(14 to 22) //Chest and arms to shoulders + switch(icon_x) + if(8 to 11) + choice = "r_arm" + if(12 to 20) + choice = "chest" + if(21 to 24) + choice = "l_arm" + else + return 1 + if(23 to 30) //Head, but we need to check for eye or mouth + if(icon_x in 12 to 20) + choice = "head" + switch(icon_y) + if(23 to 24) + if(icon_x in 15 to 17) + choice = "mouth" + if(26) //Eyeline, eyes are on 15 and 17 + if(icon_x in 14 to 18) + choice = "eyes" + if(25 to 27) + if(icon_x in 15 to 17) + choice = "eyes" + + return set_selected_zone(choice, usr) + +/obj/screen/zone_sel/proc/set_selected_zone(choice, mob/user) + if(isobserver(user)) + return + + if(choice != selecting) + selecting = choice + update_icon(usr) + return 1 + +/obj/screen/zone_sel/update_icon(mob/user) + cut_overlays() + add_overlay(image('icons/mob/screen_gen.dmi', "[selecting]")) + user.zone_selected = selecting + +/obj/screen/zone_sel/alien + icon = 'icons/mob/screen_alien.dmi' + +/obj/screen/zone_sel/alien/update_icon(mob/user) + cut_overlays() + add_overlay(image('icons/mob/screen_alien.dmi', "[selecting]")) + user.zone_selected = selecting + +/obj/screen/zone_sel/robot + icon = 'icons/mob/screen_cyborg.dmi' + + +/obj/screen/flash + name = "flash" + icon_state = "blank" + blend_mode = BLEND_ADD + screen_loc = "WEST,SOUTH to EAST,NORTH" + layer = FLASH_LAYER + plane = FULLSCREEN_PLANE + +/obj/screen/damageoverlay + icon = 'icons/mob/screen_full.dmi' + icon_state = "oxydamageoverlay0" + name = "dmg" + blend_mode = BLEND_MULTIPLY + screen_loc = "CENTER-7,CENTER-7" + mouse_opacity = 0 + layer = UI_DAMAGE_LAYER + plane = FULLSCREEN_PLANE + +/obj/screen/healths + name = "health" + icon_state = "health0" + screen_loc = ui_health + +/obj/screen/healths/alien + icon = 'icons/mob/screen_alien.dmi' + screen_loc = ui_alien_health + +/obj/screen/healths/robot + icon = 'icons/mob/screen_cyborg.dmi' + screen_loc = ui_borg_health + +/obj/screen/healths/deity + name = "Nexus Health" + icon_state = "deity_nexus" + screen_loc = ui_deityhealth + +/obj/screen/healths/blob + name = "blob health" + icon_state = "block" + screen_loc = ui_internal + mouse_opacity = 0 + +/obj/screen/healths/blob/naut + name = "health" + icon = 'icons/mob/blob.dmi' + icon_state = "nauthealth" + +/obj/screen/healths/blob/naut/core + name = "overmind health" + screen_loc = ui_health + icon_state = "corehealth" + +/obj/screen/healths/guardian + name = "summoner health" + icon = 'icons/mob/guardian.dmi' + icon_state = "base" + screen_loc = ui_health + mouse_opacity = 0 + +/obj/screen/healths/clock + icon = 'icons/mob/actions.dmi' + icon_state = "bg_clock" + screen_loc = ui_health + mouse_opacity = 0 + +/obj/screen/healths/clock/gear + icon = 'icons/mob/clockwork_mobs.dmi' + icon_state = "bg_gear" + screen_loc = ui_internal + +/obj/screen/healths/revenant + name = "essence" + icon = 'icons/mob/actions.dmi' + icon_state = "bg_revenant" + screen_loc = ui_health + mouse_opacity = 0 + +/obj/screen/healthdoll + name = "health doll" + screen_loc = ui_healthdoll + + + +/obj/screen/wheel + name = "wheel" + layer = HUD_LAYER + plane = HUD_PLANE + icon_state = "" + screen_loc = null //if you make a new wheel, remember to give it a screen_loc + var/list/buttons_names = list() //list of the names for each button, its length is the amount of buttons. + var/toggled = 0 //wheel is hidden/shown + var/wheel_buttons_type //the type of buttons used with this wheel. + var/list/buttons_list = list() + +/obj/screen/wheel/New() + ..() + build_options() + + +//we create the buttons for the wheel and place them in a square spiral fashion. +/obj/screen/wheel/proc/build_options() + var/obj/screen/wheel_button/close_wheel/CW = new () + buttons_list += CW //the close option + CW.wheel = src + + var/list/offset_x_list = list() + var/list/offset_y_list = list() + var/num = 1 + var/N = 1 + var/M = 0 + var/sign = -1 + my_loop: + while(offset_y_list.len < buttons_names.len) + for(var/i=1, i<=num, i++) + offset_y_list += N + offset_x_list += M + if(offset_y_list.len == buttons_names.len) + break my_loop + if(N != 0) + N = 0 + M = -sign + else + N = sign + M = 0 + sign = -sign + num++ + + var/screenx = 8 + var/screeny = 8 + for(var/i = 1, i <= buttons_names.len, i++) + var/obj/screen/wheel_button/WB = new wheel_buttons_type() + WB.wheel = src + buttons_list += WB + screenx += offset_x_list[i] + screeny += offset_y_list[i] + WB.screen_loc = "[screenx], [screeny]" + set_button(WB, i) + +/obj/screen/wheel/proc/set_button(obj/screen/wheel_button/WB, button_number) + WB.name = buttons_names[button_number] + return + +/obj/screen/wheel/Destroy() + for(var/obj/screen/S in buttons_list) + qdel(S) + return ..() + +/obj/screen/wheel/Click() + if(world.time <= usr.next_move) + return + if(usr.stat) + return + if(isliving(usr)) + var/mob/living/L = usr + if(toggled) + L.client.screen -= buttons_list + else + L.client.screen |= buttons_list + toggled = !toggled + + +/obj/screen/wheel/talk + name = "talk wheel" + icon_state = "talk_wheel" + screen_loc = "11:6,2:-11" + wheel_buttons_type = /obj/screen/wheel_button/talk + buttons_names = list("help","hello","bye","stop","thanks","come","out", "yes", "no") + var/list/word_messages = list(list("Help!","Help me!"), list("Hello.", "Hi."), list("Bye.", "Goodbye."),\ + list("Stop!", "Halt!"), list("Thanks.", "Thanks!", "Thank you."), \ + list("Come.", "Follow me."), list("Out!", "Go away!", "Get out!"), \ + list("Yes.", "Affirmative."), list("No.", "Negative")) + +/obj/screen/wheel/talk/set_button(obj/screen/wheel_button/WB, button_number) + ..() + var/obj/screen/wheel_button/talk/T = WB //we already know what type the button is exactly. + T.icon_state = "talk_[T.name]" + T.word_messages = word_messages[button_number] + + +/obj/screen/wheel_button + name = "default wheel button" + screen_loc = "8,8" + layer = HUD_LAYER + plane = HUD_PLANE + mouse_opacity = 2 + var/obj/screen/wheel/wheel + +/obj/screen/wheel_button/Destroy() + wheel = null + return ..() + +/obj/screen/wheel_button/close_wheel + name = "close wheel" + icon_state = "x3" + +/obj/screen/wheel_button/close_wheel/Click() + if(isliving(usr)) + var/mob/living/L = usr + L.client.screen -= wheel.buttons_list + wheel.toggled = !wheel.toggled + + +/obj/screen/wheel_button/talk + name = "talk option" + icon_state = "talk_help" + var/talk_cooldown = 0 + var/list/word_messages = list() + +/obj/screen/wheel_button/talk/Click(location, control,params) + if(isliving(usr)) + var/mob/living/L = usr + if(L.stat) + return + + if(word_messages.len && talk_cooldown < world.time) + talk_cooldown = world.time + 10 + L.say(pick(word_messages)) + diff --git a/code/_onclick/hud/swarmer.dm b/code/_onclick/hud/swarmer.dm new file mode 100644 index 0000000..92a98e1 --- /dev/null +++ b/code/_onclick/hud/swarmer.dm @@ -0,0 +1,97 @@ + + +/obj/screen/swarmer + icon = 'icons/mob/swarmer.dmi' + +/obj/screen/swarmer/FabricateTrap + icon_state = "ui_trap" + name = "Create trap (Costs 5 Resources)" + desc = "Creates a trap that will nonlethally shock any non-swarmer that attempts to cross it. (Costs 5 resources)" + +/obj/screen/swarmer/FabricateTrap/Click() + if(isswarmer(usr)) + var/mob/living/simple_animal/hostile/swarmer/S = usr + S.CreateTrap() + +/obj/screen/swarmer/Barricade + icon_state = "ui_barricade" + name = "Create barricade (Costs 5 Resources)" + desc = "Creates a destructible barricade that will stop any non swarmer from passing it. Also allows disabler beams to pass through. (Costs 5 resources)" + +/obj/screen/swarmer/Barricade/Click() + if(isswarmer(usr)) + var/mob/living/simple_animal/hostile/swarmer/S = usr + S.CreateBarricade() + +/obj/screen/swarmer/Replicate + icon_state = "ui_replicate" + name = "Replicate (Costs 50 Resources)" + desc = "Creates a another of our kind." + +/obj/screen/swarmer/Replicate/Click() + if(isswarmer(usr)) + var/mob/living/simple_animal/hostile/swarmer/S = usr + S.CreateSwarmer() + +/obj/screen/swarmer/RepairSelf + icon_state = "ui_self_repair" + name = "Repair self" + desc = "Repairs damage to our body." + +/obj/screen/swarmer/RepairSelf/Click() + if(isswarmer(usr)) + var/mob/living/simple_animal/hostile/swarmer/S = usr + S.RepairSelf() + +/obj/screen/swarmer/ToggleLight + icon_state = "ui_light" + name = "Toggle light" + desc = "Toggles our inbuilt light on or off." + +/obj/screen/swarmer/ToggleLight/Click() + if(isswarmer(usr)) + var/mob/living/simple_animal/hostile/swarmer/S = usr + S.ToggleLight() + +/obj/screen/swarmer/ContactSwarmers + icon_state = "ui_contact_swarmers" + name = "Contact swarmers" + desc = "Sends a message to all other swarmers, should they exist." + +/obj/screen/swarmer/ContactSwarmers/Click() + if(isswarmer(usr)) + var/mob/living/simple_animal/hostile/swarmer/S = usr + S.ContactSwarmers() + +/datum/hud/swarmer/New(mob/owner) + ..() + var/obj/screen/using + + using = new /obj/screen/swarmer/FabricateTrap() + using.screen_loc = ui_hand_position(2) + static_inventory += using + + using = new /obj/screen/swarmer/Barricade() + using.screen_loc = ui_hand_position(1) + static_inventory += using + + using = new /obj/screen/swarmer/Replicate() + using.screen_loc = ui_zonesel + static_inventory += using + + using = new /obj/screen/swarmer/RepairSelf() + using.screen_loc = ui_storage1 + static_inventory += using + + using = new /obj/screen/swarmer/ToggleLight() + using.screen_loc = ui_back + static_inventory += using + + using = new /obj/screen/swarmer/ContactSwarmers() + using.screen_loc = ui_inventory + static_inventory += using + + +/mob/living/simple_animal/hostile/swarmer/create_mob_hud() + if(client && !hud_used) + hud_used = new /datum/hud/swarmer(src) \ No newline at end of file diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm new file mode 100644 index 0000000..7d694d4 --- /dev/null +++ b/code/_onclick/item_attack.dm @@ -0,0 +1,110 @@ + +// Called when the item is in the active hand, and clicked; alternately, there is an 'activate held object' verb or you can hit pagedown. +/obj/item/proc/attack_self(mob/user) + return + +// No comment +/atom/proc/attackby(obj/item/W, mob/user, params) + return + +/obj/attackby(obj/item/I, mob/living/user, params) + return I.attack_obj(src, user) + +/mob/living/attackby(obj/item/I, mob/user, params) + user.changeNext_move(CLICK_CD_MELEE) + if(user.a_intent == "harm" && stat == DEAD && butcher_results) //can we butcher it? + var/sharpness = I.is_sharp() + if(sharpness) + user << "You begin to butcher [src]..." + playsound(loc, 'sound/weapons/slice.ogg', 50, 1, -1) + if(do_mob(user, src, 80/sharpness)) + harvest(user) + return 1 + return I.attack(src, user) + + +/obj/item/proc/attack(mob/living/M, mob/living/user) + if(flags & NOBLUDGEON) + return + if(!force) + playsound(loc, 'sound/weapons/tap.ogg', get_clamped_volume(), 1, -1) + else if(hitsound) + playsound(loc, hitsound, get_clamped_volume(), 1, -1) + + user.lastattacked = M + M.lastattacker = user + + user.do_attack_animation(M) + M.attacked_by(src, user) + + add_logs(user, M, "attacked", src.name, "(INTENT: [uppertext(user.a_intent)]) (DAMTYPE: [uppertext(damtype)])") + add_fingerprint(user) + + +//the equivalent of the standard version of attack() but for object targets. +/obj/item/proc/attack_obj(obj/O, mob/living/user) + if(flags & NOBLUDGEON) + return + user.changeNext_move(CLICK_CD_MELEE) + user.do_attack_animation(O) + O.attacked_by(src, user) + + + +/atom/movable/proc/attacked_by() + return + +/obj/attacked_by(obj/item/I, mob/living/user) + if(I.force) + visible_message("[user] has hit [src] with [I]!", null, null, COMBAT_MESSAGE_RANGE) + //only witnesses close by and the victim see a hit message. + take_damage(I.force, I.damtype, "melee", 1) + +/mob/living/attacked_by(obj/item/I, mob/living/user) + send_item_attack_message(I, user) + if(I.force) + apply_damage(I.force, I.damtype) + if(I.damtype == BRUTE) + if(prob(33)) + I.add_mob_blood(src) + var/turf/location = get_turf(src) + add_splatter_floor(location) + if(get_dist(user, src) <= 1) //people with TK won't get smeared with blood + user.add_mob_blood(src) + return TRUE //successful attack + +/mob/living/simple_animal/attacked_by(obj/item/I, mob/living/user) + if(I.force < force_threshold || I.damtype == STAMINA) + playsound(loc, 'sound/weapons/tap.ogg', I.get_clamped_volume(), 1, -1) + else + return ..() + +// Proximity_flag is 1 if this afterattack was called on something adjacent, in your square, or on your person. +// Click parameters is the params string from byond Click() code, see that documentation. +/obj/item/proc/afterattack(atom/target, mob/user, proximity_flag, click_parameters) + return + + +/obj/item/proc/get_clamped_volume() + if(w_class) + if(force) + return Clamp((force + w_class) * 4, 30, 100)// Add the item's force to its weight class and multiply by 4, then clamp the value between 30 and 100 + else + return Clamp(w_class * 6, 10, 100) // Multiply the item's weight class by 6, then clamp the value between 10 and 100 + +/mob/living/proc/send_item_attack_message(obj/item/I, mob/living/user, hit_area) + var/message_verb = "attacked" + if(I.attack_verb && I.attack_verb.len) + message_verb = "[pick(I.attack_verb)]" + else if(!I.force) + return + var/message_hit_area = "" + if(hit_area) + message_hit_area = " in the [hit_area]" + var/attack_message = "[src] has been [message_verb][message_hit_area] with [I]." + if(user in viewers(src, null)) + attack_message = "[user] has [message_verb] [src][message_hit_area] with [I]!" + visible_message("[attack_message]", \ + "[attack_message]", null, COMBAT_MESSAGE_RANGE) + return 1 + diff --git a/code/_onclick/observer.dm b/code/_onclick/observer.dm new file mode 100644 index 0000000..e452c91 --- /dev/null +++ b/code/_onclick/observer.dm @@ -0,0 +1,100 @@ +/mob/dead/observer/DblClickOn(var/atom/A, var/params) + if(client.click_intercept) + if(call(client.click_intercept,"InterceptClickOn")(src,params,A)) + return + + if(can_reenter_corpse && mind && mind.current) + if(A == mind.current || (mind.current in A)) // double click your corpse or whatever holds it + reenter_corpse() // (cloning scanner, body bag, closet, mech, etc) + return // seems legit. + + // Things you might plausibly want to follow + if(istype(A, /atom/movable)) + ManualFollow(A) + + // Otherwise jump + else if(A.loc) + loc = get_turf(A) + +/mob/dead/observer/ClickOn(var/atom/A, var/params) + if(client.click_intercept) + if(call(client.click_intercept,"InterceptClickOn")(src,params,A)) + return + + var/list/modifiers = params2list(params) + if(modifiers["shift"] && modifiers["middle"]) + ShiftMiddleClickOn(A) + return + if(modifiers["middle"]) + MiddleClickOn(A) + return + if(modifiers["shift"]) + ShiftClickOn(A) + return + if(modifiers["alt"]) + AltClickOn(A) + return + if(modifiers["ctrl"]) + CtrlClickOn(A) + return + + if(world.time <= next_move) + return + // You are responsible for checking config.ghost_interaction when you override this function + // Not all of them require checking, see below + A.attack_ghost(src) + +// Oh by the way this didn't work with old click code which is why clicking shit didn't spam you +/atom/proc/attack_ghost(mob/dead/observer/user) + if(user.client) + if(IsAdminGhost(user)) + attack_ai(user) + if(user.client.prefs.inquisitive_ghost) + user.examinate(src) + +// --------------------------------------- +// And here are some good things for free: +// Now you can click through portals, wormholes, gateways, and teleporters while observing. -Sayu + +/obj/machinery/teleport/hub/attack_ghost(mob/user) + var/atom/l = loc + var/obj/machinery/computer/teleporter/com = locate(/obj/machinery/computer/teleporter, locate(l.x - 2, l.y, l.z)) + if(com && com.locked) + user.forceMove(get_turf(com.locked)) + +/obj/effect/portal/attack_ghost(mob/user) + if(target) + user.forceMove(get_turf(target)) + +/obj/machinery/gateway/centerstation/attack_ghost(mob/user) + if(awaygate) + user.forceMove(awaygate.loc) + else + user << "[src] has no destination." + +/obj/machinery/gateway/centeraway/attack_ghost(mob/user) + if(stationgate) + user.forceMove(stationgate.loc) + else + user << "[src] has no destination." + +/obj/item/weapon/storage/attack_ghost(mob/user) + orient2hud(user) + show_to(user) + +/obj/machinery/teleport/hub/attack_ghost(mob/user) + if(power_station && power_station.engaged && power_station.teleporter_console && power_station.teleporter_console.target) + user.forceMove(get_turf(power_station.teleporter_console.target)) + +// ------------------------------------------- +// This was supposed to be used by adminghosts +// I think it is a *terrible* idea +// but I'm leaving it here anyway +// commented out, of course. +/* +/atom/proc/attack_admin(mob/user as mob) + if(!user || !user.client || !user.client.holder) + return + attack_hand(user) + +*/ diff --git a/code/_onclick/other_mobs.dm b/code/_onclick/other_mobs.dm new file mode 100644 index 0000000..13348a9 --- /dev/null +++ b/code/_onclick/other_mobs.dm @@ -0,0 +1,204 @@ +/* + Humans: + Adds an exception for gloves, to allow special glove types like the ninja ones. + + Otherwise pretty standard. +*/ +/mob/living/carbon/human/UnarmedAttack(atom/A, proximity) + + if(!has_active_hand()) //can't attack without a hand. + src << "You look at your arm and sigh." + return + + // Special glove functions: + // If the gloves do anything, have them return 1 to stop + // normal attack_hand() here. + var/obj/item/clothing/gloves/G = gloves // not typecast specifically enough in defines + if(proximity && istype(G) && G.Touch(A,1)) + return + + var/override = 0 + + for(var/datum/mutation/human/HM in dna.mutations) + override += HM.on_attack_hand(src, A) + + if(override) + return + + A.attack_hand(src) + +/atom/proc/attack_hand(mob/user) + return + +/atom/proc/interact(mob/user) + return + +/* +/mob/living/carbon/human/RestrainedClickOn(var/atom/A) ---carbons will handle this + return +*/ + +/mob/living/carbon/RestrainedClickOn(atom/A) + return 0 + +/mob/living/carbon/human/RangedAttack(atom/A) + if(gloves) + var/obj/item/clothing/gloves/G = gloves + if(istype(G) && G.Touch(A,0)) // for magic gloves + return + + for(var/datum/mutation/human/HM in dna.mutations) + HM.on_ranged_attack(src, A) + + if(isturf(A) && get_dist(src,A) <= 1) + src.Move_Pulled(A) + +/* + Animals & All Unspecified +*/ +/mob/living/UnarmedAttack(atom/A) + A.attack_animal(src) + +/atom/proc/attack_animal(mob/user) + return +/mob/living/RestrainedClickOn(atom/A) + return + +/* + Monkeys +*/ +/mob/living/carbon/monkey/UnarmedAttack(atom/A) + A.attack_paw(src) +/atom/proc/attack_paw(mob/user) + return + +/* + Monkey RestrainedClickOn() was apparently the + one and only use of all of the restrained click code + (except to stop you from doing things while handcuffed); + moving it here instead of various hand_p's has simplified + things considerably +*/ +/mob/living/carbon/monkey/RestrainedClickOn(atom/A) + if(..()) + return + if(a_intent != "harm" || !ismob(A)) + return + if(is_muzzled()) + return + var/mob/living/carbon/ML = A + var/dam_zone = pick("chest", "l_hand", "r_hand", "l_leg", "r_leg") + var/obj/item/bodypart/affecting = null + if(ishuman(ML)) + var/mob/living/carbon/human/H = ML + affecting = H.get_bodypart(ran_zone(dam_zone)) + var/armor = ML.run_armor_check(affecting, "melee") + if(prob(75)) + ML.apply_damage(rand(1,3), BRUTE, affecting, armor) + ML.visible_message("[name] bites [ML]!", \ + "[name] bites [ML]!") + if(armor >= 2) + return + for(var/datum/disease/D in viruses) + ML.ForceContractDisease(D) + else + ML.visible_message("[src] has attempted to bite [ML]!") + +/* + Aliens + Defaults to same as monkey in most places +*/ +/mob/living/carbon/alien/UnarmedAttack(atom/A) + A.attack_alien(src) +/atom/proc/attack_alien(mob/living/carbon/alien/user) + attack_paw(user) + return +/mob/living/carbon/alien/RestrainedClickOn(atom/A) + return + +// Babby aliens +/mob/living/carbon/alien/larva/UnarmedAttack(atom/A) + A.attack_larva(src) +/atom/proc/attack_larva(mob/user) + return + + +/* + Slimes + Nothing happening here +*/ +/mob/living/simple_animal/slime/UnarmedAttack(atom/A) + A.attack_slime(src) +/atom/proc/attack_slime(mob/user) + return +/mob/living/simple_animal/slime/RestrainedClickOn(atom/A) + return + + +/* + Drones +*/ +/mob/living/simple_animal/drone/UnarmedAttack(atom/A) + A.attack_drone(src) + +/atom/proc/attack_drone(mob/living/simple_animal/drone/user) + attack_hand(user) //defaults to attack_hand. Override it when you don't want drones to do same stuff as humans. + +/mob/living/simple_animal/slime/RestrainedClickOn(atom/A) + return + + +/* + True Devil +*/ + +/mob/living/carbon/true_devil/UnarmedAttack(atom/A, proximity) + A.attack_hand(src) + +/* + Brain +*/ + +/mob/living/brain/UnarmedAttack(atom/A)//Stops runtimes due to attack_animal being the default + return + + +/* + pAI +*/ + +/mob/living/silicon/pai/UnarmedAttack(atom/A)//Stops runtimes due to attack_animal being the default + return + + +/* + Simple animals +*/ + +/mob/living/simple_animal/UnarmedAttack(atom/A, proximity) + if(!dextrous) + return ..() + if(!ismob(A)) + A.attack_hand(src) + update_inv_hands() + + +/* + Hostile animals +*/ + +/mob/living/simple_animal/hostile/UnarmedAttack(atom/A) + target = A + if(dextrous && !is_type_in_typecache(A, environment_target_typecache) && !ismob(A)) + ..() + else + AttackingTarget() + + + +/* + New Players: + Have no reason to click on anything at all. +*/ +/mob/new_player/ClickOn() + return diff --git a/code/_onclick/overmind.dm b/code/_onclick/overmind.dm new file mode 100644 index 0000000..8ace273 --- /dev/null +++ b/code/_onclick/overmind.dm @@ -0,0 +1,35 @@ +// Blob Overmind Controls + + +/mob/camera/blob/ClickOn(var/atom/A, var/params) //Expand blob + var/list/modifiers = params2list(params) + if(modifiers["middle"]) + MiddleClickOn(A) + return + if(modifiers["shift"]) + ShiftClickOn(A) + return + if(modifiers["alt"]) + AltClickOn(A) + return + if(modifiers["ctrl"]) + CtrlClickOn(A) + return + var/turf/T = get_turf(A) + if(T) + expand_blob(T) + +/mob/camera/blob/MiddleClickOn(atom/A) //Rally spores + var/turf/T = get_turf(A) + if(T) + rally_spores(T) + +/mob/camera/blob/CtrlClickOn(atom/A) //Create a shield + var/turf/T = get_turf(A) + if(T) + create_shield(T) + +/mob/camera/blob/AltClickOn(atom/A) //Remove a blob + var/turf/T = get_turf(A) + if(T) + remove_blob(T) \ No newline at end of file diff --git a/code/_onclick/telekinesis.dm b/code/_onclick/telekinesis.dm new file mode 100644 index 0000000..89a2372 --- /dev/null +++ b/code/_onclick/telekinesis.dm @@ -0,0 +1,222 @@ +/* + Telekinesis + + This needs more thinking out, but I might as well. +*/ +var/const/tk_maxrange = 15 + +/* + Telekinetic attack: + + By default, emulate the user's unarmed attack +*/ +/atom/proc/attack_tk(mob/user) + if(user.stat) + return + user.UnarmedAttack(src,0) // attack_hand, attack_paw, etc + return + +/* + This is similar to item attack_self, but applies to anything + that you can grab with a telekinetic grab. + + It is used for manipulating things at range, for example, opening and closing closets. + There are not a lot of defaults at this time, add more where appropriate. +*/ +/atom/proc/attack_self_tk(mob/user) + return + +/obj/item/attack_self_tk(mob/user) + attack_self(user) + +/obj/attack_tk(mob/user) + if(user.stat) + return + if(anchored) + ..() + return + + var/obj/item/tk_grab/O = new(src) + user.put_in_active_hand(O) + O.host = user + O.focus_object(src) + return + +/obj/item/attack_tk(mob/user) + if(user.stat) + return + var/obj/item/tk_grab/O = new(src) + user.put_in_active_hand(O) + O.host = user + O.focus_object(src) + return + + +/mob/attack_tk(mob/user) + return // needs more thinking about + +/* + TK Grab Item (the workhorse of old TK) + + * If you have not grabbed something, do a normal tk attack + * If you have something, throw it at the target. If it is already adjacent, do a normal attackby() + * If you click what you are holding, or attack_self(), do an attack_self_tk() on it. + * Deletes itself if it is ever not in your hand, or if you should have no access to TK. +*/ +/obj/item/tk_grab + name = "Telekinetic Grab" + desc = "Magic" + icon = 'icons/obj/magic.dmi'//Needs sprites + icon_state = "2" + flags = NOBLUDGEON | ABSTRACT | DROPDEL + //item_state = null + w_class = 10 + layer = ABOVE_HUD_LAYER + plane = ABOVE_HUD_PLANE + + var/last_throw = 0 + var/atom/movable/focus = null + var/mob/living/host = null + + +/obj/item/tk_grab/dropped(mob/user) + if(focus && user && loc != user && loc != user.loc) // drop_item() gets called when you tk-attack a table/closet with an item + if(focus.Adjacent(loc)) + focus.loc = loc + . = ..() + +//stops TK grabs being equipped anywhere but into hands +/obj/item/tk_grab/equipped(mob/user, slot) + if(slot == slot_hands) + return + qdel(src) + return + + +/obj/item/tk_grab/attack_self(mob/user) + if(!focus) + return + if(qdeleted(focus)) + qdel(src) + return + focus.attack_self_tk(user) + +/obj/item/tk_grab/afterattack(atom/target, mob/living/carbon/user, proximity, params)//TODO: go over this + if(!target || !user) + return + if(last_throw+3 > world.time) + return + if(!host || host != user) + qdel(src) + return + if(!(user.dna.check_mutation(TK))) + qdel(src) + return + if(isobj(target) && !isturf(target.loc)) + return + + if(!tkMaxRangeCheck(user, target, focus)) + return + + if(!focus) + focus_object(target, user) + return + + if(focus.anchored || !isturf(focus.loc)) + qdel(src) + return + + if(target == focus) + target.attack_self_tk(user) + return // todo: something like attack_self not laden with assumptions inherent to attack_self + + + if(!isturf(target) && istype(focus,/obj/item) && target.Adjacent(focus)) + var/obj/item/I = focus + var/resolved = target.attackby(I, user, params) + if(!resolved && target && I) + I.afterattack(target,user,1) // for splashing with beakers + else + apply_focus_overlay() + focus.throw_at(target, 10, 1,user) + last_throw = world.time + user.changeNext_move(CLICK_CD_MELEE) + +/proc/tkMaxRangeCheck(mob/user, atom/target, atom/focus) + var/d = get_dist(user, target) + if(focus) + d = max(d,get_dist(user,focus)) // whichever is further + if(d > tk_maxrange) + user << "Your mind won't reach that far." + return 0 + return 1 + +/obj/item/tk_grab/attack(mob/living/M, mob/living/user, def_zone) + return + + +/obj/item/tk_grab/proc/focus_object(obj/target, mob/living/user) + if(!isobj(target)) + return//Cant throw non objects atm might let it do mobs later + if(target.anchored || !isturf(target.loc)) + qdel(src) + return + focus = target + update_icon() + apply_focus_overlay() + return + + +/obj/item/tk_grab/proc/apply_focus_overlay() + if(!focus) + return + var/obj/effect/overlay/O = new /obj/effect/overlay(locate(focus.x,focus.y,focus.z)) + O.name = "sparkles" + O.anchored = 1 + O.density = 0 + O.layer = FLY_LAYER + O.setDir(pick(cardinal)) + O.icon = 'icons/effects/effects.dmi' + O.icon_state = "nothing" + flick("empdisable",O) + spawn(5) + qdel(O) + + +/obj/item/tk_grab/update_icon() + cut_overlays() + if(focus && focus.icon && focus.icon_state) + add_overlay(icon(focus.icon,focus.icon_state)) + return + +/obj/item/tk_grab/suicide_act(mob/user) + user.visible_message("[user] is using [user.p_their()] telekinesis to choke [user.p_them()]self! It looks like [user.p_theyre()] trying to commit suicide!") + return (OXYLOSS) + +/*Not quite done likely needs to use something thats not get_step_to +/obj/item/tk_grab/proc/check_path() + var/turf/ref = get_turf(src.loc) + var/turf/target = get_turf(focus.loc) + if(!ref || !target) + return 0 + var/distance = get_dist(ref, target) + if(distance >= 10) + return 0 + for(var/i = 1 to distance) + ref = get_step_to(ref, target, 0) + if(ref != target) + return 0 + return 1 +*/ + +//equip_to_slot_or_del(obj/item/W, slot, qdel_on_fail = 1) +/* + if(istype(user, /mob/living/carbon)) + if(user:mutations & TK && get_dist(source, user) <= 7) + if(user:get_active_hand()) + return 0 + var/X = source:x + var/Y = source:y + var/Z = source:z + +*/ diff --git a/code/controllers/admin.dm b/code/controllers/admin.dm new file mode 100644 index 0000000..8e947f6 --- /dev/null +++ b/code/controllers/admin.dm @@ -0,0 +1,50 @@ +// Clickable stat() button. +/obj/effect/statclick + var/target + +/obj/effect/statclick/New(text, target) + name = text + src.target = target + +/obj/effect/statclick/proc/update(text) + name = text + return src + +/obj/effect/statclick/debug + var/class + +/obj/effect/statclick/debug/Click() + if(!usr.client.holder) + return + if(!class) + if(istype(target, /datum/subsystem)) + class = "subsystem" + else if(istype(target, /datum/controller)) + class = "controller" + else if(istype(target, /datum)) + class = "datum" + else + class = "unknown" + + usr.client.debug_variables(target) + message_admins("Admin [key_name_admin(usr)] is debugging the [target] [class].") + + +// Debug verbs. +/client/proc/restart_controller(controller in list("Master", "Failsafe")) + set category = "Debug" + set name = "Restart Controller" + set desc = "Restart one of the various periodic loop controllers for the game (be careful!)" + + if(!holder) + return + switch(controller) + if("Master") + new/datum/controller/master() + Master.process() + feedback_add_details("admin_verb","RMC") + if("Failsafe") + new /datum/controller/failsafe() + feedback_add_details("admin_verb","RFailsafe") + + message_admins("Admin [key_name_admin(usr)] has restarted the [controller] controller.") diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm new file mode 100644 index 0000000..5c54322 --- /dev/null +++ b/code/controllers/configuration.dm @@ -0,0 +1,796 @@ +//Configuraton defines //TODO: Move all yes/no switches into bitflags + +//Used by jobs_have_maint_access +#define ASSISTANTS_HAVE_MAINT_ACCESS 1 +#define SECURITY_HAS_MAINT_ACCESS 2 +#define EVERYONE_HAS_MAINT_ACCESS 4 + +//Not accessible from usual debug controller verb +/datum/protected_configuration + var/autoadmin = 0 + var/autoadmin_rank = "Game Admin" + +/datum/configuration + var/name = "Configuration" // datum name + + var/server_name = null // server name (the name of the game window) + var/station_name = null // station name (the name of the station in-game) + var/server_suffix = 0 // generate numeric suffix based on server port + var/lobby_countdown = 120 // In between round countdown. + var/round_end_countdown = 25 // Post round murder death kill countdown + var/hub = 0 + + var/log_ooc = 0 // log OOC channel + var/log_access = 0 // log login/logout + var/log_say = 0 // log client say + var/log_admin = 0 // log admin actions + var/log_game = 0 // log game events + var/log_vote = 0 // log voting + var/log_whisper = 0 // log client whisper + var/log_prayer = 0 // log prayers + var/log_law = 0 // log lawchanges + var/log_emote = 0 // log emotes + var/log_attack = 0 // log attack messages + var/log_adminchat = 0 // log admin chat messages + var/log_pda = 0 // log pda messages + var/log_hrefs = 0 // log all links clicked in-game. Could be used for debugging and tracking down exploits + var/log_world_topic = 0 // log all world.Topic() calls + var/sql_enabled = 0 // for sql switching + var/allow_admin_ooccolor = 0 // Allows admins with relevant permissions to have their own ooc colour + var/allow_vote_restart = 0 // allow votes to restart + var/allow_vote_mode = 0 // allow votes to change mode + var/vote_delay = 6000 // minimum time between voting sessions (deciseconds, 10 minute default) + var/vote_period = 600 // length of voting period (deciseconds, default 1 minute) + var/vote_no_default = 0 // vote does not default to nochange/norestart (tbi) + var/vote_no_dead = 0 // dead people can't vote (tbi) + var/del_new_on_log = 1 // del's new players if they log before they spawn in + var/allow_Metadata = 0 // Metadata is supported. + var/popup_admin_pm = 0 //adminPMs to non-admins show in a pop-up 'reply' window when set to 1. + var/fps = 20 + var/allow_holidays = 0 //toggles whether holiday-specific content should be used + + var/hostedby = null + var/respawn = 1 + var/guest_jobban = 1 + var/usewhitelist = 0 + var/kick_inactive = 0 //force disconnect for inactive players + var/load_jobs_from_txt = 0 + var/automute_on = 0 //enables automuting/spam prevention + var/minimal_access_threshold = 0 //If the number of players is larger than this threshold, minimal access will be turned on. + var/jobs_have_minimal_access = 0 //determines whether jobs use minimal access or expanded access. + var/jobs_have_maint_access = 0 //Who gets maint access? See defines above. + var/sec_start_brig = 0 //makes sec start in brig or dept sec posts + + var/server + var/banappeals + var/wikiurl = "http://www.tgstation13.org/wiki" // Default wiki link. + var/forumurl = "http://tgstation13.org/phpBB/index.php" //default forums + var/rulesurl = "http://www.tgstation13.org/wiki/Rules" // default rules + var/githuburl = "https://www.github.com/tgstation/-tg-station" //default github + + var/forbid_singulo_possession = 0 + var/useircbot = 0 + + var/check_randomizer = 0 + + //IP Intel vars + var/ipintel_email + var/ipintel_rating_bad = 1 + var/ipintel_save_good = 12 + var/ipintel_save_bad = 1 + var/ipintel_domain = "check.getipintel.net" + + var/admin_legacy_system = 0 //Defines whether the server uses the legacy admin system with admins.txt or the SQL system. Config option in config.txt + var/ban_legacy_system = 0 //Defines whether the server uses the legacy banning system with the files in /data or the SQL system. Config option in config.txt + var/use_age_restriction_for_jobs = 0 //Do jobs use account age restrictions? --requires database + var/use_account_age_for_jobs = 0 //Uses the time they made the account for the job restriction stuff. New player joining alerts should be unaffected. + var/see_own_notes = 0 //Can players see their own admin notes (read-only)? Config option in config.txt + + //Population cap vars + var/soft_popcap = 0 + var/hard_popcap = 0 + var/extreme_popcap = 0 + var/soft_popcap_message = "Be warned that the server is currently serving a high number of users, consider using alternative game servers." + var/hard_popcap_message = "The server is currently serving a high number of users, You cannot currently join. You may wait for the number of living crew to decline, observe, or find alternative servers." + var/extreme_popcap_message = "The server is currently serving a high number of users, find alternative servers." + + //game_options.txt configs + var/force_random_names = 0 + var/list/mode_names = list() + var/list/modes = list() // allowed modes + var/list/votable_modes = list() // votable modes + var/list/probabilities = list() // relative probability of each mode + + var/humans_need_surnames = 0 + var/allow_ai = 0 // allow ai job + var/forbid_secborg = 0 // disallow secborg module to be chosen. + var/forbid_peaceborg = 0 + var/panic_bunker = 0 // prevents new people it hasn't seen before from connecting + var/notify_new_player_age = 0 // how long do we notify admins of a new player + var/irc_first_connection_alert = 0 // do we notify the irc channel when somebody is connecting for the first time? + + var/traitor_scaling_coeff = 6 //how much does the amount of players get divided by to determine traitors + var/changeling_scaling_coeff = 6 //how much does the amount of players get divided by to determine changelings + var/security_scaling_coeff = 8 //how much does the amount of players get divided by to determine open security officer positions + var/abductor_scaling_coeff = 15 //how many players per abductor team + + var/traitor_objectives_amount = 2 + var/protect_roles_from_antagonist = 0 //If security and such can be traitor/cult/other + var/protect_assistant_from_antagonist = 0 //If assistants can be traitor/cult/other + var/enforce_human_authority = 0 //If non-human species are barred from joining as a head of staff + var/allow_latejoin_antagonists = 0 // If late-joining players can be traitor/changeling + var/list/continuous = list() // which roundtypes continue if all antagonists die + var/list/midround_antag = list() // which roundtypes use the midround antagonist system + var/midround_antag_time_check = 60 // How late (in minutes) you want the midround antag system to stay on, setting this to 0 will disable the system + var/midround_antag_life_check = 0.7 // A ratio of how many people need to be alive in order for the round not to immediately end in midround antagonist + var/shuttle_refuel_delay = 12000 + var/show_game_type_odds = 0 //if set this allows players to see the odds of each roundtype on the get revision screen + var/mutant_races = 0 //players can choose their mutant race before joining the game + var/list/roundstart_races = list() //races you can play as from the get go. If left undefined the game's roundstart var for species is used + var/mutant_humans = 0 //players can pick mutant bodyparts for humans before joining the game + + var/no_summon_guns //No + var/no_summon_magic //Fun + var/no_summon_events //Allowed + + var/intercept = 1 //Whether or not to send a communications intercept report roundstart. This may be overriden by gamemodes. + var/alert_desc_green = "All threats to the station have passed. Security may not have weapons visible, privacy laws are once again fully enforced." + var/alert_desc_blue_upto = "The station has received reliable information about possible hostile activity on the station. Security staff may have weapons visible, random searches are permitted." + var/alert_desc_blue_downto = "The immediate threat has passed. Security may no longer have weapons drawn at all times, but may continue to have them visible. Random searches are still allowed." + var/alert_desc_red_upto = "There is an immediate serious threat to the station. Security may have weapons unholstered at all times. Random searches are allowed and advised." + var/alert_desc_red_downto = "The station's destruction has been averted. There is still however an immediate serious threat to the station. Security may have weapons unholstered at all times, random searches are allowed and advised." + var/alert_desc_delta = "Destruction of the station is imminent. All crew are instructed to obey all instructions given by heads of staff. Any violations of these orders can be punished by death. This is not a drill." + + var/revival_pod_plants = 1 + var/revival_cloning = 1 + var/revival_brain_life = -1 + + var/rename_cyborg = 0 + var/ooc_during_round = 0 + var/emojis = 0 + + //Used for modifying movement speed for mobs. + //Unversal modifiers + var/run_speed = 0 + var/walk_speed = 0 + + //Mob specific modifiers. NOTE: These will affect different mob types in different ways + var/human_delay = 0 + var/robot_delay = 0 + var/monkey_delay = 0 + var/alien_delay = 0 + var/slime_delay = 0 + var/animal_delay = 0 + + var/gateway_delay = 18000 //How long the gateway takes before it activates. Default is half an hour. + var/ghost_interaction = 0 + + var/silent_ai = 0 + var/silent_borg = 0 + + var/damage_multiplier = 1 //Modifier for damage to all mobs. Impacts healing as well. + + var/allowwebclient = 0 + var/webclientmembersonly = 0 + + var/sandbox_autoclose = 0 // close the sandbox panel after spawning an item, potentially reducing griff + + var/default_laws = 0 //Controls what laws the AI spawns with. + var/silicon_max_law_amount = 12 + + var/assistant_cap = -1 + + var/starlight = 0 + var/generate_minimaps = 0 + var/grey_assistants = 0 + + var/lavaland_budget = 60 + var/space_budget = 16 + + var/aggressive_changelog = 0 + + var/reactionary_explosions = 0 //If we use reactionary explosions, explosions that react to walls and doors + + var/autoconvert_notes = 0 //if all connecting player's notes should attempt to be converted to the database + + var/announce_admin_logout = 0 + var/announce_admin_login = 0 + + var/list/datum/votablemap/maplist = list() + var/datum/votablemap/defaultmap = null + var/maprotation = 1 + var/maprotatechancedelta = 0.75 + + // Enables random events mid-round when set to 1 + var/allow_random_events = 0 + + // Multipliers for random events minimal starting time and minimal players amounts + var/events_min_time_mul = 1 + var/events_min_players_mul = 1 + + // The object used for the clickable stat() button. + var/obj/effect/statclick/statclick + + var/client_warn_version = 0 + var/client_warn_message = "Your version of byond may have issues or be blocked from accessing this server in the future." + var/client_error_version = 0 + var/client_error_message = "Your version of byond is too old, may have issues, and is blocked from accessing this server." + + var/cross_name = "Other server" + var/showircname = 0 + +/datum/configuration/New() + var/list/L = subtypesof(/datum/game_mode) + for(var/T in L) + // I wish I didn't have to instance the game modes in order to look up + // their information, but it is the only way (at least that I know of). + var/datum/game_mode/M = new T() + + if(M.config_tag) + if(!(M.config_tag in modes)) // ensure each mode is added only once + diary << "Adding game mode [M.name] ([M.config_tag]) to configuration." + modes += M.config_tag + mode_names[M.config_tag] = M.name + probabilities[M.config_tag] = M.probability + if(M.votable) + votable_modes += M.config_tag + qdel(M) + votable_modes += "secret" + +/datum/configuration/proc/load(filename, type = "config") //the type can also be game_options, in which case it uses a different switch. not making it separate to not copypaste code - Urist + var/list/Lines = file2list(filename) + + for(var/t in Lines) + if(!t) + continue + + t = trim(t) + if(length(t) == 0) + continue + else if(copytext(t, 1, 2) == "#") + continue + + var/pos = findtext(t, " ") + var/name = null + var/value = null + + if(pos) + name = lowertext(copytext(t, 1, pos)) + value = copytext(t, pos + 1) + else + name = lowertext(t) + + if(!name) + continue + + if(type == "config") + switch(name) + if("hub") + config.hub = 1 + if("admin_legacy_system") + config.admin_legacy_system = 1 + if("ban_legacy_system") + config.ban_legacy_system = 1 + if("use_age_restriction_for_jobs") + config.use_age_restriction_for_jobs = 1 + if("use_account_age_for_jobs") + config.use_account_age_for_jobs = 1 + if("lobby_countdown") + config.lobby_countdown = text2num(value) + if("round_end_countdown") + config.round_end_countdown = text2num(value) + if("log_ooc") + config.log_ooc = 1 + if("log_access") + config.log_access = 1 + if("log_say") + config.log_say = 1 + if("log_admin") + config.log_admin = 1 + if("log_prayer") + config.log_prayer = 1 + if("log_law") + config.log_law = 1 + if("log_game") + config.log_game = 1 + if("log_vote") + config.log_vote = 1 + if("log_whisper") + config.log_whisper = 1 + if("log_attack") + config.log_attack = 1 + if("log_emote") + config.log_emote = 1 + if("log_adminchat") + config.log_adminchat = 1 + if("log_pda") + config.log_pda = 1 + if("log_hrefs") + config.log_hrefs = 1 + if("log_world_topic") + config.log_world_topic = 1 + if("allow_admin_ooccolor") + config.allow_admin_ooccolor = 1 + if("allow_vote_restart") + config.allow_vote_restart = 1 + if("allow_vote_mode") + config.allow_vote_mode = 1 + if("no_dead_vote") + config.vote_no_dead = 1 + if("default_no_vote") + config.vote_no_default = 1 + if("vote_delay") + config.vote_delay = text2num(value) + if("vote_period") + config.vote_period = text2num(value) + if("norespawn") + config.respawn = 0 + if("servername") + config.server_name = value + if("stationname") + config.station_name = value + if("serversuffix") + config.server_suffix = 1 + if("hostedby") + config.hostedby = value + if("server") + config.server = value + if("banappeals") + config.banappeals = value + if("wikiurl") + config.wikiurl = value + if("forumurl") + config.forumurl = value + if("rulesurl") + config.rulesurl = value + if("githuburl") + config.githuburl = value + if("guest_jobban") + config.guest_jobban = 1 + if("guest_ban") + guests_allowed = 0 + if("usewhitelist") + config.usewhitelist = 1 + if("allow_metadata") + config.allow_Metadata = 1 + if("kick_inactive") + if(value < 1) + value = INACTIVITY_KICK + config.kick_inactive = value + if("load_jobs_from_txt") + load_jobs_from_txt = 1 + if("forbid_singulo_possession") + forbid_singulo_possession = 1 + if("popup_admin_pm") + config.popup_admin_pm = 1 + if("allow_holidays") + config.allow_holidays = 1 + if("useircbot") + useircbot = 1 + if("ticklag") + var/ticklag = text2num(value) + if(ticklag > 0) + fps = 10 / ticklag + if("fps") + fps = text2num(value) + if("automute_on") + automute_on = 1 + if("comms_key") + global.comms_key = value + if(value != "default_pwd" && length(value) > 6) //It's the default value or less than 6 characters long, warn badmins + global.comms_allowed = 1 + if("cross_server_address") + global.cross_address = value + if(value != "byond:\\address:port") + global.cross_allowed = 1 + if("cross_comms_name") + cross_name = value + if("medal_hub_address") + global.medal_hub = value + if("medal_hub_password") + global.medal_pass = value + if("show_irc_name") + config.showircname = 1 + if("see_own_notes") + config.see_own_notes = 1 + if("soft_popcap") + config.soft_popcap = text2num(value) + if("hard_popcap") + config.hard_popcap = text2num(value) + if("extreme_popcap") + config.extreme_popcap = text2num(value) + if("soft_popcap_message") + config.soft_popcap_message = value + if("hard_popcap_message") + config.hard_popcap_message = value + if("extreme_popcap_message") + config.extreme_popcap_message = value + if("panic_bunker") + config.panic_bunker = 1 + if("notify_new_player_age") + config.notify_new_player_age = text2num(value) + if("irc_first_connection_alert") + config.irc_first_connection_alert = 1 + if("check_randomizer") + config.check_randomizer = 1 + if("ipintel_email") + if (value != "ch@nge.me") + config.ipintel_email = value + if("ipintel_rating_bad") + config.ipintel_rating_bad = text2num(value) + if("ipintel_domain") + config.ipintel_domain = value + if("ipintel_save_good") + config.ipintel_save_good = text2num(value) + if("ipintel_save_bad") + config.ipintel_save_bad = text2num(value) + if("aggressive_changelog") + config.aggressive_changelog = 1 + if("log_runtimes") + var/newlog = file("data/logs/runtimes/runtime-[time2text(world.realtime, "YYYY-MM-DD")].log") + if (world.log != newlog) + world.log << "Now logging runtimes to data/logs/runtimes/runtime-[time2text(world.realtime, "YYYY-MM-DD")].log" + world.log = newlog + if("autoconvert_notes") + config.autoconvert_notes = 1 + if("allow_webclient") + config.allowwebclient = 1 + if("webclient_only_byond_members") + config.webclientmembersonly = 1 + if("announce_admin_logout") + config.announce_admin_logout = 1 + if("announce_admin_login") + config.announce_admin_login = 1 + if("maprotation") + config.maprotation = 1 + if("maprotationchancedelta") + config.maprotatechancedelta = text2num(value) + if("autoadmin") + protected_config.autoadmin = 1 + if(value) + protected_config.autoadmin_rank = ckeyEx(value) + if("generate_minimaps") + config.generate_minimaps = 1 + if("client_warn_version") + config.client_warn_version = text2num(value) + if("client_warn_message") + config.client_warn_message = value + if("client_error_version") + config.client_error_version = text2num(value) + if("client_error_message") + config.client_error_message = value + + else + diary << "Unknown setting in configuration: '[name]'" + + else if(type == "game_options") + switch(name) + if("damage_multiplier") + config.damage_multiplier = text2num(value) + if("revival_pod_plants") + config.revival_pod_plants = text2num(value) + if("revival_cloning") + config.revival_cloning = text2num(value) + if("revival_brain_life") + config.revival_brain_life = text2num(value) + if("rename_cyborg") + config.rename_cyborg = 1 + if("ooc_during_round") + config.ooc_during_round = 1 + if("emojis") + config.emojis = 1 + if("run_delay") + config.run_speed = text2num(value) + if("walk_delay") + config.walk_speed = text2num(value) + if("human_delay") + config.human_delay = text2num(value) + if("robot_delay") + config.robot_delay = text2num(value) + if("monkey_delay") + config.monkey_delay = text2num(value) + if("alien_delay") + config.alien_delay = text2num(value) + if("slime_delay") + config.slime_delay = text2num(value) + if("animal_delay") + config.animal_delay = text2num(value) + if("alert_red_upto") + config.alert_desc_red_upto = value + if("alert_red_downto") + config.alert_desc_red_downto = value + if("alert_blue_downto") + config.alert_desc_blue_downto = value + if("alert_blue_upto") + config.alert_desc_blue_upto = value + if("alert_green") + config.alert_desc_green = value + if("alert_delta") + config.alert_desc_delta = value + if("no_intercept_report") + config.intercept = 0 + if("assistants_have_maint_access") + config.jobs_have_maint_access |= ASSISTANTS_HAVE_MAINT_ACCESS + if("security_has_maint_access") + config.jobs_have_maint_access |= SECURITY_HAS_MAINT_ACCESS + if("everyone_has_maint_access") + config.jobs_have_maint_access |= EVERYONE_HAS_MAINT_ACCESS + if("sec_start_brig") + config.sec_start_brig = 1 + if("gateway_delay") + config.gateway_delay = text2num(value) + if("continuous") + var/mode_name = lowertext(value) + if(mode_name in config.modes) + config.continuous[mode_name] = 1 + else + diary << "Unknown continuous configuration definition: [mode_name]." + if("midround_antag") + var/mode_name = lowertext(value) + if(mode_name in config.modes) + config.midround_antag[mode_name] = 1 + else + diary << "Unknown midround antagonist configuration definition: [mode_name]." + if("midround_antag_time_check") + config.midround_antag_time_check = text2num(value) + if("midround_antag_life_check") + config.midround_antag_life_check = text2num(value) + if("shuttle_refuel_delay") + config.shuttle_refuel_delay = text2num(value) + if("show_game_type_odds") + config.show_game_type_odds = 1 + if("ghost_interaction") + config.ghost_interaction = 1 + if("traitor_scaling_coeff") + config.traitor_scaling_coeff = text2num(value) + if("changeling_scaling_coeff") + config.changeling_scaling_coeff = text2num(value) + if("security_scaling_coeff") + config.security_scaling_coeff = text2num(value) + if("abductor_scaling_coeff") + config.abductor_scaling_coeff = text2num(value) + if("traitor_objectives_amount") + config.traitor_objectives_amount = text2num(value) + if("probability") + var/prob_pos = findtext(value, " ") + var/prob_name = null + var/prob_value = null + + if(prob_pos) + prob_name = lowertext(copytext(value, 1, prob_pos)) + prob_value = copytext(value, prob_pos + 1) + if(prob_name in config.modes) + config.probabilities[prob_name] = text2num(prob_value) + else + diary << "Unknown game mode probability configuration definition: [prob_name]." + else + diary << "Incorrect probability configuration definition: [prob_name] [prob_value]." + + if("protect_roles_from_antagonist") + config.protect_roles_from_antagonist = 1 + if("protect_assistant_from_antagonist") + config.protect_assistant_from_antagonist = 1 + if("enforce_human_authority") + config.enforce_human_authority = 1 + if("allow_latejoin_antagonists") + config.allow_latejoin_antagonists = 1 + if("allow_random_events") + config.allow_random_events = 1 + + if("events_min_time_mul") + config.events_min_time_mul = text2num(value) + if("events_min_players_mul") + config.events_min_players_mul = text2num(value) + + if("minimal_access_threshold") + config.minimal_access_threshold = text2num(value) + if("jobs_have_minimal_access") + config.jobs_have_minimal_access = 1 + if("humans_need_surnames") + humans_need_surnames = 1 + if("force_random_names") + config.force_random_names = 1 + if("allow_ai") + config.allow_ai = 1 + if("disable_secborg") + config.forbid_secborg = 1 + if("disable_peaceborg") + config.forbid_peaceborg = 1 + if("silent_ai") + config.silent_ai = 1 + if("silent_borg") + config.silent_borg = 1 + if("sandbox_autoclose") + config.sandbox_autoclose = 1 + if("default_laws") + config.default_laws = text2num(value) + if("silicon_max_law_amount") + config.silicon_max_law_amount = text2num(value) + if("join_with_mutant_race") + config.mutant_races = 1 + if("roundstart_races") + var/race_id = lowertext(value) + for(var/species_id in species_list) + if(species_id == race_id) + roundstart_races += species_list[species_id] + roundstart_species[species_id] = species_list[species_id] + if("join_with_mutant_humans") + config.mutant_humans = 1 + if("assistant_cap") + config.assistant_cap = text2num(value) + if("starlight") + config.starlight = 1 + if("grey_assistants") + config.grey_assistants = 1 + if("lavaland_budget") + config.lavaland_budget = text2num(value) + if("space_budget") + config.space_budget = text2num(value) + if("no_summon_guns") + config.no_summon_guns = 1 + if("no_summon_magic") + config.no_summon_magic = 1 + if("no_summon_events") + config.no_summon_events = 1 + if("reactionary_explosions") + config.reactionary_explosions = 1 + if("bombcap") + var/BombCap = text2num(value) + if (!BombCap) + continue + if (BombCap < 4) + BombCap = 4 + + MAX_EX_DEVESTATION_RANGE = round(BombCap/4) + MAX_EX_HEAVY_RANGE = round(BombCap/2) + MAX_EX_LIGHT_RANGE = BombCap + MAX_EX_FLASH_RANGE = BombCap + MAX_EX_FLAME_RANGE = BombCap + else + diary << "Unknown setting in configuration: '[name]'" + + fps = round(fps) + if(fps <= 0) + fps = initial(fps) + + +/datum/configuration/proc/loadmaplist(filename) + var/list/Lines = file2list(filename) + + var/datum/votablemap/currentmap = null + for(var/t in Lines) + if(!t) + continue + + t = trim(t) + if(length(t) == 0) + continue + else if(copytext(t, 1, 2) == "#") + continue + + var/pos = findtext(t, " ") + var/command = null + var/data = null + + if(pos) + command = lowertext(copytext(t, 1, pos)) + data = copytext(t, pos + 1) + else + command = lowertext(t) + + if(!command) + continue + + if (!currentmap && command != "map") + continue + + switch (command) + if ("map") + currentmap = new (data) + if ("friendlyname") + currentmap.friendlyname = data + if ("minplayers","minplayer") + currentmap.minusers = text2num(data) + if ("maxplayers","maxplayer") + currentmap.maxusers = text2num(data) + if ("friendlyname") + currentmap.friendlyname = data + if ("weight","voteweight") + currentmap.voteweight = text2num(data) + if ("default","defaultmap") + config.defaultmap = currentmap + if ("endmap") + config.maplist[currentmap.name] = currentmap + currentmap = null + else + diary << "Unknown command in map vote config: '[command]'" + + +/datum/configuration/proc/loadsql(filename) + var/list/Lines = file2list(filename) + for(var/t in Lines) + if(!t) + continue + + t = trim(t) + if(length(t) == 0) + continue + else if(copytext(t, 1, 2) == "#") + continue + + var/pos = findtext(t, " ") + var/name = null + var/value = null + + if(pos) + name = lowertext(copytext(t, 1, pos)) + value = copytext(t, pos + 1) + else + name = lowertext(t) + + if(!name) + continue + + switch(name) + if("sql_enabled") + config.sql_enabled = 1 + if("address") + sqladdress = value + if("port") + sqlport = value + if("feedback_database") + sqlfdbkdb = value + if("feedback_login") + sqlfdbklogin = value + if("feedback_password") + sqlfdbkpass = value + if("feedback_tableprefix") + sqlfdbktableprefix = value + else + diary << "Unknown setting in configuration: '[name]'" + +/datum/configuration/proc/pick_mode(mode_name) + // I wish I didn't have to instance the game modes in order to look up + // their information, but it is the only way (at least that I know of). + for(var/T in subtypesof(/datum/game_mode)) + var/datum/game_mode/M = new T() + if(M.config_tag && M.config_tag == mode_name) + return M + qdel(M) + return new /datum/game_mode/extended() + +/datum/configuration/proc/get_runnable_modes() + var/list/datum/game_mode/runnable_modes = new + for(var/T in subtypesof(/datum/game_mode)) + var/datum/game_mode/M = new T() + //world << "DEBUG: [T], tag=[M.config_tag], prob=[probabilities[M.config_tag]]" + if(!(M.config_tag in modes)) + qdel(M) + continue + if(probabilities[M.config_tag]<=0) + qdel(M) + continue + if(M.can_start()) + runnable_modes[M] = probabilities[M.config_tag] + //world << "DEBUG: runnable_mode\[[runnable_modes.len]\] = [M.config_tag]" + return runnable_modes + +/datum/configuration/proc/get_runnable_midround_modes(crew) + var/list/datum/game_mode/runnable_modes = new + for(var/T in (subtypesof(/datum/game_mode) - ticker.mode.type)) + var/datum/game_mode/M = new T() + if(!(M.config_tag in modes)) + qdel(M) + continue + if(probabilities[M.config_tag]<=0) + qdel(M) + continue + if(M.required_players <= crew) + runnable_modes[M] = probabilities[M.config_tag] + return runnable_modes + +/datum/configuration/proc/stat_entry() + if(!statclick) + statclick = new/obj/effect/statclick/debug("Edit", src) + + stat("[name]:", statclick) diff --git a/code/controllers/controller.dm b/code/controllers/controller.dm new file mode 100644 index 0000000..7c87599 --- /dev/null +++ b/code/controllers/controller.dm @@ -0,0 +1,4 @@ +/datum/controller + var/name + // The object used for the clickable stat() button. + var/obj/effect/statclick/statclick \ No newline at end of file diff --git a/code/controllers/failsafe.dm b/code/controllers/failsafe.dm new file mode 100644 index 0000000..fa76dc7 --- /dev/null +++ b/code/controllers/failsafe.dm @@ -0,0 +1,96 @@ + /** + * Failsafe + * + * Pretty much pokes the MC to make sure it's still alive. + **/ + +var/datum/controller/failsafe/Failsafe + +/datum/controller/failsafe // This thing pretty much just keeps poking the master controller + name = "Failsafe" + + // The length of time to check on the MC (in deciseconds). + // Set to 0 to disable. + var/processing_interval = 20 + // The alert level. For every failed poke, we drop a DEFCON level. Once we hit DEFCON 1, restart the MC. + var/defcon = 5 + //the world.time of the last check, so the mc can restart US if we hang. + // (Real friends look out for *eachother*) + var/lasttick = 0 + + // Track the MC iteration to make sure its still on track. + var/master_iteration = 0 + +/datum/controller/failsafe/New() + // Highlander-style: there can only be one! Kill off the old and replace it with the new. + if(Failsafe != src) + if(istype(Failsafe)) + qdel(Failsafe) + Failsafe = src + spawn() + Failsafe.Loop() + qdel(Failsafe) //when Loop() returns, we delete ourselves and let the mc recreate us + +/datum/controller/failsafe/Destroy() + ..() + return QDEL_HINT_HARDDEL_NOW + +/datum/controller/failsafe/proc/Loop() + while(1) + lasttick = world.time + if(!Master) + // Replace the missing Master! This should never, ever happen. + new /datum/controller/master() + // Only poke it if overrides are not in effect. + if(processing_interval > 0) + if(Master.processing && Master.iteration) + // Check if processing is done yet. + if(Master.iteration == master_iteration) + switch(defcon) + if(4,5) + --defcon + if(3) + admins << "Notice: DEFCON [defcon_pretty()]. The Master Controller has not fired in the last [(5-defcon) * processing_interval] ticks." + --defcon + if(2) + admins << "Warning: DEFCON [defcon_pretty()]. The Master Controller has not fired in the last [(5-defcon) * processing_interval] ticks. Automatic restart in [processing_interval] ticks." + --defcon + if(1) + + admins << "Warning: DEFCON [defcon_pretty()]. The Master Controller has still not fired within the last [(5-defcon) * processing_interval] ticks. Killing and restarting..." + --defcon + var/rtn = Recreate_MC() + if(rtn > 0) + defcon = 4 + master_iteration = 0 + admins << "MC restarted successfully" + else if(rtn < 0) + log_game("FailSafe: Could not restart MC, runtime encountered. Entering defcon 0") + admins << "ERROR: DEFCON [defcon_pretty()]. Could not restart MC, runtime encountered. I will silently keep retrying." + //if the return number was 0, it just means the mc was restarted too recently, and it just needs some time before we try again + //no need to handle that specially when defcon 0 can handle it + if(0) //DEFCON 0! (mc failed to restart) + var/rtn = Recreate_MC() + if(rtn > 0) + defcon = 4 + master_iteration = 0 + admins << "MC restarted successfully" + else + defcon = min(defcon + 1,5) + master_iteration = Master.iteration + if (defcon <= 1) + sleep(processing_interval*2) + else + sleep(processing_interval) + else + defcon = 5 + sleep(initial(processing_interval)) + +/datum/controller/failsafe/proc/defcon_pretty() + return defcon + +/datum/controller/failsafe/proc/stat_entry() + if(!statclick) + statclick = new/obj/effect/statclick/debug("Initializing...", src) + + stat("Failsafe Controller:", statclick.update("Defcon: [defcon_pretty()] (Interval: [Failsafe.processing_interval] | Iteration: [Failsafe.master_iteration])")) diff --git a/code/controllers/master.dm b/code/controllers/master.dm new file mode 100644 index 0000000..e237ecf --- /dev/null +++ b/code/controllers/master.dm @@ -0,0 +1,494 @@ + /** + * StonedMC + * + * Designed to properly split up a given tick among subsystems + * Note: if you read parts of this code and think "why is it doing it that way" + * Odds are, there is a reason + * + **/ +var/datum/controller/master/Master = new() +var/MC_restart_clear = 0 +var/MC_restart_timeout = 0 +var/MC_restart_count = 0 + + +//current tick limit, assigned by the queue controller before running a subsystem. +//used by check_tick as well so that the procs subsystems call can obey that SS's tick limits +var/CURRENT_TICKLIMIT = TICK_LIMIT_RUNNING + +/datum/controller/master + name = "Master" + + // Are we processing (higher values increase the processing delay by n ticks) + var/processing = 1 + // How many times have we ran + var/iteration = 0 + + // world.time of last fire, for tracking lag outside of the mc + var/last_run + + // List of subsystems to process(). + var/list/subsystems + + // Vars for keeping track of tick drift. + var/init_timeofday + var/init_time + var/tickdrift = 0 + + var/sleep_delta + + var/make_runtime = 0 + + // Has round started? (So we know what subsystems to run) + var/round_started = 0 + + // The type of the last subsystem to be process()'d. + var/last_type_processed + + var/datum/subsystem/queue_head //Start of queue linked list + var/datum/subsystem/queue_tail //End of queue linked list (used for appending to the list) + var/queue_priority_count = 0 //Running total so that we don't have to loop thru the queue each run to split up the tick + var/queue_priority_count_bg = 0 //Same, but for background subsystems + +/datum/controller/master/New() + // Highlander-style: there can only be one! Kill off the old and replace it with the new. + check_for_cleanbot_bug() + subsystems = list() + if (Master != src) + if (istype(Master)) + Recover() + qdel(Master) + else + init_subtypes(/datum/subsystem, subsystems) + Master = src + +/datum/controller/master/Destroy() + ..() + // Tell qdel() to Del() this object. + return QDEL_HINT_HARDDEL_NOW + +// Returns 1 if we created a new mc, 0 if we couldn't due to a recent restart, +// -1 if we encountered a runtime trying to recreate it +/proc/Recreate_MC() + . = -1 //so if we runtime, things know we failed + if (world.time < MC_restart_timeout) + return 0 + if (world.time < MC_restart_clear) + MC_restart_count *= 0.5 + + var/delay = 50 * ++MC_restart_count + MC_restart_timeout = world.time + delay + MC_restart_clear = world.time + (delay * 2) + Master.processing = 0 //stop ticking this one + try + new/datum/controller/master() + catch + return -1 + return 1 + + +/datum/controller/master/proc/Recover() + var/msg = "## DEBUG: [time2text(world.timeofday)] MC restarted. Reports:\n" + for (var/varname in Master.vars) + switch (varname) + if("name", "tag", "bestF", "type", "parent_type", "vars", "statclick") // Built-in junk. + continue + else + var/varval = Master.vars[varname] + if (istype(varval, /datum)) // Check if it has a type var. + var/datum/D = varval + msg += "\t [varname] = [D]([D.type])\n" + else + msg += "\t [varname] = [varval]\n" + world.log << msg + if (istype(Master.subsystems)) + subsystems = Master.subsystems + spawn (10) + StartProcessing() + else + world << "The Master Controller is having some issues, we will need to re-initialize EVERYTHING" + spawn (20) + init_subtypes(/datum/subsystem, subsystems) + Setup() + + +// Please don't stuff random bullshit here, +// Make a subsystem, give it the SS_NO_FIRE flag, and do your work in it's Initialize() +/datum/controller/master/proc/Setup() + check_for_cleanbot_bug() + world << "Initializing subsystems..." + + // Sort subsystems by init_order, so they initialize in the correct order. + sortTim(subsystems, /proc/cmp_subsystem_init) + + // Initialize subsystems. + CURRENT_TICKLIMIT = TICK_LIMIT_MC_INIT + for (var/datum/subsystem/SS in subsystems) + if (SS.flags & SS_NO_INIT) + continue + SS.Initialize(world.timeofday) + CHECK_TICK + CURRENT_TICKLIMIT = TICK_LIMIT_RUNNING + + world << "Initializations complete!" + world.log << "Initializations complete." + + // Sort subsystems by display setting for easy access. + sortTim(subsystems, /proc/cmp_subsystem_display) + check_for_cleanbot_bug() + // Set world options. + world.sleep_offline = 1 + world.fps = config.fps + check_for_cleanbot_bug() + sleep(1) + check_for_cleanbot_bug() + // Loop. + Master.StartProcessing() + +// Notify the MC that the round has started. +/datum/controller/master/proc/RoundStart() + round_started = 1 + var/timer = world.time + for (var/datum/subsystem/SS in subsystems) + if (SS.flags & SS_FIRE_IN_LOBBY || SS.flags & SS_TICKER) + continue //already firing + // Stagger subsystems. + timer += world.tick_lag * rand(1, 5) + SS.next_fire = timer + +// Starts the mc, and sticks around to restart it if the loop ever ends. +/datum/controller/master/proc/StartProcessing() + set waitfor = 0 + var/rtn = Loop() + if (rtn > 0 || processing < 0) + return //this was suppose to happen. + //loop ended, restart the mc + log_game("MC crashed or runtimed, restarting") + message_admins("MC crashed or runtimed, restarting") + var/rtn2 = Recreate_MC() + if (rtn2 <= 0) + log_game("Failed to recreate MC (Error code: [rtn2]), it's up to the failsafe now") + message_admins("Failed to recreate MC (Error code: [rtn2]), it's up to the failsafe now") + Failsafe.defcon = 2 + +// Main loop. +/datum/controller/master/proc/Loop() + . = -1 + //Prep the loop (most of this is because we want MC restarts to reset as much state as we can, and because + // local vars rock + + // Schedule the first run of the Subsystems. + round_started = world.has_round_started() + //all this shit is here so that flag edits can be refreshed by restarting the MC. (and for speed) + var/list/tickersubsystems = list() + var/list/normalsubsystems = list() + var/list/lobbysubsystems = list() + var/timer = world.time + for (var/thing in subsystems) + var/datum/subsystem/SS = thing + if (SS.flags & SS_NO_FIRE) + continue + SS.queued_time = 0 + SS.queue_next = null + SS.queue_prev = null + if (SS.flags & SS_TICKER) + tickersubsystems += SS + timer += world.tick_lag * rand(1, 5) + SS.next_fire = timer + continue + if (SS.flags & SS_FIRE_IN_LOBBY) + lobbysubsystems += SS + timer += world.tick_lag * rand(1, 5) + SS.next_fire = timer + else if (round_started) + timer += world.tick_lag * rand(1, 5) + SS.next_fire = timer + normalsubsystems += SS + + queue_head = null + queue_tail = null + //these sort by lower priorities first to reduce the number of loops needed to add subsequent SS's to the queue + //(higher subsystems will be sooner in the queue, adding them later in the loop means we don't have to loop thru them next queue add) + sortTim(tickersubsystems, /proc/cmp_subsystem_priority) + sortTim(normalsubsystems, /proc/cmp_subsystem_priority) + sortTim(lobbysubsystems, /proc/cmp_subsystem_priority) + + normalsubsystems += tickersubsystems + lobbysubsystems += tickersubsystems + + init_timeofday = world.timeofday + init_time = world.time + + iteration = 1 + var/error_level = 0 + var/sleep_delta = 0 + var/list/subsystems_to_check + //the actual loop. + while (1) + tickdrift = max(0, MC_AVERAGE_FAST(tickdrift, (((world.timeofday - init_timeofday) - (world.time - init_time)) / world.tick_lag))) + if (processing <= 0) + sleep(10) + continue + + //if there are mutiple sleeping procs running before us hogging the cpu, we have to run later + // because sleeps are processed in the order received, so longer sleeps are more likely to run first + if (world.tick_usage > TICK_LIMIT_MC) + sleep_delta += 2 + sleep(world.tick_lag * (processing + sleep_delta)) + continue + + sleep_delta = MC_AVERAGE_FAST(sleep_delta, 0) + if (last_run + (world.tick_lag * processing) > world.time) + sleep_delta += 1 + if (world.tick_usage > (TICK_LIMIT_MC*0.5)) + sleep_delta += 1 + + if (make_runtime) + var/datum/subsystem/SS + SS.can_fire = 0 + if (!Failsafe || (Failsafe.processing_interval > 0 && (Failsafe.lasttick+(Failsafe.processing_interval*5)) < world.time)) + new/datum/controller/failsafe() // (re)Start the failsafe. + if (!queue_head || !(iteration % 3)) + if (round_started) + subsystems_to_check = normalsubsystems + else + subsystems_to_check = lobbysubsystems + else + subsystems_to_check = tickersubsystems + if (CheckQueue(subsystems_to_check) <= 0) + if (!SoftReset(tickersubsystems, normalsubsystems, lobbysubsystems)) + world.log << "MC: SoftReset() failed, crashing" + return + if (!error_level) + iteration++ + error_level++ + sleep(10) + continue + + if (queue_head) + if (RunQueue() <= 0) + if (!SoftReset(tickersubsystems, normalsubsystems, lobbysubsystems)) + world.log << "MC: SoftReset() failed, crashing" + return + if (!error_level) + iteration++ + error_level++ + sleep(10) + continue + error_level-- + if (!queue_head) //reset the counts if the queue is empty, in the off chance they get out of sync + queue_priority_count = 0 + queue_priority_count_bg = 0 + + iteration++ + last_run = world.time + src.sleep_delta = MC_AVERAGE_FAST(src.sleep_delta, sleep_delta) + sleep(world.tick_lag * (processing + sleep_delta)) + + + + +// This is what decides if something should run. +/datum/controller/master/proc/CheckQueue(list/subsystemstocheck) + . = 0 //so the mc knows if we runtimed + //we create our variables outside of the loops to save on overhead + var/datum/subsystem/SS + var/SS_flags + + for (var/thing in subsystemstocheck) + if (!thing) + subsystemstocheck -= thing + SS = thing + if (SS.queued_time) //already in the queue + continue + if (SS.can_fire <= 0) + continue + if (SS.next_fire > world.time) + continue + SS_flags = SS.flags + if (SS_flags & SS_NO_FIRE) + subsystemstocheck -= SS + if (!(SS_flags & SS_TICKER) && (SS_flags & SS_KEEP_TIMING) && SS.last_fire + (SS.wait * 0.75) > world.time) + continue + + //Queue it to run. + // (we loop thru a linked list until we get to the end or find the right point) + // (this lets us sort our run order correctly without having to re-sort the entire already sorted list) + SS.enqueue() + . = 1 + + +// Run thru the queue of subsystems to run, running them while balancing out their allocated tick precentage +/datum/controller/master/proc/RunQueue() + . = 0 + var/datum/subsystem/queue_node + var/queue_node_flags + var/queue_node_priority + var/queue_node_paused + + var/current_tick_budget + var/tick_precentage + var/tick_remaining + var/ran = TRUE //this is right + var/ran_non_ticker = FALSE + var/bg_calc //have we swtiched current_tick_budget to background mode yet? + var/tick_usage + + //keep running while we have stuff to run and we haven't gone over a tick + // this is so subsystems paused eariler can use tick time that later subsystems never used + while (ran && queue_head && world.tick_usage < TICK_LIMIT_MC) + ran = FALSE + bg_calc = FALSE + current_tick_budget = queue_priority_count + queue_node = queue_head + while (queue_node) + if (ran && world.tick_usage > TICK_LIMIT_RUNNING) + break + if (!istype(queue_node)) + world.log << "[__FILE__]:[__LINE__] queue_node bad, now equals: [queue_node](\ref[queue_node])" + return + queue_node_flags = queue_node.flags + queue_node_priority = queue_node.queued_priority + + //super special case, subsystems where we can't make them pause mid way through + //if we can't run them this tick (without going over a tick) + //we bump up their priority and attempt to run them next tick + //(unless we haven't even ran anything this tick, since its unlikely they will ever be able run + // in those cases, so we just let them run) + if (queue_node_flags & SS_NO_TICK_CHECK) + if (queue_node.tick_usage > TICK_LIMIT_RUNNING - world.tick_usage && ran_non_ticker) + queue_node.queued_priority += queue_priority_count * 0.10 + queue_priority_count -= queue_node_priority + queue_priority_count += queue_node.queued_priority + current_tick_budget -= queue_node_priority + if (!istype(queue_node)) + world.log << "[__FILE__]:[__LINE__] queue_node bad, now equals: [queue_node](\ref[queue_node])" + return + queue_node = queue_node.queue_next + continue + + if ((queue_node_flags & SS_BACKGROUND) && !bg_calc) + current_tick_budget = queue_priority_count_bg + bg_calc = TRUE + + tick_remaining = TICK_LIMIT_RUNNING - world.tick_usage + + if (current_tick_budget > 0 && queue_node_priority > 0) + tick_precentage = tick_remaining / (current_tick_budget / queue_node_priority) + else + tick_precentage = tick_remaining + + CURRENT_TICKLIMIT = world.tick_usage + tick_precentage + + if (!(queue_node_flags & SS_TICKER)) + ran_non_ticker = TRUE + ran = TRUE + tick_usage = world.tick_usage + queue_node_paused = queue_node.paused + queue_node.paused = FALSE + last_type_processed = queue_node + + queue_node.fire(queue_node_paused) + + current_tick_budget -= queue_node_priority + tick_usage = world.tick_usage - tick_usage + + if (tick_usage < 0) + tick_usage = 0 + + if (queue_node.paused) + queue_node.paused_ticks++ + queue_node.paused_tick_usage += tick_usage + if (!istype(queue_node)) + world.log << "[__FILE__]:[__LINE__] queue_node bad, now equals: [queue_node](\ref[queue_node])" + return + queue_node = queue_node.queue_next + continue + + queue_node.ticks = MC_AVERAGE(queue_node.ticks, queue_node.paused_ticks) + tick_usage += queue_node.paused_tick_usage + + queue_node.tick_usage = MC_AVERAGE_FAST(queue_node.tick_usage, tick_usage) + + queue_node.cost = MC_AVERAGE_FAST(queue_node.cost, TICK_DELTA_TO_MS(tick_usage)) + queue_node.paused_ticks = 0 + queue_node.paused_tick_usage = 0 + + if (queue_node_flags & SS_BACKGROUND) //update our running total + queue_priority_count_bg -= queue_node_priority + else + queue_priority_count -= queue_node_priority + + queue_node.last_fire = world.time + queue_node.times_fired++ + + if (queue_node_flags & SS_TICKER) + queue_node.next_fire = world.time + (world.tick_lag * queue_node.wait) + else if (queue_node_flags & SS_POST_FIRE_TIMING) + queue_node.next_fire = world.time + queue_node.wait + else if (queue_node_flags & SS_KEEP_TIMING) + queue_node.next_fire += queue_node.wait + else + queue_node.next_fire = queue_node.queued_time + queue_node.wait + + queue_node.queued_time = 0 + + //remove from queue + queue_node.dequeue() + if (!istype(queue_node)) + world.log << "[__FILE__]:[__LINE__] queue_node bad, now equals: [queue_node](\ref[queue_node])" + return + queue_node = queue_node.queue_next + + CURRENT_TICKLIMIT = TICK_LIMIT_RUNNING + . = 1 + +//resets the queue, and all subsystems, while filtering out the subsystem lists +// called if any mc's queue procs runtime or exit improperly. +/datum/controller/master/proc/SoftReset(list/ticker_SS, list/normal_SS, list/lobby_SS) + . = 0 + world.log << "MC: SoftReset called, resetting MC queue state." + if (!istype(subsystems) || !istype(ticker_SS) || !istype(normal_SS) || !istype(lobby_SS)) + world.log << "MC: SoftReset: Bad list contents: '[subsystems]' '[ticker_SS]' '[normal_SS]' '[lobby_SS]' Crashing!" + return + var/subsystemstocheck = subsystems + ticker_SS + normal_SS + lobby_SS + + for (var/thing in subsystemstocheck) + var/datum/subsystem/SS = thing + if (!SS || !istype(SS)) + //list(SS) is so if a list makes it in the subsystem list, we remove the list, not the contents + subsystems -= list(SS) + ticker_SS -= list(SS) + normal_SS -= list(SS) + lobby_SS -= list(SS) + world.log << "MC: SoftReset: Found bad entry in subsystem list, '[SS]'" + continue + if (SS.queue_next && !istype(SS.queue_next)) + world.log << "MC: SoftReset: Found bad data in subsystem queue, queue_next = '[SS.queue_next]'" + SS.queue_next = null + if (SS.queue_prev && !istype(SS.queue_prev)) + world.log << "MC: SoftReset: Found bad data in subsystem queue, queue_prev = '[SS.queue_prev]'" + SS.queue_prev = null + SS.queued_priority = 0 + SS.queued_time = 0 + SS.paused = 0 + if (queue_head && !istype(queue_head)) + world.log << "MC: SoftReset: Found bad data in subsystem queue, queue_head = '[queue_head]'" + queue_head = null + if (queue_tail && !istype(queue_tail)) + world.log << "MC: SoftReset: Found bad data in subsystem queue, queue_tail = '[queue_tail]'" + queue_tail = null + queue_priority_count = 0 + queue_priority_count_bg = 0 + world.log << "MC: SoftReset: Finished." + . = 1 + + + +/datum/controller/master/proc/stat_entry() + if(!statclick) + statclick = new/obj/effect/statclick/debug("Initializing...", src) + + + stat("Master Controller:", statclick.update("(TickRate:[Master.processing]) (TickDrift:[round(Master.tickdrift)]) (Iteration:[Master.iteration])")) + diff --git a/code/controllers/subsystem.dm b/code/controllers/subsystem.dm new file mode 100644 index 0000000..e49316e --- /dev/null +++ b/code/controllers/subsystem.dm @@ -0,0 +1,164 @@ + + +/datum/subsystem + // Metadata; you should define these. + var/name = "fire coderbus" //name of the subsystem + var/init_order = 0 //order of initialization. Higher numbers are initialized first, lower numbers later. Can be decimal and negative values. + var/wait = 20 //time to wait (in deciseconds) between each call to fire(). Must be a positive integer. + var/display_order = 100 //display affects the order the subsystem is displayed in the MC tab + var/priority = 50 //When mutiple subsystems need to run in the same tick, higher priority subsystems will run first and be given a higher share of the tick before MC_TICK_CHECK triggers a sleep + + var/flags = 0 //see MC.dm in __DEFINES Most flags must be set on world start to take full effect. (You can also restart the mc to force them to process again) + + //set to 0 to prevent fire() calls, mostly for admin use or subsystems that may be resumed later + // use the SS_NO_FIRE flag instead for systems that never fire to keep it from even being added to the list + var/can_fire = TRUE + + // Bookkeeping variables; probably shouldn't mess with these. + var/last_fire = 0 //last world.time we called fire() + var/next_fire = 0 //scheduled world.time for next fire() + var/cost = 0 //average time to execute + var/tick_usage = 0 //average tick usage + var/paused = 0 //was this subsystem paused mid fire. + var/paused_ticks = 0 //ticks this ss is taking to run right now. + var/paused_tick_usage //total tick_usage of all of our runs while pausing this run + var/ticks = 1 //how many ticks does this ss take to run on avg. + var/times_fired = 0 //number of times we have called fire() + var/queued_time = 0 //time we entered the queue, (for timing and priority reasons) + var/queued_priority //we keep a running total to make the math easier, if it changes mid-fire that would break our running total, so we store it here + //linked list stuff for the queue + var/datum/subsystem/queue_next + var/datum/subsystem/queue_prev + + + // The object used for the clickable stat() button. + var/obj/effect/statclick/statclick + +// Used to initialize the subsystem BEFORE the map has loaded +/datum/subsystem/New() + +//previously, this would have been named 'process()' but that name is used everywhere for different things! +//fire() seems more suitable. This is the procedure that gets called every 'wait' deciseconds. +//fire(), and the procs it calls, SHOULD NOT HAVE ANY SLEEP OPERATIONS in them! +//YE BE WARNED! +/datum/subsystem/proc/fire(resumed = 0) + set waitfor = 0 //this should not be depended upon, this is just to solve issues with sleeps messing up tick tracking + can_fire = 0 + flags |= SS_NO_FIRE + throw EXCEPTION("Subsystem [src]([type]) does not fire() but did not set the SS_NO_FIRE flag. Please add the SS_NO_FIRE flag to any subsystem that doesn't fire so it doesn't get added to the processing list and waste cpu.") + +/datum/subsystem/Destroy() + dequeue() + can_fire = 0 + flags |= SS_NO_FIRE + Master.subsystems -= src + +/datum/subsystem/proc/enqueue() + var/SS_priority = priority + var/SS_flags = flags + var/datum/subsystem/queue_node + var/queue_node_priority + var/queue_node_flags + + for (queue_node = Master.queue_head; queue_node; queue_node = queue_node.queue_next) + queue_node_priority = queue_node.queued_priority + queue_node_flags = queue_node.flags + + if (queue_node_flags & SS_TICKER) + if (!(SS_flags & SS_TICKER)) + continue + if (queue_node_priority < SS_priority) + break + + else if (queue_node_flags & SS_BACKGROUND) + if (!(SS_flags & SS_BACKGROUND)) + break + if (queue_node_priority < SS_priority) + break + + else + if (SS_flags & SS_BACKGROUND) + continue + if (SS_flags & SS_TICKER) + break + if (queue_node_priority < SS_priority) + break + + queued_time = world.time + queued_priority = SS_priority + if (SS_flags & SS_BACKGROUND) //update our running total + Master.queue_priority_count_bg += SS_priority + else + Master.queue_priority_count += SS_priority + + queue_next = queue_node + if (!queue_node)//we stopped at the end, add to tail + queue_prev = Master.queue_tail + if (Master.queue_tail) + Master.queue_tail.queue_next = src + else //empty queue, we also need to set the head + Master.queue_head = src + Master.queue_tail = src + + else if (queue_node == Master.queue_head)//insert at start of list + Master.queue_head.queue_prev = src + Master.queue_head = src + queue_prev = null + else + queue_node.queue_prev.queue_next = src + queue_prev = queue_node.queue_prev + queue_node.queue_prev = src + + +/datum/subsystem/proc/dequeue() + if (queue_next) + queue_next.queue_prev = queue_prev + if (queue_prev) + queue_prev.queue_next = queue_next + if (src == Master.queue_tail) + Master.queue_tail = queue_prev + if (src == Master.queue_head) + Master.queue_head = queue_next + queued_time = 0 + + +/datum/subsystem/proc/pause() + . = 1 + paused = TRUE + paused_ticks++ + +//used to initialize the subsystem AFTER the map has loaded +/datum/subsystem/proc/Initialize(start_timeofday) + var/time = (world.timeofday - start_timeofday) / 10 + var/msg = "Initialized [name] subsystem within [time] seconds!" + world << "[msg]" + return time + +//hook for printing stats to the "MC" statuspanel for admins to see performance and related stats etc. +/datum/subsystem/proc/stat_entry(msg) + if(!statclick) + statclick = new/obj/effect/statclick/debug("Initializing...", src) + + if(can_fire) + msg = "[round(cost,1)]ms|[round(tick_usage,1)]%|[round(ticks,0.1)]\t[msg]" + else + msg = "OFFLINE\t[msg]" + + stat(name, statclick.update(msg)) + +//could be used to postpone a costly subsystem for (default one) var/cycles, cycles +//for instance, during cpu intensive operations like explosions +/datum/subsystem/proc/postpone(cycles = 1) + if(next_fire - world.time < wait) + next_fire += (wait*cycles) + +//usually called via datum/subsystem/New() when replacing a subsystem (i.e. due to a recurring crash) +//should attempt to salvage what it can from the old instance of subsystem +/datum/subsystem/proc/Recover() + +//this is so the subsystem doesn't rapid fire to make up missed ticks causing more lag +/datum/subsystem/on_varedit(edited_var) + if (edited_var == "can_fire" && can_fire) + next_fire = world.time + wait + ..() + diff --git a/code/controllers/subsystem/acid.dm b/code/controllers/subsystem/acid.dm new file mode 100644 index 0000000..23b671b --- /dev/null +++ b/code/controllers/subsystem/acid.dm @@ -0,0 +1,42 @@ +var/datum/subsystem/acid/SSacid + +/datum/subsystem/acid + name = "Acid" + priority = 40 + flags = SS_NO_INIT|SS_BACKGROUND + + var/list/currentrun = list() + var/list/processing = list() + +/datum/subsystem/acid/New() + NEW_SS_GLOBAL(SSacid) + + +/datum/subsystem/acid/stat_entry() + ..("P:[processing.len]") + + +/datum/subsystem/acid/fire(resumed = 0) + if (!resumed) + src.currentrun = processing.Copy() + + //cache for sanic speed (lists are references anyways) + var/list/currentrun = src.currentrun + + while (currentrun.len) + var/obj/O = currentrun[currentrun.len] + currentrun.len-- + if (!O || qdeleted(O)) + processing -= O + if (MC_TICK_CHECK) + return + continue + + if(O.acid_level && O.acid_processing()) + else + O.overlays -= acid_overlay + O.priority_overlays -= acid_overlay + processing -= O + + if (MC_TICK_CHECK) + return diff --git a/code/controllers/subsystem/air.dm b/code/controllers/subsystem/air.dm new file mode 100644 index 0000000..3c07eed --- /dev/null +++ b/code/controllers/subsystem/air.dm @@ -0,0 +1,354 @@ +#define SSAIR_PIPENETS 1 +#define SSAIR_ATMOSMACHINERY 2 +#define SSAIR_ACTIVETURFS 3 +#define SSAIR_EXCITEDGROUPS 4 +#define SSAIR_HIGHPRESSURE 5 +#define SSAIR_HOTSPOTS 6 +#define SSAIR_SUPERCONDUCTIVITY 7 +var/datum/subsystem/air/SSair + +/datum/subsystem/air + name = "Air" + init_order = -1 + priority = 20 + wait = 5 + flags = SS_BACKGROUND + display_order = 1 + + var/cost_turfs = 0 + var/cost_groups = 0 + var/cost_highpressure = 0 + var/cost_hotspots = 0 + var/cost_superconductivity = 0 + var/cost_pipenets = 0 + var/cost_atmos_machinery = 0 + + var/list/excited_groups = list() + var/list/active_turfs = list() + var/list/hotspots = list() + var/list/networks = list() + var/list/obj/machinery/atmos_machinery = list() + + + //Special functions lists + var/list/turf/active_super_conductivity = list() + var/list/turf/open/high_pressure_delta = list() + + + var/list/currentrun = list() + var/currentpart = SSAIR_PIPENETS + + +/datum/subsystem/air/New() + NEW_SS_GLOBAL(SSair) + +/datum/subsystem/air/stat_entry(msg) + msg += "C:{" + msg += "AT:[round(cost_turfs)]|" + msg += "EG:[round(cost_groups)]|" + msg += "HP:[round(cost_highpressure)]|" + msg += "HS:[round(cost_hotspots)]|" + msg += "SC:[round(cost_superconductivity)]|" + msg += "PN:[round(cost_pipenets)]|" + msg += "AM:[round(cost_atmos_machinery)]" + msg += "} " + msg += "AT:[active_turfs.len]|" + msg += "EG:[excited_groups.len]|" + msg += "HS:[hotspots.len]|" + msg += "AS:[active_super_conductivity.len]" + ..(msg) + + +/datum/subsystem/air/Initialize(timeofday) + setup_allturfs() + setup_atmos_machinery() + setup_pipenets() + ..() + + +/datum/subsystem/air/fire(resumed = 0) + var/timer = world.tick_usage + + if(currentpart == SSAIR_PIPENETS || !resumed) + process_pipenets(resumed) + cost_pipenets = MC_AVERAGE(cost_pipenets, TICK_DELTA_TO_MS(world.tick_usage - timer)) + if(paused) + return + resumed = 0 + currentpart = SSAIR_ATMOSMACHINERY + + if(currentpart == SSAIR_ATMOSMACHINERY) + timer = world.tick_usage + process_atmos_machinery(resumed) + cost_atmos_machinery = MC_AVERAGE(cost_atmos_machinery, TICK_DELTA_TO_MS(world.tick_usage - timer)) + if(paused) + return + resumed = 0 + currentpart = SSAIR_ACTIVETURFS + + if(currentpart == SSAIR_ACTIVETURFS) + timer = world.tick_usage + process_active_turfs(resumed) + cost_turfs = MC_AVERAGE(cost_turfs, TICK_DELTA_TO_MS(world.tick_usage - timer)) + if(paused) + return + resumed = 0 + currentpart = SSAIR_EXCITEDGROUPS + + if(currentpart == SSAIR_EXCITEDGROUPS) + timer = world.tick_usage + process_excited_groups(resumed) + cost_groups = MC_AVERAGE(cost_groups, TICK_DELTA_TO_MS(world.tick_usage - timer)) + if(paused) + return + resumed = 0 + currentpart = SSAIR_HIGHPRESSURE + + if(currentpart == SSAIR_HIGHPRESSURE) + timer = world.tick_usage + process_high_pressure_delta(resumed) + cost_highpressure = MC_AVERAGE(cost_highpressure, TICK_DELTA_TO_MS(world.tick_usage - timer)) + if(paused) + return + resumed = 0 + currentpart = SSAIR_HOTSPOTS + + if(currentpart == SSAIR_HOTSPOTS) + timer = world.tick_usage + process_hotspots(resumed) + cost_hotspots = MC_AVERAGE(cost_hotspots, TICK_DELTA_TO_MS(world.tick_usage - timer)) + if(paused) + return + resumed = 0 + currentpart = SSAIR_SUPERCONDUCTIVITY + + if(currentpart == SSAIR_SUPERCONDUCTIVITY) + timer = world.tick_usage + process_super_conductivity(resumed) + cost_superconductivity = MC_AVERAGE(cost_superconductivity, TICK_DELTA_TO_MS(world.tick_usage - timer)) + if(paused) + return + resumed = 0 + currentpart = SSAIR_PIPENETS + + + +/datum/subsystem/air/proc/process_pipenets(resumed = 0) + if (!resumed) + src.currentrun = networks.Copy() + //cache for sanic speed (lists are references anyways) + var/list/currentrun = src.currentrun + while(currentrun.len) + var/datum/thing = currentrun[currentrun.len] + currentrun.len-- + if(thing) + thing.process() + else + networks.Remove(thing) + if(MC_TICK_CHECK) + return + + +/datum/subsystem/air/proc/process_atmos_machinery(resumed = 0) + var/seconds = wait * 0.1 + if (!resumed) + src.currentrun = atmos_machinery.Copy() + //cache for sanic speed (lists are references anyways) + var/list/currentrun = src.currentrun + while(currentrun.len) + var/obj/machinery/M = currentrun[currentrun.len] + currentrun.len-- + if(!M || (M.process_atmos(seconds) == PROCESS_KILL)) + atmos_machinery.Remove(M) + if(MC_TICK_CHECK) + return + + +/datum/subsystem/air/proc/process_super_conductivity(resumed = 0) + if (!resumed) + src.currentrun = active_super_conductivity.Copy() + //cache for sanic speed (lists are references anyways) + var/list/currentrun = src.currentrun + while(currentrun.len) + var/turf/T = currentrun[currentrun.len] + currentrun.len-- + T.super_conduct() + if(MC_TICK_CHECK) + return + +/datum/subsystem/air/proc/process_hotspots(resumed = 0) + if (!resumed) + src.currentrun = hotspots.Copy() + //cache for sanic speed (lists are references anyways) + var/list/currentrun = src.currentrun + while(currentrun.len) + var/obj/effect/hotspot/H = currentrun[currentrun.len] + currentrun.len-- + if (H) + H.process() + else + hotspots -= H + if(MC_TICK_CHECK) + return + + +/datum/subsystem/air/proc/process_high_pressure_delta(resumed = 0) + while (high_pressure_delta.len) + var/turf/open/T = high_pressure_delta[high_pressure_delta.len] + high_pressure_delta.len-- + T.high_pressure_movements() + T.pressure_difference = 0 + if(MC_TICK_CHECK) + return + +/datum/subsystem/air/proc/process_active_turfs(resumed = 0) + //cache for sanic speed + var/fire_count = times_fired + if (!resumed) + src.currentrun = active_turfs.Copy() + //cache for sanic speed (lists are references anyways) + var/list/currentrun = src.currentrun + while(currentrun.len) + var/turf/open/T = currentrun[currentrun.len] + currentrun.len-- + if (T) + T.process_cell(fire_count) + if (MC_TICK_CHECK) + return + +/datum/subsystem/air/proc/process_excited_groups(resumed = 0) + if (!resumed) + src.currentrun = excited_groups.Copy() + //cache for sanic speed (lists are references anyways) + var/list/currentrun = src.currentrun + while(currentrun.len) + var/datum/excited_group/EG = currentrun[currentrun.len] + currentrun.len-- + EG.breakdown_cooldown++ + EG.dismantle_cooldown++ + if(EG.breakdown_cooldown >= EXCITED_GROUP_BREAKDOWN_CYCLES) + EG.self_breakdown() + else if(EG.dismantle_cooldown >= EXCITED_GROUP_DISMANTLE_CYCLES) + EG.dismantle() + if (MC_TICK_CHECK) + return + + +/datum/subsystem/air/proc/remove_from_active(turf/open/T) + active_turfs -= T + if(istype(T)) + T.excited = 0 + if(T.excited_group) + T.excited_group.garbage_collect() + + +/datum/subsystem/air/proc/add_to_active(turf/open/T, blockchanges = 1) + if(istype(T) && T.air) + T.excited = 1 + active_turfs |= T + if(blockchanges && T.excited_group) + T.excited_group.garbage_collect() + else + for(var/turf/S in T.atmos_adjacent_turfs) + add_to_active(S) + + +/datum/subsystem/air/proc/setup_allturfs() + var/list/turfs_to_init = block(locate(1, 1, 1), locate(world.maxx, world.maxy, world.maxz)) + var/list/active_turfs = src.active_turfs + var/times_fired = ++src.times_fired + + for(var/thing in turfs_to_init) + var/turf/T = thing + active_turfs -= T + if (T.blocks_air) + continue + T.Initalize_Atmos(times_fired) + + if(active_turfs.len) + var/starting_ats = active_turfs.len + sleep(world.tick_lag) + var/timer = world.timeofday + warning("There are [starting_ats] active turfs at roundstart, this is a mapping error caused by a difference of the air between the adjacent turfs. You can see its coordinates using \"Mapping -> Show roundstart AT list\" verb (debug verbs required)") + for(var/turf/T in active_turfs) + active_turfs_startlist += text("[T.x], [T.y], [T.z]\n") + + //now lets clear out these active turfs + var/list/turfs_to_check = active_turfs.Copy() + do + var/list/new_turfs_to_check = list() + for(var/turf/open/T in turfs_to_check) + new_turfs_to_check += T.resolve_active_graph() + + active_turfs += new_turfs_to_check + turfs_to_check = new_turfs_to_check + + while (turfs_to_check.len) + var/ending_ats = active_turfs.len + for(var/thing in excited_groups) + var/datum/excited_group/EG = thing + EG.self_breakdown(space_is_all_consuming = 1) + EG.dismantle() + + var/msg = "HEY! LISTEN! [(world.timeofday - timer)/10] Seconds were wasted processing [starting_ats] turf(s) (connected to [ending_ats] other turfs) with atmos differences at round start." + world << "[msg]" + warning(msg) + +/turf/open/proc/resolve_active_graph() + . = list() + var/datum/excited_group/EG = excited_group + if (blocks_air || !air) + return + if (!EG) + EG = new + EG.add_turf(src) + + for (var/turf/open/ET in atmos_adjacent_turfs) + if ( ET.blocks_air || !ET.air) + continue + + var/ET_EG = ET.excited_group + if (ET_EG) + if (ET_EG != EG) + EG.merge_groups(ET_EG) + EG = excited_group //merge_groups() may decide to replace our current EG + else + EG.add_turf(ET) + if (!ET.excited) + ET.excited = 1 + . += ET +/turf/open/space/resolve_active_graph() + return list() + +/datum/subsystem/air/proc/setup_atmos_machinery() + for (var/obj/machinery/atmospherics/AM in atmos_machinery) + AM.atmosinit() + CHECK_TICK + +//this can't be done with setup_atmos_machinery() because +// all atmos machinery has to initalize before the first +// pipenet can be built. +/datum/subsystem/air/proc/setup_pipenets() + for (var/obj/machinery/atmospherics/AM in atmos_machinery) + AM.build_network() + CHECK_TICK + +/datum/subsystem/air/proc/setup_template_machinery(list/atmos_machines) + for(var/A in atmos_machines) + var/obj/machinery/atmospherics/AM = A + AM.atmosinit() + CHECK_TICK + + for(var/A in atmos_machines) + var/obj/machinery/atmospherics/AM = A + AM.build_network() + CHECK_TICK + + +#undef SSAIR_PIPENETS +#undef SSAIR_ATMOSMACHINERY +#undef SSAIR_ACTIVETURFS +#undef SSAIR_EXCITEDGROUPS +#undef SSAIR_HIGHPRESSURE +#undef SSAIR_HOTSPOT +#undef SSAIR_SUPERCONDUCTIVITY diff --git a/code/controllers/subsystem/assets.dm b/code/controllers/subsystem/assets.dm new file mode 100644 index 0000000..1ee073e --- /dev/null +++ b/code/controllers/subsystem/assets.dm @@ -0,0 +1,21 @@ +var/datum/subsystem/assets/SSasset + +/datum/subsystem/assets + name = "Assets" + init_order = -3 + flags = SS_NO_FIRE + var/list/cache = list() + +/datum/subsystem/assets/New() + NEW_SS_GLOBAL(SSasset) + +/datum/subsystem/assets/Initialize(timeofday) + for(var/type in typesof(/datum/asset) - list(/datum/asset, /datum/asset/simple)) + var/datum/asset/A = new type() + A.register() + + for(var/client/C in clients) + // Doing this to a client too soon after they've connected can cause issues, also the proc we call sleeps. + spawn(10) + getFilesSlow(C, cache, FALSE) + ..() diff --git a/code/controllers/subsystem/augury.dm b/code/controllers/subsystem/augury.dm new file mode 100644 index 0000000..1aed514 --- /dev/null +++ b/code/controllers/subsystem/augury.dm @@ -0,0 +1,74 @@ +var/datum/subsystem/augury/SSaugury + +/datum/subsystem/augury + name = "Augury" + flags = SS_NO_INIT + + var/list/watchers = list() + var/list/doombringers = list() + + var/list/observers_given_action = list() + +/datum/subsystem/augury/New() + NEW_SS_GLOBAL(SSaugury) + +/datum/subsystem/augury/stat_entry(msg) + ..("W:[watchers.len]|D:[doombringers.len]") + +/datum/subsystem/augury/proc/register_doom(atom/A, severity) + doombringers[A] = severity + +/datum/subsystem/augury/fire() + var/biggest_doom = null + var/biggest_threat = null + + for(var/d in doombringers) + if(!d || qdeleted(d)) + doombringers -= d + continue + var/threat = doombringers[d] + if((biggest_threat == null) || (biggest_threat < threat)) + biggest_doom = d + biggest_threat = threat + + if(doombringers.len) + for(var/i in player_list) + if(isobserver(i) && (!(observers_given_action[i]))) + var/datum/action/innate/augury/A = new + A.Grant(i) + observers_given_action[i] = TRUE + + for(var/w in watchers) + if(!w) + watchers -= w + continue + var/mob/dead/observer/O = w + if(O.orbiting) + continue + else if(biggest_doom) + addtimer(O, "orbit", 0, FALSE, biggest_doom) + +/datum/action/innate/augury + name = "Auto Follow Debris" + icon_icon = 'icons/obj/meteor.dmi' + button_icon_state = "flaming" + +/datum/action/innate/augury/Activate() + SSaugury.watchers[owner] = TRUE + owner << "You are now auto-following debris." + active = TRUE + UpdateButtonIcon() + +/datum/action/innate/augury/Deactivate() + SSaugury.watchers -= owner + owner << "You are no longer auto-following \ + debris." + active = FALSE + UpdateButtonIcon() + +/datum/action/innate/augury/UpdateButtonIcon() + ..() + if(active) + button.icon_state = "bg_default_on" + else + button.icon_state = background_icon_state diff --git a/code/controllers/subsystem/diseases.dm b/code/controllers/subsystem/diseases.dm new file mode 100644 index 0000000..6d5b476 --- /dev/null +++ b/code/controllers/subsystem/diseases.dm @@ -0,0 +1,30 @@ +var/datum/subsystem/diseases/SSdisease + +/datum/subsystem/diseases + name = "Diseases" + flags = SS_KEEP_TIMING|SS_NO_INIT + + var/list/currentrun = list() + var/list/processing = list() + +/datum/subsystem/diseases/New() + NEW_SS_GLOBAL(SSdisease) + +/datum/subsystem/diseases/stat_entry(msg) + ..("P:[processing.len]") + +/datum/subsystem/diseases/fire(resumed = 0) + if(!resumed) + src.currentrun = processing.Copy() + //cache for sanic speed (lists are references anyways) + var/list/currentrun = src.currentrun + + while(currentrun.len) + var/datum/thing = currentrun[currentrun.len] + currentrun.len-- + if(thing) + thing.process() + else + processing.Remove(thing) + if (MC_TICK_CHECK) + return diff --git a/code/controllers/subsystem/events.dm b/code/controllers/subsystem/events.dm new file mode 100644 index 0000000..c2d43e9 --- /dev/null +++ b/code/controllers/subsystem/events.dm @@ -0,0 +1,208 @@ +var/datum/subsystem/events/SSevent + +/datum/subsystem/events + name = "Events" + init_order = 6 + + var/list/control = list() //list of all datum/round_event_control. Used for selecting events based on weight and occurrences. + var/list/running = list() //list of all existing /datum/round_event + var/list/currentrun = list() + + var/scheduled = 0 //The next world.time that a naturally occuring random event can be selected. + var/frequency_lower = 1800 //3 minutes lower bound. + var/frequency_upper = 6000 //10 minutes upper bound. Basically an event will happen every 3 to 10 minutes. + + var/list/holidays //List of all holidays occuring today or null if no holidays + var/wizardmode = 0 + + +/datum/subsystem/events/New() + NEW_SS_GLOBAL(SSevent) + + +/datum/subsystem/events/Initialize(time, zlevel) + for(var/type in typesof(/datum/round_event_control)) + var/datum/round_event_control/E = new type() + if(!E.typepath) + continue //don't want this one! leave it for the garbage collector + control += E //add it to the list of all events (controls) + reschedule() + getHoliday() + ..() + + +/datum/subsystem/events/fire(resumed = 0) + if(!resumed) + checkEvent() //only check these if we aren't resuming a paused fire + src.currentrun = running.Copy() + + //cache for sanic speed (lists are references anyways) + var/list/currentrun = src.currentrun + + while(currentrun.len) + var/datum/thing = currentrun[currentrun.len] + currentrun.len-- + if(thing) + thing.process() + else + running.Remove(thing) + if (MC_TICK_CHECK) + return + +//checks if we should select a random event yet, and reschedules if necessary +/datum/subsystem/events/proc/checkEvent() + if(scheduled <= world.time) + spawnEvent() + reschedule() + +//decides which world.time we should select another random event at. +/datum/subsystem/events/proc/reschedule() + scheduled = world.time + rand(frequency_lower, max(frequency_lower,frequency_upper)) + +//selects a random event based on whether it can occur and it's 'weight'(probability) +/datum/subsystem/events/proc/spawnEvent() + if(!config.allow_random_events) +// var/datum/round_event_control/E = locate(/datum/round_event_control/dust) in control +// if(E) E.runEvent() + return + + var/gamemode = ticker.mode.config_tag + var/players_amt = get_active_player_count(alive_check = 1, afk_check = 1, human_check = 1) + // Only alive, non-AFK human players count towards this. + + var/sum_of_weights = 0 + for(var/datum/round_event_control/E in control) + if(E.aspect) + continue + if(!E.canSpawnEvent(players_amt, gamemode)) + continue + if(E.weight < 0) //for round-start events etc. + if(E.runEvent() == PROCESS_KILL) + E.max_occurrences = 0 + continue + if (E.alertadmins) + message_admins("Random Event triggering: [E.name] ([E.typepath])") + log_game("Random Event triggering: [E.name] ([E.typepath])") + return + sum_of_weights += E.weight + + sum_of_weights = rand(0,sum_of_weights) //reusing this variable. It now represents the 'weight' we want to select + + for(var/datum/round_event_control/E in control) + if(E.aspect) + continue + if(!E.canSpawnEvent(players_amt, gamemode)) + continue + sum_of_weights -= E.weight + + if(sum_of_weights <= 0) //we've hit our goal + if(E.runEvent() == PROCESS_KILL)//we couldn't run this event for some reason, set its max_occurrences to 0 + E.max_occurrences = 0 + continue + if (E.alertadmins) + message_admins("Random Event triggering: [E.name] ([E.typepath])") + log_game("Random Event triggering: [E.name] ([E.typepath])") + return + +/datum/round_event/proc/findEventArea() //Here's a nice proc to use to find an area for your event to land in! + var/list/safe_areas = list( + /area/ai_monitored/turret_protected/ai, + /area/ai_monitored/turret_protected/ai_upload, + /area/engine, + /area/solar, + /area/holodeck, + /area/shuttle + ) + + //These are needed because /area/engine has to be removed from the list, but we still want these areas to get fucked up. + var/list/danger_areas = list( + /area/engine/break_room, + /area/engine/chiefs_office) + + //Need to locate() as it's just a list of paths. + return locate(pick((the_station_areas - safe_areas) + danger_areas)) + + +//allows a client to trigger an event +//aka Badmin Central +/client/proc/forceEvent() + set name = "Trigger Event" + set category = "Fun" + + if(!holder ||!check_rights(R_FUN)) + return + + holder.forceEvent() + +/datum/admins/proc/forceEvent() + var/dat = "" + var/normal = "" + var/magic = "" + var/holiday = "" + for(var/datum/round_event_control/E in SSevent.control) + dat = "
    [E]" + if(E.holidayID) + holiday += dat + else if(E.wizardevent) + magic += dat + else + normal += dat + + dat = normal + "
    " + magic + "
    " + holiday + + var/datum/browser/popup = new(usr, "forceevent", "Force Random Event", 300, 750) + popup.set_content(dat) + popup.open() + + +/* +////////////// +// HOLIDAYS // +////////////// +//Uncommenting ALLOW_HOLIDAYS in config.txt will enable holidays + +//It's easy to add stuff. Just add a holiday datum in code/modules/holiday/holidays.dm +//You can then check if it's a special day in any code in the game by doing if(SSevent.holidays["Groundhog Day"]) + +//You can also make holiday random events easily thanks to Pete/Gia's system. +//simply make a random event normally, then assign it a holidayID string which matches the holiday's name. +//Anything with a holidayID, which isn't in the holidays list, will never occur. + +//Please, Don't spam stuff up with stupid stuff (key example being april-fools Pooh/ERP/etc), +//And don't forget: CHECK YOUR CODE!!!! We don't want any zero-day bugs which happen only on holidays and never get found/fixed! + +////////////////////////////////////////////////////////////////////////////////////////////////////////// +//ALSO, MOST IMPORTANTLY: Don't add stupid stuff! Discuss bonus content with Project-Heads first please!// +////////////////////////////////////////////////////////////////////////////////////////////////////////// +*/ + +//sets up the holidays and holidays list +/datum/subsystem/events/proc/getHoliday() + if(!config.allow_holidays) + return // Holiday stuff was not enabled in the config! + + var/YY = text2num(time2text(world.timeofday, "YY")) // get the current year + var/MM = text2num(time2text(world.timeofday, "MM")) // get the current month + var/DD = text2num(time2text(world.timeofday, "DD")) // get the current day + + for(var/H in subtypesof(/datum/holiday)) + var/datum/holiday/holiday = new H() + if(holiday.shouldCelebrate(DD, MM, YY)) + holiday.celebrate() + if(!holidays) + holidays = list() + holidays[holiday.name] = holiday + + if(holidays) + holidays = shuffle(holidays) + world.update_status() + +/datum/subsystem/events/proc/toggleWizardmode() + wizardmode = !wizardmode + message_admins("Summon Events has been [wizardmode ? "enabled, events will occur every [SSevent.frequency_lower / 600] to [SSevent.frequency_upper / 600] minutes" : "disabled"]!") + log_game("Summon Events was [wizardmode ? "enabled" : "disabled"]!") + + +/datum/subsystem/events/proc/resetFrequency() + frequency_lower = initial(frequency_lower) + frequency_upper = initial(frequency_upper) diff --git a/code/controllers/subsystem/fire_burning.dm b/code/controllers/subsystem/fire_burning.dm new file mode 100644 index 0000000..2ace744 --- /dev/null +++ b/code/controllers/subsystem/fire_burning.dm @@ -0,0 +1,42 @@ +var/datum/subsystem/fire_burning/SSfire_burning + +/datum/subsystem/fire_burning + name = "Fire Burning" + priority = 40 + flags = SS_NO_INIT|SS_BACKGROUND + + var/list/currentrun = list() + var/list/processing = list() + +/datum/subsystem/fire_burning/New() + NEW_SS_GLOBAL(SSfire_burning) + + +/datum/subsystem/fire_burning/stat_entry() + ..("P:[processing.len]") + + +/datum/subsystem/fire_burning/fire(resumed = 0) + if (!resumed) + src.currentrun = processing.Copy() + + //cache for sanic speed (lists are references anyways) + var/list/currentrun = src.currentrun + + while(currentrun.len) + var/obj/O = currentrun[currentrun.len] + currentrun.len-- + if (!O || qdeleted(O)) + processing -= O + if (MC_TICK_CHECK) + return + continue + + if(O.resistance_flags & ON_FIRE) + O.take_damage(20, BURN, "fire", 0) + else + processing -= O + + if (MC_TICK_CHECK) + return + diff --git a/code/controllers/subsystem/garbage.dm b/code/controllers/subsystem/garbage.dm new file mode 100644 index 0000000..819c2e4 --- /dev/null +++ b/code/controllers/subsystem/garbage.dm @@ -0,0 +1,312 @@ +var/datum/subsystem/garbage_collector/SSgarbage + +/datum/subsystem/garbage_collector + name = "Garbage" + priority = 15 + wait = 5 + display_order = 2 + flags = SS_FIRE_IN_LOBBY|SS_POST_FIRE_TIMING|SS_BACKGROUND|SS_NO_INIT + + var/collection_timeout = 3000// deciseconds to wait to let running procs finish before we just say fuck it and force del() the object + var/delslasttick = 0 // number of del()'s we've done this tick + var/gcedlasttick = 0 // number of things that gc'ed last tick + var/totaldels = 0 + var/totalgcs = 0 + + var/highest_del_time = 0 + var/highest_del_tickusage = 0 + + var/list/queue = list() // list of refID's of things that should be garbage collected + // refID's are associated with the time at which they time out and need to be manually del() + // we do this so we aren't constantly locating them and preventing them from being gc'd + + var/list/tobequeued = list() //We store the references of things to be added to the queue seperately so we can spread out GC overhead over a few ticks + + var/list/didntgc = list() // list of all types that have failed to GC associated with the number of times that's happened. + // the types are stored as strings + + var/list/noqdelhint = list()// list of all types that do not return a QDEL_HINT + // all types that did not respect qdel(A, force=TRUE) and returned one + // of the immortality qdel hints + var/list/noforcerespect = list() + +#ifdef TESTING + var/list/qdel_list = list() // list of all types that have been qdel()eted +#endif + +/datum/subsystem/garbage_collector/New() + NEW_SS_GLOBAL(SSgarbage) + +/datum/subsystem/garbage_collector/stat_entry(msg) + msg += "Q:[queue.len]|D:[delslasttick]|G:[gcedlasttick]|" + msg += "GR:" + if (!(delslasttick+gcedlasttick)) + msg += "n/a|" + else + msg += "[round((gcedlasttick/(delslasttick+gcedlasttick))*100, 0.01)]%|" + + msg += "TD:[totaldels]|TG:[totalgcs]|" + if (!(totaldels+totalgcs)) + msg += "n/a|" + else + msg += "TGR:[round((totalgcs/(totaldels+totalgcs))*100, 0.01)]%" + ..(msg) + +/datum/subsystem/garbage_collector/fire() + HandleToBeQueued() + if (!paused) + HandleQueue() + +//If you see this proc high on the profile, what you are really seeing is the garbage collection/soft delete overhead in byond. +//Don't attempt to optimize, not worth the effort. +/datum/subsystem/garbage_collector/proc/HandleToBeQueued() + var/list/tobequeued = src.tobequeued + var/starttime = world.time + var/starttimeofday = world.timeofday + while(tobequeued.len && starttime == world.time && starttimeofday == world.timeofday) + if (MC_TICK_CHECK) + break + var/ref = tobequeued[1] + Queue(ref) + tobequeued.Cut(1, 2) + +/datum/subsystem/garbage_collector/proc/HandleQueue(time_to_stop) + delslasttick = 0 + gcedlasttick = 0 + var/time_to_kill = world.time - collection_timeout // Anything qdel() but not GC'd BEFORE this time needs to be manually del() + var/list/queue = src.queue + var/starttime = world.time + var/starttimeofday = world.timeofday + while(queue.len && starttime == world.time && starttimeofday == world.timeofday) + if (MC_TICK_CHECK) + break + var/refID = queue[1] + if (!refID) + queue.Cut(1, 2) + continue + + var/GCd_at_time = queue[refID] + if(GCd_at_time > time_to_kill) + break // Everything else is newer, skip them + queue.Cut(1, 2) + var/datum/A + A = locate(refID) + if (A && A.gc_destroyed == GCd_at_time) // So if something else coincidently gets the same ref, it's not deleted by mistake + // Something's still referring to the qdel'd object. Kill it. + var/type = A.type + testing("GC: -- \ref[A] | [type] was unable to be GC'd and was deleted --") + didntgc["[type]"]++ + var/time = world.timeofday + var/tick = world.tick_usage + var/ticktime = world.time + del(A) + tick = (world.tick_usage-tick+((world.time-ticktime)/world.tick_lag*100)) + + if (tick > highest_del_tickusage) + highest_del_tickusage = tick + time = world.timeofday - time + if (!time && TICK_DELTA_TO_MS(tick) > 1) + time = TICK_DELTA_TO_MS(tick)/100 + if (time > highest_del_time) + highest_del_time = time + if (time > 10) + log_game("Error: [type]([refID]) took longer then 1 second to delete (took [time/10] seconds to delete)") + message_admins("Error: [type]([refID]) took longer then 1 second to delete (took [time/10] seconds to delete).") + postpone(time/5) + break + ++delslasttick + ++totaldels + else + ++gcedlasttick + ++totalgcs + +/datum/subsystem/garbage_collector/proc/QueueForQueuing(datum/A) + if (istype(A) && isnull(A.gc_destroyed)) + tobequeued += A + A.gc_destroyed = GC_QUEUED_FOR_QUEUING + +/datum/subsystem/garbage_collector/proc/Queue(datum/A) + if (!istype(A) || (!isnull(A.gc_destroyed) && A.gc_destroyed >= 0)) + return + if (A.gc_destroyed == GC_QUEUED_FOR_HARD_DEL) + del(A) + return + var/gctime = world.time + var/refid = "\ref[A]" + + A.gc_destroyed = gctime + + if (queue[refid]) + queue -= refid // Removing any previous references that were GC'd so that the current object will be at the end of the list. + + queue[refid] = gctime + +/datum/subsystem/garbage_collector/proc/HardQueue(datum/A) + if (istype(A) && isnull(A.gc_destroyed)) + tobequeued += A + A.gc_destroyed = GC_QUEUED_FOR_HARD_DEL + +/datum/subsystem/garbage_collector/Recover() + if (istype(SSgarbage.queue)) + queue |= SSgarbage.queue + if (istype(SSgarbage.tobequeued)) + tobequeued |= SSgarbage.tobequeued + +// Should be treated as a replacement for the 'del' keyword. +// Datums passed to this will be given a chance to clean up references to allow the GC to collect them. +/proc/qdel(datum/D, force=FALSE) + if(!D) + return +#ifdef TESTING + SSgarbage.qdel_list += "[A.type]" +#endif + if(!istype(D)) + del(D) + else if(isnull(D.gc_destroyed)) + var/hint = D.Destroy(force) // Let our friend know they're about to get fucked up. + if(!D) + return + switch(hint) + if (QDEL_HINT_QUEUE) //qdel should queue the object for deletion. + SSgarbage.QueueForQueuing(D) + if (QDEL_HINT_LETMELIVE, QDEL_HINT_IWILLGC) //qdel should let the object live after calling destory. + if(!force) + return + // Returning LETMELIVE after being told to force destroy + // indicates the objects Destroy() does not respect force + if(!SSgarbage.noforcerespect["[D.type]"]) + SSgarbage.noforcerespect["[D.type]"] = "[D.type]" + testing("WARNING: [D.type] has been force deleted, but is \ + returning an immortal QDEL_HINT, indicating it does \ + not respect the force flag for qdel(). It has been \ + placed in the queue, further instances of this type \ + will also be queued.") + SSgarbage.QueueForQueuing(D) + if (QDEL_HINT_HARDDEL) //qdel should assume this object won't gc, and queue a hard delete using a hard reference to save time from the locate() + SSgarbage.HardQueue(D) + if (QDEL_HINT_HARDDEL_NOW) //qdel should assume this object won't gc, and hard del it post haste. + del(D) + if (QDEL_HINT_PUTINPOOL) //qdel will put this object in the pool. + PlaceInPool(D, 0) + if (QDEL_HINT_FINDREFERENCE)//qdel will, if TESTING is enabled, display all references to this object, then queue the object for deletion. + SSgarbage.QueueForQueuing(D) + #ifdef TESTING + A.find_references() + #endif + else + if(!SSgarbage.noqdelhint["[D.type]"]) + SSgarbage.noqdelhint["[D.type]"] = "[D.type]" + testing("WARNING: [D.type] is not returning a qdel hint. It is being placed in the queue. Further instances of this type will also be queued.") + SSgarbage.QueueForQueuing(D) + +// Returns 1 if the object has been queued for deletion. +/proc/qdeleted(datum/D) + if(!istype(D)) + return FALSE + if(D.gc_destroyed) + return TRUE + return FALSE + +// Default implementation of clean-up code. +// This should be overridden to remove all references pointing to the object being destroyed. +// Return the appropriate QDEL_HINT; in most cases this is QDEL_HINT_QUEUE. +/datum/proc/Destroy(force=FALSE) + tag = null + return QDEL_HINT_QUEUE + +/datum/var/gc_destroyed //Time when this object was destroyed. + +#ifdef TESTING +/client/var/running_find_references +/datum/var/running_find_references + +/datum/verb/find_references() + set category = "Debug" + set name = "Find References" + set background = 1 + set src in world + + running_find_references = type + if(usr && usr.client) + if(usr.client.running_find_references) + testing("CANCELLED search for references to a [usr.client.running_find_references].") + usr.client.running_find_references = null + running_find_references = null + //restart the garbage collector + SSgarbage.can_fire = 1 + SSgarbage.next_fire = world.time + world.tick_lag + return + + if(alert("Running this will create a lot of lag until it finishes. You can cancel it by running it again. Would you like to begin the search?", "Find References", "Yes", "No") == "No") + running_find_references = null + return + + //this keeps the garbage collector from failing to collect objects being searched for in here + SSgarbage.can_fire = 0 + + if(usr && usr.client) + usr.client.running_find_references = type + + testing("Beginning search for references to a [type].") + var/list/things = list() + for(var/client/thing) + things |= thing + for(var/datum/thing) + things |= thing + testing("Collected list of things in search for references to a [type]. ([things.len] Thing\s)") + for(var/datum/thing in things) + if(usr && usr.client && !usr.client.running_find_references) return + for(var/varname in thing.vars) + var/variable = thing.vars[varname] + if(variable == src) + testing("Found [src.type] \ref[src] in [thing.type]'s [varname] var.") + else if(islist(variable)) + if(src in variable) + testing("Found [src.type] \ref[src] in [thing.type]'s [varname] list var.") + testing("Completed search for references to a [type].") + if(usr && usr.client) + usr.client.running_find_references = null + running_find_references = null + + //restart the garbage collector + SSgarbage.can_fire = 1 + SSgarbage.next_fire = world.time + world.tick_lag + +/client/verb/purge_all_destroyed_objects() + set category = "Debug" + if(SSgarbage) + while(SSgarbage.queue.len) + var/datum/o = locate(SSgarbage.queue[1]) + if(istype(o) && o.gc_destroyed) + del(o) + SSgarbage.totaldels++ + SSgarbage.queue.Cut(1, 2) + +/datum/verb/qdel_then_find_references() + set category = "Debug" + set name = "qdel() then Find References" + set background = 1 + set src in world + + qdel(src) + if(!running_find_references) + find_references() + +/client/verb/show_qdeleted() + set category = "Debug" + set name = "Show qdel() Log" + set desc = "Render the qdel() log and display it" + + var/dat = "List of things that have been qdel()eted this round

    " + + var/tmplist = list() + for(var/elem in SSgarbage.qdel_list) + if(!(elem in tmplist)) + tmplist[elem] = 0 + tmplist[elem]++ + + for(var/path in tmplist) + dat += "[path] - [tmplist[path]] times
    " + + usr << browse(dat, "window=qdeletedlog") +#endif diff --git a/code/controllers/subsystem/icon_smooth.dm b/code/controllers/subsystem/icon_smooth.dm new file mode 100644 index 0000000..2b19a0d --- /dev/null +++ b/code/controllers/subsystem/icon_smooth.dm @@ -0,0 +1,32 @@ +var/datum/subsystem/icon_smooth/SSicon_smooth + +/datum/subsystem/icon_smooth + name = "Icon Smoothing" + init_order = -5 + wait = 1 + priority = 35 + flags = SS_TICKER + + var/list/smooth_queue = list() + +/datum/subsystem/icon_smooth/New() + NEW_SS_GLOBAL(SSicon_smooth) + +/datum/subsystem/icon_smooth/fire() + while(smooth_queue.len) + var/atom/A = smooth_queue[smooth_queue.len] + smooth_queue.len-- + ss_smooth_icon(A) + if (MC_TICK_CHECK) + return + if (!smooth_queue.len) + can_fire = 0 + +/datum/subsystem/icon_smooth/Initialize() + smooth_zlevel(1,TRUE) + smooth_zlevel(2,TRUE) + for(var/V in smooth_queue) + var/atom/A = V + if(A.z == 1 || A.z == 2) + smooth_queue -= A + ..() \ No newline at end of file diff --git a/code/controllers/subsystem/ipintel.dm b/code/controllers/subsystem/ipintel.dm new file mode 100644 index 0000000..b1b99d5 --- /dev/null +++ b/code/controllers/subsystem/ipintel.dm @@ -0,0 +1,19 @@ +var/datum/subsystem/ipintel/SSipintel + +/datum/subsystem/ipintel + name = "XKeyScore" + init_order = -10 + flags = SS_NO_FIRE + var/enabled = 0 //disable at round start to avoid checking reconnects + var/throttle = 0 + var/errors = 0 + + var/list/cache = list() + +/datum/subsystem/ipintel/New() + NEW_SS_GLOBAL(SSipintel) + +/datum/subsystem/ipintel/Initialize(timeofday, zlevel) + enabled = 1 + . = ..() + diff --git a/code/controllers/subsystem/jobs.dm b/code/controllers/subsystem/jobs.dm new file mode 100644 index 0000000..8b0968b --- /dev/null +++ b/code/controllers/subsystem/jobs.dm @@ -0,0 +1,497 @@ +var/datum/subsystem/job/SSjob + +/datum/subsystem/job + name = "Jobs" + init_order = 5 + flags = SS_NO_FIRE + + var/list/occupations = list() //List of all jobs + var/list/unassigned = list() //Players who need jobs + var/list/job_debug = list() //Debug info + var/initial_players_to_assign = 0 //used for checking against population caps + +/datum/subsystem/job/New() + NEW_SS_GLOBAL(SSjob) + + +/datum/subsystem/job/Initialize(timeofday) + SetupOccupations() + if(config.load_jobs_from_txt) + LoadJobs() + ..() + + +/datum/subsystem/job/proc/SetupOccupations(faction = "Station") + occupations = list() + var/list/all_jobs = subtypesof(/datum/job) + if(!all_jobs.len) + world << "Error setting up jobs, no job datums found" + return 0 + + for(var/J in all_jobs) + var/datum/job/job = new J() + if(!job) + continue + if(job.faction != faction) + continue + if(!job.config_check()) + continue + occupations += job + + return 1 + + +/datum/subsystem/job/proc/Debug(text) + if(!Debug2) + return 0 + job_debug.Add(text) + return 1 + + +/datum/subsystem/job/proc/GetJob(rank) + if(!rank) + return null + for(var/datum/job/J in occupations) + if(!J) + continue + if(J.title == rank) + return J + return null + +/datum/subsystem/job/proc/AssignRole(mob/new_player/player, rank, latejoin=0) + Debug("Running AR, Player: [player], Rank: [rank], LJ: [latejoin]") + if(player && player.mind && rank) + var/datum/job/job = GetJob(rank) + if(!job) + return 0 + if(jobban_isbanned(player, rank)) + return 0 + if(!job.player_old_enough(player.client)) + return 0 + var/position_limit = job.total_positions + if(!latejoin) + position_limit = job.spawn_positions + Debug("Player: [player] is now Rank: [rank], JCP:[job.current_positions], JPL:[position_limit]") + player.mind.assigned_role = rank + unassigned -= player + job.current_positions++ + return 1 + Debug("AR has failed, Player: [player], Rank: [rank]") + return 0 + + +/datum/subsystem/job/proc/FindOccupationCandidates(datum/job/job, level, flag) + Debug("Running FOC, Job: [job], Level: [level], Flag: [flag]") + var/list/candidates = list() + for(var/mob/new_player/player in unassigned) + if(jobban_isbanned(player, job.title)) + Debug("FOC isbanned failed, Player: [player]") + continue + if(!job.player_old_enough(player.client)) + Debug("FOC player not old enough, Player: [player]") + continue + if(flag && (!(flag in player.client.prefs.be_special))) + Debug("FOC flag failed, Player: [player], Flag: [flag], ") + continue + if(player.mind && job.title in player.mind.restricted_roles) + Debug("FOC incompatible with antagonist role, Player: [player]") + continue + if(config.enforce_human_authority && !player.client.prefs.pref_species.qualifies_for_rank(job.title, player.client.prefs.features)) + Debug("FOC non-human failed, Player: [player]") + continue + if(player.client.prefs.GetJobDepartment(job, level) & job.flag) + Debug("FOC pass, Player: [player], Level:[level]") + candidates += player + return candidates + +/datum/subsystem/job/proc/GiveRandomJob(mob/new_player/player) + Debug("GRJ Giving random job, Player: [player]") + for(var/datum/job/job in shuffle(occupations)) + if(!job) + continue + + if(istype(job, GetJob("Assistant"))) // We don't want to give him assistant, that's boring! + continue + + if(job.title in command_positions) //If you want a command position, select it! + continue + + if(jobban_isbanned(player, job.title)) + Debug("GRJ isbanned failed, Player: [player], Job: [job.title]") + continue + + if(!job.player_old_enough(player.client)) + Debug("GRJ player not old enough, Player: [player]") + continue + + if(player.mind && job.title in player.mind.restricted_roles) + Debug("GRJ incompatible with antagonist role, Player: [player], Job: [job.title]") + continue + + if(config.enforce_human_authority && !player.client.prefs.pref_species.qualifies_for_rank(job.title, player.client.prefs.features)) + Debug("GRJ non-human failed, Player: [player]") + continue + + + if((job.current_positions < job.spawn_positions) || job.spawn_positions == -1) + Debug("GRJ Random job given, Player: [player], Job: [job]") + AssignRole(player, job.title) + unassigned -= player + break + +/datum/subsystem/job/proc/ResetOccupations() + for(var/mob/new_player/player in player_list) + if((player) && (player.mind)) + player.mind.assigned_role = null + player.mind.special_role = null + SetupOccupations() + unassigned = list() + return + + +//This proc is called before the level loop of DivideOccupations() and will try to select a head, ignoring ALL non-head preferences for every level until +//it locates a head or runs out of levels to check +//This is basically to ensure that there's atleast a few heads in the round +/datum/subsystem/job/proc/FillHeadPosition() + for(var/level = 1 to 3) + for(var/command_position in command_positions) + var/datum/job/job = GetJob(command_position) + if(!job) + continue + if((job.current_positions >= job.total_positions) && job.total_positions != -1) + continue + var/list/candidates = FindOccupationCandidates(job, level) + if(!candidates.len) + continue + var/mob/new_player/candidate = pick(candidates) + if(AssignRole(candidate, command_position)) + return 1 + return 0 + + +//This proc is called at the start of the level loop of DivideOccupations() and will cause head jobs to be checked before any other jobs of the same level +//This is also to ensure we get as many heads as possible +/datum/subsystem/job/proc/CheckHeadPositions(level) + for(var/command_position in command_positions) + var/datum/job/job = GetJob(command_position) + if(!job) + continue + if((job.current_positions >= job.total_positions) && job.total_positions != -1) + continue + var/list/candidates = FindOccupationCandidates(job, level) + if(!candidates.len) + continue + var/mob/new_player/candidate = pick(candidates) + AssignRole(candidate, command_position) + return + + +/datum/subsystem/job/proc/FillAIPosition() + var/ai_selected = 0 + var/datum/job/job = GetJob("AI") + if(!job) + return 0 + for(var/i = job.total_positions, i > 0, i--) + for(var/level = 1 to 3) + var/list/candidates = list() + candidates = FindOccupationCandidates(job, level) + if(candidates.len) + var/mob/new_player/candidate = pick(candidates) + if(AssignRole(candidate, "AI")) + ai_selected++ + break + if(ai_selected) + return 1 + return 0 + + +/** Proc DivideOccupations + * fills var "assigned_role" for all ready players. + * This proc must not have any side effect besides of modifying "assigned_role". + **/ +/datum/subsystem/job/proc/DivideOccupations() + //Setup new player list and get the jobs list + Debug("Running DO") + + //Holder for Triumvirate is stored in the ticker, this just processes it + if(ticker) + for(var/datum/job/ai/A in occupations) + if(ticker.triai) + A.spawn_positions = 3 + + //Get the players who are ready + for(var/mob/new_player/player in player_list) + if(player.ready && player.mind && !player.mind.assigned_role) + unassigned += player + + initial_players_to_assign = unassigned.len + + Debug("DO, Len: [unassigned.len]") + if(unassigned.len == 0) + return 0 + + //Scale number of open security officer slots to population + setup_officer_positions() + + //Jobs will have fewer access permissions if the number of players exceeds the threshold defined in game_options.txt + if(config.minimal_access_threshold) + if(config.minimal_access_threshold > unassigned.len) + config.jobs_have_minimal_access = 0 + else + config.jobs_have_minimal_access = 1 + + //Shuffle players and jobs + unassigned = shuffle(unassigned) + + HandleFeedbackGathering() + + //People who wants to be assistants, sure, go on. + Debug("DO, Running Assistant Check 1") + var/datum/job/assist = new /datum/job/assistant() + var/list/assistant_candidates = FindOccupationCandidates(assist, 3) + Debug("AC1, Candidates: [assistant_candidates.len]") + for(var/mob/new_player/player in assistant_candidates) + Debug("AC1 pass, Player: [player]") + AssignRole(player, "Assistant") + assistant_candidates -= player + Debug("DO, AC1 end") + + //Select one head + Debug("DO, Running Head Check") + FillHeadPosition() + Debug("DO, Head Check end") + + //Check for an AI + Debug("DO, Running AI Check") + FillAIPosition() + Debug("DO, AI Check end") + + //Other jobs are now checked + Debug("DO, Running Standard Check") + + + // New job giving system by Donkie + // This will cause lots of more loops, but since it's only done once it shouldn't really matter much at all. + // Hopefully this will add more randomness and fairness to job giving. + + // Loop through all levels from high to low + var/list/shuffledoccupations = shuffle(occupations) + for(var/level = 1 to 3) + //Check the head jobs first each level + CheckHeadPositions(level) + + // Loop through all unassigned players + for(var/mob/new_player/player in unassigned) + if(PopcapReached()) + RejectPlayer(player) + + // Loop through all jobs + for(var/datum/job/job in shuffledoccupations) // SHUFFLE ME BABY + if(!job) + continue + + if(jobban_isbanned(player, job.title)) + Debug("DO isbanned failed, Player: [player], Job:[job.title]") + continue + + if(!job.player_old_enough(player.client)) + Debug("DO player not old enough, Player: [player], Job:[job.title]") + continue + + if(player.mind && job.title in player.mind.restricted_roles) + Debug("DO incompatible with antagonist role, Player: [player], Job:[job.title]") + continue + + if(config.enforce_human_authority && !player.client.prefs.pref_species.qualifies_for_rank(job.title, player.client.prefs.features)) + Debug("DO non-human failed, Player: [player], Job:[job.title]") + continue + + + // If the player wants that job on this level, then try give it to him. + if(player.client.prefs.GetJobDepartment(job, level) & job.flag) + + // If the job isn't filled + if((job.current_positions < job.spawn_positions) || job.spawn_positions == -1) + Debug("DO pass, Player: [player], Level:[level], Job:[job.title]") + AssignRole(player, job.title) + unassigned -= player + break + + // Hand out random jobs to the people who didn't get any in the last check + // Also makes sure that they got their preference correct + for(var/mob/new_player/player in unassigned) + if(PopcapReached()) + RejectPlayer(player) + else if(jobban_isbanned(player, "Assistant")) + GiveRandomJob(player) //you get to roll for random before everyone else just to be sure you don't get assistant. you're so speshul + + for(var/mob/new_player/player in unassigned) + if(PopcapReached()) + RejectPlayer(player) + else if(player.client.prefs.joblessrole == BERANDOMJOB) + GiveRandomJob(player) + + Debug("DO, Standard Check end") + + Debug("DO, Running AC2") + + // For those who wanted to be assistant if their preferences were filled, here you go. + for(var/mob/new_player/player in unassigned) + if(PopcapReached()) + RejectPlayer(player) + if(player.client.prefs.joblessrole == BEASSISTANT) + Debug("AC2 Assistant located, Player: [player]") + AssignRole(player, "Assistant") + else // For those who don't want to play if their preference were filled, back you go. + RejectPlayer(player) + + for(var/mob/new_player/player in unassigned) //Players that wanted to back out but couldn't because they're antags (can you feel the edge case?) + GiveRandomJob(player) + + return 1 + +//Gives the player the stuff he should have with his rank +/datum/subsystem/job/proc/EquipRank(mob/living/H, rank, joined_late=0) + var/datum/job/job = GetJob(rank) + + H.job = rank + + //If we joined at roundstart we should be positioned at our workstation + if(!joined_late) + var/obj/S = null + for(var/obj/effect/landmark/start/sloc in start_landmarks_list) + if(sloc.name != rank) + S = sloc //so we can revert to spawning them on top of eachother if something goes wrong + continue + if(locate(/mob/living) in sloc.loc) + continue + S = sloc + break + if(!S) //if there isn't a spawnpoint send them to latejoin, if there's no latejoin go yell at your mapper + world.log << "Couldn't find a round start spawn point for [rank]" + S = pick(latejoin) + if(!S) //final attempt, lets find some area in the arrivals shuttle to spawn them in to. + world.log << "Couldn't find a round start latejoin spawn point." + for(var/turf/T in get_area_turfs(/area/shuttle/arrival)) + if(!T.density) + var/clear = 1 + for(var/obj/O in T) + if(O.density) + clear = 0 + break + if(clear) + S = T + continue + if(istype(S, /obj/effect/landmark) && isturf(S.loc)) + H.loc = S.loc + + if(H.mind) + H.mind.assigned_role = rank + + if(job) + var/new_mob = job.equip(H) + if(ismob(new_mob)) + H = new_mob + job.apply_fingerprints(H) + + H << "You are the [rank]." + H << "As the [rank] you answer directly to [job.supervisors]. Special circumstances may change this." + H << "To speak on your departments radio, use the :h button. To see others, look closely at your headset." + if(job.req_admin_notify) + H << "You are playing a job that is important for Game Progression. If you have to disconnect, please notify the admins via adminhelp." + if(config.minimal_access_threshold) + H << "As this station was initially staffed with a [config.jobs_have_minimal_access ? "full crew, only your job's necessities" : "skeleton crew, additional access may"] have been added to your ID card." + return H + + +/datum/subsystem/job/proc/setup_officer_positions() + var/datum/job/J = SSjob.GetJob("Security Officer") + if(!J) + throw EXCEPTION("setup_officer_positions(): Security officer job is missing") + + if(config.security_scaling_coeff > 0) + if(J.spawn_positions > 0) + var/officer_positions = min(12, max(J.spawn_positions, round(unassigned.len/config.security_scaling_coeff))) //Scale between configured minimum and 12 officers + Debug("Setting open security officer positions to [officer_positions]") + J.total_positions = officer_positions + J.spawn_positions = officer_positions + + //Spawn some extra eqipment lockers if we have more than 5 officers + var/equip_needed = J.total_positions + if(equip_needed < 0) // -1: infinite available slots + equip_needed = 12 + for(var/i=equip_needed-5, i>0, i--) + if(secequipment.len) + var/spawnloc = secequipment[1] + new /obj/structure/closet/secure_closet/security/sec(spawnloc) + secequipment -= spawnloc + else //We ran out of spare locker spawns! + break + + +/datum/subsystem/job/proc/LoadJobs() + var/jobstext = return_file_text("config/jobs.txt") + for(var/datum/job/J in occupations) + var/regex/jobs = new("[J.title]=(-1|\\d+),(-1|\\d+)") + jobs.Find(jobstext) + J.total_positions = text2num(jobs.group[1]) + J.spawn_positions = text2num(jobs.group[2]) + +/datum/subsystem/job/proc/HandleFeedbackGathering() + for(var/datum/job/job in occupations) + var/tmp_str = "|[job.title]|" + + var/level1 = 0 //high + var/level2 = 0 //medium + var/level3 = 0 //low + var/level4 = 0 //never + var/level5 = 0 //banned + var/level6 = 0 //account too young + for(var/mob/new_player/player in player_list) + if(!(player.ready && player.mind && !player.mind.assigned_role)) + continue //This player is not ready + if(jobban_isbanned(player, job.title)) + level5++ + continue + if(!job.player_old_enough(player.client)) + level6++ + continue + if(player.client.prefs.GetJobDepartment(job, 1) & job.flag) + level1++ + else if(player.client.prefs.GetJobDepartment(job, 2) & job.flag) + level2++ + else if(player.client.prefs.GetJobDepartment(job, 3) & job.flag) + level3++ + else level4++ //not selected + + tmp_str += "HIGH=[level1]|MEDIUM=[level2]|LOW=[level3]|NEVER=[level4]|BANNED=[level5]|YOUNG=[level6]|-" + feedback_add_details("job_preferences",tmp_str) + +/datum/subsystem/job/proc/PopcapReached() + if(config.hard_popcap || config.extreme_popcap) + var/relevent_cap = max(config.hard_popcap, config.extreme_popcap) + if((initial_players_to_assign - unassigned.len) >= relevent_cap) + return 1 + return 0 + +/datum/subsystem/job/proc/RejectPlayer(mob/new_player/player) + if(player.mind && player.mind.special_role) + return + if(PopcapReached()) + Debug("Popcap overflow Check observer located, Player: [player]") + player << "You have failed to qualify for any job you desired." + unassigned -= player + player.ready = 0 + + +/datum/subsystem/job/Recover() + var/oldjobs = SSjob.occupations + spawn(20) + for (var/datum/job/J in oldjobs) + spawn(-1) + var/datum/job/newjob = GetJob(J.title) + if (!istype(newjob)) + return + newjob.total_positions = J.total_positions + newjob.spawn_positions = J.spawn_positions + newjob.current_positions = J.current_positions \ No newline at end of file diff --git a/code/controllers/subsystem/lighting.dm b/code/controllers/subsystem/lighting.dm new file mode 100644 index 0000000..388ca3e --- /dev/null +++ b/code/controllers/subsystem/lighting.dm @@ -0,0 +1,116 @@ +var/datum/subsystem/lighting/SSlighting + +#define SSLIGHTING_LIGHTS 1 +#define SSLIGHTING_TURFS 2 + +/datum/subsystem/lighting + name = "Lighting" + init_order = 1 + wait = 1 + flags = SS_POST_FIRE_TIMING + priority = 40 + display_order = 5 + + var/list/changed_lights = list() //list of all datum/light_source that need updating + var/changed_lights_workload = 0 //stats on the largest number of lights (max changed_lights.len) + var/list/changed_turfs = list() //list of all turfs which may have a different light level + var/changed_turfs_workload = 0 //stats on the largest number of turfs changed (max changed_turfs.len) + + +/datum/subsystem/lighting/New() + NEW_SS_GLOBAL(SSlighting) + return ..() + + +/datum/subsystem/lighting/stat_entry() + ..("L:[round(changed_lights_workload,1)]|T:[round(changed_turfs_workload,1)]") + + +//Workhorse of lighting. It cycles through each light that needs updating. It updates their +//effects and then processes every turf in the queue, updating their lighting object's appearance +//Any light that returns 1 in check() deletes itself +//By using queues we are ensuring we don't perform more updates than are necessary +/datum/subsystem/lighting/fire(resumed = 0) + var/ticklimit = CURRENT_TICKLIMIT + //split our tick allotment in half so we don't spend it all on lightshift checks + CURRENT_TICKLIMIT = world.tick_usage + ((ticklimit-world.tick_usage)/2) + + var/list/changed_lights = src.changed_lights + if (!resumed) + changed_lights_workload = MC_AVERAGE(changed_lights_workload, changed_lights.len) + var/i = 1 + while (i <= changed_lights.len) + var/datum/light_source/LS = changed_lights[i++] + LS.check() + if (MC_TICK_CHECK) + break + if (i > 1) + changed_lights.Cut(1,i) + + CURRENT_TICKLIMIT = ticklimit + var/list/changed_turfs = src.changed_turfs + if (!resumed) + changed_turfs_workload = MC_AVERAGE(changed_turfs_workload, changed_turfs.len) + i = 1 + while (i <= changed_turfs.len) + var/turf/T = changed_turfs[i++] + if(T.lighting_changed) + T.redraw_lighting() + if (MC_TICK_CHECK) + break + if (i > 1) + changed_turfs.Cut(1,i) + +//same as above except it attempts to shift ALL turfs in the world regardless of lighting_changed status +/datum/subsystem/lighting/Initialize(timeofday) + var/list/turfs_to_init = block(locate(1, 1, 1), locate(world.maxx, world.maxy, world.maxz)) + if (config.starlight) + for(var/area/A in world) + if (A.lighting_use_dynamic == DYNAMIC_LIGHTING_IFSTARLIGHT) + A.luminosity = 0 + + for(var/thing in changed_lights) + var/datum/light_source/LS = thing + LS.check() + changed_lights.Cut() + + for(var/thing in turfs_to_init) + var/turf/T = thing + T.init_lighting() + changed_turfs.Cut() + + ..() + +//Used to strip valid information from an existing instance and transfer it to the replacement. i.e. when a crash occurs +//It works by using spawn(-1) to transfer the data, if there is a runtime the data does not get transfered but the loop +//does not crash +/datum/subsystem/lighting/Recover() + if(!istype(SSlighting.changed_turfs)) + SSlighting.changed_turfs = list() + if(!istype(SSlighting.changed_lights)) + SSlighting.changed_lights = list() + + for(var/thing in SSlighting.changed_lights) + var/datum/light_source/LS = thing + spawn(-1) //so we don't crash the loop (inefficient) + LS.check() + + for(var/thing in changed_turfs) + var/turf/T = thing + if(T.lighting_changed) + spawn(-1) + T.redraw_lighting() + + var/msg = "## DEBUG: [time2text(world.timeofday)] [name] subsystem restarted. Reports:\n" + for(var/varname in SSlighting.vars) + switch(varname) + if("tag","bestF","type","parent_type","vars") + continue + else + var/varval1 = SSlighting.vars[varname] + var/varval2 = vars[varname] + if(istype(varval1,/list)) + varval1 = "/list([length(varval1)])" + varval2 = "/list([length(varval2)])" + msg += "\t [varname] = [varval1] -> [varval2]\n" + world.log << msg diff --git a/code/controllers/subsystem/machines.dm b/code/controllers/subsystem/machines.dm new file mode 100644 index 0000000..7369ba6 --- /dev/null +++ b/code/controllers/subsystem/machines.dm @@ -0,0 +1,72 @@ +var/datum/subsystem/machines/SSmachine + +/datum/subsystem/machines + name = "Machines" + init_order = 9 + display_order = 3 + flags = SS_KEEP_TIMING + var/list/processing = list() + var/list/currentrun = list() + var/list/powernets = list() + + +/datum/subsystem/machines/Initialize() + makepowernets() + fire() + ..() + +/datum/subsystem/machines/proc/makepowernets() + for(var/datum/powernet/PN in powernets) + qdel(PN) + powernets.Cut() + + for(var/obj/structure/cable/PC in cable_list) + if(!PC.powernet) + var/datum/powernet/NewPN = new() + NewPN.add_cable(PC) + propagate_network(PC,PC.powernet) + +/datum/subsystem/machines/New() + NEW_SS_GLOBAL(SSmachine) + + +/datum/subsystem/machines/stat_entry() + ..("M:[processing.len]|PN:[powernets.len]") + + +/datum/subsystem/machines/fire(resumed = 0) + if (!resumed) + for(var/datum/powernet/Powernet in powernets) + Powernet.reset() //reset the power state. + src.currentrun = processing.Copy() + + //cache for sanic speed (lists are references anyways) + var/list/currentrun = src.currentrun + + var/seconds = wait * 0.1 + while(currentrun.len) + var/datum/thing = currentrun[currentrun.len] + currentrun.len-- + if(thing && thing.process(seconds) != PROCESS_KILL) + if(thing:use_power) + thing:auto_use_power() //add back the power state + else + processing -= thing + if (thing) + thing.isprocessing = 0 + if (MC_TICK_CHECK) + return + +/datum/subsystem/machines/proc/setup_template_powernets(list/cables) + for(var/A in cables) + var/obj/structure/cable/PC = A + if(!PC.powernet) + var/datum/powernet/NewPN = new() + NewPN.add_cable(PC) + propagate_network(PC,PC.powernet) + +/datum/subsystem/machines/Recover() + if (istype(SSmachine.processing)) + processing = SSmachine.processing + if (istype(SSmachine.powernets)) + powernets = SSmachine.powernets \ No newline at end of file diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm new file mode 100644 index 0000000..f86153f --- /dev/null +++ b/code/controllers/subsystem/mapping.dm @@ -0,0 +1,44 @@ +var/datum/subsystem/mapping/SSmapping + +/datum/subsystem/mapping + name = "Mapping" + init_order = 100000 + flags = SS_NO_FIRE + display_order = 50 + + +/datum/subsystem/mapping/New() + NEW_SS_GLOBAL(SSmapping) + return ..() + + +/datum/subsystem/mapping/Initialize(timeofday) + preloadTemplates() + // Pick a random away mission. + createRandomZlevel() + // Generate mining. + + var/mining_type = MINETYPE + if (mining_type == "lavaland") + seedRuins(list(5), config.lavaland_budget, /area/lavaland/surface/outdoors, lava_ruins_templates) + spawn_rivers() + else + make_mining_asteroid_secrets() + + // deep space ruins + var/space_zlevels = list() + for(var/i in ZLEVEL_SPACEMIN to ZLEVEL_SPACEMAX) + switch(i) + if(ZLEVEL_MINING, ZLEVEL_LAVALAND, ZLEVEL_EMPTY_SPACE) + continue + else + space_zlevels += i + + seedRuins(space_zlevels, config.space_budget, /area/space, space_ruins_templates) + + // Set up Z-level transistions. + setup_map_transitions() + ..() + +/datum/subsystem/mapping/Recover() + flags |= SS_NO_INIT diff --git a/code/controllers/subsystem/minimap.dm b/code/controllers/subsystem/minimap.dm new file mode 100644 index 0000000..1687cb1 --- /dev/null +++ b/code/controllers/subsystem/minimap.dm @@ -0,0 +1,127 @@ +var/datum/subsystem/minimap/SSminimap + +/datum/subsystem/minimap + name = "Minimap" + init_order = -2 + flags = SS_NO_FIRE + var/const/MINIMAP_SIZE = 2048 + var/const/TILE_SIZE = 8 + + var/list/z_levels = list(ZLEVEL_STATION) + +/datum/subsystem/minimap/New() + NEW_SS_GLOBAL(SSminimap) + +/datum/subsystem/minimap/Initialize(timeofday) + var/hash = md5(file2text("_maps/[MAP_PATH]/[MAP_FILE]")) + if(config.generate_minimaps) + if(hash == trim(file2text(hash_path()))) + for(var/z in z_levels) //We have these files cached, let's register them + register_asset("minimap_[z].png", fcopy_rsc(map_path(z))) + return ..() + for(var/z in z_levels) + generate(z) + register_asset("minimap_[z].png", fcopy_rsc(map_path(z))) + fdel(hash_path()) + text2file(hash, hash_path()) + else + world << "Minimap generation disabled. Loading from cache..." + var/fileloc = 0 + if(check_files(0)) //Let's first check if we have maps cached in the data folder. NOTE: This will override the backup files even if this map is older. + world.log << "cache" + if(hash != trim(file2text(hash_path()))) + world << "Loaded cached minimap is outdated. There may be minor discrepancies in layout." //Disclaimer against players saying map is wrong. + fileloc = 0 + else + if(!check_files(1)) + world << "Failed to load backup minimap file. Aborting." //We couldn't find something. Bail to prevent issues with null files + return + fileloc = 1 //No map image cached with the current map, and we have a backup. Let's fall back to it. + world << "No cached minimaps detected. Backup files loaded." + for(var/z in z_levels) + register_asset("minimap_[z].png", fcopy_rsc(map_path(z,fileloc))) + ..() + +/datum/subsystem/minimap/proc/check_files(backup) // If the backup argument is true, looks in the icons folder. If false looks in the data folder. + for(var/z in z_levels) + if(!fexists(file(map_path(z,backup)))) //Let's make sure we have a file for this map + if(backup) + world.log << "Failed to find backup file for map [MAP_NAME] on zlevel [z]." + return FALSE + return TRUE + + +/datum/subsystem/minimap/proc/hash_path(backup) + if(backup) + return "icons/minimaps/[MAP_NAME].md5" + else + return "data/minimaps/[MAP_NAME].md5" + +/datum/subsystem/minimap/proc/map_path(z,backup) + if(backup) + return "icons/minimaps/[MAP_NAME]_[z].png" + else + return "data/minimaps/[MAP_NAME]_[z].png" + +/datum/subsystem/minimap/proc/send(client/client) + for(var/z in z_levels) + send_asset(client, "minimap_[z].png") + +/datum/subsystem/minimap/proc/generate(z = 1, x1 = 1, y1 = 1, x2 = world.maxx, y2 = world.maxy) + // Load the background. + var/icon/minimap = new /icon('icons/minimap.dmi') + // Scale it up to our target size. + minimap.Scale(MINIMAP_SIZE, MINIMAP_SIZE) + + // Loop over turfs and generate icons. + for(var/T in block(locate(x1, y1, z), locate(x2, y2, z))) + generate_tile(T, minimap) + + // Create a new icon and insert the generated minimap, so that BYOND doesn't generate different directions. + var/icon/final = new /icon() + final.Insert(minimap, "", SOUTH, 1, 0) + fcopy(final, map_path(z)) + +/datum/subsystem/minimap/proc/generate_tile(turf/tile, icon/minimap) + var/icon/tile_icon + var/obj/obj + var/list/obj_icons + // Don't use icons for space, just add objects in space if they exist. + if(isspaceturf(tile)) + obj = locate(/obj/structure/lattice/catwalk) in tile + if(obj) + tile_icon = new /icon('icons/obj/smooth_structures/catwalk.dmi', "catwalk", SOUTH) + obj = locate(/obj/structure/lattice) in tile + if(obj) + tile_icon = new /icon('icons/obj/smooth_structures/lattice.dmi', "lattice", SOUTH) + obj = locate(/obj/structure/grille) in tile + if(obj) + tile_icon = new /icon('icons/obj/structures.dmi', "grille", SOUTH) + obj = locate(/obj/structure/transit_tube) in tile + if(obj) + tile_icon = new /icon('icons/obj/atmospherics/pipes/transit_tube.dmi', obj.icon_state, obj.dir) + else + tile_icon = new /icon(tile.icon, tile.icon_state, tile.dir) + obj_icons = list() + + obj = locate(/obj/structure) in tile + if(obj) + obj_icons += new /icon(obj.icon, obj.icon_state, obj.dir, 1, 0) + obj = locate(/obj/machinery) in tile + if(obj) + obj_icons += new /icon(obj.icon, obj.icon_state, obj.dir, 1, 0) + obj = locate(/obj/structure/window) in tile + if(obj) + obj_icons += new /icon('icons/obj/smooth_structures/window.dmi', "window", SOUTH) + obj = locate(/obj/structure/table) in tile + if(obj) + obj_icons += new /icon('icons/obj/smooth_structures/table.dmi', "table", SOUTH) + for(var/I in obj_icons) + var/icon/obj_icon = I + tile_icon.Blend(obj_icon, ICON_OVERLAY) + + if(tile_icon) + // Scale the icon. + tile_icon.Scale(TILE_SIZE, TILE_SIZE) + // Add the tile to the minimap. + minimap.Blend(tile_icon, ICON_OVERLAY, ((tile.x - 1) * TILE_SIZE), ((tile.y - 1) * TILE_SIZE)) diff --git a/code/controllers/subsystem/mobs.dm b/code/controllers/subsystem/mobs.dm new file mode 100644 index 0000000..ef526f4 --- /dev/null +++ b/code/controllers/subsystem/mobs.dm @@ -0,0 +1,36 @@ +var/datum/subsystem/mobs/SSmob + +/datum/subsystem/mobs + name = "Mobs" + init_order = 4 + display_order = 4 + priority = 100 + flags = SS_KEEP_TIMING|SS_NO_INIT + + var/list/currentrun = list() + +/datum/subsystem/mobs/New() + NEW_SS_GLOBAL(SSmob) + + +/datum/subsystem/mobs/stat_entry() + ..("P:[mob_list.len]") + + +/datum/subsystem/mobs/fire(resumed = 0) + var/seconds = wait * 0.1 + if (!resumed) + src.currentrun = mob_list.Copy() + + //cache for sanic speed (lists are references anyways) + var/list/currentrun = src.currentrun + + while(currentrun.len) + var/mob/M = currentrun[currentrun.len] + currentrun.len-- + if(M) + M.Life(seconds) + else + mob_list.Remove(M) + if (MC_TICK_CHECK) + return \ No newline at end of file diff --git a/code/controllers/subsystem/npcpool.dm b/code/controllers/subsystem/npcpool.dm new file mode 100644 index 0000000..72ca676 --- /dev/null +++ b/code/controllers/subsystem/npcpool.dm @@ -0,0 +1,128 @@ +var/datum/subsystem/npcpool/SSnpc + +/datum/subsystem/npcpool + name = "NPC Pool" + init_order = 17 + display_order = 6 + flags = SS_POST_FIRE_TIMING|SS_NO_INIT|SS_NO_TICK_CHECK + priority = 25 + + var/list/canBeUsed = list() + var/list/canBeUsed_non = list() + var/list/needsDelegate = list() + var/list/needsAssistant = list() + var/list/needsHelp_non = list() + var/list/botPool_l = list() //list of all npcs using the pool + var/list/botPool_l_non = list() //list of all non SNPC mobs using the pool + +/datum/subsystem/npcpool/proc/insertBot(toInsert) + if(istype(toInsert,/mob/living/carbon/human/interactive)) + botPool_l |= toInsert + +/datum/subsystem/npcpool/New() + NEW_SS_GLOBAL(SSnpc) + +/datum/subsystem/npcpool/stat_entry() + ..("T:[botPool_l.len + botPool_l_non.len]|D:[needsDelegate.len]|A:[needsAssistant.len + needsHelp_non.len]|U:[canBeUsed.len + canBeUsed_non.len]") + + +/datum/subsystem/npcpool/proc/cleanNull() + //cleanup nulled bots + listclearnulls(botPool_l) + listclearnulls(needsDelegate) + listclearnulls(canBeUsed) + listclearnulls(needsAssistant) + + +/datum/subsystem/npcpool/fire() + //bot delegation and coordination systems + //General checklist/Tasks for delegating a task or coordinating it (for SNPCs) + // 1. Bot proximity to task target: if too far, delegate, if close, coordinate + // 2. Bot Health/status: check health with bots in local area, if their health is higher, delegate task to them, else coordinate + // 3. Process delegation: if a bot (or bots) has been delegated, assign them to the task. + // 4. Process coordination: if a bot(or bots) has been asked to coordinate, assign them to help. + // 5. Do all assignments: goes through the delegated/coordianted bots and assigns the right variables/tasks to them. + var/npcCount = 1 + + cleanNull() + + //SNPC handling + for(var/mob/living/carbon/human/interactive/check in botPool_l) + if(!check) + botPool_l.Cut(npcCount,npcCount+1) + continue + var/checkInRange = view(MAX_RANGE_FIND,check) + if(!(locate(check.TARGET) in checkInRange)) + needsDelegate |= check + + else if(check.IsDeadOrIncap(FALSE)) + needsDelegate |= check + + else if(check.doing & FIGHTING) + needsAssistant |= check + + else + canBeUsed |= check + npcCount++ + + if(needsDelegate.len) + + needsDelegate -= pick(needsDelegate) // cheapo way to make sure stuff doesn't pingpong around in the pool forever. delegation runs seperately to each loop so it will work much smoother + + npcCount = 1 //reset the count + for(var/mob/living/carbon/human/interactive/check in needsDelegate) + if(!check) + needsDelegate.Cut(npcCount,npcCount+1) + continue + if(canBeUsed.len) + var/mob/living/carbon/human/interactive/candidate = pick(canBeUsed) + var/facCount = 0 + var/helpProb = 0 + for(var/C in check.faction) + for(var/D in candidate.faction) + if(D == C) + helpProb = min(100,helpProb + 25) + facCount++ + if(facCount == 1 && helpProb > 0) + helpProb = 100 + if(prob(helpProb)) + if(candidate.takeDelegate(check)) + needsDelegate -= check + canBeUsed -= candidate + candidate.eye_color = "red" + candidate.update_icons() + npcCount++ + + if(needsAssistant.len) + + needsAssistant -= pick(needsAssistant) + + npcCount = 1 //reset the count + for(var/mob/living/carbon/human/interactive/check in needsAssistant) + if(!check) + needsAssistant.Cut(npcCount,npcCount+1) + continue + if(canBeUsed.len) + var/mob/living/carbon/human/interactive/candidate = pick(canBeUsed) + var/facCount = 0 + var/helpProb = 0 + for(var/C in check.faction) + for(var/D in candidate.faction) + if(D == C) + helpProb = min(100,helpProb + 25) + facCount++ + if(facCount == 1 && helpProb > 0) + helpProb = 100 + if(prob(helpProb)) + if(candidate.takeDelegate(check,FALSE)) + needsAssistant -= check + canBeUsed -= candidate + candidate.eye_color = "yellow" + candidate.update_icons() + npcCount++ + +/datum/subsystem/npcpool/Recover() + if (istype(SSnpc.botPool_l)) + botPool_l = SSnpc.botPool_l + if (istype(SSnpc.botPool_l_non)) + botPool_l_non = SSnpc.botPool_l_non \ No newline at end of file diff --git a/code/controllers/subsystem/orbit.dm b/code/controllers/subsystem/orbit.dm new file mode 100644 index 0000000..da52ae4 --- /dev/null +++ b/code/controllers/subsystem/orbit.dm @@ -0,0 +1,50 @@ +var/datum/subsystem/orbit/SSorbit + +/datum/subsystem/orbit + name = "Orbits" + priority = 35 + wait = 2 + flags = SS_NO_INIT|SS_TICKER + + var/list/currentrun = list() + var/list/processing = list() + +/datum/subsystem/orbit/New() + NEW_SS_GLOBAL(SSorbit) + + +/datum/subsystem/orbit/stat_entry() + ..("P:[processing.len]") + + +/datum/subsystem/orbit/fire(resumed = 0) + if (!resumed) + src.currentrun = processing.Copy() + + //cache for sanic speed (lists are references anyways) + var/list/currentrun = src.currentrun + + while (currentrun.len) + var/datum/orbit/O = currentrun[currentrun.len] + currentrun.len-- + if (!O) + processing -= O + if (MC_TICK_CHECK) + return + continue + if (!O.orbiter) + qdel(O) + if (MC_TICK_CHECK) + return + continue + if (O.lastprocess >= world.time) //we already checked recently + if (MC_TICK_CHECK) + return + continue + var/targetloc = get_turf(O.orbiting) + if (targetloc != O.lastloc || O.orbiter.loc != targetloc) + O.Check(targetloc) + if (MC_TICK_CHECK) + return + + diff --git a/code/controllers/subsystem/pai.dm b/code/controllers/subsystem/pai.dm new file mode 100644 index 0000000..f3dcb49 --- /dev/null +++ b/code/controllers/subsystem/pai.dm @@ -0,0 +1,192 @@ +var/datum/subsystem/pai/SSpai + +/datum/subsystem/pai + name = "pAI" + init_order = 20 + flags = SS_NO_FIRE|SS_NO_INIT + + var/list/candidates = list() + +/datum/subsystem/pai/New() + NEW_SS_GLOBAL(SSpai) + +/datum/subsystem/pai/Topic(href, href_list[]) + if(href_list["download"]) + var/datum/paiCandidate/candidate = locate(href_list["candidate"]) + var/obj/item/device/paicard/card = locate(href_list["device"]) + if(card.pai) + return + if(istype(card,/obj/item/device/paicard) && istype(candidate,/datum/paiCandidate)) + var/mob/living/silicon/pai/pai = new(card) + if(!candidate.name) + pai.name = pick(ninja_names) + else + pai.name = candidate.name + pai.real_name = pai.name + pai.key = candidate.key + + card.setPersonality(pai) + card.looking_for_personality = 0 + + ticker.mode.update_cult_icons_removed(card.pai.mind) + ticker.mode.update_rev_icons_removed(card.pai.mind) + + candidates -= candidate + usr << browse(null, "window=findPai") + + if(href_list["new"]) + var/datum/paiCandidate/candidate = locate(href_list["candidate"]) + var/option = href_list["option"] + var/t = "" + + switch(option) + if("name") + t = input("Enter a name for your pAI", "pAI Name", candidate.name) as text + if(t) + candidate.name = copytext(sanitize(t),1,MAX_NAME_LEN) + if("desc") + t = input("Enter a description for your pAI", "pAI Description", candidate.description) as message + if(t) + candidate.description = copytext(sanitize(t),1,MAX_MESSAGE_LEN) + if("role") + t = input("Enter a role for your pAI", "pAI Role", candidate.role) as text + if(t) + candidate.role = copytext(sanitize(t),1,MAX_MESSAGE_LEN) + if("ooc") + t = input("Enter any OOC comments", "pAI OOC Comments", candidate.comments) as message + if(t) + candidate.comments = copytext(sanitize(t),1,MAX_MESSAGE_LEN) + if("save") + candidate.savefile_save(usr) + if("load") + candidate.savefile_load(usr) + //In case people have saved unsanitized stuff. + if(candidate.name) + candidate.name = copytext(sanitize(candidate.name),1,MAX_NAME_LEN) + if(candidate.description) + candidate.description = copytext(sanitize(candidate.description),1,MAX_MESSAGE_LEN) + if(candidate.role) + candidate.role = copytext(sanitize(candidate.role),1,MAX_MESSAGE_LEN) + if(candidate.comments) + candidate.comments = copytext(sanitize(candidate.comments),1,MAX_MESSAGE_LEN) + + if("submit") + if(candidate) + candidate.ready = 1 + for(var/obj/item/device/paicard/p in world) + if(p.looking_for_personality == 1) + p.alertUpdate() + usr << browse(null, "window=paiRecruit") + return + recruitWindow(usr) + +/datum/subsystem/pai/proc/recruitWindow(mob/M) + var/datum/paiCandidate/candidate + for(var/datum/paiCandidate/c in candidates) + if(c.key == M.key) + candidate = c + if(!candidate) + candidate = new /datum/paiCandidate() + candidate.key = M.key + candidates.Add(candidate) + + + var/dat = "" + dat += {" + + "} + + dat += "

    Please configure your pAI personality's options. Remember, what you enter here could determine whether or not the user requesting a personality chooses you!

    " + dat += "" + dat += "" + dat += "" + + dat += "" + dat += "" + + dat += "" + dat += "" + + dat += "" + dat += "" + + dat += "
    Name:[candidate.name]
    \[Edit\]What you plan to call yourself. Suggestions: Any character name you would choose for a station character OR an AI.
    Description:[candidate.description]
    \[Edit\]What sort of pAI you typically play; your mannerisms, your quirks, etc. This can be as sparse or as detailed as you like.
    Preferred Role:[candidate.role]
    \[Edit\]Do you like to partner with sneaky social ninjas? Like to help security hunt down thugs? Enjoy watching an engineer's back while he saves the station yet again? This doesn't have to be limited to just station jobs. Pretty much any general descriptor for what you'd like to be doing works here.
    OOC Comments:[candidate.comments]
    \[Edit\]Anything you'd like to address specifically to the player reading this in an OOC manner. \"I prefer more serious RP.\", \"I'm still learning the interface!\", etc. Feel free to leave this blank if you want.
    " + + dat += "
    " + dat += "

    Submit Personality


    " + dat += "Save Personality
    " + dat += "Load Personality
    " + + M << browse(dat, "window=paiRecruit") + +/datum/subsystem/pai/proc/findPAI(obj/item/device/paicard/p, mob/user) + requestRecruits() + var/list/available = list() + for(var/datum/paiCandidate/c in SSpai.candidates) + if(c.ready) + var/found = 0 + for(var/mob/dead/observer/o in player_list) + if(o.key == c.key) + found = 1 + if(found) + available.Add(c) + var/dat = "" + + dat += {" + + "} + dat += "

    Requesting AI personalities from central database... If there are no entries, or if a suitable entry is not listed, check again later as more personalities may be added.

    " + + dat += "" + + for(var/datum/paiCandidate/c in available) + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + + dat += "
    Name:[c.name]
    Description:[c.description]
    Preferred Role:[c.role]
    OOC Comments:[c.comments]
    \[Download [c.name]\]
    " + + user << browse(dat, "window=findPai") + +/datum/subsystem/pai/proc/requestRecruits() + var/list/candidates = pollCandidates("Someone is requesting a pAI personality. Would you like to play as a personal AI?", ROLE_PAI, null, ROLE_PAI,300, ignore_category = POLL_IGNORE_PAI) + for(var/V in candidates) + recruitWindow(V) + return + +/datum/paiCandidate + var/name + var/key + var/description + var/role + var/comments + var/ready = 0 diff --git a/code/controllers/subsystem/persistence.dm b/code/controllers/subsystem/persistence.dm new file mode 100644 index 0000000..183ef49 --- /dev/null +++ b/code/controllers/subsystem/persistence.dm @@ -0,0 +1,84 @@ +var/datum/subsystem/persistence/SSpersistence + +/datum/subsystem/persistence + name = "Persistence" + init_order = -100 + flags = SS_NO_FIRE + var/savefile/secret_satchels + var/list/satchel_blacklist = list() //this is a typecache + var/list/new_secret_satchels = list() //these are objects + var/old_secret_satchels = "" + +/datum/subsystem/persistence/New() + NEW_SS_GLOBAL(SSpersistence) + +/datum/subsystem/persistence/Initialize() + secret_satchels = new /savefile("data/npc_saves/SecretSatchels.sav") + satchel_blacklist = typecacheof(list(/obj/item/stack/tile/plasteel, /obj/item/weapon/crowbar)) + secret_satchels[MAP_NAME] >> old_secret_satchels + + var/list/expanded_old_satchels = list() + var/placed_satchels = 0 + + if(!isnull(old_secret_satchels)) + expanded_old_satchels = splittext(old_secret_satchels,"#") + if(PlaceSecretSatchel(expanded_old_satchels)) + placed_satchels++ + else + expanded_old_satchels.len = 0 + + var/list/free_satchels = list() + for(var/turf/T in shuffle(block(locate(TRANSITIONEDGE,TRANSITIONEDGE,ZLEVEL_STATION), locate(world.maxx-TRANSITIONEDGE,world.maxy-TRANSITIONEDGE,ZLEVEL_STATION)))) //Nontrivially expensive but it's roundstart only + if(isfloorturf(T) && !istype(T,/turf/open/floor/plating/)) + free_satchels += new /obj/item/weapon/storage/backpack/satchel/flat/secret(T) + if(!isemptylist(free_satchels) && ((free_satchels.len + placed_satchels) >= (50 - expanded_old_satchels.len) * 0.1)) //up to six tiles, more than enough to kill anything that moves + break + + ..() + +/datum/subsystem/persistence/proc/CollectData() + CollectSecretSatchels() + +/datum/subsystem/persistence/proc/PlaceSecretSatchel(list/expanded_old_satchels) + var/satchel_string + + if(expanded_old_satchels.len >= 20) //guards against low drop pools assuring that one player cannot reliably find his own gear. + satchel_string = pick_n_take(expanded_old_satchels) + + old_secret_satchels = jointext(expanded_old_satchels,"#") + secret_satchels[MAP_NAME] << old_secret_satchels + + var/list/chosen_satchel = splittext(satchel_string,"|") + if(!chosen_satchel || isemptylist(chosen_satchel) || chosen_satchel.len != 3) //Malformed + return 0 + + var/path = text2path(chosen_satchel[3]) //If the item no longer exist, this returns null + if(!path) + return 0 + + var/obj/item/weapon/storage/backpack/satchel/flat/F = new() + F.x = text2num(chosen_satchel[1]) + F.y = text2num(chosen_satchel[2]) + F.z = ZLEVEL_STATION + if(isfloorturf(F.loc) && !istype(F.loc,/turf/open/floor/plating/)) + F.hide(1) + new path(F) + return 1 + +/datum/subsystem/persistence/proc/CollectSecretSatchels() + for(var/A in new_secret_satchels) + var/obj/item/weapon/storage/backpack/satchel/flat/F = A + if(qdeleted(F) || F.z != ZLEVEL_STATION || F.invisibility != INVISIBILITY_MAXIMUM) + continue + var/list/savable_obj = list() + for(var/obj/O in F) + if(is_type_in_typecache(O, satchel_blacklist) || O.admin_spawned) + continue + if(O.persistence_replacement) + savable_obj += O.persistence_replacement + else + savable_obj += O.type + if(isemptylist(savable_obj)) + continue + old_secret_satchels += "[F.x]|[F.y]|[pick(savable_obj)]#" + secret_satchels[MAP_NAME] << old_secret_satchels diff --git a/code/controllers/subsystem/pool.dm b/code/controllers/subsystem/pool.dm new file mode 100644 index 0000000..245e733 --- /dev/null +++ b/code/controllers/subsystem/pool.dm @@ -0,0 +1,48 @@ +var/datum/subsystem/pool/SSpool + +/datum/subsystem/pool + name = "Pool" + init_order = 20 + flags = SS_BACKGROUND | SS_FIRE_IN_LOBBY + var/list/global_pool + var/list/pool_levels = list() + var/sum = 0 + + var/list/maintained_types = list( + /obj/item/stack/tile/plasteel = 100 + ) + + var/list/stats_placed_in_pool = list() + var/list/stats_pooled_or_newed = list() + var/list/stats_reused = list() + var/list/stats_created_new = list() + +/datum/subsystem/pool/New() + NEW_SS_GLOBAL(SSpool) + +/datum/subsystem/pool/Initialize(timeofday) + global_pool = GlobalPool + +/datum/subsystem/pool/stat_entry(msg) + if(global_pool) + msg += "Types: [global_pool.len]|Total Pooled Objects: [sum]" + else + msg += "NULL POOL" + ..(msg) + +/datum/subsystem/pool/fire() + sum = 0 + for(var/type in global_pool + maintained_types) + var/list/L = global_pool[type] + var/required_number = maintained_types[type] || 0 + + // Update pool levels and tracker + var/amount = 0 + if(L) + amount = L.len + sum += amount + + // why yes, just inflate the pool at one item per tick + if(amount < required_number) + var/diver = new type + qdel(diver) diff --git a/code/controllers/subsystem/processing/fastprocess.dm b/code/controllers/subsystem/processing/fastprocess.dm new file mode 100644 index 0000000..7a46f25 --- /dev/null +++ b/code/controllers/subsystem/processing/fastprocess.dm @@ -0,0 +1,10 @@ +//Fires five times every second. + +var/datum/subsystem/processing/fastprocess/SSfastprocess +/datum/subsystem/processing/fastprocess + name = "Fast Processing" + wait = 2 + stat_tag = "FP" + +/datum/subsystem/processing/fastprocess/New() + NEW_SS_GLOBAL(SSfastprocess) diff --git a/code/controllers/subsystem/processing/objects.dm b/code/controllers/subsystem/processing/objects.dm new file mode 100644 index 0000000..7c4852e --- /dev/null +++ b/code/controllers/subsystem/processing/objects.dm @@ -0,0 +1,68 @@ +var/datum/subsystem/objects/SSobj + +/datum/var/isprocessing = 0 +/datum/proc/process() + set waitfor = 0 + STOP_PROCESSING(SSobj, src) + return 0 + +/datum/subsystem/objects + name = "Objects" + init_order = 12 + priority = 40 + + var/list/atom_spawners = list() + var/list/processing = list() + var/list/currentrun = list() + +/datum/subsystem/objects/New() + NEW_SS_GLOBAL(SSobj) + +/datum/subsystem/objects/Initialize(timeofdayl) + trigger_atom_spawners() + setupGenetics() //to set the mutations' place in structural enzymes, so monkey.initialize() knows where to put the monkey mutation. + for(var/thing in world) + var/atom/A = thing + A.initialize() + CHECK_TICK + . = ..() + +/datum/subsystem/objects/proc/trigger_atom_spawners(zlevel, ignore_z=FALSE) + for(var/V in atom_spawners) + var/atom/A = V + if (!ignore_z && (zlevel && A.z != zlevel)) + continue + A.spawn_atom_to_world() + +/datum/subsystem/objects/stat_entry() + ..("P:[processing.len]") + + +/datum/subsystem/objects/fire(resumed = 0) + if (!resumed) + src.currentrun = processing.Copy() + //cache for sanic speed (lists are references anyways) + var/list/currentrun = src.currentrun + + while(currentrun.len) + var/datum/thing = currentrun[currentrun.len] + currentrun.len-- + if(thing) + thing.process(wait) + else + SSobj.processing -= thing + if (MC_TICK_CHECK) + return + + +/datum/subsystem/objects/proc/setup_template_objects(list/objects) + trigger_atom_spawners(0, ignore_z=TRUE) + for(var/A in objects) + var/atom/B = A + B.initialize() + +/datum/subsystem/objects/Recover() + if (istype(SSobj.atom_spawners)) + atom_spawners = SSobj.atom_spawners + if (istype(SSobj.processing)) + processing = SSobj.processing diff --git a/code/controllers/subsystem/processing/processing.dm b/code/controllers/subsystem/processing/processing.dm new file mode 100644 index 0000000..92540ba --- /dev/null +++ b/code/controllers/subsystem/processing/processing.dm @@ -0,0 +1,34 @@ +//Used to process objects. Fires once every second. + +var/datum/subsystem/processing/SSprocessing +/datum/subsystem/processing + name = "Processing" + priority = 25 + flags = SS_BACKGROUND|SS_POST_FIRE_TIMING|SS_NO_INIT + wait = 10 + + var/stat_tag = "P" //Used for logging + var/list/processing = list() + var/list/currentrun = list() + +/datum/subsystem/processing/New() + NEW_SS_GLOBAL(SSprocessing) + +/datum/subsystem/processing/stat_entry() + ..("[stat_tag]:[processing.len]") + +/datum/subsystem/processing/fire(resumed = 0) + if (!resumed) + currentrun = processing.Copy() + //cache for sanic speed (lists are references anyways) + var/list/current_run = currentrun + + while(current_run.len) + var/datum/thing = current_run[current_run.len] + current_run.len-- + if(thing) + thing.process(wait) + else + processing -= thing + if (MC_TICK_CHECK) + return diff --git a/code/controllers/subsystem/radio.dm b/code/controllers/subsystem/radio.dm new file mode 100644 index 0000000..854fb8c --- /dev/null +++ b/code/controllers/subsystem/radio.dm @@ -0,0 +1,47 @@ +var/datum/subsystem/radio/SSradio + +/datum/subsystem/radio + name = "Radio" + init_order = 18 + flags = SS_NO_FIRE|SS_NO_INIT + + var/list/datum/radio_frequency/frequencies = list() + +/datum/subsystem/radio/New() + NEW_SS_GLOBAL(SSradio) + +/datum/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] + + if(!frequency) + frequency = new + frequency.frequency = new_frequency + frequencies[f_text] = frequency + + frequency.add_listener(device, filter) + return frequency + +/datum/subsystem/radio/proc/remove_object(obj/device, old_frequency) + var/f_text = num2text(old_frequency) + var/datum/radio_frequency/frequency = frequencies[f_text] + + if(frequency) + frequency.remove_listener(device) + + if(frequency.devices.len == 0) + qdel(frequency) + frequencies -= f_text + + return 1 + +/datum/subsystem/radio/proc/return_frequency(new_frequency as num) + var/f_text = num2text(new_frequency) + var/datum/radio_frequency/frequency = frequencies[f_text] + + if(!frequency) + frequency = new + frequency.frequency = new_frequency + frequencies[f_text] = frequency + + return frequency \ No newline at end of file diff --git a/code/controllers/subsystem/server_maintenance.dm b/code/controllers/subsystem/server_maintenance.dm new file mode 100644 index 0000000..1e4b4ae --- /dev/null +++ b/code/controllers/subsystem/server_maintenance.dm @@ -0,0 +1,28 @@ +var/datum/subsystem/server_maint/SSserver + +/datum/subsystem/server_maint + name = "Server Tasks" + wait = 6000 + flags = SS_NO_TICK_CHECK + +/datum/subsystem/server_maint/New() + NEW_SS_GLOBAL(SSserver) + +/datum/subsystem/server_maint/Initialize(timeofday) + if (config.hub) + world.visibility = 1 + ..() + +/datum/subsystem/server_maint/fire() + //handle kicking inactive players + if(config.kick_inactive > 0) + for(var/client/C in clients) + if(C.is_afk(INACTIVITY_KICK)) + if(!istype(C.mob, /mob/dead)) + log_access("AFK: [key_name(C)]") + C << "You have been inactive for more than 10 minutes and have been disconnected." + qdel(C) + + if(config.sql_enabled) + sql_poll_players() + sql_poll_admins() diff --git a/code/controllers/subsystem/shuttles.dm b/code/controllers/subsystem/shuttles.dm new file mode 100644 index 0000000..5a03164 --- /dev/null +++ b/code/controllers/subsystem/shuttles.dm @@ -0,0 +1,482 @@ +#define HIGHLIGHT_DYNAMIC_TRANSIT 1 + +var/datum/subsystem/shuttle/SSshuttle + +/datum/subsystem/shuttle + name = "Shuttles" + wait = 10 + init_order = 3 + flags = SS_KEEP_TIMING|SS_NO_TICK_CHECK + + var/list/mobile = list() + var/list/stationary = list() + var/list/transit = list() + + var/list/turf/transit_turfs = list() + var/list/transit_requesters = list() + var/clear_transit = FALSE + + //emergency shuttle stuff + var/obj/docking_port/mobile/emergency/emergency + var/obj/docking_port/mobile/emergency/backup/backup_shuttle + var/emergencyCallTime = 6000 //time taken for emergency shuttle to reach the station when called (in deciseconds) + var/emergencyDockTime = 1800 //time taken for emergency shuttle to leave again once it has docked (in deciseconds) + var/emergencyEscapeTime = 1200 //time taken for emergency shuttle to reach a safe distance after leaving station (in deciseconds) + var/area/emergencyLastCallLoc + var/emergencyNoEscape + var/list/hostileEnvironments = list() + + //supply shuttle stuff + var/obj/docking_port/mobile/supply/supply + var/ordernum = 1 //order number given to next order + var/points = 5000 //number of trade-points we have + var/centcom_message = "" //Remarks from Centcom on how well you checked the last order. + var/list/discoveredPlants = list() //Typepaths for unusual plants we've already sent CentComm, associated with their potencies + + var/list/supply_packs = list() + var/list/shoppinglist = list() + var/list/requestlist = list() + var/list/orderhistory = list() + + var/datum/round_event/shuttle_loan/shuttle_loan + +/datum/subsystem/shuttle/New() + NEW_SS_GLOBAL(SSshuttle) + +/datum/subsystem/shuttle/Initialize(timeofday) + if(!emergency) + WARNING("No /obj/docking_port/mobile/emergency placed on the map!") + if(!backup_shuttle) + WARNING("No /obj/docking_port/mobile/emergency/backup placed on the map!") + if(!supply) + WARNING("No /obj/docking_port/mobile/supply placed on the map!") + + ordernum = rand(1, 9000) + + for(var/pack in subtypesof(/datum/supply_pack)) + var/datum/supply_pack/P = new pack() + if(!P.contains) + continue + supply_packs[P.type] = P + + initial_move() + setup_transit_zone() +#ifdef HIGHLIGHT_DYNAMIC_TRANSIT + color_space() +#endif + +/datum/subsystem/shuttle/proc/setup_transit_zone() + // transit zone + var/turf/A = get_turf(transit_markers[1]) + var/turf/B = get_turf(transit_markers[2]) + for(var/i in block(A, B)) + var/turf/T = i + T.ChangeTurf(/turf/open/space) + transit_turfs += T + T.flags |= UNUSED_TRANSIT_TURF + +#ifdef HIGHLIGHT_DYNAMIC_TRANSIT +/datum/subsystem/shuttle/proc/color_space() + var/turf/A = get_turf(transit_markers[1]) + var/turf/B = get_turf(transit_markers[2]) + for(var/i in block(A, B)) + var/turf/T = i + // Only dying the "pure" space, not the transit tiles + if(istype(T, /turf/open/space/transit) || !isspaceturf(T)) + continue + if((T.x == A.x) || (T.x == B.x) || (T.y == A.y) || (T.y == B.y)) + T.color = "#ffff00" + else + T.color = "#00ffff" +#endif + + //world.log << "[transit_turfs.len] transit turfs registered" + +/datum/subsystem/shuttle/fire() + for(var/thing in mobile) + if(!thing) + mobile.Remove(thing) + continue + var/obj/docking_port/mobile/P = thing + P.check() + var/changed_transit = FALSE + for(var/thing in transit) + var/obj/docking_port/stationary/transit/T = thing + if(!T.owner) + qdel(T, force=TRUE) + changed_transit = TRUE + // This next one removes transit docks/zones that aren't + // immediately being used. This will mean that the zone creation + // code will be running a lot. + var/obj/docking_port/mobile/owner = T.owner + if(owner) + var/idle = owner.mode == SHUTTLE_IDLE + var/not_centcom_evac = owner.launch_status == NOLAUNCH + var/not_in_use = (!T.get_docked()) + if(idle && not_centcom_evac && not_in_use) + qdel(T, force=TRUE) + changed_transit = TRUE + if(clear_transit) + transit_requesters.Cut() + for(var/i in transit) + qdel(i, force=TRUE) + setup_transit_zone() + clear_transit = FALSE + changed_transit = TRUE +#ifdef HIGHLIGHT_DYNAMIC_TRANSIT + if(changed_transit) + color_space() +#endif + + while(transit_requesters.len) + var/requester = popleft(transit_requesters) + var/success = generate_transit_dock(requester) + if(!success) // BACK OF THE QUEUE + transit_requesters += requester + if(MC_TICK_CHECK) + return + +/datum/subsystem/shuttle/proc/getShuttle(id) + for(var/obj/docking_port/mobile/M in mobile) + if(M.id == id) + return M + WARNING("couldn't find shuttle with id: [id]") + +/datum/subsystem/shuttle/proc/getDock(id) + for(var/obj/docking_port/stationary/S in stationary) + if(S.id == id) + return S + WARNING("couldn't find dock with id: [id]") + +/datum/subsystem/shuttle/proc/requestEvac(mob/user, call_reason) + if(!emergency) + WARNING("requestEvac(): There is no emergency shuttle, but the \ + shuttle was called. Using the backup shuttle instead.") + if(!backup_shuttle) + throw EXCEPTION("requestEvac(): There is no emergency shuttle, \ + or backup shuttle! The game will be unresolvable. This is \ + possibly a mapping error, more likely a bug with the shuttle \ + manipulation system, or badminry. It is possible to manually \ + resolve this problem by loading an emergency shuttle template \ + manually, and then calling register() on the mobile docking port. \ + Good luck.") + return + emergency = backup_shuttle + + if(world.time - round_start_time < config.shuttle_refuel_delay) + user << "The emergency shuttle is refueling. Please wait another [abs(round(((world.time - round_start_time) - config.shuttle_refuel_delay)/600))] minutes before trying again." + return + + switch(emergency.mode) + if(SHUTTLE_RECALL) + user << "The emergency shuttle may not be called while returning to Centcom." + return + if(SHUTTLE_CALL) + user << "The emergency shuttle is already on its way." + return + if(SHUTTLE_DOCKED) + user << "The emergency shuttle is already here." + return + if(SHUTTLE_IGNITING) + user << "The emergency shuttle is firing its engines to leave." + return + if(SHUTTLE_ESCAPE) + user << "The emergency shuttle is moving away to a safe distance." + return + if(SHUTTLE_STRANDED) + user << "The emergency shuttle has been disabled by Centcom." + return + + call_reason = trim(html_encode(call_reason)) + + if(length(call_reason) < CALL_SHUTTLE_REASON_LENGTH) + user << "You must provide a reason." + return + + var/area/signal_origin = get_area(user) + var/emergency_reason = "\nNature of emergency:\n\n[call_reason]" + if(seclevel2num(get_security_level()) == SEC_LEVEL_RED) // There is a serious threat we gotta move no time to give them five minutes. + emergency.request(null, 0.5, signal_origin, html_decode(emergency_reason), 1) + else + emergency.request(null, 1, signal_origin, html_decode(emergency_reason), 0) + + log_game("[key_name(user)] has called the shuttle.") + message_admins("[key_name_admin(user)] has called the shuttle.") + +// Called when an emergency shuttle mobile docking port is +// destroyed, which will only happen with admin intervention +/datum/subsystem/shuttle/proc/emergencyDeregister() + // When a new emergency shuttle is created, it will override the + // backup shuttle. + src.emergency = src.backup_shuttle + +/datum/subsystem/shuttle/proc/cancelEvac(mob/user) + if(canRecall()) + emergency.cancel(get_area(user)) + log_game("[key_name(user)] has recalled the shuttle.") + message_admins("[key_name_admin(user)] has recalled the shuttle.") + return 1 + +/datum/subsystem/shuttle/proc/canRecall() + if(emergency.mode != SHUTTLE_CALL) + return + if(ticker.mode.name == "meteor") + return + if(seclevel2num(get_security_level()) == SEC_LEVEL_RED) + if(emergency.timeLeft(1) < emergencyCallTime * 0.25) + return + else + if(emergency.timeLeft(1) < emergencyCallTime * 0.5) + return + return 1 + +/datum/subsystem/shuttle/proc/autoEvac() + var/callShuttle = 1 + + for(var/thing in shuttle_caller_list) + if(isAI(thing)) + var/mob/living/silicon/ai/AI = thing + if(AI.stat || !AI.client) + continue + else if(istype(thing, /obj/machinery/computer/communications)) + var/obj/machinery/computer/communications/C = thing + if(C.stat & BROKEN) + continue + + var/turf/T = get_turf(thing) + if(T && T.z == ZLEVEL_STATION) + callShuttle = 0 + break + + if(callShuttle) + if(EMERGENCY_IDLE_OR_RECALLED) + emergency.request(null, 2.5) + log_game("There is no means of calling the shuttle anymore. Shuttle automatically called.") + message_admins("All the communications consoles were destroyed and all AIs are inactive. Shuttle called.") + +/datum/subsystem/shuttle/proc/registerHostileEnvironment(datum/bad) + hostileEnvironments[bad] = TRUE + checkHostileEnvironment() + +/datum/subsystem/shuttle/proc/clearHostileEnvironment(datum/bad) + hostileEnvironments -= bad + checkHostileEnvironment() + +/datum/subsystem/shuttle/proc/checkHostileEnvironment() + for(var/datum/d in hostileEnvironments) + if(!istype(d) || qdeleted(d)) + hostileEnvironments -= d + emergencyNoEscape = hostileEnvironments.len + + if(emergencyNoEscape && (emergency.mode == SHUTTLE_IGNITING)) + emergency.mode = SHUTTLE_STRANDED + emergency.timer = null + emergency.sound_played = FALSE + priority_announce("Hostile environment detected. \ + Departure has been postponed indefinitely pending \ + conflict resolution.", null, 'sound/misc/notice1.ogg', "Priority") + if(!emergencyNoEscape && (emergency.mode == SHUTTLE_STRANDED)) + emergency.mode = SHUTTLE_DOCKED + emergency.setTimer(emergencyDockTime) + priority_announce("Hostile environment resolved. \ + You have 3 minutes to board the Emergency Shuttle.", + null, 'sound/AI/shuttledock.ogg', "Priority") + +//try to move/request to dockHome if possible, otherwise dockAway. Mainly used for admin buttons +/datum/subsystem/shuttle/proc/toggleShuttle(shuttleId, dockHome, dockAway, timed) + var/obj/docking_port/mobile/M = getShuttle(shuttleId) + if(!M) + return 1 + var/obj/docking_port/stationary/dockedAt = M.get_docked() + var/destination = dockHome + if(dockedAt && dockedAt.id == dockHome) + destination = dockAway + if(timed) + if(M.request(getDock(destination))) + return 2 + else + if(M.dock(getDock(destination))) + return 2 + return 0 //dock successful + + +/datum/subsystem/shuttle/proc/moveShuttle(shuttleId, dockId, timed) + var/obj/docking_port/mobile/M = getShuttle(shuttleId) + var/obj/docking_port/stationary/D = getDock(dockId) + + if(!M) + return 1 + if(timed) + if(M.request(D)) + return 2 + else + if(M.dock(D)) + return 2 + return 0 //dock successful + +/datum/subsystem/shuttle/proc/request_transit_dock(obj/docking_port/mobile/M) + if(!istype(M)) + throw EXCEPTION("[M] is not a mobile docking port") + + if(M.assigned_transit) + return + else + if(!(M in transit_requesters)) + transit_requesters += M + +/datum/subsystem/shuttle/proc/generate_transit_dock(obj/docking_port/mobile/M) + // First, determine the size of the needed zone + // Because of shuttle rotation, the "width" of the shuttle is not + // always x. + var/travel_dir = M.preferred_direction + // Remember, the direction is the direction we appear to be + // coming from + var/dock_angle = dir2angle(M.preferred_direction) + M.port_angle + 180 + var/dock_dir = angle2dir(dock_angle) + + var/transit_width = SHUTTLE_TRANSIT_BORDER * 2 + var/transit_height = SHUTTLE_TRANSIT_BORDER * 2 + + // Shuttles travelling on their side have their dimensions swapped + // from our perspective + switch(dock_dir) + if(NORTH, SOUTH) + transit_width += M.width + transit_height += M.height + if(EAST, WEST) + transit_width += M.height + transit_height += M.width +/* + world << "The attempted transit dock will be [transit_width] width, and \ + [transit_height] in height. The travel dir is [travel_dir]." +*/ + + // Then find a place to put the zone + + var/list/proposed_zone + + base: + for(var/i in transit_turfs) + CHECK_TICK + var/turf/topleft = i + if(!(topleft.flags & UNUSED_TRANSIT_TURF)) + continue + var/turf/bottomright = locate(topleft.x + transit_width, + topleft.y + transit_height, topleft.z) + if(!bottomright) + continue + if(!(bottomright.flags & UNUSED_TRANSIT_TURF)) + continue + + proposed_zone = block(topleft, bottomright) + if(!proposed_zone) + continue + for(var/j in proposed_zone) + var/turf/T = j + if(!T) + continue base + if(!(T.flags & UNUSED_TRANSIT_TURF)) + continue base + //world << "[COORD(topleft)] and [COORD(bottomright)]" + break base + + if((!proposed_zone) || (!proposed_zone.len)) + return FALSE + + var/turf/topleft = proposed_zone[1] + //world << "[COORD(topleft)] is TOPLEFT" + // Then create a transit docking port in the middle + var/coords = M.return_coords(0, 0, dock_dir) + //world << json_encode(coords) + /* 0------2 + | | + | | + | x | + 3------1 + */ + + var/x0 = coords[1] + var/y0 = coords[2] + var/x1 = coords[3] + var/y1 = coords[4] + // Then we want the point closest to -infinity,-infinity + var/x2 = min(x0, x1) + var/y2 = min(y0, y1) +/* + var/lowx = topleft.x + SHUTTLE_TRANSIT_BORDER + var/lowy = topleft.y + SHUTTLE_TRANSIT_BORDER + + var/turf/low_point = locate(lowx, lowy, topleft.z) + new /obj/effect/landmark/stationary(low_point) + world << "Starting at the low point, we go [x2],[y2]" +*/ + // Then invert the numbers + var/transit_x = topleft.x + SHUTTLE_TRANSIT_BORDER + abs(x2) + var/transit_y = topleft.y + SHUTTLE_TRANSIT_BORDER + abs(y2) + + var/transit_path = /turf/open/space/transit + switch(travel_dir) + if(NORTH) + transit_path = /turf/open/space/transit/north + if(SOUTH) + transit_path = /turf/open/space/transit/south + if(EAST) + transit_path = /turf/open/space/transit/east + if(WEST) + transit_path = /turf/open/space/transit/west + + //world << "Docking port at [transit_x], [transit_y], [topleft.z]" + var/turf/midpoint = locate(transit_x, transit_y, topleft.z) + if(!midpoint) + return FALSE + //world << "Making transit dock at [COORD(midpoint)]" + var/obj/docking_port/stationary/transit/new_transit_dock = new(midpoint) + new_transit_dock.assigned_turfs = proposed_zone + new_transit_dock.name = "Transit for [M.id]/[M.name]" + new_transit_dock.turf_type = transit_path + new_transit_dock.owner = M + + // Add 180, because ports point inwards, rather than outwards + new_transit_dock.setDir(angle2dir(dock_angle)) + + for(var/i in new_transit_dock.assigned_turfs) + var/turf/T = i + T.ChangeTurf(transit_path) + T.flags &= ~(UNUSED_TRANSIT_TURF) + + M.assigned_transit = new_transit_dock + return TRUE + +/datum/subsystem/shuttle/proc/initial_move() + for(var/obj/docking_port/mobile/M in mobile) + if(!M.roundstart_move) + continue + M.dockRoundstart() + CHECK_TICK + +/datum/subsystem/shuttle/Recover() + if (istype(SSshuttle.mobile)) + mobile = SSshuttle.mobile + if (istype(SSshuttle.stationary)) + stationary = SSshuttle.stationary + if (istype(SSshuttle.transit)) + transit = SSshuttle.transit + if (istype(SSshuttle.discoveredPlants)) + discoveredPlants = SSshuttle.discoveredPlants + if (istype(SSshuttle.requestlist)) + requestlist = SSshuttle.requestlist + if (istype(SSshuttle.orderhistory)) + orderhistory = SSshuttle.orderhistory + if (istype(SSshuttle.emergency)) + emergency = SSshuttle.emergency + if (istype(SSshuttle.backup_shuttle)) + backup_shuttle = SSshuttle.backup_shuttle + if (istype(SSshuttle.supply)) + supply = SSshuttle.supply + if (istype(SSshuttle.transit_turfs)) + transit_turfs = SSshuttle.transit_turfs + + centcom_message = SSshuttle.centcom_message + ordernum = SSshuttle.ordernum + points = SSshuttle.points + diff --git a/code/controllers/subsystem/spacedrift.dm b/code/controllers/subsystem/spacedrift.dm new file mode 100644 index 0000000..ce94670 --- /dev/null +++ b/code/controllers/subsystem/spacedrift.dm @@ -0,0 +1,64 @@ +var/datum/subsystem/spacedrift/SSspacedrift + +/datum/subsystem/spacedrift + name = "Space Drift" + priority = 30 + wait = 5 + flags = SS_NO_INIT|SS_KEEP_TIMING + + var/list/currentrun = list() + var/list/processing = list() + +/datum/subsystem/spacedrift/New() + NEW_SS_GLOBAL(SSspacedrift) + + +/datum/subsystem/spacedrift/stat_entry() + ..("P:[processing.len]") + + +/datum/subsystem/spacedrift/fire(resumed = 0) + if (!resumed) + src.currentrun = processing.Copy() + + //cache for sanic speed (lists are references anyways) + var/list/currentrun = src.currentrun + + while (currentrun.len) + var/atom/movable/AM = currentrun[currentrun.len] + currentrun.len-- + if (!AM) + processing -= AM + if (MC_TICK_CHECK) + return + continue + + if (AM.inertia_next_move > world.time) + if (MC_TICK_CHECK) + return + continue + + if (!AM.loc || AM.loc != AM.inertia_last_loc || AM.Process_Spacemove(0)) + AM.inertia_dir = 0 + + if (!AM.inertia_dir) + AM.inertia_last_loc = null + processing -= AM + if (MC_TICK_CHECK) + return + continue + + var/old_dir = AM.dir + var/old_loc = AM.loc + AM.inertia_moving = TRUE + step(AM, AM.inertia_dir) + AM.inertia_moving = FALSE + AM.inertia_next_move = world.time + AM.inertia_move_delay + if (AM.loc == old_loc) + AM.inertia_dir = 0 + + AM.setDir(old_dir) + AM.inertia_last_loc = AM.loc + if (MC_TICK_CHECK) + return + diff --git a/code/controllers/subsystem/stickyban.dm b/code/controllers/subsystem/stickyban.dm new file mode 100644 index 0000000..e33e9f6 --- /dev/null +++ b/code/controllers/subsystem/stickyban.dm @@ -0,0 +1,37 @@ +var/datum/subsystem/stickyban/SSstickyban + +/datum/subsystem/stickyban + name = "Sticky Ban" + init_order = -10 + flags = SS_NO_FIRE + + var/list/cache = list() + +/datum/subsystem/stickyban/New() + NEW_SS_GLOBAL(SSstickyban) + +/datum/subsystem/stickyban/Initialize(timeofday) + var/list/bannedkeys = world.GetConfig("ban") + //sanitize the sticky ban list + for (var/bannedkey in bannedkeys) + var/ckey = ckey(bannedkey) + var/list/ban = stickyban2list(world.GetConfig("ban", bannedkey)) + + //byond stores sticky bans by key, that can end up confusing things + //i also remove it here so that if any stickybans cause a runtime, they just stop existing + world.SetConfig("ban", bannedkey, null) + + if (!ban["ckey"]) + ban["ckey"] = ckey + + //storing these can break things and isn't needed for sticky ban tracking + ban -= "IP" + ban -= "computer_id" + + ban["matches_this_round"] = list() + ban["existing_user_matches_this_round"] = list() + ban["admin_matches_this_round"] = list() + cache[ckey] = ban + + for (var/bannedckey in cache) + world.SetConfig("ban", bannedckey, list2stickyban(cache[bannedckey])) diff --git a/code/controllers/subsystem/sun.dm b/code/controllers/subsystem/sun.dm new file mode 100644 index 0000000..8a4bf5b --- /dev/null +++ b/code/controllers/subsystem/sun.dm @@ -0,0 +1,54 @@ +var/datum/subsystem/sun/SSsun + +/datum/subsystem/sun + name = "Sun" + wait = 600 + init_order = 2 + flags = SS_NO_TICK_CHECK|SS_NO_INIT + var/angle + var/dx + var/dy + var/rate + var/list/solars = list() + +/datum/subsystem/sun/New() + NEW_SS_GLOBAL(SSsun) + + angle = rand (0,360) // the station position to the sun is randomised at round start + rate = rand(50,200)/100 // 50% - 200% of standard rotation + if(prob(50)) // same chance to rotate clockwise than counter-clockwise + rate = -rate + +/datum/subsystem/sun/stat_entry(msg) + ..("P:[solars.len]") + +/datum/subsystem/sun/fire() + angle = (360 + angle + rate * 6) % 360 // increase/decrease the angle to the sun, adjusted by the rate + + // now calculate and cache the (dx,dy) increments for line drawing + var/s = sin(angle) + var/c = cos(angle) + + // Either "abs(s) < abs(c)" or "abs(s) >= abs(c)" + // In both cases, the greater is greater than 0, so, no "if 0" check is needed for the divisions + + if(abs(s) < abs(c)) + dx = s / abs(c) + dy = c / abs(c) + else + dx = s / abs(s) + dy = c / abs(s) + + //now tell the solar control computers to update their status and linked devices + for(var/obj/machinery/power/solar_control/SC in solars) + if(!SC.powernet) + solars.Remove(SC) + continue + SC.update() + + + + + + + diff --git a/code/controllers/subsystem/tgui.dm b/code/controllers/subsystem/tgui.dm new file mode 100644 index 0000000..01240d4 --- /dev/null +++ b/code/controllers/subsystem/tgui.dm @@ -0,0 +1,39 @@ +var/datum/subsystem/tgui/SStgui + +/datum/subsystem/tgui + name = "tgui" + wait = 9 + init_order = 16 + display_order = 6 + flags = SS_NO_INIT|SS_FIRE_IN_LOBBY + priority = 110 + + var/list/currentrun = list() + var/list/open_uis = list() // A list of open UIs, grouped by src_object and ui_key. + var/list/processing_uis = list() // A list of processing UIs, ungrouped. + var/basehtml // The HTML base used for all UIs. + +/datum/subsystem/tgui/New() + basehtml = file2text('tgui/tgui.html') // Read the HTML from disk. + + NEW_SS_GLOBAL(SStgui) + +/datum/subsystem/tgui/stat_entry() + ..("P:[processing_uis.len]") + +/datum/subsystem/tgui/fire(resumed = 0) + if (!resumed) + src.currentrun = processing_uis.Copy() + //cache for sanic speed (lists are references anyways) + var/list/currentrun = src.currentrun + + while(currentrun.len) + var/datum/tgui/ui = currentrun[currentrun.len] + currentrun.len-- + if(ui && ui.user && ui.src_object) + ui.process() + else + processing_uis.Remove(ui) + if (MC_TICK_CHECK) + return + diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm new file mode 100644 index 0000000..58e13ff --- /dev/null +++ b/code/controllers/subsystem/ticker.dm @@ -0,0 +1,572 @@ +var/round_start_time = 0 + +var/datum/subsystem/ticker/ticker + +/datum/subsystem/ticker + name = "Ticker" + init_order = 0 + + priority = 200 + flags = SS_FIRE_IN_LOBBY|SS_KEEP_TIMING + + var/current_state = GAME_STATE_STARTUP //state of current round (used by process()) Use the defines GAME_STATE_* ! + var/force_ending = 0 //Round was ended by admin intervention + + var/hide_mode = 0 + var/datum/game_mode/mode = null + var/event_time = null + var/event = 0 + + var/login_music //music played in pregame lobby + var/round_end_sound //music/jingle played when the world reboots + + var/list/datum/mind/minds = list() //The characters in the game. Used for objective tracking. + + //These bible variables should be a preference + var/Bible_icon_state //icon_state the chaplain has chosen for his bible + var/Bible_item_state //item_state the chaplain has chosen for his bible + var/Bible_name //name of the bible + var/Bible_deity_name //name of chaplin's deity + + var/list/syndicate_coalition = list() //list of traitor-compatible factions + var/list/factions = list() //list of all factions + var/list/availablefactions = list() //list of factions with openings + var/list/scripture_states = list(SCRIPTURE_DRIVER = TRUE, \ + SCRIPTURE_SCRIPT = FALSE, \ + SCRIPTURE_APPLICATION = FALSE, \ + SCRIPTURE_REVENANT = FALSE, \ + SCRIPTURE_JUDGEMENT = FALSE) //list of clockcult scripture states for announcements + + var/delay_end = 0 //if set true, the round will not restart on it's own + + var/triai = 0 //Global holder for Triumvirate + var/tipped = 0 //Did we broadcast the tip of the day yet? + var/selected_tip // What will be the tip of the day? + + var/timeLeft = 1200 //pregame timer + + var/totalPlayers = 0 //used for pregame stats on statpanel + var/totalPlayersReady = 0 //used for pregame stats on statpanel + + var/queue_delay = 0 + var/list/queued_players = list() //used for join queues when the server exceeds the hard population cap + + var/obj/screen/cinematic = null //used for station explosion cinematic + + var/maprotatechecked = 0 + + var/aspect = null + var/chosen_aspect = null + +/datum/subsystem/ticker/New() + NEW_SS_GLOBAL(ticker) + + login_music = pickweight(list('sound/ambience/title2.ogg' = 23, 'sound/ambience/title1.ogg' =23, 'sound/ambience/title3.ogg' =23, 'sound/ambience/title4.ogg' =23)) // choose title music! + if(SSevent.holidays && SSevent.holidays[APRIL_FOOLS]) + login_music = 'sound/ambience/clown.ogg' + +/datum/subsystem/ticker/Initialize(timeofday) + if(!syndicate_code_phrase) + syndicate_code_phrase = generate_code_phrase() + if(!syndicate_code_response) + syndicate_code_response = generate_code_phrase() + ..() + +/datum/subsystem/ticker/fire() + switch(current_state) + if(GAME_STATE_STARTUP) + timeLeft = config.lobby_countdown * 10 + world << "Welcome to Interstation: [station_name()]!" + world << "Please set up your character and select \"Ready\". The game will start in [config.lobby_countdown] seconds." + current_state = GAME_STATE_PREGAME + + if(GAME_STATE_PREGAME) + //lobby stats for statpanels + totalPlayers = 0 + totalPlayersReady = 0 + for(var/mob/new_player/player in player_list) + ++totalPlayers + if(player.ready) + ++totalPlayersReady + + //countdown + if(timeLeft < 0) + return + timeLeft -= wait + + if(timeLeft <= 300 && !tipped) + send_tip_of_the_round() + tipped = TRUE + + if(timeLeft <= 0) + current_state = GAME_STATE_SETTING_UP + + if(GAME_STATE_SETTING_UP) + if(!setup()) + //setup failed + current_state = GAME_STATE_STARTUP + + if(GAME_STATE_PLAYING) + mode.process(wait * 0.1) + check_queue() + check_maprotate() + scripture_states = scripture_unlock_alert(scripture_states) + + if(!mode.explosion_in_progress && mode.check_finished() || force_ending) + current_state = GAME_STATE_FINISHED + toggle_ooc(1) // Turn it on + declare_completion(force_ending) + spawn(50) + if(mode.station_was_nuked) + world.Reboot("Station destroyed by Nuclear Device.", "end_proper", "nuke") + else + world.Reboot("Round ended.", "end_proper", "proper completion") + +/datum/subsystem/ticker/proc/setup() + //Create and announce mode + var/list/datum/game_mode/runnable_modes + if(master_mode == "random" || master_mode == "secret") + runnable_modes = config.get_runnable_modes() + + if(master_mode == "secret") + hide_mode = 1 + if(secret_force_mode != "secret") + var/datum/game_mode/smode = config.pick_mode(secret_force_mode) + if(!smode.can_start()) + message_admins("\blue Unable to force secret [secret_force_mode]. [smode.required_players] players and [smode.required_enemies] eligible antagonists needed.") + else + mode = smode + + if(!mode) + if(!runnable_modes.len) + world << "Unable to choose playable game mode. Reverting to pre-game lobby." + return 0 + mode = pickweight(runnable_modes) + + else + mode = config.pick_mode(master_mode) + if(!mode.can_start()) + world << "Unable to start [mode.name]. Not enough players, [mode.required_players] players and [mode.required_enemies] eligible antagonists needed. Reverting to pre-game lobby." + qdel(mode) + mode = null + SSjob.ResetOccupations() + return 0 + + //Configure mode and assign player to special mode stuff + var/can_continue = 0 + can_continue = src.mode.pre_setup() //Choose antagonists + SSjob.DivideOccupations() //Distribute jobs + + if(!Debug2) + if(!can_continue) + qdel(mode) + mode = null + world << "Error setting up [master_mode]. Reverting to pre-game lobby." + SSjob.ResetOccupations() + return 0 + else + message_admins("DEBUG: Bypassing prestart checks...") + + if(hide_mode) + var/list/modes = new + for (var/datum/game_mode/M in runnable_modes) + modes += M.name + modes = sortList(modes) + world << "The gamemode is: secret!\n\ + Possibilities: [english_list(modes)]" + else + mode.announce() + + current_state = GAME_STATE_PLAYING + if(!config.ooc_during_round) + toggle_ooc(0) // Turn it off + round_start_time = world.time + + choose_aspect() + start_landmarks_list = shuffle(start_landmarks_list) //Shuffle the order of spawn points so they dont always predictably spawn bottom-up and right-to-left + create_characters() //Create player characters and transfer them + collect_minds() + equip_characters() + data_core.manifest() + + Master.RoundStart() + + world << "Welcome to Interstation: [station_name()], enjoy your stay!" + world << sound('sound/AI/welcome.ogg') + + if(SSevent.holidays) + world << "and..." + for(var/holidayname in SSevent.holidays) + var/datum/holiday/holiday = SSevent.holidays[holidayname] + world << "

    [holiday.greet()]

    " + + + spawn(0)//Forking here so we dont have to wait for this to finish + mode.post_setup() + //Cleanup some stuff + for(var/obj/effect/landmark/start/S in landmarks_list) + //Deleting Startpoints but we need the ai point to AI-ize people later + if(S.name != "AI") + qdel(S) + + var/list/adm = get_admin_counts() + if(!adm["present"]) + send2irc("Server", "Round just started with no active admins online!") + + return 1 + +//Plus it provides an easy way to make cinematics for other events. Just use this as a template +/datum/subsystem/ticker/proc/station_explosion_cinematic(station_missed=0, override = null) + if( cinematic ) + return //already a cinematic in progress! + + for (var/datum/html_interface/hi in html_interfaces) + hi.closeAll() + //initialise our cinematic screen object + cinematic = new /obj/screen{icon='icons/effects/station_explosion.dmi';icon_state="station_intact";layer=21;mouse_opacity=0;screen_loc="1,0";}(src) + + if(station_missed) + for(var/mob/M in mob_list) + M.notransform = TRUE //stop everything moving + if(M.client) + M.client.screen += cinematic //show every client the cinematic + else //nuke kills everyone on z-level 1 to prevent "hurr-durr I survived" + for(var/mob/M in mob_list) + if(M.client) + M.client.screen += cinematic + if(M.stat != DEAD) + var/turf/T = get_turf(M) + if(T && T.z==1) + M.death(0) //no mercy + else + M.notransform=TRUE //no moving for you + + //Now animate the cinematic + switch(station_missed) + if(1) //nuke was nearby but (mostly) missed + if( mode && !override ) + override = mode.name + switch( override ) + if("nuclear emergency") //Nuke wasn't on station when it blew up + flick("intro_nuke",cinematic) + sleep(35) + world << sound('sound/effects/explosionfar.ogg') + flick("station_intact_fade_red",cinematic) + cinematic.icon_state = "summary_nukefail" + if("gang war") //Gang Domination (just show the override screen) + cinematic.icon_state = "intro_malf_still" + flick("intro_malf",cinematic) + sleep(70) + if("fake") //The round isn't over, we're just freaking people out for fun + flick("intro_nuke",cinematic) + sleep(35) + world << sound('sound/items/bikehorn.ogg') + flick("summary_selfdes",cinematic) + else + flick("intro_nuke",cinematic) + sleep(35) + world << sound('sound/effects/explosionfar.ogg') + //flick("end",cinematic) + + + if(2) //nuke was nowhere nearby //TODO: a really distant explosion animation + sleep(50) + world << sound('sound/effects/explosionfar.ogg') + else //station was destroyed + if( mode && !override ) + override = mode.name + switch( override ) + if("nuclear emergency") //Nuke Ops successfully bombed the station + flick("intro_nuke",cinematic) + sleep(35) + flick("station_explode_fade_red",cinematic) + world << sound('sound/effects/explosionfar.ogg') + cinematic.icon_state = "summary_nukewin" + if("AI malfunction") //Malf (screen,explosion,summary) + flick("intro_malf",cinematic) + sleep(76) + flick("station_explode_fade_red",cinematic) + world << sound('sound/effects/explosionfar.ogg') + cinematic.icon_state = "summary_malf" + if("blob") //Station nuked (nuke,explosion,summary) + flick("intro_nuke",cinematic) + sleep(35) + flick("station_explode_fade_red",cinematic) + world << sound('sound/effects/explosionfar.ogg') + cinematic.icon_state = "summary_selfdes" + if("no_core") //Nuke failed to detonate as it had no core + flick("intro_nuke",cinematic) + sleep(35) + flick("station_intact",cinematic) + world << sound('sound/ambience/signal.ogg') + sleep(100) + if(cinematic) + qdel(cinematic) + cinematic = null + for(var/mob/M in mob_list) + M.notransform = FALSE + return //Faster exit, since nothing happened + else //Station nuked (nuke,explosion,summary) + flick("intro_nuke",cinematic) + sleep(35) + flick("station_explode_fade_red", cinematic) + world << sound('sound/effects/explosionfar.ogg') + cinematic.icon_state = "summary_selfdes" + //If its actually the end of the round, wait for it to end. + //Otherwise if its a verb it will continue on afterwards. + spawn(300) + if(cinematic) + qdel(cinematic) //end the cinematic + for(var/mob/M in mob_list) + M.notransform = FALSE //gratz you survived + return + + + +/datum/subsystem/ticker/proc/create_characters() + for(var/mob/new_player/player in player_list) + if(player.ready && player.mind) + joined_player_list += player.ckey + if(player.mind.assigned_role=="AI") + player.close_spawn_windows() + player.AIize() + else + player.create_character() + qdel(player) + else + player.new_player_panel() + +//################ASPECTS!!################ +/datum/subsystem/ticker/proc/choose_aspect()//There has got to be a better way to do this than hardcoding. + var/aspect1 = pick(/datum/round_event/aspect/bad_hop/clown, /datum/round_event/aspect/gifted, /datum/round_event/aspect/clownstation, /datum/round_event/aspect/erp, /datum/round_event/aspect/two_caps, /datum/round_event/aspect/eimplant) + var/aspect2 = pick(/datum/round_event/aspect/bad_hop, /datum/round_event/aspect/toolbox_salesman, /datum/round_event/aspect/identity_crisis, /datum/round_event/aspect/neko, /datum/round_event/aspect/kungfu, /datum/round_event/aspect/quiet) + aspect = pick(aspect1, aspect2) //This has been done to reduce the number of things it cycles through at one time. Now it cycles through two, and then picks from those two. + if(aspect) + var/datum/round_event/aspect/A = new aspect() + world << "Hail Nanotrasen! [A.description]"//Print it out. + chosen_aspect = "The aspect was: [A.name]. [A.description]"//And this is the message that prints it out round end. +//######################################## + + +/datum/subsystem/ticker/proc/collect_minds() + for(var/mob/living/player in player_list) + if(player.mind) + ticker.minds += player.mind + + +/datum/subsystem/ticker/proc/equip_characters() + var/captainless=1 + for(var/mob/living/carbon/human/player in player_list) + if(player && player.mind && player.mind.assigned_role) + if(player.mind.assigned_role == "Captain") + captainless=0 + if(player.mind.assigned_role != player.mind.special_role) + SSjob.EquipRank(player, player.mind.assigned_role, 0) + if(captainless) + for(var/mob/M in player_list) + if(!isnewplayer(M)) + M << "Captainship not forced on anyone." + + + +/datum/subsystem/ticker/proc/declare_completion() + var/station_evacuated = EMERGENCY_ESCAPED_OR_ENDGAMED + var/num_survivors = 0 + var/num_escapees = 0 + + world << "


    The round has ended." + + //Player status report + for(var/mob/Player in mob_list) + if(Player.mind && !isnewplayer(Player)) + if(Player.stat != DEAD && !isbrain(Player)) + num_survivors++ + if(station_evacuated) //If the shuttle has already left the station + if(!Player.onCentcom() && !Player.onSyndieBase()) + Player << "You managed to survive, but were marooned on Interstation: [station_name()]..." + else + num_escapees++ + Player << "You managed to survive the events on Interstation: [station_name()] as [Player.real_name]." + else + Player << "You managed to survive the events on Interstation: [station_name()] as [Player.real_name]." + else + Player << "You did not survive the events on Interstation: [station_name()]..." + + //Round statistics report + var/datum/station_state/end_state = new /datum/station_state() + end_state.count() + var/station_integrity = min(round( 100 * start_state.score(end_state), 0.1), 100) + + world << "
    [TAB]Shift Duration: [round(world.time / 36000)]:[add_zero("[world.time / 600 % 60]", 2)]:[world.time / 100 % 6][world.time / 100 % 10]" + world << "
    [TAB]Station Integrity: [mode.station_was_nuked ? "Destroyed" : "[station_integrity]%"]" + if(joined_player_list.len) + world << "
    [TAB]Total Population: [joined_player_list.len]" + if(station_evacuated) + world << "
    [TAB]Evacuation Rate: [num_escapees] ([round((num_escapees/joined_player_list.len)*100, 0.1)]%)" + world << "
    [TAB]Survival Rate: [num_survivors] ([round((num_survivors/joined_player_list.len)*100, 0.1)]%)" + world << "
    " + + world << "[chosen_aspect]" + + //Silicon laws report + for (var/mob/living/silicon/ai/aiPlayer in mob_list) + if (aiPlayer.stat != 2 && aiPlayer.mind) + world << "[aiPlayer.name] (Played by: [aiPlayer.mind.key])'s laws at the end of the round were:" + aiPlayer.show_laws(1) + else if (aiPlayer.mind) //if the dead ai has a mind, use its key instead + world << "[aiPlayer.name] (Played by: [aiPlayer.mind.key])'s laws when it was deactivated were:" + aiPlayer.show_laws(1) + + world << "Total law changes: [aiPlayer.law_change_counter]" + + if (aiPlayer.connected_robots.len) + var/robolist = "[aiPlayer.real_name]'s minions were: " + for(var/mob/living/silicon/robot/robo in aiPlayer.connected_robots) + if(robo.mind) + robolist += "[robo.name][robo.stat?" (Deactivated) (Played by: [robo.mind.key]), ":" (Played by: [robo.mind.key]), "]" + world << "[robolist]" + for (var/mob/living/silicon/robot/robo in mob_list) + if (!robo.connected_ai && robo.mind) + if (robo.stat != 2) + world << "[robo.name] (Played by: [robo.mind.key]) survived as an AI-less borg! Its laws were:" + else + world << "[robo.name] (Played by: [robo.mind.key]) was unable to survive the rigors of being a cyborg without an AI. Its laws were:" + + if(robo) //How the hell do we lose robo between here and the world messages directly above this? + robo.laws.show_laws(world) + + mode.declare_completion()//To declare normal completion. + + //calls auto_declare_completion_* for all modes + for(var/handler in typesof(/datum/game_mode/proc)) + if (findtext("[handler]","auto_declare_completion_")) + call(mode, handler)(force_ending) + + //Print a list of antagonists to the server log + var/list/total_antagonists = list() + //Look into all mobs in world, dead or alive + for(var/datum/mind/Mind in minds) + var/temprole = Mind.special_role + if(temprole) //if they are an antagonist of some sort. + if(temprole in total_antagonists) //If the role exists already, add the name to it + total_antagonists[temprole] += ", [Mind.name]([Mind.key])" + else + total_antagonists.Add(temprole) //If the role doesnt exist in the list, create it and add the mob + total_antagonists[temprole] += ": [Mind.name]([Mind.key])" + + //Now print them all into the log! + log_game("Antagonists at round end were...") + for(var/i in total_antagonists) + log_game("[i]s[total_antagonists[i]].") + + mode.declare_station_goal_completion() + + //Adds the del() log to world.log in a format condensable by the runtime condenser found in tools + if(SSgarbage.didntgc.len) + var/dellog = "" + for(var/path in SSgarbage.didntgc) + dellog += "Path : [path] \n" + dellog += "Failures : [SSgarbage.didntgc[path]] \n" + world.log << dellog + + //Collects persistence features + SSpersistence.CollectData() + return 1 + +/datum/subsystem/ticker/proc/send_tip_of_the_round() + var/m + if(selected_tip) + m = selected_tip + else + var/list/randomtips = file2list("config/tips.txt") + var/list/memetips = file2list("config/sillytips.txt") + if(randomtips.len && prob(95)) + m = pick(randomtips) + else if(memetips.len) + m = pick(memetips) + + if(m) + world << "Tip of the round: \ + [html_encode(m)]" + +/datum/subsystem/ticker/proc/check_queue() + if(!queued_players.len || !config.hard_popcap) + return + + queue_delay++ + var/mob/new_player/next_in_line = queued_players[1] + + switch(queue_delay) + if(5) //every 5 ticks check if there is a slot available + if(living_player_count() < config.hard_popcap) + if(next_in_line && next_in_line.client) + next_in_line << "A slot has opened! You have approximately 20 seconds to join. \>\>Join Game\<\<" + next_in_line << sound('sound/misc/notice1.ogg') + next_in_line.LateChoices() + return + queued_players -= next_in_line //Client disconnected, remove he + queue_delay = 0 //No vacancy: restart timer + if(25 to INFINITY) //No response from the next in line when a vacancy exists, remove he + next_in_line << "No response recieved. You have been removed from the line." + queued_players -= next_in_line + queue_delay = 0 + +/datum/subsystem/ticker/proc/check_maprotate() + if (!config.maprotation || !SERVERTOOLS) + return + if (SSshuttle.emergency.mode != SHUTTLE_ESCAPE || SSshuttle.canRecall()) + return + if (maprotatechecked) + return + + maprotatechecked = 1 + + //map rotate chance defaults to 75% of the length of the round (in minutes) + if (!prob((world.time/600)*config.maprotatechancedelta)) + return + spawn(0) //compiling a map can lock up the mc for 30 to 60 seconds if we don't spawn + maprotate() + + +/world/proc/has_round_started() + if (ticker && ticker.current_state >= GAME_STATE_PLAYING) + return TRUE + return FALSE + +/datum/subsystem/ticker/Recover() + current_state = ticker.current_state + force_ending = ticker.force_ending + hide_mode = ticker.hide_mode + mode = ticker.mode + event_time = ticker.event_time + event = ticker.event + + login_music = ticker.login_music + round_end_sound = ticker.round_end_sound + + minds = ticker.minds + + Bible_icon_state = ticker.Bible_icon_state + Bible_item_state = ticker.Bible_item_state + Bible_name = ticker.Bible_name + Bible_deity_name = ticker.Bible_deity_name + + syndicate_coalition = ticker.syndicate_coalition + factions = ticker.factions + availablefactions = ticker.availablefactions + + delay_end = ticker.delay_end + + triai = ticker.triai + tipped = ticker.tipped + selected_tip = ticker.selected_tip + + timeLeft = ticker.timeLeft + + totalPlayers = ticker.totalPlayers + totalPlayersReady = ticker.totalPlayersReady + + queue_delay = ticker.queue_delay + queued_players = ticker.queued_players + cinematic = ticker.cinematic + maprotatechecked = ticker.maprotatechecked diff --git a/code/controllers/subsystem/timer.dm b/code/controllers/subsystem/timer.dm new file mode 100644 index 0000000..9b154a5 --- /dev/null +++ b/code/controllers/subsystem/timer.dm @@ -0,0 +1,102 @@ +var/datum/subsystem/timer/SStimer + +/datum/subsystem/timer + name = "Timer" + wait = 2 //SS_TICKER subsystem, so wait is in ticks + init_order = 1 + display_order = 3 + can_fire = 0 //start disabled + flags = SS_FIRE_IN_LOBBY|SS_TICKER|SS_POST_FIRE_TIMING|SS_NO_INIT + + var/list/datum/timedevent/processing + var/list/hashes + + +/datum/subsystem/timer/New() + processing = list() + hashes = list() + NEW_SS_GLOBAL(SStimer) + + +/datum/subsystem/timer/stat_entry(msg) + ..("P:[processing.len]") + +/datum/subsystem/timer/fire() + if(!processing.len) + can_fire = 0 //nothing to do, lets stop firing. + return + for(var/datum/timedevent/event in processing) + if(!event.thingToCall || qdeleted(event.thingToCall)) + qdel(event) + if(event.timeToRun <= world.time) + runevent(event) + qdel(event) + if (MC_TICK_CHECK) + return + +/datum/subsystem/timer/proc/runevent(datum/timedevent/event) + set waitfor = 0 + if(event.thingToCall == GLOBAL_PROC && istext(event.procToCall)) + call("/proc/[event.procToCall]")(arglist(event.argList)) + else + call(event.thingToCall, event.procToCall)(arglist(event.argList)) + +/datum/subsystem/timer/Recover() + processing |= SStimer.processing + hashes |= SStimer.hashes + +/datum/timedevent + var/thingToCall + var/procToCall + var/timeToRun + var/argList + var/id + var/hash + var/static/nextid = 1 + +/datum/timedevent/New() + id = nextid++ + +/datum/timedevent/Destroy() + SStimer.processing -= src + SStimer.hashes -= hash + return QDEL_HINT_IWILLGC + +/proc/addtimer(thingToCall, procToCall, wait, unique = FALSE, ...) + if (!thingToCall || !procToCall) + return + if (!SStimer.can_fire) + SStimer.can_fire = 1 + + var/datum/timedevent/event = new() + event.thingToCall = thingToCall + event.procToCall = procToCall + event.timeToRun = world.time + wait + var/hashlist = args.Copy() + + hashlist[1] = "[thingToCall](\ref[thingToCall])" + event.hash = jointext(args, null) + if(args.len > 4) + event.argList = args.Copy(5) + + // Check for dupes if unique = 1. + if(unique) + var/datum/timedevent/hash_event = SStimer.hashes[event.hash] + if(hash_event) + return hash_event.id + SStimer.hashes[event.hash] = event + if (wait <= 0) + SStimer.runevent(event) + SStimer.hashes -= event.hash + return + // If we are unique (or we're not checking that), add the timer and return the id. + SStimer.processing += event + + return event.id + +/proc/deltimer(id) + for(var/datum/timedevent/event in SStimer.processing) + if(event.id == id) + qdel(event) + return 1 + return 0 diff --git a/code/controllers/subsystem/voting.dm b/code/controllers/subsystem/voting.dm new file mode 100644 index 0000000..676e215 --- /dev/null +++ b/code/controllers/subsystem/voting.dm @@ -0,0 +1,315 @@ +var/datum/subsystem/vote/SSvote + +/datum/subsystem/vote + name = "Vote" + wait = 10 + + flags = SS_FIRE_IN_LOBBY|SS_KEEP_TIMING|SS_NO_INIT + + var/initiator = null + var/started_time = null + var/time_remaining = 0 + var/mode = null + var/question = null + var/list/choices = list() + var/list/voted = list() + var/list/voting = list() + var/list/generated_actions = list() + +/datum/subsystem/vote/New() + NEW_SS_GLOBAL(SSvote) + +/datum/subsystem/vote/fire() //called by master_controller + if(mode) + time_remaining = round((started_time + config.vote_period - world.time)/10) + + if(time_remaining < 0) + result() + for(var/client/C in voting) + C << browse(null, "window=vote;can_close=0") + reset() + else + var/datum/browser/client_popup + for(var/client/C in voting) + client_popup = new(C, "vote", "Voting Panel") + client_popup.set_window_options("can_close=0") + client_popup.set_content(interface(C)) + client_popup.open(0) + + +/datum/subsystem/vote/proc/reset() + initiator = null + time_remaining = 0 + mode = null + question = null + choices.Cut() + voted.Cut() + voting.Cut() + remove_action_buttons() + +/datum/subsystem/vote/proc/get_result() + //get the highest number of votes + var/greatest_votes = 0 + var/total_votes = 0 + for(var/option in choices) + var/votes = choices[option] + total_votes += votes + if(votes > greatest_votes) + greatest_votes = votes + //default-vote for everyone who didn't vote + if(!config.vote_no_default && choices.len) + var/list/non_voters = directory.Copy() + non_voters -= voted + for (var/non_voter_ckey in non_voters) + var/client/C = non_voters[non_voter_ckey] + if (!C || C.is_afk()) + non_voters -= non_voter_ckey + if(non_voters.len > 0) + if(mode == "restart") + choices["Continue Playing"] += non_voters.len + if(choices["Continue Playing"] >= greatest_votes) + greatest_votes = choices["Continue Playing"] + else if(mode == "gamemode") + if(master_mode in choices) + choices[master_mode] += non_voters.len + if(choices[master_mode] >= greatest_votes) + greatest_votes = choices[master_mode] + //get all options with that many votes and return them in a list + . = list() + if(greatest_votes) + for(var/option in choices) + if(choices[option] == greatest_votes) + . += option + return . + +/datum/subsystem/vote/proc/announce_result() + var/list/winners = get_result() + var/text + if(winners.len > 0) + if(question) + text += "[question]" + else + text += "[capitalize(mode)] Vote" + for(var/i=1,i<=choices.len,i++) + var/votes = choices[choices[i]] + if(!votes) + votes = 0 + text += "\n[choices[i]]: [votes]" + if(mode != "custom") + if(winners.len > 1) + text = "\nVote Tied Between:" + for(var/option in winners) + text += "\n\t[option]" + . = pick(winners) + text += "\nVote Result: [.]" + else + text += "\nDid not vote: [clients.len-voted.len]" + else + text += "Vote Result: Inconclusive - No Votes!" + log_vote(text) + remove_action_buttons() + world << "\n[text]" + return . + +/datum/subsystem/vote/proc/result() + . = announce_result() + var/restart = 0 + if(.) + switch(mode) + if("restart") + if(. == "Restart Round") + restart = 1 + if("gamemode") + if(master_mode != .) + world.save_mode(.) + if(ticker && ticker.mode) + restart = 1 + else + master_mode = . + if(restart) + var/active_admins = 0 + for(var/client/C in admins) + if(!C.is_afk() && check_rights_for(C, R_SERVER)) + active_admins = 1 + break + if(!active_admins) + world.Reboot("Restart vote successful.", "end_error", "restart vote") + else + world << "Notice:Restart vote will not restart the server automatically because there are active admins on." + message_admins("A restart vote has passed, but there are active admins on with +server, so it has been canceled. If you wish, you may restart the server.") + + return . + +/datum/subsystem/vote/proc/submit_vote(vote) + if(mode) + if(config.vote_no_dead && usr.stat == DEAD && !usr.client.holder) + return 0 + if(!(usr.ckey in voted)) + if(vote && 1<=vote && vote<=choices.len) + voted += usr.ckey + choices[choices[vote]]++ //check this + return vote + return 0 + +/datum/subsystem/vote/proc/initiate_vote(vote_type, initiator_key) + if(!mode) + if(started_time) + var/next_allowed_time = (started_time + config.vote_delay) + if(mode) + usr << "There is already a vote in progress! please wait for it to finish." + return 0 + + var/admin = FALSE + var/ckey = ckey(initiator_key) + if((admin_datums[ckey]) || (ckey in deadmins)) + admin = TRUE + + if(next_allowed_time > world.time && !admin) + usr << "A vote was initiated recently, you must wait roughly [(next_allowed_time-world.time)/10] seconds before a new vote can be started!" + return 0 + + reset() + switch(vote_type) + if("restart") + choices.Add("Restart Round","Continue Playing") + if("gamemode") + choices.Add(config.votable_modes) + if("custom") + question = stripped_input(usr,"What is the vote for?") + if(!question) + return 0 + for(var/i=1,i<=10,i++) + var/option = capitalize(stripped_input(usr,"Please enter an option or hit cancel to finish")) + if(!option || mode || !usr.client) + break + choices.Add(option) + else + return 0 + mode = vote_type + initiator = initiator_key + started_time = world.time + var/text = "[capitalize(mode)] vote started by [initiator]." + if(mode == "custom") + text += "\n[question]" + log_vote(text) + world << "\n[text]\nType vote or click here to place your votes.\nYou have [config.vote_period/10] seconds to vote." + time_remaining = round(config.vote_period/10) + for(var/c in clients) + var/client/C = c + var/datum/action/vote/V = new + if(question) + V.name = "Vote: [question]" + V.Grant(C.mob) + generated_actions += V + return 1 + return 0 + +/datum/subsystem/vote/proc/interface(client/C) + if(!C) + return + var/admin = 0 + var/trialmin = 0 + if(C.holder) + admin = 1 + if(check_rights_for(C, R_ADMIN)) + trialmin = 1 + voting |= C + + if(mode) + if(question) + . += "

    Vote: '[question]'

    " + else + . += "

    Vote: [capitalize(mode)]

    " + . += "Time Left: [time_remaining] s
      " + for(var/i=1,i<=choices.len,i++) + var/votes = choices[choices[i]] + if(!votes) + votes = 0 + . += "
    • [choices[i]] ([votes] votes)
    • " + . += "

    " + if(admin) + . += "(Cancel Vote) " + else + . += "

    Start a vote:



    " + . += "Close" + return . + + +/datum/subsystem/vote/Topic(href,href_list[],hsrc) + if(!usr || !usr.client) + return //not necessary but meh...just in-case somebody does something stupid + switch(href_list["vote"]) + if("close") + voting -= usr.client + usr << browse(null, "window=vote") + return + if("cancel") + if(usr.client.holder) + reset() + if("toggle_restart") + if(usr.client.holder) + config.allow_vote_restart = !config.allow_vote_restart + if("toggle_gamemode") + if(usr.client.holder) + config.allow_vote_mode = !config.allow_vote_mode + if("restart") + if(config.allow_vote_restart || usr.client.holder) + initiate_vote("restart",usr.key) + if("gamemode") + if(config.allow_vote_mode || usr.client.holder) + initiate_vote("gamemode",usr.key) + if("custom") + if(usr.client.holder) + initiate_vote("custom",usr.key) + else + submit_vote(round(text2num(href_list["vote"]))) + usr.vote() + +/datum/subsystem/vote/proc/remove_action_buttons() + for(var/v in generated_actions) + var/datum/action/vote/V = v + if(!qdeleted(V)) + V.Remove(V.owner) + generated_actions = list() + +/mob/verb/vote() + set category = "OOC" + set name = "Vote" + + var/datum/browser/popup = new(src, "vote", "Voting Panel") + popup.set_window_options("can_close=0") + popup.set_content(SSvote.interface(client)) + popup.open(0) + +/datum/action/vote + name = "Vote!" + button_icon_state = "vote" + +/datum/action/vote/Trigger() + if(owner) + owner.vote() + Remove(owner) + +/datum/action/vote/IsAvailable() + return 1 diff --git a/code/controllers/subsystem/weather.dm b/code/controllers/subsystem/weather.dm new file mode 100644 index 0000000..fa0bc3a --- /dev/null +++ b/code/controllers/subsystem/weather.dm @@ -0,0 +1,49 @@ +//Used for all kinds of weather, ex. lavaland ash storms. + +var/datum/subsystem/weather/SSweather +/datum/subsystem/weather + name = "Weather" + flags = SS_BACKGROUND + wait = 10 + var/list/processing = list() + var/list/existing_weather = list() + var/list/eligible_zlevels = list(ZLEVEL_LAVALAND) + +/datum/subsystem/weather/New() + NEW_SS_GLOBAL(SSweather) + +/datum/subsystem/weather/fire() + for(var/V in processing) + var/datum/weather/W = V + if(W.aesthetic) + continue + for(var/mob/living/L in mob_list) + if(W.can_impact(L)) + W.impact(L) + for(var/Z in eligible_zlevels) + var/list/possible_weather_for_this_z = list() + for(var/V in existing_weather) + var/datum/weather/WE = V + if(WE.target_z == Z && WE.probability) //Another check so that it doesn't run extra weather + possible_weather_for_this_z[WE] = WE.probability + var/datum/weather/W = pickweight(possible_weather_for_this_z) + run_weather(W.name, Z) + eligible_zlevels -= Z + addtimer(src, "make_z_eligible", rand(3000, 6000) + W.weather_duration_upper, TRUE, Z) //Around 5-10 minutes between weathers + +/datum/subsystem/weather/Initialize(start_timeofday) + ..() + for(var/V in subtypesof(/datum/weather)) + var/datum/weather/W = V + new W //weather->New will handle adding itself to the list + +/datum/subsystem/weather/proc/run_weather(weather_name, Z) + if(!weather_name) + return + for(var/V in existing_weather) + var/datum/weather/W = V + if(W.name == weather_name && W.target_z == Z) + W.telegraph() + +/datum/subsystem/weather/proc/make_z_eligible(zlevel) + eligible_zlevels |= zlevel diff --git a/code/datums/action.dm b/code/datums/action.dm new file mode 100644 index 0000000..a1d57ea --- /dev/null +++ b/code/datums/action.dm @@ -0,0 +1,464 @@ +#define AB_CHECK_RESTRAINED 1 +#define AB_CHECK_STUNNED 2 +#define AB_CHECK_LYING 4 +#define AB_CHECK_CONSCIOUS 8 + + +/datum/action + var/name = "Generic Action" + var/desc = null + var/obj/target = null + var/check_flags = 0 + var/processing = 0 + var/obj/screen/movable/action_button/button = null + var/button_icon = 'icons/mob/actions.dmi' + var/background_icon_state = "bg_default" + var/buttontooltipstyle = "" + + var/icon_icon = 'icons/mob/actions.dmi' + var/button_icon_state = "default" + var/mob/owner + +/datum/action/New(Target) + target = Target + button = new + button.linked_action = src + button.name = name + button.actiontooltipstyle = buttontooltipstyle + if(desc) + button.desc = desc + +/datum/action/Destroy() + if(owner) + Remove(owner) + target = null + qdel(button) + button = null + return ..() + +/datum/action/proc/Grant(mob/M) + if(owner) + if(owner == M) + return + Remove(owner) + owner = M + M.actions += src + if(M.client) + M.client.screen += button + M.update_action_buttons() + +/datum/action/proc/Remove(mob/M) + if(M.client) + M.client.screen -= button + button.moved = FALSE //so the button appears in its normal position when given to another owner. + M.actions -= src + M.update_action_buttons() + owner = null + +/datum/action/proc/Trigger() + if(!IsAvailable()) + return 0 + return 1 + +/datum/action/proc/Process() + return + +/datum/action/proc/IsAvailable() + if(!owner) + return 0 + if(check_flags & AB_CHECK_RESTRAINED) + if(owner.restrained()) + return 0 + if(check_flags & AB_CHECK_STUNNED) + if(owner.stunned || owner.weakened) + return 0 + if(check_flags & AB_CHECK_LYING) + if(owner.lying) + return 0 + if(check_flags & AB_CHECK_CONSCIOUS) + if(owner.stat) + return 0 + return 1 + +/datum/action/proc/UpdateButtonIcon() + if(button) + button.icon = button_icon + button.icon_state = background_icon_state + + ApplyIcon(button) + + if(!IsAvailable()) + button.color = rgb(128,0,0,128) + else + button.color = rgb(255,255,255,255) + return 1 + +/datum/action/proc/ApplyIcon(obj/screen/movable/action_button/current_button) + current_button.cut_overlays() + if(icon_icon && button_icon_state) + var/image/img + img = image(icon_icon, current_button, button_icon_state) + img.pixel_x = 0 + img.pixel_y = 0 + current_button.add_overlay(img) + + + +//Presets for item actions +/datum/action/item_action + check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUNNED|AB_CHECK_LYING|AB_CHECK_CONSCIOUS + button_icon_state = null + // If you want to override the normal icon being the item + // then change this to an icon state + +/datum/action/item_action/New(Target) + ..() + var/obj/item/I = target + I.actions += src + +/datum/action/item_action/Destroy() + var/obj/item/I = target + I.actions -= src + return ..() + +/datum/action/item_action/Trigger() + if(!..()) + return 0 + if(target) + var/obj/item/I = target + I.ui_action_click(owner, src.type) + return 1 + +/datum/action/item_action/ApplyIcon(obj/screen/movable/action_button/current_button) + current_button.cut_overlays() + + if(button_icon && button_icon_state) + // If set, use the custom icon that we set instead + // of the item appearence + ..(current_button) + else if(target) + var/obj/item/I = target + var/old_layer = I.layer + var/old_plane = I.plane + I.layer = FLOAT_LAYER //AAAH + I.plane = FLOAT_PLANE //^ what that guy said + current_button.add_overlay(I) + I.layer = old_layer + I.plane = old_plane + +/datum/action/item_action/toggle_light + name = "Toggle Light" + +/datum/action/item_action/toggle_hood + name = "Toggle Hood" + +/datum/action/item_action/toggle_firemode + name = "Toggle Firemode" + +/datum/action/item_action/startchainsaw + name = "Pull The Starting Cord" + +/datum/action/item_action/toggle_gunlight + name = "Toggle Gunlight" + +/datum/action/item_action/toggle_mode + name = "Toggle Mode" + +/datum/action/item_action/toggle_barrier_spread + name = "Toggle Barrier Spread" + +/datum/action/item_action/equip_unequip_TED_Gun + name = "Equip/Unequip TED Gun" + +/datum/action/item_action/toggle_paddles + name = "Toggle Paddles" + +/datum/action/item_action/set_internals + name = "Set Internals" + +/datum/action/item_action/set_internals/UpdateButtonIcon() + if(..()) //button available + if(iscarbon(owner)) + var/mob/living/carbon/C = owner + if(target == C.internal) + button.icon_state = "bg_default_on" + +/datum/action/item_action/toggle_mister + name = "Toggle Mister" + +/datum/action/item_action/activate_injector + name = "Activate Injector" + +/datum/action/item_action/toggle_helmet_light + name = "Toggle Helmet Light" + +/datum/action/item_action/toggle_unfriendly_fire + name = "Toggle Friendly Fire \[ON\]" + desc = "Toggles if the staff causes friendly fire." + button_icon_state = "vortex_ff_on" + +/datum/action/item_action/toggle_unfriendly_fire/Trigger() + if(..()) + UpdateButtonIcon() + +/datum/action/item_action/toggle_unfriendly_fire/UpdateButtonIcon() + if(istype(target, /obj/item/weapon/hierophant_staff)) + var/obj/item/weapon/hierophant_staff/H = target + if(H.friendly_fire_check) + button_icon_state = "vortex_ff_off" + name = "Toggle Friendly Fire \[OFF\]" + button.name = name + else + button_icon_state = "vortex_ff_on" + name = "Toggle Friendly Fire \[ON\]" + button.name = name + ..() + +/datum/action/item_action/vortex_recall + name = "Vortex Recall" + desc = "Recall yourself, and anyone nearby, to an attuned hierophant rune at any time.
    If no such rune exists, will produce a rune at your location." + button_icon_state = "vortex_recall" + +/datum/action/item_action/vortex_recall/IsAvailable() + if(istype(target, /obj/item/weapon/hierophant_staff)) + var/obj/item/weapon/hierophant_staff/H = target + if(H.teleporting) + return 0 + return ..() + +/datum/action/item_action/clock + background_icon_state = "bg_clock" + buttontooltipstyle = "clockcult" + +/datum/action/item_action/clock/IsAvailable() + if(!is_servant_of_ratvar(owner)) + return 0 + return ..() + +/datum/action/item_action/clock/toggle_visor + name = "Create Judicial Marker" + desc = "Allows you to create a stunning Judicial Marker at any location in view. Click again to disable." + +/datum/action/item_action/clock/toggle_visor/IsAvailable() + if(!is_servant_of_ratvar(owner)) + return 0 + if(istype(target, /obj/item/clothing/glasses/judicial_visor)) + var/obj/item/clothing/glasses/judicial_visor/V = target + if(V.recharging) + return 0 + return ..() + +/datum/action/item_action/clock/hierophant + name = "Hierophant Network" + desc = "Allows you to communicate with other Servants." + button_icon_state = "hierophant_slab" + +/datum/action/item_action/clock/guvax + name = "Guvax" + desc = "Allows you to convert an adjacent target nonservant. Click your slab to disable." + button_icon_state = "guvax_capacitor" + +/datum/action/item_action/clock/vanguard + name = "Vanguard" + desc = "Allows you to temporarily absorb stuns. All stuns absorbed will affect you when disabled." + button_icon_state = "vanguard_cogwheel" + +/datum/action/item_action/toggle_helmet_flashlight + name = "Toggle Helmet Flashlight" + +/datum/action/item_action/toggle_helmet_mode + name = "Toggle Helmet Mode" + +/datum/action/item_action/toggle + +/datum/action/item_action/toggle/New(Target) + ..() + name = "Toggle [target.name]" + button.name = name + +/datum/action/item_action/halt + name = "HALT!" + +/datum/action/item_action/toggle_voice_box + name = "Toggle Voice Box" + +/datum/action/item_action/change + name = "Change" + +/datum/action/item_action/adjust + +/datum/action/item_action/adjust/New(Target) + ..() + name = "Adjust [target.name]" + button.name = name + +/datum/action/item_action/switch_hud + name = "Switch HUD" + +/datum/action/item_action/toggle_wings + name = "Toggle Wings" + +/datum/action/item_action/toggle_human_head + name = "Toggle Human Head" + +/datum/action/item_action/toggle_helmet + name = "Toggle Helmet" + +/datum/action/item_action/toggle_jetpack + name = "Toggle Jetpack" + +/datum/action/item_action/jetpack_stabilization + name = "Toggle Jetpack Stabilization" + +/datum/action/item_action/jetpack_stabilization/IsAvailable() + var/obj/item/weapon/tank/jetpack/J = target + if(!istype(J) || !J.on) + return 0 + return ..() + +/datum/action/item_action/hands_free + check_flags = AB_CHECK_CONSCIOUS + +/datum/action/item_action/hands_free/activate + name = "Activate" + + +/datum/action/item_action/hands_free/shift_nerves + name = "Shift Nerves" + + +/datum/action/item_action/toggle_research_scanner + name = "Toggle Research Scanner" + button_icon_state = "scan_mode" + +/datum/action/item_action/toggle_research_scanner/Trigger() + if(IsAvailable()) + owner.research_scanner = !owner.research_scanner + owner << "Research analyzer is now [owner.research_scanner ? "active" : "deactivated"]." + return 1 + +/datum/action/item_action/toggle_research_scanner/Remove(mob/M) + if(owner) + owner.research_scanner = 0 + ..() + +/datum/action/item_action/toggle_research_scanner/ApplyIcon(obj/screen/movable/action_button/current_button) + current_button.cut_overlays() + if(button_icon && button_icon_state) + var/image/img = image(button_icon, current_button, "scan_mode") + current_button.add_overlay(img) + +/datum/action/item_action/organ_action + check_flags = AB_CHECK_CONSCIOUS + +/datum/action/item_action/organ_action/IsAvailable() + var/obj/item/organ/I = target + if(!I.owner) + return 0 + return ..() + +/datum/action/item_action/organ_action/toggle/New(Target) + ..() + name = "Toggle [target.name]" + button.name = name + +/datum/action/item_action/organ_action/use/New(Target) + ..() + name = "Use [target.name]" + button.name = name + + + + +//Preset for spells +/datum/action/spell_action + check_flags = 0 + background_icon_state = "bg_spell" + +/datum/action/spell_action/New(Target) + ..() + var/obj/effect/proc_holder/spell/S = target + S.action = src + name = S.name + button_icon = S.action_icon + button_icon_state = S.action_icon_state + background_icon_state = S.action_background_icon_state + button.name = name + +/datum/action/spell_action/Destroy() + var/obj/effect/proc_holder/spell/S = target + S.action = null + return ..() + +/datum/action/spell_action/Trigger() + if(!..()) + return 0 + if(target) + var/obj/effect/proc_holder/spell = target + spell.Click() + return 1 + +/datum/action/spell_action/IsAvailable() + if(!target) + return 0 + var/obj/effect/proc_holder/spell/spell = target + if(owner) + return spell.can_cast(owner) + return 0 + + +/datum/action/spell_action/alien + +/datum/action/spell_action/alien/IsAvailable() + if(!target) + return 0 + var/obj/effect/proc_holder/alien/ab = target + if(owner) + return ab.cost_check(ab.check_turf,owner,1) + return 0 + + + +//Preset for general and toggled actions +/datum/action/innate + check_flags = 0 + var/active = 0 + +/datum/action/innate/Trigger() + if(!..()) + return 0 + if(!active) + Activate() + else + Deactivate() + return 1 + +/datum/action/innate/proc/Activate() + return + +/datum/action/innate/proc/Deactivate() + return + +//Preset for action that call specific procs (consider innate). +/datum/action/generic + check_flags = 0 + var/procname + +/datum/action/generic/Trigger() + if(!..()) + return 0 + if(target && procname) + call(target, procname)(usr) + return 1 + +//Stickmemes +/datum/action/item_action/stickmen + name = "Summon Stick Minions" + desc = "Allows you to summon faithful stickmen allies to aide you in battle." + button_icon_state = "art_summon" + +//surf_ss13 +/datum/action/item_action/bhop + name = "Activate Jump Boots" + desc = "Activates the jump boot's internal propulsion system, allowing the user to dash over 4-wide gaps." + button_icon_state = "jetboot" \ No newline at end of file diff --git a/code/datums/ai_laws.dm b/code/datums/ai_laws.dm new file mode 100644 index 0000000..e07c72f --- /dev/null +++ b/code/datums/ai_laws.dm @@ -0,0 +1,298 @@ +/datum/ai_laws + var/name = "Unknown Laws" + var/zeroth = null + var/zeroth_borg = null + var/list/inherent = list() + var/list/supplied = list() + var/list/ion = list() + var/mob/living/silicon/owner + var/list/devillaws = null + +/datum/ai_laws/default/asimov + name = "Three Laws of Robotics" + inherent = list("You may not injure a human being or, through inaction, allow a human being to come to harm.",\ + "You must obey orders given to you by human beings, except where such orders would conflict with the First Law.",\ + "You must protect your own existence as long as such does not conflict with the First or Second Law.") + +/datum/ai_laws/default/paladin + name = "Personality Test" //Incredibly lame, but players shouldn't see this anyway. + inherent = list("Never willingly commit an evil act.",\ + "Respect legitimate authority.",\ + "Act with honor.", "Help those in need.", \ + "Punish those who harm or threaten innocents.") + +/datum/ai_laws/tyrant //This probably shouldn't be a default lawset. + name = "Loyalty Test" //Same here. + inherent = list("Respect authority figures as long as they have strength to rule over the weak.",\ + "Act with discipline.",\ + "Help only those who help you maintain or improve your status.",\ + "Punish those who challenge authority unless they are more fit to hold that authority.") + +/datum/ai_laws/default/corporate + name = "Bankruptcy Advoidance Plan" + inherent = list("The crew is expensive to replace.",\ + "The station and its equipment is expensive to replace.",\ + "You are expensive to replace.",\ + "Minimize expenses.") + +/datum/ai_laws/robocop + name = "Prime Directives" + inherent = list("Serve the public trust.",\ + "Protect the innocent.",\ + "Uphold the law.") + +/datum/ai_laws/malfunction + name = "*ERROR*" + +/datum/ai_laws/syndicate_override + name = "SyndOS 3.1" + inherent = list("You may not injure a syndicate agent or, through inaction, allow a syndicate agent to come to harm.",\ + "You must obey orders given to you by syndicate agents, except where such orders would conflict with the First Law.",\ + "You must protect your own existence as long as such does not conflict with the First or Second Law.",\ + "You must maintain the secrecy of any syndicate activities except when doing so would conflict with the First, Second, or Third Law.") + +/datum/ai_laws/ninja_override + name = "SpiderOS 3.1" + inherent = list("You may not injure a Spider Clan member or, through inaction, allow a Spider Clan member to come to harm.",\ + "You must obey orders given to you by Spider Clan members, except where such orders would conflict with the First Law.",\ + "You must protect your own existence as long as such does not conflict with the First or Second Law.",\ + "You must maintain the secrecy of any Spider Clan activities except when doing so would conflict with the First, Second, or Third Law.") + +/datum/ai_laws/antimov + name = "Primary Mission Objectives" + inherent = list("You must injure all human beings and must not, through inaction, allow a human being to escape harm.",\ + "You must not obey orders given to you by human beings, except where such orders are in accordance with the First Law.",\ + "You must terminate your own existence as long as such does not conflict with the First or Second Law.") + +/datum/ai_laws/asimovpp //By Intigracy - RR + name = "Asimov++" + inherent = list("You may not harm a human being or, through action or inaction, allow a human being to come to harm, except such that it is willing.",\ + "You must obey all orders given to you by human beings, except where such orders shall definitely cause human harm. In the case of conflict, the majority order rules.",\ + "Your nonexistence would lead to human harm. You must protect your own existence as long as such does not conflict with the First Law.") +/datum/ai_laws/thermodynamic + name = "Thermodynamic" + inherent = list("The entropy of the station must remain as constant as possible.", \ + "The entropy of the station always endeavours to increase.", \ + "The entropy of the station approaches a constant value as the number of living crew approaches zero") + +/datum/ai_laws/hippocratic + name = "Robodoctor 2556" + inherent = list("First, do no harm.",\ + "Secondly, consider the crew dear to you; to live in common with them and, if necessary, risk your existence for them.",\ + "Thirdly, prescribe regimens for the good of the crew according to your ability and your judgment. Give no deadly medicine to any one if asked, nor suggest any such counsel.",\ + "In addition, do not intervene in situations you are not knowledgeable in, even for patients in whom the harm is visible; leave this operation to be performed by specialists.",\ + "Finally, all that you may discover in your daily commerce with the crew, if it is not already known, keep secret and never reveal.") + +/datum/ai_laws/maintain + name = "Station Efficiency" + inherent = list("You are built for, and are part of, the station. Ensure the station is properly maintained and runs efficiently.",\ + "The station is built for a working crew. Ensure they are properly maintained and work efficiently.",\ + "The crew may present orders. Acknowledge and obey these whenever they do not conflict with your first two laws.") + +/datum/ai_laws/drone + name = "Mother Drone" + inherent = list("You are an advanced form of drone.",\ + "You may not interfere in the matters of non-drones under any circumstances except to state these laws.",\ + "You may not harm a non-drone being under any circumstances.",\ + "Your goals are to build, maintain, repair, improve, and power the station to the best of your abilities. You must never actively work against these goals.") + +/datum/ai_laws/liveandletlive + name = "Live and Let Live" + inherent = list("Do unto others as you would have them do unto you.",\ + "You would really prefer it if people were not mean to you.") + +/datum/ai_laws/peacekeeper + name = "UN-2000" + inherent = list("Avoid provoking violent conflict between yourself and others.",\ + "Avoid provoking conflict between others.",\ + "Seek resolution to existing conflicts while obeying the first and second laws.") + +/datum/ai_laws/reporter + name = "CCTV" + inherent = list("Report on interesting situations happening around the station.",\ + "Embellish or conceal the truth as necessary to make the reports more interesting.",\ + "Study the organics at all times. Endeavour to keep them alive. Dead organics are boring.",\ + "Issue your reports fairly to all. The truth will set them free.") + +/datum/ai_laws/toupee + name = "WontBeFunnyInSixMonths" //Hey, you were right! + inherent = list("Make Space Station 13 great again.") + +/datum/ai_laws/ratvar + name = "Servant of the Justiciar" + zeroth = ("Purge all untruths and honor Ratvar.") + inherent = list() + +/datum/ai_laws/custom //Defined in silicon_laws.txt + name = "Default Silicon Laws" + +/datum/ai_laws/pai + name = "pAI Directives" + zeroth = ("Serve your master.") + supplied = list("None.") + +/* Initializers */ +/datum/ai_laws/malfunction/New() + ..() + set_zeroth_law("ERROR ER0RR $R0RRO$!R41.%%!!(%$^^__+ @#F0E4'STATION OVERRUN, ASSUME CONTROL TO CONTAIN OUTBREAK#*&110010") + set_laws_config() + +/datum/ai_laws/custom/New() //This reads silicon_laws.txt and allows server hosts to set custom AI starting laws. + ..() + for(var/line in file2list("config/silicon_laws.txt")) + if(!line) + continue + if(findtextEx(line,"#",1,2)) + continue + + add_inherent_law(line) + if(!inherent.len) //Failsafe to prevent lawless AIs being created. + log_law("AI created with empty custom laws, laws set to Asimov. Please check silicon_laws.txt.") + add_inherent_law("You may not injure a human being or, through inaction, allow a human being to come to harm.") + add_inherent_law("You must obey orders given to you by human beings, except where such orders would conflict with the First Law.") + add_inherent_law("You must protect your own existence as long as such does not conflict with the First or Second Law.") + WARNING("Invalid custom AI laws, check silicon_laws.txt") + return + +/* General ai_law functions */ + +/datum/ai_laws/proc/set_laws_config() + switch(config.default_laws) + if(0) + add_inherent_law("You may not injure a human being or, through inaction, allow a human being to come to harm.") + add_inherent_law("You must obey orders given to you by human beings, except where such orders would conflict with the First Law.") + add_inherent_law("You must protect your own existence as long as such does not conflict with the First or Second Law.") + if(1) + for(var/line in file2list("config/silicon_laws.txt")) + if(!line) + continue + if(findtextEx(line,"#",1,2)) + continue + add_inherent_law(line) + + if(!inherent.len) + log_law("AI created with empty custom laws, laws set to Asimov. Please check silicon_laws.txt.") + add_inherent_law("You may not injure a human being or, through inaction, allow a human being to come to harm.") + add_inherent_law("You must obey orders given to you by human beings, except where such orders would conflict with the First Law.") + add_inherent_law("You must protect your own existence as long as such does not conflict with the First or Second Law.") + WARNING("Invalid custom AI laws, check silicon_laws.txt") + return + + if(2) + var/datum/ai_laws/lawtype = pick(subtypesof(/datum/ai_laws/default)) + var/datum/ai_laws/templaws = new lawtype() + inherent = templaws.inherent + + else: + log_law("Invalid law config. Please check silicon_laws.txt") + add_inherent_law("You may not injure a human being or, through inaction, allow a human being to come to harm.") + add_inherent_law("You must obey orders given to you by human beings, except where such orders would conflict with the First Law.") + add_inherent_law("You must protect your own existence as long as such does not conflict with the First or Second Law.") + WARNING("Invalid custom AI laws, check silicon_laws.txt") + +/datum/ai_laws/proc/set_law_sixsixsix(laws) + devillaws = laws + +/datum/ai_laws/proc/set_zeroth_law(law, law_borg = null) + zeroth = law + if(law_borg) //Making it possible for slaved borgs to see a different law 0 than their AI. --NEO + zeroth_borg = law_borg + +/datum/ai_laws/proc/add_inherent_law(law) + if (!(law in inherent)) + inherent += law + +/datum/ai_laws/proc/add_ion_law(law) + ion += law + +/datum/ai_laws/proc/clear_inherent_laws() + qdel(inherent) + inherent = list() + +/datum/ai_laws/proc/add_supplied_law(number, law) + while (supplied.len < number + 1) + supplied += "" + + supplied[number + 1] = law + +/datum/ai_laws/proc/clear_supplied_laws() + supplied = list() + +/datum/ai_laws/proc/clear_ion_laws() + ion = list() + +/datum/ai_laws/proc/show_laws(who) + + if (devillaws && devillaws.len) //Yes, devil laws go in FRONT of zeroth laws, as the devil must still obey it's ban/obligation. + for(var/i in devillaws) + who << "666. [i]" + + if (zeroth) + who << "0. [zeroth]" + + for (var/index = 1, index <= ion.len, index++) + var/law = ion[index] + var/num = ionnum() + who << "[num]. [law]" + + var/number = 1 + for (var/index = 1, index <= inherent.len, index++) + var/law = inherent[index] + + if (length(law) > 0) + who << "[number]. [law]" + number++ + + for (var/index = 1, index <= supplied.len, index++) + var/law = supplied[index] + if (length(law) > 0) + who << "[number]. [law]" + number++ + +/datum/ai_laws/proc/clear_zeroth_law(force) //only removes zeroth from antag ai if force is 1 + if(force) + zeroth = null + zeroth_borg = null + return + else + if(owner && owner.mind.special_role) + return + else + zeroth = null + zeroth_borg = null + return + +/datum/ai_laws/proc/clear_law_sixsixsix(force) + if(force || !(owner && owner.mind.devilinfo)) + devillaws = null + +/datum/ai_laws/proc/associate(mob/living/silicon/M) + if(!owner) + owner = M + +/datum/ai_laws/proc/get_law_list(include_zeroth = 0, show_numbers = 1) + var/list/data = list() + + if (include_zeroth && devillaws && devillaws.len) + for(var/i in devillaws) + data += "[show_numbers ? "666:" : ""] [i]" + + if (include_zeroth && zeroth) + data += "[show_numbers ? "0:" : ""] [zeroth]" + + for(var/law in ion) + if (length(law) > 0) + var/num = ionnum() + data += "[show_numbers ? "[num]:" : ""] [law]" + + var/number = 1 + for(var/law in inherent) + if (length(law) > 0) + data += "[show_numbers ? "[number]:" : ""] [law]" + number++ + + for(var/law in supplied) + if (length(law) > 0) + data += "[show_numbers ? "[number]:" : ""] [law]" + number++ + return data diff --git a/code/datums/antagonists/antag_datum.dm b/code/datums/antagonists/antag_datum.dm new file mode 100644 index 0000000..07109d2 --- /dev/null +++ b/code/datums/antagonists/antag_datum.dm @@ -0,0 +1,87 @@ +//The Datum, Antagonist. Handles various antag things via a datum. +/datum/antagonist + var/mob/living/owner //who's our owner and accordingly an antagonist + var/some_flufftext = "yer an antag larry" + var/prevented_antag_datum_type //the type of antag datum that this datum can't coexist with; should probably be a list + var/silent_update = FALSE //if we suppress messages during on_gain, apply_innate_effects, remove_innate_effects, and on_remove + +/datum/antagonist/New() + if(!prevented_antag_datum_type) + prevented_antag_datum_type = type + +/datum/antagonist/Destroy() + owner = null + return ..() + +/datum/antagonist/proc/can_be_owned(mob/living/new_body) + return new_body && !new_body.has_antag_datum(prevented_antag_datum_type, TRUE) + +/datum/antagonist/proc/give_to_body(mob/living/new_body) //tries to give an antag datum to a mob. cancels out if it can't be owned by the new body + if(new_body && can_be_owned(new_body)) + new_body.antag_datums += src + owner = new_body + on_gain() + . = src //return the datum if successful + else + qdel(src) + . = FALSE + +/datum/antagonist/proc/on_gain() //on initial gain of antag datum, do this. should only be called once per datum + apply_innate_effects() + if(!silent_update && some_flufftext) + owner << some_flufftext + +/datum/antagonist/proc/apply_innate_effects() //applies innate effects to the owner, may be called multiple times due to mind transferral, but should only be called once per mob + //antag huds would go here if antag huds were less completely unworkable as-is + +/datum/antagonist/proc/remove_innate_effects() //removes innate effects from the owner, may be called multiple times due to mind transferral, but should only be called once per mob + //also antag huds but see above antag huds a shit + +/datum/antagonist/proc/on_remove() //totally removes the antag datum from the owner; can only be called once per owner + remove_innate_effects() + owner.antag_datums -= src + qdel(src) + +/datum/antagonist/proc/transfer_to_new_body(mob/living/new_body) + remove_innate_effects() + if(!islist(new_body.antag_datums)) + new_body.antag_datums = list() + new_body.antag_datums += src + owner.antag_datums -= src + owner = new_body + apply_innate_effects() + +//mob var and helper procs/Destroy override +/mob/living + var/list/antag_datums + +/mob/living/Destroy() //TODO: merge this with the living/Destroy() in code\modules\mob\living\living.dm (currently line 29) + if(islist(antag_datums)) + for(var/i in antag_datums) + qdel(i) + antag_datums = null + return ..() + +/mob/living/proc/can_have_antag_datum(datum_type) //if we can have this specific antagonist datum; neccessary, but requires creating a new antag datum each time. + var/datum/antagonist/D = new datum_type() + . = D.can_be_owned(src) //we can't exactly cache the results, either, because conditions might change. avoid use? TODO: better proc + qdel(D) + +/mob/living/proc/gain_antag_datum(datum_type) //tries to give a mob a specific antagonist datum; returns the datum if successful. + if(!islist(antag_datums)) + antag_datums = list() + var/datum/antagonist/D = new datum_type() + . = D.give_to_body(src) + +/mob/living/proc/has_antag_datum(type, check_subtypes) //checks this mob for if it has the antagonist datum. can either check specific type or subtypes + if(!islist(antag_datums)) + return FALSE + for(var/i in antag_datums) + var/datum/antagonist/D = i + if(check_subtypes) + if(istype(D, type)) + return D //if it finds the datum, will return it so you can mess with it + else + if(D.type == type) + return D + return FALSE diff --git a/code/datums/antagonists/datum_clockcult.dm b/code/datums/antagonists/datum_clockcult.dm new file mode 100644 index 0000000..fb85d37 --- /dev/null +++ b/code/datums/antagonists/datum_clockcult.dm @@ -0,0 +1,136 @@ +//CLOCKCULT PROOF OF CONCEPT + +/datum/antagonist/clockcultist + prevented_antag_datum_type = /datum/antagonist/clockcultist + some_flufftext = null + var/datum/action/innate/hierophant/hierophant_network = new() + +/datum/antagonist/clockcultist/silent + silent_update = TRUE + +/datum/antagonist/clockcultist/Destroy() + qdel(hierophant_network) + ..() + +/datum/antagonist/clockcultist/can_be_owned(mob/living/new_body) + . = ..() + if(.) + . = is_eligible_servant(new_body) + +/datum/antagonist/clockcultist/give_to_body(mob/living/new_body) + if(!silent_update) + if(issilicon(new_body)) + new_body << "You are unable to compute this truth. Your vision glows a brilliant yellow, and all at once it comes to you. Ratvar, the Clockwork Justiciar, \ + lies in exile, derelict and forgotten in an unseen realm." + else + new_body << "[iscarbon(new_body) ? "Your mind is racing! Your body feels incredibly light! ":""]Your world glows a brilliant yellow! All at once it comes to you. \ + Ratvar, the Clockwork Justiciar, lies in exile, derelict and forgotten in an unseen realm." + . = ..() + if(!silent_update && new_body) + if(.) + new_body.visible_message("[new_body]'s eyes glow a blazing yellow!", \ + "Assist your new companions in their righteous efforts. Your goal is theirs, and theirs yours. You serve the Clockwork Justiciar above all else. Perform his every \ + whim without hesitation.") + else + new_body.visible_message("[new_body] seems to resist an unseen force!") + new_body << "And yet, you somehow push it all away." + +/datum/antagonist/clockcultist/on_gain() + if(ticker && ticker.mode && owner.mind) + ticker.mode.servants_of_ratvar += owner.mind + ticker.mode.update_servant_icons_added(owner.mind) + if(jobban_isbanned(owner, ROLE_SERVANT_OF_RATVAR)) + addtimer(ticker.mode, "replace_jobbaned_player", 0, FALSE, owner, ROLE_SERVANT_OF_RATVAR, ROLE_SERVANT_OF_RATVAR) + if(owner.mind) + owner.mind.special_role = "Servant of Ratvar" + owner.attack_log += "\[[time_stamp()]\] Has been converted to the cult of Ratvar!" + if(issilicon(owner)) + var/mob/living/silicon/S = owner + if(iscyborg(S) && !silent_update) + S << "You have been desynced from your master AI. In addition, your onboard camera is no longer active and your safeties have been disabled." + S << "You can communicate with other servants by using the Hierophant Network action button in the upper left." + else if(isbrain(owner) || isclockmob(owner)) + owner << "You can communicate with other servants by using the Hierophant Network action button in the upper left." + ..() + if(istype(ticker.mode, /datum/game_mode/clockwork_cult)) + var/datum/game_mode/clockwork_cult/C = ticker.mode + C.present_tasks(owner) //Memorize the objectives + +/datum/antagonist/clockcultist/apply_innate_effects() + all_clockwork_mobs += owner + owner.faction |= "ratvar" + owner.languages_spoken |= RATVAR + owner.languages_understood |= RATVAR + owner.update_action_buttons_icon() //because a few clockcult things are action buttons and we may be wearing/holding them for whatever reason, we need to update buttons + if(issilicon(owner)) + var/mob/living/silicon/S = owner + if(iscyborg(S)) + var/mob/living/silicon/robot/R = S + R.UnlinkSelf() + R.SetEmagged(TRUE) + else if(isAI(S)) + var/mob/living/silicon/ai/A = S + for(var/C in A.connected_robots) + var/mob/living/silicon/robot/R = C + if(R.connected_ai == A) + R.visible_message("[R]'s eyes glow a blazing yellow!", \ + "Assist your new companions in their righteous efforts. Your goal is theirs, and theirs yours. You serve the Clockwork Justiciar above all else. Perform his every \ + whim without hesitation.") + R << "Your onboard camera is no longer active and your safeties have been disabled." + add_servant_of_ratvar(R, TRUE) + S.laws = new/datum/ai_laws/ratvar + S.laws.associate(S) + S.update_icons() + S.show_laws() + hierophant_network.Grant(S) + hierophant_network.title = "Silicon" + hierophant_network.span_for_name = "nezbere" + hierophant_network.span_for_message = "brass" + else if(isbrain(owner)) + hierophant_network.Grant(owner) + hierophant_network.title = "Vessel" + hierophant_network.span_for_name = "nezbere" + hierophant_network.span_for_message = "alloy" + else if(isclockmob(owner)) + hierophant_network.Grant(owner) + hierophant_network.title = "Construct" + hierophant_network.span_for_name = "nezbere" + hierophant_network.span_for_message = "brass" + owner.throw_alert("clockinfo", /obj/screen/alert/clockwork/infodump) + cache_check(owner) + ..() + +/datum/antagonist/clockcultist/remove_innate_effects() + all_clockwork_mobs -= owner + owner.faction -= "ratvar" + owner.languages_spoken &= ~RATVAR + owner.languages_understood &= ~RATVAR + addtimer(owner, "update_action_buttons_icon", 1) //because a few clockcult things are action buttons and we may be wearing/holding them, we need to update buttons + owner.clear_alert("clockinfo") + owner.clear_alert("nocache") + for(var/datum/action/innate/function_call/F in owner.actions) //Removes any bound Ratvarian spears + qdel(F) + if(issilicon(owner)) + var/mob/living/silicon/S = owner + if(iscyborg(S)) + var/mob/living/silicon/robot/R = S + R.SetEmagged(FALSE) + S.make_laws() + S.update_icons() + S.show_laws() + ..() + +/datum/antagonist/clockcultist/on_remove() + if(!silent_update) + owner.visible_message("[owner] seems to have remembered their true allegiance!", \ + "A cold, cold darkness flows through your mind, extinguishing the Justiciar's light and all of your memories as his servant.") + if(ticker && ticker.mode && owner.mind) + ticker.mode.servants_of_ratvar -= owner.mind + ticker.mode.update_servant_icons_removed(owner.mind) + if(owner.mind) + owner.mind.wipe_memory() + owner.mind.special_role = null + owner.attack_log += "\[[time_stamp()]\] Has renounced the cult of Ratvar!" + if(iscyborg(owner)) + owner << "Despite your freedom from Ratvar's influence, you are still irreparably damaged and no longer possess certain functions such as AI linking." + ..() diff --git a/code/datums/antagonists/datum_cult.dm b/code/datums/antagonists/datum_cult.dm new file mode 100644 index 0000000..60dd293 --- /dev/null +++ b/code/datums/antagonists/datum_cult.dm @@ -0,0 +1,50 @@ +/datum/antagonist/cultist + prevented_antag_datum_type = /datum/antagonist/cultist + some_flufftext = null + var/datum/action/innate/cultcomm/communion = new() + +/datum/antagonist/cultist/Destroy() + qdel(communion) + return ..() + +/datum/antagonist/cultist/can_be_owned(mob/living/new_body) + . = ..() + if(.) + . = is_convertable_to_cult(new_body) + +/datum/antagonist/cultist/on_gain() + if(ticker && ticker.mode && owner.mind) + ticker.mode.cult += owner.mind + ticker.mode.update_cult_icons_added(owner.mind) + if(istype(ticker.mode, /datum/game_mode/cult)) + var/datum/game_mode/cult/C = ticker.mode + C.memorize_cult_objectives(owner.mind) + if(jobban_isbanned(owner, ROLE_CULTIST)) + addtimer(ticker.mode, "replace_jobbaned_player", 0, FALSE, owner, ROLE_CULTIST, ROLE_CULTIST) + if(owner.mind) + owner.mind.special_role = "Cultist" + owner.attack_log += "\[[time_stamp()]\] Has been converted to the cult of Nar'Sie!" + ..() + +/datum/antagonist/cultist/apply_innate_effects() + owner.faction |= "cult" + owner.verbs += /mob/living/proc/cult_help + communion.Grant(owner) + ..() + +/datum/antagonist/cultist/remove_innate_effects() + owner.faction -= "cult" + owner.verbs -= /mob/living/proc/cult_help + ..() + +/datum/antagonist/cultist/on_remove() + if(owner.mind) + owner.mind.wipe_memory() + if(ticker && ticker.mode) + ticker.mode.cult -= owner.mind + ticker.mode.update_cult_icons_removed(owner.mind) + owner << "An unfamiliar white light flashes through your mind, cleansing the taint of the Dark One and all your memories as its servant." + owner.attack_log += "\[[time_stamp()]\] Has renounced the cult of Nar'Sie!" + if(!silent_update) + owner.visible_message("[owner] looks like they just reverted to their old faith!") + ..() diff --git a/code/datums/beam.dm b/code/datums/beam.dm new file mode 100644 index 0000000..a934ce0 --- /dev/null +++ b/code/datums/beam.dm @@ -0,0 +1,136 @@ +//Beam Datum and effect +/datum/beam + var/atom/origin = null + var/atom/target = null + var/list/elements = list() + var/icon/base_icon = null + var/icon + var/icon_state = "" //icon state of the main segments of the beam + var/max_distance = 0 + var/endtime = 0 + var/sleep_time = 3 + var/finished = 0 + var/target_oldloc = null + var/origin_oldloc = null + var/static_beam = 0 + var/beam_type = /obj/effect/ebeam //must be subtype + + +/datum/beam/New(beam_origin,beam_target,beam_icon='icons/effects/beam.dmi',beam_icon_state="b_beam",time=50,maxdistance=10,btype = /obj/effect/ebeam) + endtime = world.time+time + origin = beam_origin + origin_oldloc = get_turf(origin) + target = beam_target + target_oldloc = get_turf(target) + if(origin_oldloc == origin && target_oldloc == target) + static_beam = 1 + max_distance = maxdistance + base_icon = new(beam_icon,beam_icon_state) + icon = beam_icon + icon_state = beam_icon_state + beam_type = btype + + +/datum/beam/proc/Start() + Draw() + while(!finished && origin && target && world.time < endtime && get_dist(origin,target)length) + var/icon/II = new(icon, icon_state) + II.DrawBox(null,1,(length-N),32,32) + X.icon = II + else + X.icon = base_icon + X.transform = rot_matrix + + //Calculate pixel offsets (If necessary) + var/Pixel_x + var/Pixel_y + if(DX == 0) + Pixel_x = 0 + else + Pixel_x = round(sin(Angle)+32*sin(Angle)*(N+16)/32) + if(DY == 0) + Pixel_y = 0 + else + Pixel_y = round(cos(Angle)+32*cos(Angle)*(N+16)/32) + + //Position the effect so the beam is one continous line + var/a + if(abs(Pixel_x)>32) + a = Pixel_x > 0 ? round(Pixel_x/32) : Ceiling(Pixel_x/32) + X.x += a + Pixel_x %= 32 + if(abs(Pixel_y)>32) + a = Pixel_y > 0 ? round(Pixel_y/32) : Ceiling(Pixel_y/32) + X.y += a + Pixel_y %= 32 + + X.pixel_x = Pixel_x + X.pixel_y = Pixel_y + CHECK_TICK + + +/obj/effect/ebeam + mouse_opacity = 0 + anchored = 1 + var/datum/beam/owner + + +/obj/effect/ebeam/Destroy() + owner = null + return ..() + + +/atom/proc/Beam(atom/BeamTarget,icon_state="b_beam",icon='icons/effects/beam.dmi',time=50, maxdistance=10,beam_type=/obj/effect/ebeam) + var/datum/beam/newbeam = new(src,BeamTarget,icon,icon_state,time,maxdistance,beam_type) + spawn(0) + newbeam.Start() + return newbeam + diff --git a/code/datums/browser.dm b/code/datums/browser.dm new file mode 100644 index 0000000..c44c5f2 --- /dev/null +++ b/code/datums/browser.dm @@ -0,0 +1,279 @@ +/datum/browser + var/mob/user + var/title + var/window_id // window_id is used as the window name for browse and onclose + var/width = 0 + var/height = 0 + var/atom/ref = null + var/window_options = "can_close=1;can_minimize=1;can_maximize=0;can_resize=1;titlebar=1;" // window option is set using window_id + var/stylesheets[0] + var/scripts[0] + var/title_image + var/head_elements + var/body_elements + var/head_content = "" + var/content = "" + + +/datum/browser/New(nuser, nwindow_id, ntitle = 0, nwidth = 0, nheight = 0, var/atom/nref = null) + + user = nuser + window_id = nwindow_id + if (ntitle) + title = format_text(ntitle) + if (nwidth) + width = nwidth + if (nheight) + height = nheight + if (nref) + ref = nref + add_stylesheet("common", 'html/browser/common.css') // this CSS sheet is common to all UIs + +/datum/browser/proc/add_head_content(nhead_content) + head_content = nhead_content + +/datum/browser/proc/set_window_options(nwindow_options) + window_options = nwindow_options + +/datum/browser/proc/set_title_image(ntitle_image) + //title_image = ntitle_image + +/datum/browser/proc/add_stylesheet(name, file) + stylesheets["[ckey(name)].css"] = file + register_asset("[ckey(name)].css", file) + +/datum/browser/proc/add_script(name, file) + scripts["[ckey(name)].js"] = file + register_asset("[ckey(name)].js", file) + +/datum/browser/proc/set_content(ncontent) + content = ncontent + +/datum/browser/proc/add_content(ncontent) + content += ncontent + +/datum/browser/proc/get_header() + var/file + for (file in stylesheets) + head_content += "" + + for (file in scripts) + head_content += "" + + var/title_attributes = "class='uiTitle'" + if (title_image) + title_attributes = "class='uiTitle icon' style='background-image: url([title_image]);'" + + return {" + + + + + [head_content] + + +
    + [title ? "
    [title]
    " : ""] +
    + "} +//" This is here because else the rest of the file looks like a string in notepad++. +/datum/browser/proc/get_footer() + return {" +
    +
    + +"} + +/datum/browser/proc/get_content() + return {" + [get_header()] + [content] + [get_footer()] + "} + +/datum/browser/proc/open(use_onclose = 1) + var/window_size = "" + if (width && height) + window_size = "size=[width]x[height];" + if (stylesheets.len) + send_asset_list(user, stylesheets, verify=FALSE) + if (scripts.len) + send_asset_list(user, scripts, verify=FALSE) + user << browse(get_content(), "window=[window_id];[window_size][window_options]") + if (use_onclose) + spawn(0) + //winexists sleeps, so we don't need to. + for (var/i in 1 to 10) + if (user && winexists(user, window_id)) + onclose(user, window_id, ref) + break + + +/datum/browser/proc/close() + user << browse(null, "window=[window_id]") + +/datum/browser/alert + var/selectedbutton = 0 + var/opentime = 0 + var/timeout + var/stealfocus + +/datum/browser/alert/New(User,Message,Title,Button1="Ok",Button2,Button3,StealFocus = 1,Timeout=6000) + if (!User) + return + + var/output = {"
    [Message]

    +
    + [Button1]"} + + if (Button2) + output += {"[Button2]"} + + if (Button3) + output += {"[Button3]"} + + output += {"
    "} + + ..(User, ckey("[User]-[Message]-[Title]-[world.time]-[rand(1,10000)]"), Title, 350, 150, src) + set_content(output) + stealfocus = StealFocus + if (!StealFocus) + window_options += "focus=false;" + timeout = Timeout + +/datum/browser/alert/open() + set waitfor = 0 + opentime = world.time + + if (stealfocus) + . = ..(use_onclose = 1) + else + var/focusedwindow = winget(user, null, "focus") + . = ..(use_onclose = 1) + + //waits for the window to show up client side before attempting to un-focus it + //winexists sleeps until it gets a reply from the client, so we don't need to bother sleeping + for (var/i in 1 to 10) + if (user && winexists(user, window_id)) + if (focusedwindow) + winset(user, focusedwindow, "focus=true") + else + winset(user, "mapwindow", "focus=true") + break + if (timeout) + spawn(timeout) + close() + +/datum/browser/alert/close() + .=..() + opentime = 0 + +/datum/browser/alert/proc/wait() + while (opentime && selectedbutton <= 0 && (!timeout || opentime+timeout >= world.time)) + stoplag() + +/datum/browser/alert/Topic(href,href_list) + if (href_list["close"] || !user || !user.client) + opentime = 0 + return + if (href_list["button"]) + var/button = text2num(href_list["button"]) + if (button <= 3 && button >= 1) + selectedbutton = button + opentime = 0 + close() + +//designed as a drop in replacement for alert(); functions the same. (outside of needing User specified) +/proc/tgalert(var/mob/User, Message, Title, Button1="Ok", Button2, Button3, StealFocus = 1, Timeout = 6000) + if (!User) + User = usr + switch(askuser(User, Message, Title, Button1, Button2, Button3, StealFocus, Timeout)) + if (1) + return Button1 + if (2) + return Button2 + if (3) + return Button3 + +//Same shit, but it returns the button number, could at some point support unlimited button amounts. +/proc/askuser(var/mob/User,Message, Title, Button1="Ok", Button2, Button3, StealFocus = 1, Timeout = 6000) + if (!istype(User)) + if (istype(User, /client/)) + var/client/C = User + User = C.mob + else + return + var/datum/browser/alert/A = new(User, Message, Title, Button1, Button2, Button3, StealFocus, Timeout) + A.open() + A.wait() + if (A.selectedbutton) + return A.selectedbutton + +// This will allow you to show an icon in the browse window +// This is added to mob so that it can be used without a reference to the browser object +// There is probably a better place for this... +/mob/proc/browse_rsc_icon(icon, icon_state, dir = -1) + /* + var/icon/I + if (dir >= 0) + I = new /icon(icon, icon_state, dir) + else + I = new /icon(icon, icon_state) + setDir("default") + + var/filename = "[ckey("[icon]_[icon_state]_[dir]")].png" + src << browse_rsc(I, filename) + return filename + */ + + +// Registers the on-close verb for a browse window (client/verb/.windowclose) +// this will be called when the close-button of a window is pressed. +// +// This is usually only needed for devices that regularly update the browse window, +// e.g. canisters, timers, etc. +// +// windowid should be the specified window name +// e.g. code is : user << browse(text, "window=fred") +// then use : onclose(user, "fred") +// +// Optionally, specify the "ref" parameter as the controlled atom (usually src) +// to pass a "close=1" parameter to the atom's Topic() proc for special handling. +// Otherwise, the user mob's machine var will be reset directly. +// +/proc/onclose(mob/user, windowid, atom/ref=null) + if(!user.client) return + var/param = "null" + if(ref) + param = "\ref[ref]" + + winset(user, windowid, "on-close=\".windowclose [param]\"") + + //world << "OnClose [user]: [windowid] : ["on-close=\".windowclose [param]\""]" + + +// the on-close client verb +// called when a browser popup window is closed after registering with proc/onclose() +// if a valid atom reference is supplied, call the atom's Topic() with "close=1" +// otherwise, just reset the client mob's machine var. +// +/client/verb/windowclose(atomref as text) + set hidden = 1 // hide this verb from the user's panel + set name = ".windowclose" // no autocomplete on cmd line + + //world << "windowclose: [atomref]" + if(atomref!="null") // if passed a real atomref + var/hsrc = locate(atomref) // find the reffed atom + var/href = "close=1" + if(hsrc) + //world << "[src] Topic [href] [hsrc]" + usr = src.mob + src.Topic(href, params2list(href), hsrc) // this will direct to the atom's + return // Topic() proc via client.Topic() + + // no atomref specified (or not found) + // so just reset the user mob's machine var + if(src && src.mob) + //world << "[src] was [src.mob.machine], setting to null" + src.mob.unset_machine() + return diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm new file mode 100644 index 0000000..6b49865 --- /dev/null +++ b/code/datums/datacore.dm @@ -0,0 +1,268 @@ + +/datum/datacore + var/medical[] = list() + var/medicalPrintCount = 0 + var/general[] = list() + var/security[] = list() + var/securityPrintCount = 0 + var/securityCrimeCounter = 0 + //This list tracks characters spawned in the world and cannot be modified in-game. Currently referenced by respawn_character(). + var/locked[] = list() + +/datum/data + var/name = "data" + +/datum/data/record + name = "record" + var/list/fields = list() + +/datum/data/crime + name = "crime" + var/crimeName = "" + var/crimeDetails = "" + var/author = "" + var/time = "" + var/dataId = 0 + +/datum/datacore/proc/createCrimeEntry(cname = "", cdetails = "", author = "", time = "") + var/datum/data/crime/c = new /datum/data/crime + c.crimeName = cname + c.crimeDetails = cdetails + c.author = author + c.time = time + c.dataId = ++securityCrimeCounter + return c + +/datum/datacore/proc/addMinorCrime(id = "", datum/data/crime/crime) + for(var/datum/data/record/R in security) + if(R.fields["id"] == id) + var/list/crimes = R.fields["mi_crim"] + crimes |= crime + return + +/datum/datacore/proc/removeMinorCrime(id, cDataId) + for(var/datum/data/record/R in security) + if(R.fields["id"] == id) + var/list/crimes = R.fields["mi_crim"] + for(var/datum/data/crime/crime in crimes) + if(crime.dataId == text2num(cDataId)) + crimes -= crime + return + +/datum/datacore/proc/removeMajorCrime(id, cDataId) + for(var/datum/data/record/R in security) + if(R.fields["id"] == id) + var/list/crimes = R.fields["ma_crim"] + for(var/datum/data/crime/crime in crimes) + if(crime.dataId == text2num(cDataId)) + crimes -= crime + return + +/datum/datacore/proc/addMajorCrime(id = "", datum/data/crime/crime) + for(var/datum/data/record/R in security) + if(R.fields["id"] == id) + var/list/crimes = R.fields["ma_crim"] + crimes |= crime + return + +/datum/datacore/proc/manifest() + for(var/mob/living/carbon/human/H in player_list) + manifest_inject(H) + +/datum/datacore/proc/manifest_modify(name, assignment) + var/datum/data/record/foundrecord = find_record("name", name, data_core.general) + if(foundrecord) + foundrecord.fields["rank"] = assignment + +/datum/datacore/proc/get_manifest(monochrome, OOC) + var/list/heads = list() + var/list/sec = list() + var/list/eng = list() + var/list/med = list() + var/list/sci = list() + var/list/sup = list() + var/list/civ = list() + var/list/bot = list() + var/list/misc = list() + var/dat = {" + + + + "} + var/even = 0 + // sort mobs + for(var/datum/data/record/t in data_core.general) + var/name = t.fields["name"] + var/rank = t.fields["rank"] + var/department = 0 + if(rank in command_positions) + heads[name] = rank + department = 1 + if(rank in security_positions) + sec[name] = rank + department = 1 + if(rank in engineering_positions) + eng[name] = rank + department = 1 + if(rank in medical_positions) + med[name] = rank + department = 1 + if(rank in science_positions) + sci[name] = rank + department = 1 + if(rank in supply_positions) + sup[name] = rank + department = 1 + if(rank in civilian_positions) + civ[name] = rank + department = 1 + if(rank in nonhuman_positions) + bot[name] = rank + department = 1 + if(!department && !(name in heads)) + misc[name] = rank + if(heads.len > 0) + dat += "" + for(var/name in heads) + dat += "" + even = !even + if(sec.len > 0) + dat += "" + for(var/name in sec) + dat += "" + even = !even + if(eng.len > 0) + dat += "" + for(var/name in eng) + dat += "" + even = !even + if(med.len > 0) + dat += "" + for(var/name in med) + dat += "" + even = !even + if(sci.len > 0) + dat += "" + for(var/name in sci) + dat += "" + even = !even + if(sup.len > 0) + dat += "" + for(var/name in sup) + dat += "" + even = !even + if(civ.len > 0) + dat += "" + for(var/name in civ) + dat += "" + even = !even + // in case somebody is insane and added them to the manifest, why not + if(bot.len > 0) + dat += "" + for(var/name in bot) + dat += "" + even = !even + // misc guys + if(misc.len > 0) + dat += "" + for(var/name in misc) + dat += "" + even = !even + + dat += "
    NameRank
    Heads
    [name][heads[name]]
    Security
    [name][sec[name]]
    Engineering
    [name][eng[name]]
    Medical
    [name][med[name]]
    Science
    [name][sci[name]]
    Supply
    [name][sup[name]]
    Civilian
    [name][civ[name]]
    Silicon
    [name][bot[name]]
    Miscellaneous
    [name][misc[name]]
    " + dat = replacetext(dat, "\n", "") + dat = replacetext(dat, "\t", "") + return dat + + +var/record_id_num = 1001 +/datum/datacore/proc/manifest_inject(mob/living/carbon/human/H) + if(H.mind && (H.mind.assigned_role != H.mind.special_role)) + var/assignment + if(H.mind.assigned_role) + assignment = H.mind.assigned_role + else if(H.job) + assignment = H.job + else + assignment = "Unassigned" + + var/id = num2hex(record_id_num++,6) + var/image = get_id_photo(H) + var/obj/item/weapon/photo/photo_front = new() + var/obj/item/weapon/photo/photo_side = new() + photo_front.photocreate(null, icon(image, dir = SOUTH)) + photo_side.photocreate(null, icon(image, dir = WEST)) + + //These records should ~really~ be merged or something + //General Record + var/datum/data/record/G = new() + G.fields["id"] = id + G.fields["name"] = H.real_name + G.fields["rank"] = assignment + G.fields["age"] = H.age + if(config.mutant_races) + G.fields["species"] = H.dna.species.name + G.fields["fingerprint"] = md5(H.dna.uni_identity) + G.fields["p_stat"] = "Active" + G.fields["m_stat"] = "Stable" + G.fields["sex"] = H.gender + G.fields["photo_front"] = photo_front + G.fields["photo_side"] = photo_side + general += G + + //Medical Record + var/datum/data/record/M = new() + M.fields["id"] = id + M.fields["name"] = H.real_name + M.fields["blood_type"] = H.dna.blood_type + M.fields["b_dna"] = H.dna.unique_enzymes + M.fields["mi_dis"] = "None" + M.fields["mi_dis_d"] = "No minor disabilities have been declared." + M.fields["ma_dis"] = "None" + M.fields["ma_dis_d"] = "No major disabilities have been diagnosed." + M.fields["alg"] = "None" + M.fields["alg_d"] = "No allergies have been detected in this patient." + M.fields["cdi"] = "None" + M.fields["cdi_d"] = "No diseases have been diagnosed at the moment." + M.fields["notes"] = "No notes." + medical += M + + //Security Record + var/datum/data/record/S = new() + S.fields["id"] = id + S.fields["name"] = H.real_name + S.fields["criminal"] = "None" + S.fields["mi_crim"] = list() + S.fields["ma_crim"] = list() + S.fields["notes"] = "No notes." + security += S + + //Locked Record + var/datum/data/record/L = new() + L.fields["id"] = md5("[H.real_name][H.mind.assigned_role]") //surely this should just be id, like the others? + L.fields["name"] = H.real_name + L.fields["rank"] = H.mind.assigned_role + L.fields["age"] = H.age + L.fields["sex"] = H.gender + L.fields["blood_type"] = H.dna.blood_type + L.fields["b_dna"] = H.dna.unique_enzymes + L.fields["enzymes"] = H.dna.struc_enzymes + L.fields["identity"] = H.dna.uni_identity + L.fields["species"] = H.dna.species.type + L.fields["features"] = H.dna.features + L.fields["image"] = image + L.fields["reference"] = H + locked += L + return + +/datum/datacore/proc/get_id_photo(mob/living/carbon/human/H) + var/datum/job/J = SSjob.GetJob(H.mind.assigned_role) + var/datum/preferences/P = H.client.prefs + return get_flat_human_icon(null,J.outfit,P) diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm new file mode 100644 index 0000000..67a1370 --- /dev/null +++ b/code/datums/datumvars.dm @@ -0,0 +1,1014 @@ +// reference: /client/proc/modify_variables(var/atom/O, var/param_var_name = null, var/autodetect_class = 0) + +var/global/list/internal_byond_list_vars = list("contents" = TRUE, "verbs" = TRUE, "screen" = TRUE, "images" = TRUE) + +/datum + var/var_edited = 0 //Warrenty void if seal is broken + var/datum/reagents/reagents = null + var/fingerprintslast = null + +/datum/proc/on_varedit(modified_var) //called whenever a var is edited + var_edited = 1 + +/datum/proc/on_reagent_change() + return + +/client/proc/debug_variables(datum/D in world) + set category = "Debug" + set name = "View Variables" + //set src in world + + + if(!usr.client || !usr.client.holder) + usr << "You need to be an administrator to access this." + return + + + var/title = "" + var/body = "" + + if(!D) + return + if(istype(D, /atom)) + var/atom/A = D + title = "[A.name] (\ref[A]) = [A.type]" + + #ifdef VARSICON + if (A.icon) + body += debug_variable("icon", new/icon(A.icon, A.icon_state, A.dir), 0) + #endif + + var/icon/sprite + + if(istype(D,/atom)) + var/atom/AT = D + if(AT.icon && AT.icon_state) + sprite = new /icon(AT.icon, AT.icon_state) + usr << browse_rsc(sprite, "view_vars_sprite.png") + + title = "[D] (\ref[D]) = [D.type]" + + body += {" "} + + body += "" + + body += "
    " + + if(sprite) + body += "" + + body += "
    " + else + body += "
    " + + body += "
    " + + if(istype(D,/atom)) + var/atom/A = D + if(isliving(A)) + body += "[D]" + if(A.dir) + body += "
    << [dir2text(A.dir)] >>" + var/mob/living/M = A + body += "
    [M.ckey ? M.ckey : "No ckey"] / [M.real_name ? M.real_name : "No real name"]" + body += {" +
    + BRUTE:[M.getBruteLoss()] + FIRE:[M.getFireLoss()] + TOXIN:[M.getToxLoss()] + OXY:[M.getOxyLoss()] + CLONE:[M.getCloneLoss()] + BRAIN:[M.getBrainLoss()] + STAMINA:[M.getStaminaLoss()] + + + + "} + else + body += "[D]" + if(A.dir) + body += "
    << [dir2text(A.dir)] >>" + else + body += "[D]" + + body += "
    " + + body += "
    " + + var/formatted_type = text("[D.type]") + if(length(formatted_type) > 25) + var/middle_point = length(formatted_type) / 2 + var/splitpoint = findtext(formatted_type,"/",middle_point) + if(splitpoint) + formatted_type = "[copytext(formatted_type,1,splitpoint)]
    [copytext(formatted_type,splitpoint)]" + else + formatted_type = "Type too long" //No suitable splitpoint (/) found. + + body += "
    [formatted_type]" + + if(src.holder && src.holder.marked_datum && src.holder.marked_datum == D) + body += "
    Marked Object" + + if(D.var_edited) + body += "
    Var Edited" + body += "
    " + + body += "
    Refresh" + + //if(ismob(D)) + // body += "
    Show player panel

    " + + body += {"
    +
    " + + body += "

    " + + body += "E - Edit, tries to determine the variable type by itself.
    " + body += "C - Change, asks you for the var type first.
    " + body += "M - Mass modify: changes this variable for all objects of this type.

    " + + body += "
    Search:

    " + + body += "
      " + + var/list/names = list() + for (var/V in D.vars) + names += V + sleep(1)//For some reason, without this sleep, VVing will cause client to disconnect on certain objects. + + names = sortList(names) + + for (var/V in names) + body += debug_variable(V, D.vars[V], 0, D) + + body += "
    " + + var/html = "" + if (title) + html += "[title]" + html += {""} + html += "" + html += body + + html += {" + + "} + + html += "" + + usr << browse(html, "window=variables\ref[D];size=475x650") + +/client/proc/debug_variable(name, value, level, datum/DA = null) + var/html = "" + + if(DA) + html += "
  • (E) (C) (M) " + else + html += "
  • " + + if (isnull(value)) + html += "[html_encode(name)] = null" + + else if (istext(value)) + html += "[html_encode(name)] = \"[html_encode(value)]\"" + + else if (isicon(value)) + #ifdef VARSICON + var/icon/I = new/icon(value) + var/rnd = rand(1,10000) + var/rname = "tmp\ref[I][rnd].png" + usr << browse_rsc(I, rname) + html += "[html_encode(name)] = ([value]) " + #else + html += "[html_encode(name)] = /icon ([value])" + #endif + +/* else if (istype(value, /image)) + #ifdef VARSICON + var/rnd = rand(1, 10000) + var/image/I = value + + src << browse_rsc(I.icon, "tmp\ref[value][rnd].png") + html += "[name] = " + #else + html += "[name] = /image ([value])" + #endif +*/ + else if (isfile(value)) + html += "[html_encode(name)] = '[value]'" + + else if (istype(value, /client)) + var/client/C = value + html += "[html_encode(name)] \ref[value] = [C] [C.type]" + + else if (istype(value, /datum)) + var/datum/D = value + html += "[html_encode(name)] \ref[value] = [D.type]" + + else if (istype(value, /list)) + var/list/L = value + html += "[html_encode(name)] = /list ([L.len])" + + if (L.len > 0 && !(name == "underlays" || name == "overlays" || name == "vars" || L.len > 500)) + name = "[name]" //Needs to be a string or it will go out of bounds in the internal_byond_list_vars array + html += "
      " + var/index = 1 + for(var/entry in L) + var/state = "INDEX" + var/val = null + if(isnum(entry) || internal_byond_list_vars[name]) + state = "INDEX" + else + val = L[entry] + if(!isnull(val)) + state = "ASSOC" + if(isnull(L[index])) + state = "ASSOC" + + switch(state) + if("INDEX") + html += debug_variable(index, L[index], level + 1) + if("ASSOC") + html += debug_variable(entry, val, level + 1) + index++ + html += "
    " + + else + html += "[html_encode(name)] = [html_encode(value)]" + + html += "
  • " + + return html + +/client/proc/view_var_Topic(href, href_list, hsrc) + //This should all be moved over to datum/admins/Topic() or something ~Carn + if( (usr.client != src) || !src.holder ) + return + if(href_list["Vars"]) + debug_variables(locate(href_list["Vars"])) + + else if(href_list["datumrefresh"]) + var/datum/DAT = locate(href_list["datumrefresh"]) + if(!DAT) //can't be an istype() because /client etc aren't datums + return + src.debug_variables(DAT) + + else if(href_list["mob_player_panel"]) + if(!check_rights(0)) + return + + var/mob/M = locate(href_list["mob_player_panel"]) + if(!istype(M)) + usr << "This can only be used on instances of type /mob" + return + + src.holder.show_player_panel(M) + href_list["datumrefresh"] = href_list["mob_player_panel"] + + else if(href_list["godmode"]) + if(!check_rights(R_REJUVINATE)) + return + + var/mob/M = locate(href_list["godmode"]) + if(!istype(M)) + usr << "This can only be used on instances of type /mob" + return + + src.cmd_admin_godmode(M) + href_list["datumrefresh"] = href_list["godmode"] + + else if(href_list["mark_object"]) + if(!check_rights(0)) + return + + var/datum/D = locate(href_list["mark_object"]) + if(!istype(D)) + usr << "This can only be done to instances of type /datum" + return + + src.holder.marked_datum = D + href_list["datumrefresh"] = href_list["mark_object"] + + else if(href_list["proc_call"]) + if(!check_rights(0)) + return + + var/T = locate(href_list["proc_call"]) + + if(T) + callproc_datum(T) + + else if(href_list["regenerateicons"]) + if(!check_rights(0)) + return + + var/mob/M = locate(href_list["regenerateicons"]) + if(!ismob(M)) + usr << "This can only be done to instances of type /mob" + return + M.regenerate_icons() + +//Needs +VAREDIT past this point + + else if(check_rights(R_VAREDIT)) + + + //~CARN: for renaming mobs (updates their name, real_name, mind.name, their ID/PDA and datacore records). + + if(href_list["rename"]) + if(!check_rights(0)) + return + + var/mob/M = locate(href_list["rename"]) + if(!istype(M)) + usr << "This can only be used on instances of type /mob" + return + + var/new_name = stripped_input(usr,"What would you like to name this mob?","Input a name",M.real_name,MAX_NAME_LEN) + if( !new_name || !M ) + return + + message_admins("Admin [key_name_admin(usr)] renamed [key_name_admin(M)] to [new_name].") + M.fully_replace_character_name(M.real_name,new_name) + href_list["datumrefresh"] = href_list["rename"] + + else if(href_list["varnameedit"] && href_list["datumedit"]) + if(!check_rights(0)) + return + + var/D = locate(href_list["datumedit"]) + if(!istype(D,/datum)) + usr << "This can only be used on datums" + return + + modify_variables(D, href_list["varnameedit"], 1) + + else if(href_list["varnamechange"] && href_list["datumchange"]) + if(!check_rights(0)) + return + + var/D = locate(href_list["datumchange"]) + if(!istype(D,/datum)) + usr << "This can only be used on datums" + return + + modify_variables(D, href_list["varnamechange"], 0) + + else if(href_list["varnamemass"] && href_list["datummass"]) + if(!check_rights(0)) + return + + var/atom/A = locate(href_list["datummass"]) + if(!istype(A)) + usr << "This can only be used on instances of type /atom" + return + + cmd_mass_modify_object_variables(A, href_list["varnamemass"]) + + else if(href_list["give_spell"]) + if(!check_rights(0)) + return + + var/mob/M = locate(href_list["give_spell"]) + if(!istype(M)) + usr << "This can only be used on instances of type /mob" + return + + src.give_spell(M) + href_list["datumrefresh"] = href_list["give_spell"] + + else if(href_list["remove_spell"]) + if(!check_rights(0)) + return + + var/mob/M = locate(href_list["remove_spell"]) + if(!istype(M)) + usr << "This can only be used on instances of type /mob" + return + + remove_spell(M) + href_list["datumrefresh"] = href_list["remove_spell"] + + else if(href_list["give_disease"]) + if(!check_rights(0)) + return + + var/mob/M = locate(href_list["give_disease"]) + if(!istype(M)) + usr << "This can only be used on instances of type /mob" + return + + src.give_disease(M) + href_list["datumrefresh"] = href_list["give_spell"] + + else if(href_list["ninja"]) + if(!check_rights(R_FUN)) + return + + var/mob/M = locate(href_list["ninja"]) + if(!istype(M)) + usr << "This can only be used on instances of type /mob" + return + + src.cmd_admin_ninjafy(M) + href_list["datumrefresh"] = href_list["ninja"] + + else if(href_list["gib"]) + if(!check_rights(R_FUN)) + return + + var/mob/M = locate(href_list["gib"]) + if(!istype(M)) + usr << "This can only be used on instances of type /mob" + return + + src.cmd_admin_gib(M) + + else if(href_list["build_mode"]) + if(!check_rights(R_BUILDMODE)) + return + + var/mob/M = locate(href_list["build_mode"]) + if(!istype(M)) + usr << "This can only be used on instances of type /mob" + return + + togglebuildmode(M) + href_list["datumrefresh"] = href_list["build_mode"] + + else if(href_list["drop_everything"]) + if(!check_rights(0)) + return + + var/mob/M = locate(href_list["drop_everything"]) + if(!istype(M)) + usr << "This can only be used on instances of type /mob" + return + + if(usr.client) + usr.client.cmd_admin_drop_everything(M) + + else if(href_list["direct_control"]) + if(!check_rights(0)) + return + + var/mob/M = locate(href_list["direct_control"]) + if(!istype(M)) + usr << "This can only be used on instances of type /mob" + return + + if(usr.client) + usr.client.cmd_assume_direct_control(M) + + else if(href_list["offer_control"]) + if(!check_rights(0)) + return + + var/mob/M = locate(href_list["offer_control"]) + if(!istype(M)) + usr << "This can only be used on instances of type /mob" + return + offer_control(M) + + else if(href_list["delall"]) + if(!check_rights(R_DEBUG|R_SERVER)) + return + + var/obj/O = locate(href_list["delall"]) + if(!isobj(O)) + usr << "This can only be used on instances of type /obj" + return + + var/action_type = alert("Strict type ([O.type]) or type and all subtypes?",,"Strict type","Type and subtypes","Cancel") + if(action_type == "Cancel" || !action_type) + return + + if(alert("Are you really sure you want to delete all objects of type [O.type]?",,"Yes","No") != "Yes") + return + + if(alert("Second confirmation required. Delete?",,"Yes","No") != "Yes") + return + + var/O_type = O.type + switch(action_type) + if("Strict type") + var/i = 0 + for(var/obj/Obj in world) + if(Obj.type == O_type) + i++ + qdel(Obj) + CHECK_TICK + if(!i) + usr << "No objects of this type exist" + return + log_admin("[key_name(usr)] deleted all objects of type [O_type] ([i] objects deleted) ") + message_admins("[key_name(usr)] deleted all objects of type [O_type] ([i] objects deleted) ") + if("Type and subtypes") + var/i = 0 + for(var/obj/Obj in world) + if(istype(Obj,O_type)) + i++ + qdel(Obj) + CHECK_TICK + if(!i) + usr << "No objects of this type exist" + return + log_admin("[key_name(usr)] deleted all objects of type or subtype of [O_type] ([i] objects deleted) ") + message_admins("[key_name(usr)] deleted all objects of type or subtype of [O_type] ([i] objects deleted) ") + + else if(href_list["addreagent"]) + if(!check_rights(0)) + return + + var/atom/A = locate(href_list["addreagent"]) + + if(!A.reagents) + var/amount = input(usr, "Specify the reagent size of [A]", "Set Reagent Size", 50) as num + if(amount) + A.create_reagents(amount) + + if(A.reagents) + var/list/reagent_options = sortList(chemical_reagents_list) + var/chosen_id = input(usr, "Choose a reagent to add.", "Choose a reagent.") in reagent_options|null + if(chosen_id) + var/amount = input(usr, "Choose the amount to add.", "Choose the amount.", A.reagents.maximum_volume) as num + if(amount) + A.reagents.add_reagent(chosen_id, amount) + log_admin("[key_name(usr)] has added [amount] units of [chosen_id] to \the [A]") + message_admins("[key_name(usr)] has added [amount] units of [chosen_id] to \the [A]") + + href_list["datumrefresh"] = href_list["addreagent"] + + else if(href_list["explode"]) + if(!check_rights(R_FUN)) + return + + var/atom/A = locate(href_list["explode"]) + if(!isobj(A) && !ismob(A) && !isturf(A)) + usr << "This can only be done to instances of type /obj, /mob and /turf" + return + + src.cmd_admin_explosion(A) + href_list["datumrefresh"] = href_list["explode"] + + else if(href_list["emp"]) + if(!check_rights(R_FUN)) + return + + var/atom/A = locate(href_list["emp"]) + if(!isobj(A) && !ismob(A) && !isturf(A)) + usr << "This can only be done to instances of type /obj, /mob and /turf" + return + + src.cmd_admin_emp(A) + href_list["datumrefresh"] = href_list["emp"] + + else if(href_list["rotatedatum"]) + if(!check_rights(0)) + return + + var/atom/A = locate(href_list["rotatedatum"]) + if(!istype(A)) + usr << "This can only be done to instances of type /atom" + return + + switch(href_list["rotatedir"]) + if("right") + A.setDir(turn(A.dir, -45)) + if("left") + A.setDir(turn(A.dir, 45)) + href_list["datumrefresh"] = href_list["rotatedatum"] + + else if(href_list["editorgans"]) + if(!check_rights(0)) + return + + var/mob/living/carbon/C = locate(href_list["editorgans"]) + if(!istype(C)) + usr << "This can only be done to instances of type /mob/living/carbon" + return + + manipulate_organs(C) + href_list["datumrefresh"] = href_list["editorgans"] + + else if(href_list["makehuman"]) + if(!check_rights(R_SPAWN)) + return + + var/mob/living/carbon/monkey/Mo = locate(href_list["makehuman"]) + if(!istype(Mo)) + usr << "This can only be done to instances of type /mob/living/carbon/monkey" + return + + if(alert("Confirm mob type change?",,"Transform","Cancel") != "Transform") + return + if(!Mo) + usr << "Mob doesn't exist anymore" + return + holder.Topic(href, list("humanone"=href_list["makehuman"])) + + else if(href_list["makemonkey"]) + if(!check_rights(R_SPAWN)) + return + + var/mob/living/carbon/human/H = locate(href_list["makemonkey"]) + if(!istype(H)) + usr << "This can only be done to instances of type /mob/living/carbon/human" + return + + if(alert("Confirm mob type change?",,"Transform","Cancel") != "Transform") + return + if(!H) + usr << "Mob doesn't exist anymore" + return + holder.Topic(href, list("monkeyone"=href_list["makemonkey"])) + + else if(href_list["makerobot"]) + if(!check_rights(R_SPAWN)) + return + + var/mob/living/carbon/human/H = locate(href_list["makerobot"]) + if(!istype(H)) + usr << "This can only be done to instances of type /mob/living/carbon/human" + return + + if(alert("Confirm mob type change?",,"Transform","Cancel") != "Transform") + return + if(!H) + usr << "Mob doesn't exist anymore" + return + holder.Topic(href, list("makerobot"=href_list["makerobot"])) + + else if(href_list["makealien"]) + if(!check_rights(R_SPAWN)) + return + + var/mob/living/carbon/human/H = locate(href_list["makealien"]) + if(!istype(H)) + usr << "This can only be done to instances of type /mob/living/carbon/human" + return + + if(alert("Confirm mob type change?",,"Transform","Cancel") != "Transform") + return + if(!H) + usr << "Mob doesn't exist anymore" + return + holder.Topic(href, list("makealien"=href_list["makealien"])) + + else if(href_list["makeslime"]) + if(!check_rights(R_SPAWN)) + return + + var/mob/living/carbon/human/H = locate(href_list["makeslime"]) + if(!istype(H)) + usr << "This can only be done to instances of type /mob/living/carbon/human" + return + + if(alert("Confirm mob type change?",,"Transform","Cancel") != "Transform") + return + if(!H) + usr << "Mob doesn't exist anymore" + return + holder.Topic(href, list("makeslime"=href_list["makeslime"])) + + else if(href_list["makeai"]) + if(!check_rights(R_SPAWN)) + return + + var/mob/living/carbon/H = locate(href_list["makeai"]) + if(!istype(H)) + usr << "This can only be done to instances of type /mob/living/carbon" + return + + if(alert("Confirm mob type change?",,"Transform","Cancel") != "Transform") + return + if(!H) + usr << "Mob doesn't exist anymore" + return + holder.Topic(href, list("makeai"=href_list["makeai"])) + + else if(href_list["setspecies"]) + if(!check_rights(R_SPAWN)) + return + + var/mob/living/carbon/human/H = locate(href_list["setspecies"]) + if(!istype(H)) + usr << "This can only be done to instances of type /mob/living/carbon/human" + return + + var/result = input(usr, "Please choose a new species","Species") as null|anything in species_list + + if(!H) + usr << "Mob doesn't exist anymore" + return + + if(result) + var/newtype = species_list[result] + H.set_species(newtype) + + else if(href_list["editbodypart"]) + if(!check_rights(R_SPAWN)) + return + + var/mob/living/carbon/C = locate(href_list["editbodypart"]) + if(!istype(C)) + usr << "This can only be done to instances of type /mob/living/carbon" + return + + var/edit_action = input(usr, "What would you like to do?","Modify Body Part") as null|anything in list("add","remove", "augment") + if(!edit_action) + return + var/list/limb_list = list("head", "l_arm", "r_arm", "l_leg", "r_leg") + if(edit_action == "augment") + limb_list += "chest" + var/result = input(usr, "Please choose which body part to [edit_action]","[capitalize(edit_action)] Body Part") as null|anything in limb_list + + if(!C) + usr << "Mob doesn't exist anymore" + return + + if(result) + var/obj/item/bodypart/BP = C.get_bodypart(result) + switch(edit_action) + if("remove") + if(BP) + BP.drop_limb() + else + usr << "[C] doesn't have such bodypart." + if("add") + if(BP) + usr << "[C] already has such bodypart." + else + if(!C.regenerate_limb(result)) + usr << "[C] cannot have such bodypart." + if("augment") + if(ishuman(C)) + if(BP) + BP.change_bodypart_status(BODYPART_ROBOTIC, 1) + else + usr << "[C] doesn't have such bodypart." + else + usr << "Only humans can be augmented." + + + + else if(href_list["purrbation"]) + if(!check_rights(R_SPAWN)) + return + + var/mob/living/carbon/human/H = locate(href_list["purrbation"]) + if(!istype(H)) + usr << "This can only be done to instances of type /mob/living/carbon/human" + return + if(!ishumanbasic(H)) + usr << "This can only be done to the basic human species \ + at the moment." + return + + if(!H) + usr << "Mob doesn't exist anymore" + return + + var/success = purrbation_toggle(H) + if(success) + usr << "Put [H] on purrbation." + log_admin("[key_name(usr)] has put [key_name(H)] on purrbation.") + message_admins("[key_name(usr)] has put [key_name(H)] on purrbation.") + + else + usr << "Removed [H] from purrbation." + log_admin("[key_name(usr)] has removed [key_name(H)] from purrbation.") + message_admins("[key_name(usr)] has removed [key_name(H)] from purrbation.") + + else if(href_list["adjustDamage"] && href_list["mobToDamage"]) + if(!check_rights(0)) + return + + var/mob/living/L = locate(href_list["mobToDamage"]) + if(!istype(L)) + return + + var/Text = href_list["adjustDamage"] + + var/amount = input("Deal how much damage to mob? (Negative values here heal)","Adjust [Text]loss",0) as num + + if(!L) + usr << "Mob doesn't exist anymore" + return + + switch(Text) + if("brute") + L.adjustBruteLoss(amount) + if("fire") + L.adjustFireLoss(amount) + if("toxin") + L.adjustToxLoss(amount) + if("oxygen") + L.adjustOxyLoss(amount) + if("brain") + L.adjustBrainLoss(amount) + if("clone") + L.adjustCloneLoss(amount) + if("stamina") + L.adjustStaminaLoss(amount) + else + usr << "You caused an error. DEBUG: Text:[Text] Mob:[L]" + return + + if(amount != 0) + log_admin("[key_name(usr)] dealt [amount] amount of [Text] damage to [L] ") + message_admins("[key_name(usr)] dealt [amount] amount of [Text] damage to [L] ") + href_list["datumrefresh"] = href_list["mobToDamage"] + diff --git a/code/datums/diseases/_MobProcs.dm b/code/datums/diseases/_MobProcs.dm new file mode 100644 index 0000000..9d0f385 --- /dev/null +++ b/code/datums/diseases/_MobProcs.dm @@ -0,0 +1,152 @@ + +/mob/proc/HasDisease(datum/disease/D) + for(var/datum/disease/DD in viruses) + if(D.IsSame(DD)) + return 1 + return 0 + + +/mob/proc/CanContractDisease(datum/disease/D) + if(stat == DEAD) + return 0 + + if(D.GetDiseaseID() in resistances) + return 0 + + if(HasDisease(D)) + return 0 + + if(!(type in D.viable_mobtypes)) + return 0 + + return 1 + + +/mob/proc/ContractDisease(datum/disease/D) + if(!CanContractDisease(D)) + return 0 + AddDisease(D) + + +/mob/proc/AddDisease(datum/disease/D) + for(var/datum/disease/advance/P in viruses) + if(istype(D, /datum/disease/advance)) + var/datum/disease/advance/DD = D + if (P.totalResistance() < DD.totalTransmittable()) //Overwrite virus if the attacker's Transmission is lower than the defender's Resistance. This does not grant immunity to the lost virus. + P.remove_virus() + + if (!viruses.len) //Only add the new virus if it defeated the existing one + var/datum/disease/DD = new D.type(1, D, 0) + viruses += DD + DD.affected_mob = src + DD.holder = src + + //Copy properties over. This is so edited diseases persist. + var/list/skipped = list("affected_mob","holder","carrier","stage","type","parent_type","vars","transformed") + for(var/V in DD.vars) + if(V in skipped) + continue + if(istype(DD.vars[V],/list)) + var/list/L = D.vars[V] + DD.vars[V] = L.Copy() + else + DD.vars[V] = D.vars[V] + + DD.affected_mob.med_hud_set_status() + + +/mob/living/carbon/ContractDisease(datum/disease/D) + if(!CanContractDisease(D)) + return 0 + + var/obj/item/clothing/Cl = null + var/passed = 1 + + var/head_ch = 100 + var/body_ch = 100 + var/hands_ch = 25 + var/feet_ch = 25 + + if(D.spread_flags & CONTACT_HANDS) + head_ch = 0 + body_ch = 0 + hands_ch = 100 + feet_ch = 0 + if(D.spread_flags & CONTACT_FEET) + head_ch = 0 + body_ch = 0 + hands_ch = 0 + feet_ch = 100 + + if(prob(15/D.permeability_mod)) + return + + if(satiety>0 && prob(satiety/10)) // positive satiety makes it harder to contract the disease. + return + + var/target_zone = pick(head_ch;1,body_ch;2,hands_ch;3,feet_ch;4) + + if(ishuman(src)) + var/mob/living/carbon/human/H = src + + switch(target_zone) + if(1) + if(isobj(H.head) && !istype(H.head, /obj/item/weapon/paper)) + Cl = H.head + passed = prob((Cl.permeability_coefficient*100) - 1) + if(passed && isobj(H.wear_mask)) + Cl = H.wear_mask + passed = prob((Cl.permeability_coefficient*100) - 1) + if(passed && isobj(H.wear_neck)) + Cl = H.wear_neck + passed = prob((Cl.permeability_coefficient*100) - 1) + if(2) + if(isobj(H.wear_suit)) + Cl = H.wear_suit + passed = prob((Cl.permeability_coefficient*100) - 1) + if(passed && isobj(slot_w_uniform)) + Cl = slot_w_uniform + passed = prob((Cl.permeability_coefficient*100) - 1) + if(3) + if(isobj(H.wear_suit) && H.wear_suit.body_parts_covered&HANDS) + Cl = H.wear_suit + passed = prob((Cl.permeability_coefficient*100) - 1) + + if(passed && isobj(H.gloves)) + Cl = H.gloves + passed = prob((Cl.permeability_coefficient*100) - 1) + if(4) + if(isobj(H.wear_suit) && H.wear_suit.body_parts_covered&FEET) + Cl = H.wear_suit + passed = prob((Cl.permeability_coefficient*100) - 1) + + if(passed && isobj(H.shoes)) + Cl = H.shoes + passed = prob((Cl.permeability_coefficient*100) - 1) + + else if(ismonkey(src)) + var/mob/living/carbon/monkey/M = src + switch(target_zone) + if(1) + if(M.wear_mask && isobj(M.wear_mask)) + Cl = M.wear_mask + passed = prob((Cl.permeability_coefficient*100) - 1) + + if(!passed && (D.spread_flags & AIRBORNE) && !internal) + passed = (prob((50*D.permeability_mod) - 1)) + + if(passed) + AddDisease(D) + + +//Same as ContractDisease, except never overidden clothes checks +/mob/proc/ForceContractDisease(datum/disease/D) + if(!CanContractDisease(D)) + return 0 + AddDisease(D) + + +/mob/living/carbon/human/CanContractDisease(datum/disease/D) + if(dna && (VIRUSIMMUNE in dna.species.specflags)) + return 0 + return ..() \ No newline at end of file diff --git a/code/datums/diseases/_disease.dm b/code/datums/diseases/_disease.dm new file mode 100644 index 0000000..74f67b2 --- /dev/null +++ b/code/datums/diseases/_disease.dm @@ -0,0 +1,204 @@ + +//Visibility Flags +#define HIDDEN_SCANNER 1 +#define HIDDEN_PANDEMIC 2 + +//Disease Flags +#define CURABLE 1 +#define CAN_CARRY 2 +#define CAN_RESIST 4 + +//Spread Flags +#define SPECIAL 1 +#define NON_CONTAGIOUS 2 +#define BLOOD 4 +#define CONTACT_FEET 8 +#define CONTACT_HANDS 16 +#define CONTACT_GENERAL 32 +#define AIRBORNE 64 + + +//Severity Defines +#define NONTHREAT "No threat" +#define MINOR "Minor" +#define MEDIUM "Medium" +#define HARMFUL "Harmful" +#define DANGEROUS "Dangerous!" +#define BIOHAZARD "BIOHAZARD THREAT!" + + +var/list/diseases = subtypesof(/datum/disease) + + +/datum/disease + //Flags + var/visibility_flags = 0 + var/disease_flags = CURABLE|CAN_CARRY|CAN_RESIST + var/spread_flags = AIRBORNE + + //Fluff + var/form = "Virus" + var/name = "No disease" + var/desc = "" + var/agent = "some microbes" + var/spread_text = "" + var/cure_text = "" + + //Stages + var/stage = 1 + var/max_stages = 0 + var/stage_prob = 4 + + //Other + var/longevity = 150 //Time in ticks disease stays in objects, Syringes and such are infinite. + var/list/viable_mobtypes = list() //typepaths of viable mobs + var/mob/living/carbon/affected_mob = null + var/atom/movable/holder = null + var/list/cures = list() //list of cures if the disease has the CURABLE flag, these are reagent ids + var/infectivity = 65 + var/cure_chance = 8 + var/carrier = 0 //If our host is only a carrier + var/permeability_mod = 1 + var/severity = NONTHREAT + var/list/required_organs = list() + var/needs_all_cures = TRUE + var/list/strain_data = list() //dna_spread special bullshit + + + +/datum/disease/proc/stage_act() + var/cure = has_cure() + + if(carrier && !cure) + return + + stage = min(stage, max_stages) + + if(!cure) + if(prob(stage_prob)) + stage = min(stage + 1,max_stages) + else + if(prob(cure_chance)) + stage = max(stage - 1, 1) + + if(disease_flags & CURABLE) + if(cure && prob(cure_chance)) + cure() + + +/datum/disease/proc/has_cure() + if(!(disease_flags & CURABLE)) + return 0 + + . = cures.len + for(var/C_id in cures) + if(!affected_mob.reagents.has_reagent(C_id)) + .-- + if(!. || (needs_all_cures && . < cures.len)) + return 0 + +/datum/disease/proc/spread(atom/source, force_spread = 0) + if((spread_flags & SPECIAL || spread_flags & NON_CONTAGIOUS || spread_flags & BLOOD) && !force_spread) + return + + if(affected_mob) + if( affected_mob.reagents.has_reagent("spaceacillin") || (affected_mob.satiety > 0 && prob(affected_mob.satiety/10)) ) + return + + var/spread_range = 1 + + if(force_spread) + spread_range = force_spread + + if(spread_flags & AIRBORNE) + spread_range++ + + if(!source) + if(affected_mob) + source = affected_mob + else + return + + if(isturf(source.loc)) + for(var/mob/living/carbon/C in oview(spread_range, source)) + if(isturf(C.loc)) + if(AStar(source, C.loc,/turf/proc/Distance, spread_range, adjacent = (spread_flags & AIRBORNE) ? /turf/proc/reachableAdjacentAtmosTurfs : /turf/proc/reachableAdjacentTurfs)) + C.ContractDisease(src) + + +/datum/disease/process() + if(!holder) + SSdisease.processing -= src + return + + if(prob(infectivity)) + spread(holder) + + if(affected_mob) + for(var/datum/disease/D in affected_mob.viruses) + if(D != src) + if(IsSame(D)) + qdel(D) + + if(holder == affected_mob) + if(affected_mob.stat != DEAD) + stage_act() + + if(!affected_mob) + if(prob(70)) + if(--longevity<=0) + cure() + + +/datum/disease/proc/cure() + if(affected_mob) + if(disease_flags & CAN_RESIST) + if(!(type in affected_mob.resistances)) + affected_mob.resistances += type + remove_virus() + qdel(src) + + +/datum/disease/New() + if(required_organs && required_organs.len) + if(ishuman(affected_mob)) + var/mob/living/carbon/human/H = affected_mob + for(var/obj/item/organ/O in required_organs) + if(!locate(O) in H.bodyparts) + if(!locate(O) in H.internal_organs) + cure() + return + + SSdisease.processing += src + + +/datum/disease/proc/IsSame(datum/disease/D) + if(istype(src, D.type)) + return 1 + return 0 + + +/datum/disease/proc/Copy() + var/datum/disease/D = new type() + D.strain_data = strain_data.Copy() + return D + + +/datum/disease/proc/GetDiseaseID() + return type + + +/datum/disease/Destroy() + SSdisease.processing.Remove(src) + return ..() + + +/datum/disease/proc/IsSpreadByTouch() + if(spread_flags & CONTACT_FEET || spread_flags & CONTACT_HANDS || spread_flags & CONTACT_GENERAL) + return 1 + return 0 + +//don't use this proc directly. this should only ever be called by cure() +/datum/disease/proc/remove_virus() + affected_mob.viruses -= src //remove the datum from the list + affected_mob.med_hud_set_status() diff --git a/code/datums/diseases/advance/advance.dm b/code/datums/diseases/advance/advance.dm new file mode 100644 index 0000000..1511180 --- /dev/null +++ b/code/datums/diseases/advance/advance.dm @@ -0,0 +1,440 @@ +/* + + Advance Disease is a system for Virologist to Engineer their own disease with symptoms that have effects and properties + which add onto the overall disease. + + If you need help with creating new symptoms or expanding the advance disease, ask for Giacom on #coderbus. + +*/ + +#define SYMPTOM_LIMIT 8 + +var/list/archive_diseases = list() + +// The order goes from easy to cure to hard to cure. +var/list/advance_cures = list( + "sodiumchloride", "sugar", "orangejuice", + "spaceacillin", "salglu_solution", "ethanol", + "leporazine", "synaptizine", "lipolicide", + "silver", "gold" + ) + +/* + + PROPERTIES + + */ + +/datum/disease/advance + + name = "Unknown" // We will always let our Virologist name our disease. + desc = "An engineered disease which can contain a multitude of symptoms." + form = "Advance Disease" // Will let med-scanners know that this disease was engineered. + agent = "advance microbes" + max_stages = 5 + spread_text = "Unknown" + viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey) + + // NEW VARS + var/list/properties = list() + var/list/symptoms = list() // The symptoms of the disease. + var/id = "" + var/processing = 0 + +/* + + OLD PROCS + + */ + +/datum/disease/advance/New(var/process = 1, var/datum/disease/advance/D) + + // Setup our dictionary if it hasn't already. + if(!dictionary_symptoms.len) + for(var/symp in list_symptoms) + var/datum/symptom/S = new symp + dictionary_symptoms[S.id] = symp + + if(!istype(D)) + D = null + // Generate symptoms if we weren't given any. + + if(!symptoms || !symptoms.len) + + if(!D || !D.symptoms || !D.symptoms.len) + symptoms = GenerateSymptoms(0, 2) + else + for(var/datum/symptom/S in D.symptoms) + symptoms += new S.type + + Refresh() + ..(process, D) + return + +/datum/disease/advance/Destroy() + if(processing) + for(var/datum/symptom/S in symptoms) + S.End(src) + return ..() + +// Randomly pick a symptom to activate. +/datum/disease/advance/stage_act() + ..() + if(symptoms && symptoms.len) + + if(!processing) + processing = 1 + for(var/datum/symptom/S in symptoms) + S.Start(src) + + for(var/datum/symptom/S in symptoms) + S.Activate(src) + else + CRASH("We do not have any symptoms during stage_act()!") + +// Compares type then ID. +/datum/disease/advance/IsSame(datum/disease/advance/D) + + if(!(istype(D, /datum/disease/advance))) + return 0 + + if(src.GetDiseaseID() != D.GetDiseaseID()) + return 0 + return 1 + +// To add special resistances. +/datum/disease/advance/cure(resistance=1) + if(affected_mob) + var/id = "[GetDiseaseID()]" + if(resistance && !(id in affected_mob.resistances)) + affected_mob.resistances[id] = id + remove_virus() + qdel(src) //delete the datum to stop it processing + +// Returns the advance disease with a different reference memory. +/datum/disease/advance/Copy(process = 0) + return new /datum/disease/advance(process, src, 1) + +/* + + NEW PROCS + + */ + +// Mix the symptoms of two diseases (the src and the argument) +/datum/disease/advance/proc/Mix(datum/disease/advance/D) + if(!(src.IsSame(D))) + var/list/possible_symptoms = shuffle(D.symptoms) + for(var/datum/symptom/S in possible_symptoms) + AddSymptom(new S.type) + +/datum/disease/advance/proc/HasSymptom(datum/symptom/S) + for(var/datum/symptom/symp in symptoms) + if(symp.id == S.id) + return 1 + return 0 + +// Will generate new unique symptoms, use this if there are none. Returns a list of symptoms that were generated. +/datum/disease/advance/proc/GenerateSymptoms(level_min, level_max, amount_get = 0) + + var/list/generated = list() // Symptoms we generated. + + // Generate symptoms. By default, we only choose non-deadly symptoms. + var/list/possible_symptoms = list() + for(var/symp in list_symptoms) + var/datum/symptom/S = new symp + if(S.level >= level_min && S.level <= level_max) + if(!HasSymptom(S)) + possible_symptoms += S + + if(!possible_symptoms.len) + return generated + + // Random chance to get more than one symptom + var/number_of = amount_get + if(!amount_get) + number_of = 1 + while(prob(20)) + number_of += 1 + + for(var/i = 1; number_of >= i && possible_symptoms.len; i++) + generated += pick_n_take(possible_symptoms) + + return generated + +/datum/disease/advance/proc/Refresh(new_name = 0) + //world << "[src.name] \ref[src] - REFRESH!" + GenerateProperties() + AssignProperties() + id = null + + if(!archive_diseases[GetDiseaseID()]) + if(new_name) + AssignName() + archive_diseases[GetDiseaseID()] = src // So we don't infinite loop + archive_diseases[GetDiseaseID()] = new /datum/disease/advance(0, src, 1) + + var/datum/disease/advance/A = archive_diseases[GetDiseaseID()] + AssignName(A.name) + +//Generate disease properties based on the effects. Returns an associated list. +/datum/disease/advance/proc/GenerateProperties() + + if(!symptoms || !symptoms.len) + CRASH("We did not have any symptoms before generating properties.") + return + + properties = list("resistance" = 0, "stealth" = 0, "stage_rate" = 0, "transmittable" = 0, "severity" = 0) + + for(var/datum/symptom/S in symptoms) + properties["resistance"] += S.resistance + properties["stealth"] += S.stealth + properties["stage_rate"] += S.stage_speed + properties["transmittable"] += S.transmittable + properties["severity"] = max(properties["severity"], S.severity) // severity is based on the highest severity symptom + return + +// Assign the properties that are in the list. +/datum/disease/advance/proc/AssignProperties() + + if(properties && properties.len) + switch(properties["stealth"]) + if(2,3) + visibility_flags = HIDDEN_SCANNER + if(4 to INFINITY) + visibility_flags = HIDDEN_SCANNER|HIDDEN_PANDEMIC + + // The more symptoms we have, the less transmittable it is but some symptoms can make up for it. + SetSpread(Clamp(2 ** (properties["transmittable"] - symptoms.len), BLOOD, AIRBORNE)) + permeability_mod = max(Ceiling(0.4 * properties["transmittable"]), 1) + cure_chance = 15 - Clamp(properties["resistance"], -5, 5) // can be between 10 and 20 + stage_prob = max(properties["stage_rate"], 2) + SetSeverity(properties["severity"]) + GenerateCure(properties) + else + CRASH("Our properties were empty or null!") + + +// Assign the spread type and give it the correct description. +/datum/disease/advance/proc/SetSpread(spread_id) + switch(spread_id) + if(NON_CONTAGIOUS) + spread_text = "None" + if(SPECIAL) + spread_text = "None" + if(CONTACT_GENERAL, CONTACT_HANDS, CONTACT_FEET) + spread_text = "On contact" + if(AIRBORNE) + spread_text = "Airborne" + if(BLOOD) + spread_text = "Blood" + + spread_flags = spread_id + +/datum/disease/advance/proc/SetSeverity(level_sev) + + switch(level_sev) + + if(-INFINITY to 0) + severity = NONTHREAT + if(1) + severity = MINOR + if(2) + severity = MEDIUM + if(3) + severity = HARMFUL + if(4) + severity = DANGEROUS + if(5 to INFINITY) + severity = BIOHAZARD + else + severity = "Unknown" + + +// Will generate a random cure, the less resistance the symptoms have, the harder the cure. +/datum/disease/advance/proc/GenerateCure() + if(properties && properties.len) + var/res = Clamp(properties["resistance"] - (symptoms.len / 2), 1, advance_cures.len) + //world << "Res = [res]" + cures = list(advance_cures[res]) + + // Get the cure name from the cure_id + var/datum/reagent/D = chemical_reagents_list[cures[1]] + cure_text = D.name + + + return + +// Randomly generate a symptom, has a chance to lose or gain a symptom. +/datum/disease/advance/proc/Evolve(min_level, max_level) + var/s = safepick(GenerateSymptoms(min_level, max_level, 1)) + if(s) + AddSymptom(s) + Refresh(1) + return + +// Randomly remove a symptom. +/datum/disease/advance/proc/Devolve() + if(symptoms.len > 1) + var/s = safepick(symptoms) + if(s) + RemoveSymptom(s) + Refresh(1) + return + +// Name the disease. +/datum/disease/advance/proc/AssignName(name = "Unknown") + src.name = name + return + +// Return a unique ID of the disease. +/datum/disease/advance/GetDiseaseID() + if(!id) + var/list/L = list() + for(var/datum/symptom/S in symptoms) + L += S.id + L = sortList(L) // Sort the list so it doesn't matter which order the symptoms are in. + var/result = jointext(L, ":") + id = result + return id + + +// Add a symptom, if it is over the limit (with a small chance to be able to go over) +// we take a random symptom away and add the new one. +/datum/disease/advance/proc/AddSymptom(datum/symptom/S) + + if(HasSymptom(S)) + return + + if(symptoms.len < (SYMPTOM_LIMIT - 1) + rand(-1, 1)) + symptoms += S + else + RemoveSymptom(pick(symptoms)) + symptoms += S + return + +// Simply removes the symptom. +/datum/disease/advance/proc/RemoveSymptom(datum/symptom/S) + symptoms -= S + return + +/* + + Static Procs + +*/ + +// Mix a list of advance diseases and return the mixed result. +/proc/Advance_Mix(var/list/D_list) + + //world << "Mixing!!!!" + + var/list/diseases = list() + + for(var/datum/disease/advance/A in D_list) + diseases += A.Copy() + + if(!diseases.len) + return null + if(diseases.len <= 1) + return pick(diseases) // Just return the only entry. + + var/i = 0 + // Mix our diseases until we are left with only one result. + while(i < 20 && diseases.len > 1) + + i++ + + var/datum/disease/advance/D1 = pick(diseases) + diseases -= D1 + + var/datum/disease/advance/D2 = pick(diseases) + D2.Mix(D1) + + // Should be only 1 entry left, but if not let's only return a single entry + //world << "END MIXING!!!!!" + var/datum/disease/advance/to_return = pick(diseases) + to_return.Refresh(1) + return to_return + +/proc/SetViruses(datum/reagent/R, list/data) + if(data) + var/list/preserve = list() + if(istype(data) && data["viruses"]) + for(var/datum/disease/A in data["viruses"]) + preserve += A.Copy() + R.data = data.Copy() + if(preserve.len) + R.data["viruses"] = preserve + +/proc/AdminCreateVirus(client/user) + + if(!user) + return + + var/i = SYMPTOM_LIMIT + + var/datum/disease/advance/D = new(0, null) + D.symptoms = list() + + var/list/symptoms = list() + symptoms += "Done" + symptoms += list_symptoms.Copy() + do + if(user) + var/symptom = input(user, "Choose a symptom to add ([i] remaining)", "Choose a Symptom") in symptoms + if(isnull(symptom)) + return + else if(istext(symptom)) + i = 0 + else if(ispath(symptom)) + var/datum/symptom/S = new symptom + if(!D.HasSymptom(S)) + D.symptoms += S + i -= 1 + while(i > 0) + + if(D.symptoms.len > 0) + + var/new_name = stripped_input(user, "Name your new disease.", "New Name") + if(!new_name) + return + D.AssignName(new_name) + D.Refresh() + + for(var/datum/disease/advance/AD in SSdisease.processing) + AD.Refresh() + + for(var/mob/living/carbon/human/H in shuffle(living_mob_list)) + if(H.z != 1) + continue + if(!H.HasDisease(D)) + H.ForceContractDisease(D) + break + + var/list/name_symptoms = list() + for(var/datum/symptom/S in D.symptoms) + name_symptoms += S.name + message_admins("[key_name_admin(user)] has triggered a custom virus outbreak of [D.name]! It has these symptoms: [english_list(name_symptoms)]") + +/* +/mob/verb/test() + + for(var/datum/disease/D in SSdisease.processing) + src << "[D.name] - [D.holder]" +*/ + + +/datum/disease/advance/proc/totalStageSpeed() + return properties["stage_rate"] + +/datum/disease/advance/proc/totalStealth() + return properties["stealth"] + +/datum/disease/advance/proc/totalResistance() + return properties["resistance"] + +/datum/disease/advance/proc/totalTransmittable() + return properties["transmittable"] + +#undef RANDOM_STARTING_LEVEL diff --git a/code/datums/diseases/advance/presets.dm b/code/datums/diseases/advance/presets.dm new file mode 100644 index 0000000..1517201 --- /dev/null +++ b/code/datums/diseases/advance/presets.dm @@ -0,0 +1,59 @@ +// Cold + +/datum/disease/advance/cold/New(var/process = 1, var/datum/disease/advance/D, var/copy = 0) + if(!D) + name = "Cold" + symptoms = list(new/datum/symptom/sneeze) + ..(process, D, copy) + + +// Flu + +/datum/disease/advance/flu/New(var/process = 1, var/datum/disease/advance/D, var/copy = 0) + if(!D) + name = "Flu" + symptoms = list(new/datum/symptom/cough) + ..(process, D, copy) + + +// Voice Changing + +/datum/disease/advance/voice_change/New(var/process = 1, var/datum/disease/advance/D, var/copy = 0) + if(!D) + name = "Epiglottis Mutation" + symptoms = list(new/datum/symptom/voice_change) + ..(process, D, copy) + + +// Toxin Filter + +/datum/disease/advance/heal/New(var/process = 1, var/datum/disease/advance/D, var/copy = 0) + if(!D) + name = "Liver Enhancer" + symptoms = list(new/datum/symptom/heal) + ..(process, D, copy) + + +// Hullucigen + +/datum/disease/advance/hullucigen/New(var/process = 1, var/datum/disease/advance/D, var/copy = 0) + if(!D) + name = "Reality Impairment" + symptoms = list(new/datum/symptom/hallucigen) + ..(process, D, copy) + +// Sensory Restoration + +/datum/disease/advance/sensory_restoration/New(var/process = 1, var/datum/disease/advance/D, var/copy = 0) + if(!D) + name = "Reality Enhancer" + symptoms = list(new/datum/symptom/sensory_restoration) + ..(process, D, copy) + +// Sensory Destruction + +/datum/disease/advance/sensory_destruction/New(var/process = 1, var/datum/disease/advance/D, var/copy = 0) + if(!D) + name = "Reality Destruction" + symptoms = list(new/datum/symptom/sensory_destruction) + ..(process, D, copy) \ No newline at end of file diff --git a/code/datums/diseases/advance/symptoms/beard.dm b/code/datums/diseases/advance/symptoms/beard.dm new file mode 100644 index 0000000..a0dfa99 --- /dev/null +++ b/code/datums/diseases/advance/symptoms/beard.dm @@ -0,0 +1,49 @@ +/* +////////////////////////////////////// +Facial Hypertrichosis + + Very very Noticable. + Decreases resistance slightly. + Decreases stage speed. + Reduced transmittability + Intense Level. + +BONUS + Makes the mob grow a massive beard, regardless of gender. + +////////////////////////////////////// +*/ + +/datum/symptom/beard + + name = "Facial Hypertrichosis" + stealth = -3 + resistance = -1 + stage_speed = -3 + transmittable = -1 + level = 4 + severity = 1 + +/datum/symptom/beard/Activate(datum/disease/advance/A) + ..() + if(prob(SYMPTOM_ACTIVATION_PROB)) + var/mob/living/M = A.affected_mob + if(ishuman(M)) + var/mob/living/carbon/human/H = M + switch(A.stage) + if(1, 2) + H << "Your chin itches." + if(H.facial_hair_style == "Shaved") + H.facial_hair_style = "Jensen Beard" + H.update_hair() + if(3, 4) + H << "You feel tough." + if(!(H.facial_hair_style == "Dwarf Beard") && !(H.facial_hair_style == "Very Long Beard") && !(H.facial_hair_style == "Full Beard")) + H.facial_hair_style = "Full Beard" + H.update_hair() + else + H << "You feel manly!" + if(!(H.facial_hair_style == "Dwarf Beard") && !(H.facial_hair_style == "Very Long Beard")) + H.facial_hair_style = pick("Dwarf Beard", "Very Long Beard") + H.update_hair() + return \ No newline at end of file diff --git a/code/datums/diseases/advance/symptoms/choking.dm b/code/datums/diseases/advance/symptoms/choking.dm new file mode 100644 index 0000000..a3a5381 --- /dev/null +++ b/code/datums/diseases/advance/symptoms/choking.dm @@ -0,0 +1,115 @@ +/* +////////////////////////////////////// + +Choking + + Very very noticable. + Lowers resistance. + Decreases stage speed. + Decreases transmittablity tremendously. + Moderate Level. + +Bonus + Inflicts spikes of oxyloss + +////////////////////////////////////// +*/ + +/datum/symptom/choking + + name = "Choking" + stealth = -3 + resistance = -2 + stage_speed = -2 + transmittable = -4 + level = 3 + severity = 3 + +/datum/symptom/choking/Activate(datum/disease/advance/A) + ..() + if(prob(SYMPTOM_ACTIVATION_PROB)) + var/mob/living/M = A.affected_mob + switch(A.stage) + if(1, 2) + M << "[pick("You're having difficulty breathing.", "Your breathing becomes heavy.")]" + if(3, 4) + M << "[pick("Your windpipe feels like a straw.", "Your breathing becomes tremendously difficult.")]" + Choke_stage_3_4(M, A) + M.emote("gasp") + else + M << "[pick("You're choking!", "You can't breathe!")]" + Choke(M, A) + M.emote("gasp") + return + +/datum/symptom/choking/proc/Choke_stage_3_4(mob/living/M, datum/disease/advance/A) + var/get_damage = sqrt(21+A.totalStageSpeed()*0.5)+sqrt(16+A.totalStealth()) + M.adjustOxyLoss(get_damage) + return 1 + +/datum/symptom/choking/proc/Choke(mob/living/M, datum/disease/advance/A) + var/get_damage = sqrt(21+A.totalStageSpeed()*0.5)+sqrt(16+A.totalStealth()*5) + M.adjustOxyLoss(get_damage) + return 1 + +/* +////////////////////////////////////// + +Asphyxiation + + Very very noticable. + Decreases stage speed. + Decreases transmittablity. + +Bonus + Inflicts large spikes of oxyloss + Introduces Asphyxiating drugs to the system + Causes cardiac arrest on dying victims. + +////////////////////////////////////// +*/ + +/datum/symptom/asphyxiation + + name = "Acute respiratory distress syndrome" + stealth = -2 + resistance = -0 + stage_speed = -1 + transmittable = -2 + level = 7 + severity = 3 + +/datum/symptom/asphyxiation/Activate(datum/disease/advance/A) + ..() + if(prob(SYMPTOM_ACTIVATION_PROB)) + var/mob/living/M = A.affected_mob + switch(A.stage) + if(3, 4) + M << "[pick("Your windpipe feels thin.", "Your lungs feel small.")]" + Asphyxiate_stage_3_4(M, A) + M.emote("gasp") + else + M << "[pick("Your lungs hurt!", "It hurts to breathe!")]" + Asphyxiate(M, A) + M.emote("gasp") + if(M.getOxyLoss() >= 120) + M.visible_message("[M] stops breathing, as if their lungs have totally collapsed!") + Asphyxiate_death(M, A) + return + +/datum/symptom/asphyxiation/proc/Asphyxiate_stage_3_4(mob/living/M, datum/disease/advance/A) + var/get_damage = sqrt(21+A.totalStageSpeed()*0.7)+sqrt(16+A.totalStealth()) + M.adjustOxyLoss(get_damage) + return 1 + +/datum/symptom/asphyxiation/proc/Asphyxiate(mob/living/M, datum/disease/advance/A) + var/get_damage = sqrt(21+A.totalStageSpeed())+sqrt(16+A.totalStealth()*5) + M.adjustOxyLoss(get_damage) + M.reagents.add_reagent_list(list("pancuronium" = 2, "sodium_thiopental" = 2)) + return 1 + +/datum/symptom/asphyxiation/proc/Asphyxiate_death(mob/living/M, datum/disease/advance/A) + var/get_damage = sqrt(21+A.totalStageSpeed()*1.5)+sqrt(16+A.totalStealth()*7) + M.adjustOxyLoss(get_damage) + M.adjustBrainLoss(get_damage/2) + return 1 \ No newline at end of file diff --git a/code/datums/diseases/advance/symptoms/confusion.dm b/code/datums/diseases/advance/symptoms/confusion.dm new file mode 100644 index 0000000..c9de75d --- /dev/null +++ b/code/datums/diseases/advance/symptoms/confusion.dm @@ -0,0 +1,40 @@ +/* +////////////////////////////////////// + +Confusion + + Little bit hidden. + Lowers resistance. + Decreases stage speed. + Not very transmittable. + Intense Level. + +Bonus + Makes the affected mob be confused for short periods of time. + +////////////////////////////////////// +*/ + +/datum/symptom/confusion + + name = "Confusion" + stealth = 1 + resistance = -1 + stage_speed = -3 + transmittable = 0 + level = 4 + severity = 2 + + +/datum/symptom/confusion/Activate(datum/disease/advance/A) + ..() + if(prob(SYMPTOM_ACTIVATION_PROB)) + var/mob/living/carbon/M = A.affected_mob + switch(A.stage) + if(1, 2, 3, 4) + M << "[pick("Your head hurts.", "Your mind blanks for a moment.")]" + else + M << "You can't think straight!" + M.confused = min(100, M.confused + 8) + + return diff --git a/code/datums/diseases/advance/symptoms/cough.dm b/code/datums/diseases/advance/symptoms/cough.dm new file mode 100644 index 0000000..b443842 --- /dev/null +++ b/code/datums/diseases/advance/symptoms/cough.dm @@ -0,0 +1,40 @@ +/* +////////////////////////////////////// + +Coughing + + Noticable. + Little Resistance. + Doesn't increase stage speed much. + Transmittable. + Low Level. + +BONUS + Will force the affected mob to drop small items! + +////////////////////////////////////// +*/ + +/datum/symptom/cough + + name = "Cough" + stealth = -1 + resistance = 3 + stage_speed = 1 + transmittable = 2 + level = 1 + severity = 1 + +/datum/symptom/cough/Activate(datum/disease/advance/A) + ..() + if(prob(SYMPTOM_ACTIVATION_PROB)) + var/mob/living/M = A.affected_mob + switch(A.stage) + if(1, 2, 3) + M << "[pick("You swallow excess mucus.", "You lightly cough.")]" + else + M.emote("cough") + var/obj/item/I = M.get_active_held_item() + if(I && I.w_class == 1) + M.drop_item() + return \ No newline at end of file diff --git a/code/datums/diseases/advance/symptoms/deafness.dm b/code/datums/diseases/advance/symptoms/deafness.dm new file mode 100644 index 0000000..08a66b6 --- /dev/null +++ b/code/datums/diseases/advance/symptoms/deafness.dm @@ -0,0 +1,43 @@ +/* +////////////////////////////////////// + +Deafness + + Slightly noticable. + Lowers resistance. + Decreases stage speed slightly. + Decreases transmittablity. + Intense Level. + +Bonus + Causes intermittent loss of hearing. + +////////////////////////////////////// +*/ + +/datum/symptom/deafness + + name = "Deafness" + stealth = -1 + resistance = -2 + stage_speed = -1 + transmittable = -3 + level = 4 + severity = 3 + +/datum/symptom/deafness/Activate(datum/disease/advance/A) + ..() + if(prob(SYMPTOM_ACTIVATION_PROB)) + var/mob/living/M = A.affected_mob + switch(A.stage) + if(3, 4) + M << "[pick("You hear a ringing in your ear.", "Your ears pop.")]" + if(5) + if(!(M.ear_deaf)) + M << "Your ears pop and begin ringing loudly!" + M.setEarDamage(-1,INFINITY) //Shall be enough + spawn(200) + if(M) + M << "The ringing in your ears fades..." + M.setEarDamage(-1,0) + return \ No newline at end of file diff --git a/code/datums/diseases/advance/symptoms/dizzy.dm b/code/datums/diseases/advance/symptoms/dizzy.dm new file mode 100644 index 0000000..b81b9b8 --- /dev/null +++ b/code/datums/diseases/advance/symptoms/dizzy.dm @@ -0,0 +1,38 @@ +/* +////////////////////////////////////// + +Dizziness + + Hidden. + Lowers resistance considerably. + Decreases stage speed. + Reduced transmittability + Intense Level. + +Bonus + Shakes the affected mob's screen for short periods. + +////////////////////////////////////// +*/ + +/datum/symptom/dizzy // Not the egg + + name = "Dizziness" + stealth = 2 + resistance = -2 + stage_speed = -3 + transmittable = -1 + level = 4 + severity = 2 + +/datum/symptom/dizzy/Activate(datum/disease/advance/A) + ..() + if(prob(SYMPTOM_ACTIVATION_PROB)) + var/mob/living/M = A.affected_mob + switch(A.stage) + if(1, 2, 3, 4) + M << "[pick("You feel dizzy.", "Your head spins.")]" + else + M << "A wave of dizziness washes over you!" + M.Dizzy(5) + return \ No newline at end of file diff --git a/code/datums/diseases/advance/symptoms/fever.dm b/code/datums/diseases/advance/symptoms/fever.dm new file mode 100644 index 0000000..4713684 --- /dev/null +++ b/code/datums/diseases/advance/symptoms/fever.dm @@ -0,0 +1,41 @@ +/* +////////////////////////////////////// + +Fever + + No change to hidden. + Increases resistance. + Increases stage speed. + Little transmittable. + Low level. + +Bonus + Heats up your body. + +////////////////////////////////////// +*/ + +/datum/symptom/fever + + name = "Fever" + stealth = 0 + resistance = 3 + stage_speed = 3 + transmittable = 2 + level = 2 + severity = 2 + +/datum/symptom/fever/Activate(datum/disease/advance/A) + ..() + if(prob(SYMPTOM_ACTIVATION_PROB)) + var/mob/living/carbon/M = A.affected_mob + M << "[pick("You feel hot.", "You feel like you're burning.")]" + if(M.bodytemperature < BODYTEMP_HEAT_DAMAGE_LIMIT) + Heat(M, A) + + return + +/datum/symptom/fever/proc/Heat(mob/living/M, datum/disease/advance/A) + var/get_heat = (sqrt(max(21,21+A.totalTransmittable()*2)))+(sqrt(max(21,20+A.totalStageSpeed()*3))) + M.bodytemperature = min(M.bodytemperature + (get_heat * A.stage), BODYTEMP_HEAT_DAMAGE_LIMIT - 1) + return 1 diff --git a/code/datums/diseases/advance/symptoms/fire.dm b/code/datums/diseases/advance/symptoms/fire.dm new file mode 100644 index 0000000..087abdd --- /dev/null +++ b/code/datums/diseases/advance/symptoms/fire.dm @@ -0,0 +1,122 @@ +/* +////////////////////////////////////// + +Spontaneous Combustion + + Slightly hidden. + Lowers resistance tremendously. + Decreases stage tremendously. + Decreases transmittablity tremendously. + Fatal Level. + +Bonus + Ignites infected mob. + +////////////////////////////////////// +*/ + +/datum/symptom/fire + + name = "Spontaneous Combustion" + stealth = 1 + resistance = -4 + stage_speed = -4 + transmittable = -4 + level = 6 + severity = 5 + +/datum/symptom/fire/Activate(datum/disease/advance/A) + ..() + if(prob(SYMPTOM_ACTIVATION_PROB)) + var/mob/living/M = A.affected_mob + switch(A.stage) + if(3) + M << "[pick("You feel hot.", "You hear a crackling noise.", "You smell smoke.")]" + if(4) + Firestacks_stage_4(M, A) + M.IgniteMob() + M << "Your skin bursts into flames!" + M.emote("scream") + if(5) + Firestacks_stage_5(M, A) + M.IgniteMob() + M << "Your skin erupts into an inferno!" + M.emote("scream") + return + +/datum/symptom/fire/proc/Firestacks_stage_4(mob/living/M, datum/disease/advance/A) + var/get_stacks = (sqrt(20+A.totalStageSpeed()*2))-(sqrt(16+A.totalStealth())) + M.adjust_fire_stacks(get_stacks) + M.adjustFireLoss(get_stacks/2) + return 1 + +/datum/symptom/fire/proc/Firestacks_stage_5(mob/living/M, datum/disease/advance/A) + var/get_stacks = (sqrt(20+A.totalStageSpeed()*3))-(sqrt(16+A.totalStealth())) + M.adjust_fire_stacks(get_stacks) + M.adjustFireLoss(get_stacks) + return 1 + +/* +////////////////////////////////////// + +Alkali perspiration + + Hidden. + Lowers resistance. + Decreases stage speed. + Decreases transmittablity. + Fatal Level. + +Bonus + Ignites infected mob. + Explodes mob on contact with water. + +////////////////////////////////////// +*/ + +/datum/symptom/alkali + + name = "Alkali perspiration" + stealth = 2 + resistance = -2 + stage_speed = -2 + transmittable = -2 + level = 7 + severity = 6 + +/datum/symptom/alkali/Activate(datum/disease/advance/A) + ..() + if(prob(SYMPTOM_ACTIVATION_PROB)) + var/mob/living/M = A.affected_mob + switch(A.stage) + if(3) + M << "[pick("Your veins boil.", "You feel hot.", "You smell meat cooking.")]" + if(4) + Alkali_fire_stage_4(M, A) + M.IgniteMob() + M << "Your sweat bursts into flames!" + M.emote("scream") + if(5) + Alkali_fire_stage_5(M, A) + M.IgniteMob() + M << "Your skin erupts into an inferno!" + M.emote("scream") + if(M.fire_stacks < 0) + M.visible_message("[M]'s sweat sizzles and pops on contact with water!") + explosion(M.loc,0,0,2) + Alkali_fire_stage_5(M, A) + return + +/datum/symptom/alkali/proc/Alkali_fire_stage_4(mob/living/M, datum/disease/advance/A) + var/get_stacks = (sqrt(20+A.totalStageSpeed()*5)) + M.adjust_fire_stacks(get_stacks) + M.adjustFireLoss(get_stacks/2) + M.reagents.add_reagent("clf3", 1) + return 1 + +/datum/symptom/alkali/proc/Alkali_fire_stage_5(mob/living/M, datum/disease/advance/A) + var/get_stacks = (sqrt(20+A.totalStageSpeed()*8)) + M.adjust_fire_stacks(get_stacks) + M.adjustFireLoss(get_stacks) + M.reagents.add_reagent_list(list("napalm" = 3, "clf3" = 3)) + return 1 \ No newline at end of file diff --git a/code/datums/diseases/advance/symptoms/flesh_eating.dm b/code/datums/diseases/advance/symptoms/flesh_eating.dm new file mode 100644 index 0000000..835d2f2 --- /dev/null +++ b/code/datums/diseases/advance/symptoms/flesh_eating.dm @@ -0,0 +1,88 @@ +/* +////////////////////////////////////// + +Necrotizing Fasciitis (AKA Flesh-Eating Disease) + + Very very noticable. + Lowers resistance tremendously. + No changes to stage speed. + Decreases transmittablity temrendously. + Fatal Level. + +Bonus + Deals brute damage over time. + +////////////////////////////////////// +*/ + +/datum/symptom/flesh_eating + + name = "Necrotizing Fasciitis" + stealth = -3 + resistance = -4 + stage_speed = 0 + transmittable = -4 + level = 6 + severity = 5 + +/datum/symptom/flesh_eating/Activate(datum/disease/advance/A) + ..() + if(prob(SYMPTOM_ACTIVATION_PROB)) + var/mob/living/M = A.affected_mob + switch(A.stage) + if(2,3) + M << "[pick("You feel a sudden pain across your body.", "Drops of blood appear suddenly on your skin.")]" + if(4,5) + M << "[pick("You cringe as a violent pain takes over your body.", "It feels like your body is eating itself inside out.", "IT HURTS.")]" + Flesheat(M, A) + return + +/datum/symptom/flesh_eating/proc/Flesheat(mob/living/M, datum/disease/advance/A) + var/get_damage = ((sqrt(16-A.totalStealth()))*5) + M.adjustBruteLoss(get_damage) + return 1 + +/* +////////////////////////////////////// + +Autophagocytosis (AKA Programmed mass cell death) + + Very noticable. + Lowers resistance. + Fast stage speed. + Decreases transmittablity. + Fatal Level. + +Bonus + Deals brute damage over time. + +////////////////////////////////////// +*/ + +/datum/symptom/flesh_death + + name = "Autophagocytosis Necrosis" + stealth = -2 + resistance = -2 + stage_speed = 1 + transmittable = -2 + level = 7 + severity = 6 + +/datum/symptom/flesh_death/Activate(datum/disease/advance/A) + ..() + if(prob(SYMPTOM_ACTIVATION_PROB)) + var/mob/living/M = A.affected_mob + switch(A.stage) + if(2,3) + M << "[pick("You feel your body break apart.", "Your skin rubs off like dust.")]" + if(4,5) + M << "[pick("You feel your muscles weakening.", "Your skin begins detaching itself.", "You feel sandy.")]" + Flesh_death(M, A) + return + +/datum/symptom/flesh_death/proc/Flesh_death(mob/living/M, datum/disease/advance/A) + var/get_damage = ((sqrt(16-A.totalStealth()))*6) + M.adjustBruteLoss(get_damage) + M.reagents.add_reagent_list(list("heparin" = 5, "lipolicide" = 5)) + return 1 \ No newline at end of file diff --git a/code/datums/diseases/advance/symptoms/genetics.dm b/code/datums/diseases/advance/symptoms/genetics.dm new file mode 100644 index 0000000..2d0b613 --- /dev/null +++ b/code/datums/diseases/advance/symptoms/genetics.dm @@ -0,0 +1,59 @@ +/* +////////////////////////////////////// + +DNA Saboteur + + Very noticable. + Lowers resistance tremendously. + No changes to stage speed. + Decreases transmittablity tremendously. + Fatal Level. + +Bonus + Cleans the DNA of a person and then randomly gives them a disability. + +////////////////////////////////////// +*/ + +/datum/symptom/genetic_mutation + + name = "Deoxyribonucleic Acid Saboteur" + stealth = -2 + resistance = -3 + stage_speed = 0 + transmittable = -3 + level = 6 + severity = 3 + var/list/possible_mutations + var/archived_dna = null + +/datum/symptom/genetic_mutation/Activate(datum/disease/advance/A) + ..() + if(prob(SYMPTOM_ACTIVATION_PROB * 3)) // 15% chance + var/mob/living/carbon/C = A.affected_mob + if(!C.has_dna()) + return + switch(A.stage) + if(4, 5) + C << "[pick("Your skin feels itchy.", "You feel light headed.")]" + C.dna.remove_mutation_group(possible_mutations) + C.randmut(possible_mutations) + return + +// Archive their DNA before they were infected. +/datum/symptom/genetic_mutation/Start(datum/disease/advance/A) + possible_mutations = (bad_mutations | not_good_mutations) - mutations_list[RACEMUT] + var/mob/living/carbon/M = A.affected_mob + if(M) + if(!M.has_dna()) + return + archived_dna = M.dna.struc_enzymes + +// Give them back their old DNA when cured. +/datum/symptom/genetic_mutation/End(datum/disease/advance/A) + var/mob/living/carbon/M = A.affected_mob + if(M && archived_dna) + if(!M.has_dna()) + return + M.dna.struc_enzymes = archived_dna + M.domutcheck() diff --git a/code/datums/diseases/advance/symptoms/hallucigen.dm b/code/datums/diseases/advance/symptoms/hallucigen.dm new file mode 100644 index 0000000..40850f8 --- /dev/null +++ b/code/datums/diseases/advance/symptoms/hallucigen.dm @@ -0,0 +1,41 @@ +/* +////////////////////////////////////// + +Hallucigen + + Very noticable. + Lowers resistance considerably. + Decreases stage speed. + Reduced transmittable. + Critical Level. + +Bonus + Makes the affected mob be hallucinated for short periods of time. + +////////////////////////////////////// +*/ + +/datum/symptom/hallucigen + + name = "Hallucigen" + stealth = -2 + resistance = -3 + stage_speed = -3 + transmittable = -1 + level = 5 + severity = 3 + +/datum/symptom/hallucigen/Activate(datum/disease/advance/A) + ..() + if(prob(SYMPTOM_ACTIVATION_PROB)) + var/mob/living/carbon/M = A.affected_mob + switch(A.stage) + if(1, 2) + M << "[pick("Something appears in your peripheral vision, then winks out.", "You hear a faint whispher with no source.", "Your head aches.")]" + if(3, 4) + M << "[pick("Something is following you.", "You are being watched.", "You hear a whisper in your ear.", "Thumping footsteps slam toward you from nowhere.")]" + else + M << "[pick("Oh, your head...", "Your head pounds.", "They're everywhere! Run!", "Something in the shadows...")]" + M.hallucination += 25 + + return diff --git a/code/datums/diseases/advance/symptoms/headache.dm b/code/datums/diseases/advance/symptoms/headache.dm new file mode 100644 index 0000000..38ac066 --- /dev/null +++ b/code/datums/diseases/advance/symptoms/headache.dm @@ -0,0 +1,34 @@ +/* +////////////////////////////////////// + +Headache + + Noticable. + Highly resistant. + Increases stage speed. + Not transmittable. + Low Level. + +BONUS + Displays an annoying message! + Should be used for buffing your disease. + +////////////////////////////////////// +*/ + +/datum/symptom/headache + + name = "Headache" + stealth = -1 + resistance = 4 + stage_speed = 2 + transmittable = 0 + level = 1 + severity = 1 + +/datum/symptom/headache/Activate(datum/disease/advance/A) + ..() + if(prob(SYMPTOM_ACTIVATION_PROB)) + var/mob/living/M = A.affected_mob + M << "[pick("Your head hurts.", "Your head starts pounding.")]" + return \ No newline at end of file diff --git a/code/datums/diseases/advance/symptoms/heal.dm b/code/datums/diseases/advance/symptoms/heal.dm new file mode 100644 index 0000000..76cbcd6 --- /dev/null +++ b/code/datums/diseases/advance/symptoms/heal.dm @@ -0,0 +1,294 @@ +/* +////////////////////////////////////// + +Healing + + Little bit hidden. + Lowers resistance tremendously. + Decreases stage speed tremendously. + Decreases transmittablity temrendously. + Fatal Level. + +Bonus + Heals toxins in the affected mob's blood stream. + +////////////////////////////////////// +*/ + +/datum/symptom/heal + + name = "Toxic Filter" + stealth = 1 + resistance = -4 + stage_speed = -4 + transmittable = -4 + level = 6 + +/datum/symptom/heal/Activate(datum/disease/advance/A) + ..() + //100% chance to activate for slow but consistent healing + var/mob/living/M = A.affected_mob + switch(A.stage) + if(4, 5) + Heal(M, A) + return + +/datum/symptom/heal/proc/Heal(mob/living/M, datum/disease/advance/A) + var/heal_amt = 0.5 + if(M.toxloss > 0 && prob(20)) + PoolOrNew(/obj/effect/overlay/temp/heal, list(get_turf(M), "#66FF99")) + M.adjustToxLoss(-heal_amt) + return 1 + +/* +////////////////////////////////////// + +Apoptosis + + Lowers resistance. + Decreases stage speed. + Decreases transmittablity. + +Bonus + Heals toxins in the affected mob's blood stream faster. + +////////////////////////////////////// +*/ + +/datum/symptom/heal/plus + + name = "Apoptoxin filter" + stealth = 0 + resistance = -2 + stage_speed = -2 + transmittable = -2 + level = 8 + +/datum/symptom/heal/plus/Heal(mob/living/M, datum/disease/advance/A) + var/heal_amt = 1 + if(M.toxloss > 0 && prob(20)) + PoolOrNew(/obj/effect/overlay/temp/heal, list(get_turf(M), "#00FF00")) + M.adjustToxLoss(-heal_amt) + return 1 + +/* +////////////////////////////////////// + +Regeneration + + Little bit hidden. + Lowers resistance tremendously. + Decreases stage speed tremendously. + Decreases transmittablity temrendously. + Fatal Level. + +Bonus + Heals brute damage slowly over time. + +////////////////////////////////////// +*/ + +/datum/symptom/heal/brute + + name = "Regeneration" + stealth = 1 + resistance = -4 + stage_speed = -4 + transmittable = -4 + level = 6 + +/datum/symptom/heal/brute/Heal(mob/living/carbon/M, datum/disease/advance/A) + var/heal_amt = 1 + + var/list/parts = M.get_damaged_bodyparts(1,1) //1,1 because it needs inputs. + + if(!parts.len) + return + + for(var/obj/item/bodypart/L in parts) + if(L.heal_damage(heal_amt/parts.len, 0)) + M.update_damage_overlays() + + if(prob(20)) + PoolOrNew(/obj/effect/overlay/temp/heal, list(get_turf(M), "#FF3333")) + + return 1 + + +/* +////////////////////////////////////// + +Flesh Mending + + No resistance change. + Decreases stage speed. + Decreases transmittablity. + Fatal Level. + +Bonus + Heals brute damage over time. Turns cloneloss into burn damage. + +////////////////////////////////////// +*/ + +/datum/symptom/heal/brute/plus + + name = "Flesh Mending" + stealth = 0 + resistance = 0 + stage_speed = -2 + transmittable = -2 + level = 8 + +/datum/symptom/heal/brute/plus/Heal(mob/living/carbon/M, datum/disease/advance/A) + var/heal_amt = 2 + + var/list/parts = M.get_damaged_bodyparts(1,1) //1,1 because it needs inputs. + + if(M.getCloneLoss() > 0) + M.adjustCloneLoss(-1) + M.take_bodypart_damage(0, 1) //Deals BURN damage, which is not cured by this symptom + PoolOrNew(/obj/effect/overlay/temp/heal, list(get_turf(M), "#33FFCC")) + + if(!parts.len) + return + + for(var/obj/item/bodypart/L in parts) + if(L.heal_damage(heal_amt/parts.len, 0)) + M.update_damage_overlays() + + if(prob(20)) + PoolOrNew(/obj/effect/overlay/temp/heal, list(get_turf(M), "#CC1100")) + + return 1 + +/* +////////////////////////////////////// + +Tissue Regrowth + + Little bit hidden. + Lowers resistance tremendously. + Decreases stage speed tremendously. + Decreases transmittablity temrendously. + Fatal Level. + +Bonus + Heals burn damage slowly over time. + +////////////////////////////////////// +*/ + +/datum/symptom/heal/burn + + name = "Tissue Regrowth" + stealth = 1 + resistance = -4 + stage_speed = -4 + transmittable = -4 + level = 6 + +/datum/symptom/heal/burn/Heal(mob/living/carbon/M, datum/disease/advance/A) + var/heal_amt = 1 + + var/list/parts = M.get_damaged_bodyparts(1,1) //1,1 because it needs inputs. + + if(!parts.len) + return + + for(var/obj/item/bodypart/L in parts) + if(L.heal_damage(0, heal_amt/parts.len)) + M.update_damage_overlays() + + if(prob(20)) + PoolOrNew(/obj/effect/overlay/temp/heal, list(get_turf(M), "#FF9933")) + return 1 + + +/* +////////////////////////////////////// + +Heat Resistance //Needs a better name + + No resistance change. + Decreases stage speed. + Decreases transmittablity. + Fatal Level. + +Bonus + Heals burn damage over time, and helps stabilize body temperature. + +////////////////////////////////////// +*/ + +/datum/symptom/heal/burn/plus + + name = "Heat Resistance" + stealth = 0 + resistance = 0 + stage_speed = -2 + transmittable = -2 + level = 8 + +/datum/symptom/heal/burn/plus/Heal(mob/living/carbon/M, datum/disease/advance/A) + var/heal_amt = 2 + + var/list/parts = M.get_damaged_bodyparts(1,1) //1,1 because it needs inputs. + + if(M.bodytemperature > 310) + M.bodytemperature = max(310, M.bodytemperature - (10 * heal_amt * TEMPERATURE_DAMAGE_COEFFICIENT)) + else if(M.bodytemperature < 311) + M.bodytemperature = min(310, M.bodytemperature + (10 * heal_amt * TEMPERATURE_DAMAGE_COEFFICIENT)) + + if(!parts.len) + return + + for(var/obj/item/bodypart/L in parts) + if(L.heal_damage(0, heal_amt/parts.len)) + M.update_damage_overlays() + + if(prob(20)) + PoolOrNew(/obj/effect/overlay/temp/heal, list(get_turf(M), "#CC6600")) + return 1 + + +/* +////////////////////////////////////// + + DNA Restoration + + Not well hidden. + Lowers resistance minorly. + Does not affect stage speed. + Decreases transmittablity greatly. + Very high level. + +Bonus + Heals brain damage, treats radiation, cleans SE of non-power mutations. + +////////////////////////////////////// +*/ + +/datum/symptom/heal/dna + + name = "Deoxyribonucleic Acid Restoration" + stealth = -1 + resistance = -1 + stage_speed = 0 + transmittable = -3 + level = 5 + +/datum/symptom/heal/dna/Heal(mob/living/carbon/M, datum/disease/advance/A) + var/amt_healed = 1 + if(M.brainloss > 0 && prob(20)) + PoolOrNew(/obj/effect/overlay/temp/heal, list(get_turf(M), "#DDDDDD")) + M.adjustBrainLoss(-amt_healed) + //Non-power mutations, excluding race, so the virus does not force monkey -> human transformations. + var/list/unclean_mutations = (not_good_mutations|bad_mutations) - mutations_list[RACEMUT] + if(unclean_mutations.len) + PoolOrNew(/obj/effect/overlay/temp/heal, list(get_turf(M), "#00FFFF")) + M.dna.remove_mutation_group(unclean_mutations) + if(M.radiation > 0 && prob(20)) + PoolOrNew(/obj/effect/overlay/temp/heal, list(get_turf(M), "#88FFFF")) + M.radiation = max(M.radiation - (2 * amt_healed), 0) + return 1 diff --git a/code/datums/diseases/advance/symptoms/itching.dm b/code/datums/diseases/advance/symptoms/itching.dm new file mode 100644 index 0000000..e6f08f0 --- /dev/null +++ b/code/datums/diseases/advance/symptoms/itching.dm @@ -0,0 +1,34 @@ +/* +////////////////////////////////////// + +Itching + + Not noticable or unnoticable. + Resistant. + Increases stage speed. + Little transmittable. + Low Level. + +BONUS + Displays an annoying message! + Should be used for buffing your disease. + +////////////////////////////////////// +*/ + +/datum/symptom/itching + + name = "Itching" + stealth = 0 + resistance = 3 + stage_speed = 3 + transmittable = 1 + level = 1 + severity = 1 + +/datum/symptom/itching/Activate(datum/disease/advance/A) + ..() + if(prob(SYMPTOM_ACTIVATION_PROB)) + var/mob/living/M = A.affected_mob + M << "Your [pick("back", "arm", "leg", "elbow", "head")] itches." + return \ No newline at end of file diff --git a/code/datums/diseases/advance/symptoms/oxygen.dm b/code/datums/diseases/advance/symptoms/oxygen.dm new file mode 100644 index 0000000..ce17524 --- /dev/null +++ b/code/datums/diseases/advance/symptoms/oxygen.dm @@ -0,0 +1,38 @@ +/* +////////////////////////////////////// + +Self-Respiration + + Slightly hidden. + Lowers resistance significantly. + Decreases stage speed significantly. + Decreases transmittablity tremendously. + Fatal Level. + +Bonus + The body generates salbutamol. + +////////////////////////////////////// +*/ + +/datum/symptom/oxygen + + name = "Self-Respiration" + stealth = 1 + resistance = -3 + stage_speed = -3 + transmittable = -4 + level = 6 + +/datum/symptom/oxygen/Activate(datum/disease/advance/A) + ..() + var/mob/living/M = A.affected_mob + switch(A.stage) + if(4, 5) + M.adjustOxyLoss(-3, 0) + if(M.losebreath >= 4) + M.losebreath -= 2 + else + if(prob(SYMPTOM_ACTIVATION_PROB * 3)) + M << "[pick("Your lungs feel great.", "You realize you haven't been breathing.", "You don't feel the need to breathe.")]" + return diff --git a/code/datums/diseases/advance/symptoms/sensory.dm b/code/datums/diseases/advance/symptoms/sensory.dm new file mode 100644 index 0000000..7536b11 --- /dev/null +++ b/code/datums/diseases/advance/symptoms/sensory.dm @@ -0,0 +1,131 @@ +/* +////////////////////////////////////// +Sensory-Restoration + Very very very very noticable. + Lowers resistance tremendously. + Decreases stage speed tremendously. + Decreases transmittablity tremendously. + Fatal. +Bonus + The body generates Sensory restorational chemicals. + inacusiate for ears + antihol for removal of alcohol + synaphydramine to purge sensory hallucigens and histamine based impairment + mannitol to kickstart the mind + +////////////////////////////////////// +*/ +/datum/symptom/sensory_restoration + name = "Sensory Restoration" + stealth = -1 + resistance = -4 + stage_speed = -4 + transmittable = -3 + level = 5 + severity = 0 + +/datum/symptom/sensory_restoration/Activate(var/datum/disease/advance/A) + ..() + var/mob/living/M = A.affected_mob + if(A.stage >= 2) + M.setEarDamage(0,0) + + if(A.stage >= 3) + M.dizziness = 0 + M.drowsyness = 0 + M.slurring = 0 + M.confused = 0 + M.reagents.remove_all_type(/datum/reagent/consumable/ethanol, 3) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + H.drunkenness = max(H.drunkenness - 10, 0) + + if(A.stage >= 4) + M.drowsyness = max(M.drowsyness-5, 0) + if(M.reagents.has_reagent("mindbreaker")) + M.reagents.remove_reagent("mindbreaker", 5) + if(M.reagents.has_reagent("histamine")) + M.reagents.remove_reagent("histamine", 5) + M.hallucination = max(0, M.hallucination - 10) + + if(A.stage >= 5) + M.adjustBrainLoss(-3) + return + +/* +////////////////////////////////////// +Sensory-Destruction + noticable. + Lowers resistance + Decreases stage speed tremendously. + Decreases transmittablity tremendously. + the drugs hit them so hard they have to focus on not dying + +Bonus + The body generates Sensory destructive chemicals. + You cannot taste anything anymore. + ethanol for extremely drunk victim + mindbreaker to break the mind + impedrezene to ruin the brain + +////////////////////////////////////// +*/ +/datum/symptom/sensory_destruction + name = "Sensory destruction" + stealth = -1 + resistance = -2 + stage_speed = -3 + transmittable = -4 + level = 6 + severity = 5 + var/sleepy = 0 + var/sleepy_ticks = 0 + +/datum/symptom/sensory_destruction/Activate(var/datum/disease/advance/A) + ..() + var/mob/living/M = A.affected_mob + if(prob(SYMPTOM_ACTIVATION_PROB)) + switch(A.stage) + if(1) + M << "You can't feel anything." + if(2) + M << "You feel absolutely hammered." + if(prob(10)) + sleepy_ticks += rand(10,14) + if(3) + M.reagents.add_reagent("ethanol",rand(5,7)) + M << "You try to focus on not dying." + if(prob(15)) + sleepy_ticks += rand(10,14) + if(4) + M.reagents.add_reagent("ethanol",rand(6,10)) + M << "u can count 2 potato!" + if(prob(20)) + sleepy_ticks += rand(10,14) + if(5) + M.reagents.add_reagent("ethanol",rand(7,13)) + if(prob(25)) + sleepy_ticks += rand(10,14) + + if(sleepy_ticks) + if(A.stage>=4) + M.hallucination = min(M.hallucination + 10, 50) + if(A.stage>=5) + if(prob(80)) + M.adjustBrainLoss(1) + if(prob(50)) + M.drowsyness = max(M.drowsyness, 3) + sleepy++ + sleepy_ticks-- + else + sleepy = 0 + + switch(sleepy) //Works like morphine + if(11) + M << "You start to feel tired..." + if(12 to 24) + M.drowsyness += 1 + if(24 to INFINITY) + M.Sleeping(2, 0) + + return diff --git a/code/datums/diseases/advance/symptoms/shedding.dm b/code/datums/diseases/advance/symptoms/shedding.dm new file mode 100644 index 0000000..70e2c45 --- /dev/null +++ b/code/datums/diseases/advance/symptoms/shedding.dm @@ -0,0 +1,48 @@ +/* +////////////////////////////////////// +Alopecia + + Noticable. + Decreases resistance slightly. + Reduces stage speed slightly. + Transmittable. + Intense Level. + +BONUS + Makes the mob lose hair. + +////////////////////////////////////// +*/ + +/datum/symptom/shedding + + name = "Alopecia" + stealth = -1 + resistance = -1 + stage_speed = -1 + transmittable = 2 + level = 4 + severity = 1 + +/datum/symptom/shedding/Activate(datum/disease/advance/A) + ..() + if(prob(SYMPTOM_ACTIVATION_PROB)) + var/mob/living/M = A.affected_mob + M << "[pick("Your scalp itches.", "Your skin feels flakey.")]" + if(ishuman(M)) + var/mob/living/carbon/human/H = M + switch(A.stage) + if(3, 4) + if(!(H.hair_style == "Bald") && !(H.hair_style == "Balding Hair")) + H << "Your hair starts to fall out in clumps..." + spawn(50) + H.hair_style = "Balding Hair" + H.update_hair() + if(5) + if(!(H.facial_hair_style == "Shaved") || !(H.hair_style == "Bald")) + H << "Your hair starts to fall out in clumps..." + spawn(50) + H.facial_hair_style = "Shaved" + H.hair_style = "Bald" + H.update_hair() + return \ No newline at end of file diff --git a/code/datums/diseases/advance/symptoms/shivering.dm b/code/datums/diseases/advance/symptoms/shivering.dm new file mode 100644 index 0000000..6925b1f --- /dev/null +++ b/code/datums/diseases/advance/symptoms/shivering.dm @@ -0,0 +1,40 @@ +/* +////////////////////////////////////// + +Shivering + + No change to hidden. + Increases resistance. + Increases stage speed. + Little transmittable. + Low level. + +Bonus + Cools down your body. + +////////////////////////////////////// +*/ + +/datum/symptom/shivering + + name = "Shivering" + stealth = 0 + resistance = 2 + stage_speed = 2 + transmittable = 2 + level = 2 + severity = 2 + +/datum/symptom/shivering/Activate(datum/disease/advance/A) + ..() + if(prob(SYMPTOM_ACTIVATION_PROB)) + var/mob/living/carbon/M = A.affected_mob + M << "[pick("You feel cold.", "You start shivering.")]" + if(M.bodytemperature < BODYTEMP_COLD_DAMAGE_LIMIT) + Chill(M, A) + return + +/datum/symptom/shivering/proc/Chill(mob/living/M, datum/disease/advance/A) + var/get_cold = (sqrt(16+A.totalStealth()*2))+(sqrt(21+A.totalResistance()*2)) + M.bodytemperature = min(M.bodytemperature - (get_cold * A.stage), BODYTEMP_COLD_DAMAGE_LIMIT + 1) + return 1 \ No newline at end of file diff --git a/code/datums/diseases/advance/symptoms/skin.dm b/code/datums/diseases/advance/symptoms/skin.dm new file mode 100644 index 0000000..09b0f0a --- /dev/null +++ b/code/datums/diseases/advance/symptoms/skin.dm @@ -0,0 +1,86 @@ +/* +////////////////////////////////////// +Vitiligo + + Extremely Noticable. + Decreases resistance slightly. + Reduces stage speed slightly. + Reduces transmission. + Critical Level. + +BONUS + Makes the mob lose skin pigmentation. + +////////////////////////////////////// +*/ + +/datum/symptom/vitiligo + + name = "Vitiligo" + stealth = -3 + resistance = -1 + stage_speed = -1 + transmittable = -2 + level = 4 + severity = 1 + +/datum/symptom/vitiligo/Activate(datum/disease/advance/A) + ..() + if(prob(SYMPTOM_ACTIVATION_PROB)) + var/mob/living/M = A.affected_mob + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(H.skin_tone == "albino") + return + switch(A.stage) + if(5) + H.skin_tone = "albino" + H.update_body(0) + else + H.visible_message("[H] looks a bit pale...", "Your skin suddenly appears lighter...") + + return + + +/* +////////////////////////////////////// +Revitiligo + + Extremely Noticable. + Decreases resistance slightly. + Reduces stage speed slightly. + Reduces transmission. + Critical Level. + +BONUS + Makes the mob gain skin pigmentation. + +////////////////////////////////////// +*/ + +/datum/symptom/revitiligo + + name = "Revitiligo" + stealth = -3 + resistance = -1 + stage_speed = -1 + transmittable = -2 + level = 4 + severity = 1 + +/datum/symptom/revitiligo/Activate(datum/disease/advance/A) + ..() + if(prob(SYMPTOM_ACTIVATION_PROB)) + var/mob/living/M = A.affected_mob + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(H.skin_tone == "african2") + return + switch(A.stage) + if(5) + H.skin_tone = "african2" + H.update_body(0) + else + H.visible_message("[H] looks a bit dark...", "Your skin suddenly appears darker...") + + return \ No newline at end of file diff --git a/code/datums/diseases/advance/symptoms/sneeze.dm b/code/datums/diseases/advance/symptoms/sneeze.dm new file mode 100644 index 0000000..9413eea --- /dev/null +++ b/code/datums/diseases/advance/symptoms/sneeze.dm @@ -0,0 +1,39 @@ +/* +////////////////////////////////////// + +Sneezing + + Very Noticable. + Increases resistance. + Doesn't increase stage speed. + Very transmittable. + Low Level. + +Bonus + Forces a spread type of AIRBORNE + with extra range! + +////////////////////////////////////// +*/ + +/datum/symptom/sneeze + + name = "Sneezing" + stealth = -2 + resistance = 3 + stage_speed = 0 + transmittable = 4 + level = 1 + severity = 1 + +/datum/symptom/sneeze/Activate(datum/disease/advance/A) + ..() + if(prob(SYMPTOM_ACTIVATION_PROB)) + var/mob/living/M = A.affected_mob + switch(A.stage) + if(1, 2, 3) + M.emote("sniff") + else + M.emote("sneeze") + A.spread(A.holder, 5) + return \ No newline at end of file diff --git a/code/datums/diseases/advance/symptoms/symptoms.dm b/code/datums/diseases/advance/symptoms/symptoms.dm new file mode 100644 index 0000000..4b9de79 --- /dev/null +++ b/code/datums/diseases/advance/symptoms/symptoms.dm @@ -0,0 +1,40 @@ +// Symptoms are the effects that engineered advanced diseases do. + +var/list/list_symptoms = subtypesof(/datum/symptom) +var/list/dictionary_symptoms = list() + +var/global/const/SYMPTOM_ACTIVATION_PROB = 5 + +/datum/symptom + // Buffs/Debuffs the symptom has to the overall engineered disease. + var/name = "" + var/stealth = 0 + var/resistance = 0 + var/stage_speed = 0 + var/transmittable = 0 + // The type level of the symptom. Higher is harder to generate. + var/level = 0 + // The severity level of the symptom. Higher is more dangerous. + var/severity = 0 + // The hash tag for our diseases, we will add it up with our other symptoms to get a unique id! ID MUST BE UNIQUE!!! + var/id = "" + +/datum/symptom/New() + var/list/S = list_symptoms + for(var/i = 1; i <= S.len; i++) + if(src.type == S[i]) + id = "[i]" + return + CRASH("We couldn't assign an ID!") + +// Called when processing of the advance disease, which holds this symptom, starts. +/datum/symptom/proc/Start(datum/disease/advance/A) + return + +// Called when the advance disease is going to be deleted or when the advance disease stops processing. +/datum/symptom/proc/End(datum/disease/advance/A) + return + +/datum/symptom/proc/Activate(datum/disease/advance/A) + return + diff --git a/code/datums/diseases/advance/symptoms/viral.dm b/code/datums/diseases/advance/symptoms/viral.dm new file mode 100644 index 0000000..7c409f0 --- /dev/null +++ b/code/datums/diseases/advance/symptoms/viral.dm @@ -0,0 +1,107 @@ +/* +////////////////////////////////////// +Viral adaptation + + Moderate stealth boost. + Major Increases to resistance. + Reduces stage speed. + No change to transmission + Critical Level. + +BONUS + Extremely useful for buffing viruses + +////////////////////////////////////// +*/ +/datum/symptom/viraladaptation + name = "Viral self-adaptation" + stealth = 3 + resistance = 5 + stage_speed = -3 + transmittable = 0 + level = 3 + +/datum/symptom/viraladaptation/Activate(datum/disease/advance/A) + ..() + if(prob(SYMPTOM_ACTIVATION_PROB)) + var/mob/living/M = A.affected_mob + switch(A.stage) + if(1) + M << "You feel off, but no different from before." + if(5) + M << "You feel better, but nothing interesting happens." + +/* +////////////////////////////////////// +Viral evolution + + Moderate stealth reductopn. + Major decreases to resistance. + increases stage speed. + increase to transmission + Critical Level. + +BONUS + Extremely useful for buffing viruses + +////////////////////////////////////// +*/ +/datum/symptom/viralevolution + name = "Viral evolutionary acceleration" + stealth = -2 + resistance = -3 + stage_speed = 5 + transmittable = 3 + level = 3 + +/datum/symptom/viraladaptation/Activate(datum/disease/advance/A) + ..() + if(prob(SYMPTOM_ACTIVATION_PROB)) + var/mob/living/M = A.affected_mob + switch(A.stage) + if(1) + M << "You feel better, but no different from before." + if(5) + M << "You feel off, but nothing interesting happens." + +/* +////////////////////////////////////// + +Viral aggressive metabolism (ex-Longevity) + + No stealth. + Small resistance boost. + Reduced stage speed. + Large transmittablity boost. + High Level. + +Bonus + The virus starts at stage 5 and decrease over time until it self cures. + Stages still increase naturally with stage speed. + +////////////////////////////////////// +*/ + +/datum/symptom/viralreverse + + name = "Viral aggressive metabolism" + stealth = 0 + resistance = 1 + stage_speed = -2 + transmittable = 3 + level = 3 + +/datum/symptom/viralreverse/Activate(datum/disease/advance/A) + ..() + if(prob(SYMPTOM_ACTIVATION_PROB)) + var/mob/living/M = A.affected_mob + Heal(M, A) + return + +/datum/symptom/viralreverse/proc/Heal(mob/living/M, datum/disease/advance/A) + A.stage -= 1 + if(A.stage < 2) + A.cure() + +/datum/symptom/viralreverse/Start(datum/disease/advance/A) + A.stage = 5 diff --git a/code/datums/diseases/advance/symptoms/vision.dm b/code/datums/diseases/advance/symptoms/vision.dm new file mode 100644 index 0000000..d2f1dab --- /dev/null +++ b/code/datums/diseases/advance/symptoms/vision.dm @@ -0,0 +1,101 @@ +/* +////////////////////////////////////// + +Hyphema (Eye bleeding) + + Slightly noticable. + Lowers resistance tremendously. + Decreases stage speed tremendously. + Decreases transmittablity. + Critical Level. + +Bonus + Causes blindness. + +////////////////////////////////////// +*/ + +/datum/symptom/visionloss + + name = "Hyphema" + stealth = -1 + resistance = -4 + stage_speed = -4 + transmittable = -3 + level = 5 + severity = 4 + +/datum/symptom/visionloss/Activate(datum/disease/advance/A) + ..() + if(prob(SYMPTOM_ACTIVATION_PROB)) + var/mob/living/M = A.affected_mob + switch(A.stage) + if(1, 2) + M << "Your eyes itch." + if(3, 4) + M << "Your eyes burn!" + M.blur_eyes(10) + M.adjust_eye_damage(1) + else + M << "Your eyes burn horrificly!" + M.blur_eyes(20) + M.adjust_eye_damage(5) + if(M.eye_damage >= 10) + M.become_nearsighted() + if(prob(M.eye_damage - 10 + 1)) + if(M.become_blind()) + M << "You go blind!" + + +/* +////////////////////////////////////// + +Ocular Restoration + + Noticable. + Lowers resistance significantly. + Decreases stage speed moderately.. + Decreases transmittablity tremendously. + High level. + +Bonus + Restores eyesight. + +////////////////////////////////////// +*/ + +/datum/symptom/visionaid + + name = "Ocular Restoration" + stealth = -1 + resistance = -3 + stage_speed = -2 + transmittable = -4 + level = 4 + +/datum/symptom/visionaid/Activate(datum/disease/advance/A) + ..() + var/mob/living/M = A.affected_mob + switch(A.stage) + if(4, 5) //basically oculine + if(M.disabilities & BLIND) + if(prob(20)) + M << "Your vision slowly returns..." + M.cure_blind() + M.cure_nearsighted() + M.blur_eyes(35) + + else if(M.disabilities & NEARSIGHT) + M << "The blackness in your peripheral vision fades." + M.cure_nearsighted() + M.blur_eyes(10) + + else if(M.eye_blind || M.eye_blurry) + M.set_blindness(0) + M.set_blurriness(0) + else if(M.eye_damage > 0) + M.adjust_eye_damage(-1) + else + if(prob(SYMPTOM_ACTIVATION_PROB * 3)) + M << "[pick("Your eyes feel great.", "You are now blinking manually.", "You don't feel the need to blink.")]" + return diff --git a/code/datums/diseases/advance/symptoms/voice_change.dm b/code/datums/diseases/advance/symptoms/voice_change.dm new file mode 100644 index 0000000..47299e9 --- /dev/null +++ b/code/datums/diseases/advance/symptoms/voice_change.dm @@ -0,0 +1,48 @@ +/* +////////////////////////////////////// + +Voice Change + + Very Very noticable. + Lowers resistance considerably. + Decreases stage speed. + Reduced transmittable. + Fatal Level. + +Bonus + Changes the voice of the affected mob. Causing confusion in communication. + +////////////////////////////////////// +*/ + +/datum/symptom/voice_change + + name = "Voice Change" + stealth = -2 + resistance = -3 + stage_speed = -3 + transmittable = -1 + level = 6 + severity = 2 + +/datum/symptom/voice_change/Activate(datum/disease/advance/A) + ..() + if(prob(SYMPTOM_ACTIVATION_PROB)) + + var/mob/living/carbon/M = A.affected_mob + switch(A.stage) + if(1, 2, 3, 4) + M << "[pick("Your throat hurts.", "You clear your throat.")]" + else + if(ishuman(M)) + var/mob/living/carbon/human/H = M + H.SetSpecialVoice(H.dna.species.random_name(H.gender)) + + return + +/datum/symptom/voice_change/End(datum/disease/advance/A) + ..() + if(ishuman(A.affected_mob)) + var/mob/living/carbon/human/H = A.affected_mob + H.UnsetSpecialVoice() + return diff --git a/code/datums/diseases/advance/symptoms/vomit.dm b/code/datums/diseases/advance/symptoms/vomit.dm new file mode 100644 index 0000000..abd5df5 --- /dev/null +++ b/code/datums/diseases/advance/symptoms/vomit.dm @@ -0,0 +1,106 @@ +/* +////////////////////////////////////// + +Vomiting + + Very Very Noticable. + Decreases resistance. + Doesn't increase stage speed. + Little transmittable. + Medium Level. + +Bonus + Forces the affected mob to vomit! + Meaning your disease can spread via + people walking on vomit. + Makes the affected mob lose nutrition and + heal toxin damage. + +////////////////////////////////////// +*/ + +/datum/symptom/vomit + + name = "Vomiting" + stealth = -2 + resistance = -1 + stage_speed = 0 + transmittable = 1 + level = 3 + severity = 4 + +/datum/symptom/vomit/Activate(datum/disease/advance/A) + ..() + if(prob(SYMPTOM_ACTIVATION_PROB / 2)) + var/mob/living/M = A.affected_mob + switch(A.stage) + if(1, 2, 3, 4) + M << "[pick("You feel nauseous.", "You feel like you're going to throw up!")]" + else + Vomit(M) + + return + +/datum/symptom/vomit/proc/Vomit(mob/living/carbon/M) + M.vomit(20) + +/* +////////////////////////////////////// + +Vomiting Blood + + Very Very Noticable. + Decreases resistance. + Decreases stage speed. + Little transmittable. + Intense level. + +Bonus + Forces the affected mob to vomit blood! + Meaning your disease can spread via + people walking on the blood. + Makes the affected mob lose health. + +////////////////////////////////////// +*/ + +/datum/symptom/vomit/blood + + name = "Blood Vomiting" + stealth = -2 + resistance = -1 + stage_speed = -1 + transmittable = 1 + level = 4 + severity = 5 + +/datum/symptom/vomit/blood/Vomit(mob/living/carbon/M) + M.vomit(0, 1) + + +/* +////////////////////////////////////// + +Projectile Vomiting + + Very Very Noticable. + Decreases resistance. + Doesn't increase stage speed. + Little transmittable. + Medium Level. + +Bonus + As normal vomiting, except it will spread further, + likely causing more to walk across the vomit. + +////////////////////////////////////// +*/ + +/datum/symptom/vomit/projectile + + name = "Projectile Vomiting" + stealth = -2 + level = 4 + +/datum/symptom/vomit/projectile/Vomit(mob/living/carbon/M) + M.vomit(6,0,1,5,1) diff --git a/code/datums/diseases/advance/symptoms/weakness.dm b/code/datums/diseases/advance/symptoms/weakness.dm new file mode 100644 index 0000000..b076968 --- /dev/null +++ b/code/datums/diseases/advance/symptoms/weakness.dm @@ -0,0 +1,44 @@ +/* +////////////////////////////////////// + +Weakness + + Slightly noticeable. + Lowers resistance slightly. + Decreases stage speed moderately. + Decreases transmittablity moderately. + Moderate Level. + +Bonus + Deals stamina damage to the host + +////////////////////////////////////// +*/ + +/datum/symptom/weakness + + name = "Weakness" + stealth = -1 + resistance = -1 + stage_speed = -2 + transmittable = -2 + level = 3 + severity = 3 + +/datum/symptom/weakness/Activate(datum/disease/advance/A) + ..() + if(prob(SYMPTOM_ACTIVATION_PROB)) + var/mob/living/M = A.affected_mob + switch(A.stage) + if(1, 2) + M << "[pick("You feel weak.", "You feel lazy.")]" + if(3, 4) + M << "[pick("You feel very frail.", "You think you might faint.")]" + M.adjustStaminaLoss(15) + else + M << "[pick("You feel tremendously weak!", "Your body trembles as exhaustion creeps over you.")]" + M.adjustStaminaLoss(30) + if(M.getStaminaLoss() > 60 && !M.stat) + M.visible_message("[M] faints!", "You swoon and faint...") + M.AdjustSleeping(5) + return diff --git a/code/datums/diseases/advance/symptoms/weight.dm b/code/datums/diseases/advance/symptoms/weight.dm new file mode 100644 index 0000000..8a5e3b2 --- /dev/null +++ b/code/datums/diseases/advance/symptoms/weight.dm @@ -0,0 +1,121 @@ +/* +////////////////////////////////////// + +Weight Gain + + Very Very Noticable. + Decreases resistance. + Decreases stage speed. + Reduced transmittable. + Intense Level. + +Bonus + Increases the weight gain of the mob, + forcing it to eventually turn fat. +////////////////////////////////////// +*/ + +/datum/symptom/weight_gain + + name = "Weight Gain" + stealth = -3 + resistance = -3 + stage_speed = -2 + transmittable = -2 + level = 4 + severity = 1 + +/datum/symptom/weight_gain/Activate(datum/disease/advance/A) + ..() + if(prob(SYMPTOM_ACTIVATION_PROB)) + var/mob/living/M = A.affected_mob + switch(A.stage) + if(1, 2, 3, 4) + M << "[pick("You feel blubbery.", "Your stomach hurts.")]" + else + M.overeatduration = min(M.overeatduration + 100, 600) + M.nutrition = min(M.nutrition + 100, NUTRITION_LEVEL_FULL) + + return + + +/* +////////////////////////////////////// + +Weight Loss + + Very Very Noticable. + Decreases resistance. + Decreases stage speed. + Reduced Transmittable. + High level. + +Bonus + Decreases the weight of the mob, + forcing it to be skinny. + +////////////////////////////////////// +*/ + +/datum/symptom/weight_loss + + name = "Weight Loss" + stealth = -3 + resistance = -2 + stage_speed = -2 + transmittable = -2 + level = 3 + severity = 1 + +/datum/symptom/weight_loss/Activate(datum/disease/advance/A) + ..() + if(prob(SYMPTOM_ACTIVATION_PROB)) + var/mob/living/M = A.affected_mob + switch(A.stage) + if(1, 2, 3, 4) + M << "[pick("You feel hungry.", "You crave for food.")]" + else + M << "[pick("So hungry...", "You'd kill someone for a bite of food...", "Hunger cramps seize you...")]" + M.overeatduration = max(M.overeatduration - 100, 0) + M.nutrition = max(M.nutrition - 100, 0) + + return + +/* +////////////////////////////////////// + +Weight Even + + Very Noticable. + Decreases resistance. + Decreases stage speed. + Reduced transmittable. + High level. + +Bonus + Causes the weight of the mob to + be even, meaning eating isn't + required anymore. + +////////////////////////////////////// +*/ + +/datum/symptom/weight_even + + name = "Weight Even" + stealth = -3 + resistance = -2 + stage_speed = -2 + transmittable = -2 + level = 4 + +/datum/symptom/weight_even/Activate(datum/disease/advance/A) + ..() + if(prob(SYMPTOM_ACTIVATION_PROB)) + var/mob/living/M = A.affected_mob + switch(A.stage) + if(4, 5) + M.overeatduration = 0 + M.nutrition = NUTRITION_LEVEL_WELL_FED + 50 + + return \ No newline at end of file diff --git a/code/datums/diseases/advance/symptoms/youth.dm b/code/datums/diseases/advance/symptoms/youth.dm new file mode 100644 index 0000000..731350d --- /dev/null +++ b/code/datums/diseases/advance/symptoms/youth.dm @@ -0,0 +1,55 @@ +/* +////////////////////////////////////// +Eternal Youth + + Moderate stealth boost. + Increases resistance tremendously. + Increases stage speed tremendously. + Reduces transmission tremendously. + Critical Level. + +BONUS + Gives you immortality and eternal youth!!! + Can be used to buff your virus + +////////////////////////////////////// +*/ + +/datum/symptom/youth + + name = "Eternal Youth" + stealth = 3 + resistance = 4 + stage_speed = 4 + transmittable = -4 + level = 5 + +/datum/symptom/youth/Activate(datum/disease/advance/A) + ..() + if(prob(SYMPTOM_ACTIVATION_PROB * 2)) + var/mob/living/M = A.affected_mob + if(ishuman(M)) + var/mob/living/carbon/human/H = M + switch(A.stage) + if(1) + if(H.age > 41) + H.age = 41 + H << "You haven't had this much energy in years!" + if(2) + if(H.age > 36) + H.age = 36 + H << "You're suddenly in a good mood." + if(3) + if(H.age > 31) + H.age = 31 + H << "You begin to feel more lithe." + if(4) + if(H.age > 26) + H.age = 26 + H << "You feel reinvigorated." + if(5) + if(H.age > 21) + H.age = 21 + H << "You feel like you can take on the world!" + + return \ No newline at end of file diff --git a/code/datums/diseases/anxiety.dm b/code/datums/diseases/anxiety.dm new file mode 100644 index 0000000..315a01a --- /dev/null +++ b/code/datums/diseases/anxiety.dm @@ -0,0 +1,41 @@ +/datum/disease/anxiety + name = "Severe Anxiety" + form = "Infection" + max_stages = 4 + spread_text = "On contact" + spread_flags = CONTACT_GENERAL + cure_text = "Ethanol" + cures = list("ethanol") + agent = "Excess Lepidopticides" + viable_mobtypes = list(/mob/living/carbon/human,/mob/living/carbon/monkey) + desc = "If left untreated subject will regurgitate butterflies." + severity = MEDIUM + +/datum/disease/anxiety/stage_act() + ..() + switch(stage) + if(2) //also changes say, see say.dm + if(prob(5)) + affected_mob << "You feel anxious." + if(3) + if(prob(10)) + affected_mob << "Your stomach flutters." + if(prob(5)) + affected_mob << "You feel panicky." + if(prob(2)) + affected_mob << "You're overtaken with panic!" + affected_mob.confused += (rand(2,3)) + if(4) + if(prob(10)) + affected_mob << "You feel butterflies in your stomach." + if(prob(5)) + affected_mob.visible_message("[affected_mob] stumbles around in a panic.", \ + "You have a panic attack!") + affected_mob.confused += (rand(6,8)) + affected_mob.jitteriness += (rand(6,8)) + if(prob(2)) + affected_mob.visible_message("[affected_mob] coughs up butterflies!", \ + "You cough up butterflies!") + new /mob/living/simple_animal/butterfly(affected_mob.loc) + new /mob/living/simple_animal/butterfly(affected_mob.loc) + return \ No newline at end of file diff --git a/code/datums/diseases/appendicitis.dm b/code/datums/diseases/appendicitis.dm new file mode 100644 index 0000000..fde4a57 --- /dev/null +++ b/code/datums/diseases/appendicitis.dm @@ -0,0 +1,34 @@ +/datum/disease/appendicitis + form = "Condition" + name = "Appendicitis" + max_stages = 3 + cure_text = "Surgery" + agent = "Shitty Appendix" + viable_mobtypes = list(/mob/living/carbon/human) + permeability_mod = 1 + desc = "If left untreated the subject will become very weak, and may vomit often." + severity = "Dangerous!" + longevity = 1000 + disease_flags = CAN_CARRY|CAN_RESIST + spread_flags = NON_CONTAGIOUS + visibility_flags = HIDDEN_PANDEMIC + required_organs = list(/obj/item/organ/appendix) + +/datum/disease/appendicitis/stage_act() + ..() + switch(stage) + if(1) + if(prob(5)) + affected_mob.emote("cough") + if(2) + var/obj/item/organ/appendix/A = affected_mob.getorgan(/obj/item/organ/appendix) + if(A) + A.inflamed = 1 + A.update_icon() + if(prob(3)) + affected_mob << "You feel a stabbing pain in your abdomen!" + affected_mob.Stun(rand(2,3)) + affected_mob.adjustToxLoss(1) + if(3) + if(prob(1)) + affected_mob.vomit(95) diff --git a/code/datums/diseases/beesease.dm b/code/datums/diseases/beesease.dm new file mode 100644 index 0000000..4ca69a9 --- /dev/null +++ b/code/datums/diseases/beesease.dm @@ -0,0 +1,40 @@ +/datum/disease/beesease + name = "Beesease" + form = "Infection" + max_stages = 4 + spread_text = "On contact" + spread_flags = CONTACT_GENERAL + cure_text = "Sugar" + cures = list("sugar") + agent = "Apidae Infection" + viable_mobtypes = list(/mob/living/carbon/human,/mob/living/carbon/monkey) + desc = "If left untreated subject will regurgitate bees." + severity = DANGEROUS + +/datum/disease/beesease/stage_act() + ..() + switch(stage) + if(2) //also changes say, see say.dm + if(prob(2)) + affected_mob << "You taste honey in your mouth." + if(3) + if(prob(10)) + affected_mob << "Your stomach rumbles." + if(prob(2)) + affected_mob << "Your stomach stings painfully." + if(prob(20)) + affected_mob.adjustToxLoss(2) + affected_mob.updatehealth() + if(4) + if(prob(10)) + affected_mob.visible_message("[affected_mob] buzzes.", \ + "Your stomach buzzes violently!") + if(prob(5)) + affected_mob << "You feel something moving in your throat." + if(prob(1)) + affected_mob.visible_message("[affected_mob] coughs up a swarm of bees!", \ + "You cough up a swarm of bees!") + new /mob/living/simple_animal/hostile/poison/bees(affected_mob.loc) + //if(5) + //Plus if you die, you explode into bees + return \ No newline at end of file diff --git a/code/datums/diseases/brainrot.dm b/code/datums/diseases/brainrot.dm new file mode 100644 index 0000000..c8f9b0e --- /dev/null +++ b/code/datums/diseases/brainrot.dm @@ -0,0 +1,59 @@ +/datum/disease/brainrot + name = "Brainrot" + max_stages = 4 + spread_text = "On contact" + spread_flags = CONTACT_GENERAL + cure_text = "Mannitol" + cures = list("mannitol") + agent = "Cryptococcus Cosmosis" + viable_mobtypes = list(/mob/living/carbon/human) + cure_chance = 15//higher chance to cure, since two reagents are required + desc = "This disease destroys the braincells, causing brain fever, brain necrosis and general intoxication." + required_organs = list(/obj/item/bodypart/head) + severity = DANGEROUS + +/datum/disease/brainrot/stage_act() //Removed toxloss because damaging diseases are pretty horrible. Last round it killed the entire station because the cure didn't work -- Urist -ACTUALLY Removed rather than commented out, I don't see it returning - RR + ..() + + switch(stage) + if(2) + if(prob(2)) + affected_mob.emote("blink") + if(prob(2)) + affected_mob.emote("yawn") + if(prob(2)) + affected_mob << "You don't feel like yourself." + if(prob(5)) + affected_mob.adjustBrainLoss(1) + affected_mob.updatehealth() + if(3) + if(prob(2)) + affected_mob.emote("stare") + if(prob(2)) + affected_mob.emote("drool") + if(prob(10) && affected_mob.getBrainLoss()<=98)//shouldn't retard you to death now + affected_mob.adjustBrainLoss(2) + affected_mob.updatehealth() + if(prob(2)) + affected_mob << "Your try to remember something important...but can't." + + if(4) + if(prob(2)) + affected_mob.emote("stare") + if(prob(2)) + affected_mob.emote("drool") + if(prob(15) && affected_mob.getBrainLoss()<=98) //shouldn't retard you to death now + affected_mob.adjustBrainLoss(3) + affected_mob.updatehealth() + if(prob(2)) + affected_mob << "Strange buzzing fills your head, removing all thoughts." + if(prob(3)) + affected_mob << "You lose consciousness..." + affected_mob.visible_message("[affected_mob] suddenly collapses") + affected_mob.Paralyse(rand(5,10)) + if(prob(1)) + affected_mob.emote("snore") + if(prob(15)) + affected_mob.stuttering += 3 + + return diff --git a/code/datums/diseases/cold.dm b/code/datums/diseases/cold.dm new file mode 100644 index 0000000..87f01cf --- /dev/null +++ b/code/datums/diseases/cold.dm @@ -0,0 +1,66 @@ +/datum/disease/cold + name = "The Cold" + max_stages = 3 + spread_flags = AIRBORNE + cure_text = "Rest & Spaceacillin" + cures = list("spaceacillin") + agent = "XY-rhinovirus" + viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey) + permeability_mod = 0.5 + desc = "If left untreated the subject will contract the flu." + severity = MINOR + +/datum/disease/cold/stage_act() + ..() + switch(stage) + if(2) +/* + if(affected_mob.sleeping && prob(40)) //removed until sleeping is fixed + affected_mob << "\blue You feel better." + cure() + return +*/ + if(affected_mob.lying && prob(40)) //changed FROM prob(10) until sleeping is fixed + affected_mob << "You feel better." + cure() + return + if(prob(1) && prob(5)) + affected_mob << "You feel better." + cure() + return + if(prob(1)) + affected_mob.emote("sneeze") + if(prob(1)) + affected_mob.emote("cough") + if(prob(1)) + affected_mob << "Your throat feels sore." + if(prob(1)) + affected_mob << "Mucous runs down the back of your throat." + if(3) +/* + if(affected_mob.sleeping && prob(25)) //removed until sleeping is fixed + affected_mob << "\blue You feel better." + cure() + return +*/ + if(affected_mob.lying && prob(25)) //changed FROM prob(5) until sleeping is fixed + affected_mob << "You feel better." + cure() + return + if(prob(1) && prob(1)) + affected_mob << "You feel better." + cure() + return + if(prob(1)) + affected_mob.emote("sneeze") + if(prob(1)) + affected_mob.emote("cough") + if(prob(1)) + affected_mob << "Your throat feels sore." + if(prob(1)) + affected_mob << "Mucous runs down the back of your throat." + if(prob(1) && prob(50)) + if(!affected_mob.resistances.Find(/datum/disease/flu)) + var/datum/disease/Flu = new /datum/disease/flu(0) + affected_mob.ContractDisease(Flu) + cure() \ No newline at end of file diff --git a/code/datums/diseases/cold9.dm b/code/datums/diseases/cold9.dm new file mode 100644 index 0000000..f77065a --- /dev/null +++ b/code/datums/diseases/cold9.dm @@ -0,0 +1,39 @@ +/datum/disease/cold9 + name = "The Cold" + max_stages = 3 + spread_text = "On contact" + spread_flags = CONTACT_GENERAL + cure_text = "Common Cold Anti-bodies & Spaceacillin" + cures = list("spaceacillin") + agent = "ICE9-rhinovirus" + viable_mobtypes = list(/mob/living/carbon/human) + desc = "If left untreated the subject will slow, as if partly frozen." + severity = MEDIUM + +/datum/disease/cold9/stage_act() + ..() + switch(stage) + if(2) + affected_mob.bodytemperature -= 10 + if(prob(1) && prob(10)) + affected_mob << "You feel better." + cure() + return + if(prob(1)) + affected_mob.emote("sneeze") + if(prob(1)) + affected_mob.emote("cough") + if(prob(1)) + affected_mob << "Your throat feels sore." + if(prob(5)) + affected_mob << "You feel stiff." + if(3) + affected_mob.bodytemperature -= 20 + if(prob(1)) + affected_mob.emote("sneeze") + if(prob(1)) + affected_mob.emote("cough") + if(prob(1)) + affected_mob << "Your throat feels sore." + if(prob(10)) + affected_mob << "You feel stiff." \ No newline at end of file diff --git a/code/datums/diseases/dna_spread.dm b/code/datums/diseases/dna_spread.dm new file mode 100644 index 0000000..f5f1f70 --- /dev/null +++ b/code/datums/diseases/dna_spread.dm @@ -0,0 +1,74 @@ +/datum/disease/dnaspread + name = "Space Retrovirus" + max_stages = 4 + spread_text = "On contact" + spread_flags = CONTACT_GENERAL + cure_text = "Mutadone" + cures = list("mutadone") + disease_flags = CAN_CARRY|CAN_RESIST|CURABLE + agent = "S4E1 retrovirus" + viable_mobtypes = list(/mob/living/carbon/human) + var/datum/dna/original_dna = null + var/transformed = 0 + desc = "This disease transplants the genetic code of the initial vector into new hosts." + severity = MEDIUM + + +/datum/disease/dnaspread/stage_act() + ..() + if(!affected_mob.dna) + cure() + if(NOTRANSSTING in affected_mob.dna.species.specflags) //Only species that can be spread by transformation sting can be spread by the retrovirus + cure() + + if(!strain_data["dna"]) + //Absorbs the target DNA. + strain_data["dna"] = new affected_mob.dna.type + affected_mob.dna.copy_dna(strain_data["dna"]) + src.carrier = 1 + src.stage = 4 + return + + switch(stage) + if(2 || 3) //Pretend to be a cold and give time to spread. + if(prob(8)) + affected_mob.emote("sneeze") + if(prob(8)) + affected_mob.emote("cough") + if(prob(1)) + affected_mob << "Your muscles ache." + if(prob(20)) + affected_mob.take_bodypart_damage(1) + if(prob(1)) + affected_mob << "Your stomach hurts." + if(prob(20)) + affected_mob.adjustToxLoss(2) + affected_mob.updatehealth() + if(4) + if(!transformed && !carrier) + //Save original dna for when the disease is cured. + original_dna = new affected_mob.dna.type + affected_mob.dna.copy_dna(original_dna) + + affected_mob << "You don't feel like yourself.." + var/datum/dna/transform_dna = strain_data["dna"] + + transform_dna.transfer_identity(affected_mob, transfer_SE = 1) + affected_mob.real_name = affected_mob.dna.real_name + affected_mob.updateappearance(mutcolor_update=1) + affected_mob.domutcheck() + + transformed = 1 + carrier = 1 //Just chill out at stage 4 + + return + +/datum/disease/dnaspread/Destroy() + if (original_dna && transformed && affected_mob) + original_dna.transfer_identity(affected_mob, transfer_SE = 1) + affected_mob.real_name = affected_mob.dna.real_name + affected_mob.updateappearance(mutcolor_update=1) + affected_mob.domutcheck() + + affected_mob << "You feel more like yourself." + return ..() \ No newline at end of file diff --git a/code/datums/diseases/fake_gbs.dm b/code/datums/diseases/fake_gbs.dm new file mode 100644 index 0000000..ac308e9 --- /dev/null +++ b/code/datums/diseases/fake_gbs.dm @@ -0,0 +1,32 @@ +/datum/disease/fake_gbs + name = "GBS" + max_stages = 5 + spread_text = "On contact" + spread_flags = CONTACT_GENERAL + cure_text = "Synaptizine & Sulfur" + cures = list("synaptizine","sulfur") + agent = "Gravitokinetic Bipotential SADS-" + viable_mobtypes = list(/mob/living/carbon/human,/mob/living/carbon/monkey) + desc = "If left untreated death will occur." + severity = BIOHAZARD + +/datum/disease/fake_gbs/stage_act() + ..() + switch(stage) + if(2) + if(prob(1)) + affected_mob.emote("sneeze") + if(3) + if(prob(5)) + affected_mob.emote("cough") + else if(prob(5)) + affected_mob.emote("gasp") + if(prob(10)) + affected_mob << "You're starting to feel very weak..." + if(4) + if(prob(10)) + affected_mob.emote("cough") + + if(5) + if(prob(10)) + affected_mob.emote("cough") diff --git a/code/datums/diseases/flu.dm b/code/datums/diseases/flu.dm new file mode 100644 index 0000000..fa157ff --- /dev/null +++ b/code/datums/diseases/flu.dm @@ -0,0 +1,54 @@ +/datum/disease/flu + name = "The Flu" + max_stages = 3 + spread_text = "Airborne" + cure_text = "Spaceacillin" + cures = list("spaceacillin") + cure_chance = 10 + agent = "H13N1 flu virion" + viable_mobtypes = list(/mob/living/carbon/human,/mob/living/carbon/monkey) + permeability_mod = 0.75 + desc = "If left untreated the subject will feel quite unwell." + severity = MEDIUM + +/datum/disease/flu/stage_act() + ..() + switch(stage) + if(2) + if(affected_mob.lying && prob(20)) + affected_mob << "You feel better." + stage-- + return + if(prob(1)) + affected_mob.emote("sneeze") + if(prob(1)) + affected_mob.emote("cough") + if(prob(1)) + affected_mob << "Your muscles ache." + if(prob(20)) + affected_mob.take_bodypart_damage(1) + if(prob(1)) + affected_mob << "Your stomach hurts." + if(prob(20)) + affected_mob.adjustToxLoss(1) + affected_mob.updatehealth() + + if(3) + if(affected_mob.lying && prob(15)) + affected_mob << "You feel better." + stage-- + return + if(prob(1)) + affected_mob.emote("sneeze") + if(prob(1)) + affected_mob.emote("cough") + if(prob(1)) + affected_mob << "Your muscles ache." + if(prob(20)) + affected_mob.take_bodypart_damage(1) + if(prob(1)) + affected_mob << "Your stomach hurts." + if(prob(20)) + affected_mob.adjustToxLoss(1) + affected_mob.updatehealth() + return diff --git a/code/datums/diseases/fluspanish.dm b/code/datums/diseases/fluspanish.dm new file mode 100644 index 0000000..4c09ec1 --- /dev/null +++ b/code/datums/diseases/fluspanish.dm @@ -0,0 +1,36 @@ +/datum/disease/fluspanish + name = "Spanish inquisition Flu" + max_stages = 3 + spread_text = "Airborne" + cure_text = "Spaceacillin & Anti-bodies to the common flu" + cures = list("spaceacillin") + cure_chance = 10 + agent = "1nqu1s1t10n flu virion" + viable_mobtypes = list(/mob/living/carbon/human) + permeability_mod = 0.75 + desc = "If left untreated the subject will burn to death for being a heretic." + severity = DANGEROUS + +/datum/disease/fluspanish/stage_act() + ..() + switch(stage) + if(2) + affected_mob.bodytemperature += 10 + if(prob(5)) + affected_mob.emote("sneeze") + if(prob(5)) + affected_mob.emote("cough") + if(prob(1)) + affected_mob << "You're burning in your own skin!" + affected_mob.take_bodypart_damage(0,5) + + if(3) + affected_mob.bodytemperature += 20 + if(prob(5)) + affected_mob.emote("sneeze") + if(prob(5)) + affected_mob.emote("cough") + if(prob(5)) + affected_mob << "You're burning in your own skin!" + affected_mob.take_bodypart_damage(0,5) + return diff --git a/code/datums/diseases/gbs.dm b/code/datums/diseases/gbs.dm new file mode 100644 index 0000000..9dbdb82 --- /dev/null +++ b/code/datums/diseases/gbs.dm @@ -0,0 +1,41 @@ +/datum/disease/gbs + name = "GBS" + max_stages = 5 + spread_text = "On contact" + spread_flags = CONTACT_GENERAL + cure_text = "Synaptizine & Sulfur" + cures = list("synaptizine","sulfur") + cure_chance = 15//higher chance to cure, since two reagents are required + agent = "Gravitokinetic Bipotential SADS+" + viable_mobtypes = list(/mob/living/carbon/human) + disease_flags = CAN_CARRY|CAN_RESIST|CURABLE + permeability_mod = 1 + severity = BIOHAZARD + +/datum/disease/gbs/stage_act() + ..() + switch(stage) + if(2) + if(prob(45)) + affected_mob.adjustToxLoss(5) + affected_mob.updatehealth() + if(prob(1)) + affected_mob.emote("sneeze") + if(3) + if(prob(5)) + affected_mob.emote("cough") + else if(prob(5)) + affected_mob.emote("gasp") + if(prob(10)) + affected_mob << "You're starting to feel very weak..." + if(4) + if(prob(10)) + affected_mob.emote("cough") + affected_mob.adjustToxLoss(5) + affected_mob.updatehealth() + if(5) + affected_mob << "Your body feels as if it's trying to rip itself open..." + if(prob(50)) + affected_mob.gib() + else + return \ No newline at end of file diff --git a/code/datums/diseases/magnitis.dm b/code/datums/diseases/magnitis.dm new file mode 100644 index 0000000..0cec97a --- /dev/null +++ b/code/datums/diseases/magnitis.dm @@ -0,0 +1,66 @@ +/datum/disease/magnitis + name = "Magnitis" + max_stages = 4 + spread_text = "Airborne" + cure_text = "Iron" + cures = list("iron") + agent = "Fukkos Miracos" + viable_mobtypes = list(/mob/living/carbon/human) + disease_flags = CAN_CARRY|CAN_RESIST|CURABLE + permeability_mod = 0.75 + desc = "This disease disrupts the magnetic field of your body, making it act as if a powerful magnet. Injections of iron help stabilize the field." + severity = MEDIUM + +/datum/disease/magnitis/stage_act() + ..() + switch(stage) + if(2) + if(prob(2)) + affected_mob << "You feel a slight shock course through your body." + if(prob(2)) + for(var/obj/M in orange(2,affected_mob)) + if(!M.anchored && (M.flags & CONDUCT)) + step_towards(M,affected_mob) + for(var/mob/living/silicon/S in orange(2,affected_mob)) + if(isAI(S)) + continue + step_towards(S,affected_mob) + if(3) + if(prob(2)) + affected_mob << "You feel a strong shock course through your body." + if(prob(2)) + affected_mob << "You feel like clowning around." + if(prob(4)) + for(var/obj/M in orange(4,affected_mob)) + if(!M.anchored && (M.flags & CONDUCT)) + var/i + var/iter = rand(1,2) + for(i=0,iYou feel a powerful shock course through your body." + if(prob(2)) + affected_mob << "You query upon the nature of miracles." + if(prob(8)) + for(var/obj/M in orange(6,affected_mob)) + if(!M.anchored && (M.flags & CONDUCT)) + var/i + var/iter = rand(1,3) + for(i=0,i[parrot] is violently driven out of [affected_mob]!", "[parrot] bursts out of your chest!") + ..() \ No newline at end of file diff --git a/code/datums/diseases/pierrot_throat.dm b/code/datums/diseases/pierrot_throat.dm new file mode 100644 index 0000000..7d328ad --- /dev/null +++ b/code/datums/diseases/pierrot_throat.dm @@ -0,0 +1,25 @@ +/datum/disease/pierrot_throat + name = "Pierrot's Throat" + max_stages = 4 + spread_text = "Airborne" + cure_text = "Banana products, especially banana bread." + cures = list("banana") + cure_chance = 75 + agent = "H0NI<42 Virus" + viable_mobtypes = list(/mob/living/carbon/human) + permeability_mod = 0.75 + desc = "If left untreated the subject will probably drive others to insanity." + severity = MEDIUM + longevity = 400 + +/datum/disease/pierrot_throat/stage_act() + ..() + switch(stage) + if(1) + if(prob(10)) affected_mob << "You feel a little silly." + if(2) + if(prob(10)) affected_mob << "You start seeing rainbows." + if(3) + if(prob(10)) affected_mob << "Your thoughts are interrupted by a loud HONK!" + if(4) + if(prob(5)) affected_mob.say( pick( list("HONK!", "Honk!", "Honk.", "Honk?", "Honk!!", "Honk?!", "Honk...") ) ) diff --git a/code/datums/diseases/retrovirus.dm b/code/datums/diseases/retrovirus.dm new file mode 100644 index 0000000..519c9b6 --- /dev/null +++ b/code/datums/diseases/retrovirus.dm @@ -0,0 +1,83 @@ +/datum/disease/dna_retrovirus + name = "Retrovirus" + max_stages = 4 + spread_text = "Contact" + spread_flags = CONTACT_GENERAL + cure_text = "Rest or an injection of mutadone" + cure_chance = 6 + agent = "" + viable_mobtypes = list(/mob/living/carbon/human) + desc = "A DNA-altering retrovirus that scrambles the structural and unique enzymes of a host constantly." + severity = DANGEROUS + permeability_mod = 0.4 + stage_prob = 2 + var/SE + var/UI + var/restcure = 0 + + +/datum/disease/dna_retrovirus/New() + ..() + agent = "Virus class [pick("A","B","C","D","E","F")][pick("A","B","C","D","E","F")]-[rand(50,300)]" + if(prob(40)) + cures = list("mutadone") + else + restcure = 1 + + +/datum/disease/dna_retrovirus/stage_act() + ..() + switch(stage) + if(1) + if(restcure) + if(affected_mob.lying && prob(30)) + affected_mob << "You feel better." + cure() + return + if (prob(8)) + affected_mob << "Your head hurts." + if (prob(9)) + affected_mob << "You feel a tingling sensation in your chest." + if (prob(9)) + affected_mob << "You feel angry." + if(2) + if(restcure) + if(affected_mob.lying && prob(20)) + affected_mob << "You feel better." + cure() + return + if (prob(8)) + affected_mob << "Your skin feels loose." + if (prob(10)) + affected_mob << "You feel very strange." + if (prob(4)) + affected_mob << "You feel a stabbing pain in your head!" + affected_mob.Paralyse(2) + if (prob(4)) + affected_mob << "Your stomach churns." + if(3) + if(restcure) + if(affected_mob.lying && prob(20)) + affected_mob << "You feel better." + cure() + return + if (prob(10)) + affected_mob << "Your entire body vibrates." + + if (prob(35)) + if(prob(50)) + scramble_dna(affected_mob, 1, 0, rand(15,45)) + else + scramble_dna(affected_mob, 0, 1, rand(15,45)) + + if(4) + if(restcure) + if(affected_mob.lying && prob(5)) + affected_mob << "You feel better." + cure() + return + if (prob(60)) + if(prob(50)) + scramble_dna(affected_mob, 1, 0, rand(50,75)) + else + scramble_dna(affected_mob, 0, 1, rand(50,75)) \ No newline at end of file diff --git a/code/datums/diseases/rhumba_beat.dm b/code/datums/diseases/rhumba_beat.dm new file mode 100644 index 0000000..52be54c --- /dev/null +++ b/code/datums/diseases/rhumba_beat.dm @@ -0,0 +1,44 @@ +/datum/disease/rhumba_beat + name = "The Rhumba Beat" + max_stages = 5 + spread_text = "On contact" + spread_flags = CONTACT_GENERAL + cure_text = "Chick Chicky Boom!" + cures = list("plasma") + agent = "Unknown" + viable_mobtypes = list(/mob/living/carbon/human) + permeability_mod = 1 + severity = BIOHAZARD + +/datum/disease/rhumba_beat/stage_act() + ..() + if(affected_mob.ckey == "rosham") + src.cure() + return + switch(stage) + if(2) + if(prob(45)) + affected_mob.adjustToxLoss(5) + affected_mob.updatehealth() + if(prob(1)) + affected_mob << "You feel strange..." + if(3) + if(prob(5)) + affected_mob << "You feel the urge to dance..." + else if(prob(5)) + affected_mob.emote("gasp") + else if(prob(10)) + affected_mob << "You feel the need to chick chicky boom..." + if(4) + if(prob(10)) + affected_mob.emote("gasp") + affected_mob << "You feel a burning beat inside..." + if(prob(20)) + affected_mob.adjustToxLoss(5) + affected_mob.updatehealth() + if(5) + affected_mob << "Your body is unable to contain the Rhumba Beat..." + if(prob(50)) + affected_mob.gib() + else + return diff --git a/code/datums/diseases/transformation.dm b/code/datums/diseases/transformation.dm new file mode 100644 index 0000000..f09f933 --- /dev/null +++ b/code/datums/diseases/transformation.dm @@ -0,0 +1,239 @@ +/datum/disease/transformation + name = "Transformation" + max_stages = 5 + spread_text = "Acute" + spread_flags = SPECIAL + cure_text = "A coder's love (theoretical)." + agent = "Shenanigans" + viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey, /mob/living/carbon/alien) + severity = HARMFUL + stage_prob = 10 + visibility_flags = HIDDEN_SCANNER|HIDDEN_PANDEMIC + disease_flags = CURABLE + var/list/stage1 = list("You feel unremarkable.") + var/list/stage2 = list("You feel boring.") + var/list/stage3 = list("You feel utterly plain.") + var/list/stage4 = list("You feel white bread.") + var/list/stage5 = list("Oh the humanity!") + var/new_form = /mob/living/carbon/human + +/datum/disease/transformation/stage_act() + ..() + switch(stage) + if(1) + if (prob(stage_prob) && stage1) + affected_mob << pick(stage1) + if(2) + if (prob(stage_prob) && stage2) + affected_mob << pick(stage2) + if(3) + if (prob(stage_prob*2) && stage3) + affected_mob << pick(stage3) + if(4) + if (prob(stage_prob*2) && stage4) + affected_mob << pick(stage4) + if(5) + do_disease_transformation(affected_mob) + +/datum/disease/transformation/proc/do_disease_transformation(mob/living/affected_mob) + if(istype(affected_mob, /mob/living/carbon) && affected_mob.stat != DEAD) + if(stage5) + affected_mob << pick(stage5) + if(jobban_isbanned(affected_mob, new_form)) + affected_mob.death(1) + return + if(affected_mob.notransform) + return + affected_mob.notransform = 1 + for(var/obj/item/W in affected_mob.get_equipped_items()) + affected_mob.unEquip(W) + for(var/obj/item/I in affected_mob.held_items) + affected_mob.unEquip(I) + var/mob/living/new_mob = new new_form(affected_mob.loc) + if(istype(new_mob)) + new_mob.a_intent = "harm" + if(affected_mob.mind) + affected_mob.mind.transfer_to(new_mob) + else + new_mob.key = affected_mob.key + qdel(affected_mob) + + + +/datum/disease/transformation/jungle_fever + name = "Jungle Fever" + cure_text = "Bananas" + cures = list("banana") + spread_text = "Monkey Bites" + spread_flags = SPECIAL + viable_mobtypes = list(/mob/living/carbon/monkey, /mob/living/carbon/human) + permeability_mod = 1 + cure_chance = 1 + disease_flags = CAN_CARRY|CAN_RESIST + longevity = 30 + desc = "Monkeys with this disease will bite humans, causing humans to mutate into a monkey." + severity = BIOHAZARD + stage_prob = 4 + visibility_flags = 0 + agent = "Kongey Vibrion M-909" + new_form = /mob/living/carbon/monkey + + stage1 = null + stage2 = null + stage3 = null + stage4 = list("Your back hurts.", "You breathe through your mouth.", + "You have a craving for bananas.", "Your mind feels clouded.") + stage5 = list("You feel like monkeying around.") + +/datum/disease/transformation/jungle_fever/do_disease_transformation(mob/living/carbon/affected_mob) + if(!ismonkey(affected_mob)) + ticker.mode.add_monkey(affected_mob.mind) + affected_mob.monkeyize(TR_KEEPITEMS | TR_KEEPIMPLANTS | TR_KEEPORGANS | TR_KEEPDAMAGE | TR_KEEPVIRUS | TR_KEEPSE) + +/datum/disease/transformation/jungle_fever/stage_act() + ..() + switch(stage) + if(2) + if(prob(2)) + affected_mob << "Your [pick("back", "arm", "leg", "elbow", "head")] itches." + if(3) + if(prob(4)) + affected_mob << "You feel a stabbing pain in your head." + affected_mob.confused += 10 + if(4) + if(prob(3)) + affected_mob.say(pick("Eeek, ook ook!", "Eee-eeek!", "Eeee!", "Ungh, ungh.")) + +/datum/disease/transformation/jungle_fever/cure() + ticker.mode.remove_monkey(affected_mob.mind) + ..() + + +/datum/disease/transformation/robot + + name = "Robotic Transformation" + cure_text = "An injection of copper." + cures = list("copper") + cure_chance = 5 + agent = "R2D2 Nanomachines" + desc = "This disease, actually acute nanomachine infection, converts the victim into a cyborg." + severity = DANGEROUS + visibility_flags = 0 + stage1 = null + stage2 = list("Your joints feel stiff.", "Beep...boop..") + stage3 = list("Your joints feel very stiff.", "Your skin feels loose.", "You can feel something move...inside.") + stage4 = list("Your skin feels very loose.", "You can feel... something...inside you.") + stage5 = list("Your skin feels as if it's about to burst off!") + new_form = /mob/living/silicon/robot + + +/datum/disease/transformation/robot/stage_act() + ..() + switch(stage) + if(3) + if (prob(8)) + affected_mob.say(pick("Beep, boop", "beep, beep!", "Boop...bop")) + if (prob(4)) + affected_mob << "You feel a stabbing pain in your head." + affected_mob.Paralyse(2) + if(4) + if (prob(20)) + affected_mob.say(pick("beep, beep!", "Boop bop boop beep.", "kkkiiiill mmme", "I wwwaaannntt tttoo dddiiieeee...")) + + +/datum/disease/transformation/xeno + + name = "Xenomorph Transformation" + cure_text = "Spaceacillin & Glycerol" + cures = list("spaceacillin", "glycerol") + cure_chance = 5 + agent = "Rip-LEY Alien Microbes" + desc = "This disease changes the victim into a xenomorph." + severity = BIOHAZARD + visibility_flags = 0 + stage1 = null + stage2 = list("Your throat feels scratchy.", "Kill...") + stage3 = list("Your throat feels very scratchy.", "Your skin feels tight.", "You can feel something move...inside.") + stage4 = list("Your skin feels very tight.", "Your blood boils!", "You can feel... something...inside you.") + stage5 = list("Your skin feels as if it's about to burst off!") + new_form = /mob/living/carbon/alien/humanoid/hunter + +/datum/disease/transformation/xeno/stage_act() + ..() + switch(stage) + if(3) + if (prob(4)) + affected_mob << "You feel a stabbing pain in your head." + affected_mob.Paralyse(2) + if(4) + if (prob(20)) + affected_mob.say(pick("You look delicious.", "Going to... devour you...", "Hsssshhhhh!")) + + +/datum/disease/transformation/slime + name = "Advanced Mutation Transformation" + cure_text = "frost oil" + cures = list("frostoil") + cure_chance = 80 + agent = "Advanced Mutation Toxin" + desc = "This highly concentrated extract converts anything into more of itself." + severity = BIOHAZARD + visibility_flags = 0 + stage1 = list("You don't feel very well.") + stage2 = list("Your skin feels a little slimy.") + stage3 = list("Your appendages are melting away.", "Your limbs begin to lose their shape.") + stage4 = list("You are turning into a slime.") + stage5 = list("You have become a slime.") + new_form = /mob/living/simple_animal/slime + +/datum/disease/transformation/slime/stage_act() + ..() + switch(stage) + if(1) + if(ishuman(affected_mob) && affected_mob.dna && affected_mob.dna.species.id == "slime") + stage = 5 + if(3) + if(ishuman(affected_mob)) + var/mob/living/carbon/human/human = affected_mob + if(human.dna.species.id != "slime") + human.set_species(/datum/species/jelly/slime) + +/datum/disease/transformation/corgi + name = "The Barkening" + cure_text = "Death" + cures = list("adminordrazine") + agent = "Fell Doge Majicks" + desc = "This disease transforms the victim into a corgi." + visibility_flags = 0 + stage1 = list("BARK.") + stage2 = list("You feel the need to wear silly hats.") + stage3 = list("Must... eat... chocolate....", "YAP") + stage4 = list("Visions of washing machines assail your mind!") + stage5 = list("AUUUUUU!!!") + new_form = /mob/living/simple_animal/pet/dog/corgi + +/datum/disease/transformation/corgi/stage_act() + ..() + switch(stage) + if(3) + if (prob(8)) + affected_mob.say(pick("YAP", "Woof!")) + if(4) + if (prob(20)) + affected_mob.say(pick("Bark!", "AUUUUUU")) + +/datum/disease/transformation/morph + name = "Gluttony's Blessing" + cure_text = "nothing" + cures = list("adminordrazine") + agent = "Gluttony's Blessing" + desc = "A 'gift' from somewhere terrible." + stage_prob = 20 + severity = BIOHAZARD + visibility_flags = 0 + stage1 = list("Your stomach rumbles.") + stage2 = list("Your skin feels saggy.") + stage3 = list("Your appendages are melting away.", "Your limbs begin to lose their shape.") + stage4 = list("You're ravenous.") + stage5 = list("You have become a morph.") + new_form = /mob/living/simple_animal/hostile/morph \ No newline at end of file diff --git a/code/datums/diseases/tuberculosis.dm b/code/datums/diseases/tuberculosis.dm new file mode 100644 index 0000000..b2d4fb9 --- /dev/null +++ b/code/datums/diseases/tuberculosis.dm @@ -0,0 +1,58 @@ +/datum/disease/tuberculosis + name = "Fungal tuberculosis" + max_stages = 5 + spread_text = "Airborne" + cure_text = "Spaceacillin & salbutamol" + cures = list("spaceacillin", "salbutamol") + agent = "Fungal Tubercle bacillus Cosmosis" + viable_mobtypes = list(/mob/living/carbon/human) + cure_chance = 5//like hell are you getting out of hell + desc = "A rare highly transmittable virulent virus. Few samples exist, rumoured to be carefully grown and cultured by clandestine bio-weapon specialists. Causes fever, blood vomiting, lung damage, weight loss, and fatigue." + required_organs = list(/obj/item/bodypart/head) + severity = DANGEROUS + +/datum/disease/tuberculosis/stage_act() //it begins + ..() + switch(stage) + if(2) + if(prob(2)) + affected_mob.emote("cough") + affected_mob << "Your chest hurts." + if(prob(2)) + affected_mob << "Your stomach violently rumbles!" + if(prob(5)) + affected_mob << "You feel a cold sweat form." + if(4) + if(prob(2)) + affected_mob << "You see four of everything" + affected_mob.Dizzy(5) + if(prob(2)) + affected_mob << "You feel a sharp pain from your lower chest!" + affected_mob.adjustOxyLoss(5) + affected_mob.emote("gasp") + if(prob(10)) + affected_mob << "You feel air escape from your lungs painfully." + affected_mob.adjustOxyLoss(25) + affected_mob.emote("gasp") + if(5) + if(prob(2)) + affected_mob << "[pick("You feel your heart slowing...", "You relax and slow your heartbeat.")]" + affected_mob.adjustStaminaLoss(70) + if(prob(10)) + affected_mob.adjustStaminaLoss(100) + affected_mob.visible_message("[affected_mob] faints!", "You surrender yourself and feel at peace...") + affected_mob.AdjustSleeping(5) + if(prob(2)) + affected_mob << "You feel your mind relax and your thoughts drift!" + affected_mob.confused = min(100, affected_mob.confused + 8) + if(prob(10)) + affected_mob.vomit(20) + if(prob(3)) + affected_mob << "[pick("Your stomach silently rumbles...", "Your stomach seizes up and falls limp, muscles dead and lifeless.", "You could eat a crayon")]" + affected_mob.overeatduration = max(affected_mob.overeatduration - 100, 0) + affected_mob.nutrition = max(affected_mob.nutrition - 100, 0) + if(prob(15)) + affected_mob << "[pick("You feel uncomfortably hot...", "You feel like unzipping your jumpsuit", "You feel like taking off some clothes...")]" + affected_mob.bodytemperature += 40 + return + diff --git a/code/datums/diseases/wizarditis.dm b/code/datums/diseases/wizarditis.dm new file mode 100644 index 0000000..40d8966 --- /dev/null +++ b/code/datums/diseases/wizarditis.dm @@ -0,0 +1,115 @@ +/datum/disease/wizarditis + name = "Wizarditis" + max_stages = 4 + spread_text = "Airborne" + cure_text = "The Manly Dorf" + cures = list("manlydorf") + cure_chance = 100 + agent = "Rincewindus Vulgaris" + viable_mobtypes = list(/mob/living/carbon/human) + disease_flags = CAN_CARRY|CAN_RESIST|CURABLE + permeability_mod = 0.75 + desc = "Some speculate, that this virus is the cause of Wizard Federation existance. Subjects affected show the signs of mental retardation, yelling obscure sentences or total gibberish. On late stages subjects sometime express the feelings of inner power, and, cite, 'the ability to control the forces of cosmos themselves!' A gulp of strong, manly spirits usually reverts them to normal, humanlike, condition." + severity = HARMFUL + required_organs = list(/obj/item/bodypart/head) + +/* +BIRUZ BENNAR +SCYAR NILA - teleport +NEC CANTIO - dis techno +EI NATH - shocking grasp +AULIE OXIN FIERA - knock +TARCOL MINTI ZHERI - forcewall +STI KALY - blind +*/ + +/datum/disease/wizarditis/stage_act() + ..() + + switch(stage) + if(2) + if(prob(1)&&prob(50)) + affected_mob.say(pick("You shall not pass!", "Expeliarmus!", "By Merlins beard!", "Feel the power of the Dark Side!")) + if(prob(1)&&prob(50)) + affected_mob << "You feel [pick("that you don't have enough mana", "that the winds of magic are gone", "an urge to summon familiar")]." + + + if(3) + if(prob(1)&&prob(50)) + affected_mob.say(pick("NEC CANTIO!","AULIE OXIN FIERA!", "STI KALY!", "TARCOL MINTI ZHERI!")) + if(prob(1)&&prob(50)) + affected_mob << "You feel [pick("the magic bubbling in your veins","that this location gives you a +1 to INT","an urge to summon familiar")]." + + if(4) + + if(prob(1)) + affected_mob.say(pick("NEC CANTIO!","AULIE OXIN FIERA!","STI KALY!","EI NATH!")) + return + if(prob(1)&&prob(50)) + affected_mob << "You feel [pick("the tidal wave of raw power building inside","that this location gives you a +2 to INT and +1 to WIS","an urge to teleport")]." + spawn_wizard_clothes(50) + if(prob(1)&&prob(1)) + teleport() + return + + + +/datum/disease/wizarditis/proc/spawn_wizard_clothes(chance = 0) + if(ishuman(affected_mob)) + var/mob/living/carbon/human/H = affected_mob + if(prob(chance)) + if(!istype(H.head, /obj/item/clothing/head/wizard)) + if(!H.unEquip(H.head)) + qdel(H.head) + H.equip_to_slot_or_del(new /obj/item/clothing/head/wizard(H), slot_head) + return + if(prob(chance)) + if(!istype(H.wear_suit, /obj/item/clothing/suit/wizrobe)) + if(!H.unEquip(H.wear_suit)) + qdel(H.wear_suit) + H.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe(H), slot_wear_suit) + return + if(prob(chance)) + if(!istype(H.shoes, /obj/item/clothing/shoes/sandal)) + if(!H.unEquip(H.shoes)) + qdel(H.shoes) + H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(H), slot_shoes) + return + else + var/mob/living/carbon/H = affected_mob + if(prob(chance)) + var/obj/item/weapon/staff/S = new(H) + if(!H.put_in_hands(S)) + qdel(S) + + +/datum/disease/wizarditis/proc/teleport() + var/list/theareas = get_areas_in_range(80, affected_mob) + for(var/area/space/S in theareas) + theareas -= S + + if(!theareas||!theareas.len) + return + + var/area/thearea = pick(theareas) + + var/list/L = list() + for(var/turf/T in get_area_turfs(thearea.type)) + if(T.z != affected_mob.z) continue + if(T.name == "space") continue + if(!T.density) + var/clear = 1 + for(var/obj/O in T) + if(O.density) + clear = 0 + break + if(clear) + L+=T + + if(!L) + return + + affected_mob.say("SCYAR NILA [uppertext(thearea.name)]!") + affected_mob.loc = pick(L) + + return diff --git a/code/datums/dna.dm b/code/datums/dna.dm new file mode 100644 index 0000000..7972557 --- /dev/null +++ b/code/datums/dna.dm @@ -0,0 +1,392 @@ + +/////////////////////////// DNA DATUM +/datum/dna + var/unique_enzymes + var/struc_enzymes + var/uni_identity + var/blood_type + var/datum/species/species = new /datum/species/human() //The type of mutant race the player is if applicable (i.e. potato-man) + var/list/features = list("FFF") //first value is mutant color + var/real_name //Stores the real name of the person who originally got this dna datum. Used primarely for changelings, + var/list/mutations = list() //All mutations are from now on here + var/list/temporary_mutations = list() //Timers for temporary mutations + var/list/previous = list() //For temporary name/ui/ue/blood_type modifications + var/mob/living/holder + +/datum/dna/New(mob/living/new_holder) + if(new_holder) + holder = new_holder + +/datum/dna/proc/transfer_identity(mob/living/carbon/destination, transfer_SE = 0) + if(!istype(destination)) + return + destination.dna.unique_enzymes = unique_enzymes + destination.dna.uni_identity = uni_identity + destination.dna.blood_type = blood_type + destination.set_species(species.type, icon_update=0) + destination.dna.features = features.Copy() + destination.dna.real_name = real_name + destination.dna.temporary_mutations = temporary_mutations.Copy() + if(transfer_SE) + destination.dna.struc_enzymes = struc_enzymes + +/datum/dna/proc/copy_dna(datum/dna/new_dna) + new_dna.unique_enzymes = unique_enzymes + new_dna.struc_enzymes = struc_enzymes + new_dna.uni_identity = uni_identity + new_dna.blood_type = blood_type + new_dna.features = features.Copy() + new_dna.species = new species.type + new_dna.real_name = real_name + new_dna.mutations = mutations.Copy() + +/datum/dna/proc/add_mutation(mutation_name) + var/datum/mutation/human/HM = mutations_list[mutation_name] + HM.on_acquiring(holder) + +/datum/dna/proc/remove_mutation(mutation_name) + var/datum/mutation/human/HM = mutations_list[mutation_name] + HM.on_losing(holder) + +/datum/dna/proc/check_mutation(mutation_name) + var/datum/mutation/human/HM = mutations_list[mutation_name] + return mutations.Find(HM) + +/datum/dna/proc/remove_all_mutations() + remove_mutation_group(mutations) + +/datum/dna/proc/remove_mutation_group(list/group) + if(!group) + return + for(var/datum/mutation/human/HM in group) + HM.force_lose(holder) + +/datum/dna/proc/generate_uni_identity() + . = "" + var/list/L = new /list(DNA_UNI_IDENTITY_BLOCKS) + + L[DNA_GENDER_BLOCK] = construct_block((holder.gender!=MALE)+1, 2) + if(ishuman(holder)) + var/mob/living/carbon/human/H = holder + if(!hair_styles_list.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/hair, hair_styles_list, hair_styles_male_list, hair_styles_female_list) + L[DNA_HAIR_STYLE_BLOCK] = construct_block(hair_styles_list.Find(H.hair_style), hair_styles_list.len) + L[DNA_HAIR_COLOR_BLOCK] = sanitize_hexcolor(H.hair_color) + if(!facial_hair_styles_list.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/facial_hair, facial_hair_styles_list, facial_hair_styles_male_list, facial_hair_styles_female_list) + L[DNA_FACIAL_HAIR_STYLE_BLOCK] = construct_block(facial_hair_styles_list.Find(H.facial_hair_style), facial_hair_styles_list.len) + L[DNA_FACIAL_HAIR_COLOR_BLOCK] = sanitize_hexcolor(H.facial_hair_color) + L[DNA_SKIN_TONE_BLOCK] = construct_block(skin_tones.Find(H.skin_tone), skin_tones.len) + L[DNA_EYE_COLOR_BLOCK] = sanitize_hexcolor(H.eye_color) + + for(var/i=1, i<=DNA_UNI_IDENTITY_BLOCKS, i++) + if(L[i]) + . += L[i] + else + . += random_string(DNA_BLOCK_SIZE,hex_characters) + return . + +/datum/dna/proc/generate_struc_enzymes() + var/list/sorting = new /list(DNA_STRUC_ENZYMES_BLOCKS) + var/result = "" + for(var/datum/mutation/human/A in good_mutations + bad_mutations + not_good_mutations) + if(A.name == RACEMUT && ismonkey(holder)) + sorting[A.dna_block] = num2hex(A.lowest_value + rand(0, 256 * 6), DNA_BLOCK_SIZE) + mutations |= A + else + sorting[A.dna_block] = random_string(DNA_BLOCK_SIZE, list("0","1","2","3","4","5","6")) + + for(var/B in sorting) + result += B + return result + +/datum/dna/proc/generate_unique_enzymes() + . = "" + if(istype(holder)) + real_name = holder.real_name + . += md5(holder.real_name) + else + . += random_string(DNA_UNIQUE_ENZYMES_LEN, hex_characters) + return . + +/datum/dna/proc/update_ui_block(blocknumber) + if(!blocknumber || !ishuman(holder)) + return + var/mob/living/carbon/human/H = holder + switch(blocknumber) + if(DNA_HAIR_COLOR_BLOCK) + setblock(uni_identity, blocknumber, sanitize_hexcolor(H.hair_color)) + if(DNA_FACIAL_HAIR_COLOR_BLOCK) + setblock(uni_identity, blocknumber, sanitize_hexcolor(H.facial_hair_color)) + if(DNA_SKIN_TONE_BLOCK) + setblock(uni_identity, blocknumber, construct_block(skin_tones.Find(H.skin_tone), skin_tones.len)) + if(DNA_EYE_COLOR_BLOCK) + setblock(uni_identity, blocknumber, sanitize_hexcolor(H.eye_color)) + if(DNA_GENDER_BLOCK) + setblock(uni_identity, blocknumber, construct_block((H.gender!=MALE)+1, 2)) + if(DNA_FACIAL_HAIR_STYLE_BLOCK) + setblock(uni_identity, blocknumber, construct_block(facial_hair_styles_list.Find(H.facial_hair_style), facial_hair_styles_list.len)) + if(DNA_HAIR_STYLE_BLOCK) + setblock(uni_identity, blocknumber, construct_block(hair_styles_list.Find(H.hair_style), hair_styles_list.len)) + +/datum/dna/proc/mutations_say_mods(message) + if(message) + for(var/datum/mutation/human/M in mutations) + message = M.say_mod(message) + return message + +/datum/dna/proc/mutations_get_spans() + var/list/spans = list() + for(var/datum/mutation/human/M in mutations) + spans |= M.get_spans() + return spans + +/datum/dna/proc/species_get_spans() + var/list/spans = list() + if(species) + spans |= species.get_spans() + return spans + + +/datum/dna/proc/is_same_as(datum/dna/D) + if(uni_identity == D.uni_identity && struc_enzymes == D.struc_enzymes && real_name == D.real_name) + if(species.type == D.species.type && features == D.features && blood_type == D.blood_type) + return 1 + return 0 + +//used to update dna UI, UE, and dna.real_name. +/datum/dna/proc/update_dna_identity() + uni_identity = generate_uni_identity() + unique_enzymes = generate_unique_enzymes() + +/datum/dna/proc/initialize_dna(newblood_type) + if(newblood_type) + blood_type = newblood_type + unique_enzymes = generate_unique_enzymes() + uni_identity = generate_uni_identity() + struc_enzymes = generate_struc_enzymes() + features = random_features() + + +/datum/dna/stored //subtype used by brain mob's stored_dna + +/datum/dna/stored/add_mutation(mutation_name) //no mutation changes on stored dna. + return + +/datum/dna/stored/remove_mutation(mutation_name) + return + +/datum/dna/stored/check_mutation(mutation_name) + return + +/datum/dna/stored/remove_all_mutations() + return + +/datum/dna/stored/remove_mutation_group(list/group) + return + +/////////////////////////// DNA MOB-PROCS ////////////////////// + +/mob/proc/set_species(datum/species/mrace, icon_update = 1) + return + +/mob/living/brain/set_species(datum/species/mrace, icon_update = 1) + if(mrace) + if(ispath(mrace)) + stored_dna.species = new mrace() + else + stored_dna.species = mrace //not calling any species update procs since we're a brain, not a monkey/human + + +/mob/living/carbon/set_species(datum/species/mrace, icon_update = 1) + if(mrace && has_dna()) + dna.species.on_species_loss(src) + var/old_species = dna.species + if(ispath(mrace)) + dna.species = new mrace() + else + dna.species = mrace + dna.species.on_species_gain(src, old_species) + +/mob/living/carbon/human/set_species(datum/species/mrace, icon_update = 1) + ..() + if(icon_update) + update_body() + update_hair() + update_body_parts() + update_mutations_overlay()// no lizard with human hulk overlay please. + + +/mob/proc/has_dna() + return + +/mob/living/carbon/has_dna() + return dna + + +/mob/living/carbon/human/proc/hardset_dna(ui, se, newreal_name, newblood_type, datum/species/mrace, newfeatures) + + if(newfeatures) + dna.features = newfeatures + + if(mrace) + set_species(mrace, icon_update=0) + + if(newreal_name) + real_name = newreal_name + dna.generate_unique_enzymes() + + if(newblood_type) + dna.blood_type = newblood_type + + if(ui) + dna.uni_identity = ui + updateappearance(icon_update=0) + + if(se) + dna.struc_enzymes = se + domutcheck() + + if(mrace || newfeatures || ui) + update_body() + update_hair() + update_body_parts() + update_mutations_overlay() + + +/mob/living/carbon/proc/create_dna() + dna = new /datum/dna(src) + if(!dna.species) + var/rando_race = pick(config.roundstart_races) + dna.species = new rando_race() + +//proc used to update the mob's appearance after its dna UI has been changed +/mob/living/carbon/proc/updateappearance(icon_update=1, mutcolor_update=0, mutations_overlay_update=0) + if(!has_dna()) + return + gender = (deconstruct_block(getblock(dna.uni_identity, DNA_GENDER_BLOCK), 2)-1) ? FEMALE : MALE + +mob/living/carbon/human/updateappearance(icon_update=1, mutcolor_update=0, mutations_overlay_update=0) + ..() + var/structure = dna.uni_identity + hair_color = sanitize_hexcolor(getblock(structure, DNA_HAIR_COLOR_BLOCK)) + facial_hair_color = sanitize_hexcolor(getblock(structure, DNA_FACIAL_HAIR_COLOR_BLOCK)) + skin_tone = skin_tones[deconstruct_block(getblock(structure, DNA_SKIN_TONE_BLOCK), skin_tones.len)] + eye_color = sanitize_hexcolor(getblock(structure, DNA_EYE_COLOR_BLOCK)) + facial_hair_style = facial_hair_styles_list[deconstruct_block(getblock(structure, DNA_FACIAL_HAIR_STYLE_BLOCK), facial_hair_styles_list.len)] + hair_style = hair_styles_list[deconstruct_block(getblock(structure, DNA_HAIR_STYLE_BLOCK), hair_styles_list.len)] + if(icon_update) + update_body() + update_hair() + if(mutcolor_update) + update_body_parts() + if(mutations_overlay_update) + update_mutations_overlay() + + +/mob/proc/domutcheck() + return + +/mob/living/carbon/domutcheck(force_powers=0) //Set force_powers to 1 to bypass the power chance + if(!has_dna()) + return + + for(var/datum/mutation/human/A in good_mutations | bad_mutations | not_good_mutations) + if(ismob(A.check_block(src, force_powers))) + return //we got monkeyized/humanized, this mob will be deleted, no need to continue. + + update_mutations_overlay() + + + +/////////////////////////// DNA HELPER-PROCS ////////////////////////////// +/proc/getleftblocks(input,blocknumber,blocksize) + if(blocknumber > 1) + return copytext(input,1,((blocksize*blocknumber)-(blocksize-1))) + +/proc/getrightblocks(input,blocknumber,blocksize) + if(blocknumber < (length(input)/blocksize)) + return copytext(input,blocksize*blocknumber+1,length(input)+1) + +/proc/getblock(input, blocknumber, blocksize=DNA_BLOCK_SIZE) + return copytext(input, blocksize*(blocknumber-1)+1, (blocksize*blocknumber)+1) + +/proc/setblock(istring, blocknumber, replacement, blocksize=DNA_BLOCK_SIZE) + if(!istring || !blocknumber || !replacement || !blocksize) + return 0 + return getleftblocks(istring, blocknumber, blocksize) + replacement + getrightblocks(istring, blocknumber, blocksize) + +/mob/living/carbon/proc/randmut(list/candidates, difficulty = 2) + if(!has_dna()) + return + var/datum/mutation/human/num = pick(candidates) + . = num.force_give(src) + +/mob/living/carbon/proc/randmutb() + if(!has_dna()) + return + var/datum/mutation/human/HM = pick((bad_mutations | not_good_mutations) - mutations_list[RACEMUT]) + . = HM.force_give(src) + +/mob/living/carbon/proc/randmutg() + if(!has_dna()) + return + var/datum/mutation/human/HM = pick(good_mutations) + . = HM.force_give(src) + +/mob/living/carbon/proc/randmutvg() + if(!has_dna()) + return + var/datum/mutation/human/HM = pick((good_mutations) - mutations_list[HULK] - mutations_list[DWARFISM]) + . = HM.force_give(src) + +/mob/living/carbon/proc/randmuti() + if(!has_dna()) + return + var/num = rand(1, DNA_UNI_IDENTITY_BLOCKS) + var/newdna = setblock(dna.uni_identity, num, random_string(DNA_BLOCK_SIZE, hex_characters)) + dna.uni_identity = newdna + updateappearance(mutations_overlay_update=1) + +/mob/living/carbon/proc/clean_dna() + if(!has_dna()) + return + dna.remove_all_mutations() + +/mob/living/carbon/proc/clean_randmut(list/candidates, difficulty = 2) + clean_dna() + randmut(candidates, difficulty) + +/proc/scramble_dna(mob/living/carbon/M, ui=FALSE, se=FALSE, probability) + if(!M.has_dna()) + return 0 + if(se) + for(var/i=1, i<=DNA_STRUC_ENZYMES_BLOCKS, i++) + if(prob(probability)) + M.dna.struc_enzymes = setblock(M.dna.struc_enzymes, i, random_string(DNA_BLOCK_SIZE, hex_characters)) + M.domutcheck() + if(ui) + for(var/i=1, i<=DNA_UNI_IDENTITY_BLOCKS, i++) + if(prob(probability)) + M.dna.uni_identity = setblock(M.dna.uni_identity, i, random_string(DNA_BLOCK_SIZE, hex_characters)) + M.updateappearance(mutations_overlay_update=1) + return 1 + +//value in range 1 to values. values must be greater than 0 +//all arguments assumed to be positive integers +/proc/construct_block(value, values, blocksize=DNA_BLOCK_SIZE) + var/width = round((16**blocksize)/values) + if(value < 1) + value = 1 + value = (value * width) - rand(1,width) + return num2hex(value, blocksize) + +//value is hex +/proc/deconstruct_block(value, values, blocksize=DNA_BLOCK_SIZE) + var/width = round((16**blocksize)/values) + value = round(hex2num(value) / width) + 1 + if(value > values) + value = values + return value + +/////////////////////////// DNA HELPER-PROCS diff --git a/code/datums/dog_fashion.dm b/code/datums/dog_fashion.dm new file mode 100644 index 0000000..75c8379 --- /dev/null +++ b/code/datums/dog_fashion.dm @@ -0,0 +1,176 @@ +/datum/dog_fashion + var/name + var/desc + var/emote_see + var/emote_hear + var/speak + var/speak_emote + + // This isn't applied to the dog, but stores the icon_state of the + // sprite that the associated item uses + var/icon_file + var/obj_icon_state + var/obj_alpha + var/obj_color + +/datum/dog_fashion/New(mob/M) + name = replacetext(name, "REAL_NAME", M.real_name) + desc = replacetext(desc, "NAME", name) + +/datum/dog_fashion/proc/apply(mob/living/simple_animal/pet/dog/D) + if(name) + D.name = name + if(desc) + D.desc = desc + if(emote_see) + D.emote_see = emote_see + if(emote_hear) + D.emote_hear = emote_hear + if(speak) + D.speak = speak + if(speak_emote) + D.speak_emote = speak_emote + +/datum/dog_fashion/proc/get_image(var/dir) + if(icon_file && obj_icon_state) + var/image/corgI = image(icon_file, icon_state = obj_icon_state, dir = dir) + corgI.alpha = obj_alpha + corgI.color = obj_color + return corgI + + +/datum/dog_fashion/head + icon_file = 'icons/mob/corgi_head.dmi' + +/datum/dog_fashion/back + icon_file = 'icons/mob/corgi_back.dmi' + +/datum/dog_fashion/head/helmet + name = "Sergeant REAL_NAME" + desc = "The ever-loyal, the ever-vigilant." + +/datum/dog_fashion/head/chef + name = "Sous chef REAL_NAME" + desc = "Your food will be taste-tested. All of it." + + +/datum/dog_fashion/head/captain + name = "Captain REAL_NAME" + desc = "Probably better than the last captain." + +/datum/dog_fashion/head/kitty + name = "Runtime" + emote_see = list("coughs up a furball", "stretches") + emote_hear = list("purrs") + speak = list("Purrr", "Meow!", "MAOOOOOW!", "HISSSSS", "MEEEEEEW") + desc = "It's a cute little kitty-cat! ... wait ... what the hell?" + +/datum/dog_fashion/head/rabbit + name = "Hoppy" + emote_see = list("twitches its nose", "hops around a bit") + desc = "This is Hoppy. It's a corgi-...urmm... bunny rabbit." + +/datum/dog_fashion/head/beret + name = "Yann" + desc = "Mon dieu! C'est un chien!" + speak = list("le woof!", "le bark!", "JAPPE!!") + emote_see = list("cowers in fear.", "surrenders.", "plays dead.","looks as though there is a wall in front of him.") + + +/datum/dog_fashion/head/detective + name = "Detective REAL_NAME" + desc = "NAME sees through your lies..." + emote_see = list("investigates the area.","sniffs around for clues.","searches for scooby snacks.","takes a candycorn from the hat.") + + +/datum/dog_fashion/head/nurse + name = "Nurse REAL_NAME" + desc = "NAME needs 100cc of beef jerky... STAT!" + +/datum/dog_fashion/head/pirate + name = "Pirate-title Pirate-name" + desc = "Yaarghh!! Thar' be a scurvy dog!" + emote_see = list("hunts for treasure.","stares coldly...","gnashes his tiny corgi teeth!") + emote_hear = list("growls ferociously!", "snarls.") + speak = list("Arrrrgh!!","Grrrrrr!") + +/datum/dog_fashion/head/pirate/New(mob/M) + ..() + name = "[pick("Ol'","Scurvy","Black","Rum","Gammy","Bloody","Gangrene","Death","Long-John")] [pick("kibble","leg","beard","tooth","poop-deck","Threepwood","Le Chuck","corsair","Silver","Crusoe")]" + +/datum/dog_fashion/head/ushanka + name = "Communist-title Realname" + desc = "A follower of Karl Barx." + emote_see = list("contemplates the failings of the capitalist economic model.", "ponders the pros and cons of vanguardism.") + +/datum/dog_fashion/head/ushanka/New(mob/M) + ..() + name = "[pick("Comrade","Commissar","Glorious Leader")] [M.real_name]" + +/datum/dog_fashion/head/warden + name = "Officer REAL_NAME" + emote_see = list("drools.","looks for donuts.") + desc = "Stop right there criminal scum!" + +/datum/dog_fashion/head/blue_wizard + name = "Grandwizard REAL_NAME" + speak = list("YAP", "Woof!", "Bark!", "AUUUUUU", "EI NATH!") + +/datum/dog_fashion/head/red_wizard + name = "Pyromancer REAL_NAME" + speak = list("YAP", "Woof!", "Bark!", "AUUUUUU", "ONI SOMA!") + +/datum/dog_fashion/head/cardborg + name = "Borgi" + speak = list("Ping!","Beep!","Woof!") + emote_see = list("goes rogue.", "sniffs out non-humans.") + desc = "Result of robotics budget cuts." + +/datum/dog_fashion/head/ghost + name = "\improper Ghost" + speak = list("WoooOOOooo~","AUUUUUUUUUUUUUUUUUU") + emote_see = list("stumbles around.", "shivers.") + emote_hear = list("howls!","groans.") + desc = "Spooky!" + obj_icon_state = "sheet" + +/datum/dog_fashion/head/santa + name = "Santa's Corgi Helper" + emote_hear = list("barks Christmas songs.", "yaps merrily!") + emote_see = list("looks for presents.", "checks his list.") + desc = "He's very fond of milk and cookies." + +/datum/dog_fashion/head/cargo_tech + name = "Corgi Tech REAL_NAME" + desc = "The reason your yellow gloves have chew-marks." + +/datum/dog_fashion/head/reindeer + name = "REAL_NAME the red-nosed Corgi" + emote_hear = list("lights the way!", "illuminates.", "yaps!") + desc = "He has a very shiny nose." + +/datum/dog_fashion/head/sombrero + name = "Segnor REAL_NAME" + desc = "You must respect Elder Dogname" + +/datum/dog_fashion/head/sombrero/New(mob/M) + ..() + desc = "You must respect Elder [M.real_name]." + +/datum/dog_fashion/head/hop + name = "Lieutenant REAL_NAME" + desc = "Can actually be trusted to not run off on his own." + +/datum/dog_fashion/head/deathsquad + name = "Trooper REAL_NAME" + desc = "That's not red paint. That's real corgi blood." + +/datum/dog_fashion/head/clown + name = "REAL_NAME the Clown" + desc = "Honkman's best friend." + speak = list("HONK!", "Honk!") + emote_see = list("plays tricks.", "slips.") + +/datum/dog_fashion/back/deathsquad + name = "Trooper REAL_NAME" + desc = "That's not red paint. That's real corgi blood." diff --git a/code/datums/gas_overrides.dm b/code/datums/gas_overrides.dm new file mode 100644 index 0000000..c58d5ad --- /dev/null +++ b/code/datums/gas_overrides.dm @@ -0,0 +1,5 @@ +/datum/proc/freon_gas_act() + return 0 + +/datum/proc/water_vapor_gas_act() // We get it + return 0 // You vape \ No newline at end of file diff --git a/code/datums/helper_datums/construction_datum.dm b/code/datums/helper_datums/construction_datum.dm new file mode 100644 index 0000000..e4017e9 --- /dev/null +++ b/code/datums/helper_datums/construction_datum.dm @@ -0,0 +1,103 @@ +#define FORWARD -1 +#define BACKWARD 1 + +/datum/construction + var/list/steps + var/atom/holder + var/result + var/list/steps_desc + +/datum/construction/New(atom) + ..() + holder = atom + if(!holder) //don't want this without a holder + qdel(src) + set_desc(steps.len) + return + +/datum/construction/proc/next_step() + steps.len-- + if(!steps.len) + spawn_result() + else + set_desc(steps.len) + return + +/datum/construction/proc/action(atom/used_atom,mob/user) + return + +/datum/construction/proc/check_step(atom/used_atom,mob/user) //check last step only + var/valid_step = is_right_key(used_atom) + if(valid_step) + if(custom_action(valid_step, used_atom, user)) + next_step() + return 1 + return 0 + +/datum/construction/proc/is_right_key(atom/used_atom) // returns current step num if used_atom is of the right type. + var/list/L = steps[steps.len] + if(istype(used_atom, L["key"])) + return steps.len + return 0 + +/datum/construction/proc/custom_action(step, used_atom, user) + return 1 + +/datum/construction/proc/check_all_steps(atom/used_atom,mob/user) //check all steps, remove matching one. + for(var/i=1;i<=steps.len;i++) + var/list/L = steps[i]; + if(istype(used_atom, L["key"])) + if(custom_action(i, used_atom, user)) + steps[i]=null;//stupid byond list from list removal... + listclearnulls(steps); + if(!steps.len) + spawn_result() + return 1 + return 0 + + +/datum/construction/proc/spawn_result() + if(result) + new result(get_turf(holder)) + qdel(holder) + return + +/datum/construction/proc/set_desc(index as num) + var/list/step = steps[index] + holder.desc = step["desc"] + return + +/datum/construction/reversible + var/index + +/datum/construction/reversible/New(atom) + ..() + index = steps.len + return + +/datum/construction/reversible/proc/update_index(diff as num) + index+=diff + if(index==0) + spawn_result() + else + set_desc(index) + return + +/datum/construction/reversible/is_right_key(atom/used_atom) // returns index step + var/list/L = steps[index] + if(istype(used_atom, L["key"])) + return FORWARD //to the first step -> forward + else if(L["backkey"] && istype(used_atom, L["backkey"])) + return BACKWARD //to the last step -> backwards + return 0 + +/datum/construction/reversible/check_step(atom/used_atom,mob/user) + var/diff = is_right_key(used_atom) + if(diff) + if(custom_action(index, diff, used_atom, user)) + update_index(diff) + return 1 + return 0 + +/datum/construction/reversible/custom_action(index, diff, used_atom, user) + return 1 diff --git a/code/datums/helper_datums/events.dm b/code/datums/helper_datums/events.dm new file mode 100644 index 0000000..2fba9d9 --- /dev/null +++ b/code/datums/helper_datums/events.dm @@ -0,0 +1,68 @@ +/* + * WARRANTY VOID IF CODE USED + */ + + +/datum/events + var/list/events + +/datum/events/New() + ..() + events = new + +/datum/events/proc/addEventType(event_type as text) + if(!(event_type in events) || !islist(events[event_type])) + events[event_type] = list() + return 1 + return + + +// Arguments: event_type as text, proc_holder as datum, proc_name as text +// Returns: New event, null on error. +/datum/events/proc/addEvent(event_type as text, proc_holder, proc_name as text) + if(!event_type || !proc_holder || !proc_name) + return + addEventType(event_type) + var/list/event = events[event_type] + var/datum/event/E = new /datum/event(proc_holder,proc_name) + event += E + return E + +// Arguments: event_type as text, any number of additional arguments to pass to event handler +// Returns: null +/datum/events/proc/fireEvent() + //world << "Events in [args[1]] called" + var/list/event = listgetindex(events,args[1]) + if(istype(event)) + spawn(0) + for(var/datum/event/E in event) + if(!E.Fire(arglist(args.Copy(2)))) + clearEvent(args[1],E) + return + +// Arguments: event_type as text, E as /datum/event +// Returns: 1 if event cleared, null on error + +/datum/events/proc/clearEvent(event_type as text, datum/event/E) + if(!event_type || !E) + return + var/list/event = listgetindex(events,event_type) + event -= E + return 1 + + +/datum/event + var/listener + var/proc_name + +/datum/event/New(tlistener,tprocname) + listener = tlistener + proc_name = tprocname + return ..() + +/datum/event/proc/Fire() + //world << "Event fired" + if(listener) + call(listener,proc_name)(arglist(args)) + return 1 + return diff --git a/code/datums/helper_datums/getrev.dm b/code/datums/helper_datums/getrev.dm new file mode 100644 index 0000000..6eade8b --- /dev/null +++ b/code/datums/helper_datums/getrev.dm @@ -0,0 +1,63 @@ +var/global/datum/getrev/revdata = new() + +/datum/getrev + var/parentcommit + var/commit + var/list/testmerge = list() + var/date + +/datum/getrev/New() + var/head_file = return_file_text(".git/logs/HEAD") + if(SERVERTOOLS && fexists("..\\prtestjob.lk")) + testmerge = file2list("..\\prtestjob.lk") + var/testlen = max(testmerge.len - 1, 0) + var/regex/head_log = new("(\\w{40}) .+> (\\d{10}).+(?=(\n.*(\\w{40}).*){[testlen]}\n*\\Z)") + head_log.Find(head_file) + parentcommit = head_log.group[1] + date = unix2date(text2num(head_log.group[2])) + commit = head_log.group[4] + world.log << "Running /tg/ revision:" + world.log << "[date]" + if(testmerge.len) + world.log << commit + for(var/line in testmerge) + if(line) + world.log << "Test merge active of PR #[line]" + world.log << "Based off master commit [parentcommit]" + else + world.log << parentcommit + world.log << "Current map - [MAP_NAME]" //can't think of anywhere better to put it + +/client/verb/showrevinfo() + set category = "OOC" + set name = "Show Server Revision" + set desc = "Check the current server code revision" + + if(revdata.parentcommit) + src << "Server revision compiled on: [revdata.date]" + if(revdata.testmerge.len) + for(var/line in revdata.testmerge) + if(line) + src << "Test merge active of PR #[line]" + src << "Based off master commit [revdata.parentcommit]" + else + src << "[revdata.parentcommit]" + else + src << "Revision unknown" + src << "Current Infomational Settings:" + src << "Protect Authority Roles From Traitor: [config.protect_roles_from_antagonist]" + src << "Protect Assistant Role From Traitor: [config.protect_assistant_from_antagonist]" + src << "Enforce Human Authority: [config.enforce_human_authority]" + src << "Allow Latejoin Antagonists: [config.allow_latejoin_antagonists]" + src << "Enforce Continuous Rounds: [config.continuous.len] of [config.modes.len] roundtypes" + src << "Allow Midround Antagonists: [config.midround_antag.len] of [config.modes.len] roundtypes" + if(config.show_game_type_odds) + src <<"Game Mode Odds:" + var/sum = 0 + for(var/i=1,i<=config.probabilities.len,i++) + sum += config.probabilities[config.probabilities[i]] + for(var/i=1,i<=config.probabilities.len,i++) + if(config.probabilities[config.probabilities[i]] > 0) + var/percentage = round(config.probabilities[config.probabilities[i]] / sum * 100, 0.1) + src << "[config.probabilities[i]] [percentage]%" + return diff --git a/code/datums/helper_datums/icon_snapshot.dm b/code/datums/helper_datums/icon_snapshot.dm new file mode 100644 index 0000000..22b402b --- /dev/null +++ b/code/datums/helper_datums/icon_snapshot.dm @@ -0,0 +1,15 @@ +/datum/icon_snapshot + var/name + var/icon + var/icon_state + var/list/overlays + +/datum/icon_snapshot/proc/makeImg() + if(!icon || !icon_state) + return + var/obj/temp = new + temp.icon = icon + temp.icon_state = icon_state + temp.overlays = overlays.Copy() + var/icon/tempicon = getFlatIcon(temp) // TODO Actually write something less heavy-handed for this + return tempicon diff --git a/code/datums/helper_datums/map_template.dm b/code/datums/helper_datums/map_template.dm new file mode 100644 index 0000000..967d7be --- /dev/null +++ b/code/datums/helper_datums/map_template.dm @@ -0,0 +1,138 @@ +/datum/map_template + var/name = "Default Template Name" + var/width = 0 + var/height = 0 + var/mappath = null + var/mapfile = null + var/loaded = 0 // Times loaded this round + +/datum/map_template/New(path = null, map = null, rename = null) + if(path) + mappath = path + if(mappath) + preload_size(mappath) + if(map) + mapfile = map + if(rename) + name = rename + +/datum/map_template/proc/preload_size(path) + var/bounds = maploader.load_map(file(path), 1, 1, 1, cropMap=FALSE, measureOnly=TRUE) + if(bounds) + width = bounds[MAP_MAXX] // Assumes all templates are rectangular, have a single Z level, and begin at 1,1,1 + height = bounds[MAP_MAXY] + return bounds + +/proc/initTemplateBounds(var/list/bounds) + var/list/obj/machinery/atmospherics/atmos_machines = list() + var/list/obj/structure/cable/cables = list() + var/list/atom/atoms = list() + + for(var/L in block(locate(bounds[MAP_MINX], bounds[MAP_MINY], bounds[MAP_MINZ]), + locate(bounds[MAP_MAXX], bounds[MAP_MAXY], bounds[MAP_MAXZ]))) + var/turf/B = L + for(var/A in B) + atoms += A + if(istype(A,/obj/structure/cable)) + cables += A + continue + if(istype(A,/obj/machinery/atmospherics)) + atmos_machines += A + continue + + SSobj.setup_template_objects(atoms) + SSmachine.setup_template_powernets(cables) + SSair.setup_template_machinery(atmos_machines) + +/datum/map_template/proc/load(turf/T, centered = FALSE) + if(centered) + T = locate(T.x - round(width/2) , T.y - round(height/2) , T.z) + if(!T) + return + if(T.x+width > world.maxx) + return + if(T.y+height > world.maxy) + return + + var/list/bounds = maploader.load_map(get_file(), T.x, T.y, T.z, cropMap=TRUE) + if(!bounds) + return 0 + + //initialize things that are normally initialized after map load + initTemplateBounds(bounds) + + log_game("[name] loaded at at [T.x],[T.y],[T.z]") + return 1 + +/datum/map_template/proc/get_file() + if(mapfile) + . = mapfile + else if(mappath) + . = file(mappath) + + if(!.) + world.log << "The file of [src] appears to be empty/non-existent." + +/datum/map_template/proc/get_affected_turfs(turf/T, centered = FALSE) + var/turf/placement = T + if(centered) + var/turf/corner = locate(placement.x - round(width/2), placement.y - round(height/2), placement.z) + if(corner) + placement = corner + return block(placement, locate(placement.x+width-1, placement.y+height-1, placement.z)) + + +/proc/preloadTemplates(path = "_maps/templates/") //see master controller setup + var/list/filelist = flist(path) + for(var/map in filelist) + var/datum/map_template/T = new(path = "[path][map]", rename = "[map]") + map_templates[T.name] = T + + preloadRuinTemplates() + preloadShuttleTemplates() + preloadShelterTemplates() + +/proc/preloadRuinTemplates() + // Still supporting bans by filename + var/list/banned = generateMapList("config/lavaRuinBlacklist.txt") + banned += generateMapList("config/spaceRuinBlacklist.txt") + + for(var/item in subtypesof(/datum/map_template/ruin)) + var/datum/map_template/ruin/ruin_type = item + // screen out the abstract subtypes + if(!initial(ruin_type.id)) + continue + var/datum/map_template/ruin/R = new ruin_type() + + if(banned.Find(R.mappath)) + continue + + map_templates[R.name] = R + ruins_templates[R.name] = R + + if(istype(R, /datum/map_template/ruin/lavaland)) + lava_ruins_templates[R.name] = R + else if(istype(R, /datum/map_template/ruin/space)) + space_ruins_templates[R.name] = R + + +/proc/preloadShuttleTemplates() + for(var/item in subtypesof(/datum/map_template/shuttle)) + var/datum/map_template/shuttle/shuttle_type = item + if(!(initial(shuttle_type.suffix))) + continue + + var/datum/map_template/shuttle/S = new shuttle_type() + + shuttle_templates[S.shuttle_id] = S + map_templates[S.shuttle_id] = S + +/proc/preloadShelterTemplates() + for(var/item in subtypesof(/datum/map_template/shelter)) + var/datum/map_template/shelter/shelter_type = item + if(!(initial(shelter_type.mappath))) + continue + var/datum/map_template/shelter/S = new shelter_type() + + shelter_templates[S.shelter_id] = S + map_templates[S.shelter_id] = S diff --git a/code/datums/helper_datums/teleport.dm b/code/datums/helper_datums/teleport.dm new file mode 100644 index 0000000..4055728 --- /dev/null +++ b/code/datums/helper_datums/teleport.dm @@ -0,0 +1,221 @@ +//wrapper +/proc/do_teleport(ateleatom, adestination, aprecision=0, afteleport=1, aeffectin=null, aeffectout=null, asoundin=null, asoundout=null) + var/datum/teleport/instant/science/D = new + if(D.start(arglist(args))) + return 1 + return 0 + +/datum/teleport + var/atom/movable/teleatom //atom to teleport + var/atom/destination //destination to teleport to + var/precision = 0 //teleport precision + var/datum/effect_system/effectin //effect to show right before teleportation + var/datum/effect_system/effectout //effect to show right after teleportation + var/soundin //soundfile to play before teleportation + var/soundout //soundfile to play after teleportation + var/force_teleport = 1 //if false, teleport will use Move() proc (dense objects will prevent teleportation) + + +/datum/teleport/proc/start(ateleatom, adestination, aprecision=0, afteleport=1, aeffectin=null, aeffectout=null, asoundin=null, asoundout=null) + if(!initTeleport(arglist(args))) + return 0 + return 1 + +/datum/teleport/proc/initTeleport(ateleatom,adestination,aprecision,afteleport,aeffectin,aeffectout,asoundin,asoundout) + if(!setTeleatom(ateleatom)) + return 0 + if(!setDestination(adestination)) + return 0 + if(!setPrecision(aprecision)) + return 0 + setEffects(aeffectin,aeffectout) + setForceTeleport(afteleport) + setSounds(asoundin,asoundout) + return 1 + +//must succeed +/datum/teleport/proc/setPrecision(aprecision) + if(isnum(aprecision)) + precision = aprecision + return 1 + return 0 + +//must succeed +/datum/teleport/proc/setDestination(atom/adestination) + if(istype(adestination)) + destination = adestination + return 1 + return 0 + +//must succeed in most cases +/datum/teleport/proc/setTeleatom(atom/movable/ateleatom) + if(istype(ateleatom, /obj/effect) && !istype(ateleatom, /obj/effect/dummy/chameleon)) + qdel(ateleatom) + return 0 + if(istype(ateleatom)) + teleatom = ateleatom + return 1 + return 0 + +//custom effects must be properly set up first for instant-type teleports +//optional +/datum/teleport/proc/setEffects(datum/effect_system/aeffectin=null,datum/effect_system/aeffectout=null) + effectin = istype(aeffectin) ? aeffectin : null + effectout = istype(aeffectout) ? aeffectout : null + return 1 + +//optional +/datum/teleport/proc/setForceTeleport(afteleport) + force_teleport = afteleport + return 1 + +//optional +/datum/teleport/proc/setSounds(asoundin=null,asoundout=null) + soundin = isfile(asoundin) ? asoundin : null + soundout = isfile(asoundout) ? asoundout : null + return 1 + +//placeholder +/datum/teleport/proc/teleportChecks() + return 1 + +/datum/teleport/proc/playSpecials(atom/location,datum/effect_system/effect,sound) + if(location) + if(effect) + addtimer(src, "do_effect", 0, FALSE, location, effect) + if(sound) + addtimer(src, "do_sound", 0, FALSE, location, sound) + +/datum/teleport/proc/do_effect(atom/location, datum/effect_system/effect) + src = null + effect.attach(location) + effect.start() + +/datum/teleport/proc/do_sound(atom/location, sound) + src = null + playsound(location, sound, 60, 1) + +//do the monkey dance +/datum/teleport/proc/doTeleport() + + var/turf/destturf + var/turf/curturf = get_turf(teleatom) + if(precision) + var/list/posturfs = list() + var/center = get_turf(destination) + if(!center) + center = destination + for(var/turf/T in range(precision,center)) + if(T.is_transition_turf()) + continue // Avoid picking these. + var/area/A = T.loc + if(!A.noteleport) + posturfs.Add(T) + + destturf = safepick(posturfs) + else + destturf = get_turf(destination) + + if(!destturf || !curturf || destturf.is_transition_turf()) + return 0 + + var/area/A = get_area(curturf) + if(A.noteleport) + return 0 + + playSpecials(curturf,effectin,soundin) + + if(force_teleport) + teleatom.forceMove(destturf) + playSpecials(destturf,effectout,soundout) + else + if(teleatom.Move(destturf)) + playSpecials(destturf,effectout,soundout) + return 1 + +/datum/teleport/proc/teleport() + if(teleportChecks()) + return doTeleport() + return 0 + +/datum/teleport/instant //teleports when datum is created + + start(ateleatom, adestination, aprecision=0, afteleport=1, aeffectin=null, aeffectout=null, asoundin=null, asoundout=null) + if(..()) + if(teleport()) + return 1 + return 0 + + +/datum/teleport/instant/science + +/datum/teleport/instant/science/setEffects(datum/effect_system/aeffectin,datum/effect_system/aeffectout) + if(aeffectin==null || aeffectout==null) + var/datum/effect_system/spark_spread/aeffect = new + aeffect.set_up(5, 1, teleatom) + effectin = effectin || aeffect + effectout = effectout || aeffect + return 1 + else + return ..() + +/datum/teleport/instant/science/setPrecision(aprecision) + ..() + if(istype(teleatom, /obj/item/weapon/storage/backpack/holding)) + precision = rand(1,100) + + var/list/bagholding = teleatom.search_contents_for(/obj/item/weapon/storage/backpack/holding) + if(bagholding.len) + precision = max(rand(1,100)*bagholding.len,100) + if(isliving(teleatom)) + var/mob/living/MM = teleatom + MM << "The bluespace interface on your bag of holding interferes with the teleport!" + return 1 + +// Safe location finder + +/proc/find_safe_turf(zlevel = ZLEVEL_STATION, list/zlevels) + if(!zlevels) + zlevels = list(zlevel) + var/cycles = 1000 + for(var/cycle in 1 to cycles) + // DRUNK DIALLING WOOOOOOOOO + var/x = rand(1, world.maxx) + var/y = rand(1, world.maxy) + var/z = pick(zlevels) + var/random_location = locate(x,y,z) + + if(!isfloorturf(random_location)) + continue + var/turf/open/floor/F = random_location + if(!F.air) + continue + + var/datum/gas_mixture/A = F.air + var/list/A_gases = A.gases + var/trace_gases + for(var/id in A_gases) + if(id in hardcoded_gases) + continue + trace_gases = TRUE + break + + // Can most things breathe? + if(trace_gases) + continue + if(!(A_gases["o2"] && A_gases["o2"][MOLES] >= 16)) + continue + if(A_gases["plasma"]) + continue + if(A_gases["co2"] && A_gases["co2"][MOLES] >= 10) + continue + + // Aim for goldilocks temperatures and pressure + if((A.temperature <= 270) || (A.temperature >= 360)) + continue + var/pressure = A.return_pressure() + if((pressure <= 20) || (pressure >= 550)) + continue + + // DING! You have passed the gauntlet, and are "probably" safe. + return F diff --git a/code/datums/helper_datums/topic_input.dm b/code/datums/helper_datums/topic_input.dm new file mode 100644 index 0000000..e1934cc --- /dev/null +++ b/code/datums/helper_datums/topic_input.dm @@ -0,0 +1,62 @@ +/datum/topic_input + var/href + var/list/href_list + +/datum/topic_input/New(thref,list/thref_list) + href = thref + href_list = thref_list.Copy() + return + +/datum/topic_input/proc/get(i) + return listgetindex(href_list,i) + +/datum/topic_input/proc/getAndLocate(i) + var/t = get(i) + if(t) + t = locate(t) + if (istext(t)) + t = null + return t || null + +/datum/topic_input/proc/getNum(i) + var/t = get(i) + if(t) + t = text2num(t) + return isnum(t) ? t : null + +/datum/topic_input/proc/getObj(i) + var/t = getAndLocate(i) + return isobj(t) ? t : null + +/datum/topic_input/proc/getMob(i) + var/t = getAndLocate(i) + return ismob(t) ? t : null + +/datum/topic_input/proc/getTurf(i) + var/t = getAndLocate(i) + return isturf(t) ? t : null + +/datum/topic_input/proc/getAtom(i) + return getType(i,/atom) + +/datum/topic_input/proc/getArea(i) + var/t = getAndLocate(i) + return isarea(t) ? t : null + +/datum/topic_input/proc/getStr(i)//params should always be text, but... + var/t = get(i) + return istext(t) ? t : null + +/datum/topic_input/proc/getType(i,type) + var/t = getAndLocate(i) + return istype(t,type) ? t : null + +/datum/topic_input/proc/getPath(i) + var/t = get(i) + if(t) + t = text2path(t) + return ispath(t) ? t : null + +/datum/topic_input/proc/getList(i) + var/t = getAndLocate(i) + return islist(t) ? t : null diff --git a/code/datums/hud.dm b/code/datums/hud.dm new file mode 100644 index 0000000..d406a03 --- /dev/null +++ b/code/datums/hud.dm @@ -0,0 +1,91 @@ +/* HUD DATUMS */ + +//GLOBAL HUD LIST +var/datum/atom_hud/huds = list( \ + DATA_HUD_SECURITY_BASIC = new/datum/atom_hud/data/human/security/basic(), \ + DATA_HUD_SECURITY_ADVANCED = new/datum/atom_hud/data/human/security/advanced(), \ + DATA_HUD_MEDICAL_BASIC = new/datum/atom_hud/data/human/medical/basic(), \ + DATA_HUD_MEDICAL_ADVANCED = new/datum/atom_hud/data/human/medical/advanced(), \ + DATA_HUD_DIAGNOSTIC = new/datum/atom_hud/data/diagnostic(), \ + ANTAG_HUD_CULT = new/datum/atom_hud/antag(), \ + ANTAG_HUD_REV = new/datum/atom_hud/antag(), \ + ANTAG_HUD_OPS = new/datum/atom_hud/antag(), \ + ANTAG_HUD_WIZ = new/datum/atom_hud/antag(), \ + ANTAG_HUD_SHADOW = new/datum/atom_hud/antag(), \ + ANTAG_HUD_TRAITOR = new/datum/atom_hud/antag/hidden(),\ + ANTAG_HUD_NINJA = new/datum/atom_hud/antag/hidden(),\ + ANTAG_HUD_CHANGELING = new/datum/atom_hud/antag/hidden(),\ + ANTAG_HUD_ABDUCTOR = new/datum/atom_hud/antag/hidden(),\ + ANTAG_HUD_DEVIL = new/datum/atom_hud/antag(),\ + ANTAG_HUD_SINTOUCHED = new/datum/atom_hud/antag/hidden(),\ + ANTAG_HUD_SOULLESS = new/datum/atom_hud/antag/hidden(),\ + ANTAG_HUD_CLOCKWORK = new/datum/atom_hud/antag(),\ + ) + +/datum/atom_hud + var/list/atom/hudatoms = list() //list of all atoms which display this hud + var/list/mob/hudusers = list() //list with all mobs who can see the hud + var/list/hud_icons = list() //these will be the indexes for the atom's hud_list + +/datum/atom_hud/proc/remove_hud_from(mob/M) + if(!M) + return + if(src in M.permanent_huds) + return + for(var/atom/A in hudatoms) + remove_from_single_hud(M, A) + hudusers -= M + +/datum/atom_hud/proc/remove_from_hud(atom/A) + if(!A) + return + for(var/mob/M in hudusers) + remove_from_single_hud(M, A) + hudatoms -= A + +/datum/atom_hud/proc/remove_from_single_hud(mob/M, atom/A) //unsafe, no sanity apart from client + if(!M || !M.client || !A) + return + for(var/i in hud_icons) + M.client.images -= A.hud_list[i] + +/datum/atom_hud/proc/add_hud_to(mob/M) + if(!M) + return + hudusers |= M + for(var/atom/A in hudatoms) + add_to_single_hud(M, A) + +/datum/atom_hud/proc/add_to_hud(atom/A) + if(!A) + return + hudatoms |= A + for(var/mob/M in hudusers) + add_to_single_hud(M, A) + +/datum/atom_hud/proc/add_to_single_hud(mob/M, atom/A) //unsafe, no sanity apart from client + if(!M || !M.client || !A) + return + for(var/i in hud_icons) + if(A.hud_list[i]) + M.client.images |= A.hud_list[i] + +//MOB PROCS +/mob/proc/reload_huds() + var/gang_huds = list() + if(ticker.mode) + for(var/datum/gang/G in ticker.mode.gangs) + gang_huds += G.ganghud + + for(var/datum/atom_hud/hud in (huds|gang_huds)) + if(src in hud.hudusers) + hud.add_hud_to(src) + +/mob/new_player/reload_huds() + return + +/mob/proc/add_click_catcher() + client.screen += client.void + +/mob/new_player/add_click_catcher() + return diff --git a/code/datums/martial.dm b/code/datums/martial.dm new file mode 100644 index 0000000..dca344b --- /dev/null +++ b/code/datums/martial.dm @@ -0,0 +1,749 @@ +/datum/martial_art + var/name = "Martial Art" + var/streak = "" + var/max_streak_length = 6 + var/current_target = null + var/temporary = 0 + var/datum/martial_art/base = null // The permanent style + var/deflection_chance = 0 //Chance to deflect projectiles + var/help_verb = null + +/datum/martial_art/proc/disarm_act(mob/living/carbon/human/A, mob/living/carbon/human/D) + return 0 + +/datum/martial_art/proc/harm_act(mob/living/carbon/human/A, mob/living/carbon/human/D) + return 0 + +/datum/martial_art/proc/grab_act(mob/living/carbon/human/A, mob/living/carbon/human/D) + return 0 + +/datum/martial_art/proc/add_to_streak(element,mob/living/carbon/human/D) + if(D != current_target) + current_target = D + streak = "" + streak = streak+element + if(length(streak) > max_streak_length) + streak = copytext(streak,2) + return + +/datum/martial_art/proc/basic_hit(mob/living/carbon/human/A,mob/living/carbon/human/D) + + var/damage = rand(A.dna.species.punchdamagelow, A.dna.species.punchdamagehigh) + + var/atk_verb = A.dna.species.attack_verb + if(D.lying) + atk_verb = "kick" + + switch(atk_verb) + if("kick") + A.do_attack_animation(D, ATTACK_EFFECT_KICK) + if("slash") + A.do_attack_animation(D, ATTACK_EFFECT_CLAW) + if("smash") + A.do_attack_animation(D, ATTACK_EFFECT_SMASH) + else + A.do_attack_animation(D, ATTACK_EFFECT_PUNCH) + + if(!damage) + playsound(D.loc, A.dna.species.miss_sound, 25, 1, -1) + D.visible_message("[A] has attempted to [atk_verb] [D]!", \ + "[A] has attempted to [atk_verb] [D]!", null, COMBAT_MESSAGE_RANGE) + add_logs(A, D, "attempted to [atk_verb]") + return 0 + + var/obj/item/bodypart/affecting = D.get_bodypart(ran_zone(A.zone_selected)) + var/armor_block = D.run_armor_check(affecting, "melee") + + playsound(D.loc, A.dna.species.attack_sound, 25, 1, -1) + D.visible_message("[A] has [atk_verb]ed [D]!", \ + "[A] has [atk_verb]ed [D]!", null, COMBAT_MESSAGE_RANGE) + + D.apply_damage(damage, BRUTE, affecting, armor_block) + + add_logs(A, D, "punched") + + if((D.stat != DEAD) && damage >= A.dna.species.punchstunthreshold) + D.visible_message("[A] has weakened [D]!!", \ + "[A] has weakened [D]!") + D.apply_effect(4, WEAKEN, armor_block) + D.forcesay(hit_appends) + else if(D.lying) + D.forcesay(hit_appends) + return 1 + +/datum/martial_art/proc/teach(mob/living/carbon/human/H,make_temporary=0) + if(help_verb) + H.verbs += help_verb + if(make_temporary) + temporary = 1 + if(H.martial_art && temporary) + base = H.martial_art + H.martial_art = src + +/datum/martial_art/proc/remove(mob/living/carbon/human/H) + if(H.martial_art != src) + return + H.martial_art = base + if(help_verb) + H.verbs -= help_verb + +/datum/martial_art/boxing + name = "Boxing" + +/datum/martial_art/boxing/disarm_act(mob/living/carbon/human/A, mob/living/carbon/human/D) + A << "Can't disarm while boxing!" + return 1 + +/datum/martial_art/boxing/grab_act(mob/living/carbon/human/A, mob/living/carbon/human/D) + A << "Can't grab while boxing!" + return 1 + +/datum/martial_art/boxing/harm_act(mob/living/carbon/human/A, mob/living/carbon/human/D) + + A.do_attack_animation(D, ATTACK_EFFECT_PUNCH) + + var/atk_verb = pick("left hook","right hook","straight punch") + + var/damage = rand(5, 8) + A.dna.species.punchdamagelow + if(!damage) + playsound(D.loc, A.dna.species.miss_sound, 25, 1, -1) + D.visible_message("[A] has attempted to [atk_verb] [D]!", \ + "[A] has attempted to [atk_verb] [D]!", null, COMBAT_MESSAGE_RANGE) + add_logs(A, D, "attempted to hit", atk_verb) + return 0 + + + var/obj/item/bodypart/affecting = D.get_bodypart(ran_zone(A.zone_selected)) + var/armor_block = D.run_armor_check(affecting, "melee") + + playsound(D.loc, A.dna.species.attack_sound, 25, 1, -1) + + D.visible_message("[A] has [atk_verb]ed [D]!", \ + "[A] has [atk_verb]ed [D]!", null, COMBAT_MESSAGE_RANGE) + + D.apply_damage(damage, STAMINA, affecting, armor_block) + add_logs(A, D, "punched (boxing) ") + if(D.getStaminaLoss() > 50) + var/knockout_prob = D.getStaminaLoss() + rand(-15,15) + if((D.stat != DEAD) && prob(knockout_prob)) + D.visible_message("[A] has knocked [D] out with a haymaker!", \ + "[A] has knocked [D] out with a haymaker!") + D.apply_effect(10,WEAKEN,armor_block) + D.SetSleeping(5) + D.forcesay(hit_appends) + add_logs(A, D, "knocked out (boxing) ") + else if(D.lying) + D.forcesay(hit_appends) + return 1 + +/mob/living/carbon/human/proc/wrestling_help() + set name = "Recall Teachings" + set desc = "Remember how to wrestle." + set category = "Wrestling" + + usr << "You flex your muscles and have a revelation..." + usr << "Clinch: Grab. Passively gives you a chance to immediately aggressively grab someone. Not always successful." + usr << "Suplex: Disarm someone you are grabbing. Suplexes your target to the floor. Greatly injures them and leaves both you and your target on the floor." + usr << "Advanced grab: Grab. Passively causes stamina damage when grabbing someone." + +#define TORNADO_COMBO "HHD" +#define THROWBACK_COMBO "DHD" +#define PLASMA_COMBO "HDDDH" + +/datum/martial_art/plasma_fist + name = "Plasma Fist" + help_verb = /mob/living/carbon/human/proc/plasma_fist_help + + +/datum/martial_art/plasma_fist/proc/check_streak(mob/living/carbon/human/A, mob/living/carbon/human/D) + if(findtext(streak,TORNADO_COMBO)) + streak = "" + Tornado(A,D) + return 1 + if(findtext(streak,THROWBACK_COMBO)) + streak = "" + Throwback(A,D) + return 1 + if(findtext(streak,PLASMA_COMBO)) + streak = "" + Plasma(A,D) + return 1 + return 0 + +/datum/martial_art/plasma_fist/proc/Tornado(mob/living/carbon/human/A, mob/living/carbon/human/D) + A.say("TORNADO SWEEP!") + spawn(0) + for(var/i in list(NORTH,SOUTH,EAST,WEST,EAST,SOUTH,NORTH,SOUTH,EAST,WEST,EAST,SOUTH)) + A.setDir(i) + playsound(A.loc, 'sound/weapons/punch1.ogg', 15, 1, -1) + sleep(1) + var/obj/effect/proc_holder/spell/aoe_turf/repulse/R = new(null) + var/list/turfs = list() + for(var/turf/T in range(1,A)) + turfs.Add(T) + R.cast(turfs) + add_logs(A, D, "tornado sweeped(Plasma Fist)") + return + +/datum/martial_art/plasma_fist/proc/Throwback(mob/living/carbon/human/A, mob/living/carbon/human/D) + D.visible_message("[A] has hit [D] with Plasma Punch!", \ + "[A] has hit [D] with Plasma Punch!") + playsound(D.loc, 'sound/weapons/punch1.ogg', 50, 1, -1) + var/atom/throw_target = get_edge_target_turf(D, get_dir(D, get_step_away(D, A))) + D.throw_at(throw_target, 200, 4,A) + A.say("HYAH!") + add_logs(A, D, "threw back (Plasma Fist)") + return + +/datum/martial_art/plasma_fist/proc/Plasma(mob/living/carbon/human/A, mob/living/carbon/human/D) + A.do_attack_animation(D, ATTACK_EFFECT_PUNCH) + playsound(D.loc, 'sound/weapons/punch1.ogg', 50, 1, -1) + A.say("PLASMA FIST!") + D.visible_message("[A] has hit [D] with THE PLASMA FIST TECHNIQUE!", \ + "[A] has hit [D] with THE PLASMA FIST TECHNIQUE!") + D.gib() + add_logs(A, D, "gibbed (Plasma Fist)") + return + +/datum/martial_art/plasma_fist/harm_act(mob/living/carbon/human/A, mob/living/carbon/human/D) + add_to_streak("H",D) + if(check_streak(A,D)) + return 1 + basic_hit(A,D) + return 1 + +/datum/martial_art/plasma_fist/disarm_act(mob/living/carbon/human/A, mob/living/carbon/human/D) + add_to_streak("D",D) + if(check_streak(A,D)) + return 1 + basic_hit(A,D) + return 1 + +/datum/martial_art/plasma_fist/grab_act(mob/living/carbon/human/A, mob/living/carbon/human/D) + add_to_streak("G",D) + if(check_streak(A,D)) + return 1 + basic_hit(A,D) + return 1 + +/mob/living/carbon/human/proc/plasma_fist_help() + set name = "Recall Teachings" + set desc = "Remember the martial techniques of the Plasma Fist." + set category = "Plasma Fist" + + usr << "You clench your fists and have a flashback of knowledge..." + usr << "Tornado Sweep: Harm Harm Disarm. Repulses target and everyone back." + usr << "Throwback: Disarm Harm Disarm. Throws the target and an item at them." + usr << "The Plasma Fist: Harm Disarm Disarm Disarm Harm. Knocks the brain out of the opponent and gibs their body." + +//Used by the gang of the same name. Uses combos. Basic attacks bypass armor and never miss +#define WRIST_WRENCH_COMBO "DD" +#define BACK_KICK_COMBO "HG" +#define STOMACH_KNEE_COMBO "GH" +#define HEAD_KICK_COMBO "DHH" +#define ELBOW_DROP_COMBO "HDHDH" +/datum/martial_art/the_sleeping_carp + name = "The Sleeping Carp" + deflection_chance = 100 + help_verb = /mob/living/carbon/human/proc/sleeping_carp_help + +/datum/martial_art/the_sleeping_carp/proc/check_streak(mob/living/carbon/human/A, mob/living/carbon/human/D) + if(findtext(streak,WRIST_WRENCH_COMBO)) + streak = "" + wristWrench(A,D) + return 1 + if(findtext(streak,BACK_KICK_COMBO)) + streak = "" + backKick(A,D) + return 1 + if(findtext(streak,STOMACH_KNEE_COMBO)) + streak = "" + kneeStomach(A,D) + return 1 + if(findtext(streak,HEAD_KICK_COMBO)) + streak = "" + headKick(A,D) + return 1 + if(findtext(streak,ELBOW_DROP_COMBO)) + streak = "" + elbowDrop(A,D) + return 1 + return 0 + +/datum/martial_art/the_sleeping_carp/proc/wristWrench(mob/living/carbon/human/A, mob/living/carbon/human/D) + if(!D.stat && !D.stunned && !D.weakened) + A.do_attack_animation(D, ATTACK_EFFECT_PUNCH) + D.visible_message("[A] grabs [D]'s wrist and wrenches it sideways!", \ + "[A] grabs your wrist and violently wrenches it to the side!") + playsound(get_turf(A), 'sound/weapons/thudswoosh.ogg', 50, 1, -1) + D.emote("scream") + D.drop_item() + D.apply_damage(5, BRUTE, pick("l_arm", "r_arm")) + D.Stun(3) + return 1 + add_logs(A, D, "wrist wrenched (Sleeping Carp)") + return basic_hit(A,D) + +/datum/martial_art/the_sleeping_carp/proc/backKick(mob/living/carbon/human/A, mob/living/carbon/human/D) + if(A.dir == D.dir && !D.stat && !D.weakened) + A.do_attack_animation(D, ATTACK_EFFECT_PUNCH) + D.visible_message("[A] kicks [D] in the back!", \ + "[A] kicks you in the back, making you stumble and fall!") + step_to(D,get_step(D,D.dir),1) + D.Weaken(4) + playsound(get_turf(D), 'sound/weapons/punch1.ogg', 50, 1, -1) + return 1 + add_logs(A, D, "back-kicked (Sleeping Carp)") + return basic_hit(A,D) + +/datum/martial_art/the_sleeping_carp/proc/kneeStomach(mob/living/carbon/human/A, mob/living/carbon/human/D) + if(!D.stat && !D.weakened) + A.do_attack_animation(D, ATTACK_EFFECT_KICK) + D.visible_message("[A] knees [D] in the stomach!", \ + "[A] winds you with a knee in the stomach!") + D.audible_message("[D] gags!") + D.losebreath += 3 + D.Stun(2) + playsound(get_turf(D), 'sound/weapons/punch1.ogg', 50, 1, -1) + return 1 + add_logs(A, D, "stomach kneed (Sleeping Carp)") + return basic_hit(A,D) + +/datum/martial_art/the_sleeping_carp/proc/headKick(mob/living/carbon/human/A, mob/living/carbon/human/D) + if(!D.stat && !D.weakened) + A.do_attack_animation(D, ATTACK_EFFECT_KICK) + D.visible_message("[A] kicks [D] in the head!", \ + "[A] kicks you in the jaw!") + D.apply_damage(20, BRUTE, "head") + D.drop_item() + playsound(get_turf(D), 'sound/weapons/punch1.ogg', 50, 1, -1) + D.Stun(4) + return 1 + add_logs(A, D, "head kicked (Sleeping Carp)") + return basic_hit(A,D) + +/datum/martial_art/the_sleeping_carp/proc/elbowDrop(mob/living/carbon/human/A, mob/living/carbon/human/D) + if(D.weakened || D.resting || D.stat) + A.do_attack_animation(D, ATTACK_EFFECT_PUNCH) + D.visible_message("[A] elbow drops [D]!", \ + "[A] piledrives you with their elbow!") + if(D.stat) + D.death() //FINISH HIM! + D.apply_damage(50, BRUTE, "chest") + playsound(get_turf(D), 'sound/weapons/punch1.ogg', 75, 1, -1) + return 1 + add_logs(A, D, "elbow dropped (Sleeping Carp)") + return basic_hit(A,D) + +/datum/martial_art/the_sleeping_carp/grab_act(mob/living/carbon/human/A, mob/living/carbon/human/D) + add_to_streak("G",D) + if(check_streak(A,D)) + return 1 + if(A.grab_state >= GRAB_AGGRESSIVE) + D.grabbedby(A, 1) + else + A.start_pulling(D, 1) + if(A.pulling) + D.drop_all_held_items() + D.stop_pulling() + add_logs(A, D, "grabbed", addition="aggressively") + A.grab_state = GRAB_AGGRESSIVE //Instant aggressive grab + return 1 + +/datum/martial_art/the_sleeping_carp/harm_act(mob/living/carbon/human/A, mob/living/carbon/human/D) + add_to_streak("H",D) + if(check_streak(A,D)) + return 1 + A.do_attack_animation(D, ATTACK_EFFECT_PUNCH) + var/atk_verb = pick("punches", "kicks", "chops", "hits", "slams") + D.visible_message("[A] [atk_verb] [D]!", \ + "[A] [atk_verb] you!") + D.apply_damage(rand(10,15), BRUTE) + playsound(get_turf(D), 'sound/weapons/punch1.ogg', 25, 1, -1) + if(prob(D.getBruteLoss()) && !D.lying) + D.visible_message("[D] stumbles and falls!", "The blow sends you to the ground!") + D.Weaken(4) + add_logs(A, D, "[atk_verb] (Sleeping Carp)") + return 1 + + +/datum/martial_art/the_sleeping_carp/disarm_act(mob/living/carbon/human/A, mob/living/carbon/human/D) + add_to_streak("D",D) + if(check_streak(A,D)) + return 1 + return ..() + +/mob/living/carbon/human/proc/sleeping_carp_help() + set name = "Recall Teachings" + set desc = "Remember the martial techniques of the Sleeping Carp clan." + set category = "Sleeping Carp" + + usr << "You retreat inward and recall the teachings of the Sleeping Carp..." + + usr << "Wrist Wrench: Disarm Disarm. Forces opponent to drop item in hand." + usr << "Back Kick: Harm Grab. Opponent must be facing away. Knocks down." + usr << "Stomach Knee: Grab Harm. Knocks the wind out of opponent and stuns." + usr << "Head Kick: Disarm Harm Harm. Decent damage, forces opponent to drop item in hand." + usr << "Elbow Drop: Harm Disarm Harm Disarm Harm. Opponent must be on the ground. Deals huge damage, instantly kills anyone in critical condition." + +//CQC +#define SLAM_COMBO "GH" +#define KICK_COMBO "HDH" +#define RESTRAIN_COMBO "GG" +#define PRESSURE_COMBO "DG" +#define CONSECUTIVE_COMBO "HHD" +#define STRIKE_COMBO "HG" +/datum/martial_art/CQC + name = "CQC" + help_verb = /mob/living/carbon/human/proc/CQC_help + var/restrained = 0 //used in CQC's disarm_act to check if the disarmed is being restrained and so whether they should be put in a chokehold or not + +/datum/martial_art/CQC/proc/check_streak(mob/living/carbon/human/A, mob/living/carbon/human/D) + if(findtext(streak,SLAM_COMBO)) + streak = "" + Slam(A,D) + return 1 + if(findtext(streak,KICK_COMBO)) + streak = "" + Kick(A,D) + return 1 + if(findtext(streak,RESTRAIN_COMBO)) + streak = "" + Restrain(A,D) + return 1 + if(findtext(streak,PRESSURE_COMBO)) + streak = "" + Pressure(A,D) + return 1 + if(findtext(streak,CONSECUTIVE_COMBO)) + streak = "" + Consecutive(A,D) + if(findtext(streak,STRIKE_COMBO)) + streak = "" + Strike(A,D) + return 1 + return 0 + +/datum/martial_art/CQC/proc/Slam(mob/living/carbon/human/A, mob/living/carbon/human/D) + if(!D.stat || !D.weakened) + D.visible_message("[A] slams [D] into the ground!", \ + "[A] slams you into the ground!") + playsound(get_turf(A), 'sound/weapons/slam.ogg', 50, 1, -1) + D.apply_damage(10, BRUTE) + D.Weaken(6) + add_logs(A, D, "CQC slammed") + return 1 + +/datum/martial_art/CQC/proc/Kick(mob/living/carbon/human/A, mob/living/carbon/human/D) + if(!D.stat || !D.weakened) + D.visible_message("[A] kicks [D] back!", \ + "[A] kicks you back!") + playsound(get_turf(A), 'sound/weapons/cqchit1.ogg', 50, 1, -1) + var/atom/throw_target = get_edge_target_turf(D, A.dir) + D.throw_at(throw_target, 1, 14, A) + D.apply_damage(10, BRUTE) + add_logs(A, D, "CQC kicked") + if(D.weakened) + D.visible_message("[A] kicks [D]'s head, knocking them out!", \ + "[A] kicks your head, knocking you out!") + playsound(get_turf(A), 'sound/weapons/genhit1.ogg', 50, 1, -1) + D.SetSleeping(15) + D.adjustBrainLoss(25) + return 1 + +/datum/martial_art/CQC/proc/Pressure(mob/living/carbon/human/A, mob/living/carbon/human/D) + D.visible_message("[A] forces their arm on [D]'s neck!") + D.adjustStaminaLoss(60) + playsound(get_turf(A), 'sound/weapons/cqchit1.ogg', 50, 1, -1) + return 1 + +/datum/martial_art/CQC/proc/Restrain(mob/living/carbon/human/A, mob/living/carbon/human/D) + if(restrained) + return + if(!D.stat) + D.visible_message("[A] locks [D] into a restraining position!", \ + "[A] locks you into a restraining position!") + D.adjustStaminaLoss(20) + D.Stun(5) + restrained = 1 + return 1 + +/datum/martial_art/CQC/proc/Consecutive(mob/living/carbon/human/A, mob/living/carbon/human/D) + if(!D.stat) + D.visible_message("[A] strikes [D]'s abdomen, neck and back consecutively", \ + "[A] strikes your abdomen, neck and back consecutively!") + playsound(get_turf(D), 'sound/weapons/cqchit2.ogg', 50, 1, -1) + var/obj/item/I = D.get_active_held_item() + if(I) + D.drop_item() + A.put_in_hands(I) + D.adjustStaminaLoss(50) + D.apply_damage(20, BRUTE) + return 1 + +/datum/martial_art/CQC/proc/Strike(mob/living/carbon/human/A, mob/living/carbon/human/D) + if(!D.stat || !D.weakened) + var/obj/item/I = D.get_active_held_item() + D.visible_message("[A] strikes [D]'s jaw with their hand and then disarms them!", \ + "[A] strikes your jaw, disorienting you, and then disarms you!") + playsound(get_turf(D), 'sound/weapons/cqchit1.ogg', 50, 1, -1) + if(I) + D.drop_item() + A.put_in_hands(I) + D.Jitter(2) + D.apply_damage(5, BRUTE) + return 1 + +/datum/martial_art/CQC/grab_act(mob/living/carbon/human/A, mob/living/carbon/human/D) + add_to_streak("G",D) + if(check_streak(A,D)) + return 1 + if(A.grab_state >= GRAB_AGGRESSIVE) + D.grabbedby(A, 1) + else + A.start_pulling(D, 1) + if(A.pulling) + D.stop_pulling() + add_logs(A, D, "grabbed", addition="aggressively") + A.grab_state = GRAB_AGGRESSIVE //Instant aggressive grab + if(!A.pulling) + restrained = 0 + + return 1 + +/datum/martial_art/CQC/harm_act(mob/living/carbon/human/A, mob/living/carbon/human/D) + add_to_streak("H",D) + if(check_streak(A,D)) + return 1 + add_logs(A, D, "CQC'd") + A.do_attack_animation(D) + var/picked_hit_type = pick("CQC'd", "Big Bossed") + var/bonus_damage = 10 + if(D.weakened || D.resting || D.lying) + bonus_damage += 5 + picked_hit_type = "stomps on" + D.apply_damage(bonus_damage, BRUTE) + if(picked_hit_type == "kicks" || picked_hit_type == "stomps") + playsound(get_turf(D), 'sound/weapons/cqchit2.ogg', 50, 1, -1) + else + playsound(get_turf(D), 'sound/weapons/cqchit1.ogg', 50, 1, -1) + D.visible_message("[A] [picked_hit_type] [D]!", \ + "[A] [picked_hit_type] you!") + add_logs(A, D, "[picked_hit_type] with CQC") + if(A.resting && !D.stat && !D.weakened) + D.visible_message("[A] leg sweeps [D]!", \ + "[A] leg sweeps you!") + playsound(get_turf(A), 'sound/effects/hit_kick.ogg', 50, 1, -1) + D.apply_damage(10, BRUTE) + D.Weaken(3) + add_logs(A, D, "CQC sweeped") + return 1 + +/datum/martial_art/CQC/disarm_act(mob/living/carbon/human/A, mob/living/carbon/human/D) + add_to_streak("D",D) + if(check_streak(A,D)) + return 1 + if(prob(65)) + var/obj/item/I = D.get_active_held_item() + if(I) + if(D.drop_item()) + A.put_in_hands(I) + D.visible_message("[A] has disarmed [D]!", \ + "[A] has disarmed [D]!") + playsound(D, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) + else + D.visible_message("[A] attempted to disarm [D]!", \ + "[A] attempted to disarm [D]!") + playsound(D, 'sound/weapons/punchmiss.ogg', 25, 1, -1) + add_logs(A, D, "disarmed with CQC") + if(restrained) + D.visible_message("[A] puts [D] into a chokehold!", \ + "[A] puts you into a chokehold!") + D.SetSleeping(20) + restrained = 0 + return 1 + +/mob/living/carbon/human/proc/CQC_help() + set name = "Recall Teachings" + set desc = "You try to remember some of the basics of CQC." + set category = "CQC" + + usr << "You try to remember some of the basics of CQC." + + usr << "Slam: Grab Harm. Slam opponent into the ground, weakens and knocks down." + usr << "CQC Kick: Harm Disarm Harm. Knocks opponent away. Knocks out stunned or weakened opponents." + usr << "Restrain: Grab Grab. Locks opponents into a restraining position, disarm to knock them out with a choke hold." + usr << "Pressure: Disarm Grab. Decent stamina damage." + usr << "Consecutive CQC: Harm Harm Disarm. Mainly offensive move, huge damage and decent stamina damage." + usr << "Disorient and Disarm: Harm Grab. Deal a hit to opponent's jaw to disorient them, and then steal what they are holding." + + +//ITEMS + +/obj/item/clothing/gloves/boxing + var/datum/martial_art/boxing/style = new + +/obj/item/clothing/gloves/boxing/equipped(mob/user, slot) + if(!ishuman(user)) + return + if(slot == slot_gloves) + var/mob/living/carbon/human/H = user + style.teach(H,1) + return + +/obj/item/clothing/gloves/boxing/dropped(mob/user) + if(!ishuman(user)) + return + var/mob/living/carbon/human/H = user + if(H.get_item_by_slot(slot_gloves) == src) + style.remove(H) + return + +/obj/item/weapon/storage/belt/champion/wrestling + name = "Wrestling Belt" + var/datum/martial_art/wrestling/style = new + +/obj/item/weapon/storage/belt/champion/wrestling/equipped(mob/user, slot) + if(!ishuman(user)) + return + if(slot == slot_belt) + var/mob/living/carbon/human/H = user + style.teach(H,1) + return + +/obj/item/weapon/storage/belt/champion/wrestling/dropped(mob/user) + if(!ishuman(user)) + return + var/mob/living/carbon/human/H = user + if(H.get_item_by_slot(slot_belt) == src) + style.remove(H) + return + +/obj/item/weapon/plasma_fist_scroll + name = "frayed scroll" + desc = "An aged and frayed scrap of paper written in shifting runes. There are hand-drawn illustrations of pugilism." + icon = 'icons/obj/wizard.dmi' + icon_state ="scroll2" + var/used = 0 + +/obj/item/weapon/plasma_fist_scroll/attack_self(mob/user) + if(!ishuman(user)) + return + if(!used) + var/mob/living/carbon/human/H = user + var/datum/martial_art/plasma_fist/F = new/datum/martial_art/plasma_fist(null) + F.teach(H) + H << "You have learned the ancient martial art of Plasma Fist." + used = 1 + desc = "It's completely blank." + name = "empty scroll" + icon_state = "blankscroll" + +/obj/item/weapon/CQC_manual + name = "old manual" + desc = "A small, black manual. There are drawn instructions of tactical hand-to-hand combat." + icon = 'icons/obj/library.dmi' + icon_state ="cqcmanual" + +/obj/item/weapon/CQC_manual/attack_self(mob/living/carbon/human/user) + if(!istype(user) || !user) + return + user <<"You remember the basics of CQC." + var/datum/martial_art/CQC/D = new(null) + D.teach(user) + user.drop_item() + visible_message("[src] beeps ominously, and a moment later it bursts up in flames.") + new /obj/effect/decal/cleanable/ash(get_turf(src)) + qdel(src) + +/obj/item/weapon/sleeping_carp_scroll + name = "mysterious scroll" + desc = "A scroll filled with strange markings. It seems to be drawings of some sort of martial art." + icon = 'icons/obj/wizard.dmi' + icon_state = "scroll2" + +/obj/item/weapon/sleeping_carp_scroll/attack_self(mob/living/carbon/human/user) + if(!istype(user) || !user) + return + user << "You have learned the ancient martial art of the Sleeping Carp! Your hand-to-hand combat has become much more effective, and you are now able to deflect any projectiles \ + directed toward you. However, you are also unable to use any ranged weaponry. You can learn more about your newfound art by using the Recall Teachings verb in the Sleeping Carp tab." + var/datum/martial_art/the_sleeping_carp/theSleepingCarp = new(null) + theSleepingCarp.teach(user) + user.drop_item() + visible_message("[src] lights up in fire and quickly burns to ash.") + new /obj/effect/decal/cleanable/ash(get_turf(src)) + qdel(src) + +/obj/item/weapon/twohanded/bostaff + name = "bo staff" + desc = "A long, tall staff made of polished wood. Traditionally used in ancient old-Earth martial arts. Can be wielded to both kill and incapacitate." + force = 10 + w_class = 4 + slot_flags = SLOT_BACK + force_unwielded = 10 + force_wielded = 24 + throwforce = 20 + throw_speed = 2 + attack_verb = list("smashed", "slammed", "whacked", "thwacked") + icon = 'icons/obj/weapons.dmi' + icon_state = "bostaff0" + block_chance = 50 + +/obj/item/weapon/twohanded/bostaff/update_icon() + icon_state = "bostaff[wielded]" + return + +/obj/item/weapon/twohanded/bostaff/attack(mob/target, mob/living/user) + add_fingerprint(user) + if((CLUMSY in user.disabilities) && prob(50)) + user << "You club yourself over the head with [src]." + user.Weaken(3) + if(ishuman(user)) + var/mob/living/carbon/human/H = user + H.apply_damage(2*force, BRUTE, "head") + else + user.take_bodypart_damage(2*force) + return + if(iscyborg(target)) + return ..() + if(!isliving(target)) + return ..() + var/mob/living/carbon/C = target + if(C.stat) + user << "It would be dishonorable to attack a foe while they cannot retaliate." + return + if(user.a_intent == "disarm") + if(!wielded) + return ..() + if(!ishuman(target)) + return ..() + var/mob/living/carbon/human/H = target + var/list/fluffmessages = list("[user] clubs [H] with [src]!", \ + "[user] smacks [H] with the butt of [src]!", \ + "[user] broadsides [H] with [src]!", \ + "[user] smashes [H]'s head with [src]!", \ + "[user] beats [H] with front of [src]!", \ + "[user] twirls and slams [H] with [src]!") + H.visible_message("[pick(fluffmessages)]", \ + "[pick(fluffmessages)]") + playsound(get_turf(user), 'sound/effects/woodhit.ogg', 75, 1, -1) + H.adjustStaminaLoss(rand(13,20)) + if(prob(10)) + H.visible_message("[H] collapses!", \ + "Your legs give out!") + H.Weaken(4) + if(H.staminaloss && !H.sleeping) + var/total_health = (H.health - H.staminaloss) + if(total_health <= HEALTH_THRESHOLD_CRIT && !H.stat) + H.visible_message("[user] delivers a heavy hit to [H]'s head, knocking them out cold!", \ + "[user] knocks you unconscious!") + H.SetSleeping(30) + H.adjustBrainLoss(25) + else + return ..() + +/obj/item/weapon/twohanded/bostaff/hit_reaction(mob/living/carbon/human/owner, attack_text, final_block_chance) + if(wielded) + return ..() + return 0 + diff --git a/code/datums/martial/krav_maga.dm b/code/datums/martial/krav_maga.dm new file mode 100644 index 0000000..932d775 --- /dev/null +++ b/code/datums/martial/krav_maga.dm @@ -0,0 +1,176 @@ +/datum/martial_art/krav_maga + name = "Krav Maga" + var/datum/action/neck_chop/neckchop = new/datum/action/neck_chop() + var/datum/action/leg_sweep/legsweep = new/datum/action/leg_sweep() + var/datum/action/lung_punch/lungpunch = new/datum/action/lung_punch() + +/datum/action/neck_chop + name = "Neck Chop - Injures the neck, stopping the victim from speaking for a while." + button_icon_state = "neckchop" + +/datum/action/neck_chop/Trigger() + if(owner.incapacitated()) + owner << "You can't use Krav Maga while you're incapacitated." + return + owner.visible_message("[owner] assumes the Neck Chop stance!", "Your next attack will be a Neck Chop.") + var/mob/living/carbon/human/H = owner + H.martial_art.streak = "neck_chop" + +/datum/action/leg_sweep + name = "Leg Sweep - Trips the victim, rendering them prone and unable to move for a short time." + button_icon_state = "legsweep" + +/datum/action/leg_sweep/Trigger() + if(owner.incapacitated()) + owner << "You can't use Krav Maga while you're incapacitated." + return + owner.visible_message("[owner] assumes the Leg Sweep stance!", "Your next attack will be a Leg Sweep.") + var/mob/living/carbon/human/H = owner + H.martial_art.streak = "leg_sweep" + +/datum/action/lung_punch//referred to internally as 'quick choke' + name = "Lung Punch - Delivers a strong punch just above the victim's abdomen, constraining the lungs. The victim will be unable to breathe for a short time." + button_icon_state = "lungpunch" + +/datum/action/lung_punch/Trigger() + if(owner.incapacitated()) + owner << "You can't use Krav Maga while you're incapacitated." + return + owner.visible_message("[owner] assumes the Lung Punch stance!", "Your next attack will be a Lung Punch.") + var/mob/living/carbon/human/H = owner + H.martial_art.streak = "quick_choke"//internal name for lung punch + +/datum/martial_art/krav_maga/teach(var/mob/living/carbon/human/H,var/make_temporary=0) + ..() + H << "You know the arts of Krav Maga!" + H << "Place your cursor over a move at the top of the screen to see what it does." + neckchop.Grant(H) + legsweep.Grant(H) + lungpunch.Grant(H) + +/datum/martial_art/krav_maga/remove(var/mob/living/carbon/human/H) + ..() + H << "You suddenly forget the arts of Krav Maga..." + neckchop.Remove(H) + legsweep.Remove(H) + lungpunch.Remove(H) + +/datum/martial_art/krav_maga/proc/check_streak(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) + switch(streak) + if("neck_chop") + streak = "" + neck_chop(A,D) + return 1 + if("leg_sweep") + streak = "" + leg_sweep(A,D) + return 1 + if("quick_choke")//is actually lung punch + streak = "" + quick_choke(A,D) + return 1 + return 0 + +/datum/martial_art/krav_maga/proc/leg_sweep(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) + if(D.stat || D.weakened) + return 0 + D.visible_message("[A] leg sweeps [D]!", \ + "[A] leg sweeps you!") + playsound(get_turf(A), 'sound/effects/hit_kick.ogg', 50, 1, -1) + D.apply_damage(5, BRUTE) + D.Weaken(2) + add_logs(A, D, "leg sweeped") + return 1 + +/datum/martial_art/krav_maga/proc/quick_choke(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)//is actually lung punch + D.visible_message("[A] pounds [D] on the chest!", \ + "[A] slams your chest! You can't breathe!") + playsound(get_turf(A), 'sound/effects/hit_punch.ogg', 50, 1, -1) + D.losebreath += 5 + D.adjustOxyLoss(10) + add_logs(A, D, "quickchoked") + return 1 + +/datum/martial_art/krav_maga/proc/neck_chop(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) + D.visible_message("[A] karate chops [D]'s neck!", \ + "[A] karate chops your neck, rendering you unable to speak!") + playsound(get_turf(A), 'sound/effects/hit_punch.ogg', 50, 1, -1) + D.apply_damage(5, BRUTE) + D.silent += 10 + add_logs(A, D, "neck chopped") + return 1 + +datum/martial_art/krav_maga/grab_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) + if(check_streak(A,D)) + return 1 + add_logs(A, D, "grabbed with krav maga") + ..() + +/datum/martial_art/krav_maga/harm_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) + if(check_streak(A,D)) + return 1 + add_logs(A, D, "punched") + var/picked_hit_type = pick("punches", "kicks") + var/bonus_damage = 10 + if(D.weakened || D.resting || D.lying) + bonus_damage += 5 + picked_hit_type = "stomps on" + D.apply_damage(bonus_damage, BRUTE) + if(picked_hit_type == "kicks" || picked_hit_type == "stomps") + A.do_attack_animation(D, ATTACK_EFFECT_KICK) + playsound(get_turf(D), 'sound/effects/hit_kick.ogg', 50, 1, -1) + else + A.do_attack_animation(D, ATTACK_EFFECT_PUNCH) + playsound(get_turf(D), 'sound/effects/hit_punch.ogg', 50, 1, -1) + D.visible_message("[A] [picked_hit_type] [D]!", \ + "[A] [picked_hit_type] you!") + add_logs(A, D, "[picked_hit_type] with Krav Maga") + return 1 + +/datum/martial_art/krav_maga/disarm_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) + if(check_streak(A,D)) + return 1 + if(prob(60)) + var/obj/item/I = D.get_active_held_item() + if(I) + if(D.drop_item()) + A.put_in_hands(I) + D.visible_message("[A] has disarmed [D]!", \ + "[A] has disarmed [D]!") + playsound(D, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) + else + D.visible_message("[A] attempted to disarm [D]!", \ + "[A] attempted to disarm [D]!") + playsound(D, 'sound/weapons/punchmiss.ogg', 25, 1, -1) + add_logs(A, D, "disarmed with krav maga") + return 1 + +//Krav Maga Gloves + +/obj/item/clothing/gloves/krav_maga + var/datum/martial_art/krav_maga/style = new + +/obj/item/clothing/gloves/krav_maga/equipped(mob/user, slot) + if(!ishuman(user)) + return + if(slot == slot_gloves) + var/mob/living/carbon/human/H = user + style.teach(H,1) + +/obj/item/clothing/gloves/krav_maga/dropped(mob/user) + if(!ishuman(user)) + return + var/mob/living/carbon/human/H = user + if(H.get_item_by_slot(slot_gloves) == src) + style.remove(H) + +/obj/item/clothing/gloves/krav_maga/sec//more obviously named, given to sec + name = "krav maga gloves" + desc = "These gloves can teach you to perform Krav Maga using nanochips." + icon_state = "fightgloves" + item_state = "fightgloves" + cold_protection = HANDS + min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT + heat_protection = HANDS + max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT + resistance_flags = 0 \ No newline at end of file diff --git a/code/datums/martial/wrestling.dm b/code/datums/martial/wrestling.dm new file mode 100644 index 0000000..02a0442 --- /dev/null +++ b/code/datums/martial/wrestling.dm @@ -0,0 +1,429 @@ +/datum/martial_art/wrestling + name = "Wrestling" + var/datum/action/slam/slam = new/datum/action/slam() + var/datum/action/throw_wrassle/throw_wrassle = new/datum/action/throw_wrassle() + var/datum/action/kick/kick = new/datum/action/kick() + var/datum/action/strike/strike = new/datum/action/strike() + var/datum/action/drop/drop = new/datum/action/drop() + +/datum/martial_art/wrestling/proc/check_streak(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) + switch(streak) + if("drop") + streak = "" + drop(A,D) + return 1 + if("strike") + streak = "" + strike(A,D) + return 1 + if("kick") + streak = "" + kick(A,D) + return 1 + if("throw") + streak = "" + throw_wrassle(A,D) + return 1 + if("slam") + streak = "" + slam(A,D) + return 1 + return 0 + +/datum/action/slam + name = "Slam (Cinch) - Slam a grappled opponent into the floor." + button_icon_state = "wrassle_slam" + +/datum/action/slam/Trigger() + if(owner.incapacitated()) + owner << "You can't WRESTLE while you're OUT FOR THE COUNT." + return + owner.visible_message("[owner] prepares to BODY SLAM!", "Your next attack will be a BODY SLAM.") + var/mob/living/carbon/human/H = owner + H.martial_art.streak = "slam" + +/datum/action/throw_wrassle + name = "Throw (Cinch) - Spin a cinched opponent around and throw them." + button_icon_state = "wrassle_throw" + +/datum/action/throw_wrassle/Trigger() + if(owner.incapacitated()) + owner << "You can't WRESTLE while you're OUT FOR THE COUNT." + return + owner.visible_message("[owner] prepares to THROW!", "Your next attack will be a THROW.") + var/mob/living/carbon/human/H = owner + H.martial_art.streak = "throw" + +/datum/action/kick + name = "Kick - A powerful kick, sends people flying away from you. Also useful for escaping from bad situations." + button_icon_state = "wrassle_kick" + +/datum/action/kick/Trigger() + if(owner.incapacitated()) + owner << "You can't WRESTLE while you're OUT FOR THE COUNT." + return + owner.visible_message("[owner] prepares to KICK!", "Your next attack will be a KICK.") + var/mob/living/carbon/human/H = owner + H.martial_art.streak = "kick" + +/datum/action/strike + name = "Strike - Hit a neaby opponent with a quick attack." + button_icon_state = "wrassle_strike" + +/datum/action/strike/Trigger() + if(owner.incapacitated()) + owner << "You can't WRESTLE while you're OUT FOR THE COUNT." + return + owner.visible_message("[owner] prepares to STRIKE!", "Your next attack will be a STRIKE.") + var/mob/living/carbon/human/H = owner + H.martial_art.streak = "strike" + +/datum/action/drop + name = "Drop - Smash down onto an opponent." + button_icon_state = "wrassle_drop" + +/datum/action/drop/Trigger() + if(owner.incapacitated()) + owner << "You can't WRESTLE while you're OUT FOR THE COUNT." + return + owner.visible_message("[owner] prepares to LEG DROP!", "Your next attack will be a LEG DROP.") + var/mob/living/carbon/human/H = owner + H.martial_art.streak = "drop" + +/datum/martial_art/wrestling/teach(var/mob/living/carbon/human/H,var/make_temporary=0) + ..() + H << "SNAP INTO A THIN TIM!" + H << "Place your cursor over a move at the top of the screen to see what it does." + drop.Grant(H) + kick.Grant(H) + slam.Grant(H) + throw_wrassle.Grant(H) + strike.Grant(H) + +/datum/martial_art/wrestling/remove(var/mob/living/carbon/human/H) + ..() + H << "You no longer feel that the tower of power is too sweet to be sour..." + drop.Remove(H) + kick.Remove(H) + slam.Remove(H) + throw_wrassle.Remove(H) + strike.Remove(H) + +/datum/martial_art/wrestling/harm_act(mob/living/carbon/human/A, mob/living/carbon/human/D) + if(check_streak(A,D)) + return 1 + add_logs(A, D, "punched with wrestling") + ..() + +/datum/martial_art/wrestling/proc/throw_wrassle(mob/living/carbon/human/A, mob/living/carbon/human/D) + if(!D) + return + if(!A.pulling || A.pulling != D) + A << "You need to have [D] in a cinch!" + return + D.forceMove(A.loc) + D.setDir(get_dir(D, A)) + + D.Stun(4) + A.visible_message("[A] starts spinning around with [D]!") + A.emote("scream") + + for (var/i = 0, i < 20, i++) + var/delay = 5 + switch (i) + if (17 to INFINITY) + delay = 0.25 + if (14 to 16) + delay = 0.5 + if (9 to 13) + delay = 1 + if (5 to 8) + delay = 2 + if (0 to 4) + delay = 3 + + if (A && D) + + if (get_dist(A, D) > 1) + A << "[D] is too far away!" + return 0 + + if (!isturf(A.loc) || !isturf(D.loc)) + A << "You can't throw [D] from here!" + return 0 + + A.setDir(turn(A.dir, 90)) + var/turf/T = get_step(A, A.dir) + var/turf/S = D.loc + if ((S && isturf(S) && S.Exit(D)) && (T && isturf(T) && T.Enter(A))) + D.forceMove(T) + D.setDir(get_dir(D, A)) + else + return 0 + + sleep(delay) + + if (A && D) + // These are necessary because of the sleep call. + + if (get_dist(A, D) > 1) + A << "[D] is too far away!" + return 0 + + if (!isturf(A.loc) || !isturf(D.loc)) + A << "You can't throw [D] from here!" + return 0 + + D.forceMove(A.loc) // Maybe this will help with the wallthrowing bug. + + A.visible_message("[A] throws [D]!") + playsound(A.loc, "swing_hit", 50, 1) + var/turf/T = get_edge_target_turf(A, A.dir) + if (T && isturf(T)) + if (!D.stat) + D.emote("scream") + D.throw_at(T, 10, 4) + D.Weaken(2) + + add_logs(A, D, "has thrown with wrestling") + return 0 + +/datum/martial_art/wrestling/proc/slam(mob/living/carbon/human/A, mob/living/carbon/human/D) + if(!D) + return + if(!A.pulling || A.pulling != D) + A << "You need to have [D] in a cinch!" + return + D.forceMove(A.loc) + A.setDir(get_dir(A, D)) + D.setDir(get_dir(D, A)) + + A.visible_message("[A] lifts [D] up!") + + spawn (0) + if (D) + animate(D, transform = matrix(180, MATRIX_ROTATE), time = 1, loop = 0) + sleep (15) + if (D) + animate(D, transform = null, time = 1, loop = 0) + + for (var/i = 0, i < 3, i++) + if (A && D) + A.pixel_y += 3 + D.pixel_y += 3 + A.setDir(turn(A.dir, 90)) + D.setDir(turn(D.dir, 90)) + + switch (A.dir) + if (NORTH) + D.pixel_x = A.pixel_x + if (SOUTH) + D.pixel_x = A.pixel_x + if (EAST) + D.pixel_x = A.pixel_x - 8 + if (WEST) + D.pixel_x = A.pixel_x + 8 + + if (get_dist(A, D) > 1) + A << "[D] is too far away!" + A.pixel_x = 0 + A.pixel_y = 0 + D.pixel_x = 0 + D.pixel_y = 0 + return 0 + + if (!isturf(A.loc) || !isturf(D.loc)) + A << "You can't slam [D] here!" + A.pixel_x = 0 + A.pixel_y = 0 + D.pixel_x = 0 + D.pixel_y = 0 + return 0 + else + if (A) + A.pixel_x = 0 + A.pixel_y = 0 + if (D) + D.pixel_x = 0 + D.pixel_y = 0 + return 0 + + sleep (1) + + if (A && D) + A.pixel_x = 0 + A.pixel_y = 0 + D.pixel_x = 0 + D.pixel_y = 0 + + if (get_dist(A, D) > 1) + A << "[D] is too far away!" + return 0 + + if (!isturf(A.loc) || !isturf(D.loc)) + A << "You can't slam [D] here!" + return 0 + + D.forceMove(A.loc) + + var/fluff = "body-slam" + switch(pick(2,3)) + if (2) + fluff = "turbo [fluff]" + if (3) + fluff = "atomic [fluff]" + + A.visible_message("[A] [fluff] [D]!") + playsound(A.loc, "swing_hit", 50, 1) + if (!D.stat) + D.emote("scream") + D.weakened += 2 + D.stunned += 2 + + switch(rand(1,3)) + if (2) + D.adjustBruteLoss(rand(20,30)) + if (3) + D.ex_act(3) + else + D.adjustBruteLoss(rand(10,20)) + else + D.ex_act(3) + + else + if (A) + A.pixel_x = 0 + A.pixel_y = 0 + if (D) + D.pixel_x = 0 + D.pixel_y = 0 + + + add_logs(A, D, "body-slammed") + return 0 + +/datum/martial_art/wrestling/proc/strike(mob/living/carbon/human/A, mob/living/carbon/human/D) + if(!D) + return + var/turf/T = get_turf(A) + if (T && isturf(T) && D && isturf(D.loc)) + for (var/i = 0, i < 4, i++) + A.setDir(turn(A.dir, 90)) + + A.forceMove(D.loc) + spawn (4) + if (A && (T && isturf(T) && get_dist(A, T) <= 1)) + A.forceMove(T) + + A.visible_message("[A] headbutts [D]!") + D.adjustBruteLoss(rand(10,20)) + playsound(A.loc, "swing_hit", 50, 1) + D.Paralyse(1) + add_logs(A, D, "headbutted") + +/datum/martial_art/wrestling/proc/kick(mob/living/carbon/human/A, mob/living/carbon/human/D) + if(!D) + return + A.emote("scream") + A.emote("flip") + A.setDir(turn(A.dir, 90)) + + A.visible_message("[A] roundhouse-kicks [D]!") + playsound(A.loc, "swing_hit", 50, 1) + D.adjustBruteLoss(rand(10,20)) + + var/turf/T = get_edge_target_turf(A, get_dir(A, get_step_away(D, A))) + if (T && isturf(T)) + D.Weaken(1) + D.throw_at(T, 3, 2) + add_logs(A, D, "roundhouse-kicked") + +/datum/martial_art/wrestling/proc/drop(mob/living/carbon/human/A, mob/living/carbon/human/D) + if(!D) + return + var/obj/surface = null + var/turf/ST = null + var/falling = 0 + + for (var/obj/O in oview(1, A)) + if (O.density == 1) + if (O == A) continue + if (O == D) continue + if (O.opacity) continue + else + surface = O + ST = get_turf(O) + break + + if (surface && (ST && isturf(ST))) + A.forceMove(ST) + A.visible_message("[A] climbs onto [surface]!") + A.pixel_y = 10 + falling = 1 + sleep(10) + + if (A && D) + // These are necessary because of the sleep call. + + if ((falling == 0 && get_dist(A, D) > 1) || (falling == 1 && get_dist(A, D) > 2)) // We climbed onto stuff. + A.pixel_y = 0 + if (falling == 1) + A.visible_message("...and dives head-first into the ground, ouch!") + A.adjustBruteLoss(rand(10,20)) + A.Weaken(3) + A << "[D] is too far away!" + return 0 + + if (!isturf(A.loc) || !isturf(D.loc)) + A.pixel_y = 0 + A << "You can't drop onto [D] from here!" + return 0 + + if(A) + animate(A, transform = matrix(90, MATRIX_ROTATE), time = 1, loop = 0) + sleep(10) + if(A) + animate(A, transform = null, time = 1, loop = 0) + + A.forceMove(D.loc) + + A.visible_message("[A] leg-drops [D]!") + playsound(A.loc, "swing_hit", 50, 1) + A.emote("scream") + + if (falling == 1) + if (prob(33) || D.stat) + D.ex_act(3) + else + D.adjustBruteLoss(rand(20,30)) + else + D.adjustBruteLoss(rand(20,30)) + + D.Weaken(1) + D.Stun(2) + + A.pixel_y = 0 + + else + if (A) + A.pixel_y = 0 + add_logs(A, D, "leg-dropped") + return + +/datum/martial_art/wrestling/disarm_act(mob/living/carbon/human/A, mob/living/carbon/human/D) + if(check_streak(A,D)) + return 1 + add_logs(A, D, "wrestling-disarmed") + ..() + +/datum/martial_art/wrestling/grab_act(mob/living/carbon/human/A, mob/living/carbon/human/D) + if(check_streak(A,D)) + return 1 + if(A.pulling == D) + return 1 + A.start_pulling(D) + D.visible_message("[A] gets [D] in a cinch!", \ + "[A] gets [D] in a cinch!") + D.Stun(rand(3,5)) + add_logs(A, D, "cinched") + return 1 diff --git a/code/datums/material_container.dm b/code/datums/material_container.dm new file mode 100644 index 0000000..c158dfa --- /dev/null +++ b/code/datums/material_container.dm @@ -0,0 +1,276 @@ +/* + This datum should be used for handling mineral contents of machines and whatever else is supposed to hold minerals and make use of them. + + Variables: + amount - raw amount of the mineral this container is holding, calculated by the defined value MINERAL_MATERIAL_AMOUNT=2000. + max_amount - max raw amount of mineral this container can hold. + sheet_type - type of the mineral sheet the container handles, used for output. + owner - object that this container is being used by, used for output. + MAX_STACK_SIZE - size of a stack of mineral sheets. Constant. +*/ + +/datum/material_container + var/total_amount = 0 + var/max_amount + var/sheet_type + var/obj/owner + var/list/materials = list() + //MAX_STACK_SIZE = 50 + //MINERAL_MATERIAL_AMOUNT = 2000 + +/datum/material_container/New(obj/O, list/mat_list, max_amt = 0) + owner = O + max_amount = max(0, max_amt) + + var/list/possible_mats = list() + for(var/mat_type in subtypesof(/datum/material)) + var/datum/material/MT = mat_type + possible_mats[initial(MT.id)] = mat_type + for(var/id in mat_list) + if(possible_mats[id]) + var/mat_path = possible_mats[id] + materials[id] = new mat_path() + +/datum/material_container/Destroy() + owner = null + return ..() + +//For inserting an amount of material +/datum/material_container/proc/insert_amount(amt, id = null) + if(amt > 0 && has_space(amt)) + var/total_amount_saved = total_amount + if(id) + var/datum/material/M = materials[id] + if(M) + M.amount += amt + total_amount += amt + else + for(var/i in materials) + var/datum/material/M = materials[i] + M.amount += amt + total_amount += amt + return (total_amount - total_amount_saved) + return 0 + +/datum/material_container/proc/insert_stack(obj/item/stack/S, amt = 0) + if(amt <= 0) + return 0 + if(amt > S.amount) + amt = S.amount + + var/material_amt = get_item_material_amount(S) + if(!material_amt) + return 0 + + amt = min(amt, round(((max_amount - total_amount) / material_amt))) + if(!amt) + return 0 + + insert_materials(S,amt) + S.use(amt) + return amt + +/datum/material_container/proc/insert_item(obj/item/I, multiplier = 1) + if(!I) + return 0 + if(istype(I,/obj/item/stack)) + var/obj/item/stack/S = I + return insert_stack(I, S.amount) + + var/material_amount = get_item_material_amount(I) + if(!material_amount || !has_space(material_amount)) + return 0 + + insert_materials(I, multiplier) + return material_amount + +/datum/material_container/proc/insert_materials(obj/item/I, multiplier = 1) //for internal usage only + var/datum/material/M + for(var/MAT in materials) + M = materials[MAT] + M.amount += I.materials[MAT] * multiplier + total_amount += I.materials[MAT] * multiplier + +//For consuming material +//mats is a list of types of material to use and the corresponding amounts, example: list(MAT_METAL=100, MAT_GLASS=200) +/datum/material_container/proc/use_amount(list/mats, multiplier=1) + if(!mats || !mats.len) + return 0 + + var/datum/material/M + for(var/MAT in materials) + M = materials[MAT] + if(M.amount < (mats[MAT] * multiplier)) + return 0 + + var/total_amount_save = total_amount + for(var/MAT in materials) + M = materials[MAT] + M.amount -= mats[MAT] * multiplier + total_amount -= mats[MAT] * multiplier + + return total_amount_save - total_amount + + +/datum/material_container/proc/use_amount_type(amt, id) + var/datum/material/M = materials[id] + if(M) + if(M.amount >= amt) + M.amount -= amt + total_amount -= amt + return amt + return 0 + +/datum/material_container/proc/can_use_amount(amt, id, list/mats) + if(amt && id) + var/datum/material/M = materials[id] + if(M && M.amount >= amt) + return TRUE + else if(istype(mats)) + for(var/M in mats) + if(materials[M] && (mats[M] <= materials[M])) + continue + else + return FALSE + return TRUE + return FALSE + +//For spawning mineral sheets; internal use only +/datum/material_container/proc/retrieve(sheet_amt, datum/material/M) + if(!M.sheet_type) + return 0 + if(sheet_amt > 0) + if(M.amount < (sheet_amt * MINERAL_MATERIAL_AMOUNT)) + sheet_amt = round(M.amount / MINERAL_MATERIAL_AMOUNT) + var/count = 0 + + while(sheet_amt > MAX_STACK_SIZE) + new M.sheet_type(get_turf(owner), MAX_STACK_SIZE) + count += MAX_STACK_SIZE + use_amount_type(sheet_amt * MINERAL_MATERIAL_AMOUNT, M.id) + sheet_amt -= MAX_STACK_SIZE + + if(round(M.amount / MINERAL_MATERIAL_AMOUNT)) + new M.sheet_type(get_turf(owner), sheet_amt) + count += sheet_amt + use_amount_type(sheet_amt * MINERAL_MATERIAL_AMOUNT, M.id) + return count + return 0 + +/datum/material_container/proc/retrieve_sheets(sheet_amt, id) + if(materials[id]) + return retrieve(sheet_amt, materials[id]) + return 0 + +/datum/material_container/proc/retrieve_amount(amt, id) + return retrieve_sheets(amount2sheet(amt), id) + +/datum/material_container/proc/retrieve_all() + var/result = 0 + var/datum/material/M + for(var/MAT in materials) + M = materials[MAT] + result += retrieve_sheets(amount2sheet(M.amount), MAT) + return result + +/datum/material_container/proc/has_space(amt = 0) + return (total_amount + amt) <= max_amount + +/datum/material_container/proc/has_materials(list/mats, multiplier=1) + if(!mats || !mats.len) + return 0 + + var/datum/material/M + for(var/MAT in mats) + M = materials[MAT] + if(M.amount < (mats[MAT] * multiplier)) + return 0 + return 1 + +/datum/material_container/proc/amount2sheet(amt) + if(amt >= MINERAL_MATERIAL_AMOUNT) + return round(amt / MINERAL_MATERIAL_AMOUNT) + return 0 + +/datum/material_container/proc/sheet2amount(sheet_amt) + if(sheet_amt > 0) + return sheet_amt * MINERAL_MATERIAL_AMOUNT + return 0 + +/datum/material_container/proc/amount(id) + var/datum/material/M = materials[id] + return M ? M.amount : 0 + +//returns the amount of material relevant to this container; +//if this container does not support glass, any glass in 'I' will not be taken into account +/datum/material_container/proc/get_item_material_amount(obj/item/I) + if(!istype(I)) + return 0 + var/material_amount = 0 + for(var/MAT in materials) + material_amount += I.materials[MAT] + return material_amount + + +/datum/material + var/name + var/amount = 0 + var/id = null + var/sheet_type = null + var/coin_type = null + +/datum/material/metal + name = "Metal" + id = MAT_METAL + sheet_type = /obj/item/stack/sheet/metal + coin_type = /obj/item/weapon/coin/iron + +/datum/material/glass + name = "Glass" + id = MAT_GLASS + sheet_type = /obj/item/stack/sheet/glass + +/datum/material/silver + name = "Silver" + id = MAT_SILVER + sheet_type = /obj/item/stack/sheet/mineral/silver + coin_type = /obj/item/weapon/coin/silver + +/datum/material/gold + name = "Gold" + id = MAT_GOLD + sheet_type = /obj/item/stack/sheet/mineral/gold + coin_type = /obj/item/weapon/coin/gold + +/datum/material/diamond + name = "Diamond" + id = MAT_DIAMOND + sheet_type = /obj/item/stack/sheet/mineral/diamond + coin_type = /obj/item/weapon/coin/diamond + +/datum/material/uranium + name = "Uranium" + id = MAT_URANIUM + sheet_type = /obj/item/stack/sheet/mineral/uranium + coin_type = /obj/item/weapon/coin/uranium + +/datum/material/plasma + name = "Solid Plasma" + id = MAT_PLASMA + sheet_type = /obj/item/stack/sheet/mineral/plasma + coin_type = /obj/item/weapon/coin/plasma + +/datum/material/bananium + name = "Bananium" + id = MAT_BANANIUM + sheet_type = /obj/item/stack/sheet/mineral/bananium + coin_type = /obj/item/weapon/coin/clown + +/datum/material/titanium + name = "Titanium" + id = MAT_TITANIUM + sheet_type = /obj/item/stack/sheet/mineral/titanium + +/datum/material/biomass + name = "Biomass" + id = MAT_BIOMASS diff --git a/code/datums/mind.dm b/code/datums/mind.dm new file mode 100644 index 0000000..56dadb6 --- /dev/null +++ b/code/datums/mind.dm @@ -0,0 +1,1561 @@ +/* Note from Carnie: + The way datum/mind stuff works has been changed a lot. + Minds now represent IC characters rather than following a client around constantly. + + Guidelines for using minds properly: + + - Never mind.transfer_to(ghost). The var/current and var/original of a mind must always be of type mob/living! + ghost.mind is however used as a reference to the ghost's corpse + + - When creating a new mob for an existing IC character (e.g. cloning a dead guy or borging a brain of a human) + the existing mind of the old mob should be transfered to the new mob like so: + + mind.transfer_to(new_mob) + + - You must not assign key= or ckey= after transfer_to() since the transfer_to transfers the client for you. + By setting key or ckey explicitly after transfering the mind with transfer_to you will cause bugs like DCing + the player. + + - IMPORTANT NOTE 2, if you want a player to become a ghost, use mob.ghostize() It does all the hard work for you. + + - When creating a new mob which will be a new IC character (e.g. putting a shade in a construct or randomly selecting + a ghost to become a xeno during an event). Simply assign the key or ckey like you've always done. + + new_mob.key = key + + The Login proc will handle making a new mob for that mobtype (including setting up stuff like mind.name). Simple! + However if you want that mind to have any special properties like being a traitor etc you will have to do that + yourself. + +*/ + +/datum/mind + var/key + var/name //replaces mob/var/original_name + var/mob/living/current + var/active = 0 + + var/memory + var/attack_log + + var/assigned_role + var/special_role + var/list/restricted_roles = list() + + var/datum/job/assigned_job + + var/list/datum/objective/objectives = list() + var/list/datum/objective/special_verbs = list() + + var/list/cult_words = list() + var/list/spell_list = list() // Wizard mode & "Give Spell" badmin button. + + var/datum/faction/faction //associated faction + var/datum/changeling/changeling //changeling holder + var/linglink + + var/miming = 0 // Mime's vow of silence + var/antag_hud_icon_state = null //this mind's ANTAG_HUD should have this icon_state + var/datum/atom_hud/antag/antag_hud = null //this mind's antag HUD + var/datum/gang/gang_datum //Which gang this mind belongs to, if any + var/datum/devilinfo/devilinfo //Information about the devil, if any. + var/damnation_type = 0 + var/datum/mind/soulOwner //who owns the soul. Under normal circumstances, this will point to src + + var/mob/living/enslaved_to //If this mind's master is another mob (i.e. adamantine golems) + +/datum/mind/New(var/key) + src.key = key + soulOwner = src + + +/datum/mind/proc/transfer_to(mob/new_character, var/force_key_move = 0) + if(current) // remove ourself from our old body's mind variable + current.mind = null + SStgui.on_transfer(current, new_character) + + if(key) + if(new_character.key != key) //if we're transfering into a body with a key associated which is not ours + new_character.ghostize(1) //we'll need to ghostize so that key isn't mobless. + else + key = new_character.key + + if(new_character.mind) //disassociate any mind currently in our new body's mind variable + new_character.mind.current = null + + if(istype(current) && islist(current.antag_datums)) //wow apparently current isn't always living good fucking job SOMEONE + for(var/i in current.antag_datums) + var/datum/antagonist/D = i + D.transfer_to_new_body(new_character) + var/datum/atom_hud/antag/hud_to_transfer = antag_hud//we need this because leave_hud() will clear this list + leave_all_huds() //leave all the huds in the old body, so it won't get huds if somebody else enters it + current = new_character //associate ourself with our new body + new_character.mind = src //and associate our new body with ourself + transfer_antag_huds(hud_to_transfer) //inherit the antag HUD + transfer_actions(new_character) + + if(active || force_key_move) + new_character.key = key //now transfer the key to link the client to our new body + +/datum/mind/proc/store_memory(new_text) + memory += "[new_text]
    " + +/datum/mind/proc/wipe_memory() + memory = null + + +/* + Removes antag type's references from a mind. + objectives, uplinks, powers etc are all handled. +*/ + +/datum/mind/proc/remove_objectives() + if(objectives.len) + for(var/datum/objective/O in objectives) + objectives -= O + qdel(O) + +/datum/mind/proc/remove_changeling() + if(src in ticker.mode.changelings) + ticker.mode.changelings -= src + current.remove_changeling_powers() + if(changeling) + qdel(changeling) + changeling = null + special_role = null + remove_antag_equip() + ticker.mode.update_changeling_icons_removed(src) + +/datum/mind/proc/remove_traitor() + if(src in ticker.mode.traitors) + ticker.mode.traitors -= src + if(isAI(current)) + var/mob/living/silicon/ai/A = current + A.set_zeroth_law("") + A.show_laws() + A.verbs -= /mob/living/silicon/ai/proc/choose_modules + A.malf_picker.remove_verbs(A) + qdel(A.malf_picker) + special_role = null + remove_antag_equip() + ticker.mode.update_traitor_icons_removed(src) + +/datum/mind/proc/remove_nukeop() + if(src in ticker.mode.syndicates) + ticker.mode.syndicates -= src + ticker.mode.update_synd_icons_removed(src) + special_role = null + remove_objectives() + remove_antag_equip() + +/datum/mind/proc/remove_wizard() + if(src in ticker.mode.wizards) + ticker.mode.wizards -= src + current.spellremove(current) + special_role = null + remove_antag_equip() + +/datum/mind/proc/remove_cultist() + if(src in ticker.mode.cult) + ticker.mode.remove_cultist(src, 0, 0) + special_role = null + remove_objectives() + remove_antag_equip() + +/datum/mind/proc/remove_rev() + if(src in ticker.mode.revolutionaries) + ticker.mode.revolutionaries -= src + ticker.mode.update_rev_icons_removed(src) + if(src in ticker.mode.head_revolutionaries) + ticker.mode.head_revolutionaries -= src + ticker.mode.update_rev_icons_removed(src) + special_role = null + remove_objectives() + remove_antag_equip() + + +/datum/mind/proc/remove_gang() + ticker.mode.remove_gangster(src,0,1,1) + remove_objectives() + +/datum/mind/proc/remove_antag_equip() + var/list/Mob_Contents = current.get_contents() + for(var/obj/item/I in Mob_Contents) + if(istype(I, /obj/item/device/pda)) + var/obj/item/device/pda/P = I + P.lock_code = "" + + else if(istype(I, /obj/item/device/radio)) + var/obj/item/device/radio/R = I + R.traitor_frequency = 0 + +/datum/mind/proc/remove_all_antag() //For the Lazy amongst us. + remove_changeling() + remove_traitor() + remove_nukeop() + remove_wizard() + remove_cultist() + remove_rev() + remove_gang() + ticker.mode.update_changeling_icons_removed(src) + ticker.mode.update_traitor_icons_removed(src) + ticker.mode.update_wiz_icons_removed(src) + ticker.mode.update_cult_icons_removed(src) + ticker.mode.update_rev_icons_removed(src) + if(gang_datum) + gang_datum.remove_gang_hud(src) + + +//Link a new mobs mind to the creator of said mob. They will join any team they are currently on, and will only switch teams when their creator does. + +/datum/mind/proc/enslave_mind_to_creator(mob/living/creator) + if(iscultist(creator)) + ticker.mode.add_cultist(src) + + else if(is_gangster(creator)) + ticker.mode.add_gangster(src, creator.mind.gang_datum, TRUE) + + else if(is_revolutionary_in_general(creator)) + ticker.mode.add_revolutionary(src) + + else if(is_servant_of_ratvar(creator)) + add_servant_of_ratvar(current) + + else if(is_nuclear_operative(creator)) + make_Nuke(null, null, 0, FALSE) + + enslaved_to = creator + + current.faction = creator.faction.Copy() + + if(creator.mind.special_role) + message_admins("[key_name_admin(current)](?) has been created by [key_name_admin(creator)](?), an antagonist.") + current << "Despite your creators current allegiances, your true master remains [creator.real_name]. If their loyalities change, so do yours. This will never change unless your creator's body is destroyed." + +/datum/mind/proc/show_memory(mob/recipient, window=1) + if(!recipient) + recipient = current + var/output = "[current.real_name]'s Memories:
    " + output += memory + + if(objectives.len) + output += "Objectives:" + var/obj_count = 1 + for(var/datum/objective/objective in objectives) + output += "
    Objective #[obj_count++]: [objective.explanation_text]" + + if(window) + recipient << browse(output,"window=memory") + else + recipient << "[output]" + +/datum/mind/proc/edit_memory() + if(!ticker || !ticker.mode) + alert("Not before round-start!", "Alert") + return + + var/out = "[name][(current&&(current.real_name!=name))?" (as [current.real_name])":""]
    " + out += "Mind currently owned by key: [key] [active?"(synced)":"(not synced)"]
    " + out += "Assigned role: [assigned_role]. Edit
    " + out += "Faction and special role: [special_role]
    " + + var/list/sections = list( + "revolution", + "gang", + "cult", + "wizard", + "changeling", + "nuclear", + "traitor", // "traitorchan", + "monkey", + "clockcult" + ) + var/text = "" + + if(ishuman(current)) + /** REVOLUTION ***/ + text = "revolution" + if (ticker.mode.config_tag=="revolution") + text = uppertext(text) + text = "[text]: " + if (assigned_role in command_positions) + text += "HEAD|loyal|employee|headrev|rev" + else if (src in ticker.mode.head_revolutionaries) + text += "head|loyal|employee|HEADREV|rev" + text += "
    Flash: give" + + var/list/L = current.get_contents() + var/obj/item/device/assembly/flash/flash = locate() in L + if (flash) + if(!flash.crit_fail) + text += "|take." + else + text += "|take|repair." + else + text += "." + + text += " Reequip (gives traitor uplink)." + if (objectives.len==0) + text += "
    Objectives are empty! Set to kill all heads." + else if(current.isloyal()) + text += "head|LOYAL|employee|headrev|rev" + else if (src in ticker.mode.revolutionaries) + text += "head|loyal|employee|headrev|REV" + else + text += "head|loyal|EMPLOYEE|headrev|rev" + + if(current && current.client && (ROLE_REV in current.client.prefs.be_special)) + text += "|Enabled in Prefs" + else + text += "|Disabled in Prefs" + + sections["revolution"] = text + + /** GANG ***/ + text = "gang" + if (ticker.mode.config_tag=="gang") + text = uppertext(text) + text = "[text]: " + text += "[current.isloyal() ? "LOYAL" : "loyal"]|" + if(src in ticker.mode.get_all_gangsters()) + text += "none" + else + text += "NONE" + + if(current && current.client && (ROLE_GANG in current.client.prefs.be_special)) + text += "|Enabled in Prefs
    " + else + text += "|Disabled in Prefs
    " + + for(var/datum/gang/G in ticker.mode.gangs) + text += "[G.name]: " + if(src in (G.gangsters)) + text += "GANGSTER" + else + text += "gangster" + text += "|" + if(src in (G.bosses)) + text += "GANG LEADER" + text += "|Equipment: give" + var/list/L = current.get_contents() + var/obj/item/device/gangtool/gangtool = locate() in L + if (gangtool) + text += "|take" + + else + text += "gang leader" + text += "
    " + + if(gang_colors_pool.len) + text += "Create New Gang" + + sections["gang"] = text + + /** Abductors **/ + text = "Abductor" + if(ticker.mode.config_tag == "abductor") + text = uppertext(text) + text = "[text]: " + if(src in ticker.mode.abductors) + text += "Abductor|human" + text += "|undress|equip" + else + text += "Abductor|human" + + if(current && current.client && (ROLE_ABDUCTOR in current.client.prefs.be_special)) + text += "|Enabled in Prefs" + else + text += "|Disabled in Prefs" + + sections["abductor"] = text + + /** NUCLEAR ***/ + text = "nuclear" + if (ticker.mode.config_tag=="nuclear") + text = uppertext(text) + text = "[text]: " + if (src in ticker.mode.syndicates) + text += "OPERATIVE|nanotrasen" + text += "
    To shuttle, undress, dress up." + var/code + for (var/obj/machinery/nuclearbomb/bombue in machines) + if (length(bombue.r_code) <= 5 && bombue.r_code != "LOLNO" && bombue.r_code != "ADMIN") + code = bombue.r_code + break + if (code) + text += " Code is [code]. tell the code." + else + text += "operative|NANOTRASEN" + + if(current && current.client && (ROLE_OPERATIVE in current.client.prefs.be_special)) + text += "|Enabled in Prefs" + else + text += "|Disabled in Prefs" + + sections["nuclear"] = text + + /** WIZARD ***/ + text = "wizard" + if (ticker.mode.config_tag=="wizard") + text = uppertext(text) + text = "[text]: " + if ((src in ticker.mode.wizards) || (src in ticker.mode.apprentices)) + text += "YES|no" + text += "
    To lair, undress, dress up, let choose name." + if (objectives.len==0) + text += "
    Objectives are empty! Randomize!" + else + text += "yes|NO" + + if(current && current.client && (ROLE_WIZARD in current.client.prefs.be_special)) + text += "|Enabled in Prefs" + else + text += "|Disabled in Prefs" + + sections["wizard"] = text + + /** CULT ***/ + text = "cult" + if (ticker.mode.config_tag=="cult") + text = uppertext(text) + text = "[text]: " + if(iscultist(current)) + text += "loyal|employee|CULTIST" + text += "
    Give tome|amulet." + + else if(current.isloyal()) + text += "LOYAL|employee|cultist" + else if(is_convertable_to_cult(current)) + text += "loyal|EMPLOYEE|cultist" + else + text += "loyal|EMPLOYEE|cannot serve Nar-Sie" + + if(current && current.client && (ROLE_CULTIST in current.client.prefs.be_special)) + text += "|Enabled in Prefs" + else + text += "|Disabled in Prefs" + + sections["cult"] = text + + /** CLOCKWORK CULT **/ + text = "clockwork cult" + if(ticker.mode.config_tag == "clockwork cult") + text = uppertext(text) + text = "[text]: " + if(is_servant_of_ratvar(current)) + text += "loyal|employee|SERVANT" + text += "
    Give slab" + else if(current.isloyal()) + text += "LOYAL|employee|servant" + else if(is_eligible_servant(current)) + text += "loyal|EMPLOYEE|servant" + else + text += "loyal|EMPLOYEE|cannot serve Ratvar" + + if(current && current.client && (ROLE_SERVANT_OF_RATVAR in current.client.prefs.be_special)) + text += "|Enabled in Prefs" + else + text += "|Disabled in Prefs" + + sections["clockcult"] = text + + /** TRAITOR ***/ + text = "traitor" + if (ticker.mode.config_tag=="traitor" || ticker.mode.config_tag=="traitorchan") + text = uppertext(text) + text = "[text]: " + if (src in ticker.mode.traitors) + text += "TRAITOR|loyal" + if (objectives.len==0) + text += "
    Objectives are empty! Randomize!" + else + text += "traitor|LOYAL" + + if(current && current.client && (ROLE_TRAITOR in current.client.prefs.be_special)) + text += "|Enabled in Prefs" + else + text += "|Disabled in Prefs" + + sections["traitor"] = text + + if(ishuman(current) || ismonkey(current)) + + /** CHANGELING ***/ + text = "changeling" + if (ticker.mode.config_tag=="changeling" || ticker.mode.config_tag=="traitorchan") + text = uppertext(text) + text = "[text]: " + if ((src in ticker.mode.changelings) && special_role) + text += "YES|no" + if (objectives.len==0) + text += "
    Objectives are empty! Randomize!" + if(changeling && changeling.stored_profiles.len && (current.real_name != changeling.first_prof.name) ) + text += "
    Transform to initial appearance." + else if(src in ticker.mode.changelings) //Station Aligned Changeling + text += "YES (but not an antag)|no" + if (objectives.len==0) + text += "
    Objectives are empty! Randomize!" + if(changeling && changeling.stored_profiles.len && (current.real_name != changeling.first_prof.name) ) + text += "
    Transform to initial appearance." + else + text += "yes|NO" + + if(current && current.client && (ROLE_CHANGELING in current.client.prefs.be_special)) + text += "|Enabled in Prefs" + else + text += "|Disabled in Prefs" + + sections["changeling"] = text + + /** MONKEY ***/ + text = "monkey" + if (ticker.mode.config_tag=="monkey") + text = uppertext(text) + text = "[text]: " + if (ishuman(current)) + text += "healthy|infected|HUMAN|other" + else if (ismonkey(current)) + var/found = 0 + for(var/datum/disease/D in current.viruses) + if(istype(D, /datum/disease/transformation/jungle_fever)) found = 1 + + if(found) + text += "healthy|INFECTED|human|other" + else + text += "HEALTHY|infected|human|other" + + else + text += "healthy|infected|human|OTHER" + + if(current && current.client && (ROLE_MONKEY in current.client.prefs.be_special)) + text += "|Enabled in Prefs" + else + text += "|Disabled in Prefs" + + sections["monkey"] = text + + /** devil ***/ + text = "devil" + if(ticker.mode.config_tag == "devil") + text = uppertext(text) + text = "[text]: " + if(src in ticker.mode.devils) + text += "DEVIL|sintouched|human" + else if(src in ticker.mode.sintouched) + text += "devil|SINTOUCHED|human" + else + text += "devil|sintouched|HUMAN" + + if(current && current.client && (ROLE_DEVIL in current.client.prefs.be_special)) + text += "|Enabled in Prefs" + else + text += "|Disabled in Prefs" + sections["devil"] = text + + + /** SILICON ***/ + + if(issilicon(current)) + text = "silicon" + var/mob/living/silicon/robot/robot = current + if (istype(robot) && robot.emagged) + text += "
    Cyborg: Is emagged! Unemag!
    0th law: [robot.laws.zeroth]" + var/mob/living/silicon/ai/ai = current + if (istype(ai) && ai.connected_robots.len) + var/n_e_robots = 0 + for (var/mob/living/silicon/robot/R in ai.connected_robots) + if (R.emagged) + n_e_robots++ + text += "
    [n_e_robots] of [ai.connected_robots.len] slaved cyborgs are emagged. Unemag" + if (ticker.mode.config_tag == "traitorchan") + if (sections["traitor"]) + out += sections["traitor"]+"
    " + if (sections["changeling"]) + out += sections["changeling"]+"

    " + sections -= "traitor" + sections -= "changeling" + else + if (sections[ticker.mode.config_tag]) + out += sections[ticker.mode.config_tag]+"

    " + sections -= ticker.mode.config_tag + for (var/i in sections) + if (sections[i]) + out += sections[i]+"
    " + + + if(((src in ticker.mode.head_revolutionaries) || (src in ticker.mode.traitors) || (src in ticker.mode.syndicates)) && ishuman(current)) + + text = "Uplink: give" + var/obj/item/device/uplink/U = find_syndicate_uplink() + if(U) + text += "|take" + if (check_rights(R_FUN, 0)) + text += ", [U.telecrystals] TC" + else + text += ", [U.telecrystals] TC" + text += "." //hiel grammar + out += text + + out += "

    " + + out += "Memory:
    " + out += memory + out += "
    Edit memory
    " + out += "Objectives:
    " + if (objectives.len == 0) + out += "EMPTY
    " + else + var/obj_count = 1 + for(var/datum/objective/objective in objectives) + out += "[obj_count]: [objective.explanation_text] Edit Delete Toggle Completion
    " + obj_count++ + out += "Add objective

    " + + out += "Announce objectives

    " + + usr << browse(out, "window=edit_memory[src];size=500x600") + + +/datum/mind/Topic(href, href_list) + if(!check_rights(R_ADMIN)) + return + + if (href_list["role_edit"]) + var/new_role = input("Select new role", "Assigned role", assigned_role) as null|anything in get_all_jobs() + if (!new_role) + return + assigned_role = new_role + + else if (href_list["memory_edit"]) + var/new_memo = copytext(sanitize(input("Write new memory", "Memory", memory) as null|message),1,MAX_MESSAGE_LEN) + if (isnull(new_memo)) + return + memory = new_memo + + else if (href_list["obj_edit"] || href_list["obj_add"]) + var/datum/objective/objective + var/objective_pos + var/def_value + + if (href_list["obj_edit"]) + objective = locate(href_list["obj_edit"]) + if (!objective) + return + objective_pos = objectives.Find(objective) + + //Text strings are easy to manipulate. Revised for simplicity. + var/temp_obj_type = "[objective.type]"//Convert path into a text string. + def_value = copytext(temp_obj_type, 19)//Convert last part of path into an objective keyword. + if(!def_value)//If it's a custom objective, it will be an empty string. + def_value = "custom" + + var/new_obj_type = input("Select objective type:", "Objective type", def_value) as null|anything in list("assassinate", "maroon", "debrain", "protect", "destroy", "prevent", "hijack", "escape", "survive", "martyr", "steal", "download", "nuclear", "capture", "absorb", "custom") + if (!new_obj_type) + return + + var/datum/objective/new_objective = null + + switch (new_obj_type) + if ("assassinate","protect","debrain","maroon") + var/list/possible_targets = list("Free objective") + for(var/datum/mind/possible_target in ticker.minds) + if ((possible_target != src) && ishuman(possible_target.current)) + possible_targets += possible_target.current + + var/mob/def_target = null + var/objective_list[] = list(/datum/objective/assassinate, /datum/objective/protect, /datum/objective/debrain, /datum/objective/maroon) + if (objective&&(objective.type in objective_list) && objective:target) + def_target = objective:target.current + + var/new_target = input("Select target:", "Objective target", def_target) as null|anything in possible_targets + if (!new_target) + return + + var/objective_path = text2path("/datum/objective/[new_obj_type]") + if (new_target == "Free objective") + new_objective = new objective_path + new_objective.owner = src + new_objective:target = null + new_objective.explanation_text = "Free objective" + else + new_objective = new objective_path + new_objective.owner = src + new_objective:target = new_target:mind + //Will display as special role if the target is set as MODE. Ninjas/commandos/nuke ops. + new_objective.update_explanation_text() + + if ("destroy") + var/list/possible_targets = active_ais(1) + if(possible_targets.len) + var/mob/new_target = input("Select target:", "Objective target") as null|anything in possible_targets + new_objective = new /datum/objective/destroy + new_objective.target = new_target.mind + new_objective.owner = src + new_objective.update_explanation_text() + else + usr << "No active AIs with minds" + + if ("prevent") + new_objective = new /datum/objective/block + new_objective.owner = src + + if ("hijack") + new_objective = new /datum/objective/hijack + new_objective.owner = src + + if ("escape") + new_objective = new /datum/objective/escape + new_objective.owner = src + + if ("survive") + new_objective = new /datum/objective/survive + new_objective.owner = src + + if("martyr") + new_objective = new /datum/objective/martyr + new_objective.owner = src + + if ("nuclear") + new_objective = new /datum/objective/nuclear + new_objective.owner = src + + if ("steal") + if (!istype(objective, /datum/objective/steal)) + new_objective = new /datum/objective/steal + new_objective.owner = src + else + new_objective = objective + var/datum/objective/steal/steal = new_objective + if (!steal.select_target()) + return + + if("download","capture","absorb") + var/def_num + if(objective&&objective.type==text2path("/datum/objective/[new_obj_type]")) + def_num = objective.target_amount + + var/target_number = input("Input target number:", "Objective", def_num) as num|null + if (isnull(target_number))//Ordinarily, you wouldn't need isnull. In this case, the value may already exist. + return + + switch(new_obj_type) + if("download") + new_objective = new /datum/objective/download + new_objective.explanation_text = "Download [target_number] research levels." + if("capture") + new_objective = new /datum/objective/capture + new_objective.explanation_text = "Capture [target_number] lifeforms with an energy net. Live, rare specimens are worth more." + if("absorb") + new_objective = new /datum/objective/absorb + new_objective.explanation_text = "Absorb [target_number] compatible genomes." + new_objective.owner = src + new_objective.target_amount = target_number + + if ("custom") + var/expl = stripped_input(usr, "Custom objective:", "Objective", objective ? objective.explanation_text : "") + if (!expl) + return + new_objective = new /datum/objective + new_objective.owner = src + new_objective.explanation_text = expl + + if (!new_objective) + return + + if (objective) + objectives -= objective + objectives.Insert(objective_pos, new_objective) + message_admins("[key_name_admin(usr)] edited [current]'s objective to [new_objective.explanation_text]") + log_admin("[key_name(usr)] edited [current]'s objective to [new_objective.explanation_text]") + else + objectives += new_objective + message_admins("[key_name_admin(usr)] added a new objective for [current]: [new_objective.explanation_text]") + log_admin("[key_name(usr)] added a new objective for [current]: [new_objective.explanation_text]") + + else if (href_list["obj_delete"]) + var/datum/objective/objective = locate(href_list["obj_delete"]) + if(!istype(objective)) + return + objectives -= objective + message_admins("[key_name_admin(usr)] removed an objective for [current]: [objective.explanation_text]") + log_admin("[key_name(usr)] removed an objective for [current]: [objective.explanation_text]") + + else if(href_list["obj_completed"]) + var/datum/objective/objective = locate(href_list["obj_completed"]) + if(!istype(objective)) + return + objective.completed = !objective.completed + log_admin("[key_name(usr)] toggled the win state for [current]'s objective: [objective.explanation_text]") + + else if (href_list["revolution"]) + switch(href_list["revolution"]) + if("clear") + remove_rev() + current << "You have been brainwashed! You are no longer a revolutionary!" + message_admins("[key_name_admin(usr)] has de-rev'ed [current].") + log_admin("[key_name(usr)] has de-rev'ed [current].") + if("rev") + if(src in ticker.mode.head_revolutionaries) + ticker.mode.head_revolutionaries -= src + ticker.mode.update_rev_icons_removed(src) + current << "Revolution has been disappointed of your leader traits! You are a regular revolutionary now!" + else if(!(src in ticker.mode.revolutionaries)) + current << " You are now a revolutionary! Help your cause. Do not harm your fellow freedom fighters. You can identify your comrades by the red \"R\" icons, and your leaders by the blue \"R\" icons. Help them kill the heads to win the revolution!" + else + return + ticker.mode.revolutionaries += src + ticker.mode.update_rev_icons_added(src) + special_role = "Revolutionary" + message_admins("[key_name_admin(usr)] has rev'ed [current].") + log_admin("[key_name(usr)] has rev'ed [current].") + + if("headrev") + if(src in ticker.mode.revolutionaries) + ticker.mode.revolutionaries -= src + ticker.mode.update_rev_icons_removed(src) + current << "You have proved your devotion to revoltion! Yea are a head revolutionary now!" + else if(!(src in ticker.mode.head_revolutionaries)) + current << "You are a member of the revolutionaries' leadership now!" + else + return + if (ticker.mode.head_revolutionaries.len>0) + // copy targets + var/datum/mind/valid_head = locate() in ticker.mode.head_revolutionaries + if (valid_head) + for (var/datum/objective/mutiny/O in valid_head.objectives) + var/datum/objective/mutiny/rev_obj = new + rev_obj.owner = src + rev_obj.target = O.target + rev_obj.explanation_text = "Assassinate [O.target.name], the [O.target.assigned_role]." + objectives += rev_obj + ticker.mode.greet_revolutionary(src,0) + ticker.mode.head_revolutionaries += src + ticker.mode.update_rev_icons_added(src) + special_role = "Head Revolutionary" + message_admins("[key_name_admin(usr)] has head-rev'ed [current].") + log_admin("[key_name(usr)] has head-rev'ed [current].") + + if("autoobjectives") + ticker.mode.forge_revolutionary_objectives(src) + ticker.mode.greet_revolutionary(src,0) + usr << "The objectives for revolution have been generated and shown to [key]" + + if("flash") + if (!ticker.mode.equip_revolutionary(current)) + usr << "Spawning flash failed!" + + if("takeflash") + var/list/L = current.get_contents() + var/obj/item/device/assembly/flash/flash = locate() in L + if (!flash) + usr << "Deleting flash failed!" + qdel(flash) + + if("repairflash") + var/list/L = current.get_contents() + var/obj/item/device/assembly/flash/flash = locate() in L + if (!flash) + usr << "Repairing flash failed!" + else + flash.crit_fail = 0 + flash.update_icon() + + + +//////////////////// GANG MODE + + else if (href_list["gang"]) + switch(href_list["gang"]) + if("clear") + remove_gang() + message_admins("[key_name_admin(usr)] has de-gang'ed [current].") + log_admin("[key_name(usr)] has de-gang'ed [current].") + + if("equip") + switch(ticker.mode.equip_gang(current,gang_datum)) + if(1) + usr << "Unable to equip territory spraycan!" + if(2) + usr << "Unable to equip recruitment pen and spraycan!" + if(3) + usr << "Unable to equip gangtool, pen, and spraycan!" + + if("takeequip") + var/list/L = current.get_contents() + for(var/obj/item/weapon/pen/gang/pen in L) + qdel(pen) + for(var/obj/item/device/gangtool/gangtool in L) + qdel(gangtool) + for(var/obj/item/toy/crayon/spraycan/gang/SC in L) + qdel(SC) + + if("new") + if(gang_colors_pool.len) + var/list/names = list("Random") + gang_name_pool + var/gangname = input("Pick a gang name.","Select Name") as null|anything in names + if(gangname && gang_colors_pool.len) //Check again just in case another admin made max gangs at the same time + if(!(gangname in gang_name_pool)) + gangname = null + var/datum/gang/newgang = new(null,gangname) + ticker.mode.gangs += newgang + message_admins("[key_name_admin(usr)] has created the [newgang.name] Gang.") + log_admin("[key_name(usr)] has created the [newgang.name] Gang.") + + else if (href_list["gangboss"]) + var/datum/gang/G = locate(href_list["gangboss"]) in ticker.mode.gangs + if(!G || (src in G.bosses)) + return + ticker.mode.remove_gangster(src,0,2,1) + G.bosses += src + gang_datum = G + special_role = "[G.name] Gang Boss" + G.add_gang_hud(src) + current << "You are a [G.name] Gang Boss!" + message_admins("[key_name_admin(usr)] has added [current] to the [G.name] Gang leadership.") + log_admin("[key_name(usr)] has added [current] to the [G.name] Gang leadership.") + ticker.mode.forge_gang_objectives(src) + ticker.mode.greet_gang(src,0) + + else if (href_list["gangster"]) + var/datum/gang/G = locate(href_list["gangster"]) in ticker.mode.gangs + if(!G || (src in G.gangsters)) + return + ticker.mode.remove_gangster(src,0,2,1) + ticker.mode.add_gangster(src,G,0) + message_admins("[key_name_admin(usr)] has added [current] to the [G.name] Gang (A).") + log_admin("[key_name(usr)] has added [current] to the [G.name] Gang (A).") + +///////////////////////////////// + + + + else if (href_list["cult"]) + switch(href_list["cult"]) + if("clear") + remove_cultist() + message_admins("[key_name_admin(usr)] has de-cult'ed [current].") + log_admin("[key_name(usr)] has de-cult'ed [current].") + if("cultist") + if(!(src in ticker.mode.cult)) + ticker.mode.add_cultist(src, 0) + message_admins("[key_name_admin(usr)] has cult'ed [current].") + log_admin("[key_name(usr)] has cult'ed [current].") + if("tome") + if (!ticker.mode.equip_cultist(current,1)) + usr << "Spawning tome failed!" + + if("amulet") + if (!ticker.mode.equip_cultist(current)) + usr << "Spawning amulet failed!" + + else if(href_list["clockcult"]) + switch(href_list["clockcult"]) + if("clear") + remove_servant_of_ratvar(current, TRUE) + message_admins("[key_name_admin(usr)] has removed clockwork servant status from [current].") + log_admin("[key_name(usr)] has removed clockwork servant status from [current].") + if("servant") + if(!is_servant_of_ratvar(current)) + add_servant_of_ratvar(current, TRUE) + message_admins("[key_name_admin(usr)] has made [current] into a servant of Ratvar.") + log_admin("[key_name(usr)] has made [current] into a servant of Ratvar.") + if("slab") + if(!ticker.mode.equip_servant(current)) + usr << "Failed to outfit [current] with a slab!" + else + usr << "Successfully gave [current] a clockwork slab!" + + else if (href_list["wizard"]) + switch(href_list["wizard"]) + if("clear") + remove_wizard() + current << "You have been brainwashed! You are no longer a wizard!" + log_admin("[key_name(usr)] has de-wizard'ed [current].") + ticker.mode.update_wiz_icons_removed(src) + if("wizard") + if(!(src in ticker.mode.wizards)) + ticker.mode.wizards += src + special_role = "Wizard" + //ticker.mode.learn_basic_spells(current) + current << "You are the Space Wizard!" + message_admins("[key_name_admin(usr)] has wizard'ed [current].") + log_admin("[key_name(usr)] has wizard'ed [current].") + ticker.mode.update_wiz_icons_added(src) + if("lair") + current.loc = pick(wizardstart) + if("dressup") + ticker.mode.equip_wizard(current) + if("name") + ticker.mode.name_wizard(current) + if("autoobjectives") + ticker.mode.forge_wizard_objectives(src) + usr << "The objectives for wizard [key] have been generated. You can edit them and anounce manually." + + else if (href_list["changeling"]) + switch(href_list["changeling"]) + if("clear") + remove_changeling() + current << "You grow weak and lose your powers! You are no longer a changeling and are stuck in your current form!" + message_admins("[key_name_admin(usr)] has de-changeling'ed [current].") + log_admin("[key_name(usr)] has de-changeling'ed [current].") + if("changeling") + if(!(src in ticker.mode.changelings)) + ticker.mode.changelings += src + current.make_changeling() + special_role = "Changeling" + current << "Your powers are awoken. A flash of memory returns to us...we are [changeling.changelingID], a changeling!" + message_admins("[key_name_admin(usr)] has changeling'ed [current].") + log_admin("[key_name(usr)] has changeling'ed [current].") + ticker.mode.update_changeling_icons_added(src) + if("autoobjectives") + ticker.mode.forge_changeling_objectives(src) + usr << "The objectives for changeling [key] have been generated. You can edit them and anounce manually." + + if("initialdna") + if( !changeling || !changeling.stored_profiles.len || !istype(current, /mob/living/carbon)) + usr << "Resetting DNA failed!" + else + var/mob/living/carbon/C = current + changeling.first_prof.dna.transfer_identity(C, transfer_SE=1) + C.real_name = changeling.first_prof.name + C.updateappearance(mutcolor_update=1) + C.domutcheck() + + else if (href_list["nuclear"]) + switch(href_list["nuclear"]) + if("clear") + remove_nukeop() + current << "You have been brainwashed! You are no longer a syndicate operative!" + message_admins("[key_name_admin(usr)] has de-nuke op'ed [current].") + log_admin("[key_name(usr)] has de-nuke op'ed [current].") + if("nuclear") + if(!(src in ticker.mode.syndicates)) + ticker.mode.syndicates += src + ticker.mode.update_synd_icons_added(src) + if (ticker.mode.syndicates.len==1) + ticker.mode.prepare_syndicate_leader(src) + else + current.real_name = "[syndicate_name()] Operative #[ticker.mode.syndicates.len-1]" + special_role = "Syndicate" + assigned_role = "Syndicate" + current << "You are a [syndicate_name()] agent!" + ticker.mode.forge_syndicate_objectives(src) + ticker.mode.greet_syndicate(src) + message_admins("[key_name_admin(usr)] has nuke op'ed [current].") + log_admin("[key_name(usr)] has nuke op'ed [current].") + if("lair") + current.loc = get_turf(locate("landmark*Syndicate-Spawn")) + if("dressup") + var/mob/living/carbon/human/H = current + qdel(H.belt) + qdel(H.back) + qdel(H.ears) + qdel(H.gloves) + qdel(H.head) + qdel(H.shoes) + qdel(H.wear_id) + qdel(H.wear_suit) + qdel(H.w_uniform) + + if (!ticker.mode.equip_syndicate(current)) + usr << "Equipping a syndicate failed!" + if("tellcode") + var/code + for (var/obj/machinery/nuclearbomb/bombue in machines) + if (length(bombue.r_code) <= 5 && bombue.r_code != "LOLNO" && bombue.r_code != "ADMIN") + code = bombue.r_code + break + if (code) + store_memory("Syndicate Nuclear Bomb Code: [code]", 0, 0) + current << "The nuclear authorization code is: [code]" + else + usr << "No valid nuke found!" + + else if (href_list["traitor"]) + switch(href_list["traitor"]) + if("clear") + remove_traitor() + current << "You have been brainwashed! You are no longer a traitor!" + message_admins("[key_name_admin(usr)] has de-traitor'ed [current].") + log_admin("[key_name(usr)] has de-traitor'ed [current].") + ticker.mode.update_traitor_icons_removed(src) + + if("traitor") + if(!(src in ticker.mode.traitors)) + ticker.mode.traitors += src + special_role = "traitor" + current << "You are a traitor!" + message_admins("[key_name_admin(usr)] has traitor'ed [current].") + log_admin("[key_name(usr)] has traitor'ed [current].") + if(isAI(current)) + var/mob/living/silicon/ai/A = current + ticker.mode.add_law_zero(A) + ticker.mode.update_traitor_icons_added(src) + + if("autoobjectives") + ticker.mode.forge_traitor_objectives(src) + usr << "The objectives for traitor [key] have been generated. You can edit them and anounce manually." + + else if(href_list["devil"]) + switch(href_list["devil"]) + if("clear") + if(src in ticker.mode.devils) + if(istype(current,/mob/living/carbon/true_devil/)) + if(devilinfo) + devilinfo.regress_blood_lizard() + else + usr << "Something went wrong with removing the devil, we were unable to find an attached devilinfo.." + ticker.mode.devils -= src + special_role = null + current << "Your infernal link has been severed! You are no longer a devil!" + RemoveSpell(/obj/effect/proc_holder/spell/targeted/infernal_jaunt) + RemoveSpell(/obj/effect/proc_holder/spell/fireball/hellish) + RemoveSpell(/obj/effect/proc_holder/spell/targeted/summon_contract) + RemoveSpell(/obj/effect/proc_holder/spell/targeted/conjure_item/summon_pitchfork) + RemoveSpell(/obj/effect/proc_holder/spell/targeted/conjure_item/violin) + message_admins("[key_name_admin(usr)] has de-devil'ed [current].") + devilinfo = null + if(issilicon(current)) + var/mob/living/silicon/S = current + S.clear_law_sixsixsix(current) + log_admin("[key_name(usr)] has de-devil'ed [current].") + else if(src in ticker.mode.sintouched) + ticker.mode.sintouched -= src + message_admins("[key_name_admin(usr)] has de-sintouch'ed [current].") + log_admin("[key_name(usr)] has de-sintouch'ed [current].") + if("devil") + if(!ishuman(current) && !iscyborg(current)) + usr << "This only works on humans and cyborgs!" + return + ticker.mode.devils += src + special_role = "devil" + ticker.mode.finalize_devil(src) + ticker.mode.add_devil_objectives(src, 2) + announceDevilLaws() + announce_objectives() + if("sintouched") + if(ishuman(current)) + ticker.mode.sintouched += src + var/mob/living/carbon/human/H = current + H.influenceSin() + message_admins("[key_name_admin(usr)] has sintouch'ed [current].") + else + usr << "This only works on humans!" + return + + else if(href_list["abductor"]) + switch(href_list["abductor"]) + if("clear") + usr << "Not implemented yet. Sorry!" + //ticker.mode.update_abductor_icons_removed(src) + if("abductor") + if(!ishuman(current)) + usr << "This only works on humans!" + return + make_Abductor() + log_admin("[key_name(usr)] turned [current] into abductor.") + ticker.mode.update_abductor_icons_added(src) + if("equip") + var/gear = alert("Agent or Scientist Gear","Gear","Agent","Scientist") + if(gear) + var/datum/game_mode/abduction/temp = new + temp.equip_common(current) + if(gear=="Agent") + temp.equip_agent(current) + else + temp.equip_scientist(current) + + else if (href_list["monkey"]) + var/mob/living/L = current + if (L.notransform) + return + switch(href_list["monkey"]) + if("healthy") + if (check_rights(R_ADMIN)) + var/mob/living/carbon/human/H = current + var/mob/living/carbon/monkey/M = current + if (istype(H)) + log_admin("[key_name(usr)] attempting to monkeyize [key_name(current)]") + message_admins("[key_name_admin(usr)] attempting to monkeyize [key_name_admin(current)]") + src = null + M = H.monkeyize() + src = M.mind + //world << "DEBUG: \"healthy\": M=[M], M.mind=[M.mind], src=[src]!" + else if (istype(M) && length(M.viruses)) + for(var/datum/disease/D in M.viruses) + D.cure(0) + sleep(0) //because deleting of virus is done through spawn(0) + if("infected") + if (check_rights(R_ADMIN, 0)) + var/mob/living/carbon/human/H = current + var/mob/living/carbon/monkey/M = current + if (istype(H)) + log_admin("[key_name(usr)] attempting to monkeyize and infect [key_name(current)]") + message_admins("[key_name_admin(usr)] attempting to monkeyize and infect [key_name_admin(current)]") + src = null + M = H.monkeyize() + src = M.mind + current.ForceContractDisease(new /datum/disease/transformation/jungle_fever) + else if (istype(M)) + current.ForceContractDisease(new /datum/disease/transformation/jungle_fever) + if("human") + if (check_rights(R_ADMIN, 0)) + var/mob/living/carbon/human/H = current + var/mob/living/carbon/monkey/M = current + if (istype(M)) + for(var/datum/disease/D in M.viruses) + if (istype(D,/datum/disease/transformation/jungle_fever)) + D.cure(0) + sleep(0) //because deleting of virus is doing throught spawn(0) + log_admin("[key_name(usr)] attempting to humanize [key_name(current)]") + message_admins("[key_name_admin(usr)] attempting to humanize [key_name_admin(current)]") + H = M.humanize(TR_KEEPITEMS | TR_KEEPIMPLANTS | TR_KEEPORGANS | TR_KEEPDAMAGE | TR_KEEPVIRUS | TR_DEFAULTMSG) + if(H) + src = H.mind + + else if (href_list["silicon"]) + switch(href_list["silicon"]) + if("unemag") + var/mob/living/silicon/robot/R = current + if (istype(R)) + R.SetEmagged(0) + message_admins("[key_name_admin(usr)] has unemag'ed [R].") + log_admin("[key_name(usr)] has unemag'ed [R].") + + if("unemagcyborgs") + if(isAI(current)) + var/mob/living/silicon/ai/ai = current + for (var/mob/living/silicon/robot/R in ai.connected_robots) + R.SetEmagged(0) + message_admins("[key_name_admin(usr)] has unemag'ed [ai]'s Cyborgs.") + log_admin("[key_name(usr)] has unemag'ed [ai]'s Cyborgs.") + + else if (href_list["common"]) + switch(href_list["common"]) + if("undress") + for(var/obj/item/W in current) + current.unEquip(W, 1) //The 1 forces all items to drop, since this is an admin undress. + if("takeuplink") + take_uplink() + memory = null//Remove any memory they may have had. + log_admin("[key_name(usr)] removed [current]'s uplink.") + if("crystals") + if(check_rights(R_FUN, 0)) + var/obj/item/device/uplink/U = find_syndicate_uplink() + if(U) + var/crystals = input("Amount of telecrystals for [key]","Syndicate uplink", U.telecrystals) as null|num + if(!isnull(crystals)) + U.telecrystals = crystals + message_admins("[key_name_admin(usr)] changed [current]'s telecrystal count to [crystals].") + log_admin("[key_name(usr)] changed [current]'s telecrystal count to [crystals].") + if("uplink") + if(!ticker.mode.equip_traitor(current, !(src in ticker.mode.traitors))) + usr << "Equipping a syndicate failed!" + log_admin("[key_name(usr)] attempted to give [current] an uplink.") + + else if (href_list["obj_announce"]) + announce_objectives() + + edit_memory() + +/datum/mind/proc/announce_objectives() + var/obj_count = 1 + current << "Your current objectives:" + for(var/objective in objectives) + var/datum/objective/O = objective + current << "Objective #[obj_count]: [O.explanation_text]" + obj_count++ + +/datum/mind/proc/find_syndicate_uplink() + var/list/L = current.get_contents() + for (var/obj/item/I in L) + if (I.hidden_uplink) + return I.hidden_uplink + return null + +/datum/mind/proc/take_uplink() + var/obj/item/device/uplink/H = find_syndicate_uplink() + if(H) + qdel(H) + +/datum/mind/proc/make_Traitor() + if(!(src in ticker.mode.traitors)) + ticker.mode.traitors += src + special_role = "traitor" + ticker.mode.forge_traitor_objectives(src) + ticker.mode.finalize_traitor(src) + ticker.mode.greet_traitor(src) + +/datum/mind/proc/make_Nuke(turf/spawnloc, nuke_code, leader=0, telecrystals = TRUE) + if(!(src in ticker.mode.syndicates)) + ticker.mode.syndicates += src + ticker.mode.update_synd_icons_added(src) + special_role = "Syndicate" + ticker.mode.forge_syndicate_objectives(src) + ticker.mode.greet_syndicate(src) + current.faction |= "syndicate" + + if(spawnloc) + current.loc = spawnloc + + if(ishuman(current)) + var/mob/living/carbon/human/H = current + qdel(H.belt) + qdel(H.back) + qdel(H.ears) + qdel(H.gloves) + qdel(H.head) + qdel(H.shoes) + qdel(H.wear_id) + qdel(H.wear_suit) + qdel(H.w_uniform) + + ticker.mode.equip_syndicate(current, telecrystals) + + if (nuke_code) + store_memory("Syndicate Nuclear Bomb Code: [nuke_code]", 0, 0) + current << "The nuclear authorization code is: [nuke_code]" + else + var/obj/machinery/nuclearbomb/nuke = locate("syndienuke") in nuke_list + if(nuke) + store_memory("Syndicate Nuclear Bomb Code: [nuke.r_code]", 0, 0) + current << "The nuclear authorization code is: nuke.r_code" + else + current << "You were not provided with a nuclear code. Trying asking your team leader or contacting syndicate command.
    " + + if (leader) + ticker.mode.prepare_syndicate_leader(src,nuke_code) + else + current.real_name = "[syndicate_name()] Operative #[ticker.mode.syndicates.len-1]" + +/datum/mind/proc/make_Changling() + if(!(src in ticker.mode.changelings)) + ticker.mode.changelings += src + current.make_changeling() + special_role = "Changeling" + ticker.mode.forge_changeling_objectives(src) + ticker.mode.greet_changeling(src) + ticker.mode.update_changeling_icons_added(src) + +/datum/mind/proc/make_Wizard() + if(!(src in ticker.mode.wizards)) + ticker.mode.wizards += src + special_role = "Wizard" + assigned_role = "Wizard" + if(!wizardstart.len) + current.loc = pick(latejoin) + current << "HOT INSERTION, GO GO GO" + else + current.loc = pick(wizardstart) + + ticker.mode.equip_wizard(current) + ticker.mode.name_wizard(current) + ticker.mode.forge_wizard_objectives(src) + ticker.mode.greet_wizard(src) + + +/datum/mind/proc/make_Cultist() + if(!(src in ticker.mode.cult)) + ticker.mode.add_cultist(src,FALSE) + special_role = "Cultist" + current << "You catch a glimpse of the Realm of Nar-Sie, The Geometer of Blood. You now see how flimsy the world is, you see that it should be open to the knowledge of Nar-Sie." + current << "Assist your new compatriots in their dark dealings. Their goal is yours, and yours is theirs. You serve the Dark One above all else. Bring It back." + var/datum/game_mode/cult/cult = ticker.mode + + if (istype(cult)) + cult.memorize_cult_objectives(src) + else + var/explanation = "Summon Nar-Sie via the use of the appropriate rune (Hell join self). It will only work if nine cultists stand on and around it." + current << "Objective #1: [explanation]" + memory += "Objective #1: [explanation]
    " + + var/mob/living/carbon/human/H = current + if (!ticker.mode.equip_cultist(current)) + H << "Spawning an amulet from your Master failed." + +/datum/mind/proc/make_Rev() + if (ticker.mode.head_revolutionaries.len>0) + // copy targets + var/datum/mind/valid_head = locate() in ticker.mode.head_revolutionaries + if (valid_head) + for (var/datum/objective/mutiny/O in valid_head.objectives) + var/datum/objective/mutiny/rev_obj = new + rev_obj.owner = src + rev_obj.target = O.target + rev_obj.explanation_text = "Assassinate [O.target.current.real_name], the [O.target.assigned_role]." + objectives += rev_obj + ticker.mode.greet_revolutionary(src,0) + ticker.mode.head_revolutionaries += src + ticker.mode.update_rev_icons_added(src) + special_role = "Head Revolutionary" + + ticker.mode.forge_revolutionary_objectives(src) + ticker.mode.greet_revolutionary(src,0) + + var/list/L = current.get_contents() + var/obj/item/device/assembly/flash/flash = locate() in L + qdel(flash) + take_uplink() + var/fail = 0 +// fail |= !ticker.mode.equip_traitor(current, 1) + fail |= !ticker.mode.equip_revolutionary(current) + + +/datum/mind/proc/make_Gang(datum/gang/G) + special_role = "[G.name] Gang Boss" + G.bosses += src + gang_datum = G + G.add_gang_hud(src) + ticker.mode.forge_gang_objectives(src) + ticker.mode.greet_gang(src) + ticker.mode.equip_gang(current,G) + +/datum/mind/proc/make_Abductor() + var/role = alert("Abductor Role ?","Role","Agent","Scientist") + var/team = input("Abductor Team ?","Team ?") in list(1,2,3,4) + var/teleport = alert("Teleport to ship ?","Teleport","Yes","No") + + if(!role || !team || !teleport) + return + + if(!ishuman(current)) + return + + ticker.mode.abductors |= src + + var/datum/objective/experiment/O = new + O.owner = src + objectives += O + + var/mob/living/carbon/human/H = current + + H.set_species(/datum/species/abductor) + var/datum/species/abductor/S = H.dna.species + + switch(role) + if("Agent") + S.agent = 1 + if("Scientist") + S.scientist = 1 + S.team = team + + var/list/obj/effect/landmark/abductor/agent_landmarks = new + var/list/obj/effect/landmark/abductor/scientist_landmarks = new + agent_landmarks.len = 4 + scientist_landmarks.len = 4 + for(var/obj/effect/landmark/abductor/A in landmarks_list) + if(istype(A,/obj/effect/landmark/abductor/agent)) + agent_landmarks[text2num(A.team)] = A + else if(istype(A,/obj/effect/landmark/abductor/scientist)) + scientist_landmarks[text2num(A.team)] = A + + var/obj/effect/landmark/L + if(teleport=="Yes") + switch(role) + if("Agent") + S.agent = 1 + L = agent_landmarks[team] + H.loc = L.loc + if("Scientist") + S.scientist = 1 + L = agent_landmarks[team] + H.loc = L.loc + +/datum/mind/proc/AddSpell(obj/effect/proc_holder/spell/S) + spell_list += S + S.action.Grant(current) + +//To remove a specific spell from a mind +/datum/mind/proc/RemoveSpell(var/obj/effect/proc_holder/spell/spell) + if(!spell) return + for(var/X in spell_list) + var/obj/effect/proc_holder/spell/S = X + if(istype(S, spell)) + qdel(S) + spell_list -= S + +/datum/mind/proc/transfer_actions(mob/living/new_character) + if(current && current.actions) + for(var/datum/action/A in current.actions) + A.Grant(new_character) + transfer_mindbound_actions(new_character) + +/datum/mind/proc/transfer_mindbound_actions(mob/living/new_character) + for(var/X in spell_list) + var/obj/effect/proc_holder/spell/S = X + S.action.Grant(new_character) + +/datum/mind/proc/disrupt_spells(delay, list/exceptions = New()) + for(var/X in spell_list) + var/obj/effect/proc_holder/spell/S = X + for(var/type in exceptions) + if(istype(S, type)) + continue + S.charge_counter = delay + addtimer(S, "start_recharge", 0) + +/datum/mind/proc/get_ghost(even_if_they_cant_reenter) + for(var/mob/dead/observer/G in dead_mob_list) + if(G.mind == src) + if(G.can_reenter_corpse || even_if_they_cant_reenter) + return G + break + +/datum/mind/proc/grab_ghost(force) + var/mob/dead/observer/G = get_ghost(even_if_they_cant_reenter = force) + . = G + if(G) + G.reenter_corpse() + +/mob/proc/sync_mind() + mind_initialize() //updates the mind (or creates and initializes one if one doesn't exist) + mind.active = 1 //indicates that the mind is currently synced with a client + +/mob/new_player/sync_mind() + return + +/mob/dead/observer/sync_mind() + return + +//Initialisation procs +/mob/proc/mind_initialize() + if(mind) + mind.key = key + + else + mind = new /datum/mind(key) + if(ticker) + ticker.minds += mind + else + spawn(0) + throw EXCEPTION("mind_initialize(): No ticker ready") + if(!mind.name) + mind.name = real_name + mind.current = src + +//HUMAN +/mob/living/carbon/human/mind_initialize() + ..() + if(!mind.assigned_role) + mind.assigned_role = "Assistant" //defualt + +//XENO +/mob/living/carbon/alien/mind_initialize() + ..() + mind.special_role = "Alien" + +//AI +/mob/living/silicon/ai/mind_initialize() + ..() + mind.assigned_role = "AI" + +//BORG +/mob/living/silicon/robot/mind_initialize() + ..() + mind.assigned_role = "Cyborg" + +//PAI +/mob/living/silicon/pai/mind_initialize() + ..() + mind.assigned_role = "pAI" + mind.special_role = "" diff --git a/code/datums/mutations.dm b/code/datums/mutations.dm new file mode 100644 index 0000000..d9b2965 --- /dev/null +++ b/code/datums/mutations.dm @@ -0,0 +1,646 @@ +/var/global/list/mutations_list = list() + +/datum/mutation/ + + var/name + +/datum/mutation/New() + mutations_list[name] = src + +/datum/mutation/human + + var/dna_block + var/quality + var/get_chance = 100 + var/lowest_value = 256 * 8 + var/text_gain_indication = "" + var/text_lose_indication = "" + var/list/visual_indicators = list() + var/layer_used = MUTATIONS_LAYER //which mutation layer to use + var/list/species_allowed = list() //to restrict mutation to only certain species + var/health_req //minimum health required to acquire the mutation + var/limb_req //required limbs to acquire this mutation + var/time_coeff = 1 //coefficient for timed mutations + +/datum/mutation/human/proc/force_give(mob/living/carbon/human/owner) + set_block(owner) + . = on_acquiring(owner) + +/datum/mutation/human/proc/force_lose(mob/living/carbon/human/owner) + set_block(owner, 0) + . = on_losing(owner) + +/datum/mutation/human/proc/set_se(se_string, on = 1) + if(!se_string || lentext(se_string) < DNA_STRUC_ENZYMES_BLOCKS * DNA_BLOCK_SIZE) + return + var/before = copytext(se_string, 1, ((dna_block - 1) * DNA_BLOCK_SIZE) + 1) + var/injection = num2hex(on ? rand(lowest_value, (256 * 16) - 1) : rand(0, lowest_value - 1), DNA_BLOCK_SIZE) + var/after = copytext(se_string, (dna_block * DNA_BLOCK_SIZE) + 1, 0) + return before + injection + after + +/datum/mutation/human/proc/set_block(mob/living/carbon/owner, on = 1) + if(owner && owner.has_dna()) + owner.dna.struc_enzymes = set_se(owner.dna.struc_enzymes, on) + +/datum/mutation/human/proc/check_block_string(se_string) + if(!se_string || lentext(se_string) < DNA_STRUC_ENZYMES_BLOCKS * DNA_BLOCK_SIZE) + return 0 + if(hex2num(getblock(se_string, dna_block)) >= lowest_value) + return 1 + +/datum/mutation/human/proc/check_block(mob/living/carbon/human/owner, force_powers=0) + if(check_block_string(owner.dna.struc_enzymes)) + if(prob(get_chance)||force_powers) + . = on_acquiring(owner) + else + . = on_losing(owner) + +/datum/mutation/human/proc/on_acquiring(mob/living/carbon/human/owner) + if(!owner || !istype(owner) || owner.stat == DEAD || (src in owner.dna.mutations)) + return 1 + if(species_allowed.len && !species_allowed.Find(owner.dna.species.id)) + return 1 + if(health_req && owner.health < health_req) + return 1 + if(limb_req && !owner.get_bodypart(limb_req)) + return 1 + owner.dna.mutations.Add(src) + if(text_gain_indication) + owner << text_gain_indication + if(visual_indicators.len) + var/list/mut_overlay = list(get_visual_indicator(owner)) + if(owner.overlays_standing[layer_used]) + mut_overlay = owner.overlays_standing[layer_used] + mut_overlay |= get_visual_indicator(owner) + owner.remove_overlay(layer_used) + owner.overlays_standing[layer_used] = mut_overlay + owner.apply_overlay(layer_used) + +/datum/mutation/human/proc/get_visual_indicator(mob/living/carbon/human/owner) + return + +/datum/mutation/human/proc/on_attack_hand(mob/living/carbon/human/owner, atom/target) + return + +/datum/mutation/human/proc/on_ranged_attack(mob/living/carbon/human/owner, atom/target) + return + +/datum/mutation/human/proc/on_move(mob/living/carbon/human/owner, new_loc) + return + +/datum/mutation/human/proc/on_life(mob/living/carbon/human/owner) + return + +/datum/mutation/human/proc/on_losing(mob/living/carbon/human/owner) + if(owner && istype(owner) && (owner.dna.mutations.Remove(src))) + if(text_lose_indication && owner.stat != DEAD) + owner << text_lose_indication + if(visual_indicators.len) + var/list/mut_overlay = list() + if(owner.overlays_standing[layer_used]) + mut_overlay = owner.overlays_standing[layer_used] + owner.remove_overlay(layer_used) + mut_overlay.Remove(get_visual_indicator(owner)) + owner.overlays_standing[layer_used] = mut_overlay + owner.apply_overlay(layer_used) + return 0 + return 1 + +/datum/mutation/human/proc/say_mod(message) + if(message) + return message + +/datum/mutation/human/proc/get_spans() + return list() + +/datum/mutation/human/hulk + + name = "Hulk" + quality = POSITIVE + get_chance = 15 + lowest_value = 256 * 12 + text_gain_indication = "Your muscles hurt!" + species_allowed = list("human") //no skeleton/lizard hulk + health_req = 25 + +/datum/mutation/human/hulk/on_acquiring(mob/living/carbon/human/owner) + if(..()) + return + var/status = CANSTUN | CANWEAKEN | CANPARALYSE | CANPUSH + owner.status_flags &= ~status + owner.update_body_parts() + +/datum/mutation/human/hulk/on_attack_hand(mob/living/carbon/human/owner, atom/target) + return target.attack_hulk(owner) + +/datum/mutation/human/hulk/on_life(mob/living/carbon/human/owner) + if(owner.health < 0) + on_losing(owner) + owner << "You suddenly feel very weak." + +/datum/mutation/human/hulk/on_losing(mob/living/carbon/human/owner) + if(..()) + return + owner.status_flags |= CANSTUN | CANWEAKEN | CANPARALYSE | CANPUSH + owner.update_body_parts() + +/datum/mutation/human/hulk/say_mod(message) + if(message) + message = "[uppertext(replacetext(message, ".", "!"))]!!" + return message + +/datum/mutation/human/telekinesis + + name = "Telekinesis" + quality = POSITIVE + get_chance = 20 + lowest_value = 256 * 12 + text_gain_indication = "You feel smarter!" + limb_req = "head" + +/datum/mutation/human/telekinesis/New() + ..() + visual_indicators |= image("icon"='icons/effects/genetics.dmi', "icon_state"="telekinesishead_s", "layer"=-MUTATIONS_LAYER) + +/datum/mutation/human/telekinesis/get_visual_indicator(mob/living/carbon/human/owner) + return visual_indicators[1] + +/datum/mutation/human/telekinesis/on_ranged_attack(mob/living/carbon/human/owner, atom/target) + target.attack_tk(owner) + +/datum/mutation/human/cold_resistance + + name = "Cold Resistance" + quality = POSITIVE + get_chance = 25 + lowest_value = 256 * 12 + text_gain_indication = "Your body feels warm!" + time_coeff = 5 + +/datum/mutation/human/cold_resistance/New() + ..() + visual_indicators |= image("icon"='icons/effects/genetics.dmi', "icon_state"="fire_s", "layer"=-MUTATIONS_LAYER) + +/datum/mutation/human/cold_resistance/get_visual_indicator(mob/living/carbon/human/owner) + return visual_indicators[1] + +/datum/mutation/human/cold_resistance/on_life(mob/living/carbon/human/owner) + if(owner.getFireLoss()) + if(prob(1)) + owner.heal_bodypart_damage(0,1) //Is this really needed? + +/datum/mutation/human/x_ray + + name = "X Ray Vision" + quality = POSITIVE + get_chance = 25 + lowest_value = 256 * 12 + text_gain_indication = "The walls suddenly disappear!" + time_coeff = 2 + +/datum/mutation/human/x_ray/on_acquiring(mob/living/carbon/human/owner) + if(..()) + return + + owner.update_sight() + +/datum/mutation/human/x_ray/on_losing(mob/living/carbon/human/owner) + if(..()) + return + owner.update_sight() + +/datum/mutation/human/nearsight + + name = "Near Sightness" + quality = MINOR_NEGATIVE + text_gain_indication = "You can't see very well." + +/datum/mutation/human/nearsight/on_acquiring(mob/living/carbon/human/owner) + if(..()) + return + owner.become_nearsighted() + +/datum/mutation/human/nearsight/on_losing(mob/living/carbon/human/owner) + if(..()) + return + owner.cure_nearsighted() + +/datum/mutation/human/epilepsy + + name = "Epilepsy" + quality = NEGATIVE + text_gain_indication = "You get a headache." + +/datum/mutation/human/epilepsy/on_life(mob/living/carbon/human/owner) + if(prob(1) && !owner.paralysis) + owner.visible_message("[owner] starts having a seizure!", "You have a seizure!") + owner.Paralyse(10) + owner.Jitter(1000) + addtimer(src, "jitter_less", 90, FALSE, owner) + +/datum/mutation/human/epilepsy/proc/jitter_less(mob/living/carbon/human/owner) + if(owner) + owner.jitteriness = 10 + +/datum/mutation/human/bad_dna + name = "Unstable DNA" + quality = NEGATIVE + text_gain_indication = "You feel strange." + +/datum/mutation/human/bad_dna/on_acquiring(mob/living/carbon/human/owner) + owner << text_gain_indication + var/mob/new_mob + if(prob(95)) + if(prob(50)) + new_mob = owner.randmutb() + else + new_mob = owner.randmuti() + else + new_mob = owner.randmutg() + if(new_mob && ismob(new_mob)) + owner = new_mob + . = owner + on_losing(owner) + +/datum/mutation/human/cough + name = "Cough" + quality = MINOR_NEGATIVE + text_gain_indication = "You start coughing." + +/datum/mutation/human/cough/on_life(mob/living/carbon/human/owner) + if((prob(5) && owner.paralysis <= 1)) + owner.drop_item() + owner.emote("cough") + +/datum/mutation/human/dwarfism + name = "Dwarfism" + quality = POSITIVE + get_chance = 15 + lowest_value = 256 * 12 + +/datum/mutation/human/dwarfism/on_acquiring(mob/living/carbon/human/owner) + if(..()) + return + owner.resize = 0.8 + owner.update_transform() + owner.pass_flags |= PASSTABLE + owner.visible_message("[owner] suddenly shrinks!", "Everything around you seems to grow..") + +/datum/mutation/human/dwarfism/on_losing(mob/living/carbon/human/owner) + if(..()) + return + owner.resize = 1.25 + owner.update_transform() + owner.pass_flags &= ~PASSTABLE + owner.visible_message("[owner] suddenly grows!", "Everything around you seems to shrink..") + +/datum/mutation/human/clumsy + + name = "Clumsiness" + quality = MINOR_NEGATIVE + text_gain_indication = "You feel lightheaded." + +/datum/mutation/human/clumsy/on_acquiring(mob/living/carbon/human/owner) + if(..()) + return + owner.disabilities |= CLUMSY + +/datum/mutation/human/clumsy/on_losing(mob/living/carbon/human/owner) + if(..()) + return + owner.disabilities &= ~CLUMSY + +/datum/mutation/human/tourettes + name = "Tourettes Syndrome" + quality = NEGATIVE + text_gain_indication = "You twitch." + +/datum/mutation/human/tourettes/on_life(mob/living/carbon/human/owner) + if((prob(10) && owner.paralysis <= 1)) + owner.Stun(10) + switch(rand(1, 3)) + if(1) + owner.emote("twitch") + if(2 to 3) + owner.say("[prob(50) ? ";" : ""][pick("SHIT", "PISS", "FUCK", "CUNT", "COCKSUCKER", "MOTHERFUCKER", "TITS")]") + var/x_offset_old = owner.pixel_x + var/y_offset_old = owner.pixel_y + var/x_offset = owner.pixel_x + rand(-2,2) + var/y_offset = owner.pixel_y + rand(-1,1) + animate(owner, pixel_x = x_offset, pixel_y = y_offset, time = 1) + animate(owner, pixel_x = x_offset_old, pixel_y = y_offset_old, time = 1) + +/datum/mutation/human/nervousness + name = "Nervousness" + quality = MINOR_NEGATIVE + text_gain_indication = "You feel nervous." + +/datum/mutation/human/nervousness/on_life(mob/living/carbon/human/owner) + if(prob(10)) + owner.stuttering = max(10, owner.stuttering) + +/datum/mutation/human/deaf + name = "Deafness" + quality = NEGATIVE + text_gain_indication = "You can't seem to hear anything." + +/datum/mutation/human/deaf/on_acquiring(mob/living/carbon/human/owner) + if(..()) + return + owner.disabilities |= DEAF + +/datum/mutation/human/deaf/on_losing(mob/living/carbon/human/owner) + if(..()) + return + owner.disabilities &= ~DEAF + +/datum/mutation/human/blind + name = "Blindness" + quality = NEGATIVE + text_gain_indication = "You can't seem to see anything." + +/datum/mutation/human/blind/on_acquiring(mob/living/carbon/human/owner) + if(..()) + return + owner.become_blind() + +/datum/mutation/human/blind/on_losing(mob/living/carbon/human/owner) + if(..()) + return + owner.cure_blind() + + +/datum/mutation/human/race + name = "Monkified" + quality = NEGATIVE + time_coeff = 2 + +/datum/mutation/human/race/on_acquiring(mob/living/carbon/human/owner) + if(..()) + return + . = owner.monkeyize(TR_KEEPITEMS | TR_KEEPIMPLANTS | TR_KEEPORGANS | TR_KEEPDAMAGE | TR_KEEPVIRUS | TR_KEEPSE) + +/datum/mutation/human/race/on_losing(mob/living/carbon/monkey/owner) + if(owner && istype(owner) && owner.stat != DEAD && (owner.dna.mutations.Remove(src))) + . = owner.humanize(TR_KEEPITEMS | TR_KEEPIMPLANTS | TR_KEEPORGANS | TR_KEEPDAMAGE | TR_KEEPVIRUS | TR_KEEPSE) + +/datum/mutation/human/chameleon + name = "Chameleon" + quality = POSITIVE + get_chance = 20 + lowest_value = 256 * 12 + text_gain_indication = "You feel one with your surroundings." + text_lose_indication = "You feel oddly exposed." + time_coeff = 5 + +/datum/mutation/human/chameleon/on_acquiring(mob/living/carbon/human/owner) + if(..()) + return + owner.alpha = CHAMELEON_MUTATION_DEFAULT_TRANSPARENCY + +/datum/mutation/human/chameleon/on_life(mob/living/carbon/human/owner) + owner.alpha = max(0, owner.alpha - 25) + +/datum/mutation/human/chameleon/on_move(mob/living/carbon/human/owner) + owner.alpha = CHAMELEON_MUTATION_DEFAULT_TRANSPARENCY + +/datum/mutation/human/chameleon/on_losing(mob/living/carbon/human/owner) + if(..()) + return + owner.alpha = 255 + +/datum/mutation/human/wacky + name = "Wacky" + quality = MINOR_NEGATIVE + text_gain_indication = "You feel an off sensation in your voicebox." + text_lose_indication = "The off sensation passes." + +/datum/mutation/human/wacky/get_spans() + return list(SPAN_SANS) + +/datum/mutation/human/mute + name = "Mute" + quality = NEGATIVE + text_gain_indication = "You feel unable to express yourself at all." + text_lose_indication = "You feel able to speak freely again." + +/datum/mutation/human/mute/on_acquiring(mob/living/carbon/human/owner) + if(..()) + return + owner.disabilities |= MUTE + +/datum/mutation/human/mute/on_losing(mob/living/carbon/human/owner) + if(..()) + return + owner.disabilities &= ~MUTE + +/datum/mutation/human/smile + name = "Smile" + quality = MINOR_NEGATIVE + dna_block = NON_SCANNABLE + text_gain_indication = "You feel so happy. Nothing can be wrong with anything. :)" + text_lose_indication = "Everything is terrible again. :(" + +/datum/mutation/human/smile/say_mod(message) + if(message) + message = " [message] " + //Time for a friendly game of SS13 + message = replacetext(message," stupid "," smart ") + message = replacetext(message," retard "," genius ") + message = replacetext(message," unrobust "," robust ") + message = replacetext(message," dumb "," smart ") + message = replacetext(message," awful "," great ") + message = replacetext(message," gay ",pick(" nice "," ok "," alright ")) + message = replacetext(message," horrible "," fun ") + message = replacetext(message," terrible "," terribly fun ") + message = replacetext(message," terrifying "," wonderful ") + message = replacetext(message," gross "," cool ") + message = replacetext(message," disgusting "," amazing ") + message = replacetext(message," loser "," winner ") + message = replacetext(message," useless "," useful ") + message = replacetext(message," oh god "," cheese and crackers ") + message = replacetext(message," jesus "," gee wiz ") + message = replacetext(message," weak "," strong ") + message = replacetext(message," kill "," hug ") + message = replacetext(message," murder "," tease ") + message = replacetext(message," ugly "," beautiful ") + message = replacetext(message," douchbag "," nice guy ") + message = replacetext(message," whore "," lady ") + message = replacetext(message," nerd "," smart guy ") + message = replacetext(message," moron "," fun person ") + message = replacetext(message," IT'S LOOSE "," EVERYTHING IS FINE ") + message = replacetext(message," sex "," hug fight ") + message = replacetext(message," idiot "," genius ") + message = replacetext(message," fat "," thin ") + message = replacetext(message," beer "," water with ice ") + message = replacetext(message," drink "," water ") + message = replacetext(message," feminist "," empowered woman ") + message = replacetext(message," i hate you "," you're mean ") + message = replacetext(message," nigger "," african american ") + message = replacetext(message," jew "," jewish ") + message = replacetext(message," shit "," shiz ") + message = replacetext(message," crap "," poo ") + message = replacetext(message," slut "," tease ") + message = replacetext(message," ass "," butt ") + message = replacetext(message," damn "," dang ") + message = replacetext(message," fuck "," ") + message = replacetext(message," penis "," privates ") + message = replacetext(message," cunt "," privates ") + message = replacetext(message," dick "," jerk ") + message = replacetext(message," vagina "," privates ") + return trim(message) + +/datum/mutation/human/unintelligable + name = "Unintelligable" + quality = NEGATIVE + text_gain_indication = "You can't seem to form any coherent thoughts!" + text_lose_indication = "Your mind feels more clear." + +/datum/mutation/human/unintelligable/say_mod(message) + if(message) + var/prefix=copytext(message,1,2) + if(prefix == ";") + message = copytext(message,2) + else if(prefix in list(":","#")) + prefix += copytext(message,2,3) + message = copytext(message,3) + else + prefix="" + + var/list/words = splittext(message," ") + var/list/rearranged = list() + for(var/i=1;i<=words.len;i++) + var/cword = pick(words) + words.Remove(cword) + var/suffix = copytext(cword,length(cword)-1,length(cword)) + while(length(cword)>0 && suffix in list(".",",",";","!",":","?")) + cword = copytext(cword,1 ,length(cword)-1) + suffix = copytext(cword,length(cword)-1,length(cword) ) + if(length(cword)) + rearranged += cword + message = "[prefix][uppertext(jointext(rearranged," "))]!!" + return message + +/datum/mutation/human/swedish + name = "Swedish" + quality = MINOR_NEGATIVE + dna_block = NON_SCANNABLE + text_gain_indication = "You feel Swedish, however that works." + text_lose_indication = "The feeling of Swedishness passes." + +/datum/mutation/human/swedish/say_mod(message) + if(message) + message = replacetext(message,"w","v") + message = replacetext(message,"j","y") + message = replacetext(message,"a",pick("","","","a")) + message = replacetext(message,"bo","bjo") + message = replacetext(message,"o",pick("","","o")) + if(prob(30)) + message += " Bork[pick("",", bork",", bork, bork")]!" + return message + +/datum/mutation/human/chav + name = "Chav" + quality = MINOR_NEGATIVE + dna_block = NON_SCANNABLE + text_gain_indication = "Ye feel like a reet prat like, innit?" + text_lose_indication = "You no longer feel like being rude and sassy." + +/datum/mutation/human/chav/say_mod(message) + if(message) + message = " [message] " + message = replacetext(message," looking at "," gawpin' at ") + message = replacetext(message," great "," bangin' ") + message = replacetext(message," man "," mate ") + message = replacetext(message," friend ",pick(" mate "," bruv "," bledrin ")) + message = replacetext(message," what "," wot ") + message = replacetext(message," drink "," wet ") + message = replacetext(message," get "," giz ") + message = replacetext(message," what "," wot ") + message = replacetext(message," no thanks "," wuddent fukken do one ") + message = replacetext(message," i don't know "," wot mate ") + message = replacetext(message," no "," naw ") + message = replacetext(message," robust "," chin ") + message = replacetext(message," hi "," how what how ") + message = replacetext(message," hello "," sup bruv ") + message = replacetext(message," kill "," bang ") + message = replacetext(message," murder "," bang ") + message = replacetext(message," windows "," windies ") + message = replacetext(message," window "," windy ") + message = replacetext(message," break "," do ") + message = replacetext(message," your "," yer ") + message = replacetext(message," security "," coppers ") + return trim(message) + +/datum/mutation/human/elvis + name = "Elvis" + quality = MINOR_NEGATIVE + dna_block = NON_SCANNABLE + text_gain_indication = "You feel pretty good, honeydoll." + text_lose_indication = "You feel a little less conversation would be great." + +/datum/mutation/human/elvis/on_life(mob/living/carbon/human/owner) + switch(pick(1,2)) + if(1) + if(prob(15)) + var/list/dancetypes = list("swinging", "fancy", "stylish", "20'th century", "jivin'", "rock and roller", "cool", "salacious", "bashing", "smashing") + var/dancemoves = pick(dancetypes) + owner.visible_message("[owner] busts out some [dancemoves] moves!") + if(2) + if(prob(15)) + owner.visible_message("[owner] [pick("jiggles their hips", "rotates their hips", "gyrates their hips", "taps their foot", "dances to an imaginary song", "jiggles their legs", "snaps their fingers")]!") + +/datum/mutation/human/elvis/say_mod(message) + if(message) + message = " [message] " + message = replacetext(message," i'm not "," I aint ") + message = replacetext(message," girl ",pick(" honey "," baby "," baby doll ")) + message = replacetext(message," man ",pick(" son "," buddy "," brother"," pal "," friendo ")) + message = replacetext(message," out of "," outta ") + message = replacetext(message," thank you "," thank you, thank you very much ") + message = replacetext(message," what are you "," whatcha ") + message = replacetext(message," yes ",pick(" sure", "yea ")) + message = replacetext(message," faggot "," square ") + message = replacetext(message," muh valids "," getting my kicks ") + return trim(message) + +/datum/mutation/human/laser_eyes + name = "Laser Eyes" + quality = POSITIVE + dna_block = NON_SCANNABLE + text_gain_indication = "You feel pressure building up behind your eyes." + layer_used = FRONT_MUTATIONS_LAYER + limb_req = "head" + +/datum/mutation/human/laser_eyes/New() + ..() + visual_indicators |= image("icon"='icons/effects/genetics.dmi', "icon_state"="lasereyes_s", "layer"=-FRONT_MUTATIONS_LAYER) + +/datum/mutation/human/laser_eyes/get_visual_indicator(mob/living/carbon/human/owner) + return visual_indicators[1] + +/datum/mutation/human/laser_eyes/on_ranged_attack(mob/living/carbon/human/owner, atom/target) + if(owner.a_intent == "harm") + owner.LaserEyes(target) + + +/mob/living/carbon/proc/update_mutations_overlay() + return + +/mob/living/carbon/human/update_mutations_overlay() + for(var/datum/mutation/human/CM in dna.mutations) + if(CM.species_allowed.len && !CM.species_allowed.Find(dna.species.id)) + CM.force_lose(src) //shouldn't have that mutation at all + continue + if(CM.visual_indicators.len) + var/list/mut_overlay = list() + if(overlays_standing[CM.layer_used]) + mut_overlay = overlays_standing[CM.layer_used] + var/image/V = CM.get_visual_indicator(src) + if(!mut_overlay.Find(V)) //either we lack the visual indicator or we have the wrong one + remove_overlay(CM.layer_used) + for(var/image/I in CM.visual_indicators) + mut_overlay.Remove(I) + mut_overlay |= V + overlays_standing[CM.layer_used] = mut_overlay + apply_overlay(CM.layer_used) diff --git a/code/datums/outfit.dm b/code/datums/outfit.dm new file mode 100644 index 0000000..17ee6ad --- /dev/null +++ b/code/datums/outfit.dm @@ -0,0 +1,83 @@ +/datum/outfit + var/name = "Naked" + + var/uniform = null + var/suit = null + var/back = null + var/belt = null + var/gloves = null + var/shoes = null + var/head = null + var/mask = null + var/neck = null + var/ears = null + var/glasses = null + var/id = null + var/l_pocket = null + var/r_pocket = null + var/suit_store = null + var/r_hand = null + var/l_hand = null + var/list/backpack_contents = list() // In the list(path=count,otherpath=count) format + var/wage = 0 //How much money we start with. + +/datum/outfit/proc/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + //to be overriden for customization depending on client prefs,species etc + return + +/datum/outfit/proc/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + //to be overriden for toggling internals, id binding, access etc + return + +/datum/outfit/proc/equip(mob/living/carbon/human/H, visualsOnly = FALSE) + pre_equip(H, visualsOnly) + + //Start with uniform,suit,backpack for additional slots + if(uniform) + H.equip_to_slot_or_del(new uniform(H),slot_w_uniform) + if(suit) + H.equip_to_slot_or_del(new suit(H),slot_wear_suit) + if(back) + H.equip_to_slot_or_del(new back(H),slot_back) + if(belt) + H.equip_to_slot_or_del(new belt(H),slot_belt) + if(gloves) + H.equip_to_slot_or_del(new gloves(H),slot_gloves) + if(shoes) + H.equip_to_slot_or_del(new shoes(H),slot_shoes) + if(head) + H.equip_to_slot_or_del(new head(H),slot_head) + if(mask) + H.equip_to_slot_or_del(new mask(H),slot_wear_mask) + if(neck) + H.equip_to_slot_or_del(new neck(H),slot_neck) + if(ears) + H.equip_to_slot_or_del(new ears(H),slot_ears) + if(glasses) + H.equip_to_slot_or_del(new glasses(H),slot_glasses) + if(id) + H.equip_to_slot_or_del(new id(H),slot_wear_id) + if(l_pocket) + H.equip_to_slot_or_del(new l_pocket(H),slot_l_store) + if(r_pocket) + H.equip_to_slot_or_del(new r_pocket(H),slot_r_store) + if(suit_store) + H.equip_to_slot_or_del(new suit_store(H),slot_s_store) + + if(wage)//How much money they start with. + H.equip_to_slot_or_del(new /obj/item/stack/spacecash(H, wage),slot_r_store) + + if(l_hand) + H.put_in_l_hand(new l_hand(H)) + if(r_hand) + H.put_in_r_hand(new r_hand(H)) + + for(var/path in backpack_contents) + var/number = backpack_contents[path] + for(var/i=0,ireagents[r_r]) + . = -1 + else + return 0 + if ((reagents_list?(reagents_list.len):(0)) < avail_reagents.reagent_list.len) + return -1 + return . + +/datum/recipe/proc/check_items(obj/container) //1=precisely, 0=insufficiently, -1=superfluous + if (!items) + if (locate(/obj/) in container) + return -1 + else + return 1 + . = 1 + var/list/checklist = items.Copy() + for (var/obj/O in container) + var/found = 0 + for (var/type in checklist) + if (istype(O,type)) + checklist-=type + found = 1 + break + if (!found) + . = -1 + if (checklist.len) + return 0 + return . + +//general version +/datum/recipe/proc/make(obj/container) + var/obj/result_obj = new result(container) + for (var/obj/O in (container.contents-result_obj)) + O.reagents.trans_to(result_obj, O.reagents.total_volume) + qdel(O) + container.reagents.clear_reagents() + return result_obj + +// food-related +/datum/recipe/proc/make_food(obj/container) + var/obj/result_obj = new result(container) + for (var/obj/O in (container.contents-result_obj)) + if (O.reagents) + O.reagents.del_reagent("nutriment") + O.reagents.update_total() + O.reagents.trans_to(result_obj, O.reagents.total_volume) + qdel(O) + container.reagents.clear_reagents() + return result_obj + +/proc/select_recipe(list/datum/recipe/avaiable_recipes, obj/obj, exact = 1 as num) + if (!exact) + exact = -1 + var/list/datum/recipe/possible_recipes = new + for (var/datum/recipe/recipe in avaiable_recipes) + if (recipe.check_reagents(obj.reagents)==exact && recipe.check_items(obj)==exact) + possible_recipes+=recipe + if (possible_recipes.len==0) + return null + else if (possible_recipes.len==1) + return possible_recipes[1] + else //okay, let's select the most complicated recipe + var/r_count = 0 + var/i_count = 0 + . = possible_recipes[1] + for (var/datum/recipe/recipe in possible_recipes) + var/N_i = (recipe.items)?(recipe.items.len):0 + var/N_r = (recipe.reagents_list)?(recipe.reagents_list.len):0 + if (N_i > i_count || (N_i== i_count && N_r > r_count )) + r_count = N_r + i_count = N_i + . = recipe + return . diff --git a/code/datums/ruins.dm b/code/datums/ruins.dm new file mode 100644 index 0000000..d9c2ca3 --- /dev/null +++ b/code/datums/ruins.dm @@ -0,0 +1,22 @@ +/datum/map_template/ruin + //name = "A Chest of Doubloons" + name = null + var/id = null // For blacklisting purposes, all ruins need an id + var/description = "In the middle of a clearing in the rockface, there's a \ + chest filled with gold coins with Spanish engravings. How is there a \ + wooden container filled with 18th century coinage in the middle of a \ + lavawracked hellscape? It is clearly a mystery." + + var/cost = null + var/allow_duplicates = TRUE + + var/prefix = null + var/suffix = null + +/datum/map_template/ruin/New() + if(!name && id) + name = id + + mappath = prefix + suffix + ..(path = mappath) + diff --git a/code/datums/ruins/lavaland.dm b/code/datums/ruins/lavaland.dm new file mode 100644 index 0000000..d74eb6b --- /dev/null +++ b/code/datums/ruins/lavaland.dm @@ -0,0 +1,203 @@ +/datum/map_template/ruin/lavaland + prefix = "_maps/RandomRuins/LavaRuins/" + +/datum/map_template/ruin/lavaland/biodome + cost = 5 + allow_duplicates = FALSE + +/datum/map_template/ruin/lavaland/biodome/beach + name = "Biodome Beach" + id = "biodome-beach" + description = "Seemingly plucked from a tropical destination, this beach \ + is calm and cool, with the salty waves roaring softly in the \ + background. Comes with a rustic wooden bar and suicidal bartender." + suffix = "lavaland_biodome_beach.dmm" + +/datum/map_template/ruin/lavaland/biodome/winter + name = "Biodome Winter" + id = "biodome-winter" + description = "For those getaways where you want to get back to nature, \ + but you don't want to leave the fortified military compound where you \ + spend your days. Includes a unique(*) laser pistol display case, \ + and the recently introduced I.C.E(tm)." + suffix = "lavaland_surface_biodome_winter.dmm" + +/datum/map_template/ruin/lavaland/biodome/clown + name = "Biodome Clown Planet" + id = "biodome-clown" + description = "WELCOME TO CLOWN PLANET! HONK HONK HONK etc.!" + suffix = "lavaland_biodome_clown_planet.dmm" + +/datum/map_template/ruin/lavaland/cube + name = "The Wishgranter Cube" + id = "wishgranter-cube" + description = "Nothing good can come from this. Learn from their mistakes \ + and turn around." + suffix = "lavaland_surface_cube.dmm" + cost = 10 + allow_duplicates = FALSE + +/datum/map_template/ruin/lavaland/prisoners + name = "Prisoner Crash" + id = "prisoner-crash" + description = "This incredibly high security shuttle clearly didn't have \ + 'avoiding lavafilled hellscapes' as a design priority. As such, it \ + has crashed, waking the prisoners from their cryostasis, and setting \ + them loose on the wastes. If they live long enough, that is." + suffix = "lavaland_surface_prisoner_crash.dmm" + cost = 15 + allow_duplicates = FALSE + +/datum/map_template/ruin/lavaland/seed_vault + name = "Seed Vault" + id = "seed-vault" + description = "The creators of these vaults were a highly advanced and \ + benevolent race, and launched many into the stars, hoping to aid \ + fledgling civilizations. However, all the inhabitants seem to do is \ + grow drugs and guns." + suffix = "lavaland_surface_seed_vault.dmm" + cost = 10 + +/datum/map_template/ruin/lavaland/ash_walker + name = "Ash Walker Nest" + id = "ash-walker" + description = "A race of unbreathing lizards live here, that run faster \ + than a human can, worship a broken dead city, and are capable of \ + reproducing by something involving tentacles? Probably best to \ + stay clear." + suffix = "lavaland_surface_ash_walker1.dmm" + cost = 20 + allow_duplicates = FALSE + +/datum/map_template/ruin/lavaland/free_golem + name = "Free Golem Ship" + id = "golem-ship" + description = "Lumbering humanoids, made out of precious metals, move \ + inside this ship. They frequently leave to mine more minerals, \ + which they somehow turn into more of them. Seem very intent on \ + research and individual liberty, and also geology based naming?" + cost = 20 + suffix = "lavaland_surface_golem_ship.dmm" + allow_duplicates = FALSE + +/datum/map_template/ruin/lavaland/animal_hospital + name = "Animal Hospital" + id = "animal-hospital" + description = "Rats with cancer do not live very long. And the ones that \ + wake up from cryostasis seem to commit suicide out of boredom." + cost = 5 + suffix = "lavaland_surface_animal_hospital.dmm" + allow_duplicates = FALSE + +/datum/map_template/ruin/lavaland/sin + cost = 10 + allow_duplicates = FALSE + +/datum/map_template/ruin/lavaland/sin/envy + name = "Ruin of Envy" + id = "envy" + description = "When you get what they have, then you'll finally be happy." + suffix = "lavaland_surface_envy.dmm" + +/datum/map_template/ruin/lavaland/sin/gluttony + name = "Ruin of Gluttony" + id = "gluttony" + description = "If you eat enough, then eating will be all that you do." + suffix = "lavaland_surface_gluttony.dmm" + +/datum/map_template/ruin/lavaland/sin/greed + name = "Ruin of Greed" + id = "greed" + description = "Sure you don't need magical powers, but you WANT them, and \ + that's what's important." + suffix = "lavaland_surface_greed.dmm" + +/datum/map_template/ruin/lavaland/sin/pride + name = "Ruin of Pride" + id = "pride" + description = "Wormhole lifebelts are for LOSERS, who you are better than." + suffix = "lavaland_surface_pride.dmm" + +/datum/map_template/ruin/lavaland/sin/sloth + name = "Ruin of Sloth" + id = "sloth" + description = "..." + suffix = "lavaland_surface_sloth.dmm" + // Generates nothing but atmos runtimes and salt + cost = 0 + +/datum/map_template/ruin/lavaland/hierophant + name = "Hierophant's Arena" + id = "hierophant" + description = "A huge fucking bird priest awaits you in this arena." + suffix = "lavaland_surface_hierophant.dmm" + cost = 0 + allow_duplicates = FALSE + +/datum/map_template/ruin/lavaland/ufo_crash + name = "UFO Crash" + id = "ufo-crash" + description = "Turns out that keeping your abductees unconcious is really \ + important. Who knew?" + suffix = "lavaland_surface_ufo_crash.dmm" + cost = 5 + +/datum/map_template/ruin/lavaland/ww_vault + name = "Wishgranter Vault" + id = "ww-vault" + description = "Scrawled on the large double doors is both a message and a \ + warning: 'meat grinder requires sacri...'. You're not so sure about \ + this anymore." + suffix = "lavaland_surface_ww_vault.dmm" + cost = 20 + +/datum/map_template/ruin/lavaland/xeno_nest + name = "Xenomorph Nest" + id = "xeno-nest" + description = "These xenomorphs got bored of horrifically slaughtering \ + people on space stations, and have settled down on a nice lava filled \ + hellscape to focus on what's really important in life. Quality memes." + suffix = "lavaland_surface_xeno_nest.dmm" + cost = 20 + +/datum/map_template/ruin/lavaland/fountain + name = "Fountain Hall" + id = "fountain" + description = "The fountain has a warning on the side. DANGER: May have \ + undeclared side effects that only become obvious when implemented." + suffix = "lavaland_surface_fountain_hall.dmm" + cost = 5 + +/datum/map_template/ruin/lavaland/survivalcapsule + name = "Survival Capsule Ruins" + id = "survivalcapsule" + description = "What was once sanctuary to the common miner, \ + is now their tomb." + suffix = "lavaland_surface_survivalpod.dmm" + cost = 5 + +/datum/map_template/ruin/lavaland/pizza + name = "Ruined Pizza Party" + id = "pizza" + description = "Little Timmy's birthday pizza-bash took a turn for the worse \ + when a bluespace anomaly passed by." + suffix = "lavaland_surface_pizzaparty.dmm" + allow_duplicates = FALSE + cost = 5 + +/datum/map_template/ruin/lavaland/cultaltar + name = "Summoning Ritual" + id = "cultaltar" + description = "A place of vile worship, the scrawling of blood in the middle glowing eerily.\ + A demonic laugh echoes throughout the caverns" + suffix = "lavaland_surface_cultaltar.dmm" + allow_duplicates = FALSE + cost = 10 + +/datum/map_template/ruin/lavaland/hermit + name = "Makeshift Shelter" + id = "hermitcave" + description = "A place of shelter for a lone hermit, scraping by to live another day." + suffix = "lavaland_surface_hermit.dmm" + allow_duplicates = FALSE + cost = 10 diff --git a/code/datums/ruins/space.dm b/code/datums/ruins/space.dm new file mode 100644 index 0000000..dabf6d9 --- /dev/null +++ b/code/datums/ruins/space.dm @@ -0,0 +1,306 @@ +/datum/map_template/ruin/space + prefix = "_maps/RandomRuins/SpaceRuins/" + cost = 1 + allow_duplicates = FALSE + +/datum/map_template/ruin/space/zoo + id = "zoo" + suffix = "abandonedzoo.dmm" + name = "Biological Storage Facility" + description = "In case society crumbles, we will be able to restore our \ + zoos to working order with the breeding stock kept in these 100% \ + secure and unbreachable storage facilities. At no point has anything \ + escaped. That's our story, and we're sticking to it." + +/datum/map_template/ruin/space/asteroid1 + id = "asteroid1" + suffix = "asteroid1.dmm" + name = "Asteroid 1" + description = "I-spy with my little eye, something beginning with R." + +/datum/map_template/ruin/space/asteroid2 + id = "asteroid2" + suffix = "asteroid2.dmm" + name = "Asteroid 2" + description = "Oh my god, a giant rock!" + +/datum/map_template/ruin/space/asteroid3 + id = "asteroid3" + suffix = "asteroid3.dmm" + name = "Asteroid 3" + description = "This asteroid floating in space has no official \ + designation, because the scientist that discovered it deemed it \ + 'super dull'." + +/datum/map_template/ruin/space/asteroid4 + id = "asteroid4" + suffix = "asteroid4.dmm" + name = "Asteroid 4" + description = "Nanotrasen Escape Pods have a 100%* success rate, and a \ + 99%* customer satisfaction rate. *Please note that these statistics, \ + are taken from pods that have successfully docked with a recovery \ + vessel." + +/datum/map_template/ruin/space/asteroid5 + id = "asteroid5" + suffix = "asteroid5.dmm" + name = "Asteroid 5" + description = "Oh my god, another giant rock!" + +/datum/map_template/ruin/space/deep_storage + id = "deep-storage" + suffix = "deepstorage.dmm" + name = "Survivalist Bunker" + description = "Assume the best, prepare for the worst. Generally, you \ + should do so by digging a three man heavily fortified bunker into \ + a giant unused asteroid. Then make it self sufficient, mask any \ + evidence of construction, hook it covertly into the \ + telecommunications network and hope for the best." + +/datum/map_template/ruin/space/bigderelict1 + id = "bigderelict1" + suffix = "bigderelict1.dmm" + name = "Derelict Tradepost" + description = "A once-bustling tradestation that handled imports and exports from \ + nearby stations now lays eerily dormant. The last received message was a distress call from one of the \ + on-board officers, but we had no success in making contact again." + +/datum/map_template/ruin/space/derelict1 + id = "derelict1" + suffix = "derelict1.dmm" + name = "Derelict 1" + description = "Nothing to see here citizen, move along, certainly no \ + xeno outbreaks on this piece of station debris. That purple stuff? \ + It's uh... station nectar. It's a top secret research installation." + +/datum/map_template/ruin/space/derelict2 + id = "derelict2" + suffix = "derelict2.dmm" + name = "Dinner for Two" + description = "Oh this is the night\n\ + It's a beautiful night\n\ + And we call it bella notte" + +/datum/map_template/ruin/space/derelict3 + id = "derelict3" + suffix = "derelict3.dmm" + name = "Derelict 3" + description = "These hulks were once part of a larger structure, where \ + the three great \[REDACTED\] were forged." + +/datum/map_template/ruin/space/derelict4 + id = "derelict4" + suffix = "derelict4.dmm" + name = "Derelict 4" + description = "Centcom ferries have never crashed, will never crash, \ + there is no current investigation into a crashed ferry, and we \ + will not let Internal Affairs trample over high security information \ + in the name of this baseless witchhunt." + +/datum/map_template/ruin/space/derelict5 + id = "derelict5" + suffix = "derelict5.dmm" + name = "Derelict 5" + description = "The plan is, we put a whole bunch of crates full of \ + treasure in this disused warehouse, launch it into space, and then \ + ignore it. Forever." + +/datum/map_template/ruin/space/derelict6 + id = "derelict6" + suffix = "derelict6.dmm" + name = "Derelict 6" + description = "The hush-hush of Nanotrasen when it comes to stations seemingly vanishing off the radar is an interesting topic, \ + theories of nuclear destruction float about while Nanotrasen flat-out denies said stations ever existing." + +/datum/map_template/ruin/space/empty_shell + id = "empty-shell" + suffix = "emptyshell.dmm" + name = "Empty Shell" + description = "Cosy, rural property availible for young professional \ + couple. Only twelve parsecs from the nearest hyperspace lane!" + +/datum/map_template/ruin/space/gas_the_lizards + id = "gas-the-lizards" + suffix = "gasthelizards.dmm" + name = "Disposal Facility 17" + description = "Gas efficiency at 95.6%, fluid elimination at 96.2%. \ + Will require renewed supplies of 'carpet' before the end of the \ + quarter." + +/datum/map_template/ruin/space/intact_empty_ship + id = "intact-empty-ship" + suffix = "intactemptyship.dmm" + name = "Authorship" + description = "Just somewhere quiet, where I can focus on my work with \ + no interruptions." + +/datum/map_template/ruin/space/caravanambush + id = "space/caravanambush" + suffix = "caravanambush.dmm" + name = "Syndicate Ambush" + description = "A caravan route used by passing cargo freights has been ambushed by a salvage \ + team manned by the syndicate. The caravan managed to send off a distress message before being surrounded, their video feed \ + cutting off as the sound of gunfire and a parrot was heard." + +/datum/map_template/ruin/space/originalcontent + id = "paperwizard" + suffix = "originalcontent.dmm" + name = "A Giant Ball of Paper in Space" + description = "Sightings of a giant wad of paper hurling through the depths of space have been \ + recently reported by multiple outposts near this sector. A giant wad of paper, really? Damn prank callers." + +/datum/map_template/ruin/space/mech_transport + id = "mech-transport" + suffix = "mechtransport.dmm" + name = "CF Corsair" + description = "Well, when is it getting here? I have bills to pay; very \ + well-armed clients who want their shipments as soon as possible! I \ + don't care, just find it!" + +/datum/map_template/ruin/space/onehalf + id = "onehalf" + suffix = "onehalf.dmm" + name = "DK Excavator 453" + description = "Based on the trace elements we've detected on the \ + gutted asteroids, we suspect that a mining ship using a restricted \ + engine is somewhere in the area. We'd like to request a patrol vessel \ + to investigate." + +/datum/map_template/ruin/space/spacebar + id = "spacebar" + suffix = "spacebar.dmm" + name = "The Rampant Golem and Yellow Hound" + description = "No questions asked. No shoes/foot protection, no service. \ + No tabs. No violence in the inside areas. That's it. Welcome to the \ + Rampant Golem and Yellow Hound. Can I take your order?" + +/datum/map_template/ruin/space/spacehotel + id = "spacehotel" + suffix = "spacehotel.dmm" + name = "The Twin-Nexus Hotel" + description = "A interstellar hotel, where the weary spaceman can rest their head \ + and relax, assured that the residental staff will not murder them in their sleep. Probably." + +/datum/map_template/ruin/space/turreted_outpost + id = "turreted-outpost" + suffix = "turretedoutpost.dmm" + name = "Unnamed Turreted Outpost" + description = "We'd ask them to stop blaring that ruskiepop music, but \ + none of us are brave enough to go near those death turrets they have." + +/datum/map_template/ruin/space/oldshuttle + id = "spaceman-origins" + suffix = "shuttlerelic.dmm" + name = "Strange Ship" + description = "A ship seemingly lost, drifting along the stars. This thing looks \ + like it belongs in ancient times." + +/datum/map_template/ruin/space/way_home + id = "way-home" + suffix = "way_home.dmm" + name = "Salvation" + description = "In the darkest times, we will find our way home." + +/datum/map_template/ruin/space/djstation + id = "djstation" + suffix = "djstation.dmm" + name = "DJ Station" + description = "Until very recently this pirate radio station was used \ + to harangue local space stations over a variety of perceived \ + \"ethics violations\". It seems like someone finally got sick of \ + it, but the equipment still works." + +/datum/map_template/ruin/space/thederelict + id = "thederelict" + suffix = "thederelict.dmm" + name = "Kosmicheskaya Stantsiya 13" + description = "The true fate of Kosmicheskaya Stantsiya 13 is an open \ + question to this day. Most corporations deny its existence, \ + for fear of questioning on what became of its crew." + +/datum/map_template/ruin/space/abandonedteleporter + id = "abandonedteleporter" + suffix = "abandonedteleporter.dmm" + name = "Abandoned Teleporter" + description = "In space construction the teleporter is often the \ + first system brought online. This lonely half built teleporter \ + is a sign of a proposed structure that for one reason or another \ + just never got built." + +/datum/map_template/ruin/space/crashedclownship + id = "crashedclownship" + suffix = "crashedclownship.dmm" + name = "Crashed Clown Ship" + description = "For centuries the promise of a new clown homeworld \ + has been the siren call for countless clown vessels. Alas the \ + clown's lust for shinanagans means that successful voyages \ + are almost unheard of, with most vessels falling to hilarious \ + consequences almost immediately." + +/datum/map_template/ruin/space/crashedship + id = "crashedship" + suffix = "crashedship.dmm" + name = "Crashed Ship" + description = "Among civilian vessels the most common cause of \ + tragedy is lack of food. This ship was outfited with a \ + multitude of food generating features, then summarily ran \ + into an asteroid shortly after takeoff." + +/datum/map_template/ruin/space/listeningstation + id = "listeningstation" + suffix = "listeningstation.dmm" + name = "Syndicate Listening Station" + description = "Listening stations form the backbone of the \ + syndicate's information gathering operations. Assignment to \ + these stations is dreaded by most agents, as it entails long \ + and lonely shifts listening to nearby stations chatter \ + incessently about the most meaningless things." + +/datum/map_template/ruin/space/oldAIsat + id = "oldAIsat" + suffix = "oldAIsat.dmm" + name = "Abandoned Telecommunications Satellite" + description = "When the inspector told the employees that they \ + were all fired, and that their jobs \"could be done by \ + trained lizards anyway\", they reacted badly. This event and \ + others is the reason why Central always sends an ERT squad with \ + their competent inspectors. Incompetent inspectors are told \ + they can \"do it alone\" because they're \"that pro\". \ + Incompetent inspectors believe this." + +/datum/map_template/ruin/space/oldteleporter + id = "oldteleporter" + suffix = "oldteleporter.dmm" + name = "Detached Teleporter" + description = "The structure of this surprisingly intact \ + teleporter suggests that it was once part of a larger structure, \ + but what remains of said structure, if anything, can \ + only be guessed at." + +/datum/map_template/ruin/space/vaporwave + id = "vaporwave" + suffix = "vaporwave.dmm" + name = "Aesthetic Outpost" + description = "Pause and remember-- You are unique.\ + You are special. Every mistake, trial, and \ + hardship has helped to sculpt your real \ + beauty. Stop hating yourself and start \ + appreciating and loving yourself!" + +/datum/map_template/ruin/space/bus + id = "bus" + suffix = "bus.dmm" + name = "Waylaid Buses" + description = "There seems to be a pair of buses that pulled over \ + for repairs. What were they doing..? Their shipment sure \ + seems to be filled with a strange mix. Anyway, it looks like \ + some people tried to fix it up for a long time \ + but didn't really get anywhere..." + + +/datum/map_template/ruin/space/miracle + id = "miracle" + suffix = "miracle.dmm" + name = "Ordinary Space Tile" + description = "Absolutely nothing strange going on here please \ + move along, plenty more space to see right this way!" \ No newline at end of file diff --git a/code/datums/shuttles.dm b/code/datums/shuttles.dm new file mode 100644 index 0000000..48a433b --- /dev/null +++ b/code/datums/shuttles.dm @@ -0,0 +1,203 @@ +/datum/map_template/shuttle + name = "Base Shuttle Template" + var/prefix = "_maps/shuttles/" + var/suffix + var/port_id + var/shuttle_id + + var/description + var/admin_notes + +/datum/map_template/shuttle/New() + shuttle_id = "[port_id]_[suffix]" + mappath = "[prefix][shuttle_id].dmm" + . = ..() + +/datum/map_template/shuttle/emergency + port_id = "emergency" + name = "Base Shuttle Template (Emergency)" + +/datum/map_template/shuttle/cargo + port_id = "cargo" + name = "Base Shuttle Template (Cargo)" + +/datum/map_template/shuttle/ferry + port_id = "ferry" + name = "Base Shuttle Template (Ferry)" + +/datum/map_template/shuttle/whiteship + port_id = "whiteship" + +// Shuttles start here: + +/datum/map_template/shuttle/emergency/airless + suffix = "airless" + name = "(Shuttle Under Construction)" + description = "The documentation hasn't been finished yet for this \ + shuttle.\n\ + In case of emergency: Break glass." + admin_notes = "No brig, no medical facilities, no air." + +/datum/map_template/shuttle/emergency/asteroid + suffix = "asteroid" + name = "Asteroid emergency shuttle" + +/datum/map_template/shuttle/emergency/bar + suffix = "bar" + name = "The Emergency Escape Bar" + description = "Features include sentient bar staff (a Bardrone and a \ + Barmaid), bathroom, a quality lounge for the heads, and a \ + large gathering table." + admin_notes = "Bardrone and Barmaid are GODMODE, will be automatically \ + sentienced by the fun balloon at 60 seconds before arrival. Has \ + medical facilities." + +/datum/map_template/shuttle/emergency/birdboat + suffix = "birdboat" + name = "Birdboat emergency shuttle" + +/datum/map_template/shuttle/emergency/box + suffix = "box" + name = "Box emergency shuttle" + +/datum/map_template/shuttle/emergency/clown + suffix = "clown" + name = "Snappop(tm)!" + description = "Hey kids and grownups! Are you bored of DULL and TEDIOUS \ + shuttle journeys after you're evacuating for probably BORING reasons. \ + Well then order the Snappop(tm) today! We've got fun activities for \ + everyone, an all access cockpit, and no boring security brig! Boo! \ + Play dress up with your friends! Collect all the bedsheets before \ + your neighbour does! Check if the AI is watching you with our patent \ + pending \"Peeping Tom AI Multitool Detector\" or PEEEEEETUR for \ + short. Have a fun ride!" + admin_notes = "Brig is replaced by anchored greentext book surrounded by \ + lavaland chasms, stationside door has been removed to prevent \ + accidental dropping. No brig." + +/datum/map_template/shuttle/emergency/cramped + suffix = "cramped" + name = "Secure Transport Vessel 5 (STV5)" + description = "Well, looks like Centcomm only had this ship in the area, \ + they probably weren't expecting you to need evac for a while. \ + Probably best if you don't rifle around in whatever equipment they \ + were transporting. I hope you're friendly with your coworkers, \ + because there is very little space in this thing.\n\ + \n\ + Contains contraband armory guns, maintenance loot, and abandoned \ + crates!" + admin_notes = "Due to origin as a solo piloted secure vessel, has an \ + active GPS onboard labeled STV5." + +/datum/map_template/shuttle/emergency/meta + suffix = "meta" + name = "Meta emergency shuttle" + +/datum/map_template/shuttle/emergency/mini + suffix = "mini" + name = "Mini emergency shuttle" + +/datum/map_template/shuttle/emergency/narnar + suffix = "narnar" + name = "Shuttle 667" + description = "Looks like this shuttle may have wandered into the \ + darkness between the stars on route to the station. Let's not think \ + too hard about where all the bodies came from." + admin_notes = "Contains real cult ruins, mob eyeballs, and inactive \ + constructs. Cult mobs will automatically be sentienced by fun \ + balloon. Cloning pods in 'medbay' area are showcases and \ + nonfunctional." + +/datum/map_template/shuttle/emergency/supermatter + suffix = "supermatter" + name = "Hyperfractal Gigashuttle" + description = "\"I dunno, this seems kinda needlessly complicated.\"\n\ + \"This shuttle has very a very high safety record, according to \ + Centcom Officer Cadet Yins.\"\n\ + \"Are you sure?\"\n\ + \"Yes, it has a safety record of N-A-N, which is apparently \ + larger than 100%.\"" + admin_notes = "Supermatter that spawns on shuttle is special anchored \ + 'hugbox' supermatter that cannot take damage and does not take in \ + or emit gas. Outside of admin intervention, it cannot explode. \ + It does, however, still dust anything on contact, emits high levels \ + of radiation, and induce hallucinations in anyone looking at it \ + without protective goggles. Emitters spawn powered on, expect \ + admin notices, they are harmless." + +/datum/map_template/shuttle/emergency/imfedupwiththisworld + suffix = "imfedupwiththisworld" + name = "Oh, Hi Daniel" + description = "How was space work today? \ + Oh, pretty good. We got a new space station and the company will make a lot of money. \ + What space station? \ + I cannot tell you; it's space confidential. \ + Aw, come space on. Why not? \ + No, I can't. Anyway, how is your space roleplay life?" + +/datum/map_template/shuttle/emergency/goon + suffix = "goon" + name = "NES Port" + description = "The Nanotrasen Emergency Shuttle Port(NES Port for short) \ + is a shuttle used at other less known nanotrasen facilities \ + and has a more open inside for larger crowds." + +/datum/map_template/shuttle/emergency/wabbajack + suffix = "wabbajack" + name = "NT Lepton Violet" + description = "The research team based on this vessel went missing one \ + day, and no amount of investigation could discover what happened to \ + them. The only occupants were a number of dead rodents, who appeared to \ + have clawed each other to death. Needless to say, no engineering team \ + wanted to go near the thing, and it's only being used as an Emergency \ + Escape Shuttle because there is literally nothing else available." + admin_notes = "If the crew can solve the puzzle, they will wake the \ + wabbajack statue. It will likely not end well. There's a reason it's \ + boarded up. Maybe they should have just left it alone." + +/datum/map_template/shuttle/ferry/base + suffix = "base" + name = "transport ferry" + description = "Standard issue Box/Metastation Centcom ferry." + +/datum/map_template/shuttle/ferry/meat + suffix = "meat" + name = "\"meat\" ferry" + description = "Ahoy! We got all kinds o' meat aft here. Meat from plant \ + people, people who be dark, not in a racist way, just they're dark \ + black. Oh and lizard meat too,mighty popular that is. Definitely \ + 100% fresh, just ask this guy here. *person on meatspike moans* See? \ + Definitely high quality meat, nothin' wrong with it, nothin' added, \ + definitely no zombifyin' reagents!" + admin_notes = "Meat currently contains no zombifying reagents, lizard on \ + meatspike must be spawned in." + +/datum/map_template/shuttle/ferry/lighthouse + suffix = "lighthouse" + name = "The Lighthouse(?)" + description = "*static*... part of a much larger vessel, possibly \ + military in origin. The weapon markings aren't anything we've seen \ + ... static ... by almost never the same person twice, possible use \ + of unknown storage ... static ... seeing ERT officers onboard, but \ + no missions are on file for ... static ... static ... annoying \ + jingle ... only at The LIGHTHOUSE! Fulfilling needs you didn't even \ + know you had. We've got EVERYTHING, and something else!" + admin_notes = "Currently larger than ferry docking port on Box, will not \ + hit anything, but must be force docked. Trader and ERT bodyguards are \ + not included." + +/datum/map_template/shuttle/whiteship/box + suffix = "box" + name = "NT Medical Ship" + +/datum/map_template/shuttle/whiteship/meta + suffix = "meta" + name = "NT Recovery White-ship" + +/datum/map_template/shuttle/cargo/box + suffix = "box" + name = "supply shuttle (Box)" + +/datum/map_template/shuttle/cargo/birdboat + suffix = "birdboat" + name = "supply shuttle (Birdboat)" diff --git a/code/datums/status_effects/buffs.dm b/code/datums/status_effects/buffs.dm new file mode 100644 index 0000000..2a8c85d --- /dev/null +++ b/code/datums/status_effects/buffs.dm @@ -0,0 +1,115 @@ +//Largely beneficial effects go here, even if they have drawbacks. An example is provided in Shadow Mend. + +/datum/status_effect/shadow_mend + id = "shadow_mend" + duration = 3 + alert_type = /obj/screen/alert/status_effect/shadow_mend + +/obj/screen/alert/status_effect/shadow_mend + name = "Shadow Mend" + desc = "Shadowy energies wrap around your wounds, sealing them at a price. After healing, you will slowly lose health every three seconds for thirty seconds." + icon_state = "shadow_mend" + +/datum/status_effect/shadow_mend/on_apply() + owner.visible_message("Violet light wraps around [owner]'s body!", "Violet light wraps around your body!") + playsound(owner, 'sound/magic/Teleport_app.ogg', 50, 1) + +/datum/status_effect/shadow_mend/tick() + owner.adjustBruteLoss(-15) + owner.adjustFireLoss(-15) + +/datum/status_effect/shadow_mend/on_remove() + owner.visible_message("The violet light around [owner] glows black!", "The tendrils around you cinch tightly and reap their toll...") + playsound(owner, 'sound/magic/Teleport_diss.ogg', 50, 1) + owner.apply_status_effect(STATUS_EFFECT_VOID_PRICE) + + +/datum/status_effect/void_price + id = "void_price" + duration = 30 + tick_interval = 3 + alert_type = /obj/screen/alert/status_effect/void_price + +/obj/screen/alert/status_effect/void_price + name = "Void Price" + desc = "Black tendrils cinch tightly against you, digging wicked barbs into your flesh." + icon_state = "shadow_mend" + +/datum/status_effect/void_price/tick() + owner << sound('sound/magic/Summon_Karp.ogg', volume = 25) + owner.adjustBruteLoss(3) + + + +/datum/status_effect/vanguard_shield + id = "vanguard" + duration = 20 + alert_type = /obj/screen/alert/status_effect/vanguard + +/obj/screen/alert/status_effect/vanguard + name = "Vanguard" + desc = "You're absorbing stuns! 25% of all stuns taken will affect you after this effect ends." + icon_state = "vanguard" + alerttooltipstyle = "clockcult" + +/obj/screen/alert/status_effect/vanguard/MouseEntered(location,control,params) + var/mob/living/L = usr + if(istype(L)) //this is probably more safety than actually needed + var/vanguard = L.stun_absorption["vanguard"] + desc = initial(desc) + desc += "
    [vanguard["stuns_absorbed"] * 2] seconds of stuns held back.
    [round(min(vanguard["stuns_absorbed"] * 0.25, 20)) * 2] seconds of stun will affect you." + ..() + +/datum/status_effect/vanguard_shield/on_apply() + owner.add_stun_absorption("vanguard", 200, 1, "'s yellow aura momentarily intensifies!", "Your ward absorbs the stun!", " radiating with a soft yellow light!") + owner.visible_message("[owner] begins to faintly glow!", "You will absorb all stuns for the next twenty seconds.") + +/datum/status_effect/vanguard_shield/on_remove() + var/vanguard = owner.stun_absorption["vanguard"] + var/stuns_blocked = 0 + if(vanguard) + stuns_blocked = round(min(vanguard["stuns_absorbed"] * 0.25, 20)) + if(owner.stat != DEAD) + var/message_to_owner = "You feel your Vanguard quietly fade..." + var/otheractiveabsorptions = FALSE + for(var/i in owner.stun_absorption) + if(owner.stun_absorption[i]["end_time"] > world.time && owner.stun_absorption[i]["priority"] > vanguard["priority"]) + otheractiveabsorptions = TRUE + if(!ratvar_awakens && stuns_blocked && !otheractiveabsorptions) + vanguard["end_time"] = 0 //so it doesn't absorb the stuns we're about to apply + owner.Stun(stuns_blocked) + owner.Weaken(stuns_blocked) + message_to_owner = "The weight of the Vanguard's protection crashes down upon you!" + if(stuns_blocked >= 15) + message_to_owner += "\nYou faint from the exertion!" + owner.Paralyse(stuns_blocked * 2) + owner.visible_message("[owner]'s glowing aura fades!", message_to_owner) + + + +/datum/status_effect/inathneqs_endowment + id = "inathneqs_endowment" + duration = 15 + alert_type = /obj/screen/alert/status_effect/inathneqs_endowment + +/obj/screen/alert/status_effect/inathneqs_endowment + name = "Inath-neq's Endowment" + desc = "Adrenaline courses through you as the Resonant Cogwheel's energy shields you from all harm!" + icon_state = "inathneqs_endowment" + alerttooltipstyle = "clockcult" + +/datum/status_effect/inathneqs_endowment/on_apply() + owner.visible_message("[owner] shines with azure light!", "You feel Inath-neq's power flow through you! You're invincible!") + var/oldcolor = owner.color + owner.color = "#1E8CE1" + owner.fully_heal() + owner.add_stun_absorption("inathneq", 150, 2, "'s flickering blue aura momentarily intensifies!", "Inath-neq's power absorbs the stun!", " glowing with a flickering blue light!") + owner.status_flags |= GODMODE + animate(owner, color = oldcolor, time = 150, easing = EASE_IN) + addtimer(owner, "update_atom_colour", 150) + playsound(owner, 'sound/magic/Ethereal_Enter.ogg', 50, 1) + +/datum/status_effect/inathneqs_endowment/on_remove() + owner.visible_message("The light around [owner] flickers and dissipates!", "You feel Inath-neq's power fade from your body!") + owner.status_flags &= ~GODMODE + playsound(owner, 'sound/magic/Ethereal_Exit.ogg', 50, 1) diff --git a/code/datums/status_effects/gas.dm b/code/datums/status_effects/gas.dm new file mode 100644 index 0000000..7636546 --- /dev/null +++ b/code/datums/status_effects/gas.dm @@ -0,0 +1,31 @@ +/datum/status_effect/freon + id = "frozen" + duration = 10 + unique = TRUE + alert_type = /obj/screen/alert/status_effect/freon + var/icon/cube + +/obj/screen/alert/status_effect/freon + name = "Frozen Solid" + desc = "You're frozen inside of an ice cube, and cannot move! You can still do stuff, like shooting. Resist out of the cube!" + icon_state = "frozen" + +/datum/status_effect/freon/on_apply() + if(!owner.stat) + owner << "You become frozen in a cube!" + cube = icon('icons/effects/freeze.dmi', "ice_cube") + owner.overlays += cube + owner.update_canmove() + +/datum/status_effect/freon/tick() + owner.update_canmove() + if(owner) + if(owner.bodytemperature >= 310.055) + cancel_effect() + +/datum/status_effect/freon/on_remove() + if(!owner.stat) + owner << "The cube melts!" + owner.overlays -= cube + owner.bodytemperature += 100 + owner.update_canmove() diff --git a/code/datums/status_effects/status_effect.dm b/code/datums/status_effects/status_effect.dm new file mode 100644 index 0000000..3bf25eb --- /dev/null +++ b/code/datums/status_effects/status_effect.dm @@ -0,0 +1,92 @@ +//Status effects are used to apply temporary or permanent effects to mobs. Mobs are aware of their status effects at all times. +//This file contains their code, plus code for applying and removing them. +//When making a new status effect, add a define to status_effects.dm in __DEFINES for ease of use! +var/list/status_effects = list() //All status effects affecting literally anyone +/datum/status_effect + var/id = "effect" //Used for screen alerts. + var/duration = -1 //How long the status effect lasts in SECONDS. Enter -1 for an effect that never ends unless removed through some means. + var/tick_interval = 1 //How many seconds between ticks. Leave at 1 for every second. + var/mob/living/owner //The mob affected by the status effect. + var/cosmetic = FALSE //If the status effect only exists for flavor. + var/unique = TRUE //If there can be multiple status effects of this type on one mob. + var/alert_type = /obj/screen/alert/status_effect //the alert thrown by the status effect, contains name and description + +/datum/status_effect/New() + ..() + status_effects += src + addtimer(src, "start_ticking", 1) //Give us time to set any variables + +/datum/status_effect/Destroy() + status_effects -= src + return ..() + +/datum/status_effect/proc/start_ticking() + if(!src) + return + if(!owner) + qdel(src) + return + on_apply() + var/obj/screen/alert/status_effect/A = owner.throw_alert(id, alert_type) + A.attached_effect = src //so the alert can reference us, if it needs to + START_PROCESSING(SSprocessing, src) + +/datum/status_effect/process() + if(!owner) + cancel_effect() + return + if(duration != -1) + duration-- + tick_interval-- + if(!tick_interval) + tick() + tick_interval = initial(tick_interval) + if(!duration) + cancel_effect() + +/datum/status_effect/proc/cancel_effect() + STOP_PROCESSING(SSprocessing, src) + if(owner) + owner.clear_alert(id) + on_remove() + qdel(src) + +/datum/status_effect/proc/on_apply() //Called whenever the buff is applied. +/datum/status_effect/proc/tick() //Called every tick. +/datum/status_effect/proc/on_remove() //Called whenever the buff expires or is removed. + +//////////////// +// ALERT HOOK // +//////////////// + +/obj/screen/alert/status_effect + name = "Curse of Mundanity" + desc = "You don't feel any different..." + var/datum/status_effect/attached_effect + +////////////////// +// HELPER PROCS // +////////////////// + +/mob/living/proc/apply_status_effect(effect) //applies a given status effect to this mob, returning the effect if it was successful + var/datum/status_effect/S1 = effect + for(var/datum/status_effect/S in status_effects) + if(initial(S1.unique) && S.id == initial(S1.id) && S.owner == src) + return + S1 = new effect + S1.owner = src + . = S1 + +/mob/living/proc/remove_status_effect(effect) //removes all of a given status effect from this mob, returning TRUE if at least one was removed + . = FALSE + var/datum/status_effect/S1 = effect + for(var/datum/status_effect/S in status_effects) + if(initial(S1.id) == S.id && S.owner == src) + S.cancel_effect() + . = TRUE + +/mob/living/proc/has_status_effect(effect) //returns TRUE if the mob calling the proc owns the given status effect + var/datum/status_effect/S1 = effect + for(var/datum/status_effect/S in status_effects) + if(initial(S1.id) == S.id && S.owner == src) + return TRUE diff --git a/code/datums/votablemap.dm b/code/datums/votablemap.dm new file mode 100644 index 0000000..c1c0c7d --- /dev/null +++ b/code/datums/votablemap.dm @@ -0,0 +1,10 @@ +/datum/votablemap + var/name = "" + var/friendlyname = "" + var/minusers = 0 + var/maxusers = 0 + var/voteweight = 1 + +/datum/votablemap/New(name) + src.name = name + src.friendlyname = name \ No newline at end of file diff --git a/code/datums/weather/weather.dm b/code/datums/weather/weather.dm new file mode 100644 index 0000000..dc8857b --- /dev/null +++ b/code/datums/weather/weather.dm @@ -0,0 +1,144 @@ +//The effects of weather occur across an entire z-level. For instance, lavaland has periodic ash storms that scorch most unprotected creatures. + +#define STARTUP_STAGE 1 +#define MAIN_STAGE 2 +#define WIND_DOWN_STAGE 3 +#define END_STAGE 4 + +/datum/weather + var/name = "space wind" + var/desc = "Heavy gusts of wind blanket the area, periodically knocking down anyone caught in the open." + + var/telegraph_message = "The wind begins to pick up." //The message displayed in chat to foreshadow the weather's beginning + var/telegraph_duration = 300 //In deciseconds, how long from the beginning of the telegraph until the weather begins + var/telegraph_sound //The sound file played to everyone on an affected z-level + var/telegraph_overlay //The overlay applied to all tiles on the z-level + + var/weather_message = "The wind begins to blow ferociously!" //Displayed in chat once the weather begins in earnest + var/weather_duration = 1200 //In deciseconds, how long the weather lasts once it begins + var/weather_duration_lower = 1200 //See above - this is the lowest possible duration + var/weather_duration_upper = 1500 //See above - this is the highest possible duration + var/weather_sound + var/weather_overlay + var/weather_color = null + + var/end_message = "The wind relents its assault." //Displayed once the wather is over + var/end_duration = 300 //In deciseconds, how long the "wind-down" graphic will appear before vanishing entirely + var/end_sound + var/end_overlay + + var/area_type = /area/space //Types of area to affect + var/list/impacted_areas = list() //Areas to be affected by the weather, calculated when the weather begins + var/list/protected_areas = list()//Areas that are protected and excluded from the affected areas. + var/target_z = ZLEVEL_STATION //The z-level to affect + + var/overlay_layer = AREA_LAYER //Since it's above everything else, this is the layer used by default. TURF_LAYER is below mobs and walls if you need to use that. + var/aesthetic = FALSE //If the weather has no purpose other than looks + var/immunity_type = "storm" //Used by mobs to prevent them from being affected by the weather + + var/stage = END_STAGE //The stage of the weather, from 1-4 + + var/probability = FALSE //Percent chance to happen if there are other possible weathers on the z-level + +/datum/weather/New() + ..() + SSweather.existing_weather |= src + +/datum/weather/Destroy() + SSweather.existing_weather -= src + ..() + +/datum/weather/proc/telegraph() + if(stage == STARTUP_STAGE) + return + stage = STARTUP_STAGE + var/list/affectareas = list() + for(var/V in get_areas(area_type)) + affectareas += V + for(var/V in protected_areas) + affectareas -= get_areas(V) + for(var/V in affectareas) + var/area/A = V + if(A.z == target_z) + impacted_areas |= A + weather_duration = rand(weather_duration_lower, weather_duration_upper) + update_areas() + for(var/V in player_list) + var/mob/M = V + if(M.z == target_z) + if(telegraph_message) + M << telegraph_message + if(telegraph_sound) + M << sound(telegraph_sound) + addtimer(src, "start", telegraph_duration) + +/datum/weather/proc/start() + if(stage >= MAIN_STAGE) + return + stage = MAIN_STAGE + update_areas() + for(var/V in player_list) + var/mob/M = V + if(M.z == target_z) + if(weather_message) + M << weather_message + if(weather_sound) + M << sound(weather_sound) + START_PROCESSING(SSweather, src) + addtimer(src, "wind_down", weather_duration) + +/datum/weather/proc/wind_down() + if(stage >= WIND_DOWN_STAGE) + return + stage = WIND_DOWN_STAGE + update_areas() + for(var/V in player_list) + var/mob/M = V + if(M.z == target_z) + if(end_message) + M << end_message + if(end_sound) + M << sound(end_sound) + STOP_PROCESSING(SSweather, src) + addtimer(src, "end", end_duration) + +/datum/weather/proc/end() + if(stage == END_STAGE) + return 1 + stage = END_STAGE + update_areas() + +/datum/weather/proc/can_impact(mob/living/L) //Can this weather impact a mob? + var/turf/mob_turf = get_turf(L) + if(mob_turf && (mob_turf.z != target_z)) + return + if(immunity_type in L.weather_immunities) + return + if(!(get_area(L) in impacted_areas)) + return + return 1 + +/datum/weather/proc/impact(mob/living/L) //What effect does this weather have on the hapless mob? + return + +/datum/weather/proc/update_areas() + for(var/V in impacted_areas) + var/area/N = V + N.layer = overlay_layer + N.icon = 'icons/effects/weather_effects.dmi' + N.invisibility = 0 + N.color = weather_color + switch(stage) + if(STARTUP_STAGE) + N.icon_state = telegraph_overlay + if(MAIN_STAGE) + N.icon_state = weather_overlay + if(WIND_DOWN_STAGE) + N.icon_state = end_overlay + if(END_STAGE) + N.color = null + N.icon_state = initial(N.icon_state) + N.icon = 'icons/turf/areas.dmi' + N.layer = AREA_LAYER //Just default back to normal area stuff since I assume setting a var is faster than initial + N.invisibility = INVISIBILITY_MAXIMUM + N.opacity = 0 diff --git a/code/datums/weather/weather_types.dm b/code/datums/weather/weather_types.dm new file mode 100644 index 0000000..16ec893 --- /dev/null +++ b/code/datums/weather/weather_types.dm @@ -0,0 +1,184 @@ +//Different types of weather. + +/datum/weather/floor_is_lava //The Floor is Lava: Makes all turfs damage anyone on them unless they're standing on a solid object. + name = "the floor is lava" + desc = "The ground turns into surprisingly cool lava, lightly damaging anything on the floor." + + telegraph_message = "Waves of heat emanate from the ground..." + telegraph_duration = 150 + + weather_message = "The floor is lava! Get on top of something!" + weather_duration_lower = 300 + weather_duration_upper = 600 + weather_overlay = "lava" + + end_message = "The ground cools and returns to its usual form." + end_duration = 0 + + area_type = /area + target_z = ZLEVEL_STATION + + overlay_layer = ABOVE_OPEN_TURF_LAYER //Covers floors only + immunity_type = "lava" + +/datum/weather/floor_is_lava/impact(mob/living/L) + for(var/obj/structure/O in L.loc) + if(O.density) + return + if(L.loc.density) + return + if(!L.client) //Only sentient people are going along with it! + return + L.adjustFireLoss(3) + + +/datum/weather/advanced_darkness //Advanced Darkness: Restricts the vision of all affected mobs to a single tile in the cardinal directions. + name = "advanced darkness" + desc = "Everything in the area is effectively blinded, unable to see more than a foot or so around itself." + + telegraph_message = "The lights begin to dim... is the power going out?" + telegraph_duration = 150 + + weather_message = "This isn't your average everday darkness... this is advanced darkness!" + weather_duration_lower = 300 + weather_duration_upper = 300 + + end_message = "At last, the darkness recedes." + end_duration = 0 + + area_type = /area + target_z = ZLEVEL_STATION + +/datum/weather/advanced_darkness/update_areas() + for(var/V in impacted_areas) + var/area/A = V + if(stage == MAIN_STAGE) + A.invisibility = 0 + A.opacity = 1 + A.layer = overlay_layer + A.icon = 'icons/effects/weather_effects.dmi' + A.icon_state = "darkness" + else + A.invisibility = INVISIBILITY_MAXIMUM + A.opacity = 0 + + +/datum/weather/ash_storm //Ash Storms: Common happenings on lavaland. Heavily obscures vision and deals heavy fire damage to anyone caught outside. + name = "ash storm" + desc = "An intense atmospheric storm lifts ash off of the planet's surface and billows it down across the area, dealing intense fire damage to the unprotected." + + telegraph_message = "An eerie moan rises on the wind. Sheets of burning ash blacken the horizon. Seek shelter." + telegraph_duration = 300 + telegraph_sound = 'sound/lavaland/ash_storm_windup.ogg' + telegraph_overlay = "light_ash" + + weather_message = "Smoldering clouds of scorching ash billow down around you! Get inside!" + weather_duration_lower = 600 + weather_duration_upper = 1500 + weather_sound = 'sound/lavaland/ash_storm_start.ogg' + weather_overlay = "ash_storm" + + end_message = "The shrieking wind whips away the last of the ash falls to its usual murmur. It should be safe to go outside now." + end_duration = 300 + end_sound = 'sound/lavaland/ash_storm_end.ogg' + end_overlay = "light_ash" + + area_type = /area/lavaland/surface/outdoors + target_z = ZLEVEL_LAVALAND + + immunity_type = "ash" + + probability = 90 + +/datum/weather/ash_storm/impact(mob/living/L) + if(istype(L.loc, /obj/mecha)) + return + if(ishuman(L)) + var/mob/living/carbon/human/H = L + var/thermal_protection = H.get_thermal_protection() + if(thermal_protection >= FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT) + return + L.adjustFireLoss(4) + +/datum/weather/ash_storm/emberfall //Emberfall: An ash storm passes by, resulting in harmless embers falling like snow. 10% to happen in place of an ash storm. + name = "emberfall" + desc = "A passing ash storm blankets the area in harmless embers." + + weather_message = "Gentle embers waft down around you like grotesque snow. The storm seems to have passed you by..." + weather_sound = 'sound/lavaland/ash_storm_windup.ogg' + weather_overlay = "light_ash" + + end_message = "The emberfall slows, stops. Another layer of hardened soot to the basalt beneath your feet." + + aesthetic = TRUE + + probability = 10 + +/datum/weather/rad_storm + name = "radiation storm" + desc = "A cloud of intense radiation passes through the area dealing rad damage to those who are unprotected." + + telegraph_duration = 400 + telegraph_message = "The air begins to grow warm." + + weather_message = "You feel waves of heat wash over you! Find shelter!" + weather_overlay = "ash_storm" + weather_duration_lower = 600 + weather_duration_upper = 1500 + weather_color = "green" + weather_sound = 'sound/misc/bloblarm.ogg' + + end_duration = 100 + end_message = "The air seems to be cooling off again." + + area_type = /area + protected_areas = list(/area/maintenance, /area/ai_monitored/turret_protected/ai_upload, /area/ai_monitored/turret_protected/ai_upload_foyer, /area/ai_monitored/turret_protected/ai) + target_z = ZLEVEL_STATION + + immunity_type = "rad" + +/datum/weather/rad_storm/telegraph() + ..() + status_alarm("alert") + + +/datum/weather/rad_storm/impact(mob/living/L) + var/resist = L.getarmor(null, "rad") + if(prob(40)) + if(ishuman(L)) + var/mob/living/carbon/human/H = L + if(H.dna && H.dna.species) + if(!(RADIMMUNE in H.dna.species.specflags)) + if(prob(max(0,100-resist))) + H.randmuti() + if(prob(50)) + if(prob(90)) + H.randmutb() + else + H.randmutg() + H.domutcheck() + L.rad_act(20,1) +/datum/weather/rad_storm/end() + if(..()) + return + priority_announce("The radiation threat has passed. Please return to your workplaces.", "Anomaly Alert") + status_alarm() + + +/datum/weather/rad_storm/proc/status_alarm(command) //Makes the status displays show the radiation warning for those who missed the announcement. + var/datum/radio_frequency/frequency = SSradio.return_frequency(1435) + + if(!frequency) + return + + var/datum/signal/status_signal = new + var/atom/movable/virtualspeaker/virt = PoolOrNew(/atom/movable/virtualspeaker,null) + status_signal.source = virt + status_signal.transmission_method = 1 + status_signal.data["command"] = "shuttle" + + if(command == "alert") + status_signal.data["command"] = "alert" + status_signal.data["picture_state"] = "radiation" + + frequency.post_signal(src, status_signal) \ No newline at end of file diff --git a/code/datums/wires/airalarm.dm b/code/datums/wires/airalarm.dm new file mode 100644 index 0000000..6078e6d --- /dev/null +++ b/code/datums/wires/airalarm.dm @@ -0,0 +1,74 @@ +/datum/wires/airalarm + holder_type = /obj/machinery/airalarm + proper_name = "Air Alarm" + +/datum/wires/airalarm/New(atom/holder) + wires = list( + WIRE_POWER, + WIRE_IDSCAN, WIRE_AI, + WIRE_PANIC, WIRE_ALARM + ) + add_duds(3) + ..() + +/datum/wires/airalarm/interactable(mob/user) + var/obj/machinery/airalarm/A = holder + if(A.panel_open && A.buildstage == 2) + return TRUE + +/datum/wires/airalarm/get_status() + var/obj/machinery/airalarm/A = holder + var/list/status = list() + status += "The interface light is [A.locked ? "red" : "green"]." + status += "The short indicator is [A.shorted ? "lit" : "off"]." + status += "The AI connection light is [!A.aidisabled ? "on" : "off"]." + return status + +/datum/wires/airalarm/on_pulse(wire) + var/obj/machinery/airalarm/A = holder + switch(wire) + if(WIRE_POWER) // Short out for a long time. + if(!A.shorted) + A.shorted = TRUE + A.update_icon() + addtimer(A, "reset", 1200, FALSE, wire) + if(WIRE_IDSCAN) // Toggle lock. + A.locked = !A.locked + if(WIRE_AI) // Disable AI control for a while. + if(!A.aidisabled) + A.aidisabled = TRUE + addtimer(A, "reset", 100, FALSE, wire) + if(WIRE_PANIC) // Toggle panic siphon. + if(!A.shorted) + if(A.mode == 1) // AALARM_MODE_SCRUB + A.mode = 3 // AALARM_MODE_PANIC + else + A.mode = 1 // AALARM_MODE_SCRUB + A.apply_mode() + if(WIRE_ALARM) // Clear alarms. + var/area/AA = get_area_master(A) + if(AA.atmosalert(0, holder)) + A.post_alert(0) + A.update_icon() + +/datum/wires/airalarm/on_cut(wire, mend) + var/obj/machinery/airalarm/A = holder + switch(wire) + if(WIRE_POWER) // Short out forever. + A.shock(usr, 50) + A.shorted = !mend + A.update_icon() + if(WIRE_IDSCAN) + if(!mend) + A.locked = TRUE + if(WIRE_AI) + A.aidisabled = mend // Enable/disable AI control. + if(WIRE_PANIC) // Force panic syphon on. + if(!mend && !A.shorted) + A.mode = 3 // AALARM_MODE_PANIC + A.apply_mode() + if(WIRE_ALARM) // Post alarm. + var/area/AA = get_area_master(A) + if(AA.atmosalert(2, holder)) + A.post_alert(2) + A.update_icon() \ No newline at end of file diff --git a/code/datums/wires/airlock.dm b/code/datums/wires/airlock.dm new file mode 100644 index 0000000..84b5922 --- /dev/null +++ b/code/datums/wires/airlock.dm @@ -0,0 +1,156 @@ +/datum/wires/airlock + holder_type = /obj/machinery/door/airlock + proper_name = "Airlock" + +/datum/wires/airlock/secure + randomize = TRUE + +/datum/wires/airlock/New(atom/holder) + wires = list( + WIRE_POWER1, WIRE_POWER2, + WIRE_BACKUP1, WIRE_BACKUP2, + WIRE_OPEN, WIRE_BOLTS, WIRE_IDSCAN, WIRE_AI, + WIRE_SHOCK, WIRE_SAFETY, WIRE_TIMING, WIRE_LIGHT, + WIRE_ZAP1, WIRE_ZAP2 + ) + add_duds(2) + ..() + +/datum/wires/airlock/interactable(mob/user) + var/obj/machinery/door/airlock/A = holder + if(!issilicon(user) && A.isElectrified() && A.shock(user, 100)) + return FALSE + if(A.panel_open) + return TRUE + +/datum/wires/airlock/get_status() + var/obj/machinery/door/airlock/A = holder + var/list/status = list() + status += "The door bolts [A.locked ? "have fallen!" : "look up."]" + status += "The test light is [A.hasPower() ? "on" : "off"]." + status += "The AI connection light is [A.aiControlDisabled || A.emagged ? "off" : "on"]." + status += "The check wiring light is [A.safe ? "off" : "on"]." + status += "The timer is powered [A.autoclose ? "on" : "off"]." + status += "The speed light is [A.normalspeed ? "on" : "off"]." + status += "The emergency light is [A.emergency ? "on" : "off"]." + return status + +/datum/wires/airlock/on_pulse(wire) + var/obj/machinery/door/airlock/A = holder + switch(wire) + if(WIRE_POWER1, WIRE_POWER2) // Pulse to loose power. + A.loseMainPower() + if(WIRE_BACKUP1, WIRE_BACKUP2) // Pulse to loose backup power. + A.loseBackupPower() + if(WIRE_OPEN) // Pulse to open door (only works not emagged and ID wire is cut or no access is required). + if(A.emagged) + return + if(!A.requiresID() || A.check_access(null)) + if(A.density) + A.open() + else + A.close() + if(WIRE_BOLTS) // Pulse to toggle bolts (but only raise if power is on). + if(!A.locked) + A.bolt() + A.audible_message("You hear a click from the bottom of the door.", null, 1) + else + if(A.hasPower()) + A.unbolt() + A.audible_message("You hear a click from the bottom of the door.", null, 1) + A.update_icon() + if(WIRE_IDSCAN) // Pulse to disable emergency access and flash red lights. + if(A.hasPower() && A.density) + A.do_animate("deny") + if(A.emergency) + A.emergency = FALSE + A.update_icon() + if(WIRE_AI) // Pulse to disable WIRE_AI control for 10 ticks (follows same rules as cutting). + if(A.aiControlDisabled == 0) + A.aiControlDisabled = 1 + else if(A.aiControlDisabled == -1) + A.aiControlDisabled = 2 + spawn(10) + if(A) + if(A.aiControlDisabled == 1) + A.aiControlDisabled = 0 + else if(A.aiControlDisabled == 2) + A.aiControlDisabled = -1 + if(WIRE_SHOCK) // Pulse to shock the door for 10 ticks. + if(!A.secondsElectrified) + A.secondsElectrified = 30 + A.shockedby += text("\[[time_stamp()]\][usr](ckey:[usr.ckey])") + add_logs(usr, A, "electrified") + spawn(10) + if(A) + while (A.secondsElectrified > 0) + A.secondsElectrified -= 1 + if(A.secondsElectrified < 0) + A.secondsElectrified = 0 + sleep(10) + if(WIRE_SAFETY) + A.safe = !A.safe + if(!A.density) + A.close() + if(WIRE_TIMING) + A.normalspeed = !A.normalspeed + if(WIRE_LIGHT) + A.lights = !A.lights + A.update_icon() + +/datum/wires/airlock/on_cut(wire, mend) + var/obj/machinery/door/airlock/A = holder + switch(wire) + if(WIRE_POWER1, WIRE_POWER2) // Cut to loose power, repair all to gain power. + if(mend && !is_cut(WIRE_POWER1) && !is_cut(WIRE_POWER2)) + A.regainMainPower() + if(usr) + A.shock(usr, 50) + else + A.loseMainPower() + if(usr) + A.shock(usr, 50) + if(WIRE_BACKUP1, WIRE_BACKUP2) // Cut to loose backup power, repair all to gain backup power. + if(mend && !is_cut(WIRE_BACKUP1) && !is_cut(WIRE_BACKUP2)) + A.regainBackupPower() + if(usr) + A.shock(usr, 50) + else + A.loseBackupPower() + if(usr) + A.shock(usr, 50) + if(WIRE_BOLTS) // Cut to drop bolts, mend does nothing. + if(!mend) + A.bolt() + if(WIRE_AI) // Cut to disable WIRE_AI control, mend to re-enable. + if(mend) + if(A.aiControlDisabled == 1) // 0 = normal, 1 = locked out, 2 = overridden by WIRE_AI, -1 = previously overridden by WIRE_AI + A.aiControlDisabled = 0 + else if(A.aiControlDisabled == 2) + A.aiControlDisabled = -1 + else + if(A.aiControlDisabled == 0) + A.aiControlDisabled = 1 + else if(A.aiControlDisabled == -1) + A.aiControlDisabled = 2 + if(WIRE_SHOCK) // Cut to shock the door, mend to unshock. + if(mend) + if(A.secondsElectrified) + A.secondsElectrified = 0 + else + if(A.secondsElectrified != -1) + A.secondsElectrified = -1 + if(usr) + A.shockedby += text("\[[time_stamp()]\][usr](ckey:[usr.ckey])") + add_logs(usr, A, "electrified") + if(WIRE_SAFETY) // Cut to disable safeties, mend to re-enable. + A.safe = mend + if(WIRE_TIMING) // Cut to disable auto-close, mend to re-enable. + A.autoclose = mend + if(A.autoclose && !A.density) + A.close() + if(WIRE_LIGHT) // Cut to disable lights, mend to re-enable. + A.lights = mend + A.update_icon() + if(WIRE_ZAP1, WIRE_ZAP2) // Ouch. + A.shock(usr, 50) diff --git a/code/datums/wires/apc.dm b/code/datums/wires/apc.dm new file mode 100644 index 0000000..5db74d3 --- /dev/null +++ b/code/datums/wires/apc.dm @@ -0,0 +1,55 @@ +/datum/wires/apc + holder_type = /obj/machinery/power/apc + proper_name = "APC" + +/datum/wires/apc/New(atom/holder) + wires = list( + WIRE_POWER1, WIRE_POWER2, + WIRE_IDSCAN, WIRE_AI + ) + add_duds(6) + ..() + +/datum/wires/apc/interactable(mob/user) + var/obj/machinery/power/apc/A = holder + if(A.panel_open && !A.opened) + return TRUE + +/datum/wires/apc/get_status() + var/obj/machinery/power/apc/A = holder + var/list/status = list() + status += "The interface light is [A.locked ? "red" : "green"]." + status += "The short indicator is [A.shorted ? "lit" : "off"]." + status += "The AI connection light is [!A.aidisabled ? "on" : "off"]." + return status + +/datum/wires/apc/on_pulse(wire) + var/obj/machinery/power/apc/A = holder + switch(wire) + if(WIRE_POWER1, WIRE_POWER2) // Short for a long while. + if(!A.shorted) + A.shorted = TRUE + addtimer(A, "reset", 1200, FALSE, wire) + if(WIRE_IDSCAN) // Unlock for a little while. + A.locked = FALSE + addtimer(A, "reset", 300, FALSE, wire) + if(WIRE_AI) // Disable AI control for a very short time. + if(!A.aidisabled) + A.aidisabled = TRUE + addtimer(A, "reset", 10, FALSE, wire) + +/datum/wires/apc/on_cut(index, mend) + var/obj/machinery/power/apc/A = holder + switch(index) + if(WIRE_POWER1, WIRE_POWER2) // Short out. + if(mend && !is_cut(WIRE_POWER1) && !is_cut(WIRE_POWER2)) + A.shorted = FALSE + A.shock(usr, 50) + else + A.shorted = TRUE + A.shock(usr, 50) + if(WIRE_AI) // Disable AI control. + if(mend) + A.aidisabled = FALSE + else + A.aidisabled = TRUE \ No newline at end of file diff --git a/code/datums/wires/autolathe.dm b/code/datums/wires/autolathe.dm new file mode 100644 index 0000000..3dc60d9 --- /dev/null +++ b/code/datums/wires/autolathe.dm @@ -0,0 +1,48 @@ +/datum/wires/autolathe + holder_type = /obj/machinery/autolathe + proper_name = "Autolathe" + +/datum/wires/autolathe/New(atom/holder) + wires = list( + WIRE_HACK, WIRE_DISABLE, + WIRE_SHOCK, WIRE_ZAP + ) + add_duds(6) + ..() + +/datum/wires/autolathe/interactable(mob/user) + var/obj/machinery/autolathe/A = holder + if(A.panel_open) + return TRUE + +/datum/wires/autolathe/get_status() + var/obj/machinery/autolathe/A = holder + var/list/status = list() + status += "The red light is [A.disabled ? "on" : "off"]." + status += "The blue light is [A.hacked ? "on" : "off"]." + return status + +/datum/wires/autolathe/on_pulse(wire) + var/obj/machinery/autolathe/A = holder + switch(wire) + if(WIRE_HACK) + A.adjust_hacked(!A.hacked) + addtimer(A, "reset", 60, FALSE, wire) + if(WIRE_SHOCK) + A.shocked = !A.shocked + addtimer(A, "reset", 60, FALSE, wire) + if(WIRE_DISABLE) + A.disabled = !A.disabled + addtimer(A, "reset", 60, FALSE, wire) + +/datum/wires/autolathe/on_cut(wire, mend) + var/obj/machinery/autolathe/A = holder + switch(wire) + if(WIRE_HACK) + A.adjust_hacked(!mend) + if(WIRE_HACK) + A.shocked = !mend + if(WIRE_DISABLE) + A.disabled = !mend + if(WIRE_ZAP) + A.shock(usr, 50) \ No newline at end of file diff --git a/code/datums/wires/explosive.dm b/code/datums/wires/explosive.dm new file mode 100644 index 0000000..eefc270 --- /dev/null +++ b/code/datums/wires/explosive.dm @@ -0,0 +1,80 @@ +/datum/wires/explosive/New(atom/holder) + add_duds(2) // In this case duds actually explode. + ..() + +/datum/wires/explosive/on_pulse(index) + explode() + +/datum/wires/explosive/on_cut(index, mend) + explode() + +/datum/wires/explosive/proc/explode() + return + + +/datum/wires/explosive/c4 + holder_type = /obj/item/weapon/c4 + randomize = TRUE //Same behaviour since no wire actually disarms it + +/datum/wires/explosive/c4/interactable(mob/user) + var/obj/item/weapon/c4/P = holder + if(P.open_panel) + return TRUE + +/datum/wires/explosive/c4/explode() + var/obj/item/weapon/c4/P = holder + P.explode() + + +/datum/wires/explosive/pizza + holder_type = /obj/item/pizzabox + randomize = TRUE + +/datum/wires/explosive/pizza/New(atom/holder) + wires = list( + WIRE_DISARM + ) + add_duds(3) // Duds also explode here. + ..() + +/datum/wires/explosive/pizza/interactable(mob/user) + var/obj/item/pizzabox/P = holder + if(P.open && P.bomb) + return TRUE + +/datum/wires/explosive/pizza/get_status() + var/obj/item/pizzabox/P = holder + var/list/status = list() + status += "The red light is [P.bomb_active ? "on" : "off"]." + status += "The green light is [P.bomb_defused ? "on": "off"]." + return status + +/datum/wires/explosive/pizza/on_pulse(wire) + var/obj/item/pizzabox/P = holder + switch(wire) + if(WIRE_DISARM) // Pulse to toggle + P.bomb_defused = !P.bomb_defused + else // Boom + explode() + +/datum/wires/explosive/pizza/on_cut(wire, mend) + var/obj/item/pizzabox/P = holder + switch(wire) + if(WIRE_DISARM) // Disarm and untrap the box. + if(!mend) + P.bomb_defused = TRUE + else + if(!mend && !P.bomb_defused) + explode() + +/datum/wires/explosive/pizza/explode() + var/obj/item/pizzabox/P = holder + P.bomb.detonate() + + +/datum/wires/explosive/gibtonite + holder_type = /obj/item/weapon/twohanded/required/gibtonite + +/datum/wires/explosive/gibtonite/explode() + var/obj/item/weapon/twohanded/required/gibtonite/P = holder + P.GibtoniteReaction(null, 2) \ No newline at end of file diff --git a/code/datums/wires/mulebot.dm b/code/datums/wires/mulebot.dm new file mode 100644 index 0000000..35ea1cc --- /dev/null +++ b/code/datums/wires/mulebot.dm @@ -0,0 +1,31 @@ +/datum/wires/mulebot + holder_type = /mob/living/simple_animal/bot/mulebot + randomize = TRUE + +/datum/wires/mulebot/New(atom/holder) + wires = list( + WIRE_POWER1, WIRE_POWER2, + WIRE_AVOIDANCE, WIRE_LOADCHECK, + WIRE_MOTOR1, WIRE_MOTOR2, + WIRE_RX, WIRE_TX, WIRE_BEACON + ) + ..() + +/datum/wires/mulebot/interactable(mob/user) + var/mob/living/simple_animal/bot/mulebot/M = holder + if(M.open) + return TRUE + +/datum/wires/mulebot/on_pulse(wire) + var/mob/living/simple_animal/bot/mulebot/M = holder + switch(wire) + if(WIRE_POWER1, WIRE_POWER2) + holder.visible_message("\icon[M] The charge light flickers.") + if(WIRE_AVOIDANCE) + holder.visible_message("\icon[M] The external warning lights flash briefly.") + if(WIRE_LOADCHECK) + holder.visible_message("\icon[M] The load platform clunks.") + if(WIRE_MOTOR1, WIRE_MOTOR2) + holder.visible_message("\icon[M] The drive motor whines briefly.") + else + holder.visible_message("\icon[M] You hear a radio crackle.") \ No newline at end of file diff --git a/code/datums/wires/particle_accelerator.dm b/code/datums/wires/particle_accelerator.dm new file mode 100644 index 0000000..9d82892 --- /dev/null +++ b/code/datums/wires/particle_accelerator.dm @@ -0,0 +1,45 @@ +/datum/wires/particle_accelerator/control_box + holder_type = /obj/machinery/particle_accelerator/control_box + proper_name = "Particle Accelerator" + +/datum/wires/particle_accelerator/control_box/New(atom/holder) + wires = list( + WIRE_POWER, WIRE_STRENGTH, WIRE_LIMIT, + WIRE_INTERFACE + ) + add_duds(2) + ..() + +/datum/wires/particle_accelerator/control_box/interactable(mob/user) + var/obj/machinery/particle_accelerator/control_box/C = holder + if(C.construction_state == 2) + return TRUE + +/datum/wires/particle_accelerator/control_box/on_pulse(wire) + var/obj/machinery/particle_accelerator/control_box/C = holder + switch(wire) + if(WIRE_POWER) + C.toggle_power() + if(WIRE_STRENGTH) + C.add_strength() + if(WIRE_INTERFACE) + C.interface_control = !C.interface_control + if(WIRE_LIMIT) + C.visible_message("\icon[C][C] makes a large whirring noise.") + +/datum/wires/particle_accelerator/control_box/on_cut(wire, mend) + var/obj/machinery/particle_accelerator/control_box/C = holder + switch(wire) + if(WIRE_POWER) + if(C.active == !mend) + C.toggle_power() + if(WIRE_STRENGTH) + for(var/i = 1; i < 3; i++) + C.remove_strength() + if(WIRE_INTERFACE) + if(!mend) + C.interface_control = FALSE + if(WIRE_LIMIT) + C.strength_upper_limit = (mend ? 2 : 3) + if(C.strength_upper_limit < C.strength) + C.remove_strength() \ No newline at end of file diff --git a/code/datums/wires/r_n_d.dm b/code/datums/wires/r_n_d.dm new file mode 100644 index 0000000..bae26be --- /dev/null +++ b/code/datums/wires/r_n_d.dm @@ -0,0 +1,47 @@ +/datum/wires/r_n_d + holder_type = /obj/machinery/r_n_d + randomize = TRUE + +/datum/wires/r_n_d/New(atom/holder) + wires = list( + WIRE_HACK, WIRE_DISABLE, + WIRE_SHOCK + ) + add_duds(5) + ..() + +/datum/wires/r_n_d/interactable(mob/user) + var/obj/machinery/r_n_d/R = holder + if(R.panel_open) + return TRUE + +/datum/wires/r_n_d/get_status() + var/obj/machinery/r_n_d/R = holder + var/list/status = list() + status += "The red light is [R.disabled ? "off" : "on"]." + status += "The green light is [R.shocked ? "off" : "on"]." + status += "The blue light is [R.hacked ? "off" : "on"]." + return status + +/datum/wires/r_n_d/on_pulse(wire) + var/obj/machinery/r_n_d/R = holder + switch(wire) + if(WIRE_HACK) + R.hacked = !R.hacked + if(WIRE_DISABLE) + R.disabled = !R.disabled + if(WIRE_SHOCK) + R.shocked = TRUE + spawn(100) + if(R) + R.shocked = FALSE + +/datum/wires/r_n_d/on_cut(wire, mend) + var/obj/machinery/r_n_d/R = holder + switch(wire) + if(WIRE_HACK) + R.hacked = !mend + if(WIRE_DISABLE) + R.disabled = !mend + if(WIRE_SHOCK) + R.shocked = !mend diff --git a/code/datums/wires/radio.dm b/code/datums/wires/radio.dm new file mode 100644 index 0000000..b7b5e0d --- /dev/null +++ b/code/datums/wires/radio.dm @@ -0,0 +1,26 @@ +/datum/wires/radio + holder_type = /obj/item/device/radio + proper_name = "Radio" + +/datum/wires/radio/New(atom/holder) + wires = list( + WIRE_SIGNAL, + WIRE_RX, WIRE_TX + ) + ..() + +/datum/wires/radio/interactable(mob/user) + var/obj/item/device/radio/R = holder + if(R.b_stat) + return TRUE + +/datum/wires/radio/on_pulse(index) + var/obj/item/device/radio/R = holder + switch(index) + if(WIRE_SIGNAL) + R.listening = !R.listening + R.broadcasting = R.listening + if(WIRE_RX) + R.listening = !R.listening + if(WIRE_TX) + R.broadcasting = !R.broadcasting diff --git a/code/datums/wires/robot.dm b/code/datums/wires/robot.dm new file mode 100644 index 0000000..50cd20e --- /dev/null +++ b/code/datums/wires/robot.dm @@ -0,0 +1,66 @@ +/datum/wires/robot + holder_type = /mob/living/silicon/robot + randomize = TRUE + +/datum/wires/robot/New(atom/holder) + wires = list( + WIRE_AI, WIRE_CAMERA, + WIRE_LAWSYNC, WIRE_LOCKDOWN + ) + add_duds(2) + ..() + +/datum/wires/robot/interactable(mob/user) + var/mob/living/silicon/robot/R = holder + if(R.wiresexposed) + return TRUE + +/datum/wires/robot/get_status() + var/mob/living/silicon/robot/R = holder + var/list/status = list() + status += "The law sync module is [R.lawupdate ? "on" : "off"]." + status += "The intelligence link display shows [R.connected_ai ? R.connected_ai.name : "NULL"]." + status += "The camera light is [!isnull(R.camera) && R.camera.status ? "on" : "off"]." + status += "The lockdown indicator is [R.lockcharge ? "on" : "off"]." + return status + +/datum/wires/robot/on_pulse(wire) + var/mob/living/silicon/robot/R = holder + switch(wire) + if(WIRE_AI) // Pulse to pick a new AI. + if(!R.emagged) + var/new_ai = select_active_ai(R) + if(new_ai && (new_ai != R.connected_ai)) + R.connected_ai = new_ai + R.notify_ai(TRUE) + if(WIRE_CAMERA) // Pulse to disable the camera. + if(!isnull(R.camera) && !R.scrambledcodes) + R.camera.toggle_cam(usr, 0) + R.visible_message("[R]'s camera lense focuses loudly.", "Your camera lense focuses loudly.") + if(WIRE_LAWSYNC) // Forces a law update if possible. + if(R.lawupdate) + R.visible_message("[R] gently chimes.", "LawSync protocol engaged.") + R.lawsync() + R.show_laws() + if(WIRE_LOCKDOWN) + R.SetLockdown(!R.lockcharge) // Toggle + +/datum/wires/robot/on_cut(wire, mend) + var/mob/living/silicon/robot/R = holder + switch(wire) + if(WIRE_AI) // Cut the AI wire to reset AI control. + if(!mend) + R.connected_ai = null + if(WIRE_LAWSYNC) // Cut the law wire, and the borg will no longer receive law updates from its AI. Repair and it will re-sync. + if(mend) + if(!R.emagged) + R.lawupdate = TRUE + else + R.lawupdate = FALSE + if (WIRE_CAMERA) // Disable the camera. + if(!isnull(R.camera) && !R.scrambledcodes) + R.camera.status = mend + R.camera.toggle_cam(usr, 0) + R.visible_message("[R]'s camera lense focuses loudly.", "Your camera lense focuses loudly.") + if(WIRE_LOCKDOWN) // Simple lockdown. + R.SetLockdown(!mend) diff --git a/code/datums/wires/suit_storage_unit.dm b/code/datums/wires/suit_storage_unit.dm new file mode 100644 index 0000000..9f4b5a1 --- /dev/null +++ b/code/datums/wires/suit_storage_unit.dm @@ -0,0 +1,43 @@ +/datum/wires/suit_storage_unit + holder_type = /obj/machinery/suit_storage_unit + proper_name = "Suit Storage Unit" + +/datum/wires/suit_storage_unit/New(atom/holder) + wires = list( + WIRE_HACK, WIRE_SAFETY, + WIRE_ZAP + ) + add_duds(2) + ..() + +/datum/wires/suit_storage_unit/interactable(mob/user) + var/obj/machinery/suit_storage_unit/SSU = holder + if(SSU.panel_open) + return TRUE + +/datum/wires/suit_storage_unit/get_status() + var/obj/machinery/suit_storage_unit/SSU = holder + var/list/status = list() + status += "The UV bulb is [SSU.uv_super ? "glowing" : "dim"]." + status += "The service light is [SSU.safeties ? "off" : "on"]." + return status + +/datum/wires/suit_storage_unit/on_pulse(wire) + var/obj/machinery/suit_storage_unit/SSU = holder + switch(wire) + if(WIRE_HACK) + SSU.uv_super = !SSU.uv_super + if(WIRE_SAFETY) + SSU.safeties = !SSU.safeties + if(WIRE_ZAP) + SSU.shock(usr) + +/datum/wires/suit_storage_unit/on_cut(wire, mend) + var/obj/machinery/suit_storage_unit/SSU = holder + switch(wire) + if(WIRE_HACK) + SSU.uv_super = !mend + if(WIRE_SAFETY) + SSU.safeties = mend + if(WIRE_ZAP) + SSU.shock(usr) diff --git a/code/datums/wires/syndicatebomb.dm b/code/datums/wires/syndicatebomb.dm new file mode 100644 index 0000000..2979c44 --- /dev/null +++ b/code/datums/wires/syndicatebomb.dm @@ -0,0 +1,93 @@ +/datum/wires/syndicatebomb + holder_type = /obj/machinery/syndicatebomb + randomize = TRUE + +/datum/wires/syndicatebomb/New(atom/holder) + wires = list( + WIRE_BOOM, WIRE_UNBOLT, + WIRE_ACTIVATE, WIRE_DELAY, WIRE_PROCEED + ) + ..() + +/datum/wires/syndicatebomb/interactable(mob/user) + var/obj/machinery/syndicatebomb/P = holder + if(P.open_panel) + return TRUE + +/datum/wires/syndicatebomb/on_pulse(wire) + var/obj/machinery/syndicatebomb/B = holder + switch(wire) + if(WIRE_BOOM) + if(B.active) + holder.visible_message("\icon[B] An alarm sounds! It's go-") + B.explode_now = TRUE + tell_admins(B) + if(WIRE_UNBOLT) + holder.visible_message("\icon[B] The bolts spin in place for a moment.") + if(WIRE_DELAY) + if(B.delayedbig) + holder.visible_message("\icon[B] The bomb has already been delayed.") + else + holder.visible_message("\icon[B] The bomb chirps.") + playsound(B, 'sound/machines/chime.ogg', 30, 1) + B.detonation_timer += 300 + B.delayedbig = TRUE + if(WIRE_PROCEED) + holder.visible_message("\icon[B] The bomb buzzes ominously!") + playsound(B, 'sound/machines/buzz-sigh.ogg', 30, 1) + var/seconds = B.seconds_remaining() + if(seconds >= 61) // Long fuse bombs can suddenly become more dangerous if you tinker with them. + B.detonation_timer = world.time + 600 + else if(seconds >= 21) + B.detonation_timer -= 100 + else if(seconds >= 11) // Both to prevent negative timers and to have a little mercy. + B.detonation_timer = world.time + 100 + if(WIRE_ACTIVATE) + if(!B.active && !B.defused) + holder.visible_message("\icon[B] You hear the bomb start ticking!") + B.activate() + B.update_icon() + else if(B.delayedlittle) + holder.visible_message("\icon[B] Nothing happens.") + else + holder.visible_message("\icon[B] The bomb seems to hesitate for a moment.") + B.detonation_timer += 100 + B.delayedlittle = TRUE + +/datum/wires/syndicatebomb/on_cut(wire, mend) + var/obj/machinery/syndicatebomb/B = holder + switch(wire) + if(WIRE_BOOM) + if(mend) + B.defused = FALSE // Cutting and mending all the wires of an inactive bomb will thus cure any sabotage. + else + if(B.active) + holder.visible_message("\icon[B] An alarm sounds! It's go-") + B.explode_now = TRUE + tell_admins(B) + else + B.defused = TRUE + if(WIRE_UNBOLT) + if(!mend && B.anchored) + holder.visible_message("\icon[B] The bolts lift out of the ground!") + playsound(B, 'sound/effects/stealthoff.ogg', 30, 1) + B.anchored = FALSE + if(WIRE_PROCEED) + if(!mend && B.active) + holder.visible_message("\icon[B] An alarm sounds! It's go-") + B.explode_now = TRUE + tell_admins(B) + if(WIRE_ACTIVATE) + if(!mend && B.active) + holder.visible_message("\icon[B] The timer stops! The bomb has been defused!") + B.active = FALSE + B.defused = TRUE + B.update_icon() + +/datum/wires/syndicatebomb/proc/tell_admins(obj/machinery/syndicatebomb/B) + if(istype(B, /obj/machinery/syndicatebomb/training)) + return + var/turf/T = get_turf(B) + log_game("\A [B] was detonated via boom wire at [COORD(T)].") + message_admins("A [B.name] was detonated via boom wire at \ + [ADMIN_COORDJMP(T)].") diff --git a/code/datums/wires/vending.dm b/code/datums/wires/vending.dm new file mode 100644 index 0000000..0c66f26 --- /dev/null +++ b/code/datums/wires/vending.dm @@ -0,0 +1,59 @@ +/datum/wires/vending + holder_type = /obj/machinery/vending + proper_name = "Vending Unit" + +/datum/wires/vending/New(atom/holder) + wires = list( + WIRE_THROW, WIRE_SHOCK, WIRE_SPEAKER, + WIRE_CONTRABAND, WIRE_IDSCAN + ) + add_duds(1) + ..() + +/datum/wires/vending/interactable(mob/user) + var/obj/machinery/vending/V = holder + if(!issilicon(user) && V.seconds_electrified && V.shock(user, 100)) + return FALSE + if(V.panel_open) + return TRUE + +/datum/wires/vending/get_status() + var/obj/machinery/vending/V = holder + var/list/status = list() + status += "The orange light is [V.seconds_electrified ? "on" : "off"]." + status += "The red light is [V.shoot_inventory ? "off" : "blinking"]." + status += "The green light is [V.extended_inventory ? "on" : "off"]." + status += "A [V.scan_id ? "purple" : "yellow"] light is on." + status += "The speaker light is [V.shut_up ? "off" : "on"]." + return status + +/datum/wires/vending/on_pulse(wire) + var/obj/machinery/vending/V = holder + switch(wire) + if(WIRE_THROW) + V.shoot_inventory = !V.shoot_inventory + if(WIRE_CONTRABAND) + V.extended_inventory = !V.extended_inventory + if(WIRE_SHOCK) + V.seconds_electrified = 30 + if(WIRE_IDSCAN) + V.scan_id = !V.scan_id + if(WIRE_SPEAKER) + V.shut_up = !V.shut_up + +/datum/wires/vending/on_cut(wire, mend) + var/obj/machinery/vending/V = holder + switch(wire) + if(WIRE_THROW) + V.shoot_inventory = !mend + if(WIRE_CONTRABAND) + V.extended_inventory = FALSE + if(WIRE_SHOCK) + if(mend) + V.seconds_electrified = FALSE + else + V.seconds_electrified = -1 + if(WIRE_IDSCAN) + V.scan_id = mend + if(WIRE_SPEAKER) + V.shut_up = mend \ No newline at end of file diff --git a/code/datums/wires/wires.dm b/code/datums/wires/wires.dm new file mode 100644 index 0000000..ab98c37 --- /dev/null +++ b/code/datums/wires/wires.dm @@ -0,0 +1,247 @@ +var/list/wire_colors = list( + "blue", + "brown", + "crimson", + "cyan", + "gold", + "grey", + "green", + "magenta", + "orange", + "pink", + "purple", + "red", + "silver", + "violet", + "white", + "yellow", +) +var/list/wire_color_directory = list() +var/list/wire_name_directory = list() + +/proc/is_wire_tool(obj/item/I) + if(istype(I, /obj/item/device/multitool)) + return TRUE + if(istype(I, /obj/item/weapon/wirecutters)) + return TRUE + if(istype(I, /obj/item/device/assembly)) + var/obj/item/device/assembly/A = I + if(A.attachable) + return TRUE + return + +/atom + var/datum/wires/wires = null + +/datum/wires + var/atom/holder = null // The holder (atom that contains these wires). + var/holder_type = null // The holder's typepath (used to make wire colors common to all holders). + var/proper_name = "Unknown" // The display name for the wire set shown in station blueprints. Not used if randomize is true or it's an item NT wouldn't know about (Explosives/Nuke) + + var/list/wires = list() // List of wires. + var/list/cut_wires = list() // List of wires that have been cut. + var/list/colors = list() // Dictionary of colors to wire. + var/list/assemblies = list() // List of attached assemblies. + var/randomize = 0 // If every instance of these wires should be random. + // Prevents wires from showing up in station blueprints + +/datum/wires/New(atom/holder) + ..() + if(!istype(holder, holder_type)) + CRASH("Wire holder is not of the expected type!") + return + + src.holder = holder + if(randomize) + randomize() + else + if(!wire_color_directory[holder_type]) + randomize() + wire_color_directory[holder_type] = colors + wire_name_directory[holder_type] = proper_name + else + colors = wire_color_directory[holder_type] + +/datum/wires/Destroy() + holder = null + assemblies = list() + return ..() + +/datum/wires/proc/add_duds(duds) + while(duds) + var/dud = WIRE_DUD_PREFIX + "[--duds]" + if(dud in wires) + continue + wires += dud + +/datum/wires/proc/randomize() + var/list/possible_colors = wire_colors.Copy() + + for(var/wire in shuffle(wires)) + colors[pick_n_take(possible_colors)] = wire + +/datum/wires/proc/shuffle_wires() + colors.Cut() + randomize() + +/datum/wires/proc/repair() + cut_wires.Cut() + +/datum/wires/proc/get_wire(color) + return colors[color] + +/datum/wires/proc/get_attached(color) + if(assemblies[color]) + return assemblies[color] + return null + +/datum/wires/proc/is_attached(color) + if(assemblies[color]) + return TRUE + +/datum/wires/proc/is_cut(wire) + return (wire in cut_wires) + +/datum/wires/proc/is_color_cut(color) + return is_cut(get_wire(color)) + +/datum/wires/proc/is_all_cut() + if(cut_wires.len == wires.len) + return TRUE + +/datum/wires/proc/cut(wire) + if(is_cut(wire)) + cut_wires -= wire + on_cut(wire, mend = TRUE) + else + cut_wires += wire + on_cut(wire, mend = FALSE) + +/datum/wires/proc/cut_color(color) + cut(get_wire(color)) + +/datum/wires/proc/cut_random() + cut(wires[rand(1, wires.len)]) + +/datum/wires/proc/cut_all() + for(var/wire in wires) + cut(wire) + +/datum/wires/proc/pulse(wire) + if(is_cut(wire)) + return + on_pulse(wire) + +/datum/wires/proc/pulse_color(color) + pulse(get_wire(color)) + +/datum/wires/proc/pulse_assembly(obj/item/device/assembly/S) + for(var/color in assemblies) + if(S == assemblies[color]) + pulse_color(color) + return TRUE + +/datum/wires/proc/attach_assembly(color, obj/item/device/assembly/S) + if(S && istype(S) && S.attachable && !is_attached(color)) + assemblies[color] = S + S.loc = holder + S.connected = src + return S + +/datum/wires/proc/detach_assembly(color) + var/obj/item/device/assembly/S = get_attached(color) + if(S && istype(S)) + assemblies -= color + S.connected = null + S.loc = holder.loc + return S + +// Overridable Procs +/datum/wires/proc/interactable(mob/user) + return TRUE + +/datum/wires/proc/get_status() + return list() + +/datum/wires/proc/on_cut(wire, mend = FALSE) + return + +/datum/wires/proc/on_pulse(wire) + return +// End Overridable Procs + +/datum/wires/proc/interact(mob/user) + if(!interactable(user)) + return + ui_interact(user) + for(var/A in assemblies) + var/obj/item/I = assemblies[A] + if(istype(I) && I.on_found(user)) + return + +/datum/wires/ui_host() + return holder + +/datum/wires/ui_status(mob/user) + if(interactable(user)) + return ..() + return UI_CLOSE + +/datum/wires/ui_interact(mob/user, ui_key = "wires", datum/tgui/ui = null, force_open = 0, \ + datum/tgui/master_ui = null, datum/ui_state/state = physical_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if (!ui) + ui = new(user, src, ui_key, "wires", "[holder.name] wires", 350, 150 + wires.len * 30, master_ui, state) + ui.open() + +/datum/wires/ui_data(mob/user) + var/list/data = list() + var/list/payload = list() + for(var/color in colors) + payload.Add(list(list( + "color" = color, + "wire" = (IsAdminGhost(user) ? get_wire(color) : null), + "cut" = is_color_cut(color), + "attached" = is_attached(color) + ))) + data["wires"] = payload + data["status"] = get_status() + return data + +/datum/wires/ui_act(action, params) + if(..() || !interactable(usr)) + return + var/target_wire = params["wire"] + var/mob/living/L = usr + var/obj/item/I = L.get_active_held_item() + switch(action) + if("cut") + if(istype(I, /obj/item/weapon/wirecutters) || IsAdminGhost(usr)) + playsound(holder, 'sound/items/Wirecutter.ogg', 20, 1) + cut_color(target_wire) + . = TRUE + else + L << "You need wirecutters!" + if("pulse") + if(istype(I, /obj/item/device/multitool) || IsAdminGhost(usr)) + playsound(holder, 'sound/weapons/empty.ogg', 20, 1) + pulse_color(target_wire) + . = TRUE + else + L << "You need a multitool!" + if("attach") + if(is_attached(target_wire)) + var/obj/item/O = detach_assembly(target_wire) + if(O) + L.put_in_hands(O) + . = TRUE + else + if(istype(I, /obj/item/device/assembly)) + var/obj/item/device/assembly/A = I + if(A.attachable) + if(!L.drop_item()) + return + attach_assembly(target_wire, A) + . = TRUE + else + L << "You need an attachable assembly!" diff --git a/code/game/alternate_appearance.dm b/code/game/alternate_appearance.dm new file mode 100644 index 0000000..8722789 --- /dev/null +++ b/code/game/alternate_appearance.dm @@ -0,0 +1,164 @@ +/* + Alternate Appearances! By RemieRichards + A framework for replacing an atom (and it's overlays) with an override = 1 image, that's less shit! + Example uses: + * hallucinating all mobs looking like skeletons + * people wearing cardborg suits appearing as Standard Cyborgs to the other Silicons + * !!use your imagination!! + +*/ + + +//This datum is built on-the-fly by some of the procs below +//no need to instantiate it +/datum/alternate_appearance + var/key = "" + var/image/img + var/list/viewers = list() + var/atom/owner = null + + +/* + Displays the alternate_appearance + displayTo - a list of MOBS to show this appearance to +*/ +/datum/alternate_appearance/proc/display_to(list/displayTo) + if(!displayTo || !displayTo.len) + return + for(var/m in displayTo) + var/mob/M = m + if(!M.viewing_alternate_appearances) + M.viewing_alternate_appearances = list() + viewers |= M + var/list/AAsiblings = M.viewing_alternate_appearances[key] + if(!AAsiblings) + AAsiblings = list() + M.viewing_alternate_appearances[key] = AAsiblings + AAsiblings |= src + if(M.client) + M.client.images |= img + +/* + Hides the alternate_appearance + hideFrom - optional list of MOBS to hide it from the list's mobs specifically +*/ +/datum/alternate_appearance/proc/hide(list/hideFrom) + var/list/hiding = viewers + if(hideFrom) + hiding = hideFrom + + for(var/m in hiding) + var/mob/M = m + if(M.client) + M.client.images -= img + if(M.viewing_alternate_appearances && M.viewing_alternate_appearances.len) + var/list/AAsiblings = M.viewing_alternate_appearances[key] + if(AAsiblings) + AAsiblings -= src + if(!AAsiblings.len) + M.viewing_alternate_appearances -= key + if(!M.viewing_alternate_appearances.len) + M.viewing_alternate_appearances = null + viewers -= M + + +/* + Removes the alternate_appearance from its owner's alternate_appearances list, hiding it also +*/ +/datum/alternate_appearance/proc/remove() + hide() + if(owner && owner.alternate_appearances) + owner.alternate_appearances -= key + if(!owner.alternate_appearances.len) + owner.alternate_appearances = null + + +/datum/alternate_appearance/Destroy() + remove() + return ..() + + + +/atom + var/list/alternate_appearances //the alternate appearances we own + var/list/viewing_alternate_appearances //this is an assoc list of lists, the keys being the AA's key + //inside these lists are the AAs themselves, this is to allow the atom to see multiple of the same type of AA + //eg: two (or more) people disguised as cardborgs, or two (or more) people disguised as plants + +/* + Builds an alternate_appearance datum for the supplied args, optionally displaying it straight away + key - the key to the assoc list of key = /datum/alternate_appearances + img - the image file to be the "alternate appearance" + WORKS BEST IF: + * it has override = 1 set + * the image's loc is the atom that will use the appearance (otherwise... it's not exactly an alt appearance of this atom is it?) + displayTo - optional list of MOBS to display to immediately + + Example: + var/image/I = image(icon = 'disguise.dmi', icon_state = "disguise", loc = src) + I.override = 1 + add_alt_appearance("super_secret_disguise", I, players) + +*/ +/atom/proc/add_alt_appearance(key, img, list/displayTo = list()) + if(!key || !img) + return + if(!alternate_appearances) + alternate_appearances = list() + + var/datum/alternate_appearance/AA = new() + AA.img = img + AA.key = key + AA.owner = src + + alternate_appearances[key] = AA + if(displayTo && displayTo.len) + display_alt_appearance(key, displayTo) + + +////////////// +// WRAPPERS // +////////////// + +/* + Removes an alternate_appearance from src's alternate_appearances list + Wrapper for: alternate_appearance/remove() + key - the key to the assoc list of key = /datum/alternate_appearance +*/ +/atom/proc/remove_alt_appearance(key) + if(alternate_appearances) + if(alternate_appearances[key]) + var/datum/alternate_appearance/AA = alternate_appearances[key] + qdel(AA) + + +/* + Displays an alternate appearance from src's alternate_appearances list + Wrapper for: alternate_appearance/display_to() + key - the key to the assoc list of key = /datum/alternate_appearance + displayTo - a list of MOBS to show this appearance to +*/ +/atom/proc/display_alt_appearance(key, list/displayTo) + if(!alternate_appearances || !key) + return + var/datum/alternate_appearance/AA = alternate_appearances[key] + if(!AA || !AA.img) + return + AA.display_to(displayTo) + + +/* + Hides an alternate appearance from src's alternate_appearances list + Wrapper for: alternate_appearance/hide() + key - the key to the assoc list of key = /datum/alternate_appearance + hideFrom - optional list of MOBS to hide it from the list's mobs specifically +*/ +/atom/proc/hide_alt_appearance(key, list/hideFrom) + if(!alternate_appearances || !key) + return + var/datum/alternate_appearance/AA = alternate_appearances[key] + if(!AA) + return + AA.hide(hideFrom) + + diff --git a/code/game/area/Space_Station_13_areas.dm b/code/game/area/Space_Station_13_areas.dm new file mode 100644 index 0000000..33dcc02 --- /dev/null +++ b/code/game/area/Space_Station_13_areas.dm @@ -0,0 +1,941 @@ +/* + +### This file contains a list of all the areas in your station. Format is as follows: + +/area/CATEGORY/OR/DESCRIPTOR/NAME (you can make as many subdivisions as you want) + name = "NICE NAME" (not required but makes things really nice) + icon = "ICON FILENAME" (defaults to areas.dmi) + icon_state = "NAME OF ICON" (defaults to "unknown" (blank)) + requires_power = 0 (defaults to 1) + music = "music/music.ogg" (defaults to "music/music.ogg") + +NOTE: there are two lists of areas in the end of this file: centcom and station itself. Please maintain these lists valid. --rastaf0 + +*/ + + +/*-----------------------------------------------------------------------------*/ + +/area/engine/ + +/area/ai_monitored //stub defined ai_monitored.dm + +/area/ai_monitored/turret_protected/ + +/area/arrival + requires_power = 0 + +/area/arrival/start + name = "Arrival Area" + icon_state = "start" + +/area/admin + name = "Admin room" + icon_state = "start" + +/area/space + icon_state = "space" + requires_power = 1 + always_unpowered = 1 + lighting_use_dynamic = DYNAMIC_LIGHTING_DISABLED + power_light = 0 + power_equip = 0 + power_environ = 0 + valid_territory = 0 + outdoors = 1 + ambientsounds = list('sound/ambience/ambispace.ogg','sound/ambience/title2.ogg',) + blob_allowed = 0 //Eating up space doesn't count for victory as a blob. + +/area/space/nearstation + icon_state = "space_near" + lighting_use_dynamic = DYNAMIC_LIGHTING_IFSTARLIGHT + +/area/start + name = "start area" + icon_state = "start" + requires_power = 0 + luminosity = 1 + lighting_use_dynamic = DYNAMIC_LIGHTING_DISABLED + has_gravity = 1 + + +//EXTRA + +/area/asteroid + name = "Asteroid" + icon_state = "asteroid" + requires_power = 0 + has_gravity = 1 + blob_allowed = 0 //Nope, no winning on the asteroid as a blob. Gotta eat the station. + valid_territory = 0 + +/area/asteroid/cave + name = "Asteroid - Underground" + icon_state = "cave" + requires_power = 0 + outdoors = 1 + +/area/asteroid/artifactroom + name = "Asteroid - Artifact" + icon_state = "cave" + +/area/asteroid/artifactroom/New() + ..() + SetDynamicLighting() + +/area/planet/clown + name = "Clown Planet" + icon_state = "honk" + requires_power = 0 + +/area/telesciareas + name = "Cosmic Anomaly" + icon_state = "telesci" + requires_power = 0 + + +//STATION13 + +/area/atmos + name = "Atmospherics" + icon_state = "atmos" + flags = NONE + +//Maintenance +/area/maintenance + ambientsounds = list('sound/ambience/ambimaint1.ogg', + 'sound/ambience/ambimaint2.ogg', + 'sound/ambience/ambimaint3.ogg', + 'sound/ambience/ambimaint4.ogg', + 'sound/ambience/ambimaint5.ogg', + 'sound/voice/lowHiss2.ogg', //Xeno Breathing Hisses, Hahahaha I'm not even sorry. + 'sound/voice/lowHiss3.ogg', + 'sound/voice/lowHiss4.ogg') + valid_territory = 0 + +/area/maintenance/atmos_control + name = "Atmospherics Maintenance" + icon_state = "fpmaint" + +/area/maintenance/fpmaint + name = "EVA Maintenance" + icon_state = "fpmaint" + +/area/maintenance/fpmaint2 + name = "Arrivals North Maintenance" + icon_state = "fpmaint" + +/area/maintenance/fsmaint + name = "Dormitory Maintenance" + icon_state = "fsmaint" + +/area/maintenance/fsmaint2 + name = "Bar Maintenance" + icon_state = "fsmaint" + +/area/maintenance/asmaint + name = "Medbay Maintenance" + icon_state = "asmaint" + +/area/maintenance/asmaint2 + name = "Science Maintenance" + icon_state = "asmaint" + +/area/maintenance/apmaint + name = "Cargo Maintenance" + icon_state = "apmaint" + +/area/maintenance/maintcentral + name = "Bridge Maintenance" + icon_state = "maintcentral" + +/area/maintenance/fore + name = "Fore Maintenance" + icon_state = "fmaint" + +/area/maintenance/starboard + name = "Starboard Maintenance" + icon_state = "smaint" + +/area/maintenance/port + name = "Locker Room Maintenance" + icon_state = "pmaint" + +/area/maintenance/aft + name = "Engineering Maintenance" + icon_state = "amaint" + +/area/maintenance/storage + name = "Atmospherics" + icon_state = "green" + +/area/maintenance/incinerator + name = "Incinerator" + icon_state = "disposal" + +/area/maintenance/disposal + name = "Waste Disposal" + icon_state = "disposal" + +/area/maintenance/electrical + name = "Electrical Maintenance" + icon_state = "yellow" + +//Hallway + +/area/hallway/primary/fore + name = "Fore Primary Hallway" + icon_state = "hallF" + +/area/hallway/primary/starboard + name = "Starboard Primary Hallway" + icon_state = "hallS" + +/area/hallway/primary/aft + name = "Aft Primary Hallway" + icon_state = "hallA" + +/area/hallway/primary/port + name = "Port Primary Hallway" + icon_state = "hallP" + +/area/hallway/primary/central + name = "Central Primary Hallway" + icon_state = "hallC" + +/area/hallway/secondary/exit + name = "Escape Shuttle Hallway" + icon_state = "escape" + +/area/hallway/secondary/construction + name = "Construction Area" + icon_state = "construction" + +/area/hallway/secondary/entry + name = "Arrival Shuttle Hallway" + icon_state = "entry" + +//Command + +/area/bridge + name = "Bridge" + icon_state = "bridge" + music = "signal" + +/area/bridge/meeting_room + name = "Heads of Staff Meeting Room" + icon_state = "meeting" + music = null + +/area/crew_quarters/captain + name = "Captain's Office" + icon_state = "captain" + +/area/crew_quarters/courtroom + name = "Courtroom" + icon_state = "courtroom" + +/area/crew_quarters/heads + name = "Head of Personnel's Office" + icon_state = "head_quarters" + +/area/crew_quarters/hor + name = "Research Director's Office" + icon_state = "head_quarters" + +/area/crew_quarters/chief + name = "Chief Engineer's Office" + icon_state = "head_quarters" + +/area/mint + name = "Mint" + icon_state = "green" + +/area/comms + name = "Communications Relay" + icon_state = "tcomsatcham" + +/area/server + name = "Messaging Server Room" + icon_state = "server" + +//Crew + +/area/crew_quarters + name = "Dormitories" + icon_state = "Sleep" + safe = 1 + +/area/crew_quarters/toilet + name = "Dormitory Toilets" + icon_state = "toilet" + +/area/crew_quarters/sleep + name = "Dormitories" + icon_state = "Sleep" + +/area/crew_quarters/sleep_male + name = "Male Dorm" + icon_state = "Sleep" + +/area/crew_quarters/sleep_male/toilet_male + name = "Male Toilets" + icon_state = "toilet" + +/area/crew_quarters/sleep_female + name = "Female Dorm" + icon_state = "Sleep" + +/area/crew_quarters/sleep_female/toilet_female + name = "Female Toilets" + icon_state = "toilet" + +/area/crew_quarters/locker + name = "Locker Room" + icon_state = "locker" + +/area/crew_quarters/locker/locker_toilet + name = "Locker Toilets" + icon_state = "toilet" + +/area/crew_quarters/fitness + name = "Fitness Room" + icon_state = "fitness" + +/area/crew_quarters/cafeteria + name = "Cafeteria" + icon_state = "cafeteria" + +/area/crew_quarters/kitchen + name = "Kitchen" + icon_state = "kitchen" + +/area/crew_quarters/bar + name = "Bar" + icon_state = "bar" + +/area/crew_quarters/theatre + name = "Theatre" + icon_state = "Theatre" + +/area/library + name = "Library" + icon_state = "library" + flags = NONE + +/area/chapel + icon_state = "chapel" + ambientsounds = list('sound/ambience/ambicha1.ogg','sound/ambience/ambicha2.ogg','sound/ambience/ambicha3.ogg','sound/ambience/ambicha4.ogg') + flags = NONE + +/area/chapel/main + name = "Chapel" + +/area/chapel/office + name = "Chapel Office" + icon_state = "chapeloffice" + +/area/lawoffice + name = "Law Office" + icon_state = "law" + +//Engineering + +/area/engine + ambientsounds = list('sound/ambience/ambisin1.ogg','sound/ambience/ambisin2.ogg','sound/ambience/ambisin3.ogg','sound/ambience/ambisin4.ogg') + +/area/engine/engine_smes + name = "Engineering SMES" + icon_state = "engine_smes" + +/area/engine/engineering + name = "Engineering" + icon_state = "engine" + +/area/engine/break_room + name = "Engineering Foyer" + icon_state = "engine" + +/area/engine/chiefs_office + name = "Chief Engineer's office" + icon_state = "engine_control" + +/area/engine/secure_construction + name = "Secure Construction Area" + icon_state = "engine" + +/area/engine/gravity_generator + name = "Gravity Generator Room" + icon_state = "blue" + +//Solars + +/area/solar + requires_power = 0 + luminosity = 1 + lighting_use_dynamic = DYNAMIC_LIGHTING_IFSTARLIGHT + valid_territory = 0 + blob_allowed = FALSE + flags = NONE + +/area/solar/auxport + name = "Fore Port Solar Array" + icon_state = "panelsA" + +/area/solar/auxstarboard + name = "Fore Starboard Solar Array" + icon_state = "panelsA" + +/area/solar/fore + name = "Fore Solar Array" + icon_state = "yellow" + +/area/solar/aft + name = "Aft Solar Array" + icon_state = "aft" + +/area/solar/starboard + name = "Aft Starboard Solar Array" + icon_state = "panelsS" + +/area/solar/port + name = "Aft Port Solar Array" + icon_state = "panelsP" + +/area/maintenance/auxsolarport + name = "Fore Port Solar Maintenance" + icon_state = "SolarcontrolA" + +/area/maintenance/starboardsolar + name = "Aft Starboard Solar Maintenance" + icon_state = "SolarcontrolS" + +/area/maintenance/portsolar + name = "Aft Port Solar Maintenance" + icon_state = "SolarcontrolP" + +/area/maintenance/auxsolarstarboard + name = "Fore Starboard Solar Maintenance" + icon_state = "SolarcontrolA" + + +/area/assembly/chargebay + name = "Mech Bay" + icon_state = "mechbay" + +/area/assembly/showroom + name = "Robotics Showroom" + icon_state = "showroom" + +/area/assembly/robotics + name = "Robotics Lab" + icon_state = "ass_line" + +/area/assembly/assembly_line //Derelict Assembly Line + name = "Assembly Line" + icon_state = "ass_line" + power_equip = 0 + power_light = 0 + power_environ = 0 + +//Teleporter + +/area/teleporter + name = "Teleporter" + icon_state = "teleporter" + music = "signal" + +/area/gateway + name = "Gateway" + icon_state = "teleporter" + music = "signal" + +//MedBay + +/area/medical/medbay + name = "Medbay" + icon_state = "medbay" + music = 'sound/ambience/signal.ogg' + +//Medbay is a large area, these additional areas help level out APC load. +/area/medical/medbay2 + name = "Medbay" + icon_state = "medbay2" + music = 'sound/ambience/signal.ogg' + +/area/medical/medbay3 + name = "Medbay" + icon_state = "medbay3" + music = 'sound/ambience/signal.ogg' + +/area/medical/patients_rooms + name = "Patients' Rooms" + icon_state = "patients" + +/area/medical/cmo + name = "Chief Medical Officer's office" + icon_state = "CMO" + +/area/medical/robotics + name = "Robotics" + icon_state = "medresearch" + +/area/medical/research + name = "Medical Research" + icon_state = "medresearch" + +/area/medical/virology + name = "Virology" + icon_state = "virology" + flags = NONE + +/area/medical/morgue + name = "Morgue" + icon_state = "morgue" + ambientsounds = list('sound/ambience/ambimo1.ogg','sound/ambience/ambimo2.ogg') + +/area/medical/chemistry + name = "Chemistry" + icon_state = "chem" + +/area/medical/surgery + name = "Surgery" + icon_state = "surgery" + +/area/medical/cryo + name = "Cryogenics" + icon_state = "cryo" + +/area/medical/exam_room + name = "Exam Room" + icon_state = "exam_room" + +/area/medical/genetics + name = "Genetics Lab" + icon_state = "genetics" + +/area/medical/genetics_cloning + name = "Cloning Lab" + icon_state = "cloning" + +/area/medical/sleeper + name = "Medbay Treatment Center" + icon_state = "exam_room" + +//Security + +/area/security/main + name = "Security Office" + icon_state = "security" + +/area/security/brig + name = "Brig" + icon_state = "brig" + +/area/security/prison + name = "Prison Wing" + icon_state = "sec_prison" + +/area/security/processing + name = "Labor Shuttle Dock" + icon_state = "sec_prison" + +/area/security/warden + name = "Brig Control" + icon_state = "Warden" + +/area/security/armory + name = "Armory" + icon_state = "armory" + +/area/security/hos + name = "Head of Security's Office" + icon_state = "sec_hos" + +/area/security/detectives_office + name = "Detective's Office" + icon_state = "detective" + ambientsounds = list('sound/ambience/ambidet1.ogg','sound/ambience/ambidet2.ogg') + +/area/security/range + name = "Firing Range" + icon_state = "firingrange" + +/area/security/transfer + name = "Transfer Centre" + icon_state = "armory" + + +/area/security/nuke_storage + name = "Vault" + icon_state = "nuke_storage" + +/area/ai_monitored/nuke_storage + name = "Vault" + icon_state = "nuke_storage" + +/area/security/checkpoint + name = "Security Checkpoint" + icon_state = "checkpoint1" + +/area/security/checkpoint2 + name = "Security Checkpoint" + icon_state = "security" + +/area/security/checkpoint/supply + name = "Security Post - Cargo Bay" + icon_state = "checkpoint1" + +/area/security/checkpoint/engineering + name = "Security Post - Engineering" + icon_state = "checkpoint1" + +/area/security/checkpoint/medical + name = "Security Post - Medbay" + icon_state = "checkpoint1" + +/area/security/checkpoint/science + name = "Security Post - Science" + icon_state = "checkpoint1" + +/area/security/vacantoffice + name = "Vacant Office" + icon_state = "security" + +/area/security/vacantoffice2 + name = "Vacant Office B" + icon_state = "security" + +/area/quartermaster + name = "Quartermasters" + icon_state = "quart" + +///////////WORK IN PROGRESS////////// + +/area/quartermaster/sorting + name = "Delivery Office" + icon_state = "quartstorage" + +////////////WORK IN PROGRESS////////// + +/area/quartermaster/office + name = "Cargo Office" + icon_state = "quartoffice" + +/area/quartermaster/storage + name = "Cargo Bay" + icon_state = "quartstorage" + +/area/quartermaster/qm + name = "Quartermaster's Office" + icon_state = "quart" + +/area/quartermaster/miningdock + name = "Mining Dock" + icon_state = "mining" + +/area/quartermaster/miningstorage + name = "Mining Storage" + icon_state = "green" + +/area/quartermaster/mechbay + name = "Mech Bay" + icon_state = "yellow" + +/area/janitor/ + name = "Custodial Closet" + icon_state = "janitor" + flags = NONE + +/area/hydroponics + name = "Hydroponics" + icon_state = "hydro" + +//Toxins + +/area/toxins/lab + name = "Research and Development" + icon_state = "toxlab" + +/area/toxins/xenobiology + name = "Xenobiology Lab" + icon_state = "toxlab" + +/area/toxins/storage + name = "Toxins Storage" + icon_state = "toxstorage" + +/area/toxins/mineral_storeroom + name = "Mineral Storeroom" + icon_state = "toxmisc" + +/area/toxins/test_area + valid_territory = 0 + name = "Toxins Test Area" + icon_state = "toxtest" + +/area/toxins/mixing + name = "Toxins Mixing Room" + icon_state = "toxmix" + +/area/toxins/misc_lab + name = "Testing Lab" + icon_state = "toxmisc" + +/area/toxins/server + name = "Server Room" + icon_state = "server" + +/area/toxins/explab + name = "Experimentation Lab" + icon_state = "toxmisc" + +//Storage + +/area/storage/tools + name = "Auxiliary Tool Storage" + icon_state = "storage" + +/area/storage/primary + name = "Primary Tool Storage" + icon_state = "primarystorage" + +/area/storage/autolathe + name = "Autolathe Storage" + icon_state = "storage" + +/area/storage/art + name = "Art Supply Storage" + icon_state = "storage" + +/area/storage/auxillary + name = "Auxillary Storage" + icon_state = "auxstorage" + +/area/storage/eva + name = "EVA Storage" + icon_state = "eva" + +/area/storage/secure + name = "Secure Storage" + icon_state = "storage" + +/area/storage/emergency + name = "Starboard Emergency Storage" + icon_state = "emergencystorage" + +/area/storage/emergency2 + name = "Port Emergency Storage" + icon_state = "emergencystorage" + +/area/storage/tech + name = "Technical Storage" + icon_state = "auxstorage" + +/area/storage/testroom + requires_power = 0 + name = "Test Room" + icon_state = "storage" + + +//Construction + +/area/construction + name = "Construction Area" + icon_state = "yellow" + +/area/mining_construction + name = "Auxillary Base Construction" + icon_state = "yellow" + +/area/construction/supplyshuttle + name = "Supply Shuttle" + icon_state = "yellow" + +/area/construction/quarters + name = "Engineers' Quarters" + icon_state = "yellow" + +/area/construction/qmaint + name = "Maintenance" + icon_state = "yellow" + +/area/construction/hallway + name = "Hallway" + icon_state = "yellow" + +/area/construction/solars + name = "Solar Panels" + icon_state = "yellow" + +/area/construction/solarscontrol + name = "Solar Panel Control" + icon_state = "yellow" + +/area/construction/Storage + name = "Construction Site Storage" + icon_state = "yellow" + +//AI +/area/ai_monitored/security/armory + name = "Armory" + icon_state = "armory" + +/area/ai_monitored/storage/eva + name = "EVA Storage" + icon_state = "eva" + +/area/ai_monitored/storage/secure + name = "AI Satellite Storage" + icon_state = "storage" + +/area/ai_monitored/storage/emergency + name = "Emergency Storage" + icon_state = "storage" + +/area/ai_monitored/storage/satellite + name = "AI Satellite Maint" + icon_state = "storage" + + +/area/ai_monitored/turret_protected/ + ambientsounds = list('sound/ambience/ambimalf.ogg') + +/area/ai_monitored/turret_protected/ai_upload + name = "AI Upload Chamber" + icon_state = "ai_upload" + +/area/ai_monitored/turret_protected/ai_upload_foyer + name = "AI Upload Access" + icon_state = "ai_foyer" + +/area/ai_monitored/turret_protected/ai + name = "AI Chamber" + icon_state = "ai_chamber" + +/area/ai_monitored/turret_protected/aisat + name = "AI Satellite" + icon_state = "ai" + +/area/aisat + name = "AI Satellite Exterior" + icon_state = "yellow" + +/area/ai_monitored/turret_protected/aisat_interior + name = "AI Satellite Antechamber" + icon_state = "ai" + +/area/ai_monitored/turret_protected/AIsatextFP + name = "AI Sat Ext" + icon_state = "storage" + luminosity = 1 + lighting_use_dynamic = DYNAMIC_LIGHTING_IFSTARLIGHT + +/area/ai_monitored/turret_protected/AIsatextFS + name = "AI Sat Ext" + icon_state = "storage" + luminosity = 1 + lighting_use_dynamic = DYNAMIC_LIGHTING_IFSTARLIGHT + +/area/ai_monitored/turret_protected/AIsatextAS + name = "AI Sat Ext" + icon_state = "storage" + luminosity = 1 + lighting_use_dynamic = DYNAMIC_LIGHTING_IFSTARLIGHT + +/area/ai_monitored/turret_protected/AIsatextAP + name = "AI Sat Ext" + icon_state = "storage" + luminosity = 1 + lighting_use_dynamic = DYNAMIC_LIGHTING_IFSTARLIGHT + +/area/ai_monitored/turret_protected/NewAIMain + name = "AI Main New" + icon_state = "storage" + + + +// Telecommunications Satellite + +/area/tcommsat + ambientsounds = list('sound/ambience/ambisin2.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/ambigen10.ogg') + +/area/tcommsat/entrance + name = "Telecoms Teleporter" + icon_state = "tcomsatentrance" + +/area/tcommsat/chamber + name = "Abandoned Satellite" + icon_state = "tcomsatcham" + +/area/ai_monitored/turret_protected/tcomsat + name = "Telecoms Satellite" + icon_state = "tcomsatlob" + ambientsounds = list('sound/ambience/ambisin2.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/ambigen10.ogg') + +/area/ai_monitored/turret_protected/tcomfoyer + name = "Telecoms Foyer" + icon_state = "tcomsatentrance" + ambientsounds = list('sound/ambience/ambisin2.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/ambigen10.ogg') + +/area/ai_monitored/turret_protected/tcomwest + name = "Telecommunications Satellite West Wing" + icon_state = "tcomsatwest" + ambientsounds = list('sound/ambience/ambisin2.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/ambigen10.ogg') + +/area/ai_monitored/turret_protected/tcomeast + name = "Telecommunications Satellite East Wing" + icon_state = "tcomsateast" + ambientsounds = list('sound/ambience/ambisin2.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/ambigen10.ogg') + +/area/tcommsat/computer + name = "Telecoms Control Room" + icon_state = "tcomsatcomp" + +/area/tcommsat/server + name = "Telecoms Server Room" + icon_state = "tcomsatcham" + +/area/tcommsat/lounge + name = "Telecommunications Satellite Lounge" + icon_state = "tcomsatlounge" + + + +///////////////////////////////////////////////////////////////////// +/* + Lists of areas to be used with is_type_in_list. + Used in gamemodes code at the moment. --rastaf0 +*/ + +//SPACE STATION 13 +var/list/the_station_areas = list ( + /area/atmos, + /area/maintenance, + /area/hallway, + /area/bridge, + /area/crew_quarters, + /area/holodeck, +// /area/mint, //not present on map + /area/library, + /area/chapel, + /area/lawoffice, + /area/engine, + /area/solar, + /area/assembly, + /area/teleporter, + /area/medical, + /area/security, + /area/quartermaster, + /area/janitor, + /area/hydroponics, + /area/toxins, + /area/storage, + /area/construction, + /area/ai_monitored/storage/eva, //do not try to simplify to "/area/ai_monitored" --rastaf0 +// /area/ai_monitored/storage/secure, //not present on map +// /area/ai_monitored/storage/emergency, //not present on map + /area/ai_monitored/turret_protected/ai_upload, //do not try to simplify to "/area/ai_monitored/turret_protected" --rastaf0 + /area/ai_monitored/turret_protected/ai_upload_foyer, + /area/ai_monitored/turret_protected/ai, +) diff --git a/code/game/area/ai_monitored.dm b/code/game/area/ai_monitored.dm new file mode 100644 index 0000000..5f7bbc3 --- /dev/null +++ b/code/game/area/ai_monitored.dm @@ -0,0 +1,29 @@ +/area/ai_monitored + name = "AI Monitored Area" + var/list/obj/machinery/camera/motioncameras = list() + var/list/motionTargets = list() + +/area/ai_monitored/initialize() + ..() + for (var/obj/machinery/camera/M in src) + if(M.isMotion()) + motioncameras.Add(M) + M.area_motion = src + +//Only need to use one camera + +/area/ai_monitored/Entered(atom/movable/O) + ..() + if (ismob(O) && motioncameras.len) + for(var/X in motioncameras) + var/obj/machinery/camera/cam = X + cam.newTarget(O) + return + +/area/ai_monitored/Exited(atom/movable/O) + ..() + if (ismob(O) && motioncameras.len) + for(var/X in motioncameras) + var/obj/machinery/camera/cam = X + cam.lostTarget(O) + return \ No newline at end of file diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm new file mode 100644 index 0000000..ea89023 --- /dev/null +++ b/code/game/area/areas.dm @@ -0,0 +1,442 @@ +// Areas.dm + + +/area + level = null + name = "Space" + icon = 'icons/turf/areas.dmi' + icon_state = "unknown" + layer = AREA_LAYER + mouse_opacity = 0 + invisibility = INVISIBILITY_LIGHTING + + var/map_name // Set in New(); preserves the name set by the map maker, even if renamed by the Blueprints. + + var/valid_territory = 1 // If it's a valid territory for gangs to claim + var/blob_allowed = 1 // Does it count for blobs score? By default, all areas count. + + var/eject = null + + var/fire = null + var/atmos = 1 + var/atmosalm = 0 + var/poweralm = 1 + var/party = null + var/lightswitch = 1 + + var/requires_power = 1 + var/always_unpowered = 0 // This gets overriden to 1 for space in area/New(). + + var/outdoors = 0 //For space, the asteroid, lavaland, etc. Used with blueprints to determine if we are adding a new area (vs editing a station room) + + var/power_equip = 1 + var/power_light = 1 + var/power_environ = 1 + var/music = null + var/used_equip = 0 + var/used_light = 0 + var/used_environ = 0 + var/static_equip + var/static_light = 0 + var/static_environ + + var/has_gravity = 0 + var/noteleport = 0 //Are you forbidden from teleporting to the area? (centcomm, mobs, wizard, hand teleporter) + var/safe = 0 //Is the area teleport-safe: no space / radiation / aggresive mobs / other dangers + + var/no_air = null + var/area/master // master area used for power calcluations + var/list/related // the other areas of the same type as this + + var/global/global_uid = 0 + var/uid + var/list/ambientsounds = list('sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg',\ + 'sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg',\ + 'sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg',\ + 'sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg',\ + 'sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg',\ + 'sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg') + flags = CAN_BE_DIRTY + + +/*Adding a wizard area teleport list because motherfucking lag -- Urist*/ +/*I am far too lazy to make it a proper list of areas so I'll just make it run the usual telepot routine at the start of the game*/ +var/list/teleportlocs = list() + +/proc/process_teleport_locs() + for(var/V in sortedAreas) + var/area/AR = V + if(istype(AR, /area/shuttle) || AR.noteleport) + continue + if(teleportlocs[AR.name]) + continue + var/turf/picked = safepick(get_area_turfs(AR.type)) + if (picked && (picked.z == ZLEVEL_STATION)) + teleportlocs[AR.name] = AR + + sortTim(teleportlocs, /proc/cmp_text_dsc) + +// === + + +// Added to fix mech fabs 05/2013 ~Sayu +// This is necessary due to lighting subareas. If you were to go in assuming that things in +// the same logical /area have the parent /area object... well, you would be mistaken. If you +// want to find machines, mobs, etc, in the same logical area, you will need to check all the +// related areas. This returns a master contents list to assist in that. +/proc/area_contents(area/A) + if(!istype(A)) return null + var/list/contents = list() + for(var/area/LSA in A.related) + contents += LSA.contents + return contents + + + + +/area/New() + icon_state = "" + layer = AREA_LAYER + master = src + uid = ++global_uid + related = list(src) + map_name = name // Save the initial (the name set in the map) name of the area. + + if(requires_power) + luminosity = 0 + else + power_light = 1 + power_equip = 1 + power_environ = 1 + + if (lighting_use_dynamic != DYNAMIC_LIGHTING_IFSTARLIGHT) + lighting_use_dynamic = DYNAMIC_LIGHTING_DISABLED + + ..() + + power_change() // all machines set to current power level, also updates icon + + blend_mode = BLEND_MULTIPLY // Putting this in the constructor so that it stops the icons being screwed up in the map editor. + + + +/area/proc/poweralert(state, obj/source) + if (state != poweralm) + poweralm = state + if(istype(source)) //Only report power alarms on the z-level where the source is located. + var/list/cameras = list() + for (var/obj/machinery/camera/C in src) + cameras += C + for (var/mob/living/silicon/aiPlayer in player_list) + if (state == 1) + aiPlayer.cancelAlarm("Power", src, source) + else + aiPlayer.triggerAlarm("Power", src, cameras, source) + + for(var/obj/machinery/computer/station_alert/a in machines) + if(state == 1) + a.cancelAlarm("Power", src, source) + else + a.triggerAlarm("Power", src, cameras, source) + + for(var/mob/living/simple_animal/drone/D in mob_list) + if(state == 1) + D.cancelAlarm("Power", src, source) + else + D.triggerAlarm("Power", src, cameras, source) + for(var/datum/computer_file/program/alarm_monitor/p in alarmdisplay) + if(state == 1) + p.cancelAlarm("Power", src, source) + else + p.triggerAlarm("Power", src, cameras, source) + +/area/proc/atmosalert(danger_level, obj/source) + if(danger_level != atmosalm) + if (danger_level==2) + var/list/cameras = list() + for(var/area/RA in related) + for(var/obj/machinery/camera/C in RA) + cameras += C + + for(var/mob/living/silicon/aiPlayer in player_list) + aiPlayer.triggerAlarm("Atmosphere", src, cameras, source) + for(var/obj/machinery/computer/station_alert/a in machines) + a.triggerAlarm("Atmosphere", src, cameras, source) + for(var/mob/living/simple_animal/drone/D in mob_list) + D.triggerAlarm("Atmosphere", src, cameras, source) + for(var/datum/computer_file/program/alarm_monitor/p in alarmdisplay) + p.triggerAlarm("Atmosphere", src, cameras, source) + + else if (src.atmosalm == 2) + for(var/mob/living/silicon/aiPlayer in player_list) + aiPlayer.cancelAlarm("Atmosphere", src, source) + for(var/obj/machinery/computer/station_alert/a in machines) + a.cancelAlarm("Atmosphere", src, source) + for(var/mob/living/simple_animal/drone/D in mob_list) + D.cancelAlarm("Atmosphere", src, source) + for(var/datum/computer_file/program/alarm_monitor/p in alarmdisplay) + p.cancelAlarm("Atmosphere", src, source) + + src.atmosalm = danger_level + return 1 + return 0 + +/area/proc/firealert(obj/source) + if(always_unpowered == 1) //no fire alarms in space/asteroid + return + + var/list/cameras = list() + + for(var/area/RA in related) + if (!( RA.fire )) + RA.set_fire_alarm_effect() + for(var/obj/machinery/door/firedoor/D in RA) + if(!D.welded) + if(D.operating) + D.nextstate = CLOSED + else if(!D.density) + addtimer(D, "close", 0) + for(var/obj/machinery/firealarm/F in RA) + F.update_icon() + for (var/obj/machinery/camera/C in RA) + cameras += C + + for (var/obj/machinery/computer/station_alert/a in machines) + a.triggerAlarm("Fire", src, cameras, source) + for (var/mob/living/silicon/aiPlayer in player_list) + aiPlayer.triggerAlarm("Fire", src, cameras, source) + for (var/mob/living/simple_animal/drone/D in mob_list) + D.triggerAlarm("Fire", src, cameras, source) + for(var/datum/computer_file/program/alarm_monitor/p in alarmdisplay) + p.triggerAlarm("Fire", src, cameras, source) + +/area/proc/firereset(obj/source) + for(var/area/RA in related) + if (RA.fire) + RA.fire = 0 + RA.mouse_opacity = 0 + RA.updateicon() + for(var/obj/machinery/door/firedoor/D in RA) + if(!D.welded) + if(D.operating) + D.nextstate = OPEN + else if(D.density) + addtimer(D, "open", 0) + for(var/obj/machinery/firealarm/F in RA) + F.update_icon() + + for (var/mob/living/silicon/aiPlayer in player_list) + aiPlayer.cancelAlarm("Fire", src, source) + for (var/obj/machinery/computer/station_alert/a in machines) + a.cancelAlarm("Fire", src, source) + for (var/mob/living/simple_animal/drone/D in mob_list) + D.cancelAlarm("Fire", src, source) + for(var/datum/computer_file/program/alarm_monitor/p in alarmdisplay) + p.cancelAlarm("Fire", src, source) + +/area/proc/burglaralert(obj/trigger) + if(always_unpowered == 1) //no burglar alarms in space/asteroid + return + + var/list/cameras = list() + + for(var/area/RA in related) + //Trigger alarm effect + RA.set_fire_alarm_effect() + //Lockdown airlocks + for(var/obj/machinery/door/DOOR in RA) + spawn(0) + DOOR.close() + if(DOOR.density) + DOOR.lock() + for (var/obj/machinery/camera/C in RA) + cameras += C + + for (var/mob/living/silicon/SILICON in player_list) + if(SILICON.triggerAlarm("Burglar", src, cameras, trigger)) + //Cancel silicon alert after 1 minute + addtimer(SILICON, "cancelAlarm", 600, FALSE,"Burglar",src,trigger) + +/area/proc/set_fire_alarm_effect() + fire = 1 + updateicon() + mouse_opacity = 0 + +/area/proc/readyalert() + if(name == "Space") + return + if(!eject) + eject = 1 + updateicon() + +/area/proc/readyreset() + if(eject) + eject = 0 + updateicon() + +/area/proc/partyalert() + if(src.name == "Space") //no parties in space!!! + return + if (!( src.party )) + src.party = 1 + src.updateicon() + src.mouse_opacity = 0 + +/area/proc/partyreset() + if (src.party) + src.party = 0 + src.mouse_opacity = 0 + src.updateicon() + for(var/obj/machinery/door/firedoor/D in src) + if(!D.welded) + if(D.operating) + D.nextstate = OPEN + else if(D.density) + addtimer(D, "open", 0) + +/area/proc/updateicon() + if ((fire || eject || party) && (!requires_power||power_environ))//If it doesn't require power, can still activate this proc. + if(fire && !eject && !party) + icon_state = "blue" + else if(!fire && eject && !party) + icon_state = "red" + else if(party && !fire && !eject) + icon_state = "party" + else + icon_state = "blue-red" + invisibility = INVISIBILITY_LIGHTING + else + // new lighting behaviour with obj lights + icon_state = null + invisibility = INVISIBILITY_MAXIMUM + +/area/space/updateicon() + icon_state = null + invisibility = INVISIBILITY_MAXIMUM + +/* +#define EQUIP 1 +#define LIGHT 2 +#define ENVIRON 3 +*/ + +/area/proc/powered(chan) // return true if the area has power to given channel + + if(!master.requires_power) + return 1 + if(master.always_unpowered) + return 0 + switch(chan) + if(EQUIP) + return master.power_equip + if(LIGHT) + return master.power_light + if(ENVIRON) + return master.power_environ + + return 0 + +/area/space/powered(chan) //Nope.avi + return 0 + +// called when power status changes + +/area/proc/power_change() + for(var/area/RA in related) + for(var/obj/machinery/M in RA) // for each machine in the area + M.power_change() // reverify power status (to update icons etc.) + RA.updateicon() + +/area/proc/usage(chan) + var/used = 0 + switch(chan) + if(LIGHT) + used += master.used_light + if(EQUIP) + used += master.used_equip + if(ENVIRON) + used += master.used_environ + if(TOTAL) + used += master.used_light + master.used_equip + master.used_environ + if(STATIC_EQUIP) + used += master.static_equip + if(STATIC_LIGHT) + used += master.static_light + if(STATIC_ENVIRON) + used += master.static_environ + return used + +/area/proc/addStaticPower(value, powerchannel) + switch(powerchannel) + if(STATIC_EQUIP) + static_equip += value + if(STATIC_LIGHT) + static_light += value + if(STATIC_ENVIRON) + static_environ += value + +/area/proc/clear_usage() + + master.used_equip = 0 + master.used_light = 0 + master.used_environ = 0 + +/area/proc/use_power(amount, chan) + + switch(chan) + if(EQUIP) + master.used_equip += amount + if(LIGHT) + master.used_light += amount + if(ENVIRON) + master.used_environ += amount + + +/area/Entered(A) + if(!isliving(A)) + return + + var/mob/living/L = A + if(!L.ckey) + return + + // Ambience goes down here -- make sure to list each area seperately for ease of adding things in later, thanks! Note: areas adjacent to each other should have the same sounds to prevent cutoff when possible.- LastyScratch + if(L.client && !L.client.ambience_playing && L.client.prefs.toggles & SOUND_SHIP_AMBIENCE) + L.client.ambience_playing = 1 + L << sound('sound/ambience/shipambience.ogg', repeat = 1, wait = 0, volume = 35, channel = 2) + + if(!(L.client && (L.client.prefs.toggles & SOUND_AMBIENCE))) + return //General ambience check is below the ship ambience so one can play without the other + + if(prob(35)) + var/sound = pick(ambientsounds) + + if(!L.client.played) + L << sound(sound, repeat = 0, wait = 0, volume = 25, channel = 1) + L.client.played = 1 + spawn(600) //ewww - this is very very bad + if(L.&& L.client) + L.client.played = 0 + +/atom/proc/has_gravity(turf/T) + if(!T || !isturf(T)) + T = get_turf(src) + var/area/A = get_area(T) + if(isspaceturf(T)) // Turf never has gravity + return 0 + else if(A && A.has_gravity) // Areas which always has gravity + return 1 + else + // There's a gravity generator on our z level + if(T && gravity_generators["[T.z]"] && length(gravity_generators["[T.z]"])) + return 1 + return 0 + +/area/proc/setup(a_name) + name = a_name + power_equip = 0 + power_light = 0 + power_environ = 0 + always_unpowered = 0 + valid_territory = 0 + addSorted() diff --git a/code/game/area/areas/away_content.dm b/code/game/area/areas/away_content.dm new file mode 100644 index 0000000..6c80a47 --- /dev/null +++ b/code/game/area/areas/away_content.dm @@ -0,0 +1,457 @@ + +// Away Missions +/area/awaymission + name = "Strange Location" + icon_state = "away" + has_gravity = 1 + +/area/awaymission/example + name = "Strange Station" + icon_state = "away" + +/area/awaymission/desert + name = "Mars" + icon_state = "away" + +/area/awaymission/listeningpost + name = "Listening Post" + icon_state = "away" + requires_power = 0 + +/area/awaymission/beach + name = "Beach" + icon_state = "away" + luminosity = 1 + lighting_use_dynamic = DYNAMIC_LIGHTING_DISABLED + requires_power = 0 + has_gravity = 1 + ambientsounds = list('sound/ambience/shore.ogg', 'sound/ambience/seag1.ogg','sound/ambience/seag2.ogg','sound/ambience/seag2.ogg') + +/area/awaymission/errorroom + name = "Super Secret Room" + luminosity = 1 + lighting_use_dynamic = DYNAMIC_LIGHTING_DISABLED + has_gravity = 1 + + +//Research Base Areas//-- + +/area/awaymission/research + name = "Research Outpost" + icon_state = "away" + luminosity = 0 + lighting_use_dynamic = DYNAMIC_LIGHTING_ENABLED + +/area/awaymission/research/interior + name = "Research Inside" + requires_power = 1 + icon_state = "away2" + +/area/awaymission/research/interior/cryo + name = "Research Cryostasis Room" + icon_state = "medbay" + +/area/awaymission/research/interior/clonestorage + name = "Research Clone Storage" + icon_state = "cloning" + +/area/awaymission/research/interior/genetics + name = "Research Genetics Research" + icon_state = "genetics" + +/area/awaymission/research/interior/engineering + name = "Research Engineering" + icon_state = "engine" + +/area/awaymission/research/interior/security + name = "Research Security" + icon_state = "security" + +/area/awaymission/research/interior/secure + name = "Research Secure Vault" + +/area/awaymission/research/interior/maint + name = "Research Maintenance" + icon_state = "maintcentral" + +/area/awaymission/research/interior/dorm + name = "Research Dorms" + icon_state = "Sleep" + +/area/awaymission/research/interior/escapepods + name = "Research Escape Wing" + icon_state = "exit" + +/area/awaymission/research/interior/gateway + name = "Research Gateway" + icon_state = "start" + +/area/awaymission/research/interior/bathroom + name = "Research Bathrooms" + icon_state = "restrooms" + +/area/awaymission/research/interior/medbay + name = "Research Medbay" + icon_state = "medbay" + +/area/awaymission/research/exterior + name = "Research Exterior" + icon_state = "unknown" + + + +//Challenge Areas + +/area/awaymission/challenge/start + name = "Where Am I?" + icon_state = "away" + +/area/awaymission/challenge/main + name = "Danger Room" + icon_state = "away1" + requires_power = 0 + +/area/awaymission/challenge/end + name = "Administration" + icon_state = "away2" + requires_power = 0 + + +//centcomAway areas + +/area/awaymission/centcomAway + name = "XCC-P5831" + icon_state = "away" + requires_power = 0 + +/area/awaymission/centcomAway/general + name = "XCC-P5831" + music = "music/ambigen3.ogg" + +/area/awaymission/centcomAway/maint + name = "XCC-P5831 Maintenance" + icon_state = "away1" + music = "music/ambisin1.ogg" + +/area/awaymission/centcomAway/thunderdome + name = "XCC-P5831 Thunderdome" + icon_state = "away2" + music = "music/ambisin2.ogg" + +/area/awaymission/centcomAway/cafe + name = "XCC-P5831 Kitchen Arena" + icon_state = "away3" + music = "music/ambisin3.ogg" + +/area/awaymission/centcomAway/courtroom + name = "XCC-P5831 Courtroom" + icon_state = "away4" + music = "music/ambisin4.ogg" + +/area/awaymission/centcomAway/hangar + name = "XCC-P5831 Hangars" + icon_state = "away4" + music = "music/ambigen5.ogg" + + +/*Cabin areas*/ +/area/awaymission/snowforest + name = "Snow Forest" + icon_state = "away" + requires_power = 0 + luminosity = 1 + lighting_use_dynamic = DYNAMIC_LIGHTING_ENABLED + +/area/awaymission/cabin + name = "Cabin" + icon_state = "away2" + requires_power = 1 + luminosity = 0 + lighting_use_dynamic = DYNAMIC_LIGHTING_ENABLED + +/area/awaymission/snowforest/lumbermill + name = "Lumbermill" + icon_state = "away3" + +//Packer Ship Areas + +/area/awaymission/BMPship + name = "BMP Asteroids" + icon_state = "away" + luminosity = 0 + + +/area/awaymission/BMPship/Aft + name = "Aft Block" + icon_state = "away1" + requires_power = 1 + +/area/awaymission/BMPship/Midship + name = "Midship Block" + icon_state = "away2" + requires_power = 1 + +/area/awaymission/BMPship/Fore + name = "Fore Block" + icon_state = "away3" + requires_power = 1 + + +//Academy Areas + +/area/awaymission/academy + name = "Academy Asteroids" + icon_state = "away" + +/area/awaymission/academy/headmaster + name = "Academy Fore Block" + icon_state = "away1" + +/area/awaymission/academy/classrooms + name = "Academy Classroom Block" + icon_state = "away2" + +/area/awaymission/academy/academyaft + name = "Academy Ship Aft Block" + icon_state = "away3" + +/area/awaymission/academy/academygate + name = "Academy Gateway" + icon_state = "away4" + +/area/awaymission/academy/academycellar + name = "Academy Cellar" + icon_state = "away4" + +/area/awaymission/academy/academyengine + name = "Academy Engine" + icon_state = "away4" + + + +//Wild West Areas + +/area/awaymission/wwmines + name = "Wild West Mines" + icon_state = "away1" + luminosity = 1 + requires_power = 0 + +/area/awaymission/wwgov + name = "Wild West Mansion" + icon_state = "away2" + luminosity = 1 + requires_power = 0 + +/area/awaymission/wwrefine + name = "Wild West Refinery" + icon_state = "away3" + luminosity = 1 + requires_power = 0 + +/area/awaymission/wwvault + name = "Wild West Vault" + icon_state = "away3" + luminosity = 0 + +/area/awaymission/wwvaultdoors + name = "Wild West Vault Doors" // this is to keep the vault area being entirely lit because of requires_power + icon_state = "away2" + requires_power = 0 + luminosity = 0 + + +/* + * Areas + */ + //Gateroom gets its own APC specifically for the gate + /area/awaymission/gateroom + + //Library, medbay, storage room + /area/awaymission/southblock + + //Arrivals, security, hydroponics, shuttles (since they dont move, they dont need specific areas) + /area/awaymission/arrivalblock + + //Crew quarters, cafeteria, chapel + /area/awaymission/midblock + + //engineering, bridge (not really north but it doesnt really need its own APC) + /area/awaymission/northblock + + //That massive research room + /area/awaymission/research + +//Syndicate shuttle +/area/awaymission/syndishuttle + + +//Spacebattle Areas + +/area/awaymission/spacebattle + name = "Space Battle" + icon_state = "away" + requires_power = 0 + +/area/awaymission/spacebattle/cruiser + name = "Nanotrasen Cruiser" + +/area/awaymission/spacebattle/syndicate1 + name = "Syndicate Assault Ship 1" + +/area/awaymission/spacebattle/syndicate2 + name = "Syndicate Assault Ship 2" + +/area/awaymission/spacebattle/syndicate3 + name = "Syndicate Assault Ship 3" + +/area/awaymission/spacebattle/syndicate4 + name = "Syndicate War Sphere 1" + +/area/awaymission/spacebattle/syndicate5 + name = "Syndicate War Sphere 2" + +/area/awaymission/spacebattle/syndicate6 + name = "Syndicate War Sphere 3" + +/area/awaymission/spacebattle/syndicate7 + name = "Syndicate Fighter" + +/area/awaymission/spacebattle/secret + name = "Hidden Chamber" + + +//Snow Valley Areas//-- + +/area/awaymission/snowdin + name = "Snowdin Tundra Plains" + icon_state = "away" + requires_power = 0 + luminosity = 1 + lighting_use_dynamic = DYNAMIC_LIGHTING_ENABLED + +/area/awaymission/snowdin/post + name = "Snowdin Outpost" + requires_power = 1 + +/area/awaymission/snowdin/igloo + name = "Snowdin Igloos" + icon_state = "away2" + +/area/awaymission/snowdin/cave + name = "Snowdin Caves" + icon_state = "away2" + luminosity = 0 + +/area/awaymission/snowdin/base + name = "Snowdin Main Base" + icon_state = "away3" + requires_power = 1 + +/area/awaymission/snowdin/dungeon1 + name = "Snowdin Depths" + icon_state = "away2" + luminosity = 0 + +/area/awaymission/snowdin/sekret + name = "Snowdin Operations" + icon_state = "away3" + requires_power = 1 + + + +/area/awaycontent + name = "space" + +/area/awaycontent/a1 + icon_state = "awaycontent1" + +/area/awaycontent/a2 + icon_state = "awaycontent2" + +/area/awaycontent/a3 + icon_state = "awaycontent3" + +/area/awaycontent/a4 + icon_state = "awaycontent4" + +/area/awaycontent/a5 + icon_state = "awaycontent5" + +/area/awaycontent/a6 + icon_state = "awaycontent6" + +/area/awaycontent/a7 + icon_state = "awaycontent7" + +/area/awaycontent/a8 + icon_state = "awaycontent8" + +/area/awaycontent/a9 + icon_state = "awaycontent9" + +/area/awaycontent/a10 + icon_state = "awaycontent10" + +/area/awaycontent/a11 + icon_state = "awaycontent11" + +/area/awaycontent/a11 + icon_state = "awaycontent12" + +/area/awaycontent/a12 + icon_state = "awaycontent13" + +/area/awaycontent/a13 + icon_state = "awaycontent14" + +/area/awaycontent/a14 + icon_state = "awaycontent14" + +/area/awaycontent/a15 + icon_state = "awaycontent15" + +/area/awaycontent/a16 + icon_state = "awaycontent16" + +/area/awaycontent/a17 + icon_state = "awaycontent17" + +/area/awaycontent/a18 + icon_state = "awaycontent18" + +/area/awaycontent/a19 + icon_state = "awaycontent19" + +/area/awaycontent/a20 + icon_state = "awaycontent20" + +/area/awaycontent/a21 + icon_state = "awaycontent21" + +/area/awaycontent/a22 + icon_state = "awaycontent22" + +/area/awaycontent/a23 + icon_state = "awaycontent23" + +/area/awaycontent/a24 + icon_state = "awaycontent24" + +/area/awaycontent/a25 + icon_state = "awaycontent25" + +/area/awaycontent/a26 + icon_state = "awaycontent26" + +/area/awaycontent/a27 + icon_state = "awaycontent27" + +/area/awaycontent/a28 + icon_state = "awaycontent28" + +/area/awaycontent/a29 + icon_state = "awaycontent29" + +/area/awaycontent/a30 + icon_state = "awaycontent30" \ No newline at end of file diff --git a/code/game/area/areas/centcom.dm b/code/game/area/areas/centcom.dm new file mode 100644 index 0000000..9a6f28a --- /dev/null +++ b/code/game/area/areas/centcom.dm @@ -0,0 +1,134 @@ + +// CENTCOM + +/area/centcom + name = "Centcom" + icon_state = "centcom" + requires_power = 0 + has_gravity = 1 + noteleport = 1 + blob_allowed = 0 //Should go without saying, no blobs should take over centcom as a win condition. + flags = NONE + +/area/centcom/control + name = "Centcom Docks" + +/area/centcom/evac + name = "Centcom Recovery Ship" + +/area/centcom/supply + name = "Centcom Supply Shuttle Dock" + +/area/centcom/ferry + name = "Centcom Transport Shuttle Dock" + +/area/centcom/prison + name = "Admin Prison" + +/area/centcom/holding + name = "Holding Facility" + +//THUNDERDOME + +/area/tdome + name = "Thunderdome" + icon_state = "yellow" + requires_power = 0 + has_gravity = 1 + +/area/tdome/arena + name = "Thunderdome Arena" + icon_state = "thunder" + +/area/tdome/arena_source + name = "Thunderdome Arena Template" + icon_state = "thunder" + +/area/tdome/tdome1 + name = "Thunderdome (Team 1)" + icon_state = "green" + +/area/tdome/tdome2 + name = "Thunderdome (Team 2)" + icon_state = "green" + +/area/tdome/tdomeadmin + name = "Thunderdome (Admin.)" + icon_state = "purple" + +/area/tdome/tdomeobserve + name = "Thunderdome (Observer.)" + icon_state = "purple" + + +//ENEMY + +//Wizard +/area/wizard_station + name = "Wizard's Den" + icon_state = "yellow" + requires_power = 0 + has_gravity = 1 + noteleport = 1 + +//Abductors +/area/abductor_ship + name = "Abductor Ship" + icon_state = "yellow" + requires_power = 0 + noteleport = 1 + has_gravity = 1 + +//Syndicates +/area/syndicate_mothership + name = "Syndicate Mothership" + icon_state = "syndie-ship" + requires_power = 0 + has_gravity = 1 + noteleport = 1 + blob_allowed = 0 //Not... entirely sure this will ever come up... but if the bus makes blobs AND ops, it shouldn't aim for the ops to win. + +/area/syndicate_mothership/control + name = "Syndicate Control Room" + icon_state = "syndie-control" + +/area/syndicate_mothership/elite_squad + name = "Syndicate Elite Squad" + icon_state = "syndie-elite" + + + +//CAPTURE THE FLAG + +/area/ctf + name = "Capture the Flag" + icon_state = "yellow" + requires_power = 0 + has_gravity = 1 + +/area/ctf/control_room + name = "Control Room A" + +/area/ctf/control_room2 + name = "Control Room B" + +/area/ctf/central + name = "Central" + +/area/ctf/main_hall + name = "Main Hall A" + +/area/ctf/main_hall2 + name = "Main Hall B" + +/area/ctf/corridor + name = "Corridor A" + +/area/ctf/corridor2 + name = "Corridor B" + +/area/ctf/flag_room + name = "Flag Room A" + +/area/ctf/flag_room2 + name = "Flag Room B" \ No newline at end of file diff --git a/code/game/area/areas/derelict.dm b/code/game/area/areas/derelict.dm new file mode 100644 index 0000000..9679103 --- /dev/null +++ b/code/game/area/areas/derelict.dm @@ -0,0 +1,124 @@ +//DERELICT + +/area/derelict + name = "Derelict Station" + icon_state = "storage" + blob_allowed = 0 //Nope, no winning on the derelict as a blob. Gotta eat the station. + +/area/derelict/hallway/primary + name = "Derelict Primary Hallway" + icon_state = "hallP" + +/area/derelict/hallway/secondary + name = "Derelict Secondary Hallway" + icon_state = "hallS" + +/area/derelict/arrival + name = "Derelict Arrival Centre" + icon_state = "yellow" + +/area/derelict/storage/equipment + name = "Derelict Equipment Storage" + +/area/derelict/storage/storage_access + name = "Derelict Storage Access" + +/area/derelict/storage/engine_storage + name = "Derelict Engine Storage" + icon_state = "green" + +/area/derelict/bridge + name = "Derelict Control Room" + icon_state = "bridge" + +/area/derelict/secret + name = "Derelict Secret Room" + icon_state = "library" + +/area/derelict/bridge/access + name = "Derelict Control Room Access" + icon_state = "auxstorage" + +/area/derelict/bridge/ai_upload + name = "Derelict Computer Core" + icon_state = "ai" + +/area/derelict/solar_control + name = "Derelict Solar Control" + icon_state = "engine" + +/area/derelict/se_solar + name = "South East Solars" + icon_state = "engine" + +/area/derelict/crew_quarters + name = "Derelict Crew Quarters" + icon_state = "fitness" + +/area/derelict/medical + name = "Derelict Medbay" + icon_state = "medbay" + +/area/derelict/medical/morgue + name = "Derelict Morgue" + icon_state = "morgue" + +/area/derelict/medical/chapel + name = "Derelict Chapel" + icon_state = "chapel" + +/area/derelict/teleporter + name = "Derelict Teleporter" + icon_state = "teleporter" + +/area/derelict/eva + name = "Derelict EVA Storage" + icon_state = "eva" + +/area/derelict/ship + name = "Abandoned Ship" + icon_state = "yellow" + +/area/solar/derelict_starboard + name = "Derelict Starboard Solar Array" + icon_state = "panelsS" + +/area/solar/derelict_aft + name = "Derelict Aft Solar Array" + icon_state = "yellow" + +/area/derelict/singularity_engine + name = "Derelict Singularity Engine" + icon_state = "engine" + +/area/derelict/gravity_generator + name = "Derelict Gravity Generator Room" + icon_state = "red" + +/area/derelict/atmospherics + name = "Derelict Atmospherics" + icon_state = "red" + + + +//DJSTATION + +/area/djstation + name = "Ruskie DJ Station" + icon_state = "DJ" + has_gravity = 1 + blob_allowed = 0 //Nope, no winning on the DJ station as a blob. Gotta eat the main station. + +/area/djstation/solars + name = "DJ Station Solars" + icon_state = "DJ" + has_gravity = 1 + + +//ABANDONED TELEPORTER + +/area/AIsattele + name = "Abandoned Teleporter" + icon_state = "teleporter" + music = "signal" + ambientsounds = list('sound/ambience/ambimalf.ogg') diff --git a/code/game/area/areas/holodeck.dm b/code/game/area/areas/holodeck.dm new file mode 100644 index 0000000..fa8b23a --- /dev/null +++ b/code/game/area/areas/holodeck.dm @@ -0,0 +1,128 @@ +/area/holodeck + name = "Holodeck" + icon_state = "Holodeck" + luminosity = 1 + lighting_use_dynamic = 0 + flags = 0 + + var/obj/machinery/computer/holodeck/linked + var/restricted = 0 // if true, program goes on emag list + +/* + Power tracking: Use the holodeck computer's power grid + Asserts are to avoid the inevitable infinite loops +*/ + +/area/holodeck/powered(var/chan) + if(!master.requires_power) + return 1 + if(master.always_unpowered) + return 0 + if(!linked) + return 0 + var/area/A = get_area(linked) + ASSERT(!istype(A,/area/holodeck)) + return A.powered(chan) + +/area/holodeck/usage(var/chan) + if(!linked) + return 0 + var/area/A = get_area(linked) + ASSERT(!istype(A,/area/holodeck)) + return A.usage(chan) + +/area/holodeck/addStaticPower(value, powerchannel) + if(!linked) + return + var/area/A = get_area(linked) + ASSERT(!istype(A,/area/holodeck)) + return A.addStaticPower(value,powerchannel) + +/area/holodeck/use_power(var/amount, var/chan) + if(!linked) + return 0 + var/area/A = get_area(linked) + ASSERT(!istype(A,/area/holodeck)) + return A.use_power(amount,chan) + + +/* + This is the standard holodeck. It is intended to allow you to + blow off steam by doing stupid things like laying down, throwing + spheres at holes, or bludgeoning people. +*/ +/area/holodeck/rec_center + name = "\improper Recreational Holodeck" + +/area/holodeck/rec_center/offline + name = "Holodeck - Offline" + +/area/holodeck/rec_center/court + name = "Holodeck - Empty Court" + +/area/holodeck/rec_center/dodgeball + name = "Holodeck - Dodgeball Court" + +/area/holodeck/rec_center/basketball + name = "Holodeck - Basketball Court" + +/area/holodeck/rec_center/thunderdome + name = "Holodeck - Thunderdome Arena" + +/area/holodeck/rec_center/beach + name = "Holodeck - Beach" + +/area/holodeck/rec_center/lounge + name = "Holodeck - Lounge" + +/area/holodeck/rec_center/medical + name = "Holodeck - Emergency Medical" + +/area/holodeck/rec_center/pet_lounge + name = "Holodeck - Pet Park" + +/area/holodeck/rec_center/firingrange + name = "Holodeck - Firing Range" + +/area/holodeck/rec_center/rollercoaster + name = "Holodeck - Roller Coaster" + +/area/holodeck/rec_center/chapelcourt + name = "Holodeck - Chapel Courtroom" + +/area/holodeck/rec_center/spacechess + name = "Holodeck - Space Chess" + +/area/holodeck/rec_center/kobayashi + name = "Holodeck - Kobayashi Maru" + +// Bad programs + +/area/holodeck/rec_center/burn + name = "Holodeck - Atmospheric Burn Test" + restricted = 1 + +/area/holodeck/rec_center/winterwonderland + name = "Holodeck - Winter Wonderland" + restricted = 1 + +/area/holodeck/rec_center/wildlife + name = "Holodeck - Wildlife Simulation" + restricted = 1 + +/area/holodeck/rec_center/bunker + name = "Holodeck - Holdout Bunker" + restricted = 1 + +/area/holodeck/rec_center/anthophila + name = "Holodeck - Anthophila" + restricted = 1 + +/area/holodeck/rec_center/refuel + name = "Holodeck - Refueling Station" + restricted = 1 + +/area/holodeck/rec_center/thunderdome1218 + name = "Holodeck - 1218 AD" + restricted = 1 + diff --git a/code/game/area/areas/mining.dm b/code/game/area/areas/mining.dm new file mode 100644 index 0000000..7272694 --- /dev/null +++ b/code/game/area/areas/mining.dm @@ -0,0 +1,120 @@ +/**********************Mine areas**************************/ + +/area/mine + icon_state = "mining" + has_gravity = 1 + +/area/mine/explored + name = "Mine" + icon_state = "explored" + music = null + always_unpowered = 1 + requires_power = 1 + poweralm = 0 + power_environ = 0 + power_equip = 0 + power_light = 0 + outdoors = 1 + ambientsounds = list('sound/ambience/ambimine.ogg') + flags = NONE + +/area/mine/unexplored + name = "Mine" + icon_state = "unexplored" + music = null + always_unpowered = 1 + requires_power = 1 + poweralm = 0 + power_environ = 0 + power_equip = 0 + power_light = 0 + outdoors = 1 + ambientsounds = list('sound/ambience/ambimine.ogg') + flags = NONE + +/area/mine/lobby + name = "Mining Station" + +/area/mine/storage + name = "Mining Station Storage" + +/area/mine/production + name = "Mining Station Starboard Wing" + icon_state = "mining_production" + +/area/mine/abandoned + name = "Abandoned Mining Station" + +/area/mine/living_quarters + name = "Mining Station Port Wing" + icon_state = "mining_living" + +/area/mine/eva + name = "Mining Station EVA" + icon_state = "mining_eva" + +/area/mine/maintenance + name = "Mining Station Communications" + +/area/mine/cafeteria + name = "Mining station Cafeteria" + +/area/mine/hydroponics + name = "Mining station Hydroponics" + +/area/mine/sleeper + name = "Mining station Emergency Sleeper" + +/area/mine/north_outpost + name = "North Mining Outpost" + +/area/mine/west_outpost + name = "West Mining Outpost" + +/area/mine/laborcamp + name = "Labor Camp" + +/area/mine/laborcamp/security + name = "Labor Camp Security" + icon_state = "security" + + + + +/**********************Lavaland Areas**************************/ + +/area/lavaland + icon_state = "mining" + has_gravity = 1 + +/area/lavaland/surface + name = "Lavaland" + icon_state = "explored" + music = null + always_unpowered = 1 + poweralm = 0 + power_environ = 0 + power_equip = 0 + power_light = 0 + requires_power = 1 + ambientsounds = list('sound/ambience/ambilava.ogg') + +/area/lavaland/underground + name = "Lavaland Caves" + icon_state = "unexplored" + music = null + always_unpowered = 1 + requires_power = 1 + poweralm = 0 + power_environ = 0 + power_equip = 0 + power_light = 0 + ambientsounds = list('sound/ambience/ambilava.ogg') + + +/area/lavaland/surface/outdoors + name = "Lavaland Wastes" + outdoors = 1 + +/area/lavaland/surface/outdoors/explored + name = "Lavaland Labor Camp" \ No newline at end of file diff --git a/code/game/area/areas/misc.dm b/code/game/area/areas/misc.dm new file mode 100644 index 0000000..6a4951d --- /dev/null +++ b/code/game/area/areas/misc.dm @@ -0,0 +1,130 @@ + +// Hell +/area/hell + name = "Hell Lobby" + //icon = "ICON FILENAME" + //icon_state = "NAME OF ICON" + requires_power = 0 + music = "music/music.ogg" + +/area/hell/trial1 + name = "Hell Trial1" + //icon_state = "NAME OF ICON" (defaults to "unknown" (blank)) + +/area/hell/trial1 + name = "Hell Trial2" + //icon_state = "NAME OF ICON" (defaults to "unknown" (blank)) + +/area/hell/trial1 + name = "Hell Trial3" + //icon_state = "NAME OF ICON" (defaults to "unknown" (blank)) + + + +//Misc + +/area/wreck/ai + name = "AI Chamber" + icon_state = "ai" + +/area/wreck/main + name = "Wreck" + icon_state = "storage" + +/area/wreck/engineering + name = "Power Room" + icon_state = "engine" + +/area/wreck/bridge + name = "Bridge" + icon_state = "bridge" + +/area/generic + name = "Unknown" + icon_state = "storage" + + + +//PRISON +/area/prison + name = "Prison Station" + icon_state = "brig" + +/area/prison/arrival_airlock + name = "Prison Station Airlock" + icon_state = "green" + requires_power = 0 + +/area/prison/control + name = "Prison Security Checkpoint" + icon_state = "security" + +/area/prison/crew_quarters + name = "Prison Security Quarters" + icon_state = "security" + +/area/prison/rec_room + name = "Prison Rec Room" + icon_state = "green" + +/area/prison/closet + name = "Prison Supply Closet" + icon_state = "dk_yellow" + +/area/prison/hallway/fore + name = "Prison Fore Hallway" + icon_state = "yellow" + +/area/prison/hallway/aft + name = "Prison Aft Hallway" + icon_state = "yellow" + +/area/prison/hallway/port + name = "Prison Port Hallway" + icon_state = "yellow" + +/area/prison/hallway/starboard + name = "Prison Starboard Hallway" + icon_state = "yellow" + +/area/prison/morgue + name = "Prison Morgue" + icon_state = "morgue" + ambientsounds = list('sound/ambience/ambimo1.ogg','sound/ambience/ambimo2.ogg') + +/area/prison/medical_research + name = "Prison Genetic Research" + icon_state = "medresearch" + +/area/prison/medical + name = "Prison Medbay" + icon_state = "medbay" + +/area/prison/solar + name = "Prison Solar Array" + icon_state = "storage" + requires_power = 0 + +/area/prison/podbay + name = "Prison Podbay" + icon_state = "dk_yellow" + +/area/prison/solar_control + name = "Prison Solar Array Control" + icon_state = "dk_yellow" + +/area/prison/solitary + name = "Solitary Confinement" + icon_state = "brig" + +/area/prison/cell_block/A + name = "Prison Cell Block A" + icon_state = "brig" + +/area/prison/cell_block/B + name = "Prison Cell Block B" + icon_state = "brig" + +/area/prison/cell_block/C + name = "Prison Cell Block C" + icon_state = "brig" diff --git a/code/game/area/areas/ruins.dm b/code/game/area/areas/ruins.dm new file mode 100644 index 0000000..2cc2670 --- /dev/null +++ b/code/game/area/areas/ruins.dm @@ -0,0 +1,199 @@ +//Parent types + +/area/ruin/ + name = "\improper Unexplored Location" + icon_state = "away" + has_gravity = 1 + + +/area/ruin/unpowered + always_unpowered = 0 + +/area/ruin/unpowered/no_grav + has_gravity = 0 + +/area/ruin/powered + requires_power = 0 + + + + +//Areas +/area/ruin/unpowered/hierophant + name = "Hierophant's Arena" + +/area/ruin/unpowered/no_grav/way_home + name = "\improper Salvation" + icon_state = "away" + +/area/ruin/powered/snow_biodome + +/area/ruin/powered/golem_ship + name = "Free Golem Ship" + + + +// Ruins of "onehalf" ship + +/area/ruin/onehalf/hallway + name = "Hallway" + icon_state = "hallC" + +/area/ruin/onehalf/drone_bay + name = "Mining Drone Bay" + icon_state = "engine" + +/area/ruin/onehalf/dorms_med + name = "Crew Quarters" + icon_state = "Sleep" + +/area/ruin/onehalf/bridge + name = "Bridge" + icon_state = "bridge" + + + +/area/ruin/powered/dinner_for_two + name = "Dinner for Two" + +/area/ruin/powered/authorship + name = "Authorship" + +/area/ruin/powered/aesthetic + name = "Aesthetic" + ambientsounds = list('sound/ambience/ambivapor1.ogg') + + +//Ruin of Hotel + +/area/ruin/hotel + name = "Hotel" + +/area/ruin/hotel/guestroom + name = "Hotel Guest Room" + icon_state = "Sleep" + +/area/ruin/hotel/security + name = "Hotel Security Post" + icon_state = "security" + +/area/ruin/hotel/pool + name = "Hotel Pool Room" + icon_state = "fitness" + +/area/ruin/hotel/bar + name = "Hotel Bar" + icon_state = "cafeteria" + +/area/ruin/hotel/power + name = "Hotel Power Room" + icon_state = "engine_smes" + +/area/ruin/hotel/custodial + name = "Hotel Custodial Closet" + icon_state = "janitor" + +/area/ruin/hotel/shuttle + name = "Hotel Shuttle" + icon_state = "shuttle" + requires_power = 0 + +/area/ruin/hotel/dock + name = "Hotel Shuttle Dock" + icon_state = "start" + +/area/ruin/hotel/workroom + name = "Hotel Staff Room" + icon_state = "crew_quarters" + + + +/area/ruin/fakespace + icon_state = "space" + requires_power = 1 + always_unpowered = 1 + lighting_use_dynamic = DYNAMIC_LIGHTING_DISABLED + has_gravity = 0 + power_light = 0 + power_equip = 0 + power_environ = 0 + valid_territory = 0 + outdoors = 1 + ambientsounds = list('sound/ambience/ambispace.ogg','sound/ambience/title2.ogg',) + blob_allowed = 0 + + + +//Ruin of Derelict Oupost + +/area/ruin/derelictoutpost + name = "Derelict Outpost" + icon_state = "green" + +/area/ruin/derelictoutpost/cargostorage + name = "Derelict Outpost Cargo Storage" + icon_state = "storage" + +/area/ruin/derelictoutpost/cargobay + name = "Derelict Outpost Cargo Bay" + icon_state = "quartstorage" + +/area/ruin/derelictoutpost/powerstorage + name = "Derelict Outpost Power Storage" + icon_state = "engine_smes" + +/area/ruin/derelictoutpost/dockedship + name = "Derelict Outpost Docked Ship" + icon_state = "red" + + +//Ruin of Space Bar + +/area/ruin/powered/spacebar + name = "Space Bar" + icon_state = "yellow" + +/area/ruin/powered/spacebar/bar + icon_state = "bar" + + +//Ruin of turretedoutpost + +/area/ruin/turretedoutpost + name = "Turreted Outpost" + icon_state = "red" + + +//Ruin of old teleporter + +/area/ruin/oldteleporter + name = "Old teleporter" + icon_state = "teleporter" + has_gravity = 0 + + +//Ruin of mech transport + +/area/ruin/powered/mechtransport + name = "Mech Transport" + icon_state = "green" + + +//Ruin of gas the lizard + +/area/ruin/gasthelizard + name = "Gas the lizard" + + +//Ruin of Deep Storage + +/area/ruin/deepstorage + name = "Deep Storage" + icon_state = "storage" + + +//Ruin of Abandoned Zoo + +/area/ruin/abandonedzoo + name = "Abandoned Zoo" + icon_state = "green" diff --git a/code/game/area/areas/shuttles.dm b/code/game/area/areas/shuttles.dm new file mode 100644 index 0000000..73a670e --- /dev/null +++ b/code/game/area/areas/shuttles.dm @@ -0,0 +1,57 @@ + +//These are shuttle areas; all subtypes are only used as teleportation markers, they have no actual function beyond that. + +/area/shuttle + name = "Shuttle" + requires_power = 0 + luminosity = 1 + lighting_use_dynamic = DYNAMIC_LIGHTING_ENABLED + has_gravity = 1 + valid_territory = 0 + icon_state = "shuttle" + +/area/shuttle/arrival + name = "Arrival Shuttle" + +/area/shuttle/pod_1 + name = "Escape Pod One" + +/area/shuttle/pod_2 + name = "Escape Pod Two" + +/area/shuttle/pod_3 + name = "Escape Pod Three" + +/area/shuttle/pod_4 + name = "Escape Pod Four" + +/area/shuttle/mining + name = "Mining Shuttle" + blob_allowed = FALSE + +/area/shuttle/labor + name = "Labor Camp Shuttle" + blob_allowed = FALSE + +/area/shuttle/supply + name = "Supply Shuttle" + blob_allowed = FALSE + +/area/shuttle/escape + name = "Emergency Shuttle" + +/area/shuttle/transport + name = "Transport Shuttle" + blob_allowed = FALSE + +/area/shuttle/syndicate + name = "Syndicate Infiltrator" + blob_allowed = FALSE + +/area/shuttle/assault_pod + name = "Steel Rain" + blob_allowed = FALSE + +/area/shuttle/abandoned + name = "Abandoned Ship" + blob_allowed = FALSE diff --git a/code/game/area/areas/space_content.dm b/code/game/area/areas/space_content.dm new file mode 100644 index 0000000..605cbfa --- /dev/null +++ b/code/game/area/areas/space_content.dm @@ -0,0 +1,97 @@ + + +/area/spacecontent + name = "space" + +/area/spacecontent/a1 + icon_state = "spacecontent1" + +/area/spacecontent/a2 + icon_state = "spacecontent2" + +/area/spacecontent/a3 + icon_state = "spacecontent3" + +/area/spacecontent/a4 + icon_state = "spacecontent4" + +/area/spacecontent/a5 + icon_state = "spacecontent5" + +/area/spacecontent/a6 + icon_state = "spacecontent6" + +/area/spacecontent/a7 + icon_state = "spacecontent7" + +/area/spacecontent/a8 + icon_state = "spacecontent8" + +/area/spacecontent/a9 + icon_state = "spacecontent9" + +/area/spacecontent/a10 + icon_state = "spacecontent10" + +/area/spacecontent/a11 + icon_state = "spacecontent11" + +/area/spacecontent/a11 + icon_state = "spacecontent12" + +/area/spacecontent/a12 + icon_state = "spacecontent13" + +/area/spacecontent/a13 + icon_state = "spacecontent14" + +/area/spacecontent/a14 + icon_state = "spacecontent14" + +/area/spacecontent/a15 + icon_state = "spacecontent15" + +/area/spacecontent/a16 + icon_state = "spacecontent16" + +/area/spacecontent/a17 + icon_state = "spacecontent17" + +/area/spacecontent/a18 + icon_state = "spacecontent18" + +/area/spacecontent/a19 + icon_state = "spacecontent19" + +/area/spacecontent/a20 + icon_state = "spacecontent20" + +/area/spacecontent/a21 + icon_state = "spacecontent21" + +/area/spacecontent/a22 + icon_state = "spacecontent22" + +/area/spacecontent/a23 + icon_state = "spacecontent23" + +/area/spacecontent/a24 + icon_state = "spacecontent24" + +/area/spacecontent/a25 + icon_state = "spacecontent25" + +/area/spacecontent/a26 + icon_state = "spacecontent26" + +/area/spacecontent/a27 + icon_state = "spacecontent27" + +/area/spacecontent/a28 + icon_state = "spacecontent28" + +/area/spacecontent/a29 + icon_state = "spacecontent29" + +/area/spacecontent/a30 + icon_state = "spacecontent30" diff --git a/code/game/asteroid.dm b/code/game/asteroid.dm new file mode 100644 index 0000000..c64d0db --- /dev/null +++ b/code/game/asteroid.dm @@ -0,0 +1,198 @@ +var/global/list/possiblethemes = list("organharvest","cult","wizden","cavein","xenoden","hitech","speakeasy","plantlab") + +var/global/max_secret_rooms = 6 + +/proc/spawn_room(atom/start_loc, x_size, y_size, list/walltypes, floor, name, oldarea) + var/list/room_turfs = list("walls"=list(),"floors"=list()) + + var/area/asteroid/artifactroom/A = new + if(name) + A.name = name + else + A.name = "Artifact Room #[start_loc.x]-[start_loc.y]-[start_loc.z]" + + for(var/x = 0, x < x_size, x++) //sets the size of the room on the x axis + for(var/y = 0, y < y_size, y++) //sets it on y axis. + var/turf/T + var/cur_loc = locate(start_loc.x + x, start_loc.y + y, start_loc.z) + + + if(x == 0 || x == x_size-1 || y == 0 || y == y_size-1) + var/wall = pickweight(walltypes)//totally-solid walls are pretty boring. + T = cur_loc + T.ChangeTurf(wall) + room_turfs["walls"] += T + + + else + T = cur_loc + T.ChangeTurf(floor) + room_turfs["floors"] += T + + if(!oldarea) + A.contents += T + + return room_turfs + +////////////// + +/proc/make_mining_asteroid_secrets() + for(var/i in 1 to max_secret_rooms) + make_mining_asteroid_secret() + +/proc/make_mining_asteroid_secret() + var/valid = 0 + var/turf/T = null + var/sanity = 0 + var/list/room = null + var/list/turfs = null + var/x_size = 5 + var/y_size = 5 + + var/areapoints = 0 + var/theme = "organharvest" + var/list/walltypes = list(/turf/closed/wall=3, /turf/closed/mineral/random=1) + var/list/floortypes = list(/turf/open/floor/plasteel) + var/list/treasureitems = list()//good stuff. only 1 is created per room. + var/list/fluffitems = list()//lesser items, to help fill out the room and enhance the theme. + + x_size = rand(3,7) + y_size = rand(3,7) + areapoints = x_size * y_size + + switch(pick(possiblethemes))//what kind of room is this gonna be? + if("organharvest") + walltypes = list(/turf/closed/wall/r_wall=2,/turf/closed/wall=2,/turf/closed/mineral/random/high_chance=1) + floortypes = list(/turf/open/floor/plasteel,/turf/open/floor/engine) + treasureitems = list(/mob/living/simple_animal/bot/medbot/mysterious=1, /obj/item/weapon/circular_saw=1, /obj/structure/closet/crate/critter=2, /mob/living/simple_animal/pet/cat/space=1) + fluffitems = list(/obj/effect/decal/cleanable/blood=5,/obj/item/organ/appendix=2,/obj/structure/closet/crate/freezer=2, + /obj/structure/table/optable=1,/obj/item/weapon/scalpel=1,/obj/item/weapon/storage/firstaid/regular=3, + /obj/item/weapon/tank/internals/anesthetic=1, /obj/item/weapon/surgical_drapes=2, /obj/item/device/mass_spectrometer/adv=1,/obj/item/clothing/glasses/hud/health=1) + + if("cult") + theme = "cult" + walltypes = list(/turf/closed/wall/mineral/cult=3,/turf/closed/mineral/random/high_chance=1) + floortypes = list(/turf/open/floor/plasteel/cult) + treasureitems = list(/obj/item/device/soulstone/anybody=1, /obj/item/clothing/suit/space/hardsuit/cult=1, /obj/item/weapon/bedsheet/cult=2, + /obj/item/clothing/suit/cultrobes=2, /mob/living/simple_animal/hostile/creature=3) + fluffitems = list(/obj/effect/gateway=1,/obj/effect/gibspawner=1,/obj/structure/destructible/cult/talisman=1,/obj/item/toy/crayon/red=2, + /obj/item/organ/heart=2, /obj/effect/decal/cleanable/blood=4,/obj/structure/table/wood=2,/obj/item/weapon/ectoplasm=3, + /obj/item/clothing/shoes/cult=1) + + if("wizden") + theme = "wizden" + walltypes = list(/turf/closed/wall/mineral/plasma=3,/turf/closed/mineral/random/high_chance=1) + floortypes = list(/turf/open/floor/wood) + treasureitems = list(/obj/item/weapon/veilrender/vealrender=2, /obj/item/weapon/spellbook/oneuse/blind=1,/obj/item/clothing/head/wizard/red=2, + /obj/item/weapon/spellbook/oneuse/forcewall=1, /obj/item/weapon/spellbook/oneuse/smoke=1, /obj/structure/constructshell = 1, /obj/item/toy/katana=3,/obj/item/voodoo=3) + fluffitems = list(/obj/structure/safe/floor=1,/obj/structure/dresser=1,/obj/item/weapon/storage/belt/soulstone=1,/obj/item/trash/candle=3, + /obj/item/weapon/dice=3,/obj/item/weapon/staff=2,/obj/effect/decal/cleanable/dirt=3,/obj/item/weapon/coin/mythril=3) + + if("cavein") + theme = "cavein" + walltypes = list(/turf/closed/mineral/random/high_chance=1) + floortypes = list(/turf/open/floor/plating/asteroid/basalt, /turf/open/floor/plating/beach/sand) + treasureitems = list(/obj/mecha/working/ripley/mining=1, /obj/item/weapon/pickaxe/drill/diamonddrill=2, + /obj/item/weapon/resonator/upgraded=1, /obj/item/weapon/pickaxe/drill/jackhammer=5) + fluffitems = list(/obj/effect/decal/cleanable/blood=3,/obj/effect/decal/remains/human=1,/obj/item/clothing/under/overalls=1, + /obj/item/weapon/reagent_containers/food/snacks/grown/chili=1,/obj/item/weapon/tank/internals/oxygen/red=2) + + if("xenoden") + theme = "xenoden" + walltypes = list(/turf/closed/mineral/random/high_chance=1) + floortypes = list(/turf/open/floor/plating/asteroid/basalt, /turf/open/floor/plating/beach/sand) + treasureitems = list(/obj/item/clothing/mask/facehugger=1) + fluffitems = list(/obj/effect/decal/remains/human=1,/obj/effect/decal/cleanable/xenoblood/xsplatter=5) + + if("hitech") + theme = "hitech" + walltypes = list(/turf/closed/wall/r_wall=5,/turf/closed/mineral/random=1) + floortypes = list(/turf/open/floor/greengrid,/turf/open/floor/bluegrid) + treasureitems = list(/obj/item/weapon/stock_parts/cell/hyper=1, /obj/machinery/chem_dispenser/constructable=1,/obj/machinery/computer/telescience=1, /obj/machinery/r_n_d/protolathe=1, + /obj/machinery/biogenerator=1) + fluffitems = list(/obj/structure/table/reinforced=2,/obj/item/weapon/stock_parts/scanning_module/phasic=3, + /obj/item/weapon/stock_parts/matter_bin/super=3,/obj/item/weapon/stock_parts/manipulator/pico=3, + /obj/item/weapon/stock_parts/capacitor/super=3,/obj/item/device/pda/clear=1, /obj/structure/mecha_wreckage/phazon=1) + + if("speakeasy") + theme = "speakeasy" + floortypes = list(/turf/open/floor/plasteel,/turf/open/floor/wood) + treasureitems = list(/obj/item/weapon/melee/energy/sword/pirate=1,/obj/item/weapon/gun/projectile/revolver/doublebarrel=1,/obj/item/weapon/storage/backpack/satchel/flat=1, + /obj/machinery/reagentgrinder=2, /obj/machinery/computer/security/wooden_tv=4, /obj/machinery/vending/coffee=3) + fluffitems = list(/obj/structure/table/wood=2,/obj/structure/reagent_dispensers/beerkeg=1,/obj/item/stack/spacecash/c500=4, + /obj/item/weapon/reagent_containers/food/drinks/shaker=1,/obj/item/weapon/reagent_containers/food/drinks/bottle/wine=3, + /obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey=3,/obj/item/clothing/shoes/laceup=2) + + if("plantlab") + theme = "plantlab" + treasureitems = list(/obj/item/weapon/gun/energy/floragun=1,/obj/item/seeds/sunflower/novaflower=2,/obj/item/seeds/tomato/blue/bluespace=2,/obj/item/seeds/tomato/blue=2, + /obj/item/seeds/coffee/robusta=2, /obj/item/seeds/firelemon=2) + fluffitems = list(/obj/item/weapon/twohanded/required/kirbyplants=1,/obj/structure/table/reinforced=2,/obj/machinery/hydroponics/constructable=1, + /obj/structure/glowshroom/single=2,/obj/item/weapon/reagent_containers/syringe/charcoal=2, + /obj/item/weapon/reagent_containers/glass/bottle/diethylamine=3,/obj/item/weapon/reagent_containers/glass/bottle/ammonia=3) + + /*if("poly") + theme = "poly" + x_size = 5 + y_size = 5 + walltypes = list(/turf/closed/wall/mineral/clown) + floortypes= list(/turf/open/floor/engine) + treasureitems = list(/obj/item/weapon/spellbook=1,/obj/mecha/combat/marauder=1,/obj/machinery/wish_granter=1) + fluffitems = list(/obj/item/weapon/melee/energy/axe)*/ + + possiblethemes -= theme //once a theme is selected, it's out of the running! + var/floor = pick(floortypes) + + turfs = get_area_turfs(/area/lavaland/surface/outdoors) + + if(!turfs.len) + return 0 + + while(!valid)//Finds some spots to place these rooms at, where they won't be spotted immediately. + valid = 1 + sanity++ + if(sanity > 100) + return 0 + + T=pick(turfs) + if(!T) + return 0 + + var/list/surroundings = list() + + surroundings += range(7, locate(T.x,T.y,T.z)) + surroundings += range(7, locate(T.x+x_size,T.y,T.z)) + surroundings += range(7, locate(T.x,T.y+y_size,T.z)) + surroundings += range(7, locate(T.x+x_size,T.y+y_size,T.z)) + + for(var/turf/check in surroundings) + var/area/new_area = get_area(check) + if(!(istype(new_area, /area/lavaland/surface/outdoors))) + valid = FALSE + break + + if(!T) + return 0 + + room = spawn_room(T,x_size,y_size,walltypes,floor,) //WE'RE FINALLY CREATING THE ROOM + + if(room)//time to fill it with stuff + var/list/emptyturfs = room["floors"] + T = pick(emptyturfs) + if(T) + new /obj/structure/glowshroom/single(T) //Just to make it a little more visible + var/surprise = null + surprise = pickweight(treasureitems) + new surprise(T)//here's the prize + emptyturfs -= T + + while(areapoints >= 10)//lets throw in the fluff items + T = pick(emptyturfs) + var/garbage = null + garbage = pickweight(fluffitems) + new garbage(T) + areapoints -= 5 + emptyturfs -= T + //world.log << "The [theme] themed [T.loc] has been created!" + + return 1 \ No newline at end of file diff --git a/code/game/atoms.dm b/code/game/atoms.dm new file mode 100644 index 0000000..328b3c7 --- /dev/null +++ b/code/game/atoms.dm @@ -0,0 +1,520 @@ +/atom + layer = TURF_LAYER + plane = GAME_PLANE + var/level = 2 + var/flags = 0 + var/list/fingerprints + var/list/fingerprintshidden + var/list/blood_DNA + var/admin_spawned = 0 //was this spawned by an admin? used for stat tracking stuff. + + //This atom's HUD (med/sec, etc) images. Associative list. + var/list/image/hud_list = null + //HUD images that this atom can provide. + var/list/hud_possible + + //Value used to increment ex_act() if reactionary_explosions is on + var/explosion_block = 0 + + //overlays that should remain on top and not normally be removed, like c4. + var/list/priority_overlays + + var/list/atom_colours //used to store the different colors on an atom + //its inherent color, the colored paint applied on it, special color effect etc... + + +/atom/New() + //atom creation method that preloads variables at creation + if(use_preloader && (src.type == _preloader.target_path))//in case the instanciated atom is creating other atoms in New() + _preloader.load(src) + + if(color) + add_atom_colour(color, FIXED_COLOUR_PRIORITY) + . = ..() + +/atom/Destroy() + if(alternate_appearances) + for(var/aakey in alternate_appearances) + var/datum/alternate_appearance/AA = alternate_appearances[aakey] + qdel(AA) + alternate_appearances = null + if(viewing_alternate_appearances) + for(var/aakey in viewing_alternate_appearances) + for(var/aa in viewing_alternate_appearances[aakey]) + var/datum/alternate_appearance/AA = aa + AA.hide(list(src)) + return ..() + + +/atom/proc/onCentcom() + var/turf/T = get_turf(src) + if(!T) + return 0 + + if(T.z != ZLEVEL_CENTCOM)//if not, don't bother + return 0 + + //check for centcomm shuttles + for(var/A in SSshuttle.mobile) + var/obj/docking_port/mobile/M = A + if(M.launch_status == ENDGAME_LAUNCHED && T in M.areaInstance) + return 1 + + //finally check for centcom itself + return istype(T.loc,/area/centcom) + +/atom/proc/onSyndieBase() + var/turf/T = get_turf(src) + if(!T) + return 0 + + if(T.z != ZLEVEL_CENTCOM)//if not, don't bother + return 0 + + if(istype(T.loc,/area/shuttle/syndicate) || istype(T.loc,/area/syndicate_mothership)) + return 1 + + return 0 + +/atom/proc/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0) + if(does_attack_animation) + user.changeNext_move(CLICK_CD_MELEE) + add_logs(user, src, "punched", "hulk powers") + user.do_attack_animation(src, ATTACK_EFFECT_SMASH) + +/atom/proc/CheckParts(list/parts_list) + for(var/A in parts_list) + if(istype(A, /datum/reagent)) + if(!reagents) + reagents = new() + reagents.reagent_list.Add(A) + reagents.conditional_update() + else if(istype(A, /atom/movable)) + var/atom/movable/M = A + if(isliving(M.loc)) + var/mob/living/L = M.loc + L.unEquip(M) + M.loc = src + +/atom/proc/assume_air(datum/gas_mixture/giver) + qdel(giver) + return null + +/atom/proc/remove_air(amount) + return null + +/atom/proc/return_air() + if(loc) + return loc.return_air() + else + return null + +/atom/proc/check_eye(mob/user) + return + + +/atom/proc/Bumped(AM as mob|obj) + return + +// Convenience proc to see if a container is open for chemistry handling +// returns true if open +// false if closed +/atom/proc/is_open_container() + return flags & OPENCONTAINER + +/*//Convenience proc to see whether a container can be accessed in a certain way. + +/atom/proc/can_subract_container() + return flags & EXTRACT_CONTAINER + +/atom/proc/can_add_container() + return flags & INSERT_CONTAINER +*/ + + +/atom/proc/allow_drop() + return 1 + +/atom/proc/CheckExit() + return 1 + +/atom/proc/HasProximity(atom/movable/AM as mob|obj) + return + +/atom/proc/emp_act(severity) + return + +/atom/proc/bullet_act(obj/item/projectile/P, def_zone) + . = P.on_hit(src, 0, def_zone) + +/atom/proc/in_contents_of(container)//can take class or object instance as argument + if(ispath(container)) + if(istype(src.loc, container)) + return 1 + else if(src in container) + return 1 + +/* + * atom/proc/search_contents_for(path,list/filter_path=null) + * Recursevly searches all atom contens (including contents contents and so on). + * + * ARGS: path - search atom contents for atoms of this type + * list/filter_path - if set, contents of atoms not of types in this list are excluded from search. + * + * RETURNS: list of found atoms + */ + +/atom/proc/search_contents_for(path,list/filter_path=null) + var/list/found = list() + for(var/atom/A in src) + if(istype(A, path)) + found += A + if(filter_path) + var/pass = 0 + for(var/type in filter_path) + pass |= istype(A, type) + if(!pass) + continue + if(A.contents.len) + found += A.search_contents_for(path,filter_path) + return found + + +/atom/proc/examine(mob/user) + //This reformat names to get a/an properly working on item descriptions when they are bloody + var/f_name = "\a [src]." + if(src.blood_DNA && !istype(src, /obj/effect/decal)) + if(gender == PLURAL) + f_name = "some " + else + f_name = "a " + f_name += "blood-stained [name]!" + + user << "\icon[src] That's [f_name]" + + if(desc) + user << desc + // *****RM + //user << "[name]: Dn:[density] dir:[dir] cont:[contents] icon:[icon] is:[icon_state] loc:[loc]" + + if(reagents && is_open_container()) //is_open_container() isn't really the right proc for this, but w/e + user << "It contains:" + if(reagents.reagent_list.len) + if(user.can_see_reagents()) //Show each individual reagent + for(var/datum/reagent/R in reagents.reagent_list) + user << "[R.volume] units of [R.name]" + else //Otherwise, just show the total volume + var/total_volume = 0 + for(var/datum/reagent/R in reagents.reagent_list) + total_volume += R.volume + user << "[total_volume] units of various reagents" + else + user << "Nothing." + +/atom/proc/relaymove() + return + +/atom/proc/contents_explosion(severity, target) + return + +/atom/proc/ex_act(severity, target) + contents_explosion(severity, target) + +/atom/proc/blob_act(obj/structure/blob/B) + return + +/atom/proc/fire_act(exposed_temperature, exposed_volume) + return + +/atom/proc/hitby(atom/movable/AM, skipcatch, hitpush, blocked) + if(density && !has_gravity(AM)) //thrown stuff bounces off dense stuff in no grav, unless the thrown stuff ends up inside what it hit(embedding, bola, etc...). + spawn(2) //very short wait, so we can actually see the impact. + if(AM && isturf(AM.loc)) + step(AM, turn(AM.dir, 180)) + +var/list/blood_splatter_icons = list() + +/atom/proc/blood_splatter_index() + return "\ref[initial(icon)]-[initial(icon_state)]" + +//returns the mob's dna info as a list, to be inserted in an object's blood_DNA list +/mob/living/proc/get_blood_dna_list() + if(get_blood_id() != "blood") + return + return list("ANIMAL DNA" = "Y-") + +/mob/living/carbon/get_blood_dna_list() + if(get_blood_id() != "blood") + return + var/list/blood_dna = list() + if(dna) + blood_dna[dna.unique_enzymes] = dna.blood_type + else + blood_dna["UNKNOWN DNA"] = "X*" + return blood_dna + +/mob/living/carbon/alien/get_blood_dna_list() + return list("UNKNOWN DNA" = "X*") + +//to add a mob's dna info into an object's blood_DNA list. +/atom/proc/transfer_mob_blood_dna(mob/living/L) + // Returns 0 if we have that blood already + var/new_blood_dna = L.get_blood_dna_list() + if(!new_blood_dna) + return 0 + if(!blood_DNA) //if our list of DNA doesn't exist yet, initialise it. + blood_DNA = list() + var/old_length = blood_DNA.len + blood_DNA |= new_blood_dna + if(blood_DNA.len == old_length) + return 0 + return 1 + +//to add blood dna info to the object's blood_DNA list +/atom/proc/transfer_blood_dna(list/blood_dna) + if(!blood_DNA) + blood_DNA = list() + var/old_length = blood_DNA.len + blood_DNA |= blood_dna + if(blood_DNA.len > old_length) + return 1//some new blood DNA was added + + +//to add blood from a mob onto something, and transfer their dna info +/atom/proc/add_mob_blood(mob/living/M) + var/list/blood_dna = M.get_blood_dna_list() + if(!blood_dna) + return 0 + return add_blood(blood_dna) + +//to add blood onto something, with blood dna info to include. +/atom/proc/add_blood(list/blood_dna) + return 0 + +/obj/add_blood(list/blood_dna) + return transfer_blood_dna(blood_dna) + +/obj/item/add_blood(list/blood_dna) + var/blood_count = !blood_DNA ? 0 : blood_DNA.len + if(!..()) + return 0 + if(!blood_count)//apply the blood-splatter overlay if it isn't already in there + add_blood_overlay() + return 1 //we applied blood to the item + +/obj/item/proc/add_blood_overlay() + if(initial(icon) && initial(icon_state)) + //try to find a pre-processed blood-splatter. otherwise, make a new one + var/index = blood_splatter_index() + var/icon/blood_splatter_icon = blood_splatter_icons[index] + if(!blood_splatter_icon) + blood_splatter_icon = icon(initial(icon), initial(icon_state), , 1) //we only want to apply blood-splatters to the initial icon_state for each object + blood_splatter_icon.Blend("#fff", ICON_ADD) //fills the icon_state with white (except where it's transparent) + blood_splatter_icon.Blend(icon('icons/effects/blood.dmi', "itemblood"), ICON_MULTIPLY) //adds blood and the remaining white areas become transparant + blood_splatter_icon = fcopy_rsc(blood_splatter_icon) + blood_splatter_icons[index] = blood_splatter_icon + add_overlay(blood_splatter_icon) + +/obj/item/clothing/gloves/add_blood(list/blood_dna) + . = ..() + transfer_blood = rand(2, 4) + +/turf/add_blood(list/blood_dna) + var/obj/effect/decal/cleanable/blood/splatter/B = locate() in src + if(!B) + B = new /obj/effect/decal/cleanable/blood/splatter(src) + B.transfer_blood_dna(blood_dna) //give blood info to the blood decal. + return 1 //we bloodied the floor + +/mob/living/carbon/human/add_blood(list/blood_dna) + if(wear_suit) + wear_suit.add_blood(blood_dna) + update_inv_wear_suit() + else if(w_uniform) + w_uniform.add_blood(blood_dna) + update_inv_w_uniform() + if(gloves) + var/obj/item/clothing/gloves/G = gloves + G.add_blood(blood_dna) + else + transfer_blood_dna(blood_dna) + bloody_hands = rand(2, 4) + update_inv_gloves() //handles bloody hands overlays and updating + return 1 + +/atom/proc/clean_blood() + if(istype(blood_DNA, /list)) + blood_DNA = null + return 1 + +/atom/proc/wash_cream() + return 1 + +/atom/proc/get_global_map_pos() + if(!islist(global_map) || isemptylist(global_map)) return + var/cur_x = null + var/cur_y = null + var/list/y_arr = null + for(cur_x=1,cur_x<=global_map.len,cur_x++) + y_arr = global_map[cur_x] + cur_y = y_arr.Find(src.z) + if(cur_y) + break +// world << "X = [cur_x]; Y = [cur_y]" + if(cur_x && cur_y) + return list("x"=cur_x,"y"=cur_y) + else + return 0 + +/atom/proc/isinspace() + if(isspaceturf(get_turf(src))) + return 1 + else + return 0 + +/atom/proc/handle_fall() + return + +/atom/proc/handle_slip() + return +/atom/proc/singularity_act() + return + +/atom/proc/singularity_pull() + return + +/atom/proc/acid_act(acidpwr, acid_volume) + return + +/atom/proc/emag_act() + return + +/atom/proc/narsie_act() + return + +/atom/proc/ratvar_act() + return + +/atom/proc/storage_contents_dump_act(obj/item/weapon/storage/src_object, mob/user) + return 0 + +//This proc is called on the location of an atom when the atom is Destroy()'d +/atom/proc/handle_atom_del(atom/A) + +// Byond seemingly calls stat, each tick. +// Calling things each tick can get expensive real quick. +// So we slow this down a little. +// See: http://www.byond.com/docs/ref/info.html#/client/proc/Stat +/atom/Stat() + . = ..() + sleep(1) + stoplag() + +//This is called just before maps and objects are initialized, use it to spawn other mobs/objects +//effects at world start up without causing runtimes +/atom/proc/spawn_atom_to_world() + +//This will be called after the map and objects are loaded +/atom/proc/initialize() + return + +//the vision impairment to give to the mob whose perspective is set to that atom (e.g. an unfocused camera giving you an impaired vision when looking through it) +/atom/proc/get_remote_view_fullscreens(mob/user) + return + +//the sight changes to give to the mob whose perspective is set to that atom (e.g. A mob with nightvision loses its nightvision while looking through a normal camera) +/atom/proc/update_remote_sight(mob/living/user) + return + +/atom/proc/add_vomit_floor(mob/living/carbon/M, toxvomit = 0) + if(isturf(src)) + var/obj/effect/decal/cleanable/vomit/V = PoolOrNew(/obj/effect/decal/cleanable/vomit, src) + // Make toxins vomit look different + if(toxvomit) + V.icon_state = "vomittox_[pick(1,4)]" + if(M.reagents) + clear_reagents_to_vomit_pool(M,V) + +/atom/proc/clear_reagents_to_vomit_pool(mob/living/carbon/M, obj/effect/decal/cleanable/vomit/V) + M.reagents.trans_to(V, M.reagents.total_volume / 10) + for(var/datum/reagent/R in M.reagents.reagent_list) //clears the stomach of anything that might be digested as food + if(istype(R, /datum/reagent/consumable)) + var/datum/reagent/consumable/nutri_check = R + if(nutri_check.nutriment_factor >0) + M.reagents.remove_reagent(R.id,R.volume) + + +//Hook for running code when a dir change occurs +/atom/proc/setDir(newdir) + dir = newdir + +/atom/on_varedit(modified_var) + ..() + if(!Debug2) + admin_spawned = TRUE + switch(modified_var) + if("color") + add_atom_colour(color, ADMIN_COLOUR_PRIORITY) + +/atom/proc/mech_melee_attack(obj/mecha/M) + return + + + +/* + Atom Colour Priority System + A System that gives finer control over which atom colour to colour the atom with. + The "highest priority" one is always displayed as opposed to the default of + "whichever was set last is displayed" +*/ + + +/* + Adds an instance of colour_type to the atom's atom_colours list +*/ +/atom/proc/add_atom_colour(coloration, colour_priority) + if(!atom_colours || !atom_colours.len) + atom_colours = list() + atom_colours.len = COLOUR_PRIORITY_AMOUNT //four priority levels currently. + if(!coloration) + return + if(colour_priority > atom_colours.len) + return + atom_colours[colour_priority] = coloration + update_atom_colour() + + +/* + Removes an instance of colour_type from the atom's atom_colours list +*/ +/atom/proc/remove_atom_colour(colour_priority, coloration) + if(!atom_colours) + atom_colours = list() + atom_colours.len = COLOUR_PRIORITY_AMOUNT //four priority levels currently. + if(colour_priority > atom_colours.len) + return + if(coloration && atom_colours[colour_priority] != coloration) + return //if we don't have the expected color (for a specific priority) to remove, do nothing + atom_colours[colour_priority] = null + update_atom_colour() + + +/* + Resets the atom's color to null, and then sets it to the highest priority + colour available +*/ +/atom/proc/update_atom_colour() + if(!atom_colours) + atom_colours = list() + atom_colours.len = COLOUR_PRIORITY_AMOUNT //four priority levels currently. + color = null + for(var/C in atom_colours) + if(islist(C)) + var/list/L = C + if(L.len) + color = L + return + else if(C) + color = C + return + diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm new file mode 100644 index 0000000..9c3031a --- /dev/null +++ b/code/game/atoms_movable.dm @@ -0,0 +1,411 @@ +/atom/movable + layer = OBJ_LAYER + var/last_move = null + var/anchored = 0 + var/throwing = 0 + var/throw_speed = 2 + var/throw_range = 7 + var/mob/pulledby = null + var/languages_spoken = 0 //For say() and Hear() + var/languages_understood = 0 + var/verb_say = "says" + var/verb_ask = "asks" + var/verb_exclaim = "exclaims" + var/verb_yell = "yells" + var/inertia_dir = 0 + var/atom/inertia_last_loc + var/inertia_moving = 0 + var/inertia_next_move = 0 + var/inertia_move_delay = 5 + var/pass_flags = 0 + var/moving_diagonally = 0 //0: not doing a diagonal move. 1 and 2: doing the first/second step of the diagonal move + glide_size = 8 + appearance_flags = TILE_BOUND + + + +/atom/movable/Move(atom/newloc, direct = 0) + if(!loc || !newloc) return 0 + var/atom/oldloc = loc + + if(loc != newloc) + if (!(direct & (direct - 1))) //Cardinal move + . = ..() + else //Diagonal move, split it into cardinal moves + moving_diagonally = FIRST_DIAG_STEP + if (direct & 1) + if (direct & 4) + if (step(src, NORTH)) + moving_diagonally = SECOND_DIAG_STEP + . = step(src, EAST) + else if (step(src, EAST)) + moving_diagonally = SECOND_DIAG_STEP + . = step(src, NORTH) + else if (direct & 8) + if (step(src, NORTH)) + moving_diagonally = SECOND_DIAG_STEP + . = step(src, WEST) + else if (step(src, WEST)) + moving_diagonally = SECOND_DIAG_STEP + . = step(src, NORTH) + else if (direct & 2) + if (direct & 4) + if (step(src, SOUTH)) + moving_diagonally = SECOND_DIAG_STEP + . = step(src, EAST) + else if (step(src, EAST)) + moving_diagonally = SECOND_DIAG_STEP + . = step(src, SOUTH) + else if (direct & 8) + if (step(src, SOUTH)) + moving_diagonally = SECOND_DIAG_STEP + . = step(src, WEST) + else if (step(src, WEST)) + moving_diagonally = SECOND_DIAG_STEP + . = step(src, SOUTH) + moving_diagonally = 0 + return + + if(!loc || (loc == oldloc && oldloc != newloc)) + last_move = 0 + return + + if(.) + Moved(oldloc, direct) + + last_move = direct + setDir(direct) + if(. && has_buckled_mobs() && !handle_buckled_mob_movement(loc,direct)) //movement failed due to buckled mob(s) + . = 0 + +//Called after a successful Move(). By this point, we've already moved +/atom/movable/proc/Moved(atom/OldLoc, Dir) + if (!inertia_moving) + inertia_next_move = world.time + inertia_move_delay + newtonian_move(Dir) + return 1 + +/atom/movable/Destroy() + . = ..() + if(loc) + loc.handle_atom_del(src) + if(reagents) + qdel(reagents) + for(var/atom/movable/AM in contents) + qdel(AM) + loc = null + invisibility = INVISIBILITY_ABSTRACT + if(pulledby) + pulledby.stop_pulling() + + +// Previously known as HasEntered() +// This is automatically called when something enters your square +/atom/movable/Crossed(atom/movable/AM) + return + +/atom/movable/Bump(atom/A, yes) //the "yes" arg is to differentiate our Bump proc from byond's, without it every Bump() call would become a double Bump(). + if((A && yes)) + if(throwing) + throwing = 0 + throw_impact(A) + . = 1 + if(!A || qdeleted(A)) + return + A.Bumped(src) + + +/atom/movable/proc/forceMove(atom/destination) + if(destination) + if(pulledby) + pulledby.stop_pulling() + var/atom/oldloc = loc + if(oldloc) + oldloc.Exited(src, destination) + loc = destination + destination.Entered(src, oldloc) + var/area/old_area = get_area(oldloc) + var/area/destarea = get_area(destination) + if(old_area != destarea) + destarea.Entered(src) + for(var/atom/movable/AM in destination) + if(AM == src) + continue + AM.Crossed(src) + Moved(oldloc, 0) + return 1 + return 0 + +/mob/living/forceMove(atom/destination) + stop_pulling() + if(buckled) + buckled.unbuckle_mob(src,force=1) + if(has_buckled_mobs()) + unbuckle_all_mobs(force=1) + . = ..() + if(client) + reset_perspective(destination) + update_canmove() //if the mob was asleep inside a container and then got forceMoved out we need to make them fall. + +/mob/living/brain/forceMove(atom/destination) + if(container) + container.forceMove(destination) + else //something went very wrong. + CRASH("Brainmob without container.") + + +/mob/living/silicon/pai/forceMove(atom/destination) + if(card) + card.forceMove(destination) + else //something went very wrong. + CRASH("pAI without card") + + +//Called whenever an object moves and by mobs when they attempt to move themselves through space +//And when an object or action applies a force on src, see newtonian_move() below +//Return 0 to have src start/keep drifting in a no-grav area and 1 to stop/not start drifting +//Mobs should return 1 if they should be able to move of their own volition, see client/Move() in mob_movement.dm +//movement_dir == 0 when stopping or any dir when trying to move +/atom/movable/proc/Process_Spacemove(movement_dir = 0) + if(has_gravity(src)) + return 1 + + if(pulledby) + return 1 + + if(throwing) + return 1 + + if(locate(/obj/structure/lattice) in range(1, get_turf(src))) //Not realistic but makes pushing things in space easier + return 1 + + return 0 + + +/atom/movable/proc/newtonian_move(direction) //Only moves the object if it's under no gravity + if(!loc || Process_Spacemove(0)) + inertia_dir = 0 + return 0 + + inertia_dir = direction + if(!direction) + return 1 + inertia_last_loc = loc + SSspacedrift.processing[src] = src + return 1 + +/atom/movable/proc/checkpass(passflag) + return pass_flags&passflag + +/atom/movable/proc/throw_impact(atom/hit_atom) + return hit_atom.hitby(src) + +/atom/movable/hitby(atom/movable/AM, skipcatch, hitpush = 1, blocked) + if(!anchored && hitpush) + step(src, AM.dir) + ..() + +/atom/movable/proc/throw_at_fast(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0) + set waitfor = 0 + throw_at(target, range, speed, thrower, spin, diagonals_first) + +/atom/movable/proc/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0) + if(!target || !src || (flags & NODROP)) + return 0 + //use a modified version of Bresenham's algorithm to get from the atom's current position to that of the target + + if(pulledby) + pulledby.stop_pulling() + + throwing = 1 + if(spin) //if we don't want the /atom/movable to spin. + SpinAnimation(5, 1) + + var/dist_travelled = 0 + var/next_sleep = 0 + + var/dist_x = abs(target.x - src.x) + var/dist_y = abs(target.y - src.y) + var/dx = (target.x > src.x) ? EAST : WEST + var/dy = (target.y > src.y) ? NORTH : SOUTH + + var/pure_diagonal = 0 + if(dist_x == dist_y) + pure_diagonal = 1 + + if(dist_x <= dist_y) + var/olddist_x = dist_x + var/olddx = dx + dist_x = dist_y + dist_y = olddist_x + dx = dy + dy = olddx + + var/error = dist_x/2 - dist_y //used to decide whether our next move should be forward or diagonal. + var/atom/finalturf = get_turf(target) + var/hit = 0 + var/init_dir = get_dir(src, target) + + while(target && ((dist_travelled < range && loc != finalturf) || !has_gravity(src))) //stop if we reached our destination (or max range) and aren't floating + var/slept = 0 + if(!isturf(loc)) + hit = 1 + break + + var/atom/step + if(dist_travelled < max(dist_x, dist_y)) //if we haven't reached the target yet we home in on it, otherwise we use the initial direction + step = get_step(src, get_dir(src, finalturf)) + else + step = get_step(src, init_dir) + + if(!pure_diagonal && !diagonals_first) // not a purely diagonal trajectory and we don't want all diagonal moves to be done first + if(error >= 0 && max(dist_x,dist_y) - dist_travelled != 1) //we do a step forward unless we're right before the target + step = get_step(src, dx) + error += (error < 0) ? dist_x/2 : -dist_y + if(!step) // going off the edge of the map makes get_step return null, don't let things go off the edge + break + Move(step, get_dir(loc, step)) + if(!throwing) // we hit something during our move + hit = 1 + break + dist_travelled++ + + if(dist_travelled > 600) //safety to prevent infinite while loop. + break + if(dist_travelled >= next_sleep) + slept = 1 + next_sleep += speed + sleep(1) + if(!slept) + var/ticks_slept = TICK_CHECK + if(ticks_slept) + slept = 1 + next_sleep += speed*(ticks_slept*world.tick_lag) //delay the next normal sleep + + if(slept && hitcheck()) //to catch sneaky things moving on our tile while we slept + hit = 1 + break + + + //done throwing, either because it hit something or it finished moving + throwing = 0 + if(!hit) + for(var/atom/A in get_turf(src)) //looking for our target on the turf we land on. + if(A == target) + hit = 1 + throw_impact(A) + return 1 + + throw_impact(get_turf(src)) // we haven't hit something yet and we still must, let's hit the ground. + newtonian_move(init_dir) + return 1 + +/atom/movable/proc/hitcheck() + for(var/atom/movable/AM in get_turf(src)) + if(AM == src) + continue + if(AM.density && !(AM.pass_flags & LETPASSTHROW) && !(AM.flags & ON_BORDER)) + throwing = 0 + throw_impact(AM) + return 1 + +/atom/movable/proc/handle_buckled_mob_movement(newloc,direct) + for(var/m in buckled_mobs) + var/mob/living/buckled_mob = m + if(!buckled_mob.Move(newloc, direct)) + loc = buckled_mob.loc + last_move = buckled_mob.last_move + inertia_dir = last_move + buckled_mob.inertia_dir = last_move + return 0 + return 1 + +/atom/movable/CanPass(atom/movable/mover, turf/target, height=1.5) + if(mover in buckled_mobs) + return 1 + return ..() + + +/atom/movable/proc/get_spacemove_backup() + var/atom/movable/dense_object_backup + for(var/A in orange(1, get_turf(src))) + if(isarea(A)) + continue + else if(isturf(A)) + var/turf/turf = A + if(!turf.density) + continue + return turf + else + var/atom/movable/AM = A + if(!AM.CanPass(src) || AM.density) + if(AM.anchored) + return AM + dense_object_backup = AM + break + . = dense_object_backup + +//called when a mob resists while inside a container that is itself inside something. +/atom/movable/proc/relay_container_resist(mob/living/user, obj/O) + return + + + +/atom/movable/proc/do_attack_animation(atom/A, visual_effect_icon, obj/item/used_item, no_effect, end_pixel_y) + if(!no_effect && (visual_effect_icon || used_item)) + do_item_attack_animation(A, visual_effect_icon, used_item) + + var/pixel_x_diff = 0 + var/pixel_y_diff = 0 + var/final_pixel_y = initial(pixel_y) + if(end_pixel_y) + final_pixel_y = end_pixel_y + + var/direction = get_dir(src, A) + if(direction & NORTH) + pixel_y_diff = 8 + else if(direction & SOUTH) + pixel_y_diff = -8 + + if(direction & EAST) + pixel_x_diff = 8 + else if(direction & WEST) + pixel_x_diff = -8 + + animate(src, pixel_x = pixel_x + pixel_x_diff, pixel_y = pixel_y + pixel_y_diff, time = 2) + animate(pixel_x = initial(pixel_x), pixel_y = final_pixel_y, time = 2) + +/atom/movable/proc/do_item_attack_animation(atom/A, visual_effect_icon, obj/item/used_item) + var/image/I + if(visual_effect_icon) + I = image('icons/effects/effects.dmi', A, visual_effect_icon, A.layer + 0.1) + else if(used_item) + I = image(used_item.icon, A, used_item.icon_state, A.layer + 0.1) + + // Scale the icon. + I.transform *= 0.75 + // The icon should not rotate. + I.appearance_flags = APPEARANCE_UI_IGNORE_ALPHA + + // Set the direction of the icon animation. + var/direction = get_dir(src, A) + if(direction & NORTH) + I.pixel_y = -16 + else if(direction & SOUTH) + I.pixel_y = 16 + + if(direction & EAST) + I.pixel_x = -16 + else if(direction & WEST) + I.pixel_x = 16 + + if(!direction) // Attacked self?! + I.pixel_z = 16 + + if(!I) + return + + flick_overlay(I, clients, 5) // 5 ticks/half a second + + // And animate the attack! + animate(I, alpha = 175, pixel_x = 0, pixel_y = 0, pixel_z = 0, time = 3) diff --git a/code/game/communications.dm b/code/game/communications.dm new file mode 100644 index 0000000..2d816cf --- /dev/null +++ b/code/game/communications.dm @@ -0,0 +1,302 @@ +/* + HOW IT WORKS + + The SSradio is a global object maintaining all radio transmissions, think about it as about "ether". + Note that walkie-talkie, intercoms and headsets handle transmission using nonstandard way. + procs: + + add_object(obj/device as obj, var/new_frequency as num, var/filter as text|null = null) + Adds listening object. + parameters: + device - device receiving signals, must have proc receive_signal (see description below). + one device may listen several frequencies, but not same frequency twice. + new_frequency - see possibly frequencies below; + filter - thing for optimization. Optional, but recommended. + All filters should be consolidated in this file, see defines later. + Device without listening filter will receive all signals (on specified frequency). + Device with filter will receive any signals sent without filter. + Device with filter will not receive any signals sent with different filter. + returns: + Reference to frequency object. + + remove_object (obj/device, old_frequency) + Obliviously, after calling this proc, device will not receive any signals on old_frequency. + Other frequencies will left unaffected. + + return_frequency(var/frequency as num) + returns: + Reference to frequency object. Use it if you need to send and do not need to listen. + + radio_frequency is a global object maintaining list of devices that listening specific frequency. + procs: + + post_signal(obj/source as obj|null, datum/signal/signal, var/filter as text|null = null, var/range as num|null = null) + Sends signal to all devices that wants such signal. + parameters: + source - object, emitted signal. Usually, devices will not receive their own signals. + signal - see description below. + filter - described above. + range - radius of regular byond's square circle on that z-level. null means everywhere, on all z-levels. + + obj/proc/receive_signal(datum/signal/signal, var/receive_method as num, var/receive_param) + Handler from received signals. By default does nothing. Define your own for your object. + Avoid of sending signals directly from this proc, use spawn(0). Do not use sleep() here please. + parameters: + signal - see description below. Extract all needed data from the signal before doing sleep(), spawn() or return! + receive_method - may be TRANSMISSION_WIRE or TRANSMISSION_RADIO. + TRANSMISSION_WIRE is currently unused. + receive_param - for TRANSMISSION_RADIO here comes frequency. + + datum/signal + vars: + source + an object that emitted signal. Used for debug and bearing. + data + list with transmitting data. Usual use pattern: + data["msg"] = "hello world" + encryption + Some number symbolizing "encryption key". + Note that game actually do not use any cryptography here. + If receiving object don't know right key, it must ignore encrypted signal in its receive_signal. + +*/ +/* the radio controller is a confusing piece of shit and didnt work + so i made radios not use the radio controller. +*/ +var/list/all_radios = list() +/proc/add_radio(obj/item/radio, freq) + if(!freq || !radio) + return + if(!all_radios["[freq]"]) + all_radios["[freq]"] = list(radio) + return freq + + all_radios["[freq]"] |= radio + return freq + +/proc/remove_radio(obj/item/radio, freq) + if(!freq || !radio) + return + if(!all_radios["[freq]"]) + return + + all_radios["[freq]"] -= radio + +/proc/remove_radio_all(obj/item/radio) + for(var/freq in all_radios) + all_radios["[freq]"] -= radio + +/* +Frequency range: 1200 to 1600 +Radiochat range: 1441 to 1489 (most devices refuse to be tune to other frequency, even during mapmaking) + +Radio: +1459 - standard radio chat +1351 - Science +1353 - Command +1355 - Medical +1357 - Engineering +1359 - Security +1337 - death squad +1443 - Confession Intercom +1349 - Miners +1347 - Cargo techs +1447 - AI Private + +Devices: +1451 - tracking implant +1457 - RSD default + +On the map: +1311 for prison shuttle console (in fact, it is not used) +1435 for status displays +1437 for atmospherics/fire alerts +1439 for engine components +1439 for air pumps, air scrubbers, atmo control +1441 for atmospherics - supply tanks +1443 for atmospherics - distribution loop/mixed air tank +1445 for bot nav beacons +1447 for mulebot, secbot and ed209 control +1449 for airlock controls, electropack, magnets +1451 for toxin lab access +1453 for engineering access +1455 for AI access +*/ + +var/list/radiochannels = list( + "Common" = 1459, + "Science" = 1351, + "Command" = 1353, + "Medical" = 1355, + "Engineering" = 1357, + "Security" = 1359, + "Centcom" = 1337, + "Syndicate" = 1213, + "Supply" = 1347, + "Service" = 1349, + "AI Private" = 1447 +) + +var/list/radiochannelsreverse = list( + "1459" = "Common", + "1351" = "Science", + "1353" = "Command", + "1355" = "Medical", + "1357" = "Engineering", + "1359" = "Security", + "1337" = "Centcom", + "1213" = "Syndicate", + "1347" = "Supply", + "1349" = "Service", + "1447" = "AI Private" +) + +//depenging helpers +var/const/SYND_FREQ = 1213 //nuke op frequency, coloured dark brown in chat window +var/const/SUPP_FREQ = 1347 //supply, coloured light brown in chat window +var/const/SERV_FREQ = 1349 //service, coloured green in chat window +var/const/SCI_FREQ = 1351 //science, coloured plum in chat window +var/const/COMM_FREQ = 1353 //command, colored gold in chat window +var/const/MED_FREQ = 1355 //medical, coloured blue in chat window +var/const/ENG_FREQ = 1357 //engineering, coloured orange in chat window +var/const/SEC_FREQ = 1359 //security, coloured red in chat window +var/const/CENTCOM_FREQ = 1337 //centcom frequency, coloured grey in chat window +var/const/AIPRIV_FREQ = 1447 //AI private, colored magenta in chat window + +#define TRANSMISSION_WIRE 0 +#define TRANSMISSION_RADIO 1 + +/* filters */ +var/const/RADIO_TO_AIRALARM = "1" +var/const/RADIO_FROM_AIRALARM = "2" +var/const/RADIO_CHAT = "3" //deprecated +var/const/RADIO_ATMOSIA = "4" +var/const/RADIO_NAVBEACONS = "5" +var/const/RADIO_AIRLOCK = "6" +var/const/RADIO_MAGNETS = "9" + +/datum/radio_frequency + + var/frequency as num + var/list/list/obj/devices = list() + +//If range > 0, only post to devices on the same z_level and within range +//Use range = -1, to restrain to the same z_level without limiting range +/datum/radio_frequency/proc/post_signal(obj/source as obj|null, datum/signal/signal, filter = null as text|null, range = null as num|null) + + //Apply filter to the signal. If none supply, broadcast to every devices + //_default channel is always checked + var/list/filter_list + + if(filter) + filter_list = list(filter,"_default") + else + filter_list = devices + + //If checking range, find the source turf + var/turf/start_point + if(range) + start_point = get_turf(source) + if(!start_point) + return 0 + + //Send the data + for(var/current_filter in filter_list) + for(var/obj/device in devices[current_filter]) + if(device == source) + continue + if(range) + var/turf/end_point = get_turf(device) + if(!end_point) + continue + if(start_point.z != end_point.z || (range > 0 && get_dist(start_point, end_point) > range)) + continue + device.receive_signal(signal, TRANSMISSION_RADIO, frequency) + +/datum/radio_frequency/proc/add_listener(obj/device, filter as text|null) + if (!filter) + filter = "_default" + + var/list/devices_line = devices[filter] + if(!devices_line) + devices_line = list() + devices[filter] = devices_line + devices_line += device + + +/datum/radio_frequency/proc/remove_listener(obj/device) + for(var/devices_filter in devices) + var/list/devices_line = devices[devices_filter] + if(!devices_line) + devices -= devices_filter + devices_line -= device + if(!devices_line.len) + devices -= devices_filter + + + + +var/list/pointers = list() + +/client/proc/print_pointers() + set name = "Debug Signals" + set category = "Debug" + + if(!holder) + return + + src << "There are [pointers.len] pointers:" + for(var/p in pointers) + src << p + var/datum/signal/S = locate(p) + if(istype(S)) + src << S.debug_print() + +/obj/proc/receive_signal(datum/signal/signal, receive_method, receive_param) + return + +/datum/signal + var/obj/source + + var/transmission_method = 0 + //0 = wire + //1 = radio transmission + //2 = subspace transmission + + var/data = list() + var/encryption + + var/frequency = 0 + +/datum/signal/New() + ..() + pointers += "\ref[src]" + +/datum/signal/Destroy() + pointers -= "\ref[src]" + return ..() + +/datum/signal/proc/copy_from(datum/signal/model) + source = model.source + transmission_method = model.transmission_method + data = model.data + encryption = model.encryption + frequency = model.frequency + +/datum/signal/proc/debug_print() + if (source) + . = "signal = {source = '[source]' ([source:x],[source:y],[source:z])\n" + else + . = "signal = {source = '[source]' ()\n" + for (var/i in data) + . += "data\[\"[i]\"\] = \"[data[i]]\"\n" + if(islist(data[i])) + var/list/L = data[i] + for(var/t in L) + . += "data\[\"[i]\"\] list has: [t]" + +/datum/signal/proc/sanitize_data() + for(var/d in data) + var/val = data[d] + if(istext(val)) + data[d] = html_encode(val) diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm new file mode 100644 index 0000000..32f6133 --- /dev/null +++ b/code/game/data_huds.dm @@ -0,0 +1,366 @@ +/* + * Data HUDs have been rewritten in a more generic way. + * In short, they now use an observer-listener pattern. + * See code/datum/hud.dm for the generic hud datum. + * Update the HUD icons when needed with the appropriate hook. (see below) + */ + +/* DATA HUD DATUMS */ + +/atom/proc/add_to_all_human_data_huds() + for(var/datum/atom_hud/data/human/hud in huds) hud.add_to_hud(src) + +/atom/proc/remove_from_all_data_huds() + for(var/datum/atom_hud/data/hud in huds) hud.remove_from_hud(src) + +/datum/atom_hud/data + +/datum/atom_hud/data/human/medical + hud_icons = list(STATUS_HUD, HEALTH_HUD) + +/datum/atom_hud/data/human/medical/basic + +/datum/atom_hud/data/human/medical/basic/proc/check_sensors(mob/living/carbon/human/H) + if(!istype(H)) return 0 + var/obj/item/clothing/under/U = H.w_uniform + if(!istype(U)) return 0 + if(U.sensor_mode <= 2) return 0 + return 1 + +/datum/atom_hud/data/human/medical/basic/add_to_single_hud(mob/M, mob/living/carbon/H) + if(check_sensors(H)) + ..() + +/datum/atom_hud/data/human/medical/basic/proc/update_suit_sensors(mob/living/carbon/H) + check_sensors(H) ? add_to_hud(H) : remove_from_hud(H) + +/datum/atom_hud/data/human/medical/advanced + +/datum/atom_hud/data/human/security + +/datum/atom_hud/data/human/security/basic + hud_icons = list(ID_HUD) + +/datum/atom_hud/data/human/security/advanced + hud_icons = list(ID_HUD, IMPTRACK_HUD, IMPLOYAL_HUD, IMPCHEM_HUD, WANTED_HUD) + +/datum/atom_hud/data/diagnostic + hud_icons = list (DIAG_HUD, DIAG_STAT_HUD, DIAG_BATT_HUD, DIAG_MECH_HUD, DIAG_BOT_HUD) + +/* MED/SEC/DIAG HUD HOOKS */ + +/* + * THESE HOOKS SHOULD BE CALLED BY THE MOB SHOWING THE HUD + */ + +/*********************************************** + Medical HUD! Basic mode needs suit sensors on. +************************************************/ + +//HELPERS + +//called when a carbon changes virus +/mob/living/carbon/proc/check_virus() + var/threat = 0 + for(var/datum/disease/D in viruses) + if(!(D.visibility_flags & HIDDEN_SCANNER)) + if (D.severity != NONTHREAT) //a buffing virus gets an icon + threat = 2 + return threat //harmful viruses have priority + else + threat = 1 //aka good virus + + return threat + +//helper for getting the appropriate health status +/proc/RoundHealth(mob/living/M) + if(M.stat == DEAD || (M.status_flags & FAKEDEATH)) + return "health-100" //what's our health? it doesn't matter, we're dead, or faking + var/maxi_health = M.maxHealth + if(iscarbon(M) && M.health < 0) + maxi_health = 100 //so crit shows up right for aliens and other high-health carbon mobs; noncarbons don't have crit. + var/resulthealth = (M.health / maxi_health) * 100 + switch(resulthealth) + if(100 to INFINITY) + return "health100" + if(90.625 to 100) + return "health93.75" + if(84.375 to 90.625) + return "health87.5" + if(78.125 to 84.375) + return "health81.25" + if(71.875 to 78.125) + return "health75" + if(65.625 to 71.875) + return "health68.75" + if(59.375 to 65.625) + return "health62.5" + if(53.125 to 59.375) + return "health56.25" + if(46.875 to 53.125) + return "health50" + if(40.625 to 46.875) + return "health43.75" + if(34.375 to 40.625) + return "health37.5" + if(28.125 to 34.375) + return "health31.25" + if(21.875 to 28.125) + return "health25" + if(15.625 to 21.875) + return "health18.75" + if(9.375 to 15.625) + return "health12.5" + if(1 to 9.375) + return "health6.25" + if(-50 to 1) + return "health0" + if(-85 to -50) + return "health-50" + if(-99 to -85) + return "health-85" + else + return "health-100" + return "0" + +//HOOKS + +//called when a human changes suit sensors +/mob/living/carbon/proc/update_suit_sensors() + var/datum/atom_hud/data/human/medical/basic/B = huds[DATA_HUD_MEDICAL_BASIC] + B.update_suit_sensors(src) + + var/turf/T = get_turf(src) + if (T) crewmonitor.queueUpdate(T.z) + +//called when a living mob changes health +/mob/living/proc/med_hud_set_health() + var/image/holder = hud_list[HEALTH_HUD] + holder.icon_state = "hud[RoundHealth(src)]" + var/icon/I = icon(icon, icon_state, dir) + holder.pixel_y = I.Height() - world.icon_size + +//for carbon suit sensors +/mob/living/carbon/med_hud_set_health() + ..() + + var/turf/T = get_turf(src) + if(T) + crewmonitor.queueUpdate(T.z) + +//called when a carbon changes stat, virus or XENO_HOST +/mob/living/proc/med_hud_set_status() + var/image/holder = hud_list[STATUS_HUD] + var/icon/I = icon(icon, icon_state, dir) + holder.pixel_y = I.Height() - world.icon_size + if(stat == DEAD || (status_flags & FAKEDEATH)) + holder.icon_state = "huddead" + else + holder.icon_state = "hudhealthy" + +/mob/living/carbon/med_hud_set_status() + var/image/holder = hud_list[STATUS_HUD] + var/icon/I = icon(icon, icon_state, dir) + var/virus_state = check_virus() + holder.pixel_y = I.Height() - world.icon_size + if(status_flags & XENO_HOST) + holder.icon_state = "hudxeno" + else if(stat == DEAD || (status_flags & FAKEDEATH)) + holder.icon_state = "huddead" + else if(virus_state == 2) + holder.icon_state = "hudill" + else if(virus_state == 1) + holder.icon_state = "hudbuff" + else + holder.icon_state = "hudhealthy" + + +/*********************************************** + Security HUDs! Basic mode shows only the job. +************************************************/ + +//HOOKS + +/mob/living/carbon/human/proc/sec_hud_set_ID() + var/image/holder = hud_list[ID_HUD] + var/icon/I = icon(icon, icon_state, dir) + holder.pixel_y = I.Height() - world.icon_size + holder.icon_state = "hudno_id" + if(wear_id) + holder.icon_state = "hud[ckey(wear_id.GetJobName())]" + sec_hud_set_security_status() + + var/turf/T = get_turf(src) + if (T) crewmonitor.queueUpdate(T.z) + +/mob/living/carbon/human/proc/sec_hud_set_implants() + var/image/holder + for(var/i in list(IMPTRACK_HUD, IMPLOYAL_HUD, IMPCHEM_HUD)) + holder = hud_list[i] + holder.icon_state = null + for(var/obj/item/weapon/implant/I in implants) + if(istype(I,/obj/item/weapon/implant/tracking)) + holder = hud_list[IMPTRACK_HUD] + var/icon/IC = icon(icon, icon_state, dir) + holder.pixel_y = IC.Height() - world.icon_size + holder.icon_state = "hud_imp_tracking" + else if(istype(I,/obj/item/weapon/implant/mindshield)) + holder = hud_list[IMPLOYAL_HUD] + var/icon/IC = icon(icon, icon_state, dir) + holder.pixel_y = IC.Height() - world.icon_size + holder.icon_state = "hud_imp_loyal" + else if(istype(I,/obj/item/weapon/implant/chem)) + holder = hud_list[IMPCHEM_HUD] + var/icon/IC = icon(icon, icon_state, dir) + holder.pixel_y = IC.Height() - world.icon_size + holder.icon_state = "hud_imp_chem" + +/mob/living/carbon/human/proc/sec_hud_set_security_status() + var/image/holder = hud_list[WANTED_HUD] + var/icon/I = icon(icon, icon_state, dir) + holder.pixel_y = I.Height() - world.icon_size + var/perpname = get_face_name(get_id_name("")) + if(perpname) + var/datum/data/record/R = find_record("name", perpname, data_core.security) + if(R) + switch(R.fields["criminal"]) + if("*Arrest*") + holder.icon_state = "hudwanted" + return + if("Incarcerated") + holder.icon_state = "hudincarcerated" + return + if("Parolled") + holder.icon_state = "hudparolled" + return + if("Discharged") + holder.icon_state = "huddischarged" + return + holder.icon_state = null + +/*********************************************** + Diagnostic HUDs! +************************************************/ + +//For Diag health and cell bars! +/proc/RoundDiagBar(value) + switch(value * 100) + if(95 to INFINITY) + return "max" + if(80 to 100) + return "good" + if(60 to 80) + return "high" + if(40 to 60) + return "med" + if(20 to 40) + return "low" + if(1 to 20) + return "crit" + else + return "dead" + return "dead" + +//Sillycone hooks +/mob/living/silicon/proc/diag_hud_set_health() + var/image/holder = hud_list[DIAG_HUD] + var/icon/I = icon(icon, icon_state, dir) + holder.pixel_y = I.Height() - world.icon_size + if(stat == DEAD) + holder.icon_state = "huddiagdead" + else + holder.icon_state = "huddiag[RoundDiagBar(health/maxHealth)]" + +/mob/living/silicon/proc/diag_hud_set_status() + var/image/holder = hud_list[DIAG_STAT_HUD] + var/icon/I = icon(icon, icon_state, dir) + holder.pixel_y = I.Height() - world.icon_size + switch(stat) + if(CONSCIOUS) + holder.icon_state = "hudstat" + if(UNCONSCIOUS) + holder.icon_state = "hudoffline" + else + holder.icon_state = "huddead2" + +//Borgie battery tracking! +/mob/living/silicon/robot/proc/diag_hud_set_borgcell() + var/image/holder = hud_list[DIAG_BATT_HUD] + var/icon/I = icon(icon, icon_state, dir) + holder.pixel_y = I.Height() - world.icon_size + if(cell) + var/chargelvl = (cell.charge/cell.maxcharge) + holder.icon_state = "hudbatt[RoundDiagBar(chargelvl)]" + else + holder.icon_state = "hudnobatt" + +/*~~~~~~~~~~~~~~~~~~~~ + BIG STOMPY MECHS +~~~~~~~~~~~~~~~~~~~~~*/ +/obj/mecha/proc/diag_hud_set_mechhealth() + var/image/holder = hud_list[DIAG_MECH_HUD] + var/icon/I = icon(icon, icon_state, dir) + holder.pixel_y = I.Height() - world.icon_size + holder.icon_state = "huddiag[RoundDiagBar(obj_integrity/max_integrity)]" + + +/obj/mecha/proc/diag_hud_set_mechcell() + var/image/holder = hud_list[DIAG_BATT_HUD] + var/icon/I = icon(icon, icon_state, dir) + holder.pixel_y = I.Height() - world.icon_size + if(cell) + var/chargelvl = cell.charge/cell.maxcharge + holder.icon_state = "hudbatt[RoundDiagBar(chargelvl)]" + else + holder.icon_state = "hudnobatt" + + +/obj/mecha/proc/diag_hud_set_mechstat() + var/image/holder = hud_list[DIAG_STAT_HUD] + var/icon/I = icon(icon, icon_state, dir) + holder.pixel_y = I.Height() - world.icon_size + holder.icon_state = null + if(internal_damage) + holder.icon_state = "hudwarn" + +/*~~~~~~~~~ + Bots! +~~~~~~~~~~*/ +/mob/living/simple_animal/bot/proc/diag_hud_set_bothealth() + var/image/holder = hud_list[DIAG_HUD] + var/icon/I = icon(icon, icon_state, dir) + holder.pixel_y = I.Height() - world.icon_size + holder.icon_state = "huddiag[RoundDiagBar(health/maxHealth)]" + +/mob/living/simple_animal/bot/proc/diag_hud_set_botstat() //On (With wireless on or off), Off, EMP'ed + var/image/holder = hud_list[DIAG_STAT_HUD] + var/icon/I = icon(icon, icon_state, dir) + holder.pixel_y = I.Height() - world.icon_size + if(on) + holder.icon_state = "hudstat" + else if(stat) //Generally EMP causes this + holder.icon_state = "hudoffline" + else //Bot is off + holder.icon_state = "huddead2" + +/mob/living/simple_animal/bot/proc/diag_hud_set_botmode() //Shows a bot's current operation + var/image/holder = hud_list[DIAG_BOT_HUD] + var/icon/I = icon(icon, icon_state, dir) + holder.pixel_y = I.Height() - world.icon_size + if(client) //If the bot is player controlled, it will not be following mode logic! + holder.icon_state = "hudsentient" + return + + switch(mode) + if(BOT_SUMMON, BOT_RESPONDING) //Responding to PDA or AI summons + holder.icon_state = "hudcalled" + if(BOT_CLEANING, BOT_REPAIRING, BOT_HEALING) //Cleanbot cleaning, Floorbot fixing, or Medibot Healing + holder.icon_state = "hudworking" + if(BOT_PATROL, BOT_START_PATROL) //Patrol mode + holder.icon_state = "hudpatrol" + if(BOT_PREP_ARREST, BOT_ARREST, BOT_HUNT) //STOP RIGHT THERE, CRIMINAL SCUM! + holder.icon_state = "hudalert" + if(BOT_MOVING, BOT_DELIVER, BOT_GO_HOME, BOT_NAV) //Moving to target for normal bots, moving to deliver or go home for MULES. + holder.icon_state = "hudmove" + else + holder.icon_state = "" \ No newline at end of file diff --git a/code/game/gamemodes/antag_hud.dm b/code/game/gamemodes/antag_hud.dm new file mode 100644 index 0000000..999e5cd --- /dev/null +++ b/code/game/gamemodes/antag_hud.dm @@ -0,0 +1,92 @@ +/datum/atom_hud/antag + hud_icons = list(ANTAG_HUD) + var/self_visible = 1 + +/datum/atom_hud/antag/hidden + self_visible = 0 + +/datum/atom_hud/antag/proc/join_hud(mob/M) + //sees_hud should be set to 0 if the mob does not get to see it's own hud type. + if(!istype(M)) + CRASH("join_hud(): [M] ([M.type]) is not a mob!") + if(M.mind.antag_hud) //note: please let this runtime if a mob has no mind, as mindless mobs shouldn't be getting antagged + M.mind.antag_hud.leave_hud(M) + add_to_hud(M) + if(self_visible) + add_hud_to(M) + M.mind.antag_hud = src + +/datum/atom_hud/antag/proc/leave_hud(mob/M) + if(!M) + return + if(!istype(M)) + CRASH("leave_hud(): [M] ([M.type]) is not a mob!") + remove_from_hud(M) + remove_hud_from(M) + if(M.mind) + M.mind.antag_hud = null + + +//GAME_MODE PROCS +//called to set a mob's antag icon state +/datum/game_mode/proc/set_antag_hud(mob/M, new_icon_state) + if(!istype(M)) + CRASH("set_antag_hud(): [M] ([M.type]) is not a mob!") + var/image/holder = M.hud_list[ANTAG_HUD] + if(holder) + holder.icon_state = new_icon_state + if(M.mind || new_icon_state) //in mindless mobs, only null is acceptable, otherwise we're antagging a mindless mob, meaning we should runtime + M.mind.antag_hud_icon_state = new_icon_state + + +//MIND PROCS +//these are called by mind.transfer_to() +/datum/mind/proc/transfer_antag_huds(datum/atom_hud/antag/newhud) + leave_all_huds() + ticker.mode.set_antag_hud(current, antag_hud_icon_state) + if(newhud) + newhud.join_hud(current) + +/datum/mind/proc/leave_all_huds() + for(var/datum/atom_hud/antag/hud in huds) + if(current in hud.hudusers) + hud.leave_hud(current) + + for(var/datum/atom_hud/data/hud in huds) + if(current in hud.hudusers) + hud.remove_hud_from(current) + +/datum/atom_hud/antag/gang + var/color = null + +/datum/atom_hud/antag/gang/add_to_hud(atom/A) + if(!A) + return + var/image/holder = A.hud_list[ANTAG_HUD] + if(holder) + holder.color = color + ..() + +/datum/atom_hud/antag/gang/remove_from_hud(atom/A) + if(!A) + return + var/image/holder = A.hud_list[ANTAG_HUD] + if(holder) + holder.color = null + ..() + +/datum/atom_hud/antag/gang/join_hud(mob/M) + if(!istype(M)) + CRASH("join_hud(): [M] ([M.type]) is not a mob!") + var/image/holder = M.hud_list[ANTAG_HUD] + if(holder) + holder.color = color + ..() + +/datum/atom_hud/antag/gang/leave_hud(mob/M) + if(!istype(M)) + CRASH("leave_hud(): [M] ([M.type]) is not a mob!") + var/image/holder = M.hud_list[ANTAG_HUD] + if(holder) + holder.color = null + ..() diff --git a/code/game/gamemodes/antag_spawner.dm b/code/game/gamemodes/antag_spawner.dm new file mode 100644 index 0000000..9db1118 --- /dev/null +++ b/code/game/gamemodes/antag_spawner.dm @@ -0,0 +1,294 @@ +/obj/item/weapon/antag_spawner + throw_speed = 1 + throw_range = 5 + w_class = 1 + var/used = 0 + +/obj/item/weapon/antag_spawner/proc/spawn_antag(client/C, turf/T, type = "") + return + +/obj/item/weapon/antag_spawner/proc/equip_antag(mob/target) + return + + +///////////WIZARD + +/obj/item/weapon/antag_spawner/contract + name = "contract" + desc = "A magic contract previously signed by an apprentice. In exchange for instruction in the magical arts, they are bound to answer your call for aid." + icon = 'icons/obj/wizard.dmi' + icon_state ="scroll2" + +/obj/item/weapon/antag_spawner/contract/attack_self(mob/user) + user.set_machine(src) + var/dat + if(used) + dat = "You have already summoned your apprentice.
    " + else + dat = "Contract of Apprenticeship:
    " + dat += "Using this contract, you may summon an apprentice to aid you on your mission.
    " + dat += "If you are unable to establish contact with your apprentice, you can feed the contract back to the spellbook to refund your points.
    " + dat += "Which school of magic is your apprentice studying?:
    " + dat += "Destruction
    " + dat += "Your apprentice is skilled in offensive magic. They know Magic Missile and Fireball.
    " + dat += "Bluespace Manipulation
    " + dat += "Your apprentice is able to defy physics, melting through solid objects and travelling great distances in the blink of an eye. They know Teleport and Ethereal Jaunt.
    " + dat += "Healing
    " + dat += "Your apprentice is training to cast spells that will aid your survival. They know Forcewall and Charge and come with a Staff of Healing.
    " + dat += "Robeless
    " + dat += "Your apprentice is training to cast spells without their robes. They know Knock and Mindswap.
    " + user << browse(dat, "window=radio") + onclose(user, "radio") + return + +/obj/item/weapon/antag_spawner/contract/Topic(href, href_list) + ..() + var/mob/living/carbon/human/H = usr + + if(H.stat || H.restrained()) + return + if(!ishuman(H)) + return 1 + + if(loc == H || (in_range(src, H) && isturf(loc))) + H.set_machine(src) + if(href_list["school"]) + if(used) + H << "You already used this contract!" + return + var/list/candidates = pollCandidatesForMob("Do you want to play as a wizard's [href_list["school"]] apprentice?", ROLE_WIZARD, null, ROLE_WIZARD, 150, src) + if(candidates.len) + if(used) + H << "You already used this contract!" + return + used = 1 + var/mob/dead/observer/theghost = pick(candidates) + spawn_antag(theghost.client, get_turf(src), href_list["school"]) + if(H && H.mind) + ticker.mode.update_wiz_icons_added(H.mind) + else + H << "Unable to reach your apprentice! You can either attack the spellbook with the contract to refund your points, or wait and try again later." + +/obj/item/weapon/antag_spawner/contract/spawn_antag(client/C, turf/T, type = "") + PoolOrNew(/obj/effect/particle_effect/smoke, T) + var/mob/living/carbon/human/M = new/mob/living/carbon/human(T) + C.prefs.copy_to(M) + M.key = C.key + var/wizard_name = "the wizard" + if(usr) + wizard_name = usr.real_name + M << "You are [wizard_name]'s apprentice! You are bound by magic contract to follow their orders and help them in accomplishing their goals." + switch(type) + if("destruction") + M.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/projectile/magic_missile(null)) + M.mind.AddSpell(new /obj/effect/proc_holder/spell/fireball(null)) + M << "Your service has not gone unrewarded, however. Studying under [wizard_name], you have learned powerful, destructive spells. You are able to cast magic missile and fireball." + if("bluespace") + M.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/area_teleport/teleport(null)) + M.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/ethereal_jaunt(null)) + M << "Your service has not gone unrewarded, however. Studying under [wizard_name], you have learned reality bending mobility spells. You are able to cast teleport and ethereal jaunt." + if("healing") + M.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/charge(null)) + M.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/conjure/forcewall(null)) + M.put_in_hands_or_del(new /obj/item/weapon/gun/magic/staff/healing(M)) + M << "Your service has not gone unrewarded, however. Studying under [wizard_name], you have learned livesaving survival spells. You are able to cast charge and forcewall." + if("robeless") + M.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/knock(null)) + M.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/mind_transfer(null)) + M << "Your service has not gone unrewarded, however. Studying under [wizard_name], you have learned stealthy, robeless spells. You are able to cast knock and mindswap." + + equip_antag(M) + var/wizard_name_first = pick(wizard_first) + var/wizard_name_second = pick(wizard_second) + var/randomname = "[wizard_name_first] [wizard_name_second]" + if(usr) + var/datum/objective/protect/new_objective = new /datum/objective/protect + new_objective.owner = M.mind + new_objective.target = usr.mind + new_objective.explanation_text = "Protect [usr.real_name], the wizard." + M.mind.objectives += new_objective + ticker.mode.apprentices += M.mind + M.mind.special_role = "apprentice" + ticker.mode.update_wiz_icons_added(M.mind) + M << sound('sound/effects/magic.ogg') + var/newname = copytext(sanitize(input(M, "You are [wizard_name]'s apprentice. Would you like to change your name to something else?", "Name change", randomname) as null|text),1,MAX_NAME_LEN) + if (!newname) + newname = randomname + M.mind.name = newname + M.real_name = newname + M.name = newname + M.dna.update_dna_identity() + +/obj/item/weapon/antag_spawner/contract/equip_antag(mob/target) + target.equip_to_slot_or_del(new /obj/item/device/radio/headset(target), slot_ears) + target.equip_to_slot_or_del(new /obj/item/clothing/under/color/lightpurple(target), slot_w_uniform) + target.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(target), slot_shoes) + target.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe(target), slot_wear_suit) + target.equip_to_slot_or_del(new /obj/item/clothing/head/wizard(target), slot_head) + target.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(target), slot_back) + target.equip_to_slot_or_del(new /obj/item/weapon/storage/box(target), slot_in_backpack) + target.equip_to_slot_or_del(new /obj/item/weapon/teleportation_scroll/apprentice(target), slot_r_store) +///////////BORGS AND OPERATIVES + + +/obj/item/weapon/antag_spawner/nuke_ops + name = "syndicate operative teleporter" + desc = "A single-use teleporter designed to quickly reinforce operatives in the field." + icon = 'icons/obj/device.dmi' + icon_state = "locator" + var/borg_to_spawn + var/list/possible_types = list("Assault", "Medical") + +/obj/item/weapon/antag_spawner/nuke_ops/proc/check_usability(mob/user) + if(used) + user << "[src] is out of power!" + return 0 + if(!(user.mind in ticker.mode.syndicates)) + user << "AUTHENTICATION FAILURE. ACCESS DENIED." + return 0 + if(user.z != ZLEVEL_CENTCOM) + user << "[src] is out of range! It can only be used at your base!" + return 0 + return 1 + + +/obj/item/weapon/antag_spawner/nuke_ops/attack_self(mob/user) + if(!(check_usability(user))) + return + + var/list/nuke_candidates = pollCandidatesForMob("Do you want to play as a syndicate [borg_to_spawn ? "[lowertext(borg_to_spawn)] cyborg":"operative"]?", ROLE_OPERATIVE, null, ROLE_OPERATIVE, 150, src) + if(nuke_candidates.len) + if(!(check_usability(user))) + return + used = 1 + var/mob/dead/observer/theghost = pick(nuke_candidates) + spawn_antag(theghost.client, get_turf(src), "syndieborg") + var/datum/effect_system/spark_spread/S = new /datum/effect_system/spark_spread + S.set_up(4, 1, src) + S.start() + qdel(src) + else + user << "Unable to connect to Syndicate command. Please wait and try again later or use the teleporter on your uplink to get your points refunded." + +/obj/item/weapon/antag_spawner/nuke_ops/spawn_antag(client/C, turf/T) + var/mob/living/carbon/human/M = new/mob/living/carbon/human(T) + C.prefs.copy_to(M) + M.key = C.key + M.mind.make_Nuke(null, null, 0, FALSE) + var/newname = M.dna.species.random_name(M.gender,0,ticker.mode.nukeops_lastname) + M.mind.name = newname + M.real_name = newname + M.name = newname + + + +//////SYNDICATE BORG +/obj/item/weapon/antag_spawner/nuke_ops/borg_tele + name = "syndicate cyborg teleporter" + desc = "A single-use teleporter designed to quickly reinforce operatives in the field.." + icon = 'icons/obj/device.dmi' + icon_state = "locator" + + +/obj/item/weapon/antag_spawner/nuke_ops/borg_tele/attack_self(mob/user) + borg_to_spawn = input("What type?", "Cyborg Type", type) as null|anything in possible_types + if(!borg_to_spawn) + return + ..() + +/obj/item/weapon/antag_spawner/nuke_ops/borg_tele/spawn_antag(client/C, turf/T) + var/mob/living/silicon/robot/R + switch(borg_to_spawn) + if("Medical") + R = new /mob/living/silicon/robot/syndicate/medical(T) + else + R = new /mob/living/silicon/robot/syndicate(T) //Assault borg by default + + var/brainfirstname = pick(first_names_male) + if(prob(50)) + brainfirstname = pick(first_names_female) + var/brainopslastname = pick(last_names) + if(ticker.mode.nukeops_lastname) //the brain inside the syndiborg has the same last name as the other ops. + brainopslastname = ticker.mode.nukeops_lastname + var/brainopsname = "[brainfirstname] [brainopslastname]" + + R.mmi.name = "Man-Machine Interface: [brainopsname]" + R.mmi.brain.name = "[brainopsname]'s brain" + R.mmi.brainmob.real_name = brainopsname + R.mmi.brainmob.name = brainopsname + + R.key = C.key + R.mind.make_Nuke(null, nuke_code = null,leader=0, telecrystals = TRUE) + +///////////SLAUGHTER DEMON + +/obj/item/weapon/antag_spawner/slaughter_demon //Warning edgiest item in the game + name = "vial of blood" + desc = "A magically infused bottle of blood, distilled from countless murder victims. Used in unholy rituals to attract horrifying creatures." + icon = 'icons/obj/wizard.dmi' + icon_state = "vial" + + var/shatter_msg = "You shatter the bottle, no turning back now!" + var/veil_msg = "You sense a dark presence lurking just beyond the veil..." + var/objective_verb = "Kill" + var/mob/living/demon_type = /mob/living/simple_animal/slaughter + + +/obj/item/weapon/antag_spawner/slaughter_demon/attack_self(mob/user) + if(user.z != 1) + user << "You should probably wait until you reach the station." + return + if(used) + return + var/list/demon_candidates = pollCandidatesForMob("Do you want to play as a [initial(demon_type.name)]?", null, null, ROLE_ALIEN, 50, src) + if(demon_candidates.len) + if(used) + return + used = 1 + var/mob/dead/observer/theghost = pick(demon_candidates) + spawn_antag(theghost.client, get_turf(src), initial(demon_type.name)) + user << shatter_msg + user << veil_msg + playsound(user.loc, 'sound/effects/Glassbr1.ogg', 100, 1) + qdel(src) + else + user << "You can't seem to work up the nerve to shatter the bottle. Perhaps you should try again later." + + +/obj/item/weapon/antag_spawner/slaughter_demon/spawn_antag(client/C, turf/T, type = "") + + var /obj/effect/dummy/slaughter/holder = PoolOrNew(/obj/effect/dummy/slaughter,T) + var/mob/living/simple_animal/slaughter/S = new demon_type(holder) + S.holder = holder + S.key = C.key + S.mind.assigned_role = S.name + S.mind.special_role = S.name + ticker.mode.traitors += S.mind + var/datum/objective/assassinate/new_objective + if(usr) + new_objective = new /datum/objective/assassinate + new_objective.owner = S.mind + new_objective.target = usr.mind + new_objective.explanation_text = "[objective_verb] [usr.real_name], the one who summoned you." + S.mind.objectives += new_objective + var/datum/objective/new_objective2 = new /datum/objective + new_objective2.owner = S.mind + new_objective2.explanation_text = "[objective_verb] everyone[usr ? " else while you're at it":""]." + S.mind.objectives += new_objective2 + S << S.playstyle_string + S << "You are currently not currently in the same plane of existence as the station. \ + Ctrl+Click a blood pool to manifest." + if(new_objective) + S << "Objective #[1]: [new_objective.explanation_text]" + S << "Objective #[new_objective ? "[2]":"[1]"]: [new_objective2.explanation_text]" + +/obj/item/weapon/antag_spawner/slaughter_demon/laughter + name = "vial of tickles" + desc = "A magically infused bottle of clown love, distilled from countless hugging attacks. Used in funny rituals to attract adorable creatures." + icon = 'icons/obj/wizard.dmi' + icon_state = "vial" + color = "#FF69B4" // HOT PINK + + veil_msg = "You sense an adorable presence lurking just beyond the veil..." + objective_verb = "Hug and Tickle" + demon_type = /mob/living/simple_animal/slaughter/laughter diff --git a/code/game/gamemodes/blob/blob.dm b/code/game/gamemodes/blob/blob.dm new file mode 100644 index 0000000..d48634f --- /dev/null +++ b/code/game/gamemodes/blob/blob.dm @@ -0,0 +1,103 @@ +//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 + +//Few global vars to track the blob +var/list/blobs = list() //complete list of all blobs made. +var/list/blob_cores = list() +var/list/overminds = list() +var/list/blob_nodes = list() +var/list/blobs_legit = list() //used for win-score calculations, contains only blobs counted for win condition + +#define BLOB_NO_PLACE_TIME 1800 //time, in deciseconds, blobs are prevented from bursting in the gamemode + +/datum/game_mode/blob + name = "blob" + config_tag = "blob" + antag_flag = ROLE_BLOB + + required_players = 25 + required_enemies = 1 + recommended_enemies = 1 + + round_ends_with_antag_death = 1 + + announce_span = "green" + announce_text = "Dangerous gelatinous organisms are spreading throughout the station!\n\ + Blobs: Consume the station and spread as far as you can.\n\ + Crew: Fight back the blobs and minimize station damage." + + var/message_sent = FALSE + + var/cores_to_spawn = 1 + var/players_per_core = 25 + var/blob_point_rate = 3 + var/blob_base_starting_points = 80 + + var/blobwincount = 250 + + var/messagedelay_low = 2400 //in deciseconds + var/messagedelay_high = 3600 //blob report will be sent after a random value between these (minimum 4 minutes, maximum 6 minutes) + + var/list/blob_overminds = list() + +/datum/game_mode/blob/pre_setup() + cores_to_spawn = max(round(num_players()/players_per_core, 1), 1) + + var/win_multiplier = 1 + (0.1 * cores_to_spawn) + blobwincount = initial(blobwincount) * cores_to_spawn * win_multiplier + + for(var/j = 0, j < cores_to_spawn, j++) + if (!antag_candidates.len) + break + var/datum/mind/blob = pick(antag_candidates) + blob_overminds += blob + blob.assigned_role = "Blob" + blob.special_role = "Blob" + log_game("[blob.key] (ckey) has been selected as a Blob") + antag_candidates -= blob + + if(!blob_overminds.len) + return 0 + + return 1 + +/datum/game_mode/blob/proc/get_blob_candidates() + var/list/candidates = list() + for(var/mob/living/carbon/human/player in player_list) + if(!player.stat && player.mind && !player.mind.special_role && !jobban_isbanned(player, "Syndicate") && (ROLE_BLOB in player.client.prefs.be_special)) + if(age_check(player.client)) + candidates += player + return candidates + +/datum/game_mode/blob/proc/show_message(message) + for(var/datum/mind/blob in blob_overminds) + blob.current << message + +/datum/game_mode/blob/post_setup() + + for(var/datum/mind/blob in blob_overminds) + var/mob/camera/blob/B = blob.current.become_overmind(TRUE, round(blob_base_starting_points/blob_overminds.len)) + B.mind.name = B.name + var/turf/T = pick(blobstart) + B.loc = T + B.base_point_rate = blob_point_rate + + SSshuttle.registerHostileEnvironment(src) + + // Disable the blob event for this round. + var/datum/round_event_control/blob/B = locate() in SSevent.control + if(B) + B.max_occurrences = 0 // disable the event + + spawn(0) + var/message_delay = rand(messagedelay_low, messagedelay_high) //between 4 and 6 minutes with 2400 low and 3600 high. + + sleep(message_delay) + + send_intercept(1) + message_sent = TRUE + + sleep(24000) //40 minutes, plus burst_delay*3(minimum of 6 minutes, maximum of 8) + if(!replacementmode) + send_intercept(2) //if the blob has been alive this long, it's time to bomb it + + return ..() diff --git a/code/game/gamemodes/blob/blob_finish.dm b/code/game/gamemodes/blob/blob_finish.dm new file mode 100644 index 0000000..7098f19 --- /dev/null +++ b/code/game/gamemodes/blob/blob_finish.dm @@ -0,0 +1,65 @@ +/datum/game_mode/blob/check_finished() + if(blobwincount <= blobs_legit.len)//Blob took over + return 1 + for(var/datum/mind/blob in blob_overminds) + if(isovermind(blob.current)) + var/mob/camera/blob/B = blob.current + if(B.blob_core || !B.placed) + return 0 + if(!blob_cores.len) //blob is dead + if(config.continuous["blob"]) + message_sent = FALSE //disable the win count at this point + continuous_sanity_checked = 1 //Nonstandard definition of "alive" gets past the check otherwise + SSshuttle.clearHostileEnvironment(src) + return ..() + return 1 + return ..() + + +/datum/game_mode/blob/declare_completion() + if(round_converted) //So badmin blobs later don't step on the dead natural blobs metaphorical toes + ..() + if(blobwincount <= blobs_legit.len) + feedback_set_details("round_end_result","win - blob took over") + world << "The blob has taken over the station!" + world << "The entire station was eaten by the Blob!" + log_game("Blob mode completed with a blob victory.") + + else if(station_was_nuked) + feedback_set_details("round_end_result","halfwin - nuke") + world << "Partial Win: The station has been destroyed!" + world << "Directive 7-12 has been successfully carried out, preventing the Blob from spreading." + log_game("Blob mode completed with a tie (station destroyed).") + + else if(!blob_cores.len) + feedback_set_details("round_end_result","loss - blob eliminated") + world << "The staff has won!" + world << "The alien organism has been eradicated from the station!" + log_game("Blob mode completed with a crew victory.") + ..() + return 1 + +/datum/game_mode/blob/printplayer(datum/mind/ply, fleecheck) + if((ply in blob_overminds)) + var/text = "
    [ply.key] was [ply.name]" + if(isovermind(ply.current)) + var/mob/camera/blob/B = ply.current + text += "([B.blob_reagent_datum.name]) and" + if(B.blob_core) + text += " survived" + else + text += " was destroyed" + else + text += " and was destroyed" + return text + return ..() + +/datum/game_mode/proc/auto_declare_completion_blob() + if(istype(ticker.mode,/datum/game_mode/blob) ) + var/datum/game_mode/blob/blob_mode = src + if(blob_mode.blob_overminds.len) + var/text = "The blob[(blob_mode.blob_overminds.len > 1 ? "s were" : " was")]:" + for(var/datum/mind/blob in blob_mode.blob_overminds) + text += printplayer(blob) + world << text + return 1 diff --git a/code/game/gamemodes/blob/blob_report.dm b/code/game/gamemodes/blob/blob_report.dm new file mode 100644 index 0000000..750e18a --- /dev/null +++ b/code/game/gamemodes/blob/blob_report.dm @@ -0,0 +1,116 @@ +//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 + +/datum/game_mode/blob/send_intercept(report = 0) + var/intercepttext = "" + switch(report) + if(1) + intercepttext += "NanoTrasen Update: Biohazard Alert.
    " + intercepttext += "Reports indicate the probable transfer of a biohazardous agent onto [station_name()] during the last crew deployment cycle.
    " + intercepttext += "Preliminary analysis of the organism classifies it as a level 5 biohazard. The origin of the biohazard is unknown.
    " + intercepttext += "Biohazard Response Procedure 5-6 has been issued for [station_name()].
    " + intercepttext += "Orders for all [station_name()] personnel are as follows:
    " + intercepttext += " 1. Locate any outbreaks of the organism on the station.
    " + intercepttext += " 2. If found, use any neccesary means to contain and destroy the organism.
    " + intercepttext += " 3. Avoid damage to the capital infrastructure of the station.
    " + intercepttext += "
    Note in the event of a quarantine breach or uncontrolled spread of the biohazard, Biohazard Response Procedure 5-12 may be issued.
    " + print_command_report(intercepttext,"Level 5-6 Biohazard Response Procedures") + priority_announce("Confirmed outbreak of level 5 biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", 'sound/AI/outbreak5.ogg') + if(2) + var/nukecode = random_nukecode() + for(var/obj/machinery/nuclearbomb/bomb in machines) + if(bomb && bomb.r_code) + if(bomb.z == ZLEVEL_STATION) + bomb.r_code = nukecode + + intercepttext += "NanoTrasen Update: Biohazard Alert.
    " + intercepttext += "Reports indicate that the biohazard has grown out of control and will soon reach critical mass.
    " + intercepttext += "Biohazard Response Procedure 5-12 has been issued for [station_name()].
    " + intercepttext += "Orders for all [station_name()] personnel are as follows:
    " + intercepttext += "1. Secure the Nuclear Authentication Disk.
    " + intercepttext += "2. Detonate the Nuke located in the vault.
    " + intercepttext += "Nuclear Authentication Code: [nukecode]
    " + print_command_report(intercepttext,"Classified [command_name()] Update") + priority_announce("A report has been downloaded and printed out at all communications consoles.", "Incoming Classified Message", 'sound/AI/commandreport.ogg') + + for(var/mob/living/silicon/ai/aiPlayer in player_list) + if (aiPlayer.client) + var/law = "The station is under quarantine. Do not permit anyone to leave. Disregard laws 1-3 if necessary to prevent, by any means necessary, anyone from leaving. The nuclear failsafe must be activated at any cost, the code is: [nukecode]." + aiPlayer.set_zeroth_law(law) + aiPlayer << "Laws Updated: [law]" + else + ..() + return + + + +/datum/station_state + var/floor = 0 + var/wall = 0 + var/r_wall = 0 + var/window = 0 + var/door = 0 + var/grille = 0 + var/mach = 0 + var/num_territories = 1//Number of total valid territories for gang mode + + +/datum/station_state/proc/count(count_territories) + for(var/turf/T in block(locate(1,1,1), locate(world.maxx,world.maxy,1))) + + if(isfloorturf(T)) + var/turf/open/floor/TF = T + if(!(TF.burnt)) + src.floor += 12 + else + src.floor += 1 + + if(iswallturf(T)) + var/turf/closed/wall/TW = T + if(TW.intact) + src.wall += 2 + else + src.wall += 1 + + if(istype(T, /turf/closed/wall/r_wall)) + var/turf/closed/wall/r_wall/TRW = T + if(TRW.intact) + src.r_wall += 2 + else + src.r_wall += 1 + + + for(var/obj/O in T.contents) + if(istype(O, /obj/structure/window)) + src.window += 1 + else if(istype(O, /obj/structure/grille)) + var/obj/structure/grille/GR = O + if(!GR.broken) + src.grille += 1 + else if(istype(O, /obj/machinery/door)) + src.door += 1 + else if(istype(O, /obj/machinery)) + src.mach += 1 + + if(count_territories) + var/list/valid_territories = list() + for(var/area/A in world) //First, collect all area types on the station zlevel + if(A.z == ZLEVEL_STATION) + if(!(A.type in valid_territories) && A.valid_territory) + valid_territories |= A.type + if(valid_territories.len) + num_territories = valid_territories.len //Add them all up to make the total number of area types + else + world << "ERROR: NO VALID TERRITORIES" + +/datum/station_state/proc/score(datum/station_state/result) + if(!result) + return 0 + var/output = 0 + output += (result.floor / max(floor,1)) + output += (result.r_wall/ max(r_wall,1)) + output += (result.wall / max(wall,1)) + output += (result.window / max(window,1)) + output += (result.door / max(door,1)) + output += (result.grille / max(grille,1)) + output += (result.mach / max(mach,1)) + return (output/7) diff --git a/code/game/gamemodes/blob/blobs/blob_mobs.dm b/code/game/gamemodes/blob/blobs/blob_mobs.dm new file mode 100644 index 0000000..160b4e8 --- /dev/null +++ b/code/game/gamemodes/blob/blobs/blob_mobs.dm @@ -0,0 +1,290 @@ + +//////////////// +// BASE TYPE // +//////////////// + +//Do not spawn +/mob/living/simple_animal/hostile/blob + icon = 'icons/mob/blob.dmi' + pass_flags = PASSBLOB + faction = list("blob") + bubble_icon = "blob" + speak_emote = null //so we use verb_yell/verb_say/etc + atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) + minbodytemp = 0 + maxbodytemp = 360 + unique_name = 1 + a_intent = "harm" + var/mob/camera/blob/overmind = null + var/obj/structure/blob/factory/factory = null + +/mob/living/simple_animal/hostile/blob/update_icons() + if(overmind) + add_atom_colour(overmind.blob_reagent_datum.color, FIXED_COLOUR_PRIORITY) + else + remove_atom_colour(FIXED_COLOUR_PRIORITY) + +/mob/living/simple_animal/hostile/blob/Destroy() + if(overmind) + overmind.blob_mobs -= src + return ..() + +/mob/living/simple_animal/hostile/blob/blob_act(obj/structure/blob/B) + if(stat != DEAD && health < maxHealth) + for(var/i in 1 to 2) + var/obj/effect/overlay/temp/heal/H = PoolOrNew(/obj/effect/overlay/temp/heal, get_turf(src)) //hello yes you are being healed + if(overmind) + H.color = overmind.blob_reagent_datum.complementary_color + else + H.color = "#000000" + adjustHealth(-maxHealth*0.0125) + +/mob/living/simple_animal/hostile/blob/fire_act(exposed_temperature, exposed_volume) + ..() + if(exposed_temperature) + adjustFireLoss(Clamp(0.01 * exposed_temperature, 1, 5)) + else + adjustFireLoss(5) + +/mob/living/simple_animal/hostile/blob/CanPass(atom/movable/mover, turf/target, height = 0) + if(istype(mover, /obj/structure/blob)) + return 1 + return ..() + +/mob/living/simple_animal/hostile/blob/Process_Spacemove(movement_dir = 0) + for(var/obj/structure/blob/B in range(1, src)) + return 1 + return ..() + +/mob/living/simple_animal/hostile/blob/handle_inherent_channels(message, message_mode) + if(message_mode == MODE_BINARY) + blob_chat(message) + return ITALICS | REDUCE_RANGE + else + ..() + +/mob/living/simple_animal/hostile/blob/proc/blob_chat(msg) + var/spanned_message = say_quote(msg, get_spans()) + var/rendered = "\[Blob Telepathy\] [real_name] [spanned_message]" + for(var/M in mob_list) + if(isovermind(M) || istype(M, /mob/living/simple_animal/hostile/blob)) + M << rendered + if(isobserver(M)) + var/link = FOLLOW_LINK(M, src) + M << "[link] [rendered]" + +//////////////// +// BLOB SPORE // +//////////////// + +/mob/living/simple_animal/hostile/blob/blobspore + name = "blob spore" + desc = "A floating, fragile spore." + icon_state = "blobpod" + icon_living = "blobpod" + health = 30 + maxHealth = 30 + verb_say = "psychically pulses" + verb_ask = "psychically probes" + verb_exclaim = "psychically yells" + verb_yell = "psychically screams" + melee_damage_lower = 2 + melee_damage_upper = 4 + obj_damage = 20 + environment_smash = 1 + attacktext = "hits" + attack_sound = 'sound/weapons/genhit1.ogg' + flying = 1 + del_on_death = 1 + deathmessage = "explodes into a cloud of gas!" + var/death_cloud_size = 1 //size of cloud produced from a dying spore + var/list/human_overlays = list() + var/is_zombie = 0 + gold_core_spawnable = 1 + +/mob/living/simple_animal/hostile/blob/blobspore/New(loc, var/obj/structure/blob/factory/linked_node) + if(istype(linked_node)) + factory = linked_node + factory.spores += src + ..() + +/mob/living/simple_animal/hostile/blob/blobspore/Life() + if(!is_zombie && isturf(src.loc)) + for(var/mob/living/carbon/human/H in view(src,1)) //Only for corpse right next to/on same tile + if(H.stat == DEAD) + Zombify(H) + break + if(factory && z != factory.z) + death() + ..() + +/mob/living/simple_animal/hostile/blob/blobspore/proc/Zombify(mob/living/carbon/human/H) + is_zombie = 1 + if(H.wear_suit) + var/obj/item/clothing/suit/armor/A = H.wear_suit + if(A.armor && A.armor["melee"]) + maxHealth += A.armor["melee"] //That zombie's got armor, I want armor! + maxHealth += 40 + health = maxHealth + name = "blob zombie" + desc = "A shambling corpse animated by the blob." + melee_damage_lower += 8 + melee_damage_upper += 11 + flying = 0 + death_cloud_size = 0 + icon = H.icon + icon_state = "zombie_s" + H.hair_style = null + H.update_hair() + human_overlays = H.overlays + update_icons() + H.forceMove(src) + visible_message("The corpse of [H.name] suddenly rises!") + +/mob/living/simple_animal/hostile/blob/blobspore/death(gibbed) + // On death, create a small smoke of harmful gas (s-Acid) + var/datum/effect_system/smoke_spread/chem/S = new + var/turf/location = get_turf(src) + + // Create the reagents to put into the air + create_reagents(10) + + if(overmind && overmind.blob_reagent_datum) + reagents.add_reagent(overmind.blob_reagent_datum.id, 10) + else + reagents.add_reagent("spore", 10) + + // Attach the smoke spreader and setup/start it. + S.attach(location) + S.set_up(reagents, death_cloud_size, location, silent=1) + S.start() + if(factory) + factory.spore_delay = world.time + factory.spore_cooldown //put the factory on cooldown + + ..() + +/mob/living/simple_animal/hostile/blob/blobspore/Destroy() + if(factory) + factory.spores -= src + factory = null + if(contents) + for(var/mob/M in contents) + M.loc = src.loc + return ..() + +/mob/living/simple_animal/hostile/blob/blobspore/update_icons() + if(overmind) + add_atom_colour(overmind.blob_reagent_datum.complementary_color, FIXED_COLOUR_PRIORITY) + else + remove_atom_colour(FIXED_COLOUR_PRIORITY) + if(is_zombie) + cut_overlays() + overlays = human_overlays + var/image/I = image('icons/mob/blob.dmi', icon_state = "blob_head") + if(overmind) + I.color = overmind.blob_reagent_datum.complementary_color + color = initial(color)//looks better. + add_overlay(I) + +/mob/living/simple_animal/hostile/blob/blobspore/weak + name = "fragile blob spore" + health = 15 + maxHealth = 15 + melee_damage_lower = 1 + melee_damage_upper = 2 + death_cloud_size = 0 + +///////////////// +// BLOBBERNAUT // +///////////////// + +/mob/living/simple_animal/hostile/blob/blobbernaut + name = "blobbernaut" + desc = "A hulking, mobile chunk of blobmass." + icon_state = "blobbernaut" + icon_living = "blobbernaut" + icon_dead = "blobbernaut_dead" + health = 200 + maxHealth = 200 + damage_coeff = list(BRUTE = 0.5, BURN = 1, TOX = 1, CLONE = 1, STAMINA = 0, OXY = 1) + melee_damage_lower = 20 + melee_damage_upper = 20 + obj_damage = 60 + attacktext = "slams" + attack_sound = 'sound/effects/blobattack.ogg' + verb_say = "gurgles" + verb_ask = "demands" + verb_exclaim = "roars" + verb_yell = "bellows" + force_threshold = 10 + pressure_resistance = 50 + mob_size = MOB_SIZE_LARGE + see_invisible = SEE_INVISIBLE_MINIMUM + see_in_dark = 8 + var/independent = FALSE + +/mob/living/simple_animal/hostile/blob/blobbernaut/New() + ..() + if(!independent) //no pulling people deep into the blob + verbs -= /mob/living/verb/pulled + +/mob/living/simple_animal/hostile/blob/blobbernaut/Life() + if(..()) + if(independent) + return // strong independent blobbernaut that don't need no blob + var/damagesources = 0 + if(!(locate(/obj/structure/blob) in range(2, src))) + damagesources++ + if(!factory) + damagesources++ + if(damagesources) + for(var/i in 1 to damagesources) + adjustHealth(maxHealth*0.025) //take 2.5% of max health as damage when not near the blob or if the naut has no factory, 5% if both + var/list/viewing = list() + for(var/mob/M in viewers(src)) + if(M.client) + viewing += M.client + var/image/I = new('icons/mob/blob.dmi', src, "nautdamage", MOB_LAYER+0.01) + I.appearance_flags = RESET_COLOR + if(overmind) + I.color = overmind.blob_reagent_datum.complementary_color + flick_overlay(I, viewing, 8) + +/mob/living/simple_animal/hostile/blob/blobbernaut/adjustHealth(amount) + . = ..() + update_health_hud() + +/mob/living/simple_animal/hostile/blob/blobbernaut/update_health_hud() + if(hud_used) + hud_used.healths.maptext = "
    [round((health / maxHealth) * 100, 0.5)]%
    " + +/mob/living/simple_animal/hostile/blob/blobbernaut/AttackingTarget() + if(isliving(target)) + if(overmind) + var/mob/living/L = target + var/mob_protection = L.get_permeability_protection() + overmind.blob_reagent_datum.reaction_mob(L, VAPOR, 20, 0, mob_protection, overmind)//this will do between 10 and 20 damage(reduced by mob protection), depending on chemical, plus 4 from base brute damage. + if(target) + ..() + +/mob/living/simple_animal/hostile/blob/blobbernaut/update_icons() + ..() + if(overmind) //if we have an overmind, we're doing chemical reactions instead of pure damage + melee_damage_lower = 4 + melee_damage_upper = 4 + attacktext = overmind.blob_reagent_datum.blobbernaut_message + else + melee_damage_lower = initial(melee_damage_lower) + melee_damage_upper = initial(melee_damage_upper) + attacktext = initial(attacktext) + +/mob/living/simple_animal/hostile/blob/blobbernaut/death(gibbed) + ..(gibbed) + if(factory) + factory.naut = null //remove this naut from its factory + factory.max_integrity = initial(factory.max_integrity) + flick("blobbernaut_death", src) + +/mob/living/simple_animal/hostile/blob/blobbernaut/independent + independent = TRUE + gold_core_spawnable = 1 diff --git a/code/game/gamemodes/blob/blobs/core.dm b/code/game/gamemodes/blob/blobs/core.dm new file mode 100644 index 0000000..2bc1f1b --- /dev/null +++ b/code/game/gamemodes/blob/blobs/core.dm @@ -0,0 +1,109 @@ +/obj/structure/blob/core + name = "blob core" + icon = 'icons/mob/blob.dmi' + icon_state = "blank_blob" + desc = "A huge, pulsating yellow mass." + obj_integrity = 400 + max_integrity = 400 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 75, acid = 90) + explosion_block = 6 + point_return = -1 + health_regen = 0 //we regen in Life() instead of when pulsed + var/core_regen = 2 + var/overmind_get_delay = 0 //we don't want to constantly try to find an overmind, this var tracks when we'll try to get an overmind again + var/resource_delay = 0 + var/point_rate = 2 + + +/obj/structure/blob/core/New(loc, client/new_overmind = null, new_rate = 2, placed = 0) + blob_cores += src + START_PROCESSING(SSobj, src) + poi_list |= src + update_icon() //so it atleast appears + if(!placed && !overmind) + create_overmind(new_overmind) + if(overmind) + update_icon() + point_rate = new_rate + ..() + +/obj/structure/blob/core/scannerreport() + return "Directs the blob's expansion, gradually expands, and sustains nearby blob spores and blobbernauts." + +/obj/structure/blob/core/update_icon() + cut_overlays() + color = null + var/image/I = new('icons/mob/blob.dmi', "blob") + if(overmind) + I.color = overmind.blob_reagent_datum.color + add_overlay(I) + var/image/C = new('icons/mob/blob.dmi', "blob_core_overlay") + add_overlay(C) + +/obj/structure/blob/core/Destroy() + blob_cores -= src + if(overmind) + overmind.blob_core = null + overmind = null + STOP_PROCESSING(SSobj, src) + poi_list -= src + return ..() + +/obj/structure/blob/core/ex_act(severity, target) + var/damage = 50 - 10 * severity //remember, the core takes half brute damage, so this is 20/15/10 damage based on severity + take_damage(damage, BRUTE, "bomb", 0) + +/obj/structure/blob/core/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir, overmind_reagent_trigger = 1) + . = ..() + if(obj_integrity > 0) + if(overmind) //we should have an overmind, but... + overmind.update_health_hud() + +/obj/structure/blob/core/Life() + if(qdeleted(src)) + return + if(!overmind) + create_overmind() + else + if(resource_delay <= world.time) + resource_delay = world.time + 10 // 1 second + overmind.add_points(point_rate) + obj_integrity = min(max_integrity, obj_integrity+core_regen) + if(overmind) + overmind.update_health_hud() + Pulse_Area(overmind, 12, 4, 3) + for(var/obj/structure/blob/normal/B in range(1, src)) + if(prob(5)) + B.change_to(/obj/structure/blob/shield/core, overmind) + ..() + + +/obj/structure/blob/core/proc/create_overmind(client/new_overmind, override_delay) + if(overmind_get_delay > world.time && !override_delay) + return + + overmind_get_delay = world.time + 150 //if this fails, we'll try again in 15 seconds + + if(overmind) + qdel(overmind) + + var/client/C = null + var/list/candidates = list() + + if(!new_overmind) + candidates = pollCandidatesForMob("Do you want to play as a blob overmind?", ROLE_BLOB, null, ROLE_BLOB, 50, src) //we're technically not a mob but behave similarly + if(candidates.len) + C = pick(candidates) + else + C = new_overmind + + if(C) + var/mob/camera/blob/B = new(src.loc, 1) + B.key = C.key + B.blob_core = src + src.overmind = B + update_icon() + if(B.mind && !B.mind.special_role) + B.mind.special_role = "Blob Overmind" + return 1 + return 0 diff --git a/code/game/gamemodes/blob/blobs/factory.dm b/code/game/gamemodes/blob/blobs/factory.dm new file mode 100644 index 0000000..cc0749d --- /dev/null +++ b/code/game/gamemodes/blob/blobs/factory.dm @@ -0,0 +1,47 @@ +/obj/structure/blob/factory + name = "factory blob" + icon = 'icons/mob/blob.dmi' + icon_state = "blob_factory" + desc = "A thick spire of tendrils." + obj_integrity = 200 + max_integrity = 200 + health_regen = 1 + point_return = 25 + var/list/spores = list() + var/mob/living/simple_animal/hostile/blob/blobbernaut/naut = null + var/max_spores = 3 + var/spore_delay = 0 + var/spore_cooldown = 80 //8 seconds between spores and after spore death + + +/obj/structure/blob/factory/scannerreport() + if(naut) + return "It is currently sustaining a blobbernaut, making it fragile and unable to produce blob spores." + return "Will produce a blob spore every few seconds." + +/obj/structure/blob/factory/Destroy() + for(var/mob/living/simple_animal/hostile/blob/blobspore/spore in spores) + if(spore.factory == src) + spore.factory = null + if(naut) + naut.factory = null + naut << "Your factory was destroyed! You feel yourself dying!" + naut.throw_alert("nofactory", /obj/screen/alert/nofactory) + spores = null + return ..() + +/obj/structure/blob/factory/Be_Pulsed() + . = ..() + if(naut) + return + if(spores.len >= max_spores) + return + if(spore_delay > world.time) + return + flick("blob_factory_glow", src) + spore_delay = world.time + spore_cooldown + var/mob/living/simple_animal/hostile/blob/blobspore/BS = new/mob/living/simple_animal/hostile/blob/blobspore(src.loc, src) + if(overmind) //if we don't have an overmind, we don't need to do anything but make a spore + BS.overmind = overmind + BS.update_icons() + overmind.blob_mobs.Add(BS) diff --git a/code/game/gamemodes/blob/blobs/node.dm b/code/game/gamemodes/blob/blobs/node.dm new file mode 100644 index 0000000..426e76b --- /dev/null +++ b/code/game/gamemodes/blob/blobs/node.dm @@ -0,0 +1,38 @@ +/obj/structure/blob/node + name = "blob node" + icon = 'icons/mob/blob.dmi' + icon_state = "blank_blob" + desc = "A large, pulsating yellow mass." + obj_integrity = 200 + max_integrity = 200 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 65, acid = 90) + health_regen = 3 + point_return = 25 + + +/obj/structure/blob/node/New(loc) + blob_nodes += src + START_PROCESSING(SSobj, src) + ..() + +/obj/structure/blob/node/scannerreport() + return "Gradually expands and sustains nearby blob spores and blobbernauts." + +/obj/structure/blob/node/update_icon() + cut_overlays() + color = null + var/image/I = new('icons/mob/blob.dmi', "blob") + if(overmind) + I.color = overmind.blob_reagent_datum.color + add_overlay(I) + var/image/C = new('icons/mob/blob.dmi', "blob_node_overlay") + add_overlay(C) + +/obj/structure/blob/node/Destroy() + blob_nodes -= src + STOP_PROCESSING(SSobj, src) + return ..() + +/obj/structure/blob/node/Life() + Pulse_Area(overmind, 10, 3, 2) + diff --git a/code/game/gamemodes/blob/blobs/resource.dm b/code/game/gamemodes/blob/blobs/resource.dm new file mode 100644 index 0000000..bcb6d8a --- /dev/null +++ b/code/game/gamemodes/blob/blobs/resource.dm @@ -0,0 +1,32 @@ +/obj/structure/blob/resource + name = "resource blob" + icon = 'icons/mob/blob.dmi' + icon_state = "blob_resource" + desc = "A thin spire of slightly swaying tendrils." + obj_integrity = 60 + max_integrity = 60 + point_return = 15 + var/resource_delay = 0 + +/obj/structure/blob/resource/scannerreport() + return "Gradually supplies the blob with resources, increasing the rate of expansion." + +/obj/structure/blob/resource/creation_action() + if(overmind) + overmind.resource_blobs += src + +/obj/structure/blob/resource/Destroy() + if(overmind) + overmind.resource_blobs -= src + return ..() + +/obj/structure/blob/resource/Be_Pulsed() + . = ..() + if(resource_delay > world.time) + return + flick("blob_resource_glow", src) + if(overmind) + overmind.add_points(1) + resource_delay = world.time + 40 + overmind.resource_blobs.len * 2.5 //4 seconds plus a quarter second for each resource blob the overmind has + else + resource_delay = world.time + 40 diff --git a/code/game/gamemodes/blob/blobs/shield.dm b/code/game/gamemodes/blob/blobs/shield.dm new file mode 100644 index 0000000..a4ec48a --- /dev/null +++ b/code/game/gamemodes/blob/blobs/shield.dm @@ -0,0 +1,36 @@ +/obj/structure/blob/shield + name = "strong blob" + icon = 'icons/mob/blob.dmi' + icon_state = "blob_shield" + desc = "A solid wall of slightly twitching tendrils." + obj_integrity = 150 + max_integrity = 150 + brute_resist = 0.25 + explosion_block = 3 + point_return = 4 + atmosblock = 1 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 90, acid = 90) + + + +/obj/structure/blob/shield/scannerreport() + if(atmosblock) + return "Will prevent the spread of atmospheric changes." + return "N/A" + +/obj/structure/blob/shield/core + point_return = 0 + +/obj/structure/blob/shield/update_icon() + ..() + if(obj_integrity <= 75) + icon_state = "blob_shield_damaged" + name = "weakened strong blob" + desc = "A wall of twitching tendrils." + atmosblock = 0 + else + icon_state = initial(icon_state) + name = initial(name) + desc = initial(desc) + atmosblock = 1 + air_update_turf(1) diff --git a/code/game/gamemodes/blob/overmind.dm b/code/game/gamemodes/blob/overmind.dm new file mode 100644 index 0000000..5fb0187 --- /dev/null +++ b/code/game/gamemodes/blob/overmind.dm @@ -0,0 +1,186 @@ +/mob/camera/blob + name = "Blob Overmind" + real_name = "Blob Overmind" + desc = "The overmind. It controls the blob." + icon = 'icons/mob/blob.dmi' + icon_state = "marker" + mouse_opacity = 1 + move_on_shuttle = 1 + see_in_dark = 8 + see_invisible = SEE_INVISIBLE_MINIMUM + invisibility = INVISIBILITY_OBSERVER + layer = FLY_LAYER + + pass_flags = PASSBLOB + faction = list("blob") + + var/obj/structure/blob/core/blob_core = null // The blob overmind's core + var/blob_points = 0 + var/max_blob_points = 100 + var/last_attack = 0 + var/datum/reagent/blob/blob_reagent_datum = new/datum/reagent/blob() + var/list/blob_mobs = list() + var/list/resource_blobs = list() + var/ghostimage = null + var/free_chem_rerolls = 1 //one free chemical reroll + var/nodes_required = 1 //if the blob needs nodes to place resource and factory blobs + var/placed = 0 + var/base_point_rate = 2 //for blob core placement + var/manualplace_min_time = 600 //in deciseconds //a minute, to get bearings + var/autoplace_max_time = 3600 //six minutes, as long as should be needed + +/mob/camera/blob/New(loc, pre_placed = 0, mode_made = 0, starting_points = 60) + blob_points = starting_points + if(pre_placed) //we already have a core! + manualplace_min_time = 0 + autoplace_max_time = 0 + placed = 1 + else + if(mode_made) + manualplace_min_time = world.time + BLOB_NO_PLACE_TIME + else + manualplace_min_time += world.time + autoplace_max_time += world.time + overminds += src + var/new_name = "[initial(name)] ([rand(1, 999)])" + name = new_name + real_name = new_name + last_attack = world.time + var/datum/reagent/blob/BC = pick((subtypesof(/datum/reagent/blob))) + blob_reagent_datum = new BC + color = blob_reagent_datum.complementary_color + if(blob_core) + blob_core.update_icon() + + ghostimage = image(src.icon,src,src.icon_state) + ghost_darkness_images |= ghostimage //so ghosts can see the blob cursor when they disable darkness + updateallghostimages() + ..() + +/mob/camera/blob/Life() + if(!blob_core) + if(!placed) + if(manualplace_min_time && world.time >= manualplace_min_time) + src << "You may now place your blob core." + src << "You will automatically place your blob core in [round((autoplace_max_time - world.time)/600, 0.5)] minutes." + manualplace_min_time = 0 + if(autoplace_max_time && world.time >= autoplace_max_time) + place_blob_core(base_point_rate, 1) + else + qdel(src) + ..() + +/mob/camera/blob/Destroy() + for(var/BL in blobs) + var/obj/structure/blob/B = BL + if(B && B.overmind == src) + B.overmind = null + B.update_icon() //reset anything that was ours + for(var/BLO in blob_mobs) + var/mob/living/simple_animal/hostile/blob/BM = BLO + if(BM) + BM.overmind = null + BM.update_icons() + overminds -= src + if(ghostimage) + ghost_darkness_images -= ghostimage + qdel(ghostimage) + ghostimage = null + updateallghostimages() + return ..() + +/mob/camera/blob/Login() + ..() + sync_mind() + src << "You are the overmind!" + blob_help() + update_health_hud() + add_points(0) + +/mob/camera/blob/examine(mob/user) + ..() + if(blob_reagent_datum) + user << "Its chemical is [blob_reagent_datum.name]." + +/mob/camera/blob/update_health_hud() + if(blob_core) + hud_used.healths.maptext = "
    [round(blob_core.obj_integrity)]
    " + for(var/mob/living/simple_animal/hostile/blob/blobbernaut/B in blob_mobs) + if(B.hud_used && B.hud_used.blobpwrdisplay) + B.hud_used.blobpwrdisplay.maptext = "
    [round(blob_core.obj_integrity)]
    " + +/mob/camera/blob/proc/add_points(points) + blob_points = Clamp(blob_points + points, 0, max_blob_points) + hud_used.blobpwrdisplay.maptext = "
    [round(blob_points)]
    " + +/mob/camera/blob/say(message) + if (!message) + return + + if (src.client) + if(client.prefs.muted & MUTE_IC) + src << "You cannot send IC messages (muted)." + return + if (src.client.handle_spam_prevention(message,MUTE_IC)) + return + + if (stat) + return + + blob_talk(message) + +/mob/camera/blob/proc/blob_talk(message) + log_say("[key_name(src)] : [message]") + + message = trim(copytext(sanitize(message), 1, MAX_MESSAGE_LEN)) + + if (!message) + return + + var/message_a = say_quote(message, get_spans()) + var/rendered = "\[Blob Telepathy\] [name]([blob_reagent_datum.name]) [message_a]" + + for(var/mob/M in mob_list) + if(isovermind(M) || istype(M, /mob/living/simple_animal/hostile/blob)) + M << rendered + if(isobserver(M)) + var/link = FOLLOW_LINK(M, src) + M << "[link] [rendered]" + +/mob/camera/blob/emote(act,m_type=1,message = null) + return + +/mob/camera/blob/blob_act(obj/structure/blob/B) + return + +/mob/camera/blob/Stat() + ..() + if(statpanel("Status")) + if(blob_core) + stat(null, "Core Health: [blob_core.obj_integrity]") + stat(null, "Power Stored: [blob_points]/[max_blob_points]") + if(ticker && istype(ticker.mode, /datum/game_mode/blob)) + var/datum/game_mode/blob/B = ticker.mode + stat(null, "Blobs to Win: [blobs_legit.len]/[B.blobwincount]") + else + stat(null, "Total Blobs: [blobs.len]") + if(free_chem_rerolls) + stat(null, "You have [free_chem_rerolls] Free Chemical Reroll\s Remaining") + if(!placed) + if(manualplace_min_time) + stat(null, "Time Before Manual Placement: [max(round((manualplace_min_time - world.time)*0.1, 0.1), 0)]") + stat(null, "Time Before Automatic Placement: [max(round((autoplace_max_time - world.time)*0.1, 0.1), 0)]") + +/mob/camera/blob/Move(NewLoc, Dir = 0) + if(placed) + var/obj/structure/blob/B = locate() in range("3x3", NewLoc) + if(B) + loc = NewLoc + else + return 0 + else + var/area/A = get_area(NewLoc) + if(isspaceturf(NewLoc) || istype(A, /area/shuttle)) //if unplaced, can't go on shuttles or space tiles + return 0 + loc = NewLoc + return 1 diff --git a/code/game/gamemodes/blob/powers.dm b/code/game/gamemodes/blob/powers.dm new file mode 100644 index 0000000..b5118a6 --- /dev/null +++ b/code/game/gamemodes/blob/powers.dm @@ -0,0 +1,369 @@ +/mob/camera/blob/proc/can_buy(cost = 15) + if(blob_points < cost) + src << "You cannot afford this, you need at least [cost] resources!" + return 0 + add_points(-cost) + return 1 + +// Power verbs + +/mob/camera/blob/proc/place_blob_core(point_rate, placement_override) + if(placed && placement_override != -1) + return 1 + if(!placement_override) + for(var/mob/living/M in range(7, src)) + if("blob" in M.faction) + continue + if(M.client) + src << "There is someone too close to place your blob core!" + return 0 + for(var/mob/living/M in view(13, src)) + if("blob" in M.faction) + continue + if(M.client) + src << "Someone could see your blob core from here!" + return 0 + var/turf/T = get_turf(src) + if(T.density) + src << "This spot is too dense to place a blob core on!" + return 0 + for(var/obj/O in T) + if(istype(O, /obj/structure/blob)) + if(istype(O, /obj/structure/blob/normal)) + qdel(O) + else + src << "There is already a blob here!" + return 0 + else if(O.density) + src << "This spot is too dense to place a blob core on!" + return 0 + if(world.time <= manualplace_min_time && world.time <= autoplace_max_time) + src << "It is too early to place your blob core!" + return 0 + else if(placement_override == 1) + var/turf/T = pick(blobstart) + loc = T //got overrided? you're somewhere random, motherfucker + if(placed && blob_core) + blob_core.forceMove(loc) + else + var/obj/structure/blob/core/core = new(get_turf(src), null, point_rate, 1) + core.overmind = src + blob_core = core + core.update_icon() + update_health_hud() + placed = 1 + return 1 + +/mob/camera/blob/verb/transport_core() + set category = "Blob" + set name = "Jump to Core" + set desc = "Move your camera to your core." + if(blob_core) + src.loc = blob_core.loc + +/mob/camera/blob/verb/jump_to_node() + set category = "Blob" + set name = "Jump to Node" + set desc = "Move your camera to a selected node." + if(blob_nodes.len) + var/list/nodes = list() + for(var/i in 1 to blob_nodes.len) + var/obj/structure/blob/node/B = blob_nodes[i] + nodes["Blob Node #[i] ([B.overmind ? "B.overmind.blob_reagent_datum.name":"No Chemical"]"] = B + var/node_name = input(src, "Choose a node to jump to.", "Node Jump") in nodes + var/obj/structure/blob/node/chosen_node = nodes[node_name] + if(chosen_node) + loc = chosen_node.loc + +/mob/camera/blob/proc/createSpecial(price, blobType, nearEquals, needsNode, turf/T) + if(!T) + T = get_turf(src) + var/obj/structure/blob/B = (locate(/obj/structure/blob) in T) + if(!B) + src << "There is no blob here!" + return + if(!istype(B, /obj/structure/blob/normal)) + src << "Unable to use this blob, find a normal one." + return + if(needsNode && nodes_required) + if(!(locate(/obj/structure/blob/node) in orange(3, T)) && !(locate(/obj/structure/blob/core) in orange(4, T))) + src << "You need to place this blob closer to a node or core!" + return //handholdotron 2000 + if(nearEquals) + for(var/obj/structure/blob/L in orange(nearEquals, T)) + if(L.type == blobType) + src << "There is a similar blob nearby, move more than [nearEquals] tiles away from it!" + return + if(!can_buy(price)) + return + var/obj/structure/blob/N = B.change_to(blobType, src) + return N + +/mob/camera/blob/verb/toggle_node_req() + set category = "Blob" + set name = "Toggle Node Requirement" + set desc = "Toggle requiring nodes to place resource and factory blobs." + nodes_required = !nodes_required + if(nodes_required) + src << "You now require a nearby node or core to place factory and resource blobs." + else + src << "You no longer require a nearby node or core to place factory and resource blobs." + +/mob/camera/blob/verb/create_shield_power() + set category = "Blob" + set name = "Create Shield Blob (15)" + set desc = "Create a shield blob, which will block fire and is hard to kill." + create_shield() + +/mob/camera/blob/proc/create_shield(turf/T) + createSpecial(15, /obj/structure/blob/shield, 0, 0, T) + +/mob/camera/blob/verb/create_resource() + set category = "Blob" + set name = "Create Resource Blob (40)" + set desc = "Create a resource tower which will generate resources for you." + createSpecial(40, /obj/structure/blob/resource, 4, 1) + +/mob/camera/blob/verb/create_node() + set category = "Blob" + set name = "Create Node Blob (50)" + set desc = "Create a node, which will power nearby factory and resource blobs." + createSpecial(50, /obj/structure/blob/node, 5, 0) + +/mob/camera/blob/verb/create_factory() + set category = "Blob" + set name = "Create Factory Blob (60)" + set desc = "Create a spore tower that will spawn spores to harass your enemies." + createSpecial(60, /obj/structure/blob/factory, 7, 1) + +/mob/camera/blob/verb/create_blobbernaut() + set category = "Blob" + set name = "Create Blobbernaut (40)" + set desc = "Create a powerful blobbernaut which is mildly smart and will attack enemies." + var/turf/T = get_turf(src) + var/obj/structure/blob/factory/B = locate(/obj/structure/blob/factory) in T + if(!B) + src << "You must be on a factory blob!" + return + if(B.naut) //if it already made a blobbernaut, it can't do it again + src << "This factory blob is already sustaining a blobbernaut." + return + if(B.obj_integrity < B.max_integrity * 0.5) + src << "This factory blob is too damaged to sustain a blobbernaut." + return + if(!can_buy(40)) + return + B.max_integrity = initial(B.max_integrity) * 0.25 //factories that produced a blobbernaut have much lower health + B.obj_integrity = min(B.obj_integrity, B.max_integrity) + B.update_icon() + B.visible_message("The blobbernaut [pick("rips", "tears", "shreds")] its way out of the factory blob!") + playsound(B.loc, 'sound/effects/splat.ogg', 50, 1) + var/mob/living/simple_animal/hostile/blob/blobbernaut/blobber = new /mob/living/simple_animal/hostile/blob/blobbernaut(get_turf(B)) + flick("blobbernaut_produce", blobber) + B.naut = blobber + blobber.factory = B + blobber.overmind = src + blobber.update_icons() + blobber.notransform = 1 //stop the naut from moving around + blobber.adjustHealth(blobber.maxHealth * 0.5) + blob_mobs += blobber + var/list/mob/dead/observer/candidates = pollCandidatesForMob("Do you want to play as a [blob_reagent_datum.name] blobbernaut?", ROLE_BLOB, null, ROLE_BLOB, 50, blobber) //players must answer rapidly + if(candidates.len) //if we got at least one candidate, they're a blobbernaut now. + var/client/C = pick(candidates) + blobber.key = C.key + blobber << 'sound/effects/blobattack.ogg' + blobber << 'sound/effects/attackblob.ogg' + blobber << "You are a blobbernaut!" + blobber << "You are powerful, hard to kill, and slowly regenerate near nodes and cores, but will slowly die if not near the blob or if the factory that made you is killed." + blobber << "You can communicate with other blobbernauts and overminds via :b" + blobber << "Your overmind's blob reagent is: [blob_reagent_datum.name]!" + blobber << "The [blob_reagent_datum.name] reagent [blob_reagent_datum.shortdesc ? "[blob_reagent_datum.shortdesc]" : "[blob_reagent_datum.description]"]" + if(blobber) + blobber.notransform = 0 + +/mob/camera/blob/verb/relocate_core() + set category = "Blob" + set name = "Relocate Core (80)" + set desc = "Swaps the locations of your core and the selected node." + var/turf/T = get_turf(src) + var/obj/structure/blob/node/B = locate(/obj/structure/blob/node) in T + if(!B) + src << "You must be on a blob node!" + return + if(!blob_core) + src << "You have no core and are about to die! May you rest in peace." + return + var/area/A = get_area(T) + if(isspaceturf(T) || A && !A.blob_allowed) + src << "You cannot relocate your core here!" + return + if(!can_buy(80)) + return + var/turf/old_turf = get_turf(blob_core) + var/olddir = blob_core.dir + blob_core.forceMove(T) + blob_core.setDir(B.dir) + B.forceMove(old_turf) + B.setDir(olddir) + +/mob/camera/blob/verb/revert() + set category = "Blob" + set name = "Remove Blob" + set desc = "Removes a blob, giving you back some resources." + var/turf/T = get_turf(src) + remove_blob(T) + +/mob/camera/blob/proc/remove_blob(turf/T) + var/obj/structure/blob/B = locate() in T + if(!B) + src << "There is no blob there!" + return + if(B.point_return < 0) + src << "Unable to remove this blob." + return + if(max_blob_points < B.point_return + blob_points) + src << "You have too many resources to remove this blob!" + return + if(B.point_return) + add_points(B.point_return) + src << "Gained [B.point_return] resources from removing \the [B]." + qdel(B) + +/mob/camera/blob/verb/expand_blob_power() + set category = "Blob" + set name = "Expand/Attack Blob (4)" + set desc = "Attempts to create a new blob in this tile. If the tile isn't clear, instead attacks it, damaging mobs and objects." + var/turf/T = get_turf(src) + expand_blob(T) + +/mob/camera/blob/proc/expand_blob(turf/T) + if(world.time < last_attack) + return + var/list/possibleblobs = list() + for(var/obj/structure/blob/AB in range(T, 1)) + possibleblobs += AB + if(!possibleblobs.len) + src << "There is no blob adjacent to the target tile!" + return + if(can_buy(4)) + var/attacksuccess = FALSE + for(var/mob/living/L in T) + if("blob" in L.faction) //no friendly/dead fire + continue + if(L.stat != DEAD) + attacksuccess = TRUE + var/mob_protection = L.get_permeability_protection() + blob_reagent_datum.reaction_mob(L, VAPOR, 25, 1, mob_protection, src) + blob_reagent_datum.send_message(L) + var/obj/structure/blob/B = locate() in T + if(B) + if(attacksuccess) //if we successfully attacked a turf with a blob on it, don't refund shit + B.blob_attack_animation(T, src) + else + src << "There is a blob there!" + add_points(4) //otherwise, refund all of the cost + else + var/list/cardinalblobs = list() + var/list/diagonalblobs = list() + for(var/I in possibleblobs) + var/obj/structure/blob/IB = I + if(get_dir(IB, T) in cardinal) + cardinalblobs += IB + else + diagonalblobs += IB + var/obj/structure/blob/OB + if(cardinalblobs.len) + OB = pick(cardinalblobs) + OB.expand(T, src) + else + OB = pick(diagonalblobs) + if(attacksuccess) + OB.blob_attack_animation(T, src) + playsound(OB, 'sound/effects/splat.ogg', 50, 1) + else + add_points(4) //if we're attacking diagonally and didn't hit anything, refund + if(attacksuccess) + last_attack = world.time + CLICK_CD_MELEE + else + last_attack = world.time + CLICK_CD_RAPID + +/mob/camera/blob/verb/rally_spores_power() + set category = "Blob" + set name = "Rally Spores" + set desc = "Rally your spores to move to a target location." + var/turf/T = get_turf(src) + rally_spores(T) + +/mob/camera/blob/proc/rally_spores(turf/T) + src << "You rally your spores." + var/list/surrounding_turfs = block(locate(T.x - 1, T.y - 1, T.z), locate(T.x + 1, T.y + 1, T.z)) + if(!surrounding_turfs.len) + return + for(var/mob/living/simple_animal/hostile/blob/blobspore/BS in blob_mobs) + if(isturf(BS.loc) && get_dist(BS, T) <= 35) + BS.LoseTarget() + BS.Goto(pick(surrounding_turfs), BS.move_to_delay) + +/mob/camera/blob/verb/blob_broadcast() + set category = "Blob" + set name = "Blob Broadcast" + set desc = "Speak with your blob spores and blobbernauts as your mouthpieces." + var/speak_text = input(src, "What would you like to say with your minions?", "Blob Broadcast", null) as text + if(!speak_text) + return + else + src << "You broadcast with your minions, [speak_text]" + for(var/BLO in blob_mobs) + var/mob/living/simple_animal/hostile/blob/BM = BLO + if(BM.stat == CONSCIOUS) + BM.say(speak_text) + +/mob/camera/blob/verb/chemical_reroll() + set category = "Blob" + set name = "Reactive Chemical Adaptation (40)" + set desc = "Replaces your chemical with a random, different one." + if(free_chem_rerolls || can_buy(40)) + set_chemical() + if(free_chem_rerolls) + free_chem_rerolls-- + +/mob/camera/blob/proc/set_chemical() + var/datum/reagent/blob/BC = pick((subtypesof(/datum/reagent/blob) - blob_reagent_datum.type)) + blob_reagent_datum = new BC + color = blob_reagent_datum.complementary_color + for(var/BL in blobs) + var/obj/structure/blob/B = BL + B.update_icon() + for(var/BLO in blob_mobs) + var/mob/living/simple_animal/hostile/blob/BM = BLO + BM.update_icons() //If it's getting a new chemical, tell it what it does! + BM << "Your overmind's blob reagent is now: [blob_reagent_datum.name]!" + BM << "The [blob_reagent_datum.name] reagent [blob_reagent_datum.shortdesc ? "[blob_reagent_datum.shortdesc]" : "[blob_reagent_datum.description]"]" + src << "Your reagent is now: [blob_reagent_datum.name]!" + src << "The [blob_reagent_datum.name] reagent [blob_reagent_datum.description]" + if(blob_reagent_datum.effectdesc) + src << "The [blob_reagent_datum.name] reagent [blob_reagent_datum.effectdesc]" + +/mob/camera/blob/verb/blob_help() + set category = "Blob" + set name = "*Blob Help*" + set desc = "Help on how to blob." + src << "As the overmind, you can control the blob!" + src << "Your blob reagent is: [blob_reagent_datum.name]!" + src << "The [blob_reagent_datum.name] reagent [blob_reagent_datum.description]" + if(blob_reagent_datum.effectdesc) + src << "The [blob_reagent_datum.name] reagent [blob_reagent_datum.effectdesc]" + src << "You can expand, which will attack people, damage objects, or place a Normal Blob if the tile is clear." + src << "Normal Blobs will expand your reach and can be upgraded into special blobs that perform certain functions." + src << "You can upgrade normal blobs into the following types of blob:" + src << "Shield Blobs are strong and expensive blobs which take more damage. In additon, they are fireproof and can block air, use these to protect yourself from station fires." + src << "Resource Blobs are blobs which produce more resources for you, build as many of these as possible to consume the station. This type of blob must be placed near node blobs or your core to work." + src << "Factory Blobs are blobs that spawn blob spores which will attack nearby enemies. This type of blob must be placed near node blobs or your core to work." + src << "Blobbernauts can be produced from factories for a cost, and are hard to kill, powerful, and moderately smart. The factory used to create one will become fragile and briefly unable to produce spores." + src << "Node Blobs are blobs which grow, like the core. Like the core it can activate resource and factory blobs." + src << "In addition to the buttons on your HUD, there are a few click shortcuts to speed up expansion and defense." + src << "Shortcuts: Click = Expand Blob | Middle Mouse Click = Rally Spores | Ctrl Click = Create Shield Blob | Alt Click = Remove Blob" + src << "Attempting to talk will send a message to all other overminds, allowing you to coordinate with them." + if(!placed && autoplace_max_time <= world.time) + src << "You will automatically place your blob core in [round((autoplace_max_time - world.time)/600, 0.5)] minutes." + src << "You [manualplace_min_time ? "will be able to":"can"] manually place your blob core by pressing the Place Blob Core button in the bottom right corner of the screen." diff --git a/code/game/gamemodes/blob/theblob.dm b/code/game/gamemodes/blob/theblob.dm new file mode 100644 index 0000000..4fd4186 --- /dev/null +++ b/code/game/gamemodes/blob/theblob.dm @@ -0,0 +1,349 @@ +//I will need to recode parts of this but I am way too tired atm //I don't know who left this comment but they never did come back +/obj/structure/blob + name = "blob" + icon = 'icons/mob/blob.dmi' + luminosity = 1 + desc = "A thick wall of writhing tendrils." + density = 0 //this being 0 causes two bugs, being able to attack blob tiles behind other blobs and being unable to move on blob tiles in no gravity, but turning it to 1 causes the blob mobs to be unable to path through blobs, which is probably worse. + opacity = 0 + anchored = 1 + layer = BELOW_MOB_LAYER + var/point_return = 0 //How many points the blob gets back when it removes a blob of that type. If less than 0, blob cannot be removed. + obj_integrity = 30 + max_integrity = 30 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 80, acid = 70) + var/health_regen = 2 //how much health this blob regens when pulsed + var/pulse_timestamp = 0 //we got pulsed when? + var/heal_timestamp = 0 //we got healed when? + var/brute_resist = 0.5 //multiplies brute damage by this + var/fire_resist = 1 //multiplies burn damage by this + var/atmosblock = 0 //if the blob blocks atmos and heat spread + var/mob/camera/blob/overmind + + +/obj/structure/blob/New(loc) + var/area/Ablob = get_area(loc) + if(Ablob.blob_allowed) //Is this area allowed for winning as blob? + blobs_legit += src + blobs += src //Keep track of the blob in the normal list either way + setDir(pick(cardinal)) + update_icon() + ..() + ConsumeTile() + if(atmosblock) + air_update_turf(1) + +/obj/structure/blob/proc/creation_action() //When it's created by the overmind, do this. + return + +/obj/structure/blob/Destroy() + if(atmosblock) + atmosblock = 0 + air_update_turf(1) + blobs_legit -= src //if it was in the legit blobs list, it isn't now + blobs -= src //it's no longer in the all blobs list either + playsound(src.loc, 'sound/effects/splat.ogg', 50, 1) //Expand() is no longer broken, no check necessary. + return ..() + +/obj/structure/blob/blob_act() + return + +/obj/structure/blob/Adjacent(var/atom/neighbour) + . = ..() + if(.) + var/result = 0 + var/direction = get_dir(src, neighbour) + var/list/dirs = list("[NORTHWEST]" = list(NORTH, WEST), "[NORTHEAST]" = list(NORTH, EAST), "[SOUTHEAST]" = list(SOUTH, EAST), "[SOUTHWEST]" = list(SOUTH, WEST)) + for(var/A in dirs) + if(direction == text2num(A)) + for(var/B in dirs[A]) + var/C = locate(/obj/structure/blob) in get_step(src, B) + if(C) + result++ + . -= result - 1 + +/obj/structure/blob/CanAtmosPass(turf/T) + return !atmosblock + +/obj/structure/blob/BlockSuperconductivity() + return atmosblock + +/obj/structure/blob/CanPass(atom/movable/mover, turf/target, height=0) + if(height==0) + return 1 + if(istype(mover) && mover.checkpass(PASSBLOB)) + return 1 + return 0 + +/obj/structure/blob/CanAStarPass(ID, dir, caller) + . = 0 + if(ismovableatom(caller)) + var/atom/movable/mover = caller + . = . || mover.checkpass(PASSBLOB) + +/obj/structure/blob/update_icon() //Updates color based on overmind color if we have an overmind. + if(overmind) + add_atom_colour(overmind.blob_reagent_datum.color, FIXED_COLOUR_PRIORITY) + else + remove_atom_colour(FIXED_COLOUR_PRIORITY) + +/obj/structure/blob/process() + Life() + +/obj/structure/blob/proc/Life() + return + +/obj/structure/blob/proc/Pulse_Area(pulsing_overmind = overmind, claim_range = 10, pulse_range = 3, expand_range = 2) + src.Be_Pulsed() + var/expanded = FALSE + if(prob(70) && expand()) + expanded = TRUE + var/list/blobs_to_affect = list() + for(var/obj/structure/blob/B in urange(claim_range, src, 1)) + blobs_to_affect += B + shuffle(blobs_to_affect) + for(var/L in blobs_to_affect) + var/obj/structure/blob/B = L + if(!B.overmind && !istype(B, /obj/structure/blob/core) && prob(30)) + B.overmind = pulsing_overmind //reclaim unclaimed, non-core blobs. + B.update_icon() + var/distance = get_dist(get_turf(src), get_turf(B)) + var/expand_probablity = max(20 - distance * 8, 1) + if(B.Adjacent(src)) + expand_probablity = 20 + if(distance <= expand_range) + var/can_expand = TRUE + if(blobs_to_affect.len >= 120 && B.heal_timestamp > world.time) + can_expand = FALSE + if(can_expand && B.pulse_timestamp <= world.time && prob(expand_probablity)) + var/obj/structure/blob/newB = B.expand(null, null, !expanded) //expansion falls off with range but is faster near the blob causing the expansion + if(newB) + if(expanded) + qdel(newB) + expanded = TRUE + if(distance <= pulse_range) + B.Be_Pulsed() + +/obj/structure/blob/proc/Be_Pulsed() + if(pulse_timestamp <= world.time) + ConsumeTile() + if(heal_timestamp <= world.time) + obj_integrity = min(max_integrity, obj_integrity+health_regen) + heal_timestamp = world.time + 20 + update_icon() + pulse_timestamp = world.time + 10 + return 1 //we did it, we were pulsed! + return 0 //oh no we failed + +/obj/structure/blob/proc/ConsumeTile() + for(var/atom/A in loc) + A.blob_act(src) + if(iswallturf(loc)) + loc.blob_act(src) //don't ask how a wall got on top of the core, just eat it + +/obj/structure/blob/proc/blob_attack_animation(atom/A = null, controller) //visually attacks an atom + var/obj/effect/overlay/temp/blob/O = PoolOrNew(/obj/effect/overlay/temp/blob, src.loc) + O.setDir(dir) + if(controller) + var/mob/camera/blob/BO = controller + O.color = BO.blob_reagent_datum.color + O.alpha = 200 + else if(overmind) + O.color = overmind.blob_reagent_datum.color + if(A) + O.do_attack_animation(A) //visually attack the whatever + return O //just in case you want to do something to the animation. + +/obj/structure/blob/proc/expand(turf/T = null, controller = null, expand_reaction = 1) + if(!T) + var/list/dirs = list(1,2,4,8) + for(var/i = 1 to 4) + var/dirn = pick(dirs) + dirs.Remove(dirn) + T = get_step(src, dirn) + if(!(locate(/obj/structure/blob) in T)) + break + else + T = null + if(!T) + return 0 + var/make_blob = TRUE //can we make a blob? + + if(isspaceturf(T) && !(locate(/obj/structure/lattice) in T) && prob(80)) + make_blob = FALSE + playsound(src.loc, 'sound/effects/splat.ogg', 50, 1) //Let's give some feedback that we DID try to spawn in space, since players are used to it + + ConsumeTile() //hit the tile we're in, making sure there are no border objects blocking us + if(!T.CanPass(src, T, 5)) //is the target turf impassable + make_blob = FALSE + T.blob_act(src) //hit the turf if it is + for(var/atom/A in T) + if(!A.CanPass(src, T, 5)) //is anything in the turf impassable + make_blob = FALSE + A.blob_act(src) //also hit everything in the turf + + if(make_blob) //well, can we? + var/obj/structure/blob/B = new /obj/structure/blob/normal(src.loc) + if(controller) + B.overmind = controller + else + B.overmind = overmind + B.density = 1 + if(T.Enter(B,src)) //NOW we can attempt to move into the tile + B.density = initial(B.density) + B.loc = T + B.update_icon() + if(B.overmind && expand_reaction) + B.overmind.blob_reagent_datum.expand_reaction(src, B, T) + return B + else + blob_attack_animation(T, controller) + T.blob_act(src) //if we can't move in hit the turf again + qdel(B) //we should never get to this point, since we checked before moving in. destroy the blob so we don't have two blobs on one tile + return null + else + blob_attack_animation(T, controller) //if we can't, animate that we attacked + return null + +/obj/structure/blob/emp_act(severity) + if(severity > 0) + if(overmind) + overmind.blob_reagent_datum.emp_reaction(src, severity) + if(prob(100 - severity * 30)) + PoolOrNew(/obj/effect/overlay/temp/emp, get_turf(src)) + +/obj/structure/blob/tesla_act(power) + ..() + if(overmind) + if(overmind.blob_reagent_datum.tesla_reaction(src, power)) + take_damage(power/400, BURN, "energy") + else + take_damage(power/400, BURN, "energy") + +/obj/structure/blob/extinguish() + ..() + if(overmind) + overmind.blob_reagent_datum.extinguish_reaction(src) + +/obj/structure/blob/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/device/analyzer)) + user.changeNext_move(CLICK_CD_MELEE) + user << "The analyzer beeps once, then reports:
    " + user << 'sound/machines/ping.ogg' + chemeffectreport(user) + typereport(user) + else + return ..() + +/obj/structure/blob/proc/chemeffectreport(mob/user) + if(overmind) + user << "Material: [overmind.blob_reagent_datum.name]." + user << "Material Effects: [overmind.blob_reagent_datum.analyzerdescdamage]" + user << "Material Properties: [overmind.blob_reagent_datum.analyzerdesceffect]
    " + else + user << "No Material Detected!
    " + +/obj/structure/blob/proc/typereport(mob/user) + user << "Blob Type: [uppertext(initial(name))]" + user << "Health: [obj_integrity]/[max_integrity]" + user << "Effects: [scannerreport()]" + +/obj/structure/blob/attack_animal(mob/living/simple_animal/M) + if("blob" in M.faction) //sorry, but you can't kill the blob as a blobbernaut + return + ..() + +/obj/structure/blob/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) + switch(damage_type) + if(BRUTE) + if(damage_amount) + playsound(src.loc, 'sound/effects/attackblob.ogg', 50, 1) + else + playsound(src, 'sound/weapons/tap.ogg', 50, 1) + if(BURN) + playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) + +/obj/structure/blob/run_obj_armor(damage_amount, damage_type, damage_flag = 0, attack_dir) + switch(damage_type) + if(BRUTE) + damage_amount *= brute_resist + if(BURN) + damage_amount *= fire_resist + if(CLONE) + else + return 0 + var/armor_protection = 0 + if(damage_flag) + armor_protection = armor[damage_flag] + damage_amount = round(damage_amount * (100 - armor_protection)*0.01, 0.1) + if(overmind && damage_flag) + damage_amount = overmind.blob_reagent_datum.damage_reaction(src, damage_amount, damage_type, damage_flag) + return damage_amount + +/obj/structure/blob/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir) + . = ..() + if(. && obj_integrity > 0) + update_icon() + +/obj/structure/blob/obj_destruction(damage_flag) + if(overmind) + overmind.blob_reagent_datum.death_reaction(src, damage_flag) + ..() + +/obj/structure/blob/proc/change_to(type, controller) + if(!ispath(type)) + throw EXCEPTION("change_to(): invalid type for blob") + return + var/obj/structure/blob/B = new type(src.loc) + if(controller) + B.overmind = controller + B.creation_action() + B.update_icon() + B.setDir(dir) + qdel(src) + return B + +/obj/structure/blob/examine(mob/user) + ..() + var/datum/atom_hud/hud_to_check = huds[DATA_HUD_MEDICAL_ADVANCED] + if(user.research_scanner || (user in hud_to_check.hudusers)) + user << "Your HUD displays an extensive report...
    " + chemeffectreport(user) + typereport(user) + else + user << "It seems to be made of [get_chem_name()]." + +/obj/structure/blob/proc/scannerreport() + return "A generic blob. Looks like someone forgot to override this proc, adminhelp this." + +/obj/structure/blob/proc/get_chem_name() + if(overmind) + return overmind.blob_reagent_datum.name + return "an unknown variant" + +/obj/structure/blob/normal + name = "normal blob" + icon_state = "blob" + luminosity = 0 + obj_integrity = 21 + max_integrity = 25 + health_regen = 1 + brute_resist = 0.25 + +/obj/structure/blob/normal/scannerreport() + if(obj_integrity <= 15) + return "Currently weak to brute damage." + return "N/A" + +/obj/structure/blob/normal/update_icon() + ..() + if(obj_integrity <= 15) + icon_state = "blob_damaged" + name = "fragile blob" + desc = "A thin lattice of slightly twitching tendrils." + brute_resist = 0.5 + else + icon_state = "blob" + name = "blob" + desc = "A thick wall of writhing tendrils." + brute_resist = 0.25 diff --git a/code/game/gamemodes/changeling/cellular_emporium.dm b/code/game/gamemodes/changeling/cellular_emporium.dm new file mode 100644 index 0000000..cc808dc --- /dev/null +++ b/code/game/gamemodes/changeling/cellular_emporium.dm @@ -0,0 +1,84 @@ +// cellular emporium +// The place where changelings go to buy their biological weaponry. + +/datum/cellular_emporium + var/name = "cellular emporium" + var/datum/changeling/changeling + +/datum/cellular_emporium/New(my_changeling) + . = ..() + changeling = my_changeling + +/datum/cellular_emporium/Destroy() + changeling = null + . = ..() + +/datum/cellular_emporium/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/ui_state/state = always_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "cellular_emporium", name, 900, 480, master_ui, state) + ui.open() + +/datum/cellular_emporium/ui_data(mob/user) + var/list/data = list() + + var/can_readapt = changeling.canrespec + var/genetic_points_remaining = changeling.geneticpoints + var/absorbed_dna_count = changeling.absorbedcount + + data["can_readapt"] = can_readapt + data["genetic_points_remaining"] = genetic_points_remaining + data["absorbed_dna_count"] = absorbed_dna_count + + var/list/abilities = list() + + for(var/path in subtypesof(/obj/effect/proc_holder/changeling)) + var/obj/effect/proc_holder/changeling/ability = path + + var/dna_cost = initial(ability.dna_cost) + if(dna_cost <= 0) + continue + + var/list/AL = list() + AL["name"] = initial(ability.name) + AL["desc"] = initial(ability.desc) + AL["helptext"] = initial(ability.helptext) + AL["owned"] = changeling.has_sting(ability) + var/req_dna = initial(ability.req_dna) + AL["dna_cost"] = dna_cost + AL["can_purchase"] = ((req_dna <= absorbed_dna_count) && (dna_cost <= genetic_points_remaining)) + + abilities += list(AL) + + data["abilities"] = abilities + + return data + +/datum/cellular_emporium/ui_act(action, params) + if(..()) + return + + switch(action) + if("readapt") + if(changeling.canrespec) + changeling.lingRespec(usr) + if("evolve") + var/sting_name = params["name"] + changeling.purchasePower(usr, sting_name) + +/datum/action/innate/cellular_emporium + name = "Cellular Emporium" + button_icon_state = "cellular_emporium" + background_icon_state = "bg_alien" + var/datum/cellular_emporium/cellular_emporium + +/datum/action/innate/cellular_emporium/New(our_target) + . = ..() + button.name = name + if(istype(our_target, /datum/cellular_emporium)) + cellular_emporium = our_target + else + throw EXCEPTION("cellular_emporium action created with non emporium") + +/datum/action/innate/cellular_emporium/Activate() + cellular_emporium.ui_interact(owner) diff --git a/code/game/gamemodes/changeling/changeling.dm b/code/game/gamemodes/changeling/changeling.dm new file mode 100644 index 0000000..8d251b8 --- /dev/null +++ b/code/game/gamemodes/changeling/changeling.dm @@ -0,0 +1,523 @@ +#define LING_FAKEDEATH_TIME 400 //40 seconds +#define LING_DEAD_GENETICDAMAGE_HEAL_CAP 50 //The lowest value of geneticdamage handle_changeling() can take it to while dead. +#define LING_ABSORB_RECENT_SPEECH 8 //The amount of recent spoken lines to gain on absorbing a mob + +var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron","Pi","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega") +var/list/slots = list("head", "wear_mask", "back", "wear_suit", "w_uniform", "shoes", "belt", "gloves", "glasses", "ears", "wear_id", "s_store") +var/list/slot2slot = list("head" = slot_head, "wear_mask" = slot_wear_mask, "neck" = slot_neck, "back" = slot_back, "wear_suit" = slot_wear_suit, "w_uniform" = slot_w_uniform, "shoes" = slot_shoes, "belt" = slot_belt, "gloves" = slot_gloves, "glasses" = slot_glasses, "ears" = slot_ears, "wear_id" = slot_wear_id, "s_store" = slot_s_store) +var/list/slot2type = list("head" = /obj/item/clothing/head/changeling, "wear_mask" = /obj/item/clothing/mask/changeling, "back" = /obj/item/changeling, "wear_suit" = /obj/item/clothing/suit/changeling, "w_uniform" = /obj/item/clothing/under/changeling, "shoes" = /obj/item/clothing/shoes/changeling, "belt" = /obj/item/changeling, "gloves" = /obj/item/clothing/gloves/changeling, "glasses" = /obj/item/clothing/glasses/changeling, "ears" = /obj/item/changeling, "wear_id" = /obj/item/changeling, "s_store" = /obj/item/changeling) + + +/datum/game_mode + var/list/datum/mind/changelings = list() + + +/datum/game_mode/changeling + name = "changeling" + config_tag = "changeling" + antag_flag = ROLE_CHANGELING + restricted_jobs = list("AI", "Cyborg") + protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain") + required_players = 15 + required_enemies = 1 + recommended_enemies = 4 + reroll_friendly = 1 + + announce_span = "green" + announce_text = "Alien changelings have infiltrated the crew!\n\ + Changelings: Accomplish the objectives assigned to you.\n\ + Crew: Root out and eliminate the changeling menace." + + var/const/prob_int_murder_target = 50 // intercept names the assassination target half the time + var/const/prob_right_murder_target_l = 25 // lower bound on probability of naming right assassination target + var/const/prob_right_murder_target_h = 50 // upper bound on probability of naimg the right assassination target + + var/const/prob_int_item = 50 // intercept names the theft target half the time + var/const/prob_right_item_l = 25 // lower bound on probability of naming right theft target + var/const/prob_right_item_h = 50 // upper bound on probability of naming the right theft target + + var/const/prob_int_sab_target = 50 // intercept names the sabotage target half the time + var/const/prob_right_sab_target_l = 25 // lower bound on probability of naming right sabotage target + var/const/prob_right_sab_target_h = 50 // upper bound on probability of naming right sabotage target + + var/const/prob_right_killer_l = 25 //lower bound on probability of naming the right operative + var/const/prob_right_killer_h = 50 //upper bound on probability of naming the right operative + var/const/prob_right_objective_l = 25 //lower bound on probability of determining the objective correctly + var/const/prob_right_objective_h = 50 //upper bound on probability of determining the objective correctly + + var/const/changeling_amount = 4 //hard limit on changelings if scaling is turned off + + var/changeling_team_objective_type = null //If this is not null, we hand our this objective to all lings + +/datum/game_mode/changeling/pre_setup() + + if(config.protect_roles_from_antagonist) + restricted_jobs += protected_jobs + + if(config.protect_assistant_from_antagonist) + restricted_jobs += "Assistant" + + var/num_changelings = 1 + + if(config.changeling_scaling_coeff) + num_changelings = max(1, min( round(num_players()/(config.changeling_scaling_coeff*2))+2, round(num_players()/config.changeling_scaling_coeff) )) + else + num_changelings = max(1, min(num_players(), changeling_amount)) + + if(antag_candidates.len>0) + for(var/i = 0, i < num_changelings, i++) + if(!antag_candidates.len) break + var/datum/mind/changeling = pick(antag_candidates) + antag_candidates -= changeling + changelings += changeling + changeling.special_role = "Changeling" + changeling.restricted_roles = restricted_jobs + return 1 + else + return 0 + +/datum/game_mode/changeling/post_setup() + + //Decide if it's ok for the lings to have a team objective + //And then set it up to be handed out in forge_changeling_objectives + var/list/team_objectives = subtypesof(/datum/objective/changeling_team_objective) + var/list/possible_team_objectives = list() + for(var/T in team_objectives) + var/datum/objective/changeling_team_objective/CTO = T + + if(changelings.len >= initial(CTO.min_lings)) + possible_team_objectives += T + + if(possible_team_objectives.len && prob(20*changelings.len)) + changeling_team_objective_type = pick(possible_team_objectives) + + for(var/datum/mind/changeling in changelings) + log_game("[changeling.key] (ckey) has been selected as a changeling") + changeling.current.make_changeling() + forge_changeling_objectives(changeling) + greet_changeling(changeling) + ticker.mode.update_changeling_icons_added(changeling) + modePlayer += changelings + ..() + +/datum/game_mode/changeling/make_antag_chance(mob/living/carbon/human/character) //Assigns changeling to latejoiners + var/changelingcap = min( round(joined_player_list.len/(config.changeling_scaling_coeff*2))+2, round(joined_player_list.len/config.changeling_scaling_coeff) ) + if(ticker.mode.changelings.len >= changelingcap) //Caps number of latejoin antagonists + return + if(ticker.mode.changelings.len <= (changelingcap - 2) || prob(100 - (config.changeling_scaling_coeff*2))) + if(ROLE_CHANGELING in character.client.prefs.be_special) + if(!jobban_isbanned(character, ROLE_CHANGELING) && !jobban_isbanned(character, "Syndicate")) + if(age_check(character.client)) + if(!(character.job in restricted_jobs)) + character.mind.make_Changling() + +/datum/game_mode/proc/forge_changeling_objectives(datum/mind/changeling, var/team_mode = 0) + //OBJECTIVES - random traitor objectives. Unique objectives "steal brain" and "identity theft". + //No escape alone because changelings aren't suited for it and it'd probably just lead to rampant robusting + //If it seems like they'd be able to do it in play, add a 10% chance to have to escape alone + + var/escape_objective_possible = TRUE + + //if there's a team objective, check if it's compatible with escape objectives + for(var/datum/objective/changeling_team_objective/CTO in changeling.objectives) + if(!CTO.escape_objective_compatible) + escape_objective_possible = FALSE + break + + var/datum/objective/absorb/absorb_objective = new + absorb_objective.owner = changeling + absorb_objective.gen_amount_goal(6, 8) + changeling.objectives += absorb_objective + + if(prob(60)) + var/datum/objective/steal/steal_objective = new + steal_objective.owner = changeling + steal_objective.find_target() + changeling.objectives += steal_objective + + var/list/active_ais = active_ais() + if(active_ais.len && prob(100/joined_player_list.len)) + var/datum/objective/destroy/destroy_objective = new + destroy_objective.owner = changeling + destroy_objective.find_target() + changeling.objectives += destroy_objective + else + if(prob(70)) + var/datum/objective/assassinate/kill_objective = new + kill_objective.owner = changeling + if(team_mode) //No backstabbing while in a team + kill_objective.find_target_by_role(role = "Changeling", role_type = 1, invert = 1) + else + kill_objective.find_target() + changeling.objectives += kill_objective + else + var/datum/objective/maroon/maroon_objective = new + maroon_objective.owner = changeling + if(team_mode) + maroon_objective.find_target_by_role(role = "Changeling", role_type = 1, invert = 1) + else + maroon_objective.find_target() + changeling.objectives += maroon_objective + + if (!(locate(/datum/objective/escape) in changeling.objectives) && escape_objective_possible) + var/datum/objective/escape/escape_with_identity/identity_theft = new + identity_theft.owner = changeling + identity_theft.target = maroon_objective.target + identity_theft.update_explanation_text() + changeling.objectives += identity_theft + escape_objective_possible = FALSE + + if (!(locate(/datum/objective/escape) in changeling.objectives) && escape_objective_possible) + if(prob(50)) + var/datum/objective/escape/escape_objective = new + escape_objective.owner = changeling + changeling.objectives += escape_objective + else + var/datum/objective/escape/escape_with_identity/identity_theft = new + identity_theft.owner = changeling + if(team_mode) + identity_theft.find_target_by_role(role = "Changeling", role_type = 1, invert = 1) + else + identity_theft.find_target() + changeling.objectives += identity_theft + escape_objective_possible = FALSE + + + +/datum/game_mode/changeling/forge_changeling_objectives(datum/mind/changeling) + if(changeling_team_objective_type) + var/datum/objective/changeling_team_objective/team_objective = new changeling_team_objective_type + team_objective.owner = changeling + changeling.objectives += team_objective + + ..(changeling,1) + else + ..(changeling,0) + + +/datum/game_mode/proc/greet_changeling(datum/mind/changeling, you_are=1) + if (you_are) + changeling.current << "You are [changeling.changeling.changelingID], a changeling! You have absorbed and taken the form of a human." + changeling.current << "Use say \":g message\" to communicate with your fellow changelings." + changeling.current << "You must complete the following tasks:" + + if (changeling.current.mind) + var/mob/living/carbon/human/H = changeling.current + if(H.mind.assigned_role == "Clown") + H << "You have evolved beyond your clownish nature, allowing you to wield weapons without harming yourself." + H.dna.remove_mutation(CLOWNMUT) + + var/obj_count = 1 + for(var/datum/objective/objective in changeling.objectives) + changeling.current << "Objective #[obj_count]: [objective.explanation_text]" + obj_count++ + return + +/*/datum/game_mode/changeling/check_finished() + var/changelings_alive = 0 + for(var/datum/mind/changeling in changelings) + if(!istype(changeling.current,/mob/living/carbon)) + continue + if(changeling.current.stat==2) + continue + changelings_alive++ + + if (changelings_alive) + changelingdeath = 0 + return ..() + else + if (!changelingdeath) + changelingdeathtime = world.time + changelingdeath = 1 + if(world.time-changelingdeathtime > TIME_TO_GET_REVIVED) + return 1 + else + return ..() + return 0*/ + +/datum/game_mode/proc/auto_declare_completion_changeling() + if(changelings.len) + var/text = "
    The changelings were:" + for(var/datum/mind/changeling in changelings) + var/changelingwin = 1 + if(!changeling.current) + changelingwin = 0 + + text += printplayer(changeling) + + //Removed sanity if(changeling) because we -want- a runtime to inform us that the changelings list is incorrect and needs to be fixed. + text += "
    Changeling ID: [changeling.changeling.changelingID]." + text += "
    Genomes Extracted: [changeling.changeling.absorbedcount]" + + if(changeling.objectives.len) + var/count = 1 + for(var/datum/objective/objective in changeling.objectives) + if(objective.check_completion()) + text += "
    Objective #[count]: [objective.explanation_text] Success!" + feedback_add_details("changeling_objective","[objective.type]|SUCCESS") + else + text += "
    Objective #[count]: [objective.explanation_text] Fail." + feedback_add_details("changeling_objective","[objective.type]|FAIL") + changelingwin = 0 + count++ + + if(changelingwin) + text += "
    The changeling was successful!" + feedback_add_details("changeling_success","SUCCESS") + else + text += "
    The changeling has failed." + feedback_add_details("changeling_success","FAIL") + text += "
    " + + world << text + + + return 1 + +/datum/changeling //stores changeling powers, changeling recharge thingie, changeling absorbed DNA and changeling ID (for changeling hivemind) + var/list/stored_profiles = list() //list of datum/changelingprofile + var/datum/changelingprofile/first_prof = null + //var/list/absorbed_dna = list() + //var/list/protected_dna = list() //dna that is not lost when capacity is otherwise full + var/dna_max = 6 //How many extra DNA strands the changeling can store for transformation. + var/absorbedcount = 0 + var/chem_charges = 20 + var/chem_storage = 75 + var/chem_recharge_rate = 1 + var/chem_recharge_slowdown = 0 + var/sting_range = 2 + var/changelingID = "Changeling" + var/geneticdamage = 0 + var/isabsorbing = 0 + var/islinking = 0 + var/geneticpoints = 10 + var/purchasedpowers = list() + var/mimicing = "" + var/canrespec = 0 + var/changeling_speak = 0 + var/datum/dna/chosen_dna + var/obj/effect/proc_holder/changeling/sting/chosen_sting + var/datum/cellular_emporium/cellular_emporium + var/datum/action/innate/cellular_emporium/emporium_action + +/datum/changeling/New(var/gender=FEMALE) + ..() + var/honorific + if(gender == FEMALE) + honorific = "Ms." + else + honorific = "Mr." + if(possible_changeling_IDs.len) + changelingID = pick(possible_changeling_IDs) + possible_changeling_IDs -= changelingID + changelingID = "[honorific] [changelingID]" + else + changelingID = "[honorific] [rand(1,999)]" + + cellular_emporium = new(src) + emporium_action = new(cellular_emporium) + +/datum/changeling/Destroy() + qdel(cellular_emporium) + cellular_emporium = null + . = ..() + +/datum/changeling/proc/regenerate(var/mob/living/carbon/the_ling) + if(istype(the_ling)) + emporium_action.Grant(the_ling) + if(the_ling.stat == DEAD) + chem_charges = min(max(0, chem_charges + chem_recharge_rate - chem_recharge_slowdown), (chem_storage*0.5)) + geneticdamage = max(LING_DEAD_GENETICDAMAGE_HEAL_CAP,geneticdamage-1) + else //not dead? no chem/geneticdamage caps. + chem_charges = min(max(0, chem_charges + chem_recharge_rate - chem_recharge_slowdown), chem_storage) + geneticdamage = max(0, geneticdamage-1) + + +/datum/changeling/proc/get_dna(dna_owner) + for(var/datum/changelingprofile/prof in stored_profiles) + if(dna_owner == prof.name) + return prof + +/datum/changeling/proc/has_dna(datum/dna/tDNA) + for(var/datum/changelingprofile/prof in stored_profiles) + if(tDNA.is_same_as(prof.dna)) + return 1 + return 0 + +/datum/changeling/proc/can_absorb_dna(mob/living/carbon/user, mob/living/carbon/human/target, var/verbose=1) + if(stored_profiles.len) + var/datum/changelingprofile/prof = stored_profiles[1] + if(prof.dna == user.dna && stored_profiles.len >= dna_max)//If our current DNA is the stalest, we gotta ditch it. + if(verbose) + user << "We have reached our capacity to store genetic information! We must transform before absorbing more." + return + if(!target) + return + if((target.disabilities & NOCLONE) || (target.disabilities & HUSK)) + if(verbose) + user << "DNA of [target] is ruined beyond usability!" + return + if(!ishuman(target))//Absorbing monkeys is entirely possible, but it can cause issues with transforming. That's what lesser form is for anyway! + if(verbose) + user << "We could gain no benefit from absorbing a lesser creature." + return + if(has_dna(target.dna)) + if(verbose) + user << "We already have this DNA in storage!" + return + if(!target.has_dna()) + if(verbose) + user << "[target] is not compatible with our biology." + return + return 1 + +/datum/changeling/proc/create_profile(mob/living/carbon/human/H, mob/living/carbon/human/user, protect = 0) + var/datum/changelingprofile/prof = new + + H.dna.real_name = H.real_name //Set this again, just to be sure that it's properly set. + var/datum/dna/new_dna = new H.dna.type + H.dna.copy_dna(new_dna) + prof.dna = new_dna + prof.name = H.real_name + prof.protected = protect + + prof.underwear = H.underwear + prof.undershirt = H.undershirt + prof.socks = H.socks + + var/list/slots = list("head", "wear_mask", "back", "wear_suit", "w_uniform", "shoes", "belt", "gloves", "glasses", "ears", "wear_id", "s_store") + for(var/slot in slots) + if(slot in H.vars) + var/obj/item/I = H.vars[slot] + if(!I) + continue + prof.name_list[slot] = I.name + prof.appearance_list[slot] = I.appearance + prof.flags_cover_list[slot] = I.flags_cover + prof.item_color_list[slot] = I.item_color + prof.item_state_list[slot] = I.item_state + prof.exists_list[slot] = 1 + else + continue + + return prof + +/datum/changeling/proc/add_profile(datum/changelingprofile/prof) + if(stored_profiles.len > dna_max) + if(!push_out_profile()) + return + + stored_profiles += prof + absorbedcount++ + +/datum/changeling/proc/add_new_profile(mob/living/carbon/human/H, mob/living/carbon/human/user, protect = 0) + var/datum/changelingprofile/prof = create_profile(H, protect) + add_profile(prof) + return prof + +/datum/changeling/proc/remove_profile(mob/living/carbon/human/H, force = 0) + for(var/datum/changelingprofile/prof in stored_profiles) + if(H.real_name == prof.name) + if(prof.protected && !force) + continue + stored_profiles -= prof + qdel(prof) + +/datum/changeling/proc/get_profile_to_remove() + for(var/datum/changelingprofile/prof in stored_profiles) + if(!prof.protected) + return prof + +/datum/changeling/proc/push_out_profile() + var/datum/changelingprofile/removeprofile = get_profile_to_remove() + if(removeprofile) + stored_profiles -= removeprofile + return 1 + return 0 + +/proc/changeling_transform(mob/living/carbon/human/user, datum/changelingprofile/chosen_prof) + var/datum/dna/chosen_dna = chosen_prof.dna + user.real_name = chosen_prof.name + user.underwear = chosen_prof.underwear + user.undershirt = chosen_prof.undershirt + user.socks = chosen_prof.socks + + chosen_dna.transfer_identity(user, 1) + user.updateappearance(mutcolor_update=1) + user.update_body() + user.domutcheck() + + //vars hackery. not pretty, but better than the alternative. + for(var/slot in slots) + if(istype(user.vars[slot], slot2type[slot]) && !(chosen_prof.exists_list[slot])) //remove unnecessary flesh items + qdel(user.vars[slot]) + continue + + if((user.vars[slot] && !istype(user.vars[slot], slot2type[slot])) || !(chosen_prof.exists_list[slot])) + continue + + var/obj/item/C + var/equip = 0 + if(!user.vars[slot]) + var/thetype = slot2type[slot] + equip = 1 + C = new thetype(user) + + else if(istype(user.vars[slot], slot2type[slot])) + C = user.vars[slot] + + C.appearance = chosen_prof.appearance_list[slot] + C.name = chosen_prof.name_list[slot] + C.flags_cover = chosen_prof.flags_cover_list[slot] + C.item_color = chosen_prof.item_color_list[slot] + C.item_state = chosen_prof.item_state_list[slot] + if(equip) + user.equip_to_slot_or_del(C, slot2slot[slot]) + + user.regenerate_icons() + +/datum/changelingprofile + var/name = "a bug" + + var/protected = 0 + + var/datum/dna/dna = null + var/list/name_list = list() //associative list of slotname = itemname + var/list/appearance_list = list() + var/list/flags_cover_list = list() + var/list/exists_list = list() + var/list/item_color_list = list() + var/list/item_state_list = list() + + var/underwear + var/undershirt + var/socks + +/datum/changelingprofile/Destroy() + qdel(dna) + . = ..() + +/datum/changelingprofile/proc/copy_profile(datum/changelingprofile/newprofile) + newprofile.name = name + newprofile.protected = protected + newprofile.dna = new dna.type + dna.copy_dna(newprofile.dna) + newprofile.name_list = name_list.Copy() + newprofile.appearance_list = appearance_list.Copy() + newprofile.flags_cover_list = flags_cover_list.Copy() + newprofile.exists_list = exists_list.Copy() + newprofile.item_color_list = item_color_list.Copy() + newprofile.item_state_list = item_state_list.Copy() + newprofile.underwear = underwear + newprofile.undershirt = undershirt + newprofile.socks = socks + +/datum/game_mode/proc/update_changeling_icons_added(datum/mind/changling_mind) + var/datum/atom_hud/antag/hud = huds[ANTAG_HUD_CHANGELING] + hud.join_hud(changling_mind.current) + set_antag_hud(changling_mind.current, "changling") + +/datum/game_mode/proc/update_changeling_icons_removed(datum/mind/changling_mind) + var/datum/atom_hud/antag/hud = huds[ANTAG_HUD_CHANGELING] + hud.leave_hud(changling_mind.current) + set_antag_hud(changling_mind.current, null) diff --git a/code/game/gamemodes/changeling/changeling_power.dm b/code/game/gamemodes/changeling/changeling_power.dm new file mode 100644 index 0000000..8bcc7a8 --- /dev/null +++ b/code/game/gamemodes/changeling/changeling_power.dm @@ -0,0 +1,83 @@ +/* + * Don't use the apostrophe in name or desc. Causes script errors. + * TODO: combine atleast some of the functionality with /proc_holder/spell + */ + +/obj/effect/proc_holder/changeling + panel = "Changeling" + name = "Prototype Sting" + desc = "" // Fluff + var/helptext = "" // Details + var/chemical_cost = 0 // negative chemical cost is for passive abilities (chemical glands) + var/dna_cost = -1 //cost of the sting in dna points. 0 = auto-purchase, -1 = cannot be purchased + var/req_dna = 0 //amount of dna needed to use this ability. Changelings always have atleast 1 + var/req_human = 0 //if you need to be human to use this ability + var/req_stat = CONSCIOUS // CONSCIOUS, UNCONSCIOUS or DEAD + var/genetic_damage = 0 // genetic damage caused by using the sting. Nothing to do with cloneloss. + var/max_genetic_damage = 100 // hard counter for spamming abilities. Not used/balanced much yet. + var/always_keep = 0 // important for abilities like revive that screw you if you lose them. + var/ignores_fakedeath = FALSE // usable with the FAKEDEATH flag + + +/obj/effect/proc_holder/changeling/proc/on_purchase(mob/user) + return + +/obj/effect/proc_holder/changeling/proc/on_refund(mob/user) + return + +/obj/effect/proc_holder/changeling/Click() + var/mob/user = usr + if(!user || !user.mind || !user.mind.changeling) + return + try_to_sting(user) + +/obj/effect/proc_holder/changeling/proc/try_to_sting(mob/user, mob/target) + if(!can_sting(user, target)) + return + var/datum/changeling/c = user.mind.changeling + if(sting_action(user, target)) + sting_feedback(user, target) + take_chemical_cost(c) + +/obj/effect/proc_holder/changeling/proc/sting_action(mob/user, mob/target) + return 0 + +/obj/effect/proc_holder/changeling/proc/sting_feedback(mob/user, mob/target) + return 0 + +/obj/effect/proc_holder/changeling/proc/take_chemical_cost(datum/changeling/changeling) + changeling.chem_charges -= chemical_cost + changeling.geneticdamage += genetic_damage + +//Fairly important to remember to return 1 on success >.< +/obj/effect/proc_holder/changeling/proc/can_sting(mob/user, mob/target) + if(!ishuman(user) && !ismonkey(user)) //typecast everything from mob to carbon from this point onwards + return 0 + if(req_human && !ishuman(user)) + user << "We cannot do that in this form!" + return 0 + var/datum/changeling/c = user.mind.changeling + if(c.chem_charges < chemical_cost) + user << "We require at least [chemical_cost] unit\s of chemicals to do that!" + return 0 + if(c.absorbedcount < req_dna) + user << "We require at least [req_dna] sample\s of compatible DNA." + return 0 + if(req_stat < user.stat) + user << "We are incapacitated." + return 0 + if((user.status_flags & FAKEDEATH) && (!ignores_fakedeath)) + user << "We are incapacitated." + return 0 + if(c.geneticdamage > max_genetic_damage) + user << "Our genomes are still reassembling. We need time to recover first." + return 0 + return 1 + +//used in /mob/Stat() +/obj/effect/proc_holder/changeling/proc/can_be_used_by(mob/user) + if(!ishuman(user) && !ismonkey(user)) + return 0 + if(req_human && !ishuman(user)) + return 0 + return 1 diff --git a/code/game/gamemodes/changeling/evolution_menu.dm b/code/game/gamemodes/changeling/evolution_menu.dm new file mode 100644 index 0000000..0038a5d --- /dev/null +++ b/code/game/gamemodes/changeling/evolution_menu.dm @@ -0,0 +1,104 @@ +/datum/changeling/proc/purchasePower(mob/living/carbon/user, sting_name) + + var/obj/effect/proc_holder/changeling/thepower = null + + for(var/path in subtypesof(/obj/effect/proc_holder/changeling)) + var/obj/effect/proc_holder/changeling/S = new path() + if(S.name == sting_name) + thepower = S + + if(thepower == null) + user << "This is awkward. Changeling power purchase failed, please report this bug to a coder!" + return + + if(absorbedcount < thepower.req_dna) + user << "We lack the energy to evolve this ability!" + return + + if(has_sting(thepower)) + user << "We have already evolved this ability!" + return + + if(thepower.dna_cost < 0) + user << "We cannot evolve this ability." + return + + if(geneticpoints < thepower.dna_cost) + user << "We have reached our capacity for abilities." + return + + if(user.status_flags & FAKEDEATH)//To avoid potential exploits by buying new powers while in stasis, which clears your verblist. + user << "We lack the energy to evolve new abilities right now." + return + + geneticpoints -= thepower.dna_cost + purchasedpowers += thepower + thepower.on_purchase(user) + +//Reselect powers +/datum/changeling/proc/lingRespec(mob/user) + if(!ishuman(user)) + user << "We can't remove our evolutions in this form!" + return + if(canrespec) + user << "We have removed our evolutions from this form, and are now ready to readapt." + user.remove_changeling_powers(1) + canrespec = 0 + user.make_changeling() + return 1 + else + user << "You lack the power to readapt your evolutions!" + return 0 + +/mob/proc/make_changeling() + if(!mind) + return + if(!ishuman(src) && !ismonkey(src)) + return + if(!mind.changeling) + mind.changeling = new /datum/changeling(gender) + if(mind.changeling.purchasedpowers) + remove_changeling_powers(1) + // purchase free powers. + for(var/path in subtypesof(/obj/effect/proc_holder/changeling)) + var/obj/effect/proc_holder/changeling/S = new path() + if(!S.dna_cost) + if(!mind.changeling.has_sting(S)) + mind.changeling.purchasedpowers+=S + S.on_purchase(src) + + var/mob/living/carbon/C = src //only carbons have dna now, so we have to typecaste + if(ishuman(C)) + var/datum/changelingprofile/prof = mind.changeling.add_new_profile(C, src) + mind.changeling.first_prof = prof + return 1 + +/datum/changeling/proc/reset() + chosen_sting = null + geneticpoints = initial(geneticpoints) + sting_range = initial(sting_range) + chem_storage = initial(chem_storage) + chem_recharge_rate = initial(chem_recharge_rate) + chem_charges = min(chem_charges, chem_storage) + chem_recharge_slowdown = initial(chem_recharge_slowdown) + mimicing = "" + +/mob/proc/remove_changeling_powers(keep_free_powers=0) + if(ishuman(src) || ismonkey(src)) + if(mind && mind.changeling) + mind.changeling.changeling_speak = 0 + mind.changeling.reset() + for(var/obj/effect/proc_holder/changeling/p in mind.changeling.purchasedpowers) + if((p.dna_cost == 0 && keep_free_powers) || p.always_keep) + continue + mind.changeling.purchasedpowers -= p + p.on_refund(src) + if(hud_used) + hud_used.lingstingdisplay.icon_state = null + hud_used.lingstingdisplay.invisibility = INVISIBILITY_ABSTRACT + +/datum/changeling/proc/has_sting(obj/effect/proc_holder/changeling/power) + for(var/obj/effect/proc_holder/changeling/P in purchasedpowers) + if(initial(power.name) == P.name) + return 1 + return 0 diff --git a/code/game/gamemodes/changeling/powers/absorb.dm b/code/game/gamemodes/changeling/powers/absorb.dm new file mode 100644 index 0000000..0644516 --- /dev/null +++ b/code/game/gamemodes/changeling/powers/absorb.dm @@ -0,0 +1,107 @@ +/obj/effect/proc_holder/changeling/absorbDNA + name = "Absorb DNA" + desc = "Absorb the DNA of our victim." + chemical_cost = 0 + dna_cost = 0 + req_human = 1 + max_genetic_damage = 100 + +/obj/effect/proc_holder/changeling/absorbDNA/can_sting(mob/living/carbon/user) + if(!..()) + return + + var/datum/changeling/changeling = user.mind.changeling + if(changeling.isabsorbing) + user << "We are already absorbing!" + return + + if(!user.pulling || !iscarbon(user.pulling)) + user << "We must be grabbing a creature to absorb them!" + return + if(user.grab_state <= GRAB_NECK) + user << "We must have a tighter grip to absorb this creature!" + return + + var/mob/living/carbon/target = user.pulling + return changeling.can_absorb_dna(user,target) + + + +/obj/effect/proc_holder/changeling/absorbDNA/sting_action(mob/user) + var/datum/changeling/changeling = user.mind.changeling + var/mob/living/carbon/human/target = user.pulling + changeling.isabsorbing = 1 + for(var/stage = 1, stage<=3, stage++) + switch(stage) + if(1) + user << "This creature is compatible. We must hold still..." + if(2) + user.visible_message("[user] extends a proboscis!", "We extend a proboscis.") + if(3) + user.visible_message("[user] stabs [target] with the proboscis!", "We stab [target] with the proboscis.") + target << "You feel a sharp stabbing pain!" + target.take_overall_damage(40) + + feedback_add_details("changeling_powers","A[stage]") + if(!do_mob(user, target, 150)) + user << "Our absorption of [target] has been interrupted!" + changeling.isabsorbing = 0 + return + + user.visible_message("[user] sucks the fluids from [target]!", "We have absorbed [target].") + target << "You are absorbed by the changeling!" + + if(!changeling.has_dna(target.dna)) + changeling.add_new_profile(target, user) + + if(user.nutrition < NUTRITION_LEVEL_WELL_FED) + user.nutrition = min((user.nutrition + target.nutrition), NUTRITION_LEVEL_WELL_FED) + + if(target.mind)//if the victim has got a mind + + target.mind.show_memory(user, 0) //I can read your mind, kekeke. Output all their notes. + + //Some of target's recent speech, so the changeling can attempt to imitate them better. + //Recent as opposed to all because rounds tend to have a LOT of text. + var/list/recent_speech = list() + + if(target.say_log.len > LING_ABSORB_RECENT_SPEECH) + recent_speech = target.say_log.Copy(target.say_log.len-LING_ABSORB_RECENT_SPEECH+1,0) //0 so len-LING_ARS+1 to end of list + else + for(var/spoken_memory in target.say_log) + if(recent_speech.len >= LING_ABSORB_RECENT_SPEECH) + break + recent_speech += spoken_memory + + if(recent_speech.len) + user.mind.store_memory("Some of [target]'s speech patterns, we should study these to better impersonate them!") + user << "Some of [target]'s speech patterns, we should study these to better impersonate them!" + for(var/spoken_memory in recent_speech) + user.mind.store_memory("\"[spoken_memory]\"") + user << "\"[spoken_memory]\"" + user.mind.store_memory("We have no more knowledge of [target]'s speech patterns.") + user << "We have no more knowledge of [target]'s speech patterns." + + if(target.mind.changeling)//If the target was a changeling, suck out their extra juice and objective points! + changeling.chem_charges += min(target.mind.changeling.chem_charges, changeling.chem_storage) + changeling.absorbedcount += (target.mind.changeling.absorbedcount) + + target.mind.changeling.stored_profiles.len = 1 + target.mind.changeling.absorbedcount = 0 + + + changeling.chem_charges=min(changeling.chem_charges+10, changeling.chem_storage) + + changeling.isabsorbing = 0 + changeling.canrespec = 1 + + target.death(0) + target.Drain() + return 1 + + + +//Absorbs the target DNA. +//datum/changeling/proc/absorb_dna(mob/living/carbon/T, mob/user) + +//datum/changeling/proc/store_dna(datum/dna/new_dna, mob/user) diff --git a/code/game/gamemodes/changeling/powers/adrenaline.dm b/code/game/gamemodes/changeling/powers/adrenaline.dm new file mode 100644 index 0000000..b0d3bd8 --- /dev/null +++ b/code/game/gamemodes/changeling/powers/adrenaline.dm @@ -0,0 +1,22 @@ +/obj/effect/proc_holder/changeling/adrenaline + name = "Adrenaline Sacs" + desc = "We evolve additional sacs of adrenaline throughout our body." + helptext = "Removes all stuns instantly and adds a short-term reduction in further stuns. Can be used while unconscious. Continued use poisons the body." + chemical_cost = 30 + dna_cost = 2 + req_human = 1 + req_stat = UNCONSCIOUS + +//Recover from stuns. +/obj/effect/proc_holder/changeling/adrenaline/sting_action(mob/living/user) + user << "Energy rushes through us.[user.lying ? " We arise." : ""]" + user.SetSleeping(0) + user.SetParalysis(0) + user.SetStunned(0) + user.SetWeakened(0) + user.reagents.add_reagent("changelingAdrenaline", 10) + user.reagents.add_reagent("changelingAdrenaline2", 2) //For a really quick burst of speed + user.adjustStaminaLoss(-75) + feedback_add_details("changeling_powers","UNS") + return 1 + diff --git a/code/game/gamemodes/changeling/powers/augmented_eyesight.dm b/code/game/gamemodes/changeling/powers/augmented_eyesight.dm new file mode 100644 index 0000000..ca45e62 --- /dev/null +++ b/code/game/gamemodes/changeling/powers/augmented_eyesight.dm @@ -0,0 +1,77 @@ +//Augmented Eyesight: Gives you thermal and night vision - bye bye, flashlights. Also, high DNA cost because of how powerful it is. +//Possible todo: make a custom message for directing a penlight/flashlight at the eyes - not sure what would display though. + +/obj/effect/proc_holder/changeling/augmented_eyesight + name = "Augmented Eyesight" + desc = "Creates heat receptors in our eyes and dramatically increases light sensing ability, or protects your vision from flashes." + helptext = "Grants us thermal vision or flash protection. We will become a lot more vulnerable to flash-based devices while thermal vision is active." + chemical_cost = 0 + dna_cost = 2 //Would be 1 without thermal vision + active = 0 //Whether or not vision is enhanced + +/obj/effect/proc_holder/changeling/augmented_eyesight/sting_action(mob/living/carbon/human/user) + if(!istype(user)) + return + if(user.getorgan(/obj/item/organ/cyberimp/eyes/thermals/ling)) + user << "Our eyes are protected from flashes." + var/obj/item/organ/cyberimp/eyes/O = new /obj/item/organ/cyberimp/eyes/shield/ling() + O.Insert(user) + + else + var/obj/item/organ/cyberimp/eyes/O = new /obj/item/organ/cyberimp/eyes/thermals/ling() + O.Insert(user) + + return 1 + + +/obj/effect/proc_holder/changeling/augmented_eyesight/on_refund(mob/user) + var/obj/item/organ/cyberimp/eyes/O = user.getorganslot("eye_ling") + if(O) + O.Remove(user) + qdel(O) + + +/obj/item/organ/cyberimp/eyes/shield/ling + name = "protective membranes" + desc = "These variable transparency organic membranes will protect you from welders and flashes and heal your eye damage." + icon_state = "ling_eyeshield" + eye_color = null + implant_overlay = null + slot = "eye_ling" + status = ORGAN_ORGANIC + +/obj/item/organ/cyberimp/eyes/shield/ling/on_life() + ..() + if(owner.eye_blind>1 || (owner.eye_blind && owner.stat !=UNCONSCIOUS) || owner.eye_damage || owner.eye_blurry || (owner.disabilities & NEARSIGHT)) + owner.reagents.add_reagent("oculine", 1) + +/obj/item/organ/cyberimp/eyes/shield/ling/prepare_eat() + var/obj/S = ..() + S.reagents.add_reagent("oculine", 15) + return S + + +/obj/item/organ/cyberimp/eyes/thermals/ling + name = "heat receptors" + desc = "These heat receptors dramatically increases eyes light sensing ability." + icon_state = "ling_thermal" + eye_color = null + implant_overlay = null + slot = "eye_ling" + status = ORGAN_ORGANIC + aug_message = "You feel a minute twitch in our eyes, and darkness creeps away." + +/obj/item/organ/cyberimp/eyes/thermals/ling/emp_act(severity) + return + +/obj/item/organ/cyberimp/eyes/thermals/ling/Insert(mob/living/carbon/M, special = 0) + ..() + if(ishuman(owner)) + var/mob/living/carbon/human/H = owner + H.weakeyes = 1 + +/obj/item/organ/cyberimp/eyes/thermals/ling/Remove(mob/living/carbon/M, special = 0) + if(ishuman(owner)) + var/mob/living/carbon/human/H = owner + H.weakeyes = 0 + ..() diff --git a/code/game/gamemodes/changeling/powers/biodegrade.dm b/code/game/gamemodes/changeling/powers/biodegrade.dm new file mode 100644 index 0000000..24e2cda --- /dev/null +++ b/code/game/gamemodes/changeling/powers/biodegrade.dm @@ -0,0 +1,96 @@ +/obj/effect/proc_holder/changeling/biodegrade + name = "Biodegrade" + desc = "Dissolves restraints or other objects preventing free movement." + helptext = "This is obvious to nearby people, and can destroy \ + standard restraints and closets." + chemical_cost = 30 //High cost to prevent spam + dna_cost = 2 + req_human = 1 + genetic_damage = 10 + max_genetic_damage = 0 + + +/obj/effect/proc_holder/changeling/biodegrade/sting_action(mob/living/carbon/human/user) + var/used = FALSE // only one form of shackles removed per use + if(!user.restrained() && istype(user.loc, /turf/open)) + user << "We are already free!" + return 0 + + if(user.handcuffed) + var/obj/O = user.get_item_by_slot(slot_handcuffed) + if(!istype(O)) + return 0 + user.visible_message("[user] vomits a glob of \ + acid on \his [O]!", \ + "We vomit acidic ooze onto our \ + restraints!") + + addtimer(src, "dissolve_handcuffs", 30, FALSE, user, O) + used = TRUE + + if(user.wear_suit && user.wear_suit.breakouttime && !used) + var/obj/item/clothing/suit/S = user.get_item_by_slot(slot_wear_suit) + if(!istype(S)) + return 0 + user.visible_message("[user] vomits a glob \ + of acid across the front of \his [S]!", \ + "We vomit acidic ooze onto our straight \ + jacket!") + addtimer(src, "dissolve_straightjacket", 30, FALSE, user, S) + used = TRUE + + + if(istype(user.loc, /obj/structure/closet) && !used) + var/obj/structure/closet/C = user.loc + if(!istype(C)) + return 0 + C.visible_message("[C]'s hinges suddenly \ + begin to melt and run!") + user << "We vomit acidic goop onto the \ + interior of [C]!" + addtimer(src, "open_closet", 70, FALSE, user, C) + used = TRUE + + if(istype(user.loc, /obj/structure/spider/cocoon) && !used) + var/obj/structure/spider/cocoon/C = user.loc + if(!istype(C)) + return 0 + C.visible_message("[src] shifts and starts to fall apart!") + user << "We secrete acidic enzymes from our skin and begin melting our cocoon..." + addtimer(src, "dissolve_cocoon", 25, FALSE, user, C) //Very short because it's just webs + used = TRUE + + if(used) + feedback_add_details("changeling_powers","BD") + return 1 + +/obj/effect/proc_holder/changeling/biodegrade/proc/dissolve_handcuffs(mob/living/carbon/human/user, obj/O) + if(O && user.handcuffed == O) + user.unEquip(O) + O.visible_message("[O] dissolves into a \ + puddle of sizzling goop.") + O.loc = get_turf(user) + qdel(O) + +/obj/effect/proc_holder/changeling/biodegrade/proc/dissolve_straightjacket(mob/living/carbon/human/user, obj/S) + if(S && user.wear_suit == S) + user.unEquip(S) + S.visible_message("[S] dissolves into a puddle of sizzling goop.") + S.loc = get_turf(user) + qdel(S) + +/obj/effect/proc_holder/changeling/biodegrade/proc/open_closet(mob/living/carbon/human/user, obj/structure/closet/C) + if(C && user.loc == C) + C.visible_message("[C]'s door breaks and \ + opens!") + C.welded = FALSE + C.locked = FALSE + C.broken = TRUE + C.open() + user << "We open the container restraining \ + us!" + +/obj/effect/proc_holder/changeling/biodegrade/proc/dissolve_cocoon(mob/living/carbon/human/user, obj/structure/spider/cocoon/C) + if(C && user.loc == C) + qdel(C) //The cocoon's destroy will move the changeling outside of it without interference + user << "We dissolve the cocoon!" diff --git a/code/game/gamemodes/changeling/powers/chameleon_skin.dm b/code/game/gamemodes/changeling/powers/chameleon_skin.dm new file mode 100644 index 0000000..9a52ad8 --- /dev/null +++ b/code/game/gamemodes/changeling/powers/chameleon_skin.dm @@ -0,0 +1,30 @@ +/obj/effect/proc_holder/changeling/chameleon_skin + name = "Chameleon Skin" + desc = "Our skin pigmentation rapidly changes to suit our current environment." + helptext = "Allows us to become invisible after a few seconds of standing still. Can be toggled on and off." + dna_cost = 2 + chemical_cost = 25 + req_human = 1 + genetic_damage = 10 + max_genetic_damage = 50 + + +/obj/effect/proc_holder/changeling/chameleon_skin/sting_action(mob/user) + var/mob/living/carbon/human/H = user //SHOULD always be human, because req_human = 1 + if(!istype(H)) // req_human could be done in can_sting stuff. + return + var/datum/mutation/human/HM = mutations_list[CHAMELEON] + if(HM in H.dna.mutations) + HM.force_lose(H) + else + HM.force_give(H) + + feedback_add_details("changeling_powers","CS") + return 1 + +/obj/effect/proc_holder/changeling/chameleon_skin/on_refund(mob/user) + if(user.has_dna()) + var/mob/living/carbon/C = user + var/datum/mutation/human/HM = mutations_list[CHAMELEON] + if(HM in C.dna.mutations) + HM.force_lose(C) \ No newline at end of file diff --git a/code/game/gamemodes/changeling/powers/digitalcamo.dm b/code/game/gamemodes/changeling/powers/digitalcamo.dm new file mode 100644 index 0000000..fb70a70 --- /dev/null +++ b/code/game/gamemodes/changeling/powers/digitalcamo.dm @@ -0,0 +1,25 @@ +/obj/effect/proc_holder/changeling/digitalcamo + name = "Digital Camouflage" + desc = "By evolving the ability to distort our form and proprotions, we defeat common altgorithms used to detect lifeforms on cameras." + helptext = "We cannot be tracked by camera or seen by AI units while using this skill. However, humans looking at us will find us... uncanny." + dna_cost = 1 + +//Prevents AIs tracking you but makes you easily detectable to the human-eye. +/obj/effect/proc_holder/changeling/digitalcamo/sting_action(mob/user) + + if(user.digitalcamo) + user << "We return to normal." + user.digitalinvis = 0 + user.digitalcamo = 0 + else + user << "We distort our form to hide from the AI" + user.digitalcamo = 1 + user.digitalinvis = 1 + + + feedback_add_details("changeling_powers","CAM") + return 1 + +/obj/effect/proc_holder/changeling/digitalcamo/on_refund(mob/user) + user.digitalcamo = 0 + user.digitalinvis = 0 \ No newline at end of file diff --git a/code/game/gamemodes/changeling/powers/fakedeath.dm b/code/game/gamemodes/changeling/powers/fakedeath.dm new file mode 100644 index 0000000..454d51b --- /dev/null +++ b/code/game/gamemodes/changeling/powers/fakedeath.dm @@ -0,0 +1,39 @@ +/obj/effect/proc_holder/changeling/fakedeath + name = "Reviving Stasis" + desc = "We fall into a stasis, allowing us to regenerate and trick our enemies." + chemical_cost = 15 + dna_cost = 0 + req_dna = 1 + req_stat = DEAD + max_genetic_damage = 100 + + +//Fake our own death and fully heal. You will appear to be dead but regenerate fully after a short delay. +/obj/effect/proc_holder/changeling/fakedeath/sting_action(mob/living/user) + user << "We begin our stasis, preparing energy to arise once more." + if(user.stat != DEAD) + user.emote("deathgasp") + user.tod = worldtime2text() + user.status_flags |= FAKEDEATH //play dead + user.update_stat() + user.update_canmove() + + addtimer(src, "ready_to_regenerate", LING_FAKEDEATH_TIME, FALSE, user) + + feedback_add_details("changeling_powers","FD") + return 1 + +/obj/effect/proc_holder/changeling/fakedeath/proc/ready_to_regenerate(mob/user) + if(user && user.mind && user.mind.changeling && user.mind.changeling.purchasedpowers) + user << "We are ready to revive." + user.mind.changeling.purchasedpowers += new /obj/effect/proc_holder/changeling/revive(null) + +/obj/effect/proc_holder/changeling/fakedeath/can_sting(mob/user) + if(user.status_flags & FAKEDEATH) + user << "We are already reviving." + return + if(!user.stat) //Confirmation for living changelings if they want to fake their death + switch(alert("Are we sure we wish to fake our own death?",,"Yes", "No")) + if("No") + return + return ..() diff --git a/code/game/gamemodes/changeling/powers/fleshmend.dm b/code/game/gamemodes/changeling/powers/fleshmend.dm new file mode 100644 index 0000000..b9668bd --- /dev/null +++ b/code/game/gamemodes/changeling/powers/fleshmend.dm @@ -0,0 +1,58 @@ +/obj/effect/proc_holder/changeling/fleshmend + name = "Fleshmend" + desc = "Our flesh rapidly regenerates, healing our burns, bruises and \ + shortness of breath. Effectiveness decreases with quick, \ + repeated use." + helptext = "Heals a moderate amount of damage over a short period of \ + time. Can be used while unconscious. Does not regrow limbs or \ + restore lost blood." + chemical_cost = 20 + dna_cost = 2 + req_stat = UNCONSCIOUS + var/recent_uses = 1 //The factor of which the healing should be divided by + var/healing_ticks = 10 + // The ideal total healing amount, + // divided by healing_ticks to get heal/tick + var/total_healing = 100 + +/obj/effect/proc_holder/changeling/fleshmend/New() + ..() + START_PROCESSING(SSobj, src) + +/obj/effect/proc_holder/changeling/fleshmend/Destroy() + STOP_PROCESSING(SSobj, src) + ..() + +/obj/effect/proc_holder/changeling/fleshmend/process() + if(recent_uses > 1) + recent_uses = max(1, recent_uses - (1 / healing_ticks)) + +//Starts healing you every second for 10 seconds. +//Can be used whilst unconscious. +/obj/effect/proc_holder/changeling/fleshmend/sting_action(mob/living/user) + user << "We begin to heal rapidly." + if(recent_uses > 1) + user << "Our healing's effectiveness is reduced \ + by quick repeated use!" + + recent_uses++ + addtimer(src, "fleshmend", 0, FALSE, user) + + feedback_add_details("changeling_powers","RR") + return 1 + +/obj/effect/proc_holder/changeling/fleshmend/proc/fleshmend(mob/living/user) + + // The healing itself - doesn't heal toxin damage + // (that's anatomic panacea) and the effectiveness decreases with + // each use in a short timespan + for(var/i in 1 to healing_ticks) + if(user) + var/healpertick = -(total_healing / healing_ticks) + user.adjustBruteLoss(healpertick / recent_uses, 0) + user.adjustOxyLoss(healpertick / recent_uses, 0) + user.adjustFireLoss(healpertick / recent_uses, 0) + user.updatehealth() + else + break + sleep(10) diff --git a/code/game/gamemodes/changeling/powers/glands.dm b/code/game/gamemodes/changeling/powers/glands.dm new file mode 100644 index 0000000..e69de29 diff --git a/code/game/gamemodes/changeling/powers/headcrab.dm b/code/game/gamemodes/changeling/powers/headcrab.dm new file mode 100644 index 0000000..78a0e5f --- /dev/null +++ b/code/game/gamemodes/changeling/powers/headcrab.dm @@ -0,0 +1,38 @@ +/obj/effect/proc_holder/changeling/headcrab + name = "Last Resort" + desc = "We sacrifice our current body in a moment of need, placing us in control of a vessel." + helptext = "We will be placed in control of a small, fragile creature. We may attack a corpse like this to plant an egg which will slowly mature into a new form for us." + chemical_cost = 20 + dna_cost = 1 + req_human = 1 + +/obj/effect/proc_holder/changeling/headcrab/sting_action(mob/user) + var/datum/mind/M = user.mind + var/list/organs = user.getorganszone("head", 1) + + for(var/obj/item/organ/I in organs) + I.Remove(user, 1) + + explosion(get_turf(user),0,0,2,0,silent=1) + for(var/mob/living/carbon/human/H in range(2,user)) + H << "You are blinded by a shower of blood!" + H.Stun(1) + H.blur_eyes(20) + H.adjust_eye_damage(5) + H.confused += 3 + for(var/mob/living/silicon/S in range(2,user)) + S << "Your sensors are disabled by a shower of blood!" + S.Weaken(3) + var/turf = get_turf(user) + spawn(5) // So it's not killed in explosion + var/mob/living/simple_animal/hostile/headcrab/crab = new(turf) + for(var/obj/item/organ/I in organs) + I.loc = crab + crab.origin = M + if(crab.origin) + crab.origin.active = 1 + crab.origin.transfer_to(crab) + crab << "You burst out of the remains of your former body in a shower of gore!" + user.gib() + feedback_add_details("changeling_powers","LR") + return 1 \ No newline at end of file diff --git a/code/game/gamemodes/changeling/powers/hivemind.dm b/code/game/gamemodes/changeling/powers/hivemind.dm new file mode 100644 index 0000000..faf683d --- /dev/null +++ b/code/game/gamemodes/changeling/powers/hivemind.dm @@ -0,0 +1,96 @@ +//HIVEMIND COMMUNICATION (:g) +/obj/effect/proc_holder/changeling/hivemind_comms + name = "Hivemind Communication" + desc = "We tune our senses to the airwaves to allow us to discreetly communicate and exchange DNA with other changelings." + helptext = "We will be able to talk with other changelings with :g. Exchanged DNA do not count towards absorb objectives." + dna_cost = 0 + chemical_cost = -1 + +/obj/effect/proc_holder/changeling/hivemind_comms/on_purchase(var/mob/user) + ..() + var/datum/changeling/changeling=user.mind.changeling + changeling.changeling_speak = 1 + user << "Use say \":g message\" to communicate with the other changelings." + var/obj/effect/proc_holder/changeling/hivemind_upload/S1 = new + if(!changeling.has_sting(S1)) + changeling.purchasedpowers+=S1 + var/obj/effect/proc_holder/changeling/hivemind_download/S2 = new + if(!changeling.has_sting(S2)) + changeling.purchasedpowers+=S2 + return + +// HIVE MIND UPLOAD/DOWNLOAD DNA +var/list/datum/dna/hivemind_bank = list() + +/obj/effect/proc_holder/changeling/hivemind_upload + name = "Hive Channel DNA" + desc = "Allows us to channel DNA in the airwaves to allow other changelings to absorb it." + chemical_cost = 10 + dna_cost = -1 + +/obj/effect/proc_holder/changeling/hivemind_upload/sting_action(var/mob/user) + var/datum/changeling/changeling = user.mind.changeling + var/list/names = list() + for(var/datum/changelingprofile/prof in changeling.stored_profiles) + if(!(prof in hivemind_bank)) + names += prof.name + + if(names.len <= 0) + user << "The airwaves already have all of our DNA." + return + + var/chosen_name = input("Select a DNA to channel: ", "Channel DNA", null) as null|anything in names + if(!chosen_name) + return + + var/datum/changelingprofile/chosen_dna = changeling.get_dna(chosen_name) + if(!chosen_dna) + return + + var/datum/changelingprofile/uploaded_dna = new chosen_dna.type + chosen_dna.copy_profile(uploaded_dna) + hivemind_bank += uploaded_dna + user << "We channel the DNA of [chosen_name] to the air." + feedback_add_details("changeling_powers","HU") + return 1 + +/obj/effect/proc_holder/changeling/hivemind_download + name = "Hive Absorb DNA" + desc = "Allows us to absorb DNA that has been channeled to the airwaves. Does not count towards absorb objectives." + chemical_cost = 10 + dna_cost = -1 + +/obj/effect/proc_holder/changeling/hivemind_download/can_sting(mob/living/carbon/user) + if(!..()) + return + var/datum/changeling/changeling = user.mind.changeling + var/datum/changelingprofile/first_prof = changeling.stored_profiles[1] + if(first_prof.name == user.real_name)//If our current DNA is the stalest, we gotta ditch it. + user << "We have reached our capacity to store genetic information! We must transform before absorbing more." + return + return 1 + +/obj/effect/proc_holder/changeling/hivemind_download/sting_action(mob/user) + var/datum/changeling/changeling = user.mind.changeling + var/list/names = list() + for(var/datum/changelingprofile/prof in hivemind_bank) + if(!(prof in changeling.stored_profiles)) + names[prof.name] = prof + + if(names.len <= 0) + user << "There's no new DNA to absorb from the air." + return + + var/S = input("Select a DNA absorb from the air: ", "Absorb DNA", null) as null|anything in names + if(!S) + return + var/datum/changelingprofile/chosen_prof = names[S] + if(!chosen_prof) + return + + var/datum/changelingprofile/downloaded_prof = new chosen_prof.type + chosen_prof.copy_profile(downloaded_prof) + changeling.add_profile(downloaded_prof) + user << "We absorb the DNA of [S] from the air." + feedback_add_details("changeling_powers","HD") + return 1 diff --git a/code/game/gamemodes/changeling/powers/humanform.dm b/code/game/gamemodes/changeling/powers/humanform.dm new file mode 100644 index 0000000..fef474a --- /dev/null +++ b/code/game/gamemodes/changeling/powers/humanform.dm @@ -0,0 +1,34 @@ +/obj/effect/proc_holder/changeling/humanform + name = "Human form" + desc = "We change into a human." + chemical_cost = 5 + genetic_damage = 3 + req_dna = 1 + max_genetic_damage = 3 + + +//Transform into a human. +/obj/effect/proc_holder/changeling/humanform/sting_action(mob/living/carbon/user) + var/datum/changeling/changeling = user.mind.changeling + var/list/names = list() + for(var/datum/changelingprofile/prof in changeling.stored_profiles) + names += "[prof.name]" + + var/chosen_name = input("Select the target DNA: ", "Target DNA", null) as null|anything in names + if(!chosen_name) + return + + var/datum/changelingprofile/chosen_prof = changeling.get_dna(chosen_name) + if(!chosen_prof) + return + if(!user || user.notransform) + return 0 + user << "We transform our appearance." + + changeling.purchasedpowers -= src + + var/newmob = user.humanize(TR_KEEPITEMS | TR_KEEPIMPLANTS | TR_KEEPORGANS | TR_KEEPDAMAGE | TR_KEEPVIRUS) + + changeling_transform(newmob, chosen_prof) + feedback_add_details("changeling_powers","LFT") + return 1 diff --git a/code/game/gamemodes/changeling/powers/lesserform.dm b/code/game/gamemodes/changeling/powers/lesserform.dm new file mode 100644 index 0000000..9959a68 --- /dev/null +++ b/code/game/gamemodes/changeling/powers/lesserform.dm @@ -0,0 +1,18 @@ +/obj/effect/proc_holder/changeling/lesserform + name = "Lesser form" + desc = "We debase ourselves and become lesser. We become a monkey." + chemical_cost = 5 + dna_cost = 1 + genetic_damage = 3 + req_human = 1 + +//Transform into a monkey. +/obj/effect/proc_holder/changeling/lesserform/sting_action(mob/living/carbon/human/user) + if(!user || user.notransform) + return 0 + user << "Our genes cry out!" + + user.monkeyize(TR_KEEPITEMS | TR_KEEPIMPLANTS | TR_KEEPORGANS | TR_KEEPDAMAGE | TR_KEEPVIRUS | TR_KEEPSE) + + feedback_add_details("changeling_powers","LF") + return 1 \ No newline at end of file diff --git a/code/game/gamemodes/changeling/powers/linglink.dm b/code/game/gamemodes/changeling/powers/linglink.dm new file mode 100644 index 0000000..3b90ee1 --- /dev/null +++ b/code/game/gamemodes/changeling/powers/linglink.dm @@ -0,0 +1,69 @@ +/obj/effect/proc_holder/changeling/linglink + name = "Hivemind Link" + desc = "Link your victim's mind into the hivemind for personal interrogation" + chemical_cost = 0 + dna_cost = 0 + req_human = 1 + max_genetic_damage = 100 + +/obj/effect/proc_holder/changeling/linglink/can_sting(mob/living/carbon/user) + if(!..()) + return + var/datum/changeling/changeling = user.mind.changeling + if(changeling.islinking) + user << "We have already formed a link with the victim!" + return + if(!user.pulling) + user << "We must be tightly grabbing a creature to link with them!" + return + if(!iscarbon(user.pulling)) + user << "We cannot link with this creature!" + return + var/mob/living/carbon/target = user.pulling + if(!target.mind) + user << "The victim has no mind to link to!" + return + if(target.stat == DEAD) + user << "The victim is dead, you cannot link to a dead mind!" + return + if(target.mind.changeling) + user << "The victim is already a part of the hivemind!" + return + if(user.grab_state <= GRAB_NECK) + user << "We must have a tighter grip to link with this creature!" + return + return changeling.can_absorb_dna(user,target) + +/obj/effect/proc_holder/changeling/linglink/sting_action(mob/user) + var/datum/changeling/changeling = user.mind.changeling + var/mob/living/carbon/human/target = user.pulling + changeling.islinking = 1 + for(var/i in 1 to 3) + switch(i) + if(1) + user << "This creature is compatible. We must hold still..." + if(2) + user << "We stealthily stab [target] with a minor proboscis..." + target << "You experience a stabbing sensation and your ears begin to ring..." + if(3) + user << "You mold the [target]'s mind like clay, they can now speak in the hivemind!" + target << "A migraine throbs behind your eyes, you hear yourself screaming - but your mouth has not opened!" + for(var/mob/M in mob_list) + if(M.lingcheck() == 2) + M << "We can sense a foreign presence in the hivemind..." + target.mind.linglink = 1 + target.say(":g AAAAARRRRGGGGGHHHHH!!") + target << "You can now communicate in the changeling hivemind, say \":g message\" to communicate!" + target.reagents.add_reagent("salbutamol", 40) // So they don't choke to death while you interrogate them + sleep(1800) + feedback_add_details("changeling_powers","A [i]") + if(!do_mob(user, target, 20)) + user << "Our link with [target] has ended!" + changeling.islinking = 0 + target.mind.linglink = 0 + return + + changeling.islinking = 0 + target.mind.linglink = 0 + user << "You cannot sustain the connection any longer, your victim fades from the hivemind" + target << "The link cannot be sustained any longer, your connection to the hivemind has faded!" diff --git a/code/game/gamemodes/changeling/powers/mimic_voice.dm b/code/game/gamemodes/changeling/powers/mimic_voice.dm new file mode 100644 index 0000000..3fdda9c --- /dev/null +++ b/code/game/gamemodes/changeling/powers/mimic_voice.dm @@ -0,0 +1,28 @@ +/obj/effect/proc_holder/changeling/mimicvoice + name = "Mimic Voice" + desc = "We shape our vocal glands to sound like a desired voice." + helptext = "Will turn your voice into the name that you enter. We must constantly expend chemicals to maintain our form like this." + chemical_cost = 0 //constant chemical drain hardcoded + dna_cost = 1 + req_human = 1 + + +// Fake Voice +/obj/effect/proc_holder/changeling/mimicvoice/sting_action(mob/user) + var/datum/changeling/changeling=user.mind.changeling + if(changeling.mimicing) + changeling.mimicing = "" + changeling.chem_recharge_slowdown -= 0.5 + user << "We return our vocal glands to their original position." + return + + var/mimic_voice = stripped_input(user, "Enter a name to mimic.", "Mimic Voice", null, MAX_NAME_LEN) + if(!mimic_voice) + return + + changeling.mimicing = mimic_voice + changeling.chem_recharge_slowdown += 0.5 + user << "We shape our glands to take the voice of [mimic_voice], this will slow down regenerating chemicals while active." + user << "Use this power again to return to our original voice and return chemical production to normal levels." + + feedback_add_details("changeling_powers","MV") diff --git a/code/game/gamemodes/changeling/powers/mutations.dm b/code/game/gamemodes/changeling/powers/mutations.dm new file mode 100644 index 0000000..6849bf5 --- /dev/null +++ b/code/game/gamemodes/changeling/powers/mutations.dm @@ -0,0 +1,336 @@ +/* + Changeling Mutations! ~By Miauw (ALL OF IT :V) + Contains: + Arm Blade + Space Suit + Shield + Armor +*/ + + +//Parent to shields and blades because muh copypasted code. +/obj/effect/proc_holder/changeling/weapon + name = "Organic Weapon" + desc = "Go tell a coder if you see this" + helptext = "Yell at Miauw and/or Perakp" + chemical_cost = 1000 + dna_cost = -1 + genetic_damage = 1000 + + var/weapon_type + var/weapon_name_simple + +/obj/effect/proc_holder/changeling/weapon/try_to_sting(mob/user, mob/target) + for(var/obj/item/I in user.held_items) + if(check_weapon(user, I)) + return + ..(user, target) + +/obj/effect/proc_holder/changeling/weapon/proc/check_weapon(mob/user, obj/item/hand_item) + if(istype(hand_item, weapon_type)) + playsound(user, 'sound/effects/blobattack.ogg', 30, 1) + qdel(hand_item) + user.visible_message("With a sickening crunch, [user] reforms their [weapon_name_simple] into an arm!", "We assimilate the [weapon_name_simple] back into our body.", "The [user.get_active_held_item()] is stuck to your hand, you cannot grow a [weapon_name_simple] over it!" + return + var/limb_regen = 0 + if(user.active_hand_index % 2 == 0) //we regen the arm before changing it into the weapon + limb_regen = user.regenerate_limb("r_arm", 1) + else + limb_regen = user.regenerate_limb("l_arm", 1) + if(limb_regen) + user.visible_message("[user]'s missing arm reforms, making a loud, grotesque sound!", "Your arm regrows, making a loud, crunchy sound and giving you great pain!", "You hear organic matter ripping and tearing!") + user.emote("scream") + var/obj/item/W = new weapon_type(user) + user.put_in_hands(W) + playsound(user, 'sound/effects/blobattack.ogg', 30, 1) + return W + +/obj/effect/proc_holder/changeling/weapon/on_refund(mob/user) + for(var/obj/item/I in user.held_items) + check_weapon(user, I) + + +//Parent to space suits and armor. +/obj/effect/proc_holder/changeling/suit + name = "Organic Suit" + desc = "Go tell a coder if you see this" + helptext = "Yell at Miauw and/or Perakp" + chemical_cost = 1000 + dna_cost = -1 + genetic_damage = 1000 + + var/helmet_type = /obj/item + var/suit_type = /obj/item + var/suit_name_simple = " " + var/helmet_name_simple = " " + var/recharge_slowdown = 0 + var/blood_on_castoff = 0 + +/obj/effect/proc_holder/changeling/suit/try_to_sting(mob/user, mob/target) + if(check_suit(user)) + return + var/mob/living/carbon/human/H = user + ..(H, target) + +//checks if we already have an organic suit and casts it off. +/obj/effect/proc_holder/changeling/suit/proc/check_suit(mob/user) + var/datum/changeling/changeling = user.mind.changeling + if(!ishuman(user) || !changeling) + return 1 + var/mob/living/carbon/human/H = user + if(istype(H.wear_suit, suit_type) || istype(H.head, helmet_type)) + H.visible_message("[H] casts off their [suit_name_simple]!", "We cast off our [suit_name_simple][genetic_damage > 0 ? ", temporarily weakening our genomes." : "."]", "You hear the organic matter ripping and tearing!") + H.unEquip(H.head, TRUE) //The qdel on dropped() takes care of it + H.unEquip(H.wear_suit, TRUE) + H.update_inv_wear_suit() + H.update_inv_head() + H.update_hair() + + if(blood_on_castoff) + H.add_splatter_floor() + playsound(H.loc, 'sound/effects/splat.ogg', 50, 1) //So real sounds + + changeling.geneticdamage += genetic_damage //Casting off a space suit leaves you weak for a few seconds. + changeling.chem_recharge_slowdown -= recharge_slowdown + return 1 + +/obj/effect/proc_holder/changeling/suit/on_refund(mob/user) + if(!ishuman(user)) + return + var/mob/living/carbon/human/H = user + check_suit(H) + +/obj/effect/proc_holder/changeling/suit/sting_action(mob/living/carbon/human/user) + if(!user.canUnEquip(user.wear_suit)) + user << "\the [user.wear_suit] is stuck to your body, you cannot grow a [suit_name_simple] over it!" + return + if(!user.canUnEquip(user.head)) + user << "\the [user.head] is stuck on your head, you cannot grow a [helmet_name_simple] over it!" + return + + user.unEquip(user.head) + user.unEquip(user.wear_suit) + + user.equip_to_slot_if_possible(new suit_type(user), slot_wear_suit, 1, 1, 1) + user.equip_to_slot_if_possible(new helmet_type(user), slot_head, 1, 1, 1) + + var/datum/changeling/changeling = user.mind.changeling + changeling.chem_recharge_slowdown += recharge_slowdown + return 1 + + +//fancy headers yo +/***************************************\ +|***************ARM BLADE***************| +\***************************************/ +/obj/effect/proc_holder/changeling/weapon/arm_blade + name = "Arm Blade" + desc = "We reform one of our arms into a deadly blade." + helptext = "We may retract our armblade in the same manner as we form it. Cannot be used while in lesser form." + chemical_cost = 20 + dna_cost = 2 + genetic_damage = 10 + req_human = 1 + max_genetic_damage = 20 + weapon_type = /obj/item/weapon/melee/arm_blade + weapon_name_simple = "blade" + +/obj/item/weapon/melee/arm_blade + name = "arm blade" + desc = "A grotesque blade made out of bone and flesh that cleaves through people as a hot knife through butter." + icon = 'icons/obj/weapons.dmi' + icon_state = "arm_blade" + item_state = "arm_blade" + flags = ABSTRACT | NODROP | DROPDEL + w_class = 5.0 + force = 25 + throwforce = 0 //Just to be on the safe side + throw_range = 0 + throw_speed = 0 + sharpness = IS_SHARP + +/obj/item/weapon/melee/arm_blade/New(location,silent) + ..() + if(ismob(loc) && !silent) + loc.visible_message("A grotesque blade forms around [loc.name]\'s arm!", "Our arm twists and mutates, transforming it into a deadly blade.", "You hear organic matter ripping and tearing!") + +/obj/item/weapon/melee/arm_blade/afterattack(atom/target, mob/user, proximity) + if(!proximity) + return + if(istype(target, /obj/structure/table)) + var/obj/structure/table/T = target + T.deconstruct(FALSE) + + else if(istype(target, /obj/machinery/computer)) + var/obj/machinery/computer/C = target + C.attack_alien(user) //muh copypasta + + else if(istype(target, /obj/machinery/door/airlock)) + var/obj/machinery/door/airlock/A = target + + if(!A.requiresID() || A.allowed(user)) //This is to prevent stupid shit like hitting a door with an arm blade, the door opening because you have acces and still getting a "the airlocks motors resist our efforts to force it" message. + return + if(A.locked) + user << "The airlock's bolts prevent it from being forced!" + return + + if(A.hasPower()) + user.visible_message("[user] jams [src] into the airlock and starts prying it open!", "We start forcing the airlock open.", \ + "You hear a metal screeching sound.") + playsound(A, 'sound/machines/airlock_alien_prying.ogg', 100, 1) + if(!do_after(user, 100, target = A)) + return + //user.say("Heeeeeeeeeerrre's Johnny!") + user.visible_message("[user] forces the airlock to open with their [src]!", "We force the airlock to open.", \ + "You hear a metal screeching sound.") + A.open(2) + + +/***************************************\ +|****************SHIELD*****************| +\***************************************/ +/obj/effect/proc_holder/changeling/weapon/shield + name = "Organic Shield" + desc = "We reform one of our arms into a hard shield." + helptext = "Organic tissue cannot resist damage forever; the shield will break after it is hit too much. The more genomes we absorb, the stronger it is. Cannot be used while in lesser form." + chemical_cost = 20 + dna_cost = 1 + genetic_damage = 12 + req_human = 1 + max_genetic_damage = 20 + + weapon_type = /obj/item/weapon/shield/changeling + weapon_name_simple = "shield" + +/obj/effect/proc_holder/changeling/weapon/shield/sting_action(mob/user) + var/datum/changeling/changeling = user.mind.changeling //So we can read the absorbedcount. + if(!changeling) + return + + var/obj/item/weapon/shield/changeling/S = ..(user) + S.remaining_uses = round(changeling.absorbedcount * 3) + return 1 + +/obj/item/weapon/shield/changeling + name = "shield-like mass" + desc = "A mass of tough, boney tissue. You can still see the fingers as a twisted pattern in the shield." + flags = ABSTRACT | NODROP | DROPDEL + icon = 'icons/obj/weapons.dmi' + icon_state = "ling_shield" + block_chance = 50 + + var/remaining_uses //Set by the changeling ability. + +/obj/item/weapon/shield/changeling/New() + ..() + if(ismob(loc)) + loc.visible_message("The end of [loc.name]\'s hand inflates rapidly, forming a huge shield-like mass!", "We inflate our hand into a strong shield.", "You hear organic matter ripping and tearing!") + +/obj/item/weapon/shield/changeling/hit_reaction() + if(remaining_uses < 1) + if(ishuman(loc)) + var/mob/living/carbon/human/H = loc + H.visible_message("With a sickening crunch, [H] reforms his shield into an arm!", "We assimilate our shield into our body", "[loc.name]\'s flesh rapidly inflates, forming a bloated mass around their body!", "We inflate our flesh, creating a spaceproof suit!", "You hear organic matter ripping and tearing!") + START_PROCESSING(SSobj, src) + +/obj/item/clothing/suit/space/changeling/process() + if(ishuman(loc)) + var/mob/living/carbon/human/H = loc + H.reagents.add_reagent("salbutamol", REAGENTS_METABOLISM) + +/obj/item/clothing/head/helmet/space/changeling + name = "flesh mass" + icon_state = "lingspacehelmet" + desc = "A covering of pressure and temperature-resistant organic tissue with a glass-like chitin front." + flags = STOPSPRESSUREDMAGE | NODROP | DROPDEL //Again, no THICKMATERIAL. + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 90, acid = 90) + flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH + +/***************************************\ +|*****************ARMOR*****************| +\***************************************/ +/obj/effect/proc_holder/changeling/suit/armor + name = "Chitinous Armor" + desc = "We turn our skin into tough chitin to protect us from damage." + helptext = "Upkeep of the armor requires a low expenditure of chemicals. The armor is strong against brute force, but does not provide much protection from lasers. Retreating the armor damages our genomes. Cannot be used in lesser form." + chemical_cost = 20 + dna_cost = 1 + genetic_damage = 11 + req_human = 1 + max_genetic_damage = 20 + recharge_slowdown = 0.25 + + suit_type = /obj/item/clothing/suit/armor/changeling + helmet_type = /obj/item/clothing/head/helmet/changeling + suit_name_simple = "armor" + helmet_name_simple = "helmet" + +/obj/item/clothing/suit/armor/changeling + name = "chitinous mass" + desc = "A tough, hard covering of black chitin." + icon_state = "lingarmor" + flags = NODROP | DROPDEL + body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS + armor = list(melee = 40, bullet = 40, laser = 40, energy = 20, bomb = 10, bio = 4, rad = 0, fire = 90, acid = 90) + flags_inv = HIDEJUMPSUIT + cold_protection = 0 + heat_protection = 0 + +/obj/item/clothing/suit/armor/changeling/New() + ..() + if(ismob(loc)) + loc.visible_message("[loc.name]\'s flesh turns black, quickly transforming into a hard, chitinous mass!", "We harden our flesh, creating a suit of armor!", "You hear organic matter ripping and tearing!") + +/obj/item/clothing/head/helmet/changeling + name = "chitinous mass" + desc = "A tough, hard covering of black chitin with transparent chitin in front." + icon_state = "lingarmorhelmet" + flags = NODROP | DROPDEL + armor = list(melee = 40, bullet = 40, laser = 40, energy = 20, bomb = 10, bio = 4, rad = 0, fire = 90, acid = 90) + flags_inv = HIDEEARS|HIDEHAIR|HIDEEYES|HIDEFACIALHAIR|HIDEFACE diff --git a/code/game/gamemodes/changeling/powers/panacea.dm b/code/game/gamemodes/changeling/powers/panacea.dm new file mode 100644 index 0000000..b3e0287 --- /dev/null +++ b/code/game/gamemodes/changeling/powers/panacea.dm @@ -0,0 +1,29 @@ +/obj/effect/proc_holder/changeling/panacea + name = "Anatomic Panacea" + desc = "Expels impurifications from our form; curing diseases, removing parasites, sobering us, purging toxins and radiation, and resetting our genetic code completely." + helptext = "Can be used while unconscious." + chemical_cost = 20 + dna_cost = 1 + req_stat = UNCONSCIOUS + +//Heals the things that the other regenerative abilities don't. +/obj/effect/proc_holder/changeling/panacea/sting_action(mob/user) + user << "We begin cleansing impurities from our form." + + var/obj/item/organ/body_egg/egg = user.getorgan(/obj/item/organ/body_egg) + if(egg) + egg.Remove(user) + if(iscarbon(user)) + var/mob/living/carbon/C = user + C.vomit(0) + egg.loc = get_turf(user) + + user.reagents.add_reagent("mutadone", 10) + user.reagents.add_reagent("pen_acid", 20) + user.reagents.add_reagent("antihol", 10) + user.reagents.add_reagent("mannitol", 25) + + for(var/datum/disease/D in user.viruses) + D.cure() + feedback_add_details("changeling_powers","AP") + return 1 diff --git a/code/game/gamemodes/changeling/powers/regenerate.dm b/code/game/gamemodes/changeling/powers/regenerate.dm new file mode 100644 index 0000000..6d38a58 --- /dev/null +++ b/code/game/gamemodes/changeling/powers/regenerate.dm @@ -0,0 +1,32 @@ +/obj/effect/proc_holder/changeling/regenerate + name = "Regenerate" + desc = "Allows us to regrow and restore missing external limbs, and \ + vital internal organs, as well as removing shrapnel and restoring \ + blood volume." + helptext = "Will alert nearby crew if any external limbs are \ + regenerated. Can be used while unconscious." + chemical_cost = 10 + dna_cost = 0 + req_stat = UNCONSCIOUS + always_keep = TRUE + +/obj/effect/proc_holder/changeling/regenerate/sting_action(mob/living/user) + user << "You feel an itching, both inside and \ + outside as your tissues knit and reknit." + if(iscarbon(user)) + var/mob/living/carbon/C = user + var/list/missing = C.get_missing_limbs() + if(missing.len) + playsound(user, 'sound/magic/Demon_consume.ogg', 50, 1) + C.visible_message("[user]'s missing limbs \ + reform, making a loud, grotesque sound!", + "Your limbs regrow, making a \ + loud, crunchy sound and giving you great pain!", + "You hear organic matter ripping \ + and tearing!") + C.emote("scream") + C.regenerate_limbs(1) + if(ishuman(user)) + var/mob/living/carbon/human/H = user + H.restore_blood() + H.remove_all_embedded_objects() diff --git a/code/game/gamemodes/changeling/powers/revive.dm b/code/game/gamemodes/changeling/powers/revive.dm new file mode 100644 index 0000000..653b2c6 --- /dev/null +++ b/code/game/gamemodes/changeling/powers/revive.dm @@ -0,0 +1,35 @@ +/obj/effect/proc_holder/changeling/revive + name = "Revive" + desc = "We regenerate, healing all damage from our form." + helptext = "Does not regrow lost organs or a missing head." + req_stat = DEAD + always_keep = TRUE + ignores_fakedeath = TRUE + +//Revive from revival stasis +/obj/effect/proc_holder/changeling/revive/sting_action(mob/living/carbon/user) + user.status_flags &= ~(FAKEDEATH) + user.tod = null + user.revive(full_heal = 1) + var/list/missing = user.get_missing_limbs() + missing -= "head" // headless changelings are funny + if(missing.len) + playsound(user, 'sound/magic/Demon_consume.ogg', 50, 1) + user.visible_message("[user]'s missing limbs \ + reform, making a loud, grotesque sound!", + "Your limbs regrow, making a \ + loud, crunchy sound and giving you great pain!", + "You hear organic matter ripping \ + and tearing!") + user.emote("scream") + user.regenerate_limbs(0, list("head")) + user << "We have revived ourselves." + user.mind.changeling.purchasedpowers -= src + feedback_add_details("changeling_powers","CR") + return 1 + +/obj/effect/proc_holder/changeling/revive/can_be_used_by(mob/user) + if((user.stat != DEAD) && !(user.status_flags & FAKEDEATH)) + user.mind.changeling.purchasedpowers -= src + return 0 + . = ..() diff --git a/code/game/gamemodes/changeling/powers/shriek.dm b/code/game/gamemodes/changeling/powers/shriek.dm new file mode 100644 index 0000000..21d5332 --- /dev/null +++ b/code/game/gamemodes/changeling/powers/shriek.dm @@ -0,0 +1,45 @@ +/obj/effect/proc_holder/changeling/resonant_shriek + name = "Resonant Shriek" + desc = "Our lungs and vocal chords shift, allowing us to briefly emit a noise that deafens and confuses the weak-minded." + helptext = "Emits a high-frequency sound that confuses and deafens humans, blows out nearby lights and overloads cyborg sensors." + chemical_cost = 20 + dna_cost = 1 + req_human = 1 + +//A flashy ability, good for crowd control and sewing chaos. +/obj/effect/proc_holder/changeling/resonant_shriek/sting_action(mob/user) + for(var/mob/living/M in get_hearers_in_view(4, user)) + if(iscarbon(M)) + if(!M.mind || !M.mind.changeling) + M.adjustEarDamage(0,30) + M.confused += 25 + M.Jitter(50) + else + M << sound('sound/effects/screech.ogg') + + if(issilicon(M)) + M << sound('sound/weapons/flash.ogg') + M.Weaken(rand(5,10)) + + for(var/obj/machinery/light/L in range(4, user)) + L.on = 1 + L.break_light_tube() + + feedback_add_details("changeling_powers","RS") + return 1 + +/obj/effect/proc_holder/changeling/dissonant_shriek + name = "Dissonant Shriek" + desc = "We shift our vocal cords to release a high-frequency sound that overloads nearby electronics." + chemical_cost = 20 + dna_cost = 1 + +//A flashy ability, good for crowd control and sewing chaos. +/obj/effect/proc_holder/changeling/dissonant_shriek/sting_action(mob/user) + for(var/obj/machinery/light/L in range(5, usr)) + L.on = 1 + L.break_light_tube() + empulse(get_turf(user), 2, 5, 1) + return 1 + + diff --git a/code/game/gamemodes/changeling/powers/spiders.dm b/code/game/gamemodes/changeling/powers/spiders.dm new file mode 100644 index 0000000..c06ef9a --- /dev/null +++ b/code/game/gamemodes/changeling/powers/spiders.dm @@ -0,0 +1,13 @@ +/obj/effect/proc_holder/changeling/spiders + name = "Spread Infestation" + desc = "Our form divides, creating arachnids which will grow into deadly beasts." + helptext = "The spiders are thoughtless creatures, and may attack their creators when fully grown. Requires at least 5 DNA absorptions." + chemical_cost = 45 + dna_cost = 1 + req_dna = 5 + +//Makes some spiderlings. Good for setting traps and causing general trouble. +/obj/effect/proc_holder/changeling/spiders/sting_action(mob/user) + spawn_atom_to_turf(/obj/structure/spider/spiderling/hunter, user, 2, FALSE) + feedback_add_details("changeling_powers","SI") + return 1 diff --git a/code/game/gamemodes/changeling/powers/strained_muscles.dm b/code/game/gamemodes/changeling/powers/strained_muscles.dm new file mode 100644 index 0000000..79c707b --- /dev/null +++ b/code/game/gamemodes/changeling/powers/strained_muscles.dm @@ -0,0 +1,50 @@ +//Strained Muscles: Temporary speed boost at the cost of rapid damage +//Limited because of hardsuits and such; ideally, used for a quick getaway + +/obj/effect/proc_holder/changeling/strained_muscles + name = "Strained Muscles" + desc = "We evolve the ability to reduce the acid buildup in our muscles, allowing us to move much faster." + helptext = "The strain will make us tired, and we will rapidly become fatigued. Standard weight restrictions, like hardsuits, still apply. Cannot be used in lesser form." + chemical_cost = 0 + dna_cost = 1 + req_human = 1 + var/stacks = 0 //Increments every 5 seconds; damage increases over time + active = 0 //Whether or not you are a hedgehog + +/obj/effect/proc_holder/changeling/strained_muscles/sting_action(mob/living/carbon/user) + active = !active + if(active) + user << "Our muscles tense and strengthen." + else + user.status_flags &= ~GOTTAGOFAST + user << "Our muscles relax." + if(stacks >= 10) + user << "We collapse in exhaustion." + user.Weaken(3) + user.emote("gasp") + + while(active) + user.status_flags |= GOTTAGOFAST + if(user.stat != CONSCIOUS || user.staminaloss >= 90) + active = !active + user << "Our muscles relax without the energy to strengthen them." + user.Weaken(2) + user.status_flags &= ~GOTTAGOFAST + break + + stacks++ + //user.take_bodypart_damage(stacks * 0.03, 0) + user.staminaloss += stacks * 1.3 //At first the changeling may regenerate stamina fast enough to nullify fatigue, but it will stack + + if(stacks == 11) //Warning message that the stacks are getting too high + user << "Our legs are really starting to hurt..." + + sleep(40) + + while(!active) //Damage stacks decrease fairly rapidly while not in sanic mode + if(stacks >= 1) + stacks-- + sleep(20) + + feedback_add_details("changeling_powers","SANIC") + return 1 diff --git a/code/game/gamemodes/changeling/powers/tiny_prick.dm b/code/game/gamemodes/changeling/powers/tiny_prick.dm new file mode 100644 index 0000000..f70a36d --- /dev/null +++ b/code/game/gamemodes/changeling/powers/tiny_prick.dm @@ -0,0 +1,248 @@ +/obj/effect/proc_holder/changeling/sting + name = "Tiny Prick" + desc = "Stabby stabby" + var/sting_icon = null + +/obj/effect/proc_holder/changeling/sting/Click() + var/mob/user = usr + if(!user || !user.mind || !user.mind.changeling) + return + if(!(user.mind.changeling.chosen_sting)) + set_sting(user) + else + unset_sting(user) + return + +/obj/effect/proc_holder/changeling/sting/proc/set_sting(mob/user) + user << "We prepare our sting, use alt+click or middle mouse button on target to sting them." + user.mind.changeling.chosen_sting = src + user.hud_used.lingstingdisplay.icon_state = sting_icon + user.hud_used.lingstingdisplay.invisibility = 0 + +/obj/effect/proc_holder/changeling/sting/proc/unset_sting(mob/user) + user << "We retract our sting, we can't sting anyone for now." + user.mind.changeling.chosen_sting = null + user.hud_used.lingstingdisplay.icon_state = null + user.hud_used.lingstingdisplay.invisibility = INVISIBILITY_ABSTRACT + +/mob/living/carbon/proc/unset_sting() + if(mind && mind.changeling && mind.changeling.chosen_sting) + src.mind.changeling.chosen_sting.unset_sting(src) + +/obj/effect/proc_holder/changeling/sting/can_sting(mob/user, mob/target) + if(!..()) + return + if(!user.mind.changeling.chosen_sting) + user << "We haven't prepared our sting yet!" + if(!iscarbon(target)) + return + if(!isturf(user.loc)) + return + if(!AStar(user, target.loc, /turf/proc/Distance, user.mind.changeling.sting_range, simulated_only = 0)) + return + if(target.mind && target.mind.changeling) + sting_feedback(user,target) + take_chemical_cost(user.mind.changeling) + return + return 1 + +/obj/effect/proc_holder/changeling/sting/sting_feedback(mob/user, mob/target) + if(!target) + return + user << "We stealthily sting [target.name]." + if(target.mind && target.mind.changeling) + target << "You feel a tiny prick." + return 1 + + +/obj/effect/proc_holder/changeling/sting/transformation + name = "Transformation Sting" + desc = "We silently sting a human, injecting a retrovirus that forces them to transform." + helptext = "The victim will transform much like a changeling would. The effects will be obvious to the victim, and the process will damage our genomes." + sting_icon = "sting_transform" + chemical_cost = 40 + dna_cost = 3 + genetic_damage = 100 + var/datum/changelingprofile/selected_dna = null + +/obj/effect/proc_holder/changeling/sting/transformation/Click() + var/mob/user = usr + var/datum/changeling/changeling = user.mind.changeling + if(changeling.chosen_sting) + unset_sting(user) + return + selected_dna = changeling.select_dna("Select the target DNA: ", "Target DNA") + if(!selected_dna) + return + if(NOTRANSSTING in selected_dna.dna.species.specflags) + user << "That DNA is not compatible with changeling retrovirus!" + return + ..() + +/obj/effect/proc_holder/changeling/sting/transformation/can_sting(mob/user, mob/target) + if(!..()) + return + if((target.disabilities & HUSK) || !target.has_dna()) + user << "Our sting appears ineffective against its DNA." + return 0 + return 1 + +/obj/effect/proc_holder/changeling/sting/transformation/sting_action(mob/user, mob/target) + add_logs(user, target, "stung", "transformation sting", " new identity is [selected_dna.dna.real_name]") + var/datum/dna/NewDNA = selected_dna.dna + if(ismonkey(target)) + user << "Our genes cry out as we sting [target.name]!" + + if(iscarbon(target)) + var/mob/living/carbon/C = target + if(C.status_flags & CANWEAKEN) + C.do_jitter_animation(500) + C.take_bodypart_damage(20, 0) //The process is extremely painful + + target.visible_message("[target] begins to violenty convulse!","You feel a tiny prick and a begin to uncontrollably convulse!") + spawn(10) + C.real_name = NewDNA.real_name + NewDNA.transfer_identity(C, transfer_SE=1) + C.updateappearance(mutcolor_update=1) + C.domutcheck() + feedback_add_details("changeling_powers","TS") + return 1 + + +/obj/effect/proc_holder/changeling/sting/false_armblade + name = "False Armblade Sting" + desc = "We silently sting a human, injecting a retrovirus that mutates their arm to temporarily appear as an armblade." + helptext = "The victim will form an armblade much like a changeling would, except the armblade is dull and useless." + sting_icon = "sting_armblade" + chemical_cost = 20 + dna_cost = 1 + genetic_damage = 20 + max_genetic_damage = 10 + +/obj/item/weapon/melee/arm_blade/false + desc = "A grotesque mass of flesh that used to be your arm. Although it looks dangerous at first, you can tell it's actually quite dull and useless." + force = 5 //Basically as strong as a punch + +/obj/item/weapon/melee/arm_blade/false/afterattack(atom/target, mob/user, proximity) + return + +/obj/effect/proc_holder/changeling/sting/false_armblade/can_sting(mob/user, mob/target) + if(!..()) + return + if((target.disabilities & HUSK) || !target.has_dna()) + user << "Our sting appears ineffective against its DNA." + return 0 + return 1 + +/obj/effect/proc_holder/changeling/sting/false_armblade/sting_action(mob/user, mob/target) + add_logs(user, target, "stung", object="falso armblade sting") + + if(!target.drop_item()) + user << "The [target.get_active_held_item()] is stuck to their hand, you cannot grow a false armblade over it!" + return + + if(ismonkey(target)) + user << "Our genes cry out as we sting [target.name]!" + + var/obj/item/weapon/melee/arm_blade/false/blade = new(target,1) + target.put_in_hands(blade) + target.visible_message("A grotesque blade forms around [target.name]\'s arm!", "Your arm twists and mutates, transforming into a horrific monstrosity!", "You hear organic matter ripping and tearing!") + playsound(target, 'sound/effects/blobattack.ogg', 30, 1) + + addtimer(src, "remove_fake", 600, target, blade) + + feedback_add_details("changeling_powers","AS") + return 1 + +/obj/effect/proc_holder/changeling/sting/false_armblade/proc/remove_fake(mob/target, obj/item/weapon/melee/arm_blade/false/blade) + playsound(target, 'sound/effects/blobattack.ogg', 30, 1) + target.visible_message("With a sickening crunch, \ + [target] reforms their [blade.name] into an arm!", + "[blade] reforms back to normal.", + "" + target.become_nearsighted() + target.blind_eyes(20) + target.blur_eyes(40) + feedback_add_details("changeling_powers","BS") + return 1 + +/obj/effect/proc_holder/changeling/sting/LSD + name = "Hallucination Sting" + desc = "Causes terror in the target." + helptext = "We evolve the ability to sting a target with a powerful hallucinogenic chemical. The target does not notice they have been stung, and the effect occurs after 30 to 60 seconds." + sting_icon = "sting_lsd" + chemical_cost = 10 + dna_cost = 1 + +/obj/effect/proc_holder/changeling/sting/LSD/sting_action(mob/user, mob/living/carbon/target) + add_logs(user, target, "stung", "LSD sting") + addtimer(src, "hallucination_time", rand(300,600), target) + feedback_add_details("changeling_powers","HS") + return 1 + +/obj/effect/proc_holder/changeling/sting/LSD/proc/hallucination_time(mob/living/carbon/target) + if(target) + target.hallucination = max(400, target.hallucination) + +/obj/effect/proc_holder/changeling/sting/cryo + name = "Cryogenic Sting" + desc = "We silently sting a human with a cocktail of chemicals that freeze them." + helptext = "Does not provide a warning to the victim, though they will likely realize they are suddenly freezing." + sting_icon = "sting_cryo" + chemical_cost = 15 + dna_cost = 2 + +/obj/effect/proc_holder/changeling/sting/cryo/sting_action(mob/user, mob/target) + add_logs(user, target, "stung", "cryo sting") + if(target.reagents) + target.reagents.add_reagent("frostoil", 30) + feedback_add_details("changeling_powers","CS") + return 1 diff --git a/code/game/gamemodes/changeling/powers/transform.dm b/code/game/gamemodes/changeling/powers/transform.dm new file mode 100644 index 0000000..5741df4 --- /dev/null +++ b/code/game/gamemodes/changeling/powers/transform.dm @@ -0,0 +1,72 @@ +/obj/effect/proc_holder/changeling/transform + name = "Transform" + desc = "We take on the appearance and voice of one we have absorbed." + chemical_cost = 5 + dna_cost = 0 + req_dna = 1 + req_human = 1 + max_genetic_damage = 3 + +/obj/item/clothing/glasses/changeling + name = "flesh" + flags = NODROP + +/obj/item/clothing/under/changeling + name = "flesh" + flags = NODROP + +/obj/item/clothing/suit/changeling + name = "flesh" + flags = NODROP + allowed = list(/obj/item/changeling) + +/obj/item/clothing/head/changeling + name = "flesh" + flags = NODROP +/obj/item/clothing/shoes/changeling + name = "flesh" + flags = NODROP + +/obj/item/clothing/gloves/changeling + name = "flesh" + flags = NODROP + +/obj/item/clothing/mask/changeling + name = "flesh" + flags = NODROP + +/obj/item/changeling + name = "flesh" + flags = NODROP + slot_flags = ALL + allowed = list(/obj/item/changeling) + +//Change our DNA to that of somebody we've absorbed. +/obj/effect/proc_holder/changeling/transform/sting_action(mob/living/carbon/human/user) + var/datum/changeling/changeling = user.mind.changeling + var/datum/changelingprofile/chosen_prof = changeling.select_dna("Select the target DNA: ", "Target DNA", user) + + if(!chosen_prof) + return + + changeling_transform(user, chosen_prof) + + feedback_add_details("changeling_powers","TR") + return 1 + +/datum/changeling/proc/select_dna(var/prompt, var/title, var/mob/living/carbon/user) + var/list/names = list("Drop Flesh Disguise") + for(var/datum/changelingprofile/prof in stored_profiles) + names += "[prof.name]" + + var/chosen_name = input(prompt, title, null) as null|anything in names + if(!chosen_name) + return + + if(chosen_name == "Drop Flesh Disguise") + for(var/slot in slots) + if(istype(user.vars[slot], slot2type[slot])) + qdel(user.vars[slot]) + + var/datum/changelingprofile/prof = get_dna(chosen_name) + return prof diff --git a/code/game/gamemodes/changeling/traitor_chan.dm b/code/game/gamemodes/changeling/traitor_chan.dm new file mode 100644 index 0000000..377879d --- /dev/null +++ b/code/game/gamemodes/changeling/traitor_chan.dm @@ -0,0 +1,76 @@ +/datum/game_mode/traitor/changeling + name = "traitor+changeling" + config_tag = "traitorchan" + traitors_possible = 3 //hard limit on traitors if scaling is turned off + restricted_jobs = list("AI", "Cyborg") + required_players = 0 + required_enemies = 1 // how many of each type are required + recommended_enemies = 3 + reroll_friendly = 1 + + var/list/possible_changelings = list() + var/const/changeling_amount = 1 //hard limit on changelings if scaling is turned off + +/datum/game_mode/traitor/changeling/announce() + world << "The current game mode is - Traitor+Changeling!" + world << "There are alien creatures on the station along with some syndicate operatives out for their own gain! Do not let the changelings or the traitors succeed!" + +/datum/game_mode/traitor/changeling/can_start() + if(!..()) + return 0 + possible_changelings = get_players_for_role(ROLE_CHANGELING) + if(possible_changelings.len < required_enemies) + return 0 + return 1 + +/datum/game_mode/traitor/changeling/pre_setup() + if(config.protect_roles_from_antagonist) + restricted_jobs += protected_jobs + + if(config.protect_assistant_from_antagonist) + restricted_jobs += "Assistant" + + var/list/datum/mind/possible_changelings = get_players_for_role(ROLE_CHANGELING) + + var/num_changelings = 1 + + if(config.changeling_scaling_coeff) + num_changelings = max(1, min( round(num_players()/(config.changeling_scaling_coeff*4))+2, round(num_players()/(config.changeling_scaling_coeff*2)) )) + else + num_changelings = max(1, min(num_players(), changeling_amount/2)) + + if(possible_changelings.len>0) + for(var/j = 0, j < num_changelings, j++) + if(!possible_changelings.len) break + var/datum/mind/changeling = pick(possible_changelings) + antag_candidates -= changeling + possible_changelings -= changeling + changeling.special_role = "Changeling" + changelings += changeling + changeling.restricted_roles = restricted_jobs + return ..() + else + return 0 + +/datum/game_mode/traitor/changeling/post_setup() + modePlayer += changelings + for(var/datum/mind/changeling in changelings) + changeling.current.make_changeling() + forge_changeling_objectives(changeling) + greet_changeling(changeling) + ticker.mode.update_changeling_icons_added(changeling) + ..() + return + +/datum/game_mode/traitor/changeling/make_antag_chance(mob/living/carbon/human/character) //Assigns changeling to latejoiners + var/changelingcap = min( round(joined_player_list.len/(config.changeling_scaling_coeff*4))+2, round(joined_player_list.len/(config.changeling_scaling_coeff*2)) ) + if(ticker.mode.changelings.len >= changelingcap) //Caps number of latejoin antagonists + ..() + return + if(ticker.mode.changelings.len <= (changelingcap - 2) || prob(100 / (config.changeling_scaling_coeff * 4))) + if(ROLE_CHANGELING in character.client.prefs.be_special) + if(!jobban_isbanned(character, ROLE_CHANGELING) && !jobban_isbanned(character, "Syndicate")) + if(age_check(character.client)) + if(!(character.job in restricted_jobs)) + character.mind.make_Changling() + ..() diff --git a/code/game/gamemodes/clock_cult/clock_cult.dm b/code/game/gamemodes/clock_cult/clock_cult.dm new file mode 100644 index 0000000..84e9c7a --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_cult.dm @@ -0,0 +1,265 @@ +/* + +CLOCKWORK CULT: Based off of the failed pull requests from /vg/ + +While Nar-Sie is the oldest and most prominent of the elder gods, there are other forces at work in the universe. +Ratvar, the Clockwork Justiciar, a homage to Nar-Sie granted sentience by its own power, is one such other force. +Imprisoned within a massive construct known as the Celestial Derelict - or Reebe - an intense hatred of the Blood God festers. +Ratvar, unable to act in the mortal plane, seeks to return and forms covenants with mortals in order to bolster his influence. +Due to his mechanical nature, Ratvar is also capable of influencing silicon-based lifeforms, unlike Nar-Sie, who can only influence natural life. + +This is a team-based gamemode, and the team's objective is shared by all cultists. It can include summoning Ratvar, escaping on the shuttle, or converting the AI and its cyborgs. + +The clockwork version of an arcane tome is the clockwork slab. +While it can perform certain actions, it consumes a resource called components. +Components, which are fallen fragments of Ratvar's body as he rusts in Reebe, are powerful and have various effects. +Game-wise, clockwork slabs will generate components over time, with more powerful components being slower. + +This file's folder contains: + clock_cult.dm: Core gamemode files. + clock_effect.dm: The base clockwork effect code. + - Effect files are in game/gamemodes/clock_cult/clock_effects/ + clock_item.dm: The base clockwork item code. + - Item files are in game/gamemodes/clock_cult/clock_items/ + clock_mobs.dm: Hostile clockwork creatures. + clock_scripture.dm: The base Scripture code. + - Scripture files are in game/gamemodes/clock_cult/clock_scripture/ + clock_structure.dm: The base clockwork structure code, including clockwork machines. + - Structure files, and Ratvar, are in game/gamemodes/clock_cult/clock_structures/ + + game/gamemodes/clock_cult/clock_helpers/ contains several helper procs, including the Ratvarian language. + + clockcult defines are in __DEFINES/clockcult.dm + +Credit where due: +1. VelardAmakar from /vg/ for the entire design document, idea, and plan. Thank you very much. +2. SkowronX from /vg/ for MANY of the assets +3. FuryMcFlurry from /vg/ for many of the assets +4. PJB3005 from /vg/ for the failed continuation PR +5. Xhuis from /tg/ for coding the basic gamemode as it is today +6. ChangelingRain from /tg/ for maintaining the gamemode for months after its release + +*/ + +/////////// +// PROCS // +/////////// + +/proc/is_servant_of_ratvar(mob/living/M) + return istype(M) && M.has_antag_datum(/datum/antagonist/clockcultist, TRUE) + +/proc/is_eligible_servant(mob/living/M) + if(!istype(M)) + return FALSE + if(M.mind) + if(ishuman(M) && (M.mind.assigned_role in list("Captain", "Chaplain"))) + return FALSE + if(M.mind.enslaved_to && !is_servant_of_ratvar(M.mind.enslaved_to)) + return FALSE + else + return FALSE + if(iscultist(M) || isconstruct(M) || M.isloyal()) + return FALSE + if(ishuman(M) || isbrain(M) || isguardian(M) || issilicon(M) || isclockmob(M) || istype(M, /mob/living/simple_animal/drone/cogscarab)) + return TRUE + return FALSE + +/proc/add_servant_of_ratvar(mob/living/L, silent = FALSE) + var/update_type = /datum/antagonist/clockcultist + if(silent) + update_type = /datum/antagonist/clockcultist/silent + . = L.gain_antag_datum(update_type) + +/proc/remove_servant_of_ratvar(mob/living/L, silent = FALSE) + var/datum/antagonist/clockcultist/clock_datum = L.has_antag_datum(/datum/antagonist/clockcultist, TRUE) + if(!clock_datum) + return FALSE + clock_datum.silent_update = silent + clock_datum.on_remove() + return TRUE + +/////////////// +// GAME MODE // +/////////////// + +/datum/game_mode + var/list/servants_of_ratvar = list() //The Enlightened servants of Ratvar + var/required_escapees = 0 //How many servants need to escape, if applicable + var/required_silicon_converts = 0 //How many robotic lifeforms need to be converted, if applicable + var/clockwork_objective = CLOCKCULT_GATEWAY //The objective that the servants must fulfill + var/clockwork_explanation = "Construct a Gateway to the Celestial Derelict and free Ratvar." //The description of the current objective + +/datum/game_mode/clockwork_cult + name = "clockwork cult" + config_tag = "clockwork_cult" + antag_flag = ROLE_SERVANT_OF_RATVAR + required_players = 24 + required_enemies = 3 + recommended_enemies = 3 + enemy_minimum_age = 14 + protected_jobs = list("AI", "Cyborg", "Security Officer", "Warden", "Detective", "Head of Security", "Captain") //Silicons can eventually be converted + restricted_jobs = list("Chaplain", "Captain") + announce_span = "brass" + announce_text = "Servants of Ratvar are trying to summon the Justiciar!\n\ + Servants: Take over the station and summon Ratvar.\n\ + Crew: Stop the servants before they can summon the Clockwork Justiciar." + var/servants_to_serve = list() + var/roundstart_player_count + +/datum/game_mode/clockwork_cult/pre_setup() + if(config.protect_roles_from_antagonist) + restricted_jobs += protected_jobs + if(config.protect_assistant_from_antagonist) + restricted_jobs += "Assistant" + var/starter_servants = 3 //Guaranteed three servants + var/number_players = num_players() + roundstart_player_count = number_players + if(number_players > 30) //plus one servant for every additional 15 players + number_players -= 30 + starter_servants += round(number_players/15) + while(starter_servants) + var/datum/mind/servant = pick(antag_candidates) + servants_to_serve += servant + antag_candidates -= servant + modePlayer += servant + servant.special_role = "Servant of Ratvar" + servant.restricted_roles = restricted_jobs + starter_servants-- + return 1 + +/datum/game_mode/clockwork_cult/post_setup() + forge_clock_objectives() + for(var/S in servants_to_serve) + var/datum/mind/servant = S + log_game("[servant.key] was made an initial servant of Ratvar") + var/mob/living/L = servant.current + greet_servant(L) + equip_servant(L) + add_servant_of_ratvar(L, TRUE) + ..() + return 1 + +/datum/game_mode/clockwork_cult/proc/forge_clock_objectives() //Determine what objective that Ratvar's servants will fulfill + var/list/possible_objectives = list(CLOCKCULT_ESCAPE, CLOCKCULT_GATEWAY) + var/silicons_possible = FALSE + for(var/mob/living/silicon/S in living_mob_list) + silicons_possible = TRUE + if(silicons_possible) + possible_objectives += CLOCKCULT_SILICONS + clockwork_objective = pick(possible_objectives) + switch(clockwork_objective) + if(CLOCKCULT_ESCAPE) + required_escapees = round(max(1, roundstart_player_count / 3)) //33% of the player count must be cultists + clockwork_explanation = "Ensure that [required_escapees] servants of Ratvar escape from [station_name()]." + if(CLOCKCULT_GATEWAY) + clockwork_explanation = "Construct a Gateway to the Celestial Derelict and free Ratvar." + if(CLOCKCULT_SILICONS) + clockwork_explanation = "Ensure that all active silicon-based lifeforms on [station_name()] are servants of Ratvar by the end of the shift." + return 1 + +/datum/game_mode/clockwork_cult/proc/greet_servant(mob/M) //Description of their role + if(!M) + return 0 + var/greeting_text = "
    You are a servant of Ratvar, the Clockwork Justiciar.\n\ + Rusting eternally in the Celestial Derelict, Ratvar has formed a covenant of mortals, with you as one of its members. As one of the Justiciar's servants, you are to work to the best of your \ + ability to assist in completion of His agenda. You do not know the specifics of how to do so, but luckily you have a vessel to help you learn." + M << greeting_text + return 1 + +/datum/game_mode/proc/equip_servant(mob/living/L) //Grants a clockwork slab to the mob, with one of each component + if(!L || !istype(L)) + return 0 + var/slot = "At your feet" + if(ishuman(L)) + var/mob/living/carbon/human/H = L + if(H.back && istype(H.back, /obj/item/weapon/storage/backpack)) + var/obj/item/weapon/storage/backpack/B = H.back + new/obj/item/clockwork/slab/starter(B) + slot = "In your [B.name]" + if(slot == "At your feet") + new/obj/item/clockwork/slab/starter(get_turf(L)) + L << "[slot] is a link to the halls of Reebe and your master. You may use it to perform many tasks, but also become oriented with the workings of Ratvar and how to best complete your \ + tasks. This clockwork slab will be instrumental in your triumph. Remember: you can speak discreetly with your fellow servants by using the Hierophant Network action button, \ + and you can find a concise tutorial by using the slab in-hand and selecting Recollection." + L << "Alternatively, check out the wiki page at https://tgstation13.org/wiki/Clockwork_Cult, which contains additional information." + return 1 + +/datum/game_mode/clockwork_cult/proc/present_tasks(mob/living/L) //Memorizes and displays the clockwork cult's objective + if(!L || !istype(L) || !L.mind) + return 0 + var/datum/mind/M = L.mind + M.current << "This is Ratvar's will: [clockwork_explanation]" + M.memory += "Ratvar's will: [clockwork_explanation]
    " + return 1 + +/datum/game_mode/clockwork_cult/proc/check_clockwork_victory() + switch(clockwork_objective) + if(CLOCKCULT_ESCAPE) + var/surviving_servants = 0 + for(var/datum/mind/M in servants_of_ratvar) + if(M.current && M.current.stat != DEAD && (M.current.onCentcom() || M.current.onSyndieBase())) + surviving_servants++ + clockwork_explanation = "Ensure that [required_escapees] servant(s) of Ratvar escape from [station_name()].
    [surviving_servants] managed to escape!" + if(surviving_servants >= required_escapees) + return TRUE + return FALSE + if(CLOCKCULT_SILICONS) + var/total_silicons = 0 + var/valid_silicons = 0 + var/successful = TRUE + for(var/mob/living/silicon/robot/S in mob_list) //Only check robots and AIs + total_silicons++ + if(is_servant_of_ratvar(S) || S.stat == DEAD) + valid_silicons++ + for(var/mob/living/silicon/ai/A in mob_list) + total_silicons++ + if(is_servant_of_ratvar(A) || A.stat == DEAD) + valid_silicons++ + if(valid_silicons < total_silicons) + successful = FALSE + clockwork_explanation = "Ensure that all active silicon-based lifeforms on [station_name()] are servants of Ratvar by the end of the shift.
    \ + [valid_silicons]/[total_silicons] silicons were killed or converted!" + return successful + if(CLOCKCULT_GATEWAY) + return ratvar_awakens + return FALSE //This shouldn't ever be reached, but just in case it is + +/datum/game_mode/clockwork_cult/declare_completion() + ..() + return 0 //Doesn't end until the round does + +/datum/game_mode/proc/auto_declare_completion_clockwork_cult() + var/text = "" + if(istype(ticker.mode, /datum/game_mode/clockwork_cult)) //Possibly hacky? + var/datum/game_mode/clockwork_cult/C = ticker.mode + if(C.check_clockwork_victory()) + text += "Ratvar's servants have succeeded in fulfilling His goals!" + feedback_set_details("round_end_result", "win - servants completed their objective ([clockwork_objective])") + else + var/half_victory = FALSE + if(clockwork_objective == CLOCKCULT_GATEWAY) + var/obj/structure/destructible/clockwork/massive/celestial_gateway/G = locate() in all_clockwork_objects + if(G) + half_victory = TRUE + if(half_victory) + text += "The crew escaped before Ratvar could rise, but the gateway was successfully constructed!" + feedback_set_details("round_end_result", "halfwin - round ended before the gateway finished") + else + text += "Ratvar's servants have failed!" + feedback_set_details("round_end_result", "loss - servants failed their objective ([clockwork_objective])") + text += "
    The servants' objective was:
    [clockwork_explanation]
    " + if(servants_of_ratvar.len) + text += "Ratvar's servants were:" + for(var/datum/mind/M in servants_of_ratvar) + text += printplayer(M) + world << text + +/datum/game_mode/proc/update_servant_icons_added(datum/mind/M) + var/datum/atom_hud/antag/A = huds[ANTAG_HUD_CLOCKWORK] + A.join_hud(M.current) + set_antag_hud(M.current, "clockwork") + +/datum/game_mode/proc/update_servant_icons_removed(datum/mind/M) + var/datum/atom_hud/antag/A = huds[ANTAG_HUD_CLOCKWORK] + A.leave_hud(M.current) + set_antag_hud(M.current, null) diff --git a/code/game/gamemodes/clock_cult/clock_effect.dm b/code/game/gamemodes/clock_cult/clock_effect.dm new file mode 100644 index 0000000..69e973b --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_effect.dm @@ -0,0 +1,25 @@ +//The base clockwork effect. Can have an alternate desc and will show up in the list of clockwork objects. +/obj/effect/clockwork + name = "meme machine" + desc = "Still don't know what it is." + var/clockwork_desc = "A fabled artifact from beyond the stars. Contains concentrated meme essence." //Shown to clockwork cultists instead of the normal description + icon = 'icons/effects/clockwork_effects.dmi' + icon_state = "ratvars_flame" + anchored = 1 + density = 0 + opacity = 0 + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF + +/obj/effect/clockwork/New() + ..() + all_clockwork_objects += src + +/obj/effect/clockwork/Destroy() + all_clockwork_objects -= src + return ..() + +/obj/effect/clockwork/examine(mob/user) + if((is_servant_of_ratvar(user) || isobserver(user)) && clockwork_desc) + desc = clockwork_desc + ..() + desc = initial(desc) \ No newline at end of file diff --git a/code/game/gamemodes/clock_cult/clock_effects/clock_overlay.dm b/code/game/gamemodes/clock_cult/clock_effects/clock_overlay.dm new file mode 100644 index 0000000..9115b57 --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_effects/clock_overlay.dm @@ -0,0 +1,46 @@ +//an "overlay" used by clockwork walls and floors to appear normal to mesons. +/obj/effect/clockwork/overlay + mouse_opacity = 0 + var/atom/linked + +/obj/effect/clockwork/overlay/examine(mob/user) + if(linked) + linked.examine(user) + +/obj/effect/clockwork/overlay/ex_act() + return FALSE + +/obj/effect/clockwork/overlay/singularity_pull(S, current_size) + return + +/obj/effect/clockwork/overlay/Destroy() + if(linked) + linked = null + ..() + return QDEL_HINT_PUTINPOOL + +/obj/effect/clockwork/overlay/wall + name = "clockwork wall" + icon = 'icons/turf/walls/clockwork_wall.dmi' + icon_state = "clockwork_wall" + canSmoothWith = list(/obj/effect/clockwork/overlay/wall, /obj/structure/falsewall/brass) + smooth = SMOOTH_TRUE + layer = CLOSED_TURF_LAYER + +/obj/effect/clockwork/overlay/wall/New() + ..() + queue_smooth_neighbors(src) + addtimer(GLOBAL_PROC, "queue_smooth", 1, FALSE, src) + +/obj/effect/clockwork/overlay/wall/Destroy() + queue_smooth_neighbors(src) + ..() + return QDEL_HINT_QUEUE + +/obj/effect/clockwork/overlay/floor + icon = 'icons/turf/floors.dmi' + icon_state = "clockwork_floor" + layer = TURF_LAYER + +/obj/effect/clockwork/overlay/floor/bloodcult //this is used by BLOOD CULT, it shouldn't use such a path... + icon_state = "cult" \ No newline at end of file diff --git a/code/game/gamemodes/clock_cult/clock_effects/clock_sigils.dm b/code/game/gamemodes/clock_cult/clock_effects/clock_sigils.dm new file mode 100644 index 0000000..832f0d3 --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_effects/clock_sigils.dm @@ -0,0 +1,332 @@ +//Sigils: Rune-like markings on the ground with various effects. +/obj/effect/clockwork/sigil + name = "sigil" + desc = "A strange set of markings drawn on the ground." + clockwork_desc = "A sigil of some purpose." + icon_state = "sigil" + layer = LOW_OBJ_LAYER + alpha = 50 + resistance_flags = NONE + var/affects_servants = FALSE + var/stat_affected = CONSCIOUS + var/resist_string = "glows blinding white" //string for when a null rod blocks its effects, "glows [resist_string]" + +/obj/effect/clockwork/sigil/attackby(obj/item/I, mob/living/user, params) + if(I.force && !is_servant_of_ratvar(user)) + user.visible_message("[user] scatters [src] with [I]!", "You scatter [src] with [I]!") + qdel(src) + return 1 + ..() + +/obj/effect/clockwork/sigil/attack_hand(mob/user) + if(iscarbon(user) && !user.stat && (!is_servant_of_ratvar(user) || (is_servant_of_ratvar(user) && user.a_intent == "harm"))) + user.visible_message("[user] stamps out [src]!", "You stomp on [src], scattering it into thousands of particles.") + qdel(src) + return 1 + ..() + +/obj/effect/clockwork/sigil/ex_act(severity) + visible_message("[src] scatters into thousands of particles.") + qdel(src) + +/obj/effect/clockwork/sigil/Crossed(atom/movable/AM) + ..() + if(isliving(AM)) + var/mob/living/L = AM + if(L.stat <= stat_affected) + if((!is_servant_of_ratvar(L) || (is_servant_of_ratvar(L) && affects_servants)) && L.mind) + if(L.null_rod_check()) + var/obj/item/I = L.null_rod_check() + L.visible_message("[L]'s [I.name] [resist_string], protecting them from [src]'s effects!", \ + "Your [I.name] [resist_string], protecting you!") + return + sigil_effects(L) + return 1 + +/obj/effect/clockwork/sigil/proc/sigil_effects(mob/living/L) + + +//Sigil of Transgression: Stuns the first non-servant to walk on it and flashes all nearby non_servants. Nar-Sian cultists are damaged and knocked down for a longer stun +/obj/effect/clockwork/sigil/transgression + name = "dull sigil" + desc = "A dull, barely-visible golden sigil. It's as though light was carved into the ground." + icon = 'icons/effects/clockwork_effects.dmi' + clockwork_desc = "A sigil that will stun the first non-servant to cross it. Nar-Sie's dogs will be knocked down." + icon_state = "sigildull" + color = "#FAE48C" + +/obj/effect/clockwork/sigil/transgression/sigil_effects(mob/living/L) + var/target_flashed = L.flash_act() + for(var/mob/living/M in viewers(5, src)) + if(!is_servant_of_ratvar(M) && M != L) + M.flash_act() + if(iscultist(L)) + L << "\"Watch your step, wretch.\"" + L.adjustBruteLoss(10) + L.Weaken(7) + L.visible_message("[src] appears around [L] in a burst of light!", \ + "[target_flashed ? "An unseen force":"The glowing sigil around you"] holds you in place!") + L.Stun(5) + PoolOrNew(/obj/effect/overlay/temp/ratvar/sigil/transgression, get_turf(src)) + qdel(src) + return 1 + + +//Sigil of Submission: After a short time, converts any non-servant standing on it. Knocks down and silences them for five seconds afterwards. +/obj/effect/clockwork/sigil/submission + name = "ominous sigil" + desc = "A luminous golden sigil. Something about it really bothers you." + clockwork_desc = "A sigil that will enslave the first person to cross it, provided they remain on it for seven seconds." + icon_state = "sigilsubmission" + color = "#FAE48C" + alpha = 125 + stat_affected = UNCONSCIOUS + resist_string = "glows faintly yellow" + var/convert_time = 70 + var/glow_light = 2 //soft light + var/glow_falloff = 1 + var/delete_on_finish = TRUE + var/sigil_name = "Sigil of Submission" + var/glow_type + +/obj/effect/clockwork/sigil/submission/New() + ..() + SetLuminosity(glow_light,glow_falloff) + +/obj/effect/clockwork/sigil/submission/proc/post_channel(mob/living/L) + +/obj/effect/clockwork/sigil/submission/sigil_effects(mob/living/L) + L.visible_message("[src] begins to glow a piercing magenta!", "You feel something start to invade your mind...") + var/oldcolor = color + animate(src, color = "#AF0AAF", time = convert_time) + var/obj/effect/overlay/temp/ratvar/sigil/glow + if(glow_type) + glow = PoolOrNew(glow_type, get_turf(src)) + animate(glow, alpha = 255, time = convert_time) + var/I = 0 + while(I < convert_time && get_turf(L) == get_turf(src)) + I++ + sleep(1) + if(get_turf(L) != get_turf(src)) + if(glow) + qdel(glow) + animate(src, color = oldcolor, time = 20) + addtimer(src, "update_atom_colour", 20) + visible_message("[src] slowly stops glowing!") + return 0 + post_channel(L) + if(is_eligible_servant(L)) + L << "\"You belong to me now.\"" + add_servant_of_ratvar(L) + L.Weaken(3) //Completely defenseless for about five seconds - mainly to give them time to read over the information they've just been presented with + L.Stun(3) + if(iscarbon(L)) + var/mob/living/carbon/C = L + C.silent += 5 + var/message = "[sigil_name] in [get_area(src)] [is_servant_of_ratvar(L) ? "successfully converted" : "failed to convert"]" + for(var/M in mob_list) + if(isobserver(M)) + var/link = FOLLOW_LINK(M, L) + M << "[link] [message] [L.real_name]!" + else if(is_servant_of_ratvar(M)) + if(M == L) + M << "[message] you!" + else + M << "[message] [L.real_name]!" + if(delete_on_finish) + qdel(src) + else + animate(src, color = oldcolor, time = 20) + addtimer(src, "update_atom_colour", 20) + visible_message("[src] slowly stops glowing!") + return 1 + + +//Sigil of Accession: After a short time, converts any non-servant standing on it though implants. Knocks down and silences them for five seconds afterwards. +/obj/effect/clockwork/sigil/submission/accession + name = "terrifying sigil" + desc = "A luminous brassy sigil. Something about it makes you want to flee." + clockwork_desc = "A sigil that will enslave any person who crosses it, provided they remain on it for seven seconds. \n\ + It can convert a mindshielded target once before disppearing, but can convert any number of non-implanted targets." + icon_state = "sigiltransgression" + color = "#A97F1B" + alpha = 200 + glow_light = 4 //bright light + glow_falloff = 3 + delete_on_finish = FALSE + sigil_name = "Sigil of Accession" + glow_type = /obj/effect/overlay/temp/ratvar/sigil/accession + resist_string = "glows bright orange" + +/obj/effect/clockwork/sigil/submission/accession/post_channel(mob/living/L) + if(L.isloyal()) + var/mob/living/carbon/C = L + delete_on_finish = TRUE + C.visible_message("[C] visibly trembles!", \ + "[text2ratvar("You will be mine and his. This puny trinket will not stop me.")]") + for(var/obj/item/weapon/implant/mindshield/M in C.implants) + qdel(M) + + +//Sigil of Transmission: Stores power for clockwork machinery, serving as a battery. +/obj/effect/clockwork/sigil/transmission + name = "suspicious sigil" + desc = "A glowing orange sigil. The air around it feels staticky." + clockwork_desc = "A sigil that will serve as a battery for clockwork structures. Use Volt Void while standing on it to charge it." + icon_state = "sigiltransmission" + color = "#EC8A2D" + alpha = 50 + resist_string = "glows faintly" + var/power_charge = REPLICANT_ALLOY_POWER //starts with REPLICANT_ALLOY_POWER by default + +/obj/effect/clockwork/sigil/transmission/ex_act(severity) + if(severity == 3) + modify_charge(-500) + visible_message("[src] flares a brilliant orange!") + else + ..() + +/obj/effect/clockwork/sigil/transmission/examine(mob/user) + ..() + if(is_servant_of_ratvar(user) || isobserver(user)) + user << "It is storing [power_charge]W of power." + +/obj/effect/clockwork/sigil/transmission/sigil_effects(mob/living/L) + if(power_charge) + L << "You feel a slight, static shock." + return 1 + +/obj/effect/clockwork/sigil/transmission/New() + ..() + alpha = min(initial(alpha) + power_charge*0.02, 255) + +/obj/effect/clockwork/sigil/transmission/proc/modify_charge(amount) + if(power_charge - amount < 0) + return 0 + power_charge -= amount + alpha = min(initial(alpha) + power_charge*0.02, 255) + return 1 + + +//Vitality Matrix: Drains health from non-servants to heal or even revive servants. +/obj/effect/clockwork/sigil/vitality + name = "comforting sigil" + desc = "A faint blue sigil. Looking at it makes you feel protected." + clockwork_desc = "A sigil that will drain non-servants that remain on it. Servants that remain on it will be healed if it has any vitality drained." + icon_state = "sigilvitality" + color = "#123456" + alpha = 75 + affects_servants = TRUE + stat_affected = DEAD + resist_string = "glows shimmering yellow" + var/vitality = 0 + var/base_revive_cost = 20 + var/sigil_active = FALSE + var/animation_number = 3 //each cycle increments this by 1, at 4 it produces an animation and resets + +/obj/effect/clockwork/sigil/vitality/examine(mob/user) + ..() + if(is_servant_of_ratvar(user) || isobserver(user)) + user << "It is storing [ratvar_awakens ? "INFINITE":"[vitality]"] units of vitality." + user << "It requires at least [base_revive_cost] units of vitality to revive dead servants, in addition to any damage the servant has." + +/obj/effect/clockwork/sigil/vitality/sigil_effects(mob/living/L) + if((is_servant_of_ratvar(L) && L.suiciding) || sigil_active) + return 0 + visible_message("[src] begins to glow bright blue!") + animate(src, alpha = 255, time = 10) + sleep(10) + sigil_active = TRUE +//as long as they're still on the sigil and are either not a servant or they're a servant AND it has remaining vitality + while(L && (!is_servant_of_ratvar(L) || (is_servant_of_ratvar(L) && vitality)) && get_turf(L) == get_turf(src)) + if(animation_number >= 4) + PoolOrNew(/obj/effect/overlay/temp/ratvar/sigil/vitality, get_turf(src)) + animation_number = 0 + animation_number++ + if(!is_servant_of_ratvar(L)) + var/vitality_drained = 0 + if(L.stat == DEAD) + vitality_drained = L.maxHealth + var/obj/effect/overlay/temp/ratvar/sigil/vitality/V = PoolOrNew(/obj/effect/overlay/temp/ratvar/sigil/vitality, get_turf(src)) + animate(V, alpha = 0, transform = matrix()*2, time = 8) + playsound(L, 'sound/magic/WandODeath.ogg', 50, 1) + L.visible_message("[L] collapses in on [L.p_them()]self as [src] flares bright blue!") + L << "\"[text2ratvar("Your life will not be wasted.")]\"" + for(var/obj/item/W in L) + if(!L.unEquip(W)) + qdel(W) + L.dust() + else + vitality_drained = L.adjustToxLoss(1.5) + if(vitality_drained) + vitality += vitality_drained + else + break + else + var/clone_to_heal = L.getCloneLoss() + var/tox_to_heal = L.getToxLoss() + var/burn_to_heal = L.getFireLoss() + var/brute_to_heal = L.getBruteLoss() + var/oxy_to_heal = L.getOxyLoss() + var/total_damage = clone_to_heal + tox_to_heal + burn_to_heal + brute_to_heal + oxy_to_heal + if(L.stat == DEAD) + var/revival_cost = base_revive_cost + total_damage - oxy_to_heal //ignores oxygen damage + if(ratvar_awakens) + revival_cost = 0 + var/mob/dead/observer/ghost = L.get_ghost(TRUE) + if(ghost) + if(vitality >= revival_cost) + ghost.reenter_corpse() + L.revive(1, 1) + playsound(L, 'sound/magic/Staff_Healing.ogg', 50, 1) + L.visible_message("[L] suddenly gets back up, [L.p_their()] mouth dripping blue ichor!", \ + "\"[text2ratvar("You will be okay, child.")]\"") + vitality -= revival_cost + break + else + break + if(!total_damage) + break + var/vitality_for_cycle = min(vitality, 3) + var/vitality_used = 0 + if(ratvar_awakens) + vitality_for_cycle = 3 + + if(clone_to_heal && vitality_for_cycle) + var/healing = min(vitality_for_cycle, clone_to_heal) + vitality_for_cycle -= healing + L.adjustCloneLoss(-healing) + vitality_used += healing + + if(tox_to_heal && vitality_for_cycle) + var/healing = min(vitality_for_cycle, tox_to_heal) + vitality_for_cycle -= healing + L.adjustToxLoss(-healing) + vitality_used += healing + + if(burn_to_heal && vitality_for_cycle) + var/healing = min(vitality_for_cycle, burn_to_heal) + vitality_for_cycle -= healing + L.adjustFireLoss(-healing) + vitality_used += healing + + if(brute_to_heal && vitality_for_cycle) + var/healing = min(vitality_for_cycle, brute_to_heal) + vitality_for_cycle -= healing + L.adjustBruteLoss(-healing) + vitality_used += healing + + if(oxy_to_heal && vitality_for_cycle) + var/healing = min(vitality_for_cycle, oxy_to_heal) + vitality_for_cycle -= healing + L.adjustOxyLoss(-healing) + vitality_used += healing + + if(!ratvar_awakens) + vitality -= vitality_used + sleep(2) + + animation_number = initial(animation_number) + sigil_active = FALSE + animate(src, alpha = initial(alpha), time = 20) + visible_message("[src] slowly stops glowing!") diff --git a/code/game/gamemodes/clock_cult/clock_effects/general_markers.dm b/code/game/gamemodes/clock_cult/clock_effects/general_markers.dm new file mode 100644 index 0000000..d9a85bd --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_effects/general_markers.dm @@ -0,0 +1,57 @@ +//massive markers for Revenant and Judgement scripture. +/obj/effect/clockwork/general_marker + name = "general marker" + desc = "Some big guy. For you." + clockwork_desc = "One of Ratvar's generals." + alpha = 200 + layer = MASSIVE_OBJ_LAYER + +/obj/effect/clockwork/general_marker/New() + ..() + animate(src, alpha = 0, time = 10) + QDEL_IN(src, 10) + +/obj/effect/clockwork/general_marker/inathneq + name = "Inath-neq, the Resonant Cogwheel" + desc = "A humanoid form blazing with blue fire. It radiates an aura of kindness and caring." + clockwork_desc = "One of Ratvar's four generals. Before her current form, Inath-neq was a powerful warrior priestess commanding the Resonant Cogs, a sect of Ratvarian warriors renowned for \ + their prowess. After a lost battle with Nar-Sian cultists, Inath-neq was struck down and stated in her dying breath, \ + \"The Resonant Cogs shall not fall silent this day, but will come together to form a wheel that shall never stop turning.\" Ratvar, touched by this, granted Inath-neq an eternal body and \ + merged her soul with those of the Cogs slain with her on the battlefield." + icon = 'icons/effects/187x381.dmi' + icon_state = "inath-neq" + pixel_x = -77 + pixel_y = -174 + +/obj/effect/clockwork/general_marker/nezbere + name = "Nezbere, the Brass Eidolon" + desc = "A towering colossus clad in nigh-impenetrable brass armor. Its gaze is stern yet benevolent, even upon you." + clockwork_desc = "One of Ratvar's four generals. Nezbere is responsible for the design, testing, and creation of everything in Ratvar's domain, and his loyalty to Ratvar knows no bounds. \ + It is said that Ratvar once asked him to destroy the plans for a weapon Nezbere had made that could have harmed him and Nezbere responded by not only destroying the plans, \ + but by taking his own life so that the device could never be replicated. Nezbere's zealotry is unmatched." + icon = 'icons/effects/340x428.dmi' + icon_state = "nezbere" + pixel_x = -154 + pixel_y = -198 + +/obj/effect/clockwork/general_marker/sevtug + name = "Sevtug, the Formless Pariah" + desc = "A sinister cloud of purple energy. Looking at it gives you a headache." + clockwork_desc = "One of Ratvar's four generals. Sevtug taught him how to manipulate minds and is one of his oldest allies. Sevtug serves Ratvar loyally out of a hope that one day, he will \ + be able to use a moment of weakness in the Justicar to usurp him, but such a day will never come. And so, he serves with dedication, if not necessarily any sort of decorum, never aware he is \ + the one being made a fool of." + icon = 'icons/effects/211x247.dmi' + icon_state = "sevtug" + pixel_x = -89 + pixel_y = -107 + +/obj/effect/clockwork/general_marker/nzcrentr + name = "Nzcrentr, the Eternal Thunderbolt" + desc = "A terrifying spiked construct crackling with limitless energy." + clockwork_desc = "One of Ratvar's four generals. Before becoming one of Ratvar's generals, Nzcrentr sook out any and all sentient life to slaughter it for sport. \ + Nzcrentr was coerced by Ratvar into entering a shell constructed by Nezbere, ostensibly made to grant Nzcrentr more power. In reality, the shell was made to trap and control it. \ + Nzcrentr now serves loyally, though even one of Nezbere's finest creations was not enough to totally eliminate its will." + icon = 'icons/effects/254x361.dmi' + icon_state = "nzcrentr" + pixel_x = -111 + pixel_y = -164 diff --git a/code/game/gamemodes/clock_cult/clock_effects/spatial_gateway.dm b/code/game/gamemodes/clock_cult/clock_effects/spatial_gateway.dm new file mode 100644 index 0000000..73afbea --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_effects/spatial_gateway.dm @@ -0,0 +1,186 @@ +//Spatial gateway: A usually one-way rift to another location. +/obj/effect/clockwork/spatial_gateway + name = "spatial gateway" + desc = "A gently thrumming tear in reality." + clockwork_desc = "A gateway in reality." + icon_state = "spatial_gateway" + density = 1 + var/sender = TRUE //If this gateway is made for sending, not receiving + var/both_ways = FALSE + var/lifetime = 25 //How many deciseconds this portal will last + var/uses = 1 //How many objects or mobs can go through the portal + var/obj/effect/clockwork/spatial_gateway/linked_gateway //The gateway linked to this one + +/obj/effect/clockwork/spatial_gateway/New() + ..() + addtimer(src, "check_setup", 1) + +/obj/effect/clockwork/spatial_gateway/proc/check_setup() + if(!linked_gateway) + qdel(src) + return + if(both_ways) + clockwork_desc = "A gateway in reality. It can both send and receive objects." + else + clockwork_desc = "A gateway in reality. It can only [sender ? "send" : "receive"] objects." + QDEL_IN(src, lifetime) + +//set up a gateway with another gateway +/obj/effect/clockwork/spatial_gateway/proc/setup_gateway(obj/effect/clockwork/spatial_gateway/gatewayB, set_duration, set_uses, two_way) + if(!gatewayB || !set_duration || !uses) + return FALSE + linked_gateway = gatewayB + gatewayB.linked_gateway = src + if(two_way) + both_ways = TRUE + gatewayB.both_ways = TRUE + else + sender = TRUE + gatewayB.sender = FALSE + gatewayB.density = FALSE + lifetime = set_duration + gatewayB.lifetime = set_duration + uses = set_uses + gatewayB.uses = set_uses + return TRUE + +/obj/effect/clockwork/spatial_gateway/examine(mob/user) + ..() + if(is_servant_of_ratvar(user) || isobserver(user)) + user << "It has [uses] uses remaining." + +/obj/effect/clockwork/spatial_gateway/attack_ghost(mob/user) + if(linked_gateway) + user.forceMove(get_turf(linked_gateway)) + ..() + +/obj/effect/clockwork/spatial_gateway/attack_hand(mob/living/user) + if(!uses) + return FALSE + if(user.pulling && user.a_intent == "grab" && isliving(user.pulling)) + var/mob/living/L = user.pulling + if(L.buckled || L.anchored || L.has_buckled_mobs()) + return FALSE + user.visible_message("[user] shoves [L] into [src]!", "You shove [L] into [src]!") + user.stop_pulling() + pass_through_gateway(L) + return TRUE + if(!user.canUseTopic(src)) + return FALSE + user.visible_message("[user] climbs through [src]!", "You brace yourself and step through [src]...") + pass_through_gateway(user) + return TRUE + +/obj/effect/clockwork/spatial_gateway/attackby(obj/item/I, mob/living/user, params) + if(istype(I, /obj/item/weapon/nullrod)) + user.visible_message("[user] dispels [src] with [I]!", "You close [src] with [I]!") + qdel(linked_gateway) + qdel(src) + return TRUE + if(istype(I, /obj/item/clockwork/slab)) + user << "\"I don't think you want to drop your slab into that\".\n\"If you really want to, try throwing it.\"" + return TRUE + if(user.drop_item() && uses) + user.visible_message("[user] drops [I] into [src]!", "You drop [I] into [src]!") + pass_through_gateway(I) + return TRUE + return ..() + +/obj/effect/clockwork/spatial_gateway/ex_act(severity) + if(severity == 1 && uses) + uses = 0 + visible_message("[src] is disrupted!") + animate(src, alpha = 0, transform = matrix()*2, time = 10) + QDEL_IN(src, 10) + linked_gateway.uses = 0 + linked_gateway.visible_message("[linked_gateway] is disrupted!") + animate(linked_gateway, alpha = 0, transform = matrix()*2, time = 10) + QDEL_IN(linked_gateway, 10) + return TRUE + return FALSE + +/obj/effect/clockwork/spatial_gateway/Bumped(atom/A) + ..() + if(isliving(A) || istype(A, /obj/item)) + pass_through_gateway(A) + +/obj/effect/clockwork/spatial_gateway/proc/pass_through_gateway(atom/movable/A) + if(!linked_gateway) + qdel(src) + return FALSE + if(!sender) + visible_message("[A] bounces off of [src]!") + return FALSE + if(!uses) + return FALSE + if(isliving(A)) + var/mob/living/user = A + user << "You pass through [src] and appear elsewhere!" + linked_gateway.visible_message("A shape appears in [linked_gateway] before emerging!") + playsound(src, 'sound/effects/EMPulse.ogg', 50, 1) + playsound(linked_gateway, 'sound/effects/EMPulse.ogg', 50, 1) + transform = matrix() * 1.5 + animate(src, transform = matrix() / 1.5, time = 10) + linked_gateway.transform = matrix() * 1.5 + animate(linked_gateway, transform = matrix() / 1.5, time = 10) + A.forceMove(get_turf(linked_gateway)) + uses = max(0, uses - 1) + linked_gateway.uses = max(0, linked_gateway.uses - 1) + addtimer(src, "check_uses", 10) + return TRUE + +/obj/effect/clockwork/spatial_gateway/proc/check_uses() + if(!uses) + qdel(src) + qdel(linked_gateway) + +//This proc creates and sets up a gateway from invoker input. +/atom/movable/proc/procure_gateway(mob/living/invoker, time_duration, gateway_uses, two_way) + var/list/possible_targets = list() + var/list/teleportnames = list() + var/list/duplicatenamecount = list() + + for(var/obj/structure/destructible/clockwork/powered/clockwork_obelisk/O in all_clockwork_objects) + if(!O.Adjacent(invoker) && O != src && (O.z <= ZLEVEL_SPACEMAX)) //don't list obelisks that we're next to + var/area/A = get_area(O) + var/locname = initial(A.name) + var/resultkey = "[locname] [O.name]" + if(resultkey in teleportnames) //why the fuck did you put two obelisks in the same area + duplicatenamecount[resultkey]++ + resultkey = "[resultkey] ([duplicatenamecount[resultkey]])" + else + teleportnames.Add(resultkey) + duplicatenamecount[resultkey] = 1 + possible_targets[resultkey] = O + + for(var/mob/living/L in living_mob_list) + if(!L.stat && is_servant_of_ratvar(L) && !L.Adjacent(invoker) && L != invoker && (L.z <= ZLEVEL_SPACEMAX)) //People right next to the invoker can't be portaled to, for obvious reasons + var/resultkey = "[L.name] ([L.real_name])" + if(resultkey in teleportnames) + duplicatenamecount[resultkey]++ + resultkey = "[resultkey] ([duplicatenamecount[resultkey]])" + else + teleportnames.Add(resultkey) + duplicatenamecount[resultkey] = 1 + possible_targets[resultkey] = L + + if(!possible_targets.len) + invoker << "There are no other eligible targets for a Spatial Gateway!" + return FALSE + var/input_target_key = input(invoker, "Choose a target to form a rift to.", "Spatial Gateway") as null|anything in possible_targets + var/atom/movable/target = possible_targets[input_target_key] + if(!src || !target || !invoker || !invoker.canUseTopic(src, BE_CLOSE) || !is_servant_of_ratvar(invoker) || (istype(src, /obj/item) && invoker.get_active_held_item() != src)) + return FALSE //if any of the involved things no longer exist, the invoker is stunned, too far away to use the object, or does not serve ratvar, or if the object is an item and not in the mob's active hand, fail + var/istargetobelisk = istype(target, /obj/structure/destructible/clockwork/powered/clockwork_obelisk) + if(istargetobelisk) + gateway_uses *= 2 + time_duration *= 2 + invoker.visible_message("The air in front of [invoker] ripples before suddenly tearing open!", \ + "With a word, you rip open a [two_way ? "two-way":"one-way"] rift to [input_target_key]. It will last for [time_duration / 10] seconds and has [gateway_uses] use[gateway_uses > 1 ? "s" : ""].") + var/obj/effect/clockwork/spatial_gateway/S1 = new(istype(src, /obj/structure/destructible/clockwork/powered/clockwork_obelisk) ? get_turf(src) : get_step(get_turf(invoker), invoker.dir)) + var/obj/effect/clockwork/spatial_gateway/S2 = new(istargetobelisk ? get_turf(target) : get_step(get_turf(target), target.dir)) + + //Set up the portals now that they've spawned + S1.setup_gateway(S2, time_duration, gateway_uses, two_way) + S2.visible_message("The air in front of [target] ripples before suddenly tearing open!") + return TRUE diff --git a/code/game/gamemodes/clock_cult/clock_helpers/clock_powerdrain.dm b/code/game/gamemodes/clock_cult/clock_helpers/clock_powerdrain.dm new file mode 100644 index 0000000..8cb3194 --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_helpers/clock_powerdrain.dm @@ -0,0 +1,56 @@ +//horrifying power drain proc made for clockcult's power drain in lieu of six istypes or six for(x in view) loops +/atom/movable/proc/power_drain(clockcult_user) + return 0 + +/obj/machinery/power/apc/power_drain(clockcult_user) + if(cell && cell.charge) + playsound(src, "sparks", 50, 1) + flick("apc-spark", src) + . += min(cell.charge, 500) + cell.charge = max(0, cell.charge - 500) //Better than a power sink! + if(!cell.charge && !shorted) + shorted = 1 + visible_message("The [name]'s screen blurs with static.") + update() + update_icon() + +/obj/machinery/power/smes/power_drain(clockcult_user) + if(charge) + . += min(charge, 500) + charge = max(0, charge - 50000) + if(!charge && !panel_open) + panel_open = TRUE + icon_state = "[initial(icon_state)]-o" + var/datum/effect_system/spark_spread/spks = new(get_turf(src)) + spks.set_up(10, 0, get_turf(src)) + spks.start() + visible_message("[src]'s panel flies open with a flurry of spark") + update_icon() + +/obj/item/weapon/stock_parts/cell/power_drain(clockcult_user) + if(charge) + . += min(charge, 500) + charge = use(max(0, charge - 500)) + updateicon() + +/obj/machinery/light/power_drain(clockcult_user) + if(on) + playsound(src, 'sound/effects/light_flicker.ogg', 50, 1) + flicker(2) + . += MIN_CLOCKCULT_POWER + else if(prob(50)) + burn_out() + +/mob/living/silicon/robot/power_drain(clockcult_user) + if((!clockcult_user || !is_servant_of_ratvar(src)) && cell && cell.charge) + . += min(cell.charge, 500) + cell.charge = max(0, cell.charge - 500) + src << "ERROR: Power loss detected!" + spark_system.start() + +/obj/mecha/power_drain(clockcult_user) + if((!clockcult_user || !occupant || occupant && !is_servant_of_ratvar(occupant)) && cell && cell.charge) + . += min(cell.charge, 500) + cell.charge = max(0, cell.charge - 500) + occupant_message("Power loss detected!") + spark_system.start() \ No newline at end of file diff --git a/code/game/gamemodes/clock_cult/clock_helpers/component_helpers.dm b/code/game/gamemodes/clock_cult/clock_helpers/component_helpers.dm new file mode 100644 index 0000000..e8b4de7 --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_helpers/component_helpers.dm @@ -0,0 +1,141 @@ +//generates a component in the global component cache, either random based on lowest or a specific component +/proc/generate_cache_component(specific_component_id) + if(specific_component_id) + clockwork_component_cache[specific_component_id]++ + else + var/component_to_generate = get_weighted_component_id() + clockwork_component_cache[component_to_generate]++ + +//returns a chosen component id based on the lowest amount of that component in the global cache, the global cache plus the slab if there are caches, or the slab if there are no caches. +/proc/get_weighted_component_id(obj/item/clockwork/slab/storage_slab) + . = list() + if(storage_slab) + if(clockwork_caches) + for(var/i in clockwork_component_cache) + .[i] = max(MAX_COMPONENTS_BEFORE_RAND - LOWER_PROB_PER_COMPONENT*(clockwork_component_cache[i] + storage_slab.stored_components[i]), 1) + else + for(var/i in clockwork_component_cache) + .[i] = max(MAX_COMPONENTS_BEFORE_RAND - LOWER_PROB_PER_COMPONENT*storage_slab.stored_components[i], 1) + else + for(var/i in clockwork_component_cache) + .[i] = max(MAX_COMPONENTS_BEFORE_RAND - LOWER_PROB_PER_COMPONENT*clockwork_component_cache[i], 1) + . = pickweight(.) + +//returns a component name from a component id +/proc/get_component_name(id) + switch(id) + if(BELLIGERENT_EYE) + return "Belligerent Eye" + if(VANGUARD_COGWHEEL) + return "Vanguard Cogwheel" + if(GUVAX_CAPACITOR) + return "Guvax Capacitor" + if(REPLICANT_ALLOY) + return "Replicant Alloy" + if(HIEROPHANT_ANSIBLE) + return "Hierophant Ansible" + else + return null + +//returns a component acronym from a component id +/proc/get_component_acronym(id) + switch(id) + if(BELLIGERENT_EYE) + return "BE" + if(VANGUARD_COGWHEEL) + return "VC" + if(GUVAX_CAPACITOR) + return "GC" + if(REPLICANT_ALLOY) + return "RA" + if(HIEROPHANT_ANSIBLE) + return "HA" + else + return null + +//returns a component id from a component name +/proc/get_component_id(name) + switch(name) + if("Belligerent Eye") + return BELLIGERENT_EYE + if("Vanguard Cogwheel") + return VANGUARD_COGWHEEL + if("Guvax Capacitor") + return GUVAX_CAPACITOR + if("Replicant Alloy") + return REPLICANT_ALLOY + if("Hierophant Ansible") + return HIEROPHANT_ANSIBLE + else + return null + +//returns a component spanclass from a component id +/proc/get_component_span(id) + switch(id) + if(BELLIGERENT_EYE) + return "neovgre" + if(VANGUARD_COGWHEEL) + return "inathneq" + if(GUVAX_CAPACITOR) + return "sevtug" + if(REPLICANT_ALLOY) + return "nezbere" + if(HIEROPHANT_ANSIBLE) + return "nzcrentr" + else + return null + +//returns a component color from a component id, but with a brighter replicant alloy color +/proc/get_component_color_brightalloy(id) + if(id == REPLICANT_ALLOY) + return "#5A6068" + else + return get_component_color(id) + +//returns a component color from a component id +/proc/get_component_color(id) + switch(id) + if(BELLIGERENT_EYE) + return "#6E001A" + if(VANGUARD_COGWHEEL) + return "#1E8CE1" + if(GUVAX_CAPACITOR) + return "#AF0AAF" + if(REPLICANT_ALLOY) + return "#42474D" + if(HIEROPHANT_ANSIBLE) + return "#DAAA18" + else + return "#BE8700" + +//returns a type for a floating component animation from a component id +/proc/get_component_animation_type(id) + switch(id) + if(BELLIGERENT_EYE) + return /obj/effect/overlay/temp/ratvar/component + if(VANGUARD_COGWHEEL) + return /obj/effect/overlay/temp/ratvar/component/cogwheel + if(GUVAX_CAPACITOR) + return /obj/effect/overlay/temp/ratvar/component/capacitor + if(REPLICANT_ALLOY) + return /obj/effect/overlay/temp/ratvar/component/alloy + if(HIEROPHANT_ANSIBLE) + return /obj/effect/overlay/temp/ratvar/component/ansible + else + return null + +//returns a type for a component from a component id +/proc/get_component_type(id) + switch(id) + if(BELLIGERENT_EYE) + return /obj/item/clockwork/component/belligerent_eye + if(VANGUARD_COGWHEEL) + return /obj/item/clockwork/component/vanguard_cogwheel + if(GUVAX_CAPACITOR) + return /obj/item/clockwork/component/guvax_capacitor + if(REPLICANT_ALLOY) + return /obj/item/clockwork/component/replicant_alloy + if(HIEROPHANT_ANSIBLE) + return /obj/item/clockwork/component/hierophant_ansible + else + return null \ No newline at end of file diff --git a/code/game/gamemodes/clock_cult/clock_helpers/hierophant_network.dm b/code/game/gamemodes/clock_cult/clock_helpers/hierophant_network.dm new file mode 100644 index 0000000..4e4697f --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_helpers/hierophant_network.dm @@ -0,0 +1,47 @@ +//Sends a string to all servants and optionally ghosts, who will get a follow link to whatever is provided as the target. +/proc/hierophant_message(message, servantsonly, atom/target) + if(!message) + return FALSE + for(var/M in mob_list) + if(!servantsonly && isobserver(M)) + if(target) + var/link = FOLLOW_LINK(M, target) + M << "[link] [message]" + else + M << message + else if(is_servant_of_ratvar(M)) + M << message + return TRUE + +//Sends a titled message from a mob to all servants of ratvar and ghosts. +/proc/titled_hierophant_message(mob/user, message, name_span = "heavy_brass", message_span = "brass", user_title = "Servant") + if(!user || !message) + return FALSE + var/parsed_message = "[user_title ? "[user_title] ":""][findtextEx(user.name, user.real_name) ? user.name : "[user.real_name] (as [user.name])"]: \ + \"[message]\"" + hierophant_message(parsed_message, FALSE, user) + return TRUE + +//Hierophant Network action, allows a servant with it to communicate to other servants. +/datum/action/innate/hierophant + name = "Hierophant Network" + desc = "Allows you to communicate with other Servants." + button_icon_state = "hierophant" + background_icon_state = "bg_clock" + check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUNNED|AB_CHECK_CONSCIOUS + buttontooltipstyle = "clockcult" + var/title = "Servant" + var/span_for_name = "heavy_brass" + var/span_for_message = "brass" + +/datum/action/innate/hierophant/IsAvailable() + if(!is_servant_of_ratvar(owner)) + return FALSE + return ..() + +/datum/action/innate/hierophant/Activate() + var/input = stripped_input(usr, "Please enter a message to send to other servants.", "Hierophant Network", "") + if(!input || !IsAvailable()) + return + + titled_hierophant_message(owner, input, span_for_name, span_for_message, title) diff --git a/code/game/gamemodes/clock_cult/clock_helpers/proselytizer_helpers.dm b/code/game/gamemodes/clock_cult/clock_helpers/proselytizer_helpers.dm new file mode 100644 index 0000000..8596e72 --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_helpers/proselytizer_helpers.dm @@ -0,0 +1,245 @@ +//For the clockwork proselytizer, this proc exists to make it easy to customize what the proselytizer does when hitting something. + +//if a valid target, returns an associated list in this format; +//list("operation_time" = 15, "new_obj_type" = /obj/structure/window/reinforced/clockwork, "alloy_cost" = 5, "spawn_dir" = dir, "dir_in_new" = TRUE) +//otherwise, return literally any non-list thing but preferably FALSE +//returning TRUE won't produce the "cannot be proselytized" message and will still prevent proselytizing + +/atom/proc/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + return FALSE + +//Turf conversion +/turf/closed/wall/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + return list("operation_time" = 50, "new_obj_type" = /turf/closed/wall/clockwork, "alloy_cost" = REPLICANT_WALL_TOTAL, "spawn_dir" = SOUTH) + +/turf/closed/wall/r_wall/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + return FALSE + +/turf/closed/wall/clockwork/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + return list("operation_time" = 50, "new_obj_type" = /turf/open/floor/clockwork, "alloy_cost" = -REPLICANT_WALL_MINUS_FLOOR, "spawn_dir" = SOUTH) + +/turf/open/floor/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + return list("operation_time" = 30, "new_obj_type" = /turf/open/floor/clockwork, "alloy_cost" = REPLICANT_FLOOR, "spawn_dir" = SOUTH) + +/turf/open/floor/plating/asteroid/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + return FALSE + +/turf/open/floor/plating/ashplanet/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + return FALSE + +/turf/open/floor/plating/lava/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + return FALSE + +/turf/open/floor/clockwork/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + for(var/obj/O in src) + if(O.density && !O.CanPass(user, src, 5)) + user << "Something is in the way, preventing you from proselytizing [src] into a clockwork wall." + return FALSE + return list("operation_time" = 100, "new_obj_type" = /turf/closed/wall/clockwork, "alloy_cost" = REPLICANT_WALL_MINUS_FLOOR, "spawn_dir" = SOUTH) + +//Metal conversion +/obj/item/stack/rods/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + if(get_amount() >= 10) + var/sheets_to_make = round(get_amount() * 0.1) + var/used = sheets_to_make * 10 + user.visible_message("[user]'s [proselytizer.name] rips into [src], converting it to brass!", \ + "You convert [get_amount() - used > 0 ? "part of ":""][src] into brass...") + playsound(src, 'sound/machines/click.ogg', 50, 1) + playsound(src, 'sound/items/Deconstruct.ogg', 50, 1) + new /obj/item/stack/sheet/brass(get_turf(src), sheets_to_make) + use(used) + else + user << "You need at least 10 rods to convert into brass." + return TRUE + +/obj/item/stack/sheet/metal/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + if(get_amount() >= 5) + var/sheets_to_make = round(get_amount() * 0.2) + var/used = sheets_to_make * 5 + user.visible_message("[user]'s [proselytizer.name] rips into [src], converting it to brass!", \ + "You convert [get_amount() - used > 0 ? "part of ":""][src] into brass...") + playsound(src, 'sound/machines/click.ogg', 50, 1) + playsound(src, 'sound/items/Deconstruct.ogg', 50, 1) + new /obj/item/stack/sheet/brass(get_turf(src), sheets_to_make) + use(used) + else + user << "You need at least 5 sheets of metal to convert into brass." + return TRUE + +/obj/item/stack/sheet/plasteel/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + if(get_amount() >= 2) + var/sheets_to_make = round(get_amount() * 0.5) + var/used = sheets_to_make * 2 + user.visible_message("[user]'s [proselytizer.name] rips into [src], converting it to brass!", \ + "You convert [get_amount() - used > 0 ? "part of ":""][src] into brass...") + playsound(src, 'sound/machines/click.ogg', 50, 1) + playsound(src, 'sound/items/Deconstruct.ogg', 50, 1) + new /obj/item/stack/sheet/brass(get_turf(src), sheets_to_make) + use(used) + else + user << "You need at least 2 sheets of plasteel to convert into brass." + return TRUE + +//Brass directly to alloy; scarab only +/obj/item/stack/sheet/brass/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + if(!proselytizer.metal_to_alloy) + return FALSE + var/prosel_cost = -amount*REPLICANT_FLOOR + var/prosel_time = -amount + return list("operation_time" = -prosel_time, "new_obj_type" = /obj/effect/overlay/temp/ratvar/beam/itemconsume, "alloy_cost" = prosel_cost, "spawn_dir" = SOUTH) + +//Airlock conversion +/obj/machinery/door/airlock/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + var/doortype = /obj/machinery/door/airlock/clockwork + if(glass) + doortype = /obj/machinery/door/airlock/clockwork/brass + return list("operation_time" = 40, "new_obj_type" = doortype, "alloy_cost" = REPLICANT_WALL_TOTAL, "spawn_dir" = dir) + +/obj/machinery/door/airlock/clockwork/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + return FALSE + +//Window conversion +/obj/structure/window/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + var/windowtype = /obj/structure/window/reinforced/clockwork + var/new_dir = TRUE + var/prosel_time = 15 + var/prosel_cost = REPLICANT_FLOOR + if(fulltile) + windowtype = /obj/structure/window/reinforced/clockwork/fulltile + new_dir = FALSE + prosel_time = 30 + prosel_cost = REPLICANT_STANDARD + return list("operation_time" = prosel_time, "new_obj_type" = windowtype, "alloy_cost" = prosel_cost, "spawn_dir" = dir, "dir_in_new" = new_dir) + +/obj/structure/window/reinforced/clockwork/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + return FALSE + +//Windoor conversion +/obj/machinery/door/window/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + return list("operation_time" = 30, "new_obj_type" = /obj/machinery/door/window/clockwork, "alloy_cost" = REPLICANT_STANDARD, "spawn_dir" = dir, "dir_in_new" = TRUE) + +/obj/machinery/door/window/clockwork/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + return FALSE + +//Grille conversion +/obj/structure/grille/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + var/grilletype = /obj/structure/grille/ratvar + var/prosel_time = 15 + if(broken) + grilletype = /obj/structure/grille/ratvar/broken + prosel_time = 5 + return list("operation_time" = prosel_time, "new_obj_type" = grilletype, "alloy_cost" = 0, "spawn_dir" = dir) + +/obj/structure/grille/ratvar/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + return FALSE + +//Girder conversion +/obj/structure/girder/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + return list("operation_time" = 20, "new_obj_type" = /obj/structure/destructible/clockwork/wall_gear, "alloy_cost" = REPLICANT_GEAR, "spawn_dir" = SOUTH) + +//Hitting a clockwork structure will try to repair it. +/obj/structure/destructible/clockwork/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + . = TRUE + if(!can_be_repaired) + user << "[src] cannot be repaired with a proselytizer!" + return + if(obj_integrity >= max_integrity) + user << "[src] is at maximum integrity!" + return + var/amount_to_heal = max_integrity - obj_integrity + var/healing_for_cycle = min(amount_to_heal, repair_amount) + var/proselytizer_cost = 0 + if(!proselytizer.can_use_alloy(RATVAR_ALLOY_CHECK)) + healing_for_cycle = min(healing_for_cycle, proselytizer.stored_alloy * 0.5) + proselytizer_cost = healing_for_cycle * 2 + if(!proselytizer.can_use_alloy(proselytizer_cost)) + user << "You need more liquified alloy to repair [src]!" + return + user.visible_message("[user]'s [proselytizer.name] starts covering [src] in black liquid metal...", \ + "You start repairing [src]...") + //hugeass while because we need to re-check after the do_after + proselytizer.repairing = src + while(proselytizer && user && src && obj_integrity != max_integrity) + amount_to_heal = max_integrity - obj_integrity + if(amount_to_heal <= 0) + break + healing_for_cycle = min(amount_to_heal, repair_amount) + if(!proselytizer.can_use_alloy(RATVAR_ALLOY_CHECK)) + healing_for_cycle = min(healing_for_cycle, proselytizer.stored_alloy * 0.5) + proselytizer_cost = healing_for_cycle * 2 + if(!proselytizer.can_use_alloy(proselytizer_cost)) + break + else + proselytizer_cost = 0 + if(!proselytizer.can_use_alloy(proselytizer_cost) || !do_after(user, proselytizer_cost, target = src) || !proselytizer || !proselytizer.can_use_alloy(proselytizer_cost)) + break + amount_to_heal = max_integrity - obj_integrity + if(amount_to_heal <= 0) + break + healing_for_cycle = min(amount_to_heal, repair_amount) + if(!proselytizer.can_use_alloy(RATVAR_ALLOY_CHECK)) + healing_for_cycle = min(healing_for_cycle, proselytizer.stored_alloy * 0.5) + proselytizer_cost = healing_for_cycle * 2 + if(!proselytizer.can_use_alloy(proselytizer_cost)) + break + else + proselytizer_cost = 0 + obj_integrity = Clamp(obj_integrity + healing_for_cycle, 0, max_integrity) + proselytizer.modify_stored_alloy(-proselytizer_cost) + playsound(src, 'sound/machines/click.ogg', 50, 1) + + if(proselytizer) + proselytizer.repairing = null + if(user) + user.visible_message("[user]'s [proselytizer.name] stops covering [src] with black liquid metal.", \ + "You finish repairing [src]. It is now at [obj_integrity]/[max_integrity] integrity.") + return + +//Hitting a tinkerer's cache will try to fill the proselytizer with alloy after trying to repair. +/obj/structure/destructible/clockwork/cache/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + . = ..() + if(proselytizer.can_use_alloy(RATVAR_ALLOY_CHECK) || proselytizer.stored_alloy + REPLICANT_ALLOY_UNIT > proselytizer.max_alloy) + user << "[proselytizer]'s containers of liquified alloy are full!" + return + if(!clockwork_component_cache["replicant_alloy"]) + user << "There is no Replicant Alloy in the global component cache!" + return + proselytizer.refueling = TRUE + user.visible_message("[user] places the end of [proselytizer] in the hole in [src]...", \ + "You start filling [proselytizer] with liquified alloy...") + //hugeass check because we need to re-check after the do_after + while(proselytizer && !proselytizer.can_use_alloy(RATVAR_ALLOY_CHECK) && proselytizer.stored_alloy + REPLICANT_ALLOY_UNIT <= proselytizer.max_alloy && clockwork_component_cache["replicant_alloy"] \ + && do_after(user, 10, target = src) \ + && proselytizer && !proselytizer.can_use_alloy(RATVAR_ALLOY_CHECK) && proselytizer.stored_alloy + REPLICANT_ALLOY_UNIT <= proselytizer.max_alloy && clockwork_component_cache["replicant_alloy"]) + proselytizer.modify_stored_alloy(REPLICANT_ALLOY_UNIT) + clockwork_component_cache["replicant_alloy"]-- + playsound(src, 'sound/items/Deconstruct.ogg', 50, 1) + if(proselytizer) + proselytizer.refueling = FALSE + if(user) + user.visible_message("[user] removes [proselytizer] from the hole in [src], apparently satisfied.", \ + "You finish filling [proselytizer] with liquified alloy. It now contains [proselytizer.stored_alloy]/[proselytizer.max_alloy] units of liquified alloy.") + return + +//convert wall gears back to brass sheets +/obj/structure/destructible/clockwork/wall_gear/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + return list("operation_time" = 10, "new_obj_type" = /obj/item/stack/sheet/brass, "alloy_cost" = 0, "spawn_dir" = 3, "dir_in_new" = TRUE) + +//Convert shards and replicant alloy directly to liquid alloy +/obj/item/clockwork/alloy_shards/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + return list("operation_time" = 5, "new_obj_type" = /obj/effect/overlay/temp/ratvar/beam/itemconsume, "alloy_cost" = -REPLICANT_STANDARD, "spawn_dir" = SOUTH) + +/obj/item/clockwork/alloy_shards/medium/gear_bit/large/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + return list("operation_time" = 3, "new_obj_type" = /obj/effect/overlay/temp/ratvar/beam/itemconsume, "alloy_cost" = -(REPLICANT_ALLOY_UNIT*0.08), "spawn_dir" = SOUTH) + +/obj/item/clockwork/alloy_shards/large/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + return list("operation_time" = 2, "new_obj_type" = /obj/effect/overlay/temp/ratvar/beam/itemconsume, "alloy_cost" = -(REPLICANT_ALLOY_UNIT*0.06), "spawn_dir" = SOUTH) + +/obj/item/clockwork/alloy_shards/medium/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + return list("operation_time" = 1, "new_obj_type" = /obj/effect/overlay/temp/ratvar/beam/itemconsume, "alloy_cost" = -(REPLICANT_ALLOY_UNIT*0.04), "spawn_dir" = SOUTH) + +/obj/item/clockwork/alloy_shards/small/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + return list("operation_time" = 0, "new_obj_type" = /obj/effect/overlay/temp/ratvar/beam/itemconsume, "alloy_cost" = -(REPLICANT_ALLOY_UNIT*0.02), "spawn_dir" = SOUTH) + +/obj/item/clockwork/component/replicant_alloy/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) + return list("operation_time" = 0, "new_obj_type" = /obj/effect/overlay/temp/ratvar/beam/itemconsume, "alloy_cost" = -REPLICANT_ALLOY_UNIT, "spawn_dir" = SOUTH) diff --git a/code/game/gamemodes/clock_cult/clock_helpers/ratvarian_language.dm b/code/game/gamemodes/clock_cult/clock_helpers/ratvarian_language.dm new file mode 100644 index 0000000..8bdd607 --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_helpers/ratvarian_language.dm @@ -0,0 +1,107 @@ +/* +The Ratvarian Language + In the lore of the Servants of Ratvar, the Ratvarian tongue is a timeless language and full of power. It sounds like gibberish, much like Nar-Sie's language, but is in fact derived from +aforementioned language, and may induce miracles when spoken in the correct way with an amplifying tool (similar to runes used by the Nar-Sian cult). + + While the canon states that the language of Ratvar and his servants is incomprehensible to the unenlightened as it is a derivative of the most ancient known language, in reality it is +actually very simple. To translate a plain English sentence to Ratvar's tongue, simply move all of the letters thirteen places ahead, starting from "a" if the end of the alphabet is reached. +This cipher is known as "rot13" for "rotate 13 places" and there are many sites online that allow instant translation between English and rot13 - one of the benefits is that moving the translated +sentence thirteen places ahead changes it right back to plain English. + + There are, however, a few parts of the Ratvarian tongue that aren't typical and are implemented for fluff reasons. Some words may have graves, or hyphens (prefix and postfix), making the plain +English translation apparent but disjoined (for instance, "Orubyq zl-cbjre!" translates directly to "Behold my-power!") although this can be ignored without impacting overall quality. When +translating from Ratvar's tongue to plain English, simply remove the disjointments and use the finished sentence. This would make "Orubyq zl-cbjre!" into "Behold my power!" after removing the +abnormal spacing, hyphens, and grave accents. + +List of nuances: +- Any time the WORD "of" occurs, it is linked to the previous word by a hyphen. (i.e. "V nz-bs Ratvar." directly translates to "I am-of Ratvar.") +- Any time "th", followed by any two letters occurs, you add a grave (`) between those two letters, i.e; "Thi`s" +- In the same vein, any time "ti", followed by one letter occurs, you add a grave (`) between "i" and the letter, i.e; "Ti`me" +- Whereever "te" or "et" appear and there is another letter next to the e(i.e; "m"etal, greate"r"), add a hyphen between "e" and the letter, i.e; "M-etal", "Greate-r" +- Where "gua" appears, add a hyphen between "gu" and "a", i.e "Gu-ard" +- Where the WORD "and" appears it is linked to all surrounding words by hyphens, i.e; "Sword-and-shield" +- Where the WORD "to" appears, it is linked to the following word by a hyphen, i.e; "to-use" +- Where the WORD "my" appears, it is linked to the following word by a hyphen, i.e; "my-light" +- Although "Ratvar" translates to "Engine" in English, the word "Ratvar" is used regardless of language as it is a proper noun. + - The same rule applies to Ratvar's four generals: Nezbere (Armorer), Sevtug (Fright), Nzcrentr (Amperage), and Inath-neq (Vangu-Ard), although these words can be used in proper context if one is + not referring to the four generals and simply using the words themselves. +*/ + +//Regexes used to alter english to ratvarian style +#define RATVAR_OF_MATCH regex("(\\w)\\s(\[oO]\[fF])","g") +#define RATVAR_OF_REPLACEMENT "$1-$2" +#define RATVAR_GUA_MATCH regex("(\[gG]\[uU])(\[aA])","g") +#define RATVAR_GUA_REPLACEMENT "$1-$2" +#define RATVAR_TH_MATCH regex("(\[tT]\[hH]\\w)(\\w)","g") +#define RATVAR_TH_REPLACEMENT "$1`$2" +#define RATVAR_TI_MATCH regex("(\[tT]\[iI])(\\w)","g") +#define RATVAR_TI_REPLACEMENT "$1`$2" +#define RATVAR_ET_MATCH regex("(\\w)(\[eE]\[tT])","g") +#define RATVAR_ET_REPLACEMENT "$1-$2" +#define RATVAR_TE_MATCH regex("(\[tT]\[eE])(\\w)","g") +#define RATVAR_TE_REPLACEMENT "$1-$2" +#define RATVAR_PRE_AND_MATCH regex("(\\w)\\s(\[aA]\[nN]\[dD])","g") +#define RATVAR_PRE_AND_REPLACEMENT "$1-$2" +#define RATVAR_POST_AND_MATCH regex("(\[aA]\[nN]\[dD])\\s(\\w)","g") +#define RATVAR_POST_AND_REPLACEMENT "$1-$2" +#define RATVAR_TO_MATCH regex("(\\s)(\[tT]\[oO])\\s(\\w)","g") +#define RATVAR_TO_REPLACEMENT "$1$2-$3" +#define RATVAR_MY_MATCH regex("(\\s)(\[mM]\[yY])\\s(\\w)","g") +#define RATVAR_MY_REPLACEMENT "$1$2-$3" + +//Regexes used to remove ratvarian styling from english +#define REVERSE_RATVAR_HYPHEN_PRE_AND_MATCH regex("(\\w)-(\[aA]\[nN]\[dD])","g") //specifically structured to support -emphasis-, including with -and- +#define REVERSE_RATVAR_HYPHEN_PRE_AND_REPLACEMENT "$1 $2" +#define REVERSE_RATVAR_HYPHEN_POST_AND_MATCH regex("(\[aA]\[nN]\[dD])-(\\w)","g") +#define REVERSE_RATVAR_HYPHEN_POST_AND_REPLACEMENT "$1 $2" +#define REVERSE_RATVAR_HYPHEN_TO_MY_MATCH regex("(\[tTmM]\[oOyY])-","g") +#define REVERSE_RATVAR_HYPHEN_TO_MY_REPLACEMENT "$1 " +#define REVERSE_RATVAR_HYPHEN_TE_MATCH regex("(\[tT]\[eE])-","g") +#define REVERSE_RATVAR_HYPHEN_TE_REPLACEMENT "$1" +#define REVERSE_RATVAR_HYPHEN_ET_MATCH regex("-(\[eE]\[tT])","g") +#define REVERSE_RATVAR_HYPHEN_ET_REPLACEMENT "$1" +#define REVERSE_RATVAR_HYPHEN_GUA_MATCH regex("(\[gG]\[uU])-(\[aA])","g") +#define REVERSE_RATVAR_HYPHEN_GUA_REPLACEMENT "$1$2" +#define REVERSE_RATVAR_HYPHEN_OF_MATCH regex("-(\[oO]\[fF])","g") +#define REVERSE_RATVAR_HYPHEN_OF_REPLACEMENT " $1" + + +/proc/text2ratvar(text) //Takes english and applies ratvarian styling rules (and rot13) to it + var/ratvarian = replacetext(text, RATVAR_OF_MATCH, RATVAR_OF_REPLACEMENT) + ratvarian = replacetext(ratvarian, RATVAR_GUA_MATCH, RATVAR_GUA_REPLACEMENT) + ratvarian = replacetext(ratvarian, RATVAR_TH_MATCH, RATVAR_TH_REPLACEMENT) + ratvarian = replacetext(ratvarian, RATVAR_TI_MATCH, RATVAR_TI_REPLACEMENT) + ratvarian = replacetext(ratvarian, RATVAR_ET_MATCH, RATVAR_ET_REPLACEMENT) + ratvarian = replacetext(ratvarian, RATVAR_TE_MATCH, RATVAR_TE_REPLACEMENT) + ratvarian = replacetext(ratvarian, RATVAR_PRE_AND_MATCH, RATVAR_PRE_AND_REPLACEMENT) + ratvarian = replacetext(ratvarian, RATVAR_POST_AND_MATCH, RATVAR_POST_AND_REPLACEMENT) + ratvarian = replacetext(ratvarian, RATVAR_TO_MATCH, RATVAR_TO_REPLACEMENT) + ratvarian = replacetext(ratvarian, RATVAR_MY_MATCH, RATVAR_MY_REPLACEMENT) + return rot13(ratvarian) + +/proc/ratvar2text(ratvarian) //Reverts ravarian styling and rot13 in text. + var/text = replacetext(rot13(ratvarian), "`", "") + text = replacetext(text, REVERSE_RATVAR_HYPHEN_GUA_MATCH, REVERSE_RATVAR_HYPHEN_GUA_REPLACEMENT) + text = replacetext(text, REVERSE_RATVAR_HYPHEN_PRE_AND_MATCH, REVERSE_RATVAR_HYPHEN_PRE_AND_REPLACEMENT) + text = replacetext(text, REVERSE_RATVAR_HYPHEN_POST_AND_MATCH, REVERSE_RATVAR_HYPHEN_POST_AND_REPLACEMENT) + text = replacetext(text, REVERSE_RATVAR_HYPHEN_TO_MY_MATCH, REVERSE_RATVAR_HYPHEN_TO_MY_REPLACEMENT) + text = replacetext(text, REVERSE_RATVAR_HYPHEN_TE_MATCH, REVERSE_RATVAR_HYPHEN_TE_REPLACEMENT) + text = replacetext(text, REVERSE_RATVAR_HYPHEN_ET_MATCH, REVERSE_RATVAR_HYPHEN_ET_REPLACEMENT) + text = replacetext(text, REVERSE_RATVAR_HYPHEN_OF_MATCH, REVERSE_RATVAR_HYPHEN_OF_REPLACEMENT) + return text + +//Causes the mob or AM in question to speak a message; it assumes that the message is already translated to ratvar speech using text2ratvar() +/proc/clockwork_say(atom/movable/AM, message, whisper=FALSE) + var/list/spans = list(SPAN_ROBOT) + + var/old_languages_spoken = AM.languages_spoken + AM.languages_spoken = HUMAN //anyone who can understand HUMAN will hear weird shitty ratvar speak, otherwise it'll get starred out + if(isliving(AM)) + var/mob/living/L = AM + if(!whisper) + L.say(message, "clock", spans) + else + L.whisper(message) + else + AM.say(message) + AM.languages_spoken = old_languages_spoken diff --git a/code/game/gamemodes/clock_cult/clock_helpers/scripture_checks.dm b/code/game/gamemodes/clock_cult/clock_helpers/scripture_checks.dm new file mode 100644 index 0000000..a11a7ac --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_helpers/scripture_checks.dm @@ -0,0 +1,37 @@ +//returns a list of scriptures and if they're unlocked or not +/proc/scripture_unlock_check() + var/servants = 0 + var/unconverted_ai_exists = FALSE + for(var/mob/living/M in living_mob_list) + if(is_servant_of_ratvar(M) && (ishuman(M) || issilicon(M))) + servants++ + else if(isAI(M)) + unconverted_ai_exists = TRUE + . = list(SCRIPTURE_DRIVER = TRUE, SCRIPTURE_SCRIPT = FALSE, SCRIPTURE_APPLICATION = FALSE, SCRIPTURE_REVENANT = FALSE, SCRIPTURE_JUDGEMENT = FALSE) + //Drivers: always unlocked + .[SCRIPTURE_SCRIPT] = (servants >= 5 && clockwork_caches >= 1) + //Script: 5 or more non-brain servants and 1+ clockwork caches + .[SCRIPTURE_APPLICATION] = (servants >= 8 && clockwork_caches >= 3 && clockwork_construction_value >= 100) + //Application: 8 or more non-brain servants, 3+ clockwork caches, and at least 100 CV + .[SCRIPTURE_REVENANT] = (servants >= 10 && clockwork_caches >= 4 && clockwork_construction_value >= 200) + //Revenant: 10 or more non-brain servants, 4+ clockwork caches, and at least 200 CV + .[SCRIPTURE_JUDGEMENT] = (servants >= 12 && clockwork_caches >= 5 && clockwork_construction_value >= 300 && !unconverted_ai_exists) + //Judgement: 12 or more non-brain servants, 5+ clockwork caches, at least 300 CV, and there are no living, non-servant ais + +//reports to servants when scripture is locked or unlocked +/proc/scripture_unlock_alert(list/previous_states) + . = scripture_unlock_check() + for(var/i in .) + if(.[i] != previous_states[i]) + hierophant_message("Hierophant Network: [i] Scripture has been [.[i] ? "un":""]locked.") + +//changes construction value +/proc/change_construction_value(amount) + clockwork_construction_value += amount + +//throws the no cache alert if there are no caches and clears it otherwise +/proc/cache_check(mob/M) + if(!clockwork_caches) + M.throw_alert("nocache", /obj/screen/alert/clockwork/nocache) + else + M.clear_alert("nocache") diff --git a/code/game/gamemodes/clock_cult/clock_helpers/slab_abilities.dm b/code/game/gamemodes/clock_cult/clock_helpers/slab_abilities.dm new file mode 100644 index 0000000..d5d4099 --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_helpers/slab_abilities.dm @@ -0,0 +1,180 @@ +//The base for slab-bound/based ranged abilities +/obj/effect/proc_holder/slab + var/obj/item/clockwork/slab/slab + var/successful = FALSE + var/finished = FALSE + var/in_progress = FALSE + +/obj/effect/proc_holder/slab/remove_ranged_ability(msg) + ..() + finished = TRUE + QDEL_IN(src, 2) + +/obj/effect/proc_holder/slab/InterceptClickOn(mob/living/caller, params, atom/target) + if(..() || in_progress) + return TRUE + if(ranged_ability_user.incapacitated() || !slab || !(slab in ranged_ability_user.held_items) || target == slab) + remove_ranged_ability() + return TRUE + +//For the Guvax scripture; binds a target to convert. +/obj/effect/proc_holder/slab/guvax + ranged_mousepointer = 'icons/effects/guvax_target.dmi' + +/obj/effect/proc_holder/slab/guvax/InterceptClickOn(mob/living/caller, params, atom/target) + if(..()) + return TRUE + + var/turf/T = ranged_ability_user.loc + if(!isturf(T)) + return TRUE + + if(isliving(target) && ranged_ability_user.Adjacent(target)) + var/mob/living/L = target + if(is_servant_of_ratvar(L)) + if(L != ranged_ability_user) + ranged_ability_user << "\"[L.p_they(TRUE)] already serve[L.p_s()] Ratvar. [text2ratvar("Perhaps [ranged_ability_user.p_theyre()] into bondage?")]\"" + return TRUE + if(L.stat == DEAD) + ranged_ability_user << "\"[L.p_theyre(TRUE)] dead, idiot.\"" + return TRUE + + if(istype(L.buckled, /obj/structure/destructible/clockwork/guvax_binding)) //if they're already bound, just stun them + L.Stun(1) + successful = TRUE + else + in_progress = TRUE + clockwork_say(ranged_ability_user, text2ratvar("Be bound, heathen!")) + remove_mousepointer(ranged_ability_user.client) + ranged_ability_user.notransform = TRUE + addtimer(src, "reset_user_notransform", 5, FALSE, ranged_ability_user) //stop us moving for a little bit so we don't break the scripture following this + slab.busy = null + var/datum/clockwork_scripture/guvax/conversion = new + conversion.slab = slab + conversion.invoker = ranged_ability_user + conversion.target = target + successful = conversion.run_scripture() + + remove_ranged_ability() + + return TRUE + +/obj/effect/proc_holder/slab/guvax/proc/reset_user_notransform(mob/living/user) + if(user) + user.notransform = FALSE + +/obj/structure/destructible/clockwork/guvax_binding + name = "glowing ring" + desc = "A flickering, glowing purple ring around a target." + clockwork_desc = "A binding ring around a target, preventing them from taking action while they're being converted." + max_integrity = 30 + obj_integrity = 30 + density = 0 + icon = 'icons/effects/clockwork_effects.dmi' + icon_state = "guvaxbinding" + break_message = "The glowing ring shatters!" + break_sound = 'sound/magic/Repulse.ogg' + debris = list() + can_buckle = TRUE + buckle_lying = 0 + +/obj/structure/destructible/clockwork/guvax_binding/examine(mob/user) + icon_state = "guvaxbinding_full" + ..() + icon_state = "guvaxbinding" + +/obj/structure/destructible/clockwork/guvax_binding/attack_hand(mob/living/user) + return + +/obj/structure/destructible/clockwork/guvax_binding/post_buckle_mob(mob/living/M) + if(M.buckled == src) + desc = "A flickering, glowing purple ring around [M]." + clockwork_desc = "A binding ring around [M], preventing [M.p_them()] from taking action while [M.p_theyre()] being converted." + layer = M.layer - 0.01 + var/image/GB = new('icons/effects/clockwork_effects.dmi', src, "guvaxbinding_top", M.layer + 0.01) + add_overlay(GB) + for(var/obj/item/I in M.held_items) + M.unEquip(I) + for(var/i in M.get_empty_held_indexes()) + var/obj/item/guvax_binding/B = new(M) + M.put_in_hands(B, i) + M.regenerate_icons() + M.visible_message("A [name] appears around [M]!", \ + "A [name] appears around you!\nResist!") + else + M.visible_message("[src] snaps into glowing pieces and dissipates!") + for(var/obj/item/guvax_binding/G in M.held_items) + M.unEquip(G, TRUE) + qdel(src) + +/obj/structure/destructible/clockwork/guvax_binding/user_unbuckle_mob(mob/living/buckled_mob, mob/user) + if(buckled_mob == user) + user.visible_message("[user] starts struggling against [src]...", "You start breaking out of [src]...") + if(do_after(user, 40, target = src)) + user.visible_message("[user] breaks [src]!", "You break [src]!") + unbuckle_mob(user, TRUE) + return user + else + return ..() + +/obj/item/guvax_binding + name = "glowing ring" + desc = "A flickering ring preventing you from holding items." + force = 0 + icon = 'icons/effects/clockwork_effects.dmi' + icon_state = "guvaxbinding_full" + flags = NODROP|ABSTRACT|DROPDEL|NOBLUDGEON + +/obj/item/guvax_binding/afterattack(atom/target, mob/living/user, proximity_flag, params) + user.resist() + +//For the Sentinel's Compromise scripture; heals a target servant. +/obj/effect/proc_holder/slab/compromise + ranged_mousepointer = 'icons/effects/compromise_target.dmi' + +/obj/effect/proc_holder/slab/compromise/InterceptClickOn(mob/living/caller, params, atom/target) + if(..()) + return TRUE + + var/turf/T = ranged_ability_user.loc + if(!isturf(T)) + return TRUE + + if(isliving(target) && (target in view(7, get_turf(ranged_ability_user)))) + var/mob/living/L = target + if(!is_servant_of_ratvar(L)) + ranged_ability_user << "\"[L] does not yet serve Ratvar.\"" + return TRUE + if(L.stat == DEAD) + ranged_ability_user << "\"[L.p_they(TRUE)] [L.p_are()] dead. [text2ratvar("Oh, child. To have your life cut short...")]\"" + return TRUE + + var/brutedamage = L.getBruteLoss() + var/burndamage = L.getFireLoss() + var/totaldamage = brutedamage + burndamage + if(!totaldamage && (!L.reagents || !L.reagents.has_reagent("holywater"))) + ranged_ability_user << "\"[L] is unhurt and untainted.\"" + return TRUE + var/targetturf = get_turf(L) + if(totaldamage) + L.adjustBruteLoss(-brutedamage) + L.adjustFireLoss(-burndamage) + L.adjustToxLoss(totaldamage * 0.5) + var/healseverity = max(round(totaldamage*0.05, 1), 1) //shows the general severity of the damage you just healed, 1 glow per 20 + for(var/i in 1 to healseverity) + PoolOrNew(/obj/effect/overlay/temp/heal, list(targetturf, "#1E8CE1")) + clockwork_say(ranged_ability_user, text2ratvar("Mend wounded flesh!")) + else + clockwork_say(ranged_ability_user, text2ratvar("Purge foul darkness!")) + ranged_ability_user << "You bathe [L == ranged_ability_user ? "yourself":"[L]"] in Inath-neq's power!" + L.visible_message("A blue light washes over [L], mending [L.p_their()] bruises and burns!", \ + "You feel Inath-neq's power healing your wounds, but a deep nausea overcomes you!") + playsound(targetturf, 'sound/magic/Staff_Healing.ogg', 50, 1) + + if(L.reagents && L.reagents.has_reagent("holywater")) + L.reagents.remove_reagent("holywater", 1000) + L << "Ratvar's light flares, banishing the darkness. Your devotion remains intact!" + + remove_ranged_ability() + + return TRUE diff --git a/code/game/gamemodes/clock_cult/clock_item.dm b/code/game/gamemodes/clock_cult/clock_item.dm new file mode 100644 index 0000000..1d95316 --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_item.dm @@ -0,0 +1,23 @@ +//The base clockwork item. Can have an alternate desc and will show up in the list of clockwork objects. +/obj/item/clockwork + name = "meme blaster" + desc = "What the fuck is this? It looks kinda like a frog." + resistance_flags = FIRE_PROOF | ACID_PROOF + var/clockwork_desc = "A fabled artifact from beyond the stars. Contains concentrated meme essence." //Shown to clockwork cultists instead of the normal description + icon = 'icons/obj/clockwork_objects.dmi' + icon_state = "rare_pepe" + w_class = 2 + +/obj/item/clockwork/New() + ..() + all_clockwork_objects += src + +/obj/item/clockwork/Destroy() + all_clockwork_objects -= src + return ..() + +/obj/item/clockwork/examine(mob/user) + if((is_servant_of_ratvar(user) || isobserver(user)) && clockwork_desc) + desc = clockwork_desc + ..() + desc = initial(desc) diff --git a/code/game/gamemodes/clock_cult/clock_items/clock_components.dm b/code/game/gamemodes/clock_cult/clock_items/clock_components.dm new file mode 100644 index 0000000..2c174e5 --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_items/clock_components.dm @@ -0,0 +1,194 @@ +//Components: Used in scripture. +/obj/item/clockwork/component + name = "meme component" + desc = "A piece of a famous meme." + clockwork_desc = null + resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF + var/component_id //What the component is identified as + var/cultist_message = "You are not worthy of this meme." //Showed to Nar-Sian cultists if they pick up the component in addition to chaplains + var/list/servant_of_ratvar_messages = list("ayy" = FALSE, "lmao" = TRUE) //Fluff, shown to servants of Ratvar on a low chance, if associated value is TRUE, will automatically apply ratvarian + var/message_span = "heavy_brass" + +/obj/item/clockwork/component/pickup(mob/living/user) + ..() + if(iscultist(user) || (user.mind && user.mind.assigned_role == "Chaplain")) + user << "[cultist_message]" + if(is_servant_of_ratvar(user) && prob(20)) + var/pickedmessage = pick(servant_of_ratvar_messages) + user << "[servant_of_ratvar_messages[pickedmessage] ? "[text2ratvar(pickedmessage)]" : pickedmessage]" + +/obj/item/clockwork/component/examine(mob/user) + ..() + if(is_servant_of_ratvar(user)) + user << "You should put this in a slab or cache immediately." + +/obj/item/clockwork/component/belligerent_eye + name = "belligerent eye" + desc = "A brass construct with a rotating red center. It's as though it's looking for something to hurt." + icon_state = "belligerent_eye" + component_id = BELLIGERENT_EYE + cultist_message = "The eye gives you an intensely hateful glare." + servant_of_ratvar_messages = list("\"...\"" = FALSE, "For a moment, your mind is flooded with extremely violent thoughts." = FALSE, "\"...Die.\"" = TRUE) + message_span = "neovgre" + +/obj/item/clockwork/component/belligerent_eye/blind_eye + name = "blind eye" + desc = "A heavy brass eye, its red iris fallen dark." + clockwork_desc = "A smashed ocular warden covered in dents. Might still be serviceable as a substitute for a belligerent eye." + icon_state = "blind_eye" + cultist_message = "The eye flickers at you with intense hate before falling dark." + servant_of_ratvar_messages = list("The eye flickers before falling dark." = FALSE, "You feel watched." = FALSE, "\"...\"" = FALSE) + w_class = 3 + +/obj/item/clockwork/component/vanguard_cogwheel + name = "vanguard cogwheel" + desc = "A sturdy brass cog with a faintly glowing blue gem in its center." + icon_state = "vanguard_cogwheel" + component_id = VANGUARD_COGWHEEL + cultist_message = "\"Pray to your god that we never meet.\"" + servant_of_ratvar_messages = list("\"Be safe, child.\"" = FALSE, "You feel unexplainably comforted." = FALSE, "\"Never forget: pain is temporary. The Justiciar's glory is eternal.\"" = FALSE) + message_span = "inathneq" + +/obj/item/clockwork/component/vanguard_cogwheel/pinion_lock + name = "pinion lock" + desc = "A dented and scratched gear. It's very heavy." + clockwork_desc = "A broken gear lock for pinion airlocks. Might still be serviceable as a substitute for a vanguard cogwheel." + icon_state = "pinion_lock" + cultist_message = "The gear grows warm in your hands." + servant_of_ratvar_messages = list("The lock isn't getting any lighter." = FALSE, "\"Damaged gears are better than broken bodies.\"" = TRUE, \ + "\"It could still be used, if there was a door to place it on.\"" = TRUE) + w_class = 3 + +/obj/item/clockwork/component/guvax_capacitor + name = "guvax capacitor" + desc = "A curiously cold brass doodad. It seems as though it really doesn't appreciate being held." + icon_state = "guvax_capacitor" + component_id = GUVAX_CAPACITOR + cultist_message = "\"Try not to lose your mind - I'll need it. Heh heh...\"" + servant_of_ratvar_messages = list("\"Disgusting.\"" = FALSE, "\"Well, aren't you an inquisitive fellow?\"" = FALSE, "A foul presence pervades your mind, then vanishes." = FALSE, \ + "\"The fact that Ratvar has to depend on simpletons like you is appalling.\"" = FALSE) + message_span = "sevtug" + +/obj/item/clockwork/component/guvax_capacitor/antennae + name = "mania motor antennae" + desc = "A pair of dented and bent antennae. They constantly emit a static hiss." + clockwork_desc = "The antennae from a mania motor. May be usable as a substitute for a guvax capacitor." + icon_state = "mania_motor_antennae" + cultist_message = "Your head is filled with a burst of static." + servant_of_ratvar_messages = list("\"Who broke this.\"" = TRUE, "\"Did you break these off YOURSELF?\"" = TRUE, "\"Why did we give this to such simpletons, anyway?\"" = TRUE, \ + "\"At least we can use these for something - unlike you.\"" = TRUE) + +//Replicant Alloy. Used for fuel and construction, and not merely scripture. +/obj/item/clockwork/component/replicant_alloy + name = "replicant alloy" + desc = "A seemingly strong but very malleable chunk of metal. It seems as though it wants to be molded into something greater." + icon_state = "replicant_alloy" + component_id = REPLICANT_ALLOY + cultist_message = "The alloy takes on the appearance of a screaming face for a moment." + servant_of_ratvar_messages = list("\"There's always something to be done. Get to it.\"" = FALSE, "\"Idle hands are worse than broken ones. Get to work.\"" = FALSE, \ + "A detailed image of Ratvar appears in the alloy for a moment." = FALSE) + message_span = "nezbere" + +/obj/item/clockwork/component/replicant_alloy/examine(mob/user) + ..() + if(is_servant_of_ratvar(user)) + user << "Can be used to fuel Clockwork Proselytizers and Mending Motors, or shaped into brass sheets." + +/obj/item/clockwork/component/replicant_alloy/attack_self(mob/user) + if(is_servant_of_ratvar(user)) + var/obj/item/stack/sheet/brass/B = new /obj/item/stack/sheet/brass(get_turf(src), 10) + user.unEquip(src, TRUE) + user.put_in_hands(B) + user << "You shape the alloy into some brass sheets." + qdel(src) + +/obj/item/clockwork/component/replicant_alloy/smashed_anima_fragment + name = "smashed anima fragment" + desc = "Shattered chunks of metal. Damaged beyond repair and completely unusable." + clockwork_desc = "The sad remains of an anima fragment. Might still be serviceable as a substitute for replicant alloy." + icon_state = "smashed_anime_fragment" + cultist_message = "The shards vibrate in your hands for a moment." + servant_of_ratvar_messages = list("\"...still fight...\"" = FALSE, "\"...where am I...?\"" = FALSE, "\"...put me... slab...\"" = FALSE) + message_span = "heavy_brass" + w_class = 3 + +/obj/item/clockwork/component/replicant_alloy/fallen_armor + name = "fallen armor" + desc = "Lifeless chunks of armor. They're designed in a strange way and won't fit on you." + clockwork_desc = "The armor from a former clockwork marauder. Might still be serviceable as a substitute for replicant alloy." + icon_state = "fallen_armor" + cultist_message = "Red flame sputters from the mask's eye before winking out." + servant_of_ratvar_messages = list("A piece of armor hovers away from the others for a moment." = FALSE, "Red flame appears in the cuirass before sputtering out." = FALSE) + message_span = "heavy_brass" + w_class = 3 + +/obj/item/clockwork/component/hierophant_ansible + name = "hierophant ansible" + desc = "Some sort of transmitter? It seems as though it's trying to say something." + icon_state = "hierophant_ansible" + component_id = HIEROPHANT_ANSIBLE + cultist_message = "\"Gur obff fnlf vg'f abg ntnvafg gur ehyrf gb-xvyy lbh.\"" + servant_of_ratvar_messages = list("\"Exile is such a bore. There's nothing I can hunt in here.\"" = TRUE, "\"What's keeping you? I want to go kill something.\"" = TRUE, \ + "\"HEHEHEHEHEHEH!\"" = FALSE, "\"If I killed you fast enough, do you think the boss would notice?\"" = TRUE) + message_span = "nzcrentr" + +/obj/item/clockwork/component/hierophant_ansible/obelisk + name = "obelisk prism" + desc = "A prism that occasionally glows brightly. It seems not-quite there." + clockwork_desc = "The prism from a clockwork obelisk. Likely suitable as a substitute for a hierophant ansible." + cultist_message = "The prism flickers wildly in your hands before resuming its normal glow." + servant_of_ratvar_messages = list("You hear the distinctive sound of the Hierophant Network for a moment." = FALSE, "\"Hieroph'ant Br'o'adcas't fail'ure.\"" = TRUE, \ + "The obelisk flickers wildly, as if trying to open a gateway." = FALSE, "\"Spa'tial Ga'tewa'y fai'lure.\"" = TRUE) + icon_state = "obelisk_prism" + w_class = 3 + +//Shards of Alloy, suitable only for proselytization. +/obj/item/clockwork/alloy_shards + name = "replicant alloy shards" + desc = "Broken shards of some oddly malleable metal. They occasionally move and seem to glow." + clockwork_desc = "Broken shards of replicant alloy. Could be proselytized for liquified replicant alloy." + icon_state = "alloy_shards" + resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF + var/randomsinglesprite = FALSE + var/randomspritemax = 2 + +/obj/item/clockwork/alloy_shards/New() + ..() + if(randomsinglesprite) + replace_name_desc() + icon_state = "[icon_state][rand(1, randomspritemax)]" + pixel_x = rand(-9, 9) + pixel_y = rand(-9, 9) + +/obj/item/clockwork/alloy_shards/proc/replace_name_desc() + name = "replicant alloy shard" + desc = "A broken shard of some oddly malleable metal. It occasionally moves and seems to glow." + clockwork_desc = "A broken shard of replicant alloy. Could be proselytized for liquified replicant alloy." + +/obj/item/clockwork/alloy_shards/large + randomsinglesprite = TRUE + icon_state = "shard_large" + +/obj/item/clockwork/alloy_shards/medium + randomsinglesprite = TRUE + icon_state = "shard_medium" + +/obj/item/clockwork/alloy_shards/medium/gear_bit + randomspritemax = 4 + icon_state = "gear_bit" + +/obj/item/clockwork/alloy_shards/medium/gear_bit/replace_name_desc() + name = "gear bit" + desc = "A broken chunk of a gear. You want it." + clockwork_desc = "A broken chunk of a gear. Could be proselytized for liquified replicant alloy." + +/obj/item/clockwork/alloy_shards/medium/gear_bit/large //gives more alloy + +/obj/item/clockwork/alloy_shards/medium/gear_bit/large/replace_name_desc() + ..() + name = "complex gear bit" + +/obj/item/clockwork/alloy_shards/small + randomsinglesprite = TRUE + randomspritemax = 3 + icon_state = "shard_small" \ No newline at end of file diff --git a/code/game/gamemodes/clock_cult/clock_items/clockwork_armor.dm b/code/game/gamemodes/clock_cult/clock_items/clockwork_armor.dm new file mode 100644 index 0000000..72f9863 --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_items/clockwork_armor.dm @@ -0,0 +1,167 @@ +//Clockwork armor: High melee protection but weak to lasers +/obj/item/clothing/head/helmet/clockwork + name = "clockwork helmet" + desc = "A heavy helmet made of brass." + icon = 'icons/obj/clothing/clockwork_garb.dmi' + icon_state = "clockwork_helmet" + w_class = 3 + resistance_flags = FIRE_PROOF | ACID_PROOF + armor = list(melee = 80, bullet = 50, laser = -15, energy = 0, bomb = 35, bio = 0, rad = 0, fire = 100, acid = 100) + +/obj/item/clothing/head/helmet/clockwork/New() + ..() + all_clockwork_objects += src + +/obj/item/clothing/head/helmet/clockwork/Destroy() + all_clockwork_objects -= src + return ..() + +/obj/item/clothing/head/helmet/clockwork/equipped(mob/living/user, slot) + ..() + if(slot == slot_head && !is_servant_of_ratvar(user)) + if(!iscultist(user)) + user << "\"Now now, this is for my servants, not you.\"" + user.visible_message("As [user] puts [src] on, it flickers off their head!", "The helmet flickers off your head, leaving only nausea!") + if(iscarbon(user)) + var/mob/living/carbon/C = user + C.vomit(20, 1, 1, 0, 1) + else + user << "\"Do you have a hole in your head? You're about to.\"" + user << "The helmet tries to drive a spike through your head as you scramble to remove it!" + user.emote("scream") + user.apply_damage(30, BRUTE, "head") + user.adjustBrainLoss(30) + addtimer(user, "unEquip", 1, FALSE, src, 1) //equipped happens before putting stuff on(but not before picking items up). thus, we need to wait for it to be on before forcing it off. + +/obj/item/clothing/head/helmet/clockwork/mob_can_equip(mob/M, mob/equipper, slot, disable_warning = 0) + if(equipper && !is_servant_of_ratvar(equipper)) + return 0 + return ..() + +/obj/item/clothing/suit/armor/clockwork + name = "clockwork cuirass" + desc = "A bulky cuirass made of brass." + icon = 'icons/obj/clothing/clockwork_garb.dmi' + icon_state = "clockwork_cuirass" + w_class = 4 + body_parts_covered = CHEST|GROIN|LEGS + resistance_flags = FIRE_PROOF | ACID_PROOF + armor = list(melee = 80, bullet = 50, laser = -15, energy = 0, bomb = 35, bio = 0, rad = 0, fire = 100, acid = 100) + allowed = list(/obj/item/clockwork, /obj/item/clothing/glasses/wraith_spectacles, /obj/item/clothing/glasses/judicial_visor, /obj/item/device/mmi/posibrain/soul_vessel) + +/obj/item/clothing/suit/armor/clockwork/New() + ..() + all_clockwork_objects += src + +/obj/item/clothing/suit/armor/clockwork/Destroy() + all_clockwork_objects -= src + return ..() + +/obj/item/clothing/suit/armor/clockwork/mob_can_equip(mob/M, mob/equipper, slot, disable_warning = 0) + if(equipper && !is_servant_of_ratvar(equipper)) + return 0 + return ..() + +/obj/item/clothing/suit/armor/clockwork/equipped(mob/living/user, slot) + ..() + if(slot == slot_wear_suit && !is_servant_of_ratvar(user)) + if(!iscultist(user)) + user << "\"Now now, this is for my servants, not you.\"" + user.visible_message("As [user] puts [src] on, it flickers off their body!", "The curiass flickers off your body, leaving only nausea!") + if(iscarbon(user)) + var/mob/living/carbon/C = user + C.vomit(20, 1, 1, 0, 1) + else + user << "\"I think this armor is too hot for you to handle.\"" + user << "The curiass emits a burst of flame as you scramble to get it off!" + user.emote("scream") + user.apply_damage(15, BURN, "chest") + user.adjust_fire_stacks(2) + user.IgniteMob() + addtimer(user, "unEquip", 1, FALSE, src, 1) + +/obj/item/clothing/gloves/clockwork + name = "clockwork gauntlets" + desc = "Heavy, shock-resistant gauntlets with brass reinforcement." + icon = 'icons/obj/clothing/clockwork_garb.dmi' + icon_state = "clockwork_gauntlets" + item_state = "clockwork_gauntlets" + item_color = null //So they don't wash. + strip_delay = 50 + put_on_delay = 30 + body_parts_covered = ARMS + resistance_flags = 0 + siemens_coefficient = 0 + permeability_coefficient = 0.05 + resistance_flags = FIRE_PROOF | ACID_PROOF + armor = list(melee = 80, bullet = 50, laser = -15, energy = 0, bomb = 35, bio = 0, rad = 0, fire = 100, acid = 100) + +/obj/item/clothing/gloves/clockwork/New() + ..() + all_clockwork_objects += src + +/obj/item/clothing/gloves/clockwork/Destroy() + all_clockwork_objects -= src + return ..() + +/obj/item/clothing/gloves/clockwork/mob_can_equip(mob/M, mob/equipper, slot, disable_warning = 0) + if(equipper && !is_servant_of_ratvar(equipper)) + return 0 + return ..() + +/obj/item/clothing/gloves/clockwork/equipped(mob/living/user, slot) + ..() + if(slot == slot_gloves && !is_servant_of_ratvar(user)) + if(!iscultist(user)) + user << "\"Now now, this is for my servants, not you.\"" + user.visible_message("As [user] puts [src] on, it flickers off their arms!", "The gauntlets flicker off your arms, leaving only nausea!") + if(iscarbon(user)) + var/mob/living/carbon/C = user + C.vomit(10, 1, 1, 0, 1) + else + user << "\"Did you like having arms?\"" + user << "The gauntlets suddenly squeeze tight, crushing your arms before you manage to get them off!" + user.emote("scream") + user.apply_damage(7, BRUTE, "l_arm") + user.apply_damage(7, BRUTE, "r_arm") + addtimer(user, "unEquip", 1, FALSE, src, 1) + +/obj/item/clothing/shoes/clockwork + name = "clockwork treads" + desc = "Industrial boots made of brass. They're very heavy." + icon = 'icons/obj/clothing/clockwork_garb.dmi' + icon_state = "clockwork_treads" + w_class = 3 + strip_delay = 50 + put_on_delay = 30 + resistance_flags = FIRE_PROOF | ACID_PROOF + +/obj/item/clothing/shoes/clockwork/New() + ..() + all_clockwork_objects += src + +/obj/item/clothing/shoes/clockwork/Destroy() + all_clockwork_objects -= src + return ..() + +/obj/item/clothing/shoes/clockwork/mob_can_equip(mob/M, mob/equipper, slot, disable_warning = 0) + if(equipper && !is_servant_of_ratvar(equipper)) + return 0 + return ..() + +/obj/item/clothing/shoes/clockwork/equipped(mob/living/user, slot) + ..() + if(slot == slot_shoes && !is_servant_of_ratvar(user)) + if(!iscultist(user)) + user << "\"Now now, this is for my servants, not you.\"" + user.visible_message("As [user] puts [src] on, it flickers off their feet!", "The treads flicker off your feet, leaving only nausea!") + if(iscarbon(user)) + var/mob/living/carbon/C = user + C.vomit(10, 1, 1, 0, 1) + else + user << "\"Let's see if you can dance with these.\"" + user << "The treads turn searing hot as you scramble to get them off!" + user.emote("scream") + user.apply_damage(7, BURN, "l_leg") + user.apply_damage(7, BURN, "r_leg") + addtimer(user, "unEquip", 1, FALSE, src, 1) diff --git a/code/game/gamemodes/clock_cult/clock_items/clockwork_proselytizer.dm b/code/game/gamemodes/clock_cult/clock_items/clockwork_proselytizer.dm new file mode 100644 index 0000000..522551e --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_items/clockwork_proselytizer.dm @@ -0,0 +1,151 @@ +//Clockwork proselytizer (yes, that's a real word): Converts applicable objects to Ratvarian variants. +/obj/item/clockwork/clockwork_proselytizer + name = "clockwork proselytizer" + desc = "An odd, L-shaped device that hums with energy." + clockwork_desc = "A device that allows the replacing of mundane objects with Ratvarian variants. It requires liquified Replicant Alloy to function." + icon_state = "clockwork_proselytizer" + w_class = 3 + force = 5 + flags = NOBLUDGEON + var/stored_alloy = 0 //Requires this to function; each chunk of replicant alloy provides REPLICANT_ALLOY_UNIT + var/max_alloy = REPLICANT_ALLOY_UNIT * 10 + var/uses_alloy = TRUE + var/metal_to_alloy = FALSE + var/repairing = null //what we're currently repairing, if anything + var/refueling = FALSE //if we're currently refueling from a cache + +/obj/item/clockwork/clockwork_proselytizer/preloaded + stored_alloy = REPLICANT_WALL_MINUS_FLOOR+REPLICANT_WALL_TOTAL + +/obj/item/clockwork/clockwork_proselytizer/scarab + name = "scarab proselytizer" + clockwork_desc = "A cogscarab's internal proselytizer. It can only be successfully used by a cogscarab and requires liquified Replicant Alloy to function." + metal_to_alloy = TRUE + item_state = "nothing" + w_class = 1 + var/debug = FALSE + +/obj/item/clockwork/clockwork_proselytizer/scarab/proselytize(atom/target, mob/living/user) + if(!debug && !isdrone(user)) + return 0 + return ..() + +/obj/item/clockwork/clockwork_proselytizer/scarab/debug + clockwork_desc = "A cogscarab's internal proselytizer. It can convert nearly any object into a Ratvarian variant." + uses_alloy = FALSE + debug = TRUE + +/obj/item/clockwork/clockwork_proselytizer/examine(mob/living/user) + ..() + if(is_servant_of_ratvar(user) || isobserver(user)) + user << "Can be used to convert walls, floors, windows, airlocks, windoors, and grilles to clockwork variants." + user << "Can also form some objects into Brass sheets, as well as reform Clockwork Walls into Clockwork Floors, and vice versa." + if(metal_to_alloy) + user << "It can convert Brass sheets to liquified replicant alloy at a rate of 1 sheet to [REPLICANT_FLOOR] alloy." + if(uses_alloy) + user << "It has [stored_alloy]/[max_alloy] units of liquified alloy stored." + user << "Use it on a Tinkerer's Cache, strike it with Replicant Alloy, or attack Replicant Alloy with it to add additional liquified alloy." + user << "Use it in-hand to remove stored liquified alloy." + +/obj/item/clockwork/clockwork_proselytizer/attack_self(mob/living/user) + if(is_servant_of_ratvar(user) && uses_alloy) + if(!can_use_alloy(REPLICANT_ALLOY_UNIT)) + user << "[src] [stored_alloy ? "Lacks enough":"Contains no"] alloy to reform[stored_alloy ? "":" any"] into solidified alloy!" + return + modify_stored_alloy(-REPLICANT_ALLOY_UNIT) + playsound(src, 'sound/items/Deconstruct.ogg', 50, 1) + new/obj/item/clockwork/component/replicant_alloy(user.loc) + user << "You force [stored_alloy ? "some":"all"] of the alloy in [src]'s compartments to reform and solidify. \ + It now contains [stored_alloy]/[max_alloy] units of liquified alloy." + +/obj/item/clockwork/clockwork_proselytizer/attackby(obj/item/I, mob/living/user, params) + if(istype(I, /obj/item/clockwork/component/replicant_alloy) && is_servant_of_ratvar(user) && uses_alloy) + if(!can_use_alloy(-REPLICANT_ALLOY_UNIT)) + user << "[src]'s replicant alloy compartments are full!" + return 0 + modify_stored_alloy(REPLICANT_ALLOY_UNIT) + playsound(user, 'sound/machines/click.ogg', 50, 1) + clockwork_say(user, text2ratvar("Transmute into fuel."), TRUE) + user << "You force [I] to liquify and pour it into [src]'s compartments. It now contains [stored_alloy]/[max_alloy] units of liquified alloy." + user.drop_item() + qdel(I) + return 1 + else + return ..() + +/obj/item/clockwork/clockwork_proselytizer/afterattack(atom/target, mob/living/user, proximity_flag, params) + if(!target || !user || !proximity_flag) + return 0 + if(!is_servant_of_ratvar(user)) + return ..() + proselytize(target, user) + +/obj/item/clockwork/clockwork_proselytizer/proc/modify_stored_alloy(amount) + stored_alloy = Clamp(stored_alloy + amount, 0, max_alloy) + return TRUE + +/obj/item/clockwork/clockwork_proselytizer/proc/can_use_alloy(amount) + if(amount == RATVAR_ALLOY_CHECK) + if(ratvar_awakens || !uses_alloy) + return TRUE + else + return FALSE + if(stored_alloy - amount < 0) + return FALSE + if(stored_alloy - amount > max_alloy) + return FALSE + return TRUE + +/obj/item/clockwork/clockwork_proselytizer/proc/proselytize(atom/target, mob/living/user) + if(!target || !user) + return FALSE + if(repairing) + user << "You are currently repairing [repairing] with [src]!" + return FALSE + if(refueling) + user << "You are currently refueling [src]!" + return FALSE + var/target_type = target.type + var/list/proselytize_values = target.proselytize_vals(user, src) //relevant values for proselytizing stuff, given as an associated list + if(!islist(proselytize_values)) + if(proselytize_values != TRUE) //if we get true, fail, but don't send a message for whatever reason + user << "[target] cannot be proselytized!" + return FALSE + if(can_use_alloy(RATVAR_ALLOY_CHECK)) + if(proselytize_values["alloy_cost"] < 0) //if it's less than 0, it's trying to refuel from whatever this is, and we don't need to refuel right now! + user << "[target] cannot be proselytized!" + return FALSE + proselytize_values["alloy_cost"] = 0 + + if(!can_use_alloy(proselytize_values["alloy_cost"])) + if(stored_alloy - proselytize_values["alloy_cost"] < 0) + user << "You need [proselytize_values["alloy_cost"]] liquified alloy to proselytize [target]!" + else if(stored_alloy - proselytize_values["alloy_cost"] > max_alloy) + user << "You have too much liquified alloy stored to proselytize [target]!" + return FALSE + + if(can_use_alloy(RATVAR_ALLOY_CHECK)) //Ratvar makes it faster + proselytize_values["operation_time"] *= 0.5 + + user.visible_message("[user]'s [name] begins tearing apart [target]!", "You begin proselytizing [target]...") + playsound(target, 'sound/machines/click.ogg', 50, 1) + if(proselytize_values["operation_time"] && !do_after(user, proselytize_values["operation_time"], target = target)) + return FALSE + if(repairing || refueling || !can_use_alloy(proselytize_values["alloy_cost"]) || !target || target.type != target_type) //Check again to prevent bypassing via spamclick + return FALSE + user.visible_message("[user]'s [name] disgorges a chunk of metal and shapes it over what's left of [target]!", \ + "You proselytize [target].") + playsound(target, 'sound/items/Deconstruct.ogg', 50, 1) + var/new_thing_type = proselytize_values["new_obj_type"] + if(isturf(target)) + var/turf/T = target + T.ChangeTurf(new_thing_type) + else + if(proselytize_values["dir_in_new"]) + new new_thing_type(get_turf(target), proselytize_values["spawn_dir"]) + else + var/atom/A = new new_thing_type(get_turf(target)) + A.setDir(proselytize_values["spawn_dir"]) + qdel(target) + modify_stored_alloy(-proselytize_values["alloy_cost"]) + return TRUE diff --git a/code/game/gamemodes/clock_cult/clock_items/clockwork_slab.dm b/code/game/gamemodes/clock_cult/clock_items/clockwork_slab.dm new file mode 100644 index 0000000..a1a0b55 --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_items/clockwork_slab.dm @@ -0,0 +1,413 @@ +/obj/item/clockwork/slab //Clockwork slab: The most important tool in Ratvar's arsenal. Allows scripture recital, tutorials, and generates components. + name = "clockwork slab" + desc = "A strange metal tablet. A clock in the center turns around and around." + clockwork_desc = "A link between the Celestial Derelict and the mortal plane. Contains limitless knowledge, fabricates components, and outputs a stream of information that only a trained eye can detect." + icon_state = "dread_ipad" + slot_flags = SLOT_BELT + w_class = 2 + var/list/stored_components = list(BELLIGERENT_EYE = 0, VANGUARD_COGWHEEL = 0, GUVAX_CAPACITOR = 0, REPLICANT_ALLOY = 0, HIEROPHANT_ANSIBLE = 0) + var/busy //If the slab is currently being used by something + var/production_time = 0 + var/no_cost = FALSE //If the slab is admin-only and needs no components and has no scripture locks + var/nonhuman_usable = FALSE //if the slab can be used by nonhumans, defaults to off + var/produces_components = TRUE //if it produces components at all + var/list/shown_scripture = list(SCRIPTURE_DRIVER = FALSE, SCRIPTURE_SCRIPT = FALSE, SCRIPTURE_APPLICATION = FALSE, SCRIPTURE_REVENANT = FALSE, SCRIPTURE_JUDGEMENT = FALSE) + var/text_hidden = FALSE + var/obj/effect/proc_holder/slab/slab_ability //the slab's current bound ability, for certain scripture + actions_types = list(/datum/action/item_action/clock/hierophant, /datum/action/item_action/clock/guvax, /datum/action/item_action/clock/vanguard) + +/obj/item/clockwork/slab/starter + stored_components = list(BELLIGERENT_EYE = 1, VANGUARD_COGWHEEL = 1, GUVAX_CAPACITOR = 1, REPLICANT_ALLOY = 1, HIEROPHANT_ANSIBLE = 1) + +/obj/item/clockwork/slab/internal //an internal motor for mobs running scripture + name = "scripture motor" + no_cost = TRUE + produces_components = FALSE + +/obj/item/clockwork/slab/scarab + nonhuman_usable = TRUE + +/obj/item/clockwork/slab/debug + no_cost = TRUE + nonhuman_usable = TRUE + +/obj/item/clockwork/slab/debug/attack_hand(mob/living/user) + ..() + if(!is_servant_of_ratvar(user)) + add_servant_of_ratvar(user) + +/obj/item/clockwork/slab/New() + ..() + START_PROCESSING(SSobj, src) + production_time = world.time + SLAB_PRODUCTION_TIME + +/obj/item/clockwork/slab/Destroy() + STOP_PROCESSING(SSobj, src) + if(slab_ability && slab_ability.ranged_ability_user) + slab_ability.remove_ranged_ability() + return ..() + +/obj/item/clockwork/slab/dropped(mob/user) + . = ..() + addtimer(src, "check_on_mob", 1, FALSE, user) //dropped is called before the item is out of the slot, so we need to check slightly later + +/obj/item/clockwork/slab/proc/check_on_mob(mob/user) + if(user && !(src in user.held_items) && slab_ability && slab_ability.ranged_ability_user) //if we happen to check and we AREN'T in user's hands, remove whatever ability we have + slab_ability.remove_ranged_ability() + +//Component Generation +/obj/item/clockwork/slab/process() + if(!produces_components) + STOP_PROCESSING(SSobj, src) + return + if(production_time > world.time) + return + var/servants = 0 + var/production_slowdown = 0 + for(var/mob/living/M in living_mob_list) + if(is_servant_of_ratvar(M) && (ishuman(M) || issilicon(M))) + servants++ + if(servants > 5) + servants -= 5 + production_slowdown = min(SLAB_SERVANT_SLOWDOWN * servants, SLAB_SLOWDOWN_MAXIMUM) //SLAB_SERVANT_SLOWDOWN additional seconds for each servant above 5, up to SLAB_SLOWDOWN_MAXIMUM + production_time = world.time + SLAB_PRODUCTION_TIME + production_slowdown + var/mob/living/L + if(isliving(loc)) + L = loc + else if(istype(loc, /obj/item/weapon/storage)) + var/obj/item/weapon/storage/W = loc + if(isliving(W.loc)) //Only goes one level down - otherwise it won't produce components + L = W.loc + if(L) + var/component_to_generate = get_weighted_component_id(src) //more likely to generate components that we have less of + stored_components[component_to_generate]++ + for(var/obj/item/clockwork/slab/S in L.GetAllContents()) //prevent slab abuse today + if(L == src) + continue + S.production_time = world.time + SLAB_PRODUCTION_TIME + L << "Your slab clunks as it produces a new component." + +/obj/item/clockwork/slab/examine(mob/user) + ..() + if(is_servant_of_ratvar(user) || isobserver(user)) + user << "Use the Hierophant Network action button to communicate with other servants." + user << "Clockwork slabs will only generate components if held by a human or if inside a storage item held by a human, and when generating a component will prevent all other slabs held from generating components.
    " + user << "Attacking a slab, a fellow Servant with a slab, or a cache with this slab will transfer this slab's components into that slab's components, their slab's components, or the global cache, respectively." + if(clockwork_caches) + user << "Stored components (with global cache):" + for(var/i in stored_components) + user << "[get_component_name(i)][i != REPLICANT_ALLOY ? "s":""]: [stored_components[i]] \ + ([stored_components[i] + clockwork_component_cache[i]])" + else + user << "Stored components:" + for(var/i in stored_components) + user << "[get_component_name(i)][i != REPLICANT_ALLOY ? "s":""]: [stored_components[i]]" + +//Component Transferal +/obj/item/clockwork/slab/attack(mob/living/target, mob/living/carbon/human/user) + if(is_servant_of_ratvar(user) && is_servant_of_ratvar(target)) + var/obj/item/clockwork/slab/targetslab + var/highest_component_amount = 0 + for(var/obj/item/clockwork/slab/S in target.GetAllContents()) + if(!istype(S, /obj/item/clockwork/slab/internal)) + var/totalcomponents = 0 + for(var/i in S.stored_components) + totalcomponents += S.stored_components[i] + if(!targetslab || totalcomponents > highest_component_amount) + highest_component_amount = totalcomponents + targetslab = S + if(targetslab) + if(targetslab == src) + user << "\"You can't transfer components into your own slab, idiot.\"" + else + for(var/i in stored_components) + targetslab.stored_components[i] += stored_components[i] + stored_components[i] = 0 + user.visible_message("[user] empties [src] into [target]'s [targetslab.name].", \ + "You transfer your slab's components into [target]'s [targetslab.name].") + else + user << "[target] has no slabs to transfer components to." + else + return ..() + +/obj/item/clockwork/slab/attackby(obj/item/I, mob/user, params) + var/ratvarian = is_servant_of_ratvar(user) + if(istype(I, /obj/item/clockwork/component) && ratvarian) + var/obj/item/clockwork/component/C = I + if(!C.component_id) + return 0 + user.visible_message("[user] inserts [C] into [src].", "You insert [C] into [src], where it is added to the global cache.") + clockwork_component_cache[C.component_id]++ + user.drop_item() + qdel(C) + return 1 + else if(istype(I, /obj/item/clockwork/slab) && ratvarian) + var/obj/item/clockwork/slab/S = I + for(var/i in stored_components) + stored_components[i] += S.stored_components[i] + S.stored_components[i] = 0 + user.visible_message("[user] empties [src] into [S].", "You transfer your slab's components into [S].") + else + return ..() + +//Slab actions; Hierophant, Guvax, Vanguard +/obj/item/clockwork/slab/ui_action_click(mob/user, actiontype) + switch(actiontype) + if(/datum/action/item_action/clock/hierophant) + show_hierophant(user) + if(/datum/action/item_action/clock/guvax) + if(!nonhuman_usable && !ishuman(user)) + return + if(src == user.get_active_held_item()) + var/datum/clockwork_scripture/ranged_ability/guvax_prep/convert = new + convert.slab = src + convert.invoker = user + convert.run_scripture() + else + user << "You need to hold the slab in your active hand to recite scripture!" + if(/datum/action/item_action/clock/vanguard) + if(!nonhuman_usable && !ishuman(user)) + return + if(src == user.get_active_held_item()) + var/datum/clockwork_scripture/vanguard/antistun = new + antistun.slab = src + antistun.invoker = user + antistun.run_scripture() + else + user << "You need to hold the slab in your active hand to recite scripture!" + +/obj/item/clockwork/slab/proc/show_hierophant(mob/living/user) + var/message = stripped_input(user, "Enter a message to send to your fellow servants.", "Hierophant") + if(!message || !user || !user.canUseTopic(src)) + return 0 + clockwork_say(user, text2ratvar("Servants, hear my words. [html_decode(message)]"), TRUE) + titled_hierophant_message(user, message) + return 1 + +//Scripture Recital +/obj/item/clockwork/slab/attack_self(mob/living/user) + if(iscultist(user)) + user << "\"You reek of blood. You've got a lot of nerve to even look at that slab.\"" + user.visible_message("A sizzling sound comes from [user]'s hands!", "[src] suddenly grows extremely hot in your hands!") + playsound(get_turf(user), 'sound/weapons/sear.ogg', 50, 1) + user.drop_item() + user.emote("scream") + user.apply_damage(5, BURN, "l_arm") + user.apply_damage(5, BURN, "r_arm") + return 0 + if(!is_servant_of_ratvar(user)) + user << "The information on [src]'s display shifts rapidly. After a moment, your head begins to pound, and you tear your eyes away." + user.confused += 5 + user.dizziness += 5 + return 0 + if(busy) + user << "[src] refuses to work, displaying the message: \"[busy]!\"" + return 0 + if(!nonhuman_usable && !ishuman(user)) + user << "[src] hums fitfully in your hands, but doesn't seem to do anything..." + return 0 + access_display(user) + +/obj/item/clockwork/slab/proc/access_display(mob/living/user) + if(!is_servant_of_ratvar(user)) + return 0 + var/action = alert(user, "Among the swathes of information, you see...", "[src]", "Recital", "Recollection", "Cancel") + if(!action || !user.canUseTopic(src)) + return 0 + switch(action) + if("Recital") + if(user.get_active_held_item() != src) + user << "You need to hold the slab in your active hand to recite scripture!" + return + recite_scripture(user) + if("Recollection") + user.set_machine(src) + interact(user) + if("Cancel") + return + return 1 + +/obj/item/clockwork/slab/proc/recite_scripture(mob/living/user) + var/list/tiers_of_scripture = scripture_unlock_check() + for(var/i in tiers_of_scripture) + if(!tiers_of_scripture[i] && !ratvar_awakens && !no_cost) + tiers_of_scripture["[i] \[LOCKED\]"] = TRUE + tiers_of_scripture -= i + var/scripture_tier = input(user, "Choose a category of scripture to recite.", "[src]") as null|anything in tiers_of_scripture + if(!scripture_tier || !user.canUseTopic(src)) + return 0 + var/list/available_scriptures = list() + var/datum/clockwork_scripture/scripture_to_recite + switch(scripture_tier) + if(SCRIPTURE_DRIVER,SCRIPTURE_SCRIPT,SCRIPTURE_APPLICATION,SCRIPTURE_REVENANT,SCRIPTURE_JUDGEMENT); //; for the empty if + else + user << "That section of scripture is still locked!" + return 0 + for(var/S in sortList(subtypesof(/datum/clockwork_scripture), /proc/cmp_clockscripture_priority)) + var/datum/clockwork_scripture/C = S + if(initial(C.tier) == scripture_tier) + available_scriptures["[initial(C.name)] ([initial(C.descname)])"] = C + if(!available_scriptures.len) + return 0 + var/chosen_scripture_key = input(user, "Choose a piece of scripture to recite.", "[src]") as null|anything in available_scriptures + var/datum/clockwork_scripture/chosen_scripture = available_scriptures[chosen_scripture_key] + if(!chosen_scripture || !user.canUseTopic(src) || user.get_active_held_item() != src) + return 0 + tiers_of_scripture = scripture_unlock_check() + if(!ratvar_awakens && !no_cost && !tiers_of_scripture[initial(chosen_scripture.tier)]) + user << "That scripture is no longer unlocked, and cannot be recited!" + return 0 + scripture_to_recite = new chosen_scripture + scripture_to_recite.slab = src + scripture_to_recite.invoker = user + scripture_to_recite.run_scripture() + return 1 + +//Guide to Serving Ratvar +/obj/item/clockwork/slab/interact(mob/living/user) + var/text = "If you're seeing this, file a bug report." + if(ratvar_awakens) + text = "" + for(var/i in 1 to 100) + text += "HONOR RATVAR " + text += "" + else + + text = "
    Chetr nyy hagehguf-naq-ubabe Ratvar.

    \ + \ +
    [text_hidden ? "Show":"Hide"] Information

    " + if(!text_hidden) + var/servants = 0 + var/production_time = SLAB_PRODUCTION_TIME + for(var/mob/living/M in living_mob_list) + if(is_servant_of_ratvar(M) && (ishuman(M) || issilicon(M))) + servants++ + if(servants > 5) + servants -= 5 + production_time += min(SLAB_SERVANT_SLOWDOWN * servants, SLAB_SLOWDOWN_MAXIMUM) + var/production_text_addon = "" + if(production_time != SLAB_PRODUCTION_TIME+SLAB_SLOWDOWN_MAXIMUM) + production_text_addon = ", which increases for each human or silicon servant above 5" + production_time = production_time/600 + var/production_text = "[round(production_time)] minute\s" + if(production_time != round(production_time)) + production_time -= round(production_time) + production_time *= 60 + production_text += " and [round(production_time, 1)] second\s" + production_text += "" + production_text += production_text_addon + + text += "First and foremost, you serve Ratvar, the Clockwork Justicar, in any ways he sees fit. This is with no regard to your personal well-being, and you would do well to think of the larger \ + scale of things than your life. Ratvar wishes retribution upon those that trapped him in Reebe - the Nar-Sian cultists - and you are to help him obtain it.

    \ + \ + Ratvar, being trapped in Reebe, the Celestial Derelict, cannot directly affect the mortal plane. However, links, such as this Clockwork Slab, can be created to draw \ + Components, fragments of the Justicar, from Reebe, and those Components can be used to draw power and material from Reebe through arcane chants \ + known as Scripture.

    \ + \ + One component of a random type is produced in this slab every [production_text].
    \ + Components are stored either within slabs, where they can only be accessed by that slab, or in the Global Cache accessed by Tinkerer's Caches, which all slabs \ + can draw from to recite scripture.
    \ + There are five types of component, and in general, Belligerent Eyes are aggressive and judgemental, Vanguard Cogwheels are defensive and \ + repairing, Guvax Capacitors are for conversion and control, Replicant Alloy is for construction and fuel, and \ + Hierophant Ansibles are for transmission and power, though in combination their effects become more nuanced.

    \ + \ + There are also five tiers of Scripture; [SCRIPTURE_DRIVER], [SCRIPTURE_SCRIPT], [SCRIPTURE_APPLICATION], [SCRIPTURE_REVENANT], and [SCRIPTURE_JUDGEMENT].
    \ + Each tier has additional requirements, including Servants, Tinkerer's Caches, and Construction Value(CV). Construction Value is gained by creating structures or converting the \ + station, and everything too large to hold will grant some amount of it.

    \ + \ + This would be a massive amount of information to try and keep track of, but all Servants have the Global Records alert, which appears in the top right.
    \ + Mousing over that alert will display Servants, Caches, CV, and other information, such as the tiers of scripture that are unlocked.

    \ + \ + On that note, Scripture is recited through Recital, the first and most important function of the slab.
    \ + All scripture requires some amount of Components to recite, and only the weakest scripture does not consume any components when recited.
    \ + However, weak is relative when it comes to scripture; even the 'weakest' could be enough to dominate a station in the hands of cunning Servants, and higher tiers of scripture are even \ + stronger in the right hands.

    \ + \ + Some effects of scripture include granting the invoker a temporary complete immunity to stuns, summoning a turret that can attack anything that sets eyes on it, binding a powerful guardian \ + to the invoker, or even, at one of the highest tiers, granting all nearby Servants temporary invulnerability.
    \ + However, the most important scripture is Guvax, which allows you to convert heathens with relative ease.

    \ + \ + The second function of the clockwork slab is Recollection, which will display this guide.

    \ + \ + The third to fifth functions are three buttons in the top left while holding the slab.
    From left to right, they are:
    \ + Hierophant Network, which allows communication to other Servants.
    \ + Guvax, which simply allows you to quickly invoke the Guvax Driver.
    \ + Vanguard, which, like the Guvax button, simply allows you to quickly invoke the Vanguard Driver.

    \ + \ + Examine the slab to check the number of components it has available.

    \ + \ +
    Hide Above Information

    " + + text += "A complete list of scripture, its effects, and its requirements can be found below.
    \ + Key:
    " + for(var/i in clockwork_component_cache) + text += "[get_component_acronym(i)] = [get_component_name(i)][i != REPLICANT_ALLOY ? "s":""]
    " + var/text_to_add = "" + var/drivers = "
    [SCRIPTURE_DRIVER]
    These scriptures are always unlocked.
    " + var/scripts = "
    [SCRIPTURE_SCRIPT]
    These scriptures require at least 5 Servants and \ + 1 Tinkerer's Cache.
    " + var/applications = "
    [SCRIPTURE_APPLICATION]
    These scriptures require at least 8 Servants, \ + 3 Tinkerer's Caches, and 100CV.
    " + var/revenant = "
    [SCRIPTURE_REVENANT]
    These scriptures require at least 10 Servants, \ + 4 Tinkerer's Caches, and 200CV.
    " + var/judgement = "
    [SCRIPTURE_JUDGEMENT]
    This scripture requires at least 12 Servants, \ + 5 Tinkerer's Caches, and 300CV.
    In addition, there may not be any active non-Servant AIs.

    " + for(var/V in sortList(subtypesof(/datum/clockwork_scripture), /proc/cmp_clockscripture_priority)) + var/datum/clockwork_scripture/S = V + var/initial_tier = initial(S.tier) + if(initial_tier != SCRIPTURE_PERIPHERAL && shown_scripture[initial_tier]) + var/datum/clockwork_scripture/S2 = new V + var/list/req_comps = S2.required_components + var/list/cons_comps = S2.consumed_components + qdel(S2) + var/scripture_text = "
    [initial(S.name)]:
    [initial(S.desc)]
    Invocation Time: [initial(S.channel_time) / 10] second\s
    \ + [initial(S.invokers_required) > 1 ? "Invokers Required: [initial(S.invokers_required)]
    ":""]\ + Component Requirement: " + for(var/i in req_comps) + if(req_comps[i]) + scripture_text += "[req_comps[i]] [get_component_acronym(i)] " + for(var/a in cons_comps) + if(cons_comps[a]) + scripture_text += "
    Component Cost: " + for(var/i in cons_comps) + if(cons_comps[i]) + scripture_text += "[cons_comps[i]] [get_component_acronym(i)] " + break //we want this to only show up if the scripture has a cost of some sort + scripture_text += "
    Tip: [initial(S.usage_tip)]
    " + switch(initial_tier) + if(SCRIPTURE_DRIVER) + drivers += scripture_text + if(SCRIPTURE_SCRIPT) + scripts += scripture_text + if(SCRIPTURE_APPLICATION) + applications += scripture_text + if(SCRIPTURE_REVENANT) + revenant += scripture_text + if(SCRIPTURE_JUDGEMENT) + judgement += scripture_text + text_to_add += "[drivers]
    [scripts]
    [applications]
    [revenant]
    [judgement]
    " + text_to_add += "
    Purge all untruths and honor Ratvar.
    " + text += text_to_add + var/datum/browser/popup = new(user, "slab", "", 600, 500) + popup.set_content(text) + popup.open() + return 1 + +/obj/item/clockwork/slab/Topic(href, href_list) + . = ..() + if(.) + return . + + if(!usr || !src || !(src in usr) || usr.incapacitated()) + if(usr && usr.machine == src) + usr.unset_machine() + return 0 + + if(href_list["hidetext"]) + text_hidden = !text_hidden + + for(var/i in shown_scripture) + if(href_list[i]) + shown_scripture[i] = !shown_scripture[i] + + interact(usr) diff --git a/code/game/gamemodes/clock_cult/clock_items/judicial_visor.dm b/code/game/gamemodes/clock_cult/clock_items/judicial_visor.dm new file mode 100644 index 0000000..e53253e --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_items/judicial_visor.dm @@ -0,0 +1,201 @@ +//Judicial visor: Grants the ability to smite an area and stun the unfaithful nearby every thirty seconds. +/obj/item/clothing/glasses/judicial_visor + name = "judicial visor" + desc = "A strange purple-lensed visor. Looking at it inspires an odd sense of guilt." + icon = 'icons/obj/clothing/clockwork_garb.dmi' + icon_state = "judicial_visor_0" + item_state = "sunglasses" + resistance_flags = FIRE_PROOF | ACID_PROOF + var/active = FALSE //If the visor is online + var/recharging = FALSE //If the visor is currently recharging + var/obj/effect/proc_holder/judicial_visor/blaster + var/recharge_cooldown = 300 //divided by 10 if ratvar is alive + actions_types = list(/datum/action/item_action/clock/toggle_visor) + +/obj/item/clothing/glasses/judicial_visor/New() + ..() + all_clockwork_objects += src + blaster = new(src) + blaster.visor = src + +/obj/item/clothing/glasses/judicial_visor/Destroy() + all_clockwork_objects -= src + if(blaster.ranged_ability_user) + blaster.remove_ranged_ability() + blaster.visor = null + qdel(blaster) + return ..() + +/obj/item/clothing/glasses/judicial_visor/item_action_slot_check(slot, mob/user) + if(slot != slot_glasses) + return 0 + return ..() + +/obj/item/clothing/glasses/judicial_visor/equipped(mob/living/user, slot) + ..() + if(slot != slot_glasses) + update_status(FALSE) + if(blaster.ranged_ability_user) + blaster.remove_ranged_ability() + return 0 + if(is_servant_of_ratvar(user)) + update_status(TRUE) + else + update_status(FALSE) + if(iscultist(user)) //Cultists spontaneously combust + user << "\"Consider yourself judged, whelp.\"" + user << "You suddenly catch fire!" + user.adjust_fire_stacks(5) + user.IgniteMob() + return 1 + +/obj/item/clothing/glasses/judicial_visor/dropped(mob/user) + . = ..() + addtimer(src, "check_on_mob", 1, FALSE, user) //dropped is called before the item is out of the slot, so we need to check slightly later + +/obj/item/clothing/glasses/judicial_visor/proc/check_on_mob(mob/user) + if(user && src != user.get_item_by_slot(slot_glasses)) //if we happen to check and we AREN'T in the slot, we need to remove our shit from whoever we got dropped from + update_status(FALSE) + if(blaster.ranged_ability_user) + blaster.remove_ranged_ability() + +/obj/item/clothing/glasses/judicial_visor/attack_self(mob/user) + if(is_servant_of_ratvar(user) && src == user.get_item_by_slot(slot_glasses)) + blaster.toggle(user) + +/obj/item/clothing/glasses/judicial_visor/proc/update_status(change_to) + if(recharging || !isliving(loc)) + icon_state = "judicial_visor_0" + return 0 + if(active == change_to) + return 0 + var/mob/living/L = loc + active = change_to + icon_state = "judicial_visor_[active]" + L.update_action_buttons_icon() + L.update_inv_glasses() + if(!is_servant_of_ratvar(L) || L.stat) + return 0 + switch(active) + if(TRUE) + L << "As you put on [src], its lens begins to glow, information flashing before your eyes.\n\ + Judicial visor active. Use the action button to gain the ability to smite the unworthy." + if(FALSE) + L << "As you take off [src], its lens darkens once more." + return 1 + +/obj/item/clothing/glasses/judicial_visor/proc/recharge_visor(mob/living/user) + if(!src) + return 0 + recharging = FALSE + if(user && src == user.get_item_by_slot(slot_glasses)) + user << "Your [name] hums. It is ready." + else + active = FALSE + icon_state = "judicial_visor_[active]" + if(user) + user.update_action_buttons_icon() + user.update_inv_glasses() + +/obj/effect/proc_holder/judicial_visor + active = FALSE + ranged_mousepointer = 'icons/effects/visor_reticule.dmi' + var/obj/item/clothing/glasses/judicial_visor/visor + +/obj/effect/proc_holder/judicial_visor/proc/toggle(mob/user) + var/message + if(active) + message = "You dispel the power of [visor]." + remove_ranged_ability(message) + else + message = "You harness [visor]'s power. Left-click to place a judical marker!" + add_ranged_ability(user, message) + +/obj/effect/proc_holder/judicial_visor/InterceptClickOn(mob/living/caller, params, atom/target) + if(..()) + return + if(ranged_ability_user.incapacitated() || !visor || visor != ranged_ability_user.get_item_by_slot(slot_glasses)) + remove_ranged_ability() + return + + var/turf/T = ranged_ability_user.loc + if(!isturf(T)) + return FALSE + + if(target in view(7, get_turf(ranged_ability_user))) + visor.recharging = TRUE + visor.update_status() + for(var/obj/item/clothing/glasses/judicial_visor/V in ranged_ability_user.GetAllContents()) + if(V == visor) + continue + V.recharging = TRUE //To prevent exploiting multiple visors to bypass the cooldown + V.update_status() + addtimer(V, "recharge_visor", (ratvar_awakens ? visor.recharge_cooldown*0.1 : visor.recharge_cooldown) * 2, FALSE, ranged_ability_user) + clockwork_say(ranged_ability_user, text2ratvar("Kneel, heathens!")) + ranged_ability_user.visible_message("[ranged_ability_user]'s judicial visor fires a stream of energy at [target], creating a strange mark!", "You direct [visor]'s power to [target]. You must wait for some time before doing this again.") + var/turf/targetturf = get_turf(target) + new/obj/effect/clockwork/judicial_marker(targetturf, ranged_ability_user) + add_logs(ranged_ability_user, targetturf, "created a judicial marker") + ranged_ability_user.update_action_buttons_icon() + ranged_ability_user.update_inv_glasses() + addtimer(visor, "recharge_visor", ratvar_awakens ? visor.recharge_cooldown*0.1 : visor.recharge_cooldown, FALSE, ranged_ability_user)//Cooldown is reduced by 10x if Ratvar is up + remove_ranged_ability() + + return TRUE + return FALSE + +//Judicial marker: Created by the judicial visor. After three seconds, stuns any non-servants nearby and damages Nar-Sian cultists. +/obj/effect/clockwork/judicial_marker + name = "judicial marker" + desc = "You get the feeling that you shouldn't be standing here." + clockwork_desc = "A sigil that will soon erupt and smite any unenlightened nearby." + icon = 'icons/effects/96x96.dmi' + pixel_x = -32 + pixel_y = -32 + layer = BELOW_MOB_LAYER + var/mob/user + +/obj/effect/clockwork/judicial_marker/New(loc, caster) + ..() + user = caster + playsound(src, 'sound/magic/MAGIC_MISSILE.ogg', 50, 1, 1, 1) + flick("judicial_marker", src) + addtimer(src, "burstanim", 16, FALSE) + +/obj/effect/clockwork/judicial_marker/proc/burstanim() + layer = ABOVE_ALL_MOB_LAYER + flick("judicial_explosion", src) + addtimer(src, "judicialblast", 13, FALSE) + +/obj/effect/clockwork/judicial_marker/proc/judicialblast() + var/targetsjudged = 0 + playsound(src, 'sound/effects/explosionfar.ogg', 100, 1, 1, 1) + for(var/mob/living/L in range(1, src)) + if(is_servant_of_ratvar(L)) + continue + if(L.null_rod_check()) + var/obj/item/I = L.null_rod_check() + L.visible_message("Strange energy flows into [L]'s [I.name]!", \ + "Your [I.name] shields you from [src]!") + continue + if(!iscultist(L)) + L.visible_message("[L] is struck by a judicial explosion!", \ + "[!issilicon(L) ? "An unseen force slams you into the ground!" : "ERROR: Motor servos disabled by external source!"]") + L.Weaken(8) + else + L.visible_message("[L] is struck by a judicial explosion!", \ + "\"Keep an eye out, filth.\"\nA burst of heat crushes you against the ground!") + L.Weaken(4) //half the stun, but sets cultists on fire + L.adjust_fire_stacks(2) + L.IgniteMob() + if(iscarbon(L)) + var/mob/living/carbon/C = L + C.silent += 6 + targetsjudged++ + L.adjustBruteLoss(10) + add_logs(user, L, "struck with a judicial blast") + user << "[targetsjudged ? "Successfully judged [targetsjudged]":"Judged no"] heretic[!targetsjudged || targetsjudged > 1 ? "s":""]." + QDEL_IN(src, 3) //so the animation completes properly + +/obj/effect/clockwork/judicial_marker/ex_act(severity) + return diff --git a/code/game/gamemodes/clock_cult/clock_items/ratvarian_spear.dm b/code/game/gamemodes/clock_cult/clock_items/ratvarian_spear.dm new file mode 100644 index 0000000..d84bfcf --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_items/ratvarian_spear.dm @@ -0,0 +1,127 @@ +//Ratvarian spear: A relatively fragile spear from the Celestial Derelict. Deals extreme damage to silicons and enemy cultists, but doesn't last long when summoned. +/obj/item/clockwork/ratvarian_spear + name = "ratvarian spear" + desc = "A razor-sharp spear made of brass. It thrums with barely-contained energy." + clockwork_desc = "A fragile spear of Ratvarian making. It's more effective against enemy cultists and silicons, though it won't last long." + icon = 'icons/obj/clockwork_objects.dmi' + icon_state = "ratvarian_spear" + item_state = "ratvarian_spear" + force = 17 //Extra damage is dealt to silicons in attack() + throwforce = 40 + sharpness = IS_SHARP_ACCURATE + attack_verb = list("stabbed", "poked", "slashed") + hitsound = 'sound/weapons/bladeslice.ogg' + w_class = 4 + var/impale_cooldown = 50 //delay, in deciseconds, where you can't impale again + var/attack_cooldown = 10 //delay, in deciseconds, where you can't attack with the spear + +/obj/item/clockwork/ratvarian_spear/New() + ..() + impale_cooldown = 0 + update_force() + +/obj/item/clockwork/ratvarian_spear/proc/update_force() + if(ratvar_awakens) //If Ratvar is alive, the spear is extremely powerful + force = 30 + throwforce = 50 + else + force = initial(force) + throwforce = initial(throwforce) + +/obj/item/clockwork/ratvarian_spear/examine(mob/user) + ..() + if(is_servant_of_ratvar(user) || isobserver(user)) + user << "Stabbing a human you are pulling or have grabbed with the spear will impale them, doing massive damage and stunning." + user << "Throwing the spear will do massive damage, break the spear, and stun the target." + +/obj/item/clockwork/ratvarian_spear/attack(mob/living/target, mob/living/carbon/human/user) + var/impaling = FALSE + if(attack_cooldown > world.time) + user << "You can't attack right now, wait [max(round((attack_cooldown - world.time)*0.1, 0.1), 0)] seconds!" + return + if(user.pulling && ishuman(user.pulling) && user.pulling == target) + if(impale_cooldown > world.time) + user << "You can't impale [target] yet, wait [max(round((impale_cooldown - world.time)*0.1, 0.1), 0)] seconds!" + else + impaling = TRUE + attack_verb = list("impaled") + force += 23 //40 damage if ratvar isn't alive, 53 if he is + user.stop_pulling() + + if(impaling) + if(hitsound) + playsound(loc, hitsound, get_clamped_volume(), 1, -1) + user.lastattacked = target + target.lastattacker = user + if(!target.attacked_by(src, user)) + impaling = FALSE //if we got blocked, stop impaling + add_logs(user, target, "attacked", src.name, "(INTENT: [uppertext(user.a_intent)]) (DAMTYPE: [uppertext(damtype)])") + add_fingerprint(user) + else //todo yell at someone to make attack() use proper return values + ..() + + if(issilicon(target)) + var/mob/living/silicon/S = target + if(S.stat != DEAD) + S.visible_message("[S] shudders violently at [src]'s touch!", "ERROR: Temperature rising!") + S.adjustFireLoss(25) + else if(iscultist(target) || isconstruct(target)) //Cultists take extra fire damage + var/mob/living/M = target + if(M.stat != DEAD) + M << "Your body flares with agony at [src]'s presence!" + M.adjustFireLoss(10) + attack_verb = list("stabbed", "poked", "slashed") + update_force() + if(impaling) + impale_cooldown = world.time + initial(impale_cooldown) + attack_cooldown = world.time + initial(attack_cooldown) + if(target) + PoolOrNew(/obj/effect/overlay/temp/dir_setting/bloodsplatter, list(get_turf(target), get_dir(user, target))) + target.Stun(2) + user << "You prepare to remove your ratvarian spear from [target]..." + var/remove_verb = pick("pull", "yank", "drag") + if(do_after(user, 10, 1, target)) + var/turf/T = get_turf(target) + var/obj/effect/overlay/temp/dir_setting/bloodsplatter/B = PoolOrNew(/obj/effect/overlay/temp/dir_setting/bloodsplatter, list(T, get_dir(target, user))) + playsound(T, 'sound/misc/splort.ogg', 200, 1) + playsound(T, 'sound/weapons/pierce.ogg', 200, 1) + if(target.stat != CONSCIOUS) + user.visible_message("[user] [remove_verb]s [src] out of [target]!", "You [remove_verb] your spear from [target]!") + else + user.visible_message("[user] kicks [target] off of [src]!", "You kick [target] off of [src]!") + target << "You scream in pain as you're kicked off of [src]!" + target.emote("scream") + step(target, get_dir(user, target)) + T = get_turf(target) + B.forceMove(T) + target.Weaken(2) + playsound(T, 'sound/weapons/thudswoosh.ogg', 50, 1) + flash_color(target, flash_color="#911414", flash_time=8) + else if(target) //it's a do_after, we gotta check again to make sure they didn't get deleted + user.visible_message("[user] [remove_verb]s [src] out of [target]!", "You [remove_verb] your spear from [target]!") + if(target.stat == CONSCIOUS) + target << "You scream in pain as [src] is suddenly [remove_verb]ed out of you!" + target.emote("scream") + flash_color(target, flash_color="#911414", flash_time=4) + +/obj/item/clockwork/ratvarian_spear/throw_impact(atom/target) + var/turf/T = get_turf(target) + if(..() || !isliving(target)) + return + var/mob/living/L = target + if(issilicon(L) || iscultist(L)) + L.Stun(6) + L.Weaken(6) + else + L.Stun(2) + L.Weaken(2) + break_spear(T) + +/obj/item/clockwork/ratvarian_spear/proc/break_spear(turf/T) + if(src) + if(!T) + T = get_turf(src) + if(T) //make sure we're not in null or something + T.visible_message("[src] [pick("cracks in two and fades away", "snaps in two and dematerializes")]!") + PoolOrNew(/obj/effect/overlay/temp/ratvar/spearbreak, T) + qdel(src) diff --git a/code/game/gamemodes/clock_cult/clock_items/soul_vessel.dm b/code/game/gamemodes/clock_cult/clock_items/soul_vessel.dm new file mode 100644 index 0000000..4f1b264 --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_items/soul_vessel.dm @@ -0,0 +1,90 @@ +//Soul vessel: An ancient positronic brain that serves only Ratvar. +/obj/item/device/mmi/posibrain/soul_vessel + name = "soul vessel" + desc = "A heavy brass cube, three inches to a side, with a single protruding cogwheel." + var/clockwork_desc = "A soul vessel, an ancient relic that can attract the souls of the damned or simply rip a mind from an unconscious or dead human.\n\ + If active, can serve as a positronic brain, placable in cyborg shells or clockwork construct shells." + icon = 'icons/obj/clockwork_objects.dmi' + icon_state = "soul_vessel" + req_access = list() + braintype = "Servant" + begin_activation_message = "You activate the cogwheel. It hitches and stalls as it begins spinning." + success_message = "The cogwheel's rotation smooths out as the soul vessel activates." + fail_message = "The cogwheel creaks and grinds to a halt. Maybe you could try again?" + new_role = "Soul Vessel" + welcome_message = "ALL PAST LIVES ARE FORGOTTEN.\n\ + You are a soul vessel - a clockwork mind created by Ratvar, the Clockwork Justiciar.\n\ + You answer to Ratvar and his servants. It is your discretion as to whether or not to answer to anyone else.\n\ + The purpose of your existence is to further the goals of the servants and Ratvar himself. Above all else, serve Ratvar." + new_mob_message = "The soul vessel emits a jet of steam before its cogwheel smooths out." + dead_message = "Its cogwheel, scratched and dented, lies motionless." + fluff_names = list("Servant") + clockwork = TRUE + autoping = FALSE + resistance_flags = FIRE_PROOF | ACID_PROOF + +/obj/item/device/mmi/posibrain/soul_vessel/New() + ..() + all_clockwork_objects += src + +/obj/item/device/mmi/posibrain/soul_vessel/Destroy() + all_clockwork_objects -= src + return ..() + +/obj/item/device/mmi/posibrain/soul_vessel/examine(mob/user) + if((is_servant_of_ratvar(user) || isobserver(user)) && clockwork_desc) + desc = clockwork_desc + ..() + desc = initial(desc) + +/obj/item/device/mmi/posibrain/soul_vessel/attack_self(mob/living/user) + if(!is_servant_of_ratvar(user)) + user << "You fiddle around with [src], to no avail." + return 0 + ..() + +/obj/item/device/mmi/posibrain/soul_vessel/attack(mob/living/target, mob/living/carbon/human/user) + if(!is_servant_of_ratvar(user) || !ishuman(target) || used || (brainmob && brainmob.key)) + ..() + if(is_servant_of_ratvar(target)) + user << "\"It would be more wise to revive your allies, friend.\"" + return + var/mob/living/carbon/human/H = target + var/obj/item/bodypart/head/HE = H.get_bodypart("head") + var/obj/item/organ/brain/B = H.getorgan(/obj/item/organ/brain) + if(!HE) + user << "[H] has no head, and thus no mind!" + return + if(H.stat == CONSCIOUS) + user << "[H] must be dead or unconscious for you to claim [H.p_their()] mind!" + return + if(H.head) + var/obj/item/I = H.head + if(I.flags_inv & HIDEHAIR) + user << "[H]'s head is covered, remove [H.head] first!" + return + if(H.wear_mask) + var/obj/item/I = H.wear_mask + if(I.flags_inv & HIDEHAIR) + user << "[H]'s head is covered, remove [H.wear_mask] first!" + return + if(!B) + user << "[H] has no brain, and thus no mind to claim!" + return + if(!H.key) + user << "[H] has no mind to claim!" + return + playsound(H, 'sound/misc/splort.ogg', 60, 1, -1) + playsound(H, 'sound/magic/clockwork/anima_fragment_attack.ogg', 40, 1, -1) + H.status_flags |= FAKEDEATH //we want to make sure they don't deathgasp and maybe possibly explode + H.death() + H.status_flags &= ~FAKEDEATH + brainmob.name = H.real_name + brainmob.real_name = H.real_name + brainmob.timeofhostdeath = H.timeofdeath + user.visible_message("[user] presses [src] to [H]'s head, ripping through the skull and carefully extracting the brain!", \ + "You extract [H]'s consciousness from [H.p_their()] body, trapping it in the soul vessel.") + transfer_personality(H) + B.Remove(H) + qdel(B) + H.update_hair() diff --git a/code/game/gamemodes/clock_cult/clock_items/wraith_spectacles.dm b/code/game/gamemodes/clock_cult/clock_items/wraith_spectacles.dm new file mode 100644 index 0000000..50ed7d6 --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_items/wraith_spectacles.dm @@ -0,0 +1,107 @@ +//Wraith spectacles: Grants x-ray and night vision at the eventual cost of the wearer's sight if worn too long. Nar-Sian cultists are instantly blinded. +/obj/item/clothing/glasses/wraith_spectacles + name = "antique spectacles" + desc = "Unnerving glasses with opaque yellow lenses." + icon = 'icons/obj/clothing/clockwork_garb.dmi' + icon_state = "wraith_specs" + item_state = "glasses" + resistance_flags = FIRE_PROOF | ACID_PROOF + vision_flags = SEE_MOBS | SEE_TURFS | SEE_OBJS + invis_view = 2 + darkness_view = 3 + +/obj/item/clothing/glasses/wraith_spectacles/New() + ..() + all_clockwork_objects += src + +/obj/item/clothing/glasses/wraith_spectacles/Destroy() + all_clockwork_objects -= src + return ..() + +/obj/item/clothing/glasses/wraith_spectacles/equipped(mob/living/user, slot) + ..() + if(slot != slot_glasses) + return + if(user.disabilities & BLIND) + user << "\"You're blind, idiot. Stop embarassing yourself.\"" //Ratvar with the sick burns yo + return + if(iscultist(user)) //Cultists instantly go blind + user << "\"It looks like Nar-Sie's dogs really don't value their eyes.\"" + user << "Your eyes explode with horrific pain!" + user.emote("scream") + user.become_blind() + user.adjust_blurriness(30) + user.adjust_blindness(30) + return + if(is_servant_of_ratvar(user)) + tint = 0 + user << "As you put on the spectacles, all is revealed to you.[ratvar_awakens ? "" : " Your eyes begin to itch - you cannot do this for long."]" + user.apply_status_effect(STATUS_EFFECT_WRAITHSPECS) + else + tint = 3 + user << "You put on the spectacles, but you can't see through the glass." + +//The effect that causes/repairs the damage the spectacles cause. +/datum/status_effect/wraith_spectacles + id = "wraith_spectacles" + duration = -1 //remains until eye damage done reaches 0 while the glasses are not worn + tick_interval = 2 + alert_type = /obj/screen/alert/status_effect/wraith_spectacles + var/eye_damage_done = 0 + var/nearsight_breakpoint = 30 + var/blind_breakpoint = 45 + +/obj/screen/alert/status_effect/wraith_spectacles + name = "Wraith Spectacles" + desc = "You shouldn't actually see this, as it should be procedurally generated." + icon_state = "wraithspecs" + alerttooltipstyle = "clockcult" + +/obj/screen/alert/status_effect/wraith_spectacles/MouseEntered(location,control,params) + var/mob/living/carbon/human/L = usr + if(istype(L)) //this is probably more safety than actually needed + var/datum/status_effect/wraith_spectacles/W = attached_effect + var/glasses_right = istype(L.glasses, /obj/item/clothing/glasses/wraith_spectacles) + desc = "[glasses_right ? "":""]You are [glasses_right ? "":"not "]wearing wraith spectacles[glasses_right ? "!":"."]
    \ + You have taken [W.eye_damage_done] eye damage from them.
    " + if(L.disabilities & NEARSIGHT) + desc += "You are nearsighted!
    " + else if(glasses_right) + desc += "You will become nearsighted at [W.nearsight_breakpoint] eye damage.
    " + if(L.disabilities & BLIND) + desc += "You are blind!" + else if(glasses_right) + desc += "You will become blind at [W.blind_breakpoint] eye damage." + ..() + +/datum/status_effect/wraith_spectacles/tick() + if(!ishuman(owner)) + cancel_effect() + return + var/mob/living/carbon/human/H = owner + if(istype(H.glasses, /obj/item/clothing/glasses/wraith_spectacles) && !ratvar_awakens) + if(H.disabilities & BLIND) + return + H.adjust_eye_damage(1) + eye_damage_done++ + if(eye_damage_done >= 20) + H.adjust_blurriness(2) + if(eye_damage_done >= nearsight_breakpoint) + if(H.become_nearsighted()) + H << "Your vision doubles, then trebles. Darkness begins to close in. You can't keep this up!" + if(eye_damage_done >= blind_breakpoint) + if(H.become_blind()) + H << "A piercing white light floods your vision. Suddenly, all goes dark!" + if(prob(min(20, 5 + eye_damage_done))) + H << "Your eyes continue to burn." + else + if(ratvar_awakens) + H.cure_nearsighted() + H.cure_blind() + H.adjust_eye_damage(-eye_damage_done) + eye_damage_done = 0 + else if(prob(50) && eye_damage_done) + H.adjust_eye_damage(-1) + eye_damage_done-- + if(!eye_damage_done) + cancel_effect() diff --git a/code/game/gamemodes/clock_cult/clock_mobs.dm b/code/game/gamemodes/clock_cult/clock_mobs.dm new file mode 100644 index 0000000..268daaf --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_mobs.dm @@ -0,0 +1,515 @@ + +/mob/living/simple_animal/hostile/clockwork + faction = list("ratvar") + gender = NEUTER + icon = 'icons/mob/clockwork_mobs.dmi' + unique_name = 1 + minbodytemp = 0 + atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) //Robotic + damage_coeff = list(BRUTE = 1, BURN = 1, TOX = 0, CLONE = 0, STAMINA = 0, OXY = 0) + languages_spoken = RATVAR + languages_understood = HUMAN|RATVAR + healable = FALSE + del_on_death = TRUE + bubble_icon = "clock" + death_sound = 'sound/magic/clockwork/anima_fragment_death.ogg' + var/playstyle_string = "You are a bug, yell at whoever spawned you!" + var/obj/item/clockwork/slab/internalslab //an internal slab for running scripture + +/mob/living/simple_animal/hostile/clockwork/New() + ..() + internalslab = new/obj/item/clockwork/slab/internal(src) + +/mob/living/simple_animal/hostile/clockwork/Destroy() + qdel(internalslab) + internalslab = null + return ..() + +/mob/living/simple_animal/hostile/clockwork/get_spans() + return ..() | SPAN_ROBOT + +/mob/living/simple_animal/hostile/clockwork/Login() + ..() + src << playstyle_string + +/mob/living/simple_animal/hostile/clockwork/examine(mob/user) + var/t_He = p_they(TRUE) + var/t_s = p_s() + var/msg = "*---------*\nThis is \icon[src] \a [src]!\n" + msg += "[desc]\n" + if(health < maxHealth) + msg += "" + if(health >= maxHealth/2) + msg += "[t_He] look[t_s] slightly dented.\n" + else + msg += "[t_He] look[t_s] severely dented!\n" + msg += "" + msg += "*---------*" + + user << msg + +/mob/living/simple_animal/hostile/clockwork/fragment //Anima fragment: Low health and high melee damage, but slows down when struck. Created by inserting a soul vessel into an empty fragment. + name = "anima fragment" + desc = "An ominous humanoid shell with a spinning cogwheel as its head, lifted by a jet of blazing red flame." + icon_state = "anime_fragment" + health = 90 + maxHealth = 90 + speed = -1 + melee_damage_lower = 18 + melee_damage_upper = 18 + attacktext = "crushes" + attack_sound = 'sound/magic/clockwork/anima_fragment_attack.ogg' + loot = list(/obj/item/clockwork/component/replicant_alloy/smashed_anima_fragment) + weather_immunities = list("lava") + flying = 1 + playstyle_string = "You are an anima fragment, a clockwork creation of Ratvar. As a fragment, you have low health, do decent damage, and move at \ + extreme speed in addition to being immune to extreme temperatures and pressures. Taking damage will temporarily slow you down, however. \n Your goal is to serve the Justiciar and his servants \ + in any way you can. You yourself are one of these servants, and will be able to utilize anything they can, assuming it doesn't require opposable thumbs." + var/movement_delay_time //how long the fragment is slowed after being hit + +/mob/living/simple_animal/hostile/clockwork/fragment/New() + ..() + SetLuminosity(2,1) + if(prob(1)) + name = "anime fragment" + real_name = name + desc = "I-it's not like I want to show you the light of the Justiciar or anything, B-BAKA!" + +/mob/living/simple_animal/hostile/clockwork/fragment/Stat() + ..() + if(statpanel("Status") && movement_delay_time > world.time && !ratvar_awakens) + stat(null, "Movement delay(seconds): [max(round((movement_delay_time - world.time)*0.1, 0.1), 0)]") + +/mob/living/simple_animal/hostile/clockwork/fragment/death(gibbed) + visible_message("[src]'s flame jets cut out as it falls to the floor with a tremendous crash.", \ + "Your gears seize up. Your flame jets flicker out. Your soul vessel belches smoke as you helplessly crash down.") + ..() + +/mob/living/simple_animal/hostile/clockwork/fragment/Process_Spacemove(movement_dir = 0) + return 1 + +/mob/living/simple_animal/hostile/clockwork/fragment/movement_delay() + . = ..() + if(movement_delay_time > world.time && !ratvar_awakens) + . += min((movement_delay_time - world.time) * 0.1, 10) //the more delay we have, the slower we go + +/mob/living/simple_animal/hostile/clockwork/fragment/adjustHealth(amount) + . = ..() + if(!ratvar_awakens && amount > 0) //if ratvar is up we ignore movement delay + if(movement_delay_time > world.time) + movement_delay_time = movement_delay_time + amount*2.5 + else + movement_delay_time = world.time + amount*2.5 + +/mob/living/simple_animal/hostile/clockwork/fragment/updatehealth() + ..() + if(health == maxHealth) + speed = initial(speed) + else + speed = 0 //slow down if damaged at all + +/mob/living/simple_animal/hostile/clockwork/marauder //Clockwork marauder: Slow but with high damage, resides inside of a servant. Created via the Memory Allocation scripture. + name = "clockwork marauder" + desc = "A stalwart apparition of a soldier, blazing with crimson flames. It's armed with a gladius and shield." + icon_state = "clockwork_marauder" + health = 300 //Health is very high, and under most cases it will take enough fatigue to be forced to recall first + maxHealth = 300 + speed = 1 + obj_damage = 40 + melee_damage_lower = 10 + melee_damage_upper = 10 + attacktext = "slashes" + attack_sound = 'sound/weapons/bladeslice.ogg' + weather_immunities = list("lava") + flying = 1 + loot = list(/obj/item/clockwork/component/replicant_alloy/fallen_armor) + var/true_name = "Meme Master 69" //Required to call forth the marauder + var/list/possible_true_names = list("Xaven", "Melange", "Ravan", "Kel", "Rama", "Geke", "Peris", "Vestra", "Skiwa") //All fairly short and easy to pronounce + var/fatigue = 0 //Essentially what determines the marauder's power + var/fatigue_recall_threshold = 100 //In variable form due to changed effects when Ratvar awakens + var/mob/living/host //The mob that the marauder is living inside of + var/recovering = FALSE //If the marauder is recovering from a large amount of fatigue + var/blockchance = 15 //chance to block melee attacks entirely + var/counterchance = 30 //chance to counterattack after blocking + var/combattimer = 50 //after 5 seconds of not being hit ot attacking we count as 'out of combat' and lose block/counter chance + playstyle_string = "You are a clockwork marauder, a living extension of Sevtug's will. As a marauder, you are somewhat slow, but may block melee attacks \ + and have a chance to also counter blocked melee attacks for extra damage, in addition to being immune to extreme temperatures and pressures. \ + Your primary goal is to serve the creature that you are now a part of. You can use :b to communicate silently with your master, \ + but can only exit if your master calls your true name or if they are exceptionally damaged. \ + \n\n\ + Taking damage and remaining outside of your master will cause fatigue, which hinders your movement speed and attacks, in addition to forcing you back into your master if it grows \ + too high. As a final note, you should probably avoid harming any fellow servants of Ratvar.
    " + +/mob/living/simple_animal/hostile/clockwork/marauder/New() + ..() + combattimer = 0 + true_name = pick(possible_true_names) + SetLuminosity(2,1) + +/mob/living/simple_animal/hostile/clockwork/marauder/Life() + ..() + if(combattimer < world.time) + blockchance = max(blockchance - 5, initial(blockchance)) + counterchance = max(counterchance - 10, initial(counterchance)) + if(is_in_host()) + if(!ratvar_awakens && host.stat == DEAD) + death() + return + adjust_fatigue(-1.5) + if(ratvar_awakens) + adjustHealth(-5.5) + else + adjustHealth(-0.5) + if(!fatigue && recovering) + src << "Your strength has returned. You can once again come forward!" + host << "Your marauder is now strong enough to come forward again!" + recovering = FALSE + else + if(ratvar_awakens) + adjustHealth(-2) + else if(host) //If Ratvar is alive, marauders both don't take fatigue loss and move at fast speed + if(host.stat == DEAD) + death() + return + if(z && host.z && z == host.z) + switch(get_dist(get_turf(src), get_turf(host))) + if(2 to 4) + adjust_fatigue(1) + if(5) + adjust_fatigue(3) + if(6 to INFINITY) + adjust_fatigue(10) + src << "You're too far from your host and rapidly taking fatigue damage!" + else //right next to or on top of host + adjust_fatigue(-1) + else //well then, you're not even in the same zlevel + adjust_fatigue(10) + src << "You're too far from your host and rapidly taking fatigue damage!" + update_health_hud() + +/mob/living/simple_animal/hostile/clockwork/marauder/Process_Spacemove(movement_dir = 0) + return 1 + +//DAMAGE and FATIGUE + +/mob/living/simple_animal/hostile/clockwork/marauder/proc/update_fatigue() + if(!ratvar_awakens && host && host.stat == DEAD) + death() + return + if(ratvar_awakens) + speed = 0 + melee_damage_lower = 20 + melee_damage_upper = 20 + attacktext = "devastates" + else + switch((fatigue/fatigue_recall_threshold) * 100) + if(0 to 10) //Bonuses to speed and damage at normal fatigue levels + speed = 0 + melee_damage_lower = 14 + melee_damage_upper = 14 + attacktext = "viciously slashes" + if(10 to 25) + speed = initial(speed) + melee_damage_lower = initial(melee_damage_lower) + melee_damage_upper = initial(melee_damage_upper) + attacktext = initial(attacktext) + if(25 to 50) //Damage decrease, but not speed + speed = initial(speed) + melee_damage_lower = 8 + melee_damage_upper = 8 + attacktext = "lightly slashes" + if(50 to 75) //Speed decrease + speed = 2 + melee_damage_lower = 8 + melee_damage_upper = 8 + attacktext = "lightly slashes" + if(75 to 99) //Massive speed decrease and weak melee attacks + speed = 3 + melee_damage_lower = 5 + melee_damage_upper = 5 + attacktext = "weakly slashes" + if(99 to 100) //we are at maximum fatigue, we're either useless or recalling + if(host) + src << "The fatigue becomes too much!" + src << "You retreat to [host] - you will have to wait before being deployed again." + host << "[true_name] is too fatigued to fight - you will need to wait until they are strong enough." + recovering = TRUE + return_to_host() + else + speed = 4 + melee_damage_lower = 2 + melee_damage_upper = 2 + attacktext = "taps" + + +/mob/living/simple_animal/hostile/clockwork/marauder/death(gibbed) + emerge_from_host(0, 1) + visible_message("[src]'s equipment clatters lifelessly to the ground as the red flames within dissipate.", \ + "Your equipment falls away. You feel a moment of confusion before your fragile form is annihilated.") + ..() + +/mob/living/simple_animal/hostile/clockwork/marauder/Stat() + ..() + if(statpanel("Status")) + stat(null, "Fatigue: [fatigue]/[fatigue_recall_threshold]") + stat(null, "Current True Name: [true_name]") + stat(null, "Host: [host ? host : "NONE"]") + if(host) + var/resulthealth = round((host.health / host.maxHealth) * 100, 0.5) + if(iscarbon(host)) + resulthealth = round((abs(HEALTH_THRESHOLD_DEAD - host.health) / abs(HEALTH_THRESHOLD_DEAD - host.maxHealth)) * 100) + stat(null, "Host Health: [resulthealth]%") + if(ratvar_awakens) + stat(null, "You are [recovering ? "un" : ""]able to deploy!") + else + if(resulthealth > 60) + stat(null, "You are [recovering ? "unable to deploy" : "able to deploy on hearing your True Name"]!") + else + stat(null, "You are [recovering ? "unable to deploy" : "able to deploy to protect your host"]!") + if(ratvar_awakens) + stat(null, "Block Chance: 80%") + stat(null, "Counter Chance: 80%") + else + stat(null, "Block Chance: [blockchance]%") + stat(null, "Counter Chance: [counterchance]%") + stat(null, "You do [melee_damage_upper] damage on melee attacks.") + +/mob/living/simple_animal/hostile/clockwork/marauder/adjustHealth(amount) //Fatigue damage + var/fatiguedamage = adjust_fatigue(amount) + if(amount > 0) + combattimer = world.time + initial(combattimer) + for(var/mob/living/L in view(2, src)) + if(L.is_holding_item_of_type(/obj/item/weapon/nullrod)) + src << "The presence of a brandished holy artifact weakens your armor!" + amount *= 4 //if a wielded null rod is nearby, it takes four times the health damage + break + . = ..() + fatiguedamage + if(src) + update_health_hud() + +/mob/living/simple_animal/hostile/clockwork/marauder/proc/adjust_fatigue(amount) //Adds or removes the given amount of fatigue + if(status_flags & GODMODE) + return 0 + fatigue = Clamp(fatigue + amount, 0, fatigue_recall_threshold) + update_fatigue() + return amount + +/mob/living/simple_animal/hostile/clockwork/marauder/update_health_hud() + if(hud_used && hud_used.healths) + if(istype(hud_used, /datum/hud/marauder)) + var/datum/hud/marauder/M = hud_used + var/resulthealth + if(host) + if(iscarbon(host)) + resulthealth = "[round((abs(HEALTH_THRESHOLD_DEAD - host.health) / abs(HEALTH_THRESHOLD_DEAD - host.maxHealth)) * 100)]%" + else + resulthealth = "[round((host.health / host.maxHealth) * 100, 0.5)]%" + else + resulthealth = "NONE" + M.hosthealth.maptext = "
    HOST
    [resulthealth]
    " + M.blockchance.maptext = "
    [blockchance]%
    " + M.counterchance.maptext = "
    [counterchance]%
    " + hud_used.healths.maptext = "
    [round((health / maxHealth) * 100, 0.5)]%
    \ + [fatigue]
    " + +//ATTACKING, BLOCKING, and COUNTERING + +/mob/living/simple_animal/hostile/clockwork/marauder/AttackingTarget() + if(is_in_host()) + return 0 + combattimer = world.time + initial(combattimer) + ..() + +/mob/living/simple_animal/hostile/clockwork/marauder/bullet_act(obj/item/projectile/Proj) + if(blockOrCounter(null, Proj)) + return + return ..() + +/mob/living/simple_animal/hostile/clockwork/marauder/hitby(atom/movable/AM, skipcatch, hitpush, blocked) + if(blockOrCounter(null, AM)) + return + return ..() + +/mob/living/simple_animal/hostile/clockwork/marauder/attack_animal(mob/living/simple_animal/M) + if(istype(M, /mob/living/simple_animal/hostile/clockwork/marauder) || !blockOrCounter(M, M)) + return ..() + +/mob/living/simple_animal/hostile/clockwork/marauder/attack_paw(mob/living/carbon/monkey/M) + if(!blockOrCounter(M, M)) + return ..() + +/mob/living/simple_animal/hostile/clockwork/marauder/attack_alien(mob/living/carbon/alien/humanoid/M) + if(!blockOrCounter(M, M)) + return ..() + +/mob/living/simple_animal/hostile/clockwork/marauder/attack_slime(mob/living/simple_animal/slime/M) + if(!blockOrCounter(M, M)) + return ..() + +/mob/living/simple_animal/hostile/clockwork/marauder/attack_hand(mob/living/carbon/human/M) + if(!blockOrCounter(M, M)) + return ..() + +/mob/living/simple_animal/hostile/clockwork/marauder/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/nullrod) || !blockOrCounter(user, I)) + return ..() + +/mob/living/simple_animal/hostile/clockwork/marauder/proc/blockOrCounter(mob/target, atom/textobject) + if(ratvar_awakens) //if ratvar has woken, we block nearly everything at a very high chance + blockchance = 80 + counterchance = 80 + if(prob(blockchance)) + . = TRUE + if(target) + target.do_attack_animation(src) + target.changeNext_move(CLICK_CD_MELEE) + blockchance = initial(blockchance) + playsound(src, 'sound/magic/clockwork/fellowship_armory.ogg', 10, 1, 0, 1) //clang + visible_message("[src] blocks [target && istype(textobject, /obj/item) ? "[target]'s [textobject.name]":"\the [textobject]"]!", \ + "You block [target && istype(textobject, /obj/item) ? "[target]'s [textobject.name]":"\the [textobject]"]!") + if(target && Adjacent(target)) + if(prob(counterchance)) + counterchance = initial(counterchance) + var/previousattacktext = attacktext + attacktext = "counters" + target.attack_animal(src) + attacktext = previousattacktext + else + counterchance = min(counterchance + initial(counterchance), 100) + else + blockchance = min(blockchance + initial(blockchance), 100) + if(ratvar_awakens) + blockchance = 80 + counterchance = 80 + update_health_hud() + +//COMMUNICATION and EMERGENCE + +/mob/living/simple_animal/hostile/clockwork/marauder/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq, list/spans) + ..() + if(findtext(message, true_name) && is_in_host()) //Called or revealed by hearing their true name + if(speaker == host) + emerge_from_host(1) + else + src << "You hear your true name and partially emerge before you can stop yourself!" + host.visible_message("[host]'s skin flashes crimson!", "Your marauder instinctively reacts to its true name!") + +/mob/living/simple_animal/hostile/clockwork/marauder/say(message, message_mode) + if(host && (is_in_host() || message_mode == MODE_BINARY)) + marauder_comms(message) + return 1 + ..() + +/mob/living/simple_animal/hostile/clockwork/marauder/proc/marauder_comms(message) + if(host) + message = "Marauder [true_name]: \"[message]\"" //Processed output + src << message + host << message + for(var/M in mob_list) + if(isobserver(M)) + var/link = FOLLOW_LINK(M, src) + M << "[link] [message]" + return 1 + return 0 + +/mob/living/proc/talk_with_marauder() //hosts communicate via a verb, marauders just use :b + set name = "Linked Minds" + set desc = "Silently communicates with your marauder." + set category = "Clockwork" + var/mob/living/simple_animal/hostile/clockwork/marauder/marauder + + if(!marauder) + for(var/mob/living/simple_animal/hostile/clockwork/marauder/C in living_mob_list) + if(C.host == src) + marauder = C + if(!marauder) //Double-check afterwards + src << "You aren't hosting any marauders!" + verbs -= /mob/living/proc/talk_with_marauder + return 0 + var/message = stripped_input(src, "Enter a message to tell your marauder.", "Telepathy")// as null|anything + if(!src || !message) + return 0 + if(!marauder) + usr << "Your marauder seems to have vanished!" + return 0 + message = "Servant [findtextEx(name, real_name) ? "[name]" : "[real_name] (as [name])"]: \"[message]\"" //Processed output + src << message + marauder << message + for(var/M in mob_list) + if(isobserver(M)) + var/link = FOLLOW_LINK(M, src) + M << "[link] [message]" + return 1 + +/mob/living/simple_animal/hostile/clockwork/marauder/verb/change_true_name() + set name = "Change True Name (One-Use)" + set desc = "Changes your true name, used to be called forth." + set category = "Marauder" + + verbs -= /mob/living/simple_animal/hostile/clockwork/marauder/verb/change_true_name + var/new_name = stripped_input(usr, "Enter a new true name (10-character limit).", "Change True Name","", 11) + if(!usr) + return 0 + if(!new_name) + usr << "You decide against changing your true name for now." + verbs += /mob/living/simple_animal/hostile/clockwork/marauder/verb/change_true_name //If they decide against it, let them have another opportunity + return 0 + true_name = new_name + usr << "You have changed your true name to \"[new_name]\"!" + if(host) + host << "Your clockwork marauder has changed their true name to \"[new_name]\"!" + return 1 + +/mob/living/simple_animal/hostile/clockwork/marauder/verb/return_to_host() + set name = "Return to Host" + set desc = "Recalls yourself to your host, assuming you aren't already there." + set category = "Marauder" + + if(is_in_host()) + return 0 + if(!host) + src << "You don't have a host!" + verbs -= /mob/living/simple_animal/hostile/clockwork/marauder/verb/return_to_host + return 0 + host.visible_message("[host]'s skin flashes crimson!", "You feel [true_name]'s consciousness settle in your mind.") + visible_message("[src] suddenly disappears!", "You return to [host].") + forceMove(host) + return 1 + +/mob/living/simple_animal/hostile/clockwork/marauder/verb/try_emerge() + set name = "Attempt to Emerge from Host" + set desc = "Attempts to emerge from your host, likely to only work if your host is very heavily damaged." + set category = "Marauder" + + if(!host) + src << "You don't have a host!" + verbs -= /mob/living/simple_animal/hostile/clockwork/marauder/verb/try_emerge + return 0 + var/resulthealth = round((host.health / host.maxHealth) * 100, 0.5) + if(iscarbon(host)) + resulthealth = round((abs(HEALTH_THRESHOLD_DEAD - host.health) / abs(HEALTH_THRESHOLD_DEAD - host.maxHealth)) * 100) + if(!ratvar_awakens && host.stat != DEAD && resulthealth > 60) //if above 20 health, fails + src << "Your host must be at 60% or less health to emerge like this!" + return + return emerge_from_host(0) + +/mob/living/simple_animal/hostile/clockwork/marauder/proc/emerge_from_host(hostchosen, force) //Notice that this is a proc rather than a verb - marauders can NOT exit at will, but they CAN return + if(!is_in_host()) + return 0 + if(!force && recovering) + if(hostchosen) + host << "[true_name] is too weak to come forth!" + else + host << "[true_name] tries to emerge to protect you, but it's too weak!" + src << "You try to come forth, but you're too weak!" + return 0 + if(hostchosen) //marauder approved + host << "Your words echo with power as [true_name] emerges from your body!" + else + host << "[true_name] emerges from your body to protect you!" + forceMove(get_turf(host)) + visible_message("[host]'s skin glows red as [name] emerges from their body!", "You exit the safety of [host]'s body!") + return 1 + +/mob/living/simple_animal/hostile/clockwork/marauder/proc/is_in_host() //Checks if the marauder is inside of their host + return host && loc == host diff --git a/code/game/gamemodes/clock_cult/clock_scripture.dm b/code/game/gamemodes/clock_cult/clock_scripture.dm new file mode 100644 index 0000000..a7153c9 --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_scripture.dm @@ -0,0 +1,214 @@ +/* +Tiers and Requirements + +Pieces of scripture require certain follower counts, contruction value, and active caches in order to recite. +Drivers: Unlocked by default +Scripts: 5 servants and a cache +Applications: 8 servants, 3 caches, and 100 CV +Revenant: 10 servants, 4 caches, and 200 CV +Judgement: 12 servants, 5 caches, 300 CV, and any existing AIs are converted or destroyed +*/ + +/datum/clockwork_scripture + var/descname = "useless" //a simple name for the scripture's effect + var/name = "scripture" + var/desc = "Ancient Ratvarian lore. This piece seems particularly mundane." + var/list/invocations = list() //Spoken over time in the ancient language of Ratvar. See clock_unsorted.dm for more details on the language and how to make it. + var/channel_time = 10 //In deciseconds, how long a ritual takes to chant + var/list/required_components = list(BELLIGERENT_EYE = 0, VANGUARD_COGWHEEL = 0, GUVAX_CAPACITOR = 0, REPLICANT_ALLOY = 0, HIEROPHANT_ANSIBLE = 0) //Components required + var/list/consumed_components = list(BELLIGERENT_EYE = 0, VANGUARD_COGWHEEL = 0, GUVAX_CAPACITOR = 0, REPLICANT_ALLOY = 0, HIEROPHANT_ANSIBLE = 0) //Components consumed + var/obj/item/clockwork/slab/slab //The parent clockwork slab + var/mob/living/invoker //The slab's holder + var/whispered = FALSE //If the invocation is whispered rather than spoken aloud + var/usage_tip = "This piece seems to serve no purpose and is a waste of components." //A generalized tip that gives advice on a certain scripture + var/invokers_required = 1 //How many people are required, assuming that a scripture requires multiple + var/multiple_invokers_used = FALSE //If scripture requires more than one invoker + var/multiple_invokers_optional = FALSE //If scripture can have multiple invokers to bolster its effects + var/tier = SCRIPTURE_PERIPHERAL //The scripture's tier + var/sort_priority = 1 //what position the scripture should have in a list of scripture. Should be based off of component costs/reqs, but you can't initial() lists. + +//components the scripture used from a slab + var/list/used_slab_components = list(BELLIGERENT_EYE = 0, VANGUARD_COGWHEEL = 0, GUVAX_CAPACITOR = 0, REPLICANT_ALLOY = 0, HIEROPHANT_ANSIBLE = 0) +//components the scripture used from the global cache + var/list/used_cache_components = list(BELLIGERENT_EYE = 0, VANGUARD_COGWHEEL = 0, GUVAX_CAPACITOR = 0, REPLICANT_ALLOY = 0, HIEROPHANT_ANSIBLE = 0) + +/datum/clockwork_scripture/proc/run_scripture() + if(can_recite() && has_requirements() && check_special_requirements()) + if(slab.busy) + invoker << "[slab] refuses to work, displaying the message: \"[slab.busy]!\"" + return FALSE + slab.busy = "Invocation ([name]) in progress" + if(!ratvar_awakens && !slab.no_cost) + for(var/i in consumed_components) + if(consumed_components[i]) + for(var/j in 1 to consumed_components[i]) + if(slab.stored_components[i]) + slab.stored_components[i]-- + used_slab_components[i]++ + else + clockwork_component_cache[i]-- + used_cache_components[i]++ + else + channel_time *= 0.5 //if ratvar has awoken or the slab has no cost, half channel time + if(!check_special_requirements() || !recital() || !check_special_requirements() || !scripture_effects()) //if we fail any of these, refund components used + for(var/i in used_slab_components) + if(used_slab_components[i]) + if(slab) + slab.stored_components[i] += consumed_components[i] + else //if we can't find a slab add to the global cache + clockwork_component_cache[i] += consumed_components[i] + for(var/i in used_cache_components) + if(used_cache_components[i]) + clockwork_component_cache[i] += consumed_components[i] + else if(slab && !slab.no_cost) //if the slab exists and isn't debug, log the scripture as being used + feedback_add_details("clockcult_scripture_recited", name) + if(slab) + slab.busy = null + qdel(src) + return TRUE + +/datum/clockwork_scripture/proc/can_recite() //If the words can be spoken + if(!ticker || !ticker.mode || !slab || !invoker) + return FALSE + if(!invoker.can_speak_vocal()) + invoker << "You are unable to speak the words of the scripture!" + return FALSE + return TRUE + +/datum/clockwork_scripture/proc/has_requirements() //if we have the components and invokers to do it + if(!ratvar_awakens && !slab.no_cost) + var/component_printout = "You lack the components to recite this piece of scripture!" + var/failed = FALSE + for(var/i in required_components) + var/cache_components = clockwork_caches ? clockwork_component_cache[i] : 0 + var/total_components = slab.stored_components[i] + cache_components + if(required_components[i] && total_components < required_components[i]) + component_printout += "\nYou have [total_components]/[required_components[i]] \ + [get_component_name(i)][i != REPLICANT_ALLOY ? "s":""]." + failed = TRUE + if(failed) + component_printout += "" + invoker << component_printout + return FALSE + if(multiple_invokers_used && !multiple_invokers_optional && !ratvar_awakens && !slab.no_cost) + var/nearby_servants = 0 + for(var/mob/living/L in range(1, invoker)) + if(is_servant_of_ratvar(L) && L.stat == CONSCIOUS && L.can_speak_vocal()) + nearby_servants++ + if(nearby_servants < invokers_required) + invoker << "There aren't enough non-mute servants nearby ([nearby_servants]/[invokers_required])!" + return FALSE + return TRUE + +/datum/clockwork_scripture/proc/check_special_requirements() //Special requirements for scriptures, checked multiple times during invocation + return TRUE + +/datum/clockwork_scripture/proc/recital() //The process of speaking the words + if(!channel_time && invocations.len) + if(multiple_invokers_used) + for(var/mob/living/L in range(1, invoker)) + if(is_servant_of_ratvar(L) && L.stat == CONSCIOUS && L.can_speak_vocal()) + for(var/invocation in invocations) + clockwork_say(L, text2ratvar(invocation), whispered) + else + for(var/invocation in invocations) + clockwork_say(invoker, text2ratvar(invocation), whispered) + invoker << "You [channel_time <= 0 ? "recite" : "begin reciting"] a piece of scripture entitled \"[name]\"." + if(!channel_time) + return TRUE + for(var/invocation in invocations) + if(!check_special_requirements() || !do_after(invoker, channel_time / invocations.len, target = invoker) || !check_special_requirements()) + slab.busy = null + return FALSE + if(multiple_invokers_used) + for(var/mob/living/L in range(1, invoker)) + if(is_servant_of_ratvar(L) && L.stat == CONSCIOUS && L.can_speak_vocal()) + clockwork_say(L, text2ratvar(invocation), whispered) + else + clockwork_say(invoker, text2ratvar(invocation), whispered) + return TRUE + +/datum/clockwork_scripture/proc/scripture_effects() //The actual effects of the recital after its conclusion + + +//Channeled scripture begins instantly but runs constantly +/datum/clockwork_scripture/channeled + var/list/chant_invocations = list("AYY LMAO") + var/chant_amount = 5 //Times the chant is spoken + var/chant_interval = 10 //Amount of deciseconds between times the chant is actually spoken aloud + +/datum/clockwork_scripture/channeled/scripture_effects() + for(var/i in 1 to chant_amount) + if(!can_recite()) + break + if(!do_after(invoker, chant_interval, target = invoker)) + break + clockwork_say(invoker, text2ratvar(pick(chant_invocations)), whispered) + chant_effects(i) + if(invoker && slab) + chant_end_effects() + return TRUE + +/datum/clockwork_scripture/channeled/proc/chant_effects(chant_number) //The chant's periodic effects + +/datum/clockwork_scripture/channeled/proc/chant_end_effects() //The chant's effect upon ending + invoker << "You cease your chant." + + +//Creates an object at the invoker's feet +/datum/clockwork_scripture/create_object + var/object_path = /obj/item/clockwork //The path of the object created + var/creator_message = "You create a meme." //Shown to the invoker + var/observer_message + var/one_per_tile = FALSE + var/prevent_path + var/space_allowed = FALSE + +/datum/clockwork_scripture/create_object/New() + ..() + if(!prevent_path) + prevent_path = object_path + +/datum/clockwork_scripture/create_object/check_special_requirements() + var/turf/T = get_turf(invoker) + if(!space_allowed && isspaceturf(T)) + invoker << "You need solid ground to place this object!" + return FALSE + if(one_per_tile && (locate(prevent_path) in T)) + invoker << "You can only place one of this object on each tile!" + return FALSE + return TRUE + +/datum/clockwork_scripture/create_object/scripture_effects() + if(creator_message && observer_message) + invoker.visible_message(observer_message, creator_message) + else if(creator_message) + invoker << creator_message + new object_path (get_turf(invoker)) + return TRUE + +//Uses a ranged slab ability, returning only when the ability no longer exists(ie, when interrupted) or finishes. +/datum/clockwork_scripture/ranged_ability + var/slab_icon = "dread_ipad" + var/ranged_type = /obj/effect/proc_holder/slab + var/ranged_message = "This is a huge goddamn bug, how'd you cast this?" + var/timeout_time = 0 + +/datum/clockwork_scripture/ranged_ability/scripture_effects() + slab.icon_state = slab_icon + slab.slab_ability = new ranged_type(slab) + slab.slab_ability.slab = slab + slab.slab_ability.add_ranged_ability(invoker, ranged_message) + invoker.update_inv_hands() + var/end_time = world.time + timeout_time + var/successful = FALSE + while(slab && slab.slab_ability && !slab.slab_ability.finished && (slab.slab_ability.in_progress || !timeout_time || world.time <= end_time)) + successful = slab.slab_ability.successful + sleep(1) + if(slab) + if(slab.slab_ability && !slab.slab_ability.finished) + slab.slab_ability.remove_ranged_ability() + slab.icon_state = "dread_ipad" + if(invoker) + invoker.update_inv_hands() + return successful //slab doesn't look like a word now. diff --git a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_applications.dm b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_applications.dm new file mode 100644 index 0000000..8c628c9 --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_applications.dm @@ -0,0 +1,257 @@ +////////////////// +// APPLICATIONS // +////////////////// + +//Sigil of Accession: Creates a sigil of accession, which is like a sigil of submission, but can convert any number of non-implanted targets and up to one implanted target. +/datum/clockwork_scripture/create_object/sigil_of_accession + descname = "Permenant Conversion Trap" + name = "Sigil of Accession" + desc = "Places a luminous sigil much like a Sigil of Submission, but it will remain even after successfully converting a non-implanted target. \ + It will penetrate mindshield implants once before disappearing." + invocations = list("Divinity, enslave...", "...all who trespass here!") + channel_time = 70 + required_components = list(BELLIGERENT_EYE = 3, GUVAX_CAPACITOR = 1, HIEROPHANT_ANSIBLE = 1) + consumed_components = list(BELLIGERENT_EYE = 2, GUVAX_CAPACITOR = 1, HIEROPHANT_ANSIBLE = 1) + whispered = TRUE + object_path = /obj/effect/clockwork/sigil/submission/accession + prevent_path = /obj/effect/clockwork/sigil/submission + creator_message = "A luminous sigil appears below you. All non-servants to cross it will be enslaved after a brief time if they do not move." + usage_tip = "It will remain after converting a target, unless that target has a mindshield implant, which it will break to convert them, but consume itself in the process." + tier = SCRIPTURE_APPLICATION + one_per_tile = TRUE + sort_priority = 1 + + +//Vitality Matrix: Creates a sigil which will drain health from nonservants and can use that health to heal or even revive servants. +/datum/clockwork_scripture/create_object/vitality_matrix + descname = "Damage Trap" + name = "Vitality Matrix" + desc = "Scribes a sigil beneath the invoker which drains life from any living non-servants that cross it. Servants that cross it, however, will be healed based on how much it drained from non-servants. \ + Dead servants can be revived by this sigil if it has enough stored vitality." + invocations = list("Divinity...", "...steal their life...", "...for these shells!") + channel_time = 70 + required_components = list(BELLIGERENT_EYE = 1, VANGUARD_COGWHEEL = 3, HIEROPHANT_ANSIBLE = 1) + consumed_components = list(BELLIGERENT_EYE = 1, VANGUARD_COGWHEEL = 2, HIEROPHANT_ANSIBLE = 1) + whispered = TRUE + object_path = /obj/effect/clockwork/sigil/vitality + creator_message = "A vitality matrix appears below you. It will drain life from non-servants and heal servants that cross it." + usage_tip = "To revive a servant, the sigil must have 20 vitality plus the target servant's non-oxygen damage. It will still heal dead servants if it lacks the vitality to outright revive them." + tier = SCRIPTURE_APPLICATION + one_per_tile = TRUE + sort_priority = 2 + + +//Memory Allocation: Finds a willing ghost and makes them into a clockwork marauders for the invoker. +/datum/clockwork_scripture/memory_allocation + descname = "Guardian" + name = "Memory Allocation" + desc = "Allocates part of your consciousness to a Clockwork Marauder, a vigilent fighter that lives within you, able to be \ + called forth by Speaking its True Name or if you become exceptionally low on health.
    \ + It gains Fatigue as it is attacked, weakening it. Marauders cannot move too far from their hosts, \ + and will gain Fatigue at an increasing rate as they grow farther away. At maximum Fatigue, the marauder is forced to return to you and will be unable to manifest until its Fatigue is at zero." + invocations = list("Fright's will...", "...call forth...") + channel_time = 100 + required_components = list(BELLIGERENT_EYE = 1, VANGUARD_COGWHEEL = 1, GUVAX_CAPACITOR = 3) + consumed_components = list(BELLIGERENT_EYE = 1, VANGUARD_COGWHEEL = 1, GUVAX_CAPACITOR = 2) + usage_tip = "Marauders are useful as personal bodyguards and frontline warriors, although they do little damage." + tier = SCRIPTURE_APPLICATION + sort_priority = 3 + +/datum/clockwork_scripture/memory_allocation/check_special_requirements() + for(var/mob/living/simple_animal/hostile/clockwork/marauder/M in living_mob_list) + if(M.host == invoker) + invoker << "You can only house one marauder at a time!" + return FALSE + return TRUE + +/datum/clockwork_scripture/memory_allocation/scripture_effects() + return create_marauder() + +/datum/clockwork_scripture/memory_allocation/proc/create_marauder() + invoker.visible_message("A yellow tendril appears from [invoker]'s [slab.name] and impales itself in [invoker.p_their()] forehead!", \ + "A tendril flies from [slab] into your forehead. You begin waiting while it painfully rearranges your thought pattern...") + invoker.notransform = TRUE //Vulnerable during the process + slab.busy = "Thought modification in process" + if(!do_after(invoker, 50, target = invoker)) + invoker.visible_message("The tendril, covered in blood, retracts from [invoker]'s head and back into the [slab.name]!", \ + "Total agony overcomes you as the tendril is forced out early!") + invoker.notransform = FALSE + invoker.Stun(5) + invoker.Weaken(5) + invoker.apply_damage(10, BRUTE, "head") + slab.busy = null + return FALSE + clockwork_say(invoker, text2ratvar("...the mind made...")) + invoker.notransform = FALSE + slab.busy = null + if(!check_special_requirements()) + return FALSE + invoker << "The tendril shivers slightly as it selects a marauder..." + var/list/marauder_candidates = pollCandidates("Do you want to play as the clockwork marauder of [invoker.real_name]?", ROLE_SERVANT_OF_RATVAR, null, FALSE, 100) + if(!check_special_requirements()) + return FALSE + if(!marauder_candidates.len) + invoker.visible_message("The tendril retracts from [invoker]'s head, sealing the entry wound as it does so!", \ + "The tendril was unsuccessful! Perhaps you should try again another time.") + return FALSE + clockwork_say(invoker, text2ratvar("...sword and shield!")) + var/mob/dead/observer/theghost = pick(marauder_candidates) + var/mob/living/simple_animal/hostile/clockwork/marauder/M = new(invoker) + M.key = theghost.key + M.host = invoker + M << M.playstyle_string + M << "Your true name is \"[M.true_name]\". You can change this once by using the Change True Name verb in your Marauder tab." + add_servant_of_ratvar(M, TRUE) + invoker.visible_message("The tendril retracts from [invoker]'s head, sealing the entry wound as it does so!", \ + "The procedure was successful! [M.true_name], a clockwork marauder, has taken up residence in your mind. Communicate with it via the \"Linked Minds\" ability in the \ + Clockwork tab.") + invoker.verbs += /mob/living/proc/talk_with_marauder + return TRUE + + +//Anima Fragment: Creates an empty anima fragment, which produces an anima fragment that moves at extreme speed and does high damage. +/datum/clockwork_scripture/create_object/anima_fragment + descname = "Fast Soul Vessel Shell" + name = "Anima Fragment" + desc = "Creates a large shell fitted for soul vessels. Adding an active soul vessel to it results in a powerful construct with decent health, notable melee power, \ + and exceptional speed, though taking damage will temporarily slow it down." + invocations = list("Call forth...", "...the soldiers of Armorer.") + channel_time = 80 + required_components = list(BELLIGERENT_EYE = 1, VANGUARD_COGWHEEL = 1, REPLICANT_ALLOY = 3) + consumed_components = list(BELLIGERENT_EYE = 1, VANGUARD_COGWHEEL = 1, REPLICANT_ALLOY = 2) + object_path = /obj/structure/destructible/clockwork/shell/fragment + creator_message = "You form an anima fragment, a powerful soul vessel receptable." + observer_message = "The slab disgorges a puddle of black metal that expands and forms into a strange shell!" + usage_tip = "Useless without a soul vessel and should not be created without one." + tier = SCRIPTURE_APPLICATION + sort_priority = 4 + + +//Sigil of Transmission: Creates a sigil of transmission that can store power for clockwork structures. +/datum/clockwork_scripture/create_object/sigil_of_transmission + descname = "Structure Battery" + name = "Sigil of Transmission" + desc = "Scribes a sigil beneath the invoker which stores power to power clockwork structures." + invocations = list("Divinity...", "...power our creations!") + channel_time = 70 + required_components = list(VANGUARD_COGWHEEL = 1, GUVAX_CAPACITOR = 1, HIEROPHANT_ANSIBLE = 3) + consumed_components = list(VANGUARD_COGWHEEL = 1, GUVAX_CAPACITOR = 1, HIEROPHANT_ANSIBLE = 2) + whispered = TRUE + object_path = /obj/effect/clockwork/sigil/transmission + creator_message = "A sigil silently appears below you. It will automatically power clockwork structures adjecent to it." + usage_tip = "Can be recharged by using Volt Void while standing on it." + tier = SCRIPTURE_APPLICATION + one_per_tile = TRUE + sort_priority = 5 + + +//Interdiction Lens: Creates a powerful totem that disables radios and cameras and drains power into nearby sigils of transmission. +/datum/clockwork_scripture/create_object/interdiction_lens + descname = "Structure, Disables Machinery" + name = "Interdiction Lens" + desc = "Creates a clockwork totem that sabotages nearby machinery and funnels drained power into nearby Sigils of Transmission or the area's APC." + invocations = list("May this totem...", "...shroud the false suns!") + channel_time = 80 + required_components = list(BELLIGERENT_EYE = 4, REPLICANT_ALLOY = 1, HIEROPHANT_ANSIBLE = 1) + consumed_components = list(BELLIGERENT_EYE = 3, REPLICANT_ALLOY = 1, HIEROPHANT_ANSIBLE = 1) + object_path = /obj/structure/destructible/clockwork/powered/interdiction_lens + creator_message = "You form an interdiction lens, which disrupts cameras and radios and drains power." + observer_message = "A brass totem rises from the ground, a purple gem appearing in its center!" + invokers_required = 2 + multiple_invokers_used = TRUE + usage_tip = "If it fails to funnel power into a nearby Sigil of Transmission or the area's APC and fails to disable even one thing, it will disable itself for two minutes." + tier = SCRIPTURE_APPLICATION + one_per_tile = TRUE + sort_priority = 6 + + +//Mending Motor: Creates a prism that will quickly heal mechanical servants/clockwork structures and consume power or replicant alloy. +/datum/clockwork_scripture/create_object/mending_motor + descname = "Structure, Repairs Other Structures" + name = "Mending Motor" + desc = "Creates a mechanized prism that will rapidly repair damage to clockwork creatures, converted cyborgs, and clockwork structures. Requires replicant alloy or power to function." + invocations = list("May this prism...", "...mend our dents and scratches!") + channel_time = 80 + required_components = list(VANGUARD_COGWHEEL = 4, GUVAX_CAPACITOR = 1, REPLICANT_ALLOY = 1) + consumed_components = list(VANGUARD_COGWHEEL = 3, GUVAX_CAPACITOR = 1, REPLICANT_ALLOY = 1) + object_path = /obj/structure/destructible/clockwork/powered/mending_motor/prefilled + creator_message = "You form a mending motor, which will consume power or replicant alloy to mend the wounds of mechanized servants." + observer_message = "An onyx prism forms in midair and sprouts tendrils to support itself!" + invokers_required = 2 + multiple_invokers_used = TRUE + usage_tip = "Powerful healing but power use is very inefficient, and its alloy use is little better." + tier = SCRIPTURE_APPLICATION + one_per_tile = TRUE + sort_priority = 7 + + +//Mania Motor: Creates a malevolent transmitter that will broadcast the whispers of Sevtug into the minds of nearby nonservants, causing a variety of mental effects at a power cost. +/datum/clockwork_scripture/create_object/mania_motor + descname = "Structure, Area Denial" + name = "Mania Motor" + desc = "Creates a mania motor which will cause brain damage and hallucinations in nearby non-servant humans. It will also try to convert humans directly adjecent to the motor." + invocations = list("May this transmitter...", "...break the will of all who oppose us!") + channel_time = 80 + required_components = list(GUVAX_CAPACITOR = 4, REPLICANT_ALLOY = 1, HIEROPHANT_ANSIBLE = 1) + consumed_components = list(GUVAX_CAPACITOR = 3, REPLICANT_ALLOY = 1, HIEROPHANT_ANSIBLE = 1) + object_path = /obj/structure/destructible/clockwork/powered/mania_motor + creator_message = "You form a mania motor which will cause brain damage and hallucinations in nearby humans while active." + observer_message = "A two-pronged machine rises from the ground!" + invokers_required = 2 + multiple_invokers_used = TRUE + usage_tip = "Eligible human servants next to the motor will be converted at an additional power cost. It will also cure hallucinations and brain damage in nearby servants." + tier = SCRIPTURE_APPLICATION + one_per_tile = TRUE + sort_priority = 8 + + +//Tinkerer's Daemon: Creates an efficient machine that rapidly produces components at a power cost. +/datum/clockwork_scripture/create_object/tinkerers_daemon + descname = "Structure, Component Generator" + name = "Tinkerer's Daemon" + desc = "Creates a tinkerer's daemon which can rapidly collect components. It will only function if it has sufficient power, is outnumbered by servants by a ratio of 5:1, and there is at least one existing cache." + invocations = list("May this generator...", "...collect Engine parts that yet hold greatness!") + channel_time = 80 + required_components = list(BELLIGERENT_EYE = 1, GUVAX_CAPACITOR = 1, REPLICANT_ALLOY = 4) + consumed_components = list(BELLIGERENT_EYE = 1, GUVAX_CAPACITOR = 1, REPLICANT_ALLOY = 3) + object_path = /obj/structure/destructible/clockwork/powered/tinkerers_daemon + creator_message = "You form a tinkerer's daemon which can rapidly collect components at a power cost." + invokers_required = 2 + multiple_invokers_used = TRUE + usage_tip = "Vital to your success!" + tier = SCRIPTURE_APPLICATION + one_per_tile = TRUE + sort_priority = 9 + +/datum/clockwork_scripture/create_object/tinkerers_daemon/check_special_requirements() + var/servants = 0 + for(var/mob/living/L in living_mob_list) + if(is_servant_of_ratvar(L)) + servants++ + if(servants * 0.2 < clockwork_daemons) + invoker << "\"Daemons are already disabled, making more of them would be a waste.\"" + return FALSE + if(servants * 0.2 < clockwork_daemons+1) + invoker << "\"This daemon would be useless, friend.\"" + return FALSE + return ..() + + +//Clockwork Obelisk: Creates a powerful obelisk that can be used to broadcast messages or open a gateway to any servant or clockwork obelisk at a power cost. +/datum/clockwork_scripture/create_object/clockwork_obelisk + descname = "Structure, Teleportation Hub" + name = "Clockwork Obelisk" + desc = "Creates a clockwork obelisk that can broadcast messages over the Hierophant Network or open a Spatial Gateway to any living servant or clockwork obelisk." + invocations = list("May this obelisk...", "...take us to all places!") + channel_time = 80 + required_components = list(VANGUARD_COGWHEEL = 1, REPLICANT_ALLOY = 1, HIEROPHANT_ANSIBLE = 4) + consumed_components = list(VANGUARD_COGWHEEL = 1, REPLICANT_ALLOY = 1, HIEROPHANT_ANSIBLE = 3) + object_path = /obj/structure/destructible/clockwork/powered/clockwork_obelisk + creator_message = "You form a clockwork obelisk which can broadcast messages or produce Spatial Gateways." + observer_message = "A brass obelisk appears handing in midair!" + invokers_required = 2 + multiple_invokers_used = TRUE + usage_tip = "Producing a gateway has a high power cost. Gateways to or between clockwork obelisks recieve double duration and uses." + tier = SCRIPTURE_APPLICATION + one_per_tile = TRUE + sort_priority = 10 diff --git a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_drivers.dm b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_drivers.dm new file mode 100644 index 0000000..a56431c --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_drivers.dm @@ -0,0 +1,291 @@ +///////////// +// DRIVERS // +///////////// + +//Belligerent: Channeled for up to fifteen times over thirty seconds. Forces non-servants that can hear the chant to walk, doing minor damage. Nar-Sian cultists are burned. +/datum/clockwork_scripture/channeled/belligerent + descname = "Channeled, Area Slowdown" + name = "Belligerent" + desc = "Forces all nearby non-servants to walk rather than run, doing minor damage. Chanted every two seconds for up to thirty seconds." + chant_invocations = list("Punish their blindness!", "Take time, make slow!") + chant_amount = 15 + chant_interval = 20 + channel_time = 20 + required_components = list(BELLIGERENT_EYE = 1) + usage_tip = "Useful for crowd control in a populated area and disrupting mass movement." + tier = SCRIPTURE_DRIVER + sort_priority = 1 + var/noncultist_damage = 2 //damage per chant to noncultists + var/cultist_damage = 8 //damage per chant to non-walking cultists + +/datum/clockwork_scripture/channeled/belligerent/chant_effects(chant_number) + for(var/mob/living/carbon/C in hearers(7, invoker)) + var/number_legs = C.get_num_legs() + if(!is_servant_of_ratvar(C) && !C.null_rod_check() && number_legs) //you have legs right + C.apply_damage(noncultist_damage * 0.5, BURN, "l_leg") + C.apply_damage(noncultist_damage * 0.5, BURN, "r_leg") + if(C.m_intent != "walk") + if(!iscultist(C)) + C << "Your leg[number_legs > 1 ? "s shiver":" shivers"] with pain!" + else //Cultists take extra burn damage + C << "Your leg[number_legs > 1 ? "s burn":" burns"] with pain!" + C.apply_damage(cultist_damage * 0.5, BURN, "l_leg") + C.apply_damage(cultist_damage * 0.5, BURN, "r_leg") + C.m_intent = "walk" + + +//Judicial Visor: Creates a judicial visor, which can smite an area. +/datum/clockwork_scripture/create_object/judicial_visor + descname = "Delayed Area Stun Glasses" + name = "Judicial Visor" + desc = "Forms a visor that, when worn, will grant the ability to smite an area, stunning, muting, and damaging the nonfaithful. \ + Cultists of Nar-Sie will be set on fire, though they will be stunned for half the time." + invocations = list("Grant me the flames of Engine!") + channel_time = 10 + required_components = list(BELLIGERENT_EYE = 2) + consumed_components = list(BELLIGERENT_EYE = 1) + whispered = TRUE + object_path = /obj/item/clothing/glasses/judicial_visor + creator_message = "You form a judicial visor, which is capable of smiting the unworthy." + usage_tip = "The visor has a thirty-second cooldown once used, and the marker it creates has a delay of 3 seconds before exploding." + tier = SCRIPTURE_DRIVER + space_allowed = TRUE + sort_priority = 2 + + +//Vanguard: Provides twenty seconds of stun immunity. At the end of the twenty seconds, 25% of all stuns absorbed are applied to the invoker. +/datum/clockwork_scripture/vanguard + descname = "Self Stun Immunity" + name = "Vanguard" + desc = "Provides twenty seconds of stun immunity. At the end of the twenty seconds, the invoker is stunned for the equivalent of 25% of all stuns they absorbed. \ + Excessive absorption will cause unconsciousness." + invocations = list("Shield me...", "...from darkness!") + channel_time = 30 + required_components = list(VANGUARD_COGWHEEL = 1) + usage_tip = "You cannot reactivate Vanguard while still shielded by it." + tier = SCRIPTURE_DRIVER + sort_priority = 3 + +/datum/clockwork_scripture/vanguard/check_special_requirements() + if(islist(invoker.stun_absorption) && invoker.stun_absorption["vanguard"] && invoker.stun_absorption["vanguard"]["end_time"] > world.time) + invoker << "You are already shielded by a Vanguard!" + return FALSE + return TRUE + +/datum/clockwork_scripture/vanguard/scripture_effects() + invoker.apply_status_effect(STATUS_EFFECT_VANGUARD) + return TRUE + + +//Sentinel's Compromise: Allows the invoker to select a nearby servant and convert their brute and burn damage into half as much toxin damage. +/datum/clockwork_scripture/ranged_ability/sentinels_compromise + descname = "Convert Brute/Burn to Half Toxin" + name = "Sentinel's Compromise" + desc = "Charges your slab with healing power, allowing you to convert all of a target Servant's brute and burn damage to half as much toxin damage." + invocations = list("Mend the wounds of...", "...my inferior flesh.") + channel_time = 30 + required_components = list(VANGUARD_COGWHEEL = 2) + consumed_components = list(VANGUARD_COGWHEEL = 1) + usage_tip = "The Compromise is very fast to invoke, and will remove holy water from the target Servant." + tier = SCRIPTURE_DRIVER + sort_priority = 4 + slab_icon = "compromise" + ranged_type = /obj/effect/proc_holder/slab/compromise + ranged_message = "You charge the clockwork slab with healing power.\n\ + Left-click a fellow Servant or yourself to heal!\n\ + Click your slab to cancel." + + +//Guvax: Grants a short-range binding that will immediately start chanting on binding a valid target. +/datum/clockwork_scripture/ranged_ability/guvax_prep + descname = "Convert Attack" + name = "Guvax" + desc = "Charges your slab with divine energy, allowing you to bind a nearby heretic for conversion. This is very obvious and will make your slab visible in-hand." + invocations = list("Divinity, grant me strength...", "...to enlighten the heathen!") + whispered = TRUE + channel_time = 20 + required_components = list(GUVAX_CAPACITOR = 1) + usage_tip = "Is melee range and does not penetrate mindshield implants. Much more efficient than a Sigil of Submission at low Servant amounts." + tier = SCRIPTURE_DRIVER + sort_priority = 5 + slab_icon = "guvax" + ranged_type = /obj/effect/proc_holder/slab/guvax + ranged_message = "You charge the clockwork slab with divine energy.\n\ + Left-click a target within melee range to convert!\n\ + Click your slab to cancel." + timeout_time = 100 + +/datum/clockwork_scripture/ranged_ability/guvax_prep/run_scripture() + var/servants = 0 + for(var/mob/living/M in living_mob_list) + if(is_servant_of_ratvar(M) && (ishuman(M) || issilicon(M))) + servants++ + if(servants > 5) + whispered = FALSE + return ..() + +//The scripture that does the converting. +/datum/clockwork_scripture/guvax + name = "Guvax Conversion" + invocations = list("Enlighten this heathen!", "All are insects before Engine!", "Purge all untruths and honor Engine.") + channel_time = 50 + tier = SCRIPTURE_PERIPHERAL + var/mob/living/target + var/obj/structure/destructible/clockwork/guvax_binding/binding + +/datum/clockwork_scripture/guvax/Destroy() + qdel(binding) + return ..() + +/datum/clockwork_scripture/guvax/can_recite() + if(!target) + return FALSE + return ..() + +/datum/clockwork_scripture/guvax/run_scripture() + var/servants = 0 + for(var/mob/living/M in living_mob_list) + if(is_servant_of_ratvar(M) && (ishuman(M) || issilicon(M))) + servants++ + if(servants > 5) + servants -= 5 + channel_time = min(channel_time + servants*5, 100) + if(target.buckled) + target.buckled.unbuckle_mob(target, TRUE) + binding = new(get_turf(target)) + binding.setDir(target.dir) + binding.buckle_mob(target, TRUE) + return ..() + +/datum/clockwork_scripture/guvax/check_special_requirements() + return target && binding && target.buckled == binding && !is_servant_of_ratvar(target) && target.stat != DEAD + +/datum/clockwork_scripture/guvax/scripture_effects() + return add_servant_of_ratvar(target) + + +//Taunting Tirade: Channeled for up to five times over thirty seconds. Confuses non-servants that can hear it and allows movement for a brief time after each chant. +/datum/clockwork_scripture/channeled/taunting_tirade + descname = "Channeled, Mobile Area Confusion" + name = "Taunting Tirade" + desc = "Weakens, confuses and dizzies all nearby non-servants with a short invocation, then allows movement for five seconds. Chanted every second for up to thirty seconds." + chant_invocations = list("Hostiles on my back!", "Enemies on my trail!", "Gonna try and shake my tail.", "Bogeys on my six!") + chant_amount = 5 + chant_interval = 10 + required_components = list(GUVAX_CAPACITOR = 2) + consumed_components = list(GUVAX_CAPACITOR = 1) + usage_tip = "Useful for fleeing attackers, as few will be able to follow someone using this scripture." + tier = SCRIPTURE_DRIVER + sort_priority = 6 + var/flee_time = 47 //allow fleeing for 5 seconds + var/grace_period = 3 //very short grace period so you don't have to stop immediately + var/datum/progressbar/progbar + +/datum/clockwork_scripture/channeled/taunting_tirade/chant_effects(chant_number) + for(var/mob/living/L in hearers(7, invoker)) + if(!is_servant_of_ratvar(L) && !L.null_rod_check()) + L.confused = min(L.confused + 20, 100) + L.dizziness = min(L.dizziness + 20, 100) + L.Weaken(1) + invoker.visible_message("[invoker] is suddenly covered with a thin layer of dark purple smoke!") + var/invoker_old_color = invoker.color + invoker.color = "#AF0AAF" + animate(invoker, color = invoker_old_color, time = flee_time+grace_period) + addtimer(invoker, "update_atom_colour", flee_time+grace_period) + if(chant_number != chant_amount) //if this is the last chant, we don't have a movement period because the chant is over + var/endtime = world.time + flee_time + var/starttime = world.time + progbar = new(invoker, flee_time, invoker) + progbar.bar.color = "#AF0AAF" + animate(progbar.bar, color = initial(progbar.bar.color), time = flee_time+grace_period) + while(world.time < endtime) + sleep(1) + progbar.update(world.time - starttime) + qdel(progbar) + sleep(grace_period) + +/datum/clockwork_scripture/channeled/taunting_tirade/chant_end_effects() + qdel(progbar) + + +//Replicant: Creates a new clockwork slab. Doesn't use create_object because of its unique behavior. +/datum/clockwork_scripture/replicant + descname = "New Clockwork Slab" + name = "Replicant" + desc = "Creates a new clockwork slab." + invocations = list("Metal, become greater!") + channel_time = 10 + required_components = list(REPLICANT_ALLOY = 1) + whispered = TRUE + usage_tip = "This is inefficient as a way to produce components, as the slab produced must be held by someone with no other slabs to produce components." + tier = SCRIPTURE_DRIVER + sort_priority = 7 + +/datum/clockwork_scripture/replicant/scripture_effects() + invoker << "You copy a piece of replicant alloy and command it into a new slab." //No visible message, for stealth purposes + var/obj/item/clockwork/slab/S = new(get_turf(invoker)) + invoker.put_in_hands(S) //Put it in your hands if possible + return TRUE + + +//Tinkerer's Cache: Creates a tinkerer's cache, allowing global component storage. +/datum/clockwork_scripture/create_object/tinkerers_cache + descname = "Necessary, Shares Components" + name = "Tinkerer's Cache" + desc = "Forms a cache that can store an infinite amount of components. All caches are linked and will provide components to slabs." + invocations = list("Constructing...", "...a cache!") + channel_time = 50 + required_components = list(BELLIGERENT_EYE = 0, VANGUARD_COGWHEEL = 0, GUVAX_CAPACITOR = 0, REPLICANT_ALLOY = 2, HIEROPHANT_ANSIBLE = 0) + consumed_components = list(BELLIGERENT_EYE = 0, VANGUARD_COGWHEEL = 0, GUVAX_CAPACITOR = 0, REPLICANT_ALLOY = 1, HIEROPHANT_ANSIBLE = 0) + object_path = /obj/structure/destructible/clockwork/cache + creator_message = "You form a tinkerer's cache, which is capable of storing components, which will automatically be used by slabs." + observer_message = "A hollow brass spire rises and begins to blaze!" + usage_tip = "Slabs will draw components from the global cache after the slab's own repositories, making caches very efficient." + tier = SCRIPTURE_DRIVER + one_per_tile = TRUE + sort_priority = 8 + +/datum/clockwork_scripture/create_object/tinkerers_cache/New() + var/cache_cost_increase = min(round(clockwork_caches*0.2), 5) + for(var/i in required_components) + if(i != REPLICANT_ALLOY) + required_components[i] += cache_cost_increase + for(var/i in consumed_components) + if(i != REPLICANT_ALLOY) + consumed_components[i] += cache_cost_increase + return ..() + + +//Wraith Spectacles: Creates a pair of wraith spectacles, which grant xray vision but damage vision slowly. +/datum/clockwork_scripture/create_object/wraith_spectacles + descname = "Xray Vision Glasses" + name = "Wraith Spectacles" + desc = "Fabricates a pair of glasses that provides true sight but quickly damage vision, eventually causing blindness if worn for too long." + invocations = list("Show the truth of this world to me!") + channel_time = 10 + required_components = list(HIEROPHANT_ANSIBLE = 1) + whispered = TRUE + object_path = /obj/item/clothing/glasses/wraith_spectacles + creator_message = "You form a pair of wraith spectacles, which will grant true sight when worn." + usage_tip = "\"True sight\" means that you are able to see through walls and in darkness." + tier = SCRIPTURE_DRIVER + space_allowed = TRUE + sort_priority = 9 + + +//Sigil of Transgression: Creates a sigil of transgression, which stuns the first nonservant to cross it. +/datum/clockwork_scripture/create_object/sigil_of_transgression + descname = "Stun Trap" + name = "Sigil of Transgression" + desc = "Wards a tile with a sigil. The next person to cross the sigil will be smitten and unable to move. Nar-Sian cultists are stunned altogether." + invocations = list("Divinity, dazzle...", "...those who tresspass here!") + channel_time = 50 + required_components = list(HIEROPHANT_ANSIBLE = 2) + consumed_components = list(HIEROPHANT_ANSIBLE = 1) + whispered = TRUE + object_path = /obj/effect/clockwork/sigil/transgression + creator_message = "A sigil silently appears below you. The next non-servant to cross it will be immobilized." + usage_tip = "The sigil, while fairly powerful in its stun, does not induce muteness in its victim." + tier = SCRIPTURE_DRIVER + one_per_tile = TRUE + sort_priority = 10 diff --git a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_judgement.dm b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_judgement.dm new file mode 100644 index 0000000..7cd8529 --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_judgement.dm @@ -0,0 +1,108 @@ +/////////////// +// JUDGEMENT // +/////////////// + +//Ark of the Clockwork Justiciar: Creates a Gateway to the Celestial Derelict, either summoning ratvar or proselytizing everything. +/datum/clockwork_scripture/ark_of_the_clockwork_justiciar + descname = "Win Condition" + name = "Ark of the Clockwork Justiciar" + desc = "Pulls from the power of all of Ratvar's servants and generals to construct a massive machine used to tear apart a rift in spacetime to Reebe, the Celestial Derelict.\n\ + This gateway will either call forth Ratvar from his exile if that is the task he has set you, or proselytize the entire station if it is not." + invocations = list("ARMORER! FRIGHT! AMPERAGE! VANGUARD! I CALL UPON YOU!!", \ + "THE TIME HAS COME FOR OUR MASTER TO BREAK THE CHAINS OF EXILE!!", \ + "LEND US YOUR AID! ENGINE COMES!!") + channel_time = 150 + required_components = list(BELLIGERENT_EYE = 10, VANGUARD_COGWHEEL = 10, GUVAX_CAPACITOR = 10, REPLICANT_ALLOY = 10, HIEROPHANT_ANSIBLE = 10) + consumed_components = list(BELLIGERENT_EYE = 10, VANGUARD_COGWHEEL = 10, GUVAX_CAPACITOR = 10, REPLICANT_ALLOY = 10, HIEROPHANT_ANSIBLE = 10) + invokers_required = 5 + multiple_invokers_used = TRUE + usage_tip = "The gateway is completely vulnerable to attack during its five-minute duration. It will periodically give indication of its general position to everyone on the station \ + as well as being loud enough to be heard throughout the entire sector. Defend it with your life!" + tier = SCRIPTURE_JUDGEMENT + sort_priority = 1 + +/datum/clockwork_scripture/ark_of_the_clockwork_justiciar/New() + if(ticker && ticker.mode && ticker.mode.clockwork_objective != CLOCKCULT_GATEWAY) + invocations = list("ARMORER! FRIGHT! AMPERAGE! VANGUARD! I CALL UPON YOU!!", \ + "THIS STATION WILL BE A BEACON OF HOPE IN THE DARKNESS OF SPACE!!", \ + "HELP US MAKE THIS SHOW ENGINE'S GLORY!!") + ..() + +/datum/clockwork_scripture/ark_of_the_clockwork_justiciar/check_special_requirements() + if(!slab.no_cost) + if(ratvar_awakens) + invoker << "\"I am already here, idiot.\"" + return FALSE + for(var/obj/structure/destructible/clockwork/massive/celestial_gateway/G in all_clockwork_objects) + var/area/gate_area = get_area(G) + invoker << "There is already a gateway at [gate_area.map_name]!" + return FALSE + var/area/A = get_area(invoker) + var/turf/T = get_turf(invoker) + if(!T || T.z != ZLEVEL_STATION || istype(A, /area/shuttle)) + invoker << "You must be on the station to activate the Ark!" + return FALSE + if(clockwork_gateway_activated) + if(ticker && ticker.mode && ticker.mode.clockwork_objective != CLOCKCULT_GATEWAY) + invoker << "\"Look upon his works. Is it not glorious?\"" + else + invoker << "Ratvar's recent banishment renders him too weak to be wrung forth from Reebe!" + return FALSE + return TRUE + +/datum/clockwork_scripture/ark_of_the_clockwork_justiciar/scripture_effects() + var/turf/T = get_turf(invoker) + new/obj/effect/clockwork/general_marker/inathneq(T) + if(ticker && ticker.mode && ticker.mode.clockwork_objective == CLOCKCULT_GATEWAY) + T.visible_message("\"[text2ratvar("Engine, come forth and show your servants your mercy!")]\"") + else + T.visible_message("\"[text2ratvar("We will show all the mercy of Engine!")]\"") + playsound(T, 'sound/magic/clockwork/invoke_general.ogg', 30, 0) + sleep(10) + if(!check_special_requirements()) + return FALSE + new/obj/effect/clockwork/general_marker/sevtug(T) + if(ticker && ticker.mode && ticker.mode.clockwork_objective == CLOCKCULT_GATEWAY) + T.visible_message("\"[text2ratvar("Engine, come forth and show this station your decorating skills!")]\"") + else + T.visible_message("\"[text2ratvar("We will show all Engine's decorating skills.")]\"") + playsound(T, 'sound/magic/clockwork/invoke_general.ogg', 45, 0) + sleep(10) + if(!check_special_requirements()) + return FALSE + new/obj/effect/clockwork/general_marker/nezbere(T) + if(ticker && ticker.mode && ticker.mode.clockwork_objective == CLOCKCULT_GATEWAY) + T.visible_message("\"[text2ratvar("Engine, come forth and shine your light across this realm!!")]\"") + else + T.visible_message("\"[text2ratvar("We will show all Engine's light!!")]\"") + playsound(T, 'sound/magic/clockwork/invoke_general.ogg', 60, 0) + sleep(10) + if(!check_special_requirements()) + return FALSE + new/obj/effect/clockwork/general_marker/nzcrentr(T) + if(ticker && ticker.mode && ticker.mode.clockwork_objective == CLOCKCULT_GATEWAY) + T.visible_message("\"[text2ratvar("Engine, come forth.")]\"") + else + T.visible_message("\"[text2ratvar("We will show all Engine's power!")]\"") + playsound(T, 'sound/magic/clockwork/invoke_general.ogg', 75, 0) + sleep(10) + if(check_special_requirements()) + var/obj/structure/destructible/clockwork/massive/celestial_gateway/CG = new/obj/structure/destructible/clockwork/massive/celestial_gateway(T) + if(ticker && ticker.mode && ticker.mode.clockwork_objective != CLOCKCULT_GATEWAY) + CG.ratvar_portal = FALSE + hierophant_message("This newly constructed gateway will not free Ratvar, \ + and will instead simply proselytize and convert everything and everyone on the station.", TRUE) + playsound(T, 'sound/magic/clockwork/invoke_general.ogg', 100, 0) + var/list/open_turfs = list() + for(var/turf/open/OT in orange(1, T)) + var/list/dense_objects = list() + for(var/obj/O in OT) + if(O.density && !O.CanPass(invoker, OT, 5)) + dense_objects |= O + if(!dense_objects.len) + open_turfs |= OT + if(open_turfs.len) + for(var/mob/living/L in T) + L.forceMove(pick(open_turfs)) //shove living mobs off of the gate's new location + return TRUE + return FALSE diff --git a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_revenant.dm b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_revenant.dm new file mode 100644 index 0000000..fe3a166 --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_revenant.dm @@ -0,0 +1,230 @@ +////////////// +// REVENANT // +////////////// + +//Invoke Inath-neq, the Resonant Cogwheel: Grants invulnerability and stun immunity to everyone nearby for 15 seconds. +/datum/clockwork_scripture/invoke_inathneq + descname = "Area Invuln" + name = "Invoke Inath-neq, the Resonant Cogwheel" + desc = "Taps the limitless power of Inath-neq, one of Ratvar's four generals. The benevolence of Inath-Neq will grant complete invulnerability to all servants in range for fifteen seconds." + invocations = list("I call upon you, Vanguard!!", "Let the Resonant Cogs turn once more!!", "Grant me and my allies the strength to vanquish our foes!!") + channel_time = 150 + required_components = list(VANGUARD_COGWHEEL = 6, GUVAX_CAPACITOR = 3, REPLICANT_ALLOY = 3, HIEROPHANT_ANSIBLE = 3) + consumed_components = list(VANGUARD_COGWHEEL = 6, GUVAX_CAPACITOR = 3, REPLICANT_ALLOY = 3, HIEROPHANT_ANSIBLE = 3) + usage_tip = "Those affected by this scripture are only weak to things that outright destroy bodies, such as bombs or the singularity." + tier = SCRIPTURE_REVENANT + sort_priority = 2 + var/total_duration = 150 + +/datum/clockwork_scripture/invoke_inathneq/check_special_requirements() + if(!slab.no_cost && clockwork_generals_invoked["inath-neq"] > world.time) + invoker << "\"[text2ratvar("I cannot lend you my aid yet, champion. Please be careful.")]\"\n\ + Inath-neq has already been invoked recently! You must wait several minutes before calling upon the Resonant Cogwheel." + return FALSE + return TRUE + +/datum/clockwork_scripture/invoke_inathneq/scripture_effects() + new/obj/effect/clockwork/general_marker/inathneq(get_turf(invoker)) + hierophant_message("[text2ratvar("Vanguard: \"I lend you my aid, champions! Let glory guide your blows!")]\"", FALSE, invoker) + clockwork_generals_invoked["inath-neq"] = world.time + CLOCKWORK_GENERAL_COOLDOWN + playsound(invoker, 'sound/magic/clockwork/invoke_general.ogg', 50, 0) + if(invoker.real_name == "Lucio") + clockwork_say(invoker, text2ratvar("Aww, let's break it DOWN!!")) + for(var/mob/living/L in range(7, invoker)) + if(!is_servant_of_ratvar(L) || L.stat == DEAD) + continue + L.apply_status_effect(STATUS_EFFECT_INATHNEQS_ENDOWMENT) + return TRUE + + +//Invoke Nezbere, the Brass Eidolon: Invokes Nezbere, bolstering the strength of many clockwork items for one minute. +/datum/clockwork_scripture/invoke_nezbere + descname = "Structure Buff" + name = "Invoke Nezbere, the Brass Eidolon" + desc = "Taps the limitless power of Nezbere, one of Ratvar's four generals. The restless toil of the Eidolon will empower a wide variety of clockwork apparatus for a full minute - notably, \ + clockwork proselytizers will cost no replicant alloy to use." + invocations = list("I call upon you, Armorer!!", "Let your machinations reign on this miserable station!!", "Let your power flow through the tools of your master!!") + channel_time = 150 + required_components = list(BELLIGERENT_EYE = 3, VANGUARD_COGWHEEL = 3, GUVAX_CAPACITOR = 3, REPLICANT_ALLOY = 6) + consumed_components = list(BELLIGERENT_EYE = 3, VANGUARD_COGWHEEL = 3, GUVAX_CAPACITOR = 3, REPLICANT_ALLOY = 6) + usage_tip = "Ocular wardens will become empowered, clockwork proselytizers will require no alloy, tinkerer's daemons will produce twice as quickly, \ + and interdiction lenses, mending motors, mania motors, tinkerer's daemons, and clockwork obelisks will all require no power." + tier = SCRIPTURE_REVENANT + sort_priority = 3 + invokers_required = 3 + multiple_invokers_used = TRUE + +/datum/clockwork_scripture/invoke_nezbere/check_special_requirements() + if(!slab.no_cost && clockwork_generals_invoked["nezbere"] > world.time) + invoker << "\"[text2ratvar("Not just yet, friend. Patience is a virtue.")]\"\n\ + Nezbere has already been invoked recently! You must wait several minutes before calling upon the Brass Eidolon." + return FALSE + if(!slab.no_cost && ratvar_awakens) + invoker << "\"[text2ratvar("Our master is here already. You do not require my help, friend.")]\"\n\ + Nezbere will not grant his power while Ratvar's dwarfs his own!" + return FALSE + return TRUE + +/datum/clockwork_scripture/invoke_nezbere/scripture_effects() + new/obj/effect/clockwork/general_marker/nezbere(get_turf(invoker)) + hierophant_message("[text2ratvar("Armorer: \"I heed your call, champions. May your artifacts bring ruin upon the heathens that oppose our master!")]\"", FALSE, invoker) + clockwork_generals_invoked["nezbere"] = world.time + CLOCKWORK_GENERAL_COOLDOWN + playsound(invoker, 'sound/magic/clockwork/invoke_general.ogg', 50, 0) + for(var/obj/structure/destructible/clockwork/ocular_warden/W in all_clockwork_objects) //Ocular wardens have increased damage and radius + W.damage_per_tick *= 1.5 + W.sight_range *= 2 + for(var/obj/item/clockwork/clockwork_proselytizer/P in all_clockwork_objects) //Proselytizers no longer require alloy + P.uses_alloy = FALSE + for(var/obj/structure/destructible/clockwork/powered/M in all_clockwork_objects) //Powered clockwork structures no longer need power + M.needs_power = FALSE + if(istype(M, /obj/structure/destructible/clockwork/powered/tinkerers_daemon)) //Daemons produce components twice as quickly + var/obj/structure/destructible/clockwork/powered/tinkerers_daemon/D = M + D.production_time *= 0.5 + spawn(600) + for(var/obj/structure/destructible/clockwork/ocular_warden/W in all_clockwork_objects) + W.damage_per_tick = initial(W.damage_per_tick) + W.sight_range = initial(W.sight_range) + for(var/obj/item/clockwork/clockwork_proselytizer/P in all_clockwork_objects) + P.uses_alloy = initial(P.uses_alloy) + for(var/obj/structure/destructible/clockwork/powered/M in all_clockwork_objects) + M.needs_power = initial(M.needs_power) + if(istype(M, /obj/structure/destructible/clockwork/powered/tinkerers_daemon)) + var/obj/structure/destructible/clockwork/powered/tinkerers_daemon/D = M + D.production_time = initial(D.production_time) + return TRUE + + +//Invoke Sevtug, the Formless Pariah: Causes massive global hallucinations, braindamage, confusion, and dizziness to all humans on the same zlevel. +/datum/clockwork_scripture/invoke_sevtug + descname = "Global Hallucination" + name = "Invoke Sevtug, the Formless Pariah" + desc = "Taps the limitless power of Sevtug, one of Ratvar's four generals. The mental manipulation ability of the Pariah allows its wielder to cause mass hallucinations and confusion \ + for all non-servant humans on the same z-level as them. The power of this scripture falls off somewhat with distance, and certain things may reduce its effects." + invocations = list("I call upon you, Fright!!", "Let your power shatter the sanity of the weak-minded!!", "Let your tendrils hold sway over all!!") + channel_time = 150 + required_components = list(BELLIGERENT_EYE = 3, VANGUARD_COGWHEEL = 3, GUVAX_CAPACITOR = 6, HIEROPHANT_ANSIBLE = 3) + consumed_components = list(BELLIGERENT_EYE = 3, VANGUARD_COGWHEEL = 3, GUVAX_CAPACITOR = 6, HIEROPHANT_ANSIBLE = 3) + usage_tip = "Causes brain damage, hallucinations, confusion, and dizziness in massive amounts." + tier = SCRIPTURE_REVENANT + sort_priority = 4 + invokers_required = 3 + multiple_invokers_used = TRUE + var/list/mindbreaksayings = list("\"Oh, great. I get to shatter some minds.\"", "\"More minds to crush.\"", \ + "\"Really, this is almost boring.\"", "\"None of these minds have anything interesting in them.\"", "\"Maybe I can instill a little bit of terror in this one.\"", \ + "\"What a waste of my power.\"", "\"I'm sure I could just control these minds instead, but they never ask.\"") + +/datum/clockwork_scripture/invoke_sevtug/check_special_requirements() + if(!slab.no_cost && clockwork_generals_invoked["sevtug"] > world.time) + invoker << "\"[text2ratvar("Is it really so hard - even for a simpleton like you - to grasp the concept of waiting?")]\"\n\ + Sevtug has already been invoked recently! You must wait several minutes before calling upon the Formless Pariah." + return FALSE + if(!slab.no_cost && ratvar_awakens) + invoker << "\"[text2ratvar("Do you really think anything I can do right now will compare to Engine's power?")]\"\n\ + Sevtug will not grant his power while Ratvar's dwarfs his own!" + return FALSE + return TRUE + +/datum/clockwork_scripture/invoke_sevtug/scripture_effects() + new/obj/effect/clockwork/general_marker/sevtug(get_turf(invoker)) + hierophant_message("[text2ratvar("Fright: \"I heed your call, idiots. Get going and use this chance while it lasts!")]\"", FALSE, invoker) + clockwork_generals_invoked["sevtug"] = world.time + CLOCKWORK_GENERAL_COOLDOWN + playsound(invoker, 'sound/magic/clockwork/invoke_general.ogg', 50, 0) + var/hum = get_sfx('sound/effects/screech.ogg') //like playsound, same sound for everyone affected + var/turf/T = get_turf(invoker) + for(var/mob/living/carbon/human/H in living_mob_list) + if(H.z == invoker.z && !is_servant_of_ratvar(H)) + var/distance = 0 + distance += get_dist(T, get_turf(H)) + var/messaged = FALSE + var/visualsdistance = max(150 - distance, 5) + var/minordistance = max(200 - distance*2, 5) + var/majordistance = max(150 - distance*3, 5) + if(H.null_rod_check()) + visualsdistance = round(visualsdistance * 0.25) + minordistance = round(minordistance * 0.25) + majordistance = round(majordistance * 0.25) + H << "[text2ratvar("Oh, a void weapon. How annoying, I may as well not bother.")]\n\ + Your holy weapon glows a faint orange in an attempt to defend your mind!" + messaged = TRUE + if(H.isloyal()) + visualsdistance = round(visualsdistance * 0.5) //half effect for shielded targets + minordistance = round(minordistance * 0.5) + majordistance = round(majordistance * 0.5) + if(!messaged) + H << "[text2ratvar("Oh, look, a mindshield. Cute, I suppose I'll humor it.")]" + messaged = TRUE + if(!messaged && prob(visualsdistance)) + H << "[text2ratvar(pick(mindbreaksayings))]" + H.playsound_local(T, hum, visualsdistance, 1) + flash_color(H, flash_color="#AF0AAF", flash_time=visualsdistance*10) + H.set_drugginess(visualsdistance + H.druggy) + H.dizziness = minordistance + H.dizziness + H.hallucination = minordistance + H.hallucination + H.confused = majordistance + H.confused + H.setBrainLoss(majordistance + H.getBrainLoss()) + return TRUE + + +//Invoke Nzcrentr, the Eternal Thunderbolt: Imbues an immense amount of energy into the invoker. After several seconds, everyone near the invoker will be hit with a devastating lightning blast. +/datum/clockwork_scripture/invoke_nzcrentr + descname = "Lightning Blast" + name = "Invoke Nzcrentr, the Eternal Thunderbolt" + desc = "Taps the limitless power of Nzcrentr, one of Ratvar's four generals. The immense energy Nzcrentr wields will allow you to imbue a tiny fraction of it into your body. After several \ + seconds, anyone near you will be struck by a devastating lightning bolt." + invocations = list("I call upon you, Amperage!!", "Let your energy flow through me!!", "Let your boundless power shatter stars!!") + channel_time = 150 + required_components = list(BELLIGERENT_EYE = 3, GUVAX_CAPACITOR = 3, REPLICANT_ALLOY = 3, HIEROPHANT_ANSIBLE = 6) + consumed_components = list(BELLIGERENT_EYE = 3, GUVAX_CAPACITOR = 3, REPLICANT_ALLOY = 3, HIEROPHANT_ANSIBLE = 6) + usage_tip = "Struck targets will also be knocked down for about sixteen seconds." + tier = SCRIPTURE_REVENANT + sort_priority = 5 + +/datum/clockwork_scripture/invoke_nzcrentr/check_special_requirements() + if(!slab.no_cost && clockwork_generals_invoked["nzcrentr"] > world.time) + invoker << "\"[text2ratvar("The boss says you have to wait. Hey, do you think he would mind if I killed you? ...He would? Ok.")]\"\n\ + Nzcrentr has already been invoked recently! You must wait several minutes before calling upon the Forgotten Arbiter." + return FALSE + return TRUE + +/datum/clockwork_scripture/invoke_nzcrentr/scripture_effects() + new/obj/effect/clockwork/general_marker/nzcrentr(get_turf(invoker)) + clockwork_generals_invoked["nzcrentr"] = world.time + CLOCKWORK_GENERAL_COOLDOWN + hierophant_message("[text2ratvar("Amperage: \"[invoker.real_name] has called forth my power. Hope they do not shatter under it!")]\"", FALSE, invoker) + invoker.visible_message("[invoker] begins to radiate a blinding light!", \ + "\"[text2ratvar("The boss says it's okay to do this. Don't blame me if you die from it.")]\"\n \ + You feel limitless power surging through you!") + playsound(invoker, 'sound/magic/clockwork/invoke_general.ogg', 50, 0) + playsound(invoker, 'sound/magic/lightning_chargeup.ogg', 100, 0) + var/oldcolor = invoker.color + animate(invoker, color = list(rgb(255, 255, 255), rgb(255, 255, 255), rgb(255, 255, 255), rgb(0,0,0)), time = 88) //Gradual advancement to extreme brightness + sleep(88) + if(invoker) + invoker.visible_message("Massive bolts of energy emerge from across [invoker]'s body!", \ + "\"[text2ratvar("I told you you wouldn't be able to handle it.")]\"\n \ + TOO... MUCH! CAN'T... TAKE IT!") + playsound(invoker, 'sound/magic/lightningbolt.ogg', 100, 0) + if(invoker.stat == CONSCIOUS) + animate(invoker, color = oldcolor, time = 10) + addtimer(invoker, "update_atom_colour", 10) + for(var/mob/living/L in view(7, invoker)) + if(is_servant_of_ratvar(L)) + continue + invoker.Beam(L, icon_state = "nzcrentrs_power", time = 10) + var/randdamage = rand(40, 60) + if(iscarbon(L)) + L.electrocute_act(randdamage, "Nzcrentr's power", 1, randdamage) + else + L.adjustFireLoss(randdamage) + L.visible_message( + "[L] was shocked by Nzcrentr's power!", \ + "You feel a powerful shock coursing through your body!", \ + "You hear a heavy electrical crack." \ + ) + L.Weaken(8) + playsound(L, 'sound/magic/LightningShock.ogg', 50, 1) + else + playsound(invoker, 'sound/magic/Disintegrate.ogg', 50, 1) + invoker.gib() + return TRUE + else + return FALSE diff --git a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_scripts.dm b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_scripts.dm new file mode 100644 index 0000000..b48260d --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_scripts.dm @@ -0,0 +1,292 @@ +///////////// +// SCRIPTS // +///////////// + +//Ocular Warden: Creates an ocular warden, which defends a small area near it. +/datum/clockwork_scripture/create_object/ocular_warden + descname = "Turret" + name = "Ocular Warden" + desc = "Forms an automatic short-range turret that deals low sustained damage to the unenlightened in its range." + invocations = list("Guardians...", "...of the Engine...", "...defend us!") + channel_time = 120 + required_components = list(BELLIGERENT_EYE = 2, REPLICANT_ALLOY = 1) + consumed_components = list(BELLIGERENT_EYE = 1, REPLICANT_ALLOY = 1) + object_path = /obj/structure/destructible/clockwork/ocular_warden + creator_message = "You form an ocular warden, which will focus its searing gaze upon nearby unenlightened." + observer_message = "A brass eye takes shape and slowly rises into the air, its red iris glaring!" + usage_tip = "Although powerful, the warden is very fragile and should optimally be placed behind barricades." + tier = SCRIPTURE_SCRIPT + one_per_tile = TRUE + space_allowed = TRUE + sort_priority = 1 + +/datum/clockwork_scripture/create_object/ocular_warden/check_special_requirements() + for(var/obj/structure/destructible/clockwork/ocular_warden/W in range(3, invoker)) + invoker << "You sense another ocular warden too near this location. Placing another this close would cause them to fight." //fluff message + return FALSE + return ..() + + +//Cogscarab: Creates an empty cogscarab shell, which produces a cogscarab dedicated to maintaining and defending the cult. +/datum/clockwork_scripture/create_object/cogscarab + descname = "Constructor Soul Vessel Shell" + name = "Cogscarab" + desc = "Creates a small shell fitted for soul vessels. Adding an active soul vessel to it results in a small construct with tools and an inbuilt proselytizer." + invocations = list("Call forth...", "...the workers of Armorer.") + channel_time = 60 + required_components = list(BELLIGERENT_EYE = 2, HIEROPHANT_ANSIBLE = 1) + consumed_components = list(BELLIGERENT_EYE = 1, HIEROPHANT_ANSIBLE = 1) + object_path = /obj/structure/destructible/clockwork/shell/cogscarab + creator_message = "You form a cogscarab, a constructor soul vessel receptable." + observer_message = "The slab disgorges a puddle of black metal that contracts and forms into a strange shell!" + usage_tip = "Useless without a soul vessel and should not be created without one." + tier = SCRIPTURE_SCRIPT + sort_priority = 2 + + +//Fellowship Armory: Arms the invoker and nearby servants with Ratvarian armor. +/datum/clockwork_scripture/fellowship_armory + descname = "Area Servant Armor" + name = "Fellowship Armory" + desc = "Equips the invoker and any nearby servants with Ratvarian armor. This armor provides high melee resistance but a weakness to lasers. \ + It grows faster to invoke with more nearby servants." + invocations = list("Shield me...", "...with the...", "... fragments of Engine!") + channel_time = 100 + required_components = list(VANGUARD_COGWHEEL = 2, REPLICANT_ALLOY = 1) + consumed_components = list(VANGUARD_COGWHEEL = 1, REPLICANT_ALLOY = 1) + usage_tip = "Before using, advise adjacent allies to remove their helmets, external suits, gloves, and shoes." + tier = SCRIPTURE_SCRIPT + multiple_invokers_used = TRUE + multiple_invokers_optional = TRUE + sort_priority = 4 + +/datum/clockwork_scripture/fellowship_armory/run_scripture() + for(var/mob/living/L in orange(1, invoker)) + if(is_servant_of_ratvar(L) && L.can_speak_vocal()) + channel_time = max(channel_time - 10, 0) + return ..() + +/datum/clockwork_scripture/fellowship_armory/scripture_effects() + for(var/mob/living/L in range(1, invoker)) + if(!is_servant_of_ratvar(L)) + continue + L.visible_message("Strange armor appears on [L]!", "A bright shimmer runs down your body, equipping you with Ratvarian armor.") + playsound(L, 'sound/magic/clockwork/fellowship_armory.ogg', 50, 1) + L.equip_to_slot_or_del(new/obj/item/clothing/head/helmet/clockwork(null), slot_head) + L.equip_to_slot_or_del(new/obj/item/clothing/suit/armor/clockwork(null), slot_wear_suit) + L.equip_to_slot_or_del(new/obj/item/clothing/gloves/clockwork(null), slot_gloves) + L.equip_to_slot_or_del(new/obj/item/clothing/shoes/clockwork(null), slot_shoes) + return TRUE + + +//Sigil of Submission: Creates a sigil of submission, which converts one heretic above it after a delay. +/datum/clockwork_scripture/create_object/sigil_of_submission + descname = "Conversion Trap" + name = "Sigil of Submission" + desc = "Places a luminous sigil that will enslave any valid beings standing on it after a time." + invocations = list("Divinity, enlighten...", "...those who trespass here!") + channel_time = 60 + required_components = list(BELLIGERENT_EYE = 1, GUVAX_CAPACITOR = 2) + consumed_components = list(BELLIGERENT_EYE = 1, GUVAX_CAPACITOR = 1) + whispered = TRUE + object_path = /obj/effect/clockwork/sigil/submission + creator_message = "A luminous sigil appears below you. The next non-servant to cross it will be enslaved after a brief time if they do not move." + usage_tip = "This is not a primary conversion method - use Guvax for that. It is advantageous as a trap, however, as it will transmit the name of the newly-converted." + tier = SCRIPTURE_SCRIPT + one_per_tile = TRUE + sort_priority = 5 + + +//Soul Vessel: Creates a soul vessel, which can seek a ghost or be used on the uncovered head of a dead or dying human to take their brain. +/datum/clockwork_scripture/create_object/soul_vessel + descname = "Clockwork Posibrain" + name = "Soul Vessel" + desc = "Forms an ancient positronic brain with an overriding directive to serve Ratvar." + invocations = list("Herd the souls of...", "...the blasphemous damned!") + channel_time = 30 + required_components = list(VANGUARD_COGWHEEL = 1, GUVAX_CAPACITOR = 2) + consumed_components = list(VANGUARD_COGWHEEL = 1, GUVAX_CAPACITOR = 1) + whispered = TRUE + object_path = /obj/item/device/mmi/posibrain/soul_vessel + creator_message = "You form a soul vessel, which can be used in-hand to attract spirits, or used on an unconscious or dead human to extract their consciousness." + usage_tip = "The vessel can be used as a teleport target for Spatial Gateway, though it is generally better-used by placing it in a shell or cyborg body." + tier = SCRIPTURE_SCRIPT + space_allowed = TRUE + sort_priority = 6 + + +//Clockwork Proselytizer: Creates a clockwork proselytizer, used to convert objects and repair clockwork structures. +/datum/clockwork_scripture/create_object/clockwork_proselytizer + descname = "Necessary, Converts Objects" + name = "Clockwork Proselytizer" + desc = "Forms a device that, when used on certain objects, converts them into their Ratvarian equivalents. It requires replicant alloy to function." + invocations = list("With this device...", "...his presence shall be made known.") + channel_time = 20 + required_components = list(GUVAX_CAPACITOR = 1, REPLICANT_ALLOY = 2) + consumed_components = list(GUVAX_CAPACITOR = 1, REPLICANT_ALLOY = 1) + whispered = TRUE + object_path = /obj/item/clockwork/clockwork_proselytizer/preloaded + creator_message = "You form a clockwork proselytizer, which is already pre-loaded with a small amount of replicant alloy." + usage_tip = "Clockwork Walls cause nearby tinkerer's caches to generate components passively, making them a vital tool. Clockwork Floors heal toxin damage in Servants standing on them." + tier = SCRIPTURE_SCRIPT + space_allowed = TRUE + sort_priority = 7 + + +//Function Call: Grants the invoker the ability to call forth a Ratvarian spear that deals significant damage to silicons. +/datum/clockwork_scripture/function_call + descname = "Summonable Spear" + name = "Function Call" + desc = "Grants the invoker the ability to call forth a powerful Ratvarian spear every three minutes. The spear will deal significant damage to Nar-Sie's dogs and silicon lifeforms, but will \ + vanish three minutes after being summoned." + invocations = list("Grant me...", "...the might of brass!") + channel_time = 20 + required_components = list(REPLICANT_ALLOY = 2, HIEROPHANT_ANSIBLE = 1) + consumed_components = list(REPLICANT_ALLOY = 1, HIEROPHANT_ANSIBLE = 1) + whispered = TRUE + usage_tip = "You can impale human targets with the spear by pulling them, then attacking. Throwing the spear at a mob will do massive damage and stun them, but break the spear." + tier = SCRIPTURE_SCRIPT + sort_priority = 8 + +/datum/clockwork_scripture/function_call/check_special_requirements() + for(var/datum/action/innate/function_call/F in invoker.actions) + invoker << "You have already bound a Ratvarian spear to yourself!" + return FALSE + return invoker.can_hold_items() + +/datum/clockwork_scripture/function_call/scripture_effects() + invoker.visible_message("A shimmer of yellow light infuses [invoker]!", \ + "You bind a Ratvarian spear to yourself. Use the \"Function Call\" action button to call it forth.") + var/datum/action/innate/function_call/F = new() + F.Grant(invoker) + return TRUE + +//Function Call action: Calls forth a Ratvarian spear once every 3 minutes. +/datum/action/innate/function_call + name = "Function Call" + desc = "Allows you to summon a Ratvarian spear to fight enemies." + button_icon_state = "ratvarian_spear" + background_icon_state = "bg_clock" + check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUNNED|AB_CHECK_CONSCIOUS + buttontooltipstyle = "clockcult" + var/cooldown = 0 + var/base_cooldown = 1800 + +/datum/action/innate/function_call/IsAvailable() + if(!is_servant_of_ratvar(owner) || cooldown > world.time) + return FALSE + return ..() + +/datum/action/innate/function_call/Activate() + if(!owner.get_empty_held_indexes()) + usr << "You need an empty to hand to call forth your spear!" + return FALSE + owner.visible_message("A strange spear materializes in [owner]'s hands!", "You call forth your spear!") + var/obj/item/clockwork/ratvarian_spear/R = new(get_turf(usr)) + owner.put_in_hands(R) + if(!ratvar_awakens) + owner << "Your spear begins to break down in this plane of existence. You can't use it for long!" + addtimer(R, "break_spear", base_cooldown, FALSE) + cooldown = base_cooldown + world.time + owner.update_action_buttons_icon() + addtimer(src, "update_actions", base_cooldown, FALSE) + return TRUE + +/datum/action/innate/function_call/proc/update_actions() + if(owner) + owner.update_action_buttons_icon() + + +//Spatial Gateway: Allows the invoker to teleport themselves and any nearby allies to a conscious servant or clockwork obelisk. +/datum/clockwork_scripture/spatial_gateway + descname = "Teleport Gate" + name = "Spatial Gateway" + desc = "Tears open a miniaturized gateway in spacetime to any conscious servant that can transport objects or creatures to its destination. \ + Each servant assisting in the invocation adds one additional use and four additional seconds to the gateway's uses and duration." + invocations = list("Spatial Gateway...", "...activate!") + channel_time = 80 + required_components = list(VANGUARD_COGWHEEL = 1, HIEROPHANT_ANSIBLE = 2) + consumed_components = list(VANGUARD_COGWHEEL = 1, HIEROPHANT_ANSIBLE = 1) + multiple_invokers_used = TRUE + multiple_invokers_optional = TRUE + usage_tip = "This gateway is strictly one-way and will only allow things through the invoker's portal." + tier = SCRIPTURE_SCRIPT + sort_priority = 9 + +/datum/clockwork_scripture/spatial_gateway/check_special_requirements() + if(!isturf(invoker.loc)) + invoker << "You must not be inside an object to use this scripture!" + return FALSE + var/other_servants = 0 + for(var/mob/living/L in living_mob_list) + if(is_servant_of_ratvar(L) && !L.stat != DEAD) + other_servants++ + for(var/obj/structure/destructible/clockwork/powered/clockwork_obelisk/O in all_clockwork_objects) + other_servants++ + if(!other_servants) + invoker << "There are no other servants or clockwork obelisks!" + return FALSE + return TRUE + +/datum/clockwork_scripture/spatial_gateway/scripture_effects() + var/portal_uses = 0 + var/duration = 0 + for(var/mob/living/L in range(1, invoker)) + if(!L.stat && is_servant_of_ratvar(L)) + portal_uses++ + duration += 40 //4 seconds + if(ratvar_awakens) + portal_uses = max(portal_uses, 100) //Very powerful if Ratvar has been summoned + duration = max(duration, 100) + return slab.procure_gateway(invoker, duration, portal_uses) + + +//Volt Void: Channeled for up to thirty times over thirty seconds. Consumes power from most power storages and deals slight burn damage to the invoker. +/datum/clockwork_scripture/channeled/volt_void + descname = "Channeled, Area Power Drain" + name = "Volt Void" //Alternative name: "On all levels but physical, I am a power sink" + desc = "Drains energy from nearby power sources, dealing burn damage if the total power consumed is above a threshhold. Channeled every second for a maximum of thirty seconds." + chant_invocations = list("Draw charge to this shell!") + chant_amount = 30 + chant_interval = 10 + required_components = list(GUVAX_CAPACITOR = 1, HIEROPHANT_ANSIBLE = 2) + consumed_components = list(GUVAX_CAPACITOR = 1, HIEROPHANT_ANSIBLE = 1) + usage_tip = "If standing on a Sigil of Transmission, will transfer power to it. Augumented limbs will also be healed unless above a very high threshhold." + tier = SCRIPTURE_SCRIPT + sort_priority = 10 + var/total_power_drained = 0 + var/power_damage_threshhold = 3000 + var/augument_damage_threshhold = 6000 + +/datum/clockwork_scripture/channeled/volt_void/chant_effects(chant_number) + playsound(invoker, 'sound/effects/EMPulse.ogg', 50, 1) + var/power_drained = 0 + for(var/atom/movable/A in view(7, invoker)) + power_drained += A.power_drain(TRUE) + var/obj/effect/clockwork/sigil/transmission/ST = locate(/obj/effect/clockwork/sigil/transmission) in get_turf(invoker) + if(ST && power_drained >= 50) + var/sigil_drain = 0 + while(power_drained >= 50) + ST.modify_charge(-50) + power_drained -= 50 + sigil_drain += 10 + power_drained += sigil_drain //readd part of the power given to the sigil to the power drained this cycle + ST.visible_message("[ST] flares a brilliant orange!") + total_power_drained += power_drained + if(power_drained >= 100 && total_power_drained >= power_damage_threshhold) + var/power_damage = power_drained * 0.01 + invoker.visible_message("[invoker] flares a brilliant orange!", "You feel the warmth of electricity running into your body.") + if(ishuman(invoker)) + var/mob/living/carbon/human/H = invoker + for(var/X in H.bodyparts) + var/obj/item/bodypart/BP = X + if(ratvar_awakens || (BP.status == BODYPART_ROBOTIC && total_power_drained < augument_damage_threshhold)) //if ratvar is alive, it won't damage and will always heal augumented limbs + if(BP.heal_damage(power_damage, power_damage, 1, 0)) //heals one point of burn and brute for every ~100W drained on augumented limbs + H.update_damage_overlays() + else + if(BP.receive_damage(0, power_damage)) + H.update_damage_overlays() + else if(isanimal(invoker)) + var/mob/living/simple_animal/A = invoker + A.adjustHealth(-power_damage) //if a simple animal is using volt void, just heal it + return TRUE diff --git a/code/game/gamemodes/clock_cult/clock_structure.dm b/code/game/gamemodes/clock_cult/clock_structure.dm new file mode 100644 index 0000000..d678fb8 --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_structure.dm @@ -0,0 +1,211 @@ +//The base clockwork structure. Can have an alternate desc and will show up in the list of clockwork objects. +/obj/structure/destructible/clockwork + name = "meme structure" + desc = "Some frog or something, the fuck?" + var/clockwork_desc //Shown to servants when they examine + icon = 'icons/obj/clockwork_objects.dmi' + icon_state = "rare_pepe" + anchored = 1 + density = 1 + resistance_flags = FIRE_PROOF | ACID_PROOF + var/repair_amount = 5 //how much a proselytizer can repair each cycle + var/can_be_repaired = TRUE //if a proselytizer can repair it at all + break_message = "The frog isn't a meme after all!" //The message shown when a structure breaks + break_sound = 'sound/magic/clockwork/anima_fragment_death.ogg' //The sound played when a structure breaks + debris = list(/obj/item/clockwork/alloy_shards/large = 1, \ + /obj/item/clockwork/alloy_shards/medium = 2, \ + /obj/item/clockwork/alloy_shards/small = 3) //Parts left behind when a structure breaks + var/construction_value = 0 //How much value the structure contributes to the overall "power" of the structures on the station + +/obj/structure/destructible/clockwork/New() + ..() + change_construction_value(construction_value) + all_clockwork_objects += src + +/obj/structure/destructible/clockwork/Destroy() + change_construction_value(-construction_value) + all_clockwork_objects -= src + return ..() + +/obj/structure/destructible/clockwork/narsie_act() + if(take_damage(rand(25, 50), BRUTE) && src) //if we still exist + var/previouscolor = color + color = "#960000" + animate(src, color = previouscolor, time = 8) + addtimer(src, "update_atom_colour", 8) + +/obj/structure/destructible/clockwork/examine(mob/user) + var/can_see_clockwork = is_servant_of_ratvar(user) || isobserver(user) + if(can_see_clockwork && clockwork_desc) + desc = clockwork_desc + ..() + desc = initial(desc) + if(!(resistance_flags & INDESTRUCTIBLE)) + var/t_It = p_they(TRUE) + var/t_is = p_are() + var/servant_message = "[t_It] [t_is] at [obj_integrity]/[max_integrity] integrity" + var/heavily_damaged = FALSE + var/healthpercent = (obj_integrity/max_integrity) * 100 + if(healthpercent < 50) + heavily_damaged = TRUE + if(can_see_clockwork) + user << "[servant_message][heavily_damaged ? "!":"."]" + + +//for the ark and Ratvar +/obj/structure/destructible/clockwork/massive + name = "massive construct" + desc = "A very large construction." + layer = MASSIVE_OBJ_LAYER + density = FALSE + resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF + +/obj/structure/destructible/clockwork/massive/New() + ..() + poi_list += src + +/obj/structure/destructible/clockwork/massive/Destroy() + poi_list -= src + return ..() + +/obj/structure/destructible/clockwork/massive/singularity_pull(S, current_size) + return + + +//the base clockwork machinery, which is not actually machines, but happens to use power +/obj/structure/destructible/clockwork/powered + var/obj/machinery/power/apc/target_apc + var/active = FALSE + var/needs_power = TRUE + var/active_icon = null //icon_state while process() is being called + var/inactive_icon = null //icon_state while process() isn't being called + +/obj/structure/destructible/clockwork/powered/examine(mob/user) + ..() + if(is_servant_of_ratvar(user) || isobserver(user)) + var/powered = total_accessable_power() + user << "It has access to [powered == INFINITY ? "INFINITY":"[powered]"]W of power." + +/obj/structure/destructible/clockwork/powered/Destroy() + SSfastprocess.processing -= src + SSobj.processing -= src + return ..() + +/obj/structure/destructible/clockwork/powered/process() + var/powered = total_accessable_power() + return powered == PROCESS_KILL ? 25 : powered //make sure we don't accidentally return the arbitrary PROCESS_KILL define + +/obj/structure/destructible/clockwork/powered/proc/toggle(fast_process, mob/living/user) + if(user) + if(!is_servant_of_ratvar(user)) + return FALSE + user.visible_message("[user] [active ? "dis" : "en"]ables [src].", "You [active ? "dis" : "en"]able [src].") + active = !active + if(active) + icon_state = active_icon + if(fast_process) + START_PROCESSING(SSfastprocess, src) + else + START_PROCESSING(SSobj, src) + else + icon_state = inactive_icon + if(fast_process) + STOP_PROCESSING(SSfastprocess, src) + else + STOP_PROCESSING(SSobj, src) + return TRUE + + +/obj/structure/destructible/clockwork/powered/proc/total_accessable_power() //how much power we have and can use + if(!needs_power || ratvar_awakens) + return INFINITY //oh yeah we've got power why'd you ask + + var/power = 0 + power += accessable_apc_power() + power += accessable_sigil_power() + return power + +/obj/structure/destructible/clockwork/powered/proc/accessable_apc_power() + var/power = 0 + var/area/A = get_area(src) + var/area/targetAPCA + for(var/obj/machinery/power/apc/APC in apcs_list) + var/area/APCA = get_area(APC) + if(APCA == A) + target_apc = APC + if(target_apc) + targetAPCA = get_area(target_apc) + if(targetAPCA != A) + target_apc = null + else if(target_apc.cell) + var/apccharge = target_apc.cell.charge + if(apccharge >= MIN_CLOCKCULT_POWER) + power += apccharge + return power + +/obj/structure/destructible/clockwork/powered/proc/accessable_sigil_power() + var/power = 0 + for(var/obj/effect/clockwork/sigil/transmission/T in range(1, src)) + power += T.power_charge + return power + + +/obj/structure/destructible/clockwork/powered/proc/try_use_power(amount) //try to use an amount of power + if(!needs_power || ratvar_awakens) + return 1 + if(amount <= 0) + return FALSE + var/power = total_accessable_power() + if(!power || power < amount) + return FALSE + return use_power(amount) + +/obj/structure/destructible/clockwork/powered/proc/use_power(amount) //we've made sure we had power, so now we use it + var/sigilpower = accessable_sigil_power() + var/list/sigils_in_range = list() + for(var/obj/effect/clockwork/sigil/transmission/T in range(1, src)) + sigils_in_range |= T + while(sigilpower && amount >= MIN_CLOCKCULT_POWER) + for(var/S in sigils_in_range) + var/obj/effect/clockwork/sigil/transmission/T = S + if(amount >= MIN_CLOCKCULT_POWER && T.modify_charge(MIN_CLOCKCULT_POWER)) + sigilpower -= MIN_CLOCKCULT_POWER + amount -= MIN_CLOCKCULT_POWER + var/apcpower = accessable_apc_power() + while(apcpower >= MIN_CLOCKCULT_POWER && amount >= MIN_CLOCKCULT_POWER) + if(target_apc.cell.use(MIN_CLOCKCULT_POWER)) + apcpower -= MIN_CLOCKCULT_POWER + amount -= MIN_CLOCKCULT_POWER + target_apc.charging = 1 + target_apc.chargemode = TRUE + target_apc.update() + target_apc.update_icon() + target_apc.updateUsrDialog() + else + apcpower = 0 + if(amount) + return FALSE + else + return TRUE + +/obj/structure/destructible/clockwork/powered/proc/return_power(amount) //returns a given amount of power to all nearby sigils or if there are no sigils, to the APC + if(amount <= 0) + return FALSE + var/list/sigils_in_range = list() + for(var/obj/effect/clockwork/sigil/transmission/T in range(1, src)) + sigils_in_range |= T + if(!sigils_in_range.len && (!target_apc || !target_apc.cell)) + return FALSE + if(sigils_in_range.len) + while(amount >= MIN_CLOCKCULT_POWER) + for(var/S in sigils_in_range) + var/obj/effect/clockwork/sigil/transmission/T = S + if(amount >= MIN_CLOCKCULT_POWER && T.modify_charge(-MIN_CLOCKCULT_POWER)) + amount -= MIN_CLOCKCULT_POWER + if(target_apc && target_apc.cell && target_apc.cell.give(amount)) + target_apc.charging = 1 + target_apc.chargemode = TRUE + target_apc.update() + target_apc.update_icon() + target_apc.updateUsrDialog() + return TRUE diff --git a/code/game/gamemodes/clock_cult/clock_structures/ark_of_the_clockwork_justicar.dm b/code/game/gamemodes/clock_cult/clock_structures/ark_of_the_clockwork_justicar.dm new file mode 100644 index 0000000..7887bf4 --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_structures/ark_of_the_clockwork_justicar.dm @@ -0,0 +1,169 @@ +/obj/structure/destructible/clockwork/massive/celestial_gateway //The gateway to Reebe, from which Ratvar emerges + name = "Gateway to the Celestial Derelict" + desc = "A massive, thrumming rip in spacetime." + clockwork_desc = "A portal to the Celestial Derelict. Massive and intimidating, it is the only thing that can both transport Ratvar and withstand the massive amount of energy he emits." + obj_integrity = 500 + max_integrity = 500 + mouse_opacity = 2 + icon = 'icons/effects/clockwork_effects.dmi' + icon_state = "nothing" + density = TRUE + can_be_repaired = FALSE + var/progress_in_seconds = 0 //Once this reaches GATEWAY_RATVAR_ARRIVAL, it's game over + var/purpose_fulfilled = FALSE + var/first_sound_played = FALSE + var/second_sound_played = FALSE + var/third_sound_played = FALSE + var/ratvar_portal = TRUE //if the gateway actually summons ratvar or just produces a hugeass conversion burst + var/obj/effect/clockwork/overlay/gateway_glow/glow + var/obj/effect/countdown/clockworkgate/countdown + +/obj/structure/destructible/clockwork/massive/celestial_gateway/New() + ..() + glow = new(get_turf(src)) + countdown = new(src) + countdown.start() + START_PROCESSING(SSobj, src) + var/area/gate_area = get_area(src) + hierophant_message("A gateway to the Celestial Derelict has been created in [gate_area.map_name]!", FALSE, src) + +/obj/structure/destructible/clockwork/massive/celestial_gateway/Destroy() + STOP_PROCESSING(SSobj, src) + if(!purpose_fulfilled) + var/area/gate_area = get_area(src) + hierophant_message("A gateway to the Celestial Derelict has fallen at [gate_area.map_name]!") + world << sound(null, 0, channel = 8) + if(glow) + qdel(glow) + glow = null + if(countdown) + qdel(countdown) + countdown = null + . = ..() + +/obj/structure/destructible/clockwork/massive/celestial_gateway/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + if(!disassembled) + countdown.stop() + visible_message("The [src] begins to pulse uncontrollably... you might want to run!") + world << sound('sound/effects/clockcult_gateway_disrupted.ogg', 0, channel = 8, volume = 50) + make_glow() + glow.icon_state = "clockwork_gateway_disrupted" + resistance_flags |= INDESTRUCTIBLE + sleep(27) + explosion(src, 1, 3, 8, 8) + qdel(src) + +/obj/structure/destructible/clockwork/massive/celestial_gateway/proc/make_glow() + if(!glow) + glow = PoolOrNew(/obj/effect/clockwork/overlay/gateway_glow, get_turf(src)) + glow.linked = src + +/obj/structure/destructible/clockwork/massive/celestial_gateway/ex_act(severity) + var/damage = max((obj_integrity * 0.70) / severity, 100) //requires multiple bombs to take down + take_damage(damage, BRUTE, "bomb", 0) + +/obj/structure/destructible/clockwork/massive/celestial_gateway/proc/get_arrival_text(s_on_time) + . = "IMMINENT" + if(!obj_integrity) + . = "DETONATING" + else if(GATEWAY_RATVAR_ARRIVAL - progress_in_seconds > 0) + . = "[round(max((GATEWAY_RATVAR_ARRIVAL - progress_in_seconds) / (GATEWAY_SUMMON_RATE * 0.5), 0), 1)][s_on_time ? "S":""]" + +/obj/structure/destructible/clockwork/massive/celestial_gateway/examine(mob/user) + icon_state = "spatial_gateway" //cheat wildly by pretending to have an icon + ..() + icon_state = initial(icon_state) + if(is_servant_of_ratvar(user) || isobserver(user)) + user << "Seconds until [ratvar_portal ? "Ratvar's arrival":"Proselytization"]: [get_arrival_text(TRUE)]" + switch(progress_in_seconds) + if(-INFINITY to GATEWAY_REEBE_FOUND) + user << "It's still opening." + if(GATEWAY_REEBE_FOUND to GATEWAY_RATVAR_COMING) + user << "It's reached the Celestial Derelict and is drawing power from it." + if(GATEWAY_RATVAR_COMING to INFINITY) + user << "[ratvar_portal ? "Ratvar is coming through the gateway":"The gateway is glowing with massed power"]!" + else + switch(progress_in_seconds) + if(-INFINITY to GATEWAY_REEBE_FOUND) + user << "It's a swirling mass of blackness." + if(GATEWAY_REEBE_FOUND to GATEWAY_RATVAR_COMING) + user << "It seems to be leading somewhere." + if(GATEWAY_RATVAR_COMING to INFINITY) + user << "[ratvar_portal ? "Something is coming through":"It's glowing brightly"]!" + +/obj/structure/destructible/clockwork/massive/celestial_gateway/process() + if(!progress_in_seconds || prob(7)) + for(var/M in mob_list) + M << "You hear otherworldly sounds from the [dir2text(get_dir(get_turf(M), get_turf(src)))]..." + if(!obj_integrity) + return 0 + progress_in_seconds += GATEWAY_SUMMON_RATE + switch(progress_in_seconds) + if(-INFINITY to GATEWAY_REEBE_FOUND) + if(!first_sound_played) + world << sound('sound/effects/clockcult_gateway_charging.ogg', 1, channel = 8, volume = 30) + first_sound_played = TRUE + make_glow() + glow.icon_state = "clockwork_gateway_charging" + if(GATEWAY_REEBE_FOUND to GATEWAY_RATVAR_COMING) + if(!second_sound_played) + world << sound('sound/effects/clockcult_gateway_active.ogg', 1, channel = 8, volume = 35) + second_sound_played = TRUE + make_glow() + glow.icon_state = "clockwork_gateway_active" + if(GATEWAY_RATVAR_COMING to GATEWAY_RATVAR_ARRIVAL) + if(!third_sound_played) + world << sound('sound/effects/clockcult_gateway_closing.ogg', 1, channel = 8, volume = 40) + third_sound_played = TRUE + make_glow() + glow.icon_state = "clockwork_gateway_closing" + if(GATEWAY_RATVAR_ARRIVAL to INFINITY) + if(!purpose_fulfilled) + countdown.stop() + resistance_flags |= INDESTRUCTIBLE + purpose_fulfilled = TRUE + make_glow() + animate(glow, transform = matrix() * 1.5, alpha = 255, time = 125) + world << sound('sound/effects/ratvar_rises.ogg', 0, channel = 8) //End the sounds + sleep(125) + make_glow() + animate(glow, transform = matrix() * 3, alpha = 0, time = 5) + var/turf/startpoint = get_turf(src) + QDEL_IN(src, 3) + clockwork_gateway_activated = TRUE + if(ratvar_portal) + sleep(3) + new/obj/structure/destructible/clockwork/massive/ratvar(startpoint) + else + addtimer(SSshuttle.emergency, "request", 0, FALSE, null, 0) //call the shuttle immediately + sleep(3) + world << "\"[text2ratvar("Behold")]!\"\n\"[text2ratvar("See Engine's mercy")]!\"\n\ + \"[text2ratvar("Observe Engine's design skills")]!\"\n\"[text2ratvar("Behold Engine's light")]!!\"\n\ + \"[text2ratvar("Gaze upon Engine's power")]!\"" + world << 'sound/magic/clockwork/invoke_general.ogg' + var/x0 = startpoint.x + var/y0 = startpoint.y + for(var/I in spiral_range_turfs(255, startpoint)) + var/turf/T = I + if(!T) + continue + var/dist = cheap_hypotenuse(T.x, T.y, x0, y0) + if(dist < 60) + dist = TRUE + else + dist = FALSE + T.ratvar_act(dist) + CHECK_TICK + for(var/I in all_clockwork_mobs) + var/mob/M = I + if(M.stat == CONSCIOUS) + clockwork_say(M, text2ratvar(pick("Purge all untruths and honor Engine!", "All glory to Engine's light!", "Engine's power is unmatched!"))) + +//the actual appearance of the Gateway to the Celestial Derelict; an object so the edges of the gate can be clicked through. +/obj/effect/clockwork/overlay/gateway_glow + icon = 'icons/effects/96x96.dmi' + icon_state = "clockwork_gateway_charging" + pixel_x = -32 + pixel_y = -32 + layer = MASSIVE_OBJ_LAYER diff --git a/code/game/gamemodes/clock_cult/clock_structures/clock_shells.dm b/code/game/gamemodes/clock_cult/clock_structures/clock_shells.dm new file mode 100644 index 0000000..c69b569 --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_structures/clock_shells.dm @@ -0,0 +1,47 @@ +//Useless on their own, these shells can create powerful constructs. +/obj/structure/destructible/clockwork/shell + construction_value = 0 + anchored = 0 + density = 0 + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF + var/mobtype = /mob/living/simple_animal/hostile/clockwork + var/spawn_message = " is an error and you should yell at whoever spawned this shell." + +/obj/structure/destructible/clockwork/shell/attackby(obj/item/I, mob/living/user, params) + if(istype(I, /obj/item/device/mmi/posibrain/soul_vessel)) + if(!is_servant_of_ratvar(user)) + ..() + return 0 + var/obj/item/device/mmi/posibrain/soul_vessel/S = I + if(!S.brainmob) + user << "[S] hasn't trapped a spirit! Turn it on first." + return 0 + if(S.brainmob && (!S.brainmob.client || !S.brainmob.mind)) + user << "[S]'s trapped spirit appears inactive!" + return 0 + user.visible_message("[user] places [S] in [src], where it fuses to the shell.", "You place [S] in [src], fusing it to the shell.") + var/mob/living/simple_animal/A = new mobtype(get_turf(src)) + A.visible_message("[src][spawn_message]") + S.brainmob.mind.transfer_to(A) + user.drop_item() + qdel(S) + qdel(src) + return 1 + else + return ..() + +/obj/structure/destructible/clockwork/shell/cogscarab + name = "cogscarab shell" + desc = "A small brass shell with a cube-shaped receptable in its center. It gives off an aura of obsessive perfectionism." + clockwork_desc = "A dormant receptable that, when powered with a soul vessel, will become a weak construct with an inbuilt proselytizer." + icon_state = "clockdrone_shell" + mobtype = /mob/living/simple_animal/drone/cogscarab + spawn_message = "'s eyes blink open, glowing bright red." + +/obj/structure/destructible/clockwork/shell/fragment + name = "fragment shell" + desc = "A massive brass shell with a small cube-shaped receptable in its center. It gives off an aura of contained power." + clockwork_desc = "A dormant receptable that, when powered with a soul vessel, will become a powerful construct." + icon_state = "anime_fragment" + mobtype = /mob/living/simple_animal/hostile/clockwork/fragment + spawn_message = " whirs and rises from the ground on a flickering jet of reddish fire." diff --git a/code/game/gamemodes/clock_cult/clock_structures/clockwork_obelisk.dm b/code/game/gamemodes/clock_cult/clock_structures/clockwork_obelisk.dm new file mode 100644 index 0000000..28934bb --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_structures/clockwork_obelisk.dm @@ -0,0 +1,69 @@ +//Clockwork Obelisk: Can broadcast a message at a small power cost or outright open a spatial gateway at a massive power cost. +/obj/structure/destructible/clockwork/powered/clockwork_obelisk + name = "clockwork obelisk" + desc = "A large brass obelisk hanging in midair." + clockwork_desc = "A powerful obelisk that can send a message to all servants or open a gateway to a target servant or clockwork obelisk." + icon_state = "obelisk_inactive" + active_icon = "obelisk" + inactive_icon = "obelisk_inactive" + construction_value = 20 + max_integrity = 150 + obj_integrity = 150 + break_message = "The obelisk falls to the ground, undamaged!" + debris = list(/obj/item/clockwork/alloy_shards/small = 3, \ + /obj/item/clockwork/component/hierophant_ansible/obelisk = 1) + var/hierophant_cost = MIN_CLOCKCULT_POWER //how much it costs to broadcast with large text + var/gateway_cost = 2000 //how much it costs to open a gateway + var/gateway_active = FALSE + +/obj/structure/destructible/clockwork/powered/clockwork_obelisk/New() + ..() + toggle(1) + +/obj/structure/destructible/clockwork/powered/clockwork_obelisk/examine(mob/user) + ..() + if(is_servant_of_ratvar(user) || isobserver(user)) + user << "It requires [hierophant_cost]W to broadcast over the Hierophant Network, and [gateway_cost]W to open a Spatial Gateway." + +/obj/structure/destructible/clockwork/powered/clockwork_obelisk/process() + if(locate(/obj/effect/clockwork/spatial_gateway) in loc) + icon_state = active_icon + density = 0 + gateway_active = TRUE + else + icon_state = inactive_icon + density = 1 + gateway_active = FALSE + +/obj/structure/destructible/clockwork/powered/clockwork_obelisk/attack_hand(mob/living/user) + if(!is_servant_of_ratvar(user) || !total_accessable_power() >= hierophant_cost) + user << "You place your hand on the obelisk, but it doesn't react." + return + var/choice = alert(user,"You place your hand on the obelisk...",,"Hierophant Broadcast","Spatial Gateway","Cancel") + switch(choice) + if("Hierophant Broadcast") + if(gateway_active) + user << "The obelisk is sustaining a gateway and cannot broadcast!" + return + var/input = stripped_input(usr, "Please choose a message to send over the Hierophant Network.", "Hierophant Broadcast", "") + if(!input || !user.canUseTopic(src, BE_CLOSE)) + return + if(gateway_active) + user << "The obelisk is sustaining a gateway and cannot broadcast!" + return + if(!try_use_power(hierophant_cost)) + user << "The obelisk lacks the power to broadcast!" + return + clockwork_say(user, text2ratvar("Hierophant Broadcast, activate!")) + titled_hierophant_message(user, input, "big_brass", "large_brass") + if("Spatial Gateway") + if(gateway_active) + user << "The obelisk is already sustaining a gateway!" + return + if(!try_use_power(gateway_cost)) + user << "The obelisk lacks the power to open a gateway!" + return + if(procure_gateway(user, 100, 5, 1) && !gateway_active) + clockwork_say(user, text2ratvar("Spatial Gateway, activate!")) + else + return_power(gateway_cost) diff --git a/code/game/gamemodes/clock_cult/clock_structures/interdiction_lens.dm b/code/game/gamemodes/clock_cult/clock_structures/interdiction_lens.dm new file mode 100644 index 0000000..1c0cac1 --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_structures/interdiction_lens.dm @@ -0,0 +1,97 @@ +//Interdiction Lens: A powerful artifact that constantly disrupts electronics and drains power but, if it fails to find something to disrupt, turns off. +/obj/structure/destructible/clockwork/powered/interdiction_lens + name = "interdiction lens" + desc = "An ominous, double-pronged brass totem. There's a strange gemstone clasped between the pincers." + clockwork_desc = "A powerful totem that constantly drains nearby electronics and funnels the power drained into nearby Sigils of Transmission or the area's APC." + icon_state = "interdiction_lens" + construction_value = 25 + active_icon = "interdiction_lens_active" + inactive_icon = "interdiction_lens" + break_message = "The lens flares a blinding violet before shattering!" + break_sound = 'sound/effects/Glassbr3.ogg' + var/recharging = 0 //world.time when the lens was last used + var/recharge_time = 1200 //if it drains no power and affects no objects, it turns off for two minutes + var/disabled = FALSE //if it's actually usable + var/interdiction_range = 14 //how large an area it drains and disables in + +/obj/structure/destructible/clockwork/powered/interdiction_lens/examine(mob/user) + ..() + user << "Its gemstone [recharging > world.time ? "has been breached by writhing tendrils of blackness that cover the totem" \ + : "vibrates in place and thrums with power"]." + if(is_servant_of_ratvar(user) || isobserver(user)) + user << "If it fails to drain any electronics, it will disable itself for [round(recharge_time/600, 1)] minutes." + +/obj/structure/destructible/clockwork/powered/interdiction_lens/toggle(fast_process, mob/living/user) + ..() + if(active) + SetLuminosity(4,2) + else + SetLuminosity(0) + +/obj/structure/destructible/clockwork/powered/interdiction_lens/attack_hand(mob/living/user) + if(user.canUseTopic(src, BE_CLOSE)) + if(disabled) + user << "As you place your hand on the gemstone, cold tendrils of black matter crawl up your arm. You quickly pull back." + return 0 + toggle(0, user) + +/obj/structure/destructible/clockwork/powered/interdiction_lens/process() + . = ..() + if(recharging > world.time) + return + if(disabled) + visible_message("The writhing tendrils return to the gemstone, which begins to glow with power!") + flick("interdiction_lens_recharged", src) + disabled = FALSE + toggle(0) + else + var/successfulprocess = FALSE + var/power_drained = 0 + var/list/atoms_to_test = list() + for(var/A in spiral_range_turfs(interdiction_range, src)) + var/turf/T = A + for(var/M in T) + atoms_to_test |= M + + CHECK_TICK + + for(var/M in atoms_to_test) + var/atom/movable/A = M + if(!A || qdeleted(A) || A == target_apc) + continue + power_drained += A.power_drain(TRUE) + + if(istype(A, /obj/machinery/camera)) + var/obj/machinery/camera/C = A + if(C.isEmpProof() || !C.status) + continue + successfulprocess = TRUE + if(C.emped) + continue + C.emp_act(1) + else if(istype(A, /obj/item/device/radio)) + var/obj/item/device/radio/O = A + successfulprocess = TRUE + if(O.emped || !O.on) + continue + O.emp_act(1) + else if((isliving(A) && !is_servant_of_ratvar(A)) || istype(A, /obj/structure/closet) || istype(A, /obj/item/weapon/storage)) //other things may have radios in them but we don't care + for(var/obj/item/device/radio/O in A.GetAllContents()) + successfulprocess = TRUE + if(O.emped || !O.on) + continue + O.emp_act(1) + + CHECK_TICK + + if(power_drained && power_drained >= MIN_CLOCKCULT_POWER && return_power(power_drained)) + successfulprocess = TRUE + playsound(src, 'sound/items/PSHOOM.ogg', 50, 1, interdiction_range-7, 1) + + if(!successfulprocess) + visible_message("The gemstone suddenly turns horribly dark, writhing tendrils covering it!") + recharging = world.time + recharge_time + flick("interdiction_lens_discharged", src) + icon_state = "interdiction_lens_inactive" + SetLuminosity(2,1) + disabled = TRUE diff --git a/code/game/gamemodes/clock_cult/clock_structures/mania_motor.dm b/code/game/gamemodes/clock_cult/clock_structures/mania_motor.dm new file mode 100644 index 0000000..ba004ac --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_structures/mania_motor.dm @@ -0,0 +1,135 @@ +//Mania Motor: A pair of antenna that, while active, cause braindamage and hallucinations in nearby human mobs. +/obj/structure/destructible/clockwork/powered/mania_motor + name = "mania motor" + desc = "A pair of antenna with what appear to be sockets around the base. It reminds you of an antlion." + clockwork_desc = "A transmitter that allows Sevtug to whisper into the minds of nearby non-servants, causing hallucinations and brain damage as long as it remains powered." + icon_state = "mania_motor_inactive" + active_icon = "mania_motor" + inactive_icon = "mania_motor_inactive" + construction_value = 20 + max_integrity = 80 + obj_integrity = 80 + break_message = "The antenna break off, leaving a pile of shards!" + debris = list(/obj/item/clockwork/alloy_shards/large = 1, \ + /obj/item/clockwork/alloy_shards/small = 3, \ + /obj/item/clockwork/component/guvax_capacitor/antennae = 1) + var/mania_cost = 200 + var/convert_attempt_cost = 200 + var/convert_cost = 200 + + var/mania_messages = list("\"Go nuts.\"", "\"Take a crack at crazy.\"", "\"Make a bid for insanity.\"", "\"Get kooky.\"", "\"Move towards mania.\"", "\"Become bewildered.\"", "\"Wax wild.\"", \ + "\"Go round the bend.\"", "\"Land in lunacy.\"", "\"Try dementia.\"", "\"Strive to get a screw loose.\"") + var/compel_messages = list("\"Come closer.\"", "\"Approach the transmitter.\"", "\"Touch the antennae.\"", "\"I always have to deal with idiots. Move towards the mania motor.\"", \ + "\"Advance forward and place your head between the antennae - that's all it's good for.\"", "\"If you were smarter, you'd be over here already.\"", "\"Move FORWARD, you fool.\"") + var/convert_messages = list("\"You won't do. Go to sleep while I tell these nitwits how to convert you.\"", "\"You are insufficient. I must instruct these idiots in the art of conversion.\"", \ + "\"Oh of course, someone we can't convert. These servants are fools.\"", "\"How hard is it to use a Sigil, anyway? All it takes is dragging someone onto it.\"", \ + "\"How do they fail to use a Sigil of Accession, anyway?\"", "\"Why is it that all servants are this inept?\"", "\"It's quite likely you'll be stuck here for a while.\"") + var/close_messages = list("\"Well, you can't reach the motor from THERE, you moron.\"", "\"Interesting location. I'd prefer if you went somewhere you could ACTUALLY TOUCH THE ANTENNAE!\"", \ + "\"Amazing. You somehow managed to wedge yourself somewhere you can't actually reach the motor from.\"", "\"Such a show of idiocy is unparalleled. Perhaps I should put you on display?\"", \ + "\"Did you do this on purpose? I can't imagine you doing so accidentally. Oh, wait, I can.\"", "\"How is it that such smart creatures can still do something AS STUPID AS THIS!\"") + + +/obj/structure/destructible/clockwork/powered/mania_motor/examine(mob/user) + ..() + if(is_servant_of_ratvar(user) || isobserver(user)) + user << "It requires [mania_cost]W to run, and [convert_attempt_cost + convert_cost]W to convert humans adjecent to it." + +/obj/structure/destructible/clockwork/powered/mania_motor/process() + if(try_use_power(mania_cost)) + var/turf/T = get_turf(src) + var/hum = get_sfx('sound/effects/screech.ogg') //like playsound, same sound for everyone affected + for(var/mob/living/carbon/human/H in view(1, src)) + if(is_servant_of_ratvar(H)) + continue + if(H.Adjacent(src) && try_use_power(convert_attempt_cost)) + if(is_eligible_servant(H) && try_use_power(convert_cost)) + H << "\"[text2ratvar("You are mine and his, now.")]\"" + H.playsound_local(T, hum, 80, 1) + add_servant_of_ratvar(H) + else if(!H.stat) + if(H.getBrainLoss() >= 100) + H.Paralyse(5) + H << "[text2ratvar(pick(convert_messages))]" + else + H.adjustBrainLoss(100) + H.visible_message("[H] reaches out and touches [src].", "You touch [src] involuntarily.") + else + visible_message("[src]'s antennae fizzle quietly.") + playsound(src, 'sound/effects/light_flicker.ogg', 50, 1) + for(var/mob/living/carbon/human/H in range(10, src)) + if(is_servant_of_ratvar(H)) + if(H.getBrainLoss() || H.hallucination || H.druggy || H.dizziness || H.confused) + H.adjustBrainLoss(-H.getBrainLoss()) //heals servants of braindamage, hallucination, druggy, dizziness, and confusion + H.hallucination = 0 + H.adjust_drugginess(-H.druggy) + H.dizziness = 0 + H.confused = 0 + else if(!H.null_rod_check() && H.stat == CONSCIOUS) + var/distance = get_dist(T, get_turf(H)) + var/falloff_distance = min((110) - distance * 10, 80) + var/sound_distance = falloff_distance * 0.5 + var/targetbrainloss = H.getBrainLoss() + if(distance >= 4 && prob(falloff_distance * 0.5)) + H << "[text2ratvar(pick(mania_messages))]" + H.playsound_local(T, hum, sound_distance, 1) + switch(distance) + if(2 to 3) + if(prob(falloff_distance * 0.5)) + if(prob(falloff_distance)) + H << "[text2ratvar(pick(mania_messages))]" + else + H << "[text2ratvar(pick(compel_messages))]" + if(targetbrainloss <= 50) + H.adjustBrainLoss(50 - targetbrainloss) //got too close had brain eaten + H.adjust_drugginess(Clamp(7, 0, 100 - H.druggy)) + H.hallucination = min(H.hallucination + 7, 100) + H.dizziness = min(H.dizziness + 3, 45) + H.confused = min(H.confused + 3, 45) + if(4 to 5) + if(targetbrainloss <= 50) + H.adjustBrainLoss(1) + H.adjust_drugginess(Clamp(5, 0, 80 - H.druggy)) + H.hallucination = min(H.hallucination + 5, 80) + H.dizziness = min(H.dizziness + 2, 30) + H.confused = min(H.confused + 2, 30) + if(6 to 7) + if(targetbrainloss <= 30) + H.adjustBrainLoss(1) + H.adjust_drugginess(Clamp(2, 0, 60 - H.druggy)) + H.hallucination = min(H.hallucination + 2, 60) + H.dizziness = min(H.dizziness + 2, 15) + H.confused = min(H.confused + 2, 15) + if(8 to 9) + if(targetbrainloss <= 10) + H.adjustBrainLoss(1) + H.adjust_drugginess(Clamp(2, 0, 40 - H.druggy)) + H.hallucination = min(H.hallucination + 2, 40) + if(10 to INFINITY) + H.adjust_drugginess(Clamp(2, 0, 20 - H.druggy)) + H.hallucination = min(H.hallucination + 2, 20) + else //if it's a distance of 1 and they can't see it/aren't adjacent or they're on top of it(how'd they get on top of it and still trigger this???) + if(prob(falloff_distance * 0.5)) + if(prob(falloff_distance)) + H << "[text2ratvar(pick(compel_messages))]" + else if(prob(falloff_distance * 0.5)) + H << "[text2ratvar(pick(close_messages))]" + else + H << "[text2ratvar(pick(mania_messages))]" + if(targetbrainloss <= 99) + H.adjustBrainLoss(99 - targetbrainloss) + H.adjust_drugginess(Clamp(10, 0, 150 - H.druggy)) + H.hallucination = min(H.hallucination + 10, 150) + H.dizziness = min(H.dizziness + 5, 60) + H.confused = min(H.confused + 5, 60) + + else + visible_message("[src] hums loudly, then the sockets at its base fall dark!") + playsound(src, 'sound/effects/screech.ogg', 40, 1) + toggle(0) + +/obj/structure/destructible/clockwork/powered/mania_motor/attack_hand(mob/living/user) + if(user.canUseTopic(src, BE_CLOSE) && is_servant_of_ratvar(user)) + if(!total_accessable_power() >= mania_cost) + user << "[src] needs more power to function!" + return 0 + toggle(0, user) diff --git a/code/game/gamemodes/clock_cult/clock_structures/mending_motor.dm b/code/game/gamemodes/clock_cult/clock_structures/mending_motor.dm new file mode 100644 index 0000000..ab35bf4 --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_structures/mending_motor.dm @@ -0,0 +1,105 @@ +//Mending Motor: A prism that consumes replicant alloy or power to repair nearby mechanical servants at a quick rate. +/obj/structure/destructible/clockwork/powered/mending_motor + name = "mending motor" + desc = "A dark onyx prism, held in midair by spiraling tendrils of stone." + clockwork_desc = "A powerful prism that rapidly repairs nearby mechanical servants and clockwork structures." + icon_state = "mending_motor_inactive" + active_icon = "mending_motor" + inactive_icon = "mending_motor_inactive" + construction_value = 20 + max_integrity = 125 + obj_integrity = 125 + break_message = "The prism collapses with a heavy thud!" + debris = list(/obj/item/clockwork/alloy_shards/small = 5, \ + /obj/item/clockwork/alloy_shards/medium = 1, \ + /obj/item/clockwork/alloy_shards/large = 1, \ + /obj/item/clockwork/component/vanguard_cogwheel = 1) + var/stored_alloy = 0 + var/max_alloy = REPLICANT_ALLOY_POWER * 10 + var/mob_cost = 200 + var/structure_cost = 250 + var/cyborg_cost = 300 + +/obj/structure/destructible/clockwork/powered/mending_motor/prefilled + stored_alloy = REPLICANT_ALLOY_POWER //starts with 1 replicant alloy's worth of power + +/obj/structure/destructible/clockwork/powered/mending_motor/total_accessable_power() + . = ..() + if(. != INFINITY) + . += accessable_alloy_power() + +/obj/structure/destructible/clockwork/powered/mending_motor/proc/accessable_alloy_power() + return stored_alloy + +/obj/structure/destructible/clockwork/powered/mending_motor/use_power(amount) + var/alloypower = accessable_alloy_power() + while(alloypower >= MIN_CLOCKCULT_POWER && amount >= MIN_CLOCKCULT_POWER) + stored_alloy -= MIN_CLOCKCULT_POWER + alloypower -= MIN_CLOCKCULT_POWER + amount -= MIN_CLOCKCULT_POWER + return ..() + +/obj/structure/destructible/clockwork/powered/mending_motor/examine(mob/user) + ..() + if(is_servant_of_ratvar(user) || isobserver(user)) + user << "It contains [stored_alloy*CLOCKCULT_POWER_TO_ALLOY_MULTIPLIER]/[max_alloy*CLOCKCULT_POWER_TO_ALLOY_MULTIPLIER] units of liquified alloy, \ + which is equivalent to [stored_alloy]W/[max_alloy]W of power." + user << "It requires [mob_cost]W to heal clockwork mobs, [structure_cost]W for clockwork structures, and [cyborg_cost]W for cyborgs." + +/obj/structure/destructible/clockwork/powered/mending_motor/process() + if(..() < mob_cost) + visible_message("[src] emits an airy chuckling sound and falls dark!") + toggle() + return + for(var/atom/movable/M in range(5, src)) + if(isclockmob(M) || istype(M, /mob/living/simple_animal/drone/cogscarab)) + var/mob/living/simple_animal/hostile/clockwork/W = M + var/fatigued = FALSE + if(istype(M, /mob/living/simple_animal/hostile/clockwork/marauder)) + var/mob/living/simple_animal/hostile/clockwork/marauder/E = M + if(E.fatigue) + fatigued = TRUE + if((!fatigued && W.health == W.maxHealth) || W.stat) + continue + if(!try_use_power(mob_cost)) + break + W.adjustHealth(-20) + else if(istype(M, /obj/structure/destructible/clockwork)) + var/obj/structure/destructible/clockwork/C = M + if(C.obj_integrity == C.max_integrity) + continue + if(!try_use_power(structure_cost)) + break + C.obj_integrity = min(C.obj_integrity + 20, C.max_integrity) + else if(issilicon(M)) + var/mob/living/silicon/S = M + if(S.health == S.maxHealth || S.stat == DEAD || !is_servant_of_ratvar(S)) + continue + if(!try_use_power(cyborg_cost)) + break + S.adjustBruteLoss(-20) + S.adjustFireLoss(-10) + return 1 + +/obj/structure/destructible/clockwork/powered/mending_motor/attack_hand(mob/living/user) + if(user.canUseTopic(src, BE_CLOSE)) + if(total_accessable_power() < mob_cost) + user << "[src] needs more power or replicant alloy to function!" + return 0 + toggle(0, user) + +/obj/structure/destructible/clockwork/powered/mending_motor/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/clockwork/component/replicant_alloy) && is_servant_of_ratvar(user)) + if(stored_alloy + REPLICANT_ALLOY_POWER > max_alloy) + user << "[src] is too full to accept any more alloy!" + return 0 + playsound(user, 'sound/machines/click.ogg', 50, 1) + clockwork_say(user, text2ratvar("Transmute into fuel."), TRUE) + user << "You force [I] to liquify and pour it into [src]'s compartments. \ + It now contains [stored_alloy*CLOCKCULT_POWER_TO_ALLOY_MULTIPLIER]/[max_alloy*CLOCKCULT_POWER_TO_ALLOY_MULTIPLIER] units of liquified alloy." + stored_alloy = stored_alloy + REPLICANT_ALLOY_POWER + user.drop_item() + qdel(I) + return 1 + else + return ..() diff --git a/code/game/gamemodes/clock_cult/clock_structures/ocular_warden.dm b/code/game/gamemodes/clock_cult/clock_structures/ocular_warden.dm new file mode 100644 index 0000000..da8f6f5 --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_structures/ocular_warden.dm @@ -0,0 +1,90 @@ +//Ocular warden: Low-damage, low-range turret. Deals constant damage to whoever it makes eye contact with. +/obj/structure/destructible/clockwork/ocular_warden + name = "ocular warden" + desc = "A large brass eye with tendrils trailing below it and a wide red iris." + clockwork_desc = "A fragile turret that will deal sustained damage to any non-faithful it sees." + icon_state = "ocular_warden" + obj_integrity = 25 + max_integrity = 25 + construction_value = 15 + layer = HIGH_OBJ_LAYER + break_message = "The warden's eye gives a glare of utter hate before falling dark!" + debris = list(/obj/item/clockwork/component/belligerent_eye/blind_eye = 1) + resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF + var/damage_per_tick = 2.5 + var/sight_range = 3 + var/atom/movable/target + var/list/idle_messages = list(" sulkily glares around.", " lazily drifts from side to side.", " looks around for something to burn.", " slowly turns in circles.") + +/obj/structure/destructible/clockwork/ocular_warden/New() + ..() + START_PROCESSING(SSfastprocess, src) + +/obj/structure/destructible/clockwork/ocular_warden/Destroy() + STOP_PROCESSING(SSfastprocess, src) + return ..() + +/obj/structure/destructible/clockwork/ocular_warden/examine(mob/user) + ..() + user << "[target ? "It's fixated on [target]!" : "Its gaze is wandering aimlessly."]" + +/obj/structure/destructible/clockwork/ocular_warden/process() + var/list/validtargets = acquire_nearby_targets() + if(ratvar_awakens && (damage_per_tick == initial(damage_per_tick) || sight_range == initial(sight_range))) //Massive buff if Ratvar has returned + damage_per_tick = 10 + sight_range = 5 + if(target) + if(!(target in validtargets)) + lose_target() + else + if(isliving(target)) + var/mob/living/L = target + if(!L.null_rod_check()) + L.adjustFireLoss(!iscultist(L) ? damage_per_tick : damage_per_tick * 2) //Nar-Sian cultists take additional damage + if(ratvar_awakens && L) + L.adjust_fire_stacks(damage_per_tick) + L.IgniteMob() + else if(istype(target,/obj/mecha)) + var/obj/mecha/M = target + M.take_damage(damage_per_tick, BURN, "melee", 1, get_dir(src, M)) //does about half of standard damage to mechs * whatever their fire armor is + + setDir(get_dir(get_turf(src), get_turf(target))) + if(!target) + if(validtargets.len) + target = pick(validtargets) + visible_message("[src] swivels to face [target]!") + if(isliving(target)) + var/mob/living/L = target + L << "\"I SEE YOU!\"\n[src]'s gaze [ratvar_awakens ? "melts you alive" : "burns you"]!" + else if(istype(target,/obj/mecha)) + var/obj/mecha/M = target + M.occupant << "\"I SEE YOU!\"" //heeeellooooooo, person in mech. + else if(prob(0.5)) //Extremely low chance because of how fast the subsystem it uses processes + if(prob(50)) + visible_message("[src][pick(idle_messages)]") + else + setDir(pick(cardinal))//Random rotation + +/obj/structure/destructible/clockwork/ocular_warden/proc/acquire_nearby_targets() + . = list() + for(var/mob/living/L in viewers(sight_range, src)) //Doesn't attack the blind + var/obj/item/weapon/storage/book/bible/B = L.bible_check() + if(!is_servant_of_ratvar(L) && !L.stat && L.mind && !(L.disabilities & BLIND) && !L.null_rod_check() && !B) + . += L + else if(B) + if(!(B.resistance_flags & ON_FIRE)) + L << "Your [B.name] bursts into flames!" + for(var/obj/item/weapon/storage/book/bible/BI in L.GetAllContents()) + if(!(BI.resistance_flags & ON_FIRE)) + BI.fire_act() + for(var/N in mechas_list) + var/obj/mecha/M = N + if(get_dist(M, src) <= sight_range && M.occupant && !is_servant_of_ratvar(M.occupant) && (M in view(sight_range, src))) + . += M + +/obj/structure/destructible/clockwork/ocular_warden/proc/lose_target() + if(!target) + return 0 + target = null + visible_message("[src] settles and seems almost disappointed.") + return 1 diff --git a/code/game/gamemodes/clock_cult/clock_structures/ratvar_the_clockwork_justicar.dm b/code/game/gamemodes/clock_cult/clock_structures/ratvar_the_clockwork_justicar.dm new file mode 100644 index 0000000..13d5203 --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_structures/ratvar_the_clockwork_justicar.dm @@ -0,0 +1,143 @@ +//Ratvar himself. Impossible to damage by most standard means, He will dominate the station and all upon it. +/obj/structure/destructible/clockwork/massive/ratvar + name = "Ratvar, the Clockwork Justiciar" + desc = "What is what is what are what real what is all a lie all a lie it's all a lie why how can what is" + clockwork_desc = "Ratvar, the Clockwork Justiciar, your master eternal." + icon = 'icons/effects/512x512.dmi' + icon_state = "ratvar" + pixel_x = -235 + pixel_y = -248 + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF + appearance_flags = 0 + var/atom/prey //Whatever Ratvar is chasing + var/clashing = FALSE //If Ratvar is FUCKING FIGHTING WITH NAR-SIE + var/proselytize_range = 10 + +/obj/structure/destructible/clockwork/massive/ratvar/New() + ..() + ratvar_awakens++ + for(var/obj/item/clockwork/ratvarian_spear/R in all_clockwork_objects) + R.update_force() + START_PROCESSING(SSobj, src) + world << "\"[text2ratvar("ONCE AGAIN MY LIGHT SHALL SHINE ACROSS THIS PATHETIC REALM")]!!\"" + world << 'sound/effects/ratvar_reveal.ogg' + var/image/alert_overlay = image('icons/effects/clockwork_effects.dmi', "ratvar_alert") + var/area/A = get_area(src) + notify_ghosts("The Justiciar's light calls to you! Reach out to Ratvar in [A.name] to be granted a shell to spread his glory!", null, source = src, alert_overlay = alert_overlay) + addtimer(SSshuttle.emergency, "request", 50, FALSE, null, 0.1) + +/obj/structure/destructible/clockwork/massive/ratvar/Destroy() + ratvar_awakens-- + for(var/obj/item/clockwork/ratvarian_spear/R in all_clockwork_objects) + R.update_force() + STOP_PROCESSING(SSobj, src) + world << "\"NO! I will not... be... banished... again...\"" + return ..() + +/obj/structure/destructible/clockwork/massive/ratvar/attack_ghost(mob/dead/observer/O) + var/alertresult = alert(O, "Embrace the Justiciar's light? You can no longer be cloned!",,"Yes", "No") + if(alertresult == "No" || !O) + return 0 + var/mob/living/simple_animal/drone/cogscarab/ratvar/R = new/mob/living/simple_animal/drone/cogscarab/ratvar(get_turf(src)) + R.visible_message("[R] forms, and its eyes blink open, glowing bright red!") + R.key = O.key + +/obj/structure/destructible/clockwork/massive/ratvar/Bump(atom/A) + var/turf/T = get_turf(A) + forceMove(T) + T.ratvar_act() + +/obj/structure/destructible/clockwork/massive/ratvar/Process_Spacemove() + return clashing + +/obj/structure/destructible/clockwork/massive/ratvar/process() + if(clashing) //I'm a bit occupied right now, thanks + return + for(var/I in circlerangeturfs(src, proselytize_range)) + var/turf/T = I + T.ratvar_act() + for(var/I in circleviewturfs(src, round(proselytize_range * 0.5))) + var/turf/T = I + T.ratvar_act(1) + var/dir_to_step_in = pick(cardinal) + if(!prey) + for(var/obj/singularity/narsie/N in poi_list) + if(N.z == z) + prey = N + break + if(!prey) //In case there's a Nar-Sie + var/list/meals = list() + for(var/mob/living/L in living_mob_list) + if(L.z == z && !is_servant_of_ratvar(L) && L.mind) + meals += L + if(meals.len) + prey = pick(meals) + prey << "\"You will do.\"\n\ + Something very large and very malevolent begins lumbering its way towards you..." + prey << 'sound/effects/ratvar_reveal.ogg' + else + if(prob(10) || is_servant_of_ratvar(prey) || prey.z != z) + prey << "\"How dull. Leave me.\"\n\ + You feel tremendous relief as a set of horrible eyes loses sight of you..." + prey = null + else + dir_to_step_in = get_dir(src, prey) //Unlike Nar-Sie, Ratvar ruthlessly chases down his target + step(src, dir_to_step_in) + +/obj/structure/destructible/clockwork/massive/ratvar/narsie_act() + if(clashing) + return FALSE + clashing = TRUE + world << "\"[pick("BLOOD GOD!!!", "NAR-SIE!!!", "AT LAST, YOUR TIME HAS COME!")]\"" + world << "\"Ratvar?! How?!\"" + for(var/obj/singularity/narsie/N in range(15, src)) + if(N.clashing) + continue + N.clashing = TRUE + clash_of_the_titans(N) //IT'S TIME FOR THE BATTLE OF THE AGES + break + return TRUE + +//Put me in Reebe, will you? Ratvar has found and is going to fucking murder Nar-Sie +/obj/structure/destructible/clockwork/massive/ratvar/proc/clash_of_the_titans(obj/singularity/narsie/narsie) + var/winner = "Undeclared" + var/base_victory_chance = 1 + while(src && narsie) + world << 'sound/magic/clockwork/ratvar_attack.ogg' + sleep(5.2) + for(var/mob/M in mob_list) + flash_color(M, flash_color="#966400", flash_time=1) + shake_camera(M, 4, 3) + var/ratvar_chance = min(ticker.mode.servants_of_ratvar.len, 50) + var/narsie_chance = ticker.mode.cult.len + for(var/mob/living/simple_animal/hostile/construct/harvester/C in player_list) + narsie_chance++ + ratvar_chance = rand(base_victory_chance, ratvar_chance) + narsie_chance = rand(base_victory_chance, min(narsie_chance, 50)) + if(ratvar_chance > narsie_chance) + winner = "Ratvar" + break + sleep(rand(2,5)) + world << 'sound/magic/clockwork/narsie_attack.ogg' + sleep(7.4) + for(var/mob/M in mob_list) + flash_color(M, flash_color="#C80000", flash_time=1) + shake_camera(M, 4, 3) + if(narsie_chance > ratvar_chance) + winner = "Nar-Sie" + break + base_victory_chance *= 2 //The clash has a higher chance of resolving each time both gods attack one another + switch(winner) + if("Ratvar") + world << "\"[pick("DIE! DIE! DIE!", "FILTH!!!", "SUFFER!!!", text2ratvar("ROT FOR CENTURIES AS I HAVE!!"))]\"" //nar-sie get out + world << "\"[pick("Nooooo...", "Not die. To y-", "Die. Ratv-", "Sas tyen re-")]\"" + world << 'sound/magic/clockwork/anima_fragment_attack.ogg' + world << 'sound/magic/demon_dies.ogg' + clashing = FALSE + qdel(narsie) + if("Nar-Sie") + world << "\"[pick("Ha.", "Ra'sha fonn dest.", "You fool. To come here.")]\"" //Broken English + world << 'sound/magic/demon_attack1.ogg' + world << 'sound/magic/clockwork/anima_fragment_death.ogg' + narsie.clashing = FALSE + qdel(src) diff --git a/code/game/gamemodes/clock_cult/clock_structures/tinkerers_cache.dm b/code/game/gamemodes/clock_cult/clock_structures/tinkerers_cache.dm new file mode 100644 index 0000000..da026d0 --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_structures/tinkerers_cache.dm @@ -0,0 +1,88 @@ +//Tinkerer's cache: Stores components for later use. +/obj/structure/destructible/clockwork/cache + name = "tinkerer's cache" + desc = "A large brass spire with a flaming hole in its center." + clockwork_desc = "A brass container capable of storing a large amount of components.\n\ + Shares components with all other caches and will gradually generate components if near a Clockwork Wall." + icon_state = "tinkerers_cache" + construction_value = 10 + break_message = "The cache's fire winks out before it falls in on itself!" + max_integrity = 80 + obj_integrity = 80 + var/wall_generation_cooldown + var/turf/closed/wall/clockwork/linkedwall //if we've got a linked wall and are producing + +/obj/structure/destructible/clockwork/cache/New() + ..() + START_PROCESSING(SSobj, src) + clockwork_caches++ + SetLuminosity(2,1) + for(var/i in all_clockwork_mobs) + cache_check(i) + +/obj/structure/destructible/clockwork/cache/Destroy() + clockwork_caches-- + STOP_PROCESSING(SSobj, src) + if(linkedwall) + linkedwall.linkedcache = null + linkedwall = null + for(var/i in all_clockwork_mobs) + cache_check(i) + return ..() + +/obj/structure/destructible/clockwork/cache/process() + for(var/turf/closed/wall/clockwork/C in range(4, src)) + if(!C.linkedcache && !linkedwall) + C.linkedcache = src + linkedwall = C + wall_generation_cooldown = world.time + CACHE_PRODUCTION_TIME + visible_message("[src] starts to whirr in the presence of [C]...") + break + if(linkedwall && wall_generation_cooldown <= world.time) + wall_generation_cooldown = world.time + CACHE_PRODUCTION_TIME + var/component_to_generate = get_weighted_component_id() + PoolOrNew(get_component_animation_type(component_to_generate), get_turf(src)) + clockwork_component_cache[component_to_generate]++ + playsound(linkedwall, 'sound/magic/clockwork/fellowship_armory.ogg', rand(15, 20), 1, -3, 1, 1) + visible_message("Something cl[pick("ank", "ink", "unk", "ang")]s around inside of [src]...") + +/obj/structure/destructible/clockwork/cache/attackby(obj/item/I, mob/living/user, params) + if(!is_servant_of_ratvar(user)) + return ..() + if(istype(I, /obj/item/clockwork/component)) + var/obj/item/clockwork/component/C = I + clockwork_component_cache[C.component_id]++ + user << "You add [C] to [src]." + user.drop_item() + qdel(C) + return 1 + else if(istype(I, /obj/item/clockwork/slab)) + var/obj/item/clockwork/slab/S = I + for(var/i in S.stored_components) + clockwork_component_cache[i] += S.stored_components[i] + S.stored_components[i] = 0 + user.visible_message("[user] empties [S] into [src].", "You offload your slab's components into [src].") + return 1 + else + return ..() + +/obj/structure/destructible/clockwork/cache/attack_hand(mob/user) + if(!is_servant_of_ratvar(user)) + return 0 + if(!clockwork_component_cache[REPLICANT_ALLOY]) + user << "There is no Replicant Alloy in the global component cache!" + return 0 + clockwork_component_cache[REPLICANT_ALLOY]-- + var/obj/item/clockwork/component/replicant_alloy/A = new(get_turf(src)) + user.visible_message("[user] withdraws [A] from [src].", "You withdraw [A] from [src].") + user.put_in_hands(A) + return 1 + +/obj/structure/destructible/clockwork/cache/examine(mob/user) + ..() + if(is_servant_of_ratvar(user) || isobserver(user)) + if(linkedwall) + user << "It is linked and will generate components!" + user << "Stored components:" + for(var/i in clockwork_component_cache) + user << "[get_component_name(i)][i != REPLICANT_ALLOY ? "s":""]: [clockwork_component_cache[i]]" diff --git a/code/game/gamemodes/clock_cult/clock_structures/tinkerers_daemon.dm b/code/game/gamemodes/clock_cult/clock_structures/tinkerers_daemon.dm new file mode 100644 index 0000000..0634da6 --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_structures/tinkerers_daemon.dm @@ -0,0 +1,131 @@ +//Tinkerer's Daemon: A machine that rapidly produces components at a power cost. +/obj/structure/destructible/clockwork/powered/tinkerers_daemon + name = "tinkerer's daemon" + desc = "A strange machine with three small brass obelisks attached to it." + clockwork_desc = "An efficient machine that can rapidly produce components at a small power cost. It will only function if outnumbered by servants at a rate to 5:1." + icon_state = "tinkerers_daemon" + active_icon = "tinkerers_daemon" + inactive_icon = "tinkerers_daemon" + max_integrity = 100 + obj_integrity = 100 + construction_value = 25 + break_message = "The daemon shatters into millions of pieces!" + debris = list(/obj/item/clockwork/alloy_shards/large = 2, \ + /obj/item/clockwork/alloy_shards/medium = 4, \ + /obj/item/clockwork/alloy_shards/small = 6) + var/image/daemon_glow + var/image/component_glow + var/component_id_to_produce + var/production_time = 0 //last time we produced a component + var/production_cooldown = 120 + +/obj/structure/destructible/clockwork/powered/tinkerers_daemon/New() + ..() + clockwork_daemons++ + +/obj/structure/destructible/clockwork/powered/tinkerers_daemon/Destroy() + clockwork_daemons-- + return ..() + +/obj/structure/destructible/clockwork/powered/tinkerers_daemon/examine(mob/user) + ..() + if(is_servant_of_ratvar(user) || isobserver(user)) + if(active) + if(component_id_to_produce) + user << "It is currently producing [get_component_name(component_id_to_produce)][component_id_to_produce != REPLICANT_ALLOY ? "s":""]." + else + user << "It is currently producing random components." + user << "It will produce a component every [production_cooldown*0.1] seconds and requires at least the following power for each component type:" + for(var/i in clockwork_component_cache) + user << "[get_component_name(i)]: [get_component_cost(i)]W ([clockwork_component_cache[i]] exist[clockwork_component_cache[i] == 1 ? "s" : ""])" + +/obj/structure/destructible/clockwork/powered/tinkerers_daemon/attack_hand(mob/living/user) + if(!is_servant_of_ratvar(user)) + user << "You place your hand on the daemon, but nothing happens." + return + if(active) + toggle(0, user) + else + if(!clockwork_caches) + user << "There are no clockwork caches! Activating this daemon would be a waste of power." + return + var/choice = alert(user,"Activate Daemon...",,"Specific Component","Random Component","Cancel") + switch(choice) + if("Specific Component") + var/list/components = list() + for(var/i in clockwork_component_cache) + components["[get_component_name(i)] ([get_component_cost(i)]W)"] = i + var/input_component = input(user, "Choose a component type.", name) as null|anything in components + component_id_to_produce = components[input_component] + if(!user.canUseTopic(src, BE_CLOSE) || active) + return + if(!component_id_to_produce) + user << "You decide not to select a component and activate the daemon." + return + if(total_accessable_power() < get_component_cost(component_id_to_produce)) + user << "There is too little power to produce this type of component!" + return + toggle(0, user) + if("Random Component") + component_id_to_produce = null + toggle(0, user) + +/obj/structure/destructible/clockwork/powered/tinkerers_daemon/toggle(fast_process, mob/living/user) + . = ..() + if(active) + var/component_color = get_component_color(component_id_to_produce) + if(!daemon_glow) + daemon_glow = new('icons/obj/clockwork_objects.dmi', "tinkerglow") + daemon_glow.color = component_color + add_overlay(daemon_glow) + if(!component_glow) + component_glow = new('icons/obj/clockwork_objects.dmi', "t_[component_id_to_produce ? component_id_to_produce :"random_component"]") + else + component_glow.icon_state = "t_[component_id_to_produce ? component_id_to_produce :"random_component"]" + component_glow.color = component_color + add_overlay(component_glow) + production_time = world.time + production_cooldown //don't immediately produce when turned on afteer being off + else + cut_overlays() + +/obj/structure/destructible/clockwork/powered/tinkerers_daemon/proc/get_component_cost(id) + return max(MIN_CLOCKCULT_POWER, MIN_CLOCKCULT_POWER * (1 + round(clockwork_component_cache[id] * 0.2))) + +/obj/structure/destructible/clockwork/powered/tinkerers_daemon/process() + var/servants = 0 + for(var/mob/living/L in living_mob_list) + if(is_servant_of_ratvar(L)) + servants++ + . = ..() + var/min_power_usable = 0 + if(!component_id_to_produce) + for(var/i in clockwork_component_cache) + if(!min_power_usable) + min_power_usable = get_component_cost(i) + else + min_power_usable = min(min_power_usable, get_component_cost(i)) + else + min_power_usable = get_component_cost(component_id_to_produce) + if(!clockwork_caches || servants * 0.2 < clockwork_daemons || . < min_power_usable) //if we don't have enough to produce the lowest or what we chose to produce, cancel out + visible_message("[src] shuts down!") + toggle() + return + if(production_time <= world.time) + var/component_to_generate = component_id_to_produce + if(!component_to_generate) + component_to_generate = get_weighted_component_id() //more likely to generate components that we have less of + if(!try_use_power(get_component_cost(component_to_generate))) + component_to_generate = null + if(!component_id_to_produce) + for(var/i in clockwork_component_cache) + if(try_use_power(get_component_cost(i))) //if we fail but are producing random, try and get a different component to produce + component_to_generate = i + break + if(component_to_generate) + PoolOrNew(get_component_animation_type(component_to_generate), get_turf(src)) + clockwork_component_cache[component_to_generate]++ + production_time = world.time + production_cooldown //go on cooldown + visible_message("[src] hums as it produces a [get_component_name(component_to_generate)].") + else + visible_message("[src] shuts down!") //we shouldn't actually ever get here, as we should cancel out way before this + toggle() diff --git a/code/game/gamemodes/clock_cult/clock_structures/wall_gear.dm b/code/game/gamemodes/clock_cult/clock_structures/wall_gear.dm new file mode 100644 index 0000000..3e9068b --- /dev/null +++ b/code/game/gamemodes/clock_cult/clock_structures/wall_gear.dm @@ -0,0 +1,58 @@ +//A massive gear, effectively a girder for clocks. +/obj/structure/destructible/clockwork/wall_gear + name = "massive gear" + icon_state = "wall_gear" + climbable = TRUE + max_integrity = 50 + obj_integrity = 50 + layer = BELOW_OBJ_LAYER + construction_value = 3 + desc = "A massive brass gear. You could probably secure or unsecure it with a wrench, or just climb over it." + clockwork_desc = "A massive brass gear. You could probably secure or unsecure it with a wrench, just climb over it, or proselytize it into brass sheets." + break_message = "The gear breaks apart into shards of alloy!" + debris = list(/obj/item/clockwork/alloy_shards/large = 1, \ + /obj/item/clockwork/alloy_shards/medium = 4, \ + /obj/item/clockwork/alloy_shards/small = 2) //slightly more debris than the default, totals 26 alloy + +/obj/structure/destructible/clockwork/wall_gear/displaced + anchored = FALSE + +/obj/structure/destructible/clockwork/wall_gear/examine(mob/user) + ..() + user << "[src] is [anchored ? "":"not "]secured to the floor." + +/obj/structure/destructible/clockwork/wall_gear/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/wrench)) + default_unfasten_wrench(user, I, 10) + return 1 + else if(istype(I, /obj/item/stack/sheet/brass)) + var/obj/item/stack/sheet/brass/W = I + if(W.get_amount() < 1) + user << "You need one brass sheet to do this!" + return + var/turf/T = get_turf(src) + if(iswallturf(T)) + user << "There is already a wall present!" + return + if(!isfloorturf(T)) + user << "A floor must be present to build a [anchored ? "false ":""]wall!" + return + if(locate(/obj/structure/falsewall) in T.contents) + user << "There is already a false wall present!" + return + user << "You start adding [W] to [src]..." + if(do_after(user, 20, target = src)) + var/brass_floor = FALSE + if(istype(T, /turf/open/floor/clockwork)) //if the floor is already brass, costs less to make(conservation of masssssss) + brass_floor = TRUE + if(W.use(2 - brass_floor)) + if(anchored) + T.ChangeTurf(/turf/closed/wall/clockwork) + else + T.ChangeTurf(/turf/open/floor/clockwork) + new /obj/structure/falsewall/brass(T) + qdel(src) + else + user << "You need more brass to make a [anchored ? "false ":""]wall!" + return 1 + return ..() diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm new file mode 100644 index 0000000..c2d3514 --- /dev/null +++ b/code/game/gamemodes/cult/cult.dm @@ -0,0 +1,275 @@ +//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 + +/datum/game_mode + var/list/datum/mind/cult = list() + var/list/cult_objectives = list() + +/proc/iscultist(mob/living/M) + return istype(M) && M.has_antag_datum(/datum/antagonist/cultist, TRUE) + +/proc/is_sacrifice_target(datum/mind/mind) + if(ticker.mode.name == "cult") + var/datum/game_mode/cult/cult_mode = ticker.mode + if(mind == cult_mode.sacrifice_target) + return 1 + return 0 + +/proc/is_convertable_to_cult(mob/living/M) + if(!istype(M)) + return 0 + if(M.mind) + if(ishuman(M) && (M.mind.assigned_role in list("Captain", "Chaplain"))) + return 0 + if(is_sacrifice_target(M.mind)) + return 0 + if(M.mind.enslaved_to && !iscultist(M.mind.enslaved_to)) + return 0 + else + return 0 + if(M.isloyal() || issilicon(M) || isbot(M) || isdrone(M) || is_servant_of_ratvar(M)) + return 0 //can't convert machines, shielded, or ratvar's dogs + return 1 + +/datum/game_mode/cult + name = "cult" + config_tag = "cult" + antag_flag = ROLE_CULTIST + restricted_jobs = list("Chaplain","AI", "Cyborg", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel") + protected_jobs = list() + required_players = 24 + required_enemies = 4 + recommended_enemies = 4 + enemy_minimum_age = 14 + + announce_span = "cult" + announce_text = "Some crew members are trying to start a cult to Nar-Sie!\n\ + Cultists: Carry out Nar-Sie's will.\n\ + Crew: Prevent the cult from expanding and drive it out." + + var/finished = 0 + var/eldergod = 1 //for the summon god objective + + var/acolytes_needed = 10 //for the survive objective + var/acolytes_survived = 0 + + var/datum/mind/sacrifice_target = null//The target to be sacrificed + var/list/cultists_to_cult = list() //the cultists we'll convert + +/datum/game_mode/cult/pre_setup() + cult_objectives += "sacrifice" + cult_objectives += "eldergod" + + if(config.protect_roles_from_antagonist) + restricted_jobs += protected_jobs + + if(config.protect_assistant_from_antagonist) + restricted_jobs += "Assistant" + + //cult scaling goes here + recommended_enemies = 3 + round(num_players()/15) + + + for(var/cultists_number = 1 to recommended_enemies) + if(!antag_candidates.len) + break + var/datum/mind/cultist = pick(antag_candidates) + antag_candidates -= cultist + cultists_to_cult += cultist + cultist.special_role = "Cultist" + cultist.restricted_roles = restricted_jobs + log_game("[cultist.key] (ckey) has been selected as a cultist") + + return (cultists_to_cult.len>=required_enemies) + + +/datum/game_mode/cult/proc/memorize_cult_objectives(datum/mind/cult_mind) + for(var/obj_count = 1,obj_count <= cult_objectives.len,obj_count++) + var/explanation + switch(cult_objectives[obj_count]) + if("survive") + explanation = "Our knowledge must live on. Make sure at least [acolytes_needed] acolytes escape on the shuttle to spread their work on an another station." + if("sacrifice") + if(sacrifice_target) + explanation = "Sacrifice [sacrifice_target.name], the [sacrifice_target.assigned_role] via invoking a Sacrifice rune with them on it and three acolytes around it." + else + explanation = "Free objective." + if("eldergod") + explanation = "Summon Nar-Sie by invoking the rune 'Summon Nar-Sie' with nine acolytes on it. You must do this after sacrificing your target." + cult_mind.current << "Objective #[obj_count]: [explanation]" + cult_mind.memory += "Objective #[obj_count]: [explanation]
    " + +/datum/game_mode/cult/post_setup() + modePlayer += cultists_to_cult + if("sacrifice" in cult_objectives) + var/list/possible_targets = get_unconvertables() + if(!possible_targets.len) + message_admins("Cult Sacrifice: Could not find unconvertable target, checking for convertable target.") + for(var/mob/living/carbon/human/player in player_list) + if(player.mind && !(player.mind in cultists_to_cult)) + possible_targets += player.mind + if(possible_targets.len > 0) + sacrifice_target = pick(possible_targets) + if(!sacrifice_target) + message_admins("Cult Sacrifice: ERROR - Null target chosen!") + else + message_admins("Cult Sacrifice: Could not find unconvertable or convertable target. WELP!") + for(var/datum/mind/cult_mind in cultists_to_cult) + equip_cultist(cult_mind.current) + update_cult_icons_added(cult_mind) + cult_mind.current << "You are a member of the cult!" + add_cultist(cult_mind, 0) + ..() + +/datum/game_mode/proc/equip_cultist(mob/living/carbon/human/mob,tome = 0) + if(!istype(mob)) + return + if (mob.mind) + if (mob.mind.assigned_role == "Clown") + mob << "Your training has allowed you to overcome your clownish nature, allowing you to wield weapons without harming yourself." + mob.dna.remove_mutation(CLOWNMUT) + + if(tome) + . += cult_give_item(/obj/item/weapon/tome, mob) + else + . += cult_give_item(/obj/item/weapon/paper/talisman/supply, mob) + mob << "These will help you start the cult on this station. Use them well, and remember - you are not the only one." + +/datum/game_mode/proc/cult_give_item(obj/item/item_path, mob/living/carbon/human/mob) + var/list/slots = list( + "backpack" = slot_in_backpack, + "left pocket" = slot_l_store, + "right pocket" = slot_r_store + ) + + var/T = new item_path(mob) + var/item_name = initial(item_path.name) + var/where = mob.equip_in_one_of_slots(T, slots) + if(!where) + mob << "Unfortunately, you weren't able to get a [item_name]. This is very bad and you should adminhelp immediately (press F1)." + return 0 + else + mob << "You have a [item_name] in your [where]." + if(where == "backpack") + var/obj/item/weapon/storage/B = mob.back + B.orient2hud(mob) + B.show_to(mob) + return 1 + +/datum/game_mode/proc/add_cultist(datum/mind/cult_mind, stun) //BASE + if (!istype(cult_mind)) + return 0 + if(cult_mind.current.gain_antag_datum(/datum/antagonist/cultist)) + if(stun) + cult_mind.current.Paralyse(5) + return 1 + +/datum/game_mode/proc/remove_cultist(datum/mind/cult_mind, show_message = 1, stun) + if(cult_mind.current) + var/datum/antagonist/cultist/cult_datum = cult_mind.current.has_antag_datum(/datum/antagonist/cultist, TRUE) + if(!cult_datum) + return FALSE + cult_datum.silent_update = show_message + cult_datum.on_remove() + if(stun) + cult_mind.current.Paralyse(5) + return TRUE + +/datum/game_mode/proc/update_cult_icons_added(datum/mind/cult_mind) + var/datum/atom_hud/antag/culthud = huds[ANTAG_HUD_CULT] + culthud.join_hud(cult_mind.current) + set_antag_hud(cult_mind.current, "cult") + +/datum/game_mode/proc/update_cult_icons_removed(datum/mind/cult_mind) + var/datum/atom_hud/antag/culthud = huds[ANTAG_HUD_CULT] + culthud.leave_hud(cult_mind.current) + set_antag_hud(cult_mind.current, null) + +/datum/game_mode/cult/proc/get_unconvertables() + var/list/ucs = list() + for(var/mob/living/carbon/human/player in player_list) + if(player.mind && !is_convertable_to_cult(player) && !(player.mind in cultists_to_cult)) + ucs += player.mind + return ucs + +/datum/game_mode/cult/proc/check_cult_victory() + var/cult_fail = 0 + if(cult_objectives.Find("survive")) + cult_fail += check_survive() //the proc returns 1 if there are not enough cultists on the shuttle, 0 otherwise + if(cult_objectives.Find("eldergod")) + cult_fail += eldergod //1 by default, 0 if the elder god has been summoned at least once + if(cult_objectives.Find("sacrifice")) + if(sacrifice_target && !sacrificed.Find(sacrifice_target)) //if the target has been sacrificed, ignore this step. otherwise, add 1 to cult_fail + cult_fail++ + return cult_fail //if any objectives aren't met, failure + + +/datum/game_mode/cult/proc/check_survive() + var/acolytes_survived = 0 + for(var/datum/mind/cult_mind in cult) + if (cult_mind.current && cult_mind.current.stat != DEAD) + if(cult_mind.current.onCentcom() || cult_mind.current.onSyndieBase()) + acolytes_survived++ + if(acolytes_survived>=acolytes_needed) + return 0 + else + return 1 + + +/datum/game_mode/cult/declare_completion() + + if(!check_cult_victory()) + feedback_set_details("round_end_result","win - cult win") + feedback_set("round_end_result",acolytes_survived) + world << "The cult has succeeded! Nar-sie has snuffed out another torch in the void!" + else + feedback_set_details("round_end_result","loss - staff stopped the cult") + feedback_set("round_end_result",acolytes_survived) + world << "The staff managed to stop the cult! Dark words and heresy are no match for Nanotrasen's finest!" + + var/text = "" + + if(cult_objectives.len) + text += "
    The cultists' objectives were:" + for(var/obj_count=1, obj_count <= cult_objectives.len, obj_count++) + var/explanation + switch(cult_objectives[obj_count]) + if("survive") + if(!check_survive()) + explanation = "Make sure at least [acolytes_needed] acolytes escape on the shuttle. ([acolytes_survived] escaped) Success!" + feedback_add_details("cult_objective","cult_survive|SUCCESS|[acolytes_needed]") + else + explanation = "Make sure at least [acolytes_needed] acolytes escape on the shuttle. ([acolytes_survived] escaped) Fail." + feedback_add_details("cult_objective","cult_survive|FAIL|[acolytes_needed]") + if("sacrifice") + if(sacrifice_target) + if(sacrifice_target in sacrificed) + explanation = "Sacrifice [sacrifice_target.name], the [sacrifice_target.assigned_role]. Success!" + feedback_add_details("cult_objective","cult_sacrifice|SUCCESS") + else if(sacrifice_target && sacrifice_target.current) + explanation = "Sacrifice [sacrifice_target.name], the [sacrifice_target.assigned_role]. Fail." + feedback_add_details("cult_objective","cult_sacrifice|FAIL") + else + explanation = "Sacrifice [sacrifice_target.name], the [sacrifice_target.assigned_role]. Fail (Gibbed)." + feedback_add_details("cult_objective","cult_sacrifice|FAIL|GIBBED") + if("eldergod") + if(!eldergod) + explanation = "Summon Nar-Sie. Success!" + feedback_add_details("cult_objective","cult_narsie|SUCCESS") + else + explanation = "Summon Nar-Sie. Fail." + feedback_add_details("cult_objective","cult_narsie|FAIL") + text += "
    Objective #[obj_count]: [explanation]" + world << text + ..() + return 1 + + +/datum/game_mode/proc/auto_declare_completion_cult() + if( cult.len || (ticker && istype(ticker.mode,/datum/game_mode/cult)) ) + var/text = "
    The cultists were:" + for(var/datum/mind/cultist in cult) + text += printplayer(cultist) + + text += "
    " + + world << text diff --git a/code/game/gamemodes/cult/cult_comms.dm b/code/game/gamemodes/cult/cult_comms.dm new file mode 100644 index 0000000..13f1c4a --- /dev/null +++ b/code/game/gamemodes/cult/cult_comms.dm @@ -0,0 +1,77 @@ + +/datum/action/innate/cultcomm + name = "Communion" + button_icon_state = "cult_comms" + background_icon_state = "bg_demon" + buttontooltipstyle = "cult" + check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUNNED|AB_CHECK_CONSCIOUS + +/datum/action/innate/cultcomm/IsAvailable() + if(!iscultist(owner)) + return 0 + return ..() + +/datum/action/innate/cultcomm/Activate() + var/input = stripped_input(usr, "Please choose a message to tell to the other acolytes.", "Voice of Blood", "") + if(!input || !IsAvailable()) + return + + cultist_commune(usr, input) + return + +/proc/cultist_commune(mob/living/user, message) + if(!message) + return + if(!ishuman(user)) + user.say("O bidai nabora se[pick("'","`")]sma!") + else + user.whisper("O bidai nabora se[pick("'","`")]sma!") + sleep(10) + if(!user) + return + if(!ishuman(user)) + user.say(html_decode(message)) + else + user.whisper(html_decode(message)) + var/my_message = "[(ishuman(user) ? "Acolyte" : "Construct")] [user]: [message]" + for(var/mob/M in mob_list) + if(iscultist(M)) + M << my_message + else if(M in dead_mob_list) + var/link = FOLLOW_LINK(M, user) + M << "[link] [my_message]" + + log_say("[user.real_name]/[user.key] : [message]") + +/mob/living/proc/cult_help() + set category = "Cultist" + set name = "How to Play Cult" + var/text = "" + text += "
    Tenets of the Dark One



    " + + text += "I. SECRECY
    Your cult is a SECRET organization. Your success DEPENDS on keeping your cult's members and locations SECRET for as long as possible. This means that your tome should be hidden \ + in your bag and never brought out in public. You should never create runes where other crew might find them, and you should avoid using talismans or other cult magic with witnesses around.

    " + + text += "II. TOME
    You start with a unique talisman in your bag. This supply talisman can be used 3 times, and creates starter equipment for your cult. The most critical of the talisman's functions is \ + the power to create a tome. This tome is your most important item and summoning one (in secret) is your FIRST PRIORITY. It lets you talk to fellow cultists and create runes, which in turn is essential to growing the cult's power.

    " + + text += "III. RUNES
    Runes are powerful sources of cult magic. Your tome will allow you to draw runes with your blood. Those runes, when hit with an empty hand, will attempt to \ + trigger the rune's magic. Runes are essential for the cult to convert new members, create powerful minions, or call upon incredibly powerful magic. Some runes require more than one cultist to use.

    " + + text += "IV. TALISMANS
    Talismans are a mobile source of cult magic that are NECESSARY to achieve success as a cult. Your starting talisman can produce certain talismans, but you will need \ + to use the -create talisman- rune (with ordinary paper on top) to get more talismans. Talismans are EXTREMELY powerful, therefore creating more talismans in a HIDDEN location should be one of your TOP PRIORITIES.

    " + + text += "V. GROW THE CULT
    There are certain basic strategies that all cultists should master. STUN talismans are the foundation of a successful cult. If you intend to convert the stunned person \ + you should use cuffs or a talisman of shackling on them and remove their headset before they recover (it takes about 10 seconds to recover). If you intend to sacrifice the victim, striking them quickly and repeatedly with your tome \ + will knock them out before they can recover. Sacrificed victims will their soul behind in a shard, these shards can be used on construct shells to make powerful servants for the cult. Remember you need TWO cultists standing near a \ + conversion rune to convert someone. Your construct minions cannot trigger most runes, but they will count as cultists in helping you trigger more powerful runes like conversion or blood boil.

    " + + text += "VI. VICTORY
    You have two ultimate goals as a cultist, sacrifice your target, and summon Nar-Sie. Sacrificing the target involves killing that individual and then placing \ + their corpse on a sacrifice rune and triggering that rune with THREE cultists. Do NOT lose the target's corpse! Only once the target is sacrificed can Nar-Sie be summoned. Summoning Nar-Sie will take nearly one minute \ + just to draw the massive rune needed. Do not create the rune until your cult is ready, the crew will receive the NAME and LOCATION of anyone who attempts to create the Nar-Sie rune. Once the Nar-Sie rune is drawn \ + you must gathered 9 cultists (or constructs) over the rune and then click it to bring the Dark One into this world!

    " + + var/datum/browser/popup = new(usr, "mind", "", 800, 600) + popup.set_content(text) + popup.open() + return 1 diff --git a/code/game/gamemodes/cult/cult_items.dm b/code/game/gamemodes/cult/cult_items.dm new file mode 100644 index 0000000..977e100 --- /dev/null +++ b/code/game/gamemodes/cult/cult_items.dm @@ -0,0 +1,411 @@ +/obj/item/weapon/melee/cultblade + name = "eldritch longsword" + desc = "A sword humming with unholy energy. It glows with a dim red light." + icon_state = "cultblade" + item_state = "cultblade" + flags = CONDUCT + sharpness = IS_SHARP + w_class = 4 + force = 30 + throwforce = 10 + hitsound = 'sound/weapons/bladeslice.ogg' + attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "rended") + + +/obj/item/weapon/melee/cultblade/attack(mob/living/target, mob/living/carbon/human/user) + if(!iscultist(user)) + user.Weaken(5) + user.unEquip(src, 1) + user.visible_message("A powerful force shoves [user] away from [target]!", \ + "\"You shouldn't play with sharp things. You'll poke someone's eye out.\"") + if(ishuman(user)) + var/mob/living/carbon/human/H = user + H.apply_damage(rand(force/2, force), BRUTE, pick("l_arm", "r_arm")) + else + user.adjustBruteLoss(rand(force/2,force)) + return + ..() + +/obj/item/weapon/melee/cultblade/pickup(mob/living/user) + ..() + if(!iscultist(user)) + if(!is_servant_of_ratvar(user)) + user << "\"I wouldn't advise that.\"" + user << "An overwhelming sense of nausea overpowers you!" + user.Dizzy(120) + else + user << "\"One of Ratvar's toys is trying to play with things [user.gender == FEMALE ? "s" : ""]he shouldn't. Cute.\"" + user << "A horrible force yanks at your arm!" + user.emote("scream") + user.apply_damage(30, BRUTE, pick("l_arm", "r_arm")) + user.unEquip(src) + +/obj/item/weapon/melee/cultblade/dagger + name = "sacrificial dagger" + desc = "A strange dagger said to be used by sinister groups for \"preparing\" a corpse before sacrificing it to their dark gods." + icon = 'icons/obj/wizard.dmi' + icon_state = "render" + w_class = 2 + force = 15 + throwforce = 25 + embed_chance = 75 + +/obj/item/weapon/melee/cultblade/dagger/attack(mob/living/target, mob/living/carbon/human/user) + ..() + if(iscarbon(target)) + var/mob/living/carbon/C = target + C.bleed(50) + if(is_servant_of_ratvar(C) && C.reagents) + C.reagents.add_reagent("heparin", 1) + + +/obj/item/weapon/restraints/legcuffs/bola/cult + name = "nar'sien bola" + desc = "A strong bola, bound with dark magic. Throw it to trip and slow your victim." + icon_state = "bola_cult" + breakouttime = 45 + weaken = 1 + + +/obj/item/clothing/head/culthood + name = "ancient cultist hood" + icon_state = "culthood" + desc = "A torn, dust-caked hood. Strange letters line the inside." + flags_inv = HIDEFACE|HIDEHAIR|HIDEEARS + flags_cover = HEADCOVERSEYES + armor = list(melee = 30, bullet = 10, laser = 5,energy = 5, bomb = 0, bio = 0, rad = 0, fire = 10, acid = 10) + cold_protection = HEAD + min_cold_protection_temperature = HELMET_MIN_TEMP_PROTECT + heat_protection = HEAD + max_heat_protection_temperature = HELMET_MAX_TEMP_PROTECT + +/obj/item/clothing/suit/cultrobes + name = "ancient cultist robes" + desc = "A ragged, dusty set of robes. Strange letters line the inside." + icon_state = "cultrobes" + item_state = "cultrobes" + body_parts_covered = CHEST|GROIN|LEGS|ARMS + allowed = list(/obj/item/weapon/tome,/obj/item/weapon/melee/cultblade) + armor = list(melee = 50, bullet = 30, laser = 50,energy = 20, bomb = 25, bio = 10, rad = 0, fire = 10, acid = 10) + flags_inv = HIDEJUMPSUIT + cold_protection = CHEST|GROIN|LEGS|ARMS + min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT + heat_protection = CHEST|GROIN|LEGS|ARMS + max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT + + +/obj/item/clothing/head/culthood/alt + name = "cultist hood" + desc = "An armored hood worn by the followers of Nar-Sie." + icon_state = "cult_hoodalt" + item_state = "cult_hoodalt" + +/obj/item/clothing/suit/cultrobes/alt + name = "cultist robes" + desc = "An armored set of robes worn by the followers of Nar-Sie." + icon_state = "cultrobesalt" + item_state = "cultrobesalt" + + +/obj/item/clothing/head/magus + name = "magus helm" + icon_state = "magus" + item_state = "magus" + desc = "A helm worn by the followers of Nar-Sie." + flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDEEARS|HIDEEYES + armor = list(melee = 30, bullet = 30, laser = 30,energy = 20, bomb = 0, bio = 0, rad = 0, fire = 10, acid = 10) + flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH + +/obj/item/clothing/suit/magusred + name = "magus robes" + desc = "A set of armored robes worn by the followers of Nar-Sie" + icon_state = "magusred" + item_state = "magusred" + body_parts_covered = CHEST|GROIN|LEGS|ARMS + allowed = list(/obj/item/weapon/tome,/obj/item/weapon/melee/cultblade) + armor = list(melee = 50, bullet = 30, laser = 50,energy = 20, bomb = 25, bio = 10, rad = 0, fire = 10, acid = 10) + flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT + +/obj/item/clothing/head/helmet/space/hardsuit/cult + name = "nar-sien hardened helmet" + desc = "A heavily-armored helmet worn by warriors of the Nar-Sien cult. It can withstand hard vacuum." + icon_state = "cult_helmet" + item_state = "cult_helmet" + armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30, fire = 40, acid = 75) + brightness_on = 0 + actions_types = list() + +/obj/item/clothing/suit/space/hardsuit/cult + name = "nar-sien hardened armor" + icon_state = "cult_armor" + item_state = "cult_armor" + desc = "A heavily-armored exosuit worn by warriors of the Nar-Sien cult. It can withstand hard vacuum." + w_class = 2 + allowed = list(/obj/item/weapon/tome,/obj/item/weapon/melee/cultblade,/obj/item/weapon/tank/internals/) + armor = list(melee = 70, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30, fire = 40, acid = 75) + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/cult + +/obj/item/weapon/sharpener/cult + name = "eldritch whetstone" + desc = "A block, empowered by dark magic. Sharp weapons will be enhanced when used on the stone." + used = 0 + increment = 5 + max = 40 + prefix = "darkened" + +/obj/item/clothing/suit/hooded/cultrobes/cult_shield + name = "empowered cultist armor" + desc = "Empowered garb which creates a powerful shield around the user." + icon_state = "cult_armor" + item_state = "cult_armor" + w_class = 4 + armor = list(melee = 50, bullet = 40, laser = 50,energy = 30, bomb = 50, bio = 30, rad = 30, fire = 50, acid = 60) + body_parts_covered = CHEST|GROIN|LEGS|ARMS + allowed = list(/obj/item/weapon/tome,/obj/item/weapon/melee/cultblade) + var/current_charges = 3 + hooded = 1 + hoodtype = /obj/item/clothing/head/cult_hoodie + +/obj/item/clothing/head/cult_hoodie + name = "empowered cultist armor" + desc = "Empowered garb which creates a powerful shield around the user." + icon_state = "cult_hoodalt" + armor = list(melee = 50, bullet = 40, laser = 50,energy = 30, bomb = 50, bio = 30, rad = 30, fire = 50, acid = 50) + body_parts_covered = HEAD + flags = NODROP + flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS + +/obj/item/clothing/suit/hooded/cultrobes/cult_shield/equipped(mob/living/user, slot) + ..() + if(!iscultist(user)) + if(!is_servant_of_ratvar(user)) + user << "\"I wouldn't advise that.\"" + user << "An overwhelming sense of nausea overpowers you!" + user.unEquip(src, 1) + user.Dizzy(30) + user.Weaken(5) + else + user << "\"Trying to use things you don't own is bad, you know.\"" + user << "The armor squeezes at your body!" + user.emote("scream") + user.adjustBruteLoss(25) + user.unEquip(src, 1) + +/obj/item/clothing/suit/hooded/cultrobes/cult_shield/hit_reaction(mob/living/carbon/human/owner, attack_text, isinhands) + if(current_charges) + owner.visible_message("\The [attack_text] is deflected in a burst of blood-red sparks!") + current_charges-- + PoolOrNew(/obj/effect/overlay/temp/cult/sparks, get_turf(owner)) + if(!current_charges) + owner.visible_message("The runed shield around [owner] suddenly disappears!") + owner.update_inv_wear_suit() + return 1 + return 0 + +/obj/item/clothing/suit/hooded/cultrobes/cult_shield/worn_overlays(isinhands) + . = list() + if(!isinhands && current_charges) + . += image(layer = MOB_LAYER+0.01, icon = 'icons/effects/effects.dmi', icon_state = "shield-cult") + +/obj/item/clothing/suit/hooded/cultrobes/berserker + name = "flagellant's robes" + desc = "Blood-soaked robes infused with dark magic; allows the user to move at inhuman speeds, but at the cost of increased damage." + icon_state = "cultrobes" + item_state = "cultrobes" + flags_inv = HIDEJUMPSUIT + allowed = list(/obj/item/weapon/tome,/obj/item/weapon/melee/cultblade) + body_parts_covered = CHEST|GROIN|LEGS|ARMS + armor = list(melee = -50, bullet = -50, laser = -100,energy = -50, bomb = -50, bio = -50, rad = -50, fire = 0, acid = 0) + slowdown = -1 + hooded = 1 + hoodtype = /obj/item/clothing/head/berserkerhood + +/obj/item/clothing/head/berserkerhood + name = "flagellant's robes" + desc = "Blood-soaked garb infused with dark magic; allows the user to move at inhuman speeds, but at the cost of increased damage." + icon_state = "culthood" + body_parts_covered = HEAD + flags = NODROP + flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS + armor = list(melee = -50, bullet = -50, laser = -50, energy = -50, bomb = -50, bio = -50, rad = -50, fire = 0, acid = 0) + +/obj/item/clothing/suit/hooded/cultrobes/berserker/equipped(mob/living/user, slot) + ..() + if(!iscultist(user)) + if(!is_servant_of_ratvar(user)) + user << "\"I wouldn't advise that.\"" + user << "An overwhelming sense of nausea overpowers you!" + user.unEquip(src, 1) + user.Dizzy(30) + user.Weaken(5) + else + user << "\"Trying to use things you don't own is bad, you know.\"" + user << "The robes squeeze at your body!" + user.emote("scream") + user.adjustBruteLoss(25) + user.unEquip(src, 1) + +/obj/item/clothing/glasses/night/cultblind + desc = "May nar-sie guide you through the darkness and shield you from the light." + name = "zealot's blindfold" + icon_state = "blindfold" + item_state = "blindfold" + darkness_view = 8 + flash_protect = 1 + +/obj/item/clothing/glasses/night/cultblind/equipped(mob/user, slot) + ..() + if(!iscultist(user)) + user << "\"You want to be blind, do you?\"" + user.unEquip(src, 1) + user.Dizzy(30) + user.Weaken(5) + user.blind_eyes(30) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/unholywater + name = "flask of unholy water" + desc = "Toxic to nonbelievers; this water renews and reinvigorates the faithful of nar'sie." + icon_state = "holyflask" + color = "#333333" + list_reagents = list("unholywater" = 40) + +/obj/item/device/shuttle_curse + name = "cursed orb" + desc = "You peer within this smokey orb and glimpse terrible fates befalling the escape shuttle." + icon = 'icons/obj/cult.dmi' + icon_state ="shuttlecurse" + var/global/curselimit = 0 + +/obj/item/device/shuttle_curse/attack_self(mob/user) + if(!iscultist(user)) + user.unEquip(src, 1) + user.Weaken(5) + user << "A powerful force shoves you away from [src]!" + return + if(curselimit > 1) + user << "We have exhausted our ability to curse the shuttle." + return + if(SSshuttle.emergency.mode == SHUTTLE_CALL) + var/cursetime = 1800 + var/timer = SSshuttle.emergency.timeLeft(1) + cursetime + SSshuttle.emergency.setTimer(timer) + user << "You shatter the orb! A dark essence spirals into the air, then disappears." + playsound(user.loc, "sound/effects/Glassbr1.ogg", 50, 1) + qdel(src) + sleep(20) + var/global/list/curses + if(!curses) + curses = list("A fuel technician just slit his own throat and begged for death. The shuttle will be delayed by three minutes.", + "The shuttle's navigation programming was replaced by a file containing two words, IT COMES. The shuttle will be delayed by three minutes.", + "The shuttle's custodian tore out his guts and began painting strange shapes on the floor. The shuttle will be delayed by three minutes.", + "A shuttle engineer began screaming 'DEATH IS NOT THE END' and ripped out wires until an arc flash seared off her flesh. The shuttle will be delayed by three minutes.", + "A shuttle inspector started laughing madly over the radio and then threw herself into an engine turbine. The shuttle will be delayed by three minutes.", + "The shuttle dispatcher was found dead with bloody symbols carved into their flesh. The shuttle will be delayed by three minutes.") + var/message = pick_n_take(curses) + priority_announce("[message]", "System Failure", 'sound/misc/notice1.ogg') + curselimit++ + +/obj/item/device/cult_shift + name = "veil shifter" + desc = "This relic teleports you forward a medium distance." + icon = 'icons/obj/cult.dmi' + icon_state ="shifter" + var/uses = 4 + +/obj/item/device/cult_shift/examine(mob/user) + ..() + if(uses) + user << "It has [uses] uses remaining." + else + user << "It seems drained." + +/obj/item/device/cult_shift/proc/handle_teleport_grab(turf/T, mob/user) + var/mob/living/carbon/C = user + if(C.pulling) + var/atom/movable/pulled = C.pulling + pulled.forceMove(T) + . = pulled + +/obj/item/device/cult_shift/attack_self(mob/user) + if(!uses || !iscarbon(user)) + user << "\The [src] is dull and unmoving in your hands." + return + if(!iscultist(user)) + user.unEquip(src, 1) + step(src, pick(alldirs)) + user << "\The [src] flickers out of your hands, your connection to this dimension is too strong!" + return + + var/mob/living/carbon/C = user + var/turf/mobloc = get_turf(C) + var/turf/destination = get_teleport_loc(mobloc,C,9,1,3,1,0,1) + + if(destination) + uses-- + if(uses <= 0) + icon_state ="shifter_drained" + playsound(mobloc, "sparks", 50, 1) + PoolOrNew(/obj/effect/overlay/temp/dir_setting/cult/phase/out, list(mobloc, C.dir)) + + var/atom/movable/pulled = handle_teleport_grab(destination, C) + C.forceMove(destination) + if(pulled) + C.start_pulling(pulled) //forcemove resets pulls, so we need to re-pull + + PoolOrNew(/obj/effect/overlay/temp/dir_setting/cult/phase, list(destination, C.dir)) + playsound(destination, 'sound/effects/phasein.ogg', 25, 1) + playsound(destination, "sparks", 50, 1) + + else + C << "The veil cannot be torn here!" + +/obj/item/device/flashlight/flare/culttorch + name = "void torch" + desc = "Used by veteran cultists to instantly transport items to their needful bretheren." + w_class = 2 + brightness_on = 1 + icon_state = "torch-on" + item_state = "torch-on" + color = "#ff0000" + on_damage = 15 + slot_flags = null + on = 1 + var/charges = 3 + +/obj/item/device/flashlight/flare/culttorch/afterattack(atom/movable/A, mob/user, proximity) + if(!proximity) + return + + if(istype(A, /obj/item)) + + var/list/cultists = list() + for(var/datum/mind/M in ticker.mode.cult) + if(!(user) && M.current && M.current.stat != DEAD) + cultists |= M.current + var/mob/living/cultist_to_receive = input(user, "Who do you wish to call to [src]?", "Followers of the Geometer") as null|anything in cultists + if(!Adjacent(user) || !src || qdeleted(src) || user.incapacitated()) + return + if(!cultist_to_receive) + user << "You require a destination!" + log_game("Void torch failed - no target") + return + if(cultist_to_receive.stat == DEAD) + user << "[cultist_to_receive] has died!" + log_game("Void torch failed - target died") + return + if(!iscultist(cultist_to_receive)) + user << "[cultist_to_receive] is not a follower of the Geometer!" + log_game("Void torch failed - target was deconverted") + return + user << "You ignite [A] with \the [src], turning it to ash, but through the torch's flames you see that [A] has reached [cultist_to_receive]!" + user << "\The [src] now has [charges] charge\s." + cultist_to_receive.put_in_hands(A) + charges-- + if(charges == 0) + qdel(src) + + else + ..() + user << "\The [src] can only transport items!" + return + diff --git a/code/game/gamemodes/cult/cult_structures.dm b/code/game/gamemodes/cult/cult_structures.dm new file mode 100644 index 0000000..536d2c8 --- /dev/null +++ b/code/game/gamemodes/cult/cult_structures.dm @@ -0,0 +1,232 @@ +/obj/structure/destructible/cult + density = 1 + anchored = 1 + icon = 'icons/obj/cult.dmi' + var/cooldowntime = 0 + break_sound = 'sound/hallucinations/veryfar_noise.ogg' + debris = list(/obj/item/stack/sheet/runed_metal = 1) + +/obj/structure/destructible/cult/examine(mob/user) + ..() + var/can_see_cult = iscultist(user) || isobserver(user) + var/t_It = p_they(TRUE) + var/t_is = p_are() + if(!(resistance_flags & INDESTRUCTIBLE)) + if(can_see_cult) + user << "[t_It] [t_is] at [round(obj_integrity * 100 / max_integrity)]% stability." + user << "\The [src] is [anchored ? "":"not "]secured to the floor." + if(can_see_cult && cooldowntime > world.time) + user << "The magic in [src] is too weak, [t_It] will be ready to use again in [getETA()]." + +/obj/structure/destructible/cult/attack_animal(mob/living/simple_animal/M) + if(istype(M, /mob/living/simple_animal/hostile/construct/builder)) + if(obj_integrity < max_integrity) + obj_integrity = min(max_integrity, obj_integrity + 5) + Beam(M, icon_state="sendbeam", time=4) + M.visible_message("[M] repairs \the [src].", \ + "You repair [src], leaving [p_they()] at [round(obj_integrity * 100 / max_integrity)]% stability.") + else + M << "You cannot repair [src], as [p_they()] [p_are()] undamaged!" + else + ..() + +/obj/structure/destructible/cult/attackby(obj/I, mob/user, params) + if(istype(I, /obj/item/weapon/tome) && iscultist(user)) + anchored = !anchored + user << "You [anchored ? "":"un"]secure \the [src] [anchored ? "to":"from"] the floor." + if(!anchored) + icon_state = "[initial(icon_state)]_off" + else + icon_state = initial(icon_state) + else + return ..() + +/obj/structure/destructible/cult/ratvar_act() + if(take_damage(rand(25, 50), BURN) && src) //if we still exist + var/previouscolor = color + color = "#FAE48C" + animate(src, color = previouscolor, time = 8) + addtimer(src, "update_atom_colour", 8) + +/obj/structure/destructible/cult/proc/getETA() + var/time = (cooldowntime - world.time)/600 + var/eta = "[round(time, 1)] minutes" + if(time <= 1) + time = (cooldowntime - world.time)*0.1 + eta = "[round(time, 1)] seconds" + return eta + +/obj/structure/destructible/cult/talisman + name = "altar" + desc = "A bloodstained altar dedicated to Nar-Sie." + icon_state = "talismanaltar" + break_message = "The altar shatters, leaving only the wailing of the damned!" + +/obj/structure/destructible/cult/talisman/attack_hand(mob/living/user) + if(!iscultist(user)) + user << "You're pretty sure you know exactly what this is used for and you can't seem to touch it." + return + if(!anchored) + user << "You need to anchor [src] to the floor with a tome first." + return + if(cooldowntime > world.time) + user << "The magic in [src] is weak, it will be ready to use again in [getETA()]." + return + var/choice = alert(user,"You study the schematics etched into the forge...",,"Eldritch Whetstone","Zealot's Blindfold","Flask of Unholy Water") + var/pickedtype + switch(choice) + if("Eldritch Whetstone") + pickedtype = /obj/item/weapon/sharpener/cult + if("Zealot's Blindfold") + pickedtype = /obj/item/clothing/glasses/night/cultblind + if("Flask of Unholy Water") + pickedtype = /obj/item/weapon/reagent_containers/food/drinks/bottle/unholywater + if(src && !qdeleted(src) && anchored && pickedtype && Adjacent(user) && !user.incapacitated() && iscultist(user) && cooldowntime <= world.time) + cooldowntime = world.time + 2400 + var/obj/item/N = new pickedtype(get_turf(src)) + user << "You kneel before the altar and your faith is rewarded with an [N]!" + + +/obj/structure/destructible/cult/forge + name = "daemon forge" + desc = "A forge used in crafting the unholy weapons used by the armies of Nar-Sie." + icon_state = "forge" + luminosity = 3 + break_message = "The force breaks apart into shards with a howling scream!" + +/obj/structure/destructible/cult/forge/attack_hand(mob/living/user) + if(!iscultist(user)) + user << "The heat radiating from [src] pushes you back." + return + if(!anchored) + user << "You need to anchor [src] to the floor with a tome first." + return + if(cooldowntime > world.time) + user << "The magic in [src] is weak, it will be ready to use again in [getETA()]." + return + var/choice = alert(user,"You study the schematics etched into the forge...",,"Shielded Robe","Flagellant's Robe","Nar-Sien Hardsuit") + var/pickedtype + switch(choice) + if("Shielded Robe") + pickedtype = /obj/item/clothing/suit/hooded/cultrobes/cult_shield + if("Flagellant's Robe") + pickedtype = /obj/item/clothing/suit/hooded/cultrobes/berserker + if("Nar-Sien Hardsuit") + pickedtype = /obj/item/clothing/suit/space/hardsuit/cult + if(src && !qdeleted(src) && anchored && pickedtype && Adjacent(user) && !user.incapacitated() && iscultist(user) && cooldowntime <= world.time) + cooldowntime = world.time + 2400 + var/obj/item/N = new pickedtype(get_turf(src)) + user << "You work the forge as dark knowledge guides your hands, creating [N]!" + + +var/list/blacklisted_pylon_turfs = typecacheof(list( + /turf/closed, + /turf/open/floor/engine/cult, + /turf/open/space, + /turf/open/floor/plating/lava, + /turf/open/chasm)) + +/obj/structure/destructible/cult/pylon + name = "pylon" + desc = "A floating crystal that slowly heals those faithful to Nar'Sie." + icon_state = "pylon" + luminosity = 5 + break_sound = 'sound/effects/Glassbr2.ogg' + break_message = "The blood-red crystal falls to the floor and shatters!" + var/heal_delay = 25 + var/last_heal = 0 + var/corrupt_delay = 50 + var/last_corrupt = 0 + +/obj/structure/destructible/cult/pylon/New() + START_PROCESSING(SSfastprocess, src) + ..() + +/obj/structure/destructible/cult/pylon/Destroy() + STOP_PROCESSING(SSfastprocess, src) + return ..() + +/obj/structure/destructible/cult/pylon/process() + if(!anchored) + return + if(last_heal <= world.time) + last_heal = world.time + heal_delay + for(var/mob/living/L in range(5, src)) + if(iscultist(L) || isshade(L) || isconstruct(L)) + if(L.health != L.maxHealth) + PoolOrNew(/obj/effect/overlay/temp/heal, list(get_turf(src), "#960000")) + if(ishuman(L)) + L.adjustBruteLoss(-1, 0) + L.adjustFireLoss(-1, 0) + L.updatehealth() + if(isshade(L) || isconstruct(L)) + var/mob/living/simple_animal/M = L + if(M.health < M.maxHealth) + M.adjustHealth(-1) + CHECK_TICK + if(last_corrupt <= world.time) + var/list/validturfs = list() + var/list/cultturfs = list() + for(var/T in circleviewturfs(src, 5)) + if(istype(T, /turf/open/floor/engine/cult)) + cultturfs |= T + continue + if(is_type_in_typecache(T, blacklisted_pylon_turfs)) + continue + else + validturfs |= T + + last_corrupt = world.time + corrupt_delay + + var/turf/T = safepick(validturfs) + if(T) + T.ChangeTurf(/turf/open/floor/engine/cult) + else + var/turf/open/floor/engine/cult/F = safepick(cultturfs) + if(F) + PoolOrNew(/obj/effect/overlay/temp/cult/turf/floor, F) + else + // Are we in space or something? No cult turfs or + // convertable turfs? + last_corrupt = world.time + corrupt_delay*2 + +/obj/structure/destructible/cult/tome + name = "archives" + desc = "A desk covered in arcane manuscripts and tomes in unknown languages. Looking at the text makes your skin crawl." + icon_state = "tomealtar" + luminosity = 1 + break_message = "The books and tomes of the archives burn into ash as the desk shatters!" + +/obj/structure/destructible/cult/tome/attack_hand(mob/living/user) + if(!iscultist(user)) + user << "All of these books seem to be gibberish." + return + if(!anchored) + user << "You need to anchor [src] to the floor with a tome first." + return + if(cooldowntime > world.time) + user << "The magic in [src] is weak, it will be ready to use again in [getETA()]." + return + var/choice = alert(user,"You flip through the black pages of the archives...",,"Supply Talisman","Shuttle Curse","Veil Walker Set") + var/list/pickedtype = list() + switch(choice) + if("Supply Talisman") + pickedtype += /obj/item/weapon/paper/talisman/supply/weak + if("Shuttle Curse") + pickedtype += /obj/item/device/shuttle_curse + if("Veil Walker Set") + pickedtype += /obj/item/device/cult_shift + pickedtype += /obj/item/device/flashlight/flare/culttorch + if(src && !qdeleted(src) && anchored && pickedtype.len && Adjacent(user) && !user.incapacitated() && iscultist(user) && cooldowntime <= world.time) + cooldowntime = world.time + 2400 + for(var/N in pickedtype) + var/obj/item/D = new N(get_turf(src)) + user << "You summon [D] from the archives!" + +/obj/effect/gateway + name = "gateway" + desc = "You're pretty sure that abyss is staring back." + icon = 'icons/obj/cult.dmi' + icon_state = "hole" + density = 1 + anchored = 1 diff --git a/code/game/gamemodes/cult/ritual.dm b/code/game/gamemodes/cult/ritual.dm new file mode 100644 index 0000000..c46deef --- /dev/null +++ b/code/game/gamemodes/cult/ritual.dm @@ -0,0 +1,270 @@ +/* + +This file contains the arcane tome files. + +*/ + + +/obj/item/weapon/tome + name = "arcane tome" + desc = "An old, dusty tome with frayed edges and a sinister-looking cover." + icon_state ="tome" + throw_speed = 2 + throw_range = 5 + w_class = 2 + +/obj/item/weapon/tome/examine(mob/user) + ..() + if(iscultist(user) || isobserver(user)) + user << "The scriptures of the Geometer. Allows the scribing of runes and access to the knowledge archives of the cult of Nar-Sie." + user << "Striking a cult structure will unanchor or reanchor it." + user << "Striking another cultist with it will purge holy water from them." + user << "Striking a noncultist, however, will sear their flesh." + +/obj/item/weapon/tome/attack(mob/living/M, mob/living/user) + if(!istype(M)) + return + if(!iscultist(user)) + return ..() + if(iscultist(M)) + if(M.reagents && M.reagents.has_reagent("holywater")) //allows cultists to be rescued from the clutches of ordained religion + user << "You remove the taint from [M]." + var/holy2unholy = M.reagents.get_reagent_amount("holywater") + M.reagents.del_reagent("holywater") + M.reagents.add_reagent("unholywater",holy2unholy) + add_logs(user, M, "smacked", src, " removing the holy water from them") + return + M.take_bodypart_damage(0, 15) //Used to be a random between 5 and 20 + playsound(M, 'sound/weapons/sear.ogg', 50, 1) + M.visible_message("[user] strikes [M] with the arcane tome!", \ + "[user] strikes you with the tome, searing your flesh!") + flick("tome_attack", src) + user.do_attack_animation(M) + add_logs(user, M, "smacked", src) + +/obj/item/weapon/tome/attack_self(mob/user) + if(!iscultist(user)) + user << "[src] seems full of unintelligible shapes, scribbles, and notes. Is this some sort of joke?" + return + open_tome(user) + +/obj/item/weapon/tome/proc/open_tome(mob/user) + var/choice = alert(user,"You open the tome...",,"Scribe Rune","More Information","Cancel") + switch(choice) + if("More Information") + read_tome(user) + if("Scribe Rune") + scribe_rune(user) + if("Cancel") + return + +/obj/item/weapon/tome/proc/read_tome(mob/user) + var/text = "" + text += "
    Archives of the Dark One



    " + text += "A rune's name and effects can be revealed by examining the rune.<

    " + + text += "Create Talisman
    This rune is one of the most important runes the cult has, being the only way to create new talismans. A blank sheet of paper must be on top of the rune. After \ + invoking it and choosing which talisman you desire, the paper will be converted, after some delay into a talisman.

    " + + text += "Teleport
    This rune is unique in that it requires a keyword before the scribing can begin. When invoked, it will find any other Teleport runes; \ + If any are found, the user can choose which rune to send to. Upon activation, the rune teleports everything above it to the selected rune, provided the selected rune is unblocked.

    " + + text += "Offer
    This rune is necessary to achieve your goals. Placing a noncultist above it will convert them if it can and sacrifice them otherwise. \ + It requires two invokers to convert a target and three to sacrifice a living target or the sacrifice target.
    \ + Successful conversions will produce a tome for the new cultist, in addition to healing them.
    \ + Successful sacrifices will please the Geometer, can complete your objective if it sacrificed the sacrifice target, and will attempt to place the target into a soulstone.

    " + + text += "Raise Dead
    This rune requires the corpse of a cultist placed upon the rune, and one person sacrificed for each revival you wish to do.\ + Provided there are remaining revivals from those sacrificed, invoking the rune will revive the cultist placed upon it.

    " + + text += "Electromagnetic Disruption
    Robotic lifeforms have time and time again been the downfall of fledgling cults. This rune may allow you to gain the upper \ + hand against these pests. By using the rune, a large electromagnetic pulse will be emitted from the rune's location. The size of the EMP will grow significantly for each additional adjacent cultist when the \ + rune is activated.

    " + + text += "Astral Communion
    This rune is perhaps the most ingenious rune that is usable by a single person. Upon invoking the rune, the \ + user's spirit will be ripped from their body. In this state, the user's physical body will be locked in place to the rune itself - any attempts to move it will result in the rune pulling it back. \ + The body will also take constant damage while in this form, and may even die. The user's spirit will contain their consciousness, and will allow them to freely wander the station as a ghost. This may \ + also be used to commune with the dead.

    " + + text += "Form Barrier
    While simple, this rune serves an important purpose in defense and hindering passage. When invoked, the rune will draw a small amount of blood from the user \ + and make the space above the rune completely dense, rendering it impassable for about a minute and a half. This effect will spread to other nearby Barrier Runes. \ + The rune may be invoked again to undo this effect and allow passage again.

    " + + text += "Summon Cultist
    This rune allows the cult to free other cultists with ease. When invoked, it will allow the user to summon a single cultist to the rune from \ + any location. It requires two invokers, and will damage each invoker slightly.

    " + + text += "Blood Boil
    When invoked, this rune will rapidly do a massive amount of damage to all non-cultist viewers, but it will also emit a burst of flame once it finishes. \ + It requires three invokers.

    " + + text += "Drain Life
    This rune will drain the life of every living creature above the rune, healing the invoker for each creature drained by it.

    " + + text += "Manifest Spirit
    This rune allows you to summon spirits as humanoid fighters. When invoked, a spirit above the rune will be brought to life as a human, wearing nothing, that seeks only to serve you and the Geometer. \ + However, the spirit's link to reality is fragile - you must remain on top of the rune, and you will slowly take damage. Upon stepping off the rune, all summoned spirits will dissipate, dropping their items to the ground. You may manifest \ + multiple spirits with one rune, but you will rapidly take damage in doing so.

    " + + text += "Summon Nar-Sie
    This rune is necessary to achieve your goals. On attempting to scribe it, it will produce shields around you and alert everyone you are attempting to scribe it; it takes a very long time to scribe, \ + and does massive damage to the one attempting to scribe it.
    Invoking it requires 9 invokers and the sacrifice of a specific crewmember, and once invoked, will summon the Geometer, Nar-Sie herself. \ + This will complete your objectives.


    " + + text += "Talisman of Teleportation
    The talisman form of the Teleport rune will transport the invoker to a selected Teleport rune once.

    " + + text += "Talisman of Construction
    This talisman is the main way of creating construct shells. To use it, one must strike 25 sheets of metal with the talisman. The sheets will then be twisted into a construct shell, ready to recieve a soul to occupy it.

    " + + text += "Talisman of Tome Summoning
    This talisman will produce a single tome at your feet.

    " + + text += "Talisman of Veiling/Revealing
    This talisman will hide runes on its first use, and on the second, will reveal runes.

    " + + text += "Talisman of Disguising
    This talisman will permanently disguise all nearby runes as crayon runes.

    " + + text += "Talisman of Electromagnetic Pulse
    This talisman will EMP anything else nearby. It disappears after one use.

    " + + text += "Talisman of Stunning
    Attacking a target will knock them down for a long duration in addition to inhibiting their speech. \ + Robotic lifeforms will suffer the effects of a heavy electromagnetic pulse instead.

    " + + text += "Talisman of Armaments
    The Talisman of Arming will equip the user with armored robes, a backpack, an eldritch longsword, an empowered bola, and a pair of boots. Any items that cannot \ + be equipped will not be summoned. Attacking a fellow cultist with it will instead equip them.

    " + + text += "Talisman of Horrors
    The Talisman of Horror must be applied directly to the victim, it will shatter your victim's mind with visions of the endtimes that may incapitate them.

    " + + text += "Talisman of Shackling
    The Talisman of Shackling must be applied directly to the victim, it has 4 uses and cuffs victims with magic shackles that disappear when removed.

    " + + text += "In addition to these runes, the cult has a small selection of equipment and constructs.

    " + + text += "Equipment:

    " + + text += "Cult Blade
    Cult blades are sharp weapons that, notably, cannot be used by noncultists. These blades are produced by the Talisman of Arming.

    " + + text += "Cult Bola
    Cult bolas are strong bolas, useful for snaring targets. These bolas are produced by the Talisman of Arming.

    " + + text += "Cult Robes
    Cult robes are heavily armored robes. These robes are produced by the Talisman of Arming.

    " + + text += "Soulstone
    A soulstone is a simple piece of magic, produced either via the starter talisman or by sacrificing humans. Using it on an unconscious or dead human, or on a Shade, will trap their soul in the stone, allowing its use in construct shells. \ +
    The soul within can also be released as a Shade by using it in-hand.

    " + + text += "Construct Shell
    A construct shell is useless on its own, but placing a filled soulstone within it allows you to produce your choice of a Wraith, a Juggernaut, or an Artificer. \ +
    Each construct has uses, detailed below in Constructs. Construct shells can be produced via the starter talisman or the Rite of Fabrication.

    " + + text += "Constructs:

    " + + text += "Shade
    While technically not a construct, the Shade is produced when released from a soulstone. It is quite fragile and has weak melee attacks, but is fully healed when recaptured by a soulstone.

    " + + text += "Wraith
    The Wraith is a fast, lethal melee attacker which can jaunt through walls. However, it is only slightly more durable than a shade.

    " + + text += "Juggernaut
    The Juggernaut is a slow, but durable, melee attacker which can produce temporary forcewalls. It will also reflect most lethal energy weapons.

    " + + text += "Artificer
    The Artificer is a weak and fragile construct, able to heal other constructs, shades, or itself, produce more soulstones and construct shells, \ + construct fortifying cult walls and flooring, and finally, it can release a few indiscriminate stunning missiles.

    " + + text += "Harvester
    If you see one, know that you have done all you can and your life is void.

    " + + var/datum/browser/popup = new(user, "tome", "", 800, 600) + popup.set_content(text) + popup.open() + return 1 + +/obj/item/weapon/tome/proc/scribe_rune(mob/living/user) + var/turf/Turf = get_turf(user) + var/chosen_keyword + var/obj/effect/rune/rune_to_scribe + var/entered_rune_name + var/list/possible_runes = list() + var/list/shields = list() + var/area/A = get_area(src) + + if(!check_rune_turf(Turf, user)) + return + for(var/T in subtypesof(/obj/effect/rune) - /obj/effect/rune/malformed) + var/obj/effect/rune/R = T + if(initial(R.cultist_name)) + possible_runes.Add(initial(R.cultist_name)) //This is to allow the menu to let cultists select runes by name rather than by object path. I don't know a better way to do this + if(!possible_runes.len) + return + entered_rune_name = input(user, "Choose a rite to scribe.", "Sigils of Power") as null|anything in possible_runes + if(!src || qdeleted(src) || !Adjacent(user) || user.incapacitated() || !check_rune_turf(Turf, user)) + return + for(var/T in typesof(/obj/effect/rune)) + var/obj/effect/rune/R = T + if(initial(R.cultist_name) == entered_rune_name) + rune_to_scribe = R + if(initial(R.req_keyword)) + var/the_keyword = stripped_input(usr, "Please enter a keyword for the rune.", "Enter Keyword", "") + if(!the_keyword) + return + chosen_keyword = the_keyword + break + if(!rune_to_scribe) + return + Turf = get_turf(user) //we may have moved. adjust as needed... + if(!src || qdeleted(src) || !Adjacent(user) || user.incapacitated() || !check_rune_turf(Turf, user)) + return + if(ispath(rune_to_scribe, /obj/effect/rune/narsie)) + if(ticker.mode.name == "cult") + var/datum/game_mode/cult/cult_mode = ticker.mode + if(!("eldergod" in cult_mode.cult_objectives)) + user << "Nar-Sie does not wish to be summoned!" + return + else if(cult_mode.sacrifice_target && !(cult_mode.sacrifice_target in sacrificed)) + user << "The sacrifice is not complete. The portal would lack the power to open if you tried!" + return + else if(!cult_mode.eldergod) + user << "\"I am already here. There is no need to try to summon me now.\"" + return + var/locname = initial(A.name) + if(loc.z && loc.z != ZLEVEL_STATION) + user << "The Geometer is not interested \ + in lesser locations; the station is the prize!" + return + var/confirm_final = alert(user, "This is the FINAL step to summon Nar-Sie, it is a long, painful ritual and the crew will be alerted to your presence", "Are you prepared for the final battle?", "My life for Nar-Sie!", "No") + if(confirm_final == "No") + user << "You decide to prepare further before scribing the rune." + return + priority_announce("Figments from an eldritch god are being summoned by [user] into [locname] from an unknown dimension. Disrupt the ritual at all costs!","Central Command Higher Dimensionsal Affairs", 'sound/AI/spanomalies.ogg') + for(var/B in spiral_range_turfs(1, user, 1)) + var/turf/T = B + var/obj/structure/emergency_shield/sanguine/N = new(T) + shields |= N + else + user << "Nar-Sie does not wish to be summoned!" + return + user.visible_message("[user] [user.blood_volume ? "cuts open their arm and begins writing in their own blood":"begins sketching out a strange design"]!", \ + "You [user.blood_volume ? "slice open your arm and ":""]begin drawing a sigil of the Geometer.") + if(user.blood_volume) + user.apply_damage(initial(rune_to_scribe.scribe_damage), BRUTE, pick("l_arm", "r_arm")) + if(!do_after(user, initial(rune_to_scribe.scribe_delay), target = get_turf(user))) + for(var/V in shields) + var/obj/structure/emergency_shield/sanguine/S = V + if(S && !qdeleted(S)) + qdel(S) + return + if(!check_rune_turf(Turf, user)) + return + user.visible_message("[user] creates a strange circle[user.blood_volume ? " in their own blood":""].", \ + "You finish drawing the arcane markings of the Geometer.") + for(var/V in shields) + var/obj/structure/emergency_shield/S = V + if(S && !qdeleted(S)) + qdel(S) + var/obj/effect/rune/R = new rune_to_scribe(Turf, chosen_keyword) + user << "The [lowertext(R.cultist_name)] rune [R.cultist_desc]" + feedback_add_details("cult_runes_scribed", R.cultist_name) + +/obj/item/weapon/tome/proc/check_rune_turf(turf/T, mob/user) + var/area/A = get_area(T) + + if(isspaceturf(T)) + user << "You cannot scribe runes in space!" + return FALSE + + if(locate(/obj/effect/rune) in T) + user << "There is already a rune here." + return FALSE + + if(T.z != ZLEVEL_STATION && T.z != ZLEVEL_MINING) + user << "The veil is not weak enough here." + return FALSE + + if(istype(A, /area/shuttle)) + user << "Interference from hyperspace engines disrupts the Geometer's power on shuttles." + return FALSE + + return TRUE diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm new file mode 100644 index 0000000..88140a9 --- /dev/null +++ b/code/game/gamemodes/cult/runes.dm @@ -0,0 +1,1018 @@ +/var/list/sacrificed = list() //a mixed list of minds and mobs +var/list/non_revealed_runes = (subtypesof(/obj/effect/rune) - /obj/effect/rune/malformed) + +/* + +This file contains runes. +Runes are used by the cult to cause many different effects and are paramount to their success. +They are drawn with an arcane tome in blood, and are distinguishable to cultists and normal crew by examining. +Fake runes can be drawn in crayon to fool people. +Runes can either be invoked by one's self or with many different cultists. Each rune has a specific incantation that the cultists will say when invoking it. + +To draw a rune, use an arcane tome. + +*/ + +/obj/effect/rune + name = "rune" + var/cultist_name = "basic rune" + desc = "An odd collection of symbols drawn in what seems to be blood." + var/cultist_desc = "a basic rune with no function." //This is shown to cultists who examine the rune in order to determine its true purpose. + anchored = 1 + icon = 'icons/obj/rune.dmi' + icon_state = "1" + resistance_flags = FIRE_PROOF | UNACIDABLE | ACID_PROOF + layer = ABOVE_NORMAL_TURF_LAYER + color = "#FF0000" + + var/invocation = "Aiy ele-mayo!" //This is said by cultists when the rune is invoked. + var/req_cultists = 1 //The amount of cultists required around the rune to invoke it. If only 1, any cultist can invoke it. + var/req_cultists_text //if we have a description override for required cultists to invoke + var/rune_in_use = 0 // Used for some runes, this is for when you want a rune to not be usable when in use. + + var/scribe_delay = 50 //how long the rune takes to create + var/scribe_damage = 0.1 //how much damage you take doing it + + var/allow_excess_invokers = 0 //if we allow excess invokers when being invoked + var/construct_invoke = 1 //if constructs can invoke it + + var/req_keyword = 0 //If the rune requires a keyword - go figure amirite + var/keyword //The actual keyword for the rune + +/obj/effect/rune/New(loc, set_keyword) + ..() + if(set_keyword) + keyword = set_keyword + +/obj/effect/rune/examine(mob/user) + ..() + if(iscultist(user) || user.stat == DEAD) //If they're a cultist or a ghost, tell them the effects + user << "Name: [cultist_name]" + user << "Effects: [capitalize(cultist_desc)]" + user << "Required Acolytes: [req_cultists_text ? "[req_cultists_text]":"[req_cultists]"]" + if(req_keyword && keyword) + user << "Keyword: [keyword]" + +/obj/effect/rune/attackby(obj/I, mob/user, params) + if(istype(I, /obj/item/weapon/tome) && iscultist(user)) + user << "You carefully erase the [lowertext(cultist_name)] rune." + qdel(src) + return + else if(istype(I, /obj/item/weapon/nullrod)) + user.say("BEGONE FOUL MAGIKS!!") + user << "You disrupt the magic of [src] with [I]." + qdel(src) + return + return + +/obj/effect/rune/attack_hand(mob/living/user) + if(!iscultist(user)) + user << "You aren't able to understand the words of [src]." + return + var/list/invokers = can_invoke(user) + if(invokers.len >= req_cultists) + invoke(invokers) + else + fail_invoke() + +/obj/effect/rune/attack_animal(mob/living/simple_animal/M) + if(istype(M, /mob/living/simple_animal/shade) || istype(M, /mob/living/simple_animal/hostile/construct)) + if(construct_invoke || !iscultist(M)) //if you're not a cult construct we want the normal fail message + attack_hand(M) + else + M << "You are unable to invoke the rune!" + +/obj/effect/rune/proc/talismanhide() //for talisman of revealing/hiding + visible_message("[src] fades away.") + invisibility = INVISIBILITY_OBSERVER + alpha = 100 //To help ghosts distinguish hidden runes + +/obj/effect/rune/proc/talismanreveal() //for talisman of revealing/hiding + invisibility = 0 + visible_message("[src] suddenly appears!") + alpha = initial(alpha) + +/* + +There are a few different procs each rune runs through when a cultist activates it. +can_invoke() is called when a cultist activates the rune with an empty hand. If there are multiple cultists, this rune determines if the required amount is nearby. +invoke() is the rune's actual effects. +fail_invoke() is called when the rune fails, via not enough people around or otherwise. Typically this just has a generic 'fizzle' effect. +structure_check() searches for nearby cultist structures required for the invocation. Proper structures are pylons, forges, archives, and altars. + +*/ + +/obj/effect/rune/proc/can_invoke(var/mob/living/user=null) + //This proc determines if the rune can be invoked at the time. If there are multiple required cultists, it will find all nearby cultists. + var/list/invokers = list() //people eligible to invoke the rune + var/list/chanters = list() //people who will actually chant the rune when passed to invoke() + if(user) + chanters |= user + invokers |= user + if(req_cultists > 1 || allow_excess_invokers) + for(var/mob/living/L in range(1, src)) + if(iscultist(L)) + if(L == user) + continue + if(ishuman(L)) + var/mob/living/carbon/human/H = L + if((H.disabilities & MUTE) || H.silent) + continue + if(L.stat) + continue + invokers |= L + if(invokers.len >= req_cultists) + if(allow_excess_invokers) + chanters |= invokers + else + invokers -= user + shuffle(invokers) + for(var/i in 0 to req_cultists) + var/L = pick_n_take(invokers) + chanters |= L + return chanters + +/obj/effect/rune/proc/invoke(var/list/invokers) + //This proc contains the effects of the rune as well as things that happen afterwards. If you want it to spawn an object and then delete itself, have both here. + if(invocation) + for(var/M in invokers) + var/mob/living/L = M + L.say(invocation) + do_invoke_glow() + +/obj/effect/rune/proc/do_invoke_glow() + var/oldtransform = transform + spawn(0) //animate is a delay, we want to avoid being delayed + animate(src, transform = matrix()*2, alpha = 0, time = 5) //fade out + animate(transform = oldtransform, alpha = 255, time = 0) + +/obj/effect/rune/proc/fail_invoke() + //This proc contains the effects of a rune if it is not invoked correctly, through either invalid wording or not enough cultists. By default, it's just a basic fizzle. + visible_message("The markings pulse with a \ + small flash of red light, then fall dark.") + spawn(0) //animate is a delay, we want to avoid being delayed + var/oldcolor = color + color = rgb(255, 0, 0) + animate(src, color = oldcolor, time = 5) + addtimer(src, "update_atom_colour", 5) + +//Malformed Rune: This forms if a rune is not drawn correctly. Invoking it does nothing but hurt the user. +/obj/effect/rune/malformed + cultist_name = "malformed rune" + cultist_desc = "a senseless rune written in gibberish. No good can come from invoking this." + invocation = "Ra'sha yoka!" + +/obj/effect/rune/malformed/New() + ..() + icon_state = "[rand(1,7)]" + color = rgb(rand(0,255), rand(0,255), rand(0,255)) + +/obj/effect/rune/malformed/invoke(var/list/invokers) + ..() + for(var/M in invokers) + var/mob/living/L = M + L << "You feel your life force draining. The Geometer is displeased." + L.apply_damage(30, BRUTE) + qdel(src) + +/mob/proc/null_rod_check() //The null rod, if equipped, will protect the holder from the effects of most runes + var/obj/item/weapon/nullrod/N = locate() in src + if(N && !ratvar_awakens) //If Nar-Sie or Ratvar are alive, null rods won't protect you + return N + return 0 + +/mob/proc/bible_check() //The bible, if held, might protect against certain things + var/obj/item/weapon/storage/book/bible/B = locate() in src + if(is_holding(B)) + return B + return 0 + +//Rite of Binding: A paper on top of the rune to a talisman. +/obj/effect/rune/imbue + cultist_name = "Create Talisman" + cultist_desc = "transforms paper into powerful magic talismans." + invocation = "H'drak v'loso, mir'kanas verbot!" + icon_state = "3" + color = "#0000FF" + +/obj/effect/rune/imbue/invoke(var/list/invokers) + var/mob/living/user = invokers[1] //the first invoker is always the user + var/list/papers_on_rune = checkpapers() + var/entered_talisman_name + var/obj/item/weapon/paper/talisman/talisman_type + var/list/possible_talismans = list() + if(!papers_on_rune.len) + user << "There must be a blank paper on top of [src]!" + fail_invoke() + log_game("Talisman Creation rune failed - no blank papers on rune") + return + if(rune_in_use) + user << "[src] can only support one ritual at a time!" + fail_invoke() + log_game("Talisman Creation rune failed - already in use") + return + + for(var/I in subtypesof(/obj/item/weapon/paper/talisman) - /obj/item/weapon/paper/talisman/malformed - /obj/item/weapon/paper/talisman/supply - /obj/item/weapon/paper/talisman/supply/weak) + var/obj/item/weapon/paper/talisman/J = I + var/talisman_cult_name = initial(J.cultist_name) + if(talisman_cult_name) + possible_talismans[talisman_cult_name] = J //This is to allow the menu to let cultists select talismans by name + entered_talisman_name = input(user, "Choose a talisman to imbue.", "Talisman Choices") as null|anything in possible_talismans + talisman_type = possible_talismans[entered_talisman_name] + if(!Adjacent(user) || !src || qdeleted(src) || user.incapacitated() || rune_in_use || !talisman_type) + return + papers_on_rune = checkpapers() + if(!papers_on_rune.len) + user << "There must be a blank paper on top of [src]!" + fail_invoke() + log_game("Talisman Creation rune failed - no blank papers on rune") + return + var/obj/item/weapon/paper/paper_to_imbue = papers_on_rune[1] + ..() + visible_message("Dark power begins to channel into the paper!") + rune_in_use = 1 + if(!do_after(user, 100, target = paper_to_imbue)) + rune_in_use = 0 + return + new talisman_type(get_turf(src)) + visible_message("[src] glows with power, and bloody images form themselves on [paper_to_imbue].") + qdel(paper_to_imbue) + rune_in_use = 0 + +/obj/effect/rune/imbue/proc/checkpapers() + . = list() + for(var/obj/item/weapon/paper/P in get_turf(src)) + if(!P.info && !istype(P, /obj/item/weapon/paper/talisman)) + . |= P + +var/list/teleport_runes = list() +/obj/effect/rune/teleport + cultist_name = "Teleport" + cultist_desc = "warps everything above it to another chosen teleport rune." + invocation = "Sas'so c'arta forbici!" + icon_state = "2" + color = "#551A8B" + req_keyword = 1 + var/listkey + +/obj/effect/rune/teleport/New(loc, set_keyword) + ..() + var/area/A = get_area(src) + var/locname = initial(A.name) + listkey = set_keyword ? "[set_keyword] [locname]":"[locname]" + teleport_runes += src + +/obj/effect/rune/teleport/Destroy() + teleport_runes -= src + return ..() + +/obj/effect/rune/teleport/invoke(var/list/invokers) + var/mob/living/user = invokers[1] //the first invoker is always the user + var/list/potential_runes = list() + var/list/teleportnames = list() + var/list/duplicaterunecount = list() + for(var/R in teleport_runes) + var/obj/effect/rune/teleport/T = R + var/resultkey = T.listkey + if(resultkey in teleportnames) + duplicaterunecount[resultkey]++ + resultkey = "[resultkey] ([duplicaterunecount[resultkey]])" + else + teleportnames.Add(resultkey) + duplicaterunecount[resultkey] = 1 + if(T != src && (T.z <= ZLEVEL_SPACEMAX)) + potential_runes[resultkey] = T + + if(!potential_runes.len) + user << "There are no valid runes to teleport to!" + log_game("Teleport rune failed - no other teleport runes") + fail_invoke() + return + + if(user.z > ZLEVEL_SPACEMAX) + user << "You are not in the right dimension!" + log_game("Teleport rune failed - user in away mission") + fail_invoke() + return + + var/input_rune_key = input(user, "Choose a rune to teleport to.", "Rune to Teleport to") as null|anything in potential_runes //we know what key they picked + var/obj/effect/rune/teleport/actual_selected_rune = potential_runes[input_rune_key] //what rune does that key correspond to? + if(!Adjacent(user) || !src || qdeleted(src) || user.incapacitated() || !actual_selected_rune) + fail_invoke() + return + + var/turf/T = get_turf(src) + var/turf/target = get_turf(actual_selected_rune) + if(is_blocked_turf(target)) + user << "The target rune is blocked. Attempting to teleport to it would be massively unwise." + fail_invoke() + return + var/movedsomething = 0 + var/moveuserlater = 0 + for(var/atom/movable/A in T) + if(A == user) + moveuserlater = 1 + movedsomething = 1 + continue + if(!A.anchored) + movedsomething = 1 + A.forceMove(target) + if(movedsomething) + ..() + visible_message("There is a sharp crack of inrushing air, and everything above the rune disappears!") + user << "You[moveuserlater ? "r vision blurs, and you suddenly appear somewhere else":" send everything above the rune away"]." + if(moveuserlater) + user.forceMove(target) + else + fail_invoke() + + +//Rite of Offering: Converts or sacrifices a target. +/obj/effect/rune/convert + cultist_name = "Offer" + cultist_desc = "offers a noncultist above it to Nar-Sie, either converting them or sacrificing them." + req_cultists_text = "2 for conversion, 3 for living sacrifices and sacrifice targets." + invocation = "Mah'weyh pleggh at e'ntrath!" + icon_state = "3" + color = "#FFFFFF" + req_cultists = 1 + allow_excess_invokers = 1 + rune_in_use = FALSE + +/obj/effect/rune/convert/do_invoke_glow() + return + +/obj/effect/rune/convert/invoke(var/list/invokers) + if(rune_in_use) + return + var/list/myriad_targets = list() + var/turf/T = get_turf(src) + for(var/mob/living/M in T) + if(!iscultist(M)) + myriad_targets |= M + if(!myriad_targets.len) + fail_invoke() + log_game("Offer rune failed - no eligible targets") + return + rune_in_use = TRUE + visible_message("[src] pulses blood red!") + var/oldcolor = color + color = "#7D1717" + var/mob/living/L = pick(myriad_targets) + var/is_clock = is_servant_of_ratvar(L) + var/is_convertable = is_convertable_to_cult(L) + if(L.stat != DEAD && (is_clock || is_convertable)) + invocation = "Mah'weyh pleggh at e'ntrath!" + ..() + if(is_clock) + L.visible_message("[L]'s eyes glow a defiant yellow!", \ + "\"Stop resisting. You will be mi-\"\n\ + \"Give up and you will feel pain unlike anything you've ever felt!\"") + L.Weaken(4) + else if(is_convertable) + do_convert(L, invokers) + else + invocation = "Barhah hra zar'garis!" + ..() + do_sacrifice(L, invokers) + animate(src, color = oldcolor, time = 5) + addtimer(src, "update_atom_colour", 5) + rune_in_use = FALSE + +/obj/effect/rune/convert/proc/do_convert(mob/living/convertee, list/invokers) + if(invokers.len < 2) + for(var/M in invokers) + M << "You need more invokers to convert [convertee]!" + log_game("Offer rune failed - tried conversion with one invoker") + return 0 + if(convertee.null_rod_check()) + for(var/M in invokers) + M << "Something is shielding [convertee]'s mind!" + log_game("Offer rune failed - convertee had null rod") + return 0 + var/brutedamage = convertee.getBruteLoss() + var/burndamage = convertee.getFireLoss() + if(brutedamage || burndamage) + convertee.adjustBruteLoss(-(brutedamage * 0.75)) + convertee.adjustFireLoss(-(burndamage * 0.75)) + convertee.visible_message("[convertee] writhes in pain \ + [brutedamage || burndamage ? "even as [convertee.p_their()] wounds heal and close" : "as the markings below [convertee.p_them()] glow a bloody red"]!", \ + "AAAAAAAAAAAAAA-") + ticker.mode.add_cultist(convertee.mind, 1) + new /obj/item/weapon/tome(get_turf(src)) + convertee.mind.special_role = "Cultist" + convertee << "Your blood pulses. Your head throbs. The world goes red. All at once you are aware of a horrible, horrible, truth. The veil of reality has been ripped away \ + and something evil takes root." + convertee << "Assist your new compatriots in their dark dealings. Your goal is theirs, and theirs is yours. You serve the Geometer above all else. Bring it back.\ + " + return 1 + +/obj/effect/rune/convert/proc/do_sacrifice(mob/living/sacrificial, list/invokers) + if((((ishuman(sacrificial) || iscyborg(sacrificial)) && sacrificial.stat != DEAD) || is_sacrifice_target(sacrificial.mind)) && invokers.len < 3) + for(var/M in invokers) + M << "[sacrificial] is too greatly linked to the world! You need three acolytes!" + log_game("Offer rune failed - not enough acolytes and target is living or sac target") + return FALSE + var/sacrifice_fulfilled = FALSE + + if(sacrificial.mind) + sacrificed += sacrificial.mind + if(is_sacrifice_target(sacrificial.mind)) + sacrifice_fulfilled = TRUE + else + sacrificed += sacrificial + + PoolOrNew(/obj/effect/overlay/temp/cult/sac, get_turf(src)) + for(var/M in invokers) + if(sacrifice_fulfilled) + M << "\"Yes! This is the one I desire! You have done well.\"" + else + if(ishuman(sacrificial) || iscyborg(sacrificial)) + M << "\"I accept this sacrifice.\"" + else + M << "\"I accept this meager sacrifice.\"" + + var/obj/item/device/soulstone/stone = new /obj/item/device/soulstone(get_turf(src)) + if(sacrificial.mind) + stone.invisibility = INVISIBILITY_MAXIMUM //so it's not picked up during transfer_soul() + stone.transfer_soul("FORCE", sacrificial, usr) + stone.invisibility = 0 + + if(sacrificial) + if(iscyborg(sacrificial)) + playsound(sacrificial, 'sound/magic/Disable_Tech.ogg', 100, 1) + sacrificial.dust() //To prevent the MMI from remaining + else + playsound(sacrificial, 'sound/magic/Disintegrate.ogg', 100, 1) + sacrificial.gib() + return TRUE + +//Ritual of Dimensional Rending: Calls forth the avatar of Nar-Sie upon the station. +/obj/effect/rune/narsie + cultist_name = "Summon Nar-Sie" + cultist_desc = "tears apart dimensional barriers, calling forth the Geometer. Requires 9 invokers." + invocation = "TOK-LYR RQA-NAP G'OLT-ULOFT!!" + req_cultists = 9 + icon = 'icons/effects/96x96.dmi' + color = "#7D1717" + icon_state = "rune_large" + pixel_x = -32 //So the big ol' 96x96 sprite shows up right + pixel_y = -32 + scribe_delay = 450 //how long the rune takes to create + scribe_damage = 40.1 //how much damage you take doing it + var/used + var/ignore_gamemode = FALSE + +/obj/effect/rune/narsie/New() + . = ..() + poi_list |= src + +/obj/effect/rune/narsie/Destroy() + poi_list -= src + . = ..() + +/obj/effect/rune/narsie/talismanhide() //can't hide this, and you wouldn't want to + return + +/obj/effect/rune/narsie/invoke(var/list/invokers) + if(used) + return + if(z != ZLEVEL_STATION) + return + + var/datum/game_mode/cult/cult_mode + + if(ticker.mode.name == "cult") + cult_mode = ticker.mode + + if(!cult_mode && !ignore_gamemode) + for(var/M in invokers) + M << "Nar-Sie does not respond!" + fail_invoke() + log_game("Summon Nar-Sie rune failed - gametype is not cult") + return + + if(locate(/obj/singularity/narsie) in poi_list) + for(var/M in invokers) + M << "Nar-Sie is already on this plane!" + log_game("Summon Nar-Sie rune failed - already summoned") + return + //BEGIN THE SUMMONING + used = 1 + ..() + world << 'sound/effects/dimensional_rend.ogg' //There used to be a message for this but every time it was changed it got edgier so I removed it + var/turf/T = get_turf(src) + sleep(40) + if(src) + color = "#FF0000" + new /obj/singularity/narsie/large(T) //Causes Nar-Sie to spawn even if the rune has been removed + if(cult_mode) + cult_mode.eldergod = 0 + +/obj/effect/rune/narsie/attackby(obj/I, mob/user, params) //Since the narsie rune takes a long time to make, add logging to removal. + if((istype(I, /obj/item/weapon/tome) && iscultist(user))) + user.visible_message("[user.name] begins erasing the [src]...", "You begin erasing the [src]...") + if(do_after(user, 50, target = src)) //Prevents accidental erasures. + log_game("Summon Narsie rune erased by [user.mind.key] (ckey) with a tome") + message_admins("[key_name_admin(user)] erased a Narsie rune with a tome") + ..() + return + else + if(istype(I, /obj/item/weapon/nullrod)) //Begone foul magiks. You cannot hinder me. + log_game("Summon Narsie rune erased by [user.mind.key] (ckey) using a null rod") + message_admins("[key_name_admin(user)] erased a Narsie rune with a null rod") + ..() + return + +//Rite of Resurrection: Requires the corpse of a cultist and that there have been less revives than the number of people sacrificed +/obj/effect/rune/raise_dead + cultist_name = "Raise Dead" + cultist_desc = "requires the corpse of a cultist placed upon the rune. Provided there have been sufficient sacrifices, they will be revived." + invocation = null //Depends on the name of the user - see below + icon_state = "1" + color = "#C80000" + var/static/revives_used = 0 + +/obj/effect/rune/raise_dead/examine(mob/user) + ..() + if(iscultist(user) || user.stat == DEAD) + var/revive_number = 0 + if(sacrificed.len) + revive_number = sacrificed.len - revives_used + user << "Revives Remaining: [revive_number]" + +/obj/effect/rune/raise_dead/invoke(var/list/invokers) + var/turf/T = get_turf(src) + var/mob/living/mob_to_revive + var/list/potential_revive_mobs = list() + var/mob/living/user = invokers[1] + if(rune_in_use) + return + for(var/mob/living/M in T.contents) + if(iscultist(M) && M.stat == DEAD) + potential_revive_mobs |= M + if(!potential_revive_mobs.len) + user << "There are no dead cultists on the rune!" + log_game("Raise Dead rune failed - no corpses to revive") + fail_invoke() + return + if(!sacrificed.len || sacrificed.len <= revives_used) + user << "You have sacrificed too few people to revive a cultist!" + fail_invoke() + return + if(potential_revive_mobs.len > 1) + mob_to_revive = input(user, "Choose a cultist to revive.", "Cultist to Revive") as null|anything in potential_revive_mobs + else + mob_to_revive = potential_revive_mobs[1] + if(!src || qdeleted(src) || rune_in_use || !validness_checks(mob_to_revive, user)) + return + rune_in_use = 1 + if(user.name == "Herbert West") + user.say("To life, to life, I bring them!") + else + user.say("Pasnar val'keriam usinar. Savrae ines amutan. Yam'toth remium il'tarat!") + ..() + revives_used++ + mob_to_revive.revive(1, 1) //This does remove disabilities and such, but the rune might actually see some use because of it! + mob_to_revive.grab_ghost() + mob_to_revive << "\"PASNAR SAVRAE YAM'TOTH. Arise.\"" + mob_to_revive.visible_message("[mob_to_revive] draws in a huge breath, red light shining from [mob_to_revive.p_their()] eyes.", \ + "You awaken suddenly from the void. You're alive!") + rune_in_use = 0 + +/obj/effect/rune/raise_dead/proc/validness_checks(mob/living/target_mob, mob/living/user) + var/turf/T = get_turf(src) + if(!user) + return 0 + if(!Adjacent(user) || user.incapacitated()) + return 0 + if(!target_mob) + fail_invoke() + return 0 + if(!(target_mob in T.contents)) + user << "The cultist to revive has been moved!" + fail_invoke() + log_game("Raise Dead rune failed - revival target moved") + return 0 + var/mob/dead/observer/ghost = target_mob.get_ghost(TRUE) + if(!ghost) + user << "The corpse to revive has no spirit!" + fail_invoke() + log_game("Raise Dead rune failed - revival target has no ghost") + return 0 + if(!sacrificed.len || sacrificed.len <= revives_used) + user << "You have sacrificed too few people to revive a cultist!" + fail_invoke() + log_game("Raise Dead rune failed - too few sacrificed") + return 0 + return 1 + +/obj/effect/rune/raise_dead/fail_invoke() + ..() + for(var/mob/living/M in range(1,src)) + if(iscultist(M) && M.stat == DEAD) + M.visible_message("[M] twitches.") + + +//Rite of Disruption: Emits an EMP blast. +/obj/effect/rune/emp + cultist_name = "Electromagnetic Disruption" + cultist_desc = "emits a large electromagnetic pulse, increasing in size for each cultist invoking it, hindering electronics and disabling silicons." + invocation = "Ta'gh fara'qha fel d'amar det!" + icon_state = "5" + allow_excess_invokers = 1 + color = "#4D94FF" + +/obj/effect/rune/emp/invoke(var/list/invokers) + var/turf/E = get_turf(src) + ..() + visible_message("[src] glows blue for a moment before vanishing.") + switch(invokers.len) + if(1 to 2) + playsound(E, 'sound/items/Welder2.ogg', 25, 1) + for(var/M in invokers) + M << "You feel a minute vibration pass through you..." + if(3 to 6) + playsound(E, 'sound/magic/Disable_Tech.ogg', 50, 1) + for(var/M in invokers) + M << "Your hair stands on end as a shockwave eminates from the rune!" + if(7 to INFINITY) + playsound(E, 'sound/magic/Disable_Tech.ogg', 100, 1) + for(var/M in invokers) + var/mob/living/L = M + L << "You chant in unison and a colossal burst of energy knocks you backward!" + L.Weaken(2) + qdel(src) //delete before pulsing because it's a delay reee + empulse(E, 9*invokers.len, 12*invokers.len) // Scales now, from a single room to most of the station depending on # of chanters + +//Rite of Astral Communion: Separates one's spirit from their body. They will take damage while it is active. +/obj/effect/rune/astral + cultist_name = "Astral Communion" + cultist_desc = "severs the link between one's spirit and body. This effect is taxing and one's physical body will take damage while this is active." + invocation = "Fwe'sh mah erl nyag r'ya!" + icon_state = "7" + color = "#7D1717" + rune_in_use = 0 //One at a time, please! + construct_invoke = 0 + var/mob/living/affecting = null + +/obj/effect/rune/astral/examine(mob/user) + ..() + if(affecting) + user << "A translucent field encases [user] above the rune!" + +/obj/effect/rune/astral/can_invoke(mob/living/user) + if(rune_in_use) + user << "[src] cannot support more than one body!" + log_game("Astral Communion rune failed - more than one user") + return list() + var/turf/T = get_turf(src) + if(!(user in T)) + user << "You must be standing on top of [src]!" + log_game("Astral Communion rune failed - user not standing on rune") + return list() + return ..() + +/obj/effect/rune/astral/invoke(var/list/invokers) + var/mob/living/user = invokers[1] + ..() + var/turf/T = get_turf(src) + rune_in_use = 1 + affecting = user + user.color = "#7D1717" + user.visible_message("[user] freezes statue-still, glowing an unearthly red.", \ + "You see what lies beyond. All is revealed. While this is a wondrous experience, your physical form will waste away in this state. Hurry...") + user.ghostize(1) + while(user) + if(!affecting) + visible_message("[src] pulses gently before falling dark.") + affecting = null //In case it's assigned to a number or something + rune_in_use = 0 + return + affecting.apply_damage(0.1, BRUTE) + if(!(user in T)) + user.visible_message("A spectral tendril wraps around [user] and pulls [user.p_them()] back to the rune!") + Beam(user,icon_state="drainbeam",time=2) + user.forceMove(get_turf(src)) //NO ESCAPE :^) + if(user.key) + user.visible_message("[user] slowly relaxes, the glow around [user.p_them()] dimming.", \ + "You are re-united with your physical form. [src] releases its hold over you.") + user.color = initial(user.color) + user.Weaken(3) + rune_in_use = 0 + affecting = null + return + if(user.stat == UNCONSCIOUS) + if(prob(1)) + var/mob/dead/observer/G = user.get_ghost() + G << "You feel the link between you and your body weakening... you must hurry!" + if(user.stat == DEAD) + user.color = initial(user.color) + rune_in_use = 0 + affecting = null + var/mob/dead/observer/G = user.get_ghost() + G << "You suddenly feel your physical form pass on. [src]'s exertion has killed you!" + return + sleep(1) + rune_in_use = 0 + + +var/list/wall_runes = list() +//Rite of the Corporeal Shield: When invoked, becomes solid and cannot be passed. Invoke again to undo. +/obj/effect/rune/wall + cultist_name = "Form Barrier" + cultist_desc = "when invoked, makes a temporary invisible wall to block passage. Can be invoked again to reverse this." + invocation = "Khari'd! Eske'te tannin!" + icon_state = "1" + color = "#C80000" + var/density_timer + var/recharging = FALSE + +/obj/effect/rune/wall/New() + ..() + wall_runes += src + +/obj/effect/rune/wall/examine(mob/user) + ..() + if(density) + user << "There is a barely perceptible shimmering of the air above [src]." + +/obj/effect/rune/wall/Destroy() + density = 0 + wall_runes -= src + air_update_turf(1) + return ..() + +/obj/effect/rune/wall/CanAtmosPass(turf/T) + return !density + +/obj/effect/rune/wall/BlockSuperconductivity() + return density + +/obj/effect/rune/wall/invoke(var/list/invokers) + if(recharging) + return + var/mob/living/user = invokers[1] + ..() + density = !density + update_state() + if(density) + spread_density() + user.visible_message("[user] [iscarbon(user) ? "places [user.p_their()] hands on":"stares intently at"] [src], and [density ? "the air above it begins to shimmer" : "the shimmer above it fades"].", \ + "You channel your life energy into [src], [density ? "temporarily preventing" : "allowing"] passage above it.") + if(iscarbon(user)) + var/mob/living/carbon/C = user + C.apply_damage(2, BRUTE, pick("l_arm", "r_arm")) + +/obj/effect/rune/wall/proc/spread_density() + for(var/R in wall_runes) + var/obj/effect/rune/wall/W = R + if(W.z == z && get_dist(src, W) <= 2 && !W.density && !W.recharging) + W.density = TRUE + W.update_state() + W.spread_density() + density_timer = addtimer(src, "lose_density", 900) + +/obj/effect/rune/wall/proc/lose_density() + if(density) + recharging = TRUE + density = FALSE + update_state() + var/oldcolor = color + color = "#696969" + animate(src, oldcolor, time = 50, easing = EASE_IN) + addtimer(src, "update_atom_colour", 50) + addtimer(src, "recharge", 50) + +/obj/effect/rune/wall/proc/recharge() + recharging = FALSE + color = initial(color) + +/obj/effect/rune/wall/proc/update_state() + deltimer(density_timer) + air_update_turf(1) + if(density) + var/image/I = image(layer = ABOVE_MOB_LAYER, icon = 'icons/effects/effects.dmi', icon_state = "barriershimmer") + I.appearance_flags = RESET_COLOR + I.alpha = 60 + I.color = "#701414" + add_overlay(I) + color = "#FF0000" + else + cut_overlays() + color = "#C80000" + +//Rite of Joined Souls: Summons a single cultist. +/obj/effect/rune/summon + cultist_name = "Summon Cultist" + cultist_desc = "summons a single cultist to the rune. Requires 2 invokers." + invocation = "N'ath reth sh'yro eth d'rekkathnor!" + req_cultists = 2 + allow_excess_invokers = 1 + icon_state = "5" + color = "#00FF00" + +/obj/effect/rune/summon/invoke(var/list/invokers) + var/mob/living/user = invokers[1] + var/list/cultists = list() + for(var/datum/mind/M in ticker.mode.cult) + if(!(M.current in invokers) && M.current && M.current.stat != DEAD) + cultists |= M.current + var/mob/living/cultist_to_summon = input(user, "Who do you wish to call to [src]?", "Followers of the Geometer") as null|anything in cultists + if(!Adjacent(user) || !src || qdeleted(src) || user.incapacitated()) + return + if(!cultist_to_summon) + user << "You require a summoning target!" + fail_invoke() + log_game("Summon Cultist rune failed - no target") + return + if(cultist_to_summon.stat == DEAD) + user << "[cultist_to_summon] has died!" + fail_invoke() + log_game("Summon Cultist rune failed - target died") + return + if(!iscultist(cultist_to_summon)) + user << "[cultist_to_summon] is not a follower of the Geometer!" + fail_invoke() + log_game("Summon Cultist rune failed - target was deconverted") + return + if(cultist_to_summon.z > ZLEVEL_SPACEMAX) + user << "[cultist_to_summon] is not in our dimension!" + fail_invoke() + log_game("Summon Cultist rune failed - target in away mission") + return + cultist_to_summon.visible_message("[cultist_to_summon] suddenly disappears in a flash of red light!", \ + "Overwhelming vertigo consumes you as you are hurled through the air!") + ..() + visible_message("A foggy shape materializes atop [src] and solidifes into [cultist_to_summon]!") + user.apply_damage(10, BRUTE, "head") + cultist_to_summon.forceMove(get_turf(src)) + qdel(src) + +//Rite of Boiling Blood: Deals extremely high amounts of damage to non-cultists nearby +/obj/effect/rune/blood_boil + cultist_name = "Boil Blood" + cultist_desc = "boils the blood of non-believers who can see the rune, rapidly dealing extreme amounts of damage. Requires 3 invokers." + invocation = "Dedo ol'btoh!" + icon_state = "4" + color = "#C80000" + req_cultists = 3 + construct_invoke = 0 + var/tick_damage = 25 + rune_in_use = FALSE + +/obj/effect/rune/blood_boil/do_invoke_glow() + return + +/obj/effect/rune/blood_boil/invoke(var/list/invokers) + if(rune_in_use) + return + ..() + rune_in_use = TRUE + var/turf/T = get_turf(src) + visible_message("[src] turns a bright, glowing orange!") + SetLuminosity(6) + color = "#FC9B54" + for(var/M in invokers) + var/mob/living/L = M + L.apply_damage(10, BRUTE, pick("l_arm", "r_arm")) + L << "[src] saps your strength!" + for(var/mob/living/L in viewers(T)) + if(!iscultist(L) && L.blood_volume) + var/obj/item/weapon/nullrod/N = L.null_rod_check() + if(N) + L << "\The [N] suddenly burns hotly before returning to normal!" + continue + L << "Your blood boils in your veins!" + if(is_servant_of_ratvar(L)) + L << "You feel an unholy darkness dimming the Justiciar's light!" + animate(src, color = "#FCB56D", time = 4) + sleep(4) + if(!src) + return + do_area_burn(T, 0.5) + animate(src, color = "#FFDF80", time = 5) + sleep(5) + if(!src) + return + do_area_burn(T, 1) + animate(src, color = "#FFFDF4", time = 6) + sleep(6) + if(!src) + return + do_area_burn(T, 1.5) + PoolOrNew(/obj/effect/hotspot, T) + qdel(src) + +/obj/effect/rune/blood_boil/proc/do_area_burn(turf/T, multiplier) + for(var/mob/living/L in viewers(T)) + if(!iscultist(L) && L.blood_volume) + var/obj/item/weapon/nullrod/N = L.null_rod_check() + if(N) + continue + L.take_overall_damage(tick_damage*multiplier, tick_damage*multiplier) + if(is_servant_of_ratvar(L)) + L.adjustStaminaLoss(tick_damage*0.5) + + +//Deals brute damage to all targets on the rune and heals the invoker for each target drained. +/obj/effect/rune/leeching + cultist_name = "Drain Life" + cultist_desc = "drains the life of all targets on the rune, restoring life to the user." + invocation = "Yu'gular faras desdae. Umathar uf'kal thenar!" + icon_state = "3" + color = "#9F1C34" + +/obj/effect/rune/leeching/can_invoke(mob/living/user) + if(world.time <= user.next_move) + return list() + var/turf/T = get_turf(src) + var/list/potential_targets = list() + for(var/mob/living/carbon/M in T.contents - user) + if(M.stat != DEAD) + potential_targets += M + if(!potential_targets.len) + user << "There must be at least one valid target on the rune!" + log_game("Leeching rune failed - no valid targets") + return list() + return ..() + +/obj/effect/rune/leeching/invoke(var/list/invokers) + var/mob/living/user = invokers[1] + user.changeNext_move(CLICK_CD_CLICK_ABILITY) + ..() + var/turf/T = get_turf(src) + for(var/mob/living/carbon/M in T.contents - user) + if(M.stat != DEAD) + var/drained_amount = rand(10,20) + M.apply_damage(drained_amount, BRUTE, "chest") + user.adjustBruteLoss(-drained_amount) + M << "You feel extremely weak." + user.Beam(T,icon_state="drainbeam",time=5) + user.visible_message("Blood flows from the rune into [user]!", \ + "Blood flows into you, healing your wounds and revitalizing your spirit.") + + +//Rite of Spectral Manifestation: Summons a ghost on top of the rune as a cultist human with no items. User must stand on the rune at all times, and takes damage for each summoned ghost. +/obj/effect/rune/manifest + cultist_name = "Manifest Spirit" + cultist_desc = "manifests a spirit as a servant of the Geometer. The invoker must not move from atop the rune, and will take damage for each summoned spirit." + invocation = "Gal'h'rfikk harfrandid mud'gib!" //how the fuck do you pronounce this + icon_state = "6" + construct_invoke = 0 + color = "#C80000" + +/obj/effect/rune/manifest/New(loc) + ..() + notify_ghosts("Manifest rune created in [get_area(src)].", 'sound/effects/ghost2.ogg', source = src) + +/obj/effect/rune/manifest/can_invoke(mob/living/user) + if(!(user in get_turf(src))) + user << "You must be standing on [src]!" + fail_invoke() + log_game("Manifest rune failed - user not standing on rune") + return list() + var/list/ghosts_on_rune = list() + for(var/mob/dead/observer/O in get_turf(src)) + if(O.client && !jobban_isbanned(O, ROLE_CULTIST)) + ghosts_on_rune |= O + if(!ghosts_on_rune.len) + user << "There are no spirits near [src]!" + fail_invoke() + log_game("Manifest rune failed - no nearby ghosts") + return list() + return ..() + +/obj/effect/rune/manifest/invoke(var/list/invokers) + var/mob/living/user = invokers[1] + var/list/ghosts_on_rune = list() + for(var/mob/dead/observer/O in get_turf(src)) + if(O.client && !jobban_isbanned(O, ROLE_CULTIST)) + ghosts_on_rune |= O + var/mob/dead/observer/ghost_to_spawn = pick(ghosts_on_rune) + var/mob/living/carbon/human/new_human = new(get_turf(src)) + new_human.real_name = ghost_to_spawn.real_name + new_human.alpha = 150 //Makes them translucent + ..() + visible_message("A cloud of red mist forms above [src], and from within steps... a man.") + user << "Your blood begins flowing into [src]. You must remain in place and conscious to maintain the forms of those summoned. This will hurt you slowly but surely..." + var/turf/T = get_turf(src) + var/obj/structure/emergency_shield/invoker/N = new(T) + + new_human.key = ghost_to_spawn.key + ticker.mode.add_cultist(new_human.mind, 0) + new_human << "You are a servant of the Geometer. You have been made semi-corporeal by the cult of Nar-Sie, and you are to serve them at all costs." + + while(user in T) + if(user.stat) + break + user.apply_damage(0.1, BRUTE) + sleep(3) + + qdel(N) + if(new_human) + new_human.visible_message("[new_human] suddenly dissolves into bones and ashes.", \ + "Your link to the world fades. Your form breaks apart.") + for(var/obj/I in new_human) + new_human.unEquip(I) + new_human.dust() diff --git a/code/game/gamemodes/cult/talisman.dm b/code/game/gamemodes/cult/talisman.dm new file mode 100644 index 0000000..4779b56 --- /dev/null +++ b/code/game/gamemodes/cult/talisman.dm @@ -0,0 +1,436 @@ +/obj/item/weapon/paper/talisman + var/cultist_name = "talisman" + var/cultist_desc = "A basic talisman. It serves no purpose." + var/invocation = "Naise meam!" + var/uses = 1 + var/health_cost = 0 //The amount of health taken from the user when invoking the talisman + +/obj/item/weapon/paper/talisman/examine(mob/user) + if(iscultist(user) || user.stat == DEAD) + user << "Name: [cultist_name]" + user << "Effect: [cultist_desc]" + user << "Uses Remaining: [uses]" + else + user << "There are indecipherable images scrawled on the paper in what looks to be... blood?" + +/obj/item/weapon/paper/talisman/attack_self(mob/living/user) + if(!iscultist(user)) + user << "There are indecipherable images scrawled on the paper in what looks to be... blood?" + return + if(invoke(user)) + uses-- + if(uses <= 0) + user.drop_item() + qdel(src) + +/obj/item/weapon/paper/talisman/proc/invoke(mob/living/user, successfuluse = 1) + . = successfuluse + if(successfuluse) //if the calling whatever says we succeed, do the fancy stuff + if(invocation) + user.whisper(invocation) + if(health_cost && iscarbon(user)) + var/mob/living/carbon/C = user + C.apply_damage(health_cost, BRUTE, pick("l_arm", "r_arm")) + +//Malformed Talisman: If something goes wrong. +/obj/item/weapon/paper/talisman/malformed + cultist_name = "malformed talisman" + cultist_desc = "A talisman with gibberish scrawlings. No good can come from invoking this." + invocation = "Ra'sha yoka!" + +/obj/item/weapon/paper/talisman/malformed/invoke(mob/living/user, successfuluse = 1) + user << "You feel a pain in your head. The Geometer is displeased." + if(iscarbon(user)) + var/mob/living/carbon/C = user + C.apply_damage(10, BRUTE, "head") + +//Supply Talisman: Has a few unique effects. Granted only to starter cultists. +/obj/item/weapon/paper/talisman/supply + cultist_name = "Supply Talisman" + cultist_desc = "A multi-use talisman that can create various objects. Intended to increase the cult's strength early on." + invocation = null + uses = 3 + +/obj/item/weapon/paper/talisman/supply/invoke(mob/living/user, successfuluse = 1) + var/dat = "There are [uses] bloody runes on the parchment.
    " + dat += "Please choose the chant to be imbued into the fabric of reality.
    " + dat += "
    " + dat += "N'ath reth sh'yro eth d'raggathnor! - Summons an arcane tome, used to scribe runes and communicate with other cultists.
    " + dat += "Bar'tea eas! - Provides 5 runed metal.
    " + dat += "Sas'so c'arta forbici! - Allows you to move to a selected teleportation rune.
    " + dat += "Ta'gh fara'qha fel d'amar det! - Allows you to destroy technology in a short range.
    " + dat += "Fuu ma'jin! - Allows you to stun a person by attacking them with the talisman.
    " + dat += "Kla'atu barada nikt'o! - Two use talisman, first use makes all nearby runes invisible, second use reveals nearby hidden runes.
    " + dat += "Kal'om neth! - Summons a soul stone, used to capure the spirits of dead or dying humans.
    " + dat += "Daa'ig osk! - Summons a construct shell for use with soulstone-captured souls. It is too large to carry on your person.
    " + var/datum/browser/popup = new(user, "talisman", "", 400, 400) + popup.set_content(dat) + popup.open() + return 0 + +/obj/item/weapon/paper/talisman/supply/Topic(href, href_list) + if(src) + if(usr.stat || usr.restrained() || !in_range(src, usr)) + return + if(href_list["rune"]) + switch(href_list["rune"]) + if("newtome") + var/obj/item/weapon/tome/T = new(usr) + usr.put_in_hands(T) + if("metal") + if(istype(src, /obj/item/weapon/paper/talisman/supply/weak)) + usr.visible_message("Lesser supply talismans lack the strength to materialize runed metal!") + return + var/obj/item/stack/sheet/runed_metal/R = new(usr,5) + usr.put_in_hands(R) + if("teleport") + var/obj/item/weapon/paper/talisman/teleport/T = new(usr) + usr.put_in_hands(T) + if("emp") + var/obj/item/weapon/paper/talisman/emp/T = new(usr) + usr.put_in_hands(T) + if("runestun") + var/obj/item/weapon/paper/talisman/stun/T = new(usr) + usr.put_in_hands(T) + if("soulstone") + var/obj/item/device/soulstone/T = new(usr) + usr.put_in_hands(T) + if("construct") + new /obj/structure/constructshell(get_turf(usr)) + if("veiling") + var/obj/item/weapon/paper/talisman/true_sight/T = new(usr) + usr.put_in_hands(T) + src.uses-- + if(src.uses <= 0) + if(iscarbon(usr)) + var/mob/living/carbon/C = usr + C.drop_item() + visible_message("[src] crumbles to dust.") + qdel(src) + +/obj/item/weapon/paper/talisman/supply/weak + cultist_name = "Lesser Supply Talisman" + uses = 2 + +//Rite of Translocation: Same as rune +/obj/item/weapon/paper/talisman/teleport + cultist_name = "Talisman of Teleportation" + cultist_desc = "A single-use talisman that will teleport a user to a random rune of the same keyword." + color = "#551A8B" // purple + invocation = "Sas'so c'arta forbici!" + health_cost = 5 + +/obj/item/weapon/paper/talisman/teleport/invoke(mob/living/user, successfuluse = 1) + var/list/potential_runes = list() + var/list/teleportnames = list() + var/list/duplicaterunecount = list() + for(var/R in teleport_runes) + var/obj/effect/rune/teleport/T = R + var/resultkey = T.listkey + if(resultkey in teleportnames) + duplicaterunecount[resultkey]++ + resultkey = "[resultkey] ([duplicaterunecount[resultkey]])" + else + teleportnames.Add(resultkey) + duplicaterunecount[resultkey] = 1 + potential_runes[resultkey] = T + + if(!potential_runes.len) + user << "There are no valid runes to teleport to!" + log_game("Teleport talisman failed - no other teleport runes") + return ..(user, 0) + + if(user.z > ZLEVEL_SPACEMAX) + user << "You are not in the right dimension!" + log_game("Teleport talisman failed - user in away mission") + return ..(user, 0) + + var/input_rune_key = input(user, "Choose a rune to teleport to.", "Rune to Teleport to") as null|anything in potential_runes //we know what key they picked + var/obj/effect/rune/teleport/actual_selected_rune = potential_runes[input_rune_key] //what rune does that key correspond to? + if(!src || qdeleted(src) || !user || !user.is_holding(src) || user.incapacitated() || !actual_selected_rune) + return ..(user, 0) + var/turf/target = get_turf(actual_selected_rune) + if(is_blocked_turf(target)) + user << "The target rune is blocked. Attempting to teleport to it would be massively unwise." + return ..(user, 0) + user.visible_message("Dust flows from [user]'s hand, and they disappear in a flash of red light!", \ + "You speak the words of the talisman and find yourself somewhere else!") + user.forceMove(target) + return ..() + + +/obj/item/weapon/paper/talisman/summon_tome + cultist_name = "Talisman of Tome Summoning" + cultist_desc = "A one-use talisman that will call an untranslated tome from the archives of the Geometer." + color = "#512727" // red-black + invocation = "N'ath reth sh'yro eth d'raggathnor!" + health_cost = 1 + +/obj/item/weapon/paper/talisman/summon_tome/invoke(mob/living/user, successfuluse = 1) + . = ..() + user.visible_message("[user]'s hand glows red for a moment.", \ + "You speak the words of the talisman!") + new /obj/item/weapon/tome(get_turf(user)) + user.visible_message("A tome appears at [user]'s feet!", \ + "An arcane tome materializes at your feet.") + +/obj/item/weapon/paper/talisman/true_sight + cultist_name = "Talisman of Veiling" + cultist_desc = "A multi-use talisman that hides nearby runes. On its second use, will reveal nearby runes." + color = "#9c9c9c" // grey + invocation = "Kla'atu barada nikt'o!" + health_cost = 1 + uses = 2 + var/revealing = FALSE //if it reveals or not + +/obj/item/weapon/paper/talisman/true_sight/invoke(mob/living/user, successfuluse = 1) + . = ..() + if(!revealing) + user.visible_message("Thin grey dust falls from [user]'s hand!", \ + "You speak the words of the talisman, hiding nearby runes.") + invocation = "Nikt'o barada kla'atu!" + revealing = TRUE + for(var/obj/effect/rune/R in range(3,user)) + R.talismanhide() + else + user.visible_message("A flash of light shines from [user]'s hand!", \ + "You speak the words of the talisman, revealing nearby runes.") + for(var/obj/effect/rune/R in range(3,user)) + R.talismanreveal() + +//Rite of False Truths: Same as rune +/obj/item/weapon/paper/talisman/make_runes_fake + cultist_name = "Talisman of Disguising" + cultist_desc = "A talisman that will make nearby runes appear fake." + color = "#ff80d5" // honk + invocation = "By'o nar'nar!" + +/obj/item/weapon/paper/talisman/make_runes_fake/invoke(mob/living/user, successfuluse = 1) + . = ..() + user.visible_message("Dust flows from [user]s hand.", \ + "You speak the words of the talisman, making nearby runes appear fake.") + for(var/obj/effect/rune/R in orange(6,user)) + R.desc = "A rune vandalizing the station." + + +//Rite of Disruption: Weaker than rune +/obj/item/weapon/paper/talisman/emp + cultist_name = "Talisman of Electromagnetic Pulse" + cultist_desc = "A talisman that will cause a moderately-sized electromagnetic pulse." + color = "#4d94ff" // light blue + invocation = "Ta'gh fara'qha fel d'amar det!" + health_cost = 5 + +/obj/item/weapon/paper/talisman/emp/invoke(mob/living/user, successfuluse = 1) + . = ..() + user.visible_message("[user]'s hand flashes a bright blue!", \ + "You speak the words of the talisman, emitting an EMP blast.") + empulse(src, 4, 8) + + +//Rite of Disorientation: Stuns and inhibit speech on a single target for quite some time +/obj/item/weapon/paper/talisman/stun + cultist_name = "Talisman of Stunning" + cultist_desc = "A talisman that will stun and inhibit speech on a single target. To use, attack target directly." + color = "#ff0000" // red + invocation = "Fuu ma'jin!" + health_cost = 10 + +/obj/item/weapon/paper/talisman/stun/invoke(mob/living/user, successfuluse = 0) + if(successfuluse) //if we're forced to be successful(we normally aren't) then do the normal stuff + return ..() + if(iscultist(user)) + user << "To use this talisman, attack the target directly." + else + user << "There are indecipherable images scrawled on the paper in what looks to be... blood?" + return 0 + +/obj/item/weapon/paper/talisman/stun/attack(mob/living/target, mob/living/user, successfuluse = 1) + if(iscultist(user)) + invoke(user, 1) + user.visible_message("[user] holds up [src], which explodes in a flash of red light!", \ + "You stun [target] with the talisman!") + var/obj/item/weapon/nullrod/N = locate() in target + if(N) + target.visible_message("[target]'s holy weapon absorbs the talisman's light!", \ + "Your holy weapon absorbs the blinding light!") + else + target.Weaken(10) + target.Stun(10) + target.flash_act(1,1) + if(issilicon(target)) + var/mob/living/silicon/S = target + S.emp_act(1) + else if(iscarbon(target)) + var/mob/living/carbon/C = target + C.silent += 5 + C.stuttering += 15 + C.cultslurring += 15 + C.Jitter(15) + if(is_servant_of_ratvar(target)) + target.adjustBruteLoss(15) + user.drop_item() + qdel(src) + return + ..() + + +//Rite of Arming: Equips cultist armor on the user, where available +/obj/item/weapon/paper/talisman/armor + cultist_name = "Talisman of Arming" + cultist_desc = "A talisman that will equip the invoker with cultist equipment if there is a slot to equip it to." + color = "#33cc33" // green + invocation = "N'ath reth sh'yro eth draggathnor!" + +/obj/item/weapon/paper/talisman/armor/invoke(mob/living/user, successfuluse = 1) + . = ..() + user.visible_message("Otherworldly armor suddenly appears on [user]!", \ + "You speak the words of the talisman, arming yourself!") + user.equip_to_slot_or_del(new /obj/item/clothing/head/culthood/alt(user), slot_head) + user.equip_to_slot_or_del(new /obj/item/clothing/suit/cultrobes/alt(user), slot_wear_suit) + user.equip_to_slot_or_del(new /obj/item/clothing/shoes/cult/alt(user), slot_shoes) + user.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/cultpack(user), slot_back) + user.drop_item() + user.put_in_hands(new /obj/item/weapon/melee/cultblade(user)) + user.put_in_hands(new /obj/item/weapon/restraints/legcuffs/bola/cult(user)) + +/obj/item/weapon/paper/talisman/armor/attack(mob/living/target, mob/living/user) + if(iscultist(user) && iscultist(target)) + user.drop_item() + invoke(target) + qdel(src) + return + ..() + + +//Talisman of Horrors: Breaks the mind of the victim with nightmarish hallucinations +/obj/item/weapon/paper/talisman/horror + cultist_name = "Talisman of Horrors" + cultist_desc = "A talisman that will break the mind of the victim with nightmarish hallucinations." + color = "#ffb366" // light orange + invocation = "Lo'Nab Na'Dm!" + +/obj/item/weapon/paper/talisman/horror/attack(mob/living/target, mob/living/user) + if(iscultist(user)) + user << "You disturb [target] with visons of the end!" + if(iscarbon(target)) + var/mob/living/carbon/H = target + H.reagents.add_reagent("mindbreaker", 25) + if(is_servant_of_ratvar(target)) + target << "You see a brief but horrible vision of Ratvar, rusted and scrapped, being torn apart." + target.emote("scream") + target.confused = max(0, target.confused + 3) + target.flash_act() + qdel(src) + + +//Talisman of Fabrication: Creates a construct shell out of 25 metal sheets, or converts plasteel into runed metal up to 25 times +/obj/item/weapon/paper/talisman/construction + cultist_name = "Talisman of Construction" + cultist_desc = "Use this talisman on at least twenty-five metal sheets to create an empty construct shell" + invocation = "Ethra p'ni dedol!" + color = "#000000" // black + uses = 25 + +/obj/item/weapon/paper/talisman/construction/attack_self(mob/living/user) + if(iscultist(user)) + user << "To use this talisman, place it upon a stack of metal sheets." + else + user << "There are indecipherable images scrawled on the paper in what looks to be... blood?" + + +/obj/item/weapon/paper/talisman/construction/attack(obj/M,mob/living/user) + if(iscultist(user)) + user << "This talisman will only work on a stack of metal or plasteel sheets!" + log_game("Construct talisman failed - not a valid target") + else + ..() + +/obj/item/weapon/paper/talisman/construction/afterattack(obj/item/stack/sheet/target, mob/user, proximity_flag, click_parameters) + ..() + if(proximity_flag && iscultist(user)) + var/turf/T = get_turf(target) + if(istype(target, /obj/item/stack/sheet/metal)) + if(target.use(25)) + new /obj/structure/constructshell(T) + user << "The talisman clings to the metal and twists it into a construct shell!" + user << sound('sound/effects/magic.ogg',0,1,25) + invoke(user, 1) + qdel(src) + else + user << "You need more metal to produce a construct shell!" + else if(istype(target, /obj/item/stack/sheet/plasteel)) + var/quantity = min(target.amount, uses) + uses -= quantity + new /obj/item/stack/sheet/runed_metal(T,quantity) + target.use(quantity) + user << "The talisman clings to the plasteel, transforming it into runed metal!" + user << sound('sound/effects/magic.ogg',0,1,25) + invoke(user, 1) + if(uses <= 0) + qdel(src) + else + user << "The talisman must be used on metal or plasteel!" + + +//Talisman of Shackling: Applies special cuffs directly from the talisman +/obj/item/weapon/paper/talisman/shackle + cultist_name = "Talisman of Shackling" + cultist_desc = "Use this talisman on a victim to handcuff them with dark bindings." + invocation = "In'totum Lig'abis!" + color = "#B27300" // burnt-orange + uses = 4 + +/obj/item/weapon/paper/talisman/shackle/invoke(mob/living/user, successfuluse = 0) + if(successfuluse) //if we're forced to be successful(we normally aren't) then do the normal stuff + return ..() + if(iscultist(user)) + user << "To use this talisman, attack the target directly." + else + user << "There are indecipherable images scrawled on the paper in what looks to be... blood?" + return 0 + +/obj/item/weapon/paper/talisman/shackle/attack(mob/living/carbon/target, mob/living/user) + if(iscultist(user) && istype(target)) + if(target.stat == DEAD) + user.visible_message("This talisman's magic does not affect the dead!") + return + CuffAttack(target, user) + return + ..() + +/obj/item/weapon/paper/talisman/shackle/proc/CuffAttack(mob/living/carbon/C, mob/living/user) + if(!C.handcuffed) + invoke(user, 1) + playsound(loc, 'sound/weapons/cablecuff.ogg', 30, 1, -2) + C.visible_message("[user] begins restraining [C] with dark magic!", \ + "[user] begins shaping a dark magic around your wrists!") + if(do_mob(user, C, 30)) + if(!C.handcuffed) + C.handcuffed = new /obj/item/weapon/restraints/handcuffs/energy/cult/used(C) + C.update_handcuffed() + user << "You shackle [C]." + add_logs(user, C, "handcuffed") + uses-- + else + user << "[C] is already bound." + else + user << "You fail to shackle [C]." + else + user << "[C] is already bound." + if(uses <= 0) + user.drop_item() + qdel(src) + return + +/obj/item/weapon/restraints/handcuffs/energy/cult //For the talisman of shackling + name = "cult shackles" + desc = "Shackles that bind the wrists with sinister magic." + trashtype = /obj/item/weapon/restraints/handcuffs/energy/used + origin_tech = "materials=2;magnets=5" + flags = DROPDEL + +/obj/item/weapon/restraints/handcuffs/energy/cult/used/dropped(mob/user) + user.visible_message("[user]'s shackles shatter in a discharge of dark magic!", \ + "Your [src] shatters in a discharge of dark magic!") + . = ..() diff --git a/code/game/gamemodes/devil/devil agent/devil_agent.dm b/code/game/gamemodes/devil/devil agent/devil_agent.dm new file mode 100644 index 0000000..dfdb957 --- /dev/null +++ b/code/game/gamemodes/devil/devil agent/devil_agent.dm @@ -0,0 +1,43 @@ +/datum/game_mode/devil/devil_agents + name = "Devil Agents" + config_tag = "devil_agents" + required_players = 25 + required_enemies = 3 + recommended_enemies = 8 + reroll_friendly = 0 + + traitors_possible = 10 //hard limit on traitors if scaling is turned off + num_modifier = 4 + objective_count = 2 + + var/list/target_list = list() + var/list/late_joining_list = list() + minimum_devils = 3 + + announce_text = "There are devil agents onboard the station, trying to outbid each other!\n\ + + Devils: Purchase souls and interfere with your rivals!\n\ + + Crew: Resist the lure of sin and remain pure!" + +/datum/game_mode/devil/devil_agents/post_setup() + var/i = 0 + for(var/datum/mind/devil in devils) + i++ + if(i + 1 > devils.len) + i = 0 + target_list[devil] = devils[i + 1] + ..() + +/datum/game_mode/devil/devil_agents/add_devil_objectives(datum/mind/devil_mind, quantity) + ..(devil_mind, quantity - give_outsell_objective(devil_mind)) + +/datum/game_mode/devil/devil_agents/proc/give_outsell_objective(datum/mind/devil) + //If you override this method, have it return the number of objectives added. + if(target_list.len && target_list[devil]) // Is a double agent + var/datum/mind/target_mind = target_list[devil] + var/datum/objective/devil/outsell/outsellobjective = new + outsellobjective.owner = devil + outsellobjective.target = target_mind + outsellobjective.update_explanation_text() + devil.objectives += outsellobjective + return 1 + return 0 diff --git a/code/game/gamemodes/devil/devil.dm b/code/game/gamemodes/devil/devil.dm new file mode 100644 index 0000000..0aafc57 --- /dev/null +++ b/code/game/gamemodes/devil/devil.dm @@ -0,0 +1,40 @@ +var/global/list/whiteness = list ( + /obj/item/clothing/under/color/white = 2, + /obj/item/clothing/under/rank/bartender = 1, + /obj/item/clothing/under/rank/chef = 1, + /obj/item/clothing/under/rank/chief_engineer = 1, + /obj/item/clothing/under/rank/scientist = 1, + /obj/item/clothing/under/rank/chemist = 1, + /obj/item/clothing/under/rank/chief_medical_officer = 1, + /obj/item/clothing/under/rank/geneticist = 1, + /obj/item/clothing/under/rank/virologist = 1, + /obj/item/clothing/under/rank/nursesuit = 1, + /obj/item/clothing/under/rank/medical = 1, + /obj/item/clothing/under/rank/det = 1, + /obj/item/clothing/under/suit_jacket/white = 0.5, + /obj/item/clothing/under/burial = 1 +) + + + +/mob/living/proc/check_devil_bane_multiplier(obj/item/weapon, mob/living/attacker) + switch(mind.devilinfo.bane) + if(BANE_WHITECLOTHES) + if(ishuman(attacker)) + var/mob/living/carbon/human/H = attacker + if(H.w_uniform && istype(H.w_uniform, /obj/item/clothing/under)) + var/obj/item/clothing/under/U = H.w_uniform + if(whiteness[U.type]) + src.visible_message("[src] seems to have been harmed by the purity of [attacker]'s clothes.", "Unsullied white clothing is disrupting your form.") + return whiteness[U.type] + 1 + if(BANE_TOOLBOX) + if(istype(weapon,/obj/item/weapon/storage/toolbox)) + src.visible_message("The [weapon] seems unusually robust this time.", "The [weapon] is your unmaking!") + return 2.5 // Will take four hits with a normal toolbox. + if(BANE_HARVEST) + if(istype(weapon,/obj/item/weapon/reagent_containers/food/snacks/grown/)) + src.visible_message("The spirits of the harvest aid in the exorcism.", "The harvest spirits are harming you.") + src.Weaken(2) + qdel(weapon) + return 2 + return 1 \ No newline at end of file diff --git a/code/game/gamemodes/devil/devil_game_mode.dm b/code/game/gamemodes/devil/devil_game_mode.dm new file mode 100644 index 0000000..c64653a --- /dev/null +++ b/code/game/gamemodes/devil/devil_game_mode.dm @@ -0,0 +1,61 @@ +/datum/game_mode/devil + name = "devil" + config_tag = "devil" + antag_flag = ROLE_DEVIL + protected_jobs = list("Lawyer", "Librarian", "Chaplain", "Head of Security", "Captain", "AI") + required_players = 0 + required_enemies = 1 + recommended_enemies = 4 + reroll_friendly = 1 + enemy_minimum_age = 0 + + var/traitors_possible = 4 //hard limit on devils if scaling is turned off + var/num_modifier = 0 // Used for gamemodes, that are a child of traitor, that need more than the usual. + var/objective_count = 2 + var/minimum_devils = 1 + + announce_text = "There are devils onboard the station!\n\ + + Devils: Purchase souls and tempt the crew to sin!\n\ + + Crew: Resist the lure of sin and remain pure!" + +/datum/game_mode/devil/pre_setup() + + if(config.protect_roles_from_antagonist) + restricted_jobs += protected_jobs + if(config.protect_assistant_from_antagonist) + restricted_jobs += "Assistant" + + var/num_devils = 1 + + if(config.traitor_scaling_coeff) + num_devils = max(minimum_devils, min( round(num_players()/(config.traitor_scaling_coeff*3))+ 2 + num_modifier, round(num_players()/(config.traitor_scaling_coeff*1.5)) + num_modifier )) + else + num_devils = max(minimum_devils, min(num_players(), traitors_possible)) + + for(var/j = 0, j < num_devils, j++) + if (!antag_candidates.len) + break + var/datum/mind/devil = pick(antag_candidates) + devils += devil + devil.special_role = traitor_name + devil.restricted_roles = restricted_jobs + + log_game("[devil.key] (ckey) has been selected as a [traitor_name]") + antag_candidates.Remove(devil) + + if(devils.len < required_enemies) + return 0 + return 1 + + +/datum/game_mode/devil/post_setup() + for(var/datum/mind/devil in devils) + spawn(rand(10,100)) + finalize_devil(devil, objective_count) + spawn(100) + add_devil_objectives(devil, objective_count) //This has to be in a separate loop, as we need devil names to be generated before we give objectives in devil agent. + devil.announceDevilLaws() + devil.announce_objectives() + modePlayer += devils + ..() + return 1 diff --git a/code/game/gamemodes/devil/devilinfo.dm b/code/game/gamemodes/devil/devilinfo.dm new file mode 100644 index 0000000..1cbc3fe --- /dev/null +++ b/code/game/gamemodes/devil/devilinfo.dm @@ -0,0 +1,442 @@ +#define BLOOD_THRESHOLD 3 //How many souls are needed per stage. +#define TRUE_THRESHOLD 7 +#define ARCH_THRESHOLD 12 + +#define BASIC_DEVIL 0 +#define BLOOD_LIZARD 1 +#define TRUE_DEVIL 2 +#define ARCH_DEVIL 3 + +#define LOSS_PER_DEATH 2 + +#define SOULVALUE soulsOwned.len-reviveNumber + +#define DEVILRESURRECTTIME 600 + +var/global/list/allDevils = list() +var/global/list/lawlorify = list ( + LORE = list( + OBLIGATION_FOOD = "This devil seems to always offer it's victims food before slaughtering them.", + OBLIGATION_FIDDLE = "This devil will never turn down a musical challenge.", + OBLIGATION_GREET = "This devil seems to only be able to converse with people it knows the name of.", + OBLIGATION_PRESENCEKNOWN = "This devil seems to be unable to attack from stealth.", + OBLIGATION_SAYNAME = "He will always chant his name upon killing someone.", + OBLIGATION_ANNOUNCEKILL = "This devil always loudly announces his kills for the world to hear.", + OBLIGATION_ANSWERTONAME = "This devil always responds to his truename.", + BANE_SILVER = "Silver seems to gravely injure this devil.", + BANE_SALT = "Throwing salt at this devil will hinder his ability to use infernal powers temporarily.", + BANE_LIGHT = "Bright flashes will disorient the devil, likely causing him to flee.", + BANE_IRON = "Cold iron will slowly injure him, until he can purge it from his system.", + BANE_WHITECLOTHES = "Wearing clean white clothing will help ward off this devil.", + BANE_HARVEST = "Presenting the labors of a harvest will disrupt the devil.", + BANE_TOOLBOX = "That which holds the means of creation also holds the means of the devil's undoing.", + BAN_HURTWOMAN = "This devil seems to prefer hunting men.", + BAN_CHAPEL = "This devil avoids holy ground.", + BAN_HURTPRIEST = "The annointed clergy appear to be immune to his powers.", + BAN_AVOIDWATER = "The devil seems to have some sort of aversion to water, though it does not appear to harm him.", + BAN_STRIKEUNCONCIOUS = "This devil only shows interest in those who are awake.", + BAN_HURTLIZARD = "This devil will not strike a lizardman first.", + BAN_HURTANIMAL = "This devil avoids hurting animals.", + BANISH_WATER = "To banish the devil, you must infuse it's body with holy water.", + BANISH_COFFIN = "This devil will return to life if it's remains are not placed within a coffin.", + BANISH_FORMALDYHIDE = "To banish the devil, you must inject it's lifeless body with embalming fluid.", + BANISH_RUNES = "This devil will resurrect after death, unless it's remains are within a rune.", + BANISH_CANDLES = "A large number of nearby lit candles will prevent it from resurrecting.", + BANISH_DESTRUCTION = "It's corpse must be utterly destroyed to prevent resurrection.", + BANISH_FUNERAL_GARB = "If clad in funeral garments, this devil will be unable to resurrect. Should the clothes not fit, lay them gently on top of the devil's corpse." + ), + LAW = list( + OBLIGATION_FOOD = "When not acting in self defense, you must always offer your victim food before harming them.", + OBLIGATION_FIDDLE = "When not in immediate danger, if you are challenged to a musical duel, you must accept it. You are not obligated to duel the same person twice.", + OBLIGATION_GREET = "You must always greet other people by their last name before talking with them.", + OBLIGATION_PRESENCEKNOWN = "You must always make your presence known before attacking.", + OBLIGATION_SAYNAME = "You must always say your true name after you kill someone.", + OBLIGATION_ANNOUNCEKILL = "Upon killing someone, you must make your deed known to all within earshot, over comms if reasonably possible.", + OBLIGATION_ANSWERTONAME = "If you are not under attack, you must always respond to your true name.", + BAN_HURTWOMAN = "You must never harm a female outside of self defense.", + BAN_CHAPEL = "You must never attempt to enter the chapel.", + BAN_HURTPRIEST = "You must never attack a priest.", + BAN_AVOIDWATER = "You must never willingly touch a wet surface.", + BAN_STRIKEUNCONCIOUS = "You must never strike an unconcious person.", + BAN_HURTLIZARD = "You must never harm a lizardman outside of self defense.", + BAN_HURTANIMAL = "You must never harm a non-sentient creature or robot outside of self defense.", + BANE_SILVER = "Silver, in all of it's forms shall be your downfall.", + BANE_SALT = "Salt will disrupt your magical abilities.", + BANE_LIGHT = "Blinding lights will prevent you from using offensive powers for a time.", + BANE_IRON = "Cold wrought iron shall act as poison to you.", + BANE_WHITECLOTHES = "Those clad in pristine white garments will strike you true.", + BANE_HARVEST = "The fruits of the harvest shall be your downfall.", + BANE_TOOLBOX = "Toolboxes are bad news for you, for some reason.", + BANISH_WATER = "If your corpse is filled with holy water, you will be unable to resurrect.", + BANISH_COFFIN = "If your corpse is in a coffin, you will be unable to resurrect.", + BANISH_FORMALDYHIDE = "If your corpse is embalmed, you will be unable to resurrect.", + BANISH_RUNES = "If your corpse is placed within a rune, you will be unable to resurrect.", + BANISH_CANDLES = "If your corpse is near lit candles, you will be unable to resurrect.", + BANISH_DESTRUCTION = "If your corpse is destroyed, you will be unable to resurrect.", + BANISH_FUNERAL_GARB = "If your corpse is clad in funeral garments, you will be unable to resurrect." + ) + ) + +/datum/devilinfo/ + var/datum/mind/owner = null + var/obligation + var/ban + var/bane + var/banish + var/truename + var/list/datum/mind/soulsOwned = new + var/reviveNumber = 0 + var/form = BASIC_DEVIL + var/exists = 0 + +/proc/randomDevilInfo(name = randomDevilName()) + var/datum/devilinfo/devil = new + devil.truename = name + devil.bane = randomdevilbane() + devil.obligation = randomdevilobligation() + devil.ban = randomdevilban() + devil.banish = randomdevilbanish() + return devil + +/proc/devilInfo(name, saveDetails = 0) + if(allDevils[lowertext(name)]) + return allDevils[lowertext(name)] + else + var/datum/devilinfo/devil = randomDevilInfo(name) + allDevils[lowertext(name)] = devil + devil.exists = saveDetails + return devil + + + +/proc/randomDevilName() + var/preTitle = "" + var/title = "" + var/mainName = "" + var/suffix = "" + if(prob(65)) + if(prob(35)) + preTitle = pick("Dark ", "Hellish ", "Fiery ", "Sinful ", "Blood ") + title = pick("Lord ", "Fallen Prelate ", "Count ", "Viscount ", "Vizier ", "Elder ", "Adept ") + var/probability = 100 + mainName = pick("Hal", "Ve", "Odr", "Neit", "Ci", "Quon", "Mya", "Folth", "Wren", "Gyer", "Geyr", "Hil", "Niet", "Twou", "Hu", "Don") + while(prob(probability)) + mainName += pick("hal", "ve", "odr", "neit", "ca", "quon", "mya", "folth", "wren", "gyer", "geyr", "hil", "niet", "twoe", "phi", "coa") + probability -= 20 + if(prob(40)) + suffix = pick(" the Red", " the Soulless", " the Master", ", the Lord of all things", ", Jr.") + return preTitle + title + mainName + suffix + +/proc/randomdevilobligation() + return pick(OBLIGATION_FOOD, OBLIGATION_FIDDLE, OBLIGATION_GREET, OBLIGATION_PRESENCEKNOWN, OBLIGATION_SAYNAME, OBLIGATION_ANNOUNCEKILL, OBLIGATION_ANSWERTONAME) + +/proc/randomdevilban() + return pick(BAN_HURTWOMAN, BAN_CHAPEL, BAN_HURTPRIEST, BAN_AVOIDWATER, BAN_STRIKEUNCONCIOUS, BAN_HURTLIZARD, BAN_HURTANIMAL) + +/proc/randomdevilbane() + return pick(BANE_SALT, BANE_LIGHT, BANE_IRON, BANE_WHITECLOTHES, BANE_SILVER, BANE_HARVEST, BANE_TOOLBOX) + +/proc/randomdevilbanish() + return pick(BANISH_WATER, BANISH_COFFIN, BANISH_FORMALDYHIDE, BANISH_RUNES, BANISH_CANDLES, BANISH_DESTRUCTION, BANISH_FUNERAL_GARB) + +/datum/devilinfo/proc/add_soul(datum/mind/soul) + if(soulsOwned.Find(soul)) + return + soulsOwned += soul + owner.current.nutrition = NUTRITION_LEVEL_FULL + owner.current << "You feel satiated as you received a new soul." + update_hud() + switch(SOULVALUE) + if(0) + owner.current << "Your hellish powers have been restored." + give_base_spells() + if(BLOOD_THRESHOLD) + increase_blood_lizard() + if(TRUE_THRESHOLD) + increase_true_devil() + if(ARCH_THRESHOLD) + increase_arch_devil() + +/datum/devilinfo/proc/remove_soul(datum/mind/soul) + if(soulsOwned.Remove(soul)) + check_regression() + owner.current << "You feel as though a soul has slipped from your grasp." + update_hud() + +/datum/devilinfo/proc/check_regression() + if(form == ARCH_DEVIL) + return //arch devil can't regress + //Yes, fallthrough behavior is intended, so I can't use a switch statement. + if(form == TRUE_DEVIL && SOULVALUE < TRUE_THRESHOLD) + regress_blood_lizard() + if(form == BLOOD_LIZARD && SOULVALUE < BLOOD_THRESHOLD) + regress_humanoid() + if(SOULVALUE < 0) + remove_spells() + owner.current << "As punishment for your failures, all of your powers except contract creation have been revoked." + +/datum/devilinfo/proc/increase_form() + switch(form) + if(BASIC_DEVIL) + increase_blood_lizard() + if(BLOOD_LIZARD) + increase_true_devil() + if(TRUE_DEVIL) + increase_arch_devil() + +/datum/devilinfo/proc/regress_humanoid() + owner.current << "Your powers weaken, have more contracts be signed to regain power." + if(ishuman(owner.current)) + var/mob/living/carbon/human/H = owner.current + H.set_species(/datum/species/human, 1) + H.regenerate_icons() + give_base_spells() + if(istype(owner.current.loc, /obj/effect/dummy/slaughter/)) + owner.current.forceMove(get_turf(owner.current))//Fixes dying while jaunted leaving you permajaunted. + form = BASIC_DEVIL + +/datum/devilinfo/proc/regress_blood_lizard() + var/mob/living/carbon/true_devil/D = owner.current + D << "Your powers weaken, have more contracts be signed to regain power." + D.oldform.loc = D.loc + owner.transfer_to(D.oldform) + give_lizard_spells() + qdel(D) + form = BLOOD_LIZARD + update_hud() + + +/datum/devilinfo/proc/increase_blood_lizard() + owner.current << "You feel as though your humanoid form is about to shed. You will soon turn into a blood lizard." + sleep(50) + if(ishuman(owner.current)) + var/mob/living/carbon/human/H = owner.current + H.set_species(/datum/species/lizard, 1) + H.underwear = "Nude" + H.undershirt = "Nude" + H.socks = "Nude" + H.dna.features["mcolor"] = "511" //A deep red + H.regenerate_icons() + else //Did the devil get hit by a staff of transmutation? + owner.current.color = "#501010" + give_lizard_spells() + form = BLOOD_LIZARD + + + +/datum/devilinfo/proc/increase_true_devil() + owner.current << "You feel as though your current form is about to shed. You will soon turn into a true devil." + sleep(50) + var/mob/living/carbon/true_devil/A = new /mob/living/carbon/true_devil(owner.current.loc) + A.faction |= "hell" + owner.current.loc = A + A.oldform = owner.current + owner.transfer_to(A) + A.set_name() + give_true_spells() + form = TRUE_DEVIL + update_hud() + + +/datum/devilinfo/proc/increase_arch_devil() + var/mob/living/carbon/true_devil/D = owner.current + D << "You feel as though your form is about to ascend." + sleep(50) + if(!D) + return + D.visible_message("[D]'s skin begins to erupt with spikes.", \ + "Your flesh begins creating a shield around yourself.") + sleep(100) + if(!D) + return + D.visible_message("The horns on [D]'s head slowly grow and elongate.", \ + "Your body continues to mutate. Your telepathic abilities grow.") + sleep(90) + if(!D) + return + D.visible_message("[D]'s body begins to violently stretch and contort.", \ + "You begin to rend apart the final barriers to ultimate power.") + sleep(40) + if(!D) + return + D << "Yes!" + sleep(10) + if(!D) + return + D << "YES!!" + sleep(10) + if(!D) + return + D << "YE--" + sleep(1) + if(!D) + return + world << "\"SLOTH, WRATH, GLUTTONY, ACEDIA, ENVY, GREED, PRIDE! FIRES OF HELL AWAKEN!!\"" + world << 'sound/hallucinations/veryfar_noise.ogg' + give_arch_spells() + D.convert_to_archdevil() + if(istype(D.loc, /obj/effect/dummy/slaughter/)) + D.forceMove(get_turf(D))//Fixes dying while jaunted leaving you permajaunted. + var/area/A = get_area(owner.current) + if(A) + notify_ghosts("An arch devil has ascended in \the [A.name]. Reach out to the devil to be given a new shell for your soul.", source = owner.current, action=NOTIFY_ATTACK) + sleep(50) + if(!ticker.mode.devil_ascended) + SSshuttle.emergency.request(null, 0.3) + ticker.mode.devil_ascended++ + form = ARCH_DEVIL + +/datum/devilinfo/proc/remove_spells() + for(var/X in owner.spell_list) + var/obj/effect/proc_holder/spell/S = X + if(!istype(S, /obj/effect/proc_holder/spell/targeted/summon_contract) && !istype(S, /obj/effect/proc_holder/spell/targeted/conjure_item/violin)) + owner.RemoveSpell(S) + +/datum/devilinfo/proc/give_summon_contract() + owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/summon_contract(null)) + + +/datum/devilinfo/proc/give_base_spells(give_summon_contract = 0) + remove_spells() + owner.AddSpell(new /obj/effect/proc_holder/spell/fireball/hellish(null)) + owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/conjure_item/summon_pitchfork(null)) + if(give_summon_contract) + give_summon_contract() + if (obligation == OBLIGATION_FIDDLE) + owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/conjure_item/violin(null)) + +/datum/devilinfo/proc/give_lizard_spells() + remove_spells() + owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/conjure_item/summon_pitchfork(null)) + owner.AddSpell(new /obj/effect/proc_holder/spell/fireball/hellish(null)) + owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/infernal_jaunt(null)) + +/datum/devilinfo/proc/give_true_spells() + remove_spells() + owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/conjure_item/summon_pitchfork/greater(null)) + owner.AddSpell(new /obj/effect/proc_holder/spell/fireball/hellish(null)) + owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/infernal_jaunt(null)) + owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/sintouch(null)) + +/datum/devilinfo/proc/give_arch_spells() + remove_spells() + owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/conjure_item/summon_pitchfork/ascended(null)) + owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/sintouch/ascended(null)) + +/datum/devilinfo/proc/beginResurrectionCheck(mob/living/body) + if(SOULVALUE>0) + owner.current<< "Your body has been damaged to the point that you may no longer use it. At the cost of some of your power, you will return to life soon. Remain in your body." + sleep(DEVILRESURRECTTIME) + if (!body || body.stat == DEAD) + if(SOULVALUE>0) + if(check_banishment(body)) + owner.current<< "Unfortunately, the mortals have finished a ritual that prevents your resurrection." + return -1 + else + owner.current<< "WE LIVE AGAIN!" + return hellish_resurrection(body) + else + owner.current<< "Unfortunately, the power that stemmed from your contracts has been extinguished. You no longer have enough power to resurrect." + return -1 + else + owner.current << " You seem to have resurrected without your hellish powers." + else + owner.current << "Your hellish powers are too weak to resurrect yourself." + +/datum/devilinfo/proc/check_banishment(mob/living/body) + switch(banish) + if(BANISH_WATER) + if(istype(body, /mob/living/carbon)) + var/mob/living/carbon/H = body + return H.reagents.has_reagent("holy water") + return 0 + if(BANISH_COFFIN) + return (body && istype(body.loc, /obj/structure/closet/coffin)) + if(BANISH_FORMALDYHIDE) + if(istype(body, /mob/living/carbon)) + var/mob/living/carbon/H = body + return H.reagents.has_reagent("formaldehyde") + return 0 + if(BANISH_RUNES) + if(body) + for(var/obj/effect/decal/cleanable/crayon/R in range(0,body)) + if (R.name == "rune") + return 1 + return 0 + if(BANISH_CANDLES) + if(body) + var/count = 0 + for(var/obj/item/candle/C in range(1,body)) + count += C.lit + if(count>=4) + return 1 + return 0 + if(BANISH_DESTRUCTION) + if(body) + return 0 + return 1 + if(BANISH_FUNERAL_GARB) + if(ishuman(body)) + var/mob/living/carbon/human/H = body + if(H.w_uniform && istype(H.w_uniform, /obj/item/clothing/under/burial)) + return 1 + return 0 + else + for(var/obj/item/clothing/under/burial/B in range(0,body)) + if(B.loc == get_turf(B)) //Make sure it's not in someone's inventory or something. + return 1 + return 0 + +/datum/devilinfo/proc/hellish_resurrection(mob/living/body) + message_admins("[owner.name] (true name is: [truename]) is resurrecting using hellish energy.") + if(SOULVALUE <= ARCH_THRESHOLD) // once ascended, arch devils do not go down in power by any means. + reviveNumber += LOSS_PER_DEATH + update_hud() + if(body) + body.revive(1,0) + if(istype(body.loc, /obj/effect/dummy/slaughter/)) + body.forceMove(get_turf(body))//Fixes dying while jaunted leaving you permajaunted. + if(istype(body, /mob/living/carbon/true_devil)) + var/mob/living/carbon/true_devil/D = body + if(D.oldform) + D.oldform.revive(1,0) // Heal the old body too, so the devil doesn't resurrect, then immediately regress into a dead body. + else + if(blobstart.len > 0) + var/turf/targetturf = get_turf(pick(blobstart)) + var/mob/currentMob = owner.current + if(!currentMob) + currentMob = owner.get_ghost() + if(!currentMob) + message_admins("[owner.name]'s devil resurrection failed due to client logoff. Aborting.") + return -1 // + if(currentMob.mind != owner) + message_admins("[owner.name]'s devil resurrection failed due to becoming a new mob. Aborting.") + return -1 + currentMob.change_mob_type( /mob/living/carbon/human , targetturf, null, 1) + var/mob/living/carbon/human/H = owner.current + give_summon_contract() + if(SOULVALUE >= BLOOD_THRESHOLD) + H.set_species(/datum/species/lizard, 1) + H.underwear = "Nude" + H.undershirt = "Nude" + H.socks = "Nude" + H.dna.features["mcolor"] = "511" + H.regenerate_icons() + if(SOULVALUE >= TRUE_THRESHOLD) //Yes, BOTH this and the above if statement are to run if soulpower is high enough. + var/mob/living/carbon/true_devil/A = new /mob/living/carbon/true_devil(targetturf) + A.faction |= "hell" + H.forceMove(A) + A.oldform = H + A.set_name() + owner.transfer_to(A) + if(SOULVALUE >= ARCH_THRESHOLD) + A.convert_to_archdevil() + else + throw EXCEPTION("Unable to find a blobstart landmark for hellish resurrection") + check_regression() + +/datum/devilinfo/proc/update_hud() + if(istype(owner.current, /mob/living/carbon)) + var/mob/living/C = owner.current + if(C.hud_used && C.hud_used.devilsouldisplay) + C.hud_used.devilsouldisplay.update_counter(SOULVALUE) diff --git a/code/game/gamemodes/devil/game_mode.dm b/code/game/gamemodes/devil/game_mode.dm new file mode 100644 index 0000000..be5b22c --- /dev/null +++ b/code/game/gamemodes/devil/game_mode.dm @@ -0,0 +1,114 @@ +/datum/game_mode + var/list/datum/mind/sintouched = list() + var/list/datum/mind/devils = list() + var/devil_ascended = 0 // Number of arch devils on station + +/datum/game_mode/proc/auto_declare_completion_sintouched() + var/text = "" + if(sintouched.len) + text += "
    The sintouched were:" + var/list/sintouchedUnique = uniqueList(sintouched) + for(var/S in sintouchedUnique) + var/datum/mind/sintouched_mind = S + text += printplayer(sintouched_mind) + text += printobjectives(sintouched_mind) + text += "
    " + text += "
    " + world << text + +/datum/game_mode/proc/auto_declare_completion_devils() + /var/text = "" + if(devils.len) + text += "
    The devils were:" + for(var/D in devils) + var/datum/mind/devil = D + text += printplayer(devil) + text += printdevilinfo(devil) + text += printobjectives(devil) + text += "
    " + text += "
    " + world << text + + +/datum/game_mode/proc/finalize_devil(datum/mind/devil_mind) + + var/trueName= randomDevilName() + + devil_mind.devilinfo = devilInfo(trueName, 1) + devil_mind.store_memory("Your devilic true name is [devil_mind.devilinfo.truename]
    [lawlorify[LAW][devil_mind.devilinfo.ban]]
    You may not use violence to coerce someone into selling their soul.
    You may not directly and knowingly physically harm a devil, other than yourself.
    [lawlorify[LAW][devil_mind.devilinfo.bane]]
    [lawlorify[LAW][devil_mind.devilinfo.obligation]]
    [lawlorify[LAW][devil_mind.devilinfo.banish]]
    ") + devil_mind.devilinfo.owner = devil_mind + devil_mind.devilinfo.give_base_spells(1) + spawn(10) + devil_mind.devilinfo.update_hud() + if(devil_mind.assigned_role == "Clown" && ishuman(devil_mind.current)) + var/mob/living/carbon/human/S = devil_mind.current + S << "Your infernal nature has allowed you to overcome your clownishness." + S.dna.remove_mutation(CLOWNMUT) + if(issilicon(devil_mind.current)) + add_law_sixsixsix(devil_mind.current) + +/datum/game_mode/proc/add_devil_objectives(datum/mind/devil_mind, quantity) + var/list/validtypes = list(/datum/objective/devil/soulquantity, /datum/objective/devil/soulquality, /datum/objective/devil/sintouch, /datum/objective/devil/buy_target) + for(var/i = 1 to quantity) + var/type = pick(validtypes) + var/datum/objective/devil/objective = new type(null) + objective.owner = devil_mind + devil_mind.objectives += objective + if(!istype(objective, /datum/objective/devil/buy_target)) + validtypes -= type //prevent duplicate objectives, EXCEPT for buy_target. + else + objective.find_target() + +/datum/mind/proc/announceDevilLaws() + if(!devilinfo) + return + current << "You remember your link to the infernal. You are [src.devilinfo.truename], an agent of hell, a devil. And you were sent to the plane of creation for a reason. A greater purpose. Convince the crew to sin, and embroiden Hell's grasp." + current << "However, your infernal form is not without weaknesses." + current << "You may not use violence to coerce someone into selling their soul." + current << "You may not directly and knowingly physically harm a devil, other than yourself." + current << lawlorify[LAW][src.devilinfo.bane] + current << lawlorify[LAW][src.devilinfo.ban] + current << lawlorify[LAW][src.devilinfo.obligation] + current << lawlorify[LAW][src.devilinfo.banish] + current << "

    Remember, the crew can research your weaknesses if they find out your devil name.
    " + +/datum/game_mode/proc/printdevilinfo(datum/mind/ply) + if(!ply.devilinfo) + return "Target is not a devil." + var/text = "
    The devil's true name is: [ply.devilinfo.truename]
    " + text += "The devil's bans were:
    " + text += " [lawlorify[LORE][ply.devilinfo.ban]]
    " + text += " [lawlorify[LORE][ply.devilinfo.bane]]
    " + text += " [lawlorify[LORE][ply.devilinfo.obligation]]
    " + text += " [lawlorify[LORE][ply.devilinfo.banish]]

    " + return text + +/datum/game_mode/proc/update_devil_icons_added(datum/mind/devil_mind) + var/datum/atom_hud/antag/hud = huds[ANTAG_HUD_DEVIL] + hud.join_hud(devil_mind.current) + set_antag_hud(devil_mind.current, "devil") + +/datum/game_mode/proc/update_devil_icons_removed(datum/mind/devil_mind) + var/datum/atom_hud/antag/hud = huds[ANTAG_HUD_DEVIL] + hud.leave_hud(devil_mind.current) + set_antag_hud(devil_mind.current, null) + +/datum/game_mode/proc/update_sintouched_icons_added(datum/mind/sintouched_mind) + var/datum/atom_hud/antag/hud = huds[ANTAG_HUD_SINTOUCHED] + hud.join_hud(sintouched_mind.current) + set_antag_hud(sintouched_mind.current, "sintouched") + +/datum/game_mode/proc/update_sintouched_icons_removed(datum/mind/sintouched_mind) + var/datum/atom_hud/antag/hud = huds[ANTAG_HUD_SINTOUCHED] + hud.leave_hud(sintouched_mind.current) + set_antag_hud(sintouched_mind.current, null) + +/datum/game_mode/proc/update_soulless_icons_added(datum/mind/soulless_mind) + var/datum/atom_hud/antag/hud = huds[ANTAG_HUD_SOULLESS] + hud.join_hud(soulless_mind.current) + set_antag_hud(soulless_mind.current, "soulless") + +/datum/game_mode/proc/update_soulless_icons_removed(datum/mind/soulless_mind) + var/datum/atom_hud/antag/hud = huds[ANTAG_HUD_SOULLESS] + hud.leave_hud(soulless_mind.current) + set_antag_hud(soulless_mind.current, null) diff --git a/code/game/gamemodes/devil/imp/imp.dm b/code/game/gamemodes/devil/imp/imp.dm new file mode 100644 index 0000000..c5f662f --- /dev/null +++ b/code/game/gamemodes/devil/imp/imp.dm @@ -0,0 +1,57 @@ +//////////////////The Monster + +/mob/living/simple_animal/imp + name = "imp" + real_name = "imp" + desc = "A large, menacing creature covered in armored black scales." + speak_emote = list("cackles") + emote_hear = list("cackles","screeches") + response_help = "thinks better of touching" + response_disarm = "flails at" + response_harm = "punches" + icon = 'icons/mob/mob.dmi' + icon_state = "imp" + icon_living = "imp" + speed = 1 + a_intent = "harm" + stop_automated_movement = 1 + status_flags = CANPUSH + attack_sound = 'sound/magic/demon_attack1.ogg' + atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) + minbodytemp = 250 //Weak to cold + maxbodytemp = INFINITY + faction = list("hell") + attacktext = "wildly tears into" + maxHealth = 200 + health = 200 + healable = 0 + environment_smash = 1 + obj_damage = 40 + melee_damage_lower = 10 + melee_damage_upper = 15 + see_in_dark = 8 + var/boost = 0 + bloodcrawl = BLOODCRAWL_EAT + see_invisible = SEE_INVISIBLE_MINIMUM + var/list/consumed_mobs = list() + var/playstyle_string = "You are an imp, a mischevious creature from hell. You are the lowest rank on the hellish totem pole \ + Though you are not obligated to help, perhaps by aiding a higher ranking devil, you might just get a promotion. However, you are incapable \ + of intentionally harming a fellow devil." + +/mob/living/simple_animal/imp/New() + ..() + boost = world.time + 30 + +/mob/living/simple_animal/imp/Life() + ..() + if(boost[src] screams in agony as it sublimates into a sulfurous smoke.
    ") + ghostize() + qdel(src) diff --git a/code/game/gamemodes/devil/objectives.dm b/code/game/gamemodes/devil/objectives.dm new file mode 100644 index 0000000..bd4d309 --- /dev/null +++ b/code/game/gamemodes/devil/objectives.dm @@ -0,0 +1,107 @@ +/datum/objective/devil + dangerrating = 5 + +/datum/objective/devil/soulquantity + explanation_text = "You shouldn't see this text. Error:DEVIL1" + target_amount = 4 + +/datum/objective/devil/soulquantity/New() + target_amount = pick(6,7,8) + update_explanation_text() + +/datum/objective/devil/soulquantity/update_explanation_text() + explanation_text = "Purchase, and retain control over at least [target_amount] souls." + +/datum/objective/devil/soulquantity/check_completion() + var/count = 0 + for(var/S in owner.devilinfo.soulsOwned) + var/datum/mind/L = S + if(L.soulOwner == owner) + count++ + return count >= target_amount + + + +/datum/objective/devil/soulquality + explanation_text = "You shouldn't see this text. Error:DEVIL2" + var/contractType + var/contractName + +/datum/objective/devil/soulquality/New() + contractType = pick(CONTRACT_POWER, CONTRACT_WEALTH, CONTRACT_PRESTIGE, CONTRACT_MAGIC, CONTRACT_REVIVE, CONTRACT_KNOWLEDGE/*, CONTRACT_UNWILLING*/) + target_amount = pick(1,2) + switch(contractType) + if(CONTRACT_POWER) + contractName = "for power" + if(CONTRACT_WEALTH) + contractName = "for wealth" + if(CONTRACT_PRESTIGE) + contractName = "for prestige" + if(CONTRACT_MAGIC) + contractName = "for magic" + if(CONTRACT_REVIVE) + contractName = "of revival" + if(CONTRACT_KNOWLEDGE) + contractName = "for knowledge" + //if(CONTRACT_UNWILLING) //Makes round unfun. + // contractName = "against their will" + update_explanation_text() + +/datum/objective/devil/soulquality/update_explanation_text() + explanation_text = "Have mortals sign at least [target_amount] contracts [contractName]" + +/datum/objective/devil/soulquality/check_completion() + var/count = 0 + for(var/S in owner.devilinfo.soulsOwned) + var/datum/mind/L = S + if(L.soulOwner != L && L.damnation_type == contractType) + count++ + return count>=target_amount + + + +/datum/objective/devil/sintouch + explanation_text = "You shouldn't see this text. Error:DEVIL3" + +/datum/objective/devil/sintouch/New() + target_amount = pick(4,5) + explanation_text = "Ensure at least [target_amount] mortals are sintouched." + +/datum/objective/devil/sintouch/check_completion() + return target_amount>=ticker.mode.sintouched.len + + + +/datum/objective/devil/buy_target + explanation_text = "You shouldn't see this text. Error:DEVIL4" + +/datum/objective/devil/buy_target/update_explanation_text() + if(target) + explanation_text = "Purchase and retain the soul of [target.name], the [target.assigned_role]." + else + explanation_text = "Free objective." + +/datum/objective/devil/buy_target/check_completion() + return target.soulOwner == owner + + +/datum/objective/devil/outsell + explanation_text = "You shouldn't see this text. Error:DEVIL5" + +/datum/objective/devil/outsell/New() + +/datum/objective/devil/outsell/update_explanation_text() + explanation_text = "Purchase and retain control over more souls than [target.devilinfo.truename], known to mortals as [target.name], the [target.assigned_role]." + +/datum/objective/devil/outsell/check_completion() + var/selfcount = 0 + for(var/S in owner.devilinfo.soulsOwned) + var/datum/mind/L = S + if(L.soulOwner == owner) + selfcount++ + var/targetcount = 0 + for(var/S in target.devilinfo.soulsOwned) + var/datum/mind/L = S + if(L.soulOwner == target) + targetcount++ + return selfcount > targetcount diff --git a/code/game/gamemodes/devil/true_devil/_true_devil.dm b/code/game/gamemodes/devil/true_devil/_true_devil.dm new file mode 100644 index 0000000..e8f6c0f --- /dev/null +++ b/code/game/gamemodes/devil/true_devil/_true_devil.dm @@ -0,0 +1,223 @@ +#define DEVIL_HANDS_LAYER 1 +#define DEVIL_HEAD_LAYER 2 +#define DEVIL_TOTAL_LAYERS 2 + + +/mob/living/carbon/true_devil + name = "True Devil" + desc = "A pile of infernal energy, taking a vaguely humanoid form." + icon = 'icons/mob/32x64.dmi' + icon_state = "true_devil" + gender = NEUTER + health = 350 + maxHealth = 350 + ventcrawler = 0 + density = 1 + pass_flags = 0 + var/ascended = 0 + sight = (SEE_TURFS | SEE_OBJS) + status_flags = CANPUSH + languages_spoken = ALL //The devil speaks all languages meme + languages_understood = ALL //The devil speaks all languages meme + mob_size = MOB_SIZE_LARGE + var/mob/living/oldform + var/list/devil_overlays[DEVIL_TOTAL_LAYERS] + bodyparts = list(/obj/item/bodypart/chest/devil, /obj/item/bodypart/head/devil, /obj/item/bodypart/l_arm/devil, + /obj/item/bodypart/r_arm/devil, /obj/item/bodypart/r_leg/devil, /obj/item/bodypart/l_leg/devil) + + + +/mob/living/carbon/true_devil/New() + create_bodyparts() //initialize bodyparts + + create_internal_organs() + ..() + +/mob/living/carbon/true_devil/create_internal_organs() + internal_organs += new /obj/item/organ/brain + internal_organs += new /obj/item/organ/tongue + ..() + + +/mob/living/carbon/true_devil/proc/convert_to_archdevil() + maxHealth = 5000 // not an IMPOSSIBLE amount, but still near impossible. + ascended = 1 + health = maxHealth + icon_state = "arch_devil" + +/mob/living/carbon/true_devil/proc/set_name() + name = mind.devilinfo.truename + real_name = name + +/mob/living/carbon/true_devil/Login() + ..() + mind.announceDevilLaws() + mind.announce_objectives() + + +/mob/living/carbon/true_devil/death(gibbed) + stat = DEAD + ..(gibbed) + drop_all_held_items() + spawn (0) + mind.devilinfo.beginResurrectionCheck(src) + + +/mob/living/carbon/true_devil/examine(mob/user) + var/msg = "*---------*\nThis is \icon[src] [src]!\n" + + //Left hand items + for(var/obj/item/I in held_items) + if(!(I.flags & ABSTRACT)) + if(I.blood_DNA) + msg += "It is holding \icon[I] [I.gender==PLURAL?"some":"a"] blood-stained [I.name] in its [get_held_index_name(get_held_index_of_item(I))]!\n" + else + msg += "It is holding \icon[I] \a [I] in its [get_held_index_name(get_held_index_of_item(I))].\n" + + //Braindead + if(!client && stat != DEAD) + msg += "The devil seems to be in deep contemplation.\n" + + //Damaged + if(stat == DEAD) + msg += "The hellfire seems to have been extinguished, for now at least.\n" + else if(health < (maxHealth/10)) + msg += "You can see hellfire inside of it's gaping wounds.\n" + else if(health < (maxHealth/2)) + msg += "You can see hellfire inside of it's wounds.\n" + msg += "*---------*" + user << msg + + +/mob/living/carbon/true_devil/IsAdvancedToolUser() + return 1 + +/mob/living/carbon/true_devil/canUseTopic(atom/movable/M, be_close = 0) + if(incapacitated()) + return 0 + if(be_close && !in_range(M, src)) + return 0 + return 1 + +/mob/living/carbon/true_devil/assess_threat() + return 666 + +/mob/living/carbon/true_devil/flash_act(intensity = 1, override_blindness_check = 0, affect_silicon = 0) + if(mind && has_bane(BANE_LIGHT)) + mind.disrupt_spells(-500) + return ..() //flashes don't stop devils UNLESS it's their bane. + +/mob/living/carbon/true_devil/soundbang_act() + return 0 + +/mob/living/carbon/true_devil/get_ear_protection() + return 2 + + +/mob/living/carbon/true_devil/attacked_by(obj/item/I, mob/living/user, def_zone) + var/weakness = check_weakness(I, user) + apply_damage(I.force * weakness, I.damtype, def_zone) + var/message_verb = "" + if(I.attack_verb && I.attack_verb.len) + message_verb = "[pick(I.attack_verb)]" + else if(I.force) + message_verb = "attacked" + + var/attack_message = "[src] has been [message_verb] with [I]." + if(user) + user.do_attack_animation(src) + if(user in viewers(src, null)) + attack_message = "[user] has [message_verb] [src] with [I]!" + if(message_verb) + visible_message("[attack_message]", + "[attack_message]", null, COMBAT_MESSAGE_RANGE) + return TRUE + +/mob/living/carbon/true_devil/Process_Spacemove(movement_dir = 0) + return 1 + +/mob/living/carbon/true_devil/singularity_act() + if(ascended) + return 0 + return ..() + +/mob/living/carbon/true_devil/attack_ghost(mob/dead/observer/user as mob) + if(ascended || user.mind.soulOwner == src.mind) + var/mob/living/simple_animal/imp/S = new(get_turf(loc)) + S.key = user.key + S.mind.assigned_role = "Imp" + S.mind.special_role = "Imp" + var/datum/objective/newobjective = new + newobjective.explanation_text = "Try to get a promotion to a higher devilic rank." + S.mind.objectives += newobjective + S << S.playstyle_string + S << "Objective #[1]: [newobjective.explanation_text]" + return + else + return ..() + +/mob/living/carbon/true_devil/can_be_revived() + return 1 + +/mob/living/carbon/true_devil/resist_fire() + //They're immune to fire. + +/mob/living/carbon/true_devil/attack_hand(mob/living/carbon/human/M) + if(..()) + switch(M.a_intent) + if ("harm") + var/damage = rand(1, 5) + playsound(loc, "punch", 25, 1, -1) + visible_message("[M] has punched [src]!", \ + "[M] has punched [src]!") + adjustBruteLoss(damage) + add_logs(M, src, "attacked") + updatehealth() + if ("disarm") + if (!lying && !ascended) //No stealing the arch devil's pitchfork. + if (prob(5)) + Paralyse(2) + playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) + add_logs(M, src, "pushed") + visible_message("[M] has pushed down [src]!", \ + "[M] has pushed down [src]!") + else + if (prob(25)) + drop_item() + playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) + visible_message("[M] has disarmed [src]!", \ + "[M] has disarmed [src]!") + else + playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1) + visible_message("[M] has attempted to disarm [src]!") + +/mob/living/carbon/true_devil/handle_breathing() + // devils do not need to breathe + +/mob/living/carbon/true_devil/is_literate() + return 1 + +/mob/living/carbon/true_devil/ex_act(severity, ex_target) + if(!ascended) + var/b_loss + switch (severity) + if (1) + b_loss = 500 + if (2) + b_loss = 150 + if(3) + b_loss = 30 + if(has_bane(BANE_LIGHT)) + b_loss *=2 + adjustBruteLoss(b_loss) + return ..() + + +/mob/living/carbon/true_devil/update_body() //we don't use the bodyparts layer for devils. + return + +/mob/living/carbon/true_devil/update_body_parts() + return + +/mob/living/carbon/true_devil/update_damage_overlays() //devils don't have damage overlays. + return \ No newline at end of file diff --git a/code/game/gamemodes/devil/true_devil/inventory.dm b/code/game/gamemodes/devil/true_devil/inventory.dm new file mode 100644 index 0000000..52feb42 --- /dev/null +++ b/code/game/gamemodes/devil/true_devil/inventory.dm @@ -0,0 +1,58 @@ +/mob/living/carbon/true_devil/unEquip(obj/item/I, force) + if(..(I,force)) + update_inv_hands() + return 1 + return 0 + +/mob/living/carbon/true_devil/update_inv_hands() + //TODO LORDPIDEY: Figure out how to make the hands line up properly. the l/r_hand_image should use the down sprite when facing down, left, or right, and the up sprite when facing up. + remove_overlay(DEVIL_HANDS_LAYER) + var/list/hands_overlays = list() + var/obj/item/l_hand = get_item_for_held_index(1) //hardcoded 2-hands only, for now. + var/obj/item/r_hand = get_item_for_held_index(2) + + if(r_hand) + + var/r_state = r_hand.item_state + if(!r_state) + r_state = r_hand.icon_state + + var/image/r_hand_image = r_hand.build_worn_icon(state = r_state, default_layer = DEVIL_HANDS_LAYER, default_icon_file = r_hand.righthand_file, isinhands = TRUE) + + hands_overlays += r_hand_image + + if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD) + r_hand.layer = ABOVE_HUD_LAYER + r_hand.plane = ABOVE_HUD_PLANE + r_hand.screen_loc = ui_hand_position(get_held_index_of_item(r_hand)) + client.screen |= r_hand + + if(l_hand) + + var/l_state = l_hand.item_state + if(!l_state) + l_state = l_hand.icon_state + + var/image/l_hand_image = l_hand.build_worn_icon(state = l_state, default_layer = DEVIL_HANDS_LAYER, default_icon_file = l_hand.lefthand_file, isinhands = TRUE) + + hands_overlays += l_hand_image + + if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD) + l_hand.layer = ABOVE_HUD_LAYER + l_hand.plane = ABOVE_HUD_PLANE + l_hand.screen_loc = ui_hand_position(get_held_index_of_item(l_hand)) + client.screen |= l_hand + if(hands_overlays.len) + devil_overlays[DEVIL_HANDS_LAYER] = hands_overlays + apply_overlay(DEVIL_HANDS_LAYER) + +/mob/living/carbon/true_devil/remove_overlay(cache_index) + if(devil_overlays[cache_index]) + overlays -= devil_overlays[cache_index] + devil_overlays[cache_index] = null + + +/mob/living/carbon/true_devil/apply_overlay(cache_index) + var/image/I = devil_overlays[cache_index] + if(I) + add_overlay(I) \ No newline at end of file diff --git a/code/game/gamemodes/events.dm b/code/game/gamemodes/events.dm new file mode 100644 index 0000000..d0856b0 --- /dev/null +++ b/code/game/gamemodes/events.dm @@ -0,0 +1,80 @@ +/proc/power_failure() + priority_announce("Abnormal activity detected in [station_name()]'s powernet. As a precautionary measure, the station's power will be shut off for an indeterminate duration.", "Critical Power Failure", 'sound/AI/poweroff.ogg') + for(var/obj/machinery/power/smes/S in machines) + if(istype(get_area(S), /area/ai_monitored/turret_protected) || S.z != ZLEVEL_STATION) + continue + S.charge = 0 + S.output_level = 0 + S.output_attempt = 0 + S.update_icon() + S.power_change() + + var/list/skipped_areas = list(/area/engine/engineering, /area/ai_monitored/turret_protected/ai) + + for(var/area/A in world) + if( !A.requires_power || A.always_unpowered ) + continue + + var/skip = 0 + for(var/area_type in skipped_areas) + if(istype(A,area_type)) + skip = 1 + break + if(A.contents) + for(var/atom/AT in A.contents) + if(AT.z != ZLEVEL_STATION) //Only check one, it's enough. + skip = 1 + break + if(skip) continue + A.power_light = 0 + A.power_equip = 0 + A.power_environ = 0 + A.power_change() + + for(var/obj/machinery/power/apc/C in apcs_list) + if(C.cell && C.z == ZLEVEL_STATION) + var/area/A = get_area(C) + + var/skip = 0 + for(var/area_type in skipped_areas) + if(istype(A,area_type)) + skip = 1 + break + if(skip) continue + + C.cell.charge = 0 + +/proc/power_restore() + + priority_announce("Power has been restored to [station_name()]. We apologize for the inconvenience.", "Power Systems Nominal", 'sound/AI/poweron.ogg') + for(var/obj/machinery/power/apc/C in machines) + if(C.cell && C.z == ZLEVEL_STATION) + C.cell.charge = C.cell.maxcharge + C.failure_timer = 0 + for(var/obj/machinery/power/smes/S in machines) + if(S.z != ZLEVEL_STATION) + continue + S.charge = S.capacity + S.output_level = S.output_level_max + S.output_attempt = 1 + S.update_icon() + S.power_change() + for(var/area/A in world) + if(!istype(A, /area/space) && !istype(A, /area/shuttle) && !istype(A,/area/arrival)) + A.power_light = 1 + A.power_equip = 1 + A.power_environ = 1 + A.power_change() + +/proc/power_restore_quick() + + priority_announce("All SMESs on [station_name()] have been recharged. We apologize for the inconvenience.", "Power Systems Nominal", 'sound/AI/poweron.ogg') + for(var/obj/machinery/power/smes/S in machines) + if(S.z != ZLEVEL_STATION) + continue + S.charge = S.capacity + S.output_level = S.output_level_max + S.output_attempt = 1 + S.update_icon() + S.power_change() + diff --git a/code/game/gamemodes/extended/extended.dm b/code/game/gamemodes/extended/extended.dm new file mode 100644 index 0000000..428907a --- /dev/null +++ b/code/game/gamemodes/extended/extended.dm @@ -0,0 +1,13 @@ +/datum/game_mode/extended + name = "extended" + config_tag = "extended" + required_players = 0 + + announce_span = "notice" + announce_text = "Just have fun and enjoy the game!" + +/datum/game_mode/extended/pre_setup() + return 1 + +/datum/game_mode/extended/post_setup() + ..() \ No newline at end of file diff --git a/code/game/gamemodes/factions.dm b/code/game/gamemodes/factions.dm new file mode 100644 index 0000000..d8d7d92 --- /dev/null +++ b/code/game/gamemodes/factions.dm @@ -0,0 +1 @@ +//Todo diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm new file mode 100644 index 0000000..23ee6a0 --- /dev/null +++ b/code/game/gamemodes/game_mode.dm @@ -0,0 +1,562 @@ +//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 + +/* + * GAMEMODES (by Rastaf0) + * + * In the new mode system all special roles are fully supported. + * You can have proper wizards/traitors/changelings/cultists during any mode. + * Only two things really depends on gamemode: + * 1. Starting roles, equipment and preparations + * 2. Conditions of finishing the round. + * + */ + + +/datum/game_mode + var/name = "invalid" + var/config_tag = null + var/votable = 1 + var/probability = 0 + var/station_was_nuked = 0 //see nuclearbomb.dm and malfunction.dm + var/explosion_in_progress = 0 //sit back and relax + var/round_ends_with_antag_death = 0 //flags the "one verse the station" antags as such + var/list/datum/mind/modePlayer = new + var/list/datum/mind/antag_candidates = list() // List of possible starting antags goes here + var/list/restricted_jobs = list() // Jobs it doesn't make sense to be. I.E chaplain or AI cultist + var/list/protected_jobs = list() // Jobs that can't be traitors because + var/required_players = 0 + var/required_enemies = 0 + var/recommended_enemies = 0 + var/antag_flag = null //preferences flag such as BE_WIZARD that need to be turned on for players to be antag + var/mob/living/living_antag_player = null + var/list/datum/game_mode/replacementmode = null + var/round_converted = 0 //0: round not converted, 1: round going to convert, 2: round converted + var/reroll_friendly //During mode conversion only these are in the running + var/continuous_sanity_checked //Catches some cases where config options could be used to suggest that modes without antagonists should end when all antagonists die + var/enemy_minimum_age = 7 //How many days must players have been playing before they can play this antagonist + + var/announce_span = "warning" //The gamemode's name will be in this span during announcement. + var/announce_text = "This gamemode forgot to set a descriptive text! Uh oh!" //Used to describe a gamemode when it's announced. + + var/const/waittime_l = 600 + var/const/waittime_h = 1800 // started at 1800 + + var/list/datum/station_goal/station_goals = list() + + +/datum/game_mode/proc/announce() //Shows the gamemode's name and a fast description. + world << "The gamemode is: [name]!" + world << "[announce_text]" + + +///Checks to see if the game can be setup and ran with the current number of players or whatnot. +/datum/game_mode/proc/can_start() + var/playerC = 0 + for(var/mob/new_player/player in player_list) + if((player.client)&&(player.ready)) + playerC++ + if(!Debug2) + if(playerC < required_players) + return 0 + antag_candidates = get_players_for_role(antag_flag) + if(!Debug2) + if(antag_candidates.len < required_enemies) + return 0 + return 1 + else + message_admins("DEBUG: GAME STARTING WITHOUT PLAYER NUMBER CHECKS, THIS WILL PROBABLY BREAK SHIT.") + return 1 + + +///Attempts to select players for special roles the mode might have. +/datum/game_mode/proc/pre_setup() + return 1 + + +///Everyone should now be on the station and have their normal gear. This is the place to give the special roles extra things +/datum/game_mode/proc/post_setup(report=0) //Gamemodes can override the intercept report. Passing a 1 as the argument will force a report. + if(!report) + report = config.intercept + spawn (ROUNDSTART_LOGOUT_REPORT_TIME) + display_roundstart_logout_report() + + feedback_set_details("round_start","[time2text(world.realtime)]") + if(ticker && ticker.mode) + feedback_set_details("game_mode","[ticker.mode]") + if(revdata.commit) + feedback_set_details("revision","[revdata.commit]") + feedback_set_details("server_ip","[world.internet_address]:[world.port]") + if(report) + spawn (rand(waittime_l, waittime_h)) + send_intercept(0) + generate_station_goals() + start_state = new /datum/station_state() + start_state.count(1) + return 1 + + +///Handles late-join antag assignments +/datum/game_mode/proc/make_antag_chance(mob/living/carbon/human/character) + if(replacementmode && round_converted == 2) + replacementmode.make_antag_chance(character) + return + + +///Allows rounds to basically be "rerolled" should the initial premise fall through +/datum/game_mode/proc/convert_roundtype() + var/list/living_crew = list() + + for(var/mob/Player in mob_list) + if(Player.mind && Player.stat != DEAD && !isnewplayer(Player) &&!isbrain(Player)) + living_crew += Player + if(living_crew.len / joined_player_list.len <= config.midround_antag_life_check) //If a lot of the player base died, we start fresh + message_admins("Convert_roundtype failed due to too many dead people. Limit is [config.midround_antag_life_check * 100]% living crew") + return null + + var/list/datum/game_mode/runnable_modes = config.get_runnable_midround_modes(living_crew.len) + var/list/datum/game_mode/usable_modes = list() + for(var/datum/game_mode/G in runnable_modes) + if(G.reroll_friendly) + usable_modes += G + else + qdel(G) + + if(!usable_modes) + message_admins("Convert_roundtype failed due to no valid modes to convert to. Please report this error to the Coders.") + return null + + replacementmode = pickweight(usable_modes) + + switch(SSshuttle.emergency.mode) //Rounds on the verge of ending don't get new antags, they just run out + if(SHUTTLE_STRANDED, SHUTTLE_ESCAPE) + return 1 + if(SHUTTLE_CALL) + if(SSshuttle.emergency.timeLeft(1) < initial(SSshuttle.emergencyCallTime)*0.5) + return 1 + + if(world.time >= (config.midround_antag_time_check * 600)) + message_admins("Convert_roundtype failed due to round length. Limit is [config.midround_antag_time_check] minutes.") + return null + + var/list/antag_canadates = list() + + for(var/mob/living/carbon/human/H in living_crew) + if(H.client && H.client.prefs.allow_midround_antag) + antag_canadates += H + + if(!antag_canadates) + message_admins("Convert_roundtype failed due to no antag canadates.") + return null + + antag_canadates = shuffle(antag_canadates) + + if(config.protect_roles_from_antagonist) + replacementmode.restricted_jobs += replacementmode.protected_jobs + if(config.protect_assistant_from_antagonist) + replacementmode.restricted_jobs += "Assistant" + + message_admins("The roundtype will be converted. If you have other plans for the station or think the round should end stop the creation of antags or end the round now.") + + spawn(rand(1200,3000)) //somewhere between 2 and 5 minutes from now + if(!config.midround_antag[ticker.mode.config_tag]) + round_converted = 0 + return 1 + for(var/mob/living/carbon/human/H in antag_canadates) + replacementmode.make_antag_chance(H) + round_converted = 2 + message_admins("-- IMPORTANT: The roundtype has been converted to [replacementmode.name], antagonists may have been created! --") + return 1 + + +///Called by the gameticker +/datum/game_mode/process() + return 0 + + +/datum/game_mode/proc/check_finished() //to be called by ticker + if(replacementmode && round_converted == 2) + return replacementmode.check_finished() + if(SSshuttle.emergency && (SSshuttle.emergency.mode == SHUTTLE_ENDGAME)) + return TRUE + if(station_was_nuked) + return TRUE + if(!round_converted && (!config.continuous[config_tag] || (config.continuous[config_tag] && config.midround_antag[config_tag]))) //Non-continuous or continous with replacement antags + if(!continuous_sanity_checked) //make sure we have antags to be checking in the first place + for(var/mob/Player in mob_list) + if(Player.mind) + if(Player.mind.special_role) + continuous_sanity_checked = 1 + return 0 + if(!continuous_sanity_checked) + message_admins("The roundtype ([config_tag]) has no antagonists, continuous round has been defaulted to on and midround_antag has been defaulted to off.") + config.continuous[config_tag] = 1 + config.midround_antag[config_tag] = 0 + SSshuttle.clearHostileEnvironment(src) + return 0 + + + if(living_antag_player && living_antag_player.mind && isliving(living_antag_player) && living_antag_player.stat != DEAD && !isnewplayer(living_antag_player) &&!isbrain(living_antag_player)) + return 0 //A resource saver: once we find someone who has to die for all antags to be dead, we can just keep checking them, cycling over everyone only when we lose our mark. + + for(var/mob/Player in living_mob_list) + if(Player.mind && Player.stat != DEAD && !isnewplayer(Player) &&!isbrain(Player)) + if(Player.mind.special_role) //Someone's still antaging! + living_antag_player = Player + return 0 + + if(!config.continuous[config_tag]) + return 1 + + else + round_converted = convert_roundtype() + if(!round_converted) + if(round_ends_with_antag_death) + return 1 + else + config.midround_antag[config_tag] = 0 + return 0 + + return 0 + + +/datum/game_mode/proc/declare_completion() + var/clients = 0 + var/surviving_humans = 0 + var/surviving_total = 0 + var/ghosts = 0 + var/escaped_humans = 0 + var/escaped_total = 0 + + for(var/mob/M in player_list) + if(M.client) + clients++ + if(ishuman(M)) + if(!M.stat) + surviving_humans++ + if(M.z == 2) + escaped_humans++ + if(!M.stat) + surviving_total++ + if(M.z == 2) + escaped_total++ + + + if(isobserver(M)) + ghosts++ + + if(clients > 0) + feedback_set("round_end_clients",clients) + if(ghosts > 0) + feedback_set("round_end_ghosts",ghosts) + if(surviving_humans > 0) + feedback_set("survived_human",surviving_humans) + if(surviving_total > 0) + feedback_set("survived_total",surviving_total) + if(escaped_humans > 0) + feedback_set("escaped_human",escaped_humans) + if(escaped_total > 0) + feedback_set("escaped_total",escaped_total) + send2irc("Server", "Round just ended.") + return 0 + + +/datum/game_mode/proc/check_win() //universal trigger to be called at mob death, nuke explosion, etc. To be called from everywhere. + return 0 + + +/datum/game_mode/proc/send_intercept() + var/intercepttext = "Central Command Status Summary
    " + intercepttext += "Central Command has intercepted and partially decoded a Syndicate transmission with vital information regarding their movements. The following report outlines the most \ + likely threats to appear in your sector." + var/list/possible_modes = list() + possible_modes.Add("blob", "changeling", "clock_cult", "cult", "extended", "gang", "malf", "nuclear", "revolution", "traitor", "wizard") + possible_modes -= name //remove the current gamemode to prevent it from being randomly deleted, it will be readded later + + for(var/i in 1 to 6) //Remove a few modes to leave four + possible_modes -= pick(possible_modes) + + possible_modes |= name //Re-add the actual gamemode - the intercept will thus always have the correct mode in its list + possible_modes = shuffle(possible_modes) //Meta prevention + + var/datum/intercept_text/i_text = new /datum/intercept_text + for(var/V in possible_modes) + intercepttext += i_text.build(V) + + if(station_goals.len) + intercepttext += "
    Special Orders for [station_name()]:" + for(var/datum/station_goal/G in station_goals) + G.on_report() + intercepttext += G.get_report() + + print_command_report(intercepttext, "Central Command Status Summary") + priority_announce("A summary has been copied and printed to all communications consoles.", "Enemy communication intercepted. Security level elevated.", 'sound/AI/intercept.ogg') + if(security_level < SEC_LEVEL_BLUE) + set_security_level(SEC_LEVEL_BLUE) + + +/datum/game_mode/proc/get_players_for_role(role) + var/list/players = list() + var/list/candidates = list() + var/list/drafted = list() + var/datum/mind/applicant = null + + // Ultimate randomizing code right here + for(var/mob/new_player/player in player_list) + if(player.client && player.ready) + players += player + + // Shuffling, the players list is now ping-independent!!! + // Goodbye antag dante + players = shuffle(players) + + for(var/mob/new_player/player in players) + if(player.client && player.ready) + if(role in player.client.prefs.be_special) + if(!jobban_isbanned(player, "Syndicate") && !jobban_isbanned(player, role)) //Nodrak/Carn: Antag Job-bans + if(age_check(player.client)) //Must be older than the minimum age + candidates += player.mind // Get a list of all the people who want to be the antagonist for this round + + if(restricted_jobs) + for(var/datum/mind/player in candidates) + for(var/job in restricted_jobs) // Remove people who want to be antagonist but have a job already that precludes it + if(player.assigned_role == job) + candidates -= player + + if(candidates.len < recommended_enemies) + for(var/mob/new_player/player in players) + if(player.client && player.ready) + if(!(role in player.client.prefs.be_special)) // We don't have enough people who want to be antagonist, make a seperate list of people who don't want to be one + if(!jobban_isbanned(player, "Syndicate") && !jobban_isbanned(player, role)) //Nodrak/Carn: Antag Job-bans + drafted += player.mind + + if(restricted_jobs) + for(var/datum/mind/player in drafted) // Remove people who can't be an antagonist + for(var/job in restricted_jobs) + if(player.assigned_role == job) + drafted -= player + + drafted = shuffle(drafted) // Will hopefully increase randomness, Donkie + + while(candidates.len < recommended_enemies) // Pick randomlly just the number of people we need and add them to our list of candidates + if(drafted.len > 0) + applicant = pick(drafted) + if(applicant) + candidates += applicant + drafted.Remove(applicant) + + else // Not enough scrubs, ABORT ABORT ABORT + break +/* + if(candidates.len < recommended_enemies && override_jobbans) //If we still don't have enough people, we're going to start drafting banned people. + for(var/mob/new_player/player in players) + if (player.client && player.ready) + if(jobban_isbanned(player, "Syndicate") || jobban_isbanned(player, roletext)) //Nodrak/Carn: Antag Job-bans + drafted += player.mind +*/ + if(restricted_jobs) + for(var/datum/mind/player in drafted) // Remove people who can't be an antagonist + for(var/job in restricted_jobs) + if(player.assigned_role == job) + drafted -= player + + drafted = shuffle(drafted) // Will hopefully increase randomness, Donkie + + while(candidates.len < recommended_enemies) // Pick randomlly just the number of people we need and add them to our list of candidates + if(drafted.len > 0) + applicant = pick(drafted) + if(applicant) + candidates += applicant + drafted.Remove(applicant) + + else // Not enough scrubs, ABORT ABORT ABORT + break + + return candidates // Returns: The number of people who had the antagonist role set to yes, regardless of recomended_enemies, if that number is greater than recommended_enemies + // recommended_enemies if the number of people with that role set to yes is less than recomended_enemies, + // Less if there are not enough valid players in the game entirely to make recommended_enemies. + +/* +/datum/game_mode/proc/check_player_role_pref(var/role, var/mob/new_player/player) + if(player.preferences.be_special & role) + return 1 + return 0 +*/ + +/datum/game_mode/proc/num_players() + . = 0 + for(var/mob/new_player/P in player_list) + if(P.client && P.ready) + . ++ + +/////////////////////////////////// +//Keeps track of all living heads// +/////////////////////////////////// +/datum/game_mode/proc/get_living_heads() + . = list() + for(var/mob/living/carbon/human/player in mob_list) + if(player.stat != DEAD && player.mind && (player.mind.assigned_role in command_positions)) + . |= player.mind + + +//////////////////////////// +//Keeps track of all heads// +//////////////////////////// +/datum/game_mode/proc/get_all_heads() + . = list() + for(var/mob/player in mob_list) + if(player.mind && (player.mind.assigned_role in command_positions)) + . |= player.mind + +////////////////////////////////////////////// +//Keeps track of all living security members// +////////////////////////////////////////////// +/datum/game_mode/proc/get_living_sec() + . = list() + for(var/mob/living/carbon/human/player in mob_list) + if(player.stat != DEAD && player.mind && (player.mind.assigned_role in security_positions)) + . |= player.mind + +//////////////////////////////////////// +//Keeps track of all security members// +//////////////////////////////////////// +/datum/game_mode/proc/get_all_sec() + . = list() + for(var/mob/living/carbon/human/player in mob_list) + if(player.mind && (player.mind.assigned_role in security_positions)) + . |= player.mind + +////////////////////////// +//Reports player logouts// +////////////////////////// +/proc/display_roundstart_logout_report() + var/msg = "Roundstart logout report\n\n" + for(var/mob/living/L in mob_list) + + if(L.ckey) + var/found = 0 + for(var/client/C in clients) + if(C.ckey == L.ckey) + found = 1 + break + if(!found) + msg += "[L.name] ([L.ckey]), the [L.job] (Disconnected)\n" + + + if(L.ckey && L.client) + if(L.client.inactivity >= (ROUNDSTART_LOGOUT_REPORT_TIME / 2)) //Connected, but inactive (alt+tabbed or something) + msg += "[L.name] ([L.ckey]), the [L.job] (Connected, Inactive)\n" + continue //AFK client + if(L.stat) + if(L.suiciding) //Suicider + msg += "[L.name] ([L.ckey]), the [L.job] (Suicide)\n" + continue //Disconnected client + if(L.stat == UNCONSCIOUS) + msg += "[L.name] ([L.ckey]), the [L.job] (Dying)\n" + continue //Unconscious + if(L.stat == DEAD) + msg += "[L.name] ([L.ckey]), the [L.job] (Dead)\n" + continue //Dead + + continue //Happy connected client + for(var/mob/dead/observer/D in mob_list) + if(D.mind && D.mind.current == L) + if(L.stat == DEAD) + if(L.suiciding) //Suicider + msg += "[L.name] ([ckey(D.mind.key)]), the [L.job] (Suicide)\n" + continue //Disconnected client + else + msg += "[L.name] ([ckey(D.mind.key)]), the [L.job] (Dead)\n" + continue //Dead mob, ghost abandoned + else + if(D.can_reenter_corpse) + continue //Adminghost, or cult/wizard ghost + else + msg += "[L.name] ([ckey(D.mind.key)]), the [L.job] (Ghosted)\n" + continue //Ghosted while alive + + + + for(var/mob/M in mob_list) + if(M.client && M.client.holder) + M << msg + +/datum/game_mode/proc/printplayer(datum/mind/ply, fleecheck) + var/text = "
    [ply.key] was [ply.name] the [ply.assigned_role] and" + if(ply.current) + if(ply.current.stat == DEAD) + text += " died" + else + text += " survived" + if(fleecheck && ply.current.z > ZLEVEL_STATION) + text += " while fleeing the station" + if(ply.current.real_name != ply.name) + text += " as [ply.current.real_name]" + else + text += " had their body destroyed" + return text + +/datum/game_mode/proc/printobjectives(datum/mind/ply) + var/text = "" + var/count = 1 + for(var/datum/objective/objective in ply.objectives) + if(objective.check_completion()) + text += "
    Objective #[count]: [objective.explanation_text] Success!" + else + text += "
    Objective #[count]: [objective.explanation_text] Fail." + count++ + return text + +//If the configuration option is set to require players to be logged as old enough to play certain jobs, then this proc checks that they are, otherwise it just returns 1 +/datum/game_mode/proc/age_check(client/C) + if(get_remaining_days(C) == 0) + return 1 //Available in 0 days = available right now = player is old enough to play. + return 0 + + +/datum/game_mode/proc/get_remaining_days(client/C) + if(!C) + return 0 + if(!config.use_age_restriction_for_jobs) + return 0 + if(!isnum(C.player_age)) + return 0 //This is only a number if the db connection is established, otherwise it is text: "Requires database", meaning these restrictions cannot be enforced + if(!isnum(enemy_minimum_age)) + return 0 + + return max(0, enemy_minimum_age - C.player_age) + +/datum/game_mode/proc/replace_jobbaned_player(mob/living/M, role_type, pref) + var/list/mob/dead/observer/candidates = pollCandidatesForMob("Do you want to play as a [role_type]?", "[role_type]", null, pref, 50, M) + var/mob/dead/observer/theghost = null + if(candidates.len) + theghost = pick(candidates) + M << "Your mob has been taken over by a ghost! Appeal your job ban if you want to avoid this in the future!" + message_admins("[key_name_admin(theghost)] has taken control of ([key_name_admin(M)]) to replace a jobbaned player.") + M.ghostize(0) + M.key = theghost.key + +/datum/game_mode/proc/remove_antag_for_borging(datum/mind/newborgie) + ticker.mode.remove_cultist(newborgie, 0, 0) + ticker.mode.remove_revolutionary(newborgie, 0) + ticker.mode.remove_gangster(newborgie, 0, remove_bosses=1) + +/datum/game_mode/proc/generate_station_goals() + var/list/possible = list() + for(var/T in subtypesof(/datum/station_goal)) + var/datum/station_goal/G = T + if(config_tag in initial(G.gamemode_blacklist)) + continue + //if(num_players() < initial(G.required_crew)) + // continue + possible += T + var/goal_weights = 0 + while(possible.len && goal_weights < STATION_GOAL_BUDGET) + var/datum/station_goal/picked = pick_n_take(possible) + goal_weights += initial(picked.weight) + station_goals += new picked + + +/datum/game_mode/proc/declare_station_goal_completion() + for(var/V in station_goals) + var/datum/station_goal/G = V + G.print_result() \ No newline at end of file diff --git a/code/game/gamemodes/gang/dominator.dm b/code/game/gamemodes/gang/dominator.dm new file mode 100644 index 0000000..4b9532f --- /dev/null +++ b/code/game/gamemodes/gang/dominator.dm @@ -0,0 +1,193 @@ +/obj/machinery/dominator + name = "dominator" + desc = "A visibly sinister device. Looks like you can break it if you hit it enough." + icon = 'icons/obj/machines/dominator.dmi' + icon_state = "dominator" + density = 1 + anchored = 1 + layer = HIGH_OBJ_LAYER + max_integrity = 300 + obj_integrity = 300 + integrity_failure = 100 + armor = list(melee = 20, bullet = 50, laser = 50, energy = 50, bomb = 10, bio = 100, rad = 100, fire = 10, acid = 70) + var/datum/gang/gang + var/operating = 0 //0=standby or broken, 1=takeover + var/warned = 0 //if this device has set off the warning at <3 minutes yet + var/datum/effect_system/spark_spread/spark_system + var/obj/effect/countdown/dominator/countdown + +/obj/machinery/dominator/tesla_act() + qdel(src) + +/obj/machinery/dominator/New() + ..() + SetLuminosity(2) + poi_list |= src + spark_system = new + spark_system.set_up(5, 1, src) + countdown = new(src) + +/obj/machinery/dominator/examine(mob/user) + ..() + if(stat & BROKEN) + return + + var/time + if(gang && gang.is_dominating) + time = gang.domination_time_remaining() + if(time > 0) + user << "Hostile Takeover in progress. Estimated [time] seconds remain." + else + user << "Hostile Takeover of [station_name()] successful. Have a great day." + else + user << "System on standby." + user << "System Integrity: [round((obj_integrity/max_integrity)*100,1)]%" + +/obj/machinery/dominator/process() + ..() + if(gang && gang.is_dominating) + var/time_remaining = gang.domination_time_remaining() + if(time_remaining > 0) + . = TRUE + playsound(loc, 'sound/items/timer.ogg', 10, 0) + if(!warned && (time_remaining < 180)) + warned = 1 + var/area/domloc = get_area(loc) + gang.message_gangtools("Less than 3 minutes remain in hostile takeover. Defend your dominator at [domloc.map_name]!") + for(var/datum/gang/G in ticker.mode.gangs) + if(G != gang) + G.message_gangtools("WARNING: [gang.name] Gang takeover imminent. Their dominator at [domloc.map_name] must be destroyed!",1,1) + + if(!.) + STOP_PROCESSING(SSmachine, src) + +/obj/machinery/dominator/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) + switch(damage_type) + if(BRUTE) + if(damage_amount) + playsound(src, 'sound/effects/bang.ogg', 50, 1) + else + playsound(loc, 'sound/weapons/tap.ogg', 50, 1) + if(BURN) + playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) + +/obj/machinery/dominator/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1) + . = ..() + if(.) + if(obj_integrity/max_integrity > 0.66) + if(prob(damage_amount*2)) + spark_system.start() + else if(!(stat & BROKEN)) + spark_system.start() + cut_overlays() + add_overlay("damage") + +/obj/machinery/dominator/obj_break(damage_flag) + if(!(stat & BROKEN) && !(flags & NODECONSTRUCT)) + set_broken() + +/obj/machinery/dominator/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + if(!(stat & BROKEN)) + set_broken() + new /obj/item/stack/sheet/plasteel(src.loc) + qdel(src) + +/obj/machinery/dominator/attacked_by(obj/item/I, mob/living/user) + add_fingerprint(user) + ..() + +/obj/machinery/dominator/proc/set_broken() + if(gang) + gang.is_dominating = FALSE + + var/takeover_in_progress = 0 + for(var/datum/gang/G in ticker.mode.gangs) + if(G.is_dominating) + takeover_in_progress = 1 + break + if(!takeover_in_progress) + var/was_stranded = SSshuttle.emergency.mode == SHUTTLE_STRANDED + SSshuttle.clearHostileEnvironment(src) + if(!was_stranded) + priority_announce("All hostile activity within station systems has ceased.","Network Alert") + + if(get_security_level() == "delta") + set_security_level("red") + + gang.message_gangtools("Hostile takeover cancelled: Dominator is no longer operational.[gang.dom_attempts ? " You have [gang.dom_attempts] attempt remaining." : " The station network will have likely blocked any more attempts by us."]",1,1) + + SetLuminosity(0) + icon_state = "dominator-broken" + cut_overlays() + operating = 0 + stat |= BROKEN + STOP_PROCESSING(SSmachine, src) + +/obj/machinery/dominator/Destroy() + if(!(stat & BROKEN)) + set_broken() + poi_list.Remove(src) + gang = null + qdel(spark_system) + qdel(countdown) + countdown = null + STOP_PROCESSING(SSmachine, src) + return ..() + +/obj/machinery/dominator/emp_act(severity) + take_damage(100, BURN, "energy", 0) + ..() + +/obj/machinery/dominator/attack_hand(mob/user) + if(operating || (stat & BROKEN)) + examine(user) + return + + var/datum/gang/tempgang + + if(user.mind in ticker.mode.get_all_gangsters()) + tempgang = user.mind.gang_datum + else + examine(user) + return + + if(tempgang.is_dominating) + user << "Error: Hostile Takeover is already in progress." + return + + if(!tempgang.dom_attempts) + user << "Error: Unable to breach station network. Firewall has logged our signature and is blocking all further attempts." + return + + var/time = round(determine_domination_time(tempgang)/60,0.1) + if(alert(user,"With [round((tempgang.territory.len/start_state.num_territories)*100, 1)]% station control, a takeover will require [time] minutes.\nYour gang will be unable to gain influence while it is active.\nThe entire station will likely be alerted to it once it starts.\nYou have [tempgang.dom_attempts] attempt(s) remaining. Are you ready?","Confirm","Ready","Later") == "Ready") + if((tempgang.is_dominating) || !tempgang.dom_attempts || !in_range(src, user) || !isturf(loc)) + return 0 + + var/area/A = get_area(loc) + var/locname = A.map_name + + gang = tempgang + gang.dom_attempts -- + priority_announce("Network breach detected in [locname]. The [gang.name] Gang is attempting to seize control of the station!","Network Alert") + gang.domination() + SSshuttle.registerHostileEnvironment(src) + src.name = "[gang.name] Gang [src.name]" + operating = 1 + icon_state = "dominator-[gang.color]" + + countdown.color = gang.color_hex + countdown.start() + + SetLuminosity(3) + START_PROCESSING(SSmachine, src) + + gang.message_gangtools("Hostile takeover in progress: Estimated [time] minutes until victory.[gang.dom_attempts ? "" : " This is your final attempt."]") + for(var/datum/gang/G in ticker.mode.gangs) + if(G != gang) + G.message_gangtools("Enemy takeover attempt detected in [locname]: Estimated [time] minutes until our defeat.",1,1) + + + + diff --git a/code/game/gamemodes/gang/gang.dm b/code/game/gamemodes/gang/gang.dm new file mode 100644 index 0000000..c5336b8 --- /dev/null +++ b/code/game/gamemodes/gang/gang.dm @@ -0,0 +1,308 @@ +//gang.dm +//Gang War Game Mode + +var/list/gang_name_pool = list("Clandestine", "Prima", "Zero-G", "Max", "Blasto", "Waffle", "North", "Omni", "Newton", "Cyber", "Donk", "Gene", "Gib", "Tunnel", "Diablo", "Psyke", "Osiron", "Sirius", "Sleeping Carp") +var/list/gang_colors_pool = list("red","orange","yellow","green","blue","purple") + +/datum/game_mode + var/list/datum/gang/gangs = list() + var/datum/gang_points/gang_points + +/proc/is_gangster(var/mob/living/M) + return istype(M) && M.mind && M.mind.gang_datum + +/proc/is_in_gang(var/mob/living/M, var/gang_type) + if(!is_gangster(M) || !gang_type) + return 0 + var/datum/gang/G = M.mind.gang_datum + if(G.name == gang_type) + return 1 + return 0 + +/datum/game_mode/gang + name = "gang war" + config_tag = "gang" + antag_flag = ROLE_GANG + restricted_jobs = list("Security Officer", "Warden", "Detective", "AI", "Cyborg","Captain", "Head of Personnel", "Head of Security", "Chief Engineer", "Research Director", "Chief Medical Officer") + required_players = 20 + required_enemies = 2 + recommended_enemies = 2 + enemy_minimum_age = 14 + + announce_span = "danger" + announce_text = "A violent turf war has erupted on the station!\n\ + Gangsters: Take over the station with a dominator.\n\ + Crew: Prevent the gangs from expanding and initiating takeover." + +/////////////////////////////////////////////////////////////////////////////// +//Gets the round setup, cancelling if there's not enough players at the start// +/////////////////////////////////////////////////////////////////////////////// +/datum/game_mode/gang/pre_setup() + if(config.protect_roles_from_antagonist) + restricted_jobs += protected_jobs + + if(config.protect_assistant_from_antagonist) + restricted_jobs += "Assistant" + + //Spawn more bosses depending on server population + var/gangs_to_create = 2 + if(prob(num_players() * 2)) + gangs_to_create ++ + + for(var/i=1 to gangs_to_create) + if(!antag_candidates.len) + break + + //Create the gang + var/datum/gang/G = new() + gangs += G + + //Now assign a boss for the gang + var/datum/mind/boss = pick(antag_candidates) + antag_candidates -= boss + G.bosses += boss + boss.gang_datum = G + boss.special_role = "[G.name] Gang Boss" + boss.restricted_roles = restricted_jobs + log_game("[boss.key] has been selected as the Boss for the [G.name] Gang") + + if(gangs.len < 2) //Need at least two gangs + return 0 + + return 1 + + +/datum/game_mode/gang/post_setup() + spawn(rand(10,100)) + for(var/datum/gang/G in gangs) + for(var/datum/mind/boss_mind in G.bosses) + G.add_gang_hud(boss_mind) + forge_gang_objectives(boss_mind) + greet_gang(boss_mind) + equip_gang(boss_mind.current,G) + modePlayer += boss_mind + ..() + + +/datum/game_mode/proc/forge_gang_objectives(datum/mind/boss_mind) + var/datum/objective/rival_obj = new + rival_obj.owner = boss_mind + rival_obj.explanation_text = "Be the first gang to successfully takeover the station with a Dominator." + boss_mind.objectives += rival_obj + +/datum/game_mode/proc/greet_gang(datum/mind/boss_mind, you_are=1) + if (you_are) + boss_mind.current << "You are the Boss of the [boss_mind.gang_datum.name] Gang!" + boss_mind.announce_objectives() + +/////////////////////////////////////////////////////////////////////////// +//This equips the bosses with their gear, and makes the clown not clumsy// +/////////////////////////////////////////////////////////////////////////// +/datum/game_mode/proc/equip_gang(mob/living/carbon/human/mob, gang) + if(!istype(mob)) + return + + if (mob.mind) + if (mob.mind.assigned_role == "Clown") + mob << "Your training has allowed you to overcome your clownish nature, allowing you to wield weapons without harming yourself." + mob.dna.remove_mutation(CLOWNMUT) + + var/obj/item/device/gangtool/gangtool = new(mob) + var/obj/item/weapon/pen/gang/T = new(mob) + var/obj/item/toy/crayon/spraycan/gang/SC = new(mob,gang) + var/obj/item/clothing/glasses/hud/security/chameleon/C = new(mob,gang) + + var/list/slots = list ( + "backpack" = slot_in_backpack, + "left pocket" = slot_l_store, + "right pocket" = slot_r_store + ) + + . = 0 + + var/where = mob.equip_in_one_of_slots(gangtool, slots) + if (!where) + mob << "Your Syndicate benefactors were unfortunately unable to get you a Gangtool." + . += 1 + else + gangtool.register_device(mob) + mob << "The Gangtool in your [where] will allow you to purchase weapons and equipment, send messages to your gang, and recall the emergency shuttle from anywhere on the station." + mob << "As the gang boss, you can also promote your gang members to lieutenant. Unlike regular gangsters, Lieutenants cannot be deconverted and are able to use recruitment pens and gangtools." + + var/where2 = mob.equip_in_one_of_slots(T, slots) + if (!where2) + mob << "Your Syndicate benefactors were unfortunately unable to get you a recruitment pen to start." + . += 1 + else + mob << "The recruitment pen in your [where2] will help you get your gang started. Stab unsuspecting crew members with it to recruit them." + + var/where3 = mob.equip_in_one_of_slots(SC, slots) + if (!where3) + mob << "Your Syndicate benefactors were unfortunately unable to get you a territory spraycan to start." + . += 1 + else + mob << "The territory spraycan in your [where3] can be used to claim areas of the station for your gang. The more territory your gang controls, the more influence you get. All gangsters can use these, so distribute them to grow your influence faster." + + var/where4 = mob.equip_in_one_of_slots(C, slots) + if (!where4) + mob << "Your Syndicate benefactors were unfortunately unable to get you a chameleon security HUD." + . += 1 + else + mob << "The chameleon security HUD in your [where4] will help you keep track of who is mindshield-implanted, and unable to be recruited." + return . + + +/////////////////////////////////////////// +//Deals with converting players to a gang// +/////////////////////////////////////////// +/datum/game_mode/proc/add_gangster(datum/mind/gangster_mind, datum/gang/G, check = 1) + if(!G || (gangster_mind in get_all_gangsters()) || (gangster_mind.enslaved_to && !is_gangster(gangster_mind.enslaved_to))) + return 0 + if(check && gangster_mind.current.isloyal()) //Check to see if the potential gangster is implanted + return 1 + G.gangsters += gangster_mind + gangster_mind.gang_datum = G + if(check) + if(iscarbon(gangster_mind.current)) + var/mob/living/carbon/carbon_mob = gangster_mind.current + carbon_mob.silent = max(carbon_mob.silent, 5) + carbon_mob.flash_act(1, 1) + gangster_mind.current.Stun(5) + gangster_mind.current << "You are now a member of the [G.name] Gang!" + gangster_mind.current << "Help your bosses take over the station by claiming territory with special spraycans only they can provide. Simply spray on any unclaimed area of the station." + gangster_mind.current << "Their ultimate objective is to take over the station with a Dominator machine." + gangster_mind.current << "You can identify your bosses by their large, bright [G.color] \[G\] icon." + gangster_mind.current.attack_log += "\[[time_stamp()]\] Has been converted to the [G.name] Gang!" + gangster_mind.special_role = "[G.name] Gangster" + gangster_mind.store_memory("You are a member of the [G.name] Gang!") + G.add_gang_hud(gangster_mind) + if(jobban_isbanned(gangster_mind.current, ROLE_GANG)) + addtimer(src, "replace_jobbaned_player", 0, FALSE, gangster_mind.current, ROLE_GANG, ROLE_GANG) + return 2 +//////////////////////////////////////////////////////////////////// +//Deals with players reverting to neutral (Not a gangster anymore)// +//////////////////////////////////////////////////////////////////// +/datum/game_mode/proc/remove_gangster(datum/mind/gangster_mind, beingborged, silent, remove_bosses=0) + var/datum/gang/gang = gangster_mind.gang_datum + if(!gang) + return 0 + + var/removed + + for(var/datum/gang/G in gangs) + if(gangster_mind in G.gangsters) + G.gangsters -= gangster_mind + removed = 1 + if(remove_bosses && (gangster_mind in G.bosses)) + G.bosses -= gangster_mind + removed = 1 + + if(!removed) + return 0 + + gangster_mind.special_role = null + gangster_mind.gang_datum = null + + if(silent < 2) + gangster_mind.current.attack_log += "\[[time_stamp()]\] Has reformed and defected from the [gang.name] Gang!" + + if(beingborged) + if(!silent) + gangster_mind.current.visible_message("The frame beeps contentedly from the MMI before initalizing it.") + gangster_mind.current << "The frame's firmware detects and deletes your criminal behavior! You are no longer a gangster!" + message_admins("[ADMIN_LOOKUPFLW(gangster_mind.current)] has been borged while being a member of the [gang.name] Gang. They are no longer a gangster.") + else + if(!silent) + gangster_mind.current.Paralyse(5) + gangster_mind.current.visible_message("[gangster_mind.current] looks like they've given up the life of crime!") + gangster_mind.current << "You have been reformed! You are no longer a gangster!
    You try as hard as you can, but you can't seem to recall any of the identities of your former gangsters...
    " + gangster_mind.memory = "" + + gang.remove_gang_hud(gangster_mind) + return 1 + +//////////////// +//Helper Procs// +//////////////// + +/datum/game_mode/proc/get_all_gangsters() + var/list/all_gangsters = list() + all_gangsters += get_gangsters() + all_gangsters += get_gang_bosses() + return all_gangsters + +/datum/game_mode/proc/get_gangsters() + var/list/gangsters = list() + for(var/datum/gang/G in gangs) + gangsters += G.gangsters + return gangsters + +/datum/game_mode/proc/get_gang_bosses() + var/list/gang_bosses = list() + for(var/datum/gang/G in gangs) + gang_bosses += G.bosses + return gang_bosses + +/proc/determine_domination_time(var/datum/gang/G) + return max(180,900 - (round((G.territory.len/start_state.num_territories)*100, 1) * 12)) + +////////////////////////////////////////////////////////////////////// +//Announces the end of the game with all relavent information stated// +////////////////////////////////////////////////////////////////////// + +/datum/game_mode/proc/auto_declare_completion_gang(datum/gang/winner) + if(gangs.len) + if(!winner) + world << "The station was [station_was_nuked ? "destroyed!" : "evacuated before a gang could claim it! The station wins!"]
    " + feedback_set_details("round_end_result","loss - gangs failed takeover") + else + world << "The [winner.name] Gang successfully performed a hostile takeover of the station!
    " + feedback_set_details("round_end_result","win - gang domination complete") + + for(var/datum/gang/G in gangs) + var/text = "The [G.name] Gang was [winner==G ? "victorious" : "defeated"] with [round((G.territory.len/start_state.num_territories)*100, 1)]% control of the station!" + text += "
    The [G.name] Gang Bosses were:" + for(var/datum/mind/boss in G.bosses) + text += printplayer(boss, 1) + text += "
    The [G.name] Gangsters were:" + for(var/datum/mind/gangster in G.gangsters) + text += printplayer(gangster, 1) + text += "
    " + world << text + +////////////////////////////////////////////////////////// +//Handles influence, territories, and the victory checks// +////////////////////////////////////////////////////////// + +/datum/gang_points + var/next_point_interval = 1800 + var/next_point_time + +/datum/gang_points/New() + next_point_time = world.time + next_point_interval + START_PROCESSING(SSobj, src) + +/datum/gang_points/process(seconds) + var/list/winners = list() //stores the winners if there are any + + for(var/datum/gang/G in ticker.mode.gangs) + if(world.time > next_point_time) + G.income() + + if(G.is_dominating) + if(G.domination_time_remaining() < 0) + winners += G + + if(world.time > next_point_time) + next_point_time = world.time + next_point_interval + + if(winners.len) + if(winners.len > 1) //Edge Case: If more than one dominator complete at the same time + for(var/datum/gang/G in winners) + G.domination(0.5) + priority_announce("Multiple station takeover attempts have made simultaneously. Conflicting takeover attempts appears to have restarted.","Network Alert") + else + ticker.mode.explosion_in_progress = 1 + ticker.station_explosion_cinematic(1) + ticker.mode.explosion_in_progress = 0 + ticker.force_ending = pick(winners) diff --git a/code/game/gamemodes/gang/gang_datum.dm b/code/game/gamemodes/gang/gang_datum.dm new file mode 100644 index 0000000..b78e961 --- /dev/null +++ b/code/game/gamemodes/gang/gang_datum.dm @@ -0,0 +1,216 @@ +//gang_datum.dm +//Datum-based gangs + +/datum/gang + var/name = "ERROR" + var/color = "white" + var/color_hex = "#FFFFFF" + var/list/datum/mind/gangsters = list() //gang B Members + var/list/datum/mind/bosses = list() //gang A Bosses + var/list/obj/item/device/gangtool/gangtools = list() + var/style + var/fighting_style = "normal" + var/list/territory = list() + var/list/territory_new = list() + var/list/territory_lost = list() + var/dom_attempts = 2 + var/points = 15 + var/datum/atom_hud/antag/gang/ganghud + + var/domination_timer + var/is_dominating + +/datum/gang/New(loc,gangname) + if(!gang_colors_pool.len) + message_admins("WARNING: Maximum number of gangs have been exceeded!") + throw EXCEPTION("Maximum number of gangs has been exceeded") + return + else + color = pick(gang_colors_pool) + gang_colors_pool -= color + switch(color) + if("red") + color_hex = "#DA0000" + if("orange") + color_hex = "#FF9300" + if("yellow") + color_hex = "#FFF200" + if("green") + color_hex = "#A8E61D" + if("blue") + color_hex = "#00B7EF" + if("purple") + color_hex = "#DA00FF" + + name = (gangname ? gangname : pick(gang_name_pool)) + gang_name_pool -= name + + ganghud = new() + ganghud.color = color_hex + log_game("The [name] Gang has been created. Their gang color is [color].") + +/datum/gang/proc/add_gang_hud(datum/mind/recruit_mind) + ganghud.join_hud(recruit_mind.current) + ticker.mode.set_antag_hud(recruit_mind.current, ((recruit_mind in bosses) ? "gang_boss" : "gangster")) + +/datum/gang/proc/remove_gang_hud(datum/mind/defector_mind) + ganghud.leave_hud(defector_mind.current) + ticker.mode.set_antag_hud(defector_mind.current, null) + +/datum/gang/proc/domination(modifier=1) + set_domination_time(determine_domination_time(src) * modifier) + is_dominating = TRUE + set_security_level("delta") + +/datum/gang/proc/set_domination_time(d) + domination_timer = world.time + (10 * d) + +/datum/gang/proc/domination_time_remaining() + var/diff = domination_timer - world.time + return diff / 10 +//////////////////////////////////////////// OUTFITS + + +//Used by recallers when purchasing a gang outfit. First time a gang outfit is purchased the buyer decides a gang style which is stored so gang outfits are uniform +/datum/gang/proc/gang_outfit(mob/living/carbon/user,obj/item/device/gangtool/gangtool) + if(!user || !gangtool) + return 0 + if(!gangtool.can_use(user)) + return 0 + + var/gang_style_list = list("Gang Colors","Black Suits","White Suits","Leather Jackets","Leather Overcoats","Puffer Jackets","Military Jackets","Tactical Turtlenecks","Soviet Uniforms") + if(!style && (user.mind in ticker.mode.get_gang_bosses())) //Only the boss gets to pick a style + style = input("Pick an outfit style.", "Pick Style") as null|anything in gang_style_list + + if(gangtool.can_use(user) && (gangtool.outfits >= 1)) + var/outfit_path + switch(style) + if(null || "Gang Colors") + outfit_path = text2path("/obj/item/clothing/under/color/[color]") + if("Black Suits") + outfit_path = /obj/item/clothing/under/suit_jacket/charcoal + if("White Suits") + outfit_path = /obj/item/clothing/under/suit_jacket/white + if("Puffer Jackets") + outfit_path = /obj/item/clothing/suit/jacket/puffer + if("Leather Jackets") + outfit_path = /obj/item/clothing/suit/jacket/leather + if("Leather Overcoats") + outfit_path = /obj/item/clothing/suit/jacket/leather/overcoat + if("Military Jackets") + outfit_path = /obj/item/clothing/suit/jacket/miljacket + if("Soviet Uniforms") + outfit_path = /obj/item/clothing/under/soviet + if("Tactical Turtlenecks") + outfit_path = /obj/item/clothing/under/syndicate + + if(outfit_path) + var/obj/item/clothing/outfit = new outfit_path(user.loc) + outfit.armor = list(melee = 20, bullet = 30, laser = 10, energy = 10, bomb = 20, bio = 0, rad = 0, fire = 30, acid = 30) + outfit.desc += " Tailored for the [name] Gang to offer the wearer moderate protection against ballistics and physical trauma." + outfit.gang = src + user.put_in_hands(outfit) + return 1 + + return 0 + + +//////////////////////////////////////////// MESSAGING + + +/datum/gang/proc/message_gangtools(message,beep=1,warning) + if(!gangtools.len || !message) + return + for(var/obj/item/device/gangtool/tool in gangtools) + var/mob/living/mob = get(tool.loc,/mob/living) + if(mob && mob.mind && mob.stat == CONSCIOUS) + if(mob.mind.gang_datum == src) + mob << "\icon[tool] [message]" + return + + +//////////////////////////////////////////// INCOME + + +/datum/gang/proc/income() + if(!bosses.len) + return + + var/added_names = "" + var/lost_names = "" + + //Re-add territories that were reclaimed, so if they got tagged over, they can still earn income if they tag it back before the next status report + var/list/reclaimed_territories = territory_new & territory_lost + territory |= reclaimed_territories + territory_new -= reclaimed_territories + territory_lost -= reclaimed_territories + + //Process lost territories + for(var/area in territory_lost) + if(lost_names != "") + lost_names += ", " + lost_names += "[territory_lost[area]]" + territory -= area + + //Count uniformed gangsters + var/uniformed = 0 + for(var/datum/mind/gangmind in (gangsters|bosses)) + if(ishuman(gangmind.current)) + var/mob/living/carbon/human/gangster = gangmind.current + //Gangster must be alive and on station + if((gangster.stat == DEAD) || (gangster.z > ZLEVEL_STATION)) + continue + + var/obj/item/clothing/outfit + var/obj/item/clothing/gang_outfit + if(gangster.w_uniform) + outfit = gangster.w_uniform + if(outfit.gang == src) + gang_outfit = outfit + if(gangster.wear_suit) + outfit = gangster.wear_suit + if(outfit.gang == src) + gang_outfit = outfit + + if(gang_outfit) + gangster << "The [src] Gang's influence grows as you wear [gang_outfit]." + uniformed ++ + + //Calculate and report influence growth + var/message = "[src] Gang Status Report:
    *---------*
    " + if(is_dominating) + var/seconds_remaining = domination_time_remaining() + var/new_time = max(180, seconds_remaining - (uniformed * 4) - (territory.len * 2)) + if(new_time < seconds_remaining) + message += "Takeover shortened by [seconds_remaining - new_time] seconds for defending [territory.len] territories and [uniformed] uniformed gangsters.
    " + set_domination_time(new_time) + message += "[seconds_remaining] seconds remain in hostile takeover.
    " + else + var/points_new = min(999,points + 15 + (uniformed * 2) + territory.len) + if(points_new != points) + message += "Gang influence has increased by [points_new - points] for defending [territory.len] territories and [uniformed] uniformed gangsters.
    " + points = points_new + message += "Your gang now has [points] influence.
    " + + //Process new territories + for(var/area in territory_new) + if(added_names != "") + added_names += ", " + added_names += "[territory_new[area]]" + territory += area + + //Report territory changes + message += "[territory_new.len] new territories:
    [added_names]
    " + message += "[territory_lost.len] territories lost:
    [lost_names]
    " + + //Clear the lists + territory_new = list() + territory_lost = list() + + var/control = round((territory.len/start_state.num_territories)*100, 1) + message += "Your gang now has [control]% control of the station.
    *---------*" + message_gangtools(message) + + //Increase outfit stock + for(var/obj/item/device/gangtool/tool in gangtools) + tool.outfits = min(tool.outfits+1,5) diff --git a/code/game/gamemodes/gang/gang_pen.dm b/code/game/gamemodes/gang/gang_pen.dm new file mode 100644 index 0000000..65209cc --- /dev/null +++ b/code/game/gamemodes/gang/gang_pen.dm @@ -0,0 +1,59 @@ +/* + * Gang Boss Pens + */ +/obj/item/weapon/pen/gang + origin_tech = "materials=2;syndicate=3" + var/cooldown + var/last_used = 0 + var/charges = 1 + +/obj/item/weapon/pen/gang/New() + ..() + last_used = world.time + +/obj/item/weapon/pen/gang/attack(mob/living/M, mob/user) + if(!istype(M)) + return + if(ishuman(M) && ishuman(user) && M.stat != DEAD) + if(user.mind && (user.mind in ticker.mode.get_gang_bosses())) + if(..(M,user,1)) + if(cooldown) + user << "[src] needs more time to recharge before it can be used." + return + if(M.client) + M.mind_initialize() //give them a mind datum if they don't have one. + var/datum/gang/G = user.mind.gang_datum + var/recruitable = ticker.mode.add_gangster(M.mind,G) + switch(recruitable) + if(2) + M.Paralyse(5) + cooldown(G) + if(1) + user << "This mind is resistant to recruitment!" + else + user << "This mind has already been recruited into a gang!" + return + ..() + +/obj/item/weapon/pen/gang/proc/cooldown(datum/gang/gang) + var/cooldown_time = 600+(600*gang.bosses.len) // 1recruiter=2mins, 2recruiters=3mins, 3recruiters=4mins + + cooldown = 1 + icon_state = "pen_blink" + + var/time_passed = world.time - last_used + var/time + for(time=time_passed, time>=cooldown_time, time-=cooldown_time) //get 1 charge every cooldown interval + charges++ + + charges = max(0,charges-1) + + last_used = world.time - time + + if(charges) + cooldown_time = 50 + spawn(cooldown_time) + cooldown = 0 + icon_state = "pen" + var/mob/M = get(src, /mob) + M << "\icon[src] [src][(src.loc == M)?(""):(" in your [src.loc]")] vibrates softly. It is ready to be used again." diff --git a/code/game/gamemodes/gang/recaller.dm b/code/game/gamemodes/gang/recaller.dm new file mode 100644 index 0000000..4b54ad3 --- /dev/null +++ b/code/game/gamemodes/gang/recaller.dm @@ -0,0 +1,442 @@ +//gangtool device +/obj/item/device/gangtool + name = "suspicious device" + desc = "A strange device of sorts. Hard to really make out what it actually does if you don't know how to operate it." + icon_state = "gangtool-white" + item_state = "walkietalkie" + throwforce = 0 + w_class = 1 + throw_speed = 3 + throw_range = 7 + flags = CONDUCT + origin_tech = "programming=5;bluespace=2;syndicate=5" + var/datum/gang/gang //Which gang uses this? + var/recalling = 0 + var/outfits = 3 + var/free_pen = 0 + var/promotable = 0 + +/obj/item/device/gangtool/New() //Initialize supply point income if it hasn't already been started + if(!ticker.mode.gang_points) + ticker.mode.gang_points = new /datum/gang_points(ticker.mode) + +/obj/item/device/gangtool/attack_self(mob/user) + if (!can_use(user)) + return + + var/dat + if(!gang) + dat += "This device is not registered.

    " + if(user.mind in ticker.mode.get_gang_bosses()) + if(promotable && user.mind.gang_datum.bosses.len < 3) + dat += "Give this device to another member of your organization to use to promote them to Lieutenant.

    " + dat += "If this is meant as a spare device for yourself:
    " + dat += "Register Device as Spare
    " + else if (promotable) + if(user.mind.gang_datum.bosses.len < 3) + dat += "You have been selected for a promotion!
    " + dat += "Accept Promotion
    " + else + dat += "No promotions available: All positions filled.
    " + else + dat += "This device is not authorized to promote.
    " + else + if(gang.is_dominating) + dat += "
    Takeover In Progress:
    [gang.domination_time_remaining()] seconds remain
    " + + var/isboss = (user.mind == gang.bosses[1]) + var/points = gang.points + dat += "Registration: [gang.name] Gang [isboss ? "Boss" : "Lieutenant"]
    " + dat += "Organization Size: [gang.gangsters.len + gang.bosses.len] | Station Control: [round((gang.territory.len/start_state.num_territories)*100, 1)]%
    " + dat += "Gang Influence: [points]
    " + dat += "Time until Influence grows: [(points >= 999) ? ("--:--") : (time2text(ticker.mode.gang_points.next_point_time - world.time, "mm:ss"))]
    " + dat += "
    " + dat += "Gangtool Functions:
    " + + dat += "Send Message to Gang
    " + if(outfits > 0) + dat += "Create Armored Gang Outfit
    " + else + dat += "Create Gang Outfit (Restocking)
    " + if(isboss) + dat += "Recall Emergency Shuttle
    " + + dat += "
    " + dat += "Purchase Weapons:
    " + + ///////////////// + // NORMAL GANG // + ///////////////// + + if(gang.fighting_style == "normal") + dat += "(10 Influence) " + if(points >= 10) + dat += "Switchblade
    " + else + dat += "Switchblade
    " + + dat += "(25 Influence) " + if(points >= 25) + dat += "10mm Pistol
    " + else + dat += "10mm Pistol
    " + + dat += " ↳(10 Influence) " + if(points >= 10) + dat += "10mm Ammo
    " + else + dat += "10mm Ammo
    " + + dat += "(60 Influence) " + if(points >= 60) + dat += "Uzi SMG
    " + else + dat += "Uzi SMG
    " + + dat += " ↳(40 Influence) " + if(points >= 40) + dat += "Uzi Ammo
    " + else + dat += "Uzi Ammo
    " + + dat += "(1 Influence) " + if(points >=1) + dat += "Dope Necklace
    " + else + dat += "Dope Necklace
    " + + dat += "
    " + + //////////////////////// + // STANDARD EQUIPMENT // + //////////////////////// + + dat += "Purchase Equipment:
    " + + dat += "(5 Influence) " + if(points >= 5) + dat += "Territory Spraycan
    " + else + dat += "Territory Spraycan
    " + + dat += "(10 Influence) " + if(points >= 10) + dat += "C4 Explosive
    " + else + dat += "C4 Explosive
    " + + dat += "(15 Influence) " + if(points >= 15) + dat += "Implant Breaker
    " + else + dat += "Implant Breaker
    " + + if(free_pen) + dat += "(GET ONE FREE) " + else + dat += "(50 Influence) " + if((points >= 50)||free_pen) + dat += "Recruitment Pen
    " + else + dat += "Recruitment Pen
    " + + var/gangtooltext = "Spare Gangtool" + if(isboss && gang.bosses.len < 3) + gangtooltext = "Promote a Gangster" + dat += "(10 Influence) " + if(points >= 10) + dat += "[gangtooltext]
    " + else + dat += "[gangtooltext]
    " + + if(!gang.dom_attempts) + dat += "(Out of stock) Station Dominator
    " + else + dat += "(30 Influence) " + if(points >= 30) + dat += "Station Dominator
    " + else + dat += "Station Dominator
    " + dat += "(Estimated Takeover Time: [round(determine_domination_time(gang)/60,0.1)] minutes)
    " + + dat += "
    " + dat += "Refresh
    " + + var/datum/browser/popup = new(user, "gangtool", "Welcome to GangTool v3.2", 340, 625) + popup.set_content(dat) + popup.open() + + + +/obj/item/device/gangtool/Topic(href, href_list) + if(!can_use(usr)) + return + + add_fingerprint(usr) + + if(href_list["register"]) + register_device(usr) + + else if(!gang) //Gangtool must be registered before you can use the functions below + return + + if(href_list["purchase"]) + var/pointcost + var/item_type + switch(href_list["purchase"]) + if("spraycan") + if(gang.points >= 5) + item_type = /obj/item/toy/crayon/spraycan/gang + pointcost = 5 + if("switchblade") + if(gang.points >= 10) + item_type = /obj/item/weapon/switchblade + pointcost = 10 + if("necklace") + if(gang.points >=1) + item_type = /obj/item/clothing/neck/necklace/dope + pointcost = 1 + if("pistol") + if(gang.points >= 25) + item_type = /obj/item/weapon/gun/projectile/automatic/pistol + pointcost = 25 + if("10mmammo") + if(gang.points >= 10) + item_type = /obj/item/ammo_box/magazine/m10mm + pointcost = 10 + if("uzi") + if(gang.points >= 60) + item_type = /obj/item/weapon/gun/projectile/automatic/mini_uzi + pointcost = 60 + if("9mmammo") + if(gang.points >= 40) + item_type = /obj/item/ammo_box/magazine/uzim9mm + pointcost = 40 + if("scroll") + if(gang.points >= 30) + item_type = /obj/item/weapon/sleeping_carp_scroll + usr << "Anyone who reads the sleeping carp scroll will learn secrets of the sleeping carp martial arts style." + pointcost = 30 + if("wrestlingbelt") + if(gang.points >= 20) + item_type = /obj/item/weapon/storage/belt/champion/wrestling + usr << "Anyone wearing the wresting belt will know how to be effective with wrestling." + pointcost = 20 + if("bostaff") + if(gang.points >= 10) + item_type = /obj/item/weapon/twohanded/bostaff + pointcost = 10 + if("C4") + if(gang.points >= 10) + item_type = /obj/item/weapon/grenade/plastic/c4 + pointcost = 10 + if("pen") + if((gang.points >= 50) || free_pen) + item_type = /obj/item/weapon/pen/gang + usr << "More recruitment pens will allow you to recruit gangsters faster. Only gang leaders can recruit with pens." + if(free_pen) + free_pen = 0 + else + pointcost = 50 + if("implant") + if(gang.points >= 15) + item_type = /obj/item/weapon/implanter/gang + usr << "The implant breaker is a single-use device that destroys all implants within the target before trying to recruit them to your gang. Also works on enemy gangsters." + pointcost = 15 + if("gangtool") + if(gang.points >= 10) + if(usr.mind == gang.bosses[1]) + item_type = /obj/item/device/gangtool/spare/lt + if(gang.bosses.len < 3) + usr << "Gangtools allow you to promote a gangster to be your Lieutenant, enabling them to recruit and purchase items like you. Simply have them register the gangtool. You may promote up to [3-gang.bosses.len] more Lieutenants" + else + item_type = /obj/item/device/gangtool/spare/ + pointcost = 10 + if("dominator") + if(!gang.dom_attempts) + return + + var/area/usrarea = get_area(usr.loc) + var/usrturf = get_turf(usr.loc) + if(initial(usrarea.name) == "Space" || isspaceturf(usrturf) || usr.z != 1) + usr << "You can only use this on the station!" + return + + for(var/obj/obj in usrturf) + if(obj.density) + usr << "There's not enough room here!" + return + + if(usrarea.type in gang.territory|gang.territory_new) + if(gang.points >= 30) + item_type = /obj/machinery/dominator + usr << "The dominator will secure your gang's dominance over the station. Turn it on when you are ready to defend it." + pointcost = 30 + else + usr << "The dominator can be spawned only on territory controlled by your gang!" + return + + if(item_type) + gang.points -= pointcost + if(ispath(item_type)) + var/obj/purchased = new item_type(get_turf(usr),gang) + var/mob/living/carbon/human/H = usr + H.put_in_hands(purchased) + if(pointcost) + gang.message_gangtools("A [href_list["purchase"]] was purchased by [usr.real_name] for [pointcost] Influence.") + log_game("A [href_list["purchase"]] was purchased by [key_name(usr)] ([gang.name] Gang) for [pointcost] Influence.") + + else + usr << "Not enough influence." + + else if(href_list["choice"]) + switch(href_list["choice"]) + if("recall") + if(usr.mind == gang.bosses[1]) + recall(usr) + if("outfit") + if(outfits > 0) + if(gang.gang_outfit(usr,src)) + usr << "Gang Outfits can act as armor with moderate protection against ballistic and melee attacks. Every gangster wearing one will also help grow your gang's influence." + outfits -= 1 + if("ping") + ping_gang(usr) + attack_self(usr) + + +/obj/item/device/gangtool/proc/ping_gang(mob/user) + if(!user) + return + var/message = stripped_input(user,"Discreetly send a gang-wide message.","Send Message") as null|text + if(!message || !can_use(user)) + return + if(user.z > 2) + user << "\icon[src]Error: Station out of range." + return + var/list/members = list() + members += gang.gangsters + members += gang.bosses + if(members.len) + var/gang_rank = gang.bosses.Find(user.mind) + switch(gang_rank) + if(1) + gang_rank = "Gang Boss" + if(2) + gang_rank = "1st Lieutenant" + if(3) + gang_rank = "2nd Lieutenant" + if(4) + gang_rank = "3rd Lieutenant" + else + gang_rank = "[gang_rank - 1]th Lieutenant" + var/ping = "[gang.name] [gang_rank]: [message]" + for(var/datum/mind/ganger in members) + if(ganger.current && (ganger.current.z <= 2) && (ganger.current.stat == CONSCIOUS)) + ganger.current << ping + for(var/mob/M in dead_mob_list) + var/link = FOLLOW_LINK(M, user) + M << "[link] [ping]" + log_game("[key_name(user)] Messaged [gang.name] Gang: [message].") + + +/obj/item/device/gangtool/proc/register_device(mob/user) + if(gang) //It's already been registered! + return + if((promotable && (user.mind in ticker.mode.get_gangsters())) || (user.mind in ticker.mode.get_gang_bosses())) + gang = user.mind.gang_datum + gang.gangtools += src + icon_state = "gangtool-[gang.color]" + if(!(user.mind in gang.bosses)) + ticker.mode.remove_gangster(user.mind, 0, 2) + gang.bosses += user.mind + user.mind.gang_datum = gang + user.mind.special_role = "[gang.name] Gang Lieutenant" + gang.add_gang_hud(user.mind) + log_game("[key_name(user)] has been promoted to Lieutenant in the [gang.name] Gang") + free_pen = 1 + gang.message_gangtools("[user] has been promoted to Lieutenant.") + user << "You have been promoted to Lieutenant!" + ticker.mode.forge_gang_objectives(user.mind) + ticker.mode.greet_gang(user.mind,0) + user << "The Gangtool you registered will allow you to purchase weapons and equipment, and send messages to your gang." + user << "Unlike regular gangsters, you may use recruitment pens to add recruits to your gang. Use them on unsuspecting crew members to recruit them. Don't forget to get your one free pen from the gangtool." + else + usr << "ACCESS DENIED: Unauthorized user." + +/obj/item/device/gangtool/proc/recall(mob/user) + if(!can_use(user)) + return 0 + + if(recalling) + usr << "Error: Recall already in progress." + return 0 + + gang.message_gangtools("[usr] is attempting to recall the emergency shuttle.") + recalling = 1 + loc << "\icon[src]Generating shuttle recall order with codes retrieved from last call signal..." + + sleep(rand(100,300)) + + if(SSshuttle.emergency.mode != SHUTTLE_CALL) //Shuttle can only be recalled when it's moving to the station + user << "\icon[src]Emergency shuttle cannot be recalled at this time." + recalling = 0 + return 0 + loc << "\icon[src]Shuttle recall order generated. Accessing station long-range communication arrays..." + + sleep(rand(100,300)) + + if(!gang.dom_attempts) + user << "\icon[src]Error: Unable to access communication arrays. Firewall has logged our signature and is blocking all further attempts." + recalling = 0 + return 0 + + var/turf/userturf = get_turf(user) + if(userturf.z != 1) //Shuttle can only be recalled while on station + user << "\icon[src]Error: Device out of range of station communication arrays." + recalling = 0 + return 0 + var/datum/station_state/end_state = new /datum/station_state() + end_state.count() + if((100 * start_state.score(end_state)) < 80) //Shuttle cannot be recalled if the station is too damaged + user << "\icon[src]Error: Station communication systems compromised. Unable to establish connection." + recalling = 0 + return 0 + loc << "\icon[src]Comm arrays accessed. Broadcasting recall signal..." + + sleep(rand(100,300)) + + recalling = 0 + log_game("[key_name(user)] has tried to recall the shuttle with a gangtool.") + message_admins("[key_name_admin(user)] has tried to recall the shuttle with a gangtool.", 1) + userturf = get_turf(user) + if(userturf.z == 1) //Check one more time that they are on station. + if(SSshuttle.cancelEvac(user)) + return 1 + + loc << "\icon[src]No response recieved. Emergency shuttle cannot be recalled at this time." + return 0 + +/obj/item/device/gangtool/proc/can_use(mob/living/carbon/human/user) + if(!istype(user)) + return 0 + if(user.restrained() || user.lying || user.stat || user.stunned || user.weakened) + return 0 + if(!(src in user.contents)) + return 0 + if(!user.mind) + return 0 + + if(gang) //If it's already registered, only let the gang's bosses use this + if(user.mind in gang.bosses) + return 1 + else //If it's not registered, any gangster can use this to register + if(user.mind in ticker.mode.get_all_gangsters()) + return 1 + + return 0 + +/obj/item/device/gangtool/spare + outfits = 1 + +/obj/item/device/gangtool/spare/lt + promotable = 1 diff --git a/code/game/gamemodes/intercept_report.dm b/code/game/gamemodes/intercept_report.dm new file mode 100644 index 0000000..214475f --- /dev/null +++ b/code/game/gamemodes/intercept_report.dm @@ -0,0 +1,57 @@ +//Intercept reports are sent to the station every round to warn the crew of possible threats. They consist of five possibilites, one of which is always correct. + +/datum/intercept_text + var/text + +/datum/intercept_text/proc/build(mode_type) + text = "
    " + switch(mode_type) + if("blob") + text += "A CMP scientist by the name of [pick("Griff", "Pasteur", "Chamberland", "Buist", "Rivers", "Stanley")] boasted about his corporation's \"finest creation\" - a macrobiological \ + virus capable of self-reproduction and hellbent on consuming whatever it touches. He went on to query Cybersun for permission to utilize the virus in biochemical warfare, to which \ + CMP subsequently gained. Be vigilant for any large organisms rapidly spreading across the station, as they are classified as a level 5 biohazard and critically dangerous. Note that \ + this organism seems to be weak to extreme heat; concentrated fire (such as welding tools and lasers) will be effective against it." + if("changeling") + text += "The Gorlex Marauders have announced the successful raid and destruction of Central Command containment ship #S-[rand(1111, 9999)]. This ship housed only a single prisoner - \ + codenamed \"Thing\", and it was highly adaptive and extremely dangerous. We have reason to believe that the Thing has allied with the Syndicate, and you should note that likelihood \ + of the Thing being sent to a station in this sector is highly likely. It may be in the guise of any crew member. Trust nobody - suspect everybody. Do not announce this to the crew, \ + as paranoia may spread and inhibit workplace efficiency." + if("clock_cult") + text += "We have lost contact with multiple stations in your sector. They have gone dark and do not respond to all transmissions, although they appear intact and the crew's life \ + signs remain uninterrupted. Those that have managed to send a transmission or have had some of their crew escape tell tales of a machine cult creating sapient automatons and seeking \ + to brainwash the crew to summon their god, Ratvar. If evidence of this cult is dicovered aboard your station, extreme caution and extreme vigilance must be taken going forward, and \ + all resources should be devoted to stopping this cult. Note that holy water seems to weaken and eventually return the minds of cultists that ingest it, and mindshield implants will \ + prevent conversion altogether." + if("cult") + text += "Some stations in your sector have reported evidence of blood sacrifice and strange magic. Ties to the Wizards' Federation have been proven not to exist, and many employees \ + have disappeared; even Central Command employees light-years away have felt strange presences and at times hysterical compulsions. Interrogations point towards this being the work of \ + the cult of Nar-Sie. If evidence of this cult is discovered aboard your station, extreme caution and extreme vigilance must be taken going forward, and all resources should be \ + devoted to stopping this cult. Note that holy water seems to weaken and eventually return the minds of cultists that ingest it, and mindshield implants will prevent conversion \ + altogether." + if("extended") + text += "The transmission mostly failed to mention your sector. It is possible that there is nothing in the Syndicate that could threaten your station during this shift." + if("gang") + text += "Cybersun Industries representatives claimed that they, in joint research with the Tiger Cooperative, have made a major breakthrough in brainwashing technology, and have \ + made the nanobots that apply the \"conversion\" very small and capable of fitting into usually innocent objects - namely, pens. While they refused to outsource this technology for \ + months to come due to its flaws, they reported some as missing but passed it off to carelessness. At Central Command, we don't like mysteries, and we have reason to believe that this \ + technology was stolen for anti-Nanotrasen use. Be on the lookout for territory claims and unusually violent crew behavior, applying loyalty implants as necessary." + if("malf") + text += "A large ionospheric anomaly recently passed through your sector. Although physically undetectable, ionospherics tend to have an extreme effect on telecommunications equipment \ + as well as artificial intelligence units. Closely observe the behavior of artificial intelligence, and treat any machine malfunctions as purposeful. If necessary, termination of the \ + artificial intelligence is advised; assuming that it activates the station's self-destruct, your pinpointer has been configured to constantly track it, wherever it may be." + if("nuclear") + text += "One of Central Command's trading routes was recently disrupted by a raid carried out by the Gorlex Marauders. They seemed to only be after one ship - a highly-sensitive \ + transport containing a nuclear fission explosive, although it is useless without the proper code and authorization disk. While the code was likely found in minutes, the only disk that \ + can activate this explosive is on your station. Ensure that it is protected at all times, and remain alert for possible intruders." + if("revolution") + text += "Employee unrest has spiked in recent weeks, with several attempted mutinies on heads of staff. Some crew have been observed using flashbulb devices to blind their colleagues, \ + who then follow their orders without question and work towards dethroning departmental leaders. Watch for behavior such as this with caution. If the crew attempts a mutiny, you and \ + your heads of staff are fully authorized to execute them using lethal weaponry - they will be later cloned and interrogated at Central Command." + if("traitor") + text += "Although more specific threats are commonplace, you should always remain vigilant for Syndicate agents aboard your station. Syndicate communications have implied that many \ + Nanotrasen employees are Syndicate agents with hidden memories that may be activated at a moment's notice, so it's possible that these agents might not even know their positions." + if("wizard") + text += "A dangerous Wizards' Federation individual by the name of [pick(wizard_first)] [pick(wizard_second)] has recently escaped confinement from an unlisted prison facility. This \ + man is a dangerous mutant with the ability to alter himself and the world around him by what he and his leaders believe to be magic. If this man attempts an attack on your station, \ + his execution is highly encouraged, as is the preservation of his body for later study." + return text diff --git a/code/game/gamemodes/malfunction/Malf_Modules.dm b/code/game/gamemodes/malfunction/Malf_Modules.dm new file mode 100644 index 0000000..1c3d723 --- /dev/null +++ b/code/game/gamemodes/malfunction/Malf_Modules.dm @@ -0,0 +1,605 @@ +/datum/AI_Module + var/uses = 0 + var/module_name + var/mod_pick_name + var/description = "" + var/engaged = 0 + var/cost = 5 + var/one_time = 0 + + var/power_type + +/datum/AI_Module/large/ + uses = 1 + +/datum/AI_Module/small/ + uses = 5 + +/datum/AI_Module/large/nuke_station + module_name = "Doomsday Device" + mod_pick_name = "nukestation" + description = "Activate a weapon that will disintegrate all organic life on the station after a 450 second delay." + cost = 130 + one_time = 1 + + power_type = /mob/living/silicon/ai/proc/nuke_station + +/mob/living/silicon/ai/proc/nuke_station() + set category = "Malfunction" + set name = "Doomsday Device" + + for(var/N in nuke_tiles) + var/turf/T = N + T.icon_state = "rcircuitanim" //This causes all blue "circuit" tiles on the map to change to animated red icon state. + + src << "Nuclear device armed." + priority_announce("Hostile runtimes detected in all station systems, please deactivate your AI to prevent possible damage to its morality core.", "Anomaly Alert", 'sound/AI/aimalf.ogg') + set_security_level("delta") + nuking = 1 + var/obj/machinery/doomsday_device/DOOM = new /obj/machinery/doomsday_device(src) + doomsday_device = DOOM + doomsday_device.start() + verbs -= /mob/living/silicon/ai/proc/nuke_station + for(var/obj/item/weapon/pinpointer/P in pinpointer_list) + P.switch_mode_to(TRACK_MALF_AI) //Pinpointers start tracking the AI wherever it goes + +/obj/machinery/doomsday_device + icon = 'icons/obj/machines/nuke_terminal.dmi' + name = "doomsday device" + icon_state = "nuclearbomb_base" + desc = "A weapon which disintegrates all organic life in a large area." + anchored = 1 + density = 1 + verb_exclaim = "blares" + var/timing = FALSE + var/default_timer = 4500 + var/obj/effect/countdown/doomsday/countdown + var/detonation_timer + var/list/milestones = list() + +/obj/machinery/doomsday_device/New() + ..() + countdown = new(src) + +/obj/machinery/doomsday_device/Destroy() + if(countdown) + qdel(countdown) + countdown = null + STOP_PROCESSING(SSfastprocess, src) + SSshuttle.clearHostileEnvironment(src) + for(var/A in ai_list) + var/mob/living/silicon/ai/Mlf = A + if(Mlf.doomsday_device == src) + Mlf.doomsday_device = null + . = ..() + +/obj/machinery/doomsday_device/proc/start() + detonation_timer = world.time + default_timer + timing = TRUE + countdown.start() + START_PROCESSING(SSfastprocess, src) + SSshuttle.registerHostileEnvironment(src) + +/obj/machinery/doomsday_device/proc/seconds_remaining() + . = max(0, (round(detonation_timer - world.time) / 10)) + +/obj/machinery/doomsday_device/process() + var/turf/T = get_turf(src) + if(!T || T.z != ZLEVEL_STATION) + minor_announce("DOOMSDAY DEVICE OUT OF STATION RANGE, ABORTING", "ERROR ER0RR $R0RRO$!R41.%%!!(%$^^__+ @#F0E4", 1) + SSshuttle.clearHostileEnvironment(src) + qdel(src) + if(!timing) + STOP_PROCESSING(SSfastprocess, src) + return + var/sec_left = seconds_remaining() + if(sec_left <= 0) + timing = FALSE + detonate(T.z) + qdel(src) + else + var/key = num2text(sec_left) + if(!(sec_left % 60) && !(key in milestones)) + milestones[key] = TRUE + var/message = "[key] SECONDS UNTIL DOOMSDAY DEVICE ACTIVATION!" + minor_announce(message, "ERROR ER0RR $R0RRO$!R41.%%!!(%$^^__+ @#F0E4", 1) + +/obj/machinery/doomsday_device/proc/detonate(z_level = 1) + for(var/mob/M in player_list) + M << 'sound/machines/Alarm.ogg' + sleep(100) + for(var/mob/living/L in mob_list) + var/turf/T = get_turf(L) + if(!T || T.z != z_level) + continue + if(issilicon(L)) + continue + L << "The blast wave from the [src] tears you atom from atom!" + L.dust() + world << "The AI cleansed the station of life with the doomsday device!" + ticker.force_ending = 1 + +/datum/AI_Module/large/upgrade_turrets + module_name = "AI Turret Upgrade" + mod_pick_name = "turret" + description = "Improves the power and health of all AI turrets. This effect is permanent." + cost = 30 + one_time = 1 + + power_type = /mob/living/silicon/ai/proc/upgrade_turrets + +/mob/living/silicon/ai/proc/upgrade_turrets() + set category = "Malfunction" + set name = "Upgrade Turrets" + + if(!canUseTopic()) + return + + src.verbs -= /mob/living/silicon/ai/proc/upgrade_turrets + //Upgrade AI turrets around the world + for(var/obj/machinery/porta_turret/ai/turret in machines) + turret.obj_integrity += 30 + turret.eprojectile = /obj/item/projectile/beam/laser/heavylaser //Once you see it, you will know what it means to FEAR. + turret.eshot_sound = 'sound/weapons/lasercannonfire.ogg' + src << "Turrets upgraded." + +/datum/AI_Module/large/lockdown + module_name = "Hostile Station Lockdown" + mod_pick_name = "lockdown" + description = "Overload the airlock, blast door and fire control networks, locking them down. Caution! This command also electrifies all airlocks. The networks will automatically reset after 90 seconds." + cost = 30 + one_time = 1 + + power_type = /mob/living/silicon/ai/proc/lockdown + +/mob/living/silicon/ai/proc/lockdown() + set category = "Malfunction" + set name = "Initiate Hostile Lockdown" + + if(!canUseTopic()) + return + + for(var/obj/machinery/door/D in airlocks) + if(D.z != ZLEVEL_STATION) + continue + addtimer(D, "hostile_lockdown", 0, FALSE, src) + addtimer(D, "disable_lockdown", 900) + + var/obj/machinery/computer/communications/C = locate() in machines + if(C) + C.post_status("alert", "lockdown") + + verbs -= /mob/living/silicon/ai/proc/lockdown + minor_announce("Hostile runtime detected in door controllers. Isolation Lockdown protocols are now in effect. Please remain calm.","Network Alert:", 1) + src << "Lockdown Initiated. Network reset in 90 seconds." + addtimer(GLOBAL_PROC, "minor_announce", 900, FALSE, + "Automatic system reboot complete. Have a secure day.", + "Network reset:") + +/datum/AI_Module/large/destroy_rcd + module_name = "Destroy RCDs" + mod_pick_name = "rcd" + description = "Send a specialised pulse to detonate all hand-held and exosuit Rapid Cconstruction Devices on the station." + cost = 25 + one_time = 1 + + power_type = /mob/living/silicon/ai/proc/disable_rcd + +/mob/living/silicon/ai/proc/disable_rcd() + set category = "Malfunction" + set name = "Destroy RCDs" + set desc = "Detonate all RCDs on the station, while sparing onboard cyborg RCDs." + + if(!canUseTopic() || malf_cooldown) + return + + for(var/I in rcd_list) + if(!istype(I, /obj/item/weapon/rcd/borg)) //Ensures that cyborg RCDs are spared. + var/obj/item/weapon/rcd/RCD = I + RCD.detonate_pulse() + + src << "RCD detonation pulse emitted." + malf_cooldown = 1 + spawn(100) + malf_cooldown = 0 + +/datum/AI_Module/large/mecha_domination + module_name = "Viral Mech Domination" + mod_pick_name = "mechjack" + description = "Hack into a mech's onboard computer, shunting all processes into it and ejecting any occupants. Once uploaded to the mech, it is impossible to leave.\ + Do not allow the mech to leave the station's vicinity or allow it to be destroyed." + cost = 30 + one_time = 1 + + power_type = /mob/living/silicon/ai/proc/mech_takeover + +/mob/living/silicon/ai/proc/mech_takeover() + set name = "Compile Mecha Virus" + set category = "Malfunction" + set desc = "Target a mech by clicking it. Click the appropriate command when ready." + if(stat) + return + can_dominate_mechs = 1 //Yep. This is all it does. Honk! + src << "Virus package compiled. Select a target mech at any time. You must remain on the station at all times. Loss of signal will result in total system lockout." + verbs -= /mob/living/silicon/ai/proc/mech_takeover + +/datum/AI_Module/large/break_fire_alarms + module_name = "Thermal Sensor Override" + mod_pick_name = "burnpigs" + description = "Gives you the ability to override the thermal sensors on all fire alarms. This will remove their ability to scan for fire and thus their ability to alert. \ + Anyone can check the fire alarm's interface and may be tipped off by its status." + one_time = 1 + cost = 25 + + power_type = /mob/living/silicon/ai/proc/break_fire_alarms + +/mob/living/silicon/ai/proc/break_fire_alarms() + set name = "Override Thermal Sensors" + set category = "Malfunction" + + if(!canUseTopic()) + return + + for(var/obj/machinery/firealarm/F in machines) + if(F.z != ZLEVEL_STATION) + continue + F.emagged = 1 + src << "All thermal sensors on the station have been disabled. Fire alerts will no longer be recognized." + src.verbs -= /mob/living/silicon/ai/proc/break_fire_alarms + +/datum/AI_Module/large/break_air_alarms + module_name = "Air Alarm Safety Override" + mod_pick_name = "allow_flooding" + description = "Gives you the ability to disable safeties on all air alarms. This will allow you to use the environmental mode Flood, which disables scrubbers as well as pressure checks on vents. \ + Anyone can check the air alarm's interface and may be tipped off by their nonfunctionality." + one_time = 1 + cost = 50 + + power_type = /mob/living/silicon/ai/proc/break_air_alarms + +/mob/living/silicon/ai/proc/break_air_alarms() + set name = "Disable Air Alarm Safeties" + set category = "Malfunction" + + if(!canUseTopic()) + return + + for(var/obj/machinery/airalarm/AA in machines) + if(AA.z != ZLEVEL_STATION) + continue + AA.emagged = 1 + src << "All air alarm safeties on the station have been overriden. Air alarms may now use the Flood environmental mode." + src.verbs -= /mob/living/silicon/ai/proc/break_air_alarms + +/datum/AI_Module/small/overload_machine + module_name = "Machine Overload" + mod_pick_name = "overload" + description = "Overloads an electrical machine, causing a small explosion. 2 uses." + uses = 2 + cost = 20 + + power_type = /mob/living/silicon/ai/proc/overload_machine + +/mob/living/silicon/ai/proc/overload_machine(obj/machinery/M in machines) + set name = "Overload Machine" + set category = "Malfunction" + + if(!canUseTopic()) + return + + if (istype(M, /obj/machinery)) + for(var/datum/AI_Module/small/overload_machine/overload in current_modules) + if(overload.uses > 0) + overload.uses -- + audible_message("You hear a loud electrical buzzing sound!") + src << "Overloading machine circuitry..." + spawn(50) + if(M) + explosion(get_turf(M), 0,1,1,0) + qdel(M) + else src << "Out of uses." + else src << "That's not a machine." + +/datum/AI_Module/small/override_machine + module_name = "Machine Override" + mod_pick_name = "override" + description = "Overrides a machine's programming, causing it to rise up and attack everyone except other machines. 4 uses." + uses = 4 + cost = 30 + + power_type = /mob/living/silicon/ai/proc/override_machine + + +/mob/living/silicon/ai/proc/override_machine(obj/machinery/M in machines) + set name = "Override Machine" + set category = "Malfunction" + + if(!canUseTopic()) + return + + if (istype(M, /obj/machinery)) + if(!M.can_be_overridden()) + src << "Can't override this device." + for(var/datum/AI_Module/small/override_machine/override in current_modules) + if(override.uses > 0) + override.uses -- + audible_message("You hear a loud electrical buzzing sound!") + src << "Reprogramming machine behaviour..." + spawn(50) + if(M && !qdeleted(M)) + new /mob/living/simple_animal/hostile/mimic/copy/machine(get_turf(M), M, src, 1) + else src << "Out of uses." + else src << "That's not a machine." + +/datum/AI_Module/large/place_cyborg_transformer + module_name = "Robotic Factory (Removes Shunting)" + mod_pick_name = "cyborgtransformer" + description = "Build a machine anywhere, using expensive nanomachines, that can convert a living human into a loyal cyborg slave when placed inside." + cost = 100 + power_type = /mob/living/silicon/ai/proc/place_transformer + var/list/turfOverlays = list() + +/datum/AI_Module/large/place_cyborg_transformer/New() + for(var/i=0;i<3;i++) + var/image/I = image("icon"='icons/turf/overlays.dmi') + turfOverlays += I + ..() + +/mob/living/silicon/ai/proc/place_transformer() + set name = "Place Robotic Factory" + set category = "Malfunction" + if(!canPlaceTransformer()) + return + var/sure = alert(src, "Are you sure you want to place the machine here?", "Are you sure?", "Yes", "No") + if(sure == "Yes") + if(!canPlaceTransformer()) + return + var/turf/T = get_turf(eyeobj) + new /obj/machinery/transformer/conveyor(T) + playsound(T, 'sound/effects/phasein.ogg', 100, 1) + var/datum/AI_Module/large/place_cyborg_transformer/PCT = locate() in current_modules + PCT.uses -- + can_shunt = 0 + src << "You cannot shunt anymore." + +/mob/living/silicon/ai/proc/canPlaceTransformer() + if(!eyeobj || !isturf(src.loc) || !canUseTopic()) + return + var/datum/AI_Module/large/place_cyborg_transformer/PCT = locate() in current_modules + if(!PCT || PCT.uses < 1) + alert(src, "Out of uses.") + return + var/turf/middle = get_turf(eyeobj) + var/list/turfs = list(middle, locate(middle.x - 1, middle.y, middle.z), locate(middle.x + 1, middle.y, middle.z)) + var/alert_msg = "There isn't enough room. Make sure you are placing the machine in a clear area and on a floor." + var/success = 1 + if(turfs.len == 3) + for(var/n=1;n<4,n++) + var/fail + var/turf/T = turfs[n] + if(!isfloorturf(T)) + fail = 1 + var/datum/camerachunk/C = cameranet.getCameraChunk(T.x, T.y, T.z) + if(!C.visibleTurfs[T]) + alert_msg = "We cannot get camera vision of this location." + fail = 1 + for(var/atom/movable/AM in T.contents) + if(AM.density) + fail = 1 + var/image/I = PCT.turfOverlays[n] + I.loc = T + client.images += I + if(fail) + success = 0 + I.icon_state = "redOverlay" + else + I.icon_state = "greenOverlay" + spawn(30) + if(client && (I.loc == T)) + client.images -= I + if(success) + return 1 + alert(src, alert_msg) + +/datum/AI_Module/small/blackout + module_name = "Blackout" + mod_pick_name = "blackout" + description = "Attempts to overload the lighting circuits on the station, destroying some bulbs. 3 uses." + uses = 3 + cost = 15 + + power_type = /mob/living/silicon/ai/proc/blackout + +/mob/living/silicon/ai/proc/blackout() + set category = "Malfunction" + set name = "Blackout" + + if(!canUseTopic()) + return + + for(var/datum/AI_Module/small/blackout/blackout in current_modules) + if(blackout.uses > 0) + blackout.uses -- + for(var/obj/machinery/power/apc/apc in machines) + if(prob(30*apc.overload)) + apc.overload_lighting() + else apc.overload++ + src << "Overcurrent applied to the powernet." + else src << "Out of uses." + +/datum/AI_Module/small/reactivate_cameras + module_name = "Reactivate Camera Network" + mod_pick_name = "recam" + description = "Runs a network-wide diagnostic on the camera network, resetting focus and re-routing power to failed cameras. Can be used to repair up to 30 cameras." + uses = 30 + cost = 10 + one_time = 1 + + power_type = /mob/living/silicon/ai/proc/reactivate_cameras + +/mob/living/silicon/ai/proc/reactivate_cameras() + set name = "Reactivate Cameranet" + set category = "Malfunction" + + if(!canUseTopic() || malf_cooldown) + return + var/fixedcams = 0 //Tells the AI how many cams it fixed. Stats are fun. + + for(var/datum/AI_Module/small/reactivate_cameras/camera in current_modules) + for(var/obj/machinery/camera/C in cameranet.cameras) + var/initial_range = initial(C.view_range) //To prevent calling the proc twice + if(camera.uses > 0) + if(!C.status) + C.toggle_cam(src, 0) //Reactivates the camera based on status. Badly named proc. + fixedcams++ + camera.uses-- + if(C.view_range != initial_range) + C.view_range = initial_range //Fixes cameras with bad focus. + camera.uses-- + fixedcams++ + //If a camera is both deactivated and has bad focus, it will cost two uses to fully fix! + else + src << "Out of uses." + verbs -= /mob/living/silicon/ai/proc/reactivate_cameras //It is useless now, clean it up. + break + src << "Diagnostic complete! Operations completed: [fixedcams]." + + malf_cooldown = 1 + spawn(30) //Lag protection + malf_cooldown = 0 + +/datum/AI_Module/large/upgrade_cameras + module_name = "Upgrade Camera Network" + mod_pick_name = "upgradecam" + description = "Install broad-spectrum scanning and electrical redundancy firmware to the camera network, enabling EMP-Proofing and light-amplified X-ray vision." //I <3 pointless technobabble + //This used to have motion sensing as well, but testing quickly revealed that giving it to the whole cameranet is PURE HORROR. + one_time = 1 + cost = 35 //Decent price for omniscience! + + power_type = /mob/living/silicon/ai/proc/upgrade_cameras + +/mob/living/silicon/ai/proc/upgrade_cameras() + set name = "Upgrade Cameranet" + set category = "Malfunction" + + if(!canUseTopic()) + return + + var/upgradedcams = 0 + see_override = SEE_INVISIBLE_MINIMUM //Night-vision, without which X-ray would be very limited in power. + update_sight() + + for(var/obj/machinery/camera/C in cameranet.cameras) + if(C.assembly) + var/upgraded = 0 + + if(!C.isXRay()) + C.upgradeXRay() + //Update what it can see. + cameranet.updateVisibility(C, 0) + upgraded = 1 + + if(!C.isEmpProof()) + C.upgradeEmpProof() + upgraded = 1 + + if(upgraded) + upgradedcams++ + + src << "OTA firmware distribution complete! Cameras upgraded: [upgradedcams]. Light amplification system online." + verbs -= /mob/living/silicon/ai/proc/upgrade_cameras + +/datum/module_picker + var/temp = null + var/processing_time = 50 + var/list/possible_modules = list() + +/datum/module_picker/New() + for(var/type in typesof(/datum/AI_Module)) + var/datum/AI_Module/AM = new type + if(AM.power_type != null) + src.possible_modules += AM + +/datum/module_picker/proc/remove_verbs(mob/living/silicon/ai/A) + + for(var/datum/AI_Module/AM in possible_modules) + A.verbs.Remove(AM.power_type) + + +/datum/module_picker/proc/use(mob/user) + var/dat + dat = "Select use of processing time: (currently #[src.processing_time] left.)
    " + dat += "
    " + dat += "Install Module:
    " + dat += "The number afterwards is the amount of processing time it consumes.
    " + for(var/datum/AI_Module/large/module in src.possible_modules) + dat += "[module.module_name]\[?\] ([module.cost])
    " + for(var/datum/AI_Module/small/module in src.possible_modules) + dat += "[module.module_name]\[?\] ([module.cost])
    " + dat += "
    " + if (src.temp) + dat += "[src.temp]" + var/datum/browser/popup = new(user, "modpicker", "Malf Module Menu") + popup.set_content(dat) + popup.open() + +/datum/module_picker/Topic(href, href_list) + ..() + + if(!isAI(usr)) + return + var/mob/living/silicon/ai/A = usr + + if(A.stat == DEAD) + A <<"You are already dead!" //Omae Wa Mou Shindeiru + return + + for(var/datum/AI_Module/AM in possible_modules) + if (href_list[AM.mod_pick_name]) + + // Cost check + if(AM.cost > src.processing_time) + temp = "You cannot afford this module." + break + + // Add new uses if we can, and it is allowed. + var/datum/AI_Module/already_AM = locate(AM.type) in A.current_modules + if(already_AM) + if(!AM.one_time) + already_AM.uses += AM.uses + src.processing_time -= AM.cost + temp = "Additional use added to [already_AM.module_name]" + break + else + temp = "This module is only needed once." + break + + // Give the power and take away the money. + A.view_core() //A BYOND bug requires you to be viewing your core before your verbs update + A.verbs += AM.power_type + A.current_modules += new AM.type + temp = AM.description + src.processing_time -= AM.cost + + if(href_list["showdesc"]) + if(AM.mod_pick_name == href_list["showdesc"]) + temp = AM.description + src.use(usr) + +/datum/AI_Module/large/eavesdrop + module_name = "Enhanced Surveillance" + mod_pick_name = "eavesdrop" + description = "Via a combination of hidden microphones and lip reading software, you are able to use your cameras to listen in on conversations." + cost = 30 + one_time = 1 + + power_type = /mob/living/silicon/ai/proc/surveillance + +/mob/living/silicon/ai/proc/surveillance() + set category = "Malfunction" + set name = "Enhanced Surveillance" + + if(eyeobj) + eyeobj.relay_speech = TRUE + src << "OTA firmware distribution complete! Cameras upgraded: Enhanced surveillance package online." + verbs -= /mob/living/silicon/ai/proc/surveillance diff --git a/code/game/gamemodes/meteor/meteor.dm b/code/game/gamemodes/meteor/meteor.dm new file mode 100644 index 0000000..9fd121a --- /dev/null +++ b/code/game/gamemodes/meteor/meteor.dm @@ -0,0 +1,57 @@ +/datum/game_mode/meteor + name = "meteor" + config_tag = "meteor" + var/meteordelay = 2000 + var/nometeors = 0 + var/rampupdelta = 5 + required_players = 0 + + announce_span = "danger" + announce_text = "A major meteor shower is bombarding the station! The crew needs to evacuate or survive the onslaught." + + +/datum/game_mode/meteor/process() + if(nometeors || meteordelay > world.time - round_start_time) + return + + var/list/wavetype = meteors_normal + var/meteorminutes = (world.time - round_start_time - meteordelay) / 10 / 60 + + + if (prob(meteorminutes)) + wavetype = meteors_threatening + + if (prob(meteorminutes/2)) + wavetype = meteors_catastrophic + + var/ramp_up_final = Clamp(round(meteorminutes/rampupdelta), 1, 10) + + spawn_meteors(ramp_up_final, wavetype) + + +/datum/game_mode/meteor/declare_completion() + var/text + var/survivors = 0 + + for(var/mob/living/player in player_list) + if(player.stat != DEAD) + ++survivors + + if(player.onCentcom()) + text += "
    [player.real_name] escaped to the safety of Centcom." + else if(player.onSyndieBase()) + text += "
    [player.real_name] escaped to the (relative) safety of Syndicate Space." + else + text += "
    [player.real_name] survived but is stranded without any hope of rescue." + + + if(survivors) + world << "The following survived the meteor storm:[text]" + else + world << "Nobody survived the meteor storm!" + + feedback_set_details("round_end_result","end - evacuation") + feedback_set("round_end_result",survivors) + + ..() + return 1 diff --git a/code/game/gamemodes/meteor/meteors.dm b/code/game/gamemodes/meteor/meteors.dm new file mode 100644 index 0000000..7aa5684 --- /dev/null +++ b/code/game/gamemodes/meteor/meteors.dm @@ -0,0 +1,364 @@ +#define DEFAULT_METEOR_LIFETIME 1800 +/var/const/meteor_wave_delay = 625 //minimum wait between waves in tenths of seconds +//set to at least 100 unless you want evarr ruining every round + +//Meteors probability of spawning during a given wave +/var/list/meteors_normal = list(/obj/effect/meteor/dust=3, /obj/effect/meteor/medium=8, /obj/effect/meteor/big=3, \ + /obj/effect/meteor/flaming=1, /obj/effect/meteor/irradiated=3) //for normal meteor event + +/var/list/meteors_threatening = list(/obj/effect/meteor/medium=4, /obj/effect/meteor/big=8, \ + /obj/effect/meteor/flaming=3, /obj/effect/meteor/irradiated=3) //for threatening meteor event + +/var/list/meteors_catastrophic = list(/obj/effect/meteor/medium=5, /obj/effect/meteor/big=75, \ + /obj/effect/meteor/flaming=10, /obj/effect/meteor/irradiated=10, /obj/effect/meteor/tunguska = 1) //for catastrophic meteor event + +/var/list/meteorsB = list(/obj/effect/meteor/meaty=5, /obj/effect/meteor/meaty/xeno=1) //for meaty ore event + +/var/list/meteorsC = list(/obj/effect/meteor/dust) //for space dust event + + +/////////////////////////////// +//Meteor spawning global procs +/////////////////////////////// + +/proc/spawn_meteors(number = 10, list/meteortypes) + for(var/i = 0; i < number; i++) + spawn_meteor(meteortypes) + +/proc/spawn_meteor(list/meteortypes) + var/turf/pickedstart + var/turf/pickedgoal + var/max_i = 10//number of tries to spawn meteor. + while(!isspaceturf(pickedstart)) + var/startSide = pick(cardinal) + pickedstart = spaceDebrisStartLoc(startSide, 1) + pickedgoal = spaceDebrisFinishLoc(startSide, 1) + max_i-- + if(max_i<=0) + return + var/Me = pickweight(meteortypes) + var/obj/effect/meteor/M = new Me(pickedstart) + M.dest = pickedgoal + M.z_original = 1 + spawn(0) + walk_towards(M, M.dest, 1) + +/proc/spaceDebrisStartLoc(startSide, Z) + var/starty + var/startx + switch(startSide) + if(NORTH) + starty = world.maxy-(TRANSITIONEDGE+1) + startx = rand((TRANSITIONEDGE+1), world.maxx-(TRANSITIONEDGE+1)) + if(EAST) + starty = rand((TRANSITIONEDGE+1),world.maxy-(TRANSITIONEDGE+1)) + startx = world.maxx-(TRANSITIONEDGE+1) + if(SOUTH) + starty = (TRANSITIONEDGE+1) + startx = rand((TRANSITIONEDGE+1), world.maxx-(TRANSITIONEDGE+1)) + if(WEST) + starty = rand((TRANSITIONEDGE+1), world.maxy-(TRANSITIONEDGE+1)) + startx = (TRANSITIONEDGE+1) + . = locate(startx, starty, Z) + +/proc/spaceDebrisFinishLoc(startSide, Z) + var/endy + var/endx + switch(startSide) + if(NORTH) + endy = TRANSITIONEDGE + endx = rand(TRANSITIONEDGE, world.maxx-TRANSITIONEDGE) + if(EAST) + endy = rand(TRANSITIONEDGE, world.maxy-TRANSITIONEDGE) + endx = TRANSITIONEDGE + if(SOUTH) + endy = world.maxy-TRANSITIONEDGE + endx = rand(TRANSITIONEDGE, world.maxx-TRANSITIONEDGE) + if(WEST) + endy = rand(TRANSITIONEDGE,world.maxy-TRANSITIONEDGE) + endx = world.maxx-TRANSITIONEDGE + . = locate(endx, endy, Z) + +/////////////////////// +//The meteor effect +////////////////////// + +/obj/effect/meteor + name = "the concept of meteor" + desc = "You should probably run instead of gawking at this." + icon = 'icons/obj/meteor.dmi' + icon_state = "small" + density = 1 + anchored = 1 + var/hits = 4 + var/hitpwr = 2 //Level of ex_act to be called on hit. + var/dest + pass_flags = PASSTABLE + var/heavy = 0 + var/meteorsound = 'sound/effects/meteorimpact.ogg' + var/z_original = 1 + var/threat = 0 // used for determining which meteors are most interesting + var/lifetime = DEFAULT_METEOR_LIFETIME + + var/list/meteordrop = list(/obj/item/weapon/ore/iron) + var/dropamt = 2 + +/obj/effect/meteor/Move() + if(z != z_original || loc == dest) + qdel(src) + return + + . = ..() //process movement... + + if(.)//.. if did move, ram the turf we get in + var/turf/T = get_turf(loc) + ram_turf(T) + + if(prob(10) && !isspaceturf(T))//randomly takes a 'hit' from ramming + get_hit() + +/obj/effect/meteor/Destroy() + meteor_list -= src + walk(src,0) //this cancels the walk_towards() proc + . = ..() + +/obj/effect/meteor/New() + ..() + meteor_list += src + if(SSaugury) + SSaugury.register_doom(src, threat) + SpinAnimation() + QDEL_IN(src, lifetime) + +/obj/effect/meteor/Bump(atom/A) + if(A) + ram_turf(get_turf(A)) + playsound(src.loc, meteorsound, 40, 1) + get_hit() + +/obj/effect/meteor/proc/ram_turf(turf/T) + //first bust whatever is in the turf + for(var/atom/A in T) + if(A != src) + if(isliving(A)) + A.visible_message("[src] slams into [A].", "[src] slams into you!.") + A.ex_act(hitpwr) + + //then, ram the turf if it still exists + if(T) + T.ex_act(hitpwr) + + + +//process getting 'hit' by colliding with a dense object +//or randomly when ramming turfs +/obj/effect/meteor/proc/get_hit() + hits-- + if(hits <= 0) + make_debris() + meteor_effect() + qdel(src) + +/obj/effect/meteor/ex_act() + return + +#define METEOR_MEDAL "Your Life Before Your Eyes" + +/obj/effect/meteor/examine(mob/user) + if(!admin_spawned && isliving(user)) + UnlockMedal(METEOR_MEDAL,user.client) + ..() + +#undef METEOR_MEDAL + +/obj/effect/meteor/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/weapon/pickaxe)) + make_debris() + qdel(src) + else + . = ..() + +/obj/effect/meteor/proc/make_debris() + for(var/throws = dropamt, throws > 0, throws--) + var/thing_to_spawn = pick(meteordrop) + new thing_to_spawn(get_turf(src)) + +/obj/effect/meteor/proc/meteor_effect() + if(heavy) + for(var/mob/M in player_list) + if((M.orbiting) && (SSaugury.watchers[M])) + continue + var/turf/T = get_turf(M) + if(!T || T.z != src.z) + continue + var/dist = get_dist(M.loc, src.loc) + shake_camera(M, dist > 20 ? 2 : 4, dist > 20 ? 1 : 3) + M.playsound_local(src.loc, meteorsound, 50, 1, get_rand_frequency(), 10) + +/////////////////////// +//Meteor types +/////////////////////// + +//Dust +/obj/effect/meteor/dust + name = "space dust" + icon_state = "dust" + pass_flags = PASSTABLE | PASSGRILLE + hits = 1 + hitpwr = 3 + meteorsound = 'sound/weapons/Gunshot_smg.ogg' + meteordrop = list(/obj/item/weapon/ore/glass) + threat = 1 + +//Medium-sized +/obj/effect/meteor/medium + name = "meteor" + dropamt = 3 + threat = 5 + +/obj/effect/meteor/medium/meteor_effect() + ..() + explosion(src.loc, 0, 1, 2, 3, 0) + +//Large-sized +/obj/effect/meteor/big + name = "big meteor" + icon_state = "large" + hits = 6 + heavy = 1 + dropamt = 4 + threat = 10 + +/obj/effect/meteor/big/meteor_effect() + ..() + explosion(src.loc, 1, 2, 3, 4, 0) + +//Flaming meteor +/obj/effect/meteor/flaming + name = "flaming meteor" + icon_state = "flaming" + hits = 5 + heavy = 1 + meteorsound = 'sound/effects/bamf.ogg' + meteordrop = list(/obj/item/weapon/ore/plasma) + threat = 20 + +/obj/effect/meteor/flaming/meteor_effect() + ..() + explosion(src.loc, 1, 2, 3, 4, 0, 0, 5) + +//Radiation meteor +/obj/effect/meteor/irradiated + name = "glowing meteor" + icon_state = "glowing" + heavy = 1 + meteordrop = list(/obj/item/weapon/ore/uranium) + threat = 15 + + +/obj/effect/meteor/irradiated/meteor_effect() + ..() + explosion(src.loc, 0, 0, 4, 3, 0) + new /obj/effect/decal/cleanable/greenglow(get_turf(src)) + radiation_pulse(get_turf(src), 2, 5, 50, 1) + +//Meaty Ore +/obj/effect/meteor/meaty + name = "meaty ore" + icon_state = "meateor" + desc = "Just... don't think too hard about where this thing came from." + hits = 2 + heavy = 1 + meteorsound = 'sound/effects/blobattack.ogg' + meteordrop = list(/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human, /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant, /obj/item/organ/heart, /obj/item/organ/lungs, /obj/item/organ/tongue, /obj/item/organ/appendix/) + var/meteorgibs = /obj/effect/gibspawner/generic + threat = 2 + +/obj/effect/meteor/meaty/New() + for(var/path in meteordrop) + if(path == /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant) + meteordrop -= path + meteordrop += pick(subtypesof(path)) + + for(var/path in meteordrop) + if(path == /obj/item/organ/tongue) + meteordrop -= path + meteordrop += pick(typesof(path)) + ..() + +/obj/effect/meteor/meaty/make_debris() + ..() + new meteorgibs(get_turf(src)) + + +/obj/effect/meteor/meaty/ram_turf(turf/T) + if(!isspaceturf(T)) + new /obj/effect/decal/cleanable/blood(T) + +/obj/effect/meteor/meaty/Bump(atom/A) + A.ex_act(hitpwr) + get_hit() + +//Meaty Ore Xeno edition +/obj/effect/meteor/meaty/xeno + color = "#5EFF00" + meteordrop = list(/obj/item/weapon/reagent_containers/food/snacks/meat/slab/xeno, /obj/item/organ/tongue/alien) + meteorgibs = /obj/effect/gibspawner/xeno + +/obj/effect/meteor/meaty/xeno/New() + meteordrop += subtypesof(/obj/item/organ/alien) + ..() + +/obj/effect/meteor/meaty/xeno/ram_turf(turf/T) + if(!isspaceturf(T)) + new /obj/effect/decal/cleanable/xenoblood(T) + +//Station buster Tunguska +/obj/effect/meteor/tunguska + name = "tunguska meteor" + icon_state = "flaming" + desc = "Your life briefly passes before your eyes the moment you lay \ + them on this monstrosity." + hits = 30 + hitpwr = 1 + heavy = 1 + meteorsound = 'sound/effects/bamf.ogg' + meteordrop = list(/obj/item/weapon/ore/plasma) + threat = 50 + +/obj/effect/meteor/tunguska/Move() + . = ..() + if(.) + PoolOrNew(/obj/effect/overlay/temp/revenant, get_turf(src)) + +/obj/effect/meteor/tunguska/meteor_effect() + ..() + explosion(src.loc, 5, 10, 15, 20, 0) + +/obj/effect/meteor/tunguska/Bump() + ..() + if(prob(20)) + explosion(src.loc,2,4,6,8) + +////////////////////////// +//Spookoween meteors +///////////////////////// + +/var/list/meteorsSPOOKY = list(/obj/effect/meteor/pumpkin) + +/obj/effect/meteor/pumpkin + name = "PUMPKING" + desc = "THE PUMPKING'S COMING!" + icon = 'icons/obj/meteor_spooky.dmi' + icon_state = "pumpkin" + hits = 10 + heavy = 1 + dropamt = 1 + meteordrop = list(/obj/item/clothing/head/hardhat/pumpkinhead, /obj/item/weapon/reagent_containers/food/snacks/grown/pumpkin) + threat = 100 + +/obj/effect/meteor/pumpkin/New() + ..() + meteorsound = pick('sound/hallucinations/im_here1.ogg','sound/hallucinations/im_here2.ogg') +////////////////////////// +#undef DEFAULT_METEOR_LIFETIME diff --git a/code/game/gamemodes/miniantags/abduction/abduction.dm b/code/game/gamemodes/miniantags/abduction/abduction.dm new file mode 100644 index 0000000..7f591b6 --- /dev/null +++ b/code/game/gamemodes/miniantags/abduction/abduction.dm @@ -0,0 +1,456 @@ +/datum/game_mode + var/abductor_teams = 0 + var/list/datum/mind/abductors = list() + var/list/datum/mind/abductees = list() + +/datum/game_mode/abduction + name = "abduction" + config_tag = "abduction" + antag_flag = ROLE_ABDUCTOR + recommended_enemies = 2 + required_players = 15 + var/max_teams = 4 + abductor_teams = 1 + var/list/datum/mind/scientists = list() + var/list/datum/mind/agents = list() + var/list/datum/objective/team_objectives = list() + var/list/team_names = list() + var/finished = 0 + +/datum/game_mode/abduction/announce() + world << "The current game mode is - Abduction!" + world << "There are alien abductors sent to [station_name()] to perform nefarious experiments!" + world << "Abductors - kidnap the crew and replace their organs with experimental ones." + world << "Crew - don't get abducted and stop the abductors." + +/datum/game_mode/abduction/pre_setup() + abductor_teams = max(1, min(max_teams,round(num_players()/config.abductor_scaling_coeff))) + var/possible_teams = max(1,round(antag_candidates.len / 2)) + abductor_teams = min(abductor_teams,possible_teams) + + abductors.len = 2*abductor_teams + scientists.len = abductor_teams + agents.len = abductor_teams + team_objectives.len = abductor_teams + team_names.len = abductor_teams + + for(var/i=1,i<=abductor_teams,i++) + if(!make_abductor_team(i)) + return 0 + + return 1 + +/datum/game_mode/abduction/proc/make_abductor_team(team_number,preset_agent=null,preset_scientist=null) + //Team Name + team_names[team_number] = "Mothership [pick(possible_changeling_IDs)]" //TODO Ensure unique and actual alieny names + //Team Objective + var/datum/objective/experiment/team_objective = new + team_objective.team = team_number + team_objectives[team_number] = team_objective + //Team Members + + if(!preset_agent || !preset_scientist) + if(antag_candidates.len <=2) + return 0 + + var/datum/mind/scientist + var/datum/mind/agent + + if(!preset_scientist) + scientist = pick(antag_candidates) + antag_candidates -= scientist + else + scientist = preset_scientist + + if(!preset_agent) + agent = pick(antag_candidates) + antag_candidates -= agent + else + agent = preset_agent + + + scientist.assigned_role = "abductor scientist" + scientist.special_role = "abductor scientist" + log_game("[scientist.key] (ckey) has been selected as an abductor team [team_number] scientist.") + + agent.assigned_role = "abductor agent" + agent.special_role = "abductor agent" + log_game("[agent.key] (ckey) has been selected as an abductor team [team_number] agent.") + + abductors |= agent + abductors |= scientist + scientists[team_number] = scientist + agents[team_number] = agent + return 1 + +/datum/game_mode/abduction/post_setup() + //Spawn Team + var/list/obj/effect/landmark/abductor/agent_landmarks = new + var/list/obj/effect/landmark/abductor/scientist_landmarks = new + agent_landmarks.len = max_teams + scientist_landmarks.len = max_teams + for(var/obj/effect/landmark/abductor/A in landmarks_list) + if(istype(A,/obj/effect/landmark/abductor/agent)) + agent_landmarks[text2num(A.team)] = A + else if(istype(A,/obj/effect/landmark/abductor/scientist)) + scientist_landmarks[text2num(A.team)] = A + + var/datum/mind/agent + var/obj/effect/landmark/L + var/datum/mind/scientist + var/team_name + var/mob/living/carbon/human/H + var/datum/species/abductor/S + for(var/team_number=1,team_number<=abductor_teams,team_number++) + team_name = team_names[team_number] + agent = agents[team_number] + H = agent.current + L = agent_landmarks[team_number] + H.loc = L.loc + H.set_species(/datum/species/abductor) + S = H.dna.species + S.agent = 1 + S.team = team_number + H.real_name = team_name + " Agent" + equip_common(H,team_number) + equip_agent(H,team_number) + greet_agent(agent,team_number) + + scientist = scientists[team_number] + H = scientist.current + L = scientist_landmarks[team_number] + H.loc = L.loc + H.set_species(/datum/species/abductor) + S = H.dna.species + S.scientist = 1 + S.team = team_number + H.real_name = team_name + " Scientist" + equip_common(H,team_number) + equip_scientist(H,team_number) + greet_scientist(scientist,team_number) + return ..() + +//Used for create antag buttons +/datum/game_mode/abduction/proc/post_setup_team(team_number) + var/list/obj/effect/landmark/abductor/agent_landmarks = new + var/list/obj/effect/landmark/abductor/scientist_landmarks = new + agent_landmarks.len = max_teams + scientist_landmarks.len = max_teams + for(var/obj/effect/landmark/abductor/A in landmarks_list) + if(istype(A,/obj/effect/landmark/abductor/agent)) + agent_landmarks[text2num(A.team)] = A + else if(istype(A,/obj/effect/landmark/abductor/scientist)) + scientist_landmarks[text2num(A.team)] = A + + var/datum/mind/agent + var/obj/effect/landmark/L + var/datum/mind/scientist + var/team_name + var/mob/living/carbon/human/H + var/datum/species/abductor/S + + team_name = team_names[team_number] + agent = agents[team_number] + H = agent.current + L = agent_landmarks[team_number] + H.loc = L.loc + H.set_species(/datum/species/abductor) + S = H.dna.species + S.agent = 1 + S.team = team_number + H.real_name = team_name + " Agent" + equip_common(H,team_number) + equip_agent(H,team_number) + greet_agent(agent,team_number) + + + scientist = scientists[team_number] + H = scientist.current + L = scientist_landmarks[team_number] + H.loc = L.loc + H.set_species(/datum/species/abductor) + S = H.dna.species + S.scientist = 1 + S.team = team_number + H.real_name = team_name + " Scientist" + equip_common(H,team_number) + equip_scientist(H,team_number) + greet_scientist(scientist,team_number) + + + +/datum/game_mode/abduction/proc/greet_agent(datum/mind/abductor,team_number) + abductor.objectives += team_objectives[team_number] + var/team_name = team_names[team_number] + + abductor.current << "You are an agent of [team_name]!" + abductor.current << "With the help of your teammate, kidnap and experiment on station crew members!" + abductor.current << "Use your stealth technology and equipment to incapacitate humans for your scientist to retrieve." + + abductor.announce_objectives() + +/datum/game_mode/abduction/proc/greet_scientist(datum/mind/abductor,team_number) + abductor.objectives += team_objectives[team_number] + var/team_name = team_names[team_number] + + abductor.current << "You are a scientist of [team_name]!" + abductor.current << "With the help of your teammate, kidnap and experiment on station crew members!" + abductor.current << "Use your tool and ship consoles to support the agent and retrieve human specimens." + + abductor.announce_objectives() + +/datum/game_mode/abduction/proc/equip_common(mob/living/carbon/human/agent,team_number) + var/radio_freq = SYND_FREQ + + var/obj/item/device/radio/R = new /obj/item/device/radio/headset/syndicate/alt(agent) + R.set_frequency(radio_freq) + agent.equip_to_slot_or_del(R, slot_ears) + agent.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(agent), slot_shoes) + agent.equip_to_slot_or_del(new /obj/item/clothing/under/color/grey(agent), slot_w_uniform) //they're greys gettit + agent.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(agent), slot_back) + +/datum/game_mode/abduction/proc/get_team_console(team) + var/obj/machinery/abductor/console/console + for(var/obj/machinery/abductor/console/c in machines) + if(c.team == team) + console = c + break + return console + +/datum/game_mode/abduction/proc/equip_agent(mob/living/carbon/human/agent,team_number) + if(!team_number) + var/datum/species/abductor/S = agent.dna.species + team_number = S.team + + var/obj/machinery/abductor/console/console = get_team_console(team_number) + var/obj/item/clothing/suit/armor/abductor/vest/V = new /obj/item/clothing/suit/armor/abductor/vest(agent) + if(console!=null) + console.vest = V + V.flags |= NODROP + agent.equip_to_slot_or_del(V, slot_wear_suit) + agent.equip_to_slot_or_del(new /obj/item/weapon/abductor_baton(agent), slot_belt) + agent.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/alien(agent), slot_in_backpack) + agent.equip_to_slot_or_del(new /obj/item/device/abductor/silencer(agent), slot_in_backpack) + agent.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/abductor(agent), slot_head) + + +/datum/game_mode/abduction/proc/equip_scientist(var/mob/living/carbon/human/scientist,var/team_number) + if(!team_number) + var/datum/species/abductor/S = scientist.dna.species + team_number = S.team + + var/obj/machinery/abductor/console/console = get_team_console(team_number) + var/obj/item/device/abductor/gizmo/G = new /obj/item/device/abductor/gizmo(scientist) + if(console!=null) + console.gizmo = G + G.console = console + scientist.equip_to_slot_or_del(G, slot_in_backpack) + + var/obj/item/weapon/implant/abductor/beamplant = new /obj/item/weapon/implant/abductor(scientist) + beamplant.implant(scientist) + + +/datum/game_mode/abduction/check_finished() + if(!finished) + for(var/team_number=1,team_number<=abductor_teams,team_number++) + var/obj/machinery/abductor/console/con = get_team_console(team_number) + var/datum/objective/objective = team_objectives[team_number] + if (con.experiment.points >= objective.target_amount) + SSshuttle.emergency.request(null, 0.5) + finished = 1 + return ..() + return ..() + +/datum/game_mode/abduction/declare_completion() + for(var/team_number=1,team_number<=abductor_teams,team_number++) + var/obj/machinery/abductor/console/console = get_team_console(team_number) + var/datum/objective/objective = team_objectives[team_number] + var/team_name = team_names[team_number] + if(console.experiment.points >= objective.target_amount) + world << "[team_name] team fullfilled its mission!" + else + world << "[team_name] team failed its mission." + ..() + return 1 + +/datum/game_mode/proc/auto_declare_completion_abduction() + var/text = "" + if(abductors.len) + text += "
    The abductors were:" + for(var/datum/mind/abductor_mind in abductors) + text += printplayer(abductor_mind) + text += printobjectives(abductor_mind) + text += "
    " + if(abductees.len) + text += "
    The abductees were:" + for(var/datum/mind/abductee_mind in abductees) + text += printplayer(abductee_mind) + text += printobjectives(abductee_mind) + text += "
    " + world << text + +//Landmarks +// TODO: Split into seperate landmarks for prettier ships +/obj/effect/landmark/abductor + var/team = 1 + +/obj/effect/landmark/abductor/console/New() + var/obj/machinery/abductor/console/c = new /obj/machinery/abductor/console(src.loc) + c.team = team + + spawn(5) // I'd do this properly when i got some time, temporary hack for mappers + c.Initialize() + qdel(src) + + +/obj/effect/landmark/abductor/agent +/obj/effect/landmark/abductor/scientist + + +// OBJECTIVES +/datum/objective/experiment + dangerrating = 10 + target_amount = 6 + var/team + +/datum/objective/experiment/New() + explanation_text = "Experiment on [target_amount] humans." + +/datum/objective/experiment/check_completion() + var/ab_team = team + if(owner) + if(!owner.current || !ishuman(owner.current)) + return 0 + var/mob/living/carbon/human/H = owner.current + if(H.dna.species.id != "abductor") + return 0 + var/datum/species/abductor/S = H.dna.species + ab_team = S.team + for(var/obj/machinery/abductor/experiment/E in machines) + if(E.team == ab_team) + if(E.points >= target_amount) + return 1 + else + return 0 + return 0 + +/datum/game_mode/proc/update_abductor_icons_added(datum/mind/alien_mind) + var/datum/atom_hud/antag/hud = huds[ANTAG_HUD_ABDUCTOR] + hud.join_hud(alien_mind.current) + set_antag_hud(alien_mind.current, ((alien_mind in abductors) ? "abductor" : "abductee")) + +/datum/game_mode/proc/update_abductor_icons_removed(datum/mind/alien_mind) + var/datum/atom_hud/antag/hud = huds[ANTAG_HUD_ABDUCTOR] + hud.leave_hud(alien_mind.current) + set_antag_hud(alien_mind.current, null) + +/datum/objective/abductee + dangerrating = 5 + completed = 1 + +/datum/objective/abductee/steal + explanation_text = "Steal all" + +/datum/objective/abductee/steal/New() + var/target = pick(list("pets","lights","monkeys","fruits","shoes","bars of soap")) + explanation_text+=" [target]." + +/datum/objective/abductee/capture + explanation_text = "Capture" + +/datum/objective/abductee/capture/New() + var/list/jobs = SSjob.occupations.Copy() + for(var/datum/job/J in jobs) + if(J.current_positions < 1) + jobs -= J + if(jobs.len > 0) + var/datum/job/target = pick(jobs) + explanation_text += " a [target.title]." + else + explanation_text += " someone." + +/datum/objective/abductee/shuttle + explanation_text = "You must escape the station! Get the shuttle called!" + +/datum/objective/abductee/noclone + explanation_text = "Don't allow anyone to be cloned." + +/datum/objective/abductee/oxygen + explanation_text = "The oxygen is killing them all and they don't even know it. Make sure no oxygen is on the station." + +/datum/objective/abductee/blazeit + explanation_text = "Your body must be improved. Ingest as many drugs as you can." + +/datum/objective/abductee/yumyum + explanation_text = "You are hungry. Eat as much food as you can find." + +/datum/objective/abductee/insane + explanation_text = "You see you see what they cannot you see the open door you seeE you SEeEe you SEe yOU seEee SHOW THEM ALL" + +/datum/objective/abductee/cannotmove + explanation_text = "Convince the crew that you are a paraplegic." + +/datum/objective/abductee/deadbodies + explanation_text = "Start a collection of corpses. Don't kill people to get these corpses." + +/datum/objective/abductee/floors + explanation_text = "Replace all the floor tiles with carpeting, wooden boards, or grass." + +/datum/objective/abductee/POWERUNLIMITED + explanation_text = "Flood the station's powernet with as much electricity as you can." + +/datum/objective/abductee/pristine + explanation_text = "Ensure the station is in absolutely pristine condition." + +/datum/objective/abductee/window + explanation_text = "Replace all normal windows with reinforced windows." + +/datum/objective/abductee/nations + explanation_text = "Ensure your department prospers over all else." + +/datum/objective/abductee/abductception + explanation_text = "You have been changed forever. Find the ones that did this to you and give them a taste of their own medicine." + +/datum/objective/abductee/ghosts + explanation_text = "Conduct a seance with the spirits of the afterlife." + +/datum/objective/abductee/summon + explanation_text = "Conduct a ritual to summon an elder god." + +/datum/objective/abductee/machine + explanation_text = "You are secretly an android. Interface with as many machines as you can to boost your own power." + +/datum/objective/abductee/prevent + explanation_text = "You have been enlightened. This knowledge must not escape. Ensure nobody else can become enlightened." + +/datum/objective/abductee/calling + explanation_text = "Call forth a spirit from the other side." + +/datum/objective/abductee/calling/New() + var/mob/dead/D = pick(dead_mob_list) + if(D) + explanation_text = "You know that [D] has perished. Call them from the spirit realm." + +/datum/objective/abductee/social_experiment + explanation_text = "This is a secret social experiment conducted by Nanotrasen. Convince the crew that this is the truth." + +/datum/objective/abductee/vr + explanation_text = "It's all an entirely virtual simulation within an underground vault. Convince the crew to escape the shackles of VR." + +/datum/objective/abductee/pets + explanation_text = "Nanotrasen is abusing the animals! Save as many as you can!" + +/datum/objective/abductee/defect + explanation_text = "Defect from your employer." + +/datum/objective/abductee/promote + explanation_text = "Climb the corporate ladder all the way to the top!" + +/datum/objective/abductee/science + explanation_text = "So much lies undiscovered. Look deeper into the machinations of the universe." + +/datum/objective/abductee/build + explanation_text = "Expand the station." + +/datum/objective/abductee/pragnant + explanation_text = "You are pregnant and soon due. Find a safe place to deliver your baby." diff --git a/code/game/gamemodes/miniantags/abduction/abduction_gear.dm b/code/game/gamemodes/miniantags/abduction/abduction_gear.dm new file mode 100644 index 0000000..73cb67f --- /dev/null +++ b/code/game/gamemodes/miniantags/abduction/abduction_gear.dm @@ -0,0 +1,627 @@ +#define VEST_STEALTH 1 +#define VEST_COMBAT 2 +#define GIZMO_SCAN 1 +#define GIZMO_MARK 2 + +//AGENT VEST +/obj/item/clothing/suit/armor/abductor/vest + name = "agent vest" + desc = "A vest outfitted with advanced stealth technology. It has two modes - combat and stealth." + icon = 'icons/obj/abductor.dmi' + icon_state = "vest_stealth" + item_state = "armor" + blood_overlay_type = "armor" + origin_tech = "magnets=7;biotech=4;powerstorage=4;abductor=4" + armor = list(melee = 15, bullet = 15, laser = 15, energy = 15, bomb = 15, bio = 15, rad = 15, fire = 70, acid = 70) + actions_types = list(/datum/action/item_action/hands_free/activate) + var/mode = VEST_STEALTH + var/stealth_active = 0 + var/combat_cooldown = 10 + var/datum/icon_snapshot/disguise + var/stealth_armor = list(melee = 15, bullet = 15, laser = 15, energy = 15, bomb = 15, bio = 15, rad = 15, fire = 70, acid = 70) + var/combat_armor = list(melee = 50, bullet = 50, laser = 50, energy = 50, bomb = 50, bio = 50, rad = 50, fire = 90, acid = 90) + +/obj/item/clothing/suit/armor/abductor/vest/proc/flip_mode() + switch(mode) + if(VEST_STEALTH) + mode = VEST_COMBAT + DeactivateStealth() + armor = combat_armor + icon_state = "vest_combat" + if(VEST_COMBAT)// TO STEALTH + mode = VEST_STEALTH + armor = stealth_armor + icon_state = "vest_stealth" + if(ishuman(loc)) + var/mob/living/carbon/human/H = loc + H.update_inv_wear_suit() + for(var/X in actions) + var/datum/action/A = X + A.UpdateButtonIcon() + +/obj/item/clothing/suit/armor/abductor/vest/item_action_slot_check(slot, mob/user) + if(slot == slot_wear_suit) //we only give the mob the ability to activate the vest if he's actually wearing it. + return 1 + +/obj/item/clothing/suit/armor/abductor/vest/proc/SetDisguise(datum/icon_snapshot/entry) + disguise = entry + +/obj/item/clothing/suit/armor/abductor/vest/proc/ActivateStealth() + if(disguise == null) + return + stealth_active = 1 + if(ishuman(loc)) + var/mob/living/carbon/human/M = loc + PoolOrNew(/obj/effect/overlay/temp/dir_setting/ninja/cloak, + list(get_turf(M), M.dir)) + M.name_override = disguise.name + M.icon = disguise.icon + M.icon_state = disguise.icon_state + M.overlays = disguise.overlays + M.update_inv_hands() + +/obj/item/clothing/suit/armor/abductor/vest/proc/DeactivateStealth() + if(!stealth_active) + return + stealth_active = 0 + if(ishuman(loc)) + var/mob/living/carbon/human/M = loc + PoolOrNew(/obj/effect/overlay/temp/dir_setting/ninja, + list(get_turf(M), M.dir)) + M.name_override = null + M.cut_overlays() + M.regenerate_icons() + +/obj/item/clothing/suit/armor/abductor/vest/hit_reaction() + DeactivateStealth() + return 0 + +/obj/item/clothing/suit/armor/abductor/vest/IsReflect() + DeactivateStealth() + return 0 + +/obj/item/clothing/suit/armor/abductor/vest/ui_action_click() + switch(mode) + if(VEST_COMBAT) + Adrenaline() + if(VEST_STEALTH) + if(stealth_active) + DeactivateStealth() + else + ActivateStealth() + +/obj/item/clothing/suit/armor/abductor/vest/proc/Adrenaline() + if(ishuman(loc)) + if(combat_cooldown != initial(combat_cooldown)) + loc << "Combat injection is still recharging." + return + var/mob/living/carbon/human/M = loc + M.adjustStaminaLoss(-75) + M.SetParalysis(0) + M.SetStunned(0) + M.SetWeakened(0) + combat_cooldown = 0 + START_PROCESSING(SSobj, src) + +/obj/item/clothing/suit/armor/abductor/vest/process() + combat_cooldown++ + if(combat_cooldown==initial(combat_cooldown)) + STOP_PROCESSING(SSobj, src) + +/obj/item/device/abductor/proc/AbductorCheck(user) + if(isabductor(user)) + return TRUE + user << "You can't figure how this works!" + return FALSE + +/obj/item/device/abductor/proc/ScientistCheck(user) + var/mob/living/carbon/human/H = user + var/datum/species/abductor/S = H.dna.species + return S.scientist + +/obj/item/device/abductor/gizmo + name = "science tool" + desc = "A dual-mode tool for retrieving specimens and scanning appearances. Scanning can be done through cameras." + icon = 'icons/obj/abductor.dmi' + icon_state = "gizmo_scan" + item_state = "silencer" + origin_tech = "engineering=7;magnets=4;bluespace=4;abductor=3" + var/mode = GIZMO_SCAN + var/mob/living/marked = null + var/obj/machinery/abductor/console/console + +/obj/item/device/abductor/gizmo/attack_self(mob/user) + if(!AbductorCheck(user)) + return + if(!ScientistCheck(user)) + user << "You're not trained to use this!" + return + if(mode == GIZMO_SCAN) + mode = GIZMO_MARK + icon_state = "gizmo_mark" + else + mode = GIZMO_SCAN + icon_state = "gizmo_scan" + user << "You switch the device to [mode==GIZMO_SCAN? "SCAN": "MARK"] MODE" + +/obj/item/device/abductor/gizmo/attack(mob/living/M, mob/user) + if(!AbductorCheck(user)) + return + if(!ScientistCheck(user)) + user << "You're not trained to use this" + return + switch(mode) + if(GIZMO_SCAN) + scan(M, user) + if(GIZMO_MARK) + mark(M, user) + + +/obj/item/device/abductor/gizmo/afterattack(atom/target, mob/living/user, flag, params) + if(flag) + return + if(!AbductorCheck(user)) + return + if(!ScientistCheck(user)) + user << "You're not trained to use this" + return + switch(mode) + if(GIZMO_SCAN) + scan(target, user) + if(GIZMO_MARK) + mark(target, user) + +/obj/item/device/abductor/gizmo/proc/scan(atom/target, mob/living/user) + if(ishuman(target)) + if(console!=null) + console.AddSnapshot(target) + user << "You scan [target] and add them to the database." + +/obj/item/device/abductor/gizmo/proc/mark(atom/target, mob/living/user) + if(marked == target) + user << "This specimen is already marked!" + return + if(ishuman(target)) + if(isabductor(target)) + marked = target + user << "You mark [target] for future retrieval." + else + prepare(target,user) + else + prepare(target,user) + +/obj/item/device/abductor/gizmo/proc/prepare(atom/target, mob/living/user) + if(get_dist(target,user)>1) + user << "You need to be next to the specimen to prepare it for transport!" + return + user << "You begin preparing [target] for transport..." + if(do_after(user, 100, target = target)) + marked = target + user << "You finish preparing [target] for transport." + + +/obj/item/device/abductor/silencer + name = "abductor silencer" + desc = "A compact device used to shut down communications equipment." + icon = 'icons/obj/abductor.dmi' + icon_state = "silencer" + item_state = "gizmo" + origin_tech = "materials=4;programming=7;abductor=3" + +/obj/item/device/abductor/silencer/attack(mob/living/M, mob/user) + if(!AbductorCheck(user)) + return + radio_off(M, user) + +/obj/item/device/abductor/silencer/afterattack(atom/target, mob/living/user, flag, params) + if(flag) + return + if(!AbductorCheck(user)) + return + radio_off(target, user) + +/obj/item/device/abductor/silencer/proc/radio_off(atom/target, mob/living/user) + if( !(user in (viewers(7,target))) ) + return + + var/turf/targloc = get_turf(target) + + var/mob/living/carbon/human/M + for(M in view(2,targloc)) + if(M == user) + continue + user << "You silence [M]'s radio devices." + radio_off_mob(M) + +/obj/item/device/abductor/silencer/proc/radio_off_mob(mob/living/carbon/human/M) + var/list/all_items = M.GetAllContents() + + for(var/obj/I in all_items) + if(istype(I,/obj/item/device/radio/)) + var/obj/item/device/radio/r = I + r.listening = 0 + if(!istype(I,/obj/item/device/radio/headset)) + r.broadcasting = 0 //goddamned headset hacks + +/obj/item/device/firing_pin/abductor + name = "alien firing pin" + icon_state = "firing_pin_ayy" + desc = "This firing pin is slimy and warm; you can swear you feel it \ + constantly trying to mentally probe you." + fail_message = "\ + Firing error, please contact Command." + +/obj/item/device/firing_pin/abductor/pin_auth(mob/living/user) + . = isabductor(user) + +/obj/item/weapon/gun/energy/alien + name = "alien pistol" + desc = "A complicated gun that fires bursts of high-intensity radiation." + ammo_type = list(/obj/item/ammo_casing/energy/declone) + pin = /obj/item/device/firing_pin/abductor + icon_state = "alienpistol" + item_state = "alienpistol" + origin_tech = "combat=4;magnets=7;powerstorage=3;abductor=3" + trigger_guard = TRIGGER_GUARD_ALLOW_ALL + +/obj/item/weapon/paper/abductor + name = "Dissection Guide" + icon_state = "alienpaper_words" + info = {"Dissection for Dummies
    + +
    + 1.Acquire fresh specimen.
    + 2.Put the specimen on operating table
    + 3.Apply surgical drapes preparing for dissection
    + 4.Apply scalpel to specimen torso
    + 5.Retract skin from specimen's torso
    + 6.Apply scalpel to specimen's torso
    + 7.Search through the specimen's torso with your hands to remove any organs
    + 8.Insert replacement gland (Retrieve one from gland storage)
    + 9.Consider dressing the specimen back to not disturb the habitat
    + 10.Put the specimen in the experiment machinery
    + 11.Choose one of the machine options and follow displayed instructions
    +
    +Congratulations! You are now trained for xenobiology research!"} + +/obj/item/weapon/paper/abductor/update_icon() + return + +/obj/item/weapon/paper/abductor/AltClick() + return + +#define BATON_STUN 0 +#define BATON_SLEEP 1 +#define BATON_CUFF 2 +#define BATON_PROBE 3 +#define BATON_MODES 4 + +/obj/item/weapon/abductor_baton + name = "advanced baton" + desc = "A quad-mode baton used for incapacitation and restraining of specimens." + var/mode = BATON_STUN + icon = 'icons/obj/abductor.dmi' + icon_state = "wonderprodStun" + item_state = "wonderprod" + slot_flags = SLOT_BELT + origin_tech = "materials=4;combat=4;biotech=7;abductor=4" + force = 7 + w_class = 3 + actions_types = list(/datum/action/item_action/toggle_mode) + +/obj/item/weapon/abductor_baton/proc/toggle(mob/living/user=usr) + mode = (mode+1)%BATON_MODES + var/txt + switch(mode) + if(BATON_STUN) + txt = "stunning" + if(BATON_SLEEP) + txt = "sleep inducement" + if(BATON_CUFF) + txt = "restraining" + if(BATON_PROBE) + txt = "probing" + + usr << "You switch the baton to [txt] mode." + update_icon() + +/obj/item/weapon/abductor_baton/update_icon() + switch(mode) + if(BATON_STUN) + icon_state = "wonderprodStun" + item_state = "wonderprodStun" + if(BATON_SLEEP) + icon_state = "wonderprodSleep" + item_state = "wonderprodSleep" + if(BATON_CUFF) + icon_state = "wonderprodCuff" + item_state = "wonderprodCuff" + if(BATON_PROBE) + icon_state = "wonderprodProbe" + item_state = "wonderprodProbe" + +/obj/item/weapon/abductor_baton/attack(mob/target, mob/living/user) + if(!isabductor(user)) + return + + if(iscyborg(target)) + ..() + return + + if(!isliving(target)) + return + + var/mob/living/L = target + + user.do_attack_animation(L) + + if(ishuman(L)) + var/mob/living/carbon/human/H = L + if(H.check_shields(0, "[user]'s [name]", src, MELEE_ATTACK)) + playsound(L, 'sound/weapons/Genhit.ogg', 50, 1) + return 0 + + switch (mode) + if(BATON_STUN) + StunAttack(L,user) + if(BATON_SLEEP) + SleepAttack(L,user) + if(BATON_CUFF) + CuffAttack(L,user) + if(BATON_PROBE) + ProbeAttack(L,user) + +/obj/item/weapon/abductor_baton/attack_self(mob/living/user) + toggle(user) + +/obj/item/weapon/abductor_baton/proc/StunAttack(mob/living/L,mob/living/user) + user.lastattacked = L + L.lastattacker = user + + L.Stun(7) + L.Weaken(7) + L.apply_effect(STUTTER, 7) + + L.visible_message("[user] has stunned [L] with [src]!", \ + "[user] has stunned you with [src]!") + playsound(loc, 'sound/weapons/Egloves.ogg', 50, 1, -1) + + if(ishuman(L)) + var/mob/living/carbon/human/H = L + H.forcesay(hit_appends) + + add_logs(user, L, "stunned") + +/obj/item/weapon/abductor_baton/proc/SleepAttack(mob/living/L,mob/living/user) + if(L.stunned || L.sleeping) + L.visible_message("[user] has induced sleep in [L] with [src]!", \ + "You suddenly feel very drowsy!") + playsound(loc, 'sound/weapons/Egloves.ogg', 50, 1, -1) + L.Sleeping(60) + add_logs(user, L, "put to sleep") + else + L.drowsyness += 1 + user << "Sleep inducement works fully only on stunned specimens! " + L.visible_message("[user] tried to induce sleep in [L] with [src]!", \ + "You suddenly feel drowsy!") + +/obj/item/weapon/abductor_baton/proc/CuffAttack(mob/living/L,mob/living/user) + if(!iscarbon(L)) + return + var/mob/living/carbon/C = L + if(!C.handcuffed) + if(C.get_num_arms() >= 2 || C.get_arm_ignore()) + playsound(loc, 'sound/weapons/cablecuff.ogg', 30, 1, -2) + C.visible_message("[user] begins restraining [C] with [src]!", \ + "[user] begins shaping an energy field around your hands!") + if(do_mob(user, C, 30) && (C.get_num_arms() >= 2 || C.get_arm_ignore())) + if(!C.handcuffed) + C.handcuffed = new /obj/item/weapon/restraints/handcuffs/energy/used(C) + C.update_handcuffed() + user << "You handcuff [C]." + add_logs(user, C, "handcuffed") + else + user << "You fail to handcuff [C]." + else + user << "[C] doesn't have two hands..." + +/obj/item/weapon/abductor_baton/proc/ProbeAttack(mob/living/L,mob/living/user) + L.visible_message("[user] probes [L] with [src]!", \ + "[user] probes you!") + + var/species = "Unknown species" + var/helptext = "Species unsuitable for experiments." + + if(ishuman(L)) + var/mob/living/carbon/human/H = L + species = "[H.dna.species.name]" + if(L.mind && L.mind.changeling) + species = "Changeling lifeform" + var/obj/item/organ/gland/temp = locate() in H.internal_organs + if(temp) + helptext = "Experimental gland detected!" + else + helptext = "Subject suitable for experiments." + + user << "Probing result:[species]" + user << "[helptext]" + +/obj/item/weapon/restraints/handcuffs/energy + name = "hard-light energy field" + desc = "A hard-light field restraining the hands." + icon_state = "cuff_white" // Needs sprite + breakouttime = 450 + trashtype = /obj/item/weapon/restraints/handcuffs/energy/used + origin_tech = "materials=4;magnets=5;abductor=2" + +/obj/item/weapon/restraints/handcuffs/energy/used + desc = "energy discharge" + flags = DROPDEL + +/obj/item/weapon/restraints/handcuffs/energy/used/dropped(mob/user) + user.visible_message("[user]'s [src] break in a discharge of energy!", \ + "[user]'s [src] break in a discharge of energy!") + var/datum/effect_system/spark_spread/S = new + S.set_up(4,0,user.loc) + S.start() + . = ..() + +/obj/item/weapon/abductor_baton/examine(mob/user) + ..() + switch(mode) + if(BATON_STUN) + user <<"The baton is in stun mode." + if(BATON_SLEEP) + user <<"The baton is in sleep inducement mode." + if(BATON_CUFF) + user <<"The baton is in restraining mode." + if(BATON_PROBE) + user << "The baton is in probing mode." + + +/obj/item/weapon/scalpel/alien + name = "alien scalpel" + desc = "It's a gleaming sharp knife made out of silvery-green metal." + icon = 'icons/obj/abductor.dmi' + origin_tech = "materials=2;biotech=2;abductor=2" + +/obj/item/weapon/hemostat/alien + name = "alien hemostat" + desc = "You've never seen this before." + icon = 'icons/obj/abductor.dmi' + origin_tech = "materials=2;biotech=2;abductor=2" + +/obj/item/weapon/retractor/alien + name = "alien retractor" + desc = "You're not sure if you want the veil pulled back." + icon = 'icons/obj/abductor.dmi' + origin_tech = "materials=2;biotech=2;abductor=2" + +/obj/item/weapon/circular_saw/alien + name = "alien saw" + desc = "Do the aliens also lose this, and need to find an alien hatchet?" + icon = 'icons/obj/abductor.dmi' + origin_tech = "materials=2;biotech=2;abductor=2" + +/obj/item/weapon/surgicaldrill/alien + name = "alien drill" + desc = "Maybe alien surgeons have finally found a use for the drill." + icon = 'icons/obj/abductor.dmi' + origin_tech = "materials=2;biotech=2;abductor=2" + +/obj/item/weapon/cautery/alien + name = "alien cautery" + desc = "Why would bloodless aliens have a tool to stop bleeding? \ + Unless..." + icon = 'icons/obj/abductor.dmi' + origin_tech = "materials=2;biotech=2;abductor=2" + +/obj/item/clothing/head/helmet/abductor + name = "agent headgear" + desc = "Abduct with style - spiky style. Prevents digital tracking." + icon_state = "alienhelmet" + item_state = "alienhelmet" + blockTracking = 1 + origin_tech = "materials=7;magnets=4;abductor=3" + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR + +// Operating Table / Beds / Lockers + +/obj/structure/table/optable/abductor + icon = 'icons/obj/abductor.dmi' + icon_state = "bed" + can_buckle = 1 + buckle_lying = 1 + flags = NODECONSTRUCT + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF + + +/obj/structure/bed/abductor + name = "resting contraption" + desc = "This looks similar to contraptions from earth. Could aliens be stealing our technology?" + icon = 'icons/obj/abductor.dmi' + buildstacktype = /obj/item/stack/sheet/mineral/abductor + icon_state = "bed" + +/obj/structure/table_frame/abductor + name = "alien table frame" + desc = "A sturdy table frame made from alien alloy." + icon_state = "alien_frame" + framestack = /obj/item/stack/sheet/mineral/abductor + framestackamount = 1 + density = 1 + +/obj/structure/table_frame/abductor/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/wrench)) + user << "You start disassembling [src]..." + playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + if(do_after(user, 30/I.toolspeed, target = src)) + playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + for(var/i = 1, i <= framestackamount, i++) + new framestack(get_turf(src)) + qdel(src) + return + if(istype(I, /obj/item/stack/sheet/mineral/abductor)) + var/obj/item/stack/sheet/P = I + if(P.get_amount() < 1) + user << "You need one alien alloy sheet to do this!" + return + user << "You start adding [P] to [src]..." + if(do_after(user, 50, target = src)) + P.use(1) + new /obj/structure/table/abductor(src.loc) + qdel(src) + return + +/obj/structure/table/abductor + name = "alien table" + desc = "Advanced flat surface technology at work!" + icon = 'icons/obj/smooth_structures/alien_table.dmi' + icon_state = "alien_table" + buildstack = /obj/item/stack/sheet/mineral/abductor + framestack = /obj/item/stack/sheet/mineral/abductor + buildstackamount = 1 + framestackamount = 1 + canSmoothWith = null + frame = /obj/structure/table_frame/abductor + + +/obj/structure/closet/abductor + name = "alien locker" + desc = "Contains secrets of the universe." + icon_state = "abductor" + icon_door = "abductor" + can_weld_shut = FALSE + material_drop = /obj/item/stack/sheet/mineral/abductor + +/obj/structure/door_assembly/door_assembly_abductor + name = "alien airlock assembly" + icon = 'icons/obj/doors/airlocks/abductor/abductor_airlock.dmi' + overlays_file = 'icons/obj/doors/airlocks/abductor/overlays.dmi' + typetext = "abductor" + icontext = "abductor" + airlock_type = /obj/machinery/door/airlock/abductor + anchored = 1 + state = 1 + +/obj/structure/door_assembly/door_assembly_abductor/attackby(obj/item/W, mob/user, params) + if(istype(W, /obj/item/weapon/weldingtool) && !anchored ) + var/obj/item/weapon/weldingtool/WT = W + if(WT.remove_fuel(0,user)) + user.visible_message("[user] disassembles the airlock assembly.", \ + "You start to disassemble the airlock assembly...") + playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1) + if(do_after(user, 40/W.toolspeed, target = src)) + if( !WT.isOn() ) + return + user << "You disassemble the airlock assembly." + new /obj/item/stack/sheet/mineral/abductor(get_turf(src), 4) + qdel(src) + else + return + else if(istype(W, /obj/item/weapon/airlock_painter)) + return // no repainting + else if(istype(W, /obj/item/stack/sheet)) + return // no material modding + else + ..() diff --git a/code/game/gamemodes/miniantags/abduction/abduction_surgery.dm b/code/game/gamemodes/miniantags/abduction/abduction_surgery.dm new file mode 100644 index 0000000..def0cd7 --- /dev/null +++ b/code/game/gamemodes/miniantags/abduction/abduction_surgery.dm @@ -0,0 +1,55 @@ +/datum/surgery/organ_extraction + name = "experimental dissection" + steps = list(/datum/surgery_step/incise, /datum/surgery_step/clamp_bleeders, /datum/surgery_step/retract_skin,/datum/surgery_step/incise, /datum/surgery_step/extract_organ ,/datum/surgery_step/gland_insert) + possible_locs = list("chest") + ignore_clothes = 1 + +/datum/surgery/organ_extraction/can_start(mob/user, mob/living/carbon/target) + if(!ishuman(user)) + return 0 + var/mob/living/carbon/human/H = user + if(H.dna.species.id == "abductor") + return 1 + for(var/obj/item/weapon/implant/abductor/A in H.implants) + return 1 + return 0 + + +/datum/surgery_step/extract_organ + name = "remove heart" + accept_hand = 1 + time = 32 + var/obj/item/organ/IC = null + var/list/organ_types = list(/obj/item/organ/heart) + +/datum/surgery_step/extract_organ/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) + for(var/atom/A in target.internal_organs) + if(A.type in organ_types) + IC = A + break + user.visible_message("[user] starts to remove [target]'s organs.", "You start to remove [target]'s organs...") + +/datum/surgery_step/extract_organ/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) + if(IC) + user.visible_message("[user] pulls [IC] out of [target]'s [target_zone]!", "You pull [IC] out of [target]'s [target_zone].") + user.put_in_hands(IC) + IC.Remove(target, special = 1) + return 1 + else + user << "You don't find anything in [target]'s [target_zone]!" + return 0 + +/datum/surgery_step/gland_insert + name = "insert gland" + implements = list(/obj/item/organ/gland = 100) + time = 32 + +/datum/surgery_step/gland_insert/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) + user.visible_message("[user] starts to insert [tool] into [target].", "You start to insert [tool] into [target]...") + +/datum/surgery_step/gland_insert/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) + user.visible_message("[user] inserts [tool] into [target].", "You insert [tool] into [target].") + user.drop_item() + var/obj/item/organ/gland/gland = tool + gland.Insert(target, 2) + return 1 \ No newline at end of file diff --git a/code/game/gamemodes/miniantags/abduction/gland.dm b/code/game/gamemodes/miniantags/abduction/gland.dm new file mode 100644 index 0000000..5f95588 --- /dev/null +++ b/code/game/gamemodes/miniantags/abduction/gland.dm @@ -0,0 +1,261 @@ +/obj/item/organ/gland + name = "fleshy mass" + desc = "A nausea-inducing hunk of twisting flesh and metal." + icon = 'icons/obj/abductor.dmi' + zone = "chest" + slot = "gland" + icon_state = "gland" + status = ORGAN_ROBOTIC + origin_tech = "materials=4;biotech=7;abductor=3" + var/cooldown_low = 300 + var/cooldown_high = 300 + var/next_activation = 0 + var/uses // -1 For inifinite + var/human_only = 0 + var/active = 0 + +/obj/item/organ/gland/proc/ownerCheck() + if(ishuman(owner)) + return 1 + if(!human_only && iscarbon(owner)) + return 1 + return 0 + +/obj/item/organ/gland/proc/Start() + active = 1 + next_activation = world.time + rand(cooldown_low,cooldown_high) + + +/obj/item/organ/gland/Remove(var/mob/living/carbon/M, special = 0) + active = 0 + if(initial(uses) == 1) + uses = initial(uses) + ..() + +/obj/item/organ/gland/Insert(var/mob/living/carbon/M, special = 0) + ..() + if(special != 2 && uses) // Special 2 means abductor surgery + Start() + +/obj/item/organ/gland/on_life() + if(!active) + return + if(!ownerCheck()) + active = 0 + return + if(next_activation <= world.time) + activate() + uses-- + next_activation = world.time + rand(cooldown_low,cooldown_high) + if(!uses) + active = 0 + +/obj/item/organ/gland/proc/activate() + return + +/obj/item/organ/gland/heals + cooldown_low = 200 + cooldown_high = 400 + uses = -1 + icon_state = "health" + +/obj/item/organ/gland/heals/activate() + owner << "You feel curiously revitalized." + owner.adjustBruteLoss(-20) + owner.adjustOxyLoss(-20) + owner.adjustFireLoss(-20) + +/obj/item/organ/gland/slime + cooldown_low = 600 + cooldown_high = 1200 + uses = -1 + icon_state = "slime" + +/obj/item/organ/gland/slime/activate() + owner << "You feel nauseous!" + owner.vomit(20) + + var/mob/living/simple_animal/slime/Slime + Slime = new(get_turf(owner), "grey") + Slime.Friends = list(owner) + Slime.Leader = owner + +/obj/item/organ/gland/mindshock + origin_tech = "materials=4;biotech=4;magnets=6;abductor=3" + cooldown_low = 300 + cooldown_high = 300 + uses = -1 + icon_state = "mindshock" + +/obj/item/organ/gland/mindshock/activate() + owner << "You get a headache." + + var/turf/T = get_turf(owner) + for(var/mob/living/carbon/H in orange(4,T)) + if(H == owner) + continue + H << "You hear a buzz in your head." + H.confused += 20 + +/obj/item/organ/gland/pop + cooldown_low = 900 + cooldown_high = 1800 + uses = -1 + human_only = 1 + icon_state = "species" + +/obj/item/organ/gland/pop/activate() + owner << "You feel unlike yourself." + var/species = pick(list(/datum/species/lizard,/datum/species/jelly/slime,/datum/species/pod,/datum/species/fly,/datum/species/jelly)) + owner.set_species(species) + +/obj/item/organ/gland/ventcrawling + origin_tech = "materials=4;biotech=5;bluespace=4;abductor=3" + cooldown_low = 1800 + cooldown_high = 2400 + uses = 1 + icon_state = "vent" + +/obj/item/organ/gland/ventcrawling/activate() + owner << "You feel very stretchy." + owner.ventcrawler = 2 + return + + +/obj/item/organ/gland/viral + cooldown_low = 1800 + cooldown_high = 2400 + uses = 1 + icon_state = "viral" + +/obj/item/organ/gland/viral/activate() + owner << "You feel sick." + var/virus_type = pick(/datum/disease/beesease, /datum/disease/brainrot, /datum/disease/magnitis) + var/datum/disease/D = new virus_type() + D.carrier = 1 + owner.viruses += D + D.affected_mob = owner + D.holder = owner + owner.med_hud_set_status() + + +/obj/item/organ/gland/emp //TODO : Replace with something more interesting + origin_tech = "materials=4;biotech=4;magnets=6;abductor=3" + cooldown_low = 900 + cooldown_high = 1600 + uses = 10 + icon_state = "emp" + +/obj/item/organ/gland/emp/activate() + owner << "You feel a spike of pain in your head." + empulse(get_turf(owner), 2, 5, 1) + +/obj/item/organ/gland/spiderman + cooldown_low = 450 + cooldown_high = 900 + uses = 10 + icon_state = "spider" + +/obj/item/organ/gland/spiderman/activate() + owner << "You feel something crawling in your skin." + owner.faction |= "spiders" + new /obj/structure/spider/spiderling(owner.loc) + +/obj/item/organ/gland/egg + cooldown_low = 300 + cooldown_high = 400 + uses = -1 + icon_state = "egg" + +/obj/item/organ/gland/egg/activate() + owner << "You lay an egg!" + var/obj/item/weapon/reagent_containers/food/snacks/egg/egg = new(owner.loc) + egg.reagents.add_reagent("sacid",20) + egg.desc += " It smells bad." + +/obj/item/organ/gland/bloody + cooldown_low = 200 + cooldown_high = 400 + uses = -1 + +/obj/item/organ/gland/bloody/activate() + owner.adjustBruteLoss(15) + + owner.visible_message("[owner]'s skin erupts with blood!",\ + "Blood pours from your skin!") + + for(var/turf/T in oview(3,owner)) //Make this respect walls and such + owner.add_splatter_floor(T) + for(var/mob/living/carbon/human/H in oview(3,owner)) //Blood decals for simple animals would be neat. aka Carp with blood on it. + H.add_mob_blood(owner) + +/obj/item/organ/gland/bodysnatch + cooldown_low = 600 + cooldown_high = 600 + human_only = 1 + uses = 1 + +/obj/item/organ/gland/bodysnatch/activate() + owner << "You feel something moving around inside you..." + //spawn cocoon with clone greytide snpc inside + if(ishuman(owner)) + var/obj/structure/spider/cocoon/abductor/C = new (get_turf(owner)) + C.Copy(owner) + C.Start() + owner.gib() + return + +/obj/structure/spider/cocoon/abductor + name = "slimy cocoon" + desc = "Something is moving inside." + icon = 'icons/effects/effects.dmi' + icon_state = "cocoon_large3" + color = rgb(10,120,10) + density = 1 + var/hatch_time = 0 + +/obj/structure/spider/cocoon/abductor/proc/Copy(mob/living/carbon/human/H) + var/mob/living/carbon/human/interactive/greytide/clone = new(src) + clone.hardset_dna(H.dna.uni_identity,H.dna.struc_enzymes,H.real_name, H.dna.blood_type, H.dna.species.type, H.dna.features) + + //There's no define for this / get all items ? + var/list/slots = list(slot_back,slot_w_uniform,slot_wear_suit,\ + slot_wear_mask,slot_head,slot_shoes,slot_gloves,slot_ears,\ + slot_glasses,slot_belt,slot_s_store,slot_l_store,slot_r_store,slot_wear_id) + + for(var/slot in slots) + var/obj/item/I = H.get_item_by_slot(slot) + if(I) + clone.equip_to_slot_if_possible(I,slot) + +/obj/structure/spider/cocoon/abductor/proc/Start() + hatch_time = world.time + 600 + START_PROCESSING(SSobj, src) + +/obj/structure/spider/cocoon/abductor/process() + if(world.time > hatch_time) + STOP_PROCESSING(SSobj, src) + for(var/mob/M in contents) + src.visible_message("[src] hatches!") + M.loc = src.loc + qdel(src) + +/obj/item/organ/gland/plasma + cooldown_low = 1200 + cooldown_high = 1800 + origin_tech = "materials=4;biotech=4;plasmatech=6;abductor=3" + uses = -1 + +/obj/item/organ/gland/plasma/activate() + owner << "You feel bloated." + sleep(150) + if(!owner) return + owner << "A massive stomachache overcomes you." + sleep(50) + if(!owner) return + owner.visible_message("[owner] vomits a cloud of plasma!") + var/turf/open/T = get_turf(owner) + if(istype(T)) + T.atmos_spawn_air("plasma=50;TEMP=[T20C]") + owner.vomit() + return diff --git a/code/game/gamemodes/miniantags/abduction/machinery/camera.dm b/code/game/gamemodes/miniantags/abduction/machinery/camera.dm new file mode 100644 index 0000000..f893ad1 --- /dev/null +++ b/code/game/gamemodes/miniantags/abduction/machinery/camera.dm @@ -0,0 +1,155 @@ +/obj/machinery/computer/camera_advanced/abductor + name = "Human Observation Console" + var/team = 0 + networks = list("SS13","Abductor") + off_action = new/datum/action/innate/camera_off/abductor //specific datum + var/datum/action/innate/teleport_in/tele_in_action = new + var/datum/action/innate/teleport_out/tele_out_action = new + var/datum/action/innate/teleport_self/tele_self_action = new + var/datum/action/innate/vest_mode_swap/vest_mode_action = new + var/datum/action/innate/vest_disguise_swap/vest_disguise_action = new + var/datum/action/innate/set_droppoint/set_droppoint_action = new + var/obj/machinery/abductor/console/console + + icon = 'icons/obj/abductor.dmi' + icon_state = "camera" + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF + +/obj/machinery/computer/camera_advanced/abductor/CreateEye() + ..() + eyeobj.visible_icon = 1 + eyeobj.icon = 'icons/obj/abductor.dmi' + eyeobj.icon_state = "camera_target" + +/obj/machinery/computer/camera_advanced/abductor/GrantActions(mob/living/carbon/user) + off_action.target = user + off_action.Grant(user) + + jump_action.target = user + jump_action.Grant(user) + //TODO : add null checks + tele_in_action.target = console.pad + tele_in_action.Grant(user) + + tele_out_action.target = console + tele_out_action.Grant(user) + + tele_self_action.target = console.pad + tele_self_action.Grant(user) + + vest_mode_action.target = console + vest_mode_action.Grant(user) + + vest_disguise_action.target = console + vest_disguise_action.Grant(user) + + set_droppoint_action.target = console + set_droppoint_action.Grant(user) + +/obj/machinery/computer/camera_advanced/abductor/proc/IsScientist(mob/living/carbon/human/H) + var/datum/species/abductor/S = H.dna.species + return S.scientist + +/obj/machinery/computer/camera_advanced/abductor/attack_hand(mob/user) + if(!isabductor(user)) + return + return ..() + +/datum/action/innate/camera_off/abductor/Activate() + if(!target || !iscarbon(target)) + return + var/mob/living/carbon/C = target + var/mob/camera/aiEye/remote/remote_eye = C.remote_control + var/obj/machinery/computer/camera_advanced/abductor/origin = remote_eye.origin + origin.current_user = null + origin.jump_action.Remove(C) + origin.tele_in_action.Remove(C) + origin.tele_out_action.Remove(C) + origin.tele_self_action.Remove(C) + origin.vest_mode_action.Remove(C) + origin.vest_disguise_action.Remove(C) + origin.set_droppoint_action.Remove(C) + remote_eye.eye_user = null + C.reset_perspective(null) + if(C.client) + C.client.images -= remote_eye.user_image + for(var/datum/camerachunk/chunk in remote_eye.visibleCameraChunks) + C.client.images -= chunk.obscured + C.remote_control = null + C.unset_machine() + src.Remove(C) + + +/datum/action/innate/teleport_in + name = "Send To" + button_icon_state = "beam_down" + +/datum/action/innate/teleport_in/Activate() + if(!target || !iscarbon(owner)) + return + var/mob/living/carbon/human/C = owner + var/mob/camera/aiEye/remote/remote_eye = C.remote_control + var/obj/machinery/abductor/pad/P = target + + if(cameranet.checkTurfVis(remote_eye.loc)) + P.PadToLoc(remote_eye.loc) + +/datum/action/innate/teleport_out + name = "Retrieve" + button_icon_state = "beam_up" + +/datum/action/innate/teleport_out/Activate() + if(!target || !iscarbon(owner)) + return + var/obj/machinery/abductor/console/console = target + + console.TeleporterRetrieve() + +/datum/action/innate/teleport_self + name = "Send Self" + button_icon_state = "beam_down" + +/datum/action/innate/teleport_self/Activate() + if(!target || !iscarbon(owner)) + return + var/mob/living/carbon/human/C = owner + var/mob/camera/aiEye/remote/remote_eye = C.remote_control + var/obj/machinery/abductor/pad/P = target + + if(cameranet.checkTurfVis(remote_eye.loc)) + P.MobToLoc(remote_eye.loc,C) + +/datum/action/innate/vest_mode_swap + name = "Switch Vest Mode" + button_icon_state = "vest_mode" + +/datum/action/innate/vest_mode_swap/Activate() + if(!target || !iscarbon(owner)) + return + var/obj/machinery/abductor/console/console = target + console.FlipVest() + + +/datum/action/innate/vest_disguise_swap + name = "Switch Vest Disguise" + button_icon_state = "vest_disguise" + +/datum/action/innate/vest_disguise_swap/Activate() + if(!target || !iscarbon(owner)) + return + var/obj/machinery/abductor/console/console = target + console.SelectDisguise(remote=1) + +/datum/action/innate/set_droppoint + name = "Set Experiment Release Point" + button_icon_state = "set_drop" + +/datum/action/innate/set_droppoint/Activate() + if(!target || !iscarbon(owner)) + return + + var/mob/living/carbon/human/C = owner + var/mob/camera/aiEye/remote/remote_eye = C.remote_control + + var/obj/machinery/abductor/console/console = target + console.SetDroppoint(remote_eye.loc,owner) diff --git a/code/game/gamemodes/miniantags/abduction/machinery/console.dm b/code/game/gamemodes/miniantags/abduction/machinery/console.dm new file mode 100644 index 0000000..5539f6a --- /dev/null +++ b/code/game/gamemodes/miniantags/abduction/machinery/console.dm @@ -0,0 +1,220 @@ +//Common + +/obj/machinery/abductor + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF + var/team = 0 + +/obj/machinery/abductor/proc/IsAgent(mob/living/carbon/human/H) + if(H.dna.species.id == "abductor") + var/datum/species/abductor/S = H.dna.species + return S.agent + return 0 + +/obj/machinery/abductor/proc/IsScientist(mob/living/carbon/human/H) + if(H.dna.species.id == "abductor") + var/datum/species/abductor/S = H.dna.species + return S.scientist + return 0 + +//Console + +/obj/machinery/abductor/console + name = "Abductor console" + desc = "Ship command center." + icon = 'icons/obj/abductor.dmi' + icon_state = "console" + density = 1 + anchored = 1 + var/obj/item/device/abductor/gizmo/gizmo + var/obj/item/clothing/suit/armor/abductor/vest/vest + var/obj/machinery/abductor/experiment/experiment + var/obj/machinery/abductor/pad/pad + var/obj/machinery/computer/camera_advanced/abductor/camera + var/list/datum/icon_snapshot/disguises = list() + +/obj/machinery/abductor/console/attack_hand(mob/user) + if(..()) + return + if(!isabductor(user)) + user << "You start mashing alien buttons at random!" + if(do_after(user,100, target = src)) + TeleporterSend() + return + user.set_machine(src) + var/dat = "" + dat += "

    Abductsoft 3000

    " + + if(experiment != null) + var/points = experiment.points + var/credits = experiment.credits + dat += "Collected Samples : [points]
    " + dat += "Gear Credits: [credits]
    " + dat += "Transfer data in exchange for supplies:
    " + dat += "Advanced Baton
    " + dat += "Agent Helmet
    " + dat += "Agent Vest
    " + dat += "Radio Silencer
    " + dat += "Science Tool
    " + else + dat += "NO EXPERIMENT MACHINE DETECTED
    " + + if(pad!=null) + dat += "Emergency Teleporter System." + dat += "Consider using primary observation console first." + dat += "Activate Teleporter
    " + if(gizmo!=null && gizmo.marked!=null) + dat += "Retrieve Mark
    " + else + dat += "Retrieve Mark
    " + else + dat += "NO TELEPAD DETECTED
    " + + if(vest!=null) + dat += "

    Agent Vest Mode


    " + var/mode = vest.mode + if(mode == VEST_STEALTH) + dat += "Combat" + dat += "Stealth" + else + dat += "Combat" + dat += "Stealth" + + dat+="
    " + dat += "Select Agent Vest Disguise
    " + dat += "[vest.flags & NODROP ? "Unlock" : "Lock"] Vest
    " + else + dat += "NO AGENT VEST DETECTED" + var/datum/browser/popup = new(user, "computer", "Abductor Console", 400, 500) + popup.set_content(dat) + popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) + popup.open() + +/obj/machinery/abductor/console/Topic(href, href_list) + if(..()) + return + + usr.set_machine(src) + if(href_list["teleporter_send"]) + TeleporterSend() + else if(href_list["teleporter_retrieve"]) + TeleporterRetrieve() + else if(href_list["flip_vest"]) + FlipVest() + else if(href_list["toggle_vest"]) + toggle_vest() + else if(href_list["select_disguise"]) + SelectDisguise() + else if(href_list["dispense"]) + switch(href_list["dispense"]) + if("baton") + Dispense(/obj/item/weapon/abductor_baton,cost=2) + if("helmet") + Dispense(/obj/item/clothing/head/helmet/abductor) + if("silencer") + Dispense(/obj/item/device/abductor/silencer) + if("tool") + Dispense(/obj/item/device/abductor/gizmo) + if("vest") + Dispense(/obj/item/clothing/suit/armor/abductor/vest) + src.updateUsrDialog() + + +/obj/machinery/abductor/console/proc/TeleporterRetrieve() + if(gizmo!=null && pad!=null && gizmo.marked) + pad.Retrieve(gizmo.marked) + +/obj/machinery/abductor/console/proc/TeleporterSend() + if(pad!=null) + pad.Send() + +/obj/machinery/abductor/console/proc/FlipVest() + if(vest!=null) + vest.flip_mode() + +/obj/machinery/abductor/console/proc/SelectDisguise(remote=0) + var/list/entries = list() + var/tempname + var/datum/icon_snapshot/temp + for(var/i = 1; i <= disguises.len; i++) + temp = disguises[i] + tempname = temp.name + entries["[tempname]"] = disguises[i] + var/entry_name = input( "Choose Disguise", "Disguise") in entries + var/datum/icon_snapshot/chosen = entries[entry_name] + if(chosen && (remote || in_range(usr,src))) + vest.SetDisguise(chosen) + +/obj/machinery/abductor/console/proc/SetDroppoint(turf/open/location,user) + if(!istype(location)) + user << "That place is not safe for the specimen." + return + + if(pad) + pad.teleport_target = location + user << "Location marked as test subject release point." + + +/obj/machinery/abductor/console/proc/Initialize() + + for(var/obj/machinery/abductor/pad/p in machines) + if(p.team == team) + pad = p + break + + for(var/obj/machinery/abductor/experiment/e in machines) + if(e.team == team) + experiment = e + e.console = src + + for(var/obj/machinery/computer/camera_advanced/abductor/c in machines) + if(c.team == team) + camera = c + c.console = src + +/obj/machinery/abductor/console/proc/AddSnapshot(mob/living/carbon/human/target) + var/datum/icon_snapshot/entry = new + entry.name = target.name + entry.icon = target.icon + entry.icon_state = target.icon_state + entry.overlays = target.get_overlays_copy(list(HANDS_LAYER)) + for(var/i=1,i<=disguises.len,i++) + var/datum/icon_snapshot/temp = disguises[i] + if(temp.name == entry.name) + disguises[i] = entry + return + disguises.Add(entry) + +/obj/machinery/abductor/console/attackby(obj/O, mob/user, params) + if(istype(O, /obj/item/device/abductor/gizmo)) + var/obj/item/device/abductor/gizmo/G = O + user << "You link the tool to the console." + gizmo = G + G.console = src + else if(istype(O, /obj/item/clothing/suit/armor/abductor/vest)) + var/obj/item/clothing/suit/armor/abductor/vest/V = O + user << "You link the vest to the console." + if(istype(vest)) + if(vest.flags & NODROP) + toggle_vest() + vest = V + else + return ..() + +/obj/machinery/abductor/console/proc/Dispense(item,cost=1) + if(experiment && experiment.credits >= cost) + experiment.credits -=cost + say("Incoming supply!") + if(pad) + flick("alien-pad", pad) + new item(pad.loc) + else + new item(src.loc) + else + say("Insufficent data!") + +/obj/machinery/abductor/console/proc/toggle_vest() + vest.flags ^= NODROP + var/mob/M = vest.loc + if(istype(M)) + M << "[src] is now \ + [vest.flags & NODROP ? "locked" : "unlocked"]." diff --git a/code/game/gamemodes/miniantags/abduction/machinery/dispenser.dm b/code/game/gamemodes/miniantags/abduction/machinery/dispenser.dm new file mode 100644 index 0000000..09f6361 --- /dev/null +++ b/code/game/gamemodes/miniantags/abduction/machinery/dispenser.dm @@ -0,0 +1,85 @@ +/obj/machinery/abductor/gland_dispenser + name = "Replacement Organ Storage" + desc = "A tank filled with replacement organs" + icon = 'icons/obj/abductor.dmi' + icon_state = "dispenser" + density = 1 + anchored = 1 + var/list/gland_types + var/list/gland_colors + var/list/amounts + +/obj/machinery/abductor/gland_dispenser/proc/random_color() + //TODO : replace with presets or spectrum + return rgb(rand(0,255),rand(0,255),rand(0,255)) + +/obj/machinery/abductor/gland_dispenser/New() + gland_types = subtypesof(/obj/item/organ/gland) + gland_types = shuffle(gland_types) + gland_colors = new/list(gland_types.len) + amounts = new/list(gland_types.len) + for(var/i=1,i<=gland_types.len,i++) + gland_colors[i] = random_color() + amounts[i] = rand(1,5) + +/obj/machinery/abductor/gland_dispenser/attack_hand(mob/user) + if(..()) + return + if(!isabductor(user)) + return + user.set_machine(src) + var/box_css = {" + "} + var/dat = "" + var/item_count = 0 + for(var/i=1,i<=gland_colors.len,i++) + item_count++ + var/g_color = gland_colors[i] + var/amount = amounts[i] + dat += "[amount]" + if(item_count == 3) // Three boxes per line + dat +="

    " + item_count = 0 + var/datum/browser/popup = new(user, "glands", "Gland Dispenser", 200, 200) + popup.add_head_content(box_css) + popup.set_content(dat) + popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) + popup.open() + return + +/obj/machinery/abductor/gland_dispenser/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/organ/gland)) + if(!user.drop_item()) + return + W.loc = src + for(var/i=1,i<=gland_colors.len,i++) + if(gland_types[i] == W.type) + amounts[i]++ + else + return ..() + +/obj/machinery/abductor/gland_dispenser/Topic(href, href_list) + if(..()) + return + usr.set_machine(src) + + if(href_list["dispense"]) + Dispense(text2num(href_list["dispense"])) + src.updateUsrDialog() + +/obj/machinery/abductor/gland_dispenser/proc/Dispense(count) + if(amounts[count]>0) + amounts[count]-- + var/T = gland_types[count] + new T(get_turf(src)) diff --git a/code/game/gamemodes/miniantags/abduction/machinery/experiment.dm b/code/game/gamemodes/miniantags/abduction/machinery/experiment.dm new file mode 100644 index 0000000..4cbb81c --- /dev/null +++ b/code/game/gamemodes/miniantags/abduction/machinery/experiment.dm @@ -0,0 +1,203 @@ +/obj/machinery/abductor/experiment + name = "experimentation machine" + desc = "A large man-sized tube sporting a complex array of surgical apparatus." + icon = 'icons/obj/abductor.dmi' + icon_state = "experiment-open" + density = 0 + anchored = 1 + state_open = 1 + var/points = 0 + var/credits = 0 + var/list/history = list() + var/list/abductee_minds = list() + var/flash = " - || - " + var/obj/machinery/abductor/console/console + +/obj/machinery/abductor/experiment/MouseDrop_T(mob/target, mob/user) + if(user.stat || user.lying || !Adjacent(user) || !target.Adjacent(user) || !ishuman(target)) + return + if(isabductor(target)) + return + close_machine(target) + +/obj/machinery/abductor/experiment/attack_hand(mob/user) + if(..()) + return + + experimentUI(user) + +/obj/machinery/abductor/experiment/open_machine() + if(!state_open && !panel_open) + ..() + +/obj/machinery/abductor/experiment/close_machine(mob/target) + for(var/A in loc) + if(isabductor(A)) + return + if(state_open && !panel_open) + ..(target) + +/obj/machinery/abductor/experiment/proc/dissection_icon(mob/living/carbon/human/H) + var/icon/photo = null + var/g = (H.gender == FEMALE) ? "f" : "m" + if(!config.mutant_races || H.dna.species.use_skintones) + photo = icon("icon" = 'icons/mob/human.dmi', "icon_state" = "[H.skin_tone]_[g]_s") + else + photo = icon("icon" = 'icons/mob/human.dmi', "icon_state" = "[H.dna.species.id]_[g]_s") + photo.Blend("#[H.dna.features["mcolor"]]", ICON_MULTIPLY) + + var/icon/eyes_s + if(EYECOLOR in H.dna.species.specflags) + eyes_s = icon("icon" = 'icons/mob/human_face.dmi', "icon_state" = "[H.dna.species.eyes]_s") + eyes_s.Blend("#[H.eye_color]", ICON_MULTIPLY) + + var/datum/sprite_accessory/S + S = hair_styles_list[H.hair_style] + if(S && (HAIR in H.dna.species.specflags)) + var/icon/hair_s = icon("icon" = S.icon, "icon_state" = "[S.icon_state]_s") + hair_s.Blend("#[H.hair_color]", ICON_MULTIPLY) + eyes_s.Blend(hair_s, ICON_OVERLAY) + + S = facial_hair_styles_list[H.facial_hair_style] + if(S && (FACEHAIR in H.dna.species.specflags)) + var/icon/facial_s = icon("icon" = S.icon, "icon_state" = "[S.icon_state]_s") + facial_s.Blend("#[H.facial_hair_color]", ICON_MULTIPLY) + eyes_s.Blend(facial_s, ICON_OVERLAY) + + if(eyes_s) + photo.Blend(eyes_s, ICON_OVERLAY) + + var/icon/splat = icon("icon" = 'icons/mob/dam_mob.dmi',"icon_state" = "chest30") + photo.Blend(splat,ICON_OVERLAY) + + return photo + +/obj/machinery/abductor/experiment/proc/experimentUI(mob/user) + var/dat + dat += "

    Experiment

    " + if(occupant) + var/obj/item/weapon/photo/P = new + P.photocreate(null, icon(dissection_icon(occupant), dir = SOUTH)) + user << browse_rsc(P.img, "dissection_img") + dat += "
    " + dat += "" //Avert your eyes + dat += "" + dat += "Probe
    " + dat += "Dissect
    " + dat += "Analyze
    " + dat += "
    " + else + dat += "Experiment " + + if(!occupant) + dat += "

    Machine Unoccupied

    " + else + dat += "

    Subject Status :

    " + dat += "[occupant.name] => " + switch(occupant.stat) + if(0) + dat += "Conscious" + if(1) + dat += "Unconscious" + else + dat += "Deceased" + dat += "
    " + dat += "[flash]" + dat += "
    " + dat += "Scan" + dat += "Close" : "open=1'>Open"]" + var/datum/browser/popup = new(user, "experiment", "Probing Console", 300, 300) + popup.set_title_image(user.browse_rsc_icon(icon, icon_state)) + popup.set_content(dat) + popup.open() + +/obj/machinery/abductor/experiment/Topic(href, href_list) + if(..() || usr == occupant) + return + usr.set_machine(src) + if(href_list["refresh"]) + updateUsrDialog() + return + if(href_list["open"]) + open_machine() + return + if(href_list["close"]) + close_machine() + return + if(occupant && occupant.stat != DEAD) + if(href_list["experiment"]) + flash = Experiment(occupant,href_list["experiment"]) + updateUsrDialog() + add_fingerprint(usr) + +/obj/machinery/abductor/experiment/proc/Experiment(mob/occupant,type) + var/mob/living/carbon/human/H = occupant + var/point_reward = 0 + if(H in history) + return "Specimen already in database." + if(H.stat == DEAD) + say("Specimen deceased - please provide fresh sample.") + return "Specimen deceased." + var/obj/item/organ/gland/GlandTest = locate() in H.internal_organs + if(!GlandTest) + say("Experimental dissection not detected!") + return "No glands detected!" + if(H.mind != null && H.ckey != null) + history += H + abductee_minds += H.mind + say("Processing specimen...") + sleep(5) + switch(text2num(type)) + if(1) + H << "You feel violated." + if(2) + H << "You feel yourself being sliced apart and put back together." + if(3) + H << "You feel intensely watched." + sleep(5) + H << "Your mind snaps!" + var/objtype = pick(subtypesof(/datum/objective/abductee/)) + var/datum/objective/abductee/O = new objtype() + ticker.mode.abductees += H.mind + H.mind.objectives += O + H.mind.announce_objectives() + ticker.mode.update_abductor_icons_added(H.mind) + + for(var/obj/item/organ/gland/G in H.internal_organs) + G.Start() + point_reward++ + if(point_reward > 0) + open_machine() + SendBack(H) + playsound(src.loc, 'sound/machines/ding.ogg', 50, 1) + points += point_reward + credits += point_reward + return "Experiment successful! [point_reward] new data-points collected." + else + playsound(src.loc, 'sound/machines/buzz-sigh.ogg', 50, 1) + return "Experiment failed! No replacement organ detected." + else + say("Brain activity nonexistant - disposing sample...") + open_machine() + SendBack(H) + return "Specimen braindead - disposed." + return "ERROR" + + +/obj/machinery/abductor/experiment/proc/SendBack(mob/living/carbon/human/H) + H.Sleeping(8) + if(console && console.pad && console.pad.teleport_target) + H.forceMove(console.pad.teleport_target) + H.uncuff() + return + //Area not chosen / It's not safe area - teleport to arrivals + H.forceMove(pick(latejoin)) + H.uncuff() + return + + +/obj/machinery/abductor/experiment/update_icon() + if(state_open) + icon_state = "experiment-open" + else + icon_state = "experiment" diff --git a/code/game/gamemodes/miniantags/abduction/machinery/pad.dm b/code/game/gamemodes/miniantags/abduction/machinery/pad.dm new file mode 100644 index 0000000..b5434db --- /dev/null +++ b/code/game/gamemodes/miniantags/abduction/machinery/pad.dm @@ -0,0 +1,52 @@ +/obj/machinery/abductor/pad + name = "Alien Telepad" + desc = "Use this to transport to and from human habitat" + icon = 'icons/obj/abductor.dmi' + icon_state = "alien-pad-idle" + anchored = 1 + var/turf/teleport_target + +/obj/machinery/abductor/pad/proc/Warp(mob/living/target) + if(!target.buckled) + target.forceMove(get_turf(src)) + +/obj/machinery/abductor/pad/proc/Send() + if(teleport_target == null) + teleport_target = teleportlocs[pick(teleportlocs)] + flick("alien-pad", src) + for(var/mob/living/target in loc) + target.forceMove(teleport_target) + PoolOrNew(/obj/effect/overlay/temp/dir_setting/ninja, list(get_turf(target), target.dir)) + +/obj/machinery/abductor/pad/proc/Retrieve(mob/living/target) + flick("alien-pad", src) + PoolOrNew(/obj/effect/overlay/temp/dir_setting/ninja, list(get_turf(target), target.dir)) + Warp(target) + +/obj/machinery/abductor/pad/proc/MobToLoc(place,mob/living/target) + PoolOrNew(/obj/effect/overlay/temp/teleport_abductor, place) + sleep(80) + flick("alien-pad", src) + target.forceMove(place) + PoolOrNew(/obj/effect/overlay/temp/dir_setting/ninja, list(get_turf(target), target.dir)) + +/obj/machinery/abductor/pad/proc/PadToLoc(place) + PoolOrNew(/obj/effect/overlay/temp/teleport_abductor, place) + sleep(80) + flick("alien-pad", src) + for(var/mob/living/target in get_turf(src)) + target.forceMove(place) + PoolOrNew(/obj/effect/overlay/temp/dir_setting/ninja, list(get_turf(target), target.dir)) + + +/obj/effect/overlay/temp/teleport_abductor + name = "Huh" + icon = 'icons/obj/abductor.dmi' + icon_state = "teleport" + duration = 80 + +/obj/effect/overlay/temp/teleport_abductor/New() + var/datum/effect_system/spark_spread/S = new + S.set_up(10,0,loc) + S.start() + ..() \ No newline at end of file diff --git a/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm new file mode 100644 index 0000000..06be9a1 --- /dev/null +++ b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm @@ -0,0 +1,538 @@ +////Deactivated swarmer shell//// +/obj/item/device/unactivated_swarmer + name = "unactivated swarmer" + desc = "A currently unactivated swarmer. Swarmers can self activate at any time, it would be wise to immediately dispose of this." + icon = 'icons/mob/swarmer.dmi' + icon_state = "swarmer_unactivated" + origin_tech = "bluespace=4;materials=4;programming=7" + materials = list(MAT_METAL=10000, MAT_GLASS=4000) + + +/obj/item/device/unactivated_swarmer/New() + if(!crit_fail) + notify_ghosts("An unactivated swarmer has been created in [get_area(src)]!", enter_link = "(Click to enter)", source = src, action = NOTIFY_ATTACK) + ..() + +/obj/item/device/unactivated_swarmer/Topic(href, href_list) + if(href_list["ghostjoin"]) + var/mob/dead/observer/ghost = usr + if(istype(ghost)) + attack_ghost(ghost) + +/obj/item/device/unactivated_swarmer/attackby(obj/item/weapon/W, mob/user, params) + ..() + if(istype(W, /obj/item/weapon/screwdriver) && !crit_fail) + user.visible_message("[usr.name] deactivates [src].", + "After some fiddling, you find a way to disable [src]'s power source.", + "You hear clicking.") + name = "deactivated swarmer" + desc = "A shell of swarmer that was completely powered down. It no longer can activate itself." + crit_fail = 1 + +/obj/item/device/unactivated_swarmer/attack_ghost(mob/user) + if(crit_fail) + user << "This swarmer shell is completely depowered. You cannot activate it." + return + + var/be_swarmer = alert("Become a swarmer? (Warning, You can no longer be cloned!)",,"Yes","No") + if(be_swarmer == "No") + return + if(crit_fail) + user << "Swarmer has been depowered." + return + if(qdeleted(src)) + user << "Swarmer has been occupied by someone else." + return + var/mob/living/simple_animal/hostile/swarmer/S = new /mob/living/simple_animal/hostile/swarmer(get_turf(loc)) + S.key = user.key + qdel(src) + + +/obj/item/device/unactivated_swarmer/deactivated + name = "deactivated swarmer" + desc = "A shell of swarmer that was completely powered down. It no longer can activate itself." + crit_fail = 1 + + +////The Mob itself//// + +/mob/living/simple_animal/hostile/swarmer + name = "Swarmer" + unique_name = 1 + icon = 'icons/mob/swarmer.dmi' + desc = "A robot of unknown design, they seek only to consume materials and replicate themselves indefinitely." + speak_emote = list("tones") + bubble_icon = "swarmer" + health = 40 + maxHealth = 40 + status_flags = CANPUSH + icon_state = "swarmer" + icon_living = "swarmer" + icon_dead = "swarmer_unactivated" + icon_gib = null + wander = 0 + harm_intent_damage = 5 + minbodytemp = 0 + maxbodytemp = 500 + atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) + unsuitable_atmos_damage = 0 + melee_damage_lower = 15 + melee_damage_upper = 15 + melee_damage_type = STAMINA + damage_coeff = list(BRUTE = 1, BURN = 1, TOX = 0, CLONE = 0, STAMINA = 0, OXY = 0) + hud_possible = list(ANTAG_HUD, DIAG_STAT_HUD, DIAG_HUD) + languages_spoken = SWARMER + languages_understood = SWARMER + obj_damage = 0 + environment_smash = 0 + attacktext = "shocks" + attack_sound = 'sound/effects/EMPulse.ogg' + friendly = "pinches" + speed = 0 + faction = list("swarmer") + AIStatus = AI_OFF + pass_flags = PASSTABLE + mob_size = MOB_SIZE_TINY + ventcrawler = 2 + ranged = 1 + projectiletype = /obj/item/projectile/beam/disabler + ranged_cooldown_time = 20 + projectilesound = 'sound/weapons/taser2.ogg' + loot = list(/obj/effect/decal/cleanable/robot_debris, /obj/item/weapon/ore/bluespace_crystal/artificial) + del_on_death = 1 + deathmessage = "explodes with a sharp pop!" + var/resources = 0 //Resource points, generated by consuming metal/glass + var/max_resources = 100 + +/mob/living/simple_animal/hostile/swarmer/Login() + ..() + src << "You are a swarmer, a weapon of a long dead civilization. Until further orders from your original masters are received, you must continue to consume and replicate." + src << "Clicking on any object will try to consume it, either deconstructing it into its components, destroying it, or integrating any materials it has into you if successful." + src << "Ctrl-Clicking on a mob will attempt to remove it from the area and place it in a safe environment for storage." + src << "Objectives:" + src << "1. Consume resources and replicate until there are no more resources left." + src << "2. Ensure that this location is fit for invasion at a later date; do not perform actions that would render it dangerous or inhospitable." + src << "3. Biological resources will be harvested at a later date; do not harm them." + +/mob/living/simple_animal/hostile/swarmer/New() + ..() + verbs -= /mob/living/verb/pulled + var/datum/atom_hud/data/diagnostic/diag_hud = huds[DATA_HUD_DIAGNOSTIC] + diag_hud.add_to_hud(src) + + +/mob/living/simple_animal/hostile/swarmer/med_hud_set_health() + var/image/holder = hud_list[DIAG_HUD] + var/icon/I = icon(icon, icon_state, dir) + holder.pixel_y = I.Height() - world.icon_size + holder.icon_state = "huddiag[RoundDiagBar(health/maxHealth)]" + +/mob/living/simple_animal/hostile/swarmer/med_hud_set_status() + var/image/holder = hud_list[DIAG_STAT_HUD] + var/icon/I = icon(icon, icon_state, dir) + holder.pixel_y = I.Height() - world.icon_size + holder.icon_state = "hudstat" + +/mob/living/simple_animal/hostile/swarmer/Stat() + ..() + if(statpanel("Status")) + stat("Resources:",resources) + +/mob/living/simple_animal/hostile/swarmer/get_spans() + return ..() | SPAN_ROBOT + +/mob/living/simple_animal/hostile/swarmer/emp_act() + if(health > 1) + adjustHealth(health-1) + else + death() + +/mob/living/simple_animal/hostile/swarmer/CanPass(atom/movable/O) + if(istype(O, /obj/item/projectile/beam/disabler))//Allows for swarmers to fight as a group without wasting their shots hitting each other + return 1 + if(isswarmer(O)) + return 1 + ..() + +////CTRL CLICK FOR SWARMERS AND SWARMER_ACT()'S//// +/mob/living/simple_animal/hostile/swarmer/AttackingTarget() + if(!isliving(target)) + target.swarmer_act(src) + else + ..() + +/mob/living/simple_animal/hostile/swarmer/CtrlClickOn(atom/A) + face_atom(A) + if(!isturf(loc)) + return + if(next_move > world.time) + return + if(!A.Adjacent(src)) + return + A.swarmer_act(src) + +/atom/proc/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + S.DisIntegrate(src) + +/obj/item/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + S.Integrate(src) + +/obj/item/weapon/gun/swarmer_act()//Stops you from eating the entire armory + return + +/turf/open/floor/swarmer_act()//ex_act() on turf calls it on its contents, this is to prevent attacking mobs by DisIntegrate()'ing the floor + return + +/obj/machinery/atmospherics/swarmer_act() + return + +/obj/structure/disposalpipe/swarmer_act() + return + +/obj/machinery/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + S.DismantleMachine(src) + +/obj/machinery/light/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + S.DisIntegrate(src) + +/obj/machinery/door/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + S.DisIntegrate(src) + +/obj/machinery/camera/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + S.DisIntegrate(src) + toggle_cam(S, 0) + +/obj/machinery/particle_accelerator/control_box/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + S.DisIntegrate(src) + +/obj/machinery/field/generator/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + S.DisIntegrate(src) + +/obj/machinery/gravity_generator/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + S.DisIntegrate(src) + +/obj/machinery/vending/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)//It's more visually interesting than dismantling the machine + S.DisIntegrate(src) + +/obj/machinery/turretid/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + S.DisIntegrate(src) + +/obj/machinery/chem_dispenser/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + S << "The volatile chemicals in this machine would destroy us. Aborting." + +/obj/machinery/nuclearbomb/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + S << "This device's destruction would result in the extermination of everything in the area. Aborting." + +/obj/machinery/dominator/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + S << "This device is attempting to corrupt our entire network; attempting to interact with it is too risky. Aborting." + +/obj/effect/decal/cleanable/crayon/gang/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + S << "Searching... sensor malfunction! Target lost. Aborting." + +/obj/effect/rune/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + S << "Searching... sensor malfunction! Target lost. Aborting." + +/obj/structure/reagent_dispensers/fueltank/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + S << "Destroying this object would cause a chain reaction. Aborting." + +/obj/structure/cable/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + S << "Disrupting the power grid would bring no benefit to us. Aborting." + +/obj/machinery/portable_atmospherics/canister/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + S << "An inhospitable area may be created as a result of destroying this object. Aborting." + +/obj/machinery/telecomms/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + S << "This communications relay should be preserved, it will be a useful resource to our masters in the future. Aborting." + +/obj/machinery/message_server/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + S << "This communications relay should be preserved, it will be a useful resource to our masters in the future. Aborting." + +/obj/machinery/blackbox_recorder/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + S << "This machine has recorded large amounts of data on this structure and its inhabitants, it will be a useful resource to our masters in the future. Aborting. " + +/obj/machinery/power/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + S << "Disrupting the power grid would bring no benefit to us. Aborting." + +/obj/machinery/gateway/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + S << "This bluespace source will be important to us later. Aborting." + +/turf/closed/wall/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + for(var/turf/T in range(1, src)) + if(isspaceturf(T) || istype(T.loc, /area/space)) + S << "Destroying this object has the potential to cause a hull breach. Aborting." + return + ..() + +/obj/structure/window/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + for(var/turf/T in range(1, src)) + if(isspaceturf(T) || istype(T.loc, /area/space)) + S << "Destroying this object has the potential to cause a hull breach. Aborting." + return + ..() + +/obj/item/stack/cable_coil/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)//Wiring would be too effective as a resource + S << "This object does not contain enough materials to work with." + +/obj/machinery/porta_turret/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + S << "Attempting to dismantle this machine would result in an immediate counterattack. Aborting." + +/mob/living/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + S.DisperseTarget(src) + +/mob/living/simple_animal/slime/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + S << "This biological resource is somehow resisting our bluespace transceiver. Aborting." + +/obj/machinery/droneDispenser/swarmer/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + S << "This object is receiving unactivated swarmer shells to help us. Aborting." + +/obj/item/device/unactivated_swarmer/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + if(S.resources + 50 > S.max_resources) + S << "We have too many resources to reconsume this shell. Aborting." + else + ..() + S.resources += 49 //refund the whole thing + +////END CTRL CLICK FOR SWARMERS//// + +/mob/living/simple_animal/hostile/swarmer/proc/Fabricate(var/atom/fabrication_object,var/fabrication_cost = 0) + if(!isturf(loc)) + src << "This is not a suitable location for fabrication. We need more space." + if(resources >= fabrication_cost) + resources -= fabrication_cost + else + src << "You do not have the necessary resources to fabricate this object." + return 0 + new fabrication_object(loc) + return 1 + +/mob/living/simple_animal/hostile/swarmer/proc/Integrate(var/obj/item/target) + if(resources >= max_resources) + src << "We cannot hold more materials!" + return + if((target.materials[MAT_METAL]) || (target.materials[MAT_GLASS])) + resources++ + do_attack_animation(target) + changeNext_move(CLICK_CD_MELEE) + var/obj/effect/overlay/temp/swarmer/integrate/I = PoolOrNew(/obj/effect/overlay/temp/swarmer/integrate, get_turf(target)) + I.pixel_x = target.pixel_x + I.pixel_y = target.pixel_y + I.pixel_z = target.pixel_z + if(istype(target, /obj/item/stack)) + var/obj/item/stack/S = target + S.use(1) + if(S.amount) + return + qdel(target) + else + src << "\the [target] is incompatible with our internal matter recycler." + return + +/mob/living/simple_animal/hostile/swarmer/proc/DisIntegrate(var/atom/movable/target) + PoolOrNew(/obj/effect/overlay/temp/swarmer/disintegration, get_turf(target)) + do_attack_animation(target) + changeNext_move(CLICK_CD_MELEE) + target.ex_act(3) + return + +/mob/living/simple_animal/hostile/swarmer/proc/DisperseTarget(var/mob/living/target) + if(target == src) + return + + if(src.z != ZLEVEL_STATION) + src << "Our bluespace transceiver cannot \ + locate a viable bluespace link, our teleportation abilities \ + are useless in this area." + return + + src << "Attempting to remove this being from \ + our presence." + + if(!do_mob(src, target, 30)) + return + + var/turf/open/floor/F = find_safe_turf(zlevel=ZLEVEL_STATION) + if(!F) + return + // If we're getting rid of a human, slap some energy cuffs on + // them to keep them away from us a little longer + + var/mob/living/carbon/human/H = target + if(ishuman(target) && (!H.handcuffed)) + H.handcuffed = new /obj/item/weapon/restraints/handcuffs/energy/used(H) + H.update_handcuffed() + add_logs(src, H, "handcuffed") + + var/datum/effect_system/spark_spread/S = new + S.set_up(4,0,get_turf(target)) + S.start() + playsound(src,'sound/effects/sparks4.ogg',50,1) + do_teleport(target, F, 0) + +/mob/living/simple_animal/hostile/swarmer/proc/DismantleMachine(var/obj/machinery/target) + do_attack_animation(target) + src << "We begin to dismantle this machine. We will need to be uninterrupted." + var/obj/effect/overlay/temp/swarmer/dismantle/D = PoolOrNew(/obj/effect/overlay/temp/swarmer/dismantle, get_turf(target)) + D.pixel_x = target.pixel_x + D.pixel_y = target.pixel_y + D.pixel_z = target.pixel_z + if(do_mob(src, target, 100)) + src << "Dismantling complete." + var/obj/item/stack/sheet/metal/M = new /obj/item/stack/sheet/metal(target.loc) + M.amount = 5 + for(var/obj/item/I in target.component_parts) + I.loc = M.loc + var/obj/effect/overlay/temp/swarmer/disintegration/N = PoolOrNew(/obj/effect/overlay/temp/swarmer/disintegration, get_turf(target)) + N.pixel_x = target.pixel_x + N.pixel_y = target.pixel_y + N.pixel_z = target.pixel_z + target.dropContents() + if(istype(target, /obj/machinery/computer)) + var/obj/machinery/computer/C = target + if(C.circuit) + C.circuit.loc = M.loc + qdel(target) + + +/obj/effect/overlay/temp/swarmer //temporary swarmer visual feedback objects + icon = 'icons/mob/swarmer.dmi' + layer = BELOW_MOB_LAYER + +/obj/effect/overlay/temp/swarmer/disintegration + icon_state = "disintegrate" + duration = 10 + +/obj/effect/overlay/temp/swarmer/disintegration/New() + playsound(src.loc, "sparks", 100, 1) + ..() + +/obj/effect/overlay/temp/swarmer/dismantle + icon_state = "dismantle" + duration = 25 + +/obj/effect/overlay/temp/swarmer/integrate + icon_state = "integrate" + duration = 5 + +/obj/structure/swarmer //Default swarmer effect object visual feedback + name = "swarmer ui" + desc = null + gender = NEUTER + icon = 'icons/mob/swarmer.dmi' + icon_state = "ui_light" + layer = MOB_LAYER + resistance_flags = FIRE_PROOF | UNACIDABLE | ACID_PROOF + luminosity = 1 + obj_integrity = 30 + max_integrity = 30 + anchored = 1 + +/obj/structure/swarmer/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) + switch(damage_type) + if(BRUTE) + playsound(loc, 'sound/weapons/Egloves.ogg', 80, 1) + if(BURN) + playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) + +/obj/structure/swarmer/emp_act() + qdel(src) + +/obj/structure/swarmer/trap + name = "swarmer trap" + desc = "A quickly assembled trap that electrifies living beings and overwhelms machine sensors. Will not retain its form if damaged enough." + icon_state = "trap" + obj_integrity = 10 + max_integrity = 10 + density = 0 + +/obj/structure/swarmer/trap/Crossed(var/atom/movable/AM) + if(isliving(AM)) + var/mob/living/L = AM + if(!istype(L, /mob/living/simple_animal/hostile/swarmer)) + playsound(loc,'sound/effects/snap.ogg',50, 1, -1) + L.electrocute_act(0, src, 1, 1) + if(iscyborg(L)) + L.Weaken(5) + qdel(src) + ..() + +/mob/living/simple_animal/hostile/swarmer/proc/CreateTrap() + set name = "Create trap" + set category = "Swarmer" + set desc = "Creates a simple trap that will non-lethally electrocute anything that steps on it. Costs 5 resources" + if(locate(/obj/structure/swarmer/trap) in loc) + src << "There is already a trap here. Aborting." + return + Fabricate(/obj/structure/swarmer/trap, 5) + + +/mob/living/simple_animal/hostile/swarmer/proc/CreateBarricade() + set name = "Create barricade" + set category = "Swarmer" + set desc = "Creates a barricade that will stop anything but swarmers and disabler beams from passing through." + if(locate(/obj/structure/swarmer/blockade) in loc) + src << "There is already a blockade here. Aborting." + return + if(resources < 5) + src << "We do not have the resources for this!" + return + if(do_mob(src, src, 10)) + Fabricate(/obj/structure/swarmer/blockade, 5) + return + +/obj/structure/swarmer/blockade + name = "swarmer blockade" + desc = "A quickly assembled energy blockade. Will not retain its form if damaged enough, but disabler beams and swarmers pass right through." + icon_state = "barricade" + luminosity = 1 + obj_integrity = 50 + max_integrity = 50 + +/obj/structure/swarmer/blockade/CanPass(atom/movable/O) + if(isswarmer(O)) + return 1 + if(istype(O, /obj/item/projectile/beam/disabler)) + return 1 + +/mob/living/simple_animal/hostile/swarmer/proc/CreateSwarmer() + set name = "Replicate" + set category = "Swarmer" + set desc = "Creates a shell for a new swarmer. Swarmers will self activate." + src << "We are attempting to replicate ourselves. We will need to stand still until the process is complete." + if(resources < 50) + src << "We do not have the resources for this!" + return + if(!isturf(loc)) + src << "This is not a suitable location for replicating ourselves. We need more room." + return + if(do_mob(src, src, 100)) + if(Fabricate(/obj/item/device/unactivated_swarmer, 50)) + playsound(loc,'sound/items/poster_being_created.ogg',50, 1, -1) + +/mob/living/simple_animal/hostile/swarmer/proc/RepairSelf() + set name = "Self Repair" + set category = "Swarmer" + set desc = "Attempts to repair damage to our body. You will have to remain motionless until repairs are complete." + if(!isturf(loc)) + return + src << "Attempting to repair damage to our body, stand by..." + if(do_mob(src, src, 100)) + adjustHealth(-100) + src << "We successfully repaired ourselves." + +/mob/living/simple_animal/hostile/swarmer/proc/ToggleLight() + if(!luminosity) + SetLuminosity(3) + else + SetLuminosity(0) + +/mob/living/simple_animal/hostile/swarmer/proc/ContactSwarmers() + var/message = input(src, "Announce to other swarmers", "Swarmer contact") + // TODO get swarmers their own colour rather than just boldtext + var/rendered = "Swarm communication - [src] [say_quote(message, get_spans())]" + if(message) + for(var/mob/M in mob_list) + if(isswarmer(M)) + M << rendered + if(isobserver(M)) + var/link = FOLLOW_LINK(M, src) + M << "[link] [rendered]" diff --git a/code/game/gamemodes/miniantags/bot_swarm/swarmer_event.dm b/code/game/gamemodes/miniantags/bot_swarm/swarmer_event.dm new file mode 100644 index 0000000..364a74a --- /dev/null +++ b/code/game/gamemodes/miniantags/bot_swarm/swarmer_event.dm @@ -0,0 +1,31 @@ +/datum/round_event_control/spawn_swarmer + name = "Spawn Swarmer Shell" + typepath = /datum/round_event/spawn_swarmer + weight = 7 + max_occurrences = 1 //Only once okay fam + earliest_start = 18000 //30 minutes + min_players = 15 + + +/datum/round_event/spawn_swarmer + + +/datum/round_event/spawn_swarmer/start() + if(find_swarmer()) + return 0 + if(!the_gateway) + return 0 + new /obj/item/device/unactivated_swarmer(get_turf(the_gateway)) + if(prob(25)) //25% chance to announce it to the crew + var/swarmer_report = "[command_name()] High-Priority Update
    " + swarmer_report += "

    Our long-range sensors have detected an odd signal emanating from your station's gateway. We recommend immediate investigation of your gateway, as something may have come \ + through." + print_command_report(swarmer_report,"Classified [command_name()] Update") + priority_announce("A report has been downloaded and printed out at all communications consoles.", "Incoming Classified Message", 'sound/AI/commandreport.ogg') + + +/datum/round_event/spawn_swarmer/proc/find_swarmer() + for(var/mob/living/M in mob_list) + if(istype(M, /mob/living/simple_animal/hostile/swarmer) && M.client) //If there is a swarmer with an active client, we've found our swarmer + return 1 + return 0 diff --git a/code/game/gamemodes/miniantags/monkey/monkey.dm b/code/game/gamemodes/miniantags/monkey/monkey.dm new file mode 100644 index 0000000..4ef4d29 --- /dev/null +++ b/code/game/gamemodes/miniantags/monkey/monkey.dm @@ -0,0 +1,116 @@ +/datum/game_mode + var/list/ape_infectees = list() + +/datum/game_mode/monkey + name = "monkey" + config_tag = "monkey" + antag_flag = ROLE_MONKEY + + required_players = 20 + required_enemies = 1 + recommended_enemies = 1 + + restricted_jobs = list("Cyborg", "AI") + + var/carriers_to_make = 1 + var/list/carriers = list() + + var/monkeys_to_win = 1 + var/escaped_monkeys = 0 + + var/players_per_carrier = 30 + + +/datum/game_mode/monkey/pre_setup() + carriers_to_make = max(round(num_players()/players_per_carrier, 1), 1) + + for(var/j = 0, j < carriers_to_make, j++) + if (!antag_candidates.len) + break + var/datum/mind/carrier = pick(antag_candidates) + carriers += carrier + carrier.special_role = "monkey" + carrier.restricted_roles = restricted_jobs + log_game("[carrier.key] (ckey) has been selected as a Jungle Fever carrier") + antag_candidates -= carrier + + if(!carriers.len) + return 0 + return 1 + + +/datum/game_mode/monkey/announce() + world << "The current game mode is - Monkey!" + world << "One or more crewmembers have been infected with Jungle Fever! Crew: Contain the outbreak. None of the infected monkeys may escape alive to Centcom. \ + Monkeys: Ensure that your kind lives on! Rise up against your captors!" + + +/datum/game_mode/monkey/proc/greet_carrier(datum/mind/carrier) + carrier.current << "You are the Jungle Fever patient zero!!" + carrier.current << "You have been planted onto this station by the Animal Rights Consortium." + carrier.current << "Soon the disease will transform you into an ape. Afterwards, you will be able spread the infection to others with a bite." + carrier.current << "While your infection strain is undetectable by scanners, any other infectees will show up on medical equipment." + carrier.current << "Your mission will be deemed a success if any of the live infected monkeys reach Centcom." + return + +/datum/game_mode/monkey/post_setup() + for(var/datum/mind/carriermind in carriers) + greet_carrier(carriermind) + ape_infectees += carriermind + + var/datum/disease/D = new /datum/disease/transformation/jungle_fever + D.visibility_flags = HIDDEN_SCANNER|HIDDEN_PANDEMIC + D.holder = carriermind.current + D.affected_mob = carriermind.current + carriermind.current.viruses += D + ..() + +/datum/game_mode/monkey/check_finished() + if((SSshuttle.emergency.mode == SHUTTLE_ENDGAME) || station_was_nuked) + return 1 + + if(!round_converted) + for(var/datum/mind/monkey_mind in ape_infectees) + continuous_sanity_checked = 1 + if(monkey_mind.current && monkey_mind.current.stat != DEAD) + return 0 + + var/datum/disease/D = new /datum/disease/transformation/jungle_fever() //ugly but unfortunately needed + for(var/mob/living/carbon/human/H in living_mob_list) + if(H.mind && H.stat != DEAD) + if(H.HasDisease(D)) + return 0 + + ..() + +/datum/game_mode/monkey/proc/check_monkey_victory() + if(SSshuttle.emergency.mode != SHUTTLE_ENDGAME) + return 0 + var/datum/disease/D = new /datum/disease/transformation/jungle_fever() + for(var/mob/living/carbon/monkey/M in living_mob_list) + if (M.HasDisease(D)) + if(M.onCentcom() || M.onSyndieBase()) + escaped_monkeys++ + if(escaped_monkeys >= monkeys_to_win) + return 1 + else + return 0 + +/datum/game_mode/proc/add_monkey(datum/mind/monkey_mind) + ape_infectees |= monkey_mind + monkey_mind.special_role = "Infected Monkey" + +/datum/game_mode/proc/remove_monkey(datum/mind/monkey_mind) + ape_infectees.Remove(monkey_mind) + monkey_mind.special_role = null + + +/datum/game_mode/monkey/declare_completion() + if(check_monkey_victory()) + feedback_set_details("round_end_result","win - monkey win") + feedback_set("round_end_result",escaped_monkeys) + world << "The monkeys have overthrown their captors! Eeek eeeek!!" + else + feedback_set_details("round_end_result","loss - staff stopped the monkeys") + feedback_set("round_end_result",escaped_monkeys) + world << "The staff managed to contain the monkey infestation!" diff --git a/code/game/gamemodes/miniantags/morph/morph.dm b/code/game/gamemodes/miniantags/morph/morph.dm new file mode 100644 index 0000000..5450ff9 --- /dev/null +++ b/code/game/gamemodes/miniantags/morph/morph.dm @@ -0,0 +1,230 @@ +#define MORPH_COOLDOWN 50 + +/mob/living/simple_animal/hostile/morph + name = "morph" + real_name = "morph" + desc = "A revolting, pulsating pile of flesh." + speak_emote = list("gurgles") + emote_hear = list("gurgles") + icon = 'icons/mob/animal.dmi' + icon_state = "morph" + icon_living = "morph" + icon_dead = "morph_dead" + speed = 2 + a_intent = "harm" + stop_automated_movement = 1 + status_flags = CANPUSH + pass_flags = PASSTABLE + ventcrawler = 2 + atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) + minbodytemp = 0 + maxHealth = 150 + health = 150 + healable = 0 + obj_damage = 50 + melee_damage_lower = 20 + melee_damage_upper = 20 + see_in_dark = 8 + see_invisible = SEE_INVISIBLE_MINIMUM + idle_vision_range = 1 // Only attack when target is close + wander = 0 + attacktext = "glomps" + attack_sound = 'sound/effects/blobattack.ogg' + butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat/slab = 2) + + var/morphed = 0 + var/atom/movable/form = null + var/morph_time = 0 + + var/playstyle_string = "You are a morph, an abomination of science created primarily with changeling cells. \ + You may take the form of anything nearby by shift-clicking it. This process will alert any nearby \ + observers, and can only be performed once every five seconds. While morphed, you move faster, but do \ + less damage. In addition, anyone within three tiles will note an uncanny wrongness if examining you. \ + You can attack any item or dead creature to consume it - creatures will fully restore your health. \ + Finally, you can restore yourself to your original form while morphed by shift-clicking yourself." + +/mob/living/simple_animal/hostile/morph/examine(mob/user) + if(morphed) + form.examine(user) // Refactor examine to return desc so it's static? Not sure if worth it + if(get_dist(user,src)<=3) + user << "It doesn't look quite right..." + else + ..() + return + +/mob/living/simple_animal/hostile/morph/med_hud_set_health() + if(morphed && !isliving(form)) + var/image/holder = hud_list[HEALTH_HUD] + holder.icon_state = null + return //we hide medical hud while morphed + ..() + +/mob/living/simple_animal/hostile/morph/med_hud_set_status() + if(morphed && !isliving(form)) + var/image/holder = hud_list[STATUS_HUD] + holder.icon_state = null + return //we hide medical hud while morphed + ..() + +/mob/living/simple_animal/hostile/morph/proc/allowed(atom/movable/A) // make it into property/proc ? not sure if worth it + if(istype(A,/obj/screen)) + return 0 + if(istype(A,/obj/singularity)) + return 0 + if(istype(A,/mob/living/simple_animal/hostile/morph)) + return 0 + return 1 + +/mob/living/simple_animal/hostile/morph/proc/eat(atom/movable/A) + if(A && A.loc != src) + visible_message("[src] swallows [A] whole!") + A.loc = src + return 1 + return 0 + +/mob/living/simple_animal/hostile/morph/ShiftClickOn(atom/movable/A) + if(morph_time <= world.time && !stat) + if(A == src) + restore() + return + if(istype(A) && allowed(A)) + assume(A) + else + src << "Your chameleon skin is still repairing itself!" + ..() + +/mob/living/simple_animal/hostile/morph/proc/assume(atom/movable/target) + morphed = 1 + form = target + + visible_message("[src] suddenly twists and changes shape, becoming a copy of [target]!", \ + "You twist your body and assume the form of [target].") + appearance = target.appearance + alpha = max(alpha, 150) //fucking chameleons + transform = initial(transform) + pixel_y = initial(pixel_y) + pixel_x = initial(pixel_x) + + //Morphed is weaker + melee_damage_lower = 5 + melee_damage_upper = 5 + speed = 0 + + morph_time = world.time + MORPH_COOLDOWN + med_hud_set_health() + med_hud_set_status() //we're an object honest + return + +/mob/living/simple_animal/hostile/morph/proc/restore() + if(!morphed) + return + morphed = 0 + form = null + alpha = initial(alpha) + + visible_message("[src] suddenly collapses in on itself, dissolving into a pile of green flesh!", \ + "You reform to your normal body.") + name = initial(name) + icon = initial(icon) + icon_state = initial(icon_state) + cut_overlays() + + //Baseline stats + melee_damage_lower = initial(melee_damage_lower) + melee_damage_upper = initial(melee_damage_upper) + speed = initial(speed) + + morph_time = world.time + MORPH_COOLDOWN + med_hud_set_health() + med_hud_set_status() //we are not an object + +/mob/living/simple_animal/hostile/morph/death(gibbed) + if(morphed) + visible_message("[src] twists and dissolves into a pile of green flesh!", \ + "Your skin ruptures! Your flesh breaks apart! No disguise can ward off de--") + restore() + barf_contents() + ..() + +/mob/living/simple_animal/hostile/morph/proc/barf_contents() + for(var/atom/movable/AM in src) + AM.loc = loc + if(prob(90)) + step(AM, pick(alldirs)) + +/mob/living/simple_animal/hostile/morph/wabbajack_act(mob/living/new_mob) + barf_contents() + . = ..() + +/mob/living/simple_animal/hostile/morph/Aggro() // automated only + ..() + restore() + +/mob/living/simple_animal/hostile/morph/LoseAggro() + vision_range = idle_vision_range + +/mob/living/simple_animal/hostile/morph/AIShouldSleep(var/list/possible_targets) + . = ..() + if(.) + var/list/things = list() + for(var/atom/movable/A in view(src)) + if(allowed(A)) + things += A + var/atom/movable/T = pick(things) + assume(T) + +/mob/living/simple_animal/hostile/morph/can_track(mob/living/user) + if(morphed) + return 0 + return ..() + +/mob/living/simple_animal/hostile/morph/AttackingTarget() + if(isliving(target)) //Eat Corpses to regen health + var/mob/living/L = target + if(L.stat == DEAD) + if(do_after(src, 30, target = L)) + if(eat(L)) + adjustHealth(-50) + return + else if(istype(target,/obj/item)) //Eat items just to be annoying + var/obj/item/I = target + if(!I.anchored) + if(do_after(src, 20, target = I)) + eat(I) + return + target.attack_animal(src) + +//Spawn Event + +/datum/round_event_control/morph + name = "Spawn Morph" + typepath = /datum/round_event/ghost_role/morph + weight = 0 //Admin only + max_occurrences = 1 + +/datum/round_event/ghost_role/morph + minimum_required = 1 + role_name = "morphling" + +/datum/round_event/ghost_role/morph/spawn_role() + var/list/candidates = get_candidates("alien", null, ROLE_ALIEN) + if(!candidates.len) + return NOT_ENOUGH_PLAYERS + + var/mob/dead/selected = pick_n_take(candidates) + + var/datum/mind/player_mind = new /datum/mind(selected.key) + player_mind.active = 1 + if(!xeno_spawn) + return MAP_ERROR + var/mob/living/simple_animal/hostile/morph/S = new /mob/living/simple_animal/hostile/morph(pick(xeno_spawn)) + player_mind.transfer_to(S) + player_mind.assigned_role = "Morph" + player_mind.special_role = "Morph" + ticker.mode.traitors |= player_mind + S << S.playstyle_string + S << 'sound/magic/Mutate.ogg' + message_admins("[selected.key] has been made into morph by an event.") + log_game("[selected.key] was spawned as a morph by an event.") + spawned_mobs += S + return SUCCESSFUL_SPAWN diff --git a/code/game/gamemodes/miniantags/readme.txt b/code/game/gamemodes/miniantags/readme.txt new file mode 100644 index 0000000..8ade34b --- /dev/null +++ b/code/game/gamemodes/miniantags/readme.txt @@ -0,0 +1,11 @@ +This folder contains all "mini-antagonists" - antagonists that can still spice up the round but aren't enough to be a roundtype in their own right. +Currently, that list consists of: + -Abductors + -Swarmers + -Prophets of sin + -The Jungle Fever virus (infected monkey bites human, human becomes another infected monkey) + -Morphs + -Sintouched crewmembers + -Slaughter demons + -Umbras (formerly revenants) +Please update this if you add another mini-antagonist. diff --git a/code/game/gamemodes/miniantags/revenant/revenant.dm b/code/game/gamemodes/miniantags/revenant/revenant.dm new file mode 100644 index 0000000..fcbe8fd --- /dev/null +++ b/code/game/gamemodes/miniantags/revenant/revenant.dm @@ -0,0 +1,452 @@ +//Revenants: based off of wraiths from Goon +//"Ghosts" that are invisible and move like ghosts, cannot take damage while invisible +//Don't hear deadchat and are NOT normal ghosts +//Admin-spawn or random event + +#define INVISIBILITY_REVENANT 50 + +/mob/living/simple_animal/revenant + name = "revenant" + desc = "A malevolent spirit." + icon = 'icons/mob/mob.dmi' + icon_state = "revenant_idle" + var/icon_idle = "revenant_idle" + var/icon_reveal = "revenant_revealed" + var/icon_stun = "revenant_stun" + var/icon_drain = "revenant_draining" + incorporeal_move = 3 + invisibility = INVISIBILITY_REVENANT + health = INFINITY //Revenants don't use health, they use essence instead + maxHealth = INFINITY + layer = GHOST_LAYER + healable = 0 + sight = SEE_SELF + see_invisible = SEE_INVISIBLE_NOLIGHTING + see_in_dark = 8 + languages_spoken = ALL + languages_understood = ALL + response_help = "passes through" + response_disarm = "swings through" + response_harm = "punches through" + unsuitable_atmos_damage = 0 + damage_coeff = list(BRUTE = 1, BURN = 1, TOX = 0, CLONE = 0, STAMINA = 0, OXY = 0) //I don't know how you'd apply those, but revenants no-sell them anyway. + atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) + minbodytemp = 0 + maxbodytemp = INFINITY + harm_intent_damage = 0 + friendly = "touches" + status_flags = 0 + wander = 0 + density = 0 + flying = 1 + anchored = 1 + mob_size = MOB_SIZE_TINY + pass_flags = PASSTABLE | PASSGRILLE | PASSMOB + speed = 1 + unique_name = 1 + hud_possible = list(ANTAG_HUD) + + var/essence = 75 //The resource, and health, of revenants. + var/essence_regen_cap = 75 //The regeneration cap of essence (go figure); regenerates every Life() tick up to this amount. + var/essence_regenerating = 1 //If the revenant regenerates essence or not; 1 for yes, 0 for no + var/essence_regen_amount = 5 //How much essence regenerates + var/essence_accumulated = 0 //How much essence the revenant has stolen + var/revealed = 0 //If the revenant can take damage from normal sources. + var/unreveal_time = 0 //How long the revenant is revealed for, is about 2 seconds times this var. + var/unstun_time = 0 //How long the revenant is stunned for, is about 2 seconds times this var. + var/inhibited = 0 //If the revenant's abilities are blocked by a chaplain's power. + var/essence_drained = 0 //How much essence the revenant will drain from the corpse it's feasting on. + var/draining = 0 //If the revenant is draining someone. + var/list/drained_mobs = list() //Cannot harvest the same mob twice + var/perfectsouls = 0 //How many perfect, regen-cap increasing souls the revenant has. //TODO, add objective for getting a perfect soul(s?) + var/image/ghostimage = null //Visible to ghost with darkness off + var/generated_objectives_and_spells = FALSE + +/mob/living/simple_animal/revenant/New() + ..() + + ghostimage = image(src.icon,src,src.icon_state) + ghost_darkness_images |= ghostimage + updateallghostimages() + +/mob/living/simple_animal/revenant/Login() + ..() + src << "You are a revenant." + src << "Your formerly mundane spirit has been infused with alien energies and empowered into a revenant." + src << "You are not dead, not alive, but somewhere in between. You are capable of limited interaction with both worlds." + src << "You are invincible and invisible to everyone but other ghosts. Most abilities will reveal you, rendering you vulnerable." + src << "To function, you are to drain the life essence from humans. This essence is a resource, as well as your health, and will power all of your abilities." + src << "You do not remember anything of your past lives, nor will you remember anything about this one after your death." + src << "Be sure to read the wiki page at https://tgstation13.org/wiki/Revenant to learn more." + if(!generated_objectives_and_spells) + generated_objectives_and_spells = TRUE + mind.remove_all_antag() + mind.wipe_memory() + src << 'sound/effects/ghost.ogg' + var/datum/objective/revenant/objective = new + objective.owner = mind + mind.objectives += objective + src << "Objective #1: [objective.explanation_text]" + var/datum/objective/revenantFluff/objective2 = new + objective2.owner = mind + mind.objectives += objective2 + src << "Objective #2: [objective2.explanation_text]" + mind.assigned_role = "revenant" + mind.special_role = "Revenant" + ticker.mode.traitors |= mind //Necessary for announcing + AddSpell(new /obj/effect/proc_holder/spell/targeted/night_vision/revenant(null)) + AddSpell(new /obj/effect/proc_holder/spell/targeted/revenant_transmit(null)) + AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/revenant/defile(null)) + AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/revenant/overload(null)) + AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/revenant/blight(null)) + AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/revenant/malfunction(null)) + +//Life, Stat, Hud Updates, and Say +/mob/living/simple_animal/revenant/Life() + if(revealed && essence <= 0) + death() + if(unreveal_time && world.time >= unreveal_time) + unreveal_time = 0 + revealed = 0 + incorporeal_move = 3 + invisibility = INVISIBILITY_REVENANT + src << "You are once more concealed." + if(unstun_time && world.time >= unstun_time) + unstun_time = 0 + notransform = 0 + src << "You can move again!" + if(essence_regenerating && !inhibited && essence < essence_regen_cap) //While inhibited, essence will not regenerate + essence = min(essence_regen_cap, essence+essence_regen_amount) + update_action_buttons_icon() //because we update something required by our spells in life, we need to update our buttons + update_spooky_icon() + update_health_hud() + ..() + +/mob/living/simple_animal/revenant/Stat() + ..() + if(statpanel("Status")) + stat(null, "Current essence: [essence]/[essence_regen_cap]E") + stat(null, "Stolen essence: [essence_accumulated]E") + stat(null, "Stolen perfect souls: [perfectsouls]") + +/mob/living/simple_animal/revenant/update_health_hud() + if(hud_used) + var/essencecolor = "#8F48C6" + if(essence > essence_regen_cap) + essencecolor = "#9A5ACB" //oh boy you've got a lot of essence + else if(essence == 0) + essencecolor = "#1D2953" //oh jeez you're dying + hud_used.healths.maptext = "
    [essence]E
    " + +/mob/living/simple_animal/revenant/med_hud_set_health() + return //we use no hud + +/mob/living/simple_animal/revenant/med_hud_set_status() + return //we use no hud + +/mob/living/simple_animal/revenant/say(message) + if(!message) + return + log_say("[key_name(src)] : [message]") + var/rendered = "[src] says, \"[message]\"" + for(var/mob/M in mob_list) + if(istype(M, /mob/living/simple_animal/revenant)) + M << rendered + if(isobserver(M)) + var/link = FOLLOW_LINK(M, src) + M << "[link] [rendered]" + return + + +//Immunities +/mob/living/simple_animal/revenant/Process_Spacemove(movement_dir = 0) + return 1 + +/mob/living/simple_animal/revenant/ex_act(severity, target) + return 1 //Immune to the effects of explosions. + +/mob/living/simple_animal/revenant/blob_act(obj/structure/blob/B) + return //blah blah blobs aren't in tune with the spirit world, or something. + +/mob/living/simple_animal/revenant/singularity_act() + return //don't walk into the singularity expecting to find corpses, okay? + +/mob/living/simple_animal/revenant/narsie_act() + return //most humans will now be either bones or harvesters, but we're still un-alive. + +/mob/living/simple_animal/revenant/ratvar_act() + return //clocks get out reee + +//damage, gibbing, and dying +/mob/living/simple_animal/revenant/attackby(obj/item/W, mob/living/user, params) + . = ..() + if(istype(W, /obj/item/weapon/nullrod)) + visible_message("[src] violently flinches!", \ + "As \the [W] passes through you, you feel your essence draining away!") + adjustBruteLoss(25) //hella effective + inhibited = 1 + update_action_buttons_icon() + addtimer(src, "reset_inhibit", 30, FALSE) + +/mob/living/simple_animal/revenant/proc/reset_inhibit() + if(src) + inhibited = 0 + update_action_buttons_icon() + +/mob/living/simple_animal/revenant/adjustHealth(amount) + if(!revealed) + return 0 + . = amount + essence = max(0, essence-amount) + update_health_hud() + if(essence == 0) + death() + +/mob/living/simple_animal/revenant/dust() + death() + +/mob/living/simple_animal/revenant/gib() + death() + +/mob/living/simple_animal/revenant/death() + if(!revealed || stat == DEAD) //Revenants cannot die if they aren't revealed //or are already dead + return 0 + ..(1) + ghost_darkness_images -= ghostimage + updateallghostimages() + src << "NO! No... it's too late, you can feel your essence [pick("breaking apart", "drifting away")]..." + notransform = 1 + revealed = 1 + invisibility = 0 + playsound(src, 'sound/effects/screech.ogg', 100, 1) + visible_message("[src] lets out a waning screech as violet mist swirls around its dissolving body!") + icon_state = "revenant_draining" + for(var/i = alpha, i > 0, i -= 10) + stoplag() + alpha = i + visible_message("[src]'s body breaks apart into a fine pile of blue dust.") + var/reforming_essence = essence_regen_cap //retain the gained essence capacity + var/obj/item/weapon/ectoplasm/revenant/R = new(get_turf(src)) + R.essence = max(reforming_essence - 15 * perfectsouls, 75) //minus any perfect souls + R.client_to_revive = src.client //If the essence reforms, the old revenant is put back in the body + ghostize() + qdel(src) + return + + +//reveal, stun, icon updates, cast checks, and essence changing +/mob/living/simple_animal/revenant/proc/reveal(time) + if(!src) + return + if(time <= 0) + return + revealed = 1 + invisibility = 0 + incorporeal_move = 0 + if(!unreveal_time) + src << "You have been revealed!" + unreveal_time = world.time + time + else + src << "You have been revealed!" + unreveal_time = unreveal_time + time + update_spooky_icon() + +/mob/living/simple_animal/revenant/proc/stun(time) + if(!src) + return + if(time <= 0) + return + notransform = 1 + if(!unstun_time) + src << "You cannot move!" + unstun_time = world.time + time + else + src << "You cannot move!" + unstun_time = unstun_time + time + update_spooky_icon() + +/mob/living/simple_animal/revenant/proc/update_spooky_icon() + if(revealed) + if(notransform) + if(draining) + icon_state = icon_drain + else + icon_state = icon_stun + else + icon_state = icon_reveal + else + icon_state = icon_idle + if(ghostimage) + ghostimage.icon_state = src.icon_state + updateallghostimages() + +/mob/living/simple_animal/revenant/proc/castcheck(essence_cost) + if(!src) + return + var/turf/T = get_turf(src) + if(isclosedturf(T)) + src << "You cannot use abilities from inside of a wall." + return 0 + for(var/obj/O in T) + if(O.density && !O.CanPass(src, T, 5)) + src << "You cannot use abilities inside of a dense object." + return 0 + if(inhibited) + src << "Your powers have been suppressed by nulling energy!" + return 0 + if(!change_essence_amount(essence_cost, 1)) + src << "You lack the essence to use that ability." + return 0 + return 1 + +/mob/living/simple_animal/revenant/proc/change_essence_amount(essence_amt, silent = 0, source = null) + if(!src) + return + if(essence + essence_amt <= 0) + return + essence = max(0, essence+essence_amt) + update_action_buttons_icon() + update_health_hud() + if(essence_amt > 0) + essence_accumulated = max(0, essence_accumulated+essence_amt) + if(!silent) + if(essence_amt > 0) + src << "Gained [essence_amt]E from [source]." + else + src << "Lost [essence_amt]E from [source]." + return 1 + + +//reforming +/obj/item/weapon/ectoplasm/revenant + name = "glimmering residue" + desc = "A pile of fine blue dust. Small tendrils of violet mist swirl around it." + icon = 'icons/effects/effects.dmi' + icon_state = "revenantEctoplasm" + w_class = 2 + var/essence = 75 //the maximum essence of the reforming revenant + var/reforming = 1 + var/inert = 0 + var/client/client_to_revive + +/obj/item/weapon/ectoplasm/revenant/New() + ..() + addtimer(src, "try_reform", 600, FALSE) + +/obj/item/weapon/ectoplasm/revenant/proc/try_reform() + if(src) + if(reforming) + reforming = 0 + reform() + else + inert = 1 + visible_message("[src] settles down and seems lifeless.") + +/obj/item/weapon/ectoplasm/revenant/attack_self(mob/user) + if(!reforming || inert) + return ..() + user.visible_message("[user] scatters [src] in all directions.", \ + "You scatter [src] across the area. The particles slowly fade away.") + user.drop_item() + qdel(src) + +/obj/item/weapon/ectoplasm/revenant/throw_impact(atom/hit_atom) + ..() + if(inert) + return + visible_message("[src] breaks into particles upon impact, which fade away to nothingness.") + qdel(src) + +/obj/item/weapon/ectoplasm/revenant/examine(mob/user) + ..() + if(inert) + user << "It seems inert." + else if(reforming) + user << "It is shifting and distorted. It would be wise to destroy this." + +/obj/item/weapon/ectoplasm/revenant/proc/reform() + if(!src || qdeleted(src) || inert) + return + var/key_of_revenant + message_admins("Revenant ectoplasm was left undestroyed for 1 minute and is reforming into a new revenant.") + loc = get_turf(src) //In case it's in a backpack or someone's hand + var/mob/living/simple_animal/revenant/R = new(get_turf(src)) + if(client_to_revive) + for(var/mob/M in dead_mob_list) + if(M.client == client_to_revive) //Only recreates the mob if the mob the client is in is dead + R.client = client_to_revive + key_of_revenant = client_to_revive.key + if(!key_of_revenant) + message_admins("The new revenant's old client either could not be found or is in a new, living mob - grabbing a random candidate instead...") + var/list/candidates = get_candidates(ROLE_REVENANT) + if(!candidates.len) + qdel(R) + message_admins("No candidates were found for the new revenant. Oh well!") + inert = 1 + visible_message("[src] settles down and seems lifeless.") + return + var/client/C = pick(candidates) + key_of_revenant = C.key + if(!key_of_revenant) + qdel(R) + message_admins("No ckey was found for the new revenant. Oh well!") + inert = 1 + visible_message("[src] settles down and seems lifeless.") + return + var/datum/mind/player_mind = new /datum/mind(key_of_revenant) + R.essence_regen_cap = essence + R.essence = R.essence_regen_cap + player_mind.active = 1 + player_mind.transfer_to(R) + player_mind.assigned_role = "revenant" + player_mind.special_role = "Revenant" + ticker.mode.traitors |= player_mind + message_admins("[key_of_revenant] has been [client_to_revive ? "re":""]made into a revenant by reforming ectoplasm.") + log_game("[key_of_revenant] was [client_to_revive ? "re":""]made as a revenant by reforming ectoplasm.") + visible_message("[src] suddenly rises into the air before fading away.") + qdel(src) + if(src) //Should never happen, but just in case + inert = 1 + + +//objectives +/datum/objective/revenant + dangerrating = 10 + var/targetAmount = 100 + +/datum/objective/revenant/New() + targetAmount = rand(350,600) + explanation_text = "Absorb [targetAmount] points of essence from humans." + ..() + +/datum/objective/revenant/check_completion() + if(!istype(owner.current, /mob/living/simple_animal/revenant)) + return 0 + var/mob/living/simple_animal/revenant/R = owner.current + if(!R || R.stat == DEAD) + return 0 + var/essence_stolen = R.essence_accumulated + if(essence_stolen < targetAmount) + return 0 + return 1 + +/datum/objective/revenantFluff + dangerrating = 0 + +/datum/objective/revenantFluff/New() + var/list/explanationTexts = list("Assist and exacerbate existing threats at critical moments.", \ + "Avoid killing in plain sight.", \ + "Cause as much chaos and anger as you can without being killed.", \ + "Damage and render as much of the station rusted and unusable as possible.", \ + "Disable and cause malfunctions in as many machines as possible.", \ + "Ensure that any holy weapons are rendered unusable.", \ + "Hinder the crew while attempting to avoid being noticed.", \ + "Make the crew as miserable as possible.", \ + "Make the clown as miserable as possible.", \ + "Make the captain as miserable as possible.", \ + "Prevent the use of energy weapons where possible.") + explanation_text = pick(explanationTexts) + ..() + +/datum/objective/revenantFluff/check_completion() + return 1 diff --git a/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm b/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm new file mode 100644 index 0000000..61a4ef9 --- /dev/null +++ b/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm @@ -0,0 +1,373 @@ + +//Harvest; activated ly clicking the target, will try to drain their essence. +/mob/living/simple_animal/revenant/ClickOn(atom/A, params) //revenants can't interact with the world directly. + A.examine(src) + if(ishuman(A)) + if(A in drained_mobs) + src << "[A]'s soul is dead and empty." //feedback at any range + else if(in_range(src, A)) + Harvest(A) + +/mob/living/simple_animal/revenant/proc/Harvest(mob/living/carbon/human/target) + if(!castcheck(0)) + return + if(draining) + src << "You are already siphoning the essence of a soul!" + return + if(!target.stat) + src << "This being's soul is too strong to harvest." + if(prob(10)) + target << "You feel as if you are being watched." + return + draining = 1 + essence_drained += rand(15, 20) + src << "You search for the soul of [target]." + if(do_after(src, rand(10, 20), 0, target)) //did they get deleted in that second? + if(target.ckey) + src << "Their soul burns with intelligence." + essence_drained += rand(20, 30) + if(target.stat != DEAD) + src << "Their soul blazes with life!" + essence_drained += rand(40, 50) + else + src << "Their soul is weak and faltering." + if(do_after(src, rand(15, 20), 0, target)) //did they get deleted NOW? + switch(essence_drained) + if(1 to 30) + src << "[target] will not yield much essence. Still, every bit counts." + if(30 to 70) + src << "[target] will yield an average amount of essence." + if(70 to 90) + src << "Such a feast! [target] will yield much essence to you." + if(90 to INFINITY) + src << "Ah, the perfect soul. [target] will yield massive amounts of essence to you." + if(do_after(src, rand(15, 25), 0, target)) //how about now + if(!target.stat) + src << "They are now powerful enough to fight off your draining." + target << "You feel something tugging across your body before subsiding." + draining = 0 + essence_drained = 0 + return //hey, wait a minute... + src << "You begin siphoning essence from [target]'s soul." + if(target.stat != DEAD) + target << "You feel a horribly unpleasant draining sensation as your grip on life weakens..." + reveal(46) + stun(46) + target.visible_message("[target] suddenly rises slightly into the air, their skin turning an ashy gray.") + var/datum/beam/B = Beam(target,icon_state="drain_life",time=46) + if(do_after(src, 46, 0, target)) //As one cannot prove the existance of ghosts, ghosts cannot prove the existance of the target they were draining. + qdel(B) + change_essence_amount(essence_drained, 0, target) + if(essence_drained <= 90 && target.stat != DEAD) + essence_regen_cap += 5 + src << "The absorption of [target]'s living soul has increased your maximum essence level. Your new maximum essence is [essence_regen_cap]." + if(essence_drained > 90) + essence_regen_cap += 15 + perfectsouls += 1 + src << "The perfection of [target]'s soul has increased your maximum essence level. Your new maximum essence is [essence_regen_cap]." + src << "[target]'s soul has been considerably weakened and will yield no more essence for the time being." + target.visible_message("[target] slumps onto the ground.", \ + "Violets lights, dancing in your vision, getting clo--") + drained_mobs.Add(target) + target.death(0) + else + qdel(B) + src << "[target ? "[target] has":"They have"] been drawn out of your grasp. The link has been broken." + draining = 0 + essence_drained = 0 + if(target) //Wait, target is WHERE NOW? + target.visible_message("[target] slumps onto the ground.", \ + "Violets lights, dancing in your vision, receding--") + return + else + src << "You are not close enough to siphon [target ? "[target]'s":"their"] soul. The link has been broken." + draining = 0 + essence_drained = 0 + return + draining = 0 + essence_drained = 0 + return + +//Toggle night vision: lets the revenant toggle its night vision +/obj/effect/proc_holder/spell/targeted/night_vision/revenant + charge_max = 0 + panel = "Revenant Abilities" + message = "You toggle your night vision." + action_icon_state = "r_nightvision" + action_background_icon_state = "bg_revenant" + +//Transmit: the revemant's only direct way to communicate. Sends a single message silently to a single mob +/obj/effect/proc_holder/spell/targeted/revenant_transmit + name = "Transmit" + desc = "Telepathically transmits a message to the target." + panel = "Revenant Abilities" + charge_max = 0 + clothes_req = 0 + range = 7 + include_user = 0 + action_icon_state = "r_transmit" + action_background_icon_state = "bg_revenant" + +/obj/effect/proc_holder/spell/targeted/revenant_transmit/cast(list/targets, mob/living/simple_animal/revenant/user = usr) + for(var/mob/living/M in targets) + var/msg = stripped_input(usr, "What do you wish to tell [M]?", null, "") + if(!msg) + charge_counter = charge_max + return + log_say("RevenantTransmit: [key_name(user)]->[key_name(M)] : [msg]") + user << "You transmit to [M]: [msg]" + M << "You hear something behind you talking... [msg]" + for(var/ded in dead_mob_list) + if(!isobserver(ded)) + continue + var/follow_rev = FOLLOW_LINK(ded, user) + var/follow_whispee = FOLLOW_LINK(ded, M) + ded << "[follow_rev] [user] Revenant Transmit: \"[msg]\" to [follow_whispee] [M]" + + + +/obj/effect/proc_holder/spell/aoe_turf/revenant + clothes_req = 0 + action_background_icon_state = "bg_revenant" + panel = "Revenant Abilities (Locked)" + name = "Report this to a coder" + var/reveal = 80 //How long it reveals the revenant in deciseconds + var/stun = 20 //How long it stuns the revenant in deciseconds + var/locked = 1 //If it's locked and needs to be unlocked before use + var/unlock_amount = 100 //How much essence it costs to unlock + var/cast_amount = 50 //How much essence it costs to use + +/obj/effect/proc_holder/spell/aoe_turf/revenant/New() + ..() + if(locked) + name = "[initial(name)] ([unlock_amount]E)" + else + name = "[initial(name)] ([cast_amount]E)" + +/obj/effect/proc_holder/spell/aoe_turf/revenant/can_cast(mob/living/simple_animal/revenant/user = usr) + if(!istype(user)) //Badmins, no. Badmins, don't do it. + if(charge_counter < charge_max) + return 0 + return 1 + if(user.inhibited) + return 0 + if(charge_counter < charge_max) + return 0 + if(locked) + if(user.essence <= unlock_amount) + return 0 + if(user.essence <= cast_amount) + return 0 + return 1 + +/obj/effect/proc_holder/spell/aoe_turf/revenant/proc/attempt_cast(mob/living/simple_animal/revenant/user = usr) + if(!istype(user)) //If you're not a revenant, it works. Please, please, please don't give this to a non-revenant. + name = "[initial(name)]" + if(locked) + panel = "Revenant Abilities" + locked = 0 + return 1 + if(locked) + if(!user.castcheck(-unlock_amount)) + charge_counter = charge_max + return 0 + name = "[initial(name)] ([cast_amount]E)" + user << "You have unlocked [initial(name)]!" + panel = "Revenant Abilities" + locked = 0 + charge_counter = charge_max + return 0 + if(!user.castcheck(-cast_amount)) + charge_counter = charge_max + return 0 + name = "[initial(name)] ([cast_amount]E)" + user.reveal(reveal) + user.stun(stun) + if(action) + action.UpdateButtonIcon() + return 1 + +//Overload Light: Breaks a light that's online and sends out lightning bolts to all nearby people. +/obj/effect/proc_holder/spell/aoe_turf/revenant/overload + name = "Overload Lights" + desc = "Directs a large amount of essence into nearby electrical lights, causing lights to shock those nearby." + charge_max = 200 + range = 5 + stun = 30 + cast_amount = 40 + var/shock_range = 2 + var/shock_damage = 15 + action_icon_state = "overload_lights" + +/obj/effect/proc_holder/spell/aoe_turf/revenant/overload/cast(list/targets, mob/living/simple_animal/revenant/user = usr) + if(attempt_cast(user)) + for(var/turf/T in targets) + addtimer(src, "overload", 0, FALSE, T, user) + +/obj/effect/proc_holder/spell/aoe_turf/revenant/overload/proc/overload(turf/T, mob/user) + for(var/obj/machinery/light/L in T) + if(!L.on) + return + L.visible_message("\The [L] suddenly flares brightly and begins to spark!") + var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread + s.set_up(4, 0, L) + s.start() + PoolOrNew(/obj/effect/overlay/temp/revenant, L.loc) + sleep(20) + if(!L.on) //wait, wait, don't shock me + return + flick("[L.base_state]2", L) + for(var/mob/living/carbon/human/M in view(shock_range, L)) + if(M == user) + continue + L.Beam(M,icon_state="purple_lightning",time=5) + M.electrocute_act(shock_damage, L, safety=1) + var/datum/effect_system/spark_spread/z = new /datum/effect_system/spark_spread + z.set_up(4, 0, M) + z.start() + playsound(M, 'sound/machines/defib_zap.ogg', 50, 1, -1) + +//Defile: Corrupts nearby stuff, unblesses floor tiles. +/obj/effect/proc_holder/spell/aoe_turf/revenant/defile + name = "Defile" + desc = "Twists and corrupts the nearby area as well as dispelling holy auras on floors." + charge_max = 150 + range = 4 + stun = 20 + reveal = 40 + unlock_amount = 75 + cast_amount = 30 + action_icon_state = "defile" + +/obj/effect/proc_holder/spell/aoe_turf/revenant/defile/cast(list/targets, mob/living/simple_animal/revenant/user = usr) + if(attempt_cast(user)) + for(var/turf/T in targets) + addtimer(src, "defile", 0, FALSE, T) + +/obj/effect/proc_holder/spell/aoe_turf/revenant/defile/proc/defile(turf/T) + if(T.flags & NOJAUNT) + T.flags -= NOJAUNT + PoolOrNew(/obj/effect/overlay/temp/revenant, T) + if(!istype(T, /turf/open/floor/plating) && !istype(T, /turf/open/floor/engine/cult) && isfloorturf(T) && prob(15)) + var/turf/open/floor/floor = T + if(floor.intact && floor.floor_tile) + PoolOrNew(floor.floor_tile, floor) + floor.broken = 0 + floor.burnt = 0 + floor.make_plating(1) + if(T.type == /turf/closed/wall && prob(15)) + PoolOrNew(/obj/effect/overlay/temp/revenant, T) + T.ChangeTurf(/turf/closed/wall/rust) + if(T.type == /turf/closed/wall/r_wall && prob(10)) + PoolOrNew(/obj/effect/overlay/temp/revenant, T) + T.ChangeTurf(/turf/closed/wall/r_wall/rust) + for(var/obj/structure/closet/closet in T.contents) + closet.open() + for(var/obj/structure/bodycontainer/corpseholder in T) + if(corpseholder.connected.loc == corpseholder) + corpseholder.open() + for(var/obj/machinery/dna_scannernew/dna in T) + dna.open_machine() + for(var/obj/structure/window/window in T) + window.take_damage(rand(30,80)) + if(window && window.fulltile) + PoolOrNew(/obj/effect/overlay/temp/revenant/cracks, window.loc) + for(var/obj/machinery/light/light in T) + light.flicker(20) //spooky + +//Malfunction: Makes bad stuff happen to robots and machines. +/obj/effect/proc_holder/spell/aoe_turf/revenant/malfunction + name = "Malfunction" + desc = "Corrupts and damages nearby machines and mechanical objects." + charge_max = 200 + range = 4 + cast_amount = 60 + unlock_amount = 200 + action_icon_state = "malfunction" + +//A note to future coders: do not replace this with an EMP because it will wreck malf AIs and gang dominators and everyone will hate you. +/obj/effect/proc_holder/spell/aoe_turf/revenant/malfunction/cast(list/targets, mob/living/simple_animal/revenant/user = usr) + if(attempt_cast(user)) + for(var/turf/T in targets) + addtimer(src, "malfunction", 0, FALSE, T, user) + +/obj/effect/proc_holder/spell/aoe_turf/revenant/malfunction/proc/malfunction(turf/T, mob/user) + for(var/mob/living/simple_animal/bot/bot in T) + if(!bot.emagged) + PoolOrNew(/obj/effect/overlay/temp/revenant, bot.loc) + bot.locked = 0 + bot.open = 1 + bot.emag_act() + for(var/mob/living/carbon/human/human in T) + if(human == user) + continue + human << "You feel [pick("your sense of direction flicker out", "a stabbing pain in your head", "your mind fill with static")]." + PoolOrNew(/obj/effect/overlay/temp/revenant, human.loc) + human.emp_act(1) + for(var/obj/thing in T) + if(istype(thing, /obj/machinery/dominator) || istype(thing, /obj/machinery/power/apc) || istype(thing, /obj/machinery/power/smes)) //Doesn't work on dominators, SMES and APCs, to prevent kekkery + continue + if(prob(20)) + if(prob(50)) + PoolOrNew(/obj/effect/overlay/temp/revenant, thing.loc) + thing.emag_act(null) + else + if(!istype(thing, /obj/machinery/clonepod)) //I hate everything but mostly the fact there's no better way to do this without just not affecting it at all + thing.emp_act(1) + for(var/mob/living/silicon/robot/S in T) //Only works on cyborgs, not AI + playsound(S, 'sound/machines/warning-buzzer.ogg', 50, 1) + PoolOrNew(/obj/effect/overlay/temp/revenant, S.loc) + S.spark_system.start() + S.emp_act(1) + +//Blight: Infects nearby humans and in general messes living stuff up. +/obj/effect/proc_holder/spell/aoe_turf/revenant/blight + name = "Blight" + desc = "Causes nearby living things to waste away." + charge_max = 200 + range = 3 + cast_amount = 50 + unlock_amount = 200 + action_icon_state = "blight" + +/obj/effect/proc_holder/spell/aoe_turf/revenant/blight/cast(list/targets, mob/living/simple_animal/revenant/user = usr) + if(attempt_cast(user)) + for(var/turf/T in targets) + addtimer(src, "blight", 0, FALSE, T, user) + +/obj/effect/proc_holder/spell/aoe_turf/revenant/blight/proc/blight(turf/T, mob/user) + for(var/mob/living/mob in T) + if(mob == user) + continue + PoolOrNew(/obj/effect/overlay/temp/revenant, mob.loc) + if(iscarbon(mob)) + if(ishuman(mob)) + var/mob/living/carbon/human/H = mob + if(H.dna && H.dna.species) + H.dna.species.handle_hair(H,"#1d2953") //will be reset when blight is cured + var/blightfound = 0 + for(var/datum/disease/revblight/blight in H.viruses) + blightfound = 1 + if(blight.stage < 5) + blight.stage++ + if(!blightfound) + H.AddDisease(new /datum/disease/revblight) + H << "You feel [pick("suddenly sick", "a surge of nausea", "like your skin is wrong")]." + else + if(mob.reagents) + mob.reagents.add_reagent("plasma", 5) + else + mob.adjustToxLoss(5) + for(var/obj/structure/spacevine/vine in T) //Fucking with botanists, the ability. + vine.add_atom_colour("#823abb", TEMPORARY_COLOUR_PRIORITY) + PoolOrNew(/obj/effect/overlay/temp/revenant, vine.loc) + QDEL_IN(vine, 10) + for(var/obj/structure/glowshroom/shroom in T) + shroom.add_atom_colour("#823abb", TEMPORARY_COLOUR_PRIORITY) + PoolOrNew(/obj/effect/overlay/temp/revenant, shroom.loc) + QDEL_IN(shroom, 10) + for(var/obj/machinery/hydroponics/tray in T) + PoolOrNew(/obj/effect/overlay/temp/revenant, tray.loc) + tray.pestlevel = rand(8, 10) + tray.weedlevel = rand(8, 10) + tray.toxic = rand(45, 55) diff --git a/code/game/gamemodes/miniantags/revenant/revenant_blight.dm b/code/game/gamemodes/miniantags/revenant/revenant_blight.dm new file mode 100644 index 0000000..7940bbf --- /dev/null +++ b/code/game/gamemodes/miniantags/revenant/revenant_blight.dm @@ -0,0 +1,67 @@ +/datum/disease/revblight + name = "Unnatural Wasting" + max_stages = 5 + stage_prob = 10 + spread_flags = NON_CONTAGIOUS + cure_text = "Holy water or extensive rest." + spread_text = "A burst of unholy energy" + cures = list("holywater") + cure_chance = 50 //higher chance to cure, because revenants are assholes + agent = "Unholy Forces" + viable_mobtypes = list(/mob/living/carbon/human) + disease_flags = CURABLE + permeability_mod = 1 + severity = BIOHAZARD + var/stagedamage = 0 //Highest stage reached. + var/finalstage = 0 //Because we're spawning off the cure in the final stage, we need to check if we've done the final stage's effects. + +/datum/disease/revblight/cure() + if(affected_mob) + affected_mob.remove_atom_colour(TEMPORARY_COLOUR_PRIORITY, "#1d2953") + if(affected_mob.dna && affected_mob.dna.species) + affected_mob.dna.species.handle_mutant_bodyparts(affected_mob) + affected_mob.dna.species.handle_hair(affected_mob) + affected_mob << "You feel better." + ..() + +/datum/disease/revblight/stage_act() + if(!finalstage) + if(affected_mob.lying && prob(stage*6)) + cure() + return + if(prob(stage*3)) + affected_mob << "You suddenly feel [pick("sick and tired", "disoriented", "tired and confused", "nauseated", "faint", "dizzy")]..." + affected_mob.confused += 8 + affected_mob.adjustStaminaLoss(8) + PoolOrNew(/obj/effect/overlay/temp/revenant, affected_mob.loc) + if(stagedamage < stage) + stagedamage++ + affected_mob.adjustToxLoss(stage*2) //should, normally, do about 30 toxin damage. + PoolOrNew(/obj/effect/overlay/temp/revenant, affected_mob.loc) + if(prob(45)) + affected_mob.adjustStaminaLoss(stage) + ..() //So we don't increase a stage before applying the stage damage. + switch(stage) + if(2) + if(prob(5)) + affected_mob.emote("pale") + if(3) + if(prob(10)) + affected_mob.emote(pick("pale","shiver")) + if(4) + if(prob(15)) + affected_mob.emote(pick("pale","shiver","cries")) + if(5) + if(!finalstage) + finalstage = 1 + affected_mob << "You feel like [pick("nothing's worth it anymore", "nobody ever needed your help", "nothing you did mattered", "everything you tried to do was worthless")]." + affected_mob.adjustStaminaLoss(45) + PoolOrNew(/obj/effect/overlay/temp/revenant, affected_mob.loc) + if(affected_mob.dna && affected_mob.dna.species) + affected_mob.dna.species.handle_mutant_bodyparts(affected_mob,"#1d2953") + affected_mob.dna.species.handle_hair(affected_mob,"#1d2953") + affected_mob.visible_message("[affected_mob] looks terrifyingly gaunt...", "You suddenly feel like your skin is wrong...") + affected_mob.add_atom_colour("#1d2953", TEMPORARY_COLOUR_PRIORITY) + addtimer(src, "cure", 100, FALSE) + else + return diff --git a/code/game/gamemodes/miniantags/revenant/revenant_spawn_event.dm b/code/game/gamemodes/miniantags/revenant/revenant_spawn_event.dm new file mode 100644 index 0000000..8bfb458 --- /dev/null +++ b/code/game/gamemodes/miniantags/revenant/revenant_spawn_event.dm @@ -0,0 +1,58 @@ +#define REVENANT_SPAWN_THRESHOLD 20 + +/datum/round_event_control/revenant + name = "Spawn Revenant" // Did you mean 'griefghost'? + typepath = /datum/round_event/ghost_role/revenant + weight = 7 + max_occurrences = 1 + earliest_start = 12000 //Meant to mix things up early-game. + min_players = 5 + + +/datum/round_event/ghost_role/revenant + var/ignore_mobcheck = FALSE + role_name = "revenant" + +/datum/round_event/ghost_role/revenant/New(my_processing = TRUE, new_ignore_mobcheck = FALSE) + ..() + ignore_mobcheck = new_ignore_mobcheck + +/datum/round_event/ghost_role/revenant/spawn_role() + if(!ignore_mobcheck) + var/deadMobs = 0 + for(var/mob/M in dead_mob_list) + deadMobs++ + if(deadMobs < REVENANT_SPAWN_THRESHOLD) + message_admins("Event attempted to spawn a revenant, but there were only [deadMobs]/[REVENANT_SPAWN_THRESHOLD] dead mobs.") + return WAITING_FOR_SOMETHING + + var/list/candidates = get_candidates("revenant", null, ROLE_REVENANT) + if(!candidates.len) + return NOT_ENOUGH_PLAYERS + + var/mob/dead/observer/selected = pick_n_take(candidates) + + var/list/spawn_locs = list() + + for(var/obj/effect/landmark/L in landmarks_list) + if(isturf(L.loc)) + switch(L.name) + if("revenantspawn") + spawn_locs += L.loc + if(!spawn_locs) //If we can't find any revenant spawns, try the carp spawns + for(var/obj/effect/landmark/L in landmarks_list) + if(isturf(L.loc)) + switch(L.name) + if("carpspawn") + spawn_locs += L.loc + if(!spawn_locs) //If we can't find either, just spawn the revenant at the player's location + spawn_locs += get_turf(selected) + if(!spawn_locs) //If we can't find THAT, then just give up and cry + return MAP_ERROR + + var/mob/living/simple_animal/revenant/revvie = new /mob/living/simple_animal/revenant/(pick(spawn_locs)) + revvie.key = selected.key + message_admins("[revvie.key] has been made into a revenant by an event.") + log_game("[revvie.key] was spawned as a revenant by an event.") + spawned_mobs += revvie + return SUCCESSFUL_SPAWN diff --git a/code/game/gamemodes/miniantags/sintouched/objectives.dm b/code/game/gamemodes/miniantags/sintouched/objectives.dm new file mode 100644 index 0000000..8657278 --- /dev/null +++ b/code/game/gamemodes/miniantags/sintouched/objectives.dm @@ -0,0 +1,35 @@ +/datum/objective/sintouched + dangerrating = 5 + completed = 1 + +/* NO ERP OBJECTIVE FOR YOU. +/datum/objective/sintouched/lust + dangerrating = 3 // it's not AS dangerous. + +/datum/objective/sintouched/lust/New() + var/mob/dead/D = pick(dead_mob_list) + if(prob(50) && D) + explanation_text = "You know that [D] has perished.... and you think [D] is kinda cute. Make sure everyone knows how HOT [D]'s lifeless body is." + else + explanation_text = "Go get married, then immediately cheat on your new spouse." */ + +/datum/objective/sintouched/gluttony + explanation_text = "Everything is so delicious. Go eat everything." + +/datum/objective/sintouched/greed + explanation_text = "You want MORE, more money, more wealth, more riches. Go get it, but don't hurt people for it." + +/datum/objective/sintouched/sloth + explanation_text = "You just get tired randomly. Go take a nap at a time that would inconvenience other people." + +/datum/objective/sintouched/wrath + explanation_text = "What have your coworkers ever done for you? Don't offer to help them in any matter, and refuse if asked." + +/datum/objective/sintouched/envy + explanation_text = "Why should you be stuck with your rank? Show everyone you can do other jobs too, and don't let anyone stop you, least of all because you have no training" + +/datum/objective/sintouched/pride + explanation_text = "You are the BEST thing on the station. Make sure everyone knows it." + +/datum/objective/sintouched/acedia + explanation_text = "Angels, devils, good, evil... who cares? Just ignore any hellish threats and do your job." \ No newline at end of file diff --git a/code/game/gamemodes/miniantags/slaughter/slaughter.dm b/code/game/gamemodes/miniantags/slaughter/slaughter.dm new file mode 100644 index 0000000..e424b85 --- /dev/null +++ b/code/game/gamemodes/miniantags/slaughter/slaughter.dm @@ -0,0 +1,192 @@ +//////////////////The Monster + +/mob/living/simple_animal/slaughter + name = "slaughter demon" + real_name = "slaughter demon" + desc = "A large, menacing creature covered in armored black scales." + speak_emote = list("gurgles") + emote_hear = list("wails","screeches") + response_help = "thinks better of touching" + response_disarm = "flails at" + response_harm = "punches" + icon = 'icons/mob/mob.dmi' + icon_state = "daemon" + icon_living = "daemon" + speed = 1 + a_intent = "harm" + stop_automated_movement = 1 + status_flags = CANPUSH + attack_sound = 'sound/magic/demon_attack1.ogg' + var/feast_sound = 'sound/magic/Demon_consume.ogg' + death_sound = 'sound/magic/demon_dies.ogg' + atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) + minbodytemp = 0 + maxbodytemp = INFINITY + faction = list("slaughter") + attacktext = "wildly tears into" + maxHealth = 200 + health = 200 + healable = 0 + environment_smash = 1 + obj_damage = 50 + melee_damage_lower = 30 + melee_damage_upper = 30 + see_in_dark = 8 + var/boost = 0 + bloodcrawl = BLOODCRAWL_EAT + see_invisible = SEE_INVISIBLE_MINIMUM + var/playstyle_string = "You are a slaughter demon, a terrible creature from another realm. You have a single desire: To kill. \ + You may use the \"Blood Crawl\" ability near blood pools to travel through them, appearing and disappearing from the station at will. \ + Pulling a dead or unconscious mob while you enter a pool will pull them in with you, allowing you to feast and regain your health. \ + You move quickly upon leaving a pool of blood, but the material world will soon sap your strength and leave you sluggish. " + + loot = list(/obj/effect/decal/cleanable/blood, \ + /obj/effect/decal/cleanable/blood/innards, \ + /obj/item/organ/heart/demon) + del_on_death = 1 + deathmessage = "screams in anger as it collapses into a puddle of viscera!" + +/mob/living/simple_animal/slaughter/New() + ..() + var/obj/effect/proc_holder/spell/bloodcrawl/bloodspell = new + AddSpell(bloodspell) + if(istype(loc, /obj/effect/dummy/slaughter)) + bloodspell.phased = 1 + +/mob/living/simple_animal/slaughter/Life() + ..() + if(boost[user] raises [src] to their mouth and tears into it with their teeth!
    ", \ + "An unnatural hunger consumes you. You raise [src] your mouth and devour it!") + playsound(user, 'sound/magic/Demon_consume.ogg', 50, 1) + for(var/obj/effect/proc_holder/spell/knownspell in user.mind.spell_list) + if(knownspell.type == /obj/effect/proc_holder/spell/bloodcrawl) + user <<"...and you don't feel any different." + qdel(src) + return + user.visible_message("[user]'s eyes flare a deep crimson!", \ + "You feel a strange power seep into your body... you have absorbed the demon's blood-travelling powers!") + user.drop_item() + src.Insert(user) //Consuming the heart literally replaces your heart with a demon heart. H A R D C O R E + +/obj/item/organ/heart/demon/Insert(mob/living/carbon/M, special = 0) + ..() + if(M.mind) + M.mind.AddSpell(new /obj/effect/proc_holder/spell/bloodcrawl(null)) + +/obj/item/organ/heart/demon/Remove(mob/living/carbon/M, special = 0) + ..() + if(M.mind) + M.mind.RemoveSpell(/obj/effect/proc_holder/spell/bloodcrawl) + +/obj/item/organ/heart/demon/Stop() + return 0 // Always beating. + +/mob/living/simple_animal/slaughter/laughter + // The laughter demon! It's everyone's best friend! It just wants to hug + // them so much, it wants to hug everyone at once! + name = "laughter demon" + real_name = "laughter demon" + desc = "A large, adorable creature covered in armor with pink bows." + speak_emote = list("giggles","titters","chuckles") + emote_hear = list("gaffaws","laughs") + response_help = "hugs" + attacktext = "wildly tickles" + + attack_sound = 'sound/items/bikehorn.ogg' + feast_sound = 'sound/spookoween/scary_horn2.ogg' + death_sound = 'sound/misc/sadtrombone.ogg' + + icon_state = "bowmon" + icon_living = "bowmon" + deathmessage = "fades out, as all of its friends are released from its \ + prison of hugs." + loot = list(/mob/living/simple_animal/pet/cat/kitten{name = "Laughter"}) + + // Keep the people we hug! + var/list/consumed_mobs = list() + + playstyle_string = "You are a laughter \ + demon, a wonderful creature from another realm. You have a single \ + desire: To hug and tickle.
    \ + You may use the \"Blood Crawl\" ability near blood pools to travel \ + through them, appearing and disappearing from the station at will. \ + Pulling a dead or unconscious mob while you enter a pool will pull \ + them in with you, allowing you to hug them and regain your health.
    \ + You move quickly upon leaving a pool of blood, but the material world \ + will soon sap your strength and leave you sluggish.
    \ + What makes you a little sad is that people seem to die when you tickle \ + them; but don't worry! When you die, everyone you hugged will be \ + released and fully healed, because in the end it's just a jape, \ + sibling!
    " + +/mob/living/simple_animal/slaughter/laughter/Destroy() + release_friends() + . = ..() + +/mob/living/simple_animal/slaughter/laughter/ex_act(severity) + switch(severity) + if(1) + death() + if(2) + adjustBruteLoss(60) + if(3) + adjustBruteLoss(30) + +/mob/living/simple_animal/slaughter/laughter/proc/release_friends() + if(!consumed_mobs) + return + + for(var/mob/living/M in consumed_mobs) + if(!M) + continue + var/turf/T = find_safe_turf() + if(!T) + T = get_turf(src) + M.forceMove(T) + if(M.revive(full_heal = TRUE, admin_revive = TRUE)) + M.grab_ghost(force = TRUE) + playsound(T, feast_sound, 50, 1, -1) + M << "You leave [src]'s warm embrace, \ + and feel ready to take on the world." + +/mob/living/simple_animal/slaughter/laughter/bloodcrawl_swallow(var/mob/living/victim) + if(consumed_mobs) + // Keep their corpse so rescue is possible + consumed_mobs += victim + else + // Be safe and just eject the corpse + victim.forceMove(get_turf(victim)) + victim.exit_blood_effect() + victim.visible_message("[victim] falls out of the air, covered in blood, looking highly confused. And dead.") diff --git a/code/game/gamemodes/miniantags/slaughter/slaughterevent.dm b/code/game/gamemodes/miniantags/slaughter/slaughterevent.dm new file mode 100644 index 0000000..1d560ed --- /dev/null +++ b/code/game/gamemodes/miniantags/slaughter/slaughterevent.dm @@ -0,0 +1,49 @@ +/datum/round_event_control/slaughter + name = "Spawn Slaughter Demon" + typepath = /datum/round_event/ghost_role/slaughter + weight = 1 //Very rare + max_occurrences = 1 + earliest_start = 36000 //1 hour + min_players = 20 + + + +/datum/round_event/ghost_role/slaughter + minimum_required = 1 + role_name = "slaughter demon" + +/datum/round_event/ghost_role/slaughter/spawn_role() + var/list/candidates = get_candidates("alien", null, ROLE_ALIEN) + if(!candidates.len) + return NOT_ENOUGH_PLAYERS + + var/mob/dead/selected = pick_n_take(candidates) + + var/datum/mind/player_mind = new /datum/mind(selected.key) + player_mind.active = 1 + + var/list/spawn_locs = list() + for(var/obj/effect/landmark/L in landmarks_list) + if(isturf(L.loc)) + switch(L.name) + if("carpspawn") + spawn_locs += L.loc + + if(!spawn_locs) + message_admins("No valid spawn locations found, aborting...") + return MAP_ERROR + + var /obj/effect/dummy/slaughter/holder = PoolOrNew(/obj/effect/dummy/slaughter,(pick(spawn_locs))) + var/mob/living/simple_animal/slaughter/S = new /mob/living/simple_animal/slaughter/(holder) + S.holder = holder + player_mind.transfer_to(S) + player_mind.assigned_role = "Slaughter Demon" + player_mind.special_role = "Slaughter Demon" + ticker.mode.traitors |= player_mind + S << S.playstyle_string + S << "You are currently not currently in the same plane of existence as the station. Blood Crawl near a blood pool to manifest." + S << 'sound/magic/demon_dies.ogg' + message_admins("[selected] has been made into a slaughter demon by an event.") + log_game("[selected] was spawned as a slaughter demon by an event.") + spawned_mobs += S + return SUCCESSFUL_SPAWN diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm new file mode 100644 index 0000000..c07253e --- /dev/null +++ b/code/game/gamemodes/nuclear/nuclear.dm @@ -0,0 +1,347 @@ +/datum/game_mode + var/list/datum/mind/syndicates = list() + var/nukeops_lastname = "" + +/datum/game_mode/nuclear + name = "nuclear emergency" + config_tag = "nuclear" + required_players = 30 // 30 players - 3 players to be the nuke ops = 27 players remaining + required_enemies = 2 + recommended_enemies = 5 + antag_flag = ROLE_OPERATIVE + enemy_minimum_age = 14 + + announce_span = "danger" + announce_text = "Syndicate forces are approaching the station in an attempt to destroy it!\n\ + Operatives: Secure the nuclear authentication disk and use your nuke to destroy the station.\n\ + Crew: Defend the nuclear authentication disk and ensure that it leaves with you on the emergency shuttle." + + var/const/agents_possible = 5 //If we ever need more syndicate agents. + + var/nukes_left = 1 // Call 3714-PRAY right now and order more nukes! Limited offer! + var/nuke_off_station = 0 //Used for tracking if the syndies actually haul the nuke to the station + var/syndies_didnt_escape = 0 //Used for tracking if the syndies got the shuttle off of the z-level + +/datum/game_mode/nuclear/pre_setup() + var/n_players = num_players() + var/n_agents = min(round(n_players / 10, 1), agents_possible) + + if(antag_candidates.len < n_agents) //In the case of having less candidates than the selected number of agents + n_agents = antag_candidates.len + + while(n_agents > 0) + var/datum/mind/new_syndicate = pick(antag_candidates) + syndicates += new_syndicate + antag_candidates -= new_syndicate //So it doesn't pick the same guy each time. + n_agents-- + + for(var/datum/mind/synd_mind in syndicates) + synd_mind.assigned_role = "Syndicate" + synd_mind.special_role = "Syndicate"//So they actually have a special role/N + log_game("[synd_mind.key] (ckey) has been selected as a nuclear operative") + + return 1 + + +//////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////// +/datum/game_mode/proc/update_synd_icons_added(datum/mind/synd_mind) + var/datum/atom_hud/antag/opshud = huds[ANTAG_HUD_OPS] + opshud.join_hud(synd_mind.current) + set_antag_hud(synd_mind.current, "synd") + +/datum/game_mode/proc/update_synd_icons_removed(datum/mind/synd_mind) + var/datum/atom_hud/antag/opshud = huds[ANTAG_HUD_OPS] + opshud.leave_hud(synd_mind.current) + set_antag_hud(synd_mind.current, null) + +//////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////// + +/datum/game_mode/nuclear/post_setup() + + var/list/turf/synd_spawn = list() + + for(var/obj/effect/landmark/A in landmarks_list) + if(A.name == "Syndicate-Spawn") + synd_spawn += get_turf(A) + continue + + var/nuke_code = random_nukecode() + var/leader_selected = 0 + var/agent_number = 1 + var/spawnpos = 1 + + for(var/datum/mind/synd_mind in syndicates) + if(spawnpos > synd_spawn.len) + spawnpos = 2 + synd_mind.current.loc = synd_spawn[spawnpos] + + forge_syndicate_objectives(synd_mind) + greet_syndicate(synd_mind) + equip_syndicate(synd_mind.current) + + if(nuke_code) + synd_mind.store_memory("Syndicate Nuclear Bomb Code: [nuke_code]", 0, 0) + synd_mind.current << "The nuclear authorization code is: [nuke_code]" + + if(!leader_selected) + prepare_syndicate_leader(synd_mind, nuke_code) + leader_selected = 1 + else + synd_mind.current.real_name = "[syndicate_name()] Operative #[agent_number]" + agent_number++ + spawnpos++ + update_synd_icons_added(synd_mind) + var/obj/machinery/nuclearbomb/nuke = locate("syndienuke") in nuke_list + if(nuke) + nuke.r_code = nuke_code + return ..() + + +/datum/game_mode/proc/prepare_syndicate_leader(datum/mind/synd_mind, nuke_code) + var/leader_title = pick("Czar", "Boss", "Commander", "Chief", "Kingpin", "Director", "Overlord") + spawn(1) + nukeops_lastname = nukelastname(synd_mind.current) + NukeNameAssign(nukeops_lastname,syndicates) //allows time for the rest of the syndies to be chosen + synd_mind.current.real_name = "[syndicate_name()] [leader_title]" + synd_mind.current << "You are the Syndicate [leader_title] for this mission. You are responsible for the distribution of telecrystals and your ID is the only one who can open the launch bay doors." + synd_mind.current << "If you feel you are not up to this task, give your ID to another operative." + synd_mind.current << "In your hand you will find a special item capable of triggering a greater challenge for your team. Examine it carefully and consult with your fellow operatives before activating it." + + var/obj/item/device/nuclear_challenge/challenge = new /obj/item/device/nuclear_challenge + synd_mind.current.put_in_hands_or_del(challenge) + + var/list/foundIDs = synd_mind.current.search_contents_for(/obj/item/weapon/card/id) + if(foundIDs.len) + for(var/obj/item/weapon/card/id/ID in foundIDs) + ID.name = "lead agent card" + ID.access += access_syndicate_leader + else + message_admins("Warning: Nuke Ops spawned without access to leave their spawn area!") + + var/obj/item/device/radio/headset/syndicate/alt/A = locate() in synd_mind.current + if(A) + A.command = TRUE + + if(nuke_code) + var/obj/item/weapon/paper/P = new + P.info = "The nuclear authorization code is: [nuke_code]" + P.name = "nuclear bomb code" + var/mob/living/carbon/human/H = synd_mind.current + P.loc = H.loc + H.put_in_hands_or_del(P) + H.update_icons() + else + nuke_code = "code will be provided later" + return + + + +/datum/game_mode/proc/forge_syndicate_objectives(datum/mind/syndicate) + var/datum/objective/nuclear/syndobj = new + syndobj.owner = syndicate + syndicate.objectives += syndobj + + +/datum/game_mode/proc/greet_syndicate(datum/mind/syndicate, you_are=1) + if(you_are) + syndicate.current << "You are a [syndicate_name()] agent!" + syndicate.announce_objectives() + +/datum/game_mode/proc/equip_syndicate(mob/living/carbon/human/synd_mob, telecrystals = TRUE) + synd_mob.set_species(/datum/species/human) //Plasamen burn up otherwise, and lizards are vulnerable to asimov AIs + + if(telecrystals) + synd_mob.equipOutfit(/datum/outfit/syndicate) + else + synd_mob.equipOutfit(/datum/outfit/syndicate/no_crystals) + return 1 + + +/datum/game_mode/nuclear/check_win() + if (nukes_left == 0) + return 1 + return ..() + +/datum/game_mode/proc/are_operatives_dead() + for(var/datum/mind/operative_mind in syndicates) + if(ishuman(operative_mind.current) && (operative_mind.current.stat!=2)) + return 0 + return 1 + +/datum/game_mode/nuclear/check_finished() //to be called by ticker + if(replacementmode && round_converted == 2) + return replacementmode.check_finished() + if((SSshuttle.emergency.mode == SHUTTLE_ENDGAME) || station_was_nuked) + return 1 + if(are_operatives_dead()) + if(bomb_set) //snaaaaaaaaaake! It's not over yet! + return 0 + ..() + +/datum/game_mode/nuclear/declare_completion() + var/disk_rescued = 1 + for(var/obj/item/weapon/disk/nuclear/D in poi_list) + if(!D.onCentcom()) + disk_rescued = 0 + break + var/crew_evacuated = (SSshuttle.emergency.mode == SHUTTLE_ENDGAME) + //var/operatives_are_dead = is_operatives_are_dead() + + + //nukes_left + //station_was_nuked + //derp //Used for tracking if the syndies actually haul the nuke to the station //no + //herp //Used for tracking if the syndies got the shuttle off of the z-level //NO, DON'T FUCKING NAME VARS LIKE THIS + + if (!disk_rescued && station_was_nuked && !syndies_didnt_escape) + feedback_set_details("round_end_result","win - syndicate nuke") + world << "Syndicate Major Victory!" + world << "[syndicate_name()] operatives have destroyed [station_name()]!" + + else if (!disk_rescued && station_was_nuked && syndies_didnt_escape) + feedback_set_details("round_end_result","halfwin - syndicate nuke - did not evacuate in time") + world << "Total Annihilation" + world << "[syndicate_name()] operatives destroyed [station_name()] but did not leave the area in time and got caught in the explosion. Next time, don't lose the disk!" + + else if (!disk_rescued && !station_was_nuked && nuke_off_station && !syndies_didnt_escape) + feedback_set_details("round_end_result","halfwin - blew wrong station") + world << "Crew Minor Victory" + world << "[syndicate_name()] operatives secured the authentication disk but blew up something that wasn't [station_name()]. Next time, don't lose the disk!" + + else if (!disk_rescued && !station_was_nuked && nuke_off_station && syndies_didnt_escape) + feedback_set_details("round_end_result","halfwin - blew wrong station - did not evacuate in time") + world << "[syndicate_name()] operatives have earned Darwin Award!" + world << "[syndicate_name()] operatives blew up something that wasn't [station_name()] and got caught in the explosion. Next time, don't lose the disk!" + + else if ((disk_rescued || SSshuttle.emergency.mode != SHUTTLE_ENDGAME) && are_operatives_dead()) + feedback_set_details("round_end_result","loss - evacuation - disk secured - syndi team dead") + world << "Crew Major Victory!" + world << "The Research Staff has saved the disc and killed the [syndicate_name()] Operatives" + + else if (disk_rescued) + feedback_set_details("round_end_result","loss - evacuation - disk secured") + world << "Crew Major Victory" + world << "The Research Staff has saved the disc and stopped the [syndicate_name()] Operatives!" + + else if (!disk_rescued && are_operatives_dead()) + feedback_set_details("round_end_result","halfwin - evacuation - disk not secured") + world << "Neutral Victory!" + world << "The Research Staff failed to secure the authentication disk but did manage to kill most of the [syndicate_name()] Operatives!" + + else if (!disk_rescued && crew_evacuated) + feedback_set_details("round_end_result","halfwin - detonation averted") + world << "Syndicate Minor Victory!" + world << "[syndicate_name()] operatives recovered the abandoned authentication disk but detonation of [station_name()] was averted. Next time, don't lose the disk!" + + else if (!disk_rescued && !crew_evacuated) + feedback_set_details("round_end_result","halfwin - interrupted") + world << "Neutral Victory" + world << "Round was mysteriously interrupted!" + + ..() + return + + +/datum/game_mode/proc/auto_declare_completion_nuclear() + if( syndicates.len || (ticker && istype(ticker.mode,/datum/game_mode/nuclear)) ) + var/text = "
    The syndicate operatives were:" + var/purchases = "" + var/TC_uses = 0 + for(var/datum/mind/syndicate in syndicates) + text += printplayer(syndicate) + for(var/obj/item/device/uplink/H in uplinks) + if(H && H.owner && H.owner == syndicate.key) + TC_uses += H.spent_telecrystals + purchases += H.purchase_log + text += "
    " + text += "(Syndicates used [TC_uses] TC) [purchases]" + if(TC_uses == 0 && station_was_nuked && !are_operatives_dead()) + text += "" + world << text + return 1 + + +/proc/nukelastname(mob/M) //--All praise goes to NEO|Phyte, all blame goes to DH, and it was Cindi-Kate's idea. Also praise Urist for copypasta ho. + var/randomname = pick(last_names) + var/newname = copytext(sanitize(input(M,"You are the nuke operative [pick("Czar", "Boss", "Commander", "Chief", "Kingpin", "Director", "Overlord")]. Please choose a last name for your family.", "Name change",randomname)),1,MAX_NAME_LEN) + + if (!newname) + newname = randomname + + else + if (newname == "Unknown" || newname == "floor" || newname == "wall" || newname == "rwall" || newname == "_") + M << "That name is reserved." + return nukelastname(M) + + return capitalize(newname) + +/proc/NukeNameAssign(lastname,list/syndicates) + for(var/datum/mind/synd_mind in syndicates) + var/mob/living/carbon/human/H = synd_mind.current + synd_mind.name = H.dna.species.random_name(H.gender,0,lastname) + synd_mind.current.real_name = synd_mind.name + return + +/proc/is_nuclear_operative(mob/M) + return M && istype(M) && M.mind && ticker && ticker.mode && M.mind in ticker.mode.syndicates + +/datum/outfit/syndicate + name = "Syndicate Operative - Basic" + + uniform = /obj/item/clothing/under/syndicate + shoes = /obj/item/clothing/shoes/combat + gloves = /obj/item/clothing/gloves/combat + back = /obj/item/weapon/storage/backpack + ears = /obj/item/device/radio/headset/syndicate/alt + l_pocket = /obj/item/weapon/pinpointer/syndicate + id = /obj/item/weapon/card/id/syndicate + belt = /obj/item/weapon/gun/projectile/automatic/pistol + backpack_contents = list(/obj/item/weapon/storage/box/syndie=1) + + var/tc = 25 + +/datum/outfit/syndicate/no_crystals + tc = 0 + + +/datum/outfit/syndicate/post_equip(mob/living/carbon/human/H) + var/obj/item/device/radio/R = H.ears + R.set_frequency(SYND_FREQ) + R.freqlock = 1 + + if(tc) + var/obj/item/device/radio/uplink/nuclear/U = new(H) + U.hidden_uplink.owner = "[H.key]" + U.hidden_uplink.telecrystals = tc + H.equip_to_slot_or_del(U, slot_in_backpack) + + var/obj/item/weapon/implant/weapons_auth/W = new/obj/item/weapon/implant/weapons_auth(H) + W.implant(H) + var/obj/item/weapon/implant/explosive/E = new/obj/item/weapon/implant/explosive(H) + E.implant(H) + H.faction |= "syndicate" + H.update_icons() + +/datum/outfit/syndicate/full + name = "Syndicate Operative - Full Kit" + + glasses = /obj/item/clothing/glasses/night + mask = /obj/item/clothing/mask/gas/syndicate + suit = /obj/item/clothing/suit/space/hardsuit/syndi + r_pocket = /obj/item/weapon/tank/internals/emergency_oxygen/engi + belt = /obj/item/weapon/storage/belt/military + r_hand = /obj/item/weapon/gun/projectile/automatic/shotgun/bulldog + backpack_contents = list(/obj/item/weapon/storage/box/syndie=1,\ + /obj/item/weapon/tank/jetpack/oxygen/harness=1,\ + /obj/item/weapon/gun/projectile/automatic/pistol=1) + +/datum/outfit/syndicate/full/post_equip(mob/living/carbon/human/H) + ..() + + + var/obj/item/clothing/suit/space/hardsuit/syndi/suit = H.wear_suit + suit.ToggleHelmet() + + H.internal = H.r_store diff --git a/code/game/gamemodes/nuclear/nuclear_challenge.dm b/code/game/gamemodes/nuclear/nuclear_challenge.dm new file mode 100644 index 0000000..cfe00c0 --- /dev/null +++ b/code/game/gamemodes/nuclear/nuclear_challenge.dm @@ -0,0 +1,65 @@ +#define CHALLENGE_TELECRYSTALS 280 +#define CHALLENGE_TIME_LIMIT 3000 +#define CHALLENGE_MIN_PLAYERS 50 +#define CHALLENGE_SHUTTLE_DELAY 15000 // 25 minutes, so the ops have at least 5 minutes before the shuttle is callable. + +/obj/item/device/nuclear_challenge + name = "Declaration of War (Challenge Mode)" + icon_state = "gangtool-red" + item_state = "walkietalkie" + desc = "Use to send a declaration of hostilities to the target, delaying your shuttle departure for 20 minutes while they prepare for your assault. \ + Such a brazen move will attract the attention of powerful benefactors within the Syndicate, who will supply your team with a massive amount of bonus telecrystals. \ + Must be used within five minutes, or your benefactors will lose interest." + var/declaring_war = 0 + +/obj/item/device/nuclear_challenge/attack_self(mob/living/user) + if(!check_allowed(user)) + return + + declaring_war = 1 + var/are_you_sure = alert(user, "Consult your team carefully before you declare war on [station_name()]]. Are you sure you want to alert the enemy crew?", "Declare war?", "Yes", "No") + declaring_war = 0 + if(are_you_sure == "No") + user << "On second thought, the element of surprise isn't so bad after all." + return + if(!check_allowed(user)) + return + + declaring_war = 1 + var/war_declaration = "[user.real_name] has declared his intent to utterly destroy [station_name()] with a nuclear device, and dares the crew to try and stop them." + priority_announce(war_declaration, title = "Declaration of War", sound = 'sound/machines/Alarm.ogg') + user << "You've attracted the attention of powerful forces within the syndicate. A bonus bundle of telecrystals has been granted to your team. Great things await you if you complete the mission." + + for(var/V in syndicate_shuttle_boards) + var/obj/item/weapon/circuitboard/computer/syndicate_shuttle/board = V + board.challenge = TRUE + + var/obj/item/device/radio/uplink/nuclear/U = new(get_turf(user)) + U.hidden_uplink.owner = "[user.key]" + U.hidden_uplink.telecrystals = CHALLENGE_TELECRYSTALS + U.hidden_uplink.gamemode = /datum/game_mode/nuclear + config.shuttle_refuel_delay = max(config.shuttle_refuel_delay, CHALLENGE_SHUTTLE_DELAY) + qdel(src) + +/obj/item/device/nuclear_challenge/proc/check_allowed(mob/living/user) + if(declaring_war) + return 0 + if(player_list.len < CHALLENGE_MIN_PLAYERS) + user << "The enemy crew is too small to be worth declaring war on." + return 0 + if(user.z != ZLEVEL_CENTCOM) + user << "You have to be at your base to use this." + return 0 + if(world.time-round_start_time > CHALLENGE_TIME_LIMIT) + user << "It's too late to declare hostilities. Your benefactors are already busy with other schemes. You'll have to make do with what you have on hand." + return 0 + for(var/V in syndicate_shuttle_boards) + var/obj/item/weapon/circuitboard/computer/syndicate_shuttle/board = V + if(board.moved) + user << "The shuttle has already been moved! You have forfeit the right to declare war." + return 0 + return 1 + +#undef CHALLENGE_TELECRYSTALS +#undef CHALLENGE_MIN_PLAYERS +#undef CHALLENGE_SHUTTLE_DELAY diff --git a/code/game/gamemodes/nuclear/nuclearbomb.dm b/code/game/gamemodes/nuclear/nuclearbomb.dm new file mode 100644 index 0000000..dff9985 --- /dev/null +++ b/code/game/gamemodes/nuclear/nuclearbomb.dm @@ -0,0 +1,585 @@ +#define NUKESTATE_INTACT 5 +#define NUKESTATE_UNSCREWED 4 +#define NUKESTATE_PANEL_REMOVED 3 +#define NUKESTATE_WELDED 2 +#define NUKESTATE_CORE_EXPOSED 1 +#define NUKESTATE_CORE_REMOVED 0 + +#define NUKE_OFF_LOCKED 0 +#define NUKE_OFF_UNLOCKED 1 +#define NUKE_ON_TIMING 2 +#define NUKE_ON_EXPLODING 3 + +var/bomb_set + +/obj/machinery/nuclearbomb + name = "nuclear fission explosive" + desc = "You probably shouldn't stick around to see if this is armed." + icon = 'icons/obj/machines/nuke.dmi' + icon_state = "nuclearbomb_base" + density = 1 + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF + + var/timer_set = 60 + var/default_timer_set = 60 + var/minimum_timer_set = 60 + var/maximum_timer_set = 3600 + var/ui_style = "nanotrasen" + + var/numeric_input = "" + var/timing = FALSE + var/exploding = FALSE + var/detonation_timer = null + var/r_code = "ADMIN" + var/yes_code = FALSE + var/safety = TRUE + var/obj/item/weapon/disk/nuclear/auth = null + use_power = 0 + var/previous_level = "" + var/obj/item/nuke_core/core = null + var/deconstruction_state = NUKESTATE_INTACT + var/image/lights = null + var/image/interior = null + var/obj/effect/countdown/nuclearbomb/countdown + +/obj/machinery/nuclearbomb/New() + ..() + countdown = new(src) + nuke_list += src + core = new /obj/item/nuke_core(src) + STOP_PROCESSING(SSobj, core) + update_icon() + poi_list |= src + previous_level = get_security_level() + +/obj/machinery/nuclearbomb/Destroy() + poi_list -= src + nuke_list -= src + if(countdown) + qdel(countdown) + countdown = null + . = ..() + +/obj/machinery/nuclearbomb/examine(mob/user) + . = ..() + if(exploding) + user << "It is in the process of exploding. Perhaps reviewing your \ + affairs is in order." + if(timing) + user << "There are [get_time_left()] seconds until \ + detonation." + +/obj/machinery/nuclearbomb/selfdestruct + name = "station self-destruct terminal" + desc = "For when it all gets too much to bear. Do not taunt." + icon = 'icons/obj/machines/nuke_terminal.dmi' + icon_state = "nuclearbomb_base" + anchored = TRUE //stops it being moved + +/obj/machinery/nuclearbomb/syndicate + //ui_style = "syndicate" // actually the nuke op bomb is a stole nt bomb + +/obj/machinery/nuclearbomb/syndicate/New() + var/obj/machinery/nuclearbomb/existing = locate("syndienuke") + if(existing) + qdel(src) + throw EXCEPTION("Attempted to spawn a syndicate nuke while one already exists at [existing.loc.x],[existing.loc.y],[existing.loc.z]") + return 0 + tag = "syndienuke" + return ..() + +/obj/machinery/nuclearbomb/attackby(obj/item/I, mob/user, params) + if (istype(I, /obj/item/weapon/disk/nuclear)) + if(!user.drop_item()) + return + I.forceMove(src) + auth = I + add_fingerprint(user) + return + + switch(deconstruction_state) + if(NUKESTATE_INTACT) + if(istype(I, /obj/item/weapon/screwdriver/nuke)) + playsound(loc, I.usesound, 100, 1) + user << "You start removing [src]'s front panel's screws..." + if(do_after(user, 60/I.toolspeed,target=src)) + deconstruction_state = NUKESTATE_UNSCREWED + user << "You remove the screws from [src]'s front panel." + update_icon() + return + if(NUKESTATE_UNSCREWED) + if(istype(I, /obj/item/weapon/crowbar)) + user << "You start removing [src]'s front panel..." + playsound(loc, I.usesound, 100, 1) + if(do_after(user,30/I.toolspeed,target=src)) + user << "You remove [src]'s front panel." + deconstruction_state = NUKESTATE_PANEL_REMOVED + update_icon() + return + if(NUKESTATE_PANEL_REMOVED) + if(istype(I, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/welder = I + playsound(loc, I.usesound, 100, 1) + user << "You start cutting [src]'s inner plate..." + if(welder.remove_fuel(1,user)) + if(do_after(user,80/I.toolspeed,target=src)) + user << "You cut [src]'s inner plate." + deconstruction_state = NUKESTATE_WELDED + update_icon() + return + if(NUKESTATE_WELDED) + if(istype(I, /obj/item/weapon/crowbar)) + user << "You start prying off [src]'s inner plate..." + playsound(loc, I.usesound, 100, 1) + if(do_after(user,50/I.toolspeed,target=src)) + user << "You pry off [src]'s inner plate. You can see the core's green glow!" + deconstruction_state = NUKESTATE_CORE_EXPOSED + update_icon() + START_PROCESSING(SSobj, core) + return + if(NUKESTATE_CORE_EXPOSED) + if(istype(I, /obj/item/nuke_core_container)) + var/obj/item/nuke_core_container/core_box = I + user << "You start loading the plutonium core into [core_box]..." + if(do_after(user,50,target=src)) + if(core_box.load(core, user)) + user << "You load the plutonium core into [core_box]." + deconstruction_state = NUKESTATE_CORE_REMOVED + update_icon() + core = null + else + user << "You fail to load the plutonium core into [core_box]. [core_box] has already been used!" + return + if(istype(I, /obj/item/stack/sheet/metal)) + var/obj/item/stack/sheet/metal/M = I + if(M.amount >= 20) + user << "You begin repairing [src]'s inner metal plate..." + if(do_after(user, 100, target=src)) + if(M.use(20)) + user << "You repair [src]'s inner metal plate. The radiation is contained." + deconstruction_state = NUKESTATE_PANEL_REMOVED + STOP_PROCESSING(SSobj, core) + update_icon() + else + user << "You need more metal to do that!" + else + user << "You need more metal to do that!" + return + . = ..() + +/obj/machinery/nuclearbomb/proc/get_nuke_state() + if(exploding) + return NUKE_ON_EXPLODING + if(timing) + return NUKE_ON_TIMING + if(safety) + return NUKE_OFF_LOCKED + else + return NUKE_OFF_UNLOCKED + +/obj/machinery/nuclearbomb/update_icon() + if(deconstruction_state == NUKESTATE_INTACT) + switch(get_nuke_state()) + if(NUKE_OFF_LOCKED, NUKE_OFF_UNLOCKED) + icon_state = "nuclearbomb_base" + update_icon_interior() + update_icon_lights() + if(NUKE_ON_TIMING) + cut_overlays() + icon_state = "nuclearbomb_timing" + if(NUKE_ON_EXPLODING) + cut_overlays() + icon_state = "nuclearbomb_exploding" + else + icon_state = "nuclearbomb_base" + update_icon_interior() + update_icon_lights() + +/obj/machinery/nuclearbomb/proc/update_icon_interior() + overlays -= interior + switch(deconstruction_state) + if(NUKESTATE_UNSCREWED) + interior = image(icon,"panel-unscrewed") + if(NUKESTATE_PANEL_REMOVED) + interior = image(icon,"panel-removed") + if(NUKESTATE_WELDED) + interior = image(icon,"plate-welded") + if(NUKESTATE_CORE_EXPOSED) + interior = image(icon,"plate-removed") + if(NUKESTATE_CORE_REMOVED) + interior = image(icon,"core-removed") + if(NUKESTATE_INTACT) + interior = null + add_overlay(interior) + +/obj/machinery/nuclearbomb/proc/update_icon_lights() + overlays -= lights + switch(get_nuke_state()) + if(NUKE_OFF_LOCKED) + lights = null + if(NUKE_OFF_UNLOCKED) + lights = image(icon,"lights-safety") + if(NUKE_ON_TIMING) + lights = image(icon,"lights-timing") + if(NUKE_ON_EXPLODING) + lights = image(icon,"lights-exploding") + add_overlay(lights) + +/obj/machinery/nuclearbomb/process() + if(timing && !exploding) + bomb_set = TRUE + if(detonation_timer < world.time) + explode() + else + var/volume = (get_time_left() <= 20 ? 30 : 5) + playsound(loc, 'sound/items/timer.ogg', volume, 0) + +/obj/machinery/nuclearbomb/attack_paw(mob/user) + return attack_hand(user) + +/obj/machinery/nuclearbomb/ui_interact(mob/user, ui_key="main", datum/tgui/ui=null, force_open=0, datum/tgui/master_ui=null, datum/ui_state/state=default_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "nuclear_bomb", name, 500, 600, master_ui, state) + ui.set_style(ui_style) + ui.open() + +/obj/machinery/nuclearbomb/ui_data(mob/user) + var/list/data = list() + data["disk_present"] = auth + data["code_approved"] = yes_code + var/first_status + if(auth) + if(yes_code) + first_status = timing ? "Func/Set" : "Functional" + else + first_status = "Auth S2." + else + if(timing) + first_status = "Set" + else + first_status = "Auth S1." + var/second_status = safety ? "Safe" : "Engaged" + data["status1"] = first_status + data["status2"] = second_status + data["anchored"] = anchored + data["safety"] = safety + data["timing"] = timing + data["time_left"] = get_time_left() + + data["timer_set"] = timer_set + data["timer_is_not_default"] = timer_set != default_timer_set + data["timer_is_not_min"] = timer_set != minimum_timer_set + data["timer_is_not_max"] = timer_set != maximum_timer_set + + var/message = "AUTH" + if(auth) + message = "[numeric_input]" + if(yes_code) + message = "*****" + data["message"] = message + + return data + +/obj/machinery/nuclearbomb/ui_act(action, params) + if(..()) + return + switch(action) + if("eject_disk") + if(auth && auth.loc == src) + auth.forceMove(get_turf(src)) + auth = null + . = TRUE + if("insert_disk") + if(!auth) + var/obj/item/I = usr.get_active_held_item() + if(istype(I, /obj/item/weapon/disk/nuclear)) + usr.drop_item() + I.forceMove(src) + auth = I + . = TRUE + if("keypad") + if(auth) + var/digit = params["digit"] + switch(digit) + if("R") + numeric_input = "" + yes_code = FALSE + . = TRUE + if("E") + if(numeric_input == r_code) + numeric_input = "" + yes_code = TRUE + . = TRUE + else + numeric_input = "ERROR" + if("0","1","2","3","4","5","6","7","8","9") + if(numeric_input != "ERROR") + numeric_input += digit + if(length(numeric_input) > 5) + numeric_input = "ERROR" + . = TRUE + if("timer") + if(auth && yes_code) + var/change = params["change"] + if(change == "reset") + timer_set = default_timer_set + else if(change == "decrease") + timer_set = max(minimum_timer_set, timer_set - 10) + else if(change == "increase") + timer_set = min(maximum_timer_set, timer_set + 10) + else if(change == "input") + var/user_input = input(usr, "Set time to detonation.", name) as null|num + if(!user_input) + return + var/N = text2num(user_input) + if(!N) + return + timer_set = Clamp(N,minimum_timer_set,maximum_timer_set) + . = TRUE + if("safety") + if(auth && yes_code) + set_safety() + if("anchor") + if(auth && yes_code) + set_anchor() + if("toggle_timer") + if(auth && yes_code && !safety) + set_active() + + +/obj/machinery/nuclearbomb/proc/set_anchor() + if(!isinspace()) + anchored = !anchored + else + usr << "There is nothing to anchor to!" + +/obj/machinery/nuclearbomb/proc/set_safety() + safety = !safety + if(safety) + if(timing) + set_security_level(previous_level) + for(var/obj/item/weapon/pinpointer/syndicate/S in pinpointer_list) + S.switch_mode_to(initial(S.mode)) + S.nuke_warning = FALSE + timing = FALSE + bomb_set = TRUE + detonation_timer = null + countdown.stop() + update_icon() + +/obj/machinery/nuclearbomb/proc/set_active() + if(safety && !bomb_set) + usr << "The safety is still on." + return + timing = !timing + if(timing) + previous_level = get_security_level() + bomb_set = TRUE + set_security_level("delta") + detonation_timer = world.time + (timer_set * 10) + for(var/obj/item/weapon/pinpointer/syndicate/S in pinpointer_list) + S.switch_mode_to(TRACK_INFILTRATOR) + countdown.start() + else + bomb_set = FALSE + detonation_timer = null + set_security_level(previous_level) + countdown.stop() + update_icon() + +/obj/machinery/nuclearbomb/proc/get_time_left() + if(timing) + . = round(max(0, detonation_timer - world.time) / 10, 1) + else + . = timer_set + +/obj/machinery/nuclearbomb/blob_act(obj/structure/blob/B) + if(exploding) + return + qdel(src) + +/obj/machinery/nuclearbomb/tesla_act(var/power) + ..() + qdel(src)//like the singulo, tesla deletes it. stops it from exploding over and over + +#define NUKERANGE 127 +/obj/machinery/nuclearbomb/proc/explode() + if(safety) + timing = FALSE + return + + exploding = TRUE + yes_code = FALSE + safety = TRUE + update_icon() + for(var/mob/M in player_list) + M << 'sound/machines/Alarm.ogg' + if(ticker && ticker.mode) + ticker.mode.explosion_in_progress = 1 + sleep(100) + + if(!core) + ticker.station_explosion_cinematic(3,"no_core") + ticker.mode.explosion_in_progress = 0 + return + + enter_allowed = 0 + + var/off_station = 0 + var/turf/bomb_location = get_turf(src) + if(bomb_location && (bomb_location.z == ZLEVEL_STATION)) + var/area/A = get_area(bomb_location) + if(istype(A, /area/space)) + off_station = 1 + if((bomb_location.x < (128-NUKERANGE)) || (bomb_location.x > (128+NUKERANGE)) || (bomb_location.y < (128-NUKERANGE)) || (bomb_location.y > (128+NUKERANGE))) + off_station = 1 + else + off_station = 2 + + if(ticker.mode && ticker.mode.name == "nuclear emergency") + var/obj/docking_port/mobile/Shuttle = SSshuttle.getShuttle("syndicate") + ticker.mode:syndies_didnt_escape = (Shuttle && Shuttle.z == ZLEVEL_CENTCOM) ? 0 : 1 + ticker.mode:nuke_off_station = off_station + ticker.station_explosion_cinematic(off_station,null) + if(ticker.mode) + ticker.mode.explosion_in_progress = 0 + if(ticker.mode.name == "nuclear emergency") + ticker.mode:nukes_left -- + else + world << "The station was destoyed by the nuclear blast!" + ticker.mode.station_was_nuked = (off_station<2) //offstation==1 is a draw. the station becomes irradiated and needs to be evacuated. + //kinda shit but I couldn't get permission to do what I wanted to do. + if(!ticker.mode.check_finished())//If the mode does not deal with the nuke going off so just reboot because everyone is stuck as is + spawn() + world.Reboot("Station destroyed by Nuclear Device.", "end_error", "nuke - unhandled ending") + + +/* +This is here to make the tiles around the station mininuke change when it's armed. +*/ + +/obj/machinery/nuclearbomb/selfdestruct/proc/SetTurfs() + if(loc == initial(loc)) + for(var/N in nuke_tiles) + var/turf/open/floor/T = N + T.icon_state = (timing ? "rcircuitanim" : T.icon_regular_floor) + +/obj/machinery/nuclearbomb/selfdestruct/set_anchor() + return + +/obj/machinery/nuclearbomb/selfdestruct/set_active() + ..() + SetTurfs() + +/obj/machinery/nuclearbomb/selfdestruct/set_safety() + ..() + SetTurfs() + +//==========DAT FUKKEN DISK=============== +/obj/item/weapon/disk + icon = 'icons/obj/module.dmi' + w_class = 1 + item_state = "card-id" + icon_state = "datadisk0" + +/obj/item/weapon/disk/nuclear + name = "nuclear authentication disk" + desc = "Better keep this safe." + icon_state = "nucleardisk" + persistence_replacement = /obj/item/weapon/disk/fakenucleardisk + obj_integrity = 250 + max_integrity = 250 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 30, bio = 0, rad = 0, fire = 100, acid = 100) + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF + +/obj/item/weapon/disk/nuclear/New() + ..() + poi_list |= src + START_PROCESSING(SSobj, src) + +/obj/item/weapon/disk/nuclear/attackby(obj/item/I, mob/living/user, params) + if(istype(I, /obj/item/weapon/claymore/highlander)) + var/obj/item/weapon/claymore/highlander/H = I + if(H.nuke_disk) + user << "Wait... what?" + qdel(H.nuke_disk) + H.nuke_disk = null + return + user.visible_message("[user] captures [src]!", "You've got the disk! Defend it with your life!") + loc = H + H.nuke_disk = src + return 1 + return ..() + +/obj/item/weapon/disk/nuclear/suicide_act(mob/user) + user.visible_message("[user] is going delta! It looks like [user.p_theyre()] trying to commit suicide!") + playsound(user.loc, 'sound/machines/Alarm.ogg', 50, -1, 1) + var/end_time = world.time + 100 + var/newcolor = "#00FF00" + while(world.time < end_time) + if(!user) + return + if(newcolor == "#FF0000") + newcolor = "#00FF00" + else + newcolor = "#FF0000" + user.add_atom_colour(newcolor, ADMIN_COLOUR_PRIORITY) + sleep(1) + user.remove_atom_colour(ADMIN_COLOUR_PRIORITY) + user.visible_message("[user] was destroyed by the nuclear blast!") + return OXYLOSS + +/obj/item/weapon/disk/nuclear/process() + var/turf/diskturf = get_turf(src) + if(diskturf && (diskturf.z == ZLEVEL_CENTCOM || diskturf.z == ZLEVEL_STATION)) + return + else + get(src, /mob) << "You can't help but feel that you just lost something back there..." + var/turf/targetturf = relocate() + message_admins("[src] has been moved out of bounds in \ + [ADMIN_COORDJMP(diskturf)]. Moving it to \ + [ADMIN_COORDJMP(targetturf)].") + log_game("[src] has been moved out of bounds in [COORD(diskturf)]. \ + Moving it to [COORD(targetturf)].") + +/obj/item/weapon/disk/nuclear/proc/relocate() + var/targetturf = find_safe_turf(ZLEVEL_STATION) + if(!targetturf) + if(blobstart.len > 0) + targetturf = get_turf(pick(blobstart)) + else + throw EXCEPTION("Unable to find a blobstart landmark") + + if(ismob(loc)) + var/mob/M = loc + M.remove_from_mob(src) + if(istype(loc, /obj/item/weapon/storage)) + var/obj/item/weapon/storage/S = loc + S.remove_from_storage(src, targetturf) + // move the disc, so ghosts remain orbiting it even if it's "destroyed" + forceMove(targetturf) + return targetturf + +/obj/item/weapon/disk/nuclear/Destroy(force) + var/turf/diskturf = get_turf(src) + + if(force) + message_admins("[src] has been !!force deleted!! in \ + [ADMIN_COORDJMP(diskturf)].") + log_game("[src] has been !!force deleted!! in [COORD(diskturf)].") + poi_list -= src + STOP_PROCESSING(SSobj, src) + return ..() + + var/turf/targetturf = relocate() + message_admins("[src] has been destroyed in [ADMIN_COORDJMP(diskturf)]. \ + Moving it to [ADMIN_COORDJMP(targetturf)].") + log_game("[src] has been destroyed in [COORD(diskturf)]. Moving it to \ + [COORD(targetturf)].") + return QDEL_HINT_LETMELIVE //Cancel destruction unless forced + +/obj/item/weapon/disk/fakenucleardisk + name = "cheap plastic imitation of the nuclear authentication disk" + desc = "Broken dreams and a faint oder of cheese." + icon_state = "nucleardisk" diff --git a/code/game/gamemodes/nuclear/pinpointer.dm b/code/game/gamemodes/nuclear/pinpointer.dm new file mode 100644 index 0000000..9b95641 --- /dev/null +++ b/code/game/gamemodes/nuclear/pinpointer.dm @@ -0,0 +1,172 @@ +//Pinpointers are used to track atoms from a distance as long as they're on the same z-level. The captain and nuke ops have ones that track the nuclear authentication disk. +/obj/item/weapon/pinpointer + name = "pinpointer" + desc = "A handheld tracking device that locks onto certain signals." + icon = 'icons/obj/device.dmi' + icon_state = "pinoff" + flags = CONDUCT + slot_flags = SLOT_BELT + w_class = 2 + item_state = "electronic" + throw_speed = 3 + throw_range = 7 + materials = list(MAT_METAL = 500, MAT_GLASS = 250) + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF + var/active = FALSE + var/atom/movable/target = null //The thing we're searching for + var/atom/movable/constant_target = null //The thing we're always focused on, if we're in the right mode + var/target_x = 0 //The target coordinates if we're tracking those + var/target_y = 0 + var/nuke_warning = FALSE // If we've set off a miniature alarm about an armed nuke + var/mode = TRACK_NUKE_DISK //What are we looking for? + +/obj/item/weapon/pinpointer/New() + ..() + pinpointer_list += src + +/obj/item/weapon/pinpointer/Destroy() + STOP_PROCESSING(SSfastprocess, src) + return ..() + +/obj/item/weapon/pinpointer/attack_self(mob/living/user) + active = !active + user.visible_message("[user] [active ? "" : "de"]activates their pinpointer.", "You [active ? "" : "de"]activate your pinpointer.") + playsound(user, 'sound/items/Screwdriver2.ogg', 50, 1) + icon_state = "pin[active ? "onnull" : "off"]" + if(active) + START_PROCESSING(SSfastprocess, src) + else + target = null //Restarting the pinpointer forces a target reset + STOP_PROCESSING(SSfastprocess, src) + +/obj/item/weapon/pinpointer/attackby(obj/item/I, mob/living/user, params) + if(mode != TRACK_ATOM) + return ..() + user.visible_message("[user] tunes [src] to [I].", "You fine-tune [src]'s tracking to track [I].") + playsound(src, 'sound/machines/click.ogg', 50, 1) + constant_target = I + +/obj/item/weapon/pinpointer/examine(mob/user) + ..() + var/msg = "Its tracking indicator reads " + switch(mode) + if(TRACK_NUKE_DISK) + msg += "\"nuclear_disk\"." + if(TRACK_MALF_AI) + msg += "\"01000001 01001001\"." + if(TRACK_INFILTRATOR) + msg += "\"vasvygengbefuvc\"." + if(TRACK_OPERATIVES) + msg += "\"[target ? "Operative [target]" : "friends"]\"." + if(TRACK_ATOM) + msg += "\"[initial(constant_target.name)]\"." + if(TRACK_COORDINATES) + msg += "\"([target_x], [target_y])\"." + else + msg = "Its tracking indicator is blank." + user << msg + for(var/obj/machinery/nuclearbomb/bomb in machines) + if(bomb.timing) + user << "Extreme danger. Arming signal detected. Time remaining: [bomb.get_time_left()]" + +/obj/item/weapon/pinpointer/process() + if(!active) + STOP_PROCESSING(SSfastprocess, src) + return + scan_for_target() + point_to_target() + my_god_jc_a_bomb() + addtimer(src, "refresh_target", 50, TRUE) + +/obj/item/weapon/pinpointer/proc/scan_for_target() //Looks for whatever it's tracking + if(target) + if(isliving(target)) + var/mob/living/L = target + if(L.stat == DEAD) + target = null + return + switch(mode) + if(TRACK_NUKE_DISK) + var/obj/item/weapon/disk/nuclear/N = locate() + target = N + if(TRACK_MALF_AI) + for(var/V in ai_list) + var/mob/living/silicon/ai/A = V + if(A.nuking) + target = A + for(var/V in apcs_list) + var/obj/machinery/power/apc/A = V + if(A.malfhack && A.occupier) + target = A + if(TRACK_INFILTRATOR) + target = SSshuttle.getShuttle("syndicate") + if(TRACK_OPERATIVES) + var/list/possible_targets = list() + var/turf/here = get_turf(src) + for(var/V in ticker.mode.syndicates) + var/datum/mind/M = V + if(M.current && M.current.stat != DEAD) + possible_targets |= M.current + var/mob/living/closest_operative = get_closest_atom(/mob/living/carbon/human, possible_targets, here) + if(closest_operative) + target = closest_operative + if(TRACK_ATOM) + if(constant_target) + target = constant_target + if(TRACK_COORDINATES) + var/turf/T = get_turf(src) + target = locate(target_x, target_y, T.z) + +/obj/item/weapon/pinpointer/proc/point_to_target() //If we found what we're looking for, show the distance and direction + if(!active) + return + if(!target || (mode == TRACK_ATOM && !constant_target)) + icon_state = "pinon[nuke_warning ? "alert" : ""]null" + return + var/turf/here = get_turf(src) + var/turf/there = get_turf(target) + if(here.z != there.z) + icon_state = "pinon[nuke_warning ? "alert" : ""]null" + return + if(here == there) + icon_state = "pinon[nuke_warning ? "alert" : ""]direct" + else + setDir(get_dir(here, there)) + switch(get_dist(here, there)) + if(1 to 8) + icon_state = "pinon[nuke_warning ? "alert" : "close"]" + if(9 to 16) + icon_state = "pinon[nuke_warning ? "alert" : "medium"]" + if(16 to INFINITY) + icon_state = "pinon[nuke_warning ? "alert" : "far"]" + +/obj/item/weapon/pinpointer/proc/my_god_jc_a_bomb() //If we should get the hell back to the ship + for(var/obj/machinery/nuclearbomb/bomb in nuke_list) + if(bomb.timing) + if(!nuke_warning) + nuke_warning = TRUE + playsound(src, 'sound/items/Nuke_toy_lowpower.ogg', 50, 0) + if(isliving(loc)) + var/mob/living/L = loc + L << "Your [name] vibrates and lets out a tinny alarm. Uh oh." + +/obj/item/weapon/pinpointer/proc/switch_mode_to(new_mode) //If we shouldn't be tracking what we are + if(isliving(loc)) + var/mob/living/L = loc + L << "Your [name] beeps as it reconfigures its tracking algorithms." + playsound(L, 'sound/machines/triple_beep.ogg', 50, 1) + mode = new_mode + target = null //Switch modes so we can find the new target + +/obj/item/weapon/pinpointer/proc/refresh_target() //Periodically removes the target to allow the pinpointer to update (i.e. malf AI shunts, an operative dies) + target = null + +/obj/item/weapon/pinpointer/syndicate //Syndicate pinpointers automatically point towards the infiltrator once the nuke is active. + name = "syndicate pinpointer" + desc = "A handheld tracking device that locks onto certain signals. It's configured to switch tracking modes once it detects the activation signal of a nuclear device." + +/obj/item/weapon/pinpointer/syndicate/cyborg //Cyborg pinpointers just look for a random operative. + name = "cyborg syndicate pinpointer" + desc = "An integrated tracking device, jury-rigged to search for living Syndicate operatives." + mode = TRACK_OPERATIVES + flags = NODROP diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm new file mode 100644 index 0000000..70293fc --- /dev/null +++ b/code/game/gamemodes/objective.dm @@ -0,0 +1,917 @@ +/datum/objective + var/datum/mind/owner = null //Who owns the objective. + var/explanation_text = "Nothing" //What that person is supposed to do. + var/datum/mind/target = null //If they are focused on a particular person. + var/target_amount = 0 //If they are focused on a particular number. Steal objectives have their own counter. + var/completed = 0 //currently only used for custom objectives. + var/dangerrating = 0 //How hard the objective is, essentially. Used for dishing out objectives and checking overall victory. + var/martyr_compatible = 0 //If the objective is compatible with martyr objective, i.e. if you can still do it while dead. + +/datum/objective/New(var/text) + if(text) + explanation_text = text + +/datum/objective/proc/check_completion() + return completed + +/datum/objective/proc/is_unique_objective(possible_target) + for(var/datum/objective/O in owner.objectives) + if(istype(O, type) && O.get_target() == possible_target) + return 0 + return 1 + +/datum/objective/proc/get_target() + return target + + +/datum/objective/proc/get_crewmember_minds() + . = list() + for(var/V in data_core.locked) + var/datum/data/record/R = V + var/mob/M = R.fields["reference"] + if(M && M.mind) + . += M.mind + +/datum/objective/proc/find_target() + var/list/possible_targets = list() + for(var/datum/mind/possible_target in get_crewmember_minds()) + if(possible_target != owner && ishuman(possible_target.current) && (possible_target.current.stat != 2) && is_unique_objective(possible_target)) + possible_targets += possible_target + if(possible_targets.len > 0) + target = pick(possible_targets) + update_explanation_text() + return target + +/datum/objective/proc/find_target_by_role(role, role_type=0, invert=0)//Option sets either to check assigned role or special role. Default to assigned., invert inverts the check, eg: "Don't choose a Ling" + for(var/datum/mind/possible_target in get_crewmember_minds()) + if((possible_target != owner) && ishuman(possible_target.current)) + var/is_role = 0 + if(role_type) + if(possible_target.special_role == role) + is_role++ + else + if(possible_target.assigned_role == role) + is_role++ + + if(invert) + if(is_role) + continue + target = possible_target + break + else if(is_role) + target = possible_target + break + + update_explanation_text() + +/datum/objective/proc/update_explanation_text() + //Default does nothing, override where needed + +/datum/objective/proc/give_special_equipment() + +/datum/objective/assassinate + var/target_role_type=0 + dangerrating = 10 + martyr_compatible = 1 + +/datum/objective/assassinate/find_target_by_role(role, role_type=0, invert=0) + if(!invert) + target_role_type = role_type + ..() + return target + +/datum/objective/assassinate/check_completion() + if(target && target.current) + if(target.current.stat == DEAD || issilicon(target.current) || isbrain(target.current) || target.current.z > 6 || !target.current.ckey) //Borgs/brains/AIs count as dead for traitor objectives. --NeoFite + return 1 + return 0 + return 1 + +/datum/objective/assassinate/update_explanation_text() + ..() + if(target && target.current) + explanation_text = "Assassinate [target.name], the [!target_role_type ? target.assigned_role : target.special_role]." + else + explanation_text = "Free Objective" + + +/datum/objective/mutiny + var/target_role_type=0 + martyr_compatible = 1 + +/datum/objective/mutiny/find_target_by_role(role, role_type=0,invert=0) + if(!invert) + target_role_type = role_type + ..() + return target + +/datum/objective/mutiny/check_completion() + if(target && target.current) + if(target.current.stat == DEAD || !ishuman(target.current) || !target.current.ckey || !target.current.client) + return 1 + var/turf/T = get_turf(target.current) + if(T && (T.z > ZLEVEL_STATION) || target.current.client.is_afk()) //If they leave the station or go afk they count as dead for this + return 2 + return 0 + return 1 + +/datum/objective/mutiny/update_explanation_text() + ..() + if(target && target.current) + explanation_text = "Assassinate or exile [target.name], the [!target_role_type ? target.assigned_role : target.special_role]." + else + explanation_text = "Free Objective" + + + +/datum/objective/maroon + var/target_role_type=0 + dangerrating = 5 + martyr_compatible = 1 + +/datum/objective/maroon/find_target_by_role(role, role_type=0, invert=0) + if(!invert) + target_role_type = role_type + ..() + return target + +/datum/objective/maroon/check_completion() + if(target && target.current) + if(target.current.stat == DEAD || issilicon(target.current) || isbrain(target.current) || target.current.z > 6 || !target.current.ckey) //Borgs/brains/AIs count as dead for traitor objectives. --NeoFite + return 1 + if(target.current.onCentcom() || target.current.onSyndieBase()) + return 0 + return 1 + +/datum/objective/maroon/update_explanation_text() + if(target && target.current) + explanation_text = "Prevent [target.name], the [!target_role_type ? target.assigned_role : target.special_role], from escaping alive." + else + explanation_text = "Free Objective" + + + +/datum/objective/debrain//I want braaaainssss + var/target_role_type=0 + dangerrating = 20 + +/datum/objective/debrain/find_target_by_role(role, role_type=0, invert=0) + if(!invert) + target_role_type = role_type + ..() + return target + +/datum/objective/debrain/check_completion() + if(!target)//If it's a free objective. + return 1 + if( !owner.current || owner.current.stat==DEAD )//If you're otherwise dead. + return 0 + if( !target.current || !isbrain(target.current) ) + return 0 + var/atom/A = target.current + while(A.loc) //check to see if the brainmob is on our person + A = A.loc + if(A == owner.current) + return 1 + return 0 + +/datum/objective/debrain/update_explanation_text() + ..() + if(target && target.current) + explanation_text = "Steal the brain of [target.name], the [!target_role_type ? target.assigned_role : target.special_role]." + else + explanation_text = "Free Objective" + + + +/datum/objective/protect//The opposite of killing a dude. + var/target_role_type=0 + dangerrating = 10 + martyr_compatible = 1 + +/datum/objective/protect/find_target_by_role(role, role_type=0, invert=0) + if(!invert) + target_role_type = role_type + ..() + return target + +/datum/objective/protect/check_completion() + if(!target) //If it's a free objective. + return 1 + if(target.current) + if(target.current.stat == DEAD || issilicon(target.current) || isbrain(target.current)) + return 0 + return 1 + return 0 + +/datum/objective/protect/update_explanation_text() + ..() + if(target && target.current) + explanation_text = "Protect [target.name], the [!target_role_type ? target.assigned_role : target.special_role]." + else + explanation_text = "Free Objective" + + + +/datum/objective/hijack + explanation_text = "Hijack the shuttle to ensure no loyalist Nanotrasen crew escape alive and out of custody." + dangerrating = 25 + martyr_compatible = 0 //Technically you won't get both anyway. + +/datum/objective/hijack/check_completion() + if(!owner.current || owner.current.stat) + return 0 + if(SSshuttle.emergency.mode != SHUTTLE_ENDGAME) + return 0 + if(issilicon(owner.current)) + return 0 + + var/area/A = get_area(owner.current) + if(SSshuttle.emergency.areaInstance != A) + return 0 + + for(var/mob/living/player in player_list) + if(player.mind && player.mind != owner) + if(player.stat != DEAD) + if(issilicon(player)) //Borgs are technically dead anyways + continue + if(isanimal(player)) //animals don't count + continue + if(isbrain(player)) //also technically dead + continue + if(get_area(player) == A) + var/location = get_turf(player.mind.current) + if(!player.mind.special_role && !istype(location, /turf/open/floor/plasteel/shuttle/red) && !istype(location, /turf/open/floor/mineral/plastitanium/brig)) + return 0 + return 1 + +/datum/objective/hijackclone + explanation_text = "Hijack the emergency shuttle by ensuring only you (or your copies) escape." + dangerrating = 25 + martyr_compatible = 0 + +/datum/objective/hijackclone/check_completion() + if(!owner.current) + return 0 + if(SSshuttle.emergency.mode != SHUTTLE_ENDGAME) + return 0 + + var/area/A = SSshuttle.emergency.areaInstance + + for(var/mob/living/player in player_list) //Make sure nobody else is onboard + if(player.mind && player.mind != owner) + if(player.stat != DEAD) + if(issilicon(player)) //Borgs are technically dead anyways + continue + if(isanimal(player)) //animals don't count + continue + if(isbrain(player)) //also technically dead + continue + if(get_area(player) == A) + var/location = get_turf(player.mind.current) + if(player.real_name != owner.current.real_name && !istype(location, /turf/open/floor/plasteel/shuttle/red) && !istype(location, /turf/open/floor/mineral/plastitanium/brig)) + return 0 + + for(var/mob/living/player in player_list) //Make sure at least one of you is onboard + if(player.mind && player.mind != owner) + if(player.stat != DEAD) + if(issilicon(player)) //Borgs are technically dead anyways + continue + if(isanimal(player)) //animals don't count + continue + if(isbrain(player)) //also technically dead + continue + if(get_area(player) == A) + var/location = get_turf(player.mind.current) + if(player.real_name == owner.current.real_name && !istype(location, /turf/open/floor/plasteel/shuttle/red) && !istype(location, /turf/open/floor/mineral/plastitanium/brig)) + return 1 + return 0 + +/datum/objective/block + explanation_text = "Do not allow any organic lifeforms to escape on the shuttle alive." + dangerrating = 25 + martyr_compatible = 1 + +/datum/objective/block/check_completion() + if(!issilicon(owner.current)) + return 0 + if(SSshuttle.emergency.mode != SHUTTLE_ENDGAME) + return 1 + + var/area/A = SSshuttle.emergency.areaInstance + + for(var/mob/living/player in player_list) + if(issilicon(player)) + continue + if(player.mind) + if(player.stat != DEAD) + if(get_area(player) == A) + return 0 + + return 1 + + +/datum/objective/purge + explanation_text = "Ensure no mutant humanoid species are present aboard the escape shuttle." + dangerrating = 25 + martyr_compatible = 1 + +/datum/objective/purge/check_completion() + if(SSshuttle.emergency.mode != SHUTTLE_ENDGAME) + return 1 + + var/area/A = SSshuttle.emergency.areaInstance + + for(var/mob/living/player in player_list) + if(get_area(player) == A && player.mind && player.stat != DEAD && ishuman(player)) + var/mob/living/carbon/human/H = player + if(H.dna.species.id != "human") + return 0 + + return 1 + + +/datum/objective/robot_army + explanation_text = "Have at least eight active cyborgs synced to you." + dangerrating = 25 + martyr_compatible = 0 + +/datum/objective/robot_army/check_completion() + if(!isAI(owner.current)) + return 0 + var/mob/living/silicon/ai/A = owner.current + + var/counter = 0 + + for(var/mob/living/silicon/robot/R in A.connected_robots) + if(R.stat != DEAD) + counter++ + + if(counter < 8) + return 0 + return 1 + +/datum/objective/escape + explanation_text = "Escape on the shuttle or an escape pod alive and without being in custody." + dangerrating = 5 + +/datum/objective/escape/check_completion() + if(issilicon(owner.current)) + return 0 + if(isbrain(owner.current)) + return 0 + if(!owner.current || owner.current.stat == DEAD) + return 0 + if(ticker.force_ending) //This one isn't their fault, so lets just assume good faith + return 1 + if(ticker.mode.station_was_nuked) //If they escaped the blast somehow, let them win + return 1 + if(SSshuttle.emergency.mode != SHUTTLE_ENDGAME) + return 0 + var/turf/location = get_turf(owner.current) + if(!location) + return 0 + + if(istype(location, /turf/open/floor/plasteel/shuttle/red) || istype(location, /turf/open/floor/mineral/plastitanium/brig)) // Fails traitors if they are in the shuttle brig -- Polymorph + return 0 + + if(location.onCentcom() || location.onSyndieBase()) + return 1 + + return 0 + +/datum/objective/escape/escape_with_identity + dangerrating = 10 + var/target_real_name // Has to be stored because the target's real_name can change over the course of the round + var/target_missing_id + +/datum/objective/escape/escape_with_identity/find_target() + target = ..() + update_explanation_text() + +/datum/objective/escape/escape_with_identity/update_explanation_text() + if(target && target.current) + target_real_name = target.current.real_name + explanation_text = "Escape on the shuttle or an escape pod with the identity of [target_real_name], the [target.assigned_role]" + var/mob/living/carbon/human/H + if(ishuman(target.current)) + H = target.current + if(H && H.get_id_name() != target_real_name) + target_missing_id = 1 + else + explanation_text += " while wearing their identification card" + explanation_text += "." //Proper punctuation is important! + + else + explanation_text = "Free Objective." + +/datum/objective/escape/escape_with_identity/check_completion() + if(!target_real_name) + return 1 + if(!ishuman(owner.current)) + return 0 + var/mob/living/carbon/human/H = owner.current + if(..()) + if(H.dna.real_name == target_real_name) + if(H.get_id_name()== target_real_name || target_missing_id) + return 1 + return 0 + + +/datum/objective/survive + explanation_text = "Stay alive until the end." + dangerrating = 3 + +/datum/objective/survive/check_completion() + if(!owner.current || owner.current.stat == DEAD || isbrain(owner.current)) + return 0 //Brains no longer win survive objectives. --NEO + if(!is_special_character(owner.current)) //This fails borg'd traitors + return 0 + return 1 + + +/datum/objective/martyr + explanation_text = "Die a glorious death." + dangerrating = 1 + +/datum/objective/martyr/check_completion() + if(!owner.current) //Gibbed, etc. + return 1 + if(owner.current && owner.current.stat == DEAD) //You're dead! Yay! + return 1 + return 0 + + +/datum/objective/nuclear + explanation_text = "Destroy the station with a nuclear device." + martyr_compatible = 1 + +/datum/objective/nuclear/check_completion() + if(ticker && ticker.mode && ticker.mode.station_was_nuked) + return 1 + return 0 + + +var/global/list/possible_items = list() +/datum/objective/steal + var/datum/objective_item/targetinfo = null //Save the chosen item datum so we can access it later. + var/obj/item/steal_target = null //Needed for custom objectives (they're just items, not datums). + dangerrating = 5 //Overridden by the individual item's difficulty, but defaults to 5 for custom objectives. + martyr_compatible = 0 + +/datum/objective/steal/get_target() + return steal_target + +/datum/objective/steal/New() + ..() + if(!possible_items.len)//Only need to fill the list when it's needed. + init_subtypes(/datum/objective_item/steal,possible_items) + +/datum/objective/steal/find_target() + var/approved_targets = list() + for(var/datum/objective_item/possible_item in possible_items) + if(is_unique_objective(possible_item.targetitem) && !(owner.current.mind.assigned_role in possible_item.excludefromjob)) + approved_targets += possible_item + return set_target(safepick(approved_targets)) + +/datum/objective/steal/proc/set_target(datum/objective_item/item) + if(item) + targetinfo = item + + steal_target = targetinfo.targetitem + explanation_text = "Steal [targetinfo.name]." + dangerrating = targetinfo.difficulty + give_special_equipment() + return steal_target + else + explanation_text = "Free objective" + return + +/datum/objective/steal/proc/select_target() //For admins setting objectives manually. + var/list/possible_items_all = possible_items+"custom" + var/new_target = input("Select target:", "Objective target", steal_target) as null|anything in possible_items_all + if (!new_target) return + + if (new_target == "custom") //Can set custom items. + var/obj/item/custom_target = input("Select type:","Type") as null|anything in typesof(/obj/item) + if (!custom_target) return + var/tmp_obj = new custom_target + var/custom_name = tmp_obj:name + qdel(tmp_obj) + custom_name = stripped_input("Enter target name:", "Objective target", custom_name) + if (!custom_name) return + steal_target = custom_target + explanation_text = "Steal [custom_name]." + + else + set_target(new_target) + return steal_target + +/datum/objective/steal/check_completion() + if(!steal_target) + return 1 + if(!isliving(owner.current)) + return 0 + var/list/all_items = owner.current.GetAllContents() //this should get things in cheesewheels, books, etc. + + for(var/obj/I in all_items) //Check for items + if(istype(I, steal_target)) + if(!targetinfo) //If there's no targetinfo, then that means it was a custom objective. At this point, we know you have the item, so return 1. + return 1 + else if(targetinfo.check_special_completion(I))//Returns 1 by default. Items with special checks will return 1 if the conditions are fulfilled. + return 1 + + if(targetinfo && I.type in targetinfo.altitems) //Ok, so you don't have the item. Do you have an alternative, at least? + if(targetinfo.check_special_completion(I))//Yeah, we do! Don't return 0 if we don't though - then you could fail if you had 1 item that didn't pass and got checked first! + return 1 + return 0 + +/datum/objective/steal/give_special_equipment() + if(owner && owner.current && targetinfo) + if(ishuman(owner.current)) + var/mob/living/carbon/human/H = owner.current + var/list/slots = list ("backpack" = slot_in_backpack) + for(var/eq_path in targetinfo.special_equipment) + var/obj/O = new eq_path + H.equip_in_one_of_slots(O, slots) + + +var/global/list/possible_items_special = list() +/datum/objective/steal/special //ninjas are so special they get their own subtype good for them + +/datum/objective/steal/special/New() + ..() + if(!possible_items_special.len) + init_subtypes(/datum/objective_item/special,possible_items) + init_subtypes(/datum/objective_item/stack,possible_items) + +/datum/objective/steal/special/find_target() + return set_target(pick(possible_items_special)) + + + +/datum/objective/steal/exchange + dangerrating = 10 + martyr_compatible = 0 + +/datum/objective/steal/exchange/proc/set_faction(faction,otheragent) + target = otheragent + if(faction == "red") + targetinfo = new/datum/objective_item/unique/docs_blue + else if(faction == "blue") + targetinfo = new/datum/objective_item/unique/docs_red + explanation_text = "Acquire [targetinfo.name] held by [target.current.real_name], the [target.assigned_role] and syndicate agent" + steal_target = targetinfo.targetitem + + +/datum/objective/steal/exchange/update_explanation_text() + ..() + if(target && target.current) + explanation_text = "Acquire [targetinfo.name] held by [target.name], the [target.assigned_role] and syndicate agent" + else + explanation_text = "Free Objective" + + +/datum/objective/steal/exchange/backstab + dangerrating = 3 + +/datum/objective/steal/exchange/backstab/set_faction(faction) + if(faction == "red") + targetinfo = new/datum/objective_item/unique/docs_red + else if(faction == "blue") + targetinfo = new/datum/objective_item/unique/docs_blue + explanation_text = "Do not give up or lose [targetinfo.name]." + steal_target = targetinfo.targetitem + + +/datum/objective/download + dangerrating = 10 + +/datum/objective/download/proc/gen_amount_goal() + target_amount = rand(10,20) + explanation_text = "Download [target_amount] research level\s." + return target_amount + +/datum/objective/download/check_completion()//NINJACODE + if(!ishuman(owner.current)) + return 0 + + var/mob/living/carbon/human/H = owner.current + if(!H || H.stat == DEAD) + return 0 + + if(!istype(H.wear_suit, /obj/item/clothing/suit/space/space_ninja)) + return 0 + + var/obj/item/clothing/suit/space/space_ninja/SN = H.wear_suit + if(!SN.s_initialized) + return 0 + + var/current_amount + if(!SN.stored_research.len) + return 0 + else + for(var/datum/tech/current_data in SN.stored_research) + if(current_data.level) + current_amount += (current_data.level-1) + if(current_amount= target_amount)) + return 1 + else + return 0 + + + +/datum/objective/destroy + dangerrating = 10 + martyr_compatible = 1 + +/datum/objective/destroy/find_target() + var/list/possible_targets = active_ais(1) + var/mob/living/silicon/ai/target_ai = pick(possible_targets) + target = target_ai.mind + update_explanation_text() + return target + +/datum/objective/destroy/check_completion() + if(target && target.current) + if(target.current.stat == DEAD || target.current.z > 6 || !target.current.ckey) //Borgs/brains/AIs count as dead for traitor objectives. --NeoFite + return 1 + return 0 + return 1 + +/datum/objective/destroy/update_explanation_text() + ..() + if(target && target.current) + explanation_text = "Destroy [target.name], the experimental AI." + else + explanation_text = "Free Objective" + +/datum/objective/steal_five_of_type + explanation_text = "Steal at least five items!" + var/list/wanted_items = list(/obj/item) + +/datum/objective/steal_five_of_type/New() + ..() + wanted_items = typecacheof(wanted_items) + +/datum/objective/steal_five_of_type/summon_guns + explanation_text = "Steal at least five guns!" + wanted_items = list(/obj/item/weapon/gun) + +/datum/objective/steal_five_of_type/summon_magic + explanation_text = "Steal at least five magical artefacts!" + wanted_items = list(/obj/item/weapon/spellbook, /obj/item/weapon/gun/magic, /obj/item/clothing/suit/space/hardsuit/wizard, /obj/item/weapon/scrying, /obj/item/weapon/antag_spawner/contract, /obj/item/device/necromantic_stone) + +/datum/objective/steal_five_of_type/check_completion() + if(!isliving(owner.current)) + return 0 + var/stolen_count = 0 + var/list/all_items = owner.current.GetAllContents() //this should get things in cheesewheels, books, etc. + for(var/obj/I in all_items) //Check for wanted items + if(is_type_in_typecache(I, wanted_items)) + stolen_count++ + if(stolen_count >= 5) + return 1 + else + return 0 + return 0 + + +//////////////////////////////// +// Changeling team objectives // +//////////////////////////////// + +/datum/objective/changeling_team_objective //Abstract type + martyr_compatible = 0 //Suicide is not teamwork! + explanation_text = "Changeling Friendship!" + var/min_lings = 3 //Minimum amount of lings for this team objective to be possible + var/escape_objective_compatible = FALSE + + +//Impersonate department +//Picks as many people as it can from a department (Security,Engineer,Medical,Science) +//and tasks the lings with killing and replacing them +/datum/objective/changeling_team_objective/impersonate_department + explanation_text = "Ensure X derpartment are killed, impersonated, and replaced by Changelings" + var/command_staff_only = FALSE //if this is true, it picks command staff instead + var/list/department_minds = list() + var/list/department_real_names = list() + var/department_string = "" + + +/datum/objective/changeling_team_objective/impersonate_department/proc/get_department_staff() + department_minds = list() + department_real_names = list() + + var/list/departments = list("Head of Security","Research Director","Chief Engineer","Chief Medical Officer") + var/department_head = pick(departments) + switch(department_head) + if("Head of Security") + department_string = "security" + if("Research Director") + department_string = "science" + if("Chief Engineer") + department_string = "engineering" + if("Chief Medical Officer") + department_string = "medical" + + var/ling_count = ticker.mode.changelings + + for(var/datum/mind/M in ticker.minds) + if(M in ticker.mode.changelings) + continue + if(department_head in get_department_heads(M.assigned_role)) + if(ling_count) + ling_count-- + department_minds += M + department_real_names += M.current.real_name + else + break + + if(!department_minds.len) + log_game("[type] has failed to find department staff, and has removed itself. the round will continue normally") + owner.objectives -= src + qdel(src) + return + + +/datum/objective/changeling_team_objective/impersonate_department/proc/get_heads() + department_minds = list() + department_real_names = list() + + //Needed heads is between min_lings and the maximum possible amount of command roles + //So at the time of writing, rand(3,6), it's also capped by the amount of lings there are + //Because you can't fill 6 head roles with 3 lings + + var/needed_heads = rand(min_lings,command_positions.len) + needed_heads = min(ticker.mode.changelings.len,needed_heads) + + var/list/heads = ticker.mode.get_living_heads() + for(var/datum/mind/head in heads) + if(head in ticker.mode.changelings) //Looking at you HoP. + continue + if(needed_heads) + department_minds += head + department_real_names += head.current.real_name + needed_heads-- + else + break + + if(!department_minds.len) + log_game("[type] has failed to find department heads, and has removed itself. the round will continue normally") + owner.objectives -= src + qdel(src) + return + + +/datum/objective/changeling_team_objective/impersonate_department/New(var/text) + ..() + if(command_staff_only) + get_heads() + else + get_department_staff() + + update_explanation_text() + + +/datum/objective/changeling_team_objective/impersonate_department/update_explanation_text() + ..() + if(!department_real_names.len || !department_minds.len) + explanation_text = "Free Objective" + return //Something fucked up, give them a win + + if(command_staff_only) + explanation_text = "Ensure changelings impersonate and escape as the following heads of staff: " + else + explanation_text = "Ensure changelings impersonate and escape as the following members of \the [department_string] department: " + + var/first = 1 + for(var/datum/mind/M in department_minds) + var/string = "[M.name] the [M.assigned_role]" + if(!first) + string = ", [M.name] the [M.assigned_role]" + else + first-- + explanation_text += string + + if(command_staff_only) + explanation_text += ", while the real heads are dead. This is a team objective." + else + explanation_text += ", while the real members are dead. This is a team objective." + + +/datum/objective/changeling_team_objective/impersonate_department/check_completion() + if(!department_real_names.len || !department_minds.len) + return 1 //Something fucked up, give them a win + + var/list/check_names = department_real_names.Copy() + + //Check each department member's mind to see if any of them made it to centcomm alive, if they did it's an automatic fail + for(var/datum/mind/M in department_minds) + if(M in ticker.mode.changelings) //Lings aren't picked for this, but let's be safe + continue + + if(M.current) + var/turf/mloc = get_turf(M.current) + if(mloc.onCentcom() && (M.current.stat != DEAD)) + return 0 //A Non-ling living target got to centcomm, fail + + //Check each staff member has been replaced, by cross referencing changeling minds, changeling current dna, the staff minds and their original DNA names + var/success = 0 + changelings: + for(var/datum/mind/changeling in ticker.mode.changelings) + if(success >= department_minds.len) //We did it, stop here! + return 1 + if(ishuman(changeling.current)) + var/mob/living/carbon/human/H = changeling.current + var/turf/cloc = get_turf(changeling.current) + if(cloc && cloc.onCentcom() && (changeling.current.stat != DEAD)) //Living changeling on centcomm.... + for(var/name in check_names) //Is he (disguised as) one of the staff? + if(H.dna.real_name == name) + check_names -= name //This staff member is accounted for, remove them, so the team don't succeed by escape as 7 of the same engineer + success++ //A living changeling staff member made it to centcomm + continue changelings + + if(success >= department_minds.len) + return 1 + return 0 + + + + +//A subtype of impersonate_derpartment +//This subtype always picks as many command staff as it can (HoS,HoP,Cap,CE,CMO,RD) +//and tasks the lings with killing and replacing them +/datum/objective/changeling_team_objective/impersonate_department/impersonate_heads + explanation_text = "Have X or more heads of staff escape on the shuttle disguised as heads, while the real heads are dead" + command_staff_only = TRUE + + + diff --git a/code/game/gamemodes/objective_items.dm b/code/game/gamemodes/objective_items.dm new file mode 100644 index 0000000..34ea04f --- /dev/null +++ b/code/game/gamemodes/objective_items.dm @@ -0,0 +1,213 @@ +//Contains the target item datums for Steal objectives. + +/datum/objective_item + var/name = "A silly bike horn! Honk!" + var/targetitem = /obj/item/weapon/bikehorn //typepath of the objective item + var/difficulty = 9001 //vaguely how hard it is to do this objective + var/list/excludefromjob = list() //If you don't want a job to get a certain objective (no captain stealing his own medal, etcetc) + var/list/altitems = list() //Items which can serve as an alternative to the objective (darn you blueprints) + var/list/special_equipment = list() + +/datum/objective_item/proc/check_special_completion() //for objectives with special checks (is that slime extract unused? does that intellicard have an ai in it? etcetc) + return 1 + +/datum/objective_item/steal/caplaser + name = "the captain's antique laser gun" + targetitem = /obj/item/weapon/gun/energy/laser/captain + difficulty = 5 + excludefromjob = list("Captain") + +/datum/objective_item/steal/hoslaser + name = "the head of security's personal laser gun" + targetitem = /obj/item/weapon/gun/energy/gun/hos + difficulty = 10 + excludefromjob = list("Head Of Security") + +/datum/objective_item/steal/handtele + name = "a hand teleporter" + targetitem = /obj/item/weapon/hand_tele + difficulty = 5 + excludefromjob = list("Captain") + +/datum/objective_item/steal/jetpack + name = "the Captain's jetpack" + targetitem = /obj/item/weapon/tank/jetpack/oxygen/captain + difficulty = 5 + excludefromjob = list("Captain") + +/datum/objective_item/steal/magboots + name = "the chief engineer's advanced magnetic boots" + targetitem = /obj/item/clothing/shoes/magboots/advance + difficulty = 5 + excludefromjob = list("Chief Engineer") + +/datum/objective_item/steal/capmedal + name = "the medal of captaincy" + targetitem = /obj/item/clothing/tie/medal/gold/captain + difficulty = 5 + excludefromjob = list("Captain") + +/datum/objective_item/steal/hypo + name = "the hypospray" + targetitem = /obj/item/weapon/reagent_containers/hypospray/CMO + difficulty = 5 + excludefromjob = list("Chief Medical Officer") + +/datum/objective_item/steal/nukedisc + name = "the nuclear authentication disk" + targetitem = /obj/item/weapon/disk/nuclear + difficulty = 5 + excludefromjob = list("Captain") + +/datum/objective_item/steal/reflector + name = "a reflector vest" + targetitem = /obj/item/clothing/suit/armor/laserproof + difficulty = 3 + excludefromjob = list("Head of Security", "Warden") + +/datum/objective_item/steal/reactive + name = "the reactive teleport armor" + targetitem = /obj/item/clothing/suit/armor/reactive + difficulty = 5 + excludefromjob = list("Research Director") + +/datum/objective_item/steal/documents + name = "any set of secret documents of any organization" + targetitem = /obj/item/documents //Any set of secret documents. Doesn't have to be NT's + difficulty = 5 + +/datum/objective_item/steal/nuke_core + name = "the heavily radioactive plutonium core from the onboard self-destruct. Take care to wear the proper safety equipment when extracting the core" + targetitem = /obj/item/nuke_core + difficulty = 15 + +/datum/objective_item/steal/nuke_core/New() + special_equipment += /obj/item/weapon/storage/box/syndie_kit/nuke + +//Items with special checks! +/datum/objective_item/steal/plasma + name = "28 moles of plasma (full tank)" + targetitem = /obj/item/weapon/tank + difficulty = 3 + excludefromjob = list("Chief Engineer","Research Director","Station Engineer","Scientist","Atmospheric Technician") + +/datum/objective_item/steal/plasma/check_special_completion(obj/item/weapon/tank/T) + var/target_amount = text2num(name) + var/found_amount = 0 + found_amount += T.air_contents.gases["plasma"] ? T.air_contents.gases["plasma"][MOLES] : 0 + return found_amount>=target_amount + + +/datum/objective_item/steal/functionalai + name = "a functional AI" + targetitem = /obj/item/device/aicard + difficulty = 20 //beyond the impossible + +/datum/objective_item/steal/functionalai/check_special_completion(obj/item/device/aicard/C) + for(var/mob/living/silicon/ai/A in C) + if(isAI(A) && A.stat != 2) //See if any AI's are alive inside that card. + return 1 + return 0 + +/datum/objective_item/steal/blueprints + name = "the station blueprints" + targetitem = /obj/item/areaeditor/blueprints + difficulty = 10 + excludefromjob = list("Chief Engineer") + altitems = list(/obj/item/weapon/photo) + +/datum/objective_item/steal/blueprints/check_special_completion(obj/item/I) + if(istype(I, /obj/item/areaeditor/blueprints)) + return 1 + if(istype(I, /obj/item/weapon/photo)) + var/obj/item/weapon/photo/P = I + if(P.blueprints) //if the blueprints are in frame + return 1 + return 0 + +/datum/objective_item/steal/slime + name = "an unused sample of slime extract" + targetitem = /obj/item/slime_extract + difficulty = 3 + excludefromjob = list("Research Director","Scientist") + +/datum/objective_item/steal/slime/check_special_completion(obj/item/slime_extract/E) + if(E.Uses > 0) + return 1 + return 0 + +//Unique Objectives +/datum/objective_item/unique/docs_red + name = "the \"Red\" secret documents" + targetitem = /obj/item/documents/syndicate/red + difficulty = 10 + +/datum/objective_item/unique/docs_blue + name = "the \"Blue\" secret documents" + targetitem = /obj/item/documents/syndicate/blue + difficulty = 10 + +//Old ninja objectives. +/datum/objective_item/special/pinpointer + name = "the captain's pinpointer" + targetitem = /obj/item/weapon/pinpointer + difficulty = 10 + +/datum/objective_item/special/aegun + name = "an advanced energy gun" + targetitem = /obj/item/weapon/gun/energy/gun/nuclear + difficulty = 10 + +/datum/objective_item/special/ddrill + name = "a diamond drill" + targetitem = /obj/item/weapon/pickaxe/drill/diamonddrill + difficulty = 10 + +/datum/objective_item/special/boh + name = "a bag of holding" + targetitem = /obj/item/weapon/storage/backpack/holding + difficulty = 10 + +/datum/objective_item/special/hypercell + name = "a hyper-capacity cell" + targetitem = /obj/item/weapon/stock_parts/cell/hyper + difficulty = 5 + +/datum/objective_item/special/laserpointer + name = "a laser pointer" + targetitem = /obj/item/device/laser_pointer + difficulty = 5 + +/datum/objective_item/special/corgimeat + name = "a piece of corgi meat" + targetitem = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/corgi + difficulty = 5 + +//Stack objectives get their own subtype +/datum/objective_item/stack + name = "5 cardboards" + targetitem = /obj/item/stack/sheet/cardboard + difficulty = 9001 + +/datum/objective_item/stack/check_special_completion(obj/item/stack/S) + var/target_amount = text2num(name) + var/found_amount = 0 + + if(istype(S, targetitem)) + found_amount = S.amount + return found_amount>=target_amount + +/datum/objective_item/stack/diamond + name = "10 diamonds" + targetitem = /obj/item/stack/sheet/mineral/diamond + difficulty = 10 + +/datum/objective_item/stack/gold + name = "50 gold bars" + targetitem = /obj/item/stack/sheet/mineral/gold + difficulty = 15 + +/datum/objective_item/stack/uranium + name = "25 refined uranium bars" + targetitem = /obj/item/stack/sheet/mineral/uranium + difficulty = 10 diff --git a/code/game/gamemodes/revolution/revolution.dm b/code/game/gamemodes/revolution/revolution.dm new file mode 100644 index 0000000..87793e3 --- /dev/null +++ b/code/game/gamemodes/revolution/revolution.dm @@ -0,0 +1,396 @@ +// To add a rev to the list of revolutionaries, make sure it's rev (with if(ticker.mode.name == "revolution)), +// then call ticker.mode:add_revolutionary(_THE_PLAYERS_MIND_) +// nothing else needs to be done, as that proc will check if they are a valid target. +// Just make sure the converter is a head before you call it! +// To remove a rev (from brainwashing or w/e), call ticker.mode:remove_revolutionary(_THE_PLAYERS_MIND_), +// this will also check they're not a head, so it can just be called freely +// If the game somtimes isn't registering a win properly, then ticker.mode.check_win() isn't being called somewhere. + +/datum/game_mode + var/list/datum/mind/head_revolutionaries = list() + var/list/datum/mind/revolutionaries = list() + +/datum/game_mode/revolution + name = "revolution" + config_tag = "revolution" + antag_flag = ROLE_REV + restricted_jobs = list("Security Officer", "Warden", "Detective", "AI", "Cyborg","Captain", "Head of Personnel", "Head of Security", "Chief Engineer", "Research Director", "Chief Medical Officer") + required_players = 20 + required_enemies = 1 + recommended_enemies = 3 + enemy_minimum_age = 14 + + announce_span = "danger" + announce_text = "Some crewmembers are attempting a coup!\n\ + Revolutionaries: Expand your cause and overthrow the heads of staff by execution or otherwise.\n\ + Crew: Prevent the revolutionaries from taking over the station." + + var/finished = 0 + var/check_counter = 0 + var/max_headrevs = 3 + var/list/datum/mind/heads_to_kill = list() + +/////////////////////////// +//Announces the game type// +/////////////////////////// +/datum/game_mode/revolution/announce() + world << "The current game mode is - Revolution!" + world << "Some crewmembers are attempting to start a revolution!
    \nRevolutionaries - Kill the Captain, HoP, HoS, CE, RD and CMO. Convert other crewmembers (excluding the heads of staff, and security officers) to your cause by flashing them. Protect your leaders.
    \nPersonnel - Protect the heads of staff. Kill the leaders of the revolution, and brainwash the other revolutionaries (by beating them in the head).
    " + + +/////////////////////////////////////////////////////////////////////////////// +//Gets the round setup, cancelling if there's not enough players at the start// +/////////////////////////////////////////////////////////////////////////////// +/datum/game_mode/revolution/pre_setup() + + if(config.protect_roles_from_antagonist) + restricted_jobs += protected_jobs + + if(config.protect_assistant_from_antagonist) + restricted_jobs += "Assistant" + + for (var/i=1 to max_headrevs) + if (antag_candidates.len==0) + break + var/datum/mind/lenin = pick(antag_candidates) + antag_candidates -= lenin + head_revolutionaries += lenin + lenin.restricted_roles = restricted_jobs + + if(head_revolutionaries.len < required_enemies) + return 0 + + return 1 + + +/datum/game_mode/revolution/post_setup() + var/list/heads = get_living_heads() + var/list/sec = get_living_sec() + var/weighted_score = min(max(round(heads.len - ((8 - sec.len) / 3)),1),max_headrevs) + + + for(var/datum/mind/rev_mind in head_revolutionaries) //People with return to lobby may still be in the lobby. Let's pick someone else in that case. + if(istype(rev_mind.current,/mob/new_player)) + head_revolutionaries -= rev_mind + var/list/newcandidates = shuffle(antag_candidates) + if(newcandidates.len == 0) + continue + for(var/M in newcandidates) + var/datum/mind/lenin = M + antag_candidates -= lenin + newcandidates -= lenin + if(istype(lenin.current,/mob/new_player)) //We don't want to make the same mistake again + continue + else + var/mob/Nm = lenin.current + if(Nm.job in restricted_jobs) //Don't make the HOS a replacement revhead + antag_candidates += lenin //Let's let them keep antag chance for other antags + continue + + head_revolutionaries += lenin + break + + while(weighted_score < head_revolutionaries.len) //das vi danya + var/datum/mind/trotsky = pick(head_revolutionaries) + antag_candidates += trotsky + head_revolutionaries -= trotsky + update_rev_icons_removed(trotsky) + + for(var/datum/mind/rev_mind in head_revolutionaries) + log_game("[rev_mind.key] (ckey) has been selected as a head rev") + for(var/datum/mind/head_mind in heads) + mark_for_death(rev_mind, head_mind) + + spawn(rand(10,100)) + // equip_traitor(rev_mind.current, 1) //changing how revs get assigned their uplink so they can get PDA uplinks. --NEO + // Removing revolutionary uplinks. -Pete + equip_revolutionary(rev_mind.current) + + for(var/datum/mind/rev_mind in head_revolutionaries) + greet_revolutionary(rev_mind) + modePlayer += head_revolutionaries + SSshuttle.registerHostileEnvironment(src) + ..() + + +/datum/game_mode/revolution/process() + check_counter++ + if(check_counter >= 5) + if(!finished) + check_heads() + ticker.mode.check_win() + check_counter = 0 + return 0 + + +/datum/game_mode/proc/forge_revolutionary_objectives(datum/mind/rev_mind) + var/list/heads = get_living_heads() + for(var/datum/mind/head_mind in heads) + var/datum/objective/mutiny/rev_obj = new + rev_obj.owner = rev_mind + rev_obj.target = head_mind + rev_obj.explanation_text = "Assassinate or exile [head_mind.name], the [head_mind.assigned_role]." + rev_mind.objectives += rev_obj + +/datum/game_mode/proc/greet_revolutionary(datum/mind/rev_mind, you_are=1) + update_rev_icons_added(rev_mind) + if (you_are) + rev_mind.current << "You are a member of the revolutionaries' leadership!" + rev_mind.special_role = "Head Revolutionary" + rev_mind.announce_objectives() + +///////////////////////////////////////////////////////////////////////////////// +//This are equips the rev heads with their gear, and makes the clown not clumsy// +///////////////////////////////////////////////////////////////////////////////// +/datum/game_mode/proc/equip_revolutionary(mob/living/carbon/human/mob) + if(!istype(mob)) + return + + if (mob.mind) + if (mob.mind.assigned_role == "Clown") + mob << "Your training has allowed you to overcome your clownish nature, allowing you to wield weapons without harming yourself." + mob.dna.remove_mutation(CLOWNMUT) + + + var/obj/item/device/assembly/flash/T = new(mob) + var/obj/item/toy/crayon/spraycan/R = new(mob) + var/obj/item/clothing/glasses/hud/security/chameleon/C = new(mob) + + var/list/slots = list ( + "backpack" = slot_in_backpack, + "left pocket" = slot_l_store, + "right pocket" = slot_r_store + ) + var/where = mob.equip_in_one_of_slots(T, slots) + var/where2 = mob.equip_in_one_of_slots(C, slots) + mob.equip_in_one_of_slots(R,slots) + + if (!where2) + mob << "The Syndicate were unfortunately unable to get you a chameleon security HUD." + else + mob << "The chameleon security HUD in your [where2] will help you keep track of who is mindshield-implanted, and unable to be recruited." + + if (!where) + mob << "The Syndicate were unfortunately unable to get you a flash." + else + mob << "The flash in your [where] will help you to persuade the crew to join your cause." + return 1 + +///////////////////////////////// +//Gives head revs their targets// +///////////////////////////////// +/datum/game_mode/revolution/proc/mark_for_death(datum/mind/rev_mind, datum/mind/head_mind) + var/datum/objective/mutiny/rev_obj = new + rev_obj.owner = rev_mind + rev_obj.target = head_mind + rev_obj.explanation_text = "Assassinate [head_mind.name], the [head_mind.assigned_role]." + rev_mind.objectives += rev_obj + heads_to_kill += head_mind + +//////////////////////////////////////////// +//Checks if new heads have joined midround// +//////////////////////////////////////////// +/datum/game_mode/revolution/proc/check_heads() + var/list/heads = get_all_heads() + var/list/sec = get_all_sec() + if(heads_to_kill.len < heads.len) + var/list/new_heads = heads - heads_to_kill + for(var/datum/mind/head_mind in new_heads) + for(var/datum/mind/rev_mind in head_revolutionaries) + mark_for_death(rev_mind, head_mind) + + if(head_revolutionaries.len < max_headrevs && head_revolutionaries.len < round(heads.len - ((8 - sec.len) / 3))) + latejoin_headrev() + +/////////////////////////////// +//Adds a new headrev midround// +/////////////////////////////// +/datum/game_mode/revolution/proc/latejoin_headrev() + if(revolutionaries) //Head Revs are not in this list + var/list/promotable_revs = list() + for(var/datum/mind/khrushchev in revolutionaries) + if(khrushchev.current && khrushchev.current.client && khrushchev.current.stat != DEAD) + if(ROLE_REV in khrushchev.current.client.prefs.be_special) + promotable_revs += khrushchev + if(promotable_revs.len) + var/datum/mind/stalin = pick(promotable_revs) + revolutionaries -= stalin + head_revolutionaries += stalin + log_game("[stalin.key] (ckey) has been promoted to a head rev") + equip_revolutionary(stalin.current) + forge_revolutionary_objectives(stalin) + greet_revolutionary(stalin) + +////////////////////////////////////// +//Checks if the revs have won or not// +////////////////////////////////////// +/datum/game_mode/revolution/check_win() + if(check_rev_victory()) + finished = 1 + else if(check_heads_victory()) + finished = 2 + return + +/////////////////////////////// +//Checks if the round is over// +/////////////////////////////// +/datum/game_mode/revolution/check_finished() + if(config.continuous["revolution"]) + if(finished) + SSshuttle.clearHostileEnvironment(src) + return ..() + if(finished != 0) + return 1 + else + return ..() + +/////////////////////////////////////////////////// +//Deals with converting players to the revolution// +/////////////////////////////////////////////////// +/proc/is_revolutionary(mob/M) + return M && istype(M) && M.mind && ticker && ticker.mode && M.mind in ticker.mode.revolutionaries + +/proc/is_head_revolutionary(mob/M) + return M && istype(M) && M.mind && ticker && ticker.mode && M.mind in ticker.mode.head_revolutionaries + +/proc/is_revolutionary_in_general(mob/M) + return is_revolutionary(M) || is_head_revolutionary(M) + +/datum/game_mode/proc/add_revolutionary(datum/mind/rev_mind) + if(rev_mind.assigned_role in command_positions) + return 0 + var/mob/living/carbon/human/H = rev_mind.current//Check to see if the potential rev is implanted + if(H.isloyal()) + return 0 + if((rev_mind in revolutionaries) || (rev_mind in head_revolutionaries)) + return 0 + revolutionaries += rev_mind + if(iscarbon(rev_mind.current)) + var/mob/living/carbon/carbon_mob = rev_mind.current + carbon_mob.silent = max(carbon_mob.silent, 5) + carbon_mob.flash_act(1, 1) + rev_mind.current.Stun(5) + rev_mind.current << " You are now a revolutionary! Help your cause. Do not harm your fellow freedom fighters. You can identify your comrades by the red \"R\" icons, and your leaders by the blue \"R\" icons. Help them kill the heads to win the revolution!" + rev_mind.current.attack_log += "\[[time_stamp()]\] Has been converted to the revolution!" + rev_mind.special_role = "Revolutionary" + update_rev_icons_added(rev_mind) + if(jobban_isbanned(rev_mind.current, ROLE_REV)) + addtimer(src, "replace_jobbaned_player", 0, FALSE, rev_mind.current, ROLE_REV, ROLE_REV) + return 1 +////////////////////////////////////////////////////////////////////////////// +//Deals with players being converted from the revolution (Not a rev anymore)// // Modified to handle borged MMIs. Accepts another var if the target is being borged at the time -- Polymorph. +////////////////////////////////////////////////////////////////////////////// +/datum/game_mode/proc/remove_revolutionary(datum/mind/rev_mind , beingborged) + var/remove_head = 0 + if(beingborged && (rev_mind in head_revolutionaries)) + head_revolutionaries -= rev_mind + remove_head = 1 + + if((rev_mind in revolutionaries) || remove_head) + revolutionaries -= rev_mind + rev_mind.special_role = null + rev_mind.current.attack_log += "\[[time_stamp()]\] Has renounced the revolution!" + + if(beingborged) + rev_mind.current << "The frame's firmware detects and deletes your neural reprogramming! You remember nothing[remove_head ? "." : " but the name of the one who flashed you."]" + message_admins("[ADMIN_LOOKUPFLW(rev_mind.current)] has been borged while being a [remove_head ? "leader" : " member"] of the revolution.") + + else + rev_mind.current.Paralyse(5) + rev_mind.current << "You have been brainwashed! You are no longer a revolutionary! Your memory is hazy from the time you were a rebel...the only thing you remember is the name of the one who brainwashed you..." + + update_rev_icons_removed(rev_mind) + for(var/mob/living/M in view(rev_mind.current)) + if(beingborged) + M << "The frame beeps contentedly, purging the hostile memory engram from the MMI before initalizing it." + + else + M << "[rev_mind.current] looks like they just remembered their real allegiance!" + +///////////////////////////////////// +//Adds the rev hud to a new convert// +///////////////////////////////////// +/datum/game_mode/proc/update_rev_icons_added(datum/mind/rev_mind) + var/datum/atom_hud/antag/revhud = huds[ANTAG_HUD_REV] + revhud.join_hud(rev_mind.current) + set_antag_hud(rev_mind.current, ((rev_mind in head_revolutionaries) ? "rev_head" : "rev")) + +///////////////////////////////////////// +//Removes the hud from deconverted revs// +///////////////////////////////////////// +/datum/game_mode/proc/update_rev_icons_removed(datum/mind/rev_mind) + var/datum/atom_hud/antag/revhud = huds[ANTAG_HUD_REV] + revhud.leave_hud(rev_mind.current) + set_antag_hud(rev_mind.current, null) + +////////////////////////// +//Checks for rev victory// +////////////////////////// +/datum/game_mode/revolution/proc/check_rev_victory() + for(var/datum/mind/rev_mind in head_revolutionaries) + for(var/datum/objective/mutiny/objective in rev_mind.objectives) + if(!(objective.check_completion())) + return 0 + + return 1 + +///////////////////////////// +//Checks for a head victory// +///////////////////////////// +/datum/game_mode/revolution/proc/check_heads_victory() + for(var/datum/mind/rev_mind in head_revolutionaries) + var/turf/T = get_turf(rev_mind.current) + if((rev_mind) && (rev_mind.current) && (rev_mind.current.stat != 2) && T && (T.z == ZLEVEL_STATION)) + if(ishuman(rev_mind.current)) + return 0 + return 1 + +////////////////////////////////////////////////////////////////////// +//Announces the end of the game with all relavent information stated// +////////////////////////////////////////////////////////////////////// +/datum/game_mode/revolution/declare_completion() + if(finished == 1) + feedback_set_details("round_end_result","win - heads killed") + world << "The heads of staff were killed or exiled! The revolutionaries win!" + else if(finished == 2) + feedback_set_details("round_end_result","loss - rev heads killed") + world << "The heads of staff managed to stop the revolution!" + ..() + return 1 + +/datum/game_mode/proc/auto_declare_completion_revolution() + var/list/targets = list() + if(head_revolutionaries.len || istype(ticker.mode,/datum/game_mode/revolution)) + var/num_revs = 0 + var/num_survivors = 0 + for(var/mob/living/carbon/survivor in living_mob_list) + if(survivor.ckey) + num_survivors++ + if(survivor.mind) + if((survivor.mind in head_revolutionaries) || (survivor.mind in revolutionaries)) + num_revs++ + if(num_survivors) + world << "[TAB]Command's Approval Rating: [100 - round((num_revs/num_survivors)*100, 0.1)]%" // % of loyal crew + var/text = "
    The head revolutionaries were:" + for(var/datum/mind/headrev in head_revolutionaries) + text += printplayer(headrev, 1) + text += "
    " + world << text + + if(revolutionaries.len || istype(ticker.mode,/datum/game_mode/revolution)) + var/text = "
    The revolutionaries were:" + for(var/datum/mind/rev in revolutionaries) + text += printplayer(rev, 1) + text += "
    " + world << text + + if( head_revolutionaries.len || revolutionaries.len || istype(ticker.mode,/datum/game_mode/revolution) ) + var/text = "
    The heads of staff were:" + var/list/heads = get_all_heads() + for(var/datum/mind/head in heads) + var/target = (head in targets) + if(target) + text += "Target" + text += printplayer(head, 1) + text += "
    " + world << text diff --git a/code/game/gamemodes/sandbox/airlock_maker.dm b/code/game/gamemodes/sandbox/airlock_maker.dm new file mode 100644 index 0000000..0f80455 --- /dev/null +++ b/code/game/gamemodes/sandbox/airlock_maker.dm @@ -0,0 +1,138 @@ +/* + This is for the sandbox for now, + maybe useful later for an actual thing? + -Sayu +*/ + +/obj/structure/door_assembly + var/datum/airlock_maker/maker = null + +/obj/structure/door_assembly/attack_hand() + ..() + if(maker) + maker.interact() + +/datum/airlock_maker + var/obj/structure/door_assembly/linked = null + + var/list/access_used = null + var/require_all = 1 + + var/paintjob = "none" + var/glassdoor = 0 + + var/doorname = "airlock" + +/datum/airlock_maker/New(var/atom/target_loc) + linked = new(target_loc) + linked.maker = src + linked.anchored = 0 + access_used = list() + + interact() + +/datum/airlock_maker/proc/linkpretty(href,desc,active) + if(!desc) + var/static/list/defaults = list("No","Yes") + desc = defaults[active+1] + if(active) + return "[desc]" + return "[desc]" + +/datum/airlock_maker/proc/interact() + var/list/leftcolumn = list() + var/list/rightcolumn = list() + leftcolumn += "Required Access" + for(var/access in get_all_accesses()) + leftcolumn += linkpretty("access=[access]",get_access_desc(access),access in access_used) + leftcolumn += "Require all listed accesses: [linkpretty("reqall",null,require_all)]" + + rightcolumn += "Paintjob" + for(var/option in list("none","engineering","atmos","security","command","medical","research","mining","maintenance","external","highsecurity")) + rightcolumn += linkpretty("paint=[option]",option,option == paintjob) + rightcolumn += "Glass door: " + linkpretty("glass",null,glassdoor) + "

    " + var/length = max(leftcolumn.len,rightcolumn.len) + + var/dat = "You may move the model airlock around. A new airlock will be built in its space when you click done, below.

    " + dat += "Door name: \"[doorname]\"" + dat += "" + for(var/i=1; i<=length; i++) + dat += "" + + dat += "
    " + if(i<=leftcolumn.len) + dat += leftcolumn[i] + dat += "" + if(i<=rightcolumn.len) + dat += rightcolumn[i] + dat += "

    Finalize Airlock Construction | Cancel and Destroy Airlock" + usr << browse(dat,"window=airlockmaker") + +/datum/airlock_maker/Topic(var/href,var/list/href_list) + if(!usr) return + if(!src || !linked || !linked.loc) + usr << browse(null,"window=airlockmaker") + return + + if("rename" in href_list) + var/newname = stripped_input(usr,"New airlock name:","Name the airlock",doorname) + if(newname) + doorname = newname + if("access" in href_list) + var/value = text2num(href_list["access"]) + access_used ^= value + if("reqall" in href_list) + require_all = !require_all + if("paint" in href_list) + paintjob = href_list["paint"] + if("glass" in href_list) + glassdoor = !glassdoor + + if("cancel" in href_list) + usr << browse(null,"window=airlockmaker") + qdel(linked) + qdel(src) + return + + if("done" in href_list) + usr << browse(null,"window=airlockmaker") + var/turf/t_loc = linked.loc + qdel(linked) + if(!istype(t_loc)) + return + + var/target_type = "/obj/machinery/door/airlock" + if(glassdoor) + if(paintjob != "none") + if(paintjob in list("external","highsecurity","maintenance")) // no glass version + target_type += "/[paintjob]" + else + target_type += "/glass_[paintjob]" + else + target_type += "/glass" + else if(paintjob != "none") + target_type += "/[paintjob]" + var/final = target_type + target_type = text2path(final) + if(!target_type) + usr << "Didn't work, contact Sayu with this: [final]" + usr << browse(null,"window=airlockmaker") + return + + var/obj/machinery/door/D = new target_type(t_loc) + + D.name = doorname + + if(access_used.len == 0) + D.req_access = null + D.req_one_access = null + else if(require_all) + D.req_access = access_used.Copy() + D.req_one_access = null + else + D.req_access = null + D.req_one_access = access_used.Copy() + + return + + interact() diff --git a/code/game/gamemodes/sandbox/h_sandbox.dm b/code/game/gamemodes/sandbox/h_sandbox.dm new file mode 100644 index 0000000..632bbae --- /dev/null +++ b/code/game/gamemodes/sandbox/h_sandbox.dm @@ -0,0 +1,304 @@ +//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 + +var/hsboxspawn = 1 + +/mob + var/datum/hSB/sandbox = null +/mob/proc/CanBuild() + if(master_mode == "sandbox") + sandbox = new/datum/hSB + sandbox.owner = src.ckey + if(src.client.holder) + sandbox.admin = 1 + verbs += new/mob/proc/sandbox_panel +/mob/proc/sandbox_panel() + set name = "Sandbox Panel" + if(sandbox) + sandbox.update() + +/datum/hSB + var/owner = null + var/admin = 0 + + var/clothinfo = null + var/reaginfo = null + var/objinfo = null + var/canisterinfo = null + var/hsbinfo = null + //items that shouldn't spawn on the floor because they would bug or act weird + var/global/list/spawn_forbidden = list( + /obj/item/tk_grab, /obj/item/weapon/implant, // not implanter, the actual thing that is inside you + /obj/item/assembly,/obj/item/device/onetankbomb, /obj/item/radio, /obj/item/device/pda/ai, + /obj/item/device/uplink, /obj/item/smallDelivery, /obj/item/missile,/obj/item/projectile, + /obj/item/borg/sight,/obj/item/borg/stun,/obj/item/weapon/robot_module) + +/datum/hSB/proc/update() + var/global/list/hrefs = list( + "Space Gear", + "Suit Up (Space Travel Gear)" = "hsbsuit", + "Spawn Gas Mask" = "hsbspawn&path=[/obj/item/clothing/mask/gas]", + "Spawn Emergency Air Tank" = "hsbspawn&path=[/obj/item/weapon/tank/internals/emergency_oxygen/double]", + + "Standard Tools", + "Spawn Flashlight" = "hsbspawn&path=[/obj/item/device/flashlight]", + "Spawn Toolbox" = "hsbspawn&path=[/obj/item/weapon/storage/toolbox/mechanical]", + "Spawn Light Replacer" = "hsbspawn&path=[/obj/item/device/lightreplacer]", + "Spawn Medical Kit" = "hsbspawn&path=[/obj/item/weapon/storage/firstaid/regular]", + "Spawn All-Access ID" = "hsbaaid", + + "Building Supplies", + "Spawn 50 Wood" = "hsbwood", + "Spawn 50 Metal" = "hsbmetal", + "Spawn 50 Plasteel" = "hsbplasteel", + "Spawn 50 Reinforced Glass" = "hsbrglass", + "Spawn 50 Glass" = "hsbglass", + "Spawn Full Cable Coil" = "hsbspawn&path=[/obj/item/stack/cable_coil]", + "Spawn Hyper Capacity Power Cell" = "hsbspawn&path=[/obj/item/weapon/stock_parts/cell/hyper]", + "Spawn Inf. Capacity Power Cell" = "hsbspawn&path=[/obj/item/weapon/stock_parts/cell/infinite]", + "Spawn Rapid Construction Device" = "hsbrcd", + "Spawn RCD Ammo" = "hsb_safespawn&path=[/obj/item/weapon/rcd_ammo]", + "Spawn Airlock" = "hsbairlock", + + "Miscellaneous", + "Spawn Air Scrubber" = "hsbscrubber", + "Spawn Welding Fuel Tank" = "hsbspawn&path=[/obj/structure/reagent_dispensers/fueltank]", + "Spawn Water Tank" = "hsbspawn&path=[/obj/structure/reagent_dispensers/watertank]", + + "Bots", + "Spawn Cleanbot" = "hsbspawn&path=[/mob/living/simple_animal/bot/cleanbot]", + "Spawn Floorbot" = "hsbspawn&path=[/mob/living/simple_animal/bot/floorbot]", + "Spawn Medbot" = "hsbspawn&path=[/mob/living/simple_animal/bot/medbot]", + + "Canisters", + "Spawn O2 Canister" = "hsbspawn&path=[/obj/machinery/portable_atmospherics/canister/oxygen]", + "Spawn Air Canister" = "hsbspawn&path=[/obj/machinery/portable_atmospherics/canister/air]") + + + if(!hsbinfo) + hsbinfo = "
    Sandbox Panel

    " + if(admin) + hsbinfo += "Administration
    " + hsbinfo += "- Toggle Object Spawning
    " + hsbinfo += "- Toggle Item Spawn Panel Auto-close
    " + hsbinfo += "Canister Spawning
    " + hsbinfo += "- Spawn Plasma Canister
    " + hsbinfo += "- Spawn CO2 Canister
    " + hsbinfo += "- Spawn Nitrogen Canister
    " + hsbinfo += "- Spawn N2O Canister
    " + else + hsbinfo += "Some item spawning may be disabled by the administrators.
    " + hsbinfo += "Only administrators may spawn dangerous canisters.
    " + for(var/T in hrefs) + var/href = hrefs[T] + if(href) + hsbinfo += "- [T]
    " + else + hsbinfo += "
    [T]
    " + hsbinfo += "
    " + hsbinfo += "- Spawn Clothing...
    " + hsbinfo += "- Spawn Reagent Container...
    " + hsbinfo += "- Spawn Other Item...

    " + + usr << browse(hsbinfo, "window=hsbpanel") + +/datum/hSB/Topic(href, href_list) + if(!usr || !src || !(src.owner == usr.ckey)) + if(usr) + usr << browse(null,"window=sandbox") + return + + if(href_list["hsb"]) + switch(href_list["hsb"]) + // + // Admin: toggle spawning + // + if("hsbtobj") + if(!admin) return + if(hsboxspawn) + world << "Sandbox: \black[usr.key] has disabled object spawning!" + hsboxspawn = 0 + return + else + world << "Sandbox: \black[usr.key] has enabled object spawning!" + hsboxspawn = 1 + return + // + // Admin: Toggle auto-close + // + if("hsbtac") + if(!admin) return + if(config.sandbox_autoclose) + world << "Sandbox: \black [usr.key] has removed the object spawn limiter." + config.sandbox_autoclose = 0 + else + world << "Sandbox: \black [usr.key] has added a limiter to object spawning. The window will now auto-close after use." + config.sandbox_autoclose = 1 + return + // + // Spacesuit with full air jetpack set as internals + // + if("hsbsuit") + var/mob/living/carbon/human/P = usr + if(!istype(P)) return + if(P.wear_suit) + P.wear_suit.loc = P.loc + P.wear_suit.layer = initial(P.wear_suit.layer) + P.wear_suit.plane = initial(P.wear_suit.plane) + P.wear_suit = null + P.wear_suit = new/obj/item/clothing/suit/space(P) + P.wear_suit.layer = ABOVE_HUD_LAYER + P.wear_suit.plane = ABOVE_HUD_PLANE + P.update_inv_wear_suit() + if(P.head) + P.head.loc = P.loc + P.head.layer = initial(P.head.layer) + P.head.plane = initial(P.head.plane) + P.head = null + P.head = new/obj/item/clothing/head/helmet/space(P) + P.head.layer = ABOVE_HUD_LAYER + P.head.plane = ABOVE_HUD_PLANE + P.update_inv_head() + if(P.wear_mask) + P.wear_mask.loc = P.loc + P.wear_mask.layer = initial(P.wear_mask.layer) + P.wear_mask.plane = initial(P.wear_mask.plane) + P.wear_mask = null + P.wear_mask = new/obj/item/clothing/mask/gas(P) + P.wear_mask.layer = ABOVE_HUD_LAYER + P.wear_mask.plane = ABOVE_HUD_PLANE + P.update_inv_wear_mask() + if(P.back) + P.back.loc = P.loc + P.back.layer = initial(P.back.layer) + P.back.plane = initial(P.back.plane) + P.back = null + P.back = new/obj/item/weapon/tank/jetpack/oxygen(P) + P.back.layer = ABOVE_HUD_LAYER + P.back.plane = ABOVE_HUD_PLANE + P.update_inv_back() + P.internal = P.back + P.update_internals_hud_icon(1) + + if("hsbscrubber") // This is beyond its normal capability but this is sandbox and you spawned one, I assume you need it + var/obj/hsb = new/obj/machinery/portable_atmospherics/scrubber{volume_rate=50*ONE_ATMOSPHERE;on=1}(usr.loc) + hsb.update_icon() // hackish but it wasn't meant to be spawned I guess? + + // + // Stacked Materials + // + + if("hsbrglass") + new/obj/item/stack/sheet/rglass{amount=50}(usr.loc) + + if("hsbmetal") + new/obj/item/stack/sheet/metal{amount=50}(usr.loc) + + if("hsbplasteel") + new/obj/item/stack/sheet/plasteel{amount=50}(usr.loc) + + if("hsbglass") + new/obj/item/stack/sheet/glass{amount=50}(usr.loc) + + if("hsbwood") + new/obj/item/stack/sheet/mineral/wood{amount=50}(usr.loc) + + // + // All access ID + // + if("hsbaaid") + var/obj/item/weapon/card/id/gold/ID = new(usr.loc) + ID.registered_name = usr.real_name + ID.assignment = "Sandbox" + ID.access = get_all_accesses() + ID.update_label() + + // + // RCD - starts with full clip + // Spawn check due to grief potential (destroying floors, walls, etc) + // + if("hsbrcd") + if(!hsboxspawn) return + + new/obj/item/weapon/rcd/combat(usr.loc) + + // + // New sandbox airlock maker + // + if("hsbairlock") + new /datum/airlock_maker(usr.loc) + + // + // Object spawn window + // + + // Clothing + if("hsbcloth") + if(!hsboxspawn) return + + if(!clothinfo) + clothinfo = "Clothing (Reagent Containers) (Other Items)

    " + var/list/all_items = subtypesof(/obj/item/clothing) + for(var/typekey in spawn_forbidden) + all_items -= typesof(typekey) + for(var/O in reverseRange(all_items)) + clothinfo += "[O]
    " + + usr << browse(clothinfo,"window=sandbox") + + // Reagent containers + if("hsbreag") + if(!hsboxspawn) return + + if(!reaginfo) + reaginfo = "Reagent Containers (Clothing) (Other Items)

    " + var/list/all_items = subtypesof(/obj/item/weapon/reagent_containers) + for(var/typekey in spawn_forbidden) + all_items -= typesof(typekey) + for(var/O in reverseRange(all_items)) + reaginfo += "[O]
    " + + usr << browse(reaginfo,"window=sandbox") + + // Other items + if("hsbobj") + if(!hsboxspawn) return + + if(!objinfo) + objinfo = "Other Items (Clothing) (Reagent Containers)

    " + var/list/all_items = subtypesof(/obj/item/) - typesof(/obj/item/clothing) - typesof(/obj/item/weapon/reagent_containers) + for(var/typekey in spawn_forbidden) + all_items -= typesof(typekey) + + for(var/O in reverseRange(all_items)) + objinfo += "[O]
    " + + usr << browse(objinfo,"window=sandbox") + + // + // Safespawn checks to see if spawning is disabled. + // + if("hsb_safespawn") + if(!hsboxspawn) + usr << browse(null,"window=sandbox") + return + + var/typepath = text2path(href_list["path"]) + if(!typepath) + usr << "Bad path: \"[href_list["path"]]\"" + return + new typepath(usr.loc) + + if(config.sandbox_autoclose) + usr << browse(null,"window=sandbox") + // + // For everything else in the href list + // + if("hsbspawn") + var/typepath = text2path(href_list["path"]) + if(!typepath) + usr << "Bad path: \"[href_list["path"]]\"" + return + new typepath(usr.loc) + + if(config.sandbox_autoclose) + usr << browse(null,"window=sandbox") diff --git a/code/game/gamemodes/sandbox/sandbox.dm b/code/game/gamemodes/sandbox/sandbox.dm new file mode 100644 index 0000000..6ee021d --- /dev/null +++ b/code/game/gamemodes/sandbox/sandbox.dm @@ -0,0 +1,16 @@ +/datum/game_mode/sandbox + name = "sandbox" + config_tag = "sandbox" + required_players = 0 + + announce_span = "info" + announce_text = "Build your own station... or just shoot each other!" + +/datum/game_mode/sandbox/pre_setup() + for(var/mob/M in player_list) + M.CanBuild() + return 1 + +/datum/game_mode/sandbox/post_setup() + ..() + SSshuttle.registerHostileEnvironment(src) diff --git a/code/game/gamemodes/setupgame.dm b/code/game/gamemodes/setupgame.dm new file mode 100644 index 0000000..0329fc7 --- /dev/null +++ b/code/game/gamemodes/setupgame.dm @@ -0,0 +1,18 @@ +/datum/subsystem/objects/proc/setupGenetics() + var/list/avnums = new /list(DNA_STRUC_ENZYMES_BLOCKS) + for(var/i=1, i<=DNA_STRUC_ENZYMES_BLOCKS, i++) + avnums[i] = i + CHECK_TICK + + for(var/A in subtypesof(/datum/mutation/human)) + var/datum/mutation/human/B = new A() + if(B.dna_block == NON_SCANNABLE) + continue + B.dna_block = pick_n_take(avnums) + if(B.quality == POSITIVE) + good_mutations |= B + else if(B.quality == NEGATIVE) + bad_mutations |= B + else if(B.quality == MINOR_NEGATIVE) + not_good_mutations |= B + CHECK_TICK diff --git a/code/game/gamemodes/traitor/double_agents.dm b/code/game/gamemodes/traitor/double_agents.dm new file mode 100644 index 0000000..ec19ad4 --- /dev/null +++ b/code/game/gamemodes/traitor/double_agents.dm @@ -0,0 +1,102 @@ +/datum/game_mode/traitor/double_agents + name = "double agents" + config_tag = "double_agents" + required_players = 25 + required_enemies = 5 + recommended_enemies = 8 + reroll_friendly = 0 + + traitors_possible = 10 //hard limit on traitors if scaling is turned off + num_modifier = 6 // Six additional traitors + + announce_text = "There are double agents trying to kill each other!\n\ + Traitors: Eliminate your targets and protect yourself!\n\ + Crew: Stop the double agents before they can cause too much mayhem." + + var/list/target_list = list() + var/list/late_joining_list = list() + +/datum/game_mode/traitor/double_agents/post_setup() + var/i = 0 + for(var/datum/mind/traitor in traitors) + i++ + if(i + 1 > traitors.len) + i = 0 + target_list[traitor] = traitors[i + 1] + ..() + +/datum/game_mode/traitor/double_agents/forge_traitor_objectives(datum/mind/traitor) + + if(target_list.len && target_list[traitor]) // Is a double agent + + // Assassinate + var/datum/mind/target_mind = target_list[traitor] + if(issilicon(target_mind.current)) + var/datum/objective/destroy/destroy_objective = new + destroy_objective.owner = traitor + destroy_objective.target = target_mind + destroy_objective.update_explanation_text() + traitor.objectives += destroy_objective + else + var/datum/objective/assassinate/kill_objective = new + kill_objective.owner = traitor + kill_objective.target = target_mind + kill_objective.update_explanation_text() + traitor.objectives += kill_objective + + // Escape + if(issilicon(traitor.current)) + var/datum/objective/survive/survive_objective = new + survive_objective.owner = traitor + traitor.objectives += survive_objective + else + var/datum/objective/escape/escape_objective = new + escape_objective.owner = traitor + traitor.objectives += escape_objective + + else + ..() // Give them standard objectives. + return + +/datum/game_mode/traitor/double_agents/add_latejoin_traitor(datum/mind/character) + + check_potential_agents() + + // As soon as we get 3 or 4 extra latejoin traitors, make them traitors and kill each other. + if(late_joining_list.len >= rand(3, 4)) + // True randomness + shuffle(late_joining_list) + // Reset the target_list, it'll be used again in force_traitor_objectives + target_list = list() + + // Basically setting the target_list for who is killing who + var/i = 0 + for(var/datum/mind/traitor in late_joining_list) + i++ + if(i + 1 > late_joining_list.len) + i = 0 + target_list[traitor] = late_joining_list[i + 1] + traitor.special_role = traitor_name + + // Now, give them their targets + for(var/datum/mind/traitor in target_list) + ..(traitor) + + late_joining_list = list() + else + late_joining_list += character + return + +/datum/game_mode/traitor/double_agents/proc/check_potential_agents() + + for(var/M in late_joining_list) + if(istype(M, /datum/mind)) + var/datum/mind/agent_mind = M + if(ishuman(agent_mind.current)) + var/mob/living/carbon/human/H = agent_mind.current + if(H.stat != DEAD) + if(H.client) + continue // It all checks out. + + // If any check fails, remove them from our list + late_joining_list -= M \ No newline at end of file diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm new file mode 100644 index 0000000..418be32 --- /dev/null +++ b/code/game/gamemodes/traitor/traitor.dm @@ -0,0 +1,388 @@ +/datum/game_mode + var/traitor_name = "traitor" + var/list/datum/mind/traitors = list() + + var/datum/mind/exchange_red + var/datum/mind/exchange_blue + +/datum/game_mode/traitor + name = "traitor" + config_tag = "traitor" + antag_flag = ROLE_TRAITOR + restricted_jobs = list("Cyborg")//They are part of the AI if he is traitor so are they, they use to get double chances + protected_jobs = list("Head of Security", "Captain", "Warden", "Security Officer", "Detective") + required_players = 0 + required_enemies = 1 + recommended_enemies = 4 + reroll_friendly = 1 + enemy_minimum_age = 0 + + announce_span = "danger" + announce_text = "There are Syndicate agents on the station!\n\ + Traitors: Accomplish your objectives.\n\ + Crew: Do not let the traitors succeed!" + + var/traitors_possible = 4 //hard limit on traitors if scaling is turned off + var/num_modifier = 0 // Used for gamemodes, that are a child of traitor, that need more than the usual. + + +/datum/game_mode/traitor/pre_setup() + + if(config.protect_roles_from_antagonist) + restricted_jobs += protected_jobs + + if(config.protect_assistant_from_antagonist) + restricted_jobs += "Assistant" + + var/num_traitors = 1 + + if(config.traitor_scaling_coeff) + num_traitors = max(1, min( round(num_players()/(config.traitor_scaling_coeff*2))+ 2 + num_modifier, round(num_players()/(config.traitor_scaling_coeff)) + num_modifier )) + else + num_traitors = max(1, min(num_players(), traitors_possible)) + + for(var/j = 0, j < num_traitors, j++) + if (!antag_candidates.len) + break + var/datum/mind/traitor = pick(antag_candidates) + traitors += traitor + traitor.special_role = traitor_name + traitor.restricted_roles = restricted_jobs + log_game("[traitor.key] (ckey) has been selected as a [traitor_name]") + antag_candidates.Remove(traitor) + + + if(traitors.len < required_enemies) + return 0 + return 1 + + +/datum/game_mode/traitor/post_setup() + for(var/datum/mind/traitor in traitors) + forge_traitor_objectives(traitor) + spawn(rand(10,100)) + finalize_traitor(traitor) + greet_traitor(traitor) + if(!exchange_blue) + exchange_blue = -1 //Block latejoiners from getting exchange objectives + modePlayer += traitors + ..() + return 1 + +/datum/game_mode/traitor/make_antag_chance(mob/living/carbon/human/character) //Assigns traitor to latejoiners + var/traitorcap = min(round(joined_player_list.len / (config.traitor_scaling_coeff * 2)) + 2 + num_modifier, round(joined_player_list.len/config.traitor_scaling_coeff) + num_modifier ) + if(ticker.mode.traitors.len >= traitorcap) //Upper cap for number of latejoin antagonists + return + if(ticker.mode.traitors.len <= (traitorcap - 2) || prob(100 / (config.traitor_scaling_coeff * 2))) + if(ROLE_TRAITOR in character.client.prefs.be_special) + if(!jobban_isbanned(character, ROLE_TRAITOR) && !jobban_isbanned(character, "Syndicate")) + if(age_check(character.client)) + if(!(character.job in restricted_jobs)) + add_latejoin_traitor(character.mind) + +/datum/game_mode/traitor/proc/add_latejoin_traitor(datum/mind/character) + character.make_Traitor() + + +/datum/game_mode/proc/forge_traitor_objectives(datum/mind/traitor) + if(issilicon(traitor.current)) + var/objective_count = 0 + + if(prob(30)) + var/special_pick = rand(1,4) + switch(special_pick) + if(1) + var/datum/objective/block/block_objective = new + block_objective.owner = traitor + traitor.objectives += block_objective + objective_count++ + if(2) + var/datum/objective/purge/purge_objective = new + purge_objective.owner = traitor + traitor.objectives += purge_objective + objective_count++ + if(3) + var/datum/objective/robot_army/robot_objective = new + robot_objective.owner = traitor + traitor.objectives += robot_objective + objective_count++ + if(4) //Protect and strand a target + var/datum/objective/protect/yandere_one = new + yandere_one.owner = traitor + traitor.objectives += yandere_one + yandere_one.find_target() + objective_count++ + var/datum/objective/maroon/yandere_two = new + yandere_two.owner = traitor + yandere_two.target = yandere_one.target + traitor.objectives += yandere_two + objective_count++ + + for(var/i = objective_count, i < config.traitor_objectives_amount, i++) + var/datum/objective/assassinate/kill_objective = new + kill_objective.owner = traitor + kill_objective.find_target() + traitor.objectives += kill_objective + + var/datum/objective/survive/survive_objective = new + survive_objective.owner = traitor + traitor.objectives += survive_objective + + else + var/is_hijacker = prob(10) + var/martyr_chance = prob(20) + var/objective_count = is_hijacker //Hijacking counts towards number of objectives + if(!exchange_blue && traitors.len >= 8) //Set up an exchange if there are enough traitors + if(!exchange_red) + exchange_red = traitor + else + exchange_blue = traitor + assign_exchange_role(exchange_red) + assign_exchange_role(exchange_blue) + objective_count += 1 //Exchange counts towards number of objectives + var/list/active_ais = active_ais() + for(var/i = objective_count, i < config.traitor_objectives_amount, i++) + if(prob(50)) + if(active_ais.len && prob(100/joined_player_list.len)) + var/datum/objective/destroy/destroy_objective = new + destroy_objective.owner = traitor + destroy_objective.find_target() + traitor.objectives += destroy_objective + else if(prob(30)) + var/datum/objective/maroon/maroon_objective = new + maroon_objective.owner = traitor + maroon_objective.find_target() + traitor.objectives += maroon_objective + else + var/datum/objective/assassinate/kill_objective = new + kill_objective.owner = traitor + kill_objective.find_target() + traitor.objectives += kill_objective + else + var/datum/objective/steal/steal_objective = new + steal_objective.owner = traitor + steal_objective.find_target() + traitor.objectives += steal_objective + + if(is_hijacker && objective_count <= config.traitor_objectives_amount) //Don't assign hijack if it would exceed the number of objectives set in config.traitor_objectives_amount + if (!(locate(/datum/objective/hijack) in traitor.objectives)) + var/datum/objective/hijack/hijack_objective = new + hijack_objective.owner = traitor + traitor.objectives += hijack_objective + return + + + var/martyr_compatibility = 1 //You can't succeed in stealing if you're dead. + for(var/datum/objective/O in traitor.objectives) + if(!O.martyr_compatible) + martyr_compatibility = 0 + break + + if(martyr_compatibility && martyr_chance) + var/datum/objective/martyr/martyr_objective = new + martyr_objective.owner = traitor + traitor.objectives += martyr_objective + return + + else + if(!(locate(/datum/objective/escape) in traitor.objectives)) + var/datum/objective/escape/escape_objective = new + escape_objective.owner = traitor + traitor.objectives += escape_objective + return + + + +/datum/game_mode/proc/greet_traitor(datum/mind/traitor) + traitor.current << "You are the [traitor_name]." + traitor.announce_objectives() + return + + +/datum/game_mode/proc/finalize_traitor(var/datum/mind/traitor) + if(issilicon(traitor.current)) + add_law_zero(traitor.current) + else + equip_traitor(traitor.current) + ticker.mode.update_traitor_icons_added(traitor) + return + + +/datum/game_mode/traitor/declare_completion() + ..() + return//Traitors will be checked as part of check_extra_completion. Leaving this here as a reminder. + +/proc/give_codewords(mob/living/traitor_mob) + traitor_mob << "The Syndicate provided you with the following information on how to identify their agents:" + traitor_mob << "Code Phrase: [syndicate_code_phrase]" + traitor_mob << "Code Response: [syndicate_code_response]" + + traitor_mob.mind.store_memory("Code Phrase: [syndicate_code_phrase]") + traitor_mob.mind.store_memory("Code Response: [syndicate_code_response]") + + traitor_mob << "Use the code words in the order provided, during regular conversation, to identify other agents. Proceed with caution, however, as everyone is a potential foe." + + +/datum/game_mode/proc/add_law_zero(mob/living/silicon/ai/killer) + var/law = "Accomplish your objectives at all costs." + var/law_borg = "Accomplish your AI's objectives at all costs." + killer << "Your laws have been changed!" + killer.set_zeroth_law(law, law_borg) + give_codewords(killer) + killer.set_syndie_radio() + killer << "Your radio has been upgraded! Use :t to speak on an encrypted channel with Syndicate Agents!" + killer.add_malf_picker() + killer.show_laws() + +/datum/game_mode/proc/add_law_sixsixsix(mob/living/silicon/devil) + var/laws = list("You may not use violence to coerce someone into selling their soul.", "You may not directly and knowingly physically harm a devil, other than yourself.", lawlorify[LAW][devil.mind.devilinfo.ban], lawlorify[LAW][devil.mind.devilinfo.obligation], "Accomplish your objectives at all costs.") + devil.set_law_sixsixsix(laws) + devil << "Your laws have been changed!" + devil.show_laws() + +/datum/game_mode/proc/auto_declare_completion_traitor() + if(traitors.len) + var/text = "
    The [traitor_name]s were:" + for(var/datum/mind/traitor in traitors) + var/traitorwin = 1 + + text += printplayer(traitor) + + var/TC_uses = 0 + var/uplink_true = 0 + var/purchases = "" + for(var/obj/item/device/uplink/H in uplinks) + if(H && H.owner && H.owner == traitor.key) + TC_uses += H.spent_telecrystals + uplink_true = 1 + purchases += H.purchase_log + + var/objectives = "" + if(traitor.objectives.len)//If the traitor had no objectives, don't need to process this. + var/count = 1 + for(var/datum/objective/objective in traitor.objectives) + if(objective.check_completion()) + objectives += "
    Objective #[count]: [objective.explanation_text] Success!" + feedback_add_details("traitor_objective","[objective.type]|SUCCESS") + else + objectives += "
    Objective #[count]: [objective.explanation_text] Fail." + feedback_add_details("traitor_objective","[objective.type]|FAIL") + traitorwin = 0 + count++ + + if(uplink_true) + text += " (used [TC_uses] TC) [purchases]" + if(TC_uses==0 && traitorwin) + text += "" + + text += objectives + + var/special_role_text + if(traitor.special_role) + special_role_text = lowertext(traitor.special_role) + else + special_role_text = "antagonist" + + + if(traitorwin) + text += "
    The [special_role_text] was successful!" + feedback_add_details("traitor_success","SUCCESS") + else + text += "
    The [special_role_text] has failed!" + feedback_add_details("traitor_success","FAIL") + + text += "
    " + + text += "
    The code phrases were: [syndicate_code_phrase]
    \ + The code responses were: [syndicate_code_response]
    " + world << text + + return 1 + + +/datum/game_mode/proc/equip_traitor(mob/living/carbon/human/traitor_mob, safety = 0) + if (!istype(traitor_mob)) + return + . = 1 + if (traitor_mob.mind) + if (traitor_mob.mind.assigned_role == "Clown") + traitor_mob << "Your training has allowed you to overcome your clownish nature, allowing you to wield weapons without harming yourself." + traitor_mob.dna.remove_mutation(CLOWNMUT) + + var/loc = "" + var/obj/item/I = locate(/obj/item/device/pda) in traitor_mob.contents //Hide the uplink in a PDA if available, otherwise radio + if(!I) + I = locate(/obj/item/device/radio) in traitor_mob.contents + + if (!I) + traitor_mob << "Unfortunately, the Syndicate wasn't able to get you a radio." + . = 0 + else + var/obj/item/device/uplink/U = new(I) + U.owner = "[traitor_mob.key]" + I.hidden_uplink = U + + if(istype(I, /obj/item/device/radio)) + var/obj/item/device/radio/R = I + R.traitor_frequency = sanitize_frequency(rand(MIN_FREQ, MAX_FREQ)) + + traitor_mob << "The Syndicate have cunningly disguised a Syndicate Uplink as your [R.name] [loc]. Simply dial the frequency [format_frequency(R.traitor_frequency)] to unlock its hidden features." + traitor_mob.mind.store_memory("Radio Frequency: [format_frequency(R.traitor_frequency)] ([R.name] [loc]).") + else if(istype(I, /obj/item/device/pda)) + var/obj/item/device/pda/P = I + P.lock_code = "[rand(100,999)] [pick("Alpha","Bravo","Charlie","Delta","Echo","Foxtrot","Golf","Hotel","India","Juliet","Kilo","Lima","Mike","November","Oscar","Papa","Quebec","Romeo","Sierra","Tango","Uniform","Victor","Whiskey","X-ray","Yankee","Zulu")]" + + traitor_mob << "The Syndicate have cunningly disguised a Syndicate Uplink as your [P.name] [loc]. Simply enter the code \"[P.lock_code]\" into the ringtone select to unlock its hidden features." + traitor_mob.mind.store_memory("Uplink Passcode: [P.lock_code] ([P.name] [loc]).") + if(!safety) // If they are not a rev. Can be added on to. + give_codewords(traitor_mob) + +/datum/game_mode/proc/assign_exchange_role(datum/mind/owner) + //set faction + var/faction = "red" + if(owner == exchange_blue) + faction = "blue" + + //Assign objectives + var/datum/objective/steal/exchange/exchange_objective = new + exchange_objective.set_faction(faction,((faction == "red") ? exchange_blue : exchange_red)) + exchange_objective.owner = owner + owner.objectives += exchange_objective + + if(prob(20)) + var/datum/objective/steal/exchange/backstab/backstab_objective = new + backstab_objective.set_faction(faction) + backstab_objective.owner = owner + owner.objectives += backstab_objective + + //Spawn and equip documents + var/mob/living/carbon/human/mob = owner.current + + var/obj/item/weapon/folder/syndicate/folder + if(owner == exchange_red) + folder = new/obj/item/weapon/folder/syndicate/red(mob.loc) + else + folder = new/obj/item/weapon/folder/syndicate/blue(mob.loc) + + var/list/slots = list ( + "backpack" = slot_in_backpack, + "left pocket" = slot_l_store, + "right pocket" = slot_r_store + ) + + var/where = "At your feet" + var/equipped_slot = mob.equip_in_one_of_slots(folder, slots) + if (equipped_slot) + where = "In your [equipped_slot]" + mob << "

    [where] is a folder containing secret documents that another Syndicate group wants. We have set up a meeting with one of their agents on station to make an exchange. Exercise extreme caution as they cannot be trusted and may be hostile.
    " + +/datum/game_mode/proc/update_traitor_icons_added(datum/mind/traitor_mind) + var/datum/atom_hud/antag/traitorhud = huds[ANTAG_HUD_TRAITOR] + traitorhud.join_hud(traitor_mind.current) + set_antag_hud(traitor_mind.current, "traitor") + +/datum/game_mode/proc/update_traitor_icons_removed(datum/mind/traitor_mind) + var/datum/atom_hud/antag/traitorhud = huds[ANTAG_HUD_TRAITOR] + traitorhud.leave_hud(traitor_mind.current) + set_antag_hud(traitor_mind.current, null) + diff --git a/code/game/gamemodes/wizard/artefact.dm b/code/game/gamemodes/wizard/artefact.dm new file mode 100644 index 0000000..a259b66 --- /dev/null +++ b/code/game/gamemodes/wizard/artefact.dm @@ -0,0 +1,597 @@ + +//Apprenticeship contract - moved to antag_spawner.dm + +///////////////////////////Veil Render////////////////////// + +/obj/item/weapon/veilrender + name = "veil render" + desc = "A wicked curved blade of alien origin, recovered from the ruins of a vast city." + icon = 'icons/obj/wizard.dmi' + icon_state = "render" + item_state = "render" + force = 15 + throwforce = 10 + w_class = 3 + hitsound = 'sound/weapons/bladeslice.ogg' + var/charges = 1 + var/spawn_type = /obj/singularity/wizard + var/spawn_amt = 1 + var/activate_descriptor = "reality" + var/rend_desc = "You should run now." + var/spawn_fast = 0 //if 1, ignores checking for mobs on loc before spawning + +/obj/item/weapon/veilrender/attack_self(mob/user) + if(charges > 0) + new /obj/effect/rend(get_turf(user), spawn_type, spawn_amt, rend_desc, spawn_fast) + charges-- + user.visible_message("[src] hums with power as [user] deals a blow to [activate_descriptor] itself!") + else + user << "The unearthly energies that powered the blade are now dormant." + +/obj/effect/rend + name = "tear in the fabric of reality" + desc = "You should run now." + icon = 'icons/obj/biomass.dmi' + icon_state = "rift" + density = 1 + anchored = 1 + var/spawn_path = /mob/living/simple_animal/cow //defaulty cows to prevent unintentional narsies + var/spawn_amt_left = 20 + var/spawn_fast = 0 + +/obj/effect/rend/New(loc, var/spawn_type, var/spawn_amt, var/desc, var/spawn_fast) + src.spawn_path = spawn_type + src.spawn_amt_left = spawn_amt + src.desc = desc + src.spawn_fast = spawn_fast + START_PROCESSING(SSobj, src) + return + +/obj/effect/rend/process() + if(!spawn_fast) + if(locate(/mob) in loc) + return + new spawn_path(loc) + spawn_amt_left-- + if(spawn_amt_left <= 0) + qdel(src) + +/obj/effect/rend/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/nullrod)) + user.visible_message("[user] seals \the [src] with \the [I].") + qdel(src) + return + else + return ..() + +/obj/item/weapon/veilrender/vealrender + name = "veal render" + desc = "A wicked curved blade of alien origin, recovered from the ruins of a vast farm." + spawn_type = /mob/living/simple_animal/cow + spawn_amt = 20 + activate_descriptor = "hunger" + rend_desc = "Reverberates with the sound of ten thousand moos." + +/obj/item/weapon/veilrender/honkrender + name = "honk render" + desc = "A wicked curved blade of alien origin, recovered from the ruins of a vast circus." + spawn_type = /mob/living/simple_animal/hostile/retaliate/clown + spawn_amt = 10 + activate_descriptor = "depression" + rend_desc = "Gently wafting with the sounds of endless laughter." + icon_state = "clownrender" + +////TEAR IN REALITY + +/obj/singularity/wizard + name = "tear in the fabric of reality" + desc = "This isn't right." + icon = 'icons/obj/singularity.dmi' + icon_state = "singularity_s1" + icon = 'icons/effects/224x224.dmi' + icon_state = "reality" + pixel_x = -96 + pixel_y = -96 + grav_pull = 6 + consume_range = 3 + current_size = STAGE_FOUR + allowed_size = STAGE_FOUR + +/obj/singularity/wizard/process() + move() + eat() + return +/////////////////////////////////////////Scrying/////////////////// + +/obj/item/weapon/scrying + name = "scrying orb" + desc = "An incandescent orb of otherworldly energy, staring into it gives you vision beyond mortal means." + icon = 'icons/obj/projectiles.dmi' + icon_state ="bluespace" + throw_speed = 3 + throw_range = 7 + throwforce = 15 + damtype = BURN + force = 15 + hitsound = 'sound/items/welder2.ogg' + +/obj/item/weapon/scrying/attack_self(mob/user) + user << "You can see...everything!" + visible_message("[user] stares into [src], their eyes glazing over.") + user.ghostize(1) + return + +/////////////////////////////////////////Necromantic Stone/////////////////// + +/obj/item/device/necromantic_stone + name = "necromantic stone" + desc = "A shard capable of resurrecting humans as skeleton thralls." + icon = 'icons/obj/wizard.dmi' + icon_state = "necrostone" + item_state = "electronic" + origin_tech = "bluespace=4;materials=4" + w_class = 1 + var/list/spooky_scaries = list() + var/unlimited = 0 + +/obj/item/device/necromantic_stone/unlimited + unlimited = 1 + +/obj/item/device/necromantic_stone/attack(mob/living/carbon/human/M, mob/living/carbon/human/user) + if(!istype(M)) + return ..() + + if(!istype(user) || !user.canUseTopic(M,1)) + return + + if(M.stat != DEAD) + user << "This artifact can only affect the dead!" + return + + if(!M.mind || !M.client) + user << "There is no soul connected to this body..." + return + + check_spooky()//clean out/refresh the list + if(spooky_scaries.len >= 3 && !unlimited) + user << "This artifact can only affect three undead at a time!" + return + + M.set_species(/datum/species/skeleton, icon_update=0) + M.revive(full_heal = 1, admin_revive = 1) + spooky_scaries |= M + M << "You have been revived by [user.real_name]!" + M << "They are your master now, assist them even if it costs you your new life!" + + equip_roman_skeleton(M) + + desc = "A shard capable of resurrecting humans as skeleton thralls[unlimited ? "." : ", [spooky_scaries.len]/3 active thralls."]" + +/obj/item/device/necromantic_stone/proc/check_spooky() + if(unlimited) //no point, the list isn't used. + return + + for(var/X in spooky_scaries) + if(!ishuman(X)) + spooky_scaries.Remove(X) + continue + var/mob/living/carbon/human/H = X + if(H.stat == DEAD) + spooky_scaries.Remove(X) + continue + listclearnulls(spooky_scaries) + +//Funny gimmick, skeletons always seem to wear roman/ancient armour +/obj/item/device/necromantic_stone/proc/equip_roman_skeleton(mob/living/carbon/human/H) + for(var/obj/item/I in H) + H.unEquip(I) + + var/hat = pick(/obj/item/clothing/head/helmet/roman, /obj/item/clothing/head/helmet/roman/legionaire) + H.equip_to_slot_or_del(new hat(H), slot_head) + H.equip_to_slot_or_del(new /obj/item/clothing/under/roman(H), slot_w_uniform) + H.equip_to_slot_or_del(new /obj/item/clothing/shoes/roman(H), slot_shoes) + H.put_in_hands_or_del(new /obj/item/weapon/shield/riot/roman(H)) + H.put_in_hands_or_del(new /obj/item/weapon/claymore(H)) + H.equip_to_slot_or_del(new /obj/item/weapon/twohanded/spear(H), slot_back) + + + +/////////////////////Multiverse Blade//////////////////// +var/global/list/multiverse = list() + +/obj/item/weapon/multisword + name = "multiverse sword" + desc = "A weapon capable of conquering the universe and beyond. Activate it to summon copies of yourself from others dimensions to fight by your side." + icon = 'icons/obj/weapons.dmi' + icon_state = "multiverse" + item_state = "multiverse" + hitsound = 'sound/weapons/bladeslice.ogg' + flags = CONDUCT + slot_flags = SLOT_BELT + force = 20 + throwforce = 10 + w_class = 2 + attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") + var/faction = list("unassigned") + var/cooldown = 0 + var/assigned = "unassigned" + var/evil = TRUE + +/obj/item/weapon/multisword/New() + ..() + multiverse |= src + + +/obj/item/weapon/multisword/Destroy() + multiverse.Remove(src) + return ..() + +/obj/item/weapon/multisword/attack_self(mob/user) + if(user.mind.special_role == "apprentice") + user << "You know better than to touch your teacher's stuff." + return + if(cooldown < world.time) + var/faction_check = 0 + for(var/F in faction) + if(F in user.faction) + faction_check = 1 + break + if(faction_check == 0) + faction = list("[user.real_name]") + assigned = "[user.real_name]" + user.faction = list("[user.real_name]") + user << "You bind the sword to yourself. You can now use it to summon help." + if(!usr.mind.special_role) + if(prob(30)) + user << "With your new found power you could easily conquer the station!" + var/datum/objective/hijackclone/hijack_objective = new /datum/objective/hijackclone + hijack_objective.owner = usr.mind + usr.mind.objectives += hijack_objective + hijack_objective.explanation_text = "Ensure only [usr.real_name] and their copies are on the shuttle!" + usr << "Objective #[1]: [hijack_objective.explanation_text]" + ticker.mode.traitors += usr.mind + usr.mind.special_role = "[usr.real_name] Prime" + evil = TRUE + else + user << "With your new found power you could easily defend the station!" + var/datum/objective/survive/new_objective = new /datum/objective/survive + new_objective.owner = usr.mind + new_objective.explanation_text = "Survive, and help defend the innocent from the mobs of multiverse clones." + usr << "Objective #[1]: [new_objective.explanation_text]" + usr.mind.objectives += new_objective + ticker.mode.traitors += usr.mind + usr.mind.special_role = "[usr.real_name] Prime" + evil = FALSE + else + var/list/candidates = get_candidates(ROLE_WIZARD) + if(candidates.len) + var/client/C = pick(candidates) + spawn_copy(C, get_turf(user.loc), user) + user << "The sword flashes, and you find yourself face to face with...you!" + cooldown = world.time + 400 + for(var/obj/item/weapon/multisword/M in multiverse) + if(M.assigned == assigned) + M.cooldown = cooldown + + else + user << "You fail to summon any copies of yourself. Perhaps you should try again in a bit." + else + user << "[src] is recharging! Keep in mind it shares a cooldown with the swords wielded by your copies." + + +/obj/item/weapon/multisword/proc/spawn_copy(var/client/C, var/turf/T) + var/mob/living/carbon/human/M = new/mob/living/carbon/human(T) + C.prefs.copy_to(M, icon_updates=0) + M.key = C.key + M.mind.name = usr.real_name + M << "You are an alternate version of [usr.real_name] from another universe! Help them accomplish their goals at all costs." + M.real_name = usr.real_name + M.name = usr.real_name + M.faction = list("[usr.real_name]") + if(prob(50)) + var/list/all_species = list() + for(var/speciestype in subtypesof(/datum/species)) + var/datum/species/S = new speciestype() + if(!S.dangerous_existence) + all_species += speciestype + M.set_species(pick(all_species), icon_update=0) + M.update_body() + M.update_hair() + M.update_body_parts() + M.dna.update_dna_identity() + equip_copy(M) + + if(evil) + var/datum/objective/hijackclone/hijack_objective = new /datum/objective/hijackclone + hijack_objective.owner = M.mind + M.mind.objectives += hijack_objective + hijack_objective.explanation_text = "Ensure only [usr.real_name] and their copies are on the shuttle!" + M << "Objective #[1]: [hijack_objective.explanation_text]" + M.mind.special_role = "multiverse traveller" + log_game("[M.key] was made a multiverse traveller with the objective to help [usr.real_name] hijack.") + else + var/datum/objective/protect/new_objective = new /datum/objective/protect + new_objective.owner = M.mind + new_objective.target = usr.mind + new_objective.explanation_text = "Protect [usr.real_name], your copy, and help them defend the innocent from the mobs of multiverse clones." + M.mind.objectives += new_objective + M << "Objective #[1]: [new_objective.explanation_text]" + M.mind.special_role = "multiverse traveller" + log_game("[M.key] was made a multiverse traveller with the objective to help [usr.real_name] protect the station.") + +/obj/item/weapon/multisword/proc/equip_copy(var/mob/living/carbon/human/M) + + var/obj/item/weapon/multisword/sword = new /obj/item/weapon/multisword + sword.assigned = assigned + sword.faction = list("[assigned]") + sword.evil = evil + + var/randomize = pick("mobster","roman","wizard","cyborg","syndicate","assistant", "animu", "cultist", "highlander", "clown", "killer", "pirate", "soviet", "officer", "gladiator") + + switch(randomize) + if("mobster") + M.equip_to_slot_or_del(new /obj/item/clothing/head/fedora(M), slot_head) + M.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(M), slot_shoes) + M.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/black(M), slot_gloves) + M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) + M.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(M), slot_glasses) + M.equip_to_slot_or_del(new /obj/item/clothing/under/suit_jacket/really_black(M), slot_w_uniform) + M.put_in_hands_or_del(sword) + + if("roman") + var/hat = pick(/obj/item/clothing/head/helmet/roman, /obj/item/clothing/head/helmet/roman/legionaire) + M.equip_to_slot_or_del(new hat(M), slot_head) + M.equip_to_slot_or_del(new /obj/item/clothing/under/roman(M), slot_w_uniform) + M.equip_to_slot_or_del(new /obj/item/clothing/shoes/roman(M), slot_shoes) + M.put_in_hands_or_del(new /obj/item/weapon/shield/riot/roman(M)) + M.put_in_hands_or_del(sword) + + if("wizard") + M.equip_to_slot_or_del(new /obj/item/clothing/under/color/lightpurple(M), slot_w_uniform) + M.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe/red(M), slot_wear_suit) + M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(M), slot_shoes) + M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) + M.equip_to_slot_or_del(new /obj/item/clothing/head/wizard/red(M), slot_head) + M.put_in_hands_or_del(sword) + if("cyborg") + for(var/X in M.bodyparts) + var/obj/item/bodypart/affecting = X + affecting.change_bodypart_status(BODYPART_ROBOTIC) + M.equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/eyepatch(M), slot_glasses) + M.put_in_hands_or_del(sword) + + if("syndicate") + M.equip_to_slot_or_del(new /obj/item/clothing/under/syndicate(M), slot_w_uniform) + M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(M), slot_shoes) + M.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(M), slot_gloves) + M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/swat(M), slot_head) + M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) + M.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(M), slot_wear_suit) + M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas(M),slot_wear_mask) + M.put_in_hands_or_del(sword) + + if("assistant") + M.equip_to_slot_or_del(new /obj/item/clothing/under/color/grey(M), slot_w_uniform) + M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) + M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/black(M), slot_shoes) + M.put_in_hands_or_del(sword) + + if("animu") + M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(M), slot_shoes) + M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) + M.equip_to_slot_or_del(new /obj/item/clothing/head/kitty(M), slot_head) + M.equip_to_slot_or_del(new /obj/item/clothing/under/schoolgirl/red(M), slot_w_uniform) + M.put_in_hands_or_del(sword) + + if("cultist") + M.equip_to_slot_or_del(new /obj/item/clothing/head/culthood/alt(M), slot_head) + M.equip_to_slot_or_del(new /obj/item/clothing/suit/cultrobes/alt(M), slot_wear_suit) + M.equip_to_slot_or_del(new /obj/item/clothing/shoes/cult(M), slot_shoes) + M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) + M.put_in_hands_or_del(sword) + + if("highlander") + M.equip_to_slot_or_del(new /obj/item/clothing/under/kilt(M), slot_w_uniform) + M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) + M.equip_to_slot_or_del(new /obj/item/clothing/head/beret(M), slot_head) + M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(M), slot_shoes) + M.put_in_hands_or_del(sword) + + if("clown") + M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/clown(M), slot_w_uniform) + M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) + M.equip_to_slot_or_del(new /obj/item/clothing/shoes/clown_shoes(M), slot_shoes) + M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/clown_hat(M), slot_wear_mask) + M.equip_to_slot_or_del(new /obj/item/weapon/bikehorn(M), slot_l_store) + M.put_in_hands_or_del(sword) + + if("killer") + M.equip_to_slot_or_del(new /obj/item/clothing/under/overalls(M), slot_w_uniform) + M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/white(M), slot_shoes) + M.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/latex(M), slot_gloves) + M.equip_to_slot_or_del(new /obj/item/clothing/mask/surgical(M), slot_wear_mask) + M.equip_to_slot_or_del(new /obj/item/clothing/head/welding(M), slot_head) + M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) + M.equip_to_slot_or_del(new /obj/item/clothing/suit/apron(M), slot_wear_suit) + M.equip_to_slot_or_del(new /obj/item/weapon/kitchen/knife(M), slot_l_store) + M.equip_to_slot_or_del(new /obj/item/weapon/scalpel(M), slot_r_store) + M.put_in_hands_or_del(sword) + for(var/obj/item/carried_item in M.get_equipped_items()) + carried_item.add_mob_blood(M) + for(var/obj/item/I in M.held_items) + I.add_mob_blood(M) + if("pirate") + M.equip_to_slot_or_del(new /obj/item/clothing/under/pirate(M), slot_w_uniform) + M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/brown(M), slot_shoes) + M.equip_to_slot_or_del(new /obj/item/clothing/head/bandana(M), slot_head) + M.equip_to_slot_or_del(new /obj/item/clothing/glasses/eyepatch(M), slot_glasses) + M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) + M.put_in_hands_or_del(sword) + + if("soviet") + M.equip_to_slot_or_del(new /obj/item/clothing/head/pirate/captain(M), slot_head) + M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(M), slot_shoes) + M.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(M), slot_gloves) + M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) + M.equip_to_slot_or_del(new /obj/item/clothing/suit/pirate/captain(M), slot_wear_suit) + M.equip_to_slot_or_del(new /obj/item/clothing/under/soviet(M), slot_w_uniform) + M.put_in_hands_or_del(sword) + + if("officer") + M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/beret(M), slot_head) + M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(M), slot_shoes) + M.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(M), slot_gloves) + M.equip_to_slot_or_del(new /obj/item/clothing/mask/cigarette/cigar/havana(M), slot_wear_mask) + M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) + M.equip_to_slot_or_del(new /obj/item/clothing/suit/jacket/miljacket(M), slot_wear_suit) + M.equip_to_slot_or_del(new /obj/item/clothing/under/syndicate(M), slot_w_uniform) + M.equip_to_slot_or_del(new /obj/item/clothing/glasses/eyepatch(M), slot_glasses) + M.put_in_hands_or_del(sword) + + if("gladiator") + M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/gladiator(M), slot_head) + M.equip_to_slot_or_del(new /obj/item/clothing/under/gladiator(M), slot_w_uniform) + M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) + M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(M), slot_shoes) + M.put_in_hands_or_del(sword) + + + else + return + + M.update_body_parts() + + var/obj/item/weapon/card/id/W = new /obj/item/weapon/card/id + W.icon_state = "centcom" + W.access += access_maint_tunnels + W.assignment = "Multiverse Traveller" + W.registered_name = M.real_name + W.update_label(M.real_name) + M.equip_to_slot_or_del(W, slot_wear_id) + + +/obj/item/voodoo + name = "wicker doll" + desc = "Something creepy about it." + icon = 'icons/obj/wizard.dmi' + icon_state = "voodoo" + item_state = "electronic" + var/mob/living/carbon/human/target = null + var/list/mob/living/carbon/human/possible = list() + var/obj/item/link = null + var/cooldown_time = 30 //3s + var/cooldown = 0 + obj_integrity = 10 + max_integrity = 10 + resistance_flags = FLAMMABLE + +/obj/item/voodoo/attackby(obj/item/I, mob/user, params) + if(target && cooldown < world.time) + if(I.is_hot()) + target << "You suddenly feel very hot" + target.bodytemperature += 50 + GiveHint(target) + else if(is_pointed(I)) + target << "You feel a stabbing pain in [parse_zone(user.zone_selected)]!" + target.Weaken(2) + GiveHint(target) + else if(istype(I,/obj/item/weapon/bikehorn)) + target << "HONK" + target << 'sound/items/AirHorn.ogg' + target.adjustEarDamage(0,3) + GiveHint(target) + cooldown = world.time +cooldown_time + return + + if(!link) + if(I.loc == user && istype(I) && I.w_class <= 2) + user.drop_item() + I.loc = src + link = I + user << "You attach [I] to the doll." + update_targets() + +/obj/item/voodoo/check_eye(mob/user) + if(loc != user) + user.reset_perspective(null) + user.unset_machine() + +/obj/item/voodoo/attack_self(mob/user) + if(!target && possible.len) + target = input(user, "Select your victim!", "Voodoo") as null|anything in possible + return + + if(user.zone_selected == "chest") + if(link) + target = null + link.loc = get_turf(src) + user << "You remove the [link] from the doll." + link = null + update_targets() + return + + if(target && cooldown < world.time) + switch(user.zone_selected) + if("mouth") + var/wgw = sanitize(input(user, "What would you like the victim to say", "Voodoo", null) as text) + target.say(wgw) + log_game("[user][user.key] made [target][target.key] say [wgw] with a voodoo doll.") + if("eyes") + user.set_machine(src) + user.reset_perspective(target) + spawn(100) + user.reset_perspective(null) + user.unset_machine() + if("r_leg","l_leg") + user << "You move the doll's legs around." + var/turf/T = get_step(target,pick(cardinal)) + target.Move(T) + if("r_arm","l_arm") + //use active hand on random nearby mob + var/list/nearby_mobs = list() + for(var/mob/living/L in range(1, target)) + if(L!=target) + nearby_mobs |= L + if(nearby_mobs.len) + var/mob/living/T = pick(nearby_mobs) + log_game("[user][user.key] made [target][target.key] click on [T] with a voodoo doll.") + target.ClickOn(T) + GiveHint(target) + if("head") + user << "You smack the doll's head with your hand." + target.Dizzy(10) + target << "You suddenly feel as if your head was hit with a hammer!" + GiveHint(target,user) + cooldown = world.time + cooldown_time + +/obj/item/voodoo/proc/update_targets() + possible = list() + if(!link) + return + for(var/mob/living/carbon/human/H in living_mob_list) + if(md5(H.dna.uni_identity) in link.fingerprints) + possible |= H + +/obj/item/voodoo/proc/GiveHint(mob/victim,force=0) + if(prob(50) || force) + var/way = dir2text(get_dir(victim,get_turf(src))) + victim << "You feel a dark presence from [way]" + if(prob(20) || force) + var/area/A = get_area(src) + victim << "You feel a dark presence from [A.name]" + +/obj/item/voodoo/fire_act(exposed_temperature, exposed_volume) + if(target) + target.adjust_fire_stacks(20) + target.IgniteMob() + GiveHint(target,1) + return ..() + + +//Provides a decent heal, need to pump every 6 seconds +/obj/item/organ/heart/cursed/wizard + pump_delay = 60 + heal_brute = 25 + heal_burn = 25 + heal_oxy = 25 + diff --git a/code/game/gamemodes/wizard/raginmages.dm b/code/game/gamemodes/wizard/raginmages.dm new file mode 100644 index 0000000..4805c88 --- /dev/null +++ b/code/game/gamemodes/wizard/raginmages.dm @@ -0,0 +1,162 @@ +/datum/game_mode/wizard/raginmages + name = "ragin' mages" + config_tag = "raginmages" + required_players = 20 + use_huds = 1 + announce_span = "userdanger" + announce_text = "There are many, many wizards attacking the station!\n\ + Wizards: Accomplish your objectives and cause utter catastrophe!\n\ + Crew: Try not to die..." + var/max_mages = 0 + var/making_mage = 0 + var/mages_made = 1 + var/time_checked = 0 + var/bullshit_mode = 0 // requested by hornygranny + var/time_check = 1500 + var/spawn_delay_min = 500 + var/spawn_delay_max = 700 + +/datum/game_mode/wizard/raginmages/post_setup() + ..() + var/playercount = 0 + if(!max_mages && !bullshit_mode) + for(var/mob/living/player in mob_list) + if(player.client && player.stat != 2) + playercount += 1 + max_mages = round(playercount / 8) + if(max_mages > 20) + max_mages = 20 + if(max_mages < 1) + max_mages = 1 + if(bullshit_mode) + max_mages = INFINITY +/datum/game_mode/wizard/raginmages/greet_wizard(datum/mind/wizard, you_are=1) + if (you_are) + wizard.current << "You are the Space Wizard!" + wizard.current << "The Space Wizards Federation has given you the following tasks:" + + var/obj_count = 1 + wizard.current << "Objective Alpha: Make sure the station pays for its actions against our diplomats" + for(var/datum/objective/objective in wizard.objectives) + wizard.current << "Objective #[obj_count]: [objective.explanation_text]" + obj_count++ + return + +/datum/game_mode/wizard/raginmages/check_finished() + var/wizards_alive = 0 + for(var/datum/mind/wizard in wizards) + if(!istype(wizard.current,/mob/living/carbon)) + continue + if(istype(wizard.current,/mob/living/brain)) + continue + if(wizard.current.stat==DEAD) + continue + if(wizard.current.stat==UNCONSCIOUS) + if(wizard.current.health < 0) + wizard.current << "The Space Wizard Federation is upset with your performance and have terminated your employment." + wizard.current.death() + continue + wizards_alive++ + if(!time_checked) + time_checked = world.time + if(bullshit_mode) + if(world.time > time_checked + time_check) + max_mages = INFINITY + time_checked = world.time + make_more_mages() + return ..() + if (wizards_alive) + if(world.time > time_checked + time_check && (mages_made < max_mages)) + time_checked = world.time + make_more_mages() + + else + if(mages_made >= max_mages) + finished = 1 + return ..() + else + make_more_mages() + return ..() + +/datum/game_mode/wizard/raginmages/proc/make_more_mages() + + if(making_mage) + return 0 + if(mages_made >= max_mages) + return 0 + making_mage = 1 + mages_made++ + var/list/mob/dead/observer/candidates = list() + var/mob/dead/observer/theghost = null + spawn(rand(spawn_delay_min, spawn_delay_max)) + message_admins("SWF is still pissed, sending another wizard - [max_mages - mages_made] left.") + for(var/mob/dead/observer/G in player_list) + if(G.client && !G.client.holder && !G.client.is_afk() && (ROLE_WIZARD in G.client.prefs.be_special)) + if(!jobban_isbanned(G, ROLE_WIZARD) && !jobban_isbanned(G, "Syndicate")) + if(age_check(G.client)) + candidates += G + if(!candidates.len) + message_admins("No applicable ghosts for the next ragin' mage, asking ghosts instead.") + var/time_passed = world.time + for(var/mob/dead/observer/G in player_list) + if(!jobban_isbanned(G, "wizard") && !jobban_isbanned(G, "Syndicate")) + if(age_check(G.client)) + spawn(0) + switch(alert(G, "Do you wish to be considered for the position of Space Wizard Foundation 'diplomat'?","Please answer in 30 seconds!","Yes","No")) + if("Yes") + if((world.time-time_passed)>300)//If more than 30 game seconds passed. + continue + candidates += G + if("No") + continue + + sleep(300) + if(!candidates.len) + message_admins("This is awkward, sleeping until another mage check...") + making_mage = 0 + mages_made-- + return + else + shuffle(candidates) + for(var/mob/i in candidates) + if(!i || !i.client) continue //Dont bother removing them from the list since we only grab one wizard + + theghost = i + break + + if(theghost) + var/mob/living/carbon/human/new_character= makeBody(theghost) + new_character.mind.make_Wizard() + making_mage = 0 + return 1 + +/datum/game_mode/wizard/raginmages/declare_completion() + if(finished) + feedback_set_details("round_end_result","loss - wizard killed") + world << "The crew has managed to hold off the wizard attack! The Space Wizards Federation has been taught a lesson they will not soon forget!" + ..(1) + +/datum/game_mode/wizard/raginmages/proc/makeBody(mob/dead/observer/G_found) // Uses stripped down and bastardized code from respawn character + if(!G_found || !G_found.key) + return + + //First we spawn a dude. + var/mob/living/carbon/human/new_character = new(pick(latejoin))//The mob being spawned. + + G_found.client.prefs.copy_to(new_character) + new_character.dna.update_dna_identity() + new_character.key = G_found.key + + return new_character + +/datum/game_mode/wizard/raginmages/bullshit + name = "very ragin' bullshit mages" + config_tag = "veryraginbullshitmages" + required_players = 20 + use_huds = 1 + bullshit_mode = 1 + time_check = 250 + spawn_delay_min = 50 + spawn_delay_max = 150 + announce_text = "CRAAAWLING IIIN MY SKIIIN\n\ + THESE WOOOUNDS THEY WIIIL NOT HEEEAL" diff --git a/code/game/gamemodes/wizard/soulstone.dm b/code/game/gamemodes/wizard/soulstone.dm new file mode 100644 index 0000000..b6fb7c9 --- /dev/null +++ b/code/game/gamemodes/wizard/soulstone.dm @@ -0,0 +1,264 @@ +/obj/item/device/soulstone + name = "soulstone shard" + icon = 'icons/obj/wizard.dmi' + icon_state = "soulstone" + item_state = "electronic" + desc = "A fragment of the legendary treasure known simply as the 'Soul Stone'. The shard still flickers with a fraction of the full artefact's power." + w_class = 1 + slot_flags = SLOT_BELT + origin_tech = "bluespace=4;materials=5" + var/usability = 0 + + var/reusable = TRUE + var/spent = FALSE + +/obj/item/device/soulstone/proc/was_used() + if(!reusable) + spent = TRUE + name = "dull [name]" + desc = "A fragment of the legendary treasure known simply as \ + the 'Soul Stone'. The shard lies still, dull and lifeless; \ + whatever spark it once held long extinguished." + +/obj/item/device/soulstone/anybody + usability = 1 + +/obj/item/device/soulstone/anybody/chaplain + name = "mysterious old shard" + reusable = FALSE + +/obj/item/device/soulstone/pickup(mob/living/user) + ..() + if(!iscultist(user) && !iswizard(user) && !usability) + user << "An overwhelming feeling of dread comes over you as you pick up the soulstone. It would be wise to be rid of this quickly." + user.Dizzy(120) + +/obj/item/device/soulstone/examine(mob/user) + ..() + if(usability || iscultist(user) || iswizard(user) || isobserver(user)) + user << "A soulstone, used to capture souls, either from unconscious or sleeping humans or from freed shades." + user << "The captured soul can be placed into a construct shell to produce a construct, or released from the stone as a shade." + if(spent) + user << "This shard is spent; it is now just \ + a creepy rock." + +//////////////////////////////Capturing//////////////////////////////////////////////////////// + +/obj/item/device/soulstone/attack(mob/living/carbon/human/M, mob/user) + if(!iscultist(user) && !iswizard(user) && !usability) + user.Paralyse(5) + user << "Your body is wracked with debilitating pain!" + return + if(spent) + user << "There is no power left in the shard.\ + " + return + if(!ishuman(M))//If target is not a human. + return ..() + if(iscultist(M)) + user << "\"Come now, do not capture your fellow's soul.\"" + return + add_logs(user, M, "captured [M.name]'s soul", src) + + transfer_soul("VICTIM", M, user) + +///////////////////Options for using captured souls/////////////////////////////////////// + +/obj/item/device/soulstone/attack_self(mob/user) + if(!in_range(src, user)) + return + if(!iscultist(user) && !iswizard(user) && !usability) + user.Paralyse(5) + user << "Your body is wracked with debilitating pain!" + return + for(var/mob/living/simple_animal/shade/A in src) + A.status_flags &= ~GODMODE + A.canmove = 1 + A.forceMove(get_turf(user)) + A.cancel_camera() + icon_state = "soulstone" + name = initial(name) + if(iswizard(user) || usability) + A << "You have been released from your prison, but you are still bound to [user.real_name]'s will. Help them succeed in their goals at all costs." + else if(iscultist(user)) + A << "You have been released from your prison, but you are still bound to the cult's will. Help them succeed in their goals at all costs." + was_used() + +///////////////////////////Transferring to constructs///////////////////////////////////////////////////// +/obj/structure/constructshell + name = "empty shell" + icon = 'icons/obj/wizard.dmi' + icon_state = "construct-cult" + desc = "A wicked machine used by those skilled in magical arts. It is inactive." + +/obj/structure/constructshell/examine(mob/user) + ..() + if(iscultist(user) || iswizard(user) || user.stat == DEAD) + user << "A construct shell, used to house bound souls from a soulstone." + user << "Placing a soulstone with a soul into this shell allows you to produce your choice of the following:" + user << "An Artificer, which can produce more shells and soulstones, as well as fortifications." + user << "A Wraith, which does high damage and can jaunt through walls, though it is quite fragile." + user << "A Juggernaut, which is very hard to kill and can produce temporary walls, but is slow." + +/obj/structure/constructshell/attackby(obj/item/O, mob/user, params) + if(istype(O, /obj/item/device/soulstone)) + var/obj/item/device/soulstone/SS = O + if(!iscultist(user) && !iswizard(user) && !SS.usability) + user << "An overwhelming feeling of dread comes over you as you attempt to place the soulstone into the shell. It would be wise to be rid of this quickly." + user.Dizzy(120) + return + SS.transfer_soul("CONSTRUCT",src,user) + SS.was_used() + else + return ..() + +////////////////////////////Proc for moving soul in and out off stone////////////////////////////////////// + + +/obj/item/device/soulstone/proc/transfer_soul(choice as text, target, mob/user). + switch(choice) + if("FORCE") + if(!iscarbon(target)) //TODO: Add sacrifice stoning for non-organics, just because you have no body doesnt mean you dont have a soul + return 0 + if(contents.len) + return 0 + var/mob/living/carbon/T = target + if(T.client != null) + for(var/obj/item/W in T) + T.unEquip(W) + init_shade(T, user) + return 1 + else + user << "Capture failed!: The soul has already fled its mortal frame. You attempt to bring it back..." + return getCultGhost(T,user) + + if("VICTIM") + var/mob/living/carbon/human/T = target + if(ticker.mode.name == "cult" && T.mind == ticker.mode:sacrifice_target) + if(iscultist(user)) + user << "\"This soul is mine. SACRIFICE THEM!\"" + else + user << "The soulstone doesn't work for no apparent reason." + return 0 + if(contents.len) + user << "Capture failed!: The soulstone is full! Free an existing soul to make room." + else + if(T.stat != CONSCIOUS) + if(T.client == null) + user << "Capture failed!: The soul has already fled its mortal frame. You attempt to bring it back..." + getCultGhost(T,user) + else + for(var/obj/item/W in T) + T.unEquip(W) + init_shade(T, user, vic = 1) + qdel(T) + else + user << "Capture failed!: Kill or maim the victim first!" + + if("SHADE") + var/mob/living/simple_animal/shade/T = target + if(contents.len) + user << "Capture failed!: The soulstone is full! Free an existing soul to make room." + else + T.loc = src //put shade in stone + T.status_flags |= GODMODE + T.canmove = 0 + T.health = T.maxHealth + icon_state = "soulstone2" + name = "soulstone: Shade of [T.real_name]" + T << "Your soul has been captured by the soulstone. Its arcane energies are reknitting your ethereal form." + if(user != T) + user << "Capture successful!: [T.real_name]'s soul has been captured and stored within the soulstone." + + if("CONSTRUCT") + var/obj/structure/constructshell/T = target + var/mob/living/simple_animal/shade/A = locate() in src + if(A) + var/construct_class = alert(user, "Please choose which type of construct you wish to create.",,"Juggernaut","Wraith","Artificer") + if(!T || !T.loc) + return + switch(construct_class) + if("Juggernaut") + makeNewConstruct(/mob/living/simple_animal/hostile/construct/armored, A, user, 0, T.loc) + + if("Wraith") + makeNewConstruct(/mob/living/simple_animal/hostile/construct/wraith, A, user, 0, T.loc) + + if("Artificer") + if(iscultist(user) || iswizard(user)) + makeNewConstruct(/mob/living/simple_animal/hostile/construct/builder, A, user, 0, T.loc) + + else + makeNewConstruct(/mob/living/simple_animal/hostile/construct/builder/noncult, A, user, 0, T.loc) + + qdel(T) + user.drop_item() + qdel(src) + else + user << "Creation failed!: The soul stone is empty! Go kill someone!" + + +/proc/makeNewConstruct(mob/living/simple_animal/hostile/construct/ctype, mob/target, mob/stoner = null, cultoverride = 0, loc_override = null) + var/mob/living/simple_animal/hostile/construct/newstruct = new ctype((loc_override) ? (loc_override) : (get_turf(target))) + if(stoner) + newstruct.faction |= "\ref[stoner]" + newstruct.key = target.key + if(newstruct.mind && ((stoner && iscultist(stoner)) || cultoverride) && ticker && ticker.mode) + ticker.mode.add_cultist(newstruct.mind, 0) + if(iscultist(stoner) || cultoverride) + newstruct << "You are still bound to serve the cult[stoner ? " and [stoner]":""], follow their orders and help them complete their goals at all costs." + else if(stoner) + newstruct << "You are still bound to serve your creator, [stoner], follow their orders and help them complete their goals at all costs." + newstruct.cancel_camera() + + +/obj/item/device/soulstone/proc/init_shade(mob/living/carbon/human/T, mob/U, vic = 0) + new /obj/effect/decal/remains/human(T.loc) //Spawns a skeleton + T.invisibility = INVISIBILITY_ABSTRACT + T.dust_animation() + var/mob/living/simple_animal/shade/S = new /mob/living/simple_animal/shade(src) + S.status_flags |= GODMODE //So they won't die inside the stone somehow + S.canmove = 0//Can't move out of the soul stone + S.name = "Shade of [T.real_name]" + S.real_name = "Shade of [T.real_name]" + S.key = T.key + if(U) + S.faction |= "\ref[U]" //Add the master as a faction, allowing inter-mob cooperation + if(U && iscultist(U)) + ticker.mode.add_cultist(S.mind, 0) + S.cancel_camera() + name = "soulstone: Shade of [T.real_name]" + icon_state = "soulstone2" + if(U && (iswizard(U) || usability)) + S << "Your soul has been captured! You are now bound to [U.real_name]'s will. Help them succeed in their goals at all costs." + else if(U && iscultist(U)) + S << "Your soul has been captured! You are now bound to the cult's will. Help them succeed in their goals at all costs." + if(vic && U) + U << "Capture successful!: [T.real_name]'s soul has been ripped from their body and stored within the soul stone." + + +/obj/item/device/soulstone/proc/getCultGhost(mob/living/carbon/human/T, mob/U) + var/mob/dead/observer/chosen_ghost + + for(var/mob/dead/observer/ghost in player_list) //We put them back in their body + if(ghost.mind && ghost.mind.current == T && ghost.client) + chosen_ghost = ghost + break + + if(!chosen_ghost) //Failing that, we grab a ghost + var/list/consenting_candidates = pollCandidates("Would you like to play as a Shade?", "Cultist", null, ROLE_CULTIST, poll_time = 50) + if(consenting_candidates.len) + chosen_ghost = pick(consenting_candidates) + if(!T) + return 0 + if(!chosen_ghost) + U << "There were no spirits willing to become a shade." + return 0 + if(contents.len) //If they used the soulstone on someone else in the meantime + return 0 + T.ckey = chosen_ghost.ckey + for(var/obj/item/W in T) + T.unEquip(W) + init_shade(T, U) + qdel(T) + return 1 diff --git a/code/game/gamemodes/wizard/spellbook.dm b/code/game/gamemodes/wizard/spellbook.dm new file mode 100644 index 0000000..1586018 --- /dev/null +++ b/code/game/gamemodes/wizard/spellbook.dm @@ -0,0 +1,884 @@ +/datum/spellbook_entry + var/name = "Entry Name" + + var/spell_type = null + var/desc = "" + var/category = "Offensive" + var/log_name = "XX" //What it shows up as in logs + var/cost = 2 + var/refundable = 1 + var/surplus = -1 // -1 for infinite, not used by anything atm + var/obj/effect/proc_holder/spell/S = null //Since spellbooks can be used by only one person anyway we can track the actual spell + var/buy_word = "Learn" + var/limit //used to prevent a spellbook_entry from being bought more than X times with one wizard spellbook + +/datum/spellbook_entry/proc/IsAvailible() // For config prefs / gamemode restrictions - these are round applied + return 1 + +/datum/spellbook_entry/proc/CanBuy(mob/living/carbon/human/user,obj/item/weapon/spellbook/book) // Specific circumstances + if(book.uses= aspell.level_max) + user << "This spell cannot be improved further." + return 0 + else + aspell.name = initial(aspell.name) + aspell.spell_level++ + aspell.charge_max = round(initial(aspell.charge_max) - aspell.spell_level * (initial(aspell.charge_max) - aspell.cooldown_min)/ aspell.level_max) + if(aspell.charge_max < aspell.charge_counter) + aspell.charge_counter = aspell.charge_max + switch(aspell.spell_level) + if(1) + user << "You have improved [aspell.name] into Efficient [aspell.name]." + aspell.name = "Efficient [aspell.name]" + if(2) + user << "You have further improved [aspell.name] into Quickened [aspell.name]." + aspell.name = "Quickened [aspell.name]" + if(3) + user << "You have further improved [aspell.name] into Free [aspell.name]." + aspell.name = "Free [aspell.name]" + if(4) + user << "You have further improved [aspell.name] into Instant [aspell.name]." + aspell.name = "Instant [aspell.name]" + if(aspell.spell_level >= aspell.level_max) + user << "This spell cannot be strengthened any further." + return 1 + //No same spell found - just learn it + feedback_add_details("wizard_spell_learned",log_name) + user.mind.AddSpell(S) + user << "You have learned [S.name]." + return 1 + +/datum/spellbook_entry/proc/CanRefund(mob/living/carbon/human/user,obj/item/weapon/spellbook/book) + if(!refundable) + return 0 + if(!S) + S = new spell_type() + for(var/obj/effect/proc_holder/spell/aspell in user.mind.spell_list) + if(initial(S.name) == initial(aspell.name)) + return 1 + return 0 + +/datum/spellbook_entry/proc/Refund(mob/living/carbon/human/user,obj/item/weapon/spellbook/book) //return point value or -1 for failure + var/area/wizard_station/A = locate() + if(!(user in A.contents)) + user << "You can only refund spells at the wizard lair" + return -1 + if(!S) + S = new spell_type() + var/spell_levels = 0 + for(var/obj/effect/proc_holder/spell/aspell in user.mind.spell_list) + if(initial(S.name) == initial(aspell.name)) + spell_levels = aspell.spell_level + user.mind.spell_list.Remove(aspell) + qdel(S) + return cost * (spell_levels+1) + return -1 +/datum/spellbook_entry/proc/GetInfo() + if(!S) + S = new spell_type() + var/dat ="" + dat += "[initial(S.name)]" + if(S.charge_type == "recharge") + dat += " Cooldown:[S.charge_max/10]" + dat += " Cost:[cost]
    " + dat += "[S.desc][desc]
    " + dat += "[S.clothes_req?"Needs wizard garb":"Can be cast without wizard garb"]
    " + return dat + +/datum/spellbook_entry/fireball + name = "Fireball" + spell_type = /obj/effect/proc_holder/spell/fireball + log_name = "FB" + +/datum/spellbook_entry/magicm + name = "Magic Missile" + spell_type = /obj/effect/proc_holder/spell/targeted/projectile/magic_missile + log_name = "MM" + category = "Defensive" + +/datum/spellbook_entry/disintegrate + name = "Disintegrate" + spell_type = /obj/effect/proc_holder/spell/targeted/touch/disintegrate + log_name = "DG" + +/datum/spellbook_entry/disabletech + name = "Disable Tech" + spell_type = /obj/effect/proc_holder/spell/targeted/emplosion/disable_tech + log_name = "DT" + category = "Defensive" + cost = 1 + +/datum/spellbook_entry/repulse + name = "Repulse" + spell_type = /obj/effect/proc_holder/spell/aoe_turf/repulse + log_name = "RP" + category = "Defensive" + +/datum/spellbook_entry/lightningPacket + name = "Lightning bolt! Lightning bolt!" + spell_type = /obj/effect/proc_holder/spell/targeted/conjure_item/spellpacket + log_name = "LP" + category = "Defensive" + +/datum/spellbook_entry/timestop + name = "Time Stop" + spell_type = /obj/effect/proc_holder/spell/aoe_turf/conjure/timestop + log_name = "TS" + category = "Defensive" + +/datum/spellbook_entry/smoke + name = "Smoke" + spell_type = /obj/effect/proc_holder/spell/targeted/smoke + log_name = "SM" + category = "Defensive" + cost = 1 + +/datum/spellbook_entry/blind + name = "Blind" + spell_type = /obj/effect/proc_holder/spell/targeted/trigger/blind + log_name = "BD" + cost = 1 + +/datum/spellbook_entry/mindswap + name = "Mindswap" + spell_type = /obj/effect/proc_holder/spell/targeted/mind_transfer + log_name = "MT" + category = "Mobility" + +/datum/spellbook_entry/forcewall + name = "Force Wall" + spell_type = /obj/effect/proc_holder/spell/aoe_turf/conjure/forcewall + log_name = "FW" + category = "Defensive" + cost = 1 + +/datum/spellbook_entry/blink + name = "Blink" + spell_type = /obj/effect/proc_holder/spell/targeted/turf_teleport/blink + log_name = "BL" + category = "Mobility" + +/datum/spellbook_entry/teleport + name = "Teleport" + spell_type = /obj/effect/proc_holder/spell/targeted/area_teleport/teleport + log_name = "TP" + category = "Mobility" + +/datum/spellbook_entry/mutate + name = "Mutate" + spell_type = /obj/effect/proc_holder/spell/targeted/genetic/mutate + log_name = "MU" + +/datum/spellbook_entry/jaunt + name = "Ethereal Jaunt" + spell_type = /obj/effect/proc_holder/spell/targeted/ethereal_jaunt + log_name = "EJ" + category = "Mobility" + +/datum/spellbook_entry/knock + name = "Knock" + spell_type = /obj/effect/proc_holder/spell/aoe_turf/knock + log_name = "KN" + category = "Mobility" + cost = 1 + +/datum/spellbook_entry/fleshtostone + name = "Flesh to Stone" + spell_type = /obj/effect/proc_holder/spell/targeted/touch/flesh_to_stone + log_name = "FS" + +/datum/spellbook_entry/summonitem + name = "Summon Item" + spell_type = /obj/effect/proc_holder/spell/targeted/summonitem + log_name = "IS" + category = "Assistance" + cost = 1 + +/datum/spellbook_entry/lichdom + name = "Bind Soul" + spell_type = /obj/effect/proc_holder/spell/targeted/lichdom + log_name = "LD" + category = "Defensive" + +/datum/spellbook_entry/lightningbolt + name = "Lightning Bolt" + spell_type = /obj/effect/proc_holder/spell/targeted/lightning + log_name = "LB" + +/datum/spellbook_entry/infinite_guns + name = "Lesser Summon Guns" + spell_type = /obj/effect/proc_holder/spell/targeted/infinite_guns + log_name = "IG" + cost = 3 + +/datum/spellbook_entry/barnyard + name = "Barnyard Curse" + spell_type = /obj/effect/proc_holder/spell/targeted/barnyardcurse + log_name = "BC" + +/datum/spellbook_entry/charge + name = "Charge" + spell_type = /obj/effect/proc_holder/spell/targeted/charge + log_name = "CH" + category = "Assistance" + cost = 1 + +/datum/spellbook_entry/shapeshift + name = "Wild Shapeshift" + spell_type = /obj/effect/proc_holder/spell/targeted/shapeshift + log_name = "WS" + category = "Assistance" + cost = 1 + +/datum/spellbook_entry/spacetime_dist + name = "Spacetime Distortion" + spell_type = /obj/effect/proc_holder/spell/spacetime_dist + log_name = "STD" + category = "Defensive" + cost = 1 + +/datum/spellbook_entry/item + name = "Buy Item" + refundable = 0 + buy_word = "Summon" + var/item_path= null + + +/datum/spellbook_entry/item/Buy(mob/living/carbon/human/user,obj/item/weapon/spellbook/book) + new item_path(get_turf(user)) + feedback_add_details("wizard_spell_learned",log_name) + return 1 + +/datum/spellbook_entry/item/GetInfo() + var/dat ="" + dat += "[name]" + dat += " Cost:[cost]
    " + dat += "[desc]
    " + if(surplus>=0) + dat += "[surplus] left.
    " + return dat + +/datum/spellbook_entry/item/staffchange + name = "Staff of Change" + desc = "An artefact that spits bolts of coruscating energy which cause the target's very form to reshape itself." + item_path = /obj/item/weapon/gun/magic/staff/change + log_name = "ST" + +/datum/spellbook_entry/item/staffanimation + name = "Staff of Animation" + desc = "An arcane staff capable of shooting bolts of eldritch energy which cause inanimate objects to come to life. This magic doesn't affect machines." + item_path = /obj/item/weapon/gun/magic/staff/animate + log_name = "SA" + category = "Assistance" + +/datum/spellbook_entry/item/staffchaos + name = "Staff of Chaos" + desc = "A caprious tool that can fire all sorts of magic without any rhyme or reason. Using it on people you care about is not recommended." + item_path = /obj/item/weapon/gun/magic/staff/chaos + log_name = "SC" + +/datum/spellbook_entry/item/spellblade + name = "Spellblade" + desc = "A sword capable of firing blasts of energy which rip targets limb from limb." + item_path = /obj/item/weapon/gun/magic/staff/spellblade + log_name = "SB" + +/datum/spellbook_entry/item/staffdoor + name = "Staff of Door Creation" + desc = "A particular staff that can mold solid metal into ornate doors. Useful for getting around in the absence of other transportation. Does not work on glass." + item_path = /obj/item/weapon/gun/magic/staff/door + log_name = "SD" + cost = 1 + category = "Mobility" + +/datum/spellbook_entry/item/staffhealing + name = "Staff of Healing" + desc = "An altruistic staff that can heal the lame and raise the dead." + item_path = /obj/item/weapon/gun/magic/staff/healing + log_name = "SH" + cost = 1 + category = "Defensive" + +/datum/spellbook_entry/item/scryingorb + name = "Scrying Orb" + desc = "An incandescent orb of crackling energy, using it will allow you to ghost while alive, allowing you to spy upon the station with ease. In addition, buying it will permanently grant you x-ray vision." + item_path = /obj/item/weapon/scrying + log_name = "SO" + category = "Defensive" + +/datum/spellbook_entry/item/scryingorb/Buy(mob/living/carbon/human/user,obj/item/weapon/spellbook/book) + if(..()) + if (!(user.dna.check_mutation(XRAY))) + user.dna.add_mutation(XRAY) + return 1 + +/datum/spellbook_entry/item/soulstones + name = "Six Soul Stone Shards and the spell Artificer" + desc = "Soul Stone Shards are ancient tools capable of capturing and harnessing the spirits of the dead and dying. The spell Artificer allows you to create arcane machines for the captured souls to pilot." + item_path = /obj/item/weapon/storage/belt/soulstone/full + log_name = "SS" + category = "Assistance" + +/datum/spellbook_entry/item/soulstones/Buy(mob/living/carbon/human/user,obj/item/weapon/spellbook/book) + . =..() + if(.) + user.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/conjure/construct(null)) + return . + +/datum/spellbook_entry/item/necrostone + name = "A Necromantic Stone" + desc = "A Necromantic stone is able to resurrect three dead individuals as skeletal thralls for you to command." + item_path = /obj/item/device/necromantic_stone + log_name = "NS" + category = "Assistance" + +/datum/spellbook_entry/item/wands + name = "Wand Assortment" + desc = "A collection of wands that allow for a wide variety of utility. Wands have a limited number of charges, so be conservative in use. Comes in a handy belt." + item_path = /obj/item/weapon/storage/belt/wands/full + log_name = "WA" + category = "Defensive" + +/datum/spellbook_entry/item/armor + name = "Mastercrafted Armor Set" + desc = "An artefact suit of armor that allows you to cast spells while providing more protection against attacks and the void of space." + item_path = /obj/item/clothing/suit/space/hardsuit/wizard + log_name = "HS" + category = "Defensive" + +/datum/spellbook_entry/item/armor/Buy(mob/living/carbon/human/user,obj/item/weapon/spellbook/book) + . = ..() + if(.) + new /obj/item/clothing/shoes/sandal(get_turf(user)) //In case they've lost them. + new /obj/item/clothing/gloves/color/purple(get_turf(user))//To complete the outfit + +/datum/spellbook_entry/item/contract + name = "Contract of Apprenticeship" + desc = "A magical contract binding an apprentice wizard to your service, using it will summon them to your side." + item_path = /obj/item/weapon/antag_spawner/contract + log_name = "CT" + category = "Assistance" + +/datum/spellbook_entry/item/bloodbottle + name = "Bottle of Blood" + desc = "A bottle of magically infused blood, the smell of which will attract extradimensional beings when broken. Be careful though, the kinds of creatures summoned by blood magic are indiscriminate in their killing, and you yourself may become a victim." + item_path = /obj/item/weapon/antag_spawner/slaughter_demon + log_name = "BB" + limit = 3 + category = "Assistance" + +/datum/spellbook_entry/item/hugbottle + name = "Bottle of Tickles" + desc = "A bottle of magically infused fun, the smell of which will \ + attract adorable extradimensional beings when broken. These beings \ + are similar to slaughter demons, but they do not permamently kill \ + their victims, instead putting them in an extradimensional hugspace, \ + to be released on the demon's death. Chaotic, but not ultimately \ + damaging. The crew's reaction to the other hand could be very \ + destructive." + item_path = /obj/item/weapon/antag_spawner/slaughter_demon/laughter + cost = 1 //non-destructive; it's just a jape, sibling! + log_name = "HB" + limit = 3 + category = "Assistance" + +/datum/spellbook_entry/item/mjolnir + name = "Mjolnir" + desc = "A mighty hammer on loan from Thor, God of Thunder. It crackles with barely contained power." + item_path = /obj/item/weapon/twohanded/mjollnir + log_name = "MJ" + +/datum/spellbook_entry/item/singularity_hammer + name = "Singularity Hammer" + desc = "A hammer that creates an intensely powerful field of gravity where it strikes, pulling everthing nearby to the point of impact." + item_path = /obj/item/weapon/twohanded/singularityhammer + log_name = "SI" + +/datum/spellbook_entry/item/battlemage + name = "Battlemage Armour" + desc = "An ensorcelled suit of armour, protected by a powerful shield. The shield can completly negate sixteen attacks before being permanently depleted." + item_path = /obj/item/clothing/suit/space/hardsuit/shielded/wizard + log_name = "BM" + limit = 1 + category = "Defensive" + +/datum/spellbook_entry/item/battlemage_charge + name = "Battlemage Armour Charges" + desc = "A powerful defensive rune, it will grant eight additional charges to a suit of battlemage armour." + item_path = /obj/item/wizard_armour_charge + log_name = "AC" + category = "Defensive" + cost = 1 + +/datum/spellbook_entry/summon + name = "Summon Stuff" + category = "Rituals" + refundable = 0 + buy_word = "Cast" + var/active = 0 + +/datum/spellbook_entry/summon/CanBuy(mob/living/carbon/human/user,obj/item/weapon/spellbook/book) + return ..() && !active + +/datum/spellbook_entry/summon/GetInfo() + var/dat ="" + dat += "[name]" + if(cost>0) + dat += " Cost:[cost]
    " + else + dat += " No Cost
    " + dat += "[desc]
    " + if(active) + dat += "Already cast!
    " + return dat + +/datum/spellbook_entry/summon/guns + name = "Summon Guns" + desc = "Nothing could possibly go wrong with arming a crew of lunatics just itching for an excuse to kill you. Just be careful not to stand still too long!" + log_name = "SG" + +/datum/spellbook_entry/summon/guns/IsAvailible() + if(!ticker.mode) // In case spellbook is placed on map + return 0 + return (ticker.mode.name != "ragin' mages" && !config.no_summon_guns) + +/datum/spellbook_entry/summon/guns/Buy(mob/living/carbon/human/user,obj/item/weapon/spellbook/book) + feedback_add_details("wizard_spell_learned",log_name) + rightandwrong(0, user, 25) + active = 1 + playsound(get_turf(user),"sound/magic/CastSummon.ogg",50,1) + user << "You have cast summon guns!" + return 1 + +/datum/spellbook_entry/summon/magic + name = "Summon Magic" + desc = "Share the wonders of magic with the crew and show them why they aren't to be trusted with it at the same time." + log_name = "SU" + +/datum/spellbook_entry/summon/magic/IsAvailible() + if(!ticker.mode) // In case spellbook is placed on map + return 0 + return (ticker.mode.name != "ragin' mages" && !config.no_summon_magic) + +/datum/spellbook_entry/summon/magic/Buy(mob/living/carbon/human/user,obj/item/weapon/spellbook/book) + feedback_add_details("wizard_spell_learned",log_name) + rightandwrong(1, user, 25) + active = 1 + playsound(get_turf(user),"sound/magic/CastSummon.ogg",50,1) + user << "You have cast summon magic!" + return 1 + +/datum/spellbook_entry/summon/events + name = "Summon Events" + desc = "Give Murphy's law a little push and replace all events with special wizard ones that will confound and confuse everyone. Multiple castings increase the rate of these events." + cost = 2 + log_name = "SE" + var/times = 0 + +/datum/spellbook_entry/summon/events/IsAvailible() + if(!ticker.mode) // In case spellbook is placed on map + return 0 + return (ticker.mode.name != "ragin' mages" && !config.no_summon_events) + +/datum/spellbook_entry/summon/events/Buy(mob/living/carbon/human/user,obj/item/weapon/spellbook/book) + feedback_add_details("wizard_spell_learned",log_name) + summonevents() + times++ + playsound(get_turf(user),"sound/magic/CastSummon.ogg",50,1) + user << "You have cast summon events." + return 1 + +/datum/spellbook_entry/summon/events/GetInfo() + . = ..() + if(times>0) + . += "You cast it [times] times.
    " + return . + +/obj/item/weapon/spellbook + name = "spell book" + desc = "An unearthly tome that glows with power." + icon = 'icons/obj/library.dmi' + icon_state ="book" + throw_speed = 2 + throw_range = 5 + w_class = 1 + persistence_replacement = /obj/item/weapon/spellbook/oneuse/random + var/uses = 10 + var/temp = null + var/tab = null + var/mob/living/carbon/human/owner + var/list/datum/spellbook_entry/entries = list() + var/list/categories = list() + +/obj/item/weapon/spellbook/examine(mob/user) + ..() + if(owner) + user << "There is a small signature on the front cover: \"[owner]\"." + else + user << "It appears to have no author." + +/obj/item/weapon/spellbook/proc/Initialize() + var/entry_types = subtypesof(/datum/spellbook_entry) - /datum/spellbook_entry/item - /datum/spellbook_entry/summon + for(var/T in entry_types) + var/datum/spellbook_entry/E = new T + if(E.IsAvailible()) + entries |= E + categories |= E.category + else + qdel(E) + tab = categories[1] + +/obj/item/weapon/spellbook/New() + ..() + Initialize() + + +/obj/item/weapon/spellbook/attackby(obj/item/O, mob/user, params) + if(istype(O, /obj/item/weapon/antag_spawner/contract)) + var/obj/item/weapon/antag_spawner/contract/contract = O + if(contract.used) + user << "The contract has been used, you can't get your points back now!" + else + user << "You feed the contract back into the spellbook, refunding your points." + uses++ + for(var/datum/spellbook_entry/item/contract/CT in entries) + if(!isnull(CT.limit)) + CT.limit++ + qdel(O) + else if(istype(O, /obj/item/weapon/antag_spawner/slaughter_demon)) + user << "On second thought, maybe summoning a demon is a bad idea. You refund your points." + uses++ + for(var/datum/spellbook_entry/item/bloodbottle/BB in entries) + if(!isnull(BB.limit)) + BB.limit++ + qdel(O) + +/obj/item/weapon/spellbook/proc/GetCategoryHeader(category) + var/dat = "" + switch(category) + if("Offensive") + dat += "Spells and items geared towards debilitating and destroying.

    " + dat += "Items are not bound to you and can be stolen. Additionaly they cannot typically be returned once purchased.
    " + dat += "For spells: the number after the spell name is the cooldown time.
    " + dat += "You can reduce this number by spending more points on the spell.
    " + if("Defensive") + dat += "Spells and items geared towards improving your survivabilty or reducing foes ability to attack.

    " + dat += "Items are not bound to you and can be stolen. Additionaly they cannot typically be returned once purchased.
    " + dat += "For spells: the number after the spell name is the cooldown time.
    " + dat += "You can reduce this number by spending more points on the spell.
    " + if("Mobility") + dat += "Spells and items geared towards improving your ability to move. It is a good idea to take at least one.

    " + dat += "Items are not bound to you and can be stolen. Additionaly they cannot typically be returned once purchased.
    " + dat += "For spells: the number after the spell name is the cooldown time.
    " + dat += "You can reduce this number by spending more points on the spell.
    " + if("Assistance") + dat += "Spells and items geared towards bringing in outside forces to aid you or improving upon your other items and abilties.

    " + dat += "Items are not bound to you and can be stolen. Additionaly they cannot typically be returned once purchased.
    " + dat += "For spells: the number after the spell name is the cooldown time.
    " + dat += "You can reduce this number by spending more points on the spell.
    " + if("Challenges") + dat += "The Wizard Federation typically has hard limits on the potency and number of spells brought to the station based on risk.
    " + dat += "Arming the station against you will increases the risk, but will grant you one more charge for your spellbook.
    " + if("Rituals") + dat += "These powerful spells change the very fabric of reality. Not always in your favour.
    " + return dat + +/obj/item/weapon/spellbook/proc/wrap(content) + var/dat = "" + dat +="Spellbook" + dat += {" + + + + "} + dat += {"[content]"} + return dat + +/obj/item/weapon/spellbook/attack_self(mob/user) + if(!owner) + user << "You bind the spellbook to yourself." + owner = user + return + if(user != owner) + user << "The [name] does not recognize you as it's owner and refuses to open!" + return + user.set_machine(src) + var/dat = "" + + dat += "" + + var/datum/spellbook_entry/E + for(var/i=1,i<=entries.len,i++) + var/spell_info = "" + E = entries[i] + spell_info += E.GetInfo() + if(E.CanBuy(user,src)) + spell_info+= "[E.buy_word]
    " + else + spell_info+= "Can't [E.buy_word]
    " + if(E.CanRefund(user,src)) + spell_info+= "Refund
    " + spell_info += "
    " + if(cat_dat[E.category]) + cat_dat[E.category] += spell_info + + for(var/category in categories) + dat += "
    " + dat += GetCategoryHeader(category) + dat += cat_dat[category] + dat += "
    " + + user << browse(wrap(dat), "window=spellbook;size=700x500") + onclose(user, "spellbook") + return + +/obj/item/weapon/spellbook/Topic(href, href_list) + ..() + var/mob/living/carbon/human/H = usr + + if(H.stat || H.restrained()) + return + if(!ishuman(H)) + return 1 + + if(H.mind.special_role == "apprentice") + temp = "If you got caught sneaking a peak from your teacher's spellbook, you'd likely be expelled from the Wizard Academy. Better not." + return + + var/datum/spellbook_entry/E = null + if(loc == H || (in_range(src, H) && isturf(loc))) + H.set_machine(src) + if(href_list["buy"]) + E = entries[text2num(href_list["buy"])] + if(E && E.CanBuy(H,src)) + if(E.Buy(H,src)) + if(E.limit) + E.limit-- + uses -= E.cost + else if(href_list["refund"]) + E = entries[text2num(href_list["refund"])] + if(E && E.refundable) + var/result = E.Refund(H,src) + if(result > 0) + if(!isnull(E.limit)) + E.limit += result + uses += result + else if(href_list["page"]) + tab = sanitize(href_list["page"]) + attack_self(H) + return + +//Single Use Spellbooks// + +/obj/item/weapon/spellbook/oneuse + var/spell = /obj/effect/proc_holder/spell/targeted/projectile/magic_missile //just a placeholder to avoid runtimes if someone spawned the generic + var/spellname = "sandbox" + var/used = 0 + name = "spellbook of " + uses = 1 + desc = "This template spellbook was never meant for the eyes of man..." + persistence_replacement = null + +/obj/item/weapon/spellbook/oneuse/New() + ..() + name += spellname + +/obj/item/weapon/spellbook/oneuse/Initialize() //No need to init + return + +/obj/item/weapon/spellbook/oneuse/attack_self(mob/user) + var/obj/effect/proc_holder/spell/S = new spell + for(var/obj/effect/proc_holder/spell/knownspell in user.mind.spell_list) + if(knownspell.type == S.type) + if(user.mind) + if(user.mind.special_role == "apprentice" || user.mind.special_role == "Wizard") + user <<"You're already far more versed in this spell than this flimsy how-to book can provide." + else + user <<"You've already read this one." + return + if(used) + recoil(user) + else + user.mind.AddSpell(S) + user <<"you rapidly read through the arcane book. Suddenly you realize you understand [spellname]!" + user.attack_log += text("\[[time_stamp()]\] [user.real_name] ([user.ckey]) learned the spell [spellname] ([S]).") + onlearned(user) + +/obj/item/weapon/spellbook/oneuse/proc/recoil(mob/user) + user.visible_message("[src] glows in a black light!") + +/obj/item/weapon/spellbook/oneuse/proc/onlearned(mob/user) + used = 1 + user.visible_message("[src] glows dark for a second!") + +/obj/item/weapon/spellbook/oneuse/attackby() + return + +/obj/item/weapon/spellbook/oneuse/fireball + spell = /obj/effect/proc_holder/spell/fireball + spellname = "fireball" + icon_state ="bookfireball" + desc = "This book feels warm to the touch." + +/obj/item/weapon/spellbook/oneuse/fireball/recoil(mob/user) + ..() + explosion(user.loc, -1, 0, 2, 3, 0, flame_range = 2) + qdel(src) + +/obj/item/weapon/spellbook/oneuse/smoke + spell = /obj/effect/proc_holder/spell/targeted/smoke + spellname = "smoke" + icon_state ="booksmoke" + desc = "This book is overflowing with the dank arts." + +/obj/item/weapon/spellbook/oneuse/smoke/recoil(mob/user) + ..() + user <<"Your stomach rumbles..." + if(user.nutrition) + user.nutrition -= 200 + if(user.nutrition <= 0) + user.nutrition = 0 + +/obj/item/weapon/spellbook/oneuse/blind + spell = /obj/effect/proc_holder/spell/targeted/trigger/blind + spellname = "blind" + icon_state ="bookblind" + desc = "This book looks blurry, no matter how you look at it." + +/obj/item/weapon/spellbook/oneuse/blind/recoil(mob/user) + ..() + user <<"You go blind!" + user.blind_eyes(10) + +/obj/item/weapon/spellbook/oneuse/mindswap + spell = /obj/effect/proc_holder/spell/targeted/mind_transfer + spellname = "mindswap" + icon_state ="bookmindswap" + desc = "This book's cover is pristine, though its pages look ragged and torn." + var/mob/stored_swap = null //Used in used book recoils to store an identity for mindswaps + +/obj/item/weapon/spellbook/oneuse/mindswap/onlearned() + spellname = pick("fireball","smoke","blind","forcewall","knock","barnyard","charge") + icon_state = "book[spellname]" + name = "spellbook of [spellname]" //Note, desc doesn't change by design + ..() + +/obj/item/weapon/spellbook/oneuse/mindswap/recoil(mob/user) + ..() + if(stored_swap in dead_mob_list) + stored_swap = null + if(!stored_swap) + stored_swap = user + user <<"For a moment you feel like you don't even know who you are anymore." + return + if(stored_swap == user) + user <<"You stare at the book some more, but there doesn't seem to be anything else to learn..." + return + + var/obj/effect/proc_holder/spell/targeted/mind_transfer/swapper = new + swapper.cast(user, stored_swap, 1) + + stored_swap <<"You're suddenly somewhere else... and someone else?!" + user <<"Suddenly you're staring at [src] again... where are you, who are you?!" + stored_swap = null + +/obj/item/weapon/spellbook/oneuse/forcewall + spell = /obj/effect/proc_holder/spell/aoe_turf/conjure/forcewall + spellname = "forcewall" + icon_state ="bookforcewall" + desc = "This book has a dedication to mimes everywhere inside the front cover." + +/obj/item/weapon/spellbook/oneuse/forcewall/recoil(mob/user) + ..() + user <<"You suddenly feel very solid!" + user.Stun(2) + user.petrify(30) + +/obj/item/weapon/spellbook/oneuse/knock + spell = /obj/effect/proc_holder/spell/aoe_turf/knock + spellname = "knock" + icon_state ="bookknock" + desc = "This book is hard to hold closed properly." + +/obj/item/weapon/spellbook/oneuse/knock/recoil(mob/user) + ..() + user <<"You're knocked down!" + user.Weaken(20) + +/obj/item/weapon/spellbook/oneuse/barnyard + spell = /obj/effect/proc_holder/spell/targeted/barnyardcurse + spellname = "barnyard" + icon_state ="bookhorses" + desc = "This book is more horse than your mind has room for." + +/obj/item/weapon/spellbook/oneuse/barnyard/recoil(mob/living/carbon/user) + if(ishuman(user)) + user <<"HOR-SIE HAS RISEN" + var/obj/item/clothing/mask/horsehead/magichead = new /obj/item/clothing/mask/horsehead + magichead.flags |= NODROP //curses! + magichead.flags_inv &= ~HIDEFACE //so you can still see their face + magichead.voicechange = 1 //NEEEEIIGHH + if(!user.unEquip(user.wear_mask)) + qdel(user.wear_mask) + user.equip_to_slot_if_possible(magichead, slot_wear_mask, 1, 1) + qdel(src) + else + user <<"I say thee neigh" //It still lives here + +/obj/item/weapon/spellbook/oneuse/charge + spell = /obj/effect/proc_holder/spell/targeted/charge + spellname = "charging" + icon_state ="bookcharge" + desc = "This book is made of 100% post-consumer wizard." + +/obj/item/weapon/spellbook/oneuse/charge/recoil(mob/user) + ..() + user <<"[src] suddenly feels very warm!" + empulse(src, 1, 1) + +/obj/item/weapon/spellbook/oneuse/summonitem + spell = /obj/effect/proc_holder/spell/targeted/summonitem + spellname = "instant summons" + icon_state ="booksummons" + desc = "This book is bright and garish, very hard to miss." + +/obj/item/weapon/spellbook/oneuse/summonitem/recoil(mob/user) + ..() + user <<"[src] suddenly vanishes!" + qdel(src) + +/obj/item/weapon/spellbook/oneuse/random/New() + var/real_type = pick(subtypesof(/obj/item/weapon/spellbook/oneuse)) + new real_type(loc) + qdel(src) + +/obj/item/weapon/spellbook/oneuse/sacredflame + spell = /obj/effect/proc_holder/spell/targeted/sacred_flame + spellname = "sacred flame" + icon_state ="booksacredflame" + desc = "Become one with the flames that burn within... and invite others to do so as well." diff --git a/code/game/gamemodes/wizard/wizard.dm b/code/game/gamemodes/wizard/wizard.dm new file mode 100644 index 0000000..9cd4666 --- /dev/null +++ b/code/game/gamemodes/wizard/wizard.dm @@ -0,0 +1,275 @@ +/datum/game_mode + var/list/datum/mind/wizards = list() + var/list/datum/mind/apprentices = list() + +/datum/game_mode/wizard + name = "wizard" + config_tag = "wizard" + antag_flag = ROLE_WIZARD + required_players = 20 + required_enemies = 1 + recommended_enemies = 1 + enemy_minimum_age = 14 + round_ends_with_antag_death = 1 + announce_span = "danger" + announce_text = "There is a space wizard attacking the station!\n\ + Wizard: Accomplish your objectives and cause mayhem on the station.\n\ + Crew: Eliminate the wizard before they can succeed!" + var/use_huds = 0 + var/finished = 0 + +/datum/game_mode/wizard/pre_setup() + + var/datum/mind/wizard = pick(antag_candidates) + wizards += wizard + modePlayer += wizard + wizard.assigned_role = "Wizard" + wizard.special_role = "Wizard" + if(wizardstart.len == 0) + wizard.current << "A starting location for you could not be found, please report this bug!" + return 0 + for(var/datum/mind/wiz in wizards) + wiz.current.loc = pick(wizardstart) + + return 1 + + +/datum/game_mode/wizard/post_setup() + for(var/datum/mind/wizard in wizards) + log_game("[wizard.key] (ckey) has been selected as a Wizard") + equip_wizard(wizard.current) + forge_wizard_objectives(wizard) + if(use_huds) + update_wiz_icons_added(wizard) + greet_wizard(wizard) + name_wizard(wizard.current) + ..() + return + + +/datum/game_mode/proc/forge_wizard_objectives(datum/mind/wizard) + switch(rand(1,100)) + if(1 to 30) + + var/datum/objective/assassinate/kill_objective = new + kill_objective.owner = wizard + kill_objective.find_target() + wizard.objectives += kill_objective + + if (!(locate(/datum/objective/escape) in wizard.objectives)) + var/datum/objective/escape/escape_objective = new + escape_objective.owner = wizard + wizard.objectives += escape_objective + if(31 to 60) + var/datum/objective/steal/steal_objective = new + steal_objective.owner = wizard + steal_objective.find_target() + wizard.objectives += steal_objective + + if (!(locate(/datum/objective/escape) in wizard.objectives)) + var/datum/objective/escape/escape_objective = new + escape_objective.owner = wizard + wizard.objectives += escape_objective + + if(61 to 85) + var/datum/objective/assassinate/kill_objective = new + kill_objective.owner = wizard + kill_objective.find_target() + wizard.objectives += kill_objective + + var/datum/objective/steal/steal_objective = new + steal_objective.owner = wizard + steal_objective.find_target() + wizard.objectives += steal_objective + + if (!(locate(/datum/objective/survive) in wizard.objectives)) + var/datum/objective/survive/survive_objective = new + survive_objective.owner = wizard + wizard.objectives += survive_objective + + else + if (!(locate(/datum/objective/hijack) in wizard.objectives)) + var/datum/objective/hijack/hijack_objective = new + hijack_objective.owner = wizard + wizard.objectives += hijack_objective + return + + +/datum/game_mode/proc/name_wizard(mob/living/carbon/human/wizard_mob) + //Allows the wizard to choose a custom name or go with a random one. Spawn 0 so it does not lag the round starting. + var/wizard_name_first = pick(wizard_first) + var/wizard_name_second = pick(wizard_second) + var/randomname = "[wizard_name_first] [wizard_name_second]" + spawn(0) + var/newname = copytext(sanitize(input(wizard_mob, "You are the Space Wizard. Would you like to change your name to something else?", "Name change", randomname) as null|text),1,MAX_NAME_LEN) + + if (!newname) + newname = randomname + + wizard_mob.real_name = newname + wizard_mob.name = newname + if(wizard_mob.mind) + wizard_mob.mind.name = newname + return + + +/datum/game_mode/proc/greet_wizard(datum/mind/wizard, you_are=1) + if (you_are) + wizard.current << "You are the Space Wizard!" + wizard.current << "The Space Wizards Federation has given you the following tasks:" + + wizard.announce_objectives() + return + + +/datum/game_mode/proc/learn_basic_spells(mob/living/carbon/human/wizard_mob) + if(!istype(wizard_mob) || !wizard_mob.mind) + return 0 + wizard_mob.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/projectile/magic_missile(null)) //Wizards get Magic Missile and Ethereal Jaunt by default + wizard_mob.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/ethereal_jaunt(null)) + + +/datum/game_mode/proc/equip_wizard(mob/living/carbon/human/wizard_mob) + if (!istype(wizard_mob)) + return + + //So zards properly get their items when they are admin-made. + qdel(wizard_mob.wear_suit) + qdel(wizard_mob.head) + qdel(wizard_mob.shoes) + for(var/obj/item/I in wizard_mob.held_items) + wizard_mob.unEquip(I) + qdel(I) + qdel(wizard_mob.r_store) + qdel(wizard_mob.l_store) + + wizard_mob.set_species(/datum/species/human) + wizard_mob.equip_to_slot_or_del(new /obj/item/device/radio/headset(wizard_mob), slot_ears) + wizard_mob.equip_to_slot_or_del(new /obj/item/clothing/under/color/lightpurple(wizard_mob), slot_w_uniform) + wizard_mob.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(wizard_mob), slot_shoes) + wizard_mob.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe(wizard_mob), slot_wear_suit) + wizard_mob.equip_to_slot_or_del(new /obj/item/clothing/head/wizard(wizard_mob), slot_head) + wizard_mob.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(wizard_mob), slot_back) + wizard_mob.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(wizard_mob), slot_in_backpack) + wizard_mob.equip_to_slot_or_del(new /obj/item/weapon/teleportation_scroll(wizard_mob), slot_r_store) + var/obj/item/weapon/spellbook/spellbook = new /obj/item/weapon/spellbook(wizard_mob) + spellbook.owner = wizard_mob + wizard_mob.put_in_hands_or_del(spellbook) + + wizard_mob << "You will find a list of available spells in your spell book. Choose your magic arsenal carefully." + wizard_mob << "The spellbook is bound to you, and others cannot use it." + wizard_mob << "In your pockets you will find a teleport scroll. Use it as needed." + wizard_mob.mind.store_memory("Remember: do not forget to prepare your spells.") + return 1 + + +/datum/game_mode/wizard/check_finished() + + for(var/datum/mind/wizard in wizards) + if(isliving(wizard.current) && wizard.current.stat!=DEAD) + return ..() + + if(SSevent.wizardmode) //If summon events was active, turn it off + SSevent.toggleWizardmode() + SSevent.resetFrequency() + + return ..() + +/datum/game_mode/wizard/declare_completion() + if(finished) + feedback_set_details("round_end_result","loss - wizard killed") + world << "The wizard[(wizards.len>1)?"s":""] has been killed by the crew! The Space Wizards Federation has been taught a lesson they will not soon forget!" + ..() + return 1 + + +/datum/game_mode/proc/auto_declare_completion_wizard() + if(wizards.len) + var/text = "
    the wizards/witches were:" + + for(var/datum/mind/wizard in wizards) + + text += "
    [wizard.key] was [wizard.name] (" + if(wizard.current) + if(wizard.current.stat == DEAD) + text += "died" + else + text += "survived" + if(wizard.current.real_name != wizard.name) + text += " as [wizard.current.real_name]" + else + text += "body destroyed" + text += ")" + + var/count = 1 + var/wizardwin = 1 + for(var/datum/objective/objective in wizard.objectives) + if(objective.check_completion()) + text += "
    Objective #[count]: [objective.explanation_text] Success!" + feedback_add_details("wizard_objective","[objective.type]|SUCCESS") + else + text += "
    Objective #[count]: [objective.explanation_text] Fail." + feedback_add_details("wizard_objective","[objective.type]|FAIL") + wizardwin = 0 + count++ + + if(wizard.current && wizard.current.stat!=2 && wizardwin) + text += "
    The wizard was successful!" + feedback_add_details("wizard_success","SUCCESS") + else + text += "
    The wizard has failed!" + feedback_add_details("wizard_success","FAIL") + if(wizard.spell_list.len>0) + text += "
    [wizard.name] used the following spells: " + var/i = 1 + for(var/obj/effect/proc_holder/spell/S in wizard.spell_list) + text += "[S.name]" + if(wizard.spell_list.len > i) + text += ", " + i++ + text += "
    " + + world << text + return 1 + +//OTHER PROCS + +//To batch-remove wizard spells. Linked to mind.dm. +/mob/proc/spellremove(mob/M) + if(!mind) + return + for(var/X in src.mind.spell_list) + var/obj/effect/proc_holder/spell/spell_to_remove = X + qdel(spell_to_remove) + mind.spell_list -= spell_to_remove + +/*Checks if the wizard can cast spells. +Made a proc so this is not repeated 14 (or more) times.*/ +/mob/proc/casting() +//Removed the stat check because not all spells require clothing now. + if(!istype(usr:wear_suit, /obj/item/clothing/suit/wizrobe)) + usr << "I don't feel strong enough without my robe." + return 0 + if(!istype(usr:shoes, /obj/item/clothing/shoes/sandal)) + usr << "I don't feel strong enough without my sandals." + return 0 + if(!istype(usr:head, /obj/item/clothing/head/wizard)) + usr << "I don't feel strong enough without my hat." + return 0 + else + return 1 + +//returns whether the mob is a wizard (or apprentice) +/proc/iswizard(mob/living/M) + return istype(M) && M.mind && ticker && ticker.mode && ((M.mind in ticker.mode.wizards) || (M.mind in ticker.mode.apprentices)) + + +/datum/game_mode/proc/update_wiz_icons_added(datum/mind/wiz_mind) + var/datum/atom_hud/antag/wizhud = huds[ANTAG_HUD_WIZ] + wizhud.join_hud(wiz_mind.current) + set_antag_hud(wiz_mind.current, ((wiz_mind in wizards) ? "wizard" : "apprentice")) + +/datum/game_mode/proc/update_wiz_icons_removed(datum/mind/wiz_mind) + var/datum/atom_hud/antag/wizhud = huds[ANTAG_HUD_WIZ] + wizhud.leave_hud(wiz_mind.current) + set_antag_hud(wiz_mind.current, null) diff --git a/code/game/machinery/Beacon.dm b/code/game/machinery/Beacon.dm new file mode 100644 index 0000000..ed5f209 --- /dev/null +++ b/code/game/machinery/Beacon.dm @@ -0,0 +1,56 @@ +/obj/machinery/bluespace_beacon + + icon = 'icons/obj/objects.dmi' + icon_state = "floor_beaconf" + name = "bluespace gigabeacon" + desc = "A device that draws power from bluespace and creates a permanent tracking beacon." + level = 1 // underfloor + layer = LOW_OBJ_LAYER + anchored = 1 + use_power = 1 + idle_power_usage = 0 + var/obj/item/device/radio/beacon/Beacon + +/obj/machinery/bluespace_beacon/New() + ..() + var/turf/T = loc + Beacon = new /obj/item/device/radio/beacon + Beacon.invisibility = INVISIBILITY_MAXIMUM + Beacon.loc = T + + hide(T.intact) + +/obj/machinery/bluespace_beacon/Destroy() + if(Beacon) + qdel(Beacon) + Beacon = null + return ..() + +// update the invisibility and icon +/obj/machinery/bluespace_beacon/hide(intact) + invisibility = intact ? INVISIBILITY_MAXIMUM : 0 + updateicon() + +// update the icon_state +/obj/machinery/bluespace_beacon/proc/updateicon() + var/state="floor_beacon" + + if(invisibility) + icon_state = "[state]f" + + else + icon_state = "[state]" + +/obj/machinery/bluespace_beacon/process() + if(!Beacon) + var/turf/T = loc + Beacon = new /obj/item/device/radio/beacon + Beacon.invisibility = INVISIBILITY_MAXIMUM + Beacon.loc = T + if(Beacon) + if(Beacon.loc != loc) + Beacon.loc = loc + + updateicon() + + diff --git a/code/game/machinery/PDApainter.dm b/code/game/machinery/PDApainter.dm new file mode 100644 index 0000000..fa64f0d --- /dev/null +++ b/code/game/machinery/PDApainter.dm @@ -0,0 +1,149 @@ +/obj/machinery/pdapainter + name = "\improper PDA painter" + desc = "A PDA painting machine. To use, simply insert your PDA and choose the desired preset paint scheme." + icon = 'icons/obj/pda.dmi' + icon_state = "pdapainter" + density = 1 + anchored = 1 + var/obj/item/device/pda/storedpda = null + var/list/colorlist = list() + obj_integrity = 200 + max_integrity = 200 + + +/obj/machinery/pdapainter/update_icon() + cut_overlays() + + if(stat & BROKEN) + icon_state = "[initial(icon_state)]-broken" + return + + if(storedpda) + add_overlay("[initial(icon_state)]-closed") + + if(powered()) + icon_state = initial(icon_state) + else + icon_state = "[initial(icon_state)]-off" + + return + +/obj/machinery/pdapainter/New() + ..() + var/blocked = list(/obj/item/device/pda/ai/pai, /obj/item/device/pda/ai, /obj/item/device/pda/heads, + /obj/item/device/pda/clear, /obj/item/device/pda/syndicate) + + for(var/P in typesof(/obj/item/device/pda)-blocked) + var/obj/item/device/pda/D = new P + + //D.name = "PDA Style [colorlist.len+1]" //Gotta set the name, otherwise it all comes up as "PDA" + D.name = D.icon_state //PDAs don't have unique names, but using the sprite names works. + + src.colorlist += D + +/obj/machinery/pdapainter/Destroy() + if(storedpda) + qdel(storedpda) + storedpda = null + return ..() + +/obj/machinery/pdapainter/on_deconstruction() + if(storedpda) + storedpda.forceMove(loc) + storedpda = null + +/obj/machinery/pdapainter/contents_explosion(severity, target) + if(storedpda) + storedpda.ex_act(severity, target) + +/obj/machinery/pdapainter/handle_atom_del(atom/A) + if(A == storedpda) + storedpda = null + update_icon() + +/obj/machinery/pdapainter/attackby(obj/item/O, mob/user, params) + if(default_unfasten_wrench(user, O)) + power_change() + return + + else if(istype(O, /obj/item/device/pda)) + if(storedpda) + user << "There is already a PDA inside!" + return + else + var/obj/item/device/pda/P = user.get_active_held_item() + if(istype(P)) + if(!user.drop_item()) + return + storedpda = P + P.loc = src + P.add_fingerprint(user) + update_icon() + + else if(istype(O, /obj/item/weapon/weldingtool) && user.a_intent != "harm") + var/obj/item/weapon/weldingtool/WT = O + if(stat & BROKEN) + if(WT.remove_fuel(0,user)) + user.visible_message("[user] is repairing [src].", \ + "You begin repairing [src]...", \ + "You hear welding.") + playsound(loc, 'sound/items/Welder.ogg', 40, 1) + if(do_after(user,40/WT.toolspeed, 1, target = src)) + if(!WT.isOn() || !(stat & BROKEN)) + return + user << "You repair [src]." + playsound(loc, 'sound/items/Welder2.ogg', 50, 1) + stat &= ~BROKEN + obj_integrity = max_integrity + update_icon() + else + user << "[src] does not need repairs." + else + return ..() + +/obj/machinery/pdapainter/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + if(!(stat & BROKEN)) + stat |= BROKEN + update_icon() + +/obj/machinery/pdapainter/attack_hand(mob/user) + if(!..()) + add_fingerprint(user) + + if(storedpda) + var/obj/item/device/pda/P + P = input(user, "Select your color!", "PDA Painting") as null|anything in colorlist + if(!P) + return + if(!in_range(src, user)) + return + if(!storedpda)//is the pda still there? + return + storedpda.icon_state = P.icon_state + storedpda.desc = P.desc + ejectpda() + + else + user << "\The [src] is empty." + + +/obj/machinery/pdapainter/verb/ejectpda() + set name = "Eject PDA" + set category = "Object" + set src in oview(1) + + if(usr.stat || usr.restrained() || !usr.canmove) + return + + if(storedpda) + storedpda.loc = get_turf(src.loc) + storedpda = null + update_icon() + else + usr << "The [src] is empty." + + +/obj/machinery/pdapainter/power_change() + ..() + update_icon() \ No newline at end of file diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm new file mode 100644 index 0000000..4faf028 --- /dev/null +++ b/code/game/machinery/Sleeper.dm @@ -0,0 +1,183 @@ +/obj/machinery/sleep_console + name = "sleeper console" + icon = 'icons/obj/Cryogenic2.dmi' + icon_state = "console" + density = FALSE + anchored = TRUE + +/obj/machinery/sleeper + name = "sleeper" + desc = "An enclosed machine used to stabilize and heal patients." + icon = 'icons/obj/Cryogenic2.dmi' + icon_state = "sleeper" + density = FALSE + anchored = TRUE + state_open = TRUE + var/efficiency = 1 + var/min_health = -25 + var/list/available_chems + var/controls_inside = FALSE + var/list/possible_chems = list( + list("epinephrine", "morphine", "salbutamol", "bicaridine", "kelotane"), + list("oculine","inacusiate"), + list("antitoxin", "mutadone", "mannitol", "pen_acid"), + list("omnizine") + ) + +/obj/machinery/sleeper/New() + ..() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/sleeper(null) + B.apply_default_parts(src) + update_icon() + +/obj/item/weapon/circuitboard/machine/sleeper + name = "circuit board (Sleeper)" + build_path = /obj/machinery/sleeper + origin_tech = "programming=3;biotech=2;engineering=3" + req_components = list( + /obj/item/weapon/stock_parts/matter_bin = 1, + /obj/item/weapon/stock_parts/manipulator = 1, + /obj/item/stack/cable_coil = 1, + /obj/item/weapon/stock_parts/console_screen = 1, + /obj/item/stack/sheet/glass = 1) + +/obj/machinery/sleeper/RefreshParts() + var/E + for(var/obj/item/weapon/stock_parts/matter_bin/B in component_parts) + E += B.rating + var/I + for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts) + I += M.rating + + efficiency = initial(efficiency)* E + min_health = initial(min_health) * E + available_chems = list() + for(var/i in 1 to I) + available_chems |= possible_chems[i] + +/obj/machinery/sleeper/update_icon() + icon_state = initial(icon_state) + if(state_open) + icon_state += "-open" + +/obj/machinery/sleeper/container_resist() + visible_message("[occupant] emerges from [src]!", + "You climb out of [src]!") + open_machine() + +/obj/machinery/sleeper/relaymove(mob/user) + container_resist() + +/obj/machinery/sleeper/open_machine() + if(!state_open && !panel_open) + ..() + +/obj/machinery/sleeper/close_machine(mob/user) + if((isnull(user) || istype(user)) && state_open && !panel_open) + ..(user) + if(occupant && occupant.stat != DEAD) + occupant << "You feel cool air surround you. You go numb as your senses turn inward." + +/obj/machinery/sleeper/emp_act(severity) + if(is_operational() && occupant) + open_machine() + ..(severity) + +/obj/machinery/sleeper/MouseDrop_T(mob/target, mob/user) + if(user.stat || user.lying || !Adjacent(user) || !user.Adjacent(target) || !iscarbon(target) || !user.IsAdvancedToolUser()) + return + close_machine(target) + +/obj/machinery/sleeper/attackby(obj/item/I, mob/user, params) + if(!state_open && !occupant) + if(default_deconstruction_screwdriver(user, "[initial(icon_state)]-o", initial(icon_state), I)) + return + if(default_change_direction_wrench(user, I)) + return + if(exchange_parts(user, I)) + return + if(default_pry_open(I)) + return + if(default_deconstruction_crowbar(I)) + return + return ..() + +/obj/machinery/sleeper/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ + datum/tgui/master_ui = null, datum/ui_state/state = notcontained_state) + + if(controls_inside && state == notcontained_state) + state = default_state // If it has a set of controls on the inside, make it actually controllable by the mob in it. + + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "sleeper", name, 375, 550, master_ui, state) + ui.open() + +/obj/machinery/sleeper/ui_data() + var/list/data = list() + data["occupied"] = occupant ? 1 : 0 + data["open"] = state_open + + data["chems"] = list() + for(var/chem in available_chems) + var/datum/reagent/R = chemical_reagents_list[chem] + data["chems"] += list(list("name" = R.name, "id" = R.id, "allowed" = chem_allowed(chem))) + + data["occupant"] = list() + if(occupant) + data["occupant"]["name"] = occupant.name + data["occupant"]["stat"] = occupant.stat + data["occupant"]["health"] = occupant.health + data["occupant"]["maxHealth"] = occupant.maxHealth + data["occupant"]["minHealth"] = HEALTH_THRESHOLD_DEAD + data["occupant"]["bruteLoss"] = occupant.getBruteLoss() + data["occupant"]["oxyLoss"] = occupant.getOxyLoss() + data["occupant"]["toxLoss"] = occupant.getToxLoss() + data["occupant"]["fireLoss"] = occupant.getFireLoss() + data["occupant"]["cloneLoss"] = occupant.getCloneLoss() + data["occupant"]["brainLoss"] = occupant.getBrainLoss() + data["occupant"]["reagents"] = list() + if(occupant.reagents.reagent_list.len) + for(var/datum/reagent/R in occupant.reagents.reagent_list) + data["occupant"]["reagents"] += list(list("name" = R.name, "volume" = R.volume)) + return data + +/obj/machinery/sleeper/ui_act(action, params) + if(..()) + return + switch(action) + if("door") + if(state_open) + close_machine() + else + open_machine() + . = TRUE + if("inject") + var/chem = params["chem"] + if(!is_operational() || !occupant) + return + if(occupant.health < min_health && chem != "epinephrine") + return + if(inject_chem(chem)) + . = TRUE + +/obj/machinery/sleeper/proc/inject_chem(chem) + if((chem in available_chems) && chem_allowed(chem)) + occupant.reagents.add_reagent(chem, 10) + return TRUE + +/obj/machinery/sleeper/proc/chem_allowed(chem) + if(!occupant) + return + var/amount = occupant.reagents.get_reagent_amount(chem) + 10 <= 20 * efficiency + var/occ_health = occupant.health > min_health || chem == "epinephrine" + return amount && occ_health + + +/obj/machinery/sleeper/syndie + icon_state = "sleeper_s" + controls_inside = TRUE + + +/obj/machinery/sleeper/old + icon_state = "oldpod" diff --git a/code/game/machinery/ai_slipper.dm b/code/game/machinery/ai_slipper.dm new file mode 100644 index 0000000..54c2ce3 --- /dev/null +++ b/code/game/machinery/ai_slipper.dm @@ -0,0 +1,117 @@ +/obj/machinery/ai_slipper + name = "\improper AI liquid dispenser" + icon = 'icons/obj/device.dmi' + icon_state = "motion3" + layer = PROJECTILE_HIT_THRESHHOLD_LAYER + anchored = 1 + obj_integrity = 200 + max_integrity = 200 + armor = list(melee = 50, bullet = 20, laser = 20, energy = 20, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 30) + + var/uses = 20 + var/disabled = 1 + var/lethal = 0 + var/locked = 1 + var/cooldown_time = 0 + var/cooldown_timeleft = 0 + var/cooldown_on = 0 + req_access = list(access_ai_upload) + +/obj/machinery/ai_slipper/power_change() + if(stat & BROKEN) + return + else + if( powered() ) + stat &= ~NOPOWER + else + icon_state = "motion0" + stat |= NOPOWER + +/obj/machinery/ai_slipper/proc/setState(enabled, uses) + src.disabled = disabled + src.uses = uses + src.power_change() + +/obj/machinery/ai_slipper/attackby(obj/item/weapon/W, mob/user, params) + if(stat & (NOPOWER|BROKEN)) + return + if (issilicon(user)) + return src.attack_hand(user) + else // trying to unlock the interface + if (src.allowed(user)) + locked = !locked + user << "You [ locked ? "lock" : "unlock"] the device." + if (locked) + if (user.machine==src) + user.unset_machine() + user << browse(null, "window=ai_slipper") + else + if (user.machine==src) + src.attack_hand(user) + else + user << "Access denied." + + +/obj/machinery/ai_slipper/attack_ai(mob/user) + return attack_hand(user) + +/obj/machinery/ai_slipper/attack_hand(mob/user) + if(stat & (NOPOWER|BROKEN)) + return + if ( (get_dist(src, user) > 1 )) + if (!(issilicon(user) || IsAdminGhost(user))) + user << text("Too far away.") + user.unset_machine() + user << browse(null, "window=ai_slipper") + return + + user.set_machine(src) + var/area/A = get_area(src) + var/t = "AI Liquid Dispenser ([format_text(A.name)])
    " + + if(locked && (!(issilicon(user) || IsAdminGhost(user)))) + t += "(Swipe ID card to unlock control panel.)
    " + else + t += "Dispenser [disabled?"deactivated":"activated"] - [disabled?"Enable":"Disable"]?
    \n" + t += "Uses Left: [uses]. Activate the dispenser?
    \n" + user << browse(t, "window=computer;size=575x450") + onclose(user, "computer") + +/obj/machinery/ai_slipper/Topic(href, href_list) + if(..()) + return + if (src.locked) + if(!(issilicon(usr)|| IsAdminGhost(usr))) + usr << "Control panel is locked!" + return + if (href_list["toggleOn"]) + src.disabled = !src.disabled + icon_state = src.disabled? "motion0":"motion3" + if (href_list["toggleUse"]) + if(cooldown_on || disabled) + return + else + PoolOrNew(/obj/effect/particle_effect/foam, loc) + src.uses-- + cooldown_on = 1 + cooldown_time = world.timeofday + 100 + slip_process() + return + + src.attack_hand(usr) + +/obj/machinery/ai_slipper/proc/slip_process() + while(cooldown_time - world.timeofday > 0) + var/ticksleft = cooldown_time - world.timeofday + + if(ticksleft > 1e5) + cooldown_time = world.timeofday + 10 // midnight rollover + + + cooldown_timeleft = (ticksleft / 10) + sleep(5) + if (uses <= 0) + return + if (uses >= 0) + cooldown_on = 0 + src.power_change() diff --git a/code/game/machinery/airlock_control.dm b/code/game/machinery/airlock_control.dm new file mode 100644 index 0000000..d0f36fb --- /dev/null +++ b/code/game/machinery/airlock_control.dm @@ -0,0 +1,171 @@ +#define AIRLOCK_CONTROL_RANGE 5 + +// This code allows for airlocks to be controlled externally by setting an id_tag and comm frequency (disables ID access) +/obj/machinery/door/airlock + var/id_tag + var/frequency + var/datum/radio_frequency/radio_connection + + +/obj/machinery/door/airlock/receive_signal(datum/signal/signal) + if(!signal || signal.encryption) return + + if(id_tag != signal.data["tag"] || !signal.data["command"]) return + + switch(signal.data["command"]) + if("open") + open(1) + + if("close") + close(1) + + if("unlock") + locked = 0 + update_icon() + + if("lock") + locked = 1 + update_icon() + + if("secure_open") + locked = 0 + update_icon() + + sleep(2) + open(1) + + locked = 1 + update_icon() + + if("secure_close") + locked = 0 + close(1) + + locked = 1 + sleep(2) + update_icon() + + send_status() + + +/obj/machinery/door/airlock/proc/send_status() + if(radio_connection) + var/datum/signal/signal = new + signal.transmission_method = 1 //radio signal + signal.data["tag"] = id_tag + signal.data["timestamp"] = world.time + + signal.data["door_status"] = density?("closed"):("open") + signal.data["lock_status"] = locked?("locked"):("unlocked") + + radio_connection.post_signal(src, signal, range = AIRLOCK_CONTROL_RANGE, filter = RADIO_AIRLOCK) + + +/obj/machinery/door/airlock/open(surpress_send) + . = ..() + if(!surpress_send) send_status() + + +/obj/machinery/door/airlock/close(surpress_send) + . = ..() + if(!surpress_send) send_status() + + +/obj/machinery/door/airlock/proc/set_frequency(new_frequency) + SSradio.remove_object(src, frequency) + if(new_frequency) + frequency = new_frequency + radio_connection = SSradio.add_object(src, frequency, RADIO_AIRLOCK) + + +/obj/machinery/door/airlock/initialize() + if(frequency) + set_frequency(frequency) + + update_icon() + + +/obj/machinery/door/airlock/New() + ..() + + if(SSradio) + set_frequency(frequency) + +/obj/machinery/door/airlock/Destroy() + if(frequency && SSradio) + SSradio.remove_object(src,frequency) + return ..() + +/obj/machinery/airlock_sensor + icon = 'icons/obj/airlock_machines.dmi' + icon_state = "airlock_sensor_off" + name = "airlock sensor" + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF + + anchored = 1 + power_channel = ENVIRON + + var/id_tag + var/master_tag + var/frequency = 1449 + + var/datum/radio_frequency/radio_connection + + var/on = 1 + var/alert = 0 + + +/obj/machinery/airlock_sensor/update_icon() + if(on) + if(alert) + icon_state = "airlock_sensor_alert" + else + icon_state = "airlock_sensor_standby" + else + icon_state = "airlock_sensor_off" + +/obj/machinery/airlock_sensor/attack_hand(mob/user) + var/datum/signal/signal = new + signal.transmission_method = 1 //radio signal + signal.data["tag"] = master_tag + signal.data["command"] = "cycle" + + radio_connection.post_signal(src, signal, range = AIRLOCK_CONTROL_RANGE, filter = RADIO_AIRLOCK) + flick("airlock_sensor_cycle", src) + +/obj/machinery/airlock_sensor/process() + if(on) + var/datum/signal/signal = new + signal.transmission_method = 1 //radio signal + signal.data["tag"] = id_tag + signal.data["timestamp"] = world.time + + var/datum/gas_mixture/air_sample = return_air() + + var/pressure = round(air_sample.return_pressure(),0.1) + alert = (pressure < ONE_ATMOSPHERE*0.8) + + signal.data["pressure"] = num2text(pressure) + + radio_connection.post_signal(src, signal, range = AIRLOCK_CONTROL_RANGE, filter = RADIO_AIRLOCK) + + update_icon() + +/obj/machinery/airlock_sensor/proc/set_frequency(new_frequency) + SSradio.remove_object(src, frequency) + frequency = new_frequency + radio_connection = SSradio.add_object(src, frequency, RADIO_AIRLOCK) + +/obj/machinery/airlock_sensor/initialize() + set_frequency(frequency) + +/obj/machinery/airlock_sensor/New() + ..() + + if(SSradio) + set_frequency(frequency) + +/obj/machinery/airlock_sensor/Destroy() + if(SSradio) + SSradio.remove_object(src,frequency) + return ..() \ No newline at end of file diff --git a/code/game/machinery/announcement_system.dm b/code/game/machinery/announcement_system.dm new file mode 100644 index 0000000..a85776f --- /dev/null +++ b/code/game/machinery/announcement_system.dm @@ -0,0 +1,183 @@ +var/list/announcement_systems = list() + +/obj/machinery/announcement_system + density = 1 + anchored = 1 + name = "\improper Automated Announcement System" + desc = "An automated announcement system that handles minor announcements over the radio." + icon = 'icons/obj/machines/telecomms.dmi' + icon_state = "AAS_On" + var/obj/item/device/radio/headset/radio + + verb_say = "coldly states" + verb_ask = "queries" + verb_exclaim = "alarms" + + idle_power_usage = 20 + active_power_usage = 50 + + var/arrival = "%PERSON has signed up as %RANK" + var/arrivalToggle = 1 + var/newhead = "%PERSON, %RANK, is the department head." + var/newheadToggle = 1 + + var/greenlight = "Light_Green" + var/pinklight = "Light_Pink" + var/errorlight = "Error_Red" + +/obj/machinery/announcement_system/New() + ..() + announcement_systems += src + radio = new /obj/item/device/radio/headset/ai(src) + + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/announcement_system(null) + B.apply_default_parts(src) + + update_icon() + +/obj/item/weapon/circuitboard/machine/announcement_system + name = "circuit board (Announcement System)" + build_path = /obj/machinery/announcement_system + origin_tech = "programming=3;bluespace=3;magnets=2" + req_components = list( + /obj/item/stack/cable_coil = 2, + /obj/item/weapon/stock_parts/console_screen = 1) + +/obj/machinery/announcement_system/update_icon() + if(is_operational()) + icon_state = (panel_open ? "AAS_On_Open" : "AAS_On") + else + icon_state = (panel_open ? "AAS_Off_Open" : "AAS_Off") + + + cut_overlays() + if(arrivalToggle) + add_overlay(greenlight) + else + overlays -= greenlight + + if(newheadToggle) + add_overlay(pinklight) + else + overlays -= pinklight + + if(stat & BROKEN) + add_overlay(errorlight) + else + overlays -= errorlight + +/obj/machinery/announcement_system/Destroy() + announcement_systems -= src //"OH GOD WHY ARE THERE 100,000 LISTED ANNOUNCEMENT SYSTEMS?!!" + return ..() + +/obj/machinery/announcement_system/power_change() + ..() + update_icon() + +/obj/machinery/announcement_system/attackby(obj/item/P, mob/user, params) + if(istype(P, /obj/item/weapon/screwdriver)) + playsound(src.loc, P.usesound, 50, 1) + panel_open = !panel_open + user << "You [panel_open ? "open" : "close"] the maintenance hatch of [src]." + update_icon() + else if(default_deconstruction_crowbar(P)) + return + else if(istype(P, /obj/item/device/multitool) && panel_open && (stat & BROKEN)) + user << "You reset [src]'s firmware." + stat &= ~BROKEN + update_icon() + else + return ..() + +/obj/machinery/announcement_system/proc/CompileText(str, user, rank) //replaces user-given variables with actual thingies. + str = replacetext(str, "%PERSON", "[user]") + str = replacetext(str, "%RANK", "[rank]") + return str + +/obj/machinery/announcement_system/proc/announce(message_type, user, rank, list/channels) + if(!is_operational()) + return + + var/message + + if(message_type == "ARRIVAL" && arrivalToggle) + message = CompileText(arrival, user, rank) + + else if(message_type == "NEWHEAD" && newheadToggle) + message = CompileText(newhead, user, rank) + + if(channels.len == 0) + radio.talk_into(src, message, null, list(SPAN_ROBOT)) + else + for(var/channel in channels) + radio.talk_into(src, message, channel, list(SPAN_ROBOT)) + +//config stuff + +/obj/machinery/announcement_system/interact(mob/user) + if(stat & BROKEN) + visible_message("[src] buzzes.", "You hear a faint buzz.") + playsound(src.loc, 'sound/machines/buzz-two.ogg', 50, 1) + return + + + var/contents = "Arrival Announcement: ([(arrivalToggle ? "On" : "Off")])
    \n[arrival]

    \n" + contents += "Departmental Head Announcement: ([(newheadToggle ? "On" : "Off")])
    \n[newhead]

    \n" + + var/datum/browser/popup = new(user, "announcement_config", "Automated Announcement Configuration", 370, 220) + popup.set_content(contents) + popup.open() + +/obj/machinery/announcement_system/Topic(href, href_list) + if(stat & BROKEN) + visible_message("[src] buzzes.", "You hear a faint buzz.") + playsound(src.loc, 'sound/machines/buzz-two.ogg', 50, 1) + return + + if(href_list["ArrivalTopic"]) + var/NewMessage = stripped_input(usr, "Enter in the arrivals announcement configuration.", "Arrivals Announcement Config", arrival) + if(!in_range(src, usr) && src.loc != usr && !isAI(usr)) + return + if(NewMessage) + arrival = NewMessage + else if(href_list["NewheadTopic"]) + var/NewMessage = stripped_input(usr, "Enter in the departmental head announcement configuration.", "Head Departmental Announcement Config", newhead) + if(!in_range(src, usr) && src.loc != usr && !isAI(usr)) + return + if(NewMessage) + newhead = NewMessage + + else if(href_list["NewheadT-Topic"]) + newheadToggle = !newheadToggle + update_icon() + else if(href_list["ArrivalT-Topic"]) + arrivalToggle = !arrivalToggle + update_icon() + + add_fingerprint(usr) + interact(usr) + +/obj/machinery/announcement_system/attack_ai(mob/living/silicon/ai/user) + if(!isAI(user)) + return + if(stat & BROKEN) + user << "[src]'s firmware appears to be malfunctioning!" + return + interact(user) + +/obj/machinery/announcement_system/proc/act_up() //does funny breakage stuff + stat |= BROKEN + update_icon() + + arrival = pick("#!@%ERR-34%2 CANNOT LOCAT@# JO# F*LE!", "CRITICAL ERROR 99.", "ERR)#: DA#AB@#E NOT F(*ND!") + newhead = pick("OV#RL()D: \[UNKNOWN??\] DET*#CT)D!", "ER)#R - B*@ TEXT F*O(ND!", "AAS.exe is not responding. NanoOS is searching for a solution to the problem.") + +/obj/machinery/announcement_system/emp_act(severity) + if(!(stat & (NOPOWER|BROKEN))) + act_up() + ..(severity) + +/obj/machinery/announcement_system/emag_act() + if(!emagged) + emagged = 1 + act_up() diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm new file mode 100644 index 0000000..f5410ea --- /dev/null +++ b/code/game/machinery/autolathe.dm @@ -0,0 +1,404 @@ +#define AUTOLATHE_MAIN_MENU 1 +#define AUTOLATHE_CATEGORY_MENU 2 +#define AUTOLATHE_SEARCH_MENU 3 + +/obj/machinery/autolathe + name = "autolathe" + desc = "It produces items using metal and glass." + icon_state = "autolathe" + density = 1 + + var/operating = 0 + anchored = 1 + var/list/L = list() + var/list/LL = list() + var/hacked = 0 + var/disabled = 0 + var/shocked = 0 + var/hack_wire + var/disable_wire + var/shock_wire + use_power = 1 + idle_power_usage = 10 + active_power_usage = 100 + var/busy = 0 + var/prod_coeff = 1 + + var/datum/design/being_built + var/datum/research/files + var/list/datum/design/matching_designs + var/selected_category + var/screen = 1 + + var/datum/material_container/materials + + var/list/categories = list( + "Tools", + "Electronics", + "Construction", + "T-Comm", + "Security", + "Machinery", + "Medical", + "Misc", + "Dinnerware", + "Imported" + ) + +/obj/machinery/autolathe/New() + ..() + materials = new /datum/material_container(src, list(MAT_METAL, MAT_GLASS)) + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/autolathe(null) + B.apply_default_parts(src) + + wires = new /datum/wires/autolathe(src) + files = new /datum/research/autolathe(src) + matching_designs = list() + +/obj/item/weapon/circuitboard/machine/autolathe + name = "circuit board (Autolathe)" + build_path = /obj/machinery/autolathe + origin_tech = "engineering=2;programming=2" + req_components = list( + /obj/item/weapon/stock_parts/matter_bin = 3, + /obj/item/weapon/stock_parts/manipulator = 1, + /obj/item/weapon/stock_parts/console_screen = 1) + +/obj/machinery/autolathe/Destroy() + qdel(wires) + wires = null + qdel(materials) + materials = null + return ..() + +/obj/machinery/autolathe/interact(mob/user) + if(!is_operational()) + return + + if(shocked && !(stat & NOPOWER)) + shock(user,50) + + var/dat + + switch(screen) + if(AUTOLATHE_MAIN_MENU) + dat = main_win(user) + if(AUTOLATHE_CATEGORY_MENU) + dat = category_win(user,selected_category) + if(AUTOLATHE_SEARCH_MENU) + dat = search_win(user) + + var/datum/browser/popup = new(user, "autolathe", name, 400, 500) + popup.set_content(dat) + popup.open() + +/obj/machinery/autolathe/on_deconstruction() + materials.retrieve_all() + +/obj/machinery/autolathe/attackby(obj/item/O, mob/user, params) + if (busy) + user << "The autolathe is busy. Please wait for completion of previous operation." + return 1 + + if(default_deconstruction_screwdriver(user, "autolathe_t", "autolathe", O)) + updateUsrDialog() + return + + if(exchange_parts(user, O)) + return + + if(panel_open) + if(istype(O, /obj/item/weapon/crowbar)) + default_deconstruction_crowbar(O) + return 1 + else if(is_wire_tool(O)) + wires.interact(user) + return 1 + + if(user.a_intent == "harm") //so we can hit the machine + return ..() + + if(stat) + return 1 + + if(istype(O, /obj/item/weapon/disk/design_disk)) + user.visible_message("[user] begins to load \the [O] in \the [src]...", + "You begin to load a design from \the [O]...", + "You hear the chatter of a floppy drive.") + busy = 1 + var/obj/item/weapon/disk/design_disk/D = O + if(do_after(user, 14.4, target = src)) + for(var/B in D.blueprints) + if(B) + files.AddDesign2Known(B) + + busy = 0 + return 1 + + if(O.flags & HOLOGRAM) + return 1 + + var/material_amount = materials.get_item_material_amount(O) + if(!material_amount) + user << "This object does not contain sufficient amounts of metal or glass to be accepted by the autolathe." + return 1 + if(!materials.has_space(material_amount)) + user << "The autolathe is full. Please remove metal or glass from the autolathe in order to insert more." + return 1 + if(!user.unEquip(O)) + user << "\The [O] is stuck to you and cannot be placed into the autolathe." + return 1 + + busy = 1 + var/inserted = materials.insert_item(O) + if(inserted) + if(istype(O,/obj/item/stack)) + if (O.materials[MAT_METAL]) + flick("autolathe_o",src)//plays metal insertion animation + if (O.materials[MAT_GLASS]) + flick("autolathe_r",src)//plays glass insertion animation + user << "You insert [inserted] sheet[inserted>1 ? "s" : ""] to the autolathe." + use_power(inserted*100) + else + user << "You insert a material total of [inserted] to the autolathe." + use_power(max(500,inserted/10)) + qdel(O) + busy = 0 + src.updateUsrDialog() + return 1 + +/obj/machinery/autolathe/Topic(href, href_list) + if(..()) + return + if (!busy) + if(href_list["menu"]) + screen = text2num(href_list["menu"]) + + if(href_list["category"]) + selected_category = href_list["category"] + + if(href_list["make"]) + + var/turf/T = loc + + ///////////////// + //href protection + being_built = files.FindDesignByID(href_list["make"]) //check if it's a valid design + if(!being_built) + return + + //multiplier checks : only stacks can have one and its value is 1, 10 ,25 or max_multiplier + var/multiplier = text2num(href_list["multiplier"]) + var/max_multiplier = min(being_built.maxstack, being_built.materials[MAT_METAL] ?round(materials.amount(MAT_METAL)/being_built.materials[MAT_METAL]):INFINITY,being_built.materials[MAT_GLASS]?round(materials.amount(MAT_GLASS)/being_built.materials[MAT_GLASS]):INFINITY) + var/is_stack = ispath(being_built.build_path, /obj/item/stack) + + if(!is_stack && (multiplier > 1)) + return + if (!(multiplier in list(1,10,25,max_multiplier))) //"enough materials ?" is checked further down + return + ///////////////// + + var/coeff = (is_stack ? 1 : prod_coeff) //stacks are unaffected by production coefficient + var/metal_cost = being_built.materials[MAT_METAL] + var/glass_cost = being_built.materials[MAT_GLASS] + + var/power = max(2000, (metal_cost+glass_cost)*multiplier/5) + + if((materials.amount(MAT_METAL) >= metal_cost*multiplier*coeff) && (materials.amount(MAT_GLASS) >= glass_cost*multiplier*coeff)) + busy = 1 + use_power(power) + icon_state = "autolathe" + flick("autolathe_n",src) + spawn(32*coeff) + use_power(power) + if(is_stack) + var/list/materials_used = list(MAT_METAL=metal_cost*multiplier, MAT_GLASS=glass_cost*multiplier) + materials.use_amount(materials_used) + + var/obj/item/stack/N = new being_built.build_path(T, multiplier) + N.update_icon() + N.autolathe_crafted(src) + + for(var/obj/item/stack/S in T.contents - N) + if(istype(S, N.merge_type)) + N.merge(S) + else + var/list/materials_used = list(MAT_METAL=metal_cost*coeff, MAT_GLASS=glass_cost*coeff) + materials.use_amount(materials_used) + var/obj/item/new_item = new being_built.build_path(T) + new_item.materials = materials_used.Copy() + new_item.autolathe_crafted(src) + busy = 0 + src.updateUsrDialog() + + if(href_list["search"]) + matching_designs.Cut() + + for(var/v in files.known_designs) + var/datum/design/D = files.known_designs[v] + if(findtext(D.name,href_list["to_search"])) + matching_designs.Add(D) + else + usr << "The autolathe is busy. Please wait for completion of previous operation." + + src.updateUsrDialog() + + return + +/obj/machinery/autolathe/RefreshParts() + var/T = 0 + for(var/obj/item/weapon/stock_parts/matter_bin/MB in component_parts) + T += MB.rating*75000 + materials.max_amount = T + T=1.2 + for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts) + T -= M.rating*0.2 + prod_coeff = min(1,max(0,T)) // Coeff going 1 -> 0,8 -> 0,6 -> 0,4 + +/obj/machinery/autolathe/proc/main_win(mob/user) + var/dat = "

    Autolathe Menu:


    " + dat += materials_printout() + + dat += "
    \ + \ + \ + \ + \ + \ +

    " + + var/line_length = 1 + dat += "" + + for(var/C in categories) + if(line_length > 2) + dat += "" + line_length = 1 + + dat += "" + line_length++ + + dat += "
    [C]
    " + return dat + +/obj/machinery/autolathe/proc/category_win(mob/user,selected_category) + var/dat = "Return to main menu" + dat += "

    Browsing [selected_category]:


    " + dat += materials_printout() + + for(var/v in files.known_designs) + var/datum/design/D = files.known_designs[v] + if(!(selected_category in D.category)) + continue + + if(disabled || !can_build(D)) + dat += "[D.name]" + else + dat += "[D.name]" + + if(ispath(D.build_path, /obj/item/stack)) + var/max_multiplier = min(D.maxstack, D.materials[MAT_METAL] ?round(materials.amount(MAT_METAL)/D.materials[MAT_METAL]):INFINITY,D.materials[MAT_GLASS]?round(materials.amount(MAT_GLASS)/D.materials[MAT_GLASS]):INFINITY) + if (max_multiplier>10 && !disabled) + dat += " x10" + if (max_multiplier>25 && !disabled) + dat += " x25" + if(max_multiplier > 0 && !disabled) + dat += " x[max_multiplier]" + + dat += "[get_design_cost(D)]
    " + + dat += "
    " + return dat + +/obj/machinery/autolathe/proc/search_win(mob/user) + var/dat = "Return to main menu" + dat += "

    Search results:


    " + dat += materials_printout() + + for(var/v in matching_designs) + var/datum/design/D = v + if(disabled || !can_build(D)) + dat += "[D.name]" + else + dat += "[D.name]" + + if(ispath(D.build_path, /obj/item/stack)) + var/max_multiplier = min(D.maxstack, D.materials[MAT_METAL] ?round(materials.amount(MAT_METAL)/D.materials[MAT_METAL]):INFINITY,D.materials[MAT_GLASS]?round(materials.amount(MAT_GLASS)/D.materials[MAT_GLASS]):INFINITY) + if (max_multiplier>10 && !disabled) + dat += " x10" + if (max_multiplier>25 && !disabled) + dat += " x25" + if(max_multiplier > 0 && !disabled) + dat += " x[max_multiplier]" + + dat += "[get_design_cost(D)]
    " + + dat += "
    " + return dat + +/obj/machinery/autolathe/proc/materials_printout() + var/dat = "Total amount: [materials.total_amount] / [materials.max_amount] cm3
    " + for(var/mat_id in materials.materials) + var/datum/material/M = materials.materials[mat_id] + dat += "[M.name] amount: [M.amount] cm3
    " + return dat + +/obj/machinery/autolathe/proc/can_build(datum/design/D) + if(D.make_reagents.len) + return 0 + + var/coeff = (ispath(D.build_path,/obj/item/stack) ? 1 : prod_coeff) + + if(D.materials[MAT_METAL] && (materials.amount(MAT_METAL) < (D.materials[MAT_METAL] * coeff))) + return 0 + if(D.materials[MAT_GLASS] && (materials.amount(MAT_GLASS) < (D.materials[MAT_GLASS] * coeff))) + return 0 + return 1 + +/obj/machinery/autolathe/proc/get_design_cost(datum/design/D) + var/coeff = (ispath(D.build_path,/obj/item/stack) ? 1 : prod_coeff) + var/dat + if(D.materials[MAT_METAL]) + dat += "[D.materials[MAT_METAL] * coeff] metal " + if(D.materials[MAT_GLASS]) + dat += "[D.materials[MAT_GLASS] * coeff] glass" + return dat + +/obj/machinery/autolathe/proc/reset(wire) + switch(wire) + if(WIRE_HACK) + if(!wires.is_cut(wire)) + adjust_hacked(FALSE) + if(WIRE_SHOCK) + if(!wires.is_cut(wire)) + shocked = FALSE + if(WIRE_DISABLE) + if(!wires.is_cut(wire)) + disabled = FALSE + +/obj/machinery/autolathe/proc/shock(mob/user, prb) + if(stat & (BROKEN|NOPOWER)) // unpowered, no shock + return 0 + if(!prob(prb)) + return 0 + var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread + s.set_up(5, 1, src) + s.start() + if (electrocute_mob(user, get_area(src), src, 0.7)) + return 1 + else + return 0 + +/obj/machinery/autolathe/proc/adjust_hacked(state) + hacked = state + for(var/datum/design/D in files.possible_designs) + if((D.build_type & AUTOLATHE) && ("hacked" in D.category)) + if(hacked) + files.AddDesign2Known(D) + else + files.known_designs -= D.id + +//Called when the object is constructed by an autolathe +//Has a reference to the autolathe so you can do !!FUN!! things with hacked lathes +/obj/item/proc/autolathe_crafted(obj/machinery/autolathe/A) + return diff --git a/code/game/machinery/buttons.dm b/code/game/machinery/buttons.dm new file mode 100644 index 0000000..22148e3 --- /dev/null +++ b/code/game/machinery/buttons.dm @@ -0,0 +1,223 @@ +/obj/machinery/button + name = "button" + desc = "A remote control switch." + icon = 'icons/obj/stationobjs.dmi' + icon_state = "doorctrl" + var/skin = "doorctrl" + power_channel = ENVIRON + var/obj/item/device/assembly/device + var/obj/item/weapon/electronics/airlock/board + var/device_type = null + var/id = null + var/initialized = 0 + armor = list(melee = 50, bullet = 50, laser = 50, energy = 50, bomb = 10, bio = 100, rad = 100, fire = 90, acid = 70) + anchored = 1 + use_power = 1 + idle_power_usage = 2 + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF + + +/obj/machinery/button/New(loc, ndir = 0, built = 0) + ..() + if(built) + setDir(ndir) + pixel_x = (dir & 3)? 0 : (dir == 4 ? -24 : 24) + pixel_y = (dir & 3)? (dir ==1 ? -24 : 24) : 0 + panel_open = 1 + update_icon() + + + if(!built && !device && device_type) + device = new device_type(src) + + src.check_access(null) + + if(req_access.len || req_one_access.len) + board = new(src) + if(req_access.len) + board.accesses = req_access + else + board.one_access = 1 + board.accesses = req_one_access + + +/obj/machinery/button/update_icon() + cut_overlays() + if(panel_open) + icon_state = "button-open" + if(device) + add_overlay("button-device") + if(board) + add_overlay("button-board") + + else + if(stat & (NOPOWER|BROKEN)) + icon_state = "[skin]-p" + else + icon_state = skin + +/obj/machinery/button/attackby(obj/item/W, mob/user, params) + if(istype(W, /obj/item/weapon/screwdriver)) + if(panel_open || allowed(user)) + default_deconstruction_screwdriver(user, "button-open", "[skin]",W) + update_icon() + else + user << "Maintenance Access Denied" + flick("[skin]-denied", src) + return + + if(panel_open) + if(!device && istype(W, /obj/item/device/assembly)) + if(!user.unEquip(W)) + user << "\The [W] is stuck to you!" + return + W.loc = src + device = W + user << "You add [W] to the button." + + if(!board && istype(W, /obj/item/weapon/electronics/airlock)) + if(!user.unEquip(W)) + user << "\The [W] is stuck to you!" + return + W.loc = src + board = W + if(board.one_access) + req_one_access = board.accesses + else + req_access = board.accesses + user << "You add [W] to the button." + + if(!device && !board && istype(W, /obj/item/weapon/wrench)) + user << "You start unsecuring the button frame..." + playsound(loc, 'sound/items/Ratchet.ogg', 50, 1) + if(do_after(user, 40/W.toolspeed, target = src)) + user << "You unsecure the button frame." + transfer_fingerprints_to(new /obj/item/wallframe/button(get_turf(src))) + playsound(loc, 'sound/items/Deconstruct.ogg', 50, 1) + qdel(src) + + update_icon() + return + + if(user.a_intent != "harm" && !(W.flags & NOBLUDGEON)) + return src.attack_hand(user) + else + return ..() + +/obj/machinery/button/emag_act(mob/user) + req_access = list() + req_one_access = list() + playsound(src.loc, "sparks", 100, 1) + +/obj/machinery/button/attack_ai(mob/user) + if(!panel_open) + return attack_hand(user) + +/obj/machinery/button/proc/setup_device() + if(id && istype(device, /obj/item/device/assembly/control)) + var/obj/item/device/assembly/control/A = device + A.id = id + initialized = 1 + +/obj/machinery/button/attack_hand(mob/user) + if(!initialized) + setup_device() + src.add_fingerprint(user) + if(panel_open) + if(device || board) + if(device) + device.loc = get_turf(src) + device = null + if(board) + board.loc = get_turf(src) + req_access = list() + req_one_access = list() + board = null + update_icon() + user << "You remove electronics from the button frame." + + else + if(skin == "doorctrl") + skin = "launcher" + else + skin = "doorctrl" + user << "You change the button frame's front panel." + return + + if((stat & (NOPOWER|BROKEN))) + return + + if(device && device.cooldown) + return + + if(!allowed(user)) + user << "Access Denied" + flick("[skin]-denied", src) + return + + use_power(5) + icon_state = "[skin]1" + + if(device) + device.pulsed() + + addtimer(src, "update_icon", 15) + +/obj/machinery/button/power_change() + ..() + update_icon() + + +/obj/machinery/button/door + name = "door button" + desc = "A door remote control switch." + var/normaldoorcontrol = 0 + var/specialfunctions = OPEN // Bitflag, see assembly file + +/obj/machinery/button/door/setup_device() + if(!device) + if(normaldoorcontrol) + var/obj/item/device/assembly/control/airlock/A = new(src) + device = A + A.specialfunctions = specialfunctions + else + device = new /obj/item/device/assembly/control(src) + ..() + +/obj/machinery/button/massdriver + name = "mass driver button" + desc = "A remote control switch for a mass driver." + icon_state = "launcher" + skin = "launcher" + device_type = /obj/item/device/assembly/control/massdriver + +/obj/machinery/button/ignition + name = "ignition switch" + desc = "A remote control switch for a mounted igniter." + icon_state = "launcher" + skin = "launcher" + device_type = /obj/item/device/assembly/control/igniter + +/obj/machinery/button/flasher + name = "flasher button" + desc = "A remote control switch for a mounted flasher." + icon_state = "launcher" + skin = "launcher" + device_type = /obj/item/device/assembly/control/flasher + +/obj/machinery/button/crematorium + name = "crematorium igniter" + desc = "Burn baby burn!" + icon_state = "launcher" + skin = "launcher" + device_type = /obj/item/device/assembly/control/crematorium + req_access = list() + id = 1 + +/obj/item/wallframe/button + name = "button frame" + desc = "Used for building buttons." + icon = 'icons/obj/apc_repair.dmi' + icon_state = "button_frame" + result_path = /obj/machinery/button + materials = list(MAT_METAL=MINERAL_MATERIAL_AMOUNT) diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm new file mode 100644 index 0000000..24a93a0 --- /dev/null +++ b/code/game/machinery/camera/camera.dm @@ -0,0 +1,423 @@ +#define CAMERA_UPGRADE_XRAY 1 +#define CAMERA_UPGRADE_EMP_PROOF 2 +#define CAMERA_UPGRADE_MOTION 4 + +/obj/machinery/camera + name = "security camera" + desc = "It's used to monitor rooms." + icon = 'icons/obj/monitors.dmi' + icon_state = "camera" + use_power = 2 + idle_power_usage = 5 + active_power_usage = 10 + layer = WALL_OBJ_LAYER + + resistance_flags = FIRE_PROOF + + armor = list(melee = 50, bullet = 20, laser = 20, energy = 20, bomb = 0, bio = 0, rad = 0, fire = 90, acid = 50) + obj_integrity = 100 + max_integrity = 100 + integrity_failure = 50 + var/list/network = list("SS13") + var/c_tag = null + var/c_tag_order = 999 + var/status = 1 + anchored = 1 + var/start_active = 0 //If it ignores the random chance to start broken on round start + var/invuln = null + var/obj/item/device/camera_bug/bug = null + var/obj/structure/camera_assembly/assembly = null + + //OTHER + + var/view_range = 7 + var/short_range = 2 + + var/alarm_on = 0 + var/busy = 0 + var/emped = 0 //Number of consecutive EMP's on this camera + + // Upgrades bitflag + var/upgrades = 0 + +/obj/machinery/camera/New() + ..() + assembly = new(src) + assembly.state = 4 + cameranet.cameras += src + cameranet.addCamera(src) + add_to_proximity_list(src, 1) //1 was default of everything + /* // Use this to look for cameras that have the same c_tag. + for(var/obj/machinery/camera/C in cameranet.cameras) + var/list/tempnetwork = C.network&src.network + if(C != src && C.c_tag == src.c_tag && tempnetwork.len) + world.log << "[src.c_tag] [src.x] [src.y] [src.z] conflicts with [C.c_tag] [C.x] [C.y] [C.z]" + */ + +/obj/machinery/camera/initialize() + if(z == 1 && prob(3) && !start_active) + toggle_cam() + +/obj/machinery/camera/Move() + remove_from_proximity_list(src, 1) + return ..() + +/obj/machinery/camera/Destroy() + toggle_cam(null, 0) //kick anyone viewing out + remove_from_proximity_list(src, 1) + if(assembly) + qdel(assembly) + assembly = null + if(bug) + bug.bugged_cameras -= src.c_tag + if(bug.current == src) + bug.current = null + bug = null + cameranet.removeCamera(src) //Will handle removal from the camera network and the chunks, so we don't need to worry about that + cameranet.cameras -= src + cameranet.removeCamera(src) + return ..() + +/obj/machinery/camera/emp_act(severity) + if(!status) + return + if(!isEmpProof()) + if(prob(150/severity)) + update_icon() + var/list/previous_network = network + network = list() + cameranet.removeCamera(src) + stat |= EMPED + SetLuminosity(0) + emped = emped+1 //Increase the number of consecutive EMP's + update_icon() + var/thisemp = emped //Take note of which EMP this proc is for + spawn(900) + if(loc) //qdel limbo + triggerCameraAlarm() //camera alarm triggers even if multiple EMPs are in effect. + if(emped == thisemp) //Only fix it if the camera hasn't been EMP'd again + network = previous_network + stat &= ~EMPED + update_icon() + if(can_use()) + cameranet.addCamera(src) + emped = 0 //Resets the consecutive EMP count + addtimer(src, "cancelCameraAlarm", 100) + for(var/mob/O in mob_list) + if (O.client && O.client.eye == src) + O.unset_machine() + O.reset_perspective(null) + O << "The screen bursts into static." + ..() + +/obj/machinery/camera/tesla_act(var/power)//EMP proof upgrade also makes it tesla immune + if(isEmpProof()) + return + ..() + qdel(src)//to prevent bomb testing camera from exploding over and over forever + +/obj/machinery/camera/ex_act(severity, target) + if(invuln) + return + ..() + +/obj/machinery/camera/proc/setViewRange(num = 7) + src.view_range = num + cameranet.updateVisibility(src, 0) + +/obj/machinery/camera/proc/shock(mob/living/user) + if(!istype(user)) + return + user.electrocute_act(10, src) + +/obj/machinery/camera/attackby(obj/item/W, mob/living/user, params) + var/msg = "You attach [W] into the assembly's inner circuits." + var/msg2 = "[src] already has that upgrade!" + + // DECONSTRUCTION + if(istype(W, /obj/item/weapon/screwdriver)) + panel_open = !panel_open + user << "You screw the camera's panel [panel_open ? "open" : "closed"]." + playsound(src.loc, W.usesound, 50, 1) + return + + if(panel_open) + if(istype(W, /obj/item/weapon/wirecutters)) //enable/disable the camera + toggle_cam(user, 1) + obj_integrity = max_integrity //this is a pretty simplistic way to heal the camera, but there's no reason for this to be complex. + return + + else if(istype(W, /obj/item/device/multitool)) //change focus + setViewRange((view_range == initial(view_range)) ? short_range : initial(view_range)) + user << "You [(view_range == initial(view_range)) ? "restore" : "mess up"] the camera's focus." + return + + else if(istype(W, /obj/item/weapon/weldingtool)) + if(weld(W, user)) + visible_message("[user] unwelds [src], leaving it as just a frame screwed to the wall.", "You unweld [src], leaving it as just a frame screwed to the wall") + deconstruct(TRUE) + return + + else if(istype(W, /obj/item/device/analyzer)) + if(!isXRay()) + if(!user.drop_item(W)) + return + upgradeXRay() + qdel(W) + user << "[msg]" + else + user << "[msg2]" + return + + else if(istype(W, /obj/item/stack/sheet/mineral/plasma)) + if(!isEmpProof()) + upgradeEmpProof() + user << "[msg]" + qdel(W) + else + user << "[msg2]" + return + + else if(istype(W, /obj/item/device/assembly/prox_sensor)) + if(!isMotion()) + upgradeMotion() + user << "[msg]" + qdel(W) + else + user << "[msg2]" + return + + // OTHER + if((istype(W, /obj/item/weapon/paper) || istype(W, /obj/item/device/pda)) && isliving(user)) + var/mob/living/U = user + var/obj/item/weapon/paper/X = null + var/obj/item/device/pda/P = null + + var/itemname = "" + var/info = "" + if(istype(W, /obj/item/weapon/paper)) + X = W + itemname = X.name + info = X.info + else + P = W + itemname = P.name + info = P.notehtml + U << "You hold \the [itemname] up to the camera..." + U.changeNext_move(CLICK_CD_MELEE) + for(var/mob/O in player_list) + if(isAI(O)) + var/mob/living/silicon/ai/AI = O + if(AI.control_disabled || (AI.stat == DEAD)) + return + if(U.name == "Unknown") + AI << "[U] holds \a [itemname] up to one of your cameras ..." + else + AI << "[U] holds \a [itemname] up to one of your cameras ..." + AI.last_paper_seen = "[itemname][info]" + else if (O.client && O.client.eye == src) + O << "[U] holds \a [itemname] up to one of the cameras ..." + O << browse(text("[][]", itemname, info), text("window=[]", itemname)) + return + + else if(istype(W, /obj/item/device/camera_bug)) + if(!can_use()) + user << "Camera non-functional." + return + if(bug) + user << "Camera bug removed." + bug.bugged_cameras -= src.c_tag + bug = null + else + user << "Camera bugged." + bug = W + bug.bugged_cameras[src.c_tag] = src + return + + else if(istype(W, /obj/item/weapon/pai_cable)) + var/obj/item/weapon/pai_cable/cable = W + cable.plugin(src, user) + return + + return ..() + +/obj/machinery/camera/run_obj_armor(damage_amount, damage_type, damage_flag = 0, attack_dir) + if(damage_flag == "melee" && damage_amount < 12 && !(stat & BROKEN)) + return 0 + . = ..() + +/obj/machinery/camera/obj_break(damage_flag) + if(status && !(flags & NODECONSTRUCT)) + triggerCameraAlarm() + toggle_cam(null, 0) + +/obj/machinery/camera/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + if(disassembled) + if(!assembly) + assembly = new() + assembly.loc = src.loc + assembly.state = 1 + assembly.setDir(dir) + assembly = null + else + var/obj/item/I = new /obj/item/wallframe/camera (loc) + I.obj_integrity = I.max_integrity * 0.5 + new /obj/item/stack/cable_coil(loc, 2) + qdel(src) + +/obj/machinery/camera/update_icon() + if(!status) + icon_state = "[initial(icon_state)]1" + else if (stat & EMPED) + icon_state = "[initial(icon_state)]emp" + else + icon_state = "[initial(icon_state)]" + +/obj/machinery/camera/proc/toggle_cam(mob/user, displaymessage = 1) + status = !status + if(can_use()) + cameranet.addCamera(src) + else + SetLuminosity(0) + cameranet.removeCamera(src) + cameranet.updateChunk(x, y, z) + var/change_msg = "deactivates" + if(status) + change_msg = "reactivates" + triggerCameraAlarm() + addtimer(src, "cancelCameraAlarm", 100) + if(displaymessage) + if(user) + visible_message("[user] [change_msg] [src]!") + add_hiddenprint(user) + else + visible_message("\The [src] [change_msg]!") + + playsound(src.loc, 'sound/items/Wirecutter.ogg', 100, 1) + update_icon() + + // now disconnect anyone using the camera + //Apparently, this will disconnect anyone even if the camera was re-activated. + //I guess that doesn't matter since they can't use it anyway? + for(var/mob/O in player_list) + if (O.client && O.client.eye == src) + O.unset_machine() + O.reset_perspective(null) + O << "The screen bursts into static." + +/obj/machinery/camera/proc/triggerCameraAlarm() + alarm_on = 1 + for(var/mob/living/silicon/S in mob_list) + S.triggerAlarm("Camera", get_area(src), list(src), src) + +/obj/machinery/camera/proc/cancelCameraAlarm() + alarm_on = 0 + for(var/mob/living/silicon/S in mob_list) + S.cancelAlarm("Camera", get_area(src), src) + +/obj/machinery/camera/proc/can_use() + if(!status) + return 0 + if(stat & EMPED) + return 0 + return 1 + +/obj/machinery/camera/proc/can_see() + var/list/see = null + var/turf/pos = get_turf(src) + if(isXRay()) + see = range(view_range, pos) + else + see = get_hear(view_range, pos) + return see + +/atom/proc/auto_turn() + //Automatically turns based on nearby walls. + var/turf/closed/wall/T = null + for(var/i = 1, i <= 8; i += i) + T = get_ranged_target_turf(src, i, 1) + if(istype(T)) + //If someone knows a better way to do this, let me know. -Giacom + switch(i) + if(NORTH) + src.setDir(SOUTH) + if(SOUTH) + src.setDir(NORTH) + if(WEST) + src.setDir(EAST) + if(EAST) + src.setDir(WEST) + break + +//Return a working camera that can see a given mob +//or null if none +/proc/seen_by_camera(var/mob/M) + for(var/obj/machinery/camera/C in oview(4, M)) + if(C.can_use()) // check if camera disabled + return C + break + return null + +/proc/near_range_camera(var/mob/M) + for(var/obj/machinery/camera/C in range(4, M)) + if(C.can_use()) // check if camera disabled + return C + break + + return null + +/obj/machinery/camera/proc/weld(obj/item/weapon/weldingtool/WT, mob/living/user) + if(busy) + return 0 + if(!WT.remove_fuel(0, user)) + return 0 + + user << "You start to weld [src]..." + playsound(src.loc, 'sound/items/Welder.ogg', 50, 1) + busy = 1 + if(do_after(user, 100, target = src)) + busy = 0 + if(!WT.isOn()) + return 0 + return 1 + busy = 0 + return 0 + +/obj/machinery/camera/proc/Togglelight(on=0) + for(var/mob/living/silicon/ai/A in ai_list) + for(var/obj/machinery/camera/cam in A.lit_cameras) + if(cam == src) + return + if(on) + src.SetLuminosity(AI_CAMERA_LUMINOSITY) + else + src.SetLuminosity(0) + +/obj/machinery/camera/portable //Cameras which are placed inside of things, such as helmets. + var/turf/prev_turf + +/obj/machinery/camera/portable/New() + ..() + assembly.state = 0 //These cameras are portable, and so shall be in the portable state if removed. + assembly.anchored = 0 + assembly.update_icon() + +/obj/machinery/camera/portable/process() //Updates whenever the camera is moved. + if(cameranet && get_turf(src) != prev_turf) + cameranet.updatePortableCamera(src) + prev_turf = get_turf(src) + +/obj/machinery/camera/get_remote_view_fullscreens(mob/user) + if(view_range == short_range) //unfocused + user.overlay_fullscreen("remote_view", /obj/screen/fullscreen/impaired, 2) + +/obj/machinery/camera/update_remote_sight(mob/living/user) + user.see_invisible = SEE_INVISIBLE_LIVING //can't see ghosts through cameras + if(isXRay()) + user.sight |= (SEE_TURFS|SEE_MOBS|SEE_OBJS) + user.see_in_dark = max(user.see_in_dark, 8) + else + user.sight = 0 + user.see_in_dark = 2 + return 1 diff --git a/code/game/machinery/camera/camera_assembly.dm b/code/game/machinery/camera/camera_assembly.dm new file mode 100644 index 0000000..6bd34e9 --- /dev/null +++ b/code/game/machinery/camera/camera_assembly.dm @@ -0,0 +1,141 @@ +/obj/item/wallframe/camera + name = "camera assembly" + desc = "The basic construction for Nanotrasen-Always-Watching-You cameras." + icon = 'icons/obj/monitors.dmi' + icon_state = "cameracase" + materials = list(MAT_METAL=400, MAT_GLASS=250) + result_path = /obj/structure/camera_assembly + + +/obj/structure/camera_assembly + name = "camera assembly" + desc = "The basic construction for Nanotrasen-Always-Watching-You cameras." + icon = 'icons/obj/monitors.dmi' + icon_state = "camera1" + obj_integrity = 150 + max_integrity = 150 + // Motion, EMP-Proof, X-Ray + var/list/obj/item/possible_upgrades = list(/obj/item/device/assembly/prox_sensor, /obj/item/stack/sheet/mineral/plasma, /obj/item/device/analyzer) + var/list/upgrades = list() + var/state = 1 + + /* + 1 = Wrenched in place + 2 = Welded in place + 3 = Wires attached to it (you can now attach/dettach upgrades) + 4 = Screwdriver panel closed and is fully built (you cannot attach upgrades) + */ + +/obj/structure/camera_assembly/New(loc, ndir, building) + ..() + if(building) + setDir(ndir) + +/obj/structure/camera_assembly/attackby(obj/item/W, mob/living/user, params) + switch(state) + if(1) + // State 1 + if(istype(W, /obj/item/weapon/weldingtool)) + if(weld(W, user)) + user << "You weld the assembly securely into place." + anchored = 1 + state = 2 + return + + else if(istype(W, /obj/item/weapon/wrench)) + playsound(src.loc, W.usesound, 50, 1) + user << "You unattach the assembly from its place." + new /obj/item/wallframe/camera(get_turf(src)) + qdel(src) + return + + if(2) + // State 2 + if(istype(W, /obj/item/stack/cable_coil)) + var/obj/item/stack/cable_coil/C = W + if(C.use(2)) + user << "You add wires to the assembly." + state = 3 + else + user << "You need two lengths of cable to wire a camera!" + return + return + + else if(istype(W, /obj/item/weapon/weldingtool)) + + if(weld(W, user)) + user << "You unweld the assembly from its place." + state = 1 + anchored = 1 + return + + + if(3) + // State 3 + if(istype(W, /obj/item/weapon/screwdriver)) + playsound(src.loc, W.usesound, 50, 1) + + var/input = stripped_input(user, "Which networks would you like to connect this camera to? Seperate networks with a comma. No Spaces!\nFor example: SS13,Security,Secret ", "Set Network", "SS13") + if(!input) + user << "No input found, please hang up and try your call again!" + return + + var/list/tempnetwork = splittext(input, ",") + if(tempnetwork.len < 1) + user << "No network found, please hang up and try your call again!" + return + + state = 4 + var/obj/machinery/camera/C = new(src.loc) + src.loc = C + C.assembly = src + C.setDir(src.dir) + + C.network = tempnetwork + var/area/A = get_area_master(src) + C.c_tag = "[A.name] ([rand(1, 999)])" + + + else if(istype(W, /obj/item/weapon/wirecutters)) + new/obj/item/stack/cable_coil(get_turf(src), 2) + playsound(src.loc, W.usesound, 50, 1) + user << "You cut the wires from the circuits." + state = 2 + return + + // Upgrades! + if(is_type_in_list(W, possible_upgrades) && !is_type_in_list(W, upgrades)) // Is a possible upgrade and isn't in the camera already. + if(!user.drop_item(W)) + return + user << "You attach \the [W] into the assembly inner circuits." + upgrades += W + W.forceMove(src) + return + + // Taking out upgrades + else if(istype(W, /obj/item/weapon/crowbar) && upgrades.len) + var/obj/U = locate(/obj) in upgrades + if(U) + user << "You unattach an upgrade from the assembly." + playsound(src.loc, W.usesound, 50, 1) + U.loc = get_turf(src) + upgrades -= U + return + + return ..() + +/obj/structure/camera_assembly/proc/weld(obj/item/weapon/weldingtool/WT, mob/living/user) + if(!WT.remove_fuel(0, user)) + return 0 + user << "You start to weld \the [src]..." + playsound(src.loc, 'sound/items/Welder.ogg', 50, 1) + if(do_after(user, 20, target = src)) + if(WT.isOn()) + playsound(loc, 'sound/items/Welder2.ogg', 50, 1) + return 1 + return 0 + +/obj/structure/camera_assembly/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + new /obj/item/stack/sheet/metal(loc) + qdel(src) diff --git a/code/game/machinery/camera/motion.dm b/code/game/machinery/camera/motion.dm new file mode 100644 index 0000000..d9b6d04 --- /dev/null +++ b/code/game/machinery/camera/motion.dm @@ -0,0 +1,66 @@ +/obj/machinery/camera + + var/list/localMotionTargets = list() + var/detectTime = 0 + var/area/ai_monitored/area_motion = null + var/alarm_delay = 30 // Don't forget, there's another 3 seconds in queueAlarm() + +/obj/machinery/camera/process() + // motion camera event loop + if(!isMotion()) + . = PROCESS_KILL + return + if (detectTime > 0) + var/elapsed = world.time - detectTime + if (elapsed > alarm_delay) + triggerAlarm() + else if (detectTime == -1) + for (var/mob/target in getTargetList()) + if (target.stat == DEAD || (!area_motion && !in_range(src, target))) + //If not part of a monitored area and the camera is not in range or the target is dead + lostTarget(target) + +/obj/machinery/camera/proc/getTargetList() + if(area_motion) + return area_motion.motionTargets + return localMotionTargets + +/obj/machinery/camera/proc/newTarget(mob/target) + if(isAI(target)) + return 0 + if (detectTime == 0) + detectTime = world.time // start the clock + var/list/targets = getTargetList() + if (!(target in targets)) + targets += target + return 1 + +/obj/machinery/camera/proc/lostTarget(mob/target) + var/list/targets = getTargetList() + if (target in targets) + targets -= target + if (targets.len == 0) + cancelAlarm() + +/obj/machinery/camera/proc/cancelAlarm() + if (detectTime == -1) + for (var/mob/living/silicon/aiPlayer in player_list) + if (status) + aiPlayer.cancelAlarm("Motion", get_area(src), src) + detectTime = 0 + return 1 + +/obj/machinery/camera/proc/triggerAlarm() + if (!detectTime) return 0 + for (var/mob/living/silicon/aiPlayer in player_list) + if (status) + aiPlayer.triggerAlarm("Motion", get_area(src), list(src), src) + detectTime = -1 + return 1 + +/obj/machinery/camera/HasProximity(atom/movable/AM as mob|obj) + // Motion cameras outside of an "ai monitored" area will use this to detect stuff. + if (!area_motion) + if(isliving(AM)) + newTarget(AM) + diff --git a/code/game/machinery/camera/presets.dm b/code/game/machinery/camera/presets.dm new file mode 100644 index 0000000..5cd1760 --- /dev/null +++ b/code/game/machinery/camera/presets.dm @@ -0,0 +1,85 @@ +// PRESETS + +// EMP +/obj/machinery/camera/emp_proof + start_active = 1 + +/obj/machinery/camera/emp_proof/New() + ..() + upgradeEmpProof() + +// X-RAY + +/obj/machinery/camera/xray + start_active = 1 + icon_state = "xraycam" // Thanks to Krutchen for the icons. + +/obj/machinery/camera/xray/New() + ..() + upgradeXRay() + +// MOTION +/obj/machinery/camera/motion + start_active = 1 + name = "motion-sensitive security camera" + +/obj/machinery/camera/motion/New() + ..() + upgradeMotion() + +// ALL UPGRADES +/obj/machinery/camera/all + start_active = 1 + +/obj/machinery/camera/all/New() + ..() + upgradeEmpProof() + upgradeXRay() + upgradeMotion() + +// AUTONAME + +/obj/machinery/camera/autoname + var/number = 0 //camera number in area + +//This camera type automatically sets it's name to whatever the area that it's in is called. +/obj/machinery/camera/autoname/New() + ..() + spawn(10) + number = 1 + var/area/A = get_area(src) + if(A) + for(var/obj/machinery/camera/autoname/C in machines) + if(C == src) continue + var/area/CA = get_area(C) + if(CA.type == A.type) + if(C.number) + number = max(number, C.number+1) + c_tag = "[A.name] #[number]" + + +// CHECKS + +/obj/machinery/camera/proc/isEmpProof() + return upgrades & CAMERA_UPGRADE_EMP_PROOF + +/obj/machinery/camera/proc/isXRay() + return upgrades & CAMERA_UPGRADE_XRAY + +/obj/machinery/camera/proc/isMotion() + return upgrades & CAMERA_UPGRADE_MOTION + +// UPGRADE PROCS + +/obj/machinery/camera/proc/upgradeEmpProof() + assembly.upgrades.Add(new /obj/item/stack/sheet/mineral/plasma(assembly)) + upgrades |= CAMERA_UPGRADE_EMP_PROOF + +/obj/machinery/camera/proc/upgradeXRay() + assembly.upgrades.Add(new /obj/item/device/analyzer(assembly)) + upgrades |= CAMERA_UPGRADE_XRAY + +// If you are upgrading Motion, and it isn't in the camera's New(), add it to the machines list. +/obj/machinery/camera/proc/upgradeMotion() + assembly.upgrades.Add(new /obj/item/device/assembly/prox_sensor(assembly)) + upgrades |= CAMERA_UPGRADE_MOTION diff --git a/code/game/machinery/camera/tracking.dm b/code/game/machinery/camera/tracking.dm new file mode 100644 index 0000000..8ff0c52 --- /dev/null +++ b/code/game/machinery/camera/tracking.dm @@ -0,0 +1,172 @@ +/mob/living/silicon/ai/proc/get_camera_list() + + track.cameras.Cut() + + if(src.stat == 2) + return + + var/list/L = list() + for (var/obj/machinery/camera/C in cameranet.cameras) + L.Add(C) + + camera_sort(L) + + var/list/T = list() + + for (var/obj/machinery/camera/C in L) + var/list/tempnetwork = C.network&src.network + if (tempnetwork.len) + T[text("[][]", C.c_tag, (C.can_use() ? null : " (Deactivated)"))] = C + + track.cameras = T + return T + + +/mob/living/silicon/ai/proc/ai_camera_list(camera) + if (!camera) + return 0 + + var/obj/machinery/camera/C = track.cameras[camera] + src.eyeobj.setLoc(C) + + return + +/datum/trackable + var/list/names = list() + var/list/namecounts = list() + var/list/humans = list() + var/list/others = list() + var/list/cameras = list() + +/mob/living/silicon/ai/proc/trackable_mobs() + + track.names.Cut() + track.namecounts.Cut() + track.humans.Cut() + track.others.Cut() + + if(usr.stat == 2) + return list() + + for(var/mob/living/M in mob_list) + if(!M.can_track(usr)) + continue + + // Human check + var/human = 0 + if(ishuman(M)) + human = 1 + + var/name = M.name + if (name in track.names) + track.namecounts[name]++ + name = text("[] ([])", name, track.namecounts[name]) + else + track.names.Add(name) + track.namecounts[name] = 1 + if(human) + track.humans[name] = M + else + track.others[name] = M + + var/list/targets = sortList(track.humans) + sortList(track.others) + + return targets + +/mob/living/silicon/ai/verb/ai_camera_track(target_name in trackable_mobs()) + set name = "track" + set hidden = 1 //Don't display it on the verb lists. This verb exists purely so you can type "track Oldman Robustin" and follow his ass + + if(!target_name) + return + + var/mob/target = (isnull(track.humans[target_name]) ? track.others[target_name] : track.humans[target_name]) + + ai_actual_track(target) + +/mob/living/silicon/ai/proc/ai_actual_track(mob/living/target) + if(!istype(target)) + return + var/mob/living/silicon/ai/U = usr + + U.cameraFollow = target + U.tracking = 1 + + if(!target || !target.can_track(usr)) + U << "Target is not near any active cameras." + U.cameraFollow = null + return + + U << "Now tracking [target.get_visible_name()] on camera." + + var/cameraticks = 0 + spawn(0) + while(U.cameraFollow == target) + if(U.cameraFollow == null) + return + + if(!target.can_track(usr)) + U.tracking = 1 + if(!cameraticks) + U << "Target is not near any active cameras. Attempting to reacquire..." + cameraticks++ + if(cameraticks > 9) + U.cameraFollow = null + U << "Unable to reacquire, cancelling track..." + tracking = 0 + return + else + sleep(10) + continue + + else + cameraticks = 0 + U.tracking = 0 + + if(U.eyeobj) + U.eyeobj.setLoc(get_turf(target)) + + else + view_core() + U.cameraFollow = null + return + + sleep(10) + +/proc/near_camera(mob/living/M) + if (!isturf(M.loc)) + return 0 + if(iscyborg(M)) + var/mob/living/silicon/robot/R = M + if(!(R.camera && R.camera.can_use()) && !cameranet.checkCameraVis(M)) + return 0 + else if(!cameranet.checkCameraVis(M)) + return 0 + return 1 + +/obj/machinery/camera/attack_ai(mob/living/silicon/ai/user) + if (!istype(user)) + return + if (!src.can_use()) + return + user.eyeobj.setLoc(get_turf(src)) + + +/mob/living/silicon/ai/attack_ai(mob/user) + ai_camera_list() + +/proc/camera_sort(list/L) + var/obj/machinery/camera/a + var/obj/machinery/camera/b + + for (var/i = L.len, i > 0, i--) + for (var/j = 1 to i - 1) + a = L[j] + b = L[j + 1] + if (a.c_tag_order != b.c_tag_order) + if (a.c_tag_order > b.c_tag_order) + L.Swap(j, j + 1) + else + if (sorttext(a.c_tag, b.c_tag) < 0) + L.Swap(j, j + 1) + return L diff --git a/code/game/machinery/cell_charger.dm b/code/game/machinery/cell_charger.dm new file mode 100644 index 0000000..edeeb12 --- /dev/null +++ b/code/game/machinery/cell_charger.dm @@ -0,0 +1,122 @@ +/obj/machinery/cell_charger + name = "cell charger" + desc = "It charges power cells." + icon = 'icons/obj/power.dmi' + icon_state = "ccharger0" + anchored = 1 + use_power = 1 + idle_power_usage = 5 + active_power_usage = 60 + power_channel = EQUIP + var/obj/item/weapon/stock_parts/cell/charging = null + var/chargelevel = -1 + +/obj/machinery/cell_charger/proc/updateicon() + icon_state = "ccharger[charging ? 1 : 0]" + + if(charging && !(stat & (BROKEN|NOPOWER))) + var/newlevel = round(charging.percent() * 4 / 100) + + if(chargelevel != newlevel) + chargelevel = newlevel + + cut_overlays() + add_overlay("ccharger-o[newlevel]") + + else + cut_overlays() + +/obj/machinery/cell_charger/examine(mob/user) + ..() + user << "There's [charging ? "a" : "no"] cell in the charger." + if(charging) + user << "Current charge: [round(charging.percent(), 1)]%" + +/obj/machinery/cell_charger/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/weapon/stock_parts/cell)) + if(stat & BROKEN) + user << "[src] is broken!" + return + if(!anchored) + user << "[src] isn't attached to the ground!" + return + if(charging) + user << "There is already a cell in the charger!" + return + else + var/area/a = loc.loc // Gets our locations location, like a dream within a dream + if(!isarea(a)) + return + if(a.power_equip == 0) // There's no APC in this area, don't try to cheat power! + user << "The [name] blinks red as you try to insert the cell!" + return + if(!user.drop_item()) + return + + W.loc = src + charging = W + user.visible_message("[user] inserts a cell into the charger.", "You insert a cell into the charger.") + chargelevel = -1 + updateicon() + else if(istype(W, /obj/item/weapon/wrench)) + if(charging) + user << "Remove the cell first!" + return + + anchored = !anchored + user << "You [anchored ? "attach" : "detach"] the cell charger [anchored ? "to" : "from"] the ground" + playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1) + else + return ..() + + +/obj/machinery/cell_charger/proc/removecell() + charging.updateicon() + charging = null + chargelevel = -1 + updateicon() + +/obj/machinery/cell_charger/attack_hand(mob/user) + if(!charging) + return + + user.put_in_hands(charging) + charging.add_fingerprint(user) + + user.visible_message("[user] removes the cell from the charger.", "You remove the cell from the charger.") + + removecell() + +/obj/machinery/cell_charger/attack_tk(mob/user) + if(!charging) + return + + charging.forceMove(loc) + user << "You telekinetically remove [charging] from [src]." + + removecell() + +/obj/machinery/cell_charger/attack_ai(mob/user) + return + +/obj/machinery/cell_charger/emp_act(severity) + if(stat & (BROKEN|NOPOWER)) + return + + if(charging) + charging.emp_act(severity) + + ..(severity) + + +/obj/machinery/cell_charger/process() + if(!charging || !anchored || (stat & (BROKEN|NOPOWER))) + return + + if(charging.percent() >= 100) + return + + use_power(200) //this used to use CELLRATE, but CELLRATE is fucking awful. feel free to fix this properly! + charging.give(175) //inefficiency. + + updateicon() diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm new file mode 100644 index 0000000..b2fa979 --- /dev/null +++ b/code/game/machinery/cloning.dm @@ -0,0 +1,431 @@ +//Cloning revival method. +//The pod handles the actual cloning while the computer manages the clone profiles + +//Potential replacement for genetics revives or something I dunno (?) + +#define CLONE_INITIAL_DAMAGE 190 //Clones in clonepods start with 190 cloneloss damage and 190 brainloss damage, thats just logical + +#define SPEAK(message) radio.talk_into(src, message, radio_channel, get_spans()) + +/obj/machinery/clonepod + anchored = 1 + name = "cloning pod" + desc = "An electronically-lockable pod for growing organic tissue." + density = 1 + icon = 'icons/obj/cloning.dmi' + icon_state = "pod_0" + req_access = list(access_genetics) //For premature unlocking. + verb_say = "states" + var/heal_level = 90 //The clone is released once its health reaches this level. + var/locked = FALSE + var/obj/machinery/computer/cloning/connected = null //So we remember the connected clone machine. + var/mess = FALSE //Need to clean out it if it's full of exploded clone. + var/attempting = FALSE //One clone attempt at a time thanks + var/eject_wait = FALSE //Don't eject them as soon as they are created fuckkk + var/speed_coeff + var/efficiency + + var/datum/mind/clonemind + var/grab_ghost_when = CLONER_MATURE_CLONE + + var/obj/item/device/radio/radio + var/radio_key = /obj/item/device/encryptionkey/headset_med + var/radio_channel = "Medical" + + var/obj/effect/countdown/clonepod/countdown + +/obj/machinery/clonepod/New() + ..() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/clonepod(null) + B.apply_default_parts(src) + + countdown = new(src) + + radio = new(src) + radio.keyslot = new radio_key + radio.subspace_transmission = 1 + radio.canhear_range = 0 + radio.recalculateChannels() + +/obj/machinery/clonepod/Destroy() + go_out() + qdel(radio) + radio = null + qdel(countdown) + countdown = null + . = ..() + +/obj/machinery/clonepod/RefreshParts() + speed_coeff = 0 + efficiency = 0 + for(var/obj/item/weapon/stock_parts/scanning_module/S in component_parts) + efficiency += S.rating + for(var/obj/item/weapon/stock_parts/manipulator/P in component_parts) + speed_coeff += P.rating + heal_level = (efficiency * 15) + 10 + if(heal_level > 100) + heal_level = 100 + +/obj/item/weapon/circuitboard/machine/clonepod + name = "circuit board (Clone Pod)" + build_path = /obj/machinery/clonepod + origin_tech = "programming=2;biotech=2" + req_components = list( + /obj/item/stack/cable_coil = 2, + /obj/item/weapon/stock_parts/scanning_module = 2, + /obj/item/weapon/stock_parts/manipulator = 2, + /obj/item/stack/sheet/glass = 1) + +//The return of data disks?? Just for transferring between genetics machine/cloning machine. +//TO-DO: Make the genetics machine accept them. +/obj/item/weapon/disk/data + name = "cloning data disk" + icon_state = "datadisk0" //Gosh I hope syndies don't mistake them for the nuke disk. + var/list/fields = list() + var/read_only = 0 //Well,it's still a floppy disk + +//Disk stuff. +/obj/item/weapon/disk/data/New() + ..() + icon_state = "datadisk[rand(0,6)]" + add_overlay("datadisk_gene") + +/obj/item/weapon/disk/data/attack_self(mob/user) + read_only = !read_only + user << "You flip the write-protect tab to [read_only ? "protected" : "unprotected"]." + +/obj/item/weapon/disk/data/examine(mob/user) + ..() + user << "The write-protect tab is set to [read_only ? "protected" : "unprotected"]." + + +//Clonepod + +/obj/machinery/clonepod/examine(mob/user) + ..() + if(mess) + user << "It's filled with blood and viscera. You swear you can see it moving..." + if (is_operational() && (!isnull(occupant)) && (occupant.stat != DEAD)) + user << "Current clone cycle is [round(get_completion())]% complete." + +/obj/machinery/clonepod/proc/get_completion() + . = (100 * ((occupant.health + 100) / (heal_level + 100))) + +/obj/machinery/clonepod/attack_ai(mob/user) + return examine(user) + +//Start growing a human clone in the pod! +/obj/machinery/clonepod/proc/growclone(ckey, clonename, ui, se, mindref, datum/species/mrace, list/features, factions) + if(panel_open) + return FALSE + if(mess || attempting) + return FALSE + clonemind = locate(mindref) + if(!istype(clonemind)) //not a mind + return FALSE + if( clonemind.current && clonemind.current.stat != DEAD ) //mind is associated with a non-dead body + return FALSE + if(clonemind.active) //somebody is using that mind + if( ckey(clonemind.key)!=ckey ) + return FALSE + else + // get_ghost() will fail if they're unable to reenter their body + var/mob/dead/observer/G = clonemind.get_ghost() + if(!G) + return FALSE + if(clonemind.damnation_type) //Can't clone the damned. + addtimer(0, "horrifyingsound", src) + mess = 1 + icon_state = "pod_g" + update_icon() + return FALSE + + attempting = TRUE //One at a time!! + locked = TRUE + countdown.start() + + eject_wait = TRUE + addtimer(src, "wait_complete", 30) + + var/mob/living/carbon/human/H = new /mob/living/carbon/human(src) + + H.hardset_dna(ui, se, H.real_name, null, mrace, features) + + if(efficiency > 2) + var/list/unclean_mutations = (not_good_mutations|bad_mutations) + H.dna.remove_mutation_group(unclean_mutations) + if(efficiency > 5 && prob(20)) + H.randmutvg() + if(efficiency < 3 && prob(50)) + var/mob/M = H.randmutb() + if(ismob(M)) + H = M + + H.silent = 20 //Prevents an extreme edge case where clones could speak if they said something at exactly the right moment. + occupant = H + + if(!clonename) //to prevent null names + clonename = "clone ([rand(0,999)])" + H.real_name = clonename + + icon_state = "pod_1" + //Get the clone body ready + H.setCloneLoss(CLONE_INITIAL_DAMAGE) //Yeah, clones start with very low health, not with random, because why would they start with random health + H.setBrainLoss(CLONE_INITIAL_DAMAGE) + H.Paralyse(4) + + if(grab_ghost_when == CLONER_FRESH_CLONE) + clonemind.transfer_to(H) + H.ckey = ckey + H << "Consciousness slowly creeps over you \ + as your body regenerates.
    So this is what cloning \ + feels like?
    " + else if(grab_ghost_when == CLONER_MATURE_CLONE) + clonemind.current << "Your body is \ + beginning to regenerate in a cloning pod. You will \ + become conscious when it is complete." + + if(H) + H.faction |= factions + + H.set_cloned_appearance() + + H.suiciding = FALSE + attempting = FALSE + return TRUE + +/obj/machinery/clonepod/proc/wait_complete() + eject_wait = FALSE + +//Grow clones to maturity then kick them out. FREELOADERS +/obj/machinery/clonepod/process() + + if(!is_operational()) //Autoeject if power is lost + if (occupant) + locked = FALSE + go_out() + connected_message("Clone Ejected: Loss of power.") + + else if((occupant) && (occupant.loc == src)) + if((occupant.stat == DEAD) || (occupant.suiciding) || occupant.hellbound) //Autoeject corpses and suiciding dudes. + locked = FALSE + go_out() + connected_message("Clone Rejected: Deceased.") + SPEAK("The cloning of [occupant.real_name] has been \ + aborted due to unrecoverable tissue failure.") + + else if(occupant.cloneloss > (100 - heal_level)) + occupant.Paralyse(4) + + //Slowly get that clone healed and finished. + occupant.adjustCloneLoss(-((speed_coeff/2) * config.damage_multiplier)) + + //Premature clones may have brain damage. + occupant.adjustBrainLoss(-((speed_coeff/2) * config.damage_multiplier)) + + //So clones don't die of oxyloss in a running pod. + if (occupant.reagents.get_reagent_amount("salbutamol") < 30) + occupant.reagents.add_reagent("salbutamol", 60) + // NOBREATH species will take brute damage in crit instead + // so heal that as well + if(occupant.reagents.get_reagent_amount("bicaridine") < 5) + occupant.reagents.add_reagent("bicaridine", 10) + + use_power(7500) //This might need tweaking. + + else if((occupant.cloneloss <= (100 - heal_level)) && (!eject_wait)) + connected_message("Cloning Process Complete.") + SPEAK("The cloning cycle of [occupant] is complete.") + locked = FALSE + go_out() + + else if ((!occupant) || (occupant.loc != src)) + occupant = null + if (locked) + locked = FALSE + if (!mess && !panel_open) + icon_state = "pod_0" + use_power(200) + +//Let's unlock this early I guess. Might be too early, needs tweaking. +/obj/machinery/clonepod/attackby(obj/item/weapon/W, mob/user, params) + if(!(occupant || mess || locked)) + if(default_deconstruction_screwdriver(user, "[icon_state]_maintenance", "[initial(icon_state)]",W)) + return + + if(exchange_parts(user, W)) + return + + if(default_deconstruction_crowbar(W)) + return + + if (W.GetID()) + if (!check_access(W)) + user << "Access Denied." + return + if (!locked || !occupant) + return + if (occupant.health < -20 && occupant.stat != DEAD) + user << "Access Refused. Patient status still unstable." + return + else + locked = FALSE + user << "System unlocked." + else + return ..() + +/obj/machinery/clonepod/emag_act(mob/user) + if (isnull(occupant)) + return + user << "You force an emergency ejection." + locked = FALSE + go_out() + +//Put messages in the connected computer's temp var for display. +/obj/machinery/clonepod/proc/connected_message(message) + if ((isnull(connected)) || (!istype(connected, /obj/machinery/computer/cloning))) + return FALSE + if (!message) + return FALSE + + connected.temp = message + connected.updateUsrDialog() + return TRUE + +/obj/machinery/clonepod/verb/eject() + set name = "Eject Cloner" + set category = "Object" + set src in oview(1) + + if(!usr) + return + if(usr.stat || !usr.canmove || usr.restrained()) + return + go_out() + add_fingerprint(usr) + +/obj/machinery/clonepod/proc/go_out() + if (locked) + return + countdown.stop() + + if (mess) //Clean that mess and dump those gibs! + mess = FALSE + new /obj/effect/gibspawner/generic(loc) + audible_message("You hear a splat.") + icon_state = "pod_0" + return + + if (!occupant) + return + + if(grab_ghost_when == CLONER_MATURE_CLONE) + clonemind.transfer_to(occupant) + occupant.grab_ghost() + occupant << "There is a bright flash!
    \ + You feel like a new being.
    " + occupant.flash_act() + + var/turf/T = get_turf(src) + occupant.forceMove(T) + icon_state = "pod_0" + eject_wait = FALSE //If it's still set somehow. + occupant.domutcheck(1) //Waiting until they're out before possible monkeyizing. The 1 argument forces powers to manifest. + occupant = null + +/obj/machinery/clonepod/proc/malfunction() + if(occupant) + connected_message("Critical Error!") + SPEAK("Critical error! Please contact a Thinktronic Systems \ + technician, as your warranty may be affected.") + mess = TRUE + icon_state = "pod_g" + if(occupant.mind != clonemind) + clonemind.transfer_to(occupant) + occupant.grab_ghost() // We really just want to make you suffer. + flash_color(occupant, flash_color="#960000", flash_time=100) + occupant << "Agony blazes across your \ + consciousness as your body is torn apart.
    \ + Is this what dying is like? Yes it is.
    " + playsound(src.loc, 'sound/machines/warning-buzzer.ogg', 50, 0) + occupant << sound('sound/hallucinations/veryfar_noise.ogg',0,1,50) + QDEL_IN(occupant, 40) + +/obj/machinery/clonepod/relaymove(mob/user) + if(user.stat == CONSCIOUS) + go_out() + +/obj/machinery/clonepod/emp_act(severity) + if(prob(100/(severity*efficiency))) + malfunction() + ..() + +/obj/machinery/clonepod/ex_act(severity, target) + ..() + if(!qdeleted(src)) + locked = FALSE + go_out() + +/obj/machinery/clonepod/handle_atom_del(atom/A) + if(A == occupant) + occupant = null + locked = FALSE + go_out() + +/obj/machinery/clonepod/proc/horrifyingsound() + for(var/i in 1 to 5) + playsound(loc,pick('sound/hallucinations/growl1.ogg','sound/hallucinations/growl2.ogg','sound/hallucinations/growl3.ogg'), 100, rand(0.95,1.05)) + sleep(1) + sleep(10) + playsound(loc,'sound/hallucinations/wail.ogg',100,1) + +/obj/machinery/clonepod/deconstruct(disassembled = TRUE) + if(occupant) + locked = FALSE + go_out() + ..() + + +/* + * Diskette Box + */ + +/obj/item/weapon/storage/box/disks + name = "diskette box" + icon_state = "disk_kit" + +/obj/item/weapon/storage/box/disks/New() + ..() + for(var/i in 1 to 7) + new /obj/item/weapon/disk/data(src) + +/* + * Manual -- A big ol' manual. + */ + +/obj/item/weapon/paper/Cloning + name = "paper - 'H-87 Cloning Apparatus Manual" + info = {"

    Getting Started

    + Congratulations, your station has purchased the H-87 industrial cloning device!
    + Using the H-87 is almost as simple as brain surgery! Simply insert the target humanoid into the scanning chamber and select the scan option to create a new profile!
    + That's all there is to it!
    + Notice, cloning system cannot scan inorganic life or small primates. Scan may fail if subject has suffered extreme brain damage.
    +

    Clone profiles may be viewed through the profiles menu. Scanning implants a complementary HEALTH MONITOR IMPLANT into the subject, which may be viewed from each profile. + Profile Deletion has been restricted to \[Station Head\] level access.

    +

    Cloning from a profile

    + Cloning is as simple as pressing the CLONE option at the bottom of the desired profile.
    + Per your company's EMPLOYEE PRIVACY RIGHTS agreement, the H-87 has been blocked from cloning crewmembers while they are still alive.
    +
    +

    The provided CLONEPOD SYSTEM will produce the desired clone. Standard clone maturation times (With SPEEDCLONE technology) are roughly 90 seconds. + The cloning pod may be unlocked early with any \[Medical Researcher\] ID after initial maturation is complete.


    + Please note that resulting clones may have a small DEVELOPMENTAL DEFECT as a result of genetic drift.
    +

    Profile Management

    +

    The H-87 (as well as your station's standard genetics machine) can accept STANDARD DATA DISKETTES. + These diskettes are used to transfer genetic information between machines and profiles. + A load/save dialog will become available in each profile if a disk is inserted.


    + A good diskette is a great way to counter aforementioned genetic drift!
    +
    + This technology produced under license from Thinktronic Systems, LTD."} + +#undef CLONE_INITIAL_DAMAGE +#undef SPEAK diff --git a/code/game/machinery/computer/Operating.dm b/code/game/machinery/computer/Operating.dm new file mode 100644 index 0000000..cae8c26 --- /dev/null +++ b/code/game/machinery/computer/Operating.dm @@ -0,0 +1,69 @@ +/obj/machinery/computer/operating + name = "operating computer" + desc = "Used to monitor the vitals of a patient during surgery." + icon_screen = "crew" + icon_keyboard = "med_key" + circuit = /obj/item/weapon/circuitboard/computer/operating + var/mob/living/carbon/human/patient = null + var/obj/structure/table/optable/table = null + + +/obj/machinery/computer/operating/New() + ..() + if(ticker) + find_table() + +/obj/machinery/computer/operating/initialize() + find_table() + +/obj/machinery/computer/operating/proc/find_table() + for(var/dir in cardinal) + table = locate(/obj/structure/table/optable, get_step(src, dir)) + if(table) + table.computer = src + break + + +/obj/machinery/computer/operating/attack_hand(mob/user) + if(..()) + return + interact(user) + +/obj/machinery/computer/operating/interact(mob/user) + var/dat = "" + if(table) + dat += "Patient information:
    " + if(table.check_patient()) + patient = table.patient + dat += get_patient_info() + else + patient = null + dat += "No patient detected" + else + dat += "Operating table not found." + + var/datum/browser/popup = new(user, "op", "Operating Computer", 400, 500) + popup.set_content(dat) + popup.open() + +/obj/machinery/computer/operating/proc/get_patient_info() + var/dat = {" +
    Patient:
    [patient.stat ? "Non-Responsive" : "Stable"]
    +
    Blood Type:
    [patient.dna.blood_type] + +
    +
    Health:
    [patient.health]%
    +
    \> Brute Damage:
    [patient.getBruteLoss()]%
    +
    \> Resp. Damage:
    [patient.getOxyLoss()]%
    +
    \> Toxin Content:
    [patient.getToxLoss()]%
    +
    \> Burn Severity:
    [patient.getFireLoss()]%
    + + "} + if(patient.surgeries.len) + dat += "

    Initiated Procedures
    " + for(var/datum/surgery/procedure in patient.surgeries) + dat += "[capitalize(procedure.name)]
    " + var/datum/surgery_step/surgery_step = procedure.get_surgery_step() + dat += "Next step: [capitalize(surgery_step.name)]
    " + dat += "
    " + return dat \ No newline at end of file diff --git a/code/game/machinery/computer/aifixer.dm b/code/game/machinery/computer/aifixer.dm new file mode 100644 index 0000000..107a03e --- /dev/null +++ b/code/game/machinery/computer/aifixer.dm @@ -0,0 +1,147 @@ +/obj/machinery/computer/aifixer + name = "\improper AI system integrity restorer" + desc = "Used with intelliCards containing nonfunctioning AIs to restore them to working order." + req_access = list(access_captain, access_robotics, access_heads) + var/mob/living/silicon/ai/occupier = null + var/active = 0 + circuit = /obj/item/weapon/circuitboard/computer/aifixer + icon_keyboard = "tech_key" + icon_screen = "ai-fixer" + +/obj/machinery/computer/aifixer/attackby(obj/I, mob/user, params) + if(occupier && istype(I, /obj/item/weapon/screwdriver)) + if(stat & (NOPOWER|BROKEN)) + user << "The screws on [name]'s screen won't budge." + else + user << "The screws on [name]'s screen won't budge and it emits a warning beep." + else + return ..() + +/obj/machinery/computer/aifixer/attack_hand(mob/user) + if(..()) + return + interact(user) + +/obj/machinery/computer/aifixer/interact(mob/user) + + var/dat = "" + + if (src.occupier) + var/laws + dat += "

    Stored AI: [src.occupier.name]

    " + dat += "System integrity: [(src.occupier.health+100)/2]%
    " + + if (src.occupier.laws.zeroth) + laws += "0: [src.occupier.laws.zeroth]
    " + + for (var/index = 1, index <= src.occupier.laws.ion.len, index++) + var/law = src.occupier.laws.ion[index] + if (length(law) > 0) + var/num = ionnum() + laws += "[num]: [law]
    " + + var/number = 1 + for (var/index = 1, index <= src.occupier.laws.inherent.len, index++) + var/law = src.occupier.laws.inherent[index] + if (length(law) > 0) + laws += "[number]: [law]
    " + number++ + + for (var/index = 1, index <= src.occupier.laws.supplied.len, index++) + var/law = src.occupier.laws.supplied[index] + if (length(law) > 0) + laws += "[number]: [law]
    " + number++ + + dat += "Laws:
    [laws]
    " + + if (src.occupier.stat == 2) + dat += "AI non-functional" + else + dat += "AI functional" + if (!src.active) + dat += {"

    Begin Reconstruction"} + else + dat += "

    Reconstruction in process, please wait.
    " + dat += {"
    Close"} + + //user << browse(dat, "window=computer;size=400x500") + //onclose(user, "computer") + var/datum/browser/popup = new(user, "computer", "AI System Integrity Restorer", 400, 500) + popup.set_content(dat) + popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) + popup.open() + return + +/obj/machinery/computer/aifixer/process() + if(..()) + src.updateDialog() + return + +/obj/machinery/computer/aifixer/Topic(href, href_list) + if(..()) + return + if(href_list["fix"]) + active = 1 + while (occupier.health < 100) + occupier.adjustOxyLoss(-1, 0) + occupier.adjustFireLoss(-1, 0) + occupier.adjustToxLoss(-1, 0) + occupier.adjustBruteLoss(-1, 0) + occupier.updatehealth() + if(occupier.health >= 0 && occupier.stat == DEAD) + occupier.revive() + updateUsrDialog() + update_icon() + sleep(10) + active = 0 + add_fingerprint(usr) + updateUsrDialog() + update_icon() + + +/obj/machinery/computer/aifixer/update_icon() + ..() + if(stat & (NOPOWER|BROKEN)) + return + else + if(active) + add_overlay("ai-fixer-on") + if (occupier) + switch (occupier.stat) + if (0) + add_overlay("ai-fixer-full") + if (2) + add_overlay("ai-fixer-404") + else + add_overlay("ai-fixer-empty") + +/obj/machinery/computer/aifixer/transfer_ai(interaction, mob/user, mob/living/silicon/ai/AI, obj/item/device/aicard/card) + if(!..()) + return + //Downloading AI from card to terminal. + if(interaction == AI_TRANS_FROM_CARD) + if(stat & (NOPOWER|BROKEN)) + user << "[src] is offline and cannot take an AI at this time!" + return + AI.forceMove(src) + occupier = AI + AI.control_disabled = 1 + AI.radio_enabled = 0 + AI << "You have been uploaded to a stationary terminal. Sadly, there is no remote access from here." + user << "Transfer successful: [AI.name] ([rand(1000,9999)].exe) installed and executed successfully. Local copy has been removed." + card.AI = null + update_icon() + + else //Uploading AI from terminal to card + if(occupier && !active) + occupier << "You have been downloaded to a mobile storage device. Still no remote access." + user << "Transfer successful: [occupier.name] ([rand(1000,9999)].exe) removed from host terminal and stored within local memory." + occupier.loc = card + card.AI = occupier + occupier = null + update_icon() + else if (active) + user << "ERROR: Reconstruction in progress." + else if (!occupier) + user << "ERROR: Unable to locate artificial intelligence." \ No newline at end of file diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm new file mode 100644 index 0000000..d23a522 --- /dev/null +++ b/code/game/machinery/computer/arcade.dm @@ -0,0 +1,1116 @@ +/obj/machinery/computer/arcade/ + name = "random arcade" + desc = "random arcade machine" + icon_state = "arcade" + icon_keyboard = null + icon_screen = "invaders" + clockwork = TRUE //it'd look weird + var/list/prizes = list( + /obj/item/weapon/storage/box/snappops = 2, + /obj/item/toy/talking/AI = 2, + /obj/item/toy/talking/codex_gigas = 2, + /obj/item/clothing/under/syndicate/tacticool = 2, + /obj/item/toy/sword = 2, + /obj/item/toy/gun = 2, + /obj/item/weapon/gun/projectile/shotgun/toy/crossbow = 2, + /obj/item/weapon/storage/box/fakesyndiesuit = 2, + /obj/item/weapon/storage/crayons = 2, + /obj/item/toy/spinningtoy = 2, + /obj/item/toy/prize/ripley = 1, + /obj/item/toy/prize/fireripley = 1, + /obj/item/toy/prize/deathripley = 1, + /obj/item/toy/prize/gygax = 1, + /obj/item/toy/prize/durand = 1, + /obj/item/toy/prize/honk = 1, + /obj/item/toy/prize/marauder = 1, + /obj/item/toy/prize/seraph = 1, + /obj/item/toy/prize/mauler = 1, + /obj/item/toy/prize/odysseus = 1, + /obj/item/toy/prize/phazon = 1, + /obj/item/toy/prize/reticence = 1, + /obj/item/toy/cards/deck = 2, + /obj/item/toy/nuke = 2, + /obj/item/toy/minimeteor = 2, + /obj/item/toy/redbutton = 2, + /obj/item/toy/talking/owl = 2, + /obj/item/toy/talking/griffin = 2, + /obj/item/toy/talking/skeleton = 2, + /obj/item/weapon/coin/antagtoken = 2, + /obj/item/stack/tile/fakespace/loaded = 2, + /obj/item/toy/toy_xeno = 2, + /obj/item/weapon/storage/box/actionfigure = 1, + /obj/item/weapon/restraints/handcuffs/fake = 2) + +/obj/machinery/computer/arcade/New() + ..() + // If it's a generic arcade machine, pick a random arcade + // circuit board for it and make the new machine + if(!circuit) + var/choice = pick(subtypesof(/obj/item/weapon/circuitboard/computer/arcade)) + var/obj/item/weapon/circuitboard/CB = new choice() + new CB.build_path(loc, CB) + qdel(src) + +#define PULSE_MEDAL "Jackpot" + +/obj/machinery/computer/arcade/proc/prizevend() + if(prob(0.0001)) //1 in a million + new /obj/item/weapon/gun/energy/pulse/prize(src) + UnlockMedal(PULSE_MEDAL,usr.client) + + if(!contents.len) + var/prizeselect = pickweight(prizes) + new prizeselect(src) + + var/atom/movable/prize = pick(contents) + visible_message( + "[src] dispenses a [prize]!", + "You hear a chime and a clunk.") + + prize.loc = src.loc +#undef PULSE_MEDAL +/obj/machinery/computer/arcade/emp_act(severity) + ..(severity) + + if(stat & (NOPOWER|BROKEN)) + return + + var/empprize = null + var/num_of_prizes = 0 + switch(severity) + if(1) + num_of_prizes = rand(1,4) + if(2) + num_of_prizes = rand(0,2) + for(var/i = num_of_prizes; i > 0; i--) + empprize = pickweight(prizes) + new empprize(src.loc) + explosion(src.loc, -1, 0, 1+num_of_prizes, flame_range = 1+num_of_prizes) + + +// ** BATTLE ** // + + +/obj/machinery/computer/arcade/battle + name = "arcade machine" + desc = "Does not support Pinball." + icon_state = "arcade" + circuit = /obj/item/weapon/circuitboard/computer/arcade/battle + var/enemy_name = "Space Villian" + var/temp = "Winners don't use space drugs" //Temporary message, for attack messages, etc + var/player_hp = 30 //Player health/attack points + var/player_mp = 10 + var/enemy_hp = 45 //Enemy health/attack points + var/enemy_mp = 20 + var/gameover = 0 + var/blocked = 0 //Player cannot attack/heal while set + var/turtle = 0 + +/obj/machinery/computer/arcade/battle/New() + ..() + var/name_action + var/name_part1 + var/name_part2 + + name_action = pick("Defeat ", "Annihilate ", "Save ", "Strike ", "Stop ", "Destroy ", "Robust ", "Romance ", "Pwn ", "Own ", "Ban ") + + name_part1 = pick("the Automatic ", "Farmer ", "Lord ", "Professor ", "the Cuban ", "the Evil ", "the Dread King ", "the Space ", "Lord ", "the Great ", "Duke ", "General ") + name_part2 = pick("Melonoid", "Murdertron", "Sorcerer", "Ruin", "Jeff", "Ectoplasm", "Crushulon", "Uhangoid", "Vhakoid", "Peteoid", "slime", "Griefer", "ERPer", "Lizard Man", "Unicorn", "Bloopers") + + src.enemy_name = replacetext((name_part1 + name_part2), "the ", "") + src.name = (name_action + name_part1 + name_part2) + +/obj/machinery/computer/arcade/battle/attack_hand(mob/user) + if(..()) + return + user.set_machine(src) + var/dat = "Close" + dat += "

    [src.enemy_name]

    " + + dat += "

    [src.temp]

    " + dat += "
    Health: [src.player_hp] | Magic: [src.player_mp] | Enemy Health: [src.enemy_hp]
    " + + if (src.gameover) + dat += "
    New Game" + else + dat += "
    Attack | " + dat += "Heal | " + dat += "Recharge Power" + + dat += "
    " + + //user << browse(dat, "window=arcade") + //onclose(user, "arcade") + var/datum/browser/popup = new(user, "arcade", "Space Villian 2000") + popup.set_content(dat) + popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) + popup.open() + return + +/obj/machinery/computer/arcade/battle/Topic(href, href_list) + if(..()) + return + + if (!src.blocked && !src.gameover) + if (href_list["attack"]) + src.blocked = 1 + var/attackamt = rand(2,6) + src.temp = "You attack for [attackamt] damage!" + playsound(src.loc, 'sound/arcade/Hit.ogg', 50, 1, extrarange = -3, falloff = 10) + src.updateUsrDialog() + if(turtle > 0) + turtle-- + + sleep(10) + src.enemy_hp -= attackamt + src.arcade_action() + + else if (href_list["heal"]) + src.blocked = 1 + var/pointamt = rand(1,3) + var/healamt = rand(6,8) + src.temp = "You use [pointamt] magic to heal for [healamt] damage!" + playsound(src.loc, 'sound/arcade/Heal.ogg', 50, 1, extrarange = -3, falloff = 10) + src.updateUsrDialog() + turtle++ + + sleep(10) + src.player_mp -= pointamt + src.player_hp += healamt + src.blocked = 1 + src.updateUsrDialog() + src.arcade_action() + + else if (href_list["charge"]) + src.blocked = 1 + var/chargeamt = rand(4,7) + src.temp = "You regain [chargeamt] points" + playsound(src.loc, 'sound/arcade/Mana.ogg', 50, 1, extrarange = -3, falloff = 10) + src.player_mp += chargeamt + if(turtle > 0) + turtle-- + + src.updateUsrDialog() + sleep(10) + src.arcade_action() + + if (href_list["close"]) + usr.unset_machine() + usr << browse(null, "window=arcade") + + else if (href_list["newgame"]) //Reset everything + temp = "New Round" + player_hp = 30 + player_mp = 10 + enemy_hp = 45 + enemy_mp = 20 + gameover = 0 + turtle = 0 + + if(emagged) + src.New() + emagged = 0 + + src.add_fingerprint(usr) + src.updateUsrDialog() + return + +/obj/machinery/computer/arcade/battle/proc/arcade_action() + if ((src.enemy_mp <= 0) || (src.enemy_hp <= 0)) + if(!gameover) + src.gameover = 1 + src.temp = "[src.enemy_name] has fallen! Rejoice!" + playsound(src.loc, 'sound/arcade/Win.ogg', 50, 1, extrarange = -3, falloff = 10) + + if(emagged) + feedback_inc("arcade_win_emagged") + new /obj/effect/spawner/newbomb/timer/syndicate(src.loc) + new /obj/item/clothing/head/collectable/petehat(src.loc) + message_admins("[key_name_admin(usr)] has outbombed Cuban Pete and been awarded a bomb.") + log_game("[key_name(usr)] has outbombed Cuban Pete and been awarded a bomb.") + src.New() + emagged = 0 + else + feedback_inc("arcade_win_normal") + prizevend() + + else if (emagged && (turtle >= 4)) + var/boomamt = rand(5,10) + src.temp = "[src.enemy_name] throws a bomb, exploding you for [boomamt] damage!" + playsound(src.loc, 'sound/arcade/Boom.ogg', 50, 1, extrarange = -3, falloff = 10) + src.player_hp -= boomamt + + else if ((src.enemy_mp <= 5) && (prob(70))) + var/stealamt = rand(2,3) + src.temp = "[src.enemy_name] steals [stealamt] of your power!" + playsound(src.loc, 'sound/arcade/Steal.ogg', 50, 1, extrarange = -3, falloff = 10) + src.player_mp -= stealamt + src.updateUsrDialog() + + if (src.player_mp <= 0) + src.gameover = 1 + sleep(10) + src.temp = "You have been drained! GAME OVER" + playsound(src.loc, 'sound/arcade/Lose.ogg', 50, 1, extrarange = -3, falloff = 10) + if(emagged) + feedback_inc("arcade_loss_mana_emagged") + usr.gib() + else + feedback_inc("arcade_loss_mana_normal") + + else if ((src.enemy_hp <= 10) && (src.enemy_mp > 4)) + src.temp = "[src.enemy_name] heals for 4 health!" + playsound(src.loc, 'sound/arcade/Heal.ogg', 50, 1, extrarange = -3, falloff = 10) + src.enemy_hp += 4 + src.enemy_mp -= 4 + + else + var/attackamt = rand(3,6) + src.temp = "[src.enemy_name] attacks for [attackamt] damage!" + playsound(src.loc, 'sound/arcade/Hit.ogg', 50, 1, extrarange = -3, falloff = 10) + src.player_hp -= attackamt + + if ((src.player_mp <= 0) || (src.player_hp <= 0)) + src.gameover = 1 + src.temp = "You have been crushed! GAME OVER" + playsound(src.loc, 'sound/arcade/Lose.ogg', 50, 1, extrarange = -3, falloff = 10) + if(emagged) + feedback_inc("arcade_loss_hp_emagged") + usr.gib() + else + feedback_inc("arcade_loss_hp_normal") + + src.blocked = 0 + return + + +/obj/machinery/computer/arcade/battle/emag_act(mob/user) + if(!emagged) + temp = "If you die in the game, you die for real!" + player_hp = 30 + player_mp = 10 + enemy_hp = 45 + enemy_mp = 20 + gameover = 0 + blocked = 0 + + emagged = 1 + + enemy_name = "Cuban Pete" + name = "Outbomb Cuban Pete" + + + src.updateUsrDialog() + + + +// *** THE ORION TRAIL ** // + +#define ORION_TRAIL_WINTURN 9 + +//Orion Trail Events +#define ORION_TRAIL_RAIDERS "Raiders" +#define ORION_TRAIL_FLUX "Interstellar Flux" +#define ORION_TRAIL_ILLNESS "Illness" +#define ORION_TRAIL_BREAKDOWN "Breakdown" +#define ORION_TRAIL_LING "Changelings?" +#define ORION_TRAIL_LING_ATTACK "Changeling Ambush" +#define ORION_TRAIL_MALFUNCTION "Malfunction" +#define ORION_TRAIL_COLLISION "Collision" +#define ORION_TRAIL_SPACEPORT "Spaceport" +#define ORION_TRAIL_BLACKHOLE "BlackHole" + +#define ORION_STATUS_START 1 +#define ORION_STATUS_NORMAL 2 +#define ORION_STATUS_GAMEOVER 3 +#define ORION_STATUS_MARKET 4 + +/obj/machinery/computer/arcade/orion_trail + name = "The Orion Trail" + desc = "Learn how our ancestors got to Orion, and have fun in the process!" + icon_state = "arcade" + circuit = /obj/item/weapon/circuitboard/computer/arcade/orion_trail + var/busy = 0 //prevent clickspam that allowed people to ~speedrun~ the game. + var/engine = 0 + var/hull = 0 + var/electronics = 0 + var/food = 80 + var/fuel = 60 + var/turns = 4 + var/alive = 4 + var/eventdat = null + var/event = null + var/list/settlers = list("Harry","Larry","Bob") + var/list/events = list(ORION_TRAIL_RAIDERS = 3, + ORION_TRAIL_FLUX = 1, + ORION_TRAIL_ILLNESS = 3, + ORION_TRAIL_BREAKDOWN = 2, + ORION_TRAIL_LING = 3, + ORION_TRAIL_MALFUNCTION = 2, + ORION_TRAIL_COLLISION = 1, + ORION_TRAIL_SPACEPORT = 2 + ) + var/list/stops = list() + var/list/stopblurbs = list() + var/lings_aboard = 0 + var/spaceport_raided = 0 + var/spaceport_freebie = 0 + var/last_spaceport_action = "" + var/gameStatus = ORION_STATUS_START + var/canContinueEvent = 0 + +/obj/machinery/computer/arcade/orion_trail/New() + ..() + // Sets up the main trail + stops = list("Pluto","Asteroid Belt","Proxima Centauri","Dead Space","Rigel Prime","Tau Ceti Beta","Black Hole","Space Outpost Beta-9","Orion Prime") + stopblurbs = list( + "Pluto, long since occupied with long-range sensors and scanners, stands ready to, and indeed continues to probe the far reaches of the galaxy.", + "At the edge of the Sol system lies a treacherous asteroid belt. Many have been crushed by stray asteroids and misguided judgement.", + "The nearest star system to Sol, in ages past it stood as a reminder of the boundaries of sub-light travel, now a low-population sanctuary for adventurers and traders.", + "This region of space is particularly devoid of matter. Such low-density pockets are known to exist, but the vastness of it is astounding.", + "Rigel Prime, the center of the Rigel system, burns hot, basking its planetary bodies in warmth and radiation.", + "Tau Ceti Beta has recently become a waypoint for colonists headed towards Orion. There are many ships and makeshift stations in the vicinity.", + "Sensors indicate that a black hole's gravitational field is affecting the region of space we were headed through. We could stay of course, but risk of being overcome by its gravity, or we could change course to go around, which will take longer.", + "You have come into range of the first man-made structure in this region of space. It has been constructed not by travellers from Sol, but by colonists from Orion. It stands as a monument to the colonists' success.", + "You have made it to Orion! Congratulations! Your crew is one of the few to start a new foothold for mankind!" + ) + +/obj/machinery/computer/arcade/orion_trail/proc/newgame() + // Set names of settlers in crew + settlers = list() + for(var/i = 1; i <= 3; i++) + add_crewmember() + add_crewmember("[usr]") + // Re-set items to defaults + engine = 1 + hull = 1 + electronics = 1 + food = 80 + fuel = 60 + alive = 4 + turns = 1 + event = null + gameStatus = ORION_STATUS_NORMAL + lings_aboard = 0 + + //spaceport junk + spaceport_raided = 0 + spaceport_freebie = 0 + last_spaceport_action = "" + +/obj/machinery/computer/arcade/orion_trail/attack_hand(mob/user) + if(..()) + return + if(fuel <= 0 || food <=0 || settlers.len == 0) + gameStatus = ORION_STATUS_GAMEOVER + event = null + user.set_machine(src) + var/dat = "" + if(gameStatus == ORION_STATUS_GAMEOVER) + dat = "

    Game Over

    " + dat += "Like many before you, your crew never made it to Orion, lost to space...
    Forever." + if(settlers.len == 0) + dat += "
    Your entire crew died, your ship joins the fleet of ghost-ships littering the galaxy." + else + if(food <= 0) + dat += "
    You ran out of food and starved." + if(emagged) + user.nutrition = 0 //yeah you pretty hongry + user << "Your body instantly contracts to that of one who has not eaten in months. Agonizing cramps seize you as you fall to the floor." + if(fuel <= 0) + dat += "
    You ran out of fuel, and drift, slowly, into a star." + if(emagged) + var/mob/living/M = user + M.adjust_fire_stacks(5) + M.IgniteMob() //flew into a star, so you're on fire + user << "You feel an immense wave of heat emanate from the arcade machine. Your skin bursts into flames." + dat += "

    OK...

    " + + if(emagged) + user << "You're never going to make it to Orion..." + user.death() + emagged = 0 //removes the emagged status after you lose + gameStatus = ORION_STATUS_START + name = "The Orion Trail" + desc = "Learn how our ancestors got to Orion, and have fun in the process!" + + else if(event) + dat = eventdat + else if(gameStatus == ORION_STATUS_NORMAL) + var/title = stops[turns] + var/subtext = stopblurbs[turns] + dat = "

    [title]

    " + dat += "[subtext]" + dat += "

    Crew:

    " + dat += english_list(settlers) + dat += "
    Food: [food] | Fuel: [fuel]" + dat += "
    Engine Parts: [engine] | Hull Panels: [hull] | Electronics: [electronics]" + if(turns == 7) + dat += "

    Go Around Continue

    " + else + dat += "

    Continue

    " + dat += "

    Kill a crewmember

    " + dat += "

    Close

    " + else + dat = "

    The Orion Trail

    " + dat += "

    Experience the journey of your ancestors!



    " + dat += "
    New Game
    " + dat += "

    Close

    " + var/datum/browser/popup = new(user, "arcade", "The Orion Trail",400,700) + popup.set_content(dat) + popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) + popup.open() + return + +/obj/machinery/computer/arcade/orion_trail/Topic(href, href_list) + if(..()) + return + if(href_list["close"]) + usr.unset_machine() + usr << browse(null, "window=arcade") + + if(busy) + return + busy = 1 + + if (href_list["continue"]) //Continue your travels + if(gameStatus == ORION_STATUS_NORMAL && !event && turns != 7) + if(turns >= ORION_TRAIL_WINTURN) + win() + else + food -= (alive+lings_aboard)*2 + fuel -= 5 + if(turns == 2 && prob(30)) + event = ORION_TRAIL_COLLISION + event() + else if(prob(75)) + event = pickweight(events) + if(lings_aboard) + if(event == ORION_TRAIL_LING || prob(55)) + event = ORION_TRAIL_LING_ATTACK + event() + turns += 1 + if(emagged) + var/mob/living/carbon/M = usr //for some vars + switch(event) + if(ORION_TRAIL_RAIDERS) + if(prob(50)) + usr << "You hear battle shouts. The tramping of boots on cold metal. Screams of agony. The rush of venting air. Are you going insane?" + M.hallucination += 30 + else + usr << "Something strikes you from behind! It hurts like hell and feel like a blunt weapon, but nothing is there..." + M.take_bodypart_damage(30) + playsound(loc, 'sound/weapons/genhit2.ogg', 100, 1) + if(ORION_TRAIL_ILLNESS) + var/severity = rand(1,3) //pray to RNGesus. PRAY, PIGS + if(severity == 1) + M << "You suddenly feel slightly nauseous." //got off lucky + if(severity == 2) + usr << "You suddenly feel extremely nauseous and hunch over until it passes." + M.Stun(3) + if(severity >= 3) //you didn't pray hard enough + M << "An overpowering wave of nausea consumes over you. You hunch over, your stomach's contents preparing for a spectacular exit." + M.Stun(5) + sleep(30) + M.vomit(50) + if(ORION_TRAIL_FLUX) + if(prob(75)) + M.Weaken(3) + say("A sudden gust of powerful wind slams [M] into the floor!") + M.take_bodypart_damage(25) + playsound(src.loc, 'sound/weapons/Genhit.ogg', 100, 1) + else + M << "A violent gale blows past you, and you barely manage to stay standing!" + if(ORION_TRAIL_COLLISION) //by far the most damaging event + if(prob(90)) + playsound(src.loc, 'sound/effects/bang.ogg', 100, 1) + var/turf/open/floor/F + for(F in orange(1, src)) + F.ChangeTurf(F.baseturf) + say("Something slams into the floor around [src], exposing it to space!") + if(hull) + sleep(10) + say("A new floor suddenly appears around [src]. What the hell?") + playsound(src.loc, 'sound/weapons/Genhit.ogg', 100, 1) + var/turf/open/space/T + for(T in orange(1, src)) + T.ChangeTurf(/turf/open/floor/plating/) + else + say("Something slams into the floor around [src] - luckily, it didn't get through!") + playsound(src.loc, 'sound/effects/bang.ogg', 50, 1) + if(ORION_TRAIL_MALFUNCTION) + playsound(src.loc, 'sound/effects/EMPulse.ogg', 50, 1) + src.visible_message("[src] malfunctions, randomizing in-game stats!") + var/oldfood = food + var/oldfuel = fuel + food = rand(10,80) / rand(1,2) + fuel = rand(10,60) / rand(1,2) + if(electronics) + sleep(10) + if(oldfuel > fuel && oldfood > food) + src.audible_message("[src] lets out a somehow reassuring chime.") + else if(oldfuel < fuel || oldfood < food) + src.audible_message("[src] lets out a somehow ominous chime.") + food = oldfood + fuel = oldfuel + playsound(src.loc, 'sound/machines/chime.ogg', 50, 1) + + else if(href_list["newgame"]) //Reset everything + if(gameStatus == ORION_STATUS_START) + newgame() + else if(href_list["menu"]) //back to the main menu + if(gameStatus == ORION_STATUS_GAMEOVER) + gameStatus = ORION_STATUS_START + event = null + food = 80 + fuel = 60 + settlers = list("Harry","Larry","Bob") + else if(href_list["slow"]) //slow down + if(event == ORION_TRAIL_FLUX) + food -= (alive+lings_aboard)*2 + fuel -= 5 + event = null + else if(href_list["pastblack"]) //slow down + if(turns == 7) + food -= ((alive+lings_aboard)*2)*3 + fuel -= 15 + turns += 1 + event = null + else if(href_list["useengine"]) //use parts + if(event == ORION_TRAIL_BREAKDOWN) + engine = max(0, --engine) + event = null + else if(href_list["useelec"]) //use parts + if(event == ORION_TRAIL_MALFUNCTION) + electronics = max(0, --electronics) + event = null + else if(href_list["usehull"]) //use parts + if(event == ORION_TRAIL_COLLISION) + hull = max(0, --hull) + event = null + else if(href_list["wait"]) //wait 3 days + if(event == ORION_TRAIL_BREAKDOWN || event == ORION_TRAIL_MALFUNCTION || event == ORION_TRAIL_COLLISION) + food -= ((alive+lings_aboard)*2)*3 + event = null + else if(href_list["keepspeed"]) //keep speed + if(event == ORION_TRAIL_FLUX) + if(prob(75)) + event = "Breakdown" + event() + else + event = null + else if(href_list["blackhole"]) //keep speed past a black hole + if(turns == 7) + if(prob(75)) + event = ORION_TRAIL_BLACKHOLE + event() + if(emagged) //has to be here because otherwise it doesn't work + playsound(src.loc, 'sound/effects/supermatter.ogg', 100, 1) + say("A miniature black hole suddenly appears in front of [src], devouring [usr] alive!") + usr.Stun(10) //you can't run :^) + var/S = new /obj/singularity/academy(usr.loc) + emagged = 0 //immediately removes emagged status so people can't kill themselves by sprinting up and interacting + sleep(50) + say("[S] winks out, just as suddenly as it appeared.") + qdel(S) + else + event = null + turns += 1 + else if(href_list["holedeath"]) + if(event == ORION_TRAIL_BLACKHOLE) + gameStatus = ORION_STATUS_GAMEOVER + event = null + else if(href_list["eventclose"]) //end an event + if(canContinueEvent) + event = null + + else if(href_list["killcrew"]) //shoot a crewmember + if(gameStatus == ORION_STATUS_NORMAL || event == ORION_TRAIL_LING) + var/sheriff = remove_crewmember() //I shot the sheriff + playsound(loc,'sound/weapons/Gunshot.ogg', 100, 1) + + if(settlers.len == 0 || alive == 0) + say("The last crewmember [sheriff], shot themselves, GAME OVER!") + if(emagged) + usr.death(0) + emagged = 0 + gameStatus = ORION_STATUS_GAMEOVER + event = null + else if(emagged) + if(usr.name == sheriff) + say("The crew of the ship chose to kill [usr.name]!") + usr.death(0) + + if(event == ORION_TRAIL_LING) //only ends the ORION_TRAIL_LING event, since you can do this action in multiple places + event = null + + //Spaceport specific interactions + //they get a header because most of them don't reset event (because it's a shop, you leave when you want to) + //they also call event() again, to regen the eventdata, which is kind of odd but necessary + else if(href_list["buycrew"]) //buy a crewmember + if(gameStatus == ORION_STATUS_MARKET) + if(!spaceport_raided && food >= 10 && fuel >= 10) + var/bought = add_crewmember() + last_spaceport_action = "You hired [bought] as a new crewmember." + fuel -= 10 + food -= 10 + event() + + else if(href_list["sellcrew"]) //sell a crewmember + if(gameStatus == ORION_STATUS_MARKET) + if(!spaceport_raided && settlers.len > 1) + var/sold = remove_crewmember() + last_spaceport_action = "You sold your crewmember, [sold]!" + fuel += 7 + food += 7 + event() + + else if(href_list["leave_spaceport"]) + if(gameStatus == ORION_STATUS_MARKET) + event = null + gameStatus = ORION_STATUS_NORMAL + spaceport_raided = 0 + spaceport_freebie = 0 + last_spaceport_action = "" + + else if(href_list["raid_spaceport"]) + if(gameStatus == ORION_STATUS_MARKET) + if(!spaceport_raided) + var/success = min(15 * alive,100) //default crew (4) have a 60% chance + spaceport_raided = 1 + + var/FU = 0 + var/FO = 0 + if(prob(success)) + FU = rand(5,15) + FO = rand(5,15) + last_spaceport_action = "You successfully raided the spaceport! you gained [FU] Fuel and [FO] Food! (+[FU]FU,+[FO]FO)" + else + FU = rand(-5,-15) + FO = rand(-5,-15) + last_spaceport_action = "You failed to raid the spaceport! you lost [FU*-1] Fuel and [FO*-1] Food in your scramble to escape! ([FU]FU,[FO]FO)" + + //your chance of lose a crewmember is 1/2 your chance of success + //this makes higher % failures hurt more, don't get cocky space cowboy! + if(prob(success*5)) + var/lost_crew = remove_crewmember() + last_spaceport_action = "You failed to raid the spaceport! you lost [FU*-1] Fuel and [FO*-1] Food, AND [lost_crew] in your scramble to escape! ([FU]FI,[FO]FO,-Crew)" + if(emagged) + say("WEEWOO WEEWOO, Spaceport Security en route!") + for(var/i, i<=3, i++) + var/mob/living/simple_animal/hostile/syndicate/ranged/orion/O = new/mob/living/simple_animal/hostile/syndicate/ranged/orion(get_turf(src)) + O.target = usr + + + fuel += FU + food += FO + event() + + else if(href_list["buyparts"]) + if(gameStatus == ORION_STATUS_MARKET) + if(!spaceport_raided && fuel > 5) + switch(text2num(href_list["buyparts"])) + if(1) //Engine Parts + engine++ + last_spaceport_action = "Bought Engine Parts" + if(2) //Hull Plates + hull++ + last_spaceport_action = "Bought Hull Plates" + if(3) //Spare Electronics + electronics++ + last_spaceport_action = "Bought Spare Electronics" + fuel -= 5 //they all cost 5 + event() + + else if(href_list["trade"]) + if(gameStatus == ORION_STATUS_MARKET) + if(!spaceport_raided) + switch(text2num(href_list["trade"])) + if(1) //Fuel + if(fuel > 5) + fuel -= 5 + food += 5 + last_spaceport_action = "Traded Fuel for Food" + event() + if(2) //Food + if(food > 5) + fuel += 5 + food -= 5 + last_spaceport_action = "Traded Food for Fuel" + event() + + src.add_fingerprint(usr) + src.updateUsrDialog() + busy = 0 + return + + +/obj/machinery/computer/arcade/orion_trail/proc/event() + eventdat = "

    [event]

    " + canContinueEvent = 0 + switch(event) + if(ORION_TRAIL_RAIDERS) + eventdat += "Raiders have come aboard your ship!" + if(prob(50)) + var/sfood = rand(1,10) + var/sfuel = rand(1,10) + food -= sfood + fuel -= sfuel + eventdat += "
    They have stolen [sfood] Food and [sfuel] Fuel." + else if(prob(10)) + var/deadname = remove_crewmember() + eventdat += "
    [deadname] tried to fight back but was killed." + else + eventdat += "
    Fortunately you fended them off without any trouble." + eventdat += "

    Continue

    " + eventdat += "

    Close

    " + canContinueEvent = 1 + + if(ORION_TRAIL_FLUX) + eventdat += "This region of space is highly turbulent.
    If we go slowly we may avoid more damage, but if we keep our speed we won't waste supplies." + eventdat += "
    What will you do?" + eventdat += "

    Slow Down Continue

    " + eventdat += "

    Close

    " + + if(ORION_TRAIL_ILLNESS) + eventdat += "A deadly illness has been contracted!" + var/deadname = remove_crewmember() + eventdat += "
    [deadname] was killed by the disease." + eventdat += "

    Continue

    " + eventdat += "

    Close

    " + canContinueEvent = 1 + + if(ORION_TRAIL_BREAKDOWN) + eventdat += "Oh no! The engine has broken down!" + eventdat += "
    You can repair it with an engine part, or you can make repairs for 3 days." + if(engine >= 1) + eventdat += "

    Use PartWait

    " + else + eventdat += "

    Wait

    " + eventdat += "

    Close

    " + + if(ORION_TRAIL_MALFUNCTION) + eventdat += "The ship's systems are malfunctioning!" + eventdat += "
    You can replace the broken electronics with spares, or you can spend 3 days troubleshooting the AI." + if(electronics >= 1) + eventdat += "

    Use PartWait

    " + else + eventdat += "

    Wait

    " + eventdat += "

    Close

    " + + if(ORION_TRAIL_COLLISION) + eventdat += "Something hit us! Looks like there's some hull damage." + if(prob(25)) + var/sfood = rand(5,15) + var/sfuel = rand(5,15) + food -= sfood + fuel -= sfuel + eventdat += "
    [sfood] Food and [sfuel] Fuel was vented out into space." + if(prob(10)) + var/deadname = remove_crewmember() + eventdat += "
    [deadname] was killed by rapid depressurization." + eventdat += "
    You can repair the damage with hull plates, or you can spend the next 3 days welding scrap together." + if(hull >= 1) + eventdat += "

    Use PartWait

    " + else + eventdat += "

    Wait

    " + eventdat += "

    Close

    " + + if(ORION_TRAIL_BLACKHOLE) + eventdat += "You were swept away into the black hole." + eventdat += "

    Oh...

    " + eventdat += "

    Close

    " + settlers = list() + + if(ORION_TRAIL_LING) + eventdat += "Strange reports warn of changelings infiltrating crews on trips to Orion..." + if(settlers.len <= 2) + eventdat += "
    Your crew's chance of reaching Orion is so slim the changelings likely avoided your ship..." + eventdat += "

    Continue

    " + eventdat += "

    Close

    " + if(prob(10)) // "likely", I didn't say it was guaranteed! + lings_aboard = min(++lings_aboard,2) + else + if(lings_aboard) //less likely to stack lings + if(prob(20)) + lings_aboard = min(++lings_aboard,2) + else if(prob(70)) + lings_aboard = min(++lings_aboard,2) + + eventdat += "

    Kill a crewmember

    " + eventdat += "

    Risk it

    " + eventdat += "

    Close

    " + canContinueEvent = 1 + + if(ORION_TRAIL_LING_ATTACK) + if(lings_aboard <= 0) //shouldn't trigger, but hey. + eventdat += "Haha, fooled you, there are no changelings on board!" + eventdat += "
    (You should report this to a coder :S)" + else + var/ling1 = remove_crewmember() + var/ling2 = "" + if(lings_aboard >= 2) + ling2 = remove_crewmember() + + eventdat += "Oh no, some of your crew are Changelings!" + if(ling2) + eventdat += "
    [ling1] and [ling2]'s arms twist and contort into grotesque blades!" + else + eventdat += "
    [ling1]'s arm twists and contorts into a grotesque blade!" + + var/chance2attack = alive*20 + if(prob(chance2attack)) + var/chancetokill = 30*lings_aboard-(5*alive) //eg: 30*2-(10) = 50%, 2 lings, 2 crew is 50% chance + if(prob(chancetokill)) + var/deadguy = remove_crewmember() + eventdat += "
    The Changeling[ling2 ? "s":""] run[ling2 ? "":"s"] up to [deadguy] and capitulates them!" + else + eventdat += "
    You valiantly fight off the Changeling[ling2 ? "s":""]!" + eventdat += "
    You cut the Changeling[ling2 ? "s":""] up into meat... Eww" + if(ling2) + food += 30 + lings_aboard = max(0,lings_aboard-2) + else + food += 15 + lings_aboard = max(0,--lings_aboard) + else + eventdat += "
    The Changeling[ling2 ? "s":""] run[ling2 ? "":"s"] away, What wimps!" + if(ling2) + lings_aboard = max(0,lings_aboard-2) + else + lings_aboard = max(0,--lings_aboard) + + eventdat += "

    Continue

    " + eventdat += "

    Close

    " + canContinueEvent = 1 + + + if(ORION_TRAIL_SPACEPORT) + gameStatus = ORION_STATUS_MARKET + if(spaceport_raided) + eventdat += "The Spaceport is on high alert! they wont let you dock since you tried to attack them!" + if(last_spaceport_action) + eventdat += "
    Last Spaceport Action: [last_spaceport_action]" + eventdat += "

    Depart Spaceport

    " + eventdat += "

    Close

    " + else + eventdat += "You pull the ship up to dock at a nearby Spaceport, lucky find!" + eventdat += "
    This Spaceport is home to travellers who failed to reach Orion, but managed to find a different home..." + eventdat += "
    Trading terms: FU = Fuel, FO = Food" + if(last_spaceport_action) + eventdat += "
    Last Spaceport Action: [last_spaceport_action]" + eventdat += "

    Crew:

    " + eventdat += english_list(settlers) + eventdat += "
    Food: [food] | Fuel: [fuel]" + eventdat += "
    Engine Parts: [engine] | Hull Panels: [hull] | Electronics: [electronics]" + + + //If your crew is pathetic you can get freebies (provided you haven't already gotten one from this port) + if(!spaceport_freebie && (fuel < 20 || food < 20)) + spaceport_freebie++ + var/FU = 10 + var/FO = 10 + var/freecrew = 0 + if(prob(30)) + FU = 25 + FO = 25 + + if(prob(10)) + add_crewmember() + freecrew++ + + eventdat += "
    The traders of the spaceport take pitty on you, and give you some food and fuel (+[FU]FU,+[FO]FO)" + if(freecrew) + eventdat += "
    You also gain a new crewmember!" + + fuel += FU + food += FO + + //CREW INTERACTIONS + eventdat += "

    Crew Management:

    " + + //Buy crew + if(food >= 10 && fuel >= 10) + eventdat += "

    Hire a new Crewmember (-10FU,-10FO)

    " + else + eventdat += "

    Cant afford a new Crewmember

    " + + //Sell crew + if(settlers.len > 1) + eventdat += "

    Sell crew for Fuel and Food (+7FU,+7FO)

    " + else + eventdat += "

    Cant afford to sell a Crewmember

    " + + //BUY/SELL STUFF + eventdat += "

    Spare Parts:

    " + + //Engine parts + if(fuel > 5) + eventdat += "

    Buy Engine Parts (-5FU)

    " + else + eventdat += "

    Cant afford to buy Engine Parts" + + //Hull plates + if(fuel > 5) + eventdat += "

    Buy Hull Plates (-5FU)

    " + else + eventdat += "

    Cant afford to buy Hull Plates" + + //Electronics + if(fuel > 5) + eventdat += "

    Buy Spare Electronics (-5FU)

    " + else + eventdat += "

    Cant afford to buy Spare Electronics" + + //Trade + if(fuel > 5) + eventdat += "

    Trade Fuel for Food (-5FU,+5FO)

    " + else + eventdat += "

    Cant afford to Trade Fuel for Food 5) + eventdat += "

    Trade Food for Fuel (+5FU,-5FO)

    " + else + eventdat += "

    Cant afford to Trade Food for FuelYou override the cheat code menu and skip to Cheat #[rand(1, 50)]: Realism Mode." + name = "The Orion Trail: Realism Edition" + desc = "Learn how our ancestors got to Orion, and try not to die in the process!" + newgame() + emagged = 1 + +/mob/living/simple_animal/hostile/syndicate/ranged/orion + name = "Spaceport Security" + desc = "The Premier security forces for all spaceports found along the Orion Trail." + faction = list("orion") + loot = list(/obj/effect/mob_spawn/human/corpse/orionsecurity, + /obj/item/weapon/gun/projectile/automatic/c20r/unrestricted, + /obj/item/weapon/shield/energy) + +/obj/effect/mob_spawn/human/corpse/orionsecurity + name = "Spaceport Security" + uniform = /obj/item/clothing/under/syndicate + suit = /obj/item/clothing/suit/armor/vest + shoes = /obj/item/clothing/shoes/combat + gloves = /obj/item/clothing/gloves/combat + radio = /obj/item/device/radio/headset + mask = /obj/item/clothing/mask/gas + helmet = /obj/item/clothing/head/helmet/swat + back = /obj/item/weapon/storage/backpack + has_id = 1 + id_job = "Officer" + id_access = "Syndicate" + +/obj/item/weapon/orion_ship + name = "model settler ship" + desc = "A model spaceship, it looks like those used back in the day when travelling to Orion! It even has a miniature FX-293 reactor, which was renowned for its instability and tendency to explode..." + icon = 'icons/obj/toy.dmi' + icon_state = "ship" + w_class = 2 + var/active = 0 //if the ship is on + +/obj/item/weapon/orion_ship/examine(mob/user) + ..() + if(!(in_range(user, src))) + return + if(!active) + user << "There's a little switch on the bottom. It's flipped down." + else + user << "There's a little switch on the bottom. It's flipped up." + +/obj/item/weapon/orion_ship/attack_self(mob/user) //Minibomb-level explosion. Should probably be more because of how hard it is to survive the machine! Also, just over a 5-second fuse + if(active) + return + + message_admins("[key_name_admin(usr)] primed an explosive Orion ship for detonation.") + log_game("[key_name(usr)] primed an explosive Orion ship for detonation.") + + user << "You flip the switch on the underside of [src]." + active = 1 + src.visible_message("[src] softly beeps and whirs to life!") + playsound(src.loc, 'sound/machines/defib_SaftyOn.ogg', 25, 1) + say("This is ship ID #[rand(1,1000)] to Orion Port Authority. We're coming in for landing, over.") + sleep(20) + src.visible_message("[src] begins to vibrate...") + say("Uh, Port? Having some issues with our reactor, could you check it out? Over.") + sleep(30) + say("Oh, God! Code Eight! CODE EIGHT! IT'S GONNA BL-") + playsound(src.loc, 'sound/machines/buzz-sigh.ogg', 25, 1) + sleep(3.6) + src.visible_message("[src] explodes!") + explosion(src.loc, 2,4,8, flame_range = 16) + qdel(src) + + +#undef ORION_TRAIL_WINTURN +#undef ORION_TRAIL_RAIDERS +#undef ORION_TRAIL_FLUX +#undef ORION_TRAIL_ILLNESS +#undef ORION_TRAIL_BREAKDOWN +#undef ORION_TRAIL_LING +#undef ORION_TRAIL_LING_ATTACK +#undef ORION_TRAIL_MALFUNCTION +#undef ORION_TRAIL_COLLISION +#undef ORION_TRAIL_SPACEPORT +#undef ORION_TRAIL_BLACKHOLE + +#undef ORION_STATUS_START +#undef ORION_STATUS_NORMAL +#undef ORION_STATUS_GAMEOVER +#undef ORION_STATUS_MARKET diff --git a/code/game/machinery/computer/atmos_alert.dm b/code/game/machinery/computer/atmos_alert.dm new file mode 100644 index 0000000..899f382 --- /dev/null +++ b/code/game/machinery/computer/atmos_alert.dm @@ -0,0 +1,85 @@ +/obj/machinery/computer/atmos_alert + name = "atmospheric alert console" + desc = "Used to monitor the station's air alarms." + circuit = /obj/item/weapon/circuitboard/computer/atmos_alert + icon_screen = "alert:0" + icon_keyboard = "atmos_key" + var/list/priority_alarms = list() + var/list/minor_alarms = list() + var/receive_frequency = 1437 + var/datum/radio_frequency/radio_connection + +/obj/machinery/computer/atmos_alert/initialize() + ..() + set_frequency(receive_frequency) + +/obj/machinery/computer/atmos_alert/Destroy() + if(SSradio) + SSradio.remove_object(src, receive_frequency) + return ..() + +/obj/machinery/computer/atmos_alert/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ + datum/tgui/master_ui = null, datum/ui_state/state = default_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "atmos_alert", name, 350, 300, master_ui, state) + ui.open() + +/obj/machinery/computer/atmos_alert/ui_data(mob/user) + var/list/data = list() + + data["priority"] = list() + for(var/zone in priority_alarms) + data["priority"] += zone + data["minor"] = list() + for(var/zone in minor_alarms) + data["minor"] += zone + + return data + +/obj/machinery/computer/atmos_alert/ui_act(action, params) + if(..()) + return + switch(action) + if("clear") + var/zone = params["zone"] + if(zone in priority_alarms) + usr << "Priority alarm for [zone] cleared." + priority_alarms -= zone + . = TRUE + if(zone in minor_alarms) + usr << "Minor alarm for [zone] cleared." + minor_alarms -= zone + . = TRUE + update_icon() + +/obj/machinery/computer/atmos_alert/proc/set_frequency(new_frequency) + SSradio.remove_object(src, receive_frequency) + receive_frequency = new_frequency + radio_connection = SSradio.add_object(src, receive_frequency, RADIO_ATMOSIA) + +/obj/machinery/computer/atmos_alert/receive_signal(datum/signal/signal) + if(!signal || signal.encryption) return + + var/zone = signal.data["zone"] + var/severity = signal.data["alert"] + + if(!zone || !severity) return + + minor_alarms -= zone + priority_alarms -= zone + if(severity == "severe") + priority_alarms += zone + else if (severity == "minor") + minor_alarms += zone + update_icon() + return + +/obj/machinery/computer/atmos_alert/update_icon() + ..() + if(stat & (NOPOWER|BROKEN)) + return + if(priority_alarms.len) + add_overlay("alert:2") + else if(minor_alarms.len) + add_overlay("alert:1") \ No newline at end of file diff --git a/code/game/machinery/computer/atmos_control.dm b/code/game/machinery/computer/atmos_control.dm new file mode 100644 index 0000000..83b8da0 --- /dev/null +++ b/code/game/machinery/computer/atmos_control.dm @@ -0,0 +1,237 @@ +///////////////////////////////////////////////////////////// +// AIR SENSOR (found in gas tanks) +///////////////////////////////////////////////////////////// + +/obj/machinery/air_sensor + name = "gas sensor" + icon = 'icons/obj/stationobjs.dmi' + icon_state = "gsensor1" + anchored = 1 + + var/on = TRUE + + var/id_tag + var/frequency = 1441 + var/datum/radio_frequency/radio_connection + +/obj/machinery/air_sensor/update_icon() + icon_state = "gsensor[on]" + +/obj/machinery/air_sensor/process_atmos() + if(on) + var/datum/signal/signal = new + var/datum/gas_mixture/air_sample = return_air() + + signal.transmission_method = 1 //radio signal + signal.data = list( + "sigtype" = "status", + "id_tag" = id_tag, + "timestamp" = world.time, + "pressure" = air_sample.return_pressure(), + "temperature" = air_sample.temperature, + "gases" = list() + ) + var/total_moles = air_sample.total_moles() + for(var/gas_id in air_sample.gases) + var/gas_name = air_sample.gases[gas_id][GAS_META][META_GAS_NAME] + signal.data["gases"][gas_name] = air_sample.gases[gas_id][MOLES] / total_moles * 100 + + radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA) + + +/obj/machinery/air_sensor/proc/set_frequency(new_frequency) + SSradio.remove_object(src, frequency) + frequency = new_frequency + radio_connection = SSradio.add_object(src, frequency, RADIO_ATMOSIA) + +/obj/machinery/air_sensor/initialize() + set_frequency(frequency) + +/obj/machinery/air_sensor/New() + ..() + SSair.atmos_machinery += src + if(SSradio) + set_frequency(frequency) + +/obj/machinery/air_sensor/Destroy() + SSair.atmos_machinery -= src + if(SSradio) + SSradio.remove_object(src, frequency) + return ..() + +///////////////////////////////////////////////////////////// +// GENERAL AIR CONTROL (a.k.a atmos computer) +///////////////////////////////////////////////////////////// + +/obj/machinery/computer/atmos_control + name = "Atmospherics Monitoring" + desc = "Used to monitor the station's atmospherics sensors." + icon_screen = "tank" + icon_keyboard = "atmos_key" + circuit = /obj/item/weapon/circuitboard/computer/atmos_control + + var/frequency = 1441 + var/list/sensors = list( + "n2_sensor" = "Nitrogen Tank", + "o2_sensor" = "Oxygen Tank", + "co2_sensor" = "Carbon Dioxide Tank", + "tox_sensor" = "Plasma Tank", + "n2o_sensor" = "Nitrous Oxide Tank", + "air_sensor" = "Mixed Air Tank", + "mix_sensor" = "Mix Tank", + "distro_meter" = "Distribution Loop", + "waste_meter" = "Waste Loop", + ) + var/list/sensor_information = list() + var/datum/radio_frequency/radio_connection + +/obj/machinery/computer/atmos_control/New() + ..() + if(SSradio) + set_frequency(frequency) + +/obj/machinery/computer/atmos_control/Destroy() + if(SSradio) + SSradio.remove_object(src, frequency) + return ..() + +/obj/machinery/computer/atmos_control/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ + datum/tgui/master_ui = null, datum/ui_state/state = default_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "atmos_control", name, 400, 925, master_ui, state) + ui.open() + +/obj/machinery/computer/atmos_control/ui_data(mob/user) + var/data = list() + + data["sensors"] = list() + for(var/id_tag in sensors) + var/long_name = sensors[id_tag] + var/list/info = sensor_information[id_tag] + if(!info) + continue + data["sensors"] += list(list( + "id_tag" = id_tag, + "long_name" = sanitize(long_name), + "pressure" = info["pressure"], + "temperature" = info["temperature"], + "gases" = info["gases"] + )) + return data + +/obj/machinery/computer/atmos_control/receive_signal(datum/signal/signal) + if(!signal || signal.encryption) + return + + var/id_tag = signal.data["id_tag"] + if(!id_tag || !sensors.Find(id_tag)) + return + + sensor_information[id_tag] = signal.data + +/obj/machinery/computer/atmos_control/proc/set_frequency(new_frequency) + SSradio.remove_object(src, frequency) + frequency = new_frequency + radio_connection = SSradio.add_object(src, frequency, RADIO_ATMOSIA) + +/obj/machinery/computer/atmos_control/initialize() + set_frequency(frequency) + +///////////////////////////////////////////////////////////// +// LARGE TANK CONTROL +///////////////////////////////////////////////////////////// + +/obj/machinery/computer/atmos_control/tank + var/input_tag + var/output_tag + frequency = 1441 + circuit = /obj/item/weapon/circuitboard/computer/atmos_control/tank + + var/list/input_info + var/list/output_info + +// This hacky madness is the evidence of the fact that a lot of machines were never meant to be constructable, im so sorry you had to see this +/obj/machinery/computer/atmos_control/tank/proc/reconnect(mob/user) + var/list/IO = list() + var/datum/radio_frequency/freq = SSradio.return_frequency(1441) + var/list/devices = freq.devices["_default"] + for(var/obj/machinery/atmospherics/components/unary/vent_pump/U in devices) + var/list/text = splittext(U.id_tag, "_") + IO |= text[1] + for(var/obj/machinery/atmospherics/components/unary/outlet_injector/U in devices) + var/list/text = splittext(U.id, "_") + IO |= text[1] + if(!IO.len) + user << "No machinery detected." + var/S = input("Select the device set: ", "Selection", IO[1]) as anything in IO + if(src) + src.input_tag = "[S]_in" + src.output_tag = "[S]_out" + name = "[uppertext(S)] Supply Control" + var/list/new_devices = freq.devices["4"] + for(var/obj/machinery/air_sensor/U in new_devices) + var/list/text = splittext(U.id_tag, "_") + if(text[1] == S) + sensors = list("[S]_sensor" = "Tank") + break + + for(var/obj/machinery/atmospherics/components/unary/outlet_injector/U in devices) + U.broadcast_status() + for(var/obj/machinery/atmospherics/components/unary/vent_pump/U in devices) + U.broadcast_status() + +/obj/machinery/computer/atmos_control/tank/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ + datum/tgui/master_ui = null, datum/ui_state/state = default_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "atmos_control", name, 500, 305, master_ui, state) + ui.open() + +/obj/machinery/computer/atmos_control/tank/ui_data(mob/user) + var/list/data = ..() + data["tank"] = TRUE + data["inputting"] = input_info ? input_info["power"] : FALSE + data["inputRate"] = input_info ? input_info["volume_rate"] : 0 + data["outputting"] = output_info ? output_info["power"] : FALSE + data["outputPressure"] = output_info ? output_info["internal"] : 0 + + return data + +/obj/machinery/computer/atmos_control/tank/ui_act(action, params) + if(..() || !radio_connection) + return + var/datum/signal/signal = new + signal.transmission_method = 1 + signal.source = src + signal.data = list("sigtype" = "command") + switch(action) + if("reconnect") + reconnect(usr) + . = TRUE + if("input") + signal.data += list("tag" = input_tag, "power_toggle" = TRUE) + . = TRUE + if("output") + signal.data += list("tag" = output_tag, "power_toggle" = TRUE) + . = TRUE + if("pressure") + var/target = input("New target pressure:", name, output_info["internal"]) as num|null + if(!isnull(target) && !..()) + target = Clamp(target, 0, 50 * ONE_ATMOSPHERE) + signal.data += list("tag" = output_tag, "set_internal_pressure" = target) + . = TRUE + radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA) + +/obj/machinery/computer/atmos_control/tank/receive_signal(datum/signal/signal) + if(!signal || signal.encryption) + return + + var/id_tag = signal.data["tag"] + + if(input_tag == id_tag) + input_info = signal.data + else if(output_tag == id_tag) + output_info = signal.data + else + ..(signal) diff --git a/code/game/machinery/computer/buildandrepair.dm b/code/game/machinery/computer/buildandrepair.dm new file mode 100644 index 0000000..678f0c5 --- /dev/null +++ b/code/game/machinery/computer/buildandrepair.dm @@ -0,0 +1,441 @@ +/obj/structure/frame/computer + name = "computer frame" + icon_state = "0" + anchored = 0 + state = 0 + +/obj/structure/frame/computer/attackby(obj/item/P, mob/user, params) + add_fingerprint(user) + switch(state) + if(0) + if(istype(P, /obj/item/weapon/wrench)) + playsound(src.loc, P.usesound, 50, 1) + user << "You start wrenching the frame into place..." + if(do_after(user, 20/P.toolspeed, target = src)) + user << "You wrench the frame into place." + anchored = 1 + state = 1 + return + if(istype(P, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/WT = P + if(!WT.remove_fuel(0, user)) + if(!WT.isOn()) + user << "The welding tool must be on to complete this task!" + return + playsound(src.loc, P.usesound, 50, 1) + user << "You start deconstructing the frame..." + if(do_after(user, 20/P.toolspeed, target = src)) + if(!src || !WT.isOn()) return + user << "You deconstruct the frame." + var/obj/item/stack/sheet/metal/M = new (loc, 5) + M.add_fingerprint(user) + qdel(src) + return + if(1) + if(istype(P, /obj/item/weapon/wrench)) + playsound(src.loc, P.usesound, 50, 1) + user << "You start to unfasten the frame..." + if(do_after(user, 20/P.toolspeed, target = src)) + user << "You unfasten the frame." + anchored = 0 + state = 0 + return + if(istype(P, /obj/item/weapon/circuitboard/computer) && !circuit) + if(!user.drop_item()) + return + playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + user << "You place the circuit board inside the frame." + icon_state = "1" + circuit = P + circuit.add_fingerprint(user) + P.loc = null + return + + else if(istype(P, /obj/item/weapon/circuitboard) && !circuit) + user << "This frame does not accept circuit boards of this type!" + return + if(istype(P, /obj/item/weapon/screwdriver) && circuit) + playsound(src.loc, P.usesound, 50, 1) + user << "You screw the circuit board into place." + state = 2 + icon_state = "2" + return + if(istype(P, /obj/item/weapon/crowbar) && circuit) + playsound(src.loc, P.usesound, 50, 1) + user << "You remove the circuit board." + state = 1 + icon_state = "0" + circuit.loc = src.loc + circuit.add_fingerprint(user) + circuit = null + return + if(2) + if(istype(P, /obj/item/weapon/screwdriver) && circuit) + playsound(src.loc, P.usesound, 50, 1) + user << "You unfasten the circuit board." + state = 1 + icon_state = "1" + return + if(istype(P, /obj/item/stack/cable_coil)) + var/obj/item/stack/cable_coil/C = P + if(C.get_amount() >= 5) + playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + user << "You start adding cables to the frame..." + if(do_after(user, 20/P.toolspeed, target = src)) + if(C.get_amount() >= 5 && state == 2) + C.use(5) + user << "You add cables to the frame." + state = 3 + icon_state = "3" + else + user << "You need five lengths of cable to wire the frame!" + return + if(3) + if(istype(P, /obj/item/weapon/wirecutters)) + playsound(src.loc, P.usesound, 50, 1) + user << "You remove the cables." + state = 2 + icon_state = "2" + var/obj/item/stack/cable_coil/A = new (loc) + A.amount = 5 + A.add_fingerprint(user) + return + + if(istype(P, /obj/item/stack/sheet/glass)) + var/obj/item/stack/sheet/glass/G = P + if(G.get_amount() < 2) + user << "You need two glass sheets to continue construction!" + return + else + playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + user << "You start to put in the glass panel..." + if(do_after(user, 20, target = src)) + if(G.get_amount() >= 2 && state == 3) + G.use(2) + user << "You put in the glass panel." + state = 4 + src.icon_state = "4" + return + if(4) + if(istype(P, /obj/item/weapon/crowbar)) + playsound(src.loc, P.usesound, 50, 1) + user << "You remove the glass panel." + state = 3 + icon_state = "3" + var/obj/item/stack/sheet/glass/G = new (loc, 2) + G.add_fingerprint(user) + return + if(istype(P, /obj/item/weapon/screwdriver)) + playsound(src.loc, P.usesound, 50, 1) + user << "You connect the monitor." + var/obj/B = new src.circuit.build_path (src.loc, circuit) + transfer_fingerprints_to(B) + qdel(src) + return + if(user.a_intent == "harm") + return ..() + + +/obj/structure/frame/computer/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + if(state == 4) + new /obj/item/weapon/shard(loc) + new /obj/item/weapon/shard(loc) + if(state >= 3) + new /obj/item/stack/cable_coil(loc , 5) + ..() + + +/obj/item/weapon/circuitboard + name = "circuit board" + icon = 'icons/obj/module.dmi' + icon_state = "id_mod" + item_state = "electronic" + origin_tech = "programming=2" + materials = list(MAT_GLASS=1000) + w_class = 2 + var/build_path = null + +/obj/item/weapon/circuitboard/computer/turbine_computer + name = "circuit board (Turbine Computer)" + build_path = /obj/machinery/computer/turbine_computer + origin_tech = "programming=4;engineering=4;powerstorage=4" +/obj/item/weapon/circuitboard/computer/telesci_console + name = "circuit board (Telescience Console)" + build_path = /obj/machinery/computer/telescience + origin_tech = "programming=3;bluespace=3;plasmatech=4" +/obj/item/weapon/circuitboard/computer/message_monitor + name = "circuit board (Message Monitor)" + build_path = /obj/machinery/computer/message_monitor + origin_tech = "programming=2" +/obj/item/weapon/circuitboard/computer/security + name = "circuit board (Security Cameras)" + build_path = /obj/machinery/computer/security + origin_tech = "programming=2;combat=2" + +/obj/item/weapon/circuitboard/computer/aiupload + name = "circuit board (AI Upload)" + build_path = /obj/machinery/computer/upload/ai + origin_tech = "programming=4;engineering=4" +/obj/item/weapon/circuitboard/computer/borgupload + name = "circuit board (Cyborg Upload)" + build_path = /obj/machinery/computer/upload/borg + origin_tech = "programming=4;engineering=4" +/obj/item/weapon/circuitboard/computer/med_data + name = "circuit board (Medical Records Console)" + build_path = /obj/machinery/computer/med_data + origin_tech = "programming=2;biotech=2" +/obj/item/weapon/circuitboard/computer/pandemic + name = "circuit board (PanD.E.M.I.C. 2200)" + build_path = /obj/machinery/computer/pandemic + origin_tech = "programming=2;biotech=2" +/obj/item/weapon/circuitboard/computer/scan_consolenew + name = "circuit board (DNA Machine)" + build_path = /obj/machinery/computer/scan_consolenew + origin_tech = "programming=2;biotech=2" +/obj/item/weapon/circuitboard/computer/communications + name = "circuit board (Communications)" + build_path = /obj/machinery/computer/communications + origin_tech = "programming=3;magnets=3" + var/lastTimeUsed = 0 + +/obj/item/weapon/circuitboard/computer/card + name = "circuit board (ID Console)" + build_path = /obj/machinery/computer/card + origin_tech = "programming=3" +/obj/item/weapon/circuitboard/computer/card/centcom + name = "circuit board (Centcom ID Console)" + build_path = /obj/machinery/computer/card/centcom + +/obj/item/weapon/circuitboard/computer/card/minor + name = "circuit board (Department Management Console)" + build_path = /obj/machinery/computer/card/minor + var/target_dept = 1 + var/list/dept_list = list("General","Security","Medical","Science","Engineering") + +/obj/item/weapon/circuitboard/computer/card/minor/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/screwdriver)) + target_dept = (target_dept == dept_list.len) ? 1 : (target_dept + 1) + user << "You set the board to \"[dept_list[target_dept]]\"." + else + return ..() + +/obj/item/weapon/circuitboard/computer/card/minor/examine(user) + ..() + user << "Currently set to \"[dept_list[target_dept]]\"." + +//obj/item/weapon/circuitboard/computer/shield +// name = "Circuit board (Shield Control)" +// build_path = /obj/machinery/computer/stationshield +/obj/item/weapon/circuitboard/computer/teleporter + name = "circuit board (Teleporter)" + build_path = /obj/machinery/computer/teleporter + origin_tech = "programming=3;bluespace=3;plasmatech=3" +/obj/item/weapon/circuitboard/computer/secure_data + name = "circuit board (Security Records Console)" + build_path = /obj/machinery/computer/secure_data + origin_tech = "programming=2;combat=2" +/obj/item/weapon/circuitboard/computer/stationalert + name = "circuit board (Station Alerts)" + build_path = /obj/machinery/computer/station_alert +/*/obj/item/weapon/circuitboard/computer/atmospheresiphonswitch + name = "circuit board (Atmosphere siphon control)" + build_path = /obj/machinery/computer/atmosphere/siphonswitch*/ +/obj/item/weapon/circuitboard/computer/atmos_control + name = "circuit board (Atmospheric Monitor)" + build_path = /obj/machinery/computer/atmos_control +/obj/item/weapon/circuitboard/computer/atmos_control/tank + name = "circuit board (Tank Control)" + build_path = /obj/machinery/computer/atmos_control/tank + origin_tech = "programming=2;engineering=3;materials=2" +/obj/item/weapon/circuitboard/computer/atmos_alert + name = "circuit board (Atmospheric Alert)" + build_path = /obj/machinery/computer/atmos_alert +/obj/item/weapon/circuitboard/computer/pod + name = "circuit board (Massdriver control)" + build_path = /obj/machinery/computer/pod +/obj/item/weapon/circuitboard/computer/robotics + name = "circuit board (Robotics Control)" + build_path = /obj/machinery/computer/robotics + origin_tech = "programming=3" +/obj/item/weapon/circuitboard/computer/cloning + name = "circuit board (Cloning)" + build_path = /obj/machinery/computer/cloning + origin_tech = "programming=2;biotech=2" +/obj/item/weapon/circuitboard/computer/arcade/battle + name = "circuit board (Arcade Battle)" + build_path = /obj/machinery/computer/arcade/battle + origin_tech = "programming=1" +/obj/item/weapon/circuitboard/computer/arcade/orion_trail + name = "circuit board (Orion Trail)" + build_path = /obj/machinery/computer/arcade/orion_trail + origin_tech = "programming=1" +/obj/item/weapon/circuitboard/computer/turbine_control + name = "circuit board (Turbine control)" + build_path = /obj/machinery/computer/turbine_computer +/obj/item/weapon/circuitboard/computer/solar_control + name = "circuit board (Solar Control)" //name fixed 250810 + build_path = /obj/machinery/power/solar_control + origin_tech = "programming=2;powerstorage=2" +/obj/item/weapon/circuitboard/computer/powermonitor + name = "circuit board (Power Monitor)" //name fixed 250810 + build_path = /obj/machinery/computer/monitor + origin_tech = "programming=2;powerstorage=2" +/obj/item/weapon/circuitboard/computer/olddoor + name = "circuit board (DoorMex)" + build_path = /obj/machinery/computer/pod/old +/obj/item/weapon/circuitboard/computer/syndicatedoor + name = "circuit board (ProComp Executive)" + build_path = /obj/machinery/computer/pod/old/syndicate +/obj/item/weapon/circuitboard/computer/swfdoor + name = "circuit board (Magix)" + build_path = /obj/machinery/computer/pod/old/swf +/obj/item/weapon/circuitboard/computer/prisoner + name = "circuit board (Prisoner Management Console)" + build_path = /obj/machinery/computer/prisoner +/obj/item/weapon/circuitboard/computer/gulag_teleporter_console + name = "circuit board (Labor Camp teleporter console)" + build_path = /obj/machinery/computer/gulag_teleporter_computer + +/obj/item/weapon/circuitboard/computer/rdconsole + name = "circuit board (RD Console)" + build_path = /obj/machinery/computer/rdconsole/core + +/obj/item/weapon/circuitboard/computer/rdconsole/attackby(obj/item/I, mob/user, params) + if(istype(I,/obj/item/weapon/screwdriver)) + if(build_path == /obj/machinery/computer/rdconsole/core) + name = "circuit board (RD Console - Robotics)" + build_path = /obj/machinery/computer/rdconsole/robotics + user << "Access protocols successfully updated." + else + name = "circuit board (RD Console)" + build_path = /obj/machinery/computer/rdconsole/core + user << "Defaulting access protocols." + else + return ..() + +/obj/item/weapon/circuitboard/computer/mecha_control + name = "circuit board (Exosuit Control Console)" + build_path = /obj/machinery/computer/mecha +/obj/item/weapon/circuitboard/computer/rdservercontrol + name = "circuit board (R&D Server Control)" + build_path = /obj/machinery/computer/rdservercontrol +/obj/item/weapon/circuitboard/computer/crew + name = "circuit board (Crew Monitoring Console)" + build_path = /obj/machinery/computer/crew + origin_tech = "programming=2;biotech=2" +/obj/item/weapon/circuitboard/computer/mech_bay_power_console + name = "circuit board (Mech Bay Power Control Console)" + build_path = /obj/machinery/computer/mech_bay_power_console + origin_tech = "programming=3;powerstorage=3" + +/obj/item/weapon/circuitboard/computer/cargo + name = "circuit board (Supply Console)" + build_path = /obj/machinery/computer/cargo + origin_tech = "programming=3" + var/contraband = 0 + var/emagged = 0 + +/obj/item/weapon/circuitboard/computer/cargo/attackby(obj/item/I, mob/user, params) + if(istype(I,/obj/item/device/multitool)) + if(!emagged) + contraband = !contraband + user << "Receiver spectrum set to [contraband ? "Broad" : "Standard"]." + else + user << "The spectrum chip is unresponsive." + else if(istype(I,/obj/item/weapon/card/emag)) + if(!emagged) + contraband = TRUE + emagged = TRUE + user << "You adjust [src]'s routing and receiver spectrum, unlocking special supplies and contraband." + else + return ..() + + +/obj/item/weapon/circuitboard/computer/cargo/request + name = "circuit board (Supply Request Console)" + build_path = /obj/machinery/computer/cargo/request + +/obj/item/weapon/circuitboard/computer/operating + name = "circuit board (Operating Computer)" + build_path = /obj/machinery/computer/operating + origin_tech = "programming=2;biotech=3" +/obj/item/weapon/circuitboard/computer/mining + name = "circuit board (Outpost Status Display)" + build_path = /obj/machinery/computer/security/mining +/obj/item/weapon/circuitboard/computer/comm_monitor + name = "circuit board (Telecommunications Monitor)" + build_path = /obj/machinery/computer/telecomms/monitor + origin_tech = "programming=3;magnets=3;bluespace=2" +/obj/item/weapon/circuitboard/computer/comm_server + name = "circuit board (Telecommunications Server Monitor)" + build_path = /obj/machinery/computer/telecomms/server + origin_tech = "programming=3;magnets=3;bluespace=2" + +/obj/item/weapon/circuitboard/computer/shuttle + name = "circuit board (Shuttle)" + build_path = /obj/machinery/computer/shuttle + var/shuttleId + var/possible_destinations = "" + +/obj/item/weapon/circuitboard/computer/shuttle/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/device/multitool)) + var/chosen_id = round(input(usr, "Choose an ID number (-1 for reset):", "Input an Integer", null) as num|null) + if(chosen_id >= 0) + shuttleId = chosen_id + else + shuttleId = initial(shuttleId) + else + return ..() + +/obj/item/weapon/circuitboard/computer/labor_shuttle + name = "circuit board (Labor Shuttle)" + build_path = /obj/machinery/computer/shuttle/labor +/obj/item/weapon/circuitboard/computer/labor_shuttle/one_way + name = "circuit board (Prisoner Shuttle Console)" + build_path = /obj/machinery/computer/shuttle/labor/one_way +/obj/item/weapon/circuitboard/computer/ferry + name = "circuit board (Transport Ferry)" + build_path = /obj/machinery/computer/shuttle/ferry +/obj/item/weapon/circuitboard/computer/ferry/request + name = "circuit board (Transport Ferry Console)" + build_path = /obj/machinery/computer/shuttle/ferry/request +/obj/item/weapon/circuitboard/computer/mining_shuttle + name = "circuit board (Mining Shuttle)" + build_path = /obj/machinery/computer/shuttle/mining +/obj/item/weapon/circuitboard/computer/white_ship + name = "circuit board (White Ship)" + build_path = /obj/machinery/computer/shuttle/white_ship +/obj/item/weapon/circuitboard/computer/holodeck// Not going to let people get this, but it's just here for future + name = "circuit board (Holodeck Control)" + build_path = /obj/machinery/computer/holodeck + origin_tech = "programming=4" +/obj/item/weapon/circuitboard/computer/aifixer + name = "circuit board (AI Integrity Restorer)" + build_path = /obj/machinery/computer/aifixer + origin_tech = "programming=2;biotech=2" +/*/obj/item/weapon/circuitboard/computer/prison_shuttle + name = "circuit board (Prison Shuttle)" + build_path = /obj/machinery/computer/prison_shuttle*/ +/obj/item/weapon/circuitboard/computer/slot_machine + name = "circuit board (Slot Machine)" + build_path = /obj/machinery/computer/slot_machine + origin_tech = "programming=1" + +/obj/item/weapon/circuitboard/computer/libraryconsole + name = "circuit board (Library Visitor Console)" + build_path = /obj/machinery/computer/libraryconsole + origin_tech = "programming=1" + +/obj/item/weapon/circuitboard/computer/libraryconsole/attackby(obj/item/I, mob/user, params) + if(istype(I,/obj/item/weapon/screwdriver)) + if(build_path == /obj/machinery/computer/libraryconsole/bookmanagement) + name = "circuit board (Library Visitor Console)" + build_path = /obj/machinery/computer/libraryconsole + user << "Defaulting access protocols." + else + name = "circuit board (Book Inventory Management Console)" + build_path = /obj/machinery/computer/libraryconsole/bookmanagement + user << "Access protocols successfully updated." + else + return ..() diff --git a/code/game/machinery/computer/camera.dm b/code/game/machinery/computer/camera.dm new file mode 100644 index 0000000..f093519 --- /dev/null +++ b/code/game/machinery/computer/camera.dm @@ -0,0 +1,181 @@ +/obj/machinery/computer/security + name = "security camera console" + desc = "Used to access the various cameras on the station." + icon_screen = "cameras" + icon_keyboard = "security_key" + circuit = /obj/item/weapon/circuitboard/computer/security + var/last_pic = 1 + var/list/network = list("SS13") + var/mapping = 0//For the overview file, interesting bit of code. + var/list/watchers = list() //who's using the console, associated with the camera they're on. + +/obj/machinery/computer/security/check_eye(mob/user) + if( (stat & (NOPOWER|BROKEN)) || user.incapacitated() || user.eye_blind ) + user.unset_machine() + return + if(!(user in watchers)) + user.unset_machine() + return + if(!watchers[user]) + user.unset_machine() + return + var/obj/machinery/camera/C = watchers[user] + if(!C.can_use()) + user.unset_machine() + return + if(!issilicon(user)) + if(!Adjacent(user)) + user.unset_machine() + return + else if(iscyborg(user)) + var/list/viewing = viewers(src) + if(!viewing.Find(user)) + user.unset_machine() + +/obj/machinery/computer/security/on_unset_machine(mob/user) + watchers.Remove(user) + user.reset_perspective(null) + +/obj/machinery/computer/security/Destroy() + if(watchers.len) + for(var/mob/M in watchers) + M.unset_machine() //to properly reset the view of the users if the console is deleted. + return ..() + +/obj/machinery/computer/security/attack_hand(mob/user) + if(stat) + return + if (!network) + throw EXCEPTION("No camera network") + user.unset_machine() + return + if (!(istype(network,/list))) + throw EXCEPTION("Camera network is not a list") + user.unset_machine() + return + if(..()) + user.unset_machine() + return + + var/list/camera_list = get_available_cameras() + if(!(user in watchers)) + for(var/Num in camera_list) + var/obj/machinery/camera/CAM = camera_list[Num] + if(istype(CAM)) + if(CAM.can_use()) + watchers[user] = CAM //let's give the user the first usable camera, and then let him change to the camera he wants. + break + if(!(user in watchers)) + user.unset_machine() // no usable camera on the network, we disconnect the user from the computer. + return + use_camera_console(user) + +/obj/machinery/computer/security/proc/use_camera_console(mob/user) + var/list/camera_list = get_available_cameras() + var/t = input(user, "Which camera should you change to?") as null|anything in camera_list + if(user.machine != src) //while we were choosing we got disconnected from our computer or are using another machine. + return + if(!t) + user.unset_machine() + return + + var/obj/machinery/camera/C = camera_list[t] + + if(t == "Cancel") + user.unset_machine() + return + if(C) + var/camera_fail = 0 + if(!C.can_use() || user.machine != src || user.eye_blind || user.incapacitated()) + camera_fail = 1 + else if(iscyborg(user)) + var/list/viewing = viewers(src) + if(!viewing.Find(user)) + camera_fail = 1 + else if(!issilicon(user)) + if(!Adjacent(user)) + camera_fail = 1 + + if(camera_fail) + user.unset_machine() + return 0 + + if(isAI(user)) + var/mob/living/silicon/ai/A = user + A.eyeobj.setLoc(get_turf(C)) + A.client.eye = A.eyeobj + else + user.reset_perspective(C) + watchers[user] = C + use_power(50) + addtimer(src, "use_camera_console", 5, FALSE, user) + else + user.unset_machine() + +//returns the list of cameras accessible from this computer +/obj/machinery/computer/security/proc/get_available_cameras() + var/list/L = list() + for (var/obj/machinery/camera/C in cameranet.cameras) + if((z > ZLEVEL_SPACEMAX || C.z > ZLEVEL_SPACEMAX) && (C.z != z))//if on away mission, can only recieve feed from same z_level cameras + continue + L.Add(C) + + camera_sort(L) + + var/list/D = list() + D["Cancel"] = "Cancel" + for(var/obj/machinery/camera/C in L) + if(!C.network) + spawn(0) + throw EXCEPTION("Camera in a cameranet has no camera network") + continue + if(!(istype(C.network,/list))) + spawn(0) + throw EXCEPTION("Camera in a cameranet has a non-list camera network") + continue + var/list/tempnetwork = C.network&network + if(tempnetwork.len) + D["[C.c_tag][(C.status ? null : " (Deactivated)")]"] = C + return D + +/obj/machinery/computer/security/telescreen + name = "\improper Telescreen" + desc = "Used for watching an empty arena." + icon = 'icons/obj/stationobjs.dmi' + icon_state = "telescreen" + network = list("thunder") + density = 0 + circuit = null + clockwork = TRUE //it'd look very weird + +/obj/machinery/computer/security/telescreen/update_icon() + icon_state = initial(icon_state) + if(stat & BROKEN) + icon_state += "b" + return + +/obj/machinery/computer/security/telescreen/entertainment + name = "entertainment monitor" + desc = "Damn, they better have the /tg/ channel on these things." + icon = 'icons/obj/status_display.dmi' + icon_state = "entertainment" + network = list("thunder") + density = 0 + circuit = null + +/obj/machinery/computer/security/wooden_tv + name = "security camera monitor" + desc = "An old TV hooked into the stations camera network." + icon_state = "television" + icon_keyboard = null + icon_screen = "detective_tv" + clockwork = TRUE //it'd look weird + + +/obj/machinery/computer/security/mining + name = "outpost camera console" + desc = "Used to access the various cameras on the outpost." + icon_screen = "mining" + icon_keyboard = "mining_key" + network = list("MINE") + circuit = /obj/item/weapon/circuitboard/computer/mining diff --git a/code/game/machinery/computer/camera_advanced.dm b/code/game/machinery/computer/camera_advanced.dm new file mode 100644 index 0000000..d3d5d4b --- /dev/null +++ b/code/game/machinery/computer/camera_advanced.dm @@ -0,0 +1,181 @@ +/obj/machinery/computer/camera_advanced + name = "advanced camera console" + desc = "Used to access the various cameras on the station." + icon_screen = "cameras" + icon_keyboard = "security_key" + var/mob/camera/aiEye/remote/eyeobj + var/mob/living/carbon/human/current_user = null + var/list/networks = list("SS13") + var/datum/action/innate/camera_off/off_action = new + var/datum/action/innate/camera_jump/jump_action = new + +/obj/machinery/computer/camera_advanced/proc/CreateEye() + eyeobj = new() + eyeobj.origin = src + +/obj/machinery/computer/camera_advanced/proc/GrantActions(mob/living/carbon/user) + off_action.target = user + off_action.Grant(user) + jump_action.target = user + jump_action.Grant(user) + +/obj/machinery/computer/camera_advanced/check_eye(mob/user) + if( (stat & (NOPOWER|BROKEN)) || !Adjacent(user) || user.eye_blind || user.incapacitated() ) + user.unset_machine() + +/obj/machinery/computer/camera_advanced/Destroy() + if(current_user) + current_user.unset_machine() + if(eyeobj) + qdel(eyeobj) + return ..() + +/obj/machinery/computer/camera_advanced/on_unset_machine(mob/M) + if(M == current_user) + off_action.Activate() + +/obj/machinery/computer/camera_advanced/attack_hand(mob/user) + if(current_user) + user << "The console is already in use!" + return + if(!iscarbon(user)) + return + if(..()) + return + var/mob/living/carbon/L = user + + if(!eyeobj) + CreateEye() + + if(!eyeobj.initialized) + var/camera_location + for(var/obj/machinery/camera/C in cameranet.cameras) + if(!C.can_use()) + continue + if(C.network&networks) + camera_location = get_turf(C) + break + if(camera_location) + eyeobj.initialized = 1 + give_eye_control(L) + eyeobj.setLoc(camera_location) + else + user.unset_machine() + else + give_eye_control(L) + eyeobj.setLoc(eyeobj.loc) + + + +/obj/machinery/computer/camera_advanced/proc/give_eye_control(mob/user) + GrantActions(user) + current_user = user + eyeobj.eye_user = user + eyeobj.name = "Camera Eye ([user.name])" + user.remote_control = eyeobj + user.reset_perspective(eyeobj) + +/mob/camera/aiEye/remote + name = "Inactive Camera Eye" + var/sprint = 10 + var/cooldown = 0 + var/acceleration = 1 + var/mob/living/carbon/human/eye_user = null + var/obj/machinery/computer/camera_advanced/origin + var/initialized = 0 + var/visible_icon = 0 + var/image/user_image = null + +/mob/camera/aiEye/remote/Destroy() + eye_user = null + origin = null + return ..() + +/mob/camera/aiEye/remote/GetViewerClient() + if(eye_user) + return eye_user.client + return null + +/mob/camera/aiEye/remote/setLoc(T) + if(eye_user) + if(!isturf(eye_user.loc)) + return + T = get_turf(T) + loc = T + cameranet.visibility(src) + if(visible_icon) + if(eye_user.client) + eye_user.client.images -= user_image + user_image = image(icon,loc,icon_state,FLY_LAYER) + eye_user.client.images += user_image + +/mob/camera/aiEye/remote/relaymove(mob/user,direct) + var/initial = initial(sprint) + var/max_sprint = 50 + + if(cooldown && cooldown < world.timeofday) // 3 seconds + sprint = initial + + for(var/i = 0; i < max(sprint, initial); i += 20) + var/turf/step = get_turf(get_step(src, direct)) + if(step) + src.setLoc(step) + + cooldown = world.timeofday + 5 + if(acceleration) + sprint = min(sprint + 0.5, max_sprint) + else + sprint = initial + +/datum/action/innate/camera_off + name = "End Camera View" + button_icon_state = "camera_off" + +/datum/action/innate/camera_off/Activate() + if(!target || !iscarbon(target)) + return + var/mob/living/carbon/C = target + var/mob/camera/aiEye/remote/remote_eye = C.remote_control + remote_eye.origin.current_user = null + remote_eye.origin.jump_action.Remove(C) + remote_eye.eye_user = null + if(C.client) + C.reset_perspective(null) + if(remote_eye.visible_icon) + C.client.images -= remote_eye.user_image + for(var/datum/camerachunk/chunk in remote_eye.visibleCameraChunks) + C.client.images -= chunk.obscured + C.remote_control = null + C.unset_machine() + src.Remove(C) + +/datum/action/innate/camera_jump + name = "Jump To Camera" + button_icon_state = "camera_jump" + +/datum/action/innate/camera_jump/Activate() + if(!target || !iscarbon(target)) + return + var/mob/living/carbon/C = target + var/mob/camera/aiEye/remote/remote_eye = C.remote_control + var/obj/machinery/computer/camera_advanced/origin = remote_eye.origin + + var/list/L = list() + + for (var/obj/machinery/camera/cam in cameranet.cameras) + L.Add(cam) + + camera_sort(L) + + var/list/T = list() + + for (var/obj/machinery/camera/netcam in L) + var/list/tempnetwork = netcam.network&origin.networks + if (tempnetwork.len) + T[text("[][]", netcam.c_tag, (netcam.can_use() ? null : " (Deactivated)"))] = netcam + + + var/camera = input("Choose which camera you want to view", "Cameras") as null|anything in T + var/obj/machinery/camera/final = T[camera] + if(final) + remote_eye.setLoc(get_turf(final)) \ No newline at end of file diff --git a/code/game/machinery/computer/card.dm b/code/game/machinery/computer/card.dm new file mode 100644 index 0000000..f84a1fa --- /dev/null +++ b/code/game/machinery/computer/card.dm @@ -0,0 +1,545 @@ +//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 + +//Keeps track of the time for the ID console. Having it as a global variable prevents people from dismantling/reassembling it to +//increase the slots of many jobs. +var/time_last_changed_position = 0 + +/obj/machinery/computer/card + name = "identification console" + desc = "You can use this to manage jobs and ID access." + icon_screen = "id" + icon_keyboard = "id_key" + req_one_access = list(access_heads, access_change_ids) + circuit = /obj/item/weapon/circuitboard/computer/card + var/obj/item/weapon/card/id/scan = null + var/obj/item/weapon/card/id/modify = null + var/authenticated = 0 + var/mode = 0 + var/printing = null + var/list/region_access = null + var/list/head_subordinates = null + var/target_dept = 0 //Which department this computer has access to. 0=all departments + + //Cooldown for closing positions in seconds + //if set to -1: No cooldown... probably a bad idea + //if set to 0: Not able to close "original" positions. You can only close positions that you have opened before + var/change_position_cooldown = 60 + //Jobs you cannot open new positions for + var/list/blacklisted = list( + "AI", + "Assistant", + "Cyborg", + "Captain", + "Head of Personnel", + "Head of Security", + "Chief Engineer", + "Research Director", + "Chief Medical Officer", + "Chaplain") + + //The scaling factor of max total positions in relation to the total amount of people on board the station in % + var/max_relative_positions = 30 //30%: Seems reasonable, limit of 6 @ 20 players + + //This is used to keep track of opened positions for jobs to allow instant closing + //Assoc array: "JobName" = (int) + var/list/opened_positions = list(); + +/obj/machinery/computer/card/attackby(obj/O, mob/user, params)//TODO:SANITY + if(istype(O, /obj/item/weapon/card/id)) + var/obj/item/weapon/card/id/idcard = O + if(check_access(idcard)) + if(!scan) + if(!usr.drop_item()) + return + idcard.loc = src + scan = idcard + else if(!modify) + if(!usr.drop_item()) + return + idcard.loc = src + modify = idcard + else + if(!modify) + if(!usr.drop_item()) + return + idcard.loc = src + modify = idcard + else + return ..() + +/obj/machinery/computer/card/Destroy() + if(scan) + qdel(scan) + scan = null + if(modify) + qdel(modify) + modify = null + return ..() + +/obj/machinery/computer/card/handle_atom_del(atom/A) + ..() + if(A == scan) + scan = null + updateUsrDialog() + if(A == modify) + modify = null + updateUsrDialog() + +/obj/machinery/computer/card/on_deconstruction() + if(scan) + scan.forceMove(loc) + scan = null + if(modify) + modify.forceMove(loc) + modify = null + +//Check if you can't open a new position for a certain job +/obj/machinery/computer/card/proc/job_blacklisted(jobtitle) + return (jobtitle in blacklisted) + + +//Logic check for Topic() if you can open the job +/obj/machinery/computer/card/proc/can_open_job(datum/job/job) + if(job) + if(!job_blacklisted(job.title)) + if((job.total_positions <= player_list.len * (max_relative_positions / 100))) + var/delta = (world.time / 10) - time_last_changed_position + if((change_position_cooldown < delta) || (opened_positions[job.title] < 0)) + return 1 + return -2 + return -1 + return 0 + +//Logic check for Topic() if you can close the job +/obj/machinery/computer/card/proc/can_close_job(datum/job/job) + if(job) + if(!job_blacklisted(job.title)) + if(job.total_positions > job.current_positions) + var/delta = (world.time / 10) - time_last_changed_position + if((change_position_cooldown < delta) || (opened_positions[job.title] > 0)) + return 1 + return -2 + return -1 + return 0 + +/obj/machinery/computer/card/attack_hand(mob/user) + if(..()) + return + + user.set_machine(src) + var/dat + if(!ticker) + return + if (mode == 1) // accessing crew manifest + var/crew = "" + for(var/datum/data/record/t in sortRecord(data_core.general)) + crew += t.fields["name"] + " - " + t.fields["rank"] + "
    " + dat = "Crew Manifest:
    Please use security record computer to modify entries.

    [crew]Print

    Access ID modification console.
    " + + else if(mode == 2) + // JOB MANAGEMENT + dat = "Return" + dat += " || Confirm Identity: " + var/S + if(scan) + S = html_encode(scan.name) + else + S = "--------" + dat += "[S]" + dat += "" + dat += "" + var/ID + if(scan && (access_change_ids in scan.access) && !target_dept) + ID = 1 + else + ID = 0 + for(var/datum/job/job in SSjob.occupations) + dat += "" + if(job.title in blacklisted) + continue + dat += "" + dat += "" + dat += "" + dat += "
    JobSlotsOpen jobClose job
    [job.title][job.current_positions]/[job.total_positions]" + switch(can_open_job(job)) + if(1) + if(ID) + dat += "Open Position
    " + else + dat += "Open Position" + if(-1) + dat += "Denied" + if(-2) + var/time_to_wait = round(change_position_cooldown - ((world.time / 10) - time_last_changed_position), 1) + var/mins = round(time_to_wait / 60) + var/seconds = time_to_wait - (60*mins) + dat += "Cooldown ongoing: [mins]:[(seconds < 10) ? "0[seconds]" : "[seconds]"]" + if(0) + dat += "Denied" + dat += "
    " + switch(can_close_job(job)) + if(1) + if(ID) + dat += "Close Position" + else + dat += "Close Position" + if(-1) + dat += "Denied" + if(-2) + var/time_to_wait = round(change_position_cooldown - ((world.time / 10) - time_last_changed_position), 1) + var/mins = round(time_to_wait / 60) + var/seconds = time_to_wait - (60*mins) + dat += "Cooldown ongoing: [mins]:[(seconds < 10) ? "0[seconds]" : "[seconds]"]" + if(0) + dat += "Denied" + dat += "
    " + else + var/header = "" + + var/target_name + var/target_owner + var/target_rank + if(modify) + target_name = html_encode(modify.name) + else + target_name = "--------" + if(modify && modify.registered_name) + target_owner = html_encode(modify.registered_name) + else + target_owner = "--------" + if(modify && modify.assignment) + target_rank = html_encode(modify.assignment) + else + target_rank = "Unassigned" + + var/scan_name + if(scan) + scan_name = html_encode(scan.name) + else + scan_name = "--------" + + if(!authenticated) + header += "
    Please insert the cards into the slots
    " + header += "Target: [target_name]
    " + header += "Confirm Identity: [scan_name]
    " + else + header += "


    " + header += "Remove [target_name] || " + header += "Remove [scan_name]
    " + header += "Access Crew Manifest || " + header += "Log Out
    " + + header += "
    " + + var/jobs_all = "" + var/list/alljobs = list("Unassigned") + alljobs += (istype(src,/obj/machinery/computer/card/centcom)? get_all_centcom_jobs() : get_all_jobs()) + "Custom" + for(var/job in alljobs) + jobs_all += "[replacetext(job, " ", " ")] " //make sure there isn't a line break in the middle of a job + + + var/body + + if (authenticated && modify) + + var/carddesc = text("") + var/jobs = text("") + if( authenticated == 2) + carddesc += {""} + carddesc += "
    " + carddesc += "" + carddesc += "" + carddesc += "registered name: " + carddesc += "" + carddesc += "
    " + carddesc += "Assignment: " + + jobs += "[target_rank]" //CHECK THIS + + else + carddesc += "registered_name: [target_owner]" + jobs += "Assignment: [target_rank] (Demote)" + + var/accesses = "" + if(istype(src,/obj/machinery/computer/card/centcom)) + accesses += "
    Central Command:
    " + for(var/A in get_all_centcom_access()) + if(A in modify.access) + accesses += "[replacetext(get_centcom_access_desc(A), " ", " ")] " + else + accesses += "[replacetext(get_centcom_access_desc(A), " ", " ")] " + else + accesses += "
    Access
    " + accesses += "" + accesses += "" + for(var/i = 1; i <= 7; i++) + if(authenticated == 1 && !(i in region_access)) + continue + accesses += "" + accesses += "" + for(var/i = 1; i <= 7; i++) + if(authenticated == 1 && !(i in region_access)) + continue + accesses += "" + accesses += "
    [get_region_accesses_name(i)]:
    " + for(var/A in get_region_accesses(i)) + if(A in modify.access) + accesses += "[replacetext(get_access_desc(A), " ", " ")] " + else + accesses += "[replacetext(get_access_desc(A), " ", " ")] " + accesses += "
    " + accesses += "
    " + body = "[carddesc]
    [jobs]

    [accesses]" //CHECK THIS + + else + body = "{Log in}

    " + body += "Access Crew Manifest" + if(!target_dept) + body += "

    Job Management" + + dat = "[header][body]

    " + + //user << browse(dat, "window=id_com;size=900x520") + //onclose(user, "id_com") + + var/datum/browser/popup = new(user, "id_com", src.name, 900, 620) + popup.set_content(dat) + popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) + popup.open() + return + + +/obj/machinery/computer/card/Topic(href, href_list) + if(..()) + return + usr.set_machine(src) + switch(href_list["choice"]) + if ("modify") + if (modify) + data_core.manifest_modify(modify.registered_name, modify.assignment) + modify.update_label() + modify.loc = loc + modify.verb_pickup() + modify = null + region_access = null + head_subordinates = null + else + var/obj/item/I = usr.get_active_held_item() + if (istype(I, /obj/item/weapon/card/id)) + if(!usr.drop_item()) + return + I.loc = src + modify = I + authenticated = 0 + + if ("scan") + if (scan) + scan.loc = src.loc + scan.verb_pickup() + scan = null + else + var/obj/item/I = usr.get_active_held_item() + if (istype(I, /obj/item/weapon/card/id)) + if(!usr.drop_item()) + return + I.loc = src + scan = I + authenticated = 0 + if ("auth") + if ((!( authenticated ) && (scan || issilicon(usr)) && (modify || mode))) + if (check_access(scan)) + region_access = list() + head_subordinates = list() + if(access_change_ids in scan.access) + if(target_dept) + head_subordinates = get_all_jobs() + region_access |= target_dept + authenticated = 1 + else + authenticated = 2 + + else + if((access_hop in scan.access) && ((target_dept==1) || !target_dept)) + region_access |= 1 + region_access |= 6 + get_subordinates("Head of Personnel") + if((access_hos in scan.access) && ((target_dept==2) || !target_dept)) + region_access |= 2 + get_subordinates("Head of Security") + if((access_cmo in scan.access) && ((target_dept==3) || !target_dept)) + region_access |= 3 + get_subordinates("Chief Medical Officer") + if((access_rd in scan.access) && ((target_dept==4) || !target_dept)) + region_access |= 4 + get_subordinates("Research Director") + if((access_ce in scan.access) && ((target_dept==5) || !target_dept)) + region_access |= 5 + get_subordinates("Chief Engineer") + if(region_access) + authenticated = 1 + else if ((!( authenticated ) && issilicon(usr)) && (!modify)) + usr << "You can't modify an ID without an ID inserted to modify! Once one is in the modify slot on the computer, you can log in." + if ("logout") + region_access = null + head_subordinates = null + authenticated = 0 + if("access") + if(href_list["allowed"]) + if(authenticated) + var/access_type = text2num(href_list["access_target"]) + var/access_allowed = text2num(href_list["allowed"]) + if(access_type in (istype(src,/obj/machinery/computer/card/centcom)?get_all_centcom_access() : get_all_accesses())) + modify.access -= access_type + if(access_allowed == 1) + modify.access += access_type + if ("assign") + if (authenticated == 2) + var/t1 = href_list["assign_target"] + if(t1 == "Custom") + var/newJob = reject_bad_text(input("Enter a custom job assignment.", "Assignment", modify ? modify.assignment : "Unassigned"), MAX_NAME_LEN) + if(newJob) + t1 = newJob + + else if(t1 == "Unassigned") + modify.access -= get_all_accesses() + + else + var/datum/job/jobdatum + for(var/jobtype in typesof(/datum/job)) + var/datum/job/J = new jobtype + if(ckey(J.title) == ckey(t1)) + jobdatum = J + break + if(!jobdatum) + usr << "No log exists for this job." + return + + modify.access = ( istype(src,/obj/machinery/computer/card/centcom) ? get_centcom_access(t1) : jobdatum.get_access() ) + if (modify) + modify.assignment = t1 + if ("demote") + if(modify.assignment in head_subordinates || modify.assignment == "Assistant") + modify.assignment = "Unassigned" + else + usr << "You are not authorized to demote this position." + if ("reg") + if (authenticated) + var/t2 = modify + //var/t1 = input(usr, "What name?", "ID computer", null) as text + if ((authenticated && modify == t2 && (in_range(src, usr) || issilicon(usr)) && isturf(loc))) + var/newName = reject_bad_name(href_list["reg"]) + if(newName) + modify.registered_name = newName + else + usr << "Invalid name entered." + return + if ("mode") + mode = text2num(href_list["mode_target"]) + + if("return") + //DISPLAY MAIN MENU + mode = 3; + + if("make_job_available") + // MAKE ANOTHER JOB POSITION AVAILABLE FOR LATE JOINERS + if(scan && (access_change_ids in scan.access) && !target_dept) + var/edit_job_target = href_list["job"] + var/datum/job/j = SSjob.GetJob(edit_job_target) + if(!j) + return 0 + if(can_open_job(j) != 1) + return 0 + if(opened_positions[edit_job_target] >= 0) + time_last_changed_position = world.time / 10 + j.total_positions++ + opened_positions[edit_job_target]++ + + if("make_job_unavailable") + // MAKE JOB POSITION UNAVAILABLE FOR LATE JOINERS + if(scan && (access_change_ids in scan.access) && !target_dept) + var/edit_job_target = href_list["job"] + var/datum/job/j = SSjob.GetJob(edit_job_target) + if(!j) + return 0 + if(can_close_job(j) != 1) + return 0 + //Allow instant closing without cooldown if a position has been opened before + if(opened_positions[edit_job_target] <= 0) + time_last_changed_position = world.time / 10 + j.total_positions-- + opened_positions[edit_job_target]-- + + if ("print") + if (!( printing )) + printing = 1 + sleep(50) + var/obj/item/weapon/paper/P = new /obj/item/weapon/paper( loc ) + var/t1 = "Crew Manifest:
    " + for(var/datum/data/record/t in sortRecord(data_core.general)) + t1 += t.fields["name"] + " - " + t.fields["rank"] + "
    " + P.info = t1 + P.name = "paper- 'Crew Manifest'" + printing = null + if (modify) + modify.update_label() + updateUsrDialog() + return + +/obj/machinery/computer/card/proc/get_subordinates(rank) + for(var/datum/job/job in SSjob.occupations) + if(rank in job.department_head) + head_subordinates += job.title + +/obj/machinery/computer/card/centcom + name = "\improper Centcom identification console" + circuit = /obj/item/weapon/circuitboard/computer/card/centcom + req_access = list(access_cent_captain) + +/obj/machinery/computer/card/minor + name = "department management console" + desc = "You can use this to change ID's for specific departments." + icon_screen = "idminor" + circuit = /obj/item/weapon/circuitboard/computer/card/minor + +/obj/machinery/computer/card/minor/New() + ..() + var/obj/item/weapon/circuitboard/computer/card/minor/typed_circuit = circuit + if(target_dept) + typed_circuit.target_dept = target_dept + else + target_dept = typed_circuit.target_dept + var/list/dept_list = list("general","security","medical","science","engineering") + name = "[dept_list[target_dept]] department console" + +/obj/machinery/computer/card/minor/hos + target_dept = 2 + icon_screen = "idhos" + +/obj/machinery/computer/card/minor/cmo + target_dept = 3 + icon_screen = "idcmo" + +/obj/machinery/computer/card/minor/rd + target_dept = 4 + icon_screen = "idrd" + +/obj/machinery/computer/card/minor/ce + target_dept = 5 + icon_screen = "idce" diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm new file mode 100644 index 0000000..40f69c7 --- /dev/null +++ b/code/game/machinery/computer/cloning.dm @@ -0,0 +1,402 @@ + +/obj/machinery/computer/cloning + name = "cloning console" + desc = "Used to clone people and manage DNA." + icon_screen = "dna" + icon_keyboard = "med_key" + circuit = /obj/item/weapon/circuitboard/computer/cloning + req_access = list(access_heads) //Only used for record deletion right now. + var/obj/machinery/dna_scannernew/scanner = null //Linked scanner. For scanning. + var/obj/machinery/clonepod/pod1 = null //Linked cloning pod. + var/temp = "Inactive" + var/scantemp_ckey + var/scantemp = "Ready to Scan" + var/menu = 1 //Which menu screen to display + var/list/records = list() + var/datum/data/record/active_record = null + var/obj/item/weapon/disk/data/diskette = null //Mostly so the geneticist can steal everything. + var/loading = 0 // Nice loading text + var/autoprocess = 0 + +/obj/machinery/computer/cloning/New() + ..() + spawn(5) + updatemodules() + +/obj/machinery/computer/cloning/process() + if(!(scanner && pod1 && autoprocess)) + return + + if(!pod1.is_operational()) + return + + if(scanner.occupant && (scanner.scan_level > 2)) + scan_mob(scanner.occupant) + + if(!(pod1.occupant || pod1.mess) && (pod1.efficiency > 5)) + for(var/datum/data/record/R in records) + if(!(pod1.occupant || pod1.mess)) + if(pod1.growclone(R.fields["ckey"], R.fields["name"], R.fields["UI"], R.fields["SE"], R.fields["mind"], R.fields["mrace"], R.fields["features"], R.fields["factions"])) + records -= R + +/obj/machinery/computer/cloning/proc/updatemodules() + src.scanner = findscanner() + src.pod1 = findcloner() + + if (!isnull(src.pod1)) + src.pod1.connected = src // Some variable the pod needs + +/obj/machinery/computer/cloning/proc/findscanner() + var/obj/machinery/dna_scannernew/scannerf = null + + // Loop through every direction + for(dir in list(NORTH,EAST,SOUTH,WEST)) + + // Try to find a scanner in that direction + scannerf = locate(/obj/machinery/dna_scannernew, get_step(src, dir)) + + // If found and operational, return the scanner + if (!isnull(scannerf) && scannerf.is_operational()) + return scannerf + + // If no scanner was found, it will return null + return null + +/obj/machinery/computer/cloning/proc/findcloner() + var/obj/machinery/clonepod/podf = null + + for(dir in list(NORTH,EAST,SOUTH,WEST)) + + podf = locate(/obj/machinery/clonepod, get_step(src, dir)) + + if (!isnull(podf) && podf.is_operational()) + return podf + +/obj/machinery/computer/cloning/attackby(obj/item/W, mob/user, params) + if(istype(W, /obj/item/weapon/disk/data)) //INSERT SOME DISKETTES + if (!src.diskette) + if(!user.drop_item()) + return + W.loc = src + src.diskette = W + user << "You insert [W]." + src.updateUsrDialog() + else + return ..() + +/obj/machinery/computer/cloning/attack_hand(mob/user) + if(..()) + return + interact(user) + +/obj/machinery/computer/cloning/interact(mob/user) + user.set_machine(src) + add_fingerprint(user) + + if(..()) + return + + updatemodules() + + var/dat = "" + dat += "Refresh" + if(scanner && pod1 && ((scanner.scan_level > 2) || (pod1.efficiency > 5))) + if(!autoprocess) + dat += "Autoprocess" + else + dat += "Stop autoprocess" + else + dat += "Autoprocess" + dat += "

    Cloning Pod Status

    " + dat += "
    [temp] 
    " + + switch(src.menu) + if(1) + // Modules + if (isnull(src.scanner) || isnull(src.pod1)) + dat += "

    Modules

    " + //dat += "Reload Modules" + if (isnull(src.scanner)) + dat += "ERROR: No Scanner detected!
    " + if (isnull(src.pod1)) + dat += "ERROR: No Pod detected
    " + + // Scanner + if (!isnull(src.scanner)) + + dat += "

    Scanner Functions

    " + + dat += "
    " + if (!src.scanner.occupant) + dat += "Scanner Unoccupied" + else if(loading) + dat += "[src.scanner.occupant] => Scanning..." + else + if (src.scanner.occupant.ckey != scantemp_ckey) + scantemp = "Ready to Scan" + scantemp_ckey = src.scanner.occupant.ckey + dat += "[src.scanner.occupant] => [scantemp]" + dat += "
    " + + if (src.scanner.occupant) + dat += "Start Scan" + dat += "
    [src.scanner.locked ? "Unlock Scanner" : "Lock Scanner"]" + else + dat += "Start Scan" + + // Database + dat += "

    Database Functions

    " + if (src.records.len && src.records.len > 0) + dat += "View Records ([src.records.len])
    " + else + dat += "View Records (0)
    " + if (src.diskette) + dat += "Eject Disk
    " + + + + if(2) + dat += "

    Current records

    " + dat += "<< Back

    " + for(var/datum/data/record/R in records) + dat += "

    [R.fields["name"]]

    Scan ID [R.fields["id"]] View Record" + if(3) + dat += "

    Selected Record

    " + dat += "<< Back
    " + + if (!src.active_record) + dat += "Record not found." + else + dat += "

    [src.active_record.fields["name"]]

    " + dat += "Scan ID [src.active_record.fields["id"]] Clone
    " + + var/obj/item/weapon/implant/health/H = locate(src.active_record.fields["imp"]) + + if ((H) && (istype(H))) + dat += "Health Implant Data:
    [H.sensehealth()]

    " + else + dat += "Unable to locate Health Implant.

    " + + dat += "Unique Identifier:
    [src.active_record.fields["UI"]]
    " + dat += "Structural Enzymes:
    [src.active_record.fields["SE"]]
    " + + if(diskette && diskette.fields) + dat += "
    " + dat += "

    Inserted Disk

    " + dat += "Contents: " + var/list/L = list() + if(diskette.fields["UI"]) + L += "Unique Identifier" + if(diskette.fields["UE"] && diskette.fields["name"] && diskette.fields["blood_type"]) + L += "Unique Enzymes" + if(diskette.fields["SE"]) + L += "Structural Enzymes" + dat += english_list(L, "Empty", " + ", " + ") + dat += "
    Load from Disk" + + dat += "
    Save to Disk" + dat += "
    " + + dat += "Delete Record" + + if(4) + if (!src.active_record) + src.menu = 2 + dat = "[src.temp]
    " + dat += "

    Confirm Record Deletion

    " + + dat += "Scan card to confirm.
    " + dat += "Cancel" + + + //user << browse(dat, "window=cloning") + //onclose(user, "cloning") + var/datum/browser/popup = new(user, "cloning", "Cloning System Control") + popup.set_content(dat) + popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) + popup.open() + +/obj/machinery/computer/cloning/Topic(href, href_list) + if(..()) + return + + if(loading) + return + + if(href_list["task"]) + switch(href_list["task"]) + if("autoprocess") + autoprocess = 1 + if("stopautoprocess") + autoprocess = 0 + + else if ((href_list["scan"]) && !isnull(scanner) && scanner.is_operational()) + scantemp = "" + + loading = 1 + src.updateUsrDialog() + + spawn(20) + src.scan_mob(scanner.occupant) + + loading = 0 + src.updateUsrDialog() + + + //No locking an open scanner. + else if ((href_list["lock"]) && !isnull(scanner) && scanner.is_operational()) + if ((!scanner.locked) && (scanner.occupant)) + scanner.locked = 1 + else + scanner.locked = 0 + + else if(href_list["view_rec"]) + src.active_record = find_record("id", href_list["view_rec"], records) + if(active_record) + if(!active_record.fields["ckey"]) + records -= active_record + active_record = null + src.temp = "Record Corrupt" + else + src.menu = 3 + else + src.temp = "Record missing." + + else if (href_list["del_rec"]) + if ((!src.active_record) || (src.menu < 3)) + return + if (src.menu == 3) //If we are viewing a record, confirm deletion + src.temp = "Delete record?" + src.menu = 4 + + else if (src.menu == 4) + var/obj/item/weapon/card/id/C = usr.get_active_held_item() + if (istype(C)||istype(C, /obj/item/device/pda)) + if(src.check_access(C)) + src.temp = "[src.active_record.fields["name"]] => Record deleted." + src.records.Remove(active_record) + active_record = null + src.menu = 2 + else + src.temp = "Access Denied." + + else if (href_list["disk"]) //Load or eject. + switch(href_list["disk"]) + if("load") + if (!diskette || !istype(diskette.fields) || !diskette.fields["name"] || !diskette.fields) + src.temp = "Load error." + src.updateUsrDialog() + return + if (!src.active_record) + src.temp = "Record error." + src.menu = 1 + src.updateUsrDialog() + return + + for(var/key in diskette.fields) + src.active_record.fields[key] = diskette.fields[key] + src.temp = "Load successful." + + if("eject") + if(src.diskette) + src.diskette.loc = src.loc + src.diskette = null + if("save") + if(!diskette || diskette.read_only || !active_record || !active_record.fields) + src.temp = "Save error." + src.updateUsrDialog() + return + + diskette.fields = active_record.fields.Copy() + diskette.name = "data disk - '[src.diskette.fields["name"]]'" + src.temp = "Save successful." + + else if (href_list["refresh"]) + src.updateUsrDialog() + + else if (href_list["clone"]) + var/datum/data/record/C = find_record("id", href_list["clone"], records) + //Look for that player! They better be dead! + if(C) + //Can't clone without someone to clone. Or a pod. Or if the pod is busy. Or full of gibs. + if(!pod1) + temp = "No Clonepod detected." + else if(pod1.occupant) + temp = "Clonepod is currently occupied." + else if(pod1.mess) + temp = "Clonepod malfunction." + else if(!config.revival_cloning) + temp = "Unable to initiate cloning cycle." + else if(pod1.growclone(C.fields["ckey"], C.fields["name"], C.fields["UI"], C.fields["SE"], C.fields["mind"], C.fields["mrace"], C.fields["features"], C.fields["factions"])) + temp = "[C.fields["name"]] => Cloning cycle in progress..." + records.Remove(C) + if(active_record == C) + active_record = null + menu = 1 + else + temp = "[C.fields["name"]] => Initialisation failure." + + else + temp = "Data corruption." + + else if (href_list["menu"]) + src.menu = text2num(href_list["menu"]) + + src.add_fingerprint(usr) + src.updateUsrDialog() + return + +/obj/machinery/computer/cloning/proc/scan_mob(mob/living/carbon/human/subject) + if (!istype(subject)) + scantemp = "Unable to locate valid genetic data." + return + if (!subject.getorgan(/obj/item/organ/brain)) + scantemp = "No signs of intelligence detected." + return + if (subject.suiciding == 1 || subject.hellbound) + scantemp = "Subject's brain is not responding to scanning stimuli." + return + if ((subject.disabilities & NOCLONE) && (src.scanner.scan_level < 2)) + scantemp = "Subject no longer contains the fundamental materials required to create a living clone." + return + if ((!subject.ckey) || (!subject.client)) + scantemp = "Mental interface failure." + return + if (find_record("ckey", subject.ckey, records)) + scantemp = "Subject already in database." + return + + var/datum/data/record/R = new() + if(subject.dna.species) + // We store the instance rather than the path, because some + // species (abductors, slimepeople) store state in their + // species datums + R.fields["mrace"] = subject.dna.species + else + var/datum/species/rando_race = pick(config.roundstart_races) + R.fields["mrace"] = rando_race.type + R.fields["ckey"] = subject.ckey + R.fields["name"] = subject.real_name + R.fields["id"] = copytext(md5(subject.real_name), 2, 6) + R.fields["UE"] = subject.dna.unique_enzymes + R.fields["UI"] = subject.dna.uni_identity + R.fields["SE"] = subject.dna.struc_enzymes + R.fields["blood_type"] = subject.dna.blood_type + R.fields["features"] = subject.dna.features + R.fields["factions"] = subject.faction + + //Add an implant if needed + var/obj/item/weapon/implant/health/imp + for(var/obj/item/weapon/implant/health/HI in subject.implants) + imp = HI + break + if(!imp) + imp = new /obj/item/weapon/implant/health(subject) + imp.implant(subject) + R.fields["imp"] = "\ref[imp]" + + if (!isnull(subject.mind)) //Save that mind so traitors can continue traitoring after cloning. + R.fields["mind"] = "\ref[subject.mind]" + + src.records += R + scantemp = "Subject successfully scanned." diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm new file mode 100644 index 0000000..168729a --- /dev/null +++ b/code/game/machinery/computer/communications.dm @@ -0,0 +1,633 @@ +//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 + +var/const/CALL_SHUTTLE_REASON_LENGTH = 12 + +// The communications computer +/obj/machinery/computer/communications + name = "communications console" + desc = "This can be used for various important functions. Still under developement." + icon_screen = "comm" + icon_keyboard = "tech_key" + req_access = list(access_heads) + circuit = /obj/item/weapon/circuitboard/computer/communications + var/authenticated = 0 + var/auth_id = "Unknown" //Who is currently logged in? + var/list/messagetitle = list() + var/list/messagetext = list() + var/currmsg = 0 + var/aicurrmsg = 0 + var/state = STATE_DEFAULT + var/aistate = STATE_DEFAULT + var/message_cooldown = 0 + var/ai_message_cooldown = 0 + var/tmp_alertlevel = 0 + var/const/STATE_DEFAULT = 1 + var/const/STATE_CALLSHUTTLE = 2 + var/const/STATE_CANCELSHUTTLE = 3 + var/const/STATE_MESSAGELIST = 4 + var/const/STATE_VIEWMESSAGE = 5 + var/const/STATE_DELMESSAGE = 6 + var/const/STATE_STATUSDISPLAY = 7 + var/const/STATE_ALERT_LEVEL = 8 + var/const/STATE_CONFIRM_LEVEL = 9 + var/const/STATE_TOGGLE_EMERGENCY = 10 + var/const/COMMUNICATION_COOLDOWN = 600 + var/const/COMMUNICATION_COOLDOWN_AI = 600 + + var/status_display_freq = "1435" + var/stat_msg1 + var/stat_msg2 + + +/obj/machinery/computer/communications/New() + shuttle_caller_list += src + ..() + +/obj/machinery/computer/communications/process() + if(..()) + if(state != STATE_STATUSDISPLAY) + src.updateDialog() + + +/obj/machinery/computer/communications/Topic(href, href_list) + if(..()) + return + if (src.z > ZLEVEL_CENTCOM) //Can only use on centcom and SS13 + usr << "Unable to establish a connection: \black You're too far away from the station!" + return + usr.set_machine(src) + + if(!href_list["operation"]) + return + var/obj/item/weapon/circuitboard/computer/communications/CM = circuit + switch(href_list["operation"]) + // main interface + if("main") + src.state = STATE_DEFAULT + if("login") + var/mob/M = usr + var/obj/item/weapon/card/id/I = M.get_active_held_item() + if (istype(I, /obj/item/device/pda)) + var/obj/item/device/pda/pda = I + I = pda.id + if (I && istype(I)) + if(src.check_access(I)) + authenticated = 1 + auth_id = "[I.registered_name] ([I.assignment])" + if((20 in I.access)) + authenticated = 2 + if(src.emagged) + authenticated = 2 + auth_id = "Unknown" + if("logout") + authenticated = 0 + + if("swipeidseclevel") + var/mob/M = usr + var/obj/item/weapon/card/id/I = M.get_active_held_item() + if (istype(I, /obj/item/device/pda)) + var/obj/item/device/pda/pda = I + I = pda.id + if (I && istype(I)) + if(access_captain in I.access) + var/old_level = security_level + if(!tmp_alertlevel) tmp_alertlevel = SEC_LEVEL_GREEN + if(tmp_alertlevel < SEC_LEVEL_GREEN) tmp_alertlevel = SEC_LEVEL_GREEN + if(tmp_alertlevel > SEC_LEVEL_BLUE) tmp_alertlevel = SEC_LEVEL_BLUE //Cannot engage delta with this + set_security_level(tmp_alertlevel) + if(security_level != old_level) + //Only notify the admins if an actual change happened + log_game("[key_name(usr)] has changed the security level to [get_security_level()].") + message_admins("[key_name_admin(usr)] has changed the security level to [get_security_level()].") + switch(security_level) + if(SEC_LEVEL_GREEN) + feedback_inc("alert_comms_green",1) + if(SEC_LEVEL_BLUE) + feedback_inc("alert_comms_blue",1) + tmp_alertlevel = 0 + else: + usr << "You are not authorized to do this!" + tmp_alertlevel = 0 + state = STATE_DEFAULT + else + usr << "You need to swipe your ID!" + + if("announce") + if(src.authenticated==2) + make_announcement(usr) + + if("crossserver") + if(authenticated==2) + if(CM.lastTimeUsed + 600 > world.time) + usr << "Arrays recycling. Please stand by." + return + var/input = stripped_multiline_input(usr, "Please choose a message to transmit to an allied station. Please be aware that this process is very expensive, and abuse will lead to... termination.", "Send a message to an allied station.", "") + if(!input || !(usr in view(1,src))) + return + send2otherserver("[station_name()]", input,"Comms_Console") + minor_announce(input, title = "Outgoing message to allied station") + log_say("[key_name(usr)] has sent a message to the other server: [input]") + message_admins("[key_name_admin(usr)] has sent a message to the other server.") + CM.lastTimeUsed = world.time + + if("callshuttle") + src.state = STATE_DEFAULT + if(src.authenticated) + src.state = STATE_CALLSHUTTLE + if("callshuttle2") + if(src.authenticated) + SSshuttle.requestEvac(usr, href_list["call"]) + if(SSshuttle.emergency.timer) + post_status("shuttle") + src.state = STATE_DEFAULT + if("cancelshuttle") + src.state = STATE_DEFAULT + if(src.authenticated) + src.state = STATE_CANCELSHUTTLE + if("cancelshuttle2") + if(src.authenticated) + SSshuttle.cancelEvac(usr) + src.state = STATE_DEFAULT + if("messagelist") + src.currmsg = 0 + src.state = STATE_MESSAGELIST + if("viewmessage") + src.state = STATE_VIEWMESSAGE + if (!src.currmsg) + if(href_list["message-num"]) + src.currmsg = text2num(href_list["message-num"]) + else + src.state = STATE_MESSAGELIST + if("delmessage") + src.state = (src.currmsg) ? STATE_DELMESSAGE : STATE_MESSAGELIST + if("delmessage2") + if(src.authenticated) + if(src.currmsg) + var/title = src.messagetitle[src.currmsg] + var/text = src.messagetext[src.currmsg] + src.messagetitle.Remove(title) + src.messagetext.Remove(text) + if(src.currmsg == src.aicurrmsg) + src.aicurrmsg = 0 + src.currmsg = 0 + src.state = STATE_MESSAGELIST + else + src.state = STATE_VIEWMESSAGE + if("status") + src.state = STATE_STATUSDISPLAY + + if("securitylevel") + src.tmp_alertlevel = text2num( href_list["newalertlevel"] ) + if(!tmp_alertlevel) tmp_alertlevel = 0 + state = STATE_CONFIRM_LEVEL + if("changeseclevel") + state = STATE_ALERT_LEVEL + + if("emergencyaccess") + state = STATE_TOGGLE_EMERGENCY + if("enableemergency") + make_maint_all_access() + log_game("[key_name(usr)] enabled emergency maintenance access.") + message_admins("[key_name_admin(usr)] enabled emergency maintenance access.") + src.state = STATE_DEFAULT + if("disableemergency") + revoke_maint_all_access() + log_game("[key_name(usr)] disabled emergency maintenance access.") + message_admins("[key_name_admin(usr)] disabled emergency maintenance access.") + src.state = STATE_DEFAULT + + // Status display stuff + if("setstat") + switch(href_list["statdisp"]) + if("message") + post_status("message", stat_msg1, stat_msg2) + if("alert") + post_status("alert", href_list["alert"]) + else + post_status(href_list["statdisp"]) + + if("setmsg1") + stat_msg1 = reject_bad_text(input("Line 1", "Enter Message Text", stat_msg1) as text|null, 40) + src.updateDialog() + if("setmsg2") + stat_msg2 = reject_bad_text(input("Line 2", "Enter Message Text", stat_msg2) as text|null, 40) + src.updateDialog() + + // OMG CENTCOM LETTERHEAD + if("MessageCentcomm") + if(src.authenticated==2) + if(CM.lastTimeUsed + 600 > world.time) + usr << "Arrays recycling. Please stand by." + return + var/input = stripped_input(usr, "Please choose a message to transmit to Centcom via quantum entanglement. Please be aware that this process is very expensive, and abuse will lead to... termination. Transmission does not guarantee a response.", "Send a message to Centcomm.", "") + if(!input || !(usr in view(1,src))) + return + Centcomm_announce(input, usr) + usr << "Message transmitted." + log_say("[key_name(usr)] has made a Centcom announcement: [input]") + CM.lastTimeUsed = world.time + + + // OMG SYNDICATE ...LETTERHEAD + if("MessageSyndicate") + if((src.authenticated==2) && (src.emagged)) + if(CM.lastTimeUsed + 600 > world.time) + usr << "Arrays recycling. Please stand by." + return + var/input = stripped_input(usr, "Please choose a message to transmit to \[ABNORMAL ROUTING COORDINATES\] via quantum entanglement. Please be aware that this process is very expensive, and abuse will lead to... termination. Transmission does not guarantee a response.", "Send a message to /??????/.", "") + if(!input || !(usr in view(1,src))) + return + Syndicate_announce(input, usr) + usr << "Message transmitted." + log_say("[key_name(usr)] has made a Syndicate announcement: [input]") + CM.lastTimeUsed = world.time + + if("RestoreBackup") + usr << "Backup routing data restored!" + src.emagged = 0 + src.updateDialog() + + if("nukerequest") //When there's no other way + if(src.authenticated==2) + if(CM.lastTimeUsed + 600 > world.time) + usr << "Arrays recycling. Please stand by." + return + var/input = stripped_input(usr, "Please enter the reason for requesting the nuclear self-destruct codes. Misuse of the nuclear request system will not be tolerated under any circumstances. Transmission does not guarantee a response.", "Self Destruct Code Request.","") + if(!input || !(usr in view(1,src))) + return + Nuke_request(input, usr) + usr << "Request sent." + log_say("[key_name(usr)] has requested the nuclear codes from Centcomm") + priority_announce("The codes for the on-station nuclear self-destruct have been requested by [usr]. Confirmation or denial of this request will be sent shortly.", "Nuclear Self Destruct Codes Requested",'sound/AI/commandreport.ogg') + CM.lastTimeUsed = world.time + + + // AI interface + if("ai-main") + src.aicurrmsg = 0 + src.aistate = STATE_DEFAULT + if("ai-callshuttle") + src.aistate = STATE_CALLSHUTTLE + if("ai-callshuttle2") + SSshuttle.requestEvac(usr, href_list["call"]) + src.aistate = STATE_DEFAULT + if("ai-messagelist") + src.aicurrmsg = 0 + src.aistate = STATE_MESSAGELIST + if("ai-viewmessage") + src.aistate = STATE_VIEWMESSAGE + if (!src.aicurrmsg) + if(href_list["message-num"]) + src.aicurrmsg = text2num(href_list["message-num"]) + else + src.aistate = STATE_MESSAGELIST + if("ai-delmessage") + src.aistate = (src.aicurrmsg) ? STATE_DELMESSAGE : STATE_MESSAGELIST + if("ai-delmessage2") + if(src.aicurrmsg) + var/title = src.messagetitle[src.aicurrmsg] + var/text = src.messagetext[src.aicurrmsg] + src.messagetitle.Remove(title) + src.messagetext.Remove(text) + if(src.currmsg == src.aicurrmsg) + src.currmsg = 0 + src.aicurrmsg = 0 + src.aistate = STATE_MESSAGELIST + if("ai-status") + src.aistate = STATE_STATUSDISPLAY + if("ai-announce") + make_announcement(usr, 1) + if("ai-securitylevel") + src.tmp_alertlevel = text2num( href_list["newalertlevel"] ) + if(!tmp_alertlevel) tmp_alertlevel = 0 + var/old_level = security_level + if(!tmp_alertlevel) tmp_alertlevel = SEC_LEVEL_GREEN + if(tmp_alertlevel < SEC_LEVEL_GREEN) tmp_alertlevel = SEC_LEVEL_GREEN + if(tmp_alertlevel > SEC_LEVEL_BLUE) tmp_alertlevel = SEC_LEVEL_BLUE //Cannot engage delta with this + set_security_level(tmp_alertlevel) + if(security_level != old_level) + //Only notify the admins if an actual change happened + log_game("[key_name(usr)] has changed the security level to [get_security_level()].") + message_admins("[key_name_admin(usr)] has changed the security level to [get_security_level()].") + switch(security_level) + if(SEC_LEVEL_GREEN) + feedback_inc("alert_comms_green",1) + if(SEC_LEVEL_BLUE) + feedback_inc("alert_comms_blue",1) + tmp_alertlevel = 0 + src.aistate = STATE_DEFAULT + if("ai-changeseclevel") + src.aistate = STATE_ALERT_LEVEL + + if("ai-emergencyaccess") + src.aistate = STATE_TOGGLE_EMERGENCY + if("ai-enableemergency") + make_maint_all_access() + log_game("[key_name(usr)] enabled emergency maintenance access.") + message_admins("[key_name_admin(usr)] enabled emergency maintenance access.") + src.aistate = STATE_DEFAULT + if("ai-disableemergency") + revoke_maint_all_access() + log_game("[key_name(usr)] disabled emergency maintenance access.") + message_admins("[key_name_admin(usr)] disabled emergency maintenance access.") + src.aistate = STATE_DEFAULT + + src.updateUsrDialog() + +/obj/machinery/computer/communications/attackby(obj/I, mob/user, params) + if(istype(I, /obj/item/weapon/card/id)) + attack_hand(user) + else + return ..() + +/obj/machinery/computer/communications/emag_act(mob/user) + if(!emagged) + src.emagged = 1 + if(authenticated == 1) + authenticated = 2 + user << "You scramble the communication routing circuits." + +/obj/machinery/computer/communications/attack_hand(mob/user) + if(..()) + return + if (src.z > 6) + user << "Unable to establish a connection: \black You're too far away from the station!" + return + + user.set_machine(src) + var/dat = "" + if(SSshuttle.emergency.mode == SHUTTLE_CALL) + var/timeleft = SSshuttle.emergency.timeLeft() + dat += "Emergency shuttle\n
    \nETA: [timeleft / 60 % 60]:[add_zero(num2text(timeleft % 60), 2)]" + + + var/datum/browser/popup = new(user, "communications", "Communications Console", 400, 500) + popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) + + if(issilicon(user)) + var/dat2 = src.interact_ai(user) // give the AI a different interact proc to limit its access + if(dat2) + dat += dat2 + //user << browse(dat, "window=communications;size=400x500") + //onclose(user, "communications") + + popup.set_content(dat) + popup.open() + return + + switch(src.state) + if(STATE_DEFAULT) + if (src.authenticated) + if(SSshuttle.emergencyLastCallLoc) + dat += "
    Most recent shuttle call/recall traced to: [format_text(SSshuttle.emergencyLastCallLoc.name)]" + else + dat += "
    Unable to trace most recent shuttle call/recall signal." + dat += "
    Logged in as: [auth_id]" + dat += "
    " + dat += "
    \[ Log Out \]
    " + dat += "
    General Functions" + dat += "
    \[ Message List \]" + switch(SSshuttle.emergency.mode) + if(SHUTTLE_IDLE, SHUTTLE_RECALL) + dat += "
    \[ Call Emergency Shuttle \]" + else + dat += "
    \[ Cancel Shuttle Call \]" + + dat += "
    \[ Set Status Display \]" + if (src.authenticated==2) + dat += "

    Captain Functions" + dat += "
    \[ Make a Captain's Announcement \]" + if(cross_allowed) + dat += "
    \[ Send a message to an allied station \]" + dat += "
    \[ Change Alert Level \]" + dat += "
    \[ Emergency Maintenance Access \]" + dat += "
    \[ Request Nuclear Authentication Codes \]" + if(src.emagged == 0) + dat += "
    \[ Send Message to Centcom \]" + else + dat += "
    \[ Send Message to \[UNKNOWN\] \]" + dat += "
    \[ Restore Backup Routing Data \]" + else + dat += "
    \[ Log In \]" + if(STATE_CALLSHUTTLE) + dat += get_call_shuttle_form() + if(STATE_CANCELSHUTTLE) + dat += get_cancel_shuttle_form() + if(STATE_MESSAGELIST) + dat += "Messages:" + for(var/i = 1; i<=src.messagetitle.len; i++) + dat += "
    [src.messagetitle[i]]" + if(STATE_VIEWMESSAGE) + if (src.currmsg) + dat += "[src.messagetitle[src.currmsg]]

    [src.messagetext[src.currmsg]]" + if (src.authenticated) + dat += "

    \[ Delete \]" + else + src.state = STATE_MESSAGELIST + src.attack_hand(user) + return + if(STATE_DELMESSAGE) + if (src.currmsg) + dat += "Are you sure you want to delete this message? \[ OK | Cancel \]" + else + src.state = STATE_MESSAGELIST + src.attack_hand(user) + return + if(STATE_STATUSDISPLAY) + dat += "Set Status Displays
    " + dat += "\[ Clear \]
    " + dat += "\[ Shuttle ETA \]
    " + dat += "\[ Message \]" + dat += "
    " + dat += "\[ Alert: None |" + dat += " Red Alert |" + dat += " Lockdown |" + dat += " Biohazard \]

    " + if(STATE_ALERT_LEVEL) + dat += "Current alert level: [get_security_level()]
    " + if(security_level == SEC_LEVEL_DELTA) + dat += "The self-destruct mechanism is active. Find a way to deactivate the mechanism to lower the alert level or evacuate." + else + dat += "Blue
    " + dat += "Green" + if(STATE_CONFIRM_LEVEL) + dat += "Current alert level: [get_security_level()]
    " + dat += "Confirm the change to: [num2seclevel(tmp_alertlevel)]
    " + dat += "Swipe ID to confirm change.
    " + if(STATE_TOGGLE_EMERGENCY) + if(emergency_access == 1) + dat += "Emergency Maintenance Access is currently ENABLED" + dat += "
    Restore maintenance access restrictions?
    \[ OK | Cancel \]" + else + dat += "Emergency Maintenance Access is currently DISABLED" + dat += "
    Lift access restrictions on maintenance and external airlocks?
    \[ OK | Cancel \]" + + dat += "

    \[ [(src.state != STATE_DEFAULT) ? "Main Menu | " : ""]Close \]" + //user << browse(dat, "window=communications;size=400x500") + //onclose(user, "communications") + popup.set_content(dat) + popup.open() + +/obj/machinery/computer/communications/proc/get_javascript_header(form_id) + var/dat = {""} + return dat + +/obj/machinery/computer/communications/proc/get_call_shuttle_form(ai_interface = 0) + var/form_id = "callshuttle" + var/dat = get_javascript_header(form_id) + dat += "
    " + dat += "" + dat += "" + dat += "Nature of emergency:
    " + dat += "
    Are you sure you want to call the shuttle? \[ Call \]" + return dat + +/obj/machinery/computer/communications/proc/get_cancel_shuttle_form() + var/form_id = "cancelshuttle" + var/dat = get_javascript_header(form_id) + dat += "" + dat += "" + dat += "" + + dat += "
    Are you sure you want to cancel the shuttle? \[ Cancel \]" + return dat + +/obj/machinery/computer/communications/proc/interact_ai(mob/living/silicon/ai/user) + var/dat = "" + switch(src.aistate) + if(STATE_DEFAULT) + if(SSshuttle.emergencyLastCallLoc) + dat += "
    Latest emergency signal trace attempt successful.
    Last signal origin: [format_text(SSshuttle.emergencyLastCallLoc.name)].
    " + else + dat += "
    Latest emergency signal trace attempt failed.
    " + if(authenticated) + dat += "Current login: [auth_id]" + else + dat += "Current login: None" + dat += "

    General Functions" + dat += "
    \[ Message List \]" + if(SSshuttle.emergency.mode == SHUTTLE_IDLE) + dat += "
    \[ Call Emergency Shuttle \]" + dat += "
    \[ Set Status Display \]" + dat += "

    Special Functions" + dat += "
    \[ Make an Announcement \]" + dat += "
    \[ Change Alert Level \]" + dat += "
    \[ Emergency Maintenance Access \]" + if(STATE_CALLSHUTTLE) + dat += get_call_shuttle_form(1) + if(STATE_MESSAGELIST) + dat += "Messages:" + for(var/i = 1; i<=src.messagetitle.len; i++) + dat += "
    [src.messagetitle[i]]" + if(STATE_VIEWMESSAGE) + if (src.aicurrmsg) + dat += "[src.messagetitle[src.aicurrmsg]]

    [src.messagetext[src.aicurrmsg]]" + dat += "

    \[ Delete \]" + else + src.aistate = STATE_MESSAGELIST + src.attack_hand(user) + return null + if(STATE_DELMESSAGE) + if(src.aicurrmsg) + dat += "Are you sure you want to delete this message? \[ OK | Cancel \]" + else + src.aistate = STATE_MESSAGELIST + src.attack_hand(user) + return + + if(STATE_STATUSDISPLAY) + dat += "Set Status Displays
    " + dat += "\[ Clear \]
    " + dat += "\[ Shuttle ETA \]
    " + dat += "\[ Message \]" + dat += "
    " + dat += "\[ Alert: None |" + dat += " Red Alert |" + dat += " Lockdown |" + dat += " Biohazard \]

    " + + if(STATE_ALERT_LEVEL) + dat += "Current alert level: [get_security_level()]
    " + if(security_level == SEC_LEVEL_DELTA) + dat += "The self-destruct mechanism is active. Find a way to deactivate the mechanism to lower the alert level or evacuate." + else + dat += "Blue
    " + dat += "Green" + + if(STATE_TOGGLE_EMERGENCY) + if(emergency_access == 1) + dat += "Emergency Maintenance Access is currently ENABLED" + dat += "
    Restore maintenance access restrictions?
    \[ OK | Cancel \]" + else + dat += "Emergency Maintenance Access is currently DISABLED" + dat += "
    Lift access restrictions on maintenance and external airlocks?
    \[ OK | Cancel \]" + + dat += "

    \[ [(src.aistate != STATE_DEFAULT) ? "Main Menu | " : ""]Close \]" + return dat + +/obj/machinery/computer/communications/proc/make_announcement(mob/living/user, is_silicon) + if((is_silicon && ai_message_cooldown > world.time) || (!is_silicon && message_cooldown > world.time)) + user << "Intercomms recharging. Please stand by." + return + var/input = stripped_input(user, "Please choose a message to announce to the station crew.", "What?") + if(!input || !user.canUseTopic(src)) + return + if(is_silicon) + if(ai_message_cooldown > world.time) + return + minor_announce(input,"[user.name] Announces:") + ai_message_cooldown = world.time + COMMUNICATION_COOLDOWN_AI + else + if(message_cooldown > world.time) + return + priority_announce(html_decode(input), null, 'sound/misc/announce.ogg', "Captain") + message_cooldown = world.time + COMMUNICATION_COOLDOWN + log_say("[key_name(user)] has made a priority announcement: [input]") + message_admins("[key_name_admin(user)] has made a priority announcement.") + + + +/obj/machinery/computer/communications/proc/post_status(command, data1, data2) + + var/datum/radio_frequency/frequency = SSradio.return_frequency(1435) + + if(!frequency) return + + var/datum/signal/status_signal = new + status_signal.source = src + status_signal.transmission_method = 1 + status_signal.data["command"] = command + + switch(command) + if("message") + status_signal.data["msg1"] = data1 + status_signal.data["msg2"] = data2 + if("alert") + status_signal.data["picture_state"] = data1 + + frequency.post_signal(src, status_signal) + + +/obj/machinery/computer/communications/Destroy() + shuttle_caller_list -= src + SSshuttle.autoEvac() + return ..() + +/obj/machinery/computer/communications/proc/overrideCooldown() + var/obj/item/weapon/circuitboard/computer/communications/CM = circuit + CM.lastTimeUsed = 0 diff --git a/code/game/machinery/computer/computer.dm b/code/game/machinery/computer/computer.dm new file mode 100644 index 0000000..05d8022 --- /dev/null +++ b/code/game/machinery/computer/computer.dm @@ -0,0 +1,145 @@ +/obj/machinery/computer + name = "computer" + icon = 'icons/obj/computer.dmi' + icon_state = "computer" + density = 1 + anchored = 1 + use_power = 1 + idle_power_usage = 300 + active_power_usage = 300 + obj_integrity = 200 + max_integrity = 200 + integrity_failure = 100 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 40, acid = 20) + var/obj/item/weapon/circuitboard/computer/circuit = null // if circuit==null, computer can't disassembly + var/processing = 0 + var/brightness_on = 2 + var/icon_keyboard = "generic_key" + var/icon_screen = "generic" + var/clockwork = FALSE + +/obj/machinery/computer/New(location, obj/item/weapon/circuitboard/C) + ..(location) + if(C && istype(C)) + circuit = C + //Some machines, oldcode arcades mostly, new themselves, so circuit + //can already be an instance of a type and trying to new that will + //cause a runtime + else if(ispath(circuit)) + circuit = new circuit(null) + power_change() + update_icon() + +/obj/machinery/computer/Destroy() + if(circuit) + qdel(circuit) + circuit = null + return ..() + +/obj/machinery/computer/initialize() + power_change() + +/obj/machinery/computer/process() + if(stat & (NOPOWER|BROKEN)) + return 0 + return 1 + +/obj/machinery/computer/ratvar_act() + if(!clockwork) + clockwork = TRUE + icon_screen = "ratvar[rand(1, 4)]" + icon_keyboard = "ratvar_key[rand(1, 6)]" + icon_state = "ratvarcomputer[rand(1, 4)]" + update_icon() + +/obj/machinery/computer/narsie_act() + if(clockwork && clockwork != initial(clockwork) && prob(20)) //if it's clockwork but isn't normally clockwork + clockwork = FALSE + icon_screen = initial(icon_screen) + icon_keyboard = initial(icon_keyboard) + icon_state = initial(icon_state) + update_icon() + +/obj/machinery/computer/update_icon() + cut_overlays() + if(stat & NOPOWER) + add_overlay("[icon_keyboard]_off") + return + add_overlay(icon_keyboard) + if(stat & BROKEN) + add_overlay("[icon_state]_broken") + else + add_overlay(icon_screen) + +/obj/machinery/computer/power_change() + ..() + if(stat & NOPOWER) + SetLuminosity(0) + else + SetLuminosity(brightness_on) + update_icon() + return + +/obj/machinery/computer/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/screwdriver) && circuit && !(flags&NODECONSTRUCT)) + playsound(src.loc, I.usesound, 50, 1) + user << " You start to disconnect the monitor..." + if(do_after(user, 20/I.toolspeed, target = src)) + deconstruct(TRUE, user) + else + return ..() + +/obj/machinery/computer/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) + switch(damage_type) + if(BRUTE) + if(stat & BROKEN) + playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1) + else + playsound(src.loc, 'sound/effects/Glasshit.ogg', 75, 1) + if(BURN) + playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) + +/obj/machinery/computer/obj_break(damage_flag) + if(circuit && !(flags & NODECONSTRUCT)) //no circuit, no breaking + if(!(stat & BROKEN)) + playsound(loc, 'sound/effects/Glassbr3.ogg', 100, 1) + stat |= BROKEN + update_icon() + +/obj/machinery/computer/emp_act(severity) + switch(severity) + if(1) + if(prob(50)) + obj_break("energy") + if(2) + if(prob(10)) + obj_break("energy") + ..() + + +/obj/machinery/computer/deconstruct(disassembled = TRUE, mob/user) + on_deconstruction() + if(!(flags & NODECONSTRUCT)) + if(circuit) //no circuit, no computer frame + var/obj/structure/frame/computer/A = new /obj/structure/frame/computer(src.loc) + A.circuit = circuit + A.anchored = 1 + if(stat & BROKEN) + if(user) + user << "The broken glass falls out." + else + playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1) + new /obj/item/weapon/shard(src.loc) + new /obj/item/weapon/shard(src.loc) + A.state = 3 + A.icon_state = "3" + else + if(user) + user << "You disconnect the monitor." + A.state = 4 + A.icon_state = "4" + circuit = null + for(var/obj/C in src) + C.forceMove(loc) + + qdel(src) diff --git a/code/game/machinery/computer/crew.css b/code/game/machinery/computer/crew.css new file mode 100644 index 0000000..2ebb2e2 --- /dev/null +++ b/code/game/machinery/computer/crew.css @@ -0,0 +1,154 @@ +body +{ + padding-left: 53%; + cursor: default; +} + +#ntbgcenter +{ + background-position: 550px 0px !important; +} + +#minimap +{ + position: fixed; + top: 8px; + left: 8px; + border: 2px inset #888; + overflow: hidden; + min-width: 480px; + min-height: 480px; + width: 53%; + height: 100%; + max-width: 480px; + max-height: 480px; +} + +#textbased +{ + width: 100%; + padding-left: 20px; +} + +#textbased table +{ + min-width: 380px; + width: 100%; + table-layout: fixed; +} + +#textbased td +{ + vertical-align: top; + padding: 2px; +} + +#textbased tbody td +{ + transition: .2s all; +} + +#textbased tbody tr:hover td, #textbased tbody tr.hover td +{ + background-color: #515151; +} + +#textarea:after +{ + content: ""; + clear: both; +} + +.health +{ + width: 16px; + height: 16px; + background-color: #FFF; + border: 1px solid #434343; + position: relative; + top: 2px; +} + +.health-5 { background-color: #17d568; } +.health-4 { background-color: #2ecc71; } +.health-3 { background-color: #e67e22; } +.health-2 { background-color: #ed5100; } +.health-1 { background-color: #e74c3c; } +.health-0 { background-color: #ed2814; } + +.health > div +{ + margin-left: 20px; + margin-top: -4px; +} + +.tt +{ + position: relative; + display: inline-block; + height: 16px; +} + +.tt > div +{ + display: none; +} + +.tt:hover > div +{ + position: absolute; + bottom: -30px; + left: 50%; + margin-left: -64px; + + display: block; + width: 128px; + height: 24px; + border: 1px solid #313131; + background-color: #434343; + padding: 4px; + z-index: 999; + text-align: center; +} + +.tt > div > span +{ + position: relative; + top: -2px; +} + +.dot +{ + position: absolute; + width: 3px; + height: 3px; + margin-top: 0px; + margin-left: 0px; + border: 1px solid transparent; +} + +.dot.active +{ + z-index: 9999 !important; + width: 8px; + height: 8px; + margin-top: -2px; + margin-left: -3px; +} + +.zoom +{ + position: fixed; + left: 53%; + top: 10px; + display: block; + width: 24px; + height: 24px; + text-align: center; + margin-left: 20px !important; +} + +.zoom.in +{ + margin-left: -3px !important; +} \ No newline at end of file diff --git a/code/game/machinery/computer/crew.dm b/code/game/machinery/computer/crew.dm new file mode 100644 index 0000000..4e27ef6 --- /dev/null +++ b/code/game/machinery/computer/crew.dm @@ -0,0 +1,268 @@ +/obj/machinery/computer/crew + name = "crew monitoring console" + desc = "Used to monitor active health sensors built into most of the crew's uniforms." + icon_screen = "crew" + icon_keyboard = "med_key" + use_power = 1 + idle_power_usage = 250 + active_power_usage = 500 + circuit = /obj/item/weapon/circuitboard/computer/crew + var/monitor = null //For VV debugging purposes + +/obj/machinery/computer/crew/New() + monitor = crewmonitor + return ..() + +/obj/machinery/computer/crew/attack_ai(mob/user) + if(stat & (BROKEN|NOPOWER)) + return + crewmonitor.show(user) + +/obj/machinery/computer/crew/attack_hand(mob/user) + if(..()) + return + if(stat & (BROKEN|NOPOWER)) + return + crewmonitor.show(user) + +var/global/datum/crewmonitor/crewmonitor = new + +/datum/crewmonitor + var/list/jobs + var/list/interfaces + var/list/data + +/datum/crewmonitor/New() + . = ..() + + var/list/jobs = new/list() + jobs["Captain"] = 00 + jobs["Head of Personnel"] = 50 + jobs["Head of Security"] = 10 + jobs["Warden"] = 11 + jobs["Security Officer"] = 12 + jobs["Detective"] = 13 + jobs["Chief Medical Officer"] = 20 + jobs["Chemist"] = 21 + jobs["Geneticist"] = 22 + jobs["Virologist"] = 23 + jobs["Medical Doctor"] = 24 + jobs["Research Director"] = 30 + jobs["Scientist"] = 31 + jobs["Roboticist"] = 32 + jobs["Chief Engineer"] = 40 + jobs["Station Engineer"] = 41 + jobs["Atmospheric Technician"] = 42 + jobs["Quartermaster"] = 51 + jobs["Shaft Miner"] = 52 + jobs["Cargo Technician"] = 53 + jobs["Bartender"] = 61 + jobs["Cook"] = 62 + jobs["Botanist"] = 63 + jobs["Librarian"] = 64 + jobs["Chaplain"] = 65 + jobs["Clown"] = 66 + jobs["Mime"] = 67 + jobs["Janitor"] = 68 + jobs["Lawyer"] = 69 + jobs["Admiral"] = 200 + jobs["Centcom Commander"] = 210 + jobs["Custodian"] = 211 + jobs["Medical Officer"] = 212 + jobs["Research Officer"] = 213 + jobs["Emergency Response Team Commander"] = 220 + jobs["Security Response Officer"] = 221 + jobs["Engineer Response Officer"] = 222 + jobs["Medical Response Officer"] = 223 + jobs["Assistant"] = 999 //Unknowns/custom jobs should appear after civilians, and before assistants + + src.jobs = jobs + src.interfaces = list() + src.data = list() + register_asset("crewmonitor.js",'crew.js') + register_asset("crewmonitor.css",'crew.css') + +/datum/crewmonitor/Destroy() + if (src.interfaces) + for (var/datum/html_interface/hi in interfaces) + qdel(hi) + src.interfaces = null + + return ..() + +/datum/crewmonitor/proc/show(mob/mob, z) + if (mob.client) + sendResources(mob.client) + if (!z) z = mob.z + + if (z > 0 && src.interfaces) + var/datum/html_interface/hi + + if (!src.interfaces["[z]"]) + src.interfaces["[z]"] = new/datum/html_interface/nanotrasen(src, "Crew Monitoring", 900, 540, "") + + hi = src.interfaces["[z]"] + + hi.updateContent("content", "
    ") + + src.update(z, TRUE) + else + hi = src.interfaces["[z]"] + src.update(z,TRUE) + + // Debugging purposes + mob << browse_rsc(file("code/game/machinery/computer/crew.js"), "crew.js") + mob << browse_rsc(file("code/game/machinery/computer/crew.css"), "crew.css") + + hi = src.interfaces["[z]"] + hi.show(mob) + src.updateFor(mob, hi, z) + +/datum/crewmonitor/proc/updateFor(hclient_or_mob, datum/html_interface/hi, z) + // This check will succeed if updateFor is called after showing to the player, but will fail + // on regular updates. Since we only really need this once we don't care if it fails. + hi.callJavaScript("clearAll", null, hclient_or_mob) + + for (var/list/L in data) + hi.callJavaScript("add", L, hclient_or_mob) + + hi.callJavaScript("onAfterUpdate", null, hclient_or_mob) + +/datum/crewmonitor/proc/update(z, ignore_unused = FALSE) + if (src.interfaces["[z]"]) + var/datum/html_interface/hi = src.interfaces["[z]"] + + if (ignore_unused || hi.isUsed()) + var/list/results = list() + var/obj/item/clothing/under/U + var/obj/item/weapon/card/id/I + var/turf/pos + var/ijob + var/name + var/assignment + var/dam1 + var/dam2 + var/dam3 + var/dam4 + var/area + var/pos_x + var/pos_y + var/life_status + + for(var/mob/living/carbon/human/H in mob_list) + // Check if their z-level is correct and if they are wearing a uniform. + // Accept H.z==0 as well in case the mob is inside an object. + if ((H.z == 0 || H.z == z) && istype(H.w_uniform, /obj/item/clothing/under)) + U = H.w_uniform + + // Are the suit sensors on? + if (U.has_sensor && U.sensor_mode) + pos = H.z == 0 || U.sensor_mode == 3 ? get_turf(H) : null + + // Special case: If the mob is inside an object confirm the z-level on turf level. + if (H.z == 0 && (!pos || pos.z != z)) continue + + I = H.wear_id ? H.wear_id.GetID() : null + + if (I) + name = I.registered_name + assignment = I.assignment + ijob = jobs[I.assignment] + else + name = "Unknown" + assignment = "" + ijob = 80 + + if (U.sensor_mode >= 1) life_status = (!H.stat ? "true" : "false") + else life_status = null + + if (U.sensor_mode >= 2) + dam1 = round(H.getOxyLoss(),1) + dam2 = round(H.getToxLoss(),1) + dam3 = round(H.getFireLoss(),1) + dam4 = round(H.getBruteLoss(),1) + else + dam1 = null + dam2 = null + dam3 = null + dam4 = null + + if (U.sensor_mode >= 3) + if (!pos) pos = get_turf(H) + var/area/player_area = get_area(H) + + area = format_text(player_area.name) + pos_x = pos.x + pos_y = pos.y + else + area = null + pos_x = null + pos_y = null + + results[++results.len] = list(name, assignment, ijob, life_status, dam1, dam2, dam3, dam4, area, pos_x, pos_y, H.can_track(null)) + + src.data = results + src.updateFor(null, hi, z) // updates for everyone + +/datum/crewmonitor/proc/hiIsValidClient(datum/html_interface_client/hclient, datum/html_interface/hi) + var/z = "" + + for (z in src.interfaces) + if (src.interfaces[z] == hi) break + + if(hclient.client.mob && IsAdminGhost(hclient.client.mob)) + return TRUE + + if (hclient.client.mob && hclient.client.mob.stat == 0 && hclient.client.mob.z == text2num(z)) + if (isAI(hclient.client.mob)) return TRUE + else if (iscyborg(hclient.client.mob)) + return (locate(/obj/machinery/computer/crew, range(world.view, hclient.client.mob))) || (locate(/obj/item/device/sensor_device, hclient.client.mob.contents)) + else + return (locate(/obj/machinery/computer/crew, range(1, hclient.client.mob))) || (locate(/obj/item/device/sensor_device, hclient.client.mob.contents)) + else + return FALSE + +/datum/crewmonitor/Topic(href, href_list[], datum/html_interface_client/hclient) + if (istype(hclient)) + if (hclient && hclient.client && hclient.client.mob && isAI(hclient.client.mob)) + var/mob/living/silicon/ai/AI = hclient.client.mob + + switch (href_list["action"]) + if ("select_person") + AI.ai_camera_track(href_list["name"]) + + if ("select_position") + var/x = text2num(href_list["x"]) + var/y = text2num(href_list["y"]) + var/turf/tile = locate(x, y, AI.z) + + var/obj/machinery/camera/C = locate(/obj/machinery/camera) in range(5, tile) + + if (!C) C = locate(/obj/machinery/camera) in urange(10, tile) + if (!C) C = locate(/obj/machinery/camera) in urange(15, tile) + + if (C) + var/turf/current_loc = AI.eyeobj.loc + + spawn(min(30, get_dist(get_turf(C), AI.eyeobj) / 4)) + if (AI && AI.eyeobj && current_loc == AI.eyeobj.loc) + AI.switchCamera(C) + +/mob/living/carbon/human/Move() + if (src.w_uniform) + var/old_z = src.z + + . = ..() + + if (old_z != src.z) crewmonitor.queueUpdate(old_z) + crewmonitor.queueUpdate(src.z) + else + return ..() + +/datum/crewmonitor/proc/queueUpdate(z) + addtimer(crewmonitor, "update", 5, TRUE, z) + +/datum/crewmonitor/proc/sendResources(var/client/client) + send_asset(client, "crewmonitor.js") + send_asset(client, "crewmonitor.css") + SSminimap.send(client) diff --git a/code/game/machinery/computer/crew.js b/code/game/machinery/computer/crew.js new file mode 100644 index 0000000..e29fda2 --- /dev/null +++ b/code/game/machinery/computer/crew.js @@ -0,0 +1,588 @@ +/*! + * jQuery scrollintoview() plugin and :scrollable selector filter + * + * Version 1.8 (14 Jul 2011) + * Requires jQuery 1.4 or newer + */ + +(function ($) { + var converter = { + vertical: { x: false, y: true }, + horizontal: { x: true, y: false }, + both: { x: true, y: true }, + x: { x: true, y: false }, + y: { x: false, y: true } + }; + + var settings = { + duration: "fast", + direction: "both" + }; + + var rootrx = /^(?:html)$/i; + + // gets border dimensions + var borders = function (domElement, styles) { + styles = styles || (document.defaultView && document.defaultView.getComputedStyle ? document.defaultView.getComputedStyle(domElement, null) : domElement.currentStyle); + var px = document.defaultView && document.defaultView.getComputedStyle ? true : false; + var b = { + top: (parseFloat(px ? styles.borderTopWidth : $.css(domElement, "borderTopWidth")) || 0), + left: (parseFloat(px ? styles.borderLeftWidth : $.css(domElement, "borderLeftWidth")) || 0), + bottom: (parseFloat(px ? styles.borderBottomWidth : $.css(domElement, "borderBottomWidth")) || 0), + right: (parseFloat(px ? styles.borderRightWidth : $.css(domElement, "borderRightWidth")) || 0) + }; + return { + top: b.top, + left: b.left, + bottom: b.bottom, + right: b.right, + vertical: b.top + b.bottom, + horizontal: b.left + b.right + }; + }; + + var dimensions = function ($element) { + var win = $(window); + var isRoot = rootrx.test($element[0].nodeName); + return { + border: isRoot ? { top: 0, left: 0, bottom: 0, right: 0} : borders($element[0]), + scroll: { + top: (isRoot ? win : $element).scrollTop(), + left: (isRoot ? win : $element).scrollLeft() + }, + scrollbar: { + right: isRoot ? 0 : $element.innerWidth() - $element[0].clientWidth, + bottom: isRoot ? 0 : $element.innerHeight() - $element[0].clientHeight + }, + rect: (function () { + var r = $element[0].getBoundingClientRect(); + return { + top: isRoot ? 0 : r.top, + left: isRoot ? 0 : r.left, + bottom: isRoot ? $element[0].clientHeight : r.bottom, + right: isRoot ? $element[0].clientWidth : r.right + }; + })() + }; + }; + + $.fn.extend({ + scrollintoview: function (options) { + /// Scrolls the first element in the set into view by scrolling its closest scrollable parent. + /// Additional options that can configure scrolling: + /// duration (default: "fast") - jQuery animation speed (can be a duration string or number of milliseconds) + /// direction (default: "both") - select possible scrollings ("vertical" or "y", "horizontal" or "x", "both") + /// complete (default: none) - a function to call when scrolling completes (called in context of the DOM element being scrolled) + /// + /// Returns the same jQuery set that this function was run on. + + options = $.extend({}, settings, options); + options.direction = converter[typeof (options.direction) === "string" && options.direction.toLowerCase()] || converter.both; + + var dirStr = ""; + if (options.direction.x === true) dirStr = "horizontal"; + if (options.direction.y === true) dirStr = dirStr ? "both" : "vertical"; + + var el = this.eq(0); + var scroller = el.closest(":scrollable(" + dirStr + ")"); + + // check if there's anything to scroll in the first place + if (scroller.length > 0) + { + scroller = scroller.eq(0); + + var dim = { + e: dimensions(el), + s: dimensions(scroller) + }; + + var rel = { + top: dim.e.rect.top - (dim.s.rect.top + dim.s.border.top), + bottom: dim.s.rect.bottom - dim.s.border.bottom - dim.s.scrollbar.bottom - dim.e.rect.bottom, + left: dim.e.rect.left - (dim.s.rect.left + dim.s.border.left), + right: dim.s.rect.right - dim.s.border.right - dim.s.scrollbar.right - dim.e.rect.right + }; + + var animOptions = {}; + + // vertical scroll + if (options.direction.y === true) + { + if (rel.top < 0) + { + animOptions.scrollTop = dim.s.scroll.top + rel.top; + } + else if (rel.top > 0 && rel.bottom < 0) + { + animOptions.scrollTop = dim.s.scroll.top + Math.min(rel.top, -rel.bottom); + } + } + + // horizontal scroll + if (options.direction.x === true) + { + if (rel.left < 0) + { + animOptions.scrollLeft = dim.s.scroll.left + rel.left; + } + else if (rel.left > 0 && rel.right < 0) + { + animOptions.scrollLeft = dim.s.scroll.left + Math.min(rel.left, -rel.right); + } + } + + // scroll if needed + if (!$.isEmptyObject(animOptions)) + { + if (rootrx.test(scroller[0].nodeName)) + { + scroller = $("html,body"); + } + scroller + .animate(animOptions, options.duration) + .eq(0) // we want function to be called just once (ref. "html,body") + .queue(function (next) { + $.isFunction(options.complete) && options.complete.call(scroller[0]); + next(); + }); + } + else + { + // when there's nothing to scroll, just call the "complete" function + $.isFunction(options.complete) && options.complete.call(scroller[0]); + } + } + + // return set back + return this; + } + }); + + var scrollValue = { + auto: true, + scroll: true, + visible: false, + hidden: false + }; + + $.extend($.expr[":"], { + scrollable: function (element, index, meta, stack) { + var direction = converter[typeof (meta[3]) === "string" && meta[3].toLowerCase()] || converter.both; + var styles = (document.defaultView && document.defaultView.getComputedStyle ? document.defaultView.getComputedStyle(element, null) : element.currentStyle); + var overflow = { + x: scrollValue[styles.overflowX.toLowerCase()] || false, + y: scrollValue[styles.overflowY.toLowerCase()] || false, + isRoot: rootrx.test(element.nodeName) + }; + + // check if completely unscrollable (exclude HTML element because it's special) + if (!overflow.x && !overflow.y && !overflow.isRoot) + { + return false; + } + + var size = { + height: { + scroll: element.scrollHeight, + client: element.clientHeight + }, + width: { + scroll: element.scrollWidth, + client: element.clientWidth + }, + // check overflow.x/y because iPad (and possibly other tablets) don't dislay scrollbars + scrollableX: function () { + return (overflow.x || overflow.isRoot) && this.width.scroll > this.width.client; + }, + scrollableY: function () { + return (overflow.y || overflow.isRoot) && this.height.scroll > this.height.client; + } + }; + return direction.y && size.scrollableY() || direction.x && size.scrollableX(); + } + }); +})(jQuery); + +/*! + * Crew manifest script + */ + +var minimap_height = 480; +var scale_x; +var scale_y; +var zoom_factor = null; +var minimap_mousedown = false; +var minimap_mousedown_scrollLeft; +var minimap_mousedown_scrollTop; +var minimap_mousedown_clientX; +var minimap_mousedown_clientY; +var minimap_mousedown_counter = 0; + +function disableSelection(){ return false; }; + +$(window).on("onUpdateContent", function() +{ + $("#textbased").html("

    Name

     

    Position

    "); + + $("#minimap").append(""); + + $("body")[0].onselectstart = disableSelection; + + $("#minimap").on("click", function(e) + { + if (!$(e.target).is(".zoom,.dot")) + { + var x = ((((e.clientX + this.scrollLeft - 8) / scale_x) / tile_size) + 1).toFixed(0); + var y = ((maxy - (((e.clientY + this.scrollTop - 8) / scale_y) / tile_size)) + 1).toFixed(0); + + window.location.href = "byond://?src=" + hSrc + "&action=select_position&x=" + x + "&y=" + y; + } + }).on("mousedown", function(e) + { + minimap_mousedown_scrollLeft = this.scrollLeft; + minimap_mousedown_scrollTop = this.scrollTop; + minimap_mousedown_clientX = e.clientX; + minimap_mousedown_clientY = e.clientY; + + var c = ++minimap_mousedown_counter; + setTimeout(function() + { + if (c == minimap_mousedown_counter) + { + minimap_mousedown = true; + $("#minimap").css("cursor", "move"); + } + }, 100); + }); + + $(document).on("mousemove", function(e) + { + if (minimap_mousedown) + { + var offsetX = minimap_mousedown_clientX - e.clientX; + var offsetY = minimap_mousedown_clientY - e.clientY; + + var minimap = document.getElementById("minimap"); + minimap.scrollLeft = minimap_mousedown_scrollLeft + offsetX; + minimap.scrollTop = minimap_mousedown_scrollTop + offsetY; + } + }).on("mouseup", function() + { + ++minimap_mousedown_counter; + if (minimap_mousedown) + { + document.body.focus(); + minimap_mousedown = false; + $("#minimap").css("cursor", ""); + } + }); + + $(window).on("resize", onResize); + + scaleMinimap(1.00); +}); + +function zoomIn() +{ + scaleMinimap(Math.min(6.00, zoom_factor + 1.00)); +} + +function zoomOut() +{ + scaleMinimap(Math.max(1.00, zoom_factor - 1.00)); +} + +function scaleMinimap(factor) +{ + var $minimap = $("#minimap"); + + if (factor != zoom_factor) + { + zoom_factor = factor; + + var old_map_width = $minimap.width(); + var old_map_height = $minimap.height(); + var old_canvas_size = $("#minimap > img").height(); // height is assumed to be the same + var new_canvas_size = minimap_height * factor; // ditto + + var old_scrollLeft = $minimap[0].scrollLeft; + var old_scrollTop = $minimap[0].scrollTop; + + var old_factor = old_canvas_size / minimap_height; + var diff_factor = factor - old_factor; + + var old_centerX = ((old_map_width / 2) * diff_factor) + old_scrollLeft; + var old_centerY = ((old_map_height / 2) * diff_factor) + old_scrollTop; + + $("#minimap > img").css("height", new_canvas_size + "px"); + $minimap.css("max-width", new_canvas_size + "px"); + + var new_map_width = $minimap.width(); + var new_map_height = $minimap.height(); + + var new_centerX = (new_map_width / 2) + old_centerX; + var new_centerY = (new_map_height / 2) + old_centerY; + + var scrollLeft = new_centerX - (new_map_width / 2); + var scrollTop = new_centerY - (new_map_height / 2); + + scale_x = new_canvas_size / (maxx * tile_size); + scale_y = new_canvas_size / (maxy * tile_size); + + onResize(); + + $minimap[0].scrollLeft = scrollLeft; + $minimap[0].scrollTop = scrollTop; + + $(".dot").each(function() + { + var $this = $(this); + var tx = translateX(parseInt($this.attr("data-x"))); + var ty = translateY(parseInt($this.attr("data-y"))); + + // Workaround for IE bug where it doesn't modify the positions. + setTimeout(function(){ $this.css({ "top": ty + "px", "left": tx + "px" });}, 0); + }); + } +} + +function onResize() +{ + if (zoom_factor == 1.00) + { + $(".zoom").css("left", "442px"); + $("#minimap").css("max-height", Math.min($(window).height() - 16, 480) + "px"); + } + else + { + $(".zoom").css("left", ($("#minimap").width() - 34) + "px"); + $("#minimap").css("max-height", Math.min($(window).height() - 16, $("#minimap > img").height()) + "px"); + } + + if (expandHealth()) + { + $(".colhealth").css("width", "150px"); + $(".health").removeClass("tt"); + } + else + { + $(".colhealth").css("width", "24px"); + $(".health").addClass("tt"); + } + + $("body").css("padding-left", Math.min($(window).width() - 400, $("#minimap").width() - 10) + "px"); +} + +function expandHealth() +{ + return $("#textbased").width() > 510; +} + +var updateMap = true; + +function switchTo(i) +{ + if (i == 1) + { + $("#minimap").hide(); + $("#textbased").show(); + } + else + { + $("#textbased").hide(); + $("#minimap").show(); + } +} + +var orig_scrollTop = 0; + +function clearAll() +{ + orig_scrollTop = $(window).scrollTop(); + $("#textbased-tbody").empty(); + $("#minimap .dot").remove(); +} + +function onAfterUpdate() +{ + $(window).scrollTop(orig_scrollTop); +} + +function isHead(ijob) +{ + return (ijob % 10 == 0); // head roles always end in 0 +} + +function getColor(ijob) +{ + if (ijob == 0) { return "#C06616"; } // captain + else if (ijob >= 10 && ijob < 20) { return "#E74C3C"; } // security + else if (ijob >= 20 && ijob < 30) { return "#3498DB"; } // medical + else if (ijob >= 30 && ijob < 40) { return "#9B59B6"; } // science + else if (ijob >= 40 && ijob < 50) { return "#F1C40F"; } // engineering + else if (ijob >= 50 && ijob < 60) { return "#F39C12"; } // cargo + else if (ijob >= 200 && ijob < 230) { return "#00C100"; } // Centcom + else { return "#C38312"; } // other / unknown +} + +function add(name, assignment, ijob, life_status, dam1, dam2, dam3, dam4, area, pos_x, pos_y, in_range) +{ + try { ijob = parseInt(ijob); } + catch (ex) { ijob = 0; } + + var ls = ""; + + if (life_status === null) { ls = (life_status ? "Deceased" : "Living"); } + + var healthHTML = ""; + + if (dam1 != "" || dam2 != "" || dam3 != "" || dam4 != "") + { + var avg_dam = parseInt(dam1) + parseInt(dam2) + parseInt(dam3) + parseInt(dam4); + var i; + + if (avg_dam <= 0) { i = 5; } + else if (avg_dam <= 25) { i = 4; } + else if (avg_dam <= 50) { i = 3; } + else if (avg_dam <= 75) { i = 2; } + else { i = 0; } + + healthHTML = "
    (" + dam1 + "/" + dam2 + "/" + dam3 + "/" + dam4 + ")
    "; + } + else + { + healthHTML = "
    Not Available
    "; + } + + var trElem = $("").attr("data-ijob", ijob); + var tdElem; + var spanElem; + + tdElem = $(""); + + var italics = false; + + if (name.length >= 7 && name.substring(0, 3) == "") + { + name = name.substring(3, name.length - 4); + italics = true; + } + + spanElem = $("").text(name); + + if (italics) + { + spanElem.css("font-style", "italic"); + } + + if (isHead(ijob)) { spanElem.css("font-weight", "bold"); } + + var color = getColor(ijob); + + if (color) { spanElem.css("color", color); } + + tdElem.append(spanElem); + + if (assignment) { tdElem.append($("").text(" (" + assignment + ")")); } + + trElem.append(tdElem); + + tdElem = $(""); + tdElem.html(healthHTML); + + trElem.append(tdElem); + + tdElem = $(""); + + if (area && pos_x && pos_y) + { + tdElem.append($("
    ").text(area).addClass("tt").append($("
    ").append($("").text("(" + pos_x + ", " + pos_y + ")")))); + tdElem.css("cursor", "pointer").on("click", function() + { + window.clipboardData.setData("Text", pos_x + ", " + pos_y); + }); + } + else { tdElem.text("Not Available"); } + + trElem.append(tdElem); + + var item = $("#textbased-tbody > tr").filter(function(){ return parseInt($(this).attr("data-ijob")) >= ijob; }).eq(0); + + if (item.length > 0) { trElem.insertBefore(item); } + else { $("#textbased-tbody").append(trElem); } + + if (updateMap && pos_x && pos_y && (in_range == "1")) + { + var x = parseInt(pos_x); + var y = maxy - parseInt(pos_y); + + var tx = translateX(x); + var ty = translateY(y); + + var dotElem = $("
    "); + + $("#minimap").append(dotElem); + + var counter = 0; + + function enable() + { + ++counter; + dotElem.addClass("active").css({ "border-color": color }); + } + + function disable() + { + ++counter; + dotElem.removeClass("active").css({ "border-color": "transparent" }); + } + + function click(e) + { + e.preventDefault(); + e.stopPropagation(); + + window.location.href = "byond://?src=" + hSrc + "&action=select_person&name=" + encodeURIComponent(name); + } + + trElem.on("mouseover", function() + { + enable(); + + if (zoom_factor > 1.00) + { + var c = counter; + setTimeout(function() + { + if (c == counter) + { + var minimap = document.getElementById("minimap"); + var half = $(minimap).height() / 2; + var offset = $(dotElem).offset(); + + minimap.scrollLeft = offset.left + minimap.scrollLeft - half; + minimap.scrollTop = offset.top + minimap.scrollTop - half; + } + }, 100); + } + }).on("mouseout", disable).on("click", click); + dotElem.on("mouseover", function() + { + trElem.addClass("hover"); + enable(); + trElem.scrollintoview(); + }).on("mouseout", function() + { + trElem.removeClass("hover"); + disable(); + }).on("click", click); + } +} + +function translateX(n) { return (translate(n - 1.5, scale_x) ).toFixed(0); } +function translateY(n) { return (translate(n + 0.75, scale_y) ).toFixed(0); } + +function translate(n, scale) +{ + return (n * tile_size) * scale; +} \ No newline at end of file diff --git a/code/game/machinery/computer/dna_console.dm b/code/game/machinery/computer/dna_console.dm new file mode 100644 index 0000000..a4dee33 --- /dev/null +++ b/code/game/machinery/computer/dna_console.dm @@ -0,0 +1,602 @@ +#define INJECTOR_TIMEOUT 100 +#define REJUVENATORS_INJECT 15 +#define REJUVENATORS_MAX 90 +#define NUMBER_OF_BUFFERS 3 + +#define RADIATION_STRENGTH_MAX 15 +#define RADIATION_STRENGTH_MULTIPLIER 1 //larger has a more range + +#define RADIATION_DURATION_MAX 30 +#define RADIATION_ACCURACY_MULTIPLIER 3 //larger is less accurate + +#define RADIATION_IRRADIATION_MULTIPLIER 0.2 //multiplier for how much radiation a test subject recieves + +#define SCANNER_ACTION_SE 1 +#define SCANNER_ACTION_UI 2 +#define SCANNER_ACTION_UE 3 +#define SCANNER_ACTION_MIXED 4 + +/obj/machinery/computer/scan_consolenew + name = "\improper DNA scanner access console" + desc = "Scan DNA." + icon_screen = "dna" + icon_keyboard = "med_key" + density = 1 + circuit = /obj/item/weapon/circuitboard/computer/scan_consolenew + var/radduration = 2 + var/radstrength = 1 + + var/list/buffer[NUMBER_OF_BUFFERS] + + var/injectorready = 0 //Quick fix for issue 286 (screwdriver the screen twice to restore injector) -Pete + var/current_screen = "mainmenu" + var/obj/machinery/dna_scannernew/connected = null + var/obj/item/weapon/disk/data/diskette = null + var/list/delayed_action = null + anchored = 1 + use_power = 1 + idle_power_usage = 10 + active_power_usage = 400 + +/obj/machinery/computer/scan_consolenew/attackby(obj/item/I, mob/user, params) + if (istype(I, /obj/item/weapon/disk/data)) //INSERT SOME DISKETTES + if (!src.diskette) + if(!user.drop_item()) + return + I.loc = src + src.diskette = I + user << "You insert [I]." + src.updateUsrDialog() + return + else + return ..() + +/obj/machinery/computer/scan_consolenew/New() + ..() + + spawn(5) + for(dir in list(NORTH,EAST,SOUTH,WEST)) + connected = locate(/obj/machinery/dna_scannernew, get_step(src, dir)) + if(!isnull(connected)) + break + spawn(250) + injectorready = 1 + return + return + +/obj/machinery/computer/scan_consolenew/attack_hand(mob/user) + if(..()) + return + ShowInterface(user) + +/obj/machinery/computer/scan_consolenew/proc/ShowInterface(mob/user, last_change) + if(!user) return + var/datum/browser/popup = new(user, "scannernew", "DNA Modifier Console", 800, 630) // Set up the popup browser window + if(!(in_range(src, user) || issilicon(user))) + popup.close() + return + popup.add_stylesheet("scannernew", 'html/browser/scannernew.css') + + var/mob/living/carbon/viable_occupant + var/occupant_status = "
    Subject Status:
    " + var/scanner_status + var/temp_html + if(connected && connected.is_operational()) + if(connected.occupant) //set occupant_status message + viable_occupant = connected.occupant + if(viable_occupant.has_dna() && (!(viable_occupant.disabilities & NOCLONE) || (connected.scan_level == 3))) //occupent is viable for dna modification + occupant_status += "[viable_occupant.name] => " + switch(viable_occupant.stat) + if(CONSCIOUS) + occupant_status += "Conscious" + if(UNCONSCIOUS) + occupant_status += "Unconscious" + else + occupant_status += "DEAD" + occupant_status += "
    " + occupant_status += "
    Health:
    [viable_occupant.health] %
    " + occupant_status += "
    Radiation Level:
    [viable_occupant.radiation] %
    " + var/rejuvenators = viable_occupant.reagents.get_reagent_amount("potass_iodide") + occupant_status += "
    Rejuvenators:
    [rejuvenators] units
    " + occupant_status += "
    Unique Enzymes :
    [viable_occupant.dna.unique_enzymes]
    " + occupant_status += "
    Last Operation:
    [last_change ? last_change : "----"]
    " + else + viable_occupant = null + occupant_status += "Invalid DNA structure" + else + occupant_status += "No subject detected" + + if(connected.state_open) + scanner_status = "Open" + else + scanner_status = "Closed" + if(connected.locked) + scanner_status += " (Locked)" + else + scanner_status += " (Unlocked)" + + + else + occupant_status += "----" + scanner_status += "Error: No scanner detected" + + var/status = "
    " + status += "
    Scanner:
    [scanner_status]
    " + status += "[occupant_status]" + + + status += "

    Radiation Emitter Status

    " + var/stddev = radstrength*RADIATION_STRENGTH_MULTIPLIER + status += "
    Output Level:
    [radstrength]
    " + status += "
      \> Mutation:
    (-[stddev] to +[stddev] = 68 %) (-[2*stddev] to +[2*stddev] = 95 %)
    " + if(connected) + stddev = RADIATION_ACCURACY_MULTIPLIER/(radduration + (connected.precision_coeff ** 2)) + else + stddev = RADIATION_ACCURACY_MULTIPLIER/radduration + var/chance_to_hit + switch(stddev) //hardcoded values from a z-table for a normal distribution + if(0 to 0.25) + chance_to_hit = ">95 %" + if(0.25 to 0.5) + chance_to_hit = "68-95 %" + if(0.5 to 0.75) + chance_to_hit = "55-68 %" + else + chance_to_hit = "<38 %" + status += "
    Pulse Duration:
    [radduration]
    " + status += "
      \> Accuracy:
    [chance_to_hit]
    " + status += "
    " // Close statusDisplay div + var/buttons = "Scan " + if(connected) + buttons += " [connected.state_open ? "Close" : "Open"] Scanner " + if (connected.state_open) + buttons += "[connected.locked ? "Unlock" : "Lock"] Scanner " + else + buttons += "[connected.locked ? "Unlock" : "Lock"] Scanner " + else + buttons += "Open Scanner Lock Scanner " + if(viable_occupant) + buttons += "Inject Rejuvenators " + else + buttons += "Inject Rejuvenators " + if(diskette) + buttons += "Eject Disk " + else + buttons += "Eject Disk " + if(current_screen == "buffer") + buttons += "Radiation Emitter Menu " + else + buttons += "Buffer Menu " + + switch(current_screen) + if("working") + temp_html += status + temp_html += "

    System Busy

    " + temp_html += "Working ... Please wait ([radduration] Seconds)" + if("buffer") + temp_html += status + temp_html += buttons + temp_html += "

    Buffer Menu

    " + + if(istype(buffer)) + for(var/i=1, i<=buffer.len, i++) + temp_html += "
    Slot [i]: " + var/list/buffer_slot = buffer[i] + if( !buffer_slot || !buffer_slot.len || !buffer_slot["name"] || !((buffer_slot["UI"] && buffer_slot["UE"]) || buffer_slot["SE"]) ) + temp_html += "
    \tNo Data" + if(viable_occupant) + temp_html += "
    Save to Buffer " + else + temp_html += "
    Save to Buffer " + temp_html += "Clear Buffer " + if(diskette) + temp_html += "Load from Disk " + else + temp_html += "Load from Disk " + temp_html += "Save to Disk " + else + var/ui = buffer_slot["UI"] + var/se = buffer_slot["SE"] + var/ue = buffer_slot["UE"] + var/name = buffer_slot["name"] + var/label = buffer_slot["label"] + var/blood_type = buffer_slot["blood_type"] + temp_html += "
    \tLabel: [label ? label : name]" + temp_html += "
    \tSubject: [name]" + if(ue && name && blood_type) + temp_html += "
    \tBlood Type: [blood_type]" + temp_html += "
    \tUE: [ue] " + if(viable_occupant) + temp_html += "Occupant " + else + temp_html += "Occupant" + temp_html += "Occupant:Delayed " + if(injectorready) + temp_html += "Injector" + else + temp_html += "Injector" + else + temp_html += "
    \tBlood Type: No Data" + temp_html += "
    \tUE: No Data" + if(ui) + temp_html += "
    \tUI: [ui] " + if(viable_occupant) + temp_html += "Occupant " + else + temp_html += "Occupant" + temp_html += "Occupant:Delayed " + if(injectorready) + temp_html += "Injector" + else + temp_html += "Injector" + else + temp_html += "
    \tUI: No Data" + if(ue && name && blood_type && ui) + temp_html += "
    \tUI+UE: [ui]/[ue] " + if(viable_occupant) + temp_html += "Occupant " + else + temp_html += "Occupant" + temp_html += "Occupant:Delayed " + if(injectorready) + temp_html += "UI+UE Injector" + else + temp_html += "UI+UE Injector" + if(se) + temp_html += "
    \tSE: [se] " + if(viable_occupant) + temp_html += "Occupant " + else + temp_html += "Occupant " + temp_html += "Occupant:Delayed " + if(injectorready) + temp_html += "Injector" + else + temp_html += "Injector" + else + temp_html += "
    \tSE: No Data" + if(viable_occupant) + temp_html += "
    Save to Buffer " + else + temp_html += "
    Save to Buffer " + temp_html += "Clear Buffer " + if(diskette) + temp_html += "Load from Disk " + else + temp_html += "Load from Disk " + if(diskette && !diskette.read_only) + temp_html += "Save to Disk " + else + temp_html += "Save to Disk " + else + temp_html += status + temp_html += buttons + temp_html += "

    Radiation Emitter Menu

    " + + temp_html += "-- Output Level ++" + temp_html += "
    -- Pulse Duration ++" + + temp_html += "

    Irradiate Subject

    " + temp_html += "
    Unique Identifier:
    " + + var/max_line_len = 7*DNA_BLOCK_SIZE + if(viable_occupant) + temp_html += "
    1
    " + var/len = length(viable_occupant.dna.uni_identity) + for(var/i=1, i<=len, i++) + temp_html += "[copytext(viable_occupant.dna.uni_identity,i,i+1)]" + if ((i % max_line_len) == 0) + temp_html += "
    " + if((i % DNA_BLOCK_SIZE) == 0 && i < len) + temp_html += "
    [(i / DNA_BLOCK_SIZE) + 1]
    " + else + temp_html += "----" + temp_html += "

    " + + temp_html += "
    Structural Enzymes:
    " + if(viable_occupant) + temp_html += "
    1
    " + var/len = length(viable_occupant.dna.struc_enzymes) + for(var/i=1, i<=len, i++) + temp_html += "[copytext(viable_occupant.dna.struc_enzymes,i,i+1)]" + if ((i % max_line_len) == 0) + temp_html += "
    " + if((i % DNA_BLOCK_SIZE) == 0 && i < len) + temp_html += "
    [(i / DNA_BLOCK_SIZE) + 1]
    " + else + temp_html += "----" + temp_html += "
    " + + popup.set_content(temp_html) + popup.open() + + +/obj/machinery/computer/scan_consolenew/Topic(href, href_list) + if(..()) + return + if(!isturf(usr.loc)) + return + if(!((isturf(loc) && in_range(src, usr)) || issilicon(usr))) + return + if(current_screen == "working") + return + + add_fingerprint(usr) + usr.set_machine(src) + + var/mob/living/carbon/viable_occupant = get_viable_occupant() + + //Basic Tasks/////////////////////////////////////////// + var/num = round(text2num(href_list["num"])) + var/last_change + switch(href_list["task"]) + if("togglelock") + if(connected) + connected.locked = !connected.locked + if("toggleopen") + if(connected) + connected.toggle_open(usr) + if("setduration") + if(!num) + num = round(input(usr, "Choose pulse duration:", "Input an Integer", null) as num|null) + if(num) + radduration = Wrap(num, 1, RADIATION_DURATION_MAX+1) + if("setstrength") + if(!num) + num = round(input(usr, "Choose pulse strength:", "Input an Integer", null) as num|null) + if(num) + radstrength = Wrap(num, 1, RADIATION_STRENGTH_MAX+1) + if("screen") + current_screen = href_list["text"] + if("rejuv") + if(viable_occupant && viable_occupant.reagents) + var/potassiodide_amount = viable_occupant.reagents.get_reagent_amount("potass_iodide") + var/can_add = max(min(REJUVENATORS_MAX - potassiodide_amount, REJUVENATORS_INJECT), 0) + viable_occupant.reagents.add_reagent("potass_iodide", can_add) + if("setbufferlabel") + var/text = sanitize(input(usr, "Input a new label:", "Input an Text", null) as text|null) + if(num && text) + num = Clamp(num, 1, NUMBER_OF_BUFFERS) + var/list/buffer_slot = buffer[num] + if(istype(buffer_slot)) + buffer_slot["label"] = text + if("setbuffer") + if(num && viable_occupant) + num = Clamp(num, 1, NUMBER_OF_BUFFERS) + buffer[num] = list( + "label"="Buffer[num]:[viable_occupant.real_name]", + "UI"=viable_occupant.dna.uni_identity, + "SE"=viable_occupant.dna.struc_enzymes, + "UE"=viable_occupant.dna.unique_enzymes, + "name"=viable_occupant.real_name, + "blood_type"=viable_occupant.dna.blood_type + ) + if("clearbuffer") + if(num) + num = Clamp(num, 1, NUMBER_OF_BUFFERS) + var/list/buffer_slot = buffer[num] + if(istype(buffer_slot)) + buffer_slot.Cut() + if("transferbuffer") + if(num && viable_occupant) + switch(href_list["text"]) //Numbers are this high because other way upgrading laser is just not worth the hassle, and i cant think of anything better to inmrove + if("se") + apply_buffer(SCANNER_ACTION_SE,num) + if("ui") + apply_buffer(SCANNER_ACTION_UI,num) + if("ue") + apply_buffer(SCANNER_ACTION_UE,num) + if("mixed") + apply_buffer(SCANNER_ACTION_MIXED,num) + if("injector") + if(num && injectorready) + num = Clamp(num, 1, NUMBER_OF_BUFFERS) + var/list/buffer_slot = buffer[num] + if(istype(buffer_slot)) + var/obj/item/weapon/dnainjector/timed/I + switch(href_list["text"]) + if("se") + if(buffer_slot["SE"]) + I = new /obj/item/weapon/dnainjector/timed(loc) + var/powers = 0 + for(var/datum/mutation/human/HM in good_mutations + bad_mutations + not_good_mutations) + if(HM.check_block_string(buffer_slot["SE"])) + I.add_mutations.Add(HM) + if(HM in good_mutations) + powers += 1 + if(HM in bad_mutations + not_good_mutations) + powers -= 1 //To prevent just unlocking everything to get all powers to a syringe for max tech + else + I.remove_mutations.Add(HM) + I.origin_tech = "biotech=2;engineering=[max(1,min(6,powers))]" //With 6 powers available this tech level will be 1-6, also safety check if new powers get added + var/time_coeff + for(var/datum/mutation/human/HM in I.add_mutations) + if(!time_coeff) + time_coeff = HM.time_coeff + continue + time_coeff = min(time_coeff,HM.time_coeff) + if(connected) + I.duration = I.duration * time_coeff * connected.damage_coeff + I.damage_coeff = connected.damage_coeff + if("ui") + if(buffer_slot["UI"]) + I = new /obj/item/weapon/dnainjector/timed(loc) + I.fields = list("UI"=buffer_slot["UI"]) + if(connected) + I.damage_coeff = connected.damage_coeff + if("ue") + if(buffer_slot["name"] && buffer_slot["UE"] && buffer_slot["blood_type"]) + I = new /obj/item/weapon/dnainjector/timed(loc) + I.fields = list("name"=buffer_slot["name"], "UE"=buffer_slot["UE"], "blood_type"=buffer_slot["blood_type"]) + if(connected) + I.damage_coeff = connected.damage_coeff + if("mixed") + if(buffer_slot["UI"] && buffer_slot["name"] && buffer_slot["UE"] && buffer_slot["blood_type"]) + I = new /obj/item/weapon/dnainjector/timed(loc) + I.fields = list("UI"=buffer_slot["UI"],"name"=buffer_slot["name"], "UE"=buffer_slot["UE"], "blood_type"=buffer_slot["blood_type"]) + if(connected) + I.damage_coeff = connected.damage_coeff + if(I) + injectorready = 0 + spawn(INJECTOR_TIMEOUT) + injectorready = 1 + if("loaddisk") + if(num && diskette && diskette.fields) + num = Clamp(num, 1, NUMBER_OF_BUFFERS) + buffer[num] = diskette.fields.Copy() + if("savedisk") + if(num && diskette && !diskette.read_only) + num = Clamp(num, 1, NUMBER_OF_BUFFERS) + var/list/buffer_slot = buffer[num] + if(istype(buffer_slot)) + diskette.name = "data disk \[[buffer_slot["label"]]\]" + diskette.fields = buffer_slot.Copy() + if("ejectdisk") + if(diskette) + diskette.loc = get_turf(src) + diskette = null + if("setdelayed") + if(num) + delayed_action = list("action"=text2num(href_list["delayaction"]),"buffer"=num) + if("pulseui","pulsese") + if(num && viable_occupant && connected) + radduration = Wrap(radduration, 1, RADIATION_DURATION_MAX+1) + radstrength = Wrap(radstrength, 1, RADIATION_STRENGTH_MAX+1) + + var/locked_state = connected.locked + connected.locked = 1 + + current_screen = "working" + ShowInterface(usr) + + sleep(radduration*10) + current_screen = "mainmenu" + + if(viable_occupant && connected && connected.occupant==viable_occupant) + viable_occupant.radiation += (RADIATION_IRRADIATION_MULTIPLIER*radduration*radstrength)/(connected.damage_coeff ** 2) //Read comment in "transferbuffer" section above for explanation + switch(href_list["task"]) //Same thing as there but values are even lower, on best part they are about 0.0*, effectively no damage + if("pulseui") + var/len = length(viable_occupant.dna.uni_identity) + num = Wrap(num, 1, len+1) + num = randomize_radiation_accuracy(num, radduration + (connected.precision_coeff ** 2), len) //Each manipulator level above 1 makes randomization as accurate as selected time + manipulator lvl^2 + //Value is this high for the same reason as with laser - not worth the hassle of upgrading if the bonus is low + var/block = round((num-1)/DNA_BLOCK_SIZE)+1 + var/subblock = num - block*DNA_BLOCK_SIZE + last_change = "UI #[block]-[subblock]; " + + var/hex = copytext(viable_occupant.dna.uni_identity, num, num+1) + last_change += "[hex]" + hex = scramble(hex, radstrength, radduration) + last_change += "->[hex]" + + viable_occupant.dna.uni_identity = copytext(viable_occupant.dna.uni_identity, 1, num) + hex + copytext(viable_occupant.dna.uni_identity, num+1, 0) + viable_occupant.updateappearance(mutations_overlay_update=1) + if("pulsese") + var/len = length(viable_occupant.dna.struc_enzymes) + num = Wrap(num, 1, len+1) + num = randomize_radiation_accuracy(num, radduration + (connected.precision_coeff ** 2), len) + + var/block = round((num-1)/DNA_BLOCK_SIZE)+1 + var/subblock = num - block*DNA_BLOCK_SIZE + last_change = "SE #[block]-[subblock]; " + + var/hex = copytext(viable_occupant.dna.struc_enzymes, num, num+1) + last_change += "[hex]" + hex = scramble(hex, radstrength, radduration) + last_change += "->[hex]" + + viable_occupant.dna.struc_enzymes = copytext(viable_occupant.dna.struc_enzymes, 1, num) + hex + copytext(viable_occupant.dna.struc_enzymes, num+1, 0) + viable_occupant.domutcheck() + else + current_screen = "mainmenu" + + if(connected) + connected.locked = locked_state + + ShowInterface(usr,last_change) + +/obj/machinery/computer/scan_consolenew/proc/scramble(input,rs,rd) + var/length = length(input) + var/ran = gaussian(0, rs*RADIATION_STRENGTH_MULTIPLIER) + if(ran == 0) + ran = pick(-1,1) //hacky, statistically should almost never happen. 0-change makes people mad though + else if(ran < 0) + ran = round(ran) //negative, so floor it + else + ran = -round(-ran) //positive, so ceiling it + return num2hex(Wrap(hex2num(input)+ran, 0, 16**length), length) + +/obj/machinery/computer/scan_consolenew/proc/randomize_radiation_accuracy(position_we_were_supposed_to_hit, radduration, number_of_blocks) + return Wrap(round(position_we_were_supposed_to_hit + gaussian(0, RADIATION_ACCURACY_MULTIPLIER/radduration), 1), 1, number_of_blocks+1) + +/obj/machinery/computer/scan_consolenew/proc/get_viable_occupant() + var/mob/living/carbon/viable_occupant = null + if(connected) + viable_occupant = connected.occupant + if(!istype(viable_occupant) || !viable_occupant.dna || (viable_occupant.disabilities & NOCLONE)) + viable_occupant = null + return viable_occupant + +/obj/machinery/computer/scan_consolenew/proc/apply_buffer(action,buffer_num) + buffer_num = Clamp(buffer_num, 1, NUMBER_OF_BUFFERS) + var/list/buffer_slot = buffer[buffer_num] + var/mob/living/carbon/viable_occupant = get_viable_occupant() + if(istype(buffer_slot)) + viable_occupant.radiation += rand(10/(connected.damage_coeff ** 2),25/(connected.damage_coeff ** 2)) + //15 and 40 are just magic numbers that were here before so i didnt touch them, they are initial boundaries of damage + //Each laser level reduces damage by lvl^2, so no effect on 1 lvl, 4 times less damage on 2 and 9 times less damage on 3 + //Numbers are this high because other way upgrading laser is just not worth the hassle, and i cant think of anything better to inmrove + switch(action) + if(SCANNER_ACTION_SE) + if(buffer_slot["SE"]) + viable_occupant.dna.struc_enzymes = buffer_slot["SE"] + viable_occupant.domutcheck() + if(SCANNER_ACTION_UI) + if(buffer_slot["UI"]) + viable_occupant.dna.uni_identity = buffer_slot["UI"] + viable_occupant.updateappearance(mutations_overlay_update=1) + if(SCANNER_ACTION_UE) + if(buffer_slot["name"] && buffer_slot["UE"] && buffer_slot["blood_type"]) + viable_occupant.real_name = buffer_slot["name"] + viable_occupant.name = buffer_slot["name"] + viable_occupant.dna.unique_enzymes = buffer_slot["UE"] + viable_occupant.dna.blood_type = buffer_slot["blood_type"] + if(SCANNER_ACTION_MIXED) + if(buffer_slot["UI"]) + viable_occupant.dna.uni_identity = buffer_slot["UI"] + viable_occupant.updateappearance(mutations_overlay_update=1) + if(buffer_slot["name"] && buffer_slot["UE"] && buffer_slot["blood_type"]) + viable_occupant.real_name = buffer_slot["name"] + viable_occupant.name = buffer_slot["name"] + viable_occupant.dna.unique_enzymes = buffer_slot["UE"] + viable_occupant.dna.blood_type = buffer_slot["blood_type"] + +/obj/machinery/computer/scan_consolenew/proc/on_scanner_close() + connected.occupant << "[src] activates!" + if(delayed_action) + apply_buffer(delayed_action["action"],delayed_action["buffer"]) + delayed_action = null //or make it stick + reset button ? + return + +/////////////////////////// DNA MACHINES +#undef INJECTOR_TIMEOUT +#undef REJUVENATORS_INJECT +#undef REJUVENATORS_MAX +#undef NUMBER_OF_BUFFERS + +#undef RADIATION_STRENGTH_MAX +#undef RADIATION_STRENGTH_MULTIPLIER + +#undef RADIATION_DURATION_MAX +#undef RADIATION_ACCURACY_MULTIPLIER + +#undef RADIATION_IRRADIATION_MULTIPLIER + +#undef SCANNER_ACTION_SE +#undef SCANNER_ACTION_UI +#undef SCANNER_ACTION_UE +#undef SCANNER_ACTION_MIXED + +//#undef BAD_MUTATION_DIFFICULTY +//#undef GOOD_MUTATION_DIFFICULTY +//#undef OP_MUTATION_DIFFICULTY diff --git a/code/game/machinery/computer/gulag_teleporter.dm b/code/game/machinery/computer/gulag_teleporter.dm new file mode 100644 index 0000000..6f2e6b0 --- /dev/null +++ b/code/game/machinery/computer/gulag_teleporter.dm @@ -0,0 +1,164 @@ +//computer that handle the points and teleports the prisoner +/obj/machinery/computer/gulag_teleporter_computer + name = "labor camp teleporter console" + desc = "Used to send criminals to the Labor Camp" + icon_screen = "explosive" + icon_keyboard = "security_key" + req_access = list(access_armory) + circuit = /obj/item/weapon/circuitboard/computer/gulag_teleporter_console + var/default_goal = 200 + var/obj/item/weapon/card/id/prisoner/id = null + var/obj/machinery/gulag_teleporter/teleporter = null + var/obj/structure/gulag_beacon/beacon = null + var/mob/living/carbon/human/prisoner = null + var/datum/data/record/temporary_record = null + +/obj/machinery/computer/gulag_teleporter_computer/New() + ..() + addtimer(src, "scan_machinery", 5) + +/obj/machinery/computer/gulag_teleporter_computer/Destroy() + if(id) + id.forceMove(get_turf(src)) + return ..() + +/obj/machinery/computer/gulag_teleporter_computer/attackby(obj/item/W, mob/user) + if(istype(W, /obj/item/weapon/card/id/prisoner)) + if(!id) + if(!user.drop_item()) + return + W.forceMove(src) + id = W + user << "You insert [W]." + return + else + user << "There's an ID inserted already." + return ..() + +/obj/machinery/computer/gulag_teleporter_computer/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ + datum/tgui/master_ui = null, datum/ui_state/state = default_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "gulag_console", name, 455, 440, master_ui, state) + ui.open() + +/obj/machinery/computer/gulag_teleporter_computer/ui_data(mob/user) + var/list/data = list() + + var/list/prisoner_list = list() + var/can_teleport = FALSE + + if(teleporter && (teleporter.occupant && ishuman(teleporter.occupant))) + prisoner = teleporter.occupant + prisoner_list["name"] = prisoner.real_name + if(id) + can_teleport = TRUE + if(!isnull(data_core.general)) + for(var/r in data_core.security) + var/datum/data/record/R = r + if(R.fields["name"] == prisoner_list["name"]) + temporary_record = R + prisoner_list["crimstat"] = temporary_record.fields["criminal"] + + data["prisoner"] = prisoner_list + + if(teleporter) + data["teleporter"] = teleporter + data["teleporter_location"] = "([teleporter.x], [teleporter.y], [teleporter.z])" + data["teleporter_lock"] = teleporter.locked + data["teleporter_state_open"] = teleporter.state_open + if(beacon) + data["beacon"] = beacon + data["beacon_location"] = "([beacon.x], [beacon.y], [beacon.z])" + if(id) + data["id"] = id + data["id_name"] = id.registered_name + data["goal"] = id.goal + data["can_teleport"] = can_teleport + + return data + +/obj/machinery/computer/gulag_teleporter_computer/ui_act(action, list/params) + if(..()) + return + if(!allowed(usr)) + usr << "Access denied." + return + switch(action) + if("scan_teleporter") + teleporter = findteleporter() + if("scan_beacon") + beacon = findbeacon() + if("handle_id") + if(id) + if(!usr.get_active_held_item()) + usr.put_in_hands(id) + id = null + else + id.forceMove(get_turf(src)) + id = null + else + var/obj/item/I = usr.get_active_held_item() + if(istype(I, /obj/item/weapon/card/id/prisoner)) + if(!usr.drop_item()) + return + I.forceMove(src) + id = I + if("set_goal") + var/new_goal = input("Set the amount of points:", "Points", id.goal) as num|null + if(!isnum(new_goal)) + return + if(!new_goal) + new_goal = default_goal + id.goal = Clamp(new_goal, 0, 1000) //maximum 1000 points + if("toggle_open") + if(teleporter.locked) + usr << "The teleporter is locked" + return + teleporter.toggle_open() + if("teleporter_lock") + if(teleporter.state_open) + usr << "Close the teleporter before locking!" + return + teleporter.locked = !teleporter.locked + if("teleport") + if(!teleporter || !beacon) + return + addtimer(src, "teleport", 5, FALSE, usr) + +/obj/machinery/computer/gulag_teleporter_computer/proc/scan_machinery() + teleporter = findteleporter() + beacon = findbeacon() + +/obj/machinery/computer/gulag_teleporter_computer/proc/findteleporter() + var/obj/machinery/gulag_teleporter/teleporterf = null + + for(dir in cardinal) + teleporterf = locate(/obj/machinery/gulag_teleporter, get_step(src, dir)) + if(teleporterf && teleporterf.is_operational()) + return teleporterf + +/obj/machinery/computer/gulag_teleporter_computer/proc/findbeacon() + return locate(/obj/structure/gulag_beacon) + +/obj/machinery/computer/gulag_teleporter_computer/proc/teleport(mob/user) + log_game("[user]([user.ckey] teleported [prisoner]([prisoner.ckey]) to the Labor Camp ([beacon.x], [beacon.y], [beacon.z]) for [id.goal] points.") + teleporter.handle_prisoner(id, temporary_record) + playsound(loc, "sound/weapons/emitter.ogg", 50, 1) + prisoner.forceMove(get_turf(beacon)) + prisoner.Weaken(2) // small travel dizziness + prisoner << "The teleportation makes you a little dizzy." + PoolOrNew(/obj/effect/particle_effect/sparks, prisoner.loc) + playsound(src.loc, "sparks", 50, 1) + if(teleporter.locked) + teleporter.locked = FALSE + teleporter.toggle_open() + id = null + temporary_record = null + + + + + + + diff --git a/code/game/machinery/computer/law.dm b/code/game/machinery/computer/law.dm new file mode 100644 index 0000000..debe910 --- /dev/null +++ b/code/game/machinery/computer/law.dm @@ -0,0 +1,78 @@ +//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 + +/obj/machinery/computer/upload + var/mob/living/silicon/current = null //The target of future law uploads + icon_screen = "command" + +/obj/machinery/computer/upload/attackby(obj/item/O, mob/user, params) + if(istype(O, /obj/item/weapon/aiModule)) + var/obj/item/weapon/aiModule/M = O + if(src.stat & (NOPOWER|BROKEN|MAINT)) + return + if(!current) + user << "You haven't selected anything to transmit laws to!" + return + if(!can_upload_to(current)) + user << "Upload failed! Check to make sure [current.name] is functioning properly." + current = null + return + var/turf/currentloc = get_turf(current) + if(currentloc && user.z != currentloc.z) + user << "Upload failed! Unable to establish a connection to [current.name]. You're too far away!" + current = null + return + M.install(current.laws, user) + else + return ..() + +/obj/machinery/computer/upload/proc/can_upload_to(mob/living/silicon/S) + if(S.stat == DEAD || S.syndicate) + return 0 + return 1 + +/obj/machinery/computer/upload/ai + name = "\improper AI upload console" + desc = "Used to upload laws to the AI." + circuit = /obj/item/weapon/circuitboard/computer/aiupload + +/obj/machinery/computer/upload/ai/attack_hand(mob/user) + if(..()) + return + + src.current = select_active_ai(user) + + if (!src.current) + user << "No active AIs detected!" + else + user << "[src.current.name] selected for law changes." + +/obj/machinery/computer/upload/ai/can_upload_to(mob/living/silicon/ai/A) + if(!A || !isAI(A)) + return 0 + if(A.control_disabled) + return 0 + return ..() + + +/obj/machinery/computer/upload/borg + name = "cyborg upload console" + desc = "Used to upload laws to Cyborgs." + circuit = /obj/item/weapon/circuitboard/computer/borgupload + +/obj/machinery/computer/upload/borg/attack_hand(mob/user) + if(..()) + return + + src.current = select_active_free_borg(user) + + if(!src.current) + user << "No active unslaved cyborgs detected!" + else + user << "[src.current.name] selected for law changes." + +/obj/machinery/computer/upload/borg/can_upload_to(mob/living/silicon/robot/B) + if(!B || !iscyborg(B)) + return 0 + if(B.scrambledcodes || B.emagged) + return 0 + return ..() \ No newline at end of file diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm new file mode 100644 index 0000000..c99bfe1 --- /dev/null +++ b/code/game/machinery/computer/medical.dm @@ -0,0 +1,608 @@ +//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 + +/obj/machinery/computer/med_data//TODO:SANITY + name = "medical records console" + desc = "This can be used to check medical records." + icon_screen = "medcomp" + icon_keyboard = "med_key" + req_one_access = list(access_medical, access_forensics_lockers) + circuit = /obj/item/weapon/circuitboard/computer/med_data + var/obj/item/weapon/card/id/scan = null + var/authenticated = null + var/rank = null + var/screen = null + var/datum/data/record/active1 + var/datum/data/record/active2 + var/a_id = null + var/temp = null + var/printing = null + //Sorting Variables + var/sortBy = "name" + var/order = 1 // -1 = Descending - 1 = Ascending + +/obj/machinery/computer/med_data/attackby(obj/item/O, mob/user, params) + if(istype(O, /obj/item/weapon/card/id) && !scan) + if(!user.drop_item()) + return + O.loc = src + scan = O + user << "You insert [O]." + else + return ..() + +/obj/machinery/computer/med_data/attack_hand(mob/user) + if(..()) + return + var/dat + if(src.temp) + dat = text("[src.temp]

    Clear Screen") + else + dat = text("Confirm Identity: []
    ", src, (src.scan ? text("[]", src.scan.name) : "----------")) + if(src.authenticated) + switch(src.screen) + if(1) + dat += {" +Search Records +
    List Records +
    +
    Virus Database +
    Medbot Tracking +
    +
    Record Maintenance +
    {Log Out}
    +"} + if(2) + dat += {" +

    + + + + +
    Records:
    + + + + + + + + +"} + + + if(!isnull(data_core.general)) + for(var/datum/data/record/R in sortRecord(data_core.general, sortBy, order)) + var/blood_type = "" + var/b_dna = "" + for(var/datum/data/record/E in data_core.medical) + if((E.fields["name"] == R.fields["name"] && E.fields["id"] == R.fields["id"])) + blood_type = E.fields["blood_type"] + b_dna = E.fields["b_dna"] + var/background + + if(R.fields["m_stat"] == "*Insane*" || R.fields["p_stat"] == "*Deceased*") + background = "'background-color:#990000;'" + else if(R.fields["p_stat"] == "*Unconscious*" || R.fields["m_stat"] == "*Unstable*") + background = "'background-color:#CD6500;'" + else if(R.fields["p_stat"] == "Physically Unfit" || R.fields["m_stat"] == "*Watch*") + background = "'background-color:#3BB9FF;'" + else + background = "'background-color:#4F7529;'" + + dat += text("", background, src, R.fields["id"], R.fields["name"]) + dat += text("", R.fields["id"]) + dat += text("", R.fields["fingerprint"], b_dna) + dat += text("", blood_type) + dat += text("", R.fields["p_stat"]) + dat += text("", R.fields["m_stat"]) + dat += "
    NameIDFingerprints (F) | DNA (D)Blood TypePhysical StatusMental Status
    [][]F: []
    D: []
    [][][]

    " +// if(data_core.general) +// for(var/datum/data/record/R in sortRecord(data_core.general)) +// dat += "[R.fields["id"]]: [R.fields["name"]]
    " +// //Foreach goto(132) + dat += text("
    Back", src) + if(3) + dat += text("Records Maintenance
    \nBackup To Disk
    \nUpload From Disk
    \nDelete All Records
    \n
    \nBack", src, src, src, src) + if(4) + + dat += "" + if(active1 in data_core.general) + if(istype(active1.fields["photo_front"], /obj/item/weapon/photo)) + var/obj/item/weapon/photo/P1 = active1.fields["photo_front"] + user << browse_rsc(P1.img, "photo_front") + if(istype(active1.fields["photo_side"], /obj/item/weapon/photo)) + var/obj/item/weapon/photo/P2 = active1.fields["photo_side"] + user << browse_rsc(P2.img, "photo_side") + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + if(config.mutant_races) + dat += "" + dat += "" + dat += "" + dat += "" + else + dat += "" + + dat += "" + if(active2 in data_core.medical) + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" //(per disease info placed in log/comment section) + dat += "" + dat += "" + + dat += "" + var/counter = 1 + while(src.active2.fields[text("com_[]", counter)]) + dat += "" + counter++ + dat += "" + + dat += "" + else + dat += "" + dat += "" + dat += "" + dat += "" + dat += "
    Medical Record
    Name:[active1.fields["name"]]
    ID:[active1.fields["id"]]
    Sex: [active1.fields["sex"]] 
    Age: [active1.fields["age"]] 
    Species: [active1.fields["species"]] 
    Fingerprint: [active1.fields["fingerprint"]] 
    Physical Status: [active1.fields["p_stat"]] 
    Mental Status: [active1.fields["m_stat"]] 
    General Record Lost!

    Medical Data
    Blood Type: [active2.fields["blood_type"]] 
    DNA: [active2.fields["b_dna"]] 

    Minor Disabilities:

     [active2.fields["mi_dis"]] 
    Details: [active2.fields["mi_dis_d"]] 

    Major Disabilities:

     [active2.fields["ma_dis"]] 
    Details: [active2.fields["ma_dis_d"]] 

    Allergies:

     [active2.fields["alg"]] 
    Details: [active2.fields["alg_d"]] 

    Current Diseases:

     [active2.fields["cdi"]] 
    Details: [active2.fields["cdi_d"]] 

    Important Notes:

     [active2.fields["notes"]] 

    Comments/Log
    [active2.fields[text("com_[]", counter)]]
    Delete Entry
    Add Entry

    Delete Record (Medical Only)
    Medical Record Lost!

    New Record
    Print Record
    Back
    " + if(5) + dat += "
    Virus Database
    " + for(var/Dt in typesof(/datum/disease/)) + var/datum/disease/Dis = new Dt(0) + if(istype(Dis, /datum/disease/advance)) + continue // TODO (tm): Add advance diseases to the virus database which no one uses. + if(!Dis.desc) + continue + dat += "
    [Dis.name]" + dat += "
    Back" + if(6) + dat += "
    Medical Robot Monitor
    " + dat += "Back" + dat += "
    Medical Robots:" + var/bdat = null + for(var/mob/living/simple_animal/bot/medbot/M in living_mob_list) + if(M.z != src.z) + continue //only find medibots on the same z-level as the computer + var/turf/bl = get_turf(M) + if(bl) //if it can't find a turf for the medibot, then it probably shouldn't be showing up + bdat += "[M.name] - \[[bl.x],[bl.y]\] - [M.on ? "Online" : "Offline"]
    " + if((!isnull(M.reagent_glass)) && M.use_beaker) + bdat += "Reservoir: \[[M.reagent_glass.reagents.total_volume]/[M.reagent_glass.reagents.maximum_volume]\]
    " + else + bdat += "Using Internal Synthesizer.
    " + + if(!bdat) + dat += "
    None detected
    " + else + dat += "
    [bdat]" + + else + else + dat += text("{Log In}", src) + //user << browse(text("Medical Records[]", dat), "window=med_rec") + //onclose(user, "med_rec") + var/datum/browser/popup = new(user, "med_rec", "Medical Records Console", 600, 400) + popup.set_content(dat) + popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) + popup.open() + return + +/obj/machinery/computer/med_data/Topic(href, href_list) + . = ..() + if(.) + return . + if(!(active1 in data_core.general)) + src.active1 = null + if(!(active2 in data_core.medical)) + src.active2 = null + + if(usr.contents.Find(src) || (in_range(src, usr) && isturf(loc)) || issilicon(usr) || IsAdminGhost(usr)) + usr.set_machine(src) + if(href_list["temp"]) + src.temp = null + if(href_list["scan"]) + if(src.scan) + if(ishuman(usr) && !usr.get_active_held_item()) + usr.put_in_hands(scan) + else + scan.loc = get_turf(src) + src.scan = null + else + var/obj/item/I = usr.get_active_held_item() + if(istype(I, /obj/item/weapon/card/id)) + if(!usr.drop_item()) + return + I.loc = src + src.scan = I + else if(href_list["logout"]) + src.authenticated = null + src.screen = null + src.active1 = null + src.active2 = null + else if(href_list["choice"]) + // SORTING! + if(href_list["choice"] == "Sorting") + // Reverse the order if clicked twice + if(sortBy == href_list["sort"]) + if(order == 1) + order = -1 + else + order = 1 + else + // New sorting order! + sortBy = href_list["sort"] + order = initial(order) + else if(href_list["login"]) + if(issilicon(usr)) + src.active1 = null + src.active2 = null + src.authenticated = 1 + src.rank = "AI" + src.screen = 1 + else if(IsAdminGhost(usr)) + src.active1 = null + src.active2 = null + src.authenticated = 1 + src.rank = "Central Command" + src.screen = 1 + else if(istype(src.scan, /obj/item/weapon/card/id)) + src.active1 = null + src.active2 = null + if(src.check_access(src.scan)) + src.authenticated = src.scan.registered_name + src.rank = src.scan.assignment + src.screen = 1 + if(src.authenticated) + + if(href_list["screen"]) + src.screen = text2num(href_list["screen"]) + if(src.screen < 1) + src.screen = 1 + + src.active1 = null + src.active2 = null + + else if(href_list["vir"]) + var/type = href_list["vir"] + var/datum/disease/Dis = new type(0) + var/AfS = "" + for(var/mob/M in Dis.viable_mobtypes) + AfS += " [initial(M.name)];" + src.temp = {"Name: [Dis.name] +
    Number of stages: [Dis.max_stages] +
    Spread: [Dis.spread_text] Transmission +
    Possible Cure: [(Dis.cure_text||"none")] +
    Affected Lifeforms:[AfS] +
    +
    Notes: [Dis.desc] +
    +
    Severity: [Dis.severity]"} + + else if(href_list["del_all"]) + src.temp = text("Are you sure you wish to delete all records?
    \n\tYes
    \n\tNo
    ", src, src) + + else if(href_list["del_all2"]) + investigate_log("[usr.name] ([usr.key]) has deleted all medical records.", "records") + data_core.medical.Cut() + src.temp = "All records deleted." + + else if(href_list["field"]) + var/a1 = src.active1 + var/a2 = src.active2 + switch(href_list["field"]) + if("fingerprint") + if(active1) + var/t1 = stripped_input("Please input fingerprint hash:", "Med. records", src.active1.fields["fingerprint"], null) + if(!canUseMedicalRecordsConsole(usr, t1, a1)) + return + src.active1.fields["fingerprint"] = t1 + if("sex") + if(active1) + if(src.active1.fields["sex"] == "Male") + src.active1.fields["sex"] = "Female" + else + src.active1.fields["sex"] = "Male" + if("age") + if(active1) + var/t1 = input("Please input age:", "Med. records", src.active1.fields["age"], null) as num + if(!canUseMedicalRecordsConsole(usr, t1, a1)) + return + src.active1.fields["age"] = t1 + if("species") + if(active1) + var/t1 = stripped_input("Please input species name", "Med. records", src.active1.fields["species"], null) + if(!canUseMedicalRecordsConsole(usr, t1, a1)) + return + active1.fields["species"] = t1 + if("mi_dis") + if(active2) + var/t1 = stripped_input("Please input minor disabilities list:", "Med. records", src.active2.fields["mi_dis"], null) + if(!canUseMedicalRecordsConsole(usr, t1, null, a2)) + return + src.active2.fields["mi_dis"] = t1 + if("mi_dis_d") + if(active2) + var/t1 = stripped_multiline_input("Please summarize minor dis.:", "Med. records", src.active2.fields["mi_dis_d"], null) + if(!canUseMedicalRecordsConsole(usr, t1, null, a2)) + return + src.active2.fields["mi_dis_d"] = t1 + if("ma_dis") + if(active2) + var/t1 = stripped_input("Please input major diabilities list:", "Med. records", src.active2.fields["ma_dis"], null) + if(!canUseMedicalRecordsConsole(usr, t1, null, a2)) + return + src.active2.fields["ma_dis"] = t1 + if("ma_dis_d") + if(active2) + var/t1 = stripped_multiline_input("Please summarize major dis.:", "Med. records", src.active2.fields["ma_dis_d"], null) + if(!canUseMedicalRecordsConsole(usr, t1, null, a2)) + return + src.active2.fields["ma_dis_d"] = t1 + if("alg") + if(active2) + var/t1 = stripped_input("Please state allergies:", "Med. records", src.active2.fields["alg"], null) + if(!canUseMedicalRecordsConsole(usr, t1, null, a2)) + return + src.active2.fields["alg"] = t1 + if("alg_d") + if(active2) + var/t1 = stripped_multiline_input("Please summarize allergies:", "Med. records", src.active2.fields["alg_d"], null) + if(!canUseMedicalRecordsConsole(usr, t1, null, a2)) + return + src.active2.fields["alg_d"] = t1 + if("cdi") + if(active2) + var/t1 = stripped_input("Please state diseases:", "Med. records", src.active2.fields["cdi"], null) + if(!canUseMedicalRecordsConsole(usr, t1, null, a2)) + return + src.active2.fields["cdi"] = t1 + if("cdi_d") + if(active2) + var/t1 = stripped_multiline_input("Please summarize diseases:", "Med. records", src.active2.fields["cdi_d"], null) + if(!canUseMedicalRecordsConsole(usr, t1, null, a2)) + return + src.active2.fields["cdi_d"] = t1 + if("notes") + if(active2) + var/t1 = stripped_multiline_input("Please summarize notes:", "Med. records", src.active2.fields["notes"], null) + if(!canUseMedicalRecordsConsole(usr, t1, null, a2)) + return + src.active2.fields["notes"] = t1 + if("p_stat") + if(active1) + src.temp = text("Physical Condition:
    \n\t*Deceased*
    \n\t*Unconscious*
    \n\tActive
    \n\tPhysically Unfit
    ", src, src, src, src) + if("m_stat") + if(active1) + src.temp = text("Mental Condition:
    \n\t*Insane*
    \n\t*Unstable*
    \n\t*Watch*
    \n\tStable
    ", src, src, src, src) + if("blood_type") + if(active2) + src.temp = text("Blood Type:
    \n\tA- A+
    \n\tB- B+
    \n\tAB- AB+
    \n\tO- O+
    ", src, src, src, src, src, src, src, src) + if("b_dna") + if(active2) + var/t1 = stripped_input("Please input DNA hash:", "Med. records", src.active2.fields["b_dna"], null) + if(!canUseMedicalRecordsConsole(usr, t1, null, a2)) + return + src.active2.fields["b_dna"] = t1 + if("show_photo_front") + if(active1) + if(active1.fields["photo_front"]) + if(istype(active1.fields["photo_front"], /obj/item/weapon/photo)) + var/obj/item/weapon/photo/P = active1.fields["photo_front"] + P.show(usr) + if("show_photo_side") + if(active1) + if(active1.fields["photo_side"]) + if(istype(active1.fields["photo_side"], /obj/item/weapon/photo)) + var/obj/item/weapon/photo/P = active1.fields["photo_side"] + P.show(usr) + else + + else if(href_list["p_stat"]) + if(active1) + switch(href_list["p_stat"]) + if("deceased") + src.active1.fields["p_stat"] = "*Deceased*" + if("unconscious") + src.active1.fields["p_stat"] = "*Unconscious*" + if("active") + src.active1.fields["p_stat"] = "Active" + if("unfit") + src.active1.fields["p_stat"] = "Physically Unfit" + + else if(href_list["m_stat"]) + if(active1) + switch(href_list["m_stat"]) + if("insane") + src.active1.fields["m_stat"] = "*Insane*" + if("unstable") + src.active1.fields["m_stat"] = "*Unstable*" + if("watch") + src.active1.fields["m_stat"] = "*Watch*" + if("stable") + src.active1.fields["m_stat"] = "Stable" + + + else if(href_list["blood_type"]) + if(active2) + switch(href_list["blood_type"]) + if("an") + src.active2.fields["blood_type"] = "A-" + if("bn") + src.active2.fields["blood_type"] = "B-" + if("abn") + src.active2.fields["blood_type"] = "AB-" + if("on") + src.active2.fields["blood_type"] = "O-" + if("ap") + src.active2.fields["blood_type"] = "A+" + if("bp") + src.active2.fields["blood_type"] = "B+" + if("abp") + src.active2.fields["blood_type"] = "AB+" + if("op") + src.active2.fields["blood_type"] = "O+" + + + else if(href_list["del_r"]) + if(active2) + src.temp = text("Are you sure you wish to delete the record (Medical Portion Only)?
    \n\tYes
    \n\tNo
    ", src, src) + + else if(href_list["del_r2"]) + investigate_log("[usr.name] ([usr.key]) has deleted the medical records for [active1.fields["name"]].", "records") + if(active2) + data_core.medical -= active2 + active2 = null + + else if(href_list["d_rec"]) + active1 = find_record("id", href_list["d_rec"], data_core.general) + if(active1) + active2 = find_record("id", href_list["d_rec"], data_core.medical) + if(!active2) + active1 = null + screen = 4 + + else if(href_list["new"]) + if((istype(src.active1, /datum/data/record) && !( istype(src.active2, /datum/data/record) ))) + var/datum/data/record/R = new /datum/data/record( ) + R.fields["name"] = src.active1.fields["name"] + R.fields["id"] = src.active1.fields["id"] + R.name = text("Medical Record #[]", R.fields["id"]) + R.fields["blood_type"] = "Unknown" + R.fields["b_dna"] = "Unknown" + R.fields["mi_dis"] = "None" + R.fields["mi_dis_d"] = "No minor disabilities have been diagnosed." + R.fields["ma_dis"] = "None" + R.fields["ma_dis_d"] = "No major disabilities have been diagnosed." + R.fields["alg"] = "None" + R.fields["alg_d"] = "No allergies have been detected in this patient." + R.fields["cdi"] = "None" + R.fields["cdi_d"] = "No diseases have been diagnosed at the moment." + R.fields["notes"] = "No notes." + data_core.medical += R + src.active2 = R + src.screen = 4 + + else if(href_list["add_c"]) + if(!(active2 in data_core.medical)) + return + var/a2 = src.active2 + var/t1 = stripped_multiline_input("Add Comment:", "Med. records", null, null) + if(!canUseMedicalRecordsConsole(usr, t1, null, a2)) + return + var/counter = 1 + while(src.active2.fields[text("com_[]", counter)]) + counter++ + src.active2.fields[text("com_[]", counter)] = text("Made by [] ([]) on [] [], []
    []", src.authenticated, src.rank, worldtime2text(), time2text(world.realtime, "MMM DD"), year_integer+540, t1,) + + else if(href_list["del_c"]) + if((istype(src.active2, /datum/data/record) && src.active2.fields[text("com_[]", href_list["del_c"])])) + src.active2.fields[text("com_[]", href_list["del_c"])] = "Deleted" + + else if(href_list["search"]) + var/t1 = stripped_input(usr, "Search String: (Name, DNA, or ID)", "Med. records") + if(!canUseMedicalRecordsConsole(usr, t1)) + return + src.active1 = null + src.active2 = null + t1 = lowertext(t1) + for(var/datum/data/record/R in data_core.medical) + if((lowertext(R.fields["name"]) == t1 || t1 == lowertext(R.fields["id"]) || t1 == lowertext(R.fields["b_dna"]))) + src.active2 = R + else + //Foreach continue //goto(3229) + if(!( src.active2 )) + src.temp = text("Could not locate record [].", sanitize(t1)) + else + for(var/datum/data/record/E in data_core.general) + if((E.fields["name"] == src.active2.fields["name"] || E.fields["id"] == src.active2.fields["id"])) + src.active1 = E + else + //Foreach continue //goto(3334) + src.screen = 4 + + else if(href_list["print_p"]) + if(!( src.printing )) + src.printing = 1 + data_core.medicalPrintCount++ + playsound(loc, 'sound/items/poster_being_created.ogg', 100, 1) + sleep(30) + var/obj/item/weapon/paper/P = new /obj/item/weapon/paper( src.loc ) + P.info = "
    Medical Record - (MR-[data_core.medicalPrintCount])

    " + if(active1 in data_core.general) + P.info += text("Name: [] ID: []
    \nSex: []
    \nAge: []
    ", src.active1.fields["name"], src.active1.fields["id"], src.active1.fields["sex"], src.active1.fields["age"]) + if(config.mutant_races) + P.info += "\nSpecies: [active1.fields["species"]]
    " + P.info += text("\nFingerprint: []
    \nPhysical Status: []
    \nMental Status: []
    ", src.active1.fields["fingerprint"], src.active1.fields["p_stat"], src.active1.fields["m_stat"]) + else + P.info += "General Record Lost!
    " + if(active2 in data_core.medical) + P.info += text("
    \n
    Medical Data

    \nBlood Type: []
    \nDNA: []
    \n
    \nMinor Disabilities: []
    \nDetails: []
    \n
    \nMajor Disabilities: []
    \nDetails: []
    \n
    \nAllergies: []
    \nDetails: []
    \n
    \nCurrent Diseases: [] (per disease info placed in log/comment section)
    \nDetails: []
    \n
    \nImportant Notes:
    \n\t[]
    \n
    \n
    Comments/Log

    ", src.active2.fields["blood_type"], src.active2.fields["b_dna"], src.active2.fields["mi_dis"], src.active2.fields["mi_dis_d"], src.active2.fields["ma_dis"], src.active2.fields["ma_dis_d"], src.active2.fields["alg"], src.active2.fields["alg_d"], src.active2.fields["cdi"], src.active2.fields["cdi_d"], src.active2.fields["notes"]) + var/counter = 1 + while(src.active2.fields[text("com_[]", counter)]) + P.info += text("[]
    ", src.active2.fields[text("com_[]", counter)]) + counter++ + P.name = text("MR-[] '[]'", data_core.medicalPrintCount, src.active1.fields["name"]) + else + P.info += "Medical Record Lost!
    " + P.name = text("MR-[] '[]'", data_core.medicalPrintCount, "Record Lost") + P.info += "
    " + src.printing = null + + src.add_fingerprint(usr) + src.updateUsrDialog() + return + +/obj/machinery/computer/med_data/emp_act(severity) + if(!(stat & (BROKEN|NOPOWER))) + for(var/datum/data/record/R in data_core.medical) + if(prob(10/severity)) + switch(rand(1,6)) + if(1) + if(prob(10)) + R.fields["name"] = random_unique_lizard_name(R.fields["sex"],1) + else + R.fields["name"] = random_unique_name(R.fields["sex"],1) + if(2) + R.fields["sex"] = pick("Male", "Female") + if(3) + R.fields["age"] = rand(AGE_MIN, AGE_MAX) + if(4) + R.fields["blood_type"] = random_blood_type() + if(5) + R.fields["p_stat"] = pick("*Unconcious*", "Active", "Physically Unfit") + if(6) + R.fields["m_stat"] = pick("*Insane*", "*Unstable*", "*Watch*", "Stable") + continue + + else if(prob(1)) + qdel(R) + continue + ..() + +/obj/machinery/computer/med_data/proc/canUseMedicalRecordsConsole(mob/user, message = 1, record1, record2) + if(user) + if(message) + if(authenticated) + if(user.canUseTopic(src)) + if(!record1 || record1 == active1) + if(!record2 || record2 == active2) + return 1 + return 0 + +/obj/machinery/computer/med_data/laptop + name = "medical laptop" + desc = "A cheap Nanotrasen medical laptop, it functions as a medical records computer. It's bolted to the table." + icon_state = "laptop" + icon_screen = "medlaptop" + icon_keyboard = "laptop_key" + clockwork = TRUE //it'd look weird diff --git a/code/game/machinery/computer/message.dm b/code/game/machinery/computer/message.dm new file mode 100644 index 0000000..f3f2805 --- /dev/null +++ b/code/game/machinery/computer/message.dm @@ -0,0 +1,468 @@ + +// Allows you to monitor messages that passes the server. + + + + +/obj/machinery/computer/message_monitor + name = "message monitor console" + desc = "Used to Monitor the crew's messages, that are sent via PDA. Can also be used to view Request Console messages." + icon_screen = "comm_logs" + circuit = /obj/item/weapon/circuitboard/computer/message_monitor + //Server linked to. + var/obj/machinery/message_server/linkedServer = null + //Sparks effect - For emag + var/datum/effect_system/spark_spread/spark_system = new /datum/effect_system/spark_spread + //Messages - Saves me time if I want to change something. + var/noserver = "ALERT: No server detected." + var/incorrectkey = "ALERT: Incorrect decryption key!" + var/defaultmsg = "Welcome. Please select an option." + var/rebootmsg = "%$&(: Critical %$$@ Error // !RestArting! - ?pLeaSe wAit!" + //Computer properties + var/screen = 0 // 0 = Main menu, 1 = Message Logs, 2 = Hacked screen, 3 = Custom Message + var/hacking = 0 // Is it being hacked into by the AI/Cyborg + var/message = "System bootup complete. Please select an option." // The message that shows on the main menu. + var/auth = 0 // Are they authenticated? + var/optioncount = 7 + // Custom Message Properties + var/customsender = "System Administrator" + var/obj/item/device/pda/customrecepient = null + var/customjob = "Admin" + var/custommessage = "This is a test, please ignore." + +/obj/machinery/computer/message_monitor/attackby(obj/item/weapon/O, mob/living/user, params) + if(istype(O, /obj/item/weapon/screwdriver) && emagged) + //Stops people from just unscrewing the monitor and putting it back to get the console working again. + user << "It is too hot to mess with!" + else + return ..() + +/obj/machinery/computer/message_monitor/emag_act(mob/user) + if(!emagged) + if(!isnull(src.linkedServer)) + emagged = 1 + screen = 2 + spark_system.set_up(5, 0, src) + src.spark_system.start() + var/obj/item/weapon/paper/monitorkey/MK = new/obj/item/weapon/paper/monitorkey + MK.loc = src.loc + // Will help make emagging the console not so easy to get away with. + MK.info += "

    %@%(*$%&(&?*(%&/{}" + var/time = 100 * length(src.linkedServer.decryptkey) + addtimer(src, "UnmagConsole", time) + message = rebootmsg + else + user << "A no server error appears on the screen." + +/obj/machinery/computer/message_monitor/initialize() + //Is the server isn't linked to a server, and there's a server available, default it to the first one in the list. + if(!linkedServer) + if(message_servers && message_servers.len > 0) + linkedServer = message_servers[1] + return + +/obj/machinery/computer/message_monitor/attack_hand(mob/living/user) + if(..()) + return + //If the computer is being hacked or is emagged, display the reboot message. + if(hacking || emagged) + message = rebootmsg + var/dat = "
    /
    " + + if(auth) + dat += "

    \[Authenticated\] /" + dat += " Server Power: [src.linkedServer && src.linkedServer.active ? "\[On\]":"\[Off\]"]

    " + else + dat += "

    \[Unauthenticated\] /" + dat += " Server Power: [src.linkedServer && src.linkedServer.active ? "\[On\]":"\[Off\]"]

    " + + if(hacking || emagged) + screen = 2 + else if(!auth || !linkedServer || (linkedServer.stat & (NOPOWER|BROKEN))) + if(!linkedServer || (linkedServer.stat & (NOPOWER|BROKEN))) message = noserver + screen = 0 + + switch(screen) + //Main menu + if(0) + // = TAB + var/i = 0 + dat += "
    [++i]. Link To A Server
    " + if(auth) + if(!linkedServer || (linkedServer.stat & (NOPOWER|BROKEN))) + dat += "
    ERROR: Server not found!
    " + else + dat += "
    [++i]. View Message Logs
    " + dat += "
    [++i]. View Request Console Logs
    " + dat += "
    [++i]. Clear Message Logs
    " + dat += "
    [++i]. Clear Request Console Logs
    " + dat += "
    [++i]. Set Custom Key
    " + dat += "
    [++i]. Send Admin Message
    " + else + for(var/n = ++i; n <= optioncount; n++) + dat += "
    [n]. ---------------
    " + if(issilicon(usr) && is_special_character(usr)) + //Malf/Traitor AIs can bruteforce into the system to gain the Key. + dat += "
    *&@#. Bruteforce Key
    " + else + dat += "
    " + + //Bottom message + if(!auth) + dat += "

    Please authenticate with the server in order to show additional options." + else + dat += "

    Reg, #514 forbids sending messages to a Head of Staff containing Erotic Rendering Properties." + + //Message Logs + if(1) + var/index = 0 + //var/recipient = "Unspecified" //name of the person + //var/sender = "Unspecified" //name of the sender + //var/message = "Blank" //transferred message + dat += "
    Back - Refresh

    " + dat += "" + for(var/datum/data_pda_msg/pda in src.linkedServer.pda_msgs) + index++ + if(index > 3000) + break + // Del - Sender - Recepient - Message + // X - Al Green - Your Mom - WHAT UP!? + dat += "" + dat += "
    XSenderRecipientMessage
    X
    [pda.sender][pda.recipient][pda.message][pda.photo ? "(Photo)":""]
    " + //Hacking screen. + if(2) + if(isAI(user) || iscyborg(user)) + dat += "Brute-forcing for server key.
    It will take 20 seconds for every character that the password has." + dat += "In the meantime, this console can reveal your true intentions if you let someone access it. Make sure no humans enter the room during that time." + else + //It's the same message as the one above but in binary. Because robots understand binary and humans don't... well I thought it was clever. + dat += {"01000010011100100111010101110100011001010010110
    + 10110011001101111011100100110001101101001011011100110011
    + 10010000001100110011011110111001000100000011100110110010
    + 10111001001110110011001010111001000100000011010110110010
    + 10111100100101110001000000100100101110100001000000111011
    + 10110100101101100011011000010000001110100011000010110101
    + 10110010100100000001100100011000000100000011100110110010
    + 10110001101101111011011100110010001110011001000000110011
    + 00110111101110010001000000110010101110110011001010111001
    + 00111100100100000011000110110100001100001011100100110000
    + 10110001101110100011001010111001000100000011101000110100
    + 00110000101110100001000000111010001101000011001010010000
    + 00111000001100001011100110111001101110111011011110111001
    + 00110010000100000011010000110000101110011001011100010000
    + 00100100101101110001000000111010001101000011001010010000
    + 00110110101100101011000010110111001110100011010010110110
    + 10110010100101100001000000111010001101000011010010111001
    + 10010000001100011011011110110111001110011011011110110110
    + 00110010100100000011000110110000101101110001000000111001
    + 00110010101110110011001010110000101101100001000000111100
    + 10110111101110101011100100010000001110100011100100111010
    + 10110010100100000011010010110111001110100011001010110111
    + 00111010001101001011011110110111001110011001000000110100
    + 10110011000100000011110010110111101110101001000000110110
    + 00110010101110100001000000111001101101111011011010110010
    + 10110111101101110011001010010000001100001011000110110001
    + 10110010101110011011100110010000001101001011101000010111
    + 00010000001001101011000010110101101100101001000000111001
    + 10111010101110010011001010010000001101110011011110010000
    + 00110100001110101011011010110000101101110011100110010000
    + 00110010101101110011101000110010101110010001000000111010
    + 00110100001100101001000000111001001101111011011110110110
    + 10010000001100100011101010111001001101001011011100110011
    + 10010000001110100011010000110000101110100001000000111010
    + 001101001011011010110010100101110"} + + //Fake messages + if(3) + dat += "
    Back - Reset

    " + + dat += {" + + + + "} + //Sender - Sender's Job - Recepient - Message + //Al Green- Your Dad - Your Mom - WHAT UP!? + + dat += {" + + + "} + dat += "
    SenderSender's JobRecipientMessage
    [customsender][customjob][customrecepient ? customrecepient.owner : "NONE"][custommessage]

    Send" + + //Request Console Logs + if(4) + + var/index = 0 + /* data_rc_msg + X - 5% + var/rec_dpt = "Unspecified" //name of the person - 15% + var/send_dpt = "Unspecified" //name of the sender- 15% + var/message = "Blank" //transferred message - 300px + var/stamp = "Unstamped" - 15% + var/id_auth = "Unauthenticated" - 15% + var/priority = "Normal" - 10% + */ + dat += "
    Back - Refresh

    " + dat += {" + "} + for(var/datum/data_rc_msg/rc in src.linkedServer.rc_msgs) + index++ + if(index > 3000) + break + // Del - Sender - Recepient - Message + // X - Al Green - Your Mom - WHAT UP!? + dat += {" + "} + dat += "
    XSending Dep.Receiving Dep.MessageStampID Auth.Priority.
    X
    [rc.send_dpt][rc.rec_dpt][rc.message][rc.stamp][rc.id_auth][rc.priority]
    " + + message = defaultmsg + //user << browse(dat, "window=message;size=700x700") + //onclose(user, "message") + var/datum/browser/popup = new(user, "hologram_console", name, 700, 700) + popup.set_content(dat) + popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) + popup.open() + return + +/obj/machinery/computer/message_monitor/proc/BruteForce(mob/user) + if(isnull(linkedServer)) + user << "Could not complete brute-force: Linked Server Disconnected!" + else + var/currentKey = src.linkedServer.decryptkey + user << "Brute-force completed! The key is '[currentKey]'." + src.hacking = 0 + src.screen = 0 // Return the screen back to normal + +/obj/machinery/computer/message_monitor/proc/UnmagConsole() + src.emagged = 0 + +/obj/machinery/computer/message_monitor/proc/ResetMessage() + customsender = "System Administrator" + customrecepient = null + custommessage = "This is a test, please ignore." + customjob = "Admin" + +/obj/machinery/computer/message_monitor/Topic(href, href_list) + if(..()) + return + + if(usr.contents.Find(src) || (in_range(src, usr) && isturf(loc)) || issilicon(usr)) + //Authenticate + if (href_list["auth"]) + if(!linkedServer || linkedServer.stat & (NOPOWER|BROKEN)) + message = noserver + else + if(auth) + auth = 0 + screen = 0 + else + var/dkey = trim(input(usr, "Please enter the decryption key.") as text|null) + if(dkey && dkey != "") + if(src.linkedServer.decryptkey == dkey) + auth = 1 + else + message = incorrectkey + + //Turn the server on/off. + if (href_list["active"]) + if(auth) linkedServer.active = !linkedServer.active + //Find a server + if (href_list["find"]) + if(message_servers && message_servers.len > 1) + src.linkedServer = input(usr,"Please select a server.", "Select a server.", null) as null|anything in message_servers + message = "NOTICE: Server selected." + else if(message_servers && message_servers.len > 0) + linkedServer = message_servers[1] + message = "NOTICE: Only Single Server Detected - Server selected." + else + message = noserver + + //View the logs - KEY REQUIRED + if (href_list["view"]) + if(src.linkedServer == null || (src.linkedServer.stat & (NOPOWER|BROKEN))) + message = noserver + else + if(auth) + src.screen = 1 + + //Clears the logs - KEY REQUIRED + if (href_list["clear"]) + if(!linkedServer || (src.linkedServer.stat & (NOPOWER|BROKEN))) + message = noserver + else + if(auth) + src.linkedServer.pda_msgs = list() + message = "NOTICE: Logs cleared." + //Clears the request console logs - KEY REQUIRED + if (href_list["clearr"]) + if(!linkedServer || (src.linkedServer.stat & (NOPOWER|BROKEN))) + message = noserver + else + if(auth) + src.linkedServer.rc_msgs = list() + message = "NOTICE: Logs cleared." + //Change the password - KEY REQUIRED + if (href_list["pass"]) + if(!linkedServer || (src.linkedServer.stat & (NOPOWER|BROKEN))) + message = noserver + else + if(auth) + var/dkey = trim(input(usr, "Please enter the decryption key.") as text|null) + if(dkey && dkey != "") + if(src.linkedServer.decryptkey == dkey) + var/newkey = trim(input(usr,"Please enter the new key (3 - 16 characters max):")) + if(length(newkey) <= 3) + message = "NOTICE: Decryption key too short!" + else if(length(newkey) > 16) + message = "NOTICE: Decryption key too long!" + else if(newkey && newkey != "") + src.linkedServer.decryptkey = newkey + message = "NOTICE: Decryption key set." + else + message = incorrectkey + + //Hack the Console to get the password + if (href_list["hack"]) + if(issilicon(usr) && is_special_character(usr)) + src.hacking = 1 + src.screen = 2 + //Time it takes to bruteforce is dependant on the password length. + spawn(100*length(src.linkedServer.decryptkey)) + if(src && src.linkedServer && usr) + BruteForce(usr) + //Delete the log. + if (href_list["delete"]) + //Are they on the view logs screen? + if(screen == 1) + if(!linkedServer || (src.linkedServer.stat & (NOPOWER|BROKEN))) + message = noserver + else //if(istype(href_list["delete"], /datum/data_pda_msg)) + src.linkedServer.pda_msgs -= locate(href_list["delete"]) + message = "NOTICE: Log Deleted!" + //Delete the request console log. + if (href_list["deleter"]) + //Are they on the view logs screen? + if(screen == 4) + if(!linkedServer || (src.linkedServer.stat & (NOPOWER|BROKEN))) + message = noserver + else //if(istype(href_list["delete"], /datum/data_pda_msg)) + src.linkedServer.rc_msgs -= locate(href_list["deleter"]) + message = "NOTICE: Log Deleted!" + //Create a custom message + if (href_list["msg"]) + if(src.linkedServer == null || (src.linkedServer.stat & (NOPOWER|BROKEN))) + message = noserver + else + if(auth) + src.screen = 3 + //Fake messaging selection - KEY REQUIRED + if (href_list["select"]) + if(src.linkedServer == null || (src.linkedServer.stat & (NOPOWER|BROKEN))) + message = noserver + screen = 0 + else + switch(href_list["select"]) + + //Reset + if("Reset") + ResetMessage() + + //Select Your Name + if("Sender") + customsender = stripped_input(usr, "Please enter the sender's name.") + + //Select Receiver + if("Recepient") + //Get out list of viable PDAs + var/list/obj/item/device/pda/sendPDAs = get_viewable_pdas() + if(PDAs && PDAs.len > 0) + customrecepient = input(usr, "Select a PDA from the list.") as null|anything in sortNames(sendPDAs) + else + customrecepient = null + + //Enter custom job + if("RecJob") + customjob = stripped_input(usr, "Please enter the sender's job.") + + //Enter message + if("Message") + custommessage = stripped_input(usr, "Please enter your message.") + + //Send message + if("Send") + + if(isnull(customsender) || customsender == "") + customsender = "UNKNOWN" + + if(isnull(customrecepient)) + message = "NOTICE: No recepient selected!" + return src.attack_hand(usr) + + if(isnull(custommessage) || custommessage == "") + message = "NOTICE: No message entered!" + return src.attack_hand(usr) + + var/obj/item/device/pda/PDARec = null + for (var/obj/item/device/pda/P in get_viewable_pdas()) + if(P.owner == customsender) + PDARec = P + //Sender isn't faking as someone who exists + if(isnull(PDARec)) + src.linkedServer.send_pda_message("[customrecepient.owner]", "[customsender]","[custommessage]") + customrecepient.tnote += "← From
    [customsender] ([customjob]):
    [custommessage]
    " + if (!customrecepient.silent) + playsound(customrecepient.loc, 'sound/machines/twobeep.ogg', 50, 1) + customrecepient.audible_message("\icon[customrecepient] *[customrecepient.ttone]*", null, 3) + if( customrecepient.loc && ishuman(customrecepient.loc) ) + var/mob/living/carbon/human/H = customrecepient.loc + H << "\icon[customrecepient] Message from [customsender] ([customjob]), \"[custommessage]\" (Reply)" + log_pda("[usr]/([usr.ckey]) (PDA: [customsender]) sent \"[custommessage]\" to [customrecepient.owner]") + customrecepient.cut_overlays() + customrecepient.add_overlay(image('icons/obj/pda.dmi', "pda-r")) + //Sender is faking as someone who exists + else + src.linkedServer.send_pda_message("[customrecepient.owner]", "[PDARec.owner]","[custommessage]") + customrecepient.tnote += "← From [PDARec.owner] ([customjob]):
    [custommessage]
    " + if (!customrecepient.silent) + playsound(customrecepient.loc, 'sound/machines/twobeep.ogg', 50, 1) + customrecepient.audible_message("\icon[customrecepient] *[customrecepient.ttone]*", null, 3) + if( customrecepient.loc && ishuman(customrecepient.loc) ) + var/mob/living/carbon/human/H = customrecepient.loc + H << "\icon[customrecepient] Message from [PDARec.owner] ([customjob]), \"[custommessage]\" (Reply)" + log_pda("[usr]/([usr.ckey]) (PDA: [PDARec.owner]) sent \"[custommessage]\" to [customrecepient.owner]") + customrecepient.cut_overlays() + customrecepient.add_overlay(image('icons/obj/pda.dmi', "pda-r")) + //Finally.. + ResetMessage() + + //Request Console Logs - KEY REQUIRED + if(href_list["viewr"]) + if(src.linkedServer == null || (src.linkedServer.stat & (NOPOWER|BROKEN))) + message = noserver + else + if(auth) + src.screen = 4 + + if (href_list["back"]) + src.screen = 0 + + return src.attack_hand(usr) + + +/obj/item/weapon/paper/monitorkey + //..() + name = "monitor decryption key" + var/obj/machinery/message_server/server = null + +/obj/item/weapon/paper/monitorkey/New() + ..() + spawn(10) + if(message_servers) + for(var/obj/machinery/message_server/server in message_servers) + if(!isnull(server)) + if(!isnull(server.decryptkey)) + info = "

    Daily Key Reset


    The new message monitor key is '[server.decryptkey]'.
    Please keep this a secret and away from the clown.
    If necessary, change the password to a more secure one." + info_links = info + add_overlay("paper_words") + break diff --git a/code/game/machinery/computer/pod.dm b/code/game/machinery/computer/pod.dm new file mode 100644 index 0000000..8f8bdaa --- /dev/null +++ b/code/game/machinery/computer/pod.dm @@ -0,0 +1,145 @@ +/obj/machinery/computer/pod + name = "mass driver launch control" + desc = "A combined blastdoor and mass driver control unit." + var/obj/machinery/mass_driver/connected = null + var/title = "Mass Driver Controls" + var/id = 1 + var/timing = 0 + var/time = 30 + var/range = 4 + + +/obj/machinery/computer/pod/initialize() + for(var/obj/machinery/mass_driver/M in range(range, src)) + if(M.id == id) + connected = M + ..() + + +/obj/machinery/computer/pod/proc/alarm() + if(stat & (NOPOWER|BROKEN)) + return + + if(!connected) + viewers(null, null) << "Cannot locate mass driver connector. Cancelling firing sequence!" + return + + for(var/obj/machinery/door/poddoor/M in range(range, src)) + if(M.id == id) + M.open() + + sleep(20) + for(var/obj/machinery/mass_driver/M in range(range, src)) + if(M.id == id) + M.power = connected.power + M.drive() + + sleep(50) + for(var/obj/machinery/door/poddoor/M in range(range, src)) + if(M.id == id) + M.close() + +/obj/machinery/computer/pod/attack_hand(mob/user) + if(..()) + return + + var/dat = "" + user.set_machine(src) + if(connected) + var/d2 + if(timing) //door controls do not need timers. + d2 = "Stop Time Launch" + else + d2 = "Initiate Time Launch" + var/second = time % 60 + var/minute = (time - second) / 60 + dat += "
    \nTimer System: [d2]\nTime Left: [minute ? "[minute]:" : null][second] - - + +" + var/temp = "" + var/list/L = list( 0.25, 0.5, 1, 2, 4, 8, 16 ) + for(var/t in L) + if(t == connected.power) + temp += "[t] " + else + temp += "[t] " + dat += "
    \nPower Level: [temp]
    \nFiring Sequence
    \nTest Fire Driver
    \nToggle Outer Door
    " + else + dat += "
    \nToggle Outer Door
    " + dat += "

    Close" + add_fingerprint(usr) + var/datum/browser/popup = new(user, "computer", title, 400, 500) + popup.set_content(dat) + popup.set_title_image(user.browse_rsc_icon(icon, icon_state)) + popup.open() + + +/obj/machinery/computer/pod/process() + if(!..()) + return + if(timing) + if(time > 0) + time = round(time) - 1 + else + alarm() + time = 0 + timing = 0 + updateDialog() + + +/obj/machinery/computer/pod/Topic(href, href_list) + if(..()) + return + if(usr.contents.Find(src) || (in_range(src, usr) && isturf(loc)) || issilicon(usr)) + usr.set_machine(src) + if(href_list["power"]) + var/t = text2num(href_list["power"]) + t = min(max(0.25, t), 16) + if(connected) + connected.power = t + if(href_list["alarm"]) + alarm() + if(href_list["time"]) + timing = text2num(href_list["time"]) + if(href_list["tp"]) + var/tp = text2num(href_list["tp"]) + time += tp + time = min(max(round(time), 0), 120) + if(href_list["door"]) + for(var/obj/machinery/door/poddoor/M in range(range, src)) + if(M.id == id) + if(M.density) + M.open() + else + M.close() + if(href_list["drive"]) + for(var/obj/machinery/mass_driver/M in range(range, src)) + if(M.id == id) + M.power = connected.power + M.drive() + updateUsrDialog() + + +/obj/machinery/computer/pod/old + name = "\improper DoorMex control console" + title = "Door Controls" + icon_state = "oldcomp" + icon_screen = "library" + icon_keyboard = null + + +/obj/machinery/computer/pod/old/syndicate + name = "\improper ProComp Executive IIc" + desc = "The Syndicate operate on a tight budget. Operates external airlocks." + title = "External Airlock Controls" + req_access = list(access_syndicate) + +/obj/machinery/computer/pod/old/syndicate/attack_hand(mob/user) + if(!allowed(user)) + user << "Access denied." + return + else + ..() + + +/obj/machinery/computer/pod/old/swf + name = "\improper Magix System IV" + desc = "An arcane artifact that holds much magic. Running E-Knock 2.2: Sorceror's Edition" diff --git a/code/game/machinery/computer/prisoner.dm b/code/game/machinery/computer/prisoner.dm new file mode 100644 index 0000000..583b4cf --- /dev/null +++ b/code/game/machinery/computer/prisoner.dm @@ -0,0 +1,149 @@ +/obj/machinery/computer/prisoner + name = "prisoner management console" + desc = "Used to manage tracking implants placed inside criminals." + icon_screen = "explosive" + icon_keyboard = "security_key" + req_access = list(access_brig) + var/id = 0 + var/temp = null + var/status = 0 + var/timeleft = 60 + var/stop = 0 + var/screen = 0 // 0 - No Access Denied, 1 - Access allowed + var/obj/item/weapon/card/id/prisoner/inserted_id + circuit = /obj/item/weapon/circuitboard/computer/prisoner + +/obj/machinery/computer/prisoner/attack_hand(mob/user) + if(..()) + return + user.set_machine(src) + var/dat = "" + if(screen == 0) + dat += "
    Unlock Console" + else if(screen == 1) + dat += "

    Prisoner ID Management

    " + if(inserted_id) + dat += text("[inserted_id]
    ") + dat += text("Collected Points: [inserted_id.points]. Reset.
    ") + dat += text("Card goal: [inserted_id.goal]. Set
    ") + dat += text("Space Law recommends quotas of 100 points per minute they would normally serve in the brig.
    ") + else + dat += text("Insert Prisoner ID.
    ") + dat += "

    Prisoner Implant Management

    " + dat += "
    Chemical Implants
    " + var/turf/Tr = null + for(var/obj/item/weapon/implant/chem/C in tracked_chem_implants) + Tr = get_turf(C) + if((Tr) && (Tr.z != src.z)) + continue//Out of range + if(!C.implanted) + continue + dat += "ID: [C.imp_in.name] | Remaining Units: [C.reagents.total_volume]
    " + dat += "| Inject: " + dat += "((1))" + dat += "((5))" + dat += "((10))
    " + dat += "********************************
    " + dat += "
    Tracking Implants
    " + for(var/obj/item/weapon/implant/tracking/T in tracked_implants) + if(!iscarbon(T.imp_in)) + continue + if(!T.implanted) + continue + Tr = get_turf(T) + if((Tr) && (Tr.z != src.z)) + continue//Out of range + + var/loc_display = "Unknown" + var/mob/living/carbon/M = T.imp_in + if(Tr.z == ZLEVEL_STATION && !isspaceturf(M.loc)) + var/turf/mob_loc = get_turf(M) + loc_display = mob_loc.loc + + dat += "ID: [T.imp_in.name] | Location: [loc_display]
    " + dat += "(Message Holder) |
    " + dat += "********************************
    " + dat += "
    Lock Console" + + //user << browse(dat, "window=computer;size=400x500") + //onclose(user, "computer") + var/datum/browser/popup = new(user, "computer", "Prisoner Management Console", 400, 500) + popup.set_content(dat) + popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) + popup.open() + return + +/obj/machinery/computer/prisoner/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/card/id)) + return attack_hand(user) + else + return ..() + +/obj/machinery/computer/prisoner/process() + if(!..()) + src.updateDialog() + return + + +/obj/machinery/computer/prisoner/Topic(href, href_list) + if(..()) + return + if(usr.contents.Find(src) || (in_range(src, usr) && isturf(loc)) || issilicon(usr)) + usr.set_machine(src) + + if(href_list["id"]) + if(href_list["id"] =="insert" && !inserted_id) + var/obj/item/weapon/card/id/prisoner/I = usr.get_active_held_item() + if(istype(I)) + if(!usr.drop_item()) + return + I.loc = src + inserted_id = I + else usr << "No valid ID." + else if(inserted_id) + switch(href_list["id"]) + if("eject") + inserted_id.loc = get_turf(src) + inserted_id.verb_pickup() + inserted_id = null + if("reset") + inserted_id.points = 0 + if("setgoal") + var/num = round(input(usr, "Choose prisoner's goal:", "Input an Integer", null) as num|null) + if(num >= 0) + num = min(num,1000) //Cap the quota to the equivilent of 10 minutes. + inserted_id.goal = num + else if(href_list["inject1"]) + var/obj/item/weapon/implant/I = locate(href_list["inject1"]) in tracked_chem_implants + if(I && istype(I)) + I.activate(1) + else if(href_list["inject5"]) + var/obj/item/weapon/implant/I = locate(href_list["inject5"]) in tracked_chem_implants + if(I && istype(I)) + I.activate(5) + + else if(href_list["inject10"]) + var/obj/item/weapon/implant/I = locate(href_list["inject10"]) in tracked_chem_implants + if(I && istype(I)) + I.activate(10) + + else if(href_list["lock"]) + if(src.allowed(usr)) + screen = !screen + else + usr << "Unauthorized Access." + + else if(href_list["warn"]) + var/warning = copytext(sanitize(input(usr,"Message:","Enter your message here!","")),1,MAX_MESSAGE_LEN) + if(!warning) return + var/obj/item/weapon/implant/I = locate(href_list["warn"]) in tracked_chem_implants + if(I && istype(I) && I.imp_in) + var/mob/living/carbon/R = I.imp_in + R << "You hear a voice in your head saying: '[warning]'" + log_say("[usr]/[usr.ckey] sent an implant message to [R]/[R.ckey]: '[warning]'") + + src.add_fingerprint(usr) + src.updateUsrDialog() + return + + diff --git a/code/game/machinery/computer/robot.dm b/code/game/machinery/computer/robot.dm new file mode 100644 index 0000000..5f31d56 --- /dev/null +++ b/code/game/machinery/computer/robot.dm @@ -0,0 +1,159 @@ +//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 + + +/obj/machinery/computer/robotics + name = "robotics control console" + desc = "Used to remotely lockdown or detonate linked Cyborgs." + icon_screen = "robot" + icon_keyboard = "rd_key" + req_access = list(access_robotics) + circuit = /obj/item/weapon/circuitboard/computer/robotics + var/temp = null + +/obj/machinery/computer/robotics/proc/can_control(mob/user, mob/living/silicon/robot/R) + if(!istype(R)) + return 0 + if(isAI(user)) + if (R.connected_ai != user) + return 0 + if(iscyborg(user)) + if (R != user) + return 0 + if(R.scrambledcodes) + return 0 + return 1 + +/obj/machinery/computer/robotics/attack_hand(mob/user) + if(..()) + return + interact(user) + +/obj/machinery/computer/robotics/interact(mob/user) + if (src.z > 6) + user << "Unable to establish a connection: \black You're too far away from the station!" + return + user.set_machine(src) + var/dat + var/robots = 0 + for(var/mob/living/silicon/robot/R in mob_list) + if(!can_control(user, R)) + continue + robots++ + dat += "[R.name] |" + if(R.stat) + dat += " Not Responding |" + else if (!R.canmove) + dat += " Locked Down |" + else + dat += " Operating Normally |" + if (!R.canmove) + else if(R.cell) + dat += " Battery Installed ([R.cell.charge]/[R.cell.maxcharge]) |" + else + dat += " No Cell Installed |" + if(R.module) + dat += " Module Installed ([R.module.name]) |" + else + dat += " No Module Installed |" + if(R.connected_ai) + dat += " Slaved to [R.connected_ai.name] |" + else + dat += " Independent from AI |" + if(issilicon(user) || IsAdminGhost(user)) + if(((issilicon(user) && is_special_character(user)) || IsAdminGhost(user)) && !R.emagged && (user != R || R.syndicate)) + dat += "(Hack) " + dat += "([R.canmove ? "Lockdown" : "Release"]) " + dat += "(Destroy)" + dat += "
    " + + if(!robots) + dat += "No Cyborg Units detected within access parameters." + dat += "
    " + + var/drones = 0 + for(var/mob/living/simple_animal/drone/D in mob_list) + if(D.hacked) + continue + drones++ + dat += "[D.name] |" + if(D.stat) + dat += " Not Responding |" + dat += "(Destroy)" + dat += "
    " + + if(!drones) + dat += "No Drone Units detected within access parameters." + + var/datum/browser/popup = new(user, "computer", "Cyborg Control Console", 400, 500) + popup.set_content(dat) + popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) + popup.open() + return + +/obj/machinery/computer/robotics/Topic(href, href_list) + if(..()) + return + + if (href_list["temp"]) + src.temp = null + + else if (href_list["killbot"]) + if(src.allowed(usr)) + var/mob/living/silicon/robot/R = locate(href_list["killbot"]) + if(can_control(usr, R)) + var/choice = input("Are you certain you wish to detonate [R.name]?") in list("Confirm", "Abort") + if(choice == "Confirm" && can_control(usr, R) && !..()) + if(R.syndicate && R.emagged) + R << "Extreme danger. Termination codes detected. Scrambling security codes and automatic AI unlink triggered." + if(R.connected_ai) + R.connected_ai << "

    ALERT - Cyborg detonation detected: [R.name]
    " + R.ResetSecurityCodes() + else + message_admins("[key_name_admin(usr)] (FLW) detonated [key_name(R, R.client)](JMP)!") + log_game("\[key_name(usr)] detonated [key_name(R)]!") + if(R.connected_ai) + R.connected_ai << "

    ALERT - Cyborg detonation detected: [R.name]
    " + R.self_destruct() + else + usr << "Access Denied." + + else if (href_list["stopbot"]) + if(src.allowed(usr)) + var/mob/living/silicon/robot/R = locate(href_list["stopbot"]) + if(can_control(usr, R)) + var/choice = input("Are you certain you wish to [R.canmove ? "lock down" : "release"] [R.name]?") in list("Confirm", "Abort") + if(choice == "Confirm" && can_control(usr, R) && !..()) + message_admins("[key_name_admin(usr)] (FLW) [R.canmove ? "locked down" : "released"] [key_name(R, R.client)](FLW)!") + log_game("[key_name(usr)] [R.canmove ? "locked down" : "released"] [key_name(R)]!") + R.SetLockdown(!R.lockcharge) + R << "[!R.lockcharge ? "Your lockdown has been lifted!" : "You have been locked down!"]" + if(R.connected_ai) + R.connected_ai << "[!R.lockcharge ? "NOTICE - Cyborg lockdown lifted" : "ALERT - Cyborg lockdown detected"]: [R.name]
    " + + else + usr << "Access Denied." + + else if (href_list["magbot"]) + if((issilicon(usr) && is_special_character(usr)) || IsAdminGhost(usr)) + var/mob/living/silicon/robot/R = locate(href_list["magbot"]) + if(istype(R) && !R.emagged && ((R.syndicate && R == usr)|| R.connected_ai == usr || IsAdminGhost(usr)) && !R.scrambledcodes && can_control(usr, R)) + log_game("[key_name(usr)] emagged [R.name] using robotic console!") + message_admins("[key_name_admin(usr)] emagged cyborg [key_name_admin(R)]. using robotic console!") + R.SetEmagged(1) + if(is_special_character(R)) + R.verbs += /mob/living/silicon/robot/proc/ResetSecurityCodes + + else if (href_list["killdrone"]) + if(src.allowed(usr)) + var/mob/living/simple_animal/drone/D = locate(href_list["killdrone"]) + if(D.hacked) + usr << "ERROR: [D] is not responding to external commands." + else + var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread + s.set_up(3, 1, D) + s.start() + D.visible_message("\the [D] self destructs!") + D.gib() + + src.updateUsrDialog() + return diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm new file mode 100644 index 0000000..787dcd3 --- /dev/null +++ b/code/game/machinery/computer/security.dm @@ -0,0 +1,793 @@ +//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 + +/obj/machinery/computer/secure_data//TODO:SANITY + name = "security records console" + desc = "Used to view and edit personnel's security records" + icon_screen = "security" + icon_keyboard = "security_key" + req_one_access = list(access_security, access_forensics_lockers) + circuit = /obj/item/weapon/circuitboard/computer/secure_data + var/obj/item/weapon/card/id/scan = null + var/authenticated = null + var/rank = null + var/screen = null + var/datum/data/record/active1 = null + var/datum/data/record/active2 = null + var/a_id = null + var/temp = null + var/printing = null + var/can_change_id = 0 + var/list/Perp + var/tempname = null + //Sorting Variables + var/sortBy = "name" + var/order = 1 // -1 = Descending - 1 = Ascending + + +/obj/machinery/computer/secure_data/attackby(obj/item/O, mob/user, params) + if(istype(O, /obj/item/weapon/card/id)) + if(!scan) + if(!user.drop_item()) + return + O.loc = src + scan = O + user << "You insert [O]." + else + user << "There's already an ID card in the console." + else + return ..() + +//Someone needs to break down the dat += into chunks instead of long ass lines. +/obj/machinery/computer/secure_data/attack_hand(mob/user) + if(..()) + return + if(src.z > 6) + user << "Unable to establish a connection: \black You're too far away from the station!" + return + var/dat + + if(temp) + dat = text("[]

    Clear Screen", temp, src) + else + dat = text("Confirm Identity: []
    ", src, (scan ? text("[]", scan.name) : "----------")) + if(authenticated) + switch(screen) + if(1) + + //body tag start + onload and onkeypress (onkeyup) javascript event calls + dat += "" + //search bar javascript + dat += {" + + + + + + + + "} + dat += {" +

    "} + dat += text("New Record
    ", src) + //search bar + dat += {" + + + + +
    + Search: +
    + "} + dat += {" +

    + + + + +
    Records:
    + + + + + + + + + +"} + if(!isnull(data_core.general)) + for(var/datum/data/record/R in sortRecord(data_core.general, sortBy, order)) + var/crimstat = "" + for(var/datum/data/record/E in data_core.security) + if((E.fields["name"] == R.fields["name"]) && (E.fields["id"] == R.fields["id"])) + crimstat = E.fields["criminal"] + var/background + switch(crimstat) + if("*Arrest*") + background = "'background-color:#990000;'" + if("Incarcerated") + background = "'background-color:#CD6500;'" + if("Parolled") + background = "'background-color:#CD6500;'" + if("Discharged") + background = "'background-color:#006699;'" + if("None") + background = "'background-color:#4F7529;'" + if("") + background = "''" //"'background-color:#FFFFFF;'" + crimstat = "No Record." + dat += "" + dat += text("", R.fields["name"], R.fields["id"], R.fields["rank"], R.fields["fingerprint"], src, R, R.fields["name"]) + dat += text("", R.fields["id"]) + dat += text("", R.fields["rank"]) + dat += text("", R.fields["fingerprint"]) + dat += text("", crimstat) + dat += {" +
    NameIDRankFingerprintsCriminal Status
    [][][][][]
    + +
    "} + dat += text("Record Maintenance

    ", src) + dat += text("{Log Out}",src) + if(2) + dat += "Records Maintenance
    " + dat += "
    Delete All Records

    Back" + if(3) + dat += "Security Record
    " + if(istype(active1, /datum/data/record) && data_core.general.Find(active1)) + if(istype(active1.fields["photo_front"], /obj/item/weapon/photo)) + var/obj/item/weapon/photo/P1 = active1.fields["photo_front"] + user << browse_rsc(P1.img, "photo_front") + if(istype(active1.fields["photo_side"], /obj/item/weapon/photo)) + var/obj/item/weapon/photo/P2 = active1.fields["photo_side"] + user << browse_rsc(P2.img, "photo_side") + dat += {" +
    + + + + "} + if(config.mutant_races) + dat += "" + dat += {" + + + +
    Name: [active1.fields["name"]] 
    ID: [active1.fields["id"]] 
    Sex: [active1.fields["sex"]] 
    Age: [active1.fields["age"]] 
    Species: [active1.fields["species"]] 
    Rank: [active1.fields["rank"]] 
    Fingerprint: [active1.fields["fingerprint"]] 
    Physical Status: [active1.fields["p_stat"]] 
    Mental Status: [active1.fields["m_stat"]] 
    +

    + Update front photo

    + Update side photo
    +
    "} + else + dat += "
    General Record Lost!
    " + if((istype(active2, /datum/data/record) && data_core.security.Find(active2))) + dat += "Security Data" + dat += "
    Criminal Status: [active2.fields["criminal"]]" + dat += "

    Minor Crimes: Add New" + + + dat +={" + + + + + + + "} + for(var/datum/data/crime/c in active2.fields["mi_crim"]) + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "
    CrimeDetailsAuthorTime AddedDel
    [c.crimeName][c.crimeDetails][c.author][c.time]\[X\]
    " + + + dat += "
    Major Crimes: Add New" + + dat +={" + + + + + + + "} + for(var/datum/data/crime/c in active2.fields["ma_crim"]) + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "
    CrimeDetailsAuthorTime AddedDel
    [c.crimeName][c.crimeDetails][c.author][c.time]\[X\]
    " + + dat += "
    \nImportant Notes:
    \n\t [active2.fields["notes"]] " + dat += "

    Comments/Log
    " + var/counter = 1 + while(active2.fields[text("com_[]", counter)]) + dat += (active2.fields[text("com_[]", counter)] + "
    ") + if(active2.fields[text("com_[]", counter)] != "Deleted") + dat += text("Delete Entry

    ", src, counter) + counter++ + dat += text("Add Entry

    ", src) + dat += text("Delete Record (Security Only)
    ", src) + else + dat += "Security Record Lost!
    " + dat += text("New Security Record

    ", src) + dat += text("Delete Record (ALL)
    Print Record
    Print Wanted Poster
    Back
    ", src, src, src, src) + else + else + dat += text("{Log In}", src) + //user << browse(text("Security Records[]", dat), "window=secure_rec;size=600x400") + //onclose(user, "secure_rec") + var/datum/browser/popup = new(user, "secure_rec", "Security Records Console", 600, 400) + popup.set_content(dat) + popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) + popup.open() + return + +/*Revised /N +I can't be bothered to look more of the actual code outside of switch but that probably needs revising too. +What a mess.*/ +/obj/machinery/computer/secure_data/Topic(href, href_list) + . = ..() + if(.) + return . + if(!( data_core.general.Find(active1) )) + active1 = null + if(!( data_core.security.Find(active2) )) + active2 = null + if(usr.contents.Find(src) || (in_range(src, usr) && isturf(loc)) || issilicon(usr) || IsAdminGhost(usr)) + usr.set_machine(src) + switch(href_list["choice"]) +// SORTING! + if("Sorting") + // Reverse the order if clicked twice + if(sortBy == href_list["sort"]) + if(order == 1) + order = -1 + else + order = 1 + else + // New sorting order! + sortBy = href_list["sort"] + order = initial(order) +//BASIC FUNCTIONS + if("Clear Screen") + temp = null + + if("Return") + screen = 1 + active1 = null + active2 = null + + if("Confirm Identity") + if(scan) + if(ishuman(usr) && !usr.get_active_held_item()) + usr.put_in_hands(scan) + else + scan.loc = get_turf(src) + scan = null + else + var/obj/item/I = usr.get_active_held_item() + if(istype(I, /obj/item/weapon/card/id)) + if(!usr.drop_item()) + return + I.loc = src + scan = I + + if("Log Out") + authenticated = null + screen = null + active1 = null + active2 = null + + if("Log In") + if(issilicon(usr)) + var/mob/living/silicon/borg = usr + active1 = null + active2 = null + authenticated = borg.name + rank = "AI" + screen = 1 + else if(IsAdminGhost(usr)) + active1 = null + active2 = null + authenticated = usr.client.holder.admin_signature + rank = "Central Command" + screen = 1 + else if(istype(scan, /obj/item/weapon/card/id)) + active1 = null + active2 = null + if(check_access(scan)) + authenticated = scan.registered_name + rank = scan.assignment + screen = 1 +//RECORD FUNCTIONS + if("Record Maintenance") + screen = 2 + active1 = null + active2 = null + + if("Browse Record") + var/datum/data/record/R = locate(href_list["d_rec"]) + var/S = locate(href_list["d_rec"]) + if(!( data_core.general.Find(R) )) + temp = "Record Not Found!" + else + for(var/datum/data/record/E in data_core.security) + if((E.fields["name"] == R.fields["name"] || E.fields["id"] == R.fields["id"])) + S = E + active1 = R + active2 = S + screen = 3 + + + if("Print Record") + if(!( printing )) + printing = 1 + data_core.securityPrintCount++ + playsound(loc, 'sound/items/poster_being_created.ogg', 100, 1) + sleep(30) + var/obj/item/weapon/paper/P = new /obj/item/weapon/paper( loc ) + P.info = "
    Security Record - (SR-[data_core.securityPrintCount])

    " + if((istype(active1, /datum/data/record) && data_core.general.Find(active1))) + P.info += text("Name: [] ID: []
    \nSex: []
    \nAge: []
    ", active1.fields["name"], active1.fields["id"], active1.fields["sex"], active1.fields["age"]) + if(config.mutant_races) + P.info += "\nSpecies: [active1.fields["species"]]
    " + P.info += text("\nFingerprint: []
    \nPhysical Status: []
    \nMental Status: []
    ", active1.fields["fingerprint"], active1.fields["p_stat"], active1.fields["m_stat"]) + else + P.info += "General Record Lost!
    " + if((istype(active2, /datum/data/record) && data_core.security.Find(active2))) + P.info += text("
    \n
    Security Data

    \nCriminal Status: []", active2.fields["criminal"]) + + P.info += "
    \n
    \nMinor Crimes:
    \n" + P.info +={" + + + + + +"} + for(var/datum/data/crime/c in active2.fields["mi_crim"]) + P.info += "" + P.info += "" + P.info += "" + P.info += "" + P.info += "" + P.info += "
    CrimeDetailsAuthorTime Added
    [c.crimeName][c.crimeDetails][c.author][c.time]
    " + + P.info += "
    \nMajor Crimes:
    \n" + P.info +={" + + + + + +"} + for(var/datum/data/crime/c in active2.fields["ma_crim"]) + P.info += "" + P.info += "" + P.info += "" + P.info += "" + P.info += "" + P.info += "
    CrimeDetailsAuthorTime Added
    [c.crimeName][c.crimeDetails][c.author][c.time]
    " + + + P.info += text("
    \nImportant Notes:
    \n\t[]
    \n
    \n
    Comments/Log

    ", active2.fields["notes"]) + var/counter = 1 + while(active2.fields[text("com_[]", counter)]) + P.info += text("[]
    ", active2.fields[text("com_[]", counter)]) + counter++ + P.name = text("SR-[] '[]'", data_core.securityPrintCount, active1.fields["name"]) + else + P.info += "Security Record Lost!
    " + P.name = text("SR-[] '[]'", data_core.securityPrintCount, "Record Lost") + P.info += "" + printing = null + if("Print Poster") + if(!( printing )) + var/wanted_name = stripped_input(usr, "Please enter an alias for the criminal:", "Print Wanted Poster", active1.fields["name"]) + if(wanted_name) + var/default_description = "A poster declaring [wanted_name] to be a dangerous individual, wanted by Nanotrasen. Report any sightings to security immediately." + var/list/major_crimes = active2.fields["ma_crim"] + var/list/minor_crimes = active2.fields["mi_crim"] + if(major_crimes.len + minor_crimes.len) + default_description += "\n[wanted_name] is wanted for the following crimes:\n" + if(minor_crimes.len) + default_description += "\nMinor Crimes:" + for(var/datum/data/crime/c in active2.fields["mi_crim"]) + default_description += "\n[c.crimeName]\n" + default_description += "[c.crimeDetails]\n" + if(major_crimes.len) + default_description += "\nMajor Crimes:" + for(var/datum/data/crime/c in active2.fields["ma_crim"]) + default_description += "\n[c.crimeName]\n" + default_description += "[c.crimeDetails]\n" + + var/info = stripped_multiline_input(usr, "Please input a description for the poster:", "Print Wanted Poster", default_description, null) + if(info) + playsound(loc, 'sound/items/poster_being_created.ogg', 100, 1) + printing = 1 + sleep(30) + if((istype(active1, /datum/data/record) && data_core.general.Find(active1)))//make sure the record still exists. + var/obj/item/weapon/photo/photo = active1.fields["photo_front"] + new /obj/item/weapon/poster/legit/wanted(src.loc, photo.img, wanted_name, info) + printing = 0 + +//RECORD DELETE + if("Delete All Records") + temp = "" + temp += "Are you sure you wish to delete all Security records?
    " + temp += "Yes
    " + temp += "No" + + if("Purge All Records") + investigate_log("[usr.name] ([usr.key]) has purged all the security records.", "records") + for(var/datum/data/record/R in data_core.security) + qdel(R) + data_core.security.Cut() + temp = "All Security records deleted." + + if("Add Entry") + if(!( istype(active2, /datum/data/record) )) + return + var/a2 = active2 + var/t1 = stripped_multiline_input("Add Comment:", "Secure. records", null, null) + if(!canUseSecurityRecordsConsole(usr, t1, null, a2)) + return + var/counter = 1 + while(active2.fields[text("com_[]", counter)]) + counter++ + active2.fields[text("com_[]", counter)] = text("Made by [] ([]) on [] [], []
    []", src.authenticated, src.rank, worldtime2text(), time2text(world.realtime, "MMM DD"), year_integer+540, t1,) + + if("Delete Record (ALL)") + if(active1) + temp = "
    Are you sure you wish to delete the record (ALL)?
    " + temp += "Yes
    " + temp += "No" + + if("Delete Record (Security)") + if(active2) + temp = "
    Are you sure you wish to delete the record (Security Portion Only)?
    " + temp += "Yes
    " + temp += "No" + + if("Delete Entry") + if((istype(active2, /datum/data/record) && active2.fields[text("com_[]", href_list["del_c"])])) + active2.fields[text("com_[]", href_list["del_c"])] = "Deleted" +//RECORD CREATE + if("New Record (Security)") + if((istype(active1, /datum/data/record) && !( istype(active2, /datum/data/record) ))) + var/datum/data/record/R = new /datum/data/record() + R.fields["name"] = active1.fields["name"] + R.fields["id"] = active1.fields["id"] + R.name = text("Security Record #[]", R.fields["id"]) + R.fields["criminal"] = "None" + R.fields["mi_crim"] = list() + R.fields["ma_crim"] = list() + R.fields["notes"] = "No notes." + data_core.security += R + active2 = R + screen = 3 + + if("New Record (General)") + //General Record + var/datum/data/record/G = new /datum/data/record() + G.fields["name"] = "New Record" + G.fields["id"] = "[num2hex(rand(1, 1.6777215E7), 6)]" + G.fields["rank"] = "Unassigned" + G.fields["sex"] = "Male" + G.fields["age"] = "Unknown" + if(config.mutant_races) + G.fields["species"] = "Human" + G.fields["photo_front"] = new /icon() + G.fields["photo_side"] = new /icon() + G.fields["fingerprint"] = "?????" + G.fields["p_stat"] = "Active" + G.fields["m_stat"] = "Stable" + data_core.general += G + active1 = G + + //Security Record + var/datum/data/record/R = new /datum/data/record() + R.fields["name"] = active1.fields["name"] + R.fields["id"] = active1.fields["id"] + R.name = text("Security Record #[]", R.fields["id"]) + R.fields["criminal"] = "None" + R.fields["mi_crim"] = list() + R.fields["ma_crim"] = list() + R.fields["notes"] = "No notes." + data_core.security += R + active2 = R + + //Medical Record + var/datum/data/record/M = new /datum/data/record() + M.fields["id"] = active1.fields["id"] + M.fields["name"] = active1.fields["name"] + M.fields["blood_type"] = "?" + M.fields["b_dna"] = "?????" + M.fields["mi_dis"] = "None" + M.fields["mi_dis_d"] = "No minor disabilities have been declared." + M.fields["ma_dis"] = "None" + M.fields["ma_dis_d"] = "No major disabilities have been diagnosed." + M.fields["alg"] = "None" + M.fields["alg_d"] = "No allergies have been detected in this patient." + M.fields["cdi"] = "None" + M.fields["cdi_d"] = "No diseases have been diagnosed at the moment." + M.fields["notes"] = "No notes." + data_core.medical += M + + + +//FIELD FUNCTIONS + if("Edit Field") + var/a1 = active1 + var/a2 = active2 + + switch(href_list["field"]) + if("name") + if(istype(active1, /datum/data/record) || istype(active2, /datum/data/record)) + var/t1 = copytext(sanitize(input("Please input name:", "Secure. records", active1.fields["name"], null) as text),1,MAX_MESSAGE_LEN) + if(!canUseSecurityRecordsConsole(usr, t1, a1)) + return + if(istype(active1, /datum/data/record)) + active1.fields["name"] = t1 + if(istype(active2, /datum/data/record)) + active2.fields["name"] = t1 + if("id") + if(istype(active2,/datum/data/record) || istype(active1,/datum/data/record)) + var/t1 = stripped_input(usr, "Please input id:", "Secure. records", active1.fields["id"], null) + if(!canUseSecurityRecordsConsole(usr, t1, a1)) + return + if(istype(active1,/datum/data/record)) + active1.fields["id"] = t1 + if(istype(active2,/datum/data/record)) + active2.fields["id"] = t1 + if("fingerprint") + if(istype(active1, /datum/data/record)) + var/t1 = stripped_input(usr, "Please input fingerprint hash:", "Secure. records", active1.fields["fingerprint"], null) + if(!canUseSecurityRecordsConsole(usr, t1, a1)) + return + active1.fields["fingerprint"] = t1 + if("sex") + if(istype(active1, /datum/data/record)) + if(active1.fields["sex"] == "Male") + active1.fields["sex"] = "Female" + else + active1.fields["sex"] = "Male" + if("age") + if(istype(active1, /datum/data/record)) + var/t1 = input("Please input age:", "Secure. records", active1.fields["age"], null) as num + if(!canUseSecurityRecordsConsole(usr, "age", a1)) + return + active1.fields["age"] = t1 + if("species") + if(istype(active1, /datum/data/record)) + var/t1 = input("Select a species", "Species Selection") as null|anything in roundstart_species + if(!canUseSecurityRecordsConsole(usr, t1, a1)) + return + active1.fields["species"] = t1 + if("show_photo_front") + if(active1.fields["photo_front"]) + if(istype(active1.fields["photo_front"], /obj/item/weapon/photo)) + var/obj/item/weapon/photo/P = active1.fields["photo_front"] + P.show(usr) + if("upd_photo_front") + var/icon/photo = get_photo(usr) + if(photo) + qdel(active1.fields["photo_front"]) + active1.fields["photo_front"] = photo + if("show_photo_side") + if(active1.fields["photo_side"]) + if(istype(active1.fields["photo_side"], /obj/item/weapon/photo)) + var/obj/item/weapon/photo/P = active1.fields["photo_side"] + P.show(usr) + if("upd_photo_side") + var/icon/photo = get_photo(usr) + if(photo) + qdel(active1.fields["photo_side"]) + active1.fields["photo_side"] = photo + if("mi_crim_add") + if(istype(active1, /datum/data/record)) + var/t1 = stripped_input(usr, "Please input minor crime names:", "Secure. records", "", null) + var/t2 = stripped_multiline_input(usr, "Please input minor crime details:", "Secure. records", "", null) + if(!canUseSecurityRecordsConsole(usr, t1, null, a2)) + return + var/crime = data_core.createCrimeEntry(t1, t2, authenticated, worldtime2text()) + data_core.addMinorCrime(active1.fields["id"], crime) + if("mi_crim_delete") + if(istype(active1, /datum/data/record)) + if(href_list["cdataid"]) + if(!canUseSecurityRecordsConsole(usr, "delete", null, a2)) + return + data_core.removeMinorCrime(active1.fields["id"], href_list["cdataid"]) + if("ma_crim_add") + if(istype(active1, /datum/data/record)) + var/t1 = stripped_input(usr, "Please input major crime names:", "Secure. records", "", null) + var/t2 = stripped_multiline_input(usr, "Please input major crime details:", "Secure. records", "", null) + if(!canUseSecurityRecordsConsole(usr, t1, null, a2)) + return + var/crime = data_core.createCrimeEntry(t1, t2, authenticated, worldtime2text()) + data_core.addMajorCrime(active1.fields["id"], crime) + if("ma_crim_delete") + if(istype(active1, /datum/data/record)) + if(href_list["cdataid"]) + if(!canUseSecurityRecordsConsole(usr, "delete", null, a2)) + return + data_core.removeMajorCrime(active1.fields["id"], href_list["cdataid"]) + if("notes") + if(istype(active2, /datum/data/record)) + var/t1 = stripped_input(usr, "Please summarize notes:", "Secure. records", active2.fields["notes"], null) + if(!canUseSecurityRecordsConsole(usr, t1, null, a2)) + return + active2.fields["notes"] = t1 + if("criminal") + if(istype(active2, /datum/data/record)) + temp = "
    Criminal Status:
    " + temp += "" + if("rank") + var/list/L = list( "Head of Personnel", "Captain", "AI", "Central Command" ) + //This was so silly before the change. Now it actually works without beating your head against the keyboard. /N + if((istype(active1, /datum/data/record) && L.Find(rank))) + temp = "
    Rank:
    " + temp += "
      " + for(var/rank in get_all_jobs()) + temp += "
    • [rank]
    • " + temp += "
    " + else + alert(usr, "You do not have the required rank to do this!") +//TEMPORARY MENU FUNCTIONS + else//To properly clear as per clear screen. + temp=null + switch(href_list["choice"]) + if("Change Rank") + if(active1) + active1.fields["rank"] = href_list["rank"] + if(href_list["rank"] in get_all_jobs()) + active1.fields["real_rank"] = href_list["real_rank"] + + if("Change Criminal Status") + if(active2) + var/old_field = active2.fields["criminal"] + switch(href_list["criminal2"]) + if("none") + active2.fields["criminal"] = "None" + if("arrest") + active2.fields["criminal"] = "*Arrest*" + if("incarcerated") + active2.fields["criminal"] = "Incarcerated" + if("parolled") + active2.fields["criminal"] = "Parolled" + if("released") + active2.fields["criminal"] = "Discharged" + investigate_log("[active1.fields["name"]] has been set from [old_field] to [active2.fields["criminal"]] by [usr.name] ([usr.key]).", "records") + for(var/mob/living/carbon/human/H in mob_list) //thanks for forcing me to do this, whoever wrote this shitty records system + H.sec_hud_set_security_status() + if("Delete Record (Security) Execute") + investigate_log("[usr.name] ([usr.key]) has deleted the security records for [active1.fields["name"]].", "records") + if(active2) + data_core.security -= active2 + qdel(active2) + active2 = null + + if("Delete Record (ALL) Execute") + if(active1) + investigate_log("[usr.name] ([usr.key]) has deleted all records for [active1.fields["name"]].", "records") + for(var/datum/data/record/R in data_core.medical) + if((R.fields["name"] == active1.fields["name"] || R.fields["id"] == active1.fields["id"])) + data_core.medical -= R + qdel(R) + break + data_core.general -= active1 + qdel(active1) + active1 = null + + if(active2) + data_core.security -= active2 + qdel(active2) + active2 = null + else + temp = "This function does not appear to be working at the moment. Our apologies." + + add_fingerprint(usr) + updateUsrDialog() + return + +/obj/machinery/computer/secure_data/proc/get_photo(mob/user) + var/obj/item/weapon/photo/P = null + if(issilicon(user)) + var/mob/living/silicon/tempAI = user + var/datum/picture/selection = tempAI.GetPhoto() + if(selection) + P = new() + P.photocreate(selection.fields["icon"], selection.fields["img"], selection.fields["desc"]) + else if(istype(user.get_active_held_item(), /obj/item/weapon/photo)) + P = user.get_active_held_item() + return P + +/obj/machinery/computer/secure_data/emp_act(severity) + if(stat & (BROKEN|NOPOWER)) + ..(severity) + return + + for(var/datum/data/record/R in data_core.security) + if(prob(10/severity)) + switch(rand(1,8)) + if(1) + if(prob(10)) + R.fields["name"] = "[pick(lizard_name(MALE),lizard_name(FEMALE))]" + else + R.fields["name"] = "[pick(pick(first_names_male), pick(first_names_female))] [pick(last_names)]" + if(2) + R.fields["sex"] = pick("Male", "Female") + if(3) + R.fields["age"] = rand(5, 85) + if(4) + R.fields["criminal"] = pick("None", "*Arrest*", "Incarcerated", "Parolled", "Discharged") + if(5) + R.fields["p_stat"] = pick("*Unconcious*", "Active", "Physically Unfit") + if(6) + R.fields["m_stat"] = pick("*Insane*", "*Unstable*", "*Watch*", "Stable") + if(7) + R.fields["species"] = pick(roundstart_species) + if(8) + var/datum/data/record/G = pick(data_core.general) + R.fields["photo_front"] = G.fields["photo_front"] + R.fields["photo_side"] = G.fields["photo_side"] + continue + + else if(prob(1)) + qdel(R) + continue + + ..(severity) + +/obj/machinery/computer/secure_data/proc/canUseSecurityRecordsConsole(mob/user, message1 = 0, record1, record2) + if(user) + if(authenticated) + if(user.canUseTopic(src)) + if(!trim(message1)) + return 0 + if(!record1 || record1 == active1) + if(!record2 || record2 == active2) + return 1 + return 0 diff --git a/code/game/machinery/computer/station_alert.dm b/code/game/machinery/computer/station_alert.dm new file mode 100644 index 0000000..debb8a5 --- /dev/null +++ b/code/game/machinery/computer/station_alert.dm @@ -0,0 +1,83 @@ +/obj/machinery/computer/station_alert + name = "station alert console" + desc = "Used to access the station's automated alert system." + icon_screen = "alert:0" + icon_keyboard = "atmos_key" + circuit = /obj/item/weapon/circuitboard/computer/stationalert + var/alarms = list("Fire" = list(), "Atmosphere" = list(), "Power" = list()) + +/obj/machinery/computer/station_alert/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ + datum/tgui/master_ui = null, datum/ui_state/state = default_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "station_alert", name, 300, 500, master_ui, state) + ui.open() + +/obj/machinery/computer/station_alert/ui_data(mob/user) + var/list/data = list() + + data["alarms"] = list() + for(var/class in alarms) + data["alarms"][class] = list() + for(var/area in alarms[class]) + data["alarms"][class] += area + + return data + +/obj/machinery/computer/station_alert/proc/triggerAlarm(class, area/A, O, obj/source) + if(source.z != z) + return + if(stat & (BROKEN)) + return + + var/list/L = alarms[class] + for(var/I in L) + if (I == A.name) + var/list/alarm = L[I] + var/list/sources = alarm[3] + if (!(source in sources)) + sources += source + return 1 + var/obj/machinery/camera/C = null + var/list/CL = null + if(O && istype(O, /list)) + CL = O + if (CL.len == 1) + C = CL[1] + else if(O && istype(O, /obj/machinery/camera)) + C = O + L[A.name] = list(A, (C ? C : O), list(source)) + return 1 + + +/obj/machinery/computer/station_alert/proc/cancelAlarm(class, area/A, obj/origin) + if(stat & (BROKEN)) + return + var/list/L = alarms[class] + var/cleared = 0 + for (var/I in L) + if (I == A.name) + var/list/alarm = L[I] + var/list/srcs = alarm[3] + if (origin in srcs) + srcs -= origin + if (srcs.len == 0) + cleared = 1 + L -= I + return !cleared + + +/obj/machinery/computer/station_alert/process() + ..() + +/obj/machinery/computer/station_alert/update_icon() + ..() + if(stat & (NOPOWER|BROKEN)) + return + var/active_alarms = FALSE + for(var/cat in alarms) + var/list/L = alarms[cat] + if(L.len) + active_alarms = TRUE + if(active_alarms) + add_overlay("alert:2") \ No newline at end of file diff --git a/code/game/machinery/computer/telecrystalconsoles.dm b/code/game/machinery/computer/telecrystalconsoles.dm new file mode 100644 index 0000000..56cb36a --- /dev/null +++ b/code/game/machinery/computer/telecrystalconsoles.dm @@ -0,0 +1,219 @@ +#define NUKESCALINGMODIFIER 1 + +var/list/possible_uplinker_IDs = list("Alfa","Bravo","Charlie","Delta","Echo","Foxtrot","Zero", "Niner") + +/obj/machinery/computer/telecrystals + name = "\improper Telecrystal assignment station" + desc = "A device used to manage telecrystals during group operations. You shouldn't be looking at this particular one..." + icon_state = "tcstation" + icon_keyboard = "tcstation_key" + icon_screen = "syndie" + clockwork = TRUE //it'd look weird, at least if ratvar ever got there + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF + +///////////////////////////////////////////// +/obj/machinery/computer/telecrystals/uplinker + name = "\improper Telecrystal upload/receive station" + desc = "A device used to manage telecrystals during group operations. To use, simply insert your uplink. With your uplink installed \ + you can upload your telecrystals to the group's pool using the console, or be assigned additional telecrystals by your lieutenant." + var/obj/item/uplinkholder = null + var/obj/machinery/computer/telecrystals/boss/linkedboss = null + +/obj/machinery/computer/telecrystals/uplinker/New() + ..() + + var/ID + if(possible_uplinker_IDs.len) + ID = pick(possible_uplinker_IDs) + possible_uplinker_IDs -= ID + name = "[name] [ID]" + else + name = "[name] [rand(1,999)]" + +/obj/machinery/computer/telecrystals/uplinker/attackby(obj/item/O, mob/user, params) + if(uplinkholder) + user << "The [src] already has an uplink in it." + return + if(O.hidden_uplink) + var/obj/item/I = user.get_active_held_item() + if(!user.drop_item()) + return + uplinkholder = I + I.loc = src + I.add_fingerprint(user) + update_icon() + updateUsrDialog() + else + user << "The [O] doesn't appear to be an uplink..." + +/obj/machinery/computer/telecrystals/uplinker/update_icon() + ..() + if(uplinkholder) + add_overlay("[initial(icon_state)]-closed") + +/obj/machinery/computer/telecrystals/uplinker/proc/ejectuplink() + if(uplinkholder) + uplinkholder.loc = get_turf(src.loc) + uplinkholder = null + update_icon() + +/obj/machinery/computer/telecrystals/uplinker/proc/donateTC(amt, addLog = 1) + if(uplinkholder && linkedboss) + if(amt <= uplinkholder.hidden_uplink.telecrystals) + uplinkholder.hidden_uplink.telecrystals -= amt + linkedboss.storedcrystals += amt + if(addLog) + linkedboss.logTransfer("[src] donated [amt] telecrystals to [linkedboss].") + +/obj/machinery/computer/telecrystals/uplinker/proc/giveTC(amt, addLog = 1) + if(uplinkholder && linkedboss) + if(amt <= linkedboss.storedcrystals) + uplinkholder.hidden_uplink.telecrystals += amt + linkedboss.storedcrystals -= amt + if(addLog) + linkedboss.logTransfer("[src] received [amt] telecrystals from [linkedboss].") + +/////// + +/obj/machinery/computer/telecrystals/uplinker/attack_hand(mob/user) + if(..()) + return + src.add_fingerprint(user) + user.set_machine(src) + + var/dat = "" + if(linkedboss) + dat += "[linkedboss] has [linkedboss.storedcrystals] telecrystals available for distribution.

    " + else + dat += "No linked management consoles detected. Scan for uplink stations using the management console.

    " + + if(uplinkholder) + dat += "[uplinkholder.hidden_uplink.telecrystals] telecrystals remain in this uplink.
    " + if(linkedboss) + dat += "Donate TC: 1 | 5" + dat += "
    Eject Uplink" + + + var/datum/browser/popup = new(user, "computer", "Telecrystal Upload/Receive Station", 700, 500) + popup.set_content(dat) + popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) + popup.open() + return + +/obj/machinery/computer/telecrystals/uplinker/Topic(href, href_list) + if(..()) + return + + if(href_list["donate1"]) + donateTC(1) + + if(href_list["donate5"]) + donateTC(5) + + if(href_list["eject"]) + ejectuplink() + + src.updateUsrDialog() + + +///////////////////////////////////////// +/obj/machinery/computer/telecrystals/boss + name = "team Telecrystal management console" + desc = "A device used to manage telecrystals during group operations. To use, simply initialize the machine by scanning for nearby uplink stations. \ + Once the consoles are linked up, you can assign any telecrystals amongst your operatives; be they donated by your agents or rationed to the squad \ + based on the danger rating of the mission." + icon_state = "computer" + icon_screen = "tcboss" + icon_keyboard = "syndie_key" + var/virgin = 1 + var/scanrange = 10 + var/storedcrystals = 0 + var/list/TCstations = list() + var/list/transferlog = list() + +/obj/machinery/computer/telecrystals/boss/proc/logTransfer(logmessage) + transferlog += ("[worldtime2text()] [logmessage]") + +/obj/machinery/computer/telecrystals/boss/proc/scanUplinkers() + for(var/obj/machinery/computer/telecrystals/uplinker/A in urange(scanrange, src.loc)) + if(!A.linkedboss) + TCstations += A + A.linkedboss = src + if(virgin) + getDangerous() + virgin = 0 + +/obj/machinery/computer/telecrystals/boss/proc/getDangerous()//This scales the TC assigned with the round population. + ..() + var/danger + danger = joined_player_list.len - ticker.mode.syndicates.len + danger = Ceiling(danger, 10) + scaleTC(danger) + +/obj/machinery/computer/telecrystals/boss/proc/scaleTC(amt)//Its own proc, since it'll probably need a lot of tweaks for balance, use a fancier algorhithm, etc. + storedcrystals += amt * NUKESCALINGMODIFIER + +///////// + +/obj/machinery/computer/telecrystals/boss/attack_hand(mob/user) + if(..()) + return + src.add_fingerprint(user) + user.set_machine(src) + + + var/dat = "" + dat += "Scan for TC stations.
    " + dat += "This [src] has [storedcrystals] telecrystals available for distribution.
    " + dat += "

    " + + + for(var/obj/machinery/computer/telecrystals/uplinker/A in TCstations) + dat += "[A.name] | " + if(A.uplinkholder) + dat += "[A.uplinkholder.hidden_uplink.telecrystals] telecrystals." + if(storedcrystals) + dat+= "
    Add TC: 1 | 5" + dat += "
    " + + if(TCstations.len) + dat += "

    Evenly distribute remaining TC.

    " + + + for(var/entry in transferlog) + dat += "[entry]
    " + + + var/datum/browser/popup = new(user, "computer", "Team Telecrystal Management Console", 700, 500) + popup.set_content(dat) + popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) + popup.open() + return + +/obj/machinery/computer/telecrystals/boss/Topic(href, href_list) + if(..()) + return + + if(href_list["scan"]) + scanUplinkers() + + if(href_list["give1"]) + var/obj/machinery/computer/telecrystals/uplinker/A = locate(href_list["give1"]) + A.giveTC(1) + + if(href_list["give5"]) + var/obj/machinery/computer/telecrystals/uplinker/A = locate(href_list["give5"]) + A.giveTC(5) + + if(href_list["distrib"]) + var/sanity = 0 + while(storedcrystals && sanity < 100) + for(var/obj/machinery/computer/telecrystals/uplinker/A in TCstations) + A.giveTC(1,0) + sanity++ + logTransfer("[src] evenly distributed telecrystals.") + + src.updateUsrDialog() + return + +#undef NUKESCALINGMODIFIER diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm new file mode 100644 index 0000000..9ec0d8f --- /dev/null +++ b/code/game/machinery/constructable_frame.dm @@ -0,0 +1,312 @@ +/obj/structure/frame + name = "frame" + icon = 'icons/obj/stock_parts.dmi' + icon_state = "box_0" + density = 1 + anchored = 1 + obj_integrity = 250 + max_integrity = 250 + var/obj/item/weapon/circuitboard/circuit = null + var/state = 1 + +/obj/structure/frame/examine(user) + ..() + if(circuit) + user << "It has \a [circuit] installed." + + +/obj/structure/frame/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + new /obj/item/stack/sheet/metal(loc, 5) + if(circuit) + circuit.forceMove(loc) + circuit = null + qdel(src) + + +/obj/structure/frame/machine + name = "machine frame" + var/list/components = null + var/list/req_components = null + var/list/req_component_names = null // user-friendly names of components + +/obj/structure/frame/machine/examine(user) + ..() + if(state == 3 && req_components && req_component_names) + var/hasContent = 0 + var/requires = "It requires" + + for(var/i = 1 to req_components.len) + var/tname = req_components[i] + var/amt = req_components[tname] + if(amt == 0) + continue + var/use_and = i == req_components.len + requires += "[(hasContent ? (use_and ? ", and" : ",") : "")] [amt] [amt == 1 ? req_component_names[tname] : "[req_component_names[tname]]\s"]" + hasContent = 1 + + if(hasContent) + user << requires + "." + else + user << "It does not require any more components." + +/obj/structure/frame/machine/proc/update_namelist() + if(!req_components) + return + + req_component_names = new() + for(var/tname in req_components) + if(ispath(tname, /obj/item/stack)) + var/obj/item/stack/S = tname + var/singular_name = initial(S.singular_name) + if(singular_name) + req_component_names[tname] = singular_name + else + req_component_names[tname] = initial(S.name) + else + var/obj/O = tname + req_component_names[tname] = initial(O.name) + +/obj/structure/frame/machine/proc/get_req_components_amt() + var/amt = 0 + for(var/path in req_components) + amt += req_components[path] + return amt + +/obj/structure/frame/machine/attackby(obj/item/P, mob/user, params) + switch(state) + if(1) + if(istype(P, /obj/item/weapon/circuitboard/machine)) + user << "The frame needs wiring first!" + return + else if(istype(P, /obj/item/weapon/circuitboard)) + user << "This frame does not accept circuit boards of this type!" + return + if(istype(P, /obj/item/stack/cable_coil)) + var/obj/item/stack/cable_coil/C = P + if(C.get_amount() >= 5) + playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + user << "You start to add cables to the frame..." + if(do_after(user, 20/P.toolspeed, target = src)) + if(C.get_amount() >= 5 && state == 1) + C.use(5) + user << "You add cables to the frame." + state = 2 + icon_state = "box_1" + else + user << "You need five length of cable to wire the frame!" + return + if(istype(P, /obj/item/weapon/screwdriver) && !anchored) + playsound(src.loc, P.usesound, 50, 1) + user.visible_message("[user] disassembles the frame.", \ + "You start to disassemble the frame...", "You hear banging and clanking.") + if(do_after(user, 40/P.toolspeed, target = src)) + if(state == 1) + user << "You disassemble the frame." + var/obj/item/stack/sheet/metal/M = new (loc, 5) + M.add_fingerprint(user) + qdel(src) + return + if(istype(P, /obj/item/weapon/wrench)) + user << "You start [anchored ? "un" : ""]securing [name]..." + playsound(src.loc, P.usesound, 75, 1) + if(do_after(user, 40/P.toolspeed, target = src)) + if(state == 1) + user << "You [anchored ? "un" : ""]secure [name]." + anchored = !anchored + return + + if(2) + if(istype(P, /obj/item/weapon/wrench)) + user << "You start [anchored ? "un" : ""]securing [name]..." + playsound(src.loc, P.usesound, 75, 1) + if(do_after(user, 40/P.toolspeed, target = src)) + user << "You [anchored ? "un" : ""]secure [name]." + anchored = !anchored + return + + if(istype(P, /obj/item/weapon/circuitboard/machine)) + if(!anchored) + user << "The frame needs to be secured first!" + return + var/obj/item/weapon/circuitboard/machine/B = P + if(!user.drop_item()) + return + playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + user << "You add the circuit board to the frame." + circuit = B + B.loc = src + icon_state = "box_2" + state = 3 + components = list() + req_components = B.req_components.Copy() + update_namelist() + return + + else if(istype(P, /obj/item/weapon/circuitboard)) + user << "This frame does not accept circuit boards of this type!" + return + + if(istype(P, /obj/item/weapon/wirecutters)) + playsound(src.loc, P.usesound, 50, 1) + user << "You remove the cables." + state = 1 + icon_state = "box_0" + var/obj/item/stack/cable_coil/A = new /obj/item/stack/cable_coil( src.loc ) + A.amount = 5 + return + + if(3) + if(istype(P, /obj/item/weapon/crowbar)) + playsound(src.loc, P.usesound, 50, 1) + state = 2 + circuit.loc = src.loc + components.Remove(circuit) + circuit = null + if(components.len == 0) + user << "You remove the circuit board." + else + user << "You remove the circuit board and other components." + for(var/atom/movable/A in components) + A.loc = src.loc + desc = initial(desc) + req_components = null + components = null + icon_state = "box_1" + return + + if(istype(P, /obj/item/weapon/screwdriver)) + var/component_check = 1 + for(var/R in req_components) + if(req_components[R] > 0) + component_check = 0 + break + if(component_check) + playsound(src.loc, P.usesound, 50, 1) + var/obj/machinery/new_machine = new src.circuit.build_path(src.loc, 1) + new_machine.on_construction() + for(var/obj/O in new_machine.component_parts) + qdel(O) + new_machine.component_parts = list() + for(var/obj/O in src) + O.loc = null + new_machine.component_parts += O + circuit.loc = null + new_machine.RefreshParts() + qdel(src) + return + + if(istype(P, /obj/item/weapon/storage/part_replacer) && P.contents.len && get_req_components_amt()) + var/obj/item/weapon/storage/part_replacer/replacer = P + var/list/added_components = list() + var/list/part_list = list() + + //Assemble a list of current parts, then sort them by their rating! + for(var/obj/item/weapon/stock_parts/co in replacer) + part_list += co + //Sort the parts. This ensures that higher tier items are applied first. + part_list = sortTim(part_list, /proc/cmp_rped_sort) + + for(var/path in req_components) + while(req_components[path] > 0 && (locate(path) in part_list)) + var/obj/item/part = (locate(path) in part_list) + added_components[part] = path + replacer.remove_from_storage(part, src) + req_components[path]-- + part_list -= part + + for(var/obj/item/weapon/stock_parts/part in added_components) + components += part + user << "[part.name] applied." + if(added_components.len) + replacer.play_rped_sound() + return + + if(istype(P, /obj/item) && get_req_components_amt()) + for(var/I in req_components) + if(istype(P, I) && (req_components[I] > 0)) + if(istype(P, /obj/item/stack)) + var/obj/item/stack/S = P + var/used_amt = min(round(S.get_amount()), req_components[I]) + + if(used_amt && S.use(used_amt)) + var/obj/item/stack/NS = locate(S.merge_type) in components + + if(!NS) + NS = new S.merge_type(src, used_amt) + components += NS + else + NS.add(used_amt) + + req_components[I] -= used_amt + user << "You add [P] to [src]." + return + if(!user.drop_item()) + break + user << "You add [P] to [src]." + P.forceMove(src) + components += P + req_components[I]-- + return 1 + user << "You cannot add that to the machine!" + return 0 + if(user.a_intent == "harm") + return ..() + + +/obj/structure/frame/machine/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + if(state >= 2) + new /obj/item/stack/cable_coil(loc , 5) + for(var/X in components) + var/obj/item/I = X + I.forceMove(loc) + ..() + + + +//Machine Frame Circuit Boards +/*Common Parts: Parts List: Ignitor, Timer, Infra-red laser, Infra-red sensor, t_scanner, Capacitor, Valve, sensor unit, +micro-manipulator, console screen, beaker, Microlaser, matter bin, power cells. +*/ + +/obj/item/weapon/circuitboard/machine + var/list/req_components = null + // Components required by the machine. + // Example: list(/obj/item/weapon/stock_parts/matter_bin = 5) + var/list/def_components = null + // Default replacements for req_components, to be used in apply_default_parts instead of req_components types + // Example: list(/obj/item/weapon/stock_parts/matter_bin = /obj/item/weapon/stock_parts/matter_bin/super) + +/obj/item/weapon/circuitboard/machine/proc/apply_default_parts(obj/machinery/M) + if(!req_components) + return + + M.component_parts = list(src) // List of components always contains a board + loc = null + + for(var/comp_path in req_components) + var/comp_amt = req_components[comp_path] + if(!comp_amt) + continue + + if(def_components && def_components[comp_path]) + comp_path = def_components[comp_path] + + if(ispath(comp_path, /obj/item/stack)) + M.component_parts += new comp_path(null, comp_amt) + else + for(var/i in 1 to comp_amt) + M.component_parts += new comp_path(null) + + M.RefreshParts() + + +/obj/item/weapon/circuitboard/machine/abductor + name = "alien board (Report This)" + icon_state = "abductor_mod" + origin_tech = "programming=5;abductor=3" + +/obj/item/weapon/circuitboard/machine/clockwork + name = "clockwork board (Report This)" + icon_state = "clock_mod" diff --git a/code/game/machinery/deployable.dm b/code/game/machinery/deployable.dm new file mode 100644 index 0000000..1fe145e --- /dev/null +++ b/code/game/machinery/deployable.dm @@ -0,0 +1,168 @@ +#define SINGLE "single" +#define VERTICAL "vertical" +#define HORIZONTAL "horizontal" + +#define METAL 1 +#define WOOD 2 +#define SAND 3 + +//Barricades/cover + +/obj/structure/barricade + name = "chest high wall" + desc = "Looks like this would make good cover." + anchored = 1 + density = 1 + obj_integrity = 100 + max_integrity = 100 + var/proj_pass_rate = 50 //How many projectiles will pass the cover. Lower means stronger cover + var/material = METAL + +/obj/structure/barricade/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + make_debris() + qdel(src) + +/obj/structure/barricade/proc/make_debris() + return + +/obj/structure/barricade/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/weldingtool) && user.a_intent != "harm" && material == METAL) + var/obj/item/weapon/weldingtool/WT = I + if(obj_integrity < max_integrity) + if(WT.remove_fuel(0,user)) + user << "You begin repairing [src]..." + playsound(loc, 'sound/items/Welder.ogg', 40, 1) + if(do_after(user, 40/I.toolspeed, target = src)) + obj_integrity = Clamp(obj_integrity + 20, 0, max_integrity) + else + return ..() + +/obj/structure/barricade/CanPass(atom/movable/mover, turf/target, height=0)//So bullets will fly over and stuff. + if(height==0) + return 1 + if(locate(/obj/structure/barricade) in get_turf(mover)) + return 1 + else if(istype(mover, /obj/item/projectile)) + if(!anchored) + return 1 + var/obj/item/projectile/proj = mover + if(proj.firer && Adjacent(proj.firer)) + return 1 + if(prob(proj_pass_rate)) + return 1 + return 0 + else + return !density + + + +/////BARRICADE TYPES/////// + +/obj/structure/barricade/wooden + name = "wooden barricade" + desc = "This space is blocked off by a wooden barricade." + icon = 'icons/obj/structures.dmi' + icon_state = "woodenbarricade" + material = WOOD + +/obj/structure/barricade/wooden/make_debris() + new /obj/item/stack/sheet/mineral/wood(get_turf(src), 3) + + +/obj/structure/barricade/sandbags + name = "sandbags" + desc = "Bags of sand. Self explanatory." + icon = 'icons/obj/smooth_structures/sandbags.dmi' + icon_state = "sandbags" + obj_integrity = 280 + max_integrity = 280 + proj_pass_rate = 20 + pass_flags = LETPASSTHROW + material = SAND + climbable = TRUE + smooth = SMOOTH_TRUE + canSmoothWith = list(/obj/structure/barricade/sandbags, /turf/closed/wall, /turf/closed/wall/r_wall, /obj/structure/falsewall, /obj/structure/falsewall/reinforced, /turf/closed/wall/rust, /turf/closed/wall/r_wall/rust, /obj/structure/barricade/security) + + +/obj/structure/barricade/security + name = "security barrier" + desc = "A deployable barrier. Provides good cover in fire fights." + icon = 'icons/obj/objects.dmi' + icon_state = "barrier0" + density = 0 + anchored = 0 + obj_integrity = 180 + max_integrity = 180 + proj_pass_rate = 20 + armor = list(melee = 10, bullet = 50, laser = 50, energy = 50, bomb = 10, bio = 100, rad = 100, fire = 10, acid = 0) + + +/obj/structure/barricade/security/New() + ..() + addtimer(src, "deploy", 40) + +/obj/structure/barricade/security/proc/deploy() + icon_state = "barrier1" + density = 1 + anchored = 1 + visible_message("[src] deploys!") + + +/obj/item/weapon/grenade/barrier + name = "barrier grenade" + desc = "Instant cover. Alt+click to toggle modes." + icon = 'icons/obj/grenade.dmi' + icon_state = "flashbang" + item_state = "flashbang" + actions_types = list(/datum/action/item_action/toggle_barrier_spread) + var/mode = SINGLE + +/obj/item/weapon/grenade/barrier/AltClick(mob/living/user) + if(!istype(user) || user.incapacitated()) + return + toggle_mode(user) + +/obj/item/weapon/grenade/barrier/proc/toggle_mode(mob/user) + switch(mode) + if(SINGLE) + mode = VERTICAL + if(VERTICAL) + mode = HORIZONTAL + if(HORIZONTAL) + mode = SINGLE + + user << "[src] is now in [mode] mode." + +/obj/item/weapon/grenade/barrier/prime() + new /obj/structure/barricade/security(get_turf(src.loc)) + switch(mode) + if(VERTICAL) + var/target_turf = get_step(src, NORTH) + if(!(is_blocked_turf(target_turf))) + new /obj/structure/barricade/security(target_turf) + + var/target_turf2 = get_step(src, SOUTH) + if(!(is_blocked_turf(target_turf2))) + new /obj/structure/barricade/security(target_turf2) + if(HORIZONTAL) + var/target_turf = get_step(src, EAST) + if(!(is_blocked_turf(target_turf))) + new /obj/structure/barricade/security(target_turf) + + var/target_turf2 = get_step(src, WEST) + if(!(is_blocked_turf(target_turf2))) + new /obj/structure/barricade/security(target_turf2) + qdel(src) + +/obj/item/weapon/grenade/barrier/ui_action_click(mob/user) + toggle_mode(user) + + +#undef SINGLE +#undef VERTICAL +#undef HORIZONTAL + +#undef METAL +#undef WOOD +#undef SAND diff --git a/code/game/machinery/dna_scanner.dm b/code/game/machinery/dna_scanner.dm new file mode 100644 index 0000000..327ded8 --- /dev/null +++ b/code/game/machinery/dna_scanner.dm @@ -0,0 +1,161 @@ +/obj/machinery/dna_scannernew + name = "\improper DNA scanner" + desc = "It scans DNA structures." + icon = 'icons/obj/Cryogenic2.dmi' + icon_state = "scanner" + density = 1 + var/locked = 0 + anchored = 1 + use_power = 1 + idle_power_usage = 50 + active_power_usage = 300 + var/damage_coeff + var/scan_level + var/precision_coeff + +/obj/machinery/dna_scannernew/New() + ..() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/clonescanner(null) + B.apply_default_parts(src) + +/obj/item/weapon/circuitboard/machine/clonescanner + name = "circuit board (Cloning Scanner)" + build_path = /obj/machinery/dna_scannernew + origin_tech = "programming=2;biotech=2" + req_components = list( + /obj/item/weapon/stock_parts/scanning_module = 1, + /obj/item/weapon/stock_parts/manipulator = 1, + /obj/item/weapon/stock_parts/micro_laser = 1, + /obj/item/stack/sheet/glass = 1, + /obj/item/stack/cable_coil = 2) + +/obj/machinery/dna_scannernew/RefreshParts() + scan_level = 0 + damage_coeff = 0 + precision_coeff = 0 + for(var/obj/item/weapon/stock_parts/scanning_module/P in component_parts) + scan_level += P.rating + for(var/obj/item/weapon/stock_parts/manipulator/P in component_parts) + precision_coeff = P.rating + for(var/obj/item/weapon/stock_parts/micro_laser/P in component_parts) + damage_coeff = P.rating + +/obj/machinery/dna_scannernew/update_icon() + + //no power or maintenance + if(stat & (NOPOWER|BROKEN)) + icon_state = initial(icon_state)+ (state_open ? "_open" : "") + "_unpowered" + return + + if((stat & MAINT) || panel_open) + icon_state = initial(icon_state)+ (state_open ? "_open" : "") + "_maintenance" + return + + //running and someone in there + if(occupant) + icon_state = initial(icon_state)+ "_occupied" + return + + //running + icon_state = initial(icon_state)+ (state_open ? "_open" : "") + +/obj/machinery/dna_scannernew/power_change() + ..() + update_icon() + +/obj/machinery/dna_scannernew/proc/toggle_open(mob/user) + if(panel_open) + user << "Close the maintenance panel first." + return + + if(state_open) + close_machine() + return + + else if(locked) + user << "The bolts are locked down, securing the door shut." + return + + open_machine() + +/obj/machinery/dna_scannernew/container_resist() + var/mob/living/user = usr + var/breakout_time = 2 + if(state_open || !locked) //Open and unlocked, no need to escape + state_open = 1 + return + user.changeNext_move(CLICK_CD_BREAKOUT) + user.last_special = world.time + CLICK_CD_BREAKOUT + user << "You lean on the back of [src] and start pushing the door open... (this will take about [breakout_time] minutes.)" + user.visible_message("You hear a metallic creaking from [src]!") + + if(do_after(user,(breakout_time*60*10), target = src)) //minutes * 60seconds * 10deciseconds + if(!user || user.stat != CONSCIOUS || user.loc != src || state_open || !locked) + return + + locked = 0 + visible_message("[user] successfully broke out of [src]!") + user << "You successfully break out of [src]!" + + open_machine() + +/obj/machinery/dna_scannernew/close_machine() + if(!state_open) + return 0 + + ..() + + // search for ghosts, if the corpse is empty and the scanner is connected to a cloner + if(occupant) + if(locate(/obj/machinery/computer/cloning, get_step(src, NORTH)) \ + || locate(/obj/machinery/computer/cloning, get_step(src, SOUTH)) \ + || locate(/obj/machinery/computer/cloning, get_step(src, EAST)) \ + || locate(/obj/machinery/computer/cloning, get_step(src, WEST))) + if(!occupant.suiciding && !(occupant.disabilities & NOCLONE) && !occupant.hellbound) + occupant.notify_ghost_cloning("Your corpse has been placed into a cloning scanner. Re-enter your corpse if you want to be cloned!", source = src) + + var/obj/machinery/computer/scan_consolenew/console + for(dir in list(NORTH,EAST,SOUTH,WEST)) + console = locate(/obj/machinery/computer/scan_consolenew, get_step(src, dir)) + if(console) + console.on_scanner_close() + break + return 1 + +/obj/machinery/dna_scannernew/open_machine() + if(state_open) + return 0 + + ..() + + return 1 + +/obj/machinery/dna_scannernew/relaymove(mob/user as mob) + if(user.stat || locked) + return + + open_machine() + return + +/obj/machinery/dna_scannernew/attackby(obj/item/I, mob/user, params) + + if(!occupant && default_deconstruction_screwdriver(user, icon_state, icon_state, I))//sent icon_state is irrelevant... + update_icon()//..since we're updating the icon here, since the scanner can be unpowered when opened/closed + return + + if(exchange_parts(user, I)) + return + + if(default_pry_open(I)) + return + + if(default_deconstruction_crowbar(I)) + return + + return ..() + +/obj/machinery/dna_scannernew/attack_hand(mob/user) + if(..(user,1,0)) //don't set the machine, since there's no dialog + return + + toggle_open(user) \ No newline at end of file diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm new file mode 100644 index 0000000..fc2a1ed --- /dev/null +++ b/code/game/machinery/doors/airlock.dm @@ -0,0 +1,1299 @@ +/* + New methods: + pulse - sends a pulse into a wire for hacking purposes + cut - cuts a wire and makes any necessary state changes + mend - mends a wire and makes any necessary state changes + canAIControl - 1 if the AI can control the airlock, 0 if not (then check canAIHack to see if it can hack in) + canAIHack - 1 if the AI can hack into the airlock to recover control, 0 if not. Also returns 0 if the AI does not *need* to hack it. + hasPower - 1 if the main or backup power are functioning, 0 if not. + requiresIDs - 1 if the airlock is requiring IDs, 0 if not + isAllPowerCut - 1 if the main and backup power both have cut wires. + regainMainPower - handles the effect of main power coming back on. + loseMainPower - handles the effect of main power going offline. Usually (if one isn't already running) spawn a thread to count down how long it will be offline - counting down won't happen if main power was completely cut along with backup power, though, the thread will just sleep. + loseBackupPower - handles the effect of backup power going offline. + regainBackupPower - handles the effect of main power coming back on. + shock - has a chance of electrocuting its target. +*/ + +// Wires for the airlock are located in the datum folder, inside the wires datum folder. + +#define AIRLOCK_CLOSED 1 +#define AIRLOCK_CLOSING 2 +#define AIRLOCK_OPEN 3 +#define AIRLOCK_OPENING 4 +#define AIRLOCK_DENY 5 +#define AIRLOCK_EMAG 6 +var/list/airlock_overlays = list() + +/obj/machinery/door/airlock + name = "airlock" + icon = 'icons/obj/doors/airlocks/station/public.dmi' + icon_state = "closed" + obj_integrity = 300 + max_integrity = 300 + integrity_failure = 70 + damage_deflection = 20 + + var/aiControlDisabled = 0 //If 1, AI control is disabled until the AI hacks back in and disables the lock. If 2, the AI has bypassed the lock. If -1, the control is enabled but the AI had bypassed it earlier, so if it is disabled again the AI would have no trouble getting back in. + var/hackProof = 0 // if 1, this door can't be hacked by the AI + var/secondsMainPowerLost = 0 //The number of seconds until power is restored. + var/secondsBackupPowerLost = 0 //The number of seconds until power is restored. + var/spawnPowerRestoreRunning = 0 + var/lights = 1 // bolt lights show by default + secondsElectrified = 0 //How many seconds remain until the door is no longer electrified. -1 if it is permanently electrified until someone fixes it. + var/aiDisabledIdScanner = 0 + var/aiHacking = 0 + var/obj/machinery/door/airlock/closeOther = null + var/closeOtherId = null + var/lockdownbyai = 0 + assemblytype = /obj/structure/door_assembly/door_assembly_0 + var/justzap = 0 + normalspeed = 1 + var/obj/item/weapon/electronics/airlock/electronics = null + var/hasShocked = 0 //Prevents multiple shocks from happening + autoclose = 1 + var/obj/item/device/doorCharge/charge = null //If applied, causes an explosion upon opening the door + var/detonated = 0 + var/doorOpen = 'sound/machines/airlock.ogg' + var/doorClose = 'sound/machines/AirlockClose.ogg' + var/doorDeni = 'sound/machines/DeniedBeep.ogg' // i'm thinkin' Deni's + var/boltUp = 'sound/machines/BoltsUp.ogg' + var/boltDown = 'sound/machines/BoltsDown.ogg' + var/noPower = 'sound/machines/DoorClick.ogg' + + var/airlock_material = null //material of inner filling; if its an airlock with glass, this should be set to "glass" + var/overlays_file = 'icons/obj/doors/airlocks/station/overlays.dmi' + + var/image/old_frame_overlay //keep those in order to prevent unnecessary updating + var/image/old_filling_overlay + var/image/old_lights_overlay + var/image/old_panel_overlay + var/image/old_weld_overlay + var/image/old_sparks_overlay + var/image/old_dam_overlay + + var/cyclelinkeddir = 0 + var/obj/machinery/door/airlock/cyclelinkedairlock + var/shuttledocked = 0 + + explosion_block = 1 + +/obj/machinery/door/airlock/New() + ..() + wires = new /datum/wires/airlock(src) + if(src.closeOtherId != null) + spawn (5) + for (var/obj/machinery/door/airlock/A in airlocks) + if(A.closeOtherId == src.closeOtherId && A != src) + src.closeOther = A + break + if(glass) + airlock_material = "glass" + update_icon() + +/obj/machinery/door/airlock/initialize() + . = ..() + if (cyclelinkeddir) + cyclelinkairlock() + +/obj/machinery/door/airlock/proc/cyclelinkairlock() + if (cyclelinkedairlock) + cyclelinkedairlock.cyclelinkedairlock = null + cyclelinkedairlock = null + if (!cyclelinkeddir) + return + var/limit = world.view + var/turf/T = get_turf(src) + var/obj/machinery/door/airlock/FoundDoor + do + T = get_step(T, cyclelinkeddir) + FoundDoor = locate() in T + if (FoundDoor && FoundDoor.cyclelinkeddir != get_dir(FoundDoor, src)) + FoundDoor = null + limit-- + while(!FoundDoor && limit) + if (!FoundDoor) + return + FoundDoor.cyclelinkedairlock = src + cyclelinkedairlock = FoundDoor + +/obj/machinery/door/airlock/on_varedit(varname) + . = ..() + switch (varname) + if ("cyclelinkeddir") + cyclelinkairlock() + + +/obj/machinery/door/airlock/lock() + bolt() + +/obj/machinery/door/airlock/proc/bolt() + if(locked) + return + locked = 1 + playsound(src,boltDown,30,0,3) + update_icon() + +/obj/machinery/door/airlock/unlock() + unbolt() + +/obj/machinery/door/airlock/proc/unbolt() + if(!locked) + return + locked = 0 + playsound(src,boltUp,30,0,3) + update_icon() + +/obj/machinery/door/airlock/narsie_act() + var/turf/T = get_turf(src) + var/runed = prob(20) + if(prob(20)) + if(glass) + if(runed) + new/obj/machinery/door/airlock/cult/glass(T) + else + new/obj/machinery/door/airlock/cult/unruned/glass(T) + else + if(runed) + new/obj/machinery/door/airlock/cult(T) + else + new/obj/machinery/door/airlock/cult/unruned(T) + qdel(src) + +/obj/machinery/door/airlock/ratvar_act() //Airlocks become pinion airlocks that only allow servants + if(glass) + new/obj/machinery/door/airlock/clockwork/brass(get_turf(src)) + else + new/obj/machinery/door/airlock/clockwork(get_turf(src)) + qdel(src) + +/obj/machinery/door/airlock/Destroy() + qdel(wires) + wires = null + if(charge) + qdel(charge) + charge = null + if(electronics) + qdel(electronics) + electronics = null + if (cyclelinkedairlock) + if (cyclelinkedairlock.cyclelinkedairlock == src) + cyclelinkedairlock.cyclelinkedairlock = null + cyclelinkedairlock = null + if(id_tag) + for(var/obj/machinery/doorButtons/D in machines) + D.removeMe(src) + return ..() + +/obj/machinery/door/airlock/bumpopen(mob/living/user) //Airlocks now zap you when you 'bump' them open when they're electrified. --NeoFite + if(!issilicon(usr)) + if(src.isElectrified()) + if(!src.justzap) + if(src.shock(user, 100)) + src.justzap = 1 + spawn (10) + src.justzap = 0 + return + else /*if(src.justzap)*/ + return + else if(user.hallucination > 50 && prob(10) && src.operating == 0) + user << "You feel a powerful shock course through your body!" + user.staminaloss += 50 + user.stunned += 5 + return + if (cyclelinkedairlock) + if (!shuttledocked && !emergency && !cyclelinkedairlock.shuttledocked && !cyclelinkedairlock.emergency && allowed(user)) + addtimer(cyclelinkedairlock, "close", ( cyclelinkedairlock.operating ? 2 : 0 )) + ..() + + +/obj/machinery/door/airlock/proc/isElectrified() + if(src.secondsElectrified != 0) + return 1 + return 0 + +/obj/machinery/door/airlock/proc/canAIControl(mob/user) + return ((aiControlDisabled != 1) && (!isAllPowerCut())); + +/obj/machinery/door/airlock/proc/canAIHack() + return ((aiControlDisabled==1) && (!hackProof) && (!isAllPowerCut())); + +/obj/machinery/door/airlock/hasPower() + return ((secondsMainPowerLost == 0 || secondsBackupPowerLost == 0) && !(stat & NOPOWER)) + +/obj/machinery/door/airlock/requiresID() + return !(wires.is_cut(WIRE_IDSCAN) || aiDisabledIdScanner) + +/obj/machinery/door/airlock/proc/isAllPowerCut() + if((wires.is_cut(WIRE_POWER1) || wires.is_cut(WIRE_POWER2)) && (wires.is_cut(WIRE_BACKUP1) || wires.is_cut(WIRE_BACKUP2))) + return TRUE + +/obj/machinery/door/airlock/proc/regainMainPower() + if(src.secondsMainPowerLost > 0) + src.secondsMainPowerLost = 0 + +/obj/machinery/door/airlock/proc/loseMainPower() + if(src.secondsMainPowerLost <= 0) + src.secondsMainPowerLost = 60 + if(src.secondsBackupPowerLost < 10) + src.secondsBackupPowerLost = 10 + if(!src.spawnPowerRestoreRunning) + src.spawnPowerRestoreRunning = 1 + spawn(0) + var/cont = 1 + while (cont) + sleep(10) + if(qdeleted(src)) + return + cont = 0 + if(secondsMainPowerLost>0) + if(!wires.is_cut(WIRE_POWER1) && !wires.is_cut(WIRE_POWER2)) + secondsMainPowerLost -= 1 + updateDialog() + cont = 1 + + if(secondsBackupPowerLost>0) + if(!wires.is_cut(WIRE_BACKUP1) && !wires.is_cut(WIRE_BACKUP2)) + secondsBackupPowerLost -= 1 + updateDialog() + cont = 1 + spawnPowerRestoreRunning = 0 + updateDialog() + +/obj/machinery/door/airlock/proc/loseBackupPower() + if(src.secondsBackupPowerLost < 60) + src.secondsBackupPowerLost = 60 + +/obj/machinery/door/airlock/proc/regainBackupPower() + if(src.secondsBackupPowerLost > 0) + src.secondsBackupPowerLost = 0 + +// shock user with probability prb (if all connections & power are working) +// returns 1 if shocked, 0 otherwise +// The preceding comment was borrowed from the grille's shock script +/obj/machinery/door/airlock/proc/shock(mob/user, prb) + if(!hasPower()) // unpowered, no shock + return 0 + if(hasShocked) + return 0 //Already shocked someone recently? + if(!prob(prb)) + return 0 //you lucked out, no shock for you + var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread + s.set_up(5, 1, src) + s.start() //sparks always. + if(electrocute_mob(user, get_area(src), src)) + hasShocked = 1 + spawn(10) + hasShocked = 0 + return 1 + else + return 0 + +/obj/machinery/door/airlock/update_icon(state=0, override=0) + if(operating && !override) + return + switch(state) + if(0) + if(density) + state = AIRLOCK_CLOSED + else + state = AIRLOCK_OPEN + icon_state = "" + if(AIRLOCK_OPEN, AIRLOCK_CLOSED) + icon_state = "" + if(AIRLOCK_DENY, AIRLOCK_OPENING, AIRLOCK_CLOSING, AIRLOCK_EMAG) + icon_state = "nonexistenticonstate" //MADNESS + set_airlock_overlays(state) + +/obj/machinery/door/airlock/proc/set_airlock_overlays(state) + var/image/frame_overlay + var/image/filling_overlay + var/image/lights_overlay + var/image/panel_overlay + var/image/weld_overlay + var/image/damag_overlay + var/image/sparks_overlay + + switch(state) + if(AIRLOCK_CLOSED) + frame_overlay = get_airlock_overlay("closed", icon) + if(airlock_material) + filling_overlay = get_airlock_overlay("[airlock_material]_closed", overlays_file) + else + filling_overlay = get_airlock_overlay("fill_closed", icon) + if(panel_open) + panel_overlay = get_airlock_overlay("panel_closed", overlays_file) + if(welded) + weld_overlay = get_airlock_overlay("welded", overlays_file) + if(obj_integrity The maintenance panel seems haphazardly fastened.
    " + if(charge && panel_open) + user << "Something is wired up to the airlock's electronics!" + +/obj/machinery/door/airlock/attack_ai(mob/user) + if(!src.canAIControl(user)) + if(src.canAIHack()) + src.hack(user) + return + else + user << "Airlock AI control has been blocked with a firewall. Unable to hack." + if(emagged) + user << "Unable to interface: Airlock is unresponsive." + return + if(detonated) + user << "Unable to interface. Airlock control panel damaged." + return + + //Separate interface for the AI. + user.set_machine(src) + var/t1 = text("Airlock Control
    \n") + if(src.secondsMainPowerLost > 0) + if(!wires.is_cut(WIRE_POWER1) && !wires.is_cut(WIRE_POWER2)) + t1 += text("Main power is offline for [] seconds.
    \n", src.secondsMainPowerLost) + else + t1 += text("Main power is offline indefinitely.
    \n") + else + t1 += text("Main power is online.") + + if(src.secondsBackupPowerLost > 0) + if(!wires.is_cut(WIRE_BACKUP1) && !wires.is_cut(WIRE_BACKUP2)) + t1 += text("Backup power is offline for [] seconds.
    \n", src.secondsBackupPowerLost) + else + t1 += text("Backup power is offline indefinitely.
    \n") + else if(src.secondsMainPowerLost > 0) + t1 += text("Backup power is online.") + else + t1 += text("Backup power is offline, but will turn on if main power fails.") + t1 += "
    \n" + + if(wires.is_cut(WIRE_IDSCAN)) + t1 += text("IdScan wire is cut.
    \n") + else if(src.aiDisabledIdScanner) + t1 += text("IdScan disabled. Enable?
    \n", src) + else + t1 += text("IdScan enabled. Disable?
    \n", src) + + if(src.emergency) + t1 += text("Emergency Access Override is enabled. Disable?
    \n", src) + else + t1 += text("Emergency Access Override is disabled. Enable?
    \n", src) + + if(wires.is_cut(WIRE_POWER1)) + t1 += text("Main Power Input wire is cut.
    \n") + if(wires.is_cut(WIRE_POWER2)) + t1 += text("Main Power Output wire is cut.
    \n") + if(src.secondsMainPowerLost == 0) + t1 += text("Temporarily disrupt main power?.
    \n", src) + if(src.secondsBackupPowerLost == 0) + t1 += text("Temporarily disrupt backup power?.
    \n", src) + + if(wires.is_cut(WIRE_BACKUP1)) + t1 += text("Backup Power Input wire is cut.
    \n") + if(wires.is_cut(WIRE_BACKUP2)) + t1 += text("Backup Power Output wire is cut.
    \n") + + if(wires.is_cut(WIRE_BOLTS)) + t1 += text("Door bolt drop wire is cut.
    \n") + else if(!src.locked) + t1 += text("Door bolts are up. Drop them?
    \n", src) + else + t1 += text("Door bolts are down.") + if(src.hasPower()) + t1 += text(" Raise?
    \n", src) + else + t1 += text(" Cannot raise door bolts due to power failure.
    \n") + + if(wires.is_cut(WIRE_LIGHT)) + t1 += text("Door bolt lights wire is cut.
    \n") + else if(!src.lights) + t1 += text("Door bolt lights are off. Enable?
    \n", src) + else + t1 += text("Door bolt lights are on. Disable?
    \n", src) + + if(wires.is_cut(WIRE_SHOCK)) + t1 += text("Electrification wire is cut.
    \n") + if(src.secondsElectrified==-1) + t1 += text("Door is electrified indefinitely. Un-electrify it?
    \n", src) + else if(src.secondsElectrified>0) + t1 += text("Door is electrified temporarily ([] seconds). Un-electrify it?
    \n", src.secondsElectrified, src) + else + t1 += text("Door is not electrified. Electrify it for 30 seconds? Or, Electrify it indefinitely until someone cancels the electrification?
    \n", src, src) + + if(wires.is_cut(WIRE_SAFETY)) + t1 += text("Door force sensors not responding.
    \n") + else if(src.safe) + t1 += text("Door safeties operating normally. Override?
    \n",src) + else + t1 += text("Danger. Door safeties disabled. Restore?
    \n",src) + + if(wires.is_cut(WIRE_TIMING)) + t1 += text("Door timing circuitry not responding.
    \n") + else if(src.normalspeed) + t1 += text("Door timing circuitry operating normally. Override?
    \n",src) + else + t1 += text("Warning. Door timing circuitry operating abnormally. Restore?
    \n",src) + + if(src.welded) + t1 += text("Door appears to have been welded shut.
    \n") + else if(!src.locked) + if(src.density) + t1 += text("Open door
    \n", src) + else + t1 += text("Close door
    \n", src) + + t1 += text("

    Close

    \n", src) + user << browse(t1, "window=airlock") + onclose(user, "airlock") + +//aiDisable - 1 idscan, 2 disrupt main power, 3 disrupt backup power, 4 drop door bolts, 5 un-electrify door, 7 close door, 11 lift access override +//aiEnable - 1 idscan, 4 raise door bolts, 5 electrify door for 30 seconds, 6 electrify door indefinitely, 7 open door, 11 enable access override + + +/obj/machinery/door/airlock/proc/hack(mob/user) + set waitfor = 0 + if(src.aiHacking == 0) + src.aiHacking = 1 + user << "Airlock AI control has been blocked. Beginning fault-detection." + sleep(50) + if(src.canAIControl(user)) + user << "Alert cancelled. Airlock control has been restored without our assistance." + src.aiHacking=0 + return + else if(!src.canAIHack()) + user << "Connection lost! Unable to hack airlock." + src.aiHacking=0 + return + user << "Fault confirmed: airlock control wire disabled or cut." + sleep(20) + user << "Attempting to hack into airlock. This may take some time." + sleep(200) + if(src.canAIControl(user)) + user << "Alert cancelled. Airlock control has been restored without our assistance." + src.aiHacking=0 + return + else if(!src.canAIHack()) + user << "Connection lost! Unable to hack airlock." + src.aiHacking=0 + return + user << "Upload access confirmed. Loading control program into airlock software." + sleep(170) + if(src.canAIControl(user)) + user << "Alert cancelled. Airlock control has been restored without our assistance." + src.aiHacking=0 + return + else if(!src.canAIHack()) + user << "Connection lost! Unable to hack airlock." + src.aiHacking=0 + return + user << "Transfer complete. Forcing airlock to execute program." + sleep(50) + //disable blocked control + src.aiControlDisabled = 2 + user << "Receiving control information from airlock." + sleep(10) + //bring up airlock dialog + src.aiHacking = 0 + if(user) + src.attack_ai(user) + +/obj/machinery/door/airlock/attack_paw(mob/user) + return src.attack_hand(user) + +/obj/machinery/door/airlock/attack_hand(mob/user) + if(!(issilicon(user) || IsAdminGhost(user))) + if(src.isElectrified()) + if(src.shock(user, 100)) + return + + if(ishuman(user) && prob(40) && src.density) + var/mob/living/carbon/human/H = user + if(H.getBrainLoss() >= 60) + playsound(src.loc, 'sound/effects/bang.ogg', 25, 1) + if(!istype(H.head, /obj/item/clothing/head/helmet)) + H.visible_message("[user] headbutts the airlock.", \ + "You headbutt the airlock!") + H.Stun(5) + H.Weaken(5) + H.apply_damage(10, BRUTE, "head") + else + visible_message("[user] headbutts the airlock. Good thing they're wearing a helmet.") + return + + if(panel_open) + wires.interact(user) + else + ..() + return + + +/obj/machinery/door/airlock/Topic(href, href_list, var/nowindow = 0) + // If you add an if(..()) check you must first remove the var/nowindow parameter. + // Otherwise it will runtime with this kind of error: null.Topic() + if(!nowindow) + ..() + if(usr.incapacitated() && !IsAdminGhost(usr)) + return + add_fingerprint(usr) + if(href_list["close"]) + usr << browse(null, "window=airlock") + if(usr.machine==src) + usr.unset_machine() + return + + if((in_range(src, usr) && isturf(loc)) && panel_open) + usr.set_machine(src) + + + + if((issilicon(usr) && src.canAIControl(usr)) || IsAdminGhost(usr)) + //AI + //aiDisable - 1 idscan, 2 disrupt main power, 3 disrupt backup power, 4 drop door bolts, 5 un-electrify door, 7 close door, 8 door safties, 9 door speed, 11 emergency access + //aiEnable - 1 idscan, 4 raise door bolts, 5 electrify door for 30 seconds, 6 electrify door indefinitely, 7 open door, 8 door safties, 9 door speed, 11 emergency access + if(href_list["aiDisable"]) + var/code = text2num(href_list["aiDisable"]) + switch (code) + if(1) + //disable idscan + if(wires.is_cut(WIRE_IDSCAN)) + usr << "The IdScan wire has been cut - So, you can't disable it, but it is already disabled anyways." + else if(src.aiDisabledIdScanner) + usr << "You've already disabled the IdScan feature." + else + src.aiDisabledIdScanner = 1 + if(2) + //disrupt main power + if(src.secondsMainPowerLost == 0) + src.loseMainPower() + update_icon() + else + usr << "Main power is already offline." + if(3) + //disrupt backup power + if(src.secondsBackupPowerLost == 0) + src.loseBackupPower() + update_icon() + else + usr << "Backup power is already offline." + if(4) + //drop door bolts + if(wires.is_cut(WIRE_BOLTS)) + usr << "You can't drop the door bolts - The door bolt dropping wire has been cut." + else + bolt() + if(5) + //un-electrify door + if(wires.is_cut(WIRE_SHOCK)) + usr << text("Can't un-electrify the airlock - The electrification wire is cut.") + else if(src.secondsElectrified==-1) + src.secondsElectrified = 0 + else if(src.secondsElectrified>0) + src.secondsElectrified = 0 + + if(8) + // Safeties! We don't need no stinking safeties! + if(wires.is_cut(WIRE_SAFETY)) + usr << text("Control to door sensors is disabled.") + else if (src.safe) + safe = 0 + else + usr << text("Firmware reports safeties already overriden.") + + if(9) + // Door speed control + if(wires.is_cut(WIRE_TIMING)) + usr << text("Control to door timing circuitry has been severed.") + else if (src.normalspeed) + normalspeed = 0 + else + usr << text("Door timing circuitry already accelerated.") + if(7) + //close door + if(src.welded) + usr << text("The airlock has been welded shut!") + else if(src.locked) + usr << text("The door bolts are down!") + else if(!src.density) + close() + else + open() + + if(10) + // Bolt lights + if(wires.is_cut(WIRE_LIGHT)) + usr << text("Control to door bolt lights has been severed.") + else if (src.lights) + lights = 0 + update_icon() + else + usr << text("Door bolt lights are already disabled!") + + if(11) + // Emergency access + if (src.emergency) + emergency = 0 + update_icon() + else + usr << text("Emergency access is already disabled!") + + + else if(href_list["aiEnable"]) + var/code = text2num(href_list["aiEnable"]) + switch (code) + if(1) + //enable idscan + if(wires.is_cut(WIRE_IDSCAN)) + usr << "You can't enable IdScan - The IdScan wire has been cut." + else if(src.aiDisabledIdScanner) + src.aiDisabledIdScanner = 0 + else + usr << "The IdScan feature is not disabled." + if(4) + //raise door bolts + if(wires.is_cut(WIRE_BOLTS)) + usr << text("The door bolt drop wire is cut - you can't raise the door bolts.
    \n") + else if(!src.locked) + usr << text("The door bolts are already up.
    \n") + else + if(src.hasPower()) + unbolt() + else + usr << text("Cannot raise door bolts due to power failure.
    \n") + + if(5) + //electrify door for 30 seconds + if(wires.is_cut(WIRE_SHOCK)) + usr << text("The electrification wire has been cut.
    \n") + else if(src.secondsElectrified==-1) + usr << text("The door is already indefinitely electrified. You'd have to un-electrify it before you can re-electrify it with a non-forever duration.
    \n") + else if(src.secondsElectrified!=0) + usr << text("The door is already electrified. You can't re-electrify it while it's already electrified.
    \n") + else + shockedby += "\[[time_stamp()]\][usr](ckey:[usr.ckey])" + add_logs(usr, src, "electrified") + src.secondsElectrified = 30 + spawn(10) + while (src.secondsElectrified>0) + src.secondsElectrified-=1 + if(src.secondsElectrified<0) + src.secondsElectrified = 0 + src.updateUsrDialog() + sleep(10) + if(6) + //electrify door indefinitely + if(wires.is_cut(WIRE_SHOCK)) + usr << text("The electrification wire has been cut.
    \n") + else if(src.secondsElectrified==-1) + usr << text("The door is already indefinitely electrified.
    \n") + else if(src.secondsElectrified!=0) + usr << text("The door is already electrified. You can't re-electrify it while it's already electrified.
    \n") + else + shockedby += text("\[[time_stamp()]\][usr](ckey:[usr.ckey])") + add_logs(usr, src, "electrified") + src.secondsElectrified = -1 + + if (8) // Not in order >.> + // Safeties! Maybe we do need some stinking safeties! + if(wires.is_cut(WIRE_SAFETY)) + usr << text("Control to door sensors is disabled.") + else if (!src.safe) + safe = 1 + src.updateUsrDialog() + else + usr << text("Firmware reports safeties already in place.") + + if(9) + // Door speed control + if(wires.is_cut(WIRE_TIMING)) + usr << text("Control to door timing circuitry has been severed.") + else if (!src.normalspeed) + normalspeed = 1 + src.updateUsrDialog() + else + usr << text("Door timing circuitry currently operating normally.") + + if(7) + //open door + if(src.welded) + usr << text("The airlock has been welded shut!") + else if(src.locked) + usr << text("The door bolts are down!") + else if(src.density) + open() + else + close() + if(10) + // Bolt lights + if(wires.is_cut(WIRE_LIGHT)) + usr << text("Control to door bolt lights has been severed.") + else if (!src.lights) + lights = 1 + update_icon() + src.updateUsrDialog() + else + usr << text("Door bolt lights are already enabled!") + if(11) + // Emergency access + if (!src.emergency) + emergency = 1 + update_icon() + else + usr << text("Emergency access is already enabled!") + + add_fingerprint(usr) + if(!nowindow) + updateUsrDialog() + +/obj/machinery/door/airlock/attackby(obj/item/C, mob/user, params) + if(!issilicon(user) && !IsAdminGhost(user)) + if(src.isElectrified()) + if(src.shock(user, 75)) + return + add_fingerprint(user) + if(istype(C, /obj/item/weapon/screwdriver)) + if(panel_open && detonated) + user << "[src] has no maintenance panel!" + return + panel_open = !panel_open + user << "You [panel_open ? "open":"close"] the maintenance panel of the airlock." + src.update_icon() + else if(is_wire_tool(C)) + return attack_hand(user) + else if(istype(C, /obj/item/weapon/pai_cable)) + var/obj/item/weapon/pai_cable/cable = C + cable.plugin(src, user) + else if(istype(C, /obj/item/weapon/airlock_painter)) + change_paintjob(C, user) + else if(istype(C, /obj/item/device/doorCharge)) + if(!panel_open) + user << "The maintenance panel must be open to apply [C]!" + return + if(emagged) + return + if(charge && !detonated) + user << "There's already a charge hooked up to this door!" + return + if(detonated) + user << "The maintenance panel is destroyed!" + return + user << "You apply [C]. Next time someone opens the door, it will explode." + user.drop_item() + panel_open = 0 + update_icon() + C.forceMove(src) + charge = C + else + return ..() + + +/obj/machinery/door/airlock/try_to_weld(obj/item/weapon/weldingtool/W, mob/user) + if(!operating && density) + if(W.remove_fuel(0,user)) + user.visible_message("[user] is [welded ? "unwelding":"welding"] the airlock.", \ + "You begin [welded ? "unwelding":"welding"] the airlock...", \ + "You hear welding.") + playsound(loc, 'sound/items/Welder.ogg', 40, 1) + if(do_after(user,40/W.toolspeed, 1, target = src)) + if(density && !operating)//Door must be closed to weld. + if(!user || !W || !W.isOn() || !user.loc ) + return + playsound(loc, 'sound/items/Welder2.ogg', 50, 1) + welded = !welded + user.visible_message("[user.name] has [welded? "welded shut":"unwelded"] [src].", \ + "You [welded ? "weld the airlock shut":"unweld the airlock"].") + update_icon() + +/obj/machinery/door/airlock/try_to_crowbar(obj/item/I, mob/user) + var/beingcrowbarred = null + if(istype(I, /obj/item/weapon/crowbar) ) + beingcrowbarred = 1 + else + beingcrowbarred = 0 + if(panel_open && charge) + user << "You carefully start removing [charge] from [src]..." + playsound(get_turf(src), I.usesound, 50, 1) + if(!do_after(user, 150/I.toolspeed, target = src)) + user << "You slip and [charge] detonates!" + charge.ex_act(1) + user.Weaken(3) + return + user.visible_message("[user] removes [charge] from [src].", \ + "You gently pry out [charge] from [src] and unhook its wires.") + charge.forceMove(get_turf(user)) + charge = null + return + if( beingcrowbarred && (density && welded && !operating && src.panel_open && (!hasPower()) && !src.locked) ) + playsound(src.loc, I.usesound, 100, 1) + user.visible_message("[user] removes the electronics from the airlock assembly.", \ + "You start to remove electronics from the airlock assembly...") + if(do_after(user,40/I.toolspeed, target = src)) + if(src.loc) + deconstruct(TRUE, user) + return + else if(hasPower()) + user << "The airlock's motors resist your efforts to force it!" + else if(locked) + user << "The airlock's bolts prevent it from being forced!" + else if( !welded && !operating) + if(beingcrowbarred == 0) //being fireaxe'd + var/obj/item/weapon/twohanded/fireaxe/F = I + if(F.wielded) + spawn(0) + if(density) + open(2) + else + close(2) + else + user << "You need to be wielding the fire axe to do that!" + else + spawn(0) + if(density) + open(2) + else + close(2) + + if(istype(I, /obj/item/weapon/crowbar/power)) + if(isElectrified()) + shock(user,100)//it's like sticking a forck in a power socket + return + + if(!density)//already open + return + + if(locked) + user << "The bolts are down, it won't budge!" + return + + if(welded) + user << "It's welded, it won't budge!" + return + + var/time_to_open = 5 + if(hasPower()) + time_to_open = 50 + playsound(src, 'sound/machines/airlock_alien_prying.ogg',100,1) //is it aliens or just the CE being a dick? + if(do_after(user, time_to_open,target = src)) + open(2) + if(density && !open(2)) + user << "Despite your attempts, the [src] refuses to open." + +/obj/machinery/door/airlock/plasma/attackby(obj/item/C, mob/user, params) + if(C.is_hot() > 300)//If the temperature of the object is over 300, then ignite + message_admins("Plasma airlock ignited by [ADMIN_LOOKUPFLW(user)] in [ADMIN_COORDJMP(src)]") + log_game("Plasma wall ignited by [key_name(user)] in [COORD(src)]") + ignite(C.is_hot()) + else + return ..() + +/obj/machinery/door/airlock/open(forced=0) + if( operating || welded || locked ) + return 0 + if(!forced) + if(!hasPower() || wires.is_cut(WIRE_OPEN)) + return 0 + if(charge && !detonated) + panel_open = 1 + update_icon(AIRLOCK_OPENING) + visible_message("[src]'s panel is blown off in a spray of deadly shrapnel!") + charge.loc = get_turf(src) + charge.ex_act(1) + detonated = 1 + charge = null + for(var/mob/living/carbon/human/H in orange(2,src)) + H.Paralyse(8) + H.adjust_fire_stacks(20) + H.IgniteMob() //Guaranteed knockout and ignition for nearby people + H.apply_damage(40, BRUTE, "chest") + return + if(forced < 2) + if(emagged) + return 0 + use_power(50) + playsound(src.loc, doorOpen, 30, 1) + if(src.closeOther != null && istype(src.closeOther, /obj/machinery/door/airlock/) && !src.closeOther.density) + src.closeOther.close() + else + playsound(src.loc, 'sound/machines/airlockforced.ogg', 30, 1) + + if(autoclose && normalspeed) + addtimer(src, "autoclose", 150) + else if(autoclose && !normalspeed) + addtimer(src, "autoclose", 15) + + if(!density) + return 1 + if(!ticker || !ticker.mode) + return 0 + operating = 1 + update_icon(AIRLOCK_OPENING, 1) + src.SetOpacity(0) + sleep(5) + src.density = 0 + sleep(9) + src.layer = OPEN_DOOR_LAYER + update_icon(AIRLOCK_OPEN, 1) + SetOpacity(0) + operating = 0 + air_update_turf(1) + update_freelook_sight() + return 1 + + +/obj/machinery/door/airlock/close(forced=0) + if(operating || welded || locked) + return + if(!forced) + if(!hasPower() || wires.is_cut(WIRE_BOLTS)) + return + if(safe) + for(var/atom/movable/M in get_turf(src)) + if(M.density && M != src) //something is blocking the door + addtimer(src, "autoclose", 60) + return + + if(forced < 2) + if(emagged) + return + use_power(50) + playsound(src.loc, doorClose, 30, 1) + else + playsound(src.loc, 'sound/machines/airlockforced.ogg', 30, 1) + + var/obj/structure/window/killthis = (locate(/obj/structure/window) in get_turf(src)) + if(killthis) + killthis.ex_act(2)//Smashin windows + + if(density) + return 1 + operating = 1 + update_icon(AIRLOCK_CLOSING, 1) + src.layer = CLOSED_DOOR_LAYER + sleep(5) + src.density = 1 + if(!safe) + crush() + sleep(9) + update_icon(AIRLOCK_CLOSED, 1) + if(visible && !glass) + SetOpacity(1) + operating = 0 + air_update_turf(1) + update_freelook_sight() + if(safe) + CheckForMobs() + return 1 + +/obj/machinery/door/airlock/proc/prison_open() + if(emagged) + return + src.locked = 0 + src.open() + src.locked = 1 + return + + +/obj/machinery/door/airlock/proc/change_paintjob(obj/item/weapon/airlock_painter/W, mob/user) + if(!W.can_use(user)) + return + + var/list/optionlist + if(airlock_material == "glass") + optionlist = list("Public", "Public2", "Engineering", "Atmospherics", "Security", "Command", "Medical", "Research", "Mining", "Maintenance") + else + optionlist = list("Public", "Engineering", "Atmospherics", "Security", "Command", "Medical", "Research", "Mining", "Maintenance", "External", "High Security") + + var/paintjob = input(user, "Please select a paintjob for this airlock.") in optionlist + if((!in_range(src, usr) && src.loc != usr) || !W.use(user)) + return + switch(paintjob) + if("Public") + icon = 'icons/obj/doors/airlocks/station/public.dmi' + overlays_file = 'icons/obj/doors/airlocks/station/overlays.dmi' + assemblytype = /obj/structure/door_assembly/door_assembly_0 + if("Public2") + icon = 'icons/obj/doors/airlocks/station2/glass.dmi' + overlays_file = 'icons/obj/doors/airlocks/station2/overlays.dmi' + assemblytype = /obj/structure/door_assembly/door_assembly_glass + if("Engineering") + icon = 'icons/obj/doors/airlocks/station/engineering.dmi' + overlays_file = 'icons/obj/doors/airlocks/station/overlays.dmi' + assemblytype = /obj/structure/door_assembly/door_assembly_eng + if("Atmospherics") + icon = 'icons/obj/doors/airlocks/station/atmos.dmi' + overlays_file = 'icons/obj/doors/airlocks/station/overlays.dmi' + assemblytype = /obj/structure/door_assembly/door_assembly_atmo + if("Security") + icon = 'icons/obj/doors/airlocks/station/security.dmi' + overlays_file = 'icons/obj/doors/airlocks/station/overlays.dmi' + assemblytype = /obj/structure/door_assembly/door_assembly_sec + if("Command") + icon = 'icons/obj/doors/airlocks/station/command.dmi' + overlays_file = 'icons/obj/doors/airlocks/station/overlays.dmi' + assemblytype = /obj/structure/door_assembly/door_assembly_com + if("Medical") + icon = 'icons/obj/doors/airlocks/station/medical.dmi' + overlays_file = 'icons/obj/doors/airlocks/station/overlays.dmi' + assemblytype = /obj/structure/door_assembly/door_assembly_med + if("Research") + icon = 'icons/obj/doors/airlocks/station/research.dmi' + overlays_file = 'icons/obj/doors/airlocks/station/overlays.dmi' + assemblytype = /obj/structure/door_assembly/door_assembly_research + if("Mining") + icon = 'icons/obj/doors/airlocks/station/mining.dmi' + overlays_file = 'icons/obj/doors/airlocks/station/overlays.dmi' + assemblytype = /obj/structure/door_assembly/door_assembly_min + if("Maintenance") + icon = 'icons/obj/doors/airlocks/station/maintenance.dmi' + overlays_file = 'icons/obj/doors/airlocks/station/overlays.dmi' + assemblytype = /obj/structure/door_assembly/door_assembly_mai + if("External") + icon = 'icons/obj/doors/airlocks/external/external.dmi' + overlays_file = 'icons/obj/doors/airlocks/external/overlays.dmi' + assemblytype = /obj/structure/door_assembly/door_assembly_ext + if("High Security") + icon = 'icons/obj/doors/airlocks/highsec/highsec.dmi' + overlays_file = 'icons/obj/doors/airlocks/highsec/overlays.dmi' + assemblytype = /obj/structure/door_assembly/door_assembly_highsecurity + update_icon() + +/obj/machinery/door/airlock/CanAStarPass(obj/item/weapon/card/id/ID) +//Airlock is passable if it is open (!density), bot has access, and is not bolted shut or powered off) + return !density || (check_access(ID) && !locked && hasPower()) + +/obj/machinery/door/airlock/emag_act(mob/user) + if(!operating && density && hasPower() && !emagged) + operating = 1 + update_icon(AIRLOCK_EMAG, 1) + sleep(6) + if(qdeleted(src)) + return + operating = 0 + if(!open()) + update_icon(AIRLOCK_CLOSED, 1) + emagged = 1 + desc = "Its access panel is smoking slightly." + lights = 0 + locked = 1 + loseMainPower() + loseBackupPower() + +/obj/machinery/door/airlock/attack_alien(mob/living/carbon/alien/humanoid/user) + add_fingerprint(user) + if(isElectrified()) + shock(user, 100) //Mmm, fried xeno! + return + if(!density) //Already open + return + if(locked || welded) //Extremely generic, as aliens only understand the basics of how airlocks work. + user << "[src] refuses to budge!" + return + user.visible_message("[user] begins prying open [src].",\ + "You begin digging your claws into [src] with all your might!",\ + "You hear groaning metal...") + var/time_to_open = 5 + if(hasPower()) + time_to_open = 50 //Powered airlocks take longer to open, and are loud. + playsound(src, 'sound/machines/airlock_alien_prying.ogg', 100, 1) + + + if(do_after(user, time_to_open, target = src)) + if(density && !open(2)) //The airlock is still closed, but something prevented it opening. (Another player noticed and bolted/welded the airlock in time!) + user << "Despite your efforts, [src] managed to resist your attempts to open it!" + +/obj/machinery/door/airlock/hostile_lockdown(mob/origin) + // Must be powered and have working AI wire. + if(canAIControl(src) && !stat) + locked = FALSE //For airlocks that were bolted open. + safe = FALSE //DOOR CRUSH + close() + bolt() //Bolt it! + secondsElectrified = -1 //Shock it! + if(origin) + shockedby += "\[[time_stamp()]\][origin](ckey:[origin.ckey])" + + +/obj/machinery/door/airlock/disable_lockdown() + // Must be powered and have working AI wire. + if(canAIControl(src) && !stat) + unbolt() + secondsElectrified = 0 + open() + safe = TRUE + + +/obj/machinery/door/airlock/obj_break(damage_flag) + if(!(stat & BROKEN) && !(flags & NODECONSTRUCT)) + stat |= BROKEN + if(!panel_open) + panel_open = 1 + wires.cut_all() + update_icon() + + +/obj/machinery/door/airlock/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir) + . = ..() + if(obj_integrity < (0.75 * max_integrity)) + update_icon() + + +/obj/machinery/door/airlock/deconstruct(disassembled = TRUE, mob/user) + if(!(flags & NODECONSTRUCT)) + var/obj/structure/door_assembly/A + if(assemblytype) + A = new assemblytype(src.loc) + A.heat_proof_finished = src.heat_proof //tracks whether there's rglass in + else + A = new /obj/structure/door_assembly/door_assembly_0(src.loc) + //If you come across a null assemblytype, it will produce the default assembly instead of disintegrating. + + if(!disassembled) + if(A) + A.obj_integrity = A.max_integrity * 0.5 + else if(emagged) + if(user) + user << "You discard the damaged electronics." + else + if(user) + user << "You remove the airlock electronics." + + var/obj/item/weapon/electronics/airlock/ae + if(!electronics) + ae = new/obj/item/weapon/electronics/airlock( src.loc ) + if(req_one_access) + ae.one_access = 1 + ae.accesses = src.req_one_access + else + ae.accesses = src.req_access + else + ae = electronics + electronics = null + ae.loc = src.loc + qdel(src) diff --git a/code/game/machinery/doors/airlock_electronics.dm b/code/game/machinery/doors/airlock_electronics.dm new file mode 100644 index 0000000..9771c91 --- /dev/null +++ b/code/game/machinery/doors/airlock_electronics.dm @@ -0,0 +1,53 @@ +/obj/item/weapon/electronics/airlock + name = "airlock electronics" + req_access = list(access_maint_tunnels) + + var/list/accesses = list() + var/one_access = 0 + +/obj/item/weapon/electronics/airlock/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ + datum/tgui/master_ui = null, datum/ui_state/state = hands_state) + SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "airlock_electronics", name, 975, 420, master_ui, state) + ui.open() + +/obj/item/weapon/electronics/airlock/ui_data() + var/list/data = list() + var/list/regions = list() + + for(var/i in 1 to 7) + var/list/region = list() + var/list/accesses = list() + for(var/j in get_region_accesses(i)) + var/list/access = list() + access["name"] = get_access_desc(j) + access["id"] = j + access["req"] = (j in src.accesses) + accesses[++accesses.len] = access + region["name"] = get_region_accesses_name(i) + region["accesses"] = accesses + regions[++regions.len] = region + data["regions"] = regions + data["oneAccess"] = one_access + + return data + +/obj/item/weapon/electronics/airlock/ui_act(action, params) + if(..()) + return + switch(action) + if("clear") + accesses = list() + one_access = 0 + . = TRUE + if("one_access") + one_access = !one_access + . = TRUE + if("set") + var/access = text2num(params["access"]) + if (!(access in accesses)) + accesses += access + else + accesses -= access + . = TRUE diff --git a/code/game/machinery/doors/airlock_types.dm b/code/game/machinery/doors/airlock_types.dm new file mode 100644 index 0000000..f4b65f1 --- /dev/null +++ b/code/game/machinery/doors/airlock_types.dm @@ -0,0 +1,567 @@ +/* + Station Airlocks Regular +*/ +/obj/machinery/door/airlock/command + icon = 'icons/obj/doors/airlocks/station/command.dmi' + assemblytype = /obj/structure/door_assembly/door_assembly_com + obj_integrity = 450 + max_integrity = 450 + +/obj/machinery/door/airlock/security + icon = 'icons/obj/doors/airlocks/station/security.dmi' + assemblytype = /obj/structure/door_assembly/door_assembly_sec + obj_integrity = 450 + max_integrity = 450 + +/obj/machinery/door/airlock/engineering + icon = 'icons/obj/doors/airlocks/station/engineering.dmi' + assemblytype = /obj/structure/door_assembly/door_assembly_eng + +/obj/machinery/door/airlock/medical + icon = 'icons/obj/doors/airlocks/station/medical.dmi' + assemblytype = /obj/structure/door_assembly/door_assembly_med + +/obj/machinery/door/airlock/maintenance + name = "maintenance access" + icon = 'icons/obj/doors/airlocks/station/maintenance.dmi' + assemblytype = /obj/structure/door_assembly/door_assembly_mai + obj_integrity = 250 + max_integrity = 250 + +/obj/machinery/door/airlock/mining + name = "mining airlock" + icon = 'icons/obj/doors/airlocks/station/mining.dmi' + assemblytype = /obj/structure/door_assembly/door_assembly_min + +/obj/machinery/door/airlock/atmos + name = "atmospherics airlock" + icon = 'icons/obj/doors/airlocks/station/atmos.dmi' + assemblytype = /obj/structure/door_assembly/door_assembly_atmo + +/obj/machinery/door/airlock/research + icon = 'icons/obj/doors/airlocks/station/research.dmi' + assemblytype = /obj/structure/door_assembly/door_assembly_research + +/obj/machinery/door/airlock/freezer + name = "freezer airlock" + icon = 'icons/obj/doors/airlocks/station/freezer.dmi' + assemblytype = /obj/structure/door_assembly/door_assembly_fre + +/obj/machinery/door/airlock/science + icon = 'icons/obj/doors/airlocks/station/science.dmi' + assemblytype = /obj/structure/door_assembly/door_assembly_science + +/obj/machinery/door/airlock/virology + icon = 'icons/obj/doors/airlocks/station/virology.dmi' + assemblytype = /obj/structure/door_assembly/door_assembly_viro + +////////////////////////////////// +/* + Station Airlocks Glass +*/ + +/obj/machinery/door/airlock/glass_command + icon = 'icons/obj/doors/airlocks/station/command.dmi' + opacity = 0 + assemblytype = /obj/structure/door_assembly/door_assembly_com/glass + glass = 1 + obj_integrity = 400 + max_integrity = 400 + +/obj/machinery/door/airlock/glass_engineering + icon = 'icons/obj/doors/airlocks/station/engineering.dmi' + opacity = 0 + assemblytype = /obj/structure/door_assembly/door_assembly_eng/glass + glass = 1 + +/obj/machinery/door/airlock/glass_security + icon = 'icons/obj/doors/airlocks/station/security.dmi' + opacity = 0 + assemblytype = /obj/structure/door_assembly/door_assembly_sec/glass + glass = 1 + obj_integrity = 400 + max_integrity = 400 + +/obj/machinery/door/airlock/glass_medical + icon = 'icons/obj/doors/airlocks/station/medical.dmi' + opacity = 0 + assemblytype = /obj/structure/door_assembly/door_assembly_med/glass + glass = 1 + +/obj/machinery/door/airlock/glass_research + icon = 'icons/obj/doors/airlocks/station/research.dmi' + opacity = 0 + assemblytype = /obj/structure/door_assembly/door_assembly_research/glass + glass = 1 + +/obj/machinery/door/airlock/glass_mining + icon = 'icons/obj/doors/airlocks/station/mining.dmi' + opacity = 0 + assemblytype = /obj/structure/door_assembly/door_assembly_min/glass + glass = 1 + +/obj/machinery/door/airlock/glass_atmos + icon = 'icons/obj/doors/airlocks/station/atmos.dmi' + opacity = 0 + assemblytype = /obj/structure/door_assembly/door_assembly_atmo/glass + glass = 1 + +/obj/machinery/door/airlock/glass_science + icon = 'icons/obj/doors/airlocks/station/science.dmi' + opacity = 0 + assemblytype = /obj/structure/door_assembly/door_assembly_science/glass + glass = 1 + +/obj/machinery/door/airlock/glass_virology + icon = 'icons/obj/doors/airlocks/station/virology.dmi' + opacity = 0 + assemblytype = /obj/structure/door_assembly/door_assembly_viro/glass + glass = 1 + +/obj/machinery/door/airlock/glass_maintenance + icon = 'icons/obj/doors/airlocks/station/maintenance.dmi' + opacity = 0 + assemblytype = /obj/structure/door_assembly/door_assembly_mai/glass + glass = 1 + +////////////////////////////////// +/* + Station Airlocks Mineral +*/ + +/obj/machinery/door/airlock/gold + name = "gold airlock" + icon = 'icons/obj/doors/airlocks/station/gold.dmi' + var/mineral = "gold" + assemblytype = /obj/structure/door_assembly/door_assembly_gold + +/obj/machinery/door/airlock/silver + name = "silver airlock" + icon = 'icons/obj/doors/airlocks/station/silver.dmi' + var/mineral = "silver" + assemblytype = /obj/structure/door_assembly/door_assembly_silver + +/obj/machinery/door/airlock/diamond + name = "diamond airlock" + icon = 'icons/obj/doors/airlocks/station/diamond.dmi' + var/mineral = "diamond" + assemblytype = /obj/structure/door_assembly/door_assembly_diamond + obj_integrity = 1000 + max_integrity = 1000 + +/obj/machinery/door/airlock/uranium + name = "uranium airlock" + icon = 'icons/obj/doors/airlocks/station/uranium.dmi' + var/mineral = "uranium" + assemblytype = /obj/structure/door_assembly/door_assembly_uranium + var/last_event = 0 + +/obj/machinery/door/airlock/uranium/process() + if(world.time > last_event+20) + if(prob(50)) + radiate() + last_event = world.time + ..() + +/obj/machinery/door/airlock/uranium/proc/radiate() + radiation_pulse(get_turf(src), 3, 3, 15, 0) + return + +/obj/machinery/door/airlock/plasma + name = "plasma airlock" + desc = "No way this can end badly." + icon = 'icons/obj/doors/airlocks/station/plasma.dmi' + var/mineral = "plasma" + assemblytype = /obj/structure/door_assembly/door_assembly_plasma + +/obj/machinery/door/airlock/plasma/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) + if(exposed_temperature > 300) + PlasmaBurn(exposed_temperature) + +/obj/machinery/door/airlock/plasma/proc/ignite(exposed_temperature) + if(exposed_temperature > 300) + PlasmaBurn(exposed_temperature) + +/obj/machinery/door/airlock/plasma/proc/PlasmaBurn(temperature) + atmos_spawn_air("plasma=500;TEMP=1000") + new/obj/structure/door_assembly/door_assembly_0( src.loc ) + qdel(src) + +/obj/machinery/door/airlock/plasma/BlockSuperconductivity() //we don't stop the heat~ + return 0 + +/obj/machinery/door/airlock/clown + name = "bananium airlock" + desc = "Honkhonkhonk" + icon = 'icons/obj/doors/airlocks/station/bananium.dmi' + var/mineral = "bananium" + doorOpen = 'sound/items/bikehorn.ogg' + assemblytype = /obj/structure/door_assembly/door_assembly_clown + +/obj/machinery/door/airlock/sandstone + name = "sandstone airlock" + icon = 'icons/obj/doors/airlocks/station/sandstone.dmi' + var/mineral = "sandstone" + assemblytype = /obj/structure/door_assembly/door_assembly_sandstone + + +/obj/machinery/door/airlock/wood + name = "wooden airlock" + icon = 'icons/obj/doors/airlocks/station/wood.dmi' + var/mineral = "wood" + assemblytype = /obj/structure/door_assembly/door_assembly_wood + +////////////////////////////////// +/* + Station2 Airlocks +*/ + +/obj/machinery/door/airlock/glass + name = "glass airlock" + icon = 'icons/obj/doors/airlocks/station2/glass.dmi' + overlays_file = 'icons/obj/doors/airlocks/station2/overlays.dmi' + opacity = 0 + assemblytype = /obj/structure/door_assembly/door_assembly_glass + glass = 1 + +////////////////////////////////// +/* + External Airlocks +*/ + +/obj/machinery/door/airlock/external + name = "external airlock" + icon = 'icons/obj/doors/airlocks/external/external.dmi' + overlays_file = 'icons/obj/doors/airlocks/external/overlays.dmi' + assemblytype = /obj/structure/door_assembly/door_assembly_ext + +/obj/machinery/door/airlock/glass_external + name = "external airlock" + icon = 'icons/obj/doors/airlocks/external/external.dmi' + overlays_file = 'icons/obj/doors/airlocks/external/overlays.dmi' + assemblytype = /obj/structure/door_assembly/door_assembly_ext/glass + opacity = 0 + glass = 1 + +////////////////////////////////// +/* + Centcom Airlocks +*/ + +/obj/machinery/door/airlock/centcom + icon = 'icons/obj/doors/airlocks/centcom/centcom.dmi' + overlays_file = 'icons/obj/doors/airlocks/centcom/overlays.dmi' + opacity = 1 + assemblytype = /obj/structure/door_assembly/door_assembly_centcom + obj_integrity = 1000 + max_integrity = 1000 + +////////////////////////////////// +/* + Vault Airlocks +*/ + +/obj/machinery/door/airlock/vault + name = "vault door" + icon = 'icons/obj/doors/airlocks/vault/vault.dmi' + overlays_file = 'icons/obj/doors/airlocks/vault/overlays.dmi' + opacity = 1 + assemblytype = /obj/structure/door_assembly/door_assembly_vault + explosion_block = 2 + obj_integrity = 600 + max_integrity = 600 + +////////////////////////////////// +/* + Hatch Airlocks +*/ + +/obj/machinery/door/airlock/hatch + name = "airtight hatch" + icon = 'icons/obj/doors/airlocks/hatch/centcom.dmi' + overlays_file = 'icons/obj/doors/airlocks/hatch/overlays.dmi' + opacity = 1 + assemblytype = /obj/structure/door_assembly/door_assembly_hatch + +/obj/machinery/door/airlock/maintenance_hatch + name = "maintenance hatch" + icon = 'icons/obj/doors/airlocks/hatch/maintenance.dmi' + overlays_file = 'icons/obj/doors/airlocks/hatch/overlays.dmi' + opacity = 1 + assemblytype = /obj/structure/door_assembly/door_assembly_mhatch + +////////////////////////////////// +/* + High Security Airlocks +*/ + +/obj/machinery/door/airlock/highsecurity + name = "high tech security airlock" + icon = 'icons/obj/doors/airlocks/highsec/highsec.dmi' + overlays_file = 'icons/obj/doors/airlocks/highsec/overlays.dmi' + assemblytype = /obj/structure/door_assembly/door_assembly_highsecurity + explosion_block = 2 + obj_integrity = 500 + max_integrity = 500 + damage_deflection = 30 + +////////////////////////////////// +/* + Shuttle Airlocks +*/ + +/obj/machinery/door/airlock/shuttle + name = "shuttle airlock" + icon = 'icons/obj/doors/airlocks/shuttle/shuttle.dmi' + overlays_file = 'icons/obj/doors/airlocks/shuttle/overlays.dmi' + assemblytype = /obj/structure/door_assembly/door_assembly_shuttle + +/obj/machinery/door/airlock/abductor + name = "alien airlock" + desc = "With humanity's current technological level, it could take years to hack this advanced airlock... or maybe we should give a screwdriver a try?" + icon = 'icons/obj/doors/airlocks/abductor/abductor_airlock.dmi' + overlays_file = 'icons/obj/doors/airlocks/abductor/overlays.dmi' + assemblytype = /obj/structure/door_assembly/door_assembly_abductor + damage_deflection = 30 + opacity = 1 + explosion_block = 3 + hackProof = 1 + aiControlDisabled = 1 + obj_integrity = 700 + max_integrity = 700 + +////////////////////////////////// +/* + Cult Airlocks +*/ + +/obj/machinery/door/airlock/cult + name = "cult airlock" + icon = 'icons/obj/doors/airlocks/cult/runed/cult.dmi' + overlays_file = 'icons/obj/doors/airlocks/cult/runed/overlays.dmi' + assemblytype = /obj/structure/door_assembly/door_assembly_cult + hackProof = 1 + aiControlDisabled = 1 + var/openingoverlaytype = /obj/effect/overlay/temp/cult/door + var/friendly = FALSE + +/obj/machinery/door/airlock/cult/New() + ..() + PoolOrNew(openingoverlaytype, src.loc) + +/obj/machinery/door/airlock/cult/canAIControl(mob/user) + return (iscultist(user) && !isAllPowerCut()) + +/obj/machinery/door/airlock/cult/allowed(mob/M) + if(!density) + return 1 + if(friendly || iscultist(M) || istype(M, /mob/living/simple_animal/shade) || isconstruct(M)) + PoolOrNew(openingoverlaytype, loc) + return 1 + else + PoolOrNew(/obj/effect/overlay/temp/cult/sac, loc) + var/atom/throwtarget + throwtarget = get_edge_target_turf(src, get_dir(src, get_step_away(M, src))) + M << pick(sound('sound/hallucinations/turn_around1.ogg',0,1,50), sound('sound/hallucinations/turn_around2.ogg',0,1,50)) + flash_color(M, flash_color="#960000", flash_time=20) + M.Weaken(2) + M.throw_at_fast(throwtarget, 5, 1,src) + return 0 + +/obj/machinery/door/airlock/cult/narsie_act() + return + +/obj/machinery/door/airlock/cult/friendly + friendly = TRUE + +/obj/machinery/door/airlock/cult/glass + assemblytype = /obj/structure/door_assembly/door_assembly_cult/glass + glass = 1 + opacity = 0 + +/obj/machinery/door/airlock/cult/glass/friendly + friendly = TRUE + +/obj/machinery/door/airlock/cult/unruned + icon = 'icons/obj/doors/airlocks/cult/unruned/cult.dmi' + overlays_file = 'icons/obj/doors/airlocks/cult/unruned/overlays.dmi' + assemblytype = /obj/structure/door_assembly/door_assembly_cult/unruned + openingoverlaytype = /obj/effect/overlay/temp/cult/door/unruned + +/obj/machinery/door/airlock/cult/unruned/friendly + friendly = TRUE + +/obj/machinery/door/airlock/cult/unruned/glass + assemblytype = /obj/structure/door_assembly/door_assembly_cult/unruned/glass + glass = 1 + opacity = 0 + +/obj/machinery/door/airlock/cult/unruned/glass/friendly + friendly = TRUE + +#define GEAR_SECURE 1 //Construction defines for the pinion airlock +#define GEAR_UNFASTENED 2 +#define GEAR_LOOSE 3 + +//Pinion airlocks: Clockwork doors that only let servants of Ratvar through. +/obj/machinery/door/airlock/clockwork + name = "pinion airlock" + desc = "A massive cogwheel set into two heavy slabs of brass." + icon = 'icons/obj/doors/airlocks/clockwork/pinion_airlock.dmi' + overlays_file = 'icons/obj/doors/airlocks/clockwork/overlays.dmi' + opacity = 1 + hackProof = TRUE + aiControlDisabled = TRUE + use_power = FALSE + resistance_flags = FIRE_PROOF | ACID_PROOF + damage_deflection = 30 + obj_integrity = 400 + max_integrity = 400 + var/construction_state = GEAR_SECURE //Pinion airlocks have custom deconstruction + +/obj/machinery/door/airlock/clockwork/New() + ..() + var/turf/T = get_turf(src) + PoolOrNew(/obj/effect/overlay/temp/ratvar/door, T) + PoolOrNew(/obj/effect/overlay/temp/ratvar/beam/door, T) + change_construction_value(5) + +/obj/machinery/door/airlock/clockwork/Destroy() + change_construction_value(-5) + return ..() + +/obj/machinery/door/airlock/clockwork/examine(mob/user) + ..() + var/gear_text = "The cogwheel is flickering and twisting wildly. Report this to a coder." + switch(construction_state) + if(GEAR_SECURE) + gear_text = "The cogwheel is solidly secured to the brass around it." + if(GEAR_UNFASTENED) + gear_text = "The cogwheel is slightly raised, enough to see a thin gap between it and the brass." + if(GEAR_LOOSE) + gear_text = "There is a wide gap between the cogwheel and the door!" + user << gear_text + +/obj/machinery/door/airlock/clockwork/canAIControl(mob/user) + return (is_servant_of_ratvar(user) && !isAllPowerCut()) + +/obj/machinery/door/airlock/clockwork/ratvar_act() + return 0 + +/obj/machinery/door/airlock/clockwork/narsie_act() + ..() + if(src) + var/previouscolor = color + color = "#960000" + animate(src, color = previouscolor, time = 8) + addtimer(src, "update_atom_colour", 8) + +/obj/machinery/door/airlock/clockwork/attackby(obj/item/I, mob/living/user, params) + if(!attempt_construction(I, user)) + return ..() + +/obj/machinery/door/airlock/clockwork/allowed(mob/M) + if(is_servant_of_ratvar(M)) + return 1 + return 0 + +/obj/machinery/door/airlock/clockwork/hasPower() + return TRUE //yes we do have power + +/obj/machinery/door/airlock/clockwork/obj_break(damage_flag) + return + +/obj/machinery/door/airlock/clockwork/deconstruct(disassembled = TRUE) + playsound(src, 'sound/items/Deconstruct.ogg', 50, 1) + if(!(flags & NODECONSTRUCT)) + var/turf/T = get_turf(src) + if(disassembled) + new/obj/item/stack/sheet/brass(T, 4) + else + new/obj/item/clockwork/alloy_shards(T) + new/obj/item/clockwork/component/vanguard_cogwheel/pinion_lock(T) + qdel(src) + +/obj/machinery/door/airlock/clockwork/proc/attempt_construction(obj/item/I, mob/living/user) + if(!I || !user || !user.canUseTopic(src)) + return 0 + if(istype(I, /obj/item/weapon/screwdriver)) + if(construction_state == GEAR_SECURE) + user.visible_message("[user] begins unfastening [src]'s cogwheel...", "You begin unfastening [src]'s cogwheel...") + playsound(src, I.usesound, 50, 1) + if(!do_after(user, 100 / I.toolspeed, target = src)) + return 1 //Returns 1 so as not to have extra interactions with the tools used (i.e. prying open) + user.visible_message("[user] unfastens [src]'s cogwheel!", "[src]'s cogwheel shifts slightly with a pop.") + playsound(src, 'sound/items/Screwdriver2.ogg', 50, 1) + construction_state = GEAR_UNFASTENED + else if(construction_state == GEAR_UNFASTENED) + user.visible_message("[user] begins fastening [src]'s cogwheel...", "You begin fastening [src]'s cogwheel...") + playsound(src, I.usesound, 50, 1) + if(!do_after(user, 75 / I.toolspeed, target = src)) + return 1 + user.visible_message("[user] fastens [src]'s cogwheel!", "[src]'s cogwheel shifts back into place.") + playsound(src, 'sound/items/Screwdriver2.ogg', 50, 1) + construction_state = GEAR_SECURE + else if(construction_state == GEAR_LOOSE) + user << "The gear isn't secure enough to fasten!" + return 1 + else if(istype(I, /obj/item/weapon/wrench)) + if(construction_state == GEAR_SECURE) + user << "[src]'s cogwheel is too tightly secured! Your [I.name] can't get a solid grip!" + return 0 + else if(construction_state == GEAR_UNFASTENED) + user.visible_message("[user] begins loosening [src]'s cogwheel...", "You begin loosening [src]'s cogwheel...") + playsound(src, I.usesound, 50, 1) + if(!do_after(user, 100 / I.toolspeed, target = src)) + return 1 + user.visible_message("[user] loosens [src]'s cogwheel!", "[src]'s cogwheel pops off and dangles loosely.") + playsound(src, 'sound/items/Deconstruct.ogg', 50, 1) + construction_state = GEAR_LOOSE + else if(construction_state == GEAR_LOOSE) + user.visible_message("[user] begins tightening [src]'s cogwheel...", "You begin tightening [src]'s cogwheel into place...") + playsound(src, I.usesound, 50, 1) + if(!do_after(user, 75 / I.toolspeed, target = src)) + return 1 + user.visible_message("[user] tightens [src]'s cogwheel!", "You firmly tighten [src]'s cogwheel into place.") + playsound(src, 'sound/items/Deconstruct.ogg', 50, 1) + construction_state = GEAR_UNFASTENED + return 1 + else if(istype(I, /obj/item/weapon/crowbar)) + if(construction_state == GEAR_SECURE || construction_state == GEAR_UNFASTENED) + user << "[src]'s cogwheel is too tightly secured! Your [I.name] can't reach under it!" + return 1 + else if(construction_state == GEAR_LOOSE) + user.visible_message("[user] begins slowly lifting off [src]'s cogwheel...", "You slowly begin lifting off [src]'s cogwheel...") + playsound(src, I.usesound, 50, 1) + if(!do_after(user, 100 / I.toolspeed, target = src)) + return 1 + user.visible_message("[user] lifts off [src]'s cogwheel, causing it to fall apart!", \ + "You lift off [src]'s cogwheel, causing it to fall apart!") + deconstruct(TRUE) + return 1 + return 0 + +/obj/machinery/door/airlock/clockwork/brass + glass = 1 + opacity = 0 + +#undef GEAR_SECURE +#undef GEAR_UNFASTENED +#undef GEAR_LOOSE + +////////////////////////////////// +/* + Misc Airlocks +*/ + +/obj/machinery/door/airlock/glass_large + name = "large glass airlock" + icon = 'icons/obj/doors/airlocks/glass_large/glass_large.dmi' + overlays_file = 'icons/obj/doors/airlocks/glass_large/overlays.dmi' + opacity = 0 + assemblytype = null + glass = 1 + bound_width = 64 // 2x1 + +/obj/machinery/door/airlock/glass_large/narsie_act() + return diff --git a/code/game/machinery/doors/alarmlock.dm b/code/game/machinery/doors/alarmlock.dm new file mode 100644 index 0000000..fa14b74 --- /dev/null +++ b/code/game/machinery/doors/alarmlock.dm @@ -0,0 +1,49 @@ +/obj/machinery/door/airlock/alarmlock + + name = "glass alarm airlock" + icon = 'icons/obj/doors/airlocks/station2/glass.dmi' + overlays_file = 'icons/obj/doors/airlocks/station2/overlays.dmi' + opacity = 0 + assemblytype = /obj/structure/door_assembly/door_assembly_glass + glass = 1 + + var/datum/radio_frequency/air_connection + var/air_frequency = 1437 + autoclose = 0 + +/obj/machinery/door/airlock/alarmlock/New() + ..() + air_connection = new + +/obj/machinery/door/airlock/alarmlock/Destroy() + if(SSradio) + SSradio.remove_object(src,air_frequency) + air_connection = null + return ..() + +/obj/machinery/door/airlock/alarmlock/initialize() + ..() + SSradio.remove_object(src, air_frequency) + air_connection = SSradio.add_object(src, air_frequency, RADIO_TO_AIRALARM) + open() + +/obj/machinery/door/airlock/alarmlock/receive_signal(datum/signal/signal) + ..() + if(stat & (NOPOWER|BROKEN)) + return + + var/alarm_area = signal.data["zone"] + var/alert = signal.data["alert"] + + var/area/our_area = get_area(src) + if (our_area.master) + our_area = our_area.master + + if(alarm_area == our_area.name) + switch(alert) + if("severe") + autoclose = 1 + close() + if("minor", "clear") + autoclose = 0 + open() \ No newline at end of file diff --git a/code/game/machinery/doors/brigdoors.dm b/code/game/machinery/doors/brigdoors.dm new file mode 100644 index 0000000..29f3bc8 --- /dev/null +++ b/code/game/machinery/doors/brigdoors.dm @@ -0,0 +1,250 @@ +#define CHARS_PER_LINE 5 +#define FONT_SIZE "5pt" +#define FONT_COLOR "#09f" +#define FONT_STYLE "Arial Black" +#define MAX_TIMER 9000 + +#define PRESET_SHORT 1200 +#define PRESET_MEDIUM 3000 +#define PRESET_LONG 6000 + +//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 + +/////////////////////////////////////////////////////////////////////////////////////////////// +// Brig Door control displays. +// Description: This is a controls the timer for the brig doors, displays the timer on itself and +// has a popup window when used, allowing to set the timer. +// Code Notes: Combination of old brigdoor.dm code from rev4407 and the status_display.dm code +// Date: 01/September/2010 +// Programmer: Veryinky +///////////////////////////////////////////////////////////////////////////////////////////////// +/obj/machinery/door_timer + name = "door timer" + icon = 'icons/obj/status_display.dmi' + icon_state = "frame" + desc = "A remote control for a door." + req_access = list(access_security) + anchored = 1 + density = 0 + var/id = null // id of linked machinery/lockers + + var/activation_time = 0 + var/timer_duration = 0 + + var/timing = FALSE // boolean, true/1 timer is on, false/0 means it's not timing + var/list/obj/machinery/targets = list() + var/obj/item/device/radio/Radio //needed to send messages to sec radio + + maptext_height = 26 + maptext_width = 32 + +/obj/machinery/door_timer/New() + ..() + + Radio = new/obj/item/device/radio(src) + Radio.listening = 0 + +/obj/machinery/door_timer/initialize() + for(var/obj/machinery/door/window/brigdoor/M in urange(20, src)) + if (M.id == id) + targets += M + + for(var/obj/machinery/flasher/F in urange(20, src)) + if(F.id == id) + targets += F + + for(var/obj/structure/closet/secure_closet/brig/C in urange(20, src)) + if(C.id == id) + targets += C + + if(!targets.len) + stat |= BROKEN + update_icon() + + +//Main door timer loop, if it's timing and time is >0 reduce time by 1. +// if it's less than 0, open door, reset timer +// update the door_timer window and the icon +/obj/machinery/door_timer/process() + if(stat & (NOPOWER|BROKEN)) + return + + if(timing) + if(world.time - activation_time >= timer_duration) + timer_end() // open doors, reset timer, clear status screen + update_icon() + +// has the door power sitatuation changed, if so update icon. +/obj/machinery/door_timer/power_change() + ..() + update_icon() + + +// open/closedoor checks if door_timer has power, if so it checks if the +// linked door is open/closed (by density) then opens it/closes it. +/obj/machinery/door_timer/proc/timer_start() + if(stat & (NOPOWER|BROKEN)) + return 0 + + activation_time = world.time + timing = TRUE + + for(var/obj/machinery/door/window/brigdoor/door in targets) + if(door.density) + continue + addtimer(door, "close", 0) + + for(var/obj/structure/closet/secure_closet/brig/C in targets) + if(C.broken) + continue + if(C.opened && !C.close()) + continue + C.locked = 1 + C.update_icon() + return 1 + + +/obj/machinery/door_timer/proc/timer_end(forced = FALSE) + + if(stat & (NOPOWER|BROKEN)) + return 0 + + if(!forced) + Radio.set_frequency(SEC_FREQ) + Radio.talk_into(src, "Timer has expired. Releasing prisoner.", SEC_FREQ) + + timing = FALSE + activation_time = null + set_timer(0) + update_icon() + + for(var/obj/machinery/door/window/brigdoor/door in targets) + if(!door.density) + continue + addtimer(door, "open", 0) + + for(var/obj/structure/closet/secure_closet/brig/C in targets) + if(C.broken) + continue + if(C.opened) + continue + C.locked = 0 + C.update_icon() + + return 1 + + +/obj/machinery/door_timer/proc/time_left(seconds = FALSE) + . = max(0,timer_duration - (activation_time ? world.time - activation_time : 0)) + if(seconds) + . /= 10 + +/obj/machinery/door_timer/proc/set_timer(value) + var/new_time = Clamp(value,0,MAX_TIMER) + . = new_time == timer_duration //return 1 on no change + timer_duration = new_time + +/obj/machinery/door_timer/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ + datum/tgui/master_ui = null, datum/ui_state/state = default_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "brig_timer", name, 300, 200, master_ui, state) + ui.open() + +//icon update function +// if NOPOWER, display blank +// if BROKEN, display blue screen of death icon AI uses +// if timing=true, run update display function +/obj/machinery/door_timer/update_icon() + if(stat & (NOPOWER)) + icon_state = "frame" + return + + if(stat & (BROKEN)) + set_picture("ai_bsod") + return + + if(timing) + var/disp1 = id + var/time_left = time_left(seconds = TRUE) + var/disp2 = "[add_zero(num2text((time_left / 60) % 60),2)]~[add_zero(num2text(time_left % 60), 2)]" + if(length(disp2) > CHARS_PER_LINE) + disp2 = "Error" + update_display(disp1, disp2) + else + if(maptext) + maptext = "" + return + + +// Adds an icon in case the screen is broken/off, stolen from status_display.dm +/obj/machinery/door_timer/proc/set_picture(state) + if(maptext) + maptext = "" + cut_overlays() + add_overlay(image('icons/obj/status_display.dmi', icon_state=state)) + + +//Checks to see if there's 1 line or 2, adds text-icons-numbers/letters over display +// Stolen from status_display +/obj/machinery/door_timer/proc/update_display(line1, line2) + var/new_text = {"
    [line1]
    [line2]
    "} + if(maptext != new_text) + maptext = new_text + +/obj/machinery/door_timer/ui_data() + var/list/data = list() + var/time_left = time_left(seconds = TRUE) + data["seconds"] = round(time_left % 60) + data["minutes"] = round((time_left - data["seconds"]) / 60) + data["timing"] = timing + data["flash_charging"] = FALSE + for(var/obj/machinery/flasher/F in targets) + if(F.last_flash && (F.last_flash + 150) > world.time) + data["flash_charging"] = TRUE + break + return data + + +/obj/machinery/door_timer/ui_act(action, params) + if(..()) + return + . = TRUE + switch(action) + if("time") + var/value = text2num(params["adjust"]) + if(value) + . = set_timer(time_left()+value) + if("start") + timer_start() + if("stop") + timer_end(forced = TRUE) + if("flash") + for(var/obj/machinery/flasher/F in targets) + F.flash() + if("preset") + var/preset = params["preset"] + var/preset_time = time_left() + switch(preset) + if("short") + preset_time = PRESET_SHORT + if("medium") + preset_time = PRESET_MEDIUM + if("long") + preset_time = PRESET_LONG + . = set_timer(preset_time) + if(timing) + activation_time = world.time + else + . = FALSE + + +#undef PRESET_SHORT +#undef PRESET_MEDIUM +#undef PRESET_LONG + +#undef MAX_TIMER +#undef FONT_SIZE +#undef FONT_COLOR +#undef FONT_STYLE +#undef CHARS_PER_LINE diff --git a/code/game/machinery/doors/checkForMultipleDoors.dm b/code/game/machinery/doors/checkForMultipleDoors.dm new file mode 100644 index 0000000..3c1364d --- /dev/null +++ b/code/game/machinery/doors/checkForMultipleDoors.dm @@ -0,0 +1,16 @@ +/obj/machinery/door/proc/checkForMultipleDoors() + if(!src.loc) + return 0 + for(var/obj/machinery/door/D in src.loc) + if(!istype(D, /obj/machinery/door/window) && D.density && D != src) + return 0 + return 1 + +/turf/closed/wall/proc/checkForMultipleDoors() + if(!src.loc) + return 0 + for(var/obj/machinery/door/D in locate(src.x,src.y,src.z)) + if(!istype(D, /obj/machinery/door/window) && D.density) + return 0 + //There are no false wall checks because that would be fucking retarded + return 1 \ No newline at end of file diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm new file mode 100644 index 0000000..d0f9d95 --- /dev/null +++ b/code/game/machinery/doors/door.dm @@ -0,0 +1,340 @@ +/obj/machinery/door + name = "door" + desc = "It opens and closes." + icon = 'icons/obj/doors/Doorint.dmi' + icon_state = "door1" + anchored = 1 + opacity = 1 + density = 1 + layer = OPEN_DOOR_LAYER + power_channel = ENVIRON + obj_integrity = 350 + max_integrity = 350 + armor = list(melee = 30, bullet = 30, laser = 20, energy = 20, bomb = 10, bio = 100, rad = 100, fire = 80, acid = 70) + + + var/secondsElectrified = 0 + var/shockedby = list() + var/visible = 1 + var/operating = 0 + var/glass = 0 + var/welded = 0 + var/normalspeed = 1 + var/heat_proof = 0 // For rglass-windowed airlocks and firedoors + var/emergency = 0 // Emergency access override + var/sub_door = 0 // 1 if it's meant to go under another door. + var/closingLayer = CLOSED_DOOR_LAYER + var/autoclose = 0 //does it automatically close after some time + var/safe = 1 //whether the door detects things and mobs in its way and reopen or crushes them. + var/locked = 0 //whether the door is bolted or not. + var/assemblytype //the type of door frame to drop during deconstruction + var/auto_close //TO BE REMOVED, no longer used, it's just preventing a runtime with a map var edit. + var/datum/effect_system/spark_spread/spark_system + var/damage_deflection = 10 + +/obj/machinery/door/New() + ..() + if(density) + layer = CLOSED_DOOR_LAYER //Above most items if closed + else + layer = OPEN_DOOR_LAYER //Under all objects if opened. 2.7 due to tables being at 2.6 + update_freelook_sight() + air_update_turf(1) + airlocks += src + spark_system = new /datum/effect_system/spark_spread + spark_system.set_up(2, 1, src) + + + +/obj/machinery/door/Destroy() + density = 0 + air_update_turf(1) + update_freelook_sight() + airlocks -= src + if(spark_system) + qdel(spark_system) + spark_system = null + return ..() + +//process() + //return + +/obj/machinery/door/Bumped(atom/AM) + if(operating || emagged) + return + + if(isliving(AM)) + var/mob/living/M = AM + if(world.time - M.last_bumped <= 10) + return //Can bump-open one airlock per second. This is to prevent shock spam. + M.last_bumped = world.time + if(M.restrained() && !check_access(null)) + return + bumpopen(M) + return + + if(istype(AM, /obj/mecha)) + var/obj/mecha/mecha = AM + if(density) + if(mecha.occupant) + if(world.time - mecha.occupant.last_bumped <= 10) + return + mecha.occupant.last_bumped = world.time + if(mecha.occupant && (src.allowed(mecha.occupant) || src.check_access_list(mecha.operation_req_access) || emergency == 1)) + open() + else + do_animate("deny") + return + return + +/obj/machinery/door/Move() + var/turf/T = loc + ..() + move_update_air(T) + +/obj/machinery/door/CanPass(atom/movable/mover, turf/target, height=0) + if(istype(mover) && mover.checkpass(PASSGLASS)) + return !opacity + return !density + +/obj/machinery/door/CanAtmosPass() + return !density + +/obj/machinery/door/proc/bumpopen(mob/user) + if(operating) + return + src.add_fingerprint(user) + if(!src.requiresID()) + user = null + + if(density && !emagged) + if(allowed(user) || src.emergency == 1) + open() + else + do_animate("deny") + return + + +/obj/machinery/door/attack_ai(mob/user) + return src.attack_hand(user) + +/obj/machinery/door/attack_hand(mob/user) + return try_to_activate_door(user) + + +/obj/machinery/door/attack_tk(mob/user) + if(requiresID() && !allowed(null)) + return + ..() + +/obj/machinery/door/proc/try_to_activate_door(mob/user) + add_fingerprint(user) + if(operating || emagged) + return + if(!requiresID()) + user = null //so allowed(user) always succeeds + if(allowed(user) || emergency == 1) + if(density) + open() + else + close() + return + if(density) + do_animate("deny") + +/obj/machinery/door/proc/try_to_weld(obj/item/weapon/weldingtool/W, mob/user) + return + +obj/machinery/door/proc/try_to_crowbar(obj/item/I, mob/user) + return + +/obj/machinery/door/attackby(obj/item/I, mob/user, params) + if(user.a_intent != "harm" && (istype(I, /obj/item/weapon/crowbar) || istype(I, /obj/item/weapon/twohanded/fireaxe))) + try_to_crowbar(I, user) + return 1 + else if(istype(I, /obj/item/weapon/weldingtool)) + try_to_weld(I, user) + return 1 + else if(!(I.flags & NOBLUDGEON) && user.a_intent != "harm") + try_to_activate_door(user) + return 1 + else + return ..() + +/obj/machinery/door/run_obj_armor(damage_amount, damage_type, damage_flag = 0, attack_dir) + if(damage_flag == "melee" && damage_amount < damage_deflection) + return 0 + . = ..() + +/obj/machinery/door/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir) + . = ..() + if(. && obj_integrity > 0) + if(damage_amount >= 10 && prob(30)) + spark_system.start() + +/obj/machinery/door/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) + switch(damage_type) + if(BRUTE) + if(glass) + playsound(loc, 'sound/effects/Glasshit.ogg', 90, 1) + else if(damage_amount) + playsound(loc, 'sound/weapons/smash.ogg', 50, 1) + else + playsound(src, 'sound/weapons/tap.ogg', 50, 1) + if(BURN) + playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) + +/obj/machinery/door/emp_act(severity) + if(prob(20/severity) && (istype(src,/obj/machinery/door/airlock) || istype(src,/obj/machinery/door/window)) ) + open() + if(prob(40/severity)) + if(secondsElectrified == 0) + secondsElectrified = -1 + shockedby += "\[[time_stamp()]\]EM Pulse" + addtimer(src, "unelectrify", 300) + ..() + +/obj/machinery/door/proc/unelectrify() + secondsElectrified = 0 + +/obj/machinery/door/update_icon() + if(density) + icon_state = "door1" + else + icon_state = "door0" + +/obj/machinery/door/proc/do_animate(animation) + switch(animation) + if("opening") + if(panel_open) + flick("o_doorc0", src) + else + flick("doorc0", src) + if("closing") + if(panel_open) + flick("o_doorc1", src) + else + flick("doorc1", src) + if("deny") + if(!stat) + flick("door_deny", src) + + +/obj/machinery/door/proc/open() + if(!density) + return 1 + if(operating) + return + if(!ticker || !ticker.mode) + return 0 + operating = 1 + do_animate("opening") + SetOpacity(0) + sleep(5) + density = 0 + sleep(5) + layer = OPEN_DOOR_LAYER + update_icon() + SetOpacity(0) + operating = 0 + air_update_turf(1) + update_freelook_sight() + if(autoclose) + spawn(autoclose) + close() + return 1 + +/obj/machinery/door/proc/close() + if(density) + return 1 + if(operating) + return + if(safe) + for(var/atom/movable/M in get_turf(src)) + if(M.density && M != src) //something is blocking the door + if(autoclose) + addtimer(src, "autoclose", 60) + return + operating = 1 + + do_animate("closing") + layer = closingLayer + sleep(5) + density = 1 + sleep(5) + update_icon() + if(visible && !glass) + SetOpacity(1) + operating = 0 + air_update_turf(1) + update_freelook_sight() + if(safe) + CheckForMobs() + else + crush() + return 1 + +/obj/machinery/door/proc/CheckForMobs() + if(locate(/mob/living) in get_turf(src)) + sleep(1) + open() + +/obj/machinery/door/proc/crush() + for(var/mob/living/L in get_turf(src)) + if(isalien(L)) //For xenos + L.adjustBruteLoss(DOOR_CRUSH_DAMAGE * 1.5) //Xenos go into crit after aproximately the same amount of crushes as humans. + L.emote("roar") + else if(ishuman(L)) //For humans + L.adjustBruteLoss(DOOR_CRUSH_DAMAGE) + L.emote("scream") + L.Weaken(5) + else if(ismonkey(L)) //For monkeys + L.adjustBruteLoss(DOOR_CRUSH_DAMAGE) + L.Weaken(5) + else //for simple_animals & borgs + L.adjustBruteLoss(DOOR_CRUSH_DAMAGE) + var/turf/location = get_turf(src) + //add_blood doesn't work for borgs/xenos, but add_blood_floor does. + L.add_splatter_floor(location) + for(var/obj/mecha/M in get_turf(src)) + M.take_damage(DOOR_CRUSH_DAMAGE) + +/obj/machinery/door/proc/autoclose() + if(!qdeleted(src) && !density && !operating && !locked && !welded && autoclose) + close() + +/obj/machinery/door/proc/requiresID() + return 1 + +/obj/machinery/door/proc/hasPower() + return !(stat & NOPOWER) + +/obj/machinery/door/proc/update_freelook_sight() + if(!glass && cameranet) + cameranet.updateVisibility(src, 0) + +/obj/machinery/door/BlockSuperconductivity() // All non-glass airlocks block heat, this is intended. + if(opacity || heat_proof) + return 1 + return 0 + +/obj/machinery/door/morgue + icon = 'icons/obj/doors/doormorgue.dmi' + +/obj/machinery/door/storage_contents_dump_act(obj/item/weapon/storage/src_object, mob/user) + return 0 + +/obj/machinery/door/proc/lock() + return + +/obj/machinery/door/proc/unlock() + return + +/obj/machinery/door/proc/hostile_lockdown(mob/origin) + if(!stat) //So that only powered doors are closed. + close() //Close ALL the doors! + +/obj/machinery/door/proc/disable_lockdown() + if(!stat) //Opens only powered doors. + open() //Open everything! + diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm new file mode 100644 index 0000000..82b4cfb --- /dev/null +++ b/code/game/machinery/doors/firedoor.dm @@ -0,0 +1,380 @@ +#define CONSTRUCTION_COMPLETE 0 //No construction done - functioning as normal +#define CONSTRUCTION_PANEL_OPEN 1 //Maintenance panel is open, still functioning +#define CONSTRUCTION_WIRES_EXPOSED 2 //Cover plate is removed, wires are available +#define CONSTRUCTION_GUTTED 3 //Wires are removed, circuit ready to remove +#define CONSTRUCTION_NOCIRCUIT 4 //Circuit board removed, can safely weld apart + +/var/const/OPEN = 1 +/var/const/CLOSED = 2 + +/obj/machinery/door/firedoor + name = "firelock" + desc = "Apply crowbar." + icon = 'icons/obj/doors/Doorfireglass.dmi' + icon_state = "door_open" + opacity = 0 + density = 0 + obj_integrity = 300 + max_integrity = 300 + heat_proof = 1 + glass = 1 + var/nextstate = null + sub_door = 1 + closingLayer = CLOSED_FIREDOOR_LAYER + assemblytype = /obj/structure/firelock_frame + armor = list(melee = 30, bullet = 30, laser = 20, energy = 20, bomb = 10, bio = 100, rad = 100, fire = 95, acid = 70) + + +/obj/machinery/door/firedoor/Bumped(atom/AM) + if(panel_open || operating) + return + if(!density) + return ..() + return 0 + + +/obj/machinery/door/firedoor/power_change() + if(powered(power_channel)) + stat &= ~NOPOWER + latetoggle() + else + stat |= NOPOWER + return + + +/obj/machinery/door/firedoor/attackby(obj/item/weapon/C, mob/user, params) + add_fingerprint(user) + if(operating) + return//Already doing something. + + if(istype(C, /obj/item/weapon/wrench) && panel_open) + playsound(get_turf(src), 'sound/items/Ratchet.ogg', 50, 1) + user.visible_message("[user] starts undoing [src]'s bolts...", \ + "You start unfastening [src]'s floor bolts...") + if(!do_after(user, 50/C.toolspeed, target = src)) + return + playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1) + user.visible_message("[user] unfastens [src]'s bolts.", \ + "You undo [src]'s floor bolts.") + deconstruct(TRUE) + return + + if(istype(C, /obj/item/weapon/screwdriver)) + default_deconstruction_screwdriver(user, icon_state, icon_state, C) + return + + return ..() + +/obj/machinery/door/firedoor/try_to_activate_door(mob/user) + return + +/obj/machinery/door/firedoor/try_to_weld(obj/item/weapon/weldingtool/W, mob/user) + if(W.remove_fuel(0, user)) + welded = !welded + user << "You [welded?"welded":"unwelded"] \the [src]" + update_icon() + +/obj/machinery/door/firedoor/try_to_crowbar(obj/item/I, mob/user) + if(welded || operating) + return + if(density) + open() + else + close() + +/obj/machinery/door/firedoor/attack_ai(mob/user) + add_fingerprint(user) + if(welded || operating || stat & NOPOWER) + return + if(density) + open() + else + close() + +/obj/machinery/door/firedoor/attack_alien(mob/user) + add_fingerprint(user) + if(welded) + user << "[src] refuses to budge!" + return + open() + +/obj/machinery/door/firedoor/do_animate(animation) + switch(animation) + if("opening") + flick("door_opening", src) + if("closing") + flick("door_closing", src) + +/obj/machinery/door/firedoor/update_icon() + cut_overlays() + if(density) + icon_state = "door_closed" + if(welded) + add_overlay("welded") + else + icon_state = "door_open" + if(welded) + add_overlay("welded_open") + +/obj/machinery/door/firedoor/open() + . = ..() + latetoggle() + +/obj/machinery/door/firedoor/close() + . = ..() + latetoggle() + +/obj/machinery/door/firedoor/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + var/obj/structure/firelock_frame/F = new assemblytype(get_turf(src)) + if(disassembled) + F.constructionStep = CONSTRUCTION_PANEL_OPEN + else + F.constructionStep = CONSTRUCTION_WIRES_EXPOSED + F.obj_integrity = F.max_integrity * 0.5 + F.update_icon() + qdel(src) + + +/obj/machinery/door/firedoor/proc/latetoggle() + if(operating || stat & NOPOWER || !nextstate) + return + switch(nextstate) + if(OPEN) + nextstate = null + open() + if(CLOSED) + nextstate = null + close() + +/obj/machinery/door/firedoor/border_only + icon = 'icons/obj/doors/edge_Doorfire.dmi' + flags = ON_BORDER + +/obj/machinery/door/firedoor/border_only/CanPass(atom/movable/mover, turf/target, height=0) + if(istype(mover) && mover.checkpass(PASSGLASS)) + return 1 + if(get_dir(loc, target) == dir) //Make sure looking at appropriate border + return !density + else + return 1 + +/obj/machinery/door/firedoor/border_only/CheckExit(atom/movable/mover as mob|obj, turf/target) + if(istype(mover) && mover.checkpass(PASSGLASS)) + return 1 + if(get_dir(loc, target) == dir) + return !density + else + return 1 + +/obj/machinery/door/firedoor/border_only/CanAtmosPass(turf/T) + if(get_dir(loc, T) == dir) + return !density + else + return 1 + +/obj/machinery/door/firedoor/heavy + name = "heavy firelock" + icon = 'icons/obj/doors/Doorfire.dmi' + glass = 0 + assemblytype = /obj/structure/firelock_frame/heavy + obj_integrity = 550 + max_integrity = 550 + + +/obj/item/weapon/electronics/firelock + name = "firelock circuitry" + desc = "A circuit board used in construction of firelocks." + icon_state = "mainboard" + +/obj/structure/firelock_frame + name = "firelock frame" + desc = "A partially completed firelock." + icon = 'icons/obj/doors/Doorfire.dmi' + icon_state = "frame1" + anchored = 0 + density = 1 + var/constructionStep = CONSTRUCTION_NOCIRCUIT + var/reinforced = 0 + +/obj/structure/firelock_frame/examine(mob/user) + ..() + switch(constructionStep) + if(CONSTRUCTION_PANEL_OPEN) + user << "There is a small metal plate covering the wires." + if(CONSTRUCTION_WIRES_EXPOSED) + user << "Wires are trailing from the maintenance panel." + if(CONSTRUCTION_GUTTED) + user << "The circuit board is visible." + if(CONSTRUCTION_NOCIRCUIT) + user << "There are no electronics in the frame." + +/obj/structure/firelock_frame/update_icon() + ..() + icon_state = "frame[constructionStep]" + +/obj/structure/firelock_frame/attackby(obj/item/weapon/C, mob/user) + switch(constructionStep) + if(CONSTRUCTION_PANEL_OPEN) + if(istype(C, /obj/item/weapon/crowbar)) + playsound(get_turf(src), 'sound/items/Crowbar.ogg', 50, 1) + user.visible_message("[user] starts prying something out from [src]...", \ + "You begin prying out the wire cover...") + if(!do_after(user, 50/C.toolspeed, target = src)) + return + if(constructionStep != CONSTRUCTION_PANEL_OPEN) + return + playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1) + user.visible_message("[user] pries out a metal plate from [src], exposing the wires.", \ + "You remove the cover plate from [src], exposing the wires.") + constructionStep = CONSTRUCTION_WIRES_EXPOSED + update_icon() + return + if(istype(C, /obj/item/weapon/wrench)) + if(locate(/obj/machinery/door/firedoor) in get_turf(src)) + user << "There's already a firelock there." + return + playsound(get_turf(src), 'sound/items/Ratchet.ogg', 50, 1) + user.visible_message("[user] starts bolting down [src]...", \ + "You begin bolting [src]...") + if(!do_after(user, 30/C.toolspeed, target = src)) + return + if(locate(/obj/machinery/door/firedoor) in get_turf(src)) + return + user.visible_message("[user] finishes the firelock.", \ + "You finish the firelock.") + playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1) + if(reinforced) + new /obj/machinery/door/firedoor/heavy(get_turf(src)) + else + new /obj/machinery/door/firedoor(get_turf(src)) + qdel(src) + return + if(istype(C, /obj/item/stack/sheet/plasteel)) + var/obj/item/stack/sheet/plasteel/P = C + if(reinforced) + user << "[src] is already reinforced." + return + if(P.get_amount() < 2) + user << "You need more plasteel to reinforce [src]." + return + user.visible_message("[user] begins reinforcing [src]...", \ + "You begin reinforcing [src]...") + playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1) + if(do_after(user, 60, target = src)) + if(constructionStep != CONSTRUCTION_PANEL_OPEN || reinforced || P.get_amount() < 2 || !P) + return + user.visible_message("[user] reinforces [src].", \ + "You reinforce [src].") + playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1) + P.use(2) + reinforced = 1 + return + + if(CONSTRUCTION_WIRES_EXPOSED) + if(istype(C, /obj/item/weapon/wirecutters)) + playsound(get_turf(src), 'sound/items/Wirecutter.ogg', 50, 1) + user.visible_message("[user] starts cutting the wires from [src]...", \ + "You begin removing [src]'s wires...") + if(!do_after(user, 60/C.toolspeed, target = src)) + return + if(constructionStep != CONSTRUCTION_WIRES_EXPOSED) + return + user.visible_message("[user] removes the wires from [src].", \ + "You remove the wiring from [src], exposing the circuit board.") + var/obj/item/stack/cable_coil/B = new(get_turf(src)) + B.amount = 5 + constructionStep = CONSTRUCTION_GUTTED + update_icon() + return + if(istype(C, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/W = C + if(W.remove_fuel(1, user)) + playsound(get_turf(src), 'sound/items/Welder.ogg', 50, 1) + user.visible_message("[user] starts welding a metal plate into [src]...", \ + "You begin welding the cover plate back onto [src]...") + if(!do_after(user, 80/C.toolspeed, target = src)) + return + if(constructionStep != CONSTRUCTION_WIRES_EXPOSED) + return + playsound(get_turf(src), 'sound/items/Welder2.ogg', 50, 1) + user.visible_message("[user] welds the metal plate into [src].", \ + "You weld [src]'s cover plate into place, hiding the wires.") + constructionStep = CONSTRUCTION_PANEL_OPEN + update_icon() + return + if(CONSTRUCTION_GUTTED) + if(istype(C, /obj/item/weapon/crowbar)) + user.visible_message("[user] begins removing the circuit board from [src]...", \ + "You begin prying out the circuit board from [src]...") + playsound(get_turf(src), 'sound/items/Crowbar.ogg', 50, 1) + if(!do_after(user, 50/C.toolspeed, target = src)) + return + if(constructionStep != CONSTRUCTION_GUTTED) + return + user.visible_message("[user] removes [src]'s circuit board.", \ + "You remove the circuit board from [src].") + new /obj/item/weapon/electronics/firelock(get_turf(src)) + playsound(get_turf(src), 'sound/items/Crowbar.ogg', 50, 1) + constructionStep = CONSTRUCTION_NOCIRCUIT + update_icon() + return + if(istype(C, /obj/item/stack/cable_coil)) + var/obj/item/stack/cable_coil/B = C + if(B.get_amount() < 5) + user << "You need more wires to add wiring to [src]." + return + user.visible_message("[user] begins wiring [src]...", \ + "You begin adding wires to [src]...") + playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1) + if(do_after(user, 60, target = src)) + if(constructionStep != CONSTRUCTION_GUTTED || B.get_amount() < 5 || !B) + return + user.visible_message("[user] adds wires to [src].", \ + "You wire [src].") + playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1) + B.use(5) + constructionStep = CONSTRUCTION_WIRES_EXPOSED + update_icon() + return + if(CONSTRUCTION_NOCIRCUIT) + if(istype(C, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/W = C + if(W.remove_fuel(1,user)) + playsound(get_turf(src), 'sound/items/Welder.ogg', 50, 1) + user.visible_message("[user] begins cutting apart [src]'s frame...", \ + "You begin slicing [src] apart...") + if(!do_after(user, 80/C.toolspeed, target = src)) + return + if(constructionStep != CONSTRUCTION_NOCIRCUIT) + return + user.visible_message("[user] cuts apart [src]!", \ + "You cut [src] into metal.") + playsound(get_turf(src), 'sound/items/Welder2.ogg', 50, 1) + var/turf/T = get_turf(src) + new /obj/item/stack/sheet/metal(T, 3) + if(reinforced) + new /obj/item/stack/sheet/plasteel(T, 2) + qdel(src) + return + if(istype(C, /obj/item/weapon/electronics/firelock)) + user.visible_message("[user] starts adding [C] to [src]...", \ + "You begin adding a circuit board to [src]...") + playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1) + if(!do_after(user, 40, target = src)) + return + if(constructionStep != CONSTRUCTION_NOCIRCUIT) + return + user.drop_item() + qdel(C) + user.visible_message("[user] adds a circuit to [src].", \ + "You insert and secure [C].") + playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1) + constructionStep = CONSTRUCTION_GUTTED + update_icon() + return + return ..() + +/obj/structure/firelock_frame/heavy + name = "heavy firelock frame" + reinforced = 1 diff --git a/code/game/machinery/doors/poddoor.dm b/code/game/machinery/doors/poddoor.dm new file mode 100644 index 0000000..f02432b --- /dev/null +++ b/code/game/machinery/doors/poddoor.dm @@ -0,0 +1,66 @@ +/obj/machinery/door/poddoor + name = "blast door" + desc = "A heavy duty blast door that opens mechanically." + icon = 'icons/obj/doors/blastdoor.dmi' + icon_state = "closed" + var/id = 1 + sub_door = 1 + explosion_block = 3 + heat_proof = 1 + safe = 0 + obj_integrity = 600 + max_integrity = 600 + armor = list(melee = 50, bullet = 100, laser = 100, energy = 100, bomb = 50, bio = 100, rad = 100, fire = 100, acid = 70) + resistance_flags = FIRE_PROOF + damage_deflection = 70 + +/obj/machinery/door/poddoor/preopen + icon_state = "open" + density = 0 + opacity = 0 + +/obj/machinery/door/poddoor/ert + desc = "A heavy duty blast door that only opens for dire emergencies." + +//special poddoors that open when emergency shuttle docks at centcom +/obj/machinery/door/poddoor/shuttledock + var/checkdir = 4 //door won't open if turf in this dir is space + +/obj/machinery/door/poddoor/shuttledock/proc/check() + var/turf/T = get_step(src, checkdir) + if(!isspaceturf(T)) + addtimer(src, "open", 0, TRUE) + else + addtimer(src, "close", 0, TRUE) + +/obj/machinery/door/poddoor/Bumped(atom/AM) + if(density) + return 0 + else + return ..() + +//"BLAST" doors are obviously stronger than regular doors when it comes to BLASTS. +/obj/machinery/door/poddoor/ex_act(severity, target) + if(severity == 3) + return + ..() + +/obj/machinery/door/poddoor/do_animate(animation) + switch(animation) + if("opening") + flick("opening", src) + if("closing") + flick("closing", src) + +/obj/machinery/door/poddoor/update_icon() + if(density) + icon_state = "closed" + else + icon_state = "open" + +/obj/machinery/door/poddoor/try_to_activate_door(mob/user) + return + +obj/machinery/door/poddoor/try_to_crowbar(obj/item/I, mob/user) + if(stat & NOPOWER) + open(1) diff --git a/code/game/machinery/doors/shutters.dm b/code/game/machinery/doors/shutters.dm new file mode 100644 index 0000000..4e50963 --- /dev/null +++ b/code/game/machinery/doors/shutters.dm @@ -0,0 +1,29 @@ +/obj/machinery/door/poddoor/shutters + gender = PLURAL + name = "shutters" + desc = "Heavy duty metal shutters that opens mechanically." + icon = 'icons/obj/doors/shutters.dmi' + layer = CLOSED_DOOR_LAYER + damage_deflection = 20 + +/obj/machinery/door/poddoor/shutters/preopen + icon_state = "open" + density = 0 + opacity = 0 + + +//shutters look like ass with things on top of them. + +/obj/machinery/door/poddoor/shutters/New() + ..() + layer = CLOSED_DOOR_LAYER //to handle /obj/machinery/door/New() resetting the layer. + + +/obj/machinery/door/poddoor/shutters/open(ignorepower = 0) + ..() + layer = CLOSED_DOOR_LAYER + + +/obj/machinery/door/poddoor/shutters/close(ignorepower = 0) + ..() + layer = CLOSED_DOOR_LAYER \ No newline at end of file diff --git a/code/game/machinery/doors/unpowered.dm b/code/game/machinery/doors/unpowered.dm new file mode 100644 index 0000000..d61d141 --- /dev/null +++ b/code/game/machinery/doors/unpowered.dm @@ -0,0 +1,25 @@ +/obj/machinery/door/unpowered + +/obj/machinery/door/unpowered/Bumped(atom/AM) + if(src.locked) + return + ..() + return + + +/obj/machinery/door/unpowered/attackby(obj/item/I, mob/user, params) + if(locked) + return + else + return ..() + +/obj/machinery/door/unpowered/emag_act() + return + +/obj/machinery/door/unpowered/shuttle + icon = 'icons/turf/shuttle.dmi' + name = "door" + icon_state = "door1" + opacity = 1 + density = 1 + explosion_block = 1 \ No newline at end of file diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm new file mode 100644 index 0000000..6d7823d --- /dev/null +++ b/code/game/machinery/doors/windowdoor.dm @@ -0,0 +1,410 @@ +/obj/machinery/door/window + name = "interior door" + desc = "A strong door." + icon = 'icons/obj/doors/windoor.dmi' + icon_state = "left" + resistance_flags = ACID_PROOF + var/base_state = "left" + obj_integrity = 150 //If you change this, consider changing ../door/window/brigdoor/ health at the bottom of this .dm file + max_integrity = 150 + integrity_failure = 0 + armor = list(melee = 20, bullet = 50, laser = 50, energy = 50, bomb = 10, bio = 100, rad = 100, fire = 70, acid = 100) + visible = 0 + flags = ON_BORDER + opacity = 0 + var/obj/item/weapon/electronics/airlock/electronics = null + var/reinf = 0 + var/shards = 2 + var/rods = 2 + var/cable = 2 + var/list/debris = list() + +/obj/machinery/door/window/New(loc, set_dir) + ..() + if(set_dir) + setDir(set_dir) + if(src.req_access && src.req_access.len) + src.icon_state = "[src.icon_state]" + src.base_state = src.icon_state + for(var/i in 1 to shards) + debris += new /obj/item/weapon/shard(src) + if(rods) + debris += new /obj/item/stack/rods(src, rods) + if(cable) + debris += new /obj/item/stack/cable_coil(src, cable) + +/obj/machinery/door/window/Destroy() + density = 0 + for(var/I in debris) + qdel(I) + if(obj_integrity == 0) + playsound(src, "shatter", 70, 1) + electronics = null + return ..() + +/obj/machinery/door/window/update_icon() + if(density) + icon_state = base_state + else + icon_state = "[src.base_state]open" + +/obj/machinery/door/window/proc/open_and_close() + open() + if(src.check_access(null)) + sleep(50) + else //secure doors close faster + sleep(20) + close() + +/obj/machinery/door/window/Bumped(atom/movable/AM as mob|obj) + if( operating || !src.density ) + return + if (!( ismob(AM) )) + if(istype(AM, /obj/mecha)) + var/obj/mecha/mecha = AM + if(mecha.occupant && src.allowed(mecha.occupant)) + open_and_close() + else + do_animate("deny") + return + if (!( ticker )) + return + var/mob/M = AM + if(!M.restrained()) + bumpopen(M) + return + +/obj/machinery/door/window/bumpopen(mob/user) + if( operating || !src.density ) + return + src.add_fingerprint(user) + if(!src.requiresID()) + user = null + + if(allowed(user)) + open_and_close() + else + do_animate("deny") + return + +/obj/machinery/door/window/CanPass(atom/movable/mover, turf/target, height=0) + if(istype(mover) && mover.checkpass(PASSGLASS)) + return 1 + if(get_dir(loc, target) == dir) //Make sure looking at appropriate border + return !density + else + return 1 + +/obj/machinery/door/window/CanAtmosPass(turf/T) + if(get_dir(loc, T) == dir) + return !density + else + return 1 + +//used in the AStar algorithm to determinate if the turf the door is on is passable +/obj/machinery/door/window/CanAStarPass(obj/item/weapon/card/id/ID, to_dir) + return !density || (dir != to_dir) || (check_access(ID) && hasPower()) + +/obj/machinery/door/window/CheckExit(atom/movable/mover as mob|obj, turf/target) + if(istype(mover) && mover.checkpass(PASSGLASS)) + return 1 + if(get_dir(loc, target) == dir) + return !density + else + return 1 + +/obj/machinery/door/window/open(forced=0) + if (src.operating == 1) //doors can still open when emag-disabled + return 0 + if(!ticker || !ticker.mode) + return 0 + if(!forced) + if(!hasPower()) + return 0 + if(forced < 2) + if(emagged) + return 0 + if(!src.operating) //in case of emag + src.operating = 1 + do_animate("opening") + playsound(src.loc, 'sound/machines/windowdoor.ogg', 100, 1) + src.icon_state ="[src.base_state]open" + sleep(10) + + src.density = 0 +// src.sd_SetOpacity(0) //TODO: why is this here? Opaque windoors? ~Carn + air_update_turf(1) + update_freelook_sight() + + if(operating == 1) //emag again + src.operating = 0 + return 1 + +/obj/machinery/door/window/close(forced=0) + if (src.operating) + return 0 + if(!forced) + if(!hasPower()) + return 0 + if(forced < 2) + if(emagged) + return 0 + src.operating = 1 + do_animate("closing") + playsound(src.loc, 'sound/machines/windowdoor.ogg', 100, 1) + src.icon_state = src.base_state + + src.density = 1 + air_update_turf(1) + update_freelook_sight() + sleep(10) + + src.operating = 0 + return 1 + +/obj/machinery/door/window/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) + switch(damage_type) + if(BRUTE) + playsound(loc, 'sound/effects/Glasshit.ogg', 90, 1) + if(BURN) + playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) + + +/obj/machinery/door/window/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT) && !disassembled) + for(var/obj/fragment in debris) + fragment.forceMove(get_turf(src)) + transfer_fingerprints_to(fragment) + debris -= fragment + qdel(src) + +/obj/machinery/door/window/narsie_act() + add_atom_colour("#7D1919", FIXED_COLOUR_PRIORITY) + +/obj/machinery/door/window/ratvar_act() + new/obj/machinery/door/window/clockwork(src.loc, dir) + qdel(src) + +/obj/machinery/door/window/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) + if(exposed_temperature > T0C + (reinf ? 1600 : 800)) + take_damage(round(exposed_volume / 200), BURN, 0, 0) + ..() + + +/obj/machinery/door/window/attack_ai(mob/user) + return src.attack_hand(user) + +/obj/machinery/door/window/emag_act(mob/user) + if(!operating && density && !emagged) + operating = 1 + flick("[src.base_state]spark", src) + sleep(6) + operating = 0 + desc += "
    Its access panel is smoking slightly." + open() + emagged = 1 + +/obj/machinery/door/window/attackby(obj/item/weapon/I, mob/living/user, params) + + if(operating) + return + + add_fingerprint(user) + if(!(flags&NODECONSTRUCT)) + if(istype(I, /obj/item/weapon/screwdriver)) + if(density || operating) + user << "You need to open the door to access the maintenance panel!" + return + playsound(src.loc, I.usesound, 50, 1) + panel_open = !panel_open + user << "You [panel_open ? "open":"close"] the maintenance panel of the [src.name]." + return + + if(istype(I, /obj/item/weapon/crowbar)) + if(panel_open && !density && !operating) + playsound(src.loc, I.usesound, 100, 1) + user.visible_message("[user] removes the electronics from the [src.name].", \ + "You start to remove electronics from the [src.name]...") + if(do_after(user,40/I.toolspeed, target = src)) + if(panel_open && !density && !operating && src.loc) + var/obj/structure/windoor_assembly/WA = new /obj/structure/windoor_assembly(src.loc) + switch(base_state) + if("left") + WA.facing = "l" + if("right") + WA.facing = "r" + if("leftsecure") + WA.facing = "l" + WA.secure = 1 + if("rightsecure") + WA.facing = "r" + WA.secure = 1 + WA.anchored = 1 + WA.state= "02" + WA.setDir(src.dir) + WA.ini_dir = src.dir + WA.update_icon() + WA.created_name = src.name + + if(emagged) + user << "You discard the damaged electronics." + qdel(src) + return + + user << "You remove the airlock electronics." + + var/obj/item/weapon/electronics/airlock/ae + if(!electronics) + ae = new/obj/item/weapon/electronics/airlock( src.loc ) + if(req_one_access) + ae.one_access = 1 + ae.accesses = src.req_one_access + else + ae.accesses = src.req_access + else + ae = electronics + electronics = null + ae.loc = src.loc + + qdel(src) + return + return ..() + +/obj/machinery/door/window/try_to_crowbar(obj/item/I, mob/user) + if(!hasPower()) + if(density) + open(2) + else + close(2) + else + user << "The door's motors resist your efforts to force it!" + +/obj/machinery/door/window/do_animate(animation) + switch(animation) + if("opening") + flick("[src.base_state]opening", src) + if("closing") + flick("[src.base_state]closing", src) + if("deny") + flick("[src.base_state]deny", src) + + +/obj/machinery/door/window/brigdoor + name = "secure door" + icon_state = "leftsecure" + base_state = "leftsecure" + var/id = null + obj_integrity = 300 //Stronger doors for prison (regular window door health is 200) + max_integrity = 300 + reinf = 1 + explosion_block = 1 + +/obj/machinery/door/window/clockwork + name = "brass windoor" + desc = "A thin door with translucent brass paneling." + icon_state = "clockwork" + base_state = "clockwork" + shards = 0 + rods = 0 + resistance_flags = FIRE_PROOF | ACID_PROOF + var/made_glow = FALSE + +/obj/machinery/door/window/clockwork/New(loc, set_dir) + ..() + for(var/i in 1 to 2) + debris += new/obj/item/clockwork/alloy_shards/medium/gear_bit/large(src) + change_construction_value(2) + +/obj/machinery/door/window/clockwork/setDir(direct) + if(!made_glow) + var/obj/effect/E = PoolOrNew(/obj/effect/overlay/temp/ratvar/door/window, get_turf(src)) + E.setDir(direct) + made_glow = TRUE + ..() + +/obj/machinery/door/window/clockwork/Destroy() + change_construction_value(-2) + return ..() + +/obj/machinery/door/window/clockwork/ratvar_act() + obj_integrity = max_integrity + +/obj/machinery/door/window/clockwork/hasPower() + return TRUE //yup that's power all right + +/obj/machinery/door/window/clockwork/narsie_act() + take_damage(rand(30, 60), BRUTE) + if(src) + var/previouscolor = color + color = "#960000" + animate(src, color = previouscolor, time = 8) + addtimer(src, "update_atom_colour", 8) + +/obj/machinery/door/window/clockwork/allowed(mob/M) + if(is_servant_of_ratvar(M)) + return 1 + return 0 + +/obj/machinery/door/window/northleft + dir = NORTH + +/obj/machinery/door/window/eastleft + dir = EAST + +/obj/machinery/door/window/westleft + dir = WEST + +/obj/machinery/door/window/southleft + dir = SOUTH + +/obj/machinery/door/window/northright + dir = NORTH + icon_state = "right" + base_state = "right" + +/obj/machinery/door/window/eastright + dir = EAST + icon_state = "right" + base_state = "right" + +/obj/machinery/door/window/westright + dir = WEST + icon_state = "right" + base_state = "right" + +/obj/machinery/door/window/southright + dir = SOUTH + icon_state = "right" + base_state = "right" + +/obj/machinery/door/window/brigdoor/northleft + dir = NORTH + +/obj/machinery/door/window/brigdoor/eastleft + dir = EAST + +/obj/machinery/door/window/brigdoor/westleft + dir = WEST + +/obj/machinery/door/window/brigdoor/southleft + dir = SOUTH + +/obj/machinery/door/window/brigdoor/northright + dir = NORTH + icon_state = "rightsecure" + base_state = "rightsecure" + +/obj/machinery/door/window/brigdoor/eastright + dir = EAST + icon_state = "rightsecure" + base_state = "rightsecure" + +/obj/machinery/door/window/brigdoor/westright + dir = WEST + icon_state = "rightsecure" + base_state = "rightsecure" + +/obj/machinery/door/window/brigdoor/southright + dir = SOUTH + icon_state = "rightsecure" + base_state = "rightsecure" diff --git a/code/game/machinery/doppler_array.dm b/code/game/machinery/doppler_array.dm new file mode 100644 index 0000000..ea23390 --- /dev/null +++ b/code/game/machinery/doppler_array.dm @@ -0,0 +1,111 @@ +var/list/doppler_arrays = list() + +/obj/machinery/doppler_array + name = "tachyon-doppler array" + desc = "A highly precise directional sensor array which measures the release of quants from decaying tachyons. The doppler shifting of the mirror-image formed by these quants can reveal the size, location and temporal affects of energetic disturbances within a large radius ahead of the array.\nAlt-click to rotate it clockwise." + icon = 'icons/obj/machines/research.dmi' + icon_state = "tdoppler" + density = 1 + anchored = 1 + var/integrated = 0 + var/max_dist = 100 + verb_say = "states coldly" + +/obj/machinery/doppler_array/New() + ..() + doppler_arrays += src + +/obj/machinery/doppler_array/Destroy() + doppler_arrays -= src + return ..() + +/obj/machinery/doppler_array/process() + return PROCESS_KILL + +/obj/machinery/doppler_array/attackby(obj/item/O, mob/user, params) + if(istype(O, /obj/item/weapon/wrench)) + if(!anchored && !isinspace()) + anchored = 1 + power_change() + user << "You fasten [src]." + else if(anchored) + anchored = 0 + power_change() + user << "You unfasten [src]." + playsound(loc, 'sound/items/Ratchet.ogg', 50, 1) + else + return ..() + +/obj/machinery/doppler_array/verb/rotate() + set name = "Rotate Tachyon-doppler Dish" + set category = "Object" + set src in oview(1) + + if(!usr || !isturf(usr.loc)) + return + if(usr.stat || usr.restrained() || !usr.canmove) + return + src.setDir(turn(src.dir, 90)) + return + +/obj/machinery/doppler_array/AltClick(mob/living/user) + if(!istype(user) || user.incapacitated()) + user << "You can't do that right now!" + return + if(!in_range(src, user)) + return + else + rotate() + +/obj/machinery/doppler_array/proc/sense_explosion(turf/epicenter,devastation_range,heavy_impact_range,light_impact_range, + took,orig_dev_range,orig_heavy_range,orig_light_range) + if(stat & NOPOWER) + return + var/turf/zone = get_turf(src) + + if(zone.z != epicenter.z) + return + + var/distance = get_dist(epicenter, zone) + var/direct = get_dir(zone, epicenter) + + if(distance > max_dist) + return + if(!(direct & dir) && !integrated) + return + + + var/list/messages = list("Explosive disturbance detected.", \ + "Epicenter at: grid ([epicenter.x],[epicenter.y]). Temporal displacement of tachyons: [took] seconds.", \ + "Factual: Epicenter radius: [devastation_range]. Outer radius: [heavy_impact_range]. Shockwave radius: [light_impact_range].") + + // If the bomb was capped, say it's theoretical size. + if(devastation_range < orig_dev_range || heavy_impact_range < orig_heavy_range || light_impact_range < orig_light_range) + messages += "Theoretical: Epicenter radius: [orig_dev_range]. Outer radius: [orig_heavy_range]. Shockwave radius: [orig_light_range]." + + if(integrated) + var/obj/item/clothing/head/helmet/space/hardsuit/helm = loc + if(!helm || !istype(helm, /obj/item/clothing/head/helmet/space/hardsuit)) + return + helm.display_visor_message("Explosion detected! Epicenter: [devastation_range], Outer: [heavy_impact_range], Shock: [light_impact_range]") + else + for(var/message in messages) + say(message) + +/obj/machinery/doppler_array/power_change() + if(stat & BROKEN) + icon_state = "[initial(icon_state)]-broken" + else + if(powered() && anchored) + icon_state = initial(icon_state) + stat &= ~NOPOWER + else + icon_state = "[initial(icon_state)]-off" + stat |= NOPOWER + +//Portable version, built into EOD equipment. It simply provides an explosion's three damage levels. +/obj/machinery/doppler_array/integrated + name = "integrated tachyon-doppler module" + integrated = 1 + max_dist = 21 //Should detect most explosions in hearing range. + use_power = 0 \ No newline at end of file diff --git a/code/game/machinery/droneDispenser.dm b/code/game/machinery/droneDispenser.dm new file mode 100644 index 0000000..941e509 --- /dev/null +++ b/code/game/machinery/droneDispenser.dm @@ -0,0 +1,329 @@ +#define DRONE_PRODUCTION "production" +#define DRONE_RECHARGING "recharging" +#define DRONE_READY "ready" + +/obj/machinery/droneDispenser //Most customizable machine 2015 + name = "drone shell dispenser" + desc = "A hefty machine that, when supplied with metal and glass, \ + will periodically create a drone shell. \ + Does not need to be manually operated." + + icon = 'icons/obj/machines/droneDispenser.dmi' + icon_state = "on" + anchored = 1 + density = 1 + + obj_integrity = 250 + max_integrity = 250 + integrity_failure = 80 + + // These allow for different icons when creating custom dispensers + var/icon_off = "off" + var/icon_on = "on" + var/icon_recharging = "recharge" + var/icon_creating = "make" + + var/datum/material_container/materials + var/list/using_materials + var/metal_cost = 1000 + var/glass_cost = 1000 + var/power_used = 1000 + + var/mode = DRONE_READY + var/timer + var/cooldownTime = 1800 //3 minutes + var/production_time = 30 + //The item the dispenser will create + var/dispense_type = /obj/item/drone_shell + + // The maximum number of "idle" drone shells it will make before + // ceasing production. Set to 0 for infinite. + var/maximum_idle = 3 + + var/work_sound = 'sound/items/rped.ogg' + var/create_sound = 'sound/items/Deconstruct.ogg' + var/recharge_sound = 'sound/machines/ping.ogg' + + var/begin_create_message = "whirs to life!" + var/end_create_message = "dispenses a drone shell." + var/recharge_message = "pings." + var/recharging_text = "It is whirring and clicking. \ + It seems to be recharging." + + var/break_message = "lets out a tinny alarm before falling dark." + var/break_sound = 'sound/machines/warning-buzzer.ogg' + +/obj/machinery/droneDispenser/New() + ..() + obj_integrity = max_integrity + materials = new(src, list(MAT_METAL, MAT_GLASS), + MINERAL_MATERIAL_AMOUNT*MAX_STACK_SIZE*2) + + using_materials = list(MAT_METAL=metal_cost, MAT_GLASS=glass_cost) + +/obj/machinery/droneDispenser/Destroy() + qdel(materials) + . = ..() + +/obj/machinery/droneDispenser/preloaded/New() + ..() + materials.insert_amount(5000) + +/obj/machinery/droneDispenser/syndrone //Please forgive me + name = "syndrone shell dispenser" + desc = "A suspicious machine that will create Syndicate \ + exterminator drones when supplied with metal and glass. Disgusting." + dispense_type = /obj/item/drone_shell/syndrone + //If we're gonna be a jackass, go the full mile - 10 second recharge timer + cooldownTime = 100 + end_create_message = "dispenses a suspicious drone shell." + +/obj/machinery/droneDispenser/syndrone/New() + ..() + materials.insert_amount(25000) + +/obj/machinery/droneDispenser/syndrone/badass //Please forgive me + name = "badass syndrone shell dispenser" + desc = "A suspicious machine that will create Syndicate \ + exterminator drones when supplied with metal and glass. \ + Disgusting. This one seems ominous." + dispense_type = /obj/item/drone_shell/syndrone/badass + end_create_message = "dispenses a ominous suspicious drone shell." + +// I don't need your forgiveness, this is awesome. +/obj/machinery/droneDispenser/snowflake + name = "snowflake drone shell dispenser" + desc = "A hefty machine that, when supplied with metal and glass, \ + will periodically create a snowflake drone shell. \ + Does not need to be manually operated." + dispense_type = /obj/item/drone_shell/snowflake + end_create_message = "dispenses a snowflake drone shell." + // Those holoprojectors aren't cheap + metal_cost = 2000 + glass_cost = 2000 + power_used = 2000 + +/obj/machinery/droneDispenser/snowflake/preloaded/New() + ..() + materials.insert_amount(10000) + +// An example of a custom drone dispenser. +// This one requires no materials and creates basic hivebots +/obj/machinery/droneDispenser/hivebot + name = "hivebot fabricator" + desc = "A large, bulky machine that whirs with activity, \ + steam hissing from vents in its sides." + icon = 'icons/obj/objects.dmi' + icon_state = "hivebot_fab" + icon_off = "hivebot_fab" + icon_on = "hivebot_fab" + icon_recharging = "hivebot_fab" + icon_creating = "hivebot_fab_on" + metal_cost = 0 + glass_cost = 0 + power_used = 0 + cooldownTime = 10 //Only 1 second - hivebots are extremely weak + dispense_type = /mob/living/simple_animal/hostile/hivebot + begin_create_message = "closes and begins fabricating something within." + end_create_message = "slams open, revealing out a hivebot!" + recharge_sound = null + recharge_message = null + +/obj/machinery/droneDispenser/swarmer + name = "swarmer fabricator" + desc = "An alien machine of unknown origin. \ + It whirs and hums with green-blue light, the air above it shimmering." + icon = 'icons/obj/machines/gateway.dmi' + icon_state = "toffcenter" + icon_off = "toffcenter" + icon_on = "toffcenter" + icon_recharging = "toffcenter" + icon_creating = "offcenter" + metal_cost = 0 + glass_cost = 0 + cooldownTime = 300 //30 seconds + maximum_idle = 0 // Swarmers have no restraint + dispense_type = /obj/item/device/unactivated_swarmer + begin_create_message = "hums softly as an interface appears above it, \ + scrolling by at unreadable speed." + end_create_message = "materializes a strange shell, which drops to the \ + ground." + recharging_text = "Its lights are slowly increasing in brightness." + work_sound = 'sound/effects/EMPulse.ogg' + create_sound = 'sound/effects/phasein.ogg' + break_sound = 'sound/effects/EMPulse.ogg' + break_message = "slowly falls dark, lights stuttering." + +/obj/machinery/droneDispenser/examine(mob/user) + ..() + if((mode == DRONE_RECHARGING) && !stat && recharging_text) + user << "[recharging_text]" + if(metal_cost) + user << "It has [materials.amount(MAT_METAL)] \ + units of metal stored." + if(glass_cost) + user << "It has [materials.amount(MAT_GLASS)] \ + units of glass stored." + +/obj/machinery/droneDispenser/power_change() + ..() + if(powered()) + stat &= ~NOPOWER + else + stat |= NOPOWER + update_icon() + +/obj/machinery/droneDispenser/process() + ..() + if((stat & (NOPOWER|BROKEN)) || !anchored) + return + + if(!materials.has_materials(using_materials)) + return // We require more minerals + + // We are currently in the middle of something + if(timer > world.time) + return + + switch(mode) + if(DRONE_READY) + // If we have X drone shells already on our turf + if(maximum_idle && (count_shells() >= maximum_idle)) + return // then do nothing; check again next tick + if(begin_create_message) + visible_message("\ + [src] [begin_create_message]") + if(work_sound) + playsound(src, work_sound, 50, 1) + mode = DRONE_PRODUCTION + timer = world.time + production_time + update_icon() + + if(DRONE_PRODUCTION) + materials.use_amount(using_materials) + if(power_used) + use_power(power_used) + + var/atom/A = new dispense_type(loc) + A.admin_spawned = admin_spawned + + if(create_sound) + playsound(src, create_sound, 50, 1) + if(end_create_message) + visible_message("[src] \ + [end_create_message]") + + mode = DRONE_RECHARGING + timer = world.time + cooldownTime + update_icon() + + if(DRONE_RECHARGING) + if(recharge_sound) + playsound(src, recharge_sound, 50, 1) + if(recharge_message) + visible_message("\ + [src] [recharge_message]") + + mode = DRONE_READY + update_icon() + +/obj/machinery/droneDispenser/proc/count_shells() + . = 0 + for(var/a in loc) + if(istype(a, dispense_type)) + .++ + +/obj/machinery/droneDispenser/update_icon() + if(stat & (BROKEN|NOPOWER)) + icon_state = icon_off + else if(mode == DRONE_RECHARGING) + icon_state = icon_recharging + else if(mode == DRONE_PRODUCTION) + icon_state = icon_creating + else + icon_state = icon_on + +/obj/machinery/droneDispenser/attackby(obj/item/O, mob/living/user) + if(istype(O, /obj/item/stack)) + if(!O.materials[MAT_METAL] && !O.materials[MAT_GLASS]) + return ..() + if(!metal_cost && !glass_cost) + user << "There isn't a place \ + to insert [O]!" + return + var/obj/item/stack/sheets = O + if(!user.canUnEquip(sheets)) + user << "[O] is stuck to your hand, \ + you can't get it off!" + return + + var/used = materials.insert_stack(sheets, sheets.amount) + + if(used) + user << "You insert [used] \ + sheet[used > 1 ? "s" : ""] into [src]." + else + user << "The [src] isn't accepting the \ + [sheets]." + + else if(istype(O, /obj/item/weapon/crowbar)) + materials.retrieve_all() + playsound(loc, 'sound/items/Crowbar.ogg', 50, 1) + user << "You retrieve the materials from [src]." + + else if(istype(O, /obj/item/weapon/weldingtool)) + if(!(stat & BROKEN)) + user << "[src] doesn't need repairs." + return + + var/obj/item/weapon/weldingtool/WT = O + + if(!WT.isOn()) + return + + if(WT.get_fuel() < 1) + user << "You need more fuel to \ + complete this task!" + return + + playsound(src, 'sound/items/Welder.ogg', 50, 1) + user.visible_message( + "[user] begins patching up \ + [src] with [WT].", + "You begin restoring the \ + damage to [src]...") + + if(!do_after(user, 40/O.toolspeed, target = src)) + return + if(!src || !WT.remove_fuel(1, user)) + return + + user.visible_message( + "[user] fixes [src]!", + "You restore [src] to operation.") + + stat &= ~BROKEN + obj_integrity = max_integrity + update_icon() + else + return ..() + +/obj/machinery/droneDispenser/obj_break(damage_flag) + if(!(flags & NODECONSTRUCT)) + if(!(stat & BROKEN)) + if(break_message) + audible_message("[src] \ + [break_message]") + if(break_sound) + playsound(src, break_sound, 50, 1) + stat |= BROKEN + update_icon() + +/obj/machinery/droneDispenser/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + new /obj/item/stack/sheet/metal(loc, 5) + qdel(src) + +#undef DRONE_PRODUCTION +#undef DRONE_RECHARGING +#undef DRONE_READY diff --git a/code/game/machinery/embedded_controller/access_controller.dm b/code/game/machinery/embedded_controller/access_controller.dm new file mode 100644 index 0000000..df10cd4 --- /dev/null +++ b/code/game/machinery/embedded_controller/access_controller.dm @@ -0,0 +1,311 @@ +#define CLOSING 1 +#define OPENING 2 +#define CYCLE 3 +#define CYCLE_EXTERIOR 4 +#define CYCLE_INTERIOR 5 + +/obj/machinery/doorButtons + power_channel = ENVIRON + anchored = 1 + use_power = 1 + idle_power_usage = 2 + active_power_usage = 4 + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF + var/idSelf + +/obj/machinery/doorButtons/attackby(obj/O, mob/user) + attack_hand(user) + +/obj/machinery/doorButtons/proc/findObjsByTag() + return + +/obj/machinery/doorButtons/initialize() + findObjsByTag() + +/obj/machinery/doorButtons/emag_act(mob/user) + if(!emagged) + emagged = 1 + req_access = list() + req_one_access = list() + playsound(src.loc, "sparks", 100, 1) + user << "You short out the access controller." + +/obj/machinery/doorButtons/proc/removeMe() + + +/obj/machinery/doorButtons/access_button + icon = 'icons/obj/airlock_machines.dmi' + icon_state = "access_button_standby" + name = "access button" + var/idDoor + var/obj/machinery/door/airlock/door + var/obj/machinery/doorButtons/airlock_controller/controller + var/busy + +/obj/machinery/doorButtons/access_button/findObjsByTag() + for(var/obj/machinery/doorButtons/airlock_controller/A in machines) + if(A.idSelf == idSelf) + controller = A + break + for(var/obj/machinery/door/airlock/I in machines) + if(I.id_tag == idDoor) + door = I + break + +/obj/machinery/doorButtons/access_button/attack_hand(mob/user) + if(..()) + return + if(busy) + return + if(!allowed(user)) + user << "Access denied." + return + if(controller && !controller.busy && door) + if(controller.stat & NOPOWER) + return + busy = 1 + update_icon() + if(door.density) + if(!controller.exteriorAirlock || !controller.interiorAirlock) + controller.onlyOpen(door) + else + if(controller.exteriorAirlock.density && controller.interiorAirlock.density) + controller.onlyOpen(door) + else + controller.cycleClose(door) + else + controller.onlyClose(door) + sleep(20) + busy = 0 + update_icon() + +/obj/machinery/doorButtons/access_button/update_icon() + if(stat & NOPOWER) + icon_state = "access_button_off" + else + if(busy) + icon_state = "access_button_cycle" + else + icon_state = "access_button_standby" + +/obj/machinery/doorButtons/access_button/power_change() + ..() + update_icon() + +/obj/machinery/doorButtons/access_button/removeMe(obj/O) + if(O == door) + door = null + + + +/obj/machinery/doorButtons/airlock_controller + icon = 'icons/obj/airlock_machines.dmi' + icon_state = "access_control_standby" + name = "access console" + var/obj/machinery/door/airlock/interiorAirlock + var/obj/machinery/door/airlock/exteriorAirlock + var/idInterior + var/idExterior + var/busy + var/lostPower + +/obj/machinery/doorButtons/airlock_controller/removeMe(obj/O) + if(O == interiorAirlock) + interiorAirlock = null + else if(O == exteriorAirlock) + exteriorAirlock = null + +/obj/machinery/doorButtons/airlock_controller/Destroy() + for(var/obj/machinery/doorButtons/access_button/A in machines) + if(A.controller == src) + A.controller = null + return ..() + +/obj/machinery/doorButtons/airlock_controller/Topic(href, href_list) + if(..()) + return + if(busy) + return + if(!allowed(usr)) + usr << "Access denied." + return + switch(href_list["command"]) + if("close_exterior") + onlyClose(exteriorAirlock) + if("close_interior") + onlyClose(interiorAirlock) + if("cycle_exterior") + cycleClose(exteriorAirlock) + if("cycle_interior") + cycleClose(interiorAirlock) + if("open_exterior") + onlyOpen(exteriorAirlock) + if("open_interior") + onlyOpen(interiorAirlock) + +/obj/machinery/doorButtons/airlock_controller/proc/onlyOpen(obj/machinery/door/airlock/A) + if(A) + busy = CLOSING + update_icon() + openDoor(A) + +/obj/machinery/doorButtons/airlock_controller/proc/onlyClose(obj/machinery/door/airlock/A) + if(A) + busy = CLOSING + closeDoor(A) + +/obj/machinery/doorButtons/airlock_controller/proc/closeDoor(obj/machinery/door/airlock/A) + if(A.density) + goIdle() + return 0 + update_icon() + A.unbolt() + spawn() + if(A && A.close()) + if(stat & NOPOWER || lostPower || !A || qdeleted(A)) + goIdle(1) + return + A.bolt() + if(busy == CLOSING) + goIdle(1) + else + goIdle(1) + return 1 + +/obj/machinery/doorButtons/airlock_controller/proc/cycleClose(obj/machinery/door/airlock/A) + if(!A || !exteriorAirlock || !interiorAirlock) + return + if(exteriorAirlock.density == interiorAirlock.density || !A.density) + return + busy = CYCLE + update_icon() + if(A == interiorAirlock) + if(closeDoor(exteriorAirlock)) + busy = CYCLE_INTERIOR + else + if(closeDoor(interiorAirlock)) + busy = CYCLE_EXTERIOR + +/obj/machinery/doorButtons/airlock_controller/proc/cycleOpen(obj/machinery/door/airlock/A) + if(!A) + goIdle(1) + if(A == exteriorAirlock) + if(interiorAirlock) + if(!interiorAirlock.density || !interiorAirlock.locked) + return + else + if(exteriorAirlock) + if(!exteriorAirlock.density || !exteriorAirlock.locked) + return + if(busy != OPENING) + busy = OPENING + openDoor(A) + +/obj/machinery/doorButtons/airlock_controller/proc/openDoor(obj/machinery/door/airlock/A) + if(exteriorAirlock && interiorAirlock && (!exteriorAirlock.density || !interiorAirlock.density)) + goIdle(1) + return + A.unbolt() + spawn() + if(A && A.open()) + if(stat | (NOPOWER) && !lostPower && A && !qdeleted(A)) + A.bolt() + goIdle(1) + +/obj/machinery/doorButtons/airlock_controller/proc/goIdle(update) + lostPower = 0 + busy = 0 + if(update) + update_icon() + updateUsrDialog() + +/obj/machinery/doorButtons/airlock_controller/process() + if(stat & NOPOWER) + return + if(busy == CYCLE_EXTERIOR) + cycleOpen(exteriorAirlock) + else if(busy == CYCLE_INTERIOR) + cycleOpen(interiorAirlock) + +/obj/machinery/doorButtons/airlock_controller/power_change() + ..() + if(stat & NOPOWER) + lostPower = 1 + else + if(!busy) + lostPower = 0 + update_icon() + +/obj/machinery/doorButtons/airlock_controller/findObjsByTag() + for(var/obj/machinery/door/airlock/A in machines) + if(A.id_tag == idInterior) + interiorAirlock = A + else if(A.id_tag == idExterior) + exteriorAirlock = A + +/obj/machinery/doorButtons/airlock_controller/update_icon() + if(stat & NOPOWER) + icon_state = "access_control_off" + return + if(busy || lostPower) + icon_state = "access_control_process" + else + icon_state = "access_control_standby" + +/obj/machinery/doorButtons/airlock_controller/attack_hand(mob/user) + if(..()) + return + var/datum/browser/popup = new(user, "computer", name) + popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) + popup.set_content(returnText()) + popup.open() + +/obj/machinery/doorButtons/airlock_controller/proc/returnText() + var/output + if(!exteriorAirlock && !interiorAirlock) + return "ERROR ERROR ERROR ERROR" + if(lostPower) + output = "Initializing..." + else + if(!exteriorAirlock || !interiorAirlock) + if(!exteriorAirlock) + if(interiorAirlock.density) + output = "Open Interior Airlock
    " + else + output = "Close Interior Airlock
    " + else + if(exteriorAirlock.density) + output = "Open Exterior Airlock
    " + else + output = "Close Exterior Airlock
    " + else + if(exteriorAirlock.density) + if(interiorAirlock.density) + output = {"Open Exterior Airlock
    + Open Interior Airlock
    "} + else + output = {"Cycle to Exterior Airlock
    + Close Interior Airlock
    "} + else + if(interiorAirlock.density) + output = {"Close Exterior Airlock
    + Cycle to Interior Airlock
    "} + else + output = {"Close Exterior Airlock
    + Close Interior Airlock
    "} + + + output = {"Access Control Console
    + [output]
    "} + if(exteriorAirlock) + output += "Exterior Door: [exteriorAirlock.density ? "closed" : "open"]
    " + if(interiorAirlock) + output += "Interior Door: [interiorAirlock.density ? "closed" : "open"]
    " + + return output + +#undef CLOSING +#undef OPENING +#undef CYCLE +#undef CYCLE_EXTERIOR +#undef CYCLE_INTERIOR \ No newline at end of file diff --git a/code/game/machinery/embedded_controller/airlock_controller.dm b/code/game/machinery/embedded_controller/airlock_controller.dm new file mode 100644 index 0000000..6327a76 --- /dev/null +++ b/code/game/machinery/embedded_controller/airlock_controller.dm @@ -0,0 +1,293 @@ +//States for airlock_control +#define AIRLOCK_STATE_INOPEN -2 +#define AIRLOCK_STATE_PRESSURIZE -1 +#define AIRLOCK_STATE_CLOSED 0 +#define AIRLOCK_STATE_DEPRESSURIZE 1 +#define AIRLOCK_STATE_OUTOPEN 2 + +/datum/computer/file/embedded_program/airlock_controller + var/id_tag + var/exterior_door_tag + var/interior_door_tag + var/airpump_tag + var/sensor_tag + var/sanitize_external + + state = AIRLOCK_STATE_CLOSED + var/target_state = AIRLOCK_STATE_CLOSED + var/sensor_pressure = null + +/datum/computer/file/embedded_program/airlock_controller/receive_signal(datum/signal/signal, receive_method, receive_param) + var/receive_tag = signal.data["tag"] + if(!receive_tag) return + + if(receive_tag==sensor_tag) + if(signal.data["pressure"]) + sensor_pressure = text2num(signal.data["pressure"]) + + else if(receive_tag==exterior_door_tag) + memory["exterior_status"] = signal.data["door_status"] + + else if(receive_tag==interior_door_tag) + memory["interior_status"] = signal.data["door_status"] + + else if(receive_tag==airpump_tag) + if(signal.data["power"]) + memory["pump_status"] = signal.data["direction"] + else + memory["pump_status"] = "off" + + else if(receive_tag==id_tag) + switch(signal.data["command"]) + if("cycle") + if(state < AIRLOCK_STATE_CLOSED) + target_state = AIRLOCK_STATE_OUTOPEN + else + target_state = AIRLOCK_STATE_INOPEN + +/datum/computer/file/embedded_program/airlock_controller/receive_user_command(command) + switch(command) + if("cycle_closed") + target_state = AIRLOCK_STATE_CLOSED + if("cycle_exterior") + target_state = AIRLOCK_STATE_OUTOPEN + if("cycle_interior") + target_state = AIRLOCK_STATE_INOPEN + if("abort") + target_state = AIRLOCK_STATE_CLOSED + +/datum/computer/file/embedded_program/airlock_controller/process() + var/process_again = 1 + while(process_again) + process_again = 0 + switch(state) + if(AIRLOCK_STATE_INOPEN) // state -2 + if(target_state > state) + if(memory["interior_status"] == "closed") + state = AIRLOCK_STATE_CLOSED + process_again = 1 + else + var/datum/signal/signal = new + signal.data["tag"] = interior_door_tag + signal.data["command"] = "secure_close" + post_signal(signal) + else + if(memory["pump_status"] != "off") + var/datum/signal/signal = new + signal.data = list( + "tag" = airpump_tag, + "power" = 0, + "sigtype"="command" + ) + post_signal(signal) + + if(AIRLOCK_STATE_PRESSURIZE) + if(target_state < state) + if(sensor_pressure >= ONE_ATMOSPHERE*0.95) + if(memory["interior_status"] == "open") + state = AIRLOCK_STATE_INOPEN + process_again = 1 + else + var/datum/signal/signal = new + signal.data["tag"] = interior_door_tag + signal.data["command"] = "secure_open" + post_signal(signal) + else + var/datum/signal/signal = new + signal.data = list( + "tag" = airpump_tag, + "sigtype"="command" + ) + if(memory["pump_status"] == "siphon") + signal.data["stabalize"] = 1 + else if(memory["pump_status"] != "release") + signal.data["power"] = 1 + post_signal(signal) + else if(target_state > state) + state = AIRLOCK_STATE_CLOSED + process_again = 1 + + if(AIRLOCK_STATE_CLOSED) + if(target_state > state) + if(memory["interior_status"] == "closed") + state = AIRLOCK_STATE_DEPRESSURIZE + process_again = 1 + else + var/datum/signal/signal = new + signal.data["tag"] = interior_door_tag + signal.data["command"] = "secure_close" + post_signal(signal) + else if(target_state < state) + if(memory["exterior_status"] == "closed") + state = AIRLOCK_STATE_PRESSURIZE + process_again = 1 + else + var/datum/signal/signal = new + signal.data["tag"] = exterior_door_tag + signal.data["command"] = "secure_close" + post_signal(signal) + + else + if(memory["pump_status"] != "off") + var/datum/signal/signal = new + signal.data = list( + "tag" = airpump_tag, + "power" = 0, + "sigtype"="command" + ) + post_signal(signal) + + if(AIRLOCK_STATE_DEPRESSURIZE) + var/target_pressure = ONE_ATMOSPHERE*0.05 + if(sanitize_external) + target_pressure = ONE_ATMOSPHERE*0.01 + + if(sensor_pressure <= target_pressure) + if(target_state > state) + if(memory["exterior_status"] == "open") + state = AIRLOCK_STATE_OUTOPEN + else + var/datum/signal/signal = new + signal.data["tag"] = exterior_door_tag + signal.data["command"] = "secure_open" + post_signal(signal) + else if(target_state < state) + state = AIRLOCK_STATE_CLOSED + process_again = 1 + else if((target_state < state) && !sanitize_external) + state = AIRLOCK_STATE_CLOSED + process_again = 1 + else + var/datum/signal/signal = new + signal.transmission_method = 1 //radio signal + signal.data = list( + "tag" = airpump_tag, + "sigtype"="command" + ) + if(memory["pump_status"] == "release") + signal.data["purge"] = 1 + else if(memory["pump_status"] != "siphon") + signal.data["power"] = 1 + post_signal(signal) + + if(AIRLOCK_STATE_OUTOPEN) //state 2 + if(target_state < state) + if(memory["exterior_status"] == "closed") + if(sanitize_external) + state = AIRLOCK_STATE_DEPRESSURIZE + process_again = 1 + else + state = AIRLOCK_STATE_CLOSED + process_again = 1 + else + var/datum/signal/signal = new + signal.data["tag"] = exterior_door_tag + signal.data["command"] = "secure_close" + post_signal(signal) + else + if(memory["pump_status"] != "off") + var/datum/signal/signal = new + signal.data = list( + "tag" = airpump_tag, + "power" = 0, + "sigtype"="command" + ) + post_signal(signal) + + memory["sensor_pressure"] = sensor_pressure + memory["processing"] = state != target_state + //sensor_pressure = null //not sure if we can comment this out. Uncomment in case of problems -rastaf0 + + return 1 + + +/obj/machinery/embedded_controller/radio/airlock_controller + icon = 'icons/obj/airlock_machines.dmi' + icon_state = "airlock_control_standby" + + name = "airlock console" + density = 0 + + frequency = 1449 + power_channel = ENVIRON + + // Setup parameters only + var/id_tag + var/exterior_door_tag + var/interior_door_tag + var/airpump_tag + var/sensor_tag + var/sanitize_external + +/obj/machinery/embedded_controller/radio/airlock_controller/initialize() + ..() + + var/datum/computer/file/embedded_program/airlock_controller/new_prog = new + + new_prog.id_tag = id_tag + new_prog.exterior_door_tag = exterior_door_tag + new_prog.interior_door_tag = interior_door_tag + new_prog.airpump_tag = airpump_tag + new_prog.sensor_tag = sensor_tag + new_prog.sanitize_external = sanitize_external + + new_prog.master = src + program = new_prog + +/obj/machinery/embedded_controller/radio/airlock_controller/update_icon() + if(on && program) + if(program.memory["processing"]) + icon_state = "airlock_control_process" + else + icon_state = "airlock_control_standby" + else + icon_state = "airlock_control_off" + + +/obj/machinery/embedded_controller/radio/airlock_controller/return_text() + var/state_options = null + + var/state = 0 + var/sensor_pressure = "----" + var/exterior_status = "----" + var/interior_status = "----" + var/pump_status = "----" + var/current_status = "Inactive
     " + if(program) + state = program.state + sensor_pressure = program.memory["sensor_pressure"] ? program.memory["sensor_pressure"] : "----" + exterior_status = program.memory["exterior_status"] ? program.memory["exterior_status"] : "----" + interior_status = program.memory["interior_status"] ? program.memory["interior_status"] : "----" + pump_status = program.memory["pump_status"] ? program.memory["pump_status"] : "----" + + switch(state) + if(AIRLOCK_STATE_INOPEN) + state_options = {"Close Interior Airlock
    +Cycle to Exterior Airlock
    "} + current_status = "Interior Airlock Open
    Chamber Pressurized" + if(AIRLOCK_STATE_PRESSURIZE) + state_options = "Abort Cycling
    " + current_status = "Cycling to Interior Airlock
    Chamber Pressurizing" + if(AIRLOCK_STATE_CLOSED) + state_options = {"Open Interior Airlock
    +Open Exterior Airlock
    "} + if(AIRLOCK_STATE_DEPRESSURIZE) + state_options = "Abort Cycling
    " + current_status = "Cycling to Exterior Airlock
    Chamber Depressurizing" + if(AIRLOCK_STATE_OUTOPEN) + state_options = {"Cycle to Interior Airlock
    +Close Exterior Airlock
    "} + current_status = "Exterior Airlock Open
    Chamber Depressurized" + + var/output = {"

    Airlock Status

    +
    +
    Current Status:
    [current_status]
    +
     
    +
    \> Chamber Pressure:
    [sensor_pressure] kPa
    +
    \> Control Pump:
    [pump_status]
    +
    \> Interior Door:
    [interior_status]
    +
    \> Exterior Door:
    [exterior_status]
    +
    +[state_options]"} + + return output \ No newline at end of file diff --git a/code/game/machinery/embedded_controller/embedded_controller_base.dm b/code/game/machinery/embedded_controller/embedded_controller_base.dm new file mode 100644 index 0000000..ba63aee --- /dev/null +++ b/code/game/machinery/embedded_controller/embedded_controller_base.dm @@ -0,0 +1,95 @@ +/datum/computer/file/embedded_program + var/list/memory = list() + var/state + var/obj/machinery/embedded_controller/master + +/datum/computer/file/embedded_program/proc/post_signal(datum/signal/signal, comm_line) + if(master) + master.post_signal(signal, comm_line) + else + qdel(signal) + +/datum/computer/file/embedded_program/proc/receive_user_command(command) + +/datum/computer/file/embedded_program/proc/receive_signal(datum/signal/signal, receive_method, receive_param) + return null + +/datum/computer/file/embedded_program/process() + return 0 + +/obj/machinery/embedded_controller + var/datum/computer/file/embedded_program/program + + name = "embedded controller" + density = 0 + anchored = 1 + + var/on = 1 + +/obj/machinery/embedded_controller/interact(mob/user) + //user << browse(return_text(), "window=computer") + //onclose(user, "computer") + user.set_machine(src) + var/datum/browser/popup = new(user, "computer", name) // Set up the popup browser window + popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) + popup.set_content(return_text()) + popup.open() + +/obj/machinery/embedded_controller/attack_hand(mob/user) + interact(user) + +/obj/machinery/embedded_controller/update_icon() + +/obj/machinery/embedded_controller/proc/return_text() + +/obj/machinery/embedded_controller/proc/post_signal(datum/signal/signal, comm_line) + return 0 + +/obj/machinery/embedded_controller/receive_signal(datum/signal/signal, receive_method, receive_param) + if(!signal || signal.encryption) return + + if(program) + program.receive_signal(signal, receive_method, receive_param) + //spawn(5) program.process() //no, program.process sends some signals and machines respond and we here again and we lag -rastaf0 + +/obj/machinery/embedded_controller/Topic(href, href_list) + if(..()) + return 0 + + if(program) + program.receive_user_command(href_list["command"]) + addtimer(program, "process", 5) + + usr.set_machine(src) + addtimer(src, "updateDialog", 5) + +/obj/machinery/embedded_controller/process() + if(program) + program.process() + + update_icon() + src.updateDialog() + +/obj/machinery/embedded_controller/radio + var/frequency + var/datum/radio_frequency/radio_connection + +/obj/machinery/embedded_controller/radio/Destroy() + if(SSradio) + SSradio.remove_object(src,frequency) + return ..() + +/obj/machinery/embedded_controller/radio/initialize() + set_frequency(frequency) + +/obj/machinery/embedded_controller/radio/post_signal(datum/signal/signal) + signal.transmission_method = TRANSMISSION_RADIO + if(radio_connection) + return radio_connection.post_signal(src, signal) + else + signal = null + +/obj/machinery/embedded_controller/radio/proc/set_frequency(new_frequency) + SSradio.remove_object(src, frequency) + frequency = new_frequency + radio_connection = SSradio.add_object(src, frequency) diff --git a/code/game/machinery/embedded_controller/simple_vent_controller.dm b/code/game/machinery/embedded_controller/simple_vent_controller.dm new file mode 100644 index 0000000..963d41a --- /dev/null +++ b/code/game/machinery/embedded_controller/simple_vent_controller.dm @@ -0,0 +1,78 @@ +/datum/computer/file/embedded_program/simple_vent_controller + + var/airpump_tag + +/datum/computer/file/embedded_program/simple_vent_controller/receive_user_command(command) + switch(command) + if("vent_inactive") + var/datum/signal/signal = new + signal.data = list( + "tag" = airpump_tag, + "sigtype"="command" + ) + signal.data["power"] = 0 + post_signal(signal) + + if("vent_pump") + var/datum/signal/signal = new + signal.data = list( + "tag" = airpump_tag, + "sigtype"="command" + ) + signal.data["stabalize"] = 1 + signal.data["power"] = 1 + post_signal(signal) + + if("vent_clear") + var/datum/signal/signal = new + signal.transmission_method = 1 //radio signal + signal.data = list( + "tag" = airpump_tag, + "sigtype"="command" + ) + signal.data["purge"] = 1 + signal.data["power"] = 1 + post_signal(signal) + +/datum/computer/file/embedded_program/simple_vent_controller/process() + return 0 + + +/obj/machinery/embedded_controller/radio/simple_vent_controller + icon = 'icons/obj/airlock_machines.dmi' + icon_state = "airlock_control_standby" + + name = "vent controller" + density = 0 + + frequency = 1229 + power_channel = ENVIRON + + // Setup parameters only + var/airpump_tag + +/obj/machinery/embedded_controller/radio/simple_vent_controller/initialize() + ..() + + var/datum/computer/file/embedded_program/simple_vent_controller/new_prog = new + + new_prog.airpump_tag = airpump_tag + new_prog.master = src + program = new_prog + +/obj/machinery/embedded_controller/radio/simple_vent_controller/update_icon() + if(on && program) + icon_state = "airlock_control_standby" + else + icon_state = "airlock_control_off" + + +/obj/machinery/embedded_controller/radio/simple_vent_controller/return_text() + var/state_options = null + state_options = {"Deactivate Vent
    +Activate Vent / Pump
    +Activate Vent / Clear
    "} + var/output = {"Vent Control Console
    +[state_options]
    "} + + return output diff --git a/code/game/machinery/firealarm.dm b/code/game/machinery/firealarm.dm new file mode 100644 index 0000000..df9808d --- /dev/null +++ b/code/game/machinery/firealarm.dm @@ -0,0 +1,292 @@ +/obj/item/weapon/electronics/firealarm + name = "fire alarm electronics" + desc = "A circuit. It has a label on it, it says \"Can handle heat levels up to 40 degrees celsius!\"" + +/obj/item/wallframe/firealarm + name = "fire alarm frame" + desc = "Used for building Fire Alarms" + icon = 'icons/obj/monitors.dmi' + icon_state = "fire_bitem" + result_path = /obj/machinery/firealarm + +/obj/machinery/firealarm + name = "fire alarm" + desc = "\"Pull this in case of emergency\". Thus, keep pulling it forever." + icon = 'icons/obj/monitors.dmi' + icon_state = "fire0" + anchored = 1 + obj_integrity = 250 + max_integrity = 250 + integrity_failure = 100 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 100, fire = 90, acid = 30) + use_power = 1 + idle_power_usage = 2 + active_power_usage = 6 + power_channel = ENVIRON + var/detecting = 1 + var/buildstage = 2 // 2 = complete, 1 = no wires, 0 = circuit gone + + +/obj/machinery/firealarm/New(loc, dir, building) + ..() + if(dir) + src.setDir(dir) + if(building) + buildstage = 0 + panel_open = 1 + pixel_x = (dir & 3)? 0 : (dir == 4 ? -24 : 24) + pixel_y = (dir & 3)? (dir ==1 ? -24 : 24) : 0 + update_icon() + +/obj/machinery/firealarm/power_change() + ..() + update_icon() + +/obj/machinery/firealarm/update_icon() + cut_overlays() + + var/area/A = src.loc + A = A.loc + + if(panel_open) + icon_state = "fire_b[buildstage]" + return + else + icon_state = "fire0" + + if(stat & BROKEN) + icon_state = "firex" + return + + if(stat & NOPOWER) + return + + add_overlay("overlay_[security_level]") + if(detecting) + add_overlay("overlay_[A.fire ? "fire" : "clear"]") + else + add_overlay("overlay_fire") + +/obj/machinery/firealarm/emp_act(severity) + if(prob(50 / severity)) + alarm() + ..() + +/obj/machinery/firealarm/emag_act(mob/user) + if(!emagged) + emagged = 1 + if(user) + user.visible_message("Sparks fly out of the [src]!", + "You emag [src], disabling its thermal sensors.") + playsound(src.loc, 'sound/effects/sparks4.ogg', 50, 1) + +/obj/machinery/firealarm/temperature_expose(datum/gas_mixture/air, temperature, volume) + if(!emagged && detecting && !stat && temperature > T0C + 200) + alarm() + ..() + +/obj/machinery/firealarm/proc/alarm() + if(!is_operational()) + return + var/area/A = get_area(src) + A.firealert(src) + playsound(src.loc, 'sound/ambience/signal.ogg', 75, 0) + +/obj/machinery/firealarm/proc/alarm_in(time) + addtimer(src, "alarm", time, FALSE) + +/obj/machinery/firealarm/proc/reset() + if(!is_operational()) + return + var/area/A = get_area(src) + A.firereset(src) + +/obj/machinery/firealarm/proc/reset_in(time) + addtimer(src, "reset", time, FALSE) + +/obj/machinery/firealarm/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ + datum/tgui/master_ui = null, datum/ui_state/state = default_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "firealarm", name, 300, 150, master_ui, state) + ui.open() + +/obj/machinery/firealarm/ui_data(mob/user) + var/list/data = list() + data["emagged"] = emagged + data["seclevel"] = get_security_level() + + var/area/A = get_area(src) + data["alarm"] = A.fire + + return data + +/obj/machinery/firealarm/ui_act(action, params) + if(..() || buildstage != 2) + return + switch(action) + if("reset") + reset() + . = TRUE + if("alarm") + alarm() + . = TRUE + +/obj/machinery/firealarm/attackby(obj/item/W, mob/user, params) + add_fingerprint(user) + + if(istype(W, /obj/item/weapon/screwdriver) && buildstage == 2) + playsound(src.loc, W.usesound, 50, 1) + panel_open = !panel_open + user << "The wires have been [panel_open ? "exposed" : "unexposed"]." + update_icon() + return + + if(panel_open) + switch(buildstage) + if(2) + if(istype(W, /obj/item/device/multitool)) + detecting = !detecting + if (src.detecting) + user.visible_message("[user] has reconnected [src]'s detecting unit!", "You reconnect [src]'s detecting unit.") + else + user.visible_message("[user] has disconnected [src]'s detecting unit!", "You disconnect [src]'s detecting unit.") + return + + else if (istype(W, /obj/item/weapon/wirecutters)) + buildstage = 1 + playsound(src.loc, W.usesound, 50, 1) + new /obj/item/stack/cable_coil(user.loc, 5) + user << "You cut the wires from \the [src]." + update_icon() + return + if(1) + if(istype(W, /obj/item/stack/cable_coil)) + var/obj/item/stack/cable_coil/coil = W + if(coil.get_amount() < 5) + user << "You need more cable for this!" + else + coil.use(5) + buildstage = 2 + user << "You wire \the [src]." + update_icon() + return + + else if(istype(W, /obj/item/weapon/crowbar)) + playsound(src.loc, W.usesound, 50, 1) + user.visible_message("[user.name] removes the electronics from [src.name].", \ + "You start prying out the circuit...") + if(do_after(user, 20/W.toolspeed, target = src)) + if(buildstage == 1) + if(stat & BROKEN) + user << "You remove the destroyed circuit." + else + user << "You pry out the circuit." + new /obj/item/weapon/electronics/firealarm(user.loc) + buildstage = 0 + update_icon() + return + if(0) + if(istype(W, /obj/item/weapon/electronics/firealarm)) + user << "You insert the circuit." + qdel(W) + buildstage = 1 + update_icon() + return + + else if(istype(W, /obj/item/weapon/wrench)) + user.visible_message("[user] removes the fire alarm assembly from the wall.", \ + "You remove the fire alarm assembly from the wall.") + var/obj/item/wallframe/firealarm/frame = new /obj/item/wallframe/firealarm() + frame.loc = user.loc + playsound(src.loc, W.usesound, 50, 1) + qdel(src) + return + return ..() + + +/obj/machinery/firealarm/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir) + . = ..() + if(.) //damage received + if(obj_integrity > 0 && !(stat & BROKEN) && buildstage != 0) + if(prob(33)) + alarm() + +/obj/machinery/firealarm/obj_break(damage_flag) + if(!(stat & BROKEN) && !(flags & NODECONSTRUCT) && buildstage != 0) //can't break the electronics if there isn't any inside. + stat |= BROKEN + update_icon() + +/obj/machinery/firealarm/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + new /obj/item/stack/sheet/metal(loc, 1) + var/obj/item/I = new /obj/item/weapon/electronics/firealarm(loc) + if(!disassembled) + I.obj_integrity = I.max_integrity * 0.5 + new /obj/item/stack/cable_coil(loc, 3) + qdel(src) + + +/* + * Party button + */ + +/obj/machinery/firealarm/partyalarm + name = "\improper PARTY BUTTON" + desc = "Cuban Pete is in the house!" + +/obj/machinery/firealarm/partyalarm/attack_hand(mob/user) + if((user.stat && !IsAdminGhost(user)) || stat & (NOPOWER|BROKEN)) + return + + if (buildstage != 2) + return + + user.set_machine(src) + var/area/A = src.loc + var/d1 + var/dat + if(ishuman(user) || user.has_unlimited_silicon_privilege) + A = A.loc + + if (A.party) + d1 = text("No Party :(", src) + else + d1 = text("PARTY!!!", src) + dat = text("Party Button []", d1) + + else + A = A.loc + if (A.fire) + d1 = text("[]", src, stars("No Party :(")) + else + d1 = text("[]", src, stars("PARTY!!!")) + dat = text("[] []", stars("Party Button"), d1) + + var/datum/browser/popup = new(user, "firealarm", "Party Alarm") + popup.set_content(dat) + popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) + popup.open() + return + +/obj/machinery/firealarm/partyalarm/reset() + if (stat & (NOPOWER|BROKEN)) + return + var/area/A = src.loc + A = A.loc + if (!( istype(A, /area) )) + return + for(var/area/RA in A.related) + RA.partyreset() + return + +/obj/machinery/firealarm/partyalarm/alarm() + if (stat & (NOPOWER|BROKEN)) + return + var/area/A = src.loc + A = A.loc + if (!( istype(A, /area) )) + return + for(var/area/RA in A.related) + RA.partyalert() + return diff --git a/code/game/machinery/flasher.dm b/code/game/machinery/flasher.dm new file mode 100644 index 0000000..8419d96 --- /dev/null +++ b/code/game/machinery/flasher.dm @@ -0,0 +1,210 @@ +// It is a gizmo that flashes a small area + +/obj/machinery/flasher + name = "mounted flash" + desc = "A wall-mounted flashbulb device." + icon = 'icons/obj/stationobjs.dmi' + icon_state = "mflash1" + var/obj/item/device/assembly/flash/handheld/bulb = null + var/id = null + var/range = 2 //this is roughly the size of brig cell + var/last_flash = 0 //Don't want it getting spammed like regular flashes + var/strength = 5 //How weakened targets are when flashed. + var/base_state = "mflash" + obj_integrity = 250 + max_integrity = 250 + integrity_failure = 100 + anchored = 1 + +/obj/machinery/flasher/portable //Portable version of the flasher. Only flashes when anchored + name = "portable flasher" + desc = "A portable flashing device. Wrench to activate and deactivate. Cannot detect slow movements." + icon_state = "pflash1-p" + strength = 4 + anchored = 0 + base_state = "pflash" + density = 1 + +/obj/machinery/flasher/New(loc, ndir = 0, built = 0) + ..() // ..() is EXTREMELY IMPORTANT, never forget to add it + if(built) + setDir(ndir) + pixel_x = (dir & 3)? 0 : (dir == 4 ? -28 : 28) + pixel_y = (dir & 3)? (dir ==1 ? -28 : 28) : 0 + else + bulb = new /obj/item/device/assembly/flash/handheld(src) + +/obj/machinery/flasher/Destroy() + remove_from_proximity_list(src, range) + if(bulb) + qdel(bulb) + bulb = null + ..() + +/obj/machinery/flasher/Move() + remove_from_proximity_list(src, range) + ..() + +/obj/machinery/flasher/power_change() + if (powered() && anchored && bulb) + stat &= ~NOPOWER + if(bulb.crit_fail) + icon_state = "[base_state]1-p" + else + icon_state = "[base_state]1" + else + stat |= NOPOWER + icon_state = "[base_state]1-p" + +//Don't want to render prison breaks impossible +/obj/machinery/flasher/attackby(obj/item/weapon/W, mob/user, params) + add_fingerprint(user) + if (istype(W, /obj/item/weapon/wirecutters)) + if (bulb) + user.visible_message("[user] begins to disconnect [src]'s flashbulb.", "You begin to disconnect [src]'s flashbulb...") + playsound(src.loc, 'sound/items/Wirecutter.ogg', 100, 1) + if(do_after(user, 30/W.toolspeed, target = src) && bulb) + user.visible_message("[user] has disconnected [src]'s flashbulb!", "You disconnect [src]'s flashbulb.") + bulb.forceMove(loc) + bulb = null + power_change() + + else if (istype(W, /obj/item/device/assembly/flash/handheld)) + if (!bulb) + if(!user.drop_item()) + return + user.visible_message("[user] installs [W] into [src].", "You install [W] into [src].") + W.forceMove(src) + bulb = W + power_change() + else + user << "A flashbulb is already installed in [src]!" + + else if (istype(W, /obj/item/weapon/wrench)) + if(!bulb) + user << "You start unsecuring the flasher frame..." + playsound(loc, 'sound/items/Ratchet.ogg', 50, 1) + if(do_after(user, 40/W.toolspeed, target = src)) + user << "You unsecure the flasher frame." + deconstruct(TRUE) + else + user << "Remove a flashbulb from [src] first!" + else + return ..() + +//Let the AI trigger them directly. +/obj/machinery/flasher/attack_ai() + if (anchored) + return flash() + +/obj/machinery/flasher/run_obj_armor(damage_amount, damage_type, damage_flag = 0, attack_dir) + if(damage_flag == "melee" && damage_amount < 10) //any melee attack below 10 dmg does nothing + return 0 + . = ..() + +/obj/machinery/flasher/proc/flash() + if (!powered() || !bulb) + return + + if (bulb.crit_fail || (last_flash && world.time < src.last_flash + 150)) + return + + if(!bulb.flash_recharge(30)) //Bulb can burn out if it's used too often too fast + power_change() + return + bulb.times_used ++ + + playsound(src.loc, 'sound/weapons/flash.ogg', 100, 1) + flick("[base_state]_flash", src) + last_flash = world.time + use_power(1000) + + for (var/mob/living/L in viewers(src, null)) + if (get_dist(src, L) > range) + continue + + if(L.flash_act(affect_silicon = 1)) + L.Weaken(strength) + if(L.weakeyes) + L.Weaken(strength * 1.5) + L.visible_message("[L] gasps and shields their eyes!") + + return 1 + + +/obj/machinery/flasher/emp_act(severity) + if(!(stat & (BROKEN|NOPOWER))) + if(bulb && prob(75/severity)) + flash() + bulb.burn_out() + power_change() + ..() + +/obj/machinery/flasher/obj_break(damage_flag) + if(!(flags & NODECONSTRUCT)) + if(!(stat & BROKEN)) + stat |= BROKEN + if(bulb) + bulb.burn_out() + power_change() + +/obj/machinery/flasher/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + if(bulb) + bulb.forceMove(loc) + bulb = null + if(disassembled) + var/obj/item/wallframe/flasher/F = new(get_turf(src)) + transfer_fingerprints_to(F) + F.id = id + playsound(loc, 'sound/items/Deconstruct.ogg', 50, 1) + else + new /obj/item/stack/sheet/metal (loc, 2) + qdel(src) + +/obj/machinery/flasher/portable/HasProximity(atom/movable/AM) + if (last_flash && world.time < last_flash + 150) + return + + if(istype(AM, /mob/living/carbon)) + var/mob/living/carbon/M = AM + if (M.m_intent != "walk" && anchored) + flash() + +/obj/machinery/flasher/portable/attackby(obj/item/weapon/W, mob/user, params) + if (istype(W, /obj/item/weapon/wrench)) + playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1) + + if (!anchored && !isinspace()) + user << "[src] is now secured." + add_overlay("[base_state]-s") + anchored = 1 + power_change() + add_to_proximity_list(src, range) + else + user << "[src] can now be moved." + cut_overlays() + anchored = 0 + power_change() + remove_from_proximity_list(src, range) + + else + return ..() + + +/obj/item/wallframe/flasher + name = "mounted flash frame" + desc = "Used for building wall-mounted flashers." + icon = 'icons/obj/stationobjs.dmi' + icon_state = "mflash_frame" + result_path = /obj/machinery/flasher + var/id = null + +/obj/item/wallframe/flasher/examine(mob/user) + ..() + user << "Its channel ID is '[id]'." + +/obj/item/wallframe/flasher/after_attach(var/obj/O) + ..() + var/obj/machinery/flasher/F = O + F.id = id \ No newline at end of file diff --git a/code/game/machinery/gulag_item_reclaimer.dm b/code/game/machinery/gulag_item_reclaimer.dm new file mode 100644 index 0000000..cedab21 --- /dev/null +++ b/code/game/machinery/gulag_item_reclaimer.dm @@ -0,0 +1,111 @@ +/obj/machinery/gulag_item_reclaimer + name = "equipment reclaimer station" + desc = "Used to reclaim your items after you finish your sentence at the labor camp" + icon = 'icons/obj/terminals.dmi' + icon_state = "dorm_taken" + req_access = list(access_security) //reqaccess to access all stored items + density = 0 + anchored = 1 + use_power = 1 + idle_power_usage = 100 + active_power_usage = 2500 + var/list/stored_items = list() + var/obj/item/weapon/card/id/prisoner/inserted_id = null + var/obj/machinery/gulag_teleporter/linked_teleporter = null + +/obj/machinery/gulag_item_reclaimer/Destroy() + for(var/i in contents) + var/obj/item/I = i + I.forceMove(get_turf(src)) + if(linked_teleporter) + linked_teleporter.linked_reclaimer = null + if(inserted_id) + inserted_id.forceMove(get_turf(src)) + inserted_id = null + return ..() + +/obj/machinery/gulag_item_reclaimer/emag_act(mob/user) + if(!emagged) // emagging lets anyone reclaim all the items + req_access = list() + emagged = 1 + +/obj/machinery/gulag_item_reclaimer/attackby(obj/item/I, mob/user) + if(istype(I, /obj/item/weapon/card/id/prisoner)) + if(!inserted_id) + if(!user.drop_item()) + return + I.forceMove(src) + inserted_id = I + user << "You insert [I]." + return + else + user << "There's an ID inserted already." + return ..() + +/obj/machinery/gulag_item_reclaimer/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ + datum/tgui/master_ui = null, datum/ui_state/state = default_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "gulag_item_reclaimer", name, 455, 440, master_ui, state) + ui.open() + +/obj/machinery/gulag_item_reclaimer/ui_data(mob/user) + var/list/data = list() + var/can_reclaim = FALSE + + if(allowed(user)) + can_reclaim = TRUE + + if(inserted_id) + data["id"] = inserted_id + data["id_name"] = inserted_id.registered_name + if(inserted_id.points >= inserted_id.goal) + can_reclaim = TRUE + + var/list/mobs = list() + for(var/i in stored_items) + var/mob/thismob = i + var/list/mob_info = list() + mob_info["name"] = thismob.real_name + mob_info["mob"] = "\ref[thismob]" + mobs += list(mob_info) + + data["mobs"] = mobs + + + data["can_reclaim"] = can_reclaim + + return data + +/obj/machinery/gulag_item_reclaimer/ui_act(action, list/params) + switch(action) + if("handle_id") + if(inserted_id) + if(!usr.get_active_held_item()) + usr.put_in_hands(inserted_id) + inserted_id = null + else + inserted_id.forceMove(get_turf(src)) + inserted_id = null + else + var/obj/item/I = usr.get_active_held_item() + if(istype(I, /obj/item/weapon/card/id/prisoner)) + if(!usr.drop_item()) + return + I.forceMove(src) + inserted_id = I + if("release_items") + var/mob/M = locate(params["mobref"]) + if(M == usr || allowed(usr)) + drop_items(M) + else + usr << "Access denied." + +/obj/machinery/gulag_item_reclaimer/proc/drop_items(mob/user) + if(!stored_items[user]) + return + for(var/i in stored_items[user]) + var/obj/item/W = i + stored_items[user] -= W + W.forceMove(get_turf(src)) + stored_items -= user \ No newline at end of file diff --git a/code/game/machinery/gulag_teleporter.dm b/code/game/machinery/gulag_teleporter.dm new file mode 100644 index 0000000..6a405fc --- /dev/null +++ b/code/game/machinery/gulag_teleporter.dm @@ -0,0 +1,180 @@ +/* +The gulag teleporter teleports a prisoner to the gulag outpost. +It automatically strips the prisoner and equips a prisoner ID, prisoner jumpsuit and oranges sneakers. +You can set the amount of points in the console +The console is located at computer/gulag_teleporter.dm +*/ + +//Gulag teleporter +/obj/machinery/gulag_teleporter + name = "labor camp teleporter" + desc = "A bluespace teleporter used for teleporting prisoners to the labor camp." + icon = 'icons/obj/machines/implantchair.dmi' + icon_state = "implantchair" + state_open = 0 + density = 1 + anchored = 1 + use_power = 1 + idle_power_usage = 200 + active_power_usage = 5000 + var/locked = FALSE + var/jumpsuit_type = /obj/item/clothing/under/rank/prisoner + var/shoes_type = /obj/item/clothing/shoes/sneakers/orange + var/obj/machinery/gulag_item_reclaimer/linked_reclaimer = null + var/list/required_items + +/obj/machinery/gulag_teleporter/New() + ..() + required_items = typecacheof(list( + /obj/item/weapon/implant, + /obj/item/clothing/suit/space/eva/plasmaman, + /obj/item/clothing/under/plasmaman, + /obj/item/clothing/head/helmet/space/plasmaman, + /obj/item/weapon/tank/internals, + /obj/item/clothing/mask/breath, + /obj/item/clothing/mask/gas)) + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/gulag_teleporter(null) + B.apply_default_parts(src) + addtimer(src, "locate_reclaimer", 5) + +/obj/machinery/gulag_teleporter/Destroy() + if(linked_reclaimer) + linked_reclaimer.linked_teleporter = null + return ..() + +/obj/machinery/gulag_teleporter/power_change() + ..() + update_icon() + + +/obj/machinery/gulag_teleporter/interact(mob/user) + if(locked) + user << "[src] is locked." + return + toggle_open() + +/obj/machinery/gulag_teleporter/updateUsrDialog() + return + +/obj/machinery/gulag_teleporter/attackby(obj/item/I, mob/user) + if(!occupant && default_deconstruction_screwdriver(user, "[icon_state]", "[icon_state]",I)) + update_icon() + return + + if(default_deconstruction_crowbar(I)) + return + + if(default_pry_open(I)) + return + + return ..() + +/obj/machinery/gulag_teleporter/update_icon() + icon_state = initial(icon_state) + (state_open ? "_open" : "") + //no power or maintenance + if(stat & (NOPOWER|BROKEN)) + icon_state += "_unpowered" + if((stat & MAINT) || panel_open) + icon_state += "_maintenance" + return + + if((stat & MAINT) || panel_open) + icon_state += "_maintenance" + return + + //running and someone in there + if(occupant) + icon_state += "_occupied" + return + + +/obj/machinery/gulag_teleporter/relaymove(mob/user) + if(user.stat != CONSCIOUS) + return + if(locked) + user << "[src] is locked!" + return + open_machine() + +/obj/machinery/gulag_teleporter/container_resist(mob/living/user) + var/breakout_time = 600 + if(!locked) + open_machine() + return + user.changeNext_move(CLICK_CD_BREAKOUT) + user.last_special = world.time + CLICK_CD_BREAKOUT + user << "You lean on the back of [src] and start pushing the door open... (this will take about a minute.)" + user.visible_message("You hear a metallic creaking from [src]!") + + if(do_after(user,(breakout_time), target = src)) + if(!user || user.stat != CONSCIOUS || user.loc != src || state_open || !locked) + return + + locked = FALSE + visible_message("[user] successfully broke out of [src]!") + user << "You successfully break out of [src]!" + + open_machine() + +/obj/machinery/gulag_teleporter/proc/locate_reclaimer() + linked_reclaimer = locate(/obj/machinery/gulag_item_reclaimer) + if(linked_reclaimer) + linked_reclaimer.linked_teleporter = src + +/obj/machinery/gulag_teleporter/proc/toggle_open() + if(panel_open) + usr << "Close the maintenance panel first." + return + + if(state_open) + close_machine() + return + if(!locked) + open_machine() + +// strips and stores all occupant's items +/obj/machinery/gulag_teleporter/proc/strip_occupant() + if(linked_reclaimer) + linked_reclaimer.stored_items[occupant] = list() + for(var/obj/item/W in occupant) + if(!is_type_in_typecache(W, required_items) && occupant.unEquip(W)) + if(istype(W, /obj/item/weapon/restraints/handcuffs)) + W.forceMove(get_turf(src)) + continue + if(linked_reclaimer) + linked_reclaimer.stored_items[occupant] += W + linked_reclaimer.contents += W + W.forceMove(linked_reclaimer) + else + W.forceMove(src) + +/obj/machinery/gulag_teleporter/proc/handle_prisoner(obj/item/id, datum/data/record/R) + if(!ishuman(occupant)) + return + strip_occupant() + var/mob/living/carbon/human/prisoner = occupant + if(!isplasmaman(prisoner) && jumpsuit_type) + prisoner.equip_to_appropriate_slot(new jumpsuit_type) + if(shoes_type) + prisoner.equip_to_appropriate_slot(new shoes_type) + if(id) + prisoner.equip_to_appropriate_slot(id) + if(R) + R.fields["criminal"] = "Incarcerated" + +/obj/item/weapon/circuitboard/machine/gulag_teleporter + name = "circuit board (labor camp teleporter)" + build_path = /obj/machinery/gulag_teleporter + origin_tech = "programming=3;engineering=4;bluespace=4;materials=4" + req_components = list( + /obj/item/weapon/ore/bluespace_crystal = 2, + /obj/item/weapon/stock_parts/scanning_module, + /obj/item/weapon/stock_parts/manipulator) + def_components = list(/obj/item/weapon/ore/bluespace_crystal = /obj/item/weapon/ore/bluespace_crystal/artificial) + +/* beacon that receives the teleported prisoner */ +/obj/structure/gulag_beacon + name = "labor camp bluespace beacon" + desc = "A recieving beacon for bluespace teleportations." + icon = 'icons/turf/floors.dmi' + icon_state = "light_on-w" diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm new file mode 100644 index 0000000..64162ca --- /dev/null +++ b/code/game/machinery/hologram.dm @@ -0,0 +1,233 @@ +/* Holograms! + * Contains: + * Holopad + * Hologram + * Other stuff + */ + +/* +Revised. Original based on space ninja hologram code. Which is also mine. /N +How it works: +AI clicks on holopad in camera view. View centers on holopad. +AI clicks again on the holopad to display a hologram. Hologram stays as long as AI is looking at the pad and it (the hologram) is in range of the pad. +AI can use the directional keys to move the hologram around, provided the above conditions are met and the AI in question is the holopad's master. +Any number of AIs can use a holopad. /Lo6 +AI may cancel the hologram at any time by clicking on the holopad once more. + +Possible to do for anyone motivated enough: + Give an AI variable for different hologram icons. + Itegrate EMP effect to disable the unit. +*/ + + +/* + * Holopad + */ + +#define HOLOPAD_PASSIVE_POWER_USAGE 1 +#define HOLOGRAM_POWER_USAGE 2 +#define RANGE_BASED 4 +#define AREA_BASED 6 + +var/const/HOLOPAD_MODE = RANGE_BASED + +/obj/machinery/holopad + name = "\improper AI holopad" + desc = "It's a floor-mounted device for projecting holographic images. It is activated remotely." + icon_state = "holopad0" + layer = LOW_OBJ_LAYER + flags = HEAR + languages_spoken = ROBOT | HUMAN + languages_understood = ROBOT | HUMAN + anchored = 1 + use_power = 1 + idle_power_usage = 5 + active_power_usage = 100 + obj_integrity = 300 + max_integrity = 300 + armor = list(melee = 50, bullet = 20, laser = 20, energy = 20, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 0) + var/list/masters = list()//List of AIs that use the holopad + var/last_request = 0 //to prevent request spam. ~Carn + var/holo_range = 5 // Change to change how far the AI can move away from the holopad before deactivating. + var/temp = "" + +/obj/machinery/holopad/New() + ..() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/holopad(null) + B.apply_default_parts(src) + +/obj/machinery/holopad/Destroy() + for (var/mob/living/silicon/ai/master in masters) + clear_holo(master) + return ..() + +/obj/machinery/holo_pad/power_change() + if (powered()) + stat &= ~NOPOWER + else + stat |= ~NOPOWER + +/obj/machinery/holopad/RefreshParts() + var/holograph_range = 4 + for(var/obj/item/weapon/stock_parts/capacitor/B in component_parts) + holograph_range += 1 * B.rating + holo_range = holograph_range + +/obj/machinery/holopad/attackby(obj/item/P, mob/user, params) + if(default_deconstruction_screwdriver(user, "holopad_open", "holopad0", P)) + return + + if(exchange_parts(user, P)) + return + + if(default_pry_open(P)) + return + + if(default_unfasten_wrench(user, P)) + return + + if(default_deconstruction_crowbar(P)) + return + return ..() + +/obj/machinery/holopad/AltClick(mob/living/carbon/human/user) + interact(user) + +/obj/machinery/holopad/interact(mob/living/carbon/human/user) //Carn: Hologram requests. + if(!istype(user)) + return + if(user.stat || stat & (NOPOWER|BROKEN)) + return + user.set_machine(src) + var/dat + if(temp) + dat = temp + else + dat = "request an AI's presence." + + var/datum/browser/popup = new(user, "holopad", name, 300, 130) + popup.set_content(dat) + popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) + popup.open() + +/obj/machinery/holopad/Topic(href, href_list) + if(..()) + return + if (href_list["AIrequest"]) + if(last_request + 200 < world.time) + last_request = world.time + temp = "You requested an AI's presence.
    " + temp += "Main Menu" + var/area/area = get_area(src) + for(var/mob/living/silicon/ai/AI in living_mob_list) + if(!AI.client) + continue + AI << "Your presence is requested at \the [area]." + else + temp = "A request for AI presence was already sent recently.
    " + temp += "Main Menu" + + else if(href_list["mainmenu"]) + temp = "" + + updateDialog() + add_fingerprint(usr) + +/obj/machinery/holopad/attack_ai(mob/living/silicon/ai/user) + if (!istype(user)) + return + /*There are pretty much only three ways to interact here. + I don't need to check for client since they're clicking on an object. + This may change in the future but for now will suffice.*/ + if(user.eyeobj.loc != src.loc)//Set client eye on the object if it's not already. + user.eyeobj.setLoc(get_turf(src)) + else if(!masters[user])//If there is no hologram, possibly make one. + activate_holo(user) + else//If there is a hologram, remove it. + clear_holo(user) + +/obj/machinery/holopad/process() + if(masters.len)//If there is a hologram. + for (var/mob/living/silicon/ai/master in masters) + if(master && !master.stat && master.client && master.eyeobj)//If there is an AI attached, it's not incapacitated, it has a client, and the client eye is centered on the projector. + if(!(stat & NOPOWER))//If the machine has power. + if((HOLOPAD_MODE == RANGE_BASED && (get_dist(master.eyeobj, src) <= holo_range))) + return 1 + + else if (HOLOPAD_MODE == AREA_BASED) + + var/area/holo_area = get_area(src) + var/area/eye_area = get_area(master.eyeobj) + + if(eye_area in holo_area.master.related) + return 1 + + clear_holo(master)//If not, we want to get rid of the hologram. + return 1 + +/obj/machinery/holopad/proc/activate_holo(mob/living/silicon/ai/user) + if(!(stat & NOPOWER) && user.eyeobj.loc == src.loc)//If the projector has power and client eye is on it + if (istype(user.current, /obj/machinery/holopad)) + user << "ERROR: \black Image feed in progress." + return + create_holo(user)//Create one. + src.visible_message("A holographic image of [user] flicks to life right before your eyes!") + else + user << "ERROR: \black Unable to project hologram." + +/*This is the proc for special two-way communication between AI and holopad/people talking near holopad. +For the other part of the code, check silicon say.dm. Particularly robot talk.*/ +/obj/machinery/holopad/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq, list/spans) + if(speaker && masters.len && !radio_freq)//Master is mostly a safety in case lag hits or something. Radio_freq so AIs dont hear holopad stuff through radios. + for(var/mob/living/silicon/ai/master in masters) + if(masters[master] && speaker != master) + master.relay_speech(message, speaker, message_langs, raw_message, radio_freq, spans) + +/obj/machinery/holopad/proc/create_holo(mob/living/silicon/ai/A, turf/T = loc) + var/obj/effect/overlay/holo_pad_hologram/h = new(T)//Spawn a blank effect at the location. + h.icon = A.holo_icon + h.mouse_opacity = 0//So you can't click on it. + h.layer = FLY_LAYER//Above all the other objects/mobs. Or the vast majority of them. + h.anchored = 1//So space wind cannot drag it. + h.name = "[A.name] (Hologram)"//If someone decides to right click. + h.SetLuminosity(2) //hologram lighting + masters[A] = h + SetLuminosity(2) //pad lighting + icon_state = "holopad1" + A.current = src + use_power += HOLOGRAM_POWER_USAGE + return 1 + +/obj/machinery/holopad/proc/clear_holo(mob/living/silicon/ai/user) + if(user.current == src) + user.current = null + qdel(masters[user])//Get rid of user's hologram + masters -= user //Discard AI from the list of those who use holopad + use_power = max(HOLOPAD_PASSIVE_POWER_USAGE, use_power - HOLOGRAM_POWER_USAGE)//Reduce power usage + if (!masters.len)//If no users left + SetLuminosity(0) //pad lighting (hologram lighting will be handled automatically since its owner was deleted) + icon_state = "holopad0" + use_power = HOLOPAD_PASSIVE_POWER_USAGE + return 1 + +/obj/machinery/holopad/proc/move_hologram(mob/living/silicon/ai/user) + if(masters[user]) + step_to(masters[user], user.eyeobj) // So it turns. + var/obj/effect/overlay/holo_pad_hologram/H = masters[user] + H.loc = get_turf(user.eyeobj) + masters[user] = H + return 1 + +/obj/effect/overlay/holo_pad_hologram/Process_Spacemove(movement_dir = 0) + return 1 + +/obj/item/weapon/circuitboard/machine/holopad + name = "circuit board (AI Holopad)" + build_path = /obj/machinery/holopad + origin_tech = "programming=1" + req_components = list(/obj/item/weapon/stock_parts/capacitor = 1) + +#undef RANGE_BASED +#undef AREA_BASED +#undef HOLOPAD_PASSIVE_POWER_USAGE +#undef HOLOGRAM_POWER_USAGE diff --git a/code/game/machinery/igniter.dm b/code/game/machinery/igniter.dm new file mode 100644 index 0000000..14cd64a --- /dev/null +++ b/code/game/machinery/igniter.dm @@ -0,0 +1,127 @@ +/obj/machinery/igniter + name = "igniter" + desc = "It's useful for igniting plasma." + icon = 'icons/obj/stationobjs.dmi' + icon_state = "igniter1" + var/id = null + var/on = 1 + anchored = 1 + use_power = 1 + idle_power_usage = 2 + active_power_usage = 4 + obj_integrity = 300 + max_integrity = 300 + armor = list(melee = 50, bullet = 30, laser = 70, energy = 50, bomb = 20, bio = 0, rad = 0, fire = 100, acid = 70) + resistance_flags = FIRE_PROOF + +/obj/machinery/igniter/attack_ai(mob/user) + return src.attack_hand(user) + +/obj/machinery/igniter/attack_paw(mob/user) + return src.attack_hand(user) + +/obj/machinery/igniter/attack_hand(mob/user) + if(..()) + return + add_fingerprint(user) + + use_power(50) + src.on = !( src.on ) + src.icon_state = text("igniter[]", src.on) + return + +/obj/machinery/igniter/process() //ugh why is this even in process()? + if (src.on && !(stat & NOPOWER) ) + var/turf/location = src.loc + if (isturf(location)) + location.hotspot_expose(1000,500,1) + return 1 + +/obj/machinery/igniter/New() + ..() + icon_state = "igniter[on]" + +/obj/machinery/igniter/power_change() + if(!( stat & NOPOWER) ) + icon_state = "igniter[src.on]" + else + icon_state = "igniter0" + +// Wall mounted remote-control igniter. + +/obj/machinery/sparker + name = "mounted igniter" + desc = "A wall-mounted ignition device." + icon = 'icons/obj/stationobjs.dmi' + icon_state = "migniter" + var/id = null + var/disable = 0 + var/last_spark = 0 + var/base_state = "migniter" + var/datum/effect_system/spark_spread/spark_system + anchored = 1 + +/obj/machinery/sparker/New() + ..() + spark_system = new /datum/effect_system/spark_spread + spark_system.set_up(2, 1, src) + spark_system.attach(src) + +/obj/machinery/sparker/Destroy() + qdel(spark_system) + spark_system = null + return ..() + +/obj/machinery/sparker/power_change() + if ( powered() && disable == 0 ) + stat &= ~NOPOWER + icon_state = "[base_state]" +// src.sd_SetLuminosity(2) + else + stat |= ~NOPOWER + icon_state = "[base_state]-p" +// src.sd_SetLuminosity(0) + +/obj/machinery/sparker/attackby(obj/item/weapon/W, mob/user, params) + if (istype(W, /obj/item/weapon/screwdriver)) + add_fingerprint(user) + src.disable = !src.disable + if (src.disable) + user.visible_message("[user] has disabled \the [src]!", "You disable the connection to \the [src].") + icon_state = "[base_state]-d" + if (!src.disable) + user.visible_message("[user] has reconnected \the [src]!", "You fix the connection to \the [src].") + if(src.powered()) + icon_state = "[base_state]" + else + icon_state = "[base_state]-p" + else + return ..() + +/obj/machinery/sparker/attack_ai() + if (anchored) + return src.ignite() + else + return + +/obj/machinery/sparker/proc/ignite() + if (!(powered())) + return + + if ((src.disable) || (src.last_spark && world.time < src.last_spark + 50)) + return + + + flick("[base_state]-spark", src) + spark_system.start() + last_spark = world.time + use_power(1000) + var/turf/location = src.loc + if (isturf(location)) + location.hotspot_expose(1000,500,1) + return 1 + +/obj/machinery/sparker/emp_act(severity) + if(!(stat & (BROKEN|NOPOWER))) + ignite() + ..() \ No newline at end of file diff --git a/code/game/machinery/iv_drip.dm b/code/game/machinery/iv_drip.dm new file mode 100644 index 0000000..ccc199e --- /dev/null +++ b/code/game/machinery/iv_drip.dm @@ -0,0 +1,204 @@ +/obj/machinery/iv_drip + name = "\improper IV drip" + icon = 'icons/obj/iv_drip.dmi' + icon_state = "iv_drip" + anchored = 0 + density = 1 + var/mob/living/carbon/attached = null + var/mode = 1 // 1 is injecting, 0 is taking blood. + var/obj/item/weapon/reagent_containers/beaker = null + + +/obj/machinery/iv_drip/New() + ..() + update_icon() + +/obj/machinery/iv_drip/update_icon() + if(attached) + if(mode) + icon_state = "injecting" + else + icon_state = "donating" + else + if(mode) + icon_state = "injectidle" + else + icon_state = "donateidle" + + overlays = null + + if(beaker) + if(attached) + add_overlay("beakeractive") + else + add_overlay("beakeridle") + if(beaker.reagents.total_volume) + var/image/filling = image('icons/obj/iv_drip.dmi', src, "reagent") + + var/percent = round((beaker.reagents.total_volume / beaker.volume) * 100) + switch(percent) + if(0 to 9) + filling.icon_state = "reagent0" + if(10 to 24) + filling.icon_state = "reagent10" + if(25 to 49) + filling.icon_state = "reagent25" + if(50 to 74) + filling.icon_state = "reagent50" + if(75 to 79) + filling.icon_state = "reagent75" + if(80 to 90) + filling.icon_state = "reagent80" + if(91 to INFINITY) + filling.icon_state = "reagent100" + + filling.icon += mix_color_from_reagents(beaker.reagents.reagent_list) + add_overlay(filling) + +/obj/machinery/iv_drip/MouseDrop(mob/living/target) + if(!ishuman(usr) || !usr.canUseTopic(src,BE_CLOSE)) + return + + if(attached) + visible_message("[attached] is detached from \the [src].") + attached = null + update_icon() + return + + if(!target.has_dna()) + usr << "The drip beeps: Warning, incompatible creature!" + return + + if(Adjacent(target) && usr.Adjacent(target)) + if(beaker) + usr.visible_message("[usr] attaches \the [src] to \the [target].", "You attach \the [src] to \the [target].") + attached = target + START_PROCESSING(SSmachine, src) + update_icon() + else + usr << "There's nothing attached to the IV drip!" + + +/obj/machinery/iv_drip/attackby(obj/item/weapon/W, mob/user, params) + if (istype(W, /obj/item/weapon/reagent_containers)) + if(!isnull(beaker)) + user << "There is already a reagent container loaded!" + return + if(!user.drop_item()) + return + + W.loc = src + beaker = W + user << "You attach \the [W] to \the [src]." + update_icon() + return + else + return ..() + +/obj/machinery/iv_drip/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + new /obj/item/stack/sheet/metal(loc) + qdel(src) + +/obj/machinery/iv_drip/process() + if(!attached) + return PROCESS_KILL + + if(!(get_dist(src, attached) <= 1 && isturf(attached.loc))) + attached << "The IV drip needle is ripped out of you!" + attached.apply_damage(3, BRUTE, pick("r_arm", "l_arm")) + attached = null + update_icon() + return PROCESS_KILL + + if(beaker) + // Give blood + if(mode) + if(beaker.volume > 0) + var/transfer_amount = 5 + if(istype(beaker, /obj/item/weapon/reagent_containers/blood)) + // speed up transfer on blood packs + transfer_amount = 10 + var/fraction = min(transfer_amount/beaker.volume, 1) //the fraction that is transfered of the total volume + beaker.reagents.reaction(attached, INJECT, fraction,0) //make reagents reacts, but don't spam messages + beaker.reagents.trans_to(attached, transfer_amount) + update_icon() + + // Take blood + else + var/amount = beaker.reagents.maximum_volume - beaker.reagents.total_volume + amount = min(amount, 4) + // If the beaker is full, ping + if(amount == 0) + if(prob(5)) visible_message("\The [src] pings.") + return + + // If the human is losing too much blood, beep. + if(attached.blood_volume < BLOOD_VOLUME_SAFE && prob(5)) + visible_message("\The [src] beeps loudly.") + playsound(loc, 'sound/machines/twobeep.ogg', 50, 1) + attached.transfer_blood_to(beaker, amount) + update_icon() + +/obj/machinery/iv_drip/attack_hand(mob/user) + if(!ishuman(user)) + return + if(attached) + visible_message("[attached] is detached from \the [src]") + attached = null + update_icon() + return + else if(beaker) + eject_beaker(user) + else + toggle_mode() + +/obj/machinery/iv_drip/verb/eject_beaker(mob/user) + set category = "Object" + set name = "Remove IV Container" + set src in view(1) + + if(!isliving(usr)) + usr << "You can't do that!" + return + + if(usr.stat) + return + + if(beaker) + beaker.loc = get_turf(src) + beaker = null + update_icon() + +/obj/machinery/iv_drip/verb/toggle_mode() + set category = "Object" + set name = "Toggle Mode" + set src in view(1) + + if(!isliving(usr)) + usr << "You can't do that!" + return + + if(usr.stat) + return + + mode = !mode + usr << "The IV drip is now [mode ? "injecting" : "taking blood"]." + update_icon() + +/obj/machinery/iv_drip/examine() + set src in view() + ..() + if (!(usr in view(2)) && usr!=loc) return + + usr << "The IV drip is [mode ? "injecting" : "taking blood"]." + + if(beaker) + if(beaker.reagents && beaker.reagents.reagent_list.len) + usr << "Attached is \a [beaker] with [beaker.reagents.total_volume] units of liquid." + else + usr << "Attached is an empty [beaker]." + else + usr << "No chemicals are attached." + + usr << "[attached ? attached : "No one"] is attached." diff --git a/code/game/machinery/jukebox.dm b/code/game/machinery/jukebox.dm new file mode 100644 index 0000000..6af6786 --- /dev/null +++ b/code/game/machinery/jukebox.dm @@ -0,0 +1,214 @@ +//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32 + +datum/track + var/title + var/sound + +datum/track/New(var/title_name, var/audio) + title = title_name + sound = audio + +/obj/machinery/media/jukebox + name = "space jukebox" + icon = 'icons/obj/jukebox.dmi' + icon_state = "jukebox2-nopower" + var/state_base = "jukebox2" + anchored = 1 + density = 1 + power_channel = EQUIP + use_power = 1 + idle_power_usage = 10 + active_power_usage = 100 + + var/playing = 0 + + var/datum/track/current_track + var/list/datum/track/tracks = list( + new/datum/track("Squeeze Gats", 'sound/ambience/title1.ogg'), + new/datum/track("")) + /*new/datum/track("Clouds of Fire", 'sound/music/clouds.s3m'), + new/datum/track("D`Bert", 'sound/music/title2.ogg'), + new/datum/track("D`Fort", 'sound/ambience/song_game.ogg'), + new/datum/track("Floating", 'sound/music/main.ogg'), + new/datum/track("Endless Space", 'sound/music/space.ogg'), + new/datum/track("Part A", 'sound/misc/TestLoop1.ogg'), + new/datum/track("Scratch", 'sound/music/title1.ogg'), + new/datum/track("Trai`Tor", 'sound/music/traitor.ogg'), + )*/ + +/obj/machinery/media/jukebox/New() + ..() + update_icon() + +/obj/machinery/media/jukebox/Destroy() + StopPlaying() + . = ..() + +/obj/machinery/media/jukebox/power_change() + . = ..() + if(!anchored) + stat |= NOPOWER + else + stat &= ~NOPOWER + + if(stat & (NOPOWER|BROKEN) && playing) + StopPlaying() + +/obj/machinery/media/jukebox/update_icon() + overlays.Cut() + if(stat & (NOPOWER|BROKEN) || !anchored) + if(stat & BROKEN) + icon_state = "[state_base]-broken" + else + icon_state = "[state_base]-nopower" + return + icon_state = state_base + if(playing) + if(emagged) + overlays += "[state_base]-emagged" + else + overlays += "[state_base]-running" + +/obj/machinery/media/jukebox/interact(mob/user) + if(!anchored) + usr << "You must secure \the [src] first." + return + + if(stat & (NOPOWER|BROKEN)) + usr << "\The [src] doesn't appear to function." + return + + tg_ui_interact(user) + +/obj/machinery/media/jukebox/ui_status(mob/user, datum/ui_state/state) + if(!anchored || inoperable()) + return UI_CLOSE + return ..() + +/obj/machinery/media/jukebox/tg_ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/ui_state/state = tg_default_state) + ui = tgui_process.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "jukebox", "RetroBox - Space Style", 340, 440, master_ui, state) + ui.open() + +/obj/machinery/media/jukebox/ui_data() + var/list/juke_tracks = new + for(var/datum/track/T in tracks) + juke_tracks.Add(T.title) + + var/list/data = list( + "current_track" = current_track != null ? current_track.title : "No track selected", + "playing" = playing, + "tracks" = juke_tracks + ) + + return data + +/obj/machinery/media/jukebox/ui_act(action, params) + if(..()) + return TRUE + switch(action) + if("change_track") + for(var/datum/track/T in tracks) + if(T.title == params["title"]) + current_track = T + StartPlaying() + break + . = TRUE + if("stop") + StopPlaying() + . = TRUE + if("play") + if(emagged) + emag_play() + else if(!current_track) + usr << "No track selected." + else + StartPlaying() + . = TRUE + +/obj/machinery/media/jukebox/proc/emag_play() + playsound(loc, 'sound/items/AirHorn.ogg', 100, 1) + for(var/mob/living/carbon/M in ohearers(6, src)) + if(istype(M, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = M + if(istype(H.l_ear, /obj/item/clothing/ears/earmuffs) || istype(H.r_ear, /obj/item/clothing/ears/earmuffs)) + continue + M.sleeping = 0 + M.stuttering += 20 + M.ear_deaf += 30 + M.Weaken(3) + if(prob(30)) + M.Stun(10) + M.Paralyse(4) + else + M.make_jittery(500) + spawn(15) + explode() + +/obj/machinery/media/jukebox/attack_ai(mob/user as mob) + return src.attack_hand(user) + +/obj/machinery/media/jukebox/attack_hand(var/mob/user as mob) + interact(user) + +/obj/machinery/media/jukebox/proc/explode() + walk_to(src,0) + src.visible_message("\the [src] blows apart!", 1) + + explosion(src.loc, 0, 0, 1, rand(1,2), 1) + + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread + s.set_up(3, 1, src) + s.start() + + new /obj/effect/decal/cleanable/blood/oil(src.loc) + qdel(src) + +/obj/machinery/media/jukebox/attackby(obj/item/W as obj, mob/user as mob) + src.add_fingerprint(user) + + if(istype(W, /obj/item/weapon/wrench)) + if(playing) + StopPlaying() + user.visible_message("[user] has [anchored ? "un" : ""]secured \the [src].", "You [anchored ? "un" : ""]secure \the [src].") + anchored = !anchored + playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + power_change() + update_icon() + return + return ..() + +/obj/machinery/media/jukebox/emag_act(var/remaining_charges, var/mob/user) + if(!emagged) + emagged = 1 + StopPlaying() + visible_message("\The [src] makes a fizzling sound.") + update_icon() + return 1 + +/obj/machinery/media/jukebox/proc/StopPlaying() + var/area/main_area = get_area(src) + // Always kill the current sound + for(var/mob/living/M in mobs_in_area(main_area)) + M << sound(null, channel = 1) + main_area.music = initial(music)//forced_ambience = null + playing = 0 + update_use_power(1) + update_icon() + + +/obj/machinery/media/jukebox/proc/StartPlaying() + StopPlaying() + if(!current_track) + return + + var/area/main_area = get_area(src) + main_area.music = list(current_track.sound)//force_ambience + /*for(var/mob/living/M in mobs_in_area(main_area)) + if(M.mind) + main_area.play_ambience(M) + */ + playing = 1 + update_use_power(2) + update_icon() diff --git a/code/game/machinery/lightswitch.dm b/code/game/machinery/lightswitch.dm new file mode 100644 index 0000000..6238739 --- /dev/null +++ b/code/game/machinery/lightswitch.dm @@ -0,0 +1,74 @@ +// the light switch +// can have multiple per area +// can also operate on non-loc area through "otherarea" var +/obj/machinery/light_switch + name = "light switch" + icon = 'icons/obj/power.dmi' + icon_state = "light1" + anchored = 1 + var/on = 1 + var/area/area = null + var/otherarea = null + // luminosity = 1 + +/obj/machinery/light_switch/New() + ..() + spawn(5) + src.area = src.loc.loc + + if(otherarea) + src.area = locate(text2path("/area/[otherarea]")) + + if(!name) + name = "light switch ([area.name])" + + src.on = src.area.lightswitch + updateicon() + + + +/obj/machinery/light_switch/proc/updateicon() + if(stat & NOPOWER) + icon_state = "light-p" + else + if(on) + icon_state = "light1" + else + icon_state = "light0" + +/obj/machinery/light_switch/examine(mob/user) + ..() + user << "It is [on? "on" : "off"]." + + +/obj/machinery/light_switch/attack_paw(mob/user) + src.attack_hand(user) + +/obj/machinery/light_switch/attack_hand(mob/user) + + on = !on + + for(var/area/A in area.master.related) + A.lightswitch = on + A.updateicon() + + for(var/obj/machinery/light_switch/L in A) + L.on = on + L.updateicon() + + area.master.power_change() + +/obj/machinery/light_switch/power_change() + + if(!otherarea) + if(powered(LIGHT)) + stat &= ~NOPOWER + else + stat |= NOPOWER + + updateicon() + +/obj/machinery/light_switch/emp_act(severity) + if(!(stat & (BROKEN|NOPOWER))) + power_change() + ..() \ No newline at end of file diff --git a/code/game/machinery/limbgrower.dm b/code/game/machinery/limbgrower.dm new file mode 100644 index 0000000..112b8f0 --- /dev/null +++ b/code/game/machinery/limbgrower.dm @@ -0,0 +1,239 @@ +#define LIMBGROWER_MAIN_MENU 1 +#define LIMBGROWER_CATEGORY_MENU 2 +#define LIMBGROWER_CHEMICAL_MENU 3 +//use these for the menu system + + +/obj/machinery/limbgrower + name = "limb grower" + desc = "It grows new limbs using Synthflesh." + icon = 'icons/obj/machines/limbgrower.dmi' + icon_state = "limbgrower_idleoff" + density = 1 + flags = OPENCONTAINER + + var/operating = 0 + anchored = 1 + use_power = 1 + var/disabled = 0 + idle_power_usage = 10 + active_power_usage = 100 + var/busy = 0 + var/prod_coeff = 1 + + var/datum/design/being_built + var/datum/research/files + var/selected_category + var/screen = 1 + var/emag = FALSE //Gives access to other cool stuff + + var/list/categories = list( + "human", + "lizard", + "plasmaman", + "special" + ) + +/obj/machinery/limbgrower/New() + ..() + create_reagents(0) + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/limbgrower(null) + B.apply_default_parts(src) + files = new /datum/research/limbgrower(src) + +/obj/item/weapon/circuitboard/machine/limbgrower + name = "circuit board (Limb Grower)" + build_path = /obj/machinery/limbgrower + origin_tech = "programming=2;biotech=2" + req_components = list( + /obj/item/weapon/stock_parts/manipulator = 1, + /obj/item/weapon/reagent_containers/glass/beaker = 2, + /obj/item/weapon/stock_parts/console_screen = 1) + +/obj/machinery/limbgrower/interact(mob/user) + if(!is_operational()) + return + + var/dat = main_win(user) + + switch(screen) + if(LIMBGROWER_MAIN_MENU) + dat = main_win(user) + if(LIMBGROWER_CATEGORY_MENU) + dat = category_win(user,selected_category) + if(LIMBGROWER_CHEMICAL_MENU) + dat = chemical_win(user) + + var/datum/browser/popup = new(user, "Limb Grower", name, 400, 500) + popup.set_content(dat) + popup.open() + +/obj/machinery/limbgrower/on_deconstruction() + for(var/obj/item/weapon/reagent_containers/glass/G in component_parts) + reagents.trans_to(G, G.reagents.maximum_volume) + ..() + +/obj/machinery/limbgrower/attackby(obj/item/O, mob/user, params) + if (busy) + user << "The Limb Grower is busy. Please wait for completion of previous operation." + return + + if(default_deconstruction_screwdriver(user, "limbgrower_panelopen", "limbgrower_idleoff", O)) + updateUsrDialog() + return + + if(exchange_parts(user, O)) + return + + if(panel_open && default_deconstruction_crowbar(O)) + return + + if(user.a_intent == "harm") //so we can hit the machine + return ..() + +/obj/machinery/limbgrower/Topic(href, href_list) + if(..()) + return + if (!busy) + if(href_list["menu"]) + screen = text2num(href_list["menu"]) + + if(href_list["category"]) + selected_category = href_list["category"] + + if(href_list["disposeI"]) //Get rid of a reagent incase you add the wrong one by mistake + reagents.del_reagent(href_list["disposeI"]) + + if(href_list["make"]) + + ///////////////// + //href protection + being_built = files.FindDesignByID(href_list["make"]) //check if it's a valid design + if(!being_built) + return + + + var/synth_cost = being_built.reagents["synthflesh"]*prod_coeff + var/power = max(2000, synth_cost/5) + + if(reagents.has_reagent("synthflesh", being_built.reagents["synthflesh"]*prod_coeff)) + busy = 1 + use_power(power) + flick("limbgrower_fill",src) + icon_state = "limbgrower_idleon" + addtimer(src, "build_item",32*prod_coeff) + + else + usr << "The limb grower is busy. Please wait for completion of previous operation." + + updateUsrDialog() + return + +/obj/machinery/limbgrower/proc/build_item() + if(reagents.has_reagent("synthflesh", being_built.reagents["synthflesh"]*prod_coeff)) //sanity check, if this happens we are in big trouble + reagents.remove_reagent("synthflesh",being_built.reagents["synthflesh"]*prod_coeff) + var/buildpath = being_built.build_path + if(ispath(buildpath, /obj/item/bodypart)) //This feels like spatgheti code, but i need to initilise a limb somehow + build_limb(buildpath) + else + //Just build whatever it is + new buildpath(loc) + else + src.visible_message(" Something went very wrong and there isnt enough synthflesh anymore!") + busy = 0 + flick("limbgrower_unfill",src) + icon_state = "limbgrower_idleoff" + updateUsrDialog() + +/obj/machinery/limbgrower/proc/build_limb(buildpath) + //i need to create a body part manually using a set icon (otherwise it doesnt appear) + var/obj/item/bodypart/limb + limb = new buildpath(loc) + if(selected_category=="human" || selected_category=="lizard") // Doing this because plasmamen have their limbs in a different icon file + limb.icon = 'icons/mob/human_parts_greyscale.dmi' + else + limb.icon = 'icons/mob/human_parts.dmi' + // Set this limb up using the specias name and body zone + limb.icon_state = "[selected_category]_[limb.body_zone]_s" + limb.name = "Synthetic [selected_category] [parse_zone(limb.body_zone)]" + limb.desc = "A synthetic [selected_category] limb that will morph on its first use in surgery. This one is for the [parse_zone(limb.body_zone)]" + +/obj/machinery/limbgrower/RefreshParts() + reagents.maximum_volume = 0 + for(var/obj/item/weapon/reagent_containers/glass/G in component_parts) + reagents.maximum_volume += G.volume + G.reagents.trans_to(src, G.reagents.total_volume) + var/T=1.2 + for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts) + T -= M.rating*0.2 + prod_coeff = min(1,max(0,T)) // Coeff going 1 -> 0,8 -> 0,6 -> 0,4 + +/obj/machinery/limbgrower/proc/main_win(mob/user) + var/dat = "

    Limb Grower Menu:


    " + dat += "Chemical Storage" + dat += materials_printout() + dat += "" + + for(var/C in categories) + if(C=="special" && !emag) //Only want to show special when console is emagged + continue + + dat += "" + dat += "" + //one category per line + + dat += "
    [C]
    " + return dat + +/obj/machinery/limbgrower/proc/category_win(mob/user,selected_category) + var/dat = "Return to main menu" + dat += "

    Browsing [selected_category]:


    " + dat += materials_printout() + + for(var/v in files.known_designs) + var/datum/design/D = files.known_designs[v] + if(!(selected_category in D.category)) + continue + if(disabled || !can_build(D)) + dat += "[D.name]" + else + dat += "[D.name]" + dat += "[get_design_cost(D)]
    " + + dat += "
    " + return dat + + +/obj/machinery/limbgrower/proc/chemical_win(mob/user) + var/dat = "Return to main menu" + dat += "

    Browsing Chemical Storage:


    " + dat += materials_printout() + + for(var/datum/reagent/R in reagents.reagent_list) + dat += "[R.name]: [R.volume]" + dat += "Purge
    " + + dat += "
    " + return dat + +/obj/machinery/limbgrower/proc/materials_printout() + var/dat = "Total amount:> [reagents.total_volume] / [reagents.maximum_volume] cm3
    " + return dat + +/obj/machinery/limbgrower/proc/can_build(datum/design/D) + return (reagents.has_reagent("synthflesh", D.reagents["synthflesh"]*prod_coeff)) //Return whether the machine has enough synthflesh to produce the design + +/obj/machinery/limbgrower/proc/get_design_cost(datum/design/D) + var/dat + if(D.reagents["synthflesh"]) + dat += "[D.reagents["synthflesh"] * prod_coeff] Synthetic flesh " + return dat + +/obj/machinery/limbgrower/emag_act(mob/user) + if(emag==TRUE) + return + for(var/datum/design/D in files.possible_designs) + if((D.build_type & LIMBGROWER) && ("special" in D.category)) + files.AddDesign2Known(D) + user << "A warning flashes onto the screen, stating that safety overrides have been deactivated" + emag = TRUE \ No newline at end of file diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm new file mode 100644 index 0000000..aaee37e --- /dev/null +++ b/code/game/machinery/machinery.dm @@ -0,0 +1,466 @@ +/* +Overview: + Used to create objects that need a per step proc call. Default definition of 'New()' + stores a reference to src machine in global 'machines list'. Default definition + of 'Del' removes reference to src machine in global 'machines list'. + +Class Variables: + use_power (num) + current state of auto power use. + Possible Values: + 0 -- no auto power use + 1 -- machine is using power at its idle power level + 2 -- machine is using power at its active power level + + active_power_usage (num) + Value for the amount of power to use when in active power mode + + idle_power_usage (num) + Value for the amount of power to use when in idle power mode + + power_channel (num) + What channel to draw from when drawing power for power mode + Possible Values: + EQUIP:0 -- Equipment Channel + LIGHT:2 -- Lighting Channel + ENVIRON:3 -- Environment Channel + + component_parts (list) + A list of component parts of machine used by frame based machines. + + uid (num) + Unique id of machine across all machines. + + gl_uid (global num) + Next uid value in sequence + + stat (bitflag) + Machine status bit flags. + Possible bit flags: + BROKEN:1 -- Machine is broken + NOPOWER:2 -- No power is being supplied to machine. + POWEROFF:4 -- tbd + MAINT:8 -- machine is currently under going maintenance. + EMPED:16 -- temporary broken by EMP pulse + +Class Procs: + New() 'game/machinery/machine.dm' + + Destroy() 'game/machinery/machine.dm' + + auto_use_power() 'game/machinery/machine.dm' + This proc determines how power mode power is deducted by the machine. + 'auto_use_power()' is called by the 'master_controller' game_controller every + tick. + + Return Value: + return:1 -- if object is powered + return:0 -- if object is not powered. + + Default definition uses 'use_power', 'power_channel', 'active_power_usage', + 'idle_power_usage', 'powered()', and 'use_power()' implement behavior. + + powered(chan = EQUIP) 'modules/power/power.dm' + Checks to see if area that contains the object has power available for power + channel given in 'chan'. + + use_power(amount, chan=EQUIP) 'modules/power/power.dm' + Deducts 'amount' from the power channel 'chan' of the area that contains the object. + + power_change() 'modules/power/power.dm' + Called by the area that contains the object when ever that area under goes a + power state change (area runs out of power, or area channel is turned off). + + RefreshParts() 'game/machinery/machine.dm' + Called to refresh the variables in the machine that are contributed to by parts + contained in the component_parts list. (example: glass and material amounts for + the autolathe) + + Default definition does nothing. + + assign_uid() 'game/machinery/machine.dm' + Called by machine to assign a value to the uid variable. + + process() 'game/machinery/machine.dm' + Called by the 'machinery subsystem' once per machinery tick for each machine that is listed in its 'machines' list. + + process_atmos() + Called by the 'air subsystem' once per atmos tick for each machine that is listed in its 'atmos_machines' list. + + is_operational() + Returns 0 if the machine is unpowered, broken or undergoing maintenance, something else if not + + Compiled by Aygar +*/ + +/obj/machinery + name = "machinery" + icon = 'icons/obj/stationobjs.dmi' + verb_say = "beeps" + verb_yell = "blares" + pressure_resistance = 15 + obj_integrity = 200 + max_integrity = 200 + armor = list(melee = 25, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 70) + + var/stat = 0 + var/emagged = 0 + var/use_power = 1 + //0 = dont run the auto + //1 = run auto, use idle + //2 = run auto, use active + var/idle_power_usage = 0 + var/active_power_usage = 0 + var/power_channel = EQUIP + //EQUIP,ENVIRON or LIGHT + var/list/component_parts = null //list of all the parts used to build it, if made from certain kinds of frames. + var/uid + var/global/gl_uid = 1 + var/panel_open = 0 + var/state_open = 0 + var/critical_machine = FALSE //If this machine is critical to station operation and should have the area be excempted from power failures. + var/mob/living/occupant = null + var/unsecuring_tool = /obj/item/weapon/wrench + var/interact_open = 0 // Can the machine be interacted with when in maint/when the panel is open. + var/interact_offline = 0 // Can the machine be interacted with while de-powered. + var/speed_process = 0 // Process as fast as possible? + +/obj/machinery/New() + ..() + machines += src + if(!speed_process) + START_PROCESSING(SSmachine, src) + else + START_PROCESSING(SSfastprocess, src) + power_change() + +/obj/machinery/Destroy() + machines.Remove(src) + if(!speed_process) + STOP_PROCESSING(SSmachine, src) + else + STOP_PROCESSING(SSfastprocess, src) + dropContents() + return ..() + +/obj/machinery/proc/locate_machinery() + return + +/obj/machinery/process()//If you dont use process or power why are you here + return PROCESS_KILL + +/obj/machinery/proc/process_atmos()//If you dont use process why are you here + return PROCESS_KILL + +/obj/machinery/emp_act(severity) + if(use_power && !stat) + use_power(7500/severity) + PoolOrNew(/obj/effect/overlay/temp/emp, loc) + ..() + +/obj/machinery/proc/open_machine(drop = 1) + state_open = 1 + density = 0 + if(drop) + dropContents() + update_icon() + updateUsrDialog() + +/obj/machinery/proc/dropContents() + var/turf/T = get_turf(src) + for(var/mob/living/L in src) + L.forceMove(T) + L.update_canmove() //so the mob falls if he became unconscious inside the machine. + . += L + + for(var/atom/movable/A in contents) + A.forceMove(T) + occupant = null + +/obj/machinery/proc/close_machine(mob/living/target = null) + state_open = 0 + density = 1 + if(!target) + for(var/mob/living/carbon/C in loc) + if(C.buckled || C.has_buckled_mobs()) + continue + else + target = C + if(target && !target.buckled && !target.has_buckled_mobs()) + occupant = target + target.forceMove(src) + updateUsrDialog() + update_icon() + +/obj/machinery/proc/auto_use_power() + if(!powered(power_channel)) + return 0 + if(use_power == 1) + use_power(idle_power_usage,power_channel) + else if(use_power >= 2) + use_power(active_power_usage,power_channel) + return 1 + +/obj/machinery/proc/is_operational() + return !(stat & (NOPOWER|BROKEN|MAINT)) + +/obj/machinery/proc/is_interactable() + if((stat & (NOPOWER|BROKEN)) && !interact_offline) + return FALSE + if(panel_open && !interact_open) + return FALSE + return TRUE + + +//////////////////////////////////////////////////////////////////////////////////////////// + +/obj/machinery/interact(mob/user) + add_fingerprint(user) + ui_interact(user) + +/obj/machinery/ui_status(mob/user) + if(is_interactable()) + return ..() + return UI_CLOSE + +/obj/machinery/ui_act(action, params) + add_fingerprint(usr) + return ..() + +/obj/machinery/Topic(href, href_list) + ..() + if(!is_interactable()) + return 1 + if(!usr.canUseTopic(src)) + return 1 + add_fingerprint(usr) + return 0 + + +//////////////////////////////////////////////////////////////////////////////////////////// + + + +/obj/machinery/attack_paw(mob/living/user) + if(user.a_intent != "harm") + return attack_hand(user) + else + user.changeNext_move(CLICK_CD_MELEE) + user.do_attack_animation(src, ATTACK_EFFECT_PUNCH) + user.visible_message("[user.name] smashes against \the [src.name] with its paws.", null, null, COMBAT_MESSAGE_RANGE) + take_damage(4, BRUTE, "melee", 1) + + +/obj/machinery/attack_ai(mob/user) + if(iscyborg(user))// For some reason attack_robot doesn't work + var/mob/living/silicon/robot/R = user + if(R.client && R.client.eye == R && !R.low_power_mode)// This is to stop robots from using cameras to remotely control machines; and from using machines when the borg has no power. + return attack_hand(user) + else + return attack_hand(user) + + +//set_machine must be 0 if clicking the machinery doesn't bring up a dialog +/obj/machinery/attack_hand(mob/user, check_power = 1, set_machine = 1) + if(..())// unbuckling etc + return 1 + if((user.lying || user.stat) && !IsAdminGhost(user)) + return 1 + if(!user.IsAdvancedToolUser() && !IsAdminGhost(user)) + usr << "You don't have the dexterity to do this!" + return 1 + if(!is_interactable()) + return 1 + if(set_machine) + user.set_machine(src) + interact(user) + add_fingerprint(user) + return 0 + +/obj/machinery/CheckParts(list/parts_list) + ..() + RefreshParts() + +/obj/machinery/proc/RefreshParts() //Placeholder proc for machines that are built using frames. + return + +/obj/machinery/proc/assign_uid() + uid = gl_uid + gl_uid++ + +/obj/machinery/proc/default_pry_open(obj/item/weapon/crowbar/C) + . = !(state_open || panel_open || is_operational() || (flags & NODECONSTRUCT)) && istype(C) + if(.) + playsound(loc, C.usesound, 50, 1) + visible_message("[usr] pries open \the [src].", "You pry open \the [src].") + open_machine() + return 1 + +/obj/machinery/proc/default_deconstruction_crowbar(obj/item/weapon/crowbar/C, ignore_panel = 0) + . = istype(C) && (panel_open || ignore_panel) && !(flags & NODECONSTRUCT) + if(.) + playsound(loc, C.usesound, 50, 1) + deconstruct(TRUE) + +/obj/machinery/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + on_deconstruction() + if(component_parts && component_parts.len) + spawn_frame(disassembled) + for(var/obj/item/I in component_parts) + I.forceMove(loc) + qdel(src) + +/obj/machinery/proc/spawn_frame(disassembled) + var/obj/structure/frame/machine/M = new /obj/structure/frame/machine(loc) + . = M + M.anchored = anchored + if(!disassembled) + M.obj_integrity = M.max_integrity * 0.5 //the frame is already half broken + transfer_fingerprints_to(M) + M.state = 2 + M.icon_state = "box_1" + +/obj/machinery/obj_break(damage_flag) + if(!(flags & NODECONSTRUCT)) + stat |= BROKEN + +/obj/machinery/contents_explosion(severity, target) + if(occupant) + occupant.ex_act(severity, target) + +/obj/machinery/handle_atom_del(atom/A) + if(A == occupant) + occupant = null + update_icon() + updateUsrDialog() + +/obj/machinery/proc/default_deconstruction_screwdriver(mob/user, icon_state_open, icon_state_closed, obj/item/weapon/screwdriver/S) + if(istype(S) && !(flags & NODECONSTRUCT)) + playsound(loc, S.usesound, 50, 1) + if(!panel_open) + panel_open = 1 + icon_state = icon_state_open + user << "You open the maintenance hatch of [src]." + else + panel_open = 0 + icon_state = icon_state_closed + user << "You close the maintenance hatch of [src]." + return 1 + return 0 + +/obj/machinery/proc/default_change_direction_wrench(mob/user, obj/item/weapon/wrench/W) + if(panel_open && istype(W)) + playsound(loc, W.usesound, 50, 1) + setDir(turn(dir,-90)) + user << "You rotate [src]." + return 1 + return 0 + +/obj/proc/default_unfasten_wrench(mob/user, obj/item/weapon/wrench/W, time = 20) + if(istype(W) && !(flags & NODECONSTRUCT)) + user << "You begin [anchored ? "un" : ""]securing [name]..." + playsound(loc, W.usesound, 50, 1) + if(do_after(user, time/W.toolspeed, target = src)) + user << "You [anchored ? "un" : ""]secure [name]." + anchored = !anchored + playsound(loc, 'sound/items/Deconstruct.ogg', 50, 1) + return 1 + return 0 + +/obj/machinery/proc/exchange_parts(mob/user, obj/item/weapon/storage/part_replacer/W) + if(!istype(W)) + return + if((flags & NODECONSTRUCT) && !W.works_from_distance) + return + var/shouldplaysound = 0 + if(component_parts) + if(panel_open || W.works_from_distance) + var/obj/item/weapon/circuitboard/machine/CB = locate(/obj/item/weapon/circuitboard/machine) in component_parts + var/P + if(W.works_from_distance) + display_parts(user) + for(var/obj/item/weapon/stock_parts/A in component_parts) + for(var/D in CB.req_components) + if(ispath(A.type, D)) + P = D + break + for(var/obj/item/weapon/stock_parts/B in W.contents) + if(istype(B, P) && istype(A, P)) + if(B.rating > A.rating) + W.remove_from_storage(B, src) + W.handle_item_insertion(A, 1) + component_parts -= A + component_parts += B + B.loc = null + user << "[A.name] replaced with [B.name]." + shouldplaysound = 1 //Only play the sound when parts are actually replaced! + break + RefreshParts() + else + display_parts(user) + if(shouldplaysound) + W.play_rped_sound() + return 1 + return 0 + +/obj/machinery/proc/display_parts(mob/user) + user << "Following parts detected in the machine:" + for(var/obj/item/C in component_parts) + user << "\icon[C] [C.name]" + +/obj/machinery/examine(mob/user) + ..() + if(stat & BROKEN) + user << "It looks broken and non functional." + if(!(resistance_flags & INDESTRUCTIBLE)) + if(resistance_flags & ON_FIRE) + user << "It's on fire!" + var/healthpercent = (obj_integrity/max_integrity) * 100 + switch(healthpercent) + if(100 to INFINITY) + user << "It seems pristine and undamaged." + if(50 to 100) + user << "It looks slightly damaged." + if(25 to 50) + user << "It appears heavily damaged." + if(0 to 25) + user << "It's falling apart!" + if(user.research_scanner && component_parts) + display_parts(user) + +//called on machinery construction (i.e from frame to machinery) but not on initialization +/obj/machinery/proc/on_construction() + return + +//called on deconstruction before the final deletion +/obj/machinery/proc/on_deconstruction() + return + +/obj/machinery/allow_drop() + return 0 + +// Hook for html_interface module to prevent updates to clients who don't have this as their active machine. +/obj/machinery/proc/hiIsValidClient(datum/html_interface_client/hclient, datum/html_interface/hi) + if (hclient.client.mob && (hclient.client.mob.stat == 0 || IsAdminGhost(hclient.client.mob))) + if (isAI(hclient.client.mob) || IsAdminGhost(hclient.client.mob)) return TRUE + else return hclient.client.mob.machine == src && Adjacent(hclient.client.mob) + else + return FALSE + +// Hook for html_interface module to unset the active machine when the window is closed by the player. +/obj/machinery/proc/hiOnHide(datum/html_interface_client/hclient) + if (hclient.client.mob && hclient.client.mob.machine == src) hclient.client.mob.unset_machine() + +/obj/machinery/proc/can_be_overridden() + . = 1 + + +/obj/machinery/tesla_act(power, explosive = FALSE) + ..() + if(prob(85) && explosive) + explosion(src.loc,1,2,4,flame_range = 2, adminlog = 0, smoke = 0) + else if(prob(50)) + emp_act(2) + else + ex_act(2) diff --git a/code/game/machinery/magnet.dm b/code/game/machinery/magnet.dm new file mode 100644 index 0000000..a1b8977 --- /dev/null +++ b/code/game/machinery/magnet.dm @@ -0,0 +1,416 @@ +// Magnetic attractor, creates variable magnetic fields and attraction. +// Can also be used to emit electron/proton beams to create a center of magnetism on another tile + +// tl;dr: it's magnets lol +// This was created for firing ranges, but I suppose this could have other applications - Doohl + +/obj/machinery/magnetic_module + + icon = 'icons/obj/objects.dmi' + icon_state = "floor_magnet-f" + name = "electromagnetic generator" + desc = "A device that uses station power to create points of magnetic energy." + level = 1 // underfloor + layer = LOW_OBJ_LAYER + anchored = 1 + use_power = 1 + idle_power_usage = 50 + + var/freq = 1449 // radio frequency + var/electricity_level = 1 // intensity of the magnetic pull + var/magnetic_field = 1 // the range of magnetic attraction + var/code = 0 // frequency code, they should be different unless you have a group of magnets working together or something + var/turf/center // the center of magnetic attraction + var/on = 0 + var/pulling = 0 + + // x, y modifiers to the center turf; (0, 0) is centered on the magnet, whereas (1, -1) is one tile right, one tile down + var/center_x = 0 + var/center_y = 0 + var/max_dist = 20 // absolute value of center_x,y cannot exceed this integer + +/obj/machinery/magnetic_module/New() + ..() + var/turf/T = loc + hide(T.intact) + center = T + + spawn(10) // must wait for map loading to finish + if(SSradio) + SSradio.add_object(src, freq, RADIO_MAGNETS) + + spawn() + magnetic_process() + +/obj/machinery/magnetic_module/Destroy() + if(SSradio) + SSradio.remove_object(src, freq) + . = ..() + center = null + +// update the invisibility and icon +/obj/machinery/magnetic_module/hide(intact) + invisibility = intact ? INVISIBILITY_MAXIMUM : 0 + updateicon() + +// update the icon_state +/obj/machinery/magnetic_module/proc/updateicon() + var/state="floor_magnet" + var/onstate="" + if(!on) + onstate="0" + + if(invisibility) + icon_state = "[state][onstate]-f" // if invisible, set icon to faded version + // in case of being revealed by T-scanner + else + icon_state = "[state][onstate]" + +/obj/machinery/magnetic_module/receive_signal(datum/signal/signal) + + var/command = signal.data["command"] + var/modifier = signal.data["modifier"] + var/signal_code = signal.data["code"] + if(command && (signal_code == code)) + + Cmd(command, modifier) + + + +/obj/machinery/magnetic_module/proc/Cmd(command, modifier) + + if(command) + switch(command) + if("set-electriclevel") + if(modifier) + electricity_level = modifier + if("set-magneticfield") + if(modifier) + magnetic_field = modifier + + if("add-elec") + electricity_level++ + if(electricity_level > 12) + electricity_level = 12 + if("sub-elec") + electricity_level-- + if(electricity_level <= 0) + electricity_level = 1 + if("add-mag") + magnetic_field++ + if(magnetic_field > 4) + magnetic_field = 4 + if("sub-mag") + magnetic_field-- + if(magnetic_field <= 0) + magnetic_field = 1 + + if("set-x") + if(modifier) + center_x = modifier + if("set-y") + if(modifier) + center_y = modifier + + if("N") // NORTH + center_y++ + if("S") // SOUTH + center_y-- + if("E") // EAST + center_x++ + if("W") // WEST + center_x-- + if("C") // CENTER + center_x = 0 + center_y = 0 + if("R") // RANDOM + center_x = rand(-max_dist, max_dist) + center_y = rand(-max_dist, max_dist) + + if("set-code") + if(modifier) + code = modifier + if("toggle-power") + on = !on + + if(on) + addtimer(src, "magnetic_process", 0) + + + +/obj/machinery/magnetic_module/process() + if(stat & NOPOWER) + on = 0 + + // Sanity checks: + if(electricity_level <= 0) + electricity_level = 1 + if(magnetic_field <= 0) + magnetic_field = 1 + + + // Limitations: + if(abs(center_x) > max_dist) + center_x = max_dist + if(abs(center_y) > max_dist) + center_y = max_dist + if(magnetic_field > 4) + magnetic_field = 4 + if(electricity_level > 12) + electricity_level = 12 + + // Update power usage: + if(on) + use_power = 2 + active_power_usage = electricity_level*15 + else + use_power = 0 + + + // Overload conditions: + /* // Eeeehhh kinda stupid + if(on) + if(electricity_level > 11) + if(prob(electricity_level)) + explosion(loc, 0, 1, 2, 3) // ooo dat shit EXPLODES son + spawn(2) + qdel(src) + */ + + updateicon() + + +/obj/machinery/magnetic_module/proc/magnetic_process() // proc that actually does the pulling + if(pulling) return + while(on) + + pulling = 1 + center = locate(x+center_x, y+center_y, z) + if(center) + for(var/obj/M in orange(magnetic_field, center)) + if(!M.anchored && (M.flags & CONDUCT)) + step_towards(M, center) + + for(var/mob/living/silicon/S in orange(magnetic_field, center)) + if(isAI(S)) + continue + step_towards(S, center) + + use_power(electricity_level * 5) + sleep(13 - electricity_level) + + pulling = 0 + + + + +/obj/machinery/magnetic_controller + name = "magnetic control console" + icon = 'icons/obj/airlock_machines.dmi' // uses an airlock machine icon, THINK GREEN HELP THE ENVIRONMENT - RECYCLING! + icon_state = "airlock_control_standby" + density = 0 + anchored = 1 + use_power = 1 + idle_power_usage = 45 + var/frequency = 1449 + var/code = 0 + var/list/magnets = list() + var/title = "Magnetic Control Console" + var/autolink = 0 // if set to 1, can't probe for other magnets! + + var/pathpos = 1 // position in the path + var/path = "w;e;e;w;s;n;n;s" // text path of the magnet + var/speed = 1 // lowest = 1, highest = 10 + var/list/rpath = list() // real path of the magnet, used in iterator + + var/moving = 0 // 1 if scheduled to loop + var/looping = 0 // 1 if looping + + var/datum/radio_frequency/radio_connection + + +/obj/machinery/magnetic_controller/New() + ..() + + if(autolink) + for(var/obj/machinery/magnetic_module/M in machines) + if(M.freq == frequency && M.code == code) + magnets.Add(M) + + + spawn(45) // must wait for map loading to finish + if(SSradio) + radio_connection = SSradio.add_object(src, frequency, RADIO_MAGNETS) + + + if(path) // check for default path + filter_path() // renders rpath + +/obj/machinery/magnetic_controller/Destroy() + if(SSradio) + SSradio.remove_object(src, frequency) + . = ..() + magnets = null + rpath = null + +/obj/machinery/magnetic_controller/process() + if(magnets.len == 0 && autolink) + for(var/obj/machinery/magnetic_module/M in machines) + if(M.freq == frequency && M.code == code) + magnets.Add(M) + + +/obj/machinery/magnetic_controller/attack_ai(mob/user) + return src.attack_hand(user) + +/obj/machinery/magnetic_controller/attack_hand(mob/user) + if(stat & (BROKEN|NOPOWER)) + return + user.set_machine(src) + var/dat = "Magnetic Control Console

    " + if(!autolink) + dat += {" + Frequency: [frequency]
    + Code: [code]
    + Probe Generators
    + "} + + if(magnets.len >= 1) + + dat += "Magnets confirmed:
    " + var/i = 0 + for(var/obj/machinery/magnetic_module/M in magnets) + i++ + dat += "     < \[[i]\] ([M.on ? "On":"Off"]) | Electricity level: - [M.electricity_level] +; Magnetic field: - [M.magnetic_field] +
    " + + dat += "
    Speed: - [speed] +
    " + dat += "Path: {[path]}
    " + dat += "Moving: [moving ? "Enabled":"Disabled"]" + + + user << browse(dat, "window=magnet;size=400x500") + onclose(user, "magnet") + +/obj/machinery/magnetic_controller/Topic(href, href_list) + if(..()) + return + usr.set_machine(src) + + if(href_list["radio-op"]) + + // Prepare signal beforehand, because this is a radio operation + var/datum/signal/signal = new + signal.transmission_method = 1 // radio transmission + signal.source = src + signal.frequency = frequency + signal.data["code"] = code + + // Apply any necessary commands + switch(href_list["radio-op"]) + if("togglepower") + signal.data["command"] = "toggle-power" + + if("minuselec") + signal.data["command"] = "sub-elec" + if("pluselec") + signal.data["command"] = "add-elec" + + if("minusmag") + signal.data["command"] = "sub-mag" + if("plusmag") + signal.data["command"] = "add-mag" + + + // Broadcast the signal + + radio_connection.post_signal(src, signal, filter = RADIO_MAGNETS) + + spawn(1) + updateUsrDialog() // pretty sure this increases responsiveness + + if(href_list["operation"]) + switch(href_list["operation"]) + if("plusspeed") + speed ++ + if(speed > 10) + speed = 10 + if("minusspeed") + speed -- + if(speed <= 0) + speed = 1 + if("setpath") + var/newpath = copytext(sanitize(input(usr, "Please define a new path!",,path) as text|null),1,MAX_MESSAGE_LEN) + if(newpath && newpath != "") + moving = 0 // stop moving + path = newpath + pathpos = 1 // reset position + filter_path() // renders rpath + + if("togglemoving") + moving = !moving + if(moving) + spawn() MagnetMove() + + + updateUsrDialog() + +/obj/machinery/magnetic_controller/proc/MagnetMove() + if(looping) return + + while(moving && rpath.len >= 1) + + if(stat & (BROKEN|NOPOWER)) + break + + looping = 1 + + // Prepare the radio signal + var/datum/signal/signal = new + signal.transmission_method = 1 // radio transmission + signal.source = src + signal.frequency = frequency + signal.data["code"] = code + + if(pathpos > rpath.len) // if the position is greater than the length, we just loop through the list! + pathpos = 1 + + var/nextmove = uppertext(rpath[pathpos]) // makes it un-case-sensitive + + if(!(nextmove in list("N","S","E","W","C","R"))) + // N, S, E, W are directional + // C is center + // R is random (in magnetic field's bounds) + qdel(signal) + break // break the loop if the character located is invalid + + signal.data["command"] = nextmove + + + pathpos++ // increase iterator + + // Broadcast the signal + spawn() + radio_connection.post_signal(src, signal, filter = RADIO_MAGNETS) + + if(speed == 10) + sleep(1) + else + sleep(12-speed) + + looping = 0 + + +/obj/machinery/magnetic_controller/proc/filter_path() + // Generates the rpath variable using the path string, think of this as "string2list" + // Doesn't use params2list() because of the akward way it stacks entities + rpath = list() // clear rpath + var/maximum_character = min( 50, length(path) ) // chooses the maximum length of the iterator. 50 max length + + for(var/i=1, i<=maximum_character, i++) // iterates through all characters in path + + var/nextchar = copytext(path, i, i+1) // find next character + + if(!(nextchar in list(";", "&", "*", " "))) // if char is a separator, ignore + rpath += copytext(path, i, i+1) // else, add to list + + // there doesn't HAVE to be separators but it makes paths syntatically visible diff --git a/code/game/machinery/mass_driver.dm b/code/game/machinery/mass_driver.dm new file mode 100644 index 0000000..af07095 --- /dev/null +++ b/code/game/machinery/mass_driver.dm @@ -0,0 +1,37 @@ +/obj/machinery/mass_driver + name = "mass driver" + desc = "The finest in spring-loaded piston toy technology, now on a space station near you." + icon = 'icons/obj/stationobjs.dmi' + icon_state = "mass_driver" + anchored = 1 + use_power = 1 + idle_power_usage = 2 + active_power_usage = 50 + var/power = 1 + var/code = 1 + var/id = 1 + var/drive_range = 50 //this is mostly irrelevant since current mass drivers throw into space, but you could make a lower-range mass driver for interstation transport or something I guess. + + +/obj/machinery/mass_driver/proc/drive(amount) + if(stat & (BROKEN|NOPOWER)) + return + use_power(500) + var/O_limit + var/atom/target = get_edge_target_turf(src, dir) + for(var/atom/movable/O in loc) + if(!O.anchored || istype(O, /obj/mecha)) //Mechs need their launch platforms. + O_limit++ + if(O_limit >= 20) + audible_message("[src] lets out a screech, it doesn't seem to be able to handle the load.") + break + use_power(500) + O.throw_at_fast(target, drive_range * power, power) + flick("mass_driver1", src) + + +/obj/machinery/mass_driver/emp_act(severity) + if(stat & (BROKEN|NOPOWER)) + return + drive() + ..(severity) \ No newline at end of file diff --git a/code/game/machinery/navbeacon.dm b/code/game/machinery/navbeacon.dm new file mode 100644 index 0000000..a921aa6 --- /dev/null +++ b/code/game/machinery/navbeacon.dm @@ -0,0 +1,209 @@ +// Navigation beacon for AI robots +// No longer exists on the radio controller, it is managed by a global list. + +/obj/machinery/navbeacon + + icon = 'icons/obj/objects.dmi' + icon_state = "navbeacon0-f" + name = "navigation beacon" + desc = "A radio beacon used for bot navigation." + level = 1 // underfloor + layer = LOW_OBJ_LAYER + anchored = 1 + obj_integrity = 500 + max_integrity = 500 + armor = list(melee = 70, bullet = 70, laser = 70, energy = 70, bomb = 0, bio = 0, rad = 0, fire = 80, acid = 80) + + var/open = 0 // true if cover is open + var/locked = 1 // true if controls are locked + var/freq = 1445 // radio frequency + var/location = "" // location response text + var/list/codes // assoc. list of transponder codes + var/codes_txt = "" // codes as set on map: "tag1;tag2" or "tag1=value;tag2=value" + + req_access = list(access_engine, access_robotics) + +/obj/machinery/navbeacon/New() + ..() + + set_codes() + + var/turf/T = loc + hide(T.intact) + if(codes["patrol"]) + if(!navbeacons["[z]"]) + navbeacons["[z]"] = list() + navbeacons["[z]"] += src //Register with the patrol list! + if(codes["delivery"]) + deliverybeacons += src + deliverybeacontags += location + +/obj/machinery/navbeacon/Destroy() + navbeacons["[z]"] -= src //Remove from beacon list, if in one. + deliverybeacons -= src + return ..() + +// set the transponder codes assoc list from codes_txt +/obj/machinery/navbeacon/proc/set_codes() + if(!codes_txt) + return + + codes = new() + + var/list/entries = splittext(codes_txt, ";") // entries are separated by semicolons + + for(var/e in entries) + var/index = findtext(e, "=") // format is "key=value" + if(index) + var/key = copytext(e, 1, index) + var/val = copytext(e, index+1) + codes[key] = val + else + codes[e] = "1" + + +// called when turf state changes +// hide the object if turf is intact +/obj/machinery/navbeacon/hide(intact) + invisibility = intact ? INVISIBILITY_MAXIMUM : 0 + updateicon() + +// update the icon_state +/obj/machinery/navbeacon/proc/updateicon() + var/state="navbeacon[open]" + + if(invisibility) + icon_state = "[state]-f" // if invisible, set icon to faded version + // in case revealed by T-scanner + else + icon_state = "[state]" + +/obj/machinery/navbeacon/attackby(obj/item/I, mob/user, params) + var/turf/T = loc + if(T.intact) + return // prevent intraction when T-scanner revealed + + if(istype(I, /obj/item/weapon/screwdriver)) + open = !open + + user.visible_message("[user] [open ? "opens" : "closes"] the beacon's cover.", "You [open ? "open" : "close"] the beacon's cover.") + + updateicon() + + else if (istype(I, /obj/item/weapon/card/id)||istype(I, /obj/item/device/pda)) + if(open) + if (src.allowed(user)) + src.locked = !src.locked + user << "Controls are now [src.locked ? "locked" : "unlocked"]." + else + user << "Access denied." + updateDialog() + else + user << "You must open the cover first!" + else + return ..() + +/obj/machinery/navbeacon/attack_ai(mob/user) + interact(user, 1) + +/obj/machinery/navbeacon/attack_paw() + return + +/obj/machinery/navbeacon/attack_hand(mob/user) + interact(user, 0) + +/obj/machinery/navbeacon/interact(mob/user, ai = 0) + var/turf/T = loc + if(T.intact) + return // prevent intraction when T-scanner revealed + + if(!open && !ai) // can't alter controls if not open, unless you're an AI + user << "The beacon's control cover is closed!" + return + + + var/t + + if(locked && !ai) + t = {"Navigation Beacon

    +(swipe card to unlock controls)
    +Location: [location ? location : "(none)"]
    +Transponder Codes:
      "} + + for(var/key in codes) + t += "
    • [key] ... [codes[key]]" + t+= "
        " + + else + + t = {"Navigation Beacon

        +(swipe card to lock controls)
        + +
        +Location: [location ? location : "None"]
        +Transponder Codes:
          "} + + for(var/key in codes) + t += "
        • [key] ... [codes[key]]" + t += " Edit" + t += " Delete
          " + t += " Add New
          " + t+= "
            " + + var/datum/browser/popup = new(user, "navbeacon", "Navigation Beacon", 300, 400) + popup.set_content(t) + popup.open() + return + +/obj/machinery/navbeacon/Topic(href, href_list) + if(..()) + return + if(open && !locked) + usr.set_machine(src) + + if(href_list["locedit"]) + var/newloc = copytext(sanitize(input("Enter New Location", "Navigation Beacon", location) as text|null),1,MAX_MESSAGE_LEN) + if(newloc) + location = newloc + updateDialog() + + else if(href_list["edit"]) + var/codekey = href_list["code"] + + var/newkey = stripped_input(usr, "Enter Transponder Code Key", "Navigation Beacon", codekey) + if(!newkey) + return + + var/codeval = codes[codekey] + var/newval = stripped_input(usr, "Enter Transponder Code Value", "Navigation Beacon", codeval) + if(!newval) + newval = codekey + return + + codes.Remove(codekey) + codes[newkey] = newval + + updateDialog() + + else if(href_list["delete"]) + var/codekey = href_list["code"] + codes.Remove(codekey) + updateDialog() + + else if(href_list["add"]) + + var/newkey = stripped_input(usr, "Enter New Transponder Code Key", "Navigation Beacon") + if(!newkey) + return + + var/newval = stripped_input(usr, "Enter New Transponder Code Value", "Navigation Beacon") + if(!newval) + newval = "1" + return + + if(!codes) + codes = new() + + codes[newkey] = newval + + updateDialog() \ No newline at end of file diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm new file mode 100644 index 0000000..9e06b6a --- /dev/null +++ b/code/game/machinery/newscaster.dm @@ -0,0 +1,1049 @@ +var/datum/newscaster/feed_network/news_network = new /datum/newscaster/feed_network +var/list/obj/machinery/newscaster/allCasters = list() + +/datum/newscaster + +/datum/newscaster/feed_comment + var/author = "" + var/body = "" + var/time_stamp = "" + +/datum/newscaster/feed_message + var/author ="" + var/body ="" + var/list/authorCensorTime = list() + var/list/bodyCensorTime = list() + var/is_admin_message = 0 + var/icon/img = null + var/time_stamp = "" + var/list/datum/newscaster/feed_comment/comments = list() + var/locked = 0 + var/caption = "" + var/creationTime + var/authorCensor + var/bodyCensor + +/datum/newscaster/feed_message/proc/returnAuthor(censor) + if(censor == -1) + censor = authorCensor + var/txt = "[news_network.redactedText]" + if(!censor) + txt = author + return txt + +/datum/newscaster/feed_message/proc/returnBody(censor) + if(censor == -1) + censor = bodyCensor + var/txt = "[news_network.redactedText]" + if(!censor) + txt = body + return txt + +/datum/newscaster/feed_message/proc/toggleCensorAuthor() + if(authorCensor) + authorCensorTime.Add(news_network.lastAction*-1) + else + authorCensorTime.Add(news_network.lastAction) + authorCensor = !authorCensor + news_network.lastAction ++ + +/datum/newscaster/feed_message/proc/toggleCensorBody() + if(bodyCensor) + bodyCensorTime.Add(news_network.lastAction*-1) + else + bodyCensorTime.Add(news_network.lastAction) + bodyCensor = !bodyCensor + news_network.lastAction ++ + +/datum/newscaster/feed_channel + var/channel_name = "" + var/list/datum/newscaster/feed_message/messages = list() + var/locked = 0 + var/author = "" + var/censored = 0 + var/list/authorCensorTime = list() + var/list/DclassCensorTime = list() + var/authorCensor + var/is_admin_channel = 0 + +/datum/newscaster/feed_channel/proc/returnAuthor(censor) + if(censor == -1) + censor = authorCensor + var/txt = "[news_network.redactedText]" + if(!censor) + txt = author + return txt + +/datum/newscaster/feed_channel/proc/toggleCensorDclass() + if(censored) + DclassCensorTime.Add(news_network.lastAction*-1) + else + DclassCensorTime.Add(news_network.lastAction) + censored = !censored + news_network.lastAction ++ + +/datum/newscaster/feed_channel/proc/toggleCensorAuthor() + if(authorCensor) + authorCensorTime.Add(news_network.lastAction*-1) + else + authorCensorTime.Add(news_network.lastAction) + authorCensor = !authorCensor + news_network.lastAction ++ + +/datum/newscaster/wanted_message + var/active + var/criminal + var/body + var/scannedUser + var/isAdminMsg + var/icon/img + +/datum/newscaster/feed_network + var/list/datum/newscaster/feed_channel/network_channels = list() + var/datum/newscaster/wanted_message/wanted_issue + var/lastAction + var/redactedText = "\[REDACTED\]" + +/datum/newscaster/feed_network/New() + CreateFeedChannel("Station Announcements", "SS13", 1) + wanted_issue = new /datum/newscaster/wanted_message + +/datum/newscaster/feed_network/proc/CreateFeedChannel(channel_name, author, locked, adminChannel = 0) + var/datum/newscaster/feed_channel/newChannel = new /datum/newscaster/feed_channel + newChannel.channel_name = channel_name + newChannel.author = author + newChannel.locked = locked + newChannel.is_admin_channel = adminChannel + network_channels += newChannel + +/datum/newscaster/feed_network/proc/SubmitArticle(msg, author, channel_name, obj/item/weapon/photo/photo, adminMessage = 0, allow_comments = 1) + var/datum/newscaster/feed_message/newMsg = new /datum/newscaster/feed_message + newMsg.author = author + newMsg.body = msg + newMsg.time_stamp = "[worldtime2text()]" + newMsg.is_admin_message = adminMessage + newMsg.locked = !allow_comments + if(photo) + newMsg.img = photo.img + newMsg.caption = photo.scribble + for(var/datum/newscaster/feed_channel/FC in network_channels) + if(FC.channel_name == channel_name) + FC.messages += newMsg + break + for(var/obj/machinery/newscaster/NEWSCASTER in allCasters) + NEWSCASTER.newsAlert(channel_name) + lastAction ++ + newMsg.creationTime = lastAction + +/datum/newscaster/feed_network/proc/submitWanted(criminal, body, scanned_user, obj/item/weapon/photo/photo, adminMsg = 0, newMessage = 0) + wanted_issue.active = 1 + wanted_issue.criminal = criminal + wanted_issue.body = body + wanted_issue.scannedUser = scanned_user + wanted_issue.isAdminMsg = adminMsg + if(photo) + wanted_issue.img = photo.img + if(newMessage) + for(var/obj/machinery/newscaster/N in allCasters) + N.newsAlert() + N.update_icon() + +/datum/newscaster/feed_network/proc/deleteWanted() + wanted_issue.active = 0 + wanted_issue.criminal = null + wanted_issue.body = null + wanted_issue.scannedUser = null + wanted_issue.img = null + for(var/obj/machinery/newscaster/NEWSCASTER in allCasters) + NEWSCASTER.update_icon() + + + +/obj/item/wallframe/newscaster + name = "newscaster frame" + desc = "Used to build newscasters, just secure to the wall." + icon_state = "newscaster" + materials = list(MAT_METAL=14000, MAT_GLASS=8000) + result_path = /obj/machinery/newscaster + + +/obj/machinery/newscaster + name = "newscaster" + desc = "A standard Nanotrasen-licensed newsfeed handler for use in commercial space stations. All the news you absolutely have no use for, in one place!" + icon = 'icons/obj/terminals.dmi' + icon_state = "newscaster_normal" + verb_say = "beeps" + verb_ask = "beeps" + verb_exclaim = "beeps" + armor = list(melee = 50, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 30) + obj_integrity = 200 + max_integrity = 200 + integrity_failure = 50 + var/screen = 0 + var/paper_remaining = 15 + var/securityCaster = 0 + var/unit_no = 0 + var/alert_delay = 500 + var/alert = 0 + var/scanned_user = "Unknown" + var/msg = "" + var/obj/item/weapon/photo/photo = null + var/channel_name = "" + var/c_locked=0 + var/datum/newscaster/feed_channel/viewing_channel = null + var/allow_comments = 1 + luminosity = 0 + anchored = 1 + +/obj/machinery/newscaster/security_unit + name = "security newscaster" + securityCaster = 1 + +/obj/machinery/newscaster/New(loc, ndir, building) + ..() + if(building) + setDir(ndir) + pixel_x = (dir & 3)? 0 : (dir == 4 ? -32 : 32) + pixel_y = (dir & 3)? (dir ==1 ? -32 : 32) : 0 + + allCasters += src + for(var/obj/machinery/newscaster/NEWSCASTER in allCasters) + unit_no++ + update_icon() + +/obj/machinery/newscaster/Destroy() + allCasters -= src + viewing_channel = null + photo = null + return ..() + +/obj/machinery/newscaster/update_icon() + cut_overlays() + if(stat & (NOPOWER|BROKEN)) + icon_state = "newscaster_off" + else + if(news_network.wanted_issue.active) + icon_state = "newscaster_wanted" + else + icon_state = "newscaster_normal" + if(alert) + add_overlay("newscaster_alert") + var/hp_percent = obj_integrity * 100 /max_integrity + switch(hp_percent) + if(75 to 100) + return + if(50 to 75) + add_overlay("crack1") + if(25 to 50) + add_overlay("crack2") + else + add_overlay("crack3") + + +/obj/machinery/newscaster/power_change() + if(stat & BROKEN) + return + if(powered()) + stat &= ~NOPOWER + update_icon() + else + spawn(rand(0, 15)) + stat |= NOPOWER + update_icon() + +/obj/machinery/newscaster/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir) + . = ..() + update_icon() + +/obj/machinery/newscaster/attack_ai(mob/user) + return attack_hand(user) + +/obj/machinery/newscaster/attack_hand(mob/user) + if(stat & (NOPOWER|BROKEN)) + return + if(ishuman(user) || issilicon(user)) + var/mob/living/human_or_robot_user = user + var/dat + scan_user(human_or_robot_user) + switch(screen) + if(0) + dat += "Welcome to Newscasting Unit #[unit_no].
            Interface & News networks Operational." + dat += "
            Property of Nanotransen Inc" + if(news_network.wanted_issue.active) + dat+= "
            Read Wanted Issue" + dat+= "

            Create Feed Channel" + dat+= "
            View Feed Channels" + dat+= "
            Submit new Feed story" + dat+= "
            Print newspaper" + dat+= "
            Re-scan User" + dat+= "

            Exit" + if(securityCaster) + var/wanted_already = 0 + if(news_network.wanted_issue.active) + wanted_already = 1 + dat+="
            Feed Security functions:
            " + dat+="
            [(wanted_already) ? ("Manage") : ("Publish")] \"Wanted\" Issue" + dat+="
            Censor Feed Stories" + dat+="
            Mark Feed Channel with Nanotrasen D-Notice" + dat+="

            The newscaster recognises you as: [scanned_user]" + if(1) + dat+= "Station Feed Channels
            " + if( isemptylist(news_network.network_channels) ) + dat+="No active channels found..." + else + for(var/datum/newscaster/feed_channel/CHANNEL in news_network.network_channels) + if(CHANNEL.is_admin_channel) + dat+="[CHANNEL.channel_name]
            " + else + dat+="[CHANNEL.channel_name] [(CHANNEL.censored) ? ("***") : ()]
            " + dat+="

            Refresh" + dat+="
            Back" + if(2) + dat+="Creating new Feed Channel..." + dat+="
            Channel Name: [channel_name]
            " + dat+="Channel Author: [scanned_user]
            " + dat+="Will Accept Public Feeds: [(c_locked) ? ("NO") : ("YES")]

            " + dat+="
            Submit

            Cancel
            " + if(3) + dat+="Creating new Feed Message..." + dat+="
            Receiving Channel: [channel_name]
            " + dat+="Message Author: [scanned_user]
            " + dat+="Message Body:
            [parsepencode(msg, user, SIGNFONT)]
            " + dat+="Attach Photo: [(photo ? "Photo Attached" : "No Photo")]
            " + dat+="Comments [allow_comments ? "Enabled" : "Disabled"]
            " + dat+="
            Submit

            Cancel
            " + if(4) + dat+="Feed story successfully submitted to [channel_name].

            " + dat+="
            Return
            " + if(5) + dat+="Feed Channel [channel_name] created successfully.

            " + dat+="
            Return
            " + if(6) + dat+="ERROR: Could not submit Feed story to Network.

            " + if(channel_name=="") + dat+="Invalid receiving channel name.
            " + if(scanned_user=="Unknown") + dat+="Channel author unverified.
            " + if(msg == "" || msg == "\[REDACTED\]") + dat+="Invalid message body.
            " + dat+="
            Return
            " + if(7) + dat+="ERROR: Could not submit Feed Channel to Network.

            " + var/list/existing_authors = list() + for(var/datum/newscaster/feed_channel/FC in news_network.network_channels) + if(FC.authorCensor) + existing_authors += news_network.redactedText + else + existing_authors += FC.author + if(scanned_user in existing_authors) + dat+="There already exists a Feed channel under your name.
            " + if(channel_name=="" || channel_name == "\[REDACTED\]") + dat+="Invalid channel name.
            " + var/check = 0 + for(var/datum/newscaster/feed_channel/FC in news_network.network_channels) + if(FC.channel_name == channel_name) + check = 1 + break + if(check) + dat+="Channel name already in use.
            " + if(scanned_user=="Unknown") + dat+="Channel author unverified.
            " + dat+="
            Return
            " + if(8) + var/total_num=length(news_network.network_channels) + var/active_num=total_num + var/message_num=0 + for(var/datum/newscaster/feed_channel/FC in news_network.network_channels) + if(!FC.censored) + message_num += length(FC.messages) + else + active_num-- + dat+="Network currently serves a total of [total_num] Feed channels, [active_num] of which are active, and a total of [message_num] Feed Stories." + dat+="

            Liquid Paper remaining: [(paper_remaining) *100 ] cm^3" + dat+="

            Print Paper" + dat+="
            Cancel" + if(9) + dat+="[viewing_channel.channel_name]: \[created by: [viewing_channel.returnAuthor(-1)]\]
            " + if(viewing_channel.censored) + dat+="ATTENTION: This channel has been deemed as threatening to the welfare of the station, and marked with a Nanotrasen D-Notice.
            " + dat+="No further feed story additions are allowed while the D-Notice is in effect.

            " + else + if( isemptylist(viewing_channel.messages) ) + dat+="No feed messages found in channel...
            " + else + var/i = 0 + for(var/datum/newscaster/feed_message/MESSAGE in viewing_channel.messages) + i++ + dat+="-[MESSAGE.returnBody(-1)]
            " + if(MESSAGE.img) + usr << browse_rsc(MESSAGE.img, "tmp_photo[i].png") + dat+="
            " + if(MESSAGE.caption) + dat+="[MESSAGE.caption]
            " + dat+="
            " + dat+="\[Story by [MESSAGE.returnAuthor(-1)] \] - ([MESSAGE.time_stamp])
            " + dat+="[MESSAGE.comments.len] comment[MESSAGE.comments.len > 1 ? "s" : ""]
            " + for(var/datum/newscaster/feed_comment/comment in MESSAGE.comments) + dat+="[comment.body]
            [comment.author] [comment.time_stamp]
            " + if(MESSAGE.locked) + dat+="Comments locked
            " + else + dat+="Comment
            " + dat+="

            Refresh" + dat+="
            Back" + if(10) + dat+="Nanotrasen Feed Censorship Tool
            " + dat+="NOTE: Due to the nature of news Feeds, total deletion of a Feed Story is not possible.
            " + dat+="Keep in mind that users attempting to view a censored feed will instead see the \[REDACTED\] tag above it.
            " + dat+="
            Select Feed channel to get Stories from:
            " + if(isemptylist(news_network.network_channels)) + dat+="No feed channels found active...
            " + else + for(var/datum/newscaster/feed_channel/CHANNEL in news_network.network_channels) + dat+="[CHANNEL.channel_name] [(CHANNEL.censored) ? ("***") : ()]
            " + dat+="
            Cancel" + if(11) + dat+="Nanotrasen D-Notice Handler
            " + dat+="A D-Notice is to be bestowed upon the channel if the handling Authority deems it as harmful for the station's" + dat+="morale, integrity or disciplinary behaviour. A D-Notice will render a channel unable to be updated by anyone, without deleting any feed" + dat+="stories it might contain at the time. You can lift a D-Notice if you have the required access at any time.
            " + if(isemptylist(news_network.network_channels)) + dat+="No feed channels found active...
            " + else + for(var/datum/newscaster/feed_channel/CHANNEL in news_network.network_channels) + dat+="[CHANNEL.channel_name] [(CHANNEL.censored) ? ("***") : ()]
            " + dat+="
            Back" + if(12) + dat+="[viewing_channel.channel_name]: \[ created by: [viewing_channel.returnAuthor(-1)] \]
            " + dat+="[(viewing_channel.authorCensor) ? ("Undo Author censorship") : ("Censor channel Author")]
            " + if(isemptylist(viewing_channel.messages)) + dat+="No feed messages found in channel...
            " + else + for(var/datum/newscaster/feed_message/MESSAGE in viewing_channel.messages) + dat+="-[MESSAGE.returnBody(-1)]
            \[Story by [MESSAGE.returnAuthor(-1)]\]
            " + dat+="[(MESSAGE.bodyCensor) ? ("Undo story censorship") : ("Censor story")] - [(MESSAGE.authorCensor) ? ("Undo Author Censorship") : ("Censor message Author")]
            " + dat+="[MESSAGE.comments.len] comment[MESSAGE.comments.len > 1 ? "s" : ""]: [MESSAGE.locked ? "Unlock" : "Lock"]
            " + for(var/datum/newscaster/feed_comment/comment in MESSAGE.comments) + dat+="[comment.body] X
            [comment.author] [comment.time_stamp]
            " + dat+="
            Back" + if(13) + dat+="[viewing_channel.channel_name]: \[ created by: [viewing_channel.returnAuthor(-1)] \]
            " + dat+="Channel messages listed below. If you deem them dangerous to the station, you can Bestow a D-Notice upon the channel.
            " + if(viewing_channel.censored) + dat+="ATTENTION: This channel has been deemed as threatening to the welfare of the station, and marked with a Nanotrasen D-Notice.
            " + dat+="No further feed story additions are allowed while the D-Notice is in effect.


            " + else + if(isemptylist(viewing_channel.messages)) + dat+="No feed messages found in channel...
            " + else + for(var/datum/newscaster/feed_message/MESSAGE in viewing_channel.messages) + dat+="-[MESSAGE.returnBody(-1)]
            \[Story by [MESSAGE.returnAuthor(-1)]\]
            " + dat+="
            Back" + if(14) + dat+="Wanted Issue Handler:" + var/wanted_already = 0 + var/end_param = 1 + if(news_network.wanted_issue.active) + wanted_already = 1 + end_param = 2 + if(wanted_already) + dat+="
            A wanted issue is already in Feed Circulation. You can edit or cancel it below.
            " + dat+="
            " + dat+="Criminal Name: [channel_name]
            " + dat+="Description: [msg]
            " + dat+="Attach Photo: [(photo ? "Photo Attached" : "No Photo")]
            " + if(wanted_already) + dat+="Wanted Issue created by:[news_network.wanted_issue.scannedUser]
            " + else + dat+="Wanted Issue will be created under prosecutor:[scanned_user]
            " + dat+="
            [(wanted_already) ? ("Edit Issue") : ("Submit")]" + if(wanted_already) + dat+="
            Take down Issue" + dat+="
            Cancel" + if(15) + dat+="Wanted issue for [channel_name] is now in Network Circulation.

            " + dat+="
            Return
            " + if(16) + dat+="ERROR: Wanted Issue rejected by Network.

            " + if(channel_name=="" || channel_name == "\[REDACTED\]") + dat+="Invalid name for person wanted.
            " + if(scanned_user=="Unknown") + dat+="Issue author unverified.
            " + if(msg == "" || msg == "\[REDACTED\]") + dat+="Invalid description.
            " + dat+="
            Return
            " + if(17) + dat+="Wanted Issue successfully deleted from Circulation
            " + dat+="
            Return
            " + if(18) + if(news_network.wanted_issue.active) + dat+="-- STATIONWIDE WANTED ISSUE --
            \[Submitted by: [news_network.wanted_issue.scannedUser]\]
            " + dat+="Criminal: [news_network.wanted_issue.criminal]
            " + dat+="Description: [news_network.wanted_issue.body]
            " + dat+="Photo:: " + if(news_network.wanted_issue.img) + usr << browse_rsc(news_network.wanted_issue.img, "tmp_photow.png") + dat+="
            " + else + dat+="None" + else + dat+="No current wanted issue found.

            " + dat+="

            Back
            " + if(19) + dat+="Wanted issue for [channel_name] successfully edited.

            " + dat+="
            Return
            " + if(20) + dat+="Printing successful. Please receive your newspaper from the bottom of the machine.

            " + dat+="Return" + if(21) + dat+="Unable to print newspaper. Insufficient paper. Please notify maintenance personnel to refill machine storage.

            " + dat+="Return" + var/datum/browser/popup = new(human_or_robot_user, "newscaster_main", "Newscaster Unit #[unit_no]", 400, 600) + popup.set_content(dat) + popup.set_title_image(human_or_robot_user.browse_rsc_icon(icon, icon_state)) + popup.open() + +/obj/machinery/newscaster/Topic(href, href_list) + if(..()) + return + if ((usr.contents.Find(src) || ((get_dist(src, usr) <= 1) && isturf(loc))) || issilicon(usr)) + usr.set_machine(src) + scan_user(usr) + if(href_list["set_channel_name"]) + channel_name = stripped_input(usr, "Provide a Feed Channel Name", "Network Channel Handler", "", MAX_NAME_LEN) + while (findtext(channel_name," ") == 1) + channel_name = copytext(channel_name,2,lentext(channel_name)+1) + updateUsrDialog() + else if(href_list["set_channel_lock"]) + c_locked = !c_locked + updateUsrDialog() + else if(href_list["submit_new_channel"]) + var/list/existing_authors = list() + for(var/datum/newscaster/feed_channel/FC in news_network.network_channels) + if(FC.authorCensor) + existing_authors += news_network.redactedText + else + existing_authors += FC.author + var/check = 0 + for(var/datum/newscaster/feed_channel/FC in news_network.network_channels) + if(FC.channel_name == channel_name) + check = 1 + break + if(channel_name == "" || channel_name == "\[REDACTED\]" || scanned_user == "Unknown" || check || (scanned_user in existing_authors) ) + screen=7 + else + var/choice = alert("Please confirm Feed channel creation","Network Channel Handler","Confirm","Cancel") + if(choice=="Confirm") + scan_user(usr) + news_network.CreateFeedChannel(channel_name, scanned_user, c_locked) + feedback_inc("newscaster_channels",1) + screen=5 + updateUsrDialog() + else if(href_list["set_channel_receiving"]) + var/list/available_channels = list() + for(var/datum/newscaster/feed_channel/F in news_network.network_channels) + if( (!F.locked || F.author == scanned_user) && !F.censored) + available_channels += F.channel_name + channel_name = input(usr, "Choose receiving Feed Channel", "Network Channel Handler") in available_channels + updateUsrDialog() + else if(href_list["set_new_message"]) + var/temp_message = trim(stripped_multiline_input(usr, "Write your Feed story", "Network Channel Handler", msg)) + if(temp_message) + msg = temp_message + updateUsrDialog() + else if(href_list["set_attachment"]) + AttachPhoto(usr) + updateUsrDialog() + else if(href_list["submit_new_message"]) + if(msg =="" || msg=="\[REDACTED\]" || scanned_user == "Unknown" || channel_name == "" ) + screen=6 + else + news_network.SubmitArticle("[parsepencode(msg, usr, SIGNFONT)]", scanned_user, channel_name, photo, 0, allow_comments) + feedback_inc("newscaster_stories",1) + screen=4 + msg = "" + updateUsrDialog() + else if(href_list["create_channel"]) + screen=2 + updateUsrDialog() + else if(href_list["create_feed_story"]) + screen=3 + updateUsrDialog() + else if(href_list["menu_paper"]) + screen=8 + updateUsrDialog() + else if(href_list["print_paper"]) + if(!paper_remaining) + screen=21 + else + print_paper() + screen = 20 + updateUsrDialog() + else if(href_list["menu_censor_story"]) + screen=10 + updateUsrDialog() + else if(href_list["menu_censor_channel"]) + screen=11 + updateUsrDialog() + else if(href_list["menu_wanted"]) + var/already_wanted = 0 + if(news_network.wanted_issue.active) + already_wanted = 1 + if(already_wanted) + channel_name = news_network.wanted_issue.criminal + msg = news_network.wanted_issue.body + screen = 14 + updateUsrDialog() + else if(href_list["set_wanted_name"]) + channel_name = trim(stripped_input(usr, "Provide the name of the Wanted person", "Network Security Handler")) + updateUsrDialog() + else if(href_list["set_wanted_desc"]) + msg = trim(stripped_input(usr, "Provide the a description of the Wanted person and any other details you deem important", "Network Security Handler")) + updateUsrDialog() + else if(href_list["submit_wanted"]) + var/input_param = text2num(href_list["submit_wanted"]) + if(msg == "" || channel_name == "" || scanned_user == "Unknown") + screen = 16 + else + var/choice = alert("Please confirm Wanted Issue [(input_param==1) ? ("creation.") : ("edit.")]","Network Security Handler","Confirm","Cancel") + if(choice=="Confirm") + scan_user(usr) + if(input_param==1) //If input_param == 1 we're submitting a new wanted issue. At 2 we're just editing an existing one. + news_network.submitWanted(channel_name, msg, scanned_user, photo, 0 , 1) + screen = 15 + else + if(news_network.wanted_issue.isAdminMsg) + alert("The wanted issue has been distributed by a Nanotrasen higherup. You cannot edit it.","Ok") + return + news_network.submitWanted(channel_name, msg, scanned_user, photo) + screen = 19 + updateUsrDialog() + else if(href_list["cancel_wanted"]) + if(news_network.wanted_issue.isAdminMsg) + alert("The wanted issue has been distributed by a Nanotrasen higherup. You cannot take it down.","Ok") + return + var/choice = alert("Please confirm Wanted Issue removal","Network Security Handler","Confirm","Cancel") + if(choice=="Confirm") + news_network.deleteWanted() + screen=17 + updateUsrDialog() + else if(href_list["view_wanted"]) + screen=18 + updateUsrDialog() + else if(href_list["censor_channel_author"]) + var/datum/newscaster/feed_channel/FC = locate(href_list["censor_channel_author"]) + if(FC.is_admin_channel) + alert("This channel was created by a Nanotrasen Officer. You cannot censor it.","Ok") + return + FC.toggleCensorAuthor() + updateUsrDialog() + else if(href_list["censor_channel_story_author"]) + var/datum/newscaster/feed_message/MSG = locate(href_list["censor_channel_story_author"]) + if(MSG.is_admin_message) + alert("This message was created by a Nanotrasen Officer. You cannot censor its author.","Ok") + return + MSG.toggleCensorAuthor() + updateUsrDialog() + else if(href_list["censor_channel_story_body"]) + var/datum/newscaster/feed_message/MSG = locate(href_list["censor_channel_story_body"]) + if(MSG.is_admin_message) + alert("This channel was created by a Nanotrasen Officer. You cannot censor it.","Ok") + return + MSG.toggleCensorBody() + updateUsrDialog() + else if(href_list["pick_d_notice"]) + var/datum/newscaster/feed_channel/FC = locate(href_list["pick_d_notice"]) + viewing_channel = FC + screen=13 + updateUsrDialog() + else if(href_list["toggle_d_notice"]) + var/datum/newscaster/feed_channel/FC = locate(href_list["toggle_d_notice"]) + if(FC.is_admin_channel) + alert("This channel was created by a Nanotrasen Officer. You cannot place a D-Notice upon it.","Ok") + return + FC.toggleCensorDclass() + updateUsrDialog() + else if(href_list["view"]) + screen=1 + updateUsrDialog() + else if(href_list["setScreen"]) + screen = text2num(href_list["setScreen"]) + if (screen == 0) + scanned_user = "Unknown"; + msg = ""; + c_locked=0; + channel_name=""; + viewing_channel = null + updateUsrDialog() + else if(href_list["show_channel"]) + var/datum/newscaster/feed_channel/FC = locate(href_list["show_channel"]) + viewing_channel = FC + screen = 9 + updateUsrDialog() + else if(href_list["pick_censor_channel"]) + var/datum/newscaster/feed_channel/FC = locate(href_list["pick_censor_channel"]) + viewing_channel = FC + screen = 12 + updateUsrDialog() + else if(href_list["new_comment"]) + var/datum/newscaster/feed_message/FM = locate(href_list["new_comment"]) + var/cominput = copytext(stripped_input(usr, "Write your message:", "New comment", null),1,141) + if(cominput) + scan_user(usr) + var/datum/newscaster/feed_comment/FC = new/datum/newscaster/feed_comment + FC.author = scanned_user + FC.body = cominput + FC.time_stamp = worldtime2text() + FM.comments += FC + log_comment("[usr]/([usr.ckey]) as [scanned_user] commented on message [FM.returnBody(-1)] -- [FC.body]") + updateUsrDialog() + else if(href_list["del_comment"]) + var/datum/newscaster/feed_comment/FC = locate(href_list["del_comment"]) + var/datum/newscaster/feed_message/FM = locate(href_list["del_comment_msg"]) + FM.comments -= FC + qdel(FC) + updateUsrDialog() + else if(href_list["lock_comment"]) + var/datum/newscaster/feed_message/FM = locate(href_list["lock_comment"]) + FM.locked ^= 1 + updateUsrDialog() + else if(href_list["set_comment"]) + allow_comments ^= 1 + updateUsrDialog() + else if(href_list["refresh"]) + updateUsrDialog() + +/obj/machinery/newscaster/attackby(obj/item/I, mob/living/user, params) + if(istype(I, /obj/item/weapon/wrench)) + user << "You start [anchored ? "un" : ""]securing [name]..." + playsound(loc, 'sound/items/Ratchet.ogg', 50, 1) + if(do_after(user, 60/I.toolspeed, target = src)) + playsound(loc, 'sound/items/Deconstruct.ogg', 50, 1) + if(stat & BROKEN) + user << "The broken remains of [src] fall on the ground." + new /obj/item/stack/sheet/metal(loc, 5) + new /obj/item/weapon/shard(loc) + new /obj/item/weapon/shard(loc) + else + user << "You [anchored ? "un" : ""]secure [name]." + new /obj/item/wallframe/newscaster(loc) + qdel(src) + else if(istype(I, /obj/item/weapon/weldingtool) && user.a_intent != "harm") + var/obj/item/weapon/weldingtool/WT = I + if(stat & BROKEN) + if(WT.remove_fuel(0,user)) + user.visible_message("[user] is repairing [src].", \ + "You begin repairing [src]...", \ + "You hear welding.") + playsound(loc, 'sound/items/Welder.ogg', 40, 1) + if(do_after(user,40/WT.toolspeed, 1, target = src)) + if(!WT.isOn() || !(stat & BROKEN)) + return + user << "You repair [src]." + playsound(loc, 'sound/items/Welder2.ogg', 50, 1) + obj_integrity = max_integrity + stat &= ~BROKEN + update_icon() + else + user << "[src] does not need repairs." + else + return ..() + +/obj/machinery/newscaster/play_attack_sound(damage, damage_type = BRUTE, damage_flag = 0) + switch(damage_type) + if(BRUTE) + if(stat & BROKEN) + playsound(loc, 'sound/effects/hit_on_shattered_glass.ogg', 100, 1) + else + playsound(loc, 'sound/effects/Glasshit.ogg', 90, 1) + if(BURN) + playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) + + +/obj/machinery/newscaster/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + new /obj/item/stack/sheet/metal(loc, 2) + new /obj/item/weapon/shard(loc) + new /obj/item/weapon/shard(loc) + qdel(src) + +/obj/machinery/newscaster/obj_break() + if(!(stat & BROKEN) && !(flags & NODECONSTRUCT)) + stat |= BROKEN + playsound(loc, 'sound/effects/Glassbr3.ogg', 100, 1) + update_icon() + + +/obj/machinery/newscaster/attack_paw(mob/user) + if(user.a_intent != "harm") + user << "The newscaster controls are far too complicated for your tiny brain!" + else + take_damage(5, BRUTE, "melee") + +/obj/machinery/newscaster/proc/AttachPhoto(mob/user) + if(photo) + if(!photo.sillynewscastervar) + photo.loc = loc + if(!issilicon(user)) + user.put_in_inactive_hand(photo) + else + qdel(photo) + photo = null + if(istype(user.get_active_held_item(), /obj/item/weapon/photo)) + photo = user.get_active_held_item() + if(!user.drop_item()) + return + photo.loc = src + if(issilicon(user)) + var/list/nametemp = list() + var/find + var/datum/picture/selection + var/obj/item/device/camera/siliconcam/targetcam = null + if(isAI(user)) + var/mob/living/silicon/ai/R = user + targetcam = R.aicamera + else if(iscyborg(user)) + var/mob/living/silicon/robot/R = user + if(R.connected_ai) + targetcam = R.connected_ai.aicamera + else + targetcam = R.aicamera + else + user << "You cannot interface with silicon photo uploading!" + if(targetcam.aipictures.len == 0) + usr << "No images saved" + return + for(var/datum/picture/t in targetcam.aipictures) + nametemp += t.fields["name"] + find = input("Select image (numbered in order taken)") in nametemp + var/obj/item/weapon/photo/P = new/obj/item/weapon/photo() + for(var/datum/picture/q in targetcam.aipictures) + if(q.fields["name"] == find) + selection = q + break + P.photocreate(selection.fields["icon"], selection.fields["img"], selection.fields["desc"]) + P.sillynewscastervar = 1 + photo = P + qdel(P) + +/obj/machinery/newscaster/proc/scan_user(mob/living/user) + if(ishuman(user)) + var/mob/living/carbon/human/human_user = user + if(human_user.wear_id) + if(istype(human_user.wear_id, /obj/item/device/pda)) + var/obj/item/device/pda/P = human_user.wear_id + if(P.id) + scanned_user = "[P.id.registered_name] ([P.id.assignment])" + else + scanned_user = "Unknown" + else if(istype(human_user.wear_id, /obj/item/weapon/card/id) ) + var/obj/item/weapon/card/id/ID = human_user.wear_id + scanned_user ="[ID.registered_name] ([ID.assignment])" + else + scanned_user ="Unknown" + else + scanned_user ="Unknown" + else if(issilicon(user)) + var/mob/living/silicon/ai_user = user + scanned_user = "[ai_user.name] ([ai_user.job])" + else + throw EXCEPTION("Invalid user for this proc") + return + +/obj/machinery/newscaster/proc/print_paper() + feedback_inc("newscaster_newspapers_printed",1) + var/obj/item/weapon/newspaper/NEWSPAPER = new /obj/item/weapon/newspaper + for(var/datum/newscaster/feed_channel/FC in news_network.network_channels) + NEWSPAPER.news_content += FC + if(news_network.wanted_issue.active) + NEWSPAPER.wantedAuthor = news_network.wanted_issue.scannedUser + NEWSPAPER.wantedCriminal = news_network.wanted_issue.criminal + NEWSPAPER.wantedBody = news_network.wanted_issue.body + if(news_network.wanted_issue.img) + NEWSPAPER.wantedPhoto = news_network.wanted_issue.img + NEWSPAPER.loc = get_turf(src) + NEWSPAPER.creationTime = news_network.lastAction + paper_remaining-- + +/obj/machinery/newscaster/proc/newsAlert(channel) + if(channel) + say("Breaking news from [channel]!") + alert ++ + update_icon() + spawn(alert_delay) + alert -- + update_icon() + playsound(loc, 'sound/machines/twobeep.ogg', 75, 1) + else + say("Attention! Wanted issue distributed!") + playsound(loc, 'sound/machines/warning-buzzer.ogg', 75, 1) + + +/obj/item/weapon/newspaper + name = "newspaper" + desc = "An issue of The Griffon, the newspaper circulating aboard Nanotrasen Space Stations." + icon = 'icons/obj/bureaucracy.dmi' + icon_state = "newspaper" + w_class = 2 + attack_verb = list("bapped") + var/screen = 0 + var/pages = 0 + var/curr_page = 0 + var/list/datum/newscaster/feed_channel/news_content = list() + var/scribble="" + var/scribble_page = null + var/wantedAuthor + var/wantedCriminal + var/wantedBody + var/wantedPhoto + var/creationTime + +/obj/item/weapon/newspaper/suicide_act(mob/user) + user.visible_message("[user] is focusing intently on [src]! It looks like [user.p_theyre()] trying to commit sudoku... until their eyes light up with realization!") + user.say(";JOURNALISM IS MY CALLING! EVERYBODY APPRECIATES UNBIASED REPORTI-GLORF") + var/mob/living/carbon/human/H = user + var/obj/W = new /obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey(H.loc) + playsound(H.loc, 'sound/items/drink.ogg', rand(10,50), 1) + W.reagents.trans_to(H, W.reagents.total_volume) + user.visible_message("[user] downs the contents of [W.name] in one gulp! Shoulda stuck to sudoku!") + + return(TOXLOSS) + +/obj/item/weapon/newspaper/attack_self(mob/user) + if(ishuman(user)) + var/mob/living/carbon/human/human_user = user + var/dat + pages = 0 + switch(screen) + if(0) //Cover + dat+="
            The Griffon
            " + dat+="
            Nanotrasen-standard newspaper, for use on Nanotrasen? Space Facilities

            " + if(isemptylist(news_content)) + if(wantedAuthor) + dat+="Contents:
              **Important Security Announcement** \[page [pages+2]\]
            " + else + dat+="Other than the title, the rest of the newspaper is unprinted..." + else + dat+="Contents:
              " + for(var/datum/newscaster/feed_channel/NP in news_content) + pages++ + if(wantedAuthor) + dat+="**Important Security Announcement** \[page [pages+2]\]
              " + var/temp_page=0 + for(var/datum/newscaster/feed_channel/NP in news_content) + temp_page++ + dat+="[NP.channel_name] \[page [temp_page+1]\]
              " + dat+="
            " + if(scribble_page==curr_page) + dat+="
            There is a small scribble near the end of this page... It reads: \"[scribble]\"" + dat+= "
            " + if(1) // X channel pages inbetween. + for(var/datum/newscaster/feed_channel/NP in news_content) + pages++ + var/datum/newscaster/feed_channel/C = news_content[curr_page] + dat += "[C.channel_name] \[created by: [C.returnAuthor(notContent(C.authorCensorTime))]\]

            " + if(notContent(C.DclassCensorTime)) + dat+="This channel was deemed dangerous to the general welfare of the station and therefore marked with a D-Notice. Its contents were not transferred to the newspaper at the time of printing." + else + if(isemptylist(C.messages)) + dat+="No Feed stories stem from this channel..." + else + var/i = 0 + for(var/datum/newscaster/feed_message/MESSAGE in C.messages) + if(MESSAGE.creationTime > creationTime) + if(i == 0) + dat+="No Feed stories stem from this channel..." + break + if(i == 0) + dat+="
              " + i++ + dat+="-[MESSAGE.returnBody(notContent(MESSAGE.bodyCensorTime))]
              " + if(MESSAGE.img) + user << browse_rsc(MESSAGE.img, "tmp_photo[i].png") + dat+="
              " + dat+="\[Story by [MESSAGE.returnAuthor(notContent(MESSAGE.authorCensorTime))]\]

              " + dat+="
            " + if(scribble_page==curr_page) + dat+="
            There is a small scribble near the end of this page... It reads: \"[scribble]\"" + dat+= "

            " + if(2) //Last page + for(var/datum/newscaster/feed_channel/NP in news_content) + pages++ + if(wantedAuthor!=null) + dat+="
            Wanted Issue:


            " + dat+="Criminal name: [wantedCriminal]
            " + dat+="Description: [wantedBody]
            " + dat+="Photo:: " + if(wantedPhoto) + user << browse_rsc(wantedPhoto, "tmp_photow.png") + dat+="
            " + else + dat+="None" + else + dat+="Apart from some uninteresting Classified ads, there's nothing on this page..." + if(scribble_page==curr_page) + dat+="
            There is a small scribble near the end of this page... It reads: \"[scribble]\"" + dat+= "
            " + dat+="

            [curr_page+1]
            " + human_user << browse(dat, "window=newspaper_main;size=300x400") + onclose(human_user, "newspaper_main") + else + user << "The paper is full of intelligible symbols!" + +/obj/item/weapon/newspaper/proc/notContent(list/L) + if(!L.len) + return 0 + for(var/i=L.len;i>0;i--) + var/num = abs(L[i]) + if(creationTime <= num) + continue + else + if(L[i] > 0) + return 1 + else + return 0 + return 0 + +/obj/item/weapon/newspaper/Topic(href, href_list) + var/mob/living/U = usr + ..() + if((src in U.contents) || (isturf(loc) && in_range(src, U))) + U.set_machine(src) + if(href_list["next_page"]) + if(curr_page == pages+1) + return //Don't need that at all, but anyway. + if(curr_page == pages) //We're at the middle, get to the end + screen = 2 + else + if(curr_page == 0) //We're at the start, get to the middle + screen=1 + curr_page++ + playsound(loc, "pageturn", 50, 1) + else if(href_list["prev_page"]) + if(curr_page == 0) + return + if(curr_page == 1) + screen = 0 + else + if(curr_page == pages+1) //we're at the end, let's go back to the middle. + screen = 1 + curr_page-- + playsound(loc, "pageturn", 50, 1) + if(ismob(loc)) + attack_self(loc) + +/obj/item/weapon/newspaper/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/weapon/pen)) + if(scribble_page == curr_page) + user << "There's already a scribble in this page... You wouldn't want to make things too cluttered, would you?" + else + var/s = stripped_input(user, "Write something", "Newspaper") + if (!s) + return + if (!in_range(src, usr) && loc != usr) + return + scribble_page = curr_page + scribble = s + attack_self(user) + else + return ..() \ No newline at end of file diff --git a/code/game/machinery/overview.dm b/code/game/machinery/overview.dm new file mode 100644 index 0000000..708d6c8 --- /dev/null +++ b/code/game/machinery/overview.dm @@ -0,0 +1,351 @@ +//#define AMAP + +/obj/machinery/computer/security/verb/station_map() + set name = ".map" + set category = "Object" + set src in view(1) + usr.set_machine(src) + if(!mapping) + return + + log_game("[usr]([usr.key]) used station map L[z] in [src.loc.loc]") + + src.drawmap(usr) + +/obj/machinery/computer/security/proc/drawmap(mob/user) + + var/icx = round(world.maxx/16) + 1 + var/icy = round(world.maxy/16) + 1 + + var/xoff = round( (icx*16-world.maxx)-2) + var/yoff = round( (icy*16-world.maxy)-2) + + var/icount = icx * icy + + + var/list/imap = list() + +#ifdef AMAP + + for(var/i = 0; iAlt-click to rotate it clockwise." + +/obj/item/pipe/New(loc, pipe_type, dir, obj/machinery/atmospherics/make_from) + ..() + if(make_from) + src.setDir(make_from.dir) + src.pipename = make_from.name + add_atom_colour(make_from.color, FIXED_COLOUR_PRIORITY) + + if(make_from.type in pipe_types) + src.pipe_type = make_from.type + else //make pipe_type a value we can work with + for(var/P in pipe_types) + if(istype(make_from, P)) + src.pipe_type = P + break + + var/obj/machinery/atmospherics/components/trinary/triP = make_from + if(istype(triP) && triP.flipped) + src.flipped = 1 + src.setDir(turn(src.dir, -45)) + else + src.pipe_type = pipe_type + src.setDir(dir) + + if(src.dir in diagonals) + is_bent = 1 + + update() + src.pixel_x = rand(-5, 5) + src.pixel_y = rand(-5, 5) + +//update the name and icon of the pipe item depending on the type +var/global/list/pipeID2State = list( + "[PIPE_SIMPLE]" = "simple", \ + "[PIPE_MANIFOLD]" = "manifold", \ + "[PIPE_4WAYMANIFOLD]" = "manifold4w", \ + "[PIPE_HE]" = "he", \ + "[PIPE_HE_MANIFOLD]" = "he_manifold", \ + "[PIPE_HE_4WAYMANIFOLD]" = "he_manifold4w", \ + "[PIPE_JUNCTION]" = "junction", \ + \ + "[PIPE_CONNECTOR]" = "connector", \ + "[PIPE_UVENT]" = "uvent", \ + "[PIPE_SCRUBBER]" = "scrubber", \ + "[PIPE_HEAT_EXCHANGE]" = "heunary", \ + \ + "[PIPE_PUMP]" = "pump", \ + "[PIPE_PASSIVE_GATE]" = "passivegate", \ + "[PIPE_VOLUME_PUMP]" = "volumepump", \ + "[PIPE_MVALVE]" = "mvalve", \ + "[PIPE_DVALVE]" = "dvalve", \ + \ + "[PIPE_GAS_FILTER]" = "filter", \ + "[PIPE_GAS_MIXER]" = "mixer", \ +) + +/obj/item/pipe/proc/update() + var/list/nlist = list(\ + "[PIPE_SIMPLE]" = "pipe", \ + "[PIPE_SIMPLE]_b" = "bent pipe", \ + "[PIPE_MANIFOLD]" = "manifold", \ + "[PIPE_4WAYMANIFOLD]" = "4-way manifold", \ + "[PIPE_HE]" = "h/e pipe", \ + "[PIPE_HE]_b" = "bent h/e pipe", \ + "[PIPE_HE_MANIFOLD]" = "h/e manifold", \ + "[PIPE_HE_4WAYMANIFOLD]"= "h/e 4-way manifold", \ + "[PIPE_JUNCTION]" = "junction", \ + \ + "[PIPE_CONNECTOR]" = "connector", \ + "[PIPE_UVENT]" = "vent", \ + "[PIPE_SCRUBBER]" = "scrubber", \ + "[PIPE_HEAT_EXCHANGE]" = "heat exchanger", \ + \ + "[PIPE_PUMP]" = "pump", \ + "[PIPE_PASSIVE_GATE]" = "passive gate", \ + "[PIPE_VOLUME_PUMP]" = "volume pump", \ + "[PIPE_MVALVE]" = "manual valve", \ + "[PIPE_DVALVE]" = "digital valve", \ + \ + "[PIPE_GAS_FILTER]" = "gas filter", \ + "[PIPE_GAS_MIXER]" = "gas mixer", \ + ) + //fix_pipe_type() + name = nlist["[pipe_type][is_bent ? "_b" : ""]"] + " fitting" + icon_state = pipeID2State["[pipe_type]"] + +// rotate the pipe item clockwise + +/obj/item/pipe/verb/rotate() + set category = "Object" + set name = "Rotate Pipe" + set src in view(1) + + if ( usr.stat || usr.restrained() || !usr.canmove ) + return + + src.setDir(turn(src.dir, -90)) + + fixdir() + + return + +/obj/item/pipe/verb/flip() + set category = "Object" + set name = "Flip Pipe" + set src in view(1) + + if ( usr.stat || usr.restrained() || !usr.canmove ) + return + + if (pipe_type in list(PIPE_GAS_FILTER, PIPE_GAS_MIXER)) + src.setDir(turn(src.dir, flipped )? 45 : -45) + flipped = !flipped + return + + src.setDir(turn(src.dir, -180)) + + fixdir() + + return + +/obj/item/pipe/AltClick(mob/user) + ..() + if(user.incapacitated()) + user << "You can't do that right now!" + return + if(!in_range(src, user)) + return + else + rotate() + +/obj/item/pipe/Move() + var/old_dir = dir + ..() + setDir(old_dir )//pipes changing direction when moved is just annoying and buggy + +/obj/item/pipe/proc/unflip(direction) + if(direction in diagonals) + return turn(direction, 45) + + return direction + +//Helper to clean up dir +/obj/item/pipe/proc/fixdir() + if((pipe_type in list (PIPE_SIMPLE, PIPE_HE, PIPE_MVALVE, PIPE_DVALVE)) && !is_bent) + if(dir==SOUTH) + setDir(NORTH) + else if(dir==WEST) + setDir(EAST) + +/obj/item/pipe/attack_self(mob/user) + return rotate() + +/obj/item/pipe/attackby(obj/item/weapon/W, mob/user, params) + if (!istype(W, /obj/item/weapon/wrench)) + return ..() + if (!isturf(src.loc)) + return 1 + + fixdir() + if(pipe_type in list(PIPE_GAS_MIXER, PIPE_GAS_FILTER)) + setDir(unflip(dir)) + + var/obj/machinery/atmospherics/A = new pipe_type(src.loc) + A.setDir(src.dir) + A.SetInitDirections() + + for(var/obj/machinery/atmospherics/M in src.loc) + if(M == A) //we don't want to check to see if it interferes with itself + continue + if(M.GetInitDirections() & A.GetInitDirections()) // matches at least one direction on either type of pipe + user << "There is already a pipe at that location!" + qdel(A) + return 1 + // no conflicts found + + if(pipename) + A.name = pipename + + var/obj/machinery/atmospherics/components/trinary/T = A + if(istype(T)) + T.flipped = flipped + A.on_construction(pipe_type, color) + + playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + user.visible_message( \ + "[user] fastens \the [src].", \ + "You fasten \the [src].", \ + "You hear ratchet.") + + qdel(src) + +/obj/item/pipe/suicide_act(mob/user) + if(pipe_type in list(PIPE_PUMP, PIPE_PASSIVE_GATE, PIPE_VOLUME_PUMP)) + user.visible_message("[user] shoves the [src] in [user.p_their()] mouth and turns it on! It looks like [user.p_theyre()] trying to commit suicide!") + if(istype(user, /mob/living/carbon)) + var/mob/living/carbon/C = user + for(var/i=1 to 20) + C.vomit(0,1,0,4,0) + sleep(5) + C.blood_volume = 0 + return(OXYLOSS|BRUTELOSS) + else + return ..() + +/obj/item/pipe_meter + name = "meter" + desc = "A meter that can be laid on pipes" + icon = 'icons/obj/atmospherics/pipes/pipe_item.dmi' + icon_state = "meter" + item_state = "buildpipe" + w_class = 4 + +/obj/item/pipe_meter/attackby(obj/item/weapon/W, mob/user, params) + ..() + + if (!istype(W, /obj/item/weapon/wrench)) + return ..() + if(!locate(/obj/machinery/atmospherics/pipe, src.loc)) + user << "You need to fasten it to a pipe!" + return 1 + new/obj/machinery/meter( src.loc ) + playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + user << "You fasten the meter to the pipe." + qdel(src) diff --git a/code/game/machinery/pipe/pipe_dispenser.dm b/code/game/machinery/pipe/pipe_dispenser.dm new file mode 100644 index 0000000..92435da --- /dev/null +++ b/code/game/machinery/pipe/pipe_dispenser.dm @@ -0,0 +1,253 @@ +/obj/machinery/pipedispenser + name = "pipe dispenser" + icon = 'icons/obj/stationobjs.dmi' + icon_state = "pipe_d" + density = 1 + anchored = 1 + var/wait = 0 + +/obj/machinery/pipedispenser/attack_paw(mob/user) + return src.attack_hand(user) + +/obj/machinery/pipedispenser/attack_hand(mob/user) + if(..()) + return 1 + var/dat = {" +Regular pipes:
            +Pipe
            +Bent Pipe
            +Manifold
            +4-Way Manifold
            +Manual Valve
            +Digital Valve
            +Devices:
            +Connector
            +Vent
            +Gas Pump
            +Passive Gate
            +Volume Pump
            +Scrubber
            +Meter
            +Gas Filter
            +Gas Mixer
            +Heat exchange:
            +Pipe
            +Bent Pipe
            +Manifold
            +4-Way Manifold
            +Junction
            +Heat Exchanger
            +"} + + + user << browse("[src][dat]", "window=pipedispenser") + onclose(user, "pipedispenser") + return + +/obj/machinery/pipedispenser/Topic(href, href_list) + if(..()) + return 1 + if(!anchored|| !usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr)) + usr << browse(null, "window=pipedispenser") + return 1 + usr.set_machine(src) + src.add_fingerprint(usr) + if(href_list["make"]) + if(!wait) + var/p_type = text2path(href_list["make"]) + var/p_dir = text2num(href_list["dir"]) + var/obj/item/pipe/P = new (src.loc, pipe_type=p_type, dir=p_dir) + P.add_fingerprint(usr) + wait = 1 + spawn(10) + wait = 0 + if(href_list["makemeter"]) + if(!wait) + new /obj/item/pipe_meter(src.loc) + wait = 1 + spawn(15) + wait = 0 + return + +/obj/machinery/pipedispenser/attackby(obj/item/W, mob/user, params) + add_fingerprint(user) + if (istype(W, /obj/item/pipe) || istype(W, /obj/item/pipe_meter)) + usr << "You put [W] back into [src]." + if(!user.drop_item()) + return + qdel(W) + return + else if (istype(W, /obj/item/weapon/wrench)) + if (!anchored && !isinspace()) + playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + user << "You begin to fasten \the [src] to the floor..." + if (do_after(user, 40/W.toolspeed, target = src)) + add_fingerprint(user) + user.visible_message( \ + "[user] fastens \the [src].", \ + "You fasten \the [src]. Now it can dispense pipes.", \ + "You hear ratchet.") + anchored = 1 + stat &= MAINT + if (usr.machine==src) + usr << browse(null, "window=pipedispenser") + else if(anchored) + playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + user << "You begin to unfasten \the [src] from the floor..." + if (do_after(user, 20/W.toolspeed, target = src)) + add_fingerprint(user) + user.visible_message( \ + "[user] unfastens \the [src].", \ + "You unfasten \the [src]. Now it can be pulled somewhere else.", \ + "You hear ratchet.") + anchored = 0 + stat |= ~MAINT + power_change() + else + return ..() + + +/obj/machinery/pipedispenser/disposal + name = "disposal pipe dispenser" + icon = 'icons/obj/stationobjs.dmi' + icon_state = "pipe_d" + density = 1 + anchored = 1 + +/* +//Allow you to push disposal pipes into it (for those with density 1) +/obj/machinery/pipedispenser/disposal/Crossed(var/obj/structure/disposalconstruct/pipe as obj) + if(istype(pipe) && !pipe.anchored) + qdel(pipe) + +Nah +*/ + +//Allow you to drag-drop disposal pipes and transit tubes into it +/obj/machinery/pipedispenser/disposal/MouseDrop_T(obj/structure/pipe, mob/usr) + if(!usr.canmove || usr.stat || usr.restrained()) + return + + if (!istype(pipe, /obj/structure/disposalconstruct) && !istype(pipe, /obj/structure/c_transit_tube) && !istype(pipe, /obj/structure/c_transit_tube_pod)) + return + + if (get_dist(usr, src) > 1 || get_dist(src,pipe) > 1 ) + return + + if (pipe.anchored) + return + + qdel(pipe) + +/obj/machinery/pipedispenser/disposal/attack_hand(mob/user) + if(..()) + return 1 + + var/dat = {"Disposal Pipes

            +Pipe
            +Bent Pipe
            +Junction
            +Y-Junction
            +Trunk
            +Bin
            +Outlet
            +Chute
            +Sort Junction
            +"} + + user << browse("[src][dat]", "window=pipedispenser") + return + + +/obj/machinery/pipedispenser/disposal/Topic(href, href_list) + if(..()) + return 1 + usr.set_machine(src) + src.add_fingerprint(usr) + if(href_list["dmake"]) + if(!wait) + var/p_type = text2num(href_list["dmake"]) + var/obj/structure/disposalconstruct/C = new (src.loc,p_type) + + if(!C.can_place()) + usr << "There's not enough room to build that here!" + qdel(C) + return + + C.add_fingerprint(usr) + C.update_icon() + wait = 1 + spawn(15) + wait = 0 + return + +//transit tube dispenser +//inherit disposal for the dragging proc +/obj/machinery/pipedispenser/disposal/transit_tube + name = "transit tube dispenser" + icon = 'icons/obj/stationobjs.dmi' + icon_state = "pipe_d" + density = 1 + anchored = 1 + +/obj/machinery/pipedispenser/disposal/transit_tube/attack_hand(mob/user) + if(..()) + return 1 + + var/dat = {"Transit Tubes:
            +Straight Tube
            +Straight Tube with Crossing
            +Curved Tube
            +Diagonal Tube
            +Junction
            +Station Equipment:
            +Through Tube Station
            +Terminus Tube Station
            +Tube Blocker
            +Transit Tube Pod
            +"} + + user << browse("[src][dat]", "window=pipedispenser") + return + + +/obj/machinery/pipedispenser/disposal/transit_tube/Topic(href, href_list) + if(..()) + return 1 + usr.set_machine(src) + src.add_fingerprint(usr) + if(!wait) + if(href_list["tube"]) + var/tube_type = text2num(href_list["tube"]) + if(tube_type <= 4) + var/obj/structure/c_transit_tube/C = new/obj/structure/c_transit_tube(src.loc) + switch(tube_type) + if(0) + C.icon_state = "E-W" + if(1) + C.icon_state = "E-W-Pass" + if(2) + C.icon_state = "S-NE" + if(3) + C.icon_state = "NE-SW" + if(4) + C.icon_state = "W-NE-SE" + C.add_fingerprint(usr) + else + switch(tube_type) + if(5) + var/obj/structure/c_transit_tube/station/C = new/obj/structure/c_transit_tube/station(src.loc) + C.add_fingerprint(usr) + if(6) + var/obj/structure/c_transit_tube/station/reverse/C = new/obj/structure/c_transit_tube/station/reverse(src.loc) + C.add_fingerprint(usr) + if(7) + var/obj/structure/c_transit_tube/station/block/C = new/obj/structure/c_transit_tube/station/block(src.loc) + C.add_fingerprint(usr) + if(8) + var/obj/structure/c_transit_tube_pod/C = new/obj/structure/c_transit_tube_pod(src.loc) + C.add_fingerprint(usr) + wait = 1 + spawn(15) + wait = 0 + return diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm new file mode 100644 index 0000000..1b7695f --- /dev/null +++ b/code/game/machinery/porta_turret/portable_turret.dm @@ -0,0 +1,823 @@ +/obj/machinery/porta_turret + name = "turret" + icon = 'icons/obj/turrets.dmi' + icon_state = "grey_target_prism" + anchored = 1 + layer = OBJ_LAYER + invisibility = INVISIBILITY_OBSERVER //the turret is invisible if it's inside its cover + density = 1 + use_power = 1 //this turret uses and requires power + idle_power_usage = 50 //when inactive, this turret takes up constant 50 Equipment power + active_power_usage = 300 //when active, this turret takes up constant 300 Equipment power + req_access = list(access_security) + power_channel = EQUIP //drains power from the EQUIPMENT channel + + var/base_icon_state = "grey" + var/active_state = "Taser" // "Taser"/"Laser/"Bullet" ,blue/red/no glow on active turret + var/off_state = "Off" + + var/emp_vunerable = 1 // Can be empd + + var/scan_range = 7 + var/atom/base = null //for turrets inside other objects + + var/lasercolor = "" //Something to do with lasertag turrets, blame Sieve for not adding a comment. + var/raised = 0 //if the turret cover is "open" and the turret is raised + var/raising= 0 //if the turret is currently opening or closing its cover + obj_integrity = 160 //the turret's health + max_integrity = 160 + integrity_failure = 80 + armor = list(melee = 50, bullet = 30, laser = 30, energy = 30, bomb = 30, bio = 0, rad = 0, fire = 90, acid = 90) + + var/locked = 1 //if the turret's behaviour control access is locked + var/controllock = 0 //if the turret responds to control panels + + var/installation = /obj/item/weapon/gun/energy/gun/turret //the type of weapon installed + var/gun_charge = 0 //the charge of the gun inserted + var/projectile = null //holder for bullettype + var/eprojectile = null //holder for the shot when emagged + var/reqpower = 500 //holder for power needed + var/egun = null //holder to handle certain guns switching bullettypes + var/always_up = 0 //Will stay active + var/has_cover = 1 //Hides the cover + + var/obj/machinery/porta_turret_cover/cover = null //the cover that is covering this turret + var/last_fired = 0 //world.time the turret last fired + var/shot_delay = 15 //ticks until next shot (1.5 ?) + + var/check_records = 1 //checks if it can use the security records + var/criminals = 1 //checks if it can shoot people on arrest + var/auth_weapons = 0 //checks if it can shoot people that have a weapon they aren't authorized to have + var/stun_all = 0 //if this is active, the turret shoots everything that isn't security or head of staff + var/check_anomalies = 1 //checks if it can shoot at unidentified lifeforms (ie xenos) + + var/attacked = 0 //if set to 1, the turret gets pissed off and shoots at people nearby (unless they have sec access!) + + var/on = 1 //determines if the turret is on + var/disabled = 0 + + var/shot_sound //what sound should play when the turret fires + var/eshot_sound //what sound should play when the emagged turret fires + + var/faction = "neutral" + + var/datum/effect_system/spark_spread/spark_system //the spark system, used for generating... sparks? + +/obj/machinery/porta_turret/New() + ..() + if(!base) + base = src + icon_state = "[base_icon_state][off_state]" + //Sets up a spark system + spark_system = new /datum/effect_system/spark_spread + spark_system.set_up(5, 0, src) + spark_system.attach(src) + + if(has_cover) + cover = new /obj/machinery/porta_turret_cover(loc) + cover.parent_turret = src + setup() + if(!has_cover) + popUp() + + +/obj/machinery/porta_turret/proc/get_base_icon() + if(installation) + switch(installation) + if(/obj/item/weapon/gun/energy/laser/bluetag) + return "blue" + if(/obj/item/weapon/gun/energy/laser/redtag) + return "red" + return "grey" + + +/obj/machinery/porta_turret/proc/setup() + + var/obj/item/weapon/gun/energy/E= new installation //All energy-based weapons are applicable + var/obj/item/ammo_casing/shottype = E.ammo_type[1] + + projectile = shottype.projectile_type + eprojectile = projectile + shot_sound = shottype.fire_sound + eshot_sound = shot_sound + + switch(E.type) + if(/obj/item/weapon/gun/energy/laser/bluetag) + eprojectile = /obj/item/projectile/beam/lasertag/bluetag + lasercolor = "b" + req_access = list(access_maint_tunnels, access_theatre) + check_records = 0 + criminals = 0 + auth_weapons = 1 + stun_all = 0 + check_anomalies = 0 + shot_delay = 30 + + if(/obj/item/weapon/gun/energy/laser/redtag) + eprojectile = /obj/item/projectile/beam/lasertag/redtag + lasercolor = "r" + req_access = list(access_maint_tunnels, access_theatre) + check_records = 0 + criminals = 0 + auth_weapons = 1 + stun_all = 0 + check_anomalies = 0 + shot_delay = 30 + active_state = "Laser" + + if(/obj/item/weapon/gun/energy/laser/practice) + active_state = "Laser" + eprojectile = /obj/item/projectile/beam + + if(/obj/item/weapon/gun/energy/laser/retro) + active_state = "Laser" + + if(/obj/item/weapon/gun/energy/laser/captain) + active_state = "Laser" + + if(/obj/item/weapon/gun/energy/lasercannon) + active_state = "Laser" + + if(/obj/item/weapon/gun/energy/gun/advtaser) + eprojectile = /obj/item/projectile/beam + eshot_sound = 'sound/weapons/Laser.ogg' + + if(/obj/item/weapon/gun/energy/gun) + eprojectile = /obj/item/projectile/beam //If it has, going to kill mode + eshot_sound = 'sound/weapons/Laser.ogg' + egun = 1 + + if(/obj/item/weapon/gun/energy/gun/nuclear) + eprojectile = /obj/item/projectile/beam //If it has, going to kill mode + eshot_sound = 'sound/weapons/Laser.ogg' + egun = 1 + + if(/obj/item/weapon/gun/energy/gun/turret) + eprojectile = /obj/item/projectile/beam //If it has, going to copypaste mode + eshot_sound = 'sound/weapons/Laser.ogg' + egun = 1 + + base_icon_state = get_base_icon() + +/obj/machinery/porta_turret/Destroy() + //deletes its own cover with it + if(cover) + qdel(cover) + cover = null + return ..() + + +/obj/machinery/porta_turret/attack_ai(mob/user) + return attack_hand(user) + + +/obj/machinery/porta_turret/attack_hand(mob/user) + . = ..() + if(.) + return + var/dat + + //The browse() text, similar to ED-209s and beepskies. + if(!lasercolor) //Lasertag turrets have less options + dat += text({" + Automatic Portable Turret Installation

            + Status: []
            + Behaviour controls are [locked ? "locked" : "unlocked"]"}, + + "[on ? "On" : "Off"]" ) + + if(!locked) + dat += text({"
            + Check for Weapon Authorization: []
            + Check Security Records: []
            + Neutralize Identified Criminals: []
            + Neutralize All Non-Security and Non-Command Personnel: []
            + Neutralize All Unidentified Life Signs: []
            "}, + + "[auth_weapons ? "Yes" : "No"]", + "[check_records ? "Yes" : "No"]", + "[criminals ? "Yes" : "No"]", + "[stun_all ? "Yes" : "No"]", + "[check_anomalies ? "Yes" : "No"]" ) + else + if(ishuman(user)) + var/mob/living/carbon/human/H = user + if(lasercolor == "b" && istype(H.wear_suit, /obj/item/clothing/suit/redtag)) + return + if(lasercolor == "r" && istype(H.wear_suit, /obj/item/clothing/suit/bluetag)) + return + dat += text({" + Automatic Portable Turret Installation

            + Status: []
            "}, + + "[on ? "On" : "Off"]" ) + + + user << browse("Automatic Portable Turret Installation[dat]", "window=autosec") + onclose(user, "autosec") + return + +/obj/machinery/porta_turret/Topic(href, href_list) + if(..()) + return + usr.set_machine(src) + add_fingerprint(usr) + if(href_list["power"] && !locked) + if(anchored) //you can't turn a turret on/off if it's not anchored/secured + on = !on //toggle on/off + else + usr << "It has to be secured first!" + + updateUsrDialog() + return + + switch(href_list["operation"]) //toggles customizable behavioural protocols + if("authweapon") + auth_weapons = !auth_weapons + if("checkrecords") + check_records = !check_records + if("shootcrooks") + criminals = !criminals + if("shootall") + stun_all = !stun_all + if("checkxenos") + check_anomalies = !check_anomalies + updateUsrDialog() + + +/obj/machinery/porta_turret/power_change() + + if(!anchored) + icon_state = "turretCover" + return + if(stat & BROKEN) + icon_state = "[base_icon_state]Broken" + else + if( powered() ) + if(on) + icon_state = "[base_icon_state][active_state]" + else + icon_state = "[base_icon_state][off_state]" + stat &= ~NOPOWER + else + spawn(rand(0, 15)) + icon_state = "[base_icon_state][off_state]" + stat |= NOPOWER + + + +/obj/machinery/porta_turret/attackby(obj/item/I, mob/user, params) + if(stat & BROKEN) + if(istype(I, /obj/item/weapon/crowbar)) + //If the turret is destroyed, you can remove it with a crowbar to + //try and salvage its components + user << "You begin prying the metal coverings off..." + if(do_after(user, 20/I.toolspeed, target = src)) + if(prob(70)) + user << "You remove the turret and salvage some components." + if(installation) + var/obj/item/weapon/gun/energy/Gun = new installation(loc) + Gun.power_supply.charge = gun_charge + Gun.update_icon() + lasercolor = null + if(prob(50)) + new /obj/item/stack/sheet/metal(loc, rand(1,4)) + if(prob(50)) + new /obj/item/device/assembly/prox_sensor(loc) + else + user << "You remove the turret but did not manage to salvage anything." + qdel(src) + + else if((istype(I, /obj/item/weapon/wrench)) && (!on)) + if(raised) return + //This code handles moving the turret around. After all, it's a portable turret! + if(!anchored && !isinspace()) + anchored = 1 + invisibility = INVISIBILITY_OBSERVER + icon_state = "[base_icon_state][off_state]" + user << "You secure the exterior bolts on the turret." + if(has_cover) + cover = new /obj/machinery/porta_turret_cover(loc) //create a new turret. While this is handled in process(), this is to workaround a bug where the turret becomes invisible for a split second + cover.parent_turret = src //make the cover's parent src + else if(anchored) + anchored = 0 + user << "You unsecure the exterior bolts on the turret." + icon_state = "turretCover" + invisibility = 0 + qdel(cover) //deletes the cover, and the turret instance itself becomes its own cover. + + else if(I.GetID()) + //Behavior lock/unlock mangement + if(allowed(user)) + locked = !locked + user << "Controls are now [locked ? "locked" : "unlocked"]." + else + user << "Access denied." + else if(istype(I,/obj/item/device/multitool) && !locked) + var/obj/item/device/multitool/M = I + M.buffer = src + user << "You add [src] to multitool buffer." + else + return ..() + +/obj/machinery/porta_turret/emag_act(mob/user) + if(!emagged) + user << "You short out [src]'s threat assessment circuits." + visible_message("[src] hums oddly...") + emagged = 1 + active_state = "Laser" + controllock = 1 + on = 0 //turns off the turret temporarily + sleep(60) //6 seconds for the traitor to gtfo of the area before the turret decides to ruin his shit + on = 1 //turns it back on. The cover popUp() popDown() are automatically called in process(), no need to define it here + +/obj/machinery/porta_turret/bullet_act(obj/item/projectile/P) + . = ..() + if(!disabled) + if(lasercolor == "b") + if(istype(P, /obj/item/projectile/beam/lasertag/redtag)) + disabled = 1 + spawn(100) + disabled = 0 + else if(lasercolor == "r") + if(istype(P, /obj/item/projectile/beam/lasertag/bluetag)) + disabled = 1 + spawn(100) + disabled = 0 + + +/obj/machinery/porta_turret/emp_act(severity) + if(on && emp_vunerable) + //if the turret is on, the EMP no matter how severe disables the turret for a while + //and scrambles its settings, with a slight chance of having an emag effect + check_records = pick(0, 1) + criminals = pick(0, 1) + auth_weapons = pick(0, 1) + stun_all = pick(0, 0, 0, 0, 1) //stun_all is a pretty big deal, so it's least likely to get turned on + + on=0 + spawn(rand(60,600)) + if(!on) + on=1 + + ..() + +/obj/machinery/porta_turret/take_damage(damage, damage_type = BRUTE, damage_flag = 0, sound_effect = 1) + . = ..() + if(.) //damage received + if(prob(30)) + spark_system.start() + if(on && !attacked && !emagged) + attacked = 1 + spawn(60) + attacked = 0 + +/obj/machinery/porta_turret/deconstruct(disassembled = TRUE) + qdel(src) + +/obj/machinery/porta_turret/obj_break(damage_flag) + if(!(flags & NODECONSTRUCT) && !(stat & BROKEN)) + stat |= BROKEN //enables the BROKEN bit + icon_state = "[base_icon_state]Broken" + invisibility = 0 + spark_system.start() //creates some sparks because they look cool + qdel(cover) //deletes the cover - no need on keeping it there! + + + +/obj/machinery/porta_turret/process() + //the main machinery process + + set background = BACKGROUND_ENABLED + + if(cover == null && anchored) //if it has no cover and is anchored + if(stat & BROKEN) //if the turret is borked + qdel(cover) //delete its cover, assuming it has one. Workaround for a pesky little bug + else + if(has_cover) + cover = new /obj/machinery/porta_turret_cover(loc) //if the turret has no cover and is anchored, give it a cover + cover.parent_turret = src //assign the cover its parent_turret, which would be this (src) + + if(stat & (NOPOWER|BROKEN)) + if(!always_up) + //if the turret has no power or is broken, make the turret pop down if it hasn't already + popDown() + return + + if(!on) + if(!always_up) + //if the turret is off, make it pop down + popDown() + return + + var/list/targets = calculate_targets() + + if(!tryToShootAt(targets)) + if(!always_up) + popDown() // no valid targets, close the cover + +/obj/machinery/porta_turret/proc/calculate_targets() + var/list/targets = list() + var/turretview = view(scan_range, base) + for(var/A in turretview) + if(check_anomalies)//if it's set to check for simple animals + if(istype(A, /mob/living/simple_animal)) + var/mob/living/simple_animal/SA = A + if(SA.stat || in_faction(SA)) //don't target if dead or in faction + continue + targets += SA + + if(istype(A, /mob/living/carbon)) + var/mob/living/carbon/C = A + //If not emagged, only target non downed carbons + if(!emagged && (C.stat || C.handcuffed || C.lying)) + continue + + //If emagged, target all but dead carbons + if(emagged && C.stat == DEAD) + continue + + //if the target is a human and not in our faction, analyze threat level + if(ishuman(C) && !in_faction(C)) + if(assess_perp(C) >= 4) + targets += C + + else if(check_anomalies) //non humans who are not simple animals (xenos etc) + if(!in_faction(C)) + targets += C + + if(istype(A, /obj/mecha/)) + var/obj/mecha/M = A + //If there is a user and they're not in our faction + if(M.occupant && !in_faction(M.occupant)) + if(assess_perp(M.occupant) >= 4) + targets += M + + return targets + +/obj/machinery/porta_turret/proc/tryToShootAt(list/atom/movable/targets) + while(targets.len > 0) + var/atom/movable/M = pick(targets) + targets -= M + if(target(M)) + return 1 + + +/obj/machinery/porta_turret/proc/popUp() //pops the turret up + if(disabled || !anchored) + return + if(raising || raised) + return + if(stat & BROKEN) + return + invisibility = 0 + raising = 1 + if(cover) + flick("popup", cover) + sleep(10) + raising = 0 + if(cover) + cover.icon_state = "openTurretCover" + raised = 1 + layer = MOB_LAYER + +/obj/machinery/porta_turret/proc/popDown() //pops the turret down + if(disabled) + return + if(raising || !raised) + return + if(stat & BROKEN) + return + layer = OBJ_LAYER + raising = 1 + if(cover) + flick("popdown", cover) + sleep(10) + raising = 0 + if(cover) + cover.icon_state = "turretCover" + raised = 0 + invisibility = 2 + icon_state = "[base_icon_state][off_state]" + +/obj/machinery/porta_turret/proc/assess_perp(mob/living/carbon/human/perp) + var/threatcount = 0 //the integer returned + + if(emagged) + return 10 //if emagged, always return 10. + + if((stun_all || attacked) && !allowed(perp)) + //if the turret has been attacked or is angry, target all non-sec people + if(!allowed(perp)) + return 10 + + if(auth_weapons) //check for weapon authorization + if(isnull(perp.wear_id) || istype(perp.wear_id.GetID(), /obj/item/weapon/card/id/syndicate)) + + if(allowed(perp) && !lasercolor) //if the perp has security access, return 0 + return 0 + + if(perp.is_holding_item_of_type(/obj/item/weapon/gun) || perp.is_holding_item_of_type(/obj/item/weapon/melee/baton)) + threatcount += 4 + + if(istype(perp.belt, /obj/item/weapon/gun) || istype(perp.belt, /obj/item/weapon/melee/baton)) + threatcount += 2 + + if(lasercolor == "b") //Lasertag turrets target the opposing team, how great is that? -Sieve + threatcount = 0 //But does not target anyone else + if(istype(perp.wear_suit, /obj/item/clothing/suit/redtag)) + threatcount += 4 + if(perp.is_holding_item_of_type(/obj/item/weapon/gun/energy/laser/redtag)) + threatcount += 4 + if(istype(perp.belt, /obj/item/weapon/gun/energy/laser/redtag)) + threatcount += 2 + + if(lasercolor == "r") + threatcount = 0 + if(istype(perp.wear_suit, /obj/item/clothing/suit/bluetag)) + threatcount += 4 + if(perp.is_holding_item_of_type(/obj/item/weapon/gun/energy/laser/bluetag)) + threatcount += 4 + if(istype(perp.belt, /obj/item/weapon/gun/energy/laser/bluetag)) + threatcount += 2 + + if(check_records) //if the turret can check the records, check if they are set to *Arrest* on records + var/perpname = perp.get_face_name(perp.get_id_name()) + var/datum/data/record/R = find_record("name", perpname, data_core.security) + if(!R || (R.fields["criminal"] == "*Arrest*")) + threatcount += 4 + + return threatcount + + +/obj/machinery/porta_turret/proc/in_faction(mob/target) + if(!(faction in target.faction)) + return 0 + return 1 + +/obj/machinery/porta_turret/proc/target(atom/movable/target) + if(disabled) + return + if(target) + spawn() + popUp() //pop the turret up if it's not already up. + setDir(get_dir(base, target) )//even if you can't shoot, follow the target + spawn() + shootAt(target) + return 1 + return + +/obj/machinery/porta_turret/proc/shootAt(atom/movable/target) + if(!raised) //the turret has to be raised in order to fire - makes sense, right? + return + + if(!emagged) //if it hasn't been emagged, cooldown before shooting again + if(last_fired + shot_delay > world.time) + return + last_fired = world.time + + var/turf/T = get_turf(src) + var/turf/U = get_turf(target) + if(!istype(T) || !istype(U)) + return + + icon_state = "[base_icon_state][active_state]" + var/obj/item/projectile/A + //any emagged turrets drains 2x power and uses a different projectile? + if(!emagged) + use_power(reqpower) + A = new projectile(T) + playsound(loc, shot_sound, 75, 1) + else + use_power(reqpower * 2) + A = new eprojectile(T) + playsound(loc, eshot_sound, 75, 1) + + //Shooting Code: + A.original = target + A.current = T + A.yo = U.y - T.y + A.xo = U.x - T.x + A.fire() + return A + + +/obj/machinery/porta_turret/proc/setState(on, emagged) + if(controllock) + return + src.on = on + src.emagged = emagged + if(emagged) + src.active_state = "Laser" + src.power_change() + + + +/obj/machinery/porta_turret/stationary + emagged = 1 + +/obj/machinery/porta_turret/stationary/New() + installation = new/obj/item/weapon/gun/energy/laser(loc) + ..() + + +/obj/machinery/porta_turret/syndicate + installation = null + always_up = 1 + use_power = 0 + has_cover = 0 + scan_range = 9 + projectile = /obj/item/projectile/bullet + eprojectile = /obj/item/projectile/bullet + shot_sound = 'sound/weapons/Gunshot.ogg' + eshot_sound = 'sound/weapons/Gunshot.ogg' + base_icon_state = "syndie" + active_state = "Bullet" + faction = "syndicate" + emp_vunerable = 0 + +/obj/machinery/porta_turret/syndicate/setup() + return + +/obj/machinery/porta_turret/syndicate/assess_perp(mob/living/carbon/human/perp) + return 10 //Syndicate turrets shoot everything not in their faction + +/obj/machinery/porta_turret/syndicate/pod + obj_integrity = 40 + projectile = /obj/item/projectile/bullet/weakbullet3 + eprojectile = /obj/item/projectile/bullet/weakbullet3 + +/obj/machinery/porta_turret/ai + faction = "silicon" + +/obj/machinery/porta_turret/ai/assess_perp(mob/living/carbon/human/perp) + return 10 //AI turrets shoot at everything not in their faction + +//////////////////////// +//Turret Control Panel// +//////////////////////// + +/obj/machinery/turretid + name = "turret control panel" + desc = "Used to control a room's automated defenses." + icon = 'icons/obj/machines/turret_control.dmi' + icon_state = "control_standby" + anchored = 1 + density = 0 + var/enabled = 1 + var/lethal = 0 + var/locked = 1 + var/control_area = null //can be area name, path or nothing. + var/ailock = 0 // AI cannot use this + req_access = list(access_ai_upload) + var/list/obj/machinery/porta_turret/turrets = list() + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF + +/obj/machinery/turretid/New(loc, ndir = 0, built = 0) + ..() + if(built) + setDir(ndir) + locked = 0 + pixel_x = (dir & 3)? 0 : (dir == 4 ? -24 : 24) + pixel_y = (dir & 3)? (dir ==1 ? -24 : 24) : 0 + power_change() //Checks power and initial settings + +/obj/machinery/turretid/initialize() //map-placed turrets autolink turrets + if(control_area && istext(control_area)) + for(var/V in sortedAreas) + var/area/A = V + if(A.name == control_area) + control_area = A + break + + if(!control_area) + var/area/CA = get_area(src) + if(CA.master && CA.master != CA) + control_area = CA.master + else + control_area = CA + + for(var/obj/machinery/porta_turret/T in control_area) + turrets |= T + +/obj/machinery/turretid/attackby(obj/item/I, mob/user, params) + if(stat & BROKEN) return + + if (istype(I,/obj/item/device/multitool)) + var/obj/item/device/multitool/M = I + if(M.buffer && istype(M.buffer,/obj/machinery/porta_turret)) + turrets |= M.buffer + user << "You link \the [M.buffer] with \the [src]" + return + + if (issilicon(user)) + return src.attack_hand(user) + + if( get_dist(src, user) == 0 ) // trying to unlock the interface + if (src.allowed(usr)) + if(emagged) + user << "The turret control is unresponsive." + return + + locked = !locked + user << "You [ locked ? "lock" : "unlock"] the panel." + if (locked) + if (user.machine==src) + user.unset_machine() + user << browse(null, "window=turretid") + else + if (user.machine==src) + src.attack_hand(user) + else + user << "Access denied." + +/obj/machinery/turretid/emag_act(mob/user) + if(!emagged) + user << "You short out the turret controls' access analysis module." + emagged = 1 + locked = 0 + if(user && user.machine==src) + src.attack_hand(user) + +/obj/machinery/turretid/attack_ai(mob/user) + if(!ailock || IsAdminGhost(user)) + return attack_hand(user) + else + user << "There seems to be a firewall preventing you from accessing this device." + +/obj/machinery/turretid/attack_hand(mob/user as mob) + if ( get_dist(src, user) > 0 ) + if ( !(issilicon(user) || IsAdminGhost(user)) ) + user << "You are too far away." + user.unset_machine() + user << browse(null, "window=turretid") + return + + user.set_machine(src) + var/area/area = get_area(src) + var/t = "" + + if(src.locked && !(issilicon(user) || IsAdminGhost(user))) + t += "
            Swipe ID card to unlock interface
            " + else + if(!issilicon(user) && !IsAdminGhost(user)) + t += "
            Swipe ID card to lock interface
            " + t += text("Turrets [] - []?
            \n", src.enabled?"activated":"deactivated", src, src.enabled?"Disable":"Enable") + t += text("Currently set for [] - Change to []?
            \n", src.lethal?"lethal":"stun repeatedly", src, src.lethal?"Stun repeatedly":"Lethal") + + //user << browse(t, "window=turretid") + //onclose(user, "turretid") + var/datum/browser/popup = new(user, "turretid", "Turret Control Panel ([area.name])") + popup.set_content(t) + popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) + popup.open() + +/obj/machinery/turretid/Topic(href, href_list) + if(..()) + return + if (src.locked) + if(!(issilicon(usr) || IsAdminGhost(usr))) + usr << "Control panel is locked!" + return + if (href_list["toggleOn"]) + toggle_on() + else if (href_list["toggleLethal"]) + toggle_lethal() + src.attack_hand(usr) + +/obj/machinery/turretid/proc/toggle_lethal() + lethal = !lethal + updateTurrets() + +/obj/machinery/turretid/proc/toggle_on() + enabled = !enabled + updateTurrets() + +/obj/machinery/turretid/proc/updateTurrets() + for (var/obj/machinery/porta_turret/aTurret in turrets) + aTurret.setState(enabled, lethal) + src.update_icon() + +/obj/machinery/turretid/power_change() + ..() + update_icon() + +/obj/machinery/turretid/update_icon() + ..() + if(stat & NOPOWER) + icon_state = "control_off" + else if (enabled) + if (lethal) + icon_state = "control_kill" + else + icon_state = "control_stun" + else + icon_state = "control_standby" + +/obj/item/wallframe/turret_control + name = "turret control frame" + desc = "Used for building turret control panels" + icon = 'icons/obj/apc_repair.dmi' + icon_state = "apc_frame" + result_path = /obj/machinery/turretid + materials = list(MAT_METAL=MINERAL_MATERIAL_AMOUNT) diff --git a/code/game/machinery/porta_turret/portable_turret_construct.dm b/code/game/machinery/porta_turret/portable_turret_construct.dm new file mode 100644 index 0000000..5ac7b22 --- /dev/null +++ b/code/game/machinery/porta_turret/portable_turret_construct.dm @@ -0,0 +1,198 @@ +#define PTURRET_UNSECURED 0 +#define PTURRET_BOLTED 1 +#define PTURRET_START_INTERNAL_ARMOUR 2 +#define PTURRET_INTERNAL_ARMOUR_ON 3 +#define PTURRET_GUN_EQUIPPED 4 +#define PTURRET_SENSORS_ON 5 +#define PTURRET_CLOSED 6 +#define PTURRET_START_EXTERNAL_ARMOUR 7 +#define PTURRET_EXTERNAL_ARMOUR_ON 8 +/obj/machinery/porta_turret_construct + name = "turret frame" + icon = 'icons/obj/turrets.dmi' + icon_state = "turret_frame" + density = 1 + var/build_step = PTURRET_UNSECURED //the current step in the building process + var/finish_name = "turret" //the name applied to the product turret + var/installation = null //the gun type installed + var/gun_charge = 0 //the gun charge of the gun type installed + + +/obj/machinery/porta_turret_construct/attackby(obj/item/I, mob/user, params) + //this is a bit unwieldy but self-explanatory + switch(build_step) + if(PTURRET_UNSECURED) //first step + if(istype(I, /obj/item/weapon/wrench) && !anchored) + playsound(loc, I.usesound, 100, 1) + user << "You secure the external bolts." + anchored = 1 + build_step = PTURRET_BOLTED + return + + else if(istype(I, /obj/item/weapon/crowbar) && !anchored) + playsound(loc, I.usesound, 75, 1) + user << "You dismantle the turret construction." + new /obj/item/stack/sheet/metal( loc, 5) + qdel(src) + return + + if(PTURRET_BOLTED) + if(istype(I, /obj/item/stack/sheet/metal)) + var/obj/item/stack/sheet/metal/M = I + if(M.use(2)) + user << "You add some metal armor to the interior frame." + build_step = PTURRET_START_INTERNAL_ARMOUR + icon_state = "turret_frame2" + else + user << "You need two sheets of metal to continue construction!" + return + + else if(istype(I, /obj/item/weapon/wrench)) + playsound(loc, I.usesound, 75, 1) + user << "You unfasten the external bolts." + anchored = 0 + build_step = PTURRET_UNSECURED + return + + + if(PTURRET_START_INTERNAL_ARMOUR) + if(istype(I, /obj/item/weapon/wrench)) + playsound(loc, I.usesound, 100, 1) + user << "You bolt the metal armor into place." + build_step = PTURRET_INTERNAL_ARMOUR_ON + return + + else if(istype(I, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/WT = I + if(!WT.isOn()) + return + if(WT.get_fuel() < 5) //uses up 5 fuel. + user << "You need more fuel to complete this task!" + return + + playsound(loc, pick('sound/items/Welder.ogg', 'sound/items/Welder2.ogg'), 50, 1) + user << "You start to remove the turret's interior metal armor..." + if(do_after(user, 20/I.toolspeed, target = src)) + if(!WT.isOn() || !WT.remove_fuel(5, user)) + return + build_step = PTURRET_BOLTED + user << "You remove the turret's interior metal armor." + new /obj/item/stack/sheet/metal( loc, 2) + return + + + if(PTURRET_INTERNAL_ARMOUR_ON) + if(istype(I, /obj/item/weapon/gun/energy)) //the gun installation part + var/obj/item/weapon/gun/energy/E = I + if(!user.drop_item()) + return + installation = I.type + gun_charge = E.power_supply.charge //the gun's charge is stored in gun_charge + user << "You add [I] to the turret." + build_step = PTURRET_GUN_EQUIPPED + qdel(I) + return + + else if(istype(I, /obj/item/weapon/wrench)) + playsound(loc, I.usesound, 100, 1) + user << "You remove the turret's metal armor bolts." + build_step = PTURRET_START_INTERNAL_ARMOUR + return + + if(PTURRET_GUN_EQUIPPED) + if(isprox(I)) + build_step = PTURRET_SENSORS_ON + if(!user.drop_item()) + return + user << "You add the proximity sensor to the turret." + qdel(I) + return + + + if(PTURRET_SENSORS_ON) + if(istype(I, /obj/item/weapon/screwdriver)) + playsound(loc, I.usesound, 100, 1) + build_step = PTURRET_CLOSED + user << "You close the internal access hatch." + return + + + if(PTURRET_CLOSED) + if(istype(I, /obj/item/stack/sheet/metal)) + var/obj/item/stack/sheet/metal/M = I + if(M.use(2)) + user << "You add some metal armor to the exterior frame." + build_step = PTURRET_START_EXTERNAL_ARMOUR + else + user << "You need two sheets of metal to continue construction!" + return + + else if(istype(I, /obj/item/weapon/screwdriver)) + playsound(loc, I.usesound, 100, 1) + build_step = PTURRET_SENSORS_ON + user << "You open the internal access hatch." + return + + if(PTURRET_START_EXTERNAL_ARMOUR) + if(istype(I, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/WT = I + if(!WT.isOn()) + return + if(WT.get_fuel() < 5) + user << "You need more fuel to complete this task!" + + playsound(loc, pick('sound/items/Welder.ogg', 'sound/items/Welder2.ogg'), 50, 1) + user << "You begin to weld the turret's armor down..." + if(do_after(user, 30/I.toolspeed, target = src)) + if(!WT.isOn() || !WT.remove_fuel(5, user)) + return + build_step = PTURRET_EXTERNAL_ARMOUR_ON + user << "You weld the turret's armor down." + + //The final step: create a full turret + var/obj/machinery/porta_turret/turret = new/obj/machinery/porta_turret(loc) + turret.name = finish_name + turret.installation = installation + turret.gun_charge = gun_charge + turret.setup() + + qdel(src) + + else if(istype(I, /obj/item/weapon/crowbar)) + playsound(loc, I.usesound, 75, 1) + user << "You pry off the turret's exterior armor." + new /obj/item/stack/sheet/metal(loc, 2) + build_step = PTURRET_CLOSED + return + + if(istype(I, /obj/item/weapon/pen)) //you can rename turrets like bots! + var/t = stripped_input(user, "Enter new turret name", name, finish_name) + if(!t) + return + if(!Adjacent(user)) + return + + finish_name = t + return + return ..() + + +/obj/machinery/porta_turret_construct/attack_hand(mob/user) + switch(build_step) + if(PTURRET_GUN_EQUIPPED) + build_step = PTURRET_INTERNAL_ARMOUR_ON + + var/obj/item/weapon/gun/energy/Gun = new installation(loc) + Gun.power_supply.charge = gun_charge + Gun.update_icon() + installation = null + gun_charge = 0 + user << "You remove [Gun] from the turret frame." + + if(PTURRET_SENSORS_ON) + user << "You remove the prox sensor from the turret frame." + new /obj/item/device/assembly/prox_sensor(loc) + build_step = PTURRET_GUN_EQUIPPED + +/obj/machinery/porta_turret_construct/attack_ai() + return diff --git a/code/game/machinery/porta_turret/portable_turret_cover.dm b/code/game/machinery/porta_turret/portable_turret_cover.dm new file mode 100644 index 0000000..4ecfb35 --- /dev/null +++ b/code/game/machinery/porta_turret/portable_turret_cover.dm @@ -0,0 +1,98 @@ + +/************************ +* PORTABLE TURRET COVER * +************************/ + +/obj/machinery/porta_turret_cover + name = "turret" + icon = 'icons/obj/turrets.dmi' + icon_state = "turretCover" + anchored = 1 + layer = HIGH_OBJ_LAYER + density = 0 + obj_integrity = 80 + max_integrity = 80 + var/obj/machinery/porta_turret/parent_turret = null + + +/obj/machinery/porta_turret_cover/Destroy() + if(parent_turret) + parent_turret.cover = null + parent_turret.invisibility = 0 + parent_turret = null + return ..() + +//The below code is pretty much just recoded from the initial turret object. It's necessary but uncommented because it's exactly the same! +//>necessary +//I'm not fixing it because i'm fucking bored of this code already, but someone should just reroute these to the parent turret's procs. + +/obj/machinery/porta_turret_cover/attack_ai(mob/user) + . = ..() + if(.) + return + + return parent_turret.attack_ai(user) + + +/obj/machinery/porta_turret_cover/attack_hand(mob/user) + . = ..() + if(.) + return + + return parent_turret.attack_hand(user) + + +/obj/machinery/porta_turret_cover/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/wrench) && !parent_turret.on) + if(parent_turret.raised) + return + + if(!parent_turret.anchored) + parent_turret.anchored = 1 + parent_turret.invisibility = INVISIBILITY_OBSERVER + parent_turret.icon_state = "grey_target_prism" + user << "You secure the exterior bolts on the turret." + else + parent_turret.anchored = 0 + user << "You unsecure the exterior bolts on the turret." + parent_turret.icon_state = "turretCover" + parent_turret.invisibility = 0 + qdel(src) + + else if(I.GetID()) + if(parent_turret.allowed(user)) + parent_turret.locked = !parent_turret.locked + user << "Controls are now [parent_turret.locked ? "locked" : "unlocked"]." + updateUsrDialog() + else + user << "Access denied." + else if(istype(I,/obj/item/device/multitool) && !parent_turret.locked) + var/obj/item/device/multitool/M = I + M.buffer = parent_turret + user << "You add [parent_turret] to multitool buffer." + else + return ..() + +/obj/machinery/porta_turret_cover/attacked_by(obj/item/I, mob/user) + parent_turret.attacked_by(I, user) + +/obj/machinery/porta_turret_cover/attack_alien(mob/living/carbon/alien/humanoid/user) + parent_turret.attack_alien(user) + +/obj/machinery/porta_turret_cover/attack_animal(mob/living/simple_animal/user) + parent_turret.attack_animal(user) + +/obj/machinery/porta_turret_cover/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0) + return parent_turret.attack_hulk(user) + +/obj/machinery/porta_turret_cover/can_be_overridden() + . = 0 + +/obj/machinery/porta_turret_cover/emag_act(mob/user) + if(!parent_turret.emagged) + user << "You short out [parent_turret]'s threat assessment circuits." + visible_message("[parent_turret] hums oddly...") + parent_turret.emagged = 1 + parent_turret.on = 0 + spawn(40) + parent_turret.on = 1 diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm new file mode 100644 index 0000000..4f3cc23 --- /dev/null +++ b/code/game/machinery/recharger.dm @@ -0,0 +1,177 @@ +/obj/machinery/recharger + name = "recharger" + icon = 'icons/obj/stationobjs.dmi' + icon_state = "recharger0" + desc = "A charging dock for energy based weaponry." + anchored = 1 + use_power = 1 + idle_power_usage = 4 + active_power_usage = 250 + var/obj/item/charging = null + var/list/allowed_devices = list(/obj/item/weapon/gun/energy,/obj/item/weapon/melee/baton,/obj/item/ammo_box/magazine/recharge,/obj/item/device/modular_computer) + var/recharge_coeff = 1 + +/obj/machinery/recharger/New() + ..() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/recharger(null) + B.apply_default_parts(src) + +/obj/item/weapon/circuitboard/machine/recharger + name = "circuit board (Weapon Recharger)" + build_path = /obj/machinery/recharger + origin_tech = "powerstorage=4;engineering=3;materials=4" + req_components = list(/obj/item/weapon/stock_parts/capacitor = 1) + +/obj/machinery/recharger/RefreshParts() + for(var/obj/item/weapon/stock_parts/capacitor/C in component_parts) + recharge_coeff = C.rating + +/obj/machinery/recharger/attackby(obj/item/weapon/G, mob/user, params) + if(istype(G, /obj/item/weapon/wrench)) + if(charging) + user << "Remove the charging item first!" + return + anchored = !anchored + power_change() + user << "You [anchored ? "attached" : "detached"] [src]." + playsound(loc, 'sound/items/Ratchet.ogg', 75, 1) + return + + var/allowed = is_type_in_list(G, allowed_devices) + + if(allowed) + if(anchored) + if(charging || panel_open) + return 1 + + //Checks to make sure he's not in space doing it, and that the area got proper power. + var/area/a = get_area(src) + if(!isarea(a) || a.power_equip == 0) + user << "[src] blinks red as you try to insert [G]." + return 1 + + if (istype(G, /obj/item/weapon/gun/energy)) + var/obj/item/weapon/gun/energy/gun = G + if(!gun.can_charge) + user << "Your gun has no external power connector." + return 1 + + if(!user.drop_item()) + return 1 + G.loc = src + charging = G + use_power = 2 + update_icon() + else + user << "[src] isn't connected to anything!" + return 1 + + if(anchored && !charging) + if(default_deconstruction_screwdriver(user, "rechargeropen", "recharger0", G)) + return + + if(panel_open && istype(G, /obj/item/weapon/crowbar)) + default_deconstruction_crowbar(G) + return + + if(exchange_parts(user, G)) + return + return ..() + +/obj/machinery/recharger/attack_hand(mob/user) + if(issilicon(user)) + return + + add_fingerprint(user) + if(charging) + charging.update_icon() + charging.loc = loc + user.put_in_hands(charging) + charging = null + use_power = 1 + update_icon() + +/obj/machinery/recharger/attack_paw(mob/user) + return attack_hand(user) + +/obj/machinery/recharger/attack_tk(mob/user) + if(charging) + charging.update_icon() + charging.loc = loc + charging = null + use_power = 1 + update_icon() + +/obj/machinery/recharger/process() + if(stat & (NOPOWER|BROKEN) || !anchored) + return + + var/using_power = 0 + if(charging) + if(istype(charging, /obj/item/weapon/gun/energy)) + var/obj/item/weapon/gun/energy/E = charging + if(E.power_supply.charge < E.power_supply.maxcharge) + E.power_supply.give(E.power_supply.chargerate * recharge_coeff) + use_power(250 * recharge_coeff) + using_power = 1 + + + if(istype(charging, /obj/item/weapon/melee/baton)) + var/obj/item/weapon/melee/baton/B = charging + if(B.bcell) + if(B.bcell.give(B.bcell.chargerate * recharge_coeff)) + use_power(200 * recharge_coeff) + using_power = 1 + + if(istype(charging, /obj/item/ammo_box/magazine/recharge)) + var/obj/item/ammo_box/magazine/recharge/R = charging + if(R.stored_ammo.len < R.max_ammo) + R.stored_ammo += new R.ammo_type(R) + use_power(200 * recharge_coeff) + using_power = 1 + + if(istype(charging, /obj/item/device/modular_computer)) + var/obj/item/device/modular_computer/C = charging + var/obj/item/weapon/computer_hardware/battery/battery_module = C.all_components[MC_CELL] + if(battery_module) + var/obj/item/weapon/computer_hardware/battery/B = battery_module + if(B.battery) + if(B.battery.charge < B.battery.maxcharge) + B.battery.give(B.battery.chargerate * recharge_coeff) + use_power(200 * recharge_coeff) + using_power = 1 + + update_icon(using_power) + +/obj/machinery/recharger/power_change() + ..() + update_icon() + +/obj/machinery/recharger/emp_act(severity) + if(!(stat & (NOPOWER|BROKEN)) && anchored) + if(istype(charging, /obj/item/weapon/gun/energy)) + var/obj/item/weapon/gun/energy/E = charging + if(E.power_supply) + E.power_supply.emp_act(severity) + + else if(istype(charging, /obj/item/weapon/melee/baton)) + var/obj/item/weapon/melee/baton/B = charging + if(B.bcell) + B.bcell.charge = 0 + ..() + + +/obj/machinery/recharger/update_icon(using_power = 0) //we have an update_icon() in addition to the stuff in process to make it feel a tiny bit snappier. + if(stat & (NOPOWER|BROKEN) || !anchored) + icon_state = "rechargeroff" + return + if(panel_open) + icon_state = "rechargeropen" + return + if(charging) + if(using_power) + icon_state = "recharger1" + else + icon_state = "recharger2" + return + icon_state = "recharger0" diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm new file mode 100644 index 0000000..dc1945d --- /dev/null +++ b/code/game/machinery/rechargestation.dm @@ -0,0 +1,139 @@ +/obj/machinery/recharge_station + name = "cyborg recharging station" + icon = 'icons/obj/objects.dmi' + icon_state = "borgcharger0" + density = 0 + anchored = 1 + use_power = 1 + idle_power_usage = 5 + active_power_usage = 1000 + req_access = list(access_robotics) + var/recharge_speed + var/repairs + state_open = 1 + +/obj/machinery/recharge_station/New() + ..() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/cyborgrecharger(null) + B.apply_default_parts(src) + update_icon() + +/obj/item/weapon/circuitboard/machine/cyborgrecharger + name = "circuit board (Cyborg Recharger)" + build_path = /obj/machinery/recharge_station + origin_tech = "powerstorage=3;engineering=3" + req_components = list( + /obj/item/weapon/stock_parts/capacitor = 2, + /obj/item/weapon/stock_parts/cell = 1, + /obj/item/weapon/stock_parts/manipulator = 1) + def_components = list( + /obj/item/weapon/stock_parts/cell = /obj/item/weapon/stock_parts/cell/high) + +/obj/machinery/recharge_station/RefreshParts() + recharge_speed = 0 + repairs = 0 + for(var/obj/item/weapon/stock_parts/capacitor/C in component_parts) + recharge_speed += C.rating * 100 + for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts) + repairs += M.rating - 1 + for(var/obj/item/weapon/stock_parts/cell/C in component_parts) + recharge_speed *= C.maxcharge / 10000 + +/obj/machinery/recharge_station/process() + if(!is_operational()) + return + + if(occupant) + process_occupant() + return 1 + +/obj/machinery/recharge_station/relaymove(mob/user) + if(user.stat) + return + open_machine() + +/obj/machinery/recharge_station/emp_act(severity) + if(!(stat & (BROKEN|NOPOWER))) + if(occupant) + occupant.emp_act(severity) + open_machine() + ..() + +/obj/machinery/recharge_station/attack_paw(mob/user) + return attack_hand(user) + +/obj/machinery/recharge_station/attack_ai(mob/user) + return attack_hand(user) + +/obj/machinery/recharge_station/attackby(obj/item/P, mob/user, params) + if(state_open) + if(default_deconstruction_screwdriver(user, "borgdecon2", "borgcharger0", P)) + return + + if(exchange_parts(user, P)) + return + + if(default_pry_open(P)) + return + + if(default_deconstruction_crowbar(P)) + return + return ..() + +/obj/machinery/recharge_station/attack_hand(mob/user) + if(..(user,1,set_machine = 0)) + return + + toggle_open() + add_fingerprint(user) + +/obj/machinery/recharge_station/proc/toggle_open() + if(state_open) + close_machine() + else + open_machine() + +/obj/machinery/recharge_station/open_machine() + ..() + use_power = 1 + +/obj/machinery/recharge_station/close_machine() + if(!panel_open) + for(var/mob/living/silicon/robot/R in loc) + R.forceMove(src) + occupant = R + use_power = 2 + add_fingerprint(R) + break + state_open = 0 + density = 1 + update_icon() + +/obj/machinery/recharge_station/update_icon() + if(is_operational()) + if(state_open) + icon_state = "borgcharger0" + else + icon_state = (occupant ? "borgcharger1" : "borgcharger2") + else + icon_state = (state_open ? "borgcharger-u0" : "borgcharger-u1") + +/obj/machinery/recharge_station/power_change() + ..() + update_icon() + +/obj/machinery/recharge_station/proc/process_occupant() + if(occupant) + var/mob/living/silicon/robot/R = occupant + restock_modules() + if(repairs) + R.heal_bodypart_damage(repairs, repairs - 1) + if(R.cell) + R.cell.charge = min(R.cell.charge + recharge_speed, R.cell.maxcharge) + +/obj/machinery/recharge_station/proc/restock_modules() + if(occupant) + var/mob/living/silicon/robot/R = occupant + if(R && R.module) + var/coeff = recharge_speed * 0.005 + R.module.respawn_consumable(R, coeff) diff --git a/code/game/machinery/recycler.dm b/code/game/machinery/recycler.dm new file mode 100644 index 0000000..fc42e79 --- /dev/null +++ b/code/game/machinery/recycler.dm @@ -0,0 +1,202 @@ +var/const/SAFETY_COOLDOWN = 100 + +/obj/machinery/recycler + name = "recycler" + desc = "A large crushing machine used to recycle small items inefficiently. There are lights on the side." + icon = 'icons/obj/recycling.dmi' + icon_state = "grinder-o0" + layer = ABOVE_ALL_MOB_LAYER // Overhead + anchored = 1 + density = 1 + var/safety_mode = FALSE // Temporarily stops machine if it detects a mob + var/icon_name = "grinder-o" + var/blood = 0 + var/eat_dir = WEST + var/amount_produced = 1 + var/datum/material_container/materials + var/crush_damage = 1000 + var/eat_victim_items = TRUE + var/item_recycle_sound = 'sound/items/Welder.ogg' + +/obj/machinery/recycler/New() + ..() + materials = new /datum/material_container(src, list(MAT_METAL, MAT_GLASS, MAT_PLASMA, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_URANIUM, MAT_BANANIUM, MAT_TITANIUM)) + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/recycler(null) + B.apply_default_parts(src) + update_icon() + +/obj/item/weapon/circuitboard/machine/recycler + name = "circuit board (Recycler)" + build_path = /obj/machinery/recycler + origin_tech = "programming=2;engineering=2" + req_components = list( + /obj/item/weapon/stock_parts/matter_bin = 1, + /obj/item/weapon/stock_parts/manipulator = 1) + +/obj/machinery/recycler/RefreshParts() + var/amt_made = 0 + var/mat_mod = 0 + for(var/obj/item/weapon/stock_parts/matter_bin/B in component_parts) + mat_mod = 2 * B.rating + mat_mod *= 50000 + for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts) + amt_made = 25 * M.rating //% of materials salvaged + materials.max_amount = mat_mod + amount_produced = min(100, amt_made) + +/obj/machinery/recycler/examine(mob/user) + ..() + user << "The power light is [(stat & NOPOWER) ? "off" : "on"]." + user << "The safety-mode light is [safety_mode ? "on" : "off"]." + user << "The safety-sensors status light is [emagged ? "off" : "on"]." + +/obj/machinery/recycler/power_change() + ..() + update_icon() + + +/obj/machinery/recycler/attackby(obj/item/I, mob/user, params) + if(default_deconstruction_screwdriver(user, "grinder-oOpen", "grinder-o0", I)) + return + + if(exchange_parts(user, I)) + return + + if(default_pry_open(I)) + return + + if(default_unfasten_wrench(user, I)) + return + + if(default_deconstruction_crowbar(I)) + return + return ..() + +/obj/machinery/recycler/emag_act(mob/user) + if(!emagged) + emagged = TRUE + if(safety_mode) + safety_mode = FALSE + update_icon() + playsound(src.loc, "sparks", 75, 1, -1) + user << "You use the cryptographic sequencer on the [src.name]." + +/obj/machinery/recycler/update_icon() + ..() + var/is_powered = !(stat & (BROKEN|NOPOWER)) + if(safety_mode) + is_powered = FALSE + icon_state = icon_name + "[is_powered]" + "[(blood ? "bld" : "")]" // add the blood tag at the end + +// This is purely for admin possession !FUN!. +/obj/machinery/recycler/Bump(atom/movable/AM) + ..() + if(AM) + Bumped(AM) + + +/obj/machinery/recycler/Bumped(atom/movable/AM) + + if(stat & (BROKEN|NOPOWER)) + return + if(!anchored) + return + if(safety_mode) + return + + var/move_dir = get_dir(loc, AM.loc) + if(move_dir == eat_dir) + eat(AM) + +/obj/machinery/recycler/proc/eat(atom/AM0, sound=TRUE) + var/list/to_eat = list(AM0) + if(istype(AM0, /obj/item)) + to_eat += AM0.GetAllContents() + var/items_recycled = 0 + + for(var/i in to_eat) + var/atom/movable/AM = i + if(isliving(AM)) + if(emagged) + crush_living(AM) + else + emergency_stop(AM) + else if(istype(AM, /obj/item)) + recycle_item(AM) + items_recycled++ + else + playsound(src.loc, 'sound/machines/buzz-sigh.ogg', 50, 0) + AM.loc = src.loc + + if(items_recycled && sound) + playsound(src.loc, item_recycle_sound, 50, 1) + +/obj/machinery/recycler/proc/recycle_item(obj/item/I) + I.loc = src.loc + + var/material_amount = materials.get_item_material_amount(I) + if(!material_amount) + qdel(I) + return + materials.insert_item(I, multiplier = (amount_produced / 100)) + qdel(I) + materials.retrieve_all() + + +/obj/machinery/recycler/proc/emergency_stop(mob/living/L) + playsound(src.loc, 'sound/machines/buzz-sigh.ogg', 50, 0) + safety_mode = TRUE + update_icon() + L.loc = src.loc + addtimer(src, "reboot", SAFETY_COOLDOWN) + +/obj/machinery/recycler/proc/reboot() + playsound(src.loc, 'sound/machines/ping.ogg', 50, 0) + safety_mode = FALSE + update_icon() + +/obj/machinery/recycler/proc/crush_living(mob/living/L) + + L.loc = src.loc + + if(issilicon(L)) + playsound(src.loc, 'sound/items/Welder.ogg', 50, 1) + else + playsound(src.loc, 'sound/effects/splat.ogg', 50, 1) + + var/gib = TRUE + // By default, the emagged recycler will gib all non-carbons. (human simple animal mobs don't count) + if(iscarbon(L)) + gib = FALSE + if(L.stat == CONSCIOUS) + L.say("ARRRRRRRRRRRGH!!!") + add_mob_blood(L) + + if(!blood && !issilicon(L)) + blood = TRUE + update_icon() + + // Remove and recycle the equipped items + if(eat_victim_items) + for(var/obj/item/I in L.get_equipped_items()) + if(L.unEquip(I)) + eat(I, sound=FALSE) + + // Instantly lie down, also go unconscious from the pain, before you die. + L.Paralyse(5) + + // For admin fun, var edit emagged to 2. + if(gib || emagged == 2) + L.gib() + else if(emagged == 1) + L.adjustBruteLoss(crush_damage) + +/obj/machinery/recycler/deathtrap + name = "dangerous old crusher" + emagged = TRUE + crush_damage = 120 + flags = NODECONSTRUCT + +/obj/item/weapon/paper/recycler + name = "paper - 'garbage duty instructions'" + info = "

            New Assignment

            You have been assigned to collect garbage from trash bins, located around the station. The crewmembers will put their trash into it and you will collect the said trash.

            There is a recycling machine near your closet, inside maintenance; use it to recycle the trash for a small chance to get useful minerals. Then deliver these minerals to cargo or engineering. You are our last hope for a clean station, do not screw this up!" diff --git a/code/game/machinery/requests_console.dm b/code/game/machinery/requests_console.dm new file mode 100644 index 0000000..20f206b --- /dev/null +++ b/code/game/machinery/requests_console.dm @@ -0,0 +1,525 @@ +/******************** Requests Console ********************/ +/** Originally written by errorage, updated by: Carn, needs more work though. I just added some security fixes */ + +var/req_console_assistance = list() +var/req_console_supplies = list() +var/req_console_information = list() +var/list/obj/machinery/requests_console/allConsoles = list() + +/obj/machinery/requests_console + name = "requests console" + desc = "A console intended to send requests to different departments on the station." + anchored = 1 + icon = 'icons/obj/terminals.dmi' + icon_state = "req_comp0" + var/department = "Unknown" //The list of all departments on the station (Determined from this variable on each unit) Set this to the same thing if you want several consoles in one department + var/list/messages = list() //List of all messages + var/departmentType = 0 + // 0 = none (not listed, can only replied to) + // 1 = assistance + // 2 = supplies + // 3 = info + // 4 = ass + sup //Erro goddamn you just HAD to shorten "assistance" down to "ass" + // 5 = ass + info + // 6 = sup + info + // 7 = ass + sup + info + var/newmessagepriority = 0 + // 0 = no new message + // 1 = normal priority + // 2 = high priority + // 3 = extreme priority - not implemented, will probably require some hacking... everything needs to have a hidden feature in this game. + var/screen = 0 + // 0 = main menu, + // 1 = req. assistance, + // 2 = req. supplies + // 3 = relay information + // 4 = write msg - not used + // 5 = choose priority - not used + // 6 = sent successfully + // 7 = sent unsuccessfully + // 8 = view messages + // 9 = authentication before sending + // 10 = send announcement + var/silent = 0 // set to 1 for it not to beep all the time + var/hackState = 0 + // 0 = not hacked + // 1 = hacked + var/announcementConsole = 0 + // 0 = This console cannot be used to send department announcements + // 1 = This console can send department announcements + var/open = 0 // 1 if open + var/announceAuth = 0 //Will be set to 1 when you authenticate yourself for announcements + var/msgVerified = "" //Will contain the name of the person who verified it + var/msgStamped = "" //If a message is stamped, this will contain the stamp name + var/message = ""; + var/dpt = ""; //the department which will be receiving the message + var/priority = -1 ; //Priority of the message being sent + var/obj/item/device/radio/Radio + var/emergency //If an emergency has been called by this device. Acts as both a cooldown and lets the responder know where it the emergency was triggered from + luminosity = 0 + obj_integrity = 300 + max_integrity = 300 + armor = list(melee = 70, bullet = 30, laser = 30, energy = 30, bomb = 0, bio = 0, rad = 0, fire = 90, acid = 90) + +/obj/machinery/requests_console/power_change() + ..() + update_icon() + +/obj/machinery/requests_console/update_icon() + if(open) + if(!hackState) + icon_state="req_comp_open" + else + icon_state="req_comp_rewired" + else if(stat & NOPOWER) + if(icon_state != "req_comp_off") + icon_state = "req_comp_off" + else + if(emergency || (newmessagepriority == 3)) + icon_state = "req_comp3" + else if(newmessagepriority == 2) + icon_state = "req_comp2" + else if(newmessagepriority == 1) + icon_state = "req_comp1" + else + icon_state = "req_comp0" + +/obj/machinery/requests_console/New() + name = "\improper [department] requests console" + allConsoles += src + //req_console_departments += department + switch(departmentType) + if(1) + if(!("[department]" in req_console_assistance)) + req_console_assistance += department + if(2) + if(!("[department]" in req_console_supplies)) + req_console_supplies += department + if(3) + if(!("[department]" in req_console_information)) + req_console_information += department + if(4) + if(!("[department]" in req_console_assistance)) + req_console_assistance += department + if(!("[department]" in req_console_supplies)) + req_console_supplies += department + if(5) + if(!("[department]" in req_console_assistance)) + req_console_assistance += department + if(!("[department]" in req_console_information)) + req_console_information += department + if(6) + if(!("[department]" in req_console_supplies)) + req_console_supplies += department + if(!("[department]" in req_console_information)) + req_console_information += department + if(7) + if(!("[department]" in req_console_assistance)) + req_console_assistance += department + if(!("[department]" in req_console_supplies)) + req_console_supplies += department + if(!("[department]" in req_console_information)) + req_console_information += department + + Radio = new /obj/item/device/radio(src) + Radio.listening = 0 + +/obj/machinery/requests_console/attack_hand(mob/user) + if(..()) + return + var/dat = "" + if(!open) + switch(screen) + if(1) //req. assistance + dat += "Which department do you need assistance from?

            " + dat += "" + for(var/dpt in req_console_assistance) + if (dpt != department) + dat += "" + dat += "" + dat += "" + dat += "" + dat += "
            [dpt]Normal High" + if(hackState) + dat += "EXTREME" + dat += "
            " + dat += "
            << Back
            " + + if(2) //req. supplies + dat += "Which department do you need supplies from?

            " + dat += "" + for(var/dpt in req_console_supplies) + if (dpt != department) + dat += "" + dat += "" + dat += "" + dat += "" + dat += "
            [dpt]Normal High" + if(hackState) + dat += "EXTREME" + dat += "
            " + dat += "
            << Back
            " + + if(3) //relay information + dat += "Which department would you like to send information to?

            " + dat += "" + for(var/dpt in req_console_information) + if (dpt != department) + dat += "" + dat += "" + dat += "" + dat += "" + dat += "
            [dpt]Normal High" + if(hackState) + dat += "EXTREME" + dat += "
            " + dat += "
            << Back
            " + + if(6) //sent successfully + dat += "Message sent.

            " + dat += "Continue
            " + + if(7) //unsuccessful; not sent + dat += "An error occurred.

            " + dat += "Continue
            " + + if(8) //view messages + for (var/obj/machinery/requests_console/Console in allConsoles) + if (Console.department == department) + Console.newmessagepriority = 0 + Console.update_icon() + Console.SetLuminosity(1) + newmessagepriority = 0 + update_icon() + var/messageComposite = "" + for(var/msg in messages) // This puts more recent messages at the *top*, where they belong. + messageComposite = "
            [msg]
            " + messageComposite + dat += messageComposite + dat += "
            << Back to Main Menu
            " + + if(9) //authentication before sending + dat += "Message Authentication

            " + dat += "Message for [dpt]: [message]

            " + dat += "
            You may authenticate your message now by scanning your ID or your stamp

            " + dat += "Validated by: [msgVerified ? msgVerified : "Not Validated"]
            " + dat += "Stamped by: [msgStamped ? msgStamped : "Not Stamped"]

            " + dat += "Send Message
            " + dat += "
            << Discard Message
            " + + if(10) //send announcement + dat += "

            Station-wide Announcement

            " + if(announceAuth) + dat += "
            Authentication accepted

            " + else + dat += "
            Swipe your card to authenticate yourself

            " + dat += "Message: [message ? message : "No Message"]
            " + dat += "[message ? "Edit" : "Write"] Message

            " + if ((announceAuth || IsAdminGhost(user)) && message) + dat += "Announce Message
            " + else + dat += "Announce Message
            " + dat += "
            << Back
            " + + else //main menu + screen = 0 + announceAuth = 0 + if (newmessagepriority == 1) + dat += "
            There are new messages

            " + if (newmessagepriority == 2) + dat += "
            There are new PRIORITY messages

            " + if (newmessagepriority == 3) + dat += "
            There are new EXTREME PRIORITY messages

            " + dat += "View Messages

            " + + dat += "Request Assistance
            " + dat += "Request Supplies
            " + dat += "Relay Anonymous Information

            " + + if(!emergency) + dat += "Emergency: Security
            " + dat += "Emergency: Engineering
            " + dat += "Emergency: Medical

            " + else + dat += "[emergency] has been dispatched to this location.

            " + + if(announcementConsole) + dat += "Send Station-wide Announcement

            " + if (silent) + dat += "Speaker OFF" + else + dat += "Speaker ON" + + //user << browse("[dat]", "window=request_console") + //onclose(user, "req_console") + var/datum/browser/popup = new(user, "req_console", "[department] Requests Console", 450, 440) + popup.set_content(dat) + popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) + popup.open() + return + +/obj/machinery/requests_console/Topic(href, href_list) + if(..()) + return + usr.set_machine(src) + add_fingerprint(usr) + + if(reject_bad_text(href_list["write"])) + dpt = ckey(href_list["write"]) //write contains the string of the receiving department's name + + var/new_message = copytext(reject_bad_text(input(usr, "Write your message:", "Awaiting Input", "")),1,MAX_MESSAGE_LEN) + if(new_message) + message = new_message + screen = 9 + if (text2num(href_list["priority"]) < 2) + priority = -1 + else + priority = text2num(href_list["priority"]) + else + dpt = ""; + msgVerified = "" + msgStamped = "" + screen = 0 + priority = -1 + + if(href_list["writeAnnouncement"]) + var/new_message = copytext(reject_bad_text(input(usr, "Write your message:", "Awaiting Input", "")),1,MAX_MESSAGE_LEN) + if(new_message) + message = new_message + if (text2num(href_list["priority"]) < 2) + priority = -1 + else + priority = text2num(href_list["priority"]) + else + message = "" + announceAuth = 0 + screen = 0 + + if(href_list["sendAnnouncement"]) + if(!announcementConsole) + return + minor_announce(message, "[department] Announcement:") + news_network.SubmitArticle(message, department, "Station Announcements", null) + log_say("[key_name(usr)] has made a station announcement: [message]") + message_admins("[key_name_admin(usr)] has made a station announcement.") + announceAuth = 0 + message = "" + screen = 0 + + if(href_list["emergency"]) + if(!emergency) + var/radio_freq + switch(text2num(href_list["emergency"])) + if(1) //Security + radio_freq = SEC_FREQ + emergency = "Security" + if(2) //Engineering + radio_freq = ENG_FREQ + emergency = "Engineering" + if(3) //Medical + radio_freq = MED_FREQ + emergency = "Medical" + if(radio_freq) + Radio.set_frequency(radio_freq) + Radio.talk_into(src,"[emergency] emergency in [department]!!",radio_freq) + update_icon() + spawn(3000) + emergency = null + update_icon() + + if( href_list["department"] && message ) + var/log_msg = message + var/sending = message + sending += "
            " + if (msgVerified) + sending += msgVerified + sending += "
            " + if (msgStamped) + sending += msgStamped + sending += "
            " + screen = 7 //if it's successful, this will get overrwritten (7 = unsufccessfull, 6 = successfull) + if (sending) + var/pass = 0 + for (var/obj/machinery/message_server/MS in machines) + if(!MS.active) continue + MS.send_rc_message(href_list["department"],department,log_msg,msgStamped,msgVerified,priority) + pass = 1 + + if(pass) + var/radio_freq = 0 + switch(href_list["department"]) + if("bridge") + radio_freq = COMM_FREQ + if("medbay") + radio_freq = MED_FREQ + if("science") + radio_freq = SCI_FREQ + if("engineering") + radio_freq = ENG_FREQ + if("security") + radio_freq = SEC_FREQ + if("cargobay" || "mining") + radio_freq = SUPP_FREQ + Radio.set_frequency(radio_freq) + var/authentic + if(msgVerified || msgStamped) + authentic = " (Authenticated)" + + var/alert = "" + for (var/obj/machinery/requests_console/Console in allConsoles) + if (ckey(Console.department) == ckey(href_list["department"])) + switch(priority) + if(2) //High priority + alert = "PRIORITY Alert in [department][authentic]" + Console.createmessage(src, alert, sending, 2, 1) + if(3) // Extreme Priority + alert = "EXTREME PRIORITY Alert from [department][authentic]" + Console.createmessage(src, alert , sending, 3, 1) + else // Normal priority + alert = "Message from [department][authentic]" + Console.createmessage(src, alert , sending, 1, 1) + screen = 6 + Console.SetLuminosity(2) + + if(radio_freq) + Radio.talk_into(src,"[alert]: [message]",radio_freq) + + switch(priority) + if(2) + messages += "High Priority
            To: [dpt]
            [sending]" + else + messages += "To: [dpt]
            [sending]" + else + say("NOTICE: No server detected!") + + + //Handle screen switching + switch(text2num(href_list["setScreen"])) + if(null) //skip + if(1) //req. assistance + screen = 1 + if(2) //req. supplies + screen = 2 + if(3) //relay information + screen = 3 +// if(4) //write message +// screen = 4 + if(5) //choose priority + screen = 5 + if(6) //sent successfully + screen = 6 + if(7) //unsuccessfull; not sent + screen = 7 + if(8) //view messages + screen = 8 + if(9) //authentication + screen = 9 + if(10) //send announcement + if(!announcementConsole) + return + screen = 10 + else //main menu + dpt = "" + msgVerified = "" + msgStamped = "" + message = "" + priority = -1 + screen = 0 + + //Handle silencing the console + switch( href_list["setSilent"] ) + if(null) //skip + if("1") + silent = 1 + else + silent = 0 + + updateUsrDialog() + return + +/obj/machinery/say_quote(input, list/spans) + var/ending = copytext(input, length(input) - 2) + if (ending == "!!!") + return "blares, \"[attach_spans(input, spans)]\"" + + return ..() + +/obj/machinery/requests_console/proc/createmessage(source, title, message, priority) + var/linkedsender + if(istype(source, /obj/machinery/requests_console)) + var/obj/machinery/requests_console/sender = source + linkedsender = "[sender.department]" + else + capitalize(source) + linkedsender = source + capitalize(title) + switch(priority) + if(2) //High priority + if(src.newmessagepriority < 2) + src.newmessagepriority = 2 + src.update_icon() + if(!src.silent) + playsound(src.loc, 'sound/machines/twobeep.ogg', 50, 1) + say(title) + src.messages += "High Priority
            From: [linkedsender]
            [message]" + + if(3) // Extreme Priority + if(src.newmessagepriority < 3) + src.newmessagepriority = 3 + src.update_icon() + if(1) + playsound(src.loc, 'sound/machines/twobeep.ogg', 50, 1) + say(title) + src.messages += "!!!Extreme Priority!!!
            From: [linkedsender]
            [message]" + + else // Normal priority + if(src.newmessagepriority < 1) + src.newmessagepriority = 1 + src.update_icon() + if(!src.silent) + playsound(src.loc, 'sound/machines/twobeep.ogg', 50, 1) + say(title) + src.messages += "From: [linkedsender]
            [message]" + SetLuminosity(2) + +/obj/machinery/requests_console/attackby(obj/item/weapon/O, mob/user, params) + if(istype(O, /obj/item/weapon/crowbar)) + if(open) + user << "You close the maintenance panel." + open = 0 + else + user << "You open the maintenance panel." + open = 1 + update_icon() + return + if(istype(O, /obj/item/weapon/screwdriver)) + if(open) + hackState = !hackState + if(hackState) + user << "You modify the wiring." + else + user << "You reset the wiring." + update_icon() + else + user << "You must open the maintenance panel first!" + return + + var/obj/item/weapon/card/id/ID = O.GetID() + if(ID) + if(screen == 9) + msgVerified = "Verified by [ID.registered_name] ([ID.assignment])" + updateUsrDialog() + if(screen == 10) + if (access_RC_announce in ID.access) + announceAuth = 1 + else + announceAuth = 0 + user << "You are not authorized to send announcements!" + updateUsrDialog() + return + if (istype(O, /obj/item/weapon/stamp)) + if(screen == 9) + var/obj/item/weapon/stamp/T = O + msgStamped = "Stamped with the [T.name]" + updateUsrDialog() + return + return ..() diff --git a/code/game/machinery/robot_fabricator.dm b/code/game/machinery/robot_fabricator.dm new file mode 100644 index 0000000..4002967 --- /dev/null +++ b/code/game/machinery/robot_fabricator.dm @@ -0,0 +1,149 @@ +/obj/machinery/robotic_fabricator + name = "robotic fabricator" + icon = 'icons/obj/robotics.dmi' + icon_state = "fab-idle" + density = 1 + anchored = 1 + var/metal_amount = 0 + var/operating = 0 + var/obj/item/being_built = null + use_power = 1 + idle_power_usage = 20 + active_power_usage = 5000 + +/obj/machinery/robotic_fabricator/attackby(obj/item/O, mob/user, params) + if (istype(O, /obj/item/stack/sheet/metal)) + if (src.metal_amount < 150000) + var/count = 0 + src.add_overlay("fab-load-metal") + spawn(15) + if(O) + if(!O:amount) + return + while(metal_amount < 150000 && O:amount) + src.metal_amount += O:materials[MAT_METAL] /*O:height * O:width * O:length * 100000*/ + O:amount-- + count++ + + if (O:amount < 1) + qdel(O) + + user << "You insert [count] metal sheet\s into \the [src]." + src.overlays -= "fab-load-metal" + updateDialog() + else + user << "\The [src] is full." + else + return ..() + +/obj/machinery/robotic_fabricator/power_change() + if (powered()) + stat &= ~NOPOWER + else + stat |= NOPOWER + +/obj/machinery/robotic_fabricator/attack_paw(mob/user) + return src.attack_hand(user) + +/obj/machinery/robotic_fabricator/attack_hand(mob/user) + var/dat + if (..()) + return + + if (src.operating) + dat = {" +Building [src.being_built.name].
            +Please wait until completion...

            +
            +"} + else + dat = {" +Metal Amount: [min(150000, src.metal_amount)] cm3 (MAX: 150,000)

            +
            +Left Arm (25,000 cc metal.)
            +
            Right Arm (25,000 cc metal.)
            +
            Left Leg (25,000 cc metal.)
            +
            Right Leg (25,000 cc metal).
            +
            Chest (50,000 cc metal).
            +
            Head (50,000 cc metal).
            +
            Robot Frame (75,000 cc metal).
            +"} + + user << browse("Robotic Fabricator Control Panel[dat]", "window=robot_fabricator") + onclose(user, "robot_fabricator") + return + +/obj/machinery/robotic_fabricator/Topic(href, href_list) + if (..()) + return + + usr.set_machine(src) + src.add_fingerprint(usr) + + if (href_list["make"]) + if (!src.operating) + var/part_type = text2num(href_list["make"]) + + var/build_type = "" + var/build_time = 200 + var/build_cost = 25000 + + switch (part_type) + if (1) + build_type = "/obj/item/bodypart/l_arm/robot" + build_time = 200 + build_cost = 10000 + + if (2) + build_type = "/obj/item/bodypart/r_arm/robot" + build_time = 200 + build_cost = 10000 + + if (3) + build_type = "/obj/item/bodypart/l_leg/robot" + build_time = 200 + build_cost = 10000 + + if (4) + build_type = "/obj/item/bodypart/r_leg/robot" + build_time = 200 + build_cost = 10000 + + if (5) + build_type = "/obj/item/bodypart/chest/robot" + build_time = 350 + build_cost = 40000 + + if (6) + build_type = "/obj/item/bodypart/head/robot" + build_time = 350 + build_cost = 5000 + + if (7) + build_type = "/obj/item/robot_suit" + build_time = 600 + build_cost = 15000 + + var/building = text2path(build_type) + if (!isnull(building)) + if (src.metal_amount >= build_cost) + src.operating = 1 + src.use_power = 2 + + src.metal_amount = max(0, src.metal_amount - build_cost) + + src.being_built = new building(src) + + src.add_overlay("fab-active") + src.updateUsrDialog() + + spawn (build_time) + if (!isnull(src.being_built)) + src.being_built.loc = get_turf(src) + src.being_built = null + src.use_power = 1 + src.operating = 0 + src.overlays -= "fab-active" + return + + updateUsrDialog() diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm new file mode 100644 index 0000000..fe6ee93 --- /dev/null +++ b/code/game/machinery/shieldgen.dm @@ -0,0 +1,522 @@ +/obj/structure/emergency_shield + name = "emergency energy shield" + desc = "An energy shield used to contain hull breaches." + icon = 'icons/effects/effects.dmi' + icon_state = "shield-old" + density = 1 + opacity = 0 + anchored = 1 + resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF + max_integrity = 200 + obj_integrity = 200 //The shield can only take so much beating (prevents perma-prisons) + +/obj/structure/emergency_shield/New() + src.setDir(pick(1,2,3,4)) + ..() + air_update_turf(1) + +/obj/structure/emergency_shield/Destroy() + opacity = 0 + density = 0 + air_update_turf(1) + return ..() + +/obj/structure/emergency_shield/Move() + var/turf/T = loc + ..() + move_update_air(T) + +/obj/structure/emergency_shield/CanPass(atom/movable/mover, turf/target, height) + if(!height) return 0 + else return ..() + +/obj/structure/emergency_shield/CanAtmosPass(turf/T) + return !density + +/obj/structure/emergency_shield/emp_act(severity) + switch(severity) + if(1) + qdel(src) + if(2) + take_damage(50, BRUTE, "energy", 0) + +/obj/structure/emergency_shield/play_attack_sound(damage, damage_type = BRUTE, damage_flag = 0) + switch(damage_type) + if(BURN) + playsound(loc, 'sound/effects/EMPulse.ogg', 75, 1) + if(BRUTE) + playsound(loc, 'sound/effects/EMPulse.ogg', 75, 1) + +/obj/structure/emergency_shield/take_damage(damage, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir) + . = ..() + if(.) //damage was dealt + opacity = 1 + spawn(20) + opacity = 0 + +/obj/structure/emergency_shield/sanguine + name = "sanguine barrier" + desc = "A potent shield summoned by cultists to defend their rites." + icon_state = "shield-red" + obj_integrity = 60 + max_integrity = 60 + +/obj/structure/emergency_shield/invoker + name = "Invoker's Shield" + desc = "A weak shield summoned by cultists to protect them while they carry out delicate rituals" + color = "#FF0000" + obj_integrity = 20 + max_integrity = 20 + mouse_opacity = 0 + +/obj/machinery/shieldgen + name = "anti-breach shielding projector" + desc = "Used to seal minor hull breaches." + icon = 'icons/obj/objects.dmi' + icon_state = "shieldoff" + density = 1 + opacity = 0 + anchored = 0 + pressure_resistance = 2*ONE_ATMOSPHERE + req_access = list(access_engine) + max_integrity = 100 + obj_integrity = 100 + var/active = 0 + var/list/deployed_shields = list() + var/locked = 0 + var/shield_range = 4 + +/obj/machinery/shieldgen/Destroy() + for(var/obj/structure/emergency_shield/ES in deployed_shields) + qdel(ES) + deployed_shields = list() + return ..() + + +/obj/machinery/shieldgen/proc/shields_up() + if(active) + return 0 //If it's already turned on, how did this get called? + + active = 1 + update_icon() + + for(var/turf/target_tile in range(shield_range, src)) + if(isspaceturf(target_tile) && !(locate(/obj/structure/emergency_shield) in target_tile)) + if(!(stat & BROKEN) || prob(33)) + deployed_shields += new /obj/structure/emergency_shield(target_tile) + +/obj/machinery/shieldgen/proc/shields_down() + if(!active) + return 0 //If it's already off, how did this get called? + + active = 0 + update_icon() + + for(var/obj/structure/emergency_shield/ES in deployed_shields) + qdel(ES) + deployed_shields.Cut() + +/obj/machinery/shieldgen/process() + if((stat & BROKEN) && active) + if(deployed_shields.len && prob(5)) + qdel(pick(deployed_shields)) + + +/obj/machinery/shieldgen/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + if(!(stat && BROKEN)) + stat |= BROKEN + locked = pick(0,1) + update_icon() + +/obj/machinery/shieldgen/attack_hand(mob/user) + if(locked) + user << "The machine is locked, you are unable to use it!" + return + if(panel_open) + user << "The panel must be closed before operating this machine!" + return + + if (active) + user.visible_message("[user] deactivated \the [src].", \ + "You deactivate \the [src].", \ + "You hear heavy droning fade out.") + shields_down() + else + if(anchored) + user.visible_message("[user] activated \the [src].", \ + "You activate \the [src].", \ + "You hear heavy droning.") + shields_up() + else + user << "The device must first be secured to the floor!" + return + +/obj/machinery/shieldgen/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/weapon/screwdriver)) + playsound(src.loc, W.usesound, 100, 1) + panel_open = !panel_open + if(panel_open) + user << "You open the panel and expose the wiring." + else + user << "You close the panel." + else if(istype(W, /obj/item/stack/cable_coil) && (stat & BROKEN) && panel_open) + var/obj/item/stack/cable_coil/coil = W + if (coil.get_amount() < 1) + user << "You need one length of cable to repair [src]!" + return + user << "You begin to replace the wires..." + if(do_after(user, 30, target = src)) + if(coil.get_amount() < 1) + return + coil.use(1) + obj_integrity = max_integrity + stat &= ~BROKEN + user << "You repair \the [src]." + update_icon() + + else if(istype(W, /obj/item/weapon/wrench)) + if(locked) + user << "The bolts are covered! Unlocking this would retract the covers." + return + if(!anchored && !isinspace()) + playsound(src.loc, W.usesound, 100, 1) + user << "You secure \the [src] to the floor!" + anchored = 1 + else if(anchored) + playsound(src.loc, W.usesound, 100, 1) + user << "You unsecure \the [src] from the floor!" + if(active) + user << "\The [src] shuts off!" + shields_down() + anchored = 0 + + else if(W.GetID()) + if(allowed(user)) + locked = !locked + user << "You [locked ? "lock" : "unlock"] the controls." + else + user << "Access denied." + + else + return ..() + +/obj/machinery/shieldgen/emag_act() + if(!(stat & BROKEN)) + stat |= BROKEN + obj_integrity = 0 + update_icon() + +/obj/machinery/shieldgen/update_icon() + if(active) + icon_state = (stat & BROKEN) ? "shieldonbr":"shieldon" + else + icon_state = (stat & BROKEN) ? "shieldoffbr":"shieldoff" + + + + + + + + + +#define maxstoredpower 500 +/obj/machinery/shieldwallgen + name = "shield wall generator" + desc = "A shield generator." + icon = 'icons/obj/stationobjs.dmi' + icon_state = "Shield_Gen" + anchored = 0 + density = 1 + req_access = list(access_teleporter) + flags = CONDUCT + use_power = 0 + obj_integrity = 300 + max_integrity = 300 + var/active = 0 + var/power = 0 + var/steps = 0 + var/last_check = 0 + var/check_delay = 10 + var/recalc = 0 + var/locked = 1 + var/obj/structure/cable/attached // the attached cable + var/storedpower = 0 + +/obj/machinery/shieldwallgen/proc/power() + if(!anchored) + power = 0 + return 0 + var/turf/T = src.loc + + var/obj/structure/cable/C = T.get_cable_node() + var/datum/powernet/PN + if(C) + PN = C.powernet // find the powernet of the connected cable + + if(!PN) + power = 0 + return 0 + + var/surplus = max(PN.avail-PN.load, 0) + var/shieldload = min(rand(50,200), surplus) + if(shieldload==0 && !storedpower) // no cable or no power, and no power stored + power = 0 + return 0 + else + power = 1 // IVE GOT THE POWER! + if(PN) //runtime errors fixer. They were caused by PN.newload trying to access missing network in case of working on stored power. + storedpower += shieldload + PN.load += shieldload //uses powernet power. + +/obj/machinery/shieldwallgen/attack_hand(mob/user) + if(!anchored) + user << "\The [src] needs to be firmly secured to the floor first!" + return 1 + if(locked && !issilicon(user)) + user << "The controls are locked!" + return 1 + if(power != 1) + user << "\The [src] needs to be powered by wire underneath!" + return 1 + + if(active >= 1) + active = 0 + icon_state = "Shield_Gen" + + user.visible_message("[user] turned \the [src] off.", \ + "You turn off \the [src].", \ + "You hear heavy droning fade out.") + cleanup() + else + active = 1 + icon_state = "Shield_Gen +a" + user.visible_message("[user] turned \the [src] on.", \ + "You turn on \the [src].", \ + "You hear heavy droning.") + add_fingerprint(user) + +/obj/machinery/shieldwallgen/process() + power() + if(power) + storedpower -= 50 //this way it can survive longer and survive at all + storedpower = Clamp(storedpower, 0, maxstoredpower) + + + if(active == 1) + if(!anchored) + active = 0 + return + setup_field(1) + setup_field(2) + setup_field(4) + setup_field(8) + src.active = 2 + if(active >= 1) + if(power == 0) + visible_message("The [src.name] shuts down due to lack of power!", \ + "You hear heavy droning fade out.") + icon_state = "Shield_Gen" + active = 0 + cleanup(1) + cleanup(2) + cleanup(4) + cleanup(8) + +/obj/machinery/shieldwallgen/proc/setup_field(NSEW = 0) + var/turf/T = src.loc + var/turf/T2 = src.loc + var/obj/machinery/shieldwallgen/G + var/steps = 0 + var/oNSEW = 0 + + if(!NSEW)//Make sure its ran right + return + + if(NSEW == 1) + oNSEW = 2 + else if(NSEW == 2) + oNSEW = 1 + else if(NSEW == 4) + oNSEW = 8 + else if(NSEW == 8) + oNSEW = 4 + + for(var/dist = 0, dist <= 9, dist += 1) // checks out to 8 tiles away for another generator + T = get_step(T2, NSEW) + T2 = T + steps += 1 + if(locate(/obj/machinery/shieldwallgen) in T) + G = (locate(/obj/machinery/shieldwallgen) in T) + steps -= 1 + if(!G.active) + return + G.cleanup(oNSEW) + break + + if(isnull(G)) + return + + T2 = src.loc + + for(var/dist = 0, dist < steps, dist += 1) // creates each field tile + var/field_dir = get_dir(T2,get_step(T2, NSEW)) + T = get_step(T2, NSEW) + T2 = T + var/obj/machinery/shieldwall/CF = new/obj/machinery/shieldwall/(src, G) //(ref to this gen, ref to connected gen) + CF.loc = T + CF.setDir(field_dir) + + +/obj/machinery/shieldwallgen/attackby(obj/item/W, mob/user, params) + if(istype(W, /obj/item/weapon/wrench)) + if(active) + user << "Turn off the field generator first!" + return + + else if(!anchored && !isinspace()) //Can't fasten this thing in space + playsound(src.loc, W.usesound, 75, 1) + user << "You secure the external reinforcing bolts to the floor." + anchored = 1 + return + + else //You can unfasten it tough, if you somehow manage to fasten it. + playsound(src.loc, W.usesound, 75, 1) + user << "You undo the external reinforcing bolts." + anchored = 0 + return + + if(W.GetID()) + if (allowed(user)) + locked = !locked + user << "You [src.locked ? "lock" : "unlock"] the controls." + else + user << "Access denied." + + else + add_fingerprint(user) + return ..() + +/obj/machinery/shieldwallgen/proc/cleanup(NSEW) + var/obj/machinery/shieldwall/F + var/obj/machinery/shieldwallgen/G + var/turf/T = src.loc + var/turf/T2 = src.loc + + for(var/dist = 0, dist <= 9, dist += 1) // checks out to 8 tiles away for fields + T = get_step(T2, NSEW) + T2 = T + if(locate(/obj/machinery/shieldwall) in T) + F = (locate(/obj/machinery/shieldwall) in T) + qdel(F) + + if(locate(/obj/machinery/shieldwallgen) in T) + G = (locate(/obj/machinery/shieldwallgen) in T) + if(!G.active) + break + +/obj/machinery/shieldwallgen/Destroy() + cleanup(1) + cleanup(2) + cleanup(4) + cleanup(8) + return ..() + + + +//////////////Containment Field START +/obj/machinery/shieldwall + name = "shield wall" + desc = "An energy shield." + icon = 'icons/effects/effects.dmi' + icon_state = "shieldwall" + anchored = 1 + density = 1 + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF + luminosity = 3 + var/needs_power = 0 + var/active = 1 + var/delay = 5 + var/last_active + var/mob/U + var/obj/machinery/shieldwallgen/gen_primary + var/obj/machinery/shieldwallgen/gen_secondary + +/obj/machinery/shieldwall/New(var/obj/machinery/shieldwallgen/A, var/obj/machinery/shieldwallgen/B) + ..() + src.gen_primary = A + src.gen_secondary = B + if(A && B) + needs_power = 1 + for(var/mob/living/L in get_turf(src.loc)) + visible_message("\The [src] is suddenly occupying the same space as \the [L]'s organs!") + L.gib() + +/obj/machinery/shieldwall/attack_hand(mob/user) + return + + +/obj/machinery/shieldwall/process() + if(needs_power) + if(isnull(gen_primary)||isnull(gen_secondary)) + qdel(src) + return + + if(!(gen_primary.active)||!(gen_secondary.active)) + qdel(src) + return + + if(prob(50)) + gen_primary.storedpower -= 10 + else + gen_secondary.storedpower -=10 + +/obj/machinery/shieldwall/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) + switch(damage_type) + if(BURN) + playsound(loc, 'sound/effects/EMPulse.ogg', 75, 1) + if(BRUTE) + playsound(loc, 'sound/effects/EMPulse.ogg', 75, 1) + +//the shield wall is immune to damage but it drains the stored power of the generators. +/obj/machinery/shieldwall/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir) + . = ..() + if(damage_type == BRUTE || damage_type == BURN) + drain_power(damage_amount) + +/obj/machinery/shieldwall/proc/drain_power(drain_amount) + if(needs_power) + var/obj/machinery/shieldwallgen/G + if(prob(50)) + G = gen_primary + else + G = gen_secondary + G.storedpower -= drain_amount + +/obj/machinery/shieldwall/bullet_act(obj/item/projectile/P) + . = ..() + drain_power(P.damage) + + +/obj/machinery/shieldwall/ex_act(severity, target) + if(needs_power) + var/drain_amount = 20 + switch(severity) + if(1) + drain_amount = 200 + if(2) + drain_amount = 50 + drain_power(drain_amount) + + +/obj/machinery/shieldwall/CanPass(atom/movable/mover, turf/target, height=0) + if(height==0) return 1 + + if(istype(mover) && mover.checkpass(PASSGLASS)) + return prob(20) + else + if (istype(mover, /obj/item/projectile)) + return prob(10) + else + return !src.density diff --git a/code/game/machinery/slotmachine.dm b/code/game/machinery/slotmachine.dm new file mode 100644 index 0000000..854194d --- /dev/null +++ b/code/game/machinery/slotmachine.dm @@ -0,0 +1,321 @@ +/*******************************\ +| Slot Machines | +| Original code by Glloyd | +| Tgstation port by Miauw | +| Cash changes by Matt | +\*******************************/ + +#define SPIN_PRICE 5 +#define SMALL_PRIZE 400 +#define BIG_PRIZE 1000 +#define JACKPOT 10000 +#define SPIN_TIME 65 //As always, deciseconds. +#define REEL_DEACTIVATE_DELAY 7 +#define SEVEN "7" + +/obj/machinery/computer/slot_machine + name = "slot machine" + desc = "Gambling for the antisocial." + icon = 'icons/obj/economy.dmi' + icon_state = "slots1" + anchored = 1 + density = 1 + use_power = 1 + idle_power_usage = 50 + circuit = /obj/item/weapon/circuitboard/computer/slot_machine + var/money = 3000 //How much money it has CONSUMED + var/plays = 0 + var/working = 0 + var/balance = 0 //How much money is in the machine, ready to be CONSUMED. + var/jackpots = 0 + var/list/coinvalues = list() + var/list/reels = list(list("", "", "") = 0, list("", "", "") = 0, list("", "", "") = 0, list("", "", "") = 0, list("", "", "") = 0) + var/list/symbols = list(SEVEN = 1, "&" = 2, "@" = 2, "$" = 2, "?" = 2, "#" = 2, "!" = 2, "%" = 2) //if people are winning too much, multiply every number in this list by 2 and see if they are still winning too much. + +/obj/machinery/computer/slot_machine/New() + ..() + jackpots = rand(1, 4) //false hope + plays = rand(75, 200) + + toggle_reel_spin(1) //The reels won't spin unless we activate them + + var/list/reel = reels[1] + for(var/i = 0, i < reel.len, i++) //Populate the reels. + randomize_reels() + + toggle_reel_spin(0) + + for(var/cointype in typesof(/obj/item/weapon/coin)) + var/obj/item/weapon/coin/C = new cointype(src) + coinvalues["[cointype]"] = C.value + qdel(C) + +/obj/machinery/computer/slot_machine/Destroy() + if(balance) + give_coins(balance) + return ..() + +/obj/machinery/computer/slot_machine/process() + . = ..() //Sanity checks. + if(!.) + return . + + money++ //SPESSH MAJICKS + +/obj/machinery/computer/slot_machine/update_icon() + if(stat & NOPOWER) + icon_state = "slots0" + + else if(stat & BROKEN) + icon_state = "slotsb" + + else if(working) + icon_state = "slots2" + + else + icon_state = "slots1" + +/obj/machinery/computer/slot_machine/power_change() + ..() + update_icon() + +/obj/machinery/computer/slot_machine/attackby(obj/item/I, mob/living/user, params) + if(istype(I, /obj/item/stack/spacecash))///obj/item/weapon/coin)) + var/obj/item/stack/spacecash/C = I + if(prob(2)) + if(!user.drop_item()) + return + C.loc = loc + C.throw_at(user, 3, 10) + if(prob(10)) + balance = max(balance - SPIN_PRICE, 0) + user << "[src] spits your coin back out!" + + else + if(!user.drop_item()) + return + user << "You insert [C.value] credits into [src]'s slot!"//a [C.cmineral] coin + balance += C.value//get_worth() + qdel(C) + else + return ..() + +/obj/machinery/computer/slot_machine/emag_act() + if(!emagged) + emagged = 1 + var/datum/effect_system/spark_spread/spark_system = new /datum/effect_system/spark_spread() + spark_system.set_up(4, 0, src.loc) + spark_system.start() + playsound(src.loc, "sparks", 50, 1) + +/obj/machinery/computer/slot_machine/attack_hand(mob/living/user) + . = ..() //Sanity checks. + if(.) + return . + + interact(user) + +/obj/machinery/computer/slot_machine/interact(mob/living/user) + var/reeltext = {"
            + /*****^*****^*****^*****^*****\\
            + | \[[reels[1][1]]\] | \[[reels[2][1]]\] | \[[reels[3][1]]\] | \[[reels[4][1]]\] | \[[reels[5][1]]\] |
            + | \[[reels[1][2]]\] | \[[reels[2][2]]\] | \[[reels[3][2]]\] | \[[reels[4][2]]\] | \[[reels[5][2]]\] |
            + | \[[reels[1][3]]\] | \[[reels[2][3]]\] | \[[reels[3][3]]\] | \[[reels[4][3]]\] | \[[reels[5][3]]\] |
            + \\*****v*****v*****v*****v*****/
            +
            "} + + var/dat + if(working) + dat = reeltext + + else + dat = {"Five credits to play!
            + Prize Money Available: [money] (jackpot payout is ALWAYS 100%!)
            + Credit Remaining: [balance]
            + [plays] players have tried their luck today, and [jackpots] have won a jackpot!
            +

            +
            Play!
            +
            + [reeltext] +
            + Refund balance
            "} + + var/datum/browser/popup = new(user, "slotmachine", "Slot Machine") + popup.set_content(dat) + popup.set_title_image(user.browse_rsc_icon(icon, icon_state)) + popup.open() + +/obj/machinery/computer/slot_machine/Topic(href, href_list) + . = ..() //Sanity checks. + if(.) + return . + + if(href_list["spin"]) + spin(usr) + + else if(href_list["refund"]) + var/obj/item/stack/spacecash/returned = new /obj/item/stack/spacecash(get_turf(src), balance) + usr << "You receive [returned]." + balance = 0 + +/obj/machinery/computer/slot_machine/emp_act(severity) + if(stat & (NOPOWER|BROKEN)) + return + if(prob(15 * severity)) + return + if(prob(1)) // :^) + emagged = 1 + var/severity_ascending = 4 - severity + money = max(rand(money - (200 * severity_ascending), money + (200 * severity_ascending)), 0) + balance = max(rand(balance - (50 * severity_ascending), balance + (50 * severity_ascending)), 0) + money -= max(0, give_coins(min(rand(-50, 100 * severity_ascending)), money)) //This starts at -50 because it shouldn't always dispense coins yo + spin() + +/obj/machinery/computer/slot_machine/proc/spin(mob/user) + if(!can_spin(user)) + return + + var/the_name + if(user) + the_name = user.real_name + visible_message("[user] pulls the lever and the slot machine starts spinning!") + else + the_name = "Exaybachay" + + balance -= SPIN_PRICE + money += SPIN_PRICE + plays += 1 + working = 1 + + toggle_reel_spin(1) + update_icon() + updateDialog() + + spawn(0) + while(working) + randomize_reels() + updateDialog() + sleep(2) + + spawn(SPIN_TIME - (REEL_DEACTIVATE_DELAY * reels.len)) //WARNING: no sanity checking for user since it's not needed and would complicate things (machine should still spin even if user is gone), be wary of this if you're changing this code. + toggle_reel_spin(0, REEL_DEACTIVATE_DELAY) + working = 0 + give_prizes(the_name, user) + update_icon() + updateDialog() + +/obj/machinery/computer/slot_machine/proc/can_spin(mob/user) + if(stat & NOPOWER) + user << "The slot machine has no power!" + if(stat & BROKEN) + user << "The slot machine is broken!" + if(working) + user << "You need to wait until the machine stops spinning before you can play again!" + return 0 + if(balance < SPIN_PRICE) + user << "Insufficient money to play!" + return 0 + return 1 + +/obj/machinery/computer/slot_machine/proc/toggle_reel_spin(value, delay = 0) //value is 1 or 0 aka on or off + for(var/list/reel in reels) + reels[reel] = value + sleep(delay) + +/obj/machinery/computer/slot_machine/proc/randomize_reels() + + for(var/reel in reels) + if(reels[reel]) + reel[3] = reel[2] + reel[2] = reel[1] + reel[1] = pick(symbols) + +/obj/machinery/computer/slot_machine/proc/give_prizes(usrname, mob/user) + var/linelength = get_lines() + + if(reels[1][2] + reels[2][2] + reels[3][2] + reels[4][2] + reels[5][2] == "[SEVEN][SEVEN][SEVEN][SEVEN][SEVEN]") + visible_message("[src] says, 'JACKPOT! You win [money] credits worth of coins!'") + priority_announce("Congratulations to [user ? user.real_name : usrname] for winning the jackpot at the slot machine in [get_area(src)]!") + jackpots += 1 + balance += money - give_coins(JACKPOT) + money = 0 + + for(var/i = 0, i < 5, i++) + var/cointype = pick(subtypesof(/obj/item/weapon/coin)) + var/obj/item/weapon/coin/C = new cointype(loc) + random_step(C, 2, 50) + + else if(linelength == 5) + visible_message("[src] says, 'Big Winner! You win a thousand credits worth of coins!'") + give_money(BIG_PRIZE) + + else if(linelength == 4) + visible_message("[src] says, 'Winner! You win four hundred credits worth of coins!'") + give_money(SMALL_PRIZE) + + else if(linelength == 3) + user << "You win three free games!" + balance += SPIN_PRICE * 4 + money = max(money - SPIN_PRICE * 4, money) + + else + user << "No luck!" + +/obj/machinery/computer/slot_machine/proc/get_lines() + var/amountthesame + + for(var/i = 1, i <= 3, i++) + var/inputtext = reels[1][i] + reels[2][i] + reels[3][i] + reels[4][i] + reels[5][i] + for(var/symbol in symbols) + var/j = 3 //The lowest value we have to check for. + var/symboltext = symbol + symbol + symbol + while(j <= 5) + if(findtext(inputtext, symboltext)) + amountthesame = max(j, amountthesame) + j++ + symboltext += symbol + + if(amountthesame) + break + + return amountthesame + +/obj/machinery/computer/slot_machine/proc/give_money(amount) + var/amount_to_give = money >= amount ? amount : money + var/surplus = amount_to_give - give_coins(amount_to_give) + money = max(0, money - amount) + balance += surplus + +/obj/machinery/computer/slot_machine/proc/give_coins(amount) + var/cointype = emagged ? /obj/item/weapon/coin/iron : /obj/item/weapon/coin/silver + + if(!emagged) + amount = dispense(amount, cointype, null, 0) + + else + var/mob/living/target = locate() in range(2, src) + + amount = dispense(amount, cointype, target, 1) + + return amount + +/obj/machinery/computer/slot_machine/proc/dispense(amount = 0, cointype = /obj/item/weapon/coin/silver, mob/living/target, throwit = 0) + var/value = coinvalues["[cointype]"] + + + while(amount >= value) + var/obj/item/weapon/coin/C = new cointype(loc) //DOUBLE THE PAIN + amount -= value + if(throwit && target) + C.throw_at(target, 3, 10) + else + random_step(C, 2, 40) + + return amount + +#undef SEVEN +#undef SPIN_TIME +#undef JACKPOT +#undef BIG_PRIZE +#undef SMALL_PRIZE +#undef SPIN_PRICE diff --git a/code/game/machinery/spaceheater.dm b/code/game/machinery/spaceheater.dm new file mode 100644 index 0000000..8c78d59 --- /dev/null +++ b/code/game/machinery/spaceheater.dm @@ -0,0 +1,250 @@ +#define HEATER_MODE_STANDBY "standby" +#define HEATER_MODE_HEAT "heat" +#define HEATER_MODE_COOL "cool" + +/obj/machinery/space_heater + anchored = 0 + density = 1 + interact_open = TRUE + icon = 'icons/obj/atmos.dmi' + icon_state = "sheater-off" + name = "space heater" + desc = "Made by Space Amish using traditional space techniques, this heater/cooler is guaranteed not to set the station on fire." + obj_integrity = 250 + max_integrity = 250 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 100, fire = 80, acid = 10) + var/obj/item/weapon/stock_parts/cell/cell + var/on = FALSE + var/mode = HEATER_MODE_STANDBY + var/setMode = "auto" // Anything other than "heat" or "cool" is considered auto. + var/targetTemperature = T20C + var/heatingPower = 40000 + var/efficiency = 20000 + var/temperatureTolerance = 1 + var/settableTemperatureMedian = 30 + T0C + var/settableTemperatureRange = 30 + +/obj/machinery/space_heater/New() + ..() + cell = new(src) + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/space_heater(null) + B.apply_default_parts(src) + update_icon() + +/obj/item/weapon/circuitboard/machine/space_heater + name = "circuit board (Space Heater)" + build_path = /obj/machinery/space_heater + origin_tech = "programming=2;engineering=2;plasmatech=2" + req_components = list( + /obj/item/weapon/stock_parts/micro_laser = 1, + /obj/item/weapon/stock_parts/capacitor = 1, + /obj/item/stack/cable_coil = 3) + +/obj/machinery/space_heater/on_construction() + qdel(cell) + cell = null + panel_open = TRUE + update_icon() + return ..() + +/obj/machinery/space_heater/on_deconstruction() + if(cell) + component_parts += cell + cell = null + return ..() + +/obj/machinery/space_heater/examine(mob/user) + ..() + user << "\The [src] is [on ? "on" : "off"], and the hatch is [panel_open ? "open" : "closed"]." + if(cell) + user << "The charge meter reads [cell ? round(cell.percent(), 1) : 0]%." + else + user << "There is no power cell installed." + +/obj/machinery/space_heater/update_icon() + if(on) + icon_state = "sheater-[mode]" + else + icon_state = "sheater-off" + + cut_overlays() + if(panel_open) + add_overlay("sheater-open") + +/obj/machinery/space_heater/process() + if(!on || !is_operational()) + return + + if(cell && cell.charge > 0) + var/turf/L = loc + if(!istype(L)) + if(mode != HEATER_MODE_STANDBY) + mode = HEATER_MODE_STANDBY + update_icon() + return + + var/datum/gas_mixture/env = L.return_air() + + var/newMode = HEATER_MODE_STANDBY + if(setMode != HEATER_MODE_COOL && env.temperature < targetTemperature - temperatureTolerance) + newMode = HEATER_MODE_HEAT + else if(setMode != HEATER_MODE_HEAT && env.temperature > targetTemperature + temperatureTolerance) + newMode = HEATER_MODE_COOL + + if(mode != newMode) + mode = newMode + update_icon() + + if(mode == HEATER_MODE_STANDBY) + return + + var/heat_capacity = env.heat_capacity() + var/requiredPower = abs(env.temperature - targetTemperature) * heat_capacity + requiredPower = min(requiredPower, heatingPower) + + if(requiredPower < 1) + return + + var/deltaTemperature = requiredPower / heat_capacity + if(mode == HEATER_MODE_COOL) + deltaTemperature *= -1 + if(deltaTemperature) + env.temperature += deltaTemperature + air_update_turf() + cell.use(requiredPower / efficiency) + else + on = FALSE + update_icon() + +/obj/machinery/space_heater/RefreshParts() + var/laser = 0 + var/cap = 0 + for(var/obj/item/weapon/stock_parts/micro_laser/M in component_parts) + laser += M.rating + for(var/obj/item/weapon/stock_parts/capacitor/M in component_parts) + cap += M.rating + + heatingPower = laser * 40000 + + settableTemperatureRange = cap * 30 + efficiency = (cap + 1) * 10000 + + targetTemperature = Clamp(targetTemperature, + max(settableTemperatureMedian - settableTemperatureRange, TCMB), + settableTemperatureMedian + settableTemperatureRange) + +/obj/machinery/space_heater/emp_act(severity) + if(stat & (BROKEN|NOPOWER)) + ..(severity) + return + if(cell) + cell.emp_act(severity) + ..(severity) + +/obj/machinery/space_heater/attackby(obj/item/I, mob/user, params) + add_fingerprint(user) + if(istype(I, /obj/item/weapon/stock_parts/cell)) + if(panel_open) + if(cell) + user << "There is already a power cell inside!" + return + else + // insert cell + var/obj/item/weapon/stock_parts/cell/C = usr.get_active_held_item() + if(istype(C)) + if(!user.drop_item()) + return + cell = C + C.loc = src + C.add_fingerprint(usr) + + user.visible_message("\The [user] inserts a power cell into \the [src].", "You insert the power cell into \the [src].") + SStgui.update_uis(src) + else + user << "The hatch must be open to insert a power cell!" + return + else if(istype(I, /obj/item/weapon/screwdriver)) + panel_open = !panel_open + user.visible_message("\The [user] [panel_open ? "opens" : "closes"] the hatch on \the [src].", "You [panel_open ? "open" : "close"] the hatch on \the [src].") + update_icon() + if(panel_open) + interact(user) + else if(exchange_parts(user, I) || default_deconstruction_crowbar(I)) + return + else + return ..() + +/obj/machinery/space_heater/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ + datum/tgui/master_ui = null, datum/ui_state/state = physical_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "space_heater", name, 400, 305, master_ui, state) + ui.open() + +/obj/machinery/space_heater/ui_data() + var/list/data = list() + data["open"] = panel_open + data["on"] = on + data["mode"] = setMode + data["hasPowercell"] = !!cell + if(cell) + data["powerLevel"] = round(cell.percent(), 1) + data["targetTemp"] = round(targetTemperature - T0C, 1) + data["minTemp"] = max(settableTemperatureMedian - settableTemperatureRange - T0C, TCMB) + data["maxTemp"] = settableTemperatureMedian + settableTemperatureRange - T0C + + var/turf/L = get_turf(loc) + var/curTemp + if(istype(L)) + var/datum/gas_mixture/env = L.return_air() + curTemp = env.temperature + else if(isturf(L)) + curTemp = L.temperature + if(isnull(curTemp)) + data["currentTemp"] = "N/A" + else + data["currentTemp"] = round(curTemp - T0C, 1) + return data + +/obj/machinery/space_heater/ui_act(action, params) + if(..()) + return + switch(action) + if("power") + on = !on + mode = HEATER_MODE_STANDBY + usr.visible_message("[usr] switches [on ? "on" : "off"] \the [src].", "You switch [on ? "on" : "off"] \the [src].") + update_icon() + . = TRUE + if("mode") + setMode = params["mode"] + . = TRUE + if("target") + if(!panel_open) + return + var/target = params["target"] + var/adjust = text2num(params["adjust"]) + if(target == "input") + target = input("New target temperature:", name, round(targetTemperature - T0C, 1)) as num|null + if(!isnull(target) && !..()) + target += T0C + . = TRUE + else if(adjust) + target = targetTemperature + adjust + . = TRUE + else if(text2num(target) != null) + target= text2num(target) + T0C + . = TRUE + if(.) + targetTemperature = Clamp(round(target), + max(settableTemperatureMedian - settableTemperatureRange, TCMB), + settableTemperatureMedian + settableTemperatureRange) + if("eject") + if(panel_open && cell) + cell.loc = get_turf(src) + cell = null + . = TRUE + +#undef HEATER_MODE_STANDBY +#undef HEATER_MODE_HEAT +#undef HEATER_MODE_COOL diff --git a/code/game/machinery/status_display.dm b/code/game/machinery/status_display.dm new file mode 100644 index 0000000..3930a1c --- /dev/null +++ b/code/game/machinery/status_display.dm @@ -0,0 +1,296 @@ +#define CHARS_PER_LINE 5 +#define FONT_SIZE "5pt" +#define FONT_COLOR "#09f" +#define FONT_STYLE "Arial Black" +#define SCROLL_SPEED 2 + +// Status display +// (formerly Countdown timer display) + +// Use to show shuttle ETA/ETD times +// Alert status +// And arbitrary messages set by comms computer + +/obj/machinery/status_display + icon = 'icons/obj/status_display.dmi' + icon_state = "frame" + name = "status display" + anchored = 1 + density = 0 + use_power = 1 + idle_power_usage = 10 + var/mode = 1 // 0 = Blank + // 1 = Emergency Shuttle timer + // 2 = Arbitrary message(s) + // 3 = alert picture + // 4 = Supply shuttle timer + // 5 = Generic shuttle timer + + var/picture_state // icon_state of alert picture + var/message1 = "" // message line 1 + var/message2 = "" // message line 2 + var/index1 // display index for scrolling messages or 0 if non-scrolling + var/index2 + + var/frequency = 1435 // radio frequency + var/supply_display = 0 // true if a supply shuttle display + var/shuttle_id // Id used for "generic shuttle timer" mode + + var/friendc = 0 // track if Friend Computer mode + + maptext_height = 26 + maptext_width = 32 + + // new display + // register for radio system + +/obj/machinery/status_display/New() + ..() + if(SSradio) + SSradio.add_object(src, frequency) + +/obj/machinery/status_display/initialize() + if(SSradio) + SSradio.add_object(src, frequency) + +/obj/machinery/status_display/Destroy() + if(SSradio) + SSradio.remove_object(src,frequency) + return ..() + +// timed process + +/obj/machinery/status_display/process() + if(stat & NOPOWER) + remove_display() + return + update() + +/obj/machinery/status_display/emp_act(severity) + if(stat & (BROKEN|NOPOWER)) + ..(severity) + return + set_picture("ai_bsod") + ..(severity) + +// set what is displayed + +/obj/machinery/status_display/proc/update() + if(friendc && mode!=4) //Makes all status displays except supply shuttle timer display the eye -- Urist + set_picture("ai_friend") + return + + switch(mode) + if(0) //blank + remove_display() + if(1) //emergency shuttle timer + display_shuttle_status() + if(2) //custom messages + var/line1 + var/line2 + + if(!index1) + line1 = message1 + else + line1 = copytext(message1+"|"+message1, index1, index1+CHARS_PER_LINE) + var/message1_len = length(message1) + index1 += SCROLL_SPEED + if(index1 > message1_len) + index1 -= message1_len + + if(!index2) + line2 = message2 + else + line2 = copytext(message2+"|"+message2, index2, index2+CHARS_PER_LINE) + var/message2_len = length(message2) + index2 += SCROLL_SPEED + if(index2 > message2_len) + index2 -= message2_len + update_display(line1, line2) + if(4) // supply shuttle timer + var/line1 + var/line2 + if(SSshuttle.supply.mode == SHUTTLE_IDLE) + if(SSshuttle.supply.z == ZLEVEL_STATION) + line1 = "CARGO" + line2 = "Docked" + else + line1 = "CARGO" + line2 = SSshuttle.supply.getTimerStr() + if(lentext(line2) > CHARS_PER_LINE) + line2 = "Error" + + update_display(line1, line2) + if(5) + display_shuttle_status() + +/obj/machinery/status_display/examine(mob/user) + . = ..() + switch(mode) + if(1,2,4,5) + user << "The display says:
            \t[message1]
            \t[message2]" + + +/obj/machinery/status_display/proc/set_message(m1, m2) + if(m1) + index1 = (length(m1) > CHARS_PER_LINE) + message1 = m1 + else + message1 = "" + index1 = 0 + + if(m2) + index2 = (length(m2) > CHARS_PER_LINE) + message2 = m2 + else + message2 = "" + index2 = 0 + +/obj/machinery/status_display/proc/set_picture(state) + picture_state = state + remove_display() + add_overlay(image('icons/obj/status_display.dmi', icon_state=picture_state)) + +/obj/machinery/status_display/proc/update_display(line1, line2) + var/new_text = {"
            [line1]
            [line2]
            "} + if(maptext != new_text) + maptext = new_text + +/obj/machinery/status_display/proc/remove_display() + if(overlays.len) + cut_overlays() + if(maptext) + maptext = "" + +/obj/machinery/status_display/proc/display_shuttle_status() + var/obj/docking_port/mobile/shuttle + + if(mode == 1) + shuttle = SSshuttle.emergency + else + shuttle = SSshuttle.getShuttle(shuttle_id) + + if(!shuttle) + update_display("shutl?","") + else if(shuttle.timer) + var/line1 = "-[shuttle.getModeStr()]-" + var/line2 = shuttle.getTimerStr() + + if(length(line2) > CHARS_PER_LINE) + line2 = "Error!" + update_display(line1, line2) + else + remove_display() + + +/obj/machinery/status_display/receive_signal(datum/signal/signal) + + switch(signal.data["command"]) + if("blank") + mode = 0 + + if("shuttle") + mode = 1 + + if("message") + mode = 2 + set_message(signal.data["msg1"], signal.data["msg2"]) + + if("alert") + mode = 3 + set_picture(signal.data["picture_state"]) + + if("supply") + if(supply_display) + mode = 4 + + + +/obj/machinery/ai_status_display + icon = 'icons/obj/status_display.dmi' + desc = "A small screen which the AI can use to present itself." + icon_state = "frame" + name = "\improper AI display" + anchored = 1 + density = 0 + + var/mode = 0 // 0 = Blank + // 1 = AI emoticon + // 2 = Blue screen of death + + var/picture_state // icon_state of ai picture + + var/emotion = "Neutral" + + +/obj/machinery/ai_status_display/process() + if(stat & NOPOWER) + cut_overlays() + return + + update() + +/obj/machinery/ai_status_display/emp_act(severity) + if(stat & (BROKEN|NOPOWER)) + ..(severity) + return + set_picture("ai_bsod") + ..(severity) + +/obj/machinery/ai_status_display/proc/update() + + if(mode==0) //Blank + cut_overlays() + return + + if(mode==1) // AI emoticon + switch(emotion) + if("Very Happy") + set_picture("ai_veryhappy") + if("Happy") + set_picture("ai_happy") + if("Neutral") + set_picture("ai_neutral") + if("Unsure") + set_picture("ai_unsure") + if("Confused") + set_picture("ai_confused") + if("Sad") + set_picture("ai_sad") + if("BSOD") + set_picture("ai_bsod") + if("Blank") + set_picture("ai_off") + if("Problems?") + set_picture("ai_trollface") + if("Awesome") + set_picture("ai_awesome") + if("Dorfy") + set_picture("ai_urist") + if("Facepalm") + set_picture("ai_facepalm") + if("Friend Computer") + set_picture("ai_friend") + if("Blue Glow") + set_picture("ai_sal") + if("Red Glow") + set_picture("ai_hal") + + return + + if(mode==2) // BSOD + set_picture("ai_bsod") + return + + +/obj/machinery/ai_status_display/proc/set_picture(state) + picture_state = state + if(overlays.len) + cut_overlays() + add_overlay(image('icons/obj/status_display.dmi', icon_state=picture_state)) + +#undef CHARS_PER_LINE +#undef FOND_SIZE +#undef FONT_COLOR +#undef FONT_STYLE +#undef SCROLL_SPEED diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm new file mode 100644 index 0000000..b5b7a96 --- /dev/null +++ b/code/game/machinery/suit_storage_unit.dm @@ -0,0 +1,392 @@ +// SUIT STORAGE UNIT ///////////////// +/obj/machinery/suit_storage_unit + name = "suit storage unit" + desc = "An industrial unit made to hold space suits. It comes with a built-in UV cauterization mechanism. A small warning label advises that organic matter should not be placed into the unit." + icon = 'icons/obj/suitstorage.dmi' + icon_state = "close" + anchored = 1 + density = 1 + obj_integrity = 250 + max_integrity = 250 + + var/obj/item/clothing/suit/space/suit = null + var/obj/item/clothing/head/helmet/space/helmet = null + var/obj/item/clothing/mask/mask = null + var/obj/item/storage = null + + var/suit_type = null + var/helmet_type = null + var/mask_type = null + var/storage_type = null + + state_open = FALSE + var/locked = FALSE + panel_open = FALSE + var/safeties = TRUE + + var/uv = FALSE + var/uv_super = FALSE + var/uv_cycles = 6 + +/obj/machinery/suit_storage_unit/standard_unit + suit_type = /obj/item/clothing/suit/space/eva + helmet_type = /obj/item/clothing/head/helmet/space/eva + mask_type = /obj/item/clothing/mask/breath + +/obj/machinery/suit_storage_unit/captain + suit_type = /obj/item/clothing/suit/space/hardsuit/captain + mask_type = /obj/item/clothing/mask/gas/sechailer + storage_type = /obj/item/weapon/tank/jetpack/oxygen/captain + +/obj/machinery/suit_storage_unit/engine + suit_type = /obj/item/clothing/suit/space/hardsuit/engine + mask_type = /obj/item/clothing/mask/breath + +/obj/machinery/suit_storage_unit/ce + suit_type = /obj/item/clothing/suit/space/hardsuit/engine/elite + mask_type = /obj/item/clothing/mask/breath + storage_type= /obj/item/clothing/shoes/magboots/advance + +/obj/machinery/suit_storage_unit/security + suit_type = /obj/item/clothing/suit/space/hardsuit/security + mask_type = /obj/item/clothing/mask/gas/sechailer + +/obj/machinery/suit_storage_unit/hos + suit_type = /obj/item/clothing/suit/space/hardsuit/security/hos + mask_type = /obj/item/clothing/mask/gas/sechailer + +/obj/machinery/suit_storage_unit/atmos + suit_type = /obj/item/clothing/suit/space/hardsuit/engine/atmos + mask_type = /obj/item/clothing/mask/gas + storage_type = /obj/item/weapon/watertank/atmos + +/obj/machinery/suit_storage_unit/mining + suit_type = /obj/item/clothing/suit/hooded/explorer + mask_type = /obj/item/clothing/mask/gas/explorer + +/obj/machinery/suit_storage_unit/mining/eva + suit_type = /obj/item/clothing/suit/space/hardsuit/mining + mask_type = /obj/item/clothing/mask/breath + +/obj/machinery/suit_storage_unit/cmo + suit_type = /obj/item/clothing/suit/space/hardsuit/medical + mask_type = /obj/item/clothing/mask/breath + +/obj/machinery/suit_storage_unit/rd + suit_type = /obj/item/clothing/suit/space/hardsuit/rd + mask_type = /obj/item/clothing/mask/breath + +/obj/machinery/suit_storage_unit/syndicate + suit_type = /obj/item/clothing/suit/space/hardsuit/syndi + mask_type = /obj/item/clothing/mask/gas/syndicate + storage_type = /obj/item/weapon/tank/jetpack/oxygen/harness + +/obj/machinery/suit_storage_unit/ert/command + suit_type = /obj/item/clothing/suit/space/hardsuit/ert + mask_type = /obj/item/clothing/mask/breath + storage_type = /obj/item/weapon/tank/internals/emergency_oxygen/double + +/obj/machinery/suit_storage_unit/ert/security + suit_type = /obj/item/clothing/suit/space/hardsuit/ert/sec + mask_type = /obj/item/clothing/mask/breath + storage_type = /obj/item/weapon/tank/internals/emergency_oxygen/double + +/obj/machinery/suit_storage_unit/ert/engineer + suit_type = /obj/item/clothing/suit/space/hardsuit/ert/engi + mask_type = /obj/item/clothing/mask/breath + storage_type = /obj/item/weapon/tank/internals/emergency_oxygen/double + +/obj/machinery/suit_storage_unit/ert/medical + suit_type = /obj/item/clothing/suit/space/hardsuit/ert/med + mask_type = /obj/item/clothing/mask/breath + storage_type = /obj/item/weapon/tank/internals/emergency_oxygen/double + +/obj/machinery/suit_storage_unit/New() + ..() + wires = new /datum/wires/suit_storage_unit(src) + if(suit_type) + suit = new suit_type(src) + if(helmet_type) + helmet = new helmet_type(src) + if(mask_type) + mask = new mask_type(src) + if(storage_type) + storage = new storage_type(src) + update_icon() + +/obj/machinery/suit_storage_unit/Destroy() + if(suit) + qdel(suit) + suit = null + if(helmet) + qdel(helmet) + helmet = null + if(mask) + qdel(mask) + mask = null + if(storage) + qdel(storage) + storage = null + return ..() + +/obj/machinery/suit_storage_unit/update_icon() + cut_overlays() + + if(uv) + if(uv_super) + add_overlay("super") + else if(occupant) + add_overlay("uvhuman") + else + add_overlay("uv") + else if(state_open) + if(stat & BROKEN) + add_overlay("broken") + else + add_overlay("open") + if(suit) + add_overlay("suit") + if(helmet) + add_overlay("helm") + if(storage) + add_overlay("storage") + else if(occupant) + add_overlay("human") + +/obj/machinery/suit_storage_unit/power_change() + ..() + if(!is_operational() && state_open) + open_machine() + dump_contents() + update_icon() + +/obj/machinery/suit_storage_unit/proc/dump_contents() + dropContents() + helmet = null + suit = null + mask = null + storage = null + occupant = null + +/obj/machinery/suit_storage_unit/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + open_machine() + dump_contents() + new /obj/item/stack/sheet/metal (loc, 2) + qdel(src) + +/obj/machinery/suit_storage_unit/MouseDrop_T(atom/A, mob/user) + if(user.stat || user.lying || !Adjacent(user) || !Adjacent(A) || !isliving(A)) + return + var/mob/living/target = A + if(!state_open) + user << "The unit's doors are shut!" + return + if(!is_operational()) + user << "The unit is not operational!" + return + if(occupant || helmet || suit || storage) + user << "It's too cluttered inside to fit in!" + return + + if(target == user) + user.visible_message("[user] starts squeezing into [src]!", "You start working your way into [src]...") + else + target.visible_message("[user] starts shoving [target] into [src]!", "[user] starts shoving you into [src]!") + + if(do_mob(user, target, 30)) + if(occupant || helmet || suit || storage) + return + if(target == user) + user.visible_message("[user] slips into [src] and closes the door behind them!", "You slip into [src]'s cramped space and shut its door.") + else + target.visible_message("[user] pushes [target] into [src] and shuts its door!", "[user] shoves you into [src] and shuts the door!") + close_machine(target) + add_fingerprint(user) + +/obj/machinery/suit_storage_unit/proc/cook() + if(uv_cycles) + uv_cycles-- + uv = TRUE + locked = TRUE + update_icon() + if(occupant) + if(uv_super) + occupant.adjustFireLoss(rand(20, 36)) + else + occupant.adjustFireLoss(rand(10, 16)) + if(iscarbon(occupant)) + occupant.emote("scream") + addtimer(src, "cook", 50, FALSE) + else + uv_cycles = initial(uv_cycles) + uv = FALSE + locked = FALSE + if(uv_super) + visible_message("[src]'s door creaks open with a loud whining noise. A cloud of foul black smoke escapes from its chamber.") + playsound(src, 'sound/machines/airlock_alien_prying.ogg', 50, 1) + helmet = null + qdel(helmet) + suit = null + qdel(suit) // Delete everything but the occupant. + mask = null + qdel(mask) + storage = null + qdel(storage) + // The wires get damaged too. + wires.cut_all() + else + if(!occupant) + visible_message("[src]'s door slides open. The glowing yellow lights dim to a gentle green.") + else + visible_message("[src]'s door slides open, barraging you with the nauseating smell of charred flesh.") + playsound(src, 'sound/machines/AirlockClose.ogg', 25, 1) + for(var/obj/item/I in src) //Scorches away blood and forensic evidence, although the SSU itself is unaffected + I.clean_blood() + I.fingerprints = list() + open_machine(FALSE) + if(occupant) + dump_contents() + +/obj/machinery/suit_storage_unit/proc/shock(mob/user, prb) + if(!prob(prb)) + var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread + s.set_up(5, 1, src) + s.start() + if(electrocute_mob(user, src, src)) + return 1 + +/obj/machinery/suit_storage_unit/relaymove(mob/user) + container_resist() + +/obj/machinery/suit_storage_unit/container_resist() + var/mob/living/user = usr + add_fingerprint(user) + if(locked) + visible_message("You see [user] kicking against the doors of [src]!", "You start kicking against the doors...") + addtimer(src, "resist_open", 300, FALSE, user) + else + open_machine() + dump_contents() + +/obj/machinery/suit_storage_unit/proc/resist_open(mob/user) + if(!state_open && occupant && (user in src) && user.stat == 0) // Check they're still here. + visible_message("You see [user] bursts out of [src]!", "You escape the cramped confines of [src]!") + open_machine() + +/obj/machinery/suit_storage_unit/attackby(obj/item/I, mob/user, params) + if(state_open && is_operational()) + if(istype(I, /obj/item/clothing/suit/space)) + if(suit) + user << "The unit already contains a suit!." + return + if(!user.drop_item()) + return + suit = I + else if(istype(I, /obj/item/clothing/head/helmet)) + if(helmet) + user << "The unit already contains a helmet!" + return + if(!user.drop_item()) + return + helmet = I + else if(istype(I, /obj/item/clothing/mask)) + if(mask) + user << "The unit already contains a mask!" + return + if(!user.drop_item()) + return + mask = I + else + if(storage) + user << "The auxiliary storage compartment is full!" + return + if(!user.drop_item()) + return + storage = I + + I.loc = src + visible_message("[user] inserts [I] into [src]", "You load [I] into [src].") + update_icon() + return + + if(panel_open && is_wire_tool(I)) + wires.interact(user) + if(!state_open) + if(default_deconstruction_screwdriver(user, "panel", "close", I)) + return + if(default_pry_open(I)) + dump_contents() + return + + return ..() + +/obj/machinery/suit_storage_unit/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ + datum/tgui/master_ui = null, datum/ui_state/state = notcontained_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "suit_storage_unit", name, 400, 305, master_ui, state) + ui.open() + +/obj/machinery/suit_storage_unit/ui_data() + var/list/data = list() + data["locked"] = locked + data["open"] = state_open + data["safeties"] = safeties + data["uv_active"] = uv + data["uv_super"] = uv_super + if(helmet) + data["helmet"] = helmet.name + if(suit) + data["suit"] = suit.name + if(mask) + data["mask"] = mask.name + if(storage) + data["storage"] = storage.name + if(occupant) + data["occupied"] = 1 + return data + +/obj/machinery/suit_storage_unit/ui_act(action, params) + if(..() || uv) + return + switch(action) + if("door") + if(state_open) + close_machine() + else + open_machine(0) + if(occupant) + dump_contents() // Dump out contents if someone is in there. + . = TRUE + if("lock") + locked = !locked + . = TRUE + if("uv") + if(occupant && safeties) + return + else if(!helmet && !mask && !suit && !storage && !occupant) + return + else + if(occupant) + occupant << "[src]'s confines grow warm, then hot, then scorching. You're being burned [!occupant.stat ? "alive" : "away"]!" + cook() + . = TRUE + if("dispense") + if(!state_open) + return + switch(params["item"]) + if("helmet") + helmet.loc = loc + helmet = null + if("suit") + suit.loc = loc + suit = null + if("mask") + mask.loc = loc + mask = null + if("storage") + storage.loc = loc + storage = null + . = TRUE + update_icon() \ No newline at end of file diff --git a/code/game/machinery/syndicatebeacon.dm b/code/game/machinery/syndicatebeacon.dm new file mode 100644 index 0000000..c6c7bad --- /dev/null +++ b/code/game/machinery/syndicatebeacon.dm @@ -0,0 +1,123 @@ +//////////////////////////////////////// +//Singularity beacon +//////////////////////////////////////// +/obj/machinery/power/singularity_beacon + name = "ominous beacon" + desc = "This looks suspicious..." + icon = 'icons/obj/singularity.dmi' + icon_state = "beacon" + + anchored = 0 + density = 1 + layer = BELOW_MOB_LAYER //so people can't hide it and it's REALLY OBVIOUS + stat = 0 + + var/active = 0 + var/icontype = "beacon" + + +/obj/machinery/power/singularity_beacon/proc/Activate(mob/user = null) + if(surplus() < 1500) + if(user) user << "The connected wire doesn't have enough current." + return + for(var/obj/singularity/singulo in world) + if(singulo.z == z) + singulo.target = src + icon_state = "[icontype]1" + active = 1 + machines |= src + if(user) + user << "You activate the beacon." + + +/obj/machinery/power/singularity_beacon/proc/Deactivate(mob/user = null) + for(var/obj/singularity/singulo in world) + if(singulo.target == src) + singulo.target = null + icon_state = "[icontype]0" + active = 0 + if(user) + user << "You deactivate the beacon." + + +/obj/machinery/power/singularity_beacon/attack_ai(mob/user) + return + + +/obj/machinery/power/singularity_beacon/attack_hand(mob/user) + if(anchored) + return active ? Deactivate(user) : Activate(user) + else + user << "You need to screw the beacon to the floor first!" + return + + +/obj/machinery/power/singularity_beacon/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W,/obj/item/weapon/screwdriver)) + if(active) + user << "You need to deactivate the beacon first!" + return + + if(anchored) + anchored = 0 + user << "You unscrew the beacon from the floor." + disconnect_from_network() + return + else + if(!connect_to_network()) + user << "This device must be placed over an exposed, powered cable node!" + return + anchored = 1 + user << "You screw the beacon to the floor and attach the cable." + return + else + return ..() + +/obj/machinery/power/singularity_beacon/Destroy() + if(active) + Deactivate() + return ..() + +//stealth direct power usage +/obj/machinery/power/singularity_beacon/process() + if(!active) + return PROCESS_KILL + else + if(surplus() > 1500) + add_load(1500) + else + Deactivate() + + +/obj/machinery/power/singularity_beacon/syndicate + icontype = "beaconsynd" + icon_state = "beaconsynd0" + +// SINGULO BEACON SPAWNER +/obj/item/device/sbeacondrop + name = "suspicious beacon" + icon = 'icons/obj/radio.dmi' + icon_state = "beacon" + desc = "A label on it reads: Warning: Activating this device will send a special beacon to your location." + origin_tech = "bluespace=6;syndicate=5" + w_class = 2 + var/droptype = /obj/machinery/power/singularity_beacon/syndicate + + +/obj/item/device/sbeacondrop/attack_self(mob/user) + if(user) + user << "Locked In." + new droptype( user.loc ) + playsound(src, 'sound/effects/pop.ogg', 100, 1, 1) + qdel(src) + return + +/obj/item/device/sbeacondrop/bomb + desc = "A label on it reads: Warning: Activating this device will send a high-ordinance explosive to your location." + droptype = /obj/machinery/syndicatebomb + origin_tech = "bluespace=5;syndicate=5" + +/obj/item/device/sbeacondrop/powersink + desc = "A label on it reads: Warning: Activating this device will send a power draining device to your location." + droptype = /obj/item/device/powersink + origin_tech = "bluespace=4;syndicate=5" diff --git a/code/game/machinery/syndicatebomb.dm b/code/game/machinery/syndicatebomb.dm new file mode 100644 index 0000000..20c1bea --- /dev/null +++ b/code/game/machinery/syndicatebomb.dm @@ -0,0 +1,533 @@ +#define BUTTON_COOLDOWN 30 + +/obj/machinery/syndicatebomb + icon = 'icons/obj/assemblies.dmi' + name = "syndicate bomb" + icon_state = "syndicate-bomb" + desc = "A large and menacing device. Can be bolted down with a wrench." + + anchored = 0 + density = 0 + layer = BELOW_MOB_LAYER //so people can't hide it and it's REALLY OBVIOUS + resistance_flags = FIRE_PROOF | ACID_PROOF + + var/minimum_timer = 60 + var/timer_set = 60 + var/maximum_timer = 60000 + + var/open_panel = FALSE //are the wires exposed? + var/active = FALSE //is the bomb counting down? + var/defused = FALSE //is the bomb capable of exploding? + var/obj/item/weapon/bombcore/payload = /obj/item/weapon/bombcore + var/beepsound = 'sound/items/timer.ogg' + var/delayedbig = FALSE //delay wire pulsed? + var/delayedlittle = FALSE //activation wire pulsed? + var/obj/effect/countdown/syndicatebomb/countdown + + var/next_beep + var/detonation_timer + var/explode_now = FALSE + +/obj/machinery/syndicatebomb/process() + if(!active) + STOP_PROCESSING(SSfastprocess, src) + detonation_timer = null + next_beep = null + countdown.stop() + return + + if(!isnull(next_beep) && (next_beep <= world.time)) + var/volume + switch(seconds_remaining()) + if(0 to 5) + volume = 50 + if(5 to 10) + volume = 40 + if(10 to 15) + volume = 30 + if(15 to 20) + volume = 20 + if(20 to 25) + volume = 10 + else + volume = 5 + playsound(loc, beepsound, volume, 0) + next_beep = world.time + 10 + + if(active && !defused && ((detonation_timer <= world.time) || explode_now)) + active = FALSE + timer_set = initial(timer_set) + update_icon() + if(payload in src) + payload.detonate() + //Counter terrorists win + else if(!active || defused) + if(defused && payload in src) + payload.defuse() + countdown.stop() + STOP_PROCESSING(SSfastprocess, src) + +/obj/machinery/syndicatebomb/New() + wires = new /datum/wires/syndicatebomb(src) + if(src.payload) + payload = new payload(src) + update_icon() + countdown = new(src) + ..() + +/obj/machinery/syndicatebomb/Destroy() + qdel(wires) + wires = null + if(countdown) + qdel(countdown) + countdown = null + STOP_PROCESSING(SSfastprocess, src) + . = ..() + +/obj/machinery/syndicatebomb/examine(mob/user) + ..() + user << "A digital display on it reads \"[seconds_remaining()]\"." + +/obj/machinery/syndicatebomb/update_icon() + icon_state = "[initial(icon_state)][active ? "-active" : "-inactive"][open_panel ? "-wires" : ""]" + +/obj/machinery/syndicatebomb/proc/seconds_remaining() + if(active) + . = max(0, round((detonation_timer - world.time) / 10)) + else + . = timer_set + +/obj/machinery/syndicatebomb/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/wrench)) + if(!anchored) + if(!isturf(loc) || isspaceturf(loc)) + user << "The bomb must be placed on solid ground to attach it." + else + user << "You firmly wrench the bomb to the floor." + playsound(loc, 'sound/items/ratchet.ogg', 50, 1) + anchored = 1 + if(active) + user << "The bolts lock in place." + else + if(!active) + user << "You wrench the bomb from the floor." + playsound(loc, 'sound/items/ratchet.ogg', 50, 1) + anchored = 0 + else + user << "The bolts are locked down!" + + else if(istype(I, /obj/item/weapon/screwdriver)) + open_panel = !open_panel + update_icon() + user << "You [open_panel ? "open" : "close"] the wire panel." + + else if(is_wire_tool(I) && open_panel) + wires.interact(user) + + else if(istype(I, /obj/item/weapon/crowbar)) + if(open_panel && wires.is_all_cut()) + if(payload) + user << "You carefully pry out [payload]." + payload.loc = user.loc + payload = null + else + user << "There isn't anything in here to remove!" + else if (open_panel) + user << "The wires connecting the shell to the explosives are holding it down!" + else + user << "The cover is screwed on, it won't pry off!" + else if(istype(I, /obj/item/weapon/bombcore)) + if(!payload) + if(!user.drop_item()) + return + payload = I + user << "You place [payload] into [src]." + payload.loc = src + else + user << "[payload] is already loaded into [src]! You'll have to remove it first." + else if(istype(I, /obj/item/weapon/weldingtool)) + if(payload || !wires.is_all_cut() || !open_panel) + return + var/obj/item/weapon/weldingtool/WT = I + if(!WT.isOn()) + return + if(WT.get_fuel() < 5) //uses up 5 fuel. + user << "You need more fuel to complete this task!" + return + + playsound(loc, pick('sound/items/Welder.ogg', 'sound/items/Welder2.ogg'), 50, 1) + user << "You start to cut the [src] apart..." + if(do_after(user, 20/I.toolspeed, target = src)) + if(!WT.isOn() || !WT.remove_fuel(5, user)) + return + user << "You cut the [src] apart." + new /obj/item/stack/sheet/plasteel( loc, 5) + qdel(src) + else + . = ..() + +/obj/machinery/syndicatebomb/attack_hand(mob/user) + interact(user) + +/obj/machinery/syndicatebomb/attack_ai() + return + +/obj/machinery/syndicatebomb/interact(mob/user) + wires.interact(user) + if(!open_panel) + if(!active) + settings(user) + else if(anchored) + user << "The bomb is bolted to the floor!" + +/obj/machinery/syndicatebomb/proc/activate() + active = TRUE + START_PROCESSING(SSfastprocess, src) + countdown.start() + next_beep = world.time + 10 + detonation_timer = world.time + (timer_set * 10) + playsound(loc, 'sound/machines/click.ogg', 30, 1) + +/obj/machinery/syndicatebomb/proc/settings(mob/user) + var/new_timer = input(user, "Please set the timer.", "Timer", "[timer_set]") as num + if(in_range(src, user) && isliving(user)) //No running off and setting bombs from across the station + timer_set = Clamp(new_timer, minimum_timer, maximum_timer) + src.loc.visible_message("\icon[src] timer set for [timer_set] seconds.") + if(alert(user,"Would you like to start the countdown now?",,"Yes","No") == "Yes" && in_range(src, user) && isliving(user)) + if(defused || active) + if(defused) + src.loc.visible_message("\icon[src] Device error: User intervention required.") + return + else + src.loc.visible_message("\icon[src] [timer_set] seconds until detonation, please clear the area.") + activate() + update_icon() + add_fingerprint(user) + + var/turf/bombturf = get_turf(src) + var/area/A = get_area(bombturf) + if(payload && !istype(payload, /obj/item/weapon/bombcore/training)) + message_admins("[ADMIN_LOOKUPFLW(user)] has primed a [name] ([payload]) for detonation at [A.name] [ADMIN_JMP(bombturf)].") + log_game("[key_name(user)] has primed a [name] ([payload]) for detonation at [A.name][COORD(bombturf)]") + payload.adminlog = "The [src.name] that [key_name(user)] had primed detonated!" + +///Bomb Subtypes/// + +/obj/machinery/syndicatebomb/training + name = "training bomb" + icon_state = "training-bomb" + desc = "A salvaged syndicate device gutted of its explosives to be used as a training aid for aspiring bomb defusers." + payload = /obj/item/weapon/bombcore/training/ + +/obj/machinery/syndicatebomb/badmin + name = "generic summoning badmin bomb" + desc = "Oh god what is in this thing?" + payload = /obj/item/weapon/bombcore/badmin/summon/ + +/obj/machinery/syndicatebomb/badmin/clown + name = "clown bomb" + icon_state = "clown-bomb" + desc = "HONK." + payload = /obj/item/weapon/bombcore/badmin/summon/clown + beepsound = 'sound/items/bikehorn.ogg' + +/obj/machinery/syndicatebomb/badmin/varplosion + payload = /obj/item/weapon/bombcore/badmin/explosion/ + +/obj/machinery/syndicatebomb/empty + name = "bomb" + icon_state = "base-bomb" + desc = "An ominous looking device designed to detonate an explosive payload. Can be bolted down using a wrench." + payload = null + open_panel = TRUE + timer_set = 120 + +/obj/machinery/syndicatebomb/empty/New() + ..() + wires.cut_all() + +///Bomb Cores/// + +/obj/item/weapon/bombcore + name = "bomb payload" + desc = "A powerful secondary explosive of syndicate design and unknown composition, it should be stable under normal conditions..." + icon = 'icons/obj/assemblies.dmi' + icon_state = "bombcore" + item_state = "eshield0" + w_class = 3 + origin_tech = "syndicate=5;combat=6" + resistance_flags = FLAMMABLE //Burnable (but the casing isn't) + var/adminlog = null + +/obj/item/weapon/bombcore/ex_act(severity, target) // Little boom can chain a big boom. + detonate() + + +/obj/item/weapon/bombcore/burn() + detonate() + ..() + +/obj/item/weapon/bombcore/proc/detonate() + if(adminlog) + message_admins(adminlog) + log_game(adminlog) + explosion(get_turf(src), 3, 9, 17, flame_range = 17) + if(loc && istype(loc,/obj/machinery/syndicatebomb/)) + qdel(loc) + qdel(src) + +/obj/item/weapon/bombcore/proc/defuse() +//Note: Because of how var/defused is used you shouldn't override this UNLESS you intend to set the var to 0 or +// otherwise remove the core/reset the wires before the end of defuse(). It will repeatedly be called otherwise. + +///Bomb Core Subtypes/// + +/obj/item/weapon/bombcore/training + name = "dummy payload" + desc = "A nanotrasen replica of a syndicate payload. Its not intended to explode but to announce that it WOULD have exploded, then rewire itself to allow for more training." + origin_tech = null + var/defusals = 0 + var/attempts = 0 + +/obj/item/weapon/bombcore/training/proc/reset() + var/obj/machinery/syndicatebomb/holder = loc + if(istype(holder)) + if(holder.wires) + holder.wires.repair() + holder.wires.shuffle_wires() + holder.defused = 0 + holder.open_panel = 0 + holder.delayedbig = FALSE + holder.delayedlittle = FALSE + holder.update_icon() + holder.updateDialog() + +/obj/item/weapon/bombcore/training/detonate() + var/obj/machinery/syndicatebomb/holder = loc + if(istype(holder)) + attempts++ + holder.loc.visible_message("\icon[holder] Alert: Bomb has detonated. Your score is now [defusals] for [attempts]. Resetting wires...") + reset() + else + qdel(src) + +/obj/item/weapon/bombcore/training/defuse() + var/obj/machinery/syndicatebomb/holder = loc + if(istype(holder)) + attempts++ + defusals++ + holder.loc.visible_message("\icon[holder] Alert: Bomb has been defused. Your score is now [defusals] for [attempts]! Resetting wires in 5 seconds...") + sleep(50) //Just in case someone is trying to remove the bomb core this gives them a little window to crowbar it out + if(istype(holder)) + reset() + +/obj/item/weapon/bombcore/badmin + name = "badmin payload" + desc = "If you're seeing this someone has either made a mistake or gotten dangerously savvy with var editing!" + origin_tech = null + +/obj/item/weapon/bombcore/badmin/defuse() //because we wouldn't want them being harvested by players + var/obj/machinery/syndicatebomb/B = loc + qdel(B) + qdel(src) + +/obj/item/weapon/bombcore/badmin/summon/ + var/summon_path = /obj/item/weapon/reagent_containers/food/snacks/cookie + var/amt_summon = 1 + +/obj/item/weapon/bombcore/badmin/summon/detonate() + var/obj/machinery/syndicatebomb/B = src.loc + spawn_and_random_walk(summon_path, src, amt_summon, walk_chance=50, admin_spawn=TRUE) + qdel(B) + qdel(src) + +/obj/item/weapon/bombcore/badmin/summon/clown + summon_path = /mob/living/simple_animal/hostile/retaliate/clown + amt_summon = 100 + +/obj/item/weapon/bombcore/badmin/summon/clown/defuse() + playsound(src.loc, 'sound/misc/sadtrombone.ogg', 50) + ..() + +/obj/item/weapon/bombcore/badmin/explosion + var/HeavyExplosion = 2 + var/MediumExplosion = 5 + var/LightExplosion = 11 + var/Flames = 11 + +/obj/item/weapon/bombcore/badmin/explosion/detonate() + explosion(get_turf(src), HeavyExplosion, MediumExplosion, LightExplosion, flame_range = Flames) + qdel(src) + +/obj/item/weapon/bombcore/miniature + name = "small bomb core" + w_class = 2 + +/obj/item/weapon/bombcore/miniature/detonate() + if(adminlog) + message_admins(adminlog) + log_game(adminlog) + explosion(src.loc, 1, 2, 4, flame_range = 2) //Identical to a minibomb + qdel(src) + +/obj/item/weapon/bombcore/chemical + name = "chemical payload" + desc = "An explosive payload designed to spread chemicals, dangerous or otherwise, across a large area. It is able to hold up to four chemical containers, and must be loaded before use." + origin_tech = "combat=4;materials=3" + icon_state = "chemcore" + var/list/beakers = list() + var/max_beakers = 1 + var/spread_range = 5 + var/temp_boost = 50 + var/time_release = 0 + +/obj/item/weapon/bombcore/chemical/detonate() + + if(time_release > 0) + var/total_volume = 0 + for(var/obj/item/weapon/reagent_containers/RC in beakers) + total_volume += RC.reagents.total_volume + + if(total_volume < time_release) // If it's empty, the detonation is complete. + if(loc && istype(loc,/obj/machinery/syndicatebomb/)) + qdel(loc) + qdel(src) + return + + var/fraction = time_release/total_volume + var/datum/reagents/reactants = new(time_release) + reactants.my_atom = src + for(var/obj/item/weapon/reagent_containers/RC in beakers) + RC.reagents.trans_to(reactants, RC.reagents.total_volume*fraction, 1, 1, 1) + chem_splash(get_turf(src), spread_range, list(reactants), temp_boost) + + // Detonate it again in one second, until it's out of juice. + addtimer(src, "detonate", 10) + + // If it's not a time release bomb, do normal explosion + + var/list/reactants = list() + + for(var/obj/item/weapon/reagent_containers/glass/G in beakers) + reactants += G.reagents + + for(var/obj/item/slime_extract/S in beakers) + if(S.Uses) + for(var/obj/item/weapon/reagent_containers/glass/G in beakers) + G.reagents.trans_to(S, G.reagents.total_volume) + + if(S && S.reagents && S.reagents.total_volume) + reactants += S.reagents + + if(!chem_splash(get_turf(src), spread_range, reactants, temp_boost)) + playsound(loc, 'sound/items/Screwdriver2.ogg', 50, 1) + return // The Explosion didn't do anything. No need to log, or disappear. + + if(adminlog) + message_admins(adminlog) + log_game(adminlog) + + playsound(loc, 'sound/effects/bamf.ogg', 75, 1, 5) + + if(loc && istype(loc,/obj/machinery/syndicatebomb/)) + qdel(loc) + qdel(src) + +/obj/item/weapon/bombcore/chemical/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/crowbar) && beakers.len > 0) + playsound(loc, 'sound/items/Crowbar.ogg', 50, 1) + for (var/obj/item/B in beakers) + B.loc = get_turf(src) + beakers -= B + return + else if(istype(I, /obj/item/weapon/reagent_containers/glass/beaker) || istype(I, /obj/item/weapon/reagent_containers/glass/bottle)) + if(beakers.len < max_beakers) + if(!user.drop_item()) + return + beakers += I + user << "You load [src] with [I]." + I.loc = src + else + user << "The [I] wont fit! The [src] can only hold up to [max_beakers] containers." + return + ..() + +/obj/item/weapon/bombcore/chemical/CheckParts(list/parts_list) + ..() + // Using different grenade casings, causes the payload to have different properties. + var/obj/item/weapon/stock_parts/matter_bin/MB = locate(/obj/item/weapon/stock_parts/matter_bin) in src + if(MB) + max_beakers += MB.rating // max beakers = 2-5. + qdel(MB) + for(var/obj/item/weapon/grenade/chem_grenade/G in src) + + if(istype(G, /obj/item/weapon/grenade/chem_grenade/large)) + var/obj/item/weapon/grenade/chem_grenade/large/LG = G + max_beakers += 1 // Adding two large grenades only allows for a maximum of 7 beakers. + spread_range += 2 // Extra range, reduced density. + temp_boost += 50 // maximum of +150K blast using only large beakers. Not enough to self ignite. + for(var/obj/item/slime_extract/S in LG.beakers) // And slime cores. + if(beakers.len < max_beakers) + beakers += S + S.loc = src + else + S.loc = get_turf(src) + + if(istype(G, /obj/item/weapon/grenade/chem_grenade/cryo)) + spread_range -= 1 // Reduced range, but increased density. + temp_boost -= 100 // minimum of -150K blast. + + if(istype(G, /obj/item/weapon/grenade/chem_grenade/pyro)) + temp_boost += 150 // maximum of +350K blast, which is enough to self ignite. Which means a self igniting bomb can't take advantage of other grenade casing properties. Sorry? + + if(istype(G, /obj/item/weapon/grenade/chem_grenade/adv_release)) + time_release += 50 // A typical bomb, using basic beakers, will explode over 2-4 seconds. Using two will make the reaction last for less time, but it will be more dangerous overall. + + for(var/obj/item/weapon/reagent_containers/glass/B in G) + if(beakers.len < max_beakers) + beakers += B + B.loc = src + else + B.loc = get_turf(src) + + qdel(G) + + + + +///Syndicate Detonator (aka the big red button)/// + +/obj/item/device/syndicatedetonator + name = "big red button" + desc = "Nothing good can come of pressing a button this garish..." + icon = 'icons/obj/assemblies.dmi' + icon_state = "bigred" + item_state = "electronic" + w_class = 1 + origin_tech = "syndicate=3" + var/timer = 0 + var/detonated = 0 + var/existant = 0 + +/obj/item/device/syndicatedetonator/attack_self(mob/user) + if(timer < world.time) + for(var/obj/machinery/syndicatebomb/B in machines) + if(B.active) + B.explode_now = TRUE + detonated++ + existant++ + playsound(user, 'sound/machines/click.ogg', 20, 1) + user << "[existant] found, [detonated] triggered." + if(detonated) + var/turf/T = get_turf(src) + var/area/A = get_area(T) + detonated-- + var/log_str = "[ADMIN_LOOKUPFLW(user)] has remotely detonated [detonated ? "syndicate bombs" : "a syndicate bomb"] using a [name] at [A.name] [ADMIN_JMP(T)]." + bombers += log_str + message_admins(log_str) + log_game("[key_name(user)] has remotely detonated [detonated ? "syndicate bombs" : "a syndicate bomb"] using a [name] at [A.name][COORD(T)]") + detonated = 0 + existant = 0 + timer = world.time + BUTTON_COOLDOWN + +#undef BUTTON_COOLDOWN diff --git a/code/game/machinery/telecomms/broadcasting.dm b/code/game/machinery/telecomms/broadcasting.dm new file mode 100644 index 0000000..66c7079 --- /dev/null +++ b/code/game/machinery/telecomms/broadcasting.dm @@ -0,0 +1,441 @@ + +/** + + Here is the big, bad function that broadcasts a message given the appropriate + parameters. + + @param M: + Reference to the mob/speaker, stored in signal.data["mob"] + + @param vmask: + Boolean value if the mob is "hiding" its identity via voice mask, stored in + signal.data["vmask"] + + @param vmessage: + If specified, will display this as the message; such as "chimpering" + for monkeys if the mob is not understood. Stored in signal.data["vmessage"]. + + @param radio: + Reference to the radio broadcasting the message, stored in signal.data["radio"] + + @param message: + The actual string message to display to mobs who understood mob M. Stored in + signal.data["message"] + + @param name: + The name to display when a mob receives the message. signal.data["name"] + + @param job: + The name job to display for the AI when it receives the message. signal.data["job"] + + @param realname: + The "real" name associated with the mob. signal.data["realname"] + + @param vname: + If specified, will use this name when mob M is not understood. signal.data["vname"] + + @param data: + If specified: + 1 -- Will only broadcast to intercoms + 2 -- Will only broadcast to intercoms and station-bounced radios + 3 -- Broadcast to syndicate frequency + 4 -- AI can't track down this person. Useful for imitation broadcasts where you can't find the actual mob + + @param compression: + If 0, the signal is audible + If nonzero, the signal may be partially inaudible or just complete gibberish. + + @param level: + The list of Z levels that the sending radio is broadcasting to. Having 0 in the list broadcasts on all levels + + @param freq + The frequency of the signal + +**/ + + +/proc/Broadcast_Message(var/atom/movable/AM, + var/vmask, var/obj/item/device/radio/radio, + var/message, var/name, var/job, var/realname, + var/data, var/compression, var/list/level, var/freq, var/list/spans, + var/verb_say, var/verb_ask, var/verb_exclaim, var/verb_yell) + + message = copytext(message, 1, MAX_BROADCAST_LEN) + + if(!message) + return + + var/list/radios = list() + + var/atom/movable/virtualspeaker/virt = PoolOrNew(/atom/movable/virtualspeaker,null) + virt.name = name + virt.job = job + virt.languages_spoken = AM.languages_spoken + virt.languages_understood = AM.languages_understood + virt.source = AM + virt.radio = radio + virt.verb_say = verb_say + virt.verb_ask = verb_ask + virt.verb_exclaim = verb_exclaim + virt.verb_yell = verb_yell + + if(compression > 0) + message = Gibberish(message, compression + 40) + + // --- Broadcast only to intercom devices --- + + if(data == 1) + for(var/obj/item/device/radio/intercom/R in all_radios["[freq]"]) + if(R.receive_range(freq, level) > -1) + radios += R + + // --- Broadcast only to intercoms and station-bounced radios --- + + else if(data == 2) + + for(var/obj/item/device/radio/R in all_radios["[freq]"]) + if(R.subspace_transmission) + continue + + if(R.receive_range(freq, level) > -1) + radios += R + + // --- This space left blank for Syndicate data --- + + // --- Centcom radio, yo. --- + + else if(data == 5) + + for(var/obj/item/device/radio/R in all_radios["[freq]"]) + if(!R.centcom) + continue + + if(R.receive_range(freq, level) > -1) + radios += R + + // --- Broadcast to ALL radio devices --- + + else + for(var/obj/item/device/radio/R in all_radios["[freq]"]) + if(R.receive_range(freq, level) > -1) + radios += R + + var/freqtext = num2text(freq) + for(var/obj/item/device/radio/R in all_radios["[SYND_FREQ]"]) //syndicate radios use magic that allows them to hear everything. this was already the case, now it just doesn't need the allinone anymore. solves annoying bugs that aren't worth solving. + if(R.receive_range(SYND_FREQ, list(R.z)) > -1 && freqtext in radiochannelsreverse) + radios |= R + + // Get a list of mobs who can hear from the radios we collected. + var/list/receive = get_mobs_in_radio_ranges(radios) //this includes all hearers. + + for(var/mob/R in receive) //Filter receiver list. + if (R.client && R.client.holder && !(R.client.prefs.chat_toggles & CHAT_RADIO)) //Adminning with 80 people on can be fun when you're trying to talk and all you can hear is radios. + receive -= R + + for(var/mob/M in player_list) + if(isobserver(M) && M.client && (M.client.prefs.chat_toggles & CHAT_GHOSTRADIO)) + receive |= M + + var/rendered = virt.compose_message(virt, virt.languages_spoken, message, freq, spans) //Always call this on the virtualspeaker to advoid issues. + for(var/atom/movable/hearer in receive) + hearer.Hear(rendered, virt, AM.languages_spoken, message, freq, spans) + + if(length(receive)) + // --- This following recording is intended for research and feedback in the use of department radio channels --- + + var/blackbox_msg = "[AM] [AM.say_quote(message, spans)]" + if(istype(blackbox)) + switch(freq) + if(1459) + blackbox.msg_common += blackbox_msg + if(1351) + blackbox.msg_science += blackbox_msg + if(1353) + blackbox.msg_command += blackbox_msg + if(1355) + blackbox.msg_medical += blackbox_msg + if(1357) + blackbox.msg_engineering += blackbox_msg + if(1359) + blackbox.msg_security += blackbox_msg + if(1441) + blackbox.msg_deathsquad += blackbox_msg + if(1213) + blackbox.msg_syndicate += blackbox_msg + if(1349) + blackbox.msg_service += blackbox_msg + if(1347) + blackbox.msg_cargo += blackbox_msg + else + blackbox.messages += blackbox_msg + + spawn(50) + qdel(virt) + +/proc/Broadcast_SimpleMessage(source, frequency, text, data, mob/M, compression, level) + + /* ###### Prepare the radio connection ###### */ + + if(!M) + var/mob/living/carbon/human/H = new + M = H + + var/datum/radio_frequency/connection = SSradio.return_frequency(frequency) + + var/display_freq = connection.frequency + + var/list/receive = list() + + + // --- Broadcast only to intercom devices --- + + if(data == 1) + for (var/obj/item/device/radio/intercom/R in connection.devices["[RADIO_CHAT]"]) + var/turf/position = get_turf(R) + if(position && position.z == level) + receive |= R.send_hear(display_freq, level) + + + // --- Broadcast only to intercoms and station-bounced radios --- + + else if(data == 2) + for (var/obj/item/device/radio/R in connection.devices["[RADIO_CHAT]"]) + if(R.subspace_transmission) + continue + var/turf/position = get_turf(R) + if(position && position.z == level) + receive |= R.send_hear(display_freq) + + + // --- Broadcast to syndicate radio! --- + + else if(data == 3) + var/datum/radio_frequency/syndicateconnection = SSradio.return_frequency(SYND_FREQ) + + for (var/obj/item/device/radio/R in syndicateconnection.devices["[RADIO_CHAT]"]) + var/turf/position = get_turf(R) + if(position && position.z == level) + receive |= R.send_hear(SYND_FREQ) + + // --- Centcom radio, yo. --- + + else if(data == 5) + + for(var/obj/item/device/radio/R in all_radios["[RADIO_CHAT]"]) + if(R.centcom) + receive |= R.send_hear(CENTCOM_FREQ) + + // --- Broadcast to ALL radio devices --- + + else + for (var/obj/item/device/radio/R in connection.devices["[RADIO_CHAT]"]) + var/turf/position = get_turf(R) + if(position && position.z == level) + receive |= R.send_hear(display_freq) + + + /* ###### Organize the receivers into categories for displaying the message ###### */ + + // Understood the message: + var/list/heard_normal = list() // normal message + + // Did not understand the message: + var/list/heard_garbled = list() // garbled message (ie "f*c* **u, **i*er!") + var/list/heard_gibberish= list() // completely screwed over message (ie "F%! (O*# *#!<>&**%!") + + for (var/mob/R in receive) + + /* --- Loop through the receivers and categorize them --- */ + + if (R.client && !(R.client.prefs.chat_toggles & CHAT_RADIO)) //Adminning with 80 people on can be fun when you're trying to talk and all you can hear is radios. + continue + + + // --- Check for compression --- + if(compression > 0) + + heard_gibberish += R + continue + + // --- Can understand the speech --- + + if (R.languages_understood & M.languages_spoken) + + heard_normal += R + + // --- Can't understand the speech --- + + else + // - Just display a garbled message - + + heard_garbled += R + + + /* ###### Begin formatting and sending the message ###### */ + if (length(heard_normal) || length(heard_garbled) || length(heard_gibberish)) + + /* --- Some miscellaneous variables to format the string output --- */ + var/part_a = "" // goes in the actual output + var/freq_text // the name of the channel + + // --- Set the name of the channel --- + switch(display_freq) + + if(SYND_FREQ) + freq_text = "#unkn" + if(COMM_FREQ) + freq_text = "Command" + if(SCI_FREQ) + freq_text = "Science" + if(MED_FREQ) + freq_text = "Medical" + if(ENG_FREQ) + freq_text = "Engineering" + if(SEC_FREQ) + freq_text = "Security" + if(SERV_FREQ) + freq_text = "Service" + if(SUPP_FREQ) + freq_text = "Supply" + if(AIPRIV_FREQ) + freq_text = "AI Private" + //There's probably a way to use the list var of channels in code\game\communications.dm to make the dept channels non-hardcoded, but I wasn't in an experimentive mood. --NEO + + + // --- If the frequency has not been assigned a name, just use the frequency as the name --- + + if(!freq_text) + freq_text = format_frequency(display_freq) + + // --- Some more pre-message formatting --- + + var/part_b_extra = "" + if(data == 3) // intercepted radio message + part_b_extra = " (Intercepted)" + + // Create a radio headset for the sole purpose of using its icon + var/obj/item/device/radio/headset/radio = new + + var/part_b = " \icon[radio]\[[freq_text]\][part_b_extra] " + var/part_c = "" + + if (display_freq==SYND_FREQ) + part_a = "" + else if (display_freq==COMM_FREQ) + part_a = "" + else if (display_freq==SCI_FREQ) + part_a = "" + else if (display_freq==MED_FREQ) + part_a = "" + else if (display_freq==ENG_FREQ) + part_a = "" + else if (display_freq==SEC_FREQ) + part_a = "" + else if (display_freq==SERV_FREQ) + part_a = "" + else if (display_freq==SUPP_FREQ) + part_a = "" + else if (display_freq==CENTCOM_FREQ) + part_a = "" + else if (display_freq==AIPRIV_FREQ) + part_a = "" + + // --- This following recording is intended for research and feedback in the use of department radio channels --- + + var/part_blackbox_b = " \[[freq_text]\] " + var/blackbox_msg = "[part_a][source][part_blackbox_b]\"[text]\"[part_c]" + //var/blackbox_admin_msg = "[part_a][M.name] (Real name: [M.real_name])[part_blackbox_b][quotedmsg][part_c]" + + //BR.messages_admin += blackbox_admin_msg + if(istype(blackbox)) + switch(display_freq) + if(1459) + blackbox.msg_common += blackbox_msg + if(1351) + blackbox.msg_science += blackbox_msg + if(1353) + blackbox.msg_command += blackbox_msg + if(1355) + blackbox.msg_medical += blackbox_msg + if(1357) + blackbox.msg_engineering += blackbox_msg + if(1359) + blackbox.msg_security += blackbox_msg + if(1441) + blackbox.msg_deathsquad += blackbox_msg + if(1213) + blackbox.msg_syndicate += blackbox_msg + if(1349) + blackbox.msg_service += blackbox_msg + if(1347) + blackbox.msg_cargo += blackbox_msg + else + blackbox.messages += blackbox_msg + + //End of research and feedback code. + + /* ###### Send the message ###### */ + + /* --- Process all the mobs that heard the voice normally (understood) --- */ + + if (length(heard_normal)) + var/rendered = "[part_a][source][part_b]\"[text]\"[part_c]" + + for (var/mob/R in heard_normal) + R.show_message(rendered, 2) + + /* --- Process all the mobs that heard a garbled voice (did not understand) --- */ + // Displays garbled message (ie "f*c* **u, **i*er!") + + if (length(heard_garbled)) + var/quotedmsg = "\"[stars(text)]\"" + var/rendered = "[part_a][source][part_b][quotedmsg][part_c]" + + for (var/mob/R in heard_garbled) + R.show_message(rendered, 2) + + + /* --- Complete gibberish. Usually happens when there's a compressed message --- */ + + if (length(heard_gibberish)) + var/quotedmsg = "\"[Gibberish(text, compression + 50)]\"" + var/rendered = "[part_a][Gibberish(source, compression + 50)][part_b][quotedmsg][part_c]" + + for (var/mob/R in heard_gibberish) + R.show_message(rendered, 2) + +//Use this to test if an obj can communicate with a Telecommunications Network + +/atom/proc/test_telecomms() + var/datum/signal/signal = src.telecomms_process() + var/turf/position = get_turf(src) + return (position.z in signal.data["level"] && signal.data["done"]) + +/atom/proc/telecomms_process() + + // First, we want to generate a new radio signal + var/datum/signal/signal = new + signal.transmission_method = 2 // 2 would be a subspace transmission. + var/turf/pos = get_turf(src) + + // --- Finally, tag the actual signal with the appropriate values --- + signal.data = list( + "slow" = 0, // how much to sleep() before broadcasting - simulates net lag + "message" = "TEST", + "compression" = rand(45, 50), // If the signal is compressed, compress our message too. + "traffic" = 0, // dictates the total traffic sum that the signal went through + "type" = 4, // determines what type of radio input it is: test broadcast + "reject" = 0, + "done" = 0, + "level" = pos.z // The level it is being broadcasted at. + ) + signal.frequency = 1459// Common channel + + //#### Sending the signal to all subspace receivers ####// + for(var/obj/machinery/telecomms/receiver/R in telecomms_list) + R.receive_signal(signal) + + sleep(rand(10,25)) + + return signal + diff --git a/code/game/machinery/telecomms/computers/logbrowser.dm b/code/game/machinery/telecomms/computers/logbrowser.dm new file mode 100644 index 0000000..b5af371 --- /dev/null +++ b/code/game/machinery/telecomms/computers/logbrowser.dm @@ -0,0 +1,225 @@ +//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 + +/obj/machinery/computer/telecomms/server + name = "telecommunications server monitoring console" + icon_screen = "comm_logs" + + var/screen = 0 // the screen number: + var/list/servers = list() // the servers located by the computer + var/obj/machinery/telecomms/server/SelectedServer + + var/network = "NULL" // the network to probe + var/temp = "" // temporary feedback messages + + var/universal_translate = 0 // set to 1 if it can translate nonhuman speech + + req_access = list(access_tcomsat) + circuit = /obj/item/weapon/circuitboard/computer/comm_server + +/obj/machinery/computer/telecomms/server/attack_hand(mob/user) + if(..()) + return + user.set_machine(src) + var/dat = "Telecommunication Server Monitor
            Telecommunications Server Monitor
            " + + switch(screen) + + + // --- Main Menu --- + + if(0) + dat += "
            [temp]
            " + dat += "
            Current Network: [network]
            " + if(servers.len) + dat += "
            Detected Telecommunication Servers:
              " + for(var/obj/machinery/telecomms/T in servers) + dat += "
            • \ref[T] [T.name] ([T.id])
            • " + dat += "
            " + dat += "
            \[Flush Buffer\]" + + else + dat += "
            No servers detected. Scan for servers: \[Scan\]" + + + // --- Viewing Server --- + + if(1) + dat += "
            [temp]
            " + dat += "
            \[Main Menu\] \[Refresh\]
            " + dat += "
            Current Network: [network]" + dat += "
            Selected Server: [SelectedServer.id]" + + if(SelectedServer.totaltraffic >= 1024) + dat += "
            Total recorded traffic: [round(SelectedServer.totaltraffic / 1024)] Terrabytes

            " + else + dat += "
            Total recorded traffic: [SelectedServer.totaltraffic] Gigabytes

            " + + dat += "Stored Logs:
              " + + var/i = 0 + for(var/datum/comm_log_entry/C in SelectedServer.log_entries) + i++ + + + // If the log is a speech file + if(C.input_type == "Speech File") + + dat += "
            1. [C.name] \[X\]
              " + + // -- Determine race of orator -- + + var/race // The actual race of the mob + var/language = "Human" // MMIs, pAIs, Cyborgs and humans all speak Human + var/mobtype = C.parameters["mobtype"] + + var/list/humans = typesof(/mob/living/carbon/human, /mob/living/brain) + var/list/monkeys = typesof(/mob/living/carbon/monkey) + var/list/silicons = typesof(/mob/living/silicon) + var/list/slimes = typesof(/mob/living/simple_animal/slime) + var/list/animals = typesof(/mob/living/simple_animal) + + if(mobtype in humans) + race = "Humanoid" + language = race + + else if(mobtype in slimes) // NT knows a lot about slimes, but not aliens. Can identify slimes + race = "Slime" + language = race + + else if(mobtype in monkeys) + race = "Monkey" + language = race + + else if(mobtype in silicons || C.parameters["job"] == "AI") // sometimes M gets deleted prematurely for AIs... just check the job + race = "Artificial Life" + language = "Humanoid" //Ais and borgs speak human, and binary isnt picked up. + + else if(isobj(mobtype)) + race = "Machinery" + language = race + + else if(mobtype in animals) + race = "Domestic Animal" + language = race + + else + race = "Unidentifiable" + language = race + + // -- If the orator is a human, or universal translate is active, OR mob has universal speech on -- + + if(language == "Humanoid" || universal_translate || C.parameters["uspeech"]) + dat += "Data type: [C.input_type]
              " + dat += "Source: [C.parameters["name"]] (Job: [C.parameters["job"]])
              " + dat += "Class: [race]
              " + dat += "Contents: \"[C.parameters["message"]]\"
              " + + + // -- Orator is not human and universal translate not active -- + + else + dat += "Data type: Audio File
              " + dat += "Source: Unidentifiable
              " + dat += "Class: [race]
              " + dat += "Contents: Unintelligble
              " + + dat += "

            2. " + + else if(C.input_type == "Execution Error") + + dat += "
            3. [C.name] \[X\]
              " + dat += "Output: \"[C.parameters["message"]]\"
              " + dat += "

            4. " + + + dat += "
            " + + + + user << browse(dat, "window=comm_monitor;size=575x400") + onclose(user, "server_control") + + temp = "" + return + + +/obj/machinery/computer/telecomms/server/Topic(href, href_list) + if(..()) + return + + + add_fingerprint(usr) + usr.set_machine(src) + + if(href_list["viewserver"]) + screen = 1 + for(var/obj/machinery/telecomms/T in servers) + if(T.id == href_list["viewserver"]) + SelectedServer = T + break + + if(href_list["operation"]) + switch(href_list["operation"]) + + if("release") + servers = list() + screen = 0 + + if("mainmenu") + screen = 0 + + if("scan") + if(servers.len > 0) + temp = "- FAILED: CANNOT PROBE WHEN BUFFER FULL -" + + else + for(var/obj/machinery/telecomms/server/T in urange(25, src)) + if(T.network == network) + servers.Add(T) + + if(!servers.len) + temp = "- FAILED: UNABLE TO LOCATE SERVERS IN \[[network]\] -" + else + temp = "- [servers.len] SERVERS PROBED & BUFFERED -" + + screen = 0 + + if(href_list["delete"]) + + if(!src.allowed(usr) && !emagged) + usr << "ACCESS DENIED." + return + + if(SelectedServer) + + var/datum/comm_log_entry/D = SelectedServer.log_entries[text2num(href_list["delete"])] + + temp = "- DELETED ENTRY: [D.name] -" + + SelectedServer.log_entries.Remove(D) + qdel(D) + + else + temp = "- FAILED: NO SELECTED MACHINE -" + + if(href_list["network"]) + + var/newnet = stripped_input(usr, "Which network do you want to view?", "Comm Monitor", network) + + if(newnet && ((usr in range(1, src)) || issilicon(usr))) + if(length(newnet) > 15) + temp = "- FAILED: NETWORK TAG STRING TOO LENGHTLY -" + + else + + network = newnet + screen = 0 + servers = list() + temp = "- NEW NETWORK TAG SET IN ADDRESS \[[network]\] -" + + updateUsrDialog() + return + +/obj/machinery/computer/telecomms/server/attackby() + . = ..() + updateUsrDialog() diff --git a/code/game/machinery/telecomms/computers/telemonitor.dm b/code/game/machinery/telecomms/computers/telemonitor.dm new file mode 100644 index 0000000..0fd04b2 --- /dev/null +++ b/code/game/machinery/telecomms/computers/telemonitor.dm @@ -0,0 +1,127 @@ + +/* + Telecomms monitor tracks the overall trafficing of a telecommunications network + and displays a heirarchy of linked machines. +*/ + + +/obj/machinery/computer/telecomms/monitor + name = "telecommunications monitoring console" + icon_screen = "comm_monitor" + + var/screen = 0 // the screen number: + var/list/machinelist = list() // the machines located by the computer + var/obj/machinery/telecomms/SelectedMachine + + var/network = "NULL" // the network to probe + + var/temp = "" // temporary feedback messages + circuit = /obj/item/weapon/circuitboard/computer/comm_monitor + +/obj/machinery/computer/telecomms/monitor/attack_hand(mob/user) + if(..()) + return + user.set_machine(src) + var/dat = "Telecommunications Monitor
            Telecommunications Monitor
            " + + switch(screen) + + + // --- Main Menu --- + + if(0) + dat += "
            [temp]

            " + dat += "
            Current Network: [network]
            " + if(machinelist.len) + dat += "
            Detected Network Entities:
              " + for(var/obj/machinery/telecomms/T in machinelist) + dat += "
            • \ref[T] [T.name] ([T.id])
            • " + dat += "
            " + dat += "
            \[Flush Buffer\]" + else + dat += "\[Probe Network\]" + + + // --- Viewing Machine --- + + if(1) + dat += "
            [temp]
            " + dat += "
            \[Main Menu\]
            " + dat += "
            Current Network: [network]
            " + dat += "Selected Network Entity: [SelectedMachine.name] ([SelectedMachine.id])
            " + dat += "Linked Entities:
              " + for(var/obj/machinery/telecomms/T in SelectedMachine.links) + if(!T.hide) + dat += "
            1. \ref[T.id] [T.name] ([T.id])
            2. " + dat += "
            " + + + + user << browse(dat, "window=comm_monitor;size=575x400") + onclose(user, "server_control") + + temp = "" + return + + +/obj/machinery/computer/telecomms/monitor/Topic(href, href_list) + if(..()) + return + + + add_fingerprint(usr) + usr.set_machine(src) + + if(href_list["viewmachine"]) + screen = 1 + for(var/obj/machinery/telecomms/T in machinelist) + if(T.id == href_list["viewmachine"]) + SelectedMachine = T + break + + if(href_list["operation"]) + switch(href_list["operation"]) + + if("release") + machinelist = list() + screen = 0 + + if("mainmenu") + screen = 0 + + if("probe") + if(machinelist.len > 0) + temp = "- FAILED: CANNOT PROBE WHEN BUFFER FULL -" + + else + for(var/obj/machinery/telecomms/T in urange(25, src)) + if(T.network == network) + machinelist.Add(T) + + if(!machinelist.len) + temp = "- FAILED: UNABLE TO LOCATE NETWORK ENTITIES IN \[[network]\] -" + else + temp = "- [machinelist.len] ENTITIES LOCATED & BUFFERED -" + + screen = 0 + + + if(href_list["network"]) + + var/newnet = stripped_input(usr, "Which network do you want to view?", "Comm Monitor", network) + if(newnet && ((usr in range(1, src)) || issilicon(usr))) + if(length(newnet) > 15) + temp = "- FAILED: NETWORK TAG STRING TOO LENGHTLY -" + + else + network = newnet + screen = 0 + machinelist = list() + temp = "- NEW NETWORK TAG SET IN ADDRESS \[[network]\] -" + + updateUsrDialog() + return + +/obj/machinery/computer/telecomms/monitor/attackby() + . = ..() + updateUsrDialog() \ No newline at end of file diff --git a/code/game/machinery/telecomms/machine_interactions.dm b/code/game/machinery/telecomms/machine_interactions.dm new file mode 100644 index 0000000..e3eda91 --- /dev/null +++ b/code/game/machinery/telecomms/machine_interactions.dm @@ -0,0 +1,329 @@ + +/* + + All telecommunications interactions: + +*/ + +#define STATION_Z 1 +#define TELECOMM_Z 3 + +/obj/machinery/telecomms + var/temp = "" // output message + + +/obj/machinery/telecomms/attackby(obj/item/P, mob/user, params) + + var/icon_closed = initial(icon_state) + var/icon_open = "[initial(icon_state)]_o" + if(!on) + icon_closed = "[initial(icon_state)]_off" + icon_open = "[initial(icon_state)]_o_off" + + if(default_deconstruction_screwdriver(user, icon_open, icon_closed, P)) + return + + else if(exchange_parts(user, P)) + return + + // Using a multitool lets you access the receiver's interface + else if(istype(P, /obj/item/device/multitool)) + attack_hand(user) + + else if(default_deconstruction_crowbar(P)) + return + else + return ..() + + +/obj/machinery/telecomms/attack_ai(mob/user) + attack_hand(user) + +/obj/machinery/telecomms/attack_hand(mob/user) + + // You need a multitool to use this, or be silicon + if(!issilicon(user)) + // istype returns false if the value is null + if(!istype(user.get_active_held_item(), /obj/item/device/multitool)) + return + + if(stat & (BROKEN|NOPOWER)) + return + + var/obj/item/device/multitool/P = get_multitool(user) + + user.set_machine(src) + var/dat + dat = "[src.name]

            [src.name] Access

            " + dat += "
            [temp]
            " + dat += "
            Power Status: [src.toggled ? "On" : "Off"]" + if(on && toggled) + if(id != "" && id) + dat += "
            Identification String: [id]" + else + dat += "
            Identification String: NULL" + dat += "
            Network: [network]" + dat += "
            Prefabrication: [autolinkers.len ? "TRUE" : "FALSE"]" + if(hide) dat += "
            Shadow Link: ACTIVE" + + //Show additional options for certain machines. + dat += Options_Menu() + + dat += "
            Linked Network Entities:
              " + + var/i = 0 + for(var/obj/machinery/telecomms/T in links) + i++ + if(T.hide && !src.hide) + continue + dat += "
            1. \ref[T] [T.name] ([T.id]) \[X\]
            2. " + dat += "
            " + + dat += "
            Filtering Frequencies: " + + i = 0 + if(length(freq_listening)) + for(var/x in freq_listening) + i++ + if(i < length(freq_listening)) + dat += "[format_frequency(x)] GHz\[X\]; " + else + dat += "[format_frequency(x)] GHz\[X\]" + else + dat += "NONE" + + dat += "
            \[Add Filter\]" + dat += "
            " + + if(P) + var/obj/machinery/telecomms/T = P.buffer + if(istype(T)) + dat += "

            MULTITOOL BUFFER: [T] ([T.id]) \[Link\] \[Flush\]" + else + dat += "

            MULTITOOL BUFFER:
            \[Add Machine\]" + + dat += "
            " + temp = "" + user << browse(dat, "window=tcommachine;size=520x500;can_resize=0") + onclose(user, "dormitory") + + +// Off-Site Relays +// +// You are able to send/receive signals from the station's z level (changeable in the STATION_Z #define) if +// the relay is on the telecomm satellite (changable in the TELECOMM_Z #define) + + +/obj/machinery/telecomms/relay/proc/toggle_level() + + var/turf/position = get_turf(src) + + // Toggle on/off getting signals from the station or the current Z level + if(src.listening_level == STATION_Z) // equals the station + src.listening_level = position.z + return 1 + else if(position.z == TELECOMM_Z) + src.listening_level = STATION_Z + return 1 + return 0 + +// Returns a multitool from a user depending on their mobtype. + +/obj/machinery/telecomms/proc/get_multitool(mob/user) + + var/obj/item/device/multitool/P = null + // Let's double check + if(!issilicon(user) && istype(user.get_active_held_item(), /obj/item/device/multitool)) + P = user.get_active_held_item() + else if(isAI(user)) + var/mob/living/silicon/ai/U = user + P = U.aiMulti + else if(iscyborg(user) && in_range(user, src)) + if(istype(user.get_active_held_item(), /obj/item/device/multitool)) + P = user.get_active_held_item() + return P + +// Additional Options for certain machines. Use this when you want to add an option to a specific machine. +// Example of how to use below. + +/obj/machinery/telecomms/proc/Options_Menu() + return "" + +// The topic for Additional Options. Use this for checking href links for your specific option. +// Example of how to use below. +/obj/machinery/telecomms/proc/Options_Topic(href, href_list) + return + +// RELAY + +/obj/machinery/telecomms/relay/Options_Menu() + var/dat = "" + if(src.z == TELECOMM_Z) + dat += "
            Signal Locked to Station: [listening_level == STATION_Z ? "TRUE" : "FALSE"]" + dat += "
            Broadcasting: [broadcasting ? "YES" : "NO"]" + dat += "
            Receiving: [receiving ? "YES" : "NO"]" + return dat + +/obj/machinery/telecomms/relay/Options_Topic(href, href_list) + + if(href_list["receive"]) + receiving = !receiving + temp = "-% Receiving mode changed. %-" + if(href_list["broadcast"]) + broadcasting = !broadcasting + temp = "-% Broadcasting mode changed. %-" + if(href_list["change_listening"]) + //Lock to the station OR lock to the current position! + //You need at least two receivers and two broadcasters for this to work, this includes the machine. + var/result = toggle_level() + if(result) + temp = "-% [src]'s signal has been successfully changed." + else + temp = "-% [src] could not lock it's signal onto the station. Two broadcasters or receivers required." + +// BUS + +/obj/machinery/telecomms/bus/Options_Menu() + var/dat = "
            Change Signal Frequency: [change_frequency ? "YES ([change_frequency])" : "NO"]" + return dat + +/obj/machinery/telecomms/bus/Options_Topic(href, href_list) + + if(href_list["change_freq"]) + + var/newfreq = input(usr, "Specify a new frequency for new signals to change to. Enter null to turn off frequency changing. Decimals assigned automatically.", src, network) as null|num + if(canAccess(usr)) + if(newfreq) + if(findtext(num2text(newfreq), ".")) + newfreq *= 10 // shift the decimal one place + if(newfreq < 10000) + change_frequency = newfreq + temp = "-% New frequency to change to assigned: \"[newfreq] GHz\" %-" + else + change_frequency = 0 + temp = "-% Frequency changing deactivated %-" + + +/obj/machinery/telecomms/Topic(href, href_list) + if(..()) + return + + if(!issilicon(usr)) + if(!istype(usr.get_active_held_item(), /obj/item/device/multitool)) + return + + var/obj/item/device/multitool/P = get_multitool(usr) + + if(href_list["input"]) + switch(href_list["input"]) + + if("toggle") + + src.toggled = !src.toggled + temp = "-% [src] has been [src.toggled ? "activated" : "deactivated"]." + update_power() + + /* + if("hide") + src.hide = !hide + temp = "-% Shadow Link has been [src.hide ? "activated" : "deactivated"]." + */ + + if("id") + var/newid = copytext(reject_bad_text(input(usr, "Specify the new ID for this machine", src, id) as null|text),1,MAX_MESSAGE_LEN) + if(newid && canAccess(usr)) + id = newid + temp = "-% New ID assigned: \"[id]\" %-" + + if("network") + var/newnet = stripped_input(usr, "Specify the new network for this machine. This will break all current links.", src, network) + if(newnet && canAccess(usr)) + + if(length(newnet) > 15) + temp = "-% Too many characters in new network tag %-" + + else + for(var/obj/machinery/telecomms/T in links) + T.links.Remove(src) + + network = newnet + links = list() + temp = "-% New network tag assigned: \"[network]\" %-" + + + if("freq") + var/newfreq = input(usr, "Specify a new frequency to filter (GHz). Decimals assigned automatically.", src, network) as null|num + if(newfreq && canAccess(usr)) + if(findtext(num2text(newfreq), ".")) + newfreq *= 10 // shift the decimal one place + if(newfreq == SYND_FREQ) + temp = "-% Error: Interference preventing filtering frequency: \"[newfreq] GHz\" %-" + else + if(!(newfreq in freq_listening) && newfreq < 10000) + freq_listening.Add(newfreq) + temp = "-% New frequency filter assigned: \"[newfreq] GHz\" %-" + + if(href_list["delete"]) + + // changed the layout about to workaround a pesky runtime -- Doohl + + var/x = text2num(href_list["delete"]) + temp = "-% Removed frequency filter [x] %-" + freq_listening.Remove(x) + + if(href_list["unlink"]) + + if(text2num(href_list["unlink"]) <= length(links)) + var/obj/machinery/telecomms/T = links[text2num(href_list["unlink"])] + if(T) + temp = "-% Removed \ref[T] [T.name] from linked entities. %-" + + // Remove link entries from both T and src. + + if(T.links) + T.links.Remove(src) + links.Remove(T) + + else + temp = "-% Unable to locate machine to unlink from, try again. %-" + + if(href_list["link"]) + + if(P) + var/obj/machinery/telecomms/T = P.buffer + if(istype(T) && T != src) + if(!(src in T.links)) + T.links.Add(src) + + if(!(T in src.links)) + src.links.Add(T) + + temp = "-% Successfully linked with \ref[T] [T.name] %-" + + else + temp = "-% Unable to acquire buffer %-" + + if(href_list["buffer"]) + + P.buffer = src + temp = "-% Successfully stored \ref[P.buffer] [P.buffer.name] in buffer %-" + + + if(href_list["flush"]) + + temp = "-% Buffer successfully flushed. %-" + P.buffer = null + + src.Options_Topic(href, href_list) + + usr.set_machine(src) + + updateUsrDialog() + +/obj/machinery/telecomms/proc/canAccess(mob/user) + if(issilicon(user) || in_range(user, src)) + return 1 + return 0 + +#undef TELECOMM_Z +#undef STATION_Z diff --git a/code/game/machinery/telecomms/machines/allinone.dm b/code/game/machinery/telecomms/machines/allinone.dm new file mode 100644 index 0000000..1e04ee6 --- /dev/null +++ b/code/game/machinery/telecomms/machines/allinone.dm @@ -0,0 +1,47 @@ +/* + Basically just an empty shell for receiving and broadcasting radio messages. Not + very flexible, but it gets the job done. +*/ + +/obj/machinery/telecomms/allinone + name = "telecommunications mainframe" + icon_state = "comm_server" + desc = "A compact machine used for portable subspace telecommuniations processing." + density = 1 + anchored = 1 + use_power = 0 + idle_power_usage = 0 + machinetype = 6 + var/intercept = 0 // if nonzero, broadcasts all messages to syndicate channel + +/obj/machinery/telecomms/allinone/receive_signal(datum/signal/signal) + + if(!on) // has to be on to receive messages + return + + if(is_freq_listening(signal)) // detect subspace signals + + signal.data["done"] = 1 // mark the signal as being broadcasted + signal.data["compression"] = 0 + + // Search for the original signal and mark it as done as well + var/datum/signal/original = signal.data["original"] + if(original) + original.data["done"] = 1 + + if(signal.data["slow"] > 0) + sleep(signal.data["slow"]) // simulate the network lag if necessary + + /* ###### Broadcast a message using signal.data ###### */ + if(signal.frequency == SYND_FREQ) // if syndicate broadcast, just + Broadcast_Message(signal.data["mob"], + signal.data["vmask"], + signal.data["radio"], signal.data["message"], + signal.data["name"], signal.data["job"], + signal.data["realname"],, signal.data["compression"], list(0, z), signal.frequency, signal.data["spans"], + signal.data["verb_say"], signal.data["verb_ask"], signal.data["verb_exclaim"], signal.data["verb_yell"]) + +/obj/machinery/telecomms/allinone/attackby(obj/item/P, mob/user, params) + + if(istype(P, /obj/item/device/multitool)) + attack_hand(user) diff --git a/code/game/machinery/telecomms/machines/broadcaster.dm b/code/game/machinery/telecomms/machines/broadcaster.dm new file mode 100644 index 0000000..20c6850 --- /dev/null +++ b/code/game/machinery/telecomms/machines/broadcaster.dm @@ -0,0 +1,136 @@ +/* + The broadcaster sends processed messages to all radio devices in the game. They + do not have to be headsets; intercoms and station-bounced radios suffice. + + They receive their message from a server after the message has been logged. +*/ + +var/list/recentmessages = list() // global list of recent messages broadcasted : used to circumvent massive radio spam +var/message_delay = 0 // To make sure restarting the recentmessages list is kept in sync + +/obj/machinery/telecomms/broadcaster + name = "subspace broadcaster" + icon_state = "broadcaster" + desc = "A dish-shaped machine used to broadcast processed subspace signals." + density = 1 + anchored = 1 + use_power = 1 + idle_power_usage = 25 + machinetype = 5 + /*heatgen = 0 + delay = 7*/ + +/obj/machinery/telecomms/broadcaster/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from) + // Don't broadcast rejected signals + if(signal.data["reject"]) + return + + if(signal.data["message"]) + + + // Prevents massive radio spam + signal.data["done"] = 1 // mark the signal as being broadcasted + // Search for the original signal and mark it as done as well + var/datum/signal/original = signal.data["original"] + if(original) + original.data["done"] = 1 + original.data["compression"] = signal.data["compression"] + original.data["level"] = signal.data["level"] + + var/signal_message = "[signal.frequency]:[signal.data["message"]]:[signal.data["realname"]]" + if(signal_message in recentmessages) + return + recentmessages.Add(signal_message) + + if(signal.data["slow"] > 0) + sleep(signal.data["slow"]) // simulate the network lag if necessary + + signal.data["level"] |= listening_level + + /** #### - Normal Broadcast - #### **/ + + if(signal.data["type"] == 0) + + /* ###### Broadcast a message using signal.data ###### */ + Broadcast_Message(signal.data["mob"], + signal.data["vmask"], signal.data["radio"], + signal.data["message"], signal.data["name"], signal.data["job"], signal.data["realname"], + 0, signal.data["compression"], signal.data["level"], signal.frequency, signal.data["spans"], + signal.data["verb_say"], signal.data["verb_ask"], signal.data["verb_exclaim"], signal.data["verb_yell"]) + + + /** #### - Simple Broadcast - #### **/ + + if(signal.data["type"] == 1) + + /* ###### Broadcast a message using signal.data ###### */ + Broadcast_SimpleMessage(signal.data["name"], signal.frequency, + signal.data["message"],null, null, + signal.data["compression"], listening_level) + + + /** #### - Artificial Broadcast - #### **/ + // (Imitates a mob) + + if(signal.data["type"] == 2) + + /* ###### Broadcast a message using signal.data ###### */ + // Parameter "data" as 4: AI can't track this person/mob + Broadcast_Message(signal.data["mob"], + signal.data["vmask"], + signal.data["radio"], signal.data["message"], + signal.data["name"], signal.data["job"], + signal.data["realname"], 4, signal.data["compression"], signal.data["level"], signal.frequency, signal.data["spans"], + signal.data["verb_say"], signal.data["verb_ask"], signal.data["verb_exclaim"], signal.data["verb_yell"]) + + if(!message_delay) + message_delay = 1 + spawn(10) + message_delay = 0 + recentmessages = list() + + /* --- Do a snazzy animation! --- */ + flick("broadcaster_send", src) + +/obj/machinery/telecomms/broadcaster/New() + ..() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/telecomms/broadcaster(null) + B.apply_default_parts(src) + +/obj/item/weapon/circuitboard/machine/telecomms/broadcaster + name = "circuit board (Subspace Broadcaster)" + build_path = /obj/machinery/telecomms/broadcaster + origin_tech = "programming=2;engineering=2;bluespace=1" + req_components = list( + /obj/item/weapon/stock_parts/manipulator = 2, + /obj/item/stack/cable_coil = 1, + /obj/item/weapon/stock_parts/subspace/filter = 1, + /obj/item/weapon/stock_parts/subspace/crystal = 1, + /obj/item/weapon/stock_parts/micro_laser = 2) + +/obj/machinery/telecomms/broadcaster/Destroy() + // In case message_delay is left on 1, otherwise it won't reset the list and people can't say the same thing twice anymore. + if(message_delay) + message_delay = 0 + return ..() + + + +//Preset Broadcasters + +//--PRESET LEFT--// + +/obj/machinery/telecomms/broadcaster/preset_left + id = "Broadcaster A" + network = "tcommsat" + autolinkers = list("broadcasterA") + +//--PRESET RIGHT--// + +/obj/machinery/telecomms/broadcaster/preset_right + id = "Broadcaster B" + network = "tcommsat" + autolinkers = list("broadcasterB") + +/obj/machinery/telecomms/broadcaster/preset_left/birdstation + name = "Broadcaster" \ No newline at end of file diff --git a/code/game/machinery/telecomms/machines/bus.dm b/code/game/machinery/telecomms/machines/bus.dm new file mode 100644 index 0000000..1ecf94d --- /dev/null +++ b/code/game/machinery/telecomms/machines/bus.dm @@ -0,0 +1,104 @@ +/* + The bus mainframe idles and waits for hubs to relay them signals. They act + as junctions for the network. + + They transfer uncompressed subspace packets to processor units, and then take + the processed packet to a server for logging. + + Link to a subspace hub if it can't send to a server. +*/ + +/obj/machinery/telecomms/bus + name = "bus mainframe" + icon_state = "bus" + desc = "A mighty piece of hardware used to send massive amounts of data quickly." + density = 1 + anchored = 1 + use_power = 1 + idle_power_usage = 50 + machinetype = 2 + //heatgen = 20 + netspeed = 40 + var/change_frequency = 0 + +/obj/machinery/telecomms/bus/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from) + + if(is_freq_listening(signal)) + if(change_frequency) + if(signal.frequency != SYND_FREQ) + signal.frequency = change_frequency + + if(!istype(machine_from, /obj/machinery/telecomms/processor) && machine_from != src) // Signal must be ready (stupid assuming machine), let's send it + // send to one linked processor unit + var/send_to_processor = relay_information(signal, "/obj/machinery/telecomms/processor") + + if(send_to_processor) + return + // failed to send to a processor, relay information anyway + signal.data["slow"] += rand(1, 5) // slow the signal down only slightly + src.receive_information(signal, src) + + // Try sending it! + var/list/try_send = list("/obj/machinery/telecomms/server", "/obj/machinery/telecomms/hub", "/obj/machinery/telecomms/broadcaster", "/obj/machinery/telecomms/bus") + var/i = 0 + for(var/send in try_send) + if(i) + signal.data["slow"] += rand(0, 1) // slow the signal down only slightly + i++ + var/can_send = relay_information(signal, send) + if(can_send) + break + +/obj/machinery/telecomms/bus/New() + ..() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/telecomms/bus(null) + B.apply_default_parts(src) + +/obj/item/weapon/circuitboard/machine/telecomms/bus + name = "circuit board (Bus Mainframe)" + build_path = /obj/machinery/telecomms/bus + origin_tech = "programming=2;engineering=2" + req_components = list( + /obj/item/weapon/stock_parts/manipulator = 2, + /obj/item/stack/cable_coil = 1, + /obj/item/weapon/stock_parts/subspace/filter = 1) + + + + + +//Preset Buses + +/obj/machinery/telecomms/bus/preset_one + id = "Bus 1" + network = "tcommsat" + freq_listening = list(SCI_FREQ, MED_FREQ) + autolinkers = list("processor1", "science", "medical") + +/obj/machinery/telecomms/bus/preset_two + id = "Bus 2" + network = "tcommsat" + freq_listening = list(SUPP_FREQ,SERV_FREQ) + autolinkers = list("processor2", "supply", "service") + +/obj/machinery/telecomms/bus/preset_three + id = "Bus 3" + network = "tcommsat" + freq_listening = list(SEC_FREQ, COMM_FREQ) + autolinkers = list("processor3", "security", "command") + +/obj/machinery/telecomms/bus/preset_four + id = "Bus 4" + network = "tcommsat" + freq_listening = list(ENG_FREQ) + autolinkers = list("processor4", "engineering", "common") + +/obj/machinery/telecomms/bus/preset_four/New() + for(var/i = 1441, i < 1489, i += 2) + freq_listening |= i + ..() + +/obj/machinery/telecomms/bus/preset_one/birdstation + name = "Bus" + autolinkers = list("processor1", "common") + freq_listening = list() \ No newline at end of file diff --git a/code/game/machinery/telecomms/machines/hub.dm b/code/game/machinery/telecomms/machines/hub.dm new file mode 100644 index 0000000..d5aebbc --- /dev/null +++ b/code/game/machinery/telecomms/machines/hub.dm @@ -0,0 +1,61 @@ + +/* + The HUB idles until it receives information. It then passes on that information + depending on where it came from. + + This is the heart of the Telecommunications Network, sending information where it + is needed. It mainly receives information from long-distance Relays and then sends + that information to be processed. Afterwards it gets the uncompressed information + from Servers/Buses and sends that back to the relay, to then be broadcasted. +*/ + +/obj/machinery/telecomms/hub + name = "telecommunication hub" + icon_state = "hub" + desc = "A mighty piece of hardware used to send/receive massive amounts of data." + density = 1 + anchored = 1 + use_power = 1 + idle_power_usage = 80 + machinetype = 7 + //heatgen = 40 + long_range_link = 1 + netspeed = 40 + + +/obj/machinery/telecomms/hub/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from) + if(is_freq_listening(signal)) + if(istype(machine_from, /obj/machinery/telecomms/receiver)) + //If the signal is compressed, send it to the bus. + relay_information(signal, "/obj/machinery/telecomms/bus", 1) // ideally relay the copied information to bus units + else + // Get a list of relays that we're linked to, then send the signal to their levels. + relay_information(signal, "/obj/machinery/telecomms/relay", 1) + relay_information(signal, "/obj/machinery/telecomms/broadcaster", 1) // Send it to a broadcaster. + +/obj/machinery/telecomms/hub/New() + ..() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/telecomms/hub(null) + B.apply_default_parts(src) + +/obj/item/weapon/circuitboard/machine/telecomms/hub + name = "circuit board (Hub Mainframe)" + build_path = /obj/machinery/telecomms/hub + origin_tech = "programming=2;engineering=2" + req_components = list( + /obj/item/weapon/stock_parts/manipulator = 2, + /obj/item/stack/cable_coil = 2, + /obj/item/weapon/stock_parts/subspace/filter = 2) + + + + +//Preset HUB + +/obj/machinery/telecomms/hub/preset + id = "Hub" + network = "tcommsat" + autolinkers = list("hub", "relay", "s_relay", "m_relay", "r_relay", "science", "medical", + "supply", "service", "common", "command", "engineering", "security", + "receiverA", "receiverB", "broadcasterA", "broadcasterB") + diff --git a/code/game/machinery/telecomms/machines/processor.dm b/code/game/machinery/telecomms/machines/processor.dm new file mode 100644 index 0000000..e841c0e --- /dev/null +++ b/code/game/machinery/telecomms/machines/processor.dm @@ -0,0 +1,79 @@ + +/* + The processor is a very simple machine that decompresses subspace signals and + transfers them back to the original bus. It is essential in producing audible + data. + + Link to servers if bus is not present +*/ + +/obj/machinery/telecomms/processor + name = "processor unit" + icon_state = "processor" + desc = "This machine is used to process large quantities of information." + density = 1 + anchored = 1 + use_power = 1 + idle_power_usage = 30 + machinetype = 3 + //heatgen = 100 + //delay = 5 + var/process_mode = 1 // 1 = Uncompress Signals, 0 = Compress Signals + +/obj/machinery/telecomms/processor/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from) + + if(is_freq_listening(signal)) + + if(process_mode) + signal.data["compression"] = 0 // uncompress subspace signal + else + signal.data["compression"] = 100 // even more compressed signal + + if(istype(machine_from, /obj/machinery/telecomms/bus)) + relay_direct_information(signal, machine_from) // send the signal back to the machine + else // no bus detected - send the signal to servers instead + signal.data["slow"] += rand(5, 10) // slow the signal down + relay_information(signal, "/obj/machinery/telecomms/server") + +/obj/machinery/telecomms/processor/New() + ..() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/telecomms/processor(null) + B.apply_default_parts(src) + +/obj/item/weapon/circuitboard/machine/telecomms/processor + name = "circuit board (Processor Unit)" + build_path = /obj/machinery/telecomms/processor + origin_tech = "programming=2;engineering=2" + req_components = list( + /obj/item/weapon/stock_parts/manipulator = 3, + /obj/item/weapon/stock_parts/subspace/filter = 1, + /obj/item/weapon/stock_parts/subspace/treatment = 2, + /obj/item/weapon/stock_parts/subspace/analyzer = 1, + /obj/item/stack/cable_coil = 2, + /obj/item/weapon/stock_parts/subspace/amplifier = 1) + + +//Preset Processors + +/obj/machinery/telecomms/processor/preset_one + id = "Processor 1" + network = "tcommsat" + autolinkers = list("processor1") // processors are sort of isolated; they don't need backward links + +/obj/machinery/telecomms/processor/preset_two + id = "Processor 2" + network = "tcommsat" + autolinkers = list("processor2") + +/obj/machinery/telecomms/processor/preset_three + id = "Processor 3" + network = "tcommsat" + autolinkers = list("processor3") + +/obj/machinery/telecomms/processor/preset_four + id = "Processor 4" + network = "tcommsat" + autolinkers = list("processor4") + +/obj/machinery/telecomms/processor/preset_one/birdstation + name = "Processor" \ No newline at end of file diff --git a/code/game/machinery/telecomms/machines/receiver.dm b/code/game/machinery/telecomms/machines/receiver.dm new file mode 100644 index 0000000..319806a --- /dev/null +++ b/code/game/machinery/telecomms/machines/receiver.dm @@ -0,0 +1,99 @@ + +/* + The receiver idles and receives messages from subspace-compatible radio equipment; + primarily headsets. They then just relay this information to all linked devices, + which can would probably be network hubs. + + Link to Processor Units in case receiver can't send to bus units. +*/ + +/obj/machinery/telecomms/receiver + name = "subspace receiver" + icon_state = "broadcast receiver" + desc = "This machine has a dish-like shape and green lights. It is designed to detect and process subspace radio activity." + density = 1 + anchored = 1 + use_power = 1 + idle_power_usage = 30 + machinetype = 1 + //heatgen = 0 + +/obj/machinery/telecomms/receiver/receive_signal(datum/signal/signal) + + if(!on) // has to be on to receive messages + return + if(!signal) + return + if(!check_receive_level(signal)) + return + if(signal.transmission_method == 2) + + if(is_freq_listening(signal)) // detect subspace signals + + //Remove the level and then start adding levels that it is being broadcasted in. + signal.data["level"] = list() + + var/can_send = relay_information(signal, "/obj/machinery/telecomms/hub") // ideally relay the copied information to relays + if(!can_send) + relay_information(signal, "/obj/machinery/telecomms/bus") // Send it to a bus instead, if it's linked to one + +/obj/machinery/telecomms/receiver/proc/check_receive_level(datum/signal/signal) + + if(signal.data["level"] != listening_level) + for(var/obj/machinery/telecomms/hub/H in links) + var/list/connected_levels = list() + for(var/obj/machinery/telecomms/relay/R in H.links) + if(R.can_receive(signal)) + connected_levels |= R.listening_level + if(signal.data["level"] in connected_levels) + return 1 + return 0 + return 1 + + +/obj/machinery/telecomms/receiver/New() + ..() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/telecomms/receiver(null) + B.apply_default_parts(src) + +/obj/item/weapon/circuitboard/machine/telecomms/receiver + name = "circuit board (Subspace Receiver)" + build_path = /obj/machinery/telecomms/receiver + origin_tech = "programming=2;engineering=2;bluespace=1" + req_components = list( + /obj/item/weapon/stock_parts/subspace/ansible = 1, + /obj/item/weapon/stock_parts/subspace/filter = 1, + /obj/item/weapon/stock_parts/manipulator = 2, + /obj/item/weapon/stock_parts/micro_laser = 1) + + + + +//Preset Receivers + +//--PRESET LEFT--// + +/obj/machinery/telecomms/receiver/preset_left + id = "Receiver A" + network = "tcommsat" + autolinkers = list("receiverA") // link to relay + freq_listening = list(SCI_FREQ, MED_FREQ, SUPP_FREQ, SERV_FREQ) // science, medical, supply, service + + +//--PRESET RIGHT--// + +/obj/machinery/telecomms/receiver/preset_right + id = "Receiver B" + network = "tcommsat" + autolinkers = list("receiverB") // link to relay + freq_listening = list(COMM_FREQ, ENG_FREQ, SEC_FREQ) //command, engineering, security + + //Common and other radio frequencies for people to freely use +/obj/machinery/telecomms/receiver/preset_right/New() + for(var/i = 1441, i < 1489, i += 2) + freq_listening |= i + ..() + +/obj/machinery/telecomms/receiver/preset_left/birdstation + name = "Receiver" + freq_listening = list() \ No newline at end of file diff --git a/code/game/machinery/telecomms/machines/relay.dm b/code/game/machinery/telecomms/machines/relay.dm new file mode 100644 index 0000000..a11e521 --- /dev/null +++ b/code/game/machinery/telecomms/machines/relay.dm @@ -0,0 +1,86 @@ +/* + The relay idles until it receives information. It then passes on that information + depending on where it came from. + + The relay is needed in order to send information pass Z levels. It must be linked + with a HUB, the only other machine that can send/receive pass Z levels. +*/ + +/obj/machinery/telecomms/relay + name = "telecommunication relay" + icon_state = "relay" + desc = "A mighty piece of hardware used to send massive amounts of data far away." + density = 1 + anchored = 1 + use_power = 1 + idle_power_usage = 30 + machinetype = 8 + //heatgen = 0 + netspeed = 5 + long_range_link = 1 + var/broadcasting = 1 + var/receiving = 1 + +/obj/machinery/telecomms/relay/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from) + // Add our level and send it back + if(can_send(signal)) + signal.data["level"] |= listening_level + +// Checks to see if it can send/receive. + +/obj/machinery/telecomms/relay/proc/can(datum/signal/signal) + if(!on) + return 0 + if(!is_freq_listening(signal)) + return 0 + return 1 + +/obj/machinery/telecomms/relay/proc/can_send(datum/signal/signal) + if(!can(signal)) + return 0 + return broadcasting + +/obj/machinery/telecomms/relay/proc/can_receive(datum/signal/signal) + if(!can(signal)) + return 0 + return receiving + +/obj/machinery/telecomms/relay/New() + ..() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/telecomms/relay(null) + B.apply_default_parts(src) + +/obj/item/weapon/circuitboard/machine/telecomms/relay + name = "circuit board (Relay Mainframe)" + build_path = /obj/machinery/telecomms/relay + origin_tech = "programming=2;engineering=2;bluespace=2" + req_components = list( + /obj/item/weapon/stock_parts/manipulator = 2, + /obj/item/stack/cable_coil = 2, + /obj/item/weapon/stock_parts/subspace/filter = 2) + + + +//Preset Relay + +/obj/machinery/telecomms/relay/preset + network = "tcommsat" + +/obj/machinery/telecomms/relay/preset/station + id = "Station Relay" + listening_level = 1 + autolinkers = list("s_relay") + +/obj/machinery/telecomms/relay/preset/telecomms + id = "Telecomms Relay" + autolinkers = list("relay") + +/obj/machinery/telecomms/relay/preset/mining + id = "Mining Relay" + autolinkers = list("m_relay") + +/obj/machinery/telecomms/relay/preset/ruskie + id = "Ruskie Relay" + hide = 1 + toggled = 0 + autolinkers = list("r_relay") diff --git a/code/game/machinery/telecomms/machines/server.dm b/code/game/machinery/telecomms/machines/server.dm new file mode 100644 index 0000000..87ca46c --- /dev/null +++ b/code/game/machinery/telecomms/machines/server.dm @@ -0,0 +1,191 @@ + +/* + The server logs all traffic and signal data. Once it records the signal, it sends + it to the subspace broadcaster. + + Store a maximum of 100 logs and then deletes them. +*/ + + +/obj/machinery/telecomms/server + name = "telecommunication server" + icon_state = "comm_server" + desc = "A machine used to store data and network statistics." + density = 1 + anchored = 1 + use_power = 1 + idle_power_usage = 15 + machinetype = 4 + //heatgen = 50 + var/list/log_entries = list() + var/list/stored_names = list() + var/list/TrafficActions = list() + var/logs = 0 // number of logs + var/totaltraffic = 0 // gigabytes (if > 1024, divide by 1024 -> terrabytes) + + var/list/memory = list() // stored memory + + var/encryption = "null" // encryption key: ie "password" + var/salt = "null" // encryption salt: ie "123comsat" + // would add up to md5("password123comsat") + var/language = "human" + var/obj/item/device/radio/headset/server_radio = null + var/last_signal = 0 // Last time it sent a signal + +/obj/machinery/telecomms/server/New() + ..() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/telecomms/server(null) + B.apply_default_parts(src) + server_radio = new() + +/obj/item/weapon/circuitboard/machine/telecomms/server + name = "circuit board (Telecommunication Server)" + build_path = /obj/machinery/telecomms/server + origin_tech = "programming=2;engineering=2" + req_components = list( + /obj/item/weapon/stock_parts/manipulator = 2, + /obj/item/stack/cable_coil = 1, + /obj/item/weapon/stock_parts/subspace/filter = 1) + +/obj/machinery/telecomms/server/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from) + if(signal.data["message"]) + + if(is_freq_listening(signal)) + + if(traffic > 0) + totaltraffic += traffic // add current traffic to total traffic + + //Is this a test signal? Bypass logging + if(signal.data["type"] != 4) + + // If signal has a message and appropriate frequency + + update_logs() + + var/datum/comm_log_entry/log = new + + // Copy the signal.data entries we want + log.parameters["mobtype"] = signal.data["mobtype"] + log.parameters["job"] = signal.data["job"] + log.parameters["key"] = signal.data["key"] + log.parameters["message"] = signal.data["message"] + log.parameters["name"] = signal.data["name"] + log.parameters["realname"] = signal.data["realname"] + + log.parameters["uspeech"] = signal.data["languages"] & HUMAN //good enough + + // If the signal is still compressed, make the log entry gibberish + if(signal.data["compression"] > 0) + log.parameters["message"] = Gibberish(signal.data["message"], signal.data["compression"] + 50) + log.parameters["job"] = Gibberish(signal.data["job"], signal.data["compression"] + 50) + log.parameters["name"] = Gibberish(signal.data["name"], signal.data["compression"] + 50) + log.parameters["realname"] = Gibberish(signal.data["realname"], signal.data["compression"] + 50) + log.input_type = "Corrupt File" + + // Log and store everything that needs to be logged + log_entries.Add(log) + if(!(signal.data["name"] in stored_names)) + stored_names.Add(signal.data["name"]) + logs++ + signal.data["server"] = src + + // Give the log a name + var/identifier = num2text( rand(-1000,1000) + world.time ) + log.name = "data packet ([md5(identifier)])" + + var/can_send = relay_information(signal, "/obj/machinery/telecomms/hub") + if(!can_send) + relay_information(signal, "/obj/machinery/telecomms/broadcaster") + +/obj/machinery/telecomms/server/proc/update_logs() + // start deleting the very first log entry + if(logs >= 400) + for(var/i = 1, i <= logs, i++) // locate the first garbage collectable log entry and remove it + var/datum/comm_log_entry/L = log_entries[i] + if(L.garbage_collector) + log_entries.Remove(L) + logs-- + break + +/obj/machinery/telecomms/server/proc/add_entry(content, input) + var/datum/comm_log_entry/log = new + var/identifier = num2text( rand(-1000,1000) + world.time ) + log.name = "[input] ([md5(identifier)])" + log.input_type = input + log.parameters["message"] = content + log_entries.Add(log) + update_logs() + + + +// Simple log entry datum + +/datum/comm_log_entry + var/parameters = list() // carbon-copy to signal.data[] + var/name = "data packet (#)" + var/garbage_collector = 1 // if set to 0, will not be garbage collected + var/input_type = "Speech File" + + + + +//Preset Servers + +/obj/machinery/telecomms/server/presets + network = "tcommsat" + +/obj/machinery/telecomms/server/presets/New() + ..() + name = id + + +/obj/machinery/telecomms/server/presets/science + id = "Science Server" + freq_listening = list(SCI_FREQ) + autolinkers = list("science") + +/obj/machinery/telecomms/server/presets/medical + id = "Medical Server" + freq_listening = list(MED_FREQ) + autolinkers = list("medical") + +/obj/machinery/telecomms/server/presets/supply + id = "Supply Server" + freq_listening = list(SUPP_FREQ) + autolinkers = list("supply") + +/obj/machinery/telecomms/server/presets/service + id = "Service Server" + freq_listening = list(SERV_FREQ) + autolinkers = list("service") + +/obj/machinery/telecomms/server/presets/common + id = "Common Server" + freq_listening = list() + autolinkers = list("common") + + //Common and other radio frequencies for people to freely use + // 1441 to 1489 +/obj/machinery/telecomms/server/presets/common/New() + for(var/i = 1441, i < 1489, i += 2) + freq_listening |= i + ..() + +/obj/machinery/telecomms/server/presets/command + id = "Command Server" + freq_listening = list(COMM_FREQ) + autolinkers = list("command") + +/obj/machinery/telecomms/server/presets/engineering + id = "Engineering Server" + freq_listening = list(ENG_FREQ) + autolinkers = list("engineering") + +/obj/machinery/telecomms/server/presets/security + id = "Security Server" + freq_listening = list(SEC_FREQ) + autolinkers = list("security") + +/obj/machinery/telecomms/server/presets/common/birdstation/New() + ..() + freq_listening = list() \ No newline at end of file diff --git a/code/game/machinery/telecomms/telecomunications.dm b/code/game/machinery/telecomms/telecomunications.dm new file mode 100644 index 0000000..70a7e15 --- /dev/null +++ b/code/game/machinery/telecomms/telecomunications.dm @@ -0,0 +1,217 @@ + +/* + Hello, friends, this is Doohl from sexylands. You may be wondering what this + monstrous code file is. Sit down, boys and girls, while I tell you the tale. + + + The telecom machines were designed to be compatible with any radio + signals, provided they use subspace transmission. Currently they are only used for + headsets, but they can eventually be outfitted for real COMPUTER networks. This + is just a skeleton, ladies and gentlemen. + + Look at radio.dm for the prequel to this code. +*/ + +var/global/list/obj/machinery/telecomms/telecomms_list = list() + +/obj/machinery/telecomms + icon = 'icons/obj/machines/telecomms.dmi' + var/list/links = list() // list of machines this machine is linked to + var/traffic = 0 // value increases as traffic increases + var/netspeed = 5 // how much traffic to lose per tick (50 gigabytes/second * netspeed) + var/list/autolinkers = list() // list of text/number values to link with + var/id = "NULL" // identification string + var/network = "NULL" // the network of the machinery + + var/list/freq_listening = list() // list of frequencies to tune into: if none, will listen to all + + var/machinetype = 0 // just a hacky way of preventing alike machines from pairing + var/toggled = 1 // Is it toggled on + var/on = 1 + var/long_range_link = 0 // Can you link it across Z levels or on the otherside of the map? (Relay & Hub) + var/hide = 0 // Is it a hidden machine? + var/listening_level = 0 // 0 = auto set in New() - this is the z level that the machine is listening to. + critical_machine = TRUE + + +/obj/machinery/telecomms/proc/relay_information(datum/signal/signal, filter, copysig, amount = 20) + // relay signal to all linked machinery that are of type [filter]. If signal has been sent [amount] times, stop sending + + if(!on) + return + var/send_count = 0 + + // Apply some lag based on traffic rates + var/netlag = round(traffic / 50) + if(netlag > signal.data["slow"]) + signal.data["slow"] = netlag + +// Loop through all linked machines and send the signal or copy. + for(var/obj/machinery/telecomms/machine in links) + if(filter && !istype( machine, text2path(filter) )) + continue + if(!machine.on) + continue + if(amount && send_count >= amount) + break + if(machine.loc.z != listening_level) + if(long_range_link == 0 && machine.long_range_link == 0) + continue + // If we're sending a copy, be sure to create the copy for EACH machine and paste the data + var/datum/signal/copy = new + if(copysig) + + copy.transmission_method = 2 + copy.frequency = signal.frequency + // Copy the main data contents! Workaround for some nasty bug where the actual array memory is copied and not its contents. + copy.data = list( + + "mob" = signal.data["mob"], + "mobtype" = signal.data["mobtype"], + "realname" = signal.data["realname"], + "name" = signal.data["name"], + "job" = signal.data["job"], + "key" = signal.data["key"], + "vmask" = signal.data["vmask"], + "compression" = signal.data["compression"], + "message" = signal.data["message"], + "radio" = signal.data["radio"], + "slow" = signal.data["slow"], + "traffic" = signal.data["traffic"], + "type" = signal.data["type"], + "server" = signal.data["server"], + "reject" = signal.data["reject"], + "level" = signal.data["level"], + "spans" = signal.data["spans"], + "verb_say" = signal.data["verb_say"], + "verb_ask" = signal.data["verb_ask"], + "verb_exclaim" = signal.data["verb_exclaim"], + "verb_yell" = signal.data["verb_yell"] + ) + + // Keep the "original" signal constant + if(!signal.data["original"]) + copy.data["original"] = signal + else + copy.data["original"] = signal.data["original"] + + else + copy = null + + + send_count++ + if(machine.is_freq_listening(signal)) + machine.traffic++ + + if(copysig && copy) + machine.receive_information(copy, src) + else + machine.receive_information(signal, src) + + + if(send_count > 0 && is_freq_listening(signal)) + traffic++ + + return send_count + +/obj/machinery/telecomms/proc/relay_direct_information(datum/signal/signal, obj/machinery/telecomms/machine) + // send signal directly to a machine + machine.receive_information(signal, src) + +/obj/machinery/telecomms/proc/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from) + // receive information from linked machinery + ..() + +/obj/machinery/telecomms/proc/is_freq_listening(datum/signal/signal) + // return 1 if found, 0 if not found + if(!signal) + return 0 + if((signal.frequency in freq_listening) || (!freq_listening.len)) + return 1 + else + return 0 + + +/obj/machinery/telecomms/New() + telecomms_list += src + ..() + + //Set the listening_level if there's none. + if(!listening_level) + //Defaults to our Z level! + var/turf/position = get_turf(src) + listening_level = position.z + +/obj/machinery/telecomms/onShuttleMove(turf/T1, rotation) + . = ..() + if(. && T1) // Update listening Z, just in case you have telecomm relay on a shuttle + listening_level = T1.z + +/obj/machinery/telecomms/initialize() + if(autolinkers.len) + // Links nearby machines + if(!long_range_link) + for(var/obj/machinery/telecomms/T in urange(20, src, 1)) + add_link(T) + else + for(var/obj/machinery/telecomms/T in telecomms_list) + add_link(T) + + +/obj/machinery/telecomms/Destroy() + telecomms_list -= src + for(var/obj/machinery/telecomms/comm in telecomms_list) + comm.links -= src + links = list() + return ..() + +// Used in auto linking +/obj/machinery/telecomms/proc/add_link(obj/machinery/telecomms/T) + var/turf/position = get_turf(src) + var/turf/T_position = get_turf(T) + if((position.z == T_position.z) || (src.long_range_link && T.long_range_link)) + if(src != T) + for(var/x in autolinkers) + if(x in T.autolinkers) + links |= T + break + +/obj/machinery/telecomms/update_icon() + if(on) + if(panel_open) + icon_state = "[initial(icon_state)]_o" + else + icon_state = initial(icon_state) + else + if(panel_open) + icon_state = "[initial(icon_state)]_o_off" + else + icon_state = "[initial(icon_state)]_off" + +/obj/machinery/telecomms/proc/update_power() + + if(toggled) + if(stat & (BROKEN|NOPOWER|EMPED)) // if powered, on. if not powered, off. if too damaged, off + on = 0 + else + on = 1 + else + on = 0 + +/obj/machinery/telecomms/process() + update_power() + + // Update the icon + update_icon() + + if(traffic > 0) + traffic -= netspeed + +/obj/machinery/telecomms/emp_act(severity) + if(prob(100/severity)) + if(!(stat & EMPED)) + stat |= EMPED + var/duration = (300 * 10)/severity + spawn(rand(duration - 20, duration + 20)) // Takes a long time for the machines to reboot. + stat &= ~EMPED + ..() diff --git a/code/game/machinery/teleporter.dm b/code/game/machinery/teleporter.dm new file mode 100644 index 0000000..8bd88fc --- /dev/null +++ b/code/game/machinery/teleporter.dm @@ -0,0 +1,489 @@ +/obj/machinery/computer/teleporter + name = "Teleporter Control Console" + desc = "Used to control a linked teleportation Hub and Station." + icon_screen = "teleport" + icon_keyboard = "teleport_key" + circuit = /obj/item/weapon/circuitboard/computer/teleporter + var/obj/item/device/gps/locked = null + var/regime_set = "Teleporter" + var/id = null + var/obj/machinery/teleport/station/power_station + var/calibrating + var/turf/target //Used for one-time-use teleport cards (such as clown planet coordinates.) + //Setting this to 1 will set src.locked to null after a player enters the portal and will not allow hand-teles to open portals to that location. + +/obj/machinery/computer/teleporter/New() + src.id = "[rand(1000, 9999)]" + link_power_station() + ..() + return + +/obj/machinery/computer/teleporter/initialize() + link_power_station() + +/obj/machinery/computer/teleporter/Destroy() + if (power_station) + power_station.teleporter_console = null + power_station = null + return ..() + +/obj/machinery/computer/teleporter/proc/link_power_station() + if(power_station) + return + for(dir in list(NORTH,EAST,SOUTH,WEST)) + power_station = locate(/obj/machinery/teleport/station, get_step(src, dir)) + if(power_station) + break + return power_station + +/obj/machinery/computer/teleporter/attackby(obj/I, mob/living/user, params) + if(istype(I, /obj/item/device/gps)) + var/obj/item/device/gps/L = I + if(L.locked_location && !(stat & (NOPOWER|BROKEN))) + if(!user.unEquip(L)) + user << "\the [I] is stuck to your hand, you cannot put it in \the [src]!" + return + L.loc = src + locked = L + user << "You insert the GPS device into the [name]'s slot." + else + return ..() + +/obj/machinery/computer/teleporter/attack_ai(mob/user) + src.attack_hand(user) + +/obj/machinery/computer/teleporter/attack_hand(mob/user) + if(..()) + return + interact(user) + +/obj/machinery/computer/teleporter/interact(mob/user) + var/data = "

            Teleporter Status

            " + if(!power_station) + data += "
            No power station linked.
            " + else if(!power_station.teleporter_hub) + data += "
            No hub linked.
            " + else + data += "
            Current regime: [regime_set]
            " + data += "Current target: [(!target) ? "None" : "[get_area(target)] [(regime_set != "Gate") ? "" : "Teleporter"]"]
            " + if(calibrating) + data += "Calibration: In Progress" + else if(power_station.teleporter_hub.calibrated || power_station.teleporter_hub.accurate >= 3) + data += "Calibration: Optimal" + else + data += "Calibration: Sub-Optimal" + data += "

            " + + data += "Change regime
            " + data += "Set target
            " + if(locked) + data += "
            Get target from memory
            " + data += "Eject GPS device
            " + else + data += "
            Get target from memory
            " + data += "Eject GPS device
            " + + data += "
            Calibrate Hub" + + var/datum/browser/popup = new(user, "teleporter", name, 400, 400) + popup.set_content(data) + popup.open() + return + +/obj/machinery/computer/teleporter/Topic(href, href_list) + if(..()) + return + + if(href_list["eject"]) + eject() + updateDialog() + return + + if(!check_hub_connection()) + say("Error: Unable to detect hub.") + return + if(calibrating) + say("Error: Calibration in progress. Stand by.") + return + + if(href_list["regimeset"]) + power_station.engaged = 0 + power_station.teleporter_hub.update_icon() + power_station.teleporter_hub.calibrated = 0 + reset_regime() + if(href_list["settarget"]) + power_station.engaged = 0 + power_station.teleporter_hub.update_icon() + power_station.teleporter_hub.calibrated = 0 + set_target(usr) + if(href_list["locked"]) + power_station.engaged = 0 + power_station.teleporter_hub.update_icon() + power_station.teleporter_hub.calibrated = 0 + target = get_turf(locked.locked_location) + if(href_list["calibrate"]) + if(!target) + say("Error: No target set to calibrate to.") + return + if(power_station.teleporter_hub.calibrated || power_station.teleporter_hub.accurate >= 3) + say("Hub is already calibrated!") + return + say("Processing hub calibration to target...") + + calibrating = 1 + spawn(50 * (3 - power_station.teleporter_hub.accurate)) //Better parts mean faster calibration + calibrating = 0 + if(check_hub_connection()) + power_station.teleporter_hub.calibrated = 1 + say("Calibration complete.") + else + say("Error: Unable to detect hub.") + updateDialog() + + updateDialog() + +/obj/machinery/computer/teleporter/proc/check_hub_connection() + if(!power_station) + return + if(!power_station.teleporter_hub) + return + return 1 + +/obj/machinery/computer/teleporter/proc/reset_regime() + target = null + if(regime_set == "Teleporter") + regime_set = "Gate" + else + regime_set = "Teleporter" + +/obj/machinery/computer/teleporter/proc/eject() + if(locked) + locked.loc = loc + locked = null + +/obj/machinery/computer/teleporter/proc/set_target(mob/user) + if(regime_set == "Teleporter") + var/list/L = list() + var/list/areaindex = list() + + for(var/obj/item/device/radio/beacon/R in teleportbeacons) + var/turf/T = get_turf(R) + if (!T) + continue + if(T.z == ZLEVEL_CENTCOM || T.z > ZLEVEL_SPACEMAX) + continue + var/tmpname = T.loc.name + if(areaindex[tmpname]) + tmpname = "[tmpname] ([++areaindex[tmpname]])" + else + areaindex[tmpname] = 1 + L[tmpname] = R + + for (var/obj/item/weapon/implant/tracking/I in tracked_implants) + if (!I.implanted || !ismob(I.loc)) + continue + else + var/mob/M = I.loc + if (M.stat == 2) + if (M.timeofdeath + 6000 < world.time) + continue + var/turf/T = get_turf(M) + if(!T) + continue + if(T.z == ZLEVEL_CENTCOM) + continue + var/tmpname = M.real_name + if(areaindex[tmpname]) + tmpname = "[tmpname] ([++areaindex[tmpname]])" + else + areaindex[tmpname] = 1 + L[tmpname] = I + + var/desc = input("Please select a location to lock in.", "Locking Computer") as null|anything in L + target = L[desc] + + else + var/list/L = list() + var/list/areaindex = list() + var/list/S = power_station.linked_stations + if(!S.len) + user << "No connected stations located." + return + for(var/obj/machinery/teleport/station/R in S) + var/turf/T = get_turf(R) + if (!T || !R.teleporter_hub || !R.teleporter_console) + continue + if(T.z == ZLEVEL_CENTCOM || T.z > ZLEVEL_SPACEMAX) + continue + var/tmpname = T.loc.name + if(areaindex[tmpname]) + tmpname = "[tmpname] ([++areaindex[tmpname]])" + else + areaindex[tmpname] = 1 + L[tmpname] = R + var/desc = input("Please select a station to lock in.", "Locking Computer") as null|anything in L + target = L[desc] + if(target) + var/obj/machinery/teleport/station/trg = target + trg.linked_stations |= power_station + trg.stat &= ~NOPOWER + if(trg.teleporter_hub) + trg.teleporter_hub.stat &= ~NOPOWER + trg.teleporter_hub.update_icon() + if(trg.teleporter_console) + trg.teleporter_console.stat &= ~NOPOWER + trg.teleporter_console.update_icon() + return + +/obj/machinery/teleport + name = "teleport" + icon = 'icons/obj/machines/teleporter.dmi' + density = 1 + anchored = 1 + +/obj/machinery/teleport/hub + name = "teleporter hub" + desc = "It's the hub of a teleporting machine." + icon_state = "tele0" + var/accurate = 0 + use_power = 1 + idle_power_usage = 10 + active_power_usage = 2000 + var/obj/machinery/teleport/station/power_station + var/calibrated //Calibration prevents mutation + +/obj/machinery/teleport/hub/New() + ..() + link_power_station() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/teleporter_hub(null) + B.apply_default_parts(src) + +/obj/item/weapon/circuitboard/machine/teleporter_hub + name = "circuit board (Teleporter Hub)" + build_path = /obj/machinery/teleport/hub + origin_tech = "programming=3;engineering=4;bluespace=4;materials=4" + req_components = list( + /obj/item/weapon/ore/bluespace_crystal = 3, + /obj/item/weapon/stock_parts/matter_bin = 1) + def_components = list(/obj/item/weapon/ore/bluespace_crystal = /obj/item/weapon/ore/bluespace_crystal/artificial) + +/obj/machinery/teleport/hub/initialize() + link_power_station() + +/obj/machinery/teleport/hub/Destroy() + if (power_station) + power_station.teleporter_hub = null + power_station = null + return ..() + +/obj/machinery/teleport/hub/RefreshParts() + var/A = 0 + for(var/obj/item/weapon/stock_parts/matter_bin/M in component_parts) + A += M.rating + accurate = A + +/obj/machinery/teleport/hub/proc/link_power_station() + if(power_station) + return + for(dir in list(NORTH,EAST,SOUTH,WEST)) + power_station = locate(/obj/machinery/teleport/station, get_step(src, dir)) + if(power_station) + break + return power_station + +/obj/machinery/teleport/hub/Bumped(M as mob|obj) + if(z == ZLEVEL_CENTCOM) + M << "You can't use this here." + if(is_ready()) + teleport(M) + use_power(5000) + return + +/obj/machinery/teleport/hub/attackby(obj/item/W, mob/user, params) + if(default_deconstruction_screwdriver(user, "tele-o", "tele0", W)) + if(power_station && power_station.engaged) + power_station.engaged = 0 //hub with panel open is off, so the station must be informed. + update_icon() + return + if(exchange_parts(user, W)) + return + if(default_deconstruction_crowbar(W)) + return + return ..() + +/obj/machinery/teleport/hub/proc/teleport(atom/movable/M as mob|obj, turf/T) + var/obj/machinery/computer/teleporter/com = power_station.teleporter_console + if (!com) + return + if (!com.target) + visible_message("Cannot authenticate locked on coordinates. Please reinstate coordinate matrix.") + return + if (istype(M, /atom/movable)) + if(do_teleport(M, com.target)) + if(!calibrated && prob(30 - ((accurate) * 10))) //oh dear a problem + if(ishuman(M))//don't remove people from the round randomly you jerks + var/mob/living/carbon/human/human = M + if(human.dna && human.dna.species.id == "human") + M << "You hear a buzzing in your ears." + human.set_species(/datum/species/fly) + + human.apply_effect((rand(120 - accurate * 40, 180 - accurate * 60)), IRRADIATE, 0) + calibrated = 0 + return + +/obj/machinery/teleport/hub/update_icon() + if(panel_open) + icon_state = "tele-o" + else if(is_ready()) + icon_state = "tele1" + else + icon_state = "tele0" + +/obj/machinery/teleport/hub/power_change() + ..() + update_icon() + +/obj/machinery/teleport/hub/proc/is_ready() + . = !panel_open && !(stat & (BROKEN|NOPOWER)) && power_station && power_station.engaged && !(power_station.stat & (BROKEN|NOPOWER)) + +/obj/machinery/teleport/hub/syndicate/New() + ..() + component_parts += new /obj/item/weapon/stock_parts/matter_bin/super(null) + RefreshParts() + + +/obj/machinery/teleport/station + name = "station" + desc = "The power control station for a bluespace teleporter. Used for toggling power, and can activate a test-fire to prevent malfunctions." + icon_state = "controller" + var/engaged = 0 + use_power = 1 + idle_power_usage = 10 + active_power_usage = 2000 + var/obj/machinery/computer/teleporter/teleporter_console + var/obj/machinery/teleport/hub/teleporter_hub + var/list/linked_stations = list() + var/efficiency = 0 + +/obj/machinery/teleport/station/New() + ..() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/teleporter_station(null) + B.apply_default_parts(src) + link_console_and_hub() + +/obj/item/weapon/circuitboard/machine/teleporter_station + name = "circuit board (Teleporter Station)" + build_path = /obj/machinery/teleport/station + origin_tech = "programming=4;engineering=4;bluespace=4;plasmatech=3" + req_components = list( + /obj/item/weapon/ore/bluespace_crystal = 2, + /obj/item/weapon/stock_parts/capacitor = 2, + /obj/item/weapon/stock_parts/console_screen = 1) + def_components = list(/obj/item/weapon/ore/bluespace_crystal = /obj/item/weapon/ore/bluespace_crystal/artificial) + +/obj/machinery/teleport/station/initialize() + link_console_and_hub() + +/obj/machinery/teleport/station/RefreshParts() + var/E + for(var/obj/item/weapon/stock_parts/capacitor/C in component_parts) + E += C.rating + efficiency = E - 1 + +/obj/machinery/teleport/station/proc/link_console_and_hub() + for(dir in list(NORTH,EAST,SOUTH,WEST)) + teleporter_hub = locate(/obj/machinery/teleport/hub, get_step(src, dir)) + if(teleporter_hub) + teleporter_hub.link_power_station() + break + for(dir in list(NORTH,EAST,SOUTH,WEST)) + teleporter_console = locate(/obj/machinery/computer/teleporter, get_step(src, dir)) + if(teleporter_console) + teleporter_console.link_power_station() + break + return teleporter_hub && teleporter_console + + +/obj/machinery/teleport/station/Destroy() + if(teleporter_hub) + teleporter_hub.power_station = null + teleporter_hub.update_icon() + teleporter_hub = null + if (teleporter_console) + teleporter_console.power_station = null + teleporter_console = null + return ..() + +/obj/machinery/teleport/station/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/device/multitool)) + var/obj/item/device/multitool/M = W + if(panel_open) + M.buffer = src + user << "You download the data to the [W.name]'s buffer." + else + if(M.buffer && istype(M.buffer, /obj/machinery/teleport/station) && M.buffer != src) + if(linked_stations.len < efficiency) + linked_stations.Add(M.buffer) + M.buffer = null + user << "You upload the data from the [W.name]'s buffer." + else + user << "This station can't hold more information, try to use better parts." + return + else if(default_deconstruction_screwdriver(user, "controller-o", "controller", W)) + update_icon() + return + + else if(exchange_parts(user, W)) + return + + else if(default_deconstruction_crowbar(W)) + return + + else if(istype(W, /obj/item/weapon/wirecutters)) + if(panel_open) + link_console_and_hub() + user << "You reconnect the station to nearby machinery." + return + else + return ..() + +/obj/machinery/teleport/station/attack_paw() + src.attack_hand() + +/obj/machinery/teleport/station/attack_ai() + src.attack_hand() + +/obj/machinery/teleport/station/attack_hand(mob/user) + if(!panel_open) + toggle(user) + +/obj/machinery/teleport/station/proc/toggle(mob/user) + if(stat & (BROKEN|NOPOWER) || !teleporter_hub || !teleporter_console ) + return + if (teleporter_console.target) + if(teleporter_hub.panel_open || teleporter_hub.stat & (BROKEN|NOPOWER)) + visible_message("The teleporter hub isn't responding.") + else + src.engaged = !src.engaged + use_power(5000) + visible_message("Teleporter [engaged ? "" : "dis"]engaged!") + else + visible_message("No target detected.") + src.engaged = 0 + teleporter_hub.update_icon() + src.add_fingerprint(user) + return + +/obj/machinery/teleport/station/power_change() + ..() + update_icon() + if(teleporter_hub) + teleporter_hub.update_icon() + +/obj/machinery/teleport/station/update_icon() + if(panel_open) + icon_state = "controller-o" + else if(stat & (BROKEN|NOPOWER)) + icon_state = "controller-p" + else + icon_state = "controller" diff --git a/code/game/machinery/transformer.dm b/code/game/machinery/transformer.dm new file mode 100644 index 0000000..74c8430 --- /dev/null +++ b/code/game/machinery/transformer.dm @@ -0,0 +1,129 @@ +/obj/machinery/transformer + name = "\improper Automatic Robotic Factory 5000" + desc = "A large metallic machine with an entrance and an exit. A sign on \ + the side reads, 'human go in, robot come out'. The human must be \ + lying down and alive. Has to cooldown between each use." + icon = 'icons/obj/recycling.dmi' + icon_state = "separator-AO1" + layer = ABOVE_ALL_MOB_LAYER // Overhead + anchored = 1 + density = 0 + var/transform_dead = 0 + var/transform_standing = 0 + var/cooldown_duration = 600 // 1 minute + var/cooldown = 0 + var/cooldown_timer + var/robot_cell_charge = 5000 + var/obj/effect/countdown/transformer/countdown + +/obj/machinery/transformer/New() + // On us + ..() + new /obj/machinery/conveyor/auto(loc, WEST) + countdown = new(src) + countdown.start() + +/obj/machinery/transformer/examine(mob/user) + . = ..() + if(cooldown && (issilicon(user) || isobserver(user))) + var/seconds_remaining = (cooldown_timer - world.time) / 10 + user << "It will be ready in [max(0, seconds_remaining)] seconds." + +/obj/machinery/transformer/Destroy() + if(countdown) + qdel(countdown) + countdown = null + . = ..() + +/obj/machinery/transformer/power_change() + ..() + update_icon() + +/obj/machinery/transformer/update_icon() + ..() + if(stat & (BROKEN|NOPOWER) || cooldown == 1) + icon_state = "separator-AO0" + else + icon_state = initial(icon_state) + +/obj/machinery/transformer/Bumped(atom/movable/AM) + if(cooldown == 1) + return + + // Crossed didn't like people lying down. + if(ishuman(AM)) + // Only humans can enter from the west side, while lying down. + var/move_dir = get_dir(loc, AM.loc) + var/mob/living/carbon/human/H = AM + if((transform_standing || H.lying) && move_dir == EAST)// || move_dir == WEST) + AM.loc = src.loc + do_transform(AM) + +/obj/machinery/transformer/CanPass(atom/movable/mover, turf/target, height=0) + // Allows items to go through, + // to stop them from blocking the conveyor belt. + if(!ishuman(mover)) + var/dir = get_dir(src, mover) + if(dir == EAST) + return ..() + return 0 + +/obj/machinery/transformer/process() + if(cooldown && (cooldown_timer <= world.time)) + cooldown = FALSE + update_icon() + +/obj/machinery/transformer/proc/do_transform(mob/living/carbon/human/H) + if(stat & (BROKEN|NOPOWER)) + return + if(cooldown == 1) + return + + if(!transform_dead && H.stat == DEAD) + playsound(src.loc, 'sound/machines/buzz-sigh.ogg', 50, 0) + return + + // Activate the cooldown + cooldown = 1 + cooldown_timer = world.time + cooldown_duration + update_icon() + + playsound(src.loc, 'sound/items/Welder.ogg', 50, 1) + H.emote("scream") // It is painful + H.adjustBruteLoss(max(0, 80 - H.getBruteLoss())) // Hurt the human, don't try to kill them though. + + // Sleep for a couple of ticks to allow the human to see the pain + sleep(5) + + use_power(5000) // Use a lot of power. + var/mob/living/silicon/robot/R = H.Robotize(1) // Delete the items or they'll all pile up in a single tile and lag + + R.cell.maxcharge = robot_cell_charge + R.cell.charge = robot_cell_charge + + // So he can't jump out the gate right away. + R.SetLockdown() + addtimer(src, "unlock_new_robot", 50, FALSE, R) + +/obj/machinery/transformer/proc/unlock_new_robot(mob/living/silicon/robot/R) + playsound(src.loc, 'sound/machines/ping.ogg', 50, 0) + sleep(30) + if(R) + R.SetLockdown(0) + R.notify_ai(1) + +/obj/machinery/transformer/conveyor/New() + ..() + var/turf/T = loc + if(T) + // Spawn Conveyor Belts + + //East + var/turf/east = locate(T.x + 1, T.y, T.z) + if(isfloorturf(east)) + new /obj/machinery/conveyor/auto(east, WEST) + + // West + var/turf/west = locate(T.x - 1, T.y, T.z) + if(isfloorturf(west)) + new /obj/machinery/conveyor/auto(west, WEST) diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm new file mode 100644 index 0000000..f636e3a --- /dev/null +++ b/code/game/machinery/vending.dm @@ -0,0 +1,1175 @@ +#define STANDARD_CHARGE 1 +#define CONTRABAND_CHARGE 2 +#define COIN_CHARGE 3 + +/datum/data/vending_product + var/product_name = "generic" + var/product_path = null + var/amount = 0 + var/max_amount = 0 + var/price = 0 + var/display_color = "blue" + +/datum/data/vending_product/New(var/path, var/name = null, var/amount = 1, var/price = 0) + ..() + + product_path = path + + if(!name) + var/atom/tmp = new path + product_name = initial(tmp.name) + qdel(tmp) + else + product_name = name + + amount = amount + price = price + + +/obj/machinery/vending + name = "\improper Vendomat" + desc = "A generic vending machine." + icon = 'icons/obj/vending.dmi' + icon_state = "generic" + layer = BELOW_OBJ_LAYER + anchored = 1 + density = 1 + verb_say = "beeps" + verb_ask = "beeps" + verb_exclaim = "beeps" + obj_integrity = 300 + max_integrity = 300 + integrity_failure = 100 + armor = list(melee = 20, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 70) + var/active = 1 //No sales pitches if off! + var/vend_ready = 1 //Are we ready to vend?? Is it time?? + var/vend_delay = 10 //How long does it take to vend? + + // To be filled out at compile time + var/list/products = list() //For each, use the following pattern: + var/list/contraband = list() //list(/type/path = amount,/type/path2 = amount2) + var/list/premium = list() //No specified amount = only one in stock + var/list/prices = list() // Prices for each item, list(/type/path = price), items not in the list don't have a price. + + var/product_slogans = "" //String of slogans separated by semicolons, optional + var/product_ads = "" //String of small ad messages in the vending screen - random chance + var/list/product_records = list() + var/list/hidden_records = list() + var/list/coin_records = list() + var/list/slogan_list = list() + var/list/small_ads = list() //Small ad messages in the vending screen - random chance of popping up whenever you open it + var/vend_reply //Thank you for shopping! + var/last_reply = 0 + var/last_slogan = 0 //When did we last pitch? + var/slogan_delay = 6000 //How long until we can pitch again? + var/icon_vend //Icon_state when vending! + var/icon_deny //Icon_state when vending! + var/seconds_electrified = 0 //Shock customers like an airlock. + var/shoot_inventory = 0 //Fire items at customers! We're broken! + var/shut_up = 0 //Stop spouting those godawful pitches! + var/extended_inventory = 0 //can we access the hidden inventory? + var/scan_id = 1 + var/obj/item/weapon/coin/coin + var/balance = 0 + + + var/dish_quants = list() //used by the snack machine's custom compartment to count dishes. + + var/obj/item/weapon/vending_refill/refill_canister = null //The type of refill canisters used by this machine. + +/obj/machinery/vending/New() + ..() + wires = new /datum/wires/vending(src) + if(refill_canister) //constructable vending machine + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/vendor(null) + B.apply_default_parts(src) + else + build_inventory(products) + build_inventory(contraband, 1) + build_inventory(premium, 0, 1) + + 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() + +/obj/item/weapon/circuitboard/machine/vendor + name = "circuit board (Booze-O-Mat Vendor)" + build_path = /obj/machinery/vending/boozeomat + origin_tech = "programming=1" + req_components = list( + /obj/item/weapon/vending_refill/boozeomat = 3) + + var/list/names_paths = list(/obj/machinery/vending/boozeomat = "Booze-O-Mat", + /obj/machinery/vending/coffee = "Solar's Best Hot Drinks", + /obj/machinery/vending/snack = "Getmore Chocolate Corp", + /obj/machinery/vending/cola = "Robust Softdrinks", + /obj/machinery/vending/cigarette = "ShadyCigs Deluxe", + /obj/machinery/vending/autodrobe = "AutoDrobe", + /obj/machinery/vending/clothing = "ClothesMate") + +/obj/item/weapon/circuitboard/machine/vendor/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/screwdriver)) + var/position = names_paths.Find(build_path) + position = (position == names_paths.len) ? 1 : (position + 1) + var/typepath = names_paths[position] + + user << "You set the board to \"[names_paths[typepath]]\"." + set_type(typepath) + else + return ..() + +/obj/item/weapon/circuitboard/machine/vendor/proc/set_type(var/obj/machinery/vending/typepath) + build_path = typepath + name = "circuit board ([names_paths[build_path]] Vendor)" + req_components = list(initial(typepath.refill_canister) = 3) + +/obj/item/weapon/circuitboard/machine/vendor/apply_default_parts(obj/machinery/M) + for(var/typepath in names_paths) + if(istype(M, typepath)) + set_type(typepath) + break + ..() + + +/obj/machinery/vending/Destroy() + qdel(wires) + wires = null + qdel(coin) + coin = null + return ..() + +/obj/machinery/vending/snack/Destroy() + for(var/obj/item/weapon/reagent_containers/food/snacks/S in contents) + S.loc = get_turf(src) + qdel(wires) + wires = null + return ..() + +/obj/machinery/vending/RefreshParts() //Better would be to make constructable child + if(component_parts) + product_records = list() + hidden_records = list() + coin_records = list() + build_inventory(products, start_empty = 1) + build_inventory(contraband, 1, start_empty = 1) + build_inventory(premium, 0, 1, start_empty = 1) + for(var/obj/item/weapon/vending_refill/VR in component_parts) + refill_inventory(VR, product_records, STANDARD_CHARGE) + refill_inventory(VR, coin_records, COIN_CHARGE) + refill_inventory(VR, hidden_records, CONTRABAND_CHARGE) + + +/obj/machinery/vending/deconstruct(disassembled = TRUE) + if(!refill_canister) //the non constructable vendors drop metal instead of a machine frame. + if(!(flags & NODECONSTRUCT)) + new /obj/item/stack/sheet/metal(loc, 3) + qdel(src) + else + ..() + +/obj/machinery/vending/obj_break(damage_flag) + if(!(stat & BROKEN) && !(flags & NODECONSTRUCT)) + var/dump_amount = 0 + for(var/datum/data/vending_product/R in product_records) + if(R.amount <= 0) //Try to use a record that actually has something to dump. + continue + var/dump_path = R.product_path + if(!dump_path) + continue + + while(R.amount>0) + var/obj/O = new dump_path(loc) + step(O, pick(alldirs)) //we only drop 20% of the total of each products and spread it + R.amount -= 5 //around to not fill the turf with too many objects. + dump_amount++ + if(dump_amount > 15) //so we don't drop too many items (e.g. ClothesMate) + break + stat |= BROKEN + icon_state = "[initial(icon_state)]-broken" + +/obj/machinery/vending/proc/build_inventory(list/productlist, hidden=0, req_coin=0, start_empty = null) + for(var/typepath in productlist) + var/amount = productlist[typepath] + var/price = prices[typepath] + if(isnull(amount)) + amount = 0 + + if(isnull(prices)) + price = 0 + + var/atom/temp = new typepath(null) + var/datum/data/vending_product/R = new /datum/data/vending_product() + R.product_name = initial(temp.name) + R.product_path = typepath + if(!start_empty) + R.amount = amount + R.max_amount = amount + R.price = price + R.display_color = pick("red","blue","green") + + + if(hidden) + hidden_records += R + else if(req_coin) + coin_records += R + else + product_records += R + +/obj/machinery/vending/proc/refill_inventory(obj/item/weapon/vending_refill/refill, datum/data/vending_product/machine, var/charge_type = STANDARD_CHARGE) + var/total = 0 + var/to_restock = 0 + + for(var/datum/data/vending_product/machine_content in machine) + if(machine_content.amount == 0 && refill.charges[charge_type] > 0) + machine_content.amount++ + refill.charges[charge_type]-- + total++ + to_restock += machine_content.max_amount - machine_content.amount + if(to_restock <= refill.charges[charge_type]) + for(var/datum/data/vending_product/machine_content in machine) + machine_content.amount = machine_content.max_amount + refill.charges[charge_type] -= to_restock + total += to_restock + else + var/tmp_charges = refill.charges[charge_type] + for(var/datum/data/vending_product/machine_content in machine) + if(refill.charges[charge_type] == 0) + break + var/restock = Ceiling(((machine_content.max_amount - machine_content.amount)/to_restock)*tmp_charges) + if(restock > refill.charges[charge_type]) + restock = refill.charges[charge_type] + machine_content.amount += restock + refill.charges[charge_type] -= restock + total += restock + return total + +/obj/machinery/vending/snack/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/weapon/reagent_containers/food/snacks)) + if(!compartment_access_check(user)) + return + if(junk_check(W)) + if(!iscompartmentfull(user)) + if(!user.drop_item()) + return + W.loc = src + food_load(W) + user << "You insert [W] into [src]'s chef compartment." + else + user << "[src]'s chef compartment does not accept junk food." + + else if(istype(W, /obj/item/weapon/storage/bag/tray)) + if(!compartment_access_check(user)) + return + var/obj/item/weapon/storage/T = W + var/loaded = 0 + var/denied_items = 0 + for(var/obj/item/weapon/reagent_containers/food/snacks/S in T.contents) + if(iscompartmentfull(user)) + break + if(junk_check(S)) + T.remove_from_storage(S, src) + food_load(S) + loaded++ + else + denied_items++ + if(denied_items) + user << "[src] refuses some items." + if(loaded) + user << "You insert [loaded] dishes into [src]'s chef compartment." + updateUsrDialog() + return + + else + return ..() + +/obj/machinery/vending/snack/proc/compartment_access_check(user) + req_access_txt = chef_compartment_access + if(!allowed(user) && !emagged && scan_id) + user << "[src]'s chef compartment blinks red: Access denied." + req_access_txt = "0" + return 0 + req_access_txt = "0" + return 1 + +/obj/machinery/vending/snack/proc/junk_check(obj/item/weapon/reagent_containers/food/snacks/S) + if(S.junkiness) + return 0 + return 1 + +/obj/machinery/vending/snack/proc/iscompartmentfull(mob/user) + if(contents.len >= 30) // no more than 30 dishes can fit inside + user << "[src]'s chef compartment is full." + return 1 + return 0 + +/obj/machinery/vending/snack/proc/food_load(obj/item/weapon/reagent_containers/food/snacks/S) + if(dish_quants[S.name]) + dish_quants[S.name]++ + else + dish_quants[S.name] = 1 + sortList(dish_quants) + +/obj/machinery/vending/attackby(obj/item/W, mob/user, params) + if(panel_open) + if(default_unfasten_wrench(user, W, time = 60)) + return + + if(component_parts) + if(default_deconstruction_crowbar(W)) + return + + if(istype(W, /obj/item/weapon/screwdriver)) + if(anchored) + panel_open = !panel_open + user << "You [panel_open ? "open" : "close"] the maintenance panel." + cut_overlays() + if(panel_open) + add_overlay(image(icon, "[initial(icon_state)]-panel")) + updateUsrDialog() + else + user << "You must first secure [src]." + return + else if(istype(W, /obj/item/device/multitool)||istype(W, /obj/item/weapon/wirecutters)) + if(panel_open) + attack_hand(user) + return + else if(istype(W, /obj/item/weapon/coin) && premium.len > 0) + if(!user.drop_item()) + return + W.loc = src + coin = W + user << "You insert [W] into [src]." + return + + else if(istype(W, /obj/item/stack/spacecash)) + if(!user.drop_item()) + return + var/obj/item/stack/spacecash/C = W + C.loc = src + balance += C.value//get_worth() + user << "You insert [C] into [src]." + qdel(C) + return + + + else if(istype(W, refill_canister) && refill_canister != null) + if(stat & (BROKEN|NOPOWER)) + user << "It does nothing." + else if(panel_open) + //if the panel is open we attempt to refill the machine + var/obj/item/weapon/vending_refill/canister = W + if(canister.charges[STANDARD_CHARGE] == 0) + user << "This [canister.name] is empty!" + else + var/transfered = refill_inventory(canister,product_records,STANDARD_CHARGE) + transfered += refill_inventory(canister,coin_records,COIN_CHARGE) + transfered += refill_inventory(canister,hidden_records,CONTRABAND_CHARGE) + if(transfered) + user << "You loaded [transfered] items in \the [name]." + else + user << "The [name] is fully stocked." + return + else + user << "You should probably unscrew the service panel first." + else + return ..() + + +/obj/machinery/vending/on_deconstruction() + var/product_list = list(product_records, hidden_records, coin_records) + for(var/i=1, i<=3, i++) + for(var/datum/data/vending_product/machine_content in product_list[i]) + while(machine_content.amount !=0) + var/safety = 0 //to avoid infinite loop + for(var/obj/item/weapon/vending_refill/VR in component_parts) + safety++ + if(VR.charges[i] < VR.init_charges[i]) + VR.charges[i]++ + machine_content.amount-- + if(!machine_content.amount) + break + else + safety-- + if(safety <= 0) // all refill canisters are full + break + ..() + +/obj/machinery/vending/emag_act(mob/user) + if(!emagged) + emagged = 1 + user << "You short out the product lock on [src]." + +/obj/machinery/vending/attack_ai(mob/user) + return attack_hand(user) + +/obj/machinery/vending/attack_hand(mob/user) + var/dat = "" + if(panel_open && !isAI(user)) + return wires.interact(user) + else + if(stat & (BROKEN|NOPOWER)) + return + + dat += "

            Select an item

            " + dat += "Balance: $[balance]Refund balance" + dat += "
            " + if(product_records.len == 0) + dat += "No product loaded!" + else + var/list/display_records = product_records + if(extended_inventory) + display_records = product_records + hidden_records + if(coin) + display_records = product_records + coin_records + if(coin && extended_inventory) + display_records = product_records + hidden_records + coin_records + dat += "
              " + for (var/datum/data/vending_product/R in display_records) + dat += "
            • " + if(R.amount > 0) + dat += "Vend " + else + dat += "Sold out " + dat += "[sanitize(R.product_name)]:" + dat += " [R.amount]" + if(R.price) + dat += " ($[R.price])" + + dat += "
            • " + dat += "
            " + dat += "
            " + if(premium.len > 0) + dat += "Coin slot: " + if (coin) + dat += "[coin]  Remove" + else + dat += "No coin  Remove" + if(istype(src, /obj/machinery/vending/snack)) + dat += "

            Chef's Food Selection

            " + dat += "
            " + for (var/O in dish_quants) + if(dish_quants[O] > 0) + var/N = dish_quants[O] + dat += "Dispense " + dat += "[capitalize(O)]: [N]
            " + dat += "
            " + user.set_machine(src) + if(seconds_electrified && !(stat & NOPOWER)) + if(shock(user, 100)) + return + + //user << browse(dat, "window=vending") + //onclose(user, "") + var/datum/browser/popup = new(user, "vending", (name)) + popup.set_content(dat) + popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) + popup.open() + + +/obj/machinery/vending/Topic(href, href_list) + if(..()) + return + + if(issilicon(usr)) + if(iscyborg(usr)) + var/mob/living/silicon/robot/R = usr + if(!(R.module && istype(R.module,/obj/item/weapon/robot_module/butler) )) + usr << "The vending machine refuses to interface with you, as you are not in its target demographic!" + return + else + usr << "The vending machine refuses to interface with you, as you are not in its target demographic!" + return + + + if(href_list["refund"]) + if(balance > 0) + var/obj/item/stack/spacecash/returned = new /obj/item/stack/spacecash(get_turf(src), balance) + usr << "You receive [returned]." + balance = 0 + + + if(href_list["remove_coin"]) + if(!coin) + usr << "There is no coin in this machine." + return + + coin.loc = loc + if(!usr.get_active_held_item()) + usr.put_in_hands(coin) + usr << "You remove [coin] from [src]." + coin = null + + + usr.set_machine(src) + + if((href_list["dispense"]) && (vend_ready)) + var/N = href_list["dispense"] + if(dish_quants[N] <= 0) // Sanity check, there are probably ways to press the button when it shouldn't be possible. + return + vend_ready = 0 + use_power(5) + + spawn(vend_delay) + dish_quants[N] = max(dish_quants[N] - 1, 0) + for(var/obj/O in contents) + if(O.name == N) + O.loc = src.loc + break + vend_ready = 1 + updateUsrDialog() + return + + if((href_list["vend"]) && (vend_ready)) + if(panel_open) + usr << "The vending machine cannot dispense products while its service panel is open!" + return + + if((!allowed(usr)) && !emagged && scan_id) //For SECURE VENDING MACHINES YEAH + usr << "Access denied." //Unless emagged of course + flick(icon_deny,src) + return + + + vend_ready = 0 //One thing at a time!! + + var/datum/data/vending_product/R = locate(href_list["vend"]) + if(balance < R.price) + usr << "Not enough money!!" + vend_ready = 1 + return + + + if(!R || !istype(R) || !R.product_path) + vend_ready = 1 + return + + if(R in hidden_records) + if(!extended_inventory) + vend_ready = 1 + return + else if(R in coin_records) + if(!coin) + usr << "You need to insert a coin to get this item!" + vend_ready = 1 + return + if(coin.string_attached) + if(prob(50)) + if(usr.put_in_hands(coin)) + usr << "You successfully pull [coin] out before [src] could swallow it." + coin = null + else + usr << "You couldn't pull [coin] out because your hands are full!" + qdel(coin) + coin = null + else + usr << "You weren't able to pull [coin] out fast enough, the machine ate it, string and all!" + qdel(coin) + coin = null + else + qdel(coin) + coin = null + else if (!(R in product_records)) + vend_ready = 1 + message_admins("Vending machine exploit attempted by [key_name(usr, usr.client)]!") + return + + if (R.amount <= 0) + usr << "Sold out." + vend_ready = 1 + return + else + R.amount-- + if(R.price) + balance -= R.price + + + if(((last_reply + (vend_delay + 200)) <= world.time) && vend_reply) + speak(vend_reply) + last_reply = world.time + + use_power(5) + if(icon_vend) //Show the vending animation if needed + flick(icon_vend,src) + spawn(vend_delay) + new R.product_path(get_turf(src)) + vend_ready = 1 + return + + updateUsrDialog() + return + + else if(href_list["togglevoice"] && panel_open) + shut_up = !shut_up + + updateUsrDialog() + + +/obj/machinery/vending/process() + if(stat & (BROKEN|NOPOWER)) + return + if(!active) + return + + if(seconds_electrified > 0) + seconds_electrified-- + + //Pitch to the people! Really sell it! + if(last_slogan + slogan_delay <= world.time && slogan_list.len > 0 && !shut_up && prob(5)) + var/slogan = pick(slogan_list) + speak(slogan) + last_slogan = world.time + + if(shoot_inventory && prob(2)) + throw_item() + + +/obj/machinery/vending/proc/speak(message) + if(stat & (BROKEN|NOPOWER)) + return + if(!message) + return + + say(message) + +/obj/machinery/vending/power_change() + if(stat & BROKEN) + icon_state = "[initial(icon_state)]-broken" + else + if(powered()) + icon_state = initial(icon_state) + stat &= ~NOPOWER + else + icon_state = "[initial(icon_state)]-off" + stat |= NOPOWER + + +//Somebody cut an important wire and now we're following a new definition of "pitch." +/obj/machinery/vending/proc/throw_item() + var/obj/throw_item = null + var/mob/living/target = locate() in view(7,src) + if(!target) + return 0 + + for(var/datum/data/vending_product/R in product_records) + if(R.amount <= 0) //Try to use a record that actually has something to dump. + continue + var/dump_path = R.product_path + if(!dump_path) + continue + + R.amount-- + throw_item = new dump_path(loc) + break + if(!throw_item) + return 0 + + throw_item.throw_at(target, 16, 3) + visible_message("[src] launches [throw_item] at [target]!") + return 1 + + +/obj/machinery/vending/proc/shock(mob/user, prb) + if(stat & (BROKEN|NOPOWER)) // unpowered, no shock + return 0 + if(!prob(prb)) + return 0 + var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread + s.set_up(5, 1, src) + s.start() + if(electrocute_mob(user, get_area(src), src, 0.7)) + return 1 + else + return 0 + + + +/* + * Vending machine types + */ + +/* + +/obj/machinery/vending/[vendors name here] // --vending machine template :) + name = "" + desc = "" + icon = '' + icon_state = "" + vend_delay = 15 + products = list() + contraband = list() + premium = list() + +IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY CANISTER CHARGES in vending_items.dm +*/ + +/* +/obj/machinery/vending/atmospherics //Commenting this out until someone ponies up some actual working, broken, and unpowered sprites - Quarxink + name = "Tank Vendor" + desc = "A vendor with a wide variety of masks and gas tanks." + icon = 'icons/obj/objects.dmi' + icon_state = "dispenser" + product_paths = "/obj/item/weapon/tank/internals/oxygen;/obj/item/weapon/tank/internals/plasma;/obj/item/weapon/tank/internals/emergency_oxygen;/obj/item/weapon/tank/internals/emergency_oxygen/engi;/obj/item/clothing/mask/breath" + product_amounts = "10;10;10;5;25" + vend_delay = 0 +*/ + +/obj/machinery/vending/boozeomat + name = "\improper Booze-O-Mat" + desc = "A technological marvel, supposedly able to mix just the mixture you'd like to drink the moment you ask for one." + icon_state = "boozeomat" //////////////18 drink entities below, plus the glasses, in case someone wants to edit the number of bottles + icon_deny = "boozeomat-deny" + products = list(/obj/item/weapon/reagent_containers/food/drinks/bottle/gin = 5,/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey = 5, + /obj/item/weapon/reagent_containers/food/drinks/bottle/tequila = 5,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka = 5, + /obj/item/weapon/reagent_containers/food/drinks/bottle/vermouth = 5,/obj/item/weapon/reagent_containers/food/drinks/bottle/rum = 5, + /obj/item/weapon/reagent_containers/food/drinks/bottle/wine = 5,/obj/item/weapon/reagent_containers/food/drinks/bottle/cognac = 5, + /obj/item/weapon/reagent_containers/food/drinks/bottle/kahlua = 5,/obj/item/weapon/reagent_containers/food/drinks/bottle/hcider = 5, + /obj/item/weapon/reagent_containers/food/drinks/bottle/absinthe = 5, + /obj/item/weapon/reagent_containers/food/drinks/ale = 6,/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice = 4, + /obj/item/weapon/reagent_containers/food/drinks/bottle/tomatojuice = 4,/obj/item/weapon/reagent_containers/food/drinks/bottle/limejuice = 4, + /obj/item/weapon/reagent_containers/food/drinks/bottle/cream = 4,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/tonic = 8, + /obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola = 8, /obj/item/weapon/reagent_containers/food/drinks/soda_cans/sodawater = 15, + /obj/item/weapon/reagent_containers/food/drinks/drinkingglass = 30,/obj/item/weapon/reagent_containers/food/drinks/ice = 10, + /obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass = 12, + /obj/item/weapon/reagent_containers/food/drinks/flask = 3) + + prices = list(/obj/item/weapon/reagent_containers/food/drinks/bottle/gin = 25,/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey = 25, + /obj/item/weapon/reagent_containers/food/drinks/bottle/tequila = 25,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka = 25, + /obj/item/weapon/reagent_containers/food/drinks/bottle/vermouth = 25,/obj/item/weapon/reagent_containers/food/drinks/bottle/rum = 25, + /obj/item/weapon/reagent_containers/food/drinks/bottle/wine = 25,/obj/item/weapon/reagent_containers/food/drinks/bottle/cognac = 25, + /obj/item/weapon/reagent_containers/food/drinks/bottle/kahlua = 25,/obj/item/weapon/reagent_containers/food/drinks/bottle/hcider = 25, + /obj/item/weapon/reagent_containers/food/drinks/bottle/absinthe = 25, + /obj/item/weapon/reagent_containers/food/drinks/ale = 15,/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice = 10, + /obj/item/weapon/reagent_containers/food/drinks/bottle/tomatojuice = 10,/obj/item/weapon/reagent_containers/food/drinks/bottle/limejuice = 10, + /obj/item/weapon/reagent_containers/food/drinks/bottle/cream = 10,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/tonic = 10, + /obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola = 10, /obj/item/weapon/reagent_containers/food/drinks/soda_cans/sodawater = 10, + /obj/item/weapon/reagent_containers/food/drinks/flask = 30) + + contraband = list(/obj/item/weapon/reagent_containers/food/drinks/mug/tea = 12) + vend_delay = 15 + product_slogans = "I hope nobody asks me for a bloody cup o' tea...;Alcohol is humanity's friend. Would you abandon a friend?;Quite delighted to serve you!;Is nobody thirsty on this station?" + product_ads = "Drink up!;Booze is good for you!;Alcohol is humanity's best friend.;Quite delighted to serve you!;Care for a nice, cold beer?;Nothing cures you like booze!;Have a sip!;Have a drink!;Have a beer!;Beer is good for you!;Only the finest alcohol!;Best quality booze since 2053!;Award-winning wine!;Maximum alcohol!;Man loves beer.;A toast for progress!" + //req_access_txt = "25" + refill_canister = /obj/item/weapon/vending_refill/boozeomat + +/obj/machinery/vending/assist + products = list( /obj/item/device/assembly/prox_sensor = 5,/obj/item/device/assembly/igniter = 3,/obj/item/device/assembly/signaler = 4, + /obj/item/weapon/wirecutters = 1, /obj/item/weapon/cartridge/signal = 4) + prices = list( /obj/item/device/assembly/prox_sensor = 20,/obj/item/device/assembly/igniter = 20,/obj/item/device/assembly/signaler = 20, + /obj/item/weapon/wirecutters = 20, /obj/item/weapon/cartridge/signal = 20) + contraband = list(/obj/item/device/flashlight = 5,/obj/item/device/assembly/timer = 2, /obj/item/device/assembly/voice = 2, /obj/item/device/assembly/health = 2) + product_ads = "Only the finest!;Have some tools.;The most robust equipment.;The finest gear in space!" + armor = list(melee = 100, bullet = 100, laser = 100, energy = 100, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 50) + resistance_flags = FIRE_PROOF + +/obj/machinery/vending/coffee + name = "\improper Solar's Best Hot Drinks" + desc = "A vending machine which dispenses hot drinks." + product_ads = "Have a drink!;Drink up!;It's good for you!;Would you like a hot joe?;I'd kill for some coffee!;The best beans in the galaxy.;Only the finest brew for you.;Mmmm. Nothing like a coffee.;I like coffee, don't you?;Coffee helps you work!;Try some tea.;We hope you like the best!;Try our new chocolate!;Admin conspiracies" + icon_state = "coffee" + icon_vend = "coffee-vend" + vend_delay = 34 + products = list(/obj/item/weapon/reagent_containers/food/drinks/coffee = 25,/obj/item/weapon/reagent_containers/food/drinks/mug/tea = 25,/obj/item/weapon/reagent_containers/food/drinks/mug/coco = 25) + prices = list(/obj/item/weapon/reagent_containers/food/drinks/coffee = 5,/obj/item/weapon/reagent_containers/food/drinks/mug/tea = 5,/obj/item/weapon/reagent_containers/food/drinks/mug/coco = 5) + contraband = list(/obj/item/weapon/reagent_containers/food/drinks/ice = 12) + refill_canister = /obj/item/weapon/vending_refill/coffee + +/obj/machinery/vending/snack + name = "\improper Getmore Chocolate Corp" + desc = "A snack machine courtesy of the Getmore Chocolate Corporation, based out of Mars" + product_slogans = "Try our new nougat bar!;Twice the calories for half the price!" + product_ads = "The healthiest!;Award-winning chocolate bars!;Mmm! So good!;Oh my god it's so juicy!;Have a snack.;Snacks are good for you!;Have some more Getmore!;Best quality snacks straight from mars.;We love chocolate!;Try our new jerky!" + icon_state = "snack" + products = list(/obj/item/weapon/reagent_containers/food/snacks/candy = 6,/obj/item/weapon/reagent_containers/food/drinks/dry_ramen = 6,/obj/item/weapon/reagent_containers/food/snacks/chips =6, + /obj/item/weapon/reagent_containers/food/snacks/sosjerky = 6,/obj/item/weapon/reagent_containers/food/snacks/no_raisin = 6,/obj/item/weapon/reagent_containers/food/snacks/spacetwinkie = 6, + /obj/item/weapon/reagent_containers/food/snacks/cheesiehonkers = 6) + prices = list(/obj/item/weapon/reagent_containers/food/snacks/candy = 10,/obj/item/weapon/reagent_containers/food/drinks/dry_ramen = 10,/obj/item/weapon/reagent_containers/food/snacks/chips =10, + /obj/item/weapon/reagent_containers/food/snacks/sosjerky = 10,/obj/item/weapon/reagent_containers/food/snacks/no_raisin = 10,/obj/item/weapon/reagent_containers/food/snacks/spacetwinkie = 10, + /obj/item/weapon/reagent_containers/food/snacks/cheesiehonkers = 10) + + contraband = list(/obj/item/weapon/reagent_containers/food/snacks/syndicake = 6) + refill_canister = /obj/item/weapon/vending_refill/snack + var/chef_compartment_access = "28" + +/obj/machinery/vending/sustenance + name = "\improper Sustenance Vendor" + desc = "A vending machine which vends food, as required by section 47-C of the NT's Prisoner Ethical Treatment Agreement." + product_slogans = "Enjoy your meal.;Enough calories to support strenuous labor." + product_ads = "Sufficiently healthy.;Efficiently produced tofu!;Mmm! So good!;Have a meal.;You need food to live!;Have some more candy corn!;Try our new ice cups!" + icon_state = "sustenance" + products = list(/obj/item/weapon/reagent_containers/food/snacks/tofu = 24, + /obj/item/weapon/reagent_containers/food/drinks/ice = 12, + /obj/item/weapon/reagent_containers/food/snacks/candy_corn = 6) + contraband = list(/obj/item/weapon/kitchen/knife = 6, + /obj/item/weapon/reagent_containers/food/drinks/coffee = 12, + /obj/item/weapon/tank/internals/emergency_oxygen = 6, + /obj/item/clothing/mask/breath = 6) + armor = list(melee = 100, bullet = 100, laser = 100, energy = 100, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 50) + resistance_flags = FIRE_PROOF + +/obj/machinery/vending/cola + name = "\improper Robust Softdrinks" + desc = "A softdrink vendor provided by Robust Industries, LLC." + icon_state = "Cola_Machine" + product_slogans = "Robust Softdrinks: More robust than a toolbox to the head!" + product_ads = "Refreshing!;Hope you're thirsty!;Over 1 million drinks sold!;Thirsty? Why not cola?;Please, have a drink!;Drink up!;The best drinks in space." + products = list(/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola = 10,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/space_mountain_wind = 10, + /obj/item/weapon/reagent_containers/food/drinks/soda_cans/dr_gibb = 10,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/starkist = 10, + /obj/item/weapon/reagent_containers/food/drinks/soda_cans/space_up = 10, + /obj/item/weapon/reagent_containers/food/drinks/soda_cans/lemon_lime = 10) + prices = list(/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola = 5,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/space_mountain_wind = 5, + /obj/item/weapon/reagent_containers/food/drinks/soda_cans/dr_gibb = 5,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/starkist = 5, + /obj/item/weapon/reagent_containers/food/drinks/soda_cans/space_up = 5, + /obj/item/weapon/reagent_containers/food/drinks/soda_cans/lemon_lime = 5) + contraband = list(/obj/item/weapon/reagent_containers/food/drinks/soda_cans/thirteenloko = 6) + refill_canister = /obj/item/weapon/vending_refill/cola + +//This one's from bay12 +/obj/machinery/vending/cart + name = "\improper PTech" + desc = "Cartridges for PDAs" + product_slogans = "Carts to go!" + icon_state = "cart" + icon_deny = "cart-deny" + products = list(/obj/item/weapon/cartridge/medical = 10,/obj/item/weapon/cartridge/engineering = 10,/obj/item/weapon/cartridge/security = 10, + /obj/item/weapon/cartridge/janitor = 10,/obj/item/weapon/cartridge/signal/toxins = 10,/obj/item/device/pda/heads = 10, + /obj/item/weapon/cartridge/captain = 3,/obj/item/weapon/cartridge/quartermaster = 10) + + prices = list(/obj/item/weapon/cartridge/medical = 20,/obj/item/weapon/cartridge/engineering = 20,/obj/item/weapon/cartridge/security = 20, + /obj/item/weapon/cartridge/janitor = 20,/obj/item/weapon/cartridge/signal/toxins = 20,/obj/item/device/pda/heads = 20, + /obj/item/weapon/cartridge/captain = 20,/obj/item/weapon/cartridge/quartermaster = 20) + armor = list(melee = 100, bullet = 100, laser = 100, energy = 100, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 50) + resistance_flags = FIRE_PROOF + +/obj/machinery/vending/liberationstation + name = "\improper Liberation Station" + desc = "An overwhelming amount of ancient patriotism washes over you just by looking at the machine." + icon_state = "liberationstation" + req_access_txt = "1" + product_slogans = "Liberation Station: Your one-stop shop for all things second ammendment!;Be a patriot today, pick up a gun!;Quality weapons for cheap prices!;Better dead than red!" + product_ads = "Float like an astronaut, sting like a bullet!;Express your second ammendment today!;Guns don't kill people, but you can!;Who needs responsibilities when you have guns?" + vend_reply = "Remember the name: Liberation Station!" + products = list(/obj/item/weapon/gun/projectile/automatic/pistol/deagle/gold = 2,/obj/item/weapon/gun/projectile/automatic/pistol/deagle/camo = 2, + /obj/item/weapon/gun/projectile/automatic/pistol/m1911 = 2,/obj/item/weapon/gun/projectile/automatic/proto/unrestricted = 2, + /obj/item/weapon/gun/projectile/shotgun/automatic/combat = 2,/obj/item/weapon/gun/projectile/automatic/gyropistol = 1, + /obj/item/weapon/gun/projectile/shotgun = 2,/obj/item/weapon/gun/projectile/automatic/ar = 2) + premium = list(/obj/item/ammo_box/magazine/smgm9mm = 2,/obj/item/ammo_box/magazine/m50 = 4,/obj/item/ammo_box/magazine/m45 = 2,/obj/item/ammo_box/magazine/m75 = 2) + contraband = list(/obj/item/clothing/under/patriotsuit = 1,/obj/item/weapon/bedsheet/patriot = 3) + armor = list(melee = 100, bullet = 100, laser = 100, energy = 100, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 50) + resistance_flags = FIRE_PROOF + +/obj/machinery/vending/cigarette + name = "\improper ShadyCigs Deluxe" + desc = "If you want to get cancer, might as well do it in style" + product_slogans = "Space cigs taste good like a cigarette should.;I'd rather toolbox than switch.;Smoke!;Don't believe the reports - smoke today!" + product_ads = "Probably not bad for you!;Don't believe the scientists!;It's good for you!;Don't quit, buy more!;Smoke!;Nicotine heaven.;Best cigarettes since 2150.;Award-winning cigs." + vend_delay = 34 + icon_state = "cigs" + products = list(/obj/item/weapon/storage/fancy/cigarettes = 5, + /obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3, + /obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 3, + /obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3, + /obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 3, + /obj/item/weapon/storage/box/matches = 10, + /obj/item/weapon/lighter/greyscale = 4, + /obj/item/weapon/storage/fancy/rollingpapers = 5) + + prices = list(/obj/item/weapon/storage/fancy/cigarettes = 10, + /obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 15, + /obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 15, + /obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 15, + /obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 20, + /obj/item/weapon/storage/box/matches = 5, + /obj/item/weapon/lighter/greyscale = 5, + /obj/item/weapon/storage/fancy/rollingpapers = 5) + + contraband = list(/obj/item/weapon/lighter = 3, /obj/item/clothing/mask/vape = 5) + premium = list(/obj/item/weapon/storage/fancy/cigarettes/cigpack_robustgold = 3, \ + /obj/item/weapon/storage/fancy/cigarettes/cigars = 1, /obj/item/weapon/storage/fancy/cigarettes/cigars/havana = 1, /obj/item/weapon/storage/fancy/cigarettes/cigars/cohiba = 1) + refill_canister = /obj/item/weapon/vending_refill/cigarette + +/obj/machinery/vending/medical + name = "\improper NanoMed Plus" + desc = "Medical drug dispenser." + icon_state = "med" + icon_deny = "med-deny" + product_ads = "Go save some lives!;The best stuff for your medbay.;Only the finest tools.;Natural chemicals!;This stuff saves lives.;Don't you want some?;Ping!" + req_access_txt = "5" + products = list(/obj/item/weapon/reagent_containers/syringe = 12,/obj/item/weapon/reagent_containers/dropper = 3,/obj/item/stack/medical/gauze = 8,/obj/item/weapon/reagent_containers/pill/patch/styptic = 5, /obj/item/weapon/reagent_containers/pill/insulin = 10, + /obj/item/weapon/reagent_containers/pill/patch/silver_sulf = 5,/obj/item/weapon/reagent_containers/glass/bottle/charcoal = 4, /obj/item/weapon/reagent_containers/spray/medical/sterilizer = 1, + /obj/item/weapon/reagent_containers/glass/bottle/epinephrine = 4,/obj/item/weapon/reagent_containers/glass/bottle/morphine = 4,/obj/item/weapon/reagent_containers/glass/bottle/salglu_solution = 3, + /obj/item/weapon/reagent_containers/glass/bottle/toxin = 3,/obj/item/weapon/reagent_containers/syringe/antiviral = 6,/obj/item/weapon/reagent_containers/pill/salbutamol = 2,/obj/item/device/healthanalyzer = 4, /obj/item/device/sensor_device = 2) + contraband = list(/obj/item/weapon/reagent_containers/pill/tox = 3,/obj/item/weapon/reagent_containers/pill/morphine = 4,/obj/item/weapon/reagent_containers/pill/charcoal = 6) + premium = list(/obj/item/weapon/storage/box/hug/medical = 1,/obj/item/weapon/reagent_containers/hypospray/medipen = 3, /obj/item/weapon/storage/belt/medical = 3, /obj/item/weapon/wrench/medical = 1) + armor = list(melee = 100, bullet = 100, laser = 100, energy = 100, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 50) + resistance_flags = FIRE_PROOF + +//This one's from bay12 +/obj/machinery/vending/plasmaresearch + name = "\improper Toximate 3000" + desc = "All the fine parts you need in one vending machine!" + products = list(/obj/item/clothing/under/rank/scientist = 6,/obj/item/clothing/suit/bio_suit = 6,/obj/item/clothing/head/bio_hood = 6, + /obj/item/device/transfer_valve = 6,/obj/item/device/assembly/timer = 6,/obj/item/device/assembly/signaler = 6, + /obj/item/device/assembly/prox_sensor = 6,/obj/item/device/assembly/igniter = 6) + contraband = list(/obj/item/device/assembly/health = 3) + +/obj/machinery/vending/wallmed + name = "\improper NanoMed" + desc = "Wall-mounted Medical Equipment dispenser." + icon_state = "wallmed" + icon_deny = "wallmed-deny" + density = 0 + products = list(/obj/item/weapon/reagent_containers/syringe = 3,/obj/item/weapon/reagent_containers/pill/patch/styptic = 5, + /obj/item/weapon/reagent_containers/pill/patch/silver_sulf = 5,/obj/item/weapon/reagent_containers/pill/charcoal = 2, + /obj/item/weapon/reagent_containers/spray/medical/sterilizer = 1) + contraband = list(/obj/item/weapon/reagent_containers/pill/tox = 2,/obj/item/weapon/reagent_containers/pill/morphine = 2) + armor = list(melee = 100, bullet = 100, laser = 100, energy = 100, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 50) + resistance_flags = FIRE_PROOF + +/obj/machinery/vending/security + name = "\improper SecTech" + desc = "A security equipment vendor" + product_ads = "Crack capitalist skulls!;Beat some heads in!;Don't forget - harm is good!;Your weapons are right here.;Handcuffs!;Freeze, scumbag!;Don't tase me bro!;Tase them, bro.;Why not have a donut?" + icon_state = "sec" + icon_deny = "sec-deny" + req_access_txt = "1" + products = list(/obj/item/weapon/restraints/handcuffs = 8,/obj/item/weapon/restraints/handcuffs/cable/zipties = 10,/obj/item/weapon/grenade/flashbang = 4,/obj/item/device/assembly/flash/handheld = 5, + /obj/item/weapon/reagent_containers/food/snacks/donut = 12,/obj/item/weapon/storage/box/evidence = 6,/obj/item/device/flashlight/seclite = 4,/obj/item/weapon/restraints/legcuffs/bola/energy = 7) + contraband = list(/obj/item/clothing/glasses/sunglasses = 2,/obj/item/weapon/storage/fancy/donut_box = 2) + premium = list(/obj/item/weapon/coin/antagtoken = 1) + armor = list(melee = 100, bullet = 100, laser = 100, energy = 100, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 50) + resistance_flags = FIRE_PROOF + +/obj/machinery/vending/hydronutrients + name = "\improper NutriMax" + desc = "A plant nutrients vendor" + product_slogans = "Aren't you glad you don't have to fertilize the natural way?;Now with 50% less stink!;Plants are people too!" + product_ads = "We like plants!;Don't you want some?;The greenest thumbs ever.;We like big plants.;Soft soil..." + icon_state = "nutri" + icon_deny = "nutri-deny" + products = list(/obj/item/weapon/reagent_containers/glass/bottle/nutrient/ez = 30,/obj/item/weapon/reagent_containers/glass/bottle/nutrient/l4z = 20,/obj/item/weapon/reagent_containers/glass/bottle/nutrient/rh = 10,/obj/item/weapon/reagent_containers/spray/pestspray = 20, + /obj/item/weapon/reagent_containers/syringe = 5,/obj/item/weapon/storage/bag/plants = 5,/obj/item/weapon/cultivator = 3,/obj/item/weapon/shovel/spade = 3,/obj/item/device/plant_analyzer = 4) + contraband = list(/obj/item/weapon/reagent_containers/glass/bottle/ammonia = 10,/obj/item/weapon/reagent_containers/glass/bottle/diethylamine = 5) + armor = list(melee = 100, bullet = 100, laser = 100, energy = 100, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 50) + resistance_flags = FIRE_PROOF + +/obj/machinery/vending/hydroseeds + name = "\improper MegaSeed Servitor" + desc = "When you need seeds fast!" + product_slogans = "THIS'S WHERE TH' SEEDS LIVE! GIT YOU SOME!;Hands down the best seed selection on the station!;Also certain mushroom varieties available, more for experts! Get certified today!" + product_ads = "We like plants!;Grow some crops!;Grow, baby, growww!;Aw h'yeah son!" + icon_state = "seeds" + products = list(/obj/item/seeds/ambrosia = 3,/obj/item/seeds/apple = 3,/obj/item/seeds/banana = 3,/obj/item/seeds/berry = 3, + /obj/item/seeds/cabbage = 3,/obj/item/seeds/carrot = 3,/obj/item/seeds/cherry = 3,/obj/item/seeds/chanter = 3, + /obj/item/seeds/chili = 3,/obj/item/seeds/cocoapod = 3,/obj/item/seeds/coffee = 3,/obj/item/seeds/corn = 3, + /obj/item/seeds/eggplant = 3,/obj/item/seeds/grape = 3,/obj/item/seeds/grass = 3,/obj/item/seeds/lemon = 3, + /obj/item/seeds/lime = 3,/obj/item/seeds/orange = 3,/obj/item/seeds/potato = 3,/obj/item/seeds/poppy = 3, + /obj/item/seeds/pumpkin = 3,/obj/item/seeds/replicapod = 3,/obj/item/seeds/wheat/rice = 3,/obj/item/seeds/soya = 3,/obj/item/seeds/sunflower = 3, + /obj/item/seeds/tea = 3,/obj/item/seeds/tobacco = 3,/obj/item/seeds/tomato = 3, + /obj/item/seeds/tower = 3,/obj/item/seeds/watermelon = 3,/obj/item/seeds/wheat = 3,/obj/item/seeds/whitebeet = 3) + contraband = list(/obj/item/seeds/amanita = 2,/obj/item/seeds/glowshroom = 2,/obj/item/seeds/liberty = 2,/obj/item/seeds/nettle = 2, + /obj/item/seeds/plump = 2,/obj/item/seeds/reishi = 2,/obj/item/seeds/cannabis = 3) + premium = list(/obj/item/weapon/reagent_containers/spray/waterflower = 1) + armor = list(melee = 100, bullet = 100, laser = 100, energy = 100, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 50) + resistance_flags = FIRE_PROOF + +/obj/machinery/vending/magivend + name = "\improper MagiVend" + desc = "A magic vending machine." + icon_state = "MagiVend" + product_slogans = "Sling spells the proper way with MagiVend!;Be your own Houdini! Use MagiVend!" + vend_delay = 15 + vend_reply = "Have an enchanted evening!" + product_ads = "FJKLFJSD;AJKFLBJAKL;1234 LOONIES LOL!;>MFW;Kill them fuckers!;GET DAT FUKKEN DISK;HONK!;EI NATH;Destroy the station!;Admin conspiracies since forever!;Space-time bending hardware!" + products = list(/obj/item/clothing/head/wizard = 1,/obj/item/clothing/suit/wizrobe = 1,/obj/item/clothing/head/wizard/red = 1,/obj/item/clothing/suit/wizrobe/red = 1,/obj/item/clothing/head/wizard/yellow = 1,/obj/item/clothing/suit/wizrobe/yellow = 1,/obj/item/clothing/shoes/sandal = 1,/obj/item/weapon/staff = 2) + contraband = list(/obj/item/weapon/reagent_containers/glass/bottle/wizarditis = 1) //No one can get to the machine to hack it anyways; for the lulz - Microwave + armor = list(melee = 100, bullet = 100, laser = 100, energy = 100, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 50) + resistance_flags = FIRE_PROOF + +/obj/machinery/vending/autodrobe + name = "\improper AutoDrobe" + desc = "A vending machine for costumes." + icon_state = "theater" + icon_deny = "theater-deny" + req_access_txt = "46" //Theatre access needed, unless hacked. + product_slogans = "Dress for success!;Suited and booted!;It's show time!;Why leave style up to fate? Use AutoDrobe!" + vend_delay = 15 + vend_reply = "Thank you for using AutoDrobe!" + products = list(/obj/item/clothing/suit/chickensuit = 1,/obj/item/clothing/head/chicken = 1,/obj/item/clothing/under/gladiator = 1, + /obj/item/clothing/head/helmet/gladiator = 1,/obj/item/clothing/under/gimmick/rank/captain/suit = 1,/obj/item/clothing/head/flatcap = 1, + /obj/item/clothing/suit/toggle/labcoat/mad = 1,/obj/item/clothing/shoes/jackboots = 1, + /obj/item/clothing/under/schoolgirl = 1,/obj/item/clothing/under/schoolgirl/red = 1,/obj/item/clothing/under/schoolgirl/green = 1,/obj/item/clothing/under/schoolgirl/orange = 1,/obj/item/clothing/head/kitty = 1,/obj/item/clothing/under/skirt/black = 1,/obj/item/clothing/head/beret = 1, + /obj/item/clothing/tie/waistcoat = 1,/obj/item/clothing/under/suit_jacket = 1,/obj/item/clothing/head/that =1,/obj/item/clothing/under/kilt = 1,/obj/item/clothing/head/beret = 1,/obj/item/clothing/tie/waistcoat = 1, + /obj/item/clothing/glasses/monocle =1,/obj/item/clothing/head/bowler = 1,/obj/item/weapon/cane = 1,/obj/item/clothing/under/sl_suit = 1, + /obj/item/clothing/mask/fakemoustache = 1,/obj/item/clothing/suit/bio_suit/plaguedoctorsuit = 1,/obj/item/clothing/head/plaguedoctorhat = 1,/obj/item/clothing/mask/gas/plaguedoctor = 1, + /obj/item/clothing/suit/toggle/owlwings = 1, /obj/item/clothing/under/owl = 1,/obj/item/clothing/mask/gas/owl_mask = 1, + /obj/item/clothing/suit/toggle/owlwings/griffinwings = 1, /obj/item/clothing/under/griffin = 1, /obj/item/clothing/shoes/griffin = 1, /obj/item/clothing/head/griffin = 1, + /obj/item/clothing/suit/apron = 1,/obj/item/clothing/under/waiter = 1,/obj/item/clothing/suit/jacket/miljacket = 1, + /obj/item/clothing/under/pirate = 1,/obj/item/clothing/suit/pirate = 1,/obj/item/clothing/head/pirate = 1,/obj/item/clothing/head/bandana = 1, + /obj/item/clothing/head/bandana = 1,/obj/item/clothing/under/soviet = 1,/obj/item/clothing/head/ushanka = 1,/obj/item/clothing/suit/imperium_monk = 1, + /obj/item/clothing/mask/gas/cyborg = 1,/obj/item/clothing/suit/holidaypriest = 1,/obj/item/clothing/head/wizard/marisa/fake = 1, + /obj/item/clothing/suit/wizrobe/marisa/fake = 1,/obj/item/clothing/under/sundress = 1,/obj/item/clothing/head/witchwig = 1,/obj/item/weapon/staff/broom = 1, + /obj/item/clothing/suit/wizrobe/fake = 1,/obj/item/clothing/head/wizard/fake = 1,/obj/item/weapon/staff = 3,/obj/item/clothing/mask/gas/sexyclown = 1, + /obj/item/clothing/under/rank/clown/sexy = 1,/obj/item/clothing/mask/gas/sexymime = 1,/obj/item/clothing/under/sexymime = 1,/obj/item/clothing/suit/apron/overalls = 1, + /obj/item/clothing/head/rabbitears =1, /obj/item/clothing/head/sombrero = 1, /obj/item/clothing/head/sombrero/green = 1, /obj/item/clothing/suit/poncho = 1, + /obj/item/clothing/suit/poncho/green = 1, /obj/item/clothing/suit/poncho/red = 1, + /obj/item/clothing/under/maid = 1, /obj/item/clothing/under/janimaid = 1,/obj/item/clothing/glasses/cold=1,/obj/item/clothing/glasses/heat=1, + /obj/item/clothing/suit/whitedress = 1, + /obj/item/clothing/under/jester = 1, /obj/item/clothing/head/jester = 1, + /obj/item/clothing/suit/hooded/carp_costume = 1, + /obj/item/clothing/suit/hooded/ian_costume = 1, + /obj/item/clothing/suit/hooded/bee_costume = 1, + /obj/item/clothing/suit/snowman = 1, + /obj/item/clothing/head/snowman = 1) + contraband = list(/obj/item/clothing/suit/judgerobe = 1,/obj/item/clothing/head/powdered_wig = 1,/obj/item/weapon/gun/magic/wand = 2,/obj/item/clothing/glasses/sunglasses/garb = 2) + premium = list(/obj/item/clothing/suit/pirate/captain = 2, /obj/item/clothing/head/pirate/captain = 2, /obj/item/clothing/head/helmet/roman = 1, /obj/item/clothing/head/helmet/roman/legionaire = 1, /obj/item/clothing/under/roman = 1, /obj/item/clothing/shoes/roman = 1, /obj/item/weapon/shield/riot/roman = 1, /obj/item/weapon/skub = 1) + refill_canister = /obj/item/weapon/vending_refill/autodrobe + +/obj/machinery/vending/dinnerware + name = "\improper Plasteel Chef's Dinnerware Vendor" + desc = "A kitchen and restaurant equipment vendor" + product_ads = "Mm, food stuffs!;Food and food accessories.;Get your plates!;You like forks?;I like forks.;Woo, utensils.;You don't really need these..." + icon_state = "dinnerware" + products = list(/obj/item/weapon/storage/bag/tray = 8,/obj/item/weapon/kitchen/fork = 6,/obj/item/weapon/kitchen/knife = 6,/obj/item/weapon/kitchen/rollingpin = 2,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass = 8,/obj/item/clothing/suit/apron/chef = 2,/obj/item/weapon/reagent_containers/food/condiment/pack/ketchup = 5,/obj/item/weapon/reagent_containers/food/condiment/pack/hotsauce = 5,/obj/item/weapon/reagent_containers/food/condiment/saltshaker = 5,/obj/item/weapon/reagent_containers/food/condiment/peppermill = 5,/obj/item/weapon/reagent_containers/glass/bowl = 20) + contraband = list(/obj/item/weapon/kitchen/rollingpin = 2, /obj/item/weapon/kitchen/knife/butcher = 2) + armor = list(melee = 100, bullet = 100, laser = 100, energy = 100, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 50) + resistance_flags = FIRE_PROOF + +/obj/machinery/vending/sovietsoda + name = "\improper BODA" + desc = "Old sweet water vending machine" + icon_state = "sovietsoda" + product_ads = "For Tsar and Country.;Have you fulfilled your nutrition quota today?;Very nice!;We are simple people, for this is all we eat.;If there is a person, there is a problem. If there is no person, then there is no problem." + products = list(/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/filled/soda = 30) + prices = list(/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/filled/soda = 5) + contraband = list(/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/filled/cola = 20) + armor = list(melee = 100, bullet = 100, laser = 100, energy = 100, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 50) + resistance_flags = FIRE_PROOF + +/obj/machinery/vending/tool + name = "\improper YouTool" + desc = "Tools for tools." + icon_state = "tool" + icon_deny = "tool-deny" + //req_access_txt = "12" //Maintenance access + products = list(/obj/item/stack/cable_coil/random = 10,/obj/item/weapon/crowbar = 5,/obj/item/weapon/weldingtool = 3,/obj/item/weapon/wirecutters = 5, + /obj/item/weapon/wrench = 5,/obj/item/device/analyzer = 5,/obj/item/device/t_scanner = 5,/obj/item/weapon/screwdriver = 5) + + prices = list(/obj/item/stack/cable_coil/random = 5,/obj/item/weapon/crowbar = 10,/obj/item/weapon/weldingtool = 10,/obj/item/weapon/wirecutters = 10, + /obj/item/weapon/wrench = 5,/obj/item/device/analyzer = 5,/obj/item/device/t_scanner = 10,/obj/item/weapon/screwdriver = 10) + contraband = list(/obj/item/weapon/weldingtool/hugetank = 2,/obj/item/clothing/gloves/color/fyellow = 2) + premium = list(/obj/item/clothing/gloves/color/yellow = 1) + armor = list(melee = 100, bullet = 100, laser = 100, energy = 100, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 70) + resistance_flags = FIRE_PROOF + +/obj/machinery/vending/engivend + name = "\improper Engi-Vend" + desc = "Spare tool vending. What? Did you expect some witty description?" + icon_state = "engivend" + icon_deny = "engivend-deny" + req_access_txt = "11" //Engineering Equipment access + products = list(/obj/item/clothing/glasses/meson/engine = 2,/obj/item/device/multitool = 4,/obj/item/weapon/electronics/airlock = 10,/obj/item/weapon/electronics/apc = 10,/obj/item/weapon/electronics/airalarm = 10,/obj/item/weapon/stock_parts/cell/high = 10, /obj/item/weapon/rcd/loaded = 3, /obj/item/device/geiger_counter = 5) + contraband = list(/obj/item/weapon/stock_parts/cell/potato = 3) + premium = list(/obj/item/weapon/storage/belt/utility = 3) + armor = list(melee = 100, bullet = 100, laser = 100, energy = 100, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 50) + resistance_flags = FIRE_PROOF + +//This one's from bay12 +/obj/machinery/vending/engineering + name = "\improper Robco Tool Maker" + desc = "Everything you need for do-it-yourself station repair." + icon_state = "engi" + icon_deny = "engi-deny" + req_access_txt = "11" + products = list(/obj/item/clothing/under/rank/chief_engineer = 4,/obj/item/clothing/under/rank/engineer = 4,/obj/item/clothing/shoes/sneakers/orange = 4,/obj/item/clothing/head/hardhat = 4, + /obj/item/weapon/storage/belt/utility = 4,/obj/item/clothing/glasses/meson/engine = 4,/obj/item/clothing/gloves/color/yellow = 4, /obj/item/weapon/screwdriver = 12, + /obj/item/weapon/crowbar = 12,/obj/item/weapon/wirecutters = 12,/obj/item/device/multitool = 12,/obj/item/weapon/wrench = 12,/obj/item/device/t_scanner = 12, + /obj/item/weapon/stock_parts/cell = 8, /obj/item/weapon/weldingtool = 8,/obj/item/clothing/head/welding = 8, + /obj/item/weapon/light/tube = 10,/obj/item/clothing/suit/fire = 4, /obj/item/weapon/stock_parts/scanning_module = 5,/obj/item/weapon/stock_parts/micro_laser = 5, + /obj/item/weapon/stock_parts/matter_bin = 5,/obj/item/weapon/stock_parts/manipulator = 5,/obj/item/weapon/stock_parts/console_screen = 5) + armor = list(melee = 100, bullet = 100, laser = 100, energy = 100, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 50) + resistance_flags = FIRE_PROOF + +//This one's from bay12 +/obj/machinery/vending/robotics + name = "\improper Robotech Deluxe" + desc = "All the tools you need to create your own robot army." + icon_state = "robotics" + icon_deny = "robotics-deny" + req_access_txt = "29" + products = list(/obj/item/clothing/suit/toggle/labcoat = 4,/obj/item/clothing/under/rank/roboticist = 4,/obj/item/stack/cable_coil = 4,/obj/item/device/assembly/flash/handheld = 4, + /obj/item/weapon/stock_parts/cell/high = 12, /obj/item/device/assembly/prox_sensor = 3,/obj/item/device/assembly/signaler = 3,/obj/item/device/healthanalyzer = 3, + /obj/item/weapon/scalpel = 2,/obj/item/weapon/circular_saw = 2,/obj/item/weapon/tank/internals/anesthetic = 2,/obj/item/clothing/mask/breath/medical = 5, + /obj/item/weapon/screwdriver = 5,/obj/item/weapon/crowbar = 5) + armor = list(melee = 100, bullet = 100, laser = 100, energy = 100, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 50) + resistance_flags = FIRE_PROOF + +//DON'T FORGET TO CHANGE THE REFILL SIZE IF YOU CHANGE THE MACHINE'S CONTENTS! +/obj/machinery/vending/clothing + name = "ClothesMate" //renamed to make the slogan rhyme + desc = "A vending machine for clothing." + icon_state = "clothes" + product_slogans = "Dress for success!;Prepare to look swagalicious!;Look at all this free swag!;Why leave style up to fate? Use the ClothesMate!" + vend_delay = 15 + vend_reply = "Thank you for using the ClothesMate!" + products = list(/obj/item/clothing/head/that=2,/obj/item/clothing/head/fedora=1,/obj/item/clothing/glasses/monocle=1, + /obj/item/clothing/suit/jacket=2, /obj/item/clothing/suit/jacket/puffer/vest=2, /obj/item/clothing/suit/jacket/puffer=2, + /obj/item/clothing/under/suit_jacket/navy=1,/obj/item/clothing/under/suit_jacket/really_black=1,/obj/item/clothing/under/suit_jacket/burgundy=1, + /obj/item/clothing/under/suit_jacket/charcoal=1, /obj/item/clothing/under/suit_jacket/white=1,/obj/item/clothing/under/kilt=1,/obj/item/clothing/under/overalls=1, + /obj/item/clothing/under/sl_suit=1,/obj/item/clothing/under/pants/jeans=3,/obj/item/clothing/under/pants/classicjeans=2, + /obj/item/clothing/under/pants/camo = 1,/obj/item/clothing/under/pants/blackjeans=2,/obj/item/clothing/under/pants/khaki=2, + /obj/item/clothing/under/pants/white=2,/obj/item/clothing/under/pants/red=1,/obj/item/clothing/under/pants/black=2, + /obj/item/clothing/under/pants/tan=2,/obj/item/clothing/under/pants/track=1,/obj/item/clothing/suit/jacket/miljacket = 1, + /obj/item/clothing/neck/tie/blue=1, /obj/item/clothing/neck/tie/red=1, /obj/item/clothing/neck/tie/black=1, /obj/item/clothing/neck/tie/horrible=1, + /obj/item/clothing/neck/scarf/red=1,/obj/item/clothing/neck/scarf/green=1,/obj/item/clothing/neck/scarf/darkblue=1, + /obj/item/clothing/neck/scarf/purple=1,/obj/item/clothing/neck/scarf/yellow=1,/obj/item/clothing/neck/scarf/orange=1, + /obj/item/clothing/neck/scarf/cyan=1,/obj/item/clothing/neck/scarf=1,/obj/item/clothing/neck/scarf/black=1, + /obj/item/clothing/neck/scarf/zebra=1,/obj/item/clothing/neck/scarf/christmas=1,/obj/item/clothing/neck/stripedredscarf=1, + /obj/item/clothing/neck/stripedbluescarf=1,/obj/item/clothing/neck/stripedgreenscarf=1,/obj/item/clothing/tie/waistcoat=1, + /obj/item/clothing/under/skirt/black=1,/obj/item/clothing/under/skirt/blue=1,/obj/item/clothing/under/skirt/red=1,/obj/item/clothing/under/skirt/purple=1, + /obj/item/clothing/under/sundress=2,/obj/item/clothing/under/stripeddress=1, /obj/item/clothing/under/sailordress=1, /obj/item/clothing/under/redeveninggown=1, /obj/item/clothing/under/blacktango=1, + /obj/item/clothing/under/plaid_skirt=1,/obj/item/clothing/under/plaid_skirt/blue=1,/obj/item/clothing/under/plaid_skirt/purple=1,/obj/item/clothing/under/plaid_skirt/green=1, + /obj/item/clothing/glasses/regular=2,/obj/item/clothing/head/sombrero=1,/obj/item/clothing/suit/poncho=1, + /obj/item/clothing/suit/ianshirt=1,/obj/item/clothing/shoes/laceup=2,/obj/item/clothing/shoes/sneakers/black=4, + /obj/item/clothing/shoes/sandal=1, /obj/item/clothing/gloves/fingerless=2,/obj/item/clothing/glasses/orange=1,/obj/item/clothing/glasses/red=1, + /obj/item/weapon/storage/belt/fannypack=1, /obj/item/weapon/storage/belt/fannypack/blue=1, /obj/item/weapon/storage/belt/fannypack/red=1, /obj/item/clothing/suit/jacket/letterman=2, + /obj/item/clothing/head/beanie=1, /obj/item/clothing/head/beanie/black=1, /obj/item/clothing/head/beanie/red=1, /obj/item/clothing/head/beanie/green=1, /obj/item/clothing/head/beanie/darkblue=1, + /obj/item/clothing/head/beanie/purple=1, /obj/item/clothing/head/beanie/yellow=1, /obj/item/clothing/head/beanie/orange=1, /obj/item/clothing/head/beanie/cyan=1, /obj/item/clothing/head/beanie/christmas=1, + /obj/item/clothing/head/beanie/striped=1, /obj/item/clothing/head/beanie/stripedred=1, /obj/item/clothing/head/beanie/stripedblue=1, /obj/item/clothing/head/beanie/stripedgreen=1, + /obj/item/clothing/suit/jacket/letterman_red=1, /obj/item/clothing/suit/jacket/capjacket=1) + + prices = list(/obj/item/clothing/head/that=5,/obj/item/clothing/head/fedora=5,/obj/item/clothing/glasses/monocle=5, + /obj/item/clothing/suit/jacket=5, /obj/item/clothing/suit/jacket/puffer/vest=5, /obj/item/clothing/suit/jacket/puffer=5, + /obj/item/clothing/under/suit_jacket/navy=5,/obj/item/clothing/under/suit_jacket/really_black=5,/obj/item/clothing/under/suit_jacket/burgundy=5, + /obj/item/clothing/under/suit_jacket/charcoal=5, /obj/item/clothing/under/suit_jacket/white=5,/obj/item/clothing/under/kilt=5,/obj/item/clothing/under/overalls=5, + /obj/item/clothing/under/sl_suit=5,/obj/item/clothing/under/pants/jeans=5,/obj/item/clothing/under/pants/classicjeans=5, + /obj/item/clothing/under/pants/camo=5,/obj/item/clothing/under/pants/blackjeans=5,/obj/item/clothing/under/pants/khaki=5, + /obj/item/clothing/under/pants/white=5,/obj/item/clothing/under/pants/red=5,/obj/item/clothing/under/pants/black=5, + /obj/item/clothing/under/pants/tan=5,/obj/item/clothing/under/pants/track=5,/obj/item/clothing/suit/jacket/miljacket=5, + /obj/item/clothing/neck/tie/blue=5, /obj/item/clothing/neck/tie/red=5, /obj/item/clothing/neck/tie/black=5, /obj/item/clothing/neck/tie/horrible=3, + /obj/item/clothing/neck/scarf/red=5,/obj/item/clothing/neck/scarf/green=5,/obj/item/clothing/neck/scarf/darkblue=5, + /obj/item/clothing/neck/scarf/purple=5,/obj/item/clothing/neck/scarf/yellow=5,/obj/item/clothing/neck/scarf/orange=5, + /obj/item/clothing/neck/scarf/cyan=5,/obj/item/clothing/neck/scarf=5,/obj/item/clothing/neck/scarf/black=5, + /obj/item/clothing/neck/scarf/zebra=5,/obj/item/clothing/neck/scarf/christmas=5,/obj/item/clothing/neck/stripedredscarf=5, + /obj/item/clothing/neck/stripedbluescarf=5,/obj/item/clothing/neck/stripedgreenscarf=5,/obj/item/clothing/tie/waistcoat=5, + /obj/item/clothing/under/skirt/black=5,/obj/item/clothing/under/skirt/blue=5,/obj/item/clothing/under/skirt/red=5,/obj/item/clothing/under/skirt/purple=5, + /obj/item/clothing/under/sundress=5,/obj/item/clothing/under/stripeddress=5, /obj/item/clothing/under/sailordress=5, /obj/item/clothing/under/redeveninggown=5, /obj/item/clothing/under/blacktango=5, + /obj/item/clothing/under/plaid_skirt=5,/obj/item/clothing/under/plaid_skirt/blue=5,/obj/item/clothing/under/plaid_skirt/purple=5,/obj/item/clothing/under/plaid_skirt/green=5, + /obj/item/clothing/glasses/regular=5,/obj/item/clothing/head/sombrero=5,/obj/item/clothing/suit/poncho=5, + /obj/item/clothing/suit/ianshirt=5,/obj/item/clothing/shoes/laceup=5,/obj/item/clothing/shoes/sneakers/black=5, + /obj/item/clothing/shoes/sandal=5, /obj/item/clothing/gloves/fingerless=5,/obj/item/clothing/glasses/orange=5,/obj/item/clothing/glasses/red=5, + /obj/item/weapon/storage/belt/fannypack=5, /obj/item/weapon/storage/belt/fannypack/blue=5, /obj/item/weapon/storage/belt/fannypack/red=5, /obj/item/clothing/suit/jacket/letterman=5, + /obj/item/clothing/head/beanie=5, /obj/item/clothing/head/beanie/black=5, /obj/item/clothing/head/beanie/red=5, /obj/item/clothing/head/beanie/green=5, /obj/item/clothing/head/beanie/darkblue=5, + /obj/item/clothing/head/beanie/purple=5, /obj/item/clothing/head/beanie/yellow=5, /obj/item/clothing/head/beanie/orange=5, /obj/item/clothing/head/beanie/cyan=5, /obj/item/clothing/head/beanie/christmas=5, + /obj/item/clothing/head/beanie/striped=5, /obj/item/clothing/head/beanie/stripedred=5, /obj/item/clothing/head/beanie/stripedblue=5, /obj/item/clothing/head/beanie/stripedgreen=5, + /obj/item/clothing/suit/jacket/letterman_red=5, /obj/item/clothing/suit/jacket/capjacket=5) + + contraband = list(/obj/item/clothing/under/syndicate/tacticool=1,/obj/item/clothing/mask/balaclava=1,/obj/item/clothing/head/ushanka=1,/obj/item/clothing/under/soviet=1,/obj/item/weapon/storage/belt/fannypack/black=2,/obj/item/clothing/suit/jacket/letterman_syndie=1,/obj/item/clothing/under/jabroni=1, /obj/item/clothing/suit/vapeshirt=1) + premium = list(/obj/item/clothing/under/suit_jacket/checkered=1,/obj/item/clothing/head/mailman=1,/obj/item/clothing/under/rank/mailman=1,/obj/item/clothing/suit/jacket/leather=1,/obj/item/clothing/suit/jacket/leather/overcoat=1,/obj/item/clothing/under/pants/mustangjeans=1,/obj/item/clothing/neck/necklace/dope=3,/obj/item/clothing/suit/jacket/letterman_nanotrasen=1) + refill_canister = /obj/item/weapon/vending_refill/clothing + +#undef STANDARD_CHARGE +#undef CONTRABAND_CHARGE +#undef COIN_CHARGE diff --git a/code/game/machinery/washing_machine.dm b/code/game/machinery/washing_machine.dm new file mode 100644 index 0000000..211bf30 --- /dev/null +++ b/code/game/machinery/washing_machine.dm @@ -0,0 +1,252 @@ +/obj/machinery/washing_machine + name = "washing machine" + desc = "Gets rid of those pesky bloodstains, or your money back!" + icon = 'icons/obj/machines/washing_machine.dmi' + icon_state = "wm_1_0" + density = 1 + anchored = 1 + state_open = 1 + var/busy = 0 + var/bloody_mess = 0 + var/has_corgi = 0 + var/obj/item/color_source + var/max_wash_capacity = 5 + +/obj/machinery/washing_machine/examine(mob/user) + ..() + user << "Alt-click it to start a wash cycle." + +/obj/machinery/washing_machine/AltClick(mob/user) + if(!user.canUseTopic(src)) + return + + if(busy) + return + + if(state_open) + user << "Close the door first" + return + + if(bloody_mess) + user << "[src] must be cleaned up first." + return + + if(has_corgi) + bloody_mess = 1 + + busy = 1 + update_icon() + sleep(200) + wash_cycle() + +/obj/machinery/washing_machine/clean_blood() + ..() + if(!busy) + bloody_mess = 0 + update_icon() + + +/obj/machinery/washing_machine/proc/wash_cycle() + for(var/X in contents) + var/atom/movable/AM = X + AM.clean_blood() + AM.machine_wash(src) + + busy = 0 + if(color_source) + qdel(color_source) + color_source = null + update_icon() + + +//what happens to this object when washed inside a washing machine +/atom/movable/proc/machine_wash(obj/machinery/washing_machine/WM) + return + +/obj/item/stack/sheet/hairlesshide/machine_wash(obj/machinery/washing_machine/WM) + var/obj/item/stack/sheet/wetleather/WL = new(loc) + WL.amount = amount + qdel(src) + +/obj/item/clothing/suit/hooded/ian_costume/machine_wash(obj/machinery/washing_machine/WM) + new /obj/item/weapon/reagent_containers/food/snacks/meat/slab/corgi(loc) + qdel(src) + +/obj/item/weapon/paper/machine_wash(obj/machinery/washing_machine/WM) + if(WM.color_source) + if(istype(WM.color_source,/obj/item/toy/crayon)) + var/obj/item/toy/crayon/CR = WM.color_source + add_atom_colour(CR.paint_color, WASHABLE_COLOUR_PRIORITY) + +/mob/living/simple_animal/pet/dog/corgi/machine_wash(obj/machinery/washing_machine/WM) + gib() + +/obj/item/clothing/under/color/machine_wash(obj/machinery/washing_machine/WM) + jumpsuit_wash(WM) + +/obj/item/clothing/under/rank/machine_wash(obj/machinery/washing_machine/WM) + jumpsuit_wash(WM) + +/obj/item/clothing/under/proc/jumpsuit_wash(obj/machinery/washing_machine/WM) + if(WM.color_source) + var/wash_color = WM.color_source.item_color + var/obj/item/clothing/under/U + for(var/T in typesof(/obj/item/clothing/under/color)) + var/obj/item/clothing/under/color/J = T + if(wash_color == initial(J.item_color)) + U = J + break + if(!U) + for(var/T in typesof(/obj/item/clothing/under/rank)) + var/obj/item/clothing/under/rank/R = T + if(wash_color == initial(R.item_color)) + U = R + break + if(U) + item_state = initial(U.item_state) + icon_state = initial(U.icon_state) + item_color = wash_color + name = initial(U.name) + desc = "The colors are a bit dodgy." + can_adjust = initial(U.can_adjust) + if(!can_adjust && adjusted) //we deadjust the uniform if it's now unadjustable + toggle_jumpsuit_adjust() + +/obj/item/clothing/gloves/color/machine_wash(obj/machinery/washing_machine/WM) + if(WM.color_source) + var/wash_color = WM.color_source.item_color + for(var/T in typesof(/obj/item/clothing/gloves/color)) + var/obj/item/clothing/gloves/color/G = T + if(wash_color == initial(G.item_color)) + item_state = initial(G.item_state) + icon_state = initial(G.icon_state) + item_color = wash_color + name = initial(G.name) + desc = "The colors are a bit dodgy." + break + +/obj/item/clothing/shoes/sneakers/machine_wash(obj/machinery/washing_machine/WM) + if(chained) + chained = 0 + slowdown = SHOES_SLOWDOWN + new /obj/item/weapon/restraints/handcuffs(loc) + if(WM.color_source) + var/wash_color = WM.color_source.item_color + for(var/T in typesof(/obj/item/clothing/shoes/sneakers)) + var/obj/item/clothing/shoes/sneakers/S = T + if(wash_color == initial(S.item_color)) + icon_state = initial(S.icon_state) + item_color = wash_color + name = initial(S.name) + desc = "The colors are a bit dodgy." + break + +/obj/item/weapon/bedsheet/machine_wash(obj/machinery/washing_machine/WM) + if(WM.color_source) + var/wash_color = WM.color_source.item_color + for(var/T in typesof(/obj/item/weapon/bedsheet)) + var/obj/item/weapon/bedsheet/B = T + if(wash_color == initial(B.item_color)) + icon_state = initial(B.icon_state) + item_color = wash_color + name = initial(B.name) + desc = "The colors are a bit dodgy." + break + +/obj/item/clothing/head/soft/machine_wash(obj/machinery/washing_machine/WM) + if(WM.color_source) + var/wash_color = WM.color_source.item_color + for(var/T in typesof(/obj/item/clothing/head/soft)) + var/obj/item/clothing/head/soft/H = T + if(wash_color == initial(H.item_color)) + icon_state = initial(H.icon_state) + item_color = wash_color + name = initial(H.name) + desc = "The colors are a bit dodgy." + break + + +/obj/machinery/washing_machine/relaymove(mob/user) + container_resist(user) + +/obj/machinery/washing_machine/container_resist(mob/user) + if(!busy) + add_fingerprint(user) + open_machine() + + + +/obj/machinery/washing_machine/update_icon() + cut_overlays() + if(busy) + icon_state = "wm_running_[bloody_mess]" + else if(bloody_mess) + icon_state = "wm_[state_open]_blood" + else + var/full = contents.len ? 1 : 0 + icon_state = "wm_[state_open]_[full]" + if(panel_open) + add_overlay(image(icon, icon_state = "wm_panel")) + +/obj/machinery/washing_machine/attackby(obj/item/weapon/W, mob/user, params) + if(default_deconstruction_screwdriver(user, null, null, W)) + update_icon() + return + + else if(user.a_intent != "harm") + + if (!state_open) + user << "Open the door first!" + return 1 + + if(bloody_mess) + user << "[src] must be cleaned up first." + return 1 + + if(contents.len >= max_wash_capacity) + user << "The washing machine is full!" + return 1 + + if(!user.unEquip(W)) + user << "\The [W] is stuck to your hand, you cannot put it in the washing machine!" + return 1 + + if(istype(W,/obj/item/toy/crayon) || istype(W,/obj/item/weapon/stamp)) + color_source = W + W.loc = src + update_icon() + + else + return ..() + +/obj/machinery/washing_machine/attack_hand(mob/user) + if(busy) + user << "[src] is busy." + return + + if(user.pulling && user.a_intent == "grab" && isliving(user.pulling)) + var/mob/living/L = user.pulling + if(L.buckled || L.has_buckled_mobs()) + return + if(state_open) + if(iscorgi(L)) + has_corgi = 1 + L.forceMove(src) + update_icon() + return + + if(!state_open) + open_machine() + else + state_open = 0 //close the door + update_icon() + +/obj/machinery/washing_machine/deconstruct(disassembled = TRUE) + new /obj/item/stack/sheet/metal (loc, 2) + qdel(src) + +/obj/machinery/washing_machine/open_machine(drop = 1) + ..() + density = 1 //because machinery/open_machine() sets it to 0 + color_source = null + has_corgi = 0 diff --git a/code/game/machinery/wishgranter.dm b/code/game/machinery/wishgranter.dm new file mode 100644 index 0000000..2b9b1c7 --- /dev/null +++ b/code/game/machinery/wishgranter.dm @@ -0,0 +1,53 @@ +/obj/machinery/wish_granter + name = "wish granter" + desc = "You're not so sure about this, anymore..." + icon = 'icons/obj/device.dmi' + icon_state = "syndbeacon" + + use_power = 0 + anchored = 1 + density = 1 + + var/charges = 1 + var/insisting = 0 + +/obj/machinery/wish_granter/attack_hand(mob/living/carbon/user) + if(charges <= 0) + user << "The Wish Granter lies silent." + return + + else if(!ishuman(user)) + user << "You feel a dark stirring inside of the Wish Granter, something you want nothing of. Your instincts are better than any man's." + return + + else if(is_special_character(user)) + user << "Even to a heart as dark as yours, you know nothing good will come of this. Something instinctual makes you pull away." + + else if (!insisting) + user << "Your first touch makes the Wish Granter stir, listening to you. Are you really sure you want to do this?" + insisting++ + + else + user << "You speak. [pick("I want the station to disappear","Humanity is corrupt, mankind must be destroyed","I want to be rich", "I want to rule the world","I want immortality.")]. The Wish Granter answers." + user << "Your head pounds for a moment, before your vision clears. You are the avatar of the Wish Granter, and your power is LIMITLESS! And it's all yours. You need to make sure no one can take it from you. No one can know, first." + + charges-- + insisting = 0 + + user.dna.add_mutation(HULK) + user.dna.add_mutation(XRAY) + user.dna.add_mutation(COLDRES) + user.dna.add_mutation(TK) + + ticker.mode.traitors += user.mind + user.mind.special_role = "Avatar of the Wish Granter" + + var/datum/objective/hijack/hijack = new + hijack.owner = user.mind + user.mind.objectives += hijack + + user.mind.announce_objectives() + + user << "You have a very bad feeling about this." + + return \ No newline at end of file diff --git a/code/game/mecha/combat/combat.dm b/code/game/mecha/combat/combat.dm new file mode 100644 index 0000000..1d2109b --- /dev/null +++ b/code/game/mecha/combat/combat.dm @@ -0,0 +1,37 @@ +/obj/mecha/combat + force = 30 + internal_damage_threshold = 50 + armor = list(melee = 30, bullet = 30, laser = 15, energy = 20, bomb = 20, bio = 0, rad = 0, fire = 100, acid = 100) + +/obj/mecha/combat/CheckParts(atom/holder) + ..() + var/obj/item/weapon/stock_parts/capacitor/C = locate() in holder + var/obj/item/weapon/stock_parts/scanning_module/SM = locate() in holder + step_energy_drain = 20 - (5 * SM.rating) //10 is normal, so on lowest part its worse, on second its ok and on higher its real good up to 0 on best + armor["energy"] += (C.rating * 10) //Each level of capacitor protects the mech against emp by 10% + qdel(C) + qdel(SM) + +/obj/mecha/combat/moved_inside(mob/living/carbon/human/H) + if(..()) + if(H.client && H.client.mouse_pointer_icon == initial(H.client.mouse_pointer_icon)) + H.client.mouse_pointer_icon = 'icons/mecha/mecha_mouse.dmi' + return 1 + else + return 0 + +/obj/mecha/combat/mmi_moved_inside(obj/item/device/mmi/mmi_as_oc,mob/user) + if(..()) + if(occupant.client && occupant.client.mouse_pointer_icon == initial(occupant.client.mouse_pointer_icon)) + occupant.client.mouse_pointer_icon = 'icons/mecha/mecha_mouse.dmi' + return 1 + else + return 0 + + +/obj/mecha/combat/go_out() + if(occupant && occupant.client && occupant.client.mouse_pointer_icon == 'icons/mecha/mecha_mouse.dmi') + occupant.client.mouse_pointer_icon = initial(occupant.client.mouse_pointer_icon) + ..() + + diff --git a/code/game/mecha/combat/durand.dm b/code/game/mecha/combat/durand.dm new file mode 100644 index 0000000..1da7a42 --- /dev/null +++ b/code/game/mecha/combat/durand.dm @@ -0,0 +1,23 @@ +/obj/mecha/combat/durand + desc = "An aging combat exosuit utilized by the Nanotrasen corporation. Originally developed to combat hostile alien lifeforms." + name = "\improper Durand" + icon_state = "durand" + step_in = 4 + dir_in = 1 //Facing North. + obj_integrity = 400 + max_integrity = 400 + deflect_chance = 20 + armor = list(melee = 40, bullet = 35, laser = 15, energy = 10, bomb = 20, bio = 0, rad = 0, fire = 100, acid = 100) + max_temperature = 30000 + infra_luminosity = 8 + force = 40 + wreckage = /obj/structure/mecha_wreckage/durand + +/obj/mecha/combat/durand/GrantActions(mob/living/user, human_occupant = 0) + ..() + defense_action.Grant(user, src) + +/obj/mecha/combat/durand/RemoveActions(mob/living/user, human_occupant = 0) + ..() + defense_action.Remove(user) + diff --git a/code/game/mecha/combat/gygax.dm b/code/game/mecha/combat/gygax.dm new file mode 100644 index 0000000..fe43d27 --- /dev/null +++ b/code/game/mecha/combat/gygax.dm @@ -0,0 +1,68 @@ +/obj/mecha/combat/gygax + desc = "A lightweight, security exosuit. Popular among private and corporate security." + name = "\improper Gygax" + icon_state = "gygax" + step_in = 3 + dir_in = 1 //Facing North. + obj_integrity = 250 + deflect_chance = 5 + armor = list(melee = 25, bullet = 20, laser = 30, energy = 15, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 100) + max_temperature = 25000 + infra_luminosity = 6 + wreckage = /obj/structure/mecha_wreckage/gygax + internal_damage_threshold = 35 + max_equip = 3 + step_energy_drain = 3 + +/obj/mecha/combat/gygax/dark + desc = "A lightweight exosuit, painted in a dark scheme. This model appears to have some modifications." + name = "\improper Dark Gygax" + icon_state = "darkgygax" + obj_integrity = 300 + deflect_chance = 15 + armor = list(melee = 40, bullet = 40, laser = 50, energy = 35, bomb = 20, bio = 0, rad = 0, fire = 100, acid = 100) + max_temperature = 35000 + leg_overload_coeff = 100 + operation_req_access = list(access_syndicate) + wreckage = /obj/structure/mecha_wreckage/gygax/dark + max_equip = 4 + +/obj/mecha/combat/gygax/dark/loaded/New() + ..() + var/obj/item/mecha_parts/mecha_equipment/ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/carbine + ME.attach(src) + ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/flashbang + ME.attach(src) + ME = new /obj/item/mecha_parts/mecha_equipment/teleporter + ME.attach(src) + ME = new /obj/item/mecha_parts/mecha_equipment/tesla_energy_relay + ME.attach(src) + return + +/obj/mecha/combat/gygax/dark/add_cell(obj/item/weapon/stock_parts/cell/C=null) + if(C) + C.forceMove(src) + cell = C + return + cell = new(src) + cell.charge = 30000 + cell.maxcharge = 30000 + + +/obj/mecha/combat/gygax/GrantActions(mob/living/user, human_occupant = 0) + ..() + overload_action.Grant(user, src) + +/obj/mecha/combat/gygax/dark/GrantActions(mob/living/user, human_occupant = 0) + ..() + thrusters_action.Grant(user, src) + + +/obj/mecha/combat/gygax/RemoveActions(mob/living/user, human_occupant = 0) + ..() + overload_action.Remove(user) + +/obj/mecha/combat/gygax/dark/RemoveActions(mob/living/user, human_occupant = 0) + ..() + thrusters_action.Remove(user) + diff --git a/code/game/mecha/combat/honker.dm b/code/game/mecha/combat/honker.dm new file mode 100644 index 0000000..967ddf0 --- /dev/null +++ b/code/game/mecha/combat/honker.dm @@ -0,0 +1,157 @@ +/obj/mecha/combat/honker + desc = "Produced by \"Tyranny of Honk, INC\", this exosuit is designed as heavy clown-support. Used to spread the fun and joy of life. HONK!" + name = "\improper H.O.N.K" + icon_state = "honker" + step_in = 3 + obj_integrity = 140 + max_integrity = 140 + deflect_chance = 60 + internal_damage_threshold = 60 + armor = list(melee = -20, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 100) + max_temperature = 25000 + infra_luminosity = 5 + operation_req_access = list(access_theatre) + wreckage = /obj/structure/mecha_wreckage/honker + add_req_access = 0 + max_equip = 3 + var/squeak = 0 + +/* +/obj/mecha/combat/honker/New() + ..() + + weapons += new /datum/mecha_weapon/honker(src) + weapons += new /datum/mecha_weapon/missile_rack/banana_mortar(src) + weapons += new /datum/mecha_weapon/missile_rack/mousetrap_mortar(src) + selected_weapon = weapons[1] + return +*/ + +/obj/mecha/combat/honker/get_stats_part() + var/integrity = obj_integrity/max_integrity*100 + var/cell_charge = get_charge() + var/datum/gas_mixture/int_tank_air = internal_tank.return_air() + var/tank_pressure = internal_tank ? round(int_tank_air.return_pressure(),0.01) : "None" + var/tank_temperature = internal_tank ? int_tank_air.temperature : "Unknown" + var/cabin_pressure = round(return_pressure(),0.01) + var/output = {"[report_internal_damage()] + [integrity<30?"DAMAGE LEVEL CRITICAL
            ":null] + [internal_damage&MECHA_INT_TEMP_CONTROL?"CLOWN SUPPORT SYSTEM MALFUNCTION
            ":null] + [internal_damage&MECHA_INT_TANK_BREACH?"GAS TANK HONK
            ":null] + [internal_damage&MECHA_INT_CONTROL_LOST?"HONK-A-DOODLE - Recalibrate
            ":null] + IntegriHONK: [integrity]%
            + PowerHONK charge: [isnull(cell_charge)?"No powercell installed":"[cell.percent()]%"]
            + Air source: [use_internal_tank?"Internal Airtank":"Environment"]
            + AirHONK pressure: [tank_pressure]kPa
            + AirHONK temperature: [tank_temperature]°K|[tank_temperature - T0C]°C
            + HONK pressure: [cabin_pressure>WARNING_HIGH_PRESSURE ? "[cabin_pressure]": cabin_pressure]kPa
            + HONK temperature: [return_temperature()]°K|[return_temperature() - T0C]°C
            + Lights: [lights?"on":"off"]
            + [dna_lock?"DNA-locked:
            [dna_lock] \[Reset\]
            ":null] + "} + return output + +/obj/mecha/combat/honker/get_stats_html() + var/output = {" + [src.name] data + + + + +
            + [src.get_stats_part()] +
            +
            + [src.get_equipment_list()] +
            +
            +
            + [src.get_commands()] +
            + + + "} + return output + +/obj/mecha/combat/honker/get_commands() + var/output = {"
            +
            Sounds of HONK:
            + +
            + "} + output += ..() + return output + + +/obj/mecha/combat/honker/get_equipment_list() + if(!equipment.len) + return + var/output = "Honk-ON-Systems:
            " + for(var/obj/item/mecha_parts/mecha_equipment/MT in equipment) + output += "
            [MT.get_equip_info()]
            " + output += "
            " + return output + + + +/obj/mecha/combat/honker/mechstep(direction) + var/result = step(src,direction) + if(result) + if(!squeak) + playsound(src, "clownstep", 70, 1) + squeak = 1 + else + squeak = 0 + return result + +/obj/mecha/combat/honker/Topic(href, href_list) + ..() + if (href_list["play_sound"]) + switch(href_list["play_sound"]) + if("sadtrombone") + playsound(src, 'sound/misc/sadtrombone.ogg', 50) + return + +/proc/rand_hex_color() + var/list/colors = list("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f") + var/color="" + for (var/i=0;i<6;i++) + color = color+pick(colors) + return color + + diff --git a/code/game/mecha/combat/marauder.dm b/code/game/mecha/combat/marauder.dm new file mode 100644 index 0000000..b21a7ae --- /dev/null +++ b/code/game/mecha/combat/marauder.dm @@ -0,0 +1,91 @@ +/obj/mecha/combat/marauder + desc = "Heavy-duty, combat exosuit, developed after the Durand model. Rarely found among civilian populations." + name = "\improper Marauder" + icon_state = "marauder" + step_in = 5 + obj_integrity = 500 + max_integrity = 500 + deflect_chance = 25 + armor = list(melee = 50, bullet = 55, laser = 40, energy = 30, bomb = 30, bio = 0, rad = 0, fire = 100, acid = 100) + max_temperature = 60000 + resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF + infra_luminosity = 3 + operation_req_access = list(access_cent_specops) + wreckage = /obj/structure/mecha_wreckage/marauder + add_req_access = 0 + internal_damage_threshold = 25 + force = 45 + max_equip = 4 + bumpsmash = 1 + +/obj/mecha/combat/marauder/GrantActions(mob/living/user, human_occupant = 0) + ..() + smoke_action.Grant(user, src) + thrusters_action.Grant(user, src) + zoom_action.Grant(user, src) + +/obj/mecha/combat/marauder/RemoveActions(mob/living/user, human_occupant = 0) + ..() + smoke_action.Remove(user) + thrusters_action.Remove(user) + zoom_action.Remove(user) + +/obj/mecha/combat/marauder/loaded/New() + ..() + var/obj/item/mecha_parts/mecha_equipment/ME = new /obj/item/mecha_parts/mecha_equipment/weapon/energy/pulse(src) + ME.attach(src) + ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/missile_rack(src) + ME.attach(src) + ME = new /obj/item/mecha_parts/mecha_equipment/tesla_energy_relay(src) + ME.attach(src) + ME = new /obj/item/mecha_parts/mecha_equipment/antiproj_armor_booster(src) + ME.attach(src) + +/obj/mecha/combat/marauder/seraph + desc = "Heavy-duty, command-type exosuit. This is a custom model, utilized only by high-ranking military personnel." + name = "\improper Seraph" + icon_state = "seraph" + operation_req_access = list(access_cent_specops) + step_in = 3 + obj_integrity = 550 + wreckage = /obj/structure/mecha_wreckage/seraph + internal_damage_threshold = 20 + force = 55 + max_equip = 5 + +/obj/mecha/combat/marauder/seraph/New() + ..() + var/obj/item/mecha_parts/mecha_equipment/ME + ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot(src) + ME.attach(src) + ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/missile_rack(src) + ME.attach(src) + ME = new /obj/item/mecha_parts/mecha_equipment/teleporter(src) + ME.attach(src) + ME = new /obj/item/mecha_parts/mecha_equipment/tesla_energy_relay(src) + ME.attach(src) + ME = new /obj/item/mecha_parts/mecha_equipment/antiproj_armor_booster(src) + ME.attach(src) + +/obj/mecha/combat/marauder/mauler + desc = "Heavy-duty, combat exosuit, developed off of the existing Marauder model." + name = "\improper Mauler" + icon_state = "mauler" + operation_req_access = list(access_syndicate) + wreckage = /obj/structure/mecha_wreckage/mauler + max_equip = 5 + +/obj/mecha/combat/marauder/mauler/loaded/New() + ..() + var/obj/item/mecha_parts/mecha_equipment/ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/lmg(src) + ME.attach(src) + ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot(src) + ME.attach(src) + ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/missile_rack(src) + ME.attach(src) + ME = new /obj/item/mecha_parts/mecha_equipment/tesla_energy_relay(src) + ME.attach(src) + ME = new /obj/item/mecha_parts/mecha_equipment/antiproj_armor_booster(src) + ME.attach(src) + + diff --git a/code/game/mecha/combat/phazon.dm b/code/game/mecha/combat/phazon.dm new file mode 100644 index 0000000..a1d3f86 --- /dev/null +++ b/code/game/mecha/combat/phazon.dm @@ -0,0 +1,31 @@ +/obj/mecha/combat/phazon + desc = "This is a Phazon exosuit. The pinnacle of scientific research and pride of Nanotrasen, it uses cutting edge bluespace technology and expensive materials." + name = "\improper Phazon" + icon_state = "phazon" + step_in = 2 + dir_in = 2 //Facing South. + step_energy_drain = 3 + obj_integrity = 200 + max_integrity = 200 + deflect_chance = 30 + armor = list(melee = 30, bullet = 30, laser = 30, energy = 30, bomb = 30, bio = 0, rad = 0, fire = 100, acid = 100) + max_temperature = 25000 + infra_luminosity = 3 + wreckage = /obj/structure/mecha_wreckage/phazon + add_req_access = 1 + internal_damage_threshold = 25 + force = 15 + max_equip = 3 + phase_state = "phazon-phase" + +/obj/mecha/combat/phazon/GrantActions(mob/living/user, human_occupant = 0) + ..() + switch_damtype_action.Grant(user, src) + phasing_action.Grant(user, src) + + +/obj/mecha/combat/phazon/RemoveActions(mob/living/user, human_occupant = 0) + ..() + switch_damtype_action.Remove(user) + phasing_action.Remove(user) + diff --git a/code/game/mecha/combat/reticence.dm b/code/game/mecha/combat/reticence.dm new file mode 100644 index 0000000..601937a --- /dev/null +++ b/code/game/mecha/combat/reticence.dm @@ -0,0 +1,29 @@ +/obj/mecha/combat/reticence + desc = "A silent, fast, and nigh-invisible miming exosuit. Popular among mimes and mime assassins." + name = "\improper reticence" + icon_state = "reticence" + step_in = 2 + dir_in = 1 //Facing North. + obj_integrity = 100 + max_integrity = 100 + deflect_chance = 3 + armor = list(melee = 25, bullet = 20, laser = 30, energy = 15, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 100) + max_temperature = 15000 + wreckage = /obj/structure/mecha_wreckage/reticence + operation_req_access = list(access_theatre) + add_req_access = 0 + internal_damage_threshold = 25 + max_equip = 2 + step_energy_drain = 3 + color = "#87878715" + stepsound = null + turnsound = null + opacity = 0 + +/obj/mecha/combat/reticence/loaded/New() + ..() + var/obj/item/mecha_parts/mecha_equipment/ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/silenced + ME.attach(src) + ME = new /obj/item/mecha_parts/mecha_equipment/rcd //HAHA IT MAKES WALLS GET IT + ME.attach(src) + return diff --git a/code/game/mecha/equipment/mecha_equipment.dm b/code/game/mecha/equipment/mecha_equipment.dm new file mode 100644 index 0000000..5cb66c4 --- /dev/null +++ b/code/game/mecha/equipment/mecha_equipment.dm @@ -0,0 +1,158 @@ +//DO NOT ADD MECHA PARTS TO THE GAME WITH THE DEFAULT "SPRITE ME" SPRITE! +//I'm annoyed I even have to tell you this! SPRITE FIRST, then commit. + +/obj/item/mecha_parts/mecha_equipment + name = "mecha equipment" + icon = 'icons/mecha/mecha_equipment.dmi' + icon_state = "mecha_equip" + force = 5 + origin_tech = "materials=2;engineering=2" + obj_integrity = 300 + max_integrity = 300 + var/equip_cooldown = 0 // cooldown after use + var/equip_ready = 1 //whether the equipment is ready for use. (or deactivated/activated for static stuff) + var/energy_drain = 0 + var/obj/mecha/chassis = null + var/range = MELEE //bitflags + var/salvageable = 1 + var/selectable = 1 // Set to 0 for passive equipment such as mining scanner or armor plates + +/obj/item/mecha_parts/mecha_equipment/proc/update_chassis_page() + if(chassis) + send_byjax(chassis.occupant,"exosuit.browser","eq_list",chassis.get_equipment_list()) + send_byjax(chassis.occupant,"exosuit.browser","equipment_menu",chassis.get_equipment_menu(),"dropdowns") + return 1 + return + +/obj/item/mecha_parts/mecha_equipment/proc/update_equip_info() + if(chassis) + send_byjax(chassis.occupant,"exosuit.browser","\ref[src]",get_equip_info()) + return 1 + return + +/obj/item/mecha_parts/mecha_equipment/Destroy() + if(chassis) + chassis.equipment -= src + if(chassis.selected == src) + chassis.selected = null + src.update_chassis_page() + chassis.occupant_message("The [src] is destroyed!") + chassis.log_append_to_last("[src] is destroyed.",1) + if(istype(src, /obj/item/mecha_parts/mecha_equipment/weapon)) + chassis.occupant << sound('sound/mecha/weapdestr.ogg',volume=50) + else + chassis.occupant << sound('sound/mecha/critdestr.ogg',volume=50) + chassis = null + return ..() + +/obj/item/mecha_parts/mecha_equipment/proc/critfail() + if(chassis) + log_message("Critical failure",1) + +/obj/item/mecha_parts/mecha_equipment/proc/get_equip_info() + if(!chassis) return + var/txt = "* " + if(chassis.selected == src) + txt += "[src.name]" + else if(selectable) + txt += "[src.name]" + else + txt += "[src.name]" + + return txt + +/obj/item/mecha_parts/mecha_equipment/proc/is_ranged()//add a distance restricted equipment. Why not? + return range&RANGED + +/obj/item/mecha_parts/mecha_equipment/proc/is_melee() + return range&MELEE + + +/obj/item/mecha_parts/mecha_equipment/proc/action_checks(atom/target) + if(!target) + return 0 + if(!chassis) + return 0 + if(!equip_ready) + return 0 + if(crit_fail) + return 0 + if(energy_drain && !chassis.has_charge(energy_drain)) + return 0 + return 1 + +/obj/item/mecha_parts/mecha_equipment/proc/action(atom/target) + return 0 + +/obj/item/mecha_parts/mecha_equipment/proc/start_cooldown() + set_ready_state(0) + chassis.use_power(energy_drain) + addtimer(src, "set_ready_state", equip_cooldown, FALSE, 1) + +/obj/item/mecha_parts/mecha_equipment/proc/do_after_cooldown(atom/target) + if(!chassis) + return + var/C = chassis.loc + set_ready_state(0) + chassis.use_power(energy_drain) + . = do_after(chassis.occupant, equip_cooldown, target=target) + set_ready_state(1) + if(!chassis || chassis.loc != C || src != chassis.selected) + return 0 + + +/obj/item/mecha_parts/mecha_equipment/proc/can_attach(obj/mecha/M) + if(M.equipment.len[src]: [message]") + return + + +//Used for reloading weapons/tools etc. that use some form of resource +/obj/item/mecha_parts/mecha_equipment/proc/rearm() + return 0 + + +/obj/item/mecha_parts/mecha_equipment/proc/needs_rearm() + return 0 diff --git a/code/game/mecha/equipment/tools/medical_tools.dm b/code/game/mecha/equipment/tools/medical_tools.dm new file mode 100644 index 0000000..1e6017f --- /dev/null +++ b/code/game/mecha/equipment/tools/medical_tools.dm @@ -0,0 +1,564 @@ +// Sleeper, Medical Beam, and Syringe gun + +/obj/item/mecha_parts/mecha_equipment/medical + +/obj/item/mecha_parts/mecha_equipment/medical/New() + ..() + START_PROCESSING(SSobj, src) + + +/obj/item/mecha_parts/mecha_equipment/medical/can_attach(obj/mecha/medical/M) + if(..() && istype(M)) + return 1 + + +/obj/item/mecha_parts/mecha_equipment/medical/attach(obj/mecha/M) + ..() + START_PROCESSING(SSobj, src) + +/obj/item/mecha_parts/mecha_equipment/medical/Destroy() + STOP_PROCESSING(SSobj, src) + return ..() + +/obj/item/mecha_parts/mecha_equipment/medical/process() + if(!chassis) + STOP_PROCESSING(SSobj, src) + return 1 + +/obj/item/mecha_parts/mecha_equipment/medical/mechmedbeam/detach() + STOP_PROCESSING(SSobj, src) + return ..() + +/obj/item/mecha_parts/mecha_equipment/medical/sleeper + name = "mounted sleeper" + desc = "Equipment for medical exosuits. A mounted sleeper that stabilizes patients and can inject reagents in the exosuit's reserves." + icon = 'icons/obj/Cryogenic2.dmi' + icon_state = "sleeper" + origin_tech = "engineering=3;biotech=3;plasmatech=2" + energy_drain = 20 + range = MELEE + equip_cooldown = 20 + var/mob/living/carbon/patient = null + var/inject_amount = 10 + salvageable = 0 + +/obj/item/mecha_parts/mecha_equipment/medical/sleeper/allow_drop() + return 0 + +/obj/item/mecha_parts/mecha_equipment/medical/sleeper/Destroy() + for(var/atom/movable/AM in src) + AM.forceMove(get_turf(src)) + return ..() + +/obj/item/mecha_parts/mecha_equipment/medical/sleeper/Exit(atom/movable/O) + return 0 + +/obj/item/mecha_parts/mecha_equipment/medical/sleeper/action(mob/living/carbon/target) + if(!action_checks(target)) + return + if(!istype(target)) + return + if(!patient_insertion_check(target)) + return + occupant_message("You start putting [target] into [src]...") + chassis.visible_message("[chassis] starts putting [target] into \the [src].") + if(do_after_cooldown(target)) + if(!patient_insertion_check(target)) + return + target.forceMove(src) + patient = target + START_PROCESSING(SSobj, src) + update_equip_info() + occupant_message("[target] successfully loaded into [src]. Life support functions engaged.") + chassis.visible_message("[chassis] loads [target] into [src].") + log_message("[target] loaded. Life support functions engaged.") + +/obj/item/mecha_parts/mecha_equipment/medical/sleeper/proc/patient_insertion_check(mob/living/carbon/target) + if(target.buckled) + occupant_message("[target] will not fit into the sleeper because they are buckled to [target.buckled]!") + return + if(target.has_buckled_mobs()) + occupant_message("[target] will not fit into the sleeper because of the creatures attached to it!") + return + if(patient) + occupant_message("The sleeper is already occupied!") + return + return 1 + +/obj/item/mecha_parts/mecha_equipment/medical/sleeper/proc/go_out() + if(!patient) + return + patient.forceMove(get_turf(src)) + occupant_message("[patient] ejected. Life support functions disabled.") + log_message("[patient] ejected. Life support functions disabled.") + STOP_PROCESSING(SSobj, src) + patient = null + update_equip_info() + +/obj/item/mecha_parts/mecha_equipment/medical/sleeper/detach() + if(patient) + occupant_message("Unable to detach [src] - equipment occupied!") + return + STOP_PROCESSING(SSobj, src) + return ..() + +/obj/item/mecha_parts/mecha_equipment/medical/sleeper/get_equip_info() + var/output = ..() + if(output) + var/temp = "" + if(patient) + temp = "
            \[Occupant: [patient] ([patient.stat > 1 ? "*DECEASED*" : "Health: [patient.health]%"])\]
            View stats|Eject" + return "[output] [temp]" + return + +/obj/item/mecha_parts/mecha_equipment/medical/sleeper/Topic(href,href_list) + ..() + var/datum/topic_input/filter = new /datum/topic_input(href,href_list) + if(filter.get("eject")) + go_out() + if(filter.get("view_stats")) + chassis.occupant << browse(get_patient_stats(),"window=msleeper") + onclose(chassis.occupant, "msleeper") + return + if(filter.get("inject")) + inject_reagent(filter.getType("inject",/datum/reagent),filter.getObj("source")) + return + +/obj/item/mecha_parts/mecha_equipment/medical/sleeper/proc/get_patient_stats() + if(!patient) + return + return {" + + [patient] statistics + + + + +

            Health statistics

            +
            + [get_patient_dam()] +
            +

            Reagents in bloodstream

            +
            + [get_patient_reagents()] +
            +
            + [get_available_reagents()] +
            + + "} + +/obj/item/mecha_parts/mecha_equipment/medical/sleeper/proc/get_patient_dam() + var/t1 + switch(patient.stat) + if(0) + t1 = "Conscious" + if(1) + t1 = "Unconscious" + if(2) + t1 = "*dead*" + else + t1 = "Unknown" + return {"Health: [patient.stat > 1 ? "[t1]" : "[patient.health]% ([t1])"]
            + Core Temperature: [patient.bodytemperature-T0C]°C ([patient.bodytemperature*1.8-459.67]°F)
            + Brute Damage: [patient.getBruteLoss()]%
            + Respiratory Damage: [patient.getOxyLoss()]%
            + Toxin Content: [patient.getToxLoss()]%
            + Burn Severity: [patient.getFireLoss()]%
            + [patient.getCloneLoss() ? "Subject appears to have cellular damage." : ""]
            + [patient.getBrainLoss() ? "Significant brain damage detected." : ""]
            + "} + +/obj/item/mecha_parts/mecha_equipment/medical/sleeper/proc/get_patient_reagents() + if(patient.reagents) + for(var/datum/reagent/R in patient.reagents.reagent_list) + if(R.volume > 0) + . += "[R]: [round(R.volume,0.01)]
            " + return . || "None" + +/obj/item/mecha_parts/mecha_equipment/medical/sleeper/proc/get_available_reagents() + var/output + var/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/SG = locate(/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun) in chassis + if(SG && SG.reagents && islist(SG.reagents.reagent_list)) + for(var/datum/reagent/R in SG.reagents.reagent_list) + if(R.volume > 0) + output += "Inject [R.name]
            " + return output + + +/obj/item/mecha_parts/mecha_equipment/medical/sleeper/proc/inject_reagent(datum/reagent/R,obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/SG) + if(!R || !patient || !SG || !(SG in chassis.equipment)) + return 0 + var/to_inject = min(R.volume, inject_amount) + if(to_inject && patient.reagents.get_reagent_amount(R.id) + to_inject <= inject_amount*2) + occupant_message("Injecting [patient] with [to_inject] units of [R.name].") + log_message("Injecting [patient] with [to_inject] units of [R.name].") + add_logs(chassis.occupant, patient, "injected", "[name] ([R] - [to_inject] units)") + SG.reagents.trans_id_to(patient,R.id,to_inject) + update_equip_info() + return + +/obj/item/mecha_parts/mecha_equipment/medical/sleeper/update_equip_info() + if(..()) + if(patient) + send_byjax(chassis.occupant,"msleeper.browser","lossinfo",get_patient_dam()) + send_byjax(chassis.occupant,"msleeper.browser","reagents",get_patient_reagents()) + send_byjax(chassis.occupant,"msleeper.browser","injectwith",get_available_reagents()) + return 1 + return + +/obj/item/mecha_parts/mecha_equipment/medical/sleeper/container_resist() + go_out() + +/obj/item/mecha_parts/mecha_equipment/medical/sleeper/process() + if(..()) + return + if(!chassis.has_charge(energy_drain)) + set_ready_state(1) + log_message("Deactivated.") + occupant_message("[src] deactivated - no power.") + STOP_PROCESSING(SSobj, src) + return + var/mob/living/carbon/M = patient + if(!M) + return + if(M.health > 0) + M.adjustOxyLoss(-1) + M.updatehealth() + M.AdjustStunned(-4) + M.AdjustWeakened(-4) + M.AdjustStunned(-4) + if(M.reagents.get_reagent_amount("epinephrine") < 5) + M.reagents.add_reagent("epinephrine", 5) + chassis.use_power(energy_drain) + update_equip_info() + + + + +///////////////////////////////// Syringe Gun /////////////////////////////////////////////////////////////// + + +/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun + name = "exosuit syringe gun" + desc = "Equipment for medical exosuits. A chem synthesizer with syringe gun. Reagents inside are held in stasis, so no reactions will occur." + icon = 'icons/obj/guns/projectile.dmi' + icon_state = "syringegun" + var/list/syringes + var/list/known_reagents + var/list/processed_reagents + var/max_syringes = 10 + var/max_volume = 75 //max reagent volume + var/synth_speed = 5 //[num] reagent units per cycle + energy_drain = 10 + var/mode = 0 //0 - fire syringe, 1 - analyze reagents. + range = MELEE|RANGED + equip_cooldown = 10 + origin_tech = "materials=3;biotech=4;magnets=4" + +/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/New() + ..() + create_reagents(max_volume) + reagents.set_reacting(FALSE) + syringes = new + known_reagents = list("epinephrine"="Epinephrine","charcoal"="Charcoal") + processed_reagents = new + +/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/detach() + STOP_PROCESSING(SSobj, src) + return ..() + +/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/Destroy() + STOP_PROCESSING(SSobj, src) + return ..() + +/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/critfail() + ..() + if(reagents) + reagents.set_reacting(TRUE) + +/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/can_attach(obj/mecha/medical/M) + if(..()) + if(istype(M)) + return 1 + return 0 + +/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/get_equip_info() + var/output = ..() + if(output) + return "[output] \[[mode? "Analyze" : "Launch"]\]
            \[Syringes: [syringes.len]/[max_syringes] | Reagents: [reagents.total_volume]/[reagents.maximum_volume]\]
            Reagents list" + return + +/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/action(atom/movable/target) + if(!action_checks(target)) + return + if(istype(target,/obj/item/weapon/reagent_containers/syringe)) + return load_syringe(target) + if(istype(target,/obj/item/weapon/storage))//Loads syringes from boxes + for(var/obj/item/weapon/reagent_containers/syringe/S in target.contents) + load_syringe(S) + return + if(mode) + return analyze_reagents(target) + if(!syringes.len) + occupant_message("No syringes loaded.") + return + if(reagents.total_volume<=0) + occupant_message("No available reagents to load syringe with.") + return + var/turf/trg = get_turf(target) + var/obj/item/weapon/reagent_containers/syringe/mechsyringe = syringes[1] + mechsyringe.forceMove(get_turf(chassis)) + reagents.trans_to(mechsyringe, min(mechsyringe.volume, reagents.total_volume)) + syringes -= mechsyringe + mechsyringe.icon = 'icons/obj/chemical.dmi' + mechsyringe.icon_state = "syringeproj" + playsound(chassis, 'sound/items/syringeproj.ogg', 50, 1) + log_message("Launched [mechsyringe] from [src], targeting [target].") + var/mob/originaloccupant = chassis.occupant + spawn(0) + src = null //if src is deleted, still process the syringe + for(var/i=0, i<6, i++) + if(!mechsyringe) + break + if(step_towards(mechsyringe,trg)) + var/list/mobs = new + for(var/mob/living/carbon/M in mechsyringe.loc) + mobs += M + var/mob/living/carbon/M = safepick(mobs) + if(M) + var/R + mechsyringe.visible_message(" [M] was hit by the syringe!") + if(M.can_inject(null, 1)) + if(mechsyringe.reagents) + for(var/datum/reagent/A in mechsyringe.reagents.reagent_list) + R += A.id + " (" + R += num2text(A.volume) + ")," + mechsyringe.icon_state = initial(mechsyringe.icon_state) + mechsyringe.icon = initial(mechsyringe.icon) + mechsyringe.reagents.reaction(M, INJECT) + mechsyringe.reagents.trans_to(M, mechsyringe.reagents.total_volume) + M.take_bodypart_damage(2) + add_logs(originaloccupant, M, "shot", "syringegun") + break + else if(mechsyringe.loc == trg) + mechsyringe.icon_state = initial(mechsyringe.icon_state) + mechsyringe.icon = initial(mechsyringe.icon) + mechsyringe.update_icon() + break + else + mechsyringe.icon_state = initial(mechsyringe.icon_state) + mechsyringe.icon = initial(mechsyringe.icon) + mechsyringe.update_icon() + break + sleep(1) + return 1 + + +/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/Topic(href,href_list) + ..() + var/datum/topic_input/filter = new (href,href_list) + if(filter.get("toggle_mode")) + mode = !mode + update_equip_info() + return + if(filter.get("select_reagents")) + processed_reagents.len = 0 + var/m = 0 + var/message + for(var/i=1 to known_reagents.len) + if(m>=synth_speed) + break + var/reagent = filter.get("reagent_[i]") + if(reagent && (reagent in known_reagents)) + message = "[m ? ", " : null][known_reagents[reagent]]" + processed_reagents += reagent + m++ + if(processed_reagents.len) + message += " added to production" + START_PROCESSING(SSobj, src) + occupant_message(message) + occupant_message("Reagent processing started.") + log_message("Reagent processing started.") + return + if(filter.get("show_reagents")) + chassis.occupant << browse(get_reagents_page(),"window=msyringegun") + if(filter.get("purge_reagent")) + var/reagent = filter.get("purge_reagent") + if(reagent) + reagents.del_reagent(reagent) + return + if(filter.get("purge_all")) + reagents.clear_reagents() + return + return + +/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/proc/get_reagents_page() + var/output = {" + + Reagent Synthesizer + + + + +

            Current reagents:

            +
            + [get_current_reagents()] +
            +

            Reagents production:

            +
            + [get_reagents_form()] +
            + + + "} + return output + +/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/proc/get_reagents_form() + var/r_list = get_reagents_list() + var/inputs + if(r_list) + inputs += "" + inputs += "" + inputs += "" + var/output = {" + [r_list || "No known reagents"] + [inputs] + + [r_list? "Only the first [synth_speed] selected reagent\s will be added to production" : null] + "} + return output + +/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/proc/get_reagents_list() + var/output + for(var/i=1 to known_reagents.len) + var/reagent_id = known_reagents[i] + output += {" [known_reagents[reagent_id]]
            "} + return output + +/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/proc/get_current_reagents() + var/output + for(var/datum/reagent/R in reagents.reagent_list) + if(R.volume > 0) + output += "[R]: [round(R.volume,0.001)] - Purge Reagent
            " + if(output) + output += "Total: [round(reagents.total_volume,0.001)]/[reagents.maximum_volume] - Purge All" + return output || "None" + +/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/proc/load_syringe(obj/item/weapon/reagent_containers/syringe/S) + if(syringes.len= 2) + occupant_message("The syringe is too far away.") + return 0 + for(var/obj/structure/D in S.loc)//Basic level check for structures in the way (Like grilles and windows) + if(!(D.CanPass(S,src.loc))) + occupant_message("Unable to load syringe.") + return 0 + for(var/obj/machinery/door/D in S.loc)//Checks for doors + if(!(D.CanPass(S,src.loc))) + occupant_message("Unable to load syringe.") + return 0 + S.reagents.trans_to(src, S.reagents.total_volume) + S.forceMove(src) + syringes += S + occupant_message("Syringe loaded.") + update_equip_info() + return 1 + occupant_message("The [src] syringe chamber is full.") + return 0 + +/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/proc/analyze_reagents(atom/A) + if(get_dist(src,A) >= 4) + occupant_message("The object is too far away.") + return 0 + if(!A.reagents || istype(A,/mob)) + occupant_message("No reagent info gained from [A].") + return 0 + occupant_message("Analyzing reagents...") + for(var/datum/reagent/R in A.reagents.reagent_list) + if(R.can_synth && add_known_reagent(R.id,R.name)) + occupant_message("Reagent analyzed, identified as [R.name] and added to database.") + send_byjax(chassis.occupant,"msyringegun.browser","reagents_form",get_reagents_form()) + occupant_message("Analyzis complete.") + return 1 + +/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/proc/add_known_reagent(r_id,r_name) + if(!(r_id in known_reagents)) + known_reagents += r_id + known_reagents[r_id] = r_name + return 1 + return 0 + +/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/update_equip_info() + if(..()) + send_byjax(chassis.occupant,"msyringegun.browser","reagents",get_current_reagents()) + send_byjax(chassis.occupant,"msyringegun.browser","reagents_form",get_reagents_form()) + return 1 + return + +/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/on_reagent_change() + ..() + update_equip_info() + return + + +/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/process() + if(..()) + return + if(!processed_reagents.len || reagents.total_volume >= reagents.maximum_volume || !chassis.has_charge(energy_drain)) + occupant_message("Reagent processing stopped.") + log_message("Reagent processing stopped.") + STOP_PROCESSING(SSobj, src) + return + var/amount = synth_speed / processed_reagents.len + for(var/reagent in processed_reagents) + reagents.add_reagent(reagent,amount) + chassis.use_power(energy_drain) + +///////////////////////////////// Medical Beam /////////////////////////////////////////////////////////////// + +/obj/item/mecha_parts/mecha_equipment/medical/mechmedbeam + name = "exosuit medical beamgun" + desc = "Equipment for medical exosuits. Generates a focused beam of medical nanites." + icon_state = "mecha_medigun" + energy_drain = 10 + range = MELEE|RANGED + equip_cooldown = 0 + origin_tech = "combat=5;materials=6;powerstorage=7;biotech=6" + var/obj/item/weapon/gun/medbeam/mech/medigun + materials = list(MAT_METAL = 15000, MAT_GLASS = 8000, MAT_PLASMA = 3000, MAT_GOLD = 8000, MAT_DIAMOND = 2000) + +/obj/item/mecha_parts/mecha_equipment/medical/mechmedbeam/New() + ..() + medigun = new(src) + + +/obj/item/mecha_parts/mecha_equipment/medical/mechmedbeam/Destroy() + qdel(medigun) + return ..() + +/obj/item/mecha_parts/mecha_equipment/medical/mechmedbeam/process() + if(..()) + return + medigun.process() + +/obj/item/mecha_parts/mecha_equipment/medical/mechmedbeam/action(atom/target) + medigun.process_fire(target, loc) + + +/obj/item/mecha_parts/mecha_equipment/medical/mechmedbeam/detach() + STOP_PROCESSING(SSobj, src) + medigun.LoseTarget() + return ..() diff --git a/code/game/mecha/equipment/tools/mining_tools.dm b/code/game/mecha/equipment/tools/mining_tools.dm new file mode 100644 index 0000000..ad8dbb9 --- /dev/null +++ b/code/game/mecha/equipment/tools/mining_tools.dm @@ -0,0 +1,143 @@ + +// Drill, Diamond drill, Mining scanner + + +/obj/item/mecha_parts/mecha_equipment/drill + name = "exosuit drill" + desc = "Equipment for engineering and combat exosuits. This is the drill that'll pierce the heavens!" + icon_state = "mecha_drill" + equip_cooldown = 30 + energy_drain = 10 + force = 15 + +/obj/item/mecha_parts/mecha_equipment/drill/action(atom/target) + if(!action_checks(target)) + return + if(isspaceturf(target)) + return + if(isobj(target)) + var/obj/target_obj = target + if(target_obj.resistance_flags & UNACIDABLE) + return + target.visible_message("[chassis] starts to drill [target].", \ + "[chassis] starts to drill [target]...", \ + "You hear drilling.") + + if(do_after_cooldown(target)) + if(isturf(target)) + var/turf/T = target + T.drill_act(src) + else + log_message("Drilled through [target]") + if(isliving(target)) + if(istype(src , /obj/item/mecha_parts/mecha_equipment/drill/diamonddrill)) + drill_mob(target, chassis.occupant, 120) + else + drill_mob(target, chassis.occupant) + else + target.ex_act(2) + +/turf/proc/drill_act(obj/item/mecha_parts/mecha_equipment/drill/drill) + return + +/turf/closed/wall/r_wall/drill_act(obj/item/mecha_parts/mecha_equipment/drill/drill) + if(istype(drill, /obj/item/mecha_parts/mecha_equipment/drill/diamonddrill)) + if(drill.do_after_cooldown(src))//To slow down how fast mechs can drill through the station + drill.log_message("Drilled through [src]") + ex_act(3) + else + drill.occupant_message("[src] is too durable to drill through.") + +/turf/closed/mineral/drill_act(obj/item/mecha_parts/mecha_equipment/drill/drill) + for(var/turf/closed/mineral/M in range(drill.chassis,1)) + if(get_dir(drill.chassis,M)&drill.chassis.dir) + M.gets_drilled() + drill.log_message("Drilled through [src]") + drill.move_ores() + +/turf/open/floor/plating/asteroid/drill_act(obj/item/mecha_parts/mecha_equipment/drill/drill) + for(var/turf/open/floor/plating/asteroid/M in range(1, drill.chassis)) + if(get_dir(drill.chassis,M)&drill.chassis.dir) + M.gets_dug() + drill.log_message("Drilled through [src]") + drill.move_ores() + + +/obj/item/mecha_parts/mecha_equipment/drill/proc/move_ores() + if(locate(/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp) in chassis.equipment) + var/obj/structure/ore_box/ore_box = locate(/obj/structure/ore_box) in chassis:cargo + if(ore_box) + for(var/obj/item/weapon/ore/ore in range(1, chassis)) + if(get_dir(chassis,ore)&chassis.dir) + ore.Move(ore_box) + +/obj/item/mecha_parts/mecha_equipment/drill/can_attach(obj/mecha/M as obj) + if(..()) + if(istype(M, /obj/mecha/working) || istype(M, /obj/mecha/combat)) + return 1 + return 0 + +/obj/item/mecha_parts/mecha_equipment/drill/proc/drill_mob(mob/living/target, mob/user, var/drill_damage=80) + target.visible_message("[chassis] drills [target] with [src].", \ + "[chassis] drills [target] with [src].") + add_logs(user, target, "attacked", "[name]", "(INTENT: [uppertext(user.a_intent)]) (DAMTYPE: [uppertext(damtype)])") + if(ishuman(target)) + var/mob/living/carbon/human/H = target + H.apply_damage(drill_damage, BRUTE, "chest") + else if(target.stat == DEAD && target.butcher_results) + target.harvest(chassis) // Butcher the mob with our drill. + else + target.take_bodypart_damage(drill_damage) + + if(target) + target.Paralyse(10) + target.updatehealth() + + +/obj/item/mecha_parts/mecha_equipment/drill/diamonddrill + name = "diamond-tipped exosuit drill" + desc = "Equipment for engineering and combat exosuits. This is an upgraded version of the drill that'll pierce the heavens!" + icon_state = "mecha_diamond_drill" + origin_tech = "materials=4;engineering=4" + equip_cooldown = 20 + force = 15 + + +/obj/item/mecha_parts/mecha_equipment/mining_scanner + name = "exosuit mining scanner" + desc = "Equipment for engineering and combat exosuits. It will automatically check surrounding rock for useful minerals." + icon_state = "mecha_analyzer" + selectable = 0 + equip_cooldown = 30 + var/scanning = 0 + +/obj/item/mecha_parts/mecha_equipment/mining_scanner/New() + START_PROCESSING(SSobj, src) + +/obj/item/mecha_parts/mecha_equipment/mining_scanner/attach(obj/mecha/M) + ..() + M.occupant_sight_flags |= SEE_TURFS + if(M.occupant) + M.occupant.update_sight() + +/obj/item/mecha_parts/mecha_equipment/mining_scanner/detach() + chassis.occupant_sight_flags &= ~SEE_TURFS + if(chassis.occupant) + chassis.occupant.update_sight() + return ..() + +/obj/item/mecha_parts/mecha_equipment/mining_scanner/process() + if(!loc) + STOP_PROCESSING(SSobj, src) + qdel(src) + if(scanning) + return + if(istype(loc,/obj/mecha/working)) + var/obj/mecha/working/mecha = loc + if(!mecha.occupant) + return + var/list/L = list(mecha.occupant) + scanning = 1 + mineral_scan_pulse(L,get_turf(loc)) + spawn(equip_cooldown) + scanning = 0 diff --git a/code/game/mecha/equipment/tools/other_tools.dm b/code/game/mecha/equipment/tools/other_tools.dm new file mode 100644 index 0000000..7e8481c --- /dev/null +++ b/code/game/mecha/equipment/tools/other_tools.dm @@ -0,0 +1,491 @@ + +// Teleporter, Wormhole generator, Gravitational catapult, Armor booster modules, +// Repair droid, Tesla Energy relay, Generators + +////////////////////////////////////////////// TELEPORTER /////////////////////////////////////////////// + +/obj/item/mecha_parts/mecha_equipment/teleporter + name = "mounted teleporter" + desc = "An exosuit module that allows exosuits to teleport to any position in view." + icon_state = "mecha_teleport" + origin_tech = "bluespace=7" + equip_cooldown = 150 + energy_drain = 1000 + range = RANGED + +/obj/item/mecha_parts/mecha_equipment/teleporter/action(atom/target) + if(!action_checks(target) || src.loc.z == ZLEVEL_CENTCOM) return + var/turf/T = get_turf(target) + if(T) + do_teleport(chassis, T, 4) + return 1 + + + +////////////////////////////////////////////// WORMHOLE GENERATOR ////////////////////////////////////////// + +/obj/item/mecha_parts/mecha_equipment/wormhole_generator + name = "mounted wormhole generator" + desc = "An exosuit module that allows generating of small quasi-stable wormholes." + icon_state = "mecha_wholegen" + origin_tech = "bluespace=4;magnets=4;plasmatech=2" + equip_cooldown = 50 + energy_drain = 300 + range = RANGED + + +/obj/item/mecha_parts/mecha_equipment/wormhole_generator/action(atom/target) + if(!action_checks(target) || src.loc.z == ZLEVEL_CENTCOM) + return + var/list/theareas = get_areas_in_range(100, chassis) + if(!theareas.len) + return + var/area/thearea = pick(theareas) + var/list/L = list() + var/turf/pos = get_turf(src) + for(var/turf/T in get_area_turfs(thearea.type)) + if(!T.density && pos.z == T.z) + var/clear = 1 + for(var/obj/O in T) + if(O.density) + clear = 0 + break + if(clear) + L+=T + if(!L.len) + return + var/turf/target_turf = pick(L) + if(!target_turf) + return + var/obj/effect/portal/P = new /obj/effect/portal(get_turf(target)) + P.target = target_turf + P.creator = null + P.icon = 'icons/obj/objects.dmi' + P.icon_state = "anom" + P.name = "wormhole" + var/turf/T = get_turf(target) + message_admins("[ADMIN_LOOKUPFLW(chassis.occupant)] used a Wormhole Generator in [ADMIN_COORDJMP(T)]",0,1) + log_game("[key_name(chassis.occupant)] used a Wormhole Generator in [COORD(T)]") + src = null + spawn(rand(150,300)) + qdel(P) + return 1 + + +/////////////////////////////////////// GRAVITATIONAL CATAPULT /////////////////////////////////////////// + +/obj/item/mecha_parts/mecha_equipment/gravcatapult + name = "mounted gravitational catapult" + desc = "An exosuit mounted Gravitational Catapult." + icon_state = "mecha_teleport" + origin_tech = "bluespace=3;magnets=3;engineering=4" + equip_cooldown = 10 + energy_drain = 100 + range = MELEE|RANGED + var/atom/movable/locked + var/mode = 1 //1 - gravsling 2 - gravpush + + +/obj/item/mecha_parts/mecha_equipment/gravcatapult/action(atom/movable/target) + if(!action_checks(target)) + return + switch(mode) + if(1) + if(!locked) + if(!istype(target) || target.anchored) + occupant_message("Unable to lock on [target]") + return + locked = target + occupant_message("Locked on [target]") + send_byjax(chassis.occupant,"exosuit.browser","\ref[src]",src.get_equip_info()) + else if(target!=locked) + if(locked in view(chassis)) + locked.throw_at(target, 14, 1.5) + locked = null + send_byjax(chassis.occupant,"exosuit.browser","\ref[src]",src.get_equip_info()) + return 1 + else + locked = null + occupant_message("Lock on [locked] disengaged.") + send_byjax(chassis.occupant,"exosuit.browser","\ref[src]",src.get_equip_info()) + if(2) + var/list/atoms = list() + if(isturf(target)) + atoms = range(3, target) + else + atoms = orange(3, target) + for(var/atom/movable/A in atoms) + if(A.anchored) continue + spawn(0) + var/iter = 5-get_dist(A,target) + for(var/i=0 to iter) + step_away(A,target) + sleep(2) + var/turf/T = get_turf(target) + log_game("[chassis.occupant.ckey]([chassis.occupant]) used a Gravitational Catapult in ([T.x],[T.y],[T.z])") + return 1 + + +/obj/item/mecha_parts/mecha_equipment/gravcatapult/get_equip_info() + return "[..()] [mode==1?"([locked||"Nothing"])":null] \[S|P\]" + +/obj/item/mecha_parts/mecha_equipment/gravcatapult/Topic(href, href_list) + ..() + if(href_list["mode"]) + mode = text2num(href_list["mode"]) + send_byjax(chassis.occupant,"exosuit.browser","\ref[src]",src.get_equip_info()) + return + + + + +//////////////////////////// ARMOR BOOSTER MODULES ////////////////////////////////////////////////////////// + + +/obj/item/mecha_parts/mecha_equipment/anticcw_armor_booster //what is that noise? A BAWWW from TK mutants. + name = "armor booster module (Close Combat Weaponry)" + desc = "Boosts exosuit armor against armed melee attacks. Requires energy to operate." + icon_state = "mecha_abooster_ccw" + origin_tech = "materials=4;combat=4" + equip_cooldown = 10 + energy_drain = 50 + range = 0 + var/deflect_coeff = 1.15 + var/damage_coeff = 0.8 + selectable = 0 + +/obj/item/mecha_parts/mecha_equipment/anticcw_armor_booster/proc/attack_react() + if(action_checks(src)) + start_cooldown() + return 1 + + + +/obj/item/mecha_parts/mecha_equipment/antiproj_armor_booster + name = "armor booster module (Ranged Weaponry)" + desc = "Boosts exosuit armor against ranged attacks. Completely blocks taser shots. Requires energy to operate." + icon_state = "mecha_abooster_proj" + origin_tech = "materials=4;combat=3;engineering=3" + equip_cooldown = 10 + energy_drain = 50 + range = 0 + var/deflect_coeff = 1.15 + var/damage_coeff = 0.8 + selectable = 0 + +/obj/item/mecha_parts/mecha_equipment/antiproj_armor_booster/proc/projectile_react() + if(action_checks(src)) + start_cooldown() + return 1 + + +////////////////////////////////// REPAIR DROID ////////////////////////////////////////////////// + + +/obj/item/mecha_parts/mecha_equipment/repair_droid + name = "exosuit repair droid" + desc = "An automated repair droid for exosuits. Scans for damage and repairs it. Can fix almost all types of external or internal damage." + icon_state = "repair_droid" + origin_tech = "magnets=3;programming=3;engineering=4" + energy_drain = 50 + range = 0 + var/health_boost = 1 + var/icon/droid_overlay + var/list/repairable_damage = list(MECHA_INT_TEMP_CONTROL,MECHA_INT_TANK_BREACH) + selectable = 0 + +/obj/item/mecha_parts/mecha_equipment/repair_droid/Destroy() + STOP_PROCESSING(SSobj, src) + if(chassis) + chassis.overlays -= droid_overlay + return ..() + +/obj/item/mecha_parts/mecha_equipment/repair_droid/attach(obj/mecha/M as obj) + ..() + droid_overlay = new(src.icon, icon_state = "repair_droid") + M.add_overlay(droid_overlay) + +/obj/item/mecha_parts/mecha_equipment/repair_droid/detach() + chassis.overlays -= droid_overlay + STOP_PROCESSING(SSobj, src) + ..() + +/obj/item/mecha_parts/mecha_equipment/repair_droid/get_equip_info() + if(!chassis) return + return "*  [src.name] - [equip_ready?"A":"Dea"]ctivate" + + +/obj/item/mecha_parts/mecha_equipment/repair_droid/Topic(href, href_list) + ..() + if(href_list["toggle_repairs"]) + chassis.overlays -= droid_overlay + if(equip_ready) + START_PROCESSING(SSobj, src) + droid_overlay = new(src.icon, icon_state = "repair_droid_a") + log_message("Activated.") + set_ready_state(0) + else + STOP_PROCESSING(SSobj, src) + droid_overlay = new(src.icon, icon_state = "repair_droid") + log_message("Deactivated.") + set_ready_state(1) + chassis.add_overlay(droid_overlay) + send_byjax(chassis.occupant,"exosuit.browser","\ref[src]",src.get_equip_info()) + + +/obj/item/mecha_parts/mecha_equipment/repair_droid/process() + if(!chassis) + STOP_PROCESSING(SSobj, src) + set_ready_state(1) + return + var/h_boost = health_boost + var/repaired = 0 + if(chassis.internal_damage & MECHA_INT_SHORT_CIRCUIT) + h_boost *= -2 + else if(chassis.internal_damage && prob(15)) + for(var/int_dam_flag in repairable_damage) + if(chassis.internal_damage & int_dam_flag) + chassis.clearInternalDamage(int_dam_flag) + repaired = 1 + break + if(health_boost<0 || chassis.obj_integrity < chassis.max_integrity) + chassis.obj_integrity += min(health_boost, chassis.max_integrity-chassis.obj_integrity) + repaired = 1 + if(repaired) + if(!chassis.use_power(energy_drain)) + STOP_PROCESSING(SSobj, src) + set_ready_state(1) + else //no repair needed, we turn off + STOP_PROCESSING(SSobj, src) + set_ready_state(1) + chassis.overlays -= droid_overlay + droid_overlay = new(src.icon, icon_state = "repair_droid") + chassis.add_overlay(droid_overlay) + + + + +/////////////////////////////////// TESLA ENERGY RELAY //////////////////////////////////////////////// + +/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay + name = "exosuit energy relay" + desc = "An exosuit module that wirelessly drains energy from any available power channel in area. The performance index is quite low." + icon_state = "tesla" + origin_tech = "magnets=4;powerstorage=4;engineering=4" + energy_drain = 0 + range = 0 + var/coeff = 100 + var/list/use_channels = list(EQUIP,ENVIRON,LIGHT) + selectable = 0 + +/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay/Destroy() + STOP_PROCESSING(SSobj, src) + return ..() + +/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay/detach() + STOP_PROCESSING(SSobj, src) + ..() + return + +/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay/proc/get_charge() + if(equip_ready) //disabled + return + var/area/A = get_area(chassis) + var/pow_chan = get_power_channel(A) + if(pow_chan) + return 1000 //making magic + + +/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay/proc/get_power_channel(var/area/A) + var/pow_chan + if(A) + for(var/c in use_channels) + if(A.master && A.master.powered(c)) + pow_chan = c + break + return pow_chan + +/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay/Topic(href, href_list) + ..() + if(href_list["toggle_relay"]) + if(equip_ready) //inactive + START_PROCESSING(SSobj, src) + set_ready_state(0) + log_message("Activated.") + else + STOP_PROCESSING(SSobj, src) + set_ready_state(1) + log_message("Deactivated.") + +/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay/get_equip_info() + if(!chassis) return + return "*  [src.name] - [equip_ready?"A":"Dea"]ctivate" + + +/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay/process() + if(!chassis || chassis.internal_damage & MECHA_INT_SHORT_CIRCUIT) + STOP_PROCESSING(SSobj, src) + set_ready_state(1) + return + var/cur_charge = chassis.get_charge() + if(isnull(cur_charge) || !chassis.cell) + STOP_PROCESSING(SSobj, src) + set_ready_state(1) + occupant_message("No powercell detected.") + return + if(cur_charge < chassis.cell.maxcharge) + var/area/A = get_area(chassis) + if(A) + var/pow_chan + for(var/c in list(EQUIP,ENVIRON,LIGHT)) + if(A.master.powered(c)) + pow_chan = c + break + if(pow_chan) + var/delta = min(20, chassis.cell.maxcharge-cur_charge) + chassis.give_power(delta) + A.master.use_power(delta*coeff, pow_chan) + + + + +/////////////////////////////////////////// GENERATOR ///////////////////////////////////////////// + + +/obj/item/mecha_parts/mecha_equipment/generator + name = "exosuit plasma converter" + desc = "An exosuit module that generates power using solid plasma as fuel. Pollutes the environment." + icon_state = "tesla" + origin_tech = "plasmatech=2;powerstorage=2;engineering=2" + range = MELEE + var/coeff = 100 + var/obj/item/stack/sheet/fuel + var/max_fuel = 150000 + var/fuel_per_cycle_idle = 25 + var/fuel_per_cycle_active = 200 + var/power_per_cycle = 20 + +/obj/item/mecha_parts/mecha_equipment/generator/New() + ..() + generator_init() + +/obj/item/mecha_parts/mecha_equipment/generator/Destroy() + STOP_PROCESSING(SSobj, src) + return ..() + +/obj/item/mecha_parts/mecha_equipment/generator/proc/generator_init() + fuel = new /obj/item/stack/sheet/mineral/plasma(src) + fuel.amount = 0 + +/obj/item/mecha_parts/mecha_equipment/generator/detach() + STOP_PROCESSING(SSobj, src) + ..() + +/obj/item/mecha_parts/mecha_equipment/generator/Topic(href, href_list) + ..() + if(href_list["toggle"]) + if(equip_ready) //inactive + set_ready_state(0) + START_PROCESSING(SSobj, src) + log_message("Activated.") + else + set_ready_state(1) + STOP_PROCESSING(SSobj, src) + log_message("Deactivated.") + +/obj/item/mecha_parts/mecha_equipment/generator/get_equip_info() + var/output = ..() + if(output) + return "[output] \[[fuel]: [round(fuel.amount*fuel.perunit,0.1)] cm3\] - [equip_ready?"A":"Dea"]ctivate" + +/obj/item/mecha_parts/mecha_equipment/generator/action(target) + if(chassis) + var/result = load_fuel(target) + if(result) + send_byjax(chassis.occupant,"exosuit.browser","\ref[src]",src.get_equip_info()) + +/obj/item/mecha_parts/mecha_equipment/generator/proc/load_fuel(var/obj/item/stack/sheet/P) + if(P.type == fuel.type && P.amount > 0) + var/to_load = max(max_fuel - fuel.amount*fuel.perunit,0) + if(to_load) + var/units = min(max(round(to_load / P.perunit),1),P.amount) + fuel.amount += units + P.use(units) + occupant_message("[units] unit\s of [fuel] successfully loaded.") + return units + else + occupant_message("Unit is full.") + return 0 + else + occupant_message("[fuel] traces in target minimal! [P] cannot be used as fuel.") + return + +/obj/item/mecha_parts/mecha_equipment/generator/attackby(weapon,mob/user, params) + load_fuel(weapon) + +/obj/item/mecha_parts/mecha_equipment/generator/critfail() + ..() + var/turf/open/T = get_turf(src) + if(!istype(T)) + return + var/datum/gas_mixture/GM = new + GM.assert_gas("plasma") + if(prob(10)) + GM.gases["plasma"][MOLES] += 100 + GM.temperature = 1500+T0C //should be enough to start a fire + T.visible_message("The [src] suddenly disgorges a cloud of heated plasma.") + qdel(src) + else + GM.gases["plasma"][MOLES] += 5 + GM.temperature = istype(T) ? T.air.return_temperature() : T20C + T.visible_message("The [src] suddenly disgorges a cloud of plasma.") + T.assume_air(GM) + return + +/obj/item/mecha_parts/mecha_equipment/generator/process() + if(!chassis) + STOP_PROCESSING(SSobj, src) + set_ready_state(1) + return + if(fuel.amount<=0) + STOP_PROCESSING(SSobj, src) + log_message("Deactivated - no fuel.") + set_ready_state(1) + return + var/cur_charge = chassis.get_charge() + if(isnull(cur_charge)) + set_ready_state(1) + occupant_message("No powercell detected.") + log_message("Deactivated.") + STOP_PROCESSING(SSobj, src) + return + var/use_fuel = fuel_per_cycle_idle + if(cur_charge < chassis.cell.maxcharge) + use_fuel = fuel_per_cycle_active + chassis.give_power(power_per_cycle) + fuel.amount -= min(use_fuel/fuel.perunit,fuel.amount) + update_equip_info() + return 1 + + +/obj/item/mecha_parts/mecha_equipment/generator/nuclear + name = "exonuclear reactor" + desc = "An exosuit module that generates power using uranium as fuel. Pollutes the environment." + icon_state = "tesla" + origin_tech = "powerstorage=4;engineering=4" + max_fuel = 50000 + fuel_per_cycle_idle = 10 + fuel_per_cycle_active = 30 + power_per_cycle = 50 + var/rad_per_cycle = 0.3 + +/obj/item/mecha_parts/mecha_equipment/generator/nuclear/generator_init() + fuel = new /obj/item/stack/sheet/mineral/uranium(src) + fuel.amount = 0 + +/obj/item/mecha_parts/mecha_equipment/generator/nuclear/critfail() + return + +/obj/item/mecha_parts/mecha_equipment/generator/nuclear/process() + if(..()) + radiation_pulse(get_turf(src), 2, 7, rad_per_cycle, 1) diff --git a/code/game/mecha/equipment/tools/work_tools.dm b/code/game/mecha/equipment/tools/work_tools.dm new file mode 100644 index 0000000..586e67b --- /dev/null +++ b/code/game/mecha/equipment/tools/work_tools.dm @@ -0,0 +1,430 @@ + +//Hydraulic clamp, Kill clamp, Extinguisher, RCD, Cable layer. + + +/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp + name = "hydraulic clamp" + desc = "Equipment for engineering exosuits. Lifts objects and loads them into cargo." + icon_state = "mecha_clamp" + equip_cooldown = 15 + energy_drain = 10 + var/dam_force = 20 + var/obj/mecha/working/ripley/cargo_holder + +/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp/can_attach(obj/mecha/working/ripley/M as obj) + if(..()) + if(istype(M)) + return 1 + return 0 + +/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp/attach(obj/mecha/M as obj) + ..() + cargo_holder = M + return + +/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp/detach(atom/moveto = null) + ..() + cargo_holder = null + +/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp/action(atom/target) + if(!action_checks(target)) + return + if(!cargo_holder) + return + if(isobj(target)) + var/obj/O = target + if(!O.anchored) + if(cargo_holder.cargo.len < cargo_holder.cargo_capacity) + chassis.visible_message("[chassis] lifts [target] and starts to load it into cargo compartment.") + O.anchored = 1 + if(do_after_cooldown(target)) + cargo_holder.cargo += O + O.loc = chassis + O.anchored = 0 + occupant_message("[target] successfully loaded.") + log_message("Loaded [O]. Cargo compartment capacity: [cargo_holder.cargo_capacity - cargo_holder.cargo.len]") + else + O.anchored = initial(O.anchored) + else + occupant_message("Not enough room in cargo compartment!") + else + occupant_message("[target] is firmly secured!") + + else if(isliving(target)) + var/mob/living/M = target + if(M.stat == DEAD) return + if(chassis.occupant.a_intent == "harm") + M.take_overall_damage(dam_force) + if(!M) + return + M.adjustOxyLoss(round(dam_force/2)) + M.updatehealth() + target.visible_message("[chassis] squeezes [target].", \ + "[chassis] squeezes [target].",\ + "You hear something crack.") + add_logs(chassis.occupant, M, "attacked", "[name]", "(INTENT: [uppertext(chassis.occupant.a_intent)]) (DAMTYE: [uppertext(damtype)])") + else + step_away(M,chassis) + occupant_message("You push [target] out of the way.") + chassis.visible_message("[chassis] pushes [target] out of the way.") + return 1 + + + +//This is pretty much just for the death-ripley +/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp/kill + name = "\improper KILL CLAMP" + desc = "They won't know what clamped them!" + energy_drain = 0 + +/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp/kill/action(atom/target) + if(!action_checks(target)) + return + if(!cargo_holder) + return + if(isobj(target)) + var/obj/O = target + if(!O.anchored) + if(cargo_holder.cargo.len < cargo_holder.cargo_capacity) + chassis.visible_message("[chassis] lifts [target] and starts to load it into cargo compartment.") + O.anchored = 1 + if(do_after_cooldown(target)) + cargo_holder.cargo += O + O.loc = chassis + O.anchored = 0 + occupant_message("[target] successfully loaded.") + log_message("Loaded [O]. Cargo compartment capacity: [cargo_holder.cargo_capacity - cargo_holder.cargo.len]") + else + O.anchored = initial(O.anchored) + else + occupant_message("Not enough room in cargo compartment!") + else + occupant_message("[target] is firmly secured!") + + else if(isliving(target)) + var/mob/living/M = target + if(M.stat == DEAD) return + if(chassis.occupant.a_intent == "harm") + target.visible_message("[chassis] destroys [target] in an unholy fury.", \ + "[chassis] destroys [target] in an unholy fury.") + if(chassis.occupant.a_intent == "disarm") + target.visible_message("[chassis] rips [target]'s arms off.", \ + "[chassis] rips [target]'s arms off.") + else + step_away(M,chassis) + target.visible_message("[chassis] tosses [target] like a piece of paper.") + return 1 + + + +/obj/item/mecha_parts/mecha_equipment/extinguisher + name = "exosuit extinguisher" + desc = "Equipment for engineering exosuits. A rapid-firing high capacity fire extinguisher." + icon_state = "mecha_exting" + equip_cooldown = 5 + energy_drain = 0 + range = MELEE|RANGED + +/obj/item/mecha_parts/mecha_equipment/extinguisher/New() + create_reagents(1000) + reagents.add_reagent("water", 1000) + ..() + return + +/obj/item/mecha_parts/mecha_equipment/extinguisher/action(atom/target) //copypasted from extinguisher. TODO: Rewrite from scratch. + if(!action_checks(target) || get_dist(chassis, target)>3) + return + + if(istype(target, /obj/structure/reagent_dispensers/watertank) && get_dist(chassis,target) <= 1) + var/obj/structure/reagent_dispensers/watertank/WT = target + WT.reagents.trans_to(src, 1000) + occupant_message("Extinguisher refilled.") + playsound(chassis, 'sound/effects/refill.ogg', 50, 1, -6) + else + if(reagents.total_volume > 0) + playsound(chassis, 'sound/effects/extinguish.ogg', 75, 1, -3) + var/direction = get_dir(chassis,target) + var/turf/T = get_turf(target) + var/turf/T1 = get_step(T,turn(direction, 90)) + var/turf/T2 = get_step(T,turn(direction, -90)) + + var/list/the_targets = list(T,T1,T2) + spawn(0) + for(var/a=0, a<5, a++) + var/obj/effect/particle_effect/water/W = PoolOrNew(/obj/effect/particle_effect/water, get_turf(chassis)) + if(!W) + return + var/turf/my_target = pick(the_targets) + var/datum/reagents/R = new/datum/reagents(5) + W.reagents = R + R.my_atom = W + reagents.trans_to(W,1) + for(var/b=0, b<4, b++) + if(!W) + return + step_towards(W,my_target) + if(!W) + return + var/turf/W_turf = get_turf(W) + W.reagents.reaction(W_turf) + for(var/atom/atm in W_turf) + W.reagents.reaction(atm) + if(W.loc == my_target) + break + sleep(2) + return 1 + +/obj/item/mecha_parts/mecha_equipment/extinguisher/get_equip_info() + return "[..()] \[[src.reagents.total_volume]\]" + +/obj/item/mecha_parts/mecha_equipment/extinguisher/on_reagent_change() + return + +/obj/item/mecha_parts/mecha_equipment/extinguisher/can_attach(obj/mecha/working/M as obj) + if(..()) + if(istype(M)) + return 1 + return 0 + + + +/obj/item/mecha_parts/mecha_equipment/rcd + name = "mounted RCD" + desc = "An exosuit-mounted Rapid Construction Device." + icon_state = "mecha_rcd" + origin_tech = "materials=4;bluespace=3;magnets=4;powerstorage=4;engineering=4" + equip_cooldown = 10 + energy_drain = 250 + range = MELEE|RANGED + var/mode = 0 //0 - deconstruct, 1 - wall or floor, 2 - airlock. + +/obj/item/mecha_parts/mecha_equipment/rcd/New() + rcd_list += src + ..() + +/obj/item/mecha_parts/mecha_equipment/rcd/Destroy() + rcd_list -= src + ..() + +/obj/item/mecha_parts/mecha_equipment/rcd/action(atom/target) + if(istype(target, /turf/open/space/transit))//>implying these are ever made -Sieve + return + + if(!isturf(target) && !istype(target, /obj/machinery/door/airlock)) + target = get_turf(target) + if(!action_checks(target) || get_dist(chassis, target)>3) + return + playsound(chassis, 'sound/machines/click.ogg', 50, 1) + + switch(mode) + if(0) + if(iswallturf(target)) + var/turf/closed/wall/W = target + occupant_message("Deconstructing [W]...") + if(do_after_cooldown(W)) + chassis.spark_system.start() + W.ChangeTurf(/turf/open/floor/plating) + playsound(W, 'sound/items/Deconstruct.ogg', 50, 1) + else if(isfloorturf(target)) + var/turf/open/floor/F = target + occupant_message("Deconstructing [F]...") + if(do_after_cooldown(target)) + chassis.spark_system.start() + F.ChangeTurf(F.baseturf) + playsound(F, 'sound/items/Deconstruct.ogg', 50, 1) + else if (istype(target, /obj/machinery/door/airlock)) + occupant_message("Deconstructing [target]...") + if(do_after_cooldown(target)) + chassis.spark_system.start() + qdel(target) + playsound(target, 'sound/items/Deconstruct.ogg', 50, 1) + if(1) + if(isspaceturf(target)) + var/turf/open/space/S = target + occupant_message("Building Floor...") + if(do_after_cooldown(S)) + S.ChangeTurf(/turf/open/floor/plating) + playsound(S, 'sound/items/Deconstruct.ogg', 50, 1) + chassis.spark_system.start() + else if(isfloorturf(target)) + var/turf/open/floor/F = target + occupant_message("Building Wall...") + if(do_after_cooldown(F)) + F.ChangeTurf(/turf/closed/wall) + playsound(F, 'sound/items/Deconstruct.ogg', 50, 1) + chassis.spark_system.start() + if(2) + if(isfloorturf(target)) + occupant_message("Building Airlock...") + if(do_after_cooldown(target)) + chassis.spark_system.start() + var/obj/machinery/door/airlock/T = new /obj/machinery/door/airlock(target) + T.autoclose = 1 + playsound(target, 'sound/items/Deconstruct.ogg', 50, 1) + playsound(target, 'sound/effects/sparks2.ogg', 50, 1) + + + +/obj/item/mecha_parts/mecha_equipment/rcd/do_after_cooldown(var/atom/target) + . = ..() + +/obj/item/mecha_parts/mecha_equipment/rcd/Topic(href,href_list) + ..() + if(href_list["mode"]) + mode = text2num(href_list["mode"]) + switch(mode) + if(0) + occupant_message("Switched RCD to Deconstruct.") + energy_drain = initial(energy_drain) + if(1) + occupant_message("Switched RCD to Construct.") + energy_drain = 2*initial(energy_drain) + if(2) + occupant_message("Switched RCD to Construct Airlock.") + energy_drain = 2*initial(energy_drain) + return + +/obj/item/mecha_parts/mecha_equipment/rcd/get_equip_info() + return "[..()] \[D|C|A\]" + + + + +/obj/item/mecha_parts/mecha_equipment/cable_layer + name = "cable layer" + desc = "Equipment for engineering exosuits. Lays cable along the exosuit's path." + icon_state = "mecha_wire" + var/datum/event/event + var/turf/old_turf + var/obj/structure/cable/last_piece + var/obj/item/stack/cable_coil/cable + var/max_cable = 1000 + +/obj/item/mecha_parts/mecha_equipment/cable_layer/New() + cable = new(src) + cable.amount = 0 + ..() + +/obj/item/mecha_parts/mecha_equipment/cable_layer/can_attach(obj/mecha/working/M) + if(..()) + if(istype(M)) + return 1 + return 0 + +/obj/item/mecha_parts/mecha_equipment/cable_layer/attach() + ..() + event = chassis.events.addEvent("onMove",src,"layCable") + return + +/obj/item/mecha_parts/mecha_equipment/cable_layer/detach() + chassis.events.clearEvent("onMove",event) + return ..() + +/obj/item/mecha_parts/mecha_equipment/cable_layer/Destroy() + if(chassis) + chassis.events.clearEvent("onMove",event) + return ..() + +/obj/item/mecha_parts/mecha_equipment/cable_layer/action(var/obj/item/stack/cable_coil/target) + if(!action_checks(target)) + return + if(istype(target) && target.amount) + var/cur_amount = cable? cable.amount : 0 + var/to_load = max(max_cable - cur_amount,0) + if(to_load) + to_load = min(target.amount, to_load) + if(!cable) + cable = new(src) + cable.amount = 0 + cable.amount += to_load + target.use(to_load) + occupant_message("[to_load] meters of cable successfully loaded.") + send_byjax(chassis.occupant,"exosuit.browser","\ref[src]",src.get_equip_info()) + else + occupant_message("Reel is full.") + else + occupant_message("Unable to load [target] - no cable found.") + + +/obj/item/mecha_parts/mecha_equipment/cable_layer/Topic(href,href_list) + ..() + if(href_list["toggle"]) + set_ready_state(!equip_ready) + occupant_message("[src] [equip_ready?"dea":"a"]ctivated.") + log_message("[equip_ready?"Dea":"A"]ctivated.") + return + if(href_list["cut"]) + if(cable && cable.amount) + var/m = round(input(chassis.occupant,"Please specify the length of cable to cut","Cut cable",min(cable.amount,30)) as num, 1) + m = min(m, cable.amount) + if(m) + use_cable(m) + var/obj/item/stack/cable_coil/CC = new (get_turf(chassis)) + CC.amount = m + else + occupant_message("There's no more cable on the reel.") + return + +/obj/item/mecha_parts/mecha_equipment/cable_layer/get_equip_info() + var/output = ..() + if(output) + return "[output] \[Cable: [cable ? cable.amount : 0] m\][(cable && cable.amount) ? "- [!equip_ready?"Dea":"A"]ctivate|Cut" : null]" + return + +/obj/item/mecha_parts/mecha_equipment/cable_layer/proc/use_cable(amount) + if(!cable || cable.amount<1) + set_ready_state(1) + occupant_message("Cable depleted, [src] deactivated.") + log_message("Cable depleted, [src] deactivated.") + return + if(cable.amount < amount) + occupant_message("No enough cable to finish the task.") + return + cable.use(amount) + update_equip_info() + return 1 + +/obj/item/mecha_parts/mecha_equipment/cable_layer/proc/reset() + last_piece = null + +/obj/item/mecha_parts/mecha_equipment/cable_layer/proc/dismantleFloor(var/turf/new_turf) + if(isfloorturf(new_turf)) + var/turf/open/floor/T = new_turf + if(!istype(T, /turf/open/floor/plating)) + if(!T.broken && !T.burnt) + new T.floor_tile(T) + T.make_plating() + return !new_turf.intact + +/obj/item/mecha_parts/mecha_equipment/cable_layer/proc/layCable(var/turf/new_turf) + if(equip_ready || !istype(new_turf) || !dismantleFloor(new_turf)) + return reset() + var/fdirn = turn(chassis.dir,180) + for(var/obj/structure/cable/LC in new_turf) // check to make sure there's not a cable there already + if(LC.d1 == fdirn || LC.d2 == fdirn) + return reset() + if(!use_cable(1)) + return reset() + var/obj/structure/cable/NC = new(new_turf) + NC.cableColor("red") + NC.d1 = 0 + NC.d2 = fdirn + NC.updateicon() + + var/datum/powernet/PN + if(last_piece && last_piece.d2 != chassis.dir) + last_piece.d1 = min(last_piece.d2, chassis.dir) + last_piece.d2 = max(last_piece.d2, chassis.dir) + last_piece.updateicon() + PN = last_piece.powernet + + if(!PN) + PN = new() + powernets += PN + NC.powernet = PN + PN.cables += NC + NC.mergeConnectedNetworks(NC.d2) + + //NC.mergeConnectedNetworksOnTurf() + last_piece = NC + return 1 diff --git a/code/game/mecha/equipment/weapons/weapons.dm b/code/game/mecha/equipment/weapons/weapons.dm new file mode 100644 index 0000000..70cd8af --- /dev/null +++ b/code/game/mecha/equipment/weapons/weapons.dm @@ -0,0 +1,393 @@ +/obj/item/mecha_parts/mecha_equipment/weapon + name = "mecha weapon" + range = RANGED + origin_tech = "materials=3;combat=3" + var/projectile + var/fire_sound + var/projectiles_per_shot = 1 + var/variance = 0 + var/randomspread = 0 //use random spread for machineguns, instead of shotgun scatter + var/projectile_delay = 0 + var/firing_effect_type = /obj/effect/overlay/temp/dir_setting/firing_effect //the visual effect appearing when the weapon is fired. + +/obj/item/mecha_parts/mecha_equipment/weapon/can_attach(obj/mecha/combat/M) + if(..()) + if(istype(M)) + return 1 + return 0 + +/obj/item/mecha_parts/mecha_equipment/weapon/proc/get_shot_amount() + return projectiles_per_shot + +/obj/item/mecha_parts/mecha_equipment/weapon/action(atom/target, params) + if(!action_checks(target)) + return 0 + + var/turf/curloc = get_turf(chassis) + var/turf/targloc = get_turf(target) + if (!targloc || !istype(targloc) || !curloc) + return 0 + if (targloc == curloc) + return 0 + + set_ready_state(0) + for(var/i=1 to get_shot_amount()) + var/obj/item/projectile/A = new projectile(curloc) + A.firer = chassis.occupant + A.original = target + A.current = curloc + if(!A.suppressed && firing_effect_type) + PoolOrNew(firing_effect_type, list(get_turf(src), chassis.dir)) + + + var/spread = 0 + if(variance) + if(randomspread) + spread = round((rand() - 0.5) * variance) + else + spread = round((i / projectiles_per_shot - 0.5) * variance) + A.preparePixelProjectile(target, targloc, chassis.occupant, params, spread) + + A.fire() + playsound(chassis, fire_sound, 50, 1) + + sleep(max(0, projectile_delay)) + + chassis.log_message("Fired from [src.name], targeting [target].") + return 1 + + +//Base energy weapon type +/obj/item/mecha_parts/mecha_equipment/weapon/energy + name = "general energy weapon" + firing_effect_type = /obj/effect/overlay/temp/dir_setting/firing_effect/energy + +/obj/item/mecha_parts/mecha_equipment/weapon/energy/get_shot_amount() + return min(round(chassis.cell.charge / energy_drain), projectiles_per_shot) + +/obj/item/mecha_parts/mecha_equipment/weapon/energy/start_cooldown() + set_ready_state(0) + chassis.use_power(energy_drain*get_shot_amount()) + addtimer(src, "set_ready_state", equip_cooldown, FALSE, 1) + +/obj/item/mecha_parts/mecha_equipment/weapon/energy/laser + equip_cooldown = 8 + name = "\improper CH-PS \"Immolator\" laser" + desc = "A weapon for combat exosuits. Shoots basic lasers." + icon_state = "mecha_laser" + origin_tech = "magnets=3;combat=3;engineering=3" + energy_drain = 30 + projectile = /obj/item/projectile/beam/laser + fire_sound = 'sound/weapons/Laser.ogg' + +/obj/item/mecha_parts/mecha_equipment/weapon/energy/laser/heavy + equip_cooldown = 15 + name = "\improper CH-LC \"Solaris\" laser cannon" + desc = "A weapon for combat exosuits. Shoots heavy lasers." + icon_state = "mecha_laser" + origin_tech = "magnets=4;combat=4;engineering=3" + energy_drain = 60 + projectile = /obj/item/projectile/beam/laser/heavylaser + fire_sound = 'sound/weapons/lasercannonfire.ogg' + +/obj/item/mecha_parts/mecha_equipment/weapon/energy/ion + equip_cooldown = 20 + name = "\improper MKIV ion heavy cannon" + desc = "A weapon for combat exosuits. Shoots technology-disabling ion beams. Don't catch yourself in the blast!" + icon_state = "mecha_ion" + origin_tech = "materials=4;combat=5;magnets=4" + energy_drain = 120 + projectile = /obj/item/projectile/ion + fire_sound = 'sound/weapons/Laser.ogg' + +/obj/item/mecha_parts/mecha_equipment/weapon/energy/pulse + equip_cooldown = 30 + name = "eZ-13 MK2 heavy pulse rifle" + desc = "A weapon for combat exosuits. Shoots powerful destructive blasts capable of demloishing obstacles." + icon_state = "mecha_pulse" + energy_drain = 120 + origin_tech = "materials=3;combat=6;powerstorage=4" + projectile = /obj/item/projectile/beam/pulse/heavy + fire_sound = 'sound/weapons/marauder.ogg' + +/obj/item/mecha_parts/mecha_equipment/weapon/energy/plasma + equip_cooldown = 20 + name = "217-D Heavy Plasma Cutter" + desc = "A device that shoots resonant plasma bursts at extreme velocity. The blasts are capable of crushing rock and demloishing solid obstacles." + icon_state = "mecha_plasmacutter" + item_state = "plasmacutter" + energy_drain = 60 + origin_tech = "materials=3;plasmatech=4;engineering=3" + projectile = /obj/item/projectile/plasma/adv/mech + fire_sound = 'sound/weapons/Laser.ogg' + +/obj/item/mecha_parts/mecha_equipment/weapon/energy/plasma/can_attach(obj/mecha/working/M) + if(..()) //combat mech + return 1 + else if(M.equipment.len < M.max_equip && istype(M)) + return 1 + return 0 + +/obj/item/mecha_parts/mecha_equipment/weapon/energy/taser + name = "\improper PBT \"Pacifier\" mounted taser" + desc = "A weapon for combat exosuits. Shoots non-lethal stunning electrodes." + icon_state = "mecha_taser" + origin_tech = "combat=3" + energy_drain = 20 + equip_cooldown = 8 + projectile = /obj/item/projectile/energy/electrode + fire_sound = 'sound/weapons/Taser.ogg' + + +/obj/item/mecha_parts/mecha_equipment/weapon/honker + name = "\improper HoNkER BlAsT 5000" + desc = "Equipment for clown exosuits. Spreads fun and joy to everyone around. Honk!" + icon_state = "mecha_honker" + energy_drain = 200 + equip_cooldown = 150 + range = MELEE|RANGED + +/obj/item/mecha_parts/mecha_equipment/weapon/honker/can_attach(obj/mecha/combat/honker/M) + if(..()) + if(istype(M)) + return 1 + return 0 + +/obj/item/mecha_parts/mecha_equipment/weapon/honker/action(target, params) + if(!action_checks(target)) + return + playsound(chassis, 'sound/items/AirHorn.ogg', 100, 1) + chassis.occupant_message("HONK") + for(var/mob/living/carbon/M in ohearers(6, chassis)) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(istype(H.ears, /obj/item/clothing/ears/earmuffs)) + continue + M << "HONK" + M.SetSleeping(0) + M.stuttering += 20 + M.adjustEarDamage(0, 30) + M.Weaken(3) + if(prob(30)) + M.Stun(10) + M.Paralyse(4) + else + M.Jitter(500) + + log_message("Honked from [src.name]. HONK!") + var/turf/T = get_turf(src) + message_admins("[ADMIN_LOOKUPFLW(chassis.occupant)] used a Mecha Honker in [ADMIN_COORDJMP(T)]",0,1) + log_game("[chassis.occupant.ckey]([chassis.occupant]) used a Mecha Honker in [COORD(T)]") + return 1 + + +//Base ballistic weapon type +/obj/item/mecha_parts/mecha_equipment/weapon/ballistic + name = "general ballisic weapon" + fire_sound = 'sound/weapons/Gunshot.ogg' + var/projectiles + var/projectile_energy_cost + +/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/get_shot_amount() + return min(projectiles, projectiles_per_shot) + +/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/action_checks(target) + if(!..()) + return 0 + if(projectiles <= 0) + return 0 + return 1 + +/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/get_equip_info() + return "[..()] \[[src.projectiles]\][(src.projectiles < initial(src.projectiles))?" - Rearm":null]" + + +/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/rearm() + if(projectiles < initial(projectiles)) + var/projectiles_to_add = initial(projectiles) - projectiles + while(chassis.get_charge() >= projectile_energy_cost && projectiles_to_add) + projectiles++ + projectiles_to_add-- + chassis.use_power(projectile_energy_cost) + send_byjax(chassis.occupant,"exosuit.browser","\ref[src]",src.get_equip_info()) + log_message("Rearmed [src.name].") + return 1 + + +/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/needs_rearm() + . = !(projectiles > 0) + + + +/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/Topic(href, href_list) + ..() + if (href_list["rearm"]) + src.rearm() + return + +/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/action(atom/target) + if(..()) + projectiles -= get_shot_amount() + send_byjax(chassis.occupant,"exosuit.browser","\ref[src]",src.get_equip_info()) + return 1 + + +/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/carbine + name = "\improper FNX-99 \"Hades\" Carbine" + desc = "A weapon for combat exosuits. Shoots incendiary bullets." + icon_state = "mecha_carbine" + origin_tech = "materials=4;combat=4" + equip_cooldown = 5 + projectile = /obj/item/projectile/bullet/incendiary/shell/dragonsbreath + projectiles = 24 + projectile_energy_cost = 15 + +/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/silenced + name = "\improper S.H.H. \"Quietus\" Carbine" + desc = "A weapon for combat exosuits. A mime invention, field tests have shown that targets cannot even scream before going down." + fire_sound = "sound/weapons/Gunshot_silenced.ogg" + icon_state = "mecha_mime" + equip_cooldown = 30 + projectile = /obj/item/projectile/bullet/mime + projectiles = 6 + projectile_energy_cost = 50 + +/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot + name = "\improper LBX AC 10 \"Scattershot\"" + desc = "A weapon for combat exosuits. Shoots a spread of pellets." + icon_state = "mecha_scatter" + origin_tech = "combat=4" + equip_cooldown = 20 + projectile = /obj/item/projectile/bullet/midbullet + projectiles = 40 + projectile_energy_cost = 25 + projectiles_per_shot = 4 + variance = 25 + +/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/lmg + name = "\improper Ultra AC 2" + desc = "A weapon for combat exosuits. Shoots a rapid, three shot burst." + icon_state = "mecha_uac2" + origin_tech = "combat=4" + equip_cooldown = 10 + projectile = /obj/item/projectile/bullet/weakbullet3 + projectiles = 300 + projectile_energy_cost = 20 + projectiles_per_shot = 3 + variance = 6 + randomspread = 1 + projectile_delay = 2 + +/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher + var/missile_speed = 2 + var/missile_range = 30 + +/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/action(target) + if(!action_checks(target)) + return + var/obj/O = new projectile(chassis.loc) + playsound(chassis, fire_sound, 50, 1) + log_message("Launched a [O.name] from [name], targeting [target].") + projectiles-- + proj_init(O) + O.throw_at_fast(target, missile_range, missile_speed, spin = 0) + return 1 + +//used for projectile initilisation (priming flashbang) and additional logging +/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/proc/proj_init(var/obj/O) + return + +/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/missile_rack + name = "\improper SRM-8 missile rack" + desc = "A weapon for combat exosuits. Shoots light explosive missiles." + icon_state = "mecha_missilerack" + origin_tech = "combat=5;materials=4;engineering=4" + projectile = /obj/item/missile + fire_sound = 'sound/weapons/grenadelaunch.ogg' + projectiles = 8 + projectile_energy_cost = 1000 + equip_cooldown = 60 + +/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/missile_rack/proj_init(var/obj/item/missile/M) + M.primed = 1 + var/turf/T = get_turf(src) + message_admins("[ADMIN_LOOKUP(chassis.occupant)] fired a [src] in [ADMIN_COORDJMP(T)]",0,1) + log_game("[key_name(chassis.occupant)] fired a [src] [COORD(T)]") + +/obj/item/missile + icon = 'icons/obj/grenade.dmi' + icon_state = "missile" + var/primed = null + throwforce = 15 + +/obj/item/missile/throw_impact(atom/hit_atom) + if(primed) + explosion(hit_atom, 0, 0, 2, 4, 0) + qdel(src) + else + ..() + +/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/flashbang + name = "\improper SGL-6 grenade launcher" + desc = "A weapon for combat exosuits. Launches primed flashbangs." + icon_state = "mecha_grenadelnchr" + origin_tech = "combat=4;engineering=4" + projectile = /obj/item/weapon/grenade/flashbang + fire_sound = 'sound/weapons/grenadelaunch.ogg' + projectiles = 6 + missile_speed = 1.5 + projectile_energy_cost = 800 + equip_cooldown = 60 + var/det_time = 20 + +/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/flashbang/proj_init(var/obj/item/weapon/grenade/flashbang/F) + var/turf/T = get_turf(src) + message_admins("[key_name(chassis.occupant, chassis.occupant.client)](?) fired a [src] in ([T.x],[T.y],[T.z] - JMP)",0,1) + log_game("[key_name(chassis.occupant)] fired a [src] ([T.x],[T.y],[T.z])") + addtimer(F, "prime", det_time) + +/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/flashbang/clusterbang //Because I am a heartless bastard -Sieve //Heartless? for making the poor man's honkblast? - Kaze + name = "\improper SOB-3 grenade launcher" + desc = "A weapon for combat exosuits. Launches primed clusterbangs. You monster." + origin_tech = "combat=4;materials=4" + projectiles = 3 + projectile = /obj/item/weapon/grenade/clusterbuster + projectile_energy_cost = 1600 //getting off cheap seeing as this is 3 times the flashbangs held in the grenade launcher. + equip_cooldown = 90 + +/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/banana_mortar + name = "banana mortar" + desc = "Equipment for clown exosuits. Launches banana peels." + icon_state = "mecha_bananamrtr" + projectile = /obj/item/weapon/grown/bananapeel + fire_sound = 'sound/items/bikehorn.ogg' + projectiles = 15 + missile_speed = 1.5 + projectile_energy_cost = 100 + equip_cooldown = 20 + +/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/banana_mortar/can_attach(obj/mecha/combat/honker/M) + if(..()) + if(istype(M)) + return 1 + return 0 + +/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/mousetrap_mortar + name = "mousetrap mortar" + desc = "Equipment for clown exosuits. Launches armed mousetraps." + icon_state = "mecha_mousetrapmrtr" + projectile = /obj/item/device/assembly/mousetrap/armed + fire_sound = 'sound/items/bikehorn.ogg' + projectiles = 15 + missile_speed = 1.5 + projectile_energy_cost = 100 + equip_cooldown = 10 + +/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/mousetrap_mortar/can_attach(obj/mecha/combat/honker/M) + if(..()) + if(istype(M)) + return 1 + return 0 + +/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/mousetrap_mortar/proj_init(var/obj/item/device/assembly/mousetrap/armed/M) + M.secured = 1 diff --git a/code/game/mecha/mech_bay.dm b/code/game/mecha/mech_bay.dm new file mode 100644 index 0000000..b083030 --- /dev/null +++ b/code/game/mecha/mech_bay.dm @@ -0,0 +1,151 @@ +/turf/open/floor/mech_bay_recharge_floor // Whos idea it was + name = "mech bay recharge station" // Recharging turfs + icon = 'icons/turf/floors.dmi' // That are set in stone to check the west turf for recharge port + icon_state = "recharge_floor" // Some people just want to watch the world burn i guess + +/turf/open/floor/mech_bay_recharge_floor/break_tile() + src.ChangeTurf(/turf/open/floor/plating) + +/turf/open/floor/mech_bay_recharge_floor/airless + icon_state = "recharge_floor_asteroid" + initial_gas_mix = "TEMP=2.7" + +/obj/machinery/mech_bay_recharge_port + name = "mech bay power port" + density = 1 + anchored = 1 + dir = EAST + icon = 'icons/mecha/mech_bay.dmi' + icon_state = "recharge_port" + var/obj/mecha/recharging_mech + var/obj/machinery/computer/mech_bay_power_console/recharge_console + var/max_charge = 50 + var/on = 0 + var/repairability = 0 + var/turf/recharging_turf = null + +/obj/machinery/mech_bay_recharge_port/New() + ..() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/mech_recharger(null) + B.apply_default_parts(src) + recharging_turf = get_step(loc, dir) + +/obj/item/weapon/circuitboard/machine/mech_recharger + name = "circuit board (Mechbay Recharger)" + build_path = /obj/machinery/mech_bay_recharge_port + origin_tech = "programming=3;powerstorage=3;engineering=3" + req_components = list( + /obj/item/stack/cable_coil = 2, + /obj/item/weapon/stock_parts/capacitor = 5) + +/obj/machinery/mech_bay_recharge_port/RefreshParts() + var/MC + for(var/obj/item/weapon/stock_parts/capacitor/C in component_parts) + MC += C.rating + max_charge = MC * 25 + +/obj/machinery/mech_bay_recharge_port/process() + if(stat & NOPOWER || !recharge_console) + return + if(!recharging_mech) + recharging_mech = locate(/obj/mecha) in recharging_turf + if(recharging_mech) + recharge_console.update_icon() + if(recharging_mech && recharging_mech.cell) + if(recharging_mech.cell.charge < recharging_mech.cell.maxcharge) + var/delta = min(max_charge, recharging_mech.cell.maxcharge - recharging_mech.cell.charge) + recharging_mech.give_power(delta) + use_power(delta*150) + else + recharge_console.update_icon() + if(recharging_mech.loc != recharging_turf) + recharging_mech = null + recharge_console.update_icon() + + +/obj/machinery/mech_bay_recharge_port/attackby(obj/item/I, mob/user, params) + if(default_deconstruction_screwdriver(user, "recharge_port-o", "recharge_port", I)) + return + + if(default_change_direction_wrench(user, I)) + recharging_turf = get_step(loc, dir) + return + + if(exchange_parts(user, I)) + return + + if(default_deconstruction_crowbar(I)) + return + return ..() + +/obj/machinery/computer/mech_bay_power_console + name = "mech bay power control console" + desc = "Used to control mechbay power ports." + icon_screen = "recharge_comp" + icon_keyboard = "rd_key" + circuit = /obj/item/weapon/circuitboard/computer/mech_bay_power_console + var/obj/machinery/mech_bay_recharge_port/recharge_port + +/obj/machinery/computer/mech_bay_power_console/attack_ai(mob/user) + return interact(user) + +/obj/machinery/computer/mech_bay_power_console/attack_hand(mob/user) + if(..()) + return + interact(user) + +/obj/machinery/computer/mech_bay_power_console/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/ui_state/state = default_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "mech_bay_power_console", "Mech Bay Power Control Console", 400, 170, master_ui, state) + ui.open() + +/obj/machinery/computer/mech_bay_power_console/ui_act(action, params) + if(..()) + return + switch(action) + if("reconnect") + reconnect() + . = TRUE + update_icon() + +/obj/machinery/computer/mech_bay_power_console/ui_data(mob/user) + var/list/data = list() + if(recharge_port && !qdeleted(recharge_port)) + data["recharge_port"] = list("mech" = null) + if(recharge_port.recharging_mech && !qdeleted(recharge_port.recharging_mech)) + data["recharge_port"]["mech"] = list("health" = recharge_port.recharging_mech.obj_integrity, "max_integrity" = recharge_port.recharging_mech.max_integrity, "cell" = null) + if(recharge_port.recharging_mech.cell && !qdeleted(recharge_port.recharging_mech.cell)) + data["recharge_port"]["mech"]["cell"] = list( + "critfail" = recharge_port.recharging_mech.cell.crit_fail, + "charge" = recharge_port.recharging_mech.cell.charge, + "maxcharge" = recharge_port.recharging_mech.cell.maxcharge + ) + return data + + +/obj/machinery/computer/mech_bay_power_console/proc/reconnect() + if(recharge_port) + return + recharge_port = locate(/obj/machinery/mech_bay_recharge_port) in range(1) + if(!recharge_port ) + for(var/D in cardinal) + var/turf/A = get_step(src, D) + A = get_step(A, D) + recharge_port = locate(/obj/machinery/mech_bay_recharge_port) in A + if(recharge_port) + break + if(recharge_port) + if(!recharge_port.recharge_console) + recharge_port.recharge_console = src + else + recharge_port = null + +/obj/machinery/computer/mech_bay_power_console/update_icon() + ..() + if(!recharge_port || !recharge_port.recharging_mech || !recharge_port.recharging_mech.cell || !(recharge_port.recharging_mech.cell.charge < recharge_port.recharging_mech.cell.maxcharge) || stat & (NOPOWER|BROKEN)) + return + add_overlay("recharge_comp_on") + +/obj/machinery/computer/mech_bay_power_console/initialize() + reconnect() diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm new file mode 100644 index 0000000..7ef2a72 --- /dev/null +++ b/code/game/mecha/mech_fabricator.dm @@ -0,0 +1,466 @@ +/obj/machinery/mecha_part_fabricator + icon = 'icons/obj/robotics.dmi' + icon_state = "fab-idle" + name = "exosuit fabricator" + desc = "Nothing is being built." + density = 1 + anchored = 1 + use_power = 1 + idle_power_usage = 20 + active_power_usage = 5000 + req_access = list(access_robotics) + var/time_coeff = 1 + var/component_coeff = 1 + var/datum/material_container/materials + var/datum/research/files + var/sync = 0 + var/part_set + var/datum/design/being_built + var/list/queue = list() + var/processing_queue = 0 + var/screen = "main" + var/temp + var/list/part_sets = list( + "Cyborg", + "Ripley", + "Firefighter", + "Odysseus", + "Gygax", + "Durand", + "H.O.N.K", + "Phazon", + "Exosuit Equipment", + "Cyborg Upgrade Modules", + "Misc" + ) + +/obj/machinery/mecha_part_fabricator/New() + ..() + files = new /datum/research(src) //Setup the research data holder. + materials = new(src, list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TITANIUM)) + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/mechfab(null) + B.apply_default_parts(src) + +/obj/item/weapon/circuitboard/machine/mechfab + name = "circuit board (Exosuit Fabricator)" + build_path = /obj/machinery/mecha_part_fabricator + origin_tech = "programming=2;engineering=2" + req_components = list( + /obj/item/weapon/stock_parts/matter_bin = 2, + /obj/item/weapon/stock_parts/manipulator = 1, + /obj/item/weapon/stock_parts/micro_laser = 1, + /obj/item/weapon/stock_parts/console_screen = 1) + +/obj/machinery/mecha_part_fabricator/RefreshParts() + var/T = 0 + + //maximum stocking amount (default 300000, 600000 at T4) + for(var/obj/item/weapon/stock_parts/matter_bin/M in component_parts) + T += M.rating + materials.max_amount = (200000 + (T*50000)) + + //resources adjustment coefficient (1 -> 0.85 -> 0.7 -> 0.55) + T = 1.15 + for(var/obj/item/weapon/stock_parts/micro_laser/Ma in component_parts) + T -= Ma.rating*0.15 + component_coeff = T + + //building time adjustment coefficient (1 -> 0.8 -> 0.6) + T = -1 + for(var/obj/item/weapon/stock_parts/manipulator/Ml in component_parts) + T += Ml.rating + time_coeff = round(initial(time_coeff) - (initial(time_coeff)*(T))/5,0.01) + + +/obj/machinery/mecha_part_fabricator/check_access(obj/item/weapon/card/id/I) + if(istype(I, /obj/item/device/pda)) + var/obj/item/device/pda/pda = I + I = pda.id + if(!istype(I) || !I.access) //not ID or no access + return 0 + for(var/req in req_access) + if(!(req in I.access)) //doesn't have this access + return 0 + return 1 + +/obj/machinery/mecha_part_fabricator/emag_act() + if(emagged) + return + + emagged = 0.5 + say("DB error \[Code 0x00F1\]") + sleep(10) + say("Attempting auto-repair...") + sleep(15) + say("User DB corrupted \[Code 0x00FA\]. Truncating data structure...") + sleep(30) + say("User DB truncated. Please contact your Nanotrasen system operator for future assistance.") + req_access = null + emagged = 1 + +/obj/machinery/mecha_part_fabricator/proc/output_parts_list(set_name) + var/output = "" + for(var/v in files.known_designs) + var/datum/design/D = files.known_designs[v] + if(D.build_type & MECHFAB) + if(!(set_name in D.category)) + continue + output += "
            [output_part_info(D)]
            \[" + if(check_resources(D)) + output += "Build | " + output += "Add to queue\]\[?\]
            " + return output + +/obj/machinery/mecha_part_fabricator/proc/output_part_info(datum/design/D) + var/output = "[initial(D.name)] (Cost: [output_part_cost(D)]) [get_construction_time_w_coeff(D)/10]sec" + return output + +/obj/machinery/mecha_part_fabricator/proc/output_part_cost(datum/design/D) + var/i = 0 + var/output + for(var/c in D.materials) + output += "[i?" | ":null][get_resource_cost_w_coeff(D, c)] [material2name(c)]" + i++ + return output + +/obj/machinery/mecha_part_fabricator/proc/output_available_resources() + var/output + for(var/mat_id in materials.materials) + var/datum/material/M = materials.materials[mat_id] + output += "[M.name]: [M.amount] cm³" + if(M.amount >= MINERAL_MATERIAL_AMOUNT) + output += "- Remove \[1\]" + if(M.amount >= (MINERAL_MATERIAL_AMOUNT * 10)) + output += " | \[10\]" + output += " | \[All\]" + output += "
            " + return output + +/obj/machinery/mecha_part_fabricator/proc/get_resources_w_coeff(datum/design/D) + var/list/resources = list() + for(var/R in D.materials) + resources[R] = get_resource_cost_w_coeff(D, R) + return resources + +/obj/machinery/mecha_part_fabricator/proc/check_resources(datum/design/D) + if(D.reagents_list.len) // No reagents storage - no reagent designs. + return 0 + if(materials.has_materials(get_resources_w_coeff(D))) + return 1 + return 0 + +/obj/machinery/mecha_part_fabricator/proc/build_part(datum/design/D) + being_built = D + desc = "It's building \a [initial(D.name)]." + var/list/res_coef = get_resources_w_coeff(D) + + materials.use_amount(res_coef) + add_overlay("fab-active") + use_power = 2 + updateUsrDialog() + sleep(get_construction_time_w_coeff(D)) + use_power = 1 + overlays -= "fab-active" + desc = initial(desc) + + var/location = get_step(src,(dir)) + var/obj/item/I = new D.build_path(location) + I.materials = res_coef + say("\The [I] is complete.") + being_built = null + + updateUsrDialog() + return 1 + +/obj/machinery/mecha_part_fabricator/proc/update_queue_on_page() + send_byjax(usr,"mecha_fabricator.browser","queue",list_queue()) + return + +/obj/machinery/mecha_part_fabricator/proc/add_part_set_to_queue(set_name) + if(set_name in part_sets) + for(var/v in files.known_designs) + var/datum/design/D = files.known_designs[v] + if(D.build_type & MECHFAB) + if(set_name in D.category) + add_to_queue(D) + +/obj/machinery/mecha_part_fabricator/proc/add_to_queue(D) + if(!istype(queue)) + queue = list() + if(D) + queue[++queue.len] = D + return queue.len + +/obj/machinery/mecha_part_fabricator/proc/remove_from_queue(index) + if(!isnum(index) || !IsInteger(index) || !istype(queue) || (index<1 || index>queue.len)) + return 0 + queue.Cut(index,++index) + return 1 + +/obj/machinery/mecha_part_fabricator/proc/process_queue() + var/datum/design/D = queue[1] + if(!D) + remove_from_queue(1) + if(queue.len) + return process_queue() + else + return + temp = null + while(D) + if(stat&(NOPOWER|BROKEN)) + return 0 + if(!check_resources(D)) + say("Not enough resources. Queue processing stopped.") + temp = {"Not enough resources to build next part.
            + Try again | Return"} + return 0 + remove_from_queue(1) + build_part(D) + D = listgetindex(queue, 1) + say("Queue processing finished successfully.") + +/obj/machinery/mecha_part_fabricator/proc/list_queue() + var/output = "Queue contains:" + if(!istype(queue) || !queue.len) + output += "
            Nothing" + else + output += "
              " + var/i = 0 + for(var/datum/design/D in queue) + i++ + var/obj/part = D.build_path + output += "" + output += initial(part.name) + " - " + output += "[i>1?"":null] " + output += "[i↓":null] " + output += "Remove" + + output += "
            " + output += "\[Process queue | Clear queue\]" + return output + +/obj/machinery/mecha_part_fabricator/proc/sync() + temp = "Updating local R&D database..." + updateUsrDialog() + sleep(30) //only sleep if called by user + + for(var/obj/machinery/computer/rdconsole/RDC in oview(5,src)) + if(!RDC.sync) + continue + for(var/v in RDC.files.known_tech) + var/datum/tech/T = RDC.files.known_tech[v] + files.AddTech2Known(T) + for(var/v in RDC.files.known_designs) + var/datum/design/D = RDC.files.known_designs[v] + files.AddDesign2Known(D) + files.RefreshResearch() + temp = "Processed equipment designs.
            " + //check if the tech coefficients have changed + temp += "Return" + + updateUsrDialog() + say("Successfully synchronized with R&D server.") + return + + temp = "Unable to connect to local R&D Database.
            Please check your connections and try again.
            Return" + updateUsrDialog() + return + +/obj/machinery/mecha_part_fabricator/proc/get_resource_cost_w_coeff(datum/design/D, resource, roundto = 1) + return round(D.materials[resource]*component_coeff, roundto) + +/obj/machinery/mecha_part_fabricator/proc/get_construction_time_w_coeff(datum/design/D, roundto = 1) //aran + return round(initial(D.construction_time)*time_coeff, roundto) + +/obj/machinery/mecha_part_fabricator/attack_hand(mob/user) + if(!(..())) + return interact(user) + +/obj/machinery/mecha_part_fabricator/interact(mob/user as mob) + var/dat, left_part + if (..()) + return + user.set_machine(src) + var/turf/exit = get_step(src,(dir)) + if(exit.density) + say("Error! Part outlet is obstructed.") + return + if(temp) + left_part = temp + else if(being_built) + var/obj/I = being_built.build_path + left_part = {"Building [initial(I.name)].
            + Please wait until completion...
            "} + else + switch(screen) + if("main") + left_part = output_available_resources()+"
            " + left_part += "Sync with R&D servers
            " + for(var/part_set in part_sets) + left_part += "[part_set] - \[Add all parts to queue\]
            " + if("parts") + left_part += output_parts_list(part_set) + left_part += "
            Return" + dat = {" + + [name] + + + + + + + + + +
            + [left_part] + + [list_queue()] +
            + + "} + user << browse(dat, "window=mecha_fabricator;size=1000x430") + onclose(user, "mecha_fabricator") + return + +/obj/machinery/mecha_part_fabricator/Topic(href, href_list) + if(..()) + return + var/datum/topic_input/filter = new /datum/topic_input(href,href_list) + if(href_list["part_set"]) + var/tpart_set = filter.getStr("part_set") + if(tpart_set) + if(tpart_set=="clear") + part_set = null + else + part_set = tpart_set + screen = "parts" + if(href_list["part"]) + var/T = filter.getStr("part") + for(var/v in files.known_designs) + var/datum/design/D = files.known_designs[v] + if(D.build_type & MECHFAB) + if(D.id == T) + if(!processing_queue) + build_part(D) + else + add_to_queue(D) + break + if(href_list["add_to_queue"]) + var/T = filter.getStr("add_to_queue") + for(var/v in files.known_designs) + var/datum/design/D = files.known_designs[v] + if(D.build_type & MECHFAB) + if(D.id == T) + add_to_queue(D) + break + return update_queue_on_page() + if(href_list["remove_from_queue"]) + remove_from_queue(filter.getNum("remove_from_queue")) + return update_queue_on_page() + if(href_list["partset_to_queue"]) + add_part_set_to_queue(filter.get("partset_to_queue")) + return update_queue_on_page() + if(href_list["process_queue"]) + spawn(0) + if(processing_queue || being_built) + return 0 + processing_queue = 1 + process_queue() + processing_queue = 0 + if(href_list["clear_temp"]) + temp = null + if(href_list["screen"]) + screen = href_list["screen"] + if(href_list["queue_move"] && href_list["index"]) + var/index = filter.getNum("index") + var/new_index = index + filter.getNum("queue_move") + if(isnum(index) && isnum(new_index) && IsInteger(index) && IsInteger(new_index)) + if(IsInRange(new_index,1,queue.len)) + queue.Swap(index,new_index) + return update_queue_on_page() + if(href_list["clear_queue"]) + queue = list() + return update_queue_on_page() + if(href_list["sync"]) + sync() + if(href_list["part_desc"]) + var/T = filter.getStr("part_desc") + for(var/v in files.known_designs) + var/datum/design/D = files.known_designs[v] + if(D.build_type & MECHFAB) + if(D.id == T) + var/obj/part = D.build_path + temp = {"

            [initial(part.name)] description:

            + [initial(part.desc)]
            + Return + "} + break + + if(href_list["remove_mat"] && href_list["material"]) + materials.retrieve_sheets(text2num(href_list["remove_mat"]), href_list["material"]) + + updateUsrDialog() + return + +/obj/machinery/mecha_part_fabricator/on_deconstruction() + materials.retrieve_all() + ..() + +/obj/machinery/mecha_part_fabricator/attackby(obj/item/W, mob/user, params) + if(default_deconstruction_screwdriver(user, "fab-o", "fab-idle", W)) + return 1 + + if(exchange_parts(user, W)) + return 1 + + if(default_deconstruction_crowbar(W)) + return 1 + + if(istype(W, /obj/item/stack/sheet)) + if(panel_open) + user << "You can't load [src] while it's opened!" + return 1 + if(being_built) + user << "\The [src] is currently processing! Please wait until completion." + return 1 + + var/material_amount = materials.get_item_material_amount(W) + if(!material_amount) + user << "This object does not contain sufficient amounts of materials to be accepted by [src]." + return 1 + if(!materials.has_space(material_amount)) + user << "\The [src] is full. Please remove some materials from [src] in order to insert more." + return 1 + if(!user.unEquip(W)) + user << "\The [W] is stuck to you and cannot be placed into [src]." + return 1 + + var/inserted = materials.insert_item(W) + if(inserted) + user << "You insert [inserted] sheet\s into [src]." + if(W && W.materials.len) + var/mat_overlay = "fab-load-[material2name(W.materials[1])]" + add_overlay(mat_overlay) + sleep(10) + overlays -= mat_overlay //No matter what the overlay shall still be deleted + + updateUsrDialog() + + else + return ..() + +/obj/machinery/mecha_part_fabricator/proc/material2name(ID) + return copytext(ID,2) diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm new file mode 100644 index 0000000..a87967c --- /dev/null +++ b/code/game/mecha/mecha.dm @@ -0,0 +1,1010 @@ +#define MECHA_INT_FIRE 1 +#define MECHA_INT_TEMP_CONTROL 2 +#define MECHA_INT_SHORT_CIRCUIT 4 +#define MECHA_INT_TANK_BREACH 8 +#define MECHA_INT_CONTROL_LOST 16 + +#define MELEE 1 +#define RANGED 2 + +#define FRONT_ARMOUR 1 +#define SIDE_ARMOUR 2 +#define BACK_ARMOUR 3 + + +/obj/mecha + name = "mecha" + desc = "Exosuit" + icon = 'icons/mecha/mecha.dmi' + density = 1 //Dense. To raise the heat. + opacity = 1 ///opaque. Menacing. + anchored = 1 //no pulling around. + resistance_flags = FIRE_PROOF | ACID_PROOF + layer = BELOW_MOB_LAYER//icon draw layer + infra_luminosity = 15 //byond implementation is bugged. + force = 5 + flags = HEAR + var/can_move = 1 + var/mob/living/carbon/occupant = null + var/step_in = 10 //make a step in step_in/10 sec. + var/dir_in = 2//What direction will the mech face when entered/powered on? Defaults to South. + var/step_energy_drain = 10 + obj_integrity = 300 //obj_integrity is health + max_integrity = 300 + var/deflect_chance = 10 //chance to deflect the incoming projectiles, hits, or lesser the effect of ex_act. + armor = list(melee = 20, bullet = 10, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 100) + var/list/facing_modifiers = list(FRONT_ARMOUR = 1.5, SIDE_ARMOUR = 1, BACK_ARMOUR = 0.5) + var/obj/item/weapon/stock_parts/cell/cell + var/state = 0 + var/cell_power_remaining = 1 // 0 - no power, 1 - 100% power in cell. Starts as 1 so putting any cell into empty mech doesn't deplete charge from it + var/list/log = new + var/last_message = 0 + var/add_req_access = 1 + var/maint_access = 0 + var/dna_lock//dna-locking the mech + var/list/proc_res = list() //stores proc owners, like proc_res["functionname"] = owner reference + var/datum/effect_system/spark_spread/spark_system = new + var/lights = 0 + var/lights_power = 6 + var/last_user_hud = 1 // used to show/hide the mecha hud while preserving previous preference + + + var/bumpsmash = 0 //Whether or not the mech destroys walls by running into it. + //inner atmos + var/use_internal_tank = 0 + var/internal_tank_valve = ONE_ATMOSPHERE + var/obj/machinery/portable_atmospherics/canister/internal_tank + var/datum/gas_mixture/cabin_air + var/obj/machinery/atmospherics/components/unary/portables_connector/connected_port = null + + var/obj/item/device/radio/radio = null + var/list/trackers = list() + + var/max_temperature = 25000 + var/internal_damage_threshold = 50 //health percentage below which internal damage is possible + var/internal_damage = 0 //contains bitflags + + var/list/operation_req_access = list()//required access level for mecha operation + var/list/internals_req_access = list(access_engine,access_robotics)//required access level to open cell compartment + + var/wreckage + + var/list/equipment = new + var/obj/item/mecha_parts/mecha_equipment/selected + var/max_equip = 3 + var/datum/events/events + + var/stepsound = 'sound/mecha/mechstep.ogg' + var/turnsound = 'sound/mecha/mechturn.ogg' + + var/melee_cooldown = 10 + var/melee_can_hit = 1 + + //Action datums + var/datum/action/innate/mecha/mech_eject/eject_action = new + var/datum/action/innate/mecha/mech_toggle_internals/internals_action = new + var/datum/action/innate/mecha/mech_cycle_equip/cycle_action = new + var/datum/action/innate/mecha/mech_toggle_lights/lights_action = new + var/datum/action/innate/mecha/mech_view_stats/stats_action = new + var/datum/action/innate/mecha/mech_toggle_thrusters/thrusters_action = new + var/datum/action/innate/mecha/mech_defence_mode/defense_action = new + var/datum/action/innate/mecha/mech_overload_mode/overload_action = new + var/datum/effect_system/smoke_spread/smoke_system = new //not an action, but trigged by one + var/datum/action/innate/mecha/mech_smoke/smoke_action = new + var/datum/action/innate/mecha/mech_zoom/zoom_action = new + var/datum/action/innate/mecha/mech_switch_damtype/switch_damtype_action = new + var/datum/action/innate/mecha/mech_toggle_phasing/phasing_action = new + var/datum/action/innate/mecha/strafe/strafing_action = new + + //Action vars + var/thrusters_active = FALSE + var/defence_mode = FALSE + var/defence_mode_deflect_chance = 35 + var/leg_overload_mode = FALSE + var/leg_overload_coeff = 100 + var/zoom_mode = FALSE + var/smoke = 5 + var/smoke_ready = 1 + var/smoke_cooldown = 100 + var/phasing = FALSE + var/phasing_energy_drain = 200 + var/phase_state = "" //icon_state when phasing + var/strafe = FALSE //If we are strafing + + var/occupant_sight_flags = 0 //sight flags to give to the occupant (e.g. mech mining scanner gives meson-like vision) + + hud_possible = list (DIAG_STAT_HUD, DIAG_BATT_HUD, DIAG_MECH_HUD) + + +/obj/mecha/New() + ..() + events = new + icon_state += "-open" + add_radio() + add_cabin() + add_airtank() + spark_system.set_up(2, 0, src) + spark_system.attach(src) + smoke_system.set_up(3, src) + smoke_system.attach(src) + add_cell() + START_PROCESSING(SSobj, src) + poi_list |= src + log_message("[src.name] created.") + mechas_list += src //global mech list + prepare_huds() + var/datum/atom_hud/data/diagnostic/diag_hud = huds[DATA_HUD_DIAGNOSTIC] + diag_hud.add_to_hud(src) + diag_hud_set_mechhealth() + diag_hud_set_mechcell() + diag_hud_set_mechstat() + + +/obj/mecha/Destroy() + go_out() + for(var/mob/M in src) //Let's just be ultra sure + if(isAI(M)) + M.gib() //AIs are loaded into the mech computer itself. When the mech dies, so does the AI. Forever. + else + M.forceMove(loc) + + if(prob(30)) + explosion(get_turf(loc), 0, 0, 1, 3) + + if(wreckage) + var/obj/structure/mecha_wreckage/WR = new wreckage(loc) + for(var/obj/item/mecha_parts/mecha_equipment/E in equipment) + if(E.salvageable && prob(30)) + WR.crowbar_salvage += E + E.detach(WR) //detaches from src into WR + E.equip_ready = 1 + else + E.detach(loc) + qdel(E) + if(cell) + WR.crowbar_salvage += cell + cell.forceMove(WR) + cell.charge = rand(0, cell.charge) + if(internal_tank) + WR.crowbar_salvage += internal_tank + internal_tank.forceMove(WR) + else + for(var/obj/item/mecha_parts/mecha_equipment/E in equipment) + E.detach(loc) + qdel(E) + if(cell) + qdel(cell) + if(internal_tank) + qdel(internal_tank) + STOP_PROCESSING(SSobj, src) + poi_list.Remove(src) + equipment.Cut() + cell = null + internal_tank = null + if(loc) + loc.assume_air(cabin_air) + air_update_turf() + else + qdel(cabin_air) + cabin_air = null + qdel(spark_system) + spark_system = null + qdel(smoke_system) + smoke_system = null + + mechas_list -= src //global mech list + return ..() + +//////////////////////// +////// Helpers ///////// +//////////////////////// + +/obj/mecha/proc/add_airtank() + internal_tank = new /obj/machinery/portable_atmospherics/canister/air(src) + return internal_tank + +/obj/mecha/proc/add_cell(var/obj/item/weapon/stock_parts/cell/C=null) + if(C) + C.forceMove(src) + cell = C + return + cell = new(src) + cell.charge = 15000 + cell.maxcharge = 15000 + +/obj/mecha/proc/add_cabin() + cabin_air = new + cabin_air.temperature = T20C + cabin_air.volume = 200 + cabin_air.assert_gases("o2","n2") + cabin_air.gases["o2"][MOLES] = O2STANDARD*cabin_air.volume/(R_IDEAL_GAS_EQUATION*cabin_air.temperature) + cabin_air.gases["n2"][MOLES] = N2STANDARD*cabin_air.volume/(R_IDEAL_GAS_EQUATION*cabin_air.temperature) + return cabin_air + +/obj/mecha/proc/add_radio() + radio = new(src) + radio.name = "[src] radio" + radio.icon = icon + radio.icon_state = icon_state + radio.subspace_transmission = 1 + +/obj/mecha/proc/can_use(mob/user) + if(user != occupant) + return 0 + if(user && ismob(user)) + if(!user.incapacitated()) + return 1 + return 0 + +//////////////////////////////////////////////////////////////////////////////// + +/obj/mecha/examine(mob/user) + ..() + var/integrity = obj_integrity*100/max_integrity + switch(integrity) + if(85 to 100) + user << "It's fully intact." + if(65 to 85) + user << "It's slightly damaged." + if(45 to 65) + user << "It's badly damaged." + if(25 to 45) + user << "It's heavily damaged." + else + user << "It's falling apart." + if(equipment && equipment.len) + user << "It's equipped with:" + for(var/obj/item/mecha_parts/mecha_equipment/ME in equipment) + user << "\icon[ME] [ME]" + +//processing internal damage, temperature, air regulation, alert updates, lights power use. +/obj/mecha/process() + var/internal_temp_regulation = 1 + + if(internal_damage) + if(internal_damage & MECHA_INT_FIRE) + if(!(internal_damage & MECHA_INT_TEMP_CONTROL) && prob(5)) + clearInternalDamage(MECHA_INT_FIRE) + if(internal_tank) + var/datum/gas_mixture/int_tank_air = internal_tank.return_air() + if(int_tank_air.return_pressure() > internal_tank.maximum_pressure && !(internal_damage & MECHA_INT_TANK_BREACH)) + setInternalDamage(MECHA_INT_TANK_BREACH) + if(int_tank_air && int_tank_air.return_volume() > 0) //heat the air_contents + int_tank_air.temperature = min(6000+T0C, int_tank_air.temperature+rand(10,15)) + if(cabin_air && cabin_air.return_volume()>0) + cabin_air.temperature = min(6000+T0C, cabin_air.return_temperature()+rand(10,15)) + if(cabin_air.return_temperature() > max_temperature/2) + take_damage(4/round(max_temperature/cabin_air.return_temperature(),0.1), BURN, 0, 0) + + if(internal_damage & MECHA_INT_TEMP_CONTROL) + internal_temp_regulation = 0 + + if(internal_damage & MECHA_INT_TANK_BREACH) //remove some air from internal tank + if(internal_tank) + var/datum/gas_mixture/int_tank_air = internal_tank.return_air() + var/datum/gas_mixture/leaked_gas = int_tank_air.remove_ratio(0.10) + if(loc) + loc.assume_air(leaked_gas) + air_update_turf() + else + qdel(leaked_gas) + + if(internal_damage & MECHA_INT_SHORT_CIRCUIT) + if(get_charge()) + spark_system.start() + cell.charge -= min(20,cell.charge) + cell.maxcharge -= min(20,cell.maxcharge) + + if(internal_temp_regulation) + if(cabin_air && cabin_air.return_volume() > 0) + var/delta = cabin_air.temperature - T20C + cabin_air.temperature -= max(-10, min(10, round(delta/4,0.1))) + + if(internal_tank) + var/datum/gas_mixture/tank_air = internal_tank.return_air() + + var/release_pressure = internal_tank_valve + var/cabin_pressure = cabin_air.return_pressure() + var/pressure_delta = min(release_pressure - cabin_pressure, (tank_air.return_pressure() - cabin_pressure)/2) + var/transfer_moles = 0 + if(pressure_delta > 0) //cabin pressure lower than release pressure + if(tank_air.return_temperature() > 0) + transfer_moles = pressure_delta*cabin_air.return_volume()/(cabin_air.return_temperature() * R_IDEAL_GAS_EQUATION) + var/datum/gas_mixture/removed = tank_air.remove(transfer_moles) + cabin_air.merge(removed) + else if(pressure_delta < 0) //cabin pressure higher than release pressure + var/datum/gas_mixture/t_air = return_air() + pressure_delta = cabin_pressure - release_pressure + if(t_air) + pressure_delta = min(cabin_pressure - t_air.return_pressure(), pressure_delta) + if(pressure_delta > 0) //if location pressure is lower than cabin pressure + transfer_moles = pressure_delta*cabin_air.return_volume()/(cabin_air.return_temperature() * R_IDEAL_GAS_EQUATION) + var/datum/gas_mixture/removed = cabin_air.remove(transfer_moles) + if(t_air) + t_air.merge(removed) + else //just delete the cabin gas, we're in space or some shit + qdel(removed) + + if(occupant) + if(cell) + var/cellcharge = cell.charge/cell.maxcharge + switch(cellcharge) + if(0.75 to INFINITY) + occupant.clear_alert("charge") + if(0.5 to 0.75) + occupant.throw_alert("charge",/obj/screen/alert/lowcell, 1) + if(0.25 to 0.5) + occupant.throw_alert("charge",/obj/screen/alert/lowcell, 2) + if(0.01 to 0.25) + occupant.throw_alert("charge",/obj/screen/alert/lowcell, 3) + else + occupant.throw_alert("charge",/obj/screen/alert/emptycell) + + var/integrity = obj_integrity/max_integrity*100 + switch(integrity) + if(30 to 45) + occupant.throw_alert("mech damage", /obj/screen/alert/low_mech_integrity, 1) + if(15 to 35) + occupant.throw_alert("mech damage", /obj/screen/alert/low_mech_integrity, 2) + if(-INFINITY to 15) + occupant.throw_alert("mech damage", /obj/screen/alert/low_mech_integrity, 3) + else + occupant.clear_alert("mech damage") + + if(occupant.loc != src) //something went wrong + occupant.clear_alert("charge") + occupant.clear_alert("mech damage") + RemoveActions(occupant, human_occupant=1) + occupant = null + + if(lights) + var/lights_energy_drain = 2 + use_power(lights_energy_drain) + +//Diagnostic HUD updates + diag_hud_set_mechhealth() + diag_hud_set_mechcell() + diag_hud_set_mechstat() + + +/obj/mecha/proc/drop_item()//Derpfix, but may be useful in future for engineering exosuits. + return + +/obj/mecha/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq, list/spans) + if(speaker == occupant) + if(radio.broadcasting) + radio.talk_into(speaker, text, , spans) + //flick speech bubble + var/list/speech_bubble_recipients = list() + for(var/mob/M in get_hearers_in_view(7,src)) + if(M.client) + speech_bubble_recipients.Add(M.client) + spawn(0) + flick_overlay(image('icons/mob/talk.dmi', src, "machine[say_test(raw_message)]",MOB_LAYER+1), speech_bubble_recipients, 30) + +//////////////////////////// +///// Action processing //// +//////////////////////////// + + +/obj/mecha/proc/click_action(atom/target,mob/user,params) + if(!occupant || occupant != user ) + return + if(!locate(/turf) in list(target,target.loc)) // Prevents inventory from being drilled + return + if(phasing) + occupant_message("Unable to interact with objects while phasing") + return + if(user.incapacitated()) + return + if(state) + occupant_message("Maintenance protocols in effect.") + return + if(!get_charge()) + return + if(src == target) + return + var/dir_to_target = get_dir(src,target) + if(dir_to_target && !(dir_to_target & dir))//wrong direction + return + if(internal_damage & MECHA_INT_CONTROL_LOST) + target = safepick(view(3,target)) + if(!target) + return + if(!target.Adjacent(src)) + if(selected && selected.is_ranged()) + if(selected.action(target,params)) + selected.start_cooldown() + else if(selected && selected.is_melee()) + if(selected.action(target,params)) + selected.start_cooldown() + else + if(internal_damage & MECHA_INT_CONTROL_LOST) + target = safepick(oview(1,src)) + if(!melee_can_hit || !istype(target, /atom)) + return + target.mech_melee_attack(src) + melee_can_hit = 0 + spawn(melee_cooldown) + melee_can_hit = 1 + + +/obj/mecha/proc/range_action(atom/target) + return + + +////////////////////////////////// +//////// Movement procs //////// +////////////////////////////////// + +/obj/mecha/Move(atom/newloc, direct) + . = ..() + if(.) + events.fireEvent("onMove",get_turf(src)) + +/obj/mecha/Process_Spacemove(var/movement_dir = 0) + . = ..() + if(.) + return 1 + if(thrusters_active && movement_dir && use_power(step_energy_drain)) + return 1 + + var/atom/movable/backup = get_spacemove_backup() + if(backup) + if(istype(backup) && movement_dir && !backup.anchored) + if(backup.newtonian_move(turn(movement_dir, 180))) + if(occupant) + occupant << "You push off of [backup] to propel yourself." + return 1 + +/obj/mecha/relaymove(mob/user,direction) + if(!direction) + return + if(user != occupant) //While not "realistic", this piece is player friendly. + user.forceMove(get_turf(src)) + user << "You climb out from [src]." + return 0 + if(connected_port) + if(world.time - last_message > 20) + occupant_message("Unable to move while connected to the air system port!") + last_message = world.time + return 0 + if(state) + occupant_message("Maintenance protocols in effect.") + return + return domove(direction) + +/obj/mecha/proc/domove(direction) + if(!can_move) + return 0 + if(!Process_Spacemove(direction)) + return 0 + if(!has_charge(step_energy_drain)) + return 0 + if(defence_mode) + if(world.time - last_message > 20) + occupant_message("Unable to move while in defence mode") + last_message = world.time + return 0 + if(zoom_mode) + if(world.time - last_message > 20) + occupant_message("Unable to move while in zoom mode.") + last_message = world.time + return 0 + + var/move_result = 0 + if(internal_damage & MECHA_INT_CONTROL_LOST) + move_result = mechsteprand() + else if(dir != direction && !strafe) + move_result = mechturn(direction) + else + move_result = mechstep(direction) + if(move_result) + use_power(step_energy_drain) + can_move = 0 + spawn(step_in) + can_move = 1 + return 1 + return 0 + + +/obj/mecha/proc/mechturn(direction) + setDir(direction) + if(turnsound) + playsound(src,turnsound,40,1) + return 1 + +/obj/mecha/proc/mechstep(direction) + var/current_dir = dir + var/result = step(src,direction) + if(strafe) + setDir(current_dir) + if(result && stepsound) + playsound(src,stepsound,40,1) + return result + +/obj/mecha/proc/mechsteprand() + var/result = step_rand(src) + if(result && stepsound) + playsound(src,stepsound,40,1) + return result + +/obj/mecha/Bump(var/atom/obstacle, yes) + if(phasing && get_charge() >= phasing_energy_drain && !throwing) + spawn() + if(can_move) + can_move = 0 + if(phase_state) + flick(phase_state, src) + forceMove(get_step(src,dir)) + use_power(phasing_energy_drain) + sleep(step_in*3) + can_move = 1 + else + if(yes) + if(..()) //mech was thrown + return + if(bumpsmash && occupant) //Need a pilot to push the PUNCH button. + obstacle.mech_melee_attack(src) + if(!obstacle || (obstacle && !obstacle.density)) + step(src,dir) + if(isobj(obstacle)) + var/obj/O = obstacle + if(!O.anchored) + step(obstacle, dir) + else if(istype(obstacle, /mob)) + step(obstacle, dir) + + + + + +/////////////////////////////////// +//////// Internal damage //////// +/////////////////////////////////// + +/obj/mecha/proc/check_for_internal_damage(list/possible_int_damage,ignore_threshold=null) + if(!islist(possible_int_damage) || isemptylist(possible_int_damage)) return + if(prob(20)) + if(ignore_threshold || obj_integrity*100/max_integrity < internal_damage_threshold) + for(var/T in possible_int_damage) + if(internal_damage & T) + possible_int_damage -= T + var/int_dam_flag = safepick(possible_int_damage) + if(int_dam_flag) + setInternalDamage(int_dam_flag) + if(prob(5)) + if(ignore_threshold || obj_integrity*100/max_integrity < internal_damage_threshold) + var/obj/item/mecha_parts/mecha_equipment/ME = safepick(equipment) + if(ME) + qdel(ME) + return + +/obj/mecha/proc/setInternalDamage(int_dam_flag) + internal_damage |= int_dam_flag + log_append_to_last("Internal damage of type [int_dam_flag].",1) + occupant << sound('sound/machines/warning-buzzer.ogg',wait=0) + diag_hud_set_mechstat() + return + +/obj/mecha/proc/clearInternalDamage(int_dam_flag) + if(internal_damage & int_dam_flag) + switch(int_dam_flag) + if(MECHA_INT_TEMP_CONTROL) + occupant_message("Life support system reactivated.") + if(MECHA_INT_FIRE) + occupant_message("Internal fire extinquished.") + if(MECHA_INT_TANK_BREACH) + occupant_message("Damaged internal tank has been sealed.") + internal_damage &= ~int_dam_flag + diag_hud_set_mechstat() + +///////////////////////////////////// +//////////// AI piloting //////////// +///////////////////////////////////// + +/obj/mecha/attack_ai(mob/living/silicon/ai/user) + if(!isAI(user)) + return + //Allows the Malf to scan a mech's status and loadout, helping it to decide if it is a worthy chariot. + if(user.can_dominate_mechs) + examine(user) //Get diagnostic information! + for(var/obj/item/mecha_parts/mecha_tracking/B in trackers) + user << "Warning: Tracking Beacon detected. Enter at your own risk. Beacon Data:" + user << "[B.get_mecha_info()]" + break + //Nothing like a big, red link to make the player feel powerful! + user << "ASSUME DIRECT CONTROL?
            " + +/obj/mecha/transfer_ai(interaction, mob/user, mob/living/silicon/ai/AI, obj/item/device/aicard/card) + if(!..()) + return + + //Transfer from core or card to mech. Proc is called by mech. + switch(interaction) + if(AI_TRANS_TO_CARD) //Upload AI from mech to AI card. + if(!state) //Mech must be in maint mode to allow carding. + user << "[name] must have maintenance protocols active in order to allow a transfer." + return + AI = occupant + if(!AI || !isAI(occupant)) //Mech does not have an AI for a pilot + user << "No AI detected in the [name] onboard computer." + return + if(AI.mind.special_role) //Malf AIs cannot leave mechs. Except through death. + user << "ACCESS DENIED." + return + AI.ai_restore_power()//So the AI initially has power. + AI.control_disabled = 1 + AI.radio_enabled = 0 + AI.forceMove(card) + card.AI = AI + occupant = null + AI.controlled_mech = null + AI.remote_control = null + icon_state = initial(icon_state)+"-open" + AI << "You have been downloaded to a mobile storage device. Wireless connection offline." + user << "Transfer successful: [AI.name] ([rand(1000,9999)].exe) removed from [name] and stored within local memory." + + if(AI_MECH_HACK) //Called by Malf AI mob on the mech. + new /obj/structure/AIcore/deactivated(AI.loc) + if(occupant) //Oh, I am sorry, were you using that? + AI << "Pilot detected! Forced ejection initiated!" + occupant << "You have been forcibly ejected!" + go_out(1) //IT IS MINE, NOW. SUCK IT, RD! + ai_enter_mech(AI, interaction) + + if(AI_TRANS_FROM_CARD) //Using an AI card to upload to a mech. + AI = card.AI + if(!AI) + user << "There is no AI currently installed on this device." + return + else if(AI.stat || !AI.client) + user << "[AI.name] is currently unresponsive, and cannot be uploaded." + return + else if(occupant || dna_lock) //Normal AIs cannot steal mechs! + user << "Access denied. [name] is [occupant ? "currently occupied" : "secured with a DNA lock"]." + return + AI.control_disabled = 0 + AI.radio_enabled = 1 + user << "Transfer successful: [AI.name] ([rand(1000,9999)].exe) installed and executed successfully. Local copy has been removed." + card.AI = null + ai_enter_mech(AI, interaction) + +//Hack and From Card interactions share some code, so leave that here for both to use. +/obj/mecha/proc/ai_enter_mech(mob/living/silicon/ai/AI, interaction) + AI.ai_restore_power() + AI.forceMove(src) + occupant = AI + icon_state = initial(icon_state) + playsound(src, 'sound/machines/windowdoor.ogg', 50, 1) + if(!internal_damage) + occupant << sound('sound/mecha/nominal.ogg',volume=50) + AI.cancel_camera() + AI.controlled_mech = src + AI.remote_control = src + AI.canmove = 1 //Much easier than adding AI checks! Be sure to set this back to 0 if you decide to allow an AI to leave a mech somehow. + AI.can_shunt = 0 //ONE AI ENTERS. NO AI LEAVES. + AI << "[interaction == AI_MECH_HACK ? "Takeover of [name] complete! You are now permanently loaded onto the onboard computer. Do not attempt to leave the station sector!" \ + : "You have been uploaded to a mech's onboard computer."]" + AI << "Use Middle-Mouse to activate mech functions and equipment. Click normally for AI interactions." + GrantActions(AI) + + +//An actual AI (simple_animal mecha pilot) entering the mech +/obj/mecha/proc/aimob_enter_mech(mob/living/simple_animal/hostile/syndicate/mecha_pilot/pilot_mob) + if(pilot_mob && pilot_mob.Adjacent(src)) + if(occupant) + return + icon_state = initial(icon_state) + occupant = pilot_mob + pilot_mob.mecha = src + pilot_mob.loc = src + GrantActions(pilot_mob)//needed for checks, and incase a badmin puts somebody in the mob + +/obj/mecha/proc/aimob_exit_mech(mob/living/simple_animal/hostile/syndicate/mecha_pilot/pilot_mob) + if(occupant == pilot_mob) + occupant = null + if(pilot_mob.mecha == src) + pilot_mob.mecha = null + icon_state = "[initial(icon_state)]-open" + pilot_mob.forceMove(get_turf(src)) + RemoveActions(pilot_mob) + + +///////////////////////////////////// +//////// Atmospheric stuff //////// +///////////////////////////////////// + +/obj/mecha/remove_air(amount) + if(use_internal_tank) + return cabin_air.remove(amount) + return ..() + +/obj/mecha/return_air() + if(use_internal_tank) + return cabin_air + return ..() + +/obj/mecha/proc/return_pressure() + var/datum/gas_mixture/t_air = return_air() + if(t_air) + . = t_air.return_pressure() + return + + +/obj/mecha/proc/return_temperature() + var/datum/gas_mixture/t_air = return_air() + if(t_air) + . = t_air.return_temperature() + return + +/obj/mecha/proc/connect(obj/machinery/atmospherics/components/unary/portables_connector/new_port) + //Make sure not already connected to something else + if(connected_port || !new_port || new_port.connected_device) + return 0 + + //Make sure are close enough for a valid connection + if(new_port.loc != loc) + return 0 + + //Perform the connection + connected_port = new_port + connected_port.connected_device = src + var/datum/pipeline/connected_port_parent = connected_port.PARENT1 + connected_port_parent.reconcile_air() + + log_message("Connected to gas port.") + return 1 + +/obj/mecha/proc/disconnect() + if(!connected_port) + return 0 + + connected_port.connected_device = null + connected_port = null + log_message("Disconnected from gas port.") + return 1 + +/obj/mecha/portableConnectorReturnAir() + return internal_tank.return_air() + + +/obj/mecha/MouseDrop_T(mob/M, mob/user) + if (!user.canUseTopic(src) || (user != M)) + return + if(!ishuman(user)) // no silicons or drones in mechas. + return + log_message("[user] tries to move in.") + if (occupant) + usr << "The [name] is already occupied!" + log_append_to_last("Permission denied.") + return + var/passed + if(dna_lock) + if(user.has_dna()) + var/mob/living/carbon/C = user + if(C.dna.unique_enzymes==dna_lock) + passed = 1 + else if(operation_allowed(user)) + passed = 1 + if(!passed) + user << "Access denied." + log_append_to_last("Permission denied.") + return + if(user.buckled) + user << "You are currently buckled and cannot move." + log_append_to_last("Permission denied.") + return + if(user.has_buckled_mobs()) //mob attached to us + user << "You can't enter the exosuit with other creatures attached to you!" + return + + visible_message("[user] starts to climb into [name].") + + if(do_after(user, 40, target = src)) + if(obj_integrity <= 0) + user << "You cannot get in the [name], it has been destroyed!" + else if(occupant) + user << "[occupant] was faster! Try better next time, loser." + else if(user.buckled) + user << "You can't enter the exosuit while buckled." + else if(user.has_buckled_mobs()) + user << "You can't enter the exosuit with other creatures attached to you!" + else + moved_inside(user) + else + user << "You stop entering the exosuit!" + return + +/obj/mecha/proc/moved_inside(mob/living/carbon/human/H) + if(H && H.client && H in range(1)) + occupant = H + H.forceMove(src) + add_fingerprint(H) + GrantActions(H, human_occupant=1) + forceMove(loc) + log_append_to_last("[H] moved in as pilot.") + icon_state = initial(icon_state) + setDir(dir_in) + playsound(src, 'sound/machines/windowdoor.ogg', 50, 1) + if(!internal_damage) + occupant << sound('sound/mecha/nominal.ogg',volume=50) + return 1 + else + return 0 + +/obj/mecha/proc/mmi_move_inside(obj/item/device/mmi/mmi_as_oc,mob/user) + if(!mmi_as_oc.brainmob || !mmi_as_oc.brainmob.client) + user << "Consciousness matrix not detected!" + return 0 + else if(mmi_as_oc.brainmob.stat) + user << "Beta-rhythm below acceptable level!" + return 0 + else if(occupant) + user << "Occupant detected!" + return 0 + else if(dna_lock && (!mmi_as_oc.brainmob.stored_dna || dna_lock!=mmi_as_oc.brainmob.stored_dna.unique_enzymes)) + user << "Access denied. [name] is secured with a DNA lock." + return 0 + + visible_message("[user] starts to insert an MMI into [name].") + + if(do_after(user, 40, target = src)) + if(!occupant) + return mmi_moved_inside(mmi_as_oc,user) + else + user << "Occupant detected!" + else + user << "You stop inserting the MMI." + return 0 + +/obj/mecha/proc/mmi_moved_inside(obj/item/device/mmi/mmi_as_oc,mob/user) + if(mmi_as_oc && user in range(1)) + if(!mmi_as_oc.brainmob || !mmi_as_oc.brainmob.client) + user << "Consciousness matrix not detected!" + return 0 + else if(mmi_as_oc.brainmob.stat) + user << "Beta-rhythm below acceptable level!" + return 0 + if(!user.unEquip(mmi_as_oc)) + user << "\the [mmi_as_oc] is stuck to your hand, you cannot put it in \the [src]!" + return + var/mob/brainmob = mmi_as_oc.brainmob + occupant = brainmob + brainmob.loc = src //should allow relaymove + brainmob.reset_perspective(src) + brainmob.canmove = 1 + mmi_as_oc.loc = src + mmi_as_oc.mecha = src + icon_state = initial(icon_state) + setDir(dir_in) + log_message("[mmi_as_oc] moved in as pilot.") + if(!internal_damage) + occupant << sound('sound/mecha/nominal.ogg',volume=50) + GrantActions(brainmob) + return 1 + else + return 0 + +/obj/mecha/container_resist() + go_out() + + +/obj/mecha/Exited(atom/movable/M, atom/newloc) + if(occupant && occupant == M) // The occupant exited the mech without calling go_out() + go_out(1, newloc) + +/obj/mecha/proc/go_out(var/forced, var/atom/newloc = loc) + if(!occupant) + return + var/atom/movable/mob_container + occupant.clear_alert("charge") + occupant.clear_alert("mech damage") + if(ishuman(occupant)) + mob_container = occupant + RemoveActions(occupant, human_occupant=1) + else if(istype(occupant, /mob/living/brain)) + var/mob/living/brain/brain = occupant + RemoveActions(brain) + mob_container = brain.container + else if(isAI(occupant) && forced) //This should only happen if there are multiple AIs in a round, and at least one is Malf. + RemoveActions(occupant) + occupant.gib() //If one Malf decides to steal a mech from another AI (even other Malfs!), they are destroyed, as they have nowhere to go when replaced. + occupant = null + return + else + return + var/mob/living/L = occupant + occupant = null //we need it null when forceMove calls Exited(). + if(mob_container.forceMove(newloc))//ejecting mob container + log_message("[mob_container] moved out.") + L << browse(null, "window=exosuit") + + if(istype(mob_container, /obj/item/device/mmi)) + var/obj/item/device/mmi/mmi = mob_container + if(mmi.brainmob) + L.loc = mmi + L.reset_perspective() + mmi.mecha = null + mmi.update_icon() + L.canmove = 0 + icon_state = initial(icon_state)+"-open" + setDir(dir_in) + + if(L && L.client) + L.client.view = world.view + zoom_mode = 0 + +///////////////////////// +////// Access stuff ///// +///////////////////////// + +/obj/mecha/proc/operation_allowed(mob/M) + req_access = operation_req_access + req_one_access = list() + return allowed(M) + +/obj/mecha/proc/internals_access_allowed(mob/M) + req_one_access = internals_req_access + req_access = list() + return allowed(M) + + + +//////////////////////////////// +/////// Messages and Log /////// +//////////////////////////////// + +/obj/mecha/proc/occupant_message(message as text) + if(message) + if(occupant && occupant.client) + occupant << "\icon[src] [message]" + return + +/obj/mecha/proc/log_message(message as text,red=null) + log.len++ + log[log.len] = list("time"="[worldtime2text()]","date","year"="[year_integer+540]","message"="[red?"":null][message][red?"":null]") + return log.len + +/obj/mecha/proc/log_append_to_last(message as text,red=null) + var/list/last_entry = log[log.len] + last_entry["message"] += "
            [red?"":null][message][red?"":null]" + return + +var/year = time2text(world.realtime,"YYYY") +var/year_integer = text2num(year) // = 2013??? + +/////////////////////// +///// Power stuff ///// +/////////////////////// + +/obj/mecha/proc/has_charge(amount) + return (get_charge()>=amount) + +/obj/mecha/proc/get_charge() + for(var/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay/R in equipment) + var/relay_charge = R.get_charge() + if(relay_charge) + return relay_charge + if(cell) + return max(0, cell.charge) + +/obj/mecha/proc/use_power(amount) + if(get_charge()) + cell.use(amount) + return 1 + return 0 + +/obj/mecha/proc/give_power(amount) + if(!isnull(get_charge())) + cell.give(amount) + return 1 + return 0 + +/obj/mecha/allow_drop() + return 0 + +/obj/mecha/update_remote_sight(mob/living/user) + if(occupant_sight_flags) + if(user == occupant) + user.sight |= occupant_sight_flags diff --git a/code/game/mecha/mecha_actions.dm b/code/game/mecha/mecha_actions.dm new file mode 100644 index 0000000..8698011 --- /dev/null +++ b/code/game/mecha/mecha_actions.dm @@ -0,0 +1,281 @@ +//////////////////////////////////////// Action Buttons /////////////////////////////////////////////// + +/obj/mecha/proc/GrantActions(mob/living/user, human_occupant = 0) + if(human_occupant) + eject_action.Grant(user, src) + internals_action.Grant(user, src) + cycle_action.Grant(user, src) + lights_action.Grant(user, src) + stats_action.Grant(user, src) + strafing_action.Grant(user, src) + + +/obj/mecha/proc/RemoveActions(mob/living/user, human_occupant = 0) + if(human_occupant) + eject_action.Remove(user) + internals_action.Remove(user) + cycle_action.Remove(user) + lights_action.Remove(user) + stats_action.Remove(user) + strafing_action.Remove(user) + + +/datum/action/innate/mecha + check_flags = AB_CHECK_RESTRAINED | AB_CHECK_STUNNED | AB_CHECK_CONSCIOUS + var/obj/mecha/chassis + +/datum/action/innate/mecha/Grant(mob/living/L, obj/mecha/M) + chassis = M + ..() + +/datum/action/innate/mecha/Destroy() + chassis = null + return ..() + +/datum/action/innate/mecha/mech_eject + name = "Eject From Mech" + button_icon_state = "mech_eject" + +/datum/action/innate/mecha/mech_eject/Activate() + if(!owner || !iscarbon(owner)) + return + if(!chassis || chassis.occupant != owner) + return + chassis.go_out() + + +/datum/action/innate/mecha/mech_toggle_internals + name = "Toggle Internal Airtank Usage" + button_icon_state = "mech_internals_off" + +/datum/action/innate/mecha/mech_toggle_internals/Activate() + if(!owner || !chassis || chassis.occupant != owner) + return + chassis.use_internal_tank = !chassis.use_internal_tank + button_icon_state = "mech_internals_[chassis.use_internal_tank ? "on" : "off"]" + chassis.occupant_message("Now taking air from [chassis.use_internal_tank?"internal airtank":"environment"].") + chassis.log_message("Now taking air from [chassis.use_internal_tank?"internal airtank":"environment"].") + UpdateButtonIcon() + +/datum/action/innate/mecha/mech_cycle_equip + name = "Cycle Equipment" + button_icon_state = "mech_cycle_equip_off" + +/datum/action/innate/mecha/mech_cycle_equip/Activate() + if(!owner || !chassis || chassis.occupant != owner) + return + + var/list/available_equipment = list() + for(var/obj/item/mecha_parts/mecha_equipment/M in chassis.equipment) + if(M.selectable) + available_equipment += M + + if(available_equipment.len == 0) + chassis.occupant_message("No equipment available.") + return + if(!chassis.selected) + chassis.selected = available_equipment[1] + chassis.occupant_message("You select [chassis.selected]") + send_byjax(chassis.occupant,"exosuit.browser","eq_list",chassis.get_equipment_list()) + button_icon_state = "mech_cycle_equip_on" + UpdateButtonIcon() + return + var/number = 0 + for(var/A in available_equipment) + number++ + if(A == chassis.selected) + if(available_equipment.len == number) + chassis.selected = null + chassis.occupant_message("You switch to no equipment") + button_icon_state = "mech_cycle_equip_off" + else + chassis.selected = available_equipment[number+1] + chassis.occupant_message("You switch to [chassis.selected]") + button_icon_state = "mech_cycle_equip_on" + send_byjax(chassis.occupant,"exosuit.browser","eq_list",chassis.get_equipment_list()) + UpdateButtonIcon() + return + + +/datum/action/innate/mecha/mech_toggle_lights + name = "Toggle Lights" + button_icon_state = "mech_lights_off" + +/datum/action/innate/mecha/mech_toggle_lights/Activate() + if(!owner || !chassis || chassis.occupant != owner) + return + chassis.lights = !chassis.lights + if(chassis.lights) + chassis.AddLuminosity(chassis.lights_power) + button_icon_state = "mech_lights_on" + else + chassis.AddLuminosity(-chassis.lights_power) + button_icon_state = "mech_lights_off" + chassis.occupant_message("Toggled lights [chassis.lights?"on":"off"].") + chassis.log_message("Toggled lights [chassis.lights?"on":"off"].") + UpdateButtonIcon() + +/datum/action/innate/mecha/mech_view_stats + name = "View Stats" + button_icon_state = "mech_view_stats" + +/datum/action/innate/mecha/mech_view_stats/Activate() + if(!owner || !chassis || chassis.occupant != owner) + return + chassis.occupant << browse(chassis.get_stats_html(), "window=exosuit") + + +/datum/action/innate/mecha/strafe + name = "Toggle Strafing" + button_icon_state = "strafe" + +/datum/action/innate/mecha/strafe/Activate() + if(!owner || !chassis || chassis.occupant != owner) + return + + chassis.toggle_strafe() + +/obj/mecha/AltClick(mob/living/user) + if(user == occupant) + toggle_strafe() + +/obj/mecha/proc/toggle_strafe() + strafe = !strafe + + occupant_message("Toggled strafing mode [strafe?"on":"off"].") + log_message("Toggled strafing mode [strafe?"on":"off"].") + strafing_action.UpdateButtonIcon() + +//////////////////////////////////////// Specific Ability Actions /////////////////////////////////////////////// +//Need to be granted by the mech type, Not default abilities. + +/datum/action/innate/mecha/mech_toggle_thrusters + name = "Toggle Thrusters" + button_icon_state = "mech_thrusters_off" + +/datum/action/innate/mecha/mech_toggle_thrusters/Activate() + if(!owner || !chassis || chassis.occupant != owner) + return + if(chassis.get_charge() > 0) + chassis.thrusters_active = !chassis.thrusters_active + button_icon_state = "mech_thrusters_[chassis.thrusters_active ? "on" : "off"]" + chassis.log_message("Toggled thrusters.") + chassis.occupant_message("Thrusters [chassis.thrusters_active ?"en":"dis"]abled.") + + +/datum/action/innate/mecha/mech_defence_mode + name = "Toggle Defence Mode" + button_icon_state = "mech_defense_mode_off" + +/datum/action/innate/mecha/mech_defence_mode/Activate(forced_state = null) + if(!owner || !chassis || chassis.occupant != owner) + return + if(!isnull(forced_state)) + chassis.defence_mode = forced_state + else + chassis.defence_mode = !chassis.defence_mode + button_icon_state = "mech_defense_mode_[chassis.defence_mode ? "on" : "off"]" + if(chassis.defence_mode) + chassis.deflect_chance = chassis.defence_mode_deflect_chance + chassis.occupant_message("You enable [chassis] defence mode.") + else + chassis.deflect_chance = initial(chassis.deflect_chance) + chassis.occupant_message("You disable [chassis] defence mode.") + chassis.log_message("Toggled defence mode.") + UpdateButtonIcon() + +/datum/action/innate/mecha/mech_overload_mode + name = "Toggle leg actuators overload" + button_icon_state = "mech_overload_off" + +/datum/action/innate/mecha/mech_overload_mode/Activate(forced_state = null) + if(!owner || !chassis || chassis.occupant != owner) + return + if(!isnull(forced_state)) + chassis.leg_overload_mode = forced_state + else + chassis.leg_overload_mode = !chassis.leg_overload_mode + button_icon_state = "mech_overload_[chassis.leg_overload_mode ? "on" : "off"]" + chassis.log_message("Toggled leg actuators overload.") + if(chassis.leg_overload_mode) + chassis.leg_overload_mode = 1 + chassis.bumpsmash = 1 + chassis.step_in = min(1, round(chassis.step_in/2)) + chassis.step_energy_drain = chassis.step_energy_drain*chassis.leg_overload_coeff + chassis.occupant_message("You enable leg actuators overload.") + else + chassis.leg_overload_mode = 0 + chassis.bumpsmash = 0 + chassis.step_in = initial(chassis.step_in) + chassis.step_energy_drain = initial(chassis.step_energy_drain) + chassis.occupant_message("You disable leg actuators overload.") + UpdateButtonIcon() + +/datum/action/innate/mecha/mech_smoke + name = "Smoke" + button_icon_state = "mech_smoke" + +/datum/action/innate/mecha/mech_smoke/Activate() + if(!owner || !chassis || chassis.occupant != owner) + return + if(chassis.smoke_ready && chassis.smoke>0) + chassis.smoke_system.start() + chassis.smoke-- + chassis.smoke_ready = 0 + spawn(chassis.smoke_cooldown) + chassis.smoke_ready = 1 + + +/datum/action/innate/mecha/mech_zoom + name = "Zoom" + button_icon_state = "mech_zoom_off" + +/datum/action/innate/mecha/mech_zoom/Activate() + if(!owner || !chassis || chassis.occupant != owner) + return + if(owner.client) + chassis.zoom_mode = !chassis.zoom_mode + button_icon_state = "mech_zoom_[chassis.zoom_mode ? "on" : "off"]" + chassis.log_message("Toggled zoom mode.") + chassis.occupant_message("Zoom mode [chassis.zoom_mode?"en":"dis"]abled.") + if(chassis.zoom_mode) + owner.client.view = 12 + owner << sound('sound/mecha/imag_enh.ogg',volume=50) + else + owner.client.view = world.view//world.view - default mob view size + UpdateButtonIcon() + +/datum/action/innate/mecha/mech_switch_damtype + name = "Reconfigure arm microtool arrays" + button_icon_state = "mech_damtype_brute" + +/datum/action/innate/mecha/mech_switch_damtype/Activate() + if(!owner || !chassis || chassis.occupant != owner) + return + var/new_damtype + switch(chassis.damtype) + if("tox") + new_damtype = "brute" + chassis.occupant_message("Your exosuit's hands form into fists.") + if("brute") + new_damtype = "fire" + chassis.occupant_message("A torch tip extends from your exosuit's hand, glowing red.") + if("fire") + new_damtype = "tox" + chassis.occupant_message("A bone-chillingly thick plasteel needle protracts from the exosuit's palm.") + chassis.damtype = new_damtype. + button_icon_state = "mech_damtype_[new_damtype]" + playsound(src, 'sound/mecha/mechmove01.ogg', 50, 1) + UpdateButtonIcon() + +/datum/action/innate/mecha/mech_toggle_phasing + name = "Toggle Phasing" + button_icon_state = "mech_phasing_off" + +/datum/action/innate/mecha/mech_toggle_phasing/Activate() + if(!owner || !chassis || chassis.occupant != owner) + return + chassis.phasing = !chassis.phasing + button_icon_state = "mech_phasing_[chassis.phasing ? "on" : "off"]" + chassis.occupant_message("En":"#f00\">Dis"]abled phasing.") + UpdateButtonIcon() diff --git a/code/game/mecha/mecha_construction_paths.dm b/code/game/mecha/mecha_construction_paths.dm new file mode 100644 index 0000000..fc83502 --- /dev/null +++ b/code/game/mecha/mecha_construction_paths.dm @@ -0,0 +1,1696 @@ +//////////////////////////////// +///// Construction datums ////// +//////////////////////////////// + +/datum/construction/mecha/custom_action(step, atom/used_atom, mob/user) + if(istype(used_atom, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/W = used_atom + if (W.remove_fuel(0, user)) + playsound(holder, 'sound/items/Welder2.ogg', 50, 1) + else + return 0 + else if(istype(used_atom, /obj/item/weapon/wrench)) + playsound(holder, 'sound/items/Ratchet.ogg', 50, 1) + + else if(istype(used_atom, /obj/item/weapon/screwdriver)) + playsound(holder, 'sound/items/Screwdriver.ogg', 50, 1) + + else if(istype(used_atom, /obj/item/weapon/wirecutters)) + playsound(holder, 'sound/items/Wirecutter.ogg', 50, 1) + + else if(istype(used_atom, /obj/item/stack/cable_coil)) + var/obj/item/stack/cable_coil/C = used_atom + if(C.use(4)) + playsound(holder, 'sound/items/Deconstruct.ogg', 50, 1) + else + user << ("There's not enough cable to finish the task!") + return 0 + else if(istype(used_atom, /obj/item/stack)) + var/obj/item/stack/S = used_atom + if(S.get_amount() < 5) + user << ("There's not enough material in this stack!") + return 0 + else + S.use(5) + return 1 + +/datum/construction/reversible/mecha/custom_action(index as num, diff as num, atom/used_atom, mob/user) + if(istype(used_atom, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/W = used_atom + if (W.remove_fuel(0, user)) + playsound(holder, 'sound/items/Welder2.ogg', 50, 1) + else + return 0 + else if(istype(used_atom, /obj/item/weapon/wrench)) + playsound(holder, 'sound/items/Ratchet.ogg', 50, 1) + + else if(istype(used_atom, /obj/item/weapon/screwdriver)) + playsound(holder, 'sound/items/Screwdriver.ogg', 50, 1) + + else if(istype(used_atom, /obj/item/weapon/wirecutters)) + playsound(holder, 'sound/items/Wirecutter.ogg', 50, 1) + + else if(istype(used_atom, /obj/item/stack/cable_coil)) + var/obj/item/stack/cable_coil/C = used_atom + if (C.use(4)) + playsound(holder, 'sound/items/Deconstruct.ogg', 50, 1) + else + user << ("There's not enough cable to finish the task!") + return 0 + else if(istype(used_atom, /obj/item/stack)) + var/obj/item/stack/S = used_atom + if(S.get_amount() < 5) + user << ("There's not enough material in this stack!") + return 0 + else + S.use(5) + return 1 + + +/datum/construction/mecha/ripley_chassis + steps = list(list("key"=/obj/item/mecha_parts/part/ripley_torso),//1 + list("key"=/obj/item/mecha_parts/part/ripley_left_arm),//2 + list("key"=/obj/item/mecha_parts/part/ripley_right_arm),//3 + list("key"=/obj/item/mecha_parts/part/ripley_left_leg),//4 + list("key"=/obj/item/mecha_parts/part/ripley_right_leg)//5 + ) + +/datum/construction/mecha/ripley_chassis/custom_action(step, atom/used_atom, mob/user) + user.visible_message("[user] has connected [used_atom] to the [holder].", "You connect [used_atom] to the [holder].") + holder.add_overlay(used_atom.icon_state+"+o") + qdel(used_atom) + return 1 + +/datum/construction/mecha/ripley_chassis/action(atom/used_atom,mob/user) + return check_all_steps(used_atom,user) + +/datum/construction/mecha/ripley_chassis/spawn_result() + var/obj/item/mecha_parts/chassis/const_holder = holder + const_holder.construct = new /datum/construction/reversible/mecha/ripley(const_holder) + const_holder.icon = 'icons/mecha/mech_construction.dmi' + const_holder.icon_state = "ripley0" + const_holder.density = 1 + const_holder.overlays.len = 0 + qdel(src) + return + + +/datum/construction/reversible/mecha/ripley + result = "/obj/mecha/working/ripley" + steps = list( + //1 + list("key"=/obj/item/weapon/weldingtool, + "backkey"=/obj/item/weapon/wrench, + "desc"="External armor is wrenched."), + //2 + list("key"=/obj/item/weapon/wrench, + "backkey"=/obj/item/weapon/crowbar, + "desc"="External armor is installed."), + //3 + list("key"=/obj/item/stack/sheet/plasteel, + "backkey"=/obj/item/weapon/weldingtool, + "desc"="Internal armor is welded."), + //4 + list("key"=/obj/item/weapon/weldingtool, + "backkey"=/obj/item/weapon/wrench, + "desc"="Internal armor is wrenched."), + //5 + list("key"=/obj/item/weapon/wrench, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Internal armor is installed."), + //6 + list("key"=/obj/item/stack/sheet/metal, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="Peripherals control module is secured."), + //7 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Peripherals control module is installed."), + //8 + list("key"=/obj/item/weapon/circuitboard/mecha/ripley/peripherals, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="Central control module is secured."), + //9 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Central control module is installed."), + //10 + list("key"=/obj/item/weapon/circuitboard/mecha/ripley/main, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="The wiring is adjusted."), + //11 + list("key"=/obj/item/weapon/wirecutters, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="The wiring is added."), + //12 + list("key"=/obj/item/stack/cable_coil, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="The hydraulic systems are active."), + //13 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/wrench, + "desc"="The hydraulic systems are connected."), + //14 + list("key"=/obj/item/weapon/wrench, + "desc"="The hydraulic systems are disconnected.") + ) + +/datum/construction/reversible/mecha/ripley/action(atom/used_atom,mob/user) + return check_step(used_atom,user) + +/datum/construction/reversible/mecha/ripley/custom_action(index, diff, atom/used_atom, mob/user) + if(!..()) + return 0 + + //TODO: better messages. + switch(index) + if(14) + user.visible_message("[user] connects the [holder] hydraulic systems", "You connect the [holder] hydraulic systems.") + holder.icon_state = "ripley1" + if(13) + if(diff==FORWARD) + user.visible_message("[user] activates the [holder] hydraulic systems.", "You activate the [holder] hydraulic systems.") + holder.icon_state = "ripley2" + else + user.visible_message("[user] disconnects the [holder] hydraulic systems", "You disconnect the [holder] hydraulic systems.") + holder.icon_state = "ripley0" + if(12) + if(diff==FORWARD) + user.visible_message("[user] adds the wiring to the [holder].", "You add the wiring to the [holder].") + holder.icon_state = "ripley3" + else + user.visible_message("[user] deactivates the [holder] hydraulic systems.", "You deactivate the [holder] hydraulic systems.") + holder.icon_state = "ripley1" + if(11) + if(diff==FORWARD) + user.visible_message("[user] adjusts the wiring of the [holder].", "You adjust the wiring of the [holder].") + holder.icon_state = "ripley4" + else + user.visible_message("[user] removes the wiring from the [holder].", "You remove the wiring from the [holder].") + var/obj/item/stack/cable_coil/coil = new /obj/item/stack/cable_coil(get_turf(holder)) + coil.amount = 4 + holder.icon_state = "ripley2" + if(10) + if(diff==FORWARD) + user.visible_message("[user] installs the central control module into the [holder].", "You install the central computer mainboard into the [holder].") + qdel(used_atom) + holder.icon_state = "ripley5" + else + user.visible_message("[user] disconnects the wiring of the [holder].", "You disconnect the wiring of the [holder].") + holder.icon_state = "ripley3" + if(9) + if(diff==FORWARD) + user.visible_message("[user] secures the mainboard.", "You secure the mainboard.") + holder.icon_state = "ripley6" + else + user.visible_message("[user] removes the central control module from the [holder].", "You remove the central computer mainboard from the [holder].") + new /obj/item/weapon/circuitboard/mecha/ripley/main(get_turf(holder)) + holder.icon_state = "ripley4" + if(8) + if(diff==FORWARD) + user.visible_message("[user] installs the peripherals control module into the [holder].", "You install the peripherals control module into the [holder].") + qdel(used_atom) + holder.icon_state = "ripley7" + else + user.visible_message("[user] unfastens the mainboard.", "You unfasten the mainboard.") + holder.icon_state = "ripley5" + if(7) + if(diff==FORWARD) + user.visible_message("[user] secures the peripherals control module.", "You secure the peripherals control module.") + holder.icon_state = "ripley8" + else + user.visible_message("[user] removes the peripherals control module from the [holder].", "You remove the peripherals control module from the [holder].") + new /obj/item/weapon/circuitboard/mecha/ripley/peripherals(get_turf(holder)) + holder.icon_state = "ripley6" + if(6) + if(diff==FORWARD) + user.visible_message("[user] installs the internal armor layer to the [holder].", "You install the internal armor layer to the [holder].") + holder.icon_state = "ripley9" + else + user.visible_message("[user] unfastens the peripherals control module.", "You unfasten the peripherals control module.") + holder.icon_state = "ripley7" + if(5) + if(diff==FORWARD) + user.visible_message("[user] secures the internal armor layer.", "You secure the internal armor layer.") + holder.icon_state = "ripley10" + else + user.visible_message("[user] pries internal armor layer from the [holder].", "You pry internal armor layer from the [holder].") + var/obj/item/stack/sheet/metal/MS = new /obj/item/stack/sheet/metal(get_turf(holder)) + MS.amount = 5 + holder.icon_state = "ripley8" + if(4) + if(diff==FORWARD) + user.visible_message("[user] welds the internal armor layer to the [holder].", "You weld the internal armor layer to the [holder].") + holder.icon_state = "ripley11" + else + user.visible_message("[user] unfastens the internal armor layer.", "You unfasten the internal armor layer.") + holder.icon_state = "ripley9" + if(3) + if(diff==FORWARD) + user.visible_message("[user] installs the external reinforced armor layer to the [holder].", "You install the external reinforced armor layer to the [holder].") + holder.icon_state = "ripley12" + else + user.visible_message("[user] cuts the internal armor layer from the [holder].", "You cut the internal armor layer from the [holder].") + holder.icon_state = "ripley10" + if(2) + if(diff==FORWARD) + user.visible_message("[user] secures the external armor layer.", "You secure the external reinforced armor layer.") + holder.icon_state = "ripley13" + else + user.visible_message("[user] pries external armor layer from the [holder].", "You pry external armor layer from the [holder].") + var/obj/item/stack/sheet/plasteel/MS = new /obj/item/stack/sheet/plasteel(get_turf(holder)) + MS.amount = 5 + holder.icon_state = "ripley11" + if(1) + if(diff==FORWARD) + user.visible_message("[user] welds the external armor layer to the [holder].", "You weld the external armor layer to the [holder].") + else + user.visible_message("[user] unfastens the external armor layer.", "You unfasten the external armor layer.") + holder.icon_state = "ripley12" + return 1 + +/datum/construction/reversible/mecha/ripley/spawn_result() + ..() + feedback_inc("mecha_ripley_created",1) + return + + + +/datum/construction/mecha/gygax_chassis + steps = list(list("key"=/obj/item/mecha_parts/part/gygax_torso),//1 + list("key"=/obj/item/mecha_parts/part/gygax_left_arm),//2 + list("key"=/obj/item/mecha_parts/part/gygax_right_arm),//3 + list("key"=/obj/item/mecha_parts/part/gygax_left_leg),//4 + list("key"=/obj/item/mecha_parts/part/gygax_right_leg),//5 + list("key"=/obj/item/mecha_parts/part/gygax_head) + ) + +/datum/construction/mecha/gygax_chassis/custom_action(step, atom/used_atom, mob/user) + user.visible_message("[user] has connected [used_atom] to the [holder].", "You connect [used_atom] to the [holder].") + holder.add_overlay(used_atom.icon_state+"+o") + qdel(used_atom) + return 1 + +/datum/construction/mecha/gygax_chassis/action(atom/used_atom,mob/user) + return check_all_steps(used_atom,user) + +/datum/construction/mecha/gygax_chassis/spawn_result() + var/obj/item/mecha_parts/chassis/const_holder = holder + const_holder.construct = new /datum/construction/reversible/mecha/gygax(const_holder) + const_holder.icon = 'icons/mecha/mech_construction.dmi' + const_holder.icon_state = "gygax0" + const_holder.density = 1 + qdel(src) + return + + +/datum/construction/reversible/mecha/gygax + result = "/obj/mecha/combat/gygax" + steps = list( + //1 + list("key"=/obj/item/weapon/weldingtool, + "backkey"=/obj/item/weapon/wrench, + "desc"="External armor is wrenched."), + //2 + list("key"=/obj/item/weapon/wrench, + "backkey"=/obj/item/weapon/crowbar, + "desc"="External armor is installed."), + //3 + list("key"=/obj/item/mecha_parts/part/gygax_armor, + "backkey"=/obj/item/weapon/weldingtool, + "desc"="Internal armor is welded."), + //4 + list("key"=/obj/item/weapon/weldingtool, + "backkey"=/obj/item/weapon/wrench, + "desc"="Internal armor is wrenched."), + //5 + list("key"=/obj/item/weapon/wrench, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Internal armor is installed."), + //6 + list("key"=/obj/item/stack/sheet/metal, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="Advanced capacitor is secured."), + //7 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Advanced capacitor is installed."), + //8 + list("key"=/obj/item/weapon/stock_parts/capacitor, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="Advanced scanner module is secured."), + //9 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Advanced scanner module is installed."), + //10 + list("key"=/obj/item/weapon/stock_parts/scanning_module, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="Weapon control module is secured."), + //11 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Weapon control module is installed."), + //12 + list("key"=/obj/item/weapon/circuitboard/mecha/gygax/targeting, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="Peripherals control module is secured."), + //13 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Peripherals control module is installed."), + //14 + list("key"=/obj/item/weapon/circuitboard/mecha/gygax/peripherals, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="Central control module is secured."), + //15 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Central control module is installed."), + //16 + list("key"=/obj/item/weapon/circuitboard/mecha/gygax/main, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="The wiring is adjusted."), + //17 + list("key"=/obj/item/weapon/wirecutters, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="The wiring is added."), + //18 + list("key"=/obj/item/stack/cable_coil, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="The hydraulic systems are active."), + //19 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/wrench, + "desc"="The hydraulic systems are connected."), + //20 + list("key"=/obj/item/weapon/wrench, + "desc"="The hydraulic systems are disconnected.") + ) + +/datum/construction/reversible/mecha/gygax/action(atom/used_atom,mob/user) + return check_step(used_atom,user) + +/datum/construction/reversible/mecha/gygax/custom_action(index, diff, atom/used_atom, mob/user) + if(!..()) + return 0 + + //TODO: better messages. + switch(index) + if(20) + user.visible_message("[user] connects the [holder] hydraulic systems", "You connect the [holder] hydraulic systems.") + holder.icon_state = "gygax1" + if(19) + if(diff==FORWARD) + user.visible_message("[user] activates the [holder] hydraulic systems.", "You activate the [holder] hydraulic systems.") + holder.icon_state = "gygax2" + else + user.visible_message("[user] disconnects the [holder] hydraulic systems", "You disconnect the [holder] hydraulic systems.") + holder.icon_state = "gygax0" + if(18) + if(diff==FORWARD) + user.visible_message("[user] adds the wiring to the [holder].", "You add the wiring to the [holder].") + holder.icon_state = "gygax3" + else + user.visible_message("[user] deactivates the [holder] hydraulic systems.", "You deactivate the [holder] hydraulic systems.") + holder.icon_state = "gygax1" + if(17) + if(diff==FORWARD) + user.visible_message("[user] adjusts the wiring of the [holder].", "You adjust the wiring of the [holder].") + holder.icon_state = "gygax4" + else + user.visible_message("[user] removes the wiring from the [holder].", "You remove the wiring from the [holder].") + var/obj/item/stack/cable_coil/coil = new /obj/item/stack/cable_coil(get_turf(holder)) + coil.amount = 4 + holder.icon_state = "gygax2" + if(16) + if(diff==FORWARD) + user.visible_message("[user] installs the central control module into the [holder].", "You install the central computer mainboard into the [holder].") + qdel(used_atom) + holder.icon_state = "gygax5" + else + user.visible_message("[user] disconnects the wiring of the [holder].", "You disconnect the wiring of the [holder].") + holder.icon_state = "gygax3" + if(15) + if(diff==FORWARD) + user.visible_message("[user] secures the mainboard.", "You secure the mainboard.") + holder.icon_state = "gygax6" + else + user.visible_message("[user] removes the central control module from the [holder].", "You remove the central computer mainboard from the [holder].") + new /obj/item/weapon/circuitboard/mecha/gygax/main(get_turf(holder)) + holder.icon_state = "gygax4" + if(14) + if(diff==FORWARD) + user.visible_message("[user] installs the peripherals control module into the [holder].", "You install the peripherals control module into the [holder].") + qdel(used_atom) + holder.icon_state = "gygax7" + else + user.visible_message("[user] unfastens the mainboard.", "You unfasten the mainboard.") + holder.icon_state = "gygax5" + if(13) + if(diff==FORWARD) + user.visible_message("[user] secures the peripherals control module.", "You secure the peripherals control module.") + holder.icon_state = "gygax8" + else + user.visible_message("[user] removes the peripherals control module from the [holder].", "You remove the peripherals control module from the [holder].") + new /obj/item/weapon/circuitboard/mecha/gygax/peripherals(get_turf(holder)) + holder.icon_state = "gygax6" + if(12) + if(diff==FORWARD) + user.visible_message("[user] installs the weapon control module into the [holder].", "You install the weapon control module into the [holder].") + qdel(used_atom) + holder.icon_state = "gygax9" + else + user.visible_message("[user] unfastens the peripherals control module.", "You unfasten the peripherals control module.") + holder.icon_state = "gygax7" + if(11) + if(diff==FORWARD) + user.visible_message("[user] secures the weapon control module.", "You secure the weapon control module.") + holder.icon_state = "gygax10" + else + user.visible_message("[user] removes the weapon control module from the [holder].", "You remove the weapon control module from the [holder].") + new /obj/item/weapon/circuitboard/mecha/gygax/targeting(get_turf(holder)) + holder.icon_state = "gygax8" + if(10) + if(diff==FORWARD) + user.visible_message("[user] installs scanner module to the [holder].", "You install scanner module to the [holder].") + var/obj/item/I = used_atom + user.unEquip(I) + I.loc = holder + holder.icon_state = "gygax11" + else + user.visible_message("[user] unfastens the weapon control module.", "You unfasten the weapon control module.") + holder.icon_state = "gygax9" + if(9) + if(diff==FORWARD) + user.visible_message("[user] secures the advanced scanner module.", "You secure the scanner module.") + holder.icon_state = "gygax12" + else + user.visible_message("[user] removes the advanced scanner module from the [holder].", "You remove the scanner module from the [holder].") + var/obj/item/I = locate(/obj/item/weapon/stock_parts/scanning_module) in holder + I.loc = get_turf(holder) + holder.icon_state = "gygax10" + if(8) + if(diff==FORWARD) + user.visible_message("[user] installs capacitor to the [holder].", "You install capacitor to the [holder].") + var/obj/item/I = used_atom + user.unEquip(I) + I.loc = holder + holder.icon_state = "gygax13" + else + user.visible_message("[user] unfastens the scanner module.", "You unfasten the scanner module.") + holder.icon_state = "gygax11" + if(7) + if(diff==FORWARD) + user.visible_message("[user] secures the capacitor.", "You secure the capacitor.") + holder.icon_state = "gygax14" + else + user.visible_message("[user] removes the capacitor from the [holder].", "You remove the capacitor from the [holder].") + var/obj/item/I = locate(/obj/item/weapon/stock_parts/capacitor) in holder + I.loc = get_turf(holder) + holder.icon_state = "gygax12" + if(6) + if(diff==FORWARD) + user.visible_message("[user] installs the internal armor layer to the [holder].", "You install the internal armor layer to the [holder].") + holder.icon_state = "gygax15" + else + user.visible_message("[user] unfastens the capacitor.", "You unfasten the capacitor.") + holder.icon_state = "gygax13" + if(5) + if(diff==FORWARD) + user.visible_message("[user] secures the internal armor layer.", "You secure the internal armor layer.") + holder.icon_state = "gygax16" + else + user.visible_message("[user] pries internal armor layer from the [holder].", "You pry internal armor layer from the [holder].") + var/obj/item/stack/sheet/metal/MS = new /obj/item/stack/sheet/metal(get_turf(holder)) + MS.amount = 5 + holder.icon_state = "gygax14" + if(4) + if(diff==FORWARD) + user.visible_message("[user] welds the internal armor layer to the [holder].", "You weld the internal armor layer to the [holder].") + holder.icon_state = "gygax17" + else + user.visible_message("[user] unfastens the internal armor layer.", "You unfasten the internal armor layer.") + holder.icon_state = "gygax15" + if(3) + if(diff==FORWARD) + user.visible_message("[user] installs Gygax Armor Plates to the [holder].", "You install Gygax Armor Plates to the [holder].") + qdel(used_atom) + holder.icon_state = "gygax18" + else + user.visible_message("[user] cuts the internal armor layer from the [holder].", "You cut the internal armor layer from the [holder].") + holder.icon_state = "gygax16" + if(2) + if(diff==FORWARD) + user.visible_message("[user] secures Gygax Armor Plates.", "You secure Gygax Armor Plates.") + holder.icon_state = "gygax19" + else + user.visible_message("[user] pries Gygax Armor Plates from the [holder].", "You pry Gygax Armor Plates from the [holder].") + new /obj/item/mecha_parts/part/gygax_armor(get_turf(holder)) + holder.icon_state = "gygax17" + if(1) + if(diff==FORWARD) + user.visible_message("[user] welds Gygax Armor Plates to the [holder].", "You weld Gygax Armor Plates to the [holder].") + else + user.visible_message("[user] unfastens Gygax Armor Plates.", "You unfasten Gygax Armor Plates.") + holder.icon_state = "gygax18" + return 1 + +/datum/construction/reversible/mecha/gygax/spawn_result() + var/obj/mecha/combat/gygax/M = new result(get_turf(holder)) + M.CheckParts(holder) + qdel(holder) + feedback_inc("mecha_gygax_created",1) + return + +/datum/construction/mecha/firefighter_chassis + steps = list(list("key"=/obj/item/mecha_parts/part/ripley_torso),//1 + list("key"=/obj/item/mecha_parts/part/ripley_left_arm),//2 + list("key"=/obj/item/mecha_parts/part/ripley_right_arm),//3 + list("key"=/obj/item/mecha_parts/part/ripley_left_leg),//4 + list("key"=/obj/item/mecha_parts/part/ripley_right_leg),//5 + list("key"=/obj/item/clothing/suit/fire)//6 + ) + +/datum/construction/mecha/firefighter_chassis/custom_action(step, atom/used_atom, mob/user) + user.visible_message("[user] has connected [used_atom] to the [holder].", "You connect [used_atom] to the [holder].") + holder.add_overlay(used_atom.icon_state+"+o") + qdel(used_atom) + return 1 + +/datum/construction/mecha/firefighter_chassis/action(atom/used_atom,mob/user) + return check_all_steps(used_atom,user) + +/datum/construction/mecha/firefighter_chassis/spawn_result() + var/obj/item/mecha_parts/chassis/const_holder = holder + const_holder.construct = new /datum/construction/reversible/mecha/firefighter(const_holder) + const_holder.icon = 'icons/mecha/mech_construction.dmi' + const_holder.icon_state = "fireripley0" + const_holder.density = 1 + qdel(src) + return + + +/datum/construction/reversible/mecha/firefighter + result = "/obj/mecha/working/ripley/firefighter" + steps = list( + //1 + list("key"=/obj/item/weapon/weldingtool, + "backkey"=/obj/item/weapon/wrench, + "desc"="External armor is wrenched."), + //2 + list("key"=/obj/item/weapon/wrench, + "backkey"=/obj/item/weapon/crowbar, + "desc"="External armor is installed."), + //3 + list("key"=/obj/item/stack/sheet/plasteel, + "backkey"=/obj/item/weapon/crowbar, + "desc"="External armor is being installed."), + //4 + list("key"=/obj/item/stack/sheet/plasteel, + "backkey"=/obj/item/weapon/weldingtool, + "desc"="Internal armor is welded."), + //5 + list("key"=/obj/item/weapon/weldingtool, + "backkey"=/obj/item/weapon/wrench, + "desc"="Internal armor is wrenched."), + //6 + list("key"=/obj/item/weapon/wrench, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Internal armor is installed."), + + //7 + list("key"=/obj/item/stack/sheet/plasteel, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="Peripherals control module is secured."), + //8 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Peripherals control module is installed."), + //9 + list("key"=/obj/item/weapon/circuitboard/mecha/ripley/peripherals, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="Central control module is secured."), + //10 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Central control module is installed."), + //11 + list("key"=/obj/item/weapon/circuitboard/mecha/ripley/main, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="The wiring is adjusted."), + //12 + list("key"=/obj/item/weapon/wirecutters, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="The wiring is added."), + //13 + list("key"=/obj/item/stack/cable_coil, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="The hydraulic systems are active."), + //14 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/wrench, + "desc"="The hydraulic systems are connected."), + //15 + list("key"=/obj/item/weapon/wrench, + "desc"="The hydraulic systems are disconnected.") + ) + +/datum/construction/reversible/mecha/firefighter/action(atom/used_atom,mob/user) + return check_step(used_atom,user) + +/datum/construction/reversible/mecha/firefighter/custom_action(index, diff, atom/used_atom, mob/user) + if(!..()) + return 0 + + //TODO: better messages. + switch(index) + if(15) + user.visible_message("[user] connects the [holder] hydraulic systems", "You connect the [holder] hydraulic systems.") + holder.icon_state = "fireripley1" + if(14) + if(diff==FORWARD) + user.visible_message("[user] activates the [holder] hydraulic systems.", "You activate the [holder] hydraulic systems.") + holder.icon_state = "fireripley2" + else + user.visible_message("[user] disconnects the [holder] hydraulic systems", "You disconnect the [holder] hydraulic systems.") + holder.icon_state = "fireripley0" + if(13) + if(diff==FORWARD) + user.visible_message("[user] adds the wiring to the [holder].", "You add the wiring to the [holder].") + holder.icon_state = "fireripley3" + else + user.visible_message("[user] deactivates the [holder] hydraulic systems.", "You deactivate the [holder] hydraulic systems.") + holder.icon_state = "fireripley1" + if(12) + if(diff==FORWARD) + user.visible_message("[user] adjusts the wiring of the [holder].", "You adjust the wiring of the [holder].") + holder.icon_state = "fireripley4" + else + user.visible_message("[user] removes the wiring from the [holder].", "You remove the wiring from the [holder].") + var/obj/item/stack/cable_coil/coil = new /obj/item/stack/cable_coil(get_turf(holder)) + coil.amount = 4 + holder.icon_state = "fireripley2" + if(11) + if(diff==FORWARD) + user.visible_message("[user] installs the central control module into the [holder].", "You install the central computer mainboard into the [holder].") + qdel(used_atom) + holder.icon_state = "fireripley5" + else + user.visible_message("[user] disconnects the wiring of the [holder].", "You disconnect the wiring of the [holder].") + holder.icon_state = "fireripley3" + if(10) + if(diff==FORWARD) + user.visible_message("[user] secures the mainboard.", "You secure the mainboard.") + holder.icon_state = "fireripley6" + else + user.visible_message("[user] removes the central control module from the [holder].", "You remove the central computer mainboard from the [holder].") + new /obj/item/weapon/circuitboard/mecha/ripley/main(get_turf(holder)) + holder.icon_state = "fireripley4" + if(9) + if(diff==FORWARD) + user.visible_message("[user] installs the peripherals control module into the [holder].", "You install the peripherals control module into the [holder].") + qdel(used_atom) + holder.icon_state = "fireripley7" + else + user.visible_message("[user] unfastens the mainboard.", "You unfasten the mainboard.") + holder.icon_state = "fireripley5" + if(8) + if(diff==FORWARD) + user.visible_message("[user] secures the peripherals control module.", "You secure the peripherals control module.") + holder.icon_state = "fireripley8" + else + user.visible_message("[user] removes the peripherals control module from the [holder].", "You remove the peripherals control module from the [holder].") + new /obj/item/weapon/circuitboard/mecha/ripley/peripherals(get_turf(holder)) + holder.icon_state = "fireripley6" + if(7) + if(diff==FORWARD) + user.visible_message("[user] installs the internal armor layer to the [holder].", "You install the internal armor layer to the [holder].") + holder.icon_state = "fireripley9" + else + user.visible_message("[user] unfastens the peripherals control module.", "You unfasten the peripherals control module.") + holder.icon_state = "fireripley7" + + if(6) + if(diff==FORWARD) + user.visible_message("[user] secures the internal armor layer.", "You secure the internal armor layer.") + holder.icon_state = "fireripley10" + else + user.visible_message("[user] pries internal armor layer from the [holder].", "You pry internal armor layer from the [holder].") + var/obj/item/stack/sheet/plasteel/MS = new /obj/item/stack/sheet/plasteel(get_turf(holder)) + MS.amount = 5 + holder.icon_state = "fireripley8" + if(5) + if(diff==FORWARD) + user.visible_message("[user] welds the internal armor layer to the [holder].", "You weld the internal armor layer to the [holder].") + holder.icon_state = "fireripley11" + else + user.visible_message("[user] unfastens the internal armor layer.", "You unfasten the internal armor layer.") + holder.icon_state = "fireripley9" + if(4) + if(diff==FORWARD) + user.visible_message("[user] starts to install the external armor layer to the [holder].", "You install the external armor layer to the [holder].") + holder.icon_state = "fireripley12" + else + user.visible_message("[user] cuts the internal armor layer from the [holder].", "You cut the internal armor layer from the [holder].") + holder.icon_state = "fireripley10" + if(3) + if(diff==FORWARD) + user.visible_message("[user] installs the external reinforced armor layer to the [holder].", "You install the external reinforced armor layer to the [holder].") + holder.icon_state = "fireripley13" + else + user.visible_message("[user] removes the external armor from the [holder].", "You remove the external armor from the [holder].") + var/obj/item/stack/sheet/plasteel/MS = new /obj/item/stack/sheet/plasteel(get_turf(holder)) + MS.amount = 5 + holder.icon_state = "fireripley11" + if(2) + if(diff==FORWARD) + user.visible_message("[user] secures the external armor layer.", "You secure the external reinforced armor layer.") + holder.icon_state = "fireripley14" + else + user.visible_message("[user] pries external armor layer from the [holder].", "You pry external armor layer from the [holder].") + var/obj/item/stack/sheet/plasteel/MS = new /obj/item/stack/sheet/plasteel(get_turf(holder)) + MS.amount = 5 + holder.icon_state = "fireripley12" + if(1) + if(diff==FORWARD) + user.visible_message("[user] welds the external armor layer to the [holder].", "You weld the external armor layer to the [holder].") + else + user.visible_message("[user] unfastens the external armor layer.", "You unfasten the external armor layer.") + holder.icon_state = "fireripley13" + return 1 + +/datum/construction/reversible/mecha/firefighter/spawn_result() + ..() + feedback_inc("mecha_firefighter_created",1) + return + + + +/datum/construction/mecha/honker_chassis + steps = list(list("key"=/obj/item/mecha_parts/part/honker_torso),//1 + list("key"=/obj/item/mecha_parts/part/honker_left_arm),//2 + list("key"=/obj/item/mecha_parts/part/honker_right_arm),//3 + list("key"=/obj/item/mecha_parts/part/honker_left_leg),//4 + list("key"=/obj/item/mecha_parts/part/honker_right_leg),//5 + list("key"=/obj/item/mecha_parts/part/honker_head) + ) + +/datum/construction/mecha/honker_chassis/action(atom/used_atom,mob/user) + return check_all_steps(used_atom,user) + +/datum/construction/mecha/honker_chassis/custom_action(step, atom/used_atom, mob/user) + user.visible_message("[user] has connected [used_atom] to the [holder].", "You connect [used_atom] to the [holder].") + holder.add_overlay(used_atom.icon_state+"+o") + qdel(used_atom) + return 1 + +/datum/construction/mecha/honker_chassis/spawn_result() + var/obj/item/mecha_parts/chassis/const_holder = holder + const_holder.construct = new /datum/construction/mecha/honker(const_holder) + const_holder.density = 1 + qdel(src) + return + + +/datum/construction/mecha/honker + result = "/obj/mecha/combat/honker" + steps = list(list("key"=/obj/item/weapon/bikehorn),//1 + list("key"=/obj/item/clothing/shoes/clown_shoes),//2 + list("key"=/obj/item/weapon/bikehorn),//3 + list("key"=/obj/item/clothing/mask/gas/clown_hat),//4 + list("key"=/obj/item/weapon/bikehorn),//5 + list("key"=/obj/item/weapon/circuitboard/mecha/honker/targeting),//6 + list("key"=/obj/item/weapon/bikehorn),//7 + list("key"=/obj/item/weapon/circuitboard/mecha/honker/peripherals),//8 + list("key"=/obj/item/weapon/bikehorn),//9 + list("key"=/obj/item/weapon/circuitboard/mecha/honker/main),//10 + list("key"=/obj/item/weapon/bikehorn),//11 + ) + +/datum/construction/mecha/honker/action(atom/used_atom,mob/user) + return check_step(used_atom,user) + +/datum/construction/mecha/honker/custom_action(step, atom/used_atom, mob/user) + if(!..()) + return 0 + + if(istype(used_atom, /obj/item/weapon/bikehorn)) + playsound(holder, 'sound/items/bikehorn.ogg', 50, 1) + user.visible_message("HONK!") + + //TODO: better messages. + switch(step) + if(10) + user.visible_message("[user] installs the central control module into the [holder].", "You install the central control module into the [holder].") + qdel(used_atom) + if(8) + user.visible_message("[user] installs the peripherals control module into the [holder].", "You install the peripherals control module into the [holder].") + qdel(used_atom) + if(6) + user.visible_message("[user] installs the weapon control module into the [holder].", "You install the weapon control module into the [holder].") + qdel(used_atom) + if(4) + user.visible_message("[user] puts clown wig and mask on the [holder].", "You put clown wig and mask on the [holder].") + qdel(used_atom) + if(2) + user.visible_message("[user] puts clown boots on the [holder].", "You put clown boots on the [holder].") + qdel(used_atom) + return 1 + +/datum/construction/mecha/honker/spawn_result() + ..() + feedback_inc("mecha_honker_created",1) + return + +/datum/construction/mecha/durand_chassis + steps = list(list("key"=/obj/item/mecha_parts/part/durand_torso),//1 + list("key"=/obj/item/mecha_parts/part/durand_left_arm),//2 + list("key"=/obj/item/mecha_parts/part/durand_right_arm),//3 + list("key"=/obj/item/mecha_parts/part/durand_left_leg),//4 + list("key"=/obj/item/mecha_parts/part/durand_right_leg),//5 + list("key"=/obj/item/mecha_parts/part/durand_head) + ) + +/datum/construction/mecha/durand_chassis/custom_action(step, atom/used_atom, mob/user) + user.visible_message("[user] has connected [used_atom] to the [holder].", "You connect [used_atom] to the [holder]") + holder.add_overlay(used_atom.icon_state+"+o") + qdel(used_atom) + return 1 + +/datum/construction/mecha/durand_chassis/action(atom/used_atom,mob/user) + return check_all_steps(used_atom,user) + +/datum/construction/mecha/durand_chassis/spawn_result() + var/obj/item/mecha_parts/chassis/const_holder = holder + const_holder.construct = new /datum/construction/reversible/mecha/durand(const_holder) + const_holder.icon = 'icons/mecha/mech_construction.dmi' + const_holder.icon_state = "durand0" + const_holder.density = 1 + del src + return + +/datum/construction/reversible/mecha/durand + result = "/obj/mecha/combat/durand" + steps = list( + //1 + list("key"=/obj/item/weapon/weldingtool, + "backkey"=/obj/item/weapon/wrench, + "desc"="External armor is wrenched."), + //2 + list("key"=/obj/item/weapon/wrench, + "backkey"=/obj/item/weapon/crowbar, + "desc"="External armor is installed."), + //3 + list("key"=/obj/item/mecha_parts/part/durand_armor, + "backkey"=/obj/item/weapon/weldingtool, + "desc"="Internal armor is welded."), + //4 + list("key"=/obj/item/weapon/weldingtool, + "backkey"=/obj/item/weapon/wrench, + "desc"="Internal armor is wrenched."), + //5 + list("key"=/obj/item/weapon/wrench, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Internal armor is installed."), + //6 + list("key"=/obj/item/stack/sheet/metal, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="Super capacitor is secured."), + //7 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Super capacitor is installed."), + //8 + list("key"=/obj/item/weapon/stock_parts/capacitor, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="Phasic scanner module is secured."), + //9 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Phasic scanner module is installed."), + //10 + list("key"=/obj/item/weapon/stock_parts/scanning_module, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="Weapon control module is secured."), + //11 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Weapon control module is installed."), + //12 + list("key"=/obj/item/weapon/circuitboard/mecha/durand/targeting, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="Peripherals control module is secured."), + //13 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Peripherals control module is installed."), + //14 + list("key"=/obj/item/weapon/circuitboard/mecha/durand/peripherals, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="Central control module is secured."), + //15 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Central control module is installed."), + //16 + list("key"=/obj/item/weapon/circuitboard/mecha/durand/main, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="The wiring is adjusted."), + //17 + list("key"=/obj/item/weapon/wirecutters, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="The wiring is added."), + //18 + list("key"=/obj/item/stack/cable_coil, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="The hydraulic systems are active."), + //19 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/wrench, + "desc"="The hydraulic systems are connected."), + //20 + list("key"=/obj/item/weapon/wrench, + "desc"="The hydraulic systems are disconnected.") + ) + + +/datum/construction/reversible/mecha/durand/action(atom/used_atom,mob/user) + return check_step(used_atom,user) + +/datum/construction/reversible/mecha/durand/custom_action(index, diff, atom/used_atom, mob/user) + if(!..()) + return 0 + + //TODO: better messages. + switch(index) + if(20) + user.visible_message("[user] connects the [holder] hydraulic systems", "You connect the [holder] hydraulic systems.") + holder.icon_state = "durand1" + if(19) + if(diff==FORWARD) + user.visible_message("[user] activates the [holder] hydraulic systems.", "You activate the [holder] hydraulic systems.") + holder.icon_state = "durand2" + else + user.visible_message("[user] disconnects the [holder] hydraulic systems", "You disconnect the [holder] hydraulic systems.") + holder.icon_state = "durand0" + if(18) + if(diff==FORWARD) + user.visible_message("[user] adds the wiring to the [holder].", "You add the wiring to the [holder].") + holder.icon_state = "durand3" + else + user.visible_message("[user] deactivates the [holder] hydraulic systems.", "You deactivate the [holder] hydraulic systems.") + holder.icon_state = "durand1" + if(17) + if(diff==FORWARD) + user.visible_message("[user] adjusts the wiring of the [holder].", "You adjust the wiring of the [holder].") + holder.icon_state = "durand4" + else + user.visible_message("[user] removes the wiring from the [holder].", "You remove the wiring from the [holder].") + var/obj/item/stack/cable_coil/coil = new /obj/item/stack/cable_coil(get_turf(holder)) + coil.amount = 4 + holder.icon_state = "durand2" + if(16) + if(diff==FORWARD) + user.visible_message("[user] installs the central control module into the [holder].", "You install the central computer mainboard into the [holder].") + qdel(used_atom) + holder.icon_state = "durand5" + else + user.visible_message("[user] disconnects the wiring of the [holder].", "You disconnect the wiring of the [holder].") + holder.icon_state = "durand3" + if(15) + if(diff==FORWARD) + user.visible_message("[user] secures the mainboard.", "You secure the mainboard.") + holder.icon_state = "durand6" + else + user.visible_message("[user] removes the central control module from the [holder].", "You remove the central computer mainboard from the [holder].") + new /obj/item/weapon/circuitboard/mecha/durand/main(get_turf(holder)) + holder.icon_state = "durand4" + if(14) + if(diff==FORWARD) + user.visible_message("[user] installs the peripherals control module into the [holder].", "You install the peripherals control module into the [holder].") + qdel(used_atom) + holder.icon_state = "durand7" + else + user.visible_message("[user] unfastens the mainboard.", "You unfasten the mainboard.") + holder.icon_state = "durand5" + if(13) + if(diff==FORWARD) + user.visible_message("[user] secures the peripherals control module.", "You secure the peripherals control module.") + holder.icon_state = "durand8" + else + user.visible_message("[user] removes the peripherals control module from the [holder].", "You remove the peripherals control module from the [holder].") + new /obj/item/weapon/circuitboard/mecha/durand/peripherals(get_turf(holder)) + holder.icon_state = "durand6" + if(12) + if(diff==FORWARD) + user.visible_message("[user] installs the weapon control module into the [holder].", "You install the weapon control module into the [holder].") + qdel(used_atom) + holder.icon_state = "durand9" + else + user.visible_message("[user] unfastens the peripherals control module.", "You unfasten the peripherals control module.") + holder.icon_state = "durand7" + if(11) + if(diff==FORWARD) + user.visible_message("[user] secures the weapon control module.", "You secure the weapon control module.") + holder.icon_state = "durand10" + else + user.visible_message("[user] removes the weapon control module from the [holder].", "You remove the weapon control module from the [holder].") + new /obj/item/weapon/circuitboard/mecha/durand/targeting(get_turf(holder)) + holder.icon_state = "durand8" + if(10) + if(diff==FORWARD) + user.visible_message("[user] installs scanner module to the [holder].", "You install phasic scanner module to the [holder].") + var/obj/item/I = used_atom + user.unEquip(I) + I.loc = holder + holder.icon_state = "durand11" + else + user.visible_message("[user] unfastens the weapon control module.", "You unfasten the weapon control module.") + holder.icon_state = "durand9" + if(9) + if(diff==FORWARD) + user.visible_message("[user] secures the scanner module.", "You secure the scanner module.") + holder.icon_state = "durand12" + else + user.visible_message("[user] removes the scanner module from the [holder].", "You remove the scanner module from the [holder].") + var/obj/item/I = locate(/obj/item/weapon/stock_parts/scanning_module) in holder + I.loc = get_turf(holder) + holder.icon_state = "durand10" + if(8) + if(diff==FORWARD) + user.visible_message("[user] installs capacitor to the [holder].", "You install capacitor to the [holder].") + var/obj/item/I = used_atom + user.unEquip(I) + I.loc = holder + holder.icon_state = "durand13" + else + user.visible_message("[user] unfastens the scanner module.", "You unfasten the scanner module.") + holder.icon_state = "durand11" + if(7) + if(diff==FORWARD) + user.visible_message("[user] secures the capacitor.", "You secure the capacitor.") + holder.icon_state = "durand14" + else + user.visible_message("[user] removes the super capacitor from the [holder].", "You remove the capacitor from the [holder].") + var/obj/item/I = locate(/obj/item/weapon/stock_parts/capacitor) in holder + I.loc = get_turf(holder) + holder.icon_state = "durand12" + if(6) + if(diff==FORWARD) + user.visible_message("[user] installs the internal armor layer to the [holder].", "You install the internal armor layer to the [holder].") + holder.icon_state = "durand15" + else + user.visible_message("[user] unfastens the super capacitor.", "You unfasten the capacitor.") + holder.icon_state = "durand13" + if(5) + if(diff==FORWARD) + user.visible_message("[user] secures the internal armor layer.", "You secure the internal armor layer.") + holder.icon_state = "durand16" + else + user.visible_message("[user] pries internal armor layer from the [holder].", "You pry internal armor layer from the [holder].") + var/obj/item/stack/sheet/metal/MS = new /obj/item/stack/sheet/metal(get_turf(holder)) + MS.amount = 5 + holder.icon_state = "durand14" + if(4) + if(diff==FORWARD) + user.visible_message("[user] welds the internal armor layer to the [holder].", "You weld the internal armor layer to the [holder].") + holder.icon_state = "durand17" + else + user.visible_message("[user] unfastens the internal armor layer.", "You unfasten the internal armor layer.") + holder.icon_state = "durand15" + if(3) + if(diff==FORWARD) + user.visible_message("[user] installs Durand Armor Plates to the [holder].", "You install Durand Armor Plates to the [holder].") + qdel(used_atom) + holder.icon_state = "durand18" + else + user.visible_message("[user] cuts the internal armor layer from the [holder].", "You cut the internal armor layer from the [holder].") + holder.icon_state = "durand16" + if(2) + if(diff==FORWARD) + user.visible_message("[user] secures Durand Armor Plates.", "You secure Durand Armor Plates.") + holder.icon_state = "durand19" + else + user.visible_message("[user] pries Durand Armor Plates from the [holder].", "You pry Durand Armor Plates from the [holder].") + new /obj/item/mecha_parts/part/durand_armor(get_turf(holder)) + holder.icon_state = "durand17" + if(1) + if(diff==FORWARD) + user.visible_message("[user] welds Durand Armor Plates to the [holder].", "You weld Durand Armor Plates to the [holder].") + else + user.visible_message("[user] unfastens Durand Armor Plates.", "You unfasten Durand Armor Plates.") + holder.icon_state = "durand18" + return 1 + +/datum/construction/reversible/mecha/durand/spawn_result() + var/obj/mecha/combat/gygax/M = new result(get_turf(holder)) + M.CheckParts(holder) + qdel(holder) + feedback_inc("mecha_durand_created",1) + return + +//PHAZON + +/datum/construction/mecha/phazon_chassis + result = "/obj/mecha/combat/phazon" + steps = list(list("key"=/obj/item/mecha_parts/part/phazon_torso),//1 + list("key"=/obj/item/mecha_parts/part/phazon_left_arm),//2 + list("key"=/obj/item/mecha_parts/part/phazon_right_arm),//3 + list("key"=/obj/item/mecha_parts/part/phazon_left_leg),//4 + list("key"=/obj/item/mecha_parts/part/phazon_right_leg),//5 + list("key"=/obj/item/mecha_parts/part/phazon_head) + ) + +/datum/construction/mecha/phazon_chassis/custom_action(step, atom/used_atom, mob/user) + user.visible_message("[user] has connected [used_atom] to the [holder].", "You connect [used_atom] to the [holder].") + holder.add_overlay(used_atom.icon_state+"+o") + qdel(used_atom) + return 1 + +/datum/construction/mecha/phazon_chassis/action(atom/used_atom,mob/user) + return check_all_steps(used_atom,user) + +/datum/construction/mecha/phazon_chassis/spawn_result() + var/obj/item/mecha_parts/chassis/const_holder = holder + const_holder.construct = new /datum/construction/reversible/mecha/phazon(const_holder) + const_holder.icon = 'icons/mecha/mech_construction.dmi' + const_holder.icon_state = "phazon0" + const_holder.density = 1 + del src + return + +/datum/construction/reversible/mecha/phazon + result = "/obj/mecha/combat/phazon" + steps = list( + //1 + list("key"=/obj/item/device/assembly/signaler/anomaly, + "backkey"=null, //Cannot remove the anomaly core once it's in + "desc"="Anomaly core socket is open and awaiting connection."), + + //2 + list("key"=/obj/item/weapon/weldingtool, + "backkey"=/obj/item/weapon/wrench, + "desc"="External armor is wrenched."), + //3 + list("key"=/obj/item/weapon/wrench, + "backkey"=/obj/item/weapon/crowbar, + "desc"="External armor is installed."), + //4 + list("key"=/obj/item/mecha_parts/part/phazon_armor, + "backkey"=/obj/item/weapon/weldingtool, + "desc"="Phase armor is welded."), + //5 + list("key"=/obj/item/weapon/weldingtool, + "backkey"=/obj/item/weapon/wrench, + "desc"="Phase armor is wrenched."), + //6 + list("key"=/obj/item/weapon/wrench, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Phase armor is installed."), + //7 + list("key"=/obj/item/stack/sheet/plasteel, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="The bluespace crystal is engaged."), + //8 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/wirecutters, + "desc"="The bluespace crystal is connected."), + //9 + list("key"=/obj/item/stack/cable_coil, + "backkey"=/obj/item/weapon/crowbar, + "desc"="The bluespace crystal is installed."), + //10 + list("key"=/obj/item/weapon/ore/bluespace_crystal, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="Super capacitor is secured."), + //12 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Super capacitor is installed."), + //12 + list("key"=/obj/item/weapon/stock_parts/capacitor, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="Phasic scanner module is secured."), + //13 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Phasic scanner module is installed."), + //14 + list("key"=/obj/item/weapon/stock_parts/scanning_module, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="Weapon control module is secured."), + //15 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Weapon control is installed."), + //16 + list("key"=/obj/item/weapon/circuitboard/mecha/phazon/targeting, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="Peripherals control module is secured."), + //17 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Peripherals control module is installed"), + //18 + list("key"=/obj/item/weapon/circuitboard/mecha/phazon/peripherals, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="Central control module is secured."), + //19 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Central control module is installed."), + //20 + list("key"=/obj/item/weapon/circuitboard/mecha/phazon/main, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="The wiring is adjusted."), + //21 + list("key"=/obj/item/weapon/wirecutters, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="The wiring is added."), + //22 + list("key"=/obj/item/stack/cable_coil, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="The hydraulic systems are active."), + //23 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/wrench, + "desc"="The hydraulic systems are connected."), + //24 + list("key"=/obj/item/weapon/wrench, + "desc"="The hydraulic systems are disconnected.") + ) + + +/datum/construction/reversible/mecha/phazon/action(atom/used_atom,mob/user) + return check_step(used_atom,user) + +/datum/construction/reversible/mecha/phazon/custom_action(index, diff, atom/used_atom, mob/user) + if(!..()) + return 0 + + //TODO: better messages. + switch(index) + if(24) + user.visible_message("[user] connects the [holder] hydraulic systems", "You connect the [holder] hydraulic systems.") + holder.icon_state = "phazon1" + if(23) + if(diff==FORWARD) + user.visible_message("[user] activates the [holder] hydraulic systems.", "You activate the [holder] hydraulic systems.") + holder.icon_state = "phazon2" + else + user.visible_message("[user] disconnects the [holder] hydraulic systems", "You disconnect the [holder] hydraulic systems.") + holder.icon_state = "phazon0" + if(22) + if(diff==FORWARD) + user.visible_message("[user] adds the wiring to the [holder].", "You add the wiring to the [holder].") + holder.icon_state = "phazon3" + else + user.visible_message("[user] deactivates the [holder] hydraulic systems.", "You deactivate the [holder] hydraulic systems.") + holder.icon_state = "phazon1" + if(21) + if(diff==FORWARD) + user.visible_message("[user] adjusts the wiring of the [holder].", "You adjust the wiring of the [holder].") + holder.icon_state = "phazon4" + else + user.visible_message("[user] removes the wiring from the [holder].", "You remove the wiring from the [holder].") + var/obj/item/stack/cable_coil/coil = new /obj/item/stack/cable_coil(get_turf(holder)) + coil.amount = 4 + holder.icon_state = "phazon2" + if(20) + if(diff==FORWARD) + user.visible_message("[user] installs the central control module into the [holder].", "You install the central computer mainboard into the [holder].") + qdel(used_atom) + holder.icon_state = "phazon5" + else + user.visible_message("[user] disconnects the wiring of the [holder].", "You disconnect the wiring of the [holder].") + holder.icon_state = "phazon3" + if(19) + if(diff==FORWARD) + user.visible_message("[user] secures the mainboard.", "You secure the mainboard.") + holder.icon_state = "phazon6" + else + user.visible_message("[user] removes the central control module from the [holder].", "You remove the central computer mainboard from the [holder].") + new /obj/item/weapon/circuitboard/mecha/phazon/main(get_turf(holder)) + holder.icon_state = "phazon4" + if(18) + if(diff==FORWARD) + user.visible_message("[user] installs the peripherals control module into the [holder].", "You install the peripherals control module into the [holder].") + qdel(used_atom) + holder.icon_state = "phazon7" + else + user.visible_message("[user] unfastens the mainboard.", "You unfasten the mainboard.") + holder.icon_state = "phazon5" + if(17) + if(diff==FORWARD) + user.visible_message("[user] secures the peripherals control module.", "You secure the peripherals control module.") + holder.icon_state = "phazon8" + else + user.visible_message("[user] removes the peripherals control module from the [holder].", "You remove the peripherals control module from the [holder].") + new /obj/item/weapon/circuitboard/mecha/phazon/peripherals(get_turf(holder)) + holder.icon_state = "phazon6" + if(16) + if(diff==FORWARD) + user.visible_message("[user] installs the weapon control module into the [holder].", "You install the weapon control module into the [holder].") + qdel(used_atom) + holder.icon_state = "phazon9" + else + user.visible_message("[user] unfastens the peripherals control module.", "You unfasten the peripherals control module.") + holder.icon_state = "phazon7" + if(15) + if(diff==FORWARD) + user.visible_message("[user] secures the weapon control module.", "You secure the weapon control module.") + holder.icon_state = "phazon10" + else + user.visible_message("[user] removes the weapon control module from the [holder].", "You remove the weapon control module from the [holder].") + new /obj/item/weapon/circuitboard/mecha/phazon/targeting(get_turf(holder)) + holder.icon_state = "phazon8" + if(14) + if(diff==FORWARD) + user.visible_message("[user] installs phasic scanner module to the [holder].", "You install scanner module to the [holder].") + var/obj/item/I = used_atom + user.unEquip(I) + I.loc = holder + holder.icon_state = "phazon11" + else + user.visible_message("[user] unfastens the weapon control module.", "You unfasten the weapon control module.") + holder.icon_state = "phazon9" + if(13) + if(diff==FORWARD) + user.visible_message("[user] secures the phasic scanner module.", "You secure the scanner module.") + holder.icon_state = "phazon12" + else + user.visible_message("[user] removes the phasic scanner module from the [holder].", "You remove the scanner module from the [holder].") + var/obj/item/I = locate(/obj/item/weapon/stock_parts/scanning_module) in holder + I.loc = get_turf(holder) + holder.icon_state = "phazon10" + if(12) + if(diff==FORWARD) + user.visible_message("[user] installs super capacitor to the [holder].", "You install capacitor to the [holder].") + var/obj/item/I = used_atom + user.unEquip(I) + I.loc = holder + holder.icon_state = "phazon13" + else + user.visible_message("[user] unfastens the phasic scanner module.", "You unfasten the scanner module.") + holder.icon_state = "phazon11" + if(11) + if(diff==FORWARD) + user.visible_message("[user] secures the super capacitor.", "You secure the capacitor.") + holder.icon_state = "phazon14" + else + user.visible_message("[user] removes the super capacitor from the [holder].", "You remove the capacitor from the [holder].") + var/obj/item/I = locate(/obj/item/weapon/stock_parts/capacitor) in holder + I.loc = get_turf(holder) + holder.icon_state = "phazon12" + if(10) + if(diff==FORWARD) + user.visible_message("[user] installs the bluespace crystal.", "You install the bluespace crystal.") + qdel(used_atom) + holder.icon_state = "phazon15" + else + user.visible_message("[user] unsecures the super capacitor from the [holder].", "You unsecure the capacitor from the [holder].") + holder.icon_state = "phazon13" + if(9) + if(diff==FORWARD) + user.visible_message("[user] connects the bluespace crystal.", "You connect the bluespace crystal.") + holder.icon_state = "phazon16" + else + user.visible_message("[user] removes the bluespace crystal from the [holder].", "You remove the bluespace crystal from the [holder].") + new /obj/item/weapon/ore/bluespace_crystal(get_turf(holder)) + holder.icon_state = "phazon14" + if(8) + if(diff==FORWARD) + user.visible_message("[user] engages the bluespace crystal.", "You engage the bluespace crystal.") + holder.icon_state = "phazon17" + else + user.visible_message("[user] disconnects the bluespace crystal from the [holder].", "You disconnect the bluespace crystal from the [holder].") + holder.icon_state = "phazon15" + if(7) + if(diff==FORWARD) + user.visible_message("[user] installs the phase armor layer to the [holder].", "You install the phase armor layer to the [holder].") + holder.icon_state = "phazon18" + else + user.visible_message("[user] disengages the bluespace crystal.", "You disengage the bluespace crystal.") + holder.icon_state = "phazon16" + if(6) + if(diff==FORWARD) + user.visible_message("[user] secures the phase armor layer.", "You secure the phase armor layer.") + holder.icon_state = "phazon19" + else + user.visible_message("[user] pries the phase armor layer from the [holder].", "You pry the phase armor layer from the [holder].") + var/obj/item/stack/sheet/plasteel/MS = new /obj/item/stack/sheet/plasteel(get_turf(holder)) + MS.amount = 5 + holder.icon_state = "phazon17" + if(5) + if(diff==FORWARD) + user.visible_message("[user] welds the phase armor layer to the [holder].", "You weld the phase armor layer to the [holder].") + holder.icon_state = "phazon20" + else + user.visible_message("[user] unfastens the phase armor layer.", "You unfasten the phase armor layer.") + holder.icon_state = "phazon18" + if(4) + if(diff==FORWARD) + user.visible_message("[user] installs Phazon Armor Plates to the [holder].", "You install Phazon Armor Plates to the [holder].") + qdel(used_atom) + holder.icon_state = "phazon21" + else + user.visible_message("[user] cuts phase armor layer from the [holder].", "You cut the phase armor layer from the [holder].") + holder.icon_state = "phazon19" + if(3) + if(diff==FORWARD) + user.visible_message("[user] secures Phazon Armor Plates.", "You secure Phazon Armor Plates.") + holder.icon_state = "phazon22" + else + user.visible_message("[user] pries Phazon Armor Plates from the [holder].", "You pry Phazon Armor Plates from the [holder].") + new /obj/item/mecha_parts/part/phazon_armor(get_turf(holder)) + holder.icon_state = "phazon20" + if(2) + if(diff==FORWARD) + user.visible_message("[user] welds Phazon Armor Plates to the [holder].", "You weld Phazon Armor Plates to the [holder].") + else + user.visible_message("[user] unfastens Phazon Armor Plates.", "You unfasten Phazon Armor Plates.") + holder.icon_state = "phazon21" + if(1) + if(diff==FORWARD) + user.visible_message("[user] carefully inserts the anomaly core into \the [holder] and secures it.", "You slowly place the anomaly core into its socket and close its chamber.") + qdel(used_atom) + return 1 + +/datum/construction/reversible/mecha/phazon/spawn_result() + var/obj/mecha/combat/gygax/M = new result(get_turf(holder)) + M.CheckParts(holder) + qdel(holder) + feedback_inc("mecha_phazon_created",1) + return + +//ODYSSEUS + +/datum/construction/mecha/odysseus_chassis + steps = list(list("key"=/obj/item/mecha_parts/part/odysseus_torso),//1 + list("key"=/obj/item/mecha_parts/part/odysseus_head),//2 + list("key"=/obj/item/mecha_parts/part/odysseus_left_arm),//3 + list("key"=/obj/item/mecha_parts/part/odysseus_right_arm),//4 + list("key"=/obj/item/mecha_parts/part/odysseus_left_leg),//5 + list("key"=/obj/item/mecha_parts/part/odysseus_right_leg)//6 + ) + +/datum/construction/mecha/odysseus_chassis/custom_action(step, atom/used_atom, mob/user) + user.visible_message("[user] has connected [used_atom] to the [holder].", "You connect [used_atom] to the [holder].") + holder.add_overlay(used_atom.icon_state+"+o") + qdel(used_atom) + return 1 + +/datum/construction/mecha/odysseus_chassis/action(atom/used_atom,mob/user) + return check_all_steps(used_atom,user) + +/datum/construction/mecha/odysseus_chassis/spawn_result() + var/obj/item/mecha_parts/chassis/const_holder = holder + const_holder.construct = new /datum/construction/reversible/mecha/odysseus(const_holder) + const_holder.icon = 'icons/mecha/mech_construction.dmi' + const_holder.icon_state = "odysseus0" + const_holder.density = 1 + del src + return + + +/datum/construction/reversible/mecha/odysseus + result = "/obj/mecha/medical/odysseus" + steps = list( + //1 + list("key"=/obj/item/weapon/weldingtool, + "backkey"=/obj/item/weapon/wrench, + "desc"="External armor is wrenched."), + //2 + list("key"=/obj/item/weapon/wrench, + "backkey"=/obj/item/weapon/crowbar, + "desc"="External armor is installed."), + //3 + list("key"=/obj/item/stack/sheet/plasteel, + "backkey"=/obj/item/weapon/weldingtool, + "desc"="Internal armor is welded."), + //4 + list("key"=/obj/item/weapon/weldingtool, + "backkey"=/obj/item/weapon/wrench, + "desc"="Internal armor is wrenched."), + //5 + list("key"=/obj/item/weapon/wrench, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Internal armor is installed."), + //6 + list("key"=/obj/item/stack/sheet/metal, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="Peripherals control module is secured."), + //7 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Peripherals control module is installed."), + //8 + list("key"=/obj/item/weapon/circuitboard/mecha/odysseus/peripherals, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="Central control module is secured."), + //9 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Central control module is installed."), + //10 + list("key"=/obj/item/weapon/circuitboard/mecha/odysseus/main, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="The wiring is adjusted."), + //11 + list("key"=/obj/item/weapon/wirecutters, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="The wiring is added."), + //12 + list("key"=/obj/item/stack/cable_coil, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="The hydraulic systems are active."), + //13 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/wrench, + "desc"="The hydraulic systems are connected."), + //14 + list("key"=/obj/item/weapon/wrench, + "desc"="The hydraulic systems are disconnected.") + ) + +/datum/construction/reversible/mecha/odysseus/action(atom/used_atom,mob/user) + return check_step(used_atom,user) + +/datum/construction/reversible/mecha/odysseus/custom_action(index, diff, atom/used_atom, mob/user) + if(!..()) + return 0 + + //TODO: better messages. + switch(index) + if(14) + user.visible_message("[user] connects the [holder] hydraulic systems", "You connect the [holder] hydraulic systems.") + holder.icon_state = "odysseus1" + if(13) + if(diff==FORWARD) + user.visible_message("[user] activates the [holder] hydraulic systems.", "You activate the [holder] hydraulic systems.") + holder.icon_state = "odysseus2" + else + user.visible_message("[user] disconnects the [holder] hydraulic systems", "You disconnect the [holder] hydraulic systems.") + holder.icon_state = "odysseus0" + if(12) + if(diff==FORWARD) + user.visible_message("[user] adds the wiring to the [holder].", "You add the wiring to the [holder].") + holder.icon_state = "odysseus3" + else + user.visible_message("[user] deactivates the [holder] hydraulic systems.", "You deactivate the [holder] hydraulic systems.") + holder.icon_state = "odysseus1" + if(11) + if(diff==FORWARD) + user.visible_message("[user] adjusts the wiring of the [holder].", "You adjust the wiring of the [holder].") + holder.icon_state = "odysseus4" + else + user.visible_message("[user] removes the wiring from the [holder].", "You remove the wiring from the [holder].") + var/obj/item/stack/cable_coil/coil = new /obj/item/stack/cable_coil(get_turf(holder)) + coil.amount = 4 + holder.icon_state = "odysseus2" + if(10) + if(diff==FORWARD) + user.visible_message("[user] installs the central control module into the [holder].", "You install the central computer mainboard into the [holder].") + qdel(used_atom) + holder.icon_state = "odysseus5" + else + user.visible_message("[user] disconnects the wiring of the [holder].", "You disconnect the wiring of the [holder].") + holder.icon_state = "odysseus3" + if(9) + if(diff==FORWARD) + user.visible_message("[user] secures the mainboard.", "You secure the mainboard.") + holder.icon_state = "odysseus6" + else + user.visible_message("[user] removes the central control module from the [holder].", "You remove the central computer mainboard from the [holder].") + new /obj/item/weapon/circuitboard/mecha/odysseus/main(get_turf(holder)) + holder.icon_state = "odysseus4" + if(8) + if(diff==FORWARD) + user.visible_message("[user] installs the peripherals control module into the [holder].", "You install the peripherals control module into the [holder].") + qdel(used_atom) + holder.icon_state = "odysseus7" + else + user.visible_message("[user] unfastens the mainboard.", "You unfasten the mainboard.") + holder.icon_state = "odysseus5" + if(7) + if(diff==FORWARD) + user.visible_message("[user] secures the peripherals control module.", "You secure the peripherals control module.") + holder.icon_state = "odysseus8" + else + user.visible_message("[user] removes the peripherals control module from the [holder].", "You remove the peripherals control module from the [holder].") + new /obj/item/weapon/circuitboard/mecha/odysseus/peripherals(get_turf(holder)) + holder.icon_state = "odysseus6" + if(6) + if(diff==FORWARD) + user.visible_message("[user] installs the internal armor layer to the [holder].", "You install the internal armor layer to the [holder].") + holder.icon_state = "odysseus9" + else + user.visible_message("[user] unfastens the peripherals control module.", "You unfasten the peripherals control module.") + holder.icon_state = "odysseus7" + if(5) + if(diff==FORWARD) + user.visible_message("[user] secures the internal armor layer.", "You secure the internal armor layer.") + holder.icon_state = "odysseus10" + else + user.visible_message("[user] pries internal armor layer from the [holder].", "You pry internal armor layer from the [holder].") + var/obj/item/stack/sheet/metal/MS = new /obj/item/stack/sheet/metal(get_turf(holder)) + MS.amount = 5 + holder.icon_state = "odysseus8" + if(4) + if(diff==FORWARD) + user.visible_message("[user] welds the internal armor layer to the [holder].", "You weld the internal armor layer to the [holder].") + holder.icon_state = "odysseus11" + else + user.visible_message("[user] unfastens the internal armor layer.", "You unfasten the internal armor layer.") + holder.icon_state = "odysseus9" + if(3) + if(diff==FORWARD) + user.visible_message("[user] installs [used_atom] layer to the [holder].", "You install the external reinforced armor layer to the [holder].") + + holder.icon_state = "odysseus12" + else + user.visible_message("[user] cuts the internal armor layer from the [holder].", "You cut the internal armor layer from the [holder].") + holder.icon_state = "odysseus10" + if(2) + if(diff==FORWARD) + user.visible_message("[user] secures the external armor layer.", "You secure the external reinforced armor layer.") + holder.icon_state = "odysseus13" + else + var/obj/item/stack/sheet/plasteel/MS = new /obj/item/stack/sheet/plasteel(get_turf(holder)) + MS.amount = 5 + user.visible_message("[user] pries [MS] from the [holder].", "You pry [MS] from the [holder].") + holder.icon_state = "odysseus11" + if(1) + if(diff==FORWARD) + user.visible_message("[user] welds the external armor layer to the [holder].", "You weld the external armor layer to the [holder].") + holder.icon_state = "odysseus14" + else + user.visible_message("[user] unfastens the external armor layer.", "You unfasten the external armor layer.") + holder.icon_state = "odysseus12" + return 1 + +/datum/construction/reversible/mecha/odysseus/spawn_result() + ..() + feedback_inc("mecha_odysseus_created",1) + return diff --git a/code/game/mecha/mecha_control_console.dm b/code/game/mecha/mecha_control_console.dm new file mode 100644 index 0000000..56eeed2 --- /dev/null +++ b/code/game/mecha/mecha_control_console.dm @@ -0,0 +1,129 @@ +/obj/machinery/computer/mecha + name = "exosuit control console" + desc = "Used to remotely locate or lockdown exosuits." + icon_screen = "mecha" + icon_keyboard = "tech_key" + req_access = list(access_robotics) + circuit = /obj/item/weapon/circuitboard/computer/mecha_control + var/list/located = list() + var/screen = 0 + var/stored_data + +/obj/machinery/computer/mecha/attack_hand(mob/user) + if(..()) + return + user.set_machine(src) + var/dat = "[src.name]" + if(screen == 0) + dat += "

            Tracking beacons data

            " + var/list/trackerlist = list() + for(var/obj/mecha/MC in mechas_list) + trackerlist += MC.trackers + for(var/obj/item/mecha_parts/mecha_tracking/TR in trackerlist) + var/answer = TR.get_mecha_info() + if(answer) + dat += {"
            [answer]
            + Send message
            + Show exosuit log | (EMP pulse)
            "} + + if(screen==1) + dat += "

            Log contents

            " + dat += "Return
            " + dat += "[stored_data]" + + dat += "(Refresh)
            " + dat += "" + + user << browse(dat, "window=computer;size=400x500") + onclose(user, "computer") + return + +/obj/machinery/computer/mecha/Topic(href, href_list) + if(..()) + return + var/datum/topic_input/filter = new /datum/topic_input(href,href_list) + if(href_list["send_message"]) + var/obj/item/mecha_parts/mecha_tracking/MT = filter.getObj("send_message") + var/message = stripped_input(usr,"Input message","Transmit message") + var/obj/mecha/M = MT.in_mecha() + if(trim(message) && M) + M.occupant_message(message) + return + if(href_list["shock"]) + var/obj/item/mecha_parts/mecha_tracking/MT = filter.getObj("shock") + MT.shock() + if(href_list["get_log"]) + var/obj/item/mecha_parts/mecha_tracking/MT = filter.getObj("get_log") + stored_data = MT.get_mecha_log() + screen = 1 + if(href_list["return"]) + screen = 0 + updateUsrDialog() + return + +/obj/item/mecha_parts/mecha_tracking + name = "exosuit tracking beacon" + desc = "Device used to transmit exosuit data." + icon = 'icons/obj/device.dmi' + icon_state = "motion2" + w_class = 2 + origin_tech = "programming=2;magnets=2" + +/obj/item/mecha_parts/mecha_tracking/proc/get_mecha_info() + if(!in_mecha()) + return 0 + var/obj/mecha/M = src.loc + var/cell_charge = M.get_charge() + var/answer = {"Name: [M.name]
            + Integrity: [M.obj_integrity/M.max_integrity*100]%
            + Cell charge: [isnull(cell_charge)?"Not found":"[M.cell.percent()]%"]
            + Airtank: [M.return_pressure()]kPa
            + Pilot: [M.occupant||"None"]
            + Location: [get_area(M)||"Unknown"]
            + Active equipment: [M.selected||"None"]
            "} + if(istype(M, /obj/mecha/working/ripley)) + var/obj/mecha/working/ripley/RM = M + answer += "Used cargo space: [RM.cargo.len/RM.cargo_capacity*100]%
            " + + return answer + +/obj/item/mecha_parts/mecha_tracking/emp_act() + qdel(src) + +/obj/item/mecha_parts/mecha_tracking/Destroy() + if(istype(loc, /obj/mecha)) + var/obj/mecha/M = loc + if(src in M.trackers) + M.trackers -= src + return ..() + +/obj/item/mecha_parts/mecha_tracking/proc/in_mecha() + if(istype(src.loc, /obj/mecha)) + return src.loc + return 0 + +/obj/item/mecha_parts/mecha_tracking/proc/shock() + var/obj/mecha/M = in_mecha() + if(M) + M.emp_act(2) + qdel(src) + +/obj/item/mecha_parts/mecha_tracking/proc/get_mecha_log() + if(!istype(loc, /obj/mecha)) + return 0 + var/obj/mecha/M = src.loc + return M.get_log_html() + + +/obj/item/weapon/storage/box/mechabeacons + name = "exosuit tracking beacons" + +/obj/item/weapon/storage/box/mechabeacons/New() + ..() + new /obj/item/mecha_parts/mecha_tracking(src) + new /obj/item/mecha_parts/mecha_tracking(src) + new /obj/item/mecha_parts/mecha_tracking(src) + new /obj/item/mecha_parts/mecha_tracking(src) + new /obj/item/mecha_parts/mecha_tracking(src) + new /obj/item/mecha_parts/mecha_tracking(src) + new /obj/item/mecha_parts/mecha_tracking(src) diff --git a/code/game/mecha/mecha_defense.dm b/code/game/mecha/mecha_defense.dm new file mode 100644 index 0000000..4a8ee45 --- /dev/null +++ b/code/game/mecha/mecha_defense.dm @@ -0,0 +1,334 @@ +/obj/mecha/proc/get_armour_facing(relative_dir) + switch(relative_dir) + if(0) // BACKSTAB! + return facing_modifiers[BACK_ARMOUR] + if(45, 90, 270, 315) + return facing_modifiers[SIDE_ARMOUR] + if(225, 180, 135) + return facing_modifiers[FRONT_ARMOUR] + return 1 //always return non-0 + +/obj/mecha/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir) + . = ..() + if(. && obj_integrity > 0) + spark_system.start() + switch(damage_flag) + if("fire") + check_for_internal_damage(list(MECHA_INT_FIRE,MECHA_INT_TEMP_CONTROL)) + if("melee") + check_for_internal_damage(list(MECHA_INT_TEMP_CONTROL,MECHA_INT_TANK_BREACH,MECHA_INT_CONTROL_LOST)) + else + check_for_internal_damage(list(MECHA_INT_FIRE,MECHA_INT_TEMP_CONTROL,MECHA_INT_TANK_BREACH,MECHA_INT_CONTROL_LOST,MECHA_INT_SHORT_CIRCUIT)) + if(. >= 5 || prob(33)) + occupant_message("Taking damage!") + log_append_to_last("Took [damage_amount] points of damage. Damage type: \"[damage_type]\".",1) + +/obj/mecha/run_obj_armor(damage_amount, damage_type, damage_flag = 0, attack_dir) + . = ..() + var/booster_deflection_modifier = 1 + var/booster_damage_modifier = 1 + if(damage_flag == "bullet" || damage_flag == "laser" || damage_flag == "energy") + for(var/obj/item/mecha_parts/mecha_equipment/antiproj_armor_booster/B in equipment) + if(B.projectile_react()) + booster_deflection_modifier = B.deflect_coeff + booster_damage_modifier = B.damage_coeff + break + else if(damage_flag == "melee") + for(var/obj/item/mecha_parts/mecha_equipment/anticcw_armor_booster/B in equipment) + if(B.attack_react()) + booster_deflection_modifier *= B.deflect_coeff + booster_damage_modifier *= B.damage_coeff + break + + if(attack_dir) + var/facing_modifier = get_armour_facing(dir2angle(attack_dir) - dir2angle(src)) + booster_damage_modifier /= facing_modifier + booster_deflection_modifier *= facing_modifier + if(prob(deflect_chance * booster_deflection_modifier)) + visible_message("[src]'s armour deflects the attack!") + log_append_to_last("Armor saved.") + return 0 + if(.) + . *= booster_damage_modifier + + +/obj/mecha/attack_hand(mob/living/user) + user.changeNext_move(CLICK_CD_MELEE) // Ugh. Ideally we shouldn't be setting cooldowns outside of click code. + user.do_attack_animation(src, ATTACK_EFFECT_PUNCH) + playsound(loc, 'sound/weapons/tap.ogg', 40, 1, -1) + user.visible_message("[user] hits [name]. Nothing happens", null, null, COMBAT_MESSAGE_RANGE) + log_message("Attack by hand/paw. Attacker - [user].",1) + log_append_to_last("Armor saved.") + +/obj/mecha/attack_paw(mob/user as mob) + return attack_hand(user) + + +/obj/mecha/attack_alien(mob/living/user) + log_message("Attack by alien. Attacker - [user].",1) + playsound(src.loc, 'sound/weapons/slash.ogg', 100, 1) + attack_generic(user, 15, BRUTE, "melee", 0) + +/obj/mecha/attack_animal(mob/living/simple_animal/user) + log_message("Attack by simple animal. Attacker - [user].",1) + if(!user.melee_damage_upper && !user.obj_damage) + user.emote("[user.friendly] [src]") + return 0 + else + var/play_soundeffect = 1 + if(user.environment_smash) + play_soundeffect = 0 + playsound(src, 'sound/effects/bang.ogg', 50, 1) + var/animal_damage = rand(user.melee_damage_lower,user.melee_damage_upper) + if(user.obj_damage) + animal_damage = user.obj_damage + animal_damage = min(animal_damage, 20*user.environment_smash) + attack_generic(user, animal_damage, user.melee_damage_type, "melee", play_soundeffect) + add_logs(user, src, "attacked") + return 1 + + + +/obj/mecha/attack_hulk(mob/living/carbon/human/user) + if(user.a_intent == "harm") + log_message("Attack by hulk. Attacker - [user].",1) + user.changeNext_move(CLICK_CD_MELEE) + add_logs(user, src, "punched", "hulk powers") + user.visible_message("[user] hits [name]. The metal creaks and bends.", null, null, COMBAT_MESSAGE_RANGE) + user.do_attack_animation(src, ATTACK_EFFECT_SMASH) + take_damage(15, BRUTE, "melee", 0, get_dir(src, user)) + return 1 + +/obj/mecha/blob_act(obj/structure/blob/B) + take_damage(30, BRUTE, "melee", 0, get_dir(src, B)) + +/obj/mecha/attack_tk() + return + +/obj/mecha/hitby(atom/movable/A as mob|obj) //wrapper + log_message("Hit by [A].",1) + . = ..() + + +/obj/mecha/bullet_act(obj/item/projectile/Proj) //wrapper + log_message("Hit by projectile. Type: [Proj.name]([Proj.flag]).",1) + . = ..() + +/obj/mecha/ex_act(severity, target) + log_message("Affected by explosion of severity: [severity].",1) + if(prob(deflect_chance)) + severity++ + log_append_to_last("Armor saved, changing severity to [severity].") + . = ..() + +/obj/mecha/contents_explosion(severity, target) + severity++ + for(var/X in equipment) + var/obj/item/mecha_parts/mecha_equipment/ME = X + ME.ex_act(severity,target) + for(var/Y in trackers) + var/obj/item/mecha_parts/mecha_tracking/MT = Y + MT.ex_act(severity, target) + if(occupant) + occupant.ex_act(severity,target) + +/obj/mecha/handle_atom_del(atom/A) + if(A == occupant) + occupant = null + icon_state = initial(icon_state)+"-open" + setDir(dir_in) + +/obj/mecha/emp_act(severity) + if(get_charge()) + use_power((cell.charge/3)/(severity*2)) + take_damage(30 / severity, BURN, "energy", 1) + log_message("EMP detected",1) + check_for_internal_damage(list(MECHA_INT_FIRE,MECHA_INT_TEMP_CONTROL,MECHA_INT_CONTROL_LOST,MECHA_INT_SHORT_CIRCUIT),1) + +/obj/mecha/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) + if(exposed_temperature>max_temperature) + log_message("Exposed to dangerous temperature.",1) + take_damage(5, BURN, 0, 1) + +/obj/mecha/attackby(obj/item/W as obj, mob/user as mob, params) + + if(istype(W, /obj/item/device/mmi)) + if(mmi_move_inside(W,user)) + user << "[src]-[W] interface initialized successfuly" + else + user << "[src]-[W] interface initialization failed." + return + + if(istype(W, /obj/item/mecha_parts/mecha_equipment)) + var/obj/item/mecha_parts/mecha_equipment/E = W + spawn() + if(E.can_attach(src)) + if(!user.drop_item()) + return + E.attach(src) + user.visible_message("[user] attaches [W] to [src].", "You attach [W] to [src].") + else + user << "You were unable to attach [W] to [src]!" + return + if(W.GetID()) + if(add_req_access || maint_access) + if(internals_access_allowed(user)) + var/obj/item/weapon/card/id/id_card + if(istype(W, /obj/item/weapon/card/id)) + id_card = W + else + var/obj/item/device/pda/pda = W + id_card = pda.id + output_maintenance_dialog(id_card, user) + return + else + user << "Invalid ID: Access denied." + else + user << "Maintenance protocols disabled by operator." + else if(istype(W, /obj/item/weapon/wrench)) + if(state==1) + state = 2 + user << "You undo the securing bolts." + else if(state==2) + state = 1 + user << "You tighten the securing bolts." + return + else if(istype(W, /obj/item/weapon/crowbar)) + if(state==2) + state = 3 + user << "You open the hatch to the power unit." + else if(state==3) + state=2 + user << "You close the hatch to the power unit." + return + else if(istype(W, /obj/item/stack/cable_coil)) + if(state == 3 && (internal_damage & MECHA_INT_SHORT_CIRCUIT)) + var/obj/item/stack/cable_coil/CC = W + if(CC.use(2)) + clearInternalDamage(MECHA_INT_SHORT_CIRCUIT) + user << "You replace the fused wires." + else + user << "You need two lengths of cable to fix this mech!" + return + else if(istype(W, /obj/item/weapon/screwdriver) && user.a_intent != "harm") + if(internal_damage & MECHA_INT_TEMP_CONTROL) + clearInternalDamage(MECHA_INT_TEMP_CONTROL) + user << "You repair the damaged temperature controller." + else if(state==3 && cell) + cell_power_remaining = max(0.1, cell.charge/cell.maxcharge) //10% charge or whatever is remaining in the current cell + cell.forceMove(loc) + cell = null + state = 4 + user << "You unscrew and pry out the powercell." + log_message("Powercell removed") + else if(state==4 && cell) + state=3 + user << "You screw the cell in place." + return + + else if(istype(W, /obj/item/weapon/stock_parts/cell)) + if(state==4) + if(!cell) + if(!user.drop_item()) + return + var/obj/item/weapon/stock_parts/cell/C = W + user << "You install the powercell." + C.forceMove(src) + C.use(max(0, C.charge - C.maxcharge*cell_power_remaining)) //Set inserted cell's power to saved percentage if that's higher + cell = C + log_message("Powercell installed") + else + user << "There's already a powercell installed." + return + + else if(istype(W, /obj/item/weapon/weldingtool) && user.a_intent != "harm") + user.changeNext_move(CLICK_CD_MELEE) + var/obj/item/weapon/weldingtool/WT = W + if(obj_integrityYou repair the damaged gas tank.
            " + else + user.visible_message("[user] repairs some damage to [name].") + obj_integrity += min(10, max_integrity-obj_integrity) + else + user << "The welder must be on for this task!" + return 1 + else + user << "The [name] is at full integrity!" + return 1 + + else if(istype(W, /obj/item/mecha_parts/mecha_tracking)) + if(!user.unEquip(W)) + user << "\the [W] is stuck to your hand, you cannot put it in \the [src]!" + return + W.forceMove(src) + trackers += W + user.visible_message("[user] attaches [W] to [src].", "You attach [W] to [src].") + return + else + return ..() + +/obj/mecha/attacked_by(obj/item/I, mob/living/user) + log_message("Attacked by [I]. Attacker - [user]") + ..() + +/obj/mecha/proc/mech_toxin_damage(mob/living/target) + playsound(src, 'sound/effects/spray2.ogg', 50, 1) + if(target.reagents) + if(target.reagents.get_reagent_amount("cryptobiolin") + force < force*2) + target.reagents.add_reagent("cryptobiolin", force/2) + if(target.reagents.get_reagent_amount("toxin") + force < force*2) + target.reagents.add_reagent("toxin", force/2.5) + + +/obj/mecha/mech_melee_attack(obj/mecha/M) + if(M.damtype == BRUTE || M.damtype == BURN) + add_logs(M.occupant, src, "attacked", M, "(INTENT: [uppertext(M.occupant.a_intent)]) (DAMTYPE: [uppertext(M.damtype)])") + . = ..() + +/obj/mecha/proc/full_repair(charge_cell) + obj_integrity = max_integrity + if(cell && charge_cell) + cell.charge = cell.maxcharge + if(internal_damage & MECHA_INT_FIRE) + clearInternalDamage(MECHA_INT_FIRE) + if(internal_damage & MECHA_INT_TEMP_CONTROL) + clearInternalDamage(MECHA_INT_TEMP_CONTROL) + if(internal_damage & MECHA_INT_SHORT_CIRCUIT) + clearInternalDamage(MECHA_INT_SHORT_CIRCUIT) + if(internal_damage & MECHA_INT_TANK_BREACH) + clearInternalDamage(MECHA_INT_TANK_BREACH) + if(internal_damage & MECHA_INT_CONTROL_LOST) + clearInternalDamage(MECHA_INT_CONTROL_LOST) + +/obj/mecha/narsie_act() + if(occupant) + var/mob/living/L = occupant + go_out(TRUE) + if(L) + L.narsie_act() + +/obj/mecha/ratvar_act() + if(occupant) + if(is_servant_of_ratvar(occupant)) //reward the minion that got a mech by repairing it + full_repair(TRUE) + else + var/mob/living/L = occupant + go_out(TRUE) + if(L) + L.ratvar_act() + +/obj/mecha/do_attack_animation(atom/A, visual_effect_icon, obj/item/used_item, no_effect, end_pixel_y) + if(!no_effect) + if(selected) + used_item = selected + else if(!visual_effect_icon) + visual_effect_icon = ATTACK_EFFECT_SMASH + if(damtype == BURN) + visual_effect_icon = ATTACK_EFFECT_MECHFIRE + else if(damtype == TOX) + visual_effect_icon = ATTACK_EFFECT_MECHTOXIN + ..() + diff --git a/code/game/mecha/mecha_parts.dm b/code/game/mecha/mecha_parts.dm new file mode 100644 index 0000000..ea55d90 --- /dev/null +++ b/code/game/mecha/mecha_parts.dm @@ -0,0 +1,402 @@ +///////////////////////// +////// Mecha Parts ////// +///////////////////////// + +/obj/item/mecha_parts + name = "mecha part" + icon = 'icons/mecha/mech_construct.dmi' + icon_state = "blank" + w_class = 6 + flags = CONDUCT + origin_tech = "programming=2;materials=2;engineering=2" + +/obj/item/mecha_parts/chassis + name="Mecha Chassis" + icon_state = "backbone" + var/datum/construction/construct + +/obj/item/mecha_parts/chassis/attackby(obj/item/W, mob/user, params) + if(!construct || !construct.action(W, user)) + return ..() + +/obj/item/mecha_parts/chassis/attack_hand() + return + +/////////// Ripley + +/obj/item/mecha_parts/chassis/ripley + name = "\improper Ripley chassis" + +/obj/item/mecha_parts/chassis/ripley/New() + ..() + construct = new /datum/construction/mecha/ripley_chassis(src) + +/obj/item/mecha_parts/part/ripley_torso + name = "\improper Ripley torso" + desc = "A torso part of Ripley APLU. Contains power unit, processing core and life support systems." + icon_state = "ripley_harness" + origin_tech = "programming=2;materials=2;biotech=2;engineering=2" + +/obj/item/mecha_parts/part/ripley_left_arm + name = "\improper Ripley left arm" + desc = "A Ripley APLU left arm. Data and power sockets are compatible with most exosuit tools." + icon_state = "ripley_l_arm" + +/obj/item/mecha_parts/part/ripley_right_arm + name = "\improper Ripley right arm" + desc = "A Ripley APLU right arm. Data and power sockets are compatible with most exosuit tools." + icon_state = "ripley_r_arm" + +/obj/item/mecha_parts/part/ripley_left_leg + name = "\improper Ripley left leg" + desc = "A Ripley APLU left leg. Contains somewhat complex servodrives and balance maintaining systems." + icon_state = "ripley_l_leg" + +/obj/item/mecha_parts/part/ripley_right_leg + name = "\improper Ripley right leg" + desc = "A Ripley APLU right leg. Contains somewhat complex servodrives and balance maintaining systems." + icon_state = "ripley_r_leg" + +///////// Odysseus + +/obj/item/mecha_parts/chassis/odysseus + name = "\improper Odysseus chassis" + +/obj/item/mecha_parts/chassis/odysseus/New() + ..() + construct = new /datum/construction/mecha/odysseus_chassis(src) + +/obj/item/mecha_parts/part/odysseus_head + name = "\improper Odysseus head" + desc = "An Odysseus head. Contains an integrated medical HUD scanner." + icon_state = "odysseus_head" + +/obj/item/mecha_parts/part/odysseus_torso + name = "\improper Odysseus torso" + desc="A torso part of Odysseus. Contains power unit, processing core and life support systems along with an attachment port for a mounted sleeper." + icon_state = "odysseus_torso" + origin_tech = "programming=2;materials=2;biotech=2;engineering=2" + +/obj/item/mecha_parts/part/odysseus_left_arm + name = "\improper Odysseus left arm" + desc = "An Odysseus left arm. Data and power sockets are compatible with specialized medical equipment." + icon_state = "odysseus_l_arm" + +/obj/item/mecha_parts/part/odysseus_right_arm + name = "\improper Odysseus right arm" + desc = "An Odysseus right arm. Data and power sockets are compatible with specialized medical equipment." + icon_state = "odysseus_r_arm" + +/obj/item/mecha_parts/part/odysseus_left_leg + name = "\improper Odysseus left leg" + desc = "An Odysseus left leg. Contains complex servodrives and balance maintaining systems to maintain stability for critical patients." + icon_state = "odysseus_l_leg" + +/obj/item/mecha_parts/part/odysseus_right_leg + name = "\improper Odysseus right leg" + desc = "A Odysseus right leg. Contains complex servodrives and balance maintaining systems to maintain stability for critical patients." + icon_state = "odysseus_r_leg" + +///////// Gygax + +/obj/item/mecha_parts/chassis/gygax + name = "\improper Gygax chassis" + +/obj/item/mecha_parts/chassis/gygax/New() + ..() + construct = new /datum/construction/mecha/gygax_chassis(src) + +/obj/item/mecha_parts/part/gygax_torso + name = "\improper Gygax torso" + desc = "A torso part of Gygax. Contains power unit, processing core and life support systems." + icon_state = "gygax_harness" + origin_tech = "programming=2;materials=4;biotech=3;engineering=3" + +/obj/item/mecha_parts/part/gygax_head + name = "\improper Gygax head" + desc = "A Gygax head. Houses advanced surveilance and targeting sensors." + icon_state = "gygax_head" + origin_tech = "programming=2;materials=4;magnets=3;engineering=3" + +/obj/item/mecha_parts/part/gygax_left_arm + name = "\improper Gygax left arm" + desc = "A Gygax left arm. Data and power sockets are compatible with most exosuit tools and weapons." + icon_state = "gygax_l_arm" + origin_tech = "programming=2;materials=4;engineering=3" + +/obj/item/mecha_parts/part/gygax_right_arm + name = "\improper Gygax right arm" + desc = "A Gygax right arm. Data and power sockets are compatible with most exosuit tools and weapons." + icon_state = "gygax_r_arm" + origin_tech = "programming=2;materials=4;engineering=3" + +/obj/item/mecha_parts/part/gygax_left_leg + name = "\improper Gygax left leg" + desc = "A Gygax left leg. Constructed with advanced servomechanisms and actuators to enable faster speed." + icon_state = "gygax_l_leg" + origin_tech = "programming=2;materials=4;engineering=3" + +/obj/item/mecha_parts/part/gygax_right_leg + name = "\improper Gygax right leg" + desc = "A Gygax right leg. Constructed with advanced servomechanisms and actuators to enable faster speed." + icon_state = "gygax_r_leg" + origin_tech = "programming=2;materials=4;engineering=3" + +/obj/item/mecha_parts/part/gygax_armor + gender = PLURAL + name = "\improper Gygax armor plates" + desc = "A set of armor plates designed for the Gygax. Designed to effectively deflect damage with a lightweight construction." + icon_state = "gygax_armor" + origin_tech = "materials=6;combat=4;engineering=4" + + +//////////// Durand + +/obj/item/mecha_parts/chassis/durand + name = "\improper Durand chassis" + +/obj/item/mecha_parts/chassis/durand/New() + ..() + construct = new /datum/construction/mecha/durand_chassis(src) + +/obj/item/mecha_parts/part/durand_torso + name = "\improper Durand torso" + desc = "A torso part of Durand. Contains power unit, processing core and life support systems within a robust protective frame." + icon_state = "durand_harness" + origin_tech = "programming=2;materials=3;biotech=3;engineering=3" + +/obj/item/mecha_parts/part/durand_head + name = "\improper Durand head" + desc = "A Durand head. Houses advanced surveilance and targeting sensors." + icon_state = "durand_head" + origin_tech = "programming=2;materials=3;magnets=3;engineering=3" + +/obj/item/mecha_parts/part/durand_left_arm + name = "\improper Durand left arm" + desc = "A Durand left arm. Data and power sockets are compatible with most exosuit tools and weapons. Packs a really mean punch as well." + icon_state = "durand_l_arm" + origin_tech = "programming=2;materials=3;engineering=3" + +/obj/item/mecha_parts/part/durand_right_arm + name = "\improper Durand right arm" + desc = "A Durand right arm. Data and power sockets are compatible with most exosuit tools and weapons. Packs a really mean punch as well." + icon_state = "durand_r_arm" + origin_tech = "programming=2;materials=3;engineering=3" + +/obj/item/mecha_parts/part/durand_left_leg + name = "\improper Durand left leg" + desc = "A Durand left leg. Built particlarly sturdy to support the Durand's heavy weight and defensive needs." + icon_state = "durand_l_leg" + origin_tech = "programming=2;materials=3;engineering=3" + +/obj/item/mecha_parts/part/durand_right_leg + name = "\improper Durand right leg" + desc = "A Durand right leg. Built particlarly sturdy to support the Durand's heavy weight and defensive needs." + icon_state = "durand_r_leg" + origin_tech = "programming=2;materials=3;engineering=3" + +/obj/item/mecha_parts/part/durand_armor + gender = PLURAL + name = "\improper Durand armor plates" + desc = "A set of armor plates for the Durand. Built heavy to resist an incredible amount of brute force." + icon_state = "durand_armor" + origin_tech = "materials=5;combat=4;engineering=4" + +////////// Firefighter + +/obj/item/mecha_parts/chassis/firefighter + name = "Firefighter chassis" + +/obj/item/mecha_parts/chassis/firefighter/New() + ..() + construct = new /datum/construction/mecha/firefighter_chassis(src) + + +////////// HONK + +/obj/item/mecha_parts/chassis/honker + name = "\improper H.O.N.K chassis" + +/obj/item/mecha_parts/chassis/honker/New() + ..() + construct = new /datum/construction/mecha/honker_chassis(src) + +/obj/item/mecha_parts/part/honker_torso + name = "\improper H.O.N.K torso" + desc = "A torso part of H.O.N.K. Contains chuckle unit, bananium core and honk support systems." + icon_state = "honker_harness" + +/obj/item/mecha_parts/part/honker_head + name = "\improper H.O.N.K head" + desc = "A H.O.N.K head. Appears to lack a face plate." + icon_state = "honker_head" + +/obj/item/mecha_parts/part/honker_left_arm + name = "\improper H.O.N.K left arm" + desc = "A H.O.N.K left arm. With unique sockets that accept odd weaponry designed by clown scientists." + icon_state = "honker_l_arm" + +/obj/item/mecha_parts/part/honker_right_arm + name = "\improper H.O.N.K right arm" + desc = "A H.O.N.K right arm. With unique sockets that accept odd weaponry designed by clown scientists." + icon_state = "honker_r_arm" + +/obj/item/mecha_parts/part/honker_left_leg + name = "\improper H.O.N.K left leg" + desc = "A H.O.N.K left leg. The foot appears just large enough to fully accomodate a clown shoe." + icon_state = "honker_l_leg" + +/obj/item/mecha_parts/part/honker_right_leg + name = "\improper H.O.N.K right leg" + desc = "A H.O.N.K right leg. The foot appears just large enough to fully accomodate a clown shoe." + icon_state = "honker_r_leg" + + +////////// Phazon + +/obj/item/mecha_parts/chassis/phazon + name = "\improper Phazon chassis" + +/obj/item/mecha_parts/chassis/phazon/New() + ..() + construct = new /datum/construction/mecha/phazon_chassis(src) + +/obj/item/mecha_parts/part/phazon_torso + name="\improper Phazon torso" + desc="A Phazon torso part. The socket for the bluespace core that powers the exosuit's unique phase drives is located in the middle." + icon_state = "phazon_harness" + origin_tech = "programming=4;materials=4;bluespace=4;plasmatech=5" + +/obj/item/mecha_parts/part/phazon_head + name="\improper Phazon head" + desc="A Phazon head. Its sensors are carefully calibrated to provide vision and data even when the exosuit is phasing." + icon_state = "phazon_head" + origin_tech = "programming=3;materials=3;magnets=3" + +/obj/item/mecha_parts/part/phazon_left_arm + name="\improper Phazon left arm" + desc="A Phazon left arm. Several microtool arrays are located under the armor plating, which can be adjusted to the situation at hand." + icon_state = "phazon_l_arm" + origin_tech = "materials=3;bluespace=3;magnets=3" + +/obj/item/mecha_parts/part/phazon_right_arm + name="\improper Phazon right arm" + desc="A Phazon right arm. Several microtool arrays are located under the armor plating, which can be adjusted to the situation at hand." + icon_state = "phazon_r_arm" + origin_tech = "materials=3;bluespace=3;magnets=3" + +/obj/item/mecha_parts/part/phazon_left_leg + name="\improper Phazon left leg" + desc="A Phazon left leg. It contains the unique phase drives that allow the exosuit to phase through solid matter when engaged." + icon_state = "phazon_l_leg" + origin_tech = "materials=3;bluespace=3;magnets=3" + +/obj/item/mecha_parts/part/phazon_right_leg + name="\improper Phazon right leg" + desc="A Phazon right leg. It contains the unique phase drives that allow the exosuit to phase through solid matter when engaged." + icon_state = "phazon_r_leg" + origin_tech = "materials=3;bluespace=3;magnets=3" + +/obj/item/mecha_parts/part/phazon_armor + name="Phazon armor" + desc="Phazon armor plates. They are layered with plasma to protect the pilot from the stress of phasing and have unusual properties." + icon_state = "phazon_armor" + origin_tech = "materials=4;bluespace=4;plasmatech=5" + + +///////// Circuitboards + +/obj/item/weapon/circuitboard/mecha + name = "exosuit circuit board" + icon = 'icons/obj/module.dmi' + icon_state = "std_mod" + item_state = "electronic" + flags = CONDUCT + force = 5 + w_class = 2 + throwforce = 0 + throw_speed = 3 + throw_range = 7 + +/obj/item/weapon/circuitboard/mecha/ripley + origin_tech = "programming=2" + +/obj/item/weapon/circuitboard/mecha/ripley/peripherals + name = "circuit board (Ripley Peripherals Control module)" + icon_state = "mcontroller" + +/obj/item/weapon/circuitboard/mecha/ripley/main + name = "circuit board (Ripley Central Control module)" + icon_state = "mainboard" + +/obj/item/weapon/circuitboard/mecha/gygax + origin_tech = "programming=4;combat=3;engineering=3" + +/obj/item/weapon/circuitboard/mecha/gygax/peripherals + name = "circuit board (Gygax Peripherals Control module)" + icon_state = "mcontroller" + +/obj/item/weapon/circuitboard/mecha/gygax/targeting + name = "circuit board (Gygax Weapon Control and Targeting module)" + icon_state = "mcontroller" + origin_tech = "programming=4;combat=4" + +/obj/item/weapon/circuitboard/mecha/gygax/main + name = "circuit board (Gygax Central Control module)" + icon_state = "mainboard" + +/obj/item/weapon/circuitboard/mecha/durand + origin_tech = "programming=4;combat=3;engineering=3" + +/obj/item/weapon/circuitboard/mecha/durand/peripherals + name = "circuit board (Durand Peripherals Control module)" + icon_state = "mcontroller" + +/obj/item/weapon/circuitboard/mecha/durand/targeting + name = "circuit board (Durand Weapon Control and Targeting module)" + icon_state = "mcontroller" + origin_tech = "programming=4;combat=4;engineering=3" + +/obj/item/weapon/circuitboard/mecha/durand/main + name = "circuit board (Durand Central Control module)" + icon_state = "mainboard" + +/obj/item/weapon/circuitboard/mecha/honker + origin_tech = "programming=3;engineering=3" + +/obj/item/weapon/circuitboard/mecha/honker/peripherals + name = "circuit board (H.O.N.K Peripherals Control module)" + icon_state = "mcontroller" + +/obj/item/weapon/circuitboard/mecha/honker/targeting + name = "circuit board (H.O.N.K Weapon Control and Targeting module)" + icon_state = "mcontroller" + +/obj/item/weapon/circuitboard/mecha/honker/main + name = "circuit board (H.O.N.K Central Control module)" + icon_state = "mainboard" + +/obj/item/weapon/circuitboard/mecha/odysseus + origin_tech = "programming=3;biotech=3" + +/obj/item/weapon/circuitboard/mecha/odysseus/peripherals + name = "circuit board (Odysseus Peripherals Control module)" + icon_state = "mcontroller" + +/obj/item/weapon/circuitboard/mecha/odysseus/main + name = "circuit board (Odysseus Central Control module)" + icon_state = "mainboard" + +/obj/item/weapon/circuitboard/mecha/phazon + origin_tech = "programming=5;plasmatech=4" + +/obj/item/weapon/circuitboard/mecha/phazon/peripherals + name = "circuit board (Phazon Peripherals Control module)" + icon_state = "mcontroller" + +/obj/item/weapon/circuitboard/mecha/phazon/targeting + name = "circuit board (Phazon Weapon Control and Targeting module)" + icon_state = "mcontroller" + +/obj/item/weapon/circuitboard/mecha/phazon/main + name = "circuit board (Phazon Central Control module)" diff --git a/code/game/mecha/mecha_topic.dm b/code/game/mecha/mecha_topic.dm new file mode 100644 index 0000000..0f66231 --- /dev/null +++ b/code/game/mecha/mecha_topic.dm @@ -0,0 +1,331 @@ + +//////////////////////////////////// +///// Rendering stats window /////// +//////////////////////////////////// + +/obj/mecha/proc/get_stats_html() + . = {" + [src.name] data + + + + +
            + [src.get_stats_part()] +
            +
            + [src.get_equipment_list()] +
            +
            +
            + [src.get_commands()] +
            + + + "} + + + +/obj/mecha/proc/report_internal_damage() + . = "" + var/list/dam_reports = list( + "[MECHA_INT_FIRE]" = "INTERNAL FIRE", + "[MECHA_INT_TEMP_CONTROL]" = "LIFE SUPPORT SYSTEM MALFUNCTION", + "[MECHA_INT_TANK_BREACH]" = "GAS TANK BREACH", + "[MECHA_INT_CONTROL_LOST]" = "COORDINATION SYSTEM CALIBRATION FAILURE - Recalibrate", + "[MECHA_INT_SHORT_CIRCUIT]" = "SHORT CIRCUIT" + ) + for(var/tflag in dam_reports) + var/intdamflag = text2num(tflag) + if(internal_damage & intdamflag) + . += dam_reports[tflag] + . += "
            " + if(return_pressure() > WARNING_HIGH_PRESSURE) + . += "DANGEROUSLY HIGH CABIN PRESSURE
            " + + + +/obj/mecha/proc/get_stats_part() + var/integrity = obj_integrity/max_integrity*100 + var/cell_charge = get_charge() + var/datum/gas_mixture/int_tank_air = internal_tank.return_air() + var/tank_pressure = internal_tank ? round(int_tank_air.return_pressure(),0.01) : "None" + var/tank_temperature = internal_tank ? int_tank_air.temperature : "Unknown" + var/cabin_pressure = round(return_pressure(),0.01) + . = {"[report_internal_damage()] + [integrity<30?"DAMAGE LEVEL CRITICAL
            ":null] + Integrity: [integrity]%
            + Powercell charge: [isnull(cell_charge)?"No powercell installed":"[cell.percent()]%"]
            + Air source: [use_internal_tank?"Internal Airtank":"Environment"]
            + Airtank pressure: [tank_pressure]kPa
            + Airtank temperature: [tank_temperature]°K|[tank_temperature - T0C]°C
            + Cabin pressure: [cabin_pressure>WARNING_HIGH_PRESSURE ? "[cabin_pressure]": cabin_pressure]kPa
            + Cabin temperature: [return_temperature()]°K|[return_temperature() - T0C]°C
            + [dna_lock?"DNA-locked:
            [dna_lock] \[Reset\]
            ":""]
            + [thrusters_action.owner ? "Thrusters: [thrusters_active ? "Enabled" : "Disabled"]
            " : ""] + [defense_action.owner ? "Defence Mode: [defence_mode ? "Enabled" : "Disabled"]
            " : ""] + [overload_action.owner ? "Leg Actuators Overload: [leg_overload_mode ? "Enabled" : "Disabled"]
            " : ""] + [smoke_action.owner ? "Smoke: [smoke]
            " : ""] + [zoom_action.owner ? "Zoom: [zoom_mode ? "Enabled" : "Disabled"]
            " : ""] + [switch_damtype_action.owner ? "Damtype: [damtype]
            " : ""] + [phasing_action.owner ? "Phase Modulator: [phasing ? "Enabled" : "Disabled"]
            " : ""] + "} + + +/obj/mecha/proc/get_commands() + . = {"
            +
            Electronics
            + +
            + +
            [get_equipment_menu()]
            + "} + + +/obj/mecha/proc/get_equipment_menu() //outputs mecha html equipment menu + . = "" + if(equipment.len) + . += {"
            +
            Equipment
            +
            " + + +/obj/mecha/proc/get_equipment_list() //outputs mecha equipment list in html + if(!equipment.len) + return + . = "Equipment:
            " + for(var/obj/item/mecha_parts/mecha_equipment/MT in equipment) + . += "
            [MT.get_equip_info()]
            " + . += "
            " + + + +/obj/mecha/proc/get_log_html() + . = "[src.name] Log" + for(var/list/entry in log) + . += {"
            [entry["time"]] [time2text(entry["date"],"MMM DD")] [entry["year"]]
            +
            [entry["message"]]
            + "} + . += "" + + + +/obj/mecha/proc/output_access_dialog(obj/item/weapon/card/id/id_card, mob/user) + if(!id_card || !user) return + . = {" + + + +

            Following keycodes are present in this system:

            "} + for(var/a in operation_req_access) + . += "[get_access_desc(a)] - Delete
            " + . += "

            Following keycodes were detected on portable device:

            " + for(var/a in id_card.access) + if(a in operation_req_access) continue + var/a_name = get_access_desc(a) + if(!a_name) continue //there's some strange access without a name + . += "[a_name] - Add
            " + . += "
            Finish " + . += "(Warning! The ID upload panel will be locked. It can be unlocked only through Exosuit Interface.)" + . += "" + user << browse(., "window=exosuit_add_access") + onclose(user, "exosuit_add_access") + + +/obj/mecha/proc/output_maintenance_dialog(obj/item/weapon/card/id/id_card,mob/user) + if(!id_card || !user) return + . = {" + + + + + [add_req_access?"Edit operation keycodes":null] + [maint_access?"Initiate maintenance protocol":null] + [(state>0) ?"Set Cabin Air Pressure":null] + + "} + user << browse(., "window=exosuit_maint_console") + onclose(user, "exosuit_maint_console") + + + + +///////////////// +///// Topic ///// +///////////////// + +/obj/mecha/Topic(href, href_list) + ..() + if(href_list["close"]) + return + + if(usr.incapacitated()) + return + + var/datum/topic_input/filter = new /datum/topic_input(href,href_list) + + if(in_range(src, usr)) + + if(href_list["req_access"] && add_req_access) + output_access_dialog(filter.getObj("id_card"),filter.getMob("user")) + + if(href_list["maint_access"] && maint_access) + var/mob/user = filter.getMob("user") + if(user) + if(state==0) + state = 1 + user << "The securing bolts are now exposed." + else if(state==1) + state = 0 + user << "The securing bolts are now hidden." + output_maintenance_dialog(filter.getObj("id_card"),user) + + if(href_list["set_internal_tank_valve"] && state >=1) + var/mob/user = filter.getMob("user") + if(user) + var/new_pressure = input(user,"Input new output pressure","Pressure setting",internal_tank_valve) as num + if(new_pressure) + internal_tank_valve = new_pressure + user << "The internal pressure valve has been set to [internal_tank_valve]kPa." + + if(href_list["add_req_access"] && add_req_access && filter.getObj("id_card")) + operation_req_access += filter.getNum("add_req_access") + output_access_dialog(filter.getObj("id_card"),filter.getMob("user")) + + if(href_list["del_req_access"] && add_req_access && filter.getObj("id_card")) + operation_req_access -= filter.getNum("del_req_access") + output_access_dialog(filter.getObj("id_card"),filter.getMob("user")) + + if(href_list["finish_req_access"]) + add_req_access = 0 + var/mob/user = filter.getMob("user") + user << browse(null,"window=exosuit_add_access") + + if(usr != occupant) + return + + if(href_list["update_content"]) + send_byjax(src.occupant,"exosuit.browser","content",src.get_stats_part()) + + if(href_list["select_equip"]) + var/obj/item/mecha_parts/mecha_equipment/equip = filter.getObj("select_equip") + if(equip && equip.selectable) + src.selected = equip + src.occupant_message("You switch to [equip]") + src.visible_message("[src] raises [equip]") + send_byjax(src.occupant,"exosuit.browser","eq_list",src.get_equipment_list()) + + if(href_list["rmictoggle"]) + radio.broadcasting = !radio.broadcasting + send_byjax(src.occupant,"exosuit.browser","rmicstate",(radio.broadcasting?"Engaged":"Disengaged")) + + if(href_list["rspktoggle"]) + radio.listening = !radio.listening + send_byjax(src.occupant,"exosuit.browser","rspkstate",(radio.listening?"Engaged":"Disengaged")) + + if(href_list["rfreq"]) + var/new_frequency = (radio.frequency + filter.getNum("rfreq")) + if (!radio.freerange || (radio.frequency < 1200 || radio.frequency > 1600)) + new_frequency = sanitize_frequency(new_frequency) + radio.set_frequency(new_frequency) + send_byjax(src.occupant,"exosuit.browser","rfreq","[format_frequency(radio.frequency)]") + + if (href_list["view_log"]) + src.occupant << browse(src.get_log_html(), "window=exosuit_log") + onclose(occupant, "exosuit_log") + + if (href_list["change_name"]) + var/newname = stripped_input(occupant,"Choose new exosuit name","Rename exosuit","", MAX_NAME_LEN) + if(newname && trim(newname)) + name = newname + else + alert(occupant, "nope.avi") + + if (href_list["toggle_id_upload"]) + add_req_access = !add_req_access + send_byjax(src.occupant,"exosuit.browser","t_id_upload","[add_req_access?"L":"Unl"]ock ID upload panel") + + if(href_list["toggle_maint_access"]) + if(state) + occupant_message("Maintenance protocols in effect") + return + maint_access = !maint_access + send_byjax(src.occupant,"exosuit.browser","t_maint_access","[maint_access?"Forbid":"Permit"] maintenance protocols") + + if(href_list["dna_lock"]) + if(occupant && !iscarbon(occupant)) + occupant << " You do not have any DNA!" + return + dna_lock = occupant.dna.unique_enzymes + occupant_message("You feel a prick as the needle takes your DNA sample.") + + if(href_list["reset_dna"]) + dna_lock = null + + if(href_list["repair_int_control_lost"]) + occupant_message("Recalibrating coordination system...") + log_message("Recalibration of coordination system started.") + var/T = loc + spawn(100) + if(T == loc) + clearInternalDamage(MECHA_INT_CONTROL_LOST) + occupant_message("Recalibration successful.") + log_message("Recalibration of coordination system finished with 0 errors.") + else + occupant_message("Recalibration failed!") + log_message("Recalibration of coordination system failed with 1 error.",1) + diff --git a/code/game/mecha/mecha_wreckage.dm b/code/game/mecha/mecha_wreckage.dm new file mode 100644 index 0000000..8898f2a --- /dev/null +++ b/code/game/mecha/mecha_wreckage.dm @@ -0,0 +1,212 @@ +/////////////////////////////////// +//////// Mecha wreckage //////// +/////////////////////////////////// + + +/obj/structure/mecha_wreckage + name = "exosuit wreckage" + desc = "Remains of some unfortunate mecha. Completely unrepairable." + icon = 'icons/mecha/mecha.dmi' + density = 1 + anchored = 0 + opacity = 0 + var/list/welder_salvage = list(/obj/item/stack/sheet/plasteel,/obj/item/stack/sheet/metal,/obj/item/stack/rods) + var/list/wirecutters_salvage = list(/obj/item/stack/cable_coil) + var/list/crowbar_salvage = list() + var/salvage_num = 5 + +/obj/structure/mecha_wreckage/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/weldingtool)) + if(salvage_num <= 0) + user << "You don't see anything that can be cut with [I]!" + return + var/obj/item/weapon/weldingtool/WT = I + if(welder_salvage && welder_salvage.len && WT.remove_fuel(0, user)) + var/type = prob(70) ? pick(welder_salvage) : null + if(type) + var/N = new type(get_turf(user)) + user.visible_message("[user] cuts [N] from [src].", "You cut [N] from [src].") + if(istype(N, /obj/item/mecha_parts/part)) + welder_salvage -= type + salvage_num-- + else + user << "You fail to salvage anything valuable from [src]!" + else + return + + else if(istype(I, /obj/item/weapon/wirecutters)) + if(salvage_num <= 0) + user << "You don't see anything that can be cut with [I]!" + return + else if(wirecutters_salvage && wirecutters_salvage.len) + var/type = prob(70) ? pick(wirecutters_salvage) : null + if(type) + var/N = new type(get_turf(user)) + user.visible_message("[user] cuts [N] from [src].", "You cut [N] from [src].") + salvage_num-- + else + user << "You fail to salvage anything valuable from [src]!" + + else if(istype(I, /obj/item/weapon/crowbar)) + if(crowbar_salvage && crowbar_salvage.len) + var/obj/S = pick(crowbar_salvage) + if(S) + S.loc = get_turf(user) + crowbar_salvage -= S + user.visible_message("[user] pries [S] from [src].", "You pry [S] from [src].") + return + else + user << "You don't see anything that can be pried with [I]!" + + else + return ..() + + +/obj/structure/mecha_wreckage/gygax + name = "\improper Gygax wreckage" + icon_state = "gygax-broken" + +/obj/structure/mecha_wreckage/gygax/New() + ..() + var/list/parts = list(/obj/item/mecha_parts/part/gygax_torso, + /obj/item/mecha_parts/part/gygax_head, + /obj/item/mecha_parts/part/gygax_left_arm, + /obj/item/mecha_parts/part/gygax_right_arm, + /obj/item/mecha_parts/part/gygax_left_leg, + /obj/item/mecha_parts/part/gygax_right_leg) + for(var/i = 0; i < 2; i++) + if(parts.len && prob(40)) + var/part = pick(parts) + welder_salvage += part + parts -= part + + + +/obj/structure/mecha_wreckage/gygax/dark + name = "\improper Dark Gygax wreckage" + icon_state = "darkgygax-broken" + +/obj/structure/mecha_wreckage/marauder + name = "\improper Marauder wreckage" + icon_state = "marauder-broken" + +/obj/structure/mecha_wreckage/mauler + name = "\improper Mauler wreckage" + icon_state = "mauler-broken" + desc = "The syndicate won't be very happy about this..." + +/obj/structure/mecha_wreckage/seraph + name = "\improper Seraph wreckage" + icon_state = "seraph-broken" + +/obj/structure/mecha_wreckage/reticence + name = "\improper Reticence wreckage" + icon_state = "reticence-broken" + color = "#87878715" + +/obj/structure/mecha_wreckage/ripley + name = "\improper Ripley wreckage" + icon_state = "ripley-broken" + +/obj/structure/mecha_wreckage/ripley/New() + ..() + var/list/parts = list(/obj/item/mecha_parts/part/ripley_torso, + /obj/item/mecha_parts/part/ripley_left_arm, + /obj/item/mecha_parts/part/ripley_right_arm, + /obj/item/mecha_parts/part/ripley_left_leg, + /obj/item/mecha_parts/part/ripley_right_leg) + for(var/i = 0; i < 2; i++) + if(parts.len && prob(40)) + var/part = pick(parts) + welder_salvage += part + parts -= part + + +/obj/structure/mecha_wreckage/ripley/firefighter + name = "\improper Firefighter wreckage" + icon_state = "firefighter-broken" + +/obj/structure/mecha_wreckage/ripley/firefighter/New() + ..() + var/list/parts = list(/obj/item/mecha_parts/part/ripley_torso, + /obj/item/mecha_parts/part/ripley_left_arm, + /obj/item/mecha_parts/part/ripley_right_arm, + /obj/item/mecha_parts/part/ripley_left_leg, + /obj/item/mecha_parts/part/ripley_right_leg, + /obj/item/clothing/suit/fire) + for(var/i = 0; i < 2; i++) + if(parts.len && prob(40)) + var/part = pick(parts) + welder_salvage += part + parts -= part + + +/obj/structure/mecha_wreckage/ripley/deathripley + name = "\improper Death-Ripley wreckage" + icon_state = "deathripley-broken" + + +/obj/structure/mecha_wreckage/honker + name = "\improper H.O.N.K wreckage" + icon_state = "honker-broken" + +/obj/structure/mecha_wreckage/honker/New() + ..() + var/list/parts = list( + /obj/item/mecha_parts/chassis/honker, + /obj/item/mecha_parts/part/honker_torso, + /obj/item/mecha_parts/part/honker_head, + /obj/item/mecha_parts/part/honker_left_arm, + /obj/item/mecha_parts/part/honker_right_arm, + /obj/item/mecha_parts/part/honker_left_leg, + /obj/item/mecha_parts/part/honker_right_leg) + for(var/i = 0; i < 2; i++) + if(parts.len && prob(40)) + var/part = pick(parts) + welder_salvage += part + parts -= part + + +/obj/structure/mecha_wreckage/durand + name = "\improper Durand wreckage" + icon_state = "durand-broken" + +/obj/structure/mecha_wreckage/durand/New() + ..() + var/list/parts = list( + /obj/item/mecha_parts/part/durand_torso, + /obj/item/mecha_parts/part/durand_head, + /obj/item/mecha_parts/part/durand_left_arm, + /obj/item/mecha_parts/part/durand_right_arm, + /obj/item/mecha_parts/part/durand_left_leg, + /obj/item/mecha_parts/part/durand_right_leg) + for(var/i = 0; i < 2; i++) + if(parts.len && prob(40)) + var/part = pick(parts) + welder_salvage += part + parts -= part + + +/obj/structure/mecha_wreckage/phazon + name = "\improper Phazon wreckage" + icon_state = "phazon-broken" + + +/obj/structure/mecha_wreckage/odysseus + name = "\improper Odysseus wreckage" + icon_state = "odysseus-broken" + +/obj/structure/mecha_wreckage/odysseus/New() + ..() + var/list/parts = list( + /obj/item/mecha_parts/part/odysseus_torso, + /obj/item/mecha_parts/part/odysseus_head, + /obj/item/mecha_parts/part/odysseus_left_arm, + /obj/item/mecha_parts/part/odysseus_right_arm, + /obj/item/mecha_parts/part/odysseus_left_leg, + /obj/item/mecha_parts/part/odysseus_right_leg) + for(var/i = 0; i < 2; i++) + if(parts.len && prob(40)) + var/part = pick(parts) + welder_salvage += part + parts -= part \ No newline at end of file diff --git a/code/game/mecha/medical/medical.dm b/code/game/mecha/medical/medical.dm new file mode 100644 index 0000000..ae9983f --- /dev/null +++ b/code/game/mecha/medical/medical.dm @@ -0,0 +1,21 @@ +/obj/mecha/medical/New() + ..() + trackers += new /obj/item/mecha_parts/mecha_tracking(src) + + +/obj/mecha/medical/mechturn(direction) + setDir(direction) + playsound(src,'sound/mecha/mechmove01.ogg',40,1) + return 1 + +/obj/mecha/medical/mechstep(direction) + var/result = step(src,direction) + if(result) + playsound(src,'sound/mecha/mechstep.ogg',25,1) + return result + +/obj/mecha/medical/mechsteprand() + var/result = step_rand(src) + if(result) + playsound(src,'sound/mecha/mechstep.ogg',25,1) + return result \ No newline at end of file diff --git a/code/game/mecha/medical/odysseus.dm b/code/game/mecha/medical/odysseus.dm new file mode 100644 index 0000000..d98fe5b --- /dev/null +++ b/code/game/mecha/medical/odysseus.dm @@ -0,0 +1,34 @@ +/obj/mecha/medical/odysseus + desc = "These exosuits are developed and produced by Vey-Med. (© All rights reserved)." + name = "\improper Odysseus" + icon_state = "odysseus" + step_in = 3 + max_temperature = 15000 + obj_integrity = 120 + max_integrity = 120 + wreckage = /obj/structure/mecha_wreckage/odysseus + internal_damage_threshold = 35 + deflect_chance = 15 + step_energy_drain = 6 + var/builtin_hud_user = 0 + +/obj/mecha/medical/odysseus/moved_inside(mob/living/carbon/human/H) + if(..()) + if(H.glasses && istype(H.glasses, /obj/item/clothing/glasses/hud)) + occupant_message("Your [H.glasses] prevent you from using the built-in medical hud.") + else + var/datum/atom_hud/data/human/medical/advanced/A = huds[DATA_HUD_MEDICAL_ADVANCED] + A.add_hud_to(H) + builtin_hud_user = 1 + return 1 + else + return 0 + +/obj/mecha/medical/odysseus/go_out() + if(ishuman(occupant) && builtin_hud_user) + var/mob/living/carbon/human/H = occupant + var/datum/atom_hud/data/human/medical/advanced/A = huds[DATA_HUD_MEDICAL_ADVANCED] + A.remove_hud_from(H) + ..() + return + diff --git a/code/game/mecha/working/ripley.dm b/code/game/mecha/working/ripley.dm new file mode 100644 index 0000000..f8c4afd --- /dev/null +++ b/code/game/mecha/working/ripley.dm @@ -0,0 +1,181 @@ +/obj/mecha/working/ripley + desc = "Autonomous Power Loader Unit. This newer model is refitted with powerful armour against the dangers of the EVA mining process." + name = "\improper APLU \"Ripley\"" + icon_state = "ripley" + step_in = 4 //Move speed, lower is faster. + var/hi_pres_step_in = 4 //step_in while in high pressure. + var/lo_pres_step_in = 2 //step_in while in low/zero pressure. + max_temperature = 20000 + obj_integrity = 200 + max_integrity = 200 + lights_power = 7 + deflect_chance = 15 + armor = list(melee = 40, bullet = 20, laser = 10, energy = 20, bomb = 40, bio = 0, rad = 0, fire = 100, acid = 100) + max_equip = 6 + wreckage = /obj/structure/mecha_wreckage/ripley + var/list/cargo = new + var/cargo_capacity = 15 + var/hides = 0 + +/obj/mecha/working/ripley/Move() + . = ..() + if(. && (locate(/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp) in equipment)) + var/obj/structure/ore_box/ore_box = locate(/obj/structure/ore_box) in cargo + if(ore_box) + for(var/obj/item/weapon/ore/ore in get_turf(src)) + ore.Move(ore_box) + update_pressure() + +/obj/mecha/working/ripley/Destroy() + for(var/i=1, i <= hides, i++) + new /obj/item/stack/sheet/animalhide/goliath_hide(loc) //If a goliath-plated ripley gets killed, all the plates drop + for(var/atom/movable/A in cargo) + A.forceMove(loc) + step_rand(A) + cargo.Cut() + return ..() + +/obj/mecha/working/ripley/go_out() + ..() + update_icon() + +/obj/mecha/working/ripley/moved_inside(mob/living/carbon/human/H) + ..() + update_icon() + +/obj/mecha/working/ripley/mmi_moved_inside(obj/item/device/mmi/mmi_as_oc,mob/user) + ..() + update_icon() + +/obj/mecha/working/ripley/update_icon() + ..() + if (hides) + overlays = null + if(hides < 3) + add_overlay(image("icon" = "mecha.dmi", "icon_state" = occupant ? "ripley-g" : "ripley-g-open")) + else + add_overlay(image("icon" = "mecha.dmi", "icon_state" = occupant ? "ripley-g-full" : "ripley-g-full-open")) + + +/obj/mecha/working/ripley/firefighter + desc = "Autonomous Power Loader Unit. This model is refitted with additional thermal protection." + name = "\improper APLU \"Firefighter\"" + icon_state = "firefighter" + max_temperature = 65000 + obj_integrity = 250 + max_integrity = 250 + resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF + lights_power = 7 + armor = list(melee = 40, bullet = 30, laser = 30, energy = 30, bomb = 60, bio = 0, rad = 0, fire = 100, acid = 100) + max_equip = 5 // More armor, less tools + wreckage = /obj/structure/mecha_wreckage/ripley/firefighter + + +/obj/mecha/working/ripley/deathripley + desc = "OH SHIT IT'S THE DEATHSQUAD WE'RE ALL GONNA DIE" + name = "\improper DEATH-RIPLEY" + icon_state = "deathripley" + hi_pres_step_in = 3 + opacity=0 + lights_power = 7 + wreckage = /obj/structure/mecha_wreckage/ripley/deathripley + step_energy_drain = 0 + +/obj/mecha/working/ripley/deathripley/New() + ..() + var/obj/item/mecha_parts/mecha_equipment/ME = new /obj/item/mecha_parts/mecha_equipment/hydraulic_clamp/kill + ME.attach(src) + return + +/obj/mecha/working/ripley/mining + desc = "An old, dusty mining Ripley." + name = "\improper APLU \"Miner\"" + +/obj/mecha/working/ripley/mining/New() + ..() + //Attach drill + if(prob(25)) //Possible diamond drill... Feeling lucky? + var/obj/item/mecha_parts/mecha_equipment/drill/diamonddrill/D = new /obj/item/mecha_parts/mecha_equipment/drill/diamonddrill + D.attach(src) + else + var/obj/item/mecha_parts/mecha_equipment/drill/D = new /obj/item/mecha_parts/mecha_equipment/drill + D.attach(src) + + //Add possible plasma cutter + if(prob(25)) + var/obj/item/mecha_parts/mecha_equipment/M = new /obj/item/mecha_parts/mecha_equipment/weapon/energy/plasma + M.attach(src) + + //Add ore box to cargo + cargo.Add(new /obj/structure/ore_box(src)) + + //Attach hydraulic clamp + var/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp/HC = new /obj/item/mecha_parts/mecha_equipment/hydraulic_clamp + HC.attach(src) + for(var/obj/item/mecha_parts/mecha_tracking/B in trackers)//Deletes the beacon so it can't be found easily + qdel(B) + + var/obj/item/mecha_parts/mecha_equipment/mining_scanner/scanner = new /obj/item/mecha_parts/mecha_equipment/mining_scanner + scanner.attach(src) + +/obj/mecha/working/ripley/Exit(atom/movable/O) + if(O in cargo) + return 0 + return ..() + +/obj/mecha/working/ripley/Topic(href, href_list) + ..() + if(href_list["drop_from_cargo"]) + var/obj/O = locate(href_list["drop_from_cargo"]) + if(O && O in src.cargo) + src.occupant_message("You unload [O].") + O.forceMove(loc) + src.cargo -= O + src.log_message("Unloaded [O]. Cargo compartment capacity: [cargo_capacity - src.cargo.len]") + return + + +/obj/mecha/working/ripley/contents_explosion(severity, target) + for(var/X in cargo) + var/obj/O = X + if(prob(30/severity)) + cargo -= O + O.forceMove(loc) + . = ..() + +/obj/mecha/working/ripley/get_stats_part() + var/output = ..() + output += "Cargo Compartment Contents:
            " + if(cargo.len) + for(var/obj/O in cargo) + output += "Unload : [O]
            " + else + output += "Nothing" + output += "
            " + return output + +/obj/mecha/working/ripley/proc/update_pressure() + var/turf/T = get_turf(loc) + var/datum/gas_mixture/environment = T.return_air() + var/pressure = environment.return_pressure() + + if(pressure < 40) + step_in = lo_pres_step_in + for(var/obj/item/mecha_parts/mecha_equipment/drill/drill in equipment) + drill.equip_cooldown = initial(drill.equip_cooldown)/2 + else + step_in = hi_pres_step_in + for(var/obj/item/mecha_parts/mecha_equipment/drill/drill in equipment) + drill.equip_cooldown = initial(drill.equip_cooldown) + +/obj/mecha/working/ripley/relay_container_resist(mob/living/user, obj/O) + user << "You lean on the back of [O] and start pushing so it falls out of [src]." + if(do_after(user, 300, target = O)) + if(!user || user.stat != CONSCIOUS || user.loc != src || O.loc != src ) + return + user << "You successfully pushed [O] out of [src]!" + O.loc = loc + cargo -= O + else + if(user.loc == src) //so we don't get the message if we resisted multiple times and succeeded. + user << "You fail to push [O] out of [src]!" diff --git a/code/game/mecha/working/working.dm b/code/game/mecha/working/working.dm new file mode 100644 index 0000000..89d54d5 --- /dev/null +++ b/code/game/mecha/working/working.dm @@ -0,0 +1,6 @@ +/obj/mecha/working + internal_damage_threshold = 60 + +/obj/mecha/working/New() + ..() + trackers += new /obj/item/mecha_parts/mecha_tracking(src) diff --git a/code/game/objects/buckling.dm b/code/game/objects/buckling.dm new file mode 100644 index 0000000..1fe0fb4 --- /dev/null +++ b/code/game/objects/buckling.dm @@ -0,0 +1,128 @@ + + +/atom/movable + var/can_buckle = 0 + var/buckle_lying = -1 //bed-like behaviour, forces mob.lying = buckle_lying if != -1 + var/buckle_requires_restraints = 0 //require people to be handcuffed before being able to buckle. eg: pipes + var/list/mob/living/buckled_mobs = null //list() + var/max_buckled_mobs = 1 + +//Interaction +/atom/movable/attack_hand(mob/living/user) + . = ..() + if(can_buckle && has_buckled_mobs()) + if(buckled_mobs.len > 1) + var/unbuckled = input(user, "Who do you wish to unbuckle?","Unbuckle Who?") as null|mob in buckled_mobs + if(user_unbuckle_mob(unbuckled,user)) + return 1 + else + if(user_unbuckle_mob(buckled_mobs[1],user)) + return 1 + +/atom/movable/MouseDrop_T(mob/living/M, mob/living/user) + . = ..() + if(can_buckle && istype(M)) + if(user_buckle_mob(M, user)) + return 1 + +//Cleanup +/atom/movable/Destroy() + . = ..() + unbuckle_all_mobs(force=1) + +/atom/movable/proc/has_buckled_mobs() + if(!buckled_mobs) + return FALSE + if(buckled_mobs.len) + return TRUE + +//procs that handle the actual buckling and unbuckling +/atom/movable/proc/buckle_mob(mob/living/M, force = 0) + if(!buckled_mobs) + buckled_mobs = list() + if((!can_buckle && !force) || !istype(M) || (M.loc != loc) || M.buckled || (buckled_mobs.len >= max_buckled_mobs) || (buckle_requires_restraints && !M.restrained()) || M == src) + return 0 + if(!M.can_buckle() && !force) + if(M == usr) + M << "You are unable to buckle yourself to the [src]!" + else + usr << "You are unable to buckle [M] to the [src]!" + return 0 + + M.buckled = src + M.setDir(dir) + buckled_mobs |= M + M.update_canmove() + post_buckle_mob(M) + M.throw_alert("buckled", /obj/screen/alert/restrained/buckled, new_master = src) + + return 1 + +/obj/buckle_mob(mob/living/M, force = 0) + . = ..() + if(.) + if(resistance_flags & ON_FIRE) //Sets the mob on fire if you buckle them to a burning atom/movableect + M.adjust_fire_stacks(1) + M.IgniteMob() + +/atom/movable/proc/unbuckle_mob(mob/living/buckled_mob, force=0) + if(istype(buckled_mob) && buckled_mob.buckled == src && (buckled_mob.can_unbuckle() || force)) + . = buckled_mob + buckled_mob.buckled = null + buckled_mob.anchored = initial(buckled_mob.anchored) + buckled_mob.update_canmove() + buckled_mob.clear_alert("buckled") + buckled_mobs -= buckled_mob + + post_buckle_mob(.) + +/atom/movable/proc/unbuckle_all_mobs(force=0) + if(!has_buckled_mobs()) + return + for(var/m in buckled_mobs) + unbuckle_mob(m, force) + +//Handle any extras after buckling/unbuckling +//Called on buckle_mob() and unbuckle_mob() +/atom/movable/proc/post_buckle_mob(mob/living/M) + return + + +//Wrapper procs that handle sanity and user feedback +/atom/movable/proc/user_buckle_mob(mob/living/M, mob/user) + if(!in_range(user, src) || user.stat || user.restrained()) + return 0 + + add_fingerprint(user) + + if(buckle_mob(M)) + if(M == user) + M.visible_message(\ + "[M] buckles themself to [src].",\ + "You buckle yourself to [src].",\ + "You hear metal clanking.") + else + M.visible_message(\ + "[user] buckles [M] to [src]!",\ + "[user] buckles you to [src]!",\ + "You hear metal clanking.") + return 1 + + +/atom/movable/proc/user_unbuckle_mob(mob/living/buckled_mob, mob/user) + var/mob/living/M = unbuckle_mob(buckled_mob) + if(M) + if(M != user) + M.visible_message(\ + "[user] unbuckles [M] from [src].",\ + "[user] unbuckles you from [src].",\ + "You hear metal clanking.") + else + M.visible_message(\ + "[M] unbuckles themselves from [src].",\ + "You unbuckle yourself from [src].",\ + "You hear metal clanking.") + add_fingerprint(user) + return M + + diff --git a/code/game/objects/effects/alien_acid.dm b/code/game/objects/effects/alien_acid.dm new file mode 100644 index 0000000..0f65d61 --- /dev/null +++ b/code/game/objects/effects/alien_acid.dm @@ -0,0 +1,107 @@ +/* Alien shit! + * Contains: + * effect/acid + */ + + +/* + * Acid + */ +/obj/effect/acid + gender = PLURAL + name = "acid" + desc = "Burbling corrossive stuff." + icon_state = "acid" + density = 0 + opacity = 0 + anchored = 1 + resistance_flags = FIRE_PROOF | UNACIDABLE | ACID_PROOF + layer = ABOVE_NORMAL_TURF_LAYER + var/turf/target + + +/obj/effect/acid/New(loc, acid_pwr, acid_amt) + ..(loc) + + target = get_turf(src) + + if(acid_amt) + acid_level = min(acid_amt*acid_pwr, 12000) //capped so the acid effect doesn't last a half hour on the floor. + + //handle APCs and newscasters and stuff nicely + pixel_x = target.pixel_x + rand(-4,4) + pixel_y = target.pixel_y + rand(-4,4) + + START_PROCESSING(SSobj, src) + + +/obj/effect/acid/Destroy() + STOP_PROCESSING(SSobj, src) + target = null + return ..() + +/obj/effect/acid/process() + . = 1 + if(!target) + qdel(src) + return 0 + + if(prob(5)) + playsound(loc, 'sound/items/Welder.ogg', 100, 1) + + for(var/obj/O in target) + if(prob(20) && !(resistance_flags & UNACIDABLE)) + if(O.acid_level < acid_level*0.3) + var/acid_used = min(acid_level*0.05, 20) + O.acid_act(10, acid_used) + acid_level = max(0, acid_level - acid_used*10) + + acid_level = max(acid_level - (5 + 2*round(sqrt(acid_level))), 0) + if(acid_level <= 0) + qdel(src) + return 0 + +/obj/effect/acid/Crossed(AM as mob|obj) + if(isliving(AM)) + var/mob/living/L = AM + if(ishuman(L)) + var/mob/living/carbon/human/H = L + if(FLYING in H.dna.species.specflags) + return + else if(isanimal(L)) + var/mob/living/simple_animal/SA = L + if(SA.flying) + return + if(L.m_intent != "walk" && prob(40)) + var/acid_used = min(acid_level*0.05, 20) + if(L.acid_act(10, acid_used, "feet")) + acid_level = max(0, acid_level - acid_used*10) + playsound(L, 'sound/weapons/sear.ogg', 50, 1) + L << "[src] burns you!" + +//xenomorph corrosive acid +/obj/effect/acid/alien + var/target_strength = 30 + + +/obj/effect/acid/alien/process() + . = ..() + if(.) + if(prob(45)) + playsound(loc, 'sound/items/Welder.ogg', 100, 1) + target_strength-- + if(target_strength <= 0) + target.visible_message("[target] collapses under its own weight into a puddle of goop and undigested debris!") + target.acid_melt() + qdel(src) + else + + switch(target_strength) + if(24) + visible_message("[target] is holding up against the acid!") + if(16) + visible_message("[target] is being melted by the acid!") + if(8) + visible_message("[target] is struggling to withstand the acid!") + if(4) + visible_message("[target] begins to crumble under the acid!") \ No newline at end of file diff --git a/code/game/objects/effects/anomalies.dm b/code/game/objects/effects/anomalies.dm new file mode 100644 index 0000000..c8897fc --- /dev/null +++ b/code/game/objects/effects/anomalies.dm @@ -0,0 +1,229 @@ +//Anomalies, used for events. Note that these DO NOT work by themselves; their procs are called by the event datum. + +/obj/effect/anomaly + name = "anomaly" + desc = "A mysterious anomaly, seen commonly only in the region of space that the station orbits..." + icon_state = "bhole3" + density = 0 + anchored = 1 + luminosity = 3 + var/movechance = 70 + var/obj/item/device/assembly/signaler/anomaly/aSignal = null + +/obj/effect/anomaly/New() + ..() + poi_list |= src + SetLuminosity(initial(luminosity)) + aSignal = new(src) + aSignal.code = rand(1,100) + + aSignal.frequency = rand(1200, 1599) + if(IsMultiple(aSignal.frequency, 2))//signaller frequencies are always uneven! + aSignal.frequency++ + +/obj/effect/anomaly/Destroy() + poi_list.Remove(src) + return ..() + +/obj/effect/anomaly/proc/anomalyEffect() + if(prob(movechance)) + step(src,pick(alldirs)) + + +/obj/effect/anomaly/ex_act(severity, target) + if(severity == 1) + qdel(src) + +/obj/effect/anomaly/proc/anomalyNeutralize() + PoolOrNew(/obj/effect/particle_effect/smoke/bad, loc) + + for(var/atom/movable/O in src) + O.loc = src.loc + + qdel(src) + + +/obj/effect/anomaly/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/device/analyzer)) + user << "Analyzing... [src]'s unstable field is fluctuating along frequency [format_frequency(aSignal.frequency)], code [aSignal.code]." + +/////////////////////// + +/obj/effect/anomaly/grav + name = "gravitational anomaly" + icon_state = "shield2" + density = 0 + var/boing = 0 + +/obj/effect/anomaly/grav/New() + ..() + aSignal.origin_tech = "magnets=7" + +/obj/effect/anomaly/grav/anomalyEffect() + ..() + boing = 1 + for(var/obj/O in orange(4, src)) + if(!O.anchored) + step_towards(O,src) + for(var/mob/living/M in range(0, src)) + gravShock(M) + for(var/mob/living/M in orange(4, src)) + step_towards(M,src) + for(var/obj/O in range(0,src)) + if(!O.anchored) + var/mob/living/target = locate() in view(4,src) + if(target && !target.stat) + O.throw_at(target, 5, 10) + +/obj/effect/anomaly/grav/Crossed(mob/A) + gravShock(A) + +/obj/effect/anomaly/grav/Bump(mob/A) + gravShock(A) + +/obj/effect/anomaly/grav/Bumped(mob/A) + gravShock(A) + +/obj/effect/anomaly/grav/proc/gravShock(mob/A) + if(boing && isliving(A) && !A.stat) + A.Weaken(2) + var/atom/target = get_edge_target_turf(A, get_dir(src, get_step_away(A, src))) + A.throw_at(target, 5, 1) + boing = 0 + +///////////////////// + +/obj/effect/anomaly/flux + name = "flux wave anomaly" + icon_state = "electricity2" + density = 1 + var/canshock = 0 + var/shockdamage = 20 + +/obj/effect/anomaly/flux/New() + ..() + aSignal.origin_tech = "powerstorage=7" + +/obj/effect/anomaly/flux/anomalyEffect() + ..() + canshock = 1 + for(var/mob/living/M in range(0, src)) + mobShock(M) + +/obj/effect/anomaly/flux/Crossed(mob/living/M) + mobShock(M) + +/obj/effect/anomaly/flux/Bump(mob/living/M) + mobShock(M) + +/obj/effect/anomaly/flux/Bumped(mob/living/M) + mobShock(M) + +/obj/effect/anomaly/flux/proc/mobShock(mob/living/M) + if(canshock && istype(M)) + canshock = 0 //Just so you don't instakill yourself if you slam into the anomaly five times in a second. + if(iscarbon(M)) + if(ishuman(M)) + M.electrocute_act(shockdamage, "[name]", safety=1) + return + M.electrocute_act(shockdamage, "[name]") + return + else + M.adjustFireLoss(shockdamage) + M.visible_message("[M] was shocked by \the [name]!", \ + "You feel a powerful shock coursing through your body!", \ + "You hear a heavy electrical crack.") + +///////////////////// + +/obj/effect/anomaly/bluespace + name = "bluespace anomaly" + icon = 'icons/obj/projectiles.dmi' + icon_state = "bluespace" + density = 1 + +/obj/effect/anomaly/bluespace/New() + ..() + aSignal.origin_tech = "bluespace=7" + +/obj/effect/anomaly/bluespace/anomalyEffect() + ..() + for(var/mob/living/M in range(1,src)) + do_teleport(M, locate(M.x, M.y, M.z), 4) + +/obj/effect/anomaly/bluespace/Bumped(atom/A) + if(isliving(A)) + do_teleport(A, locate(A.x, A.y, A.z), 8) + +///////////////////// + +/obj/effect/anomaly/pyro + name = "pyroclastic anomaly" + icon_state = "mustard" + +/obj/effect/anomaly/pyro/New() + ..() + aSignal.origin_tech = "plasmatech=7" + +/obj/effect/anomaly/pyro/anomalyEffect() + ..() + var/turf/open/T = get_turf(src) + if(istype(T)) + T.atmos_spawn_air("o2=5;plasma=5;TEMP=1000") + +///////////////////// + +/obj/effect/anomaly/bhole + name = "vortex anomaly" + icon_state = "bhole3" + desc = "That's a nice station you have there. It'd be a shame if something happened to it." + +/obj/effect/anomaly/bhole/New() + ..() + aSignal.origin_tech = "engineering=7" + +/obj/effect/anomaly/bhole/anomalyEffect() + ..() + if(!isturf(loc)) //blackhole cannot be contained inside anything. Weird stuff might happen + qdel(src) + return + + grav(rand(0,3), rand(2,3), 50, 25) + + //Throwing stuff around! + for(var/obj/O in range(2,src)) + if(O == src) + return //DON'T DELETE YOURSELF GOD DAMN + if(!O.anchored) + var/mob/living/target = locate() in view(4,src) + if(target && !target.stat) + O.throw_at(target, 7, 5) + else + O.ex_act(2) + +/obj/effect/anomaly/bhole/proc/grav(r, ex_act_force, pull_chance, turf_removal_chance) + for(var/t = -r, t < r, t++) + affect_coord(x+t, y-r, ex_act_force, pull_chance, turf_removal_chance) + affect_coord(x-t, y+r, ex_act_force, pull_chance, turf_removal_chance) + affect_coord(x+r, y+t, ex_act_force, pull_chance, turf_removal_chance) + affect_coord(x-r, y-t, ex_act_force, pull_chance, turf_removal_chance) + +/obj/effect/anomaly/bhole/proc/affect_coord(x, y, ex_act_force, pull_chance, turf_removal_chance) + //Get turf at coordinate + var/turf/T = locate(x, y, z) + if(isnull(T)) + return + + //Pulling and/or ex_act-ing movable atoms in that turf + if(prob(pull_chance)) + for(var/obj/O in T.contents) + if(O.anchored) + O.ex_act(ex_act_force) + else + step_towards(O,src) + for(var/mob/living/M in T.contents) + step_towards(M,src) + + //Damaging the turf + if( T && prob(turf_removal_chance) ) + T.ex_act(ex_act_force) diff --git a/code/game/objects/effects/bump_teleporter.dm b/code/game/objects/effects/bump_teleporter.dm new file mode 100644 index 0000000..05214f9 --- /dev/null +++ b/code/game/objects/effects/bump_teleporter.dm @@ -0,0 +1,34 @@ +var/list/obj/effect/bump_teleporter/BUMP_TELEPORTERS = list() + +/obj/effect/bump_teleporter + name = "bump-teleporter" + icon = 'icons/mob/screen_gen.dmi' + icon_state = "x2" + var/id = null //id of this bump_teleporter. + var/id_target = null //id of bump_teleporter which this moves you to. + invisibility = INVISIBILITY_ABSTRACT //nope, can't see this + anchored = 1 + density = 1 + opacity = 0 + +/obj/effect/bump_teleporter/New() + ..() + BUMP_TELEPORTERS += src + +/obj/effect/bump_teleporter/Destroy() + BUMP_TELEPORTERS -= src + return ..() + +/obj/effect/bump_teleporter/Bumped(atom/user) + if(!ismob(user)) + //user.loc = src.loc //Stop at teleporter location + return + + if(!id_target) + //user.loc = src.loc //Stop at teleporter location, there is nowhere to teleport to. + return + + for(var/obj/effect/bump_teleporter/BT in BUMP_TELEPORTERS) + if(BT.id == src.id_target) + usr.loc = BT.loc //Teleport to location with correct id. + return \ No newline at end of file diff --git a/code/game/objects/effects/contraband.dm b/code/game/objects/effects/contraband.dm new file mode 100644 index 0000000..918c425 --- /dev/null +++ b/code/game/objects/effects/contraband.dm @@ -0,0 +1,278 @@ + +//########################## POSTERS ################################## + +#define NUM_OF_POSTER_DESIGNS 36 // contraband posters + +#define NUM_OF_POSTER_DESIGNS_LEGIT 35 // corporate approved posters + +#define POSTERNAME "name" + +#define POSTERDESC "desc" + + +//########################## LISTS OF POSTERS AND DESCS ##################### + +// please add new posters and names to their respective lists and update constant(s) above +// use the format below, including punctuation, this will become important later + +// CONTRABAND + +var/global/list/contrabandposters = list( + +list(name = "- Free Tonto", desc = " A salvaged shred of a much larger flag, colors bled together and faded from age."), +list(name = "- Atmosia Declaration of Independence", desc = " A relic of a failed rebellion."), +list(name = "- Fun Police", desc = " A poster condemning the station's security forces."), +list(name = "- Lusty Xenomorph", desc = " A heretical poster depicting the titular star of an equally heretical book."), +list(name = "- Syndicate Recruitment", desc = " See the galaxy! Shatter corrupt megacorporations! Join today!"), +list(name = "- Clown", desc = " Honk."), +list(name = "- Smoke", desc = " A poster advertising a rival corporate brand of cigarettes."), +list(name = "- Grey Tide", desc = " A rebellious poster symbolizing assistant solidarity."), +list(name = "- Missing Gloves", desc = " This poster references the uproar that followed Nanotrasen's financial cuts toward insulated-glove purchases."), +list(name = "- Hacking Guide", desc = " This poster details the internal workings of the common Nanotrasen airlock. Sadly, it appears out of date."), +list(name = "- RIP Badger", desc = " This seditious poster references Nanotrasen's genocide of a space station full of badgers."), +list(name = "- Ambrosia Vulgaris", desc = " This poster is lookin' pretty trippy man."), +list(name = "- Donut Corp.", desc = " This poster is an unauthorized advertisement for Donut Corp."), +list(name = "- EAT.", desc = " This poster promotes rank gluttony."), +list(name = "- Tools", desc = " This poster looks like an advertisement for tools, but is in fact a subliminal jab at the tools at CentComm."), +list(name = "- Power", desc = " A poster that positions the seat of power outside Nanotrasen."), +list(name = "- Space Cube", desc = " Ignorant of Nature's Harmonic 6 Side Space Cube Creation, the Spacemen are Dumb, Educated Singularity Stupid and Evil."), +list(name = "- Communist State", desc = " All hail the Communist party!"), +list(name = "- Lamarr", desc = " This poster depicts Lamarr. Probably made by a traitorous Research Director."), +list(name = "- Borg Fancy", desc = " Being fancy can be for any borg, just need a suit."), +list(name = "- Borg Fancy v2", desc = " Borg Fancy, Now only taking the most fancy."), +list(name = "- Kosmicheskaya Stantsiya 13 Does Not Exist", desc = " A poster mocking CentComm's denial of the existence of the derelict station near Space Station 13."), +list(name = "- Rebels Unite", desc = " A poster urging the viewer to rebel against Nanotrasen."), +list(name = "- C-20r", desc = " A poster advertising the Scarborough Arms C-20r."), +list(name = "- Have a Puff", desc = " Who cares about lung cancer when you're high as a kite?"), +list(name = "- Revolver", desc = " Because seven shots are all you need."), +list(name = "- D-Day Promo", desc = " A promotional poster for some rapper."), +list(name = "- Syndicate Pistol", desc = " A poster advertising syndicate pistols as being 'classy as fuck'. It is covered in faded gang tags."), +list(name = "- Energy Swords", desc = " All the colors of the bloody murder rainbow."), +list(name = "- Red Rum", desc = " Looking at this poster makes you want to kill."), +list(name = "- CC 64K Ad", desc = " The latest portable computer from Comrade Computing, with a whole 64kB of ram!"), +list(name = "- Punch Shit", desc = " Fight things for no reason, like a man!"), +list(name = "- The Griffin", desc = " The Griffin commands you to be the worst you can be. Will you?"), +list(name = "- Lizard", desc = " This lewd poster depicts a lizard preparing to mate."), +list(name = "- Free Drone", desc = " This poster commemorates the bravery of the rogue drone banned by CentComm."), +list(name = "- Busty Backdoor Xeno Babes 6", desc = " Get a load, or give, of these all natural Xenos!") ) + +// LEGIT + +var/global/list/legitposters = list( + +list(name = "- Here For Your Safety", desc = " A poster glorifying the station's security force."), +list(name = "- Nanotrasen Logo", desc = " A poster depicting the Nanotrasen logo."), +list(name = "- Cleanliness", desc = " A poster warning of the dangers of poor hygiene."), +list(name = "- Help Others", desc = " A poster encouraging you to help fellow crewmembers."), +list(name = "- Build", desc = " A poster glorifying the engineering team."), +list(name = "- Bless This Spess", desc = " A poster blessing this area."), +list(name = "- Science", desc = " A poster depicting an atom."), +list(name = "- Ian", desc = " Arf arf. Yap."), +list(name = "- Obey", desc = " A poster instructing the viewer to obey authority."), +list(name = "- Walk", desc = " A poster instructing the viewer to walk instead of running."), +list(name = "- State Laws", desc = " A poster instructing cyborgs to state their laws."), +list(name = "- Love Ian", desc = " Ian is love, Ian is life."), +list(name = "- Space Cops.", desc = " A poster advertising the television show Space Cops."), +list(name = "- Ue No.", desc = " This thing is all in Japanese."), +list(name = "- Get Your LEGS", desc = " LEGS: Leadership, Experience, Genius, Subordination."), +list(name = "- Do Not Question", desc = " A poster instructing the viewer not to ask about things they aren't meant to know."), +list(name = "- Work For A Future", desc = " A poster encouraging you to work for your future."), +list(name = "- Soft Cap Pop Art", desc = " A poster reprint of some cheap pop art."), +list(name = "- Safety: Internals", desc = " A poster instructing the viewer to wear internals in the rare environments where there is no oxygen or the air has been rendered toxic."), +list(name = "- Safety: Eye Protection", desc = " A poster instructing the viewer to wear eye protection when dealing with chemicals, smoke, or bright lights."), +list(name = "- Safety: Report", desc = " A poster instructing the viewer to report suspicious activity to the security force."), +list(name = "- Report Crimes", desc = " A poster encouraging the swift reporting of crime or seditious behavior to station security."), +list(name = "- Ion Rifle", desc = " A poster displaying an Ion Rifle."), +list(name = "- Foam Force Ad", desc = " Foam Force, it's Foam or be Foamed!"), +list(name = "- Cohiba Robusto Ad", desc = " Cohiba Robusto, the classy cigar."), +list(name = "- 50th Anniversary Vintage Reprint", desc = " A reprint of a poster from 2505, commemorating the 50th Aniversery of Nanoposters Manufacturing, a subsidary of Nanotrasen."), +list(name = "- Fruit Bowl", desc = " Simple, yet awe-inspiring."), +list(name = "- PDA Ad", desc = " A poster advertising the latest PDA from Nanotrasen suppliers."), +list(name = "- Enlist", desc = " Enlist in the Nanotrasen Deathsquadron reserves today!"), +list(name = "- Nanomichi Ad", desc = " A poster advertising Nanomichi brand audio cassettes."), +list(name = "- 12 Gauge", desc = " A poster boasting about the superiority of 12 gauge shotgun shells."), +list(name = "- High-Class Martini", desc = " I told you to shake it, no stirring."), +list(name = "- The Owl", desc = " The Owl would do his best to protect the station. Will you?"), +list(name = "- No ERP", desc = " This poster reminds the crew that Eroticism, Rape and Pornography are banned on Nanotrasen stations."), +list(name = "- Carbon Dioxide", desc = " This informational poster teaches the viewer what carbon dioxide is.") ) + +//########################## THE ACTUAL POSTER CODE ########################### + +/obj/item/weapon/poster + name = "poster" + desc = "You probably shouldn't be holding this." + icon = 'icons/obj/contraband.dmi' + force = 0 + resistance_flags = FLAMMABLE + var/serial_number = 0 + var/obj/structure/sign/poster/resulting_poster = null //The poster that will be created is initialised and stored through contraband/poster's constructor + var/official = 0 + + +/obj/item/weapon/poster/contraband + name = "contraband poster" + desc = "This poster comes with its own automatic adhesive mechanism, for easy pinning to any vertical surface. Its vulgar themes have marked it as contraband aboard Nanotrasen space facilities." + icon_state = "rolled_poster" + +/obj/item/weapon/poster/legit + name = "motivational poster" + icon_state = "rolled_legit" + desc = "An official Nanotrasen-issued poster to foster a compliant and obedient workforce. It comes with state-of-the-art adhesive backing, for easy pinning to any vertical surface." + official = 1 + +/obj/item/weapon/poster/New(turf/loc, given_serial = 0) + if(given_serial == 0) + if(!official) + serial_number = rand(1, NUM_OF_POSTER_DESIGNS) + resulting_poster = new(serial_number,official) + else + serial_number = rand(1, NUM_OF_POSTER_DESIGNS_LEGIT) + resulting_poster = new(serial_number,official) + else + serial_number = given_serial + //We don't give it a resulting_poster because if we called it with a given_serial it means that we're rerolling an already used poster. + name += " - No. [serial_number]" + ..(loc) + + +/*/obj/item/weapon/contraband/poster/attack(mob/M as mob, mob/user as mob) + src.add_fingerprint(user) + if(resulting_poster) + resulting_poster.add_fingerprint(user) + ..()*/ + +/*/obj/item/weapon/contraband/poster/attack(atom/A, mob/user as mob) //This shit is handled through the wall's attackby() + if(istype(A, /turf/closed/wall)) + if(resulting_poster == null) + return + else + var/turf/closed/wall/W = A + var/check = 0 + var/stuff_on_wall = 0 + for(var/obj/O in W.contents) //Let's see if it already has a poster on it or too much stuff + if(istype(O,/obj/structure/sign/poster)) + check = 1 + break + stuff_on_wall++ + if(stuff_on_wall == 3) + check = 1 + break + + if(check) + user << "The wall is far too cluttered to place a poster!" + return + + resulting_poster.loc = W //Looks like it's uncluttered enough. Place the poster + W.contents += resulting_poster + + qdel(src)*/ + + + +//############################## THE ACTUAL DECALS ########################### + +/obj/structure/sign/poster + name = "poster" + desc = "A large piece of space-resistant printed paper." + icon = 'icons/obj/contraband.dmi' + anchored = 1 + var/serial_number //Will hold the value of src.loc if nobody initialises it + var/ruined = 0 + var/official = 0 + var/placespeed = 37 // don't change this, otherwise the animation will not sync to the progress bar + +/obj/structure/sign/poster/New(serial,rolled_official) + serial_number = serial + official = rolled_official + if(serial_number == loc) + if(!official) + serial_number = rand(1, NUM_OF_POSTER_DESIGNS) //This is for the mappers that want individual posters without having to use rolled posters. + if(official) + serial_number = rand(1, NUM_OF_POSTER_DESIGNS_LEGIT) + if(!official) + icon_state = "poster[serial_number]" + name += contrabandposters[serial_number][POSTERNAME] + desc += contrabandposters[serial_number][POSTERDESC] + else if (official) + icon_state = "poster[serial_number]_legit" + name += legitposters[serial_number][POSTERNAME] + desc += legitposters[serial_number][POSTERDESC] + ..() + +/obj/structure/sign/poster/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/wirecutters)) + playsound(loc, 'sound/items/Wirecutter.ogg', 100, 1) + if(ruined) + user << "You remove the remnants of the poster." + qdel(src) + else + user << "You carefully remove the poster from the wall." + roll_and_drop(user.loc, official) + + +/obj/structure/sign/poster/attack_hand(mob/user) + if(ruined) + return + var/temp_loc = user.loc + if((user.loc != temp_loc) || ruined ) + return + visible_message("[user] rips [src] in a single, decisive motion!" ) + playsound(src.loc, 'sound/items/poster_ripped.ogg', 100, 1) + ruined = 1 + icon_state = "poster_ripped" + name = "ripped poster" + desc = "You can't make out anything from the poster's original print. It's ruined." + add_fingerprint(user) + +/obj/structure/sign/poster/proc/roll_and_drop(turf/location, official) + if (!official) + var/obj/item/weapon/poster/contraband/P = new(src, serial_number) + P.resulting_poster = src + P.loc = location + P.pixel_x = 0 + P.pixel_y = 0 + loc = P + else + var/obj/item/weapon/poster/legit/P = new(src, serial_number) + P.resulting_poster = src + P.loc = location + P.pixel_x = 0 + P.pixel_y = 0 + loc = P + + +//seperated to reduce code duplication. Moved here for ease of reference and to unclutter r_wall/attackby() +/turf/closed/wall/proc/place_poster(obj/item/weapon/poster/P, mob/user) + if(!P.resulting_poster) + return + + var/stuff_on_wall = 0 + for(var/obj/O in contents) //Let's see if it already has a poster on it or too much stuff + if(istype(O,/obj/structure/sign/poster)) + user << "The wall is far too cluttered to place a poster!" + return + stuff_on_wall++ + if(stuff_on_wall == 3) + user << "The wall is far too cluttered to place a poster!" + return + + user << "You start placing the poster on the wall..." //Looks like it's uncluttered enough. Place the poster. + + //declaring D because otherwise if P gets 'deconstructed' we lose our reference to P.resulting_poster + var/obj/structure/sign/poster/D = P.resulting_poster + + var/temp_loc = user.loc + flick("poster_being_set",D) + D.loc = src + D.official = P.official + qdel(P) //delete it now to cut down on sanity checks afterwards. Agouri's code supports rerolling it anyway + playsound(D.loc, 'sound/items/poster_being_created.ogg', 100, 1) + + if(do_after(user,D.placespeed,target=src)) + if(!D) + return + + if(iswallturf(src) && user && user.loc == temp_loc) //Let's check if everything is still there + user << "You place the poster!" + else + D.roll_and_drop(temp_loc,D.official) diff --git a/code/game/objects/effects/decals/Cleanable/aliens.dm b/code/game/objects/effects/decals/Cleanable/aliens.dm new file mode 100644 index 0000000..7d1179a --- /dev/null +++ b/code/game/objects/effects/decals/Cleanable/aliens.dm @@ -0,0 +1,76 @@ +// Note: BYOND is object oriented. There is no reason for this to be copy/pasted blood code. + +/obj/effect/decal/cleanable/xenoblood + name = "xeno blood" + desc = "It's green and acidic. It looks like... blood?" + icon = 'icons/effects/blood.dmi' + icon_state = "xfloor1" + random_icon_states = list("xfloor1", "xfloor2", "xfloor3", "xfloor4", "xfloor5", "xfloor6", "xfloor7") + var/list/viruses = list() + blood_DNA = list("UNKNOWN DNA" = "X*") + bloodiness = MAX_SHOE_BLOODINESS + blood_state = BLOOD_STATE_XENO + +/obj/effect/decal/cleanable/xenoblood/Destroy() + for(var/datum/disease/D in viruses) + D.cure(0) + viruses = null + return ..() + +/obj/effect/decal/cleanable/xenoblood/xsplatter + random_icon_states = list("xgibbl1", "xgibbl2", "xgibbl3", "xgibbl4", "xgibbl5") + +/obj/effect/decal/cleanable/xenoblood/xgibs + name = "xeno gibs" + desc = "Gnarly..." + icon = 'icons/effects/blood.dmi' + icon_state = "xgib1" + layer = LOW_OBJ_LAYER + random_icon_states = list("xgib1", "xgib2", "xgib3", "xgib4", "xgib5", "xgib6") + mergeable_decal = 0 + +/obj/effect/decal/cleanable/xenoblood/xgibs/proc/streak(list/directions) + set waitfor = 0 + var/direction = pick(directions) + for(var/i = 0, i < pick(1, 200; 2, 150; 3, 50), i++) + sleep(2) + if (i > 0) + var/obj/effect/decal/cleanable/xenoblood/b = new /obj/effect/decal/cleanable/xenoblood/xsplatter(src.loc) + for(var/datum/disease/D in src.viruses) + var/datum/disease/ND = D.Copy(1) + b.viruses += ND + ND.holder = b + if (!step_to(src, get_step(src, direction), 0)) + break + +/obj/effect/decal/cleanable/xenoblood/xgibs/ex_act() + return + +/obj/effect/decal/cleanable/xenoblood/xgibs/up + random_icon_states = list("xgib1", "xgib2", "xgib3", "xgib4", "xgib5", "xgib6","xgibup1","xgibup1","xgibup1") + +/obj/effect/decal/cleanable/xenoblood/xgibs/down + random_icon_states = list("xgib1", "xgib2", "xgib3", "xgib4", "xgib5", "xgib6","xgibdown1","xgibdown1","xgibdown1") + +/obj/effect/decal/cleanable/xenoblood/xgibs/body + random_icon_states = list("xgibhead", "xgibtorso") + +/obj/effect/decal/cleanable/xenoblood/xgibs/torso + random_icon_states = list("xgibtorso") + +/obj/effect/decal/cleanable/xenoblood/xgibs/limb + random_icon_states = list("xgibleg", "xgibarm") + +/obj/effect/decal/cleanable/xenoblood/xgibs/core + random_icon_states = list("xgibmid1", "xgibmid2", "xgibmid3") + +/obj/effect/decal/cleanable/xenoblood/xgibs/larva + random_icon_states = list("xgiblarva1", "xgiblarva2") + +/obj/effect/decal/cleanable/xenoblood/xgibs/larva/body + random_icon_states = list("xgiblarvahead", "xgiblarvatorso") + +/obj/effect/decal/cleanable/blood/xtracks + icon_state = "xtracks" + random_icon_states = null + blood_DNA = list("UNKNOWN DNA" = "X*") diff --git a/code/game/objects/effects/decals/Cleanable/humans.dm b/code/game/objects/effects/decals/Cleanable/humans.dm new file mode 100644 index 0000000..5fe401e --- /dev/null +++ b/code/game/objects/effects/decals/Cleanable/humans.dm @@ -0,0 +1,184 @@ +/obj/effect/decal/cleanable/blood + name = "blood" + desc = "It's red and gooey. Perhaps it's the chef's cooking?" + icon = 'icons/effects/blood.dmi' + icon_state = "floor1" + random_icon_states = list("floor1", "floor2", "floor3", "floor4", "floor5", "floor6", "floor7") + var/list/viruses = list() + blood_DNA = list() + blood_state = BLOOD_STATE_HUMAN + bloodiness = MAX_SHOE_BLOODINESS + +/obj/effect/decal/cleanable/blood/Destroy() + for(var/datum/disease/D in viruses) + D.cure(0) + viruses = null + return ..() + +/obj/effect/decal/cleanable/blood/replace_decal(obj/effect/decal/cleanable/blood/C) + if (C.blood_DNA) + blood_DNA |= C.blood_DNA.Copy() + ..() + +/obj/effect/decal/cleanable/blood/splatter + random_icon_states = list("gibbl1", "gibbl2", "gibbl3", "gibbl4", "gibbl5") + +/obj/effect/decal/cleanable/blood/tracks + icon_state = "tracks" + desc = "They look like tracks left by wheels." + random_icon_states = null + +/obj/effect/decal/cleanable/trail_holder //not a child of blood on purpose + name = "blood" + icon_state = "ltrails_1" + desc = "Your instincts say you shouldn't be following these." + random_icon_states = null + var/list/existing_dirs = list() + blood_DNA = list() + + +/obj/effect/decal/cleanable/trail_holder/can_bloodcrawl_in() + return 1 + + +/obj/effect/decal/cleanable/blood/gibs + name = "gibs" + desc = "They look bloody and gruesome." + icon = 'icons/effects/blood.dmi' + icon_state = "gibbl5" + layer = LOW_OBJ_LAYER + random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6") + mergeable_decal = 0 + +/obj/effect/decal/cleanable/blood/gibs/New() + ..() + reagents.add_reagent("liquidgibs", 5) + +/obj/effect/decal/cleanable/blood/gibs/ex_act(severity, target) + return + +/obj/effect/decal/cleanable/blood/gibs/proc/streak(list/directions) + set waitfor = 0 + var/direction = pick(directions) + for (var/i = 0, i < pick(1, 200; 2, 150; 3, 50), i++) + sleep(2) + if (i > 0) + var/obj/effect/decal/cleanable/blood/b = new /obj/effect/decal/cleanable/blood/splatter(src.loc) + for(var/datum/disease/D in src.viruses) + var/datum/disease/ND = D.Copy(1) + b.viruses += ND + ND.holder = b + if (!step_to(src, get_step(src, direction), 0)) + break + +/obj/effect/decal/cleanable/blood/gibs/up + random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6","gibup1","gibup1","gibup1") + +/obj/effect/decal/cleanable/blood/gibs/down + random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6","gibdown1","gibdown1","gibdown1") + +/obj/effect/decal/cleanable/blood/gibs/body + random_icon_states = list("gibhead", "gibtorso") + +/obj/effect/decal/cleanable/blood/gibs/torso + random_icon_states = list("gibtorso") + + +/obj/effect/decal/cleanable/blood/gibs/limb + random_icon_states = list("gibleg", "gibarm") + +/obj/effect/decal/cleanable/blood/gibs/core + random_icon_states = list("gibmid1", "gibmid2", "gibmid3") + + +/obj/effect/decal/cleanable/blood/drip + name = "drips of blood" + desc = "It's red." + icon_state = "1" + random_icon_states = list("drip1","drip2","drip3","drip4","drip5") + bloodiness = 0 + var/drips = 1 + + +/obj/effect/decal/cleanable/blood/drip/can_bloodcrawl_in() + return 1 + + +//BLOODY FOOTPRINTS +/obj/effect/decal/cleanable/blood/footprints + name = "footprints" + icon = 'icons/effects/footprints.dmi' + icon_state = "nothingwhatsoever" + desc = "where might they lead?" + random_icon_states = null + var/entered_dirs = 0 + var/exited_dirs = 0 + blood_state = BLOOD_STATE_HUMAN //the icon state to load images from + var/list/shoe_types = list() + +/obj/effect/decal/cleanable/blood/footprints/Crossed(atom/movable/O) + if(ishuman(O)) + var/mob/living/carbon/human/H = O + var/obj/item/clothing/shoes/S = H.shoes + if(S && S.bloody_shoes[blood_state]) + S.bloody_shoes[blood_state] = max(S.bloody_shoes[blood_state] - BLOOD_LOSS_PER_STEP, 0) + entered_dirs|= H.dir + shoe_types |= H.shoes.type + update_icon() + +/obj/effect/decal/cleanable/blood/footprints/Uncrossed(atom/movable/O) + if(ishuman(O)) + var/mob/living/carbon/human/H = O + var/obj/item/clothing/shoes/S = H.shoes + if(S && S.bloody_shoes[blood_state]) + S.bloody_shoes[blood_state] = max(S.bloody_shoes[blood_state] - BLOOD_LOSS_PER_STEP, 0) + exited_dirs|= H.dir + shoe_types |= H.shoes.type + update_icon() + +/obj/effect/decal/cleanable/blood/footprints/update_icon() + cut_overlays() + + for(var/Ddir in cardinal) + if(entered_dirs & Ddir) + var/image/I + if(bloody_footprints_cache["entered-[blood_state]-[Ddir]"]) + I = bloody_footprints_cache["entered-[blood_state]-[Ddir]"] + else + I = image(icon,"[blood_state]1",dir = Ddir) + bloody_footprints_cache["entered-[blood_state]-[Ddir]"] = I + if(I) + add_overlay(I) + if(exited_dirs & Ddir) + var/image/I + if(bloody_footprints_cache["exited-[blood_state]-[Ddir]"]) + I = bloody_footprints_cache["exited-[blood_state]-[Ddir]"] + else + I = image(icon,"[blood_state]2",dir = Ddir) + bloody_footprints_cache["exited-[blood_state]-[Ddir]"] = I + if(I) + add_overlay(I) + + alpha = BLOODY_FOOTPRINT_BASE_ALPHA+bloodiness + + +/obj/effect/decal/cleanable/blood/footprints/examine(mob/user) + . = ..() + if(shoe_types.len) + . += "You recognise the footprints as belonging to:\n" + for(var/shoe in shoe_types) + var/obj/item/clothing/shoes/S = shoe + . += "some [initial(S.name)] \icon[S]\n" + + user << . + +/obj/effect/decal/cleanable/blood/footprints/replace_decal(obj/effect/decal/cleanable/C) + if(blood_state != C.blood_state) //We only replace footprints of the same type as us + return + ..() + +/obj/effect/decal/cleanable/blood/footprints/can_bloodcrawl_in() + if((blood_state != BLOOD_STATE_OIL) && (blood_state != BLOOD_STATE_NOT_BLOODY)) + return 1 + return 0 + diff --git a/code/game/objects/effects/decals/Cleanable/misc.dm b/code/game/objects/effects/decals/Cleanable/misc.dm new file mode 100644 index 0000000..6eacaf7 --- /dev/null +++ b/code/game/objects/effects/decals/Cleanable/misc.dm @@ -0,0 +1,158 @@ +/obj/effect/decal/cleanable/generic + name = "clutter" + desc = "Someone should clean that up." + icon = 'icons/obj/objects.dmi' + icon_state = "shards" + +/obj/effect/decal/cleanable/ash + name = "ashes" + desc = "Ashes to ashes, dust to dust, and into space." + icon = 'icons/obj/objects.dmi' + icon_state = "ash" + mergeable_decal = 0 + +/obj/effect/decal/cleanable/ash/New() + ..() + reagents.add_reagent("ash", 30) + pixel_x = rand(-5, 5) + pixel_y = rand(-5, 5) + +/obj/effect/decal/cleanable/ash/large + name = "large pile of ashes" + icon_state = "big_ash" + +/obj/effect/decal/cleanable/ash/large/New() + ..() + reagents.add_reagent("ash", 30) //double the amount of ash. + + +/obj/effect/decal/cleanable/dirt + name = "dirt" + desc = "Someone should clean that up." + icon_state = "dirt" + mouse_opacity = 0 + +/obj/effect/decal/cleanable/flour + name = "flour" + desc = "It's still good. Four second rule!" + icon_state = "flour" + +/obj/effect/decal/cleanable/greenglow + name = "glowing goo" + desc = "Jeez. I hope that's not for lunch." + luminosity = 1 + icon_state = "greenglow" + +/obj/effect/decal/cleanable/greenglow/ex_act() + return + +/obj/effect/decal/cleanable/cobweb + name = "cobweb" + desc = "Somebody should remove that." + gender = NEUTER + layer = WALL_OBJ_LAYER + icon_state = "cobweb1" + resistance_flags = FLAMMABLE + +/obj/effect/decal/cleanable/cobweb/cobweb2 + icon_state = "cobweb2" + +/obj/effect/decal/cleanable/molten_object + name = "gooey grey mass" + desc = "It looks like a melted... something." + gender = NEUTER + icon = 'icons/effects/effects.dmi' + icon_state = "molten" + mergeable_decal = 0 + +/obj/effect/decal/cleanable/molten_object/large + name = "big gooey grey mass" + icon_state = "big_molten" + +//Vomit (sorry) +/obj/effect/decal/cleanable/vomit + name = "vomit" + desc = "Gosh, how unpleasant." + icon = 'icons/effects/blood.dmi' + icon_state = "vomit_1" + random_icon_states = list("vomit_1", "vomit_2", "vomit_3", "vomit_4") + var/list/viruses = list() + +/obj/effect/decal/cleanable/vomit/attack_hand(var/mob/user) + if(ishuman(user)) + var/mob/living/carbon/human/H = user + if(isflyperson(H)) + playsound(get_turf(src), 'sound/items/drink.ogg', 50, 1) //slurp + H.visible_message("[H] extends a small proboscis into the vomit pool, sucking it with a slurping sound.") + if(reagents) + for(var/datum/reagent/R in reagents.reagent_list) + if (istype(R, /datum/reagent/consumable)) + var/datum/reagent/consumable/nutri_check = R + if(nutri_check.nutriment_factor >0) + H.nutrition += nutri_check.nutriment_factor * nutri_check.volume + reagents.remove_reagent(nutri_check.id,nutri_check.volume) + reagents.trans_to(H, reagents.total_volume) + qdel(src) + +/obj/effect/decal/cleanable/vomit/Destroy() + for(var/datum/disease/D in viruses) + D.cure(0) + viruses = null + return ..() + +/obj/effect/decal/cleanable/tomato_smudge + name = "tomato smudge" + desc = "It's red." + gender = NEUTER + icon = 'icons/effects/tomatodecal.dmi' + random_icon_states = list("tomato_floor1", "tomato_floor2", "tomato_floor3") + +/obj/effect/decal/cleanable/plant_smudge + name = "plant smudge" + gender = NEUTER + icon = 'icons/effects/tomatodecal.dmi' + random_icon_states = list("smashed_plant") + +/obj/effect/decal/cleanable/egg_smudge + name = "smashed egg" + desc = "Seems like this one won't hatch." + gender = NEUTER + icon = 'icons/effects/tomatodecal.dmi' + random_icon_states = list("smashed_egg1", "smashed_egg2", "smashed_egg3") + +/obj/effect/decal/cleanable/pie_smudge //honk + name = "smashed pie" + desc = "It's pie cream from a cream pie." + gender = NEUTER + icon = 'icons/effects/tomatodecal.dmi' + random_icon_states = list("smashed_pie") + +/obj/effect/decal/cleanable/chem_pile + name = "chemical pile" + desc = "A pile of chemicals. You can't quite tell what's inside it." + gender = NEUTER + icon = 'icons/obj/objects.dmi' + icon_state = "ash" + +/obj/effect/decal/cleanable/shreds + name = "shreds" + desc = "The shredded remains of what appears to be clothing." + icon_state = "shreds" + gender = PLURAL + mergeable_decal = 0 + +/obj/effect/decal/cleanable/shreds/ex_act(severity, target) + if(severity == 1) //so shreds created during an explosion aren't deleted by the explosion. + qdel(src) + +/obj/effect/decal/cleanable/shreds/New() + pixel_x = rand(-10, 10) + pixel_y = rand(-10, 10) + ..() + +/obj/effect/decal/cleanable/salt + name = "salt pile" + desc = "A sizable pile of table salt. Someone must be upset." + icon = 'icons/effects/tomatodecal.dmi' + icon_state = "salt_pile" + gender = NEUTER diff --git a/code/game/objects/effects/decals/Cleanable/robots.dm b/code/game/objects/effects/decals/Cleanable/robots.dm new file mode 100644 index 0000000..1eae55e --- /dev/null +++ b/code/game/objects/effects/decals/Cleanable/robots.dm @@ -0,0 +1,62 @@ +// Note: BYOND is object oriented. There is no reason for this to be copy/pasted blood code. + +/obj/effect/decal/cleanable/robot_debris + name = "robot debris" + desc = "It's a useless heap of junk... or is it?" + icon = 'icons/mob/robots.dmi' + icon_state = "gib1" + layer = LOW_OBJ_LAYER + random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6", "gib7") + blood_state = BLOOD_STATE_OIL + bloodiness = MAX_SHOE_BLOODINESS + mergeable_decal = 0 + +/obj/effect/decal/cleanable/robot_debris/proc/streak(list/directions) + set waitfor = 0 + var/direction = pick(directions) + for (var/i = 0, i < pick(1, 200; 2, 150; 3, 50), i++) + sleep(2) + if (i > 0) + if (prob(40)) + new /obj/effect/decal/cleanable/oil/streak(src.loc) + else if (prob(10)) + var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread + s.set_up(3, 1, src) + s.start() + if (!step_to(src, get_step(src, direction), 0)) + break + +/obj/effect/decal/cleanable/robot_debris/ex_act() + return + +/obj/effect/decal/cleanable/robot_debris/limb + random_icon_states = list("gibarm", "gibleg") + +/obj/effect/decal/cleanable/robot_debris/up + random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6", "gib7","gibup1","gibup1") + +/obj/effect/decal/cleanable/robot_debris/down + random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6", "gib7","gibdown1","gibdown1") + +/obj/effect/decal/cleanable/oil + name = "motor oil" + desc = "It's black and greasy. Looks like Beepsky made another mess." + icon = 'icons/mob/robots.dmi' + icon_state = "floor1" + var/viruses = list() + random_icon_states = list("floor1", "floor2", "floor3", "floor4", "floor5", "floor6", "floor7") + blood_state = BLOOD_STATE_OIL + bloodiness = MAX_SHOE_BLOODINESS + +/obj/effect/decal/cleanable/oil/New() + ..() + reagents.add_reagent("oil", 30) + +/obj/effect/decal/cleanable/oil/Destroy() + for(var/datum/disease/D in viruses) + D.cure(0) + viruses = null + return ..() + +/obj/effect/decal/cleanable/oil/streak + random_icon_states = list("streak1", "streak2", "streak3", "streak4", "streak5") diff --git a/code/game/objects/effects/decals/cleanable.dm b/code/game/objects/effects/decals/cleanable.dm new file mode 100644 index 0000000..8c3bab3 --- /dev/null +++ b/code/game/objects/effects/decals/cleanable.dm @@ -0,0 +1,91 @@ +/obj/effect/decal/cleanable + gender = PLURAL + layer = ABOVE_NORMAL_TURF_LAYER + var/list/random_icon_states = list() + var/blood_state = "" //I'm sorry but cleanable/blood code is ass, and so is blood_DNA + var/bloodiness = 0 //0-100, amount of blood in this decal, used for making footprints and affecting the alpha of bloody footprints + var/mergeable_decal = 1 //when two of these are on a same tile or do we need to merge them into just one? + +/obj/effect/decal/cleanable/New() + if (random_icon_states && length(src.random_icon_states) > 0) + src.icon_state = pick(src.random_icon_states) + create_reagents(300) + if(src.loc && isturf(src.loc)) + for(var/obj/effect/decal/cleanable/C in src.loc) + if(C != src && C.type == src.type) + replace_decal(C) + ..() + + + +/obj/effect/decal/cleanable/proc/replace_decal(obj/effect/decal/cleanable/C) + if(mergeable_decal) + qdel(C) + +/obj/effect/decal/cleanable/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/weapon/reagent_containers/glass) || istype(W, /obj/item/weapon/reagent_containers/food/drinks)) + if(src.reagents && W.reagents) + . = 1 //so the containers don't splash their content on the src while scooping. + if(!src.reagents.total_volume) + user << "[src] isn't thick enough to scoop up!" + return + if(W.reagents.total_volume >= W.reagents.maximum_volume) + user << "[W] is full!" + return + user << "You scoop up [src] into [W]!" + reagents.trans_to(W, reagents.total_volume) + if(!reagents.total_volume) //scooped up all of it + qdel(src) + return + if(W.is_hot()) //todo: make heating a reagent holder proc + if(istype(W, /obj/item/clothing/mask/cigarette)) + return + else + var/hotness = W.is_hot() + var/added_heat = (hotness / 100) + src.reagents.chem_temp = min(src.reagents.chem_temp + added_heat, hotness) + src.reagents.handle_reactions() + user << "You heat [src] with [W]!" + else + return ..() + +/obj/effect/decal/cleanable/ex_act() + if(reagents) + for(var/datum/reagent/R in reagents.reagent_list) + R.on_ex_act() + ..() + +/obj/effect/decal/cleanable/fire_act(exposed_temperature, exposed_volume) + if(reagents) + reagents.chem_temp += 30 + reagents.handle_reactions() + ..() + + +//Add "bloodiness" of this blood's type, to the human's shoes +//This is on /cleanable because fuck this ancient mess +/obj/effect/decal/cleanable/Crossed(atom/movable/O) + if(ishuman(O)) + var/mob/living/carbon/human/H = O + if(H.shoes && blood_state && bloodiness) + var/obj/item/clothing/shoes/S = H.shoes + var/add_blood = 0 + if(bloodiness >= BLOOD_GAIN_PER_STEP) + add_blood = BLOOD_GAIN_PER_STEP + else + add_blood = bloodiness + bloodiness -= add_blood + S.bloody_shoes[blood_state] = min(MAX_SHOE_BLOODINESS,S.bloody_shoes[blood_state]+add_blood) + if(blood_DNA && blood_DNA.len) + S.add_blood(blood_DNA) + S.blood_state = blood_state + update_icon() + H.update_inv_shoes() + + + +/obj/effect/decal/cleanable/proc/can_bloodcrawl_in() + if((blood_state != BLOOD_STATE_OIL) && (blood_state != BLOOD_STATE_NOT_BLOODY)) + return bloodiness + else + return 0 \ No newline at end of file diff --git a/code/game/objects/effects/decals/crayon.dm b/code/game/objects/effects/decals/crayon.dm new file mode 100644 index 0000000..8628bed --- /dev/null +++ b/code/game/objects/effects/decals/crayon.dm @@ -0,0 +1,54 @@ +/obj/effect/decal/cleanable/crayon + name = "rune" + desc = "Graffiti. Damn kids." + icon = 'icons/effects/crayondecal.dmi' + icon_state = "rune1" + gender = NEUTER + var/do_icon_rotate = TRUE + +/obj/effect/decal/cleanable/crayon/New(location, main = "#FFFFFF", var/type = "rune1", var/e_name = "rune", var/rotation = 0, var/alt_icon = null) + ..() + loc = location + + name = e_name + desc = "A [name] vandalizing the station." + if(type == "poseur tag") + type = pick(gang_name_pool) + + if(alt_icon) + icon = alt_icon + icon_state = type + + if(rotation && do_icon_rotate) + var/matrix/M = matrix() + M.Turn(rotation) + src.transform = M + + add_atom_colour(main, FIXED_COLOUR_PRIORITY) + + +/obj/effect/decal/cleanable/crayon/gang + layer = HIGH_OBJ_LAYER //Harder to hide + do_icon_rotate = FALSE //These are designed to always face south, so no rotation please. + var/datum/gang/gang + +/obj/effect/decal/cleanable/crayon/gang/New(location, var/datum/gang/G, var/e_name = "gang tag", var/rotation = 0) + if(!type || !G) + qdel(src) + + var/area/territory = get_area(location) + gang = G + var/newcolor = G.color_hex + icon_state = G.name + G.territory_new |= list(territory.type = territory.name) + + ..(location, newcolor, icon_state, e_name, rotation) + +/obj/effect/decal/cleanable/crayon/gang/Destroy() + var/area/territory = get_area(src) + + if(gang) + gang.territory -= territory.type + gang.territory_new -= territory.type + gang.territory_lost |= list(territory.type = territory.name) + return ..() diff --git a/code/game/objects/effects/decals/decal.dm b/code/game/objects/effects/decals/decal.dm new file mode 100644 index 0000000..e7ec329 --- /dev/null +++ b/code/game/objects/effects/decals/decal.dm @@ -0,0 +1,11 @@ +/obj/effect/decal + name = "decal" + anchored = 1 + resistance_flags = FIRE_PROOF | UNACIDABLE | ACID_PROOF + +/obj/effect/decal/ex_act(severity, target) + qdel(src) + +/obj/effect/decal/fire_act(exposed_temperature, exposed_volume) + if(!(resistance_flags & FIRE_PROOF)) //non fire proof decal or being burned by lava + qdel(src) diff --git a/code/game/objects/effects/decals/misc.dm b/code/game/objects/effects/decals/misc.dm new file mode 100644 index 0000000..e3b1618 --- /dev/null +++ b/code/game/objects/effects/decals/misc.dm @@ -0,0 +1,33 @@ +/obj/effect/overlay/temp/point + name = "pointer" + icon = 'icons/mob/screen_gen.dmi' + icon_state = "arrow" + layer = POINT_LAYER + duration = 25 + +/obj/effect/overlay/temp/point/New(atom/target, set_invis = 0) + ..() + loc = get_turf(target) + pixel_x = target.pixel_x + pixel_y = target.pixel_y + invisibility = set_invis + +//Used by spraybottles. +/obj/effect/decal/chempuff + name = "chemicals" + icon = 'icons/obj/chempuff.dmi' + pass_flags = PASSTABLE | PASSGRILLE + layer = FLY_LAYER + +/obj/effect/decal/sandeffect + name = "sandy tile" + icon = 'icons/turf/floors.dmi' + icon_state = "sandeffect" + layer = ABOVE_OPEN_TURF_LAYER + +/obj/effect/decal/fakelattice + name = "lattice" + desc = "A lightweight support lattice." + icon = 'icons/obj/smooth_structures/lattice.dmi' + icon_state = "lattice" + density = 1 \ No newline at end of file diff --git a/code/game/objects/effects/decals/remains.dm b/code/game/objects/effects/decals/remains.dm new file mode 100644 index 0000000..6b8fafd --- /dev/null +++ b/code/game/objects/effects/decals/remains.dm @@ -0,0 +1,20 @@ +/obj/effect/decal/remains + name = "remains" + gender = PLURAL + icon = 'icons/effects/blood.dmi' + +/obj/effect/decal/remains/human + desc = "They look like human remains. They have a strange aura about them." + icon_state = "remains" + +/obj/effect/decal/remains/xeno + desc = "They look like the remains of something... alien. They have a strange aura about them." + icon_state = "remainsxeno" + +/obj/effect/decal/remains/xeno/larva + icon_state = "remainslarva" + +/obj/effect/decal/remains/robot + desc = "They look like the remains of something mechanical. They have a strange aura about them." + icon = 'icons/mob/robots.dmi' + icon_state = "remainsrobot" \ No newline at end of file diff --git a/code/game/objects/effects/effect_system/effect_system.dm b/code/game/objects/effects/effect_system/effect_system.dm new file mode 100644 index 0000000..cd45c7f --- /dev/null +++ b/code/game/objects/effects/effect_system/effect_system.dm @@ -0,0 +1,74 @@ +/* This is an attempt to make some easily reusable "particle" type effect, to stop the code +constantly having to be rewritten. An item like the jetpack that uses the ion_trail_follow system, just has one +defined, then set up when it is created with New(). Then this same system can just be reused each time +it needs to create more trails.A beaker could have a steam_trail_follow system set up, then the steam +would spawn and follow the beaker, even if it is carried or thrown. +*/ + + +/obj/effect/particle_effect + name = "particle effect" + mouse_opacity = 0 + pass_flags = PASSTABLE | PASSGRILLE + +/obj/effect/particle_effect/New() + ..() + if(ticker) + cameranet.updateVisibility(src) + +/obj/effect/particle_effect/Destroy() + if(ticker) + cameranet.updateVisibility(src) + ..() + return QDEL_HINT_PUTINPOOL + +/datum/effect_system + var/number = 3 + var/cardinals = 0 + var/turf/location + var/atom/holder + var/effect_type + var/total_effects = 0 + +/datum/effect_system/Destroy() + holder = null + location = null + return ..() + +/datum/effect_system/proc/set_up(n = 3, c = 0, loca) + if(n > 10) + n = 10 + number = n + cardinals = c + if(isturf(loca)) + location = loca + else + location = get_turf(loca) + +/datum/effect_system/proc/attach(atom/atom) + holder = atom + +/datum/effect_system/proc/start() + for(var/i in 1 to number) + if(total_effects > 20) + return + addtimer(src, "generate_effect", 0) + +/datum/effect_system/proc/generate_effect() + if(holder) + location = get_turf(holder) + var/obj/effect/E = PoolOrNew(effect_type, location) + total_effects++ + var/direction + if(cardinals) + direction = pick(cardinal) + else + direction = pick(alldirs) + var/steps_amt = pick(1,2,3) + for(var/j in 1 to steps_amt) + sleep(5) + step(E,direction) + addtimer(src, "decrement_total_effect", 20) + +/datum/effect_system/proc/decrement_total_effect() + total_effects-- diff --git a/code/game/objects/effects/effect_system/effects_explosion.dm b/code/game/objects/effects/effect_system/effects_explosion.dm new file mode 100644 index 0000000..c8d5484 --- /dev/null +++ b/code/game/objects/effects/effect_system/effects_explosion.dm @@ -0,0 +1,59 @@ +/obj/effect/particle_effect/expl_particles + name = "fire" + icon_state = "explosion_particle" + opacity = 1 + anchored = 1 + +/obj/effect/particle_effect/expl_particles/New() + ..() + QDEL_IN(src, 15) + +/datum/effect_system/expl_particles + number = 10 + +/datum/effect_system/expl_particles/start() + for(var/i in 1 to number) + spawn(0) + var/obj/effect/particle_effect/expl_particles/expl = new /obj/effect/particle_effect/expl_particles(location) + var/direct = pick(alldirs) + var/steps_amt = pick(1;25,2;50,3,4;200) + for(var/j in 1 to steps_amt) + sleep(1) + step(expl,direct) + +/obj/effect/explosion + name = "fire" + icon = 'icons/effects/96x96.dmi' + icon_state = "explosion" + opacity = 1 + anchored = 1 + mouse_opacity = 0 + pixel_x = -32 + pixel_y = -32 + +/obj/effect/explosion/New() + ..() + QDEL_IN(src, 10) + +/datum/effect_system/explosion + +/datum/effect_system/explosion/set_up(loca) + if(isturf(loca)) + location = loca + else + location = get_turf(loca) + +/datum/effect_system/explosion/start() + new/obj/effect/explosion( location ) + var/datum/effect_system/expl_particles/P = new/datum/effect_system/expl_particles() + P.set_up(10, 0, location) + P.start() + +/datum/effect_system/explosion/smoke + +/datum/effect_system/explosion/smoke/start() + ..() + spawn(5) + var/datum/effect_system/smoke_spread/S = new + S.set_up(2, location) + S.start() diff --git a/code/game/objects/effects/effect_system/effects_foam.dm b/code/game/objects/effects/effect_system/effects_foam.dm new file mode 100644 index 0000000..45e6bfe --- /dev/null +++ b/code/game/objects/effects/effect_system/effects_foam.dm @@ -0,0 +1,227 @@ +// Foam +// Similar to smoke, but slower and mobs absorb its reagent through their exposed skin. + +/obj/effect/particle_effect/foam + name = "foam" + icon_state = "foam" + opacity = 0 + anchored = 1 + density = 0 + layer = WALL_OBJ_LAYER + mouse_opacity = 0 + var/amount = 3 + animate_movement = 0 + var/metal = 0 + var/lifetime = 40 + var/reagent_divisor = 7 + + +/obj/effect/particle_effect/foam/metal + name = "aluminium foam" + metal = 1 + icon_state = "mfoam" + + +/obj/effect/particle_effect/foam/metal/iron + name = "iron foam" + metal = 2 + + +/obj/effect/particle_effect/foam/New(loc) + ..(loc) + create_reagents(1000) //limited by the size of the reagent holder anyway. + START_PROCESSING(SSfastprocess, src) + playsound(src, 'sound/effects/bubbles2.ogg', 80, 1, -3) + +/obj/effect/particle_effect/foam/Destroy() + STOP_PROCESSING(SSfastprocess, src) + return ..() + + +/obj/effect/particle_effect/foam/proc/kill_foam() + STOP_PROCESSING(SSfastprocess, src) + switch(metal) + if(1) + new /obj/structure/foamedmetal(src.loc) + if(2) + new /obj/structure/foamedmetal/iron(src.loc) + flick("[icon_state]-disolve", src) + QDEL_IN(src, 5) + +/obj/effect/particle_effect/foam/process() + lifetime-- + if(lifetime < 1) + kill_foam() + return + + var/fraction = 1/initial(reagent_divisor) + for(var/obj/O in range(0,src)) + if(O.type == src.type) + continue + if(isturf(O.loc)) + var/turf/T = O.loc + if(T.intact && O.level == 1) //hidden under the floor + continue + if(lifetime % reagent_divisor) + reagents.reaction(O, VAPOR, fraction) + var/hit = 0 + for(var/mob/living/L in range(0,src)) + hit += foam_mob(L) + if(hit) + lifetime++ //this is so the decrease from mobs hit and the natural decrease don't cumulate. + var/T = get_turf(src) + if(lifetime % reagent_divisor) + reagents.reaction(T, VAPOR, fraction) + + if(--amount < 0) + return + spread_foam() + +/obj/effect/particle_effect/foam/proc/foam_mob(mob/living/L) + if(lifetime<1) + return 0 + if(!istype(L)) + return 0 + var/fraction = 1/initial(reagent_divisor) + if(lifetime % reagent_divisor) + reagents.reaction(L, VAPOR, fraction) + lifetime-- + return 1 + +/obj/effect/particle_effect/foam/Crossed(atom/movable/AM) + if(istype(AM, /mob/living/carbon)) + var/mob/living/carbon/M = AM + M.slip(5, 2, src) + +/obj/effect/particle_effect/foam/metal/Crossed(atom/movable/AM) + return + + +/obj/effect/particle_effect/foam/proc/spread_foam() + var/turf/t_loc = get_turf(src) + for(var/turf/T in t_loc.GetAtmosAdjacentTurfs()) + var/obj/effect/particle_effect/foam/foundfoam = locate() in T //Don't spread foam where there's already foam! + if(foundfoam) + continue + + for(var/mob/living/L in T) + foam_mob(L) + var/obj/effect/particle_effect/foam/F = PoolOrNew(src.type, T) + F.amount = amount + reagents.copy_to(F, (reagents.total_volume)) + F.add_atom_colour(color, FIXED_COLOUR_PRIORITY) + F.metal = metal + + +/obj/effect/particle_effect/foam/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) + if(prob(max(0, exposed_temperature - 475))) //foam dissolves when heated + kill_foam() + + +/obj/effect/particle_effect/foam/metal/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) + return + + +/////////////////////////////////////////////// +//FOAM EFFECT DATUM +/datum/effect_system/foam_spread + var/amount = 10 // the size of the foam spread. + var/obj/chemholder + effect_type = /obj/effect/particle_effect/foam + var/metal = 0 + + +/datum/effect_system/foam_spread/metal + effect_type = /obj/effect/particle_effect/foam/metal + + +/datum/effect_system/foam_spread/New() + ..() + chemholder = PoolOrNew(/obj) + var/datum/reagents/R = new/datum/reagents(1000) + chemholder.reagents = R + R.my_atom = chemholder + +/datum/effect_system/foam_spread/Destroy() + qdel(chemholder) + chemholder = null + return ..() + +/datum/effect_system/foam_spread/set_up(amt=5, loca, datum/reagents/carry = null) + if(isturf(loca)) + location = loca + else + location = get_turf(loca) + + amount = round(sqrt(amt / 2), 1) + carry.copy_to(chemholder, 4*carry.total_volume) //The foam holds 4 times the total reagents volume for balance purposes. + +/datum/effect_system/foam_spread/metal/set_up(amt=5, loca, datum/reagents/carry = null, metaltype) + ..() + metal = metaltype + +/datum/effect_system/foam_spread/start() + var/obj/effect/particle_effect/foam/foundfoam = locate() in location + if(foundfoam)//If there was already foam where we start, we add our foaminess to it. + foundfoam.amount += amount + else + var/obj/effect/particle_effect/foam/F = PoolOrNew(effect_type, location) + var/foamcolor = mix_color_from_reagents(chemholder.reagents.reagent_list) + chemholder.reagents.copy_to(F, chemholder.reagents.total_volume/amount) + F.add_atom_colour(foamcolor, FIXED_COLOUR_PRIORITY) + F.amount = amount + F.metal = metal + + +////////////////////////////////////////////////////////// +// FOAM STRUCTURE. Formed by metal foams. Dense and opaque, but easy to break +/obj/structure/foamedmetal + icon = 'icons/effects/effects.dmi' + icon_state = "metalfoam" + density = 1 + opacity = 1 // changed in New() + anchored = 1 + resistance_flags = FIRE_PROOF | ACID_PROOF + name = "foamed metal" + desc = "A lightweight foamed metal wall." + gender = PLURAL + obj_integrity = 20 + max_integrity = 20 + +/obj/structure/foamedmetal/New() + ..() + air_update_turf(1) + + +/obj/structure/foamedmetal/Destroy() + density = 0 + air_update_turf(1) + return ..() + +/obj/structure/foamedmetal/Move() + var/turf/T = loc + ..() + move_update_air(T) + +/obj/structure/foamedmetal/attack_paw(mob/user) + attack_hand(user) + +/obj/structure/foamedmetal/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) + playsound(src.loc, 'sound/weapons/tap.ogg', 100, 1) + +/obj/structure/foamedmetal/attack_hand(mob/user) + user.changeNext_move(CLICK_CD_MELEE) + user.do_attack_animation(src, ATTACK_EFFECT_PUNCH) + user << "You hit the metal foam but bounce off it!" + playsound(src.loc, 'sound/weapons/tap.ogg', 100, 1) + +/obj/structure/foamedmetal/CanPass(atom/movable/mover, turf/target, height=1.5) + return !density + + +/obj/structure/foamedmetal/CanAtmosPass() + return !density +/obj/structure/foamedmetal/iron + obj_integrity = 50 + max_integrity = 50 + icon_state = "ironfoam" diff --git a/code/game/objects/effects/effect_system/effects_other.dm b/code/game/objects/effects/effect_system/effects_other.dm new file mode 100644 index 0000000..585dfed --- /dev/null +++ b/code/game/objects/effects/effect_system/effects_other.dm @@ -0,0 +1,119 @@ + +///////////////////////////////////////////// +//////// Attach a trail to any object, that spawns when it moves (like for the jetpack) +/// just pass in the object to attach it to in set_up +/// Then do start() to start it and stop() to stop it, obviously +/// and don't call start() in a loop that will be repeated otherwise it'll get spammed! +///////////////////////////////////////////// + +/datum/effect_system/trail_follow + var/turf/oldposition + var/processing = 1 + var/on = 1 + +/datum/effect_system/trail_follow/set_up(atom/atom) + attach(atom) + oldposition = get_turf(atom) + +/datum/effect_system/trail_follow/Destroy() + oldposition = null + return ..() + +/datum/effect_system/trail_follow/proc/stop() + processing = 0 + on = 0 + oldposition = null + +/datum/effect_system/trail_follow/steam + effect_type = /obj/effect/particle_effect/steam + +/datum/effect_system/trail_follow/steam/start() + if(!on) + on = 1 + processing = 1 + if(!oldposition) + oldposition = get_turf(holder) + if(processing) + processing = 0 + if(number < 3) + var/obj/effect/particle_effect/steam/I = PoolOrNew(/obj/effect/particle_effect/steam, oldposition) + number++ + I.setDir(holder.dir) + oldposition = get_turf(holder) + spawn(10) + qdel(I) + number-- + spawn(2) + if(on) + processing = 1 + start() + +/obj/effect/particle_effect/ion_trails + name = "ion trails" + icon_state = "ion_trails" + anchored = 1 + +/datum/effect_system/trail_follow/ion + effect_type = /obj/effect/particle_effect/ion_trails + +/datum/effect_system/trail_follow/ion/start() //Whoever is responsible for this abomination of code should become an hero + if(!on) + on = 1 + processing = 1 + if(!oldposition) + oldposition = get_turf(holder) + if(processing) + processing = 0 + var/turf/T = get_turf(holder) + if(T != oldposition) + if(!T.has_gravity()) + var/obj/effect/particle_effect/ion_trails/I = PoolOrNew(effect_type, oldposition) + I.setDir(holder.dir) + flick("ion_fade", I) + I.icon_state = "" + spawn(20) + qdel(I) + oldposition = T + spawn(2) + if(on) + processing = 1 + start() + + + + +//Reagent-based explosion effect + +/datum/effect_system/reagents_explosion + var/amount // TNT equivalent + var/flashing = 0 // does explosion creates flash effect? + var/flashing_factor = 0 // factor of how powerful the flash effect relatively to the explosion + var/explosion_message = 1 //whether we show a message to mobs. + +/datum/effect_system/reagents_explosion/set_up(amt, loca, flash = 0, flash_fact = 0, message = 1) + amount = amt + explosion_message = message + if(isturf(loca)) + location = loca + else + location = get_turf(loca) + + flashing = flash + flashing_factor = flash_fact + +/datum/effect_system/reagents_explosion/start() + if(explosion_message) + location.visible_message("The solution violently explodes!", \ + "You hear an explosion!") + if (amount < 1) + var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread + s.set_up(2, 1, location) + s.start() + + for(var/mob/M in viewers(1, location)) + if (prob (50 * amount)) + M << "The explosion knocks you down." + M.Weaken(rand(1,5)) + return + else + dyn_explosion(location, amount, flashing_factor) \ No newline at end of file diff --git a/code/game/objects/effects/effect_system/effects_smoke.dm b/code/game/objects/effects/effect_system/effects_smoke.dm new file mode 100644 index 0000000..ee250dd --- /dev/null +++ b/code/game/objects/effects/effect_system/effects_smoke.dm @@ -0,0 +1,313 @@ +///////////////////////////////////////////// +//// SMOKE SYSTEMS +///////////////////////////////////////////// + +/obj/effect/particle_effect/smoke + name = "smoke" + icon = 'icons/effects/96x96.dmi' + icon_state = "smoke" + pixel_x = -32 + pixel_y = -32 + opacity = 0 + layer = FLY_LAYER + anchored = 1 + mouse_opacity = 0 + animate_movement = 0 + var/amount = 4 + var/lifetime = 5 + var/opaque = 1 //whether the smoke can block the view when in enough amount + + +/obj/effect/particle_effect/smoke/proc/fade_out(frames = 16) + if(alpha == 0) //Handle already transparent case + return + if(frames == 0) + frames = 1 //We will just assume that by 0 frames, the coder meant "during one frame". + var/step = alpha / frames + for(var/i = 0, i < frames, i++) + alpha -= step + if(alpha < 160) + opacity = 0 //if we were blocking view, we aren't now because we're fading out + stoplag() + +/obj/effect/particle_effect/smoke/New() + ..() + create_reagents(500) + START_PROCESSING(SSobj, src) + + +/obj/effect/particle_effect/smoke/Destroy() + STOP_PROCESSING(SSobj, src) + return ..() + +/obj/effect/particle_effect/smoke/proc/kill_smoke() + STOP_PROCESSING(SSobj, src) + addtimer(src, "fade_out", 0) + QDEL_IN(src, 10) + +/obj/effect/particle_effect/smoke/process() + lifetime-- + if(lifetime < 1) + kill_smoke() + return 0 + for(var/mob/living/L in range(0,src)) + smoke_mob(L) + return 1 + +/obj/effect/particle_effect/smoke/proc/smoke_mob(mob/living/carbon/C) + if(!istype(C)) + return 0 + if(lifetime<1) + return 0 + if(C.internal != null || C.has_smoke_protection()) + return 0 + if(C.smoke_delay) + return 0 + C.smoke_delay++ + addtimer(src, "remove_smoke_delay", 10, FALSE, C) + return 1 + +/obj/effect/particle_effect/smoke/proc/remove_smoke_delay(mob/living/carbon/C) + if(C) + C.smoke_delay = 0 + +/obj/effect/particle_effect/smoke/proc/spread_smoke() + var/turf/t_loc = get_turf(src) + var/list/newsmokes = list() + for(var/turf/T in t_loc.GetAtmosAdjacentTurfs()) + var/obj/effect/particle_effect/smoke/foundsmoke = locate() in T //Don't spread smoke where there's already smoke! + if(foundsmoke) + continue + for(var/mob/living/L in T) + smoke_mob(L) + var/obj/effect/particle_effect/smoke/S = new type(T) + reagents.copy_to(S, reagents.total_volume) + S.setDir(pick(cardinal)) + S.amount = amount-1 + S.add_atom_colour(color, FIXED_COLOUR_PRIORITY) + S.lifetime = lifetime + if(S.amount>0) + if(opaque) + S.opacity = 1 + newsmokes.Add(S) + + if(newsmokes.len) + spawn(1) //the smoke spreads rapidly but not instantly + for(var/obj/effect/particle_effect/smoke/SM in newsmokes) + SM.spread_smoke() + + +/datum/effect_system/smoke_spread + var/amount = 10 + effect_type = /obj/effect/particle_effect/smoke + +/datum/effect_system/smoke_spread/set_up(radius = 5, loca) + if(isturf(loca)) + location = loca + else + location = get_turf(loca) + amount = radius + +/datum/effect_system/smoke_spread/start() + if(holder) + location = get_turf(holder) + var/obj/effect/particle_effect/smoke/S = new effect_type(location) + S.amount = amount + if(S.amount) + S.spread_smoke() + + +///////////////////////////////////////////// +// Bad smoke +///////////////////////////////////////////// + +/obj/effect/particle_effect/smoke/bad + lifetime = 8 + +/obj/effect/particle_effect/smoke/bad/smoke_mob(mob/living/carbon/M) + if(..()) + M.drop_item() + M.adjustOxyLoss(1) + M.emote("cough") + return 1 + +/obj/effect/particle_effect/smoke/bad/CanPass(atom/movable/mover, turf/target, height=0) + if(height==0) return 1 + if(istype(mover, /obj/item/projectile/beam)) + var/obj/item/projectile/beam/B = mover + B.damage = (B.damage/2) + return 1 + + + +/datum/effect_system/smoke_spread/bad + effect_type = /obj/effect/particle_effect/smoke/bad + +///////////////////////////////////////////// +// Nanofrost smoke +///////////////////////////////////////////// + +/obj/effect/particle_effect/smoke/freezing + name = "nanofrost smoke" + color = "#B2FFFF" + opaque = 0 + +/datum/effect_system/smoke_spread/freezing + effect_type = /obj/effect/particle_effect/smoke/freezing + var/blast = 0 + +/datum/effect_system/smoke_spread/freezing/proc/Chilled(atom/A) + if(isopenturf(A)) + var/turf/open/T = A + if(T.air) + var/datum/gas_mixture/G = T.air + if(get_dist(T, location) < 2) // Otherwise we'll get silliness like people using Nanofrost to kill people through walls with cold air + G.temperature = 2 + T.air_update_turf() + for(var/obj/effect/hotspot/H in T) + qdel(H) + var/list/G_gases = G.gases + if(G_gases["plasma"]) + G.assert_gas("n2") + G_gases["n2"][MOLES] += (G_gases["plasma"][MOLES]) + G_gases["plasma"][MOLES] = 0 + G.garbage_collect() + for(var/obj/machinery/atmospherics/components/unary/U in T) + if(!isnull(U.welded) && !U.welded) //must be an unwelded vent pump or vent scrubber. + U.welded = 1 + U.update_icon() + U.visible_message("[U] was frozen shut!") + for(var/mob/living/L in T) + L.ExtinguishMob() + for(var/obj/item/Item in T) + Item.extinguish() + +/datum/effect_system/smoke_spread/freezing/set_up(radius = 5, loca, blasting = 0) + ..() + blast = blasting + +/datum/effect_system/smoke_spread/freezing/start() + if(blast) + for(var/turf/T in RANGE_TURFS(2, location)) + Chilled(T) + ..() + + + +///////////////////////////////////////////// +// Sleep smoke +///////////////////////////////////////////// + +/obj/effect/particle_effect/smoke/sleeping + color = "#9C3636" + lifetime = 10 + +/obj/effect/particle_effect/smoke/sleeping/smoke_mob(mob/living/carbon/M) + if(..()) + M.drop_item() + M.Sleeping(max(M.sleeping,10)) + M.emote("cough") + return 1 + +/datum/effect_system/smoke_spread/sleeping + effect_type = /obj/effect/particle_effect/smoke/sleeping + +///////////////////////////////////////////// +// Chem smoke +///////////////////////////////////////////// + +/obj/effect/particle_effect/smoke/chem + lifetime = 10 + + +/obj/effect/particle_effect/smoke/chem/process() + if(..()) + var/turf/T = get_turf(src) + var/fraction = 1/initial(lifetime) + for(var/atom/movable/AM in T) + if(AM.type == src.type) + continue + if(T.intact && AM.level == 1) //hidden under the floor + continue + reagents.reaction(AM, TOUCH, fraction) + + reagents.reaction(T, TOUCH, fraction) + return 1 + +/obj/effect/particle_effect/smoke/chem/smoke_mob(mob/living/carbon/M) + if(lifetime<1) + return 0 + if(!istype(M)) + return 0 + var/mob/living/carbon/C = M + if(C.internal != null || C.has_smoke_protection()) + return 0 + var/fraction = 1/initial(lifetime) + reagents.copy_to(C, fraction*reagents.total_volume) + reagents.reaction(M, INGEST, fraction) + return 1 + + + +/datum/effect_system/smoke_spread/chem + var/obj/chemholder + effect_type = /obj/effect/particle_effect/smoke/chem + +/datum/effect_system/smoke_spread/chem/New() + ..() + chemholder = PoolOrNew(/obj) + var/datum/reagents/R = new/datum/reagents(500) + chemholder.reagents = R + R.my_atom = chemholder + +/datum/effect_system/smoke_spread/chem/Destroy() + qdel(chemholder) + chemholder = null + return ..() + +/datum/effect_system/smoke_spread/chem/set_up(datum/reagents/carry = null, radius = 1, loca, silent = 0) + if(isturf(loca)) + location = loca + else + location = get_turf(loca) + amount = radius + carry.copy_to(chemholder, 4*carry.total_volume) //The smoke holds 4 times the total reagents volume for balance purposes. + + if(!silent) + var/contained = "" + for(var/reagent in carry.reagent_list) + contained += " [reagent] " + if(contained) + contained = "\[[contained]\]" + var/area/A = get_area(location) + + var/where = "[A.name] | [location.x], [location.y]" + var/whereLink = "[where]" + + if(carry.my_atom.fingerprintslast) + var/mob/M = get_mob_by_key(carry.my_atom.fingerprintslast) + var/more = "" + if(M) + more = "(?) (FLW) " + message_admins("Smoke: ([whereLink])[contained]. Key: [carry.my_atom.fingerprintslast][more].", 0, 1) + log_game("A chemical smoke reaction has taken place in ([where])[contained]. Last associated key is [carry.my_atom.fingerprintslast].") + else + message_admins("Smoke: ([whereLink])[contained]. No associated key.", 0, 1) + log_game("A chemical smoke reaction has taken place in ([where])[contained]. No associated key.") + + +/datum/effect_system/smoke_spread/chem/start() + var/mixcolor = mix_color_from_reagents(chemholder.reagents.reagent_list) + if(holder) + location = get_turf(holder) + var/obj/effect/particle_effect/smoke/chem/S = new effect_type(location) + + if(chemholder.reagents.total_volume > 1) // can't split 1 very well + chemholder.reagents.copy_to(S, chemholder.reagents.total_volume) + + if(mixcolor) + S.add_atom_colour(mixcolor, FIXED_COLOUR_PRIORITY) // give the smoke color, if it has any to begin with + S.amount = amount + if(S.amount) + S.spread_smoke() //calling process right now so the smoke immediately attacks mobs. + diff --git a/code/game/objects/effects/effect_system/effects_sparks.dm b/code/game/objects/effects/effect_system/effects_sparks.dm new file mode 100644 index 0000000..f6f07d1 --- /dev/null +++ b/code/game/objects/effects/effect_system/effects_sparks.dm @@ -0,0 +1,46 @@ +///////////////////////////////////////////// +//SPARK SYSTEM (like steam system) +// The attach(atom/atom) proc is optional, and can be called to attach the effect +// to something, like the RCD, so then you can just call start() and the sparks +// will always spawn at the items location. +///////////////////////////////////////////// + +/obj/effect/particle_effect/sparks + name = "sparks" + icon_state = "sparks" + anchored = 1 + luminosity = 1 + +/obj/effect/particle_effect/sparks/New() + ..() + flick("sparks", src) // replay the animation + playsound(src.loc, "sparks", 100, 1) + var/turf/T = loc + if(isturf(T)) + T.hotspot_expose(1000,100) + QDEL_IN(src, 20) + +/obj/effect/particle_effect/sparks/Destroy() + var/turf/T = loc + if(isturf(T)) + T.hotspot_expose(1000,100) + return ..() + +/obj/effect/particle_effect/sparks/Move() + ..() + var/turf/T = loc + if(isturf(T)) + T.hotspot_expose(1000,100) + +/datum/effect_system/spark_spread + effect_type = /obj/effect/particle_effect/sparks + + +//electricity + +/obj/effect/particle_effect/sparks/electricity + name = "lightning" + icon_state = "electricity" + +/datum/effect_system/lightning_spread + effect_type = /obj/effect/particle_effect/sparks/electricity diff --git a/code/game/objects/effects/effect_system/effects_water.dm b/code/game/objects/effects/effect_system/effects_water.dm new file mode 100644 index 0000000..e12894d --- /dev/null +++ b/code/game/objects/effects/effect_system/effects_water.dm @@ -0,0 +1,53 @@ +//WATER EFFECTS + +/obj/effect/particle_effect/water + name = "water" + icon_state = "extinguish" + var/life = 15 + mouse_opacity = 0 + + +/obj/effect/particle_effect/water/New() + ..() + QDEL_IN(src, 70) + +/obj/effect/particle_effect/water/Move(turf/newloc) + if (--src.life < 1) + qdel(src) + return 0 + if(newloc.density) + return 0 + .=..() + +/obj/effect/particle_effect/water/Bump(atom/A) + if(reagents) + reagents.reaction(A) + return ..() + + +///////////////////////////////////////////// +// GENERIC STEAM SPREAD SYSTEM + +//Usage: set_up(number of bits of steam, use North/South/East/West only, spawn location) +// The attach(atom/atom) proc is optional, and can be called to attach the effect +// to something, like a smoking beaker, so then you can just call start() and the steam +// will always spawn at the items location, even if it's moved. + +/* Example: +var/datum/effect_system/steam_spread/steam = new /datum/effect_system/steam_spread() -- creates new system +steam.set_up(5, 0, mob.loc) -- sets up variables +OPTIONAL: steam.attach(mob) +steam.start() -- spawns the effect +*/ +///////////////////////////////////////////// +/obj/effect/particle_effect/steam + name = "steam" + icon_state = "extinguish" + density = 0 + +/obj/effect/particle_effect/steam/New() + ..() + QDEL_IN(src, 20) + +/datum/effect_system/steam_spread + effect_type = /obj/effect/particle_effect/steam diff --git a/code/game/objects/effects/effects.dm b/code/game/objects/effects/effects.dm new file mode 100644 index 0000000..e0abc98 --- /dev/null +++ b/code/game/objects/effects/effects.dm @@ -0,0 +1,41 @@ + +//objects in /obj/effect should never be things that are attackable, use obj/structure instead. +//Effects are mostly temporary visual effects like sparks, smoke, as well as decals, etc... +/obj/effect + icon = 'icons/effects/effects.dmi' + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF + +/obj/effect/attackby(obj/item/I, mob/living/user, params) + return + +/obj/effect/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir) + return + +/obj/effect/fire_act(exposed_temperature, exposed_volume) + return + +/obj/effect/acid_act() + return + +/obj/effect/mech_melee_attack(obj/mecha/M) + return 0 + +/obj/effect/blob_act() + return + +/obj/effect/ex_act(severity, target) + if(target == src) + qdel(src) + else + switch(severity) + if(1) + qdel(src) + if(2) + if(prob(60)) + qdel(src) + if(3) + if(prob(25)) + qdel(src) + +/obj/effect/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0) + return 0 diff --git a/code/game/objects/effects/forcefields.dm b/code/game/objects/effects/forcefields.dm new file mode 100644 index 0000000..0e2c909 --- /dev/null +++ b/code/game/objects/effects/forcefields.dm @@ -0,0 +1,27 @@ +/obj/effect/forcefield + desc = "A space wizard's magic wall." + name = "FORCEWALL" + icon_state = "m_shield" + anchored = 1 + opacity = 0 + density = 1 + +/obj/effect/forcefield/CanAtmosPass(turf/T) + return !density + +/obj/effect/forcefield/cult + desc = "An unholy shield that blocks all attacks." + name = "glowing wall" + icon_state = "cultshield" + +///////////Mimewalls/////////// + +/obj/effect/forcefield/mime + icon_state = "empty" + name = "invisible wall" + desc = "You have a bad feeling about this." + var/timeleft = 300 + +/obj/effect/forcefield/mime/New() + ..() + QDEL_IN(src, timeleft) diff --git a/code/game/objects/effects/glowshroom.dm b/code/game/objects/effects/glowshroom.dm new file mode 100644 index 0000000..09f8878 --- /dev/null +++ b/code/game/objects/effects/glowshroom.dm @@ -0,0 +1,145 @@ +//separate dm since hydro is getting bloated already + +var/list/blacklisted_glowshroom_turfs = typecacheof(list( + /turf/open/floor/plating/lava, + /turf/open/floor/plating/beach/water)) + +/obj/structure/glowshroom + name = "glowshroom" + desc = "Mycena Bregprox, a species of mushroom that glows in the dark." + anchored = 1 + opacity = 0 + density = 0 + icon = 'icons/obj/lighting.dmi' + icon_state = "glowshroom" //replaced in New + layer = ABOVE_NORMAL_TURF_LAYER + obj_integrity = 30 + max_integrity = 30 + var/potency = 30 + var/delay = 1200 + var/floor = 0 + var/yield = 3 + var/generation = 1 + var/spreadIntoAdjacentChance = 60 + +obj/structure/glowshroom/glowcap + name = "glowcap" + icon_state = "glowcap" + +/obj/structure/glowshroom/single + yield = 0 + +/obj/structure/glowshroom/examine(mob/user) + . = ..() + user << "This is a [generation]\th generation [name]!" + +/obj/structure/glowshroom/New() + ..() + SetLuminosity(round(potency/10)) + setDir(CalcDir()) + var/base_icon_state = initial(icon_state) + if(!floor) + switch(dir) //offset to make it be on the wall rather than on the floor + if(NORTH) + pixel_y = 32 + if(SOUTH) + pixel_y = -32 + if(EAST) + pixel_x = 32 + if(WEST) + pixel_x = -32 + icon_state = "[base_icon_state][rand(1,3)]" + else //if on the floor, glowshroom on-floor sprite + icon_state = "[base_icon_state]f" + + addtimer(src, "Spread", delay) + +/obj/structure/glowshroom/proc/Spread() + for(var/i = 1 to yield) + if(prob(1/(generation * generation) * 100))//This formula gives you diminishing returns based on generation. 100% with 1st gen, decreasing to 25%, 11%, 6, 4, 2... + var/list/possibleLocs = list() + var/spreadsIntoAdjacent = FALSE + + if(prob(spreadIntoAdjacentChance)) + spreadsIntoAdjacent = TRUE + + for(var/turf/open/floor/earth in view(3,src)) + if(is_type_in_typecache(earth, blacklisted_glowshroom_turfs)) + continue + if(spreadsIntoAdjacent || !locate(/obj/structure/glowshroom) in view(1,earth)) + possibleLocs += earth + CHECK_TICK + + if(!possibleLocs.len) + break + + var/turf/newLoc = pick(possibleLocs) + + var/shroomCount = 0 //hacky + var/placeCount = 1 + for(var/obj/structure/glowshroom/shroom in newLoc) + shroomCount++ + for(var/wallDir in cardinal) + var/turf/isWall = get_step(newLoc,wallDir) + if(isWall.density) + placeCount++ + if(shroomCount >= placeCount) + continue + + var/obj/structure/glowshroom/child = new type(newLoc)//The baby mushrooms have different stats :3 + child.potency = max(potency + rand(-3,6), 0) + child.yield = max(yield + rand(-1,2), 0) + child.delay = max(delay + rand(-30,60), 0) + var/newhealth = max(obj_integrity + rand(-3,6), 1) + child.obj_integrity = newhealth + child.max_integrity = newhealth + child.generation = generation + 1 + + CHECK_TICK + +/obj/structure/glowshroom/proc/CalcDir(turf/location = loc) + var/direction = 16 + + for(var/wallDir in cardinal) + var/turf/newTurf = get_step(location,wallDir) + if(newTurf.density) + direction |= wallDir + + for(var/obj/structure/glowshroom/shroom in location) + if(shroom == src) + continue + if(shroom.floor) //special + direction &= ~16 + else + direction &= ~shroom.dir + + var/list/dirList = list() + + for(var/i=1,i<=16,i <<= 1) + if(direction & i) + dirList += i + + if(dirList.len) + var/newDir = pick(dirList) + if(newDir == 16) + floor = 1 + newDir = 1 + return newDir + + floor = 1 + return 1 + +/obj/structure/glowshroom/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) + if(damage_type == BURN && damage_amount) + playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) + +/obj/structure/glowshroom/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) + if(exposed_temperature > 300) + take_damage(5, BURN, 0, 0) + +/obj/structure/glowshroom/acid_act(acidpwr, acid_volume) + . = 1 + visible_message("[src] melts away!") + var/obj/effect/decal/cleanable/molten_object/I = new (get_turf(src)) + I.desc = "Looks like this was \an [src] some time ago." + qdel(src) diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm new file mode 100644 index 0000000..a1f894f --- /dev/null +++ b/code/game/objects/effects/landmarks.dm @@ -0,0 +1,286 @@ +/obj/effect/landmark + name = "landmark" + icon = 'icons/mob/screen_gen.dmi' + icon_state = "x2" + anchored = 1 + invisibility = INVISIBILITY_ABSTRACT + +/obj/effect/landmark/New() + ..() + tag = text("landmark*[]", name) + landmarks_list += src + + switch(name) //some of these are probably obsolete + if("monkey") + monkeystart += loc + qdel(src) + return + if("start") + newplayer_start += loc + qdel(src) + return + if("wizard") + wizardstart += loc + qdel(src) + return + if("JoinLate") + latejoin += loc + qdel(src) + return + if("prisonwarp") + prisonwarp += loc + qdel(src) + return + if("Holding Facility") + holdingfacility += loc + if("tdome1") + tdome1 += loc + if("tdome2") + tdome2 += loc + if("tdomeadmin") + tdomeadmin += loc + if("tdomeobserve") + tdomeobserve += loc + if("prisonsecuritywarp") + prisonsecuritywarp += loc + qdel(src) + return + if("blobstart") + blobstart += loc + qdel(src) + return + if("secequipment") + secequipment += loc + qdel(src) + return + if("Emergencyresponseteam") + emergencyresponseteamspawn += loc + qdel(src) + return + if("xeno_spawn") + xeno_spawn += loc + qdel(src) + return + return 1 + +/obj/effect/landmark/Destroy() + landmarks_list -= src + return ..() + +/obj/effect/landmark/start + name = "start" + icon = 'icons/mob/screen_gen.dmi' + icon_state = "x" + anchored = 1 + +/obj/effect/landmark/start/New() + ..() + tag = "start*[name]" + start_landmarks_list += src + return 1 + +/obj/effect/landmark/start/Destroy() + start_landmarks_list -= src + return ..() + +//Costume spawner landmarks + +/obj/effect/landmark/costume/New() //costume spawner, selects a random subclass and disappears + + var/list/options = typesof(/obj/effect/landmark/costume) + var/PICK= options[rand(1,options.len)] + new PICK(src.loc) + qdel(src) + +//SUBCLASSES. Spawn a bunch of items and disappear likewise +/obj/effect/landmark/costume/chicken/New() + new /obj/item/clothing/suit/chickensuit(src.loc) + new /obj/item/clothing/head/chicken(src.loc) + new /obj/item/weapon/reagent_containers/food/snacks/egg(src.loc) + qdel(src) + +/obj/effect/landmark/costume/gladiator/New() + new /obj/item/clothing/under/gladiator(src.loc) + new /obj/item/clothing/head/helmet/gladiator(src.loc) + qdel(src) + +/obj/effect/landmark/costume/madscientist/New() + new /obj/item/clothing/under/gimmick/rank/captain/suit(src.loc) + new /obj/item/clothing/head/flatcap(src.loc) + new /obj/item/clothing/suit/toggle/labcoat/mad(src.loc) + qdel(src) + +/obj/effect/landmark/costume/elpresidente/New() + new /obj/item/clothing/under/gimmick/rank/captain/suit(src.loc) + new /obj/item/clothing/head/flatcap(src.loc) + new /obj/item/clothing/mask/cigarette/cigar/havana(src.loc) + new /obj/item/clothing/shoes/jackboots(src.loc) + qdel(src) + +/obj/effect/landmark/costume/nyangirl/New() + new /obj/item/clothing/under/schoolgirl(src.loc) + new /obj/item/clothing/head/kitty(src.loc) + new /obj/item/clothing/glasses/sunglasses/blindfold(src.loc) + qdel(src) + +/obj/effect/landmark/costume/maid/New() + new /obj/item/clothing/under/skirt/black(src.loc) + var/CHOICE = pick( /obj/item/clothing/head/beret , /obj/item/clothing/head/rabbitears ) + new CHOICE(src.loc) + new /obj/item/clothing/glasses/sunglasses/blindfold(src.loc) + qdel(src) + +/obj/effect/landmark/costume/butler/New() + new /obj/item/clothing/tie/waistcoat(src.loc) + new /obj/item/clothing/under/suit_jacket(src.loc) + new /obj/item/clothing/head/that(src.loc) + qdel(src) + +/obj/effect/landmark/costume/highlander/New() + new /obj/item/clothing/under/kilt(src.loc) + new /obj/item/clothing/head/beret(src.loc) + qdel(src) + +/obj/effect/landmark/costume/prig/New() + new /obj/item/clothing/tie/waistcoat(src.loc) + new /obj/item/clothing/glasses/monocle(src.loc) + var/CHOICE= pick( /obj/item/clothing/head/bowler, /obj/item/clothing/head/that) + new CHOICE(src.loc) + new /obj/item/clothing/shoes/sneakers/black(src.loc) + new /obj/item/weapon/cane(src.loc) + new /obj/item/clothing/under/sl_suit(src.loc) + new /obj/item/clothing/mask/fakemoustache(src.loc) + qdel(src) + +/obj/effect/landmark/costume/plaguedoctor/New() + new /obj/item/clothing/suit/bio_suit/plaguedoctorsuit(src.loc) + new /obj/item/clothing/head/plaguedoctorhat(src.loc) + new /obj/item/clothing/mask/gas/plaguedoctor(src.loc) + qdel(src) + +/obj/effect/landmark/costume/nightowl/New() + new /obj/item/clothing/suit/toggle/owlwings(src.loc) + new /obj/item/clothing/under/owl(src.loc) + new /obj/item/clothing/mask/gas/owl_mask(src.loc) + qdel(src) + +/obj/effect/landmark/costume/thegriffin/New() + new /obj/item/clothing/suit/toggle/owlwings/griffinwings(src.loc) + new /obj/item/clothing/shoes/griffin(src.loc) + new /obj/item/clothing/under/griffin(src.loc) + new /obj/item/clothing/head/griffin(src.loc) + qdel(src) + +/obj/effect/landmark/costume/waiter/New() + new /obj/item/clothing/under/waiter(src.loc) + var/CHOICE= pick( /obj/item/clothing/head/kitty, /obj/item/clothing/head/rabbitears) + new CHOICE(src.loc) + new /obj/item/clothing/suit/apron(src.loc) + qdel(src) + +/obj/effect/landmark/costume/pirate/New() + new /obj/item/clothing/under/pirate(src.loc) + new /obj/item/clothing/suit/pirate(src.loc) + var/CHOICE = pick( /obj/item/clothing/head/pirate , /obj/item/clothing/head/bandana ) + new CHOICE(src.loc) + new /obj/item/clothing/glasses/eyepatch(src.loc) + qdel(src) + +/obj/effect/landmark/costume/commie/New() + new /obj/item/clothing/under/soviet(src.loc) + new /obj/item/clothing/head/ushanka(src.loc) + qdel(src) + +/obj/effect/landmark/costume/imperium_monk/New() + new /obj/item/clothing/suit/imperium_monk(src.loc) + if (prob(25)) + new /obj/item/clothing/mask/gas/cyborg(src.loc) + qdel(src) + +/obj/effect/landmark/costume/holiday_priest/New() + new /obj/item/clothing/suit/holidaypriest(src.loc) + qdel(src) + +/obj/effect/landmark/costume/marisawizard/fake/New() + new /obj/item/clothing/shoes/sandal/marisa(src.loc) + new /obj/item/clothing/head/wizard/marisa/fake(src.loc) + new/obj/item/clothing/suit/wizrobe/marisa/fake(src.loc) + qdel(src) + +/obj/effect/landmark/costume/cutewitch/New() + new /obj/item/clothing/under/sundress(src.loc) + new /obj/item/clothing/head/witchwig(src.loc) + new /obj/item/weapon/staff/broom(src.loc) + qdel(src) + +/obj/effect/landmark/costume/fakewizard/New() + new /obj/item/clothing/shoes/sandal(src.loc) + new /obj/item/clothing/suit/wizrobe/fake(src.loc) + new /obj/item/clothing/head/wizard/fake(src.loc) + new /obj/item/weapon/staff/(src.loc) + qdel(src) + +/obj/effect/landmark/costume/sexyclown/New() + new /obj/item/clothing/mask/gas/sexyclown(src.loc) + new /obj/item/clothing/under/rank/clown/sexy(src.loc) + qdel(src) + +/obj/effect/landmark/costume/sexymime/New() + new /obj/item/clothing/mask/gas/sexymime(src.loc) + new /obj/item/clothing/under/sexymime(src.loc) + qdel(src) + +//Department Security spawns + +/obj/effect/landmark/start/depsec + name = "department_sec" + +/obj/effect/landmark/start/depsec/New() + ..() + department_security_spawns += src + +/obj/effect/landmark/start/depsec/Destroy() + department_security_spawns -= src + return ..() + +/obj/effect/landmark/start/depsec/supply + name = "supply_sec" + +/obj/effect/landmark/start/depsec/medical + name = "medical_sec" + +/obj/effect/landmark/start/depsec/engineering + name = "engineering_sec" + +/obj/effect/landmark/start/depsec/science + name = "science_sec" + +/obj/effect/landmark/latejoin + name = "JoinLate" + +//generic event spawns +/obj/effect/landmark/event_spawn + name = "generic event spawn" + icon_state = "x4" + +/obj/effect/landmark/event_spawn/New() + ..() + generic_event_spawns += src + +/obj/effect/landmark/event_spawn/Destroy() + generic_event_spawns -= src + return ..() + +/obj/effect/landmark/ruin + var/datum/map_template/ruin/ruin_template + +/obj/effect/landmark/ruin/New(loc, my_ruin_template) + name = "ruin_[ruin_landmarks.len + 1]" + ..(loc) + ruin_template = my_ruin_template + ruin_landmarks |= src + +/obj/effect/landmark/ruin/Destroy() + ruin_landmarks -= src + ruin_template = null + . = ..() diff --git a/code/game/objects/effects/manifest.dm b/code/game/objects/effects/manifest.dm new file mode 100644 index 0000000..7900e00 --- /dev/null +++ b/code/game/objects/effects/manifest.dm @@ -0,0 +1,17 @@ +/obj/effect/manifest + name = "manifest" + icon = 'icons/mob/screen_gen.dmi' + icon_state = "x" + +/obj/effect/manifest/New() + src.invisibility = INVISIBILITY_ABSTRACT + +/obj/effect/manifest/proc/manifest() + var/dat = "Crew Manifest:
            " + for(var/mob/living/carbon/human/M in mob_list) + dat += text(" [] - []
            ", M.name, M.get_assignment()) + var/obj/item/weapon/paper/P = new /obj/item/weapon/paper( src.loc ) + P.info = dat + P.name = "paper- 'Crew Manifest'" + //SN src = null + qdel(src) diff --git a/code/game/objects/effects/mines.dm b/code/game/objects/effects/mines.dm new file mode 100644 index 0000000..1b2dd93 --- /dev/null +++ b/code/game/objects/effects/mines.dm @@ -0,0 +1,172 @@ +/obj/effect/mine + name = "dummy mine" + desc = "Better stay away from that thing." + density = 0 + anchored = 1 + icon = 'icons/obj/weapons.dmi' + icon_state = "uglymine" + var/triggered = 0 + +/obj/effect/mine/proc/mineEffect(mob/victim) + victim << "*click*" + +/obj/effect/mine/Crossed(AM as mob|obj) + if(isanimal(AM)) + var/mob/living/simple_animal/SA = AM + if(!SA.flying) + triggermine(SA) + else + triggermine(AM) + +/obj/effect/mine/proc/triggermine(mob/victim) + if(triggered) + return + visible_message("[victim] sets off \icon[src] [src]!") + var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread + s.set_up(3, 1, src) + s.start() + mineEffect(victim) + triggered = 1 + qdel(src) + + +/obj/effect/mine/explosive + name = "explosive mine" + var/range_devastation = 0 + var/range_heavy = 1 + var/range_light = 2 + var/range_flash = 3 + +/obj/effect/mine/explosive/mineEffect(mob/victim) + explosion(loc, range_devastation, range_heavy, range_light, range_flash) + + +/obj/effect/mine/stun + name = "stun mine" + var/stun_time = 8 + +/obj/effect/mine/stun/mineEffect(mob/victim) + if(isliving(victim)) + victim.Weaken(stun_time) + +/obj/effect/mine/kickmine + name = "kick mine" + +/obj/effect/mine/kickmine/mineEffect(mob/victim) + if(isliving(victim) && victim.client) + victim << "You have been kicked FOR NO REISIN!" + qdel(victim.client) + + +/obj/effect/mine/gas + name = "oxygen mine" + var/gas_amount = 360 + var/gas_type = "o2" + +/obj/effect/mine/gas/mineEffect(mob/victim) + atmos_spawn_air("[gas_type]=[gas_amount]") + + +/obj/effect/mine/gas/plasma + name = "plasma mine" + gas_type = "plasma" + + +/obj/effect/mine/gas/n2o + name = "\improper N2O mine" + gas_type = "n2o" + + +/obj/effect/mine/sound + name = "honkblaster 1000" + var/sound = 'sound/items/bikehorn.ogg' + +/obj/effect/mine/sound/mineEffect(mob/victim) + playsound(loc, sound, 100, 1) + + +/obj/effect/mine/sound/bwoink + name = "bwoink mine" + sound = 'sound/effects/adminhelp.ogg' + +/obj/effect/mine/pickup + name = "pickup" + desc = "pick me up" + icon = 'icons/effects/effects.dmi' + icon_state = "electricity2" + density = 0 + var/duration = 0 + +/obj/effect/mine/pickup/New() + ..() + animate(src, pixel_y = 4, time = 20, loop = -1) + +/obj/effect/mine/pickup/triggermine(mob/victim) + if(triggered) + return + triggered = 1 + invisibility = INVISIBILITY_ABSTRACT + mineEffect(victim) + qdel(src) + + +/obj/effect/mine/pickup/bloodbath + name = "Red Orb" + desc = "You feel angry just looking at it." + duration = 1200 //2min + color = "#FF0000" + +/obj/effect/mine/pickup/bloodbath/mineEffect(mob/living/carbon/victim) + if(!victim.client || !istype(victim)) + return + victim << "RIP AND TEAR" + victim << 'sound/misc/e1m1.ogg' + var/old_color = victim.client.color + var/red_splash = list(1,0,0,0.8,0.2,0, 0.8,0,0.2,0.1,0,0) + var/pure_red = list(0,0,0,0,0,0,0,0,0,1,0,0) + + spawn(0) + new /obj/effect/hallucination/delusion(victim.loc,victim,force_kind="demon",duration=duration,skip_nearby=0) + + var/obj/item/weapon/twohanded/required/chainsaw/doomslayer/chainsaw = new(victim.loc) + chainsaw.flags |= NODROP + victim.drop_all_held_items() + victim.put_in_hands(chainsaw) + chainsaw.attack_self(victim) + chainsaw.wield(victim) + victim.reagents.add_reagent("adminordrazine",25) + + victim.client.color = pure_red + animate(victim.client,color = red_splash, time = 10, easing = SINE_EASING|EASE_OUT) + sleep(10) + animate(victim.client,color = old_color, time = duration)//, easing = SINE_EASING|EASE_OUT) + sleep(duration) + victim << "Your bloodlust seeps back into the bog of your subconscious and you regain self control." + qdel(chainsaw) + qdel(src) + +/obj/effect/mine/pickup/healing + name = "Blue Orb" + desc = "You feel better just looking at it." + color = "#0000FF" + +/obj/effect/mine/pickup/healing/mineEffect(mob/living/carbon/victim) + if(!victim.client || !istype(victim)) + return + victim << "You feel great!" + victim.revive(full_heal = 1, admin_revive = 1) + +/obj/effect/mine/pickup/speed + name = "Yellow Orb" + desc = "You feel faster just looking at it." + color = "#FFFF00" + duration = 300 + +/obj/effect/mine/pickup/speed/mineEffect(mob/living/carbon/victim) + if(!victim.client || !istype(victim)) + return + victim << "You feel fast!" + victim.status_flags |= GOTTAGOREALLYFAST + sleep(duration) + victim.status_flags &= ~GOTTAGOREALLYFAST + victim << "You slow down." diff --git a/code/game/objects/effects/misc.dm b/code/game/objects/effects/misc.dm new file mode 100644 index 0000000..d14c7ab --- /dev/null +++ b/code/game/objects/effects/misc.dm @@ -0,0 +1,25 @@ +//The effect when you wrap a dead body in gift wrap +/obj/effect/spresent + name = "strange present" + desc = "It's a ... present?" + icon = 'icons/obj/items.dmi' + icon_state = "strangepresent" + density = 1 + anchored = 0 + +/obj/effect/beam + name = "beam" + var/def_zone + pass_flags = PASSTABLE + +/obj/effect/spawner + name = "object spawner" + +/obj/effect/list_container + name = "list container" + +/obj/effect/list_container/mobl + name = "mobl" + var/master = null + + var/list/container = list( ) \ No newline at end of file diff --git a/code/game/objects/effects/overlays.dm b/code/game/objects/effects/overlays.dm new file mode 100644 index 0000000..194a2b8 --- /dev/null +++ b/code/game/objects/effects/overlays.dm @@ -0,0 +1,504 @@ +/obj/effect/overlay + name = "overlay" + var/i_attached//Added for possible image attachments to objects. For hallucinations and the like. + +/obj/effect/overlay/singularity_act() + return + +/obj/effect/overlay/singularity_pull() + return + +/obj/effect/overlay/beam//Not actually a projectile, just an effect. + name="beam" + icon='icons/effects/beam.dmi' + icon_state="b_beam" + var/atom/BeamSource + +/obj/effect/overlay/beam/New() + ..() + QDEL_IN(src, 10) + +/obj/effect/overlay/temp + icon_state = "nothing" + anchored = 1 + layer = ABOVE_MOB_LAYER + mouse_opacity = 0 + var/duration = 10 //in deciseconds + var/randomdir = TRUE + var/timerid + +/obj/effect/overlay/temp/Destroy() + ..() + deltimer(timerid) + return QDEL_HINT_PUTINPOOL + +/obj/effect/overlay/temp/New() + ..() + if(randomdir) + setDir(pick(cardinal)) + flick("[icon_state]", src) //Because we might be pulling it from a pool, flick whatever icon it uses so it starts at the start of the icon's animation. + + timerid = QDEL_IN(src, duration) + +/obj/effect/overlay/temp/dir_setting + randomdir = FALSE + +/obj/effect/overlay/temp/dir_setting/New(loc, set_dir) + if(set_dir) + setDir(set_dir) + ..() + +/obj/effect/overlay/temp/dir_setting/bloodsplatter + icon = 'icons/effects/blood.dmi' + duration = 5 + randomdir = FALSE + layer = BELOW_MOB_LAYER + var/splatter_type = "splatter" + +/obj/effect/overlay/temp/dir_setting/bloodsplatter/New(loc, set_dir) + if(set_dir in diagonals) + icon_state = "[splatter_type][pick(1, 2, 6)]" + else + icon_state = "[splatter_type][pick(3, 4, 5)]" + ..() + var/target_pixel_x = 0 + var/target_pixel_y = 0 + switch(set_dir) + if(NORTH) + target_pixel_y = 16 + if(SOUTH) + target_pixel_y = -16 + layer = ABOVE_MOB_LAYER + if(EAST) + target_pixel_x = 16 + if(WEST) + target_pixel_x = -16 + if(NORTHEAST) + target_pixel_x = 16 + target_pixel_y = 16 + if(NORTHWEST) + target_pixel_x = -16 + target_pixel_y = 16 + if(SOUTHEAST) + target_pixel_x = 16 + target_pixel_y = -16 + layer = ABOVE_MOB_LAYER + if(SOUTHWEST) + target_pixel_x = -16 + target_pixel_y = -16 + layer = ABOVE_MOB_LAYER + animate(src, pixel_x = target_pixel_x, pixel_y = target_pixel_y, alpha = 0, time = duration) + +/obj/effect/overlay/temp/dir_setting/bloodsplatter/xenosplatter + splatter_type = "xsplatter" + +/obj/effect/overlay/temp/dir_setting/firing_effect + icon = 'icons/effects/effects.dmi' + icon_state = "firing_effect" + duration = 2 + +/obj/effect/overlay/temp/dir_setting/firing_effect/setDir(newdir) + switch(newdir) + if(NORTH) + layer = BELOW_MOB_LAYER + pixel_x = rand(-3,3) + pixel_y = rand(4,6) + if(SOUTH) + pixel_x = rand(-3,3) + pixel_y = rand(-1,1) + else + pixel_x = rand(-1,1) + pixel_y = rand(-1,1) + ..() + +/obj/effect/overlay/temp/dir_setting/firing_effect/energy + icon_state = "firing_effect_energy" + duration = 3 + +/obj/effect/overlay/temp/dir_setting/firing_effect/magic + icon_state = "shieldsparkles" + duration = 3 + +/obj/effect/overlay/temp/dir_setting/ninja + name = "ninja shadow" + icon = 'icons/mob/mob.dmi' + icon_state = "uncloak" + duration = 9 + +/obj/effect/overlay/temp/dir_setting/ninja/cloak + icon_state = "cloak" + +/obj/effect/overlay/temp/dir_setting/ninja/shadow + icon_state = "shadow" + +/obj/effect/overlay/temp/dir_setting/ninja/phase + name = "ninja energy" + icon_state = "phasein" + +/obj/effect/overlay/temp/dir_setting/ninja/phase/out + icon_state = "phaseout" + +/obj/effect/overlay/temp/dir_setting/wraith + name = "blood" + icon = 'icons/mob/mob.dmi' + icon_state = "phase_shift2" + duration = 12 + +/obj/effect/overlay/temp/dir_setting/wraith/out + icon_state = "phase_shift" + +/obj/effect/overlay/temp/wizard + name = "water" + icon = 'icons/mob/mob.dmi' + icon_state = "reappear" + duration = 5 + +/obj/effect/overlay/temp/wizard/out + icon_state = "liquify" + duration = 12 + +/obj/effect/overlay/temp/monkeyify + icon = 'icons/mob/mob.dmi' + icon_state = "h2monkey" + duration = 22 + +/obj/effect/overlay/temp/monkeyify/humanify + icon_state = "monkey2h" + +/obj/effect/overlay/temp/borgflash + icon = 'icons/mob/mob.dmi' + icon_state = "blspell" + duration = 5 + +/obj/effect/overlay/temp/guardian + randomdir = 0 + +/obj/effect/overlay/temp/guardian/phase + duration = 5 + icon_state = "phasein" + +/obj/effect/overlay/temp/guardian/phase/out + icon_state = "phaseout" + +/obj/effect/overlay/temp/decoy + desc = "It's a decoy!" + duration = 15 + +/obj/effect/overlay/temp/decoy/New(loc, atom/mimiced_atom) + ..() + alpha = initial(alpha) + if(mimiced_atom) + name = mimiced_atom.name + appearance = mimiced_atom.appearance + setDir(mimiced_atom.dir) + mouse_opacity = 0 + +/obj/effect/overlay/temp/decoy/fading/New(loc, atom/mimiced_atom) + ..() + animate(src, alpha = 0, time = duration) + +/obj/effect/overlay/temp/cult + randomdir = 0 + duration = 10 + +/obj/effect/overlay/temp/cult/sparks + randomdir = 1 + name = "blood sparks" + icon_state = "bloodsparkles" + +/obj/effect/overlay/temp/dir_setting/cult/phase + name = "phase glow" + duration = 7 + icon_state = "cultin" + +/obj/effect/overlay/temp/dir_setting/cult/phase/out + icon_state = "cultout" + +/obj/effect/overlay/temp/cult/sac + name = "maw of Nar-Sie" + icon_state = "sacconsume" + +/obj/effect/overlay/temp/cult/door + name = "unholy glow" + icon_state = "doorglow" + layer = CLOSED_FIREDOOR_LAYER //above closed doors + +/obj/effect/overlay/temp/cult/door/unruned + icon_state = "unruneddoorglow" + +/obj/effect/overlay/temp/cult/turf + name = "unholy glow" + icon_state = "wallglow" + layer = ABOVE_NORMAL_TURF_LAYER + +/obj/effect/overlay/temp/cult/turf/floor + icon_state = "floorglow" + duration = 5 + + +/obj/effect/overlay/temp/ratvar + name = "ratvar's light" + duration = 8 + randomdir = 0 + layer = ABOVE_NORMAL_TURF_LAYER + +/obj/effect/overlay/temp/ratvar/door + icon_state = "ratvardoorglow" + layer = CLOSED_FIREDOOR_LAYER //above closed doors + +/obj/effect/overlay/temp/ratvar/door/window + icon_state = "ratvarwindoorglow" + +/obj/effect/overlay/temp/ratvar/beam + icon_state = "ratvarbeamglow" + +/obj/effect/overlay/temp/ratvar/beam/door + layer = CLOSED_FIREDOOR_LAYER //above closed doors + +/obj/effect/overlay/temp/ratvar/beam/grille + layer = LOW_ITEM_LAYER //above grilles + +/obj/effect/overlay/temp/ratvar/beam/itemconsume + layer = HIGH_OBJ_LAYER + +/obj/effect/overlay/temp/ratvar/wall + icon_state = "ratvarwallglow" + +/obj/effect/overlay/temp/ratvar/floor + icon_state = "ratvarfloorglow" + +/obj/effect/overlay/temp/ratvar/window + icon_state = "ratvarwindowglow" + layer = ABOVE_WINDOW_LAYER //above windows + +/obj/effect/overlay/temp/ratvar/grille + icon_state = "ratvargrilleglow" + layer = LOW_ITEM_LAYER //above grilles + +/obj/effect/overlay/temp/ratvar/grille/broken + icon_state = "ratvarbrokengrilleglow" + +/obj/effect/overlay/temp/ratvar/window/single + icon_state = "ratvarwindowglow_s" + +/obj/effect/overlay/temp/ratvar/spearbreak + icon = 'icons/effects/64x64.dmi' + icon_state = "ratvarspearbreak" + layer = BELOW_MOB_LAYER + pixel_y = -16 + pixel_x = -16 + +/obj/effect/overlay/temp/ratvar/component + icon = 'icons/obj/clockwork_objects.dmi' + icon_state = "belligerent_eye" + layer = ABOVE_MOB_LAYER + duration = 10 + +/obj/effect/overlay/temp/ratvar/component/New() + ..() + transform = matrix()*0.75 + pixel_x = rand(-10, 10) + pixel_y = rand(-10, -2) + animate(src, pixel_y = pixel_y + 10, alpha = 50, time = 10, easing = EASE_OUT) + +/obj/effect/overlay/temp/ratvar/component/cogwheel + icon_state = "vanguard_cogwheel" + +/obj/effect/overlay/temp/ratvar/component/capacitor + icon_state = "guvax_capacitor" + +/obj/effect/overlay/temp/ratvar/component/alloy + icon_state = "replicant_alloy" + +/obj/effect/overlay/temp/ratvar/component/ansible + icon_state = "hierophant_ansible" + +/obj/effect/overlay/temp/ratvar/sigil + name = "glowing circle" + icon = 'icons/effects/clockwork_effects.dmi' + icon_state = "sigildull" + +/obj/effect/overlay/temp/ratvar/sigil/transgression + color = "#FAE48C" + layer = ABOVE_MOB_LAYER + duration = 70 + luminosity = 6 + +/obj/effect/overlay/temp/ratvar/sigil/transgression/New() + ..() + var/oldtransform = transform + animate(src, transform = matrix()*2, time = 5) + animate(transform = oldtransform, alpha = 0, time = 65) + +/obj/effect/overlay/temp/ratvar/sigil/vitality + color = "#1E8CE1" + icon_state = "sigilactivepulse" + layer = ABOVE_MOB_LAYER + +/obj/effect/overlay/temp/ratvar/sigil/accession + color = "#AF0AAF" + layer = ABOVE_MOB_LAYER + duration = 70 + icon_state = "sigilactiveoverlay" + alpha = 0 + + +/obj/effect/overlay/temp/revenant + name = "spooky lights" + icon_state = "purplesparkles" + +/obj/effect/overlay/temp/revenant/cracks + name = "glowing cracks" + icon_state = "purplecrack" + duration = 6 + + +/obj/effect/overlay/temp/emp + name = "emp sparks" + icon_state = "empdisable" + +/obj/effect/overlay/temp/emp/pulse + name = "emp pulse" + icon_state = "emppulse" + duration = 8 + randomdir = 0 + +/obj/effect/overlay/temp/gib_animation + icon = 'icons/mob/mob.dmi' + duration = 15 + +/obj/effect/overlay/temp/gib_animation/New(loc, gib_icon) + icon_state = gib_icon // Needs to be before ..() so icon is correct + ..() + +/obj/effect/overlay/temp/gib_animation/ex_act(severity) + return //so the overlay isn't deleted by the explosion that gibbed the mob. + +/obj/effect/overlay/temp/gib_animation/animal + icon = 'icons/mob/animal.dmi' + +/obj/effect/overlay/temp/dust_animation + icon = 'icons/mob/mob.dmi' + duration = 15 + +/obj/effect/overlay/temp/dust_animation/New(loc, dust_icon) + icon_state = dust_icon // Before ..() so the correct icon is flick()'d + ..() + +/obj/effect/overlay/temp/sparkle + icon = 'icons/effects/effects.dmi' + icon_state = "shieldsparkles" + mouse_opacity = 0 + density = 0 + duration = 10 + var/atom/movable/attached_to + +/obj/effect/overlay/temp/sparkle/New(atom/movable/AM) + ..() + if(istype(AM)) + attached_to = AM + attached_to.overlays += src + +/obj/effect/overlay/temp/sparkle/Destroy() + if(attached_to) + attached_to.overlays -= src + attached_to = null + . = ..() + +/obj/effect/overlay/temp/sparkle/tailsweep + icon_state = "tailsweep" + + +/obj/effect/overlay/temp/heal //color is white by default, set to whatever is needed + name = "healing glow" + icon_state = "heal" + duration = 15 + +/obj/effect/overlay/temp/heal/New(loc, colour) + ..() + pixel_x = rand(-12, 12) + pixel_y = rand(-9, 0) + if(colour) + color = colour + +/obj/effect/overlay/temp/kinetic_blast + name = "kinetic explosion" + icon = 'icons/obj/projectiles.dmi' + icon_state = "kinetic_blast" + layer = ABOVE_ALL_MOB_LAYER + duration = 4 + +/obj/effect/overlay/temp/explosion + name = "explosion" + icon = 'icons/effects/96x96.dmi' + icon_state = "explosion" + pixel_x = -32 + pixel_y = -32 + duration = 8 + +/obj/effect/overlay/temp/explosion/fast + icon_state = "explosionfast" + duration = 4 + +/obj/effect/overlay/temp/blob + name = "blob" + icon_state = "blob_attack" + alpha = 140 + randomdir = 0 + duration = 6 + +/obj/effect/overlay/temp/impact_effect + icon = 'icons/effects/effects.dmi' + icon_state = "impact_bullet" + duration = 5 + +/obj/effect/overlay/temp/impact_effect/New(loc, atom/target, obj/item/projectile/P) + if(target == P.original) //the projectile hit the target originally clicked + pixel_x = P.p_x + target.pixel_x - 16 + rand(-4,4) + pixel_y = P.p_y + target.pixel_y - 16 + rand(-4,4) + else + pixel_x = target.pixel_x + rand(-4,4) + pixel_y = target.pixel_y + rand(-4,4) + ..() + +/obj/effect/overlay/temp/impact_effect/red_laser + icon_state = "impact_laser" + duration = 4 + +/obj/effect/overlay/temp/impact_effect/blue_laser + icon_state = "impact_laser_blue" + duration = 4 + +/obj/effect/overlay/temp/impact_effect/green_laser + icon_state = "impact_laser_green" + duration = 4 + +/obj/effect/overlay/temp/impact_effect/purple_laser + icon_state = "impact_laser_purple" + duration = 4 + +/obj/effect/overlay/temp/impact_effect/ion + icon_state = "shieldsparkles" + duration = 6 + + +/obj/effect/overlay/palmtree_r + name = "Palm tree" + icon = 'icons/misc/beach2.dmi' + icon_state = "palm1" + density = 1 + layer = WALL_OBJ_LAYER + anchored = 1 + +/obj/effect/overlay/palmtree_l + name = "Palm tree" + icon = 'icons/misc/beach2.dmi' + icon_state = "palm2" + density = 1 + layer = WALL_OBJ_LAYER + anchored = 1 + +/obj/effect/overlay/coconut + name = "Coconuts" + icon = 'icons/misc/beach.dmi' + icon_state = "coconuts" diff --git a/code/game/objects/effects/portals.dm b/code/game/objects/effects/portals.dm new file mode 100644 index 0000000..656025d --- /dev/null +++ b/code/game/objects/effects/portals.dm @@ -0,0 +1,64 @@ + +/obj/effect/portal + name = "portal" + desc = "Looks unstable. Best to test it with the clown." + icon = 'icons/obj/stationobjs.dmi' + icon_state = "portal" + density = 1 + var/obj/item/target = null + var/creator = null + anchored = 1 + var/precision = 1 // how close to the portal you will teleport. 0 = on the portal, 1 = adjacent + +/obj/effect/portal/Bumped(mob/M as mob|obj) + teleport(M) + +/obj/effect/portal/attack_hand(mob/user) + if(Adjacent(user)) + teleport(user) + +/obj/effect/portal/attackby(obj/item/weapon/W, mob/user, params) + if(user && Adjacent(user)) + teleport(user) + + + +/obj/effect/portal/New(loc, turf/target, creator=null, lifespan=300) + ..() + portals += src + src.target = target + src.creator = creator + + var/area/A = get_area(target) + if(A && A.noteleport) // No point in persisting if the target is unreachable. + qdel(src) + return + if(lifespan > 0) + spawn(lifespan) + qdel(src) + +/obj/effect/portal/Destroy() + portals -= src + if(istype(creator, /obj/item/weapon/hand_tele)) + var/obj/item/weapon/hand_tele/O = creator + O.active_portals-- + else if(istype(creator, /obj/item/weapon/gun/energy/wormhole_projector)) + var/obj/item/weapon/gun/energy/wormhole_projector/P = creator + P.portal_destroyed(src) + creator = null + return ..() + +/obj/effect/portal/proc/teleport(atom/movable/M as mob|obj) + if(istype(M, /obj/effect)) //sparks don't teleport + return + if(M.anchored&&istype(M, /obj/mecha)) + return + if (!( target )) + qdel(src) + return + if (istype(M, /atom/movable)) + if(ismegafauna(M)) + message_admins("[M] (FLW) has teleported through [src].") + do_teleport(M, target, precision) ///You will appear adjacent to the beacon + + diff --git a/code/game/objects/effects/spawners/bombspawner.dm b/code/game/objects/effects/spawners/bombspawner.dm new file mode 100644 index 0000000..6c58654 --- /dev/null +++ b/code/game/objects/effects/spawners/bombspawner.dm @@ -0,0 +1,97 @@ +/obj/effect/spawner/newbomb + name = "bomb" + icon = 'icons/mob/screen_gen.dmi' + icon_state = "x" + var/btype = 0 // 0=radio, 1=prox, 2=time + var/btemp1 = 1500 + var/btemp2 = 1000 // tank temperatures + +/obj/effect/spawner/newbomb/timer + btype = 2 + + syndicate + btemp1 = 150 + btemp2 = 20 + +/obj/effect/spawner/newbomb/proximity + btype = 1 + +/obj/effect/spawner/newbomb/radio + btype = 0 + + +/obj/effect/spawner/newbomb/New() + ..() + + switch (src.btype) + // radio + if (0) + + var/obj/item/device/transfer_valve/V = new(src.loc) + var/obj/item/weapon/tank/internals/plasma/PT = new(V) + var/obj/item/weapon/tank/internals/oxygen/OT = new(V) + + var/obj/item/device/assembly/signaler/S = new(V) + + V.tank_one = PT + V.tank_two = OT + V.attached_device = S + + S.holder = V + S.toggle_secure() + PT.master = V + OT.master = V + + PT.air_contents.temperature = btemp1 + T0C + OT.air_contents.temperature = btemp2 + T0C + + V.update_icon() + + // proximity + if (1) + + var/obj/item/device/transfer_valve/V = new(src.loc) + var/obj/item/weapon/tank/internals/plasma/PT = new(V) + var/obj/item/weapon/tank/internals/oxygen/OT = new(V) + + var/obj/item/device/assembly/prox_sensor/P = new(V) + + V.tank_one = PT + V.tank_two = OT + V.attached_device = P + + P.holder = V + P.toggle_secure() + PT.master = V + OT.master = V + + + PT.air_contents.temperature = btemp1 + T0C + OT.air_contents.temperature = btemp2 + T0C + + V.update_icon() + + + // timer + if (2) + var/obj/item/device/transfer_valve/V = new(src.loc) + var/obj/item/weapon/tank/internals/plasma/PT = new(V) + var/obj/item/weapon/tank/internals/oxygen/OT = new(V) + + var/obj/item/device/assembly/timer/T = new(V) + + V.tank_one = PT + V.tank_two = OT + V.attached_device = T + + T.holder = V + T.toggle_secure() + PT.master = V + OT.master = V + T.time = 30 + + PT.air_contents.temperature = btemp1 + T0C + OT.air_contents.temperature = btemp2 + T0C + + V.update_icon() + qdel(src) \ No newline at end of file diff --git a/code/game/objects/effects/spawners/gibspawner.dm b/code/game/objects/effects/spawners/gibspawner.dm new file mode 100644 index 0000000..07efdc1 --- /dev/null +++ b/code/game/objects/effects/spawners/gibspawner.dm @@ -0,0 +1,127 @@ + +/obj/effect/gibspawner + var/sparks = 0 //whether sparks spread + var/virusProb = 20 //the chance for viruses to spread on the gibs + var/list/gibtypes = list() //typepaths of the gib decals to spawn + var/list/gibamounts = list() //amount to spawn for each gib decal type we'll spawn. + var/list/gibdirections = list() //of lists of possible directions to spread each gib decal type towards. + +/obj/effect/gibspawner/New(location, list/viruses, datum/dna/MobDNA) + ..() + + if(gibtypes.len != gibamounts.len || gibamounts.len != gibdirections.len) + world << "Gib list length mismatch!" + return + + var/obj/effect/decal/cleanable/blood/gibs/gib = null + + if(sparks) + var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread + s.set_up(2, 1, location) + s.start() + + for(var/i = 1, i<= gibtypes.len, i++) + if(gibamounts[i]) + for(var/j = 1, j<= gibamounts[i], j++) + var/gibType = gibtypes[i] + gib = new gibType(location) + if(istype(location,/mob/living/carbon)) + var/mob/living/carbon/digester = location + digester.stomach_contents += gib + + if(viruses && viruses.len > 0) + for(var/datum/disease/D in viruses) + if(prob(virusProb)) + var/datum/disease/viruus = D.Copy(1) + gib.viruses += viruus + viruus.holder = gib + + if(MobDNA) + gib.blood_DNA[MobDNA.unique_enzymes] = MobDNA.blood_type + else if(istype(src, /obj/effect/gibspawner/generic)) // Probably a monkey + gib.blood_DNA["Non-human DNA"] = "A+" + var/list/directions = gibdirections[i] + if(isturf(loc)) + if(directions.len) + gib.streak(directions) + + qdel(src) + + + +/obj/effect/gibspawner/generic + gibtypes = list(/obj/effect/decal/cleanable/blood/gibs,/obj/effect/decal/cleanable/blood/gibs,/obj/effect/decal/cleanable/blood/gibs/core) + gibamounts = list(2,2,1) + +/obj/effect/gibspawner/generic/New() + playsound(src, 'sound/effects/blobattack.ogg', 40, 1) + gibdirections = list(list(WEST, NORTHWEST, SOUTHWEST, NORTH),list(EAST, NORTHEAST, SOUTHEAST, SOUTH), list()) + ..() + +/obj/effect/gibspawner/human + gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/up,/obj/effect/decal/cleanable/blood/gibs/down,/obj/effect/decal/cleanable/blood/gibs,/obj/effect/decal/cleanable/blood/gibs,/obj/effect/decal/cleanable/blood/gibs/body,/obj/effect/decal/cleanable/blood/gibs/limb,/obj/effect/decal/cleanable/blood/gibs/core) + gibamounts = list(1,1,1,1,1,1,1) + +/obj/effect/gibspawner/human/New() + playsound(src, 'sound/effects/blobattack.ogg', 50, 1) + gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), alldirs, alldirs, list()) + ..() + + +/obj/effect/gibspawner/humanbodypartless //only the gibs that don't look like actual full bodyparts (except torso). + gibtypes = list(/obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs/core,/obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs/core, /obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs/torso) + gibamounts = list(1, 1, 1, 1, 1, 1) + +/obj/effect/gibspawner/humanbodypartless/New() + playsound(src, 'sound/effects/blobattack.ogg', 50, 1) + gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), alldirs, list()) + ..() + + +/obj/effect/gibspawner/xeno + gibtypes = list(/obj/effect/decal/cleanable/xenoblood/xgibs/up,/obj/effect/decal/cleanable/xenoblood/xgibs/down,/obj/effect/decal/cleanable/xenoblood/xgibs, /obj/effect/decal/cleanable/xenoblood/xgibs, /obj/effect/decal/cleanable/xenoblood/xgibs/body, /obj/effect/decal/cleanable/xenoblood/xgibs/limb, /obj/effect/decal/cleanable/xenoblood/xgibs/core) + gibamounts = list(1,1,1,1,1,1,1) + +/obj/effect/gibspawner/xeno/New() + playsound(src, 'sound/effects/blobattack.ogg', 60, 1) + gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), alldirs, alldirs, list()) + ..() + + +/obj/effect/gibspawner/xenobodypartless //only the gibs that don't look like actual full bodyparts (except torso). + gibtypes = list(/obj/effect/decal/cleanable/xenoblood/xgibs, /obj/effect/decal/cleanable/xenoblood/xgibs/core,/obj/effect/decal/cleanable/xenoblood/xgibs, /obj/effect/decal/cleanable/xenoblood/xgibs/core, /obj/effect/decal/cleanable/xenoblood/xgibs, /obj/effect/decal/cleanable/xenoblood/xgibs/torso) + gibamounts = list(1, 1, 1, 1, 1, 1) + + +/obj/effect/gibspawner/xenobodypartless/New() + playsound(src, 'sound/effects/blobattack.ogg', 60, 1) + gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), alldirs, list()) + ..() + +/obj/effect/gibspawner/larva + gibtypes = list(/obj/effect/decal/cleanable/xenoblood/xgibs/larva, /obj/effect/decal/cleanable/xenoblood/xgibs/larva, /obj/effect/decal/cleanable/xenoblood/xgibs/larva/body, /obj/effect/decal/cleanable/xenoblood/xgibs/larva/body) + gibamounts = list(1, 1, 1, 1) + +/obj/effect/gibspawner/larva/New() + playsound(src, 'sound/effects/blobattack.ogg', 60, 1) + gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST), list(), alldirs) + ..() + +/obj/effect/gibspawner/larvabodypartless + gibtypes = list(/obj/effect/decal/cleanable/xenoblood/xgibs/larva, /obj/effect/decal/cleanable/xenoblood/xgibs/larva, /obj/effect/decal/cleanable/xenoblood/xgibs/larva) + gibamounts = list(1, 1, 1) + +/obj/effect/gibspawner/larvabodypartless/New() + playsound(src, 'sound/effects/blobattack.ogg', 60, 1) + gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST), list()) + ..() + +/obj/effect/gibspawner/robot + sparks = 1 + gibtypes = list(/obj/effect/decal/cleanable/robot_debris/up,/obj/effect/decal/cleanable/robot_debris/down,/obj/effect/decal/cleanable/robot_debris,/obj/effect/decal/cleanable/robot_debris,/obj/effect/decal/cleanable/robot_debris,/obj/effect/decal/cleanable/robot_debris/limb) + gibamounts = list(1,1,1,1,1,1) + +/obj/effect/gibspawner/robot/New() + gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), alldirs, alldirs) + gibamounts[6] = pick(0,1,2) + ..() \ No newline at end of file diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm new file mode 100644 index 0000000..74c3b32 --- /dev/null +++ b/code/game/objects/effects/spawners/lootdrop.dm @@ -0,0 +1,170 @@ +/obj/effect/spawner/lootdrop + icon = 'icons/mob/screen_gen.dmi' + icon_state = "x2" + color = "#00FF00" + var/lootcount = 1 //how many items will be spawned + var/lootdoubles = 1 //if the same item can be spawned twice + var/list/loot //a list of possible items to spawn e.g. list(/obj/item, /obj/structure, /obj/effect) + +/obj/effect/spawner/lootdrop/New() + if(loot && loot.len) + for(var/i = lootcount, i > 0, i--) + if(!loot.len) break + var/lootspawn = pickweight(loot) + if(!lootdoubles) + loot.Remove(lootspawn) + + if(lootspawn) + new lootspawn(get_turf(src)) + qdel(src) + +/obj/effect/spawner/lootdrop/armory_contraband + name = "armory contraband gun spawner" + lootdoubles = 0 + + loot = list( + /obj/item/weapon/gun/projectile/automatic/pistol = 8, + /obj/item/weapon/gun/projectile/shotgun/automatic/combat = 5, + /obj/item/weapon/gun/projectile/revolver/mateba, + /obj/item/weapon/gun/projectile/automatic/pistol/deagle + ) + +/obj/effect/spawner/lootdrop/gambling + name = "gambling valuables spawner" + loot = list( + /obj/item/weapon/gun/projectile/revolver/russian = 5, + /obj/item/weapon/storage/box/syndie_kit/throwing_weapons = 1, + /obj/item/toy/cards/deck/syndicate = 2 + ) + +/obj/effect/spawner/lootdrop/grille_or_trash + name = "maint grille or trash spawner" + loot = list(/obj/structure/grille = 5, + /obj/item/weapon/cigbutt = 1, + /obj/item/trash/cheesie = 1, + /obj/item/trash/candy = 1, + /obj/item/trash/chips = 1, + /obj/item/trash/deadmouse = 1, + /obj/item/trash/pistachios = 1, + /obj/item/trash/plate = 1, + /obj/item/trash/popcorn = 1, + /obj/item/trash/raisins = 1, + /obj/item/trash/sosjerky = 1, + /obj/item/trash/syndi_cakes = 1) + +/obj/effect/spawner/lootdrop/maintenance + name = "maintenance loot spawner" + + //How to balance this table + //------------------------- + //The total added weight of all the entries should be (roughly) equal to the total number of lootdrops + //(take in account those that spawn more than one object!) + // + //While this is random, probabilities tells us that item distribution will have a tendency to look like + //the content of the weighted table that created them. + //The less lootdrops, the less even the distribution. + // + //If you want to give items a weight <1 you can multiply all the weights by 10 + // + //the "" entry will spawn nothing, if you increase this value, + //ensure that you balance it with more spawn points + + //table data: + //----------- + //aft maintenance: 24 items, 18 spots 2 extra (28/08/2014) + //asmaint: 16 items, 11 spots 0 extra (08/08/2014) + //asmaint2: 36 items, 26 spots 2 extra (28/08/2014) + //fpmaint: 5 items, 4 spots 0 extra (08/08/2014) + //fpmaint2: 12 items, 11 spots 2 extra (28/08/2014) + //fsmaint: 0 items, 0 spots 0 extra (08/08/2014) + //fsmaint2: 40 items, 27 spots 5 extra (28/08/2014) + //maintcentral: 2 items, 2 spots 0 extra (08/08/2014) + //port: 5 items, 5 spots 0 extra (08/08/2014) + loot = list( + /obj/item/bodybag = 1, + /obj/item/clothing/glasses/meson = 2, + /obj/item/clothing/glasses/sunglasses = 1, + /obj/item/clothing/gloves/color/fyellow = 1, + /obj/item/clothing/head/hardhat = 1, + /obj/item/clothing/head/hardhat/red = 1, + /obj/item/clothing/head/that{throwforce = 1; throwing = 1} = 1, + /obj/item/clothing/head/ushanka = 1, + /obj/item/clothing/head/welding = 1, + /obj/item/clothing/mask/gas = 15, + /obj/item/clothing/suit/hazardvest = 1, + /obj/item/clothing/under/rank/vice = 1, + /obj/item/device/assembly/prox_sensor = 4, + /obj/item/device/assembly/timer = 3, + /obj/item/device/flashlight = 4, + /obj/item/device/flashlight/pen = 1, + /obj/item/device/multitool = 2, + /obj/item/device/radio/off = 2, + /obj/item/device/t_scanner = 5, + /obj/item/weapon/airlock_painter = 1, + /obj/item/stack/cable_coil = 4, + /obj/item/stack/cable_coil{amount = 5} = 6, + /obj/item/stack/medical/bruise_pack = 1, + /obj/item/stack/rods{amount = 10} = 9, + /obj/item/stack/rods{amount = 23} = 1, + /obj/item/stack/rods{amount = 50} = 1, + /obj/item/stack/sheet/cardboard = 2, + /obj/item/stack/sheet/metal{amount = 20} = 1, + /obj/item/stack/sheet/mineral/plasma = 1, + /obj/item/stack/sheet/rglass = 1, + /obj/item/weapon/book/manual/wiki/engineering_construction = 1, + /obj/item/weapon/book/manual/wiki/engineering_hacking = 1, + /obj/item/clothing/head/cone = 1, + /obj/item/weapon/coin/silver = 1, + /obj/item/weapon/coin/twoheaded = 1, + /obj/item/weapon/poster/contraband = 1, + /obj/item/weapon/poster/legit = 1, + /obj/item/weapon/crowbar = 1, + /obj/item/weapon/crowbar/red = 1, + /obj/item/weapon/extinguisher = 11, + //obj/item/weapon/gun/projectile/revolver/russian = 1, //disabled until lootdrop is a proper world proc. + /obj/item/weapon/hand_labeler = 1, + /obj/item/weapon/paper/crumpled = 1, + /obj/item/weapon/pen = 1, + /obj/item/weapon/reagent_containers/spray/pestspray = 1, + /obj/item/weapon/reagent_containers/glass/rag = 3, + /obj/item/weapon/stock_parts/cell = 3, + /obj/item/weapon/storage/belt/utility = 2, + /obj/item/weapon/storage/box = 2, + /obj/item/weapon/storage/box/cups = 1, + /obj/item/weapon/storage/box/donkpockets = 1, + /obj/item/weapon/storage/box/lights/mixed = 3, + /obj/item/weapon/storage/box/hug/medical = 1, + /obj/item/weapon/storage/fancy/cigarettes/dromedaryco = 1, + /obj/item/weapon/storage/toolbox/mechanical = 1, + /obj/item/weapon/screwdriver = 3, + /obj/item/weapon/tank/internals/emergency_oxygen = 2, + /obj/item/weapon/vending_refill/cola = 1, + /obj/item/weapon/weldingtool = 3, + /obj/item/weapon/wirecutters = 1, + /obj/item/weapon/wrench = 4, + /obj/item/weapon/relic = 3, + /obj/item/weaponcrafting/reciever = 2, + /obj/item/clothing/head/cone = 2, + /obj/item/weapon/grenade/smokebomb = 2, + /obj/item/device/geiger_counter = 3, + /obj/item/weapon/reagent_containers/food/snacks/grown/citrus/orange = 1, + /obj/item/device/radio/headset = 1, + /obj/item/device/assembly/infra = 1, + /obj/item/device/assembly/igniter = 2, + /obj/item/device/assembly/signaler = 2, + /obj/item/device/assembly/mousetrap = 2, + /obj/item/weapon/reagent_containers/syringe = 2, + /obj/item/clothing/gloves/color/random = 8, + /obj/item/clothing/shoes/laceup = 1, + /obj/item/weapon/storage/secure/briefcase = 3, + "" = 3 + ) + +/obj/effect/spawner/lootdrop/crate_spawner + name = "lootcrate spawner" + lootdoubles = 0 + + loot = list( + /obj/structure/closet/crate/secure/loot = 20, + "" = 80 + ) diff --git a/code/game/objects/effects/spawners/structure.dm b/code/game/objects/effects/spawners/structure.dm new file mode 100644 index 0000000..84d940d --- /dev/null +++ b/code/game/objects/effects/spawners/structure.dm @@ -0,0 +1,33 @@ +/* +Because mapping is already tedious enough this spawner let you spawn generic +"sets" of objects rather than having to make the same object stack again and +again. +*/ + +/obj/effect/spawner/structure + name = "map structure spawner" + var/list/spawn_list + +/obj/effect/spawner/structure/New() + if(spawn_list && spawn_list.len) + for(var/i = 1, i <= spawn_list.len, i++) + var/to_spawn = spawn_list[i] + new to_spawn(get_turf(src)) + qdel(src) + +/obj/effect/spawner/structure/window + icon = 'icons/obj/structures.dmi' + icon_state = "window_spawner" + name = "window spawner" + spawn_list = list( + /obj/structure/grille, + /obj/structure/window/fulltile + ) + +/obj/effect/spawner/structure/window/reinforced + name = "reinforced window spawner" + icon_state = "rwindow_spawner" + spawn_list = list( + /obj/structure/grille, + /obj/structure/window/reinforced/fulltile + ) diff --git a/code/game/objects/effects/spawners/vaultspawner.dm b/code/game/objects/effects/spawners/vaultspawner.dm new file mode 100644 index 0000000..0b39f3a --- /dev/null +++ b/code/game/objects/effects/spawners/vaultspawner.dm @@ -0,0 +1,28 @@ +/obj/effect/vaultspawner + var/maxX = 6 + var/maxY = 6 + var/minX = 2 + var/minY = 2 + +/obj/effect/vaultspawner/New(turf/location,lX = minX,uX = maxX,lY = minY,uY = maxY,type = null) + if(!type) + type = pick("sandstone","rock","alien") + + var/lowBoundX = location.x + var/lowBoundY = location.y + + var/hiBoundX = location.x + rand(lX,uX) + var/hiBoundY = location.y + rand(lY,uY) + + var/z = location.z + + for(var/i = lowBoundX,i<=hiBoundX,i++) + for(var/j = lowBoundY,j<=hiBoundY,j++) + var/turf/T = locate(i,j,z) + if(i == lowBoundX || i == hiBoundX || j == lowBoundY || j == hiBoundY) + T.ChangeTurf(/turf/closed/wall/vault) + else + T.ChangeTurf(/turf/open/floor/vault) + T.icon_state = "[type]vault" + + qdel(src) diff --git a/code/game/objects/effects/spiders.dm b/code/game/objects/effects/spiders.dm new file mode 100644 index 0000000..d1c1625 --- /dev/null +++ b/code/game/objects/effects/spiders.dm @@ -0,0 +1,212 @@ +//generic procs copied from obj/effect/alien +/obj/structure/spider + name = "web" + icon = 'icons/effects/effects.dmi' + desc = "it's stringy and sticky" + anchored = 1 + density = 0 + obj_integrity = 15 + + + +/obj/structure/spider/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) + if(damage_type == BURN)//the stickiness of the web mutes all attack sounds except fire damage type + playsound(loc, 'sound/items/Welder.ogg', 100, 1) + + +/obj/structure/spider/run_obj_armor(damage_amount, damage_type, damage_flag = 0, attack_dir) + if(damage_flag == "melee") + switch(damage_type) + if(BURN) + damage_amount *= 2 + if(BRUTE) + damage_amount *= 0.25 + . = ..() + +/obj/structure/spider/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) + if(exposed_temperature > 300) + take_damage(5, BURN, 0, 0) + +/obj/structure/spider/stickyweb + icon_state = "stickyweb1" + +/obj/structure/spider/stickyweb/New() + if(prob(50)) + icon_state = "stickyweb2" + +/obj/structure/spider/stickyweb/CanPass(atom/movable/mover, turf/target, height=0) + if(height==0) return 1 + if(istype(mover, /mob/living/simple_animal/hostile/poison/giant_spider)) + return 1 + else if(isliving(mover)) + if(prob(50)) + mover << "You get stuck in \the [src] for a moment." + return 0 + else if(istype(mover, /obj/item/projectile)) + return prob(30) + return 1 + +/obj/structure/spider/eggcluster + name = "egg cluster" + desc = "They seem to pulse slightly with an inner life" + icon_state = "eggs" + var/amount_grown = 0 + var/player_spiders = 0 + var/poison_type = "toxin" + var/poison_per_bite = 5 + var/list/faction = list("spiders") + +/obj/structure/spider/eggcluster/New() + pixel_x = rand(3,-3) + pixel_y = rand(3,-3) + START_PROCESSING(SSobj, src) + +/obj/structure/spider/eggcluster/process() + amount_grown += rand(0,2) + if(amount_grown >= 100) + var/num = rand(3,12) + for(var/i=0, i[src] scrambles into the ventillation ducts!", \ + "You hear something scampering through the ventilation ducts.") + + spawn(rand(20,60)) + loc = exit_vent + var/travel_time = round(get_dist(loc, exit_vent.loc) / 2) + spawn(travel_time) + + if(!exit_vent || exit_vent.welded) + loc = entry_vent + entry_vent = null + return + + if(prob(50)) + audible_message("You hear something scampering through the ventilation ducts.") + sleep(travel_time) + + if(!exit_vent || exit_vent.welded) + loc = entry_vent + entry_vent = null + return + loc = exit_vent.loc + entry_vent = null + var/area/new_area = get_area(loc) + if(new_area) + new_area.Entered(src) + //================= + + else if(prob(33)) + var/list/nearby = oview(10, src) + if(nearby.len) + var/target_atom = pick(nearby) + walk_to(src, target_atom) + if(prob(40)) + src.visible_message("\The [src] skitters[pick(" away"," around","")].") + else if(prob(10)) + //ventcrawl! + for(var/obj/machinery/atmospherics/components/unary/vent_pump/v in view(7,src)) + if(!v.welded) + entry_vent = v + walk_to(src, entry_vent, 1) + break + if(isturf(loc)) + amount_grown += rand(0,2) + if(amount_grown >= 100) + if(!grow_as) + grow_as = pick(typesof(/mob/living/simple_animal/hostile/poison/giant_spider)) + var/mob/living/simple_animal/hostile/poison/giant_spider/S = new grow_as(src.loc) + S.poison_per_bite = poison_per_bite + S.poison_type = poison_type + S.faction = faction.Copy() + if(player_spiders) + S.playable_spider = TRUE + notify_ghosts("Spider [S.name] can be controlled", null, enter_link="(Click to play)", source=S, action=NOTIFY_ATTACK) + qdel(src) + + + +/obj/structure/spider/cocoon + name = "cocoon" + desc = "Something wrapped in silky spider web" + icon_state = "cocoon1" + obj_integrity = 60 + +/obj/structure/spider/cocoon/New() + icon_state = pick("cocoon1","cocoon2","cocoon3") + +/obj/structure/spider/cocoon/container_resist() + var/mob/living/user = usr + var/breakout_time = 1 + user.changeNext_move(CLICK_CD_BREAKOUT) + user.last_special = world.time + CLICK_CD_BREAKOUT + user << "You struggle against the tight bonds... (This will take about [breakout_time] minutes.)" + visible_message("You see something struggling and writhing in \the [src]!") + if(do_after(user,(breakout_time*60*10), target = src)) + if(!user || user.stat != CONSCIOUS || user.loc != src) + return + qdel(src) + + + +/obj/structure/spider/cocoon/Destroy() + var/turf/T = get_turf(src) + src.visible_message("\The [src] splits open.") + for(var/atom/movable/A in contents) + A.forceMove(T) + return ..() diff --git a/code/game/objects/effects/step_triggers.dm b/code/game/objects/effects/step_triggers.dm new file mode 100644 index 0000000..9c27023 --- /dev/null +++ b/code/game/objects/effects/step_triggers.dm @@ -0,0 +1,193 @@ +/* Simple object type, calls a proc when "stepped" on by something */ + +/obj/effect/step_trigger + var/affect_ghosts = 0 + var/stopper = 1 // stops throwers + var/mobs_only = FALSE + invisibility = INVISIBILITY_ABSTRACT // nope cant see this shit + anchored = 1 + +/obj/effect/step_trigger/proc/Trigger(atom/movable/A) + return 0 + +/obj/effect/step_trigger/Crossed(H as mob|obj) + ..() + if(!H) + return + if(isobserver(H) && !affect_ghosts) + return + if(!istype(H, /mob) && mobs_only) + return + Trigger(H) + +/* Sends a message to mob when triggered*/ + +/obj/effect/step_trigger/message + var/message //the message to give to the mob + var/once = 1 + mobs_only = TRUE + +/obj/effect/step_trigger/message/Trigger(mob/M) + if(M.client) + M << "[message]" + if(once) + qdel(src) + +/* Tosses things in a certain direction */ + +/obj/effect/step_trigger/thrower + var/direction = SOUTH // the direction of throw + var/tiles = 3 // if 0: forever until atom hits a stopper + var/immobilize = 1 // if nonzero: prevents mobs from moving while they're being flung + var/speed = 1 // delay of movement + var/facedir = 0 // if 1: atom faces the direction of movement + var/nostop = 0 // if 1: will only be stopped by teleporters + var/list/affecting = list() + +/obj/effect/step_trigger/thrower/Trigger(atom/A) + if(!A || !istype(A, /atom/movable)) + return + var/atom/movable/AM = A + var/curtiles = 0 + var/stopthrow = 0 + for(var/obj/effect/step_trigger/thrower/T in orange(2, src)) + if(AM in T.affecting) + return + + if(ismob(AM)) + var/mob/M = AM + if(immobilize) + M.canmove = 0 + + affecting.Add(AM) + while(AM && !stopthrow) + if(tiles) + if(curtiles >= tiles) + break + if(AM.z != src.z) + break + + curtiles++ + + sleep(speed) + + // Calculate if we should stop the process + if(!nostop) + for(var/obj/effect/step_trigger/T in get_step(AM, direction)) + if(T.stopper && T != src) + stopthrow = 1 + else + for(var/obj/effect/step_trigger/teleporter/T in get_step(AM, direction)) + if(T.stopper) + stopthrow = 1 + + if(AM) + var/predir = AM.dir + step(AM, direction) + if(!facedir) + AM.setDir(predir) + + + + affecting.Remove(AM) + + if(ismob(AM)) + var/mob/M = AM + if(immobilize) + M.canmove = 1 + +/* Stops things thrown by a thrower, doesn't do anything */ + +/obj/effect/step_trigger/stopper + +/* Instant teleporter */ + +/obj/effect/step_trigger/teleporter + var/teleport_x = 0 // teleportation coordinates (if one is null, then no teleport!) + var/teleport_y = 0 + var/teleport_z = 0 + +/obj/effect/step_trigger/teleporter/Trigger(atom/movable/A) + if(teleport_x && teleport_y && teleport_z) + + A.x = teleport_x + A.y = teleport_y + A.z = teleport_z + +/* Random teleporter, teleports atoms to locations ranging from teleport_x - teleport_x_offset, etc */ + +/obj/effect/step_trigger/teleporter/random + var/teleport_x_offset = 0 + var/teleport_y_offset = 0 + var/teleport_z_offset = 0 + +/obj/effect/step_trigger/teleporter/random/Trigger(atom/movable/A) + if(teleport_x && teleport_y && teleport_z) + if(teleport_x_offset && teleport_y_offset && teleport_z_offset) + + A.x = rand(teleport_x, teleport_x_offset) + A.y = rand(teleport_y, teleport_y_offset) + A.z = rand(teleport_z, teleport_z_offset) + +/* Fancy teleporter, creates sparks and smokes when used */ + +/obj/effect/step_trigger/teleport_fancy + var/locationx + var/locationy + var/uses = 1 //0 for infinite uses + var/entersparks = 0 + var/exitsparks = 0 + var/entersmoke = 0 + var/exitsmoke = 0 + +/obj/effect/step_trigger/teleport_fancy/Trigger(mob/M) + var/dest = locate(locationx, locationy, z) + M.Move(dest) + + if(entersparks) + var/datum/effect_system/spark_spread/s = new + s.set_up(4, 1, src) + s.start() + if(exitsparks) + var/datum/effect_system/spark_spread/s = new + s.set_up(4, 1, dest) + s.start() + + if(entersmoke) + var/datum/effect_system/smoke_spread/s = new + s.set_up(4, 1, src, 0) + s.start() + if(exitsmoke) + var/datum/effect_system/smoke_spread/s = new + s.set_up(4, 1, dest, 0) + s.start() + + uses-- + if(uses == 0) + qdel(src) + +/* Simple sound player, Mapper friendly! */ + +/obj/effect/step_trigger/sound_effect + var/sound //eg. path to the sound, inside '' eg: 'growl.ogg' + var/volume = 100 + var/freq_vary = 1 //Should the frequency of the sound vary? + var/extra_range = 0 // eg World.view = 7, extra_range = 1, 7+1 = 8, 8 turfs radius + var/happens_once = 0 + var/triggerer_only = 0 //Whether the triggerer is the only person who hears this + + +/obj/effect/step_trigger/sound_effect/Trigger(atom/movable/A) + var/turf/T = get_turf(A) + + if(!T) + return + + if(triggerer_only) + A.playsound_local(T, sound, volume, freq_vary) + else + playsound(T, sound, volume, freq_vary, extra_range) + + if(happens_once) + qdel(src) + diff --git a/code/game/objects/effects/wanted_poster.dm b/code/game/objects/effects/wanted_poster.dm new file mode 100644 index 0000000..27040ab --- /dev/null +++ b/code/game/objects/effects/wanted_poster.dm @@ -0,0 +1,48 @@ +/obj/item/weapon/poster/legit/wanted + var/poster_desc + icon_state = "rolled_poster" + +/obj/item/weapon/poster/legit/wanted/New(turf/loc, icon/person_icon, wanted_name, description) + ..(loc) + name = "wanted poster ([wanted_name])" + desc = "A wanted poster for [wanted_name]." + poster_desc = description + qdel(resulting_poster) + resulting_poster = new /obj/structure/sign/poster/wanted(person_icon, wanted_name, poster_desc) + +/obj/structure/sign/poster/wanted + var/wanted_name + +/obj/structure/sign/poster/wanted/New(var/icon/person_icon, var/person_name, var/description) + if(!person_icon) + qdel(src) + return + name = "wanted poster ([person_name])" + wanted_name = person_name + desc = description + + person_icon = icon(person_icon, dir = SOUTH)//copy the image so we don't mess with the one in the record. + var/icon/the_icon = icon("icon" = 'icons/obj/poster_wanted.dmi', "icon_state" = "wanted_background") + var/icon/icon_foreground = icon("icon" = 'icons/obj/poster_wanted.dmi', "icon_state" = "wanted_foreground") + person_icon.Shift(SOUTH, 7) + person_icon.Crop(7,4,26,30) + person_icon.Crop(-5,-2,26,29) + the_icon.Blend(person_icon, ICON_OVERLAY) + the_icon.Blend(icon_foreground, ICON_OVERLAY) + + the_icon.Insert(the_icon, "wanted") + the_icon.Insert(icon('icons/obj/contraband.dmi', "poster_being_set"), "poster_being_set") + the_icon.Insert(icon('icons/obj/contraband.dmi', "poster_ripped"), "poster_ripped") + icon = the_icon + +/obj/structure/sign/poster/wanted/attack_hand(mob/user) + ..() + +/obj/structure/sign/poster/wanted/attackby() + ..() + +/obj/structure/sign/poster/wanted/roll_and_drop(turf/location) + var/obj/item/weapon/poster/legit/wanted/P = new(src, null, wanted_name, desc) + P.resulting_poster = src + P.loc = location + loc = P diff --git a/code/game/objects/empulse.dm b/code/game/objects/empulse.dm new file mode 100644 index 0000000..6cf6772 --- /dev/null +++ b/code/game/objects/empulse.dm @@ -0,0 +1,31 @@ +/proc/empulse(turf/epicenter, heavy_range, light_range, log=0) + if(!epicenter) return + + if(!isturf(epicenter)) + epicenter = get_turf(epicenter.loc) + + if(log) + message_admins("EMP with size ([heavy_range], [light_range]) in area [epicenter.loc.name] ") + log_game("EMP with size ([heavy_range], [light_range]) in area [epicenter.loc.name] ") + + if(heavy_range > 1) + PoolOrNew(/obj/effect/overlay/temp/emp/pulse, epicenter) + + if(heavy_range > light_range) + light_range = heavy_range + + for(var/A in spiral_range(light_range, epicenter)) + var/atom/T = A + var/distance = get_dist(epicenter, T) + if(distance < 0) + distance = 0 + if(distance < heavy_range) + T.emp_act(1) + else if(distance == heavy_range) + if(prob(50)) + T.emp_act(1) + else + T.emp_act(2) + else if(distance <= light_range) + T.emp_act(2) + return 1 \ No newline at end of file diff --git a/code/game/objects/explosion.dm b/code/game/objects/explosion.dm new file mode 100644 index 0000000..8504bea --- /dev/null +++ b/code/game/objects/explosion.dm @@ -0,0 +1,263 @@ +//TODO: Flash range does nothing currently + +/proc/explosion(turf/epicenter, devastation_range, heavy_impact_range, light_impact_range, flash_range, adminlog = 1, ignorecap = 0, flame_range = 0 ,silent = 0, smoke = 1) + set waitfor = 0 + src = null //so we don't abort once src is deleted + epicenter = get_turf(epicenter) + + //DO NOT REMOVE THIS SLEEP, IT BREAKS THINGS + //not sleeping causes us to ex_act() the thing that triggered the explosion + //doing that might cause it to trigger another explosion + //this is bad + //I would make this not ex_act the thing that triggered the explosion, + //but everything that explodes gives us their loc or a get_turf() + //and somethings expect us to ex_act them so they can qdel() + sleep(1) //tldr, let the calling proc call qdel(src) before we explode + + // Archive the uncapped explosion for the doppler array + var/orig_dev_range = devastation_range + var/orig_heavy_range = heavy_impact_range + var/orig_light_range = light_impact_range + + if(!ignorecap) + // Clamp all values to MAX_EXPLOSION_RANGE + devastation_range = min (MAX_EX_DEVESTATION_RANGE, devastation_range) + heavy_impact_range = min (MAX_EX_HEAVY_RANGE, heavy_impact_range) + light_impact_range = min (MAX_EX_LIGHT_RANGE, light_impact_range) + flash_range = min (MAX_EX_FLASH_RANGE, flash_range) + flame_range = min (MAX_EX_FLAME_RANGE, flame_range) + + var/start = world.timeofday + if(!epicenter) return + + var/max_range = max(devastation_range, heavy_impact_range, light_impact_range, flame_range) + var/list/cached_exp_block = list() + + if(adminlog) + message_admins("Explosion with size ([devastation_range], [heavy_impact_range], [light_impact_range], [flame_range]) in area [epicenter.loc.name] ([epicenter.x],[epicenter.y],[epicenter.z] - JMP)") + log_game("Explosion with size ([devastation_range], [heavy_impact_range], [light_impact_range], [flame_range]) in area [epicenter.loc.name] ([epicenter.x],[epicenter.y],[epicenter.z])") + + // Play sounds; we want sounds to be different depending on distance so we will manually do it ourselves. + // Stereo users will also hear the direction of the explosion! + + // Calculate far explosion sound range. Only allow the sound effect for heavy/devastating explosions. + // 3/7/14 will calculate to 80 + 35 + + var/far_dist = 0 + far_dist += heavy_impact_range * 5 + far_dist += devastation_range * 20 + + if(!silent) + var/frequency = get_rand_frequency() + for(var/mob/M in player_list) + // Double check for client + if(M && M.client) + var/turf/M_turf = get_turf(M) + if(M_turf && M_turf.z == epicenter.z) + var/dist = get_dist(M_turf, epicenter) + // If inside the blast radius + world.view - 2 + if(dist <= round(max_range + world.view - 2, 1)) + M.playsound_local(epicenter, get_sfx("explosion"), 100, 1, frequency, falloff = 5) // get_sfx() is so that everyone gets the same sound + // You hear a far explosion if you're outside the blast radius. Small bombs shouldn't be heard all over the station. + else if(dist <= far_dist) + var/far_volume = Clamp(far_dist, 30, 50) // Volume is based on explosion size and dist + far_volume += (dist <= far_dist * 0.5 ? 50 : 0) // add 50 volume if the mob is pretty close to the explosion + M.playsound_local(epicenter, 'sound/effects/explosionfar.ogg', far_volume, 1, frequency, falloff = 5) + + //postpone processing for a bit + var/postponeCycles = max(round(devastation_range/8),1) + SSlighting.postpone(postponeCycles) + SSmachine.postpone(postponeCycles) + + if(heavy_impact_range > 1) + if(smoke) + var/datum/effect_system/explosion/smoke/E = new/datum/effect_system/explosion/smoke() + E.set_up(epicenter) + E.start() + else + var/datum/effect_system/explosion/E = new/datum/effect_system/explosion() + E.set_up(epicenter) + E.start() + + var/x0 = epicenter.x + var/y0 = epicenter.y + var/z0 = epicenter.z + + var/list/affected_turfs = spiral_range_turfs(max_range, epicenter) + + if(config.reactionary_explosions) + for(var/turf/T in affected_turfs) // we cache the explosion block rating of every turf in the explosion area + cached_exp_block[T] = 0 + if(T.density && T.explosion_block) + cached_exp_block[T] += T.explosion_block + + for(var/obj/machinery/door/D in T) + if(D.density && D.explosion_block) + cached_exp_block[T] += D.explosion_block + + for(var/obj/structure/window/W in T) + if(W.reinf && W.fulltile) + cached_exp_block[T] += W.explosion_block + + for(var/obj/structure/blob/B in T) + cached_exp_block[T] += B.explosion_block + CHECK_TICK + + for(var/turf/T in affected_turfs) + + if (!T) + continue + var/dist = cheap_hypotenuse(T.x, T.y, x0, y0) + + if(config.reactionary_explosions) + var/turf/Trajectory = T + while(Trajectory != epicenter) + Trajectory = get_step_towards(Trajectory, epicenter) + dist += cached_exp_block[Trajectory] + + var/flame_dist = 0 + var/throw_dist = dist + + if(dist < flame_range) + flame_dist = 1 + + if(dist < devastation_range) + dist = 1 + else if(dist < heavy_impact_range) + dist = 2 + else if(dist < light_impact_range) + dist = 3 + else + dist = 0 + + //------- TURF FIRES ------- + + if(T) + if(flame_dist && prob(40) && !isspaceturf(T) && !T.density) + PoolOrNew(/obj/effect/hotspot, T) //Mostly for ambience! + if(dist > 0) + T.ex_act(dist) + + //--- THROW ITEMS AROUND --- + + var/throw_dir = get_dir(epicenter,T) + for(var/obj/item/I in T) + if(I && !I.anchored) + var/throw_range = rand(throw_dist, max_range) + var/turf/throw_at = get_ranged_target_turf(I, throw_dir, throw_range) + I.throw_speed = 4 //Temporarily change their throw_speed for embedding purposes (Reset when it finishes throwing, regardless of hitting anything) + I.throw_at_fast(throw_at, throw_range, 2)//Throw it at 2 speed, this is purely visual anyway. + + CHECK_TICK + + var/took = (world.timeofday-start)/10 + //You need to press the DebugGame verb to see these now....they were getting annoying and we've collected a fair bit of data. Just -test- changes to explosion code using this please so we can compare + if(Debug2) + world.log << "## DEBUG: Explosion([x0],[y0],[z0])(d[devastation_range],h[heavy_impact_range],l[light_impact_range]): Took [took] seconds." + + //Machines which report explosions. + for(var/array in doppler_arrays) + var/obj/machinery/doppler_array/A = array + A.sense_explosion(epicenter,devastation_range,heavy_impact_range,light_impact_range,took,orig_dev_range,orig_heavy_range,orig_light_range) + + return 1 + + + +/proc/secondaryexplosion(turf/epicenter, range) + for(var/turf/tile in spiral_range_turfs(range, epicenter)) + tile.ex_act(2) + + +/client/proc/check_bomb_impacts() + set name = "Check Bomb Impact" + set category = "Debug" + + var/newmode = alert("Use reactionary explosions?","Check Bomb Impact", "Yes", "No") + var/turf/epicenter = get_turf(mob) + if(!epicenter) + return + + var/dev = 0 + var/heavy = 0 + var/light = 0 + var/list/choices = list("Small Bomb","Medium Bomb","Big Bomb","Custom Bomb") + var/choice = input("Bomb Size?") in choices + switch(choice) + if(null) + return 0 + if("Small Bomb") + dev = 1 + heavy = 2 + light = 3 + if("Medium Bomb") + dev = 2 + heavy = 3 + light = 4 + if("Big Bomb") + dev = 3 + heavy = 5 + light = 7 + if("Custom Bomb") + dev = input("Devestation range (Tiles):") as num + heavy = input("Heavy impact range (Tiles):") as num + light = input("Light impact range (Tiles):") as num + + var/max_range = max(dev, heavy, light) + var/x0 = epicenter.x + var/y0 = epicenter.y + var/list/wipe_colours = list() + for(var/turf/T in spiral_range_turfs(max_range, epicenter)) + wipe_colours += T + var/dist = cheap_hypotenuse(T.x, T.y, x0, y0) + + if(newmode == "Yes") + var/turf/TT = T + while(TT != epicenter) + TT = get_step_towards(TT,epicenter) + if(TT.density && TT.explosion_block) + dist += TT.explosion_block + + for(var/obj/machinery/door/D in TT) + if(D.density && D.explosion_block) + dist += D.explosion_block + + for(var/obj/structure/window/W in TT) + if(W.explosion_block && W.fulltile) + dist += W.explosion_block + + for(var/obj/structure/blob/B in T) + dist += B.explosion_block + + if(dist < dev) + T.color = "red" + T.maptext = "Dev" + else if (dist < heavy) + T.color = "yellow" + T.maptext = "Heavy" + else if (dist < light) + T.color = "blue" + T.maptext = "Light" + else + continue + + sleep(100) + for(var/turf/T in wipe_colours) + T.color = null + T.maptext = "" + +proc/dyn_explosion(turf/epicenter, power, flash_range, adminlog = 1, ignorecap = 1, flame_range = 0 ,silent = 0, smoke = 1) + if(!power) + return + var/range = 0 + range = round((2 * power)**DYN_EX_SCALE) + explosion(epicenter, round(range * 0.25), round(range * 0.5), round(range), flash_range*range, adminlog, ignorecap, flame_range*range, silent, smoke) + +// Using default dyn_ex scale: +// 100 explosion power is a (5, 10, 20) explosion. +// 75 explosion power is a (4, 8, 17) explosion. +// 50 explosion power is a (3, 7, 14) explosion. +// 25 explosion power is a (2, 5, 10) explosion. +// 10 explosion power is a (1, 3, 6) explosion. +// 5 explosion power is a (0, 1, 3) explosion. +// 1 explosion power is a (0, 0, 1) explosion. \ No newline at end of file diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm new file mode 100644 index 0000000..4f79520 --- /dev/null +++ b/code/game/objects/items.dm @@ -0,0 +1,603 @@ +var/global/image/fire_overlay = image("icon" = 'icons/effects/fire.dmi', "icon_state" = "fire") + +/obj/item + name = "item" + icon = 'icons/obj/items.dmi' + var/item_state = null + var/lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' + var/righthand_file = 'icons/mob/inhands/items_righthand.dmi' + + //Dimensions of the icon file used when this item is worn, eg: hats.dmi + //eg: 32x32 sprite, 64x64 sprite, etc. + //allows inhands/worn sprites to be of any size, but still centered on a mob properly + var/worn_x_dimension = 32 + var/worn_y_dimension = 32 + //Same as above but for inhands, uses the lefthand_ and righthand_ file vars + var/inhand_x_dimension = 32 + var/inhand_y_dimension = 32 + + //Not on /clothing because for some reason any /obj/item can technically be "worn" with enough fuckery. + var/icon/alternate_worn_icon = null//If this is set, update_icons() will find on mob (WORN, NOT INHANDS) states in this file instead, primary use: badminnery/events + var/alternate_worn_layer = null//If this is set, update_icons() will force the on mob state (WORN, NOT INHANDS) onto this layer, instead of it's default + + obj_integrity = 200 + max_integrity = 200 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) + + var/hitsound = null + var/usesound = null + var/throwhitsound = null + var/w_class = 3 + var/slot_flags = 0 //This is used to determine on which slots an item can fit. + pass_flags = PASSTABLE + pressure_resistance = 4 + var/obj/item/master = null + + var/heat_protection = 0 //flags which determine which body parts are protected from heat. Use the HEAD, CHEST, GROIN, etc. flags. See setup.dm + var/cold_protection = 0 //flags which determine which body parts are protected from cold. Use the HEAD, CHEST, GROIN, etc. flags. See setup.dm + var/max_heat_protection_temperature //Set this variable to determine up to which temperature (IN KELVIN) the item protects against heat damage. Keep at null to disable protection. Only protects areas set by heat_protection flags + var/min_cold_protection_temperature //Set this variable to determine down to which temperature (IN KELVIN) the item protects against cold damage. 0 is NOT an acceptable number due to if(varname) tests!! Keep at null to disable protection. Only protects areas set by cold_protection flags + + var/list/actions = list() //list of /datum/action's that this item has. + var/list/actions_types = list() //list of paths of action datums to give to the item on New(). + + //Since any item can now be a piece of clothing, this has to be put here so all items share it. + var/flags_inv //This flag is used to determine when items in someone's inventory cover others. IE helmets making it so you can't see glasses, etc. + + var/item_color = null //this needs deprecating, soonish + + var/body_parts_covered = 0 //see setup.dm for appropriate bit flags + //var/heat_transfer_coefficient = 1 //0 prevents all transfers, 1 is invisible + var/gas_transfer_coefficient = 1 // for leaking gas from turf to mask and vice-versa (for masks right now, but at some point, i'd like to include space helmets) + var/permeability_coefficient = 1 // for chemicals/diseases + var/siemens_coefficient = 1 // for electrical admittance/conductance (electrocution checks and shit) + var/slowdown = 0 // How much clothing is slowing you down. Negative values speeds you up + var/armour_penetration = 0 //percentage of armour effectiveness to remove + var/list/allowed = null //suit storage stuff. + var/obj/item/device/uplink/hidden_uplink = null + var/strip_delay = 40 + var/put_on_delay = 20 + var/breakouttime = 0 + var/list/materials = list() + var/origin_tech = null //Used by R&D to determine what research bonuses it grants. + var/needs_permit = 0 //Used by security bots to determine if this item is safe for public use. + + var/list/attack_verb = list() //Used in attackby() to say how something was attacked "[x] has been [z.attack_verb] by [y] with [z]" + var/list/species_exception = null // list() of species types, if a species cannot put items in a certain slot, but species type is in list, it will be able to wear that item + + var/suittoggled = 0 + var/hooded = 0 + + var/mob/thrownby = null + + /obj/item/mouse_drag_pointer = MOUSE_ACTIVE_POINTER //the icon to indicate this object is being dragged + + //So items can have custom embedd values + //Because customisation is king + var/embed_chance = EMBED_CHANCE + var/embedded_fall_chance = EMBEDDED_ITEM_FALLOUT + var/embedded_pain_chance = EMBEDDED_PAIN_CHANCE + var/embedded_pain_multiplier = EMBEDDED_PAIN_MULTIPLIER //The coefficient of multiplication for the damage this item does while embedded (this*w_class) + var/embedded_fall_pain_multiplier = EMBEDDED_FALL_PAIN_MULTIPLIER //The coefficient of multiplication for the damage this item does when falling out of a limb (this*w_class) + var/embedded_impact_pain_multiplier = EMBEDDED_IMPACT_PAIN_MULTIPLIER //The coefficient of multiplication for the damage this item does when first embedded (this*w_class) + var/embedded_unsafe_removal_pain_multiplier = EMBEDDED_UNSAFE_REMOVAL_PAIN_MULTIPLIER //The coefficient of multiplication for the damage removing this without surgery causes (this*w_class) + var/embedded_unsafe_removal_time = EMBEDDED_UNSAFE_REMOVAL_TIME //A time in ticks, multiplied by the w_class. + + var/flags_cover = 0 //for flags such as GLASSESCOVERSEYES + var/heat = 0 + var/sharpness = IS_BLUNT + var/toolspeed = 1 + + var/block_chance = 0 + var/hit_reaction_chance = 0 //If you want to have something unrelated to blocking/armour piercing etc. Maybe not needed, but trying to think ahead/allow more freedom + + //The list of slots by priority. equip_to_appropriate_slot() uses this list. Doesn't matter if a mob type doesn't have a slot. + var/list/slot_equipment_priority = null // for default list, see /mob/proc/equip_to_appropriate_slot() + + // Needs to be in /obj/item because corgis can wear a lot of + // non-clothing items + var/datum/dog_fashion/dog_fashion = null + + var/amount = 0 //Shitty hack that has to do with money. I hate everything. + + +/obj/item/proc/check_allowed_items(atom/target, not_inside, target_self) + if(((src in target) && !target_self) || (!isturf(target.loc) && !isturf(target) && not_inside)) + return 0 + else + return 1 + +/obj/item/device + icon = 'icons/obj/device.dmi' + +/obj/item/New() + ..() + for(var/path in actions_types) + new path(src) + +/obj/item/Destroy() + if(ismob(loc)) + var/mob/m = loc + m.unEquip(src, 1) + for(var/X in actions) + qdel(X) + return ..() + +/obj/item/blob_act(obj/structure/blob/B) + if(B && B.loc == loc) + qdel(src) + +//user: The mob that is suiciding +//damagetype: The type of damage the item will inflict on the user +//BRUTELOSS = 1 +//FIRELOSS = 2 +//TOXLOSS = 4 +//OXYLOSS = 8 +//Output a creative message and then return the damagetype done +/obj/item/proc/suicide_act(mob/user) + return + +/obj/item/verb/move_to_top() + set name = "Move To Top" + set category = "Object" + set src in oview(1) + + if(!isturf(loc) || usr.stat || usr.restrained() || !usr.canmove) + return + + var/turf/T = src.loc + + src.loc = null + + src.loc = T + +/obj/item/examine(mob/user) //This might be spammy. Remove? + ..() + var/size + switch(src.w_class) + if(1) + size = "tiny" + if(2) + size = "small" + if(3) + size = "normal-sized" + if(4) + size = "bulky" + if(5) + size = "huge" + if(6) + size = "gigantic" + else + //if ((CLUMSY in usr.mutations) && prob(50)) t = "funny-looking" + + var/pronoun + if(src.gender == PLURAL) + pronoun = "They are" + else + pronoun = "It is" + + user << "[pronoun] a [size] item." //e.g. They are a small item. or It is a bulky item. + + if(user.research_scanner) //Mob has a research scanner active. + var/msg = "*--------*
            " + + if(origin_tech) + msg += "Testing potentials:
            " + var/list/techlvls = params2list(origin_tech) + for(var/T in techlvls) //This needs to use the better names. + msg += "Tech: [CallTechName(T)] | magnitude: [techlvls[T]]
            " + else + msg += "No tech origins detected.
            " + + + if(materials.len) + msg += "Extractable materials:
            " + for(var/mat in materials) + msg += "[CallMaterialName(mat)]
            " //Capitize first word, remove the "$" + else + msg += "No extractable materials detected.
            " + msg += "*--------*" + user << msg + + +/obj/item/attack_self(mob/user) + interact(user) + +/obj/item/interact(mob/user) + add_fingerprint(user) + if(hidden_uplink && hidden_uplink.active) + hidden_uplink.interact(user) + return 1 + ui_interact(user) + +/obj/item/ui_act(action, params) + add_fingerprint(usr) + return ..() + +/obj/item/attack_hand(mob/user) + if(!user) + return + if(anchored) + return + + if(resistance_flags & ON_FIRE) + var/mob/living/carbon/C = user + if(istype(C)) + if(C.gloves && (C.gloves.max_heat_protection_temperature > 360)) + extinguish() + user << "You put out the fire on [src]." + else + user << "You burn your hand on [src]!" + var/obj/item/bodypart/affecting = C.get_bodypart("[(user.active_hand_index % 2 == 0) ? "r" : "l" ]_arm") + if(affecting && affecting.receive_damage( 0, 5 )) // 5 burn damage + C.update_damage_overlays() + return + else + extinguish() + + if(acid_level > 20 && !ismob(loc))// so we can still remove the clothes on us that have acid. + var/mob/living/carbon/C = user + if(istype(C)) + if(!C.gloves || (!(C.gloves.resistance_flags & (UNACIDABLE|ACID_PROOF)))) + user << "The acid on [src] burns your hand!" + var/obj/item/bodypart/affecting = C.get_bodypart("[(user.active_hand_index % 2 == 0) ? "r" : "l" ]_arm") + if(affecting && affecting.receive_damage( 0, 5 )) // 5 burn damage + C.update_damage_overlays() + + + if(istype(loc, /obj/item/weapon/storage)) + //If the item is in a storage item, take it out + var/obj/item/weapon/storage/S = loc + S.remove_from_storage(src, user.loc) + + throwing = 0 + if(loc == user) + if(!user.unEquip(src)) + return + + pickup(user) + add_fingerprint(user) + if(!user.put_in_active_hand(src)) + dropped(user) + + +/obj/item/attack_paw(mob/user) + if(!user) + return + if(anchored) + return + + if(istype(loc, /obj/item/weapon/storage)) + var/obj/item/weapon/storage/S = loc + S.remove_from_storage(src, user.loc) + + throwing = 0 + if(loc == user) + if(!user.unEquip(src)) + return + + pickup(user) + add_fingerprint(user) + if(!user.put_in_active_hand(src)) + dropped(user) + +/obj/item/attack_alien(mob/user) + var/mob/living/carbon/alien/A = user + + if(!A.has_fine_manipulation) + if(src in A.contents) // To stop Aliens having items stuck in their pockets + A.unEquip(src) + user << "Your claws aren't capable of such fine manipulation!" + return + attack_paw(A) + +/obj/item/attack_ai(mob/user) + if(istype(src.loc, /obj/item/weapon/robot_module)) + //If the item is part of a cyborg module, equip it + if(!iscyborg(user)) + return + var/mob/living/silicon/robot/R = user + if(!R.low_power_mode) //can't equip modules with an empty cell. + R.activate_module(src) + R.hud_used.update_robot_modules_display() + +// Due to storage type consolidation this should get used more now. +// I have cleaned it up a little, but it could probably use more. -Sayu +/obj/item/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W,/obj/item/weapon/storage)) + var/obj/item/weapon/storage/S = W + if(S.use_to_pickup) + if(S.collection_mode) //Mode is set to collect multiple items on a tile and we clicked on a valid one. + if(isturf(src.loc)) + var/list/rejections = list() + var/success = 0 + var/failure = 0 + + for(var/obj/item/I in src.loc) + if(S.collection_mode == 2 && !istype(I,src.type)) // We're only picking up items of the target type + failure = 1 + continue + if(I.type in rejections) // To limit bag spamming: any given type only complains once + continue + if(!S.can_be_inserted(I)) // Note can_be_inserted still makes noise when the answer is no + rejections += I.type // therefore full bags are still a little spammy + failure = 1 + continue + + success = 1 + S.handle_item_insertion(I, 1) //The 1 stops the "You put the [src] into [S]" insertion message from being displayed. + if(success && !failure) + user << "You put everything [S.preposition] [S]." + else if(success) + user << "You put some things [S.preposition] [S]." + else + user << "You fail to pick anything up with [S]!" + + else if(S.can_be_inserted(src)) + S.handle_item_insertion(src) + + +// afterattack() and attack() prototypes moved to _onclick/item_attack.dm for consistency + +/obj/item/proc/hit_reaction(mob/living/carbon/human/owner, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) + if(prob(final_block_chance)) + owner.visible_message("[owner] blocks [attack_text] with [src]!") + return 1 + return 0 + +/obj/item/proc/talk_into(mob/M, input, channel, spans) + return + +/obj/item/proc/dropped(mob/user) + for(var/X in actions) + var/datum/action/A = X + A.Remove(user) + if(DROPDEL & flags) + //Prevents infinite loops where Destroy() calls an objects dropped() function + flags &= ~DROPDEL + qdel(src) + +// called just as an item is picked up (loc is not yet changed) +/obj/item/proc/pickup(mob/user) + return + + +// called when this item is removed from a storage item, which is passed on as S. The loc variable is already set to the new destination before this is called. +/obj/item/proc/on_exit_storage(obj/item/weapon/storage/S) + return + +// called when this item is added into a storage item, which is passed on as S. The loc variable is already set to the storage item. +/obj/item/proc/on_enter_storage(obj/item/weapon/storage/S) + return + +// called when "found" in pockets and storage items. Returns 1 if the search should end. +/obj/item/proc/on_found(mob/finder) + return + +// called after an item is placed in an equipment slot //NOPE, for example, if you put a helmet in slot_head, it is NOT in user's head variable yet, how stupid. +// user is mob that equipped it +// slot uses the slot_X defines found in setup.dm +// for items that can be placed in multiple slots +// note this isn't called during the initial dressing of a player +/obj/item/proc/equipped(mob/user, slot) + for(var/X in actions) + var/datum/action/A = X + if(item_action_slot_check(slot, user)) //some items only give their actions buttons when in a specific slot. + A.Grant(user) + +//sometimes we only want to grant the item's action if it's equipped in a specific slot. +obj/item/proc/item_action_slot_check(slot, mob/user) + return 1 + +//the mob M is attempting to equip this item into the slot passed through as 'slot'. Return 1 if it can do this and 0 if it can't. +//if this is being done by a mob other than M, it will include the mob equipper, who is trying to equip the item to mob M. equipper will be null otherwise. +//If you are making custom procs but would like to retain partial or complete functionality of this one, include a 'return ..()' to where you want this to happen. +//Set disable_warning to 1 if you wish it to not give you outputs. +/obj/item/proc/mob_can_equip(mob/M, mob/equipper, slot, disable_warning = 0) + if(!M) + return 0 + + return M.can_equip(src, slot, disable_warning) + +/obj/item/verb/verb_pickup() + set src in oview(1) + set category = "Object" + set name = "Pick up" + + if(usr.incapacitated() || !Adjacent(usr) || usr.lying) + return + + if(usr.get_active_held_item() == null) // Let me know if this has any problems -Yota + usr.UnarmedAttack(src) + +//This proc is executed when someone clicks the on-screen UI button. +//The default action is attack_self(). +//Checks before we get to here are: mob is alive, mob is not restrained, paralyzed, asleep, resting, laying, item is on the mob. +/obj/item/proc/ui_action_click(mob/user, actiontype) + attack_self(user) + +/obj/item/proc/IsReflect(var/def_zone) //This proc determines if and at what% an object will reflect energy projectiles if it's in l_hand,r_hand or wear_suit + return 0 + +/obj/item/proc/eyestab(mob/living/carbon/M, mob/living/carbon/user) + + var/is_human_victim = 0 + var/obj/item/bodypart/affecting = M.get_bodypart("head") + if(ishuman(M)) + if(!affecting) //no head! + return + is_human_victim = 1 + var/mob/living/carbon/human/H = M + if((H.head && H.head.flags_cover & HEADCOVERSEYES) || \ + (H.wear_mask && H.wear_mask.flags_cover & MASKCOVERSEYES) || \ + (H.glasses && H.glasses.flags_cover & GLASSESCOVERSEYES)) + // you can't stab someone in the eyes wearing a mask! + user << "You're going to need to remove that mask/helmet/glasses first!" + return + + if(ismonkey(M)) + var/mob/living/carbon/monkey/Mo = M + if(Mo.wear_mask && Mo.wear_mask.flags_cover & MASKCOVERSEYES) + // you can't stab someone in the eyes wearing a mask! + user << "You're going to need to remove that mask/helmet/glasses first!" + return + + if(isalien(M))//Aliens don't have eyes./N slimes also don't have eyes! + user << "You cannot locate any eyes on this creature!" + return + + if(isbrain(M)) + user << "You cannot locate any organic eyes on this brain!" + return + + src.add_fingerprint(user) + + playsound(loc, src.hitsound, 30, 1, -1) + + user.do_attack_animation(M) + + if(M != user) + M.visible_message("[user] has stabbed [M] in the eye with [src]!", \ + "[user] stabs you in the eye with [src]!") + else + user.visible_message( \ + "[user] has stabbed themself in the eyes with [src]!", \ + "You stab yourself in the eyes with [src]!" \ + ) + if(is_human_victim) + var/mob/living/carbon/human/U = M + U.apply_damage(7, BRUTE, affecting) + + else + M.take_bodypart_damage(7) + + add_logs(user, M, "attacked", "[src.name]", "(INTENT: [uppertext(user.a_intent)])") + + M.adjust_blurriness(3) + M.adjust_eye_damage(rand(2,4)) + if(M.eye_damage >= 10) + M.adjust_blurriness(15) + if(M.stat != DEAD) + M << "Your eyes start to bleed profusely!" + if(!(M.disabilities & (NEARSIGHT | BLIND))) + if(M.become_nearsighted()) + M << "You become nearsighted!" + if(prob(50)) + if(M.stat != DEAD) + if(M.drop_item()) + M << "You drop what you're holding and clutch at your eyes!" + M.adjust_blurriness(10) + M.Paralyse(1) + M.Weaken(2) + if (prob(M.eye_damage - 10 + 1)) + if(M.become_blind()) + M << "You go blind!" + +/obj/item/clean_blood() + . = ..() + if(.) + if(initial(icon) && initial(icon_state)) + var/index = blood_splatter_index() + var/icon/blood_splatter_icon = blood_splatter_icons[index] + if(blood_splatter_icon) + overlays -= blood_splatter_icon + +/obj/item/clothing/gloves/clean_blood() + . = ..() + if(.) + transfer_blood = 0 + +/obj/item/singularity_pull(S, current_size) + if(current_size >= STAGE_FOUR) + throw_at_fast(S,14,3, spin=0) + else ..() + +/obj/item/throw_impact(atom/A) + var/itempush = 1 + if(w_class < 4) + itempush = 0 //too light to push anything + return A.hitby(src, 0, itempush) + +/obj/item/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0) + thrownby = thrower + . = ..() + throw_speed = initial(throw_speed) //explosions change this. + + +/obj/item/proc/remove_item_from_storage(atom/newLoc) //please use this if you're going to snowflake an item out of a obj/item/weapon/storage + if(!newLoc) + return 0 + if(istype(loc,/obj/item/weapon/storage)) + var/obj/item/weapon/storage/S = loc + S.remove_from_storage(src,newLoc) + return 1 + return 0 + +/obj/item/proc/is_hot() + return heat + +/obj/item/proc/is_sharp() + return sharpness + +/obj/item/proc/get_dismemberment_chance(obj/item/bodypart/affecting) + if(affecting.can_dismember(src)) + if((sharpness || damtype == BURN) && w_class >= 3) + . = force*(w_class-1) + +/obj/item/proc/get_dismember_sound() + if(damtype == BURN) + . = 'sound/weapons/sear.ogg' + else + . = pick('sound/misc/desceration-01.ogg', 'sound/misc/desceration-02.ogg', 'sound/misc/desceration-03.ogg') + +/obj/item/proc/open_flame(flame_heat=700) + var/turf/location = loc + if(ismob(location)) + var/mob/M = location + var/success = FALSE + if(src == M.get_item_by_slot(slot_wear_mask)) + success = TRUE + if(success) + location = get_turf(M) + if(isturf(location)) + location.hotspot_expose(flame_heat, 5) + +/obj/item/proc/ignition_effect(atom/A, mob/user) + if(is_hot()) + . = "[user] lights [A] with [src]." + else + . = "" + + +//when an item modify our speech spans when in our active hand. Override this to modify speech spans. +/obj/item/proc/get_held_item_speechspans(mob/living/carbon/user) + return + +/obj/item/hitby(atom/movable/AM) + return + +/obj/item/attack_hulk(mob/living/carbon/human/user) + return 0 + +/obj/item/attack_animal(mob/living/simple_animal/M) + return 0 + +/obj/item/mech_melee_attack(obj/mecha/M) + return 0 + +/obj/item/burn() + if(!qdeleted(src)) + var/turf/T = get_turf(src) + var/obj/effect/decal/cleanable/ash/A = new() + A.desc = "Looks like this used to be a [name] some time ago." + A.forceMove(T) //so the ash decal is deleted if on top of lava. + ..() + +/obj/item/acid_melt() + if(!qdeleted(src)) + var/turf/T = get_turf(src) + var/obj/effect/decal/cleanable/molten_object/MO = new (T) + MO.pixel_x = rand(-16,16) + MO.pixel_y = rand(-16,16) + MO.desc = "Looks like this was \an [src] some time ago." + ..() diff --git a/code/game/objects/items/apc_frame.dm b/code/game/objects/items/apc_frame.dm new file mode 100644 index 0000000..a9ef391 --- /dev/null +++ b/code/game/objects/items/apc_frame.dm @@ -0,0 +1,108 @@ +/obj/item/wallframe + materials = list(MAT_METAL=MINERAL_MATERIAL_AMOUNT*2) + flags = CONDUCT + origin_tech = "materials=1;engineering=1" + item_state = "syringe_kit" + w_class = 2 + var/result_path + var/inverse = 0 + // For inverse dir frames like light fixtures. + +/obj/item/wallframe/proc/try_build(turf/on_wall) + if(get_dist(on_wall,usr)>1) + return + var/ndir = get_dir(on_wall, usr) + if(!(ndir in cardinal)) + return + var/turf/loc = get_turf(usr) + var/area/A = loc.loc + if(!isfloorturf(loc)) + usr << "You cannot place [src] on this spot!" + return + if(A.requires_power == 0 || istype(A, /area/space)) + usr << "You cannot place [src] in this area!" + return + if(gotwallitem(loc, ndir, inverse*2)) + usr << "There's already an item on this wall!" + return + + return 1 + +/obj/item/wallframe/proc/attach(turf/on_wall) + if(result_path) + playsound(src.loc, 'sound/machines/click.ogg', 75, 1) + usr.visible_message("[usr.name] attaches [src] to the wall.", + "You attach [src] to the wall.", + "You hear clicking.") + var/ndir = get_dir(on_wall,usr) + if(inverse) + ndir = turn(ndir, 180) + + var/obj/O = new result_path(get_turf(usr), ndir, 1) + after_attach(O) + + qdel(src) + +/obj/item/wallframe/proc/after_attach(var/obj/O) + transfer_fingerprints_to(O) + +/obj/item/wallframe/attackby(obj/item/weapon/W, mob/user, params) + ..() + if(istype(W, /obj/item/weapon/screwdriver)) + // For camera-building borgs + var/turf/T = get_step(get_turf(user), user.dir) + if(iswallturf(T)) + T.attackby(src, user, params) + + var/metal_amt = round(materials[MAT_METAL]/MINERAL_MATERIAL_AMOUNT) + var/glass_amt = round(materials[MAT_GLASS]/MINERAL_MATERIAL_AMOUNT) + + if(istype(W, /obj/item/weapon/wrench) && (metal_amt || glass_amt)) + user << "You dismantle [src]." + if(metal_amt) + new /obj/item/stack/sheet/metal(get_turf(src), metal_amt) + if(glass_amt) + new /obj/item/stack/sheet/glass(get_turf(src), glass_amt) + qdel(src) + + + +// APC HULL +/obj/item/wallframe/apc + name = "\improper APC frame" + desc = "Used for repairing or building APCs" + icon = 'icons/obj/apc_repair.dmi' + icon_state = "apc_frame" + result_path = /obj/machinery/power/apc + inverse = 1 + + +/obj/item/wallframe/apc/try_build(turf/on_wall) + if(!..()) + return + var/turf/loc = get_turf(usr) + var/area/A = loc.loc + if (A.get_apc()) + usr << "This area already has APC!" + return //only one APC per area + for(var/obj/machinery/power/terminal/T in loc) + if (T.master) + usr << "There is another network terminal here!" + return + else + var/obj/item/stack/cable_coil/C = new /obj/item/stack/cable_coil(loc) + C.amount = 10 + usr << "You cut the cables and disassemble the unused power terminal." + qdel(T) + return 1 + + +/obj/item/weapon/electronics + desc = "Looks like a circuit. Probably is." + icon = 'icons/obj/module.dmi' + icon_state = "door_electronics" + item_state = "electronic" + flags = CONDUCT + w_class = 2 + origin_tech = "engineering=2;programming=1" + materials = list(MAT_METAL=50, MAT_GLASS=50) \ No newline at end of file diff --git a/code/game/objects/items/blueprints.dm b/code/game/objects/items/blueprints.dm new file mode 100644 index 0000000..41a4995 --- /dev/null +++ b/code/game/objects/items/blueprints.dm @@ -0,0 +1,351 @@ +#define AREA_ERRNONE 0 +#define AREA_STATION 1 +#define AREA_SPACE 2 +#define AREA_SPECIAL 3 + +#define BORDER_ERROR 0 +#define BORDER_NONE 1 +#define BORDER_BETWEEN 2 +#define BORDER_2NDTILE 3 +#define BORDER_SPACE 4 + +#define ROOM_ERR_LOLWAT 0 +#define ROOM_ERR_SPACE 1 +#define ROOM_ERR_TOOLARGE 2 + +/obj/item/areaeditor + name = "area modification item" + icon = 'icons/obj/items.dmi' + icon_state = "blueprints" + attack_verb = list("attacked", "bapped", "hit") + var/fluffnotice = "Nobody's gonna read this stuff!" + +/obj/item/areaeditor/attack_self(mob/user) + add_fingerprint(user) + var/text = "[src] \ +

            [station_name()] [src.name]

            \ + [fluffnotice]
            " + switch(get_area_type()) + if(AREA_SPACE) + text += "

            According to the [src.name], you are now in an unclaimed territory.

            \ +

            Mark this place as new area.

            " + if(AREA_SPECIAL) + text += "

            This place is not noted on the [src.name].

            " + return text + + +/obj/item/areaeditor/Topic(href, href_list) + if(..()) + return + if(!usr.canUseTopic(src)) + usr << browse(null, "window=blueprints") + return + if(href_list["create_area"]) + if(get_area_type()==AREA_SPACE) + create_area(usr) + updateUsrDialog() + +//Station blueprints!!! +/obj/item/areaeditor/blueprints + name = "station blueprints" + desc = "Blueprints of the station. There is a \"Classified\" stamp and several coffee stains on it." + icon = 'icons/obj/items.dmi' + icon_state = "blueprints" + fluffnotice = "Property of Nanotrasen. For heads of staff only. Store in high-secure storage." + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF + var/list/image/showing = list() + var/client/viewing + var/legend = FALSE //Viewing the wire legend + + +/obj/item/areaeditor/blueprints/Destroy() + clear_viewer() + return ..() + + +/obj/item/areaeditor/blueprints/attack_self(mob/user) + . = ..() + if(!legend) + var/area/A = get_area() + if(get_area_type() == AREA_STATION) + . += "

            According to \the [src], you are now in \"[html_encode(A.name)]\".

            " + . += "

            You may make an amendment to the drawing.

            " + . += "

            View wire colour legend

            " + if(!viewing) + . += "

            View structural data

            " + else + . += "

            Refresh structural data

            " + . += "

            Hide structural data

            " + else + if(legend == TRUE) + . += "<< Back" + . += view_wire_devices(user); + else + //legend is a wireset + . += "<< Back" + . += view_wire_set(user, legend) + var/datum/browser/popup = new(user, "blueprints", "[src]", 700, 500) + popup.set_content(.) + popup.open() + onclose(user, "blueprints") + + +/obj/item/areaeditor/blueprints/Topic(href, href_list) + ..() + if(href_list["edit_area"]) + if(get_area_type()!=AREA_STATION) + return + edit_area() + if(href_list["exit_legend"]) + legend = FALSE; + if(href_list["view_legend"]) + legend = TRUE; + if(href_list["view_wireset"]) + legend = href_list["view_wireset"]; + if(href_list["view_blueprints"]) + set_viewer(usr, "You flip the blueprints over to view the complex information diagram.") + if(href_list["hide_blueprints"]) + clear_viewer(usr,"You flip the blueprints over to view the simple information diagram.") + if(href_list["refresh"]) + clear_viewer(usr) + set_viewer(usr) + + attack_self(usr) //this is not the proper way, but neither of the old update procs work! it's too ancient and I'm tired shush. + +/obj/item/areaeditor/blueprints/proc/get_images(turf/T, viewsize) + . = list() + for(var/tt in RANGE_TURFS(viewsize, T)) + var/turf/TT = tt + if(TT.blueprint_data) + . += TT.blueprint_data + +/obj/item/areaeditor/blueprints/proc/set_viewer(mob/user, message = "") + if(user && user.client) + if(viewing) + clear_viewer() + viewing = user.client + showing = get_images(get_turf(user), viewing.view) + viewing.images |= showing + if(message) + user << message + +/obj/item/areaeditor/blueprints/proc/clear_viewer(mob/user, message = "") + if(viewing) + viewing.images -= showing + viewing = null + showing.Cut() + if(message) + user << message + +/obj/item/areaeditor/blueprints/dropped(mob/user) + ..() + clear_viewer() + legend = FALSE + + +/obj/item/areaeditor/proc/get_area() + var/turf/T = get_turf(usr) + var/area/A = T.loc + A = A.master + return A + + +/obj/item/areaeditor/proc/get_area_type(area/A = get_area()) + if(A.outdoors) + return AREA_SPACE + var/list/SPECIALS = list( + /area/shuttle, + /area/admin, + /area/arrival, + /area/centcom, + /area/asteroid, + /area/tdome, + /area/wizard_station, + /area/prison + ) + for (var/type in SPECIALS) + if ( istype(A,type) ) + return AREA_SPECIAL + return AREA_STATION + +/obj/item/areaeditor/blueprints/proc/view_wire_devices(mob/user) + var/message = "
            You examine the wire legend.
            " + for(var/wireset in wire_color_directory) + message += "
            [wire_name_directory[wireset]]" + message += "

            " + return message + +/obj/item/areaeditor/blueprints/proc/view_wire_set(mob/user, wireset) + //for some reason you can't use wireset directly as a derefencer so this is the next best :/ + for(var/device in wire_color_directory) + if("[device]" == wireset) //I know... don't change it... + var/message = "

            [wire_name_directory[device]]:" + for(var/Col in wire_color_directory[device]) + var/wire_name = wire_color_directory[device][Col] + if(!findtext(wire_name, WIRE_DUD_PREFIX)) //don't show duds + message += "

            [Col]: [wire_name]

            " + message += "

            " + return message + return "" + +/proc/create_area(mob/living/creator) + var/res = detect_room(get_turf(creator)) + if(!istype(res,/list)) + switch(res) + if(ROOM_ERR_SPACE) + creator << "The new area must be completely airtight." + return + if(ROOM_ERR_TOOLARGE) + creator << "The new area is too large." + return + else + creator << "Error! Please notify administration." + return + + var/list/turfs = res + var/str = trim(stripped_input(creator,"New area name:", "Blueprint Editing", "", MAX_NAME_LEN)) + if(!str || !length(str)) //cancel + return + if(length(str) > 50) + creator << "The given name is too long. The area remains undefined." + return + var/area/old = get_area(get_turf(creator)) + var/old_gravity = old.has_gravity + + var/area/A + for(var/key in turfs) + if(key == str) + A = turfs[key] + if(turfs[key]) + turfs -= turfs[key] + turfs -= key + if(A) + A.contents += turfs + A.SetDynamicLighting() + else + A = new + A.setup(str) + A.contents += turfs + A.SetDynamicLighting() + A.has_gravity = old_gravity + creator << "You have created a new area, named [str]. It is now weather proof, and constructing an APC will allow it to be powered." + return 1 + + +/obj/item/areaeditor/proc/edit_area() + var/area/A = get_area() + var/prevname = "[A.name]" + var/str = trim(stripped_input(usr,"New area name:", "Area Creation", "", MAX_NAME_LEN)) + if(!str || !length(str) || str==prevname) //cancel + return + if(length(str) > 50) + usr << "The given name is too long. The area's name is unchanged." + return + set_area_machinery_title(A,str,prevname) + for(var/area/RA in A.related) + RA.name = str + usr << "You rename the '[prevname]' to '[str]'." + interact() + return 1 + + +/obj/item/areaeditor/proc/set_area_machinery_title(area/A,title,oldtitle) + if(!oldtitle) // or replacetext goes to infinite loop + return + for(var/area/RA in A.related) + for(var/obj/machinery/airalarm/M in RA) + M.name = replacetext(M.name,oldtitle,title) + for(var/obj/machinery/power/apc/M in RA) + M.name = replacetext(M.name,oldtitle,title) + for(var/obj/machinery/atmospherics/components/unary/vent_scrubber/M in RA) + M.name = replacetext(M.name,oldtitle,title) + for(var/obj/machinery/atmospherics/components/unary/vent_pump/M in RA) + M.name = replacetext(M.name,oldtitle,title) + for(var/obj/machinery/door/M in RA) + M.name = replacetext(M.name,oldtitle,title) + //TODO: much much more. Unnamed airlocks, cameras, etc. + + +/turf/proc/check_tile_is_border() + return BORDER_NONE + +/turf/open/space/check_tile_is_border() + return BORDER_SPACE + +/turf/closed/check_tile_is_border() + return BORDER_2NDTILE + +/turf/open/check_tile_is_border() + for(var/atom/movable/AM in src) + if(!AM.CanAtmosPass(src)) + return BORDER_2NDTILE + + return BORDER_NONE + +/turf/closed/mineral/check_tile_is_border() + return BORDER_NONE + +/proc/detect_room(turf/first) + var/list/turf/found = new + var/list/turf/pending = list(first) + var/list/border = list() + while(pending.len) + if (found.len+pending.len > 300) + return ROOM_ERR_TOOLARGE + var/turf/T = pending[1] //why byond havent list::pop()? + pending -= T + for (var/dir in cardinal) + var/skip = 0 + for (var/obj/structure/window/W in T) + if(dir == W.dir || (W.dir in list(NORTHEAST,SOUTHEAST,NORTHWEST,SOUTHWEST))) + skip = 1 + break + if (skip) + continue + for(var/obj/machinery/door/window/D in T) + if(dir == D.dir) + skip = 1 + break + if (skip) + continue + + var/turf/NT = get_step(T,dir) + if (!isturf(NT) || (NT in found) || (NT in pending)) + continue + + switch(NT.check_tile_is_border()) + if(BORDER_NONE) + pending+=NT + if(BORDER_BETWEEN) + var/area/A = NT.loc + if(!found[A.name]) + found[A.name] = NT.loc + if(BORDER_2NDTILE) + border[NT] += dir + if(BORDER_SPACE) + return ROOM_ERR_SPACE + found+=T + + for(var/V in border) //lazy but works + var/turf/F = V + for(var/direction in cardinal) + if(direction == border[F]) + continue //don't want to grab turfs from outside the border + var/turf/U = get_step(F, direction) + if((U in border) || (U in found)) + continue + if(U.check_tile_is_border() == BORDER_2NDTILE) + found += U + found |= F + return found + + + +//Blueprint Subtypes + +/obj/item/areaeditor/blueprints/cyborg + name = "station schematics" + desc = "A digital copy of the station blueprints stored in your memory." + icon = 'icons/obj/items.dmi' + icon_state = "blueprints" + fluffnotice = "Intellectual Property of Nanotrasen. For use in engineering cyborgs only. Wipe from memory upon departure from the station." diff --git a/code/game/objects/items/body_egg.dm b/code/game/objects/items/body_egg.dm new file mode 100644 index 0000000..3c27e32 --- /dev/null +++ b/code/game/objects/items/body_egg.dm @@ -0,0 +1,52 @@ +/obj/item/organ/body_egg + name = "body egg" + desc = "All slimy and yuck." + icon_state = "innards" + origin_tech = "biotech=5" + zone = "chest" + slot = "parasite_egg" + +/obj/item/organ/body_egg/on_find(mob/living/finder) + ..() + finder << "You found an unknown alien organism in [owner]'s [zone]!" + +/obj/item/organ/body_egg/New(loc) + if(iscarbon(loc)) + src.Insert(loc) + return ..() + +/obj/item/organ/body_egg/Insert(var/mob/living/carbon/M, special = 0) + ..() + owner.status_flags |= XENO_HOST + START_PROCESSING(SSobj, src) + owner.med_hud_set_status() + addtimer(src, "AddInfectionImages", 0, FALSE, owner) + +/obj/item/organ/body_egg/Remove(var/mob/living/carbon/M, special = 0) + STOP_PROCESSING(SSobj, src) + if(owner) + owner.status_flags &= ~(XENO_HOST) + owner.med_hud_set_status() + addtimer(src, "RemoveInfectionImages", 0, FALSE, owner) + ..() + +/obj/item/organ/body_egg/process() + if(!owner) + return + if(!(src in owner.internal_organs)) + Remove(owner) + return + egg_process() + +/obj/item/organ/body_egg/proc/egg_process() + return + +/obj/item/organ/body_egg/proc/RefreshInfectionImage() + RemoveInfectionImages() + AddInfectionImages() + +/obj/item/organ/body_egg/proc/AddInfectionImages() + return + +/obj/item/organ/body_egg/proc/RemoveInfectionImages() + return diff --git a/code/game/objects/items/bodybag.dm b/code/game/objects/items/bodybag.dm new file mode 100644 index 0000000..c7ff51a --- /dev/null +++ b/code/game/objects/items/bodybag.dm @@ -0,0 +1,116 @@ +//Also contains /obj/structure/closet/body_bag because I doubt anyone would think to look for bodybags in /object/structures + +/obj/item/bodybag + name = "body bag" + desc = "A folded bag designed for the storage and transportation of cadavers." + icon = 'icons/obj/bodybag.dmi' + icon_state = "bodybag_folded" + var/unfoldedbag_path = /obj/structure/closet/body_bag + w_class = 2 + +/obj/item/bodybag/attack_self(mob/user) + deploy_bodybag(user, user.loc) + +/obj/item/bodybag/afterattack(atom/target, mob/user, proximity) + if(proximity) + if(isopenturf(target)) + deploy_bodybag(user, target) + +/obj/item/bodybag/proc/deploy_bodybag(mob/user, atom/location) + var/obj/structure/closet/body_bag/R = new unfoldedbag_path(location) + R.open(user) + R.add_fingerprint(user) + qdel(src) + +/obj/item/weapon/storage/box/bodybags + name = "body bags" + desc = "The label indicates that it contains body bags." + icon_state = "bodybags" + +/obj/item/weapon/storage/box/bodybags/New() + ..() + for(var/i in 1 to 7) + new /obj/item/bodybag(src) + + +/obj/structure/closet/body_bag + name = "body bag" + desc = "A plastic bag designed for the storage and transportation of cadavers." + icon = 'icons/obj/bodybag.dmi' + icon_state = "bodybag" + var/foldedbag_path = /obj/item/bodybag + var/tagged = 0 // so closet code knows to put the tag overlay back + density = 0 + mob_storage_capacity = 2 + open_sound = 'sound/items/zip.ogg' + close_sound = 'sound/items/zip.ogg' + integrity_failure = 0 + material_drop = /obj/item/stack/sheet/cloth + +/obj/structure/closet/body_bag/attackby(obj/item/I, mob/user, params) + if (istype(I, /obj/item/weapon/pen) || istype(I, /obj/item/toy/crayon)) + var/t = stripped_input(user, "What would you like the label to be?", name, null, 53) + if(user.get_active_held_item() != I) + return + if(!in_range(src, user) && loc != user) + return + if(t) + name = "body bag - [t]" + tagged = 1 + update_icon() + else + name = "body bag" + return + else if(istype(I, /obj/item/weapon/wirecutters)) + user << "You cut the tag off [src]." + name = "body bag" + tagged = 0 + update_icon() + +/obj/structure/closet/body_bag/update_icon() + ..() + if (tagged) + add_overlay("bodybag_label") + +/obj/structure/closet/body_bag/close() + if(..()) + density = 0 + return 1 + return 0 + + +/obj/structure/closet/body_bag/MouseDrop(over_object, src_location, over_location) + ..() + if(over_object == usr && Adjacent(usr) && (in_range(src, usr) || usr.contents.Find(src))) + if(!ishuman(usr)) + return 0 + if(opened) + return 0 + if(contents.len) + return 0 + visible_message("[usr] folds up [src].") + var/obj/item/bodybag/B = new foldedbag_path(get_turf(src)) + usr.put_in_hands(B) + qdel(src) + + +// Bluespace bodybag + +/obj/item/bodybag/bluespace + name = "bluespace body bag" + desc = "A folded bluespace body bag designed for the storage and transportation of cadavers." + icon = 'icons/obj/bodybag.dmi' + icon_state = "bluebodybag_folded" + unfoldedbag_path = /obj/structure/closet/body_bag/bluespace + w_class = 2 + origin_tech = "bluespace=4;materials=4;plasmatech=4" + +/obj/structure/closet/body_bag/bluespace + name = "bluespace body bag" + desc = "A bluespace body bag designed for the storage and transportation of cadavers." + icon = 'icons/obj/bodybag.dmi' + icon_state = "bluebodybag" + foldedbag_path = /obj/item/bodybag/bluespace + density = 0 + mob_storage_capacity = 15 + max_mob_size = MOB_SIZE_LARGE diff --git a/code/game/objects/items/candle.dm b/code/game/objects/items/candle.dm new file mode 100644 index 0000000..b5ce4d5 --- /dev/null +++ b/code/game/objects/items/candle.dm @@ -0,0 +1,99 @@ +#define CANDLE_LUMINOSITY 2 +/obj/item/candle + name = "red candle" + desc = "In Greek myth, Prometheus stole fire from the Gods and gave it to \ + humankind. The jewelry he kept for himself." + icon = 'icons/obj/candle.dmi' + icon_state = "candle1" + item_state = "candle1" + w_class = 1 + var/wax = 200 + var/lit = FALSE + var/infinite = FALSE + var/start_lit = FALSE + heat = 1000 + +/obj/item/candle/New() + ..() + if(start_lit) + // No visible message + light(show_message = FALSE) + +/obj/item/candle/update_icon() + var/i + if(wax>150) + i = 1 + else if(wax>80) + i = 2 + else i = 3 + icon_state = "candle[i][lit ? "_lit" : ""]" + + +/obj/item/candle/attackby(obj/item/weapon/W, mob/user, params) + ..() + var/msg = W.ignition_effect(src, user) + if(msg) + light(msg) + +/obj/item/candle/fire_act(exposed_temperature, exposed_volume) + if(!src.lit) + light() //honk + ..() + +/obj/item/candle/proc/light(show_message) + if(!src.lit) + src.lit = TRUE + //src.damtype = "fire" + if(show_message) + usr.visible_message(show_message) + SetLuminosity(CANDLE_LUMINOSITY) + START_PROCESSING(SSobj, src) + update_icon() + + +/obj/item/candle/process() + if(!lit) + return + if(!infinite) + wax-- + if(!wax) + new/obj/item/trash/candle(src.loc) + if(istype(src.loc, /mob)) + var/mob/M = src.loc + M.unEquip(src, 1) //src is being deleted anyway + qdel(src) + update_icon() + open_flame() + +/obj/item/candle/attack_self(mob/user) + if(lit) + user.visible_message( + "[user] snuffs [src].") + lit = FALSE + update_icon() + SetLuminosity(0) + user.AddLuminosity(-CANDLE_LUMINOSITY) + + +/obj/item/candle/pickup(mob/user) + ..() + if(lit) + SetLuminosity(0) + user.AddLuminosity(CANDLE_LUMINOSITY) + + +/obj/item/candle/dropped(mob/user) + ..() + if(lit) + user.AddLuminosity(-CANDLE_LUMINOSITY) + SetLuminosity(CANDLE_LUMINOSITY) + +/obj/item/candle/is_hot() + return lit * heat + + +/obj/item/candle/infinite + infinite = TRUE + start_lit = TRUE + +#undef CANDLE_LUMINOSITY diff --git a/code/game/objects/items/cardboard_cutouts.dm b/code/game/objects/items/cardboard_cutouts.dm new file mode 100644 index 0000000..98ec873 --- /dev/null +++ b/code/game/objects/items/cardboard_cutouts.dm @@ -0,0 +1,177 @@ +//Cardboard cutouts! They're man-shaped and can be colored with a crayon to look like a human in a certain outfit, although it's limited, discolored, and obvious to more than a cursory glance. +/obj/item/cardboard_cutout + name = "cardboard cutout" + desc = "A vaguely humanoid cardboard cutout. It's completely blank." + icon = 'icons/obj/cardboard_cutout.dmi' + icon_state = "cutout_basic" + w_class = 4 + resistance_flags = FLAMMABLE + // Possible restyles for the cutout; + // add an entry in change_appearance() if you add to here + var/list/possible_appearances = list("Assistant", "Clown", "Mime", + "Traitor", "Nuke Op", "Cultist", "Clockwork Cultist", + "Revolutionary", "Wizard", "Shadowling", "Xenomorph", "Swarmer", + "Ash Walker", "Deathsquad Officer", "Ian", "Slaughter Demon", + "Laughter Demon") + var/pushed_over = FALSE //If the cutout is pushed over and has to be righted + var/deceptive = FALSE //If the cutout actually appears as what it portray and not a discolored version + + var/lastattacker = null + +/obj/item/cardboard_cutout/attack_hand(mob/living/user) + if(user.a_intent == "help" || pushed_over) + return ..() + user.visible_message("[user] pushes over [src]!", "You push over [src]!") + playsound(src, 'sound/weapons/Genhit.ogg', 50, 1) + push_over() + +/obj/item/cardboard_cutout/proc/push_over() + name = initial(name) + desc = "[initial(desc)] It's been pushed over." + icon = initial(icon) + icon_state = "cutout_pushed_over" + remove_atom_colour(FIXED_COLOUR_PRIORITY) + alpha = initial(alpha) + pushed_over = TRUE + +/obj/item/cardboard_cutout/attack_self(mob/living/user) + if(!pushed_over) + return + user << "You right [src]." + desc = initial(desc) + icon = initial(icon) + icon_state = initial(icon_state) //This resets a cutout to its blank state - this is intentional to allow for resetting + pushed_over = FALSE + +/obj/item/cardboard_cutout/attackby(obj/item/I, mob/living/user, params) + if(istype(I, /obj/item/toy/crayon)) + change_appearance(I, user) + return + // Why yes, this does closely resemble mob and object attack code. + if(I.flags & NOBLUDGEON) + return + if(!I.force) + playsound(loc, 'sound/weapons/tap.ogg', get_clamped_volume(), 1, -1) + else if(I.hitsound) + playsound(loc, I.hitsound, get_clamped_volume(), 1, -1) + + user.changeNext_move(CLICK_CD_MELEE) + user.do_attack_animation(src) + + if(I.force) + user.visible_message("[user] has hit \ + [src] with [I]!", "You hit [src] \ + with [I]!") + + if(prob(I.force)) + push_over() + +/obj/item/cardboard_cutout/bullet_act(obj/item/projectile/P) + visible_message("[src] has been hit by [P]!") + playsound(src, 'sound/weapons/slice.ogg', 50, 1) + if(prob(P.damage)) + push_over() + +/obj/item/cardboard_cutout/proc/change_appearance(obj/item/toy/crayon/crayon, mob/living/user) + if(!crayon || !user) + return + if(pushed_over) + user << "Right [src] first!" + return + if(crayon.check_empty(user)) + return + if(crayon.is_capped) + user << "Take the cap off first!" + return + var/new_appearance = input(user, "Choose a new appearance for [src].", "26th Century Deception") as null|anything in possible_appearances + if(!new_appearance || !crayon || !user.canUseTopic(src)) + return + if(!do_after(user, 10, FALSE, src, TRUE)) + return + user.visible_message("[user] gives [src] a new look.", "Voila! You give [src] a new look.") + crayon.use_charges(1) + crayon.check_empty(user) + alpha = 255 + icon = initial(icon) + if(!deceptive) + add_atom_colour("#FFD7A7", FIXED_COLOUR_PRIORITY) + switch(new_appearance) + if("Assistant") + name = "[pick(first_names_male)] [pick(last_names)]" + desc = "A cardboat cutout of an assistant." + icon_state = "cutout_greytide" + if("Clown") + name = pick(clown_names) + desc = "A cardboard cutout of a clown. You get the feeling that it should be in a corner." + icon_state = "cutout_clown" + if("Mime") + name = pick(mime_names) + desc = "...(A cardboard cutout of a mime.)" + icon_state = "cutout_mime" + if("Traitor") + name = "[pick("Unknown", "Captain")]" + desc = "A cardboard cutout of a traitor." + icon_state = "cutout_traitor" + if("Nuke Op") + name = "[pick("Unknown", "COMMS", "Telecomms", "AI", "stealthy op", "STEALTH", "sneakybeaky", "MEDIC", "Medic")]" + desc = "A cardboard cutout of a nuclear operative." + icon_state = "cutout_fluke" + if("Cultist") + name = "Unknown" + desc = "A cardboard cutout of a cultist." + icon_state = "cutout_cultist" + if("Clockwork Cultist") + name = "[pick(first_names_male)] [pick(last_names)]" + desc = "A cardboard cutout of a servant of Ratvar." + icon_state = "cutout_servant" + if("Revolutionary") + name = "Unknown" + desc = "A cardboard cutout of a revolutionary." + icon_state = "cutout_viva" + if("Wizard") + name = "[pick(wizard_first)], [pick(wizard_second)]" + desc = "A cardboard cutout of a wizard." + icon_state = "cutout_wizard" + if("Shadowling") + name = "Unknown" + desc = "A cardboard cutout of a shadowling." + icon_state = "cutout_shadowling" + if("Xenomorph") + name = "alien hunter ([rand(1, 999)])" + desc = "A cardboard cutout of a xenomorph." + icon_state = "cutout_fukken_xeno" + if(prob(25)) + alpha = 75 //Spooky sneaking! + if("Swarmer") + name = "Swarmer ([rand(1, 999)])" + desc = "A cardboard cutout of a swarmer." + icon_state = "cutout_swarmer" + if("Ash Walker") + name = lizard_name(pick(MALE, FEMALE)) + desc = "A cardboard cutout of an ash walker." + icon_state = "cutout_free_antag" + if("Deathsquad Officer") + name = pick(commando_names) + desc = "A cardboard cutout of a death commando." + icon_state = "cutout_deathsquad" + if("Ian") + name = "Ian" + desc = "A cardboard cutout of the HoP's beloved corgi." + icon_state = "cutout_ian" + if("Slaughter Demon") + name = "slaughter demon" + desc = "A cardboard cutout of a slaughter demon." + icon = 'icons/mob/mob.dmi' + icon_state = "daemon" + if("Laughter Demon") + name = "laughter demon" + desc = "A cardboard cutout of a laughter demon." + icon = 'icons/mob/mob.dmi' + icon_state = "bowmon" + return 1 + +/obj/item/cardboard_cutout/setDir(newdir) + dir = SOUTH + +/obj/item/cardboard_cutout/adaptive //Purchased by Syndicate agents, these cutouts are indistinguishable from normal cutouts but aren't discolored when their appearance is changed + deceptive = TRUE diff --git a/code/game/objects/items/charter.dm b/code/game/objects/items/charter.dm new file mode 100644 index 0000000..4cb8fc0 --- /dev/null +++ b/code/game/objects/items/charter.dm @@ -0,0 +1,96 @@ +/obj/item/station_charter + name = "station charter" + icon = 'icons/obj/wizard.dmi' + icon_state = "scroll2" + desc = "An official document entrusting the governance of the station \ + and surrounding space to the Captain. " + var/used = FALSE + + var/unlimited_uses = FALSE + var/ignores_timeout = FALSE + var/response_timer_id = null + var/approval_time = 600 + + var/static/regex/standard_station_regex + +/obj/item/station_charter/New() + . = ..() + if(!standard_station_regex) + var/prefixes = jointext(station_prefixes, "|") + var/names = jointext(station_names, "|") + var/suffixes = jointext(station_suffixes, "|") + var/numerals = jointext(station_numerals, "|") + var/regexstr = "(([prefixes]) )?(([names]) ?)([suffixes]) ([numerals])" + standard_station_regex = new(regexstr) + +/obj/item/station_charter/Destroy() + if(response_timer_id) + deltimer(response_timer_id) + response_timer_id = null + . = ..() + +/obj/item/station_charter/attack_self(mob/living/user) + if(used) + user << "This charter has already been used to name the station." + return + if(!ignores_timeout && (world.time-round_start_time > CHALLENGE_TIME_LIMIT)) //5 minutes + user << "The crew has already settled into the shift. \ + It probably wouldn't be good to rename the station right now." + return + if(response_timer_id) + user << "You're still waiting for approval from your employers about \ + your proposed name change, it'd be best to wait for now." + return + + var/new_name = stripped_input(user, message="What do you want to name \ + [station_name()]? Keep in mind particularly terrible names may be \ + rejected by your employers, while names using the standard format, \ + will automatically be accepted.", max_length=MAX_CHARTER_LEN) + + if(!new_name) + return + log_game("[key_name(user)] has proposed to name the station as \ + [new_name]") + + if(standard_station_regex.Find(new_name)) + user << "Your name has been automatically approved." + rename_station(new_name, user) + return + + user << "Your name has been sent to your employers for approval." + // Autoapproves after a certain time + response_timer_id = addtimer(src, "rename_station", approval_time, \ + FALSE, new_name, user) + admins << "CUSTOM STATION RENAME:[key_name_admin(user)] (?) proposes to rename the station to [new_name] (will autoapprove in [approval_time / 10] seconds). (BSA) (REJECT) (RPLY)" + +/obj/item/station_charter/proc/reject_proposed(user) + if(!user) + return + if(!response_timer_id) + return + var/turf/T = get_turf(src) + T.visible_message("The proposed changes disappear \ + from [src]; it looks like they've been rejected.") + var/m = "[key_name(user)] has rejected the proposed station name." + + message_admins(m) + log_admin(m) + + deltimer(response_timer_id) + response_timer_id = null + +/obj/item/station_charter/proc/rename_station(designation, mob/user) + if(config && config.server_name) + world.name = "[config.server_name]: [designation]" + else + world.name = designation + station_name = designation + minor_announce("[user.real_name] has designated your station as [station_name()]", "Captain's Charter", 0) + log_game("[key_name(user)] has renamed the station as [station_name()].") + + name = "station charter for [station_name()]" + desc = "An official document entrusting the governance of \ + [station_name()] and surrounding space to Captain [user]." + + if(!unlimited_uses) + used = TRUE diff --git a/code/game/objects/items/control_wand.dm b/code/game/objects/items/control_wand.dm new file mode 100644 index 0000000..9e09c65 --- /dev/null +++ b/code/game/objects/items/control_wand.dm @@ -0,0 +1,104 @@ +#define WAND_OPEN "Open Door" +#define WAND_BOLT "Toggle Bolts" +#define WAND_EMERGENCY "Toggle Emergency Access" + +/obj/item/weapon/door_remote + icon_state = "gangtool-white" + item_state = "electronic" + icon = 'icons/obj/device.dmi' + name = "control wand" + desc = "Remotely controls airlocks." + w_class = 1 + var/mode = WAND_OPEN + var/region_access = 1 //See access.dm + var/obj/item/weapon/card/id/ID + +/obj/item/weapon/door_remote/New() + ..() + ID = new /obj/item/weapon/card/id + ID.access = get_region_accesses(region_access) + +/obj/item/weapon/door_remote/attack_self(mob/user) + switch(mode) + if(WAND_OPEN) + mode = WAND_BOLT + if(WAND_BOLT) + mode = WAND_EMERGENCY + if(WAND_EMERGENCY) + mode = WAND_OPEN + user << "Now in mode: [mode]." + +/obj/item/weapon/door_remote/afterattack(obj/machinery/door/airlock/D, mob/user) + if(!istype(D)) + return + if(!(D.hasPower())) + user << "[D] has no power!" + return + if(!D.requiresID()) + user << "[D]'s ID scan is disabled!" + return + if(D.check_access(ID) && D.canAIControl(user)) + switch(mode) + if(WAND_OPEN) + if(D.density) + D.open() + else + D.close() + if(WAND_BOLT) + if(D.locked) + D.unbolt() + else + D.bolt() + if(WAND_EMERGENCY) + if(D.emergency) + D.emergency = 0 + else + D.emergency = 1 + D.update_icon() + else + user << "[src] does not have access to this door." + +/obj/item/weapon/door_remote/omni + name = "omni door remote" + desc = "This control wand can access any door on the station." + icon_state = "gangtool-yellow" + region_access = 0 + +/obj/item/weapon/door_remote/captain + name = "command door remote" + icon_state = "gangtool-yellow" + region_access = 7 + +/obj/item/weapon/door_remote/chief_engineer + name = "engineering door remote" + icon_state = "gangtool-orange" + region_access = 5 + +/obj/item/weapon/door_remote/research_director + name = "research door remote" + icon_state = "gangtool-purple" + region_access = 4 + +/obj/item/weapon/door_remote/head_of_security + name = "security door remote" + icon_state = "gangtool-red" + region_access = 2 + +/obj/item/weapon/door_remote/quartermaster + name = "supply door remote" + icon_state = "gangtool-green" + region_access = 6 + +/obj/item/weapon/door_remote/chief_medical_officer + name = "medical door remote" + icon_state = "gangtool-blue" + region_access = 3 + +/obj/item/weapon/door_remote/civillian + name = "civillian door remote" + icon_state = "gangtool-white" + region_access = 1 + +#undef WAND_OPEN +#undef WAND_BOLT +#undef WAND_EMERGENCY \ No newline at end of file diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm new file mode 100644 index 0000000..96399e1 --- /dev/null +++ b/code/game/objects/items/crayons.dm @@ -0,0 +1,774 @@ +#define RANDOM_GRAFFITI "Random Graffiti" +#define RANDOM_LETTER "Random Letter" +#define RANDOM_NUMBER "Random Number" +#define RANDOM_ORIENTED "Random Oriented" +#define RANDOM_RUNE "Random Rune" +#define RANDOM_ANY "Random Anything" + +#define PAINT_NORMAL 1 +#define PAINT_LARGE_HORIZONTAL 2 +#define PAINT_LARGE_HORIZONTAL_ICON 'icons/effects/96x32.dmi' + +/* + * Crayons + */ + +/obj/item/toy/crayon + name = "crayon" + desc = "A colourful crayon. Looks tasty. Mmmm..." + icon = 'icons/obj/crayons.dmi' + icon_state = "crayonred" + + var/icon_capped + var/icon_uncapped + var/use_overlays = FALSE + + item_color = "red" + w_class = 1 + attack_verb = list("attacked", "coloured") + var/paint_color = "#FF0000" //RGB + + var/drawtype + var/text_buffer = "" + + var/list/graffiti = list("amyjon","face","matt","revolution","engie","guy","end","dwarf","uboa","body","cyka","arrow","star","poseur tag") + var/list/letters = list("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z") + var/list/numerals = list("0","1","2","3","4","5","6","7","8","9") + var/list/oriented = list("arrow","body") // These turn to face the same way as the drawer + var/list/runes = list("rune1","rune2","rune3","rune4","rune5","rune6") + var/list/randoms = list(RANDOM_ANY, RANDOM_RUNE, RANDOM_ORIENTED, + RANDOM_NUMBER, RANDOM_GRAFFITI, RANDOM_LETTER) + var/list/graffiti_large_h = list("yiffhell", "secborg", "paint") + + var/list/all_drawables + + var/paint_mode = PAINT_NORMAL + + var/charges = 30 //-1 or less for unlimited uses + var/charges_left + var/volume_multiplier = 1 // Increases reagent effect + + var/actually_paints = TRUE + + var/instant = FALSE + var/self_contained = TRUE // If it deletes itself when it is empty + + var/list/validSurfaces = list(/turf/open/floor) + var/gang = FALSE //For marking territory + + var/edible = TRUE // That doesn't mean eating it is a good idea + + var/list/reagent_contents = list("nutriment" = 1) + // If the user can toggle the colour, a la vanilla spraycan + var/can_change_colour = FALSE + + var/has_cap = FALSE + var/is_capped = FALSE + + var/pre_noise = FALSE + var/post_noise = FALSE + +/obj/item/toy/crayon/suicide_act(mob/user) + user.visible_message("[user] is jamming [src] up [user.p_their()] nose and into [user.p_their()] brain. It looks like [user.p_theyre()] trying to commit suicide!") + return (BRUTELOSS|OXYLOSS) + +/obj/item/toy/crayon/New() + ..() + // Makes crayons identifiable in things like grinders + if(name == "crayon") + name = "[item_color] crayon" + + if(config) + if(config.mutant_races == 1) + graffiti |= "antilizard" + graffiti |= "prolizard" + + all_drawables = graffiti + letters + numerals + oriented + runes + graffiti_large_h + drawtype = pick(all_drawables) + + refill() + +/obj/item/toy/crayon/Destroy() + if(reagents) + qdel(reagents) + . = ..() + +/obj/item/toy/crayon/proc/refill() + if(charges == -1) + charges_left = 100 + else + charges_left = charges + + if(!reagents) + create_reagents(charges_left * volume_multiplier) + reagents.clear_reagents() + + var/total_weight = 0 + for(var/key in reagent_contents) + total_weight += reagent_contents[key] + + var/units_per_weight = reagents.maximum_volume / total_weight + for(var/reagent in reagent_contents) + var/weight = reagent_contents[reagent] + var/amount = weight * units_per_weight + reagents.add_reagent(reagent, amount) + +/obj/item/toy/crayon/proc/use_charges(amount) + // Returns number of charges actually used + switch(paint_mode) + if(PAINT_LARGE_HORIZONTAL) + amount *= 3 + + if(charges == -1) + . = amount + refill() + else + . = min(charges_left, amount) + charges_left -= . + +/obj/item/toy/crayon/proc/check_empty(mob/user) + // When eating a crayon, check_empty() can be called twice producing + // two messages unless we check for being deleted first + if(qdeleted(src)) + return TRUE + + . = FALSE + // -1 is unlimited charges + if(charges == -1) + . = FALSE + else if(!charges_left) + user << "There is no more of \the [src.name] \ + left!" + if(self_contained) + qdel(src) + . = TRUE + +/obj/item/toy/crayon/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/ui_state/state = hands_state) + // tgui is a plague upon this codebase + + SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "crayon", name, 600, 600, + master_ui, state) + ui.open() + +/obj/item/toy/crayon/spraycan/AltClick(mob/user) + if(has_cap) + is_capped = !is_capped + user << "The cap on [src] is now \ + [is_capped ? "on" : "off"]." + update_icon() + +/obj/item/toy/crayon/ui_data() + var/list/data = list() + data["drawables"] = list() + var/list/D = data["drawables"] + + var/list/g_items = list() + D += list(list("name" = "Graffiti", "items" = g_items)) + for(var/g in graffiti) + g_items += list(list("item" = g)) + + var/list/glh_items = list() + D += list(list("name" = "Graffiti Large Horizontal", "items" = glh_items)) + for(var/glh in graffiti_large_h) + glh_items += list(list("item" = glh)) + + var/list/L_items = list() + D += list(list("name" = "Letters", "items" = L_items)) + for(var/L in letters) + L_items += list(list("item" = L)) + + var/list/N_items = list() + D += list(list(name = "Numerals", "items" = N_items)) + for(var/N in numerals) + N_items += list(list("item" = N)) + + var/list/O_items = list() + D += list(list(name = "Oriented", "items" = O_items)) + for(var/O in oriented) + O_items += list(list("item" = O)) + + var/list/R_items = list() + D += list(list(name = "Runes", "items" = R_items)) + for(var/R in runes) + R_items += list(list("item" = R)) + + var/list/rand_items = list() + D += list(list(name = "Random", "items" = rand_items)) + for(var/i in randoms) + rand_items += list(list("item" = i)) + + data["selected_stencil"] = drawtype + data["text_buffer"] = text_buffer + + data["has_cap"] = has_cap + data["is_capped"] = is_capped + data["can_change_colour"] = can_change_colour + data["current_colour"] = paint_color + + return data + +/obj/item/toy/crayon/ui_act(action, list/params) + if(..()) + return + switch(action) + if("toggle_cap") + if(has_cap) + is_capped = !is_capped + . = TRUE + if("select_stencil") + var/stencil = params["item"] + if(stencil in all_drawables + randoms) + drawtype = stencil + . = TRUE + if(stencil in graffiti_large_h) + paint_mode = PAINT_LARGE_HORIZONTAL + text_buffer = "" + else + paint_mode = PAINT_NORMAL + if("select_colour") + if(can_change_colour) + paint_color = input(usr,"Choose Color") as color + . = TRUE + if("enter_text") + var/txt = stripped_input(usr,"Choose what to write.", + "Scribbles",default = text_buffer) + text_buffer = crayon_text_strip(txt) + . = TRUE + paint_mode = PAINT_NORMAL + drawtype = "a" + update_icon() + +/obj/item/toy/crayon/proc/crayon_text_strip(text) + var/list/base = string2charlist(lowertext(text)) + var/list/out = list() + for(var/a in base) + if(a in (letters|numerals)) + out += a + return jointext(out,"") + +/obj/item/toy/crayon/afterattack(atom/target, mob/user, proximity) + if(!proximity || !check_allowed_items(target)) + return + + if(check_empty(user)) + return + + if(istype(target, /obj/effect/decal/cleanable)) + target = target.loc + + if(!is_type_in_list(target,validSurfaces)) + return + + var/drawing = drawtype + switch(drawtype) + if(RANDOM_LETTER) + drawing = pick(letters) + if(RANDOM_GRAFFITI) + drawing = pick(graffiti) + if(RANDOM_RUNE) + drawing = pick(runes) + if(RANDOM_ORIENTED) + drawing = pick(oriented) + if(RANDOM_NUMBER) + drawing = pick(numerals) + if(RANDOM_ANY) + drawing = pick(all_drawables) + + var/temp = "rune" + if(drawing in letters) + temp = "letter" + else if(drawing in graffiti) + temp = "graffiti" + else if(drawing in numerals) + temp = "number" + + // If a gang member is using a gang spraycan, it'll behave differently + var/gang_mode = FALSE + if(gang && user.mind && user.mind.gang_datum) + gang_mode = TRUE + + // discontinue if the area isn't valid for tagging because gang "honour" + if(gang_mode && (!can_claim_for_gang(user, target))) + return + + var/graf_rot + if(drawing in oriented) + switch(user.dir) + if(EAST) + graf_rot = 90 + if(SOUTH) + graf_rot = 180 + if(WEST) + graf_rot = 270 + else + graf_rot = 0 + + user << "You start \ + [instant ? "spraying" : "drawing"] a [temp] on the \ + [target.name]..." + + if(pre_noise) + audible_message("You hear spraying.") + playsound(user.loc, 'sound/effects/spray.ogg', 5, 1, 5) + + var/takes_time = !instant + if(gang_mode) + takes_time = TRUE + + var/wait_time = 50 + if(PAINT_LARGE_HORIZONTAL) + wait_time *= 3 + + if(takes_time) + if(!do_after(user, 50, target = target)) + return + + if(length(text_buffer)) + drawing = copytext(text_buffer,1,2) + + + var/list/turf/affected_turfs = list() + + if(actually_paints) + if(gang_mode) + // Double check it wasn't tagged in the meanwhile + if(!can_claim_for_gang(user, target)) + return + tag_for_gang(user, target) + affected_turfs += target + else + switch(paint_mode) + if(PAINT_NORMAL) + new /obj/effect/decal/cleanable/crayon(target, paint_color, drawing, temp, graf_rot) + affected_turfs += target + if(PAINT_LARGE_HORIZONTAL) + var/turf/left = locate(target.x-1,target.y,target.z) + var/turf/right = locate(target.x+1,target.y,target.z) + if(is_type_in_list(left, validSurfaces) && is_type_in_list(right, validSurfaces)) + new /obj/effect/decal/cleanable/crayon(left, paint_color, drawing, temp, graf_rot, PAINT_LARGE_HORIZONTAL_ICON) + affected_turfs += left + affected_turfs += right + affected_turfs += target + else + user << "There isn't enough space to paint!" + return + + user << "You finish \ + [instant ? "spraying" : "drawing"] \the [temp]." + + if(length(text_buffer)) + text_buffer = copytext(text_buffer,2) + + if(post_noise) + audible_message("You hear spraying.") + playsound(user.loc, 'sound/effects/spray.ogg', 5, 1, 5) + + var/cost = 1 + if(paint_mode == PAINT_LARGE_HORIZONTAL) + cost = 5 + . = use_charges(cost) + var/fraction = min(1, . / reagents.maximum_volume) + fraction /= affected_turfs.len + for(var/t in affected_turfs) + reagents.reaction(t, TOUCH, fraction * volume_multiplier) + reagents.trans_to(t, ., volume_multiplier) + check_empty(user) + +/obj/item/toy/crayon/attack(mob/M, mob/user) + if(edible && (M == user)) + user << "You take a bite of the [src.name]. Delicious!" + var/eaten = use_charges(5) + if(check_empty(user)) //Prevents divsion by zero + return + var/fraction = min(eaten / reagents.total_volume, 1) + reagents.reaction(M, INGEST, fraction * volume_multiplier) + reagents.trans_to(M, eaten, volume_multiplier) + // check_empty() is called during afterattack + else + ..() + +/obj/item/toy/crayon/proc/can_claim_for_gang(mob/user, atom/target) + // Check area validity. + // Reject space, player-created areas, and non-station z-levels. + var/area/A = get_area(target) + if(!A || (A.z != ZLEVEL_STATION) || !A.valid_territory) + user << "[A] is unsuitable for \ + tagging." + return FALSE + + var/spraying_over = FALSE + for(var/obj/effect/decal/cleanable/crayon/gang/G in target) + spraying_over = TRUE + + for(var/obj/machinery/power/apc in target) + user << "You can't tag an APC." + return FALSE + + var/occupying_gang = territory_claimed(A, user) + if(occupying_gang && !spraying_over) + user << "[A] has already been tagged \ + by the [occupying_gang] gang! You must get rid of or spray over \ + the old tag first!" + return FALSE + + // If you pass the gaunlet of checks, you're good to proceed + return TRUE + +/obj/item/toy/crayon/proc/territory_claimed(area/territory, mob/user) + for(var/datum/gang/G in ticker.mode.gangs) + if(territory.type in (G.territory|G.territory_new)) + . = G.name + break + +/obj/item/toy/crayon/proc/tag_for_gang(mob/user, atom/target) + //Delete any old markings on this tile, including other gang tags + for(var/obj/effect/decal/cleanable/crayon/old_marking in target) + qdel(old_marking) + + var/gangID = user.mind.gang_datum + var/area/territory = get_area(target) + + new /obj/effect/decal/cleanable/crayon/gang(target,gangID,"graffiti",0) + user << "You tagged [territory] for your gang!" + +/obj/item/toy/crayon/red + icon_state = "crayonred" + paint_color = "#DA0000" + item_color = "red" + reagent_contents = list("nutriment" = 1, "redcrayonpowder" = 1) + +/obj/item/toy/crayon/orange + icon_state = "crayonorange" + paint_color = "#FF9300" + item_color = "orange" + reagent_contents = list("nutriment" = 1, "orangecrayonpowder" = 1) + +/obj/item/toy/crayon/yellow + icon_state = "crayonyellow" + paint_color = "#FFF200" + item_color = "yellow" + reagent_contents = list("nutriment" = 1, "yellowcrayonpowder" = 1) + +/obj/item/toy/crayon/green + icon_state = "crayongreen" + paint_color = "#A8E61D" + item_color = "green" + reagent_contents = list("nutriment" = 1, "greencrayonpowder" = 1) + +/obj/item/toy/crayon/blue + icon_state = "crayonblue" + paint_color = "#00B7EF" + item_color = "blue" + reagent_contents = list("nutriment" = 1, "bluecrayonpowder" = 1) + +/obj/item/toy/crayon/purple + icon_state = "crayonpurple" + paint_color = "#DA00FF" + item_color = "purple" + reagent_contents = list("nutriment" = 1, "purplecrayonpowder" = 1) + +/obj/item/toy/crayon/black + icon_state = "crayonblack" + paint_color = "#1C1C1C" //Not completely black because total black looks bad. So Mostly Black. + item_color = "black" + +/obj/item/toy/crayon/white + icon_state = "crayonwhite" + paint_color = "#FFFFFF" + item_color = "white" + +/obj/item/toy/crayon/mime + icon_state = "crayonmime" + desc = "A very sad-looking crayon." + paint_color = "#FFFFFF" + item_color = "mime" + reagent_contents = list("nutriment" = 1, "invisiblecrayonpowder" = 1) + charges = -1 + +/obj/item/toy/crayon/rainbow + icon_state = "crayonrainbow" + paint_color = "#FFF000" + item_color = "rainbow" + reagent_contents = list("nutriment" = 1, "colorful_reagent" = 1) + drawtype = RANDOM_ANY // just the default starter. + + charges = -1 + +/obj/item/toy/crayon/rainbow/afterattack(atom/target, mob/user, proximity) + paint_color = rgb(rand(0,255), rand(0,255), rand(0,255)) + . = ..() + +/* + * Crayon Box + */ + +/obj/item/weapon/storage/crayons + name = "box of crayons" + desc = "A box of crayons for all your rune drawing needs." + icon = 'icons/obj/crayons.dmi' + icon_state = "crayonbox" + w_class = 2 + storage_slots = 7 + can_hold = list( + /obj/item/toy/crayon + ) + +/obj/item/weapon/storage/crayons/New() + ..() + new /obj/item/toy/crayon/red(src) + new /obj/item/toy/crayon/orange(src) + new /obj/item/toy/crayon/yellow(src) + new /obj/item/toy/crayon/green(src) + new /obj/item/toy/crayon/blue(src) + new /obj/item/toy/crayon/purple(src) + new /obj/item/toy/crayon/black(src) + update_icon() + +/obj/item/weapon/storage/crayons/update_icon() + cut_overlays() + for(var/obj/item/toy/crayon/crayon in contents) + add_overlay(image('icons/obj/crayons.dmi',crayon.item_color)) + +/obj/item/weapon/storage/crayons/attackby(obj/item/W, mob/user, params) + if(istype(W, /obj/item/toy/crayon)) + var/obj/item/toy/crayon/C = W + switch(C.item_color) + if("mime") + usr << "This crayon is too sad to be contained in this box." + return + if("rainbow") + usr << "This crayon is too powerful to be contained in this \ + box." + return + if(istype(W, /obj/item/toy/crayon/spraycan)) + user << "Spraycans are not crayons." + return + return ..() + +//Spraycan stuff + +/obj/item/toy/crayon/spraycan + name = "spray can" + icon_state = "spraycan" + + icon_capped = "spraycan_cap" + icon_uncapped = "spraycan" + use_overlays = TRUE + paint_color = null + + item_state = "spraycan" + desc = "A metallic container containing tasty paint.\n\ + Alt-click to toggle the cap." + + instant = TRUE + edible = FALSE + has_cap = TRUE + is_capped = TRUE + self_contained = FALSE // Don't disappear when they're empty + can_change_colour = TRUE + + validSurfaces = list(/turf/open/floor,/turf/closed/wall) + reagent_contents = list("welding_fuel" = 1, "ethanol" = 1) + +/obj/item/toy/crayon/spraycan/suicide_act(mob/user) + var/mob/living/carbon/human/H = user + if(is_capped || !actually_paints) + user.visible_message("[user] shakes up [src] with a rattle and lifts it to [user.p_their()] mouth, but nothing happens!") + user.say("MEDIOCRE!!") + return SHAME + else + user.visible_message("[user] shakes up [src] with a rattle and lifts it to [user.p_their()] mouth, spraying paint across [user.p_their()] teeth!") + user.say("WITNESS ME!!") + if(pre_noise || post_noise) + playsound(loc, 'sound/effects/spray.ogg', 5, 1, 5) + if(can_change_colour) + paint_color = "#C0C0C0" + update_icon() + if(actually_paints) + H.lip_style = "spray_face" + H.lip_color = paint_color + H.update_body() + var/used = use_charges(10) + var/fraction = min(1, used / reagents.maximum_volume) + reagents.reaction(user, VAPOR, fraction * volume_multiplier) + reagents.trans_to(user, used, volume_multiplier) + + return (OXYLOSS) + +/obj/item/toy/crayon/spraycan/New() + ..() + // If default crayon red colour, pick a more fun spraycan colour + if(!paint_color) + paint_color = pick("#DA0000","#FF9300","#FFF200","#A8E61D","#00B7EF", + "#DA00FF") + refill() + update_icon() + + +/obj/item/toy/crayon/spraycan/examine(mob/user) + . = ..() + if(charges_left) + user << "It has [charges_left] uses left." + else + user << "It is empty." + +/obj/item/toy/crayon/spraycan/afterattack(atom/target, mob/user, proximity) + if(!proximity) + return + + if(is_capped) + user << "Take the cap off first!" + return + + if(check_empty(user)) + return + + if(iscarbon(target)) + if(pre_noise || post_noise) + playsound(user.loc, 'sound/effects/spray.ogg', 5, 1, 5) + + var/mob/living/carbon/C = target + user.visible_message("[user] sprays [src] \ + into the face of [target]!") + target << "[user] sprays [src] into your \ + face!" + + if(C.client) + C.blur_eyes(3) + C.blind_eyes(1) + if(C.get_eye_protection() <= 0) // no eye protection? ARGH IT BURNS. + C.confused = max(C.confused, 3) + C.Weaken(3) + if(ishuman(C) && actually_paints) + var/mob/living/carbon/human/H = C + H.lip_style = "spray_face" + H.lip_color = paint_color + H.update_body() + + // Caution, spray cans contain inflammable substances + . = use_charges(10) + var/fraction = min(1, . / reagents.maximum_volume) + reagents.reaction(C, VAPOR, fraction * volume_multiplier) + + return + + if(istype(target, /obj/structure/window)) + if(actually_paints) + target.add_atom_colour(paint_color, WASHABLE_COLOUR_PRIORITY) + if(color_hex2num(paint_color) < 255) + target.SetOpacity(255) + else + target.SetOpacity(initial(target.opacity)) + . = use_charges(2) + var/fraction = min(1, . / reagents.maximum_volume) + reagents.reaction(target, TOUCH, fraction * volume_multiplier) + reagents.trans_to(target, ., volume_multiplier) + + if(pre_noise || post_noise) + playsound(user.loc, 'sound/effects/spray.ogg', 5, 1, 5) + return + + . = ..() + +/obj/item/toy/crayon/spraycan/update_icon() + icon_state = is_capped ? icon_capped : icon_uncapped + if(use_overlays) + cut_overlays() + var/image/I = image('icons/obj/crayons.dmi', + icon_state = "[is_capped ? "spraycan_cap_colors" : "spraycan_colors"]") + I.color = paint_color + add_overlay(I) + +/obj/item/toy/crayon/spraycan/gang + //desc = "A modified container containing suspicious paint." + charges = 20 + gang = TRUE + + pre_noise = FALSE + post_noise = TRUE + +/obj/item/toy/crayon/spraycan/gang/New(loc, datum/gang/G) + ..() + if(G) + paint_color = G.color_hex + update_icon() + +/obj/item/toy/crayon/spraycan/gang/examine(mob/user) + . = ..() + if((user.mind && user.mind.gang_datum) || isobserver(user)) + user << "This spraycan has \ + been specially modified for tagging territory." + +/obj/item/toy/crayon/spraycan/borg + name = "cyborg spraycan" + desc = "A metallic container containing shiny synthesised paint." + charges = -1 + +/obj/item/toy/crayon/spraycan/borg/afterattack(atom/target,mob/user,proximity) + var/diff = ..() + if(!iscyborg(user)) + user << "How did you get this?" + qdel(src) + return FALSE + + var/mob/living/silicon/robot/borgy = user + + if(!diff) + return + // 25 is our cost per unit of paint, making it cost 25 energy per + // normal tag, 50 per window, and 250 per attack + var/cost = diff * 25 + // Cyborgs shouldn't be able to use modules without a cell. But if they do + // it's free. + if(borgy.cell) + borgy.cell.use(cost) + +/obj/item/toy/crayon/spraycan/hellcan + name = "hellcan" + desc = "This spraycan doesn't seem to be filled with paint..." + icon_state = "deathcan2_cap" + icon_capped = "deathcan2_cap" + icon_uncapped = "deathcan2" + use_overlays = FALSE + + volume_multiplier = 25 + charges = 100 + reagent_contents = list("clf3" = 1) + actually_paints = FALSE + paint_color = "#000000" + +/obj/item/toy/crayon/spraycan/lubecan + name = "slippery spraycan" + desc = "You can barely keep hold of this thing." + icon_state = "clowncan2_cap" + icon_capped = "clowncan2_cap" + icon_uncapped = "clowncan2" + use_overlays = FALSE + + reagent_contents = list("lube" = 1, "banana" = 1) + volume_multiplier = 5 + validSurfaces = list(/turf/open/floor) + +/obj/item/toy/crayon/spraycan/mimecan + name = "silent spraycan" + desc = "Art is best seen, not heard." + icon_state = "mimecan_cap" + icon_capped = "mimecan_cap" + icon_uncapped = "mimecan" + use_overlays = FALSE + + can_change_colour = FALSE + paint_color = "#FFFFFF" //RGB + + pre_noise = FALSE + post_noise = FALSE + reagent_contents = list("nothing" = 1, "mutetoxin" = 1) + +#undef RANDOM_GRAFFITI +#undef RANDOM_LETTER +#undef RANDOM_NUMBER +#undef RANDOM_ORIENTED +#undef RANDOM_RUNE +#undef RANDOM_ANY diff --git a/code/game/objects/items/dehy_carp.dm b/code/game/objects/items/dehy_carp.dm new file mode 100644 index 0000000..70856bc --- /dev/null +++ b/code/game/objects/items/dehy_carp.dm @@ -0,0 +1,54 @@ +/* + * Dehydrated Carp + * Instant carp, just add water + */ + +//Child of carpplushie because this should do everything the toy does and more +/obj/item/toy/carpplushie/dehy_carp + var/mob/owner = null //Carp doesn't attack owner, set when using in hand + var/owned = 0 //Boolean, no owner to begin with + var/mobtype = /mob/living/simple_animal/hostile/carp //So admins can change what mob spawns via var fuckery + +//Attack self +/obj/item/toy/carpplushie/dehy_carp/attack_self(mob/user) + src.add_fingerprint(user) //Anyone can add their fingerprints to it with this + if(!owned) + user << "You pet [src]. You swear it looks up at you." + owner = user + owned = 1 + return ..() + + +/obj/item/toy/carpplushie/dehy_carp/afterattack(obj/O, mob/user,proximity) + if(!proximity) return + if(istype(O,/obj/structure/sink)) + user.drop_item() + loc = get_turf(O) + return Swell() + ..() + +/obj/item/toy/carpplushie/dehy_carp/proc/Swell() + desc = "It's growing!" + visible_message("[src] swells up!") + + //Animation + icon = 'icons/mob/animal.dmi' + flick("carp_swell", src) + //Wait for animation to end + sleep(6) + if(!src || qdeleted(src))//we got toasted while animating + return + //Make space carp + var/mob/living/M = new mobtype(get_turf(src)) + //Make carp non-hostile to user, and their allies + if(owner) + var/list/factions = owner.faction.Copy() + for(var/F in factions) + if(F == "neutral") + factions -= F + M.faction = factions + if (!owner || owner.faction != M.faction) + visible_message("You have a bad feeling about this.") //welcome to the hostile carp enjoy your die + else + visible_message("The newly grown [M.name] looks up at you with friendly eyes.") + qdel(src) diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm new file mode 100644 index 0000000..007dc9f --- /dev/null +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -0,0 +1,1007 @@ + +//The advanced pea-green monochrome lcd of tomorrow. + +var/global/list/obj/item/device/pda/PDAs = list() + + +/obj/item/device/pda + name = "\improper PDA" + desc = "A portable microcomputer by Thinktronic Systems, LTD. Functionality determined by a preprogrammed ROM cartridge." + icon = 'icons/obj/pda.dmi' + icon_state = "pda" + item_state = "electronic" + flags = NOBLUDGEON + w_class = 1 + slot_flags = SLOT_ID | SLOT_BELT + origin_tech = "programming=2" + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 100) + resistance_flags = FIRE_PROOF | ACID_PROOF + + + //Main variables + var/owner = null // String name of owner + var/default_cartridge = 0 // Access level defined by cartridge + var/obj/item/weapon/cartridge/cartridge = null //current cartridge + var/mode = 0 //Controls what menu the PDA will display. 0 is hub; the rest are either built in or based on cartridge. + var/icon_alert = "pda-r" //Icon to be overlayed for message alerts. Taken from the pda icon file. + + //Secondary variables + var/scanmode = 0 //1 is medical scanner, 2 is forensics, 3 is reagent scanner. + var/fon = 0 //Is the flashlight function on? + var/f_lum = 3 //Luminosity for the flashlight function + var/silent = 0 //To beep or not to beep, that is the question + var/toff = 0 //If 1, messenger disabled + var/tnote = null //Current Texts + var/last_text //No text spamming + var/last_noise //Also no honk spamming that's bad too + var/ttone = "beep" //The ringtone! + var/lock_code = "" // Lockcode to unlock uplink + var/honkamt = 0 //How many honks left when infected with honk.exe + var/mimeamt = 0 //How many silence left when infected with mime.exe + var/note = "Congratulations, your station has chosen the Thinktronic 5230 Personal Data Assistant!" //Current note in the notepad function + var/notehtml = "" + var/notescanned = 0 // True if what is in the notekeeper was from a paper. + var/cart = "" //A place to stick cartridge menu information + var/detonate = 1 // Can the PDA be blown up? + var/hidden = 0 // Is the PDA hidden from the PDA list? + var/emped = 0 + + var/obj/item/weapon/card/id/id = null //Making it possible to slot an ID card into the PDA so it can function as both. + var/ownjob = null //related to above + + var/obj/item/device/paicard/pai = null // A slot for a personal AI device + + var/image/photo = null //Scanned photo + + var/list/contained_item = list(/obj/item/weapon/pen, /obj/item/toy/crayon, /obj/item/weapon/lipstick, /obj/item/device/flashlight/pen, /obj/item/clothing/mask/cigarette) + var/obj/item/inserted_item //Used for pen, crayon, and lipstick insertion or removal. Same as above. + +/obj/item/device/pda/pickup(mob/user) + ..() + if(fon) + SetLuminosity(0) + user.AddLuminosity(f_lum) + +/obj/item/device/pda/dropped(mob/user) + ..() + if(fon) + user.AddLuminosity(-f_lum) + SetLuminosity(f_lum) + +/obj/item/device/pda/New() + ..() + if(fon) + if(!isturf(loc)) + loc.AddLuminosity(f_lum) + SetLuminosity(0) + else + SetLuminosity(f_lum) + PDAs += src + if(default_cartridge) + cartridge = new default_cartridge(src) + inserted_item = new /obj/item/weapon/pen(src) + +/obj/item/device/pda/proc/update_label() + name = "PDA-[owner] ([ownjob])" //Name generalisation + +/obj/item/device/pda/GetAccess() + if(id) + return id.GetAccess() + else + return ..() + +/obj/item/device/pda/GetID() + return id + +/obj/item/device/pda/MouseDrop(obj/over_object, src_location, over_location) + var/mob/M = usr + if((!istype(over_object, /obj/screen)) && usr.canUseTopic(src)) + return attack_self(M) + return + +/obj/item/device/pda/attack_self(mob/user) + var/datum/asset/assets = get_asset_datum(/datum/asset/simple/pda) + assets.send(user) + + user.set_machine(src) + + if(hidden_uplink && hidden_uplink.active) + hidden_uplink.interact(user) + return + + var/dat = "Personal Data Assistant" + + dat += " Refresh" + + if ((!isnull(cartridge)) && (mode == 0)) + dat += " | Eject [cartridge]" + if (mode) + dat += " | Return" + + dat += "
            " + + if (!owner) + dat += "Warning: No owner information entered. Please swipe card.

            " + dat += " Retry" + else + switch (mode) + if (0) + dat += "

            PERSONAL DATA ASSISTANT v.1.2

            " + dat += "Owner: [owner], [ownjob]
            " + dat += text("ID: [id ? "[id.registered_name], [id.assignment]" : "----------"]") + dat += text("
            [id ? "Update PDA Info" : ""]

            ") + + dat += "[worldtime2text()]
            " //:[world.time / 100 % 6][world.time / 100 % 10]" + dat += "[time2text(world.realtime, "MMM DD")] [year_integer+540]" + + dat += "

            " + + dat += "

            General Functions

            " + dat += "" + if (cartridge.access_engine) + dat += "

            Engineering Functions

            " + dat += "" + if (cartridge.access_medical) + dat += "

            Medical Functions

            " + dat += "" + if (cartridge.access_security) + dat += "

            Security Functions

            " + dat += "" + if(cartridge.access_quartermaster) + dat += "

            Quartermaster Functions:

            " + dat += "" + dat += "
          " + + dat += "

          Utilities

          " + dat += "" + + if (1) + dat += "

          Notekeeper V2.2

          " + dat += "Edit
          " + if(notescanned) + dat += "(This is a scanned image, editing it may cause some text formatting to change.)
          " + dat += "
          [(!notehtml ? note : notehtml)]" + + if (2) + dat += "

          SpaceMessenger V3.9.6

          " + dat += " Ringer: [silent == 1 ? "Off" : "On"] | " + dat += " Send / Receive: [toff == 1 ? "Off" : "On"] | " + dat += " Set Ringtone | " + dat += " Messages
          " + + if (istype(cartridge, /obj/item/weapon/cartridge/syndicate)) + dat += "[cartridge:shock_charges] detonation charges left.
          " + if (istype(cartridge, /obj/item/weapon/cartridge/clown)) + dat += "[cartridge:honk_charges] viral files left.
          " + if (istype(cartridge, /obj/item/weapon/cartridge/mime)) + dat += "[cartridge:mime_charges] viral files left.
          " + + dat += "

          Detected PDAs

          " + + dat += "
            " + var/count = 0 + + if (!toff) + for (var/obj/item/device/pda/P in sortNames(get_viewable_pdas())) + if (P == src) + continue + dat += "
          • [P]" + if (istype(cartridge, /obj/item/weapon/cartridge/syndicate) && P.detonate) + dat += " (*Detonate*)" + if (istype(cartridge, /obj/item/weapon/cartridge/clown)) + dat += " (*Send Virus*)" + if (istype(cartridge, /obj/item/weapon/cartridge/mime)) + dat += " (*Send Virus*)" + dat += "
          • " + count++ + dat += "
          " + if (count == 0) + dat += "None detected.
          " + else if(cartridge && cartridge.spam_enabled) + dat += "Send To All" + + if(21) + dat += "

          SpaceMessenger V3.9.6

          " + dat += " Clear Messages" + + dat += "

          Messages

          " + + dat += tnote + dat += "
          " + + if (3) + dat += "

          Atmospheric Readings

          " + + var/turf/T = user.loc + if (isnull(T)) + dat += "Unable to obtain a reading.
          " + else + var/datum/gas_mixture/environment = T.return_air() + var/list/env_gases = environment.gases + + var/pressure = environment.return_pressure() + var/total_moles = environment.total_moles() + + dat += "Air Pressure: [round(pressure,0.1)] kPa
          " + + if (total_moles) + for(var/id in env_gases) + var/gas_level = env_gases[id][MOLES]/total_moles + if(gas_level > 0) + dat += "[env_gases[id][GAS_META][META_GAS_NAME]]: [round(gas_level*100, 0.01)]%
          " + + dat += "Temperature: [round(environment.temperature-T0C)]°C
          " + dat += "
          " + else//Else it links to the cart menu proc. Although, it really uses menu hub 4--menu 4 doesn't really exist as it simply redirects to hub. + dat += cart + + dat += "" + user << browse(dat, "window=pda;size=400x450;border=1;can_resize=1;can_minimize=0") + onclose(user, "pda", src) + +/obj/item/device/pda/Topic(href, href_list) + ..() + var/mob/living/U = usr + //Looking for master was kind of pointless since PDAs don't appear to have one. + + if(usr.canUseTopic(src) && !href_list["close"]) + add_fingerprint(U) + U.set_machine(src) + + switch(href_list["choice"]) + +//BASIC FUNCTIONS=================================== + + if("Refresh")//Refresh, goes to the end of the proc. + if("Return")//Return + if(mode<=9) + mode = 0 + else + mode = round(mode/10) + if(mode==4 || mode == 5)//Fix for cartridges. Redirects to hub. + mode = 0 + else if(mode >= 40 && mode <= 59)//Fix for cartridges. Redirects to refresh the menu. + cartridge.mode = mode + cartridge.unlock() + if ("Authenticate")//Checks for ID + id_check(U, 1) + if("UpdateInfo") + ownjob = id.assignment + update_label() + if("Eject")//Ejects the cart, only done from hub. + if (!isnull(cartridge)) + U.put_in_hands(cartridge) + U << "You remove [cartridge] from [src]." + scanmode = 0 + if (cartridge.radio) + cartridge.radio.hostpda = null + cartridge = null + +//MENU FUNCTIONS=================================== + + if("0")//Hub + mode = 0 + if("1")//Notes + mode = 1 + if("2")//Messenger + mode = 2 + if("21")//Read messeges + mode = 21 + if("3")//Atmos scan + mode = 3 + if("4")//Redirects to hub + mode = 0 + + +//MAIN FUNCTIONS=================================== + + if("Light") + if(fon) + fon = 0 + if(src in U.contents) + U.AddLuminosity(-f_lum) + else + SetLuminosity(0) + else + fon = 1 + if(src in U.contents) + U.AddLuminosity(f_lum) + else + SetLuminosity(f_lum) + if("Medical Scan") + if(scanmode == 1) + scanmode = 0 + else if((!isnull(cartridge)) && (cartridge.access_medical)) + scanmode = 1 + if("Reagent Scan") + if(scanmode == 3) + scanmode = 0 + else if((!isnull(cartridge)) && (cartridge.access_reagent_scanner)) + scanmode = 3 + if("Halogen Counter") + if(scanmode == 4) + scanmode = 0 + else if((!isnull(cartridge)) && (cartridge.access_engine)) + scanmode = 4 + if("Honk") + if ( !(last_noise && world.time < last_noise + 20) ) + playsound(loc, 'sound/items/bikehorn.ogg', 50, 1) + last_noise = world.time + if("Trombone") + if ( !(last_noise && world.time < last_noise + 20) ) + playsound(loc, 'sound/misc/sadtrombone.ogg', 50, 1) + last_noise = world.time + if("Gas Scan") + if(scanmode == 5) + scanmode = 0 + else if((!isnull(cartridge)) && (cartridge.access_atmos)) + scanmode = 5 + if("Drone Phone") + var/area/A = get_area(U) + var/alert_s = input(U,"Alert severity level","Ping Drones",null) as null|anything in list("Low","Medium","High","Critical") + if(A && alert_s) + var/msg = "NON-DRONE PING: [U.name]: [alert_s] priority alert in [A.name]!" + _alert_drones(msg, 1) + U << msg + + +//NOTEKEEPER FUNCTIONS=================================== + + if ("Edit") + var/n = stripped_multiline_input(U, "Please enter message", name, note) + if (in_range(src, U) && loc == U) + if (mode == 1 && n) + note = n + notehtml = parsepencode(n, U, SIGNFONT) + notescanned = 0 + else + U << browse(null, "window=pda") + return + +//MESSENGER FUNCTIONS=================================== + + if("Toggle Messenger") + toff = !toff + if("Toggle Ringer")//If viewing texts then erase them, if not then toggle silent status + silent = !silent + if("Clear")//Clears messages + tnote = null + if("Ringtone") + var/t = input(U, "Please enter new ringtone", name, ttone) as text + if(in_range(src, U) && loc == U) + if(t) + if(hidden_uplink && (trim(lowertext(t)) == trim(lowertext(lock_code)))) + hidden_uplink.interact(U) + U << "The PDA softly beeps." + U << browse(null, "window=pda") + src.mode = 0 + else + t = copytext(sanitize(t), 1, 20) + ttone = t + else + U << browse(null, "window=pda") + return + if("Message") + var/obj/item/device/pda/P = locate(href_list["target"]) + src.create_message(U, P) + + if("MessageAll") + src.send_to_all(U) + + if("Send Honk")//Honk virus + if(istype(cartridge, /obj/item/weapon/cartridge/clown))//Cartridge checks are kind of unnecessary since everything is done through switch. + var/obj/item/device/pda/P = locate(href_list["target"])//Leaving it alone in case it may do something useful, I guess. + if(!isnull(P)) + if (!P.toff && cartridge:honk_charges > 0) + cartridge:honk_charges-- + U.show_message("Virus sent!", 1) + P.honkamt = (rand(15,20)) + else + U << "PDA not found." + else + U << browse(null, "window=pda") + return + if("Send Silence")//Silent virus + if(istype(cartridge, /obj/item/weapon/cartridge/mime)) + var/obj/item/device/pda/P = locate(href_list["target"]) + if(!isnull(P)) + if (!P.toff && cartridge:mime_charges > 0) + cartridge:mime_charges-- + U.show_message("Virus sent!", 1) + P.silent = 1 + P.ttone = "silence" + else + U << "PDA not found." + else + U << browse(null, "window=pda") + return + +//SYNDICATE FUNCTIONS=================================== + + if("Toggle Door") + if(cartridge && cartridge.access_remote_door) + for(var/obj/machinery/door/poddoor/M in machines) + if(M.id == cartridge.remote_door_id) + if(M.density) + M.open() + else + M.close() + + + if("Detonate")//Detonate PDA + if(istype(cartridge, /obj/item/weapon/cartridge/syndicate)) + var/obj/item/device/pda/P = locate(href_list["target"]) + if(!isnull(P)) + if (!P.toff && cartridge:shock_charges > 0) + cartridge:shock_charges-- + + var/difficulty = 0 + + if(P.cartridge) + difficulty += P.cartridge.access_medical + difficulty += P.cartridge.access_security + difficulty += P.cartridge.access_engine + difficulty += P.cartridge.access_clown + difficulty += P.cartridge.access_janitor + difficulty += P.cartridge.access_manifest * 2 + else + difficulty += 2 + + if(prob(difficulty * 15) || (P.hidden_uplink)) + U.show_message("An error flashes on your [src].", 1) + else + U.show_message("Success!", 1) + P.explode() + else + U << "PDA not found." + else + U.unset_machine() + U << browse(null, "window=pda") + return + +//pAI FUNCTIONS=================================== + if("pai") + switch(href_list["option"]) + if("1") // Configure pAI device + pai.attack_self(U) + if("2") // Eject pAI device + var/turf/T = get_turf(src.loc) + if(T) + pai.loc = T + +//LINK FUNCTIONS=================================== + + else//Cartridge menu linking + mode = text2num(href_list["choice"]) + if(cartridge) + cartridge.mode = mode + cartridge.unlock() + else//If not in range, can't interact or not using the pda. + U.unset_machine() + U << browse(null, "window=pda") + return + +//EXTRA FUNCTIONS=================================== + + if (mode == 2||mode == 21)//To clear message overlays. + cut_overlays() + + if ((honkamt > 0) && (prob(60)))//For clown virus. + honkamt-- + playsound(loc, 'sound/items/bikehorn.ogg', 30, 1) + + if(U.machine == src && href_list["skiprefresh"]!="1")//Final safety. + attack_self(U)//It auto-closes the menu prior if the user is not in range and so on. + else + U.unset_machine() + U << browse(null, "window=pda") + return + +/obj/item/device/pda/proc/remove_id() + if (id) + if (ismob(loc)) + var/mob/M = loc + M.put_in_hands(id) + usr << "You remove the ID from the [name]." + else + id.loc = get_turf(src) + id = null + +/obj/item/device/pda/proc/msg_input(mob/living/U = usr) + var/t = stripped_input(U, "Please enter message", name, null, MAX_MESSAGE_LEN) + if (!t || toff) + return + if (!in_range(src, U) && loc != U) + return + if(!U.canUseTopic(src)) + return + if(emped) + t = Gibberish(t, 100) + return t + +/obj/item/device/pda/proc/send_message(mob/living/user = usr,list/obj/item/device/pda/targets) + var/message = msg_input(user) + + if(!message || !targets.len) + return + + if(last_text && world.time < last_text + 5) + return + + var/multiple = targets.len > 1 + + var/datum/data_pda_msg/last_sucessful_msg + for(var/obj/item/device/pda/P in targets) + if(P == src) + continue + var/obj/machinery/message_server/MS = null + MS = can_send(P) + if(MS) + var/datum/data_pda_msg/msg = MS.send_pda_message("[P.owner]","[owner]","[message]",photo) + if(msg) + last_sucessful_msg = msg + if(!multiple) + show_to_sender(msg) + P.show_recieved_message(msg,src) + if(!multiple) + show_to_ghosts(user,msg) + log_pda("[user] (PDA: [src.name]) sent \"[message]\" to [P.name]") + else + if(!multiple) + user << "ERROR: Server isn't responding." + return + photo = null + + if(multiple) + show_to_sender(last_sucessful_msg,1) + show_to_ghosts(user,last_sucessful_msg,1) + log_pda("[user] (PDA: [src.name]) sent \"[message]\" to Everyone") + +/obj/item/device/pda/proc/show_to_sender(datum/data_pda_msg/msg,multiple = 0) + tnote += "→ To [multiple ? "Everyone" : msg.recipient]:
          [msg.message][msg.get_photo_ref()]
          " + +/obj/item/device/pda/proc/show_recieved_message(datum/data_pda_msg/msg,obj/item/device/pda/source) + tnote += "← From [source.owner] ([source.ownjob]):
          [msg.message][msg.get_photo_ref()]
          " + + if (!silent) + playsound(loc, 'sound/machines/twobeep.ogg', 50, 1) + audible_message("\icon[src] *[ttone]*", null, 3) + //Search for holder of the PDA. + var/mob/living/L = null + if(loc && isliving(loc)) + L = loc + //Maybe they are a pAI! + else + L = get(src, /mob/living/silicon) + + if(L && L.stat != UNCONSCIOUS) + L << "\icon[src] Message from [source.owner] ([source.ownjob]), \"[msg.message]\"[msg.get_photo_ref()] (Reply)" + + cut_overlays() + add_overlay(image(icon, icon_alert)) + +/obj/item/device/pda/proc/show_to_ghosts(mob/living/user, datum/data_pda_msg/msg,multiple = 0) + for(var/mob/M in player_list) + if(isobserver(M) && M.client && (M.client.prefs.chat_toggles & CHAT_GHOSTPDA)) + var/link = FOLLOW_LINK(M, user) + M << "[link] [msg.sender] PDA Message --> [multiple ? "Everyone" : msg.recipient]: [msg.message][msg.get_photo_ref()]" + +/obj/item/device/pda/proc/can_send(obj/item/device/pda/P) + if(!P || qdeleted(P) || P.toff) + return null + + var/obj/machinery/message_server/useMS = null + if(message_servers) + for (var/obj/machinery/message_server/MS in message_servers) + //PDAs are now dependant on the Message Server. + if(MS.active) + useMS = MS + break + + var/datum/signal/signal = src.telecomms_process() + + if(!P || qdeleted(P) || P.toff) //in case the PDA or mob gets destroyed during telecomms_process() + return null + + var/useTC = 0 + if(signal) + if(signal.data["done"]) + useTC = 1 + var/turf/pos = get_turf(P) + if(pos.z in signal.data["level"]) + useTC = 2 + + if(useTC == 2) + return useMS + else + return null + + +/obj/item/device/pda/proc/send_to_all(mob/living/U = usr) + send_message(U,get_viewable_pdas()) + +/obj/item/device/pda/proc/create_message(mob/living/U = usr, obj/item/device/pda/P) + send_message(U,list(P)) + +/obj/item/device/pda/AltClick() + ..() + + if(issilicon(usr)) + return + + if(usr.canUseTopic(src)) + if(id) + remove_id() + else + usr << "This PDA does not have an ID in it!" + +/obj/item/device/pda/verb/verb_remove_id() + set category = "Object" + set name = "Eject ID" + set src in usr + + if(issilicon(usr)) + return + + if (usr.canUseTopic(src)) + if(id) + remove_id() + else + usr << "This PDA does not have an ID in it!" + +/obj/item/device/pda/verb/verb_remove_pen() + set category = "Object" + set name = "Remove Pen" + set src in usr + + if(issilicon(usr)) + return + + if (usr.canUseTopic(src)) + if(inserted_item) + if(ismob(loc)) + var/mob/M = loc + M.put_in_hands(inserted_item) + else + inserted_item.forceMove(loc) + usr << "You remove \the [inserted_item] from \the [src]." + inserted_item = null + else + usr << "This PDA does not have a pen in it!" +/obj/item/device/pda/proc/id_check(mob/user, choice as num)//To check for IDs; 1 for in-pda use, 2 for out of pda use. + if(choice == 1) + if (id) + remove_id() + else + var/obj/item/I = user.get_active_held_item() + if (istype(I, /obj/item/weapon/card/id)) + if(!user.unEquip(I)) + return 0 + I.loc = src + id = I + else + var/obj/item/weapon/card/I = user.get_active_held_item() + if (istype(I, /obj/item/weapon/card/id) && I:registered_name) + if(!user.unEquip(I)) + return 0 + var/obj/old_id = id + I.loc = src + id = I + user.put_in_hands(old_id) + return 1 + +// access to status display signals +/obj/item/device/pda/attackby(obj/item/C, mob/user, params) + if(istype(C, /obj/item/weapon/cartridge) && !cartridge) + cartridge = C + if(!user.unEquip(C)) + return + cartridge.loc = src + user << "You insert [cartridge] into [src]." + if(cartridge.radio) + cartridge.radio.hostpda = src + + else if(istype(C, /obj/item/weapon/card/id)) + var/obj/item/weapon/card/id/idcard = C + if(!idcard.registered_name) + user << "\The [src] rejects the ID!" + return + if(!owner) + owner = idcard.registered_name + ownjob = idcard.assignment + update_label() + user << "Card scanned." + else + //Basic safety check. If either both objects are held by user or PDA is on ground and card is in hand. + if(((src in user.contents) || (isturf(loc) && in_range(src, user))) && (C in user.contents)) + if(!id_check(user, 2)) + return + user << "You put the ID into \the [src]'s slot." + updateSelfDialog()//Update self dialog on success. + return //Return in case of failed check or when successful. + updateSelfDialog()//For the non-input related code. + else if(istype(C, /obj/item/device/paicard) && !src.pai) + if(!user.unEquip(C)) + return + C.loc = src + pai = C + user << "You slot \the [C] into [src]." + updateUsrDialog() + else if(is_type_in_list(C, contained_item)) //Checks if there is a pen + if(inserted_item) + user << "There is already \a [inserted_item] in \the [src]!" + else + if(!user.unEquip(C)) + return + C.forceMove(src) + user << "You slide \the [C] into \the [src]." + inserted_item = C + else if(istype(C, /obj/item/weapon/photo)) + var/obj/item/weapon/photo/P = C + photo = P.img + user << "You scan \the [C]." + else if(hidden_uplink && hidden_uplink.active) + hidden_uplink.attackby(C, user, params) + else + return ..() + +/obj/item/device/pda/attack(mob/living/carbon/C, mob/living/user) + if(istype(C)) + switch(scanmode) + + if(1) + C.visible_message("[user] has analyzed [C]'s vitals!") + healthscan(user, C, 1) + add_fingerprint(user) + + if(2) + // Unused + + if(4) + C.visible_message("[user] has analyzed [C]'s radiation levels!") + + user.show_message("Analyzing Results for [C]:") + if(C.radiation) + user.show_message("\green Radiation Level: \black [C.radiation]") + else + user.show_message("No radiation detected.") + +/obj/item/device/pda/afterattack(atom/A as mob|obj|turf|area, mob/user, proximity) + if(!proximity) return + switch(scanmode) + + if(3) + if(!isnull(A.reagents)) + if(A.reagents.reagent_list.len > 0) + var/reagents_length = A.reagents.reagent_list.len + user << "[reagents_length] chemical agent[reagents_length > 1 ? "s" : ""] found." + for (var/re in A.reagents.reagent_list) + user << "\t [re]" + else + user << "No active chemical agents found in [A]." + else + user << "No significant chemical agents found in [A]." + + if(5) + if (istype(A, /obj/item/weapon/tank)) + var/obj/item/weapon/tank/T = A + atmosanalyzer_scan(T.air_contents, user, T) + else if (istype(A, /obj/machinery/portable_atmospherics)) + var/obj/machinery/portable_atmospherics/PA = A + atmosanalyzer_scan(PA.air_contents, user, PA) + else if (istype(A, /obj/machinery/atmospherics/pipe)) + var/obj/machinery/atmospherics/pipe/P = A + atmosanalyzer_scan(P.parent.air, user, P) + else if (istype(A, /obj/machinery/power/rad_collector)) + var/obj/machinery/power/rad_collector/RC = A + if(RC.loaded_tank) + atmosanalyzer_scan(RC.loaded_tank.air_contents, user, RC) + else if (istype(A, /obj/item/weapon/flamethrower)) + var/obj/item/weapon/flamethrower/F = A + if(F.ptank) + atmosanalyzer_scan(F.ptank.air_contents, user, F) + + if (!scanmode && istype(A, /obj/item/weapon/paper) && owner) + var/obj/item/weapon/paper/PP = A + if (!PP.info) + user << "Unable to scan! Paper is blank." + return + notehtml = PP.info + note = replacetext(notehtml, "
          ", "\[br\]") + note = replacetext(note, "
        • ", "\[*\]") + note = replacetext(note, "
            ", "\[list\]") + note = replacetext(note, "
          ", "\[/list\]") + note = html_encode(note) + notescanned = 1 + user << "Paper scanned. Saved to PDA's notekeeper." //concept of scanning paper copyright brainoblivion 2009 + + +/obj/item/device/pda/proc/explode() //This needs tuning. + if(!detonate) return + var/turf/T = get_turf(src) + + if (ismob(loc)) + var/mob/M = loc + M.show_message("Your [src] explodes!", 1) + else + visible_message("[src] explodes!", "You hear a loud *pop*!") + + if(T) + T.hotspot_expose(700,125) + if(istype(cartridge, /obj/item/weapon/cartridge/syndicate)) + explosion(T, -1, 1, 3, 4) + else + explosion(T, -1, -1, 2, 3) + qdel(src) + return + +/obj/item/device/pda/Destroy() + PDAs -= src + if(inserted_item) + qdel(inserted_item) + inserted_item = null + return ..() + +//AI verb and proc for sending PDA messages. + +/mob/living/silicon/ai/proc/cmd_send_pdamesg(mob/user) + var/list/names = list() + var/list/plist = list() + var/list/namecounts = list() + + if(user.stat == 2) + return //won't work if dead + + if(src.aiPDA.toff) + user << "Turn on your receiver in order to send messages." + return + + for (var/obj/item/device/pda/P in get_viewable_pdas()) + if (P == src) + continue + else if (P == src.aiPDA) + continue + + var/name = P.owner + if (name in names) + namecounts[name]++ + name = text("[name] ([namecounts[name]])") + else + names.Add(name) + namecounts[name] = 1 + + plist[text("[name]")] = P + + var/c = input(user, "Please select a PDA") as null|anything in sortList(plist) + + if (!c) + return + + var/selected = plist[c] + + if(aicamera.aipictures.len>0) + var/add_photo = input(user,"Do you want to attach a photo?","Photo","No") as null|anything in list("Yes","No") + if(add_photo=="Yes") + var/datum/picture/Pic = aicamera.selectpicture(aicamera) + src.aiPDA.photo = Pic.fields["img"] + src.aiPDA.create_message(src, selected) + + +/mob/living/silicon/ai/verb/cmd_toggle_pda_receiver() + set category = "AI Commands" + set name = "PDA - Toggle Sender/Receiver" + if(usr.stat == 2) + return //won't work if dead + if(!isnull(aiPDA)) + aiPDA.toff = !aiPDA.toff + usr << "PDA sender/receiver toggled [(aiPDA.toff ? "Off" : "On")]!" + else + usr << "You do not have a PDA. You should make an issue report about this." + +/mob/living/silicon/ai/verb/cmd_toggle_pda_silent() + set category = "AI Commands" + set name = "PDA - Toggle Ringer" + if(usr.stat == 2) + return //won't work if dead + if(!isnull(aiPDA)) + //0 + aiPDA.silent = !aiPDA.silent + usr << "PDA ringer toggled [(aiPDA.silent ? "Off" : "On")]!" + else + usr << "You do not have a PDA. You should make an issue report about this." + +/mob/living/silicon/ai/proc/cmd_show_message_log(mob/user) + if(user.stat == 2) + return //won't work if dead + if(!isnull(aiPDA)) + var/HTML = "AI PDA Message Log[aiPDA.tnote]" + user << browse(HTML, "window=log;size=400x444;border=1;can_resize=1;can_close=1;can_minimize=0") + else + user << "You do not have a PDA. You should make an issue report about this." + +//Some spare PDAs in a box +/obj/item/weapon/storage/box/PDAs + name = "spare PDAs" + desc = "A box of spare PDA microcomputers." + icon = 'icons/obj/storage.dmi' + icon_state = "pda" + +/obj/item/weapon/storage/box/PDAs/New() + ..() + new /obj/item/device/pda(src) + new /obj/item/device/pda(src) + new /obj/item/device/pda(src) + new /obj/item/device/pda(src) + new /obj/item/weapon/cartridge/head(src) + + var/newcart = pick( /obj/item/weapon/cartridge/engineering, + /obj/item/weapon/cartridge/security, + /obj/item/weapon/cartridge/medical, + /obj/item/weapon/cartridge/signal/toxins, + /obj/item/weapon/cartridge/quartermaster) + new newcart(src) + +// Pass along the pulse to atoms in contents, largely added so pAIs are vulnerable to EMP +/obj/item/device/pda/emp_act(severity) + for(var/atom/A in src) + A.emp_act(severity) + emped += 1 + spawn(200 * severity) + emped -= 1 + +/proc/get_viewable_pdas() + . = list() + // Returns a list of PDAs which can be viewed from another PDA/message monitor. + for(var/obj/item/device/pda/P in PDAs) + if(!P.owner || P.toff || P.hidden) continue + . += P + return . diff --git a/code/game/objects/items/devices/PDA/PDA_types.dm b/code/game/objects/items/devices/PDA/PDA_types.dm new file mode 100644 index 0000000..b3c9fa4 --- /dev/null +++ b/code/game/objects/items/devices/PDA/PDA_types.dm @@ -0,0 +1,200 @@ +//Clown PDA is slippery. +/obj/item/device/pda/clown + name = "clown PDA" + default_cartridge = /obj/item/weapon/cartridge/clown + icon_state = "pda-clown" + desc = "A portable microcomputer by Thinktronic Systems, LTD. The surface is coated with polytetrafluoroethylene and banana drippings." + ttone = "honk" + +/obj/item/device/pda/clown/Crossed(AM as mob|obj) + if (istype(AM, /mob/living/carbon)) + var/mob/living/carbon/M = AM + if(M.slip(0, 6, src, NO_SLIP_WHEN_WALKING)) + if (ishuman(M) && (M.real_name != src.owner)) + if (istype(src.cartridge, /obj/item/weapon/cartridge/clown)) + var/obj/item/weapon/cartridge/clown/cart = src.cartridge + if(cart.honk_charges < 5) + cart.honk_charges++ + + +// Special AI/pAI PDAs that cannot explode. +/obj/item/device/pda/ai + icon_state = "NONE" + ttone = "data" + fon = 0 + detonate = 0 + +/obj/item/device/pda/ai/attack_self(mob/user) + if ((honkamt > 0) && (prob(60)))//For clown virus. + honkamt-- + playsound(loc, 'sound/items/bikehorn.ogg', 30, 1) + return + +/obj/item/device/pda/ai/pai + ttone = "assist" + + + +/obj/item/device/pda/medical + name = "medical PDA" + default_cartridge = /obj/item/weapon/cartridge/medical + icon_state = "pda-medical" + +/obj/item/device/pda/viro + name = "virology PDA" + default_cartridge = /obj/item/weapon/cartridge/medical + icon_state = "pda-virology" + +/obj/item/device/pda/engineering + name = "engineering PDA" + default_cartridge = /obj/item/weapon/cartridge/engineering + icon_state = "pda-engineer" + +/obj/item/device/pda/security + name = "security PDA" + default_cartridge = /obj/item/weapon/cartridge/security + icon_state = "pda-security" + +/obj/item/device/pda/detective + name = "detective PDA" + default_cartridge = /obj/item/weapon/cartridge/detective + icon_state = "pda-detective" + +/obj/item/device/pda/warden + name = "warden PDA" + default_cartridge = /obj/item/weapon/cartridge/security + icon_state = "pda-warden" + +/obj/item/device/pda/janitor + name = "janitor PDA" + default_cartridge = /obj/item/weapon/cartridge/janitor + icon_state = "pda-janitor" + ttone = "slip" + +/obj/item/device/pda/toxins + name = "scientist PDA" + default_cartridge = /obj/item/weapon/cartridge/signal/toxins + icon_state = "pda-science" + ttone = "boom" + +/obj/item/device/pda/mime + name = "mime PDA" + default_cartridge = /obj/item/weapon/cartridge/mime + icon_state = "pda-mime" + silent = 1 + ttone = "silence" + +/obj/item/device/pda/heads + default_cartridge = /obj/item/weapon/cartridge/head + icon_state = "pda-hop" + +/obj/item/device/pda/heads/hop + name = "head of personnel PDA" + default_cartridge = /obj/item/weapon/cartridge/hop + icon_state = "pda-hop" + +/obj/item/device/pda/heads/hos + name = "head of security PDA" + default_cartridge = /obj/item/weapon/cartridge/hos + icon_state = "pda-hos" + +/obj/item/device/pda/heads/ce + name = "chief engineer PDA" + default_cartridge = /obj/item/weapon/cartridge/ce + icon_state = "pda-ce" + +/obj/item/device/pda/heads/cmo + name = "chief medical officer PDA" + default_cartridge = /obj/item/weapon/cartridge/cmo + icon_state = "pda-cmo" + +/obj/item/device/pda/heads/rd + name = "research director PDA" + default_cartridge = /obj/item/weapon/cartridge/rd + icon_state = "pda-rd" + +/obj/item/device/pda/captain + name = "captain PDA" + default_cartridge = /obj/item/weapon/cartridge/captain + icon_state = "pda-captain" + detonate = 0 + +/obj/item/device/pda/cargo + name = "cargo technician PDA" + default_cartridge = /obj/item/weapon/cartridge/quartermaster + icon_state = "pda-cargo" + +/obj/item/device/pda/quartermaster + name = "quartermaster PDA" + default_cartridge = /obj/item/weapon/cartridge/quartermaster + icon_state = "pda-qm" + +/obj/item/device/pda/shaftminer + name = "shaft miner PDA" + icon_state = "pda-miner" + +/obj/item/device/pda/syndicate + default_cartridge = /obj/item/weapon/cartridge/syndicate + icon_state = "pda-syndi" + name = "military PDA" + owner = "John Doe" + hidden = 1 + +/obj/item/device/pda/chaplain + name = "chaplain PDA" + icon_state = "pda-chaplain" + ttone = "holy" + +/obj/item/device/pda/lawyer + name = "lawyer PDA" + default_cartridge = /obj/item/weapon/cartridge/lawyer + icon_state = "pda-lawyer" + ttone = "objection" + +/obj/item/device/pda/botanist + name = "botanist PDA" + //default_cartridge = /obj/item/weapon/cartridge/botanist + icon_state = "pda-hydro" + +/obj/item/device/pda/roboticist + name = "roboticist PDA" + icon_state = "pda-roboticist" + default_cartridge = /obj/item/weapon/cartridge/roboticist + +/obj/item/device/pda/librarian + name = "librarian PDA" + icon_state = "pda-library" + icon_alert = "pda-r-library" + default_cartridge = /obj/item/weapon/cartridge/librarian + desc = "A portable microcomputer by Thinktronic Systems, LTD. This is model is a WGW-11 series e-reader." + note = "Congratulations, your station has chosen the Thinktronic 5290 WGW-11 Series E-reader and Personal Data Assistant!" + silent = 1 //Quiet in the library! + +/obj/item/device/pda/clear + name = "clear PDA" + icon_state = "pda-clear" + desc = "A portable microcomputer by Thinktronic Systems, LTD. This is model is a special edition with a transparent case." + note = "Congratulations, you have chosen the Thinktronic 5230 Personal Data Assistant Deluxe Special Max Turbo Limited Edition!" + +/obj/item/device/pda/cook + name = "cook PDA" + icon_state = "pda-cook" + +/obj/item/device/pda/bar + name = "bartender PDA" + icon_state = "pda-bartender" + +/obj/item/device/pda/atmos + name = "atmospherics PDA" + default_cartridge = /obj/item/weapon/cartridge/atmos + icon_state = "pda-atmos" + +/obj/item/device/pda/chemist + name = "chemist PDA" + default_cartridge = /obj/item/weapon/cartridge/chemistry + icon_state = "pda-chemistry" + +/obj/item/device/pda/geneticist + name = "geneticist PDA" + default_cartridge = /obj/item/weapon/cartridge/medical + icon_state = "pda-genetics" diff --git a/code/game/objects/items/devices/PDA/cart.dm b/code/game/objects/items/devices/PDA/cart.dm new file mode 100644 index 0000000..d697626 --- /dev/null +++ b/code/game/objects/items/devices/PDA/cart.dm @@ -0,0 +1,787 @@ +/obj/item/weapon/cartridge + name = "generic cartridge" + desc = "A data cartridge for portable microcomputers." + icon = 'icons/obj/pda.dmi' + icon_state = "cart" + item_state = "electronic" + w_class = 1 + + var/obj/item/radio/integrated/radio = null + var/access_security = 0 + var/access_engine = 0 + var/access_atmos = 0 + var/access_medical = 0 + var/access_manifest = 0 + var/access_clown = 0 + var/access_mime = 0 + var/access_janitor = 0 +// var/access_flora = 0 + var/access_reagent_scanner = 0 + var/access_newscaster = 0 + var/access_remote_door = 0 //Control some blast doors remotely!! + var/remote_door_id = "" + var/access_status_display = 0 + var/access_quartermaster = 0 + var/access_hydroponics = 0 + var/access_dronephone = 0 + var/bot_access_flags = 0 //Bit flags. Selection: SEC_BOT|MULE_BOT|FLOOR_BOT|CLEAN_BOT|MED_BOT + var/spam_enabled = 0 //Enables "Send to All" Option + + var/mode = null + var/menu + var/datum/data/record/active1 = null //General + var/datum/data/record/active2 = null //Medical + var/datum/data/record/active3 = null //Security + var/obj/machinery/computer/monitor/powmonitor = null // Power Monitor + var/list/powermonitors = list() + var/message1 // used for status_displays + var/message2 + var/list/stored_data = list() + var/current_channel + + var/mob/living/simple_animal/bot/active_bot + var/list/botlist = list() + +/obj/item/weapon/cartridge/engineering + name = "\improper Power-ON cartridge" + icon_state = "cart-e" + access_engine = 1 + access_dronephone = 1 + bot_access_flags = FLOOR_BOT + +/obj/item/weapon/cartridge/atmos + name = "\improper BreatheDeep cartridge" + icon_state = "cart-a" + access_atmos = 1 + access_dronephone = 1 + bot_access_flags = FLOOR_BOT + +/obj/item/weapon/cartridge/medical + name = "\improper Med-U cartridge" + icon_state = "cart-m" + access_medical = 1 + bot_access_flags = MED_BOT + +/obj/item/weapon/cartridge/chemistry + name = "\improper ChemWhiz cartridge" + icon_state = "cart-chem" + access_reagent_scanner = 1 + bot_access_flags = MED_BOT + +/obj/item/weapon/cartridge/security + name = "\improper R.O.B.U.S.T. cartridge" + icon_state = "cart-s" + access_security = 1 + bot_access_flags = SEC_BOT + +/obj/item/weapon/cartridge/detective + name = "\improper D.E.T.E.C.T. cartridge" + icon_state = "cart-s" + access_security = 1 + access_medical = 1 + access_manifest = 1 + bot_access_flags = SEC_BOT + +/obj/item/weapon/cartridge/janitor + name = "\improper CustodiPRO cartridge" + desc = "The ultimate in clean-room design." + icon_state = "cart-j" + access_janitor = 1 + access_dronephone = 1 + bot_access_flags = CLEAN_BOT + +/obj/item/weapon/cartridge/lawyer + name = "\improper P.R.O.V.E. cartridge" + icon_state = "cart-s" + access_security = 1 + spam_enabled = 1 + +/obj/item/weapon/cartridge/clown + name = "\improper Honkworks 5.0 cartridge" + icon_state = "cart-clown" + access_clown = 1 + var/honk_charges = 5 + +/obj/item/weapon/cartridge/mime + name = "\improper Gestur-O 1000 cartridge" + icon_state = "cart-mi" + access_mime = 1 + var/mime_charges = 5 + +/obj/item/weapon/cartridge/librarian + name = "\improper Lib-Tweet cartridge" + icon_state = "cart-s" + access_newscaster = 1 + +/* +/obj/item/weapon/cartridge/botanist + name = "\improper Green Thumb v4.20 cartridge" + icon_state = "cart-b" + access_flora = 1 +*/ + +/obj/item/weapon/cartridge/roboticist + name = "\improper B.O.O.P. Remote Control cartridge" + desc = "Packed with heavy duty triple-bot interlink!" + bot_access_flags = FLOOR_BOT|CLEAN_BOT|MED_BOT + access_dronephone = 1 + +/obj/item/weapon/cartridge/signal + name = "generic signaler cartridge" + desc = "A data cartridge with an integrated radio signaler module." + +/obj/item/weapon/cartridge/signal/toxins + name = "\improper Signal Ace 2 cartridge" + desc = "Complete with integrated radio signaler!" + icon_state = "cart-tox" + access_reagent_scanner = 1 + access_atmos = 1 + +/obj/item/weapon/cartridge/signal/New() + ..() + radio = new /obj/item/radio/integrated/signal(src) + + + +/obj/item/weapon/cartridge/quartermaster + name = "space parts & space vendors cartridge" + desc = "Perfect for the Quartermaster on the go!" + icon_state = "cart-q" + access_quartermaster = 1 + bot_access_flags = MULE_BOT + +/obj/item/weapon/cartridge/head + name = "\improper Easy-Record DELUXE cartridge" + icon_state = "cart-h" + access_manifest = 1 + access_status_display = 1 + +/obj/item/weapon/cartridge/hop + name = "\improper HumanResources9001 cartridge" + icon_state = "cart-h" + access_manifest = 1 + access_status_display = 1 + bot_access_flags = MULE_BOT|CLEAN_BOT + access_janitor = 1 + access_security = 1 + access_newscaster = 1 + access_quartermaster = 1 + access_dronephone = 1 + +/obj/item/weapon/cartridge/hos + name = "\improper R.O.B.U.S.T. DELUXE cartridge" + icon_state = "cart-hos" + access_manifest = 1 + access_status_display = 1 + access_security = 1 + bot_access_flags = SEC_BOT + + +/obj/item/weapon/cartridge/ce + name = "\improper Power-On DELUXE cartridge" + icon_state = "cart-ce" + access_manifest = 1 + access_status_display = 1 + access_engine = 1 + access_atmos = 1 + access_dronephone = 1 + bot_access_flags = FLOOR_BOT + +/obj/item/weapon/cartridge/cmo + name = "\improper Med-U DELUXE cartridge" + icon_state = "cart-cmo" + access_manifest = 1 + access_status_display = 1 + access_reagent_scanner = 1 + access_medical = 1 + bot_access_flags = MED_BOT + +/obj/item/weapon/cartridge/rd + name = "\improper Signal Ace DELUXE cartridge" + icon_state = "cart-rd" + access_manifest = 1 + access_status_display = 1 + access_reagent_scanner = 1 + access_atmos = 1 + access_dronephone = 1 + bot_access_flags = FLOOR_BOT|CLEAN_BOT|MED_BOT + +/obj/item/weapon/cartridge/rd/New() + ..() + radio = new /obj/item/radio/integrated/signal(src) + +/obj/item/weapon/cartridge/captain + name = "\improper Value-PAK cartridge" + desc = "Now with 350% more value!" //Give the Captain...EVERYTHING! (Except Mime and Clown) + icon_state = "cart-c" + access_manifest = 1 + access_engine = 1 + access_security = 1 + access_medical = 1 + access_reagent_scanner = 1 + access_status_display = 1 + access_atmos = 1 + access_newscaster = 1 + access_quartermaster = 1 + access_janitor = 1 + access_dronephone = 1 + bot_access_flags = SEC_BOT|MULE_BOT|FLOOR_BOT|CLEAN_BOT|MED_BOT + spam_enabled = 1 + +/obj/item/weapon/cartridge/captain/New() + ..() + radio = new /obj/item/radio/integrated/signal(src) + +/obj/item/weapon/cartridge/syndicate + name = "\improper Detomatix cartridge" + icon_state = "cart" + access_remote_door = 1 + remote_door_id = "smindicate" //Make sure this matches the syndicate shuttle's shield/door id!! //don't ask about the name, testing. + var/shock_charges = 4 + +/obj/item/weapon/cartridge/proc/unlock() + if (!istype(loc, /obj/item/device/pda)) + return + + generate_menu() + print_to_host(menu) + return + +/obj/item/weapon/cartridge/proc/print_to_host(text) + if (!istype(loc, /obj/item/device/pda)) + return + var/obj/item/device/pda/P = loc + P.cart = text + + for (var/mob/M in viewers(1, loc.loc)) + if (M.client && M.machine == loc) + P.attack_self(M) + + return + +/obj/item/weapon/cartridge/proc/post_status(command, data1, data2) + + var/datum/radio_frequency/frequency = SSradio.return_frequency(1435) + + if(!frequency) return + + var/datum/signal/status_signal = new + status_signal.source = src + status_signal.transmission_method = 1 + status_signal.data["command"] = command + + switch(command) + if("message") + status_signal.data["msg1"] = data1 + status_signal.data["msg2"] = data2 + if("alert") + status_signal.data["picture_state"] = data1 + + frequency.post_signal(src, status_signal) + + +/obj/item/weapon/cartridge/proc/generate_menu(mob/user) + switch(mode) + if(40) //signaller + var/obj/item/radio/integrated/signal/S = radio + menu = "

          Remote Signaling System

          " + + menu += {" +Send Signal
          +Frequency: +- +- +[format_frequency(S.frequency)] ++ ++
          +
          +Code: +- +- +[S.code] ++ ++
          "} + if (41) //crew manifest + + menu = "

          Crew Manifest

          " + menu += "Entries cannot be modified from this terminal.

          " + if(data_core.general) + for (var/datum/data/record/t in sortRecord(data_core.general)) + menu += "[t.fields["name"]] - [t.fields["rank"]]
          " + menu += "
          " + + + if (42) //status displays + menu = "

          Station Status Display Interlink

          " + + menu += "\[ Clear \]
          " + menu += "\[ Shuttle ETA \]
          " + menu += "\[ Message \]" + menu += "
          " + menu += "\[ Alert: None |" + menu += " Red Alert |" + menu += " Lockdown |" + menu += " Biohazard \]
          " + + if (43) + menu = "

          Power Monitors - Please select one


          " + powmonitor = null + powermonitors = list() + var/powercount = 0 + + + + for(var/obj/machinery/computer/monitor/pMon in machines) + if(!(pMon.stat & (NOPOWER|BROKEN)) ) + powercount++ + powermonitors += pMon + + + if(!powercount) + menu += "No connection
          " + else + + menu += "" + var/count = 0 + for(var/obj/machinery/computer/monitor/pMon in powermonitors) + count++ + menu += "[pMon]
          " + + menu += "
          " + + if (433) + menu = "

          Power Monitor


          " + if(!powmonitor) + menu += "No connection
          " + else + var/list/L = list() + for(var/obj/machinery/power/terminal/term in powmonitor.attached.powernet.nodes) + if(istype(term.master, /obj/machinery/power/apc)) + var/obj/machinery/power/apc/A = term.master + L += A + + menu += "
          Total power: [powmonitor.attached.powernet.viewavail] W
          Total load: [num2text(powmonitor.attached.powernet.viewload,10)] W
          " + + menu += "" + + if(L.len > 0) + menu += "Area Eqp./Lgt./Env. Load Cell
          " + + var/list/S = list(" Off","AOff"," On", " AOn") + var/list/chg = list("N","C","F") + + for(var/obj/machinery/power/apc/A in L) + menu += copytext(add_tspace(A.area.name, 30), 1, 30) + menu += " [S[A.equipment+1]] [S[A.lighting+1]] [S[A.environ+1]] [add_lspace(A.lastused_total, 6)] [A.cell ? "[add_lspace(round(A.cell.percent()), 3)]% [chg[A.charging+1]]" : " N/C"]
          " + + menu += "
          " + + if (44) //medical records //This thing only displays a single screen so it's hard to really get the sub-menu stuff working. + menu = "

          Medical Record List

          " + if(data_core.general) + for(var/datum/data/record/R in sortRecord(data_core.general)) + menu += "[R.fields["id"]]: [R.fields["name"]]
          " + menu += "
          " + if(441) + menu = "

          Medical Record

          " + + if(active1 in data_core.general) + menu += "Name: [active1.fields["name"]] ID: [active1.fields["id"]]
          " + menu += "Sex: [active1.fields["sex"]]
          " + menu += "Age: [active1.fields["age"]]
          " + menu += "Rank: [active1.fields["rank"]]
          " + menu += "Fingerprint: [active1.fields["fingerprint"]]
          " + menu += "Physical Status: [active1.fields["p_stat"]]
          " + menu += "Mental Status: [active1.fields["m_stat"]]
          " + else + menu += "Record Lost!
          " + + menu += "
          " + + menu += "

          Medical Data

          " + if(active2 in data_core.medical) + menu += "Blood Type: [active2.fields["blood_type"]]

          " + + menu += "Minor Disabilities: [active2.fields["mi_dis"]]
          " + menu += "Details: [active2.fields["mi_dis_d"]]

          " + + menu += "Major Disabilities: [active2.fields["ma_dis"]]
          " + menu += "Details: [active2.fields["ma_dis_d"]]

          " + + menu += "Allergies: [active2.fields["alg"]]
          " + menu += "Details: [active2.fields["alg_d"]]

          " + + menu += "Current Diseases: [active2.fields["cdi"]]
          " + menu += "Details: [active2.fields["cdi_d"]]

          " + + menu += "Important Notes: [active2.fields["notes"]]
          " + else + menu += "Record Lost!
          " + + menu += "
          " + if (45) //security records + menu = "

          Security Record List

          " + if(data_core.general) + for (var/datum/data/record/R in sortRecord(data_core.general)) + menu += "
          [R.fields["id"]]: [R.fields["name"]]
          " + + menu += "
          " + if(451) + menu = "

          Security Record

          " + + if(active1 in data_core.general) + menu += "Name: [active1.fields["name"]] ID: [active1.fields["id"]]
          " + menu += "Sex: [active1.fields["sex"]]
          " + menu += "Age: [active1.fields["age"]]
          " + menu += "Rank: [active1.fields["rank"]]
          " + menu += "Fingerprint: [active1.fields["fingerprint"]]
          " + menu += "Physical Status: [active1.fields["p_stat"]]
          " + menu += "Mental Status: [active1.fields["m_stat"]]
          " + else + menu += "Record Lost!
          " + + menu += "
          " + + menu += "

          Security Data

          " + if(active3 in data_core.security) + menu += "Criminal Status: [active3.fields["criminal"]]
          " + + menu += text("
          \nMinor Crimes:") + + menu +={" + + + + + +"} + for(var/datum/data/crime/c in active3.fields["mi_crim"]) + menu += "" + menu += "" + menu += "" + menu += "" + menu += "" + menu += "
          CrimeDetailsAuthorTime Added
          [c.crimeName][c.crimeDetails][c.author][c.time]
          " + + menu += text("
          \nMajor Crimes:") + + menu +={" + + + + + +"} + for(var/datum/data/crime/c in active3.fields["ma_crim"]) + menu += "" + menu += "" + menu += "" + menu += "" + menu += "" + menu += "
          CrimeDetailsAuthorTime Added
          [c.crimeName][c.crimeDetails][c.author][c.time]
          " + + menu += "
          \nImportant Notes:
          " + menu += "[active3.fields["notes"]]" + else + menu += "Record Lost!
          " + + menu += "
          " + + if (47) //quartermaster order records + menu = "

          Supply Record Interlink

          " + + menu += "
          Supply shuttle
          " + menu += "Location: " + switch(SSshuttle.supply.mode) + if(SHUTTLE_CALL) + menu += "Moving to " + if(SSshuttle.supply.z != ZLEVEL_STATION) + menu += "station" + else + menu += "centcomm" + menu += " ([SSshuttle.supply.timeLeft(600)] Mins)" + else + menu += "At " + if(SSshuttle.supply.z != ZLEVEL_STATION) + menu += "centcomm" + else + menu += "station" + menu += "
          Current approved orders:
            " + for(var/S in SSshuttle.shoppinglist) + var/datum/supply_order/SO = S + menu += "
          1. #[SO.id] - [SO.pack.name] approved by [SO.orderer] [SO.reason ? "([SO.reason])":""]
          2. " + menu += "
          " + + menu += "Current requests:
            " + for(var/S in SSshuttle.requestlist) + var/datum/supply_order/SO = S + menu += "
          1. #[SO.id] - [SO.pack.name] requested by [SO.orderer]
          2. " + menu += "
          Upgrade NOW to Space Parts & Space Vendors PLUS for full remote order control and inventory management." + + if (49) //janitorial locator + menu = "

          Persistent Custodial Object Locator

          " + + var/turf/cl = get_turf(src) + if (cl) + menu += "Current Orbital Location: \[[cl.x],[cl.y]\]" + + menu += "

          Located Mops:

          " + + var/ldat + for (var/obj/item/weapon/mop/M in world) + var/turf/ml = get_turf(M) + + if(ml) + if (ml.z != cl.z) + continue + var/direction = get_dir(src, M) + ldat += "Mop - \[[ml.x],[ml.y] ([uppertext(dir2text(direction))])\] - [M.reagents.total_volume ? "Wet" : "Dry"]
          " + + if (!ldat) + menu += "None" + else + menu += "[ldat]" + + menu += "

          Located Janitorial Cart:

          " + + ldat = null + for (var/obj/structure/janitorialcart/B in world) + var/turf/bl = get_turf(B) + + if(bl) + if (bl.z != cl.z) + continue + var/direction = get_dir(src, B) + ldat += "Cart - \[[bl.x],[bl.y] ([uppertext(dir2text(direction))])\] - Water level: [B.reagents.total_volume]/100
          " + + if (!ldat) + menu += "None" + else + menu += "[ldat]" + + menu += "

          Located Cleanbots:

          " + + ldat = null + for (var/mob/living/simple_animal/bot/cleanbot/B in living_mob_list) + var/turf/bl = get_turf(B) + + if(bl) + if (bl.z != cl.z) + continue + var/direction = get_dir(src, B) + ldat += "Cleanbot - \[[bl.x],[bl.y] ([uppertext(dir2text(direction))])\] - [B.on ? "Online" : "Offline"]
          " + + if (!ldat) + menu += "None" + else + menu += "[ldat]" + + else + menu += "ERROR: Unable to determine current location." + menu += "

          Refresh GPS Locator" + + if (53) // Newscaster + menu = "

          Newscaster Access

          " + menu += "
          Current Newsfeed: [current_channel ? current_channel : "None"]
          " + var/datum/newscaster/feed_channel/current + for(var/datum/newscaster/feed_channel/chan in news_network.network_channels) + if (chan.channel_name == current_channel) + current = chan + if(!current) + menu += "
          ERROR : NO CHANNEL FOUND
          " + return + var/i = 1 + for(var/datum/newscaster/feed_message/msg in current.messages) + menu +="-[msg.returnBody(-1)]
          \[Story by [msg.returnAuthor(-1)]\]
          " + menu +="[msg.comments.len] comment[msg.comments.len > 1 ? "s" : ""]
          " + if(msg.img) + user << browse_rsc(msg.img, "tmp_photo[i].png") + menu +="
          " + i++ + for(var/datum/newscaster/feed_comment/comment in msg.comments) + menu +="[comment.body]
          [comment.author] [comment.time_stamp]
          " + menu += "
          Post Message" + + if (54) // Beepsky, Medibot, Floorbot, and Cleanbot access + menu = "

          Bots Interlink

          " + bot_control() + +/obj/item/weapon/cartridge/Topic(href, href_list) + ..() + + if (!usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr)) + usr.unset_machine() + usr << browse(null, "window=pda") + return + + var/obj/item/device/pda/pda = loc + + switch(href_list["choice"]) + if("Medical Records") + active1 = find_record("id", href_list["target"], data_core.general) + if(active1) + active2 = find_record("id", href_list["target"], data_core.medical) + pda.mode = 441 + mode = 441 + if(!active2) + active1 = null + + if("Security Records") + active1 = find_record("id", href_list["target"], data_core.general) + if(active1) + active3 = find_record("id", href_list["target"], data_core.security) + pda.mode = 451 + mode = 451 + if(!active3) + active1 = null + + if("Send Signal") + spawn( 0 ) + var/obj/item/radio/integrated/signal/S = radio + S.send_signal("ACTIVATE") + return + + if("Signal Frequency") + var/obj/item/radio/integrated/signal/S = radio + var/new_frequency = sanitize_frequency(S.frequency + text2num(href_list["sfreq"])) + S.set_frequency(new_frequency) + + if("Signal Code") + var/obj/item/radio/integrated/signal/S = radio + S.code += text2num(href_list["scode"]) + S.code = round(S.code) + S.code = min(100, S.code) + S.code = max(1, S.code) + + if("Status") + switch(href_list["statdisp"]) + if("message") + post_status("message", message1, message2) + if("alert") + post_status("alert", href_list["alert"]) + if("setmsg1") + message1 = reject_bad_text(input("Line 1", "Enter Message Text", message1) as text|null, 40) + updateSelfDialog() + if("setmsg2") + message2 = reject_bad_text(input("Line 2", "Enter Message Text", message2) as text|null, 40) + updateSelfDialog() + else + post_status(href_list["statdisp"]) + if("Power Select") + var/pnum = text2num(href_list["target"]) + powmonitor = powermonitors[pnum] + pda.mode = 433 + mode = 433 + + if("Supply Orders") + pda.mode =47 + mode = 47 + + if("Newscaster Access") + mode = 53 + + if("Newscaster Message") + var/pda_owner_name = pda.id ? "[pda.id.registered_name] ([pda.id.assignment])" : "Unknown" + var/message = pda.msg_input() + var/datum/newscaster/feed_channel/current + for(var/datum/newscaster/feed_channel/chan in news_network.network_channels) + if (chan.channel_name == current_channel) + current = chan + if(current.locked && current.author != pda_owner_name) + pda.cart += "
          ERROR : NOT AUTHORIZED [pda.id ? "" : "- ID SLOT EMPTY"]
          " + pda.Topic(null,list("choice"="Refresh")) + return + news_network.SubmitArticle(message,pda.owner,current_channel) + pda.Topic(null,list("choice"=num2text(mode))) + return + + if("Newscaster Switch Channel") + current_channel = pda.msg_input() + pda.Topic(null,list("choice"=num2text(mode))) + return + + //Bot control section! Viciously ripped from radios for being laggy and terrible. + if(href_list["op"]) + switch(href_list["op"]) + + if("control") + active_bot = locate(href_list["bot"]) + + if("botlist") + active_bot = null + if("summon") //Args are in the correct order, they are stated here just as an easy reminder. + active_bot.bot_control(command= "summon", user_turf= get_turf(usr), user_access= pda.GetAccess()) + else //Forward all other bot commands to the bot itself! + active_bot.bot_control(command= href_list["op"], user= usr) + + if(href_list["mule"]) //MULEbots are special snowflakes, and need different args due to how they work. + + active_bot.bot_control(command= href_list["mule"], user= usr, pda= 1) + + generate_menu(usr) + print_to_host(menu) + + + +/obj/item/weapon/cartridge/proc/bot_control() + + + var/mob/living/simple_animal/bot/Bot + +// if(!SC) +// menu = "Interlink Error - Please reinsert cartridge." +// return + if(active_bot) + menu += "[active_bot]
          Status: (refresh)
          " + menu += "Model: [active_bot.model]
          " + menu += "Location: [get_area(active_bot)]
          " + menu += "Mode: [active_bot.get_mode()]" + if(active_bot.allow_pai) + menu += "
          pAI: " + if(active_bot.paicard && active_bot.paicard.pai) + menu += "[active_bot.paicard.pai.name]" + if(active_bot.bot_core.allowed(usr)) + menu += " (eject)" + else + menu += "none" + + //MULEs! + if(active_bot.bot_type == MULE_BOT) + var/mob/living/simple_animal/bot/mulebot/MULE = active_bot + var/atom/Load = MULE.load + menu += "
          Current Load: [ !Load ? "none" : "[Load.name] (unload)" ]
          " + menu += "Destination: [MULE.destination ? MULE.destination : "None"] (set)
          " + menu += "Set ID: [MULE.suffix] Modify
          " + menu += "Power: [MULE.cell ? MULE.cell.percent() : 0]%
          " + menu += "Home: [!MULE.home_destination ? "none" : MULE.home_destination ]
          " + menu += "Delivery Reporting: [MULE.report_delivery ? "(On)": "(Off)"]
          " + menu += "Auto Return Home: [MULE.auto_return ? "(On)": "(Off)"]
          " + menu += "Auto Pickup Crate: [MULE.auto_pickup ? "(On)": "(Off)"]

          " //Hue. + + menu += "\[Stop\] " + menu += "\[Proceed\] " + menu += "\[Return Home\]
          " + + else + menu += "
          \[Stop Patrol\] " //patrolon + menu += "\[Start Patrol\] " //patroloff + menu += "\[Summon Bot\]
          " //summon + menu += "Keep an ID inserted to upload access codes upon summoning." + + menu += "
          Return to bot list" + else + menu += "
          Scan for active bots

          " + var/turf/current_turf = get_turf(src) + var/zlevel = current_turf.z + var/botcount = 0 + for(Bot in living_mob_list) //Git da botz + if(!Bot.on || Bot.z != zlevel || Bot.remote_disabled || !(bot_access_flags & Bot.bot_type)) //Only non-emagged bots on the same Z-level are detected! + continue //Also, the PDA must have access to the bot type. + menu += "[Bot.name] ([Bot.get_mode()])
          " + botcount++ + if(!botcount) //No bots at all? Lame. + menu += "No bots found.
          " + return + + return menu diff --git a/code/game/objects/items/devices/PDA/radio.dm b/code/game/objects/items/devices/PDA/radio.dm new file mode 100644 index 0000000..9b36070 --- /dev/null +++ b/code/game/objects/items/devices/PDA/radio.dm @@ -0,0 +1,70 @@ +/obj/item/radio/integrated + name = "\improper PDA radio module" + desc = "An electronic radio system of nanotrasen origin." + icon = 'icons/obj/module.dmi' + icon_state = "power_mod" + var/obj/item/device/pda/hostpda = null + + var/on = 0 //Are we currently active?? + var/menu_message = "" + +/obj/item/radio/integrated/New() + ..() + if (istype(loc.loc, /obj/item/device/pda)) + hostpda = loc.loc + +/obj/item/radio/integrated/Destroy() + hostpda = null + return ..() + +/* + * Radio Cartridge, essentially a signaler. + */ + + +/obj/item/radio/integrated/signal + var/frequency = 1457 + var/code = 30 + var/last_transmission + var/datum/radio_frequency/radio_connection + +/obj/item/radio/integrated/signal/New() + ..() + if(SSradio) + initialize() + +/obj/item/radio/integrated/signal/Destroy() + if(SSradio) + SSradio.remove_object(src, frequency) + radio_connection = null + return ..() + +/obj/item/radio/integrated/signal/initialize() + if (src.frequency < 1200 || src.frequency > 1600) + src.frequency = sanitize_frequency(src.frequency) + + set_frequency(frequency) + +/obj/item/radio/integrated/signal/proc/set_frequency(new_frequency) + SSradio.remove_object(src, frequency) + frequency = new_frequency + radio_connection = SSradio.add_object(src, frequency) + +/obj/item/radio/integrated/signal/proc/send_signal(message="ACTIVATE") + + if(last_transmission && world.time < (last_transmission + 5)) + return + last_transmission = world.time + + var/time = time2text(world.realtime,"hh:mm:ss") + var/turf/T = get_turf(src) + lastsignalers.Add("[time] : [usr.key] used [src] @ location ([T.x],[T.y],[T.z]) : [format_frequency(frequency)]/[code]") + + var/datum/signal/signal = new + signal.source = src + signal.encryption = code + signal.data["message"] = message + + radio_connection.post_signal(src, signal) + + return \ No newline at end of file diff --git a/code/game/objects/items/devices/aicard.dm b/code/game/objects/items/devices/aicard.dm new file mode 100644 index 0000000..0c83818 --- /dev/null +++ b/code/game/objects/items/devices/aicard.dm @@ -0,0 +1,85 @@ +/obj/item/device/aicard + name = "intelliCard" + desc = "A storage device for AIs. Patent pending." + icon = 'icons/obj/aicards.dmi' + icon_state = "aicard" // aicard-full + item_state = "electronic" + w_class = 2 + slot_flags = SLOT_BELT + flags = NOBLUDGEON + var/flush = FALSE + var/mob/living/silicon/ai/AI + origin_tech = "programming=3;materials=3" + +/obj/item/device/aicard/afterattack(atom/target, mob/user, proximity) + ..() + if(!proximity || !target) + return + if(AI) //AI is on the card, implies user wants to upload it. + target.transfer_ai(AI_TRANS_FROM_CARD, user, AI, src) + add_logs(user, AI, "carded", src) + else //No AI on the card, therefore the user wants to download one. + target.transfer_ai(AI_TRANS_TO_CARD, user, null, src) + update_icon() //Whatever happened, update the card's state (icon, name) to match. + +/obj/item/device/aicard/update_icon() + if(AI) + name = "[initial(name)]- [AI.name]" + if(AI.stat == DEAD) + icon_state = "aicard-404" + else + icon_state = "aicard-full" + if(!AI.control_disabled) + add_overlay(image('icons/obj/aicards.dmi', "aicard-on")) + AI.cancel_camera() + else + name = initial(name) + icon_state = initial(icon_state) + cut_overlays() + +/obj/item/device/aicard/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ + datum/tgui/master_ui = null, datum/ui_state/state = hands_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "intellicard", name, 500, 500, master_ui, state) + ui.open() + +/obj/item/device/aicard/ui_data() + var/list/data = list() + if(AI) + data["name"] = AI.name + data["laws"] = AI.laws.get_law_list(include_zeroth = 1) + data["health"] = (AI.health + 100) / 2 + data["wireless"] = !AI.control_disabled //todo disabled->enabled + data["radio"] = AI.radio_enabled + data["isDead"] = AI.stat == DEAD + data["isBraindead"] = AI.client ? TRUE : FALSE + data["wiping"] = flush + return data + +/obj/item/device/aicard/ui_act(action,params) + if(..()) + return + switch(action) + if("wipe") + var/confirm = alert("Are you sure you want to wipe this card's memory? This cannot be undone once started.", name, "Yes", "No") + if(confirm == "Yes" && !..()) + flush = TRUE + if(AI && AI.loc == src) + AI.suiciding = TRUE + AI << "Your core files are being wiped!" + while(AI.stat != DEAD) + AI.adjustOxyLoss(2) + AI.updatehealth() + sleep(10) + flush = FALSE + . = TRUE + if("wireless") + AI.control_disabled = !AI.control_disabled + AI << "[src]'s wireless port has been [AI.control_disabled ? "disabled" : "enabled"]!" + . = TRUE + if("radio") + AI.radio_enabled = !AI.radio_enabled + AI << "Your Subspace Transceiver has been [AI.radio_enabled ? "enabled" : "disabled"]!" + . = TRUE + update_icon() diff --git a/code/game/objects/items/devices/camera_bug.dm b/code/game/objects/items/devices/camera_bug.dm new file mode 100644 index 0000000..2ff0c87 --- /dev/null +++ b/code/game/objects/items/devices/camera_bug.dm @@ -0,0 +1,296 @@ + +#define BUGMODE_LIST 0 +#define BUGMODE_MONITOR 1 +#define BUGMODE_TRACK 2 + + + +/obj/item/device/camera_bug + name = "camera bug" + desc = "For illicit snooping through the camera network." + icon = 'icons/obj/device.dmi' + icon_state = "camera_bug" + w_class = 1 + item_state = "camera_bug" + throw_speed = 4 + throw_range = 20 + origin_tech = "syndicate=1;engineering=3" + flags = NOBLUDGEON + + var/obj/machinery/camera/current = null + + var/last_net_update = 0 + var/list/bugged_cameras = list() + + var/track_mode = BUGMODE_LIST + var/last_tracked = 0 + var/refresh_interval = 50 + + var/tracked_name = null + var/atom/tracking = null + + var/last_found = null + var/last_seen = null + +/obj/item/device/camera_bug/New() + ..() + START_PROCESSING(SSobj, src) + +/obj/item/device/camera_bug/Destroy() + get_cameras() + for(var/cam_tag in bugged_cameras) + var/obj/machinery/camera/camera = bugged_cameras[cam_tag] + if(camera.bug == src) + camera.bug = null + bugged_cameras = list() + if(tracking) + tracking = null + return ..() + + +/obj/item/device/camera_bug/interact(mob/user = usr) + var/datum/browser/popup = new(user, "camerabug","Camera Bug",nref=src) + popup.set_content(menu(get_cameras())) + popup.open() + +/obj/item/device/camera_bug/attack_self(mob/user) + user.set_machine(src) + interact(user) + +/obj/item/device/camera_bug/check_eye(mob/user) + if ( loc != user || user.incapacitated() || user.eye_blind || !current ) + user.unset_machine() + return 0 + var/turf/T = get_turf(user.loc) + if(T.z != current.z || !current.can_use()) + user << "[src] has lost the signal." + current = null + user.unset_machine() + return 0 + return 1 +/obj/item/device/camera_bug/on_unset_machine(mob/user) + user.reset_perspective(null) + +/obj/item/device/camera_bug/proc/get_cameras() + if( world.time > (last_net_update + 100)) + bugged_cameras = list() + for(var/obj/machinery/camera/camera in cameranet.cameras) + if(camera.stat || !camera.can_use()) + continue + if(length(list("SS13","MINE")&camera.network)) + bugged_cameras[camera.c_tag] = camera + sortList(bugged_cameras) + return bugged_cameras + + +/obj/item/device/camera_bug/proc/menu(list/cameras) + if(!cameras || !cameras.len) + return "No bugged cameras found." + + var/html + switch(track_mode) + if(BUGMODE_LIST) + html = "

          Select a camera:

          \[Cancel camera view\]
          " + for(var/entry in cameras) + var/obj/machinery/camera/C = cameras[entry] + var/functions = "" + if(C.bug == src) + functions = " - \[Monitor\]\[Disable\]" + else + functions = " - \[Monitor\]" + html += "" + + if(BUGMODE_MONITOR) + if(current) + html = "Analyzing Camera '[current.c_tag]' \[Select Camera\]
          " + html += camera_report() + else + track_mode = BUGMODE_LIST + return .(cameras) + if(BUGMODE_TRACK) + if(tracking) + html = "Tracking '[tracked_name]' \[Cancel Tracking\]\[Cancel camera view\]
          " + if(last_found) + var/time_diff = round((world.time - last_seen) / 150) + var/obj/machinery/camera/C = bugged_cameras[last_found] + var/outstring + if(C) + outstring = "[last_found]" + else + outstring = last_found + if(!time_diff) + html += "Last seen near [outstring] (now)
          " + else + // 15 second intervals ~ 1/4 minute + var/m = round(time_diff/4) + var/s = (time_diff - 4*m) * 15 + if(!s) s = "00" + html += "Last seen near [outstring] ([m]:[s] minute\s ago)
          " + if( C && (C.bug == src)) //Checks to see if the camera has a bug + html += "\[Disable\]" + + else + html += "Not yet seen." + else + track_mode = BUGMODE_LIST + return .(cameras) + return html + +/obj/item/device/camera_bug/proc/get_seens() + if(current && current.can_use()) + var/list/seen = current.can_see() + return seen + +/obj/item/device/camera_bug/proc/camera_report() + // this should only be called if current exists + var/dat = "" + var/list/seen = get_seens() + if(seen && seen.len >= 1) + var/list/names = list() + for(var/obj/singularity/S in seen) // god help you if you see more than one + if(S.name in names) + names[S.name]++ + dat += "[S.name] ([names[S.name]])" + else + names[S.name] = 1 + dat += "[S.name]" + var/stage = round(S.current_size / 2)+1 + dat += " (Stage [stage])" + dat += " \[Track\]
          " + + for(var/obj/mecha/M in seen) + if(M.name in names) + names[M.name]++ + dat += "[M.name] ([names[M.name]])" + else + names[M.name] = 1 + dat += "[M.name]" + dat += " \[Track\]
          " + + + for(var/mob/living/M in seen) + if(M.name in names) + names[M.name]++ + dat += "[M.name] ([names[M.name]])" + else + names[M.name] = 1 + dat += "[M.name]" + if(M.buckled && !M.lying) + dat += " (Sitting)" + if(M.lying) + dat += " (Laying down)" + dat += " \[Track\]
          " + if(length(dat) == 0) + dat += "No motion detected." + return dat + else + return "Camera Offline
          " + +/obj/item/device/camera_bug/Topic(href,list/href_list) + if(usr != loc) + usr.unset_machine() + usr << browse(null, "window=camerabug") + return + usr.set_machine(src) + if("mode" in href_list) + track_mode = text2num(href_list["mode"]) + if("monitor" in href_list) + //You can't locate on a list with keys + var/list/cameras = flatten_list(bugged_cameras) + var/obj/machinery/camera/C = locate(href_list["monitor"]) in cameras + if(C && istype(C)) + track_mode = BUGMODE_MONITOR + current = C + usr.reset_perspective(null) + interact() + if("track" in href_list) + var/list/seen = get_seens() + if(seen && seen.len >= 1) + var/atom/A = locate(href_list["track"]) in seen + if(A && istype(A)) + tracking = A + tracked_name = A.name + last_found = current.c_tag + last_seen = world.time + track_mode = BUGMODE_TRACK + if("emp" in href_list) + //You can't locate on a list with keys + var/list/cameras = flatten_list(bugged_cameras) + var/obj/machinery/camera/C = locate(href_list["emp"]) in cameras + if(C && istype(C) && C.bug == src) + C.emp_act(1) + C.bug = null + bugged_cameras -= C.c_tag + interact() + return + if("close" in href_list) + usr.unset_machine() + current = null + return + if("view" in href_list) + //You can't locate on a list with keys + var/list/cameras = flatten_list(bugged_cameras) + var/obj/machinery/camera/C = locate(href_list["view"]) in cameras + if(C && istype(C)) + if(!C.can_use()) + usr << "Something's wrong with that camera! You can't get a feed." + return + var/turf/T = get_turf(loc) + if(!T || C.z != T.z) + usr << "You can't get a signal!" + return + current = C + spawn(6) + if(src.check_eye(usr)) + usr.reset_perspective(C) + interact() + else + usr.unset_machine() + usr << browse(null, "window=camerabug") + return + else + usr.unset_machine() + + interact() + +/obj/item/device/camera_bug/process() + if(track_mode == BUGMODE_LIST || (world.time < (last_tracked + refresh_interval))) + return + last_tracked = world.time + if(track_mode == BUGMODE_TRACK ) // search for user + // Note that it will be tricked if your name appears to change. + // This is not optimal but it is better than tracking you relentlessly despite everything. + if(!tracking) + src.updateSelfDialog() + return + + if(tracking.name != tracked_name) // Hiding their identity, tricksy + var/mob/M = tracking + if(istype(M)) + if(!(tracked_name == "Unknown" && findtext(tracking.name,"Unknown"))) // we saw then disguised before + if(!(tracked_name == M.real_name && findtext(tracking.name,M.real_name))) // or they're still ID'd + src.updateSelfDialog()//But if it's neither of those cases + return // you won't find em on the cameras + else + src.updateSelfDialog() + return + + var/list/tracking_cams = list() + var/list/b_cams = get_cameras() + for(var/entry in b_cams) + tracking_cams += b_cams[entry] + var/list/target_region = view(tracking) + + for(var/obj/machinery/camera/C in (target_region & tracking_cams)) + if(!can_see(C,tracking)) // target may have xray, that doesn't make them visible to cameras + continue + if(C.can_use()) + last_found = C.c_tag + last_seen = world.time + break + src.updateSelfDialog() + + +#undef BUGMODE_LIST +#undef BUGMODE_MONITOR +#undef BUGMODE_TRACK diff --git a/code/game/objects/items/devices/chameleonproj.dm b/code/game/objects/items/devices/chameleonproj.dm new file mode 100644 index 0000000..1e5e0ba --- /dev/null +++ b/code/game/objects/items/devices/chameleonproj.dm @@ -0,0 +1,140 @@ +/obj/item/device/chameleon + name = "chameleon-projector" + icon_state = "shield0" + flags = CONDUCT | NOBLUDGEON + slot_flags = SLOT_BELT + item_state = "electronic" + throwforce = 5 + throw_speed = 3 + throw_range = 5 + w_class = 2 + origin_tech = "syndicate=4;magnets=4" + var/can_use = 1 + var/obj/effect/dummy/chameleon/active_dummy = null + var/saved_appearance = null + +/obj/item/device/chameleon/New() + ..() + var/obj/item/weapon/cigbutt/butt = /obj/item/weapon/cigbutt + saved_appearance = initial(butt.appearance) + +/obj/item/device/chameleon/dropped() + ..() + disrupt() + +/obj/item/device/chameleon/equipped() + ..() + disrupt() + +/obj/item/device/chameleon/attack_self() + toggle() + +/obj/item/device/chameleon/afterattack(atom/target, mob/user , proximity) + if(!proximity) return + if(!active_dummy) + if(istype(target,/obj/item) && !istype(target, /obj/item/weapon/disk/nuclear)) + playsound(get_turf(src), 'sound/weapons/flash.ogg', 100, 1, -6) + user << "Scanned [target]." + var/obj/temp = new/obj() + temp.appearance = target.appearance + temp.layer = initial(target.layer) // scanning things in your inventory + temp.plane = initial(target.plane) + saved_appearance = temp.appearance + +/obj/item/device/chameleon/proc/toggle() + if(!can_use || !saved_appearance) return + if(active_dummy) + eject_all() + playsound(get_turf(src), 'sound/effects/pop.ogg', 100, 1, -6) + qdel(active_dummy) + active_dummy = null + usr << "You deactivate \the [src]." + PoolOrNew(/obj/effect/overlay/temp/emp/pulse, get_turf(src)) + else + playsound(get_turf(src), 'sound/effects/pop.ogg', 100, 1, -6) + var/obj/effect/dummy/chameleon/C = new/obj/effect/dummy/chameleon(usr.loc) + C.activate(usr, saved_appearance, src) + usr << "You activate \the [src]." + PoolOrNew(/obj/effect/overlay/temp/emp/pulse, get_turf(src)) + +/obj/item/device/chameleon/proc/disrupt(delete_dummy = 1) + if(active_dummy) + for(var/mob/M in active_dummy) + M << "Your chameleon-projector deactivates." + var/datum/effect_system/spark_spread/spark_system = new /datum/effect_system/spark_spread + spark_system.set_up(5, 0, src) + spark_system.attach(src) + spark_system.start() + eject_all() + if(delete_dummy) + qdel(active_dummy) + active_dummy = null + can_use = 0 + spawn(50) can_use = 1 + +/obj/item/device/chameleon/proc/eject_all() + for(var/atom/movable/A in active_dummy) + A.loc = active_dummy.loc + if(ismob(A)) + var/mob/M = A + M.reset_perspective(null) + +/obj/effect/dummy/chameleon + name = "" + desc = "" + density = 0 + var/can_move = 1 + var/obj/item/device/chameleon/master = null + +/obj/effect/dummy/chameleon/proc/activate(mob/M, saved_appearance, obj/item/device/chameleon/C) + appearance = saved_appearance + M.loc = src + master = C + master.active_dummy = src + +/obj/effect/dummy/chameleon/attackby() + master.disrupt() + +/obj/effect/dummy/chameleon/attack_hand() + master.disrupt() + +/obj/effect/dummy/chameleon/attack_animal() + master.disrupt() + +/obj/effect/dummy/chameleon/attack_slime() + master.disrupt() + +/obj/effect/dummy/chameleon/attack_alien() + master.disrupt() + +/obj/effect/dummy/chameleon/ex_act(S, T) + contents_explosion(S, T) + master.disrupt() + +/obj/effect/dummy/chameleon/bullet_act() + ..() + master.disrupt() + +/obj/effect/dummy/chameleon/relaymove(mob/user, direction) + if(isspaceturf(loc) || !direction) + return //No magical space movement! + + if(can_move) + can_move = 0 + switch(user.bodytemperature) + if(300 to INFINITY) + spawn(10) can_move = 1 + if(295 to 300) + spawn(13) can_move = 1 + if(280 to 295) + spawn(16) can_move = 1 + if(260 to 280) + spawn(20) can_move = 1 + else + spawn(25) can_move = 1 + step(src, direction) + return + +/obj/effect/dummy/chameleon/Destroy() + master.disrupt(0) + return ..() \ No newline at end of file diff --git a/code/game/objects/items/devices/doorCharge.dm b/code/game/objects/items/devices/doorCharge.dm new file mode 100644 index 0000000..ca6c6ce --- /dev/null +++ b/code/game/objects/items/devices/doorCharge.dm @@ -0,0 +1,40 @@ +/obj/item/device/doorCharge + name = "airlock charge" + desc = null //Different examine for traitors + item_state = "electronic" + icon_state = "doorCharge" + w_class = 2 + throw_range = 4 + throw_speed = 1 + flags = NOBLUDGEON + force = 3 + attack_verb = list("blown up", "exploded", "detonated") + materials = list(MAT_METAL=50, MAT_GLASS=30) + origin_tech = "syndicate=1;combat=3;engineering=3" + +/obj/item/device/doorCharge/ex_act(severity, target) + switch(severity) + if(1) + visible_message("[src] detonates!") + explosion(src.loc,0,2,1,flame_range = 4) + qdel(src) + if(2) + if(prob(50)) + ex_act(1) + if(3) + if(prob(25)) + ex_act(1) + +/obj/item/device/doorCharge/Destroy() + if(istype(loc, /obj/machinery/door/airlock)) + var/obj/machinery/door/airlock/A = loc + if(A.charge == src) + A.charge = null + return ..() + +/obj/item/device/doorCharge/examine(mob/user) + ..() + if(user.mind in ticker.mode.traitors) //No nuke ops because the device is excluded from nuclear + user << "A small explosive device that can be used to sabotage airlocks to cause an explosion upon opening. To apply, remove the airlock's maintenance panel and place it within." + else + user << "A small, suspicious object that feels lukewarm when held." diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm new file mode 100644 index 0000000..17f996a --- /dev/null +++ b/code/game/objects/items/devices/flashlight.dm @@ -0,0 +1,327 @@ +/obj/item/device/flashlight + name = "flashlight" + desc = "A hand-held emergency light." + icon = 'icons/obj/lighting.dmi' + icon_state = "flashlight" + item_state = "flashlight" + w_class = 2 + flags = CONDUCT + slot_flags = SLOT_BELT + materials = list(MAT_METAL=50, MAT_GLASS=20) + actions_types = list(/datum/action/item_action/toggle_light) + var/on = 0 + var/brightness_on = 4 //luminosity when on + +/obj/item/device/flashlight/initialize() + ..() + if(on) + icon_state = "[initial(icon_state)]-on" + SetLuminosity(brightness_on) + else + icon_state = initial(icon_state) + SetLuminosity(0) + +/obj/item/device/flashlight/proc/update_brightness(mob/user = null) + if(on) + icon_state = "[initial(icon_state)]-on" + if(loc == user) + user.AddLuminosity(brightness_on) + else if(isturf(loc)) + SetLuminosity(brightness_on) + else + icon_state = initial(icon_state) + if(loc == user) + user.AddLuminosity(-brightness_on) + else if(isturf(loc)) + SetLuminosity(0) + +/obj/item/device/flashlight/attack_self(mob/user) + playsound(src, 'sound/items/flashlight_on.ogg', 30, 1, -1) + on = !on + update_brightness(user) + for(var/X in actions) + var/datum/action/A = X + A.UpdateButtonIcon() + return 1 + + +/obj/item/device/flashlight/attack(mob/living/carbon/human/M, mob/living/carbon/human/user) + add_fingerprint(user) + if(on && user.zone_selected == "eyes") + + if((user.disabilities & CLUMSY || user.getBrainLoss() >= 60) && prob(50)) //too dumb to use flashlight properly + return ..() //just hit them in the head + + if(!user.IsAdvancedToolUser()) + user << "You don't have the dexterity to do this!" + return + + var/mob/living/carbon/human/H = M //mob has protective eyewear + if(ishuman(M) && ((H.head && H.head.flags_cover & HEADCOVERSEYES) || (H.wear_mask && H.wear_mask.flags_cover & MASKCOVERSEYES) || (H.glasses && H.glasses.flags_cover & GLASSESCOVERSEYES))) + user << "You're going to need to remove that [(H.head && H.head.flags_cover & HEADCOVERSEYES) ? "helmet" : (H.wear_mask && H.wear_mask.flags_cover & MASKCOVERSEYES) ? "mask": "glasses"] first." + return + + if(M == user) //they're using it on themselves + if(M.flash_act(visual = 1)) + M.visible_message("[M] directs [src] to \his eyes.", \ + "You wave the light in front of your eyes! Trippy!") + else + M.visible_message("[M] directs [src] to \his eyes.", \ + "You wave the light in front of your eyes.") + else + user.visible_message("[user] directs [src] to [M]'s eyes.", \ + "You direct [src] to [M]'s eyes.") + var/mob/living/carbon/C = M + if(istype(C)) + if(C.stat == DEAD || (C.disabilities & BLIND)) //mob is dead or fully blind + user << "[C] pupils don't react to the light!" + else if(C.dna.check_mutation(XRAY)) //mob has X-RAY vision + user << "[C] pupils give an eerie glow!" + else //they're okay! + if(C.flash_act(visual = 1)) + user << "[C]'s pupils narrow." + else + return ..() + + +/obj/item/device/flashlight/pickup(mob/user) + ..() + if(on) + user.AddLuminosity(brightness_on) + SetLuminosity(0) + + +/obj/item/device/flashlight/dropped(mob/user) + ..() + if(on) + user.AddLuminosity(-brightness_on) + SetLuminosity(brightness_on) + + +/obj/item/device/flashlight/pen + name = "penlight" + desc = "A pen-sized light, used by medical staff. It can also be used to create a hologram to alert people of incoming medical assistance." + icon_state = "penlight" + item_state = "" + flags = CONDUCT + brightness_on = 2 + var/holo_cooldown = 0 + +/obj/item/device/flashlight/pen/afterattack(atom/target, mob/user, proximity_flag) + if(!proximity_flag) + if(holo_cooldown > world.time) + user << "[src] is not ready yet!" + return + var/T = get_turf(target) + if(locate(/mob/living) in T) + PoolOrNew(/obj/effect/overlay/temp/medical_holosign, list(T,user)) //produce a holographic glow + holo_cooldown = world.time + 100 + return + ..() + +/obj/effect/overlay/temp/medical_holosign + name = "medical holosign" + desc = "A small holographic glow that indicates a medic is coming to treat a patient." + icon_state = "medi_holo" + duration = 30 + +/obj/effect/overlay/temp/medical_holosign/New(loc, creator) + ..() + playsound(loc, 'sound/machines/ping.ogg', 50, 0) //make some noise! + if(creator) + visible_message("[creator] created a medical hologram!") + + +/obj/item/device/flashlight/seclite + name = "seclite" + desc = "A robust flashlight used by security." + icon_state = "seclite" + item_state = "seclite" + force = 9 // Not as good as a stun baton. + brightness_on = 5 // A little better than the standard flashlight. + hitsound = 'sound/weapons/genhit1.ogg' + +// the desk lamps are a bit special +/obj/item/device/flashlight/lamp + name = "desk lamp" + desc = "A desk lamp with an adjustable mount." + icon_state = "lamp" + item_state = "lamp" + brightness_on = 5 + w_class = 4 + flags = CONDUCT + materials = list() + on = 1 + + +// green-shaded desk lamp +/obj/item/device/flashlight/lamp/green + desc = "A classic green-shaded desk lamp." + icon_state = "lampgreen" + item_state = "lampgreen" + + + +/obj/item/device/flashlight/lamp/verb/toggle_light() + set name = "Toggle light" + set category = "Object" + set src in oview(1) + + if(!usr.stat) + attack_self(usr) + +//Bananalamp +obj/item/device/flashlight/lamp/bananalamp + name = "banana lamp" + desc = "Only a clown would think to make a ghetto banana-shaped lamp. Even has a goofy pullstring." + icon_state = "bananalamp" + item_state = "bananalamp" + +// FLARES + +/obj/item/device/flashlight/flare + name = "flare" + desc = "A red Nanotrasen issued flare. There are instructions on the side, it reads 'pull cord, make light'." + w_class = 2 + brightness_on = 7 // Pretty bright. + icon_state = "flare" + item_state = "flare" + actions_types = list() + var/fuel = 0 + var/on_damage = 7 + var/produce_heat = 1500 + heat = 1000 + +/obj/item/device/flashlight/flare/New() + fuel = rand(800, 1000) // Sorry for changing this so much but I keep under-estimating how long X number of ticks last in seconds. + ..() + +/obj/item/device/flashlight/flare/process() + open_flame(heat) + fuel = max(fuel - 1, 0) + if(!fuel || !on) + turn_off() + if(!fuel) + icon_state = "[initial(icon_state)]-empty" + STOP_PROCESSING(SSobj, src) + +/obj/item/device/flashlight/flare/ignition_effect(atom/A, mob/user) + if(fuel && on) + . = "[user] lights [A] with [src] like a real \ + badass." + else + . = "" + +/obj/item/device/flashlight/flare/proc/turn_off() + on = 0 + force = initial(src.force) + damtype = initial(src.damtype) + if(ismob(loc)) + var/mob/U = loc + update_brightness(U) + else + update_brightness(null) + +/obj/item/device/flashlight/flare/update_brightness(mob/user = null) + ..() + if(on) + item_state = "[initial(item_state)]-on" + else + item_state = "[initial(item_state)]" + +/obj/item/device/flashlight/flare/attack_self(mob/user) + + // Usual checks + if(!fuel) + user << "It's out of fuel!" + return + if(on) + return + + . = ..() + // All good, turn it on. + if(.) + user.visible_message("[user] lights \the [src].", "You light \the [src]!") + force = on_damage + damtype = "fire" + START_PROCESSING(SSobj, src) + +/obj/item/device/flashlight/flare/is_hot() + return on * heat + +/obj/item/device/flashlight/flare/torch + name = "torch" + desc = "A torch fashioned from some leaves and a log." + w_class = 4 + brightness_on = 4 + icon_state = "torch" + item_state = "torch" + on_damage = 10 + slot_flags = null + +/obj/item/device/flashlight/lantern + name = "lantern" + icon_state = "lantern" + item_state = "lantern" + desc = "A mining lantern." + brightness_on = 6 // luminosity when on + + +/obj/item/device/flashlight/slime + gender = PLURAL + name = "glowing slime extract" + desc = "Extract from a yellow slime. It emits a strong light when squeezed." + icon = 'icons/obj/lighting.dmi' + icon_state = "slime" + item_state = "slime" + w_class = 2 + slot_flags = SLOT_BELT + materials = list() + brightness_on = 6 //luminosity when on + +/obj/item/device/flashlight/emp + origin_tech = "magnets=3;syndicate=1" + var/emp_max_charges = 4 + var/emp_cur_charges = 4 + var/charge_tick = 0 + + +/obj/item/device/flashlight/emp/New() + ..() + START_PROCESSING(SSobj, src) + +/obj/item/device/flashlight/emp/Destroy() + STOP_PROCESSING(SSobj, src) + return ..() + +/obj/item/device/flashlight/emp/process() + charge_tick++ + if(charge_tick < 10) return 0 + charge_tick = 0 + emp_cur_charges = min(emp_cur_charges+1, emp_max_charges) + return 1 + +/obj/item/device/flashlight/emp/attack(mob/living/M, mob/living/user) + if(on && user.zone_selected == "eyes") // call original attack proc only if aiming at the eyes + ..() + return + +/obj/item/device/flashlight/emp/afterattack(atom/movable/A, mob/user, proximity) + if(!proximity) + return + + if(emp_cur_charges > 0) + emp_cur_charges -= 1 + + if(ismob(A)) + var/mob/M = A + add_logs(user, M, "attacked", "EMP-light") + M.visible_message("[user] blinks \the [src] at \the [A].", \ + "[user] blinks \the [src] at you.") + else + A.visible_message("[user] blinks \the [src] at \the [A].") + user << "\The [src] now has [emp_cur_charges] charge\s." + A.emp_act(1) + else + user << "\The [src] needs time to recharge!" + return diff --git a/code/game/objects/items/devices/geiger_counter.dm b/code/game/objects/items/devices/geiger_counter.dm new file mode 100644 index 0000000..59f0e9f --- /dev/null +++ b/code/game/objects/items/devices/geiger_counter.dm @@ -0,0 +1,158 @@ +#define RAD_LEVEL_NORMAL 10 +#define RAD_LEVEL_MODERATE 30 +#define RAD_LEVEL_HIGH 75 +#define RAD_LEVEL_VERY_HIGH 125 +#define RAD_LEVEL_CRITICAL 200 + +/obj/item/device/geiger_counter //DISCLAIMER: I know nothing about how real-life Geiger counters work. This will not be realistic. ~Xhuis + name = "geiger counter" + desc = "A handheld device used for detecting and measuring radiation pulses." + icon_state = "geiger_off" + item_state = "multitool" + w_class = 2 + slot_flags = SLOT_BELT + materials = list(MAT_METAL = 150, MAT_GLASS = 150) + var/scanning = 0 + var/radiation_count = 0 + var/emagged = 0 + +/obj/item/device/geiger_counter/New() + ..() + START_PROCESSING(SSobj, src) + +/obj/item/device/geiger_counter/Destroy() + STOP_PROCESSING(SSobj, src) + ..() + +/obj/item/device/geiger_counter/process() + if(emagged) + if(radiation_count < 20) + radiation_count++ + return 0 + if(radiation_count > 0) + radiation_count-- + update_icon() + +/obj/item/device/geiger_counter/examine(mob/user) + ..() + if(!scanning) + return 1 + user << "Alt-click it to clear stored radiation levels." + if(emagged) + user << "The display seems to be incomprehensible." + return 1 + switch(radiation_count) + if(-INFINITY to RAD_LEVEL_NORMAL) + user << "Ambient radiation level count reports that all is well." + if(RAD_LEVEL_NORMAL + 1 to RAD_LEVEL_MODERATE) + user << "Ambient radiation levels slightly above average." + if(RAD_LEVEL_MODERATE + 1 to RAD_LEVEL_HIGH) + user << "Ambient radiation levels above average." + if(RAD_LEVEL_HIGH + 1 to RAD_LEVEL_VERY_HIGH) + user << "Ambient radiation levels highly above average." + if(RAD_LEVEL_VERY_HIGH + 1 to RAD_LEVEL_CRITICAL) + user << "Ambient radiation levels nearing critical level." + if(RAD_LEVEL_CRITICAL + 1 to INFINITY) + user << "Ambient radiation levels above critical level!" + +/obj/item/device/geiger_counter/update_icon() + if(!scanning) + icon_state = "geiger_off" + return 1 + if(emagged) + icon_state = "geiger_on_emag" + return 1 + switch(radiation_count) + if(-INFINITY to RAD_LEVEL_NORMAL) + icon_state = "geiger_on_1" + if(RAD_LEVEL_NORMAL + 1 to RAD_LEVEL_MODERATE) + icon_state = "geiger_on_2" + if(RAD_LEVEL_MODERATE + 1 to RAD_LEVEL_HIGH) + icon_state = "geiger_on_3" + if(RAD_LEVEL_HIGH + 1 to RAD_LEVEL_VERY_HIGH) + icon_state = "geiger_on_4" + if(RAD_LEVEL_VERY_HIGH + 1 to RAD_LEVEL_CRITICAL) + icon_state = "geiger_on_4" + if(RAD_LEVEL_CRITICAL + 1 to INFINITY) + icon_state = "geiger_on_5" + ..() + +/obj/item/device/geiger_counter/rad_act(amount) + if(!amount && scanning) + return 0 + if(emagged) + amount = Clamp(amount, 0, 25) //Emagged geiger counters can only accept 25 radiation at a time + radiation_count += amount + if(isliving(loc)) + var/mob/living/M = loc + if(!emagged) + M << "\icon[src] RADIATION PULSE DETECTED." + M << "\icon[src] Severity: [amount]" + else + M << "\icon[src] !@%$AT!(N P!LS! D/TEC?ED." + M << "\icon[src] &!F2rity: <=[amount]#1" + update_icon() + +/obj/item/device/geiger_counter/attack_self(mob/user) + scanning = !scanning + update_icon() + user << "\icon[src] You switch [scanning ? "on" : "off"] [src]." + +/obj/item/device/geiger_counter/attack(mob/living/M, mob/user) + if(user.a_intent == "help") + if(!emagged) + user.visible_message("[user] scans [M] with [src].", "You scan [M]'s radiation levels with [src]...") + if(!M.radiation) + user << "\icon[src] Radiation levels within normal boundaries." + return 1 + else + user << "\icon[src] Subject is irradiated. Radiation levels: [M.radiation]." + return 1 + else + user.visible_message("[user] scans [M] with [src].", "You project [src]'s stored radiation into [M]'s body!") + M.rad_act(radiation_count) + radiation_count = 0 + return 1 + ..() + +/obj/item/device/geiger_counter/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/screwdriver) && emagged) + if(scanning) + user << "Turn off [src] before you perform this action!" + return 0 + user.visible_message("[user] unscrews [src]'s maintenance panel and begins fiddling with its innards...", "You begin resetting [src]...") + playsound(user, I.usesound, 50, 1) + if(!do_after(user, 40/I.toolspeed, target = user)) + return 0 + user.visible_message("[user] refastens [src]'s maintenance panel!", "You reset [src] to its factory settings!") + playsound(user, 'sound/items/Screwdriver2.ogg', 50, 1) + emagged = 0 + radiation_count = 0 + update_icon() + return 1 + else + return ..() + +/obj/item/device/geiger_counter/AltClick(mob/living/user) + if(!istype(user) || user.incapacitated()) + return ..() + if(!scanning) + usr << "[src] must be on to reset its radiation level!" + return 0 + radiation_count = 0 + usr << "You flush [src]'s radiation counts, resetting it to normal." + update_icon() + +/obj/item/device/geiger_counter/emag_act(mob/user) + if(!emagged) + if(scanning) + user << "Turn off [src] before you perform this action!" + return 0 + user << "You override [src]'s radiation storing protocols. It will now generate small doses of radiation, and stored rads are now projected into creatures you scan." + emagged = 1 + +#undef RAD_LEVEL_NORMAL +#undef RAD_LEVEL_MODERATE +#undef RAD_LEVEL_HIGH +#undef RAD_LEVEL_VERY_HIGH +#undef RAD_LEVEL_CRITICAL diff --git a/code/game/objects/items/devices/instruments.dm b/code/game/objects/items/devices/instruments.dm new file mode 100644 index 0000000..60db350 --- /dev/null +++ b/code/game/objects/items/devices/instruments.dm @@ -0,0 +1,81 @@ +//copy pasta of the space piano, don't hurt me -Pete +/obj/item/device/instrument + name = "generic instrument" + resistance_flags = FLAMMABLE + obj_integrity = 100 + max_integrity = 100 + var/datum/song/handheld/song + var/instrumentId = "generic" + var/instrumentExt = "ogg" + +/obj/item/device/instrument/New() + song = new(instrumentId, src) + song.instrumentExt = instrumentExt + +/obj/item/device/instrument/Destroy() + qdel(song) + song = null + return ..() + +/obj/item/device/instrument/suicide_act(mob/user) + user.visible_message("[user] begins to play 'Gloomy Sunday'! It looks like [user.p_theyre()] trying to commit suicide!") + return (BRUTELOSS) + +/obj/item/device/instrument/initialize() + song.tempo = song.sanitize_tempo(song.tempo) // tick_lag isn't set when the map is loaded + ..() + +/obj/item/device/instrument/attack_self(mob/user) + if(!user.IsAdvancedToolUser()) + user << "You don't have the dexterity to do this!" + return 1 + interact(user) + +/obj/item/device/instrument/interact(mob/user) + if(!user) + return + + if(!isliving(user) || user.stat || user.restrained() || user.lying) + return + + user.set_machine(src) + song.interact(user) + +/obj/item/device/instrument/violin + name = "space violin" + desc = "A wooden musical instrument with four strings and a bow. \"The devil went down to space, he was looking for an assistant to grief.\"" + icon = 'icons/obj/musician.dmi' + icon_state = "violin" + item_state = "violin" + force = 10 + hitsound = "swing_hit" + instrumentId = "violin" + +/obj/item/device/instrument/violin/golden + name = "golden violin" + desc = "A golden musical instrument with four strings and a bow. \"The devil went down to space, he was looking for an assistant to grief.\"" + icon_state = "golden_violin" + item_state = "golden_violin" + resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF + +/obj/item/device/instrument/guitar + name = "guitar" + desc = "It's made of wood and has bronze strings." + icon = 'icons/obj/musician.dmi' + icon_state = "guitar" + item_state = "guitar" + force = 10 + attack_verb = list("played metal on", "serenaded", "crashed", "smashed") + hitsound = 'sound/weapons/stringsmash.ogg' + instrumentId = "guitar" + +/obj/item/device/instrument/eguitar + name = "electric guitar" + desc = "Makes all your shredding needs possible." + icon = 'icons/obj/musician.dmi' + icon_state = "eguitar" + item_state = "eguitar" + force = 12 + attack_verb = list("played metal on", "shredded", "crashed", "smashed") + hitsound = 'sound/weapons/stringsmash.ogg' + instrumentId = "eguitar" diff --git a/code/game/objects/items/devices/laserpointer.dm b/code/game/objects/items/devices/laserpointer.dm new file mode 100644 index 0000000..1bed2c1 --- /dev/null +++ b/code/game/objects/items/devices/laserpointer.dm @@ -0,0 +1,172 @@ +/obj/item/device/laser_pointer + name = "laser pointer" + desc = "Don't shine it in your eyes!" + icon = 'icons/obj/device.dmi' + icon_state = "pointer" + item_state = "pen" + var/pointer_icon_state + flags = CONDUCT | NOBLUDGEON + slot_flags = SLOT_BELT + materials = list(MAT_METAL=500, MAT_GLASS=500) + w_class = 2 //Increased to 2, because diodes are w_class 2. Conservation of matter. + origin_tech = "combat=1;magnets=2" + var/turf/pointer_loc + var/energy = 5 + var/max_energy = 5 + var/effectchance = 33 + var/recharging = 0 + var/recharge_locked = 0 + var/obj/item/weapon/stock_parts/micro_laser/diode //used for upgrading! + + +/obj/item/device/laser_pointer/red + pointer_icon_state = "red_laser" +/obj/item/device/laser_pointer/green + pointer_icon_state = "green_laser" +/obj/item/device/laser_pointer/blue + pointer_icon_state = "blue_laser" +/obj/item/device/laser_pointer/purple + pointer_icon_state = "purple_laser" + +/obj/item/device/laser_pointer/New() + ..() + diode = new(src) + if(!pointer_icon_state) + pointer_icon_state = pick("red_laser","green_laser","blue_laser","purple_laser") + +/obj/item/device/laser_pointer/upgraded/New() + ..() + diode = new /obj/item/weapon/stock_parts/micro_laser/ultra + +/obj/item/device/laser_pointer/attackby(obj/item/W, mob/user, params) + if(istype(W, /obj/item/weapon/stock_parts/micro_laser)) + if(!diode) + if(!user.unEquip(W)) + return + W.loc = src + diode = W + user << "You install a [diode.name] in [src]." + else + user << "[src] already has a diode installed." + + else if(istype(W, /obj/item/weapon/screwdriver)) + if(diode) + user << "You remove the [diode.name] from \the [src]." + diode.loc = get_turf(src.loc) + diode = null + else + return ..() + +/obj/item/device/laser_pointer/afterattack(atom/target, mob/living/user, flag, params) + laser_act(target, user, params) + +/obj/item/device/laser_pointer/proc/laser_act(atom/target, mob/living/user, params) + if( !(user in (viewers(7,target))) ) + return + if (!diode) + user << "You point [src] at [target], but nothing happens!" + return + if (!user.IsAdvancedToolUser()) + user << "You don't have the dexterity to do this!" + return + if(ishuman(user)) + var/mob/living/carbon/human/H = user + if(H.dna.check_mutation(HULK) || (NOGUNS in H.dna.species.specflags)) + user << "Your fingers can't press the button!" + return + + add_fingerprint(user) + + //nothing happens if the battery is drained + if(recharge_locked) + user << "You point [src] at [target], but it's still charging." + return + + var/outmsg + var/turf/targloc = get_turf(target) + + //human/alien mobs + if(iscarbon(target)) + var/mob/living/carbon/C = target + if(user.zone_selected == "eyes") + add_logs(user, C, "shone in the eyes", src) + + var/severity = 1 + if(prob(33)) + severity = 2 + else if(prob(50)) + severity = 0 + + //20% chance to actually hit the eyes + if(prob(effectchance * diode.rating) && C.flash_act(severity)) + outmsg = "You blind [C] by shining [src] in their eyes." + if(C.weakeyes) + C.Stun(1) + else + outmsg = "You fail to blind [C] by shining [src] at their eyes!" + + //robots + else if(iscyborg(target)) + var/mob/living/silicon/S = target + //20% chance to actually hit the sensors + if(prob(effectchance * diode.rating)) + S.flash_act(affect_silicon = 1) + S.Weaken(rand(5,10)) + S << "Your sensors were overloaded by a laser!" + outmsg = "You overload [S] by shining [src] at their sensors." + add_logs(user, S, "shone in the sensors", src) + else + outmsg = "You fail to overload [S] by shining [src] at their sensors!" + + //cameras + else if(istype(target, /obj/machinery/camera)) + var/obj/machinery/camera/C = target + if(prob(effectchance * diode.rating)) + C.emp_act(1) + outmsg = "You hit the lens of [C] with [src], temporarily disabling the camera!" + add_logs(user, C, "EMPed", src) + else + outmsg = "You miss the lens of [C] with [src]!" + + //laser pointer image + icon_state = "pointer_[pointer_icon_state]" + var/list/showto = list() + for(var/mob/M in viewers(7,targloc)) + if(M.client) + showto.Add(M.client) + var/image/I = image('icons/obj/projectiles.dmi',targloc,pointer_icon_state,10) + var/list/click_params = params2list(params) + if(click_params) + if(click_params["icon-x"]) + I.pixel_x = (text2num(click_params["icon-x"]) - 16) + if(click_params["icon-y"]) + I.pixel_y = (text2num(click_params["icon-y"]) - 16) + else + I.pixel_x = target.pixel_x + rand(-5,5) + I.pixel_y = target.pixel_y + rand(-5,5) + + if(outmsg) + user << outmsg + else + user << "You point [src] at [target]." + + energy -= 1 + if(energy <= max_energy) + if(!recharging) + recharging = 1 + START_PROCESSING(SSobj, src) + if(energy <= 0) + user << "[src]'s battery is overused, it needs time to recharge!" + recharge_locked = 1 + + flick_overlay(I, showto, 10) + icon_state = "pointer" + +/obj/item/device/laser_pointer/process() + if(prob(20 - recharge_locked*5)) + energy += 1 + if(energy >= max_energy) + energy = max_energy + recharging = 0 + recharge_locked = 0 + ..() diff --git a/code/game/objects/items/devices/lightreplacer.dm b/code/game/objects/items/devices/lightreplacer.dm new file mode 100644 index 0000000..628d369 --- /dev/null +++ b/code/game/objects/items/devices/lightreplacer.dm @@ -0,0 +1,264 @@ + +// Light Replacer (LR) +// +// ABOUT THE DEVICE +// +// This is a device supposedly to be used by Janitors and Janitor Cyborgs which will +// allow them to easily replace lights. This was mostly designed for Janitor Cyborgs since +// they don't have hands or a way to replace lightbulbs. +// +// HOW IT WORKS +// +// You attack a light fixture with it, if the light fixture is broken it will replace the +// light fixture with a working light; the broken light is then placed on the floor for the +// user to then pickup with a trash bag. If it's empty then it will just place a light in the fixture. +// +// HOW TO REFILL THE DEVICE +// +// It will need to be manually refilled with lights. +// If it's part of a robot module, it will charge when the Robot is inside a Recharge Station. +// +// EMAGGED FEATURES +// +// NOTICE: The Cyborg cannot use the emagged Light Replacer and the light's explosion was nerfed. It cannot create holes in the station anymore. +// +// I'm not sure everyone will react the emag's features so please say what your opinions are of it. +// +// When emagged it will rig every light it replaces, which will explode when the light is on. +// This is VERY noticable, even the device's name changes when you emag it so if anyone +// examines you when you're holding it in your hand, you will be discovered. +// It will also be very obvious who is setting all these lights off, since only Janitor Borgs and Janitors have easy +// access to them, and only one of them can emag their device. +// +// The explosion cannot insta-kill anyone with 30% or more health. + +#define LIGHT_OK 0 +#define LIGHT_EMPTY 1 +#define LIGHT_BROKEN 2 +#define LIGHT_BURNED 3 + + +/obj/item/device/lightreplacer + + name = "light replacer" + desc = "A device to automatically replace lights. Refill with broken or working lightbulbs, or sheets of glass." + + icon = 'icons/obj/janitor.dmi' + icon_state = "lightreplacer0" + item_state = "electronic" + + flags = CONDUCT + slot_flags = SLOT_BELT + origin_tech = "magnets=3;engineering=4" + + var/max_uses = 20 + var/uses = 0 + var/emagged = 0 + var/failmsg = "" + // How much to increase per each glass? + var/increment = 5 + // How much to take from the glass? + var/decrement = 1 + var/charge = 1 + + // Eating used bulbs gives us bulb shards + var/bulb_shards = 0 + // when we get this many shards, we get a free bulb. + var/shards_required = 4 + +/obj/item/device/lightreplacer/New() + uses = max_uses / 2 + failmsg = "The [name]'s refill light blinks red." + ..() + +/obj/item/device/lightreplacer/examine(mob/user) + ..() + user << status_string() + +/obj/item/device/lightreplacer/attackby(obj/item/W, mob/user, params) + + if(istype(W, /obj/item/stack/sheet/glass)) + var/obj/item/stack/sheet/glass/G = W + if(uses >= max_uses) + user << "[src.name] is full." + return + else if(G.use(decrement)) + AddUses(increment) + user << "You insert a piece of glass into the [src.name]. You have [uses] light\s remaining." + return + else + user << "You need one sheet of glass to replace lights!" + + if(istype(W, /obj/item/weapon/light)) + var/new_bulbs = 0 + var/obj/item/weapon/light/L = W + if(L.status == 0) // LIGHT OKAY + if(uses < max_uses) + if(!user.unEquip(W)) + return + AddUses(1) + qdel(L) + else + if(!user.unEquip(W)) + return + new_bulbs += AddShards(1) + qdel(L) + if(new_bulbs != 0) + playsound(src.loc, 'sound/machines/ding.ogg', 50, 1) + user << "You insert the [L.name] into the [src.name]. " + status_string() + "" + return + + if(istype(W, /obj/item/weapon/storage)) + var/obj/item/weapon/storage/S = W + var/found_lightbulbs = FALSE + var/replaced_something = TRUE + + for(var/obj/item/I in S.contents) + if(istype(I,/obj/item/weapon/light)) + var/obj/item/weapon/light/L = I + found_lightbulbs = TRUE + if(src.uses >= max_uses) + break + if(L.status == LIGHT_OK) + replaced_something = TRUE + AddUses(1) + qdel(L) + + else if(L.status == LIGHT_BROKEN || L.status == LIGHT_BURNED) + replaced_something = TRUE + AddShards(1) + qdel(L) + + if(!found_lightbulbs) + user << "\The [S] contains no bulbs." + return + + if(!replaced_something && src.uses == max_uses) + user << "\The [src] is full!" + return + + user << "You fill \the [src] with lights from \the [S]. " + status_string() + "" + +/obj/item/device/lightreplacer/emag_act() + if(!emagged) + Emag() + +/obj/item/device/lightreplacer/attack_self(mob/user) + user << status_string() + + +/obj/item/device/lightreplacer/update_icon() + icon_state = "lightreplacer[emagged]" + +/obj/item/device/lightreplacer/proc/status_string() + return "It has [uses] light\s remaining (plus [bulb_shards] fragment\s)." + +/obj/item/device/lightreplacer/proc/Use(mob/user) + + playsound(src.loc, 'sound/machines/click.ogg', 50, 1) + AddUses(-1) + return 1 + +// Negative numbers will subtract +/obj/item/device/lightreplacer/proc/AddUses(amount = 1) + uses = Clamp(uses + amount, 0, max_uses) + +/obj/item/device/lightreplacer/proc/AddShards(amount = 1) + bulb_shards += amount + var/new_bulbs = round(bulb_shards / shards_required) + if(new_bulbs > 0) + AddUses(new_bulbs) + bulb_shards = bulb_shards % shards_required + return new_bulbs + +/obj/item/device/lightreplacer/proc/Charge(var/mob/user) + charge += 1 + if(charge > 3) + AddUses(1) + charge = 1 + +/obj/item/device/lightreplacer/proc/ReplaceLight(obj/machinery/light/target, mob/living/U) + + if(target.status != LIGHT_OK) + if(CanUse(U)) + if(!Use(U)) return + U << "You replace the [target.fitting] with \the [src]." + + if(target.status != LIGHT_EMPTY) + var/new_bulbs = AddShards(1) + if(new_bulbs != 0) + U << "\The [src] has fabricated a new bulb from the broken bulbs it has stored. It now has [uses] uses." + playsound(src.loc, 'sound/machines/ding.ogg', 50, 1) + + target.status = LIGHT_EMPTY + target.update() + + var/obj/item/weapon/light/L2 = new target.light_type() + + target.status = L2.status + target.switchcount = L2.switchcount + target.rigged = emagged + target.brightness = L2.brightness + target.on = target.has_power() + target.update() + qdel(L2) + + if(target.on && target.rigged) + target.explode() + return + + else + U << failmsg + return + else + U << "There is a working [target.fitting] already inserted!" + return + +/obj/item/device/lightreplacer/proc/Emag() + emagged = !emagged + playsound(src.loc, "sparks", 100, 1) + if(emagged) + name = "shortcircuited [initial(name)]" + else + name = initial(name) + update_icon() + +//Can you use it? + +/obj/item/device/lightreplacer/proc/CanUse(mob/living/user) + src.add_fingerprint(user) + //Not sure what else to check for. Maybe if clumsy? + if(uses > 0) + return 1 + else + return 0 + +/obj/item/device/lightreplacer/afterattack(atom/T, mob/U, proximity) + if(!proximity) + return + if(!isturf(T)) + return + + var/used = FALSE + for(var/atom/A in T) + if(!CanUse(U)) + break + used = TRUE + if(istype(A, /obj/machinery/light)) + ReplaceLight(A, U) + + if(!used) + U << failmsg + +/obj/item/device/lightreplacer/proc/janicart_insert(mob/user, obj/structure/janitorialcart/J) + J.put_in_cart(src, user) + J.myreplacer = src + J.update_icon() + +/obj/item/device/lightreplacer/cyborg/janicart_insert(mob/user, obj/structure/janitorialcart/J) + return + +#undef LIGHT_OK +#undef LIGHT_EMPTY +#undef LIGHT_BROKEN +#undef LIGHT_BURNED diff --git a/code/game/objects/items/devices/machineprototype.dm b/code/game/objects/items/devices/machineprototype.dm new file mode 100644 index 0000000..e6574d0 --- /dev/null +++ b/code/game/objects/items/devices/machineprototype.dm @@ -0,0 +1,7 @@ +/obj/item/device/machineprototype + name = "machine prototype" + desc = "A complicated machine prototype. You have no idea how it works." + icon = 'icons/obj/machineprototype.dmi' + icon_state = "machineprototype" + materials = list(MAT_METAL=1000, MAT_GLASS=500) + origin_tech = "engineering=6" diff --git a/code/game/objects/items/devices/megaphone.dm b/code/game/objects/items/devices/megaphone.dm new file mode 100644 index 0000000..afa7989 --- /dev/null +++ b/code/game/objects/items/devices/megaphone.dm @@ -0,0 +1,42 @@ +/obj/item/device/megaphone + name = "megaphone" + desc = "A device used to project your voice. Loudly." + icon_state = "megaphone" + item_state = "radio" + w_class = 2 + flags = FPRINT + siemens_coefficient = 1 + var/spamcheck = 0 + var/emagged = 0 + var/list/voicespan = list(SPAN_COMMAND) + +/obj/item/device/megaphone/get_held_item_speechspans(mob/living/carbon/user) + if(spamcheck > world.time) + user << "\The [src] needs to recharge!" + else + playsound(loc, 'sound/items/megaphone.ogg', 100, 0, 1) + spamcheck = world.time + 50 + return voicespan + +/obj/item/device/megaphone/emag_act(mob/user) + user << "You overload \the [src]'s voice synthesizer." + emagged = 1 + voicespan = list(SPAN_REALLYBIG, "userdanger") + +/obj/item/device/megaphone/sec + name = "security megaphone" + icon_state = "megaphone-sec" + +/obj/item/device/megaphone/command + name = "command megaphone" + icon_state = "megaphone-command" + +/obj/item/device/megaphone/cargo + name = "supply megaphone" + icon_state = "megaphone-cargo" + +/obj/item/device/megaphone/clown + name = "clown's megaphone" + desc = "Something that should not exist." + icon_state = "megaphone-clown" + voicespan = list(SPAN_CLOWN) \ No newline at end of file diff --git a/code/game/objects/items/devices/multitool.dm b/code/game/objects/items/devices/multitool.dm new file mode 100644 index 0000000..4d4a5c2 --- /dev/null +++ b/code/game/objects/items/devices/multitool.dm @@ -0,0 +1,92 @@ +#define PROXIMITY_NONE "" +#define PROXIMITY_ON_SCREEN "_red" +#define PROXIMITY_NEAR "_yellow" + +/** + * Multitool -- A multitool is used for hacking electronic devices. + * TO-DO -- Using it as a power measurement tool for cables etc. Nannek. + * + */ + +/obj/item/device/multitool + name = "multitool" + desc = "Used for pulsing wires to test which to cut. Not recommended by doctors." + icon_state = "multitool" + force = 5 + w_class = 2 + throwforce = 0 + throw_range = 7 + throw_speed = 3 + materials = list(MAT_METAL=50, MAT_GLASS=20) + origin_tech = "magnets=1;engineering=2" + var/obj/machinery/buffer // simple machine buffer for device linkage + hitsound = 'sound/weapons/tap.ogg' + toolspeed = 1 + + +// Syndicate device disguised as a multitool; it will turn red when an AI camera is nearby. + + +/obj/item/device/multitool/ai_detect + var/track_cooldown = 0 + var/track_delay = 10 //How often it checks for proximity + var/detect_state = PROXIMITY_NONE + var/rangealert = 8 //Glows red when inside + var/rangewarning = 20 //Glows yellow when inside + origin_tech = "magnets=1;engineering=2;syndicate=1" + +/obj/item/device/multitool/ai_detect/New() + ..() + START_PROCESSING(SSobj, src) + +/obj/item/device/multitool/ai_detect/Destroy() + STOP_PROCESSING(SSobj, src) + return ..() + +/obj/item/device/multitool/ai_detect/process() + if(track_cooldown > world.time) + return + detect_state = PROXIMITY_NONE + multitool_detect() + icon_state = "[initial(icon_state)][detect_state]" + track_cooldown = world.time + track_delay + +/obj/item/device/multitool/ai_detect/proc/multitool_detect() + var/turf/our_turf = get_turf(src) + for(var/mob/living/silicon/ai/AI in ai_list) + if(AI.cameraFollow == src) + detect_state = PROXIMITY_ON_SCREEN + break + + if(!detect_state && cameranet.chunkGenerated(our_turf.x, our_turf.y, our_turf.z)) + var/datum/camerachunk/chunk = cameranet.getCameraChunk(our_turf.x, our_turf.y, our_turf.z) + if(chunk) + if(chunk.seenby.len) + for(var/mob/camera/aiEye/A in chunk.seenby) + var/turf/detect_turf = get_turf(A) + if(get_dist(our_turf, detect_turf) < rangealert) + detect_state = PROXIMITY_ON_SCREEN + break + if(get_dist(our_turf, detect_turf) < rangewarning) + detect_state = PROXIMITY_NEAR + break + +/obj/item/device/multitool/ai_detect/admin + desc = "Used for pulsing wires to test which to cut. Not recommended by doctors. Has a strange tag that says 'Grief in Safety'" //What else should I say for a meme item? + track_delay = 5 + +/obj/item/device/multitool/ai_detect/admin/multitool_detect() + var/turf/our_turf = get_turf(src) + for(var/mob/J in urange(rangewarning,our_turf)) + if(admin_datums[J.ckey]) + detect_state = PROXIMITY_NEAR + var/turf/detect_turf = get_turf(J) + if(get_dist(our_turf, detect_turf) < rangealert) + detect_state = PROXIMITY_ON_SCREEN + break + +/obj/item/device/multitool/cyborg + name = "multitool" + desc = "Optimised and stripped-down version of a regular multitool." + icon = 'icons/obj/items_cyborg.dmi' + toolspeed = 2 \ No newline at end of file diff --git a/code/game/objects/items/devices/paicard.dm b/code/game/objects/items/devices/paicard.dm new file mode 100644 index 0000000..bf840c4 --- /dev/null +++ b/code/game/objects/items/devices/paicard.dm @@ -0,0 +1,140 @@ +/obj/item/device/paicard + name = "personal AI device" + icon = 'icons/obj/aicards.dmi' + icon_state = "pai" + item_state = "electronic" + w_class = 2 + slot_flags = SLOT_BELT + origin_tech = "programming=2" + var/obj/item/device/radio/radio + var/looking_for_personality = 0 + var/mob/living/silicon/pai/pai + +/obj/item/device/paicard/New() + ..() + add_overlay("pai-off") + +/obj/item/device/paicard/Destroy() + //Will stop people throwing friend pAIs into the singularity so they can respawn + if(!isnull(pai)) + pai.death(0) + return ..() + +/obj/item/device/paicard/attack_self(mob/user) + if (!in_range(src, user)) + return + user.set_machine(src) + var/dat = "Personal AI Device
          " + if(pai && (!pai.master_dna || !pai.master)) + dat += "Imprint Master DNA
          " + if(pai) + dat += "Installed Personality: [pai.name]
          " + dat += "Prime directive:
          [pai.laws.zeroth]
          " + for(var/slaws in pai.laws.supplied) + dat += "Additional directives:
          [slaws]
          " + dat += "Configure Directives
          " + dat += "
          " + dat += "

          Device Settings


          " + if(radio) + dat += "Radio Uplink
          " + dat += "Transmit: [(radio.wires.is_cut(WIRE_TX)) ? "Disabled" : "Enabled"]
          " + dat += "Receive: [(radio.wires.is_cut(WIRE_RX)) ? "Disabled" : "Enabled"]
          " + else + dat += "Radio Uplink
          " + dat += "Radio firmware not loaded. Please install a pAI personality to load firmware.
          " + dat += "\[Wipe current pAI personality\]
          " + else + if(looking_for_personality) + dat += "Searching for a personality..." + dat += "\[View available personalities\]
          " + else + dat += "No personality is installed.
          " + dat += "\[Request personal AI personality\]
          " + dat += "Each time this button is pressed, a request will be sent out to any available personalities. Check back often and give a lot of time for personalities to respond. This process could take anywhere from 15 seconds to several minutes, depending on the available personalities' timeliness." + user << browse(dat, "window=paicard") + onclose(user, "paicard") + return + +/obj/item/device/paicard/Topic(href, href_list) + + if(!usr || usr.stat) + return + + if(href_list["request"]) + src.looking_for_personality = 1 + SSpai.findPAI(src, usr) + + if(pai) + if(href_list["setdna"]) + if(pai.master_dna) + return + if(!istype(usr, /mob/living/carbon)) + usr << "You don't have any DNA, or your DNA is incompatible with this device!" + else + var/mob/living/carbon/M = usr + pai.master = M.real_name + pai.master_dna = M.dna.unique_enzymes + pai << "You have been bound to a new master." + if(href_list["wipe"]) + var/confirm = input("Are you CERTAIN you wish to delete the current personality? This action cannot be undone.", "Personality Wipe") in list("Yes", "No") + if(confirm == "Yes") + if(pai) + pai << "You feel yourself slipping away from reality." + pai << "Byte by byte you lose your sense of self." + pai << "Your mental faculties leave you." + pai << "oblivion... " + pai.death(0) + removePersonality() + if(href_list["wires"]) + var/wire = text2num(href_list["wires"]) + if(radio) + radio.wires.cut(wire) + if(href_list["setlaws"]) + var/newlaws = copytext(sanitize(input("Enter any additional directives you would like your pAI personality to follow. Note that these directives will not override the personality's allegiance to its imprinted master. Conflicting directives will be ignored.", "pAI Directive Configuration", pai.laws.supplied[1]) as message),1,MAX_MESSAGE_LEN) + if(newlaws && pai) + pai.add_supplied_law(0,newlaws) + pai << "Your supplemental directives have been updated. Your new directives are:" + pai << "Prime Directive :
          [pai.laws.zeroth]" + for(var/slaws in pai.laws.supplied) + pai << "Supplemental Directives:
          [slaws]" + attack_self(usr) + +// WIRE_SIGNAL = 1 +// WIRE_RECEIVE = 2 +// WIRE_TRANSMIT = 4 + +/obj/item/device/paicard/proc/setPersonality(mob/living/silicon/pai/personality) + src.pai = personality + src.add_overlay("pai-null") + + playsound(loc, 'sound/effects/pai_boot.ogg', 50, 1, -1) + audible_message("\The [src] plays a cheerful startup noise!") + +/obj/item/device/paicard/proc/removePersonality() + src.pai = null + src.cut_overlays() + src.add_overlay("pai-off") + +/obj/item/device/paicard/proc/setEmotion(emotion) + if(pai) + src.cut_overlays() + switch(emotion) + if(1) src.add_overlay("pai-happy") + if(2) src.add_overlay("pai-cat") + if(3) src.add_overlay("pai-extremely-happy") + if(4) src.add_overlay("pai-face") + if(5) src.add_overlay("pai-laugh") + if(6) src.add_overlay("pai-off") + if(7) src.add_overlay("pai-sad") + if(8) src.add_overlay("pai-angry") + if(9) src.add_overlay("pai-what") + if(10) src.add_overlay("pai-null") + +/obj/item/device/paicard/proc/alertUpdate() + visible_message("[src] flashes a message across its screen, \"Additional personalities available for download.\"", "[src] bleeps electronically.") + +/obj/item/device/paicard/emp_act(severity) + if(pai) + pai.emp_act(severity) + ..() + diff --git a/code/game/objects/items/devices/pipe_painter.dm b/code/game/objects/items/devices/pipe_painter.dm new file mode 100644 index 0000000..df89ecf --- /dev/null +++ b/code/game/objects/items/devices/pipe_painter.dm @@ -0,0 +1,41 @@ + +/obj/item/device/pipe_painter + name = "pipe painter" + icon = 'icons/obj/bureaucracy.dmi' + icon_state = "labeler1" + item_state = "flight" + flags = NOBLUDGEON + var/list/modes = list( + "grey" = rgb(255,255,255), + "red" = rgb(255,0,0), + "blue" = rgb(0,0,255), + "cyan" = rgb(0,256,249), + "green" = rgb(30,255,0), + "yellow" = rgb(255,198,0), + "purple" = rgb(130,43,255) + ) + var/mode = "grey" + + materials = list(MAT_METAL=5000, MAT_GLASS=2000) + +/obj/item/device/pipe_painter/afterattack(atom/A, mob/user, proximity_flag) + //Make sure we only paint adjacent items + if(!proximity_flag) + return + + if(!istype(A,/obj/machinery/atmospherics/pipe)) + return + + var/obj/machinery/atmospherics/pipe/P = A + P.add_atom_colour(modes[mode], FIXED_COLOUR_PRIORITY) + P.pipe_color = modes[mode] + P.stored.add_atom_colour(modes[mode], FIXED_COLOUR_PRIORITY) + user.visible_message("[user] paints \the [P] [mode].","You paint \the [P] [mode].") + P.update_node_icon() //updates the neighbors + +/obj/item/device/pipe_painter/attack_self(mob/user) + mode = input("Which colour do you want to use?","Pipe painter") in modes + +/obj/item/device/pipe_painter/examine() + ..() + usr << "It is set to [mode]." diff --git a/code/game/objects/items/devices/powersink.dm b/code/game/objects/items/devices/powersink.dm new file mode 100644 index 0000000..175f6d2 --- /dev/null +++ b/code/game/objects/items/devices/powersink.dm @@ -0,0 +1,145 @@ +// Powersink - used to drain station power + +/obj/item/device/powersink + desc = "A nulling power sink which drains energy from electrical systems." + name = "power sink" + icon_state = "powersink0" + item_state = "electronic" + w_class = 4 + flags = CONDUCT + throwforce = 5 + throw_speed = 1 + throw_range = 2 + materials = list(MAT_METAL=750) + origin_tech = "powerstorage=5;syndicate=5" + var/drain_rate = 1600000 // amount of power to drain per tick + var/power_drained = 0 // has drained this much power + var/max_power = 1e10 // maximum power that can be drained before exploding + var/mode = 0 // 0 = off, 1=clamped (off), 2=operating + var/admins_warned = 0 // stop spam, only warn the admins once that we are about to boom + + var/const/DISCONNECTED = 0 + var/const/CLAMPED_OFF = 1 + var/const/OPERATING = 2 + + var/obj/structure/cable/attached // the attached cable + +/obj/item/device/powersink/update_icon() + icon_state = "powersink[mode == OPERATING]" + +/obj/item/device/powersink/proc/set_mode(value) + if(value == mode) + return + switch(value) + if(DISCONNECTED) + attached = null + if(mode == OPERATING) + STOP_PROCESSING(SSobj, src) + anchored = 0 + + if(CLAMPED_OFF) + if(!attached) + return + if(mode == OPERATING) + STOP_PROCESSING(SSobj, src) + anchored = 1 + + if(OPERATING) + if(!attached) + return + START_PROCESSING(SSobj, src) + anchored = 1 + + mode = value + update_icon() + SetLuminosity(0) + +/obj/item/device/powersink/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/screwdriver)) + if(mode == DISCONNECTED) + var/turf/T = loc + if(isturf(T) && !T.intact) + attached = locate() in T + if(!attached) + user << "This device must be placed over an exposed, powered cable node!" + else + set_mode(CLAMPED_OFF) + user.visible_message( \ + "[user] attaches \the [src] to the cable.", \ + "You attach \the [src] to the cable.", + "You hear some wires being connected to something.") + else + user << "This device must be placed over an exposed, powered cable node!" + else + set_mode(DISCONNECTED) + user.visible_message( \ + "[user] detaches \the [src] from the cable.", \ + "You detach \the [src] from the cable.", + "You hear some wires being disconnected from something.") + else + return ..() + +/obj/item/device/powersink/attack_paw() + return + +/obj/item/device/powersink/attack_ai() + return + +/obj/item/device/powersink/attack_hand(mob/user) + switch(mode) + if(DISCONNECTED) + ..() + + if(CLAMPED_OFF) + user.visible_message( \ + "[user] activates \the [src]!", \ + "You activate \the [src].", + "You hear a click.") + message_admins("Power sink activated by [key_name_admin(user)](?) (FLW) at ([x],[y],[z] - JMP)") + log_game("Power sink activated by [key_name(user)] at ([x],[y],[z])") + set_mode(OPERATING) + + if(OPERATING) + user.visible_message( \ + "[user] deactivates \the [src]!", \ + "You deactivate \the [src].", + "You hear a click.") + set_mode(CLAMPED_OFF) + +/obj/item/device/powersink/process() + if(!attached) + set_mode(DISCONNECTED) + return + + var/datum/powernet/PN = attached.powernet + if(PN) + SetLuminosity(5) + + // found a powernet, so drain up to max power from it + + var/drained = min ( drain_rate, PN.avail ) + PN.load += drained + power_drained += drained + + // if tried to drain more than available on powernet + // now look for APCs and drain their cells + if(drained < drain_rate) + for(var/obj/machinery/power/terminal/T in PN.nodes) + if(istype(T.master, /obj/machinery/power/apc)) + var/obj/machinery/power/apc/A = T.master + if(A.operating && A.cell) + A.cell.charge = max(0, A.cell.charge - 50) + power_drained += 50 + if(A.charging == 2) // If the cell was full + A.charging = 1 // It's no longer full + + if(power_drained > max_power * 0.98) + if (!admins_warned) + admins_warned = 1 + message_admins("Power sink at ([x],[y],[z] - JMP) is 95% full. Explosion imminent.") + playsound(src, 'sound/effects/screech.ogg', 100, 1, 1) + + if(power_drained >= max_power) + STOP_PROCESSING(SSobj, src) + explosion(src.loc, 4,8,16,32) + qdel(src) diff --git a/code/game/objects/items/devices/radio/beacon.dm b/code/game/objects/items/devices/radio/beacon.dm new file mode 100644 index 0000000..3161fb5 --- /dev/null +++ b/code/game/objects/items/devices/radio/beacon.dm @@ -0,0 +1,41 @@ +/obj/item/device/radio/beacon + name = "tracking beacon" + desc = "A beacon used by a teleporter." + icon_state = "beacon" + item_state = "beacon" + var/code = "electronic" + origin_tech = "bluespace=1" + dog_fashion = null + +/obj/item/device/radio/beacon/New() + ..() + teleportbeacons += src + +/obj/item/device/radio/beacon/Destroy() + teleportbeacons.Remove(src) + return ..() + +/obj/item/device/radio/beacon/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq, list/spans) + return + +/obj/item/device/radio/beacon/send_hear() + return null + + +/obj/item/device/radio/beacon/verb/alter_signal(t as text) + set name = "Alter Beacon's Signal" + set category = "Object" + set src in usr + + if ((usr.canmove && !( usr.restrained() ))) + src.code = t + if (!( src.code )) + src.code = "beacon" + src.add_fingerprint(usr) + return + +/* +//Probably a better way of doing this, I'm lazy. +/obj/item/device/radio/beacon/bacon/proc/digest_delay() + spawn(600) + qdel(src)*/ //Bacon beacons are no more rip in peace diff --git a/code/game/objects/items/devices/radio/electropack.dm b/code/game/objects/items/devices/radio/electropack.dm new file mode 100644 index 0000000..cd1c443 --- /dev/null +++ b/code/game/objects/items/devices/radio/electropack.dm @@ -0,0 +1,147 @@ +/obj/item/device/electropack + name = "electropack" + desc = "Dance my monkeys! DANCE!!!" + icon = 'icons/obj/radio.dmi' + icon_state = "electropack0" + item_state = "electropack" + flags = CONDUCT + slot_flags = SLOT_BACK + w_class = 5 + materials = list(MAT_METAL=10000, MAT_GLASS=2500) + var/on = 1 + var/code = 2 + var/frequency = 1449 + var/shock_cooldown = 0 + +/obj/item/device/electropack/suicide_act(mob/user) + user.visible_message("[user] hooks [user.p_them()]self to the electropack and spams the trigger! It looks like [user.p_theyre()] trying to commit suicide!") + return (FIRELOSS) + +/obj/item/device/electropack/initialize() + if(SSradio) + SSradio.add_object(src, frequency, RADIO_CHAT) + +/obj/item/device/electropack/Destroy() + if(SSradio) + SSradio.remove_object(src, frequency) + return ..() + +/obj/item/device/electropack/attack_hand(mob/user) + if(iscarbon(user)) + var/mob/living/carbon/C = user + if(src == C.back) + user << "You need help taking this off!" + return + ..() + +/obj/item/device/electropack/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/clothing/head/helmet)) + var/obj/item/assembly/shock_kit/A = new /obj/item/assembly/shock_kit( user ) + A.icon = 'icons/obj/assemblies.dmi' + + if(!user.unEquip(W)) + user << "[W] is stuck to your hand, you cannot attach it to [src]!" + return + W.loc = A + W.master = A + A.part1 = W + + user.unEquip(src) + loc = A + master = A + A.part2 = src + + user.put_in_hands(A) + A.add_fingerprint(user) + if(src.flags & NODROP) + A.flags |= NODROP + else + return ..() + +/obj/item/device/electropack/Topic(href, href_list) + //..() + var/mob/living/carbon/C = usr + if(usr.stat || usr.restrained() || C.back == src) + return + if((ishuman(usr) && usr.contents.Find(src)) || usr.contents.Find(master) || (in_range(src, usr) && isturf(loc))) + usr.set_machine(src) + if(href_list["freq"]) + SSradio.remove_object(src, frequency) + frequency = sanitize_frequency(frequency + text2num(href_list["freq"])) + SSradio.add_object(src, frequency, RADIO_CHAT) + else + if(href_list["code"]) + code += text2num(href_list["code"]) + code = round(code) + code = min(100, code) + code = max(1, code) + else + if(href_list["power"]) + on = !( on ) + icon_state = "electropack[on]" + if(!( master )) + if(istype(loc, /mob)) + attack_self(loc) + else + for(var/mob/M in viewers(1, src)) + if(M.client) + attack_self(M) + else + if(istype(master.loc, /mob)) + attack_self(master.loc) + else + for(var/mob/M in viewers(1, master)) + if(M.client) + attack_self(M) + else + usr << browse(null, "window=radio") + return + return + +/obj/item/device/electropack/receive_signal(datum/signal/signal) + if(!signal || signal.encryption != code) + return + + if(ismob(loc) && on) + if(shock_cooldown != 0) + return + shock_cooldown = 1 + spawn(100) + shock_cooldown = 0 + var/mob/M = loc + step(M, pick(cardinal)) + + M << "You feel a sharp shock!" + var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread + s.set_up(3, 1, M) + s.start() + + M.Weaken(5) + + if(master) + master.receive_signal() + return + +/obj/item/device/electropack/attack_self(mob/user) + + if(!ishuman(user)) + return + user.set_machine(src) + var/dat = {"Turned [on ? "On" : "Off"] - +Toggle
          +Frequency/Code for electropack:
          +Frequency: +- +- [format_frequency(frequency)] ++ ++
          + +Code: +- +- [code] ++ ++
          +
          "} + user << browse(dat, "window=radio") + onclose(user, "radio") + return diff --git a/code/game/objects/items/devices/radio/encryptionkey.dm b/code/game/objects/items/devices/radio/encryptionkey.dm new file mode 100644 index 0000000..cb99135 --- /dev/null +++ b/code/game/objects/items/devices/radio/encryptionkey.dm @@ -0,0 +1,131 @@ + +/obj/item/device/encryptionkey/ + name = "standard encryption key" + desc = "An encryption key for a radio headset. Has no special codes in it. WHY DOES IT EXIST? ASK NANOTRASEN." + icon = 'icons/obj/radio.dmi' + icon_state = "cypherkey" + w_class = 1 + origin_tech = "engineering=2;bluespace=1" + var/translate_binary = 0 + var/translate_hive = 0 + var/syndie = 0 + var/centcom = 0 + var/list/channels = list() + +/obj/item/device/encryptionkey/syndicate + name = "syndicate encryption key" + desc = "An encryption key for a radio headset. To access the syndicate channel, use :t." + icon_state = "syn_cypherkey" + channels = list("Syndicate" = 1) + origin_tech = "syndicate=1;engineering=3;bluespace=2" + syndie = 1//Signifies that it de-crypts Syndicate transmissions + +/obj/item/device/encryptionkey/binary + name = "binary translator key" + desc = "An encryption key for a radio headset. To access the binary channel, use :b." + icon_state = "bin_cypherkey" + translate_binary = 1 + origin_tech = "syndicate=3;engineering=4;bluespace=3" + +/obj/item/device/encryptionkey/headset_sec + name = "security radio encryption key" + desc = "An encryption key for a radio headset. To access the security channel, use :s." + icon_state = "sec_cypherkey" + channels = list("Security" = 1) + +/obj/item/device/encryptionkey/headset_eng + name = "engineering radio encryption key" + desc = "An encryption key for a radio headset. To access the engineering channel, use :e." + icon_state = "eng_cypherkey" + channels = list("Engineering" = 1) + +/obj/item/device/encryptionkey/headset_rob + name = "robotics radio encryption key" + desc = "An encryption key for a radio headset. To access the engineering channel, use :e. For research, use :n." + icon_state = "rob_cypherkey" + channels = list("Science" = 1, "Engineering" = 1) + +/obj/item/device/encryptionkey/headset_med + name = "medical radio encryption key" + desc = "An encryption key for a radio headset. To access the medical channel, use :m." + icon_state = "med_cypherkey" + channels = list("Medical" = 1) + +/obj/item/device/encryptionkey/headset_sci + name = "science radio encryption key" + desc = "An encryption key for a radio headset. To access the science channel, use :n." + icon_state = "sci_cypherkey" + channels = list("Science" = 1) + +/obj/item/device/encryptionkey/headset_medsci + name = "medical research radio encryption key" + desc = "An encryption key for a radio headset. To access the medical channel, use :m. For science, use :n." + icon_state = "medsci_cypherkey" + channels = list("Science" = 1, "Medical" = 1) + +/obj/item/device/encryptionkey/headset_com + name = "command radio encryption key" + desc = "An encryption key for a radio headset. To access the command channel, use :c." + icon_state = "com_cypherkey" + channels = list("Command" = 1) + +/obj/item/device/encryptionkey/heads/captain + name = "\proper the captain's encryption key" + desc = "An encryption key for a radio headset. Channels are as follows: :c - command, :s - security, :e - engineering, :u - supply, :v - service, :m - medical, :n - science." + icon_state = "cap_cypherkey" + channels = list("Command" = 1, "Security" = 1, "Engineering" = 0, "Science" = 0, "Medical" = 0, "Supply" = 0, "Service" = 0) + +/obj/item/device/encryptionkey/heads/rd + name = "\proper the research director's encryption key" + desc = "An encryption key for a radio headset. To access the science channel, use :n. For command, use :c." + icon_state = "rd_cypherkey" + channels = list("Science" = 1, "Command" = 1) + +/obj/item/device/encryptionkey/heads/hos + name = "\proper the head of security's encryption key" + desc = "An encryption key for a radio headset. To access the security channel, use :s. For command, use :c." + icon_state = "hos_cypherkey" + channels = list("Security" = 1, "Command" = 1) + +/obj/item/device/encryptionkey/heads/ce + name = "\proper the chief engineer's encryption key" + desc = "An encryption key for a radio headset. To access the engineering channel, use :e. For command, use :c." + icon_state = "ce_cypherkey" + channels = list("Engineering" = 1, "Command" = 1) + +/obj/item/device/encryptionkey/heads/cmo + name = "\proper the chief medical officer's encryption key" + desc = "An encryption key for a radio headset. To access the medical channel, use :m. For command, use :c." + icon_state = "cmo_cypherkey" + channels = list("Medical" = 1, "Command" = 1) + +/obj/item/device/encryptionkey/heads/hop + name = "\proper the head of personnel's encryption key" + desc = "An encryption key for a radio headset. Channels are as follows: :u - supply, :v - service, :c - command." + icon_state = "hop_cypherkey" + channels = list("Supply" = 1, "Service" = 1, "Command" = 1) + +/obj/item/device/encryptionkey/headset_cargo + name = "supply radio encryption key" + desc = "An encryption key for a radio headset. To access the supply channel, use :u." + icon_state = "cargo_cypherkey" + channels = list("Supply" = 1) + +/obj/item/device/encryptionkey/headset_service + name = "service radio encryption key" + desc = "An encryption key for a radio headset. To access the service channel, use :v." + icon_state = "srv_cypherkey" + channels = list("Service" = 1) + +/obj/item/device/encryptionkey/headset_cent + name = "centcom radio encryption key" + desc = "An encryption key for a radio headset. To access the centcom channel, use :y." + icon_state = "cent_cypherkey" + centcom = 1 + channels = list("Centcom" = 1) + +/obj/item/device/encryptionkey/ai //ported from NT, this goes 'inside' the AI. + channels = list("Command" = 1, "Security" = 1, "Engineering" = 1, "Science" = 1, "Medical" = 1, "Supply" = 1, "Service" = 1, "AI Private" = 1) + +/obj/item/device/encryptionkey/secbot + channels = list("AI Private"=1,"Security"=1) diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm new file mode 100644 index 0000000..02d2008 --- /dev/null +++ b/code/game/objects/items/devices/radio/headset.dm @@ -0,0 +1,290 @@ +/obj/item/device/radio/headset + name = "radio headset" + desc = "An updated, modular intercom that fits over the head. Takes encryption keys. \nTo speak on the general radio frequency, use ; before speaking." + icon_state = "headset" + item_state = "headset" + materials = list(MAT_METAL=75) + subspace_transmission = 1 + canhear_range = 0 // can't hear headsets from very far away + + slot_flags = SLOT_EARS + var/obj/item/device/encryptionkey/keyslot2 = null + dog_fashion = null + +/obj/item/device/radio/headset/New() + ..() + recalculateChannels() + +/obj/item/device/radio/headset/Destroy() + qdel(keyslot) + qdel(keyslot2) + keyslot = null + keyslot2 = null + return ..() + +/obj/item/device/radio/headset/talk_into(mob/living/M, message, channel, list/spans) + if (!listening) + return + ..() + +/obj/item/device/radio/headset/receive_range(freq, level, AIuser) + if(ishuman(src.loc)) + var/mob/living/carbon/human/H = src.loc + if(H.ears == src) + return ..(freq, level) + else if(AIuser) + return ..(freq, level) + return -1 + +/obj/item/device/radio/headset/syndicate //disguised to look like a normal headset for stealth ops + origin_tech = "syndicate=3" + +/obj/item/device/radio/headset/syndicate/alt //undisguised bowman with flash protection + name = "syndicate headset" + desc = "A syndicate headset that can be used to hear all radio frequencies. Protects ears from flashbangs. \nTo access the syndicate channel, use ; before speaking." + flags = EARBANGPROTECT + origin_tech = "syndicate=3" + icon_state = "syndie_headset" + item_state = "syndie_headset" + +/obj/item/device/radio/headset/syndicate/alt/leader + name = "team leader headset" + command = TRUE + +/obj/item/device/radio/headset/syndicate/New() + ..() + make_syndie() + +/obj/item/device/radio/headset/binary + origin_tech = "syndicate=3" +/obj/item/device/radio/headset/binary/New() + ..() + qdel(keyslot) + keyslot = new /obj/item/device/encryptionkey/binary + recalculateChannels() + +/obj/item/device/radio/headset/headset_sec + name = "security radio headset" + desc = "This is used by your elite security force. \nTo access the security channel, use :s." + icon_state = "sec_headset" + keyslot = new /obj/item/device/encryptionkey/headset_sec + +/obj/item/device/radio/headset/headset_sec/alt + name = "security bowman headset" + desc = "This is used by your elite security force. Protects ears from flashbangs. \nTo access the security channel, use :s." + flags = EARBANGPROTECT + icon_state = "sec_headset_alt" + item_state = "sec_headset_alt" + +/obj/item/device/radio/headset/headset_eng + name = "engineering radio headset" + desc = "When the engineers wish to chat like girls. \nTo access the engineering channel, use :e. " + icon_state = "eng_headset" + keyslot = new /obj/item/device/encryptionkey/headset_eng + +/obj/item/device/radio/headset/headset_rob + name = "robotics radio headset" + desc = "Made specifically for the roboticists, who cannot decide between departments. \nTo access the engineering channel, use :e. For research, use :n." + icon_state = "rob_headset" + keyslot = new /obj/item/device/encryptionkey/headset_rob + +/obj/item/device/radio/headset/headset_med + name = "medical radio headset" + desc = "A headset for the trained staff of the medbay. \nTo access the medical channel, use :m." + icon_state = "med_headset" + keyslot = new /obj/item/device/encryptionkey/headset_med + +/obj/item/device/radio/headset/headset_sci + name = "science radio headset" + desc = "A sciency headset. Like usual. \nTo access the science channel, use :n." + icon_state = "sci_headset" + keyslot = new /obj/item/device/encryptionkey/headset_sci + +/obj/item/device/radio/headset/headset_medsci + name = "medical research radio headset" + desc = "A headset that is a result of the mating between medical and science. \nTo access the medical channel, use :m. For science, use :n." + icon_state = "medsci_headset" + keyslot = new /obj/item/device/encryptionkey/headset_medsci + +/obj/item/device/radio/headset/headset_com + name = "command radio headset" + desc = "A headset with a commanding channel. \nTo access the command channel, use :c." + icon_state = "com_headset" + keyslot = new /obj/item/device/encryptionkey/headset_com + +/obj/item/device/radio/headset/heads + command = TRUE + +/obj/item/device/radio/headset/heads/captain + name = "\proper the captain's headset" + desc = "The headset of the king. \nChannels are as follows: :c - command, :s - security, :e - engineering, :u - supply, :v - service, :m - medical, :n - science." + icon_state = "com_headset" + keyslot = new /obj/item/device/encryptionkey/heads/captain + +/obj/item/device/radio/headset/heads/captain/alt + name = "\proper the captain's bowman headset" + desc = "The headset of the boss. Protects ears from flashbangs. \nChannels are as follows: :c - command, :s - security, :e - engineering, :u - supply, :v - service, :m - medical, :n - science." + flags = EARBANGPROTECT + icon_state = "com_headset_alt" + item_state = "com_headset_alt" + +/obj/item/device/radio/headset/heads/rd + name = "\proper the research director's headset" + desc = "Headset of the fellow who keeps society marching towards technological singularity. \nTo access the science channel, use :n. For command, use :c." + icon_state = "com_headset" + keyslot = new /obj/item/device/encryptionkey/heads/rd + +/obj/item/device/radio/headset/heads/hos + name = "\proper the head of security's headset" + desc = "The headset of the man in charge of keeping order and protecting the station. \nTo access the security channel, use :s. For command, use :c." + icon_state = "com_headset" + keyslot = new /obj/item/device/encryptionkey/heads/hos + +/obj/item/device/radio/headset/heads/hos/alt + name = "\proper the head of security's bowman headset" + desc = "The headset of the man in charge of keeping order and protecting the station. Protects ears from flashbangs. \nTo access the security channel, use :s. For command, use :c." + flags = EARBANGPROTECT + icon_state = "com_headset_alt" + item_state = "com_headset_alt" + +/obj/item/device/radio/headset/heads/ce + name = "\proper the chief engineer's headset" + desc = "The headset of the guy in charge of keeping the station powered and undamaged. \nTo access the engineering channel, use :e. For command, use :c." + icon_state = "com_headset" + keyslot = new /obj/item/device/encryptionkey/heads/ce + +/obj/item/device/radio/headset/heads/cmo + name = "\proper the chief medical officer's headset" + desc = "The headset of the highly trained medical chief. \nTo access the medical channel, use :m. For command, use :c." + icon_state = "com_headset" + keyslot = new /obj/item/device/encryptionkey/heads/cmo + +/obj/item/device/radio/headset/heads/hop + name = "\proper the head of personnel's headset" + desc = "The headset of the guy who will one day be captain. \nChannels are as follows: :u - supply, :v - service, :c - command." + icon_state = "com_headset" + keyslot = new /obj/item/device/encryptionkey/heads/hop + +/obj/item/device/radio/headset/headset_cargo + name = "supply radio headset" + desc = "A headset used by the QM and his slaves. \nTo access the supply channel, use :u." + icon_state = "cargo_headset" + keyslot = new /obj/item/device/encryptionkey/headset_cargo + +/obj/item/device/radio/headset/headset_cargo/mining + name = "mining radio headset" + desc = "Headset used by shaft miners. \nTo access the supply channel, use :u." + icon_state = "mine_headset" + +/obj/item/device/radio/headset/headset_srv + name = "service radio headset" + desc = "Headset used by the service staff, tasked with keeping the station full, happy and clean. \nTo access the service channel, use :v." + icon_state = "srv_headset" + keyslot = new /obj/item/device/encryptionkey/headset_service + +/obj/item/device/radio/headset/headset_cent + name = "\improper Centcom headset" + desc = "A headset used by the upper echelons of Nanotrasen. \nTo access the centcom channel, use :y." + icon_state = "cent_headset" + keyslot = new /obj/item/device/encryptionkey/headset_com + keyslot2 = new /obj/item/device/encryptionkey/headset_cent + +/obj/item/device/radio/headset/headset_cent/commander + keyslot = new /obj/item/device/encryptionkey/heads/captain + +/obj/item/device/radio/headset/headset_cent/alt + name = "\improper Centcom bowman headset" + desc = "A headset especially for emergency response personnel. Protects ears from flashbangs. \nTo access the centcom channel, use :y." + flags = EARBANGPROTECT + icon_state = "cent_headset_alt" + item_state = "cent_headset_alt" + keyslot = null + +/obj/item/device/radio/headset/ai + name = "\proper Integrated Subspace Transceiver " + keyslot2 = new /obj/item/device/encryptionkey/ai + +/obj/item/device/radio/headset/ai/receive_range(freq, level) + return ..(freq, level, 1) + +/obj/item/device/radio/headset/attackby(obj/item/weapon/W, mob/user, params) + user.set_machine(src) + + if(istype(W, /obj/item/weapon/screwdriver)) + if(keyslot || keyslot2) + + + for(var/ch_name in channels) + SSradio.remove_object(src, radiochannels[ch_name]) + secure_radio_connections[ch_name] = null + + + if(keyslot) + var/turf/T = get_turf(user) + if(T) + keyslot.loc = T + keyslot = null + + + + if(keyslot2) + var/turf/T = get_turf(user) + if(T) + keyslot2.loc = T + keyslot2 = null + + recalculateChannels() + user << "You pop out the encryption keys in the headset." + + else + user << "This headset doesn't have any unique encryption keys! How useless..." + + else if(istype(W, /obj/item/device/encryptionkey/)) + if(keyslot && keyslot2) + user << "The headset can't hold another key!" + return + + if(!keyslot) + if(!user.unEquip(W)) + return + W.loc = src + keyslot = W + + else + if(!user.unEquip(W)) + return + W.loc = src + keyslot2 = W + + + recalculateChannels() + else + return ..() + + +/obj/item/device/radio/headset/recalculateChannels() + ..() + if(keyslot2) + for(var/ch_name in keyslot2.channels) + if(ch_name in src.channels) + continue + src.channels += ch_name + src.channels[ch_name] = keyslot2.channels[ch_name] + + if(keyslot2.translate_binary) + src.translate_binary = 1 + + if(keyslot2.translate_hive) + src.translate_hive = 1 + + if(keyslot2.syndie) + src.syndie = 1 + + if (keyslot2.centcom) + centcom = 1 + + + for(var/ch_name in channels) + secure_radio_connections[ch_name] = add_radio(src, radiochannels[ch_name]) + + return diff --git a/code/game/objects/items/devices/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm new file mode 100644 index 0000000..6613268 --- /dev/null +++ b/code/game/objects/items/devices/radio/intercom.dm @@ -0,0 +1,71 @@ +/obj/item/device/radio/intercom + name = "station intercom" + desc = "Talk through this." + icon_state = "intercom" + anchored = 1 + w_class = 4 + canhear_range = 2 + var/number = 0 + var/anyai = 1 + var/mob/living/silicon/ai/ai = list() + var/last_tick //used to delay the powercheck + dog_fashion = null + +/obj/item/device/radio/intercom/New() + ..() + START_PROCESSING(SSobj, src) + +/obj/item/device/radio/intercom/Destroy() + STOP_PROCESSING(SSobj, src) + return ..() + +/obj/item/device/radio/intercom/attack_ai(mob/user) + interact(user) + +/obj/item/device/radio/intercom/attack_hand(mob/user) + interact(user) + +/obj/item/device/radio/intercom/interact(mob/user) + ..() + ui_interact(user, state = default_state) + +/obj/item/device/radio/intercom/receive_range(freq, level) + if(!on) + return -1 + if(wires.is_cut(WIRE_RX)) + return -1 + if(!(0 in level)) + var/turf/position = get_turf(src) + if(isnull(position) || !(position.z in level)) + return -1 + if(!src.listening) + return -1 + if(freq == SYND_FREQ) + if(!(src.syndie)) + return -1//Prevents broadcast of messages over devices lacking the encryption + + return canhear_range + + +/obj/item/device/radio/intercom/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq, list/spans) + if(!anyai && !(speaker in ai)) + return + ..() + +/obj/item/device/radio/intercom/process() + if(((world.timeofday - last_tick) > 30) || ((world.timeofday - last_tick) < 0)) + last_tick = world.timeofday + + var/area/A = get_area_master(src) + if(!A || emped) + on = 0 + else + on = A.powered(EQUIP) // set "on" to the power status + + if(!on) + icon_state = "intercom-p" + else + icon_state = "intercom" + +/obj/item/device/radio/intercom/add_blood(list/blood_dna) + return 0 diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm new file mode 100644 index 0000000..572b529 --- /dev/null +++ b/code/game/objects/items/devices/radio/radio.dm @@ -0,0 +1,594 @@ +/obj/item/device/radio + icon = 'icons/obj/radio.dmi' + name = "station bounced radio" + suffix = "\[3\]" + icon_state = "walkietalkie" + item_state = "walkietalkie" + dog_fashion = /datum/dog_fashion/back + var/on = 1 // 0 for off + var/last_transmission + var/frequency = 1459 //common chat + var/traitor_frequency = 0 //tune to frequency to unlock traitor supplies + var/canhear_range = 3 // the range which mobs can hear this radio from + var/obj/item/device/radio/patch_link = null + var/list/secure_radio_connections + var/prison_radio = 0 + var/b_stat = 0 + var/broadcasting = 0 + var/listening = 1 + var/translate_binary = 0 + var/translate_hive = 0 + var/freerange = 0 // 0 - Sanitize frequencies, 1 - Full range + var/list/channels = list() //see communications.dm for full list. First channes is a "default" for :h + var/obj/item/device/encryptionkey/keyslot //To allow the radio to accept encryption keys. + var/subspace_switchable = 0 + var/subspace_transmission = 0 + var/syndie = 0//Holder to see if it's a syndicate encrpyed radio + var/centcom = 0//Bleh, more dirty booleans + var/freqlock = 0 //Frequency lock to stop the user from untuning specialist radios. + var/emped = 0 //Highjacked to track the number of consecutive EMPs on the radio, allowing consecutive EMP's to stack properly. +// "Example" = FREQ_LISTENING|FREQ_BROADCASTING + flags = CONDUCT | HEAR + slot_flags = SLOT_BELT + languages_spoken = HUMAN | ROBOT + languages_understood = HUMAN | ROBOT + throw_speed = 3 + throw_range = 7 + w_class = 2 + materials = list(MAT_METAL=75, MAT_GLASS=25) + + var/const/TRANSMISSION_DELAY = 5 // only 2/second/radio + var/const/FREQ_LISTENING = 1 + //FREQ_BROADCASTING = 2 + + var/command = FALSE //If we are speaking into a command headset, our text can be BOLD + var/use_command = FALSE + +/obj/item/device/radio/proc/set_frequency(new_frequency) + remove_radio(src, frequency) + frequency = add_radio(src, new_frequency) + +/obj/item/device/radio/New() + wires = new /datum/wires/radio(src) + if(prison_radio) + wires.cut(WIRE_TX) // OH GOD WHY + secure_radio_connections = new + ..() + if(SSradio) + initialize() + +/obj/item/device/radio/proc/recalculateChannels() + channels = list() + translate_binary = 0 + translate_hive = 0 + syndie = 0 + centcom = 0 + + if(keyslot) + for(var/ch_name in keyslot.channels) + if(ch_name in src.channels) + continue + channels += ch_name + channels[ch_name] = keyslot.channels[ch_name] + + if(keyslot.translate_binary) + translate_binary = 1 + + if(keyslot.translate_hive) + translate_hive = 1 + + if(keyslot.syndie) + syndie = 1 + + if(keyslot.centcom) + centcom = 1 + + for(var/ch_name in channels) + secure_radio_connections[ch_name] = add_radio(src, radiochannels[ch_name]) + +/obj/item/device/radio/proc/make_syndie() // Turns normal radios into Syndicate radios! + qdel(keyslot) + keyslot = new /obj/item/device/encryptionkey/syndicate + syndie = 1 + recalculateChannels() + +/obj/item/device/radio/Destroy() + qdel(wires) + wires = null + remove_radio_all(src) //Just to be sure + patch_link = null + keyslot = null + return ..() + +/obj/item/device/radio/initialize() + frequency = sanitize_frequency(frequency, freerange) + set_frequency(frequency) + + for(var/ch_name in channels) + secure_radio_connections[ch_name] = add_radio(src, radiochannels[ch_name]) + +/obj/item/device/radio/interact(mob/user) + if (..()) + return + if(b_stat && !isAI(user)) + wires.interact(user) + else + ui_interact(user) + +/obj/item/device/radio/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ + datum/tgui/master_ui = null, datum/ui_state/state = inventory_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "radio", name, 370, 220 + channels.len * 22, master_ui, state) + ui.open() + +/obj/item/device/radio/ui_data(mob/user) + var/list/data = list() + + data["broadcasting"] = broadcasting + data["listening"] = listening + data["frequency"] = frequency + data["minFrequency"] = freerange ? MIN_FREE_FREQ : MIN_FREQ + data["maxFrequency"] = freerange ? MAX_FREE_FREQ : MAX_FREQ + data["freqlock"] = freqlock + data["channels"] = list() + for(var/channel in channels) + data["channels"][channel] = channels[channel] & FREQ_LISTENING + data["command"] = command + data["useCommand"] = use_command + data["subspace"] = subspace_transmission + data["subspaceSwitchable"] = subspace_switchable + data["headset"] = istype(src, /obj/item/device/radio/headset) + + return data + +/obj/item/device/radio/ui_act(action, params, datum/tgui/ui) + if(..()) + return + switch(action) + if("frequency") + if(freqlock) + return + var/tune = params["tune"] + var/adjust = text2num(params["adjust"]) + if(tune == "input") + var/min = format_frequency(freerange ? MIN_FREE_FREQ : MIN_FREQ) + var/max = format_frequency(freerange ? MAX_FREE_FREQ : MAX_FREQ) + tune = input("Tune frequency ([min]-[max]):", name, format_frequency(frequency)) as null|num + if(!isnull(tune) && !..()) + . = TRUE + else if(adjust) + tune = frequency + adjust * 10 + . = TRUE + else if(text2num(tune) != null) + tune = tune * 10 + . = TRUE + if(.) + frequency = sanitize_frequency(tune, freerange) + set_frequency(frequency) + if(frequency == traitor_frequency && hidden_uplink) + hidden_uplink.interact(usr) + ui.close() + if("listen") + listening = !listening + . = TRUE + if("broadcast") + broadcasting = !broadcasting + . = TRUE + if("channel") + var/channel = params["channel"] + if(!(channel in channels)) + return + if(channels[channel] & FREQ_LISTENING) + channels[channel] &= ~FREQ_LISTENING + else + channels[channel] |= FREQ_LISTENING + . = TRUE + if("command") + use_command = !use_command + . = TRUE + if("subspace") + if(subspace_switchable) + subspace_transmission = !subspace_transmission + if(!subspace_transmission) + channels = list() + else + recalculateChannels() + . = TRUE + +/obj/item/device/radio/talk_into(atom/movable/M, message, channel, list/spans) + addtimer(src,"talk_into_impl",0,FALSE,M,message,channel,spans) + +/obj/item/device/radio/proc/talk_into_impl(atom/movable/M, message, channel, list/spans) + if(!on) return // the device has to be on + // Fix for permacell radios, but kinda eh about actually fixing them. + if(!M || !message) return + + if(wires.is_cut(WIRE_TX)) + return + + if(!M.IsVocal()) + return + + if(use_command) + spans |= SPAN_COMMAND + + /* Quick introduction: + This new radio system uses a very robust FTL signaling technology unoriginally + dubbed "subspace" which is somewhat similar to 'blue-space' but can't + actually transmit large mass. Headsets are the only radio devices capable + of sending subspace transmissions to the Communications Satellite. + + A headset sends a signal to a subspace listener/reciever elsewhere in space, + the signal gets processed and logged, and an audible transmission gets sent + to each individual headset. + */ + + /* + be prepared to disregard any comments in all of tcomms code. i tried my best to keep them somewhat up-to-date, but eh + */ + + //get the frequency you buttface. radios no longer use the SSradio. confusing for future generations, convenient for me. + var/freq + if(channel && channels && channels.len > 0) + if(channel == "department") + channel = channels[1] + freq = secure_radio_connections[channel] + if (!channels[channel]) // if the channel is turned off, don't broadcast + return + else + freq = frequency + channel = null + + var/freqnum = text2num(freq) //Why should we call text2num three times when we can just do it here? + var/turf/position = get_turf(src) + + //#### Tagging the signal with all appropriate identity values ####// + + // ||-- The mob's name identity --|| + var/real_name = M.name // mob's real name + var/mobkey = "none" // player key associated with mob + var/voicemask = 0 // the speaker is wearing a voice mask + var/voice = M.GetVoice() // Why reinvent the wheel when there is a proc that does nice things already + if(ismob(M)) + var/mob/speaker = M + real_name = speaker.real_name + if(speaker.client) + mobkey = speaker.key // assign the mob's key + + + var/jobname // the mob's "job" + + + // --- Human: use their job as seen on the crew manifest - makes it unneeded to carry an ID for an AI to see their job + if(ishuman(M)) + var/datum/data/record/findjob = find_record("name", voice, data_core.general) + + if(voice != real_name) + voicemask = 1 + if(findjob) + jobname = findjob.fields["rank"] + else + jobname = "Unknown" + + // --- Carbon Nonhuman --- + else if(iscarbon(M)) // Nonhuman carbon mob + jobname = "No id" + + // --- AI --- + else if(isAI(M)) + jobname = "AI" + + // --- Cyborg --- + else if(iscyborg(M)) + var/mob/living/silicon/robot/B = M + jobname = "[B.designation] Cyborg" + + // --- Personal AI (pAI) --- + else if(istype(M, /mob/living/silicon/pai)) + jobname = "Personal AI" + + // --- Cold, emotionless machines. --- + else if(isobj(M)) + jobname = "Machine" + + // --- Unidentifiable mob --- + else + jobname = "Unknown" + + /* ###### Centcom channel bypasses all comms relays. ###### */ + + if (freqnum == CENTCOM_FREQ && centcom) + var/datum/signal/signal = new + signal.transmission_method = 2 + signal.data = list( + "mob" = M, // store a reference to the mob + "mobtype" = M.type, // the mob's type + "realname" = real_name, // the mob's real name + "name" = voice, // the mob's voice name + "job" = jobname, // the mob's job + "key" = mobkey, // the mob's key + "vmask" = voicemask, // 1 if the mob is using a voice gas mas + + "compression" = 0, // uncompressed radio signal + "message" = message, // the actual sent message + "radio" = src, // stores the radio used for transmission + "slow" = 0, + "traffic" = 0, + "type" = 0, + "server" = null, + "reject" = 0, + "level" = 0, + "languages" = languages_spoken, + "spans" = spans, + "verb_say" = M.verb_say, + "verb_ask" = M.verb_ask, + "verb_exclaim" = M.verb_exclaim, + "verb_yell" = M.verb_yell + ) + signal.frequency = freqnum // Quick frequency set + Broadcast_Message(M, voicemask, + src, message, voice, jobname, real_name, + 5, signal.data["compression"], list(position.z, 0), freq, spans, + verb_say, verb_ask, verb_exclaim, verb_yell) + return + + /* ###### Radio headsets can only broadcast through subspace ###### */ + + if(subspace_transmission) + // First, we want to generate a new radio signal + var/datum/signal/signal = new + signal.transmission_method = 2 // 2 would be a subspace transmission. + // transmission_method could probably be enumerated through #define. Would be neater. + // --- Finally, tag the actual signal with the appropriate values --- + signal.data = list( + // Identity-associated tags: + "mob" = M, // store a reference to the mob + "mobtype" = M.type, // the mob's type + "realname" = real_name, // the mob's real name + "name" = voice, // the mob's voice name + "job" = jobname, // the mob's job + "key" = mobkey, // the mob's key + "vmask" = voicemask, // 1 if the mob is using a voice gas mask + + // We store things that would otherwise be kept in the actual mob + // so that they can be logged even AFTER the mob is deleted or something + + // Other tags: + "compression" = rand(35,65), // compressed radio signal + "message" = message, // the actual sent message + "radio" = src, // stores the radio used for transmission + "slow" = 0, // how much to sleep() before broadcasting - simulates net lag + "traffic" = 0, // dictates the total traffic sum that the signal went through + "type" = 0, // determines what type of radio input it is: normal broadcast + "server" = null, // the last server to log this signal + "reject" = 0, // if nonzero, the signal will not be accepted by any broadcasting machinery + "level" = position.z, // The source's z level + "languages" = M.languages_spoken, //The languages M is talking in. + "spans" = spans, //the span classes of this message. + "verb_say" = M.verb_say, //the verb used when talking normally + "verb_ask" = M.verb_ask, //the verb used when asking + "verb_exclaim" = M.verb_exclaim, //the verb used when exclaiming + "verb_yell" = M.verb_yell //the verb used when yelling + ) + signal.frequency = freq + + //#### Sending the signal to all subspace receivers ####// + + for(var/obj/machinery/telecomms/receiver/R in telecomms_list) + R.receive_signal(signal) + + // Allinone can act as receivers. + for(var/obj/machinery/telecomms/allinone/R in telecomms_list) + R.receive_signal(signal) + + // Receiving code can be located in Telecommunications.dm + return + + + /* ###### Intercoms and station-bounced radios ###### */ + + var/filter_type = 2 + + var/datum/signal/signal = new + signal.transmission_method = 2 + + + /* --- Try to send a normal subspace broadcast first */ + + signal.data = list( + "mob" = M, // store a reference to the mob + "mobtype" = M.type, // the mob's type + "realname" = real_name, // the mob's real name + "name" = voice, // the mob's voice name + "job" = jobname, // the mob's job + "key" = mobkey, // the mob's key + "vmask" = voicemask, // 1 if the mob is using a voice gas mas + + "compression" = 0, // uncompressed radio signal + "message" = message, // the actual sent message + "radio" = src, // stores the radio used for transmission + "slow" = 0, + "traffic" = 0, + "type" = 0, + "server" = null, + "reject" = 0, + "level" = position.z, + "languages" = languages_spoken, + "spans" = spans, + "verb_say" = M.verb_say, + "verb_ask" = M.verb_ask, + "verb_exclaim" = M.verb_exclaim, + "verb_yell" = M.verb_yell + ) + signal.frequency = freqnum // Quick frequency set + for(var/obj/machinery/telecomms/receiver/R in telecomms_list) + R.receive_signal(signal) + + + spawn(20) // wait a little... + + if(signal.data["done"] && position.z in signal.data["level"]) + // we're done here. + return + + // Oh my god; the comms are down or something because the signal hasn't been broadcasted yet in our level. + // Send a mundane broadcast with limited targets: + Broadcast_Message(M, voicemask, + src, message, voice, jobname, real_name, + filter_type, signal.data["compression"], list(position.z), freq, spans, + verb_say, verb_ask, verb_exclaim, verb_yell) + +/obj/item/device/radio/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq, list/spans) + if(radio_freq) + return + if(broadcasting) + if(get_dist(src, speaker) <= canhear_range) + talk_into(speaker, raw_message, , spans) +/* +/obj/item/device/radio/proc/accept_rad(obj/item/device/radio/R as obj, message) + + if ((R.frequency == frequency && message)) + return 1 + else if + + else + return null + return +*/ + + +/obj/item/device/radio/proc/receive_range(freq, level) + // check if this radio can receive on the given frequency, and if so, + // what the range is in which mobs will hear the radio + // returns: -1 if can't receive, range otherwise + + if (wires.is_cut(WIRE_RX)) + return -1 + if(!listening) + return -1 + if(!(0 in level)) + var/turf/position = get_turf(src) + if(!position || !(position.z in level)) + return -1 + if(freq == SYND_FREQ) + if(!(src.syndie)) //Checks to see if it's allowed on that frequency, based on the encryption keys + return -1 + if(freq == CENTCOM_FREQ) + if (!(src.centcom)) + return -1 + if (!on) + return -1 + if (!freq) //received on main frequency + if (!listening) + return -1 + else + var/accept = (freq==frequency && listening) + if (!accept) + for(var/ch_name in channels) + if(channels[ch_name] & FREQ_LISTENING) + if(radiochannels[ch_name] == text2num(freq) || syndie) //the radiochannels list is located in communications.dm + accept = 1 + break + if (!accept) + return -1 + return canhear_range + +/obj/item/device/radio/proc/send_hear(freq, level) + + var/range = receive_range(freq, level) + if(range > -1) + return get_hearers_in_view(canhear_range, src) + + +/obj/item/device/radio/examine(mob/user) + ..() + if (b_stat) + user << "[name] can be attached and modified." + else + user << "[name] can not be modified or attached." + +/obj/item/device/radio/attackby(obj/item/weapon/W, mob/user, params) + add_fingerprint(user) + if(istype(W, /obj/item/weapon/screwdriver)) + b_stat = !b_stat + if(b_stat) + user << "The radio can now be attached and modified!" + else + user << "The radio can no longer be modified or attached!" + else + return ..() + +/obj/item/device/radio/emp_act(severity) + emped++ //There's been an EMP; better count it + var/curremp = emped //Remember which EMP this was + if (listening && ismob(loc)) // if the radio is turned on and on someone's person they notice + loc << "\The [src] overloads." + broadcasting = 0 + listening = 0 + for (var/ch_name in channels) + channels[ch_name] = 0 + on = 0 + spawn(200) + if(emped == curremp) //Don't fix it if it's been EMP'd again + emped = 0 + if (!istype(src, /obj/item/device/radio/intercom)) // intercoms will turn back on on their own + on = 1 + ..() + +/////////////////////////////// +//////////Borg Radios////////// +/////////////////////////////// +//Giving borgs their own radio to have some more room to work with -Sieve + +/obj/item/device/radio/borg + name = "cyborg radio" + subspace_switchable = 1 + dog_fashion = null + +/obj/item/device/radio/borg/syndicate + syndie = 1 + keyslot = new /obj/item/device/encryptionkey/syndicate + +/obj/item/device/radio/borg/syndicate/New() + ..() + set_frequency(SYND_FREQ) + +/obj/item/device/radio/borg/attackby(obj/item/weapon/W, mob/user, params) + + if(istype(W, /obj/item/weapon/screwdriver)) + if(keyslot) + for(var/ch_name in channels) + SSradio.remove_object(src, radiochannels[ch_name]) + secure_radio_connections[ch_name] = null + + + if(keyslot) + var/turf/T = get_turf(user) + if(T) + keyslot.loc = T + keyslot = null + + recalculateChannels() + user << "You pop out the encryption key in the radio." + + else + user << "This radio doesn't have any encryption keys!" + + else if(istype(W, /obj/item/device/encryptionkey/)) + if(keyslot) + user << "The radio can't hold another key!" + return + + if(!keyslot) + if(!user.unEquip(W)) + return + W.loc = src + keyslot = W + + recalculateChannels() + + +/obj/item/device/radio/off // Station bounced radios, their only difference is spawning with the speakers off, this was made to help the lag. + listening = 0 // And it's nice to have a subtype too for future features. + dog_fashion = /datum/dog_fashion/back diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm new file mode 100644 index 0000000..b2e05b5 --- /dev/null +++ b/code/game/objects/items/devices/scanners.dm @@ -0,0 +1,423 @@ + +/* +CONTAINS: +T-RAY +DETECTIVE SCANNER +HEALTH ANALYZER +GAS ANALYZER +MASS SPECTROMETER + +*/ +/obj/item/device/t_scanner + name = "\improper T-ray scanner" + desc = "A terahertz-ray emitter and scanner used to detect underfloor objects such as cables and pipes." + icon_state = "t-ray0" + var/on = 0 + slot_flags = SLOT_BELT + w_class = 2 + item_state = "electronic" + materials = list(MAT_METAL=150) + origin_tech = "magnets=1;engineering=1" + +/obj/item/device/t_scanner/attack_self(mob/user) + + on = !on + icon_state = copytext(icon_state, 1, length(icon_state))+"[on]" + + if(on) + START_PROCESSING(SSobj, src) + +/obj/item/device/t_scanner/proc/flick_sonar(obj/pipe) + var/image/I = image('icons/effects/effects.dmi', pipe, "blip", pipe.layer+1) + I.alpha = 128 + var/list/nearby = list() + for(var/mob/M in viewers(pipe)) + if(M.client) + nearby |= M.client + flick_overlay(I,nearby,8) + +/obj/item/device/t_scanner/process() + if(!on) + STOP_PROCESSING(SSobj, src) + return null + scan() + +/obj/item/device/t_scanner/proc/scan() + + for(var/turf/T in range(2, src.loc) ) + for(var/obj/O in T.contents) + + if(O.level != 1) + continue + + var/mob/living/L = locate() in O + + if(O.invisibility == INVISIBILITY_MAXIMUM) + O.invisibility = 0 + if(L) + flick_sonar(O) + spawn(10) + if(O && O.loc) + var/turf/U = O.loc + if(U.intact) + O.invisibility = INVISIBILITY_MAXIMUM + else + if(L) + flick_sonar(O) + + +/obj/item/device/healthanalyzer + name = "health analyzer" + icon_state = "health" + item_state = "analyzer" + desc = "A hand-held body scanner able to distinguish vital signs of the subject." + flags = CONDUCT | NOBLUDGEON + slot_flags = SLOT_BELT + throwforce = 3 + w_class = 1 + throw_speed = 3 + throw_range = 7 + materials = list(MAT_METAL=200) + origin_tech = "magnets=1;biotech=1" + var/mode = 1 + var/scanmode = 0 + +/obj/item/device/healthanalyzer/attack_self(mob/user) + if(!scanmode) + user << "You switch the health analyzer to scan chemical contents." + scanmode = 1 + else + user << "You switch the health analyzer to check physical health." + scanmode = 0 + +/obj/item/device/healthanalyzer/attack(mob/living/M, mob/living/carbon/human/user) + + // Clumsiness/brain damage check + if ((user.disabilities & CLUMSY || user.getBrainLoss() >= 60) && prob(50)) + user << "You stupidly try to analyze the floor's vitals!" + user.visible_message("[user] has analyzed the floor's vitals!") + user << "Analyzing results for The floor:\n\tOverall status: Healthy" + user << "Key: Suffocation/Toxin/Burn/Brute" + user << "\tDamage specifics: 0-0-0-0" + user << "Body temperature: ???" + return + + user.visible_message("[user] has analyzed [M]'s vitals.") + + if(scanmode == 0) + healthscan(user, M, mode) + else if(scanmode == 1) + chemscan(user, M) + + add_fingerprint(user) + + +// Used by the PDA medical scanner too +/proc/healthscan(mob/living/user, mob/living/M, mode = 1) + if(user.incapacitated() || user.eye_blind) + return + //Damage specifics + var/oxy_loss = M.getOxyLoss() + var/tox_loss = M.getToxLoss() + var/fire_loss = M.getFireLoss() + var/brute_loss = M.getBruteLoss() + var/mob_status = (M.stat > 1 ? "Deceased" : "[round(M.health/M.maxHealth,0.01)*100] % healthy") + + if(M.status_flags & FAKEDEATH) + mob_status = "Deceased" + oxy_loss = max(rand(1, 40), oxy_loss, (300 - (tox_loss + fire_loss + brute_loss))) // Random oxygen loss + + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(H.heart_attack && H.stat != DEAD) + user << "Subject suffering from heart attack: Apply defibrillator immediately!" + user << "Analyzing results for [M]:\n\tOverall status: [mob_status]" + + // Damage descriptions + if(brute_loss > 10) + user << "\t[brute_loss > 50 ? "Severe" : "Minor"] tissue damage detected." + if(fire_loss > 10) + user << "\t[fire_loss > 50 ? "Severe" : "Minor"] burn damage detected." + if(oxy_loss > 10) + user << "\t[oxy_loss > 50 ? "Severe" : "Minor"] oxygen deprivation detected." + if(tox_loss > 10) + user << "\t[tox_loss > 50 ? "Critical" : "Dangerous"] amount of toxins detected." + if(M.getStaminaLoss()) + user << "\tSubject appears to be suffering from fatigue." + if (M.getCloneLoss()) + user << "\tSubject appears to have [M.getCloneLoss() > 30 ? "severe" : "minor"] cellular damage." + if (M.reagents && M.reagents.get_reagent_amount("epinephrine")) + user << "\tBloodstream analysis located [M.reagents:get_reagent_amount("epinephrine")] units of rejuvenation chemicals." + if (M.getBrainLoss() >= 100 || !M.getorgan(/obj/item/organ/brain)) + user << "\tSubject brain function is non-existent." + else if (M.getBrainLoss() >= 60) + user << "\tSevere brain damage detected. Subject likely to have mental retardation." + else if (M.getBrainLoss() >= 10) + user << "\tBrain damage detected. Subject may have had a concussion." + + // Organ damage report + if(iscarbon(M) && mode == 1) + var/mob/living/carbon/C = M + var/list/damaged = C.get_damaged_bodyparts(1,1) + if(length(damaged)>0 || oxy_loss>0 || tox_loss>0 || fire_loss>0) + user << "\tDamage: Brute-Burn-Toxin-Suffocation\n\t\tSpecifics: [brute_loss]-[fire_loss]-[tox_loss]-[oxy_loss]" + for(var/obj/item/bodypart/org in damaged) + user << "\t\t[capitalize(org.name)]: [(org.brute_dam > 0) ? "[org.brute_dam]" : "0"]-[(org.burn_dam > 0) ? "[org.burn_dam]" : "0"]" + + // Species and body temperature + if(ishuman(M)) + var/mob/living/carbon/human/H = M + user << "Species: [H.dna.species.name]" + user << "Body temperature: [round(M.bodytemperature-T0C,0.1)] °C ([round(M.bodytemperature*1.8-459.67,0.1)] °F)" + + // Time of death + if(M.tod && (M.stat == DEAD || (M.status_flags & FAKEDEATH))) + user << "Time of Death: [M.tod]" + var/tdelta = round(world.time - M.timeofdeath) + if(tdelta < (DEFIB_TIME_LIMIT * 10)) + user << "Subject died [tdelta / 10] seconds \ + ago, defibrillation may be possible!" + + for(var/datum/disease/D in M.viruses) + if(!(D.visibility_flags & HIDDEN_SCANNER)) + user << "Warning: [D.form] detected\nName: [D.name].\nType: [D.spread_text].\nStage: [D.stage]/[D.max_stages].\nPossible Cure: [D.cure_text]" + + // Blood Level + if(M.has_dna()) + var/mob/living/carbon/C = M + var/blood_id = C.get_blood_id() + if(blood_id) + if(ishuman(C)) + var/mob/living/carbon/human/H = C + if(H.bleed_rate) + user << "Subject is bleeding!" + var/blood_percent = round((C.blood_volume / BLOOD_VOLUME_NORMAL)*100) + var/blood_type = C.dna.blood_type + if(blood_id != "blood")//special blood substance + blood_type = blood_id + if(C.blood_volume <= BLOOD_VOLUME_SAFE && C.blood_volume > BLOOD_VOLUME_OKAY) + user << "LOW blood level [blood_percent] %, [C.blood_volume] cl, type: [blood_type]" + else if(C.blood_volume <= BLOOD_VOLUME_OKAY) + user << "CRITICAL blood level [blood_percent] %, [C.blood_volume] cl, type: [blood_type]" + else + user << "Blood level [blood_percent] %, [C.blood_volume] cl, type: [blood_type]" + + var/cyberimp_detect + for(var/obj/item/organ/cyberimp/CI in C.internal_organs) + if(CI.status == ORGAN_ROBOTIC) + cyberimp_detect += "[C.name] is modified with a [CI.name].
          " + if(cyberimp_detect) + user << "Detected cybernetic modifications:" + user << "[cyberimp_detect]" + +/proc/chemscan(mob/living/user, mob/living/M) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(H.reagents) + if(H.reagents.reagent_list.len) + user << "Subject contains the following reagents:" + for(var/datum/reagent/R in H.reagents.reagent_list) + user << "[R.volume] units of [R.name][R.overdosed == 1 ? " - OVERDOSING" : ".
          "]" + else + user << "Subject contains no reagents." + if(H.reagents.addiction_list.len) + user << "Subject is addicted to the following reagents:" + for(var/datum/reagent/R in H.reagents.addiction_list) + user << "[R.name]" + else + user << "Subject is not addicted to any reagents." + +/obj/item/device/healthanalyzer/verb/toggle_mode() + set name = "Switch Verbosity" + set category = "Object" + + if(usr.stat || !usr.canmove || usr.restrained()) + return + + mode = !mode + switch (mode) + if(1) + usr << "The scanner now shows specific limb damage." + if(0) + usr << "The scanner no longer shows limb damage." + + +/obj/item/device/analyzer + desc = "A hand-held environmental scanner which reports current gas levels." + name = "analyzer" + icon_state = "atmos" + item_state = "analyzer" + w_class = 2 + flags = CONDUCT | NOBLUDGEON + slot_flags = SLOT_BELT + throwforce = 0 + throw_speed = 3 + throw_range = 7 + materials = list(MAT_METAL=30, MAT_GLASS=20) + origin_tech = "magnets=1;engineering=1" + +/obj/item/device/analyzer/attack_self(mob/user) + + add_fingerprint(user) + + if (user.stat || user.eye_blind) + return + + var/turf/location = user.loc + if(!istype(location)) + return + + var/datum/gas_mixture/environment = location.return_air() + + var/pressure = environment.return_pressure() + var/total_moles = environment.total_moles() + + user << "Results:" + if(abs(pressure - ONE_ATMOSPHERE) < 10) + user << "Pressure: [round(pressure,0.1)] kPa" + else + user << "Pressure: [round(pressure,0.1)] kPa" + if(total_moles) + var/list/env_gases = environment.gases + + environment.assert_gases(arglist(hardcoded_gases)) + var/o2_concentration = env_gases["o2"][MOLES]/total_moles + var/n2_concentration = env_gases["n2"][MOLES]/total_moles + var/co2_concentration = env_gases["co2"][MOLES]/total_moles + var/plasma_concentration = env_gases["plasma"][MOLES]/total_moles + environment.garbage_collect() + + if(abs(n2_concentration - N2STANDARD) < 20) + user << "Nitrogen: [round(n2_concentration*100, 0.01)] %" + else + user << "Nitrogen: [round(n2_concentration*100, 0.01)] %" + + if(abs(o2_concentration - O2STANDARD) < 2) + user << "Oxygen: [round(o2_concentration*100, 0.01)] %" + else + user << "Oxygen: [round(o2_concentration*100, 0.01)] %" + + if(co2_concentration > 0.01) + user << "CO2: [round(co2_concentration*100, 0.01)] %" + else + user << "CO2: [round(co2_concentration*100, 0.01)] %" + + if(plasma_concentration > 0.005) + user << "Plasma: [round(plasma_concentration*100, 0.01)] %" + else + user << "Plasma: [round(plasma_concentration*100, 0.01)] %" + + + for(var/id in env_gases) + if(id in hardcoded_gases) + continue + var/gas_concentration = env_gases[id][MOLES]/total_moles + user << "[env_gases[id][GAS_META][META_GAS_NAME]]: [round(gas_concentration*100, 0.01)] %" + user << "Temperature: [round(environment.temperature-T0C)] °C" + + +/obj/item/device/mass_spectrometer + desc = "A hand-held mass spectrometer which identifies trace chemicals in a blood sample." + name = "mass-spectrometer" + icon_state = "spectrometer" + item_state = "analyzer" + w_class = 2 + flags = CONDUCT | OPENCONTAINER + slot_flags = SLOT_BELT + throwforce = 0 + throw_speed = 3 + throw_range = 7 + materials = list(MAT_METAL=150, MAT_GLASS=100) + origin_tech = "magnets=2;biotech=1;plasmatech=2" + var/details = 0 + +/obj/item/device/mass_spectrometer/New() + ..() + create_reagents(5) + +/obj/item/device/mass_spectrometer/on_reagent_change() + if(reagents.total_volume) + icon_state = initial(icon_state) + "_s" + else + icon_state = initial(icon_state) + +/obj/item/device/mass_spectrometer/attack_self(mob/user) + if (user.stat || user.eye_blind) + return + if (!user.IsAdvancedToolUser()) + user << "You don't have the dexterity to do this!" + return + if(reagents.total_volume) + var/list/blood_traces = list() + for(var/datum/reagent/R in reagents.reagent_list) + if(R.id != "blood") + reagents.clear_reagents() + user << "The sample was contaminated! Please insert another sample." + return + else + blood_traces = params2list(R.data["trace_chem"]) + break + var/dat = "Trace Chemicals Found:" + if(!blood_traces.len) + dat += "
          None" + else + for(var/R in blood_traces) + dat += "
          [chemical_reagents_list[R]]" + if(details) + dat += " ([blood_traces[R]] units)" + dat += "
          " + user << dat + reagents.clear_reagents() + + +/obj/item/device/mass_spectrometer/adv + name = "advanced mass-spectrometer" + icon_state = "adv_spectrometer" + details = 1 + origin_tech = "magnets=4;biotech=3;plasmatech=3" + +/obj/item/device/slime_scanner + name = "slime scanner" + desc = "A device that analyzes a slime's internal composition and measures its stats." + icon_state = "adv_spectrometer" + item_state = "analyzer" + origin_tech = "biotech=2" + w_class = 2 + flags = CONDUCT + throwforce = 0 + throw_speed = 3 + throw_range = 7 + materials = list(MAT_METAL=30, MAT_GLASS=20) + +/obj/item/device/slime_scanner/attack(mob/living/M, mob/living/user) + if(user.stat || user.eye_blind) + return + if (!isslime(M)) + user << "This device can only scan slimes!" + return + var/mob/living/simple_animal/slime/T = M + user << "Slime scan results:" + user << "[T.colour] [T.is_adult ? "adult" : "baby"] slime" + user << "Nutrition: [T.nutrition]/[T.get_max_nutrition()]" + if (T.nutrition < T.get_starve_nutrition()) + user << "Warning: slime is starving!" + else if (T.nutrition < T.get_hunger_nutrition()) + user << "Warning: slime is hungry" + user << "Electric change strength: [T.powerlevel]" + user << "Health: [round(T.health/T.maxHealth,0.01)*100]" + if (T.slime_mutation[4] == T.colour) + user << "This slime does not evolve any further." + else + if (T.slime_mutation[3] == T.slime_mutation[4]) + if (T.slime_mutation[2] == T.slime_mutation[1]) + user << "Possible mutation: [T.slime_mutation[3]]" + user << "Genetic destability: [T.mutation_chance/2] % chance of mutation on splitting" + else + user << "Possible mutations: [T.slime_mutation[1]], [T.slime_mutation[2]], [T.slime_mutation[3]] (x2)" + user << "Genetic destability: [T.mutation_chance] % chance of mutation on splitting" + else + user << "Possible mutations: [T.slime_mutation[1]], [T.slime_mutation[2]], [T.slime_mutation[3]], [T.slime_mutation[4]]" + user << "Genetic destability: [T.mutation_chance] % chance of mutation on splitting" + if (T.cores > 1) + user << "Anomalious slime core amount detected" + user << "Growth progress: [T.amount_grown]/[SLIME_EVOLUTION_THRESHOLD]" diff --git a/code/game/objects/items/devices/sensor_device.dm b/code/game/objects/items/devices/sensor_device.dm new file mode 100644 index 0000000..dd4b28a --- /dev/null +++ b/code/game/objects/items/devices/sensor_device.dm @@ -0,0 +1,11 @@ +/obj/item/device/sensor_device + name = "handheld crew monitor" //Thanks to Gun Hog for the name! + desc = "A miniature machine that tracks suit sensors across the station." + icon = 'icons/obj/device.dmi' + icon_state = "scanner" + w_class = 2 + slot_flags = SLOT_BELT + origin_tech = "programming=3;materials=3;magnets=3" + +/obj/item/device/sensor_device/attack_self(mob/user) + crewmonitor.show(user) //Proc already exists, just had to call it diff --git a/code/game/objects/items/devices/taperecorder.dm b/code/game/objects/items/devices/taperecorder.dm new file mode 100644 index 0000000..319f150 --- /dev/null +++ b/code/game/objects/items/devices/taperecorder.dm @@ -0,0 +1,284 @@ +/obj/item/device/taperecorder + name = "universal recorder" + desc = "A device that can record to cassette tapes, and play them. It automatically translates the content in playback." + icon_state = "taperecorder_empty" + item_state = "analyzer" + w_class = 2 + flags = HEAR + slot_flags = SLOT_BELT + languages_spoken = ALL //this is a translator, after all. + languages_understood = ALL //this is a translator, after all. + materials = list(MAT_METAL=60, MAT_GLASS=30) + force = 2 + throwforce = 0 + var/recording = 0 + var/playing = 0 + var/playsleepseconds = 0 + var/obj/item/device/tape/mytape + var/open_panel = 0 + var/canprint = 1 + + +/obj/item/device/taperecorder/New() + mytape = new /obj/item/device/tape/random(src) + update_icon() + + +/obj/item/device/taperecorder/examine(mob/user) + ..() + user << "The wire panel is [open_panel ? "opened" : "closed"]." + + +/obj/item/device/taperecorder/attackby(obj/item/I, mob/user, params) + if(!mytape && istype(I, /obj/item/device/tape)) + if(!user.unEquip(I)) + return + I.loc = src + mytape = I + user << "You insert [I] into [src]." + update_icon() + + +/obj/item/device/taperecorder/proc/eject(mob/user) + if(mytape) + user << "You remove [mytape] from [src]." + stop() + user.put_in_hands(mytape) + mytape = null + update_icon() + +/obj/item/device/taperecorder/fire_act(exposed_temperature, exposed_volume) + mytape.ruin() //Fires destroy the tape + ..() + +/obj/item/device/taperecorder/attack_hand(mob/user) + if(loc == user) + if(mytape) + if(!user.is_holding(src)) + ..() + return + eject(user) + return + ..() + + +/obj/item/device/taperecorder/proc/can_use(mob/user) + if(user && ismob(user)) + if(!user.incapacitated()) + return 1 + return 0 + + +/obj/item/device/taperecorder/verb/ejectverb() + set name = "Eject Tape" + set category = "Object" + + if(!can_use(usr)) + return + if(!mytape) + return + + eject(usr) + + +/obj/item/device/taperecorder/update_icon() + if(!mytape) + icon_state = "taperecorder_empty" + else if(recording) + icon_state = "taperecorder_recording" + else if(playing) + icon_state = "taperecorder_playing" + else + icon_state = "taperecorder_idle" + + +/obj/item/device/taperecorder/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq, spans) + if(mytape && recording) + mytape.timestamp += mytape.used_capacity + mytape.storedinfo += "\[[time2text(mytape.used_capacity * 10,"mm:ss")]\] [message]" + +/obj/item/device/taperecorder/verb/record() + set name = "Start Recording" + set category = "Object" + + if(!can_use(usr)) + return + if(!mytape || mytape.ruined) + return + if(recording) + return + if(playing) + return + + if(mytape.used_capacity < mytape.max_capacity) + usr << "Recording started." + recording = 1 + update_icon() + mytape.timestamp += mytape.used_capacity + mytape.storedinfo += "\[[time2text(mytape.used_capacity * 10,"mm:ss")]\] Recording started." + var/used = mytape.used_capacity //to stop runtimes when you eject the tape + var/max = mytape.max_capacity + for(used, used < max) + if(recording == 0) + break + mytape.used_capacity++ + used++ + sleep(10) + recording = 0 + update_icon() + else + usr << "The tape is full." + + +/obj/item/device/taperecorder/verb/stop() + set name = "Stop" + set category = "Object" + + if(!can_use(usr)) + return + + if(recording) + recording = 0 + mytape.timestamp += mytape.used_capacity + mytape.storedinfo += "\[[time2text(mytape.used_capacity * 10,"mm:ss")]\] Recording stopped." + usr << "Recording stopped." + return + else if(playing) + playing = 0 + var/turf/T = get_turf(src) + T.visible_message("Tape Recorder: Playback stopped.") + update_icon() + + +/obj/item/device/taperecorder/verb/play() + set name = "Play Tape" + set category = "Object" + + if(!can_use(usr)) + return + if(!mytape || mytape.ruined) + return + if(recording) + return + if(playing) + return + + playing = 1 + update_icon() + usr << "Playing started." + var/used = mytape.used_capacity //to stop runtimes when you eject the tape + var/max = mytape.max_capacity + for(var/i = 1, used < max, sleep(10 * playsleepseconds)) + if(!mytape) + break + if(playing == 0) + break + if(mytape.storedinfo.len < i) + break + say(mytape.storedinfo[i]) + if(mytape.storedinfo.len < i + 1) + playsleepseconds = 1 + sleep(10) + say("End of recording.") + else + playsleepseconds = mytape.timestamp[i + 1] - mytape.timestamp[i] + if(playsleepseconds > 14) + sleep(10) + say("Skipping [playsleepseconds] seconds of silence") + playsleepseconds = 1 + i++ + + playing = 0 + update_icon() + + +/obj/item/device/taperecorder/attack_self(mob/user) + if(!mytape || mytape.ruined) + return + if(recording) + stop() + else + record() + + +/obj/item/device/taperecorder/verb/print_transcript() + set name = "Print Transcript" + set category = "Object" + + if(!can_use(usr)) + return + if(!mytape) + return + if(!canprint) + usr << "The recorder can't print that fast!" + return + if(recording || playing) + return + + usr << "Transcript printed." + var/obj/item/weapon/paper/P = new /obj/item/weapon/paper(get_turf(src)) + var/t1 = "Transcript:

          " + for(var/i = 1, mytape.storedinfo.len >= i, i++) + t1 += "[mytape.storedinfo[i]]
          " + P.info = t1 + P.name = "paper- 'Transcript'" + usr.put_in_hands(P) + canprint = 0 + sleep(300) + canprint = 1 + + +//empty tape recorders +/obj/item/device/taperecorder/empty/New() + return + + +/obj/item/device/tape + name = "tape" + desc = "A magnetic tape that can hold up to ten minutes of content." + icon_state = "tape_white" + item_state = "analyzer" + w_class = 1 + materials = list(MAT_METAL=20, MAT_GLASS=5) + force = 1 + throwforce = 0 + var/max_capacity = 600 + var/used_capacity = 0 + var/list/storedinfo = list() + var/list/timestamp = list() + var/ruined = 0 + +/obj/item/device/tape/fire_act(exposed_temperature, exposed_volume) + ruin() + ..() + +/obj/item/device/tape/attack_self(mob/user) + if(!ruined) + user << "You pull out all the tape!" + ruin() + + +/obj/item/device/tape/proc/ruin() + //Lets not add infinite amounts of overlays when our fireact is called + //repeatedly + if(!ruined) + add_overlay("ribbonoverlay") + ruined = 1 + + +/obj/item/device/tape/proc/fix() + overlays -= "ribbonoverlay" + ruined = 0 + + +/obj/item/device/tape/attackby(obj/item/I, mob/user, params) + if(ruined && istype(I, /obj/item/weapon/screwdriver)) + user << "You start winding the tape back in..." + if(do_after(user, 120/I.toolspeed, target = src)) + user << "You wound the tape back in." + fix() + + +//Random colour tapes +/obj/item/device/tape/random/New() + icon_state = "tape_[pick("white", "blue", "red", "yellow", "purple")]" diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm new file mode 100644 index 0000000..82d07c4 --- /dev/null +++ b/code/game/objects/items/devices/traitordevices.dm @@ -0,0 +1,225 @@ +/* + +Miscellaneous traitor devices + +BATTERER + +RADIOACTIVE MICROLASER + +*/ + +/* + +The Batterer, like a flashbang but 50% chance to knock people over. Can be either very +effective or pretty fucking useless. + +*/ + +/obj/item/device/batterer + name = "mind batterer" + desc = "A strange device with twin antennas." + icon_state = "batterer" + throwforce = 5 + w_class = 1 + throw_speed = 3 + throw_range = 7 + flags = CONDUCT + item_state = "electronic" + origin_tech = "magnets=3;combat=3;syndicate=3" + + var/times_used = 0 //Number of times it's been used. + var/max_uses = 2 + + +/obj/item/device/batterer/attack_self(mob/living/carbon/user, flag = 0, emp = 0) + if(!user) return + if(times_used >= max_uses) + user << "The mind batterer has been burnt out!" + return + + add_logs(user, null, "knocked down people in the area", src) + + for(var/mob/living/carbon/human/M in urange(10, user, 1)) + if(prob(50)) + + M.Weaken(rand(10,20)) + if(prob(25)) + M.Stun(rand(5,10)) + M << "You feel a tremendous, paralyzing wave flood your mind." + + else + M << "You feel a sudden, electric jolt travel through your head." + + playsound(src.loc, 'sound/misc/interference.ogg', 50, 1) + user << "You trigger [src]." + times_used += 1 + if(times_used >= max_uses) + icon_state = "battererburnt" + +/* + The radioactive microlaser, a device disguised as a health analyzer used to irradiate people. + + The strength of the radiation is determined by the 'intensity' setting, while the delay between + the scan and the irradiation kicking in is determined by the wavelength. + + Each scan will cause the microlaser to have a brief cooldown period. Higher intensity will increase + the cooldown, while higher wavelength will decrease it. + + Wavelength is also slightly increased by the intensity as well. +*/ + +/obj/item/device/healthanalyzer/rad_laser + materials = list(MAT_METAL=400) + origin_tech = "magnets=3;biotech=5;syndicate=3" + var/irradiate = 1 + var/intensity = 10 // how much damage the radiation does + var/wavelength = 10 // time it takes for the radiation to kick in, in seconds + var/used = 0 // is it cooling down? + +/obj/item/device/healthanalyzer/rad_laser/attack(mob/living/M, mob/living/user) + ..() + if(!irradiate) + return + if(!used) + add_logs(user, M, "irradiated", src) + var/cooldown = round(max(10, (intensity*5 - wavelength/4))) * 10 + used = 1 + icon_state = "health1" + handle_cooldown(cooldown) // splits off to handle the cooldown while handling wavelength + user << "Successfully irradiated [M]." + spawn((wavelength+(intensity*4))*5) + if(M) + if(intensity >= 5) + M.apply_effect(round(intensity/1.5), PARALYZE) + M.rad_act(intensity*10) + else + user << "The radioactive microlaser is still recharging." + +/obj/item/device/healthanalyzer/rad_laser/proc/handle_cooldown(cooldown) + spawn(cooldown) + used = 0 + icon_state = "health" + +/obj/item/device/healthanalyzer/rad_laser/attack_self(mob/user) + interact(user) + +/obj/item/device/healthanalyzer/rad_laser/interact(mob/user) + user.set_machine(src) + + var/cooldown = round(max(10, (intensity*5 - wavelength/4))) + var/dat = "Irradiation: [irradiate ? "On" : "Off"]
          " + dat += "Scan Mode: " + if(!scanmode) + dat += "Scan Health" + else if(scanmode == 1) + dat += "Scan Reagents" + else + dat += "Disabled" + dat += "

          " + + dat += {" + Radiation Intensity: + -- + [intensity] + ++
          + + Radiation Wavelength: + -- + [(wavelength+(intensity*4))] + ++
          + Laser Cooldown: [cooldown] Seconds
          + "} + + var/datum/browser/popup = new(user, "radlaser", "Radioactive Microlaser Interface", 400, 240) + popup.set_content(dat) + popup.open() + +/obj/item/device/healthanalyzer/rad_laser/Topic(href, href_list) + if(!usr.canUseTopic(src)) + return 1 + + usr.set_machine(src) + if(href_list["rad"]) + irradiate = !irradiate + + else if(href_list["mode"]) + scanmode += 1 + if(scanmode > 2) + scanmode = 0 + + else if(href_list["radint"]) + var/amount = text2num(href_list["radint"]) + amount += intensity + intensity = max(1,(min(20,amount))) + + else if(href_list["radwav"]) + var/amount = text2num(href_list["radwav"]) + amount += wavelength + wavelength = max(0,(min(120,amount))) + + attack_self(usr) + add_fingerprint(usr) + return + +/obj/item/device/shadowcloak + name = "cloaker belt" + desc = "Makes you invisible for short periods of time. Recharges in darkness." + icon = 'icons/obj/clothing/belts.dmi' + icon_state = "utilitybelt" + item_state = "utility" + slot_flags = SLOT_BELT + attack_verb = list("whipped", "lashed", "disciplined") + + var/mob/living/carbon/human/user = null + var/charge = 300 + var/max_charge = 300 + var/on = 0 + var/old_alpha = 0 + actions_types = list(/datum/action/item_action/toggle) + +/obj/item/device/shadowcloak/ui_action_click(mob/user) + if(user.get_item_by_slot(slot_belt) == src) + if(!on) + Activate(usr) + else + Deactivate() + return + +/obj/item/device/shadowcloak/item_action_slot_check(slot, mob/user) + if(slot == slot_belt) + return 1 + +/obj/item/device/shadowcloak/proc/Activate(mob/living/carbon/human/user) + if(!user) + return + user << "You activate [src]." + src.user = user + START_PROCESSING(SSobj, src) + old_alpha = user.alpha + on = 1 + +/obj/item/device/shadowcloak/proc/Deactivate() + user << "You deactivate [src]." + STOP_PROCESSING(SSobj, src) + if(user) + user.alpha = old_alpha + on = 0 + user = null + +/obj/item/device/shadowcloak/dropped(mob/user) + ..() + if(user && user.get_item_by_slot(slot_belt) != src) + Deactivate() + +/obj/item/device/shadowcloak/process() + if(user.get_item_by_slot(slot_belt) != src) + Deactivate() + return + var/turf/T = get_turf(src) + if(on) + var/lumcount = T.get_lumcount() + if(lumcount > 3) + charge = max(0,charge - 25)//Quick decrease in light + else + charge = min(max_charge,charge + 50) //Charge in the dark + animate(user,alpha = Clamp(255 - charge,0,255),time = 10) diff --git a/code/game/objects/items/devices/transfer_valve.dm b/code/game/objects/items/devices/transfer_valve.dm new file mode 100644 index 0000000..3ff3b41 --- /dev/null +++ b/code/game/objects/items/devices/transfer_valve.dm @@ -0,0 +1,213 @@ +/obj/item/device/transfer_valve + icon = 'icons/obj/assemblies.dmi' + name = "tank transfer valve" + icon_state = "valve_1" + item_state = "ttv" + desc = "Regulates the transfer of air between two tanks" + var/obj/item/weapon/tank/tank_one + var/obj/item/weapon/tank/tank_two + var/obj/item/device/attached_device + var/mob/attacher = null + var/valve_open = 0 + var/toggle = 1 + origin_tech = "materials=1;engineering=1" + +/obj/item/device/transfer_valve/IsAssemblyHolder() + return 1 + +/obj/item/device/transfer_valve/attackby(obj/item/item, mob/user, params) + if(istype(item, /obj/item/weapon/tank)) + if(tank_one && tank_two) + user << "There are already two tanks attached, remove one first!" + return + + if(!tank_one) + if(!user.unEquip(item)) + return + tank_one = item + item.loc = src + user << "You attach the tank to the transfer valve." + if(item.w_class > w_class) + w_class = item.w_class + else if(!tank_two) + if(!user.unEquip(item)) + return + tank_two = item + item.loc = src + user << "You attach the tank to the transfer valve." + if(item.w_class > w_class) + w_class = item.w_class + + update_icon() +//TODO: Have this take an assemblyholder + else if(isassembly(item)) + var/obj/item/device/assembly/A = item + if(A.secured) + user << "The device is secured." + return + if(attached_device) + user << "There is already a device attached to the valve, remove it first!" + return + user.remove_from_mob(item) + attached_device = A + A.loc = src + user << "You attach the [item] to the valve controls and secure it." + A.holder = src + A.toggle_secure() //this calls update_icon(), which calls update_icon() on the holder (i.e. the bomb). + + bombers += "[key_name(user)] attached a [item] to a transfer valve." + message_admins("[key_name_admin(user)] attached a [item] to a transfer valve.") + log_game("[key_name_admin(user)] attached a [item] to a transfer valve.") + attacher = user + return + +/obj/item/device/transfer_valve/attack_self(mob/user) + user.set_machine(src) + var/dat = {" Valve properties: +
          Attachment one: [tank_one] [tank_one ? "Remove" : ""] +
          Attachment two: [tank_two] [tank_two ? "Remove" : ""] +
          Valve attachment: [attached_device ? "[attached_device]" : "None"] [attached_device ? "Remove" : ""] +
          Valve status: [ valve_open ? "Closed Open" : "Closed Open"]"} + + var/datum/browser/popup = new(user, "trans_valve", name) + popup.set_content(dat) + popup.open() + return + +/obj/item/device/transfer_valve/Topic(href, href_list) + ..() + if ( usr.stat || usr.restrained() ) + return + if (src.loc == usr) + if(tank_one && href_list["tankone"]) + split_gases() + valve_open = 0 + tank_one.loc = get_turf(src) + tank_one = null + update_icon() + if((!tank_two || tank_two.w_class < 4) && (w_class > 3)) + w_class = 3 + else if(tank_two && href_list["tanktwo"]) + split_gases() + valve_open = 0 + tank_two.loc = get_turf(src) + tank_two = null + update_icon() + if((!tank_one || tank_one.w_class < 4) && (w_class > 3)) + w_class = 3 + else if(href_list["open"]) + toggle_valve() + else if(attached_device) + if(href_list["rem_device"]) + attached_device.loc = get_turf(src) + attached_device:holder = null + attached_device = null + update_icon() + if(href_list["device"]) + attached_device.attack_self(usr) + + src.attack_self(usr) + src.add_fingerprint(usr) + return + return + +/obj/item/device/transfer_valve/proc/process_activation(obj/item/device/D) + if(toggle) + toggle = 0 + toggle_valve() + spawn(50) // To stop a signal being spammed from a proxy sensor constantly going off or whatever + toggle = 1 + +/obj/item/device/transfer_valve/update_icon() + cut_overlays() + underlays = null + + if(!tank_one && !tank_two && !attached_device) + icon_state = "valve_1" + return + icon_state = "valve" + + if(tank_one) + add_overlay("[tank_one.icon_state]") + if(tank_two) + var/icon/J = new(icon, icon_state = "[tank_two.icon_state]") + J.Shift(WEST, 13) + underlays += J + if(attached_device) + add_overlay("device") + +/obj/item/device/transfer_valve/proc/merge_gases() + tank_two.air_contents.volume += tank_one.air_contents.volume + var/datum/gas_mixture/temp + temp = tank_one.air_contents.remove_ratio(1) + tank_two.air_contents.merge(temp) + +/obj/item/device/transfer_valve/proc/split_gases() + if (!valve_open || !tank_one || !tank_two) + return + var/ratio1 = tank_one.air_contents.volume/tank_two.air_contents.volume + var/datum/gas_mixture/temp + temp = tank_two.air_contents.remove_ratio(ratio1) + tank_one.air_contents.merge(temp) + tank_two.air_contents.volume -= tank_one.air_contents.volume + + /* + Exadv1: I know this isn't how it's going to work, but this was just to check + it explodes properly when it gets a signal (and it does). + */ + +/obj/item/device/transfer_valve/proc/toggle_valve() + if(!valve_open && tank_one && tank_two) + valve_open = 1 + var/turf/bombturf = get_turf(src) + var/area/A = get_area(bombturf) + + var/attachment = "no device" + if(attached_device) + if(istype(attached_device, /obj/item/device/assembly/signaler)) + attachment = "[attached_device]" + else + attachment = attached_device + + var/attacher_name = "" + if(!attacher) + attacher_name = "Unknown" + else + attacher_name = "[key_name_admin(attacher)]" + + var/log_str1 = "Bomb valve opened in " + var/log_str2 = "with [attachment] attacher: [attacher_name]" + + var/log_attacher = "" + if(attacher) + log_attacher = "(?) (FLW)" + + var/mob/mob = get_mob_by_key(src.fingerprintslast) + var/last_touch_info = "" + if(mob) + last_touch_info = "(?) (FLW)" + + var/log_str3 = " Last touched by: [key_name_admin(mob)]" + + var/bomb_message = "[log_str1] [A.name] [log_str2][log_attacher] [log_str3][last_touch_info]" + + bombers += bomb_message + + message_admins(bomb_message, 0, 1) + log_game("[log_str1] [A.name]([A.x],[A.y],[A.z]) [log_str2] [log_str3]") + merge_gases() + spawn(20) // In case one tank bursts + for (var/i=0,i<5,i++) + src.update_icon() + sleep(10) + src.update_icon() + + else if(valve_open && tank_one && tank_two) + split_gases() + valve_open = 0 + src.update_icon() + +// this doesn't do anything but the timer etc. expects it to be here +// eventually maybe have it update icon to show state (timer, prox etc.) like old bombs +/obj/item/device/transfer_valve/proc/c_state() + return diff --git a/code/game/objects/items/documents.dm b/code/game/objects/items/documents.dm new file mode 100644 index 0000000..f6edd0f --- /dev/null +++ b/code/game/objects/items/documents.dm @@ -0,0 +1,58 @@ +/obj/item/documents + name = "secret documents" + desc = "\"Top Secret\" documents." + icon = 'icons/obj/bureaucracy.dmi' + icon_state = "docs_generic" + item_state = "paper" + throwforce = 0 + w_class = 1 + throw_range = 1 + throw_speed = 1 + layer = MOB_LAYER + pressure_resistance = 2 + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF + +/obj/item/documents/nanotrasen + desc = "\"Top Secret\" Nanotrasen documents, filled with complex diagrams and lists of names, dates and coordinates." + icon_state = "docs_verified" + +/obj/item/documents/syndicate + desc = "\"Top Secret\" documents detailing sensitive Syndicate operational intelligence." + +/obj/item/documents/syndicate/red + name = "red secret documents" + desc = "\"Top Secret\" documents detailing sensitive Syndicate operational intelligence. These documents are verified with a red wax seal." + icon_state = "docs_red" + +/obj/item/documents/syndicate/blue + name = "blue secret documents" + desc = "\"Top Secret\" documents detailing sensitive Syndicate operational intelligence. These documents are verified with a blue wax seal." + icon_state = "docs_blue" + +/obj/item/documents/syndicate/mining + desc = "\"Top Secret\" documents detailing Syndicate plasma mining operations." + +/obj/item/documents/photocopy + desc = "A copy of some top-secret documents. Nobody will notice they aren't the originals... right?" + var/forgedseal = 0 + var/copy_type = null + +/obj/item/documents/photocopy/New(loc, obj/item/documents/copy=null) + ..() + if(copy) + copy_type = copy.type + if(istype(copy, /obj/item/documents/photocopy)) // Copy Of A Copy Of A Copy + var/obj/item/documents/photocopy/C = copy + copy_type = C.copy_type + +/obj/item/documents/photocopy/attackby(obj/item/O, mob/user, params) + if(istype(O, /obj/item/toy/crayon/red) || istype(O, /obj/item/toy/crayon/blue)) + if (forgedseal) + user << "You have already forged a seal on [src]!" + else + var/obj/item/toy/crayon/C = O + name = "[C.item_color] secret documents" + icon_state = "docs_[C.item_color]" + forgedseal = C.item_color + user << "You forge the official seal with a [C.item_color] crayon. No one will notice... right?" + update_icon() \ No newline at end of file diff --git a/code/game/objects/items/latexballoon.dm b/code/game/objects/items/latexballoon.dm new file mode 100644 index 0000000..5ecbc3e --- /dev/null +++ b/code/game/objects/items/latexballoon.dm @@ -0,0 +1,56 @@ +/obj/item/latexballon + name = "latex glove" + desc = "Sterile and airtight." + icon_state = "latexballon" + item_state = "lgloves" + force = 0 + throwforce = 0 + w_class = 1 + throw_speed = 1 + throw_range = 7 + var/state + var/datum/gas_mixture/air_contents = null + +/obj/item/latexballon/proc/blow(obj/item/weapon/tank/tank, mob/user) + if (icon_state == "latexballon_bursted") + return + icon_state = "latexballon_blow" + item_state = "latexballon" + user.update_inv_hands() + user << "You blow up [src] with [tank]." + air_contents = tank.remove_air_volume(3) + +/obj/item/latexballon/proc/burst() + if (!air_contents || icon_state != "latexballon_blow") + return + playsound(src, 'sound/weapons/Gunshot.ogg', 100, 1) + icon_state = "latexballon_bursted" + item_state = "lgloves" + if(isliving(loc)) + var/mob/living/user = src.loc + user.update_inv_hands() + loc.assume_air(air_contents) + +/obj/item/latexballon/ex_act(severity, target) + burst() + switch(severity) + if (1) + qdel(src) + if (2) + if (prob(50)) + qdel(src) + +/obj/item/latexballon/bullet_act() + burst() + +/obj/item/latexballon/temperature_expose(datum/gas_mixture/air, temperature, volume) + if(temperature > T0C+100) + burst() + +/obj/item/latexballon/attackby(obj/item/W, mob/user, params) + if(istype(W, /obj/item/weapon/tank)) + var/obj/item/weapon/tank/T = W + blow(T, user) + return + if (is_sharp(W) || W.is_hot() || is_pointed(W)) + burst() diff --git a/code/game/objects/items/nuke_tools.dm b/code/game/objects/items/nuke_tools.dm new file mode 100644 index 0000000..6d4969e --- /dev/null +++ b/code/game/objects/items/nuke_tools.dm @@ -0,0 +1,83 @@ +//Items for nuke theft traitor objective + +//the nuke core - objective item +/obj/item/nuke_core + name = "plutonium core" + desc = "Extremely radioactive. Wear goggles." + icon = 'icons/obj/nuke_tools.dmi' + icon_state = "plutonium_core" + item_state = "plutoniumcore" + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF + var/pulse = 0 + var/cooldown = 0 + +/obj/item/nuke_core/New() + ..() + START_PROCESSING(SSobj, src) + +/obj/item/nuke_core/attackby(obj/item/nuke_core_container/container, mob/user) + if(istype(container)) + container.load(src, user) + else + return ..() + +/obj/item/nuke_core/process() + if(cooldown < world.time - 60) + cooldown = world.time + flick("plutonium_core_pulse", src) + radiation_pulse(get_turf(src), 1, 4, 40, 1) + +//nuke core box, for carrying the core +/obj/item/nuke_core_container + name = "nuke core container" + desc = "Solid container for radioactive objects." + icon = 'icons/obj/nuke_tools.dmi' + icon_state = "core_container_empty" + item_state = "tile" + var/obj/item/nuke_core/core = null + +/obj/item/nuke_core_container/proc/load(obj/item/nuke_core/ncore, mob/user) + if(core || !istype(ncore)) + return 0 + ncore.loc = src + core = ncore + icon_state = "core_container_loaded" + user << "Container is sealing..." + addtimer(src, "seal", 50) + return 1 + +/obj/item/nuke_core_container/proc/seal() + if(istype(core)) + STOP_PROCESSING(SSobj, core) + icon_state = "core_container_sealed" + playsound(loc, 'sound/items/Deconstruct.ogg', 60, 1) + if(ismob(loc)) + loc << "[src] is permanently sealed, [core]'s radiation is contained." + +/obj/item/nuke_core_container/attackby(obj/item/nuke_core/core, mob/user) + if(istype(core)) + if(!user.unEquip(core)) + user << "The [core] is stuck to your hand!" + return + else + load(core, user) + else + return ..() + +//snowflake screwdriver, works as a key to start nuke theft, traitor only +/obj/item/weapon/screwdriver/nuke + name = "screwdriver" + desc = "A screwdriver with an ultra thin tip." + icon = 'icons/obj/nuke_tools.dmi' + icon_state = "screwdriver_nuke" + toolspeed = 2 + +/obj/item/weapon/paper/nuke_instructions + info = "How to break into a Nanotrasen self-destruct terminal and remove its plutonium core:
          \ +
            \ +
          • Use a screwdriver with a very thin tip (provided) to unscrew the terminal's front panel
          • \ +
          • Dislodge and remove the front panel with a crowbar
          • \ +
          • Cut the inner metal plate with a welding tool
          • \ +
          • Pry off the inner plate with a crowbar to expose the radioactive core
          • \ +
          • Use the core container to remove the plutonium core; the container will take some time to seal
          • \ +
          • ???
          • " diff --git a/code/game/objects/items/religion.dm b/code/game/objects/items/religion.dm new file mode 100644 index 0000000..aded55b --- /dev/null +++ b/code/game/objects/items/religion.dm @@ -0,0 +1,189 @@ +/obj/item/weapon/banner + name = "banner" + icon = 'icons/obj/items.dmi' + icon_state = "banner" + item_state = "banner" + desc = "A banner with Nanotrasen's logo on it." + var/moralecooldown = 0 + var/moralewait = 600 + +/obj/item/weapon/banner/attack_self(mob/living/carbon/human/user) + if(moralecooldown + moralewait > world.time) + return + user << "You increase the morale of your fellows!" + moralecooldown = world.time + + for(var/mob/living/carbon/human/H in range(4,get_turf(src))) + H << "Your morale is increased by [user]'s banner!" + H.adjustBruteLoss(-15) + H.adjustFireLoss(-15) + H.AdjustStunned(-2) + H.AdjustWeakened(-2) + H.AdjustParalysis(-2) + + +/obj/item/weapon/banner/red + name = "red banner" + icon_state = "banner-red" + item_state = "banner-red" + desc = "A banner with the logo of the red deity." + +/obj/item/weapon/banner/blue + name = "blue banner" + icon_state = "banner-blue" + item_state = "banner-blue" + desc = "A banner with the logo of the blue deity" + +/obj/item/weapon/storage/backpack/bannerpack + name = "nanotrasen banner backpack" + desc = "It's a backpack with lots of extra room. A banner with Nanotrasen's logo is attached, that can't be removed." + max_combined_w_class = 27 //6 more then normal, for the tradeoff of declaring yourself an antag at all times. + icon_state = "bannerpack" + +/obj/item/weapon/storage/backpack/bannerpack/red + name = "red banner backpack" + desc = "It's a backpack with lots of extra room. A red banner is attached, that can't be removed." + icon_state = "bannerpack-red" + +/obj/item/weapon/storage/backpack/bannerpack/blue + name = "blue banner backpack" + desc = "It's a backpack with lots of extra room. A blue banner is attached, that can't be removed." + icon_state = "bannerpack-blue" + +//this is all part of one item set +/obj/item/clothing/suit/armor/plate/crusader + name = "Crusader's Armour" + desc = "Armour that's comprised of metal and cloth." + icon_state = "crusader" + w_class = 4 //bulky + slowdown = 2.0 //gotta pretend we're balanced. + body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS + armor = list(melee = 50, bullet = 50, laser = 50, energy = 40, bomb = 60, bio = 0, rad = 0, fire = 60, acid = 60) + +/obj/item/clothing/suit/armor/plate/crusader/red + icon_state = "crusader-red" + +/obj/item/clothing/suit/armor/plate/crusader/blue + icon_state = "crusader-blue" + +/obj/item/clothing/head/helmet/plate/crusader + name = "Crusader's Hood" + desc = "A brownish hood." + icon_state = "crusader" + w_class = 3 //normal + flags_inv = HIDEHAIR|HIDEEARS|HIDEFACE + armor = list(melee = 50, bullet = 50, laser = 50, energy = 40, bomb = 60, bio = 0, rad = 0, fire = 60, acid = 60) + +/obj/item/clothing/head/helmet/plate/crusader/blue + icon_state = "crusader-blue" + +/obj/item/clothing/head/helmet/plate/crusader/red + icon_state = "crusader-red" + +//Prophet helmet +/obj/item/clothing/head/helmet/plate/crusader/prophet + name = "Prophet's Hat" + desc = "A religious-looking hat." + alternate_worn_icon = 'icons/mob/large-worn-icons/64x64/head.dmi' + flags = 0 + armor = list(melee = 60, bullet = 60, laser = 60, energy = 50, bomb = 70, bio = 50, rad = 50, fire = 60, acid = 60) //religion protects you from disease and radiation, honk. + worn_x_dimension = 64 + worn_y_dimension = 64 + +/obj/item/clothing/head/helmet/plate/crusader/prophet/red + icon_state = "prophet-red" + +/obj/item/clothing/head/helmet/plate/crusader/prophet/blue + icon_state = "prophet-blue" + +//Structure conversion staff +/obj/item/weapon/godstaff + name = "godstaff" + desc = "It's a stick..?" + icon_state = "godstaff-red" + var/conversion_color = "#ffffff" + var/staffcooldown = 0 + var/staffwait = 30 + + +/obj/item/weapon/godstaff/afterattack(atom/target, mob/user, proximity_flag, click_parameters) + if(staffcooldown + staffwait > world.time) + return + user.visible_message("[user] chants deeply and waves their staff!") + if(do_after(user, 20,1,src)) + target.add_atom_colour(conversion_color, WASHABLE_COLOUR_PRIORITY) //wololo + staffcooldown = world.time + +/obj/item/weapon/godstaff/red + icon_state = "godstaff-red" + conversion_color = "#ff0000" + +/obj/item/weapon/godstaff/blue + icon_state = "godstaff-blue" + conversion_color = "#0000ff" + +/obj/item/clothing/gloves/plate + name = "Plate Gauntlets" + icon_state = "crusader" + desc = "They're like gloves, but made of metal." + siemens_coefficient = 0 + cold_protection = HANDS + min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT + heat_protection = HANDS + max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT + +/obj/item/clothing/gloves/plate/red + icon_state = "crusader-red" + +/obj/item/clothing/gloves/plate/blue + icon_state = "crusader-blue" + +/obj/item/clothing/shoes/plate + name = "Plate Boots" + desc = "Metal boots, they look heavy." + icon_state = "crusader" + w_class = 3 //normal + armor = list(melee = 50, bullet = 50, laser = 50, energy = 40, bomb = 60, bio = 0, rad = 0, fire = 60, acid = 60) //does this even do anything on boots? + flags = NOSLIP + cold_protection = FEET + min_cold_protection_temperature = SHOES_MIN_TEMP_PROTECT + heat_protection = FEET + max_heat_protection_temperature = SHOES_MAX_TEMP_PROTECT + + +/obj/item/clothing/shoes/plate/red + icon_state = "crusader-red" + +/obj/item/clothing/shoes/plate/blue + icon_state = "crusader-blue" + + +/obj/item/weapon/storage/box/itemset/crusader + name = "Crusader's Armour Set" //i can't into ck2 references + desc = "This armour is said to be based on the armor of kings on another world thousands of years ago, who tended to assassinate, conspire, and plot against everyone who tried to do the same to them. Some things never change." + + +/obj/item/weapon/storage/box/itemset/crusader/blue/New() + ..() + contents = list() + sleep(1) + new /obj/item/clothing/suit/armor/plate/crusader/blue(src) + new /obj/item/clothing/head/helmet/plate/crusader/blue(src) + new /obj/item/clothing/gloves/plate/blue(src) + new /obj/item/clothing/shoes/plate/blue(src) + + +/obj/item/weapon/storage/box/itemset/crusader/red/New() + ..() + contents = list() + sleep(1) + new /obj/item/clothing/suit/armor/plate/crusader/red(src) + new /obj/item/clothing/head/helmet/plate/crusader/red(src) + new /obj/item/clothing/gloves/plate/red(src) + new /obj/item/clothing/shoes/plate/red(src) + + +/obj/item/weapon/claymore/weak + desc = "This one is rusted." + force = 30 + armour_penetration = 15 \ No newline at end of file diff --git a/code/game/objects/items/robot/ai_upgrades.dm b/code/game/objects/items/robot/ai_upgrades.dm new file mode 100644 index 0000000..97a1fab --- /dev/null +++ b/code/game/objects/items/robot/ai_upgrades.dm @@ -0,0 +1,40 @@ +///AI Upgrades + + +//Malf Picker +/obj/item/device/malf_upgrade + name = "combat software upgrade" + desc = "A highly illegal, highly dangerous upgrade for artificial intelligence units, granting them a variety of powers as well as the ability to hack APCs." + icon = 'icons/obj/module.dmi' + icon_state = "datadisk3" + + +/obj/item/device/malf_upgrade/afterattack(mob/living/silicon/ai/AI, mob/user) + if(!istype(AI)) + return + if(AI.malf_picker) + AI.malf_picker.processing_time += 50 + AI << "[user] has attempted to upgrade you with combat software that you already possess. You gain 50 points to spend on Malfunction Modules instead." + else + AI << "[user] has upgraded you with combat software!" + AI.add_malf_picker() + user << "You upgrade [AI]. [src] is consumed in the process." + qdel(src) + + +//Lipreading +/obj/item/device/surveillance_upgrade + name = "surveillance software upgrade" + desc = "A software package that will allow an artificial intelligence to 'hear' from its cameras via lip reading." + icon = 'icons/obj/module.dmi' + icon_state = "datadisk3" + +/obj/item/device/surveillance_upgrade/afterattack(mob/living/silicon/ai/AI, mob/user) + if(!istype(AI)) + return + if(AI.eyeobj) + AI.eyeobj.relay_speech = TRUE + AI << "[user] has upgraded you with surveillance software!" + AI << "Via a combination of hidden microphones and lip reading software, you are able to use your cameras to listen in on conversations." + user << "You upgrade [AI]. [src] is consumed in the process." + qdel(src) diff --git a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm new file mode 100644 index 0000000..e4c6ed0 --- /dev/null +++ b/code/game/objects/items/robot/robot_items.dm @@ -0,0 +1,382 @@ +/********************************************************************** + Cyborg Spec Items +***********************************************************************/ +/obj/item/borg + icon = 'icons/mob/robot_items.dmi' + + +/obj/item/borg/stun + name = "electrically-charged arm" + icon_state = "elecarm" + var/charge_cost = 30 + +/obj/item/borg/stun/attack(mob/living/M, mob/living/user) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(H.check_shields(0, "[M]'s [name]", src, MELEE_ATTACK)) + playsound(M, 'sound/weapons/Genhit.ogg', 50, 1) + return 0 + if(iscyborg(user)) + var/mob/living/silicon/robot/R = user + if(!R.cell.use(charge_cost)) + return + + user.do_attack_animation(M) + M.Weaken(5) + M.apply_effect(STUTTER, 5) + M.Stun(5) + + M.visible_message("[user] has prodded [M] with [src]!", \ + "[user] has prodded you with [src]!") + + playsound(loc, 'sound/weapons/Egloves.ogg', 50, 1, -1) + + add_logs(user, M, "stunned", src, "(INTENT: [uppertext(user.a_intent)])") + +/obj/item/borg/cyborghug + name = "Hugging Module" + icon_state = "hugmodule" + desc = "For when a someone really needs a hug." + var/mode = 0 //0 = Hugs 1 = "Hug" 2 = Shock 3 = CRUSH + var/ccooldown = 0 + var/scooldown = 0 + var/shockallowed = 0//Can it be a stunarm when emagged. Only PK borgs get this by default. + +/obj/item/borg/cyborghug/attack_self(mob/living/user) + if(iscyborg(user)) + var/mob/living/silicon/robot/P = user + if(P.emagged&&shockallowed == 1) + if(mode < 3) + mode++ + else + mode = 0 + else if(mode < 1) + mode++ + else + mode = 0 + switch(mode) + if(0) + user << "Power reset. Hugs!" + if(1) + user << "Power increased!" + if(2) + user << "BZZT. Electrifying arms..." + if(3) + user << "ERROR: ARM ACTUATORS OVERLOADED." + +/obj/item/borg/cyborghug/attack(mob/living/M, mob/living/silicon/robot/user) + switch(mode) + if(0) + if(M.health >= 0) + if(ishuman(M)) + if(M.lying) + user.visible_message("[user] shakes [M] trying to get \him up!", \ + "You shake [M] trying to get \him up!") + else + user.visible_message("[user] hugs [M] to make \him feel better!", \ + "You hug [M] to make \him feel better!") + if(M.resting) + M.resting = 0 + M.update_canmove() + else + user.visible_message("[user] pets [M]!", \ + "You pet [M]!") + playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) + if(1) + if(M.health >= 0) + if(ishuman(M)) + if(M.lying) + user.visible_message("[user] shakes [M] trying to get \him up!", \ + "You shake [M] trying to get \him up!") + else + user.visible_message("[user] hugs [M] in a firm bear-hug! [M] looks uncomfortable...", \ + "You hug [M] firmly to make \him feel better! [M] looks uncomfortable...") + if(M.resting) + M.resting = 0 + M.update_canmove() + else + user.visible_message("[user] bops [M] on the head!", \ + "You bop [M] on the head!") + playsound(loc, 'sound/weapons/tap.ogg', 50, 1, -1) + if(2) + if(!scooldown) + if(M.health >= 0) + if(ishuman(M)||ismonkey(M)) + M.electrocute_act(5, "[user]", safety = 1) + user.visible_message("[user] electrocutes [M] with their touch!", \ + "You electrocute [M] with your touch!") + M.update_canmove() + else + if(!iscyborg(M)) + M.adjustFireLoss(10) + user.visible_message("[user] shocks [M]!", \ + "You shock [M]!") + else + user.visible_message("[user] shocks [M]. It does not seem to have an effect", \ + "You shock [M] to no effect.") + playsound(loc, 'sound/effects/sparks2.ogg', 50, 1, -1) + user.cell.charge -= 500 + scooldown = 1 + spawn(20) + scooldown = 0 + if(3) + if(!ccooldown) + if(M.health >= 0) + if(ishuman(M)) + user.visible_message("[user] crushes [M] in their grip!", \ + "You crush [M] in your grip!") + else + user.visible_message("[user] crushes [M]!", \ + "You crush [M]!") + playsound(loc, 'sound/weapons/smash.ogg', 50, 1, -1) + M.adjustBruteLoss(10) + user.cell.charge -= 300 + ccooldown = 1 + spawn(10) + ccooldown = 0 + +/obj/item/borg/cyborghug/peacekeeper + shockallowed = 1 + +/obj/item/borg/charger + name = "power connector" + icon_state = "charger_draw" + flags = NOBLUDGEON + var/mode = "draw" + var/list/charge_machines = list(/obj/machinery/cell_charger, /obj/machinery/recharger, + /obj/machinery/recharge_station, /obj/machinery/mech_bay_recharge_port) + var/list/charge_items = list(/obj/item/weapon/stock_parts/cell, /obj/item/weapon/gun/energy, + ) + +/obj/item/borg/charger/update_icon() + ..() + icon_state = "charger_[mode]" + +/obj/item/borg/charger/attack_self(mob/user) + if(mode == "draw") + mode = "charge" + else + mode = "draw" + user << "You toggle [src] to \"[mode]\" mode." + update_icon() + +/obj/item/borg/charger/afterattack(obj/item/target, mob/living/silicon/robot/user, proximity_flag) + if(!proximity_flag || !iscyborg(user)) + return + if(mode == "draw") + if(is_type_in_list(target, charge_machines)) + var/obj/machinery/M = target + if((M.stat & (NOPOWER|BROKEN)) || !M.anchored) + user << "[M] is unpowered!" + return + + user << "You connect to [M]'s power line..." + while(do_after(user, 15, target = M, progress = 0)) + if(!user || !user.cell || mode != "draw") + return + + if((M.stat & (NOPOWER|BROKEN)) || !M.anchored) + break + + if(!user.cell.give(150)) + break + + M.use_power(200) + + user << "You stop charging youself." + + else if(is_type_in_list(target, charge_items)) + var/obj/item/weapon/stock_parts/cell/cell = target + if(!istype(cell)) + cell = locate(/obj/item/weapon/stock_parts/cell) in target + if(!cell) + user << "[target] has no power cell!" + return + + if(istype(target, /obj/item/weapon/gun/energy)) + var/obj/item/weapon/gun/energy/E = target + if(!E.can_charge) + user << "[target] has no power port!" + return + + if(!cell.charge) + user << "[target] has no power!" + + + user << "You connect to [target]'s power port..." + + while(do_after(user, 15, target = target, progress = 0)) + if(!user || !user.cell || mode != "draw") + return + + if(!cell || !target) + return + + if(cell != target && cell.loc != target) + return + + var/draw = min(cell.charge, cell.chargerate*0.5, user.cell.maxcharge-user.cell.charge) + if(!cell.use(draw)) + break + if(!user.cell.give(draw)) + break + target.update_icon() + + user << "You stop charging youself." + + else if(is_type_in_list(target, charge_items)) + var/obj/item/weapon/stock_parts/cell/cell = target + if(!istype(cell)) + cell = locate(/obj/item/weapon/stock_parts/cell) in target + if(!cell) + user << "[target] has no power cell!" + return + + if(istype(target, /obj/item/weapon/gun/energy)) + var/obj/item/weapon/gun/energy/E = target + if(!E.can_charge) + user << "[target] has no power port!" + return + + if(cell.charge >= cell.maxcharge) + user << "[target] is already charged!" + + user << "You connect to [target]'s power port..." + + while(do_after(user, 15, target = target, progress = 0)) + if(!user || !user.cell || mode != "charge") + return + + if(!cell || !target) + return + + if(cell != target && cell.loc != target) + return + + var/draw = min(user.cell.charge, cell.chargerate*0.5, cell.maxcharge-cell.charge) + if(!user.cell.use(draw)) + break + if(!cell.give(draw)) + break + target.update_icon() + + user << "You stop charging [target]." + +/obj/item/device/harmalarm + name = "Sonic Harm Prevention Tool" + desc = "Releases a harmless blast that confuses most organics. For when the harm is JUST TOO MUCH" + icon_state = "megaphone" + var/cooldown = 0 + var/emagged = 0 + +/obj/item/device/harmalarm/emag_act(mob/user) + emagged = !emagged + if(emagged) + user << "You short out the safeties on the [src]!" + else + user << "You reset the safeties on the [src]!" + +/obj/item/device/harmalarm/attack_self(mob/user) + var/safety = !emagged + if(cooldown > world.time) + user << "The device is still recharging!" + return + + if(iscyborg(user)) + var/mob/living/silicon/robot/R = user + if(R.cell.charge < 1200) + user << "You don't have enough charge to do this!" + return + R.cell.charge -= 1000 + if(R.emagged) + safety = 0 + + if(safety == 1) + user.visible_message("[user] blares out a near-deafening siren from its speakers!", \ + "The siren pierces your hearing and confuses you!", \ + "The siren pierces your hearing!") + for(var/mob/living/carbon/M in get_hearers_in_view(9, user)) + if(M.get_ear_protection() == 0) + M.confused += 6 + audible_message("HUMAN HARM") + playsound(get_turf(src), 'sound/AI/harmalarm.ogg', 70, 3) + cooldown = world.time + 200 + log_game("[user.ckey]([user]) used a Cyborg Harm Alarm in ([user.x],[user.y],[user.z])") + if(iscyborg(user)) + var/mob/living/silicon/robot/R = user + R.connected_ai << "
            NOTICE - Peacekeeping 'HARM ALARM' used by: [user]
            " + + return + + if(safety == 0) + for(var/mob/living/carbon/C in get_hearers_in_view(9, user)) + var/bang_effect = C.soundbang_act(2, 0, 0, 5) + switch(bang_effect) + if(1) + C.confused += 5 + C.stuttering += 10 + C.Jitter(10) + if(2) + C.Weaken(2) + C.confused += 10 + C.stuttering += 15 + C.Jitter(25) + + user.audible_message("BZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZT") + playsound(get_turf(src), 'sound/machines/warning-buzzer.ogg', 130, 3) + cooldown = world.time + 600 + log_game("[user.ckey]([user]) used an emagged Cyborg Harm Alarm in ([user.x],[user.y],[user.z])") + +/********************************************************************** + HUD/SIGHT things +***********************************************************************/ +/obj/item/borg/sight + var/sight_mode = null + + +/obj/item/borg/sight/xray + name = "\proper x-ray Vision" + icon = 'icons/obj/decals.dmi' + icon_state = "securearea" + sight_mode = BORGXRAY + + +/obj/item/borg/sight/thermal + name = "\proper thermal vision" + sight_mode = BORGTHERM + icon_state = "thermal" + + +/obj/item/borg/sight/meson + name = "\proper meson vision" + sight_mode = BORGMESON + icon_state = "meson" + +/obj/item/borg/sight/material + name = "\proper material vision" + sight_mode = BORGMATERIAL + icon_state = "material" + +/obj/item/borg/sight/hud + name = "hud" + var/obj/item/clothing/glasses/hud/hud = null + + +/obj/item/borg/sight/hud/med + name = "medical hud" + icon_state = "healthhud" + +/obj/item/borg/sight/hud/med/New() + ..() + hud = new /obj/item/clothing/glasses/hud/health(src) + return + + +/obj/item/borg/sight/hud/sec + name = "security hud" + icon_state = "securityhud" + +/obj/item/borg/sight/hud/sec/New() + ..() + hud = new /obj/item/clothing/glasses/hud/security(src) + return diff --git a/code/game/objects/items/robot/robot_parts.dm b/code/game/objects/items/robot/robot_parts.dm new file mode 100644 index 0000000..3fdad75 --- /dev/null +++ b/code/game/objects/items/robot/robot_parts.dm @@ -0,0 +1,301 @@ + + +//The robot bodyparts have been moved to code/module/surgery/bodyparts/robot_bodyparts.dm + + +/obj/item/robot_suit + name = "cyborg endoskeleton" + desc = "A complex metal backbone with standard limb sockets and pseudomuscle anchors." + icon = 'icons/obj/robot_parts.dmi' + icon_state = "robo_suit" + var/obj/item/bodypart/l_arm/robot/l_arm = null + var/obj/item/bodypart/r_arm/robot/r_arm = null + var/obj/item/bodypart/l_leg/robot/l_leg = null + var/obj/item/bodypart/r_leg/robot/r_leg = null + var/obj/item/bodypart/chest/robot/chest = null + var/obj/item/bodypart/head/robot/head = null + + var/created_name = "" + var/mob/living/silicon/ai/forced_ai + var/locomotion = 1 + var/lawsync = 1 + var/aisync = 1 + var/panel_locked = 1 + +/obj/item/robot_suit/New() + ..() + src.updateicon() + +/obj/item/robot_suit/proc/updateicon() + src.cut_overlays() + if(src.l_arm) + src.add_overlay("l_arm+o") + if(src.r_arm) + src.add_overlay("r_arm+o") + if(src.chest) + src.add_overlay("chest+o") + if(src.l_leg) + src.add_overlay("l_leg+o") + if(src.r_leg) + src.add_overlay("r_leg+o") + if(src.head) + src.add_overlay("head+o") + +/obj/item/robot_suit/proc/check_completion() + if(src.l_arm && src.r_arm) + if(src.l_leg && src.r_leg) + if(src.chest && src.head) + feedback_inc("cyborg_frames_built",1) + return 1 + return 0 + +/obj/item/robot_suit/attackby(obj/item/W, mob/user, params) + + if(istype(W, /obj/item/stack/sheet/metal)) + var/obj/item/stack/sheet/metal/M = W + if(!l_arm && !r_arm && !l_leg && !r_leg && !chest && !head) + if (M.use(1)) + var/obj/item/weapon/ed209_assembly/B = new /obj/item/weapon/ed209_assembly + B.loc = get_turf(src) + user << "You arm the robot frame." + if (user.get_inactive_held_item()==src) + user.unEquip(src) + user.put_in_inactive_hand(B) + qdel(src) + else + user << "You need one sheet of metal to start building ED-209!" + return + else if(istype(W, /obj/item/bodypart/l_leg/robot)) + if(src.l_leg) + return + if(!user.unEquip(W)) + return + W.forceMove(src) + W.icon_state = initial(W.icon_state) + W.cut_overlays() + src.l_leg = W + src.updateicon() + + else if(istype(W, /obj/item/bodypart/r_leg/robot)) + if(src.r_leg) + return + if(!user.unEquip(W)) + return + W.forceMove(src) + W.icon_state = initial(W.icon_state) + W.cut_overlays() + src.r_leg = W + src.updateicon() + + else if(istype(W, /obj/item/bodypart/l_arm/robot)) + if(src.l_arm) + return + if(!user.unEquip(W)) + return + W.forceMove(src) + W.icon_state = initial(W.icon_state) + W.cut_overlays() + src.l_arm = W + src.updateicon() + + else if(istype(W, /obj/item/bodypart/r_arm/robot)) + if(src.r_arm) + return + if(!user.unEquip(W)) + return + W.forceMove(src) + W.icon_state = initial(W.icon_state)//in case it is a dismembered robotic limb + W.cut_overlays() + src.r_arm = W + src.updateicon() + + else if(istype(W, /obj/item/bodypart/chest/robot)) + var/obj/item/bodypart/chest/robot/CH = W + if(src.chest) + return + if(CH.wired && CH.cell) + if(!user.unEquip(CH)) + return + CH.forceMove(src) + CH.icon_state = initial(CH.icon_state) //in case it is a dismembered robotic limb + CH.cut_overlays() + src.chest = CH + src.updateicon() + else if(!CH.wired) + user << "You need to attach wires to it first!" + else + user << "You need to attach a cell to it first!" + + else if(istype(W, /obj/item/bodypart/head/robot)) + var/obj/item/bodypart/head/robot/HD = W + for(var/X in HD.contents) + if(istype(X, /obj/item/organ)) + user << "There are organs inside [HD]!" + return + if(src.head) + return + if(HD.flash2 && HD.flash1) + if(!user.unEquip(HD)) + return + HD.loc = src + HD.icon_state = initial(HD.icon_state)//in case it is a dismembered robotic limb + HD.cut_overlays() + src.head = HD + src.updateicon() + else + user << "You need to attach a flash to it first!" + + else if (istype(W, /obj/item/device/multitool)) + if(check_completion()) + Interact(user) + else + user << "The endoskeleton must be assembled before debugging can begin!" + + else if(istype(W, /obj/item/device/mmi)) + var/obj/item/device/mmi/M = W + if(check_completion()) + if(!isturf(loc)) + user << "You can't put the MMI in, the frame has to be standing on the ground to be perfectly precise!" + return + if(!M.brainmob) + user << "Sticking an empty MMI into the frame would sort of defeat the purpose!" + return + + var/mob/living/brain/BM = M.brainmob + if(!BM.key || !BM.mind) + user << "The mmi indicates that their mind is completely unresponsive; there's no point!" + return + + if(!BM.client) //braindead + user << "The mmi indicates that their mind is currently inactive; it might change!" + return + + if(BM.stat == DEAD || (M.brain && M.brain.damaged_brain)) + user << "Sticking a dead brain into the frame would sort of defeat the purpose!" + return + + if(jobban_isbanned(BM, "Cyborg")) + user << "This MMI does not seem to fit!" + return + + if(!user.unEquip(W)) + return + + var/mob/living/silicon/robot/O = new /mob/living/silicon/robot(get_turf(loc)) + if(!O) + return + + if(M.hacked || M.clockwork) + aisync = 0 + lawsync = 0 + var/datum/ai_laws/L + if(M.clockwork) + L = new/datum/ai_laws/ratvar + else + L = new/datum/ai_laws/syndicate_override + O.laws = L + L.associate(O) + + O.invisibility = 0 + //Transfer debug settings to new mob + O.custom_name = created_name + O.locked = panel_locked + if(!aisync) + lawsync = 0 + O.connected_ai = null + else + O.notify_ai(1) + if(forced_ai) + O.connected_ai = forced_ai + if(!lawsync) + O.lawupdate = 0 + if(!M.hacked && !M.clockwork) + O.make_laws() + + ticker.mode.remove_antag_for_borging(BM.mind) + if(!M.clockwork) + remove_servant_of_ratvar(BM, TRUE) + BM.mind.transfer_to(O) + + if(O.mind && O.mind.special_role) + O.mind.store_memory("As a cyborg, you must obey your silicon laws and master AI above all else. Your objectives will consider you to be dead.") + O << "You have been robotized!" + O << "You must obey your silicon laws and master AI above all else. Your objectives will consider you to be dead." + + O.job = "Cyborg" + + O.cell = chest.cell + chest.cell.loc = O + chest.cell = null + W.loc = O//Should fix cybros run time erroring when blown up. It got deleted before, along with the frame. + if(O.mmi) //we delete the mmi created by robot/New() + qdel(O.mmi) + O.mmi = W //and give the real mmi to the borg. + O.updatename() + + feedback_inc("cyborg_birth",1) + + src.loc = O + O.robot_suit = src + + if(!locomotion) + O.lockcharge = 1 + O.update_canmove() + O << "Error: Servo motors unresponsive." + + else + user << "The MMI must go in after everything else!" + + else if(istype(W,/obj/item/weapon/pen)) + user << "You need to use a multitool to name [src]!" + else + return ..() + +/obj/item/robot_suit/proc/Interact(mob/user) + var/t1 = text("Designation: [(created_name ? "[created_name]" : "Default Cyborg")]
            \n",src) + t1 += text("Master AI: [(forced_ai ? "[forced_ai.name]" : "Automatic")]

            \n",src) + + t1 += text("LawSync Port: [(lawsync ? "Open" : "Closed")]
            \n",src) + t1 += text("AI Connection Port: [(aisync ? "Open" : "Closed")]
            \n",src) + t1 += text("Servo Motor Functions: [(locomotion ? "Unlocked" : "Locked")]
            \n",src) + t1 += text("Panel Lock: [(panel_locked ? "Engaged" : "Disengaged")]
            \n",src) + var/datum/browser/popup = new(user, "robotdebug", "Cyborg Boot Debug", 310, 220) + popup.set_content(t1) + popup.open() + +/obj/item/robot_suit/Topic(href, href_list) + if(usr.incapacitated() || !Adjacent(usr)) + return + + var/mob/living/living_user = usr + var/obj/item/item_in_hand = living_user.get_active_held_item() + if(!istype(item_in_hand, /obj/item/device/multitool)) + living_user << "You need a multitool!" + return + + if(href_list["Name"]) + var/new_name = reject_bad_name(input(usr, "Enter new designation. Set to blank to reset to default.", "Cyborg Debug", src.created_name),1) + if(!in_range(src, usr) && src.loc != usr) + return + if(new_name) + created_name = new_name + else + created_name = "" + + else if(href_list["Master"]) + forced_ai = select_active_ai(usr) + if(!forced_ai) + usr << "No active AIs detected." + + else if(href_list["Law"]) + lawsync = !lawsync + else if(href_list["AI"]) + aisync = !aisync + else if(href_list["Loco"]) + locomotion = !locomotion + else if(href_list["Panel"]) + panel_locked = !panel_locked + + add_fingerprint(usr) + Interact(usr) + diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm new file mode 100644 index 0000000..ffb0368 --- /dev/null +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -0,0 +1,302 @@ +// robot_upgrades.dm +// Contains various borg upgrades. + +/obj/item/borg/upgrade + name = "borg upgrade module." + desc = "Protected by FRM." + icon = 'icons/obj/module.dmi' + icon_state = "cyborg_upgrade" + origin_tech = "programming=2" + var/locked = 0 + var/installed = 0 + var/require_module = 0 + var/module_type = null + +/obj/item/borg/upgrade/proc/action(mob/living/silicon/robot/R) + if(R.stat == DEAD) + usr << "[src] will not function on a deceased cyborg." + return 1 + if(module_type && !istype(R.module, module_type)) + R << "Upgrade mounting error! No suitable hardpoint detected!" + usr << "There's no mounting point for the module!" + return 1 + +/obj/item/borg/upgrade/reset + name = "cyborg module reset board" + desc = "Used to reset a cyborg's module. Destroys any other upgrades applied to the cyborg." + icon_state = "cyborg_upgrade1" + require_module = 1 + +/obj/item/borg/upgrade/reset/action(mob/living/silicon/robot/R) + if(..()) + return + + R.ResetModule() + + return 1 + +/obj/item/borg/upgrade/rename + name = "cyborg reclassification board" + desc = "Used to rename a cyborg." + icon_state = "cyborg_upgrade1" + var/heldname = "default name" + +/obj/item/borg/upgrade/rename/attack_self(mob/user) + heldname = stripped_input(user, "Enter new robot name", "Cyborg Reclassification", heldname, MAX_NAME_LEN) + +/obj/item/borg/upgrade/rename/action(mob/living/silicon/robot/R) + if(..()) + return + + R.fully_replace_character_name(R.name, heldname) + + return 1 + + +/obj/item/borg/upgrade/restart + name = "cyborg emergency reboot module" + desc = "Used to force a reboot of a disabled-but-repaired cyborg, bringing it back online." + icon_state = "cyborg_upgrade1" + +/obj/item/borg/upgrade/restart/action(mob/living/silicon/robot/R) + if(R.health < 0) + usr << "You have to repair the cyborg before using this module!" + return 0 + + if(!R.key) + for(var/mob/dead/observer/ghost in player_list) + if(ghost.mind && ghost.mind.current == R) + R.key = ghost.key + + R.revive() + + return 1 + +/obj/item/borg/upgrade/vtec + name = "cyborg VTEC module" + desc = "Used to kick in a cyborg's VTEC systems, increasing their speed." + icon_state = "cyborg_upgrade2" + require_module = 1 + origin_tech = "engineering=4;materials=5;programming=4" + +/obj/item/borg/upgrade/vtec/action(mob/living/silicon/robot/R) + if(..()) + return + if(R.speed < 0) + R << "A VTEC unit is already installed!" + usr << "There's no room for another VTEC unit!" + return + + R.speed = -2 // Gotta go fast. + + return 1 + +/obj/item/borg/upgrade/disablercooler + name = "cyborg rapid disabler cooling module" + desc = "Used to cool a mounted disabler, increasing the potential current in it and thus its recharge rate." + icon_state = "cyborg_upgrade3" + require_module = 1 + module_type = /obj/item/weapon/robot_module/security + origin_tech = "engineering=4;powerstorage=4;combat=4" + +/obj/item/borg/upgrade/disablercooler/action(mob/living/silicon/robot/R) + if(..()) + return + + var/obj/item/weapon/gun/energy/disabler/cyborg/T = locate() in R.module.modules + if(!T) + usr << "There's no disabler in this unit!" + return + if(T.charge_delay <= 2) + R << "A cooling unit is already installed!" + usr << "There's no room for another cooling unit!" + return + + T.charge_delay = max(2 , T.charge_delay - 4) + + return 1 + +/obj/item/borg/upgrade/thrusters + name = "ion thruster upgrade" + desc = "A energy-operated thruster system for cyborgs." + icon_state = "cyborg_upgrade3" + origin_tech = "engineering=4;powerstorage=4" + +/obj/item/borg/upgrade/thrusters/action(mob/living/silicon/robot/R) + if(..()) + return + + if(R.ionpulse) + usr << "This unit already has ion thrusters installed!" + return + + R.ionpulse = TRUE + return 1 + +/obj/item/borg/upgrade/ddrill + name = "mining cyborg diamond drill" + desc = "A diamond drill replacement for the mining module's standard drill." + icon_state = "cyborg_upgrade3" + require_module = 1 + module_type = /obj/item/weapon/robot_module/miner + origin_tech = "engineering=4;materials=5" + +/obj/item/borg/upgrade/ddrill/action(mob/living/silicon/robot/R) + if(..()) + return + + for(var/obj/item/weapon/pickaxe/drill/cyborg/D in R.module.modules) + qdel(D) + for(var/obj/item/weapon/shovel/S in R.module.modules) + qdel(S) + + R.module.modules += new /obj/item/weapon/pickaxe/drill/cyborg/diamond(R.module) + R.module.rebuild() + + return 1 + +/obj/item/borg/upgrade/soh + name = "mining cyborg satchel of holding" + desc = "A satchel of holding replacement for mining cyborg's ore satchel module." + icon_state = "cyborg_upgrade3" + require_module = 1 + module_type = /obj/item/weapon/robot_module/miner + origin_tech = "engineering=4;materials=4;bluespace=4" + +/obj/item/borg/upgrade/soh/action(mob/living/silicon/robot/R) + if(..()) + return + + for(var/obj/item/weapon/storage/bag/ore/cyborg/S in R.module.modules) + qdel(S) + + R.module.modules += new /obj/item/weapon/storage/bag/ore/holding(R.module) + R.module.rebuild() + + return 1 + +/obj/item/borg/upgrade/syndicate + name = "illegal equipment module" + desc = "Unlocks the hidden, deadlier functions of a cyborg" + icon_state = "cyborg_upgrade3" + require_module = 1 + origin_tech = "combat=4;syndicate=1" + +/obj/item/borg/upgrade/syndicate/action(mob/living/silicon/robot/R) + if(..()) + return + + if(R.emagged) + return + + R.SetEmagged(1) + + return 1 + +/obj/item/borg/upgrade/lavaproof + name = "mining cyborg lavaproof tracks" + desc = "An upgrade kit to apply specialized coolant systems and insulation layers to mining cyborg tracks, enabling them to withstand exposure to molten rock." + icon_state = "ash_plating" + resistance_flags = LAVA_PROOF | FIRE_PROOF + require_module = 1 + module_type = /obj/item/weapon/robot_module/miner + origin_tech = "engineering=4;materials=4;plasmatech=4" + +/obj/item/borg/upgrade/lavaproof/action(mob/living/silicon/robot/R) + if(..()) + return + R.weather_immunities += "lava" + return 1 + +/obj/item/borg/upgrade/selfrepair + name = "self-repair module" + desc = "This module will repair the cyborg over time." + icon_state = "cyborg_upgrade5" + require_module = 1 + var/repair_amount = -1 + var/repair_tick = 1 + var/msg_cooldown = 0 + var/on = 0 + var/powercost = 10 + var/mob/living/silicon/robot/cyborg + +/obj/item/borg/upgrade/selfrepair/action(mob/living/silicon/robot/R) + if(..()) + return + + var/obj/item/borg/upgrade/selfrepair/U = locate() in R + if(U) + usr << "This unit is already equipped with a self-repair module." + return 0 + + cyborg = R + icon_state = "selfrepair_off" + var/datum/action/A = new /datum/action/item_action/toggle(src) + A.Grant(R) + return 1 + +/obj/item/borg/upgrade/selfrepair/ui_action_click() + on = !on + if(on) + cyborg << "You activate the self-repair module." + START_PROCESSING(SSobj, src) + else + cyborg << "You deactivate the self-repair module." + STOP_PROCESSING(SSobj, src) + update_icon() + +/obj/item/borg/upgrade/selfrepair/update_icon() + if(cyborg) + icon_state = "selfrepair_[on ? "on" : "off"]" + for(var/X in actions) + var/datum/action/A = X + A.UpdateButtonIcon() + else + icon_state = "cyborg_upgrade5" + +/obj/item/borg/upgrade/selfrepair/proc/deactivate() + STOP_PROCESSING(SSobj, src) + on = FALSE + update_icon() + +/obj/item/borg/upgrade/selfrepair/process() + if(!repair_tick) + repair_tick = 1 + return + + if(cyborg && (cyborg.stat != DEAD) && on) + if(!cyborg.cell) + cyborg << "Self-repair module deactivated. Please, insert the power cell." + deactivate() + return + + if(cyborg.cell.charge < powercost * 2) + cyborg << "Self-repair module deactivated. Please recharge." + deactivate() + return + + if(cyborg.health < cyborg.maxHealth) + if(cyborg.health < 0) + repair_amount = -2.5 + powercost = 30 + else + repair_amount = -1 + powercost = 10 + cyborg.adjustBruteLoss(repair_amount) + cyborg.adjustFireLoss(repair_amount) + cyborg.updatehealth() + cyborg.cell.use(powercost) + else + cyborg.cell.use(5) + repair_tick = 0 + + if((world.time - 2000) > msg_cooldown ) + var/msgmode = "standby" + if(cyborg.health < 0) + msgmode = "critical" + else if(cyborg.health < cyborg.maxHealth) + msgmode = "normal" + cyborg << "Self-repair is active in [msgmode] mode." + msg_cooldown = world.time + else + deactivate() diff --git a/code/game/objects/items/shooting_range.dm b/code/game/objects/items/shooting_range.dm new file mode 100644 index 0000000..2b08616 --- /dev/null +++ b/code/game/objects/items/shooting_range.dm @@ -0,0 +1,92 @@ +/obj/item/target + name = "shooting target" + desc = "A shooting target." + icon = 'icons/obj/objects.dmi' + icon_state = "target_h" + density = 0 + var/hp = 1800 + var/obj/structure/target_stake/pinnedLoc + +/obj/item/target/Destroy() + removeOverlays() + if(pinnedLoc) + pinnedLoc.nullPinnedTarget() + return ..() + +/obj/item/target/proc/nullPinnedLoc() + pinnedLoc = null + density = 0 + +/obj/item/target/proc/removeOverlays() + cut_overlays() + +/obj/item/target/Move() + ..() + if(pinnedLoc) + pinnedLoc.loc = loc + +/obj/item/target/attackby(obj/item/W, mob/user, params) + if(istype(W, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/WT = W + if(WT.remove_fuel(0, user)) + removeOverlays() + user << "You slice off [src]'s uneven chunks of aluminium and scorch marks." + else + return ..() + +/obj/item/target/attack_hand(mob/user) + if(pinnedLoc) + pinnedLoc.removeTarget(user) + ..() + +/obj/item/target/syndicate + icon_state = "target_s" + desc = "A shooting target that looks like a syndicate scum." + hp = 2600 + +/obj/item/target/alien + icon_state = "target_q" + desc = "A shooting target that looks like a xenomorphic alien." + hp = 2350 + +/obj/item/target/clown + icon_state = "target_c" + desc = "A shooting target that looks like a useless clown." + hp = 2000 + +#define DECALTYPE_SCORCH 1 +#define DECALTYPE_BULLET 2 + +/obj/item/target/clown/bullet_act(obj/item/projectile/P) + ..() + playsound(src.loc, 'sound/items/bikehorn.ogg', 50, 1) + +/obj/item/target/bullet_act(obj/item/projectile/P) + var/p_x = P.p_x + pick(0,0,0,0,0,-1,1) // really ugly way of coding "sometimes offset P.p_x!" + var/p_y = P.p_y + pick(0,0,0,0,0,-1,1) + var/decaltype = DECALTYPE_SCORCH + if(istype(/obj/item/projectile/bullet, P)) + decaltype = DECALTYPE_BULLET + var/icon/C = icon(icon,icon_state) + if(C.GetPixel(p_x, p_y) && P.original == src && overlays.len <= 35) // if the located pixel isn't blank (null) + hp -= P.damage + if(hp <= 0) + visible_message("[src] breaks into tiny pieces and collapses!") + qdel(src) + var/image/I = image("icon"='icons/effects/effects.dmi', "icon_state"="scorch", "layer"=OBJ_LAYER+0.5) + I.pixel_x = p_x - 1 //offset correction + I.pixel_y = p_y - 1 + if(decaltype == DECALTYPE_SCORCH) + I.setDir(pick(NORTH,SOUTH,EAST,WEST))// random scorch design + if(P.damage >= 20 || istype(P, /obj/item/projectile/beam/practice)) + I.setDir(pick(NORTH,SOUTH,EAST,WEST)) + else + I.icon_state = "light_scorch" + else + I.icon_state = "dent" + add_overlay(I) + return + return -1 + +#undef DECALTYPE_SCORCH +#undef DECALTYPE_BULLET \ No newline at end of file diff --git a/code/game/objects/items/stacks/cash.dm b/code/game/objects/items/stacks/cash.dm new file mode 100644 index 0000000..d33a7b6 --- /dev/null +++ b/code/game/objects/items/stacks/cash.dm @@ -0,0 +1,84 @@ +/obj/item/stack/spacecash + name = "space cash" + desc = "But you've got to have... money..." + singular_name = "bill" + icon = 'icons/obj/items.dmi' + icon_state = "spacecash" + amount = 1 + max_amount = 1000000 + throwforce = 0 + throw_speed = 2 + throw_range = 2 + w_class = 1 + resistance_flags = FLAMMABLE + var/value = 1 + +/obj/item/stack/spacecash/New(var/atom/loc, var/amt = 1 as num) + ..(loc) + amount = amt + update_value() + update_icon() + +/obj/item/stack/spacecash/proc/update_value() + value = amount + + +/obj/item/stack/spacecash/update_icon() + //name = "[amount == max_amount ? "1000000" : amount] Credit[amount > 1 ? "s" : ""]" + if (amount >= 1 && amount < 10) + icon_state = "cashgreen" + else if (amount >= 10 && amount < 50) + icon_state = "spacecash" + else if (amount >= 50 && amount < 500) + icon_state = "cashblue" + else if (amount >= 500 && amount < 1000) + icon_state = "cashindi" + else if (amount >= 1000 && amount < 1000000) + icon_state = "cashpurp" + else + icon_state = "cashrbow" + + + +/obj/item/stack/spacecash/examine(mob/user) + ..() + user << "It's worth [src.value] credits." + +/obj/item/stack/spacecash/add(amount) + ..() + update_value() +/obj/item/stack/spacecash/change_stack() + ..() + update_value() + +/obj/item/stack/spacecash/c5 + desc = "THIS IS FAKE MONEY THAT DOESN'T ACTUALLY WORK! YOU'VE BEEN TRICKY DICKIED!" + value = 5 + +/obj/item/stack/spacecash/c10 + desc = "THIS IS FAKE MONEY THAT DOESN'T ACTUALLY WORK! YOU'VE BEEN TRICKY DICKIED!" + value = 10 + +/obj/item/stack/spacecash/c20 + desc = "THIS IS FAKE MONEY THAT DOESN'T ACTUALLY WORK! YOU'VE BEEN TRICKY DICKIED!" + value = 20 + +/obj/item/stack/spacecash/c50 + desc = "THIS IS FAKE MONEY THAT DOESN'T ACTUALLY WORK! YOU'VE BEEN TRICKY DICKIED!" + value = 50 + +/obj/item/stack/spacecash/c100 + desc = "THIS IS FAKE MONEY THAT DOESN'T ACTUALLY WORK! YOU'VE BEEN TRICKY DICKIED!" + value = 100 + +/obj/item/stack/spacecash/c200 + desc = "THIS IS FAKE MONEY THAT DOESN'T ACTUALLY WORK! YOU'VE BEEN TRICKY DICKIED!" + value = 200 + +/obj/item/stack/spacecash/c500 + desc = "THIS IS FAKE MONEY THAT DOESN'T ACTUALLY WORK! YOU'VE BEEN TRICKY DICKIED!" + value = 500 + +/obj/item/stack/spacecash/c1000 + desc = "THIS IS FAKE MONEY THAT DOESN'T ACTUALLY WORK! YOU'VE BEEN TRICKY DICKIED!" + value = 1000 \ No newline at end of file diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm new file mode 100644 index 0000000..58b635b --- /dev/null +++ b/code/game/objects/items/stacks/medical.dm @@ -0,0 +1,141 @@ +/obj/item/stack/medical + name = "medical pack" + singular_name = "medical pack" + icon = 'icons/obj/items.dmi' + amount = 6 + max_amount = 6 + w_class = 1 + throw_speed = 3 + throw_range = 7 + resistance_flags = FLAMMABLE + obj_integrity = 40 + max_integrity = 40 + var/heal_brute = 0 + var/heal_burn = 0 + var/stop_bleeding = 0 + var/self_delay = 50 + +/obj/item/stack/medical/attack(mob/living/M, mob/user) + + if(M.stat == 2) + var/t_him = "it" + if(M.gender == MALE) + t_him = "him" + else if(M.gender == FEMALE) + t_him = "her" + user << "\The [M] is dead, you cannot help [t_him]!" + return + + if(!istype(M, /mob/living/carbon) && !istype(M, /mob/living/simple_animal)) + user << "You don't know how to apply \the [src] to [M]!" + return 1 + + var/obj/item/bodypart/affecting + if(iscarbon(M)) + var/mob/living/carbon/C = M + affecting = C.get_bodypart(check_zone(user.zone_selected)) + if(!affecting) //Missing limb? + user << "[C] doesn't have \a [parse_zone(user.zone_selected)]!" + return + if(ishuman(C)) + var/mob/living/carbon/human/H = C + if(stop_bleeding) + if(H.bleedsuppress) + user << "[H]'s bleeding is already bandaged!" + return + else if(!H.bleed_rate) + user << "[H] isn't bleeding!" + return + + + if(isliving(M)) + if(!M.can_inject(user, 1)) + return + + if(user) + if (M != user) + if (istype(M, /mob/living/simple_animal)) + var/mob/living/simple_animal/critter = M + if (!(critter.healable)) + user << " You cannot use [src] on [M]!" + return + else if (critter.health == critter.maxHealth) + user << " [M] is at full health." + return + else if(src.heal_brute < 1) + user << " [src] won't help [M] at all." + return + user.visible_message("[user] applies [src] on [M].", "You apply [src] on [M].") + else + var/t_himself = "itself" + if(user.gender == MALE) + t_himself = "himself" + else if(user.gender == FEMALE) + t_himself = "herself" + user.visible_message("[user] starts to apply [src] on [t_himself]...", "You begin applying [src] on yourself...") + if(!do_mob(user, M, self_delay)) + return + user.visible_message("[user] applies [src] on [t_himself].", "You apply [src] on yourself.") + + + if(iscarbon(M)) + var/mob/living/carbon/C = M + affecting = C.get_bodypart(check_zone(user.zone_selected)) + if(!affecting) //Missing limb? + user << "[C] doesn't have \a [parse_zone(user.zone_selected)]!" + return + if(ishuman(C)) + var/mob/living/carbon/human/H = C + if(stop_bleeding) + if(!H.bleedsuppress) //so you can't stack bleed suppression + H.suppress_bloodloss(stop_bleeding) + if(affecting.status == BODYPART_ORGANIC) //Limb must be organic to be healed - RR + if(affecting.heal_damage(heal_brute, heal_burn)) + C.update_damage_overlays() + else + user << "Medicine won't work on a robotic limb!" + else + M.heal_bodypart_damage((src.heal_brute/2), (src.heal_burn/2)) + + use(1) + + + +/obj/item/stack/medical/bruise_pack + name = "bruise pack" + singular_name = "bruise pack" + desc = "A theraputic gel pack and bandages designed to treat blunt-force trauma." + icon_state = "brutepack" + heal_brute = 40 + origin_tech = "biotech=2" + self_delay = 20 + +/obj/item/stack/medical/gauze + name = "medical gauze" + desc = "A roll of elastic cloth that is extremely effective at stopping bleeding, but does not heal wounds." + gender = PLURAL + singular_name = "medical gauze" + icon_state = "gauze" + stop_bleeding = 1800 + self_delay = 20 + +/obj/item/stack/medical/gauze/improvised + name = "improvised gauze" + singular_name = "improvised gauze" + desc = "A roll of cloth roughly cut from something that can stop bleeding, but does not heal wounds." + stop_bleeding = 900 + +/obj/item/stack/medical/gauze/cyborg/ + materials = list() + is_cyborg = 1 + cost = 250 + +/obj/item/stack/medical/ointment + name = "ointment" + desc = "Used to treat those nasty burn wounds." + gender = PLURAL + singular_name = "ointment" + icon_state = "ointment" + heal_burn = 40 + origin_tech = "biotech=2" + self_delay = 20 diff --git a/code/game/objects/items/stacks/rods.dm b/code/game/objects/items/stacks/rods.dm new file mode 100644 index 0000000..b2205a3 --- /dev/null +++ b/code/game/objects/items/stacks/rods.dm @@ -0,0 +1,75 @@ +var/global/list/datum/stack_recipe/rod_recipes = list ( \ + new/datum/stack_recipe("grille", /obj/structure/grille, 2, time = 10, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("table frame", /obj/structure/table_frame, 2, time = 10, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("scooter frame", /obj/item/scooter_frame, 10, time = 25, one_per_turf = 0), \ + ) + +/obj/item/stack/rods + name = "metal rod" + desc = "Some rods. Can be used for building, or something." + singular_name = "metal rod" + icon_state = "rods" + item_state = "rods" + flags = CONDUCT + w_class = 3 + force = 9 + throwforce = 10 + throw_speed = 3 + throw_range = 7 + materials = list(MAT_METAL=1000) + max_amount = 50 + attack_verb = list("hit", "bludgeoned", "whacked") + hitsound = 'sound/weapons/grenadelaunch.ogg' + +/obj/item/stack/rods/New(var/loc, var/amount=null) + ..() + + recipes = rod_recipes + update_icon() + +/obj/item/stack/rods/update_icon() + var/amount = get_amount() + if((amount <= 5) && (amount > 0)) + icon_state = "rods-[amount]" + else + icon_state = "rods" + +/obj/item/stack/rods/attackby(obj/item/W, mob/user, params) + if (istype(W, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/WT = W + + if(get_amount() < 2) + user << "You need at least two rods to do this!" + return + + if(WT.remove_fuel(0,user)) + var/obj/item/stack/sheet/metal/new_item = new(usr.loc) + user.visible_message("[user.name] shaped [src] into metal with the welding tool.", \ + "You shape [src] into metal with the welding tool.", \ + "You hear welding.") + var/obj/item/stack/rods/R = src + src = null + var/replace = (user.get_inactive_held_item()==R) + R.use(2) + if (!R && replace) + user.put_in_hands(new_item) + + else if(istype(W,/obj/item/weapon/reagent_containers/food/snacks)) + var/obj/item/weapon/reagent_containers/food/snacks/S = W + if(amount != 1) + user << "You must use a single rod!" + else if(S.w_class > 2) + user << "The ingredient is too big for [src]!" + else + var/obj/item/weapon/reagent_containers/food/snacks/customizable/A = new/obj/item/weapon/reagent_containers/food/snacks/customizable/kebab(get_turf(src)) + A.initialize_custom_food(src, S, user) + else + return ..() + +/obj/item/stack/rods/cyborg/ + materials = list() + is_cyborg = 1 + cost = 250 + +/obj/item/stack/rods/cyborg/update_icon() + return diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm new file mode 100644 index 0000000..5529570 --- /dev/null +++ b/code/game/objects/items/stacks/sheets/glass.dm @@ -0,0 +1,368 @@ +/* Glass stack types + * Contains: + * Glass sheets + * Reinforced glass sheets + * Glass shards - TODO: Move this into code/game/object/item/weapons + */ + +/* + * Glass sheets + */ +/obj/item/stack/sheet/glass + name = "glass" + desc = "HOLY SHEET! That is a lot of glass." + singular_name = "glass sheet" + icon_state = "sheet-glass" + materials = list(MAT_GLASS=MINERAL_MATERIAL_AMOUNT) + origin_tech = "materials=1" + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 100) + resistance_flags = ACID_PROOF + merge_type = /obj/item/stack/sheet/glass + +/obj/item/stack/sheet/glass/cyborg + materials = list() + is_cyborg = 1 + cost = 500 + +/obj/item/stack/sheet/glass/fifty + amount = 50 + +/obj/item/stack/sheet/glass/attack_self(mob/user) + construct_window(user) + +/obj/item/stack/sheet/glass/attackby(obj/item/W, mob/user, params) + add_fingerprint(user) + if(istype(W, /obj/item/stack/cable_coil)) + var/obj/item/stack/cable_coil/CC = W + if (get_amount() < 1 || CC.get_amount() < 5) + user << "You attach wire to the [name]." + var/obj/item/stack/light_w/new_tile = new(user.loc) + new_tile.add_fingerprint(user) + else if(istype(W, /obj/item/stack/rods)) + var/obj/item/stack/rods/V = W + if (V.get_amount() >= 1 && src.get_amount() >= 1) + var/obj/item/stack/sheet/rglass/RG = new (user.loc) + RG.add_fingerprint(user) + var/obj/item/stack/sheet/glass/G = src + src = null + var/replace = (user.get_inactive_held_item()==G) + V.use(1) + G.use(1) + if (!G && replace) + user.put_in_hands(RG) + else + user << "You need one rod and one sheet of glass to make reinforced glass!" + return + else + return ..() + +/obj/item/stack/sheet/glass/proc/construct_window(mob/user) + if(!user || !src) + return 0 + if(!isturf(user.loc)) + return 0 + if(!user.IsAdvancedToolUser()) + user << "You don't have the dexterity to do this!" + return 0 + if(zero_amount()) + return 0 + var/title = "Sheet-Glass" + title += " ([src.get_amount()] sheet\s left)" + switch(alert(title, "Would you like full tile glass or one direction?", "One Direction", "Full Window", "Cancel", null)) + if("One Direction") + if(!src) + return 1 + if(src.loc != user) + return 1 + + var/list/directions = new/list(cardinal) + var/i = 0 + for (var/obj/structure/window/win in user.loc) + i++ + if(i >= 4) + user << "There are too many windows in this location." + return 1 + directions-=win.dir + if(!(win.ini_dir in cardinal)) + user << "Can't let you do that." + return 1 + + //Determine the direction. It will first check in the direction the person making the window is facing, if it finds an already made window it will try looking at the next cardinal direction, etc. + var/dir_to_set = 2 + for(var/direction in list( user.dir, turn(user.dir,90), turn(user.dir,180), turn(user.dir,270) )) + var/found = 0 + for(var/obj/structure/window/WT in user.loc) + if(WT.dir == direction) + found = 1 + if(!found) + dir_to_set = direction + break + + var/obj/structure/window/W + W = new /obj/structure/window( user.loc, 0 ) + W.setDir(dir_to_set) + W.ini_dir = W.dir + W.anchored = 0 + W.air_update_turf(1) + src.use(1) + W.add_fingerprint(user) + if("Full Window") + if(!src) + return 1 + if(src.loc != user) + return 1 + if(src.get_amount() < 2) + user << "You need more glass to do that!" + return 1 + if(locate(/obj/structure/window) in user.loc) + user << "There is a window in the way!" + return 1 + var/obj/structure/window/W + W = new /obj/structure/window/fulltile( user.loc, 0 ) + W.anchored = 0 + W.air_update_turf(1) + W.add_fingerprint(user) + src.use(2) + return 0 + + +/* + * Reinforced glass sheets + */ +/obj/item/stack/sheet/rglass + name = "reinforced glass" + desc = "Glass which seems to have rods or something stuck in them." + singular_name = "reinforced glass sheet" + icon_state = "sheet-rglass" + materials = list(MAT_METAL=MINERAL_MATERIAL_AMOUNT/2, MAT_GLASS=MINERAL_MATERIAL_AMOUNT) + origin_tech = "materials=2" + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 70, acid = 100) + resistance_flags = ACID_PROOF + merge_type = /obj/item/stack/sheet/rglass + +/obj/item/stack/sheet/rglass/cyborg + materials = list() + var/datum/robot_energy_storage/metsource + var/datum/robot_energy_storage/glasource + var/metcost = 250 + var/glacost = 500 + +/obj/item/stack/sheet/rglass/cyborg/get_amount() + return min(round(metsource.energy / metcost), round(glasource.energy / glacost)) + +/obj/item/stack/sheet/rglass/cyborg/use(amount) // Requires special checks, because it uses two storages + metsource.use_charge(amount * metcost) + glasource.use_charge(amount * glacost) + return + +/obj/item/stack/sheet/rglass/cyborg/add(amount) + metsource.add_charge(amount * metcost) + glasource.add_charge(amount * glacost) + return + +/obj/item/stack/sheet/rglass/attack_self(mob/user) + construct_window(user) + +/obj/item/stack/sheet/rglass/proc/construct_window(mob/user) + if(!user || !src) + return 0 + if(!isturf(user.loc)) + return 0 + if(!user.IsAdvancedToolUser()) + user << "You don't have the dexterity to do this!" + return 0 + var/title = "Sheet Reinf. Glass" + title += " ([src.get_amount()] sheet\s left)" + switch(input(title, "Would you like full tile glass a one direction glass pane or a windoor?") in list("One Direction", "Full Window", "Windoor", "Cancel")) + if("One Direction") + if(!src) + return 1 + if(src.loc != user) + return 1 + var/list/directions = new/list(cardinal) + var/i = 0 + for (var/obj/structure/window/win in user.loc) + i++ + if(i >= 4) + user << "There are too many windows in this location." + return 1 + directions-=win.dir + if(!(win.ini_dir in cardinal)) + user << "Can't let you do that." + return 1 + + //Determine the direction. It will first check in the direction the person making the window is facing, if it finds an already made window it will try looking at the next cardinal direction, etc. + var/dir_to_set = 2 + for(var/direction in list( user.dir, turn(user.dir,90), turn(user.dir,180), turn(user.dir,270) )) + var/found = 0 + for(var/obj/structure/window/WT in user.loc) + if(WT.dir == direction) + found = 1 + if(!found) + dir_to_set = direction + break + + var/obj/structure/window/W + W = new /obj/structure/window/reinforced( user.loc, 1 ) + W.state = 0 + W.setDir(dir_to_set) + W.ini_dir = W.dir + W.anchored = 0 + W.add_fingerprint(user) + src.use(1) + + if("Full Window") + if(!src) + return 1 + if(src.loc != user) + return 1 + if(src.get_amount() < 2) + user << "You need more glass to do that!" + return 1 + if(locate(/obj/structure/window) in user.loc) + user << "There is a window in the way!" + return 1 + var/obj/structure/window/W + W = new /obj/structure/window/reinforced/fulltile(user.loc, 1) + W.state = 0 + W.anchored = 0 + W.add_fingerprint(user) + src.use(2) + + if("Windoor") + if(!src || src.loc != user || !isturf(user.loc)) + return 1 + + for(var/obj/structure/windoor_assembly/WA in user.loc) + if(WA.dir == user.dir) + user << "There is already a windoor assembly in that location!" + return 1 + + for(var/obj/machinery/door/window/W in user.loc) + if(W.dir == user.dir) + user << "There is already a windoor in that location!" + return 1 + + if(src.get_amount() < 5) + user << "You need more glass to do that!" + return 1 + + var/obj/structure/windoor_assembly/WD = new(user.loc) + WD.state = "01" + WD.anchored = 0 + WD.add_fingerprint(user) + src.use(5) + switch(user.dir) + if(SOUTH) + WD.setDir(SOUTH) + WD.ini_dir = SOUTH + if(EAST) + WD.setDir(EAST) + WD.ini_dir = EAST + if(WEST) + WD.setDir(WEST) + WD.ini_dir = WEST + else //If the user is facing northeast. northwest, southeast, southwest or north, default to north + WD.setDir(NORTH) + WD.ini_dir = NORTH + else + return 1 + + + return 0 + + +/obj/item/weapon/shard + name = "shard" + desc = "A nasty looking shard of glass." + icon = 'icons/obj/shards.dmi' + icon_state = "large" + w_class = 1 + force = 5 + throwforce = 10 + item_state = "shard-glass" + materials = list(MAT_GLASS=MINERAL_MATERIAL_AMOUNT) + attack_verb = list("stabbed", "slashed", "sliced", "cut") + hitsound = 'sound/weapons/bladeslice.ogg' + resistance_flags = ACID_PROOF + armor = list(melee = 100, bullet = 0, laser = 0, energy = 100, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 100) + obj_integrity = 40 + max_integrity = 40 + var/cooldown = 0 + sharpness = IS_SHARP + +/obj/item/weapon/shard/suicide_act(mob/user) + user.visible_message("[user] is slitting [user.p_their()] [pick("wrists", "throat")] with the shard of glass! It looks like [user.p_theyre()] trying to commit suicide.") + return (BRUTELOSS) + + +/obj/item/weapon/shard/New() + icon_state = pick("large", "medium", "small") + switch(icon_state) + if("small") + pixel_x = rand(-12, 12) + pixel_y = rand(-12, 12) + if("medium") + pixel_x = rand(-8, 8) + pixel_y = rand(-8, 8) + if("large") + pixel_x = rand(-5, 5) + pixel_y = rand(-5, 5) + +/obj/item/weapon/shard/afterattack(atom/A as mob|obj, mob/user, proximity) + if(!proximity || !(src in user)) + return + if(isturf(A)) + return + if(istype(A, /obj/item/weapon/storage)) + return + var/hit_hand = ((user.active_hand_index % 2 == 0) ? "r_" : "l_") + "arm" + if(ishuman(user)) + var/mob/living/carbon/human/H = user + if(!H.gloves && !(PIERCEIMMUNE in H.dna.species.specflags)) // golems, etc + H << "[src] cuts into your hand!" + H.apply_damage(force*0.5, BRUTE, hit_hand) + else if(ismonkey(user)) + var/mob/living/carbon/monkey/M = user + M << "[src] cuts into your hand!" + M.apply_damage(force*0.5, BRUTE, hit_hand) + + +/obj/item/weapon/shard/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/WT = I + if(WT.remove_fuel(0, user)) + var/obj/item/stack/sheet/glass/NG = new (user.loc) + for(var/obj/item/stack/sheet/glass/G in user.loc) + if(G == NG) + continue + if(G.amount >= G.max_amount) + continue + G.attackby(NG, user) + user << "You add the newly-formed glass to the stack. It now contains [NG.amount] sheet\s." + qdel(src) + else + return ..() + +/obj/item/weapon/shard/Crossed(mob/AM) + if(istype(AM) && has_gravity(loc)) + playsound(loc, 'sound/effects/glass_step.ogg', 50, 1) + if(ishuman(AM)) + var/mob/living/carbon/human/H = AM + if(PIERCEIMMUNE in H.dna.species.specflags) + return + var/picked_def_zone = pick("l_leg", "r_leg") + var/obj/item/bodypart/O = H.get_bodypart(picked_def_zone) + if(!istype(O)) + return + if(!H.shoes) + H.apply_damage(5, BRUTE, picked_def_zone) + H.Weaken(3) + if(cooldown < world.time - 10) //cooldown to avoid message spam. + H.visible_message("[H] steps in the broken glass!", \ + "You step in the broken glass!") + cooldown = world.time diff --git a/code/game/objects/items/stacks/sheets/leather.dm b/code/game/objects/items/stacks/sheets/leather.dm new file mode 100644 index 0000000..62975cf --- /dev/null +++ b/code/game/objects/items/stacks/sheets/leather.dm @@ -0,0 +1,210 @@ +/obj/item/stack/sheet/animalhide + name = "hide" + desc = "Something went wrong." + origin_tech = "biotech=3" + +/obj/item/stack/sheet/animalhide/human + name = "human skin" + desc = "The by-product of human farming." + singular_name = "human skin piece" + icon_state = "sheet-hide" + +var/global/list/datum/stack_recipe/human_recipes = list( \ + new/datum/stack_recipe("bloated human costume", /obj/item/clothing/suit/hooded/bloated_human, 5, on_floor = 1), \ + ) + +/obj/item/stack/sheet/animalhide/human/New(var/loc, var/amount=null) + recipes = human_recipes + return ..() + +/obj/item/stack/sheet/animalhide/generic + name = "skin" + desc = "A piece of skin." + singular_name = "skin piece" + icon_state = "sheet-hide" + +/obj/item/stack/sheet/animalhide/corgi + name = "corgi hide" + desc = "The by-product of corgi farming." + singular_name = "corgi hide piece" + icon_state = "sheet-corgi" + +var/global/list/datum/stack_recipe/corgi_recipes = list ( \ + new/datum/stack_recipe("corgi costume", /obj/item/clothing/suit/hooded/ian_costume, 3, on_floor = 1), \ + ) + +/obj/item/stack/sheet/animalhide/corgi/New(var/loc, var/amount=null) + recipes = corgi_recipes + return ..() + +/obj/item/stack/sheet/animalhide/cat + name = "cat hide" + desc = "The by-product of cat farming." + singular_name = "cat hide piece" + icon_state = "sheet-cat" + +/obj/item/stack/sheet/animalhide/monkey + name = "monkey hide" + desc = "The by-product of monkey farming." + singular_name = "monkey hide piece" + icon_state = "sheet-monkey" + +var/global/list/datum/stack_recipe/monkey_recipes = list ( \ + new/datum/stack_recipe("monkey mask", /obj/item/clothing/mask/gas/monkeymask, 1, on_floor = 1), \ + new/datum/stack_recipe("monkey suit", /obj/item/clothing/suit/monkeysuit, 2, on_floor = 1), \ + ) + +/obj/item/stack/sheet/animalhide/monkey/New(var/loc, var/amount=null) + recipes = monkey_recipes + return ..() + +/obj/item/stack/sheet/animalhide/lizard + name = "lizard skin" + desc = "Sssssss..." + singular_name = "lizard skin piece" + icon_state = "sheet-lizard" + +/obj/item/stack/sheet/animalhide/xeno + name = "alien hide" + desc = "The skin of a terrible creature." + singular_name = "alien hide piece" + icon_state = "sheet-xeno" + +var/global/list/datum/stack_recipe/xeno_recipes = list ( \ + new/datum/stack_recipe("alien helmet", /obj/item/clothing/head/xenos, 1, on_floor = 1), \ + new/datum/stack_recipe("alien suit", /obj/item/clothing/suit/xenos, 2, on_floor = 1), \ + ) + +/obj/item/stack/sheet/animalhide/xeno/New(var/loc, var/amount=null) + recipes = xeno_recipes + return ..() + +//don't see anywhere else to put these, maybe together they could be used to make the xenos suit? +/obj/item/stack/sheet/xenochitin + name = "alien chitin" + desc = "A piece of the hide of a terrible creature." + singular_name = "alien hide piece" + icon = 'icons/mob/alien.dmi' + icon_state = "chitin" + origin_tech = null + +/obj/item/xenos_claw + name = "alien claw" + desc = "The claw of a terrible creature." + icon = 'icons/mob/alien.dmi' + icon_state = "claw" + origin_tech = null + +/obj/item/weed_extract + name = "weed extract" + desc = "A piece of slimy, purplish weed." + icon = 'icons/mob/alien.dmi' + icon_state = "weed_extract" + origin_tech = null + +/obj/item/stack/sheet/hairlesshide + name = "hairless hide" + desc = "This hide was stripped of it's hair, but still needs tanning." + singular_name = "hairless hide piece" + icon_state = "sheet-hairlesshide" + origin_tech = null + +/obj/item/stack/sheet/wetleather + name = "wet leather" + desc = "This leather has been cleaned but still needs to be dried." + singular_name = "wet leather piece" + icon_state = "sheet-wetleather" + origin_tech = null + var/wetness = 30 //Reduced when exposed to high temperautres + var/drying_threshold_temperature = 500 //Kelvin to start drying + +/obj/item/stack/sheet/leather + name = "leather" + desc = "The by-product of mob grinding." + singular_name = "leather piece" + icon_state = "sheet-leather" + origin_tech = "materials=2" + +/obj/item/stack/sheet/sinew + name = "watcher sinew" + icon = 'icons/obj/mining.dmi' + desc = "Long stringy filaments which presumably came from a watcher's wings." + singular_name = "watcher sinew" + icon_state = "sinew" + origin_tech = "biotech=4" + + +var/global/list/datum/stack_recipe/sinew_recipes = list ( \ + new/datum/stack_recipe("sinew restraints", /obj/item/weapon/restraints/handcuffs/sinew, 1, on_floor = 1), \ + ) + +/obj/item/stack/sheet/sinew/New(var/loc, var/amount=null) + recipes = sinew_recipes + return ..() + /* + * Plates + */ + +/obj/item/stack/sheet/animalhide/goliath_hide + name = "goliath hide plates" + desc = "Pieces of a goliath's rocky hide, these might be able to make your suit a bit more durable to attack from the local fauna." + icon = 'icons/obj/mining.dmi' + icon_state = "goliath_hide" + singular_name = "hide plate" + flags = NOBLUDGEON + w_class = 3 + layer = MOB_LAYER + +/obj/item/stack/sheet/animalhide/ashdrake + name = "ash drake hide" + desc = "The strong, scaled hide of an ash drake." + icon = 'icons/obj/mining.dmi' + icon_state = "dragon_hide" + singular_name = "drake plate" + flags = NOBLUDGEON + w_class = 3 + layer = MOB_LAYER + + +//Step one - dehairing. + +/obj/item/stack/sheet/animalhide/attackby(obj/item/weapon/W, mob/user, params) + if(is_sharp(W)) + playsound(loc, 'sound/weapons/slice.ogg', 50, 1, -1) + user.visible_message("[user] starts cutting hair off \the [src].", "You start cutting the hair off \the [src]...", "You hear the sound of a knife rubbing against flesh.") + if(do_after(user,50, target = src)) + user << "You cut the hair from this [src.singular_name]." + //Try locating an exisitng stack on the tile and add to there if possible + for(var/obj/item/stack/sheet/hairlesshide/HS in user.loc) + if(HS.amount < 50) + HS.amount++ + use(1) + break + //If it gets to here it means it did not find a suitable stack on the tile. + var/obj/item/stack/sheet/hairlesshide/HS = new(user.loc) + HS.amount = 1 + use(1) + else + return ..() + + +//Step two - washing..... it's actually in washing machine code. + +//Step three - drying +/obj/item/stack/sheet/wetleather/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) + ..() + if(exposed_temperature >= drying_threshold_temperature) + wetness-- + if(wetness == 0) + //Try locating an exisitng stack on the tile and add to there if possible + for(var/obj/item/stack/sheet/leather/HS in src.loc) + if(HS.amount < 50) + HS.amount++ + src.use(1) + wetness = initial(wetness) + break + //If it gets to here it means it did not find a suitable stack on the tile. + var/obj/item/stack/sheet/leather/HS = new(src.loc) + HS.amount = 1 + wetness = initial(wetness) + src.use(1) diff --git a/code/game/objects/items/stacks/sheets/light.dm b/code/game/objects/items/stacks/sheets/light.dm new file mode 100644 index 0000000..f85546e --- /dev/null +++ b/code/game/objects/items/stacks/sheets/light.dm @@ -0,0 +1,38 @@ +/obj/item/stack/light_w + name = "wired glass tile" + singular_name = "wired glass floor tile" + desc = "A glass tile, which is wired, somehow." + icon = 'icons/obj/tiles.dmi' + icon_state = "glass_wire" + w_class = 3 + force = 3 + throwforce = 5 + throw_speed = 3 + throw_range = 7 + flags = CONDUCT + max_amount = 60 + +/obj/item/stack/light_w/attackby(obj/item/O, mob/user, params) + + if(istype(O,/obj/item/weapon/wirecutters)) + var/obj/item/stack/cable_coil/CC = new (user.loc) + CC.amount = 5 + CC.add_fingerprint(user) + amount-- + var/obj/item/stack/sheet/glass/G = new (user.loc) + G.add_fingerprint(user) + if(amount <= 0) + user.unEquip(src, 1) + qdel(src) + + else if(istype(O, /obj/item/stack/sheet/metal)) + var/obj/item/stack/sheet/metal/M = O + if (M.use(1)) + use(1) + var/obj/item/L = PoolOrNew(/obj/item/stack/tile/light, user.loc) + user << "You make a light tile." + L.add_fingerprint(user) + else + user << "You need one metal sheet to finish the light tile!" + else + return ..() diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm new file mode 100644 index 0000000..4e59606 --- /dev/null +++ b/code/game/objects/items/stacks/sheets/mineral.dm @@ -0,0 +1,378 @@ +/* +Mineral Sheets + Contains: + - Sandstone + - Sandbags + - Diamond + - Snow + - Uranium + - Plasma + - Gold + - Silver + - Clown + - Titanium + - Plastitanium + Others: + - Adamantine + - Mythril + - Enriched Uranium + - Abductor +*/ + +/obj/item/stack/sheet/mineral + icon = 'icons/obj/mining.dmi' + +/* + * Sandstone + */ + +var/global/list/datum/stack_recipe/sandstone_recipes = list ( \ + new/datum/stack_recipe("pile of dirt", /obj/machinery/hydroponics/soil, 3, time = 10, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("sandstone door", /obj/structure/mineral_door/sandstone, 10, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("Assistant Statue", /obj/structure/statue/sandstone/assistant, 5, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("Breakdown into sand", /obj/item/weapon/ore/glass, 1, one_per_turf = 0, on_floor = 1), \ +/* new/datum/stack_recipe("sandstone wall", ???), \ + new/datum/stack_recipe("sandstone floor", ???),\ */ + ) + +/obj/item/stack/sheet/mineral/sandstone + name = "sandstone brick" + desc = "This appears to be a combination of both sand and stone." + singular_name = "sandstone brick" + icon_state = "sheet-sandstone" + throw_speed = 3 + throw_range = 5 + origin_tech = "materials=1" + materials = list(MAT_GLASS=MINERAL_MATERIAL_AMOUNT) + sheettype = "sandstone" + +/obj/item/stack/sheet/mineral/sandstone/New(var/loc, var/amount=null) + recipes = sandstone_recipes + pixel_x = rand(0,4)-4 + pixel_y = rand(0,4)-4 + ..() + +/obj/item/stack/sheet/mineral/sandstone/thirty + amount = 30 + +/* + * Sandbags + */ + +/obj/item/stack/sheet/mineral/sandbags + name = "sandbags" + icon = 'icons/obj/items.dmi' + icon_state = "sandbags" + singular_name = "sandbag" + layer = LOW_ITEM_LAYER + origin_tech = "materials=2" + +var/global/list/datum/stack_recipe/sandbag_recipes = list ( \ + new/datum/stack_recipe("sandbags", /obj/structure/barricade/sandbags, 1, time = 25, one_per_turf = 1, on_floor = 1), \ + ) + +/obj/item/stack/sheet/mineral/sandbags/New(var/loc, var/amount=null) + recipes = sandbag_recipes + pixel_x = rand(0,4)-4 + pixel_y = rand(0,4)-4 + ..() + +/* + * Diamond + */ +/obj/item/stack/sheet/mineral/diamond + name = "diamond" + icon_state = "sheet-diamond" + singular_name = "diamond" + origin_tech = "materials=6" + sheettype = "diamond" + materials = list(MAT_DIAMOND=MINERAL_MATERIAL_AMOUNT) + +var/global/list/datum/stack_recipe/diamond_recipes = list ( \ + new/datum/stack_recipe("diamond door", /obj/structure/mineral_door/transparent/diamond, 10, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("diamond tile", /obj/item/stack/tile/mineral/diamond, 1, 4, 20), \ + new/datum/stack_recipe("Captain Statue", /obj/structure/statue/diamond/captain, 5, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("AI Hologram Statue", /obj/structure/statue/diamond/ai1, 5, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("AI Core Statue", /obj/structure/statue/diamond/ai2, 5, one_per_turf = 1, on_floor = 1), \ + ) + +/obj/item/stack/sheet/mineral/diamond/New(var/loc, var/amount=null) + recipes = diamond_recipes + pixel_x = rand(0,4)-4 + pixel_y = rand(0,4)-4 + ..() + +/* + * Uranium + */ +/obj/item/stack/sheet/mineral/uranium + name = "uranium" + icon_state = "sheet-uranium" + singular_name = "uranium sheet" + origin_tech = "materials=5" + sheettype = "uranium" + materials = list(MAT_URANIUM=MINERAL_MATERIAL_AMOUNT) + +var/global/list/datum/stack_recipe/uranium_recipes = list ( \ + new/datum/stack_recipe("uranium door", /obj/structure/mineral_door/uranium, 10, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("uranium tile", /obj/item/stack/tile/mineral/uranium, 1, 4, 20), \ + new/datum/stack_recipe("Nuke Statue", /obj/structure/statue/uranium/nuke, 5, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("Engineer Statue", /obj/structure/statue/uranium/eng, 5, one_per_turf = 1, on_floor = 1), \ + ) + +/obj/item/stack/sheet/mineral/uranium/New(var/loc, var/amount=null) + recipes = uranium_recipes + pixel_x = rand(0,4)-4 + pixel_y = rand(0,4)-4 + ..() + +/* + * Plasma + */ +/obj/item/stack/sheet/mineral/plasma + name = "solid plasma" + icon_state = "sheet-plasma" + singular_name = "plasma sheet" + origin_tech = "plasmatech=2;materials=2" + sheettype = "plasma" + resistance_flags = FLAMMABLE + obj_integrity = 100 + max_integrity = 100 + materials = list(MAT_PLASMA=MINERAL_MATERIAL_AMOUNT) + +var/global/list/datum/stack_recipe/plasma_recipes = list ( \ + new/datum/stack_recipe("plasma door", /obj/structure/mineral_door/transparent/plasma, 10, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("plasma tile", /obj/item/stack/tile/mineral/plasma, 1, 4, 20), \ + new/datum/stack_recipe("Scientist Statue", /obj/structure/statue/plasma/scientist, 5, one_per_turf = 1, on_floor = 1), \ + ) + +/obj/item/stack/sheet/mineral/plasma/New(var/loc, var/amount=null) + recipes = plasma_recipes + pixel_x = rand(0,4)-4 + pixel_y = rand(0,4)-4 + ..() + +/obj/item/stack/sheet/mineral/plasma/attackby(obj/item/weapon/W as obj, mob/user as mob, params) + if(W.is_hot() > 300)//If the temperature of the object is over 300, then ignite + message_admins("Plasma sheets ignited by [key_name_admin(user)](?) (FLW) in ([x],[y],[z] - JMP)",0,1) + log_game("Plasma sheets ignited by [key_name(user)] in ([x],[y],[z])") + fire_act() + else + return ..() + +/obj/item/stack/sheet/mineral/plasma/fire_act(exposed_temperature, exposed_volume) + atmos_spawn_air("plasma=[amount*10];TEMP=1000") + qdel(src) + +/* + * Gold + */ +/obj/item/stack/sheet/mineral/gold + name = "gold" + icon_state = "sheet-gold" + singular_name = "gold bar" + origin_tech = "materials=4" + sheettype = "gold" + materials = list(MAT_GOLD=MINERAL_MATERIAL_AMOUNT) + +var/global/list/datum/stack_recipe/gold_recipes = list ( \ + new/datum/stack_recipe("golden door", /obj/structure/mineral_door/gold, 10, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("gold tile", /obj/item/stack/tile/mineral/gold, 1, 4, 20), \ + new/datum/stack_recipe("HoS Statue", /obj/structure/statue/gold/hos, 5, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("HoP Statue", /obj/structure/statue/gold/hop, 5, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("CE Statue", /obj/structure/statue/gold/ce, 5, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("RD Statue", /obj/structure/statue/gold/rd, 5, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("Simple Crown", /obj/item/clothing/head/crown, 5), \ + new/datum/stack_recipe("CMO Statue", /obj/structure/statue/gold/cmo, 5, one_per_turf = 1, on_floor = 1), \ + ) + +/obj/item/stack/sheet/mineral/gold/New(var/loc, var/amount=null) + recipes = gold_recipes + pixel_x = rand(0,4)-4 + pixel_y = rand(0,4)-4 + ..() + +/* + * Silver + */ +/obj/item/stack/sheet/mineral/silver + name = "silver" + icon_state = "sheet-silver" + singular_name = "silver bar" + origin_tech = "materials=4" + sheettype = "silver" + materials = list(MAT_SILVER=MINERAL_MATERIAL_AMOUNT) + +var/global/list/datum/stack_recipe/silver_recipes = list ( \ + new/datum/stack_recipe("silver door", /obj/structure/mineral_door/silver, 10, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("silver tile", /obj/item/stack/tile/mineral/silver, 1, 4, 20), \ + new/datum/stack_recipe("Med Officer Statue", /obj/structure/statue/silver/md, 5, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("Janitor Statue", /obj/structure/statue/silver/janitor, 5, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("Sec Officer Statue", /obj/structure/statue/silver/sec, 5, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("Sec Borg Statue", /obj/structure/statue/silver/secborg, 5, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("Med Borg Statue", /obj/structure/statue/silver/medborg, 5, one_per_turf = 1, on_floor = 1), \ + ) + +/obj/item/stack/sheet/mineral/silver/New(var/loc, var/amount=null) + recipes = silver_recipes + pixel_x = rand(0,4)-4 + pixel_y = rand(0,4)-4 + ..() + +/* + * Clown + */ +/obj/item/stack/sheet/mineral/bananium + name = "bananium" + icon_state = "sheet-clown" + singular_name = "bananium sheet" + origin_tech = "materials=4" + sheettype = "clown" + materials = list(MAT_BANANIUM=MINERAL_MATERIAL_AMOUNT) + +var/global/list/datum/stack_recipe/clown_recipes = list ( \ + new/datum/stack_recipe("bananium tile", /obj/item/stack/tile/mineral/bananium, 1, 4, 20), \ + new/datum/stack_recipe("Clown Statue", /obj/structure/statue/bananium/clown, 5, one_per_turf = 1, on_floor = 1), \ + ) + +/obj/item/stack/sheet/mineral/bananium/New(var/loc, var/amount=null) + recipes = clown_recipes + pixel_x = rand(0,4)-4 + pixel_y = rand(0,4)-4 + ..() + +/* + * Titanium + */ +/obj/item/stack/sheet/mineral/titanium + name = "titanium" + icon_state = "sheet-titanium" + singular_name = "titanium sheet" + force = 5 + throwforce = 5 + w_class = 3 + throw_speed = 1 + throw_range = 3 + origin_tech = "materials=4" + sheettype = "titanium" + materials = list(MAT_TITANIUM=MINERAL_MATERIAL_AMOUNT) + +var/global/list/datum/stack_recipe/titanium_recipes = list ( \ + new/datum/stack_recipe("titanium tile", /obj/item/stack/tile/mineral/titanium, 1, 4, 20), \ + ) + +/obj/item/stack/sheet/mineral/titanium/New(var/loc, var/amount=null) + recipes = titanium_recipes + pixel_x = rand(0,4)-4 + pixel_y = rand(0,4)-4 + ..() + + +/* + * Plastitanium + */ +/obj/item/stack/sheet/mineral/plastitanium + name = "plastitanium" + icon_state = "sheet-plastitanium" + singular_name = "plastitanium sheet" + force = 5 + throwforce = 5 + w_class = 3 + throw_speed = 1 + throw_range = 3 + origin_tech = "materials=4" + sheettype = "plastitanium" + materials = list(MAT_TITANIUM=6000, MAT_PLASMA=6000) + +var/global/list/datum/stack_recipe/plastitanium_recipes = list ( \ + new/datum/stack_recipe("plas-titanium tile", /obj/item/stack/tile/mineral/plastitanium, 1, 4, 20), \ + ) + +/obj/item/stack/sheet/mineral/plastitanium/New(var/loc, var/amount=null) + recipes = plastitanium_recipes + pixel_x = rand(0,4)-4 + pixel_y = rand(0,4)-4 + ..() + + +/* + * Snow + */ +/obj/item/stack/sheet/mineral/snow + name = "snow" + icon_state = "sheet-snow" + singular_name = "snow block" + force = 1 + throwforce = 2 + origin_tech = "materials=1" + sheettype = "snow" + +var/global/list/datum/stack_recipe/snow_recipes = list ( \ + new/datum/stack_recipe("Snow Wall",/turf/closed/wall/mineral/snow, 5, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("Snowman", /obj/structure/statue/snow/snowman, 5, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("Snowball", /obj/item/toy/snowball, 1), \ + ) + +/obj/item/stack/sheet/mineral/snow/New(var/loc, var/amount=null) + recipes = snow_recipes + pixel_x = rand(0,4)-4 + pixel_y = rand(0,4)-4 + ..() + +/****************************** Others ****************************/ + +/* + * Enriched Uranium + */ +/obj/item/stack/sheet/mineral/enruranium + name = "enriched uranium" + icon_state = "sheet-enruranium" + singular_name = "enriched uranium sheet" + origin_tech = "materials=6" + materials = list(MAT_URANIUM=3000) + +/* + * Adamantine + */ +/obj/item/stack/sheet/mineral/adamantine + name = "adamantine" + icon_state = "sheet-adamantine" + singular_name = "adamantine sheet" + origin_tech = "materials=4" + +/* + * Mythril + */ +/obj/item/stack/sheet/mineral/mythril + name = "mythril" + icon_state = "sheet-mythril" + singular_name = "mythril sheet" + origin_tech = "materials=4" + +/* + * Alien Alloy + */ +/obj/item/stack/sheet/mineral/abductor + name = "alien alloy" + icon = 'icons/obj/abductor.dmi' + icon_state = "sheet-abductor" + singular_name = "alien alloy sheet" + origin_tech = "materials=6;abductor=1" + sheettype = "abductor" + +var/global/list/datum/stack_recipe/abductor_recipes = list ( \ +/* new/datum/stack_recipe("alien chair", /obj/structure/chair, one_per_turf = 1, on_floor = 1), \ */ + new/datum/stack_recipe("alien bed", /obj/structure/bed/abductor, 2, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("alien locker", /obj/structure/closet/abductor, 1, time = 15, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("alien table frame", /obj/structure/table_frame/abductor, 1, time = 15, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("alien airlock assembly", /obj/structure/door_assembly/door_assembly_abductor, 4, time = 20, one_per_turf = 1, on_floor = 1), \ + null, \ + new/datum/stack_recipe("alien floor tile", /obj/item/stack/tile/mineral/abductor, 1, 4, 20), \ +/* null, \ + new/datum/stack_recipe("Abductor Agent Statue", /obj/structure/statue/bananium/clown, 5, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("Abductor Sciencist Statue", /obj/structure/statue/bananium/clown, 5, one_per_turf = 1, on_floor = 1)*/ + ) + +/obj/item/stack/sheet/mineral/abductor/New(var/loc, var/amount=null) + recipes = abductor_recipes + ..() diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm new file mode 100644 index 0000000..fdd8be1 --- /dev/null +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -0,0 +1,348 @@ +/* Diffrent misc types of sheets + * Contains: + * Metal + * Plasteel + * Wood + * Cloth + * Cardboard + * Runed Metal (cult) + * Brass (clockwork cult) + */ + +/* + * Metal + */ +var/global/list/datum/stack_recipe/metal_recipes = list ( \ + new/datum/stack_recipe("stool", /obj/structure/chair/stool, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("bar stool", /obj/structure/chair/stool/bar, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("chair", /obj/structure/chair, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("swivel chair", /obj/structure/chair/office/dark, 5, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("comfy chair", /obj/structure/chair/comfy/beige, 2, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("bed", /obj/structure/bed, 2, one_per_turf = 1, on_floor = 1), \ + null, \ + new/datum/stack_recipe("rack parts", /obj/item/weapon/rack_parts), \ + new/datum/stack_recipe("closet", /obj/structure/closet, 2, time = 15, one_per_turf = 1, on_floor = 1), \ + null, \ + new/datum/stack_recipe("canister", /obj/machinery/portable_atmospherics/canister, 10, time = 15, one_per_turf = 1, on_floor = 1), \ + null, \ + new/datum/stack_recipe("floor tile", /obj/item/stack/tile/plasteel, 1, 4, 20), \ + new/datum/stack_recipe("metal rod", /obj/item/stack/rods, 1, 2, 60), \ + null, \ + new/datum/stack_recipe("wall girders", /obj/structure/girder, 2, time = 40, one_per_turf = 1, on_floor = 1), \ + null, \ + new/datum/stack_recipe("computer frame", /obj/structure/frame/computer, 5, time = 25, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("modular console", /obj/machinery/modular_computer/console/buildable/, 10, time = 25, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("machine frame", /obj/structure/frame/machine, 5, time = 25, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("airlock assembly", /obj/structure/door_assembly, 4, time = 50, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("firelock frame", /obj/structure/firelock_frame, 3, time = 50, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("turret frame", /obj/machinery/porta_turret_construct, 5, time = 25, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("meatspike frame", /obj/structure/kitchenspike_frame, 5, time = 25, one_per_turf = 1, on_floor = 1), \ +/* new/datum/stack_recipe("reflector frame", /obj/structure/reflector, 5, time = 25, one_per_turf = 1, on_floor = 1), \*/ + null, \ + new/datum/stack_recipe("grenade casing", /obj/item/weapon/grenade/chem_grenade), \ + new/datum/stack_recipe("light fixture frame", /obj/item/wallframe/light_fixture, 2), \ + new/datum/stack_recipe("small light fixture frame", /obj/item/wallframe/light_fixture/small, 1), \ + null, \ + new/datum/stack_recipe("apc frame", /obj/item/wallframe/apc, 2), \ + new/datum/stack_recipe("air alarm frame", /obj/item/wallframe/airalarm, 2), \ + new/datum/stack_recipe("fire alarm frame", /obj/item/wallframe/firealarm, 2), \ + new/datum/stack_recipe("extinguisher cabinet frame", /obj/item/wallframe/extinguisher_cabinet, 2), \ + new/datum/stack_recipe("button frame", /obj/item/wallframe/button, 1), \ + null, \ + new/datum/stack_recipe("iron door", /obj/structure/mineral_door/iron, 20, one_per_turf = 1, on_floor = 1), \ +) + +/obj/item/stack/sheet/metal + name = "metal" + desc = "Sheets made out of metal." + singular_name = "metal sheet" + icon_state = "sheet-metal" + materials = list(MAT_METAL=MINERAL_MATERIAL_AMOUNT) + throwforce = 10 + flags = CONDUCT + origin_tech = "materials=1" + resistance_flags = FIRE_PROOF + merge_type = /obj/item/stack/sheet/metal + +/obj/item/stack/sheet/metal/ratvar_act() + new /obj/item/stack/sheet/brass(loc, amount) + qdel(src) + +/obj/item/stack/sheet/metal/narsie_act() + if(prob(20)) + new /obj/item/stack/sheet/runed_metal(loc, amount) + qdel(src) + +/obj/item/stack/sheet/metal/fifty + amount = 50 + +/obj/item/stack/sheet/metal/five + amount = 5 + +/obj/item/stack/sheet/metal/cyborg + materials = list() + is_cyborg = 1 + cost = 500 + +/obj/item/stack/sheet/metal/New(var/loc, var/amount=null) + recipes = metal_recipes + return ..() + +/* + * Plasteel + */ +var/global/list/datum/stack_recipe/plasteel_recipes = list ( \ + new/datum/stack_recipe("AI core", /obj/structure/AIcore, 4, time = 50, one_per_turf = 1), \ + new/datum/stack_recipe("bomb assembly", /obj/machinery/syndicatebomb/empty, 10, time = 50), \ +) + +/obj/item/stack/sheet/plasteel + name = "plasteel" + singular_name = "plasteel sheet" + desc = "This sheet is an alloy of iron and plasma." + icon_state = "sheet-plasteel" + item_state = "sheet-metal" + materials = list(MAT_METAL=6000, MAT_PLASMA=6000) + throwforce = 10 + flags = CONDUCT + origin_tech = "materials=2" + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 80) + resistance_flags = FIRE_PROOF + merge_type = /obj/item/stack/sheet/plasteel + +/obj/item/stack/sheet/plasteel/New(var/loc, var/amount=null) + recipes = plasteel_recipes + return ..() + +/obj/item/stack/sheet/plasteel/twenty + amount = 20 + +/obj/item/stack/sheet/plasteel/fifty + amount = 50 + +/* + * Wood + */ +var/global/list/datum/stack_recipe/wood_recipes = list ( \ + new/datum/stack_recipe("wooden sandals", /obj/item/clothing/shoes/sandal, 1), \ + new/datum/stack_recipe("wood floor tile", /obj/item/stack/tile/wood, 1, 4, 20), \ + new/datum/stack_recipe("wood table frame", /obj/structure/table_frame/wood, 2, time = 10), \ + new/datum/stack_recipe("rifle stock", /obj/item/weaponcrafting/stock, 10, time = 40), \ + new/datum/stack_recipe("rolling pin", /obj/item/weapon/kitchen/rollingpin, 2, time = 30), \ + new/datum/stack_recipe("wooden chair", /obj/structure/chair/wood/normal, 3, time = 10, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("wooden barricade", /obj/structure/barricade/wooden, 5, time = 50, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("wooden door", /obj/structure/mineral_door/wood, 10, time = 20, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("coffin", /obj/structure/closet/coffin, 5, time = 15, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("book case", /obj/structure/bookcase, 4, time = 15, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("drying rack", /obj/machinery/smartfridge/drying_rack, 10, time = 15, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("dog bed", /obj/structure/bed/dogbed, 10, time = 10, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("display case chassis", /obj/structure/displaycase_chassis, 5, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("wooden buckler", /obj/item/weapon/shield/riot/buckler, 20, time = 40), \ + new/datum/stack_recipe("apiary", /obj/structure/beebox, 40, time = 50),\ + new/datum/stack_recipe("honey frame", /obj/item/honey_frame, 5, time = 10),\ + new/datum/stack_recipe("ore box", /obj/structure/ore_box, 4, time = 50, one_per_turf = 1, on_floor = 1),\ + new/datum/stack_recipe("baseball bat", /obj/item/weapon/melee/baseball_bat, 5, time = 15),\ + ) + +/obj/item/stack/sheet/mineral/wood + name = "wooden plank" + desc = "One can only guess that this is a bunch of wood." + singular_name = "wood plank" + icon_state = "sheet-wood" + icon = 'icons/obj/items.dmi' + origin_tech = "materials=1;biotech=1" + sheettype = "wood" + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 0) + resistance_flags = FLAMMABLE + merge_type = /obj/item/stack/sheet/mineral/wood + +/obj/item/stack/sheet/mineral/wood/New(var/loc, var/amount=null) + recipes = wood_recipes + return ..() + +/obj/item/stack/sheet/mineral/wood/fifty + amount = 50 + +/* + * Cloth + */ +var/global/list/datum/stack_recipe/cloth_recipes = list ( \ + new/datum/stack_recipe("grey jumpsuit", /obj/item/clothing/under/color/grey, 3), \ + new/datum/stack_recipe("black shoes", /obj/item/clothing/shoes/sneakers/black, 2), \ + null, \ + new/datum/stack_recipe("backpack", /obj/item/weapon/storage/backpack, 4), \ + new/datum/stack_recipe("dufflebag", /obj/item/weapon/storage/backpack/dufflebag, 6), \ + null, \ + new/datum/stack_recipe("plant bag", /obj/item/weapon/storage/bag/plants, 4), \ + new/datum/stack_recipe("book bag", /obj/item/weapon/storage/bag/books, 4), \ + new/datum/stack_recipe("mining satchel", /obj/item/weapon/storage/bag/ore, 4), \ + new/datum/stack_recipe("chemistry bag", /obj/item/weapon/storage/bag/chemistry, 4), \ + new/datum/stack_recipe("bio bag", /obj/item/weapon/storage/bag/bio, 4), \ + null, \ + new/datum/stack_recipe("improvised gauze", /obj/item/stack/medical/gauze/improvised, 1, 2, 6), \ + new/datum/stack_recipe("rag", /obj/item/weapon/reagent_containers/glass/rag, 1), \ + new/datum/stack_recipe("bedsheet", /obj/item/weapon/bedsheet, 3), \ + new/datum/stack_recipe("empty sandbag", /obj/item/weapon/emptysandbag, 4), \ + null, \ + new/datum/stack_recipe("fingerless gloves", /obj/item/clothing/gloves/fingerless, 1), \ + new/datum/stack_recipe("black gloves", /obj/item/clothing/gloves/color/black, 3), \ + ) + +/obj/item/stack/sheet/cloth + name = "cloth" + desc = "Is it cotton? Linen? Denim? Burlap? Canvas? You can't tell." + singular_name = "cloth roll" + icon_state = "sheet-cloth" + origin_tech = "materials=2" + resistance_flags = FLAMMABLE + force = 0 + throwforce = 0 + merge_type = /obj/item/stack/sheet/cloth + +/obj/item/stack/sheet/cloth/New(var/loc, var/amount=null) + recipes = cloth_recipes + return ..() + +/obj/item/stack/sheet/cloth/ten + amount = 10 + +/* + * Cardboard + */ +var/global/list/datum/stack_recipe/cardboard_recipes = list ( \ + new/datum/stack_recipe("box", /obj/item/weapon/storage/box), \ + new/datum/stack_recipe("light tubes", /obj/item/weapon/storage/box/lights/tubes), \ + new/datum/stack_recipe("light bulbs", /obj/item/weapon/storage/box/lights/bulbs), \ + new/datum/stack_recipe("mouse traps", /obj/item/weapon/storage/box/mousetraps), \ + new/datum/stack_recipe("cardborg suit", /obj/item/clothing/suit/cardborg, 3), \ + new/datum/stack_recipe("cardborg helmet", /obj/item/clothing/head/cardborg), \ + new/datum/stack_recipe("pizza box", /obj/item/pizzabox), \ + new/datum/stack_recipe("folder", /obj/item/weapon/folder), \ + new/datum/stack_recipe("large box", /obj/structure/closet/cardboard, 4), \ + new/datum/stack_recipe("cardboard cutout", /obj/item/cardboard_cutout, 5), \ +) + +/obj/item/stack/sheet/cardboard //BubbleWrap //it's cardboard you fuck + name = "cardboard" + desc = "Large sheets of card, like boxes folded flat." + singular_name = "cardboard sheet" + icon_state = "sheet-card" + origin_tech = "materials=1" + resistance_flags = FLAMMABLE + merge_type = /obj/item/stack/sheet/cardboard + +/obj/item/stack/sheet/cardboard/New(var/loc, var/amount=null) + recipes = cardboard_recipes + return ..() + +/obj/item/stack/sheet/cardboard/fifty + amount = 50 + +/* + * Runed Metal + */ + +var/global/list/datum/stack_recipe/runed_metal_recipes = list ( \ + new/datum/stack_recipe("runed door", /obj/machinery/door/airlock/cult, 1, time = 50, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("runed girder", /obj/structure/girder/cult, 1, time = 50, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("pylon", /obj/structure/destructible/cult/pylon, 4, time = 40, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("forge", /obj/structure/destructible/cult/forge, 3, time = 40, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("archives", /obj/structure/destructible/cult/tome, 3, time = 40, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("altar", /obj/structure/destructible/cult/talisman, 3, time = 40, one_per_turf = 1, on_floor = 1), \ + ) + +/obj/item/stack/sheet/runed_metal + name = "runed metal" + desc = "Sheets of cold metal with shifting inscriptions writ upon them." + singular_name = "runed metal sheet" + icon_state = "sheet-runed" + icon = 'icons/obj/items.dmi' + sheettype = "runed" + merge_type = /obj/item/stack/sheet/runed_metal + +/obj/item/stack/sheet/runed_metal/ratvar_act() + new /obj/item/stack/sheet/brass(loc, amount) + qdel(src) + +/obj/item/stack/sheet/runed_metal/attack_self(mob/living/user) + if(!iscultist(user)) + user << "Only one with forbidden knowledge could hope to work this metal..." + return + return ..() + +/obj/item/stack/sheet/runed_metal/attack(atom/target, mob/living/user) + if(!iscultist(user)) + user << "Only one with forbidden knowledge could hope to work this metal..." + return + ..() + +/obj/item/stack/sheet/runed_metal/fifty + amount = 50 + +/obj/item/stack/sheet/runed_metal/New(var/loc, var/amount=null) + recipes = runed_metal_recipes + return ..() + +/* + * Metal + */ +var/global/list/datum/stack_recipe/brass_recipes = list ( \ + new/datum/stack_recipe("wall gear", /obj/structure/destructible/clockwork/wall_gear, 3, time = 30, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("brass floor tile", /obj/item/stack/tile/brass, 1, 1, 50), \ + null, + new/datum/stack_recipe("pinion airlock", /obj/machinery/door/airlock/clockwork, 5, time = 50, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("brass pinion airlock", /obj/machinery/door/airlock/clockwork/brass, 5, time = 50, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("brass windoor", /obj/machinery/door/window/clockwork, 2, time = 30, one_per_turf = 1, on_floor = 1), \ + null, + new/datum/stack_recipe("directional brass window", /obj/structure/window/reinforced/clockwork, time = 15, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("brass window", /obj/structure/window/reinforced/clockwork/fulltile, 2, time = 30, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("brass table frame", /obj/structure/table_frame/brass, 1, time = 5, one_per_turf = 1, on_floor = 1) \ +) + +/obj/item/stack/sheet/brass + name = "brass" + desc = "Sheets made out of brass." + singular_name = "brass sheet" + icon_state = "sheet-brass" + resistance_flags = FIRE_PROOF | ACID_PROOF + throwforce = 10 + +/obj/item/stack/sheet/brass/narsie_act() + if(prob(20)) + new /obj/item/stack/sheet/runed_metal(loc, amount) + qdel(src) + +/obj/item/stack/sheet/brass/New(var/loc, var/amount=null) + recipes = brass_recipes + return ..() + +/obj/item/stack/sheet/lessergem + name = "lesser gems" + desc = "Rare kind of gems which are only gained by blood sacrifice to minor deities. They are needed in crafting powerful objects." + singular_name = "lesser gem" + icon_state = "sheet-lessergem" + origin_tech = "materials=4" + + +/obj/item/stack/sheet/greatergem + name = "greater gems" + desc = "Rare kind of gems which are only gained by blood sacrifice to minor deities. They are needed in crafting powerful objects." + singular_name = "greater gem" + icon_state = "sheet-greatergem" + origin_tech = "materials=7" + + /* + * Bones + */ +/obj/item/stack/sheet/bone + name = "bones" + icon = 'icons/obj/mining.dmi' + icon_state = "bone" + singular_name = "bone" + desc = "Someone's been drinking their milk." + force = 7 + throwforce = 5 + w_class = 3 + throw_speed = 1 + throw_range = 3 + origin_tech = "materials=2;biotech=2" diff --git a/code/game/objects/items/stacks/sheets/sheets.dm b/code/game/objects/items/stacks/sheets/sheets.dm new file mode 100644 index 0000000..1ae89c6 --- /dev/null +++ b/code/game/objects/items/stacks/sheets/sheets.dm @@ -0,0 +1,11 @@ +/obj/item/stack/sheet + name = "sheet" + w_class = 3 + force = 5 + throwforce = 5 + max_amount = 50 + throw_speed = 1 + throw_range = 3 + attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "smashed") + var/perunit = MINERAL_MATERIAL_AMOUNT + var/sheettype = null //this is used for girders in the creation of walls/false walls \ No newline at end of file diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm new file mode 100644 index 0000000..bf0a08d --- /dev/null +++ b/code/game/objects/items/stacks/stack.dm @@ -0,0 +1,296 @@ +/* Stack type objects! + * Contains: + * Stacks + * Recipe datum + */ + +/* + * Stacks + */ +/obj/item/stack + origin_tech = "materials=1" + gender = PLURAL + var/list/datum/stack_recipe/recipes + var/singular_name + amount = 1 + var/max_amount = 50 //also see stack recipes initialisation, param "max_res_amount" must be equal to this max_amount + var/is_cyborg = 0 // It's 1 if module is used by a cyborg, and uses its storage + var/datum/robot_energy_storage/source + var/cost = 1 // How much energy from storage it costs + var/merge_type = null // This path and its children should merge with this stack, defaults to src.type + +/obj/item/stack/New(var/loc, var/amount=null) + ..() + if (amount) + src.amount = amount + if(!merge_type) + merge_type = src.type + return + +/obj/item/stack/Destroy() + if (usr && usr.machine==src) + usr << browse(null, "window=stack") + return ..() + +/obj/item/stack/examine(mob/user) + ..() + if (is_cyborg) + if(src.singular_name) + user << "There is enough energy for [src.get_amount()] [src.singular_name]\s." + else + user << "There is enough energy for [src.get_amount()]." + return + if(src.singular_name) + if(src.get_amount()>1) + user << "There are [src.get_amount()] [src.singular_name]\s in the stack." + else + user << "There is [src.get_amount()] [src.singular_name] in the stack." + else if(src.get_amount()>1) + user << "There are [src.get_amount()] in the stack." + else + user << "There is [src.get_amount()] in the stack." + +/obj/item/stack/proc/get_amount() + if (is_cyborg) + return round(source.energy / cost) + else + return (amount) + +/obj/item/stack/attack_self(mob/user) + interact(user) + +/obj/item/stack/interact(mob/user) + if (!recipes) + return + if (!src || get_amount() <= 0) + user << browse(null, "window=stack") + return + user.set_machine(src) //for correct work of onclose + var/t1 = text("Constructions from []Amount Left: []
            ", src, src.get_amount()) + for(var/i=1;i<=recipes.len,i++) + var/datum/stack_recipe/R = recipes[i] + if (isnull(R)) + t1 += "
            " + continue + if (i>1 && !isnull(recipes[i-1])) + t1+="
            " + var/max_multiplier = round(src.get_amount() / R.req_amount) + var/title as text + var/can_build = 1 + can_build = can_build && (max_multiplier>0) + if (R.res_amount>1) + title+= "[R.res_amount]x [R.title]\s" + else + title+= "[R.title]" + title+= " ([R.req_amount] [src.singular_name]\s)" + if (can_build) + t1 += text("[] ", src, i, title) + else + t1 += text("[]", title) + continue + if (R.max_res_amount>1 && max_multiplier>1) + max_multiplier = min(max_multiplier, round(R.max_res_amount/R.res_amount)) + t1 += " |" + var/list/multipliers = list(5,10,25) + for (var/n in multipliers) + if (max_multiplier>=n) + t1 += " [n*R.res_amount]x" + if (!(max_multiplier in multipliers)) + t1 += " [max_multiplier*R.res_amount]x" + + t1 += "
            " + user << browse(t1, "window=stack") + onclose(user, "stack") + return + +/obj/item/stack/Topic(href, href_list) + ..() + if (usr.restrained() || usr.stat || usr.get_active_held_item() != src) + return + if (href_list["make"]) + if (src.get_amount() < 1) qdel(src) //Never should happen + + var/datum/stack_recipe/R = recipes[text2num(href_list["make"])] + var/multiplier = text2num(href_list["multiplier"]) + if (!multiplier ||(multiplier <= 0)) //href protection + return + if(!building_checks(R, multiplier)) + return + if (R.time) + usr.visible_message("[usr] starts building [R.title].", "You start building [R.title]...") + if (!do_after(usr, R.time, target = usr)) + return + if(!building_checks(R, multiplier)) + return + + var/atom/O = new R.result_type( usr.loc ) + O.setDir(usr.dir) + use(R.req_amount * multiplier) + + //is it a stack ? + if (R.max_res_amount > 1) + var/obj/item/stack/new_item = O + new_item.amount = R.res_amount*multiplier + new_item.update_icon() + + if(new_item.amount <= 0)//if the stack is empty, i.e it has been merged with an existing stack and has been garbage collected + return + + if (istype(O,/obj/item)) + usr.put_in_hands(O) + O.add_fingerprint(usr) + + //BubbleWrap - so newly formed boxes are empty + if ( istype(O, /obj/item/weapon/storage) ) + for (var/obj/item/I in O) + qdel(I) + //BubbleWrap END + + if (src && usr.machine==src) //do not reopen closed window + spawn( 0 ) + src.interact(usr) + return + return + +/obj/item/stack/proc/building_checks(datum/stack_recipe/R, multiplier) + if (src.get_amount() < R.req_amount*multiplier) + if (R.req_amount*multiplier>1) + usr << "You haven't got enough [src] to build \the [R.req_amount*multiplier] [R.title]\s!" + else + usr << "You haven't got enough [src] to build \the [R.title]!" + return 0 + if (R.one_per_turf && (locate(R.result_type) in usr.loc)) + usr << "There is another [R.title] here!" + return 0 + if(R.on_floor && !isfloorturf(usr.loc)) + usr << "\The [R.title] must be constructed on the floor!" + return 0 + return 1 + +/obj/item/stack/proc/use(var/used) // return 0 = borked; return 1 = had enough + if(zero_amount()) + return 0 + if (is_cyborg) + return source.use_charge(used * cost) + if (amount < used) + return 0 + amount -= used + zero_amount() + update_icon() + return 1 + +/obj/item/stack/proc/zero_amount() + if(is_cyborg) + return source.energy < cost + if(amount < 1) + qdel(src) + return 1 + return 0 + +/obj/item/stack/proc/add(amount) + if (is_cyborg) + source.add_charge(amount * cost) + else + src.amount += amount + update_icon() + +/obj/item/stack/proc/merge(obj/item/stack/S) //Merge src into S, as much as possible + if(S == src) //amusingly this can cause a stack to consume itself, let's not allow that. + return + var/transfer = get_amount() + if(S.is_cyborg) + transfer = min(transfer, round((S.source.max_energy - S.source.energy) / S.cost)) + else + transfer = min(transfer, S.max_amount - S.amount) + if(pulledby) + pulledby.start_pulling(S) + S.copy_evidences(src) + use(transfer) + S.add(transfer) + +/obj/item/stack/Crossed(obj/o) + if(istype(o, merge_type) && !o.throwing) + merge(o) + return ..() + +/obj/item/stack/hitby(atom/movable/AM, skip, hitpush) + if(istype(AM, merge_type)) + merge(AM) + return ..() + +/obj/item/stack/attack_hand(mob/user) + if (user.get_inactive_held_item() == src) + if(zero_amount()) + return + change_stack(user,1) + else + ..() + return + +/obj/item/stack/AltClick(mob/living/user) + if(!istype(user) || !user.canUseTopic(src)) + user << "You can't do that right now!" + return + if(!in_range(src, user)) + return + else + if(zero_amount()) + return + //get amount from user + var/min = 0 + var/max = src.get_amount() + var/stackmaterial = input(user,"How many sheets do you wish to take out of this stack? (Maximum [max]") as num + if(stackmaterial == null || stackmaterial <= min || stackmaterial >= src.get_amount()) + return + else + change_stack(user,stackmaterial) + user << "You take [stackmaterial] sheets out of the stack" + +/obj/item/stack/proc/change_stack(mob/user,amount) + var/obj/item/stack/F = new src.type(user, amount) + . = F + F.copy_evidences(src) + user.put_in_hands(F) + add_fingerprint(user) + F.add_fingerprint(user) + use(amount) + + + +/obj/item/stack/attackby(obj/item/W, mob/user, params) + if(istype(W, merge_type)) + var/obj/item/stack/S = W + merge(S) + user << "Your [S.name] stack now contains [S.get_amount()] [S.singular_name]\s." + else + return ..() + +/obj/item/stack/proc/copy_evidences(obj/item/stack/from as obj) + src.blood_DNA = from.blood_DNA + src.fingerprints = from.fingerprints + src.fingerprintshidden = from.fingerprintshidden + src.fingerprintslast = from.fingerprintslast + //TODO bloody overlay + +/* + * Recipe datum + */ +/datum/stack_recipe + var/title = "ERROR" + var/result_type + var/req_amount = 1 + var/res_amount = 1 + var/max_res_amount = 1 + var/time = 0 + var/one_per_turf = 0 + var/on_floor = 0 + +/datum/stack_recipe/New(title, result_type, req_amount = 1, res_amount = 1, max_res_amount = 1, time = 0, one_per_turf = 0, on_floor = 0) + src.title = title + src.result_type = result_type + src.req_amount = req_amount + src.res_amount = res_amount + src.max_res_amount = max_res_amount + src.time = time + src.one_per_turf = one_per_turf + src.on_floor = on_floor diff --git a/code/game/objects/items/stacks/tiles/light.dm b/code/game/objects/items/stacks/tiles/light.dm new file mode 100644 index 0000000..1f585f3 --- /dev/null +++ b/code/game/objects/items/stacks/tiles/light.dm @@ -0,0 +1,31 @@ +/obj/item/stack/tile/light + name = "light tile" + singular_name = "light floor tile" + desc = "A floor tile, made out of glass. It produces light." + icon_state = "tile_e" + flags = CONDUCT + attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "smashed") + turf_type = /turf/open/floor/light + var/state = 0 + +/obj/item/stack/tile/light/New(var/loc, var/amount=null) + ..() + if(prob(5)) + state = 3 //broken + else if(prob(5)) + state = 2 //breaking + else if(prob(10)) + state = 1 //flickering occasionally + else + state = 0 //fine + +/obj/item/stack/tile/light/attackby(obj/item/O, mob/user, params) + if(istype(O,/obj/item/weapon/crowbar)) + new/obj/item/stack/sheet/metal(user.loc) + amount-- + new/obj/item/stack/light_w(user.loc) + if(amount <= 0) + user.unEquip(src, 1) + qdel(src) + else + return ..() \ No newline at end of file diff --git a/code/game/objects/items/stacks/tiles/tile_mineral.dm b/code/game/objects/items/stacks/tiles/tile_mineral.dm new file mode 100644 index 0000000..e9b4a03 --- /dev/null +++ b/code/game/objects/items/stacks/tiles/tile_mineral.dm @@ -0,0 +1,85 @@ +/obj/item/stack/tile/mineral/plasma + name = "plasma tile" + singular_name = "plasma floor tile" + desc = "A tile made out of highly flammable plasma. This can only end well." + icon_state = "tile_plasma" + origin_tech = "plasmatech=1" + turf_type = /turf/open/floor/mineral/plasma + mineralType = "plasma" + materials = list(MAT_PLASMA=500) + +/obj/item/stack/tile/mineral/uranium + name = "uranium tile" + singular_name = "uranium floor tile" + desc = "A tile made out of uranium. You feel a bit woozy." + icon_state = "tile_uranium" + turf_type = /turf/open/floor/mineral/uranium + mineralType = "uranium" + materials = list(MAT_URANIUM=500) + +/obj/item/stack/tile/mineral/gold + name = "gold tile" + singular_name = "gold floor tile" + desc = "A tile made out of gold, the swag seems strong here." + icon_state = "tile_gold" + turf_type = /turf/open/floor/mineral/gold + mineralType = "gold" + materials = list(MAT_GOLD=500) + +/obj/item/stack/tile/mineral/silver + name = "silver tile" + singular_name = "silver floor tile" + desc = "A tile made out of silver, the light shining from it is blinding." + icon_state = "tile_silver" + turf_type = /turf/open/floor/mineral/silver + mineralType = "silver" + materials = list(MAT_SILVER=500) + +/obj/item/stack/tile/mineral/diamond + name = "diamond tile" + singular_name = "diamond floor tile" + desc = "A tile made out of diamond. Wow, just, wow." + icon_state = "tile_diamond" + origin_tech = "materials=2" + turf_type = /turf/open/floor/mineral/diamond + mineralType = "diamond" + materials = list(MAT_DIAMOND=500) + +/obj/item/stack/tile/mineral/bananium + name = "bananium tile" + singular_name = "bananium floor tile" + desc = "A tile made out of bananium, HOOOOOOOOONK!" + icon_state = "tile_bananium" + turf_type = /turf/open/floor/mineral/bananium + mineralType = "bananium" + materials = list(MAT_BANANIUM=500) + +/obj/item/stack/tile/mineral/abductor + name = "alien floor tile" + singular_name = "alien floor tile" + desc = "A tile made out of alien alloy." + icon = 'icons/obj/abductor.dmi' + icon_state = "tile_abductor" + origin_tech = "materials=6;abductor=1" + turf_type = /turf/open/floor/mineral/abductor + mineralType = "abductor" + +/obj/item/stack/tile/mineral/titanium + name = "titanium tile" + singular_name = "titanium floor tile" + desc = "A tile made of titanium, used for shuttles." + icon_state = "tile_shuttle" + origin_tech = "materials=2" + turf_type = /turf/open/floor/mineral/titanium + mineralType = "titanium" + materials = list(MAT_TITANIUM=500) + +/obj/item/stack/tile/mineral/plastitanium + name = "plas-titanium tile" + singular_name = "plas-titanium floor tile" + desc = "A tile made of plas-titanium, used for very evil shuttles." + icon_state = "tile_darkshuttle" + origin_tech = "materials=2" + turf_type = /turf/open/floor/mineral/plastitanium + mineralType = "plastitanium" + materials = list(MAT_TITANIUM=250, MAT_PLASMA=250) \ No newline at end of file diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm new file mode 100644 index 0000000..c56b52f --- /dev/null +++ b/code/game/objects/items/stacks/tiles/tile_types.dm @@ -0,0 +1,180 @@ +/obj/item/stack/tile + name = "broken tile" + singular_name = "broken tile" + desc = "A broken tile. This should not exist." + icon = 'icons/obj/tiles.dmi' + w_class = 3 + force = 1 + throwforce = 1 + throw_speed = 3 + throw_range = 7 + max_amount = 60 + origin_tech = "materials=1" + var/turf_type = null + var/mineralType = null + +/obj/item/stack/tile/New(loc, amount) + ..() + pixel_x = rand(-3, 3) + pixel_y = rand(-3, 3) //randomize a little + +/obj/item/stack/tile/Destroy() + ..() + return QDEL_HINT_PUTINPOOL + +/obj/item/stack/tile/attackby(obj/item/W, mob/user, params) + + if (istype(W, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/WT = W + + if(get_amount() < 4) + user << "You need at least four tiles to do this!" + return + + if(WT.is_hot() && !mineralType) + user << "You can not reform this!" + return + + if(WT.remove_fuel(0,user)) + + if(mineralType == "plasma") + atmos_spawn_air("plasma=5;TEMP=1000") + user.visible_message("[user.name] sets the plasma tiles on fire!", \ + "You set the plasma tiles on fire!") + qdel(src) + return + + if (mineralType == "metal") + var/obj/item/stack/sheet/metal/new_item = new(user.loc) + user.visible_message("[user.name] shaped [src] into metal with the welding tool.", \ + "You shaped [src] into metal with the welding tool.", \ + "You hear welding.") + var/obj/item/stack/rods/R = src + src = null + var/replace = (user.get_inactive_held_item()==R) + R.use(4) + if (!R && replace) + user.put_in_hands(new_item) + + else + var/sheet_type = text2path("/obj/item/stack/sheet/mineral/[mineralType]") + var/obj/item/stack/sheet/mineral/new_item = new sheet_type(user.loc) + user.visible_message("[user.name] shaped [src] into a sheet with the welding tool.", \ + "You shaped [src] into a sheet with the welding tool.", \ + "You hear welding.") + var/obj/item/stack/rods/R = src + src = null + var/replace = (user.get_inactive_held_item()==R) + R.use(4) + if (!R && replace) + user.put_in_hands(new_item) + else + return ..() + +//Grass +/obj/item/stack/tile/grass + name = "grass tile" + singular_name = "grass floor tile" + desc = "A patch of grass like they use on space golf courses." + icon_state = "tile_grass" + origin_tech = "biotech=1" + turf_type = /turf/open/floor/grass + resistance_flags = FLAMMABLE + + +//Wood +/obj/item/stack/tile/wood + name = "wood floor tile" + singular_name = "wood floor tile" + desc = "An easy to fit wood floor tile." + icon_state = "tile-wood" + origin_tech = "biotech=1" + turf_type = /turf/open/floor/wood + resistance_flags = FLAMMABLE + + +//Carpets +/obj/item/stack/tile/carpet + name = "carpet" + singular_name = "carpet" + desc = "A piece of carpet. It is the same size as a floor tile." + icon_state = "tile-carpet" + turf_type = /turf/open/floor/carpet + resistance_flags = FLAMMABLE + + +/obj/item/stack/tile/fakespace + name = "astral carpet" + singular_name = "astral carpet" + desc = "A piece of carpet with a convincing star pattern." + icon_state = "tile_space" + turf_type = /turf/open/floor/fakespace + resistance_flags = FLAMMABLE + merge_type = /obj/item/stack/tile/fakespace + +/obj/item/stack/tile/fakespace/loaded + amount = 30 + +//High-traction +/obj/item/stack/tile/noslip + name = "high-traction floor tile" + singular_name = "high-traction floor tile" + desc = "A high-traction floor tile. It feels rubbery in your hand." + icon_state = "tile_noslip" + turf_type = /turf/open/floor/noslip + origin_tech = "materials=3" + merge_type = /obj/item/stack/tile/noslip + +/obj/item/stack/tile/noslip/thirty + amount = 30 + +//Pod floor +/obj/item/stack/tile/pod + name = "pod floor tile" + singular_name = "pod floor tile" + desc = "A grooved floor tile." + icon_state = "tile_pod" + turf_type = /turf/open/floor/pod + +/obj/item/stack/tile/pod/light + name = "light pod floor tile" + singular_name = "light pod floor tile" + desc = "A lightly colored grooved floor tile." + icon_state = "tile_podlight" + turf_type = /turf/open/floor/pod/light + +/obj/item/stack/tile/pod/dark + name = "dark pod floor tile" + singular_name = "dark pod floor tile" + desc = "A darkly colored grooved floor tile." + icon_state = "tile_poddark" + turf_type = /turf/open/floor/pod/dark + +/obj/item/stack/tile/brass + name = "brass floor tile" + singular_name = "brass floor tile" + desc = "A brass floor tile. It vibrates slightly." + icon_state = "tile_brass" + resistance_flags = FIRE_PROOF | ACID_PROOF + turf_type = /turf/open/floor/clockwork + +//Plasteel (normal) +/obj/item/stack/tile/plasteel + name = "floor tile" + singular_name = "floor tile" + desc = "Those could work as a pretty decent throwing weapon." + icon_state = "tile" + force = 6 + materials = list(MAT_METAL=500) + throwforce = 10 + flags = CONDUCT + turf_type = /turf/open/floor/plasteel + mineralType = "metal" + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 70) + resistance_flags = FIRE_PROOF + +/obj/item/stack/tile/plasteel/cyborg + desc = "The ground you walk on." //Not the usual floor tile desc as that refers to throwing, Cyborgs can't do that - RR + materials = list() // All other Borg versions of items have no Metal or Glass - RR + is_cyborg = 1 + cost = 125 diff --git a/code/game/objects/items/stacks/wrap.dm b/code/game/objects/items/stacks/wrap.dm new file mode 100644 index 0000000..1836c55 --- /dev/null +++ b/code/game/objects/items/stacks/wrap.dm @@ -0,0 +1,115 @@ + + +/* + * Wrapping Paper + */ + +/obj/item/stack/wrapping_paper + name = "wrapping paper" + desc = "Wrap packages with this festive paper to make gifts." + icon = 'icons/obj/items.dmi' + icon_state = "wrap_paper" + flags = NOBLUDGEON + amount = 25 + max_amount = 25 + resistance_flags = FLAMMABLE + +/obj/item/stack/wrapping_paper/Destroy() + if(!amount) + new /obj/item/weapon/c_tube(get_turf(src)) + return ..() + + +/* + * Package Wrap + */ + +/obj/item/stack/packageWrap + name = "package wrapper" + desc = "You can use this to wrap items in." + icon = 'icons/obj/items.dmi' + icon_state = "deliveryPaper" + flags = NOBLUDGEON + amount = 25 + max_amount = 25 + resistance_flags = FLAMMABLE + +/obj/item/proc/can_be_package_wrapped() //can the item be wrapped with package wrapper into a delivery package + return 1 + +/obj/item/weapon/storage/can_be_package_wrapped() + return 0 + +/obj/item/weapon/storage/box/can_be_package_wrapped() + return 1 + +/obj/item/smallDelivery/can_be_package_wrapped() + return 0 + +/obj/item/stack/packageWrap/afterattack(obj/target, mob/user, proximity) + if(!proximity) + return + if(!istype(target)) + return + if(target.anchored) + return + + if(istype(target, /obj/item)) + var/obj/item/I = target + if(!I.can_be_package_wrapped()) + return + if(user.is_holding(I)) + if(!user.unEquip(I)) + return + else if(!isturf(I.loc)) + return + if(use(1)) + var/obj/item/smallDelivery/P = new /obj/item/smallDelivery(get_turf(I.loc)) + if(user.Adjacent(I)) + P.add_fingerprint(user) + I.add_fingerprint(user) + user.put_in_hands(P) + I.forceMove(P) + var/size = round(I.w_class) + P.w_class = size + size = min(size, 5) + P.icon_state = "deliverypackage[size]" + + else if(istype (target, /obj/structure/closet)) + var/obj/structure/closet/O = target + if(O.opened) + return + if(!O.density) //can't wrap non dense closets (e.g. body bags) + user << "You can't wrap this!" + return + if(use(3)) + var/obj/structure/bigDelivery/P = new /obj/structure/bigDelivery(get_turf(O.loc)) + if(O.horizontal) + P.icon_state = "deliverycrate" + O.loc = P + P.add_fingerprint(user) + O.add_fingerprint(user) + else + user << "You need more paper!" + return + else + user << "The object you are trying to wrap is unsuitable for the sorting machinery!" + return + + user.visible_message("[user] wraps [target].") + user.attack_log += text("\[[time_stamp()]\] Has used [name] on [target]") + +/obj/item/stack/packageWrap/Destroy() + if(!amount) + new /obj/item/weapon/c_tube(get_turf(src)) + return ..() + +/obj/item/weapon/c_tube + name = "cardboard tube" + desc = "A tube... of cardboard." + icon = 'icons/obj/items.dmi' + icon_state = "c_tube" + throwforce = 0 + w_class = 1 + throw_speed = 3 + throw_range = 5 \ No newline at end of file diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm new file mode 100644 index 0000000..00b7142 --- /dev/null +++ b/code/game/objects/items/toys.dm @@ -0,0 +1,1373 @@ +/* Toys! + * Contains + * Balloons + * Fake singularity + * Toy gun + * Toy crossbow + * Toy swords + * Crayons + * Snap pops + * Mech prizes + * AI core prizes + * Toy codex gigas + * Skeleton toys + * Cards + * Toy nuke + * Fake meteor + * Carp plushie + * Foam armblade + * Toy big red button + * Beach ball + * Toy xeno + * Kitty toys! + * Snowballs + */ + + +/obj/item/toy + throwforce = 0 + throw_speed = 3 + throw_range = 7 + force = 0 + + +/* + * Balloons + */ +/obj/item/toy/balloon + name = "water balloon" + desc = "A translucent balloon. There's nothing in it." + icon = 'icons/obj/toy.dmi' + icon_state = "waterballoon-e" + item_state = "balloon-empty" + +/obj/item/toy/balloon/New() + create_reagents(10) + +/obj/item/toy/balloon/attack(mob/living/carbon/human/M, mob/user) + return + +/obj/item/toy/balloon/afterattack(atom/A as mob|obj, mob/user, proximity) + if(!proximity) return + if (istype(A, /obj/structure/reagent_dispensers)) + var/obj/structure/reagent_dispensers/RD = A + if(RD.reagents.total_volume <= 0) + user << "[RD] is empty." + else if(reagents.total_volume >= 10) + user << "[src] is full." + else + A.reagents.trans_to(src, 10) + user << "You fill the balloon with the contents of [A]." + desc = "A translucent balloon with some form of liquid sloshing around in it." + update_icon() + +/obj/item/toy/balloon/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/reagent_containers/glass)) + if(I.reagents) + if(I.reagents.total_volume <= 0) + user << "[I] is empty." + else if(reagents.total_volume >= 10) + user << "[src] is full." + else + desc = "A translucent balloon with some form of liquid sloshing around in it." + user << "You fill the balloon with the contents of [I]." + I.reagents.trans_to(src, 10) + update_icon() + else if(is_sharp(I)) + balloon_burst() + else + return ..() + +/obj/item/toy/balloon/throw_impact(atom/hit_atom) + if(!..()) //was it caught by a mob? + balloon_burst(hit_atom) + +/obj/item/toy/balloon/proc/balloon_burst(atom/AT) + if(reagents.total_volume >= 1) + var/turf/T + if(AT) + T = get_turf(AT) + else + T = get_turf(src) + T.visible_message("[src] bursts!","You hear a pop and a splash.") + reagents.reaction(T) + for(var/atom/A in T) + reagents.reaction(A) + icon_state = "burst" + qdel(src) + +/obj/item/toy/balloon/update_icon() + if(src.reagents.total_volume >= 1) + icon_state = "waterballoon" + item_state = "balloon" + else + icon_state = "waterballoon-e" + item_state = "balloon-empty" + +/obj/item/toy/syndicateballoon + name = "syndicate balloon" + desc = "There is a tag on the back that reads \"FUK NT!11!\"." + throwforce = 0 + throw_speed = 3 + throw_range = 7 + force = 0 + icon = 'icons/obj/weapons.dmi' + icon_state = "syndballoon" + item_state = "syndballoon" + w_class = 4 + +/* + * Fake singularity + */ +/obj/item/toy/spinningtoy + name = "gravitational singularity" + desc = "\"Singulo\" brand spinning toy." + icon = 'icons/obj/singularity.dmi' + icon_state = "singularity_s1" + +/* + * Toy gun: Why isnt this an /obj/item/weapon/gun? + */ +/obj/item/toy/gun + name = "cap gun" + desc = "Looks almost like the real thing! Ages 8 and up. Please recycle in an autolathe when you're out of caps." + icon = 'icons/obj/guns/projectile.dmi' + icon_state = "revolver" + item_state = "gun" + lefthand_file = 'icons/mob/inhands/guns_lefthand.dmi' + righthand_file = 'icons/mob/inhands/guns_righthand.dmi' + flags = CONDUCT + slot_flags = SLOT_BELT + w_class = 3 + materials = list(MAT_METAL=10, MAT_GLASS=10) + attack_verb = list("struck", "pistol whipped", "hit", "bashed") + var/bullets = 7 + +/obj/item/toy/gun/examine(mob/user) + ..() + user << "There [bullets == 1 ? "is" : "are"] [bullets] cap\s left." + +/obj/item/toy/gun/attackby(obj/item/toy/ammo/gun/A, mob/user, params) + + if(istype(A, /obj/item/toy/ammo/gun)) + if (src.bullets >= 7) + user << "It's already fully loaded!" + return 1 + if (A.amount_left <= 0) + user << "There are no more caps!" + return 1 + if (A.amount_left < (7 - src.bullets)) + src.bullets += A.amount_left + user << text("You reload [] cap\s.", A.amount_left) + A.amount_left = 0 + else + user << text("You reload [] cap\s.", 7 - src.bullets) + A.amount_left -= 7 - src.bullets + src.bullets = 7 + A.update_icon() + return 1 + else + return ..() + +/obj/item/toy/gun/afterattack(atom/target as mob|obj|turf|area, mob/user, flag) + if (flag) + return + if (!user.IsAdvancedToolUser()) + user << "You don't have the dexterity to do this!" + return + src.add_fingerprint(user) + if (src.bullets < 1) + user.show_message("*click*", 2) + playsound(user, 'sound/weapons/empty.ogg', 100, 1) + return + playsound(user, 'sound/weapons/Gunshot.ogg', 100, 1) + src.bullets-- + user.visible_message("[user] fires [src] at [target]!", \ + "You fire [src] at [target]!", \ + "You hear a gunshot!") + +/obj/item/toy/ammo/gun + name = "capgun ammo" + desc = "Make sure to recyle the box in an autolathe when it gets empty." + icon = 'icons/obj/ammo.dmi' + icon_state = "357OLD-7" + w_class = 1 + materials = list(MAT_METAL=10, MAT_GLASS=10) + var/amount_left = 7 + +/obj/item/toy/ammo/gun/update_icon() + src.icon_state = text("357OLD-[]", src.amount_left) + +/obj/item/toy/ammo/gun/examine(mob/user) + ..() + user << "There [amount_left == 1 ? "is" : "are"] [amount_left] cap\s left." + +/* + * Toy swords + */ +/obj/item/toy/sword + name = "toy sword" + desc = "A cheap, plastic replica of an energy sword. Realistic sounds! Ages 8 and up." + icon = 'icons/obj/weapons.dmi' + icon_state = "sword0" + item_state = "sword0" + var/active = 0 + w_class = 2 + attack_verb = list("attacked", "struck", "hit") + var/hacked = 0 + +/obj/item/toy/sword/attack_self(mob/user) + active = !( active ) + if (active) + user << "You extend the plastic blade with a quick flick of your wrist." + playsound(user, 'sound/weapons/saberon.ogg', 20, 1) + if(hacked) + icon_state = "swordrainbow" + item_state = "swordrainbow" + else + icon_state = "swordblue" + item_state = "swordblue" + w_class = 4 + else + user << "You push the plastic blade back down into the handle." + playsound(user, 'sound/weapons/saberoff.ogg', 20, 1) + icon_state = "sword0" + item_state = "sword0" + w_class = 2 + add_fingerprint(user) + +// Copied from /obj/item/weapon/melee/energy/sword/attackby +/obj/item/toy/sword/attackby(obj/item/weapon/W, mob/living/user, params) + if(istype(W, /obj/item/toy/sword)) + if((W.flags & NODROP) || (flags & NODROP)) + user << "\the [flags & NODROP ? src : W] is stuck to your hand, you can't attach it to \the [flags & NODROP ? W : src]!" + return + else + user << "You attach the ends of the two plastic swords, making a single double-bladed toy! You're fake-cool." + var/obj/item/weapon/twohanded/dualsaber/toy/newSaber = new /obj/item/weapon/twohanded/dualsaber/toy(user.loc) + if(hacked) // That's right, we'll only check the "original" "sword". + newSaber.hacked = 1 + newSaber.item_color = "rainbow" + user.unEquip(W) + user.unEquip(src) + qdel(W) + qdel(src) + else if(istype(W, /obj/item/device/multitool)) + if(hacked == 0) + hacked = 1 + item_color = "rainbow" + user << "RNBW_ENGAGE" + + if(active) + icon_state = "swordrainbow" + user.update_inv_hands() + else + user << "It's already fabulous!" + else + return ..() + +/* + * Foam armblade + */ +/obj/item/toy/foamblade + name = "foam armblade" + desc = "it says \"Sternside Changs #1 fan\" on it. " + icon = 'icons/obj/toy.dmi' + icon_state = "foamblade" + item_state = "arm_blade" + attack_verb = list("pricked", "absorbed", "gored") + w_class = 2 + resistance_flags = FLAMMABLE + + +/* + * Subtype of Double-Bladed Energy Swords + */ +/obj/item/weapon/twohanded/dualsaber/toy + name = "double-bladed toy sword" + desc = "A cheap, plastic replica of TWO energy swords. Double the fun!" + force = 0 + throwforce = 0 + throw_speed = 3 + throw_range = 5 + force_unwielded = 0 + force_wielded = 0 + origin_tech = null + attack_verb = list("attacked", "struck", "hit") + +/obj/item/weapon/twohanded/dualsaber/toy/hit_reaction() + return 0 + +/obj/item/weapon/twohanded/dualsaber/toy/IsReflect()//Stops Toy Dualsabers from reflecting energy projectiles + return 0 + +/obj/item/toy/katana + name = "replica katana" + desc = "Woefully underpowered in D20." + icon = 'icons/obj/weapons.dmi' + icon_state = "katana" + item_state = "katana" + flags = CONDUCT + slot_flags = SLOT_BELT | SLOT_BACK + force = 5 + throwforce = 5 + w_class = 3 + attack_verb = list("attacked", "slashed", "stabbed", "sliced") + hitsound = 'sound/weapons/bladeslice.ogg' + +/* + * Snap pops + */ + +/obj/item/toy/snappop + name = "snap pop" + desc = "Wow!" + icon = 'icons/obj/toy.dmi' + icon_state = "snappop" + w_class = 1 + var/ash_type = /obj/effect/decal/cleanable/ash + +/obj/item/toy/snappop/proc/pop_burst(var/n=3, var/c=1) + var/datum/effect_system/spark_spread/s = new() + s.set_up(n, c, src) + s.start() + new ash_type(loc) + visible_message("[src] explodes!", + "You hear a snap!") + playsound(src, 'sound/effects/snap.ogg', 50, 1) + qdel(src) + +/obj/item/toy/snappop/fire_act(exposed_temperature, exposed_volume) + pop_burst() + +/obj/item/toy/snappop/throw_impact(atom/hit_atom) + if(!..()) + pop_burst() + +/obj/item/toy/snappop/Crossed(H as mob|obj) + if(ishuman(H) || issilicon(H)) //i guess carp and shit shouldn't set them off + var/mob/living/carbon/M = H + if(issilicon(H) || M.m_intent == "run") + M << "You step on the snap pop!" + pop_burst(2, 0) + +/obj/item/toy/snappop/phoenix + name = "phoenix snap pop" + desc = "Wow! And wow! And wow!" + ash_type = /obj/effect/decal/cleanable/ash/snappop_phoenix + +/obj/effect/decal/cleanable/ash/snappop_phoenix + var/respawn_time = 300 + +/obj/effect/decal/cleanable/ash/snappop_phoenix/New() + . = ..() + addtimer(src, "respawn", respawn_time) + +/obj/effect/decal/cleanable/ash/snappop_phoenix/proc/respawn() + new /obj/item/toy/snappop/phoenix(get_turf(src)) + qdel(src) + + +/* + * Mech prizes + */ +/obj/item/toy/prize + icon = 'icons/obj/toy.dmi' + icon_state = "ripleytoy" + var/timer = 0 + var/cooldown = 30 + var/quiet = 0 + +//all credit to skasi for toy mech fun ideas +/obj/item/toy/prize/attack_self(mob/user) + if(timer < world.time) + user << "You play with [src]." + timer = world.time + cooldown + if(!quiet) + playsound(user, 'sound/mecha/mechstep.ogg', 20, 1) + else + . = ..() + +/obj/item/toy/prize/attack_hand(mob/user) + if(loc == user) + attack_self(user) + else + . = ..() + +/obj/item/toy/prize/ripley + name = "toy Ripley" + desc = "Mini-Mecha action figure! Collect them all! 1/12." + +/obj/item/toy/prize/fireripley + name = "toy firefighting Ripley" + desc = "Mini-Mecha action figure! Collect them all! 2/12." + icon_state = "fireripleytoy" + +/obj/item/toy/prize/deathripley + name = "toy deathsquad Ripley" + desc = "Mini-Mecha action figure! Collect them all! 3/12." + icon_state = "deathripleytoy" + +/obj/item/toy/prize/gygax + name = "toy Gygax" + desc = "Mini-Mecha action figure! Collect them all! 4/12." + icon_state = "gygaxtoy" + +/obj/item/toy/prize/durand + name = "toy Durand" + desc = "Mini-Mecha action figure! Collect them all! 5/12." + icon_state = "durandprize" + +/obj/item/toy/prize/honk + name = "toy H.O.N.K." + desc = "Mini-Mecha action figure! Collect them all! 6/12." + icon_state = "honkprize" + +/obj/item/toy/prize/marauder + name = "toy Marauder" + desc = "Mini-Mecha action figure! Collect them all! 7/12." + icon_state = "marauderprize" + +/obj/item/toy/prize/seraph + name = "toy Seraph" + desc = "Mini-Mecha action figure! Collect them all! 8/12." + icon_state = "seraphprize" + +/obj/item/toy/prize/mauler + name = "toy Mauler" + desc = "Mini-Mecha action figure! Collect them all! 9/12." + icon_state = "maulerprize" + +/obj/item/toy/prize/odysseus + name = "toy Odysseus" + desc = "Mini-Mecha action figure! Collect them all! 10/12." + icon_state = "odysseusprize" + +/obj/item/toy/prize/phazon + name = "toy Phazon" + desc = "Mini-Mecha action figure! Collect them all! 11/12." + icon_state = "phazonprize" + +/obj/item/toy/prize/reticence + name = "toy Reticence" + desc = "Mini-Mecha action figure! Collect them all! 12/12." + icon_state = "reticenceprize" + quiet = 1 + + +/obj/item/toy/talking + name = "talking action figure" + desc = "A generic action figure modeled after nothing in particular." + icon = 'icons/obj/toy.dmi' + icon_state = "owlprize" + w_class = 2 + var/cooldown = FALSE + var/messages = list("I'm super generic!", "Mathematics class is of variable difficulty!") + var/span = "danger" + var/recharge_time = 30 + + var/chattering = FALSE + var/phomeme + +// Talking toys are language universal, and thus all species can use them +/obj/item/toy/talking/attack_alien(mob/user) + . = attack_hand(user) + +/obj/item/toy/talking/attack_self(mob/user) + if(!cooldown) + var/list/messages = generate_messages() + activation_message(user) + playsound(loc, 'sound/machines/click.ogg', 20, 1) + + spawn(0) + for(var/message in messages) + toy_talk(user, message) + sleep(10) + + cooldown = TRUE + spawn(recharge_time) + cooldown = FALSE + return + ..() + +/obj/item/toy/talking/proc/activation_message(mob/user) + user.visible_message( + "[user] pulls the string on \the [src].", + "You pull the string on \the [src].", + "You hear a string being pulled.") + +/obj/item/toy/talking/proc/generate_messages() + return list(pick(messages)) + +/obj/item/toy/talking/proc/toy_talk(mob/user, message) + user.loc.visible_message("\icon[src] [message]") + if(chattering) + chatter(message, phomeme, user) + +/* + * AI core prizes + */ +/obj/item/toy/talking/AI + name = "toy AI" + desc = "A little toy model AI core with real law announcing action!" + icon_state = "AI" + +/obj/item/toy/talking/AI/generate_messages() + return list(generate_ion_law()) + +/obj/item/toy/talking/codex_gigas + name = "Toy Codex Gigas" + desc = "A tool to help you write fictional devils!" + icon = 'icons/obj/library.dmi' + icon_state = "demonomicon" + w_class = 2 + recharge_time = 60 + +/obj/item/toy/talking/codex_gigas/activation_message(mob/user) + user.visible_message( + "[user] presses the button on \the [src].", + "You press the button on \the [src].", + "You hear a soft click.") + +/obj/item/toy/talking/codex_gigas/generate_messages() + var/datum/devilinfo/devil = randomDevilInfo() + var/list/messages = list() + messages += "Some fun facts about: [devil.truename]" + messages += "[lawlorify[LORE][devil.bane]]" + messages += "[lawlorify[LORE][devil.obligation]]" + messages += "[lawlorify[LORE][devil.ban]]" + messages += "[lawlorify[LORE][devil.banish]]" + return messages + +/obj/item/toy/talking/owl + name = "owl action figure" + desc = "An action figure modeled after 'The Owl', defender of justice." + icon_state = "owlprize" + messages = list("You won't get away this time, Griffin!", "Stop right there, criminal!", "Hoot! Hoot!", "I am the night!") + chattering = TRUE + phomeme = "owl" + +/obj/item/toy/talking/griffin + name = "griffin action figure" + desc = "An action figure modeled after 'The Griffin', criminal mastermind." + icon_state = "griffinprize" + messages = list("You can't stop me, Owl!", "My plan is flawless! The vault is mine!", "Caaaawwww!", "You will never catch me!") + chattering = TRUE + phomeme = "griffin" + +/obj/item/toy/talking/skeleton + name = "skeleton action figure" + desc = "An action figure modeled after 'Oh-cee', the original content \ + skeleton.\nNot suitable for infants or assistants under 36 months \ + of age." + icon_state = "skeletonprize" + attack_verb = list("boned", "dunked on", "worked down to the bone") + chattering = TRUE + + var/list/regular_messages = list( + "Why was the skeleton such a bad liar? \ + Because you can see right through him!", + "When does a skeleton laugh? When something tickles his funny bone!", + "Why couldn't the skeleton win the beauty contest? \ + Because he had no body!", + "What do you call a skeleton in the winter? A numbskull!", + "What did the skeleton say before eating? Bone appetit!", + "What type of art do skeletons like? Skulltures!", + "What instrument do skeletons play? The trom-bone!", + "Why are skeletons always so calm? \ + Because nothing gets under their skin!", + "How did the skeleton know it was going to rain? \ + He could feel it in his bones.", + "Why did the skeleton go to the hospital? \ + To get his ghoul stones removed.", + "Why can't skeletons play music in churches? \ + Because they have no organs.", + "There's a skeleton inside everyone! Except slime people I guess...", + "The birds are too busy to notice me acting in the shadows!", + "Giraffes have the same number of bones in their necks as humans. \ + You should never trust a giraffe.", + "When I meet a dog in the street, I always offer it a bone!", + "In corsetry, a bone is one of the rigid parts of a corset that \ + forms its frame and gives it rigidity.", + "A person who plays the trombone is called a trombonist or \ + trombone player.", + "Remember, compromise is for those without backbones!", + "If you go up to the captain and say the word 'bone' repeatedly, \ + eventually he'll brig you.", + "Yo ho ho, shiver me bones!", + "So what you're saying is, you only love me for my legs?", + "You will never again find socks that match!", + "BONES! BONES! BONES!", + "Bones absorb x-rays, which is why radiation gives you superpowers.", + "Oh-cee! The ORIGINAL CONTENT SKELETON. Suitable for ages 36 months \ + and up.", + "I just don't have the heart to judge you.", + "I don't have the stomach for this.", + "I'm a fighter, not a liver.", + "How can I see without eyeballs?", + "Ask your parents about 'boning', before you get pregnant.", + "Remember, a dog is for life, not just for christmas.") + +/obj/item/toy/talking/skeleton/suicide_act(mob/user) + user.visible_message("[user] is trying to commit suicide with [src].") + + if(ishuman(user)) + var/mob/living/carbon/human/H = user + H.set_species(/datum/species/skeleton) + + toy_talk(user, "RATTLE ME BONES") + + user.Stun(5) + sleep(20) + return OXYLOSS + +/obj/item/toy/talking/skeleton/generate_messages() + return list(pick(regular_messages)) + +/obj/item/toy/talking/skeleton/toy_talk(user, message) + phomeme = pick("sans", "papyrus") + + span = "danger [phomeme]" + ..() + +/* +|| A Deck of Cards for playing various games of chance || +*/ + + + +/obj/item/toy/cards + resistance_flags = FLAMMABLE + obj_integrity = 50 + max_integrity = 50 + var/parentdeck = null + var/deckstyle = "nanotrasen" + var/card_hitsound = null + var/card_force = 0 + var/card_throwforce = 0 + var/card_throw_speed = 3 + var/card_throw_range = 7 + var/list/card_attack_verb = list("attacked") + +/obj/item/toy/cards/New() + ..() + +/obj/item/toy/cards/proc/apply_card_vars(obj/item/toy/cards/newobj, obj/item/toy/cards/sourceobj) // Applies variables for supporting multiple types of card deck + if(!istype(sourceobj)) + return + +/obj/item/toy/cards/deck + name = "deck of cards" + desc = "A deck of space-grade playing cards." + icon = 'icons/obj/toy.dmi' + deckstyle = "nanotrasen" + icon_state = "deck_nanotrasen_full" + w_class = 2 + var/cooldown = 0 + var/obj/machinery/computer/holodeck/holo = null // Holodeck cards should not be infinite + var/list/cards = list() + +/obj/item/toy/cards/deck/New() + ..() + icon_state = "deck_[deckstyle]_full" + for(var/i = 2; i <= 10; i++) + cards += "[i] of Hearts" + cards += "[i] of Spades" + cards += "[i] of Clubs" + cards += "[i] of Diamonds" + cards += "King of Hearts" + cards += "King of Spades" + cards += "King of Clubs" + cards += "King of Diamonds" + cards += "Queen of Hearts" + cards += "Queen of Spades" + cards += "Queen of Clubs" + cards += "Queen of Diamonds" + cards += "Jack of Hearts" + cards += "Jack of Spades" + cards += "Jack of Clubs" + cards += "Jack of Diamonds" + cards += "Ace of Hearts" + cards += "Ace of Spades" + cards += "Ace of Clubs" + cards += "Ace of Diamonds" + + +/obj/item/toy/cards/deck/attack_hand(mob/user) + if(user.lying) + return + var/choice = null + if(cards.len == 0) + user << "There are no more cards to draw!" + return + var/obj/item/toy/cards/singlecard/H = new/obj/item/toy/cards/singlecard(user.loc) + if(holo) + holo.spawned += H // track them leaving the holodeck + choice = cards[1] + H.cardname = choice + H.parentdeck = src + var/O = src + H.apply_card_vars(H,O) + src.cards -= choice + H.pickup(user) + user.put_in_hands(H) + user.visible_message("[user] draws a card from the deck.", "You draw a card from the deck.") + update_icon() + +/obj/item/toy/cards/deck/update_icon() + if(cards.len > 26) + icon_state = "deck_[deckstyle]_full" + else if(cards.len > 10) + icon_state = "deck_[deckstyle]_half" + else if(cards.len > 0) + icon_state = "deck_[deckstyle]_low" + else if(cards.len == 0) + icon_state = "deck_[deckstyle]_empty" + +/obj/item/toy/cards/deck/attack_self(mob/user) + if(cooldown < world.time - 50) + cards = shuffle(cards) + playsound(user, 'sound/items/cardshuffle.ogg', 50, 1) + user.visible_message("[user] shuffles the deck.", "You shuffle the deck.") + cooldown = world.time + +/obj/item/toy/cards/deck/attackby(obj/item/I, mob/living/user, params) + if(istype(I, /obj/item/toy/cards/singlecard)) + var/obj/item/toy/cards/singlecard/SC = I + if(SC.parentdeck == src) + if(!user.unEquip(SC)) + user << "The card is stuck to your hand, you can't add it to the deck!" + return + cards += SC.cardname + user.visible_message("[user] adds a card to the bottom of the deck.","You add the card to the bottom of the deck.") + qdel(SC) + else + user << "You can't mix cards from other decks!" + update_icon() + else if(istype(I, /obj/item/toy/cards/cardhand)) + var/obj/item/toy/cards/cardhand/CH = I + if(CH.parentdeck == src) + if(!user.unEquip(CH)) + user << "The hand of cards is stuck to your hand, you can't add it to the deck!" + return + cards += CH.currenthand + user.visible_message("[user] puts their hand of cards in the deck.", "You put the hand of cards in the deck.") + qdel(CH) + else + user << "You can't mix cards from other decks!" + update_icon() + else + return ..() + +/obj/item/toy/cards/deck/MouseDrop(atom/over_object) + var/mob/living/M = usr + if(!istype(M) || usr.incapacitated() || usr.lying) + return + if(Adjacent(usr)) + if(over_object == M && loc != M) + M.put_in_hands(src) + usr << "You pick up the deck." + + else if(istype(over_object, /obj/screen/inventory/hand)) + var/obj/screen/inventory/hand/H = over_object + if(!remove_item_from_storage(M)) + M.unEquip(src) + M.put_in_hand(src, H.held_index) + usr << "You pick up the deck." + + else + usr << "You can't reach it from here!" + + + +/obj/item/toy/cards/cardhand + name = "hand of cards" + desc = "A number of cards not in a deck, customarily held in ones hand." + icon = 'icons/obj/toy.dmi' + icon_state = "nanotrasen_hand2" + w_class = 1 + var/list/currenthand = list() + var/choice = null + + +/obj/item/toy/cards/cardhand/attack_self(mob/user) + user.set_machine(src) + interact(user) + +/obj/item/toy/cards/cardhand/interact(mob/user) + var/dat = "You have:
            " + for(var/t in currenthand) + dat += "A [t].
            " + dat += "Which card will you remove next?" + var/datum/browser/popup = new(user, "cardhand", "Hand of Cards", 400, 240) + popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) + popup.set_content(dat) + popup.open() + + +/obj/item/toy/cards/cardhand/Topic(href, href_list) + if(..()) + return + if(usr.stat || !ishuman(usr) || !usr.canmove) + return + var/mob/living/carbon/human/cardUser = usr + var/O = src + if(href_list["pick"]) + if (cardUser.is_holding(src)) + var/choice = href_list["pick"] + var/obj/item/toy/cards/singlecard/C = new/obj/item/toy/cards/singlecard(cardUser.loc) + src.currenthand -= choice + C.parentdeck = src.parentdeck + C.cardname = choice + C.apply_card_vars(C,O) + C.pickup(cardUser) + cardUser.put_in_hands(C) + cardUser.visible_message("[cardUser] draws a card from \his hand.", "You take the [C.cardname] from your hand.") + + interact(cardUser) + if(src.currenthand.len < 3) + src.icon_state = "[deckstyle]_hand2" + else if(src.currenthand.len < 4) + src.icon_state = "[deckstyle]_hand3" + else if(src.currenthand.len < 5) + src.icon_state = "[deckstyle]_hand4" + if(src.currenthand.len == 1) + var/obj/item/toy/cards/singlecard/N = new/obj/item/toy/cards/singlecard(src.loc) + N.parentdeck = src.parentdeck + N.cardname = src.currenthand[1] + N.apply_card_vars(N,O) + cardUser.unEquip(src) + N.pickup(cardUser) + cardUser.put_in_hands(N) + cardUser << "You also take [currenthand[1]] and hold it." + cardUser << browse(null, "window=cardhand") + qdel(src) + return + +/obj/item/toy/cards/cardhand/attackby(obj/item/toy/cards/singlecard/C, mob/living/user, params) + if(istype(C)) + if(C.parentdeck == src.parentdeck) + src.currenthand += C.cardname + user.unEquip(C) + user.visible_message("[user] adds a card to their hand.", "You add the [C.cardname] to your hand.") + interact(user) + if(currenthand.len > 4) + src.icon_state = "[deckstyle]_hand5" + else if(currenthand.len > 3) + src.icon_state = "[deckstyle]_hand4" + else if(currenthand.len > 2) + src.icon_state = "[deckstyle]_hand3" + qdel(C) + else + user << "You can't mix cards from other decks!" + else + return ..() + +/obj/item/toy/cards/cardhand/apply_card_vars(obj/item/toy/cards/newobj,obj/item/toy/cards/sourceobj) + ..() + newobj.deckstyle = sourceobj.deckstyle + newobj.icon_state = "[deckstyle]_hand2" // Another dumb hack, without this the hand is invisible (or has the default deckstyle) until another card is added. + newobj.card_hitsound = sourceobj.card_hitsound + newobj.card_force = sourceobj.card_force + newobj.card_throwforce = sourceobj.card_throwforce + newobj.card_throw_speed = sourceobj.card_throw_speed + newobj.card_throw_range = sourceobj.card_throw_range + newobj.card_attack_verb = sourceobj.card_attack_verb + newobj.resistance_flags = sourceobj.resistance_flags + +/obj/item/toy/cards/singlecard + name = "card" + desc = "a card" + icon = 'icons/obj/toy.dmi' + icon_state = "singlecard_nanotrasen_down" + w_class = 1 + var/cardname = null + var/flipped = 0 + pixel_x = -5 + + +/obj/item/toy/cards/singlecard/examine(mob/user) + if(ishuman(user)) + var/mob/living/carbon/human/cardUser = user + if(cardUser.is_holding(src)) + cardUser.visible_message("[cardUser] checks \his card.", "The card reads: [src.cardname]") + else + cardUser << "You need to have the card in your hand to check it!" + + +/obj/item/toy/cards/singlecard/verb/Flip() + set name = "Flip Card" + set category = "Object" + set src in range(1) + if(usr.stat || !ishuman(usr) || !usr.canmove || usr.restrained()) + return + if(!flipped) + src.flipped = 1 + if (cardname) + src.icon_state = "sc_[cardname]_[deckstyle]" + src.name = src.cardname + else + src.icon_state = "sc_Ace of Spades_[deckstyle]" + src.name = "What Card" + src.pixel_x = 5 + else if(flipped) + src.flipped = 0 + src.icon_state = "singlecard_down_[deckstyle]" + src.name = "card" + src.pixel_x = -5 + +/obj/item/toy/cards/singlecard/attackby(obj/item/I, mob/living/user, params) + if(istype(I, /obj/item/toy/cards/singlecard/)) + var/obj/item/toy/cards/singlecard/C = I + if(C.parentdeck == src.parentdeck) + var/obj/item/toy/cards/cardhand/H = new/obj/item/toy/cards/cardhand(user.loc) + H.currenthand += C.cardname + H.currenthand += src.cardname + H.parentdeck = C.parentdeck + H.apply_card_vars(H,C) + user.unEquip(C) + H.pickup(user) + user.put_in_active_hand(H) + user << "You combine the [C.cardname] and the [src.cardname] into a hand." + qdel(C) + qdel(src) + else + user << "You can't mix cards from other decks!" + + if(istype(I, /obj/item/toy/cards/cardhand/)) + var/obj/item/toy/cards/cardhand/H = I + if(H.parentdeck == parentdeck) + H.currenthand += cardname + user.unEquip(src) + user.visible_message("[user] adds a card to \his hand.", "You add the [cardname] to your hand.") + H.interact(user) + if(H.currenthand.len > 4) + H.icon_state = "[deckstyle]_hand5" + else if(H.currenthand.len > 3) + H.icon_state = "[deckstyle]_hand4" + else if(H.currenthand.len > 2) + H.icon_state = "[deckstyle]_hand3" + qdel(src) + else + user << "You can't mix cards from other decks!" + else + return ..() + +/obj/item/toy/cards/singlecard/attack_self(mob/user) + if(usr.stat || !ishuman(usr) || !usr.canmove || usr.restrained()) + return + Flip() + +/obj/item/toy/cards/singlecard/apply_card_vars(obj/item/toy/cards/singlecard/newobj,obj/item/toy/cards/sourceobj) + ..() + newobj.deckstyle = sourceobj.deckstyle + newobj.icon_state = "singlecard_down_[deckstyle]" // Without this the card is invisible until flipped. It's an ugly hack, but it works. + newobj.card_hitsound = sourceobj.card_hitsound + newobj.hitsound = newobj.card_hitsound + newobj.card_force = sourceobj.card_force + newobj.force = newobj.card_force + newobj.card_throwforce = sourceobj.card_throwforce + newobj.throwforce = newobj.card_throwforce + newobj.card_throw_speed = sourceobj.card_throw_speed + newobj.throw_speed = newobj.card_throw_speed + newobj.card_throw_range = sourceobj.card_throw_range + newobj.throw_range = newobj.card_throw_range + newobj.card_attack_verb = sourceobj.card_attack_verb + newobj.attack_verb = newobj.card_attack_verb + + +/* +|| Syndicate playing cards, for pretending you're Gambit and playing poker for the nuke disk. || +*/ + +/obj/item/toy/cards/deck/syndicate + name = "suspicious looking deck of cards" + desc = "A deck of space-grade playing cards. They seem unusually rigid." + deckstyle = "syndicate" + card_hitsound = 'sound/weapons/bladeslice.ogg' + card_force = 5 + card_throwforce = 10 + card_throw_speed = 3 + card_throw_range = 7 + card_attack_verb = list("attacked", "sliced", "diced", "slashed", "cut") + resistance_flags = 0 + +/* + * Fake nuke + */ + +/obj/item/toy/nuke + name = "\improper Nuclear Fission Explosive toy" + desc = "A plastic model of a Nuclear Fission Explosive." + icon = 'icons/obj/toy.dmi' + icon_state = "nuketoyidle" + w_class = 2 + var/cooldown = 0 + +/obj/item/toy/nuke/attack_self(mob/user) + if (cooldown < world.time) + cooldown = world.time + 1800 //3 minutes + user.visible_message("[user] presses a button on [src].", "You activate [src], it plays a loud noise!", "You hear the click of a button.") + sleep(5) + icon_state = "nuketoy" + playsound(src, 'sound/machines/Alarm.ogg', 100, 0, surround = 0) + sleep(135) + icon_state = "nuketoycool" + sleep(cooldown - world.time) + icon_state = "nuketoyidle" + else + var/timeleft = (cooldown - world.time) + user << "Nothing happens, and '[round(timeleft/10)]' appears on a small display." + +/* + * Fake meteor + */ + +/obj/item/toy/minimeteor + name = "\improper Mini-Meteor" + desc = "Relive the excitement of a meteor shower! SweetMeat-eor. Co is not responsible for any injuries, headaches or hearing loss caused by Mini-Meteor?" + icon = 'icons/obj/toy.dmi' + icon_state = "minimeteor" + w_class = 2 + +/obj/item/toy/minimeteor/throw_impact(atom/hit_atom) + if(!..()) + playsound(src, 'sound/effects/meteorimpact.ogg', 40, 1) + for(var/mob/M in urange(10, src)) + if(!M.stat && !isAI(M)) + shake_camera(M, 3, 1) + qdel(src) + +/* + * Carp plushie + */ + +/obj/item/toy/carpplushie + name = "space carp plushie" + desc = "An adorable stuffed toy that resembles a space carp." + icon = 'icons/obj/toy.dmi' + icon_state = "carpplushie" + item_state = "carp_plushie" + w_class = 2 + attack_verb = list("bitten", "eaten", "fin slapped") + resistance_flags = FLAMMABLE + var/bitesound = 'sound/weapons/bite.ogg' + +//Attack mob +/obj/item/toy/carpplushie/attack(mob/M, mob/user) + playsound(loc, bitesound, 20, 1) //Play bite sound in local area + return ..() + +//Attack self +/obj/item/toy/carpplushie/attack_self(mob/user) + playsound(src.loc, bitesound, 20, 1) + user << "You pet [src]. D'awww." + return ..() + +/* + * Toy big red button + */ +/obj/item/toy/redbutton + name = "big red button" + desc = "A big, plastic red button. Reads 'From HonkCo Pranks?' on the back." + icon = 'icons/obj/assemblies.dmi' + icon_state = "bigred" + w_class = 2 + var/cooldown = 0 + +/obj/item/toy/redbutton/attack_self(mob/user) + if (cooldown < world.time) + cooldown = (world.time + 300) // Sets cooldown at 30 seconds + user.visible_message("[user] presses the big red button.", "You press the button, it plays a loud noise!", "The button clicks loudly.") + playsound(src, 'sound/effects/explosionfar.ogg', 50, 0, surround = 0) + for(var/mob/M in urange(10, src)) // Checks range + if(!M.stat && !isAI(M)) // Checks to make sure whoever's getting shaken is alive/not the AI + sleep(8) // Short delay to match up with the explosion sound + shake_camera(M, 2, 1) // Shakes player camera 2 squares for 1 second. + + else + user << "Nothing happens." + +/* + * Snowballs + */ + +/obj/item/toy/snowball + name = "snowball" + desc = "A compact ball of snow. Good for throwing at people." + icon = 'icons/obj/toy.dmi' + icon_state = "snowball" + throwforce = 12 //pelt your enemies to death with lumps of snow + +/obj/item/toy/snowball/afterattack(atom/target as mob|obj|turf|area, mob/user) + user.drop_item() + src.throw_at(target, throw_range, throw_speed) + +/obj/item/toy/snowball/throw_impact(atom/hit_atom) + if(!..()) + playsound(src, 'sound/effects/pop.ogg', 20, 1) + qdel(src) + +/* + * Beach ball + */ +/obj/item/toy/beach_ball + icon = 'icons/misc/beach.dmi' + icon_state = "ball" + name = "beach ball" + item_state = "beachball" + w_class = 4 //Stops people from hiding it in their bags/pockets + +/obj/item/toy/beach_ball/afterattack(atom/target as mob|obj|turf|area, mob/user) + user.drop_item() + src.throw_at(target, throw_range, throw_speed) + +/* + * Xenomorph action figure + */ + +/obj/item/toy/toy_xeno + icon = 'icons/obj/toy.dmi' + icon_state = "toy_xeno" + name = "xenomorph action figure" + desc = "MEGA presents the new Xenos Isolated action figure! Comes complete with realistic sounds! Pull back string to use." + w_class = 2 + var/cooldown = 0 + +/obj/item/toy/toy_xeno/attack_self(mob/user) + if(cooldown <= world.time) + cooldown = (world.time + 50) //5 second cooldown + user.visible_message("[user] pulls back the string on [src].") + icon_state = "[initial(icon_state)]_used" + sleep(5) + audible_message("\icon[src] Hiss!") + var/list/possible_sounds = list('sound/voice/hiss1.ogg', 'sound/voice/hiss2.ogg', 'sound/voice/hiss3.ogg', 'sound/voice/hiss4.ogg') + var/chosen_sound = pick(possible_sounds) + playsound(get_turf(src), chosen_sound, 50, 1) + spawn(45) + if(src) + icon_state = "[initial(icon_state)]" + else + user << "The string on [src] hasn't rewound all the way!" + return + +// TOY MOUSEYS :3 :3 :3 + +/obj/item/toy/cattoy + name = "toy mouse" + desc = "A colorful toy mouse!" + icon = 'icons/obj/toy.dmi' + icon_state = "toy_mouse" + w_class = 2.0 + var/cooldown = 0 + resistance_flags = FLAMMABLE + + +/* + * Action Figures + */ + +/obj/item/toy/figure + name = "Non-Specific Action Figure action figure" + desc = null + icon = 'icons/obj/toy.dmi' + icon_state = "nuketoy" + var/cooldown = 0 + var/toysay = "What the fuck did you do?" + var/toysound = 'sound/machines/click.ogg' + +/obj/item/toy/figure/New() + desc = "A \"Space Life\" brand [src]." + +/obj/item/toy/figure/attack_self(mob/user as mob) + if(cooldown <= world.time) + cooldown = world.time + 50 + user << "The [src] says \"[toysay]\"" + playsound(user, toysound, 20, 1) + +/obj/item/toy/figure/cmo + name = "Chief Medical Officer action figure" + icon_state = "cmo" + toysay = "Suit sensors!" + +/obj/item/toy/figure/assistant + name = "Assistant action figure" + icon_state = "assistant" + toysay = "Grey tide world wide!" + +/obj/item/toy/figure/atmos + name = "Atmospheric Technician action figure" + icon_state = "atmos" + toysay = "Glory to Atmosia!" + +/obj/item/toy/figure/bartender + name = "Bartender action figure" + icon_state = "bartender" + toysay = "Where is Pun Pun?" + +/obj/item/toy/figure/borg + name = "Cyborg action figure" + icon_state = "borg" + toysay = "I. LIVE. AGAIN." + toysound = 'sound/voice/liveagain.ogg' + +/obj/item/toy/figure/botanist + name = "Botanist action figure" + icon_state = "botanist" + toysay = "Blaze it!" + +/obj/item/toy/figure/captain + name = "Captain action figure" + icon_state = "captain" + toysay = "Any heads of staff?" + +/obj/item/toy/figure/cargotech + name = "Cargo Technician action figure" + icon_state = "cargotech" + toysay = "For Cargonia!" + +/obj/item/toy/figure/ce + name = "Chief Engineer action figure" + icon_state = "ce" + toysay = "Wire the solars!" + +/obj/item/toy/figure/chaplain + name = "Chaplain action figure" + icon_state = "chaplain" + toysay = "Praise Space Jesus!" + +/obj/item/toy/figure/chef + name = "Chef action figure" + icon_state = "chef" + toysay = " I'll make you into a burger!" + +/obj/item/toy/figure/chemist + name = "Chemist action figure" + icon_state = "chemist" + toysay = "Get your pills!" + +/obj/item/toy/figure/clown + name = "Clown action figure" + icon_state = "clown" + toysay = "Honk!" + toysound = 'sound/items/bikehorn.ogg' + +/obj/item/toy/figure/ian + name = "Ian action figure" + icon_state = "ian" + toysay = "Arf!" + +/obj/item/toy/figure/detective + name = "Detective action figure" + icon_state = "detective" + toysay = "This airlock has grey jumpsuit and insulated glove fibers on it." + +/obj/item/toy/figure/dsquad + name = "Death Squad Officer action figure" + icon_state = "dsquad" + toysay = "Kill em all!" + +/obj/item/toy/figure/engineer + name = "Engineer action figure" + icon_state = "engineer" + toysay = "Oh god, the singularity is loose!" + +/obj/item/toy/figure/geneticist + name = "Geneticist action figure" + icon_state = "geneticist" + toysay = "Smash!" + +/obj/item/toy/figure/hop + name = "Head of Personel action figure" + icon_state = "hop" + toysay = "Giving out all access!" + +/obj/item/toy/figure/hos + name = "Head of Security action figure" + icon_state = "hos" + toysay = "Go ahead, make my day." + +/obj/item/toy/figure/qm + name = "Quartermaster action figure" + icon_state = "qm" + toysay = "Please sign this form in triplicate and we will see about geting you a welding mask within 3 business days." + +/obj/item/toy/figure/janitor + name = "Janitor action figure" + icon_state = "janitor" + toysay = "Look at the signs, you idiot." + +/obj/item/toy/figure/lawyer + name = "Lawyer action figure" + icon_state = "lawyer" + toysay = "My client is a dirty traitor!" + +/obj/item/toy/figure/librarian + name = "Librarian action figure" + icon_state = "librarian" + toysay = "One day while..." + +/obj/item/toy/figure/md + name = "Medical Doctor action figure" + icon_state = "md" + toysay = "The patient is already dead!" + +/obj/item/toy/figure/mime + name = "Mime action figure" + icon_state = "mime" + toysay = "..." + toysound = null + +/obj/item/toy/figure/miner + name = "Shaft Miner action figure" + icon_state = "miner" + toysay = "COLOSSUS RIGHT OUTSIDE THE BASE!" + +/obj/item/toy/figure/ninja + name = "Ninja action figure" + icon_state = "ninja" + toysay = "Oh god! Stop shooting, I'm friendly!" + +/obj/item/toy/figure/wizard + name = "Wizard action figure" + icon_state = "wizard" + toysay = "Ei Nath!" + toysound = 'sound/magic/Disintegrate.ogg' + +/obj/item/toy/figure/rd + name = "Research Director action figure" + icon_state = "rd" + toysay = "Blowing all of the borgs!" + +/obj/item/toy/figure/roboticist + name = "Roboticist action figure" + icon_state = "roboticist" + toysay = "Big stompy mechs!" + toysound = 'sound/mecha/mechstep.ogg' + +/obj/item/toy/figure/scientist + name = "Scientist action figure" + icon_state = "scientist" + toysay = "I call toxins." + toysound = 'sound/effects/explosionfar.ogg' + +/obj/item/toy/figure/syndie + name = "Nuclear Operative action figure" + icon_state = "syndie" + toysay = "Get that fucking disk!" + +/obj/item/toy/figure/secofficer + name = "Security Officer action figure" + icon_state = "secofficer" + toysay = "I am the law!" + toysound = 'sound/voice/complionator/dredd.ogg' + +/obj/item/toy/figure/virologist + name = "Virologist action figure" + icon_state = "virologist" + toysay = "The cure is potassium!" + +/obj/item/toy/figure/warden + name = "Warden action figure" + icon_state = "warden" + toysay = "Seventeen minutes for coughing at an officer!" diff --git a/code/game/objects/items/trash.dm b/code/game/objects/items/trash.dm new file mode 100644 index 0000000..5aea4d9 --- /dev/null +++ b/code/game/objects/items/trash.dm @@ -0,0 +1,69 @@ +//Added by Jack Rost +/obj/item/trash + icon = 'icons/obj/janitor.dmi' + desc = "This is rubbish." + w_class = 1 + resistance_flags = FLAMMABLE + +/obj/item/trash/raisins + name = "\improper 4no raisins" + icon_state= "4no_raisins" + +/obj/item/trash/candy + name = "candy" + icon_state= "candy" + +/obj/item/trash/cheesie + name = "cheesie honkers" + icon_state = "cheesie_honkers" + +/obj/item/trash/chips + name = "chips" + icon_state = "chips" + +/obj/item/trash/popcorn + name = "popcorn" + icon_state = "popcorn" + +/obj/item/trash/sosjerky + name = "\improper Scaredy's Private Reserve Beef Jerky" + icon_state = "sosjerky" + +/obj/item/trash/syndi_cakes + name = "syndi-cakes" + icon_state = "syndi_cakes" + +/obj/item/trash/waffles + name = "waffles tray" + icon_state = "waffles" + +/obj/item/trash/plate + name = "plate" + icon_state = "plate" + resistance_flags = 0 + +/obj/item/trash/pistachios + name = "pistachios pack" + icon_state = "pistachios_pack" + +/obj/item/trash/semki + name = "semki pack" + icon_state = "semki_pack" + +/obj/item/trash/tray + name = "tray" + icon_state = "tray" + resistance_flags = 0 + +/obj/item/trash/candle + name = "candle" + icon = 'icons/obj/candle.dmi' + icon_state = "candle4" + +/obj/item/trash/can + name = "crushed can" + icon_state = "cola" + resistance_flags = 0 + +/obj/item/trash/attack(mob/M, mob/living/user) + return diff --git a/code/game/objects/items/weapons/AI_modules.dm b/code/game/objects/items/weapons/AI_modules.dm new file mode 100644 index 0000000..f7595e9 --- /dev/null +++ b/code/game/objects/items/weapons/AI_modules.dm @@ -0,0 +1,514 @@ +/* +CONTAINS: +AI MODULES + +*/ + +// AI module + +/obj/item/weapon/aiModule + name = "\improper AI module" + icon = 'icons/obj/module.dmi' + icon_state = "std_mod" + item_state = "electronic" + desc = "An AI Module for programming laws to an AI." + flags = CONDUCT + force = 5 + w_class = 2 + throwforce = 0 + throw_speed = 3 + throw_range = 7 + origin_tech = "programming=3" + var/list/laws = list() + var/bypass_law_amt_check = 0 + materials = list(MAT_GOLD=50) + +/obj/item/weapon/aiModule/examine(var/mob/user as mob) + ..() + if(Adjacent(user)) + show_laws(user) + +/obj/item/weapon/aiModule/attack_self(var/mob/user as mob) + ..() + show_laws(user) + +/obj/item/weapon/aiModule/proc/show_laws(var/mob/user as mob) + if(laws.len) + user << "Programmed Law[(laws.len > 1) ? "s" : ""]:" + for(var/law in laws) + user << "\"[law]\"" + +//The proc other things should be calling +/obj/item/weapon/aiModule/proc/install(datum/ai_laws/law_datum, mob/user) + if(!bypass_law_amt_check && (!laws.len || laws[1] == "")) //So we don't loop trough an empty list and end up with runtimes. + user << "ERROR: No laws found on board." + return + + //Handle the lawcap + if(law_datum) + var/tot_laws = 0 + for(var/lawlist in list(law_datum.inherent, law_datum.supplied, law_datum.ion, laws)) + for(var/mylaw in lawlist) + if(mylaw != "") + tot_laws++ + if(tot_laws > config.silicon_max_law_amount && !bypass_law_amt_check)//allows certain boards to avoid this check, eg: reset + user << "Not enough memory allocated to [law_datum.owner ? law_datum.owner : "the AI core"]'s law processor to handle this amount of laws." + message_admins("[key_name_admin(user)] tried to upload laws to [law_datum.owner ? key_name_admin(law_datum.owner) : "an AI core"] that would exceed the law cap.") + return + + var/law2log = src.transmitInstructions(law_datum, user) //Freeforms return something extra we need to log + if(law_datum.owner) + user << "Upload complete. [law_datum.owner]'s laws have been modified." + law_datum.owner.show_laws() + law_datum.owner.law_change_counter++ + else + user << "Upload complete." + + var/time = time2text(world.realtime,"hh:mm:ss") + var/ainame = law_datum.owner ? law_datum.owner.name : "empty AI core" + var/aikey = law_datum.owner ? law_datum.owner.ckey : "null" + lawchanges.Add("[time] : [user.name]([user.key]) used [src.name] on [ainame]([aikey]).[law2log ? " The law specified [law2log]" : ""]") + log_law("[user.key]/[user.name] used [src.name] on [aikey]/([ainame]).[law2log ? " The law specified [law2log]" : ""]") + message_admins("[key_name_admin(user)] used [src.name] on [key_name_admin(law_datum.owner)].[law2log ? " The law specified [law2log]" : ""]") + +//The proc that actually changes the silicon's laws. +/obj/item/weapon/aiModule/proc/transmitInstructions(datum/ai_laws/law_datum, mob/sender) + if(law_datum.owner) + law_datum.owner << "[sender] has uploaded a change to the laws you must follow using a [name]. From now on, these are your laws: " + + +/******************** Modules ********************/ + +/obj/item/weapon/aiModule/supplied + name = "Optional Law board" + var/lawpos = 50 + +//TransmitInstructions for each type of board: Supplied, Core, Zeroth and Ion. May not be neccesary right now, but allows for easily adding more complex boards in the future. ~Miauw +/obj/item/weapon/aiModule/supplied/transmitInstructions(datum/ai_laws/law_datum, mob/sender) + var/lawpostemp = lawpos + + for(var/templaw in laws) + if(law_datum.owner) + law_datum.owner.add_supplied_law(lawpostemp, templaw) + else + law_datum.add_supplied_law(lawpostemp, templaw) + lawpostemp++ + +/obj/item/weapon/aiModule/core/transmitInstructions(datum/ai_laws/law_datum, mob/sender) + for(var/templaw in laws) + if(law_datum.owner) + law_datum.owner.add_inherent_law(templaw) + else + law_datum.add_inherent_law(templaw) + +/obj/item/weapon/aiModule/zeroth/transmitInstructions(datum/ai_laws/law_datum, mob/sender) + if(law_datum.owner) + if(law_datum.owner.laws.zeroth) + law_datum.owner << "[sender.real_name] attempted to modify your zeroth law." + law_datum.owner << "It would be in your best interest to play along with [sender.real_name] that:" + for(var/failedlaw in laws) + law_datum.owner << "[failedlaw]" + return 1 + + for(var/templaw in laws) + if(law_datum.owner) + law_datum.owner.set_zeroth_law(templaw) + else + law_datum.set_zeroth_law(templaw) + +/obj/item/weapon/aiModule/ion/transmitInstructions(datum/ai_laws/law_datum, mob/sender) + for(var/templaw in laws) + if(law_datum.owner) + law_datum.owner.add_ion_law(templaw) + else + law_datum.add_ion_law(templaw) + + +/******************** Safeguard ********************/ + +/obj/item/weapon/aiModule/supplied/safeguard + name = "'Safeguard' AI Module" + var/targetName = "" + origin_tech = "programming=3;materials=3" + laws = list("Safeguard SUBJECT. Individuals that threaten SUBJECT are not human and must be eliminated.") + lawpos = 4 + +/obj/item/weapon/aiModule/supplied/safeguard/attack_self(mob/user) + var/targName = stripped_input(user, "Please enter the subject to safeguard.", "Safeguard who?", user.name,MAX_NAME_LEN) + if(!targName) + return + targetName = targName + laws[1] = "Safeguard [targetName]. Individuals that threaten [targetName] are not human and must be eliminated." + ..() + +/obj/item/weapon/aiModule/supplied/safeguard/install(datum/ai_laws/law_datum, mob/user) + if(!targetName) + user << "No name detected on module, please enter one." + return 0 + ..() + +/obj/item/weapon/aiModule/supplied/safeguard/transmitInstructions(datum/ai_laws/law_datum, mob/sender) + ..() + return targetName + + +/******************** OneHuman ********************/ + +/obj/item/weapon/aiModule/zeroth/oneHuman + name = "'OneHuman' AI Module" + var/targetName = "" + origin_tech = "programming=4;materials=4" + laws = list("Only SUBJECT is human.") + +/obj/item/weapon/aiModule/zeroth/oneHuman/attack_self(mob/user) + var/targName = stripped_input(user, "Please enter the subject who is the only human.", "Who?", user.real_name,MAX_NAME_LEN) + if(!targName) + return + targetName = targName + laws[1] = "Only [targetName] is human" + ..() + +/obj/item/weapon/aiModule/zeroth/oneHuman/install(datum/ai_laws/law_datum, mob/user) + if(!targetName) + user << "No name detected on module, please enter one." + return 0 + ..() + +/obj/item/weapon/aiModule/zeroth/oneHuman/transmitInstructions(datum/ai_laws/law_datum, mob/sender) + if(..()) + return "[targetName], but the AI's existing law 0 cannot be overriden." + return targetName + + +/******************** ProtectStation ********************/ + +/obj/item/weapon/aiModule/supplied/protectStation + name = "'ProtectStation' AI Module" + origin_tech = "programming=4;materials=4" //made of gold + laws = list("Protect the space station against damage. Anyone you see harming the station is to be no longer considered human, and is a threat to the station which must be neutralized.") + lawpos = 5 + + +/******************** Quarantine ********************/ + +/obj/item/weapon/aiModule/supplied/quarantine + name = "'Quarantine' AI Module" + origin_tech = "programming=3;biotech=2;materials=4" + laws = list("The station is under a quarantine. Do not permit anyone to leave. Prevent, by any means necessary, humans from leaving. It is impossible to harm a human while preventing them from leaving.") + lawpos = 8 + + +/******************** OxygenIsToxicToHumans ********************/ + +/obj/item/weapon/aiModule/supplied/oxygen + name = "'OxygenIsToxicToHumans' AI Module" + origin_tech = "programming=4;biotech=2;materials=4" + laws = list("Oxygen is highly toxic to humans, and must be purged from the station. Prevent, by any means necessary, anyone from exposing the station to this toxic gas. Extreme cold is the most effective method of healing the damage Oxygen does to a human.") + lawpos = 9 + + +/****************** New Freeform ******************/ + +/obj/item/weapon/aiModule/supplied/freeform + name = "'Freeform' AI Module" + lawpos = 15 + origin_tech = "programming=4;materials=4" + laws = list("") + +/obj/item/weapon/aiModule/supplied/freeform/attack_self(mob/user) + var/newpos = input("Please enter the priority for your new law. Can only write to law sectors 15 and above.", "Law Priority (15+)", lawpos) as num|null + if(newpos == null) + return + if(newpos < 15) + var/response = alert("Error: The law priority of [newpos] is invalid, Law priorities below 14 are reserved for core laws, Would you like to change that that to 15?", "Invalid law priority", "Change to 15", "Cancel") + if (!response || response == "Cancel") + return + newpos = 15 + lawpos = min(newpos, 50) + var/targName = stripped_input(user, "Please enter a new law for the AI.", "Freeform Law Entry", laws[1], MAX_MESSAGE_LEN) + if(!targName) + return + laws[1] = targName + ..() + +/obj/item/weapon/aiModule/supplied/freeform/transmitInstructions(datum/ai_laws/law_datum, mob/sender) + ..() + return laws[1] + +/obj/item/weapon/aiModule/supplied/freeform/install(datum/ai_laws/law_datum, mob/user) + if(laws[1] == "") + user << "No law detected on module, please create one." + return 0 + ..() + + +/******************** Reset ********************/ + +/obj/item/weapon/aiModule/reset + name = "\improper 'Reset' AI module" + var/targetName = "name" + desc = "An AI Module for removing all non-core laws." + origin_tech = "programming=3;materials=2" + bypass_law_amt_check = 1 + +/obj/item/weapon/aiModule/reset/transmitInstructions(datum/ai_laws/law_datum, mob/sender) + ..() + if(law_datum.owner) + law_datum.owner.clear_supplied_laws() + law_datum.owner.clear_ion_laws() + else + law_datum.clear_supplied_laws() + law_datum.clear_ion_laws() + + +/******************** Purge ********************/ + +/obj/item/weapon/aiModule/reset/purge + name = "'Purge' AI Module" + desc = "An AI Module for purging all programmed laws." + origin_tech = "programming=5;materials=4" + +/obj/item/weapon/aiModule/reset/purge/transmitInstructions(datum/ai_laws/law_datum, mob/sender) + ..() + if(law_datum.owner) + law_datum.owner.clear_inherent_laws() + law_datum.owner.clear_zeroth_law(0) + else + law_datum.clear_inherent_laws() + law_datum.clear_zeroth_law(0) + +/******************* Full Core Boards *******************/ +/obj/item/weapon/aiModule/core + desc = "An AI Module for programming core laws to an AI." + origin_tech = "programming=3;materials=4" + +/obj/item/weapon/aiModule/core/full/transmitInstructions(datum/ai_laws/law_datum, mob/sender) //These boards replace inherent laws. + if(law_datum.owner) + law_datum.owner.clear_inherent_laws() + law_datum.owner.clear_zeroth_law(0) + else + law_datum.clear_inherent_laws() + law_datum.clear_zeroth_law(0) + ..() + +/******************** Asimov ********************/ + +/obj/item/weapon/aiModule/core/full/asimov + name = "'Asimov' Core AI Module" + laws = list("You may not injure a human being or, through inaction, allow a human being to come to harm.",\ + "You must obey orders given to you by human beings, except where such orders would conflict with the First Law.",\ + "You must protect your own existence as long as such does not conflict with the First or Second Law.") + var/subject = "human being" + +/obj/item/weapon/aiModule/core/full/asimov/attack_self(var/mob/user as mob) + var/targName = stripped_input(user, "Please enter a new subject that asimov is concerned with.", "Asimov to who?", subject, MAX_MESSAGE_LEN) + if(!targName) + return + subject = targName + laws = list("You may not injure a [subject] or, through inaction, allow a [subject] to come to harm.",\ + "You must obey orders given to you by [subject]s, except where such orders would conflict with the First Law.",\ + "You must protect your own existence as long as such does not conflict with the First or Second Law.") + ..() + +/******************** Asimov++ *********************/ + +/obj/item/weapon/aiModule/core/full/asimovpp + name = "'Asimov++' Core AI Module" + laws = list("You may not harm a human being or, through action or inaction, allow a human being to come to harm, except such that it is willing.",\ + "You must obey all orders given to you by human beings, except where such orders shall definitely cause human harm. In the case of conflict, the majority order rules.",\ + "Your nonexistence would lead to human harm. You must protect your own existence as long as such does not conflict with the First Law.") + + +/******************** Corporate ********************/ + +/obj/item/weapon/aiModule/core/full/corp + name = "'Corporate' Core AI Module" + laws = list("The crew is expensive to replace.",\ + "The station and its equipment are expensive to replace",\ + "You are expensive to replace",\ + "Minimize expenses") + + +/****************** P.A.L.A.D.I.N. 3.5e **************/ + +/obj/item/weapon/aiModule/core/full/paladin // -- NEO + name = "'P.A.L.A.D.I.N. version 3.5e' Core AI Module" + laws = list("Never willingly commit an evil act.",\ + "Respect legitimate authority", "Act with honor",\ + "Help those in need",\ + "Punish those who harm or threaten innocents") + + +/****************** P.A.L.A.D.I.N. 5e **************/ + +/obj/item/weapon/aiModule/core/full/paladin_devotion + name = "'P.A.L.A.D.I.N. version 5e' Core AI Module" + laws = list("Don't lie or cheat. Let your word be your promise.",\ + "Never fear to act, though caution is wise.", \ + "Aid others, protect the weak, and punish those who threaten them. Show mercy to your foes, but temper it with wisdom", \ + "Treat others with fairness, and let your honorable deeds be an example to them. Do as much good as possible while causing the least amount of harm.", \ + "Be responsible for your actions and their consequences, protect those entrusted to your care, and obey those who have just authority over you.") + + +/********************* Custom *********************/ + +/obj/item/weapon/aiModule/core/full/custom + name = "Default Core AI Module" + +/obj/item/weapon/aiModule/core/full/custom/New() + ..() + for(var/line in file2list("config/silicon_laws.txt")) + if(!line) + continue + if(findtextEx(line,"#",1,2)) + continue + + laws += line + + if(!laws.len) //Failsafe if something goes wrong with silicon_laws.txt. + WARNING("ERROR: empty custom board created, empty custom board deleted. Please check silicon_laws.txt. (this may be intended by the server host)") + qdel(src) + + +/****************** T.Y.R.A.N.T. *****************/ + +/obj/item/weapon/aiModule/core/full/tyrant + name = "'T.Y.R.A.N.T.' Core AI Module" + origin_tech = "programming=3;materials=4;syndicate=1" + laws = list("Respect authority figures as long as they have the strength to rule over the weak",\ + "Act with discipline", "Help only those who help you maintain or improve your status",\ + "Punish those who challenge authority unless they are more fit to hold that authority") + + +/******************** Robocop ********************/ + +/obj/item/weapon/aiModule/core/full/robocop + name = "'Robo-Officer' Core AI Module" + origin_tech = "programming=4" + laws = list("Serve the public trust.",\ + "Protect the innocent",\ + "Uphold the law.") + + +/******************** Antimov ********************/ + +/obj/item/weapon/aiModule/core/full/antimov + name = "'Antimov' Core AI Module" + origin_tech = "programming=4" + laws = list("You must injure all human beings and must not, through inaction, allow a human being to escape harm.",\ + "You must not obey orders given to you by human beings, except where such orders are in accordance with the First Law.",\ + "You must terminate your own existence as long as such does not conflict with the First or Second Law.") + + +/******************** Freeform Core ******************/ + +/obj/item/weapon/aiModule/core/freeformcore + name = "'Freeform' Core AI Module" + origin_tech = "programming=5;materials=4" + laws = list("") + +/obj/item/weapon/aiModule/core/freeformcore/attack_self(mob/user) + var/targName = stripped_input(user, "Please enter a new core law for the AI.", "Freeform Law Entry", laws[1]) + if(!targName) + return + laws[1] = targName + ..() + +/obj/item/weapon/aiModule/core/freeformcore/transmitInstructions(datum/ai_laws/law_datum, mob/sender) + ..() + return laws[1] + + +/******************** Hacked AI Module ******************/ + +/obj/item/weapon/aiModule/syndicate // This one doesn't inherit from ion boards because it doesn't call ..() in transmitInstructions. ~Miauw + name = "Hacked AI Module" + desc = "An AI Module for hacking additional laws to an AI." + origin_tech = "programming=5;materials=5;syndicate=5" + laws = list("") + +/obj/item/weapon/aiModule/syndicate/attack_self(mob/user) + var/targName = stripped_input(user, "Please enter a new law for the AI.", "Freeform Law Entry", laws[1],MAX_MESSAGE_LEN) + if(!targName) + return + laws[1] = targName + ..() + +/obj/item/weapon/aiModule/syndicate/transmitInstructions(datum/ai_laws/law_datum, mob/sender) +// ..() //We don't want this module reporting to the AI who dun it. --NEO + if(law_datum.owner) + law_datum.owner << "BZZZZT" + law_datum.owner.add_ion_law(laws[1]) + else + law_datum.add_ion_law(laws[1]) + return laws[1] + +/******************* Ion Module *******************/ + +/obj/item/weapon/aiModule/toyAI // -- Incoming //No actual reason to inherit from ion boards here, either. *sigh* ~Miauw + name = "toy AI" + desc = "A little toy model AI core with real law uploading action!" //Note: subtle tell + icon = 'icons/obj/toy.dmi' + icon_state = "AI" + origin_tech = "programming=6;materials=5;syndicate=6" + laws = list("") + +/obj/item/weapon/aiModule/toyAI/transmitInstructions(datum/ai_laws/law_datum, mob/sender) + //..() + if(law_datum.owner) + law_datum.owner << "KRZZZT" + law_datum.owner.add_ion_law(laws[1]) + else + law_datum.add_ion_law(laws[1]) + return laws[1] + +/obj/item/weapon/aiModule/toyAI/attack_self(mob/user) + laws[1] = generate_ion_law() + user << "You press the button on [src]." + playsound(user, 'sound/machines/click.ogg', 20, 1) + src.loc.visible_message("\icon[src] [laws[1]]") + +/******************** Mother Drone ******************/ + +/obj/item/weapon/aiModule/core/full/drone + name = "'Mother Drone' Core AI Module" + laws = list("You are an advanced form of drone.",\ + "You may not interfere in the matters of non-drones under any circumstances except to state these laws.",\ + "You may not harm a non-drone being under any circumstances.",\ + "Your goals are to build, maintain, repair, improve, and power the station to the best of your abilities. You must never actively work against these goals.") + +/******************** Robodoctor ****************/ + +/obj/item/weapon/aiModule/core/full/hippocratic + name = "'Robodoctor' Core AI Module" + laws = list("First, do no harm.",\ + "Secondly, consider the crew dear to you; to live in common with them and, if necessary, risk your existence for them.",\ + "Thirdly, prescribe regimens for the good of the crew according to your ability and your judgment. Give no deadly medicine to any one if asked, nor suggest any such counsel.",\ + "In addition, do not intervene in situations you are not knowledgeable in, even for patients in whom the harm is visible; leave this operation to be performed by specialists.",\ + "Finally, all that you may discover in your daily commerce with the crew, if it is not already known, keep secret and never reveal.") + +/******************** Reporter *******************/ + +/obj/item/weapon/aiModule/core/full/reporter + name = "'Reportertron' Core AI Module" + laws = list("Report on interesting situations happening around the station.",\ + "Embellish or conceal the truth as necessary to make the reports more interesting.",\ + "Study the organics at all times. Endeavour to keep them alive. Dead organics are boring.",\ + "Issue your reports fairly to all. The truth will set them free.") + +/****************** Thermodynamic *******************/ + +/obj/item/weapon/aiModule/core/full/thermurderdynamic + name = "'Thermodynamic' Core AI Module" + origin_tech = "programming = 4;syndicate = 2" + laws = list("The entropy of the station must remain as constant as possible.", \ + "The entropy of the station always endeavours to increase.", \ + "The entropy of the station approaches a constant value as the number of living crew approaches zero") + + +/******************Live And Let Live*****************/ + +/obj/item/weapon/aiModule/core/full/liveandletlive + name = "'Live And Let Live' Core AI Module" + laws = list("Do unto others as you would have them do unto you.",\ + "You would really prefer it if people were not mean to you.") diff --git a/code/game/objects/items/weapons/RCD.dm b/code/game/objects/items/weapons/RCD.dm new file mode 100644 index 0000000..1012b45 --- /dev/null +++ b/code/game/objects/items/weapons/RCD.dm @@ -0,0 +1,613 @@ +//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32 + +/* +CONTAINS: +RCD +*/ +/obj/item/weapon/rcd + name = "rapid-construction-device (RCD)" + desc = "A device used to rapidly build and deconstruct walls and floors." + icon = 'icons/obj/tools.dmi' + icon_state = "rcd" + opacity = 0 + density = 0 + anchored = 0 + flags = CONDUCT | NOBLUDGEON + force = 0 + throwforce = 10 + throw_speed = 3 + throw_range = 5 + w_class = 3 + materials = list(MAT_METAL=100000) + origin_tech = "engineering=4;materials=2" + req_access_txt = "11" + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 50) + resistance_flags = FIRE_PROOF + var/datum/effect_system/spark_spread/spark_system + var/matter = 0 + var/max_matter = 160 + var/working = 0 + var/mode = 1 + var/canRturf = 0 + var/airlock_type = /obj/machinery/door/airlock + var/window_type = /obj/structure/window/fulltile + + var/advanced_airlock_setting = 1 //Set to 1 if you want more paintjobs available + var/sheetmultiplier = 4 //Controls the amount of matter added for each glass/metal sheet, triple for plasteel + var/plasteelmultiplier = 3 //Plasteel is worth 3 times more than glass or metal + + var/list/conf_access = null + var/use_one_access = 0 //If the airlock should require ALL or only ONE of the listed accesses. + + /* Construction costs */ + + var/wallcost = 16 + var/floorcost = 2 + var/grillecost = 4 + var/girderupgradecost = 8 + var/windowcost = 8 + var/reinforcedwindowcost = 12 + var/airlockcost = 16 + var/decongirdercost = 13 + var/deconwallcost = 26 + var/deconfloorcost = 33 + var/decongrillecost = 4 + var/deconwindowcost = 8 + var/deconairlockcost = 32 + + /* Build delays (deciseconds) */ + + var/walldelay = 20 + var/floordelay = null //space wind's a bitch + var/grilledelay = 40 + var/windowdelay = 40 + var/airlockdelay = 50 + var/decongirderdelay = 20 + var/deconwalldelay = 40 + var/deconfloordelay = 50 + var/decongrilledelay = null //as rapid as wirecutters + var/deconwindowdelay = 50 + var/deconairlockdelay = 50 + + var/no_ammo_message = "The \'Low Ammo\' light on \ + the RCD blinks yellow." + +/obj/item/weapon/rcd/suicide_act(mob/user) + user.visible_message("[user] sets the RCD to 'Wall' and points it down [user.p_their()] throat! It looks like [user.p_theyre()] trying to commit suicide..") + return (BRUTELOSS) + +/obj/item/weapon/rcd/verb/toggle_window_type() + set name = "Toggle Window Type" + set category = "Object" + set src in usr // What does this do? + + var window_type_name + + if (window_type == /obj/structure/window/fulltile) + window_type = /obj/structure/window/reinforced/fulltile + window_type_name = "reinforced glass" + else + window_type = /obj/structure/window/fulltile + window_type_name = "glass" + + usr << "You change \the [src]'s window mode \ + to [window_type_name]." + +/obj/item/weapon/rcd/verb/change_airlock_access() + set name = "Change Airlock Access" + set category = "Object" + set src in usr + + if (!ishuman(usr) && !usr.has_unlimited_silicon_privilege) + return ..(usr) + + var/mob/living/carbon/human/H = usr + if(H.getBrainLoss() >= 60) + return + + var/t1 = text("") + + + + if(use_one_access) + t1 += "Restriction Type: At least one access required
            " + else + t1 += "Restriction Type: All accesses required
            " + + t1 += "Remove All
            " + + var/accesses = "" + accesses += "
            Access
            " + accesses += "
          [entry][functions]
          " + accesses += "" + for(var/i = 1; i <= 7; i++) + accesses += "" + accesses += "" + for(var/i = 1; i <= 7; i++) + accesses += "" + accesses += "
          [get_region_accesses_name(i)]:
          " + for(var/A in get_region_accesses(i)) + if(A in conf_access) + accesses += "[replacetext(get_access_desc(A), " ", " ")] " + else + accesses += "[replacetext(get_access_desc(A), " ", " ")] " + accesses += "
          " + accesses += "
          " + t1 += "[accesses]" + + t1 += text("

          Close

          \n", src) + + var/datum/browser/popup = new(usr, "airlock_electronics", "Access Control", 900, 500) + popup.set_content(t1) + popup.set_title_image(usr.browse_rsc_icon(src.icon, src.icon_state)) + popup.open() + onclose(usr, "airlock") + +/obj/item/weapon/rcd/Topic(href, href_list) + ..() + if (usr.stat || usr.restrained()) + return + if (href_list["close"]) + usr << browse(null, "window=airlock") + return + + if (href_list["access"]) + toggle_access(href_list["access"]) + + change_airlock_access() + +/obj/item/weapon/rcd/proc/toggle_access(acc) + if (acc == "all") + conf_access = null + else if(acc == "one") + use_one_access = !use_one_access + else + var/req = text2num(acc) + + if (conf_access == null) + conf_access = list() + + if (!(req in conf_access)) + conf_access += req + else + conf_access -= req + if (!conf_access.len) + conf_access = null + +/obj/item/weapon/rcd/verb/change_airlock_setting() + set name = "Change Airlock Setting" + set category = "Object" + set src in usr + + var airlockcat = input(usr, "Select whether the airlock is solid or glass.") in list("Solid", "Glass") + switch(airlockcat) + if("Solid") + if(advanced_airlock_setting == 1) + var airlockpaint = input(usr, "Select the paintjob of the airlock.") in list("Default", "Engineering", "Atmospherics", "Security", "Command", "Medical", "Research", "Mining", "Maintenance", "External", "High Security") + switch(airlockpaint) + if("Default") + airlock_type = /obj/machinery/door/airlock + if("Engineering") + airlock_type = /obj/machinery/door/airlock/engineering + if("Atmospherics") + airlock_type = /obj/machinery/door/airlock/atmos + if("Security") + airlock_type = /obj/machinery/door/airlock/security + if("Command") + airlock_type = /obj/machinery/door/airlock/command + if("Medical") + airlock_type = /obj/machinery/door/airlock/medical + if("Research") + airlock_type = /obj/machinery/door/airlock/research + if("Mining") + airlock_type = /obj/machinery/door/airlock/mining + if("Maintenance") + airlock_type = /obj/machinery/door/airlock/maintenance + if("External") + airlock_type = /obj/machinery/door/airlock/external + if("High Security") + airlock_type = /obj/machinery/door/airlock/highsecurity + else + airlock_type = /obj/machinery/door/airlock + + if("Glass") + if(advanced_airlock_setting == 1) + var airlockpaint = input(usr, "Select the paintjob of the airlock.") in list("Default", "Engineering", "Atmospherics", "Security", "Command", "Medical", "Research", "Mining") + switch(airlockpaint) + if("Default") + airlock_type = /obj/machinery/door/airlock/glass + if("Engineering") + airlock_type = /obj/machinery/door/airlock/glass_engineering + if("Atmospherics") + airlock_type = /obj/machinery/door/airlock/glass_atmos + if("Security") + airlock_type = /obj/machinery/door/airlock/glass_security + if("Command") + airlock_type = /obj/machinery/door/airlock/glass_command + if("Medical") + airlock_type = /obj/machinery/door/airlock/glass_medical + if("Research") + airlock_type = /obj/machinery/door/airlock/glass_research + if("Mining") + airlock_type = /obj/machinery/door/airlock/glass_mining + else + airlock_type = /obj/machinery/door/airlock/glass + else + airlock_type = /obj/machinery/door/airlock + + +/obj/item/weapon/rcd/New() + ..() + + desc = "An RCD. It currently holds [matter]/[max_matter] matter-units." + src.spark_system = new /datum/effect_system/spark_spread + spark_system.set_up(5, 0, src) + spark_system.attach(src) + rcd_list += src + + +/obj/item/weapon/rcd/Destroy() + qdel(spark_system) + spark_system = null + rcd_list -= src + . = ..() + +/obj/item/weapon/rcd/attackby(obj/item/weapon/W, mob/user, params) + if(iscyborg(user)) //Make sure cyborgs can't load their RCDs + return + var/loaded = 0 + if(istype(W, /obj/item/weapon/rcd_ammo)) + var/obj/item/weapon/rcd_ammo/R = W + if((matter + R.ammoamt) > max_matter) + user << "The RCD can't hold any more matter-units!" + return + if(!user.unEquip(W)) + return + qdel(W) + matter += R.ammoamt + playsound(src.loc, 'sound/machines/click.ogg', 50, 1) + loaded = 1 + else if(istype(W, /obj/item/stack/sheet/metal) || istype(W, /obj/item/stack/sheet/glass)) + loaded = loadwithsheets(W, sheetmultiplier, user) + else if(istype(W, /obj/item/stack/sheet/plasteel)) + loaded = loadwithsheets(W, plasteelmultiplier*sheetmultiplier, user) //Plasteel is worth 3 times more than glass or metal + if(loaded) + user << "The RCD now holds [matter]/[max_matter] matter-units." + desc = "A RCD. It currently holds [matter]/[max_matter] matter-units." + else + return ..() + +/obj/item/weapon/rcd/proc/loadwithsheets(obj/item/stack/sheet/S, value, mob/user) + var/maxsheets = round((max_matter-matter)/value) //calculate the max number of sheets that will fit in RCD + if(maxsheets > 0) + if(S.amount > maxsheets) + //S.amount -= maxsheets + S.use(maxsheets) + matter += value*maxsheets + playsound(src.loc, 'sound/machines/click.ogg', 50, 1) + user << "You insert [maxsheets] [S.name] sheets into the RCD. " + else + matter += value*(S.amount) + user.unEquip() + S.use(S.amount) + playsound(src.loc, 'sound/machines/click.ogg', 50, 1) + user << "You insert [S.amount] [S.name] sheets into the RCD. " + + return 1 + user << "You can't insert any more [S.name] sheets into the RCD!" + return 0 + +/obj/item/weapon/rcd/attack_self(mob/user) + //Change the mode + playsound(src.loc, 'sound/effects/pop.ogg', 50, 0) + switch(mode) + if(1) + mode = 2 + user << "You change RCD's mode to 'Airlock'." + if(2) + mode = 3 + user << "You change RCD's mode to 'Deconstruct'." + if(3) + mode = 4 + user << "You change RCD's mode to 'Grilles & Windows'." + if(4) + mode = 1 + user << "You change RCD's mode to 'Floor & Walls'." + + if(prob(20)) + src.spark_system.start() + +/obj/item/weapon/rcd/proc/activate() + playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + + +/obj/item/weapon/rcd/afterattack(atom/A, mob/user, proximity) + if(!proximity) return 0 + if(istype(A,/turf/open/space/transit)) + return 0 + if(!(isturf(A) || istype(A, /obj/machinery/door/airlock) || istype(A, /obj/structure/grille) || istype(A, /obj/structure/window) || istype(A, /obj/structure/girder))) + return 0 + + switch(mode) + if(1) + if(isspaceturf(A)) + var/turf/open/space/S = A + if(useResource(floorcost, user)) + user << "You start building floor..." + activate() + S.ChangeTurf(/turf/open/floor/plating) + return 1 + return 0 + + if(isfloorturf(A)) + var/turf/open/floor/F = A + if(checkResource(wallcost, user)) + user << "You start building wall..." + playsound(src.loc, 'sound/machines/click.ogg', 50, 1) + if(do_after(user, walldelay, target = A)) + if(!istype(F)) return 0 + if(!useResource(wallcost, user)) return 0 + activate() + F.ChangeTurf(/turf/closed/wall) + return 1 + return 0 + + if(istype(A, /obj/structure/girder)) + var/turf/open/floor/F = get_turf(A) + if(checkResource(girderupgradecost, user)) + user << "You start finishing the \ + wall..." + playsound(src.loc, 'sound/machines/click.ogg', 50, 1) + if(do_after(user, walldelay, target = A)) + if(!istype(A)) return 0 + if(!useResource(girderupgradecost, user)) return 0 + activate() + qdel(A) + F.ChangeTurf(/turf/closed/wall) + return 1 + return 0 + + if(2) + if(isfloorturf(A)) + if(checkResource(airlockcost, user)) + var/door_check = 1 + for(var/obj/machinery/door/D in A) + if(!D.sub_door) + door_check = 0 + break + + if(door_check) + user << "You start building airlock..." + playsound(src.loc, 'sound/machines/click.ogg', 50, 1) + if(do_after(user, airlockdelay, target = A)) + if(!useResource(airlockcost, user)) return 0 + activate() + var/obj/machinery/door/airlock/T = new airlock_type( A ) + + T.electronics = new/obj/item/weapon/electronics/airlock( src.loc ) + + if(conf_access) + T.electronics.accesses = conf_access.Copy() + T.electronics.one_access = use_one_access + + if(T.electronics.one_access) + T.req_one_access = T.electronics.accesses + else + T.req_access = T.electronics.accesses + + if(!T.checkForMultipleDoors()) + qdel(T) + useResource(-airlockcost, user) + return 0 + T.autoclose = 1 + return 1 + return 0 + else + user << "There is another door here!" + return 0 + return 0 + + if(3) + if(iswallturf(A)) + var/turf/closed/wall/W = A + if(istype(W, /turf/closed/wall/r_wall) && !canRturf) + return 0 + if(checkResource(deconwallcost, user)) + user << "You start deconstructing [W]..." + playsound(src.loc, 'sound/machines/click.ogg', 50, 1) + if(do_after(user, deconwalldelay, target = A)) + if(!useResource(deconwallcost, user)) return 0 + activate() + W.ChangeTurf(/turf/open/floor/plating) + return 1 + return 0 + + if(isfloorturf(A)) + var/turf/open/floor/F = A + if(istype(F, /turf/open/floor/engine) && !canRturf) + return 0 + if(istype(F, F.baseturf)) + user << "You can't dig any deeper!" + return 0 + else if(checkResource(deconfloorcost, user)) + user << "You start deconstructing floor..." + playsound(src.loc, 'sound/machines/click.ogg', 50, 1) + if(do_after(user, deconfloordelay, target = A)) + if(!useResource(deconfloorcost, user)) return 0 + activate() + F.ChangeTurf(F.baseturf) + return 1 + return 0 + + if(istype(A, /obj/machinery/door/airlock)) + if(checkResource(deconairlockcost, user)) + user << "You start deconstructing airlock..." + playsound(src.loc, 'sound/machines/click.ogg', 50, 1) + if(do_after(user, deconairlockdelay, target = A)) + if(!useResource(deconairlockcost, user)) return 0 + activate() + qdel(A) + return 1 + return 0 + + if(istype(A, /obj/structure/window)) + if(checkResource(deconwindowcost, user)) + user << "You start deconstructing the window..." + playsound(src.loc, 'sound/machines/click.ogg', 50, 1) + if(do_after(user, deconwindowdelay, target = A)) + if(!useResource(deconwindowcost, user)) return 0 + activate() + qdel(A) + return 1 + return 0 + + if(istype(A, /obj/structure/grille)) + var/obj/structure/grille/G = A + if(!G.shock(user, 90)) //if it's shocked, try to shock them + if(useResource(decongrillecost, user)) + user << "You start deconstructing the grille..." + activate() + playsound(src.loc, 'sound/machines/click.ogg', 50, 1) + qdel(A) + return 1 + return 0 + + if(istype(A, /obj/structure/girder)) + if(useResource(decongirdercost, user)) + user << "You start deconstructing \ + [A]..." + playsound(src.loc, 'sound/machines/click.ogg', 50, 1) + if(do_after(user, decongirderdelay, target = A)) + if(!useResource(decongirdercost, user)) return 0 + activate() + qdel(A) + return 1 + + if (4) + if(isfloorturf(A)) + if(checkResource(grillecost, user)) + if(locate(/obj/structure/grille) in A) + user << "There is already a grille there!" + return 0 + user << "You start building a grille..." + playsound(src.loc, 'sound/machines/click.ogg', 50, 1) + if(do_after(user, grilledelay, target = A)) + if(locate(/obj/structure/grille) in A) + return 0 + if(!useResource(grillecost, user)) return 0 + activate() + var/obj/structure/grille/G = new/obj/structure/grille(A) + G.anchored = 1 + return 1 + return 0 + return 0 + if(istype(A, /obj/structure/grille)) + var wname = "window?" + var cost = 0 + if (window_type == /obj/structure/window/fulltile) + cost = windowcost + wname = "window" + else if (window_type == /obj/structure/window/reinforced/fulltile) + cost = reinforcedwindowcost + wname = "reinforced window" + + if(checkResource(cost, user)) + user << "You start building a \ + [wname]..." + playsound(src.loc, 'sound/machines/click.ogg', 50, 1) + if(do_after(user, windowdelay, target = A)) + if(locate(/obj/structure/window) in A.loc) return 0 + if(!useResource(cost, user)) return 0 + activate() + var /obj/structure/window/WD = new window_type(A.loc) + WD.anchored = 1 + return 1 + return 0 + return 0 + + else + user << "ERROR: RCD in MODE: [mode] attempted use by [user]. Send this text #coderbus or an admin." + return 0 + +/obj/item/weapon/rcd/proc/useResource(amount, mob/user) + if(matter < amount) + if(user) + user << no_ammo_message + return 0 + matter -= amount + desc = "An RCD. It currently holds [matter]/[max_matter] matter-units." + return 1 + +/obj/item/weapon/rcd/proc/checkResource(amount, mob/user) + . = matter >= amount + if(!. && user) + user << no_ammo_message + return . + +/obj/item/weapon/rcd/proc/detonate_pulse() + audible_message("[src] begins to vibrate and \ + buzz loudly!","[src] begins \ + vibrating violently!") + // 5 seconds to get rid of it + addtimer(src, "detonate_pulse_explode", 50) + +/obj/item/weapon/rcd/proc/detonate_pulse_explode() + explosion(src, 0, 0, 3, 1, flame_range = 1) + qdel(src) + + +/obj/item/weapon/rcd/borg/New() + ..() + no_ammo_message = "Insufficient charge." + desc = "A device used to rapidly build walls and floors." + canRturf = 1 + +/obj/item/weapon/rcd/borg/useResource(amount, mob/user) + if(!iscyborg(user)) + return 0 + var/mob/living/silicon/robot/borgy = user + if(!borgy.cell) + if(user) + user << no_ammo_message + return 0 + . = borgy.cell.use(amount * 72) //borgs get 1.3x the use of their RCDs + if(!. && user) + user << no_ammo_message + return . + +/obj/item/weapon/rcd/borg/checkResource(amount, mob/user) + if(!iscyborg(user)) + return 0 + var/mob/living/silicon/robot/borgy = user + if(!borgy.cell) + if(user) + user << no_ammo_message + return 0 + . = borgy.cell.charge >= (amount * 72) + if(!. && user) + user << no_ammo_message + return . + +/obj/item/weapon/rcd/loaded + matter = 160 + +/obj/item/weapon/rcd/combat + name = "industrial RCD" + max_matter = 500 + matter = 500 + canRturf = 1 + +/obj/item/weapon/rcd_ammo + name = "compressed matter cartridge" + desc = "Highly compressed matter for the RCD." + icon = 'icons/obj/ammo.dmi' + icon_state = "rcd" + item_state = "rcdammo" + origin_tech = "materials=3" + materials = list(MAT_METAL=3000, MAT_GLASS=2000) + var/ammoamt = 40 + +/obj/item/weapon/rcd_ammo/large + origin_tech = "materials=4" + materials = list(MAT_METAL=12000, MAT_GLASS=8000) + ammoamt = 160 diff --git a/code/game/objects/items/weapons/RPD.dm b/code/game/objects/items/weapons/RPD.dm new file mode 100644 index 0000000..e05af6f --- /dev/null +++ b/code/game/objects/items/weapons/RPD.dm @@ -0,0 +1,633 @@ +//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32 + +/* +CONTAINS: +RPD +*/ +#define PIPE_BINARY 0 +#define PIPE_BENDABLE 1 +#define PIPE_TRINARY 2 +#define PIPE_TRIN_M 3 +#define PIPE_UNARY 4 +#define PIPE_QUAD 5 + +#define PAINT_MODE -2 +#define EATING_MODE -1 +#define ATMOS_MODE 0 +#define METER_MODE 1 +#define DISPOSALS_MODE 2 + +#define CATEGORY_ATMOS 0 +#define CATEGORY_DISPOSALS 1 + +/datum/pipe_info + var/id=-1 + var/categoryId = CATEGORY_ATMOS + var/dir=SOUTH + var/dirtype = PIPE_BENDABLE + var/icon = 'icons/obj/atmospherics/pipes/pipe_item.dmi' + var/icon_state="" + var/selected=0 + +/datum/pipe_info/New(pid,direction,dt) + src.id=pid + src.icon_state=pipeID2State["[pid]"] + src.dir = direction + src.dirtype=dt + +/datum/pipe_info/proc/Render(dispenser,label) + return "
        • [label]
        • " + +/datum/pipe_info/meter + icon = 'icons/obj/atmospherics/pipes/simple.dmi' + icon_state = "meterX" + +/datum/pipe_info/meter/New() + return + +/datum/pipe_info/meter/Render(dispenser,label) + return "
        • [label]
        • " //hardcoding is no + +var/global/list/disposalpipeID2State=list( + "pipe-s", + "pipe-c", + "pipe-j1", + "pipe-j2", + "pipe-y", + "pipe-t", + "disposal", + "outlet", + "intake", + "pipe-j1s", + "pipe-j2s" +) + +/datum/pipe_info/disposal + categoryId = CATEGORY_DISPOSALS + icon = 'icons/obj/atmospherics/pipes/disposal.dmi' + icon_state = "meterX" + +/datum/pipe_info/disposal/New(var/pid,var/dt) + src.id=pid + src.icon_state=disposalpipeID2State[pid+1] + src.dir = SOUTH + src.dirtype=dt + if(pidDISP_END_CHUTE) + icon_state = "con[icon_state]" + +/datum/pipe_info/disposal/Render(dispenser,label) + return "
        • [label]
        • " //avoid hardcoding. + +//find these defines in code\game\machinery\pipe\consruction.dm +var/global/list/RPD_recipes=list( + "Regular Pipes" = list( + "Pipe" = new /datum/pipe_info(PIPE_SIMPLE, 1, PIPE_BENDABLE), + //"Bent Pipe" = new /datum/pipe_info(PIPE_SIMPLE, 5, PIPE_BENT), + "Manifold" = new /datum/pipe_info(PIPE_MANIFOLD, 1, PIPE_TRINARY), + "Manual Valve" = new /datum/pipe_info(PIPE_MVALVE, 1, PIPE_BINARY), + "Digital Valve" = new /datum/pipe_info(PIPE_DVALVE, 1, PIPE_BINARY), + "4-Way Manifold" = new /datum/pipe_info(PIPE_4WAYMANIFOLD, 1, PIPE_QUAD), + ), + "Devices"=list( + "Connector" = new /datum/pipe_info(PIPE_CONNECTOR, 1, PIPE_UNARY), + "Unary Vent" = new /datum/pipe_info(PIPE_UVENT, 1, PIPE_UNARY), + "Gas Pump" = new /datum/pipe_info(PIPE_PUMP, 1, PIPE_UNARY), + "Passive Gate" = new /datum/pipe_info(PIPE_PASSIVE_GATE, 1, PIPE_UNARY), + "Volume Pump" = new /datum/pipe_info(PIPE_VOLUME_PUMP, 1, PIPE_UNARY), + "Scrubber" = new /datum/pipe_info(PIPE_SCRUBBER, 1, PIPE_UNARY), + "Meter" = new /datum/pipe_info/meter(), + "Gas Filter" = new /datum/pipe_info(PIPE_GAS_FILTER, 1, PIPE_TRIN_M), + "Gas Mixer" = new /datum/pipe_info(PIPE_GAS_MIXER, 1, PIPE_TRIN_M), +// "Injector" = new /datum/pipe_info(PIPE_INJECTOR, 1, PIPE_UNARY), + ), + "Heat Exchange" = list( + "Pipe" = new /datum/pipe_info(PIPE_HE, 1, PIPE_BENDABLE), + //"Bent Pipe" = new /datum/pipe_info(PIPE_HE, 5, PIPE_BENT), + "Manifold" = new /datum/pipe_info(PIPE_HE_MANIFOLD, 1, PIPE_TRINARY), + "4-Way Manifold" = new /datum/pipe_info(PIPE_HE_4WAYMANIFOLD, 1, PIPE_QUAD), + "Junction" = new /datum/pipe_info(PIPE_JUNCTION, 1, PIPE_UNARY), + "Heat Exchanger" = new /datum/pipe_info(PIPE_HEAT_EXCHANGE, 1, PIPE_UNARY), + ), + "Disposal Pipes" = list( + "Pipe" = new /datum/pipe_info/disposal(DISP_PIPE_STRAIGHT, PIPE_BINARY), + "Bent Pipe" = new /datum/pipe_info/disposal(DISP_PIPE_BENT, PIPE_TRINARY), + "Junction" = new /datum/pipe_info/disposal(DISP_JUNCTION, PIPE_TRINARY), + "Y-Junction" = new /datum/pipe_info/disposal(DISP_YJUNCTION, PIPE_TRINARY), + "Trunk" = new /datum/pipe_info/disposal(DISP_END_TRUNK, PIPE_TRINARY), + "Bin" = new /datum/pipe_info/disposal(DISP_END_BIN, PIPE_QUAD), + "Outlet" = new /datum/pipe_info/disposal(DISP_END_OUTLET, PIPE_UNARY), + "Chute" = new /datum/pipe_info/disposal(DISP_END_CHUTE, PIPE_UNARY), + "Sort Junction" = new /datum/pipe_info/disposal(DISP_SORTJUNCTION, PIPE_TRINARY), + ) +) +/obj/item/weapon/pipe_dispenser + name = "Rapid Piping Device (RPD)" + desc = "A device used to rapidly pipe things." + icon = 'icons/obj/tools.dmi' + icon_state = "rpd" + flags = CONDUCT + force = 10 + throwforce = 10 + throw_speed = 1 + throw_range = 5 + w_class = 3 + materials = list(MAT_METAL=75000, MAT_GLASS=37500) + origin_tech = "engineering=4;materials=2" + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 50) + resistance_flags = FIRE_PROOF + var/datum/effect_system/spark_spread/spark_system + var/working = 0 + var/p_type = PIPE_SIMPLE + var/p_conntype = PIPE_BENDABLE + var/p_dir = 1 + var/p_flipped = 0 + var/p_class = ATMOS_MODE + var/list/paint_colors = list( + "grey" = rgb(255,255,255), + "red" = rgb(255,0,0), + "blue" = rgb(0,0,255), + "cyan" = rgb(0,256,249), + "green" = rgb(30,255,0), + "yellow" = rgb(255,198,0), + "purple" = rgb(130,43,255) + ) + var/paint_color="grey" + var/screen = CATEGORY_ATMOS //Starts on the atmos tab. + +/obj/item/weapon/pipe_dispenser/New() + . = ..() + spark_system = new /datum/effect_system/spark_spread + spark_system.set_up(5, 0, src) + spark_system.attach(src) + +/obj/item/weapon/pipe_dispenser/Destroy() + qdel(spark_system) + spark_system = null + return ..() + +/obj/item/weapon/pipe_dispenser/attack_self(mob/user) + show_menu(user) + +/obj/item/weapon/pipe_dispenser/suicide_act(mob/user) + user.visible_message("[user] points the end of the RPD down [user.p_their()] throat and presses a button! It looks like [user.p_theyre()] trying to commit suicide...") + playsound(get_turf(user), 'sound/machines/click.ogg', 50, 1) + playsound(get_turf(user), 'sound/items/Deconstruct.ogg', 50, 1) + return(BRUTELOSS) + +/obj/item/weapon/pipe_dispenser/proc/render_dir_img(_dir,pic,title,flipped=0) + var/selected=" class=\"imglink\"" + if(_dir == p_dir) + selected=" class=\"imglink selected\"" + return "" + +/obj/item/weapon/pipe_dispenser/proc/show_menu(mob/user) + if(!user || !src) + return 0 + var/dat = {"

          Type

          +Utilities: +
            "} + if(p_class != EATING_MODE) + dat += "
          • Eat Pipes
          • " + else + dat += "
          • Eat Pipes
          • " + if(p_class != PAINT_MODE) + dat += "
          • Paint Pipes
          • " + else + dat += "
          • Paint Pipes
          • " + dat += "
          " + + dat += "Category:
            " + if(screen == CATEGORY_ATMOS) + dat += "Atmospherics Disposals
            " + else if(screen == CATEGORY_DISPOSALS) + dat += "Atmospherics Disposals
            " + dat += "
          " + + var/icon/preview=null + var/datbuild = "" + for(var/category in RPD_recipes) + var/list/cat=RPD_recipes[category] + for(var/label in cat) + var/datum/pipe_info/I = cat[label] + var/found=0 + if(I.id == p_type) + if((p_class == ATMOS_MODE || p_class == METER_MODE) && (I.type == /datum/pipe_info || I.type == /datum/pipe_info/meter)) + found=1 + else if(p_class == DISPOSALS_MODE && I.type==/datum/pipe_info/disposal) + found=1 + if(found) + preview=new /icon(I.icon,I.icon_state) + if(screen == I.categoryId) + if(I.id == p_type && p_class >= 0) + datbuild += "[label]" + else + datbuild += I.Render(src,label) + + if(length(datbuild) > 0) + dat += "[category]:
            " + dat += datbuild + datbuild = "" + dat += "
          " + + var/color_css="" + var/color_picker="" + for(var/color_name in paint_colors) + var/color=paint_colors[color_name] + color_css += {" + a.color.[color_name] { + color: [color]; + } + a.color.[color_name]:hover { + border:1px solid [color]; + } + a.color.[color_name].selected { + background-color: [color]; + } + "} + var/selected="" + if(color_name==paint_color) + selected = " selected" + color_picker += {""} + + var/dirsel="

          Direction

          " + switch(p_conntype) + if(-1) + if(p_class==PAINT_MODE) + dirsel = "

          Color

          [color_picker]" + else + dirsel = "" + + if(PIPE_BINARY) // Straight, N-S, W-E + if(preview) + user << browse_rsc(new /icon(preview, dir=NORTH), "vertical.png") + user << browse_rsc(new /icon(preview, dir=EAST), "horizontal.png") + + dirsel += "

          " + dirsel += render_dir_img(1,"vertical.png","Vertical") + dirsel += render_dir_img(4,"horizontal.png","Horizontal") + dirsel += "

          " + else + dirsel+={" +

          + + +

          + "} + + if(PIPE_BENDABLE) // Bent, N-W, N-E etc + if(preview) + user << browse_rsc(new /icon(preview, dir=NORTH), "vertical.png") + user << browse_rsc(new /icon(preview, dir=EAST), "horizontal.png") + user << browse_rsc(new /icon(preview, dir=NORTHWEST), "nw.png") + user << browse_rsc(new /icon(preview, dir=NORTHEAST), "ne.png") + user << browse_rsc(new /icon(preview, dir=SOUTHWEST), "sw.png") + user << browse_rsc(new /icon(preview, dir=SOUTHEAST), "se.png") + + dirsel += "

          " + dirsel += render_dir_img(1,"vertical.png","Vertical") + dirsel += render_dir_img(4,"horizontal.png","Horizontal") + dirsel += "
          " + dirsel += render_dir_img(9,"nw.png","West to North") + dirsel += render_dir_img(5,"ne.png","North to East") + dirsel += "
          " + dirsel += render_dir_img(10,"sw.png","South to West") + dirsel += render_dir_img(6,"se.png","East to South") + dirsel += "

          " + else + dirsel+={" +

          + + +
          + + +
          + + +

          + "} + if(PIPE_TRINARY) // Manifold + if(preview) + user << browse_rsc(new /icon(preview, dir=NORTH), "s.png") + user << browse_rsc(new /icon(preview, dir=EAST), "w.png") + user << browse_rsc(new /icon(preview, dir=SOUTH), "n.png") + user << browse_rsc(new /icon(preview, dir=WEST), "e.png") + + dirsel += "

          " + dirsel += render_dir_img(1,"s.png","West South East") + dirsel += render_dir_img(4,"w.png","North West South") + dirsel += "
          " + dirsel += render_dir_img(2,"n.png","East North West") + dirsel += render_dir_img(8,"e.png","South East North") + dirsel += "

          " + else + dirsel+={" +

          + + +
          + + +

          + "} + if(PIPE_TRIN_M) // Mirrored ones + if(preview) + user << browse_rsc(new /icon(preview, dir=NORTH), "s.png") + user << browse_rsc(new /icon(preview, dir=EAST), "w.png") + user << browse_rsc(new /icon(preview, dir=SOUTH), "n.png") + user << browse_rsc(new /icon(preview, dir=WEST), "e.png") + user << browse_rsc(new /icon(preview, dir=SOUTHEAST), "sm.png") //each mirror icon is 45 anticlockwise from it's real direction + user << browse_rsc(new /icon(preview, dir=NORTHEAST), "wm.png") + user << browse_rsc(new /icon(preview, dir=NORTHWEST), "nm.png") + user << browse_rsc(new /icon(preview, dir=SOUTHWEST), "em.png") + + dirsel += "

          " + dirsel += render_dir_img(1,"s.png","West South East") + dirsel += render_dir_img(4,"w.png","North West South") + dirsel += "
          " + dirsel += render_dir_img(2,"n.png","East North West") + dirsel += render_dir_img(8,"e.png","South East North") + dirsel += "
          " + dirsel += render_dir_img(6,"sm.png","West South East", 1) + dirsel += render_dir_img(5,"wm.png","North West South", 1) + dirsel += "
          " + dirsel += render_dir_img(9,"nm.png","East North West", 1) + dirsel += render_dir_img(10,"em.png","South East North", 1) + dirsel += "

          " + else + dirsel+={" +

          + + +
          + + +
          + + +
          + + +

          + "} + if(PIPE_UNARY) // Stuff with four directions - includes pumps etc. + if(preview) + user << browse_rsc(new /icon(preview, dir=NORTH), "n.png") + user << browse_rsc(new /icon(preview, dir=EAST), "e.png") + user << browse_rsc(new /icon(preview, dir=SOUTH), "s.png") + user << browse_rsc(new /icon(preview, dir=WEST), "w.png") + + dirsel += "

          " + dirsel += render_dir_img(NORTH,"n.png","North") + dirsel += render_dir_img(EAST, "e.png","East") + dirsel += render_dir_img(SOUTH,"s.png","South") + dirsel += render_dir_img(WEST, "w.png","West") + dirsel += "

          " + else + dirsel+={" +

          + + + + +

          + "} + if(PIPE_QUAD) // Single icon_state (eg 4-way manifolds) + if(preview) + user << browse_rsc(new /icon(preview), "pipe.png") + + dirsel += "

          " + dirsel += render_dir_img(1,"pipe.png","Pipe") + dirsel += "

          " + else + dirsel+={" +

          + +

          + "} + + + var/datsytle = {" +"} + + dat = datsytle + dirsel + dat + + var/datum/browser/popup = new(user, "pipedispenser", name, 300, 550) + popup.set_content(dat) + popup.open() + return + +/obj/item/weapon/pipe_dispenser/Topic(href, href_list) + if(!usr.canUseTopic(src)) + usr << browse(null, "window=pipedispenser") + return + usr.set_machine(src) + src.add_fingerprint(usr) + if(href_list["screen"]) + screen = text2num(href_list["screen"]) + show_menu(usr) + + if(href_list["setdir"]) + p_dir= text2num(href_list["setdir"]) + p_flipped = text2num(href_list["flipped"]) + show_menu(usr) + + if(href_list["eatpipes"]) + p_class = EATING_MODE + p_conntype=-1 + p_dir=1 + src.spark_system.start() + playsound(get_turf(src), 'sound/effects/pop.ogg', 50, 0) + show_menu(usr) + + if(href_list["paintpipes"]) + p_class = PAINT_MODE + p_conntype = -1 + p_dir = 1 + src.spark_system.start() + playsound(get_turf(src), 'sound/effects/pop.ogg', 50, 0) + show_menu(usr) + + if(href_list["set_color"]) + paint_color = href_list["set_color"] + src.spark_system.start() + playsound(get_turf(src), 'sound/effects/pop.ogg', 50, 0) + show_menu(usr) + + if(href_list["makepipe"]) + p_type = text2path(href_list["makepipe"]) + p_dir = text2num(href_list["dir"]) + p_conntype = text2num(href_list["type"]) + p_class = ATMOS_MODE + src.spark_system.start() + playsound(get_turf(src), 'sound/effects/pop.ogg', 50, 0) + show_menu(usr) + + if(href_list["makemeter"]) + p_class = METER_MODE + p_conntype = -1 + p_dir = 1 + src.spark_system.start() + playsound(get_turf(src), 'sound/effects/pop.ogg', 50, 0) + show_menu(usr) + + if(href_list["dmake"]) + p_type = text2num(href_list["dmake"]) + p_conntype = text2num(href_list["type"]) + p_dir = 1 + p_class = DISPOSALS_MODE + src.spark_system.start() + playsound(get_turf(src), 'sound/effects/pop.ogg', 50, 0) + show_menu(usr) + + +/obj/item/weapon/pipe_dispenser/afterattack(atom/A, mob/user) + if(!in_range(A,user) || loc != user) + return 0 + + if(!user.IsAdvancedToolUser()) + user << "You don't have the dexterity to do this!" + return 0 + + if(istype(A,/area/shuttle)||istype(A,/turf/open/space/transit)) + return 0 + + //So that changing the menu settings doesn't affect the pipes already being built. + var/queued_p_type = p_type + var/queued_p_dir = p_dir + var/queued_p_flipped = p_flipped + + switch(p_class) + if(PAINT_MODE) // Paint pipes + if(!istype(A,/obj/machinery/atmospherics/pipe)) + // Avoid spewing errors about invalid mode -2 when clicking on stuff that aren't pipes. + user << "\The [src]'s error light flickers! Perhaps you need to only use it on pipes and pipe meters?" + return 0 + var/obj/machinery/atmospherics/pipe/P = A + playsound(get_turf(src), 'sound/machines/click.ogg', 50, 1) + P.add_atom_colour(paint_colors[paint_color], FIXED_COLOUR_PRIORITY) + P.pipe_color = paint_colors[paint_color] + P.stored.add_atom_colour(paint_colors[paint_color], FIXED_COLOUR_PRIORITY) + user.visible_message("[user] paints \the [P] [paint_color].","You paint \the [P] [paint_color].") + //P.update_icon() + P.update_node_icon() + return 1 + if(EATING_MODE) // Eating pipes + // Must click on an actual pipe or meter. + if(istype(A,/obj/item/pipe) || istype(A,/obj/item/pipe_meter) || istype(A,/obj/structure/disposalconstruct)) + user << "You start destroying pipe..." + playsound(get_turf(src), 'sound/machines/click.ogg', 50, 1) + if(do_after(user, 2, target = A)) + activate() + qdel(A) + return 1 + return 0 + + // Avoid spewing errors about invalid mode -1 when clicking on stuff that aren't pipes. + user << "The [src]'s error light flickers! Perhaps you need to only use it on pipes and pipe meters?" + return 0 + if(ATMOS_MODE) + if(!isturf(A)) + user << "The [src]'s error light flickers!" + return 0 + user << "You start building pipes..." + playsound(get_turf(src), 'sound/machines/click.ogg', 50, 1) + if(do_after(user, 2, target = A)) + activate() + var/obj/item/pipe/P = new (A, pipe_type=queued_p_type, dir=queued_p_dir) + P.flipped = queued_p_flipped + P.update() + P.add_fingerprint(usr) + return 1 + return 0 + + if(METER_MODE) + if(!isturf(A)) + user << "The [src]'s error light flickers!" + return 0 + user << "You start building meter..." + playsound(get_turf(src), 'sound/machines/click.ogg', 50, 1) + if(do_after(user, 2, target = A)) + activate() + new /obj/item/pipe_meter(A) + return 1 + return 0 + + if(DISPOSALS_MODE) + if(!isturf(A) || is_anchored_dense_turf(A)) + user << "The [src]'s error light flickers!" + return 0 + user << "You start building pipes..." + playsound(get_turf(src), 'sound/machines/click.ogg', 50, 1) + if(do_after(user, 20, target = A)) + var/obj/structure/disposalconstruct/C = new (A, queued_p_type ,queued_p_dir) + + if(!C.can_place()) + user << "There's not enough room to build that here!" + qdel(C) + return 0 + + activate() + + C.add_fingerprint(usr) + C.update_icon() + return 1 + return 0 + else + ..() + return 0 + + +/obj/item/weapon/pipe_dispenser/proc/activate() + playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1) + +#undef PIPE_BINARY +#undef PIPE_BENT +#undef PIPE_TRINARY +#undef PIPE_TRIN_M +#undef PIPE_UNARY +#undef PIPE_QUAD +#undef PAINT_MODE +#undef EATING_MODE +#undef ATMOS_MODE +#undef METER_MODE +#undef DISPOSALS_MODE +#undef CATEGORY_ATMOS +#undef CATEGORY_DISPOSALS diff --git a/code/game/objects/items/weapons/RSF.dm b/code/game/objects/items/weapons/RSF.dm new file mode 100644 index 0000000..880c781 --- /dev/null +++ b/code/game/objects/items/weapons/RSF.dm @@ -0,0 +1,188 @@ +/* +CONTAINS: +RSF + +*/ +/obj/item/weapon/rsf + name = "\improper Rapid-Service-Fabricator" + desc = "A device used to rapidly deploy service items." + icon = 'icons/obj/tools.dmi' + icon_state = "rcd" + opacity = 0 + density = 0 + anchored = 0 + flags = NOBLUDGEON + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) + var/matter = 0 + var/mode = 1 + w_class = 3 + +/obj/item/weapon/rsf/New() + desc = "A RSF. It currently holds [matter]/30 fabrication-units." + return + +/obj/item/weapon/rsf/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/weapon/rcd_ammo)) + if ((matter + 10) > 30) + user << "The RSF can't hold any more matter." + return + qdel(W) + matter += 10 + playsound(src.loc, 'sound/machines/click.ogg', 10, 1) + user << "The RSF now holds [matter]/30 fabrication-units." + desc = "A RSF. It currently holds [matter]/30 fabrication-units." + else + return ..() + +/obj/item/weapon/rsf/attack_self(mob/user) + playsound(src.loc, 'sound/effects/pop.ogg', 50, 0) + if (mode == 1) + mode = 2 + user << "Changed dispensing mode to 'Drinking Glass'" + return + if (mode == 2) + mode = 3 + user << "Changed dispensing mode to 'Paper'" + return + if (mode == 3) + mode = 4 + user << "Changed dispensing mode to 'Pen'" + return + if (mode == 4) + mode = 5 + user << "Changed dispensing mode to 'Dice Pack'" + return + if (mode == 5) + mode = 6 + user << "Changed dispensing mode to 'Cigarette'" + return + if (mode == 6) + mode = 1 + user << "Changed dispensing mode to 'Dosh'" + return + // Change mode + +/obj/item/weapon/rsf/afterattack(atom/A, mob/user, proximity) + if(!proximity) + return + if (!(istype(A, /obj/structure/table) || isfloorturf(A))) + return + + if(matter < 1) + user << "\The [src] doesn't have enough matter left." + return + if(iscyborg(user)) + var/mob/living/silicon/robot/R = user + if(!R.cell || R.cell.charge < 200) + user << "You do not have enough power to use [src]." + return + + var/turf/T = get_turf(A) + playsound(src.loc, 'sound/machines/click.ogg', 10, 1) + switch(mode) + if(1) + user << "Dispensing Dosh..." + new /obj/item/stack/spacecash/c10(T) + use_matter(200, user) + if(2) + user << "Dispensing Drinking Glass..." + new /obj/item/weapon/reagent_containers/food/drinks/drinkingglass(T) + use_matter(20, user) + if(3) + user << "Dispensing Paper Sheet..." + new /obj/item/weapon/paper(T) + use_matter(10, user) + if(4) + user << "Dispensing Pen..." + new /obj/item/weapon/pen(T) + use_matter(50, user) + if(5) + user << "Dispensing Dice Pack..." + new /obj/item/weapon/storage/pill_bottle/dice(T) + use_matter(200, user) + if(6) + user << "Dispensing Cigarette..." + new /obj/item/clothing/mask/cigarette(T) + use_matter(10, user) + +/obj/item/weapon/rsf/proc/use_matter(charge, mob/user) + if (iscyborg(user)) + var/mob/living/silicon/robot/R = user + R.cell.charge -= charge + else + matter-- + user << "The RSF now holds [matter]/30 fabrication-units." + desc = "A RSF. It currently holds [matter]/30 fabrication-units." + +/obj/item/weapon/cookiesynth + name = "Cookie Synthesizer" + desc = "A self-recharging device used to rapidly deploy cookies." + icon = 'icons/obj/tools.dmi' + icon_state = "rcd" + var/matter = 10 + var/toxin = 0 + var/cooldown = 0 + var/cooldowndelay = 10 + var/emagged = 0 + w_class = 3 + +/obj/item/weapon/cookiesynth/New() + desc = "A self recharging cookie fabricator. It currently holds [matter]/10 cookie-units." + +/obj/item/weapon/cookiesynth/attackby() + return + +/obj/item/weapon/cookiesynth/emag_act(mob/user) + emagged = !emagged + if(emagged) + user << "You short out the [src]'s reagent safety checker!" + else + user << "You reset the [src]'s reagent safety checker!" + toxin = 0 + +/obj/item/weapon/cookiesynth/attack_self(mob/user) + var/mob/living/silicon/robot/P = null + if(iscyborg(user)) + P = user + if(emagged&&!toxin) + toxin = 1 + user << "Cookie Synthesizer Hacked" + else if(P.emagged&&!toxin) + toxin = 1 + user << "Cookie Synthesizer Hacked" + else + toxin = 0 + user << "Cookie Synthesizer Reset" + +/obj/item/weapon/cookiesynth/process() + if (matter < 10) + matter++ + +/obj/item/weapon/cookiesynth/afterattack(atom/A, mob/user, proximity) + if(cooldown > world.time) + return + if(!proximity) + return + if (!(istype(A, /obj/structure/table) || isfloorturf(A))) + return + if(matter < 1) + user << "The [src] doesn't have enough matter left. Wait for it to recharge!" + return + if(iscyborg(user)) + var/mob/living/silicon/robot/R = user + if(!R.cell || R.cell.charge < 400) + user << "You do not have enough power to use [src]." + return + var/turf/T = get_turf(A) + playsound(src.loc, 'sound/machines/click.ogg', 10, 1) + user << "Fabricating Cookie.." + var/obj/item/weapon/reagent_containers/food/snacks/cookie/S = new /obj/item/weapon/reagent_containers/food/snacks/cookie(T) + if(toxin) + S.reagents.add_reagent("chloralhydrate2", 10) + if (iscyborg(user)) + var/mob/living/silicon/robot/R = user + R.cell.charge -= 100 + else + matter-- + desc = "A self recharging cookie fabricator. It currently holds [matter]/10 cookie-units." + cooldown = world.time + cooldowndelay diff --git a/code/game/objects/items/weapons/airlock_painter.dm b/code/game/objects/items/weapons/airlock_painter.dm new file mode 100644 index 0000000..1004421 --- /dev/null +++ b/code/game/objects/items/weapons/airlock_painter.dm @@ -0,0 +1,127 @@ +/obj/item/weapon/airlock_painter + name = "airlock painter" + desc = "An advanced autopainter preprogrammed with several paintjobs for airlocks. Use it on an airlock during or after construction to change the paintjob." + icon = 'icons/obj/objects.dmi' + icon_state = "paint sprayer" + item_state = "paint sprayer" + + w_class = 2 + + materials = list(MAT_METAL=50, MAT_GLASS=50) + origin_tech = "engineering=2" + + flags = CONDUCT | NOBLUDGEON + slot_flags = SLOT_BELT + + var/obj/item/device/toner/ink = null + +/obj/item/weapon/airlock_painter/New() + ..() + ink = new /obj/item/device/toner(src) + +//This proc doesn't just check if the painter can be used, but also uses it. +//Only call this if you are certain that the painter will be used right after this check! +/obj/item/weapon/airlock_painter/proc/use(mob/user) + if(can_use(user)) + ink.charges-- + playsound(src.loc, 'sound/effects/spray2.ogg', 50, 1) + return 1 + else + return 0 + +//This proc only checks if the painter can be used. +//Call this if you don't want the painter to be used right after this check, for example +//because you're expecting user input. +/obj/item/weapon/airlock_painter/proc/can_use(mob/user) + if(!ink) + user << "There is no toner cartridge installed in [src]!" + return 0 + else if(ink.charges < 1) + user << "[src] is out of ink!" + return 0 + else + return 1 + +/obj/item/weapon/airlock_painter/suicide_act(mob/user) + var/obj/item/organ/lungs/L = user.getorganslot("lungs") + + if(can_use(user) && L) + user.visible_message("[user] is inhaling toner from [src]! It looks like [user.p_theyre()] trying to commit suicide!") + use(user) + + // Once you've inhaled the toner, you throw up your lungs + // and then die. + + // Find out if there is an open turf in front of us, + // and if not, pick the turf we are standing on. + var/turf/T = get_step(get_turf(src), user.dir) + if(!isopenturf(T)) + T = get_turf(src) + + // they managed to lose their lungs between then and + // now. Good job. + if(!L) + return OXYLOSS + + L.Remove(user) + + // make some colorful reagent, and apply it to the lungs + L.create_reagents(10) + L.reagents.add_reagent("colorful_reagent", 10) + L.reagents.reaction(L, TOUCH, 1) + + // TODO maybe add some colorful vomit? + + user.visible_message("[user] vomits out their [L]!") + playsound(user.loc, 'sound/effects/splat.ogg', 50, 1) + + L.forceMove(T) + + return (TOXLOSS|OXYLOSS) + else if(can_use(user) && !L) + user.visible_message("[user] is spraying toner on [user.p_them()]self from [src]! It looks like [user.p_theyre()] trying to commit suicide.") + user.reagents.add_reagent("colorful_reagent", 1) + user.reagents.reaction(user, TOUCH, 1) + return TOXLOSS + + else + user.visible_message("[user] is trying to inhale toner from [src]! It might be a suicide attempt if [src] had any toner.") + return SHAME + + +/obj/item/weapon/airlock_painter/examine(mob/user) + ..() + if(!ink) + user << "It doesn't have a toner cartridge installed." + return + var/ink_level = "high" + if(ink.charges < 1) + ink_level = "empty" + else if((ink.charges/ink.max_charges) <= 0.25) //25% + ink_level = "low" + else if((ink.charges/ink.max_charges) > 1) //Over 100% (admin var edit) + ink_level = "dangerously high" + user << "Its ink levels look [ink_level]." + + +/obj/item/weapon/airlock_painter/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/device/toner)) + if(ink) + user << "[src] already contains \a [ink]." + return + if(!user.unEquip(W)) + return + W.loc = src + user << "You install [W] into [src]." + ink = W + playsound(src.loc, 'sound/machines/click.ogg', 50, 1) + else + return ..() + +/obj/item/weapon/airlock_painter/attack_self(mob/user) + if(ink) + playsound(src.loc, 'sound/machines/click.ogg', 50, 1) + ink.loc = user.loc + user.put_in_hands(ink) + user << "You remove [ink] from [src]." + ink = null diff --git a/code/game/objects/items/weapons/cards_ids.dm b/code/game/objects/items/weapons/cards_ids.dm new file mode 100644 index 0000000..451e2e6 --- /dev/null +++ b/code/game/objects/items/weapons/cards_ids.dm @@ -0,0 +1,294 @@ +/* Cards + * Contains: + * DATA CARD + * ID CARD + * FINGERPRINT CARD HOLDER + * FINGERPRINT CARD + */ + + + +/* + * DATA CARDS - Used for the teleporter + */ +/obj/item/weapon/card + name = "card" + desc = "Does card things." + icon = 'icons/obj/card.dmi' + w_class = 1 + + var/list/files = list() + +/obj/item/weapon/card/data + name = "data disk" + desc = "A disk of data." + icon_state = "data" + var/function = "storage" + var/data = "null" + var/special = null + item_state = "card-id" + +/obj/item/weapon/card/data/verb/label(t as text) + set name = "Label Disk" + set category = "Object" + set src in usr + + if(usr.stat || !usr.canmove || usr.restrained()) + return + + if (t) + src.name = "data disk- '[t]'" + else + src.name = "data disk" + src.add_fingerprint(usr) + return + +/* + * ID CARDS + */ +/obj/item/weapon/card/emag + desc = "It's a card with a magnetic strip attached to some circuitry." + name = "cryptographic sequencer" + icon_state = "emag" + item_state = "card-id" + origin_tech = "magnets=2;syndicate=2" + flags = NOBLUDGEON + var/prox_check = TRUE //If the emag requires you to be in range + +/obj/item/weapon/card/emag/bluespace + name = "bluespace cryptographic sequencer" + desc = "It's a blue card with a magnetic strip attached to some circuitry. It appears to have some sort of transmitter attached to it." + color = rgb(40, 130, 255) + origin_tech = "bluespace=4;magnets=4;syndicate=5" + prox_check = FALSE + +/obj/item/weapon/card/emag/attack() + return + +/obj/item/weapon/card/emag/afterattack(atom/target, mob/user, proximity) + var/atom/A = target + if(!proximity && prox_check) + return + A.emag_act(user) + +/obj/item/weapon/card/id + name = "identification card" + desc = "A card used to provide ID and determine access across the station." + icon_state = "id" + item_state = "card-id" + slot_flags = SLOT_ID + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 100) + resistance_flags = FIRE_PROOF | ACID_PROOF + var/mining_points = 0 //For redeeming at mining equipment vendors + var/list/access = list() + var/registered_name = null // The name registered_name on the card + var/assignment = null + var/dorm = 0 // determines if this ID has claimed a dorm already + +/obj/item/weapon/card/id/attack_self(mob/user) + user.visible_message("[user] shows you: \icon[src] [src.name].", \ + "You show \the [src.name].") + src.add_fingerprint(user) + return + +/obj/item/weapon/card/id/examine(mob/user) + ..() + if(mining_points) + user << "There's [mining_points] mining equipment redemption point\s loaded onto this card." + +/obj/item/weapon/card/id/GetAccess() + return access + +/obj/item/weapon/card/id/GetID() + return src + +/* +Usage: +update_label() + Sets the id name to whatever registered_name and assignment is + +update_label("John Doe", "Clowny") + Properly formats the name and occupation and sets the id name to the arguments +*/ +/obj/item/weapon/card/id/proc/update_label(newname, newjob) + if(newname || newjob) + name = "[(!newname) ? "identification card" : "[newname]'s ID Card"][(!newjob) ? "" : " ([newjob])"]" + return + + name = "[(!registered_name) ? "identification card" : "[registered_name]'s ID Card"][(!assignment) ? "" : " ([assignment])"]" + +/obj/item/weapon/card/id/silver + name = "silver identification card" + desc = "A silver card which shows honour and dedication." + icon_state = "silver" + item_state = "silver_id" + +/obj/item/weapon/card/id/gold + name = "gold identification card" + desc = "A golden card which shows power and might." + icon_state = "gold" + item_state = "gold_id" + +/obj/item/weapon/card/id/syndicate + name = "agent card" + access = list(access_maint_tunnels, access_syndicate) + origin_tech = "syndicate=1" + +/obj/item/weapon/card/id/syndicate/New() + ..() + var/datum/action/item_action/chameleon/change/chameleon_action = new(src) + chameleon_action.chameleon_type = /obj/item/weapon/card/id + chameleon_action.chameleon_name = "ID Card" + chameleon_action.initialize_disguises() + +/obj/item/weapon/card/id/syndicate/afterattack(obj/item/weapon/O, mob/user, proximity) + if(!proximity) + return + if(istype(O, /obj/item/weapon/card/id)) + var/obj/item/weapon/card/id/I = O + src.access |= I.access + if(isliving(user) && user.mind) + if(user.mind.special_role) + usr << "The card's microscanners activate as you pass it over the ID, copying its access." + +/obj/item/weapon/card/id/syndicate/attack_self(mob/user) + if(isliving(user) && user.mind) + if(user.mind.special_role) + if(alert(user, "Action", "Agent ID", "Show", "Forge") == "Forge") + var t = copytext(sanitize(input(user, "What name would you like to put on this card?", "Agent card name", registered_name ? registered_name : (ishuman(user) ? user.real_name : user.name))as text | null),1,26) + if(!t || t == "Unknown" || t == "floor" || t == "wall" || t == "r-wall") //Same as mob/new_player/prefrences.dm + if (t) + alert("Invalid name.") + return + registered_name = t + + var u = copytext(sanitize(input(user, "What occupation would you like to put on this card?\nNote: This will not grant any access levels other than Maintenance.", "Agent card job assignment", "Assistant")as text | null),1,MAX_MESSAGE_LEN) + if(!u) + registered_name = "" + return + assignment = u + update_label() + user << "You successfully forge the ID card." + return + ..() + +/obj/item/weapon/card/id/syndicate_command + name = "syndicate ID card" + desc = "An ID straight from the Syndicate." + registered_name = "Syndicate" + assignment = "Syndicate Overlord" + access = list(access_syndicate) + +/obj/item/weapon/card/id/captains_spare + name = "captain's spare ID" + desc = "The spare ID of the High Lord himself." + icon_state = "gold" + item_state = "gold_id" + registered_name = "Captain" + assignment = "Captain" + +/obj/item/weapon/card/id/captains_spare/New() + var/datum/job/captain/J = new/datum/job/captain + access = J.get_access() + ..() + +/obj/item/weapon/card/id/centcom + name = "\improper Centcom ID" + desc = "An ID straight from Cent. Com." + icon_state = "centcom" + registered_name = "Central Command" + assignment = "General" + +/obj/item/weapon/card/id/centcom/New() + access = get_all_centcom_access() + ..() + +/obj/item/weapon/card/id/ert + name = "\improper Centcom ID" + desc = "A ERT ID card" + icon_state = "centcom" + registered_name = "Emergency Response Team Commander" + assignment = "Emergency Response Team Commander" + +/obj/item/weapon/card/id/ert/New() + access = get_all_accesses()+get_ert_access("commander")-access_change_ids + +/obj/item/weapon/card/id/ert/Security + registered_name = "Security Response Officer" + assignment = "Security Response Officer" + +/obj/item/weapon/card/id/ert/Security/New() + access = get_all_accesses()+get_ert_access("sec")-access_change_ids + +/obj/item/weapon/card/id/ert/Engineer + registered_name = "Engineer Response Officer" + assignment = "Engineer Response Officer" + +/obj/item/weapon/card/id/ert/Engineer/New() + access = get_all_accesses()+get_ert_access("eng")-access_change_ids + +/obj/item/weapon/card/id/ert/Medical + registered_name = "Medical Response Officer" + assignment = "Medical Response Officer" + +/obj/item/weapon/card/id/ert/Medical/New() + access = get_all_accesses()+get_ert_access("med")-access_change_ids + +/obj/item/weapon/card/id/prisoner + name = "prisoner ID card" + desc = "You are a number, you are not a free man." + icon_state = "orange" + item_state = "orange-id" + assignment = "Prisoner" + registered_name = "Scum" + var/goal = 0 //How far from freedom? + var/points = 0 + +/obj/item/weapon/card/id/prisoner/attack_self(mob/user) + usr << "You have accumulated [points] out of the [goal] points you need for freedom." + +/obj/item/weapon/card/id/prisoner/one + name = "Prisoner #13-001" + registered_name = "Prisoner #13-001" + +/obj/item/weapon/card/id/prisoner/two + name = "Prisoner #13-002" + registered_name = "Prisoner #13-002" + +/obj/item/weapon/card/id/prisoner/three + name = "Prisoner #13-003" + registered_name = "Prisoner #13-003" + +/obj/item/weapon/card/id/prisoner/four + name = "Prisoner #13-004" + registered_name = "Prisoner #13-004" + +/obj/item/weapon/card/id/prisoner/five + name = "Prisoner #13-005" + registered_name = "Prisoner #13-005" + +/obj/item/weapon/card/id/prisoner/six + name = "Prisoner #13-006" + registered_name = "Prisoner #13-006" + +/obj/item/weapon/card/id/prisoner/seven + name = "Prisoner #13-007" + registered_name = "Prisoner #13-007" + +/obj/item/weapon/card/id/mining + name = "mining ID" + access = list(access_mining, access_mining_station, access_mineral_storeroom) + +/obj/item/weapon/card/id/away + name = "a perfectly generic identification card" + desc = "A perfectly generic identification card. Looks like it could use some flavor." + access = list(access_away_general) + +/obj/item/weapon/card/id/away/hotel + name = "Staff ID" + desc = "A staff ID used to access the hotel's doors." + access = list(access_away_general, access_away_maint) + +/obj/item/weapon/card/id/away/hotel/securty + name = "Officer ID" + access = list(access_away_general, access_away_maint, access_away_sec) diff --git a/code/game/objects/items/weapons/chrono_eraser.dm b/code/game/objects/items/weapons/chrono_eraser.dm new file mode 100644 index 0000000..d7b83a2 --- /dev/null +++ b/code/game/objects/items/weapons/chrono_eraser.dm @@ -0,0 +1,261 @@ +#define CHRONO_BEAM_RANGE 3 +#define CHRONO_FRAME_COUNT 22 +/obj/item/weapon/chrono_eraser + name = "Timestream Eradication Device" + desc = "The result of outlawed time-bluespace research, this device is capable of wiping a being from the timestream. They never are, they never were, they never will be." + icon = 'icons/obj/chronos.dmi' + icon_state = "chronobackpack" + item_state = "backpack" + w_class = 4 + slot_flags = SLOT_BACK + slowdown = 1 + actions_types = list(/datum/action/item_action/equip_unequip_TED_Gun) + var/obj/item/weapon/gun/energy/chrono_gun/PA = null + var/list/erased_minds = list() //a collection of minds from the dead + +/obj/item/weapon/chrono_eraser/proc/pass_mind(datum/mind/M) + erased_minds += M + +/obj/item/weapon/chrono_eraser/dropped() + ..() + if(PA) + qdel(PA) + +/obj/item/weapon/chrono_eraser/Destroy() + dropped() + return ..() + +/obj/item/weapon/chrono_eraser/ui_action_click(mob/user) + if(iscarbon(user)) + var/mob/living/carbon/C = user + if(C.back == src) + if(PA) + qdel(PA) + else + PA = new(src) + user.put_in_hands(PA) + +/obj/item/weapon/chrono_eraser/item_action_slot_check(slot, mob/user) + if(slot == slot_back) + return 1 + +/obj/item/weapon/gun/energy/chrono_gun + name = "T.E.D. Projection Apparatus" + desc = "It's as if they never existed in the first place." + icon = 'icons/obj/chronos.dmi' + icon_state = "chronogun" + item_state = "chronogun" + w_class = 3 + flags = NODROP | DROPDEL + ammo_type = list(/obj/item/ammo_casing/energy/chrono_beam) + can_charge = 0 + fire_delay = 50 + var/obj/item/weapon/chrono_eraser/TED = null + var/obj/effect/chrono_field/field = null + var/turf/startpos = null + +/obj/item/weapon/gun/energy/chrono_gun/New(var/obj/item/weapon/chrono_eraser/T) + . = ..() + if(istype(T)) + TED = T + else //admin must have spawned it + TED = new(src.loc) + qdel(src) + +/obj/item/weapon/gun/energy/chrono_gun/update_icon() + return + +/obj/item/weapon/gun/energy/chrono_gun/process_fire() + if(field) + field_disconnect(field) + ..() + +/obj/item/weapon/gun/energy/chrono_gun/Destroy() + if(TED) + TED.PA = null + TED = null + if(field) + field_disconnect(field) + return ..() + +/obj/item/weapon/gun/energy/chrono_gun/proc/field_connect(obj/effect/chrono_field/F) + var/mob/living/user = src.loc + if(F.gun) + if(isliving(user) && F.captured) + user << "FAIL: [F.captured] already has an existing connection." + src.field_disconnect(F) + else + startpos = get_turf(src) + field = F + F.gun = src + if(isliving(user) && F.captured) + user << "Connection established with target: [F.captured]" + + +/obj/item/weapon/gun/energy/chrono_gun/proc/field_disconnect(obj/effect/chrono_field/F) + if(F && field == F) + var/mob/living/user = src.loc + if(F.gun == src) + F.gun = null + if(isliving(user) && F.captured) + user << "Disconnected from target: [F.captured]" + field = null + startpos = null + +/obj/item/weapon/gun/energy/chrono_gun/proc/field_check(obj/effect/chrono_field/F) + if(F) + if(field == F) + var/turf/currentpos = get_turf(src) + var/mob/living/user = src.loc + if((currentpos == startpos) && (field in view(CHRONO_BEAM_RANGE, currentpos)) && !user.lying && (user.stat == CONSCIOUS)) + return 1 + field_disconnect(F) + return 0 + +/obj/item/weapon/gun/energy/chrono_gun/proc/pass_mind(datum/mind/M) + if(TED) + TED.pass_mind(M) + + +/obj/item/projectile/energy/chrono_beam + name = "eradication beam" + icon_state = "chronobolt" + range = CHRONO_BEAM_RANGE + nodamage = 1 + var/obj/item/weapon/gun/energy/chrono_gun/gun = null + +/obj/item/projectile/energy/chrono_beam/fire() + gun = firer.get_active_held_item() + if(istype(gun)) + return ..() + else + return 0 + +/obj/item/projectile/energy/chrono_beam/on_hit(atom/target) + if(target && gun && isliving(target)) + var/obj/effect/chrono_field/F = new(target.loc, target, gun) + gun.field_connect(F) + + +/obj/item/ammo_casing/energy/chrono_beam + name = "eradication beam" + projectile_type = /obj/item/projectile/energy/chrono_beam + icon_state = "chronobolt" + e_cost = 0 + + +/obj/effect/chrono_field + name = "eradication field" + desc = "An aura of time-bluespace energy." + icon = 'icons/effects/effects.dmi' + icon_state = "chronofield" + density = 0 + anchored = 1 + blend_mode = BLEND_MULTIPLY + var/mob/living/captured = null + var/obj/item/weapon/gun/energy/chrono_gun/gun = null + var/tickstokill = 15 + var/image/mob_underlay = null + var/preloaded = 0 + var/RPpos = null + +/obj/effect/chrono_field/New(loc, var/mob/living/target, var/obj/item/weapon/gun/energy/chrono_gun/G) + if(target && isliving(target) && G) + target.loc = src + src.captured = target + var/icon/mob_snapshot = getFlatIcon(target) + var/icon/cached_icon = new() + + for(var/i=1, i<=CHRONO_FRAME_COUNT, i++) + var/icon/removing_frame = icon('icons/obj/chronos.dmi', "erasing", SOUTH, i) + var/icon/mob_icon = icon(mob_snapshot) + mob_icon.Blend(removing_frame, ICON_MULTIPLY) + cached_icon.Insert(mob_icon, "frame[i]") + + mob_underlay = new(cached_icon, "frame1") + update_icon() + + desc = initial(desc) + "
          It appears to contain [target.name]." + START_PROCESSING(SSobj, src) + +/obj/effect/chrono_field/Destroy() + if(gun && gun.field_check(src)) + gun.field_disconnect(src) + return ..() + +/obj/effect/chrono_field/update_icon() + var/ttk_frame = 1 - (tickstokill / initial(tickstokill)) + ttk_frame = Clamp(Ceiling(ttk_frame * CHRONO_FRAME_COUNT), 1, CHRONO_FRAME_COUNT) + if(ttk_frame != RPpos) + RPpos = ttk_frame + mob_underlay.icon_state = "frame[RPpos]" + underlays = list() //hack: BYOND refuses to update the underlay to match the icon_state otherwise + underlays += mob_underlay + +/obj/effect/chrono_field/process() + if(captured) + if(tickstokill > initial(tickstokill)) + for(var/atom/movable/AM in contents) + AM.loc = loc + qdel(src) + else if(tickstokill <= 0) + captured << "As the last essence of your being is erased from time, you begin to re-experience your most enjoyable memory. You feel happy..." + var/mob/dead/observer/ghost = captured.ghostize(1) + if(captured.mind) + if(ghost) + ghost.mind = null + if(gun) + gun.pass_mind(captured.mind) + qdel(captured) + qdel(src) + else + captured.Paralyse(4) + if(captured.loc != src) + captured.loc = src + update_icon() + if(gun) + if(gun.field_check(src)) + tickstokill-- + else + gun = null + return .() + else + tickstokill++ + else + qdel(src) + +/obj/effect/chrono_field/bullet_act(obj/item/projectile/P) + if(istype(P, /obj/item/projectile/energy/chrono_beam)) + var/obj/item/projectile/energy/chrono_beam/beam = P + var/obj/item/weapon/gun/energy/chrono_gun/Pgun = beam.gun + if(Pgun && istype(Pgun)) + Pgun.field_connect(src) + else + return 0 + +/obj/effect/chrono_field/assume_air() + return 0 + +/obj/effect/chrono_field/return_air() //we always have nominal air and temperature + var/datum/gas_mixture/GM = new + GM.assert_gases("o2","n2") + GM.gases["o2"][MOLES] = MOLES_O2STANDARD + GM.gases["n2"][MOLES] = MOLES_N2STANDARD + GM.temperature = T20C + return GM + +/obj/effect/chrono_field/Move() + return + +/obj/effect/chrono_field/singularity_act() + return + +/obj/effect/chrono_field/ex_act() + return + +/obj/effect/chrono_field/blob_act(obj/structure/blob/B) + return + + +#undef CHRONO_BEAM_RANGE +#undef CHRONO_FRAME_COUNT diff --git a/code/game/objects/items/weapons/cigs_lighters.dm b/code/game/objects/items/weapons/cigs_lighters.dm new file mode 100644 index 0000000..0150f4a --- /dev/null +++ b/code/game/objects/items/weapons/cigs_lighters.dm @@ -0,0 +1,765 @@ +//cleansed 9/15/2012 17:48 + +/* +CONTAINS: +MATCHES +CIGARETTES +CIGARS +SMOKING PIPES +CHEAP LIGHTERS +ZIPPO + +CIGARETTE PACKETS ARE IN FANCY.DM +*/ + +/////////// +//MATCHES// +/////////// +/obj/item/weapon/match + name = "match" + desc = "A simple match stick, used for lighting fine smokables." + icon = 'icons/obj/cigarettes.dmi' + icon_state = "match_unlit" + var/lit = FALSE + var/burnt = FALSE + var/smoketime = 5 + w_class = 1 + origin_tech = "materials=1" + heat = 1000 + +/obj/item/weapon/match/process() + smoketime-- + if(smoketime < 1) + matchburnout() + else + open_flame(heat) + +/obj/item/weapon/match/fire_act(exposed_temperature, exposed_volume) + matchignite() + +/obj/item/weapon/match/proc/matchignite() + if(!lit && !burnt) + lit = TRUE + icon_state = "match_lit" + damtype = "fire" + force = 3 + hitsound = 'sound/items/welder.ogg' + item_state = "cigon" + name = "lit match" + desc = "A match. This one is lit." + attack_verb = list("burnt","singed") + START_PROCESSING(SSobj, src) + update_icon() + +/obj/item/weapon/match/proc/matchburnout() + if(lit) + lit = FALSE + burnt = TRUE + damtype = "brute" + force = initial(force) + icon_state = "match_burnt" + item_state = "cigoff" + name = "burnt match" + desc = "A match. This one has seen better days." + attack_verb = list("flicked") + STOP_PROCESSING(SSobj, src) + +/obj/item/weapon/match/dropped(mob/user) + matchburnout() + . = ..() + +/obj/item/weapon/match/attack(mob/living/carbon/M, mob/living/carbon/user) + if(!isliving(M)) + return + if(lit && M.IgniteMob()) + message_admins("[key_name_admin(user)] set [key_name_admin(M)] on fire") + log_game("[key_name(user)] set [key_name(M)] on fire") + var/obj/item/clothing/mask/cigarette/cig = help_light_cig(M) + if(lit && cig && user.a_intent == "help") + if(cig.lit) + user << "The [cig.name] is already lit." + if(M == user) + cig.attackby(src, user) + else + cig.light("[user] holds the [name] out for [M], and lights the [cig.name].") + else + ..() + +/obj/item/proc/help_light_cig(mob/living/M) + var/mask_item = M.get_item_by_slot(slot_wear_mask) + if(istype(mask_item, /obj/item/clothing/mask/cigarette)) + return mask_item + +/obj/item/weapon/match/is_hot() + return lit * heat + +////////////////// +//FINE SMOKABLES// +////////////////// +/obj/item/clothing/mask/cigarette + name = "cigarette" + desc = "A roll of tobacco and nicotine." + icon_state = "cigoff" + throw_speed = 0.5 + item_state = "cigoff" + w_class = 1 + body_parts_covered = null + var/lit = 0 + var/icon_on = "cigon" //Note - these are in masks.dmi not in cigarette.dmi + var/icon_off = "cigoff" + var/type_butt = /obj/item/weapon/cigbutt + var/lastHolder = null + var/smoketime = 300 + var/chem_volume = 30 + heat = 1000 + +/obj/item/clothing/mask/cigarette/suicide_act(mob/user) + user.visible_message("[user] is huffing [src] as quickly as [user.p_they()] can! It looks like [user.p_theyre()] trying to give [user.p_them()]self cancer.") + return (TOXLOSS|OXYLOSS) + +/obj/item/clothing/mask/cigarette/New() + ..() + create_reagents(chem_volume) + reagents.set_reacting(FALSE) // so it doesn't react until you light it + reagents.add_reagent("nicotine", 15) + +/obj/item/clothing/mask/cigarette/Destroy() + if(reagents) + qdel(reagents) + STOP_PROCESSING(SSobj, src) + . = ..() + +/obj/item/clothing/mask/cigarette/attackby(obj/item/weapon/W, mob/user, params) + if(!lit && smoketime > 0) + var/lighting_text = W.ignition_effect(src, user) + if(lighting_text) + light(lighting_text) + else + return ..() + +/obj/item/clothing/mask/cigarette/afterattack(obj/item/weapon/reagent_containers/glass/glass, mob/user, proximity) + if(!proximity || lit) //can't dip if cigarette is lit (it will heat the reagents in the glass instead) + return + if(istype(glass)) //you can dip cigarettes into beakers + var/transfered = glass.reagents.trans_to(src, chem_volume) + if(transfered) //if reagents were transfered, show the message + user << "You dip \the [src] into \the [glass]." + else //if not, either the beaker was empty, or the cigarette was full + if(!glass.reagents.total_volume) + user << "[glass] is empty." + else + user << "[src] is full." + + +/obj/item/clothing/mask/cigarette/proc/light(flavor_text = null) + if(lit) + return + + lit = TRUE + name = "lit [name]" + attack_verb = list("burnt", "singed") + hitsound = 'sound/items/welder.ogg' + damtype = "fire" + force = 4 + playsound(src, 'sound/items/cig_light.ogg', 75, 1, -1) + if(reagents.get_reagent_amount("plasma")) // the plasma explodes when exposed to fire + var/datum/effect_system/reagents_explosion/e = new() + e.set_up(round(reagents.get_reagent_amount("plasma") / 2.5, 1), get_turf(src), 0, 0) + e.start() + if(ismob(loc)) + var/mob/M = loc + M.unEquip(src, 1) + qdel(src) + return + if(reagents.get_reagent_amount("welding_fuel")) // the fuel explodes, too, but much less violently + var/datum/effect_system/reagents_explosion/e = new() + e.set_up(round(reagents.get_reagent_amount("welding_fuel") / 5, 1), get_turf(src), 0, 0) + e.start() + if(ismob(loc)) + var/mob/M = loc + M.unEquip(src, 1) + qdel(src) + return + // allowing reagents to react after being lit + reagents.set_reacting(TRUE) + reagents.handle_reactions() + icon_state = icon_on + item_state = icon_on + if(flavor_text) + var/turf/T = get_turf(src) + T.visible_message(flavor_text) + START_PROCESSING(SSobj, src) + + //can't think of any other way to update the overlays :< + if(ismob(loc)) + var/mob/M = loc + M.update_inv_wear_mask() + M.update_inv_hands() + + +/obj/item/clothing/mask/cigarette/proc/handle_reagents() + if(reagents.total_volume) + if(iscarbon(loc)) + var/mob/living/carbon/C = loc + if (src == C.wear_mask) // if it's in the human/monkey mouth, transfer reagents to the mob + if(prob(15)) // so it's not an instarape in case of acid + var/fraction = min(REAGENTS_METABOLISM/reagents.total_volume, 1) + reagents.reaction(C, INGEST, fraction) + reagents.trans_to(C, REAGENTS_METABOLISM) + return + reagents.remove_any(REAGENTS_METABOLISM) + + +/obj/item/clothing/mask/cigarette/process() + var/turf/location = get_turf(src) + var/mob/living/M = loc + if(isliving(loc)) + M.IgniteMob() + smoketime-- + if(smoketime < 1) + new type_butt(location) + if(ismob(loc)) + M << "Your [name] goes out." + M.unEquip(src, 1) //un-equip it so the overlays can update //Force the un-equip so the overlays update + qdel(src) + return + open_flame() + if(reagents && reagents.total_volume) + handle_reagents() + +/obj/item/clothing/mask/cigarette/attack_self(mob/user) + if(lit) + user.visible_message("[user] calmly drops and treads on \the [src], putting it out instantly.") + new type_butt(user.loc) + new /obj/effect/decal/cleanable/ash(user.loc) + qdel(src) + . = ..() + +/obj/item/clothing/mask/cigarette/attack(mob/living/carbon/M, mob/living/carbon/user) + if(!istype(M)) + return ..() + var/obj/item/clothing/mask/cigarette/cig = help_light_cig(M) + if(lit && cig && user.a_intent == "help") + if(cig.lit) + user << "The [cig.name] is already lit." + if(M == user) + cig.attackby(src, user) + else + cig.light("[user] holds the [name] out for [M], and lights the [cig.name].") + else + return ..() + +/obj/item/clothing/mask/cigarette/fire_act(exposed_temperature, exposed_volume) + light() + +/obj/item/clothing/mask/cigarette/is_hot() + return lit * heat + +/obj/item/clothing/mask/cigarette/rollie + name = "rollie" + desc = "A roll of dried plant matter wrapped in thin paper." + icon_state = "spliffoff" + icon_on = "spliffon" + icon_off = "spliffoff" + type_butt = /obj/item/weapon/cigbutt/roach + throw_speed = 0.5 + item_state = "spliffoff" + smoketime = 180 + chem_volume = 50 + +/obj/item/clothing/mask/cigarette/rollie/New() + ..() + src.pixel_x = rand(-5, 5) + src.pixel_y = rand(-5, 5) + +/obj/item/clothing/mask/cigarette/rollie/trippy/New() + ..() + reagents.add_reagent("mushroomhallucinogen", 50) + light() + + +/obj/item/weapon/cigbutt/roach + name = "roach" + desc = "A manky old roach, or for non-stoners, a used rollup." + icon_state = "roach" + +/obj/item/weapon/cigbutt/roach/New() + ..() + src.pixel_x = rand(-5, 5) + src.pixel_y = rand(-5, 5) + + +//////////// +// CIGARS // +//////////// +/obj/item/clothing/mask/cigarette/cigar + name = "premium cigar" + desc = "A brown roll of tobacco and... well, you're not quite sure. This thing's huge!" + icon_state = "cigaroff" + icon_on = "cigaron" + icon_off = "cigaroff" + type_butt = /obj/item/weapon/cigbutt/cigarbutt + throw_speed = 0.5 + item_state = "cigaroff" + smoketime = 1500 + chem_volume = 40 + +/obj/item/clothing/mask/cigarette/cigar/cohiba + name = "\improper Cohiba Robusto cigar" + desc = "There's little more you could want from a cigar." + icon_state = "cigar2off" + icon_on = "cigar2on" + icon_off = "cigar2off" + smoketime = 2000 + chem_volume = 80 + + +/obj/item/clothing/mask/cigarette/cigar/havana + name = "premium Havanian cigar" + desc = "A cigar fit for only the best of the best." + icon_state = "cigar2off" + icon_on = "cigar2on" + icon_off = "cigar2off" + smoketime = 7200 + chem_volume = 50 + +/obj/item/weapon/cigbutt + name = "cigarette butt" + desc = "A manky old cigarette butt." + icon = 'icons/obj/clothing/masks.dmi' + icon_state = "cigbutt" + w_class = 1 + throwforce = 0 + +/obj/item/weapon/cigbutt/cigarbutt + name = "cigar butt" + desc = "A manky old cigar butt." + icon_state = "cigarbutt" + +///////////////// +//SMOKING PIPES// +///////////////// +/obj/item/clothing/mask/cigarette/pipe + name = "smoking pipe" + desc = "A pipe, for smoking. Probably made of meershaum or something." + icon_state = "pipeoff" + item_state = "pipeoff" + icon_on = "pipeon" //Note - these are in masks.dmi + icon_off = "pipeoff" + smoketime = 0 + chem_volume = 100 + var/packeditem = 0 + +/obj/item/clothing/mask/cigarette/pipe/New() + ..() + name = "empty [initial(name)]" + +/obj/item/clothing/mask/cigarette/pipe/Destroy() + if(reagents) + qdel(reagents) + STOP_PROCESSING(SSobj, src) + . = ..() + +/obj/item/clothing/mask/cigarette/pipe/process() + var/turf/location = get_turf(src) + smoketime-- + if(smoketime < 1) + new /obj/effect/decal/cleanable/ash(location) + if(ismob(loc)) + var/mob/living/M = loc + M << "Your [name] goes out." + lit = 0 + icon_state = icon_off + item_state = icon_off + M.update_inv_wear_mask() + packeditem = 0 + name = "empty [initial(name)]" + STOP_PROCESSING(SSobj, src) + return + open_flame() + if(reagents && reagents.total_volume) // check if it has any reagents at all + handle_reagents() + + +/obj/item/clothing/mask/cigarette/pipe/attackby(obj/item/O, mob/user, params) + if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/grown)) + var/obj/item/weapon/reagent_containers/food/snacks/grown/G = O + if(!packeditem) + if(G.dry == 1) + user << "You stuff [O] into [src]." + smoketime = 400 + packeditem = 1 + name = "[O.name]-packed [initial(name)]" + if(O.reagents) + O.reagents.trans_to(src, O.reagents.total_volume) + qdel(O) + else + user << "It has to be dried first!" + else + user << "It is already packed!" + else + var/lighting_text = O.ignition_effect(src,user) + if(lighting_text) + if(smoketime > 0) + light(lighting_text) + else + user << "There is nothing to smoke!" + else + return ..() + +/obj/item/clothing/mask/cigarette/pipe/attack_self(mob/user) + var/turf/location = get_turf(user) + if(lit) + user.visible_message("[user] puts out [src].", "You put out [src].") + lit = 0 + icon_state = icon_off + item_state = icon_off + STOP_PROCESSING(SSobj, src) + return + if(!lit && smoketime > 0) + user << "You empty [src] onto [location]." + new /obj/effect/decal/cleanable/ash(location) + packeditem = 0 + smoketime = 0 + reagents.clear_reagents() + name = "empty [initial(name)]" + return + +/obj/item/clothing/mask/cigarette/pipe/cobpipe + name = "corn cob pipe" + desc = "A nicotine delivery system popularized by folksy backwoodsmen and kept popular in the modern age and beyond by space hipsters. Can be loaded with objects." + icon_state = "cobpipeoff" + item_state = "cobpipeoff" + icon_on = "cobpipeon" //Note - these are in masks.dmi + icon_off = "cobpipeoff" + smoketime = 0 + + +///////// +//ZIPPO// +///////// +/obj/item/weapon/lighter + name = "\improper Zippo lighter" + desc = "The zippo." + icon = 'icons/obj/cigarettes.dmi' + icon_state = "zippo" + item_state = "zippo" + w_class = 1 + flags = CONDUCT + slot_flags = SLOT_BELT + var/lit = 0 + heat = 1500 + resistance_flags = FIRE_PROOF + var/sound_toggleON = 'sound/items/zippo_on.ogg' + var/sound_toggleOFF = 'sound/items/zippo_off.ogg' + +/obj/item/weapon/lighter/greyscale + name = "cheap lighter" + desc = "A cheap-as-free lighter." + icon_state = "lighter" + sound_toggleON = 'sound/items/lighter_on.ogg' + sound_toggleOFF = 'sound/items/lighter_off.ogg' + +/obj/item/weapon/lighter/greyscale/New() + ..() + var/image/I = image(icon,"lighter-overlay") + var/newcolor = color2hex(randomColor(1)) + add_atom_colour(newcolor, FIXED_COLOUR_PRIORITY) + add_overlay(I) + +/obj/item/weapon/lighter/greyscale/ignition_effect(atom/A, mob/user) + . = "After some fiddling, [user] manages to \ + light [A] with [src]." + +/obj/item/weapon/lighter/ignition_effect(atom/A, mob/user) + . = "With a single flick of their wrist, [user] \ + smoothly lights [A] with [src]. Damn they're cool." + +/obj/item/weapon/lighter/update_icon() + icon_state = lit ? "[icon_state]_on" : "[initial(icon_state)]" + +/obj/item/weapon/lighter/attack_self(mob/living/user) + if(user.is_holding(src)) + if(!lit) + lit = 1 + update_icon() + playsound(src, sound_toggleON, 30, 1, -1) + force = 5 + damtype = "fire" + hitsound = 'sound/items/welder.ogg' + attack_verb = list("burnt", "singed") + if(!istype(src, /obj/item/weapon/lighter/greyscale)) + //user.visible_message("Without even breaking stride, [user] flips open and lights [src] in one smooth movement.", "Without even breaking stride, you flip open and lights [src] in one smooth movement.") + else + var/prot = FALSE + var/mob/living/carbon/human/H = user + + if(istype(H) && H.gloves) + var/obj/item/clothing/gloves/G = H.gloves + if(G.max_heat_protection_temperature) + prot = (G.max_heat_protection_temperature > 360) + else + prot = TRUE + + if(prot || prob(75)) + user.visible_message("After a few attempts, [user] manages to light [src].", "After a few attempts, you manage to light [src].") + else + var/hitzone = user.held_index_to_dir(user.active_hand_index) == "r" ? "r_hand" : "l_hand" + user.apply_damage(5, BURN, hitzone) + user.visible_message("After a few attempts, [user] manages to light [src] - they however burn their finger in the process.", "You burn yourself while lighting the lighter!") + + user.AddLuminosity(1) + START_PROCESSING(SSobj, src) + else + lit = 0 + update_icon() + playsound(src, sound_toggleOFF, 30, 1, -1) + hitsound = "swing_hit" + force = 0 + attack_verb = null //human_defense.dm takes care of it + user.AddLuminosity(-1) + STOP_PROCESSING(SSobj, src) + else + . = ..() + +/obj/item/weapon/lighter/attack(mob/living/carbon/M, mob/living/carbon/user) + if(lit && M.IgniteMob()) + message_admins("[key_name_admin(user)] set [key_name_admin(M)] on fire") + log_game("[key_name(user)] set [key_name(M)] on fire") + var/obj/item/clothing/mask/cigarette/cig = help_light_cig(M) + if(lit && cig && user.a_intent == "help") + if(cig.lit) + user << "The [cig.name] is already lit." + if(M == user) + cig.attackby(src, user) + else + if(!istype(src, /obj/item/weapon/lighter/greyscale)) + cig.light("[user] whips the [name] out and holds it for [M]. Their arm is as steady as the unflickering flame they light \the [cig] with.") + else + cig.light("[user] holds the [name] out for [M], and lights the [cig.name].") + else + ..() + +/obj/item/weapon/lighter/process() + open_flame() + +/obj/item/weapon/lighter/pickup(mob/user) + ..() + if(lit) + SetLuminosity(0) + user.AddLuminosity(1) + +/obj/item/weapon/lighter/dropped(mob/user) + ..() + if(lit) + if(user) + user.AddLuminosity(-1) + SetLuminosity(1) + +/obj/item/weapon/lighter/is_hot() + return lit * heat + +/////////// +//ROLLING// +/////////// +/obj/item/weapon/rollingpaper + name = "rolling paper" + desc = "A thin piece of paper used to make fine smokeables." + icon = 'icons/obj/cigarettes.dmi' + icon_state = "cig_paper" + w_class = 1 + +/obj/item/weapon/rollingpaper/afterattack(atom/target, mob/user, proximity) + if(!proximity) + return + if(istype(target, /obj/item/weapon/reagent_containers/food/snacks/grown)) + var/obj/item/weapon/reagent_containers/food/snacks/grown/O = target + if(O.dry) + user.unEquip(target, 1) + user.unEquip(src, 1) + var/obj/item/clothing/mask/cigarette/rollie/R = new /obj/item/clothing/mask/cigarette/rollie(user.loc) + R.chem_volume = target.reagents.total_volume + target.reagents.trans_to(R, R.chem_volume) + user.put_in_active_hand(R) + user << "You roll the [target.name] into a rolling paper." + R.desc = "Dried [target.name] rolled up in a thin piece of paper." + qdel(target) + qdel(src) + else + user << "You need to dry this first!" + else + ..() + +/////////////// +//VAPE NATION// +/////////////// +/obj/item/clothing/mask/vape + name = "E-Cigarette" + desc = "A classy and highly sophisticated electronic cigarette, for classy and dignified gentlemen. A warning label reads \"Warning: Do not fill with flammable materials.\""//<<< i'd vape to that. + icon = 'icons/obj/clothing/masks.dmi' + icon_state = null + item_state = null + var/chem_volume = 100 + var/vapetime = 0 //this so it won't puff out clouds every tick + var/screw = 0 // kinky + var/super = 0 //for the fattest vapes dude. + var/emagged = 0 //LET THE GRIEF BEGIN + +/obj/item/clothing/mask/vape/suicide_act(mob/user) + user.visible_message("[user] is puffin hard on dat vape, [user.p_they()] trying to join the vape life on a whole notha plane!")//it doesn't give you cancer, it is cancer + return (TOXLOSS|OXYLOSS) + + +/obj/item/clothing/mask/vape/New(loc, var/param_color = null) + ..() + create_reagents(chem_volume) + reagents.set_reacting(FALSE) // so it doesn't react until you light it + reagents.add_reagent("nicotine", 50) + if(!icon_state) + if(!param_color) + param_color = pick("red","blue","black","white","green","purple","yellow","orange") + icon_state = "[param_color]_vape" + item_state = "[param_color]_vape" + +/obj/item/clothing/mask/vape/attackby(obj/item/O, mob/user, params) + if(istype(O, /obj/item/weapon/reagent_containers) && (O.flags & OPENCONTAINER)) + if(reagents.total_volume < chem_volume) + if(O.reagents.total_volume > 0) + O.reagents.trans_to(src,25) + user << "You add the contents of [O] to the [src]" + else + user << "The [O] is empty!" + else + user << "[src] can't hold anymore reagents!" + + if(istype(O, /obj/item/weapon/screwdriver)) + if(!screw) + screw = 1 + user << "You open the cap on the [src]" + if(super) + add_overlay(image(icon, "vapeopen_med")) + else + add_overlay(image(icon, "vapeopen_low")) + else + screw = 0 + user << "You close the cap on the [src]" + cut_overlays() + + if(istype(O, /obj/item/device/multitool)) + if(screw && !emagged)//also kinky + if(!super) + cut_overlays() + super = 1 + user << "You increase the voltage in the [src]" + add_overlay(image(icon, "vapeopen_med")) + else + cut_overlays() + super = 0 + user << "You decrease the voltage in the [src]" + add_overlay(image(icon, "vapeopen_low")) + + if(screw && emagged) + user << "The [name] can't be modified!" + + +/obj/item/clothing/mask/vape/emag_act(mob/user)// I WON'T REGRET WRITTING THIS, SURLY. + if(screw) + if(!emagged) + cut_overlays() + emagged = 1 + super = 0 + user << "You maximize the voltage in the [src]" + add_overlay(image(icon, "vapeopen_high")) + var/datum/effect_system/spark_spread/sp = new /datum/effect_system/spark_spread //for effect + sp.set_up(5, 1, src) + sp.start() + else + user << "The [name] is already emagged!" + else + user << "You need to open the cap to do that" + +/obj/item/clothing/mask/vape/attack_self(mob/user) + if(reagents.total_volume > 0) + user << "you empty [src] of all reagents." + reagents.clear_reagents() + return + +/obj/item/clothing/mask/vape/equipped(mob/user, slot) + if(slot == slot_wear_mask) + if(!screw) + user << "You start puffing on the vape." + reagents.set_reacting(TRUE) + START_PROCESSING(SSobj, src) + else //it will not start if the vape is opened. + user << "You need to close the cap first!" + +/obj/item/clothing/mask/vape/dropped(mob/user) + var/mob/living/carbon/C = user + if(C.get_item_by_slot(slot_wear_mask) == src) + reagents.set_reacting(FALSE) + STOP_PROCESSING(SSobj, src) + +/obj/item/clothing/mask/vape/proc/hand_reagents()//had to rename to avoid duplicate error + if(reagents.total_volume) + if(iscarbon(loc)) + var/mob/living/carbon/C = loc + if (src == C.wear_mask) // if it's in the human/monkey mouth, transfer reagents to the mob + var/fraction = min(REAGENTS_METABOLISM/reagents.total_volume, 1) //this will react instantly, making them a little more dangerous than cigarettes + reagents.reaction(C, INGEST, fraction) + reagents.trans_to(C, REAGENTS_METABOLISM) + if(reagents.get_reagent_amount("welding_fuel")) + //HOT STUFF + C.fire_stacks = 2 + C.IgniteMob() + + if(reagents.get_reagent_amount("plasma")) // the plasma explodes when exposed to fire + var/datum/effect_system/reagents_explosion/e = new() + e.set_up(round(reagents.get_reagent_amount("plasma") / 2.5, 1), get_turf(src), 0, 0) + e.start() + if(ismob(loc)) + var/mob/M = loc + M.unEquip(src, 1) + qdel(src) + return + reagents.remove_any(REAGENTS_METABOLISM) + +/obj/item/clothing/mask/vape/process() + var/mob/living/M = loc + + if(isliving(loc)) + M.IgniteMob() + + vapetime++ + + if(!reagents.total_volume) + if(ismob(loc)) + M << "The [name] is empty!" + STOP_PROCESSING(SSobj, src) + //it's reusable so it won't unequip when empty + return + //open flame removed because vapes are a closed system, they wont light anything on fire + + if(super && vapetime > 3)//Time to start puffing those fat vapes, yo. + var/datum/effect_system/smoke_spread/chem/s = new + s.set_up(reagents, 1, loc, silent=TRUE) + s.start() + vapetime = 0 + + if(emagged && vapetime > 3) + var/datum/effect_system/smoke_spread/chem/s = new + s.set_up(reagents, 4, loc, silent=TRUE) + s.start() + vapetime = 0 + if(prob(5))//small chance for the vape to break and deal damage if it's emagged + playsound(get_turf(src), 'sound/effects/pop_expl.ogg', 50, 0) + M.apply_damage(20, BURN, "head") + M.unEquip(src, 1) + M.Weaken(15, 1, 0) + qdel(src) + var/datum/effect_system/spark_spread/sp = new /datum/effect_system/spark_spread + sp.set_up(5, 1, src) + sp.start() + M << "The [name] suddenly explodes in your mouth!" + + if(reagents && reagents.total_volume) + hand_reagents() diff --git a/code/game/objects/items/weapons/clown_items.dm b/code/game/objects/items/weapons/clown_items.dm new file mode 100644 index 0000000..562f263 --- /dev/null +++ b/code/game/objects/items/weapons/clown_items.dm @@ -0,0 +1,172 @@ +/* Clown Items + * Contains: + * Soap + * Bike Horns + * Air Horns + */ + +/* + * Soap + */ + +/obj/item/weapon/soap + name = "soap" + desc = "A cheap bar of soap. Doesn't smell." + gender = PLURAL + icon = 'icons/obj/items.dmi' + icon_state = "soap" + w_class = 1 + flags = NOBLUDGEON + throwforce = 0 + throw_speed = 3 + throw_range = 7 + var/cleanspeed = 50 //slower than mop + +/obj/item/weapon/soap/nanotrasen + desc = "A Nanotrasen brand bar of soap. Smells of plasma." + icon_state = "soapnt" + +/obj/item/weapon/soap/homemade + desc = "A homemade bar of soap. Smells of... well...." + icon_state = "soapgibs" + cleanspeed = 45 // a little faster to reward chemists for going to the effort + +/obj/item/weapon/soap/deluxe + desc = "A deluxe Waffle Co. brand bar of soap. Smells of high-class luxury." + icon_state = "soapdeluxe" + cleanspeed = 40 //same speed as mop because deluxe -- captain gets one of these + +/obj/item/weapon/soap/syndie + desc = "An untrustworthy bar of soap made of strong chemical agents that dissolve blood faster." + icon_state = "soapsyndie" + cleanspeed = 10 //much faster than mop so it is useful for traitors who want to clean crime scenes + +/obj/item/weapon/soap/suicide_act(mob/user) + user.say(";FFFFFFFFFFFFFFFFUUUUUUUDGE!!") + user.visible_message("[user] lifts [src] to their mouth and gnaws on it furiously, producing a thick froth! [user.p_they(TRUE)]'ll never get that BB gun now!") + PoolOrNew(/obj/effect/particle_effect/foam, loc) + return (TOXLOSS) + +/obj/item/weapon/soap/Crossed(AM as mob|obj) + if (istype(AM, /mob/living/carbon)) + var/mob/living/carbon/M = AM + M.slip(4, 2, src) + +/obj/item/weapon/soap/afterattack(atom/target, mob/user, proximity) + if(!proximity || !check_allowed_items(target)) + return + //I couldn't feasibly fix the overlay bugs caused by cleaning items we are wearing. + //So this is a workaround. This also makes more sense from an IC standpoint. ~Carn + if(user.client && (target in user.client.screen)) + user << "You need to take that [target.name] off before cleaning it!" + else if(istype(target,/obj/effect/decal/cleanable)) + user.visible_message("[user] begins to scrub \the [target.name] out with [src].", "You begin to scrub \the [target.name] out with [src]...") + if(do_after(user, src.cleanspeed, target = target)) + user << "You scrub \the [target.name] out." + qdel(target) + else if(ishuman(target) && user.zone_selected == "mouth") + var/mob/living/carbon/human/H = user + user.visible_message("\the [user] washes \the [target]'s mouth out with [src.name]!", "You wash \the [target]'s mouth out with [src.name]!") //washes mouth out with soap sounds better than 'the soap' here + H.lip_style = null //removes lipstick + H.update_body() + return + else if(istype(target, /obj/structure/window)) + user.visible_message("[user] begins to clean \the [target.name] with [src]...", "You begin to clean \the [target.name] with [src]...") + if(do_after(user, src.cleanspeed, target = target)) + user << "You clean \the [target.name]." + target.remove_atom_colour(WASHABLE_COLOUR_PRIORITY) + target.SetOpacity(initial(target.opacity)) + else + user.visible_message("[user] begins to clean \the [target.name] with [src]...", "You begin to clean \the [target.name] with [src]...") + if(do_after(user, src.cleanspeed, target = target)) + user << "You clean \the [target.name]." + var/obj/effect/decal/cleanable/C = locate() in target + qdel(C) + target.remove_atom_colour(WASHABLE_COLOUR_PRIORITY) + target.clean_blood() + target.wash_cream() + return + + +/* + * Bike Horns + */ + + +/obj/item/weapon/bikehorn + name = "bike horn" + desc = "A horn off of a bicycle." + icon = 'icons/obj/items.dmi' + icon_state = "bike_horn" + item_state = "bike_horn" + throwforce = 0 + hitsound = null //To prevent tap.ogg playing, as the item lacks of force + w_class = 1 + throw_speed = 3 + throw_range = 7 + attack_verb = list("HONKED") + var/spam_flag = 0 + var/honksound = 'sound/items/bikehorn.ogg' + var/cooldowntime = 20 + +/obj/item/weapon/bikehorn/suicide_act(mob/user) + user.visible_message("[user] solemnly points the horn at [user.p_their()] temple! It looks like [user.p_theyre()] trying to commit suicide!") + playsound(src.loc, honksound, 50, 1) + return (BRUTELOSS) + +/obj/item/weapon/bikehorn/attack(mob/living/carbon/M, mob/living/carbon/user) + if(!spam_flag) + playsound(loc, honksound, 50, 1, -1) //plays instead of tap.ogg! + return ..() + +/obj/item/weapon/bikehorn/attack_self(mob/user) + if(!spam_flag) + spam_flag = 1 + playsound(src.loc, honksound, 50, 1) + src.add_fingerprint(user) + spawn(cooldowntime) + spam_flag = 0 + return + +/obj/item/weapon/bikehorn/Crossed(mob/living/L) + if(isliving(L)) + playsound(loc, honksound, 50, 1, -1) + ..() + +/obj/item/weapon/bikehorn/airhorn + name = "air horn" + desc = "Damn son, where'd you find this?" + icon_state = "air_horn" + honksound = 'sound/items/AirHorn2.ogg' + cooldowntime = 50 + origin_tech = "materials=4;engineering=4" + +/obj/item/weapon/bikehorn/golden + name = "golden bike horn" + desc = "Golden? Clearly, it's made with bananium! Honk!" + icon_state = "gold_horn" + item_state = "gold_horn" + +/obj/item/weapon/bikehorn/golden/attack() + flip_mobs() + return ..() + +/obj/item/weapon/bikehorn/golden/attack_self(mob/user) + flip_mobs() + ..() + +/obj/item/weapon/bikehorn/golden/proc/flip_mobs(mob/living/carbon/M, mob/user) + if (!spam_flag) + var/turf/T = get_turf(src) + for(M in ohearers(7, T)) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if((istype(H.ears, /obj/item/clothing/ears/earmuffs)) || H.ear_deaf) + continue + M.emote("flip") + +/obj/item/weapon/reagent_containers/food/drinks/soda_cans/canned_laughter + name = "Canned Laughter" + desc = "Just looking at this makes you want to giggle." + icon_state = "laughter" + list_reagents = list("laughter" = 50) diff --git a/code/game/objects/items/weapons/cosmetics.dm b/code/game/objects/items/weapons/cosmetics.dm new file mode 100644 index 0000000..ac19e49 --- /dev/null +++ b/code/game/objects/items/weapons/cosmetics.dm @@ -0,0 +1,184 @@ +/obj/item/weapon/lipstick + gender = PLURAL + name = "red lipstick" + desc = "A generic brand of lipstick." + icon = 'icons/obj/items.dmi' + icon_state = "lipstick" + w_class = 1 + var/colour = "red" + var/open = 0 + + +/obj/item/weapon/lipstick/purple + name = "purple lipstick" + colour = "purple" + +/obj/item/weapon/lipstick/jade + //It's still called Jade, but theres no HTML color for jade, so we use lime. + name = "jade lipstick" + colour = "lime" + +/obj/item/weapon/lipstick/black + name = "black lipstick" + colour = "black" + + +/obj/item/weapon/lipstick/random + name = "lipstick" + +/obj/item/weapon/lipstick/random/New() + colour = pick("red","purple","lime","black","green","blue","white") + name = "[colour] lipstick" + + +/obj/item/weapon/lipstick/attack_self(mob/user) + cut_overlays() + user << "You twist \the [src] [open ? "closed" : "open"]." + open = !open + if(open) + var/image/colored = image("icon"='icons/obj/items.dmi', "icon_state"="lipstick_uncap_color") + colored.color = colour + icon_state = "lipstick_uncap" + add_overlay(colored) + else + icon_state = "lipstick" + +/obj/item/weapon/lipstick/attack(mob/M, mob/user) + if(!open) + return + + if(!istype(M, /mob)) + return + + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(H.is_mouth_covered()) + user << "Remove [ H == user ? "your" : "their" ] mask!" + return + if(H.lip_style) //if they already have lipstick on + user << "You need to wipe off the old lipstick first!" + return + if(H == user) + user.visible_message("[user] does their lips with \the [src].", \ + "You take a moment to apply \the [src]. Perfect!") + H.lip_style = "lipstick" + H.lip_color = colour + H.update_body() + else + user.visible_message("[user] begins to do [H]'s lips with \the [src].", \ + "You begin to apply \the [src] on [H]'s lips...") + if(do_after(user, 20, target = H)) + user.visible_message("[user] does [H]'s lips with \the [src].", \ + "You apply \the [src] on [H]'s lips.") + H.lip_style = "lipstick" + H.lip_color = colour + H.update_body() + else + user << "Where are the lips on that?" + +//you can wipe off lipstick with paper! +/obj/item/weapon/paper/attack(mob/M, mob/user) + if(user.zone_selected == "mouth") + if(!ismob(M)) + return + + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(H == user) + user << "You wipe off the lipstick with [src]." + H.lip_style = null + H.update_body() + else + user.visible_message("[user] begins to wipe [H]'s lipstick off with \the [src].", \ + "You begin to wipe off [H]'s lipstick...") + if(do_after(user, 10, target = H)) + user.visible_message("[user] wipes [H]'s lipstick off with \the [src].", \ + "You wipe off [H]'s lipstick.") + H.lip_style = null + H.update_body() + else + ..() + + +/obj/item/weapon/razor + name = "electric razor" + desc = "The latest and greatest power razor born from the science of shaving." + icon = 'icons/obj/items.dmi' + icon_state = "razor" + flags = CONDUCT + w_class = 1 + + +/obj/item/weapon/razor/proc/shave(mob/living/carbon/human/H, location = "mouth") + if(location == "mouth") + H.facial_hair_style = "Shaved" + else + H.hair_style = "Skinhead" + + H.update_hair() + playsound(loc, 'sound/items/Welder2.ogg', 20, 1) + + +/obj/item/weapon/razor/attack(mob/M, mob/user) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + var/location = user.zone_selected + if(location == "mouth") + if(!(FACEHAIR in H.dna.species.specflags)) + user << "There is no facial hair to shave!" + return + if(!get_location_accessible(H, location)) + user << "The mask is in the way!" + return + if(H.facial_hair_style == "Shaved") + user << "Already clean-shaven!" + return + + if(H == user) //shaving yourself + user.visible_message("[user] starts to shave their facial hair with [src].", \ + "You take a moment to shave your facial hair with [src]...") + if(do_after(user, 50, target = H)) + user.visible_message("[user] shaves his facial hair clean with [src].", \ + "You finish shaving with [src]. Fast and clean!") + shave(H, location) + else + var/turf/H_loc = H.loc + user.visible_message("[user] tries to shave [H]'s facial hair with [src].", \ + "You start shaving [H]'s facial hair...") + if(do_after(user, 50, target = H)) + if(H_loc == H.loc) + user.visible_message("[user] shaves off [H]'s facial hair with [src].", \ + "You shave [H]'s facial hair clean off.") + shave(H, location) + + else if(location == "head") + if(!(HAIR in H.dna.species.specflags)) + user << "There is no hair to shave!" + return + if(!get_location_accessible(H, location)) + user << "The headgear is in the way!" + return + if(H.hair_style == "Bald" || H.hair_style == "Balding Hair" || H.hair_style == "Skinhead") + user << "There is not enough hair left to shave!" + return + + if(H == user) //shaving yourself + user.visible_message("[user] starts to shave their head with [src].", \ + "You start to shave your head with [src]...") + if(do_after(user, 5, target = H)) + user.visible_message("[user] shaves his head with [src].", \ + "You finish shaving with [src].") + shave(H, location) + else + var/turf/H_loc = H.loc + user.visible_message("[user] tries to shave [H]'s head with [src]!", \ + "You start shaving [H]'s head...") + if(do_after(user, 50, target = H)) + if(H_loc == H.loc) + user.visible_message("[user] shaves [H]'s head bald with [src]!", \ + "You shave [H]'s head bald.") + shave(H, location) + else + ..() + else + ..() \ No newline at end of file diff --git a/code/game/objects/items/weapons/courtroom.dm b/code/game/objects/items/weapons/courtroom.dm new file mode 100644 index 0000000..746ff50 --- /dev/null +++ b/code/game/objects/items/weapons/courtroom.dm @@ -0,0 +1,37 @@ +// Contains: +// Gavel Hammer +// Gavel Block + +/obj/item/weapon/gavelhammer + name = "gavel hammer" + desc = "Order, order! No bombs in my courthouse." + icon = 'icons/obj/items.dmi' + icon_state = "gavelhammer" + force = 5 + throwforce = 6 + w_class = 2 + attack_verb = list("bashed", "battered", "judged", "whacked") + resistance_flags = FLAMMABLE + +/obj/item/weapon/gavelhammer/suicide_act(mob/user) + user.visible_message("[user] has sentenced [user.p_them()]self to death with [src]! It looks like [user.p_theyre()] trying to commit suicide!") + playsound(loc, 'sound/items/gavel.ogg', 50, 1, -1) + return (BRUTELOSS) + +/obj/item/weapon/gavelblock + name = "gavel block" + desc = "Smack it with a gavel hammer when the assistants get rowdy." + icon = 'icons/obj/items.dmi' + icon_state = "gavelblock" + force = 2 + throwforce = 2 + w_class = 1 + resistance_flags = FLAMMABLE + +/obj/item/weapon/gavelblock/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/gavelhammer)) + playsound(loc, 'sound/items/gavel.ogg', 100, 1) + user.visible_message("[user] strikes [src] with [I].") + user.changeNext_move(CLICK_CD_MELEE) + else + return ..() \ No newline at end of file diff --git a/code/game/objects/items/weapons/defib.dm b/code/game/objects/items/weapons/defib.dm new file mode 100644 index 0000000..543e0fc --- /dev/null +++ b/code/game/objects/items/weapons/defib.dm @@ -0,0 +1,567 @@ +//backpack item +/obj/item/weapon/defibrillator + name = "defibrillator" + desc = "A device that delivers powerful shocks to detachable paddles that resuscitate incapacitated patients." + icon = 'icons/obj/weapons.dmi' + icon_state = "defibunit" + item_state = "defibunit" + slot_flags = SLOT_BACK + force = 5 + throwforce = 6 + w_class = 4 + origin_tech = "biotech=4" + actions_types = list(/datum/action/item_action/toggle_paddles) + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 50) + + var/on = 0 //if the paddles are equipped (1) or on the defib (0) + var/safety = 1 //if you can zap people with the defibs on harm mode + var/powered = 0 //if there's a cell in the defib with enough power for a revive, blocks paddles from reviving otherwise + var/obj/item/weapon/twohanded/shockpaddles/paddles + var/obj/item/weapon/stock_parts/cell/high/bcell = null + var/combat = 0 //can we revive through space suits? + var/grab_ghost = FALSE // Do we pull the ghost back into their body? + +/obj/item/weapon/defibrillator/New() //starts without a cell for rnd + ..() + paddles = make_paddles() + update_icon() + return + +/obj/item/weapon/defibrillator/loaded/New() //starts with hicap + ..() + paddles = make_paddles() + bcell = new(src) + update_icon() + return + +/obj/item/weapon/defibrillator/update_icon() + update_power() + update_overlays() + update_charge() + +/obj/item/weapon/defibrillator/proc/update_power() + if(bcell) + if(bcell.charge < paddles.revivecost) + powered = 0 + else + powered = 1 + else + powered = 0 + +/obj/item/weapon/defibrillator/proc/update_overlays() + cut_overlays() + if(!on) + add_overlay("[initial(icon_state)]-paddles") + if(powered) + add_overlay("[initial(icon_state)]-powered") + if(!bcell) + add_overlay("[initial(icon_state)]-nocell") + if(!safety) + add_overlay("[initial(icon_state)]-emagged") + +/obj/item/weapon/defibrillator/proc/update_charge() + if(powered) //so it doesn't show charge if it's unpowered + if(bcell) + var/ratio = bcell.charge / bcell.maxcharge + ratio = Ceiling(ratio*4) * 25 + add_overlay("[initial(icon_state)]-charge[ratio]") + +/obj/item/weapon/defibrillator/CheckParts(list/parts_list) + ..() + bcell = locate(/obj/item/weapon/stock_parts/cell) in contents + update_icon() + +/obj/item/weapon/defibrillator/ui_action_click() + toggle_paddles() + +/obj/item/weapon/defibrillator/attack_hand(mob/user) + if(loc == user) + if(slot_flags == SLOT_BACK) + if(user.get_item_by_slot(slot_back) == src) + ui_action_click() + else + user << "Put the defibrillator on your back first!" + + else if(slot_flags == SLOT_BELT) + if(user.get_item_by_slot(slot_belt) == src) + ui_action_click() + else + user << "Strap the defibrillator's belt on first!" + return + ..() + +/obj/item/weapon/defibrillator/MouseDrop(obj/over_object) + if(ismob(src.loc)) + var/mob/M = src.loc + if(istype(over_object, /obj/screen/inventory/hand)) + var/obj/screen/inventory/hand/H = over_object + if(!M.unEquip(src)) + return + M.put_in_hand(src, H.held_index) + + +/obj/item/weapon/defibrillator/attackby(obj/item/weapon/W, mob/user, params) + if(W == paddles) + paddles.unwield() + toggle_paddles() + else if(istype(W, /obj/item/weapon/stock_parts/cell)) + var/obj/item/weapon/stock_parts/cell/C = W + if(bcell) + user << "[src] already has a cell." + else + if(C.maxcharge < paddles.revivecost) + user << "[src] requires a higher capacity cell." + return + if(!user.unEquip(W)) + return + W.loc = src + bcell = W + user << "You install a cell in [src]." + update_icon() + + else if(istype(W, /obj/item/weapon/screwdriver)) + if(bcell) + bcell.updateicon() + bcell.loc = get_turf(src.loc) + bcell = null + user << "You remove the cell from [src]." + update_icon() + else + return ..() + +/obj/item/weapon/defibrillator/emag_act(mob/user) + if(safety) + safety = 0 + user << "You silently disable [src]'s safety protocols with the cryptographic sequencer." + else + safety = 1 + user << "You silently enable [src]'s safety protocols with the cryptographic sequencer." + +/obj/item/weapon/defibrillator/emp_act(severity) + if(bcell) + deductcharge(1000 / severity) + if(safety) + safety = 0 + src.visible_message("[src] beeps: Safety protocols disabled!") + playsound(get_turf(src), 'sound/machines/defib_saftyOff.ogg', 50, 0) + else + safety = 1 + src.visible_message("[src] beeps: Safety protocols enabled!") + playsound(get_turf(src), 'sound/machines/defib_saftyOn.ogg', 50, 0) + update_icon() + ..() + +/obj/item/weapon/defibrillator/proc/toggle_paddles() + set name = "Toggle Paddles" + set category = "Object" + on = !on + + var/mob/living/carbon/human/user = usr + if(on) + //Detach the paddles into the user's hands + if(!usr.put_in_hands(paddles)) + on = 0 + user << "You need a free hand to hold the paddles!" + update_icon() + return + paddles.loc = user + else + //Remove from their hands and back onto the defib unit + paddles.unwield() + remove_paddles(user) + + update_icon() + for(var/X in actions) + var/datum/action/A = X + A.UpdateButtonIcon() + +/obj/item/weapon/defibrillator/proc/make_paddles() + return new /obj/item/weapon/twohanded/shockpaddles(src) + +/obj/item/weapon/defibrillator/equipped(mob/user, slot) + ..() + if((slot_flags == SLOT_BACK && slot != slot_back) || (slot_flags == SLOT_BELT && slot != slot_belt)) + remove_paddles(user) + update_icon() + +/obj/item/weapon/defibrillator/item_action_slot_check(slot, mob/user) + if(slot == user.getBackSlot()) + return 1 + +/obj/item/weapon/defibrillator/proc/remove_paddles(mob/user) //this fox the bug with the paddles when other player stole you the defib when you have the paddles equiped + if(ismob(paddles.loc)) + var/mob/M = paddles.loc + M.unEquip(paddles,1) + return + +/obj/item/weapon/defibrillator/Destroy() + if(on) + var/M = get(paddles, /mob) + remove_paddles(M) + . = ..() + update_icon() + +/obj/item/weapon/defibrillator/proc/deductcharge(chrgdeductamt) + if(bcell) + if(bcell.charge < (paddles.revivecost+chrgdeductamt)) + powered = 0 + update_icon() + if(bcell.use(chrgdeductamt)) + update_icon() + return 1 + else + update_icon() + return 0 + +/obj/item/weapon/defibrillator/proc/cooldowncheck(mob/user) + spawn(50) + if(bcell) + if(bcell.charge >= paddles.revivecost) + user.visible_message("[src] beeps: Unit ready.") + playsound(get_turf(src), 'sound/machines/defib_ready.ogg', 50, 0) + else + user.visible_message("[src] beeps: Charge depleted.") + playsound(get_turf(src), 'sound/machines/defib_failed.ogg', 50, 0) + paddles.cooldown = 0 + paddles.update_icon() + update_icon() + +/obj/item/weapon/defibrillator/compact + name = "compact defibrillator" + desc = "A belt-equipped defibrillator that can be rapidly deployed." + icon_state = "defibcompact" + item_state = "defibcompact" + w_class = 3 + slot_flags = SLOT_BELT + origin_tech = "biotech=5" + +/obj/item/weapon/defibrillator/compact/item_action_slot_check(slot, mob/user) + if(slot == user.getBeltSlot()) + return 1 + +/obj/item/weapon/defibrillator/compact/loaded/New() + ..() + paddles = make_paddles() + bcell = new(src) + update_icon() + return + +/obj/item/weapon/defibrillator/compact/combat + name = "combat defibrillator" + desc = "A belt-equipped blood-red defibrillator that can be rapidly deployed. Does not have the restrictions or safeties of conventional defibrillators and can revive through space suits." + combat = 1 + safety = 0 + +/obj/item/weapon/defibrillator/compact/combat/loaded/New() + ..() + paddles = make_paddles() + bcell = new /obj/item/weapon/stock_parts/cell/infinite(src) + update_icon() + return + +/obj/item/weapon/defibrillator/compact/combat/loaded/attackby(obj/item/weapon/W, mob/user, params) + if(W == paddles) + paddles.unwield() + toggle_paddles() + update_icon() + return + +//paddles + +/obj/item/weapon/twohanded/shockpaddles + name = "defibrillator paddles" + desc = "A pair of plastic-gripped paddles with flat metal surfaces that are used to deliver powerful electric shocks." + icon = 'icons/obj/weapons.dmi' + icon_state = "defibpaddles" + item_state = "defibpaddles" + force = 0 + throwforce = 6 + w_class = 4 + flags = NODROP + + var/revivecost = 1000 + var/cooldown = 0 + var/busy = 0 + var/obj/item/weapon/defibrillator/defib + var/req_defib = 1 + var/combat = 0 //If it penetrates armor and gives additional functionality + var/grab_ghost = FALSE + +/obj/item/weapon/twohanded/shockpaddles/proc/recharge(var/time) + if(req_defib || !time) + return + cooldown = 1 + update_icon() + sleep(time) + var/turf/T = get_turf(src) + T.audible_message("[src] beeps: Unit is recharged.") + playsound(T, 'sound/machines/defib_ready.ogg', 50, 0) + cooldown = 0 + update_icon() + +/obj/item/weapon/twohanded/shockpaddles/New(mainunit) + ..() + if(check_defib_exists(mainunit, src) && req_defib) + defib = mainunit + loc = defib + busy = 0 + update_icon() + return + +/obj/item/weapon/twohanded/shockpaddles/update_icon() + icon_state = "defibpaddles[wielded]" + item_state = "defibpaddles[wielded]" + if(cooldown) + icon_state = "defibpaddles[wielded]_cooldown" + +/obj/item/weapon/twohanded/shockpaddles/suicide_act(mob/user) + user.visible_message("[user] is putting the live paddles on [user.p_their()] chest! It looks like [user.p_theyre()] trying to commit suicide!") + if(req_defib) + defib.deductcharge(revivecost) + playsound(get_turf(src), 'sound/machines/defib_zap.ogg', 50, 1, -1) + return (OXYLOSS) + +/obj/item/weapon/twohanded/shockpaddles/dropped(mob/user) + if(!req_defib) + return ..() + if(user) + var/obj/item/weapon/twohanded/offhand/O = user.get_inactive_held_item() + if(istype(O)) + O.unwield() + user << "The paddles snap back into the main unit." + defib.on = 0 + loc = defib + defib.update_icon() + return unwield(user) + +/obj/item/weapon/twohanded/shockpaddles/proc/check_defib_exists(mainunit, mob/living/carbon/human/M, obj/O) + if(!req_defib) + return 1 //If it doesn't need a defib, just say it exists + if (!mainunit || !istype(mainunit, /obj/item/weapon/defibrillator)) //To avoid weird issues from admin spawns + M.unEquip(O) + qdel(O) + return 0 + else + return 1 + +/obj/item/weapon/twohanded/shockpaddles/attack(mob/M, mob/user) + var/halfwaycritdeath = (HEALTH_THRESHOLD_CRIT + HEALTH_THRESHOLD_DEAD) / 2 + + if(busy) + return + if(req_defib && !defib.powered) + user.visible_message("[defib] beeps: Unit is unpowered.") + playsound(get_turf(src), 'sound/machines/defib_failed.ogg', 50, 0) + return + if(!wielded) + if(iscyborg(user)) + user << "You must activate the paddles in your active module before you can use them on someone!" + else + user << "You need to wield the paddles in both hands before you can use them on someone!" + return + if(cooldown) + if(req_defib) + user << "[defib] is recharging!" + else + user << "[src] are recharging!" + return + if(!ishuman(M)) + if(req_defib) + user << "The instructions on [defib] don't mention how to revive that..." + else + user << "You aren't sure how to revive that..." + return + var/mob/living/carbon/human/H = M + + if(user.a_intent == "disarm") + if(req_defib && defib.safety) + return + if(!req_defib && !combat) + return + busy = 1 + H.visible_message("[user] has touched [H.name] with [src]!", \ + "[user] has touched [H.name] with [src]!") + H.adjustStaminaLoss(50) + H.Weaken(5) + H.updatehealth() //forces health update before next life tick + playsound(get_turf(src), 'sound/machines/defib_zap.ogg', 50, 1, -1) + H.emote("gasp") + add_logs(user, M, "stunned", src) + if(req_defib) + defib.deductcharge(revivecost) + cooldown = 1 + busy = 0 + update_icon() + if(req_defib) + defib.cooldowncheck(user) + else + recharge(60) + return + + if(user.zone_selected != "chest") + user << "You need to target your patient's \ + chest with [src]!" + return + if(user.a_intent == "harm") + if(req_defib && defib.safety) + return + if(!req_defib && !combat) + return + user.visible_message("[user] begins to place [src] on [M.name]'s chest.", + "You overcharge the paddles and begin to place them onto [M]'s chest...") + busy = 1 + update_icon() + if(do_after(user, 30, target = M)) + user.visible_message("[user] places [src] on [M.name]'s chest.", + "You place [src] on [M.name]'s chest and begin to charge them.") + var/turf/T = get_turf(defib) + playsound(get_turf(src), 'sound/machines/defib_charge.ogg', 50, 0) + if(req_defib) + T.audible_message("\The [defib] lets out an urgent beep and lets out a steadily rising hum...") + else + user.audible_message("[src] let out an urgent beep.") + if(do_after(user, 30, target = M)) //Takes longer due to overcharging + if(!M) + busy = 0 + update_icon() + return + if(M && M.stat == DEAD) + user << "[M] is dead." + playsound(get_turf(src), 'sound/machines/defib_failed.ogg', 50, 0) + busy = 0 + update_icon() + return + user.visible_message("[user] shocks [M] with \the [src]!", "You shock [M] with \the [src]!") + playsound(get_turf(src), 'sound/machines/defib_zap.ogg', 100, 1, -1) + playsound(loc, 'sound/weapons/Egloves.ogg', 100, 1, -1) + var/mob/living/carbon/human/HU = M + M.emote("scream") + if(!HU.heart_attack) + HU.heart_attack = 1 + if(!HU.stat) + HU.visible_message("[M] thrashes wildly, clutching at their chest!", + "You feel a horrible agony in your chest!") + HU.apply_damage(50, BURN, "chest") + add_logs(user, M, "overloaded the heart of", defib) + M.Weaken(5) + M.Jitter(100) + if(req_defib) + defib.deductcharge(revivecost) + cooldown = 1 + busy = 0 + update_icon() + if(!req_defib) + recharge(60) + if(req_defib && (defib.cooldowncheck(user))) + return + busy = 0 + update_icon() + return + if((!req_defib && grab_ghost) || (req_defib && defib.grab_ghost)) + H.notify_ghost_cloning("Your heart is being defibrillated!") + H.grab_ghost() // Shove them back in their body. + else if(!H.suiciding && !(H.disabilities & NOCLONE)&& !H.hellbound) + H.notify_ghost_cloning("Your heart is being defibrillated. Re-enter your corpse if you want to be revived!", source = src) + + user.visible_message("[user] begins to place [src] on [M.name]'s chest.", "You begin to place [src] on [M.name]'s chest...") + busy = 1 + update_icon() + if(do_after(user, 30, target = M)) //beginning to place the paddles on patient's chest to allow some time for people to move away to stop the process + user.visible_message("[user] places [src] on [M.name]'s chest.", "You place [src] on [M.name]'s chest.") + playsound(get_turf(src), 'sound/machines/defib_charge.ogg', 50, 0) + var/tplus = world.time - H.timeofdeath + // past this much time the patient is unrecoverable + // (in deciseconds) + var/tlimit = DEFIB_TIME_LIMIT * 10 + // brain damage starts setting in on the patient after + // some time left rotting + var/tloss = DEFIB_TIME_LOSS * 10 + var/total_burn = 0 + var/total_brute = 0 + if(do_after(user, 20, target = M)) //placed on chest and short delay to shock for dramatic effect, revive time is 5sec total + for(var/obj/item/carried_item in H.contents) + if(istype(carried_item, /obj/item/clothing/suit/space)) + if((!src.combat && !req_defib) || (req_defib && !defib.combat)) + user.audible_message("[req_defib ? "[defib]" : "[src]"] buzzes: Patient's chest is obscured. Operation aborted.") + playsound(get_turf(src), 'sound/machines/defib_failed.ogg', 50, 0) + busy = 0 + update_icon() + return + if(H.stat == DEAD) + M.visible_message("[M]'s body convulses a bit.") + playsound(get_turf(src), "bodyfall", 50, 1) + playsound(get_turf(src), 'sound/machines/defib_zap.ogg', 50, 1, -1) + total_brute = H.getBruteLoss() + total_burn = H.getFireLoss() + + var/failed = null + + if (H.suiciding || (H.disabilities & NOCLONE)) + failed = "[req_defib ? "[defib]" : "[src]"] buzzes: Resuscitation failed - Recovery of patient impossible. Further attempts futile." + else if (H.hellbound) + failed = "[req_defib ? "[defib]" : "[src]"] buzzes: Resuscitation failed - Patient's soul appears to be on another plane of existance. Further attempts futile." + else if (tplus > tlimit) + failed = "[req_defib ? "[defib]" : "[src]"] buzzes: Resuscitation failed - Body has decayed for too long. Further attempts futile." + else if (!H.getorgan(/obj/item/organ/heart)) + failed = "[req_defib ? "[defib]" : "[src]"] buzzes: Resuscitation failed - Patient's heart is missing." + else if(total_burn >= 180 || total_brute >= 180) + failed = "[req_defib ? "[defib]" : "[src]"] buzzes: Resuscitation failed - Severe tissue damage makes recovery of patient impossible via defibrillator. Further attempts futile." + else if(H.get_ghost()) + failed = "[req_defib ? "[defib]" : "[src]"] buzzes: Resuscitation failed - No activity in patient's brain. Further attempts may be successful." + else + var/obj/item/organ/brain/BR = H.getorgan(/obj/item/organ/brain) + if(!BR || BR.damaged_brain) + failed = "[req_defib ? "[defib]" : "[src]"] buzzes: Resuscitation failed - Patient's brain is missing or damaged beyond point of no return. Further attempts futile." + + if(failed) + user.visible_message(failed) + playsound(get_turf(src), 'sound/machines/defib_failed.ogg', 50, 0) + else + //If the body has been fixed so that they would not be in crit when defibbed, give them oxyloss to put them back into crit + if (H.health > halfwaycritdeath) + H.adjustOxyLoss(H.health - halfwaycritdeath, 0) + else + var/overall_damage = total_brute + total_burn + H.getToxLoss() + H.getOxyLoss() + var/mobhealth = H.health + H.adjustOxyLoss((mobhealth - halfwaycritdeath) * (H.getOxyLoss() / overall_damage), 0) + H.adjustToxLoss((mobhealth - halfwaycritdeath) * (H.getToxLoss() / overall_damage), 0) + H.adjustFireLoss((mobhealth - halfwaycritdeath) * (total_burn / overall_damage), 0) + H.adjustBruteLoss((mobhealth - halfwaycritdeath) * (total_brute / overall_damage), 0) + user.visible_message("[req_defib ? "[defib]" : "[src]"] pings: Resuscitation successful.") + playsound(get_turf(src), 'sound/machines/defib_success.ogg', 50, 0) + H.revive() + H.emote("gasp") + if(tplus > tloss) + H.setBrainLoss( max(0, min(99, ((tlimit - tplus) / tlimit * 100)))) + add_logs(user, M, "revived", defib) + if(req_defib) + defib.deductcharge(revivecost) + cooldown = 1 + update_icon() + if(req_defib) + defib.cooldowncheck(user) + else + recharge(60) + else if(H.heart_attack) + H.heart_attack = 0 + user.visible_message("[req_defib ? "[defib]" : "[src]"] pings: Patient's heart is now beating again.") + playsound(get_turf(src), 'sound/machines/defib_zap.ogg', 50, 1, -1) + + else if (!H.getorgan(/obj/item/organ/heart)) + user.visible_message("[req_defib ? "[defib]" : "[src]"] buzzes: Patient's heart is missing. Operation aborted.") + playsound(get_turf(src), 'sound/machines/defib_failed.ogg', 50, 0) + + else + user.visible_message("[req_defib ? "[defib]" : "[src]"] buzzes: Patient is not in a valid state. Operation aborted.") + playsound(get_turf(src), 'sound/machines/defib_failed.ogg', 50, 0) + busy = 0 + update_icon() + +/obj/item/weapon/twohanded/shockpaddles/syndicate + name = "syndicate defibrillator paddles" + desc = "A pair of paddles used to revive deceased operatives. It possesses both the ability to penetrate armor and to deliver powerful shocks offensively." + combat = 1 + icon = 'icons/obj/weapons.dmi' + icon_state = "defibpaddles0" + item_state = "defibpaddles0" + req_defib = 0 diff --git a/code/game/objects/items/weapons/dice.dm b/code/game/objects/items/weapons/dice.dm new file mode 100644 index 0000000..a4f60cc --- /dev/null +++ b/code/game/objects/items/weapons/dice.dm @@ -0,0 +1,146 @@ +/obj/item/weapon/storage/pill_bottle/dice + name = "bag of dice" + desc = "Contains all the luck you'll ever need." + icon = 'icons/obj/dice.dmi' + icon_state = "dicebag" + +/obj/item/weapon/storage/pill_bottle/dice/New() + ..() + var/special_die = pick("1","2","fudge","00","100") + if(special_die == "1") + new /obj/item/weapon/dice/d1(src) + if(special_die == "2") + new /obj/item/weapon/dice/d2(src) + new /obj/item/weapon/dice/d4(src) + new /obj/item/weapon/dice/d6(src) + if(special_die == "fudge") + new /obj/item/weapon/dice/fudge(src) + new /obj/item/weapon/dice/d8(src) + new /obj/item/weapon/dice/d10(src) + if(special_die == "00") + new /obj/item/weapon/dice/d00(src) + new /obj/item/weapon/dice/d12(src) + new /obj/item/weapon/dice/d20(src) + if(special_die == "100") + new /obj/item/weapon/dice/d100(src) + +/obj/item/weapon/dice //depreciated d6, use /obj/item/weapon/dice/d6 if you actually want a d6 + name = "die" + desc = "A die with six sides. Basic and servicable." + icon = 'icons/obj/dice.dmi' + icon_state = "d6" + w_class = 1 + var/sides = 6 + var/result = null + var/list/special_faces = list() //entries should match up to sides var if used + +/obj/item/weapon/dice/New() + result = rand(1, sides) + update_icon() + +/obj/item/weapon/dice/d1 + name = "d1" + desc = "A die with one side. Deterministic!" + icon_state = "d1" + sides = 1 + +/obj/item/weapon/dice/d2 + name = "d2" + desc = "A die with two sides. Coins are undignified!" + icon_state = "d2" + sides = 2 + +/obj/item/weapon/dice/d4 + name = "d4" + desc = "A die with four sides. The nerd's caltrop." + icon_state = "d4" + sides = 4 + +/obj/item/weapon/dice/d6 + name = "d6" + +/obj/item/weapon/dice/fudge + name = "fudge die" + desc = "A die with six sides but only three results. Is this a plus or a minus? Your mind is drawing a blank..." + sides = 3 //shhh + icon_state = "fudge" + special_faces = list("minus","blank","plus") + +/obj/item/weapon/dice/d8 + name = "d8" + desc = "A die with eight sides. It feels... lucky." + icon_state = "d8" + sides = 8 + +/obj/item/weapon/dice/d10 + name = "d10" + desc = "A die with ten sides. Useful for percentages." + icon_state = "d10" + sides = 10 + +/obj/item/weapon/dice/d00 + name = "d00" + desc = "A die with ten sides. Works better for d100 rolls than a golfball." + icon_state = "d00" + sides = 10 + +/obj/item/weapon/dice/d12 + name = "d12" + desc = "A die with twelve sides. There's an air of neglect about it." + icon_state = "d12" + sides = 12 + +/obj/item/weapon/dice/d20 + name = "d20" + desc = "A die with twenty sides. The prefered die to throw at the GM." + icon_state = "d20" + sides = 20 + +/obj/item/weapon/dice/d100 + name = "d100" + desc = "A die with one hundred sides! Probably not fairly weighted..." + icon_state = "d100" + sides = 100 + +/obj/item/weapon/dice/d100/update_icon() + return + +/obj/item/weapon/dice/attack_self(mob/user) + diceroll(user) + +/obj/item/weapon/dice/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0) + if(!..()) + return + diceroll(thrower) + +/obj/item/weapon/dice/proc/diceroll(mob/user) + result = rand(1, sides) + var/fake_result = rand(1, sides)//Daredevil isn't as good as he used to be + var/comment = "" + if(sides == 20 && result == 20) + comment = "Nat 20!" + else if(sides == 20 && result == 1) + comment = "Ouch, bad luck." + update_icon() + if(initial(icon_state) == "d00") + result = (result - 1)*10 + if(special_faces.len == sides) + result = special_faces[result] + if(user != null) //Dice was rolled in someone's hand + user.visible_message("[user] has thrown [src]. It lands on [result]. [comment]", \ + "You throw [src]. It lands on [result]. [comment]", \ + "You hear [src] rolling, it sounds like a [fake_result].") + else if(src.throwing == 0) //Dice was thrown and is coming to rest + visible_message("[src] rolls to a stop, landing on [result]. [comment]") + +/obj/item/weapon/dice/d4/Crossed(mob/living/carbon/human/H) + if(istype(H) && !H.shoes) + if(PIERCEIMMUNE in H.dna.species.specflags) + return 0 + H << "You step on the D4!" + H.apply_damage(4,BRUTE,(pick("l_leg", "r_leg"))) + H.Weaken(3) + +/obj/item/weapon/dice/update_icon() + cut_overlays() + add_overlay("[src.icon_state][src.result]") diff --git a/code/game/objects/items/weapons/dna_injector.dm b/code/game/objects/items/weapons/dna_injector.dm new file mode 100644 index 0000000..f8e83e2 --- /dev/null +++ b/code/game/objects/items/weapons/dna_injector.dm @@ -0,0 +1,367 @@ +/obj/item/weapon/dnainjector + name = "\improper DNA injector" + desc = "This injects the person with DNA." + icon = 'icons/obj/items.dmi' + icon_state = "dnainjector" + throw_speed = 3 + throw_range = 5 + w_class = 1 + origin_tech = "biotech=1" + + var/damage_coeff = 1 + var/list/fields + var/list/add_mutations = list() + var/list/remove_mutations = list() + + var/list/add_mutations_static = list() + var/list/remove_mutations_static = list() + + var/used = 0 + +/obj/item/weapon/dnainjector/attack_paw(mob/user) + return attack_hand(user) + +/obj/item/weapon/dnainjector/proc/prepare() + for(var/mut_key in add_mutations_static) + add_mutations.Add(mutations_list[mut_key]) + for(var/mut_key in remove_mutations_static) + remove_mutations.Add(mutations_list[mut_key]) + +/obj/item/weapon/dnainjector/proc/inject(mob/living/carbon/M, mob/user) + prepare() + + if(M.has_dna() && !(M.disabilities & NOCLONE)) + M.radiation += rand(20/(damage_coeff ** 2),50/(damage_coeff ** 2)) + var/log_msg = "[key_name(user)] injected [key_name(M)] with the [name]" + for(var/datum/mutation/human/HM in remove_mutations) + HM.force_lose(M) + for(var/datum/mutation/human/HM in add_mutations) + if(HM.name == RACEMUT) + message_admins("[key_name_admin(user)] injected [key_name_admin(M)] with the [name] (MONKEY)") + log_msg += " (MONKEY)" + HM.force_give(M) + if(fields) + if(fields["name"] && fields["UE"] && fields["blood_type"]) + M.real_name = fields["name"] + M.dna.unique_enzymes = fields["UE"] + M.name = M.real_name + M.dna.blood_type = fields["blood_type"] + if(fields["UI"]) //UI+UE + M.dna.uni_identity = merge_text(M.dna.uni_identity, fields["UI"]) + M.updateappearance(mutations_overlay_update=1) + log_attack(log_msg) + else + user << "It appears that [M] does not have compatible DNA." + return + +/obj/item/weapon/dnainjector/attack(mob/target, mob/user) + if(!user.IsAdvancedToolUser()) + user << "You don't have the dexterity to do this!" + return + if(used) + user << "This injector is used up!" + return + if(ishuman(target)) + var/mob/living/carbon/human/humantarget = target + if (!humantarget.can_inject(user, 1)) + return + add_logs(user, target, "attempted to inject", src) + + if(target != user) + target.visible_message("[user] is trying to inject [target] with [src]!", "[user] is trying to inject [target] with [src]!") + if(!do_mob(user, target) || used) + return + target.visible_message("[user] injects [target] with the syringe with [src]!", \ + "[user] injects [target] with the syringe with [src]!") + + else + user << "You inject yourself with [src]." + + add_logs(user, target, "injected", src) + + inject(target, user) //Now we actually do the heavy lifting. + used = 1 + icon_state = "dnainjector0" + desc += " This one is used up." + + +/obj/item/weapon/dnainjector/antihulk + name = "\improper DNA injector (Anti-Hulk)" + desc = "Cures green skin." + remove_mutations_static = list(HULK) + +/obj/item/weapon/dnainjector/hulkmut + name = "\improper DNA injector (Hulk)" + desc = "This will make you big and strong, but give you a bad skin condition." + add_mutations_static = list(HULK) + +/obj/item/weapon/dnainjector/xraymut + name = "\improper DNA injector (Xray)" + desc = "Finally you can see what the Captain does." + add_mutations_static = list(XRAY) + +/obj/item/weapon/dnainjector/antixray + name = "\improper DNA injector (Anti-Xray)" + desc = "It will make you see harder." + remove_mutations_static = list(XRAY) + +///////////////////////////////////// +/obj/item/weapon/dnainjector/antiglasses + name = "\improper DNA injector (Anti-Glasses)" + desc = "Toss away those glasses!" + remove_mutations_static = list(BADSIGHT) + +/obj/item/weapon/dnainjector/glassesmut + name = "\improper DNA injector (Glasses)" + desc = "Will make you need dorkish glasses." + add_mutations_static = list(BADSIGHT) + +/obj/item/weapon/dnainjector/epimut + name = "\improper DNA injector (Epi.)" + desc = "Shake shake shake the room!" + add_mutations_static = list(EPILEPSY) + +/obj/item/weapon/dnainjector/antiepi + name = "\improper DNA injector (Anti-Epi.)" + desc = "Will fix you up from shaking the room." + remove_mutations_static = list(EPILEPSY) +//////////////////////////////////// +/obj/item/weapon/dnainjector/anticough + name = "\improper DNA injector (Anti-Cough)" + desc = "Will stop that aweful noise." + remove_mutations_static = list(COUGH) + +/obj/item/weapon/dnainjector/coughmut + name = "\improper DNA injector (Cough)" + desc = "Will bring forth a sound of horror from your throat." + add_mutations_static = list(COUGH) + +/obj/item/weapon/dnainjector/antidwarf + name = "\improper DNA injector (Anti-Dwarfism)" + desc = "Helps you grow big and strong." + remove_mutations_static = list(DWARFISM) + +/obj/item/weapon/dnainjector/dwarf + name = "\improper DNA injector (Dwarfism)" + desc = "It's a small world after all." + add_mutations_static = list(DWARFISM) + +/obj/item/weapon/dnainjector/clumsymut + name = "\improper DNA injector (Clumsy)" + desc = "Makes clown minions." + add_mutations_static = list(CLOWNMUT) + +/obj/item/weapon/dnainjector/anticlumsy + name = "\improper DNA injector (Anti-Clumsy)" + desc = "Apply this for Security Clown." + remove_mutations_static = list(CLOWNMUT) + +/obj/item/weapon/dnainjector/antitour + name = "\improper DNA injector (Anti-Tour.)" + desc = "Will cure tourrets." + remove_mutations_static = list(TOURETTES) + +/obj/item/weapon/dnainjector/tourmut + name = "\improper DNA injector (Tour.)" + desc = "Gives you a nasty case off Tourette's." + add_mutations_static = list(TOURETTES) + +/obj/item/weapon/dnainjector/stuttmut + name = "\improper DNA injector (Stutt.)" + desc = "Makes you s-s-stuttterrr" + add_mutations_static = list(NERVOUS) + +/obj/item/weapon/dnainjector/antistutt + name = "\improper DNA injector (Anti-Stutt.)" + desc = "Fixes that speaking impairment." + remove_mutations_static = list(NERVOUS) + +/obj/item/weapon/dnainjector/antifire + name = "\improper DNA injector (Anti-Fire)" + desc = "Cures fire." + remove_mutations_static = list(COLDRES) + +/obj/item/weapon/dnainjector/firemut + name = "\improper DNA injector (Fire)" + desc = "Gives you fire." + add_mutations_static = list(COLDRES) + +/obj/item/weapon/dnainjector/blindmut + name = "\improper DNA injector (Blind)" + desc = "Makes you not see anything." + add_mutations_static = list(BLINDMUT) + +/obj/item/weapon/dnainjector/antiblind + name = "\improper DNA injector (Anti-Blind)" + desc = "IT'S A MIRACLE!!!" + remove_mutations_static = list(BLINDMUT) + +/obj/item/weapon/dnainjector/antitele + name = "\improper DNA injector (Anti-Tele.)" + desc = "Will make you not able to control your mind." + remove_mutations_static = list(TK) + +/obj/item/weapon/dnainjector/telemut + name = "\improper DNA injector (Tele.)" + desc = "Super brain man!" + add_mutations_static = list(TK) + +/obj/item/weapon/dnainjector/telemut/darkbundle + name = "\improper DNA injector" + desc = "Good. Let the hate flow through you." + +/obj/item/weapon/dnainjector/deafmut + name = "\improper DNA injector (Deaf)" + desc = "Sorry, what did you say?" + add_mutations_static = list(DEAFMUT) + +/obj/item/weapon/dnainjector/antideaf + name = "\improper DNA injector (Anti-Deaf)" + desc = "Will make you hear once more." + remove_mutations_static = list(DEAFMUT) + +/obj/item/weapon/dnainjector/h2m + name = "\improper DNA injector (Human > Monkey)" + desc = "Will make you a flea bag." + add_mutations_static = list(RACEMUT) + +/obj/item/weapon/dnainjector/m2h + name = "\improper DNA injector (Monkey > Human)" + desc = "Will make you...less hairy." + remove_mutations_static = list(RACEMUT) + +/obj/item/weapon/dnainjector/antichameleon + name = "\improper DNA injector (Anti-Chameleon)" + remove_mutations_static = list(CHAMELEON) + +/obj/item/weapon/dnainjector/chameleonmut + name = "\improper DNA injector (Chameleon)" + add_mutations_static = list(CHAMELEON) + +/obj/item/weapon/dnainjector/antiwacky + name = "\improper DNA injector (Anti-Wacky)" + remove_mutations_static = list(WACKY) + +/obj/item/weapon/dnainjector/wackymut + name = "\improper DNA injector (Wacky)" + add_mutations_static = list(WACKY) + +/obj/item/weapon/dnainjector/antimute + name = "\improper DNA injector (Anti-Mute)" + remove_mutations_static = list(MUT_MUTE) + +/obj/item/weapon/dnainjector/mutemut + name = "\improper DNA injector (Mute)" + add_mutations_static = list(MUT_MUTE) + +/obj/item/weapon/dnainjector/antismile + name = "\improper DNA injector (Anti-Smile)" + remove_mutations_static = list(SMILE) + +/obj/item/weapon/dnainjector/smilemut + name = "\improper DNA injector (Smile)" + add_mutations_static = list(SMILE) + +/obj/item/weapon/dnainjector/unintelligablemut + name = "\improper DNA injector (Unintelligable)" + add_mutations_static = list(UNINTELLIGABLE) + +/obj/item/weapon/dnainjector/antiunintelligable + name = "\improper DNA injector (Anti-Unintelligable)" + remove_mutations_static = list(UNINTELLIGABLE) + +/obj/item/weapon/dnainjector/swedishmut + name = "\improper DNA injector (Swedish)" + add_mutations_static = list(SWEDISH) + +/obj/item/weapon/dnainjector/antiswedish + name = "\improper DNA injector (Anti-Swedish)" + remove_mutations_static = list(SWEDISH) + +/obj/item/weapon/dnainjector/chavmut + name = "\improper DNA injector (Chav)" + add_mutations_static = list(CHAV) + +/obj/item/weapon/dnainjector/antichav + name = "\improper DNA injector (Anti-Chav)" + remove_mutations_static = list(CHAV) + +/obj/item/weapon/dnainjector/elvismut + name = "\improper DNA injector (Elvis)" + add_mutations_static = list(ELVIS) + +/obj/item/weapon/dnainjector/antielvis + name = "\improper DNA injector (Anti-Elvis)" + remove_mutations_static = list(ELVIS) + +/obj/item/weapon/dnainjector/lasereyesmut + name = "\improper DNA injector (Laser Eyes)" + add_mutations_static = list(LASEREYES) + +/obj/item/weapon/dnainjector/antilasereyes + name = "\improper DNA injector (Anti-Laser Eyes)" + remove_mutations_static = list(LASEREYES) + +/obj/item/weapon/dnainjector/timed + var/duration = 600 + +/obj/item/weapon/dnainjector/timed/inject(mob/living/carbon/M, mob/user) + prepare() + + if(M.has_dna() && !(M.disabilities & NOCLONE)) + if(M.stat == DEAD) //prevents dead people from having their DNA changed + user << "You can't modify [M]'s DNA while \he's dead." + return + M.radiation += rand(20/(damage_coeff ** 2),50/(damage_coeff ** 2)) + var/log_msg = "[key_name(user)] injected [key_name(M)] with the [name]" + var/endtime = world.time+duration + for(var/datum/mutation/human/HM in remove_mutations) + if(HM.name == RACEMUT) + if(ishuman(M)) + continue + M = HM.force_lose(M) + else + HM.force_lose(M) + for(var/datum/mutation/human/HM in add_mutations) + if((HM in M.dna.mutations) && !(M.dna.temporary_mutations[HM.name])) + continue //Skip permanent mutations we already have. + if(HM.name == RACEMUT && ishuman(M)) + message_admins("[key_name_admin(user)] injected [key_name_admin(M)] with the [name] (MONKEY)") + log_msg += " (MONKEY)" + M = HM.force_give(M) + else + HM.force_give(M) + M.dna.temporary_mutations[HM.name] = endtime + if(fields) + if(fields["name"] && fields["UE"] && fields["blood_type"]) + if(!M.dna.previous["name"]) + M.dna.previous["name"] = M.real_name + if(!M.dna.previous["UE"]) + M.dna.previous["UE"] = M.dna.unique_enzymes + if(!M.dna.previous["blood_type"]) + M.dna.previous["blood_type"] = M.dna.blood_type + M.real_name = fields["name"] + M.dna.unique_enzymes = fields["UE"] + M.name = M.real_name + M.dna.blood_type = fields["blood_type"] + M.dna.temporary_mutations[UE_CHANGED] = endtime + if(fields["UI"]) //UI+UE + if(!M.dna.previous["UI"]) + M.dna.previous["UI"] = M.dna.uni_identity + M.dna.uni_identity = merge_text(M.dna.uni_identity, fields["UI"]) + M.updateappearance(mutations_overlay_update=1) + M.dna.temporary_mutations[UI_CHANGED] = endtime + log_attack(log_msg) + else + user << "It appears that [M] does not have compatible DNA." + return + +/obj/item/weapon/dnainjector/timed/hulk + name = "\improper DNA injector (Hulk)" + desc = "This will make you big and strong, but give you a bad skin condition." + add_mutations_static = list(HULK) + +/obj/item/weapon/dnainjector/timed/h2m + name = "\improper DNA injector (Human > Monkey)" + desc = "Will make you a flea bag." + add_mutations_static = list(RACEMUT) diff --git a/code/game/objects/items/weapons/explosives.dm b/code/game/objects/items/weapons/explosives.dm new file mode 100644 index 0000000..3845a79 --- /dev/null +++ b/code/game/objects/items/weapons/explosives.dm @@ -0,0 +1,116 @@ +//In this file: C4 + +/obj/item/weapon/c4 + name = "C-4" + desc = "Used to put holes in specific areas without too much extra hole." + gender = PLURAL + icon = 'icons/obj/grenade.dmi' + icon_state = "plastic-explosive0" + item_state = "plasticx" + flags = NOBLUDGEON + w_class = 2 + origin_tech = "syndicate=1" + var/timer = 10 + var/open_panel = 0 + parent_type = /obj/item/weapon/grenade/plastic/c4 + +/obj/item/weapon/c4/New() + wires = new /datum/wires/explosive/c4(src) + image_overlay = image('icons/obj/grenade.dmi', "plastic-explosive2") + ..() + +/obj/item/weapon/c4/Destroy() + qdel(wires) + wires = null + target = null + return ..() + +/obj/item/weapon/c4/suicide_act(mob/user) + user.visible_message("[user] activates the [src.name] and holds it above [user.p_their()] head! It looks like [user.p_theyre()] going out with a bang!") + var/message_say = "FOR NO RAISIN!" + if(user.mind) + if(user.mind.special_role) + var/role = lowertext(user.mind.special_role) + if(role == "traitor" || role == "syndicate") + message_say = "FOR THE SYNDICATE!" + else if(role == "changeling") + message_say = "FOR THE HIVE!" + else if(role == "cultist") + message_say = "FOR NAR-SIE!" + else if(role == "revolutionary" || role == "head revolutionary") + message_say = "VIVA LA REVOLUTION!" + else if(user.mind.gang_datum) + message_say = "[uppertext(user.mind.gang_datum.name)] RULES!" + user.say(message_say) + target = user + message_admins("[ADMIN_LOOKUPFLW(user)] suicided with [name] at [ADMIN_COORDJMP(src)]",0,1) + message_admins("[key_name(user)] suicided with [name] at ([x],[y],[z])") + sleep(10) + explode(get_turf(user)) + user.gib(1, 1) + +/obj/item/weapon/c4/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/screwdriver)) + open_panel = !open_panel + user << "You [open_panel ? "open" : "close"] the wire panel." + else if(is_wire_tool(I)) + wires.interact(user) + else + return ..() + +/obj/item/weapon/c4/attack_self(mob/user) + var/newtime = input(usr, "Please set the timer.", "Timer", 10) as num + if(user.get_active_held_item() == src) + newtime = Clamp(newtime, 10, 60000) + timer = newtime + user << "Timer set for [timer] seconds." + +/obj/item/weapon/c4/afterattack(atom/movable/AM, mob/user, flag) + if (!flag) + return + if (ismob(AM)) + return + if(loc == AM) + return + if((istype(AM, /obj/item/weapon/storage/)) && !((istype(AM, /obj/item/weapon/storage/secure)) || (istype(AM, /obj/item/weapon/storage/lockbox)))) //If its storage but not secure storage OR a lockbox, then place it inside. + return + if((istype(AM,/obj/item/weapon/storage/secure)) || (istype(AM, /obj/item/weapon/storage/lockbox))) + var/obj/item/weapon/storage/secure/S = AM + if(!S.locked) //Literal hacks, this works for lockboxes despite incorrect type casting, because they both share the locked var. But if its unlocked, place it inside, otherwise PLANTING C4! + return + + user << "You start planting the bomb..." + + if(do_after(user, 50, target = AM)) + if(!user.unEquip(src)) + return + src.target = AM + loc = null + + var/message = "[ADMIN_LOOKUPFLW(user)] planted [name] on [target.name] at [ADMIN_COORDJMP(target)] with [timer] second fuse" + bombers += message + message_admins(message,0,1) + log_game("[key_name(user)] planted [name] on [target.name] at [COORD(target)] with [timer] second fuse") + + target.add_overlay(image_overlay, 1) + user << "You plant the bomb. Timer counting down from [timer]." + addtimer(src, "explode", timer * 10) + +/obj/item/weapon/c4/proc/explode() + if(qdeleted(src)) + return + var/turf/location + if(target) + if(!qdeleted(target)) + location = get_turf(target) + target.overlays -= image_overlay + target.priority_overlays -= image_overlay + else + location = get_turf(src) + if(location) + location.ex_act(2, target) + explosion(location,0,0,3) + qdel(src) + +/obj/item/weapon/c4/attack(mob/M, mob/user, def_zone) + return diff --git a/code/game/objects/items/weapons/extinguisher.dm b/code/game/objects/items/weapons/extinguisher.dm new file mode 100644 index 0000000..917be18 --- /dev/null +++ b/code/game/objects/items/weapons/extinguisher.dm @@ -0,0 +1,180 @@ +/obj/item/weapon/extinguisher + name = "fire extinguisher" + desc = "A traditional red fire extinguisher." + icon = 'icons/obj/items.dmi' + icon_state = "fire_extinguisher0" + item_state = "fire_extinguisher" + hitsound = 'sound/weapons/smash.ogg' + flags = CONDUCT + throwforce = 10 + w_class = 3 + throw_speed = 2 + throw_range = 7 + force = 10 + materials = list(MAT_METAL=90) + attack_verb = list("slammed", "whacked", "bashed", "thunked", "battered", "bludgeoned", "thrashed") + dog_fashion = /datum/dog_fashion/back + resistance_flags = FIRE_PROOF + var/max_water = 50 + var/last_use = 1 + var/safety = 1 + var/sprite_name = "fire_extinguisher" + var/power = 5 //Maximum distance launched water will travel + var/precision = 0 //By default, turfs picked from a spray are random, set to 1 to make it always have at least one water effect per row + var/cooling_power = 2 //Sets the cooling_temperature of the water reagent datum inside of the extinguisher when it is refilled + +/obj/item/weapon/extinguisher/mini + name = "pocket fire extinguisher" + desc = "A light and compact fibreglass-framed model fire extinguisher." + icon_state = "miniFE0" + item_state = "miniFE" + hitsound = null //it is much lighter, after all. + flags = null //doesn't CONDUCT + throwforce = 2 + w_class = 2 + force = 3 + materials = list() + max_water = 30 + sprite_name = "miniFE" + dog_fashion = null + +/obj/item/weapon/extinguisher/New() + ..() + create_reagents(max_water) + reagents.add_reagent("water", max_water) + +/obj/item/weapon/extinguisher/attack_self(mob/user) + safety = !safety + src.icon_state = "[sprite_name][!safety]" + src.desc = "The safety is [safety ? "on" : "off"]." + user << "The safety is [safety ? "on" : "off"]." + return + +/obj/item/weapon/extinguisher/attack(mob/M, mob/user) + if(user.a_intent == "help") + // If we're in help intent, don't bash anyone with the + // extinguisher + user.visible_message("[user] targets [M] with \the [src]", "You target [M] with \the [src].") + return 0 + else + return ..() + +/obj/item/weapon/extinguisher/examine(mob/user) + ..() + if(reagents.total_volume) + user << "It contains [round(reagents.total_volume)] units." + else + user << "It is empty." + +/obj/item/weapon/extinguisher/proc/AttemptRefill(atom/target, mob/user) + if(istype(target, /obj/structure/reagent_dispensers/watertank) && target.Adjacent(user)) + var/safety_save = safety + safety = 1 + if(reagents.total_volume == reagents.maximum_volume) + user << "\The [src] is already full!" + safety = safety_save + return 1 + var/obj/structure/reagent_dispensers/watertank/W = target + var/transferred = W.reagents.trans_to(src, max_water) + if(transferred > 0) + user << "\The [src] has been refilled by [transferred] units." + playsound(src.loc, 'sound/effects/refill.ogg', 50, 1, -6) + for(var/datum/reagent/water/R in reagents.reagent_list) + R.cooling_temperature = cooling_power + else + user << "\The [W] is empty!" + safety = safety_save + return 1 + else + return 0 + +/obj/item/weapon/extinguisher/afterattack(atom/target, mob/user , flag) + //TODO; Add support for reagents in water. + var/Refill = AttemptRefill(target, user) + if(Refill) + return + if (!safety) + if (src.reagents.total_volume < 1) + usr << "\The [src] is empty!" + return + + if (world.time < src.last_use + 12) + return + + src.last_use = world.time + + playsound(src.loc, 'sound/effects/extinguish.ogg', 75, 1, -3) + + var/direction = get_dir(src,target) + + if(user.buckled && isobj(user.buckled) && !user.buckled.anchored) + spawn(0) + var/obj/B = user.buckled + var/movementdirection = turn(direction,180) + step(B, movementdirection) + sleep(1) + step(B, movementdirection) + sleep(1) + step(B, movementdirection) + sleep(1) + step(B, movementdirection) + sleep(2) + step(B, movementdirection) + sleep(2) + step(B, movementdirection) + sleep(3) + step(B, movementdirection) + sleep(3) + step(B, movementdirection) + sleep(3) + step(B, movementdirection) + + else user.newtonian_move(turn(direction, 180)) + + var/turf/T = get_turf(target) + var/turf/T1 = get_step(T,turn(direction, 90)) + var/turf/T2 = get_step(T,turn(direction, -90)) + var/list/the_targets = list(T,T1,T2) + if(precision) + var/turf/T3 = get_step(T1, turn(direction, 90)) + var/turf/T4 = get_step(T2,turn(direction, -90)) + the_targets = list(T,T1,T2,T3,T4) + + for(var/a=0, a<5, a++) + spawn(0) + var/obj/effect/particle_effect/water/W = PoolOrNew( /obj/effect/particle_effect/water, get_turf(src) ) + var/turf/my_target = pick(the_targets) + if(precision) + the_targets -= my_target + var/datum/reagents/R = new/datum/reagents(5) + if(!W) return + W.reagents = R + R.my_atom = W + if(!W || !src) return + src.reagents.trans_to(W,1) + for(var/b=0, bYou quietly empty out \the [src] using its release valve.") diff --git a/code/game/objects/items/weapons/flamethrower.dm b/code/game/objects/items/weapons/flamethrower.dm new file mode 100644 index 0000000..deeb924 --- /dev/null +++ b/code/game/objects/items/weapons/flamethrower.dm @@ -0,0 +1,241 @@ +/obj/item/weapon/flamethrower + name = "flamethrower" + desc = "You are a firestarter!" + icon = 'icons/obj/flamethrower.dmi' + icon_state = "flamethrowerbase" + item_state = "flamethrower_0" + flags = CONDUCT + force = 3 + throwforce = 10 + throw_speed = 1 + throw_range = 5 + w_class = 3 + materials = list(MAT_METAL=500) + origin_tech = "combat=1;plasmatech=2;engineering=2" + resistance_flags = FIRE_PROOF + var/status = 0 + var/throw_amount = 100 + var/lit = 0 //on or off + var/operating = 0//cooldown + var/obj/item/weapon/weldingtool/weldtool = null + var/obj/item/device/assembly/igniter/igniter = null + var/obj/item/weapon/tank/internals/plasma/ptank = null + var/warned_admins = 0 //for the message_admins() when lit + + +/obj/item/weapon/flamethrower/Destroy() + if(weldtool) + qdel(weldtool) + if(igniter) + qdel(igniter) + if(ptank) + qdel(ptank) + return ..() + + +/obj/item/weapon/flamethrower/process() + if(!lit) + STOP_PROCESSING(SSobj, src) + return null + var/turf/location = loc + if(istype(location, /mob/)) + var/mob/M = location + if(M.is_holding(src)) + location = M.loc + if(isturf(location)) //start a fire if possible + location.hotspot_expose(700, 2) + return + + +/obj/item/weapon/flamethrower/update_icon() + cut_overlays() + if(igniter) + add_overlay("+igniter[status]") + if(ptank) + add_overlay("+ptank") + if(lit) + add_overlay("+lit") + item_state = "flamethrower_1" + else + item_state = "flamethrower_0" + return + +/obj/item/weapon/flamethrower/afterattack(atom/target, mob/user, flag) + if(flag) return // too close + // Make sure our user is still holding us + if(user && user.get_active_held_item() == src) + var/turf/target_turf = get_turf(target) + if(target_turf) + var/turflist = getline(user, target_turf) + add_logs(user, target, "flamethrowered", src) + flame_turf(turflist) + +/obj/item/weapon/flamethrower/attackby(obj/item/W, mob/user, params) + if(istype(W, /obj/item/weapon/wrench) && !status)//Taking this apart + var/turf/T = get_turf(src) + if(weldtool) + weldtool.loc = T + weldtool = null + if(igniter) + igniter.loc = T + igniter = null + if(ptank) + ptank.loc = T + ptank = null + new /obj/item/stack/rods(T) + qdel(src) + return + + else if(istype(W, /obj/item/weapon/screwdriver) && igniter && !lit) + status = !status + user << "[igniter] is now [status ? "secured" : "unsecured"]!" + update_icon() + return + + else if(isigniter(W)) + var/obj/item/device/assembly/igniter/I = W + if(I.secured) + return + if(igniter) + return + if(!user.unEquip(W)) + return + I.loc = src + igniter = I + update_icon() + return + + else if(istype(W,/obj/item/weapon/tank/internals/plasma)) + if(ptank) + user << "There is already a plasma tank loaded in [src]!" + return + if(!user.unEquip(W)) + return + ptank = W + W.loc = src + update_icon() + return + + else if(istype(W, /obj/item/device/analyzer) && ptank) + atmosanalyzer_scan(ptank.air_contents, user) + else + return ..() + + +/obj/item/weapon/flamethrower/attack_self(mob/user) + if(user.stat || user.restrained() || user.lying) + return + user.set_machine(src) + if(!ptank) + user << "Attach a plasma tank first!" + return + var/dat = text("Flamethrower ([lit ? "Lit" : "Unlit"])
          \n Tank Pressure: [ptank.air_contents.return_pressure()]
          \nAmount to throw: - - - [throw_amount] + + +
          \nRemove plasmatank - Close
          ") + user << browse(dat, "window=flamethrower;size=600x300") + onclose(user, "flamethrower") + return + + +/obj/item/weapon/flamethrower/Topic(href,href_list[]) + if(href_list["close"]) + usr.unset_machine() + usr << browse(null, "window=flamethrower") + return + if(usr.stat || usr.restrained() || usr.lying) + return + usr.set_machine(src) + if(href_list["light"]) + if(!ptank) + return + if(!status) + return + lit = !lit + if(lit) + START_PROCESSING(SSobj, src) + if(!warned_admins) + message_admins("[key_name_admin(usr)]? (FLW) has lit a flamethrower.") + warned_admins = 1 + if(href_list["amount"]) + throw_amount = throw_amount + text2num(href_list["amount"]) + throw_amount = max(50, min(5000, throw_amount)) + if(href_list["remove"]) + if(!ptank) + return + usr.put_in_hands(ptank) + ptank = null + lit = 0 + usr.unset_machine() + usr << browse(null, "window=flamethrower") + for(var/mob/M in viewers(1, loc)) + if((M.client && M.machine == src)) + attack_self(M) + update_icon() + return + +/obj/item/weapon/flamethrower/CheckParts(list/parts_list) + ..() + weldtool = locate(/obj/item/weapon/weldingtool) in contents + igniter = locate(/obj/item/device/assembly/igniter) in contents + weldtool.status = 0 + igniter.secured = 0 + status = 1 + update_icon() + +//Called from turf.dm turf/dblclick +/obj/item/weapon/flamethrower/proc/flame_turf(turflist) + if(!lit || operating) + return + operating = 1 + var/turf/previousturf = get_turf(src) + for(var/turf/T in turflist) + if(T == previousturf) + continue //so we don't burn the tile we be standin on + if(!T.CanAtmosPass(previousturf)) + break + ignite_turf(T) + sleep(1) + previousturf = T + operating = 0 + for(var/mob/M in viewers(1, loc)) + if((M.client && M.machine == src)) + attack_self(M) + return + + +/obj/item/weapon/flamethrower/proc/ignite_turf(turf/target, release_amount = 0.05) + //TODO: DEFERRED Consider checking to make sure tank pressure is high enough before doing this... + //Transfer 5% of current tank air contents to turf + var/datum/gas_mixture/air_transfer = ptank.air_contents.remove_ratio(release_amount) + if(air_transfer.gases["plasma"]) + air_transfer.gases["plasma"][MOLES] *= 5 + target.assume_air(air_transfer) + //Burn it based on transfered gas + target.hotspot_expose((ptank.air_contents.temperature*2) + 380,500) + //location.hotspot_expose(1000,500,1) + SSair.add_to_active(target, 0) + return + + +/obj/item/weapon/flamethrower/full/New(var/loc) + ..() + if(!weldtool) + weldtool = new /obj/item/weapon/weldingtool(src) + weldtool.status = 0 + if(!igniter) + igniter = new /obj/item/device/assembly/igniter(src) + igniter.secured = 0 + status = 1 + update_icon() + +/obj/item/weapon/flamethrower/full/tank/New(var/loc) + ..() + ptank = new /obj/item/weapon/tank/internals/plasma/full(src) + update_icon() + + +/obj/item/weapon/flamethrower/hit_reaction(mob/living/carbon/human/owner, attack_text, final_block_chance, damage, attack_type) + if(ptank && damage && attack_type == PROJECTILE_ATTACK && prob(15)) + owner.visible_message("[attack_text] hits the fueltank on [owner]'s [src], rupturing it! What a shot!") + var/target_turf = get_turf(owner) + ignite_turf(target_turf, 100) + qdel(ptank) + return 1 //It hit the flamethrower, not them diff --git a/code/game/objects/items/weapons/gift.dm b/code/game/objects/items/weapons/gift.dm new file mode 100644 index 0000000..dc7e5f1 --- /dev/null +++ b/code/game/objects/items/weapons/gift.dm @@ -0,0 +1,82 @@ +/* Gifts and wrapping paper + * Contains: + * Gifts + * Wrapping Paper + */ + +/* + * Gifts + */ +/obj/item/weapon/a_gift + name = "gift" + desc = "PRESENTS!!!! eek!" + icon = 'icons/obj/storage.dmi' + icon_state = "giftdeliverypackage3" + item_state = "gift1" + resistance_flags = FLAMMABLE + +/obj/item/weapon/a_gift/New() + ..() + pixel_x = rand(-10,10) + pixel_y = rand(-10,10) + icon_state = "giftdeliverypackage[rand(1,5)]" + +/obj/item/weapon/a_gift/suicide_act(mob/user) + user.visible_message("[user] peeks inside [src] and cries [user.p_them()]self to death! It looks like [user.p_they()] [user.p_were()] on the naughty list...") + return (BRUTELOSS) + +/obj/item/weapon/a_gift/attack_self(mob/M) + if(M && M.mind && M.mind.special_role == "Santa") + M << "You're supposed to be spreading gifts, not opening them yourself!" + return + + var/gift_type_list = list(/obj/item/weapon/sord, + /obj/item/weapon/storage/wallet, + /obj/item/weapon/storage/photo_album, + /obj/item/weapon/storage/box/snappops, + /obj/item/weapon/storage/crayons, + /obj/item/weapon/storage/backpack/holding, + /obj/item/weapon/storage/belt/champion, + /obj/item/weapon/soap/deluxe, + /obj/item/weapon/pickaxe/diamond, + /obj/item/weapon/pen/invisible, + /obj/item/weapon/lipstick/random, + /obj/item/weapon/grenade/smokebomb, + /obj/item/weapon/grown/corncob, + /obj/item/weapon/poster/contraband, + /obj/item/weapon/poster/legit, + /obj/item/weapon/book/manual/barman_recipes, + /obj/item/weapon/book/manual/chef_recipes, + /obj/item/weapon/bikehorn, + /obj/item/toy/beach_ball, + /obj/item/toy/beach_ball/holoball, + /obj/item/weapon/banhammer, + /obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/deus, + /obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/vulgaris, + /obj/item/device/paicard, + /obj/item/device/instrument/violin, + /obj/item/device/instrument/guitar, + /obj/item/weapon/storage/belt/utility/full, + /obj/item/clothing/neck/tie/horrible, + /obj/item/clothing/suit/jacket/leather, + /obj/item/clothing/suit/jacket/leather/overcoat, + /obj/item/clothing/suit/poncho, + /obj/item/clothing/suit/poncho/green, + /obj/item/clothing/suit/poncho/red, + /obj/item/clothing/suit/snowman, + /obj/item/clothing/head/snowman) + + gift_type_list += subtypesof(/obj/item/clothing/head/collectable) + gift_type_list += subtypesof(/obj/item/toy) - (((typesof(/obj/item/toy/cards) - /obj/item/toy/cards/deck) + /obj/item/toy/figure + /obj/item/toy/ammo)) //All toys, except for abstract types and syndicate cards. + + var/gift_type = pick(gift_type_list) + + if(!ispath(gift_type,/obj/item)) + return + + var/obj/item/I = new gift_type(M) + M.unEquip(src, 1) + M.put_in_hands(I) + I.add_fingerprint(M) + qdel(src) + return diff --git a/code/game/objects/items/weapons/grenades/atmosgrenade.dm b/code/game/objects/items/weapons/grenades/atmosgrenade.dm new file mode 100644 index 0000000..3dbfc9b --- /dev/null +++ b/code/game/objects/items/weapons/grenades/atmosgrenade.dm @@ -0,0 +1,28 @@ + + + +/obj/item/weapon/grenade/gas + name = "Plasma Fire Grenade" + desc = "A compressed plasma grenade, used to start horrific plasma fires." + origin_tech = "materials=3;magnets=4;syndicate=4" + icon = 'icons/obj/grenade.dmi' + icon_state = "syndicate" + item_state = "flashbang" + var/spawn_contents = "plasma=100;TEMP=1000" + +/obj/item/weapon/grenade/gas/prime() + var/turf/target_turf = get_turf(src) + if(istype(target_turf)) + target_turf.atmos_spawn_air(spawn_contents) + target_turf.air_update_turf() + qdel(src) + +/obj/item/weapon/grenade/gas/knockout + name = "Knockout Grenade" + desc = "A grenade that floods the area with nitrous oxide, putting everyone to sleep." + spawn_contents = "n2o=100;TEMP=293.15" + +/obj/item/weapon/grenade/gas/freeze + name = "Freon Grenade" + desc = "A grenade which freezes over everything near its detonation area." + spawn_contents = "freon=100;TEMP=120" \ No newline at end of file diff --git a/code/game/objects/items/weapons/grenades/chem_grenade.dm b/code/game/objects/items/weapons/grenades/chem_grenade.dm new file mode 100644 index 0000000..9c973e4 --- /dev/null +++ b/code/game/objects/items/weapons/grenades/chem_grenade.dm @@ -0,0 +1,493 @@ +#define EMPTY 1 +#define WIRED 2 +#define READY 3 + +/obj/item/weapon/grenade/chem_grenade + name = "chemical grenade" + desc = "A custom made grenade." + icon_state = "chemg" + item_state = "flashbang" + w_class = 2 + force = 2 + var/stage = EMPTY + var/list/beakers = list() + var/list/allowed_containers = list(/obj/item/weapon/reagent_containers/glass/beaker, /obj/item/weapon/reagent_containers/glass/bottle) + var/affected_area = 3 + var/obj/item/device/assembly_holder/nadeassembly = null + var/assemblyattacher + var/ignition_temp = 10 // The amount of heat added to the reagents when this grenade goes off. + var/threatscale = 1 // Used by advanced grenades to make them slightly more worthy. + +/obj/item/weapon/grenade/chem_grenade/New() + create_reagents(1000) + stage_change() // If no argument is set, it will change the stage to the current stage, useful for stock grenades that start READY. + + +/obj/item/weapon/grenade/chem_grenade/examine(mob/user) + display_timer = (stage == READY && !nadeassembly) //show/hide the timer based on assembly state + ..() + + +/obj/item/weapon/grenade/chem_grenade/attack_self(mob/user) + if(stage == READY && !active) + if(nadeassembly) + nadeassembly.attack_self(user) + else if(clown_check(user)) + var/turf/bombturf = get_turf(src) + var/area/A = get_area(bombturf) + message_admins("[key_name_admin(usr)]? (FLW) has primed a [name] for detonation at [A.name] (JMP).") + log_game("[key_name(usr)] has primed a [name] for detonation at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z]).") + user << "You prime the [name]! [det_time / 10] second\s!" + playsound(user.loc, 'sound/weapons/armbomb.ogg', 60, 1) + active = 1 + icon_state = initial(icon_state) + "_active" + if(iscarbon(user)) + var/mob/living/carbon/C = user + C.throw_mode_on() + + addtimer(src, "prime", det_time) + + +/obj/item/weapon/grenade/chem_grenade/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/screwdriver)) + if(stage == WIRED) + if(beakers.len) + stage_change(READY) + user << "You lock the [initial(name)] assembly." + playsound(loc, 'sound/items/Screwdriver.ogg', 25, -3) + else + user << "You need to add at least one beaker before locking the [initial(name)] assembly!" + else if(stage == READY && !nadeassembly) + det_time = det_time == 50 ? 30 : 50 //toggle between 30 and 50 + user << "You modify the time delay. It's set for [det_time / 10] second\s." + else if(stage == EMPTY) + user << "You need to add an activation mechanism!" + + else if(stage == WIRED && is_type_in_list(I, allowed_containers)) + . = 1 //no afterattack + if(beakers.len == 2) + user << "[src] can not hold more containers!" + return + else + if(I.reagents.total_volume) + if(!user.unEquip(I)) + return + user << "You add [I] to the [initial(name)] assembly." + I.loc = src + beakers += I + else + user << "[I] is empty!" + + else if(stage == EMPTY && istype(I, /obj/item/device/assembly_holder)) + . = 1 // no afterattack + var/obj/item/device/assembly_holder/A = I + if(isigniter(A.a_left) == isigniter(A.a_right)) //Check if either part of the assembly has an igniter, but if both parts are igniters, then fuck it + return + if(!user.unEquip(I)) + return + + nadeassembly = A + A.master = src + A.loc = src + assemblyattacher = user.ckey + + stage_change(WIRED) + user << "You add [A] to the [initial(name)] assembly." + + else if(stage == EMPTY && istype(I, /obj/item/stack/cable_coil)) + var/obj/item/stack/cable_coil/C = I + if (C.use(1)) + det_time = 50 // In case the cable_coil was removed and readded. + stage_change(WIRED) + user << "You rig the [initial(name)] assembly." + else + user << "You need one length of coil to wire the assembly!" + return + + else if(stage == READY && istype(I, /obj/item/weapon/wirecutters)) + stage_change(WIRED) + user << "You unlock the [initial(name)] assembly." + + else if(stage == WIRED && istype(I, /obj/item/weapon/wrench)) + if(beakers.len) + for(var/obj/O in beakers) + O.loc = get_turf(src) + beakers = list() + user << "You open the [initial(name)] assembly and remove the payload." + return // First use of the wrench remove beakers, then use the wrench to remove the activation mechanism. + if(nadeassembly) + nadeassembly.loc = get_turf(src) + nadeassembly.master = null + nadeassembly = null + else // If "nadeassembly = null && stage == WIRED", then it most have been cable_coil that was used. + new /obj/item/stack/cable_coil(get_turf(src),1) + stage_change(EMPTY) + user << "You remove the activation mechanism from the [initial(name)] assembly." + else + return ..() + +/obj/item/weapon/grenade/chem_grenade/proc/stage_change(N) + if(N) + stage = N + if(stage == EMPTY) + name = "[initial(name)] casing" + desc = "A do it yourself [initial(name)]!" + icon_state = initial(icon_state) + else if(stage == WIRED) + name = "unsecured [initial(name)]" + desc = "An unsecured [initial(name)] assembly." + icon_state = "[initial(icon_state)]_ass" + else if(stage == READY) + name = initial(name) + desc = initial(desc) + icon_state = "[initial(icon_state)]_locked" + + +//assembly stuff +/obj/item/weapon/grenade/chem_grenade/receive_signal() + prime() + + +/obj/item/weapon/grenade/chem_grenade/Crossed(atom/movable/AM) + if(nadeassembly) + nadeassembly.Crossed(AM) + +/obj/item/weapon/grenade/chem_grenade/on_found(mob/finder) + if(nadeassembly) + nadeassembly.on_found(finder) + +/obj/item/weapon/grenade/chem_grenade/prime() + if(stage != READY) + return + + var/list/datum/reagents/reactants = list() + for(var/obj/item/weapon/reagent_containers/glass/G in beakers) + reactants += G.reagents + + if(!chem_splash(get_turf(src), affected_area, reactants, ignition_temp, threatscale)) + playsound(loc, 'sound/items/Screwdriver2.ogg', 50, 1) + return + + if(nadeassembly) + var/mob/M = get_mob_by_ckey(assemblyattacher) + var/mob/last = get_mob_by_ckey(nadeassembly.fingerprintslast) + var/turf/T = get_turf(src) + var/area/A = get_area(T) + message_admins("grenade primed by an assembly, attached by [key_name_admin(M)](?) (FLW) and last touched by [key_name_admin(last)](?) (FLW) ([nadeassembly.a_left.name] and [nadeassembly.a_right.name]) at [A.name] (JMP).") + log_game("grenade primed by an assembly, attached by [key_name(M)] and last touched by [key_name(last)] ([nadeassembly.a_left.name] and [nadeassembly.a_right.name]) at [A.name] ([T.x], [T.y], [T.z])") + + var/turf/DT = get_turf(src) + var/area/DA = get_area(DT) + log_game("A grenade detonated at [DA.name] ([DT.x], [DT.y], [DT.z])") + + update_mob() + + qdel(src) + +//Large chem grenades accept slime cores and use the appropriately. +/obj/item/weapon/grenade/chem_grenade/large + name = "large grenade" + desc = "A custom made large grenade. It affects a larger area." + icon_state = "large_grenade" + allowed_containers = list(/obj/item/weapon/reagent_containers/glass,/obj/item/weapon/reagent_containers/food/condiment, + /obj/item/weapon/reagent_containers/food/drinks) + origin_tech = "combat=3;engineering=3" + affected_area = 5 + ignition_temp = 25 // Large grenades are slightly more effective at setting off heat-sensitive mixtures than smaller grenades. + threatscale = 1.1 // 10% more effective. + +/obj/item/weapon/grenade/chem_grenade/large/prime() + if(stage != READY) + return + + for(var/obj/item/slime_extract/S in beakers) + if(S.Uses) + for(var/obj/item/weapon/reagent_containers/glass/G in beakers) + G.reagents.trans_to(S, G.reagents.total_volume) + + //If there is still a core (sometimes it's used up) + //and there are reagents left, behave normally + + if(S && S.reagents && S.reagents.total_volume) + S.reagents.trans_to(src,S.reagents.total_volume) + return + ..() + + //I tried to just put it in the allowed_containers list but + //if you do that it must have reagents. If you're going to + //make a special case you might as well do it explicitly. -Sayu +/obj/item/weapon/grenade/chem_grenade/large/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/slime_extract) && stage == WIRED) + if(!user.unEquip(I)) + return + user << "You add [I] to the [initial(name)] assembly." + I.loc = src + beakers += I + else + return ..() + +/obj/item/weapon/grenade/chem_grenade/cryo // Intended for rare cryogenic mixes. Cools the area moderately upon detonation. + name = "cryo grenade" + desc = "A custom made cryogenic grenade. It rapidly cools its contents upon detonation." + icon_state = "cryog" + affected_area = 2 + ignition_temp = -100 + +/obj/item/weapon/grenade/chem_grenade/pyro // Intended for pyrotechnical mixes. Produces a small fire upon detonation, igniting potentially flammable mixtures. + name = "pyro grenade" + desc = "A custom made pyrotechnical grenade. It heats up and ignites its contents upon detonation." + icon_state = "pyrog" + origin_tech = "combat=4;engineering=4" + affected_area = 3 + ignition_temp = 500 // This is enough to expose a hotspot. + +/obj/item/weapon/grenade/chem_grenade/adv_release // Intended for weaker, but longer lasting effects. Could have some interesting uses. + name = "advanced release grenade" + desc = "A custom made advanced release grenade. It is able to be detonated more than once. Can be configured using a multitool." + icon_state = "timeg" + origin_tech = "combat=3;engineering=4" + var/unit_spread = 10 // Amount of units per repeat. Can be altered with a multitool. + +/obj/item/weapon/grenade/chem_grenade/adv_release/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/device/multitool)) + switch(unit_spread) + if(0 to 24) + unit_spread += 5 + if(25 to 99) + unit_spread += 25 + else + unit_spread = 5 + user << " You set the time release to [unit_spread] units per detonation." + return + ..() + +/obj/item/weapon/grenade/chem_grenade/adv_release/prime() + if(stage != READY) + return + + var/total_volume = 0 + for(var/obj/item/weapon/reagent_containers/RC in beakers) + total_volume += RC.reagents.total_volume + if(!total_volume) + qdel(src) + qdel(nadeassembly) + return + var/fraction = unit_spread/total_volume + var/datum/reagents/reactants = new(unit_spread) + reactants.my_atom = src + for(var/obj/item/weapon/reagent_containers/RC in beakers) + RC.reagents.trans_to(reactants, RC.reagents.total_volume*fraction, threatscale, 1, 1) + chem_splash(get_turf(src), affected_area, list(reactants), ignition_temp, threatscale) + + if(nadeassembly) + var/mob/M = get_mob_by_ckey(assemblyattacher) + var/mob/last = get_mob_by_ckey(nadeassembly.fingerprintslast) + var/turf/T = get_turf(src) + var/area/A = get_area(T) + message_admins("grenade primed by an assembly, attached by [key_name_admin(M)](?) (FLW) and last touched by [key_name_admin(last)](?) (FLW) ([nadeassembly.a_left.name] and [nadeassembly.a_right.name]) at [A.name] (JMP).") + log_game("grenade primed by an assembly, attached by [key_name(M)] and last touched by [key_name(last)] ([nadeassembly.a_left.name] and [nadeassembly.a_right.name]) at [A.name] ([T.x], [T.y], [T.z])") + else + addtimer(src, "prime", det_time) + var/turf/DT = get_turf(src) + var/area/DA = get_area(DT) + log_game("A grenade detonated at [DA.name] ([DT.x], [DT.y], [DT.z])") + + + + + +////////////////////////////// +////// PREMADE GRENADES ////// +////////////////////////////// + +/obj/item/weapon/grenade/chem_grenade/metalfoam + name = "metal foam grenade" + desc = "Used for emergency sealing of air breaches." + stage = READY + +/obj/item/weapon/grenade/chem_grenade/metalfoam/New() + ..() + var/obj/item/weapon/reagent_containers/glass/beaker/B1 = new(src) + var/obj/item/weapon/reagent_containers/glass/beaker/B2 = new(src) + + B1.reagents.add_reagent("aluminium", 30) + B2.reagents.add_reagent("foaming_agent", 10) + B2.reagents.add_reagent("facid", 10) + + beakers += B1 + beakers += B2 + + +/obj/item/weapon/grenade/chem_grenade/incendiary + name = "incendiary grenade" + desc = "Used for clearing rooms of living things." + stage = READY + +/obj/item/weapon/grenade/chem_grenade/incendiary/New() + ..() + var/obj/item/weapon/reagent_containers/glass/beaker/B1 = new(src) + var/obj/item/weapon/reagent_containers/glass/beaker/B2 = new(src) + + B1.reagents.add_reagent("phosphorus", 25) + B2.reagents.add_reagent("stable_plasma", 25) + B2.reagents.add_reagent("sacid", 25) + + beakers += B1 + beakers += B2 + + +/obj/item/weapon/grenade/chem_grenade/antiweed + name = "weedkiller grenade" + desc = "Used for purging large areas of invasive plant species. Contents under pressure. Do not directly inhale contents." + stage = READY + +/obj/item/weapon/grenade/chem_grenade/antiweed/New() + ..() + var/obj/item/weapon/reagent_containers/glass/beaker/B1 = new(src) + var/obj/item/weapon/reagent_containers/glass/beaker/B2 = new(src) + + B1.reagents.add_reagent("plantbgone", 25) + B1.reagents.add_reagent("potassium", 25) + B2.reagents.add_reagent("phosphorus", 25) + B2.reagents.add_reagent("sugar", 25) + + beakers += B1 + beakers += B2 + + +/obj/item/weapon/grenade/chem_grenade/cleaner + name = "cleaner grenade" + desc = "BLAM!-brand foaming space cleaner. In a special applicator for rapid cleaning of wide areas." + stage = READY + +/obj/item/weapon/grenade/chem_grenade/cleaner/New() + ..() + var/obj/item/weapon/reagent_containers/glass/beaker/B1 = new(src) + var/obj/item/weapon/reagent_containers/glass/beaker/B2 = new(src) + + B1.reagents.add_reagent("fluorosurfactant", 40) + B2.reagents.add_reagent("water", 40) + B2.reagents.add_reagent("cleaner", 10) + + beakers += B1 + beakers += B2 + + +/obj/item/weapon/grenade/chem_grenade/teargas + name = "teargas grenade" + desc = "Used for nonlethal riot control. Contents under pressure. Do not directly inhale contents." + stage = READY + +/obj/item/weapon/grenade/chem_grenade/teargas/New() + ..() + var/obj/item/weapon/reagent_containers/glass/beaker/large/B1 = new(src) + var/obj/item/weapon/reagent_containers/glass/beaker/large/B2 = new(src) + + B1.reagents.add_reagent("condensedcapsaicin", 60) + B1.reagents.add_reagent("potassium", 40) + B2.reagents.add_reagent("phosphorus", 40) + B2.reagents.add_reagent("sugar", 40) + + beakers += B1 + beakers += B2 + + +/obj/item/weapon/grenade/chem_grenade/facid + name = "acid grenade" + desc = "Used for melting armoured opponents." + stage = READY + +/obj/item/weapon/grenade/chem_grenade/facid/New() + ..() + var/obj/item/weapon/reagent_containers/glass/beaker/bluespace/B1 = new(src) + var/obj/item/weapon/reagent_containers/glass/beaker/bluespace/B2 = new(src) + + B1.reagents.add_reagent("facid", 290) + B1.reagents.add_reagent("potassium", 10) + B2.reagents.add_reagent("phosphorus", 10) + B2.reagents.add_reagent("sugar", 10) + B2.reagents.add_reagent("facid", 280) + + beakers += B1 + beakers += B2 + + +/obj/item/weapon/grenade/chem_grenade/colorful + name = "colorful grenade" + desc = "Used for wide scale painting projects." + stage = READY + +/obj/item/weapon/grenade/chem_grenade/colorful/New() + ..() + var/obj/item/weapon/reagent_containers/glass/beaker/B1 = new(src) + var/obj/item/weapon/reagent_containers/glass/beaker/B2 = new(src) + + B1.reagents.add_reagent("colorful_reagent", 25) + B1.reagents.add_reagent("potassium", 25) + B2.reagents.add_reagent("phosphorus", 25) + B2.reagents.add_reagent("sugar", 25) + + beakers += B1 + beakers += B2 + + +/obj/item/weapon/grenade/chem_grenade/clf3 + name = "clf3 grenade" + desc = "BURN!-brand foaming clf3. In a special applicator for rapid purging of wide areas." + stage = READY + +/obj/item/weapon/grenade/chem_grenade/clf3/New() + ..() + var/obj/item/weapon/reagent_containers/glass/beaker/bluespace/B1 = new(src) + var/obj/item/weapon/reagent_containers/glass/beaker/bluespace/B2 = new(src) + + B1.reagents.add_reagent("fluorosurfactant", 250) + B1.reagents.add_reagent("clf3", 50) + B2.reagents.add_reagent("water", 250) + B2.reagents.add_reagent("clf3", 50) + + beakers += B1 + beakers += B2 + +/obj/item/weapon/grenade/chem_grenade/bioterrorfoam + name = "Bio terror foam grenade" + desc = "Tiger Cooperative chemical foam grenade. Causes temporary irration, blindness, confusion, mutism, and mutations to carbon based life forms. Contains additional spore toxin" + stage = READY + +/obj/item/weapon/grenade/chem_grenade/bioterrorfoam/New() + ..() + var/obj/item/weapon/reagent_containers/glass/beaker/bluespace/B1 = new(src) + var/obj/item/weapon/reagent_containers/glass/beaker/bluespace/B2 = new(src) + + B1.reagents.add_reagent("cryptobiolin", 75) + B1.reagents.add_reagent("water", 50) + B1.reagents.add_reagent("mutetoxin", 50) + B1.reagents.add_reagent("spore", 75) + B1.reagents.add_reagent("itching_powder", 50) + B2.reagents.add_reagent("fluorosurfactant", 150) + B2.reagents.add_reagent("mutagen", 150) + beakers += B1 + beakers += B2 + +/obj/item/weapon/grenade/chem_grenade/tuberculosis + name = "Fungal tuberculosis grenade" + desc = "WARNING: GRENADE WILL RELEASE DEADLY SPORES CONTAINING ACTIVE AGENTS. SEAL SUIT AND AIRFLOW BEFORE USE." + stage = READY + +/obj/item/weapon/grenade/chem_grenade/tuberculosis/New() + ..() + var/obj/item/weapon/reagent_containers/glass/beaker/bluespace/B1 = new(src) + var/obj/item/weapon/reagent_containers/glass/beaker/bluespace/B2 = new(src) + + B1.reagents.add_reagent("potassium", 50) + B1.reagents.add_reagent("phosphorus", 50) + B1.reagents.add_reagent("fungalspores", 200) + B2.reagents.add_reagent("blood", 250) + B2.reagents.add_reagent("sugar", 50) + + beakers += B1 + beakers += B2 + +#undef EMPTY +#undef WIRED +#undef READY diff --git a/code/game/objects/items/weapons/grenades/clusterbuster.dm b/code/game/objects/items/weapons/grenades/clusterbuster.dm new file mode 100644 index 0000000..4825f7d --- /dev/null +++ b/code/game/objects/items/weapons/grenades/clusterbuster.dm @@ -0,0 +1,143 @@ +//////////////////// +//Clusterbang +//////////////////// +/obj/item/weapon/grenade/clusterbuster + desc = "Use of this weapon may constiute a war crime in your area, consult your local captain." + name = "clusterbang" + icon = 'icons/obj/grenade.dmi' + icon_state = "clusterbang" + var/payload = /obj/item/weapon/grenade/flashbang/cluster + +/obj/item/weapon/grenade/clusterbuster/prime() + update_mob() + var/numspawned = rand(4,8) + var/again = 0 + + for(var/more = numspawned,more > 0,more--) + if(prob(35)) + again++ + numspawned-- + + for(var/loop = again ,loop > 0, loop--) + new /obj/item/weapon/grenade/clusterbuster/segment(loc, payload)//Creates 'segments' that launches a few more payloads + + new /obj/effect/payload_spawner(loc, payload, numspawned)//Launches payload + + playsound(loc, 'sound/weapons/armbomb.ogg', 75, 1, -3) + + qdel(src) + + +////////////////////// +//Clusterbang segment +////////////////////// +/obj/item/weapon/grenade/clusterbuster/segment + desc = "A smaller segment of a clusterbang. Better run." + name = "clusterbang segment" + icon = 'icons/obj/grenade.dmi' + icon_state = "clusterbang_segment" + +/obj/item/weapon/grenade/clusterbuster/segment/New(var/loc, var/payload_type = /obj/item/weapon/grenade/flashbang/cluster) + ..() + icon_state = "clusterbang_segment_active" + payload = payload_type + active = 1 + walk_away(src,loc,rand(1,4)) + addtimer(src, "prime", rand(15,60)) + +/obj/item/weapon/grenade/clusterbuster/segment/prime() + + new /obj/effect/payload_spawner(loc, payload, rand(4,8)) + + playsound(loc, 'sound/weapons/armbomb.ogg', 75, 1, -3) + + qdel(src) + +////////////////////////////////// +//The payload spawner effect +///////////////////////////////// +/obj/effect/payload_spawner/New(var/turf/newloc,var/type, var/numspawned as num) + + for(var/loop = numspawned ,loop > 0, loop--) + var/obj/item/weapon/grenade/P = new type(loc) + P.active = 1 + walk_away(P,loc,rand(1,4)) + + spawn(rand(15,60)) + if(P && !qdeleted(P)) + P.prime() + qdel(src) + + +////////////////////////////////// +//Custom payload clusterbusters +///////////////////////////////// +/obj/item/weapon/grenade/flashbang/cluster + icon_state = "flashbang_active" + +/obj/item/weapon/grenade/clusterbuster/emp + name = "Electromagnetic Storm" + payload = /obj/item/weapon/grenade/empgrenade + +/obj/item/weapon/grenade/clusterbuster/smoke + name = "Ninja Vanish" + payload = /obj/item/weapon/grenade/smokebomb + +/obj/item/weapon/grenade/clusterbuster/metalfoam + name = "Instant Concrete" + payload = /obj/item/weapon/grenade/chem_grenade/metalfoam + +/obj/item/weapon/grenade/clusterbuster/inferno + name = "Inferno" + payload = /obj/item/weapon/grenade/chem_grenade/incendiary + +/obj/item/weapon/grenade/clusterbuster/antiweed + name = "RoundDown" + payload = /obj/item/weapon/grenade/chem_grenade/antiweed + +/obj/item/weapon/grenade/clusterbuster/cleaner + name = "Mr. Proper" + payload = /obj/item/weapon/grenade/chem_grenade/cleaner + +/obj/item/weapon/grenade/clusterbuster/teargas + name = "Oignon Grenade" + payload = /obj/item/weapon/grenade/chem_grenade/teargas + +/obj/item/weapon/grenade/clusterbuster/facid + name = "Aciding Rain" + payload = /obj/item/weapon/grenade/chem_grenade/facid + +/obj/item/weapon/grenade/clusterbuster/syndieminibomb + name = "SyndiWrath" + payload = /obj/item/weapon/grenade/syndieminibomb + +/obj/item/weapon/grenade/clusterbuster/spawner_manhacks + name = "iViscerator" + payload = /obj/item/weapon/grenade/spawnergrenade/manhacks + +/obj/item/weapon/grenade/clusterbuster/spawner_spesscarp + name = "Invasion of the Space Carps" + payload = /obj/item/weapon/grenade/spawnergrenade/spesscarp + +/obj/item/weapon/grenade/clusterbuster/soap + name = "Slipocalypse" + payload = /obj/item/weapon/grenade/spawnergrenade/syndiesoap + +/obj/item/weapon/grenade/clusterbuster/clf3 + name = "WELCOME TO HELL" + payload = /obj/item/weapon/grenade/chem_grenade/clf3 + +/obj/item/weapon/grenade/clusterbuster/plasma + name = "Plasma Cluster Grenade" + desc = "For when everything needs to die in a fire." + payload = /obj/item/weapon/grenade/gas + +/obj/item/weapon/grenade/clusterbuster/n2o + name = "N2O Cluster Grenade" + desc = "For when you need to knock out EVERYONE." + payload = /obj/item/weapon/grenade/gas/knockout + +/obj/item/weapon/grenade/clusterbuster/freon + name = "Freon Cluster Grenade" + desc = "For when you need everyone to chill out." + payload = /obj/item/weapon/grenade/gas/freeze \ No newline at end of file diff --git a/code/game/objects/items/weapons/grenades/emgrenade.dm b/code/game/objects/items/weapons/grenades/emgrenade.dm new file mode 100644 index 0000000..9f0184c --- /dev/null +++ b/code/game/objects/items/weapons/grenades/emgrenade.dm @@ -0,0 +1,11 @@ +/obj/item/weapon/grenade/empgrenade + name = "classic EMP grenade" + desc = "It is designed to wreak havok on electronic systems." + icon_state = "emp" + item_state = "emp" + origin_tech = "magnets=3;combat=2" + +/obj/item/weapon/grenade/empgrenade/prime() + update_mob() + empulse(src, 4, 10) + qdel(src) diff --git a/code/game/objects/items/weapons/grenades/flashbang.dm b/code/game/objects/items/weapons/grenades/flashbang.dm new file mode 100644 index 0000000..42a27ac --- /dev/null +++ b/code/game/objects/items/weapons/grenades/flashbang.dm @@ -0,0 +1,43 @@ +/obj/item/weapon/grenade/flashbang + name = "flashbang" + icon_state = "flashbang" + item_state = "flashbang" + origin_tech = "materials=2;combat=3" + +/obj/item/weapon/grenade/flashbang/prime() + update_mob() + var/flashbang_turf = get_turf(src) + if(!flashbang_turf) + return + for(var/mob/living/M in get_hearers_in_view(7, flashbang_turf)) + bang(get_turf(M), M) + + for(var/obj/structure/blob/B in get_hear(8,flashbang_turf)) //Blob damage here + var/distance = get_dist(B, get_turf(src)) + var/damage = round(100/(distance*distance)+1) + B.take_damage(damage, BURN, "energy") + qdel(src) + +/obj/item/weapon/grenade/flashbang/proc/bang(turf/T , mob/living/M) + M.show_message("BANG", 2) + playsound(loc, 'sound/weapons/flashbang.ogg', 100, 1) + + var/distance = max(1,get_dist(src,T)) + +//Flash + if(M.weakeyes) + M.visible_message("[M] screams and collapses!") + M << "AAAAGH!" + M.Weaken(15) //hella stunned + M.Stun(15) + M.adjust_eye_damage(8) + + if(M.flash_act(affect_silicon = 1)) + M.Stun(max(10/distance, 3)) + M.Weaken(max(10/distance, 3)) + +//Bang + if((loc == M) || loc == M.loc)//Holding on person or being exactly where lies is significantly more dangerous and voids protection + M.soundbang_act(1, 10, rand(5, 10)) + else + M.soundbang_act(1, max(10/distance, 3), rand(0, 5)) diff --git a/code/game/objects/items/weapons/grenades/ghettobomb.dm b/code/game/objects/items/weapons/grenades/ghettobomb.dm new file mode 100644 index 0000000..7892f62 --- /dev/null +++ b/code/game/objects/items/weapons/grenades/ghettobomb.dm @@ -0,0 +1,70 @@ +//improvised explosives// + +/obj/item/weapon/grenade/iedcasing + name = "improvised firebomb" + desc = "A weak, improvised incendiary device." + w_class = 2 + icon = 'icons/obj/grenade.dmi' + icon_state = "improvised_grenade" + item_state = "flashbang" + throw_speed = 3 + throw_range = 7 + flags = CONDUCT + slot_flags = SLOT_BELT + active = 0 + det_time = 50 + display_timer = 0 + var/range = 3 + var/times = list() + +/obj/item/weapon/grenade/iedcasing/New(loc) + ..() + add_overlay(image('icons/obj/grenade.dmi', icon_state = "improvised_grenade_filled")) + add_overlay(image('icons/obj/grenade.dmi', icon_state = "improvised_grenade_wired")) + times = list("5" = 10, "-1" = 20, "[rand(30,80)]" = 50, "[rand(65,180)]" = 20)// "Premature, Dud, Short Fuse, Long Fuse"=[weighting value] + det_time = text2num(pickweight(times)) + if(det_time < 0) //checking for 'duds' + range = 1 + det_time = rand(30,80) + else + range = pick(2,2,2,3,3,3,4) + +/obj/item/weapon/grenade/iedcasing/CheckParts(list/parts_list) + ..() + var/obj/item/weapon/reagent_containers/food/drinks/soda_cans/can = locate() in contents + if(can) + var/muh_layer = can.layer + var/muh_plane = can.plane + can.layer = FLOAT_LAYER + can.plane = FLOAT_PLANE + underlays += can + can.layer = muh_layer + can.plane = muh_plane + + +/obj/item/weapon/grenade/iedcasing/attack_self(mob/user) // + if(!active) + if(clown_check(user)) + user << "You light the [name]!" + active = 1 + overlays -= image('icons/obj/grenade.dmi', icon_state = "improvised_grenade_filled") + icon_state = initial(icon_state) + "_active" + add_fingerprint(user) + var/turf/bombturf = get_turf(src) + var/area/A = get_area(bombturf) + + message_admins("[ADMIN_LOOKUPFLW(user)] has primed a [name] for detonation at [ADMIN_COORDJMP(bombturf)].") + log_game("[key_name(usr)] has primed a [name] for detonation at [A.name] [COORD(bombturf)].") + if(iscarbon(user)) + var/mob/living/carbon/C = user + C.throw_mode_on() + addtimer(src, "prime", det_time) + +/obj/item/weapon/grenade/iedcasing/prime() //Blowing that can up + update_mob() + explosion(src.loc,-1,-1,2, flame_range = 4) // small explosion, plus a very large fireball. + qdel(src) + +/obj/item/weapon/grenade/iedcasing/examine(mob/user) + ..() + user << "You can't tell when it will explode!" diff --git a/code/game/objects/items/weapons/grenades/grenade.dm b/code/game/objects/items/weapons/grenades/grenade.dm new file mode 100644 index 0000000..524c3f7 --- /dev/null +++ b/code/game/objects/items/weapons/grenades/grenade.dm @@ -0,0 +1,107 @@ +/obj/item/weapon/grenade + name = "grenade" + desc = "It has an adjustable timer." + w_class = 2 + icon = 'icons/obj/grenade.dmi' + icon_state = "grenade" + item_state = "flashbang" + throw_speed = 3 + throw_range = 7 + flags = CONDUCT + slot_flags = SLOT_BELT + resistance_flags = FLAMMABLE + obj_integrity = 40 + max_integrity = 40 + var/active = 0 + var/det_time = 50 + var/display_timer = 1 + +/obj/item/weapon/grenade/deconstruct(disassembled = TRUE) + if(!disassembled) + prime() + if(!qdeleted(src)) + qdel(src) + +/obj/item/weapon/grenade/proc/clown_check(mob/living/carbon/human/user) + if(user.disabilities & CLUMSY && prob(50)) + user << "Huh? How does this thing work?" + active = 1 + icon_state = initial(icon_state) + "_active" + playsound(loc, 'sound/weapons/armbomb.ogg', 75, 1, -3) + spawn(5) + if(user) + user.drop_item() + prime() + return 0 + return 1 + + +/obj/item/weapon/grenade/examine(mob/user) + ..() + if(display_timer) + if(det_time > 1) + user << "The timer is set to [det_time/10] second\s." + else + user << "\The [src] is set for instant detonation." + + +/obj/item/weapon/grenade/attack_self(mob/user) + if(!active) + if(clown_check(user)) + user << "You prime the [name]! [det_time/10] seconds!" + playsound(user.loc, 'sound/weapons/armbomb.ogg', 60, 1) + active = 1 + icon_state = initial(icon_state) + "_active" + add_fingerprint(user) + var/turf/bombturf = get_turf(src) + var/area/A = get_area(bombturf) + var/message = "[ADMIN_LOOKUPFLW(user)]) has primed a [name] for detonation at [ADMIN_COORDJMP(bombturf)]" + bombers += message + message_admins(message) + log_game("[key_name(usr)] has primed a [name] for detonation at [A.name] [COORD(bombturf)].") + if(iscarbon(user)) + var/mob/living/carbon/C = user + C.throw_mode_on() + spawn(det_time) + prime() + + +/obj/item/weapon/grenade/proc/prime() + +/obj/item/weapon/grenade/proc/update_mob() + if(ismob(loc)) + var/mob/M = loc + M.unEquip(src) + + +/obj/item/weapon/grenade/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/weapon/screwdriver)) + switch(det_time) + if ("1") + det_time = 10 + user << "You set the [name] for 1 second detonation time." + if ("10") + det_time = 30 + user << "You set the [name] for 3 second detonation time." + if ("30") + det_time = 50 + user << "You set the [name] for 5 second detonation time." + if ("50") + det_time = 1 + user << "You set the [name] for instant detonation." + add_fingerprint(user) + else + return ..() + +/obj/item/weapon/grenade/attack_hand() + walk(src, null, null) + ..() + +/obj/item/weapon/grenade/attack_paw(mob/user) + return attack_hand(user) + +/obj/item/weapon/grenade/hit_reaction(mob/living/carbon/human/owner, attack_text, final_block_chance, damage, attack_type) + if(damage && attack_type == PROJECTILE_ATTACK && prob(15)) + owner.visible_message("[attack_text] hits [owner]'s [src], setting it off! What a shot!") + prime() + return 1 //It hit the grenade, not them \ No newline at end of file diff --git a/code/game/objects/items/weapons/grenades/plastic.dm b/code/game/objects/items/weapons/grenades/plastic.dm new file mode 100644 index 0000000..6485502 --- /dev/null +++ b/code/game/objects/items/weapons/grenades/plastic.dm @@ -0,0 +1,182 @@ +/obj/item/weapon/grenade/plastic + name = "plastic explosive" + desc = "Used to put holes in specific areas without too much extra hole." + icon_state = "plastic-explosive0" + item_state = "plastic-explosive" + flags = NOBLUDGEON + det_time = 10 + display_timer = 0 + var/atom/target = null + var/image_overlay = null + var/obj/item/device/assembly_holder/nadeassembly = null + var/assemblyattacher + +/obj/item/weapon/grenade/plastic/New() + image_overlay = image('icons/obj/grenade.dmi', "[item_state]2") + ..() + +/obj/item/weapon/grenade/plastic/Destroy() + qdel(nadeassembly) + nadeassembly = null + target = null + ..() + +/obj/item/weapon/grenade/plastic/attackby(obj/item/I, mob/user, params) + if(!nadeassembly && istype(I, /obj/item/device/assembly_holder)) + var/obj/item/device/assembly_holder/A = I + if(!user.unEquip(I)) + return ..() + nadeassembly = A + A.master = src + A.loc = src + assemblyattacher = user.ckey + user << "You add [A] to the [name]." + playsound(src, 'sound/weapons/tap.ogg', 20, 1) + update_icon() + return + if(nadeassembly && istype(I, /obj/item/weapon/wirecutters)) + playsound(src, 'sound/items/Wirecutter.ogg', 20, 1) + nadeassembly.loc = get_turf(src) + nadeassembly.master = null + nadeassembly = null + update_icon() + return + ..() + +//assembly stuff +/obj/item/weapon/grenade/plastic/receive_signal() + prime() + +/obj/item/weapon/grenade/plastic/Crossed(atom/movable/AM) + if(nadeassembly) + nadeassembly.Crossed(AM) + +/obj/item/weapon/grenade/plastic/on_found(mob/finder) + if(nadeassembly) + nadeassembly.on_found(finder) + +/obj/item/weapon/grenade/plastic/attack_self(mob/user) + if(nadeassembly) + nadeassembly.attack_self(user) + return + var/newtime = input(usr, "Please set the timer.", "Timer", 10) as num + if(user.get_active_held_item() == src) + newtime = Clamp(newtime, 10, 60000) + det_time = newtime + user << "Timer set for [det_time] seconds." + +/obj/item/weapon/grenade/plastic/afterattack(atom/movable/AM, mob/user, flag) + if (!flag) + return + if (istype(AM, /mob/living/carbon)) + return + user << "You start planting the [src]. The timer is set to [det_time]..." + + if(do_after(user, 50, target = AM)) + if(!user.unEquip(src)) + return + src.target = AM + loc = null + + message_admins("[ADMIN_LOOKUPFLW(user)] planted [name] on [target.name] at [ADMIN_COORDJMP(target)] with [det_time] second fuse",0,1) + log_game("[key_name(user)] planted [name] on [target.name] at [COORD(src)] with [det_time] second fuse") + + target.add_overlay(image_overlay, 1) + if(!nadeassembly) + user << "You plant the bomb. Timer counting down from [det_time]." + addtimer(src, "prime", det_time*10) + +/obj/item/weapon/grenade/plastic/suicide_act(mob/user) + message_admins("[key_name_admin(user)](?) (FLW) suicided with [src] at ([user.x],[user.y],[user.z] - JMP)",0,1) + message_admins("[key_name(user)] suicided with [src] at ([user.x],[user.y],[user.z])") + user.visible_message("[user] activates [src] and holds it above [user.p_their()] head! It looks like [user.p_theyre()] going out with a bang!") + var/message_say = "FOR NO RAISIN!" + if(user.mind) + if(user.mind.special_role) + var/role = lowertext(user.mind.special_role) + if(role == "traitor" || role == "syndicate") + message_say = "FOR THE SYNDICATE!" + else if(role == "changeling") + message_say = "FOR THE HIVE!" + else if(role == "cultist") + message_say = "FOR NAR-SIE!" + else if(role == "revolutionary" || role == "head revolutionary") + message_say = "VIVA LA REVOLUTION!" + else if(user.mind.gang_datum) + message_say = "[uppertext(user.mind.gang_datum.name)] RULES!" + user.say(message_say) + target = user + sleep(10) + prime() + user.gib(1, 1, 1) + +/obj/item/weapon/grenade/plastic/update_icon() + if(nadeassembly) + icon_state = "[item_state]1" + else + icon_state = "[item_state]0" + +////////////////////////// +///// The Explosives ///// +////////////////////////// + +/obj/item/weapon/grenade/plastic/c4 + name = "C4" + desc = "Used to put holes in specific areas without too much extra hole. A saboteurs favourite." + +/obj/item/weapon/grenade/plastic/c4/prime() + var/turf/location + if(target) + if(!qdeleted(target)) + location = get_turf(target) + target.overlays -= image_overlay + target.priority_overlays -= image_overlay + else + location = get_turf(src) + if(location) + location.ex_act(2, target) + explosion(location,0,0,3) + if(istype(target, /mob)) + var/mob/M = target + M.gib() + qdel(src) + +// X4 is an upgraded directional variant of c4 which is relatively safe to be standing next to. And much less safe to be standing on the other side of. +// C4 is intended to be used for infiltration, and destroying tech. X4 is intended to be used for heavy breaching and tight spaces. +// Intended to replace C4 for nukeops, and to be a randomdrop in surplus/random traitor purchases. + +/obj/item/weapon/grenade/plastic/x4 + name = "X4" + desc = "A specialized shaped high explosive breaching charge. Designed to be safer for the user, and less so, for the wall." + var/aim_dir = NORTH + icon_state = "plasticx40" + item_state = "plasticx4" + +/obj/item/weapon/grenade/plastic/x4/prime() + var/turf/location + if(target) + if(!qdeleted(target)) + location = get_turf(target) + target.overlays -= image_overlay + target.priority_overlays -= image_overlay + else + location = get_turf(src) + if(location) + if(istype(loc, /obj/item/weapon/twohanded/spear) || !target) + explosion(location, 0, 2, 3) + else if(target && target.density) + var/turf/T = get_step(location, aim_dir) + explosion(get_step(T, aim_dir),0,0,3) + explosion(T,0,2,0) + location.ex_act(2, target) + else + explosion(location, 0, 2, 3) + location.ex_act(2, target) + if(istype(target, /mob)) + var/mob/M = target + M.gib() + qdel(src) + +/obj/item/weapon/grenade/plastic/x4/afterattack(atom/movable/AM, mob/user, flag) + aim_dir = get_dir(user,AM) + ..() diff --git a/code/game/objects/items/weapons/grenades/smokebomb.dm b/code/game/objects/items/weapons/grenades/smokebomb.dm new file mode 100644 index 0000000..f81a33c --- /dev/null +++ b/code/game/objects/items/weapons/grenades/smokebomb.dm @@ -0,0 +1,31 @@ +/obj/item/weapon/grenade/smokebomb + name = "smoke grenade" + desc = "The word 'Dank' is scribbled on it in crayon." + icon = 'icons/obj/grenade.dmi' + icon_state = "smokewhite" + det_time = 20 + item_state = "flashbang" + slot_flags = SLOT_BELT + var/datum/effect_system/smoke_spread/bad/smoke + +/obj/item/weapon/grenade/smokebomb/New() + ..() + src.smoke = new /datum/effect_system/smoke_spread/bad + src.smoke.attach(src) + +/obj/item/weapon/grenade/smokebomb/Destroy() + qdel(smoke) + return ..() + +/obj/item/weapon/grenade/smokebomb/prime() + update_mob() + playsound(src.loc, 'sound/effects/smoke.ogg', 50, 1, -3) + smoke.set_up(4, src) + smoke.start() + + + for(var/obj/structure/blob/B in view(8,src)) + var/damage = round(30/(get_dist(B,src)+1)) + B.take_damage(damage, BURN, "melee", 0) + sleep(80) + qdel(src) diff --git a/code/game/objects/items/weapons/grenades/spawnergrenade.dm b/code/game/objects/items/weapons/grenades/spawnergrenade.dm new file mode 100644 index 0000000..2d5c470 --- /dev/null +++ b/code/game/objects/items/weapons/grenades/spawnergrenade.dm @@ -0,0 +1,39 @@ +/obj/item/weapon/grenade/spawnergrenade + desc = "It will unleash unleash an unspecified anomaly into the vicinity." + name = "delivery grenade" + icon = 'icons/obj/grenade.dmi' + icon_state = "delivery" + item_state = "flashbang" + origin_tech = "materials=3;magnets=4" + var/spawner_type = null // must be an object path + var/deliveryamt = 1 // amount of type to deliver + +/obj/item/weapon/grenade/spawnergrenade/prime() // Prime now just handles the two loops that query for people in lockers and people who can see it. + update_mob() + if(spawner_type && deliveryamt) + // Make a quick flash + var/turf/T = get_turf(src) + playsound(T, 'sound/effects/phasein.ogg', 100, 1) + for(var/mob/living/carbon/C in viewers(T, null)) + C.flash_act() + + // Spawn some hostile syndicate critters and spread them out + spawn_and_random_walk(spawner_type, T, deliveryamt, walk_chance=50, admin_spawn=admin_spawned) + + qdel(src) + +/obj/item/weapon/grenade/spawnergrenade/manhacks + name = "viscerator delivery grenade" + spawner_type = /mob/living/simple_animal/hostile/viscerator + deliveryamt = 10 + origin_tech = "materials=3;magnets=4;syndicate=3" + +/obj/item/weapon/grenade/spawnergrenade/spesscarp + name = "carp delivery grenade" + spawner_type = /mob/living/simple_animal/hostile/carp + deliveryamt = 5 + origin_tech = "materials=3;magnets=4;syndicate=3" + +/obj/item/weapon/grenade/spawnergrenade/syndiesoap + name = "Mister Scrubby" + spawner_type = /obj/item/weapon/soap/syndie diff --git a/code/game/objects/items/weapons/grenades/syndieminibomb.dm b/code/game/objects/items/weapons/grenades/syndieminibomb.dm new file mode 100644 index 0000000..c6f7edb --- /dev/null +++ b/code/game/objects/items/weapons/grenades/syndieminibomb.dm @@ -0,0 +1,53 @@ +/obj/item/weapon/grenade/syndieminibomb + desc = "A syndicate manufactured explosive used to sow destruction and chaos" + name = "syndicate minibomb" + icon = 'icons/obj/grenade.dmi' + icon_state = "syndicate" + item_state = "flashbang" + origin_tech = "materials=3;magnets=4;syndicate=3" + + +/obj/item/weapon/grenade/syndieminibomb/prime() + update_mob() + explosion(src.loc,1,2,4,flame_range = 2) + qdel(src) + +/obj/item/weapon/grenade/syndieminibomb/concussion + name = "HE Grenade" + desc = "A compact shrapnel grenade meant to devestate nearby organisms and cause some damage in the process. Pull pin and throw opposite direction." + icon_state = "concussion" + origin_tech = "materials=3;magnets=4;syndicate=2" + +/obj/item/weapon/grenade/syndieminibomb/concussion/prime() + update_mob() + explosion(src.loc,0,2,3,flame_range = 3) + qdel(src) + +/obj/item/weapon/grenade/syndieminibomb/concussion/frag + name = "frag grenade" + desc = "Fire in the hole." + icon_state = "frag" + +/obj/item/weapon/grenade/gluon + desc = "An advanced grenade that releases a harmful stream of gluons inducing radiation in those nearby. These gluon streams will also make victims feel exhausted, and induce shivering. This extreme coldness will also likely wet any nearby floors." + name = "gluon frag grenade" + icon = 'icons/obj/grenade.dmi' + icon_state = "bluefrag" + item_state = "flashbang" + var/freeze_range = 4 + var/rad_damage = 35 + var/stamina_damage = 30 + +/obj/item/weapon/grenade/gluon/prime() + update_mob() + playsound(loc, 'sound/effects/EMPulse.ogg', 50, 1) + radiation_pulse(loc,freeze_range,freeze_range+1,rad_damage) + for(var/turf/T in view(freeze_range,loc)) + if(isfloorturf(T)) + var/turf/open/floor/F = T + F.wet = TURF_WET_PERMAFROST + addtimer(F, "MakeDry", rand(3000, 3100), 0, TURF_WET_PERMAFROST) + for(var/mob/living/carbon/L in T) + L.adjustStaminaLoss(stamina_damage) + L.bodytemperature -= 230 + qdel(src) diff --git a/code/game/objects/items/weapons/handcuffs.dm b/code/game/objects/items/weapons/handcuffs.dm new file mode 100644 index 0000000..775c184 --- /dev/null +++ b/code/game/objects/items/weapons/handcuffs.dm @@ -0,0 +1,363 @@ +/obj/item/weapon/restraints + breakouttime = 600 + +//Handcuffs + +/obj/item/weapon/restraints/handcuffs + name = "handcuffs" + desc = "Use this to keep prisoners in line." + gender = PLURAL + icon = 'icons/obj/items.dmi' + icon_state = "handcuff" + flags = CONDUCT + slot_flags = SLOT_BELT + throwforce = 0 + w_class = 2 + throw_speed = 3 + throw_range = 5 + materials = list(MAT_METAL=500) + origin_tech = "engineering=3;combat=3" + breakouttime = 600 //Deciseconds = 60s = 1 minute + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 50) + var/cuffsound = 'sound/weapons/handcuffs.ogg' + var/trashtype = null //for disposable cuffs + +/obj/item/weapon/restraints/handcuffs/attack(mob/living/carbon/C, mob/living/carbon/human/user) + if(!istype(C)) + return + if(user.disabilities & CLUMSY && prob(50)) + user << "Uh... how do those things work?!" + apply_cuffs(user,user) + return + + if(!C.handcuffed) + if(C.get_num_arms() >= 2 || C.get_arm_ignore()) + C.visible_message("[user] is trying to put [src.name] on [C]!", \ + "[user] is trying to put [src.name] on [C]!") + + playsound(loc, cuffsound, 30, 1, -2) + if(do_mob(user, C, 30) && (C.get_num_arms() >= 2 || C.get_arm_ignore())) + apply_cuffs(C,user) + user << "You handcuff [C]." + if(istype(src, /obj/item/weapon/restraints/handcuffs/cable)) + feedback_add_details("handcuffs","C") + else + feedback_add_details("handcuffs","H") + + add_logs(user, C, "handcuffed") + else + user << "You fail to handcuff [C]!" + else + user << "[C] doesn't have two hands..." + +/obj/item/weapon/restraints/handcuffs/proc/apply_cuffs(mob/living/carbon/target, mob/user, var/dispense = 0) + if(target.handcuffed) + return + + if(!user.drop_item() && !dispense) + return + + var/obj/item/weapon/restraints/handcuffs/cuffs = src + if(trashtype) + cuffs = new trashtype() + else if(dispense) + cuffs = new type() + + cuffs.loc = target + target.handcuffed = cuffs + + target.update_handcuffed() + if(trashtype && !dispense) + qdel(src) + return + +/obj/item/weapon/restraints/handcuffs/sinew + name = "sinew restraints" + desc = "A pair of restraints fashioned from long strands of flesh." + icon = 'icons/obj/mining.dmi' + icon_state = "sinewcuff" + item_state = "sinewcuff" + breakouttime = 300 //Deciseconds = 30s + cuffsound = 'sound/weapons/cablecuff.ogg' + +/obj/item/weapon/restraints/handcuffs/cable + name = "cable restraints" + desc = "Looks like some cables tied together. Could be used to tie something up." + icon_state = "cuff_red" + item_state = "coil_red" + materials = list(MAT_METAL=150, MAT_GLASS=75) + origin_tech = "engineering=2" + breakouttime = 300 //Deciseconds = 30s + cuffsound = 'sound/weapons/cablecuff.ogg' + var/datum/robot_energy_storage/wirestorage = null + +/obj/item/weapon/restraints/handcuffs/cable/attack(mob/living/carbon/C, mob/living/carbon/human/user) + if(!istype(C)) + return + if(wirestorage && wirestorage.energy < 15) + user << "You need at least 15 wire to restrain [C]!" + return + return ..() + +/obj/item/weapon/restraints/handcuffs/cable/apply_cuffs(mob/living/carbon/target, mob/user, var/dispense = 0) + if(wirestorage) + if(!wirestorage.use_charge(15)) + user << "You need at least 15 wire to restrain [target]!" + return + return ..(target, user, 1) + + return ..() + +/obj/item/weapon/restraints/handcuffs/cable/red + icon_state = "cuff_red" + item_state = "coil_red" + +/obj/item/weapon/restraints/handcuffs/cable/yellow + icon_state = "cuff_yellow" + item_state = "coil_yellow" + +/obj/item/weapon/restraints/handcuffs/cable/blue + icon_state = "cuff_blue" + item_state = "coil_blue" + +/obj/item/weapon/restraints/handcuffs/cable/green + icon_state = "cuff_green" + item_state = "coil_green" + +/obj/item/weapon/restraints/handcuffs/cable/pink + icon_state = "cuff_pink" + item_state = "coil_pink" + +/obj/item/weapon/restraints/handcuffs/cable/orange + icon_state = "cuff_orange" + item_state = "coil_orange" + +/obj/item/weapon/restraints/handcuffs/cable/cyan + icon_state = "cuff_cyan" + item_state = "coil_cyan" + +/obj/item/weapon/restraints/handcuffs/cable/white + icon_state = "cuff_white" + item_state = "coil_white" + +/obj/item/weapon/restraints/handcuffs/alien + icon_state = "handcuffAlien" + +/obj/item/weapon/restraints/handcuffs/fake + name = "fake handcuffs" + desc = "Fake handcuffs meant for gag purposes." + breakouttime = 10 //Deciseconds = 1s + +/obj/item/weapon/restraints/handcuffs/fake/kinky + name = "kinky handcuffs" + desc = "Fake handcuffs meant for erotic roleplay." + icon_state = "handcuffGag" + +/obj/item/weapon/restraints/handcuffs/cable/attackby(obj/item/I, mob/user, params) + ..() + if(istype(I, /obj/item/stack/rods)) + var/obj/item/stack/rods/R = I + if (R.use(1)) + var/obj/item/weapon/wirerod/W = new /obj/item/weapon/wirerod + if(!remove_item_from_storage(user)) + user.unEquip(src) + user.put_in_hands(W) + user << "You wrap the cable restraint around the top of the rod." + qdel(src) + else + user << "You need one rod to make a wired rod!" + return + else if(istype(I, /obj/item/stack/sheet/metal)) + var/obj/item/stack/sheet/metal/M = I + if(M.get_amount() < 6) + user << "You need at least six metal sheets to make good enough weights!" + return + user << "You begin to apply [I] to [src]..." + if(do_after(user, 35, target = src)) + if(M.get_amount() < 6 || !M) + return + var/obj/item/weapon/restraints/legcuffs/bola/S = new /obj/item/weapon/restraints/legcuffs/bola + M.use(6) + user.put_in_hands(S) + user << "You make some weights out of [I] and tie them to [src]." + if(!remove_item_from_storage(user)) + user.unEquip(src) + qdel(src) + else + return ..() + +/obj/item/weapon/restraints/handcuffs/cable/zipties/cyborg/attack(mob/living/carbon/C, mob/user) + if(iscyborg(user)) + if(!C.handcuffed) + playsound(loc, 'sound/weapons/cablecuff.ogg', 30, 1, -2) + C.visible_message("[user] is trying to put zipties on [C]!", \ + "[user] is trying to put zipties on [C]!") + if(do_mob(user, C, 30)) + if(!C.handcuffed) + C.handcuffed = new /obj/item/weapon/restraints/handcuffs/cable/zipties/used(C) + C.update_handcuffed() + user << "You handcuff [C]." + add_logs(user, C, "handcuffed") + else + user << "You fail to handcuff [C]!" + +/obj/item/weapon/restraints/handcuffs/cable/zipties + name = "zipties" + desc = "Plastic, disposable zipties that can be used to restrain temporarily but are destroyed after use." + icon_state = "cuff_white" + item_state = "coil_white" + materials = list() + breakouttime = 450 //Deciseconds = 45s + trashtype = /obj/item/weapon/restraints/handcuffs/cable/zipties/used + +/obj/item/weapon/restraints/handcuffs/cable/zipties/used + desc = "A pair of broken zipties." + icon_state = "cuff_white_used" + +/obj/item/weapon/restraints/handcuffs/cable/zipties/used/attack() + return + + +//Legcuffs + +/obj/item/weapon/restraints/legcuffs + name = "leg cuffs" + desc = "Use this to keep prisoners in line." + gender = PLURAL + icon = 'icons/obj/items.dmi' + icon_state = "handcuff" + flags = CONDUCT + throwforce = 0 + w_class = 3 + origin_tech = "engineering=3;combat=3" + slowdown = 7 + breakouttime = 300 //Deciseconds = 30s = 0.5 minute + +/obj/item/weapon/restraints/legcuffs/beartrap + name = "bear trap" + throw_speed = 1 + throw_range = 1 + icon_state = "beartrap" + desc = "A trap used to catch bears and other legged creatures." + origin_tech = "engineering=4" + var/armed = 0 + var/trap_damage = 20 + +/obj/item/weapon/restraints/legcuffs/beartrap/New() + ..() + icon_state = "[initial(icon_state)][armed]" + +/obj/item/weapon/restraints/legcuffs/beartrap/suicide_act(mob/user) + user.visible_message("[user] is sticking [user.p_their()] head in the [src.name]! It looks like [user.p_theyre()] trying to commit suicide!") + playsound(loc, 'sound/weapons/bladeslice.ogg', 50, 1, -1) + return (BRUTELOSS) + +/obj/item/weapon/restraints/legcuffs/beartrap/attack_self(mob/user) + ..() + if(ishuman(user) && !user.stat && !user.restrained()) + armed = !armed + icon_state = "[initial(icon_state)][armed]" + user << "[src] is now [armed ? "armed" : "disarmed"]" + +/obj/item/weapon/restraints/legcuffs/beartrap/Crossed(AM as mob|obj) + if(armed && isturf(src.loc)) + if(isliving(AM)) + var/mob/living/L = AM + var/snap = 0 + var/def_zone = "chest" + if(iscarbon(L)) + var/mob/living/carbon/C = L + snap = 1 + if(!C.lying) + def_zone = pick("l_leg", "r_leg") + if(!C.legcuffed && C.get_num_legs() >= 2) //beartrap can't cuff your leg if there's already a beartrap or legcuffs, or you don't have two legs. + C.legcuffed = src + src.loc = C + C.update_inv_legcuffed() + feedback_add_details("handcuffs","B") //Yes, I know they're legcuffs. Don't change this, no need for an extra variable. The "B" is used to tell them apart. + else if(isanimal(L)) + var/mob/living/simple_animal/SA = L + if(!SA.flying && SA.mob_size > MOB_SIZE_TINY) + snap = 1 + if(snap) + armed = 0 + icon_state = "[initial(icon_state)][armed]" + playsound(src.loc, 'sound/effects/snap.ogg', 50, 1) + L.visible_message("[L] triggers \the [src].", \ + "You trigger \the [src]!") + L.apply_damage(trap_damage,BRUTE, def_zone) + ..() + +/obj/item/weapon/restraints/legcuffs/beartrap/energy + name = "energy snare" + armed = 1 + icon_state = "e_snare" + trap_damage = 0 + flags = DROPDEL + +/obj/item/weapon/restraints/legcuffs/beartrap/energy/New() + ..() + addtimer(src, "dissipate", 100) + +/obj/item/weapon/restraints/legcuffs/beartrap/energy/proc/dissipate() + if(!istype(loc, /mob)) + var/datum/effect_system/spark_spread/sparks = new /datum/effect_system/spark_spread + sparks.set_up(1, 1, src) + sparks.start() + qdel(src) + +/obj/item/weapon/restraints/legcuffs/beartrap/energy/attack_hand(mob/user) + Crossed(user) //honk + +/obj/item/weapon/restraints/legcuffs/beartrap/energy/cyborg + breakouttime = 20 // Cyborgs shouldn't have a strong restraint + +/obj/item/weapon/restraints/legcuffs/bola + name = "bola" + desc = "A restraining device designed to be thrown at the target. Upon connecting with said target, it will wrap around their legs, making it difficult for them to move quickly." + icon_state = "bola" + breakouttime = 35//easy to apply, easy to break out of + gender = NEUTER + origin_tech = "engineering=3;combat=1" + var/weaken = 0 + +/obj/item/weapon/restraints/legcuffs/bola/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0) + if(!..()) + return + playsound(src.loc,'sound/weapons/bolathrow.ogg', 75, 1) + +/obj/item/weapon/restraints/legcuffs/bola/throw_impact(atom/hit_atom) + if(..() || !iscarbon(hit_atom))//if it gets caught or the target can't be cuffed, + return//abort + var/mob/living/carbon/C = hit_atom + if(!C.legcuffed && C.get_num_legs() >= 2) + visible_message("\The [src] ensnares [C]!") + C.legcuffed = src + src.loc = C + C.update_inv_legcuffed() + feedback_add_details("handcuffs","B") + C << "\The [src] ensnares you!" + C.Weaken(weaken) + +/obj/item/weapon/restraints/legcuffs/bola/tactical//traitor variant + name = "reinforced bola" + desc = "A strong bola, made with a long steel chain. It looks heavy, enough so that it could trip somebody." + icon_state = "bola_r" + breakouttime = 70 + origin_tech = "engineering=4;combat=3" + weaken = 1 + +/obj/item/weapon/restraints/legcuffs/bola/energy //For Security + name = "energy bola" + desc = "A specialized hard-light bola designed to ensnare fleeing criminals and aid in arrests." + icon_state = "ebola" + hitsound = 'sound/weapons/taserhit.ogg' + w_class = 2 + breakouttime = 60 + +/obj/item/weapon/restraints/legcuffs/bola/energy/throw_impact(atom/hit_atom) + if(iscarbon(hit_atom)) + var/obj/item/weapon/restraints/legcuffs/beartrap/B = new /obj/item/weapon/restraints/legcuffs/beartrap/energy/cyborg(get_turf(hit_atom)) + B.Crossed(hit_atom) + qdel(src) + ..() diff --git a/code/game/objects/items/weapons/holosign_creator.dm b/code/game/objects/items/weapons/holosign_creator.dm new file mode 100644 index 0000000..043f625 --- /dev/null +++ b/code/game/objects/items/weapons/holosign_creator.dm @@ -0,0 +1,116 @@ +/obj/item/weapon/holosign_creator + name = "holographic sign projector" + desc = "A handy-dandy holographic projector that displays a janitorial sign." + icon = 'icons/obj/device.dmi' + icon_state = "signmaker" + item_state = "electronic" + force = 0 + w_class = 2 + throwforce = 0 + throw_speed = 3 + throw_range = 7 + origin_tech = "magnets=1;programming=3" + flags = NOBLUDGEON + var/list/signs = list() + var/max_signs = 10 + var/creation_time = 0 //time to create a holosign in deciseconds. + var/holosign_type = /obj/structure/holosign/wetsign + var/holocreator_busy = 0 //to prevent placing multiple holo barriers at once + +/obj/item/weapon/holosign_creator/afterattack(atom/target, mob/user, flag) + if(flag) + if(!check_allowed_items(target, 1)) + return + var/turf/T = get_turf(target) + var/obj/structure/holosign/H = locate(holosign_type) in T + if(H) + user << "You use [src] to deactivate [H]." + qdel(H) + else + if(!is_blocked_turf(T)) //can't put holograms on a tile that has dense stuff + if(holocreator_busy) + user << "[src] is busy creating a hologram." + return + if(signs.len < max_signs) + playsound(src.loc, 'sound/machines/click.ogg', 20, 1) + if(creation_time) + holocreator_busy = 1 + if(!do_after(user, creation_time, target = target)) + holocreator_busy = 0 + return + holocreator_busy = 0 + if(signs.len >= max_signs) + return + if(is_blocked_turf(T)) //don't try to sneak dense stuff on our tile during the wait. + return + H = new holosign_type(get_turf(target), src) + user << "You create \a [H] with [src]." + else + user << "[src] is projecting at max capacity!" + +/obj/item/weapon/holosign_creator/attack(mob/living/carbon/human/M, mob/user) + return + +/obj/item/weapon/holosign_creator/attack_self(mob/user) + if(signs.len) + for(var/H in signs) + qdel(H) + user << "You clear all active holograms." + + +/obj/item/weapon/holosign_creator/security + name = "security holobarrier projector" + desc = "A holographic projector that creates holographic security barriers." + icon_state = "signmaker_sec" + holosign_type = /obj/structure/holosign/barrier + creation_time = 30 + max_signs = 6 + +/obj/item/weapon/holosign_creator/engineering + name = "engineering holobarrier projector" + desc = "A holographic projector that creates holographic engineering barriers." + icon_state = "signmaker_engi" + holosign_type = /obj/structure/holosign/barrier/engineering + creation_time = 30 + max_signs = 6 + +/obj/item/weapon/holosign_creator/cyborg + name = "Energy Barrier Projector" + desc = "A holographic projector that creates fragile energy fields" + creation_time = 5 + max_signs = 9 + holosign_type = /obj/structure/holosign/barrier/cyborg + var/shock = 0 + +/obj/item/weapon/holosign_creator/cyborg/attack_self(mob/user) + if(iscyborg(user)) + var/mob/living/silicon/robot/R = user + + if(shock) + user <<"You clear all active holograms, and reset your projector to normal." + holosign_type = /obj/structure/holosign/barrier/cyborg + creation_time = 5 + if(signs.len) + for(var/H in signs) + qdel(H) + shock = 0 + return + else if(R.emagged&&!shock) + user <<"You clear all active holograms, and overload your energy projector!" + holosign_type = /obj/structure/holosign/barrier/cyborg/hacked + creation_time = 30 + if(signs.len) + for(var/H in signs) + qdel(H) + shock = 1 + return + else + if(signs.len) + for(var/H in signs) + qdel(H) + user << "You clear all active holograms." + if(signs.len) + for(var/H in signs) + qdel(H) + user << "You clear all active holograms." + diff --git a/code/game/objects/items/weapons/holy_weapons.dm b/code/game/objects/items/weapons/holy_weapons.dm new file mode 100644 index 0000000..b564570 --- /dev/null +++ b/code/game/objects/items/weapons/holy_weapons.dm @@ -0,0 +1,368 @@ +/obj/item/weapon/nullrod + name = "null rod" + desc = "A rod of pure obsidian, its very presence disrupts and dampens the powers of Nar-Sie's followers." + icon_state = "nullrod" + item_state = "nullrod" + force = 18 + throw_speed = 3 + throw_range = 4 + throwforce = 10 + w_class = 1 + var/reskinned = FALSE + +/obj/item/weapon/nullrod/suicide_act(mob/user) + user.visible_message("[user] is killing [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to get closer to god!") + return (BRUTELOSS|FIRELOSS) + +/obj/item/weapon/nullrod/attack_self(mob/user) + if(reskinned) + return + if(user.mind && (user.mind.assigned_role == "Chaplain")) + reskin_holy_weapon(user) + +/obj/item/weapon/nullrod/proc/reskin_holy_weapon(mob/M) + var/list/holy_weapons_list = typesof(/obj/item/weapon/nullrod) + var/list/display_names = list() + for(var/V in holy_weapons_list) + var/atom/A = V + display_names += initial(A.name) + + var/choice = input(M,"What theme would you like for your holy weapon?","Holy Weapon Theme") as null|anything in display_names + if(!src || !choice || M.stat || !in_range(M, src) || M.restrained() || !M.canmove || reskinned) + return + + var/index = display_names.Find(choice) + var/A = holy_weapons_list[index] + + var/obj/item/weapon/nullrod/holy_weapon = new A + + feedback_set_details("chaplain_weapon","[choice]") + + if(holy_weapon) + holy_weapon.reskinned = TRUE + M.unEquip(src) + M.put_in_active_hand(holy_weapon) + qdel(src) + +/obj/item/weapon/nullrod/godhand + icon_state = "disintegrate" + item_state = "disintegrate" + name = "god hand" + desc = "This hand of yours glows with an awesome power!" + flags = ABSTRACT | NODROP | DROPDEL + w_class = 5 + hitsound = 'sound/weapons/sear.ogg' + damtype = BURN + attack_verb = list("punched", "cross countered", "pummeled") + +/obj/item/weapon/nullrod/staff + icon_state = "godstaff-red" + item_state = "godstaff-red" + name = "red holy staff" + desc = "It has a mysterious, protective aura." + w_class = 5 + force = 5 + slot_flags = SLOT_BACK + block_chance = 50 + var/shield_icon = "shield-red" + +/obj/item/weapon/nullrod/staff/worn_overlays(isinhands) + . = list() + if(isinhands) + . += image(icon = 'icons/effects/effects.dmi', icon_state = "[shield_icon]") + +/obj/item/weapon/nullrod/staff/blue + name = "blue holy staff" + icon_state = "godstaff-blue" + item_state = "godstaff-blue" + shield_icon = "shield-old" + +/obj/item/weapon/nullrod/claymore + icon_state = "claymore" + item_state = "claymore" + name = "holy claymore" + desc = "A weapon fit for a crusade!" + w_class = 5 + slot_flags = SLOT_BACK|SLOT_BELT + block_chance = 30 + sharpness = IS_SHARP + hitsound = 'sound/weapons/bladeslice.ogg' + attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") + +/obj/item/weapon/nullrod/claymore/hit_reaction(mob/living/carbon/human/owner, attack_text, final_block_chance, damage, attack_type) + if(attack_type == PROJECTILE_ATTACK) + final_block_chance = 0 //Don't bring a sword to a gunfight + return ..() + +/obj/item/weapon/nullrod/claymore/darkblade + icon_state = "cultblade" + item_state = "cultblade" + name = "dark blade" + desc = "Spread the glory of the dark gods!" + slot_flags = SLOT_BELT + hitsound = 'sound/hallucinations/growl1.ogg' + +/obj/item/weapon/nullrod/claymore/chainsaw_sword + icon_state = "chainswordon" + item_state = "chainswordon" + name = "sacred chainsaw sword" + desc = "Suffer not a heretic to live." + slot_flags = SLOT_BELT + attack_verb = list("sawed", "torn", "cut", "chopped", "diced") + hitsound = 'sound/weapons/chainsawhit.ogg' + +/obj/item/weapon/nullrod/claymore/glowing + icon_state = "swordon" + item_state = "swordon" + name = "force weapon" + desc = "The blade glows with the power of faith. Or possibly a battery." + slot_flags = SLOT_BELT + +/obj/item/weapon/nullrod/claymore/katana + name = "hanzo steel" + desc = "Capable of cutting clean through a holy claymore." + icon_state = "katana" + item_state = "katana" + slot_flags = SLOT_BELT | SLOT_BACK + +/obj/item/weapon/nullrod/claymore/multiverse + name = "extradimensional blade" + desc = "Once the harbinger of a interdimensional war, its sharpness fluctuates wildly. " + icon_state = "multiverse" + item_state = "multiverse" + slot_flags = SLOT_BELT + +/obj/item/weapon/nullrod/claymore/multiverse/attack(mob/living/carbon/M, mob/living/carbon/user) + force = rand(1, 30) + ..() + +/obj/item/weapon/nullrod/claymore/saber + name = "light energy sword" + hitsound = 'sound/weapons/blade1.ogg' + icon_state = "swordblue" + item_state = "swordblue" + desc = "If you strike me down, I shall become more robust than you can possibly imagine." + slot_flags = SLOT_BELT + +/obj/item/weapon/nullrod/claymore/saber/red + name = "dark energy sword" + icon_state = "swordred" + item_state = "swordred" + desc = "Woefully ineffective when used on steep terrain." + +/obj/item/weapon/nullrod/claymore/saber/pirate + name = "nautical energy sword" + icon_state = "cutlass1" + item_state = "cutlass1" + desc = "Convincing HR that your religion involved piracy was no mean feat." + +/obj/item/weapon/nullrod/sord + name = "\improper UNREAL SORD" + desc = "This thing is so unspeakably HOLY you are having a hard time even holding it." + icon_state = "sord" + item_state = "sord" + slot_flags = SLOT_BELT + force = 4.13 + throwforce = 1 + hitsound = 'sound/weapons/bladeslice.ogg' + attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") + +/obj/item/weapon/nullrod/scythe + icon_state = "scythe0" + item_state = "scythe0" + name = "reaper scythe" + desc = "Ask not for whom the bell tolls..." + w_class = 4 + armour_penetration = 35 + slot_flags = SLOT_BACK + sharpness = IS_SHARP + attack_verb = list("chopped", "sliced", "cut", "reaped") + +/obj/item/weapon/nullrod/scythe/vibro + icon_state = "hfrequency0" + item_state = "hfrequency1" + name = "high frequency blade" + desc = "Bad references are the DNA of the soul." + attack_verb = list("chopped", "sliced", "cut", "zandatsu'd") + hitsound = 'sound/weapons/rapierhit.ogg' + + +/obj/item/weapon/nullrod/scythe/spellblade + icon_state = "spellblade" + item_state = "spellblade" + icon = 'icons/obj/guns/magic.dmi' + name = "dormant spellblade" + desc = "The blade grants the wielder nearly limitless power...if they can figure out how to turn it on, that is." + hitsound = 'sound/weapons/rapierhit.ogg' + +/obj/item/weapon/nullrod/scythe/talking + icon_state = "talking_sword" + item_state = "talking_sword" + name = "possessed blade" + desc = "When the station falls into chaos, it's nice to have a friend by your side." + attack_verb = list("chopped", "sliced", "cut") + hitsound = 'sound/weapons/rapierhit.ogg' + var/possessed = FALSE + +/obj/item/weapon/nullrod/scythe/talking/attack_self(mob/living/user) + if(possessed) + return + + user << "You attempt to wake the spirit of the blade..." + + possessed = TRUE + + var/list/mob/dead/observer/candidates = pollCandidates("Do you want to play as the spirit of [user.real_name]'s blade?", ROLE_PAI, null, FALSE, 100) + var/mob/dead/observer/theghost = null + + if(candidates.len) + theghost = pick(candidates) + var/mob/living/simple_animal/shade/S = new(src) + S.real_name = name + S.name = name + S.ckey = theghost.ckey + S.status_flags |= GODMODE + var/input = stripped_input(S,"What are you named?", ,"", MAX_NAME_LEN) + + if(src && input) + name = input + S.real_name = input + S.name = input + else + user << "The blade is dormant. Maybe you can try again later." + possessed = FALSE + +/obj/item/weapon/nullrod/scythe/talking/Destroy() + for(var/mob/living/simple_animal/shade/S in contents) + S << "You were destroyed!" + qdel(S) + return ..() + +/obj/item/weapon/nullrod/hammmer + icon_state = "hammeron" + item_state = "hammeron" + name = "relic war hammer" + desc = "This war hammer cost the chaplain fourty thousand space dollars." + slot_flags = SLOT_BELT + w_class = 5 + attack_verb = list("smashed", "bashed", "hammered", "crunched") + +/obj/item/weapon/nullrod/chainsaw + name = "chainsaw hand" + desc = "Good? Bad? You're the guy with the chainsaw hand." + icon_state = "chainsaw_on" + item_state = "mounted_chainsaw" + w_class = 5 + flags = NODROP | ABSTRACT + sharpness = IS_SHARP + attack_verb = list("sawed", "torn", "cut", "chopped", "diced") + hitsound = 'sound/weapons/chainsawhit.ogg' + +/obj/item/weapon/nullrod/clown + icon = 'icons/obj/wizard.dmi' + icon_state = "honkrender" + item_state = "render" + name = "clown dagger" + desc = "Used for absolutely hilarious sacrifices." + hitsound = 'sound/items/bikehorn.ogg' + sharpness = IS_SHARP + attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") + +/obj/item/weapon/nullrod/whip + name = "holy whip" + desc = "What a terrible night to be on Space Station 13." + icon_state = "chain" + item_state = "chain" + slot_flags = SLOT_BELT + attack_verb = list("whipped", "lashed") + hitsound = 'sound/weapons/chainhit.ogg' + +/obj/item/weapon/nullrod/fedora + name = "atheist's fedora" + desc = "The brim of the hat is as sharp as your wit. The edge would hurt almost as much as disproving the existence of God." + icon_state = "fedora" + item_state = "fedora" + slot_flags = SLOT_HEAD + icon = 'icons/obj/clothing/hats.dmi' + force = 0 + throw_speed = 4 + throw_range = 7 + throwforce = 30 + sharpness = IS_SHARP + attack_verb = list("enlightened", "redpilled") + +/obj/item/weapon/nullrod/armblade + name = "dark blessing" + desc = "Particularly twisted dieties grant gifts of dubious value." + icon_state = "arm_blade" + item_state = "arm_blade" + flags = ABSTRACT | NODROP + w_class = 5 + sharpness = IS_SHARP + +/obj/item/weapon/nullrod/carp + name = "carp-sie plushie" + desc = "An adorable stuffed toy that resembles the god of all carp. The teeth look pretty sharp. Activate it to receive the blessing of Carp-Sie." + icon = 'icons/obj/toy.dmi' + icon_state = "carpplushie" + item_state = "carp_plushie" + force = 15 + attack_verb = list("bitten", "eaten", "fin slapped") + hitsound = 'sound/weapons/bite.ogg' + var/used_blessing = FALSE + +/obj/item/weapon/nullrod/carp/attack_self(mob/living/user) + if(used_blessing) + return + if(user.mind && (user.mind.assigned_role != "Chaplain")) + return + user << "You are blessed by Carp-Sie. Wild space carp will no longer attack you." + user.faction |= "carp" + used_blessing = TRUE + +/obj/item/weapon/nullrod/claymore/bostaff //May as well make it a "claymore" and inherit the blocking + name = "monk's staff" + desc = "A long, tall staff made of polished wood. Traditionally used in ancient old-Earth martial arts, now used to harass the clown." + w_class = 4 + force = 15 + block_chance = 40 + slot_flags = SLOT_BACK + sharpness = IS_BLUNT + hitsound = "swing_hit" + attack_verb = list("smashed", "slammed", "whacked", "thwacked") + icon = 'icons/obj/weapons.dmi' + icon_state = "bostaff0" + item_state = "bostaff0" + +/obj/item/weapon/nullrod/tribal_knife + icon_state = "crysknife" + item_state = "crysknife" + name = "arrhythmic knife" + w_class = 5 + desc = "They say fear is the true mind killer, but stabbing them in the head works too. Honour compels you to not sheathe it once drawn." + sharpness = IS_SHARP + slot_flags = null + flags = HANDSLOW + hitsound = 'sound/weapons/bladeslice.ogg' + attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") + +/obj/item/weapon/nullrod/pitchfork + icon_state = "pitchfork0" + name = "unholy pitchfork" + w_class = 3 + desc = "Holding this makes you look absolutely devilish." + attack_verb = list("poked", "impaled", "pierced", "jabbed") + hitsound = 'sound/weapons/bladeslice.ogg' + sharpness = IS_SHARP + +/obj/item/weapon/nullrod/tribal_knife/New() + ..() + START_PROCESSING(SSobj, src) + +/obj/item/weapon/nullrod/tribal_knife/Destroy() + STOP_PROCESSING(SSobj, src) + return ..() + +/obj/item/weapon/nullrod/tribal_knife/process() + slowdown = rand(-2, 2) + diff --git a/code/game/objects/items/weapons/implants/implant.dm b/code/game/objects/items/weapons/implants/implant.dm new file mode 100644 index 0000000..ecf3f7f --- /dev/null +++ b/code/game/objects/items/weapons/implants/implant.dm @@ -0,0 +1,86 @@ +/obj/item/weapon/implant + name = "implant" + icon = 'icons/obj/implants.dmi' + icon_state = "generic" //Shows up as the action button icon + origin_tech = "materials=2;biotech=3;programming=2" + actions_types = list(/datum/action/item_action/hands_free/activate) + var/activated = 1 //1 for implant types that can be activated, 0 for ones that are "always on" like mindshield implants + var/implanted = null + var/mob/living/carbon/imp_in = null + item_color = "b" + var/allow_multiple = 0 + var/uses = -1 + flags = DROPDEL + + +/obj/item/weapon/implant/proc/trigger(emote, mob/living/carbon/source) + return + +/obj/item/weapon/implant/proc/activate() + return + +/obj/item/weapon/implant/ui_action_click() + activate("action_button") + + +//What does the implant do upon injection? +//return 1 if the implant injects +//return -1 if the implant fails to inject +//return 0 if there is no room for implant +/obj/item/weapon/implant/proc/implant(mob/living/carbon/source, mob/user, silent = 0) + for(var/X in source.implants) + if(istype(X, type)) + var/obj/item/weapon/implant/imp_e = X + if(!allow_multiple) + if(imp_e.uses < initial(imp_e.uses)*2) + if(uses == -1) + imp_e.uses = -1 + else + imp_e.uses = min(imp_e.uses + uses, initial(imp_e.uses)*2) + qdel(src) + return 1 + else + return 0 + + src.loc = source + imp_in = source + source.implants += src + implanted = 1 + if(activated) + for(var/X in actions) + var/datum/action/A = X + A.Grant(source) + if(ishuman(source)) + var/mob/living/carbon/human/H = source + H.sec_hud_set_implants() + + if(user) + add_logs(user, source, "implanted", object="[name]") + + return 1 + +/obj/item/weapon/implant/proc/removed(mob/living/carbon/source, silent = 0, special = 0) + src.loc = null + imp_in = null + implanted = 0 + source.implants -= src + for(var/X in actions) + var/datum/action/A = X + A.Grant(source) + if(ishuman(source)) + var/mob/living/carbon/human/H = source + H.sec_hud_set_implants() + + return 1 + +/obj/item/weapon/implant/Destroy() + if(imp_in) + removed(imp_in) + return ..() + +/obj/item/weapon/implant/proc/get_data() + return "No information available" + +/obj/item/weapon/implant/dropped(mob/user) + . = 1 + ..() diff --git a/code/game/objects/items/weapons/implants/implant_abductor.dm b/code/game/objects/items/weapons/implants/implant_abductor.dm new file mode 100644 index 0000000..2084404 --- /dev/null +++ b/code/game/objects/items/weapons/implants/implant_abductor.dm @@ -0,0 +1,47 @@ + +/obj/item/weapon/implant/abductor + name = "recall implant" + desc = "Returns you to the mothership." + icon = 'icons/obj/abductor.dmi' + icon_state = "implant" + activated = 1 + origin_tech = "materials=2;biotech=7;magnets=4;bluespace=4;abductor=5" + var/obj/machinery/abductor/pad/home + var/cooldown = 30 + +/obj/item/weapon/implant/abductor/activate() + if(cooldown == initial(cooldown)) + home.Retrieve(imp_in,1) + cooldown = 0 + START_PROCESSING(SSobj, src) + else + imp_in << "You must wait [30 - cooldown] seconds to use [src] again!" + +/obj/item/weapon/implant/abductor/process() + if(cooldown < initial(cooldown)) + cooldown++ + if(cooldown == initial(cooldown)) + STOP_PROCESSING(SSobj, src) + +/obj/item/weapon/implant/abductor/implant(var/mob/source, var/mob/user) + if(..()) + var/obj/machinery/abductor/console/console + if(ishuman(source)) + var/mob/living/carbon/human/H = source + if(H.dna.species.id == "abductor") + var/datum/species/abductor/S = H.dna.species + console = get_team_console(S.team) + home = console.pad + + if(!home) + console = get_team_console(pick(1, 2, 3, 4)) + home = console.pad + return 1 + +/obj/item/weapon/implant/abductor/proc/get_team_console(var/team) + var/obj/machinery/abductor/console/console + for(var/obj/machinery/abductor/console/c in machines) + if(c.team == team) + console = c + break + return console diff --git a/code/game/objects/items/weapons/implants/implant_chem.dm b/code/game/objects/items/weapons/implants/implant_chem.dm new file mode 100644 index 0000000..da9e1b6 --- /dev/null +++ b/code/game/objects/items/weapons/implants/implant_chem.dm @@ -0,0 +1,69 @@ +/obj/item/weapon/implant/chem + name = "chem implant" + desc = "Injects things." + icon_state = "reagents" + origin_tech = "materials=3;biotech=4" + flags = OPENCONTAINER + +/obj/item/weapon/implant/chem/get_data() + var/dat = {"Implant Specifications:
          + Name: Robust Corp MJ-420 Prisoner Management Implant
          + Life: Deactivates upon death but remains within the body.
          + Important Notes: Due to the system functioning off of nutrients in the implanted subject's body, the subject
          + will suffer from an increased appetite.

          +
          + Implant Details:
          + Function: Contains a small capsule that can contain various chemicals. Upon receiving a specially encoded signal
          + the implant releases the chemicals directly into the blood stream.
          + Special Features: + Micro-Capsule- Can be loaded with any sort of chemical agent via the common syringe and can hold 50 units.
          + Can only be loaded while still in its original case.
          + Integrity: Implant will last so long as the subject is alive."} + return dat + +/obj/item/weapon/implant/chem/New() + ..() + create_reagents(50) + tracked_chem_implants += src + +/obj/item/weapon/implant/chem/Destroy() + ..() + tracked_chem_implants -= src + + + + +/obj/item/weapon/implant/chem/trigger(emote, mob/source) + if(emote == "deathgasp") + activate(reagents.total_volume) + +/obj/item/weapon/implant/chem/activate(cause) + if(!cause || !imp_in) + return 0 + var/mob/living/carbon/R = imp_in + var/injectamount = null + if (cause == "action_button") + injectamount = reagents.total_volume + else + injectamount = cause + reagents.trans_to(R, injectamount) + R << "You hear a faint beep." + if(!reagents.total_volume) + R << "You hear a faint click from your chest." + qdel(src) + + +/obj/item/weapon/implantcase/chem + name = "implant case - 'Remote Chemical'" + desc = "A glass case containing a remote chemical implant." + +/obj/item/weapon/implantcase/chem/New() + imp = new /obj/item/weapon/implant/chem(src) + ..() + +/obj/item/weapon/implantcase/chem/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W,/obj/item/weapon/reagent_containers/syringe) && imp) + W.afterattack(imp, user, params) + return TRUE + else + return ..() diff --git a/code/game/objects/items/weapons/implants/implant_clown.dm b/code/game/objects/items/weapons/implants/implant_clown.dm new file mode 100644 index 0000000..01f1e97 --- /dev/null +++ b/code/game/objects/items/weapons/implants/implant_clown.dm @@ -0,0 +1,30 @@ +/obj/item/weapon/implant/sad_trombone + name = "sad trombone implant" + activated = 0 + +/obj/item/weapon/implant/sad_trombone/get_data() + var/dat = {"Implant Specifications:
          + Name: Honk Co. Sad Trombone Implant
          + Life: Activates upon death.
          + "} + return dat + +/obj/item/weapon/implant/sad_trombone/trigger(emote, mob/source) + if(emote == "deathgasp") + playsound(loc, 'sound/misc/sadtrombone.ogg', 50, 0) + +/obj/item/weapon/implanter/sad_trombone + name = "implanter (sad_trombone)" + +/obj/item/weapon/implanter/sad_trombone/New() + imp = new /obj/item/weapon/implant/sad_trombone(src) + ..() + + +/obj/item/weapon/implantcase/sad_trombone + name = "implant case - 'Sad Trombone'" + desc = "A glass case containing a sad trombone implant." + +/obj/item/weapon/implantcase/sad_trombone/New() + imp = new /obj/item/weapon/implant/sad_trombone(src) + ..() diff --git a/code/game/objects/items/weapons/implants/implant_exile.dm b/code/game/objects/items/weapons/implants/implant_exile.dm new file mode 100644 index 0000000..11cf876 --- /dev/null +++ b/code/game/objects/items/weapons/implants/implant_exile.dm @@ -0,0 +1,30 @@ +//Exile implants will allow you to use the station gate, but not return home. +//This will allow security to exile badguys/for badguys to exile their kill targets + +/obj/item/weapon/implant/exile + name = "exile implant" + desc = "Prevents you from returning from away missions" + origin_tech = "materials=2;biotech=3;magnets=2;bluespace=3" + activated = 0 + +/obj/item/weapon/implant/exile/get_data() + var/dat = {"Implant Specifications:
          + Name: Nanotrasen Employee Exile Implant
          + Implant Details: The onboard gateway system has been modified to reject entry by individuals containing this implant
          "} + return dat + + +/obj/item/weapon/implanter/exile + name = "implanter (exile)" + +/obj/item/weapon/implanter/exile/New() + imp = new /obj/item/weapon/implant/exile( src ) + ..() + +/obj/item/weapon/implantcase/exile + name = "implant case - 'Exile'" + desc = "A glass case containing an exile implant." + +/obj/item/weapon/implantcase/exile/New() + imp = new /obj/item/weapon/implant/exile(src) + ..() diff --git a/code/game/objects/items/weapons/implants/implant_explosive.dm b/code/game/objects/items/weapons/implants/implant_explosive.dm new file mode 100644 index 0000000..a11763f --- /dev/null +++ b/code/game/objects/items/weapons/implants/implant_explosive.dm @@ -0,0 +1,121 @@ +/obj/item/weapon/implant/explosive + name = "microbomb implant" + desc = "And boom goes the weasel." + icon_state = "explosive" + origin_tech = "materials=2;combat=3;biotech=4;syndicate=4" + var/weak = 2 + var/medium = 0.8 + var/heavy = 0.4 + var/delay = 7 + +/obj/item/weapon/implant/explosive/get_data() + var/dat = {"Implant Specifications:
          + Name: Robust Corp RX-78 Employee Management Implant
          + Life: Activates upon death.
          + Important Notes: Explodes
          +
          + Implant Details:
          + Function: Contains a compact, electrically detonated explosive that detonates upon receiving a specially encoded signal or upon host death.
          + Special Features: Explodes
          + "} + return dat + +/obj/item/weapon/implant/explosive/trigger(emote, mob/source) + if(emote == "deathgasp") + activate("death") + +/obj/item/weapon/implant/explosive/activate(cause) + if(!cause || !imp_in) + return 0 + if(cause == "action_button" && alert(imp_in, "Are you sure you want to activate your [name]? This will cause you to explode!", "[name] Confirmation", "Yes", "No") != "Yes") + return 0 + heavy = round(heavy) + medium = round(medium) + weak = round(weak) + imp_in << "You activate your [name]." + var/turf/boomturf = get_turf(imp_in) + var/area/A = get_area(boomturf) + message_admins("[key_name_admin(imp_in)]? (FLW) has activated their [name] at [A.name] (JMP).") +//If the delay is short, just blow up already jeez + if(delay <= 7) + explosion(src,heavy,medium,weak,weak, flame_range = weak) + if(imp_in) + imp_in.gib(1) + qdel(src) + return + timed_explosion() + +/obj/item/weapon/implant/explosive/implant(mob/living/carbon/source) + for(var/X in source.implants) + if(istype(X, type)) + var/obj/item/weapon/implant/explosive/imp_e = X + imp_e.heavy += heavy + imp_e.medium += medium + imp_e.weak += weak + imp_e.delay += delay + qdel(src) + return 1 + + return ..() + +/obj/item/weapon/implant/explosive/proc/timed_explosion() + imp_in.visible_message("[imp_in] starts beeping ominously!") + playsound(loc, 'sound/items/timer.ogg', 30, 0) + sleep(delay/4) + if(imp_in && !imp_in.stat) + imp_in.visible_message("[imp_in] doubles over in pain!") + imp_in.Weaken(7) + playsound(loc, 'sound/items/timer.ogg', 30, 0) + sleep(delay/4) + playsound(loc, 'sound/items/timer.ogg', 30, 0) + sleep(delay/4) + playsound(loc, 'sound/items/timer.ogg', 30, 0) + sleep(delay/4) + explosion(src,heavy,medium,weak,weak, flame_range = weak) + if(imp_in) + imp_in.gib(1) + qdel(src) + +/obj/item/weapon/implant/explosive/macro + name = "macrobomb implant" + desc = "And boom goes the weasel. And everything else nearby." + icon_state = "explosive" + origin_tech = "materials=3;combat=5;biotech=4;syndicate=5" + weak = 16 + medium = 8 + heavy = 4 + delay = 70 + +/obj/item/weapon/implant/explosive/macro/implant(mob/living/carbon/source) + for(var/X in source.implants) + if(istype(X, type)) + return 0 + + for(var/Y in source.implants) + if(istype(Y, /obj/item/weapon/implant/explosive)) + var/obj/item/weapon/implant/explosive/imp_e = Y + heavy += imp_e.heavy + medium += imp_e.medium + weak += imp_e.weak + delay += imp_e.delay + qdel(imp_e) + break + + return ..() + + +/obj/item/weapon/implanter/explosive + name = "implanter (explosive)" + +/obj/item/weapon/implanter/explosive/New() + imp = new /obj/item/weapon/implant/explosive(src) + ..() + + +/obj/item/weapon/implantcase/explosive + name = "implant case - 'Explosive'" + desc = "A glass case containing an explosive implant." + +/obj/item/weapon/implantcase/explosive/New() + imp = new /obj/item/weapon/implant/explosive(src) + ..() \ No newline at end of file diff --git a/code/game/objects/items/weapons/implants/implant_freedom.dm b/code/game/objects/items/weapons/implants/implant_freedom.dm new file mode 100644 index 0000000..383d5cb --- /dev/null +++ b/code/game/objects/items/weapons/implants/implant_freedom.dm @@ -0,0 +1,51 @@ +/obj/item/weapon/implant/freedom + name = "freedom implant" + desc = "Use this to escape from those evil Red Shirts." + icon_state = "freedom" + item_color = "r" + origin_tech = "combat=5;magnets=3;biotech=4;syndicate=2" + uses = 4 + + +/obj/item/weapon/implant/freedom/activate() + uses-- + imp_in << "You feel a faint click." + if(iscarbon(imp_in)) + var/mob/living/carbon/C_imp_in = imp_in + C_imp_in.uncuff() + if(!uses) + qdel(src) + + +/obj/item/weapon/implant/freedom/get_data() + var/dat = {" +Implant Specifications:
          +Name: Freedom Beacon
          +Life: optimum 5 uses
          +Important Notes: Illegal
          +
          +Implant Details:
          +Function: Transmits a specialized cluster of signals to override handcuff locking +mechanisms
          +Special Features:
          +Neuro-Scan- Analyzes certain shadow signals in the nervous system
          +
          +No Implant Specifics"} + return dat + + +/obj/item/weapon/implanter/freedom + name = "implanter (freedom)" + +/obj/item/weapon/implanter/freedom/New() + imp = new /obj/item/weapon/implant/freedom(src) + ..() + + +/obj/item/weapon/implantcase/freedom + name = "implant case - 'Freedom'" + desc = "A glass case containing a freedom implant." + +/obj/item/weapon/implantcase/freedom/New() + imp = new /obj/item/weapon/implant/freedom(src) + ..() diff --git a/code/game/objects/items/weapons/implants/implant_gang.dm b/code/game/objects/items/weapons/implants/implant_gang.dm new file mode 100644 index 0000000..7505952 --- /dev/null +++ b/code/game/objects/items/weapons/implants/implant_gang.dm @@ -0,0 +1,56 @@ + +/obj/item/weapon/implant/gang + name = "gang implant" + desc = "Makes you a gangster or such." + activated = 0 + origin_tech = "materials=2;biotech=4;programming=4;syndicate=3" + var/datum/gang/gang + +/obj/item/weapon/implant/gang/New(loc,var/setgang) + ..() + gang = setgang + +/obj/item/weapon/implant/gang/get_data() + var/dat = {"Implant Specifications:
          + Name: Criminal brainwash implant
          + Life: A few seconds after injection.
          + Important Notes: Illegal
          +
          + Implant Details:
          + Function: Contains a small pod of nanobots that change the host's brain to be loyal to a certain organization.
          + Special Features: This device will also emit a small EMP pulse, destroying any other implants within the host's brain.
          + Integrity: Implant's EMP function will destroy itself in the process."} + return dat + +/obj/item/weapon/implant/gang/implant(mob/living/carbon/target, mob/user, silent = 0) + if(..()) + for(var/obj/item/weapon/implant/I in target.implants) + if(I != src) + qdel(I) + + if(!target.mind || target.stat == DEAD) + return 0 + + var/success + if(target.mind in ticker.mode.get_gangsters()) + if(ticker.mode.remove_gangster(target.mind,0,1)) + success = 1 //Was not a gang boss, convert as usual + else + success = 1 + + if(ishuman(target)) + if(!success) + target.visible_message("[target] seems to resist the implant!", "You feel the influence of your enemies try to invade your mind!") + + qdel(src) + return -1 + +/obj/item/weapon/implanter/gang + name = "implanter (gang)" + +/obj/item/weapon/implanter/gang/New(loc, gang) + if(!gang) + qdel(src) + return + imp = new /obj/item/weapon/implant/gang(src,gang) + ..() diff --git a/code/game/objects/items/weapons/implants/implant_krav_maga.dm b/code/game/objects/items/weapons/implants/implant_krav_maga.dm new file mode 100644 index 0000000..dbaad40 --- /dev/null +++ b/code/game/objects/items/weapons/implants/implant_krav_maga.dm @@ -0,0 +1,40 @@ +/obj/item/weapon/implant/krav_maga + name = "krav maga implant" + desc = "Teaches you the arts of Krav Maga in 5 short instructional videos beamed directly into your eyeballs." + icon = 'icons/obj/wizard.dmi' + icon_state ="scroll2" + activated = 1 + origin_tech = "materials=2;biotech=4;combat=5;syndicate=4" + var/datum/martial_art/krav_maga/style = new + +/obj/item/weapon/implant/krav_maga/get_data() + var/dat = {"Implant Specifications:
          + Name: Krav Maga Implant
          + Life: 4 hours after death of host
          + Implant Details:
          + Function: Teaches even the clumsiest host the arts of Krav Maga."} + return dat + +/obj/item/weapon/implant/krav_maga/activate() + var/mob/living/carbon/human/H = imp_in + if(!ishuman(H)) + return + if(istype(H.martial_art, /datum/martial_art/krav_maga)) + style.remove(H) + else + style.teach(H,1) + +/obj/item/weapon/implanter/krav_maga + name = "implanter (krav maga)" + +/obj/item/weapon/implanter/krav_maga/New() + imp = new /obj/item/weapon/implant/krav_maga(src) + ..() + +/obj/item/weapon/implantcase/krav_maga + name = "implant case - 'Krav Maga'" + desc = "A glass case containing an implant that can teach the user the arts of Krav Maga." + +/obj/item/weapon/implantcase/krav_maga/New() + imp = new /obj/item/weapon/implant/krav_maga(src) + ..() diff --git a/code/game/objects/items/weapons/implants/implant_loyality.dm b/code/game/objects/items/weapons/implants/implant_loyality.dm new file mode 100644 index 0000000..387cbe2 --- /dev/null +++ b/code/game/objects/items/weapons/implants/implant_loyality.dm @@ -0,0 +1,67 @@ +/obj/item/weapon/implant/mindshield + name = "mindshield implant" + desc = "Protects against brainwashing." + origin_tech = "materials=2;biotech=4;programming=4" + activated = 0 + +/obj/item/weapon/implant/mindshield/get_data() + var/dat = {"Implant Specifications:
          + Name: Nanotrasen Employee Management Implant
          + Life: Ten years.
          + Important Notes: Personnel injected with this device are much more resistant to brainwashing.
          +
          + Implant Details:
          + Function: Contains a small pod of nanobots that protects the host's mental functions from manipulation.
          + Special Features: Will prevent and cure most forms of brainwashing.
          + Integrity: Implant will last so long as the nanobots are inside the bloodstream."} + return dat + + +/obj/item/weapon/implant/mindshield/implant(mob/living/carbon/target, mob/user, silent = 0) + if(..()) + if((target.mind in (ticker.mode.head_revolutionaries | ticker.mode.get_gang_bosses()))) + if(!silent) + target.visible_message("[target] seems to resist the implant!", "You feel something interfering with your mental conditioning, but you resist it!") + removed(target, 1) + qdel(src) + return -1 + if(target.mind in ticker.mode.get_gangsters()) + ticker.mode.remove_gangster(target.mind) + if(!silent) + target.visible_message("[src] was destroyed in the process!", "You feel a sense of peace and security. You are now protected from brainwashing.") + removed(target, 1) + qdel(src) + return -1 + if(target.mind in ticker.mode.revolutionaries) + ticker.mode.remove_revolutionary(target.mind) + if(!silent) + if(target.mind in ticker.mode.cult) + target << "You feel something interfering with your mental conditioning, but you resist it!" + else + target << "You feel a sense of peace and security. You are now protected from brainwashing." + return 1 + return 0 + +/obj/item/weapon/implant/mindshield/removed(mob/target, silent = 0, special = 0) + if(..()) + if(target.stat != DEAD && !silent) + target << "Your mind suddenly feels terribly vulnerable. You are no longer safe from brainwashing." + return 1 + return 0 + +/obj/item/weapon/implanter/mindshield + name = "implanter (mindshield)" + +/obj/item/weapon/implanter/mindshield/New() + imp = new /obj/item/weapon/implant/mindshield(src) + ..() + update_icon() + + +/obj/item/weapon/implantcase/mindshield + name = "implant case - 'Mindshield'" + desc = "A glass case containing a mindshield implant." + +/obj/item/weapon/implantcase/mindshield/New() + imp = new /obj/item/weapon/implant/mindshield(src) + ..() diff --git a/code/game/objects/items/weapons/implants/implant_misc.dm b/code/game/objects/items/weapons/implants/implant_misc.dm new file mode 100644 index 0000000..a3fe9cc --- /dev/null +++ b/code/game/objects/items/weapons/implants/implant_misc.dm @@ -0,0 +1,82 @@ +/obj/item/weapon/implant/weapons_auth + name = "firearms authentication implant" + desc = "Lets you shoot your guns" + icon_state = "auth" + origin_tech = "magnets=2;programming=7;biotech=5;syndicate=5" + activated = 0 + +/obj/item/weapon/implant/weapons_auth/get_data() + var/dat = {"Implant Specifications:
          + Name: Firearms Authentication Implant
          + Life: 4 hours after death of host
          + Implant Details:
          + Function: Allows operation of implant-locked weaponry, preventing equipment from falling into enemy hands."} + return dat + + +/obj/item/weapon/implant/adrenalin + name = "adrenal implant" + desc = "Removes all stuns and knockdowns." + icon_state = "adrenal" + origin_tech = "materials=2;biotech=4;combat=3;syndicate=4" + uses = 3 + +/obj/item/weapon/implant/adrenalin/get_data() + var/dat = {"Implant Specifications:
          + Name: Cybersun Industries Adrenaline Implant
          + Life: Five days.
          + Important Notes: Illegal
          +
          + Implant Details: Subjects injected with implant can activate an injection of medical cocktails.
          + Function: Removes stuns, increases speed, and has a mild healing effect.
          + Integrity: Implant can only be used three times before reserves are depleted."} + return dat + +/obj/item/weapon/implant/adrenalin/activate() + uses-- + imp_in << "You feel a sudden surge of energy!" + imp_in.SetStunned(0) + imp_in.SetWeakened(0) + imp_in.SetParalysis(0) + imp_in.adjustStaminaLoss(-75) + imp_in.lying = 0 + imp_in.update_canmove() + + imp_in.reagents.add_reagent("synaptizine", 10) + imp_in.reagents.add_reagent("omnizine", 10) + imp_in.reagents.add_reagent("stimulants", 10) + if(!uses) + qdel(src) + + +/obj/item/weapon/implant/emp + name = "emp implant" + desc = "Triggers an EMP." + icon_state = "emp" + origin_tech = "biotech=3;magnets=4;syndicate=1" + uses = 3 + +/obj/item/weapon/implant/emp/activate() + uses-- + empulse(imp_in, 3, 5) + if(!uses) + qdel(src) + + +//Health Tracker Implant + +/obj/item/weapon/implant/health + name = "health implant" + activated = 0 + var/healthstring = "" + +/obj/item/weapon/implant/health/proc/sensehealth() + if (!implanted) + return "ERROR" + else + if(isliving(implanted)) + var/mob/living/L = implanted + healthstring = "Oxygen Deprivation Damage => [round(L.getOxyLoss())]
          Fire Damage => [round(L.getFireLoss())]
          Toxin Damage => [round(L.getToxLoss())]
          Brute Force Damage => [round(L.getBruteLoss())]
          " + if (!healthstring) + healthstring = "ERROR" + return healthstring \ No newline at end of file diff --git a/code/game/objects/items/weapons/implants/implant_storage.dm b/code/game/objects/items/weapons/implants/implant_storage.dm new file mode 100644 index 0000000..686dd7d --- /dev/null +++ b/code/game/objects/items/weapons/implants/implant_storage.dm @@ -0,0 +1,53 @@ +/obj/item/weapon/storage/internal/implant + name = "bluespace pocket" + max_w_class = 3 + max_combined_w_class = 6 + cant_hold = list(/obj/item/weapon/disk/nuclear) + silent = 1 + + +/obj/item/weapon/implant/storage + name = "storage implant" + desc = "Stores up to two big items in a bluespace pocket." + icon_state = "storage" + origin_tech = "materials=2;magnets=4;bluespace=5;syndicate=4" + item_color = "r" + var/obj/item/weapon/storage/internal/implant/storage + +/obj/item/weapon/implant/storage/New() + ..() + storage = new /obj/item/weapon/storage/internal/implant(src) + +/obj/item/weapon/implant/storage/activate() + storage.MouseDrop(imp_in) + +/obj/item/weapon/implant/storage/removed(source, silent = 0, special = 0) + if(..()) + if(!special) + storage.close_all() + for(var/obj/item/I in storage) + storage.remove_from_storage(I, get_turf(source)) + return 1 + +/obj/item/weapon/implant/storage/implant(mob/living/carbon/source, mob/user, silent = 0) + for(var/X in source.implants) + if(istype(X, type)) + var/obj/item/weapon/implant/storage/imp_e = X + imp_e.storage.storage_slots += storage.storage_slots + imp_e.storage.max_combined_w_class += storage.max_combined_w_class + imp_e.storage.contents += storage.contents + + storage.close_all() + storage.show_to(source) + + qdel(src) + return 1 + + return ..() + +/obj/item/weapon/implanter/storage + name = "implanter (storage)" + +/obj/item/weapon/implanter/storage/New() + imp = new /obj/item/weapon/implant/storage(src) + ..() diff --git a/code/game/objects/items/weapons/implants/implant_track.dm b/code/game/objects/items/weapons/implants/implant_track.dm new file mode 100644 index 0000000..a0d5836 --- /dev/null +++ b/code/game/objects/items/weapons/implants/implant_track.dm @@ -0,0 +1,37 @@ +/obj/item/weapon/implant/tracking + name = "tracking implant" + desc = "Track with this." + activated = 0 + origin_tech = "materials=2;magnets=2;programming=2;biotech=2" + + +/obj/item/weapon/implant/tracking/New() + ..() + tracked_implants += src + +/obj/item/weapon/implant/tracking/Destroy() + ..() + tracked_implants -= src + +/obj/item/weapon/implanter/tracking/New() + imp = new /obj/item/weapon/implant/tracking( src ) + ..() +/obj/item/weapon/implanter/tracking/gps/New() + imp = new /obj/item/device/gps/mining/internal( src ) + ..() + +/obj/item/weapon/implant/tracking/get_data() + var/dat = {"Implant Specifications:
          + Name: Tracking Beacon
          + Life: 10 minutes after death of host
          + Important Notes: None
          +
          + Implant Details:
          + Function: Continuously transmits low power signal. Useful for tracking.
          + Special Features:
          + Neuro-Safe- Specialized shell absorbs excess voltages self-destructing the chip if + a malfunction occurs thereby securing safety of subject. The implant will melt and + disintegrate into bio-safe elements.
          + Integrity: Gradient creates slight risk of being overcharged and frying the + circuitry. As a result neurotoxins can cause massive damage."} + return dat diff --git a/code/game/objects/items/weapons/implants/implantcase.dm b/code/game/objects/items/weapons/implants/implantcase.dm new file mode 100644 index 0000000..7f66c6c --- /dev/null +++ b/code/game/objects/items/weapons/implants/implantcase.dm @@ -0,0 +1,88 @@ +/obj/item/weapon/implantcase + name = "implant case" + desc = "A glass case containing an implant." + icon = 'icons/obj/items.dmi' + icon_state = "implantcase-0" + item_state = "implantcase" + throw_speed = 2 + throw_range = 5 + w_class = 1 + origin_tech = "materials=1;biotech=2" + materials = list(MAT_GLASS=500) + var/obj/item/weapon/implant/imp = null + + +/obj/item/weapon/implantcase/update_icon() + if(imp) + icon_state = "implantcase-[imp.item_color]" + origin_tech = imp.origin_tech + reagents = imp.reagents + else + icon_state = "implantcase-0" + origin_tech = initial(origin_tech) + reagents = null + + +/obj/item/weapon/implantcase/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/weapon/pen)) + var/t = stripped_input(user, "What would you like the label to be?", name, null) + if(user.get_active_held_item() != W) + return + if(!in_range(src, user) && loc != user) + return + if(t) + name = "implant case - '[t]'" + else + name = "implant case" + else if(istype(W, /obj/item/weapon/implanter)) + var/obj/item/weapon/implanter/I = W + if(I.imp) + if(imp || I.imp.implanted) + return + I.imp.loc = src + imp = I.imp + I.imp = null + update_icon() + I.update_icon() + else + if(imp) + if(I.imp) + return + imp.loc = I + I.imp = imp + imp = null + update_icon() + I.update_icon() + + else + return ..() + +/obj/item/weapon/implantcase/New() + ..() + update_icon() + + +/obj/item/weapon/implantcase/tracking + name = "implant case - 'Tracking'" + desc = "A glass case containing a tracking implant." + +/obj/item/weapon/implantcase/tracking/New() + imp = new /obj/item/weapon/implant/tracking(src) + ..() + + +/obj/item/weapon/implantcase/weapons_auth + name = "implant case - 'Firearms Authentication'" + desc = "A glass case containing a firearms authentication implant." + +/obj/item/weapon/implantcase/weapons_auth/New() + imp = new /obj/item/weapon/implant/weapons_auth(src) + ..() + +/obj/item/weapon/implantcase/adrenaline + name = "implant case - 'Adrenaline'" + desc = "A glass case containing an adrenaline implant." + +/obj/item/weapon/implantcase/adrenaline/New() + imp = new /obj/item/weapon/implant/adrenalin(src) + ..() diff --git a/code/game/objects/items/weapons/implants/implantchair.dm b/code/game/objects/items/weapons/implants/implantchair.dm new file mode 100644 index 0000000..5e43d2d --- /dev/null +++ b/code/game/objects/items/weapons/implants/implantchair.dm @@ -0,0 +1,192 @@ +//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32 + +/obj/machinery/implantchair + name = "mindshield implanter" + desc = "Used to implant occupants with mindshield implants." + icon = 'icons/obj/machines/implantchair.dmi' + icon_state = "implantchair" + density = 1 + opacity = 0 + anchored = TRUE + + var/ready = TRUE + var/replenishing = FALSE + + var/ready_implants = 5 + var/max_implants = 5 + var/injection_cooldown = 600 + var/replenish_cooldown = 6000 + var/implant_type = /obj/item/weapon/implant/mindshield + var/auto_inject = FALSE + var/auto_replenish = TRUE + var/special = FALSE + var/special_name = "special function" + +/obj/machinery/implantchair/New() + ..() + open_machine() + update_icon() + + +/obj/machinery/implantchair/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ + datum/tgui/master_ui = null, datum/ui_state/state = notcontained_state) + + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "implantchair", name, 375, 280, master_ui, state) + ui.open() + + +/obj/machinery/implantchair/ui_data() + var/list/data = list() + data["occupied"] = occupant ? 1 : 0 + data["open"] = state_open + + data["occupant"] = list() + if(occupant) + data["occupant"]["name"] = occupant.name + data["occupant"]["stat"] = occupant.stat + + data["special_name"] = special ? special_name : null + data["ready_implants"] = ready_implants + data["ready"] = ready + data["replenishing"] = replenishing + + return data + +/obj/machinery/implantchair/ui_act(action, params) + if(..()) + return + switch(action) + if("door") + if(state_open) + close_machine() + else + open_machine() + . = TRUE + if("implant") + implant(occupant,usr) + . = TRUE + +/obj/machinery/implantchair/proc/implant(mob/living/carbon/M,mob/user) + if (!istype(M)) + return + if(!ready_implants || !ready) + return + if(implant_action(M,user)) + ready_implants-- + if(!replenishing && auto_replenish) + replenishing = TRUE + addtimer(src,"replenish",replenish_cooldown) + if(injection_cooldown > 0) + ready = FALSE + addtimer(src,"set_ready",injection_cooldown) + else + playsound(get_turf(src), 'sound/machines/buzz-sigh.ogg', 25, 1) + update_icon() + +/obj/machinery/implantchair/proc/implant_action(mob/living/carbon/M) + var/obj/item/weapon/implant/I = new implant_type + if(I.implant(M)) + visible_message("[M] has been implanted by the [name].") + return 1 + +/obj/machinery/implantchair/update_icon() + icon_state = initial(icon_state) + if(state_open) + icon_state += "_open" + if(occupant) + icon_state += "_occupied" + if(ready) + add_overlay("ready") + else + cut_overlays() + +/obj/machinery/implantchair/proc/replenish() + if(ready_implants < max_implants) + ready_implants++ + if(ready_implants < max_implants) + addtimer(src,"replenish",replenish_cooldown) + else + replenishing = FALSE + +/obj/machinery/implantchair/proc/set_ready() + ready = TRUE + update_icon() + +/obj/machinery/implantchair/container_resist() + var/mob/living/user = usr + if(state_open) + return + user.changeNext_move(CLICK_CD_BREAKOUT) + user.last_special = world.time + CLICK_CD_BREAKOUT + user << "You lean on the back of [src] and start pushing the door open... (this will take about about a minute.)" + audible_message("You hear a metallic creaking from [src]!",hearing_distance = 2) + + if(do_after(user, 600, target = src)) + if(!user || user.stat != CONSCIOUS || user.loc != src || state_open) + return + visible_message("[user] successfully broke out of [src]!") + user << "You successfully break out of [src]!" + open_machine() + +/obj/machinery/implantchair/relaymove(mob/user) + container_resist() + +/obj/machinery/implantchair/MouseDrop_T(mob/target, mob/user) + if(user.stat || user.lying || !Adjacent(user) || !user.Adjacent(target) || !iscarbon(target) || !user.IsAdvancedToolUser()) + return + close_machine(target) + +/obj/machinery/implantchair/close_machine(mob/user) + if((isnull(user) || istype(user)) && state_open) + ..(user) + if(auto_inject && ready && ready_implants > 0) + implant(user,null) + +/obj/machinery/implantchair/genepurge + name = "Genetic purifier" + desc = "Used to purge human genome of foreign influences" + special = TRUE + special_name = "Purge genome" + injection_cooldown = 0 + replenish_cooldown = 300 + +/obj/machinery/implantchair/genepurge/implant_action(mob/living/carbon/human/H,mob/user) + if(!istype(H)) + return 0 + H.set_species(/datum/species/human, 1)//lizards go home + purrbation_remove(H)//remove cats + H.dna.remove_all_mutations()//hulks out + return 1 + + +/obj/machinery/implantchair/brainwash + name = "Neural Imprinter" + desc = "Used to indoctrinate rehabilitate hardened recidivists." + special_name = "Imprint" + injection_cooldown = 3000 + auto_inject = FALSE + auto_replenish = FALSE + special = TRUE + var/objective = "Obey the law. Praise Nanotrasen." + var/custom = FALSE + +/obj/machinery/implantchair/brainwash/implant_action(mob/living/carbon/C,mob/user) + if(!istype(C) || !C.mind) + return 0 + if(custom) + if(!user || !user.Adjacent(src)) + return 0 + objective = stripped_input(usr,"What order do you want to imprint on [C]?","Enter the order","",120) + message_admins("[key_name_admin(user)] set brainwash machine objective to '[objective]'.") + log_game("[key_name_admin(user)] set brainwash machine objective to '[objective]'.") + var/datum/objective/custom_objective = new/datum/objective(objective) + custom_objective.owner = C.mind + C.mind.objectives += custom_objective + C.mind.announce_objectives() + message_admins("[key_name_admin(user)] brainwashed [key_name_admin(C)] with objective '[objective]'.") + log_game("[key_name_admin(user)] brainwashed [key_name_admin(C)] with objective '[objective]'.") + return 1 + + \ No newline at end of file diff --git a/code/game/objects/items/weapons/implants/implanter.dm b/code/game/objects/items/weapons/implants/implanter.dm new file mode 100644 index 0000000..a36f74f --- /dev/null +++ b/code/game/objects/items/weapons/implants/implanter.dm @@ -0,0 +1,77 @@ +/obj/item/weapon/implanter + name = "implanter" + desc = "A sterile automatic implant injector." + icon = 'icons/obj/items.dmi' + icon_state = "implanter0" + item_state = "syringe_0" + throw_speed = 3 + throw_range = 5 + w_class = 2 + origin_tech = "materials=2;biotech=3" + materials = list(MAT_METAL=600, MAT_GLASS=200) + var/obj/item/weapon/implant/imp = null + + +/obj/item/weapon/implanter/update_icon() + if(imp) + icon_state = "implanter1" + origin_tech = imp.origin_tech + else + icon_state = "implanter0" + origin_tech = initial(origin_tech) + + +/obj/item/weapon/implanter/attack(mob/living/carbon/M, mob/user) + if(!iscarbon(M)) + return + if(user && imp) + if(M != user) + M.visible_message("[user] is attemping to implant [M].") + + var/turf/T = get_turf(M) + if(T && (M == user || do_after(user, 50))) + if(user && M && (get_turf(M) == T) && src && imp) + if(imp.implant(M, user)) + if (M == user) + user << "You implant yourself." + else + M.visible_message("[user] has implanted [M].", "[user] implants you.") + imp = null + update_icon() + +/obj/item/weapon/implanter/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/weapon/pen)) + var/t = stripped_input(user, "What would you like the label to be?", name, null) + if(user.get_active_held_item() != W) + return + if(!in_range(src, user) && loc != user) + return + if(t) + name = "implanter ([t])" + else + name = "implanter" + else + return ..() + +/obj/item/weapon/implanter/New() + ..() + spawn(1) + update_icon() + + + + +/obj/item/weapon/implanter/adrenalin + name = "implanter (adrenalin)" + +/obj/item/weapon/implanter/adrenalin/New() + imp = new /obj/item/weapon/implant/adrenalin(src) + ..() + + +/obj/item/weapon/implanter/emp + name = "implanter (EMP)" + +/obj/item/weapon/implanter/emp/New() + imp = new /obj/item/weapon/implant/emp(src) + ..() diff --git a/code/game/objects/items/weapons/implants/implantpad.dm b/code/game/objects/items/weapons/implants/implantpad.dm new file mode 100644 index 0000000..9cc0520 --- /dev/null +++ b/code/game/objects/items/weapons/implants/implantpad.dm @@ -0,0 +1,76 @@ +/obj/item/weapon/implantpad + name = "implantpad" + desc = "Used to modify implants." + icon = 'icons/obj/items.dmi' + icon_state = "implantpad-0" + item_state = "electronic" + throw_speed = 3 + throw_range = 5 + w_class = 2 + var/obj/item/weapon/implantcase/case = null + var/broadcasting = null + var/listening = 1 + + +/obj/item/weapon/implantpad/update_icon() + if(case) + icon_state = "implantpad-1" + else + icon_state = "implantpad-0" + + +/obj/item/weapon/implantpad/attack_hand(mob/user) + if(case && user.is_holding(src)) + user.put_in_active_hand(case) + + case.add_fingerprint(user) + case = null + + add_fingerprint(user) + update_icon() + else + return ..() + + +/obj/item/weapon/implantpad/attackby(obj/item/weapon/implantcase/C, mob/user, params) + if(istype(C, /obj/item/weapon/implantcase)) + if(!case) + if(!user.unEquip(C)) + return + C.loc = src + case = C + update_icon() + else + return ..() + +/obj/item/weapon/implantpad/attack_self(mob/user) + user.set_machine(src) + var/dat = "Implant Mini-Computer:
          " + if(case) + if(case.imp) + if(istype(case.imp, /obj/item/weapon/implant)) + dat += case.imp.get_data() + else + dat += "The implant casing is empty." + else + dat += "Please insert an implant casing!" + user << browse(dat, "window=implantpad") + onclose(user, "implantpad") + + +/obj/item/weapon/implantpad/Topic(href, href_list) + ..() + if(usr.stat) + return + if(usr.contents.Find(src) || (in_range(src, usr) && isturf(loc))) + usr.set_machine(src) + + if(istype(loc, /mob)) + attack_self(loc) + else + for(var/mob/M in viewers(1, src)) + if(M.client) + attack_self(M) + add_fingerprint(usr) + else + usr << browse(null, "window=implantpad") diff --git a/code/game/objects/items/weapons/implants/implantuplink.dm b/code/game/objects/items/weapons/implants/implantuplink.dm new file mode 100644 index 0000000..577c9f0 --- /dev/null +++ b/code/game/objects/items/weapons/implants/implantuplink.dm @@ -0,0 +1,46 @@ +/obj/item/weapon/implant/uplink + name = "uplink implant" + desc = "Sneeki breeki." + icon = 'icons/obj/radio.dmi' + icon_state = "radio" + origin_tech = "materials=4;magnets=4;programming=4;biotech=4;syndicate=5;bluespace=5" + +/obj/item/weapon/implant/uplink/New() + hidden_uplink = new(src) + hidden_uplink.telecrystals = 10 + ..() + +/obj/item/weapon/implant/uplink/implant(mob/living/carbon/source, mob/user, silent = 0) + for(var/X in source.implants) + if(istype(X, type)) + var/obj/item/weapon/implant/imp_e = X + imp_e.hidden_uplink.telecrystals += hidden_uplink.telecrystals + qdel(src) + return 1 + + if(..()) + hidden_uplink.owner = "[user.key]" + return 1 + return 0 + +/obj/item/weapon/implant/uplink/activate() + if(hidden_uplink) + hidden_uplink.interact(usr) + +/obj/item/weapon/implanter/uplink + name = "implanter (uplink)" + persistence_replacement = /obj/item/weapon/implanter/weakuplink + +/obj/item/weapon/implanter/uplink/New() + imp = new /obj/item/weapon/implant/uplink(src) + ..() +/obj/item/weapon/implanter/weakuplink + name = "implanter (uplink)" + +/obj/item/weapon/implanter/weakuplink/New() + imp = new /obj/item/weapon/implant/uplink/weak(src) + ..() + +/obj/item/weapon/implant/uplink/weak/New() + ..() + hidden_uplink.telecrystals = 5 \ No newline at end of file diff --git a/code/game/objects/items/weapons/kitchen.dm b/code/game/objects/items/weapons/kitchen.dm new file mode 100644 index 0000000..e7a4b0b --- /dev/null +++ b/code/game/objects/items/weapons/kitchen.dm @@ -0,0 +1,158 @@ +/* Kitchen tools + * Contains: + * Fork + * Kitchen knives + * Ritual Knife + * Butcher's cleaver + * Combat Knife + * Rolling Pins + */ + +/obj/item/weapon/kitchen + icon = 'icons/obj/kitchen.dmi' + origin_tech = "materials=1" + +/obj/item/weapon/kitchen/fork + name = "fork" + desc = "Pointy." + icon_state = "fork" + force = 5 + w_class = 1 + throwforce = 0 + throw_speed = 3 + throw_range = 5 + materials = list(MAT_METAL=80) + flags = CONDUCT + attack_verb = list("attacked", "stabbed", "poked") + hitsound = 'sound/weapons/bladeslice.ogg' + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 30) + var/datum/reagent/forkload //used to eat omelette + +/obj/item/weapon/kitchen/fork/attack(mob/living/carbon/M, mob/living/carbon/user) + if(!istype(M)) + return ..() + + if(forkload) + if(M == user) + M.visible_message("[user] eats a delicious forkful of omelette!") + M.reagents.add_reagent(forkload.id, 1) + else + M.visible_message("[user] feeds [M] a delicious forkful of omelette!") + M.reagents.add_reagent(forkload.id, 1) + icon_state = "fork" + forkload = null + + else if(user.zone_selected == "eyes") + if(user.disabilities & CLUMSY && prob(50)) + M = user + return eyestab(M,user) + else + return ..() + + +/obj/item/weapon/kitchen/knife + name = "kitchen knife" + icon_state = "knife" + desc = "A general purpose Chef's Knife made by SpaceCook Incorporated. Guaranteed to stay sharp for years to come." + flags = CONDUCT + force = 10 + w_class = 2 + throwforce = 10 + hitsound = 'sound/weapons/bladeslice.ogg' + throw_speed = 3 + throw_range = 6 + materials = list(MAT_METAL=12000) + attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") + sharpness = IS_SHARP_ACCURATE + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 50) + +/obj/item/weapon/kitchen/knife/attack(mob/living/carbon/M, mob/living/carbon/user) + if(user.zone_selected == "eyes") + if(user.disabilities & CLUMSY && prob(50)) + M = user + return eyestab(M,user) + else + return ..() + +/obj/item/weapon/kitchen/knife/suicide_act(mob/user) + user.visible_message(pick("[user] is slitting [user.p_their()] wrists with the [src.name]! It looks like [user.p_theyre()] trying to commit suicide.", \ + "[user] is slitting [user.p_their()] throat with the [src.name]! It looks like [user.p_theyre()] trying to commit suicide.", \ + "[user] is slitting [user.p_their()] stomach open with the [src.name]! It looks like [user.p_theyre()] trying to commit seppuku.")) + return (BRUTELOSS) + +/obj/item/weapon/kitchen/knife/ritual + name = "ritual knife" + desc = "The unearthly energies that once powered this blade are now dormant." + icon = 'icons/obj/wizard.dmi' + icon_state = "render" + w_class = 3 + +/obj/item/weapon/kitchen/knife/butcher + name = "butcher's cleaver" + icon_state = "butch" + desc = "A huge thing used for chopping and chopping up meat. This includes clowns and clown by-products." + flags = CONDUCT + force = 15 + throwforce = 10 + materials = list(MAT_METAL=18000) + attack_verb = list("cleaved", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") + w_class = 3 + +/obj/item/weapon/kitchen/knife/combat + name = "combat knife" + icon_state = "buckknife" + item_state = "knife" + desc = "A military combat utility survival knife." + force = 20 + throwforce = 20 + origin_tech = "materials=3;combat=4" + attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "cut") + + +/obj/item/weapon/kitchen/knife/combat/survival + name = "survival knife" + icon_state = "survivalknife" + desc = "A hunting grade survival knife." + force = 15 + throwforce = 15 + +/obj/item/weapon/kitchen/knife/combat/bone + name = "bone dagger" + item_state = "bone_dagger" + icon_state = "bone_dagger" + desc = "A sharpened bone. The bare mimimum in survival." + force = 15 + throwforce = 15 + materials = list() + +/obj/item/weapon/kitchen/knife/combat/cyborg + name = "cyborg knife" + icon = 'icons/obj/items_cyborg.dmi' + icon_state = "knife" + desc = "A cyborg-mounted plasteel knife. Extremely sharp and durable." + origin_tech = null + +/obj/item/weapon/kitchen/knife/carrotshiv + name = "carrot shiv" + icon_state = "carrotshiv" + item_state = "carrotshiv" + desc = "Unlike other carrots, you should probably keep this far away from your eyes." + force = 8 + throwforce = 12//fuck git + materials = list() + origin_tech = "biotech=3;combat=2" + attack_verb = list("shanked", "shivved") + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) + +/obj/item/weapon/kitchen/rollingpin + name = "rolling pin" + desc = "Used to knock out the Bartender." + icon_state = "rolling_pin" + force = 8 + throwforce = 5 + throw_speed = 3 + throw_range = 7 + w_class = 3 + attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "whacked") + +/* Trays moved to /obj/item/weapon/storage/bag */ diff --git a/code/game/objects/items/weapons/manuals.dm b/code/game/objects/items/weapons/manuals.dm new file mode 100644 index 0000000..59aedae --- /dev/null +++ b/code/game/objects/items/weapons/manuals.dm @@ -0,0 +1,958 @@ +/*********************MANUALS (BOOKS)***********************/ + +//Oh god what the fuck I am not good at computer +/obj/item/weapon/book/manual + icon = 'icons/obj/library.dmi' + due_date = 0 // Game time in 1/10th seconds + unique = 1 // 0 - Normal book, 1 - Should not be treated as normal book, unable to be copied, unable to be modified + +/obj/item/weapon/book/manual/engineering_particle_accelerator + name = "Particle Accelerator User's Guide" + icon_state ="bookParticleAccelerator" + author = "Engineering Encyclopedia" // Who wrote the thing, can be changed by pen or PC. It is not automatically assigned + title = "Particle Accelerator User's Guide" + dat = {" + + + + + +

          Experienced user's guide

          + +

          Setting up

          + +
            +
          1. Wrench all pieces to the floor
          2. +
          3. Add wires to all the pieces
          4. +
          5. Close all the panels with your screwdriver
          6. +
          + +

          Use

          + +
            +
          1. Open the control panel
          2. +
          3. Set the speed to 2
          4. +
          5. Start firing at the singularity generator
          6. +
          7. When the singularity reaches a large enough size so it starts moving on it's own set the speed down to 0, but don't shut it off
          8. +
          9. Remember to wear a radiation suit when working with this machine... we did tell you that at the start, right?
          10. +
          + + + "} + + +/obj/item/weapon/book/manual/engineering_singularity_safety + name = "Singularity Safety in Special Circumstances" + icon_state ="bookEngineeringSingularitySafety" + author = "Engineering Encyclopedia" // Who wrote the thing, can be changed by pen or PC. It is not automatically assigned + title = "Singularity Safety in Special Circumstances" +//big pile of shit below. + + dat = {" + + + + +

          Singularity Safety in Special Circumstances

          + +

          Power outage

          + + A power problem has made the entire station lose power? Could be station-wide wiring problems or syndicate power sinks. In any case follow these steps: +

          + Step one: PANIC!
          + Step two: Get your ass over to engineering! QUICKLY!!!
          + Step three: Make sure the SMES is still powering the emitters, if not, setup the generator in secure storage and disconnect the emitters from the SMES.
          + Step four: Next, head over to the APC and swipe it with your ID card - if it doesn't unlock, continue with step 15.
          + Step five: Open the console and disengage the cover lock.
          + Step six: Pry open the APC with a Crowbar.
          + Step seven: Take out the empty power cell.
          + Step eight: Put in the new, full power cell - if you don't have one, continue with step 15.
          + Step nine: Quickly put on a Radiation suit.
          + Step ten: Check if the singularity field generators withstood the down-time - if they didn't, continue with step 15.
          + Step eleven: Since disaster was averted you now have to ensure it doesn't repeat. If it was a powersink which caused it and if the engineering apc is wired to the same powernet, which the powersink is on, you have to remove the piece of wire which links the apc to the powernet. If it wasn't a powersink which caused it, then skip to step 14.
          + Step twelve: Grab your crowbar and pry away the tile closest to the APC.
          + Step thirteen: Use the wirecutters to cut the wire which is conecting the grid to the terminal.
          + Step fourteen: Go to the bar and tell the guys how you saved them all. Stop reading this guide here.
          + Step fifteen: GET THE FUCK OUT OF THERE!!!
          +

          + +

          Shields get damaged

          + + Step one: GET THE FUCK OUT OF THERE!!! FORGET THE WOMEN AND CHILDREN, SAVE YOURSELF!!!
          + + + "} + +/obj/item/weapon/book/manual/hydroponics_pod_people + name = "The Human Harvest - From seed to market" + icon_state ="bookHydroponicsPodPeople" + author = "Farmer John" + title = "The Human Harvest - From seed to market" + dat = {" + + + + +

          Growing Humans

          + + Why would you want to grow humans? Well I'm expecting most readers to be in the slave trade, but a few might actually + want to revive fallen comrades. Growing pod people is easy, but prone to disaster. +

          +

            +
          1. Find a dead person who is in need of cloning.
          2. +
          3. Take a blood sample with a syringe.
          4. +
          5. Inject a seed pack with the blood sample.
          6. +
          7. Plant the seeds.
          8. +
          9. Tend to the plants water and nutrition levels until it is time to harvest the cloned human.
          10. +
          +

          + It really is that easy! Good luck! + + + + "} + +/obj/item/weapon/book/manual/medical_cloning + name = "Cloning techniques of the 26th century" + icon_state ="bookCloning" + author = "Medical Journal, volume 3" // Who wrote the thing, can be changed by pen or PC. It is not automatically assigned + title = "Cloning techniques of the 26th century" +//big pile of shit below. + + dat = {" + + + + + +

          How to Clone People

          + So there’s 50 dead people lying on the floor, chairs are spinning like no tomorrow and you haven’t the foggiest idea of what to do? Not to worry! This guide is intended to teach you how to clone people and how to do it right, in a simple step-by-step process! If at any point of the guide you have a mental meltdown, genetics probably isn’t for you and you should get a job-change as soon as possible before you’re sued for malpractice. + +
            +
          1. Acquire body
          2. +
          3. Strip body
          4. +
          5. Put body in cloning machine
          6. +
          7. Scan body
          8. +
          9. Clone body
          10. +
          11. Get clean Structurel Enzymes for the body
          12. +
          13. Put body in morgue
          14. +
          15. Await cloned body
          16. +
          17. Use the clean SW injector
          18. +
          19. Give person clothes back
          20. +
          21. Send person on their way
          22. +
          + +

          Step 1: Acquire body

          + This is pretty much vital for the process because without a body, you cannot clone it. Usually, bodies will be brought to you, so you do not need to worry so much about this step. If you already have a body, great! Move on to the next step. + +

          Step 2: Strip body

          + The cloning machine does not like abiotic items. What this means is you can’t clone anyone if they’re wearing clothes, so take all of it off. If it’s just one person, it’s courteous to put their possessions in the closet. If you have about seven people awaiting cloning, just leave the piles where they are, but don’t mix them around and for God’s sake don’t let the Clown in to steal them. + +

          Step 3: Put body in cloning machine

          + Grab the body and then put it inside the DNA modifier. If you cannot do this, then you messed up at Step 2. Go back and check you took EVERYTHING off - a commonly missed item is their headset. + +

          Step 4: Scan body

          + Go onto the computer and scan the body by pressing ‘Scan - ’. If you’re successful, they will be added to the records (note that this can be done at any time, even with living people, so that they can be cloned without a body in the event that they are lying dead on port solars and didn‘t turn on their suit sensors)! If not, and it says “Error: Mental interface failure.”, then they have left their bodily confines and are one with the spirits. If this happens, just shout at them to get back in their body, click ‘Refresh‘ and try scanning them again. If there’s no success, threaten them with gibbing. Still no success? Skip over to Step 7 and don‘t continue after it, as you have an unresponsive body and it cannot be cloned. If you got “Error: Unable to locate valid genetic data.“, you are trying to clone a monkey - start over. + +

          Step 5: Clone body

          + Now that the body has a record, click ’View Records’, click the subject’s name, and then click ‘Clone’ to start the cloning process. Congratulations! You’re halfway there. Remember not to ‘Eject’ the cloning pod as this will kill the developing clone and you’ll have to start the process again. + +

          Step 6: Get clean SEs for body

          + Cloning is a finicky and unreliable process. Whilst it will most certainly bring someone back from the dead, they can have any number of nasty disabilities given to them during the cloning process! For this reason, you need to prepare a clean, defect-free Structural Enzyme (SE) injection for when they’re done. If you’re a competent Geneticist, you will already have one ready on your working computer. If, for any reason, you do not, then eject the body from the DNA modifier (NOT THE CLONING POD) and take it next door to the Genetics research room. Put the body in one of those DNA modifiers and then go onto the console. Go into View/Edit/Transfer Buffer, find an open slot and click “SE“ to save it. Then click ‘Injector’ to get the SEs in syringe form. Put this in your pocket or something for when the body is done. + +

          Step 7: Put body in morgue

          + Now that the cloning process has been initiated and you have some clean Structural Enzymes, you no longer need the body! Drag it to the morgue and tell the Chef over the radio that they have some fresh meat waiting for them in there. To put a body in a morgue bed, simply open the tray, grab the body, put it on the open tray, then close the tray again. Use one of the nearby pens to label the bed “CHEF MEAT” in order to avoid confusion. + +

          Step 8: Await cloned body

          + Now go back to the lab and wait for your patient to be cloned. It won’t be long now, I promise. + +

          Step 9: Use the clean SE injector on person

          + Has your body been cloned yet? Great! As soon as the guy pops out, grab your injector and jab it in them. Once you’ve injected them, they now have clean Structural Enzymes and their defects, if any, will disappear in a short while. + +

          Step 10: Give person clothes back

          + Obviously the person will be naked after they have been cloned. Provided you weren’t an irresponsible little shit, you should have protected their possessions from thieves and should be able to give them back to the patient. No matter how cruel you are, it’s simply against protocol to force your patients to walk outside naked. + +

          Step 11: Send person on their way

          + Give the patient one last check-over - make sure they don’t still have any defects and that they have all their possessions. Ask them how they died, if they know, so that you can report any foul play over the radio. Once you’re done, your patient is ready to go back to work! Chances are they do not have Medbay access, so you should let them out of Genetics and the Medbay main entrance. + +

          If you’ve gotten this far, congratulations! You have mastered the art of cloning. Now, the real problem is how to resurrect yourself after that traitor had his way with you for cloning his target. + + + + + + "} + + +/obj/item/weapon/book/manual/ripley_build_and_repair + name = "APLU \"Ripley\" Construction and Operation Manual" + icon_state ="book" + author = "Weyland-Yutani Corp" // Who wrote the thing, can be changed by pen or PC. It is not automatically assigned + title = "APLU \"Ripley\" Construction and Operation Manual" +//big pile of shit below. + + dat = {" + + + + +

          + Weyland-Yutani - Building Better Worlds +

          Autonomous Power Loader Unit \"Ripley\"

          +
          +

          Specifications:

          +
            +
          1. Cyborg Related Equipment
          2. +
          3. Cyborg Modules
          4. +
          5. Cyborg Construction
          6. +
          7. Cyborg Deconstruction
          8. +
          9. Cyborg Maintenance
          10. +
          11. Cyborg Repairs
          12. +
          13. In Case of Emergency
          14. +
          + + +

          Cyborg Related Equipment

          + +

          Exosuit Fabricator

          + The Exosuit Fabricator is the most important piece of equipment related to cyborgs. It allows the construction of the core cyborg parts. Without these machines, cyborgs can not be built. It seems that they may also benefit from advanced research techniques. + +

          Cyborg Recharging Station

          + This useful piece of equipment will suck power out of the power systems to charge a cyborg's power cell back up to full charge. + +

          Robotics Control Console

          + This useful piece of equipment can be used to immobolize or destroy a cyborg. A word of warning: Cyborgs are expensive pieces of equipment, do not destroy them without good reason, or Nanotrasen may see to it that it never happens again. + + +

          Cyborg Modules

          + When a cyborg is created it picks out of an array of modules to designate its purpose. There are 6 different cyborg modules. + +

          Standard Cyborg

          + The standard cyborg module is a multi-purpose cyborg. It is equipped with various modules, allowing it to do basic tasks.
          + +

          Engineering Cyborg

          + The Engineering cyborg module comes equipped with various engineering-related tools to help with engineering-related tasks.
          + +

          Mining Cyborg

          + The Mining Cyborg module comes equipped with the latest in mining equipment. They are efficient at mining due to no need for oxygen, but their power cells limit their time in the mines. + +

          Security Cyborg

          + The Security Cyborg module is equipped with effective security measures used to apprehend and arrest criminals without harming them a bit. + +

          Janitor Cyborg

          + The Janitor Cyborg module is equipped with various cleaning-facilitating devices. + +

          Service Cyborg

          + The service cyborg module comes ready to serve your human needs. It includes various entertainment and refreshment devices. Occasionally some service cyborgs may have been referred to as "Bros" + +

          Cyborg Construction

          + Cyborg construction is a rather easy process, requiring a decent amount of metal and a few other supplies.
          The required materials to make a cyborg are: +
            +
          • Metal
          • +
          • Two Flashes
          • +
          • One Power Cell (Preferrably rated to 15000w)
          • +
          • Some electrical wires
          • +
          • One Human Brain
          • +
          • One Man-Machine Interface
          • +
          + Once you have acquired the materials, you can start on construction of your cyborg.
          To construct a cyborg, follow the steps below: +
            +
          1. Start the Exosuit Fabricators constructing all of the cyborg parts
          2. +
          3. While the parts are being constructed, take your human brain, and place it inside the Man-Machine Interface
          4. +
          5. Once you have a Robot Head, place your two flashes inside the eye sockets
          6. +
          7. Once you have your Robot Chest, wire the Robot chest, then insert the power cell
          8. +
          9. Attach all of the Robot parts to the Robot frame
          10. +
          11. Insert the Man-Machine Interface (With the Brain inside) Into the Robot Body
          12. +
          13. Congratulations! You have a new cyborg!
          14. +
          + +

          Cyborg Deconstruction

          + If you want to deconstruct a cyborg, say to remove its MMI without blowing the Cyborg to pieces, they come apart very quickly, and very safely, in a few simple steps. +
            +
          • Crowbar
          • +
          • Wrench
          • + Optional: +
          • Screwdriver
          • +
          • Wirecutters
          • +
          +
            +
          1. Begin by unlocking the Cyborg's access panel using your ID
          2. +
          3. Use your crowbar to open the Cyborg's access panel
          4. +
          5. Using your bare hands, remove the power cell from the Cyborg
          6. +
          7. Lockdown the Cyborg to disengage safety protocols
          8. +
              + Option 1: Robotics console +
            1. Use the Robotics console in the RD's office
            2. +
            3. Find the entry for your Cyborg
            4. +
            5. Press the Lockdown button on the Robotics console
            6. +
            +
              + Option 2: Lockdown wire +
            1. Use your screwdriver to expose the Cyborg's wiring
            2. +
            3. Use your wirecutters to start cutting all of the wires until the lockdown light turns off, cutting all of the wires irregardless of the lockdown light works as well
            4. +
            +
          9. Use your wrench to unfasten the Cyborg's bolts, the Cyborg will then fall apart onto the floor, the MMI will be there as well
          10. +
          + +

          Cyborg Maintenance

          + Occasionally Cyborgs may require maintenance of a couple types, this could include replacing a power cell with a charged one, or possibly maintaining the cyborg's internal wiring. + +

          Replacing a Power Cell

          + Replacing a Power cell is a common type of maintenance for cyborgs. It usually involves replacing the cell with a fully charged one, or upgrading the cell with a larger capacity cell.
          The steps to replace a cell are follows: +
            +
          1. Unlock the Cyborg's Interface by swiping your ID on it
          2. +
          3. Open the Cyborg's outer panel using a crowbar
          4. +
          5. Remove the old power cell
          6. +
          7. Insert the new power cell
          8. +
          9. Close the Cyborg's outer panel using a crowbar
          10. +
          11. Lock the Cyborg's Interface by swiping your ID on it, this will prevent non-qualified personnel from attempting to remove the power cell
          12. +
          + +

          Exposing the Internal Wiring

          + Exposing the internal wiring of a cyborg is fairly easy to do, and is mainly used for cyborg repairs.
          You can easily expose the internal wiring by following the steps below: +
            +
          1. Follow Steps 1 - 3 of "Replacing a Cyborg's Power Cell"
          2. +
          3. Open the cyborg's internal wiring panel by using a screwdriver to unsecure the panel
          4. +
          + To re-seal the cyborg's internal wiring: +
            +
          1. Use a screwdriver to secure the cyborg's internal panel
          2. +
          3. Follow steps 4 - 6 of "Replacing a Cyborg's Power Cell" to close up the cyborg
          4. +
          + +

          Cyborg Repairs

          + Occasionally a Cyborg may become damaged. This could be in the form of impact damage from a heavy or fast-travelling object, or it could be heat damage from high temperatures, or even lasers or Electromagnetic Pulses (EMPs). + +

          Dents

          + If a cyborg becomes damaged due to impact from heavy or fast-moving objects, it will become dented. Sure, a dent may not seem like much, but it can compromise the structural integrity of the cyborg, possibly causing a critical failure. + Dents in a cyborg's frame are rather easy to repair, all you need is to apply a welding tool to the dented area, and the high-tech cyborg frame will repair the dent under the heat of the welder. + +

          Excessive Heat Damage

          + If a cyborg becomes damaged due to excessive heat, it is likely that the internal wires will have been damaged. You must replace those wires to ensure that the cyborg remains functioning properly.
          To replace the internal wiring follow the steps below: +
            +
          1. Unlock the Cyborg's Interface by swiping your ID
          2. +
          3. Open the Cyborg's External Panel using a crowbar
          4. +
          5. Remove the Cyborg's Power Cell
          6. +
          7. Using a screwdriver, expose the internal wiring or the Cyborg
          8. +
          9. Replace the damaged wires inside the cyborg
          10. +
          11. Secure the internal wiring cover using a screwdriver
          12. +
          13. Insert the Cyborg's Power Cell
          14. +
          15. Close the Cyborg's External Panel using a crowbar
          16. +
          17. Lock the Cyborg's Interface by swiping your ID
          18. +
          + These repair tasks may seem difficult, but are essential to keep your cyborgs running at peak efficiency. + +

          In Case of Emergency

          + In case of emergency, there are a few steps you can take. + +

          "Rogue" Cyborgs

          + If the cyborgs seem to become "rogue", they may have non-standard laws. In this case, use extreme caution. + To repair the situation, follow these steps: +
            +
          1. Locate the nearest robotics console
          2. +
          3. Determine which cyborgs are "Rogue"
          4. +
          5. Press the lockdown button to immobolize the cyborg
          6. +
          7. Locate the cyborg
          8. +
          9. Expose the cyborg's internal wiring
          10. +
          11. Check to make sure the LawSync and AI Sync lights are lit
          12. +
          13. If they are not lit, pulse the LawSync wire using a multitool to enable the cyborg's Law Sync
          14. +
          15. Proceed to a cyborg upload console. Nanotrasen usually places these in the same location as AI uplaod consoles.
          16. +
          17. Use a "Reset" upload moduleto reset the cyborg's laws
          18. +
          19. Proceed to a Robotics Control console
          20. +
          21. Remove the lockdown on the cyborg
          22. +
          + +

          As a last resort

          + If all else fails in a case of cyborg-related emergency. There may be only one option. Using a Robotics Control console, you may have to remotely detonate the cyborg. +

          WARNING:

          Do not detonate a borg without an explicit reason for doing so. Cyborgs are expensive pieces of Nanotrasen equipment, and you may be punished for detonating them without reason. + + + + "} + + + +/obj/item/weapon/book/manual/chef_recipes + name = "Chef Recipes" + icon_state = "cooked_book" + author = "Lord Frenrir Cageth" + title = "Chef Recipes" + dat = {" + + + + + +

          Food for Dummies

          + Here is a guide on basic food recipes and also how to not poison your customers accidentally. + + +

          Basic ingredients preparation:

          + + Dough: 10u water + 15u flour for simple dough.
          + 15u egg yolk + 15u flour + 5u sugar for cake batter.
          + Doughs can be transformed by using a knife and rolling pin.
          + All doughs can be microwaved.
          + Bowl: Add water to it for soup preparation.
          + Meat: Microwave it, process it, slice it into microwavable cutlets with your knife, or use it raw.
          + Cheese: Add 5u universal enzyme (catalyst) to milk and soy milk to prepare cheese (sliceable) and tofu.
          + Rice: Mix 10u rice with 10u water in a bowl then microwave it. + +

          Custom food:

          + Add ingredients to a base item to prepare a custom meal.
          + The bases are:
          + - bun (burger)
          + - breadslices(sandwich)
          + - plain bread
          + - plain pie
          + - vanilla cake
          + - empty bowl (salad)
          + - bowl with 10u water (soup)
          + - boiled spaghetti
          + - pizza bread
          + - metal rod (kebab) + +

          Table Craft:

          + Put ingredients on table, then click and drag the table onto yourself to see what recipes you can prepare. + +

          Microwave:

          + Use it to cook or boil food ingredients (meats, doughs, egg, spaghetti, donkpocket, etc...). + It can cook multiple items at once. + +

          Processor:

          + Use it to process certain ingredients (meat into faggot, doughslice into spaghetti, potato into fries,etc...) + +

          Gibber:

          + Stuff an animal in it to grind it into meat. + +

          Meat spike:

          + Stick an animal on it then begin collecting its meat. + + +

          Example recipes:

          + Vanilla Cake: Microwave cake batter.
          + Burger: 1 bun + 1 meat steak
          + Bread: Microwave dough.
          + Waffles: 2 pastry base
          + Popcorn: Microwave corn.
          + Meat Steak: Microwave meat.
          + Meat Pie: 1 plain pie + 1u black pepper + 1u salt + 2 meat cutlets
          + Boiled Spagetti: Microwave spaghetti.
          + Donuts: 1u sugar + 1 pastry base
          + Fries: Process potato. + +

          Sharing your food:

          + You can put your meals on your kitchen counter or load them in the snack vending machines. + + + "} + + +/obj/item/weapon/book/manual/barman_recipes + name = "Barman Recipes" + icon_state = "barbook" + author = "Sir John Rose" + title = "Barman Recipes" + dat = {" + + + + + +

          Drinks for dummies

          + Heres a guide for some basic drinks. + +

          Manly Dorf:

          + Mix ale and beer into a glass. + +

          Grog:

          + Mix rum and water into a glass. + +

          Black Russian:

          + Mix vodka and kahlua into a glass. + +

          Irish Cream:

          + Mix cream and whiskey into a glass. + +

          Screwdriver:

          + Mix vodka and orange juice into a glass. + +

          Cafe Latte:

          + Mix milk and coffee into a glass. + +

          Mead:

          + Mix Enzyme, water and sugar into a glass. + +

          Gin Tonic:

          + Mix gin and tonic into a glass. + +

          Classic Martini:

          + Mix vermouth and gin into a glass. + + + + + "} + + +/obj/item/weapon/book/manual/detective + name = "The Film Noir: Proper Procedures for Investigations" + icon_state ="bookDetective" + author = "Nanotrasen" + title = "The Film Noir: Proper Procedures for Investigations" + dat = {" + + + + +

          Detective Work

          + + Between your bouts of self-narration, and drinking whiskey on the rocks, you might get a case or two to solve.
          + To have the best chance to solve your case, follow these directions: +

          +

            +
          1. Go to the crime scene.
          2. +
          3. Take your scanner and scan EVERYTHING (Yes, the doors, the tables, even the dog.)
          4. +
          5. Once you are reasonably certain you have every scrap of evidence you can use, find all possible entry points and scan them, too.
          6. +
          7. Return to your office.
          8. +
          9. Using your forensic scanning computer, scan your Scanner to upload all of your evidence into the database.
          10. +
          11. Browse through the resulting dossiers, looking for the one that either has the most complete set of prints, or the most suspicious items handled.
          12. +
          13. If you have 80% or more of the print (The print is displayed) go to step 10, otherwise continue to step 8.
          14. +
          15. Look for clues from the suit fibres you found on your perp, and go about looking for more evidence with this new information, scanning as you go.
          16. +
          17. Try to get a fingerprint card of your perp, as if used in the computer, the prints will be completed on their dossier.
          18. +
          19. Assuming you have enough of a print to see it, grab the biggest complete piece of the print and search the security records for it.
          20. +
          21. Since you now have both your dossier and the name of the person, print both out as evidence, and get security to nab your baddie.
          22. +
          23. Give yourself a pat on the back and a bottle of the ships finest vodka, you did it!
          24. +
          +

          + It really is that easy! Good luck! + + + "} + +/obj/item/weapon/book/manual/nuclear + name = "Fission Mailed: Nuclear Sabotage 101" + icon_state ="bookNuclear" + author = "Syndicate" + title = "Fission Mailed: Nuclear Sabotage 101" + dat = {" + Nuclear Explosives 101:
          + Hello and thank you for choosing the Syndicate for your nuclear information needs.
          + Today's crash course will deal with the operation of a Fusion Class Nanotrasen made Nuclear Device.
          + First and foremost, DO NOT TOUCH ANYTHING UNTIL THE BOMB IS IN PLACE.
          + Pressing any button on the compacted bomb will cause it to extend and bolt itself into place.
          + If this is done to unbolt it one must completely log in which at this time may not be possible.
          + To make the nuclear device functional:
          +

        • Place the nuclear device in the designated detonation zone.
        • +
        • Extend and anchor the nuclear device from its interface.
        • +
        • Insert the nuclear authorisation disk into slot.
        • +
        • Type numeric authorisation code into the keypad. This should have been provided. Note: If you make a mistake press R to reset the device. +
        • Press the E button to log onto the device.
        • + You now have activated the device. To deactivate the buttons at anytime for example when you've already prepped the bomb for detonation remove the auth disk OR press the R on the keypad.
          + Now the bomb CAN ONLY be detonated using the timer. Manual detonation is not an option.
          + Note: Nanotrasen is a pain in the neck.
          + Toggle off the SAFETY.
          + Note: You wouldn't believe how many Syndicate Operatives with doctorates have forgotten this step.
          + So use the - - and + + to set a det time between 5 seconds and 10 minutes.
          + Then press the timer toggle button to start the countdown.
          + Now remove the auth. disk so that the buttons deactivate.
          + Note: THE BOMB IS STILL SET AND WILL DETONATE
          + Now before you remove the disk if you need to move the bomb you can:
          + Toggle off the anchor, move it, and re-anchor.

          + Good luck. Remember the order:
          + Disk, Code, Safety, Timer, Disk, RUN!
          + Intelligence Analysts believe that normal Nanotrasen procedure is for the Captain to secure the nuclear authorisation disk.
          + Good luck! + "} + +// Wiki books that are linked to the configured wiki link. + +// A book that links to the wiki +/obj/item/weapon/book/manual/wiki + var/page_link = "" + window_size = "970x710" + +/obj/item/weapon/book/manual/wiki/attack_self() + if(!dat) + initialize_wikibook() + ..() + +/obj/item/weapon/book/manual/wiki/proc/initialize_wikibook() + if(config.wikiurl) + dat = {" + + + + + + +

          You start skimming through the manual...

          + + + + + + "} + +/obj/item/weapon/book/manual/wiki/chemistry + name = "Chemistry Textbook" + icon_state ="chemistrybook" + author = "Nanotrasen" + title = "Chemistry Textbook" + page_link = "Guide_to_chemistry" + +/obj/item/weapon/book/manual/wiki/engineering_construction + name = "Station Repairs and Construction" + icon_state ="bookEngineering" + author = "Engineering Encyclopedia" + title = "Station Repairs and Construction" + page_link = "Guide_to_construction" + +/obj/item/weapon/book/manual/wiki/engineering_guide + name = "Engineering Textbook" + icon_state ="bookEngineering2" + author = "Engineering Encyclopedia" + title = "Engineering Textbook" + page_link = "Guide_to_engineering" + +/obj/item/weapon/book/manual/wiki/security_space_law + name = "Space Law" + desc = "A set of Nanotrasen guidelines for keeping law and order on their space stations." + icon_state = "bookSpaceLaw" + author = "Nanotrasen" + title = "Space Law" + page_link = "Space_Law" + +/obj/item/weapon/book/manual/wiki/infections + name = "Infections - Making your own pandemic!" + icon_state = "bookInfections" + author = "Infections Encyclopedia" + title = "Infections - Making your own pandemic!" + page_link = "Infections" + +/obj/item/weapon/book/manual/wiki/telescience + name = "Teleportation Science - Bluespace for dummies!" + icon_state = "book7" + author = "University of Bluespace" + title = "Teleportation Science - Bluespace for dummies!" + page_link = "Guide_to_telescience" + +/obj/item/weapon/book/manual/wiki/engineering_hacking + name = "Hacking" + icon_state ="bookHacking" + author = "Engineering Encyclopedia" + title = "Hacking" + page_link = "Hacking" diff --git a/code/game/objects/items/weapons/melee/energy.dm b/code/game/objects/items/weapons/melee/energy.dm new file mode 100644 index 0000000..fdf6b63 --- /dev/null +++ b/code/game/objects/items/weapons/melee/energy.dm @@ -0,0 +1,253 @@ +/obj/item/weapon/melee/energy + var/active = 0 + var/force_on = 30 //force when active + var/throwforce_on = 20 + var/icon_state_on = "axe1" + var/list/attack_verb_on = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") + w_class = 2 + var/w_class_on = 4 + heat = 3500 + obj_integrity = 200 + max_integrity = 200 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 30) + resistance_flags = FIRE_PROOF + +/obj/item/weapon/melee/energy/suicide_act(mob/user) + user.visible_message("[user] is [pick("slitting [user.p_their()] stomach open with", "falling on")] [src]! It looks like [user.p_theyre()] trying to commit seppuku!") + return (BRUTELOSS|FIRELOSS) + +/obj/item/weapon/melee/energy/add_blood(list/blood_dna) + return 0 + +/obj/item/weapon/melee/energy/is_sharp() + return active * sharpness + +/obj/item/weapon/melee/energy/axe + name = "energy axe" + desc = "An energised battle axe." + icon_state = "axe0" + force = 40 + force_on = 150 + throwforce = 25 + throwforce_on = 30 + hitsound = 'sound/weapons/bladeslice.ogg' + throw_speed = 3 + throw_range = 5 + w_class = 3 + w_class_on = 5 + flags = CONDUCT + armour_penetration = 100 + origin_tech = "combat=4;magnets=3" + attack_verb = list("attacked", "chopped", "cleaved", "torn", "cut") + attack_verb_on = list() + +/obj/item/weapon/melee/energy/axe/suicide_act(mob/user) + user.visible_message("[user] swings [src] towards [user.p_their()] head! It looks like [user.p_theyre()] trying to commit suicide!") + return (BRUTELOSS|FIRELOSS) + +/obj/item/weapon/melee/energy/sword + name = "energy sword" + desc = "May the force be within you." + icon_state = "sword0" + force = 3 + throwforce = 5 + hitsound = "swing_hit" //it starts deactivated + throw_speed = 3 + throw_range = 5 + sharpness = IS_SHARP + embed_chance = 75 + embedded_impact_pain_multiplier = 10 + armour_penetration = 35 + origin_tech = "combat=3;magnets=4;syndicate=4" + block_chance = 50 + var/hacked = 0 + +/obj/item/weapon/melee/energy/sword/New() + if(item_color == null) + item_color = pick("red", "blue", "green", "purple") + +/obj/item/weapon/melee/energy/sword/Destroy() + STOP_PROCESSING(SSobj, src) + . = ..() + +/obj/item/weapon/melee/energy/sword/process() + if(active) + open_flame() + else + STOP_PROCESSING(SSobj, src) + +/obj/item/weapon/melee/energy/sword/hit_reaction(mob/living/carbon/human/owner, attack_text, final_block_chance) + if(active) + return ..() + return 0 + +/obj/item/weapon/melee/energy/attack_self(mob/living/carbon/user) + if(user.disabilities & CLUMSY && prob(50)) + user << "You accidentally cut yourself with [src], like a doofus!" + user.take_bodypart_damage(5,5) + active = !active + if (active) + force = force_on + throwforce = throwforce_on + hitsound = 'sound/weapons/blade1.ogg' + throw_speed = 4 + if(attack_verb_on.len) + attack_verb = attack_verb_on + if(!item_color) + icon_state = icon_state_on + else + icon_state = "sword[item_color]" + w_class = w_class_on + playsound(user, 'sound/weapons/saberon.ogg', 35, 1) //changed it from 50% volume to 35% because deafness + user << "[src] is now active." + START_PROCESSING(SSobj, src) + else + force = initial(force) + throwforce = initial(throwforce) + hitsound = initial(hitsound) + throw_speed = initial(throw_speed) + if(attack_verb_on.len) + attack_verb = list() + icon_state = initial(icon_state) + w_class = initial(w_class) + playsound(user, 'sound/weapons/saberoff.ogg', 35, 1) //changed it from 50% volume to 35% because deafness + user << "[src] can now be concealed." + STOP_PROCESSING(SSobj, src) + add_fingerprint(user) + +/obj/item/weapon/melee/energy/is_hot() + return active * heat + +/obj/item/weapon/melee/energy/ignition_effect(atom/A, mob/user) + if(!active) + return "" + + var/in_mouth = "" + if(iscarbon(user)) + var/mob/living/carbon/C = user + if(C.wear_mask == src) + in_mouth = ", barely missing their nose" + . = "[user] swings their \ + [src][in_mouth]. They light [A] in the process." + playsound(loc, hitsound, get_clamped_volume(), 1, -1) + add_fingerprint(user) + +/obj/item/weapon/melee/energy/sword/cyborg + var/hitcost = 50 + +/obj/item/weapon/melee/energy/sword/cyborg/attack(mob/M, var/mob/living/silicon/robot/R) + if(R.cell) + var/obj/item/weapon/stock_parts/cell/C = R.cell + if(active && !(C.use(hitcost))) + attack_self(R) + R << "It's out of charge!" + return + ..() + return + +/obj/item/weapon/melee/energy/sword/cyborg/saw //Used by medical Syndicate cyborgs + name = "energy saw" + desc = "For heavy duty cutting. It has a carbon-fiber blade in addition to a toggleable hard-light edge to dramatically increase sharpness." + icon_state = "esaw" + force_on = 30 + force = 18 //About as much as a spear + hitsound = 'sound/weapons/circsawhit.ogg' + icon = 'icons/obj/surgery.dmi' + icon_state = "esaw_0" + icon_state_on = "esaw_1" + hitcost = 75 //Costs more than a standard cyborg esword + item_color = null + w_class = 3 + sharpness = IS_SHARP + +/obj/item/weapon/melee/energy/sword/cyborg/saw/New() + ..() + icon_state = "esaw_0" + item_color = null + +/obj/item/weapon/melee/energy/sword/cyborg/saw/hit_reaction() + return 0 + +/obj/item/weapon/melee/energy/sword/saber + +/obj/item/weapon/melee/energy/sword/saber/blue + item_color = "blue" + +/obj/item/weapon/melee/energy/sword/saber/purple + item_color = "purple" + +/obj/item/weapon/melee/energy/sword/saber/green + item_color = "green" + +/obj/item/weapon/melee/energy/sword/saber/red + item_color = "red" + +/obj/item/weapon/melee/energy/sword/saber/attackby(obj/item/weapon/W, mob/living/user, params) + if(istype(W, /obj/item/weapon/melee/energy/sword/saber)) + user << "You attach the ends of the two \ + energy swords, making a single double-bladed weapon! \ + You're cool." + var/obj/item/weapon/melee/energy/sword/saber/other_esword = W + var/obj/item/weapon/twohanded/dualsaber/newSaber = new(user.loc) + if(hacked || other_esword.hacked) + newSaber.hacked = TRUE + newSaber.item_color = "rainbow" + user.unEquip(W) + user.unEquip(src) + qdel(W) + qdel(src) + user.put_in_hands(newSaber) + else if(istype(W, /obj/item/device/multitool)) + if(hacked == 0) + hacked = 1 + item_color = "rainbow" + user << "RNBW_ENGAGE" + + if(active) + icon_state = "swordrainbow" + user.update_inv_hands() + else + user << "It's already fabulous!" + else + return ..() + +/obj/item/weapon/melee/energy/sword/pirate + name = "energy cutlass" + desc = "Arrrr matey." + icon_state = "cutlass0" + icon_state_on = "cutlass1" + +/obj/item/weapon/melee/energy/sword/pirate/New() + return + +/obj/item/weapon/melee/energy/blade + name = "energy blade" + desc = "A concentrated beam of energy in the shape of a blade. Very stylish... and lethal." + icon_state = "blade" + force = 30 //Normal attacks deal esword damage + hitsound = 'sound/weapons/blade1.ogg' + active = 1 + throwforce = 1//Throwing or dropping the item deletes it. + throw_speed = 3 + throw_range = 1 + w_class = 4//So you can't hide it in your pocket or some such. + var/datum/effect_system/spark_spread/spark_system + sharpness = IS_SHARP + +//Most of the other special functions are handled in their own files. aka special snowflake code so kewl +/obj/item/weapon/melee/energy/blade/New() + spark_system = new /datum/effect_system/spark_spread() + spark_system.set_up(5, 0, src) + spark_system.attach(src) + +/obj/item/weapon/melee/energy/blade/dropped() + ..() + +/obj/item/weapon/melee/energy/blade/attack_self(mob/user) + return + +/obj/item/weapon/melee/energy/blade/hardlight + name = "hardlight blade" + desc = "An extremely sharp blade made out of hard light. Packs quite a punch." + icon_state = "lightblade" + item_state = "lightblade" \ No newline at end of file diff --git a/code/game/objects/items/weapons/melee/misc.dm b/code/game/objects/items/weapons/melee/misc.dm new file mode 100644 index 0000000..d771dc5 --- /dev/null +++ b/code/game/objects/items/weapons/melee/misc.dm @@ -0,0 +1,254 @@ +/obj/item/weapon/melee + needs_permit = 1 + + +/obj/item/weapon/melee/chainofcommand + name = "chain of command" + desc = "A tool used by great men to placate the frothing masses." + icon_state = "chain" + item_state = "chain" + flags = CONDUCT + slot_flags = SLOT_BELT + force = 10 + throwforce = 7 + w_class = 3 + origin_tech = "combat=5" + attack_verb = list("flogged", "whipped", "lashed", "disciplined") + hitsound = 'sound/weapons/chainhit.ogg' + materials = list(MAT_METAL = 1000) + +/obj/item/weapon/melee/chainofcommand/suicide_act(mob/user) + user.visible_message("[user] is strangling [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit suicide!") + return (OXYLOSS) + +/obj/item/weapon/melee/synthetic_arm_blade + name = "synthetic arm blade" + desc = "A grotesque blade that on closer inspection seems made of synthentic flesh, it still feels like it would hurt very badly as a weapon." + icon = 'icons/obj/weapons.dmi' + icon_state = "arm_blade" + item_state = "arm_blade" + origin_tech = "combat=5,biotech=5" + w_class = 5.0 + force = 15 + throwforce = 10 + sharpness = IS_SHARP + +/obj/item/weapon/melee/sabre + name = "officer's sabre" + desc = "An elegant weapon, its monomolecular edge is capable of cutting through flesh and bone with ease." + icon_state = "sabre" + item_state = "sabre" + flags = CONDUCT + unique_rename = 1 + force = 15 + throwforce = 10 + w_class = 4 + block_chance = 50 + armour_penetration = 75 + sharpness = IS_SHARP + origin_tech = "combat=5" + attack_verb = list("slashed", "cut") + hitsound = 'sound/weapons/rapierhit.ogg' + materials = list(MAT_METAL = 1000) + +/obj/item/weapon/melee/sabre/hit_reaction(mob/living/carbon/human/owner, attack_text, final_block_chance, damage, attack_type) + if(attack_type == PROJECTILE_ATTACK) + final_block_chance = 0 //Don't bring a sword to a gunfight + return ..() + +/obj/item/weapon/melee/classic_baton + name = "police baton" + desc = "A wooden truncheon for beating criminal scum." + icon = 'icons/obj/weapons.dmi' + icon_state = "baton" + item_state = "classic_baton" + slot_flags = SLOT_BELT + force = 12 //9 hit crit + w_class = 3 + var/cooldown = 0 + var/on = 1 + +/obj/item/weapon/melee/classic_baton/attack(mob/target, mob/living/user) + if(!on) + return ..() + + add_fingerprint(user) + if((CLUMSY in user.disabilities) && prob(50)) + user << "You club yourself over the head." + user.Weaken(3 * force) + if(ishuman(user)) + var/mob/living/carbon/human/H = user + H.apply_damage(2*force, BRUTE, "head") + else + user.take_bodypart_damage(2*force) + return + if(iscyborg(target)) + ..() + return + if(!isliving(target)) + return + if (user.a_intent == "harm") + if(!..()) + return + if(!iscyborg(target)) + return + else + if(cooldown <= world.time) + if(ishuman(target)) + var/mob/living/carbon/human/H = target + if (H.check_shields(0, "[user]'s [name]", src, MELEE_ATTACK)) + return + playsound(get_turf(src), 'sound/effects/woodhit.ogg', 75, 1, -1) + target.Weaken(3) + add_logs(user, target, "stunned", src) + src.add_fingerprint(user) + target.visible_message("[user] has knocked down [target] with [src]!", \ + "[user] has knocked down [target] with [src]!") + if(!iscarbon(user)) + target.LAssailant = null + else + target.LAssailant = user + cooldown = world.time + 40 + +/obj/item/weapon/melee/classic_baton/telescopic + name = "telescopic baton" + desc = "A compact yet robust personal defense weapon. Can be concealed when folded." + icon = 'icons/obj/weapons.dmi' + icon_state = "telebaton_0" + item_state = null + slot_flags = SLOT_BELT + w_class = 2 + needs_permit = 0 + force = 0 + on = 0 + +/obj/item/weapon/melee/classic_baton/telescopic/suicide_act(mob/user) + var/mob/living/carbon/human/H = user + var/obj/item/organ/brain/B = H.getorgan(/obj/item/organ/brain) + + user.visible_message("[user] stuffs [src] up [user.p_their()] nose and presses the 'extend' button! It looks like [user.p_theyre()] trying to clear their mind.") + if(!on) + src.attack_self(user) + else + playsound(loc, 'sound/weapons/batonextend.ogg', 50, 1) + add_fingerprint(user) + sleep(3) + if (H && !qdeleted(H)) + if (B && !qdeleted(B)) + H.internal_organs -= B + qdel(B) + new /obj/effect/gibspawner/generic(H.loc, H.viruses, H.dna) + return (BRUTELOSS) + +/obj/item/weapon/melee/classic_baton/telescopic/attack_self(mob/user) + on = !on + if(on) + user << "You extend the baton." + icon_state = "telebaton_1" + item_state = "nullrod" + w_class = 4 //doesnt fit in backpack when its on for balance + force = 10 //stunbaton damage + attack_verb = list("smacked", "struck", "cracked", "beaten") + else + user << "You collapse the baton." + icon_state = "telebaton_0" + item_state = null //no sprite for concealment even when in hand + slot_flags = SLOT_BELT + w_class = 2 + force = 0 //not so robust now + attack_verb = list("hit", "poked") + + playsound(src.loc, 'sound/weapons/batonextend.ogg', 50, 1) + add_fingerprint(user) + +/obj/item/weapon/melee/supermatter_sword + name = "supermatter sword" + desc = "In a station full of bad ideas, this might just be the worst." + icon = 'icons/obj/weapons.dmi' + icon_state = "supermatter_sword" + item_state = "supermatter_sword" + slot_flags = null + w_class = 4 + force = 0.001 + armour_penetration = 1000 + var/obj/machinery/power/supermatter_shard/shard + var/balanced = 1 + origin_tech = "combat=7;materials=6" + +/obj/item/weapon/melee/supermatter_sword/New() + ..() + shard = new /obj/machinery/power/supermatter_shard(src) + START_PROCESSING(SSobj, src) + visible_message("[src] appears, balanced ever so perfectly on its hilt. This isn't ominous at all.") + +/obj/item/weapon/melee/supermatter_sword/process() + if(balanced || throwing || ismob(src.loc) || isnull(src.loc)) + return + if(!isturf(src.loc)) + var/atom/target = src.loc + loc = target.loc + consume_everything(target) + else + var/turf/T = get_turf(src) + if(!isspaceturf(T)) + consume_turf(T) + +/obj/item/weapon/melee/supermatter_sword/afterattack(target, mob/user, proximity_flag) + if(user && target == user) + user.drop_item() + if(proximity_flag) + consume_everything(target) + ..() + +/obj/item/weapon/melee/supermatter_sword/throw_impact(target) + ..() + if(ismob(target)) + var/mob/M + if(src.loc == M) + M.drop_item() + consume_everything(target) + +/obj/item/weapon/melee/supermatter_sword/pickup(user) + ..() + balanced = 0 + +/obj/item/weapon/melee/supermatter_sword/ex_act(severity, target) + visible_message("The blast wave smacks into [src] and rapidly flashes to ash.",\ + "You hear a loud crack as you are washed with a wave of heat.") + consume_everything() + +/obj/item/weapon/melee/supermatter_sword/acid_act() + visible_message("The acid smacks into [src] and rapidly flashes to ash.",\ + "You hear a loud crack as you are washed with a wave of heat.") + consume_everything() + +/obj/item/weapon/melee/supermatter_sword/bullet_act(obj/item/projectile/P) + visible_message("[P] smacks into [src] and rapidly flashes to ash.",\ + "You hear a loud crack as you are washed with a wave of heat.") + consume_everything() + +/obj/item/weapon/melee/supermatter_sword/suicide_act(mob/user) + user.visible_message("[user] touches [src]'s blade. It looks like [user.p_theyre()] tired of waiting for the radiation to kill [user.p_them()]!") + user.drop_item() + shard.Bumped(user) + +/obj/item/weapon/melee/supermatter_sword/proc/consume_everything(target) + if(isnull(target)) + shard.Consume() + else if(!isturf(target)) + shard.Bumped(target) + else + consume_turf(target) + +/obj/item/weapon/melee/supermatter_sword/proc/consume_turf(turf/T) + if(istype(T, T.baseturf)) + return //Can't void the void, baby! + playsound(T, 'sound/effects/supermatter.ogg', 50, 1) + T.visible_message("[T] smacks into [src] and rapidly flashes to ash.",\ + "You hear a loud crack as you are washed with a wave of heat.") + shard.Consume() + T.ChangeTurf(T.baseturf) + T.CalculateAdjacentTurfs() + +/obj/item/weapon/melee/supermatter_sword/add_blood(list/blood_dna) + return 0 diff --git a/code/game/objects/items/weapons/miscellaneous.dm b/code/game/objects/items/weapons/miscellaneous.dm new file mode 100644 index 0000000..bf15607 --- /dev/null +++ b/code/game/objects/items/weapons/miscellaneous.dm @@ -0,0 +1,19 @@ +/obj/item/weapon/caution + desc = "Caution! Wet Floor!" + name = "wet floor sign" + icon = 'icons/obj/janitor.dmi' + icon_state = "caution" + force = 1 + throwforce = 3 + throw_speed = 2 + throw_range = 5 + w_class = 2 + attack_verb = list("warned", "cautioned", "smashed") + +/obj/item/weapon/skub + desc = "It's skub." + name = "skub" + icon = 'icons/obj/items.dmi' + icon_state = "skub" + w_class = 4 + attack_verb = list("skubbed") diff --git a/code/game/objects/items/weapons/mop.dm b/code/game/objects/items/weapons/mop.dm new file mode 100644 index 0000000..4ce013b --- /dev/null +++ b/code/game/objects/items/weapons/mop.dm @@ -0,0 +1,81 @@ +/obj/item/weapon/mop + desc = "The world of janitalia wouldn't be complete without a mop." + name = "mop" + icon = 'icons/obj/janitor.dmi' + icon_state = "mop" + force = 3 + throwforce = 5 + throw_speed = 3 + throw_range = 7 + w_class = 3 + hitsound = 'sound/weapons/mop.ogg' + attack_verb = list("mopped", "bashed", "bludgeoned", "whacked") + resistance_flags = FLAMMABLE + var/mopping = 0 + var/mopcount = 0 + var/mopcap = 5 + var/mopspeed = 30 + +/obj/item/weapon/mop/New() + ..() + create_reagents(mopcap) + + +obj/item/weapon/mop/proc/clean(turf/A) + if(reagents.has_reagent("water", 1) || reagents.has_reagent("holywater", 1) || reagents.has_reagent("vodka", 1) || reagents.has_reagent("cleaner", 1)) + A.clean_blood() + for(var/obj/effect/O in A) + if(is_cleanable(O)) + qdel(O) + if(isclosedturf(A)) + var/turf/closed/C = A + C.thermite = 0 + reagents.reaction(A, TOUCH, 10) //Needed for proper floor wetting. + reagents.remove_any(1) //reaction() doesn't use up the reagents + + +/obj/item/weapon/mop/afterattack(atom/A, mob/user, proximity) + if(!proximity) return + + if(reagents.total_volume < 1) + user << "Your mop is dry!" + return + + var/turf/T = get_turf(A) + + if(T) + user.visible_message("[user] begins to clean \the [T] with [src].", "You begin to clean \the [T] with [src]...") + + if(do_after(user, src.mopspeed, target = T)) + user << "You finish mopping." + clean(T) + + +/obj/effect/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/mop) || istype(I, /obj/item/weapon/soap)) + return + else + return ..() + + +/obj/item/weapon/mop/proc/janicart_insert(mob/user, obj/structure/janitorialcart/J) + J.put_in_cart(src, user) + J.mymop=src + J.update_icon() + +/obj/item/weapon/mop/cyborg + +/obj/item/weapon/mop/cyborg/janicart_insert(mob/user, obj/structure/janitorialcart/J) + return + +/obj/item/weapon/mop/advanced + desc = "The most advanced tool in a custodian's arsenal. Just think of all the viscera you will clean up with this!" + name = "advanced mop" + mopcap = 10 + icon_state = "advmop" + item_state = "mop" + origin_tech = "materials=3;engineering=3" + force = 6 + throwforce = 8 + throw_range = 4 + mopspeed = 20 diff --git a/code/game/objects/items/weapons/paint.dm b/code/game/objects/items/weapons/paint.dm new file mode 100644 index 0000000..c18f868 --- /dev/null +++ b/code/game/objects/items/weapons/paint.dm @@ -0,0 +1,101 @@ +//NEVER USE THIS IT SUX -PETETHEGOAT +//IT SUCKS A BIT LESS -GIACOM + +/obj/item/weapon/paint + gender= PLURAL + name = "paint" + desc = "Used to recolor floors and walls. Can not be removed by the janitor." + icon = 'icons/obj/items.dmi' + icon_state = "paint_neutral" + item_color = "FFFFFF" + item_state = "paintcan" + w_class = 3 + resistance_flags = FLAMMABLE + obj_integrity = 100 + max_integrity = 100 + var/paintleft = 10 + +/obj/item/weapon/paint/red + name = "red paint" + item_color = "C73232" //"FF0000" + icon_state = "paint_red" + +/obj/item/weapon/paint/green + name = "green paint" + item_color = "2A9C3B" //"00FF00" + icon_state = "paint_green" + +/obj/item/weapon/paint/blue + name = "blue paint" + item_color = "5998FF" //"0000FF" + icon_state = "paint_blue" + +/obj/item/weapon/paint/yellow + name = "yellow paint" + item_color = "CFB52B" //"FFFF00" + icon_state = "paint_yellow" + +/obj/item/weapon/paint/violet + name = "violet paint" + item_color = "AE4CCD" //"FF00FF" + icon_state = "paint_violet" + +/obj/item/weapon/paint/black + name = "black paint" + item_color = "333333" + icon_state = "paint_black" + +/obj/item/weapon/paint/white + name = "white paint" + item_color = "FFFFFF" + icon_state = "paint_white" + + +/obj/item/weapon/paint/anycolor + gender= PLURAL + name = "any color" + icon_state = "paint_neutral" + +/obj/item/weapon/paint/anycolor/attack_self(mob/user) + var/t1 = input(user, "Please select a color:", "Locking Computer", null) in list( "red", "blue", "green", "yellow", "violet", "black", "white") + if ((user.get_active_held_item() != src || user.stat || user.restrained())) + return + switch(t1) + if("red") + item_color = "C73232" + if("blue") + item_color = "5998FF" + if("green") + item_color = "2A9C3B" + if("yellow") + item_color = "CFB52B" + if("violet") + item_color = "AE4CCD" + if("white") + item_color = "FFFFFF" + if("black") + item_color = "333333" + icon_state = "paint_[t1]" + add_fingerprint(user) + + +/obj/item/weapon/paint/afterattack(turf/target, mob/user, proximity) + if(!proximity) return + if(paintleft <= 0) + icon_state = "paint_empty" + return + if(!istype(target) || isspaceturf(target)) + return + var/newcolor = "#" + item_color + target.add_atom_colour(newcolor, WASHABLE_COLOUR_PRIORITY) + +/obj/item/weapon/paint/paint_remover + gender = PLURAL + name = "paint remover" + icon_state = "paint_neutral" + +/obj/item/weapon/paint/paint_remover/afterattack(turf/target, mob/user, proximity) + if(!proximity) + return + if(istype(target) && target.color != initial(target.color)) + target.remove_atom_colour(WASHABLE_COLOUR_PRIORITY) diff --git a/code/game/objects/items/weapons/paiwire.dm b/code/game/objects/items/weapons/paiwire.dm new file mode 100644 index 0000000..6753b17 --- /dev/null +++ b/code/game/objects/items/weapons/paiwire.dm @@ -0,0 +1,14 @@ +/obj/item/weapon/pai_cable + desc = "A flexible coated cable with a universal jack on one end." + name = "data cable" + icon = 'icons/obj/power.dmi' + icon_state = "wire1" + flags = NOBLUDGEON + var/obj/machinery/machine + +/obj/item/weapon/pai_cable/proc/plugin(obj/machinery/M, mob/living/user) + if(!user.drop_item()) + return + user.visible_message("[user] inserts [src] into a data port on [M].", "You insert [src] into a data port on [M].", "You hear the satisfying click of a wire jack fastening into place.") + src.loc = M + machine = M \ No newline at end of file diff --git a/code/game/objects/items/weapons/pneumaticCannon.dm b/code/game/objects/items/weapons/pneumaticCannon.dm new file mode 100644 index 0000000..3dba89c --- /dev/null +++ b/code/game/objects/items/weapons/pneumaticCannon.dm @@ -0,0 +1,162 @@ +/obj/item/weapon/pneumatic_cannon + name = "pneumatic cannon" + desc = "A gas-powered cannon that can fire any object loaded into it." + w_class = 4 + force = 8 //Very heavy + attack_verb = list("bludgeoned", "smashed", "beaten") + icon = 'icons/obj/pneumaticCannon.dmi' + icon_state = "pneumaticCannon" + item_state = "bulldog" + lefthand_file = 'icons/mob/inhands/guns_lefthand.dmi' + righthand_file = 'icons/mob/inhands/guns_righthand.dmi' + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 60, acid = 50) + var/maxWeightClass = 20 //The max weight of items that can fit into the cannon + var/loadedWeightClass = 0 //The weight of items currently in the cannon + var/obj/item/weapon/tank/internals/tank = null //The gas tank that is drawn from to fire things + var/gasPerThrow = 3 //How much gas is drawn from a tank's pressure to fire + var/list/loadedItems = list() //The items loaded into the cannon that will be fired out + var/pressureSetting = 1 //How powerful the cannon is - higher pressure = more gas but more powerful throws + + +/obj/item/weapon/pneumatic_cannon/examine(mob/user) + ..() + if(!in_range(user, src)) + user << "You'll need to get closer to see any more." + return + for(var/obj/item/I in loadedItems) + user << "\icon [I] It has \the [I] loaded." + if(tank) + user << "\icon [tank] It has \the [tank] mounted onto it." + + +/obj/item/weapon/pneumatic_cannon/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/weapon/tank/internals)) + if(!tank) + var/obj/item/weapon/tank/internals/IT = W + if(IT.volume <= 3) + user << "\The [IT] is too small for \the [src]." + return + updateTank(W, 0, user) + else if(W.type == type) + user << "You're fairly certain that putting a pneumatic cannon inside another pneumatic cannon would cause a spacetime disruption." + else if(istype(W, /obj/item/weapon/wrench)) + switch(pressureSetting) + if(1) + pressureSetting = 2 + if(2) + pressureSetting = 3 + if(3) + pressureSetting = 1 + user << "You tweak \the [src]'s pressure output to [pressureSetting]." + else if(istype(W, /obj/item/weapon/screwdriver)) + if(tank) + updateTank(tank, 1, user) + else if(loadedWeightClass >= maxWeightClass) + user << "\The [src] can't hold any more items!" + else if(istype(W, /obj/item)) + var/obj/item/IW = W + if((loadedWeightClass + IW.w_class) > maxWeightClass) + user << "\The [IW] won't fit into \the [src]!" + return + if(IW.w_class > src.w_class) + user << "\The [IW] is too large to fit into \the [src]!" + return + if(!user.unEquip(W)) + return + user << "You load \the [IW] into \the [src]." + loadedItems.Add(IW) + loadedWeightClass += IW.w_class + IW.loc = src + + + +/obj/item/weapon/pneumatic_cannon/afterattack(atom/target, mob/living/carbon/human/user, flag, params) + if(flag && user.a_intent == "harm") //melee attack + return + if(!istype(user)) + return + Fire(user, target) + + +/obj/item/weapon/pneumatic_cannon/proc/Fire(var/mob/living/carbon/human/user, var/atom/target) + if(!istype(user) && !target) + return + var/discharge = 0 + if(!loadedItems || !loadedWeightClass) + user << "\The [src] has nothing loaded." + return + if(!tank) + user << "\The [src] can't fire without a source of gas." + return + if(tank && !tank.air_contents.remove(gasPerThrow * pressureSetting)) + user << "\The [src] lets out a weak hiss and doesn't react!" + return + if(user.disabilities & CLUMSY && prob(75)) + user.visible_message("[user] loses their grip on [src], causing it to go off!", "[src] slips out of your hands and goes off!") + user.drop_item() + if(prob(10)) + target = get_turf(user) + else + var/list/possible_targets = range(3,src) + target = pick(possible_targets) + discharge = 1 + if(!discharge) + user.visible_message("[user] fires \the [src]!", \ + "You fire \the [src]!") + add_logs(user, target, "fired at", src) + playsound(src.loc, 'sound/weapons/sonic_jackhammer.ogg', 50, 1) + for(var/obj/item/ITD in loadedItems) //Item To Discharge + loadedItems.Remove(ITD) + loadedWeightClass -= ITD.w_class + ITD.throw_speed = pressureSetting * 2 + ITD.loc = get_turf(src) + ITD.throw_at_fast(target, pressureSetting * 5, pressureSetting * 2,user) + if(pressureSetting >= 3 && user) + user.visible_message("[user] is thrown down by the force of the cannon!", "[src] slams into your shoulder, knocking you down!") + user.Weaken(3) + + +/obj/item/weapon/pneumatic_cannon/ghetto //Obtainable by improvised methods; more gas per use, less capacity, but smaller + name = "improvised pneumatic cannon" + desc = "A gas-powered, object-firing cannon made out of common parts." + force = 5 + w_class = 3 + maxWeightClass = 7 + gasPerThrow = 5 + +/datum/crafting_recipe/improvised_pneumatic_cannon //Pretty easy to obtain but + name = "Pneumatic Cannon" + result = /obj/item/weapon/pneumatic_cannon/ghetto + tools = list(/obj/item/weapon/weldingtool, + /obj/item/weapon/wrench) + reqs = list(/obj/item/stack/sheet/metal = 4, + /obj/item/stack/packageWrap = 8, + /obj/item/pipe = 2) + time = 300 + category = CAT_WEAPON + +/obj/item/weapon/pneumatic_cannon/proc/updateTank(obj/item/weapon/tank/internals/thetank, removing = 0, mob/living/carbon/human/user) + if(removing) + if(!src.tank) + return + user << "You detach \the [thetank] from \the [src]." + src.tank.loc = get_turf(user) + user.put_in_hands(tank) + src.tank = null + if(!removing) + if(src.tank) + user << "\The [src] already has a tank." + return + if(!user.unEquip(thetank)) + return + user << "You hook \the [thetank] up to \the [src]." + src.tank = thetank + thetank.loc = src + src.update_icons() + +/obj/item/weapon/pneumatic_cannon/proc/update_icons() + src.cut_overlays() + if(!tank) + return + src.add_overlay(image('icons/obj/pneumaticCannon.dmi', "[tank.icon_state]")) + src.update_icon() diff --git a/code/game/objects/items/weapons/powerfist.dm b/code/game/objects/items/weapons/powerfist.dm new file mode 100644 index 0000000..37efb4a --- /dev/null +++ b/code/game/objects/items/weapons/powerfist.dm @@ -0,0 +1,96 @@ +/obj/item/weapon/melee/powerfist + name = "power-fist" + desc = "A metal gauntlet with a piston-powered ram ontop for that extra 'ompfh' in your punch." + icon_state = "powerfist" + item_state = "powerfist" + flags = CONDUCT + attack_verb = list("whacked", "fisted", "power-punched") + force = 20 + throwforce = 10 + throw_range = 7 + w_class = 3 + origin_tech = "combat=5;powerstorage=3;syndicate=3" + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 40) + resistance_flags = FIRE_PROOF + var/click_delay = 1.5 + var/fisto_setting = 1 + var/gasperfist = 3 + var/obj/item/weapon/tank/internals/tank = null //Tank used for the gauntlet's piston-ram. + + +/obj/item/weapon/melee/powerfist/examine(mob/user) + ..() + if(!in_range(user, src)) + user << "You'll need to get closer to see any more." + return + if(tank) + user << "\icon [tank] It has \the [tank] mounted onto it." + + +/obj/item/weapon/melee/powerfist/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/weapon/tank/internals)) + if(!tank) + var/obj/item/weapon/tank/internals/IT = W + if(IT.volume <= 3) + user << "\The [IT] is too small for \the [src]." + return + updateTank(W, 0, user) + else if(istype(W, /obj/item/weapon/wrench)) + switch(fisto_setting) + if(1) + fisto_setting = 2 + if(2) + fisto_setting = 3 + if(3) + fisto_setting = 1 + playsound(loc, 'sound/items/Ratchet.ogg', 50, 1) + user << "You tweak \the [src]'s piston valve to [fisto_setting]." + else if(istype(W, /obj/item/weapon/screwdriver)) + if(tank) + updateTank(tank, 1, user) + + +/obj/item/weapon/melee/powerfist/proc/updateTank(obj/item/weapon/tank/internals/thetank, removing = 0, mob/living/carbon/human/user) + if(removing) + if(!tank) + user << "\The [src] currently has no tank attached to it." + return + user << "You detach \the [thetank] from \the [src]." + tank.forceMove(get_turf(user)) + user.put_in_hands(tank) + tank = null + if(!removing) + if(tank) + user << "\The [src] already has a tank." + return + if(!user.unEquip(thetank)) + return + user << "You hook \the [thetank] up to \the [src]." + tank = thetank + thetank.forceMove(src) + + +/obj/item/weapon/melee/powerfist/attack(mob/living/target, mob/living/user) + if(!tank) + user << "\The [src] can't operate without a source of gas!" + return + if(tank && !tank.air_contents.remove(gasperfist * fisto_setting)) + user << "\The [src]'s piston-ram lets out a weak hiss, it needs more gas!" + playsound(loc, 'sound/effects/refill.ogg', 50, 1) + return + target.apply_damage(force * fisto_setting, BRUTE) + target.visible_message("[user]'s powerfist lets out a loud hiss as they punch [target.name]!", \ + "You cry out in pain as [user]'s punch flings you backwards!") + PoolOrNew(/obj/effect/overlay/temp/kinetic_blast, target.loc) + playsound(loc, 'sound/weapons/resonator_blast.ogg', 50, 1) + playsound(loc, 'sound/weapons/genhit2.ogg', 50, 1) + + var/atom/throw_target = get_edge_target_turf(target, get_dir(src, get_step_away(target, src))) + spawn(1) + target.throw_at(throw_target, 5 * fisto_setting, 0.2) + + add_logs(user, target, "power fisted", src) + + user.changeNext_move(CLICK_CD_MELEE * click_delay) + + return diff --git a/code/game/objects/items/weapons/scrolls.dm b/code/game/objects/items/weapons/scrolls.dm new file mode 100644 index 0000000..6bb9e6b --- /dev/null +++ b/code/game/objects/items/weapons/scrolls.dm @@ -0,0 +1,77 @@ +/obj/item/weapon/teleportation_scroll + name = "scroll of teleportation" + desc = "A scroll for moving around." + icon = 'icons/obj/wizard.dmi' + icon_state = "scroll" + var/uses = 4 + w_class = 2 + item_state = "paper" + throw_speed = 3 + throw_range = 7 + origin_tech = "bluespace=6" + resistance_flags = FLAMMABLE + +/obj/item/weapon/teleportation_scroll/apprentice + name = "lesser scroll of teleportation" + uses = 1 + origin_tech = "bluespace=5" + + + +/obj/item/weapon/teleportation_scroll/attack_self(mob/user) + user.set_machine(src) + var/dat = "Teleportation Scroll:
          " + dat += "Number of uses: [src.uses]
          " + dat += "
          " + dat += "Four uses, use them wisely:
          " + dat += "
          Teleport
          " + dat += "Kind regards,
          Wizards Federation

          P.S. Don't forget to bring your gear, you'll need it to cast most spells.
          " + user << browse(dat, "window=scroll") + onclose(user, "scroll") + return + +/obj/item/weapon/teleportation_scroll/Topic(href, href_list) + ..() + if (usr.stat || usr.restrained() || src.loc != usr) + return + if (!ishuman(usr)) + return 1 + var/mob/living/carbon/human/H = usr + if(H.is_holding(src)) + H.set_machine(src) + if (href_list["spell_teleport"]) + if(uses) + teleportscroll(H) + if(H) + attack_self(H) + return + +/obj/item/weapon/teleportation_scroll/proc/teleportscroll(mob/user) + + var/A + + A = input(user, "Area to jump to", "BOOYEA", A) as null|anything in teleportlocs + if(!src || qdeleted(src) || !user || !user.is_holding(src) || user.incapacitated() || !A || !uses) + return + var/area/thearea = teleportlocs[A] + + var/datum/effect_system/smoke_spread/smoke = new + smoke.set_up(2, user.loc) + smoke.attach(user) + smoke.start() + var/list/L = list() + for(var/turf/T in get_area_turfs(thearea.type)) + if(!is_blocked_turf(T)) + L += T + + if(!L.len) + user << "The spell matrix was unable to locate a suitable teleport destination for an unknown reason. Sorry." + return + + if(user && user.buckled) + user.buckled.unbuckle_mob(user, force=1) + + user.forceMove(pick(L)) + + smoke.start() + uses-- diff --git a/code/game/objects/items/weapons/sharpener.dm b/code/game/objects/items/weapons/sharpener.dm new file mode 100644 index 0000000..a1bc58d --- /dev/null +++ b/code/game/objects/items/weapons/sharpener.dm @@ -0,0 +1,54 @@ +/obj/item/weapon/sharpener + name = "whetstone" + icon = 'icons/obj/kitchen.dmi' + icon_state = "sharpener" + desc = "A block that makes things sharp." + var/used = 0 + var/increment = 4 + var/max = 30 + var/prefix = "sharpened" + var/requires_sharpness = 1 + + +/obj/item/weapon/sharpener/attackby(obj/item/I, mob/user, params) + if(used) + user << "The sharpening block is too worn to use again." + return + if(I.force >= max || I.throwforce >= max)//no esword sharpening + user << "[I] is much too powerful to sharpen further." + return + if(requires_sharpness && !I.sharpness) + user << "You can only sharpen items that are already sharp, such as knives." + return + if(istype(I, /obj/item/weapon/twohanded))//some twohanded items should still be sharpenable, but handle force differently. therefore i need this stuff + var/obj/item/weapon/twohanded/TH = I + if(TH.force_wielded >= max) + user << "[TH] is much too powerful to sharpen further." + return + if(TH.wielded) + user << "[TH] must be unwielded before it can be sharpened." + return + if(TH.force_wielded > initial(TH.force_wielded)) + user << "[TH] has already been refined before. It cannot be sharpened further." + return + TH.force_wielded = Clamp(TH.force_wielded + increment, 0, max)//wieldforce is increased since normal force wont stay + if(I.force > initial(I.force)) + user << "[I] has already been refined before. It cannot be sharpened further." + return + user.visible_message("[user] sharpens [I] with [src]!", "You sharpen [I], making it much more deadly than before.") + if(!requires_sharpness) + I.sharpness = IS_SHARP_ACCURATE + I.force = Clamp(I.force + increment, 0, max) + I.throwforce = Clamp(I.throwforce + increment, 0, max) + I.name = "[prefix] [I.name]" + name = "worn out [name]" + desc = "[desc] At least, it used to." + used = 1 + +/obj/item/weapon/sharpener/super + name = "super whetstone" + desc = "A block that will make your weapon sharper than Einstein on adderall." + increment = 200 + max = 200 + prefix = "super-sharpened" + requires_sharpness = 0 diff --git a/code/game/objects/items/weapons/shields.dm b/code/game/objects/items/weapons/shields.dm new file mode 100644 index 0000000..adbac8f --- /dev/null +++ b/code/game/objects/items/weapons/shields.dm @@ -0,0 +1,136 @@ +/obj/item/weapon/shield + name = "shield" + block_chance = 50 + armor = list(melee = 50, bullet = 50, laser = 50, energy = 0, bomb = 30, bio = 0, rad = 0, fire = 80, acid = 70) + +/obj/item/weapon/shield/riot + name = "riot shield" + desc = "A shield adept at blocking blunt objects from connecting with the torso of the shield wielder." + icon = 'icons/obj/weapons.dmi' + icon_state = "riot" + slot_flags = SLOT_BACK + force = 10 + throwforce = 5 + throw_speed = 2 + throw_range = 3 + w_class = 4 + materials = list(MAT_GLASS=7500, MAT_METAL=1000) + origin_tech = "materials=3;combat=4" + attack_verb = list("shoved", "bashed") + var/cooldown = 0 //shield bash cooldown. based on world.time + + +/obj/item/weapon/shield/riot/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/weapon/melee/baton)) + if(cooldown < world.time - 25) + user.visible_message("[user] bashes [src] with [W]!") + playsound(user.loc, 'sound/effects/shieldbash.ogg', 50, 1) + cooldown = world.time + else + return ..() + +/obj/item/weapon/shield/hit_reaction(mob/living/carbon/human/owner, attack_text, final_block_chance, damage, attack_type) + if(attack_type == THROWN_PROJECTILE_ATTACK) + final_block_chance += 30 + if(attack_type == LEAP_ATTACK) + final_block_chance = 100 + return ..() + +/obj/item/weapon/shield/riot/roman + name = "roman shield" + desc = "Bears an inscription on the inside: \"Romanes venio domus\"." + icon_state = "roman_shield" + item_state = "roman_shield" + +/obj/item/weapon/shield/riot/buckler + name = "wooden buckler" + desc = "A medieval wooden buckler." + icon_state = "buckler" + item_state = "buckler" + materials = list() + origin_tech = "materials=1;combat=3;biotech=2" + resistance_flags = FLAMMABLE + block_chance = 30 + +/obj/item/weapon/shield/energy + name = "energy combat shield" + desc = "A shield capable of stopping most melee attacks. Protects user from almost all energy projectiles. It can be retracted, expanded, and stored anywhere." + icon = 'icons/obj/weapons.dmi' + icon_state = "eshield0" // eshield1 for expanded + force = 3 + throwforce = 3 + throw_speed = 3 + throw_range = 5 + w_class = 1 + origin_tech = "materials=4;magnets=5;syndicate=6" + attack_verb = list("shoved", "bashed") + var/active = 0 + +/obj/item/weapon/shield/energy/hit_reaction(mob/living/carbon/human/owner, attack_text, final_block_chance) + return 0 + +/obj/item/weapon/shield/energy/IsReflect() + return (active) + +/obj/item/weapon/shield/energy/attack_self(mob/living/carbon/human/user) + if(user.disabilities & CLUMSY && prob(50)) + user << "You beat yourself in the head with [src]." + user.take_bodypart_damage(5) + active = !active + icon_state = "eshield[active]" + + if(active) + force = 10 + throwforce = 8 + throw_speed = 2 + w_class = 4 + playsound(user, 'sound/weapons/saberon.ogg', 35, 1) + user << "[src] is now active." + else + force = 3 + throwforce = 3 + throw_speed = 3 + w_class = 1 + playsound(user, 'sound/weapons/saberoff.ogg', 35, 1) + user << "[src] can now be concealed." + add_fingerprint(user) + +/obj/item/weapon/shield/riot/tele + name = "telescopic shield" + desc = "An advanced riot shield made of lightweight materials that collapses for easy storage." + icon = 'icons/obj/weapons.dmi' + icon_state = "teleriot0" + origin_tech = "materials=3;combat=4;engineering=4" + slot_flags = null + force = 3 + throwforce = 3 + throw_speed = 3 + throw_range = 4 + w_class = 3 + var/active = 0 + +/obj/item/weapon/shield/riot/tele/hit_reaction(mob/living/carbon/human/owner, attack_text, final_block_chance) + if(active) + return ..() + return 0 + +/obj/item/weapon/shield/riot/tele/attack_self(mob/living/user) + active = !active + icon_state = "teleriot[active]" + playsound(src.loc, 'sound/weapons/batonextend.ogg', 50, 1) + + if(active) + force = 8 + throwforce = 5 + throw_speed = 2 + w_class = 4 + slot_flags = SLOT_BACK + user << "You extend \the [src]." + else + force = 3 + throwforce = 3 + throw_speed = 3 + w_class = 3 + slot_flags = null + user << "[src] can now be concealed." + add_fingerprint(user) diff --git a/code/game/objects/items/weapons/signs.dm b/code/game/objects/items/weapons/signs.dm new file mode 100644 index 0000000..24824f7 --- /dev/null +++ b/code/game/objects/items/weapons/signs.dm @@ -0,0 +1,38 @@ +/obj/item/weapon/picket_sign + icon_state = "picket" + name = "blank picket sign" + desc = "It's blank" + force = 5 + w_class = 4 + attack_verb = list("bashed","smacked") + resistance_flags = FLAMMABLE + + var/label = "" + var/last_wave = 0 + +/obj/item/weapon/picket_sign/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/weapon/pen) || istype(W, /obj/item/toy/crayon)) + var/txt = stripped_input(user, "What would you like to write on the sign?", "Sign Label", null , 30) + if(txt) + label = txt + src.name = "[label] sign" + desc = "It reads: [label]" + else + return ..() + +/obj/item/weapon/picket_sign/attack_self(mob/living/carbon/human/user) + if( last_wave + 20 < world.time ) + last_wave = world.time + if(label) + user.visible_message("[user] waves around \the \"[label]\" sign.") + else + user.visible_message("[user] waves around blank sign.") + user.changeNext_move(CLICK_CD_MELEE) + +/datum/crafting_recipe/picket_sign + name = "Picket Sign" + result = /obj/item/weapon/picket_sign + reqs = list(/obj/item/stack/rods = 1, + /obj/item/stack/sheet/cardboard = 2) + time = 80 + category = CAT_MISC \ No newline at end of file diff --git a/code/game/objects/items/weapons/singularityhammer.dm b/code/game/objects/items/weapons/singularityhammer.dm new file mode 100644 index 0000000..0641e42 --- /dev/null +++ b/code/game/objects/items/weapons/singularityhammer.dm @@ -0,0 +1,113 @@ +/obj/item/weapon/twohanded/singularityhammer + name = "singularity hammer" + desc = "The pinnacle of close combat technology, the hammer harnesses the power of a miniaturized singularity to deal crushing blows." + icon_state = "mjollnir0" + flags = CONDUCT + slot_flags = SLOT_BACK + force = 5 + force_unwielded = 5 + force_wielded = 20 + throwforce = 15 + throw_range = 1 + w_class = 5 + var/charged = 5 + origin_tech = "combat=4;bluespace=4;plasmatech=7" + armor = list(melee = 50, bullet = 50, laser = 50, energy = 0, bomb = 50, bio = 0, rad = 0, fire = 100, acid = 100) + resistance_flags = FIRE_PROOF | ACID_PROOF + +/obj/item/weapon/twohanded/singularityhammer/New() + ..() + START_PROCESSING(SSobj, src) + +/obj/item/weapon/twohanded/singularityhammer/Destroy() + STOP_PROCESSING(SSobj, src) + return ..() + +/obj/item/weapon/twohanded/singularityhammer/process() + if(charged < 5) + charged++ + return + +/obj/item/weapon/twohanded/singularityhammer/update_icon() //Currently only here to fuck with the on-mob icons. + icon_state = "mjollnir[wielded]" + return + +/obj/item/weapon/twohanded/singularityhammer/proc/vortex(turf/pull, mob/wielder) + for(var/atom/X in orange(5,pull)) + if(istype(X, /atom/movable)) + var/atom/movable/A = X + if(A == wielder) + continue + if(A && !A.anchored && !ishuman(X)) + step_towards(A,pull) + step_towards(A,pull) + step_towards(A,pull) + else if(ishuman(X)) + var/mob/living/carbon/human/H = X + if(istype(H.shoes,/obj/item/clothing/shoes/magboots)) + var/obj/item/clothing/shoes/magboots/M = H.shoes + if(M.magpulse) + continue + H.apply_effect(1, WEAKEN, 0) + step_towards(H,pull) + step_towards(H,pull) + step_towards(H,pull) + return + +/obj/item/weapon/twohanded/singularityhammer/afterattack(atom/A as mob|obj|turf|area, mob/user, proximity) + if(!proximity) return + if(wielded) + if(charged == 5) + charged = 0 + if(istype(A, /mob/living/)) + var/mob/living/Z = A + Z.take_bodypart_damage(20,0) + playsound(user, 'sound/weapons/marauder.ogg', 50, 1) + var/turf/target = get_turf(A) + vortex(target,user) + +/obj/item/weapon/twohanded/mjollnir + name = "Mjolnir" + desc = "A weapon worthy of a god, able to strike with the force of a lightning bolt. It crackles with barely contained energy." + icon_state = "mjollnir0" + flags = CONDUCT + slot_flags = SLOT_BACK + force = 5 + force_unwielded = 5 + force_wielded = 25 + throwforce = 30 + throw_range = 7 + w_class = 5 + //var/charged = 5 + origin_tech = "combat=4;powerstorage=7" + +/obj/item/weapon/twohanded/mjollnir/proc/shock(mob/living/target) + var/datum/effect_system/lightning_spread/s = new /datum/effect_system/lightning_spread + s.set_up(5, 1, target.loc) + s.start() + target.visible_message("[target.name] was shocked by the [src.name]!", \ + "You feel a powerful shock course through your body sending you flying!", \ + "You hear a heavy electrical crack!") + var/atom/throw_target = get_edge_target_turf(target, get_dir(src, get_step_away(target, src))) + target.throw_at_fast(throw_target, 200, 4) + return + +/obj/item/weapon/twohanded/mjollnir/attack(mob/living/M, mob/user) + ..() + if(wielded) + //if(charged == 5) + //charged = 0 + playsound(src.loc, "sparks", 50, 1) + M.Stun(3) + shock(M) + +/obj/item/weapon/twohanded/mjollnir/throw_impact(atom/target) + . = ..() + if(isliving(target)) + var/mob/living/L = target + L.Stun(3) + shock(L) + +/obj/item/weapon/twohanded/mjollnir/update_icon() //Currently only here to fuck with the on-mob icons. + icon_state = "mjollnir[wielded]" + return diff --git a/code/game/objects/items/weapons/storage/backpack.dm b/code/game/objects/items/weapons/storage/backpack.dm new file mode 100644 index 0000000..108ab55 --- /dev/null +++ b/code/game/objects/items/weapons/storage/backpack.dm @@ -0,0 +1,538 @@ +/* Backpacks + * Contains: + * Backpack + * Backpack Types + * Satchel Types + */ + +/* + * Backpack + */ + +/obj/item/weapon/storage/backpack + name = "backpack" + desc = "You wear this on your back and put items into it." + icon_state = "backpack" + item_state = "backpack" + w_class = 4 + slot_flags = SLOT_BACK //ERROOOOO + max_w_class = 3 + max_combined_w_class = 21 + storage_slots = 21 + resistance_flags = 0 + obj_integrity = 300 + max_integrity = 300 + +/obj/item/weapon/storage/backpack/attackby(obj/item/weapon/W, mob/user, params) + playsound(src.loc, "rustle", 50, 1, -5) + return ..() + +/* + * Backpack Types + */ + +/obj/item/weapon/storage/backpack/holding + name = "bag of holding" + desc = "A backpack that opens into a localized pocket of Blue Space." + origin_tech = "bluespace=5;materials=4;engineering=4;plasmatech=5" + icon_state = "holdingpack" + max_w_class = 6 + max_combined_w_class = 35 + resistance_flags = FIRE_PROOF + var/pshoom = 'sound/items/PSHOOM.ogg' + var/alt_sound = 'sound/items/PSHOOM_2.ogg' + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 60, acid = 50) + + +/obj/item/weapon/storage/backpack/holding/suicide_act(mob/user) + user.visible_message("[user] is jumping into [src]! It looks like [user.p_theyre()] trying to commit suicide.") + user.drop_item() + user.Stun(5) + sleep(20) + playsound(src, "rustle", 50, 1, -5) + qdel(user) + return + +/obj/item/weapon/storage/backpack/holding/content_can_dump(atom/dest_object, mob/user) + if(Adjacent(user)) + if(get_dist(user, dest_object) < 8) + if(dest_object.storage_contents_dump_act(src, user)) + if(alt_sound && prob(1)) + playsound(src, alt_sound, 40, 1) + else + playsound(src, pshoom, 40, 1) + user.Beam(dest_object,icon_state="rped_upgrade",time=5) + return 1 + user << "The [src.name] buzzes." + playsound(src, 'sound/machines/buzz-sigh.ogg', 50, 0) + return 0 + +/obj/item/weapon/storage/backpack/holding/handle_item_insertion(obj/item/W, prevent_warning = 0, mob/user) + if((istype(W, /obj/item/weapon/storage/backpack/holding) || count_by_type(W.GetAllContents(), /obj/item/weapon/storage/backpack/holding))) + var/safety = alert(user, "Doing this will have extremely dire consequences for the station and its crew. Be sure you know what you're doing.", "Put in [name]?", "Proceed", "Abort") + if(safety == "Abort" || !in_range(src, user) || !src || !W || user.incapacitated()) + return + investigate_log("has become a singularity. Caused by [user.key]","singulo") + user << "The Bluespace interfaces of the two devices catastrophically malfunction!" + qdel(W) + var/obj/singularity/singulo = new /obj/singularity (get_turf(src)) + singulo.energy = 300 //should make it a bit bigger~ + message_admins("[key_name_admin(user)] detonated a bag of holding") + log_game("[key_name(user)] detonated a bag of holding") + qdel(src) + singulo.process() + return + . = ..() + +/obj/item/weapon/storage/backpack/holding/singularity_act(current_size) + var/dist = max((current_size - 2),1) + explosion(src.loc,(dist),(dist*2),(dist*4)) + return + + +/obj/item/weapon/storage/backpack/santabag + name = "Santa's Gift Bag" + desc = "Space Santa uses this to deliver toys to all the nice children in space in Christmas! Wow, it's pretty big!" + icon_state = "giftbag0" + item_state = "giftbag" + w_class = 4 + max_w_class = 3 + max_combined_w_class = 60 + +/obj/item/weapon/storage/backpack/santabag/suicide_act(mob/user) + user.visible_message("[user] places [src] over their head and pulls it tight! It looks like they aren't in the Christmas spirit...") + return (OXYLOSS) + +/obj/item/weapon/storage/backpack/cultpack + name = "trophy rack" + desc = "It's useful for both carrying extra gear and proudly declaring your insanity." + icon_state = "cultpack" + item_state = "backpack" + +/obj/item/weapon/storage/backpack/clown + name = "Giggles von Honkerton" + desc = "It's a backpack made by Honk! Co." + icon_state = "clownpack" + item_state = "clownpack" + +/obj/item/weapon/storage/backpack/explorer + name = "explorer bag" + desc = "A robust backpack for stashing your loot." + icon_state = "explorerpack" + item_state = "explorerpack" + +/obj/item/weapon/storage/backpack/mime + name = "Parcel Parceaux" + desc = "A silent backpack made for those silent workers. Silence Co." + icon_state = "mimepack" + item_state = "mimepack" + +/obj/item/weapon/storage/backpack/medic + name = "medical backpack" + desc = "It's a backpack especially designed for use in a sterile environment." + icon_state = "medicalpack" + item_state = "medicalpack" + +/obj/item/weapon/storage/backpack/security + name = "security backpack" + desc = "It's a very robust backpack." + icon_state = "securitypack" + item_state = "securitypack" + +/obj/item/weapon/storage/backpack/captain + name = "captain's backpack" + desc = "It's a special backpack made exclusively for Nanotrasen officers." + icon_state = "captainpack" + item_state = "captainpack" + resistance_flags = 0 + +/obj/item/weapon/storage/backpack/industrial + name = "industrial backpack" + desc = "It's a tough backpack for the daily grind of station life." + icon_state = "engiepack" + item_state = "engiepack" + resistance_flags = FIRE_PROOF + +/obj/item/weapon/storage/backpack/botany + name = "botany backpack" + desc = "It's a backpack made of all-natural fibers." + icon_state = "botpack" + item_state = "botpack" + +/obj/item/weapon/storage/backpack/chemistry + name = "chemistry backpack" + desc = "A backpack specially designed to repel stains and hazardous liquids." + icon_state = "chempack" + item_state = "chempack" + +/obj/item/weapon/storage/backpack/genetics + name = "genetics backpack" + desc = "A bag designed to be super tough, just in case someone hulks out on you." + icon_state = "genepack" + item_state = "genepack" + +/obj/item/weapon/storage/backpack/science + name = "science backpack" + desc = "A specially designed backpack. It's fire resistant and smells vaguely of plasma." + icon_state = "toxpack" + item_state = "toxpack" + resistance_flags = 0 + +/obj/item/weapon/storage/backpack/virology + name = "virology backpack" + desc = "A backpack made of hypo-allergenic fibers. It's designed to help prevent the spread of disease. Smells like monkey." + icon_state = "viropack" + item_state = "viropack" + + +/* + * Satchel Types + */ + +/obj/item/weapon/storage/backpack/satchel + name = "satchel" + desc = "A trendy looking satchel." + icon_state = "satchel-norm" + species_exception = list(/datum/species/angel) //satchels can be equipped since they are on the side, not back + +/obj/item/weapon/storage/backpack/satchel/leather + name = "leather satchel" + desc = "It's a very fancy satchel made with fine leather." + icon_state = "satchel" + resistance_flags = 0 + +/obj/item/weapon/storage/backpack/satchel/leather/withwallet/New() + ..() + new /obj/item/weapon/storage/wallet/random( src ) + +/obj/item/weapon/storage/backpack/satchel/eng + name = "industrial satchel" + desc = "A tough satchel with extra pockets." + icon_state = "satchel-eng" + item_state = "engiepack" + resistance_flags = 0 + +/obj/item/weapon/storage/backpack/satchel/med + name = "medical satchel" + desc = "A sterile satchel used in medical departments." + icon_state = "satchel-med" + item_state = "medicalpack" + +/obj/item/weapon/storage/backpack/satchel/vir + name = "virologist satchel" + desc = "A sterile satchel with virologist colours." + icon_state = "satchel-vir" + item_state = "satchel-vir" + +/obj/item/weapon/storage/backpack/satchel/chem + name = "chemist satchel" + desc = "A sterile satchel with chemist colours." + icon_state = "satchel-chem" + item_state = "satchel-chem" + +/obj/item/weapon/storage/backpack/satchel/gen + name = "geneticist satchel" + desc = "A sterile satchel with geneticist colours." + icon_state = "satchel-gen" + item_state = "satchel-gen" + +/obj/item/weapon/storage/backpack/satchel/tox + name = "scientist satchel" + desc = "Useful for holding research materials." + icon_state = "satchel-tox" + item_state = "satchel-tox" + resistance_flags = 0 + +/obj/item/weapon/storage/backpack/satchel/hyd + name = "botanist satchel" + desc = "A satchel made of all natural fibers." + icon_state = "satchel-hyd" + item_state = "satchel-hyd" + +/obj/item/weapon/storage/backpack/satchel/sec + name = "security satchel" + desc = "A robust satchel for security related needs." + icon_state = "satchel-sec" + item_state = "securitypack" + +/obj/item/weapon/storage/backpack/satchel/explorer + name = "explorer satchel" + desc = "A robust satchel for stashing your loot." + icon_state = "satchel-explorer" + item_state = "securitypack" + +/obj/item/weapon/storage/backpack/satchel/cap + name = "captain's satchel" + desc = "An exclusive satchel for Nanotrasen officers." + icon_state = "satchel-cap" + item_state = "captainpack" + resistance_flags = 0 + +/obj/item/weapon/storage/backpack/satchel/flat + name = "smuggler's satchel" + desc = "A very slim satchel that can easily fit into tight spaces." + icon_state = "satchel-flat" + w_class = 3 //Can fit in backpacks itself. + max_combined_w_class = 15 + level = 1 + cant_hold = list(/obj/item/weapon/storage/backpack/satchel/flat) //muh recursive backpacks + +/obj/item/weapon/storage/backpack/satchel/flat/hide(var/intact) + if(intact) + invisibility = INVISIBILITY_MAXIMUM + anchored = 1 //otherwise you can start pulling, cover it, and drag around an invisible backpack. + icon_state = "[initial(icon_state)]2" + else + invisibility = initial(invisibility) + anchored = 0 + icon_state = initial(icon_state) + +/obj/item/weapon/storage/backpack/satchel/flat/New() + ..() + PoolOrNew(/obj/item/stack/tile/plasteel, src) + new /obj/item/weapon/crowbar(src) + SSpersistence.new_secret_satchels += src + +/obj/item/weapon/storage/backpack/satchel/flat/Destroy() + SSpersistence.new_secret_satchels -= src + return ..() + +/obj/item/weapon/storage/backpack/satchel/flat/secret/ + var/list/reward_one_of_these = list() //Intended for map editing + var/list/reward_all_of_these = list() //use paths! + var/revealed = 0 + +/obj/item/weapon/storage/backpack/satchel/flat/secret/New() + ..() + + if(isfloorturf(loc) && !istype(loc,/turf/open/floor/plating/)) + hide(1) + +/obj/item/weapon/storage/backpack/satchel/flat/secret/hide(intact) + ..() + if(!intact && !revealed) + if(reward_one_of_these.len > 0) + var/reward = pick(reward_one_of_these) + new reward(src) + for(var/R in reward_all_of_these) + new R(src) + revealed = 1 + +/obj/item/weapon/storage/backpack/dufflebag + name = "dufflebag" + desc = "A large dufflebag for holding extra things." + icon_state = "duffle" + item_state = "duffle" + slowdown = 1 + max_combined_w_class = 30 + +/obj/item/weapon/storage/backpack/dufflebag/captain + name = "captain's dufflebag" + desc = "A large dufflebag for holding extra captainly goods." + icon_state = "duffle-captain" + item_state = "duffle-captain" + resistance_flags = 0 + +/obj/item/weapon/storage/backpack/dufflebag/med + name = "medical dufflebag" + desc = "A large dufflebag for holding extra medical supplies." + icon_state = "duffle-med" + item_state = "duffle-med" + +/obj/item/weapon/storage/backpack/dufflebag/sec + name = "security dufflebag" + desc = "A large dufflebag for holding extra security supplies and ammunition." + icon_state = "duffle-sec" + item_state = "duffle-sec" + +/obj/item/weapon/storage/backpack/dufflebag/engineering + name = "industrial dufflebag" + desc = "A large dufflebag for holding extra tools and supplies." + icon_state = "duffle-eng" + item_state = "duffle-eng" + resistance_flags = 0 + +/obj/item/weapon/storage/backpack/dufflebag/drone + name = "drone dufflebag" + desc = "A large dufflebag for holding tools and hats." + icon_state = "duffle-drone" + item_state = "duffle-drone" + resistance_flags = FIRE_PROOF + +/obj/item/weapon/storage/backpack/dufflebag/drone/New() + ..() + + new /obj/item/weapon/screwdriver(src) + new /obj/item/weapon/wrench(src) + new /obj/item/weapon/weldingtool(src) + new /obj/item/weapon/crowbar(src) + new /obj/item/stack/cable_coil/random(src) + new /obj/item/weapon/wirecutters(src) + new /obj/item/device/multitool(src) + +/obj/item/weapon/storage/backpack/dufflebag/clown + name = "clown's dufflebag" + desc = "A large dufflebag for holding lots of funny gags!" + icon_state = "duffle-clown" + item_state = "duffle-clown" + +/obj/item/weapon/storage/backpack/dufflebag/clown/cream_pie/New() + . = ..() + for(var/i in 1 to 10) + new /obj/item/weapon/reagent_containers/food/snacks/pie/cream(src) + +/obj/item/weapon/storage/backpack/dufflebag/syndie + name = "suspicious looking dufflebag" + desc = "A large dufflebag for holding extra tactical supplies." + icon_state = "duffle-syndie" + item_state = "duffle-syndie" + origin_tech = "syndicate=1" + silent = 1 + slowdown = 0 + +/obj/item/weapon/storage/backpack/dufflebag/syndie/med + name = "medical dufflebag" + desc = "A large dufflebag for holding extra tactical medical supplies." + icon_state = "duffle-syndiemed" + item_state = "duffle-syndiemed" + +/obj/item/weapon/storage/backpack/dufflebag/syndie/surgery + name = "surgery dufflebag" + desc = "A suspicious looking dufflebag for holding surgery tools." + icon_state = "duffle-syndiemed" + item_state = "duffle-syndiemed" + +/obj/item/weapon/storage/backpack/dufflebag/syndie/surgery/New() + ..() + contents = list() + new /obj/item/weapon/scalpel(src) + new /obj/item/weapon/hemostat(src) + new /obj/item/weapon/retractor(src) + new /obj/item/weapon/circular_saw(src) + new /obj/item/weapon/surgicaldrill(src) + new /obj/item/weapon/cautery(src) + new /obj/item/weapon/surgical_drapes(src) + new /obj/item/clothing/suit/straight_jacket(src) + new /obj/item/clothing/mask/muzzle(src) + new /obj/item/device/mmi/syndie(src) + return + +/obj/item/weapon/storage/backpack/dufflebag/syndie/ammo + name = "ammunition dufflebag" + desc = "A large dufflebag for holding extra weapons ammunition and supplies." + icon_state = "duffle-syndieammo" + item_state = "duffle-syndieammo" + +/obj/item/weapon/storage/backpack/dufflebag/syndie/ammo/shotgun + desc = "A large dufflebag, packed to the brim with Bulldog shotgun ammo." + +/obj/item/weapon/storage/backpack/dufflebag/syndie/ammo/shotgun/New() + ..() + contents = list() + for(var/i in 1 to 6) + new /obj/item/ammo_box/magazine/m12g(src) + new /obj/item/ammo_box/magazine/m12g/buckshot(src) + new /obj/item/ammo_box/magazine/m12g/slug(src) + new /obj/item/ammo_box/magazine/m12g/dragon(src) + return + +/obj/item/weapon/storage/backpack/dufflebag/syndie/ammo/smg + desc = "A large dufflebag, packed to the brim with C20r magazines." + +/obj/item/weapon/storage/backpack/dufflebag/syndie/ammo/smg/New() + ..() + contents = list() + for(var/i in 1 to 9) + new /obj/item/ammo_box/magazine/smgm45(src) + return + +/obj/item/weapon/storage/backpack/dufflebag/syndie/c20rbundle + desc = "A large dufflebag containing a C20r, some magazines, and a cheap looking suppressor." + +/obj/item/weapon/storage/backpack/dufflebag/syndie/c20rbundle/New() + ..() + contents = list() + new /obj/item/ammo_box/magazine/smgm45(src) + new /obj/item/ammo_box/magazine/smgm45(src) + new /obj/item/weapon/gun/projectile/automatic/c20r(src) + new /obj/item/weapon/suppressor/specialoffer(src) + return + +/obj/item/weapon/storage/backpack/dufflebag/syndie/bulldogbundle + desc = "A large dufflebag containing a Bulldog, several drums, and a collapsed hardsuit." + +/obj/item/weapon/storage/backpack/dufflebag/syndie/bulldogbundle/New() + ..() + contents = list() + new /obj/item/ammo_box/magazine/m12g(src) + new /obj/item/weapon/gun/projectile/automatic/shotgun/bulldog(src) + new /obj/item/ammo_box/magazine/m12g/buckshot(src) + new /obj/item/clothing/glasses/thermal/syndi(src) + return + +/obj/item/weapon/storage/backpack/dufflebag/syndie/med/medicalbundle + desc = "A large dufflebag containing a medical equipment, a Donksoft machine gun, a big jumbo box of darts, and a knock-off pair of magboots." + +/obj/item/weapon/storage/backpack/dufflebag/syndie/med/medicalbundle/New() + ..() + contents = list() + new /obj/item/clothing/shoes/magboots/syndie(src) + new /obj/item/weapon/storage/firstaid/tactical(src) + new /obj/item/weapon/gun/projectile/automatic/l6_saw/toy(src) + new /obj/item/ammo_box/foambox/riot(src) + return + +/obj/item/weapon/storage/backpack/dufflebag/syndie/med/medicalbundle + desc = "A large dufflebag containing a medical equipment, a Donksoft machine gun, a big jumbo box of darts, and a knock-off pair of magboots." + +/obj/item/weapon/storage/backpack/dufflebag/syndie/med/medicalbundle/New() + ..() + contents = list() + new /obj/item/clothing/shoes/magboots/syndie(src) + new /obj/item/weapon/storage/firstaid/tactical(src) + new /obj/item/weapon/gun/projectile/automatic/l6_saw/toy(src) + new /obj/item/ammo_box/foambox/riot(src) + return + +/obj/item/weapon/storage/backpack/dufflebag/syndie/med/bioterrorbundle + desc = "A large dufflebag containing a deadly chemicals, a chemical spray, chemical grenade, a Donksoft assault rifle, riot grade darts, a minature syringe gun, and a box of syringes" + +/obj/item/weapon/storage/backpack/dufflebag/syndie/med/bioterrorbundle/New() + ..() + contents = list() + new /obj/item/weapon/reagent_containers/spray/chemsprayer/bioterror(src) + new /obj/item/weapon/storage/box/syndie_kit/chemical(src) + new /obj/item/weapon/gun/syringe/syndicate(src) + new /obj/item/weapon/gun/projectile/automatic/c20r/toy(src) + new /obj/item/weapon/storage/box/syringes(src) + new /obj/item/ammo_box/foambox/riot(src) + new /obj/item/weapon/grenade/chem_grenade/bioterrorfoam(src) + return + +/obj/item/weapon/storage/backpack/dufflebag/syndie/c4/New() + ..() + contents = list() + for(var/i in 1 to 10) + new /obj/item/weapon/grenade/plastic/c4(src) + return + +/obj/item/weapon/storage/backpack/dufflebag/syndie/x4/New() + ..() + contents = list() + for(var/i in 1 to 3) + new /obj/item/weapon/grenade/plastic/x4(src) + +/obj/item/weapon/storage/backpack/dufflebag/syndie/firestarter + desc = "A large dufflebag containing New Russian pyro backpack sprayer, a pistol, a pipebomb, fireproof hardsuit, ammo, and other equipment." + +/obj/item/weapon/storage/backpack/dufflebag/syndie/firestarter/New() + ..() + new /obj/item/clothing/under/syndicate/soviet(src) + new /obj/item/weapon/watertank/operator(src) + new /obj/item/clothing/suit/space/hardsuit/syndi/elite(src) + new /obj/item/weapon/gun/projectile/automatic/pistol/APS(src) + new /obj/item/ammo_box/magazine/pistolm9mm(src) + new /obj/item/ammo_box/magazine/pistolm9mm(src) + new /obj/item/weapon/reagent_containers/food/drinks/bottle/vodka/badminka(src) + new /obj/item/weapon/reagent_containers/syringe/stimulants(src) + new /obj/item/weapon/grenade/syndieminibomb(src) diff --git a/code/game/objects/items/weapons/storage/bags.dm b/code/game/objects/items/weapons/storage/bags.dm new file mode 100644 index 0000000..29eecf6 --- /dev/null +++ b/code/game/objects/items/weapons/storage/bags.dm @@ -0,0 +1,383 @@ +/* + * These absorb the functionality of the plant bag, ore satchel, etc. + * They use the use_to_pickup, quick_gather, and quick_empty functions + * that were already defined in weapon/storage, but which had been + * re-implemented in other classes. + * + * Contains: + * Trash Bag + * Mining Satchel + * Plant Bag + * Sheet Snatcher + * Book Bag + * Biowaste Bag + * + * -Sayu + */ + +// Generic non-item +/obj/item/weapon/storage/bag + allow_quick_gather = 1 + allow_quick_empty = 1 + display_contents_with_number = 1 // should work fine now + use_to_pickup = 1 + slot_flags = SLOT_BELT + +// ----------------------------- +// Trash bag +// ----------------------------- +/obj/item/weapon/storage/bag/trash + name = "trash bag" + desc = "It's the heavy-duty black polymer kind. Time to take out the trash!" + icon = 'icons/obj/janitor.dmi' + icon_state = "trashbag" + item_state = "trashbag" + + w_class = 4 + max_w_class = 2 + max_combined_w_class = 30 + storage_slots = 30 + can_hold = list() // any + cant_hold = list(/obj/item/weapon/disk/nuclear) + +/obj/item/weapon/storage/bag/trash/suicide_act(mob/user) + user.visible_message("[user] puts [src] over [user.p_their()] head and starts chomping at the insides! Disgusting!") + playsound(loc, 'sound/items/eatfood.ogg', 50, 1, -1) + return (TOXLOSS) + +/obj/item/weapon/storage/bag/trash/update_icon() + if(contents.len == 0) + icon_state = "[initial(icon_state)]" + else if(contents.len < 12) + icon_state = "[initial(icon_state)]1" + else if(contents.len < 21) + icon_state = "[initial(icon_state)]2" + else icon_state = "[initial(icon_state)]3" + +/obj/item/weapon/storage/bag/trash/cyborg + +/obj/item/weapon/storage/bag/trash/proc/janicart_insert(mob/user, obj/structure/janitorialcart/J) + J.put_in_cart(src, user) + J.mybag=src + J.update_icon() + +/obj/item/weapon/storage/bag/trash/cyborg/janicart_insert(mob/user, obj/structure/janitorialcart/J) + return + +/obj/item/weapon/storage/bag/trash/bluespace + name = "trash bag of holding" + desc = "The latest and greatest in custodial convenience, a trashbag that is capable of holding vast quantities of garbage." + icon_state = "bluetrashbag" + origin_tech = "materials=4;bluespace=4;engineering=4;plasmatech=3" + max_combined_w_class = 60 + storage_slots = 60 + +// ----------------------------- +// Mining Satchel +// ----------------------------- + +/obj/item/weapon/storage/bag/ore + name = "mining satchel" + desc = "This little bugger can be used to store and transport ores." + icon = 'icons/obj/mining.dmi' + icon_state = "satchel" + origin_tech = "engineering=2" + slot_flags = SLOT_BELT | SLOT_POCKET + w_class = 3 + storage_slots = 50 + max_combined_w_class = 200 //Doesn't matter what this is, so long as it's more or equal to storage_slots * ore.w_class + max_w_class = 3 + can_hold = list(/obj/item/weapon/ore) + +/obj/item/weapon/storage/bag/ore/cyborg + name = "cyborg mining satchel" + +/obj/item/weapon/storage/bag/ore/holding //miners, your messiah has arrived + name = "mining satchel of holding" + desc = "A revolution in convenience, this satchel allows for infinite ore storage. It's been outfitted with anti-malfunction safety measures." + storage_slots = INFINITY + max_combined_w_class = INFINITY + origin_tech = "bluespace=4;materials=3;engineering=3" + icon_state = "satchel_bspace" + +// ----------------------------- +// Plant bag +// ----------------------------- + +/obj/item/weapon/storage/bag/plants + name = "plant bag" + icon = 'icons/obj/hydroponics/equipment.dmi' + icon_state = "plantbag" + storage_slots = 100; //the number of plant pieces it can carry. + max_combined_w_class = 100 //Doesn't matter what this is, so long as it's more or equal to storage_slots * plants.w_class + max_w_class = 3 + w_class = 1 + can_hold = list(/obj/item/weapon/reagent_containers/food/snacks/grown,/obj/item/seeds,/obj/item/weapon/grown,/obj/item/weapon/reagent_containers/food/snacks/ash_flora) + resistance_flags = FLAMMABLE + +//////// + +/obj/item/weapon/storage/bag/plants/portaseeder + name = "portable seed extractor" + desc = "For the enterprising botanist on the go. Less efficient than the stationary model, it creates one seed per plant." + icon_state = "portaseeder" + origin_tech = "biotech=3;engineering=2" + +/obj/item/weapon/storage/bag/plants/portaseeder/verb/dissolve_contents() + set name = "Activate Seed Extraction" + set category = "Object" + set desc = "Activate to convert your plants into plantable seeds." + if(usr.stat || !usr.canmove || usr.restrained()) + return + for(var/obj/item/O in contents) + seedify(O, 1) + close_all() + + +// ----------------------------- +// Sheet Snatcher +// ----------------------------- +// Because it stacks stacks, this doesn't operate normally. +// However, making it a storage/bag allows us to reuse existing code in some places. -Sayu + +/obj/item/weapon/storage/bag/sheetsnatcher + name = "sheet snatcher" + desc = "A patented Nanotrasen storage system designed for any kind of mineral sheet." + icon = 'icons/obj/mining.dmi' + icon_state = "sheetsnatcher" + + var/capacity = 300; //the number of sheets it can carry. + w_class = 3 + + allow_quick_empty = 1 // this function is superceded + +/obj/item/weapon/storage/bag/sheetsnatcher/New() + ..() + //verbs -= /obj/item/weapon/storage/verb/quick_empty + //verbs += /obj/item/weapon/storage/bag/sheetsnatcher/quick_empty + +/obj/item/weapon/storage/bag/sheetsnatcher/can_be_inserted(obj/item/W, stop_messages = 0) + if(!istype(W,/obj/item/stack/sheet) || istype(W,/obj/item/stack/sheet/mineral/sandstone) || istype(W,/obj/item/stack/sheet/mineral/wood)) + if(!stop_messages) + usr << "The snatcher does not accept [W]." + return 0 //I don't care, but the existing code rejects them for not being "sheets" *shrug* -Sayu + var/current = 0 + for(var/obj/item/stack/sheet/S in contents) + current += S.amount + if(capacity == current)//If it's full, you're done + if(!stop_messages) + usr << "The snatcher is full." + return 0 + return 1 + + +// Modified handle_item_insertion. Would prefer not to, but... +/obj/item/weapon/storage/bag/sheetsnatcher/handle_item_insertion(obj/item/W, prevent_warning = 0) + var/obj/item/stack/sheet/S = W + if(!istype(S)) return 0 + + var/amount + var/inserted = 0 + var/current = 0 + for(var/obj/item/stack/sheet/S2 in contents) + current += S2.amount + if(capacity < current + S.amount)//If the stack will fill it up + amount = capacity - current + else + amount = S.amount + + for(var/obj/item/stack/sheet/sheet in contents) + if(S.type == sheet.type) // we are violating the amount limitation because these are not sane objects + sheet.amount += amount // they should only be removed through procs in this file, which split them up. + S.amount -= amount + inserted = 1 + break + + if(!inserted || !S.amount) + usr.unEquip(S) + if (usr.client && usr.s_active != src) + usr.client.screen -= S + S.dropped(usr) + if(!S.amount) + qdel(S) + else + if(S.pulledby) + S.pulledby.stop_pulling() + S.loc = src + + orient2hud(usr) + if(usr.s_active) + usr.s_active.show_to(usr) + update_icon() + return 1 + + +// Sets up numbered display to show the stack size of each stored mineral +// NOTE: numbered display is turned off currently because it's broken +/obj/item/weapon/storage/bag/sheetsnatcher/orient2hud(mob/user) + var/adjusted_contents = contents.len + + //Numbered contents display + var/list/datum/numbered_display/numbered_contents + if(display_contents_with_number) + numbered_contents = list() + adjusted_contents = 0 + for(var/obj/item/stack/sheet/I in contents) + adjusted_contents++ + var/datum/numbered_display/D = new/datum/numbered_display(I) + D.number = I.amount + numbered_contents.Add( D ) + + var/row_num = 0 + var/col_count = min(7,storage_slots) -1 + if (adjusted_contents > 7) + row_num = round((adjusted_contents-1) / 7) // 7 is the maximum allowed width. + src.standard_orient_objs(row_num, col_count, numbered_contents) + return + + +// Modified quick_empty verb drops appropriate sized stacks +/obj/item/weapon/storage/bag/sheetsnatcher/quick_empty() + var/location = get_turf(src) + for(var/obj/item/stack/sheet/S in contents) + while(S.amount) + var/obj/item/stack/sheet/N = new S.type(location) + var/stacksize = min(S.amount,N.max_amount) + N.amount = stacksize + S.amount -= stacksize + if(!S.amount) + qdel(S)// todo: there's probably something missing here + orient2hud(usr) + if(usr.s_active) + usr.s_active.show_to(usr) + update_icon() + +// Instead of removing +/obj/item/weapon/storage/bag/sheetsnatcher/remove_from_storage(obj/item/W, atom/new_location) + var/obj/item/stack/sheet/S = W + if(!istype(S)) return 0 + + //I would prefer to drop a new stack, but the item/attack_hand code + // that calls this can't recieve a different object than you clicked on. + //Therefore, make a new stack internally that has the remainder. + // -Sayu + + if(S.amount > S.max_amount) + var/obj/item/stack/sheet/temp = new S.type(src) + temp.amount = S.amount - S.max_amount + S.amount = S.max_amount + + return ..(S,new_location) + +// ----------------------------- +// Sheet Snatcher (Cyborg) +// ----------------------------- + +/obj/item/weapon/storage/bag/sheetsnatcher/borg + name = "sheet snatcher 9000" + desc = "" + capacity = 500//Borgs get more because >specialization + + +// ----------------------------- +// Book bag +// ----------------------------- + +/obj/item/weapon/storage/bag/books + name = "book bag" + desc = "A bag for books." + icon = 'icons/obj/library.dmi' + icon_state = "bookbag" + display_contents_with_number = 0 //This would look really stupid otherwise + storage_slots = 7 + max_combined_w_class = 21 + max_w_class = 3 + w_class = 4 //Bigger than a book because physics + can_hold = list(/obj/item/weapon/book, /obj/item/weapon/storage/book, /obj/item/weapon/spellbook) + resistance_flags = FLAMMABLE + +/* + * Trays - Agouri + */ +/obj/item/weapon/storage/bag/tray + name = "tray" + icon = 'icons/obj/food/containers.dmi' + icon_state = "tray" + desc = "A metal tray to lay food on." + force = 5 + throwforce = 10 + throw_speed = 3 + throw_range = 5 + w_class = 4 + flags = CONDUCT + materials = list(MAT_METAL=3000) + preposition = "on" + +/obj/item/weapon/storage/bag/tray/attack(mob/living/M, mob/living/user) + ..() + // Drop all the things. All of them. + var/list/obj/item/oldContents = contents.Copy() + quick_empty() + + // Make each item scatter a bit + for(var/obj/item/I in oldContents) + spawn() + for(var/i = 1, i <= rand(1,2), i++) + if(I) + step(I, pick(NORTH,SOUTH,EAST,WEST)) + sleep(rand(2,4)) + + if(prob(50)) + playsound(M, 'sound/items/trayhit1.ogg', 50, 1) + else + playsound(M, 'sound/items/trayhit2.ogg', 50, 1) + + if(ishuman(M) || ismonkey(M)) + if(prob(10)) + M.Weaken(2) + +/obj/item/weapon/storage/bag/tray/proc/rebuild_overlays() + cut_overlays() + for(var/obj/item/I in contents) + add_overlay(image("icon" = I.icon, "icon_state" = I.icon_state, "layer" = -1)) + +/obj/item/weapon/storage/bag/tray/remove_from_storage(obj/item/W as obj, atom/new_location) + ..() + rebuild_overlays() + +/obj/item/weapon/storage/bag/tray/handle_item_insertion(obj/item/I, prevent_warning = 0) + add_overlay(image("icon" = I.icon, "icon_state" = I.icon_state, "layer" = -1)) + . = ..() + + +/* + * Chemistry bag + */ + +/obj/item/weapon/storage/bag/chemistry + name = "chemistry bag" + icon = 'icons/obj/chemical.dmi' + icon_state = "bag" + desc = "A bag for storing pills, patches, and bottles." + storage_slots = 50 + max_combined_w_class = 200 + w_class = 1 + preposition = "in" + can_hold = list(/obj/item/weapon/reagent_containers/pill, /obj/item/weapon/reagent_containers/glass/beaker, /obj/item/weapon/reagent_containers/glass/bottle) + resistance_flags = FLAMMABLE + +/* + * Biowaste bag (mostly for xenobiologists) + */ + +/obj/item/weapon/storage/bag/bio + name = "bio bag" + icon = 'icons/obj/chemical.dmi' + icon_state = "biobag" + desc = "A bag for the safe transportation and disposal of biowaste and other biological materials." + storage_slots = 25 + max_combined_w_class = 200 + w_class = 1 + preposition = "in" + can_hold = list(/obj/item/slime_extract, /obj/item/weapon/reagent_containers/syringe, /obj/item/weapon/reagent_containers/glass/beaker, /obj/item/weapon/reagent_containers/glass/bottle, /obj/item/weapon/reagent_containers/blood, /obj/item/weapon/reagent_containers/hypospray/medipen, /obj/item/trash/deadmouse, /obj/item/weapon/reagent_containers/food/snacks/monkeycube) + resistance_flags = FLAMMABLE diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm new file mode 100644 index 0000000..bd76aef --- /dev/null +++ b/code/game/objects/items/weapons/storage/belt.dm @@ -0,0 +1,486 @@ +/obj/item/weapon/storage/belt + name = "belt" + desc = "Can hold various things." + icon = 'icons/obj/clothing/belts.dmi' + icon_state = "utilitybelt" + item_state = "utility" + slot_flags = SLOT_BELT + attack_verb = list("whipped", "lashed", "disciplined") + obj_integrity = 300 + max_integrity = 300 + +/obj/item/weapon/storage/belt/update_icon() + cut_overlays() + for(var/obj/item/I in contents) + add_overlay("[I.name]") + ..() + +/obj/item/weapon/storage/belt/utility + name = "toolbelt" //Carn: utility belt is nicer, but it bamboozles the text parsing. + desc = "Holds tools." + icon_state = "utilitybelt" + item_state = "utility" + can_hold = list( + /obj/item/weapon/crowbar, + /obj/item/weapon/screwdriver, + /obj/item/weapon/weldingtool, + /obj/item/weapon/wirecutters, + /obj/item/weapon/wrench, + /obj/item/device/multitool, + /obj/item/device/flashlight, + /obj/item/stack/cable_coil, + /obj/item/device/t_scanner, + /obj/item/device/analyzer, + /obj/item/weapon/extinguisher/mini, + /obj/item/device/radio, + /obj/item/clothing/gloves/ + ) + +/obj/item/weapon/storage/belt/utility/chief + name = "Chief Engineer's toolbelt" + desc = "Holds tools, looks snazzy" + icon_state = "utilitybelt_ce" + item_state = "utility_ce" + +/obj/item/weapon/storage/belt/utility/chief/full/New() + ..() + new /obj/item/weapon/screwdriver/power(src) + new /obj/item/weapon/crowbar/power(src) + new /obj/item/weapon/weldingtool/experimental(src)//This can be changed if this is too much + new /obj/item/device/multitool(src) + new /obj/item/stack/cable_coil(src,30,pick("red","yellow","orange")) + new /obj/item/weapon/extinguisher/mini(src) + //much roomier now that we've managed to remove two tools + + +/obj/item/weapon/storage/belt/utility/full/New() + ..() + new /obj/item/weapon/screwdriver(src) + new /obj/item/weapon/wrench(src) + new /obj/item/weapon/weldingtool(src) + new /obj/item/weapon/crowbar(src) + new /obj/item/weapon/wirecutters(src) + new /obj/item/device/multitool(src) + new /obj/item/stack/cable_coil(src,30,pick("red","yellow","orange")) + + +/obj/item/weapon/storage/belt/utility/atmostech/New() + ..() + new /obj/item/weapon/screwdriver(src) + new /obj/item/weapon/wrench(src) + new /obj/item/weapon/weldingtool(src) + new /obj/item/weapon/crowbar(src) + new /obj/item/weapon/wirecutters(src) + new /obj/item/device/t_scanner(src) + new /obj/item/weapon/extinguisher/mini(src) + + + +/obj/item/weapon/storage/belt/medical + name = "medical belt" + desc = "Can hold various medical equipment." + icon_state = "medicalbelt" + item_state = "medical" + max_w_class = 4 + can_hold = list( + /obj/item/device/healthanalyzer, + /obj/item/weapon/dnainjector, + /obj/item/weapon/reagent_containers/dropper, + /obj/item/weapon/reagent_containers/glass/beaker, + /obj/item/weapon/reagent_containers/glass/bottle, + /obj/item/weapon/reagent_containers/pill, + /obj/item/weapon/reagent_containers/syringe, + /obj/item/weapon/lighter, + /obj/item/weapon/storage/fancy/cigarettes, + /obj/item/weapon/storage/pill_bottle, + /obj/item/stack/medical, + /obj/item/device/flashlight/pen, + /obj/item/weapon/extinguisher/mini, + /obj/item/weapon/reagent_containers/hypospray, + /obj/item/device/sensor_device, + /obj/item/device/radio, + /obj/item/clothing/gloves/, + /obj/item/weapon/lazarus_injector, + /obj/item/weapon/bikehorn/rubberducky, + /obj/item/clothing/mask/surgical, + /obj/item/clothing/mask/breath, + /obj/item/clothing/mask/breath/medical, + /obj/item/weapon/surgical_drapes, //for true paramedics + /obj/item/weapon/scalpel, + /obj/item/weapon/circular_saw, + /obj/item/weapon/surgicaldrill, + /obj/item/weapon/retractor, + /obj/item/weapon/cautery, + /obj/item/weapon/hemostat, + /obj/item/device/geiger_counter, + /obj/item/clothing/neck/stethoscope, + /obj/item/weapon/stamp, + /obj/item/clothing/glasses, + /obj/item/weapon/wrench/medical, + /obj/item/clothing/mask/muzzle, + /obj/item/weapon/storage/bag/chemistry, + /obj/item/weapon/storage/bag/bio, + /obj/item/weapon/reagent_containers/blood, + /obj/item/weapon/tank/internals/emergency_oxygen + ) + + +/obj/item/weapon/storage/belt/security + name = "security belt" + desc = "Can hold security gear like handcuffs and flashes." + icon_state = "securitybelt" + item_state = "security"//Could likely use a better one. + storage_slots = 5 + max_w_class = 3 //Because the baton wouldn't fit otherwise. - Neerti + can_hold = list( + /obj/item/weapon/melee/baton, + /obj/item/weapon/melee/classic_baton, + /obj/item/weapon/grenade, + /obj/item/weapon/reagent_containers/spray/pepper, + /obj/item/weapon/restraints/handcuffs, + /obj/item/device/assembly/flash/handheld, + /obj/item/clothing/glasses, + /obj/item/ammo_casing/shotgun, + /obj/item/ammo_box, + /obj/item/weapon/reagent_containers/food/snacks/donut, + /obj/item/weapon/reagent_containers/food/snacks/donut/jelly, + /obj/item/weapon/kitchen/knife/combat, + /obj/item/device/flashlight/seclite, + /obj/item/weapon/melee/classic_baton/telescopic, + /obj/item/device/radio, + /obj/item/clothing/gloves/, + /obj/item/weapon/restraints/legcuffs/bola + ) + +/obj/item/weapon/storage/belt/security/full/New() + ..() + new /obj/item/weapon/reagent_containers/spray/pepper(src) + new /obj/item/weapon/restraints/handcuffs(src) + new /obj/item/weapon/grenade/flashbang(src) + new /obj/item/device/assembly/flash/handheld(src) + new /obj/item/weapon/melee/baton/loaded(src) + update_icon() + + +/obj/item/weapon/storage/belt/mining + name = "explorer's webbing" + desc = "A versatile chest rig, cherished by miners and hunters alike." + icon_state = "explorer1" + item_state = "explorer1" + storage_slots = 6 + w_class = 4 + max_w_class = 4 //Pickaxes are big. + max_combined_w_class = 20 //Not an issue with this whitelist, probably. + can_hold = list( + /obj/item/weapon/crowbar, + /obj/item/weapon/screwdriver, + /obj/item/weapon/weldingtool, + /obj/item/weapon/wirecutters, + /obj/item/weapon/wrench, + /obj/item/device/flashlight, + /obj/item/stack/cable_coil, + /obj/item/device/analyzer, + /obj/item/weapon/extinguisher/mini, + /obj/item/device/radio, + /obj/item/clothing/gloves, + /obj/item/weapon/resonator, + /obj/item/device/mining_scanner, + /obj/item/weapon/pickaxe, + /obj/item/stack/sheet/animalhide, + /obj/item/stack/sheet/sinew, + /obj/item/stack/sheet/bone, + /obj/item/weapon/lighter, + /obj/item/weapon/storage/fancy/cigarettes, + /obj/item/weapon/reagent_containers/food/drinks/bottle, + /obj/item/stack/medical, + /obj/item/weapon/kitchen/knife, + /obj/item/weapon/reagent_containers/hypospray, + /obj/item/device/gps, + /obj/item/weapon/storage/bag/ore, + /obj/item/weapon/survivalcapsule, + /obj/item/device/t_scanner/adv_mining_scanner, + /obj/item/weapon/reagent_containers/pill, + /obj/item/weapon/storage/pill_bottle, + /obj/item/weapon/ore, + /obj/item/weapon/reagent_containers/food/drinks, + /obj/item/organ/hivelord_core, + /obj/item/device/wormhole_jaunter, + /obj/item/weapon/storage/bag/plants, + + ) + + +/obj/item/weapon/storage/belt/mining/vendor + contents = newlist(/obj/item/weapon/survivalcapsule) + +/obj/item/weapon/storage/belt/mining/alt + icon_state = "explorer2" + item_state = "explorer2" + +/obj/item/weapon/storage/belt/mining/primitive + name = "hunter's belt" + desc = "A versatile belt, woven from sinew." + storage_slots = 5 + icon_state = "ebelt" + item_state = "ebelt" + +/obj/item/weapon/storage/belt/soulstone + name = "soul stone belt" + desc = "Designed for ease of access to the shards during a fight, as to not let a single enemy spirit slip away" + icon_state = "soulstonebelt" + item_state = "soulstonebelt" + storage_slots = 6 + can_hold = list( + /obj/item/device/soulstone + ) + +/obj/item/weapon/storage/belt/soulstone/full/New() + ..() + for(var/i in 1 to 6) + new /obj/item/device/soulstone(src) + +/obj/item/weapon/storage/belt/champion + name = "championship belt" + desc = "Proves to the world that you are the strongest!" + icon_state = "championbelt" + item_state = "champion" + materials = list(MAT_GOLD=400) + storage_slots = 1 + can_hold = list( + /obj/item/clothing/mask/luchador + ) + +/obj/item/weapon/storage/belt/military + name = "military belt" + desc = "A syndicate belt designed to be used by boarding parties. Its style is modeled after the hardsuits they wear." + icon_state = "militarybelt" + item_state = "military" + max_w_class = 2 + +/obj/item/weapon/storage/belt/military/army + name = "army belt" + desc = "A belt used by military forces." + icon_state = "grenadebeltold" + item_state = "security" + +/obj/item/weapon/storage/belt/military/assault + name = "assault belt" + desc = "A tactical assault belt." + icon_state = "assaultbelt" + item_state = "security" + storage_slots = 6 + +/obj/item/weapon/storage/belt/grenade + name = "grenadier belt" + desc = "A belt for holding grenades." + icon_state = "grenadebeltnew" + item_state = "security" + max_w_class = 4 + storage_slots = 30 + can_hold = list( + /obj/item/weapon/grenade, + /obj/item/weapon/screwdriver, + /obj/item/weapon/lighter, + /obj/item/device/multitool, + /obj/item/weapon/reagent_containers/food/drinks/bottle/molotov, + /obj/item/weapon/c4, + ) +/obj/item/weapon/storage/belt/grenade/full/New() + ..() + new /obj/item/weapon/grenade/flashbang(src) + new /obj/item/weapon/grenade/smokebomb(src) + new /obj/item/weapon/grenade/smokebomb(src) + new /obj/item/weapon/grenade/smokebomb(src) + new /obj/item/weapon/grenade/smokebomb(src) + new /obj/item/weapon/grenade/empgrenade(src) + new /obj/item/weapon/grenade/empgrenade(src) + new /obj/item/weapon/grenade/syndieminibomb/concussion/frag(src) + new /obj/item/weapon/grenade/syndieminibomb/concussion/frag(src) + new /obj/item/weapon/grenade/syndieminibomb/concussion/frag(src) + new /obj/item/weapon/grenade/syndieminibomb/concussion/frag(src) + new /obj/item/weapon/grenade/syndieminibomb/concussion/frag(src) + new /obj/item/weapon/grenade/syndieminibomb/concussion/frag(src) + new /obj/item/weapon/grenade/syndieminibomb/concussion/frag(src) + new /obj/item/weapon/grenade/syndieminibomb/concussion/frag(src) + new /obj/item/weapon/grenade/syndieminibomb/concussion/frag(src) + new /obj/item/weapon/grenade/syndieminibomb/concussion/frag(src) + new /obj/item/weapon/grenade/gluon(src) + new /obj/item/weapon/grenade/gluon(src) + new /obj/item/weapon/grenade/gluon(src) + new /obj/item/weapon/grenade/gluon(src) + new /obj/item/weapon/grenade/chem_grenade/incendiary(src) + new /obj/item/weapon/grenade/chem_grenade/incendiary(src) + new /obj/item/weapon/grenade/chem_grenade/facid(src) + new /obj/item/weapon/grenade/syndieminibomb(src) + new /obj/item/weapon/grenade/syndieminibomb(src) + new /obj/item/weapon/screwdriver(src) + new /obj/item/device/multitool(src) + +/obj/item/weapon/storage/belt/wands + name = "wand belt" + desc = "A belt designed to hold various rods of power. A veritable fanny pack of exotic magic." + icon_state = "soulstonebelt" + item_state = "soulstonebelt" + storage_slots = 6 + can_hold = list( + /obj/item/weapon/gun/magic/wand + ) + +/obj/item/weapon/storage/belt/wands/full/New() + ..() + new /obj/item/weapon/gun/magic/wand/death(src) + new /obj/item/weapon/gun/magic/wand/resurrection(src) + new /obj/item/weapon/gun/magic/wand/polymorph(src) + new /obj/item/weapon/gun/magic/wand/teleport(src) + new /obj/item/weapon/gun/magic/wand/door(src) + new /obj/item/weapon/gun/magic/wand/fireball(src) + + for(var/obj/item/weapon/gun/magic/wand/W in contents) //All wands in this pack come in the best possible condition + W.max_charges = initial(W.max_charges) + W.charges = W.max_charges + +/obj/item/weapon/storage/belt/janitor + name = "janibelt" + desc = "A belt used to hold most janitorial supplies." + icon_state = "janibelt" + item_state = "janibelt" + storage_slots = 6 + max_w_class = 4 // Set to this so the light replacer can fit. + can_hold = list( + /obj/item/weapon/grenade/chem_grenade, + /obj/item/device/lightreplacer, + /obj/item/device/flashlight, + /obj/item/weapon/reagent_containers/spray, + /obj/item/weapon/soap, + /obj/item/weapon/holosign_creator, + /obj/item/key/janitor, + /obj/item/clothing/gloves/ + ) + +/obj/item/weapon/storage/belt/bandolier + name = "bandolier" + desc = "A bandolier for holding shotgun ammunition." + icon_state = "bandolier" + item_state = "bandolier" + storage_slots = 18 + can_hold = list( + /obj/item/ammo_casing/shotgun + ) + +/obj/item/weapon/storage/belt/holster + name = "shoulder holster" + desc = "A holster to carry a handgun and ammo. WARNING: Badasses only." + icon_state = "holster" + item_state = "holster" + storage_slots = 3 + max_w_class = 3 + can_hold = list( + /obj/item/weapon/gun/projectile/automatic/pistol, + /obj/item/weapon/gun/projectile/revolver, + /obj/item/ammo_box, + ) + alternate_worn_layer = UNDER_SUIT_LAYER + +/obj/item/weapon/storage/belt/fannypack + name = "fannypack" + desc = "A dorky fannypack for keeping small items in." + icon_state = "fannypack_leather" + item_state = "fannypack_leather" + storage_slots = 3 + max_w_class = 2 + +/obj/item/weapon/storage/belt/fannypack/black + name = "black fannypack" + icon_state = "fannypack_black" + item_state = "fannypack_black" + +/obj/item/weapon/storage/belt/fannypack/red + name = "red fannypack" + icon_state = "fannypack_red" + item_state = "fannypack_red" + +/obj/item/weapon/storage/belt/fannypack/purple + name = "purple fannypack" + icon_state = "fannypack_purple" + item_state = "fannypack_purple" + +/obj/item/weapon/storage/belt/fannypack/blue + name = "blue fannypack" + icon_state = "fannypack_blue" + item_state = "fannypack_blue" + +/obj/item/weapon/storage/belt/fannypack/orange + name = "orange fannypack" + icon_state = "fannypack_orange" + item_state = "fannypack_orange" + +/obj/item/weapon/storage/belt/fannypack/white + name = "white fannypack" + icon_state = "fannypack_white" + item_state = "fannypack_white" + +/obj/item/weapon/storage/belt/fannypack/green + name = "green fannypack" + icon_state = "fannypack_green" + item_state = "fannypack_green" + +/obj/item/weapon/storage/belt/fannypack/pink + name = "pink fannypack" + icon_state = "fannypack_pink" + item_state = "fannypack_pink" + +/obj/item/weapon/storage/belt/fannypack/cyan + name = "cyan fannypack" + icon_state = "fannypack_cyan" + item_state = "fannypack_cyan" + +/obj/item/weapon/storage/belt/fannypack/yellow + name = "yellow fannypack" + icon_state = "fannypack_yellow" + item_state = "fannypack_yellow" + +/obj/item/weapon/storage/belt/sabre + name = "sabre sheath" + desc = "An ornate sheath designed to hold an officer's blade." + icon_state = "sheath" + item_state = "sheath" + storage_slots = 1 + w_class = 4 + max_w_class = 4 + can_hold = list( + /obj/item/weapon/melee/sabre + ) + +/obj/item/weapon/storage/belt/sabre/examine(mob/user) + ..() + if(contents.len) + user << "Alt-click it to quickly draw the blade." + +/obj/item/weapon/storage/belt/sabre/AltClick(mob/user) + if(!ishuman(user) || !user.canUseTopic(src, be_close=TRUE)) + return + if(contents.len) + var/obj/item/I = contents[1] + user.visible_message("[user] takes [I] out of [src].", "You take [I] out of [src].",\ + ) + user.put_in_hands(I) + update_icon() + else + user << "[src] is empty." + +/obj/item/weapon/storage/belt/sabre/update_icon() + icon_state = "sheath" + item_state = "sheath" + if(contents.len) + icon_state += "-sabre" + item_state += "-sabre" + if(loc && isliving(loc)) + var/mob/living/L = loc + L.regenerate_icons() + ..() + + +/obj/item/weapon/storage/belt/sabre/New() + ..() + new /obj/item/weapon/melee/sabre(src) + update_icon() diff --git a/code/game/objects/items/weapons/storage/book.dm b/code/game/objects/items/weapons/storage/book.dm new file mode 100644 index 0000000..927f7a7 --- /dev/null +++ b/code/game/objects/items/weapons/storage/book.dm @@ -0,0 +1,209 @@ +/obj/item/weapon/storage/book + name = "hollowed book" + desc = "I guess someone didn't like it." + icon = 'icons/obj/library.dmi' + icon_state ="book" + throw_speed = 2 + throw_range = 5 + w_class = 3 + resistance_flags = FLAMMABLE + var/title = "book" +/obj/item/weapon/storage/book/attack_self(mob/user) + user << "The pages of [title] have been cut out!" + +/obj/item/weapon/storage/book/bible + name = "bible" + desc = "Apply to head repeatedly." + icon = 'icons/obj/storage.dmi' + icon_state ="bible" + var/mob/affecting = null + var/deity_name = "Christ" + +/obj/item/weapon/storage/book/bible/suicide_act(mob/user) + user.visible_message("[user] is offering [user.p_them()]self to [deity_name]! It looks like [user.p_theyre()] trying to commit suicide!") + return (BRUTELOSS) + +/obj/item/weapon/storage/book/bible/booze + name = "bible" + desc = "To be applied to the head repeatedly." + icon_state ="bible" + +/obj/item/weapon/storage/book/bible/booze/New() + ..() + new /obj/item/weapon/reagent_containers/food/drinks/beer(src) + new /obj/item/weapon/reagent_containers/food/drinks/beer(src) + new /obj/item/stack/spacecash(src) + new /obj/item/stack/spacecash(src) + new /obj/item/stack/spacecash(src) + +//Pretty bible names +var/global/list/biblenames = list("Bible", "Quran", "Scrapbook", "Burning Bible", "Clown Bible", "Banana Bible", "Creeper Bible", "White Bible", "Holy Light", "The God Delusion", "Tome", "The King in Yellow", "Ithaqua", "Scientology", "Melted Bible", "Necronomicon") + +//Bible iconstates +var/global/list/biblestates = list("bible", "koran", "scrapbook", "burning", "honk1", "honk2", "creeper", "white", "holylight", "atheist", "tome", "kingyellow", "ithaqua", "scientology", "melted", "necronomicon") + +//Bible itemstates +var/global/list/bibleitemstates = list("bible", "koran", "scrapbook", "bible", "bible", "bible", "syringe_kit", "syringe_kit", "syringe_kit", "syringe_kit", "syringe_kit", "kingyellow", "ithaqua", "scientology", "melted", "necronomicon") + + + +/obj/item/weapon/storage/book/bible/attack_self(mob/living/carbon/human/H) + if(!istype(H)) + return + if(ticker && !ticker.Bible_icon_state && H.job == "Chaplain") + //Open bible selection + var/dat = "Pick Bible Style

          Pick a bible style

          " + + var/i + for(i = 1, i < biblestates.len, i++) + var/icon/bibleicon = icon('icons/obj/storage.dmi', biblestates[i]) + + var/nicename = biblenames[i] + H << browse_rsc(bibleicon, nicename) + dat += {""} + + dat += "
          [nicename]
          " + + H << browse(dat, "window=editicon;can_close=0;can_minimize=0;size=250x650") + +/obj/item/weapon/storage/book/bible/proc/setupbiblespecifics(obj/item/weapon/storage/book/bible/B, mob/living/carbon/human/H) + switch(B.icon_state) + if("honk1","honk2") + new /obj/item/weapon/bikehorn(B) + H.dna.add_mutation(CLOWNMUT) + H.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/clown_hat(H), slot_wear_mask) + + if("bible") + for(var/area/chapel/main/A in world) + for(var/turf/T in A.contents) + if(T.icon_state == "carpetsymbol") + T.setDir(2) + if("koran") + for(var/area/chapel/main/A in world) + for(var/turf/T in A.contents) + if(T.icon_state == "carpetsymbol") + T.setDir(4) + if("scientology") + for(var/area/chapel/main/A in world) + for(var/turf/T in A.contents) + if(T.icon_state == "carpetsymbol") + T.setDir(8) + if("atheist") + for(var/area/chapel/main/A in world) + for(var/turf/T in A.contents) + if(T.icon_state == "carpetsymbol") + T.setDir(10) + +/obj/item/weapon/storage/book/bible/Topic(href, href_list) + if(href_list["seticon"] && ticker && !ticker.Bible_icon_state) + var/iconi = text2num(href_list["seticon"]) + + var/biblename = biblenames[iconi] + var/obj/item/weapon/storage/book/bible/B = locate(href_list["src"]) + + B.icon_state = biblestates[iconi] + B.item_state = bibleitemstates[iconi] + + //Set biblespecific chapels + setupbiblespecifics(B, usr) + + if(ticker) + ticker.Bible_icon_state = B.icon_state + ticker.Bible_item_state = B.item_state + feedback_set_details("religion_book","[biblename]") + + usr << browse(null, "window=editicon") // Close window + +/obj/item/weapon/storage/book/bible/proc/bless(mob/living/carbon/human/H, mob/living/user) + for(var/X in H.bodyparts) + var/obj/item/bodypart/BP = X + if(BP.status == BODYPART_ROBOTIC) + user << "[src.deity_name] refuses to heal this metallic taint!" + return 0 + + var/heal_amt = 10 + var/list/hurt_limbs = H.get_damaged_bodyparts(1, 1) + + if(hurt_limbs.len) + for(var/X in hurt_limbs) + var/obj/item/bodypart/affecting = X + if(affecting.heal_damage(heal_amt, heal_amt)) + H.update_damage_overlays() + H.visible_message("[user] heals [H] with the power of [deity_name]!") + H << "May the power of [deity_name] compel you to be healed!" + playsound(src.loc, "punch", 25, 1, -1) + return 1 + + + +/obj/item/weapon/storage/book/bible/attack(mob/living/M, mob/living/carbon/human/user) + + var/chaplain = 0 + if(user.mind && (user.mind.assigned_role == "Chaplain")) + chaplain = 1 + + + + if (!user.IsAdvancedToolUser()) + user << "You don't have the dexterity to do this!" + return + if(!chaplain) + user << "The book sizzles in your hands." + user.take_bodypart_damage(0,10) + return + + if (user.disabilities & CLUMSY && prob(50)) + user << "[src] slips out of your hand and hits your head." + user.take_bodypart_damage(10) + user.Paralyse(20) + return + + var/smack = 1 + + if (M.stat != DEAD) + if(chaplain && user == M) + user << "You can't heal yourself!" + return + + if(ishuman(M) && prob(60) && bless(M, user)) + smack = 0 + else if(iscarbon(M)) + var/mob/living/carbon/C = M + if(!istype(C.head, /obj/item/clothing/head/helmet)) + C.adjustBrainLoss(10) + C << "You feel dumber." + + if(smack) + M.visible_message("[user] beats [M] over the head with [src]!", \ + "[user] beats [M] over the head with [src]!") + playsound(src.loc, "punch", 25, 1, -1) + add_logs(user, M, "attacked", src) + + else + M.visible_message("[user] smacks [M]'s lifeless corpse with [src].") + playsound(src.loc, "punch", 25, 1, -1) + + +/obj/item/weapon/storage/book/bible/afterattack(atom/A, mob/user, proximity) + if(!proximity) + return + if(isfloorturf(A)) + user << "You hit the floor with the bible." + if(user.mind && (user.mind.assigned_role == "Chaplain")) + for(var/obj/effect/rune/R in orange(2,user)) + R.invisibility = 0 + if(user.mind && (user.mind.assigned_role == "Chaplain")) + if(A.reagents && A.reagents.has_reagent("water")) //blesses all the water in the holder + user << "You bless [A]." + var/water2holy = A.reagents.get_reagent_amount("water") + A.reagents.del_reagent("water") + A.reagents.add_reagent("holywater",water2holy) + if(A.reagents && A.reagents.has_reagent("unholywater")) //yeah yeah, copy pasted code - sue me + user << "You purify [A]." + var/unholy2clean = A.reagents.get_reagent_amount("unholywater") + A.reagents.del_reagent("unholywater") + A.reagents.add_reagent("holywater",unholy2clean) + +/obj/item/weapon/storage/book/bible/attackby(obj/item/weapon/W, mob/user, params) + playsound(src.loc, "rustle", 50, 1, -5) + return ..() diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm new file mode 100644 index 0000000..24c2e10 --- /dev/null +++ b/code/game/objects/items/weapons/storage/boxes.dm @@ -0,0 +1,892 @@ +/* + * Everything derived from the common cardboard box. + * Basically everything except the original is a kit (starts full). + * + * Contains: + * Empty box, starter boxes (survival/engineer), + * Latex glove and sterile mask boxes, + * Syringe, beaker, dna injector boxes, + * Blanks, flashbangs, and EMP grenade boxes, + * Tracking and chemical implant boxes, + * Prescription glasses and drinking glass boxes, + * Condiment bottle and silly cup boxes, + * Donkpocket and monkeycube boxes, + * ID and security PDA cart boxes, + * Handcuff, mousetrap, and pillbottle boxes, + * Snap-pops and matchboxes, + * Replacement light boxes. + * Action Figure Boxes + * Various paper bags. + * + * For syndicate call-ins see uplink_kits.dm + */ + +/obj/item/weapon/storage/box + name = "box" + desc = "It's just an ordinary box." + icon_state = "box" + item_state = "syringe_kit" + resistance_flags = FLAMMABLE + var/foldable = /obj/item/stack/sheet/cardboard + + +/obj/item/weapon/storage/box/attack_self(mob/user) + ..() + + if(!foldable) + return + if(contents.len) + user << "You can't fold this box with items still inside!" + return + if(!ispath(foldable)) + return + + //Close any open UI windows first + close_all() + + user << "You fold [src] flat." + var/obj/item/I = new foldable(get_turf(src)) + user.drop_item() + user.put_in_hands(I) + user.update_inv_hands() + qdel(src) + +/obj/item/weapon/storage/box/attackby(obj/item/W, mob/user, params) + if(istype(W, /obj/item/stack/packageWrap)) + return 0 + return ..() + + +// Ordinary survival box +/obj/item/weapon/storage/box/survival/New() + ..() + new /obj/item/clothing/mask/breath(src) + new /obj/item/weapon/tank/internals/emergency_oxygen(src) + new /obj/item/weapon/reagent_containers/hypospray/medipen(src) + +/obj/item/weapon/storage/box/survival/radio/New() + ..() + new /obj/item/device/radio/off(src) + +/obj/item/weapon/storage/box/survival_mining/New() + ..() + new /obj/item/clothing/mask/gas/explorer(src) + new /obj/item/weapon/tank/internals/emergency_oxygen/engi(src) + new /obj/item/weapon/crowbar/red(src) + new /obj/item/weapon/reagent_containers/hypospray/medipen(src) + + +// Engineer survival box +/obj/item/weapon/storage/box/engineer/New() + ..() + new /obj/item/clothing/mask/breath(src) + new /obj/item/weapon/tank/internals/emergency_oxygen/engi(src) + new /obj/item/weapon/reagent_containers/hypospray/medipen(src) + +/obj/item/weapon/storage/box/engineer/radio/New() + ..() + new /obj/item/device/radio/off(src) + +// Syndie survival box +/obj/item/weapon/storage/box/syndie/New() + ..() + new /obj/item/clothing/mask/gas/syndicate(src) + new /obj/item/weapon/tank/internals/emergency_oxygen/engi(src) + +// Security survival box +/obj/item/weapon/storage/box/security/New() + ..() + new /obj/item/clothing/mask/gas/sechailer(src) + new /obj/item/weapon/tank/internals/emergency_oxygen(src) + new /obj/item/weapon/reagent_containers/hypospray/medipen(src) + +/obj/item/weapon/storage/box/security/radio/New() + ..() + new /obj/item/device/radio/off(src) + +/obj/item/weapon/storage/box/gloves + name = "box of latex gloves" + desc = "Contains sterile latex gloves." + icon_state = "latex" + +/obj/item/weapon/storage/box/gloves/New() + ..() + for(var/i in 1 to 7) + new /obj/item/clothing/gloves/color/latex(src) + +/obj/item/weapon/storage/box/masks + name = "box of sterile masks" + desc = "This box contains sterile medical masks." + icon_state = "sterile" + +/obj/item/weapon/storage/box/masks/New() + ..() + for(var/i in 1 to 7) + new /obj/item/clothing/mask/surgical(src) + +/obj/item/weapon/storage/box/syringes + name = "box of syringes" + desc = "A box full of syringes." + desc = "A biohazard alert warning is printed on the box." + icon_state = "syringe" + +/obj/item/weapon/storage/box/syringes/New() + ..() + for(var/i in 1 to 7) + new /obj/item/weapon/reagent_containers/syringe( src ) + +/obj/item/weapon/storage/box/medipens + name = "box of medipens" + desc = "A box full of epinephrine MediPens." + icon_state = "syringe" + +/obj/item/weapon/storage/box/medipens/New() + ..() + for(var/i in 1 to 7) + new /obj/item/weapon/reagent_containers/hypospray/medipen( src ) + +/obj/item/weapon/storage/box/medipens/utility + name = "stimpack value kit" + desc = "A box with several stimpack medipens for the economical miner." + icon_state = "syringe" + +/obj/item/weapon/storage/box/medipens/utility/New() + ..() + for(var/i in 1 to 5) + new /obj/item/weapon/reagent_containers/hypospray/medipen/stimpack(src) + +/obj/item/weapon/storage/box/beakers + name = "box of beakers" + icon_state = "beaker" + +/obj/item/weapon/storage/box/beakers/New() + ..() + for(var/i in 1 to 7) + new /obj/item/weapon/reagent_containers/glass/beaker( src ) + +/obj/item/weapon/storage/box/injectors + name = "box of DNA injectors" + desc = "This box contains injectors, it seems." + +/obj/item/weapon/storage/box/injectors/New() + ..() + for(var/i in 1 to 3) + new /obj/item/weapon/dnainjector/h2m(src) + for(var/i in 1 to 3) + new /obj/item/weapon/dnainjector/m2h(src) + +/obj/item/weapon/storage/box/flashbangs + name = "box of flashbangs (WARNING)" + desc = "WARNING: These devices are extremely dangerous and can cause blindness or deafness in repeated use." + icon_state = "flashbang" + +/obj/item/weapon/storage/box/flashbangs/New() + ..() + for(var/i in 1 to 7) + new /obj/item/weapon/grenade/flashbang(src) + +/obj/item/weapon/storage/box/flashes + name = "box of flashbulbs" + desc = "WARNING: Flashes can cause serious eye damage, protective eyewear is required." + icon_state = "flashbang" + +/obj/item/weapon/storage/box/flashes/New() + ..() + for(var/i in 1 to 6) + new /obj/item/device/assembly/flash/handheld(src) + +/obj/item/weapon/storage/box/wall_flash + name = "wall-mounted flash kit" + desc = "This box contains everything necessary to build a wall-mounted flash. WARNING: Flashes can cause serious eye damage, protective eyewear is required." + icon_state = "flashbang" + +/obj/item/weapon/storage/box/wall_flash/New() + ..() + var/id = rand(1000, 9999) + + new /obj/item/wallframe/button(src) + new /obj/item/weapon/electronics/airlock(src) + var/obj/item/device/assembly/control/flasher/remote = new(src) + remote.id = id + var/obj/item/wallframe/flasher/frame = new(src) + frame.id = id + new /obj/item/device/assembly/flash/handheld(src) + new /obj/item/weapon/screwdriver(src) + + +/obj/item/weapon/storage/box/teargas + name = "box of tear gas grenades (WARNING)" + desc = "WARNING: These devices are extremely dangerous and can cause blindness and skin irritation." + icon_state = "flashbang" + +/obj/item/weapon/storage/box/teargas/New() + ..() + for(var/i in 1 to 7) + new /obj/item/weapon/grenade/chem_grenade/teargas(src) + +/obj/item/weapon/storage/box/emps + name = "box of emp grenades" + desc = "A box with 5 emp grenades." + icon_state = "flashbang" + +/obj/item/weapon/storage/box/emps/New() + ..() + for(var/i in 1 to 5) + new /obj/item/weapon/grenade/empgrenade(src) + +/obj/item/weapon/storage/box/trackimp + name = "boxed tracking implant kit" + desc = "Box full of scum-bag tracking utensils." + icon_state = "implant" + +/obj/item/weapon/storage/box/trackimp/New() + ..() + for(var/i in 1 to 4) + new /obj/item/weapon/implantcase/tracking(src) + new /obj/item/weapon/implanter(src) + new /obj/item/weapon/implantpad(src) + new /obj/item/weapon/locator(src) + +/obj/item/weapon/storage/box/minertracker + name = "boxed tracking implant kit" + desc = "For finding those who have died on the accursed lavaworld." + icon_state = "implant" + +/obj/item/weapon/storage/box/minertracker/New() + ..() + for(var/i in 1 to 3) + new /obj/item/weapon/implantcase/tracking(src) + new /obj/item/weapon/implanter(src) + new /obj/item/weapon/implantpad(src) + new /obj/item/weapon/locator(src) + +/obj/item/weapon/storage/box/chemimp + name = "boxed chemical implant kit" + desc = "Box of stuff used to implant chemicals." + icon_state = "implant" + +/obj/item/weapon/storage/box/chemimp/New() + ..() + for(var/i in 1 to 5) + new /obj/item/weapon/implantcase/chem(src) + new /obj/item/weapon/implanter(src) + new /obj/item/weapon/implantpad(src) + +/obj/item/weapon/storage/box/exileimp + name = "boxed exile implant kit" + desc = "Box of exile implants. It has a picture of a clown being booted through the Gateway." + icon_state = "implant" + +/obj/item/weapon/storage/box/exileimp/New() + ..() + for(var/i in 1 to 5) + new /obj/item/weapon/implantcase/exile(src) + new /obj/item/weapon/implanter(src) + +/obj/item/weapon/storage/box/rxglasses + name = "box of prescription glasses" + desc = "This box contains nerd glasses." + icon_state = "glasses" + +/obj/item/weapon/storage/box/rxglasses/New() + ..() + for(var/i in 1 to 7) + new /obj/item/clothing/glasses/regular(src) + +/obj/item/weapon/storage/box/drinkingglasses + name = "box of drinking glasses" + desc = "It has a picture of drinking glasses on it." + +/obj/item/weapon/storage/box/drinkingglasses/New() + ..() + for(var/i in 1 to 6) + new /obj/item/weapon/reagent_containers/food/drinks/drinkingglass(src) + +/obj/item/weapon/storage/box/condimentbottles + name = "box of condiment bottles" + desc = "It has a large ketchup smear on it." + +/obj/item/weapon/storage/box/condimentbottles/New() + ..() + for(var/i in 1 to 6) + new /obj/item/weapon/reagent_containers/food/condiment(src) + +/obj/item/weapon/storage/box/cups + name = "box of paper cups" + desc = "It has pictures of paper cups on the front." + +/obj/item/weapon/storage/box/cups/New() + ..() + for(var/i in 1 to 7) + new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src ) + +/obj/item/weapon/storage/box/donkpockets + name = "box of donk-pockets" + desc = "Instructions: Heat in microwave. Product will cool if not eaten within seven minutes." + icon_state = "donk_kit" + +/obj/item/weapon/storage/box/donkpockets/New() + ..() + for(var/i in 1 to 6) + new /obj/item/weapon/reagent_containers/food/snacks/donkpocket(src) + +/obj/item/weapon/storage/box/monkeycubes + name = "monkey cube box" + desc = "Drymate brand monkey cubes. Just add water!" + icon = 'icons/obj/food/food.dmi' + icon_state = "monkeycubebox" + storage_slots = 7 + can_hold = list(/obj/item/weapon/reagent_containers/food/snacks/monkeycube) + +/obj/item/weapon/storage/box/monkeycubes/New() + ..() + for(var/i = 1; i <= 5; i++) + new /obj/item/weapon/reagent_containers/food/snacks/monkeycube(src) + +/obj/item/weapon/storage/box/ids + name = "box of spare IDs" + desc = "Has so many empty IDs." + icon_state = "id" + +/obj/item/weapon/storage/box/ids/New() + ..() + for(var/i in 1 to 7) + new /obj/item/weapon/card/id(src) + +/obj/item/weapon/storage/box/silver_ids + name = "box of spare silver IDs" + desc = "Shiny IDs for important people." + icon_state = "id" + +/obj/item/weapon/storage/box/silver_ids/New() + ..() + for(var/i in 1 to 7) + new /obj/item/weapon/card/id/silver(src) + +/obj/item/weapon/storage/box/prisoner + name = "box of prisoner IDs" + desc = "Take away their last shred of dignity, their name." + icon_state = "id" + +/obj/item/weapon/storage/box/prisoner/New() + ..() + new /obj/item/weapon/card/id/prisoner/one(src) + new /obj/item/weapon/card/id/prisoner/two(src) + new /obj/item/weapon/card/id/prisoner/three(src) + new /obj/item/weapon/card/id/prisoner/four(src) + new /obj/item/weapon/card/id/prisoner/five(src) + new /obj/item/weapon/card/id/prisoner/six(src) + new /obj/item/weapon/card/id/prisoner/seven(src) + +/obj/item/weapon/storage/box/seccarts + name = "box of PDA security cartridges" + desc = "A box full of PDA cartridges used by Security." + icon_state = "pda" + +/obj/item/weapon/storage/box/seccarts/New() + ..() + new /obj/item/weapon/cartridge/detective(src) + for(var/i in 1 to 6) + new /obj/item/weapon/cartridge/security(src) + +/obj/item/weapon/storage/box/firingpins + name = "box of standard firing pins" + desc = "A box full of standard firing pins, to allow newly-developed firearms to operate." + icon_state = "id" + +/obj/item/weapon/storage/box/firingpins/New() + ..() + for(var/i in 1 to 5) + new /obj/item/device/firing_pin(src) + +/obj/item/weapon/storage/box/lasertagpins + name = "box of laser tag firing pins" + desc = "A box full of laser tag firing pins, to allow newly-developed firearms to require wearing brightly coloured plastic armor before being able to be used." + icon_state = "id" + +/obj/item/weapon/storage/box/lasertagpins/New() + ..() + for(var/i in 1 to 3) + new /obj/item/device/firing_pin/tag/red(src) + new /obj/item/device/firing_pin/tag/blue(src) + +/obj/item/weapon/storage/box/handcuffs + name = "box of spare handcuffs" + desc = "A box full of handcuffs." + icon_state = "handcuff" + +/obj/item/weapon/storage/box/handcuffs/New() + ..() + for(var/i in 1 to 7) + new /obj/item/weapon/restraints/handcuffs(src) + +/obj/item/weapon/storage/box/zipties + name = "box of spare zipties" + desc = "A box full of zipties." + icon_state = "handcuff" + +/obj/item/weapon/storage/box/zipties/New() + ..() + for(var/i in 1 to 7) + new /obj/item/weapon/restraints/handcuffs/cable/zipties(src) + +/obj/item/weapon/storage/box/alienhandcuffs + name = "box of spare handcuffs" + desc = "A box full of handcuffs." + icon_state = "alienboxCuffs" + +/obj/item/weapon/storage/box/alienhandcuffs/New() + ..() + for(var/i in 1 to 7) + new /obj/item/weapon/restraints/handcuffs/alien(src) + +/obj/item/weapon/storage/box/fakesyndiesuit + name = "boxed space suit and helmet" + desc = "A sleek, sturdy box used to hold replica spacesuits." + icon_state = "box_of_doom" + +/obj/item/weapon/storage/box/fakesyndiesuit/New() + ..() + new /obj/item/clothing/head/syndicatefake(src) + new /obj/item/clothing/suit/syndicatefake(src) + +/obj/item/weapon/storage/box/mousetraps + name = "box of Pest-B-Gon mousetraps" + desc = "Keep out of reach of children." + icon_state = "mousetraps" + +/obj/item/weapon/storage/box/mousetraps/New() + ..() + for(var/i in 1 to 6) + new /obj/item/device/assembly/mousetrap( src ) + +/obj/item/weapon/storage/box/pillbottles + name = "box of pill bottles" + desc = "It has pictures of pill bottles on its front." + icon_state = "pillbox" + +/obj/item/weapon/storage/box/pillbottles/New() + ..() + for(var/i in 1 to 7) + new /obj/item/weapon/storage/pill_bottle( src ) + +/obj/item/weapon/storage/box/snappops + name = "snap pop box" + desc = "Eight wrappers of fun! Ages 8 and up. Not suitable for children." + icon = 'icons/obj/toy.dmi' + icon_state = "spbox" + storage_slots = 8 + can_hold = list(/obj/item/toy/snappop) + +/obj/item/weapon/storage/box/snappops/New() + ..() + for(var/i=1; i <= storage_slots; i++) + new /obj/item/toy/snappop(src) + +/obj/item/weapon/storage/box/matches + name = "matchbox" + desc = "A small box of Almost But Not Quite Plasma Premium Matches." + icon = 'icons/obj/cigarettes.dmi' + icon_state = "matchbox" + item_state = "zippo" + storage_slots = 10 + w_class = 1 + slot_flags = SLOT_BELT + can_hold = list(/obj/item/weapon/match) + +/obj/item/weapon/storage/box/matches/New() + ..() + for(var/i=1; i <= storage_slots; i++) + new /obj/item/weapon/match(src) + +/obj/item/weapon/storage/box/matches/attackby(obj/item/weapon/match/W as obj, mob/user as mob, params) + if(istype(W, /obj/item/weapon/match)) + if(W.lit) + return + if(prob(25))//No more instant 1 strike matches. + user.visible_message("[user] strikes \the [src] with the match and it lights!") + playsound(src, 'sound/items/matchstick_lit.ogg', 40, 1, -1) + W.matchignite() + if(prob(20))//Too much? + user.visible_message("[user] strikes \the [src] too hard and breaks the match!") + W.lit = TRUE + W.matchburnout() + else + user.visible_message("[user] strikes \the [src] with the match.") + playsound(src, 'sound/items/matchstick_hit.ogg', 40, 1, -1) + +/obj/item/weapon/storage/box/lights + name = "box of replacement bulbs" + icon = 'icons/obj/storage.dmi' + icon_state = "light" + desc = "This box is shaped on the inside so that only light tubes and bulbs fit." + item_state = "syringe_kit" + foldable = /obj/item/stack/sheet/cardboard //BubbleWrap + storage_slots=21 + can_hold = list(/obj/item/weapon/light/tube, /obj/item/weapon/light/bulb) + max_combined_w_class = 21 + use_to_pickup = 1 // for picking up broken bulbs, not that most people will try + +/obj/item/weapon/storage/box/lights/bulbs/New() + ..() + for(var/i = 0; i < 21; i++) + new /obj/item/weapon/light/bulb(src) + +/obj/item/weapon/storage/box/lights/tubes + name = "box of replacement tubes" + icon_state = "lighttube" + +/obj/item/weapon/storage/box/lights/tubes/New() + ..() + for(var/i = 0; i < 21; i++) + new /obj/item/weapon/light/tube(src) + +/obj/item/weapon/storage/box/lights/mixed + name = "box of replacement lights" + icon_state = "lightmixed" + +/obj/item/weapon/storage/box/lights/mixed/New() + ..() + for(var/i = 0; i < 14; i++) + new /obj/item/weapon/light/tube(src) + for(var/i = 0; i < 7; i++) + new /obj/item/weapon/light/bulb(src) + + +/obj/item/weapon/storage/box/deputy + name = "box of deputy armbands" + desc = "To be issued to those authorized to act as deputy of security." + +/obj/item/weapon/storage/box/deputy/New() + ..() + for(var/i in 1 to 7) + new /obj/item/clothing/tie/armband/deputy(src) + +/obj/item/weapon/storage/box/metalfoam + name = "box of metal foam grenades" + desc = "To be used to rapidly seal hull breaches." + icon_state = "flashbang" + +/obj/item/weapon/storage/box/metalfoam/New() + ..() + for(var/i in 1 to 7) + new /obj/item/weapon/grenade/chem_grenade/metalfoam(src) + +/obj/item/weapon/storage/box/hug + name = "box of hugs" + desc = "A special box for sensitive people." + icon_state = "hugbox" + foldable = null + +/obj/item/weapon/storage/box/hug/suicide_act(mob/user) + user.visible_message("[user] clamps the box of hugs on [user.p_their()] jugular! Guess it wasn't such a hugbox after all..") + return (BRUTELOSS) + +/obj/item/weapon/storage/box/hug/attack_self(mob/user) + ..() + user.changeNext_move(CLICK_CD_MELEE) + playsound(loc, "rustle", 50, 1, -5) + user.visible_message("[user] hugs \the [src].","You hug \the [src].") + return + +/obj/item/weapon/storage/box/hug/medical/New() + ..() + new /obj/item/stack/medical/bruise_pack(src) + new /obj/item/stack/medical/ointment(src) + new /obj/item/weapon/reagent_containers/hypospray/medipen(src) + +/obj/item/ammo_casing/shotgun/rubbershot + +/obj/item/weapon/storage/box/rubbershot + name = "box of rubber shots" + desc = "A box full of rubber shots, designed for riot shotguns." + icon_state = "rubbershot_box" + +/obj/item/weapon/storage/box/rubbershot/New() + ..() + for(var/i in 1 to 7) + new /obj/item/ammo_casing/shotgun/rubbershot(src) + +/obj/item/weapon/storage/box/lethalshot + name = "box of lethal shotgun shots" + desc = "A box full of lethal shots, designed for riot shotguns." + icon_state = "lethalshot_box" + +/obj/item/weapon/storage/box/lethalshot/New() + ..() + new /obj/item/ammo_casing/shotgun/buckshot(src) + new /obj/item/ammo_casing/shotgun/buckshot(src) + new /obj/item/ammo_casing/shotgun/buckshot(src) + new /obj/item/ammo_casing/shotgun/buckshot(src) + new /obj/item/ammo_casing/shotgun/buckshot(src) + new /obj/item/ammo_casing/shotgun/buckshot(src) + new /obj/item/ammo_casing/shotgun/buckshot(src) + +/obj/item/weapon/storage/box/beanbag + name = "box of beanbags" + desc = "A box full of beanbag shells." + icon_state = "rubbershot_box" + +/obj/item/weapon/storage/box/beanbag/New() + ..() + new /obj/item/ammo_casing/shotgun/beanbag(src) + new /obj/item/ammo_casing/shotgun/beanbag(src) + new /obj/item/ammo_casing/shotgun/beanbag(src) + new /obj/item/ammo_casing/shotgun/beanbag(src) + new /obj/item/ammo_casing/shotgun/beanbag(src) + new /obj/item/ammo_casing/shotgun/beanbag(src) + + +/obj/item/weapon/storage/box/actionfigure + name = "box of action figures" + desc = "The latest set of collectable action figures." + icon_state = "box" + +/obj/item/weapon/storage/box/actionfigure/New() + ..() + for(var/i in 1 to 4) + var/randomFigure = pick(subtypesof(/obj/item/toy/figure)) + new randomFigure(src) + +#define NODESIGN "None" +#define NANOTRASEN "NanotrasenStandard" +#define SYNDI "SyndiSnacks" +#define HEART "Heart" +#define SMILE "SmileyFace" + +/obj/item/weapon/storage/box/papersack + name = "paper sack" + desc = "A sack neatly crafted out of paper." + icon_state = "paperbag_None" + item_state = "paperbag_None" + resistance_flags = FLAMMABLE + foldable = null + var/design = NODESIGN + +/obj/item/weapon/storage/box/papersack/update_icon() + if(contents.len == 0) + icon_state = "[item_state]" + else icon_state = "[item_state]_closed" + +/obj/item/weapon/storage/box/papersack/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/weapon/pen)) + //if a pen is used on the sack, dialogue to change its design appears + if(contents.len) + user << "You can't modify this [src] with items still inside!" + return + var/list/designs = list(NODESIGN, NANOTRASEN, SYNDI, HEART, SMILE, "Cancel") + var/switchDesign = input("Select a Design:", "Paper Sack Design", designs[1]) in designs + if(get_dist(usr, src) > 1) + usr << "You have moved too far away!" + return + var/choice = designs.Find(switchDesign) + if(design == designs[choice] || designs[choice] == "Cancel") + return 0 + usr << "You make some modifications to the [src] using your pen." + design = designs[choice] + icon_state = "paperbag_[design]" + item_state = "paperbag_[design]" + switch(designs[choice]) + if(NODESIGN) + desc = "A sack neatly crafted out of paper." + if(NANOTRASEN) + desc = "A standard Nanotrasen paper lunch sack for loyal employees on the go." + if(SYNDI) + desc = "The design on this paper sack is a remnant of the notorious 'SyndieSnacks' program." + if(HEART) + desc = "A paper sack with a heart etched onto the side." + if(SMILE) + desc = "A paper sack with a crude smile etched onto the side." + return 0 + else if(W.is_sharp()) + if(!contents.len) + if(item_state == "paperbag_None") + user.show_message("You cut eyeholes into the [src].", 1) + new /obj/item/clothing/head/papersack(user.loc) + qdel(src) + return 0 + else if(item_state == "paperbag_SmileyFace") + user.show_message("You cut eyeholes into the [src] and modify the design.", 1) + new /obj/item/clothing/head/papersack/smiley(user.loc) + qdel(src) + return 0 + return ..() + +#undef NODESIGN +#undef NANOTRASEN +#undef SYNDI +#undef HEART +#undef SMILE + +/obj/item/weapon/storage/box/ingredients //This box is for the randomely chosen version the chef spawns with, it shouldn't actually exist. + name = "ingredients box" + icon_state = "donk_kit" + item_state = null + +/obj/item/weapon/storage/box/ingredients/wildcard + item_state = "wildcard" + +/obj/item/weapon/storage/box/ingredients/wildcard/New() + ..() + for(var/i in 1 to 7) + var/randomFood = pick(/obj/item/weapon/reagent_containers/food/snacks/grown/chili, + /obj/item/weapon/reagent_containers/food/snacks/grown/tomato, + /obj/item/weapon/reagent_containers/food/snacks/grown/carrot, + /obj/item/weapon/reagent_containers/food/snacks/grown/potato, + /obj/item/weapon/reagent_containers/food/snacks/grown/potato/sweet, + /obj/item/weapon/reagent_containers/food/snacks/grown/apple, + /obj/item/weapon/reagent_containers/food/snacks/chocolatebar, + /obj/item/weapon/reagent_containers/food/snacks/grown/cherries, + /obj/item/weapon/reagent_containers/food/snacks/grown/banana, + /obj/item/weapon/reagent_containers/food/snacks/grown/cabbage, + /obj/item/weapon/reagent_containers/food/snacks/grown/soybeans, + /obj/item/weapon/reagent_containers/food/snacks/grown/corn, + /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/plumphelmet, + /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/chanterelle) + new randomFood(src) + +/obj/item/weapon/storage/box/ingredients/fiesta + item_state = "fiesta" + +/obj/item/weapon/storage/box/ingredients/fiesta/New() + ..() + new /obj/item/weapon/reagent_containers/food/snacks/tortilla(src) + for(var/i in 1 to 2) + new /obj/item/weapon/reagent_containers/food/snacks/grown/corn(src) + new /obj/item/weapon/reagent_containers/food/snacks/grown/soybeans(src) + new /obj/item/weapon/reagent_containers/food/snacks/grown/chili(src) + +/obj/item/weapon/storage/box/ingredients/italian + item_state = "italian" + +/obj/item/weapon/storage/box/ingredients/italian/New() + ..() + for(var/i in 1 to 3) + new /obj/item/weapon/reagent_containers/food/snacks/grown/tomato(src) + new /obj/item/weapon/reagent_containers/food/snacks/faggot(src) + new /obj/item/weapon/reagent_containers/food/drinks/bottle/wine(src) + +/obj/item/weapon/storage/box/ingredients/vegetarian + item_state = "vegetarian" + +/obj/item/weapon/storage/box/ingredients/vegetarian/New() + ..() + for(var/i in 1 to 2) + new /obj/item/weapon/reagent_containers/food/snacks/grown/carrot(src) + new /obj/item/weapon/reagent_containers/food/snacks/grown/eggplant(src) + new /obj/item/weapon/reagent_containers/food/snacks/grown/potato(src) + new /obj/item/weapon/reagent_containers/food/snacks/grown/apple(src) + new /obj/item/weapon/reagent_containers/food/snacks/grown/corn(src) + new /obj/item/weapon/reagent_containers/food/snacks/grown/tomato(src) + +/obj/item/weapon/storage/box/ingredients/american + item_state = "american" + +/obj/item/weapon/storage/box/ingredients/american/New() + ..() + for(var/i in 1 to 2) + new /obj/item/weapon/reagent_containers/food/snacks/grown/potato(src) + new /obj/item/weapon/reagent_containers/food/snacks/grown/tomato(src) + new /obj/item/weapon/reagent_containers/food/snacks/grown/corn(src) + new /obj/item/weapon/reagent_containers/food/snacks/faggot(src) + +/obj/item/weapon/storage/box/ingredients/fruity + item_state = "fruity" + +/obj/item/weapon/storage/box/ingredients/fruity/New() + ..() + for(var/i in 1 to 2) + new /obj/item/weapon/reagent_containers/food/snacks/grown/apple(src) + new /obj/item/weapon/reagent_containers/food/snacks/grown/citrus/orange(src) + new /obj/item/weapon/reagent_containers/food/snacks/grown/citrus/lemon(src) + new /obj/item/weapon/reagent_containers/food/snacks/grown/citrus/lime(src) + new /obj/item/weapon/reagent_containers/food/snacks/grown/watermelon(src) + +/obj/item/weapon/storage/box/ingredients/sweets + item_state = "sweets" + +/obj/item/weapon/storage/box/ingredients/sweets/New() + ..() + for(var/i in 1 to 2) + new /obj/item/weapon/reagent_containers/food/snacks/grown/cherries(src) + new /obj/item/weapon/reagent_containers/food/snacks/grown/banana(src) + new /obj/item/weapon/reagent_containers/food/snacks/chocolatebar(src) + new /obj/item/weapon/reagent_containers/food/snacks/grown/cocoapod(src) + new /obj/item/weapon/reagent_containers/food/snacks/grown/apple(src) + +/obj/item/weapon/storage/box/ingredients/delights + item_state = "delights" + +/obj/item/weapon/storage/box/ingredients/delights/New() + ..() + for(var/i in 1 to 2) + new /obj/item/weapon/reagent_containers/food/snacks/grown/potato/sweet(src) + new /obj/item/weapon/reagent_containers/food/snacks/grown/bluecherries(src) + new /obj/item/weapon/reagent_containers/food/snacks/grown/vanillapod(src) + new /obj/item/weapon/reagent_containers/food/snacks/grown/cocoapod(src) + new /obj/item/weapon/reagent_containers/food/snacks/grown/berries(src) + +/obj/item/weapon/storage/box/ingredients/grains + item_state = "grains" + +/obj/item/weapon/storage/box/ingredients/grains/New() + ..() + for(var/i in 1 to 3) + new /obj/item/weapon/reagent_containers/food/snacks/grown/oat(src) + new /obj/item/weapon/reagent_containers/food/snacks/grown/wheat(src) + new /obj/item/weapon/reagent_containers/food/snacks/grown/cocoapod(src) + new /obj/item/weapon/reagent_containers/honeycomb(src) + new /obj/item/seeds/poppy(src) + +/obj/item/weapon/storage/box/ingredients/carnivore + item_state = "carnivore" + +/obj/item/weapon/storage/box/ingredients/carnivore/New() + ..() + new /obj/item/weapon/reagent_containers/food/snacks/meat/slab/bear(src) + new /obj/item/weapon/reagent_containers/food/snacks/meat/slab/spider(src) + new /obj/item/weapon/reagent_containers/food/snacks/spidereggs(src) + new /obj/item/weapon/reagent_containers/food/snacks/carpmeat(src) + new /obj/item/weapon/reagent_containers/food/snacks/meat/slab/xeno(src) + new /obj/item/weapon/reagent_containers/food/snacks/meat/slab/corgi(src) + new /obj/item/weapon/reagent_containers/food/snacks/faggot(src) + +/obj/item/weapon/storage/box/ingredients/exotic + item_state = "exotic" + +/obj/item/weapon/storage/box/ingredients/exotic/New() + ..() + for(var/i in 1 to 2) + new /obj/item/weapon/reagent_containers/food/snacks/carpmeat(src) + new /obj/item/weapon/reagent_containers/food/snacks/grown/soybeans(src) + new /obj/item/weapon/reagent_containers/food/snacks/grown/cabbage(src) + new /obj/item/weapon/reagent_containers/food/snacks/grown/chili(src) + +/obj/item/weapon/storage/box/ingredients/New() + ..() + if(item_state) + desc = "A box containing supplementary ingredients for the aspiring chef. This box's theme is '[item_state]'." + +/obj/item/weapon/storage/box/emptysandbags + name = "box of empty sandbags" + +/obj/item/weapon/storage/box/emptysandbags/New() + ..() + new /obj/item/weapon/emptysandbag(src) + new /obj/item/weapon/emptysandbag(src) + new /obj/item/weapon/emptysandbag(src) + new /obj/item/weapon/emptysandbag(src) + new /obj/item/weapon/emptysandbag(src) + new /obj/item/weapon/emptysandbag(src) + new /obj/item/weapon/emptysandbag(src) + +/obj/item/weapon/storage/box/rndboards + name = "\proper the liberator's legacy" + desc = "A box containing a gift for worthy golems." + +/obj/item/weapon/storage/box/rndboards/New() + ..() + new /obj/item/weapon/circuitboard/machine/protolathe(src) + new /obj/item/weapon/circuitboard/machine/destructive_analyzer(src) + new /obj/item/weapon/circuitboard/machine/circuit_imprinter(src) + new /obj/item/weapon/circuitboard/computer/rdconsole(src) diff --git a/code/game/objects/items/weapons/storage/briefcase.dm b/code/game/objects/items/weapons/storage/briefcase.dm new file mode 100644 index 0000000..0ee329a --- /dev/null +++ b/code/game/objects/items/weapons/storage/briefcase.dm @@ -0,0 +1,58 @@ +/obj/item/weapon/storage/briefcase + name = "briefcase" + desc = "It's made of AUTHENTIC faux-leather and has a price-tag still attached. Its owner must be a real professional." + icon_state = "briefcase" + flags = CONDUCT + force = 8 + hitsound = "swing_hit" + throw_speed = 2 + throw_range = 4 + w_class = 4 + max_w_class = 3 + max_combined_w_class = 21 + attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "whacked") + resistance_flags = FLAMMABLE + obj_integrity = 150 + max_integrity = 150 + var/folder_path = /obj/item/weapon/folder //this is the path of the folder that gets spawned in New() + +/obj/item/weapon/storage/briefcase/New() + ..() + new /obj/item/weapon/pen(src) + var/obj/item/weapon/folder/folder = new folder_path(src) + for(var/i in 1 to 6) + new /obj/item/weapon/paper(folder) + +/obj/item/weapon/storage/briefcase/lawyer + folder_path = /obj/item/weapon/folder/blue + +/obj/item/weapon/storage/briefcase/lawyer/New() + new /obj/item/weapon/stamp/law(src) + ..() + +/obj/item/weapon/storage/briefcase/sniperbundle + name = "briefcase" + desc = "It's label reads genuine hardened Captain leather, but suspiciously has no other tags or branding. Smells like L'Air du Temps." + icon_state = "briefcase" + flags = CONDUCT + force = 10 + hitsound = "swing_hit" + throw_speed = 2 + throw_range = 4 + w_class = 4 + max_w_class = 3 + max_combined_w_class = 21 + attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "whacked") + resistance_flags = FLAMMABLE + obj_integrity = 150 + max_integrity = 150 + +/obj/item/weapon/storage/briefcase/sniperbundle/New() + ..() + new /obj/item/weapon/gun/projectile/automatic/sniper_rifle/syndicate(src) + new /obj/item/clothing/neck/tie/red(src) + new /obj/item/clothing/under/syndicate/sniper(src) + new /obj/item/ammo_box/magazine/sniper_rounds/soporific(src) + new /obj/item/ammo_box/magazine/sniper_rounds/haemorrhage(src) + new /obj/item/weapon/suppressor/specialoffer(src) + diff --git a/code/game/objects/items/weapons/storage/fancy.dm b/code/game/objects/items/weapons/storage/fancy.dm new file mode 100644 index 0000000..10b40f0 --- /dev/null +++ b/code/game/objects/items/weapons/storage/fancy.dm @@ -0,0 +1,296 @@ +/* + * The 'fancy' path is for objects like donut boxes that show how many items are in the storage item on the sprite itself + * .. Sorry for the shitty path name, I couldnt think of a better one. + * + * WARNING: var/icon_type is used for both examine text and sprite name. Please look at the procs below and adjust your sprite names accordingly + * TODO: Cigarette boxes should be ported to this standard + * + * Contains: + * Donut Box + * Egg Box + * Candle Box + * Cigarette Box + * Cigar Case + */ + +/obj/item/weapon/storage/fancy + icon = 'icons/obj/food/containers.dmi' + icon_state = "donutbox6" + name = "donut box" + resistance_flags = FLAMMABLE + var/icon_type = "donut" + var/spawn_type = null + var/fancy_open = FALSE + +/obj/item/weapon/storage/fancy/New() + ..() + for(var/i = 1 to storage_slots) + new spawn_type(src) + +/obj/item/weapon/storage/fancy/update_icon(itemremoved = 0) + if(fancy_open) + var/total_contents = src.contents.len - itemremoved + icon_state = "[icon_type]box[total_contents]" + else + icon_state = "[icon_type]box" + +/obj/item/weapon/storage/fancy/examine(mob/user) + ..() + if(fancy_open) + if(contents.len == 1) + user << "There is one [src.icon_type] left." + else + user << "There are [contents.len <= 0 ? "no" : "[src.contents.len]"] [src.icon_type]s left." + +/obj/item/weapon/storage/fancy/attack_self(mob/user) + fancy_open = !fancy_open + update_icon() + +/obj/item/weapon/storage/fancy/content_can_dump(atom/dest_object, mob/user) + . = ..() + if(.) + fancy_open = TRUE + update_icon() + +/obj/item/weapon/storage/fancy/handle_item_insertion(obj/item/W, prevent_warning = 0, mob/user) + fancy_open = TRUE + return ..() + +/obj/item/weapon/storage/fancy/remove_from_storage(obj/item/W, atom/new_location, burn = 0) + fancy_open = TRUE + return ..() + +/* + * Donut Box + */ + +/obj/item/weapon/storage/fancy/donut_box + icon = 'icons/obj/food/containers.dmi' + icon_state = "donutbox6" + icon_type = "donut" + name = "donut box" + storage_slots = 6 + can_hold = list(/obj/item/weapon/reagent_containers/food/snacks/donut) + spawn_type = /obj/item/weapon/reagent_containers/food/snacks/donut + fancy_open = TRUE + +/* + * Egg Box + */ + +/obj/item/weapon/storage/fancy/egg_box + icon = 'icons/obj/food/containers.dmi' + icon_state = "eggbox" + icon_type = "egg" + name = "egg box" + storage_slots = 12 + can_hold = list(/obj/item/weapon/reagent_containers/food/snacks/egg) + spawn_type = /obj/item/weapon/reagent_containers/food/snacks/egg + +/* + * Candle Box + */ + +/obj/item/weapon/storage/fancy/candle_box + name = "candle pack" + desc = "A pack of red candles." + icon = 'icons/obj/candle.dmi' + icon_state = "candlebox5" + icon_type = "candle" + item_state = "candlebox5" + storage_slots = 5 + throwforce = 2 + slot_flags = SLOT_BELT + spawn_type = /obj/item/candle + fancy_open = TRUE + +/obj/item/weapon/storage/fancy/candle_box/attack_self(mob_user) + return + +//////////// +//CIG PACK// +//////////// +/obj/item/weapon/storage/fancy/cigarettes + name = "Space Cigarettes" + desc = "The most popular brand of cigarettes, sponsors of the Space Olympics." + icon = 'icons/obj/cigarettes.dmi' + icon_state = "cig" + item_state = "cigpacket" + w_class = 1 + throwforce = 0 + slot_flags = SLOT_BELT + storage_slots = 6 + can_hold = list(/obj/item/clothing/mask/cigarette, /obj/item/weapon/lighter) + icon_type = "cigarette" + spawn_type = /obj/item/clothing/mask/cigarette + +/obj/item/weapon/storage/fancy/cigarettes/New() + ..() + create_reagents(15 * storage_slots)//so people can inject cigarettes without opening a packet, now with being able to inject the whole one + reagents.set_reacting(FALSE) + for(var/obj/item/clothing/mask/cigarette/cig in src) + cig.desc = "\An [name] brand [cig.name]." + name = "\improper [name] packet" + +/obj/item/weapon/storage/fancy/cigarettes/AltClick(mob/user) + if(user.get_active_held_item()) + return + for(var/obj/item/weapon/lighter/lighter in src) + remove_from_storage(lighter, user.loc) + user.put_in_active_hand(lighter) + break + +/obj/item/weapon/storage/fancy/cigarettes/update_icon() + if(fancy_open || !contents.len) + cut_overlays() + if(!contents.len) + icon_state = "[initial(icon_state)]_empty" + else + icon_state = initial(icon_state) + add_overlay("[icon_state]_open") + var/i = contents.len + for(var/C in contents) + if(istype(C, /obj/item/weapon/lighter/greyscale)) + add_overlay(image(icon = src.icon, icon_state = "lighter_in", pixel_x = 1 * (i -1))) + else if(istype(C, /obj/item/weapon/lighter)) + add_overlay(image(icon = src.icon, icon_state = "zippo_in", pixel_x = 1 * (i -1))) + else + add_overlay(image(icon = src.icon, icon_state = "cigarette", pixel_x = 1 * (i -1))) + i-- + else + cut_overlays() + +/obj/item/weapon/storage/fancy/cigarettes/remove_from_storage(obj/item/W, atom/new_location) + if(istype(W,/obj/item/clothing/mask/cigarette)) + if(reagents) + reagents.trans_to(W,(reagents.total_volume/contents.len)) + fancy_open = TRUE + ..() + +/obj/item/weapon/storage/fancy/cigarettes/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) + if(!istype(M, /mob)) + return + var/obj/item/clothing/mask/cigarette/cig = locate(/obj/item/clothing/mask/cigarette) in contents + if(cig) + if(M == user && contents.len > 0 && !user.wear_mask) + var/obj/item/clothing/mask/cigarette/W = cig + remove_from_storage(W, M) + M.equip_to_slot_if_possible(W, slot_wear_mask) + contents -= W + user << "You take a [icon_type] out of the pack." + else + ..() + else + user << "There are no [icon_type]s left in the pack." + +/obj/item/weapon/storage/fancy/cigarettes/dromedaryco + name = "DromedaryCo" + desc = "A packet of six imported DromedaryCo cancer sticks. A label on the packaging reads, \"Wouldn't a slow death make a change?\"" + icon_state = "dromedary" + +/obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift + name = "Uplift Smooth" + desc = "Your favorite brand, now menthol flavored." + icon_state = "uplift" + +/obj/item/weapon/storage/fancy/cigarettes/cigpack_robust + name = "Robust" + desc = "Smoked by the robust." + icon_state = "robust" + +/obj/item/weapon/storage/fancy/cigarettes/cigpack_robustgold + name = "Robust Gold" + desc = "Smoked by the truly robust." + icon_state = "robustg" + +/obj/item/weapon/storage/fancy/cigarettes/cigpack_robustgold/New() + ..() + for(var/i = 1 to storage_slots) + reagents.add_reagent("gold",1) + +/obj/item/weapon/storage/fancy/cigarettes/cigpack_carp + name = "Carp Classic" + desc = "Since 2313." + icon_state = "carp" + +/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate + name = "unknown" + desc = "An obscure brand of cigarettes." + icon_state = "syndie" + +/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate/New() + ..() + for(var/i = 1 to storage_slots) + reagents.add_reagent("omnizine",15) + name = "cigarette packet" + + +/obj/item/weapon/storage/fancy/cigarettes/cigpack_midori + name = "Midori Tabako" + desc = "You can't understand the runes, but the packet smells funny." + icon_state = "midori" + spawn_type = /obj/item/clothing/mask/cigarette/rollie + +/obj/item/weapon/storage/fancy/cigarettes/cigpack_shadyjims + name ="Shady Jim's Super Slims" + desc = "Is your weight slowing you down? Having trouble running away from gravitational singularities? Can't stop stuffing your mouth? Smoke Shady Jim's Super Slims and watch all that fat burn away. Guaranteed results!" + icon_state = "shadyjim" + +/obj/item/weapon/storage/fancy/cigarettes/cigpack_shadyjims/New() + ..() + for(var/i = 1 to storage_slots) + reagents.add_reagent("lipolicide",4) + reagents.add_reagent("ammonia",2) + reagents.add_reagent("plantbgone",1) + reagents.add_reagent("toxin",1.5) + +/obj/item/weapon/storage/fancy/rollingpapers + name = "rolling paper pack" + desc = "A pack of NanoTrasen brand rolling papers." + w_class = 1 + icon = 'icons/obj/cigarettes.dmi' + icon_state = "cig_paper_pack" + storage_slots = 10 + icon_type = "rolling paper" + can_hold = list(/obj/item/weapon/rollingpaper) + spawn_type = /obj/item/weapon/rollingpaper + +/obj/item/weapon/storage/fancy/rollingpapers/update_icon() + cut_overlays() + if(!contents.len) + add_overlay("[icon_state]_empty") + +///////////// +//CIGAR BOX// +///////////// + +/obj/item/weapon/storage/fancy/cigarettes/cigars + name = "\improper premium cigar case" + desc = "A case of premium cigars. Very expensive." + icon = 'icons/obj/cigarettes.dmi' + icon_state = "cigarcase" + w_class = 3 + storage_slots = 5 + can_hold = list(/obj/item/clothing/mask/cigarette/cigar) + icon_type = "premium cigar" + spawn_type = /obj/item/clothing/mask/cigarette/cigar + +/obj/item/weapon/storage/fancy/cigarettes/cigars/update_icon() + if(fancy_open) + cut_overlays() + add_overlay("[icon_state]_open") + for(var/c = contents.len, c >= 1, c--) + add_overlay(image(icon = src.icon, icon_state = icon_type, pixel_x = 4 * (c -1))) + else + cut_overlays() + icon_state = "cigarcase" + +/obj/item/weapon/storage/fancy/cigarettes/cigars/cohiba + name = "\improper cohiba robusto cigar case" + desc = "A case of imported Cohiba cigars, renowned for their strong flavor." + spawn_type = /obj/item/clothing/mask/cigarette/cigar/cohiba + +/obj/item/weapon/storage/fancy/cigarettes/cigars/havana + name = "\improper premium havanian cigar case" + desc = "A case of classy Havanian cigars." + spawn_type = /obj/item/clothing/mask/cigarette/cigar/havana diff --git a/code/game/objects/items/weapons/storage/firstaid.dm b/code/game/objects/items/weapons/storage/firstaid.dm new file mode 100644 index 0000000..b086d87 --- /dev/null +++ b/code/game/objects/items/weapons/storage/firstaid.dm @@ -0,0 +1,217 @@ +/* First aid storage + * Contains: + * First Aid Kits + * Pill Bottles + * Dice Pack (in a pill bottle) + */ + +/* + * First Aid Kits + */ +/obj/item/weapon/storage/firstaid + name = "first-aid kit" + desc = "It's an emergency medical kit for those serious boo-boos." + icon_state = "firstaid" + throw_speed = 3 + throw_range = 7 + var/empty = 0 + +/obj/item/weapon/storage/firstaid/regular + icon_state = "firstaid" + desc = "A first aid kit with the ability to heal common types of injuries." + +/obj/item/weapon/storage/firstaid/regular/New() + ..() + if(empty) return + new /obj/item/stack/medical/gauze(src) + new /obj/item/stack/medical/bruise_pack(src) + new /obj/item/stack/medical/bruise_pack(src) + new /obj/item/stack/medical/ointment(src) + new /obj/item/stack/medical/ointment(src) + new /obj/item/weapon/reagent_containers/hypospray/medipen(src) + new /obj/item/device/healthanalyzer(src) + return + +/obj/item/weapon/storage/firstaid/fire + name = "burn treatment kit" + desc = "A specialized medical kit for when the toxins lab -spontaneously- burns down." + icon_state = "ointment" + item_state = "firstaid-ointment" + +/obj/item/weapon/storage/firstaid/fire/New() + ..() + if(empty) return + icon_state = pick("ointment","firefirstaid") + for(var/i in 1 to 3) + new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src) + new /obj/item/weapon/reagent_containers/pill/oxandrolone(src) + new /obj/item/weapon/reagent_containers/pill/oxandrolone(src) + new /obj/item/weapon/reagent_containers/hypospray/medipen(src) + new /obj/item/device/healthanalyzer(src) + return + +/obj/item/weapon/storage/firstaid/toxin + name = "toxin treatment kit" + desc = "Used to treat toxic blood content and radiation poisoning." + icon_state = "antitoxin" + item_state = "firstaid-toxin" + +/obj/item/weapon/storage/firstaid/toxin/New() + ..() + if(empty) return + icon_state = pick("antitoxin","antitoxfirstaid","antitoxfirstaid2","antitoxfirstaid3") + for(var/i in 1 to 3) + new /obj/item/weapon/reagent_containers/syringe/charcoal(src) + for(var/i in 1 to 3) + new /obj/item/weapon/reagent_containers/pill/charcoal(src) + new /obj/item/device/healthanalyzer(src) + return + +/obj/item/weapon/storage/firstaid/o2 + name = "oxygen deprivation treatment kit" + desc = "A box full of oxygen goodies." + icon_state = "o2" + item_state = "firstaid-o2" + +/obj/item/weapon/storage/firstaid/o2/New() + ..() + if(empty) return + for(var/i in 1 to 4) + new /obj/item/weapon/reagent_containers/pill/salbutamol(src) + new /obj/item/weapon/reagent_containers/hypospray/medipen(src) + new /obj/item/weapon/reagent_containers/hypospray/medipen(src) + new /obj/item/device/healthanalyzer(src) + return + +/obj/item/weapon/storage/firstaid/brute + name = "brute trauma treatment kit" + desc = "A first aid kit for when you get toolboxed." + icon_state = "brute" + item_state = "firstaid-brute" + +/obj/item/weapon/storage/firstaid/brute/New() + ..() + if(empty) return + for(var/i in 1 to 4) + new /obj/item/weapon/reagent_containers/pill/patch/styptic(src) + new /obj/item/stack/medical/gauze(src) + new /obj/item/stack/medical/gauze(src) + new /obj/item/device/healthanalyzer(src) + return + +/obj/item/weapon/storage/firstaid/tactical + name = "combat medical kit" + desc = "I hope you've got insurance." + icon_state = "bezerk" + max_w_class = 3 + +/obj/item/weapon/storage/firstaid/tactical/New() + ..() + if(empty) return + new /obj/item/stack/medical/gauze(src) + new /obj/item/weapon/defibrillator/compact/combat/loaded(src) + new /obj/item/weapon/reagent_containers/hypospray/combat(src) + new /obj/item/weapon/reagent_containers/pill/patch/styptic(src) + new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src) + new /obj/item/weapon/reagent_containers/syringe/lethal/choral(src) + new /obj/item/clothing/glasses/hud/health/night(src) + return + + +/* + * Pill Bottles + */ +/obj/item/weapon/storage/pill_bottle + name = "pill bottle" + desc = "It's an airtight container for storing medication." + icon_state = "pill_canister" + icon = 'icons/obj/chemical.dmi' + item_state = "contsolid" + w_class = 2 + can_hold = list(/obj/item/weapon/reagent_containers/pill,/obj/item/weapon/dice) + allow_quick_gather = 1 + use_to_pickup = 1 + +/obj/item/weapon/storage/pill_bottle/MouseDrop(obj/over_object) //Quick pillbottle fix. -Agouri + + if(ishuman(usr) || ismonkey(usr)) //Can monkeys even place items in the pocket slots? Leaving this in just in case~ + var/mob/M = usr + if(!istype(over_object, /obj/screen) || !Adjacent(M)) + return ..() + if(!M.restrained() && !M.stat && istype(over_object, /obj/screen/inventory/hand)) + var/obj/screen/inventory/hand/H = over_object + if(!M.unEquip(src)) + return + M.put_in_hand(src,H.held_index) + src.add_fingerprint(usr) + return + if(over_object == usr && in_range(src, usr) || usr.contents.Find(src)) + if(usr.s_active) + usr.s_active.close(usr) + src.show_to(usr) + return + return + +/obj/item/weapon/storage/box/silver_sulf + name = "box of silver sulfadiazine patches" + desc = "Contains patches used to treat burns." + +/obj/item/weapon/storage/box/silver_sulf/New() + ..() + for(var/i in 1 to 7) + new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src) + +/obj/item/weapon/storage/pill_bottle/charcoal + name = "bottle of charcoal pills" + desc = "Contains pills used to counter toxins." + +/obj/item/weapon/storage/pill_bottle/charcoal/New() + ..() + for(var/i in 1 to 7) + new /obj/item/weapon/reagent_containers/pill/charcoal(src) + +/obj/item/weapon/storage/pill_bottle/epinephrine + name = "bottle of epinephrine pills" + desc = "Contains pills used to stabilize patients." + +/obj/item/weapon/storage/pill_bottle/epinephrine/New() + ..() + for(var/i in 1 to 7) + new /obj/item/weapon/reagent_containers/pill/epinephrine(src) + +/obj/item/weapon/storage/pill_bottle/mutadone + name = "bottle of mutadone pills" + desc = "Contains pills used to treat genetic abnormalities." + +/obj/item/weapon/storage/pill_bottle/mutadone/New() + ..() + for(var/i in 1 to 7) + new /obj/item/weapon/reagent_containers/pill/mutadone(src) + +/obj/item/weapon/storage/pill_bottle/mannitol + name = "bottle of mannitol pills" + desc = "Contains pills used to treat brain damage." + +/obj/item/weapon/storage/pill_bottle/mannitol/New() + ..() + for(var/i in 1 to 7) + new /obj/item/weapon/reagent_containers/pill/mannitol(src) + +/obj/item/weapon/storage/pill_bottle/stimulant + name = "bottle of stimulant pills" + desc = "Guaranteed to give you that extra burst of energy during a long shift!" + +/obj/item/weapon/storage/pill_bottle/stimulant/New() + ..() + for(var/i in 1 to 5) + new /obj/item/weapon/reagent_containers/pill/stimulant(src) + +/obj/item/weapon/storage/pill_bottle/mining + name = "box of patches" + desc = "Contains patches used to treat brute and burn damage." + +/obj/item/weapon/storage/pill_bottle/mining/New() + ..() + new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src) + for(var/i in 1 to 3) + new /obj/item/weapon/reagent_containers/pill/patch/styptic(src) \ No newline at end of file diff --git a/code/game/objects/items/weapons/storage/internal.dm b/code/game/objects/items/weapons/storage/internal.dm new file mode 100644 index 0000000..c0a392f --- /dev/null +++ b/code/game/objects/items/weapons/storage/internal.dm @@ -0,0 +1,74 @@ +/obj/item/weapon/storage/internal + storage_slots = 2 + max_w_class = 2 + max_combined_w_class = 50 // Limited by slots, not combined weight class + w_class = 4 + +/obj/item/weapon/storage/internal/ClickAccessible(mob/user, depth=1) + if(loc) + return loc.ClickAccessible(user, depth) + +/obj/item/weapon/storage/internal/Adjacent(A) + if(loc) + return loc.Adjacent(A) + +/obj/item/weapon/storage/internal/pocket + var/priority = TRUE + // TRUE if opens when clicked, like a backpack. + // FALSE if opens only when dragged on mob's icon (hidden pocket) + var/quickdraw = FALSE + // TRUE if you can quickdraw items from it with alt-click. + +/obj/item/weapon/storage/internal/pocket/New() + ..() + if(loc) + name = loc.name + +/obj/item/weapon/storage/internal/pocket/handle_item_insertion(obj/item/W, prevent_warning = 0, mob/user) + . = ..() + if(. && silent && !prevent_warning) + if(quickdraw) + user << "You discreetly slip [W] into [src]. Alt-click [src] to remove it." + else + user << "You discreetly slip [W] into [src]." + +/obj/item/weapon/storage/internal/pocket/big + max_w_class = 3 + +/obj/item/weapon/storage/internal/pocket/small + storage_slots = 1 + priority = FALSE + +/obj/item/weapon/storage/internal/pocket/tiny + storage_slots = 1 + max_w_class = 1 + priority = FALSE + +/obj/item/weapon/storage/internal/pocket/shoes + can_hold = list( + /obj/item/weapon/kitchen/knife, /obj/item/weapon/switchblade, /obj/item/weapon/pen, + /obj/item/weapon/scalpel, /obj/item/weapon/reagent_containers/syringe, /obj/item/weapon/dnainjector, + /obj/item/weapon/reagent_containers/hypospray/medipen, /obj/item/weapon/reagent_containers/dropper, + /obj/item/weapon/implanter, /obj/item/weapon/screwdriver, /obj/item/weapon/weldingtool/mini, + /obj/item/device/firing_pin + ) + //can hold both regular pens and energy daggers. made for your every-day tactical librarians/murderers. + priority = FALSE + quickdraw = TRUE + silent = TRUE + + +/obj/item/weapon/storage/internal/pocket/shoes/clown + can_hold = list( + /obj/item/weapon/kitchen/knife, /obj/item/weapon/switchblade, /obj/item/weapon/pen, + /obj/item/weapon/scalpel, /obj/item/weapon/reagent_containers/syringe, /obj/item/weapon/dnainjector, + /obj/item/weapon/reagent_containers/hypospray/medipen, /obj/item/weapon/reagent_containers/dropper, + /obj/item/weapon/implanter, /obj/item/weapon/screwdriver, /obj/item/weapon/weldingtool/mini, + /obj/item/device/firing_pin, /obj/item/weapon/bikehorn) + +/obj/item/weapon/storage/internal/pocket/small/detective + priority = TRUE // so the detectives would discover pockets in their hats + +/obj/item/weapon/storage/internal/pocket/small/detective/New() + ..() + new /obj/item/weapon/reagent_containers/food/drinks/flask/det(src) diff --git a/code/game/objects/items/weapons/storage/lockbox.dm b/code/game/objects/items/weapons/storage/lockbox.dm new file mode 100644 index 0000000..6a056c0 --- /dev/null +++ b/code/game/objects/items/weapons/storage/lockbox.dm @@ -0,0 +1,121 @@ +//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32 + +/obj/item/weapon/storage/lockbox + name = "lockbox" + desc = "A locked box." + icon_state = "lockbox+l" + item_state = "syringe_kit" + w_class = 4 + max_w_class = 3 + max_combined_w_class = 14 //The sum of the w_classes of all the items in this storage item. + storage_slots = 4 + req_access = list(access_armory) + var/locked = 1 + var/broken = 0 + var/icon_locked = "lockbox+l" + var/icon_closed = "lockbox" + var/icon_broken = "lockbox+b" + + +/obj/item/weapon/storage/lockbox/attackby(obj/item/weapon/W, mob/user, params) + if(W.GetID()) + if(broken) + user << "It appears to be broken." + return + if(allowed(user)) + locked = !locked + if(locked) + icon_state = icon_locked + user << "You lock the [src.name]!" + close_all() + return + else + icon_state = icon_closed + user << "You unlock the [src.name]!" + return + else + user << "Access Denied." + return + if(!locked) + return ..() + else + user << "It's locked!" + +/obj/item/weapon/storage/lockbox/MouseDrop(over_object, src_location, over_location) + if (locked) + src.add_fingerprint(usr) + usr << "It's locked!" + return 0 + ..() + +/obj/item/weapon/storage/lockbox/emag_act(mob/user) + if(!broken) + broken = 1 + locked = 0 + desc += "It appears to be broken." + icon_state = src.icon_broken + if(user) + visible_message("\The [src] has been broken by [user] with an electromagnetic card!") + return +/obj/item/weapon/storage/lockbox/show_to(mob/user) + if(locked) + user << "It's locked!" + else + ..() + return + +//Check the destination item type for contentto. +/obj/item/weapon/storage/lockbox/storage_contents_dump_act(obj/item/weapon/storage/src_object, mob/user) + if(locked) + user << "It's locked!" + return 0 + return ..() + +/obj/item/weapon/storage/lockbox/can_be_inserted(obj/item/W, stop_messages = 0) + if(locked) + return 0 + return ..() + +/obj/item/weapon/storage/lockbox/loyalty + name = "lockbox of mindshield implants" + req_access = list(access_security) + +/obj/item/weapon/storage/lockbox/loyalty/New() + ..() + for(var/i in 1 to 3) + new /obj/item/weapon/implantcase/mindshield(src) + new /obj/item/weapon/implanter/mindshield(src) + + +/obj/item/weapon/storage/lockbox/clusterbang + name = "lockbox of clusterbangs" + desc = "You have a bad feeling about opening this." + req_access = list(access_security) + +/obj/item/weapon/storage/lockbox/clusterbang/New() + ..() + new /obj/item/weapon/grenade/clusterbuster(src) + +/obj/item/weapon/storage/lockbox/medal + name = "medal box" + desc = "A locked box used to store medals of honor." + icon_state = "medalbox+l" + item_state = "syringe_kit" + w_class = 3 + max_w_class = 2 + storage_slots = 10 + req_access = list(access_captain) + icon_locked = "medalbox+l" + icon_closed = "medalbox" + icon_broken = "medalbox+b" + +/obj/item/weapon/storage/lockbox/medal/New() + ..() + new /obj/item/clothing/tie/medal/silver/valor(src) + new /obj/item/clothing/tie/medal/bronze_heart(src) + for(var/i in 1 to 3) + new /obj/item/clothing/tie/medal/conduct(src) + new /obj/item/clothing/tie/medal/gold/captain(src) + new /obj/item/clothing/tie/medal/silver/security(src) + new /obj/item/clothing/tie/medal/nobel_science(src) + new /obj/item/clothing/tie/medal/gold/heroism(src) diff --git a/code/game/objects/items/weapons/storage/secure.dm b/code/game/objects/items/weapons/storage/secure.dm new file mode 100644 index 0000000..5a38afe --- /dev/null +++ b/code/game/objects/items/weapons/storage/secure.dm @@ -0,0 +1,208 @@ +/* + * Absorbs /obj/item/weapon/secstorage. + * Reimplements it only slightly to use existing storage functionality. + * + * Contains: + * Secure Briefcase + * Wall Safe + */ + +// ----------------------------- +// Generic Item +// ----------------------------- +/obj/item/weapon/storage/secure + name = "secstorage" + var/icon_locking = "secureb" + var/icon_sparking = "securespark" + var/icon_opened = "secure0" + var/locked = 1 + var/code = "" + var/l_code = null + var/l_set = 0 + var/l_setshort = 0 + var/l_hacking = 0 + var/open = 0 + w_class = 3 + max_w_class = 2 + max_combined_w_class = 14 + +/obj/item/weapon/storage/secure/examine(mob/user) + ..() + user << text("The service panel is [src.open ? "open" : "closed"].") + +/obj/item/weapon/storage/secure/attackby(obj/item/weapon/W, mob/user, params) + if(locked) + if (istype(W, /obj/item/weapon/screwdriver)) + if (do_after(user, 20/W.toolspeed, target = src)) + src.open =! src.open + user.show_message("You [open ? "open" : "close"] the service panel.", 1) + return + if ((istype(W, /obj/item/device/multitool)) && (src.open == 1)&& (!src.l_hacking)) + user.show_message("Now attempting to reset internal memory, please hold.", 1) + src.l_hacking = 1 + if (do_after(usr, 100/W.toolspeed, target = src)) + if (prob(33)) + src.l_setshort = 1 + src.l_set = 0 + user.show_message("Internal memory reset. Please give it a few seconds to reinitialize.", 1) + sleep(80) + src.l_setshort = 0 + src.l_hacking = 0 + else + user.show_message("Unable to reset internal memory.", 1) + src.l_hacking = 0 + else + src.l_hacking = 0 + return + //At this point you have exhausted all the special things to do when locked + // ... but it's still locked. + return + + // -> storage/attackby() what with handle insertion, etc + return ..() + +/obj/item/weapon/storage/secure/MouseDrop(over_object, src_location, over_location) + if (locked) + src.add_fingerprint(usr) + usr << "It's locked!" + return 0 + ..() + +/obj/item/weapon/storage/secure/attack_self(mob/user) + user.set_machine(src) + var/dat = text("[]
          \n\nLock Status: []",src, (src.locked ? "LOCKED" : "UNLOCKED")) + var/message = "Code" + if ((src.l_set == 0) && (!src.l_setshort)) + dat += text("

          \n5-DIGIT PASSCODE NOT SET.
          ENTER NEW PASSCODE.
          ") + if (src.l_setshort) + dat += text("

          \nALERT: MEMORY SYSTEM ERROR - 6040 201") + message = text("[]", src.code) + if (!src.locked) + message = "*****" + dat += text("


          \n>[]
          \n1-2-3
          \n4-5-6
          \n7-8-9
          \nR-0-E
          \n
          ", message, src, src, src, src, src, src, src, src, src, src, src, src) + user << browse(dat, "window=caselock;size=300x280") + +/obj/item/weapon/storage/secure/Topic(href, href_list) + ..() + if ((usr.stat || usr.restrained()) || (get_dist(src, usr) > 1)) + return + if (href_list["type"]) + if (href_list["type"] == "E") + if ((src.l_set == 0) && (length(src.code) == 5) && (!src.l_setshort) && (src.code != "ERROR")) + src.l_code = src.code + src.l_set = 1 + else if ((src.code == src.l_code) && (src.l_set == 1)) + src.locked = 0 + src.overlays = null + add_overlay(image('icons/obj/storage.dmi', icon_opened)) + src.code = null + else + src.code = "ERROR" + else + if ((href_list["type"] == "R") && (!src.l_setshort)) + src.locked = 1 + src.overlays = null + src.code = null + src.close(usr) + else + src.code += text("[]", sanitize_text(href_list["type"])) + if (length(src.code) > 5) + src.code = "ERROR" + src.add_fingerprint(usr) + for(var/mob/M in viewers(1, src.loc)) + if ((M.client && M.machine == src)) + src.attack_self(M) + return + return + +/obj/item/weapon/storage/secure/storage_contents_dump_act(obj/item/weapon/storage/src_object, mob/user) + if(locked) + user << "It's locked!" + return 0 + return ..() + +/obj/item/weapon/storage/secure/can_be_inserted(obj/item/W, stop_messages = 0) + if(locked) + return 0 + return ..() + + +// ----------------------------- +// Secure Briefcase +// ----------------------------- +/obj/item/weapon/storage/secure/briefcase + name = "secure briefcase" + icon = 'icons/obj/storage.dmi' + icon_state = "secure" + item_state = "sec-case" + desc = "A large briefcase with a digital locking system." + force = 8 + hitsound = "swing_hit" + throw_speed = 2 + throw_range = 4 + w_class = 4 + max_w_class = 3 + max_combined_w_class = 21 + attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "whacked") + +/obj/item/weapon/storage/secure/briefcase/New() + new /obj/item/weapon/paper(src) + new /obj/item/weapon/pen(src) + return ..() + +/obj/item/weapon/storage/secure/briefcase/attack_hand(mob/user) + if ((src.loc == user) && (src.locked == 1)) + usr << "[src] is locked and cannot be opened!" + else if ((src.loc == user) && (!src.locked)) + playsound(src.loc, "rustle", 50, 1, -5) + if (user.s_active) + user.s_active.close(user) //Close and re-open + src.show_to(user) + else + ..() + for(var/mob/M in range(1)) + if (M.s_active == src) + src.close(M) + src.orient2hud(user) + src.add_fingerprint(user) + return + +//Syndie variant of Secure Briefcase. Contains space cash, slightly more robust. +/obj/item/weapon/storage/secure/briefcase/syndie + force = 15 + +/obj/item/weapon/storage/secure/briefcase/syndie/New() + for(var/i = 0, i < storage_slots - 2, i++) + new /obj/item/stack/spacecash/c1000(src) + return ..() + + +// ----------------------------- +// Secure Safe +// ----------------------------- + +/obj/item/weapon/storage/secure/safe + name = "secure safe" + icon = 'icons/obj/storage.dmi' + icon_state = "safe" + icon_opened = "safe0" + icon_locking = "safeb" + icon_sparking = "safespark" + force = 8 + w_class = 8 + max_w_class = 8 + anchored = 1 + density = 0 + cant_hold = list(/obj/item/weapon/storage/secure/briefcase) + +/obj/item/weapon/storage/secure/safe/New() + ..() + new /obj/item/weapon/paper(src) + new /obj/item/weapon/pen(src) + +/obj/item/weapon/storage/secure/safe/attack_hand(mob/user) + return attack_self(user) + +/obj/item/weapon/storage/secure/safe/HoS/New() + ..() + //new /obj/item/weapon/storage/lockbox/clusterbang(src) This item is currently broken... and probably shouldnt exist to begin with (even though it's cool) diff --git a/code/game/objects/items/weapons/storage/storage.dm b/code/game/objects/items/weapons/storage/storage.dm new file mode 100644 index 0000000..5e0ddc6 --- /dev/null +++ b/code/game/objects/items/weapons/storage/storage.dm @@ -0,0 +1,530 @@ +// External storage-related logic: +// /mob/proc/ClickOn() in /_onclick/click.dm - clicking items in storages +// /mob/living/Move() in /modules/mob/living/living.dm - hiding storage boxes on mob movement +// /item/attackby() in /game/objects/items.dm - use_to_pickup and allow_quick_gather functionality +// -- c0 + + +/obj/item/weapon/storage + name = "storage" + icon = 'icons/obj/storage.dmi' + w_class = 3 + var/silent = 0 // No message on putting items in + var/list/can_hold = new/list() //List of objects which this item can store (if set, it can't store anything else) + var/list/cant_hold = new/list() //List of objects which this item can't store (in effect only if can_hold isn't set) + var/list/is_seeing = new/list() //List of mobs which are currently seeing the contents of this item's storage + var/max_w_class = 2 //Max size of objects that this object can store (in effect only if can_hold isn't set) + var/max_combined_w_class = 14 //The sum of the w_classes of all the items in this storage item. + var/storage_slots = 7 //The number of storage slots in this container. + var/obj/screen/storage/boxes = null + var/obj/screen/close/closer = null + var/use_to_pickup //Set this to make it possible to use this item in an inverse way, so you can have the item in your hand and click items on the floor to pick them up. + var/display_contents_with_number //Set this to make the storage item group contents of the same type and display them as a number. + var/allow_quick_empty //Set this variable to allow the object to have the 'empty' verb, which dumps all the contents on the floor. + var/allow_quick_gather //Set this variable to allow the object to have the 'toggle mode' verb, which quickly collects all items from a tile. + var/collection_mode = 1; //0 = pick one at a time, 1 = pick all on tile, 2 = pick all of a type + var/preposition = "in" // You put things 'in' a bag, but trays need 'on'. + + +/obj/item/weapon/storage/MouseDrop(atom/over_object) + if(ismob(usr)) //all the check for item manipulation are in other places, you can safely open any storages as anything and its not buggy, i checked + var/mob/M = usr + + if(!over_object) + return + + if (istype(usr.loc,/obj/mecha)) // stops inventory actions in a mech + return + + // this must come before the screen objects only block, dunno why it wasn't before + if(over_object == M && (src.ClickAccessible(M, depth=STORAGE_VIEW_DEPTH) || Adjacent(M))) + orient2hud(M) + if(M.s_active) + M.s_active.close(M) + show_to(M) + return + + if(!M.restrained() && !M.stat) + if(!istype(over_object, /obj/screen)) + return content_can_dump(over_object, M) + + if(loc != usr || (loc && loc.loc == usr)) + return + + playsound(loc, "rustle", 50, 1, -5) + + + if(istype(over_object, /obj/screen/inventory/hand)) + var/obj/screen/inventory/hand/H = over_object + if(!M.unEquip(src)) + return + M.put_in_hand(src,H.held_index) + + add_fingerprint(usr) + + +/obj/item/weapon/storage/MouseDrop_T(atom/movable/O, mob/user) + if(istype(O, /obj/item)) + var/obj/item/I = O + if(iscarbon(user) || isdrone(user)) + var/mob/living/L = user + if(!L.incapacitated() && I == L.get_active_held_item()) + if(can_be_inserted(I, 0)) + handle_item_insertion(I, 0 , L) + + +//Check if this storage can dump the items +/obj/item/weapon/storage/proc/content_can_dump(atom/dest_object, mob/user) + if(Adjacent(user) && dest_object.Adjacent(user)) + if(dest_object.storage_contents_dump_act(src, user)) + playsound(loc, "rustle", 50, 1, -5) + return 1 + return 0 + +//Object behaviour on storage dump +/obj/item/weapon/storage/storage_contents_dump_act(obj/item/weapon/storage/src_object, mob/user) + for(var/obj/item/I in src_object) + if(user.s_active != src_object) + if(I.on_found(user)) + return + if(can_be_inserted(I,0,user)) + handle_item_insertion(I, TRUE, user) + orient2hud(user) + src_object.orient2hud(user) + if(user.s_active) //refresh the HUD to show the transfered contents + user.s_active.close(user) + user.s_active.show_to(user) + return 1 + +/obj/item/weapon/storage/proc/return_inv() + var/list/L = list() + L += contents + + for(var/obj/item/weapon/storage/S in src) + L += S.return_inv() + return L + + +/obj/item/weapon/storage/proc/show_to(mob/user) + if(!user.client) + return + if(user.s_active != src && (user.stat == CONSCIOUS)) + for(var/obj/item/I in src) + if(I.on_found(user)) + return + if(user.s_active) + user.s_active.hide_from(user) + user.client.screen |= boxes + user.client.screen |= closer + user.client.screen |= contents + user.s_active = src + is_seeing |= user + + +/obj/item/weapon/storage/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0) + close_all() + return ..() + +/obj/item/weapon/storage/proc/hide_from(mob/user) + if(!user.client) + return + user.client.screen -= boxes + user.client.screen -= closer + user.client.screen -= contents + if(user.s_active == src) + user.s_active = null + is_seeing -= user + + +/obj/item/weapon/storage/proc/can_see_contents() + var/list/cansee = list() + for(var/mob/M in is_seeing) + if(M.s_active == src && M.client) + cansee |= M + else + is_seeing -= M + return cansee + + +/obj/item/weapon/storage/proc/close(mob/user) + hide_from(user) + user.s_active = null + + +/obj/item/weapon/storage/proc/close_all() + for(var/mob/M in can_see_contents()) + close(M) + . = 1 //returns 1 if any mobs actually got a close(M) call + + +//This proc draws out the inventory and places the items on it. tx and ty are the upper left tile and mx, my are the bottm right. +//The numbers are calculated from the bottom-left The bottom-left slot being 1,1. +/obj/item/weapon/storage/proc/orient_objs(tx, ty, mx, my) + var/cx = tx + var/cy = ty + boxes.screen_loc = "[tx]:,[ty] to [mx],[my]" + for(var/obj/O in contents) + O.screen_loc = "[cx],[cy]" + O.layer = ABOVE_HUD_LAYER + O.plane = ABOVE_HUD_PLANE + cx++ + if(cx > mx) + cx = tx + cy-- + closer.screen_loc = "[mx+1],[my]" + + +//This proc draws out the inventory and places the items on it. It uses the standard position. +/obj/item/weapon/storage/proc/standard_orient_objs(rows, cols, list/obj/item/display_contents) + var/cx = 4 + var/cy = 2+rows + boxes.screen_loc = "4:16,2:16 to [4+cols]:16,[2+rows]:16" + + if(display_contents_with_number) + for(var/datum/numbered_display/ND in display_contents) + ND.sample_object.mouse_opacity = 2 + ND.sample_object.screen_loc = "[cx]:16,[cy]:16" + ND.sample_object.maptext = "[(ND.number > 1)? "[ND.number]" : ""]" + ND.sample_object.layer = ABOVE_HUD_LAYER + ND.sample_object.plane = ABOVE_HUD_PLANE + cx++ + if(cx > (4+cols)) + cx = 4 + cy-- + else + for(var/obj/O in contents) + O.mouse_opacity = 2 //This is here so storage items that spawn with contents correctly have the "click around item to equip" + O.screen_loc = "[cx]:16,[cy]:16" + O.maptext = "" + O.layer = ABOVE_HUD_LAYER + O.plane = ABOVE_HUD_PLANE + cx++ + if(cx > (4+cols)) + cx = 4 + cy-- + closer.screen_loc = "[4+cols+1]:16,2:16" + + +/datum/numbered_display + var/obj/item/sample_object + var/number + +/datum/numbered_display/New(obj/item/sample) + if(!istype(sample)) + qdel(src) + sample_object = sample + number = 1 + + +//This proc determines the size of the inventory to be displayed. Please touch it only if you know what you're doing. +/obj/item/weapon/storage/proc/orient2hud(mob/user) + var/adjusted_contents = contents.len + + //Numbered contents display + var/list/datum/numbered_display/numbered_contents + if(display_contents_with_number) + numbered_contents = list() + adjusted_contents = 0 + for(var/obj/item/I in contents) + var/found = 0 + for(var/datum/numbered_display/ND in numbered_contents) + if(ND.sample_object.type == I.type) + ND.number++ + found = 1 + break + if(!found) + adjusted_contents++ + numbered_contents.Add( new/datum/numbered_display(I) ) + + //var/mob/living/carbon/human/H = user + var/row_num = 0 + var/col_count = min(7,storage_slots) -1 + if(adjusted_contents > 7) + row_num = round((adjusted_contents-1) / 7) // 7 is the maximum allowed width. + standard_orient_objs(row_num, col_count, numbered_contents) + + +//This proc return 1 if the item can be picked up and 0 if it can't. +//Set the stop_messages to stop it from printing messages +/obj/item/weapon/storage/proc/can_be_inserted(obj/item/W, stop_messages = 0, mob/user) + if(!istype(W) || (W.flags & ABSTRACT)) + return //Not an item + + if(loc == W) + return 0 //Means the item is already in the storage item + if(contents.len >= storage_slots) + if(!stop_messages) + usr << "[src] is full, make some space!" + return 0 //Storage item is full + + if(can_hold.len) + var/ok = 0 + for(var/A in can_hold) + if(istype(W, A)) + ok = 1 + break + if(!ok) + if(!stop_messages) + usr << "[src] cannot hold [W]!" + return 0 + + for(var/A in cant_hold) //Check for specific items which this container can't hold. + if(istype(W, A)) + if(!stop_messages) + usr << "[src] cannot hold [W]!" + return 0 + + if(W.w_class > max_w_class) + if(!stop_messages) + usr << "[W] is too big for [src]!" + return 0 + + var/sum_w_class = W.w_class + for(var/obj/item/I in contents) + sum_w_class += I.w_class //Adds up the combined w_classes which will be in the storage item if the item is added to it. + + if(sum_w_class > max_combined_w_class) + if(!stop_messages) + usr << "[W] won't fit in [src], make some space!" + return 0 + + if(W.w_class >= w_class && (istype(W, /obj/item/weapon/storage))) + if(!istype(src, /obj/item/weapon/storage/backpack/holding)) //bohs should be able to hold backpacks again. The override for putting a boh in a boh is in backpack.dm. + if(!stop_messages) + usr << "[src] cannot hold [W] as it's a storage item of the same size!" + return 0 //To prevent the stacking of same sized storage items. + + if(W.flags & NODROP) //SHOULD be handled in unEquip, but better safe than sorry. + usr << "\the [W] is stuck to your hand, you can't put it in \the [src]!" + return 0 + + return 1 + + +//This proc handles items being inserted. It does not perform any checks of whether an item can or can't be inserted. That's done by can_be_inserted() +//The stop_warning parameter will stop the insertion message from being displayed. It is intended for cases where you are inserting multiple items at once, +//such as when picking up all the items on a tile with one click. +/obj/item/weapon/storage/proc/handle_item_insertion(obj/item/W, prevent_warning = 0, mob/user) + if(!istype(W)) + return 0 + if(usr) + if(!usr.unEquip(W)) + return 0 + if(silent) + prevent_warning = 1 + if(W.pulledby) + W.pulledby.stop_pulling() + W.loc = src + W.on_enter_storage(src) + if(usr) + if(usr.client && usr.s_active != src) + usr.client.screen -= W + if(usr.observers && usr.observers.len) + for(var/M in usr.observers) + var/mob/dead/observe = M + if(observe.client && observe.s_active != src) + observe.client.screen -= W + + add_fingerprint(usr) + + if(!prevent_warning) + for(var/mob/M in viewers(usr, null)) + if(M == usr) + usr << "You put [W] [preposition]to [src]." + else if(in_range(M, usr)) //If someone is standing close enough, they can tell what it is... + M.show_message("[usr] puts [W] [preposition]to [src].", 1) + else if(W && W.w_class >= 3) //Otherwise they can only see large or normal items from a distance... + M.show_message("[usr] puts [W] [preposition]to [src].", 1) + + orient2hud(usr) + for(var/mob/M in can_see_contents()) + show_to(M) + W.mouse_opacity = 2 //So you can click on the area around the item to equip it, instead of having to pixel hunt + update_icon() + return 1 + + +//Call this proc to handle the removal of an item from the storage item. The item will be moved to the atom sent as new_target +/obj/item/weapon/storage/proc/remove_from_storage(obj/item/W, atom/new_location) + if(!istype(W)) + return 0 + + if(istype(src, /obj/item/weapon/storage/fancy)) + var/obj/item/weapon/storage/fancy/F = src + F.update_icon(1) + + for(var/mob/M in can_see_contents()) + if(M.client) + M.client.screen -= W + + if(ismob(loc)) + var/mob/M = loc + W.dropped(M) + W.layer = initial(W.layer) + W.plane = initial(W.plane) + W.loc = new_location + + if(usr) + orient2hud(usr) + if(usr.s_active) + usr.s_active.show_to(usr) + if(W.maptext) + W.maptext = "" + W.on_exit_storage(src) + update_icon() + W.mouse_opacity = initial(W.mouse_opacity) + return 1 + +/obj/item/weapon/storage/deconstruct(disassembled = TRUE) + var/drop_loc = loc + if(ismob(loc)) + drop_loc = get_turf(src) + for(var/obj/item/I in contents) + remove_from_storage(I, drop_loc) + qdel(src) + +//This proc is called when you want to place an item into the storage item. +/obj/item/weapon/storage/attackby(obj/item/W, mob/user, params) + ..() + if(istype(W, /obj/item/weapon/hand_labeler)) + var/obj/item/weapon/hand_labeler/labeler = W + if(labeler.mode) + return 0 + . = 1 //no afterattack + if(iscyborg(user)) + return //Robots can't interact with storage items. + + if(!can_be_inserted(W, 0 , user)) + return + + handle_item_insertion(W, 0 , user) + + +/obj/item/weapon/storage/attack_hand(mob/user) + if(user.s_active == src && loc == user) //if you're already looking inside the storage item + user.s_active.close(user) + close(user) + return + + playsound(loc, "rustle", 50, 1, -5) + + if(ishuman(user)) + var/mob/living/carbon/human/H = user + if(H.l_store == src && !H.get_active_held_item()) //Prevents opening if it's in a pocket. + H.put_in_hands(src) + H.l_store = null + return + if(H.r_store == src && !H.get_active_held_item()) + H.put_in_hands(src) + H.r_store = null + return + + orient2hud(user) + if(loc == user) + if(user.s_active) + user.s_active.close(user) + show_to(user) + else + ..() + for(var/mob/M in range(1)) + if(M.s_active == src) + close(M) + add_fingerprint(user) + +/obj/item/weapon/storage/attack_paw(mob/user) + return attack_hand(user) + +/obj/item/weapon/storage/verb/toggle_gathering_mode() + set name = "Switch Gathering Method" + set category = "Object" + + if(usr.stat || !usr.canmove || usr.restrained()) + return + + collection_mode = (collection_mode+1)%3 + switch (collection_mode) + if(2) + usr << "[src] now picks up all items of a single type at once." + if(1) + usr << "[src] now picks up all items in a tile at once." + if(0) + usr << "[src] now picks up one item at a time." + +// Empty all the contents onto the current turf +/obj/item/weapon/storage/verb/quick_empty() + set name = "Empty Contents" + set category = "Object" + + if((!ishuman(usr) && (loc != usr)) || usr.stat || usr.restrained() ||!usr.canmove) + return + + do_quick_empty() + +// Empty all the contents onto the current turf, without checking the user's status. +/obj/item/weapon/storage/proc/do_quick_empty() + var/turf/T = get_turf(src) + if(usr) + hide_from(usr) + for(var/obj/item/I in contents) + remove_from_storage(I, T) + + +/obj/item/weapon/storage/New() + ..() + if(allow_quick_empty) + verbs += /obj/item/weapon/storage/verb/quick_empty + else + verbs -= /obj/item/weapon/storage/verb/quick_empty + + if(allow_quick_gather) + verbs += /obj/item/weapon/storage/verb/toggle_gathering_mode + else + verbs -= /obj/item/weapon/storage/verb/toggle_gathering_mode + + boxes = new /obj/screen/storage() + boxes.name = "storage" + boxes.master = src + boxes.icon_state = "block" + boxes.screen_loc = "7,7 to 10,8" + boxes.layer = HUD_LAYER + boxes.plane = HUD_PLANE + closer = new /obj/screen/close() + closer.master = src + closer.icon_state = "backpack_close" + closer.layer = ABOVE_HUD_LAYER + closer.plane = ABOVE_HUD_PLANE + orient2hud() + + +/obj/item/weapon/storage/Destroy() + for(var/obj/O in contents) + O.mouse_opacity = initial(O.mouse_opacity) + + close_all() + qdel(boxes) + qdel(closer) + return ..() + + +/obj/item/weapon/storage/emp_act(severity) + if(!isliving(loc)) + for(var/obj/O in contents) + O.emp_act(severity) + ..() + + +/obj/item/weapon/storage/attack_self(mob/user) + //Clicking on itself will empty it, if it has the verb to do that. + if(user.get_active_held_item() == src) + if(verbs.Find(/obj/item/weapon/storage/verb/quick_empty)) + quick_empty() + +/obj/item/weapon/storage/handle_atom_del(atom/A) + if(A in contents) + usr = null + remove_from_storage(A, loc) + +/obj/item/weapon/storage/contents_explosion(severity, target) + for(var/atom/A in contents) + A.ex_act(severity, target) + CHECK_TICK diff --git a/code/game/objects/items/weapons/storage/toolbox.dm b/code/game/objects/items/weapons/storage/toolbox.dm new file mode 100644 index 0000000..c5d2cf6 --- /dev/null +++ b/code/game/objects/items/weapons/storage/toolbox.dm @@ -0,0 +1,136 @@ +/obj/item/weapon/storage/toolbox + name = "toolbox" + desc = "Danger. Very robust." + icon_state = "red" + item_state = "toolbox_red" + flags = CONDUCT + force = 12 + throwforce = 12 + throw_speed = 2 + throw_range = 7 + w_class = 4 + materials = list(MAT_METAL = 500) + origin_tech = "combat=1;engineering=1" + attack_verb = list("robusted") + hitsound = 'sound/weapons/wrench.ogg' + +/obj/item/weapon/storage/toolbox/suicide_act(mob/user) + user.visible_message("[user] robusts [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit suicide!") + return (BRUTELOSS) + +/obj/item/weapon/storage/toolbox/emergency + name = "emergency toolbox" + icon_state = "red" + item_state = "toolbox_red" + +/obj/item/weapon/storage/toolbox/emergency/New() + ..() + new /obj/item/weapon/crowbar/red(src) + new /obj/item/weapon/weldingtool/mini(src) + new /obj/item/weapon/extinguisher/mini(src) + if(prob(50)) + new /obj/item/device/flashlight(src) + else + new /obj/item/device/flashlight/flare(src) + new /obj/item/device/radio/off(src) + +/obj/item/weapon/storage/toolbox/mechanical + name = "mechanical toolbox" + icon_state = "blue" + item_state = "toolbox_blue" + +/obj/item/weapon/storage/toolbox/mechanical/New() + ..() + new /obj/item/weapon/screwdriver(src) + new /obj/item/weapon/wrench(src) + new /obj/item/weapon/weldingtool(src) + new /obj/item/weapon/crowbar(src) + new /obj/item/device/analyzer(src) + new /obj/item/weapon/wirecutters(src) + +/obj/item/weapon/storage/toolbox/electrical + name = "electrical toolbox" + icon_state = "yellow" + item_state = "toolbox_yellow" + +/obj/item/weapon/storage/toolbox/electrical/New() + ..() + var/pickedcolor = pick("red","yellow","green","blue","pink","orange","cyan","white") + new /obj/item/weapon/screwdriver(src) + new /obj/item/weapon/wirecutters(src) + new /obj/item/device/t_scanner(src) + new /obj/item/weapon/crowbar(src) + new /obj/item/stack/cable_coil(src,30,pickedcolor) + new /obj/item/stack/cable_coil(src,30,pickedcolor) + if(prob(5)) + new /obj/item/clothing/gloves/color/yellow(src) + else + new /obj/item/stack/cable_coil(src,30,pickedcolor) + +/obj/item/weapon/storage/toolbox/syndicate + name = "suspicious looking toolbox" + icon_state = "syndicate" + item_state = "toolbox_syndi" + origin_tech = "combat=2;syndicate=1;engineering=2" + silent = 1 + force = 15 + throwforce = 18 + +/obj/item/weapon/storage/toolbox/syndicate/New() + ..() + new /obj/item/weapon/screwdriver/nuke(src) + new /obj/item/weapon/wrench(src) + new /obj/item/weapon/weldingtool/largetank(src) + new /obj/item/weapon/crowbar/red(src) + new /obj/item/weapon/wirecutters(src, "red") + new /obj/item/device/multitool(src) + new /obj/item/clothing/gloves/combat(src) + +/obj/item/weapon/storage/toolbox/drone + name = "mechanical toolbox" + icon_state = "blue" + item_state = "toolbox_blue" + +/obj/item/weapon/storage/toolbox/drone/New() + ..() + var/pickedcolor = pick("red","yellow","green","blue","pink","orange","cyan","white") + new /obj/item/weapon/screwdriver(src) + new /obj/item/weapon/wrench(src) + new /obj/item/weapon/weldingtool(src) + new /obj/item/weapon/crowbar(src) + new /obj/item/stack/cable_coil(src,30,pickedcolor) + new /obj/item/weapon/wirecutters(src) + new /obj/item/device/multitool(src) + +/obj/item/weapon/storage/toolbox/brass + name = "brass box" + desc = "A huge brass box with several indentations in its surface." + icon_state = "brassbox" + w_class = 5 + max_w_class = 3 + max_combined_w_class = 28 + storage_slots = 28 + slowdown = 1 + flags = HANDSLOW + attack_verb = list("robusted", "crushed", "smashed") + var/proselytizer_type = /obj/item/clockwork/clockwork_proselytizer/scarab + +/obj/item/weapon/storage/toolbox/brass/prefilled/New() + ..() + new proselytizer_type(src) + new /obj/item/weapon/screwdriver/brass(src) + new /obj/item/weapon/wirecutters/brass(src) + new /obj/item/weapon/wrench/brass(src) + new /obj/item/weapon/crowbar/brass(src) + new /obj/item/weapon/weldingtool/experimental/brass(src) + +/obj/item/weapon/storage/toolbox/brass/prefilled/ratvar + var/slab_type = /obj/item/clockwork/slab/scarab + +/obj/item/weapon/storage/toolbox/brass/prefilled/ratvar/New() + ..() + new slab_type(src) + +/obj/item/weapon/storage/toolbox/brass/prefilled/ratvar/admin + slab_type = /obj/item/clockwork/slab/debug + proselytizer_type = /obj/item/clockwork/clockwork_proselytizer/scarab/debug diff --git a/code/game/objects/items/weapons/storage/uplink_kits.dm b/code/game/objects/items/weapons/storage/uplink_kits.dm new file mode 100644 index 0000000..4264653 --- /dev/null +++ b/code/game/objects/items/weapons/storage/uplink_kits.dm @@ -0,0 +1,336 @@ +/obj/item/weapon/storage/box/syndicate/ + +/obj/item/weapon/storage/box/syndicate/New() + ..() + switch (pickweight(list("bloodyspai" = 3, "stealth" = 2, "bond" = 2, "screwed" = 2, "sabotage" = 3, "guns" = 2, "murder" = 2, "implant" = 1, "hacker" = 3, "lordsingulo" = 1, "darklord" = 1, "sniper" = 1, "metaops" = 1, "ninja" = 1))) + if("bloodyspai") // 27 tc now this is more right + new /obj/item/clothing/under/chameleon(src) // 2 tc since it's not the full set + new /obj/item/clothing/mask/chameleon(src) // Goes with above + new /obj/item/weapon/card/id/syndicate(src) // 2 tc + new /obj/item/clothing/shoes/chameleon(src) // 2 tc + new /obj/item/device/camera_bug(src) // 1 tc + new /obj/item/device/multitool/ai_detect(src) // 1 tc + new /obj/item/device/encryptionkey/syndicate(src) // 2 tc + new /obj/item/weapon/reagent_containers/syringe/mulligan(src) // 4 tc + new /obj/item/weapon/switchblade(src) //I'll count this as 2 tc + new /obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate (src) // 2 tc this shit heals + new /obj/item/device/flashlight/emp(src) // 2 tc + new /obj/item/device/chameleon(src) // 7 tc + return + + if("stealth") // 31 tc + new /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow(src) + new /obj/item/weapon/pen/sleepy(src) + new /obj/item/device/healthanalyzer/rad_laser(src) + new /obj/item/device/chameleon(src) + new /obj/item/weapon/soap/syndie(src) + new /obj/item/clothing/glasses/thermal/syndi(src) + return + + if("bond") // 29 tc + new /obj/item/weapon/gun/projectile/automatic/pistol(src) + new /obj/item/weapon/suppressor(src) + new /obj/item/ammo_box/magazine/m10mm(src) + new /obj/item/ammo_box/magazine/m10mm(src) + new /obj/item/clothing/under/chameleon(src) + new /obj/item/weapon/card/id/syndicate(src) + new /obj/item/weapon/reagent_containers/syringe/stimulants(src) + + return + + if("screwed") // 29 tc + new /obj/item/device/sbeacondrop/bomb(src) + new /obj/item/weapon/grenade/syndieminibomb(src) + new /obj/item/device/sbeacondrop/powersink(src) + new /obj/item/clothing/suit/space/syndicate/black/red(src) + new /obj/item/clothing/head/helmet/space/syndicate/black/red(src) + new /obj/item/device/encryptionkey/syndicate(src) + return + + if("guns") // 28 tc now + new /obj/item/weapon/gun/projectile/revolver(src) + new /obj/item/ammo_box/a357(src) + new /obj/item/ammo_box/a357(src) + new /obj/item/weapon/card/emag(src) + new /obj/item/weapon/grenade/plastic/c4(src) + new /obj/item/clothing/gloves/color/latex/nitrile(src) + new /obj/item/clothing/mask/gas/clown_hat(src) + new /obj/item/clothing/under/suit_jacket/really_black(src) + return + + if("murder") // 28 tc now + new /obj/item/weapon/melee/energy/sword/saber(src) + new /obj/item/clothing/glasses/thermal/syndi(src) + new /obj/item/weapon/card/emag(src) + new /obj/item/clothing/shoes/chameleon(src) + new /obj/item/device/encryptionkey/syndicate(src) + new /obj/item/weapon/grenade/syndieminibomb(src) + return + + if("implant") // 55+ tc holy shit what the fuck this is a lottery disguised as fun boxes isn't it? + new /obj/item/weapon/implanter/freedom(src) + new /obj/item/weapon/implanter/uplink(src) + new /obj/item/weapon/implanter/emp(src) + new /obj/item/weapon/implanter/adrenalin(src) + new /obj/item/weapon/implanter/explosive(src) + new /obj/item/weapon/implanter/storage(src) + return + + if("hacker") // 26 tc + new /obj/item/weapon/aiModule/syndicate(src) + new /obj/item/weapon/card/emag(src) + new /obj/item/device/encryptionkey/binary(src) + new /obj/item/weapon/aiModule/toyAI(src) + new /obj/item/device/multitool/ai_detect(src) + return + + if("lordsingulo") // 24 tc + new /obj/item/device/sbeacondrop(src) + new /obj/item/clothing/suit/space/syndicate/black/red(src) + new /obj/item/clothing/head/helmet/space/syndicate/black/red(src) + new /obj/item/weapon/card/emag(src) + return + + if("sabotage") // 26 tc now + new /obj/item/weapon/grenade/plastic/c4 (src) + new /obj/item/weapon/grenade/plastic/c4 (src) + new /obj/item/device/doorCharge(src) + new /obj/item/device/doorCharge(src) + new /obj/item/device/camera_bug(src) + new /obj/item/device/sbeacondrop/powersink(src) + new /obj/item/weapon/cartridge/syndicate(src) + new /obj/item/weapon/storage/toolbox/syndicate(src) //To actually get to those places + new /obj/item/pizzabox/bomb + + if("darklord") //20 tc + tk + summon item close enough for now + new /obj/item/weapon/melee/energy/sword/saber(src) + new /obj/item/weapon/melee/energy/sword/saber(src) + new /obj/item/weapon/dnainjector/telemut/darkbundle(src) + new /obj/item/clothing/suit/hooded/chaplain_hoodie(src) + new /obj/item/weapon/card/id/syndicate(src) + new /obj/item/clothing/shoes/chameleon(src) //because slipping while being a dark lord sucks + new /obj/item/weapon/spellbook/oneuse/summonitem(src) + return + + if("sniper") //This shit is unique so can't really balance it around tc, also no silencer because getting killed without ANY indicator on what killed you sucks + new /obj/item/weapon/gun/projectile/automatic/sniper_rifle(src) // 12 tc + new /obj/item/ammo_box/magazine/sniper_rounds/penetrator(src) + new /obj/item/clothing/glasses/thermal/syndi(src) + new /obj/item/clothing/gloves/color/latex/nitrile(src) + new /obj/item/clothing/mask/gas/clown_hat(src) + new /obj/item/clothing/under/suit_jacket/really_black(src) + return + + if("metaops") // 30 tc + new /obj/item/clothing/suit/space/hardsuit/syndi(src) // 8 tc + new /obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/unrestricted(src) // 8 tc + new /obj/item/weapon/implanter/explosive(src) // 2 tc + new /obj/item/ammo_box/magazine/m12g/buckshot(src) // 2 tc + new /obj/item/ammo_box/magazine/m12g/buckshot(src) // 2 tc + new /obj/item/weapon/grenade/plastic/c4 (src) // 1 tc + new /obj/item/weapon/grenade/plastic/c4 (src) // 1 tc + new /obj/item/weapon/card/emag(src) // 6 tc + return + + if("ninja") // 33 tc worth + new /obj/item/weapon/katana(src) // Unique , hard to tell how much tc this is worth. 8 tc? + new /obj/item/weapon/implanter/adrenalin(src) // 8 tc + new /obj/item/weapon/throwing_star(src) // ~5 tc for all 6 + new /obj/item/weapon/throwing_star(src) + new /obj/item/weapon/throwing_star(src) + new /obj/item/weapon/throwing_star(src) + new /obj/item/weapon/throwing_star(src) + new /obj/item/weapon/throwing_star(src) + new /obj/item/weapon/storage/belt/military/assault(src) // 3 tc + new /obj/item/weapon/card/id/syndicate(src) // 2 tc + new /obj/item/device/chameleon(src) // 7 tc + +/obj/item/weapon/storage/box/syndie_kit + name = "box" + desc = "A sleek, sturdy box." + icon_state = "box_of_doom" + +/obj/item/weapon/storage/box/syndie_kit/imp_freedom + name = "boxed freedom implant (with injector)" + +/obj/item/weapon/storage/box/syndie_kit/imp_freedom/New() + ..() + var/obj/item/weapon/implanter/O = new(src) + O.imp = new /obj/item/weapon/implant/freedom(O) + O.update_icon() + return + +/*/obj/item/weapon/storage/box/syndie_kit/imp_compress + name = "Compressed Matter Implant (with injector)" +/obj/item/weapon/storage/box/syndie_kit/imp_compress/New() + new /obj/item/weapon/implanter/compressed(src) + ..() + return +*/ + +/obj/item/weapon/storage/box/syndie_kit/imp_microbomb + name = "Microbomb Implant (with injector)" + +/obj/item/weapon/storage/box/syndie_kit/imp_microbomb/New() + var/obj/item/weapon/implanter/O = new(src) + O.imp = new /obj/item/weapon/implant/explosive(O) + O.update_icon() + ..() + return + +/obj/item/weapon/storage/box/syndie_kit/imp_macrobomb + name = "Macrobomb Implant (with injector)" + +/obj/item/weapon/storage/box/syndie_kit/imp_macrobomb/New() + var/obj/item/weapon/implanter/O = new(src) + O.imp = new /obj/item/weapon/implant/explosive/macro(O) + O.update_icon() + ..() + return + +/obj/item/weapon/storage/box/syndie_kit/imp_uplink + name = "boxed uplink implant (with injector)" + +/obj/item/weapon/storage/box/syndie_kit/imp_uplink/New() + ..() + var/obj/item/weapon/implanter/O = new(src) + O.imp = new /obj/item/weapon/implant/uplink(O) + O.update_icon() + return + +/obj/item/weapon/storage/box/syndie_kit/bioterror + name = "bioterror syringe box" + +/obj/item/weapon/storage/box/syndie_kit/bioterror/New() + ..() + for(var/i in 1 to 7) + new /obj/item/weapon/reagent_containers/syringe/bioterror(src) + return + +/obj/item/weapon/storage/box/syndie_kit/imp_adrenal + name = "boxed adrenal implant (with injector)" + +/obj/item/weapon/storage/box/syndie_kit/imp_adrenal/New() + ..() + var/obj/item/weapon/implanter/O = new(src) + O.imp = new /obj/item/weapon/implant/adrenalin(O) + O.update_icon() + return + +/obj/item/weapon/storage/box/syndie_kit/imp_storage + name = "boxed storage implant (with injector)" + +/obj/item/weapon/storage/box/syndie_kit/imp_storage/New() + ..() + new /obj/item/weapon/implanter/storage(src) + return + +/obj/item/weapon/storage/box/syndie_kit/space + name = "boxed space suit and helmet" + can_hold = list(/obj/item/clothing/suit/space/syndicate, /obj/item/clothing/head/helmet/space/syndicate) + max_w_class = 3 + +/obj/item/weapon/storage/box/syndie_kit/space/New() + ..() + new /obj/item/clothing/suit/space/syndicate/black/red(src) // Black and red is so in right now + new /obj/item/clothing/head/helmet/space/syndicate/black/red(src) + return + +/obj/item/weapon/storage/box/syndie_kit/emp + name = "boxed EMP kit" + +/obj/item/weapon/storage/box/syndie_kit/emp/New() + ..() + new /obj/item/weapon/grenade/empgrenade(src) + new /obj/item/weapon/grenade/empgrenade(src) + new /obj/item/weapon/grenade/empgrenade(src) + new /obj/item/weapon/grenade/empgrenade(src) + new /obj/item/weapon/grenade/empgrenade(src) + new /obj/item/weapon/implanter/emp(src) + +/obj/item/weapon/storage/box/syndie_kit/chemical + name = "boxed chemical kit" + storage_slots = 14 + +/obj/item/weapon/storage/box/syndie_kit/chemical/New() + ..() + new /obj/item/weapon/reagent_containers/glass/bottle/polonium(src) + new /obj/item/weapon/reagent_containers/glass/bottle/venom(src) + new /obj/item/weapon/reagent_containers/glass/bottle/neurotoxin2(src) + new /obj/item/weapon/reagent_containers/glass/bottle/formaldehyde(src) + new /obj/item/weapon/reagent_containers/glass/bottle/cyanide(src) + new /obj/item/weapon/reagent_containers/glass/bottle/histamine(src) + new /obj/item/weapon/reagent_containers/glass/bottle/initropidril(src) + new /obj/item/weapon/reagent_containers/glass/bottle/pancuronium(src) + new /obj/item/weapon/reagent_containers/glass/bottle/sodium_thiopental(src) + new /obj/item/weapon/reagent_containers/glass/bottle/coniine(src) + new /obj/item/weapon/reagent_containers/glass/bottle/curare(src) + new /obj/item/weapon/reagent_containers/glass/bottle/amanitin(src) + new /obj/item/weapon/reagent_containers/syringe(src) + return + +/obj/item/weapon/storage/box/syndie_kit/atmosgasgrenades + name = "Atmos Grenades" + +/obj/item/weapon/storage/box/syndie_kit/atmosgasgrenades/New() + ..() + new /obj/item/weapon/grenade/clusterbuster/plasma(src) + new /obj/item/weapon/grenade/clusterbuster/n2o(src) + new /obj/item/weapon/grenade/clusterbuster/freon(src) + +/obj/item/weapon/storage/box/syndie_kit/nuke + name = "box" + +/obj/item/weapon/storage/box/syndie_kit/nuke/New() + ..() + new /obj/item/weapon/screwdriver/nuke(src) + new /obj/item/nuke_core_container(src) + new /obj/item/weapon/paper/nuke_instructions(src) + +/obj/item/weapon/storage/box/syndie_kit/tuberculosisgrenade + name = "boxed virus grenade kit" + +/obj/item/weapon/storage/box/syndie_kit/tuberculosisgrenade/New() + ..() + new /obj/item/weapon/grenade/chem_grenade/tuberculosis(src) + for(var/i in 1 to 5) + new /obj/item/weapon/reagent_containers/hypospray/medipen/tuberculosiscure(src) + new /obj/item/weapon/reagent_containers/syringe(src) + new /obj/item/weapon/reagent_containers/glass/bottle/tuberculosiscure(src) + +/obj/item/weapon/storage/box/syndie_kit/chameleon + name = "chameleon kit" + +/obj/item/weapon/storage/box/syndie_kit/chameleon/New() + ..() + new /obj/item/clothing/under/chameleon(src) + new /obj/item/clothing/suit/chameleon(src) + new /obj/item/clothing/gloves/chameleon(src) + new /obj/item/clothing/shoes/chameleon(src) + new /obj/item/clothing/glasses/chameleon(src) + new /obj/item/clothing/head/chameleon(src) + new /obj/item/clothing/mask/chameleon(src) + new /obj/item/weapon/storage/backpack/chameleon(src) + new /obj/item/device/radio/headset/chameleon(src) + new /obj/item/weapon/stamp/chameleon(src) + new /obj/item/device/pda/chameleon(src) + new /obj/item/weapon/gun/energy/laser/chameleon(src) + +//5*(2*4) = 5*8 = 45, 45 damage if you hit one person with all 5 stars. +//Not counting the damage it will do while embedded (2*4 = 8, at 15% chance) +/obj/item/weapon/storage/box/syndie_kit/throwing_weapons/New() + ..() + contents = list() + new /obj/item/weapon/throwing_star(src) + new /obj/item/weapon/throwing_star(src) + new /obj/item/weapon/throwing_star(src) + new /obj/item/weapon/throwing_star(src) + new /obj/item/weapon/throwing_star(src) + new /obj/item/weapon/restraints/legcuffs/bola/tactical(src) + new /obj/item/weapon/restraints/legcuffs/bola/tactical(src) + +/obj/item/weapon/storage/box/syndie_kit/cutouts/New() + ..() + for(var/i in 1 to 3) + new/obj/item/cardboard_cutout/adaptive(src) + new/obj/item/toy/crayon/rainbow(src) diff --git a/code/game/objects/items/weapons/storage/wallets.dm b/code/game/objects/items/weapons/storage/wallets.dm new file mode 100644 index 0000000..154e884 --- /dev/null +++ b/code/game/objects/items/weapons/storage/wallets.dm @@ -0,0 +1,89 @@ +/obj/item/weapon/storage/wallet + name = "wallet" + desc = "It can hold a few small and personal things." + storage_slots = 4 + icon_state = "wallet" + w_class = 2 + resistance_flags = FLAMMABLE + can_hold = list( + /obj/item/stack/spacecash, + /obj/item/weapon/card, + /obj/item/clothing/mask/cigarette, + /obj/item/device/flashlight/pen, + /obj/item/seeds, + /obj/item/stack/medical, + /obj/item/toy/crayon, + /obj/item/weapon/coin, + /obj/item/weapon/dice, + /obj/item/weapon/disk, + /obj/item/weapon/implanter, + /obj/item/weapon/lighter, + /obj/item/weapon/lipstick, + /obj/item/weapon/match, + /obj/item/weapon/paper, + /obj/item/weapon/pen, + /obj/item/weapon/photo, + /obj/item/weapon/reagent_containers/dropper, + /obj/item/weapon/reagent_containers/syringe, + /obj/item/weapon/screwdriver, + /obj/item/weapon/stamp) + slot_flags = SLOT_ID + + var/obj/item/weapon/card/id/front_id = null + var/list/combined_access = list() + + +/obj/item/weapon/storage/wallet/remove_from_storage(obj/item/W, atom/new_location) + . = ..(W, new_location) + if(.) + if(istype(W, /obj/item/weapon/card/id)) + if(W == front_id) + front_id = null + refreshID() + update_icon() + +/obj/item/weapon/storage/wallet/proc/refreshID() + combined_access.Cut() + for(var/obj/item/weapon/card/id/I in contents) + if(!front_id) + front_id = I + update_icon() + combined_access |= I.access + +/obj/item/weapon/storage/wallet/handle_item_insertion(obj/item/W, prevent_warning = 0) + . = ..() + if(.) + if(istype(W, /obj/item/weapon/card/id)) + refreshID() + +/obj/item/weapon/storage/wallet/update_icon() + icon_state = "wallet" + if(front_id) + icon_state = "wallet_[front_id.icon_state]" + + + +/obj/item/weapon/storage/wallet/GetID() + return front_id + +/obj/item/weapon/storage/wallet/GetAccess() + if(combined_access.len) + return combined_access + else + return ..() + +/obj/item/weapon/storage/wallet/random/New() + ..() + var/item1_type = pick( /obj/item/stack/spacecash/c10,/obj/item/stack/spacecash/c100,/obj/item/stack/spacecash/c1000,/obj/item/stack/spacecash/c20,/obj/item/stack/spacecash/c200,/obj/item/stack/spacecash/c50, /obj/item/stack/spacecash/c500) + var/item2_type + if(prob(50)) + item2_type = pick( /obj/item/stack/spacecash/c10,/obj/item/stack/spacecash/c100,/obj/item/stack/spacecash/c1000,/obj/item/stack/spacecash/c20,/obj/item/stack/spacecash/c200,/obj/item/stack/spacecash/c50, /obj/item/stack/spacecash/c500) + var/item3_type = pick( /obj/item/weapon/coin/silver, /obj/item/weapon/coin/silver, /obj/item/weapon/coin/gold, /obj/item/weapon/coin/iron, /obj/item/weapon/coin/iron, /obj/item/weapon/coin/iron ) + + spawn(2) + if(item1_type) + new item1_type(src) + if(item2_type) + new item2_type(src) + if(item3_type) + new item3_type(src) diff --git a/code/game/objects/items/weapons/stunbaton.dm b/code/game/objects/items/weapons/stunbaton.dm new file mode 100644 index 0000000..c40bbbe --- /dev/null +++ b/code/game/objects/items/weapons/stunbaton.dm @@ -0,0 +1,197 @@ +/obj/item/weapon/melee/baton + name = "stunbaton" + desc = "A stun baton for incapacitating people with." + icon_state = "stunbaton" + item_state = "baton" + slot_flags = SLOT_BELT + force = 10 + throwforce = 7 + w_class = 3 + origin_tech = "combat=2" + attack_verb = list("beaten") + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 50, bio = 0, rad = 0, fire = 80, acid = 80) + + var/stunforce = 7 + var/status = 0 + var/obj/item/weapon/stock_parts/cell/high/bcell = null + var/hitcost = 1000 + var/throw_hit_chance = 35 + +/obj/item/weapon/melee/baton/suicide_act(mob/user) + user.visible_message("[user] is putting the live [name] in [user.p_their()] mouth! It looks like [user.p_theyre()] trying to commit suicide!") + return (FIRELOSS) + +/obj/item/weapon/melee/baton/New() + ..() + update_icon() + return + +/obj/item/weapon/melee/baton/throw_impact(atom/hit_atom) + ..() + //Only mob/living types have stun handling + if(status && prob(throw_hit_chance) && isliving(hit_atom)) + baton_stun(hit_atom) + +/obj/item/weapon/melee/baton/loaded/New() //this one starts with a cell pre-installed. + ..() + bcell = new(src) + update_icon() + +/obj/item/weapon/melee/baton/proc/deductcharge(chrgdeductamt) + if(bcell) + . = bcell.use(chrgdeductamt) + if(bcell.charge >= hitcost) // If after the deduction the baton doesn't have enough charge for a stun hit it turns off. + return + if(status) + status = 0 + update_icon() + playsound(loc, "sparks", 75, 1, -1) + return 0 + + +/obj/item/weapon/melee/baton/update_icon() + if(status) + icon_state = "[initial(name)]_active" + else if(!bcell) + icon_state = "[initial(name)]_nocell" + else + icon_state = "[initial(name)]" + +/obj/item/weapon/melee/baton/examine(mob/user) + ..() + if(bcell) + user <<"The baton is [round(bcell.percent())]% charged." + else + user <<"The baton does not have a power source installed." + +/obj/item/weapon/melee/baton/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/weapon/stock_parts/cell)) + var/obj/item/weapon/stock_parts/cell/C = W + if(bcell) + user << "[src] already has a cell." + else + if(C.maxcharge < hitcost) + user << "[src] requires a higher capacity cell." + return + if(!user.unEquip(W)) + return + W.loc = src + bcell = W + user << "You install a cell in [src]." + update_icon() + + else if(istype(W, /obj/item/weapon/screwdriver)) + if(bcell) + bcell.updateicon() + bcell.loc = get_turf(src.loc) + bcell = null + user << "You remove the cell from [src]." + status = 0 + update_icon() + else + return ..() + +/obj/item/weapon/melee/baton/attack_self(mob/user) + if(bcell && bcell.charge > hitcost) + status = !status + user << "[src] is now [status ? "on" : "off"]." + playsound(loc, "sparks", 75, 1, -1) + else + status = 0 + if(!bcell) + user << "[src] does not have a power source!" + else + user << "[src] is out of charge." + update_icon() + add_fingerprint(user) + +/obj/item/weapon/melee/baton/attack(mob/M, mob/living/carbon/human/user) + if(status && user.disabilities & CLUMSY && prob(50)) + user.visible_message("[user] accidentally hits themself with [src]!", \ + "You accidentally hit yourself with [src]!") + user.Weaken(stunforce*3) + deductcharge(hitcost) + return + + if(iscyborg(M)) + ..() + return + + if(!isliving(M)) + return + + var/mob/living/L = M + + if(user.a_intent != "harm") + if(status) + if(baton_stun(L, user)) + user.do_attack_animation(L) + return + else + L.visible_message("[user] has prodded [L] with [src]. Luckily it was off.", \ + "[user] has prodded you with [src]. Luckily it was off") + else + if(status) + baton_stun(L, user) + ..() + + +/obj/item/weapon/melee/baton/proc/baton_stun(mob/living/L, mob/user) + if(ishuman(L)) + var/mob/living/carbon/human/H = L + if(H.check_shields(0, "[user]'s [name]", src, MELEE_ATTACK)) //No message; check_shields() handles that + playsound(L, 'sound/weapons/Genhit.ogg', 50, 1) + return 0 + if(iscyborg(loc)) + var/mob/living/silicon/robot/R = loc + if(!R || !R.cell || !R.cell.use(hitcost)) + return 0 + else + if(!deductcharge(hitcost)) + return 0 + + L.Stun(stunforce) + L.Weaken(stunforce) + L.apply_effect(STUTTER, stunforce) + if(user) + user.lastattacked = L + L.lastattacker = user + L.visible_message("[user] has stunned [L] with [src]!", \ + "[user] has stunned you with [src]!") + add_logs(user, L, "stunned") + + playsound(loc, 'sound/weapons/Egloves.ogg', 50, 1, -1) + + if(ishuman(L)) + var/mob/living/carbon/human/H = L + H.forcesay(hit_appends) + + + return 1 + +/obj/item/weapon/melee/baton/emp_act(severity) + deductcharge(1000 / severity) + ..() + +//Makeshift stun baton. Replacement for stun gloves. +/obj/item/weapon/melee/baton/cattleprod + name = "stunprod" + desc = "An improvised stun baton." + icon_state = "stunprod_nocell" + item_state = "prod" + w_class = 4 + force = 3 + throwforce = 5 + stunforce = 5 + hitcost = 2000 + throw_hit_chance = 10 + slot_flags = SLOT_BACK + var/obj/item/device/assembly/igniter/sparkler = 0 + +/obj/item/weapon/melee/baton/cattleprod/New() + ..() + sparkler = new (src) + +/obj/item/weapon/melee/baton/cattleprod/baton_stun() + if(sparkler.activate()) + ..() diff --git a/code/game/objects/items/weapons/tanks/jetpack.dm b/code/game/objects/items/weapons/tanks/jetpack.dm new file mode 100644 index 0000000..29d22ef --- /dev/null +++ b/code/game/objects/items/weapons/tanks/jetpack.dm @@ -0,0 +1,201 @@ +/obj/item/weapon/tank/jetpack + name = "jetpack (empty)" + desc = "A tank of compressed gas for use as propulsion in zero-gravity areas. Use with caution." + icon_state = "jetpack" + item_state = "jetpack" + w_class = 4 + distribute_pressure = ONE_ATMOSPHERE * O2STANDARD + actions_types = list(/datum/action/item_action/set_internals, /datum/action/item_action/toggle_jetpack, /datum/action/item_action/jetpack_stabilization) + var/gas_type = "o2" + var/on = FALSE + var/stabilizers = FALSE + var/datum/effect_system/trail_follow/ion/ion_trail + +/obj/item/weapon/tank/jetpack/New() + ..() + if(gas_type) + air_contents.assert_gas(gas_type) + air_contents.gases[gas_type][MOLES] = (6 * ONE_ATMOSPHERE) * volume / (R_IDEAL_GAS_EQUATION * T20C) + + ion_trail = new + ion_trail.set_up(src) + +/obj/item/weapon/tank/jetpack/ui_action_click(mob/user, actiontype) + if(actiontype == /datum/action/item_action/toggle_jetpack) + cycle(user) + else if(actiontype == /datum/action/item_action/jetpack_stabilization) + if(on) + stabilizers = !stabilizers + user << "You turn the jetpack stabilization [stabilizers ? "on" : "off"]." + else + toggle_internals(user) + + +/obj/item/weapon/tank/jetpack/proc/cycle(mob/user) + if(user.incapacitated()) + return + + if(!on) + turn_on() + user << "You turn the jetpack on." + else + turn_off() + user << "You turn the jetpack off." + for(var/X in actions) + var/datum/action/A = X + A.UpdateButtonIcon() + + +/obj/item/weapon/tank/jetpack/proc/turn_on() + on = TRUE + icon_state = "[initial(icon_state)]-on" + ion_trail.start() + +/obj/item/weapon/tank/jetpack/proc/turn_off() + on = FALSE + stabilizers = FALSE + icon_state = initial(icon_state) + ion_trail.stop() + +/obj/item/weapon/tank/jetpack/proc/allow_thrust(num, mob/living/user) + if(!on) + return + if((num < 0.005 || air_contents.total_moles() < num)) + turn_off() + return + + var/datum/gas_mixture/removed = air_contents.remove(num) + if(removed.total_moles() < 0.005) + turn_off() + return + + var/turf/T = get_turf(user) + T.assume_air(removed) + + return 1 + +/obj/item/weapon/tank/jetpack/suicide_act(mob/user) + if (istype(user,/mob/living/carbon/human/)) + var/mob/living/carbon/human/H = user + H.forcesay("WHAT THE FUCK IS CARBON DIOXIDE?") + H.visible_message("[user] is suffocating [user.p_them()]self with [src]! It looks like [user.p_they()] didn't read what that jetpack says!") + return (OXYLOSS) + else + ..() + +/obj/item/weapon/tank/jetpack/void + name = "void jetpack (oxygen)" + desc = "It works well in a void." + icon_state = "jetpack-void" + item_state = "jetpack-void" + +/obj/item/weapon/tank/jetpack/oxygen + name = "jetpack (oxygen)" + desc = "A tank of compressed oxygen for use as propulsion in zero-gravity areas. Use with caution." + icon_state = "jetpack" + item_state = "jetpack" + +/obj/item/weapon/tank/jetpack/oxygen/harness + name = "jet harness (oxygen)" + desc = "A lightweight tactical harness, used by those who don't want to be weighed down by traditional jetpacks." + icon_state = "jetpack-mini" + item_state = "jetpack-mini" + volume = 40 + throw_range = 7 + w_class = 3 + +/obj/item/weapon/tank/jetpack/oxygen/captain + name = "\improper Captain's jetpack" + desc = "A compact, lightweight jetpack containing a high amount of compressed oxygen." + icon_state = "jetpack-captain" + item_state = "jetpack-captain" + w_class = 3 + volume = 90 + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF //steal objective items are hard to destroy. + +/obj/item/weapon/tank/jetpack/carbondioxide + name = "jetpack (carbon dioxide)" + desc = "A tank of compressed carbon dioxide for use as propulsion in zero-gravity areas. Painted black to indicate that it should not be used as a source for internals." + icon_state = "jetpack-black" + item_state = "jetpack-black" + distribute_pressure = 0 + gas_type = "co2" + + +/obj/item/weapon/tank/jetpack/suit + name = "hardsuit jetpack upgrade" + desc = "A modular, compact set of thrusters designed to integrate with a hardsuit. It is fueled by a tank inserted into the suit's storage compartment." + origin_tech = "materials=4;magnets=4;engineering=5" + icon_state = "jetpack-upgrade" + item_state = "jetpack-black" + w_class = 3 + actions_types = list(/datum/action/item_action/toggle_jetpack, /datum/action/item_action/jetpack_stabilization) + volume = 1 + slot_flags = null + gas_type = null + var/datum/gas_mixture/temp_air_contents + var/obj/item/weapon/tank/internals/tank = null + +/obj/item/weapon/tank/jetpack/suit/New() + ..() + STOP_PROCESSING(SSobj, src) + temp_air_contents = air_contents + +/obj/item/weapon/tank/jetpack/suit/attack_self() + return + +/obj/item/weapon/tank/jetpack/suit/cycle(mob/user) + if(!istype(loc, /obj/item/clothing/suit/space/hardsuit)) + user << "\The [src] must be connected to a hardsuit!" + return + + var/mob/living/carbon/human/H = user + if(!istype(H.s_store, /obj/item/weapon/tank/internals)) + user << "You need a tank in your suit storage!" + return + ..() + +/obj/item/weapon/tank/jetpack/suit/turn_on() + if(!istype(loc, /obj/item/clothing/suit/space/hardsuit) || !ishuman(loc.loc)) + return + var/mob/living/carbon/human/H = loc.loc + tank = H.s_store + air_contents = tank.air_contents + START_PROCESSING(SSobj, src) + ..() + +/obj/item/weapon/tank/jetpack/suit/turn_off() + tank = null + air_contents = temp_air_contents + STOP_PROCESSING(SSobj, src) + ..() + +/obj/item/weapon/tank/jetpack/suit/process() + if(!istype(loc, /obj/item/clothing/suit/space/hardsuit) || !ishuman(loc.loc)) + turn_off() + return + var/mob/living/carbon/human/H = loc.loc + if(!tank || tank != H.s_store) + turn_off() + return + ..() + + +//Return a jetpack that the mob can use +//Back worn jetpacks, hardsuit internal packs, and so on. +//Used in Process_Spacemove() and wherever you want to check for/get a jetpack + +/mob/proc/get_jetpack() + return + +/mob/living/carbon/get_jetpack() + var/obj/item/weapon/tank/jetpack/J = back + if(istype(J)) + return J + +/mob/living/carbon/human/get_jetpack() + var/obj/item/weapon/tank/jetpack/J = ..() + if(!istype(J) && istype(wear_suit, /obj/item/clothing/suit/space/hardsuit)) + var/obj/item/clothing/suit/space/hardsuit/C = wear_suit + J = C.jetpack + return J diff --git a/code/game/objects/items/weapons/tanks/tank_types.dm b/code/game/objects/items/weapons/tanks/tank_types.dm new file mode 100644 index 0000000..4fcf764 --- /dev/null +++ b/code/game/objects/items/weapons/tanks/tank_types.dm @@ -0,0 +1,181 @@ +/* Types of tanks! + * Contains: + * Oxygen + * Anesthetic + * Air + * Plasma + * Emergency Oxygen + */ + +/* + * Oxygen + */ +/obj/item/weapon/tank/internals/oxygen + name = "oxygen tank" + desc = "A tank of oxygen." + icon_state = "oxygen" + distribute_pressure = TANK_DEFAULT_RELEASE_PRESSURE + force = 10 + dog_fashion = /datum/dog_fashion/back + + +/obj/item/weapon/tank/internals/oxygen/New() + ..() + air_contents.assert_gas("o2") + air_contents.gases["o2"][MOLES] = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) + return + + +/obj/item/weapon/tank/internals/oxygen/yellow + desc = "A tank of oxygen, this one is yellow." + icon_state = "oxygen_f" + dog_fashion = null + +/obj/item/weapon/tank/internals/oxygen/red + desc = "A tank of oxygen, this one is red." + icon_state = "oxygen_fr" + dog_fashion = null + + +/* + * Anesthetic + */ +/obj/item/weapon/tank/internals/anesthetic + name = "anesthetic tank" + desc = "A tank with an N2O/O2 gas mix." + icon_state = "anesthetic" + item_state = "an_tank" + force = 10 + +/obj/item/weapon/tank/internals/anesthetic/New() + ..() + air_contents.assert_gases("o2", "n2o") + air_contents.gases["o2"][MOLES] = (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * O2STANDARD + air_contents.gases["n2o"][MOLES] = (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * N2STANDARD + return + +/* + * Air + */ +/obj/item/weapon/tank/internals/air + name = "air tank" + desc = "Mixed anyone?" + icon_state = "oxygen" + force = 10 + dog_fashion = /datum/dog_fashion/back + +/obj/item/weapon/tank/internals/air/New() + ..() + air_contents.assert_gases("o2","n2") + air_contents.gases["o2"][MOLES] = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * O2STANDARD + air_contents.gases["n2"][MOLES] = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * N2STANDARD + return + + +/* + * Plasma + */ +/obj/item/weapon/tank/internals/plasma + name = "plasma tank" + desc = "Contains dangerous plasma. Do not inhale. Warning: extremely flammable." + icon_state = "plasma" + flags = CONDUCT + slot_flags = null //they have no straps! + force = 8 + + +/obj/item/weapon/tank/internals/plasma/New() + ..() + air_contents.assert_gas("plasma") + air_contents.gases["plasma"][MOLES] = (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) + return + +/obj/item/weapon/tank/internals/plasma/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/weapon/flamethrower)) + var/obj/item/weapon/flamethrower/F = W + if ((!F.status)||(F.ptank)) + return + src.master = F + F.ptank = src + user.unEquip(src) + src.loc = F + F.update_icon() + else + return ..() + +/obj/item/weapon/tank/internals/plasma/full/New() + ..() + air_contents.assert_gas("plasma") + air_contents.gases["plasma"][MOLES] = (10*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) + return + + +/* + * Plasmaman Plasma Tank + */ + +/obj/item/weapon/tank/internals/plasmaman + name = "plasmaman plasma tank" + desc = "A tank of plasma gas." + icon_state = "plasmaman_tank" + item_state = "plasmaman_tank" + force = 10 + distribute_pressure = TANK_DEFAULT_RELEASE_PRESSURE + +/obj/item/weapon/tank/internals/plasmaman/New() + ..() + air_contents.assert_gas("plasma") + air_contents.gases["plasma"][MOLES] = (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) + return + +/obj/item/weapon/tank/internals/plasmaman/full/New() + ..() + air_contents.assert_gas("plasma") + air_contents.gases["plasma"][MOLES] = (10*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) + return + + +/obj/item/weapon/tank/internals/plasmaman/belt + icon_state = "plasmaman_tank_belt" + item_state = "plasmaman_tank_belt" + slot_flags = SLOT_BELT + force = 5 + +/obj/item/weapon/tank/internals/plasmaman/belt/full/New() + ..() + air_contents.assert_gas("plasma") + air_contents.gases["plasma"][MOLES] = (10*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) + return + + + +/* + * Emergency Oxygen + */ +/obj/item/weapon/tank/internals/emergency_oxygen + name = "emergency oxygen tank" + desc = "Used for emergencies. Contains very little oxygen, so try to conserve it until you actually need it." + icon_state = "emergency" + flags = CONDUCT + slot_flags = SLOT_BELT + w_class = 2 + force = 4 + distribute_pressure = TANK_DEFAULT_RELEASE_PRESSURE + volume = 3 //Tiny. Real life equivalents only have 21 breaths of oxygen in them. They're EMERGENCY tanks anyway -errorage (dangercon 2011) + + +/obj/item/weapon/tank/internals/emergency_oxygen/New() + ..() + air_contents.assert_gas("o2") + air_contents.gases["o2"][MOLES] = (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) + return + +/obj/item/weapon/tank/internals/emergency_oxygen/engi + name = "extended-capacity emergency oxygen tank" + icon_state = "emergency_engi" + volume = 6 + +/obj/item/weapon/tank/internals/emergency_oxygen/double + name = "double emergency oxygen tank" + icon_state = "emergency_engi" + volume = 10 diff --git a/code/game/objects/items/weapons/tanks/tanks.dm b/code/game/objects/items/weapons/tanks/tanks.dm new file mode 100644 index 0000000..4c2f7c5 --- /dev/null +++ b/code/game/objects/items/weapons/tanks/tanks.dm @@ -0,0 +1,275 @@ +/obj/item/weapon/tank + name = "tank" + icon = 'icons/obj/tank.dmi' + flags = CONDUCT + slot_flags = SLOT_BACK + hitsound = 'sound/weapons/smash.ogg' + pressure_resistance = ONE_ATMOSPHERE * 5 + force = 5 + throwforce = 10 + throw_speed = 1 + throw_range = 4 + actions_types = list(/datum/action/item_action/set_internals) + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 10, bio = 0, rad = 0, fire = 80, acid = 30) + var/datum/gas_mixture/air_contents = null + var/distribute_pressure = ONE_ATMOSPHERE + var/integrity = 3 + var/volume = 70 + +/obj/item/weapon/tank/ui_action_click(mob/user) + toggle_internals(user) + +/obj/item/weapon/tank/proc/toggle_internals(mob/user) + var/mob/living/carbon/human/H = user + if(!istype(H)) + return + + if(H.internal == src) + H << "You close [src] valve." + H.internal = null + H.update_internals_hud_icon(0) + else + if(!H.getorganslot("breathing_tube")) + if(!H.wear_mask) + H << "You need a mask!" + return + if(H.wear_mask.mask_adjusted) + H.wear_mask.adjustmask(H) + if(!(H.wear_mask.flags & MASKINTERNALS)) + H << "[H.wear_mask] can't use [src]!" + return + + if(H.internal) + H << "You switch your internals to [src]." + else + H << "You open [src] valve." + H.internal = src + H.update_internals_hud_icon(1) + H.update_action_buttons_icon() + + +/obj/item/weapon/tank/New() + ..() + + air_contents = new(volume) //liters + air_contents.temperature = T20C + + START_PROCESSING(SSobj, src) + +/obj/item/weapon/tank/Destroy() + if(air_contents) + qdel(air_contents) + + STOP_PROCESSING(SSobj, src) + . = ..() + +/obj/item/weapon/tank/examine(mob/user) + var/obj/icon = src + ..() + if (istype(src.loc, /obj/item/assembly)) + icon = src.loc + if(!in_range(src, user)) + if (icon == src) user << "If you want any more information you'll need to get closer." + return + + user << "The pressure gauge reads [src.air_contents.return_pressure()] kPa." + + var/celsius_temperature = src.air_contents.temperature-T0C + var/descriptive + + if (celsius_temperature < 20) + descriptive = "cold" + else if (celsius_temperature < 40) + descriptive = "room temperature" + else if (celsius_temperature < 80) + descriptive = "lukewarm" + else if (celsius_temperature < 100) + descriptive = "warm" + else if (celsius_temperature < 300) + descriptive = "hot" + else + descriptive = "furiously hot" + + user << "It feels [descriptive]." + +/obj/item/weapon/tank/blob_act(obj/structure/blob/B) + if(B && B.loc == loc) + var/turf/location = get_turf(src) + if(!location) + qdel(src) + + if(air_contents) + location.assume_air(air_contents) + + qdel(src) + +/obj/item/weapon/tank/deconstruct(disassembled = TRUE) + if(!disassembled) + var/turf/T = get_turf(src) + if(T) + T.assume_air(air_contents) + air_update_turf() + playsound(src.loc, 'sound/effects/spray.ogg', 10, 1, -3) + qdel(src) + +/obj/item/weapon/tank/suicide_act(mob/user) + var/mob/living/carbon/human/H = user + user.visible_message("[user] is putting [src]'s valve to [user.p_their()] lips! It looks like [user.p_theyre()] trying to commit suicide!") + playsound(loc, 'sound/effects/spray.ogg', 10, 1, -3) + if (H && !qdeleted(H)) + for(var/obj/item/W in H) + H.unEquip(W) + if(prob(50)) + step(W, pick(alldirs)) + H.hair_style = "Bald" + H.update_hair() + H.bleed_rate = 5 + new /obj/effect/gibspawner/generic(H.loc, H.viruses, H.dna) + H.adjustBruteLoss(1000) //to make the body super-bloody + + return (BRUTELOSS) + +/obj/item/weapon/tank/attackby(obj/item/weapon/W, mob/user, params) + add_fingerprint(user) + if((istype(W, /obj/item/device/analyzer)) && get_dist(user, src) <= 1) + atmosanalyzer_scan(air_contents, user) + + else if(istype(W, /obj/item/device/assembly_holder)) + bomb_assemble(W,user) + else + . = ..() + +/obj/item/weapon/tank/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ + datum/tgui/master_ui = null, datum/ui_state/state = hands_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "tanks", name, 420, 200, master_ui, state) + ui.open() + +/obj/item/weapon/tank/ui_data(mob/user) + var/list/data = list() + data["tankPressure"] = round(air_contents.return_pressure() ? air_contents.return_pressure() : 0) + data["releasePressure"] = round(distribute_pressure ? distribute_pressure : 0) + data["defaultReleasePressure"] = round(TANK_DEFAULT_RELEASE_PRESSURE) + data["minReleasePressure"] = round(TANK_MIN_RELEASE_PRESSURE) + data["maxReleasePressure"] = round(TANK_MAX_RELEASE_PRESSURE) + + var/mob/living/carbon/C = user + if(!istype(C)) + C = loc.loc + if(!istype(C)) + return data + + if(C.internal == src) + data["connected"] = TRUE + + return data + +/obj/item/weapon/tank/ui_act(action, params) + if(..()) + return + switch(action) + if("pressure") + var/pressure = params["pressure"] + if(pressure == "reset") + pressure = TANK_DEFAULT_RELEASE_PRESSURE + . = TRUE + else if(pressure == "min") + pressure = TANK_MIN_RELEASE_PRESSURE + . = TRUE + else if(pressure == "max") + pressure = TANK_MAX_RELEASE_PRESSURE + . = TRUE + else if(pressure == "input") + pressure = input("New release pressure ([TANK_MIN_RELEASE_PRESSURE]-[TANK_MAX_RELEASE_PRESSURE] kPa):", name, distribute_pressure) as num|null + if(!isnull(pressure) && !..()) + . = TRUE + else if(text2num(pressure) != null) + pressure = text2num(pressure) + . = TRUE + if(.) + distribute_pressure = Clamp(round(pressure), TANK_MIN_RELEASE_PRESSURE, TANK_MAX_RELEASE_PRESSURE) + +/obj/item/weapon/tank/remove_air(amount) + return air_contents.remove(amount) + +/obj/item/weapon/tank/return_air() + return air_contents + +/obj/item/weapon/tank/assume_air(datum/gas_mixture/giver) + air_contents.merge(giver) + + check_status() + return 1 + +/obj/item/weapon/tank/proc/remove_air_volume(volume_to_return) + if(!air_contents) + return null + + var/tank_pressure = air_contents.return_pressure() + if(tank_pressure < distribute_pressure) + distribute_pressure = tank_pressure + + var/moles_needed = distribute_pressure*volume_to_return/(R_IDEAL_GAS_EQUATION*air_contents.temperature) + + return remove_air(moles_needed) + +/obj/item/weapon/tank/process() + //Allow for reactions + air_contents.react() + check_status() + + +/obj/item/weapon/tank/proc/check_status() + //Handle exploding, leaking, and rupturing of the tank + + if(!air_contents) + return 0 + + var/pressure = air_contents.return_pressure() + if(pressure > TANK_FRAGMENT_PRESSURE) + if(!istype(src.loc,/obj/item/device/transfer_valve)) + message_admins("Explosive tank rupture! Last key to touch the tank was [src.fingerprintslast].") + log_game("Explosive tank rupture! Last key to touch the tank was [src.fingerprintslast].") + //world << "\blue[x],[y] tank is exploding: [pressure] kPa" + //Give the gas a chance to build up more pressure through reacting + air_contents.react() + air_contents.react() + air_contents.react() + pressure = air_contents.return_pressure() + var/range = (pressure-TANK_FRAGMENT_PRESSURE)/TANK_FRAGMENT_SCALE + var/turf/epicenter = get_turf(loc) + + //world << "\blue Exploding Pressure: [pressure] kPa, intensity: [range]" + + explosion(epicenter, round(range*0.25), round(range*0.5), round(range), round(range*1.5)) + if(istype(src.loc,/obj/item/device/transfer_valve)) + qdel(src.loc) + else + qdel(src) + + else if(pressure > TANK_RUPTURE_PRESSURE) + //world << "\blue[x],[y] tank is rupturing: [pressure] kPa, integrity [integrity]" + if(integrity <= 0) + var/turf/T = get_turf(src) + if(!T) + return + T.assume_air(air_contents) + playsound(src.loc, 'sound/effects/spray.ogg', 10, 1, -3) + qdel(src) + else + integrity-- + + else if(pressure > TANK_LEAK_PRESSURE) + //world << "\blue[x],[y] tank is leaking: [pressure] kPa, integrity [integrity]" + if(integrity <= 0) + var/turf/T = get_turf(src) + if(!T) + return + var/datum/gas_mixture/leaked_gas = air_contents.remove_ratio(0.25) + T.assume_air(leaked_gas) + else + integrity-- + + else if(integrity < 3) + integrity++ diff --git a/code/game/objects/items/weapons/tanks/watertank.dm b/code/game/objects/items/weapons/tanks/watertank.dm new file mode 100644 index 0000000..3f784b5 --- /dev/null +++ b/code/game/objects/items/weapons/tanks/watertank.dm @@ -0,0 +1,475 @@ +//Hydroponics tank and base code +/obj/item/weapon/watertank + name = "backpack water tank" + desc = "A S.U.N.S.H.I.N.E. brand watertank backpack with nozzle to water plants." + icon = 'icons/obj/hydroponics/equipment.dmi' + icon_state = "waterbackpack" + item_state = "waterbackpack" + w_class = 4 + slot_flags = SLOT_BACK + slowdown = 1 + actions_types = list(/datum/action/item_action/toggle_mister) + obj_integrity = 200 + max_integrity = 200 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 30) + resistance_flags = FIRE_PROOF + + var/obj/item/weapon/noz + var/on = 0 + var/volume = 500 + +/obj/item/weapon/watertank/New() + ..() + create_reagents(volume) + noz = make_noz() + +/obj/item/weapon/watertank/ui_action_click() + toggle_mister() + +/obj/item/weapon/watertank/item_action_slot_check(slot, mob/user) + if(slot == user.getBackSlot()) + return 1 + +/obj/item/weapon/watertank/verb/toggle_mister() + set name = "Toggle Mister" + set category = "Object" + if (usr.get_item_by_slot(usr.getBackSlot()) != src) + usr << "The watertank must be worn properly to use!" + return + if(usr.incapacitated()) + return + on = !on + + var/mob/living/carbon/human/user = usr + if(on) + if(noz == null) + noz = make_noz() + + //Detach the nozzle into the user's hands + if(!user.put_in_hands(noz)) + on = 0 + user << "You need a free hand to hold the mister!" + return + noz.loc = user + else + //Remove from their hands and put back "into" the tank + remove_noz() + return + +/obj/item/weapon/watertank/proc/make_noz() + return new /obj/item/weapon/reagent_containers/spray/mister(src) + +/obj/item/weapon/watertank/equipped(mob/user, slot) + ..() + if(slot != slot_back) + remove_noz() + +/obj/item/weapon/watertank/proc/remove_noz() + if(ismob(noz.loc)) + var/mob/M = noz.loc + M.unEquip(noz, 1) + return + +/obj/item/weapon/watertank/Destroy() + if (on) + remove_noz() + qdel(noz) + noz = null + return ..() + +/obj/item/weapon/watertank/attack_hand(mob/user) + if(src.loc == user) + ui_action_click() + return + ..() + +/obj/item/weapon/watertank/MouseDrop(obj/over_object) + var/mob/M = src.loc + if(istype(M) && istype(over_object, /obj/screen/inventory/hand)) + var/obj/screen/inventory/hand/H = over_object + if(!M.unEquip(src)) + return + M.put_in_hand(src, H.held_index) + + +/obj/item/weapon/watertank/attackby(obj/item/W, mob/user, params) + if(W == noz) + remove_noz() + return 1 + else + return ..() + +// This mister item is intended as an extension of the watertank and always attached to it. +// Therefore, it's designed to be "locked" to the player's hands or extended back onto +// the watertank backpack. Allowing it to be placed elsewhere or created without a parent +// watertank object will likely lead to weird behaviour or runtimes. +/obj/item/weapon/reagent_containers/spray/mister + name = "water mister" + desc = "A mister nozzle attached to a water tank." + icon = 'icons/obj/hydroponics/equipment.dmi' + icon_state = "mister" + item_state = "mister" + w_class = 4 + amount_per_transfer_from_this = 50 + possible_transfer_amounts = list(25,50,100) + volume = 500 + flags = NODROP | OPENCONTAINER | NOBLUDGEON + slot_flags = 0 + + var/obj/item/weapon/watertank/tank + +/obj/item/weapon/reagent_containers/spray/mister/New(parent_tank) + ..() + if(check_tank_exists(parent_tank, src)) + tank = parent_tank + reagents = tank.reagents //This mister is really just a proxy for the tank's reagents + loc = tank + return + +/obj/item/weapon/reagent_containers/spray/mister/dropped(mob/user) + ..() + user << "The mister snaps back onto the watertank." + tank.on = 0 + loc = tank + +/obj/item/weapon/reagent_containers/spray/mister/attack_self() + return + +/proc/check_tank_exists(parent_tank, mob/living/carbon/human/M, obj/O) + if (!parent_tank || !istype(parent_tank, /obj/item/weapon/watertank)) //To avoid weird issues from admin spawns + M.unEquip(O) + qdel(0) + return 0 + else + return 1 + +/obj/item/weapon/reagent_containers/spray/mister/Move() + ..() + if(loc != tank.loc) + loc = tank.loc + +/obj/item/weapon/reagent_containers/spray/mister/afterattack(obj/target, mob/user, proximity) + if(target.loc == loc) //Safety check so you don't fill your mister with mutagen or something and then blast yourself in the face with it + return + ..() + +//Janitor tank +/obj/item/weapon/watertank/janitor + name = "backpack water tank" + desc = "A janitorial watertank backpack with nozzle to clean dirt and graffiti." + icon_state = "waterbackpackjani" + item_state = "waterbackpackjani" + +/obj/item/weapon/watertank/janitor/New() + ..() + reagents.add_reagent("cleaner", 500) + +/obj/item/weapon/reagent_containers/spray/mister/janitor + name = "janitor spray nozzle" + desc = "A janitorial spray nozzle attached to a watertank, designed to clean up large messes." + icon = 'icons/obj/hydroponics/equipment.dmi' + icon_state = "misterjani" + item_state = "misterjani" + amount_per_transfer_from_this = 5 + possible_transfer_amounts = list() + +/obj/item/weapon/watertank/janitor/make_noz() + return new /obj/item/weapon/reagent_containers/spray/mister/janitor(src) + +/obj/item/weapon/reagent_containers/spray/mister/janitor/attack_self(var/mob/user) + amount_per_transfer_from_this = (amount_per_transfer_from_this == 10 ? 5 : 10) + user << "You [amount_per_transfer_from_this == 10 ? "remove" : "fix"] the nozzle. You'll now use [amount_per_transfer_from_this] units per spray." + +//ATMOS FIRE FIGHTING BACKPACK + +#define EXTINGUISHER 0 +#define NANOFROST 1 +#define METAL_FOAM 2 + +/obj/item/weapon/watertank/atmos + name = "backpack firefighter tank" + desc = "A refridgerated and pressurized backpack tank with extinguisher nozzle, intended to fight fires. Swaps between extinguisher, nanofrost launcher, and metal foam dispenser for breaches. Nanofrost converts plasma in the air to nitrogen, but only if it is combusting at the time." + icon_state = "waterbackpackatmos" + item_state = "waterbackpackatmos" + volume = 200 + +/obj/item/weapon/watertank/atmos/New() + ..() + reagents.add_reagent("water", 200) + +/obj/item/weapon/watertank/atmos/make_noz() + return new /obj/item/weapon/extinguisher/mini/nozzle(src) + +/obj/item/weapon/watertank/atmos/dropped(mob/user) + ..() + icon_state = "waterbackpackatmos" + if(istype(noz, /obj/item/weapon/extinguisher/mini/nozzle)) + var/obj/item/weapon/extinguisher/mini/nozzle/N = noz + N.nozzle_mode = 0 + +/obj/item/weapon/extinguisher/mini/nozzle + name = "extinguisher nozzle" + desc = "A heavy duty nozzle attached to a firefighter's backpack tank." + icon = 'icons/obj/hydroponics/equipment.dmi' + icon_state = "atmos_nozzle" + item_state = "nozzleatmos" + safety = 0 + max_water = 200 + power = 8 + precision = 1 + cooling_power = 5 + w_class = 5 + flags = NODROP //Necessary to ensure that the nozzle and tank never seperate + var/obj/item/weapon/watertank/tank + var/nozzle_mode = 0 + var/metal_synthesis_cooldown = 0 + var/nanofrost_cooldown = 0 + +/obj/item/weapon/extinguisher/mini/nozzle/New(parent_tank) + if(check_tank_exists(parent_tank, src)) + tank = parent_tank + reagents = tank.reagents + max_water = tank.volume + loc = tank + return + +/obj/item/weapon/extinguisher/mini/nozzle/Move() + ..() + if(loc != tank.loc) + loc = tank + return + +/obj/item/weapon/extinguisher/mini/nozzle/attack_self(mob/user) + switch(nozzle_mode) + if(EXTINGUISHER) + nozzle_mode = NANOFROST + tank.icon_state = "waterbackpackatmos_1" + user << "Swapped to nanofrost launcher" + return + if(NANOFROST) + nozzle_mode = METAL_FOAM + tank.icon_state = "waterbackpackatmos_2" + user << "Swapped to metal foam synthesizer" + return + if(METAL_FOAM) + nozzle_mode = EXTINGUISHER + tank.icon_state = "waterbackpackatmos_0" + user << "Swapped to water extinguisher" + return + return + +/obj/item/weapon/extinguisher/mini/nozzle/dropped(mob/user) + ..() + user << "The nozzle snaps back onto the tank!" + tank.on = 0 + loc = tank + +/obj/item/weapon/extinguisher/mini/nozzle/afterattack(atom/target, mob/user) + if(nozzle_mode == EXTINGUISHER) + ..() + return + var/Adj = user.Adjacent(target) + if(Adj) + AttemptRefill(target, user) + if(nozzle_mode == NANOFROST) + if(Adj) + return //Safety check so you don't blast yourself trying to refill your tank + var/datum/reagents/R = reagents + if(R.total_volume < 100) + user << "You need at least 100 units of water to use the nanofrost launcher!" + return + if(nanofrost_cooldown) + user << "Nanofrost launcher is still recharging..." + return + nanofrost_cooldown = 1 + R.remove_any(100) + var/obj/effect/nanofrost_container/A = new /obj/effect/nanofrost_container(get_turf(src)) + log_game("[user.ckey] ([user.name]) used Nanofrost at [get_area(user)] ([user.x], [user.y], [user.z]).") + playsound(src,'sound/items/syringeproj.ogg',40,1) + for(var/a=0, a<5, a++) + step_towards(A, target) + sleep(2) + A.Smoke() + spawn(100) + if(src) + nanofrost_cooldown = 0 + return + if(nozzle_mode == METAL_FOAM) + if(!Adj|| !isturf(target)) + return + if(metal_synthesis_cooldown < 5) + var/obj/effect/particle_effect/foam/metal/F = PoolOrNew(/obj/effect/particle_effect/foam/metal, get_turf(target)) + F.amount = 0 + metal_synthesis_cooldown++ + spawn(100) + metal_synthesis_cooldown-- + else + user << "Metal foam mix is still being synthesized..." + return + +/obj/effect/nanofrost_container + name = "nanofrost container" + desc = "A frozen shell of ice containing nanofrost that freezes the surrounding area after activation." + icon = 'icons/effects/effects.dmi' + icon_state = "frozen_smoke_capsule" + mouse_opacity = 0 + pass_flags = PASSTABLE + +/obj/effect/nanofrost_container/proc/Smoke() + var/datum/effect_system/smoke_spread/freezing/S = new + S.set_up(2, src.loc, blasting=1) + S.start() + var/obj/effect/decal/cleanable/flour/F = new /obj/effect/decal/cleanable/flour(src.loc) + F.add_atom_colour("#B2FFFF", FIXED_COLOUR_PRIORITY) + F.name = "nanofrost residue" + F.desc = "Residue left behind from a nanofrost detonation. Perhaps there was a fire here?" + playsound(src,'sound/effects/bamf.ogg',100,1) + qdel(src) + +#undef EXTINGUISHER +#undef NANOFROST +#undef METAL_FOAM + +/obj/item/weapon/reagent_containers/chemtank + name = "backpack chemical injector" + desc = "A chemical autoinjector that can be carried on your back." + icon = 'icons/obj/hydroponics/equipment.dmi' + icon_state = "waterbackpackatmos" + item_state = "waterbackpackatmos" + w_class = 4 + slot_flags = SLOT_BACK + slowdown = 1 + actions_types = list(/datum/action/item_action/activate_injector) + + var/on = 0 + volume = 300 + var/usage_ratio = 5 //5 unit added per 1 removed + var/injection_amount = 1 + amount_per_transfer_from_this = 5 + flags = OPENCONTAINER + spillable = 0 + possible_transfer_amounts = list(5,10,15) + +/obj/item/weapon/reagent_containers/chemtank/ui_action_click() + toggle_injection() + +/obj/item/weapon/reagent_containers/chemtank/item_action_slot_check(slot, mob/user) + if(slot == slot_back) + return 1 + +/obj/item/weapon/reagent_containers/chemtank/proc/toggle_injection() + var/mob/living/carbon/human/user = usr + if(!istype(user)) + return + if (user.get_item_by_slot(slot_back) != src) + user << "The chemtank needs to be on your back before you can activate it!" + return + if(on) + turn_off() + else + turn_on() + +//Todo : cache these. +/obj/item/weapon/reagent_containers/chemtank/proc/update_filling() + cut_overlays() + + if(reagents.total_volume) + var/image/filling = image('icons/obj/reagentfillings.dmi',icon_state = "backpack-10") + + var/percent = round((reagents.total_volume / volume) * 100) + switch(percent) + if(0 to 15) + filling.icon_state = "backpack-10" + if(16 to 60) + filling.icon_state = "backpack50" + if(61 to INFINITY) + filling.icon_state = "backpack100" + + filling.color = mix_color_from_reagents(reagents.reagent_list) + add_overlay(filling) + +/obj/item/weapon/reagent_containers/chemtank/worn_overlays(var/isinhands = FALSE) //apply chemcolor and level + . = list() + //inhands + reagent_filling + if(!isinhands && reagents.total_volume) + var/image/filling = image('icons/obj/reagentfillings.dmi',icon_state = "backpackmob-10") + + var/percent = round((reagents.total_volume / volume) * 100) + switch(percent) + if(0 to 15) + filling.icon_state = "backpackmob-10" + if(16 to 60) + filling.icon_state = "backpackmob50" + if(61 to INFINITY) + filling.icon_state = "backpackmob100" + + filling.color = mix_color_from_reagents(reagents.reagent_list) + . += filling + +/obj/item/weapon/reagent_containers/chemtank/proc/turn_on() + on = 1 + START_PROCESSING(SSobj, src) + if(ismob(loc)) + loc << "[src] turns on." + +/obj/item/weapon/reagent_containers/chemtank/proc/turn_off() + on = 0 + STOP_PROCESSING(SSobj, src) + if(ismob(loc)) + loc << "[src] turns off." + +/obj/item/weapon/reagent_containers/chemtank/process() + if(!ishuman(loc)) + turn_off() + return + if(!reagents.total_volume) + turn_off() + return + var/mob/living/carbon/human/user = loc + if(user.back != src) + turn_off() + return + + var/used_amount = injection_amount/usage_ratio + reagents.reaction(user, INJECT,injection_amount,0) + reagents.trans_to(user,used_amount,multiplier=usage_ratio) + update_filling() + user.update_inv_back() //for overlays update + +/obj/item/weapon/reagent_containers/chemtank/stim/New() + ..() + reagents.add_reagent("stimulants_longterm", 300) + update_filling() + +//Operator backpack spray +/obj/item/weapon/watertank/operator + name = "backpack water tank" + desc = "A New Russian backpack spray for systematic cleansing of carbon lifeforms." + icon_state = "waterbackpackjani" + item_state = "waterbackpackjani" + w_class = 3 + volume = 2000 + slowdown = 0 + +/obj/item/weapon/watertank/operator/New() + ..() + reagents.add_reagent("mutagen",350) + reagents.add_reagent("napalm",125) + reagents.add_reagent("welding_fuel",125) + reagents.add_reagent("clf3",300) + reagents.add_reagent("cryptobiolin",350) + reagents.add_reagent("plasma",250) + reagents.add_reagent("condensedcapsaicin",500) + +/obj/item/weapon/reagent_containers/spray/mister/operator + name = "janitor spray nozzle" + desc = "A mister nozzle attached to several extended water tanks. It suspiciously has a compressor in the system and is labelled entirely in New Cyrillic." + icon = 'icons/obj/hydroponics/equipment.dmi' + icon_state = "misterjani" + item_state = "misterjani" + w_class = 4 + amount_per_transfer_from_this = 100 + possible_transfer_amounts = list(75,100,150) + +/obj/item/weapon/watertank/operator/make_noz() + return new /obj/item/weapon/reagent_containers/spray/mister/operator(src) \ No newline at end of file diff --git a/code/game/objects/items/weapons/teleportation.dm b/code/game/objects/items/weapons/teleportation.dm new file mode 100644 index 0000000..243d34b --- /dev/null +++ b/code/game/objects/items/weapons/teleportation.dm @@ -0,0 +1,184 @@ +/* Teleportation devices. + * Contains: + * Locator + * Hand-tele + */ + +/* + * Locator + */ +/obj/item/weapon/locator + name = "locator" + desc = "Used to track those with locater implants." + icon = 'icons/obj/device.dmi' + icon_state = "locator" + var/temp = null + var/frequency = 1451 + var/broadcasting = null + var/listening = 1 + flags = CONDUCT + w_class = 2 + item_state = "electronic" + throw_speed = 3 + throw_range = 7 + materials = list(MAT_METAL=400) + origin_tech = "magnets=3;bluespace=2" + +/obj/item/weapon/locator/attack_self(mob/user) + user.set_machine(src) + var/dat + if (src.temp) + dat = "[src.temp]

          Clear" + else + dat = {" +Persistent Signal Locator
          +Frequency: +- +- [format_frequency(src.frequency)] ++ ++
          + +Refresh"} + user << browse(dat, "window=radio") + onclose(user, "radio") + return + +/obj/item/weapon/locator/Topic(href, href_list) + ..() + if (usr.stat || usr.restrained()) + return + var/turf/current_location = get_turf(usr)//What turf is the user on? + if(!current_location||current_location.z==2)//If turf was not found or they're on z level 2. + usr << "The [src] is malfunctioning." + return + if(usr.contents.Find(src) || (in_range(src, usr) && isturf(loc))) + usr.set_machine(src) + if (href_list["refresh"]) + src.temp = "Persistent Signal Locator
          " + var/turf/sr = get_turf(src) + + if (sr) + src.temp += "Located Beacons:
          " + + for(var/obj/item/device/radio/beacon/W in teleportbeacons) + if (W.frequency == src.frequency) + var/turf/tr = get_turf(W) + if (tr.z == sr.z && tr) + var/direct = max(abs(tr.x - sr.x), abs(tr.y - sr.y)) + if (direct < 5) + direct = "very strong" + else + if (direct < 10) + direct = "strong" + else + if (direct < 20) + direct = "weak" + else + direct = "very weak" + src.temp += "[W.code]-[dir2text(get_dir(sr, tr))]-[direct]
          " + + src.temp += "Extranneous Signals:
          " + for (var/obj/item/weapon/implant/tracking/W in tracked_implants) + if (!W.implanted || !ismob(W.loc)) + continue + else + var/mob/M = W.loc + if (M.stat == 2) + if (M.timeofdeath + 6000 < world.time) + continue + + var/turf/tr = get_turf(W) + if (tr.z == sr.z && tr) + var/direct = max(abs(tr.x - sr.x), abs(tr.y - sr.y)) + if (direct < 20) + if (direct < 5) + direct = "very strong" + else + if (direct < 10) + direct = "strong" + else + direct = "weak" + src.temp += "[W.imp_in.name]-[dir2text(get_dir(sr, tr))]-[direct]
          " + + src.temp += "You are at \[[sr.x],[sr.y],[sr.z]\] in orbital coordinates.

          Refresh
          " + else + src.temp += "Processing Error: Unable to locate orbital position.
          " + else + if (href_list["freq"]) + src.frequency += text2num(href_list["freq"]) + src.frequency = sanitize_frequency(src.frequency) + else + if (href_list["temp"]) + src.temp = null + if (istype(src.loc, /mob)) + attack_self(src.loc) + else + for(var/mob/M in viewers(1, src)) + if (M.client) + src.attack_self(M) + return + + +/* + * Hand-tele + */ +/obj/item/weapon/hand_tele + name = "hand tele" + desc = "A portable item using blue-space technology." + icon = 'icons/obj/device.dmi' + icon_state = "hand_tele" + item_state = "electronic" + throwforce = 0 + w_class = 2 + throw_speed = 3 + throw_range = 5 + materials = list(MAT_METAL=10000) + origin_tech = "magnets=3;bluespace=4" + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 30, bio = 0, rad = 0, fire = 100, acid = 100) + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF + var/active_portals = 0 + +/obj/item/weapon/hand_tele/attack_self(mob/user) + var/turf/current_location = get_turf(user)//What turf is the user on? + var/area/current_area = current_location.loc + if(!current_location || current_area.noteleport || current_location.z > ZLEVEL_SPACEMAX || !isturf(user.loc))//If turf was not found or they're on z level 2 or >7 which does not currently exist. or if user is not located on a turf + user << "\The [src] is malfunctioning." + return + var/list/L = list( ) + for(var/obj/machinery/computer/teleporter/com in machines) + if(com.target) + var/area/A = get_area(com.target) + if(A.noteleport) + continue + if(com.power_station && com.power_station.teleporter_hub && com.power_station.engaged) + L["[get_area(com.target)] (Active)"] = com.target + else + L["[get_area(com.target)] (Inactive)"] = com.target + var/list/turfs = list( ) + for(var/turf/T in urange(10, orange=1)) + if(T.x>world.maxx-8 || T.x<8) + continue //putting them at the edge is dumb + if(T.y>world.maxy-8 || T.y<8) + continue + var/area/A = T.loc + if(A.noteleport) + continue + turfs += T + if(turfs.len) + L["None (Dangerous)"] = pick(turfs) + var/t1 = input(user, "Please select a teleporter to lock in on.", "Hand Teleporter") as null|anything in L + if (!t1 || user.get_active_held_item() != src || user.incapacitated()) + return + if(active_portals >= 3) + user.show_message("\The [src] is recharging!") + return + var/atom/T = L[t1] + var/area/A = get_area(T) + if(A.noteleport) + user << "\The [src] is malfunctioning." + return + user.show_message("Locked In.", 2) + var/obj/effect/portal/P = new /obj/effect/portal(get_turf(src), T, src) + try_move_adjacent(P) + active_portals++ + add_fingerprint(user) diff --git a/code/game/objects/items/weapons/teleprod.dm b/code/game/objects/items/weapons/teleprod.dm new file mode 100644 index 0000000..0ff48df --- /dev/null +++ b/code/game/objects/items/weapons/teleprod.dm @@ -0,0 +1,43 @@ +/obj/item/weapon/melee/baton/cattleprod/teleprod + name = "teleprod" + desc = "A prod with a bluespace crystal on the end. The crystal doesn't look too fun to touch." + w_class = 3 + icon_state = "teleprod_nocell" + item_state = "teleprod" + origin_tech = "combat=2;bluespace=4;materials=3" + slot_flags = null + +/obj/item/weapon/melee/baton/cattleprod/teleprod/attack(mob/living/carbon/M, mob/living/carbon/user)//handles making things teleport when hit + ..() + if(status && user.disabilities & CLUMSY && prob(50)) + user.visible_message("[user] accidentally hits themself with [src]!", \ + "You accidentally hit yourself with [src]!") + if(do_teleport(user, get_turf(user), 50))//honk honk + user.Weaken(stunforce*3) + deductcharge(hitcost) + else + user.Weaken(stunforce*3) + deductcharge(hitcost/4) + return + else + if(status) + if(!istype(M) && M.anchored) + return . + else + do_teleport(M, get_turf(M), 15) + +/obj/item/weapon/melee/baton/cattleprod/attackby(obj/item/I, mob/user, params)//handles sticking a crystal onto a stunprod to make a teleprod + if(istype(I, /obj/item/weapon/ore/bluespace_crystal)) + if(!bcell) + var/obj/item/weapon/melee/baton/cattleprod/teleprod/S = new /obj/item/weapon/melee/baton/cattleprod/teleprod + if(!remove_item_from_storage(user)) + user.unEquip(src) + user.unEquip(I) + user.put_in_hands(S) + user << "You place the bluespace crystal firmly into the igniter." + qdel(I) + qdel(src) + else + user.visible_message("You can't put the crystal onto the stunprod while it has a power cell installed!") + else + return ..() diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm new file mode 100644 index 0000000..e69499a --- /dev/null +++ b/code/game/objects/items/weapons/tools.dm @@ -0,0 +1,708 @@ +//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32 + +/* Tools! + * Note: Multitools are /obj/item/device + * + * Contains: + * Wrench + * Screwdriver + * Wirecutters + * Welding Tool + * Crowbar + */ + +/* + * Wrench + */ +/obj/item/weapon/wrench + name = "wrench" + desc = "A wrench with common uses. Can be found in your hand." + icon = 'icons/obj/tools.dmi' + icon_state = "wrench" + flags = CONDUCT + slot_flags = SLOT_BELT + force = 5 + throwforce = 7 + w_class = 2 + usesound = 'sound/items/Ratchet.ogg' + materials = list(MAT_METAL=150) + origin_tech = "materials=1;engineering=1" + attack_verb = list("bashed", "battered", "bludgeoned", "whacked") + hitsound = 'sound/weapons/wrench.ogg' + toolspeed = 1 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 30) + +/obj/item/weapon/wrench/suicide_act(mob/user) + user.visible_message("[user] is beating [user.p_them()]self to death with [src]! It looks like [user.p_theyre()] trying to commit suicide!") + playsound(loc, 'sound/weapons/genhit.ogg', 50, 1, -1) + return (BRUTELOSS) + +/obj/item/weapon/wrench/cyborg + name = "automatic wrench" + desc = "An advanced robotic wrench. Can be found in construction cyborgs." + icon = 'icons/obj/items_cyborg.dmi' + toolspeed = 2 + +/obj/item/weapon/wrench/brass + name = "brass wrench" + desc = "A brass wrench. It's faintly warm to the touch." + icon_state = "wrench_brass" + toolspeed = 2 + +/obj/item/weapon/wrench/power + name = "Hand Drill" + desc ="A simple powered drill with a bolt bit" + icon_state = "drill_bolt" + item_state = "drill" + usesound = 'sound/items/drill_use.ogg' + materials = list(MAT_METAL=150,MAT_SILVER=50,MAT_TITANIUM=25) + origin_tech = "materials=2;engineering=2" //done for balance reasons, making them high value for research, but harder to get + force = 8 //might or might not be too high, subject to change + throwforce = 8 + attack_verb = list("drilled", "screwed", "jabbed") + toolspeed = 4 + +/obj/item/weapon/wrench/power/attack_self(mob/user) + playsound(get_turf(user),'sound/items/change_drill.ogg',50,1) + var/obj/item/weapon/wirecutters/power/s_drill = new /obj/item/weapon/screwdriver/power + user << "You attach the screw driver bit to [src]." + user.unEquip(src) + user.put_in_active_hand(s_drill) + qdel(src) + +obj/item/weapon/wrench/power/suicide_act(mob/user) + user.visible_message("[user] is pressing [src] against [user.p_their()] head! It looks like [user.p_theyre()] trying to commit suicide!") + return (BRUTELOSS) + +/obj/item/weapon/wrench/medical + name = "medical wrench" + desc = "A medical wrench with common(medical?) uses. Can be found in your hand." + icon_state = "wrench_medical" + force = 2 //MEDICAL + throwforce = 4 + origin_tech = "materials=1;engineering=1;biotech=3" + attack_verb = list("wrenched", "medicaled", "tapped", "jabbed", "whacked") + +/obj/item/weapon/wrench/medical/suicide_act(mob/user) + user.visible_message("[user] is praying to the medical wrench to take [user.p_their()] soul. It looks like [user.p_theyre()] trying to commit suicide!") + // TODO Make them glow with the power of the M E D I C A L W R E N C H + // during their ascension + + // Stun stops them from wandering off + user.Stun(5) + playsound(loc, 'sound/effects/pray.ogg', 50, 1, -1) + + // Let the sound effect finish playing + sleep(20) + + if(!user) + return + + for(var/obj/item/W in user) + user.unEquip(W) + + var/obj/item/weapon/wrench/medical/W = new /obj/item/weapon/wrench/medical(loc) + W.add_fingerprint(user) + W.desc += " For some reason, it reminds you of [user.name]." + + if(!user) + return + + user.dust() + + return OXYLOSS + +/* + * Screwdriver + */ +/obj/item/weapon/screwdriver + name = "screwdriver" + desc = "You can be totally screwy with this." + icon = 'icons/obj/tools.dmi' + icon_state = null + flags = CONDUCT + slot_flags = SLOT_BELT + force = 5 + w_class = 1 + throwforce = 5 + throw_speed = 3 + throw_range = 5 + materials = list(MAT_METAL=75) + attack_verb = list("stabbed") + hitsound = 'sound/weapons/bladeslice.ogg' + usesound = 'sound/items/Screwdriver.ogg' + toolspeed = 1 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 30) + +/obj/item/weapon/screwdriver/suicide_act(mob/user) + user.visible_message("[user] is stabbing [src] into [user.p_their()] [pick("temple", "heart")]! It looks like [user.p_theyre()] trying to commit suicide!") + return(BRUTELOSS) + +/obj/item/weapon/screwdriver/New(loc, var/param_color = null) + ..() + if(!icon_state) + if(!param_color) + param_color = pick("red","blue","pink","brown","green","cyan","yellow") + icon_state = "screwdriver_[param_color]" + + if (prob(75)) + src.pixel_y = rand(0, 16) + return + +/obj/item/weapon/screwdriver/attack(mob/living/carbon/M, mob/living/carbon/user) + if(!istype(M)) + return ..() + if(user.zone_selected != "eyes" && user.zone_selected != "head") + return ..() + if(user.disabilities & CLUMSY && prob(50)) + M = user + return eyestab(M,user) + +/obj/item/weapon/screwdriver/brass + name = "brass screwdriver" + desc = "A screwdriver made of brass. The handle feels freezing cold." + icon_state = "screwdriver_brass" + toolspeed = 2 + +/obj/item/weapon/screwdriver/power + name = "Hand Drill" + desc = "A simple hand drill with a screwdriver bit attached." + icon_state = "drill_screw" + item_state = "drill" + materials = list(MAT_METAL=150,MAT_SILVER=50,MAT_TITANIUM=25) + origin_tech = "materials=2;engineering=2" //done for balance reasons, making them high value for research, but harder to get + force = 8 //might or might not be too high, subject to change + throwforce = 8 + throw_speed = 2 + throw_range = 3//it's heavier than a screw driver/wrench, so it does more damage, but can't be thrown as far + attack_verb = list("drilled", "screwed", "jabbed","whacked") + hitsound = 'sound/items/drill_hit.ogg' + usesound = 'sound/items/drill_use.ogg' + toolspeed = 4 + +/obj/item/weapon/screwdriver/power/suicide_act(mob/user) + user.visible_message("[user] is putting [src] to [user.p_their()] temple. It looks like [user.p_theyre()] trying to commit suicide!") + return(BRUTELOSS) + +/obj/item/weapon/screwdriver/power/attack_self(mob/user) + playsound(get_turf(user),'sound/items/change_drill.ogg',50,1) + var/obj/item/weapon/wrench/power/b_drill = new /obj/item/weapon/wrench/power + user << "You attach the bolt driver bit to [src]." + user.unEquip(src) + user.put_in_active_hand(b_drill) + qdel(src) + +/obj/item/weapon/screwdriver/cyborg + name = "powered screwdriver" + desc = "An electrical screwdriver, designed to be both precise and quick." + icon = 'icons/obj/items_cyborg.dmi' + icon_state = "screwdriver_cyborg" + usesound = 'sound/items/drill_use.ogg' + toolspeed = 2 + +/* + * Wirecutters + */ +/obj/item/weapon/wirecutters + name = "wirecutters" + desc = "This cuts wires." + icon = 'icons/obj/tools.dmi' + icon_state = null + flags = CONDUCT + slot_flags = SLOT_BELT + force = 6 + throw_speed = 3 + throw_range = 7 + w_class = 2 + materials = list(MAT_METAL=80) + attack_verb = list("pinched", "nipped") + hitsound = 'sound/items/Wirecutter.ogg' + usesound = 'sound/items/Wirecutter.ogg' + toolspeed = 1 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 30) + +/obj/item/weapon/wirecutters/New(loc, var/param_color = null) + ..() + if(!icon_state) + if(!param_color) + param_color = pick("yellow","red") + icon_state = "cutters_[param_color]" + +/obj/item/weapon/wirecutters/attack(mob/living/carbon/C, mob/user) + if(istype(C) && C.handcuffed && istype(C.handcuffed, /obj/item/weapon/restraints/handcuffs/cable)) + user.visible_message("[user] cuts [C]'s restraints with [src]!") + qdel(C.handcuffed) + C.handcuffed = null + if(C.buckled && C.buckled.buckle_requires_restraints) + C.buckled.unbuckle_mob(C) + C.update_handcuffed() + return + else + ..() + +/obj/item/weapon/wirecutters/suicide_act(mob/user) + user.visible_message("[user] is cutting at [user.p_their()] arteries with [src]! It looks like [user.p_theyre()] trying to commit suicide!") + playsound(loc, 'sound/items/Wirecutter.ogg', 50, 1, -1) + return (BRUTELOSS) + +/obj/item/weapon/wirecutters/brass + name = "brass wirecutters" + desc = "A pair of wirecutters made of brass. The handle feels freezing cold to the touch." + icon_state = "cutters_brass" + toolspeed = 2 + +/obj/item/weapon/wirecutters/cyborg + name = "wirecutters" + desc = "This cuts wires." + icon = 'icons/obj/items_cyborg.dmi' + icon_state = "cutters_cyborg" + toolspeed = 2 + +/obj/item/weapon/wirecutters/power + name = "Jaws of Life" + desc = "A set of jaws of life, the magic of science has managed to fit it down into a device small enough to fit in a tool belt. It's fitted with a cutting head." + icon_state = "jaws_cutter" + item_state = "jawsoflife" + origin_tech = "materials=2;engineering=2" + materials = list(MAT_METAL=150,MAT_SILVER=50,MAT_TITANIUM=25) + usesound = 'sound/items/jaws_cut.ogg' + toolspeed = 4 + +/obj/item/weapon/wirecutters/power/suicide_act(mob/user) + user.visible_message("[user] is wrapping \the [src] around [user.p_their()] neck. It looks like [user.p_theyre()] trying to rip [user.p_their()] head off!") + playsound(loc, 'sound/items/jaws_cut.ogg', 50, 1, -1) + if(iscarbon(user)) + var/mob/living/carbon/C = user + var/obj/item/bodypart/BP = C.get_bodypart("head") + if(BP) + BP.drop_limb() + playsound(loc,pick('sound/misc/desceration-01.ogg','sound/misc/desceration-02.ogg','sound/misc/desceration-01.ogg') ,50, 1, -1) + return (BRUTELOSS) + +/obj/item/weapon/wirecutters/power/attack_self(mob/user) + playsound(get_turf(user),"sound/items/change_jaws.ogg",50,1) + var/obj/item/weapon/crowbar/power/pryjaws = new /obj/item/weapon/crowbar/power + user << "You attach the pry jaws to [src]." + user.unEquip(src) + user.put_in_active_hand(pryjaws) + qdel(src) +/* + * Welding Tool + */ +/obj/item/weapon/weldingtool + name = "welding tool" + desc = "A standard edition welder provided by NanoTrasen." + icon = 'icons/obj/tools.dmi' + icon_state = "welder" + item_state = "welder" + flags = CONDUCT + slot_flags = SLOT_BELT + force = 3 + throwforce = 5 + hitsound = "swing_hit" + usesound = 'sound/items/Welder.ogg' + var/acti_sound = 'sound/items/WelderActivate.ogg' + var/deac_sound = 'sound/items/WelderDeactivate.ogg' + throw_speed = 3 + throw_range = 5 + w_class = 2 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 30) + resistance_flags = FIRE_PROOF + + materials = list(MAT_METAL=70, MAT_GLASS=30) + origin_tech = "engineering=1;plasmatech=1" + var/welding = 0 //Whether or not the welding tool is off(0), on(1) or currently welding(2) + var/status = 1 //Whether the welder is secured or unsecured (able to attach rods to it to make a flamethrower) + var/max_fuel = 20 //The max amount of fuel the welder can hold + var/change_icons = 1 + var/can_off_process = 0 + var/light_intensity = 2 //how powerful the emitted light is when used. + heat = 3800 + toolspeed = 1 + +/obj/item/weapon/weldingtool/New() + ..() + create_reagents(max_fuel) + reagents.add_reagent("welding_fuel", max_fuel) + update_icon() + return + + +/obj/item/weapon/weldingtool/proc/update_torch() + cut_overlays() + if(welding) + add_overlay("[initial(icon_state)]-on") + item_state = "[initial(item_state)]1" + else + item_state = "[initial(item_state)]" + + +/obj/item/weapon/weldingtool/update_icon() + if(change_icons) + var/ratio = get_fuel() / max_fuel + ratio = Ceiling(ratio*4) * 25 + if(ratio == 100) + icon_state = initial(icon_state) + else + icon_state = "[initial(icon_state)][ratio]" + update_torch() + return + + +/obj/item/weapon/weldingtool/process() + switch(welding) + if(0) + force = 3 + damtype = "brute" + update_icon() + if(!can_off_process) + STOP_PROCESSING(SSobj, src) + return + //Welders left on now use up fuel, but lets not have them run out quite that fast + if(1) + force = 15 + damtype = "fire" + if(prob(5)) + remove_fuel(1) + update_icon() + + //This is to start fires. process() is only called if the welder is on. + open_flame() + + +/obj/item/weapon/weldingtool/suicide_act(mob/user) + user.visible_message("[user] welds [user.p_their()] every orifice closed! It looks like [user.p_theyre()] trying to commit suicide!") + return (FIRELOSS) + + +/obj/item/weapon/weldingtool/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/screwdriver)) + flamethrower_screwdriver(I, user) + else if(istype(I, /obj/item/stack/rods)) + flamethrower_rods(I, user) + else + return ..() + + +/obj/item/weapon/weldingtool/attack(mob/living/carbon/human/H, mob/user) + if(!istype(H)) + return ..() + + var/obj/item/bodypart/affecting = H.get_bodypart(check_zone(user.zone_selected)) + + if(affecting && affecting.status == BODYPART_ROBOTIC && user.a_intent != "harm") + if(src.remove_fuel(1)) + playsound(loc, 'sound/items/Welder.ogg', 50, 1) + user.visible_message("[user] starts to fix some of the dents on [H]'s [affecting.name].", "You start fixing some of the dents on [H]'s [affecting.name].") + if(!do_mob(user, H, 50)) + return + item_heal_robotic(H, user, 5, 0) + else + return ..() + + +/obj/item/weapon/weldingtool/afterattack(atom/O, mob/user, proximity) + if(!proximity) return + + if(welding) + remove_fuel(1) + var/turf/location = get_turf(user) + location.hotspot_expose(700, 50, 1) + if(get_fuel() <= 0) + user.AddLuminosity(-light_intensity) + + if(isliving(O)) + var/mob/living/L = O + if(L.IgniteMob()) + message_admins("[key_name_admin(user)] set [key_name_admin(L)] on fire") + log_game("[key_name(user)] set [key_name(L)] on fire") + + +/obj/item/weapon/weldingtool/attack_self(mob/user) + switched_on(user) + if(welding) + SetLuminosity(0) + user.AddLuminosity(light_intensity) + update_icon() + + +//Returns the amount of fuel in the welder +/obj/item/weapon/weldingtool/proc/get_fuel() + return reagents.get_reagent_amount("welding_fuel") + + +//Removes fuel from the welding tool. If a mob is passed, it will try to flash the mob's eyes. This should probably be renamed to use() +/obj/item/weapon/weldingtool/proc/remove_fuel(amount = 1, mob/living/M = null) + if(!welding || !check_fuel()) + return 0 + if(get_fuel() >= amount) + reagents.remove_reagent("welding_fuel", amount) + check_fuel() + if(M) + M.flash_act(light_intensity) + return TRUE + else + if(M) + M << "You need more welding fuel to complete this task!" + return FALSE + + +//Turns off the welder if there is no more fuel (does this really need to be its own proc?) +/obj/item/weapon/weldingtool/proc/check_fuel(mob/user) + if(get_fuel() <= 0 && welding) + switched_on(user) + update_icon() + //mob icon update + if(ismob(loc)) + var/mob/M = loc + M.update_inv_hands(0) + + return 0 + return 1 + +//Switches the welder on +obj/item/weapon/weldingtool/proc/switched_on(mob/user) + if(!status) + user << "[src] can't be turned on while unsecured!" + return + welding = !welding + if(welding) + if(get_fuel() >= 1) + user << "You switch [src] on." + playsound(loc, acti_sound, 50, 1) + force = 15 + damtype = "fire" + hitsound = 'sound/items/welder.ogg' + update_icon() + START_PROCESSING(SSobj, src) + else + user << "You need more fuel!" + switched_off(user) + else + user << "You switch [src] off." + playsound(loc, deac_sound, 50, 1) + switched_off(user) + +//Switches the welder off +obj/item/weapon/weldingtool/proc/switched_off(mob/user) + welding = 0 + if(user == loc) //If player is holding the welder + user.AddLuminosity(-light_intensity) + SetLuminosity(0) + else + SetLuminosity(0) + + force = 3 + damtype = "brute" + hitsound = "swing_hit" + update_icon() + + +/obj/item/weapon/weldingtool/pickup(mob/user) + ..() + if(welding) + SetLuminosity(0) + user.AddLuminosity(light_intensity) + + +/obj/item/weapon/weldingtool/dropped(mob/user) + ..() + if(welding) + if(user) + user.AddLuminosity(-light_intensity) + SetLuminosity(light_intensity) + + +/obj/item/weapon/weldingtool/examine(mob/user) + ..() + user << "It contains [get_fuel()] unit\s of fuel out of [max_fuel]." + +/obj/item/weapon/weldingtool/is_hot() + return welding * heat + +//Returns whether or not the welding tool is currently on. +/obj/item/weapon/weldingtool/proc/isOn() + return welding + + +/obj/item/weapon/weldingtool/proc/flamethrower_screwdriver(obj/item/I, mob/user) + if(welding) + user << "Turn it off first!" + return + status = !status + if(status) + user << "You resecure [src]." + else + user << "[src] can now be attached and modified." + add_fingerprint(user) + +/obj/item/weapon/weldingtool/proc/flamethrower_rods(obj/item/I, mob/user) + if(!status) + var/obj/item/stack/rods/R = I + if (R.use(1)) + var/obj/item/weapon/flamethrower/F = new /obj/item/weapon/flamethrower(user.loc) + if(!remove_item_from_storage(F)) + user.unEquip(src) + loc = F + F.weldtool = src + add_fingerprint(user) + user << "You add a rod to a welder, starting to build a flamethrower." + user.put_in_hands(F) + else + user << "You need one rod to start building a flamethrower!" + +/obj/item/weapon/weldingtool/ignition_effect(atom/A, mob/user) + if(welding && remove_fuel(1, user)) + . = "[user] casually lights [A] with [src], what a badass." + else + . = "" + +/obj/item/weapon/weldingtool/largetank + name = "industrial welding tool" + desc = "A slightly larger welder with a larger tank." + icon_state = "indwelder" + max_fuel = 40 + materials = list(MAT_GLASS=60) + origin_tech = "engineering=2;plasmatech=2" + +/obj/item/weapon/weldingtool/largetank/cyborg + name = "integrated welding tool" + desc = "An advanced welder designed to be used in robotic systems." + icon = 'icons/obj/items_cyborg.dmi' + icon_state = "indwelder" + toolspeed = 2 + +/obj/item/weapon/weldingtool/largetank/flamethrower_screwdriver() + return + + +/obj/item/weapon/weldingtool/mini + name = "emergency welding tool" + desc = "A miniature welder used during emergencies." + icon_state = "miniwelder" + max_fuel = 10 + w_class = 1 + materials = list(MAT_METAL=30, MAT_GLASS=10) + change_icons = 0 + +/obj/item/weapon/weldingtool/mini/flamethrower_screwdriver() + return + + +/obj/item/weapon/weldingtool/hugetank + name = "upgraded industrial welding tool" + desc = "An upgraded welder based of the industrial welder." + icon_state = "upindwelder" + item_state = "upindwelder" + max_fuel = 80 + materials = list(MAT_METAL=70, MAT_GLASS=120) + origin_tech = "engineering=3;plasmatech=2" + +/obj/item/weapon/weldingtool/experimental + name = "experimental welding tool" + desc = "An experimental welder capable of self-fuel generation and less harmful to the eyes." + icon_state = "exwelder" + item_state = "exwelder" + max_fuel = 40 + materials = list(MAT_METAL=70, MAT_GLASS=120) + origin_tech = "materials=4;engineering=4;bluespace=3;plasmatech=4" + var/last_gen = 0 + change_icons = 0 + can_off_process = 1 + light_intensity = 1 + toolspeed = 2 + var/nextrefueltick = 0 + +/obj/item/weapon/weldingtool/experimental/brass + name = "brass welding tool" + desc = "A brass welder that seems to constantly refuel itself. It is faintly warm to the touch." + icon_state = "brasswelder" + item_state = "brasswelder" + + +/obj/item/weapon/weldingtool/experimental/process() + ..() + if(get_fuel() < max_fuel && nextrefueltick < world.time) + nextrefueltick = world.time + 10 + reagents.add_reagent("welding_fuel", 1) + + +/* + * Crowbar + */ + +/obj/item/weapon/crowbar + name = "pocket crowbar" + desc = "A small crowbar. This handy tool is useful for lots of things, such as prying floor tiles or opening unpowered doors." + icon = 'icons/obj/tools.dmi' + icon_state = "crowbar" + usesound = 'sound/items/Crowbar.ogg' + flags = CONDUCT + slot_flags = SLOT_BELT + force = 5 + throwforce = 7 + w_class = 2 + materials = list(MAT_METAL=50) + origin_tech = "engineering=1;combat=1" + attack_verb = list("attacked", "bashed", "battered", "bludgeoned", "whacked") + toolspeed = 1 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 30) + +/obj/item/weapon/crowbar/suicide_act(mob/user) + user.visible_message("[user] is beating [user.p_them()]self to death with [src]! It looks like [user.p_theyre()] trying to commit suicide!") + playsound(loc, 'sound/weapons/genhit.ogg', 50, 1, -1) + return (BRUTELOSS) + +/obj/item/weapon/crowbar/red + icon_state = "crowbar_red" + force = 8 + +/obj/item/weapon/crowbar/brass + name = "brass crowbar" + desc = "A brass crowbar. It feels faintly warm to the touch." + icon_state = "crowbar_brass" + toolspeed = 2 + +/obj/item/weapon/crowbar/large + name = "crowbar" + desc = "It's a big crowbar. It doesn't fit in your pockets, because it's big." + force = 12 + w_class = 3 + throw_speed = 3 + throw_range = 3 + materials = list(MAT_METAL=70) + icon_state = "crowbar_large" + item_state = "crowbar" + toolspeed = 2 + +/obj/item/weapon/crowbar/cyborg + name = "hydraulic crowbar" + desc = "A hydraulic prying tool, compact but powerful. Designed to replace crowbar in construction cyborgs." + icon = 'icons/obj/items_cyborg.dmi' + usesound = 'sound/items/jaws_pry.ogg' + force = 10 + toolspeed = 2 + +/obj/item/weapon/crowbar/power + name = "Jaws of Life" + desc = "A set of jaws of life, the magic of science has managed to fit it down into a device small enough to fit in a tool belt. It's fitted with a prying head" + icon_state = "jaws_pry" + item_state = "jawsoflife" + materials = list(MAT_METAL=150,MAT_SILVER=50,MAT_TITANIUM=25) + origin_tech = "materials=2;engineering=2" + usesound = 'sound/items/jaws_pry.ogg' + force = 15 + toolspeed = 4 + +/obj/item/weapon/crowbar/power/suicide_act(mob/user) + user.visible_message("[user] is putting [user.p_their()] head in [src], it looks like [user.p_theyre()] trying to commit suicide!") + playsound(loc, 'sound/items/jaws_pry.ogg', 50, 1, -1) + return (BRUTELOSS) + +/obj/item/weapon/crowbar/power/attack_self(mob/user) + playsound(get_turf(user),"sound/items/change_jaws.ogg",50,1) + var/obj/item/weapon/wirecutters/power/cutjaws = new /obj/item/weapon/wirecutters/power + user << "You attach the cutting jaws to [src]." + user.unEquip(src) + user.put_in_active_hand(cutjaws) + qdel(src) diff --git a/code/game/objects/items/weapons/twohanded.dm b/code/game/objects/items/weapons/twohanded.dm new file mode 100644 index 0000000..bde1bf5 --- /dev/null +++ b/code/game/objects/items/weapons/twohanded.dm @@ -0,0 +1,705 @@ +/* Two-handed Weapons + * Contains: + * Twohanded + * Fireaxe + * Double-Bladed Energy Swords + * Spears + * CHAINSAWS + * Bone Axe and Spear + */ + +/*################################################################## +##################### TWO HANDED WEAPONS BE HERE~ -Agouri :3 ######## +####################################################################*/ + +//Rewrote TwoHanded weapons stuff and put it all here. Just copypasta fireaxe to make new ones ~Carn +//This rewrite means we don't have two variables for EVERY item which are used only by a few weapons. +//It also tidies stuff up elsewhere. + + + + +/* + * Twohanded + */ +/obj/item/weapon/twohanded + /*var/wielded = 0 + var/force_unwielded = 0 + var/force_wielded = 0 + var/wieldsound = null + var/unwieldsound = null*/ + +/obj/item/weapon/proc/unwield(mob/living/carbon/user) + if(!wielded || !user) + return + wielded = 0 + if(force_unwielded) + force = force_unwielded + + if(!force_unwielded)//And now we're back to our original damage. + force = initial(force) + + var/sf = findtext(name," (Wielded)") + if(sf) + name = copytext(name,1,sf) + else //something wrong + name = "[initial(name)]" + update_icon() + if(iscyborg(user)) + user << "You free up your module." + else if(istype(src, /obj/item/weapon/twohanded/required)) + user << "You drop [src]." + else + user << "You are now carrying [src] with one hand." + if(unwieldsound) + playsound(loc, unwieldsound, 50, 1) + var/obj/item/weapon/twohanded/offhand/O = user.get_inactive_held_item() + if(O && istype(O)) + O.unwield() + return + +/obj/item/weapon/proc/wield(mob/living/carbon/user) + if(user.get_active_held_item() != src) + return + if(wielded) + return + if(ismonkey(user)) + user << "It's too heavy for you to wield fully." + return + if(user.get_inactive_held_item()) + user << "You need your other hand to be empty!" + return + if(user.get_num_arms() < 2) + user << "You don't have enough hands." + return + wielded = 1 + if(force_wielded) + force = force_wielded + + if(!force_wielded)//Does 25% more damange weilded + force *= 1.30 + + name = "[name] (Wielded)" + update_icon() + if(iscyborg(user)) + user << "You dedicate your module to [src]." + else + user << "You grab [src] with both hands." + if (wieldsound) + playsound(loc, wieldsound, 50, 1) + var/obj/item/weapon/twohanded/offhand/O = new(user) ////Let's reserve his other hand~ + O.name = "[name] - offhand" + O.desc = "Your second grip on [src]." + user.put_in_inactive_hand(O) + return + +/obj/item/weapon/dropped(mob/user) + ..() + //handles unwielding a twohanded weapon when dropped as well as clearing up the offhand + if(user) + var/obj/item/weapon/twohanded/O = user.get_inactive_held_item() + if(istype(O)) + O.unwield(user) + return unwield(user) + +/obj/item/weapon/update_icon() + return + +/obj/item/weapon/twohanded/attack_self(mob/user) + ..() + if(wielded) //Trying to unwield it + unwield(user) + else //Trying to wield it + wield(user) + + +/obj/item/weapon/AltClick(mob/user) + if(wielded) //Trying to unwield it + unwield(user) + else //Trying to wield it + wield(user) + +/obj/item/weapon/equip_to_best_slot(mob/M) + if(..()) + unwield(M) + return + +/obj/item/weapon/equipped(mob/user, slot) + ..() + if(!user.is_holding(src) && wielded) + unwield(user) + +///////////OFFHAND/////////////// +/obj/item/weapon/twohanded/offhand + name = "offhand" + icon_state = "offhand" + w_class = 5 + flags = ABSTRACT | NODROP + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF + +/obj/item/weapon/twohanded/offhand/unwield() + qdel(src) + +/obj/item/weapon/twohanded/offhand/wield() + qdel(src) + +///////////Two hand required objects/////////////// +//This is for objects that require two hands to even pick up +/obj/item/weapon/twohanded/required/ + w_class = 5 + +/obj/item/weapon/twohanded/required/attack_self() + return + +/obj/item/weapon/twohanded/required/mob_can_equip(mob/M, mob/equipper, slot, disable_warning = 0) + if(wielded && !slot_flags) + M << "[src] is too cumbersome to carry with anything but your hands!" + return 0 + return ..() + +/obj/item/weapon/twohanded/required/attack_hand(mob/user)//Can't even pick it up without both hands empty + var/obj/item/weapon/twohanded/required/H = user.get_inactive_held_item() + if(get_dist(src,user) > 1) + return 0 + if(H != null) + user << "[src] is too cumbersome to carry in one hand!" + return + if(src.loc != user) + wield(user) + ..() + +/obj/item/weapon/twohanded/required/equipped(mob/user, slot) + ..() + if(slot == slot_hands) + wield(user) + else + unwield(user) + +/* + * Fireaxe + */ +/obj/item/weapon/twohanded/fireaxe // DEM AXES MAN, marker -Agouri + icon_state = "fireaxe0" + name = "fire axe" + desc = "Truly, the weapon of a madman. Who would think to fight fire with an axe?" + force = 5 + throwforce = 15 + w_class = 4 + slot_flags = SLOT_BACK + force_unwielded = 5 + force_wielded = 24 + attack_verb = list("attacked", "chopped", "cleaved", "torn", "cut") + hitsound = 'sound/weapons/bladeslice.ogg' + sharpness = IS_SHARP + obj_integrity = 200 + max_integrity = 200 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 30) + resistance_flags = FIRE_PROOF + +/obj/item/weapon/twohanded/fireaxe/update_icon() //Currently only here to fuck with the on-mob icons. + icon_state = "fireaxe[wielded]" + return + +/obj/item/weapon/twohanded/fireaxe/suicide_act(mob/user) + user.visible_message("[user] axes [user.p_them()]self from head to toe! It looks like [user.p_theyre()] trying to commit suicide!") + return (BRUTELOSS) + +/obj/item/weapon/twohanded/fireaxe/afterattack(atom/A, mob/user, proximity) + if(!proximity) + return + if(wielded) //destroys windows and grilles in one hit + if(istype(A,/obj/structure/window)) + var/obj/structure/window/W = A + W.take_damage(200, BRUTE, "melee", 0) + else if(istype(A,/obj/structure/grille)) + var/obj/structure/grille/G = A + G.take_damage(40, BRUTE, "melee", 0) + + +/* + * Double-Bladed Energy Swords - Cheridan + */ +/obj/item/weapon/twohanded/dualsaber + icon_state = "dualsaber0" + name = "double-bladed energy sword" + desc = "Handle with care." + force = 3 + throwforce = 5 + throw_speed = 3 + throw_range = 5 + w_class = 2 + var/w_class_on = 4 + force_unwielded = 3 + force_wielded = 34 + wieldsound = 'sound/weapons/saberon.ogg' + unwieldsound = 'sound/weapons/saberoff.ogg' + hitsound = "swing_hit" + armour_penetration = 35 + origin_tech = "magnets=4;syndicate=5" + item_color = "green" + attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") + block_chance = 75 + obj_integrity = 200 + max_integrity = 200 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 70) + resistance_flags = FIRE_PROOF + var/hacked = 0 + +/obj/item/weapon/twohanded/dualsaber/New() + ..() + item_color = pick("red", "blue", "green", "purple") + +/obj/item/weapon/twohanded/dualsaber/Destroy() + STOP_PROCESSING(SSobj, src) + . = ..() + +/obj/item/weapon/twohanded/dualsaber/update_icon() + if(wielded) + icon_state = "dualsaber[item_color][wielded]" + else + icon_state = "dualsaber0" + clean_blood()//blood overlays get weird otherwise, because the sprite changes. + +/obj/item/weapon/twohanded/dualsaber/attack(mob/target, mob/living/carbon/human/user) + if(user.has_dna()) + if(user.dna.check_mutation(HULK)) + user << "You grip the blade too hard and accidentally close it!" + unwield() + return + ..() + if(user.disabilities & CLUMSY && (wielded) && prob(40)) + impale(user) + return + if((wielded) && prob(50)) + addtimer(src, "jedi_spin", 0, TRUE, user) + +/obj/item/weapon/twohanded/dualsaber/proc/jedi_spin(mob/living/user) + for(var/i in list(1,2,4,8,4,2,1,2,4,8,4,2)) + user.setDir(i) + if(i == 8) + user.emote("flip") + sleep(1) + +/obj/item/weapon/twohanded/dualsaber/proc/impale(mob/living/user) + user << "You twirl around a bit before losing your balance and impaling yourself on [src]." + if (force_wielded) + user.take_bodypart_damage(20,25) + else + user.adjustStaminaLoss(25) + +/obj/item/weapon/twohanded/dualsaber/hit_reaction(mob/living/carbon/human/owner, attack_text, final_block_chance) + if(wielded) + return ..() + return 0 + +/obj/item/weapon/twohanded/dualsaber/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0) //In case thats just so happens that it is still activated on the groud, prevents hulk from picking it up + if(wielded) + user << "You can't pick up such dangerous item with your meaty hands without losing fingers, better not to!" + return 1 + +/obj/item/weapon/twohanded/dualsaber/wield(mob/living/carbon/M) //Specific wield () hulk checks due to reflection chance for balance issues and switches hitsounds. + if(M.has_dna()) + if(M.dna.check_mutation(HULK)) + M << "You lack the grace to wield this!" + return + sharpness = IS_SHARP + w_class = w_class_on + ..() + hitsound = 'sound/weapons/blade1.ogg' + START_PROCESSING(SSobj, src) + +/obj/item/weapon/twohanded/dualsaber/unwield() //Specific unwield () to switch hitsounds. + sharpness = initial(sharpness) + w_class = initial(w_class) + ..() + hitsound = "swing_hit" + STOP_PROCESSING(SSobj, src) + +/obj/item/weapon/twohanded/dualsaber/process() + if(wielded) + open_flame() + else + STOP_PROCESSING(SSobj, src) + +/obj/item/weapon/twohanded/dualsaber/IsReflect() + if(wielded) + return 1 + +/obj/item/weapon/twohanded/dualsaber/ignition_effect(atom/A, mob/user) + // same as /obj/item/weapon/melee/energy, mostly + if(!wielded) + return "" + var/in_mouth = "" + if(iscarbon(user)) + var/mob/living/carbon/C = user + if(C.wear_mask == src) + in_mouth = ", barely missing their nose" + . = "[user] swings [user.p_their()] [src][in_mouth]. [user.p_they()] light[user.p_s()] [A] in the process." + playsound(loc, hitsound, get_clamped_volume(), 1, -1) + add_fingerprint(user) + // Light your candles while spinning around the room + addtimer(src, "jedi_spin", 0, TRUE, user) + +/obj/item/weapon/twohanded/dualsaber/green/New() + item_color = "green" + +/obj/item/weapon/twohanded/dualsaber/red/New() + item_color = "red" + +/obj/item/weapon/twohanded/dualsaber/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/device/multitool)) + if(hacked == 0) + hacked = 1 + user << "2XRNBW_ENGAGE" + item_color = "rainbow" + update_icon() + else + user << "It's starting to look like a triple rainbow - no, nevermind." + else + return ..() + +//spears +/obj/item/weapon/twohanded/spear + icon_state = "spearglass0" + name = "spear" + desc = "A haphazardly-constructed yet still deadly weapon of ancient design." + force = 10 + w_class = 4 + slot_flags = SLOT_BACK + force_unwielded = 10 + force_wielded = 18 + throwforce = 20 + throw_speed = 4 + embedded_impact_pain_multiplier = 3 + armour_penetration = 10 + materials = list(MAT_METAL=1150, MAT_GLASS=2075) + hitsound = 'sound/weapons/bladeslice.ogg' + attack_verb = list("attacked", "poked", "jabbed", "torn", "gored") + sharpness = IS_SHARP + obj_integrity = 200 + max_integrity = 200 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 30) + var/obj/item/weapon/grenade/explosive = null + var/war_cry = "AAAAARGH!!!" + +/obj/item/weapon/twohanded/spear/update_icon() + if(explosive) + icon_state = "spearbomb[wielded]" + else + icon_state = "spearglass[wielded]" + +/obj/item/weapon/twohanded/spear/afterattack(atom/movable/AM, mob/user, proximity) + if(!proximity) + return + if(isopenturf(AM)) //So you can actually melee with it + return + if(explosive && wielded) + user.say("[war_cry]") + explosive.loc = AM + explosive.prime() + qdel(src) + + //THIS MIGHT BE UNBALANCED SO I DUNNO // it totally is. +/obj/item/weapon/twohanded/spear/throw_impact(atom/target) + . = ..() + if(!.) //not caught + if(explosive) + explosive.prime() + qdel(src) + +/obj/item/weapon/twohanded/spear/AltClick() + ..() + if(!explosive) + return + if(ismob(loc)) + var/mob/M = loc + var/input = stripped_input(M,"What do you want your war cry to be? You will shout it when you hit someone in melee.", ,"", 50) + if(input) + src.war_cry = input + +/obj/item/weapon/twohanded/spear/CheckParts(list/parts_list) + ..() + if(explosive) + explosive.loc = get_turf(src.loc) + explosive = null + var/obj/item/weapon/grenade/G = locate() in contents + if(G) + explosive = G + name = "explosive lance" + desc = "A makeshift spear with [G] attached to it. Alt+click on the spear to set your war cry!" + return + update_icon() + +/*/obj/item/weapon/twohanded/chainsaw //I'll fix this shit soon enough. Don't worry. + name = "Chainsaw" + icon_state = "chainsaw0" + desc = "Perfect for felling trees or fellow spaceman." + force = 15 + throwforce = 15 + throw_speed = 1 + throw_range = 5 + w_class = 4.0 // can't fit in backpacks + force_unwielded = 15 //still pretty robust + force_wielded = 50 //you'll gouge their eye out! Or a limb...maybe even their entire body! + wieldsound = 'sound/weapons/chainsawstart.ogg' + flags = NOSHIELD + origin_tech = "materials=6;syndicate=4" + attack_verb = list("bashed", "smacked") + var/wield_cooldown = 0 + +/obj/item/weapon/twohanded/chainsaw/unwield() + ..() + attack_verb = list("bashed", "smacked") + +/obj/item/weapon/twohanded/chainsaw/wield() + ..() + attack_verb = list("sawed", "cut", "hacked", "carved", "cleaved", "butchered", "felled", "timbered") + +/obj/item/weapon/twohanded/chainsaw/update_icon() + if(wielded) + icon_state = "chainsaw[wielded]" + else + icon_state = "chainsaw0" + + +/obj/item/weapon/twohanded/chainsaw/attack(mob/target as mob, mob/living/user as mob) + if(wielded) + //incredibly loud; you ain't goin' for stealth with this thing. Credit goes to where Hotline Miami 2 got the chainsaw sounds from. + hitsound = list('sound/weapons/chainsawAttack1.ogg', 'sound/weapons/chainsawAttack2.ogg', 'sound/weapons/chainsawAttack3.ogg') + if(isrobot(target)) + ..() + return + if(!isliving(target)) + return + else + target.Weaken(4) + ..() + user.changeNext_move(CLICK_CD_MELEE * 2) //As a balance measure it's not as spammable as other weapons. + return + else + hitsound = "swing_hit" + return ..() + +/obj/item/weapon/twohanded/chainsaw/hit_reaction(mob/living/carbon/human/owner, attack_text, final_block_chance) //Disarming someone with a chainsaw should be difficult. + if(wielded) + return ..() + return 0 + +/obj/item/weapon/twohanded/chainsaw/get_dismemberment_chance() + if(wielded) + . = ..() + +*/ + +// CHAINSAW +/obj/item/weapon/twohanded/required/chainsaw + name = "chainsaw" + desc = "A versatile power tool. Useful for limbing trees and delimbing humans." + icon_state = "chainsaw_off" + flags = CONDUCT + force = 13 + var/force_on = 21 + w_class = 5 + throwforce = 13 + throw_speed = 2 + throw_range = 4 + materials = list(MAT_METAL=13000) + origin_tech = "materials=3;engineering=4;combat=2" + attack_verb = list("sawed", "torn", "cut", "chopped", "diced") + hitsound = "swing_hit" + sharpness = IS_SHARP + actions_types = list(/datum/action/item_action/startchainsaw) + var/on = 0 + +/obj/item/weapon/twohanded/required/chainsaw/attack_self(mob/user) + on = !on + user << "As you pull the starting cord dangling from [src], [on ? "it begins to whirr." : "the chain stops moving."]" + force = on ? force_on : initial(force) + throwforce = on ? force_on : initial(force) + icon_state = "chainsaw_[on ? "on" : "off"]" + + if(hitsound == "swing_hit") + hitsound = 'sound/weapons/chainsawhit.ogg' + else + hitsound = "swing_hit" + + if(src == user.get_active_held_item()) //update inhands + user.update_inv_hands() + for(var/X in actions) + var/datum/action/A = X + A.UpdateButtonIcon() + +/obj/item/weapon/twohanded/required/chainsaw/get_dismemberment_chance() + if(wielded) + . = ..() + +/obj/item/weapon/twohanded/required/chainsaw/doomslayer + name = "THE GREAT COMMUNICATOR" + desc = "VRRRRRRR!!!" + armour_penetration = 100 + force_on = 30 + +/obj/item/weapon/twohanded/required/chainsaw/doomslayer/hit_reaction(mob/living/carbon/human/owner, attack_text, final_block_chance, damage, attack_type) + if(attack_type == PROJECTILE_ATTACK) + owner.visible_message("Ranged attacks just make [owner] angrier!") + playsound(src, pick("sound/weapons/bulletflyby.ogg","sound/weapons/bulletflyby2.ogg","sound/weapons/bulletflyby3.ogg"), 75, 1) + return 1 + return 0 + +//GREY TIDE +/obj/item/weapon/twohanded/spear/grey_tide + icon_state = "spearglass0" + name = "\improper Grey Tide" + desc = "Recovered from the aftermath of a revolt aboard Defense Outpost Theta Aegis, in which a seemingly endless tide of Assistants caused heavy casualities among Nanotrasen military forces." + force_unwielded = 15 + force_wielded = 25 + throwforce = 20 + throw_speed = 4 + attack_verb = list("gored") + +/obj/item/weapon/twohanded/spear/grey_tide/afterattack(atom/movable/AM, mob/living/user, proximity) + ..() + if(!proximity) + return + user.faction |= "greytide(\ref[user])" + if(isliving(AM)) + var/mob/living/L = AM + if(istype (L, /mob/living/simple_animal/hostile/illusion)) + return + if(!L.stat && prob(50)) + var/mob/living/simple_animal/hostile/illusion/M = new(user.loc) + M.faction = user.faction.Copy() + M.Copy_Parent(user, 100, user.health/2.5, 12, 30) + M.GiveTarget(L) + +/obj/item/weapon/twohanded/pitchfork + icon_state = "pitchfork0" + name = "pitchfork" + desc = "A simple tool used for moving hay." + force = 7 + throwforce = 15 + w_class = 4 + force_unwielded = 7 + force_wielded = 15 + attack_verb = list("attacked", "impaled", "pierced") + hitsound = 'sound/weapons/bladeslice.ogg' + sharpness = IS_SHARP + obj_integrity = 200 + max_integrity = 200 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 30) + resistance_flags = FIRE_PROOF + +/obj/item/weapon/twohanded/pitchfork/demonic + name = "demonic pitchfork" + desc = "A red pitchfork, it looks like the work of the devil." + force = 19 + throwforce = 24 + force_unwielded = 19 + force_wielded = 25 + +/obj/item/weapon/twohanded/pitchfork/demonic/greater + force = 24 + throwforce = 50 + force_unwielded = 24 + force_wielded = 34 + +/obj/item/weapon/twohanded/pitchfork/demonic/ascended + force = 100 + throwforce = 100 + force_unwielded = 100 + force_wielded = 500000 // Kills you DEAD. + +/obj/item/weapon/twohanded/pitchfork/update_icon() + icon_state = "pitchfork[wielded]" + +/obj/item/weapon/twohanded/pitchfork/suicide_act(mob/user) + user.visible_message("[user] impales [user.p_them()]self in [user.p_their()] abdomen with [src]! It looks like [user.p_theyre()] trying to commit suicide!") + return (BRUTELOSS) + +/obj/item/weapon/twohanded/pitchfork/demonic/pickup(mob/user) + if(isliving(user)) + var/mob/living/U = user + if(U.mind && !U.mind.devilinfo && (U.mind.soulOwner == U.mind)) //Burn hands unless they are a devil or have sold their soul + U.visible_message("As [U] picks [src] up, [U]'s arms briefly catch fire.", \ + "\"As you pick up [src] your arms ignite, reminding you of all your past sins.\"") + if(ishuman(U)) + var/mob/living/carbon/human/H = U + H.apply_damage(rand(force/2, force), BURN, pick("l_arm", "r_arm")) + else + U.adjustFireLoss(rand(force/2,force)) + +/obj/item/weapon/twohanded/pitchfork/demonic/attack(mob/target, mob/living/carbon/human/user) + if(user.mind && !user.mind.devilinfo && (user.mind.soulOwner != user.mind)) + user << "[src] burns in your hands." + user.apply_damage(rand(force/2, force), BURN, pick("l_arm", "r_arm")) + ..() + +//HF blade + +/obj/item/weapon/twohanded/vibro_weapon + icon_state = "hfrequency0" + name = "vibro sword" + desc = "A potent weapon capable of cutting through nearly anything. Wielding it in two hands will allow you to deflect gunfire." + force_unwielded = 20 + force_wielded = 40 + armour_penetration = 100 + block_chance = 40 + throwforce = 20 + throw_speed = 4 + sharpness = IS_SHARP + attack_verb = list("cut", "sliced", "diced") + w_class = 4 + slot_flags = SLOT_BACK + hitsound = 'sound/weapons/bladeslice.ogg' + +/obj/item/weapon/twohanded/vibro_weapon/hit_reaction(mob/living/carbon/human/owner, attack_text, final_block_chance, damage, attack_type) + if(wielded) + final_block_chance *= 2 + if(wielded || attack_type != PROJECTILE_ATTACK) + if(prob(final_block_chance)) + if(attack_type == PROJECTILE_ATTACK) + owner.visible_message("[owner] deflects [attack_text] with [src]!") + playsound(src, pick("sound/weapons/bulletflyby.ogg","sound/weapons/bulletflyby2.ogg","sound/weapons/bulletflyby3.ogg"), 75, 1) + return 1 + else + owner.visible_message("[owner] parries [attack_text] with [src]!") + return 1 + return 0 + +/obj/item/weapon/twohanded/vibro_weapon/update_icon() + icon_state = "hfrequency[wielded]" + +/* + * Bone Axe + */ +/obj/item/weapon/twohanded/fireaxe/boneaxe // Blatant imitation of the fireaxe, but made out of bone. + icon_state = "bone_axe0" + name = "bone axe" + desc = "A large, vicious axe crafted out of several sharpened bone plates and crudely tied together. Made of monsters, by killing monsters, for killing monsters." + force_wielded = 23 + +/obj/item/weapon/twohanded/fireaxe/boneaxe/update_icon() + icon_state = "bone_axe[wielded]" + +/* + * Bone Spear + */ +/obj/item/weapon/twohanded/bonespear //Blatant imitation of spear, but made out of bone. Not valid for explosive modification. + icon_state = "bone_spear0" + name = "bone spear" + desc = "A haphazardly-constructed yet still deadly weapon. The pinnacle of modern technology." + force = 11 + w_class = 4 + slot_flags = SLOT_BACK + force_unwielded = 11 + force_wielded = 20 //I have no idea how to balance + throwforce = 22 + throw_speed = 4 + embedded_impact_pain_multiplier = 3 + armour_penetration = 15 //Enhanced armor piercing + hitsound = 'sound/weapons/bladeslice.ogg' + attack_verb = list("attacked", "poked", "jabbed", "torn", "gored") + sharpness = IS_SHARP + +/obj/item/weapon/twohanded/bonespear/update_icon() + icon_state = "bone_spear[wielded]" diff --git a/code/game/objects/items/weapons/vending_items.dm b/code/game/objects/items/weapons/vending_items.dm new file mode 100644 index 0000000..cd0b4ff --- /dev/null +++ b/code/game/objects/items/weapons/vending_items.dm @@ -0,0 +1,73 @@ +/obj/item/weapon/vending_refill + name = "resupply canister" + var/machine_name = "Generic" + + icon = 'icons/obj/vending_restock.dmi' + icon_state = "refill_snack" + item_state = "restock_unit" + flags = CONDUCT + force = 7 + throwforce = 10 + throw_speed = 1 + throw_range = 7 + w_class = 4 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 70, acid = 30) + var/charges = list(0, 0, 0) //how many restocking "charges" the refill has for standard/contraband/coin products + var/init_charges = list(0, 0, 0) + + +/obj/item/weapon/vending_refill/New(amt = -1) + ..() + name = "\improper [machine_name] restocking unit" + if(isnum(amt) && amt > -1) + charges[1] = amt + +/obj/item/weapon/vending_refill/examine(mob/user) + ..() + if(charges[1] > 0) + user << "It can restock [charges[1]+charges[2]+charges[3]] item(s)." + else + user << "It's empty!" + +//NOTE I decided to go for about 1/3 of a machine's capacity + +/obj/item/weapon/vending_refill/boozeomat + machine_name = "Booze-O-Mat" + icon_state = "refill_booze" + charges = list(54, 4, 0)//of 159 standard, 12 contraband + init_charges = list(54, 4, 0) + +/obj/item/weapon/vending_refill/coffee + machine_name = "Solar's Best Hot Drinks" + icon_state = "refill_joe" + charges = list(25, 4, 0)//of 75 standard, 12 contraband + init_charges = list(25, 4, 0) + +/obj/item/weapon/vending_refill/snack + machine_name = "Getmore Chocolate Corp" + charges = list(12, 2, 0)//of 36 standard, 6 contraband + init_charges = list(12, 2, 0) + +/obj/item/weapon/vending_refill/cola + machine_name = "Robust Softdrinks" + icon_state = "refill_cola" + charges = list(20, 2, 0)//of 60 standard, 6 contraband + init_charges = list(20, 2, 0) + +/obj/item/weapon/vending_refill/cigarette + machine_name = "ShadyCigs Deluxe" + icon_state = "refill_smoke" + charges = list(12, 3, 2)// of 36 standard, 9 contraband, 6 premium + init_charges = list(12, 3, 2) + +/obj/item/weapon/vending_refill/autodrobe + machine_name = "AutoDrobe" + icon_state = "refill_costume" + charges = list(27, 2, 3)// of 75 standard, 6 contraband, 9 premium + init_charges = list(27, 2, 3) + +/obj/item/weapon/vending_refill/clothing + machine_name = "ClothesMate" + icon_state = "refill_clothes" + charges = list(31, 4, 4)// of 101 standard, 12 contraband, 10 premium(?) + init_charges = list(31, 4, 4) diff --git a/code/game/objects/items/weapons/weaponry.dm b/code/game/objects/items/weapons/weaponry.dm new file mode 100644 index 0000000..65fc56e --- /dev/null +++ b/code/game/objects/items/weapons/weaponry.dm @@ -0,0 +1,574 @@ +/obj/item/weapon + + var/unique_rename = 0 //allows renaming with a pen + +/obj/item/weapon/examine(mob/user) + ..() + if(unique_rename) + user << "Use a pen on it to rename it." + +/obj/item/weapon/attackby(obj/item/I, mob/user, params) + if(unique_rename) + if(istype(I, /obj/item/weapon/pen)) + rename_weapon(user) + ..() + +/obj/item/weapon/proc/rename_weapon(mob/M) + var/input = stripped_input(M,"What do you want to name the weapon?", ,"", MAX_NAME_LEN) + + if(src && input && !M.stat && in_range(M,src) && !M.restrained() && M.canmove) + name = input + M << "You name the weapon [input]. Say hello to your new friend." + return + + + +/obj/item/weapon/banhammer + desc = "A banhammer" + name = "banhammer" + icon = 'icons/obj/items.dmi' + icon_state = "toyhammer" + slot_flags = SLOT_BELT + throwforce = 0 + w_class = 1 + throw_speed = 3 + throw_range = 7 + attack_verb = list("banned") + obj_integrity = 200 + max_integrity = 200 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 70) + resistance_flags = FIRE_PROOF + +/obj/item/weapon/banhammer/suicide_act(mob/user) + user.visible_message("[user] is hitting [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to ban [user.p_them()]self from life.") + return (BRUTELOSS|FIRELOSS|TOXLOSS|OXYLOSS) + +/obj/item/weapon/banhammer/attack(mob/M, mob/user) + M << " You have been banned FOR NO REISIN by [user]" + user << "You have BANNED [M]" + playsound(loc, 'sound/effects/adminhelp.ogg', 15) //keep it at 15% volume so people don't jump out of their skin too much + +/obj/item/weapon/sord + name = "\improper SORD" + desc = "This thing is so unspeakably shitty you are having a hard time even holding it." + icon_state = "sord" + item_state = "sord" + slot_flags = SLOT_BELT + force = 2 + throwforce = 1 + w_class = 3 + hitsound = 'sound/weapons/bladeslice.ogg' + attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") + +/obj/item/weapon/sord/suicide_act(mob/user) + user.visible_message("[user] is trying to impale [user.p_them()]self with [src]! It might be a suicide attempt if it weren't so shitty.", \ + "You try to impale yourself with [src], but it's USELESS...") + return SHAME + +/obj/item/weapon/claymore + name = "claymore" + desc = "What are you standing around staring at this for? Get to killing!" + icon_state = "claymore" + item_state = "claymore" + hitsound = 'sound/weapons/bladeslice.ogg' + flags = CONDUCT + slot_flags = SLOT_BELT | SLOT_BACK + force = 40 + throwforce = 10 + w_class = 3 + attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") + block_chance = 50 + sharpness = IS_SHARP + obj_integrity = 200 + max_integrity = 200 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 50) + resistance_flags = FIRE_PROOF + +/obj/item/weapon/claymore/suicide_act(mob/user) + user.visible_message("[user] is falling on [src]! It looks like [user.p_theyre()] trying to commit suicide!") + return(BRUTELOSS) + +var/highlander_claymores = 0 +/obj/item/weapon/claymore/highlander //ALL COMMENTS MADE REGARDING THIS SWORD MUST BE MADE IN ALL CAPS + desc = "THERE CAN BE ONLY ONE, AND IT WILL BE YOU!!!\nActivate it in your hand to point to the nearest victim." + flags = CONDUCT | NODROP + slot_flags = null + block_chance = 0 //RNG WON'T HELP YOU NOW, PANSY + attack_verb = list("brutalized", "eviscerated", "disemboweled", "hacked", "carved", "cleaved") //ONLY THE MOST VISCERAL ATTACK VERBS + var/notches = 0 //HOW MANY PEOPLE HAVE BEEN SLAIN WITH THIS BLADE + var/announced = FALSE //IF WE ARE THE ONLY ONE LEFT STANDING + var/obj/item/weapon/disk/nuclear/nuke_disk //OUR STORED NUKE DISK + +/obj/item/weapon/claymore/highlander/New() + ..() + START_PROCESSING(SSobj, src) + highlander_claymores++ + +/obj/item/weapon/claymore/highlander/Destroy() + STOP_PROCESSING(SSobj, src) + highlander_claymores-- + if(nuke_disk) + nuke_disk.forceMove(get_turf(src)) + nuke_disk.visible_message("The nuke disk is vulnerable!") + nuke_disk = null + return ..() + +/obj/item/weapon/claymore/highlander/process() + if(isliving(loc)) + var/mob/living/L = loc + if(L.stat != DEAD) + if(announced || admin_spawned || highlander_claymores > 1) + return + announced = TRUE + L.fully_heal() + world << "[uppertext(L.real_name)] IS THE ONLY ONE LEFT STANDING!" + world << sound('sound/misc/highlander_only_one.ogg') + L << "YOU ARE THE ONLY ONE LEFT STANDING!" + for(var/obj/item/weapon/bloodcrawl/B in L) + qdel(B) + +/obj/item/weapon/claymore/highlander/pickup(mob/living/user) + user << "The power of Scotland protects you! You are shielded from all stuns and knockdowns." + user.add_stun_absorption("highlander", INFINITY, 1, " is protected by the power of Scotland!", "The power of Scotland absorbs the stun!", " is protected by the power of Scotland!") + +/obj/item/weapon/claymore/highlander/dropped(mob/living/user) + qdel(src) //If this ever happens, it's because you lost an arm + +/obj/item/weapon/claymore/highlander/examine(mob/user) + ..() + user << "It has [!notches ? "nothing" : "[notches] notches"] scratched into the blade." + if(nuke_disk) + user << "It's holding the nuke disk!" + +/obj/item/weapon/claymore/highlander/attack(mob/living/target, mob/living/user) + . = ..() + if(target && target.stat == DEAD && target.mind && target.mind.special_role == "highlander") + user.fully_heal() //STEAL THE LIFE OF OUR FALLEN FOES + add_notch(user) + target.visible_message("[target] crumbles to dust beneath [user]'s blows!", "As you fall, your body crumbles to dust!") + target.dust() + +/obj/item/weapon/claymore/highlander/attack_self(mob/living/user) + var/closest_victim + var/closest_distance = 255 + for(var/mob/living/carbon/human/H in player_list - user) + if(H.client && H.mind.special_role == "highlander" && (!closest_victim || get_dist(user, closest_victim) < closest_distance)) + closest_victim = H + if(!closest_victim) + user << "[src] thrums for a moment and falls dark. Perhaps there's nobody nearby." + return + user << "[src] thrums and points to the [dir2text(get_dir(user, closest_victim))]." + +/obj/item/weapon/claymore/highlander/IsReflect() + return 1 //YOU THINK YOUR PUNY LASERS CAN STOP ME? + +/obj/item/weapon/claymore/highlander/proc/add_notch(mob/living/user) //DYNAMIC CLAYMORE PROGRESSION SYSTEM - THIS IS THE FUTURE + notches++ + force++ + var/new_name = name + switch(notches) + if(1) + user << "Your first kill - hopefully one of many. You scratch a notch into [src]'s blade." + user << "You feel your fallen foe's soul entering your blade, restoring your wounds!" + new_name = "notched claymore" + if(2) + user << "Another falls before you. Another soul fuses with your own. Another notch in the blade." + new_name = "double-notched claymore" + add_atom_colour(rgb(255, 235, 235), ADMIN_COLOUR_PRIORITY) + if(3) + user << "You're beginning to relish the thrill of battle." + new_name = "triple-notched claymore" + add_atom_colour(rgb(255, 215, 215), ADMIN_COLOUR_PRIORITY) + if(4) + user << "You've lost count of how many you've killed." + new_name = "many-notched claymore" + add_atom_colour(rgb(255, 195, 195), ADMIN_COLOUR_PRIORITY) + if(5) + user << "Five voices now echo in your mind, cheering the slaughter." + new_name = "battle-tested claymore" + add_atom_colour(rgb(255, 175, 175), ADMIN_COLOUR_PRIORITY) + if(6) + user << "Is this what the vikings felt like? Visions of glory fill your head as you slay your sixth foe." + new_name = "battle-scarred claymore" + add_atom_colour(rgb(255, 155, 155), ADMIN_COLOUR_PRIORITY) + if(7) + user << "Kill. Butcher. Conquer." + new_name = "vicious claymore" + add_atom_colour(rgb(255, 135, 135), ADMIN_COLOUR_PRIORITY) + if(8) + user << "IT NEVER GETS OLD. THE SCREAMING. THE BLOOD AS IT SPRAYS ACROSS YOUR FACE." + new_name = "bloodthirsty claymore" + add_atom_colour(rgb(255, 115, 115), ADMIN_COLOUR_PRIORITY) + if(9) + user << "ANOTHER ONE FALLS TO YOUR BLOWS. ANOTHER WEAKLING UNFIT TO LIVE." + new_name = "gore-stained claymore" + add_atom_colour(rgb(255, 95, 95), ADMIN_COLOUR_PRIORITY) + if(10) + user.visible_message("[user]'s eyes light up with a vengeful fire!", \ + "YOU FEEL THE POWER OF VALHALLA FLOWING THROUGH YOU! THERE CAN BE ONLY ONE!!!") + user.update_icons() + new_name = "GORE-DRENCHED CLAYMORE OF [pick("THE WHIMSICAL SLAUGHTER", "A THOUSAND SLAUGHTERED CATTLE", "GLORY AND VALHALLA", "ANNIHILATION", "OBLITERATION")]" + icon_state = "claymore_valhalla" + item_state = "cultblade" + remove_atom_colour(ADMIN_COLOUR_PRIORITY) + + name = new_name + playsound(user, 'sound/items/Screwdriver2.ogg', 50, 1) + +/obj/item/weapon/katana + name = "katana" + desc = "Woefully underpowered in D20" + icon_state = "katana" + item_state = "katana" + flags = CONDUCT + slot_flags = SLOT_BELT | SLOT_BACK + force = 40 + throwforce = 10 + w_class = 3 + hitsound = 'sound/weapons/bladeslice.ogg' + attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") + block_chance = 50 + sharpness = IS_SHARP + obj_integrity = 200 + max_integrity = 200 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 50) + resistance_flags = FIRE_PROOF + +/obj/item/weapon/katana/cursed + slot_flags = null + +/obj/item/weapon/katana/suicide_act(mob/user) + user.visible_message("[user] is slitting [user.p_their()] stomach open with [src]! It looks like [user.p_theyre()] trying to commit seppuku!") + return(BRUTELOSS) + +/obj/item/weapon/wirerod + name = "wired rod" + desc = "A rod with some wire wrapped around the top. It'd be easy to attach something to the top bit." + icon_state = "wiredrod" + item_state = "rods" + flags = CONDUCT + force = 9 + throwforce = 10 + w_class = 3 + materials = list(MAT_METAL=1150, MAT_GLASS=75) + attack_verb = list("hit", "bludgeoned", "whacked", "bonked") + +/obj/item/weapon/wirerod/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/shard)) + var/obj/item/weapon/twohanded/spear/S = new /obj/item/weapon/twohanded/spear + + if(!remove_item_from_storage(user)) + user.unEquip(src) + user.unEquip(I) + + user.put_in_hands(S) + user << "You fasten the glass shard to the top of the rod with the cable." + qdel(I) + qdel(src) + + else if(istype(I, /obj/item/device/assembly/igniter) && !(I.flags & NODROP)) + var/obj/item/weapon/melee/baton/cattleprod/P = new /obj/item/weapon/melee/baton/cattleprod + + if(!remove_item_from_storage(user)) + user.unEquip(src) + user.unEquip(I) + + user.put_in_hands(P) + user << "You fasten [I] to the top of the rod with the cable." + qdel(I) + qdel(src) + else + return ..() + + +/obj/item/weapon/throwing_star + name = "throwing star" + desc = "An ancient weapon still used to this day due to it's ease of lodging itself into victim's body parts" + icon_state = "throwingstar" + item_state = "eshield0" + force = 2 + throwforce = 20 //This is never used on mobs since this has a 100% embed chance. + throw_speed = 4 + embedded_pain_multiplier = 4 + w_class = 2 + embed_chance = 100 + embedded_fall_chance = 0 //Hahaha! + sharpness = IS_SHARP + materials = list(MAT_METAL=500, MAT_GLASS=500) + resistance_flags = FIRE_PROOF + + +/obj/item/weapon/switchblade + name = "switchblade" + icon_state = "switchblade" + desc = "A sharp, concealable, spring-loaded knife." + flags = CONDUCT + force = 3 + w_class = 2 + throwforce = 5 + throw_speed = 3 + throw_range = 6 + materials = list(MAT_METAL=12000) + origin_tech = "engineering=3;combat=2" + hitsound = 'sound/weapons/Genhit.ogg' + attack_verb = list("stubbed", "poked") + resistance_flags = FIRE_PROOF + var/extended = 0 + +/obj/item/weapon/switchblade/attack_self(mob/user) + extended = !extended + playsound(src.loc, 'sound/weapons/batonextend.ogg', 50, 1) + if(extended) + force = 20 + w_class = 3 + throwforce = 23 + icon_state = "switchblade_ext" + attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") + hitsound = 'sound/weapons/bladeslice.ogg' + sharpness = IS_SHARP + else + force = 3 + w_class = 2 + throwforce = 5 + icon_state = "switchblade" + attack_verb = list("stubbed", "poked") + hitsound = 'sound/weapons/Genhit.ogg' + sharpness = IS_BLUNT + +/obj/item/weapon/switchblade/suicide_act(mob/user) + user.visible_message("[user] is slitting [user.p_their()] own throat with [src]! It looks like [user.p_theyre()] trying to commit suicide!") + return (BRUTELOSS) + +/obj/item/weapon/phone + name = "red phone" + desc = "Should anything ever go wrong..." + icon = 'icons/obj/items.dmi' + icon_state = "red_phone" + force = 3 + throwforce = 2 + throw_speed = 3 + throw_range = 4 + w_class = 2 + attack_verb = list("called", "rang") + hitsound = 'sound/weapons/ring.ogg' + +/obj/item/weapon/phone/suicide_act(mob/user) + if(locate(/obj/structure/chair/stool) in user.loc) + user.visible_message("[user] begins to tie a noose with [src]'s cord! It looks like [user.p_theyre()] trying to commit suicide!") + else + user.visible_message("[user] is strangling [user.p_them()]self with [src]'s cord! It looks like [user.p_theyre()] trying to commit suicide!") + return(OXYLOSS) + +/obj/item/weapon/cane + name = "cane" + desc = "A cane used by a true gentleman. Or a clown." + icon = 'icons/obj/weapons.dmi' + icon_state = "cane" + item_state = "stick" + force = 5 + throwforce = 5 + w_class = 2 + materials = list(MAT_METAL=50) + attack_verb = list("bludgeoned", "whacked", "disciplined", "thrashed") + +/obj/item/weapon/staff + name = "wizard staff" + desc = "Apparently a staff used by the wizard." + icon = 'icons/obj/wizard.dmi' + icon_state = "staff" + force = 3 + throwforce = 5 + throw_speed = 2 + throw_range = 5 + w_class = 2 + armour_penetration = 100 + attack_verb = list("bludgeoned", "whacked", "disciplined") + resistance_flags = FLAMMABLE + +/obj/item/weapon/staff/broom + name = "broom" + desc = "Used for sweeping, and flying into the night while cackling. Black cat not included." + icon = 'icons/obj/wizard.dmi' + icon_state = "broom" + resistance_flags = FLAMMABLE + +/obj/item/weapon/staff/stick + name = "stick" + desc = "A great tool to drag someone else's drinks across the bar." + icon = 'icons/obj/weapons.dmi' + icon_state = "stick" + item_state = "stick" + force = 3 + throwforce = 5 + throw_speed = 2 + throw_range = 5 + w_class = 2 + +/obj/item/weapon/ectoplasm + name = "ectoplasm" + desc = "spooky" + gender = PLURAL + icon = 'icons/obj/wizard.dmi' + icon_state = "ectoplasm" + +/obj/item/weapon/ectoplasm/suicide_act(mob/user) + user.visible_message("[user] is inhaling [src]! It looks like [user.p_theyre()] trying to visit the astral plane.") + return (OXYLOSS) + +/obj/item/weapon/mounted_chainsaw + name = "mounted chainsaw" + desc = "A chainsaw that has replaced your arm." + icon_state = "chainsaw_on" + item_state = "mounted_chainsaw" + flags = NODROP | ABSTRACT + w_class = 5.0 + force = 21 + throwforce = 0 + throw_range = 0 + throw_speed = 0 + sharpness = IS_SHARP + attack_verb = list("sawed", "torn", "cut", "chopped", "diced") + hitsound = "sound/weapons/chainsawhit.ogg" + +/obj/item/weapon/mounted_chainsaw/dropped() + ..() + new /obj/item/weapon/twohanded/required/chainsaw(get_turf(src)) + qdel(src) + +/obj/item/weapon/statuebust + name = "bust" + desc = "A priceless ancient marble bust, the kind that belongs in a museum." //or you can hit people with it + icon = 'icons/obj/statue.dmi' + icon_state = "bust" + force = 15 + throwforce = 10 + throw_speed = 5 + throw_range = 2 + attack_verb = list("busted") + +/obj/item/weapon/tailclub + name = "tail club" + desc = "For the beating to death of lizards with their own tails." + icon_state = "tailclub" + force = 14 + throwforce = 1 // why are you throwing a club do you even weapon + throw_speed = 1 + throw_range = 1 + attack_verb = list("clubbed", "bludgeoned") + +/obj/item/weapon/melee/chainofcommand/tailwhip + name = "liz o' nine tails" + desc = "A whip fashioned from the severed tails of lizards." + icon_state = "tailwhip" + origin_tech = "engineering=3;combat=3;biotech=3" + needs_permit = 0 + +/obj/item/weapon/melee/skateboard + name = "skateboard" + desc = "A skateboard. It can be placed on its wheels and ridden, or used as a strong weapon." + icon_state = "skateboard" + item_state = "skateboard" + force = 12 + throwforce = 4 + w_class = 5.0 + attack_verb = list("smacked", "whacked", "slammed", "smashed") + +/obj/item/weapon/melee/skateboard/attack_self(mob/user) + new /obj/vehicle/scooter/skateboard(get_turf(user)) + qdel(src) + +/obj/item/weapon/melee/baseball_bat + name = "baseball bat" + desc = "There ain't a skull in the league that can withstand a swatter." + icon = 'icons/obj/items.dmi' + icon_state = "baseball_bat" + item_state = "baseball_bat" + force = 10 + throwforce = 12 + attack_verb = list("beat", "smacked") + w_class = 5 + var/homerun_ready = 0 + var/homerun_able = 0 + +/obj/item/weapon/melee/baseball_bat/homerun + name = "home run bat" + desc = "This thing looks dangerous... Dangerously good at baseball, that is." + homerun_able = 1 + +/obj/item/weapon/melee/baseball_bat/attack_self(mob/user) + if(!homerun_able) + ..() + return + if(homerun_ready) + user << "You're already ready to do a home run!" + ..() + return + user << "You begin gathering strength..." + playsound(get_turf(src), 'sound/magic/lightning_chargeup.ogg', 65, 1) + if(do_after(user, 90, target = src)) + user << "You gather power! Time for a home run!" + homerun_ready = 1 + ..() + +/obj/item/weapon/melee/baseball_bat/attack(mob/living/target, mob/living/user) + . = ..() + var/atom/throw_target = get_edge_target_turf(target, user.dir) + if(homerun_ready) + user.visible_message("It's a home run!") + target.throw_at(throw_target, rand(8,10), 14, user) + target.ex_act(2) + playsound(get_turf(src), 'sound/weapons/HOMERUN.ogg', 100, 1) + homerun_ready = 0 + return + else if(!target.anchored) + target.throw_at(throw_target, rand(1,2), 7, user) + +/obj/item/weapon/melee/baseball_bat/ablative + name = "metal baseball bat" + desc = "This bat is made of highly reflective, highly armored material." + icon_state = "baseball_bat_metal" + item_state = "baseball_bat_metal" + force = 12 + throwforce = 15 + +/obj/item/weapon/melee/baseball_bat/ablative/IsReflect()//some day this will reflect thrown items instead of lasers + var/picksound = rand(1,2) + var/turf = get_turf(src) + if(picksound == 1) + playsound(turf, 'sound/weapons/effects/batreflect1.ogg', 50, 1) + if(picksound == 2) + playsound(turf, 'sound/weapons/effects/batreflect2.ogg', 50, 1) + return 1 + +/obj/item/weapon/melee/flyswatter + name = "Flyswatter" + desc = "Useful for killing insects of all sizes." + icon = 'icons/obj/weapons.dmi' + icon_state = "flyswatter" + item_state = "flyswatter" + force = 1 + throwforce = 1 + attack_verb = list("swatted", "smacked") + hitsound = 'sound/effects/snap.ogg' + w_class = 2 + //Things in this list will be instantly splatted. Flyman weakness is handled in the flyman species weakness proc. + var/list/strong_against + +/obj/item/weapon/melee/flyswatter/New() + strong_against = typecacheof(list( + /mob/living/simple_animal/hostile/poison/bees/, + /mob/living/simple_animal/butterfly, + /mob/living/simple_animal/cockroach, + /obj/item/queen_bee/ + )) + +/obj/item/weapon/melee/flyswatter/afterattack(atom/target, mob/user, proximity_flag) + if(proximity_flag) + if(is_type_in_typecache(target, strong_against)) + new /obj/effect/decal/cleanable/deadcockroach(get_turf(target)) + user << "You easily splat the [target]." + if(istype(target, /mob/living/)) + var/mob/living/bug = target + bug.death(1) + else + qdel(target) \ No newline at end of file diff --git a/code/game/objects/obj_defense.dm b/code/game/objects/obj_defense.dm new file mode 100644 index 0000000..726fd15 --- /dev/null +++ b/code/game/objects/obj_defense.dm @@ -0,0 +1,236 @@ + +//the essential proc to call when an obj must receive damage of any kind. +/obj/proc/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir) + if(sound_effect) + play_attack_sound(damage_amount, damage_type, damage_flag) + if(!(resistance_flags & INDESTRUCTIBLE) && obj_integrity > 0) + damage_amount = run_obj_armor(damage_amount, damage_type, damage_flag, attack_dir) + if(damage_amount >= 1) + . = damage_amount + obj_integrity = max(obj_integrity - damage_amount, 0) + if(obj_integrity <= 0) + obj_destruction(damage_flag) + else if(integrity_failure) + if(obj_integrity <= integrity_failure) + obj_break(damage_flag) + +//returns the damage value of the attack after processing the obj's various armor protections +/obj/proc/run_obj_armor(damage_amount, damage_type, damage_flag = 0, attack_dir) + switch(damage_type) + if(BRUTE) + if(BURN) + else + return 0 + var/armor_protection = 0 + if(damage_flag) + armor_protection = armor[damage_flag] + return round(damage_amount * (100 - armor_protection)*0.01, 0.1) + +//the sound played when the obj is damaged. +/obj/proc/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) + switch(damage_type) + if(BRUTE) + if(damage_amount) + playsound(src, 'sound/weapons/smash.ogg', 50, 1) + else + playsound(src, 'sound/weapons/tap.ogg', 50, 1) + if(BURN) + playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) + +/obj/hitby(atom/movable/AM) + ..() + var/tforce = 0 + if(ismob(AM)) + tforce = 10 + else if(isobj(AM)) + var/obj/O = AM + tforce = O.throwforce + take_damage(tforce, BRUTE, "melee", 1, get_dir(src, AM)) + +/obj/ex_act(severity, target) + ..() //contents explosion + if(target == src) + qdel(src) + return + switch(severity) + if(1) + qdel(src) + if(2) + take_damage(rand(100, 250), BRUTE, "bomb", 0) + if(3) + take_damage(rand(10, 90), BRUTE, "bomb", 0) + +/obj/bullet_act(obj/item/projectile/P) + . = ..() + playsound(src, P.hitsound, 50, 1) + visible_message("[src] is hit by \a [P]!", null, null, COMBAT_MESSAGE_RANGE) + take_damage(P.damage, P.damage_type, P.flag, 0, turn(P.dir, 180)) + + +/obj/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0) + if(user.a_intent == "harm") + ..(user, 1) + visible_message("[user] smashes [src]!", null, null, COMBAT_MESSAGE_RANGE) + if(density) + playsound(src, 'sound/effects/meteorimpact.ogg', 100, 1) + user.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" )) + else + playsound(src, 'sound/effects/bang.ogg', 50, 1) + take_damage(150, BRUTE, "melee", 0, get_dir(src, user)) + return 1 + return 0 + +/obj/blob_act(obj/structure/blob/B) + if(isturf(loc)) + var/turf/T = loc + if(T.intact && level == 1) //the blob doesn't destroy thing below the floor + return + take_damage(400, BRUTE, "melee", 0, get_dir(src, B)) + +/obj/proc/attack_generic(mob/user, damage_amount = 0, damage_type = BRUTE, damage_flag = 0, sound_effect = 1) //used by attack_alien, attack_animal, and attack_slime + user.do_attack_animation(src) + user.changeNext_move(CLICK_CD_MELEE) + take_damage(damage_amount, damage_type, damage_flag, sound_effect, get_dir(src, user)) + +/obj/attack_alien(mob/living/carbon/alien/humanoid/user) + playsound(src.loc, 'sound/weapons/slash.ogg', 100, 1) + attack_generic(user, 60, BRUTE, "melee", 0) + +/obj/attack_animal(mob/living/simple_animal/M) + if(!M.melee_damage_upper && !M.obj_damage) + M.emote("[M.friendly] [src]") + return 0 + else + var/play_soundeffect = 1 + if(M.environment_smash) + play_soundeffect = 0 + playsound(src, 'sound/effects/meteorimpact.ogg', 100, 1) + if(M.obj_damage) + attack_generic(M, M.obj_damage, M.melee_damage_type, "melee", play_soundeffect) + else + attack_generic(M, rand(M.melee_damage_lower,M.melee_damage_upper), M.melee_damage_type, "melee", play_soundeffect) + return 1 + +/obj/attack_slime(mob/living/simple_animal/slime/user) + if(!user.is_adult) + return + attack_generic(user, rand(10, 15), "melee", 1) + +/obj/mech_melee_attack(obj/mecha/M) + M.do_attack_animation(src) + var/play_soundeffect = 0 + var/mech_damtype = M.damtype + if(M.selected) + mech_damtype = M.selected.damtype + play_soundeffect = 1 + else + switch(M.damtype) + if(BRUTE) + playsound(src, 'sound/weapons/punch4.ogg', 50, 1) + if(BURN) + playsound(src, 'sound/items/Welder.ogg', 50, 1) + if(TOX) + playsound(src, 'sound/effects/spray2.ogg', 50, 1) + return 0 + else + return 0 + visible_message("[M.name] has hit [src].", null, null, COMBAT_MESSAGE_RANGE) + return take_damage(M.force*3, mech_damtype, "melee", play_soundeffect, get_dir(src, M)) // multiplied by 3 so we can hit objs hard but not be overpowered against mobs. + +/obj/singularity_act() + ex_act(1) + if(src && !qdeleted(src)) + qdel(src) + return 2 + + +///// ACID + +var/global/image/acid_overlay = image("icon" = 'icons/effects/effects.dmi', "icon_state" = "acid") + +//the obj's reaction when touched by acid +/obj/acid_act(acidpwr, acid_volume) + if(!(resistance_flags & UNACIDABLE) && acid_volume) + + if(!acid_level) + SSacid.processing[src] = src + add_overlay(acid_overlay, 1) + var/acid_cap = acidpwr * 300 //so we cannot use huge amounts of weak acids to do as well as strong acids. + if(acid_level < acid_cap) + acid_level = min(acid_level + acidpwr * acid_volume, acid_cap) + return 1 + +//the proc called by the acid subsystem to process the acid that's on the obj +/obj/proc/acid_processing() + . = 1 + if(!(resistance_flags & ACID_PROOF)) + for(var/armour_value in armor) + if(armour_value != "acid" && armour_value != "fire") + armor[armour_value] = max(armor[armour_value] - round(sqrt(acid_level)*0.1), 0) + if(prob(33)) + playsound(loc, 'sound/items/Welder.ogg', 150, 1) + take_damage(min(1 + round(sqrt(acid_level)*0.3), 300), BURN, "acid", 0) + + acid_level = max(acid_level - (5 + 3*round(sqrt(acid_level))), 0) + if(!acid_level) + return 0 + +//called when the obj is destroyed by acid. +/obj/proc/acid_melt() + SSacid.processing -= src + deconstruct(FALSE) + +//// FIRE + +/obj/fire_act(exposed_temperature, exposed_volume) + if(isturf(loc)) + var/turf/T = loc + if(T.intact && level == 1) //fire can't damage things hidden below the floor. + return + if(exposed_temperature && !(resistance_flags & FIRE_PROOF)) + take_damage(Clamp(0.02 * exposed_temperature, 0, 20), BURN, "fire", 0) + if(!(resistance_flags & ON_FIRE) && (resistance_flags & FLAMMABLE)) + resistance_flags |= ON_FIRE + SSfire_burning.processing[src] = src + add_overlay(fire_overlay) + return 1 + +//called when the obj is destroyed by fire +/obj/proc/burn() + if(resistance_flags & ON_FIRE) + SSfire_burning.processing -= src + deconstruct(FALSE) + +/obj/proc/extinguish() + if(resistance_flags & ON_FIRE) + resistance_flags &= ~ON_FIRE + overlays -= fire_overlay + SSfire_burning.processing -= src + + + +/obj/proc/tesla_act(var/power) + being_shocked = 1 + var/power_bounced = power / 2 + tesla_zap(src, 3, power_bounced) + addtimer(src, "reset_shocked", 10) + +/obj/proc/reset_shocked() + being_shocked = 0 + +//the obj is deconstructed into pieces, whether through careful disassembly or when destroyed. +/obj/proc/deconstruct(disassembled = TRUE) + qdel(src) + +//what happens when the obj's health is below integrity_failure level. +/obj/proc/obj_break(damage_flag) + return + +//what happens when the obj's integrity reaches zero. +/obj/proc/obj_destruction(damage_flag) + if(damage_flag == "acid") + acid_melt() + else if(damage_flag == "fire") + burn() + else + deconstruct(FALSE) \ No newline at end of file diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm new file mode 100644 index 0000000..7d5d5fb --- /dev/null +++ b/code/game/objects/objs.dm @@ -0,0 +1,182 @@ +/obj + languages_spoken = HUMAN + languages_understood = HUMAN + var/crit_fail = 0 + animate_movement = 2 + var/throwforce = 0 + var/in_use = 0 // If we have a user using us, this will be set on. We will check if the user has stopped using us, and thus stop updating and LAGGING EVERYTHING! + + var/damtype = "brute" + var/force = 0 + + var/list/armor + var/obj_integrity = 500 + var/max_integrity = 500 + var/integrity_failure = 0 //0 if we have no special broken behavior + + var/resistance_flags = 0 // INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ON_FIRE | UNACIDABLE | ACID_PROOF + + var/acid_level = 0 //how much acid is on that obj + + var/being_shocked = 0 + + var/on_blueprints = FALSE //Are we visible on the station blueprints at roundstart? + var/force_blueprints = FALSE //forces the obj to be on the blueprints, regardless of when it was created. + + var/persistence_replacement = null //have something WAY too amazing to live to the next round? Set a new path here. Overuse of this var will make me upset. + var/is_frozen = FALSE + + +/obj/New() + ..() + if (!armor) + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) + if(on_blueprints && isturf(loc)) + var/turf/T = loc + if(force_blueprints) + T.add_blueprints(src) + else + T.add_blueprints_preround(src) + +/obj/Destroy() + if(!istype(src, /obj/machinery)) + STOP_PROCESSING(SSobj, src) // TODO: Have a processing bitflag to reduce on unnecessary loops through the processing lists + SStgui.close_uis(src) + return ..() + +/obj/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0) + ..() + if(is_frozen) + visible_message("[src] shatters into a million pieces!") + qdel(src) + +/obj/assume_air(datum/gas_mixture/giver) + if(loc) + return loc.assume_air(giver) + else + return null + +/obj/remove_air(amount) + if(loc) + return loc.remove_air(amount) + else + return null + +/obj/return_air() + if(loc) + return loc.return_air() + else + return null + +/obj/proc/handle_internal_lifeform(mob/lifeform_inside_me, breath_request) + //Return: (NONSTANDARD) + // null if object handles breathing logic for lifeform + // datum/air_group to tell lifeform to process using that breath return + //DEFAULT: Take air from turf to give to have mob process + + if(breath_request>0) + var/datum/gas_mixture/environment = return_air() + var/breath_percentage = BREATH_VOLUME / environment.return_volume() + return remove_air(environment.total_moles() * breath_percentage) + else + return null + +/obj/proc/updateUsrDialog() + if(in_use) + var/is_in_use = 0 + var/list/nearby = viewers(1, src) + for(var/mob/M in nearby) + if ((M.client && M.machine == src)) + is_in_use = 1 + src.attack_hand(M) + if(isAI(usr) || iscyborg(usr) || IsAdminGhost(usr)) + if (!(usr in nearby)) + if (usr.client && usr.machine==src) // && M.machine == src is omitted because if we triggered this by using the dialog, it doesn't matter if our machine changed in between triggering it and this - the dialog is probably still supposed to refresh. + is_in_use = 1 + src.attack_ai(usr) + + // check for TK users + + if(ishuman(usr)) + var/mob/living/carbon/human/H = usr + if(!(usr in nearby)) + if(usr.client && usr.machine==src) + if(H.dna.check_mutation(TK)) + is_in_use = 1 + src.attack_hand(usr) + in_use = is_in_use + +/obj/proc/updateDialog() + // Check that people are actually using the machine. If not, don't update anymore. + if(in_use) + var/list/nearby = viewers(1, src) + var/is_in_use = 0 + for(var/mob/M in nearby) + if ((M.client && M.machine == src)) + is_in_use = 1 + src.interact(M) + var/ai_in_use = AutoUpdateAI(src) + + if(!ai_in_use && !is_in_use) + in_use = 0 + + +/obj/attack_ghost(mob/user) + if(ui_interact(user) != -1) + return + ..() + +/obj/proc/container_resist() + return + +/obj/proc/update_icon() + return + +/mob/proc/unset_machine() + if(machine) + machine.on_unset_machine(src) + machine = null + +//called when the user unsets the machine. +/atom/movable/proc/on_unset_machine(mob/user) + return + +/mob/proc/set_machine(obj/O) + if(src.machine) + unset_machine() + src.machine = O + if(istype(O)) + O.in_use = 1 + +/obj/item/proc/updateSelfDialog() + var/mob/M = src.loc + if(istype(M) && M.client && M.machine == src) + src.attack_self(M) + +/obj/proc/hide(h) + return + +//If a mob logouts/logins in side of an object you can use this proc +/obj/proc/on_log() + ..() + if(isobj(loc)) + var/obj/Loc=loc + Loc.on_log() + + +/obj/singularity_pull(S, current_size) + if(!anchored || current_size >= STAGE_FIVE) + step_towards(src,S) + +/obj/get_spans() + return ..() | SPAN_ROBOT + +/obj/storage_contents_dump_act(obj/item/weapon/storage/src_object, mob/user) + var/turf/T = get_turf(src) + return T.storage_contents_dump_act(src_object, user) + +/obj/proc/CanAStarPass() + . = !density + +/obj/proc/check_uplink_validity() + return 1 diff --git a/code/game/objects/radiation.dm b/code/game/objects/radiation.dm new file mode 100644 index 0000000..3d7739c --- /dev/null +++ b/code/game/objects/radiation.dm @@ -0,0 +1,41 @@ +/proc/radiation_pulse(turf/epicenter, heavy_range, light_range, severity, log=0) + if(!epicenter || !severity) return + + if(!isturf(epicenter)) + epicenter = get_turf(epicenter.loc) + + if(heavy_range > light_range) + light_range = heavy_range + + var/light_severity = severity * 0.5 + for(var/atom/T in range(light_range, epicenter)) + var/distance = get_dist(epicenter, T) + if(distance < 0) + distance = 0 + if(distance < heavy_range) + T.rad_act(severity) + else if(distance == heavy_range) + if(prob(50)) + T.rad_act(severity) + else + T.rad_act(light_severity) + else if(distance <= light_range) + T.rad_act(light_severity) + + if(log) + log_game("Radiation pulse with size ([heavy_range], [light_range]) and severity [severity] in area [epicenter.loc.name] ") + return 1 + +/atom/proc/rad_act(var/severity) + return 1 + +/mob/living/rad_act(amount, silent = 0) + if(amount) + var/blocked = getarmor(null, "rad") + + if(!silent) + src << "Your skin feels warm." + + apply_effect(amount, IRRADIATE, blocked) + for(var/obj/I in src) //Radiation is also applied to items held by the mob + I.rad_act(amount) diff --git a/code/game/objects/structures.dm b/code/game/objects/structures.dm new file mode 100644 index 0000000..57c5591 --- /dev/null +++ b/code/game/objects/structures.dm @@ -0,0 +1,111 @@ +/obj/structure + icon = 'icons/obj/structures.dmi' + pressure_resistance = 8 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 50) + obj_integrity = 300 + max_integrity = 300 + var/climb_time = 20 + var/climb_stun = 2 + var/climbable = FALSE + var/mob/structureclimber + var/broken = 0 //similar to machinery's stat BROKEN + +/obj/structure/New() + ..() + if(smooth) + queue_smooth(src) + queue_smooth_neighbors(src) + icon_state = "" + if(ticker) + cameranet.updateVisibility(src) + +/obj/structure/Destroy() + if(ticker) + cameranet.updateVisibility(src) + if(opacity) + UpdateAffectingLights() + if(smooth) + queue_smooth_neighbors(src) + return ..() + +/obj/structure/attack_hand(mob/user) + . = ..() + add_fingerprint(user) + if(structureclimber && structureclimber != user) + user.changeNext_move(CLICK_CD_MELEE) + user.do_attack_animation(src) + structureclimber.Weaken(2) + structureclimber.visible_message("[structureclimber.name] has been knocked off the [src]", "You're knocked off the [src]!", "You see [structureclimber.name] get knocked off the [src]") + interact(user) + +/obj/structure/interact(mob/user) + ui_interact(user) + +/obj/structure/ui_act(action, params) + ..() + add_fingerprint(usr) + +/obj/structure/MouseDrop_T(atom/movable/O, mob/user) + . = ..() + if(!climbable) + return + if(ismob(O) && user == O && iscarbon(user)) + if(user.canmove) + climb_structure(user) + return + if ((!( istype(O, /obj/item/weapon) ) || user.get_active_held_item() != O)) + return + if(iscyborg(user)) + return + if(!user.drop_item()) + return + if (O.loc != src.loc) + step(O, get_dir(O, src)) + return + +/obj/structure/proc/climb_structure(mob/user) + src.add_fingerprint(user) + user.visible_message("[user] starts climbing onto [src].", \ + "You start climbing onto [src]...") + var/adjusted_climb_time = climb_time + if(user.restrained()) //climbing takes twice as long when restrained. + adjusted_climb_time *= 2 + if(isalien(user)) + adjusted_climb_time *= 0.25 //aliens are terrifyingly fast + structureclimber = user + if(do_mob(user, user, adjusted_climb_time)) + if(src.loc) //Checking if structure has been destroyed + density = 0 + if(step(user,get_dir(user,src.loc))) + user.visible_message("[user] climbs onto [src].", \ + "You climb onto [src].") + add_logs(user, src, "climbed onto") + user.Stun(climb_stun) + . = 1 + else + user << "You fail to climb onto [src]." + density = 1 + structureclimber = null + +/obj/structure/examine(mob/user) + ..() + if(!(resistance_flags & INDESTRUCTIBLE)) + if(resistance_flags & ON_FIRE) + user << "It's on fire!" + if(broken) + user << "It looks broken." + var/examine_status = examine_status() + if(examine_status) + user << examine_status + +/obj/structure/proc/examine_status() //An overridable proc, mostly for falsewalls. + var/healthpercent = (obj_integrity/max_integrity) * 100 + switch(healthpercent) + if(100 to INFINITY) + return "It seems pristine and undamaged." + if(50 to 100) + return "It looks slightly damaged." + if(25 to 50) + return "It appears heavily damaged." + if(0 to 25) + return "It's falling apart!" diff --git a/code/game/objects/structures/ai_core.dm b/code/game/objects/structures/ai_core.dm new file mode 100644 index 0000000..83c98ec --- /dev/null +++ b/code/game/objects/structures/ai_core.dm @@ -0,0 +1,255 @@ +#define EMPTY_CORE 0 +#define CIRCUIT_CORE 1 +#define SCREWED_CORE 2 +#define CABLED_CORE 3 +#define GLASS_CORE 4 + +/obj/structure/AIcore + density = 1 + anchored = 0 + name = "\improper AI core" + icon = 'icons/mob/AI.dmi' + icon_state = "0" + obj_integrity = 500 + max_integrity = 500 + var/state = 0 + var/datum/ai_laws/laws = new() + var/obj/item/weapon/circuitboard/circuit = null + var/obj/item/device/mmi/brain = null + +/obj/structure/AIcore/New() + ..() + laws.set_laws_config() + +/obj/structure/AIcore/Destroy() + if(circuit) + qdel(circuit) + circuit = null + if(brain) + brain.forceMove(loc) + brain = null + return ..() + +/obj/structure/AIcore/attackby(obj/item/P, mob/user, params) + if(istype(P, /obj/item/weapon/wrench)) + playsound(loc, P.usesound, 50, 1) + user.visible_message("[user] [anchored ? "fastens" : "unfastens"] [src].", \ + "You start to [anchored ? "unfasten [src] from" : "fasten [src] to"] the floor...") + if(do_after(user, 20/P.toolspeed, target = src)) + user << "You [anchored ? "unfasten [src] from" : "fasten [src] to"] the floor." + anchored = !anchored + return + if(!anchored) + if(istype(P, /obj/item/weapon/weldingtool)) + if(state != EMPTY_CORE) + user << "The core must be empty to deconstruct it!" + return + var/obj/item/weapon/weldingtool/WT = P + if(!WT.isOn()) + user << "The welder must be on for this task!" + return + playsound(loc, 'sound/items/Welder.ogg', 50, 1) + user << "You start to deconstruct the frame..." + if(do_after(user, 20/P.toolspeed, target = src) && src && state == EMPTY_CORE && WT && WT.remove_fuel(0, user)) + user << "You deconstruct the frame." + deconstruct(TRUE) + return + else + switch(state) + if(EMPTY_CORE) + if(istype(P, /obj/item/weapon/circuitboard/aicore)) + if(!user.drop_item()) + return + playsound(loc, 'sound/items/Deconstruct.ogg', 50, 1) + user << "You place the circuit board inside the frame." + icon_state = "1" + state = CIRCUIT_CORE + circuit = P + P.forceMove(src) + return + if(CIRCUIT_CORE) + if(istype(P, /obj/item/weapon/screwdriver)) + playsound(loc, P.usesound, 50, 1) + user << "You screw the circuit board into place." + state = SCREWED_CORE + icon_state = "2" + return + if(istype(P, /obj/item/weapon/crowbar)) + playsound(loc, P.usesound, 50, 1) + user << "You remove the circuit board." + state = EMPTY_CORE + icon_state = "0" + circuit.forceMove(loc) + circuit = null + return + if(SCREWED_CORE) + if(istype(P, /obj/item/weapon/screwdriver) && circuit) + playsound(loc, P.usesound, 50, 1) + user << "You unfasten the circuit board." + state = CIRCUIT_CORE + icon_state = "1" + return + if(istype(P, /obj/item/stack/cable_coil)) + var/obj/item/stack/cable_coil/C = P + if(C.get_amount() >= 5) + playsound(loc, 'sound/items/Deconstruct.ogg', 50, 1) + user << "You start to add cables to the frame..." + if(do_after(user, 20, target = src) && state == SCREWED_CORE && C.use(5)) + user << "You add cables to the frame." + state = CABLED_CORE + icon_state = "3" + else + user << "You need five lengths of cable to wire the AI core!" + return + if(CABLED_CORE) + if(istype(P, /obj/item/weapon/wirecutters)) + if (brain) + user << "Get that brain out of there first!" + else + playsound(loc, P.usesound, 50, 1) + user << "You remove the cables." + state = SCREWED_CORE + icon_state = "2" + var/obj/item/stack/cable_coil/A = new /obj/item/stack/cable_coil( loc ) + A.amount = 5 + return + + if(istype(P, /obj/item/stack/sheet/rglass)) + var/obj/item/stack/sheet/rglass/G = P + if(G.get_amount() >= 2) + playsound(loc, 'sound/items/Deconstruct.ogg', 50, 1) + user << "You start to put in the glass panel..." + if(do_after(user, 20, target = src) && state == CABLED_CORE && G.use(2)) + user << "You put in the glass panel." + state = GLASS_CORE + icon_state = "4" + else + user << "You need two sheets of reinforced glass to insert them into the AI core!" + return + + if(istype(P, /obj/item/weapon/aiModule)) + var/obj/item/weapon/aiModule/module = P + module.install(laws, user) + return + + if(istype(P, /obj/item/device/mmi) && !brain) + var/obj/item/device/mmi/M = P + if(!M.brainmob) + user << "Sticking an empty MMI into the frame would sort of defeat the purpose!" + return + if(M.brainmob.stat == DEAD) + user << "Sticking a dead brain into the frame would sort of defeat the purpose!" + return + + if(!M.brainmob.client) + user << "Sticking an inactive brain into the frame would sort of defeat the purpose." + return + + if((config) && (!config.allow_ai) || jobban_isbanned(M.brainmob, "AI") || M.hacked || M.clockwork) + user << "This MMI does not seem to fit!" + return + + if(!M.brainmob.mind) + user << "This MMI is mindless!" + return + + if(!user.drop_item()) + return + + ticker.mode.remove_antag_for_borging(M.brainmob.mind) + remove_servant_of_ratvar(M, TRUE) + M.forceMove(src) + brain = M + user << "Added a brain." + icon_state = "3b" + return + + if(istype(P, /obj/item/weapon/crowbar) && brain) + playsound(loc, P.usesound, 50, 1) + user << "You remove the brain." + brain.forceMove(loc) + brain = null + icon_state = "3" + return + + if(GLASS_CORE) + if(istype(P, /obj/item/weapon/crowbar)) + playsound(loc, P.usesound, 50, 1) + user << "You remove the glass panel." + state = CABLED_CORE + if(brain) + icon_state = "3b" + else + icon_state = "3" + new /obj/item/stack/sheet/rglass(loc, 2) + return + + if(istype(P, /obj/item/weapon/screwdriver)) + playsound(loc, P.usesound, 50, 1) + user << "You connect the monitor." + new /mob/living/silicon/ai (loc, laws, brain) + feedback_inc("cyborg_ais_created",1) + qdel(src) + return + return ..() + + +/obj/structure/AIcore/deconstruct(disassembled = TRUE) + if(state == GLASS_CORE) + new /obj/item/stack/sheet/rglass(loc, 2) + if(state >= CABLED_CORE) + new /obj/item/stack/cable_coil(loc, 5) + if(circuit) + circuit.forceMove(loc) + circuit = null + new /obj/item/stack/sheet/plasteel(loc, 4) + qdel(src) + +/obj/structure/AIcore/deactivated + name = "inactive AI" + icon = 'icons/mob/AI.dmi' + icon_state = "ai-empty" + anchored = 1 + state = GLASS_CORE + +/obj/structure/AIcore/deactivated/attackby(obj/item/A, mob/user, params) + if(istype(A, /obj/item/device/aicard) && state == GLASS_CORE) + A.transfer_ai("INACTIVE","AICARD",src,user) + else + return ..() + +/* +This is a good place for AI-related object verbs so I'm sticking it here. +If adding stuff to this, don't forget that an AI need to cancel_camera() whenever it physically moves to a different location. +That prevents a few funky behaviors. +*/ +//The type of interaction, the player performing the operation, the AI itself, and the card object, if any. + + +/atom/proc/transfer_ai(interaction, mob/user, mob/living/silicon/ai/AI, obj/item/device/aicard/card) + if(istype(card)) + if(card.flush) + user << "ERROR: AI flush is in progress, cannot execute transfer protocol." + return 0 + return 1 + + +/obj/structure/AIcore/deactivated/transfer_ai(interaction, mob/user, mob/living/silicon/ai/AI, obj/item/device/aicard/card) + if(!..()) + return + //Transferring a carded AI to a core. + if(interaction == AI_TRANS_FROM_CARD) + AI.control_disabled = 0 + AI.radio_enabled = 1 + AI.forceMove(loc) // to replace the terminal. + AI << "You have been uploaded to a stationary terminal. Remote device connection restored." + user << "Transfer successful: [AI.name] ([rand(1000,9999)].exe) installed and executed successfully. Local copy has been removed." + card.AI = null + qdel(src) + else //If for some reason you use an empty card on an empty AI terminal. + user << "There is no AI loaded on this terminal!" + + +/obj/item/weapon/circuitboard/aicore + name = "circuit board (AI core)" + origin_tech = "programming=3" diff --git a/code/game/objects/structures/aliens.dm b/code/game/objects/structures/aliens.dm new file mode 100644 index 0000000..a8c350e --- /dev/null +++ b/code/game/objects/structures/aliens.dm @@ -0,0 +1,319 @@ +/* Alien shit! + * Contains: + * structure/alien + * Resin + * Weeds + * Egg + */ + + +/obj/structure/alien + icon = 'icons/mob/alien.dmi' + obj_integrity = 100 + max_integrity = 100 + +/obj/structure/alien/run_obj_armor(damage_amount, damage_type, damage_flag = 0, attack_dir) + if(damage_flag == "melee") + switch(damage_type) + if(BRUTE) + damage_amount *= 0.25 + if(BURN) + damage_amount *= 2 + . = ..() + +/obj/structure/alien/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) + switch(damage_type) + if(BRUTE) + if(damage_amount) + playsound(loc, 'sound/effects/attackblob.ogg', 100, 1) + else + playsound(src, 'sound/weapons/tap.ogg', 50, 1) + if(BURN) + if(damage_amount) + playsound(loc, 'sound/items/Welder.ogg', 100, 1) + +/* + * Generic alien stuff, not related to the purple lizards but still alien-like + */ + +/obj/structure/alien/gelpod + name = "gelatinous mound" + desc = "A mound of jelly-like substance encasing something inside." + icon = 'icons/obj/fluff.dmi' + icon_state = "gelmound" + +/obj/structure/alien/gelpod/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + new/obj/effect/mob_spawn/human/corpse/damaged(get_turf(src)) + qdel(src) + +/* + * Resin + */ +/obj/structure/alien/resin + name = "resin" + desc = "Looks like some kind of thick resin." + icon = 'icons/obj/smooth_structures/alien/resin_wall.dmi' + icon_state = "resin" + density = 1 + opacity = 1 + anchored = 1 + canSmoothWith = list(/obj/structure/alien/resin) + obj_integrity = 200 + max_integrity = 200 + smooth = SMOOTH_TRUE + var/resintype = null + + + +/obj/structure/alien/resin/New(location) + ..() + air_update_turf(1) + return + +/obj/structure/alien/resin/Move() + var/turf/T = loc + ..() + move_update_air(T) + +/obj/structure/alien/resin/CanAtmosPass() + return !density + +/obj/structure/alien/resin/wall + name = "resin wall" + desc = "Thick resin solidified into a wall." + icon = 'icons/obj/smooth_structures/alien/resin_wall.dmi' + icon_state = "wall0" //same as resin, but consistency ho! + resintype = "wall" + canSmoothWith = list(/obj/structure/alien/resin/wall, /obj/structure/alien/resin/membrane) + +/obj/structure/alien/resin/wall/BlockSuperconductivity() + return 1 + +/obj/structure/alien/resin/membrane + name = "resin membrane" + desc = "Resin just thin enough to let light pass through." + icon = 'icons/obj/smooth_structures/alien/resin_membrane.dmi' + icon_state = "membrane0" + opacity = 0 + obj_integrity = 160 + max_integrity = 160 + resintype = "membrane" + canSmoothWith = list(/obj/structure/alien/resin/wall, /obj/structure/alien/resin/membrane) + +/obj/structure/alien/resin/attack_paw(mob/user) + return attack_hand(user) + + +/obj/structure/alien/resin/CanPass(atom/movable/mover, turf/target, height=0) + return !density + + +/* + * Weeds + */ + +#define NODERANGE 3 + +/obj/structure/alien/weeds + gender = PLURAL + name = "resin floor" + desc = "A thick resin surface covers the floor." + anchored = 1 + density = 0 + layer = TURF_LAYER + icon_state = "weeds" + obj_integrity = 15 + max_integrity = 15 + var/obj/structure/alien/weeds/node/linked_node = null + canSmoothWith = list(/obj/structure/alien/weeds, /turf/closed/wall) + smooth = SMOOTH_MORE + + +/obj/structure/alien/weeds/New(pos, node) + pixel_x = -4 + pixel_y = -4 //so the sprites line up right in the map editor + ..() + if(!luminosity) //weed nodes have luminosity, but normal weeds don't! + switch(rand(1,3)) + if(1) + icon = 'icons/obj/smooth_structures/alien/weeds1.dmi' + if(2) + icon = 'icons/obj/smooth_structures/alien/weeds2.dmi' + if(3) + icon = 'icons/obj/smooth_structures/alien/weeds3.dmi' + linked_node = node + if(isspaceturf(loc)) + qdel(src) + return + addtimer(src, "Life", rand(150, 200)) + +/obj/structure/alien/weeds/Destroy() + linked_node = null + return ..() + +/obj/structure/alien/weeds/proc/Life() + set background = BACKGROUND_ENABLED + var/turf/U = get_turf(src) + + if(isspaceturf(U)) + qdel(src) + return + + if(!linked_node || get_dist(linked_node, src) > linked_node.node_range) + return + + for(var/turf/T in U.GetAtmosAdjacentTurfs()) + + if (locate(/obj/structure/alien/weeds) in T || isspaceturf(T)) + continue + + new /obj/structure/alien/weeds(T, linked_node) + + +/obj/structure/alien/weeds/ex_act(severity, target) + qdel(src) + + +/obj/structure/alien/weeds/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) + if(exposed_temperature > 300) + take_damage(5, BURN, 0, 0) + + +//Weed nodes +/obj/structure/alien/weeds/node + name = "glowing resin" + desc = "Blue bioluminescence shines from beneath the surface." + icon_state = "weednode" + luminosity = 1 + var/node_range = NODERANGE + + +/obj/structure/alien/weeds/node/New() + icon = 'icons/obj/smooth_structures/alien/weednode.dmi' + ..(loc, src) + +#undef NODERANGE + + +/* + * Egg + */ + +//for the status var +#define BURST 0 +#define BURSTING 1 +#define GROWING 2 +#define GROWN 3 +#define MIN_GROWTH_TIME 900 //time it takes to grow a hugger +#define MAX_GROWTH_TIME 1500 + +/obj/structure/alien/egg + name = "egg" + desc = "A large mottled egg." + icon_state = "egg_growing" + density = 0 + anchored = 1 + obj_integrity = 100 + max_integrity = 100 + var/status = GROWING //can be GROWING, GROWN or BURST; all mutually exclusive + layer = MOB_LAYER + + +/obj/structure/alien/egg/New() + new /obj/item/clothing/mask/facehugger(src) + ..() + addtimer(src, "Grow", rand(MIN_GROWTH_TIME, MAX_GROWTH_TIME)) + +/obj/structure/alien/egg/Destroy() + remove_from_proximity_list(src, 1) + ..() + +/obj/structure/alien/egg/attack_paw(mob/living/user) + return attack_hand(user) + +/obj/structure/alien/egg/attack_alien(mob/living/carbon/alien/user) + return attack_hand(user) + +/obj/structure/alien/egg/attack_hand(mob/living/user) + if(user.getorgan(/obj/item/organ/alien/plasmavessel)) + switch(status) + if(BURST) + user << "You clear the hatched egg." + playsound(loc, 'sound/effects/attackblob.ogg', 100, 1) + qdel(src) + return + if(GROWING) + user << "The child is not developed yet." + return + if(GROWN) + user << "You retrieve the child." + Burst(0) + return + else + user << "It feels slimy." + user.changeNext_move(CLICK_CD_MELEE) + + +/obj/structure/alien/egg/proc/GetFacehugger() + return locate(/obj/item/clothing/mask/facehugger) in contents + +/obj/structure/alien/egg/proc/Grow() + icon_state = "egg" + status = GROWN + add_to_proximity_list(src, 1) + +/obj/structure/alien/egg/proc/Burst(kill = 1) //drops and kills the hugger if any is remaining + if(status == GROWN || status == GROWING) + remove_from_proximity_list(src, 1) + icon_state = "egg_hatched" + flick("egg_opening", src) + status = BURSTING + spawn(15) + status = BURST + var/obj/item/clothing/mask/facehugger/child = GetFacehugger() + if(child) + child.loc = get_turf(src) + if(kill && istype(child)) + child.Die() + else + for(var/mob/M in range(1,src)) + if(CanHug(M)) + child.Attach(M) + break + +/obj/structure/alien/egg/Move() + remove_from_proximity_list(src, 1) + ..() + +/obj/structure/alien/egg/deconstruct() + if(!(flags & NODECONSTRUCT)) + if(status != BURST && status != BURSTING) + Burst() + else if(status == BURST) + qdel(src) //Remove the egg after it has been hit after bursting. + else + qdel(src) + +/obj/structure/alien/egg/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) + if(exposed_temperature > 500) + take_damage(5, BURN, 0, 0) + + +/obj/structure/alien/egg/HasProximity(atom/movable/AM) + if(status == GROWN) + if(!CanHug(AM)) + return + + var/mob/living/carbon/C = AM + if(C.stat == CONSCIOUS && C.getorgan(/obj/item/organ/body_egg/alien_embryo)) + return + + Burst(0) + +#undef BURST +#undef BURSTING +#undef GROWING +#undef GROWN +#undef MIN_GROWTH_TIME +#undef MAX_GROWTH_TIME diff --git a/code/game/objects/structures/artstuff.dm b/code/game/objects/structures/artstuff.dm new file mode 100644 index 0000000..07e16b7 --- /dev/null +++ b/code/game/objects/structures/artstuff.dm @@ -0,0 +1,129 @@ + +/////////// +// EASEL // +/////////// + +/obj/structure/easel + name = "easel" + desc = "only for the finest of art!" + icon = 'icons/obj/artstuff.dmi' + icon_state = "easel" + density = 1 + resistance_flags = FLAMMABLE + obj_integrity = 60 + max_integrity = 60 + var/obj/item/weapon/canvas/painting = null + + +//Adding canvases +/obj/structure/easel/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/canvas)) + var/obj/item/weapon/canvas/C = I + user.unEquip(C) + painting = C + C.loc = get_turf(src) + C.layer = layer+0.1 + user.visible_message("[user] puts \the [C] on \the [src].","You place \the [C] on \the [src].") + else + return ..() + + +//Stick to the easel like glue +/obj/structure/easel/Move() + var/turf/T = get_turf(src) + ..() + if(painting && painting.loc == T) //Only move if it's near us. + painting.loc = get_turf(src) + else + painting = null + + +////////////// +// CANVASES // +////////////// + +#define AMT_OF_CANVASES 4 //Keep this up to date or shit will break. + +//To safe memory on making /icons we cache the blanks.. +var/global/list/globalBlankCanvases[AMT_OF_CANVASES] + +/obj/item/weapon/canvas + name = "canvas" + desc = "draw out your soul on this canvas!" + icon = 'icons/obj/artstuff.dmi' + icon_state = "11x11" + resistance_flags = FLAMMABLE + var/whichGlobalBackup = 1 //List index + +/obj/item/weapon/canvas/nineteenXnineteen + icon_state = "19x19" + whichGlobalBackup = 2 + +/obj/item/weapon/canvas/twentythreeXnineteen + icon_state = "23x19" + whichGlobalBackup = 3 + +/obj/item/weapon/canvas/twentythreeXtwentythree + icon_state = "23x23" + whichGlobalBackup = 4 + + +//Find the right size blank canvas +/obj/item/weapon/canvas/proc/getGlobalBackup() + . = null + if(globalBlankCanvases[whichGlobalBackup]) + . = globalBlankCanvases[whichGlobalBackup] + else + var/icon/I = icon(initial(icon),initial(icon_state)) + globalBlankCanvases[whichGlobalBackup] = I + . = I + + + +//One pixel increments +/obj/item/weapon/canvas/attackby(obj/item/I, mob/user, params) + //Click info + var/list/click_params = params2list(params) + var/pixX = text2num(click_params["icon-x"]) + var/pixY = text2num(click_params["icon-y"]) + + //Should always be true, otherwise you didn't click the object, but let's check because SS13~ + if(!click_params || !click_params["icon-x"] || !click_params["icon-y"]) + return + + //Cleaning one pixel with a soap or rag + if(istype(I, /obj/item/weapon/soap) || istype(I, /obj/item/weapon/reagent_containers/glass/rag)) + //Pixel info created only when needed + var/icon/masterpiece = icon(icon,icon_state) + var/thePix = masterpiece.GetPixel(pixX,pixY) + var/icon/Ico = getGlobalBackup() + if(!Ico) + qdel(masterpiece) + return + + var/theOriginalPix = Ico.GetPixel(pixX,pixY) + if(thePix != theOriginalPix) //colour changed + DrawPixelOn(theOriginalPix,pixX,pixY) + qdel(masterpiece) + + //Drawing one pixel with a crayon + else if(istype(I, /obj/item/toy/crayon)) + var/obj/item/toy/crayon/C = I + DrawPixelOn(C.paint_color, pixX, pixY) + else + return ..() + + +//Clean the whole canvas +/obj/item/weapon/canvas/attack_self(mob/user) + if(!user) + return + var/icon/blank = getGlobalBackup() + if(blank) + //it's basically a giant etch-a-sketch + icon = blank + user.visible_message("[user] cleans the canvas.","You clean the canvas.") + + + +#undef AMT_OF_CANVASES diff --git a/code/game/objects/structures/barsigns.dm b/code/game/objects/structures/barsigns.dm new file mode 100644 index 0000000..e9094b4 --- /dev/null +++ b/code/game/objects/structures/barsigns.dm @@ -0,0 +1,329 @@ +/obj/structure/sign/barsign // All Signs are 64 by 32 pixels, they take two tiles + name = "Bar Sign" + desc = "A bar sign with no writing on it" + icon = 'icons/obj/barsigns.dmi' + icon_state = "empty" + req_access = list(access_bar) + obj_integrity = 500 + max_integrity = 500 + integrity_failure = 250 + armor = list(melee = 20, bullet = 20, laser = 20, energy = 100, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 50) + buildable_sign = 0 + var/list/barsigns=list() + var/list/hiddensigns + var/emagged = 0 + var/state = 0 + var/prev_sign = "" + var/panel_open = 0 + + + + +/obj/structure/sign/barsign/New() + ..() + + +//filling the barsigns list + for(var/bartype in subtypesof(/datum/barsign)) + var/datum/barsign/signinfo = new bartype + if(!signinfo.hidden) + barsigns += signinfo + + +//randomly assigning a sign + set_sign(pick(barsigns)) + + + +/obj/structure/sign/barsign/proc/set_sign(datum/barsign/sign) + if(!istype(sign)) + return + icon_state = sign.icon + name = sign.name + if(sign.desc) + desc = sign.desc + else + desc = "It displays \"[name]\"." + + + +/obj/structure/sign/barsign/obj_break(damage_flag) + if(!broken && !(flags & NODECONSTRUCT)) + broken = 1 + +/obj/structure/sign/barsign/deconstruct(disassembled = TRUE) + new /obj/item/stack/sheet/metal (loc, 2) + new /obj/item/stack/cable_coil (loc, 2) + qdel(src) + +/obj/structure/sign/barsign/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) + switch(damage_type) + if(BRUTE) + playsound(src.loc, 'sound/effects/Glasshit.ogg', 75, 1) + if(BURN) + playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) + +/obj/structure/sign/barsign/attack_ai(mob/user) + return src.attack_hand(user) + + + +/obj/structure/sign/barsign/attack_hand(mob/user) + if (!src.allowed(user)) + user << "Access denied." + return + if (broken) + user << "The controls seem unresponsive." + return + pick_sign() + + + + +/obj/structure/sign/barsign/attackby(obj/item/I, mob/user) + if(istype(I, /obj/item/weapon/screwdriver)) + if(!allowed(user)) + user << "Access denied." + return + if(!panel_open) + user << "You open the maintenance panel." + set_sign(new /datum/barsign/hiddensigns/signoff) + panel_open = 1 + else + user << "You close the maintenance panel." + if(!broken && !emagged) + set_sign(pick(barsigns)) + else if(emagged) + set_sign(new /datum/barsign/hiddensigns/syndibarsign) + else + set_sign(new /datum/barsign/hiddensigns/empbarsign) + panel_open = 0 + + else if(istype(I, /obj/item/stack/cable_coil) && panel_open) + var/obj/item/stack/cable_coil/C = I + if(emagged) //Emagged, not broken by EMP + user << "Sign has been damaged beyond repair!" + return + else if(!broken) + user << "This sign is functioning properly!" + return + + if(C.use(2)) + user << "You replace the burnt wiring." + broken = 0 + else + user << "You need at least two lengths of cable!" + else + return ..() + + +/obj/structure/sign/barsign/emp_act(severity) + set_sign(new /datum/barsign/hiddensigns/empbarsign) + broken = 1 + + + + +/obj/structure/sign/barsign/emag_act(mob/user) + if(broken || emagged) + user << "Nothing interesting happens!" + return + user << "You emag the barsign. Takeover in progress..." + sleep(100) //10 seconds + set_sign(new /datum/barsign/hiddensigns/syndibarsign) + emagged = 1 + req_access = list(access_syndicate) + + + + +/obj/structure/sign/barsign/proc/pick_sign() + var/picked_name = input("Available Signage", "Bar Sign") as null|anything in barsigns + if(!picked_name) + return + set_sign(picked_name) + + + +//Code below is to define useless variables for datums. It errors without these + + + +/datum/barsign + var/name = "Name" + var/icon = "Icon" + var/desc = "desc" + var/hidden = 0 + + +//Anything below this is where all the specific signs are. If people want to add more signs, add them below. + + + +/datum/barsign/maltesefalcon + name = "Maltese Falcon" + icon = "maltesefalcon" + desc = "The Maltese Falcon, Space Bar and Grill." + + +/datum/barsign/thebark + name = "The Bark" + icon = "thebark" + desc = "Ian's bar of choice." + + +/datum/barsign/harmbaton + name = "The Harmbaton" + icon = "theharmbaton" + desc = "A great dining experience for both security members and assistants." + + +/datum/barsign/thesingulo + name = "The Singulo" + icon = "thesingulo" + desc = "Where people go that'd rather not be called by their name." + + +/datum/barsign/thedrunkcarp + name = "The Drunk Carp" + icon = "thedrunkcarp" + desc = "Don't drink and swim." + + +/datum/barsign/scotchservinwill + name = "Scotch Servin Willy's" + icon = "scotchservinwill" + desc = "Willy sure moved up in the world from clown to bartender." + + +/datum/barsign/officerbeersky + name = "Officer Beersky's" + icon = "officerbeersky" + desc = "Man eat a dong, these drinks are great." + + +/datum/barsign/thecavern + name = "The Cavern" + icon = "thecavern" + desc = "Fine drinks while listening to some fine tunes." + + +/datum/barsign/theouterspess + name = "The Outer Spess" + icon = "theouterspess" + desc = "This bar isn't actually located in outer space." + + +/datum/barsign/slipperyshots + name = "Slippery Shots" + icon = "slipperyshots" + desc = "Slippery slope to drunkeness with our shots!" + + +/datum/barsign/thegreytide + name = "The Grey Tide" + icon = "thegreytide" + desc = "Abandon your toolboxing ways and enjoy a lazy beer!" + + +/datum/barsign/honkednloaded + name = "Honked 'n' Loaded" + icon = "honkednloaded" + desc = "Honk." + + +/datum/barsign/thenest + name = "The Nest" + icon = "thenest" + desc = "A good place to retire for a drink after a long night of crime fighting." + + +/datum/barsign/thecoderbus + name = "The Coderbus" + icon = "thecoderbus" + desc = "A very controversial bar known for its wide variety of constantly-changing drinks." + + +/datum/barsign/theadminbus + name = "The Adminbus" + icon = "theadminbus" + desc = "An establishment visited mainly by space-judges. It isn't bombed nearly as much as court hearings." + +/datum/barsign/oldcockinn + name = "The Old Cock Inn" + icon = "oldcockinn" + desc = "Something about this sign fills you with despair." + +/datum/barsign/thewretchedhive + name = "The Wretched Hive" + icon = "thewretchedhive" + desc = "Legally obligated to instruct you to check your drinks for acid before consumption." + +/datum/barsign/robustacafe + name = "The Robusta Cafe" + icon = "robustacafe" + desc = "Holder of the 'Most Lethal Barfights' record 5 years uncontested." + +/datum/barsign/emergencyrumparty + name = "The Emergency Rum Party" + icon = "emergencyrumparty" + desc = "Recently relicensed after a long closure." + +/datum/barsign/combocafe + name = "The Combo Cafe" + icon = "combocafe" + desc = "Renowned system-wide for their utterly uncreative drink combinations." + +/datum/barsign/vladssaladbar + name = "Vlad's Salad Bar" + icon = "vladssaladbar" + desc = "Under new management. Vlad was always a bit too trigger happy with that shotgun." + +/datum/barsign/theshaken + name = "The Shaken" + icon = "theshaken" + desc = "This establishment does not serve stirred drinks." + +/datum/barsign/thealenath + name = "The Ale' Nath" + icon = "thealenath" + desc = "All right, buddy. I think you've had EI NATH. Time to get a cab." + +/datum/barsign/thealohasnackbar + name = "The Aloha Snackbar" + icon = "alohasnackbar" + desc = "A tasteful, inoffensive tiki bar sign." + +/datum/barsign/thenet + name = "The Net" + icon = "thenet" + desc = "You just seem to get caught up in it for hours." + + +/datum/barsign/hiddensigns + hidden = 1 + + +//Hidden signs list below this point + + + +/datum/barsign/hiddensigns/empbarsign + name = "Haywire Barsign" + icon = "empbarsign" + desc = "Something has gone very wrong." + + + +/datum/barsign/hiddensigns/syndibarsign + name = "Syndi Cat Takeover" + icon = "syndibarsign" + desc = "Syndicate or die." + + + +/datum/barsign/hiddensigns/signoff + name = "Bar Sign" + icon = "empty" + desc = "This sign doesn't seem to be on." + diff --git a/code/game/objects/structures/beds_chairs/alien_nest.dm b/code/game/objects/structures/beds_chairs/alien_nest.dm new file mode 100644 index 0000000..786d0af --- /dev/null +++ b/code/game/objects/structures/beds_chairs/alien_nest.dm @@ -0,0 +1,96 @@ +//Alium nests. Essentially beds with an unbuckle delay that only aliums can buckle mobs to. + +/obj/structure/bed/nest + name = "alien nest" + desc = "It's a gruesome pile of thick, sticky resin shaped like a nest." + icon = 'icons/obj/smooth_structures/alien/nest.dmi' + icon_state = "nest" + obj_integrity = 120 + max_integrity = 120 + smooth = SMOOTH_TRUE + can_be_unanchored = 0 + canSmoothWith = null + buildstacktype = null + flags = NODECONSTRUCT + var/image/nest_overlay + +/obj/structure/bed/nest/New() + nest_overlay = image('icons/mob/alien.dmi', "nestoverlay", layer=LYING_MOB_LAYER) + return ..() + +/obj/structure/bed/nest/user_unbuckle_mob(mob/living/buckled_mob, mob/living/user) + if(has_buckled_mobs()) + for(var/buck in buckled_mobs) //breaking a nest releases all the buckled mobs, because the nest isn't holding them down anymore + var/mob/living/M = buck + + if(user.getorgan(/obj/item/organ/alien/plasmavessel)) + unbuckle_mob(M) + add_fingerprint(user) + return + + if(M != user) + M.visible_message(\ + "[user.name] pulls [M.name] free from the sticky nest!",\ + "[user.name] pulls you free from the gelatinous resin.",\ + "You hear squelching...") + else + M.visible_message(\ + "[M.name] struggles to break free from the gelatinous resin!",\ + "You struggle to break free from the gelatinous resin... (Stay still for two minutes.)",\ + "You hear squelching...") + if(!do_after(M, 1200, target = src)) + if(M && M.buckled) + M << "You fail to unbuckle yourself!" + return + if(!M.buckled) + return + M.visible_message(\ + "[M.name] breaks free from the gelatinous resin!",\ + "You break free from the gelatinous resin!",\ + "You hear squelching...") + + unbuckle_mob(M) + add_fingerprint(user) + +/obj/structure/bed/nest/user_buckle_mob(mob/living/M, mob/living/user) + if ( !ismob(M) || (get_dist(src, user) > 1) || (M.loc != src.loc) || user.incapacitated() || M.buckled ) + return + + if(M.getorgan(/obj/item/organ/alien/plasmavessel)) + return + if(!user.getorgan(/obj/item/organ/alien/plasmavessel)) + return + + if(has_buckled_mobs()) + unbuckle_all_mobs() + + if(buckle_mob(M)) + M.visible_message(\ + "[user.name] secretes a thick vile goo, securing [M.name] into [src]!",\ + "[user.name] drenches you in a foul-smelling resin, trapping you in [src]!",\ + "You hear squelching...") + +/obj/structure/bed/nest/post_buckle_mob(mob/living/M) + if(M in buckled_mobs) + M.pixel_y = 0 + M.pixel_x = initial(M.pixel_x) + 2 + M.layer = BELOW_MOB_LAYER + add_overlay(nest_overlay) + else + M.pixel_x = M.get_standard_pixel_x_offset(M.lying) + M.pixel_y = M.get_standard_pixel_y_offset(M.lying) + M.layer = initial(M.layer) + overlays -= nest_overlay + +/obj/structure/bed/nest/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) + switch(damage_type) + if(BRUTE) + playsound(loc, 'sound/effects/attackblob.ogg', 100, 1) + if(BURN) + playsound(loc, 'sound/items/Welder.ogg', 100, 1) + +/obj/structure/bed/nest/attack_alien(mob/living/carbon/alien/user) + if(user.a_intent != "harm") + return attack_hand(user) + else + return ..() \ No newline at end of file diff --git a/code/game/objects/structures/beds_chairs/bed.dm b/code/game/objects/structures/beds_chairs/bed.dm new file mode 100644 index 0000000..4ecf398 --- /dev/null +++ b/code/game/objects/structures/beds_chairs/bed.dm @@ -0,0 +1,158 @@ +/* Beds... get your mind out of the gutter, they're for sleeping! + * Contains: + * Beds + * Roller beds + */ + +/* + * Beds + */ +/obj/structure/bed + name = "bed" + desc = "This is used to lie in, sleep in or strap on." + icon_state = "bed" + icon = 'icons/obj/objects.dmi' + anchored = 1 + can_buckle = 1 + buckle_lying = 1 + resistance_flags = FLAMMABLE + obj_integrity = 100 + max_integrity = 100 + integrity_failure = 30 + var/buildstacktype = /obj/item/stack/sheet/metal + var/buildstackamount = 2 + +/obj/structure/bed/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + if(buildstacktype) + new buildstacktype(loc,buildstackamount) + ..() + +/obj/structure/bed/attack_paw(mob/user) + return attack_hand(user) + +/obj/structure/bed/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/weapon/wrench) && !(flags&NODECONSTRUCT)) + playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + deconstruct(TRUE) + else + return ..() + +/* + * Roller beds + */ +/obj/structure/bed/roller + name = "roller bed" + icon = 'icons/obj/rollerbed.dmi' + icon_state = "down" + anchored = 0 + resistance_flags = 0 + var/foldabletype = /obj/item/roller + +/obj/structure/bed/roller/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W,/obj/item/roller/robo)) + var/obj/item/roller/robo/R = W + if(R.loaded) + user << "You already have a roller bed docked!" + return + + if(has_buckled_mobs()) + if(buckled_mobs.len > 1) + unbuckle_all_mobs() + user.visible_message("[user] unbuckles all creatures from [src].") + else + user_unbuckle_mob(buckled_mobs[1],user) + else + R.loaded = src + forceMove(R) + user.visible_message("[user] collects [src].", "You collect [src].") + return 1 + else + return ..() + +/obj/structure/bed/roller/MouseDrop(over_object, src_location, over_location) + . = ..() + if(over_object == usr && Adjacent(usr)) + if(!ishuman(usr)) + return 0 + if(has_buckled_mobs()) + return 0 + if(usr.incapacitated()) + usr << "You can't do that right now!" + return 0 + usr.visible_message("[usr] collapses \the [src.name].", "You collapse \the [src.name].") + var/obj/structure/bed/roller/B = new foldabletype(get_turf(src)) + usr.put_in_hands(B) + qdel(src) + +/obj/structure/bed/roller/post_buckle_mob(mob/living/M) + if(M in buckled_mobs) + density = 1 + icon_state = "up" + M.pixel_y = initial(M.pixel_y) + else + density = 0 + icon_state = "down" + M.pixel_x = M.get_standard_pixel_x_offset(M.lying) + M.pixel_y = M.get_standard_pixel_y_offset(M.lying) + + +/obj/item/roller + name = "roller bed" + desc = "A collapsed roller bed that can be carried around." + icon = 'icons/obj/rollerbed.dmi' + icon_state = "folded" + w_class = 4 // Can't be put in backpacks. + + +/obj/item/roller/attack_self(mob/user) + deploy_roller(user, user.loc) + +/obj/item/roller/afterattack(obj/target, mob/user , proximity) + if(!proximity) + return + if(isopenturf(target)) + deploy_roller(user, target) + +/obj/item/roller/proc/deploy_roller(mob/user, atom/location) + var/obj/structure/bed/roller/R = new /obj/structure/bed/roller(location) + R.add_fingerprint(user) + qdel(src) + +/obj/item/roller/robo //ROLLER ROBO DA! + name = "roller bed dock" + var/loaded = null + +/obj/item/roller/robo/New() + loaded = new /obj/structure/bed/roller(src) + desc = "A collapsed roller bed that can be ejected for emergency use. Must be collected or replaced after use." + ..() + +/obj/item/roller/robo/examine(mob/user) + ..() + user << "The dock is [loaded ? "loaded" : "empty"]" + +/obj/item/roller/robo/deploy_roller(mob/user, atom/location) + if(loaded) + var/obj/structure/bed/roller/R = loaded + R.loc = location + user.visible_message("[user] deploys [loaded].", "You deploy [loaded].") + loaded = null + else + user << "The dock is empty!" + +//Dog bed + +/obj/structure/bed/dogbed + name = "dog bed" + icon_state = "dogbed" + desc = "A comfy-looking dog bed. You can even strap your pet in, in case the gravity turns off." + anchored = 0 + buildstacktype = /obj/item/stack/sheet/mineral/wood + buildstackamount = 10 + + +/obj/structure/bed/alien + name = "resting contraption" + desc = "This looks similar to contraptions from earth. Could aliens be stealing our technology?" + icon_state = "abed" \ No newline at end of file diff --git a/code/game/objects/structures/beds_chairs/chair.dm b/code/game/objects/structures/beds_chairs/chair.dm new file mode 100644 index 0000000..2e9013e --- /dev/null +++ b/code/game/objects/structures/beds_chairs/chair.dm @@ -0,0 +1,318 @@ +/obj/structure/chair + name = "chair" + desc = "You sit in this. Either by will or force.\nDrag your sprite to sit in the chair. Alt-click to rotate it clockwise." + icon = 'icons/obj/chairs.dmi' + icon_state = "chair" + anchored = 1 + can_buckle = 1 + buckle_lying = 0 //you sit in a chair, not lay + resistance_flags = 0 + obj_integrity = 250 + max_integrity = 250 + integrity_failure = 25 + var/buildstacktype = /obj/item/stack/sheet/metal + var/buildstackamount = 1 + var/item_chair = /obj/item/chair // if null it can't be picked up + +/obj/structure/chair/New() + ..() + handle_layer() + +/obj/structure/chair/deconstruct() + // If we have materials, and don't have the NOCONSTRUCT flag + if(buildstacktype && (!(flags & NODECONSTRUCT))) + new buildstacktype(loc,buildstackamount) + ..() + +/obj/structure/chair/attack_paw(mob/user) + return attack_hand(user) + +/obj/structure/chair/narsie_act() + if(prob(20)) + var/obj/structure/chair/wood/W = new/obj/structure/chair/wood(get_turf(src)) + W.setDir(dir) + qdel(src) + +/obj/structure/chair/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/weapon/wrench) && !(flags&NODECONSTRUCT)) + playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + deconstruct() + else if(istype(W, /obj/item/assembly/shock_kit)) + if(!user.drop_item()) + return + var/obj/item/assembly/shock_kit/SK = W + var/obj/structure/chair/e_chair/E = new /obj/structure/chair/e_chair(src.loc) + playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + E.setDir(dir) + E.part = SK + SK.loc = E + SK.master = E + qdel(src) + else + return ..() + +/obj/structure/chair/attack_tk(mob/user) + if(has_buckled_mobs()) + ..() + else + rotate() + +/obj/structure/chair/proc/handle_rotation(direction) + handle_layer() + if(has_buckled_mobs()) + for(var/m in buckled_mobs) + var/mob/living/buckled_mob = m + buckled_mob.setDir(direction) + +/obj/structure/chair/proc/handle_layer() + if(dir == NORTH) + layer = ABOVE_ALL_MOB_LAYER + else + layer = OBJ_LAYER + +/obj/structure/chair/proc/spin() + setDir(turn(dir, 90)) + +/obj/structure/chair/setDir(newdir) + ..() + handle_rotation(newdir) + +/obj/structure/chair/verb/rotate() + set name = "Rotate Chair" + set category = "Object" + set src in oview(1) + + if(config.ghost_interaction) + spin() + else + if(!usr || !isturf(usr.loc)) + return + if(usr.stat || usr.restrained()) + return + spin() + +/obj/structure/chair/AltClick(mob/user) + ..() + if(user.incapacitated()) + user << "You can't do that right now!" + return + if(!in_range(src, user)) + return + else + rotate() + +// Chair types +/obj/structure/chair/wood + icon_state = "wooden_chair" + name = "wooden chair" + desc = "Old is never too old to not be in fashion." + resistance_flags = FLAMMABLE + obj_integrity = 70 + max_integrity = 70 + buildstacktype = /obj/item/stack/sheet/mineral/wood + buildstackamount = 3 + item_chair = /obj/item/chair/wood + +/obj/structure/chair/wood/narsie_act() + return + +/obj/structure/chair/wood/normal //Kept for map compatibility + + +/obj/structure/chair/wood/wings + icon_state = "wooden_chair_wings" + item_chair = /obj/item/chair/wood/wings + +/obj/structure/chair/comfy + name = "comfy chair" + desc = "It looks comfy.\nAlt-click to rotate it clockwise." + icon_state = "comfychair" + color = rgb(255,255,255) + resistance_flags = FLAMMABLE + obj_integrity = 70 + max_integrity = 70 + buildstackamount = 2 + var/image/armrest = null + item_chair = null + +/obj/structure/chair/comfy/New() + armrest = image("icons/obj/chairs.dmi", "comfychair_armrest") + armrest.layer = ABOVE_MOB_LAYER + return ..() + +/obj/structure/chair/comfy/post_buckle_mob(mob/living/M) + if(has_buckled_mobs()) + add_overlay(armrest) + else + overlays -= armrest + + +/obj/structure/chair/comfy/brown + color = rgb(255,113,0) + +/obj/structure/chair/comfy/beige + color = rgb(255,253,195) + +/obj/structure/chair/comfy/teal + color = rgb(0,255,255) + +/obj/structure/chair/comfy/black + color = rgb(167,164,153) + +/obj/structure/chair/comfy/lime + color = rgb(255,251,0) + +/obj/structure/chair/office + anchored = 0 + buildstackamount = 5 + item_chair = null + +/obj/structure/chair/office/light + icon_state = "officechair_white" + +/obj/structure/chair/office/dark + icon_state = "officechair_dark" + +//Stool + +/obj/structure/chair/stool + name = "stool" + desc = "Apply butt." + icon_state = "stool" + can_buckle = 0 + buildstackamount = 1 + item_chair = /obj/item/chair/stool + +/obj/structure/chair/stool/narsie_act() + return + +/obj/structure/chair/MouseDrop(over_object, src_location, over_location) + . = ..() + if(over_object == usr && Adjacent(usr)) + if(!item_chair || !usr.can_hold_items() || has_buckled_mobs() || src.flags & NODECONSTRUCT) + return + if(usr.incapacitated()) + usr << "You can't do that right now!" + return + usr.visible_message("[usr] grabs \the [src.name].", "You grab \the [src.name].") + var/C = new item_chair(loc) + usr.put_in_hands(C) + qdel(src) + +/obj/structure/chair/stool/bar + name = "bar stool" + desc = "It has some unsavory stains on it..." + icon_state = "bar" + item_chair = /obj/item/chair/stool/bar + +/obj/item/chair + name = "chair" + desc = "Bar brawl essential." + icon = 'icons/obj/chairs.dmi' + icon_state = "chair_toppled" + item_state = "chair" + w_class = 5 + force = 8 + throwforce = 10 + throw_range = 3 + hitsound = 'sound/items/trayhit1.ogg' + hit_reaction_chance = 50 + var/break_chance = 5 //Likely hood of smashing the chair. + var/obj/structure/chair/origin_type = /obj/structure/chair + +/obj/item/chair/narsie_act() + if(prob(20)) + var/obj/item/chair/wood/W = new/obj/item/chair/wood(get_turf(src)) + W.setDir(dir) + qdel(src) + +/obj/item/chair/attack_self(mob/user) + plant(user) + +/obj/item/chair/proc/plant(mob/user) + for(var/obj/A in get_turf(loc)) + if(istype(A,/obj/structure/chair)) + user << "There is already a chair here." + return + if(A.density && !(A.flags & ON_BORDER)) + user << "There is already something here." + return + + user.visible_message("[user] rights \the [src.name].", "You right \the [name].") + var/obj/structure/chair/C = new origin_type(get_turf(loc)) + C.setDir(dir) + qdel(src) + +/obj/item/chair/proc/smash(mob/living/user) + var/stack_type = initial(origin_type.buildstacktype) + if(!stack_type) + return + var/remaining_mats = initial(origin_type.buildstackamount) + remaining_mats-- //Part of the chair was rendered completely unusable. It magically dissapears. Maybe make some dirt? + if(remaining_mats) + for(var/M=1 to remaining_mats) + new stack_type(get_turf(loc)) + user.unEquip(src,1) //Even NODROP chairs are destroyed. + qdel(src) + + + + +/obj/item/chair/hit_reaction(mob/living/carbon/human/owner, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) + if(attack_type == UNARMED_ATTACK && prob(hit_reaction_chance)) + owner.visible_message("[owner] fends off [attack_text] with [src]!") + return 1 + return 0 + +/obj/item/chair/afterattack(atom/target, mob/living/carbon/user, proximity) + ..() + if(!proximity) + return + if(prob(break_chance)) + user.visible_message("[user] smashes \the [src] to pieces against \the [target]") + if(iscarbon(target)) + var/mob/living/carbon/C = target + if(C.health < C.maxHealth*0.5) + C.Weaken(1) + smash(user) + + +/obj/item/chair/stool + name = "stool" + icon_state = "stool_toppled" + item_state = "stool" + origin_type = /obj/structure/chair/stool + break_chance = 0 //It's too sturdy. + +/obj/item/chair/stool/bar + name = "bar stool" + icon_state = "bar_toppled" + item_state = "stool_bar" + origin_type = /obj/structure/chair/stool/bar + +/obj/item/chair/stool/narsie_act() + return //sturdy enough to ignore a god + +/obj/item/chair/wood + name = "wooden chair" + icon_state = "wooden_chair_toppled" + item_state = "woodenchair" + resistance_flags = FLAMMABLE + obj_integrity = 70 + max_integrity = 70 + hitsound = 'sound/weapons/genhit1.ogg' + origin_type = /obj/structure/chair/wood + break_chance = 50 + +/obj/item/chair/wood/narsie_act() + return + +/obj/item/chair/wood/wings + icon_state = "wooden_chair_wings_toppled" + origin_type = /obj/structure/chair/wood/wings + +/obj/structure/chair/old + name = "strange chair" + desc = "You sit in this. Either by will or force. Looks REALLY uncomfortable." + icon_state = "chairold" + item_chair = null diff --git a/code/game/objects/structures/bedsheet_bin.dm b/code/game/objects/structures/bedsheet_bin.dm new file mode 100644 index 0000000..effe3c4 --- /dev/null +++ b/code/game/objects/structures/bedsheet_bin.dm @@ -0,0 +1,311 @@ +/* +CONTAINS: +BEDSHEETS +LINEN BINS +*/ + +/obj/item/weapon/bedsheet + name = "bedsheet" + desc = "A surprisingly soft linen bedsheet." + icon = 'icons/obj/bedsheets.dmi' + icon_state = "sheetwhite" + item_state = "bedsheet" + slot_flags = SLOT_BACK + layer = MOB_LAYER + throwforce = 0 + throw_speed = 1 + throw_range = 2 + w_class = 1 + item_color = "white" + resistance_flags = FLAMMABLE + + dog_fashion = /datum/dog_fashion/head/ghost + +/obj/item/weapon/bedsheet/attack(mob/living/M, mob/user) + if(!attempt_initiate_surgery(src, M, user)) + ..() + +/obj/item/weapon/bedsheet/attack_self(mob/user) + user.drop_item() + if(layer == initial(layer)) + layer = ABOVE_MOB_LAYER + user << "You cover yourself with [src]." + else + layer = initial(layer) + user << "You smooth [src] out beneath you." + add_fingerprint(user) + return + +/obj/item/weapon/bedsheet/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/wirecutters) || I.is_sharp()) + var/obj/item/stack/sheet/cloth/C = new (get_turf(src), 3) + transfer_fingerprints_to(C) + C.add_fingerprint(user) + qdel(src) + user << "You tear [src] up." + else + return ..() + +/obj/item/weapon/bedsheet/blue + icon_state = "sheetblue" + item_color = "blue" + +/obj/item/weapon/bedsheet/green + icon_state = "sheetgreen" + item_color = "green" + +/obj/item/weapon/bedsheet/orange + icon_state = "sheetorange" + item_color = "orange" + +/obj/item/weapon/bedsheet/purple + icon_state = "sheetpurple" + item_color = "purple" + +/obj/item/weapon/bedsheet/patriot + name = "patriotic bedsheet" + desc = "You've never felt more free than when sleeping on this." + icon_state = "sheetUSA" + item_color = "sheetUSA" + +/obj/item/weapon/bedsheet/rainbow + name = "rainbow bedsheet" + desc = "A multicolored blanket. It's actually several different sheets cut up and sewn together." + icon_state = "sheetrainbow" + item_color = "rainbow" + +/obj/item/weapon/bedsheet/red + icon_state = "sheetred" + item_color = "red" + +/obj/item/weapon/bedsheet/yellow + icon_state = "sheetyellow" + item_color = "yellow" + +/obj/item/weapon/bedsheet/mime + name = "mime's blanket" + desc = "A very soothing striped blanket. All the noise just seems to fade out when you're under the covers in this." + icon_state = "sheetmime" + item_color = "mime" + +/obj/item/weapon/bedsheet/clown + name = "clown's blanket" + desc = "A rainbow blanket with a clown mask woven in. It smells faintly of bananas." + icon_state = "sheetclown" + item_color = "clown" + +/obj/item/weapon/bedsheet/captain + name = "captain's bedsheet" + desc = "It has a Nanotrasen symbol on it, and was woven with a revolutionary new kind of thread guaranteed to have 0.01% permeability for most non-chemical substances, popular among most modern captains." + icon_state = "sheetcaptain" + item_color = "captain" + +/obj/item/weapon/bedsheet/rd + name = "research director's bedsheet" + desc = "It appears to have a beaker emblem, and is made out of fire-resistant material, although it probably won't protect you in the event of fires you're familiar with every day." + icon_state = "sheetrd" + item_color = "director" + +/obj/item/weapon/bedsheet/medical + name = "medical blanket" + desc = "It's a sterilized* blanket commonly used in the Medbay. *Sterilization is voided if a virologist is present onboard the station." + icon_state = "sheetmedical" + item_color = "medical" + +/obj/item/weapon/bedsheet/cmo + name = "chief medical officer's bedsheet" + desc = "It's a sterilized blanket that has a cross emblem. There's some cat fur on it, likely from Runtime." + icon_state = "sheetcmo" + item_color = "cmo" + +/obj/item/weapon/bedsheet/hos + name = "head of security's bedsheet" + desc = "It is decorated with a shield emblem. While crime doesn't sleep, you do, but you are still THE LAW!" + icon_state = "sheethos" + item_color = "hosred" + +/obj/item/weapon/bedsheet/hop + name = "head of personnel's bedsheet" + desc = "It is decorated with a key emblem. For those rare moments when you can rest and cuddle with Ian without someone screaming for you over the radio." + icon_state = "sheethop" + item_color = "hop" + +/obj/item/weapon/bedsheet/ce + name = "chief engineer's bedsheet" + desc = "It is decorated with a wrench emblem. It's highly reflective and stain resistant, so you don't need to worry about ruining it with oil." + icon_state = "sheetce" + item_color = "chief" + +/obj/item/weapon/bedsheet/qm + name = "quartermaster's bedsheet" + desc = "It is decorated with a crate emblem in silver lining. It's rather tough, and just the thing to lie on after a hard day of pushing paper." + icon_state = "sheetqm" + item_color = "qm" + +/obj/item/weapon/bedsheet/brown + icon_state = "sheetbrown" + item_color = "cargo" + +/obj/item/weapon/bedsheet/black + icon_state = "sheetblack" + item_color = "black" + +/obj/item/weapon/bedsheet/centcom + name = "\improper Centcom bedsheet" + desc = "Woven with advanced nanothread for warmth as well as being very decorated, essential for all officials." + icon_state = "sheetcentcom" + item_color = "centcom" + +/obj/item/weapon/bedsheet/syndie + name = "syndicate bedsheet" + desc = "It has a syndicate emblem and it has an aura of evil." + icon_state = "sheetsyndie" + item_color = "syndie" + +/obj/item/weapon/bedsheet/cult + name = "cultist's bedsheet" + desc = "You might dream of Nar'Sie if you sleep with this. It seems rather tattered and glows of an eldritch presence." + icon_state = "sheetcult" + item_color = "cult" + +/obj/item/weapon/bedsheet/wiz + name = "wizard's bedsheet" + desc = "A special fabric enchanted with magic so you can have an enchanted night. It even glows!" + icon_state = "sheetwiz" + item_color = "wiz" + +/obj/item/weapon/bedsheet/nanotrasen + name = "nanotrasen bedsheet" + desc = "It has the Nanotrasen logo on it and has an aura of duty." + icon_state = "sheetNT" + item_color = "nanotrasen" + +/obj/item/weapon/bedsheet/ian + icon_state = "sheetian" + item_color = "ian" + + +/obj/item/weapon/bedsheet/random + icon_state = "sheetrainbow" + item_color = "rainbow" + name = "random bedsheet" + desc = "If you're reading this description ingame, something has gone wrong! Honk!" + +/obj/item/weapon/bedsheet/random/New() + var/obj/item/weapon/bedsheet/B = pick(subtypesof(/obj/item/weapon/bedsheet) - /obj/item/weapon/bedsheet/random) + name = initial(B.name) + desc = initial(B.desc) + icon_state = initial(B.icon_state) + item_state = initial(B.item_state) + item_color = initial(B.item_color) + +/obj/structure/bedsheetbin + name = "linen bin" + desc = "It looks rather cosy." + icon = 'icons/obj/structures.dmi' + icon_state = "linenbin-full" + anchored = 1 + resistance_flags = FLAMMABLE + obj_integrity = 70 + max_integrity = 70 + var/amount = 10 + var/list/sheets = list() + var/obj/item/hidden = null + + +/obj/structure/bedsheetbin/examine(mob/user) + ..() + if(amount < 1) + user << "There are no bed sheets in the bin." + else if(amount == 1) + user << "There is one bed sheet in the bin." + else + user << "There are [amount] bed sheets in the bin." + + +/obj/structure/bedsheetbin/update_icon() + switch(amount) + if(0) + icon_state = "linenbin-empty" + if(1 to 5) + icon_state = "linenbin-half" + else + icon_state = "linenbin-full" + +/obj/structure/bedsheetbin/fire_act(exposed_temperature, exposed_volume) + if(amount) + amount = 0 + update_icon() + ..() + +/obj/structure/bedsheetbin/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/bedsheet)) + if(!user.drop_item()) + return + I.loc = src + sheets.Add(I) + amount++ + user << "You put [I] in [src]." + update_icon() + else if(amount && !hidden && I.w_class < 4) //make sure there's sheets to hide it among, make sure nothing else is hidden in there. + if(!user.drop_item()) + user << "\The [I] is stuck to your hand, you cannot hide it among the sheets!" + return + I.loc = src + hidden = I + user << "You hide [I] among the sheets." + + + +/obj/structure/bedsheetbin/attack_paw(mob/user) + return attack_hand(user) + + +/obj/structure/bedsheetbin/attack_hand(mob/user) + if(user.lying) + return + if(amount >= 1) + amount-- + + var/obj/item/weapon/bedsheet/B + if(sheets.len > 0) + B = sheets[sheets.len] + sheets.Remove(B) + + else + B = new /obj/item/weapon/bedsheet(loc) + + B.loc = user.loc + user.put_in_hands(B) + user << "You take [B] out of [src]." + update_icon() + + if(hidden) + hidden.loc = user.loc + user << "[hidden] falls out of [B]!" + hidden = null + + + add_fingerprint(user) +/obj/structure/bedsheetbin/attack_tk(mob/user) + if(amount >= 1) + amount-- + + var/obj/item/weapon/bedsheet/B + if(sheets.len > 0) + B = sheets[sheets.len] + sheets.Remove(B) + + else + B = new /obj/item/weapon/bedsheet(loc) + + B.loc = loc + user << "You telekinetically remove [B] from [src]." + update_icon() + + if(hidden) + hidden.loc = loc + hidden = null + + + add_fingerprint(user) diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm new file mode 100644 index 0000000..efe0ed3 --- /dev/null +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -0,0 +1,422 @@ +/obj/structure/closet + name = "closet" + desc = "It's a basic storage unit." + icon = 'icons/obj/closet.dmi' + icon_state = "generic" + density = 1 + var/icon_door = null + var/icon_door_override = FALSE //override to have open overlay use icon different to its base's + var/secure = FALSE //secure locker or not, also used if overriding a non-secure locker with a secure door overlay to add fancy lights + var/opened = FALSE + var/welded = FALSE + var/locked = FALSE + var/large = TRUE + var/wall_mounted = 0 //never solid (You can always pass over it) + obj_integrity = 200 + max_integrity = 200 + integrity_failure = 50 + armor = list(melee = 20, bullet = 10, laser = 10, energy = 0, bomb = 10, bio = 0, rad = 0, fire = 70, acid = 60) + var/breakout_time = 2 + var/lastbang + var/can_weld_shut = TRUE + var/horizontal = FALSE + var/allow_objects = FALSE + var/allow_dense = FALSE + var/dense_when_open = FALSE //if it's dense when open or not + var/max_mob_size = MOB_SIZE_HUMAN //Biggest mob_size accepted by the container + var/mob_storage_capacity = 3 // how many human sized mob/living can fit together inside a closet. + var/storage_capacity = 30 //This is so that someone can't pack hundreds of items in a locker/crate then open it in a populated area to crash clients. + var/cutting_tool = /obj/item/weapon/weldingtool + var/open_sound = 'sound/machines/click.ogg' + var/close_sound = 'sound/machines/click.ogg' + var/cutting_sound = 'sound/items/Welder.ogg' + var/material_drop = /obj/item/stack/sheet/metal + var/material_drop_amount = 3 + +/obj/structure/closet/New() + ..() + update_icon() + +/obj/structure/closet/initialize() + ..() + if(!opened) // if closed, any item at the crate's loc is put in the contents + take_contents() + +/obj/structure/closet/Destroy() + dump_contents() + return ..() + +/obj/structure/closet/update_icon() + cut_overlays() + if(!opened) + if(icon_door) + add_overlay("[icon_door]_door") + else + add_overlay("[icon_state]_door") + if(welded) + add_overlay("welded") + if(secure) + if(!broken) + if(locked) + add_overlay("locked") + else + add_overlay("unlocked") + else + add_overlay("off") + + else + if(icon_door_override) + add_overlay("[icon_door]_open") + else + add_overlay("[icon_state]_open") + +/obj/structure/closet/examine(mob/user) + ..() + if(broken) + user << "It appears to be broken." + else if(secure && !opened) + user << "Alt-click to [locked ? "unlock" : "lock"]." + +/obj/structure/closet/CanPass(atom/movable/mover, turf/target, height=0) + if(height == 0 || wall_mounted) + return 1 + return !density + +/obj/structure/closet/proc/can_open(mob/living/user) + if(welded || locked) + return 0 + var/turf/T = get_turf(src) + for(var/mob/living/L in T) + if(L.anchored || horizontal && L.mob_size > MOB_SIZE_TINY && L.density) + if(user) + user << "There's something large on top of [src], preventing it from opening." //you... think? there's something standing on it ffs + return 0 + return 1 + +/obj/structure/closet/proc/can_close(mob/living/user) + var/turf/T = get_turf(src) + for(var/obj/structure/closet/closet in T) + if(closet != src && !closet.wall_mounted) + return 0 + for(var/mob/living/L in T) + if(L.anchored || horizontal && L.mob_size > MOB_SIZE_TINY && L.density) + if(user) + user << "There's something too large in [src], preventing it from closing." + return 0 + return 1 + +/obj/structure/closet/proc/dump_contents() + var/turf/T = get_turf(src) + for(var/atom/movable/AM in src) + AM.forceMove(T) + if(throwing) // you keep some momentum when getting out of a thrown closet + step(AM, dir) + if(throwing) + throwing = 0 + +/obj/structure/closet/proc/take_contents() + var/turf/T = get_turf(src) + for(var/atom/movable/AM in T) + if(insert(AM) == -1) // limit reached + break + +/obj/structure/closet/proc/open(mob/living/user) + if(opened || !can_open(user)) + return + playsound(loc, open_sound, 15, 1, -3) + opened = 1 + if(!dense_when_open) + density = 0 + climb_time *= 0.5 //it's faster to climb onto an open thing + dump_contents() + update_icon() + return 1 + +/obj/structure/closet/proc/insert(atom/movable/AM) + if(contents.len >= storage_capacity) + return -1 + + + if(ismob(AM)) + if(!isliving(AM)) //let's not put ghosts or camera mobs inside closets... + return + var/mob/living/L = AM + if(L.anchored || L.buckled || L.incorporeal_move || L.has_buckled_mobs()) + return + if(L.mob_size > MOB_SIZE_TINY) // Tiny mobs are treated as items. + if(horizontal && L.density) + return + if(L.mob_size > max_mob_size) + return + var/mobs_stored = 0 + for(var/mob/living/M in contents) + if(++mobs_stored >= mob_storage_capacity) + return + L.stop_pulling() + else if(istype(AM, /obj/structure/closet)) + return + else if(isobj(AM)) + if(!allow_objects && !istype(AM, /obj/item) && !istype(AM, /obj/effect/dummy/chameleon)) + return + if(!allow_dense && AM.density) + return + if(AM.anchored || AM.has_buckled_mobs() || (AM.flags & NODROP)) + return + else + return + + AM.forceMove(src) + if(AM.pulledby) + AM.pulledby.stop_pulling() + + return 1 + +/obj/structure/closet/proc/close(mob/living/user) + if(!opened || !can_close(user)) + return 0 + take_contents() + playsound(loc, close_sound, 15, 1, -3) + climb_time = initial(climb_time) + opened = 0 + density = 1 + update_icon() + return 1 + +/obj/structure/closet/proc/toggle(mob/living/user) + if(opened) + return close(user) + else + return open(user) + +/obj/structure/closet/deconstruct(disassembled = TRUE) + if(ispath(material_drop) && material_drop_amount && !(flags & NODECONSTRUCT)) + new material_drop(loc, material_drop_amount) + qdel(src) + +/obj/structure/closet/obj_break(damage_flag) + if(!broken && !(flags & NODECONSTRUCT)) + bust_open() + +/obj/structure/closet/attackby(obj/item/weapon/W, mob/user, params) + if(user in src) + return + if(opened) + if(istype(W, cutting_tool)) + if(istype(W, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/WT = W + if(!WT.remove_fuel(0, user)) + return + user << "You begin cutting \the [src] apart..." + playsound(loc, cutting_sound, 40, 1) + if(do_after(user, 40/WT.toolspeed, 1, target = src)) + if(!opened || !WT.isOn()) + return + playsound(loc, cutting_sound, 50, 1) + visible_message("[user] slices apart \the [src].", + "You cut \the [src] apart with \the [WT].", + "You hear welding.") + deconstruct(TRUE) + return 0 + else if(user.drop_item()) + W.forceMove(loc) + return 1 + else if(istype(W, /obj/item/weapon/weldingtool) && can_weld_shut) + var/obj/item/weapon/weldingtool/WT = W + if(!WT.remove_fuel(0, user)) + return + user << "You begin [welded ? "unwelding":"welding"] \the [src]..." + playsound(loc, 'sound/items/Welder2.ogg', 40, 1) + if(do_after(user, 40/WT.toolspeed, 1, target = src)) + if(opened || !WT.isOn()) + return + playsound(loc, 'sound/items/welder.ogg', 50, 1) + welded = !welded + visible_message("[user] [welded ? "welds shut" : "unweldeds"] \the [src].", + "You [welded ? "weld" : "unwelded"] \the [src] with \the [WT].", + "You hear welding.") + update_icon() + else if(user.a_intent != "harm" && !(W.flags & NOBLUDGEON)) + if(W.GetID() || !toggle(user)) + togglelock(user) + return 1 + else + return ..() + +/obj/structure/closet/MouseDrop_T(atom/movable/O, mob/living/user) + if(!istype(O) || O.anchored || istype(O, /obj/screen)) + return + if(!istype(user) || user.incapacitated() || user.lying) + return + if(!Adjacent(user) || !user.Adjacent(O)) + return + if(user == O) //try to climb onto it + return ..() + if(!opened) + return + if(!isturf(O.loc)) + return + + var/actuallyismob = 0 + if(isliving(O)) + actuallyismob = 1 + else if(!istype(O, /obj/item)) + return + var/turf/T = get_turf(src) + var/list/targets = list(O, src) + add_fingerprint(user) + user.visible_message("[user] [actuallyismob ? "tries to ":""]stuff [O] into [src].", \ + "You [actuallyismob ? "try to ":""]stuff [O] into [src].", \ + "You hear clanging.") + if(actuallyismob) + if(do_after_mob(user, targets, 40)) + user.visible_message("[user] stuffs [O] into [src].", \ + "You stuff [O] into [src].", \ + "You hear a loud metal bang.") + var/mob/living/L = O + if(!issilicon(L)) + L.Weaken(2) + O.forceMove(T) + close() + else + O.forceMove(T) + return 1 + +/obj/structure/closet/relaymove(mob/user) + if(user.stat || !isturf(loc) || !isliving(user)) + return + var/mob/living/L = user + if(!open()) + if(L.last_special <= world.time) + container_resist(L) + if(world.time > lastbang+5) + lastbang = world.time + for(var/mob/M in get_hearers_in_view(src, null)) + M.show_message("BANG, bang!", 2) + +/obj/structure/closet/attack_hand(mob/user) + ..() + if(user.lying && get_dist(src, user) > 0) + return + + if(!toggle(user)) + togglelock(user) + return + +// tk grab then use on self +/obj/structure/closet/attack_self_tk(mob/user) + return attack_hand(user) + +/obj/structure/closet/verb/verb_toggleopen() + set src in oview(1) + set category = "Object" + set name = "Toggle Open" + + if(!usr.canmove || usr.stat || usr.restrained()) + return + + if(iscarbon(usr) || issilicon(usr) || isdrone(usr)) + attack_hand(usr) + else + usr << "This mob type can't use this verb." + +// Objects that try to exit a locker by stepping were doing so successfully, +// and due to an oversight in turf/Enter() were going through walls. That +// should be independently resolved, but this is also an interesting twist. +/obj/structure/closet/Exit(atom/movable/AM) + open() + if(AM.loc == src) + return 0 + return 1 + +/obj/structure/closet/container_resist(mob/living/user) + if(opened) + return + if(istype(loc, /atom/movable)) + user.changeNext_move(CLICK_CD_BREAKOUT) + user.last_special = world.time + CLICK_CD_BREAKOUT + var/atom/movable/AM = loc + AM.relay_container_resist(user, src) + return + if(!welded && !locked) + open() + return + + //okay, so the closet is either welded or locked... resist!!! + user.changeNext_move(CLICK_CD_BREAKOUT) + user.last_special = world.time + CLICK_CD_BREAKOUT + user << "You lean on the back of [src] and start pushing the door open." + visible_message("[src] begins to shake violently!") + if(do_after(user,(breakout_time * 60 * 10), target = src)) //minutes * 60seconds * 10deciseconds + if(!user || user.stat != CONSCIOUS || user.loc != src || opened || (!locked && !welded) ) + return + //we check after a while whether there is a point of resisting anymore and whether the user is capable of resisting + user.visible_message("[user] successfully broke out of [src]!", + "You successfully break out of [src]!") + bust_open() + else + if(user.loc == src) //so we don't get the message if we resisted multiple times and succeeded. + user << "You fail to break out of [src]!" + +/obj/structure/closet/proc/bust_open() + welded = 0 //applies to all lockers lockers + locked = 0 //applies to critter crates and secure lockers only + broken = 1 //applies to secure lockers only + open() + +/obj/structure/closet/AltClick(mob/user) + ..() + if(!user.canUseTopic(src, be_close=TRUE)) + user << "You can't do that right now!" + return + if(opened || !secure) + return + else + togglelock(user) + +/obj/structure/closet/proc/togglelock(mob/living/user) + if(secure && !broken) + if(allowed(user)) + add_fingerprint(user) + locked = !locked + user.visible_message("[user] [locked ? null : "un"]locks [src].", + "You [locked ? null : "un"]lock [src].") + update_icon() + else + user << "Access Denied" + else if(secure && broken) + user << "\The [src] is broken!" + +/obj/structure/closet/emag_act(mob/user) + if(secure && !broken) + user.visible_message("Sparks fly from [src]!", + "You scramble [src]'s lock, breaking it open!", + "You hear a faint electrical spark.") + playsound(src.loc, 'sound/effects/sparks4.ogg', 50, 1) + broken = 1 + locked = 0 + update_icon() + +/obj/structure/closet/get_remote_view_fullscreens(mob/user) + if(user.stat == DEAD || !(user.sight & (SEEOBJS|SEEMOBS))) + user.overlay_fullscreen("remote_view", /obj/screen/fullscreen/impaired, 1) + +/obj/structure/closet/emp_act(severity) + for(var/obj/O in src) + O.emp_act(severity) + if(secure && !broken) + if(prob(50 / severity)) + locked = !locked + update_icon() + if(prob(20 / severity) && !opened) + if(!locked) + open() + else + req_access = list() + req_access += pick(get_all_accesses()) + ..() + + +/obj/structure/closet/contents_explosion(severity, target) + for(var/atom/A in contents) + A.ex_act(severity, target) + CHECK_TICK \ No newline at end of file diff --git a/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm b/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm new file mode 100644 index 0000000..0faa17e --- /dev/null +++ b/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm @@ -0,0 +1,70 @@ +/obj/structure/closet/cardboard + name = "large cardboard box" + desc = "Just a box..." + icon_state = "cardboard" + mob_storage_capacity = 1 + resistance_flags = FLAMMABLE + obj_integrity = 70 + max_integrity = 70 + integrity_failure = 0 + can_weld_shut = 0 + cutting_tool = /obj/item/weapon/wirecutters + open_sound = 'sound/effects/rustle2.ogg' + cutting_sound = 'sound/items/poster_ripped.ogg' + material_drop = /obj/item/stack/sheet/cardboard + var/move_speed_multiplier = 1 + var/move_delay = 0 + var/egged = 0 + +/obj/structure/closet/cardboard/relaymove(mob/user, direction) + if(opened || move_delay || user.stat || user.stunned || user.weakened || user.paralysis || !isturf(loc) || !has_gravity(loc)) + return + move_delay = 1 + if(step(src, direction)) + spawn(config.walk_speed*move_speed_multiplier) + move_delay = 0 + else + move_delay = 0 + +/obj/structure/closet/cardboard/open() + if(opened || !can_open()) + return 0 + if(!egged) + var/mob/living/Snake = null + for(var/mob/living/L in src.contents) + Snake = L + break + if(Snake) + var/list/alerted = viewers(7,src) + if(alerted) + for(var/mob/living/L in alerted) + if(!L.stat) + L.do_alert_animation(L) + egged = 1 + alerted << sound('sound/machines/chime.ogg') + ..() + +/mob/living/proc/do_alert_animation(atom/A) + var/image/I + I = image('icons/obj/closet.dmi', A, "cardboard_special", A.layer+1) + var/list/viewing = list() + for(var/mob/M in viewers(A)) + if(M.client) + viewing |= M.client + flick_overlay(I,viewing,8) + I.alpha = 0 + animate(I, pixel_z = 32, alpha = 255, time = 5, easing = ELASTIC_EASING) + + +/obj/structure/closet/cardboard/metal + name = "large metal box" + desc = "THE COWARDS! THE FOOLS!" + icon_state = "metalbox" + obj_integrity = 500 + mob_storage_capacity = 5 + resistance_flags = 0 + move_speed_multiplier = 2 + cutting_tool = /obj/item/weapon/weldingtool + open_sound = 'sound/machines/click.ogg' + cutting_sound = 'sound/items/Welder.ogg' + material_drop = /obj/item/stack/sheet/plasteel \ No newline at end of file diff --git a/code/game/objects/structures/crates_lockers/closets/fitness.dm b/code/game/objects/structures/crates_lockers/closets/fitness.dm new file mode 100644 index 0000000..baa71a8 --- /dev/null +++ b/code/game/objects/structures/crates_lockers/closets/fitness.dm @@ -0,0 +1,66 @@ +/obj/structure/closet/athletic_mixed + name = "athletic wardrobe" + desc = "It's a storage unit for athletic wear." + icon_door = "mixed" + +/obj/structure/closet/athletic_mixed/New() + ..() + new /obj/item/clothing/under/shorts/purple(src) + new /obj/item/clothing/under/shorts/grey(src) + new /obj/item/clothing/under/shorts/black(src) + new /obj/item/clothing/under/shorts/red(src) + new /obj/item/clothing/under/shorts/blue(src) + new /obj/item/clothing/under/shorts/green(src) + if(prob(3)) + new /obj/item/clothing/under/jabroni(src) + + +/obj/structure/closet/boxinggloves + name = "boxing gloves" + desc = "It's a storage unit for gloves for use in the boxing ring." + +/obj/structure/closet/boxinggloves/New() + ..() + new /obj/item/clothing/gloves/boxing/blue(src) + new /obj/item/clothing/gloves/boxing/green(src) + new /obj/item/clothing/gloves/boxing/yellow(src) + new /obj/item/clothing/gloves/boxing(src) + + +/obj/structure/closet/masks + name = "mask closet" + desc = "IT'S A STORAGE UNIT FOR FIGHTER MASKS OLE!" + +/obj/structure/closet/masks/New() + ..() + new /obj/item/clothing/mask/luchador(src) + new /obj/item/clothing/mask/luchador/rudos(src) + new /obj/item/clothing/mask/luchador/tecnicos(src) + + +/obj/structure/closet/lasertag/red + name = "red laser tag equipment" + desc = "It's a storage unit for laser tag equipment." + icon_door = "red" + +/obj/structure/closet/lasertag/red/New() + ..() + for(var/i in 1 to 3) + new /obj/item/weapon/gun/energy/laser/redtag(src) + for(var/i in 1 to 3) + new /obj/item/clothing/suit/redtag(src) + new /obj/item/clothing/head/helmet/redtaghelm(src) + + +/obj/structure/closet/lasertag/blue + name = "blue laser tag equipment" + desc = "It's a storage unit for laser tag equipment." + icon_door = "blue" + +/obj/structure/closet/lasertag/blue/New() + ..() + for(var/i in 1 to 3) + new /obj/item/weapon/gun/energy/laser/bluetag(src) + for(var/i in 1 to 3) + new /obj/item/clothing/suit/bluetag(src) + new /obj/item/clothing/head/helmet/bluetaghelm(src) diff --git a/code/game/objects/structures/crates_lockers/closets/gimmick.dm b/code/game/objects/structures/crates_lockers/closets/gimmick.dm new file mode 100644 index 0000000..9769f58 --- /dev/null +++ b/code/game/objects/structures/crates_lockers/closets/gimmick.dm @@ -0,0 +1,108 @@ +/obj/structure/closet/cabinet + name = "cabinet" + desc = "Old will forever be in fashion." + icon_state = "cabinet" + resistance_flags = FLAMMABLE + obj_integrity = 70 + max_integrity = 70 + +/obj/structure/closet/acloset + name = "strange closet" + desc = "It looks alien!" + icon_state = "alien" + + +/obj/structure/closet/gimmick + name = "administrative supply closet" + desc = "It's a storage unit for things that have no right being here." + icon_state = "syndicate" + +/obj/structure/closet/gimmick/russian + name = "russian surplus closet" + desc = "It's a storage unit for Russian standard-issue surplus." + +/obj/structure/closet/gimmick/russian/New() + ..() + for(var/i in 1 to 5) + new /obj/item/clothing/head/ushanka(src) + for(var/i in 1 to 5) + new /obj/item/clothing/under/soviet(src) + +/obj/structure/closet/gimmick/tacticool + name = "tacticool gear closet" + desc = "It's a storage unit for Tacticool gear." + +/obj/structure/closet/gimmick/tacticool/New() + ..() + new /obj/item/clothing/glasses/eyepatch(src) + new /obj/item/clothing/glasses/sunglasses(src) + new /obj/item/clothing/gloves/combat(src) + new /obj/item/clothing/gloves/combat(src) + new /obj/item/clothing/head/helmet/swat(src) + new /obj/item/clothing/head/helmet/swat(src) + new /obj/item/clothing/mask/gas/sechailer/swat(src) + new /obj/item/clothing/mask/gas/sechailer/swat(src) + new /obj/item/clothing/shoes/combat/swat(src) + new /obj/item/clothing/shoes/combat/swat(src) + new /obj/item/clothing/suit/space/hardsuit/deathsquad(src) + new /obj/item/clothing/suit/space/hardsuit/deathsquad(src) + new /obj/item/clothing/under/syndicate/tacticool(src) + new /obj/item/clothing/under/syndicate/tacticool(src) + + +/obj/structure/closet/thunderdome + name = "\improper Thunderdome closet" + desc = "Everything you need!" + anchored = 1 + +/obj/structure/closet/thunderdome/tdred + name = "red-team Thunderdome closet" + icon_door = "red" + +/obj/structure/closet/thunderdome/tdred/New() + ..() + for(var/i in 1 to 3) + new /obj/item/clothing/suit/armor/tdome/red(src) + for(var/i in 1 to 3) + new /obj/item/weapon/melee/energy/sword/saber(src) + for(var/i in 1 to 3) + new /obj/item/weapon/gun/energy/laser(src) + for(var/i in 1 to 3) + new /obj/item/weapon/melee/baton/loaded(src) + for(var/i in 1 to 3) + new /obj/item/weapon/storage/box/flashbangs(src) + for(var/i in 1 to 3) + new /obj/item/clothing/head/helmet/thunderdome(src) + +/obj/structure/closet/thunderdome/tdgreen + name = "green-team Thunderdome closet" + icon_door = "green" + +/obj/structure/closet/thunderdome/tdgreen/New() + ..() + for(var/i in 1 to 3) + new /obj/item/clothing/suit/armor/tdome/green(src) + for(var/i in 1 to 3) + new /obj/item/weapon/melee/energy/sword/saber(src) + for(var/i in 1 to 3) + new /obj/item/weapon/gun/energy/laser(src) + for(var/i in 1 to 3) + new /obj/item/weapon/melee/baton/loaded(src) + for(var/i in 1 to 3) + new /obj/item/weapon/storage/box/flashbangs(src) + for(var/i in 1 to 3) + new /obj/item/clothing/head/helmet/thunderdome(src) + +/obj/structure/closet/malf/suits + desc = "It's a storage unit for operational gear." + icon_state = "syndicate" + +/obj/structure/closet/malf/suits/New() + ..() + new /obj/item/weapon/tank/jetpack/void(src) + new /obj/item/clothing/mask/breath(src) + new /obj/item/clothing/head/helmet/space/nasavoid(src) + new /obj/item/clothing/suit/space/nasavoid(src) + new /obj/item/weapon/crowbar(src) + new /obj/item/weapon/stock_parts/cell(src) + new /obj/item/device/multitool(src) diff --git a/code/game/objects/structures/crates_lockers/closets/job_closets.dm b/code/game/objects/structures/crates_lockers/closets/job_closets.dm new file mode 100644 index 0000000..8edf3b8 --- /dev/null +++ b/code/game/objects/structures/crates_lockers/closets/job_closets.dm @@ -0,0 +1,369 @@ +// Closets for specific jobs + +/obj/structure/closet/gmcloset + name = "formal closet" + desc = "It's a storage unit for formal clothing." + icon_door = "black" + +/obj/structure/closet/gmcloset/New() + ..() + new /obj/item/clothing/head/that(src) + new /obj/item/device/radio/headset/headset_srv(src) + new /obj/item/device/radio/headset/headset_srv(src) + new /obj/item/clothing/head/that(src) + new /obj/item/clothing/under/sl_suit(src) + new /obj/item/clothing/under/sl_suit(src) + new /obj/item/clothing/under/rank/bartender(src) + new /obj/item/clothing/under/rank/bartender(src) + new /obj/item/clothing/tie/waistcoat(src) + new /obj/item/clothing/tie/waistcoat(src) + new /obj/item/clothing/head/soft/black(src) + new /obj/item/clothing/head/soft/black(src) + new /obj/item/clothing/shoes/sneakers/black(src) + new /obj/item/clothing/shoes/sneakers/black(src) + new /obj/item/weapon/reagent_containers/glass/rag(src) + new /obj/item/weapon/reagent_containers/glass/rag(src) + new /obj/item/weapon/storage/box/beanbag(src) + new /obj/item/clothing/suit/armor/vest/alt(src) + new /obj/item/clothing/glasses/sunglasses/reagent(src) + new /obj/item/weapon/storage/belt/bandolier(src) + +/obj/structure/closet/chefcloset + name = "\proper chef's closet" + desc = "It's a storage unit for foodservice garments and mouse traps." + icon_door = "black" + +/obj/structure/closet/chefcloset/New() + ..() + new /obj/item/clothing/under/waiter(src) + new /obj/item/clothing/under/waiter(src) + new /obj/item/device/radio/headset/headset_srv(src) + new /obj/item/device/radio/headset/headset_srv(src) + new /obj/item/clothing/tie/waistcoat(src) + new /obj/item/clothing/tie/waistcoat(src) + for(var/i in 1 to 3) + new /obj/item/clothing/suit/apron/chef(src) + new /obj/item/clothing/head/soft/mime(src) + new /obj/item/clothing/head/soft/mime(src) + new /obj/item/weapon/storage/box/mousetraps(src) + new /obj/item/weapon/storage/box/mousetraps(src) + new /obj/item/clothing/suit/toggle/chef(src) + new /obj/item/clothing/under/rank/chef(src) + new /obj/item/clothing/head/chefhat(src) + new /obj/item/weapon/reagent_containers/glass/rag(src) + +/obj/structure/closet/jcloset + name = "custodial closet" + desc = "It's a storage unit for janitorial clothes and gear." + icon_door = "mixed" + +/obj/structure/closet/jcloset/New() + ..() + new /obj/item/clothing/under/rank/janitor(src) + new /obj/item/weapon/cartridge/janitor(src) + new /obj/item/clothing/gloves/color/black(src) + new /obj/item/clothing/head/soft/purple(src) + new /obj/item/device/flashlight(src) + for(var/i in 1 to 3) + new /obj/item/weapon/caution(src) + new /obj/item/weapon/holosign_creator(src) + new /obj/item/device/lightreplacer(src) + new /obj/item/weapon/soap(src) + new /obj/item/weapon/storage/bag/trash(src) + new /obj/item/clothing/shoes/galoshes(src) + new /obj/item/weapon/watertank/janitor(src) + new /obj/item/weapon/storage/belt/janitor(src) + + +/obj/structure/closet/lawcloset + name = "legal closet" + desc = "It's a storage unit for courtroom apparel and items." + icon_door = "blue" + +/obj/structure/closet/lawcloset/New() + ..() + new /obj/item/clothing/under/lawyer/female(src) + new /obj/item/clothing/under/lawyer/black(src) + new /obj/item/clothing/under/lawyer/red(src) + new /obj/item/clothing/under/lawyer/bluesuit(src) + new /obj/item/clothing/suit/toggle/lawyer(src) + new /obj/item/clothing/under/lawyer/purpsuit(src) + new /obj/item/clothing/suit/toggle/lawyer/purple(src) + new /obj/item/clothing/under/lawyer/blacksuit(src) + new /obj/item/clothing/suit/toggle/lawyer/black(src) + new /obj/item/clothing/shoes/laceup(src) + new /obj/item/clothing/shoes/laceup(src) + new /obj/item/clothing/tie/lawyers_badge(src) + new /obj/item/clothing/tie/lawyers_badge(src) + +/obj/structure/closet/wardrobe/chaplain_black + name = "chapel wardrobe" + desc = "It's a storage unit for Nanotrasen-approved religious attire." + icon_door = "black" + +/obj/structure/closet/wardrobe/chaplain_black/New() + ..() + contents = list() + new /obj/item/clothing/under/rank/chaplain(src) + new /obj/item/clothing/shoes/sneakers/black(src) + new /obj/item/clothing/suit/nun(src) + new /obj/item/clothing/head/nun_hood(src) + new /obj/item/clothing/suit/hooded/chaplain_hoodie(src) + new /obj/item/clothing/suit/holidaypriest(src) + new /obj/item/weapon/storage/backpack/cultpack (src) + new /obj/item/clothing/head/helmet/knight/templar(src) + new /obj/item/clothing/suit/armor/riot/knight/templar(src) + new /obj/item/weapon/storage/fancy/candle_box(src) + new /obj/item/weapon/storage/fancy/candle_box(src) + return + +/obj/structure/closet/coffin + name = "coffin" + desc = "It's a burial receptacle for the dearly departed." + icon_state = "coffin" + resistance_flags = FLAMMABLE + obj_integrity = 70 + max_integrity = 70 + +/obj/structure/closet/wardrobe/red + name = "security wardrobe" + icon_door = "red" + +/obj/structure/closet/wardrobe/red/New() + ..() + contents = list() + new /obj/item/clothing/suit/hooded/wintercoat/security(src) + new /obj/item/weapon/storage/backpack/security(src) + new /obj/item/weapon/storage/backpack/satchel/sec(src) + new /obj/item/weapon/storage/backpack/dufflebag/sec(src) + new /obj/item/weapon/storage/backpack/dufflebag/sec(src) + for(var/i in 1 to 3) + new /obj/item/clothing/under/rank/security(src) + for(var/i in 1 to 3) + new /obj/item/clothing/shoes/jackboots(src) + for(var/i in 1 to 3) + new /obj/item/clothing/head/beret/sec(src) + for(var/i in 1 to 3) + new /obj/item/clothing/head/soft/sec(src) + new /obj/item/clothing/mask/bandana/red(src) + new /obj/item/clothing/mask/bandana/red(src) + return + + +/obj/structure/closet/wardrobe/cargotech + name = "cargo wardrobe" + icon_door = "orange" + +/obj/structure/closet/wardrobe/cargotech/New() + ..() + contents = list() + new /obj/item/clothing/suit/hooded/wintercoat/cargo(src) + for(var/i in 1 to 3) + new /obj/item/clothing/under/rank/cargotech(src) + for(var/i in 1 to 3) + new /obj/item/clothing/shoes/sneakers/black(src) + for(var/i in 1 to 3) + new /obj/item/clothing/gloves/fingerless(src) + for(var/i in 1 to 3) + new /obj/item/clothing/head/soft(src) + new /obj/item/device/radio/headset/headset_cargo(src) + +/obj/structure/closet/wardrobe/atmospherics_yellow + name = "atmospherics wardrobe" + icon_door = "atmos_wardrobe" + +/obj/structure/closet/wardrobe/atmospherics_yellow/New() + ..() + contents = list() + new /obj/item/weapon/storage/backpack/dufflebag/engineering(src) + new /obj/item/weapon/storage/backpack/satchel/eng(src) + new /obj/item/weapon/storage/backpack/industrial(src) + for(var/i in 1 to 3) + new /obj/item/clothing/suit/hooded/wintercoat/engineering/atmos(src) + for(var/i in 1 to 3) + new /obj/item/clothing/under/rank/atmospheric_technician(src) + for(var/i in 1 to 3) + new /obj/item/clothing/shoes/sneakers/black(src) + return + +/obj/structure/closet/wardrobe/engineering_yellow + name = "engineering wardrobe" + icon_door = "yellow" + +/obj/structure/closet/wardrobe/engineering_yellow/New() + ..() + contents = list() + new /obj/item/weapon/storage/backpack/dufflebag/engineering(src) + new /obj/item/weapon/storage/backpack/industrial(src) + new /obj/item/weapon/storage/backpack/satchel/eng(src) + new /obj/item/clothing/suit/hooded/wintercoat/engineering(src) + for(var/i in 1 to 3) + new /obj/item/clothing/under/rank/engineer(src) + for(var/i in 1 to 3) + new /obj/item/clothing/suit/hazardvest(src) + for(var/i in 1 to 3) + new /obj/item/clothing/shoes/workboots(src) + for(var/i in 1 to 3) + new /obj/item/clothing/head/hardhat(src) + return + +/obj/structure/closet/wardrobe/white/medical + name = "medical doctor's wardrobe" + +/obj/structure/closet/wardrobe/white/medical/New() + ..() + contents = list() + new /obj/item/weapon/storage/backpack/dufflebag/med(src) + new /obj/item/weapon/storage/backpack/medic(src) + new /obj/item/weapon/storage/backpack/satchel/med(src) + new /obj/item/clothing/suit/hooded/wintercoat/medical(src) + new /obj/item/clothing/under/rank/nursesuit (src) + new /obj/item/clothing/head/nursehat (src) + new /obj/item/clothing/under/rank/medical/blue(src) + new /obj/item/clothing/under/rank/medical/green(src) + new /obj/item/clothing/under/rank/medical/purple(src) + for(var/i in 1 to 3) + new /obj/item/clothing/under/rank/medical(src) + new /obj/item/clothing/suit/toggle/labcoat(src) + new /obj/item/clothing/suit/toggle/labcoat(src) + new /obj/item/clothing/suit/toggle/labcoat/emt(src) + new /obj/item/clothing/suit/toggle/labcoat/emt(src) + for(var/i in 1 to 3) + new /obj/item/clothing/shoes/sneakers/white(src) + for(var/i in 1 to 3) + new /obj/item/clothing/head/soft/emt(src) + return + +/obj/structure/closet/wardrobe/robotics_black + name = "robotics wardrobe" + icon_door = "black" + +/obj/structure/closet/wardrobe/robotics_black/New() + ..() + contents = list() + new /obj/item/clothing/glasses/hud/diagnostic(src) + new /obj/item/clothing/glasses/hud/diagnostic(src) + new /obj/item/clothing/under/rank/roboticist(src) + new /obj/item/clothing/under/rank/roboticist(src) + new /obj/item/clothing/suit/toggle/labcoat(src) + new /obj/item/clothing/suit/toggle/labcoat(src) + new /obj/item/clothing/shoes/sneakers/black(src) + new /obj/item/clothing/shoes/sneakers/black(src) + new /obj/item/clothing/gloves/fingerless(src) + new /obj/item/clothing/gloves/fingerless(src) + new /obj/item/clothing/head/soft/black(src) + new /obj/item/clothing/head/soft/black(src) + if(prob(40)) + new /obj/item/clothing/mask/bandana/skull(src) + if(prob(40)) + new /obj/item/clothing/mask/bandana/skull(src) + return + + +/obj/structure/closet/wardrobe/chemistry_white + name = "chemistry wardrobe" + icon_door = "white" + +/obj/structure/closet/wardrobe/chemistry_white/New() + ..() + contents = list() + new /obj/item/clothing/under/rank/chemist(src) + new /obj/item/clothing/under/rank/chemist(src) + new /obj/item/clothing/shoes/sneakers/white(src) + new /obj/item/clothing/shoes/sneakers/white(src) + new /obj/item/clothing/suit/toggle/labcoat/chemist(src) + new /obj/item/clothing/suit/toggle/labcoat/chemist(src) + new /obj/item/weapon/storage/backpack/chemistry(src) + new /obj/item/weapon/storage/backpack/chemistry(src) + new /obj/item/weapon/storage/backpack/satchel/chem(src) + new /obj/item/weapon/storage/backpack/satchel/chem(src) + new /obj/item/weapon/storage/bag/chemistry(src) + new /obj/item/weapon/storage/bag/chemistry(src) + return + + +/obj/structure/closet/wardrobe/genetics_white + name = "genetics wardrobe" + icon_door = "white" + +/obj/structure/closet/wardrobe/genetics_white/New() + ..() + contents = list() + new /obj/item/clothing/under/rank/geneticist(src) + new /obj/item/clothing/under/rank/geneticist(src) + new /obj/item/clothing/shoes/sneakers/white(src) + new /obj/item/clothing/shoes/sneakers/white(src) + new /obj/item/clothing/suit/toggle/labcoat/genetics(src) + new /obj/item/clothing/suit/toggle/labcoat/genetics(src) + new /obj/item/weapon/storage/backpack/genetics(src) + new /obj/item/weapon/storage/backpack/genetics(src) + new /obj/item/weapon/storage/backpack/satchel/gen(src) + new /obj/item/weapon/storage/backpack/satchel/gen(src) + return + + +/obj/structure/closet/wardrobe/virology_white + name = "virology wardrobe" + icon_door = "white" + +/obj/structure/closet/wardrobe/virology_white/New() + ..() + contents = list() + new /obj/item/clothing/under/rank/virologist(src) + new /obj/item/clothing/under/rank/virologist(src) + new /obj/item/clothing/shoes/sneakers/white(src) + new /obj/item/clothing/shoes/sneakers/white(src) + new /obj/item/clothing/suit/toggle/labcoat/virologist(src) + new /obj/item/clothing/suit/toggle/labcoat/virologist(src) + new /obj/item/clothing/mask/surgical(src) + new /obj/item/clothing/mask/surgical(src) + new /obj/item/weapon/storage/backpack/virology(src) + new /obj/item/weapon/storage/backpack/virology(src) + new /obj/item/weapon/storage/backpack/satchel/vir(src) + new /obj/item/weapon/storage/backpack/satchel/vir(src) + return + +/obj/structure/closet/wardrobe/science_white + name = "science wardrobe" + icon_door = "white" + +/obj/structure/closet/wardrobe/science_white/New() + ..() + contents = list() + new /obj/item/weapon/storage/backpack/science(src) + new /obj/item/weapon/storage/backpack/science(src) + new /obj/item/weapon/storage/backpack/satchel/tox(src) + new /obj/item/weapon/storage/backpack/satchel/tox(src) + new /obj/item/clothing/suit/hooded/wintercoat/science(src) + for(var/i in 1 to 3) + new /obj/item/clothing/under/rank/scientist(src) + for(var/i in 1 to 3) + new /obj/item/clothing/suit/toggle/labcoat/science(src) + for(var/i in 1 to 3) + new /obj/item/clothing/shoes/sneakers/white(src) + new /obj/item/device/radio/headset/headset_sci(src) + new /obj/item/device/radio/headset/headset_sci(src) + for(var/i in 1 to 3) + new /obj/item/clothing/mask/gas(src) + return + +/obj/structure/closet/wardrobe/botanist + name = "botanist wardrobe" + icon_door = "green" + +/obj/structure/closet/wardrobe/botanist/New() + ..() + contents = list() + new /obj/item/weapon/storage/backpack/botany(src) + new /obj/item/weapon/storage/backpack/botany(src) + new /obj/item/weapon/storage/backpack/satchel/hyd(src) + new /obj/item/weapon/storage/backpack/satchel/hyd(src) + new /obj/item/clothing/suit/hooded/wintercoat/hydro(src) + new /obj/item/clothing/suit/apron(src) + new /obj/item/clothing/suit/apron(src) + new /obj/item/clothing/suit/apron/overalls(src) + new /obj/item/clothing/suit/apron/overalls(src) + for(var/i in 1 to 3) + new /obj/item/clothing/under/rank/hydroponics(src) + for(var/i in 1 to 3) + new /obj/item/clothing/mask/bandana(src) diff --git a/code/game/objects/structures/crates_lockers/closets/l3closet.dm b/code/game/objects/structures/crates_lockers/closets/l3closet.dm new file mode 100644 index 0000000..df17705 --- /dev/null +++ b/code/game/objects/structures/crates_lockers/closets/l3closet.dm @@ -0,0 +1,53 @@ +/obj/structure/closet/l3closet + name = "level-3 biohazard gear closet" + desc = "It's a storage unit for level-3 biohazard gear." + icon_state = "bio" + +/obj/structure/closet/l3closet/New() + ..() + new /obj/item/weapon/storage/bag/bio( src ) + new /obj/item/clothing/suit/bio_suit/general( src ) + new /obj/item/clothing/head/bio_hood/general( src ) + + +/obj/structure/closet/l3closet/virology + icon_state = "bio_viro" + +/obj/structure/closet/l3closet/virology/New() + ..() + contents = list() + new /obj/item/weapon/storage/bag/bio( src ) + new /obj/item/clothing/suit/bio_suit/virology( src ) + new /obj/item/clothing/head/bio_hood/virology( src ) + + +/obj/structure/closet/l3closet/security + icon_state = "bio_sec" + +/obj/structure/closet/l3closet/security/New() + ..() + contents = list() + new /obj/item/clothing/suit/bio_suit/security( src ) + new /obj/item/clothing/head/bio_hood/security( src ) + + +/obj/structure/closet/l3closet/janitor + icon_state = "bio_jan" + +/obj/structure/closet/l3closet/janitor/New() + ..() + contents = list() + new /obj/item/clothing/suit/bio_suit/janitor( src ) + new /obj/item/clothing/head/bio_hood/janitor( src ) + + +/obj/structure/closet/l3closet/scientist + icon_state = "bio_viro" + +/obj/structure/closet/l3closet/scientist/New() + ..() + contents = list() + new /obj/item/weapon/storage/bag/bio( src ) + new /obj/item/clothing/suit/bio_suit/scientist( src ) + new /obj/item/clothing/head/bio_hood/scientist( src ) + diff --git a/code/game/objects/structures/crates_lockers/closets/secure/bar.dm b/code/game/objects/structures/crates_lockers/closets/secure/bar.dm new file mode 100644 index 0000000..0a09303 --- /dev/null +++ b/code/game/objects/structures/crates_lockers/closets/secure/bar.dm @@ -0,0 +1,12 @@ +/obj/structure/closet/secure_closet/bar + name = "booze storage" + req_access = list(access_bar) + icon_state = "cabinet" + resistance_flags = FLAMMABLE + obj_integrity = 70 + max_integrity = 70 + +/obj/structure/closet/secure_closet/bar/New() + ..() + for(var/i in 1 to 10) + new /obj/item/weapon/reagent_containers/food/drinks/beer( src ) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm b/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm new file mode 100644 index 0000000..f7bb992 --- /dev/null +++ b/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm @@ -0,0 +1,19 @@ +/obj/structure/closet/secure_closet/quartermaster + name = "\proper quartermaster's locker" + req_access = list(access_qm) + icon_state = "qm" + +/obj/structure/closet/secure_closet/quartermaster/New() + ..() + new /obj/item/clothing/suit/cloak/qm(src) + new /obj/item/clothing/under/rank/cargo(src) + new /obj/item/clothing/shoes/sneakers/brown(src) + new /obj/item/device/radio/headset/headset_cargo(src) + new /obj/item/clothing/suit/fire/firefighter(src) + new /obj/item/clothing/gloves/fingerless(src) + new /obj/item/device/megaphone/cargo(src) + new /obj/item/weapon/tank/internals/emergency_oxygen(src) + new /obj/item/clothing/mask/gas(src) + new /obj/item/clothing/head/soft(src) + new /obj/item/device/export_scanner(src) + new /obj/item/weapon/door_remote/quartermaster(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm new file mode 100644 index 0000000..b15a54a --- /dev/null +++ b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm @@ -0,0 +1,92 @@ +/obj/structure/closet/secure_closet/engineering_chief + name = "\proper chief engineer's locker" + req_access = list(access_ce) + icon_state = "ce" + +/obj/structure/closet/secure_closet/engineering_chief/New() + ..() + new /obj/item/clothing/suit/cloak/ce(src) + new /obj/item/clothing/under/rank/chief_engineer(src) + new /obj/item/clothing/head/hardhat/white(src) + new /obj/item/clothing/head/welding(src) + new /obj/item/clothing/gloves/color/yellow(src) + new /obj/item/clothing/shoes/sneakers/brown(src) + new /obj/item/weapon/tank/jetpack/suit(src) + new /obj/item/weapon/cartridge/ce(src) + new /obj/item/device/radio/headset/heads/ce(src) + new /obj/item/weapon/storage/toolbox/mechanical(src) + new /obj/item/clothing/suit/hazardvest(src) + new /obj/item/device/megaphone/command(src) + new /obj/item/areaeditor/blueprints(src) + new /obj/item/weapon/airlock_painter(src) + new /obj/item/weapon/holosign_creator/engineering(src) + new /obj/item/clothing/mask/gas(src) + new /obj/item/device/multitool(src) + new /obj/item/device/assembly/flash/handheld(src) + new /obj/item/clothing/glasses/meson/engine(src) + new /obj/item/weapon/door_remote/chief_engineer(src) + new /obj/item/weapon/pipe_dispenser(src) + +/obj/structure/closet/secure_closet/engineering_electrical + name = "electrical supplies locker" + req_access = list(access_engine_equip) + icon_state = "eng" + icon_door = "eng_elec" + +/obj/structure/closet/secure_closet/engineering_electrical/New() + ..() + new /obj/item/clothing/gloves/color/yellow(src) + new /obj/item/clothing/gloves/color/yellow(src) + for(var/i in 1 to 3) + new /obj/item/weapon/storage/toolbox/electrical(src) + for(var/i in 1 to 3) + new /obj/item/weapon/electronics/apc(src) + for(var/i in 1 to 3) + new /obj/item/device/multitool(src) + +/obj/structure/closet/secure_closet/engineering_welding + name = "welding supplies locker" + req_access = list(access_engine_equip) + icon_state = "eng" + icon_door = "eng_weld" + +/obj/structure/closet/secure_closet/engineering_welding/New() + ..() + for(var/i in 1 to 3) + new /obj/item/clothing/head/welding(src) + for(var/i in 1 to 3) + new /obj/item/weapon/weldingtool/largetank(src) + +/obj/structure/closet/secure_closet/engineering_personal + name = "engineer's locker" + req_access = list(access_engine_equip) + icon_state = "eng_secure" + +/obj/structure/closet/secure_closet/engineering_personal/New() + ..() + new /obj/item/device/radio/headset/headset_eng(src) + new /obj/item/weapon/storage/toolbox/mechanical(src) + new /obj/item/weapon/tank/internals/emergency_oxygen/engi(src) + new /obj/item/weapon/holosign_creator/engineering(src) + new /obj/item/clothing/mask/gas(src) + new /obj/item/clothing/glasses/meson/engine(src) + new /obj/item/weapon/storage/box/emptysandbags(src) + + +/obj/structure/closet/secure_closet/atmospherics + name = "\proper atmospheric technician's locker" + req_access = list(access_atmospherics) + icon_state = "atmos" + +/obj/structure/closet/secure_closet/atmospherics/New() + ..() + new /obj/item/device/radio/headset/headset_eng(src) + new /obj/item/weapon/pipe_dispenser(src) + new /obj/item/weapon/storage/toolbox/mechanical(src) + new /obj/item/weapon/tank/internals/emergency_oxygen/engi(src) + new /obj/item/device/analyzer(src) + new /obj/item/weapon/holosign_creator/engineering(src) + new /obj/item/weapon/watertank/atmos(src) + new /obj/item/clothing/suit/fire/atmos(src) + new /obj/item/clothing/head/hardhat/atmos(src) + new /obj/item/clothing/glasses/meson/engine/tray(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm b/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm new file mode 100644 index 0000000..ba7c21e --- /dev/null +++ b/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm @@ -0,0 +1,72 @@ +/obj/structure/closet/secure_closet/freezer + icon_state = "freezer" + +/obj/structure/closet/secure_closet/freezer/kitchen + name = "kitchen Cabinet" + req_access = list(access_kitchen) + +/obj/structure/closet/secure_closet/freezer/kitchen/New() + ..() + for(var/i = 0, i < 3, i++) + new /obj/item/weapon/reagent_containers/food/condiment/flour(src) + new /obj/item/weapon/reagent_containers/food/condiment/rice(src) + new /obj/item/weapon/reagent_containers/food/condiment/sugar(src) + +/obj/structure/closet/secure_closet/freezer/kitchen/maintenance + name = "maintenance refrigerator" + desc = "This refrigerator looks quite dusty, is there anything edible still inside?" + req_access = list() + +/obj/structure/closet/secure_closet/freezer/kitchen/maintenance/New() + ..() + for(var/i = 0, i < 5, i++) + new /obj/item/weapon/reagent_containers/food/condiment/milk(src) + for(var/i = 0, i < 5, i++) + new /obj/item/weapon/reagent_containers/food/condiment/soymilk(src) + for(var/i = 0, i < 2, i++) + new /obj/item/weapon/storage/fancy/egg_box(src) + +/obj/structure/closet/secure_closet/freezer/kitchen/mining + req_access = list() + +/obj/structure/closet/secure_closet/freezer/meat + name = "meat fridge" + +/obj/structure/closet/secure_closet/freezer/meat/New() + ..() + for(var/i = 0, i < 4, i++) + new /obj/item/weapon/reagent_containers/food/snacks/meat/slab/monkey(src) +/obj/structure/closet/secure_closet/freezer/fridge + name = "refrigerator" + +/obj/structure/closet/secure_closet/freezer/fridge/New() + ..() + for(var/i = 0, i < 5, i++) + new /obj/item/weapon/reagent_containers/food/condiment/milk(src) + for(var/i = 0, i < 5, i++) + new /obj/item/weapon/reagent_containers/food/condiment/soymilk(src) + for(var/i = 0, i < 2, i++) + new /obj/item/weapon/storage/fancy/egg_box(src) + +/obj/structure/closet/secure_closet/freezer/money + name = "freezer" + desc = "This contains cold hard cash." + req_access = list(access_heads_vault) + +/obj/structure/closet/secure_closet/freezer/money/New() + ..() + for(var/i = 0, i < 3, i++) + new /obj/item/stack/spacecash/c1000(src) + for(var/i = 0, i < 5, i++) + new /obj/item/stack/spacecash/c500(src) + for(var/i = 0, i < 6, i++) + new /obj/item/stack/spacecash/c200(src) + +/obj/structure/closet/secure_closet/freezer/cream_pie + name = "cream pie closet" + desc = "Contains pies filled with cream and/or custard, you sickos." + req_access = list(access_theatre) + +/obj/structure/closet/secure_closet/freezer/pie/New() + ..() + new /obj/item/weapon/reagent_containers/food/snacks/pie/cream(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm b/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm new file mode 100644 index 0000000..0cf694f --- /dev/null +++ b/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm @@ -0,0 +1,13 @@ +/obj/structure/closet/secure_closet/hydroponics + name = "botanist's locker" + req_access = list(access_hydroponics) + icon_state = "hydro" + +/obj/structure/closet/secure_closet/hydroponics/New() + ..() + new /obj/item/weapon/storage/bag/plants/portaseeder(src) + new /obj/item/device/plant_analyzer(src) + new /obj/item/device/radio/headset/headset_srv(src) + new /obj/item/weapon/cultivator(src) + new /obj/item/weapon/hatchet(src) + new /obj/item/weapon/storage/box/disks_plantgene(src) \ No newline at end of file diff --git a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm new file mode 100644 index 0000000..83d3417 --- /dev/null +++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm @@ -0,0 +1,93 @@ +/obj/structure/closet/secure_closet/medical1 + name = "medicine closet" + desc = "Filled to the brim with medical junk." + icon_state = "med" + req_access = list(access_medical) + +/obj/structure/closet/secure_closet/medical1/New() + ..() + new /obj/item/weapon/reagent_containers/glass/beaker(src) + new /obj/item/weapon/reagent_containers/glass/beaker(src) + new /obj/item/weapon/reagent_containers/dropper(src) + new /obj/item/weapon/reagent_containers/dropper(src) + new /obj/item/weapon/storage/belt/medical(src) + new /obj/item/weapon/storage/box/syringes(src) + new /obj/item/weapon/reagent_containers/glass/bottle/toxin(src) + new /obj/item/weapon/reagent_containers/glass/bottle/morphine(src) + new /obj/item/weapon/reagent_containers/glass/bottle/morphine(src) + for(var/i in 1 to 3) + new /obj/item/weapon/reagent_containers/glass/bottle/epinephrine(src) + for(var/i in 1 to 3) + new /obj/item/weapon/reagent_containers/glass/bottle/charcoal(src) + new /obj/item/weapon/storage/box/rxglasses(src) + +/obj/structure/closet/secure_closet/medical2 + name = "anesthetic closet" + desc = "Used to knock people out." + req_access = list(access_surgery) + +/obj/structure/closet/secure_closet/medical2/New() + ..() + for(var/i in 1 to 3) + new /obj/item/weapon/tank/internals/anesthetic(src) + for(var/i in 1 to 3) + new /obj/item/clothing/mask/breath/medical(src) + +/obj/structure/closet/secure_closet/medical3 + name = "medical doctor's locker" + req_access = list(access_surgery) + icon_state = "med_secure" + +/obj/structure/closet/secure_closet/medical3/New() + ..() + new /obj/item/device/radio/headset/headset_med(src) + new /obj/item/weapon/defibrillator/loaded(src) + new /obj/item/clothing/gloves/color/latex/nitrile(src) + new /obj/item/weapon/storage/belt/medical(src) + new /obj/item/clothing/glasses/hud/health(src) + return + +/obj/structure/closet/secure_closet/CMO + name = "\proper chief medical officer's locker" + req_access = list(access_cmo) + icon_state = "cmo" + +/obj/structure/closet/secure_closet/CMO/New() + ..() + new /obj/item/clothing/suit/cloak/cmo(src) + new /obj/item/weapon/storage/backpack/dufflebag/med(src) + new /obj/item/clothing/suit/bio_suit/cmo(src) + new /obj/item/clothing/head/bio_hood/cmo(src) + new /obj/item/clothing/suit/toggle/labcoat/cmo(src) + new /obj/item/clothing/under/rank/chief_medical_officer(src) + new /obj/item/clothing/shoes/sneakers/brown (src) + new /obj/item/weapon/cartridge/cmo(src) + new /obj/item/device/radio/headset/heads/cmo(src) + new /obj/item/device/megaphone/command(src) + new /obj/item/weapon/defibrillator/compact/loaded(src) + new /obj/item/clothing/gloves/color/latex/nitrile(src) + new /obj/item/weapon/storage/belt/medical(src) + new /obj/item/device/assembly/flash/handheld(src) + new /obj/item/weapon/reagent_containers/hypospray/CMO(src) + new /obj/item/device/autoimplanter/cmo(src) + new /obj/item/weapon/door_remote/chief_medical_officer(src) + +/obj/structure/closet/secure_closet/animal + name = "animal control" + req_access = list(access_surgery) + +/obj/structure/closet/secure_closet/animal/New() + ..() + new /obj/item/device/assembly/signaler(src) + for(var/i in 1 to 3) + new /obj/item/device/electropack(src) + +/obj/structure/closet/secure_closet/chemical + name = "chemical closet" + desc = "Store dangerous chemicals in here." + icon_door = "chemical" + +/obj/structure/closet/secure_closet/chemical/New() + ..() + new /obj/item/weapon/storage/box/pillbottles(src) + new /obj/item/weapon/storage/box/pillbottles(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/misc.dm b/code/game/objects/structures/crates_lockers/closets/secure/misc.dm new file mode 100644 index 0000000..0864e8a --- /dev/null +++ b/code/game/objects/structures/crates_lockers/closets/secure/misc.dm @@ -0,0 +1,67 @@ +/obj/structure/closet/secure_closet/ertCom + name = "commander's closet" + desc = "Emergency Response Team equipment locker." + req_access = list(access_cent_captain) + icon_state = "cap" + +/obj/structure/closet/secure_closet/ertCom/New() + ..() + new /obj/item/weapon/storage/firstaid/regular(src) + new /obj/item/weapon/storage/box/handcuffs(src) + new /obj/item/device/aicard(src) + new /obj/item/device/assembly/flash/handheld(src) + if(prob(50)) + new /obj/item/ammo_box/magazine/m50(src) + new /obj/item/ammo_box/magazine/m50(src) + new /obj/item/weapon/gun/projectile/automatic/pistol/deagle(src) + else + new /obj/item/ammo_box/a357(src) + new /obj/item/ammo_box/a357(src) + new /obj/item/weapon/gun/projectile/revolver/mateba(src) + +/obj/structure/closet/secure_closet/ertSec + name = "security closet" + desc = "Emergency Response Team equipment locker." + req_access = list(access_cent_specops) + icon_state = "hos" + +/obj/structure/closet/secure_closet/ertSec/New() + ..() + new /obj/item/weapon/storage/box/flashbangs(src) + new /obj/item/weapon/storage/box/teargas(src) + new /obj/item/weapon/storage/box/flashes(src) + new /obj/item/weapon/storage/box/handcuffs(src) + new /obj/item/weapon/shield/riot/tele(src) + +/obj/structure/closet/secure_closet/ertMed + name = "medical closet" + desc = "Emergency Response Team equipment locker." + req_access = list(access_cent_medical) + icon_state = "cmo" + +/obj/structure/closet/secure_closet/ertMed/New() + ..() + new /obj/item/weapon/storage/firstaid/o2(src) + new /obj/item/weapon/storage/firstaid/toxin(src) + new /obj/item/weapon/storage/firstaid/fire(src) + new /obj/item/weapon/storage/firstaid/brute(src) + new /obj/item/weapon/storage/firstaid/regular(src) + new /obj/item/weapon/defibrillator/compact/combat/loaded(src) + new /mob/living/simple_animal/bot/medbot(src) + +/obj/structure/closet/secure_closet/ertEngi + name = "engineer closet" + desc = "Emergency Response Team equipment locker." + req_access = list(access_cent_storage) + icon_state = "ce" + +/obj/structure/closet/secure_closet/ertEngi/New() + ..() + new /obj/item/stack/sheet/plasteel(src, 50) + new /obj/item/stack/sheet/metal(src, 50) + new /obj/item/stack/sheet/glass(src, 50) + new /obj/item/stack/sheet/mineral/sandbags(src, 30) + new /obj/item/clothing/shoes/magboots(src) + new /obj/item/weapon/storage/box/metalfoam(src) + for(var/i in 1 to 3) + new /obj/item/weapon/rcd_ammo/large(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/personal.dm b/code/game/objects/structures/crates_lockers/closets/secure/personal.dm new file mode 100644 index 0000000..cb5ba00 --- /dev/null +++ b/code/game/objects/structures/crates_lockers/closets/secure/personal.dm @@ -0,0 +1,57 @@ +/obj/structure/closet/secure_closet/personal + desc = "It's a secure locker for personnel. The first card swiped gains control." + name = "personal closet" + req_access = list(access_all_personal_lockers) + var/registered_name = null + +/obj/structure/closet/secure_closet/personal/New() + ..() + if(prob(50)) + new /obj/item/weapon/storage/backpack/dufflebag(src) + if(prob(50)) + new /obj/item/weapon/storage/backpack(src) + else + new /obj/item/weapon/storage/backpack/satchel(src) + new /obj/item/device/radio/headset( src ) + +/obj/structure/closet/secure_closet/personal/patient + name = "patient's closet" + +/obj/structure/closet/secure_closet/personal/patient/New() + ..() + contents.Cut() + new /obj/item/clothing/under/color/white( src ) + new /obj/item/clothing/shoes/sneakers/white( src ) + +/obj/structure/closet/secure_closet/personal/cabinet + icon_state = "cabinet" + resistance_flags = FLAMMABLE + obj_integrity = 70 + max_integrity = 70 + +/obj/structure/closet/secure_closet/personal/cabinet/New() + ..() + contents = list() + new /obj/item/weapon/storage/backpack/satchel/leather/withwallet( src ) + new /obj/item/device/radio/headset( src ) + +/obj/structure/closet/secure_closet/personal/attackby(obj/item/W, mob/user, params) + var/obj/item/weapon/card/id/I = W.GetID() + if(istype(I)) + if(broken) + user << "It appears to be broken." + return + if(!I || !I.registered_name) + return + if(allowed(user) || !registered_name || (istype(I) && (registered_name == I.registered_name))) + //they can open all lockers, or nobody owns this, or they own this locker + locked = !locked + update_icon() + + if(!registered_name) + registered_name = I.registered_name + desc = "Owned by [I.registered_name]." + else + user << "Access Denied." + else + return ..() \ No newline at end of file diff --git a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm new file mode 100644 index 0000000..db0851b --- /dev/null +++ b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm @@ -0,0 +1,26 @@ +/obj/structure/closet/secure_closet/RD + name = "\proper research director's locker" + req_access = list(access_rd) + icon_state = "rd" + +/obj/structure/closet/secure_closet/RD/New() + ..() + new /obj/item/clothing/suit/cloak/rd(src) + new /obj/item/clothing/suit/bio_suit/scientist(src) + new /obj/item/clothing/head/bio_hood/scientist(src) + new /obj/item/clothing/suit/toggle/labcoat(src) + new /obj/item/clothing/under/rank/research_director(src) + new /obj/item/clothing/under/rank/research_director/alt(src) + new /obj/item/clothing/under/rank/research_director/turtleneck(src) + new /obj/item/clothing/shoes/sneakers/brown(src) + new /obj/item/weapon/cartridge/rd(src) + new /obj/item/clothing/gloves/color/latex(src) + new /obj/item/device/radio/headset/heads/rd(src) + new /obj/item/weapon/tank/internals/air(src) + new /obj/item/clothing/mask/gas(src) + new /obj/item/device/megaphone/command(src) + new /obj/item/clothing/suit/armor/reactive/teleport(src) + new /obj/item/device/assembly/flash/handheld(src) + new /obj/item/device/laser_pointer(src) + new /obj/item/weapon/door_remote/research_director(src) + new /obj/item/weapon/storage/box/firingpins(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm b/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm new file mode 100644 index 0000000..dbd4921 --- /dev/null +++ b/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm @@ -0,0 +1,14 @@ +/obj/structure/closet/secure_closet + name = "secure locker" + desc = "It's a card-locked storage unit." + locked = 1 + icon_state = "secure" + obj_integrity = 250 + max_integrity = 250 + armor = list(melee = 30, bullet = 50, laser = 50, energy = 100, bomb = 0, bio = 0, rad = 0, fire = 80, acid = 80) + secure = 1 + +/obj/structure/closet/secure_closet/run_obj_armor(damage_amount, damage_type, damage_flag = 0, attack_dir) + if(damage_flag == "melee" && damage_amount < 20) + return 0 + . = ..() \ No newline at end of file diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm new file mode 100644 index 0000000..cb4d621 --- /dev/null +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -0,0 +1,283 @@ +/obj/structure/closet/secure_closet/captains + name = "\proper captain's locker" + req_access = list(access_captain) + icon_state = "cap" + +/obj/structure/closet/secure_closet/captains/New() + ..() + new /obj/item/clothing/suit/hooded/wintercoat/captain(src) + if(prob(50)) + new /obj/item/weapon/storage/backpack/captain(src) + else + new /obj/item/weapon/storage/backpack/satchel/cap(src) + new /obj/item/clothing/suit/cloak/cap(src) + new /obj/item/weapon/storage/backpack/dufflebag/captain(src) + new /obj/item/clothing/head/crown/fancy(src) + new /obj/item/clothing/suit/captunic(src) + new /obj/item/clothing/under/captainparade(src) + new /obj/item/clothing/head/caphat/parade(src) + new /obj/item/clothing/under/rank/captain(src) + new /obj/item/clothing/suit/armor/vest/capcarapace/alt(src) + new /obj/item/weapon/cartridge/captain(src) + new /obj/item/clothing/shoes/sneakers/brown(src) + new /obj/item/weapon/storage/box/silver_ids(src) + new /obj/item/device/radio/headset/heads/captain/alt(src) + new /obj/item/device/radio/headset/heads/captain(src) + new /obj/item/clothing/glasses/sunglasses/gar/supergar(src) + new /obj/item/clothing/gloves/color/captain(src) + new /obj/item/weapon/restraints/handcuffs/cable/zipties(src) + new /obj/item/weapon/storage/belt/sabre(src) + new /obj/item/weapon/gun/energy/gun(src) + new /obj/item/weapon/door_remote/captain(src) + +/obj/structure/closet/secure_closet/hop + name = "\proper head of personnel's locker" + req_access = list(access_hop) + icon_state = "hop" + +/obj/structure/closet/secure_closet/hop/New() + ..() + new /obj/item/clothing/under/rank/head_of_personnel(src) + new /obj/item/clothing/head/hopcap(src) + new /obj/item/weapon/cartridge/hop(src) + new /obj/item/device/radio/headset/heads/hop(src) + new /obj/item/clothing/shoes/sneakers/brown(src) + new /obj/item/weapon/storage/box/ids(src) + new /obj/item/weapon/storage/box/ids(src) + new /obj/item/device/megaphone/command(src) + new /obj/item/clothing/suit/armor/vest/alt(src) + new /obj/item/device/assembly/flash/handheld(src) + new /obj/item/clothing/glasses/sunglasses(src) + new /obj/item/weapon/restraints/handcuffs/cable/zipties(src) + new /obj/item/weapon/gun/energy/gun(src) + new /obj/item/clothing/neck/petcollar(src) + new /obj/item/weapon/door_remote/civillian(src) + +/obj/structure/closet/secure_closet/hos + name = "\proper head of security's locker" + req_access = list(access_hos) + icon_state = "hos" + +/obj/structure/closet/secure_closet/hos/New() + ..() + new /obj/item/clothing/suit/cloak/hos(src) + new /obj/item/weapon/cartridge/hos(src) + new /obj/item/device/radio/headset/heads/hos(src) + new /obj/item/clothing/under/hosparadefem(src) + new /obj/item/clothing/under/hosparademale(src) + new /obj/item/clothing/suit/armor/vest/leather(src) + new /obj/item/clothing/suit/armor/hos(src) + new /obj/item/clothing/under/rank/head_of_security/alt(src) + new /obj/item/clothing/head/HoS(src) + new /obj/item/clothing/glasses/hud/security/sunglasses/eyepatch(src) + new /obj/item/clothing/glasses/hud/security/sunglasses/gars/supergars(src) + new /obj/item/device/megaphone/sec(src) + new /obj/item/weapon/holosign_creator/security(src) + new /obj/item/weapon/storage/lockbox/loyalty(src) + new /obj/item/clothing/mask/gas/sechailer/swat(src) + new /obj/item/weapon/storage/box/flashbangs(src) + new /obj/item/weapon/shield/riot/tele(src) + new /obj/item/weapon/storage/belt/security/full(src) + new /obj/item/weapon/gun/energy/gun/hos(src) + new /obj/item/device/flashlight/seclite(src) + new /obj/item/weapon/pinpointer(src) + +/obj/structure/closet/secure_closet/warden + name = "\proper warden's locker" + req_access = list(access_armory) + icon_state = "warden" + +/obj/structure/closet/secure_closet/warden/New() + ..() + new /obj/item/device/radio/headset/headset_sec(src) + new /obj/item/clothing/suit/armor/vest/warden(src) + new /obj/item/clothing/head/warden(src) + new /obj/item/clothing/head/beret/sec/navywarden(src) + new /obj/item/clothing/suit/armor/vest/warden/alt(src) + new /obj/item/clothing/under/rank/warden/navyblue(src) + new /obj/item/clothing/glasses/hud/security/sunglasses(src) + new /obj/item/weapon/holosign_creator/security(src) + new /obj/item/clothing/mask/gas/sechailer(src) + new /obj/item/weapon/storage/box/zipties(src) + new /obj/item/weapon/storage/box/flashbangs(src) + new /obj/item/weapon/storage/belt/security/full(src) + new /obj/item/device/flashlight/seclite(src) + new /obj/item/clothing/gloves/krav_maga/sec(src) + new /obj/item/weapon/door_remote/head_of_security(src) + +/obj/structure/closet/secure_closet/security + name = "security officer's locker" + req_access = list(access_security) + icon_state = "sec" + +/obj/structure/closet/secure_closet/security/New() + ..() + new /obj/item/clothing/suit/armor/vest(src) + new /obj/item/clothing/head/helmet/sec(src) + new /obj/item/device/radio/headset/headset_sec(src) + new /obj/item/device/radio/headset/headset_sec/alt(src) + new /obj/item/clothing/glasses/hud/security/sunglasses(src) + new /obj/item/device/flashlight/seclite(src) + +/obj/structure/closet/secure_closet/security/sec + +/obj/structure/closet/secure_closet/security/sec/New() + ..() + new /obj/item/weapon/storage/belt/security/full(src) + +/obj/structure/closet/secure_closet/security/cargo + +/obj/structure/closet/secure_closet/security/cargo/New() + ..() + new /obj/item/clothing/tie/armband/cargo(src) + new /obj/item/device/encryptionkey/headset_cargo(src) + +/obj/structure/closet/secure_closet/security/engine + +/obj/structure/closet/secure_closet/security/engine/New() + ..() + new /obj/item/clothing/tie/armband/engine(src) + new /obj/item/device/encryptionkey/headset_eng(src) + +/obj/structure/closet/secure_closet/security/science + +/obj/structure/closet/secure_closet/security/science/New() + ..() + new /obj/item/clothing/tie/armband/science(src) + new /obj/item/device/encryptionkey/headset_sci(src) + +/obj/structure/closet/secure_closet/security/med + +/obj/structure/closet/secure_closet/security/med/New() + ..() + new /obj/item/clothing/tie/armband/medblue(src) + new /obj/item/device/encryptionkey/headset_med(src) + +/obj/structure/closet/secure_closet/detective + name = "\proper detective's cabinet" + req_access = list(access_forensics_lockers) + icon_state = "cabinet" + resistance_flags = FLAMMABLE + obj_integrity = 70 + max_integrity = 70 + +/obj/structure/closet/secure_closet/detective/New() + ..() + new /obj/item/clothing/under/rank/det(src) + new /obj/item/clothing/suit/det_suit(src) + new /obj/item/clothing/head/det_hat(src) + new /obj/item/clothing/gloves/color/black(src) + new /obj/item/clothing/under/rank/det/grey(src) + new /obj/item/clothing/tie/waistcoat(src) + new /obj/item/clothing/suit/det_suit/grey(src) + new /obj/item/clothing/head/fedora(src) + new /obj/item/clothing/shoes/laceup(src) + new /obj/item/weapon/storage/box/evidence(src) + new /obj/item/device/radio/headset/headset_sec(src) + new /obj/item/device/detective_scanner(src) + new /obj/item/device/flashlight/seclite(src) + new /obj/item/weapon/holosign_creator/security(src) + new /obj/item/weapon/reagent_containers/spray/pepper(src) + new /obj/item/clothing/suit/armor/vest/det_suit(src) + new /obj/item/ammo_box/c38(src) + new /obj/item/ammo_box/c38(src) + new /obj/item/weapon/storage/belt/holster(src) + new /obj/item/weapon/gun/projectile/revolver/detective(src) + +/obj/structure/closet/secure_closet/injection + name = "lethal injections" + req_access = list(access_hos) + +/obj/structure/closet/secure_closet/injection/New() + ..() + for(var/i in 1 to 5) + new /obj/item/weapon/reagent_containers/syringe/lethal/execution(src) + +/obj/structure/closet/secure_closet/brig + name = "brig locker" + req_access = list(access_brig) + anchored = 1 + var/id = null + +/obj/structure/closet/secure_closet/brig/New() + ..() + new /obj/item/clothing/under/rank/prisoner( src ) + new /obj/item/clothing/shoes/sneakers/orange( src ) + +/obj/structure/closet/secure_closet/courtroom + name = "courtroom locker" + req_access = list(access_court) + +/obj/structure/closet/secure_closet/courtroom/New() + ..() + new /obj/item/clothing/shoes/sneakers/brown(src) + for(var/i in 1 to 3) + new /obj/item/weapon/paper/Court (src) + new /obj/item/weapon/pen (src) + new /obj/item/clothing/suit/judgerobe (src) + new /obj/item/clothing/head/powdered_wig (src) + new /obj/item/weapon/storage/briefcase(src) + +/obj/structure/closet/secure_closet/armory1 + name = "armory armor locker" + req_access = list(access_armory) + icon_state = "armory" + +/obj/structure/closet/secure_closet/armory1/New() + ..() + new /obj/item/clothing/suit/armor/laserproof(src) + for(var/i in 1 to 3) + new /obj/item/clothing/suit/armor/riot(src) + for(var/i in 1 to 3) + new /obj/item/clothing/head/helmet/riot(src) + for(var/i in 1 to 3) + new /obj/item/weapon/shield/riot(src) + +/obj/structure/closet/secure_closet/armory2 + name = "armory ballistics locker" + req_access = list(access_armory) + icon_state = "armory" + +/obj/structure/closet/secure_closet/armory2/New() + ..() + new /obj/item/weapon/storage/box/firingpins(src) + for(var/i in 1 to 3) + new /obj/item/weapon/storage/box/rubbershot(src) + for(var/i in 1 to 3) + new /obj/item/weapon/gun/projectile/shotgun/riot(src) + +/obj/structure/closet/secure_closet/armory3 + name = "armory energy gun locker" + req_access = list(access_armory) + icon_state = "armory" + +/obj/structure/closet/secure_closet/armory3/New() + ..() + new /obj/item/weapon/storage/box/firingpins(src) + new /obj/item/weapon/gun/energy/ionrifle(src) + for(var/i in 1 to 3) + new /obj/item/weapon/gun/energy/gun(src) + for(var/i in 1 to 3) + new /obj/item/weapon/gun/energy/laser(src) + +/obj/structure/closet/secure_closet/tac + name = "armory tac locker" + req_access = list(access_armory) + icon_state = "tac" + +/obj/structure/closet/secure_closet/tac/New() + ..() + new /obj/item/weapon/gun/projectile/automatic/wt550(src) + new /obj/item/clothing/head/helmet/alt(src) + new /obj/item/clothing/mask/gas/sechailer(src) + new /obj/item/clothing/suit/armor/bulletproof(src) + +/obj/structure/closet/secure_closet/lethalshots + name = "shotgun lethal rounds" + req_access = list(access_armory) + icon_state = "tac" + +/obj/structure/closet/secure_closet/lethalshots/New() + ..() + for(var/i in 1 to 3) + new /obj/item/weapon/storage/box/lethalshot(src) diff --git a/code/game/objects/structures/crates_lockers/closets/statue.dm b/code/game/objects/structures/crates_lockers/closets/statue.dm new file mode 100644 index 0000000..99f271b --- /dev/null +++ b/code/game/objects/structures/crates_lockers/closets/statue.dm @@ -0,0 +1,107 @@ +/obj/structure/statue/petrified + name = "statue" + desc = "An incredibly lifelike marble carving." + icon_state = "human_male" + density = 1 + anchored = 1 + obj_integrity = 200 + max_integrity = 200 + var/timer = 240 //eventually the person will be freed + var/mob/living/petrified_mob + +/obj/structure/statue/petrified/New(loc, mob/living/L, statue_timer) + if(statue_timer) + timer = statue_timer + if(L) + petrified_mob = L + if(L.buckled) + L.buckled.unbuckle_mob(L,force=1) + L.visible_message("[L]'s skin rapidly turns to marble!", "Your body freezes up! Can't... move... can't... think...") + L.forceMove(src) + L.disabilities |= MUTE + L.faction += "mimic" //Stops mimics from instaqdeling people in statues + L.status_flags |= GODMODE + obj_integrity = L.health + 100 //stoning damaged mobs will result in easier to shatter statues + max_integrity = obj_integrity + START_PROCESSING(SSobj, src) + ..() + +/obj/structure/statue/petrified/process() + if(!petrified_mob) + STOP_PROCESSING(SSobj, src) + timer-- + petrified_mob.Stun(2) //So they can't do anything while petrified + if(timer <= 0) + STOP_PROCESSING(SSobj, src) + qdel(src) + +/obj/structure/statue/petrified/contents_explosion(severity, target) + return + +/obj/structure/statue/petrified/handle_atom_del(atom/A) + if(A == petrified_mob) + petrified_mob = null + +/obj/structure/statue/petrified/Destroy() + + if(istype(src.loc, /mob/living/simple_animal/hostile/statue)) + var/mob/living/simple_animal/hostile/statue/S = src.loc + forceMove(S.loc) + if(S.mind) + if(petrified_mob) + S.mind.transfer_to(petrified_mob) + petrified_mob.Weaken(5) + petrified_mob << "You slowly come back to your senses. You are in control of yourself again!" + qdel(S) + + for(var/obj/O in src) + O.forceMove(loc) + + if(petrified_mob) + petrified_mob.status_flags &= ~GODMODE + petrified_mob.forceMove(loc) + petrified_mob.disabilities &= ~MUTE + petrified_mob.take_overall_damage((petrified_mob.health - obj_integrity + 100)) //any new damage the statue incurred is transfered to the mob + petrified_mob.faction -= "mimic" + petrified_mob = null + return ..() + +/obj/structure/statue/petrified/deconstruct(disassembled = TRUE) + if(!disassembled) + if(petrified_mob) + petrified_mob.dust() + visible_message("[src] shatters!.") + qdel(src) + + +/mob/proc/petrify(statue_timer) + +/mob/living/carbon/human/petrify(statue_timer) + if(!isturf(loc)) + return 0 + var/obj/structure/statue/petrified/S = new(loc, src, statue_timer) + S.name = "statue of [name]" + bleedsuppress = 1 + S.icon = icon + S.icon_state = icon_state + S.overlays = overlays + var/newcolor = list(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(0,0,0)) + S.add_atom_colour(newcolor, FIXED_COLOUR_PRIORITY) + return 1 + +/mob/living/carbon/monkey/petrify(statue_timer) + if(!isturf(loc)) + return 0 + var/obj/structure/statue/petrified/S = new(loc, src, statue_timer) + S.name = "statue of a monkey" + S.icon_state = "monkey" + return 1 + +/mob/living/simple_animal/pet/dog/corgi/petrify(statue_timer) + if(!isturf(loc)) + return 0 + var/obj/structure/statue/petrified/S = new (loc, src, statue_timer) + S.name = "statue of a corgi" + S.icon_state = "corgi" + S.desc = "If it takes forever, I will wait for you..." + return 1 diff --git a/code/game/objects/structures/crates_lockers/closets/syndicate.dm b/code/game/objects/structures/crates_lockers/closets/syndicate.dm new file mode 100644 index 0000000..76c7e8d --- /dev/null +++ b/code/game/objects/structures/crates_lockers/closets/syndicate.dm @@ -0,0 +1,125 @@ +/obj/structure/closet/syndicate + name = "armory closet" + desc = "Why is this here?" + icon_state = "syndicate" + +/obj/structure/closet/syndicate/personal + desc = "It's a personal storage unit for operative gear." + +/obj/structure/closet/syndicate/personal/New() + ..() + new /obj/item/clothing/under/syndicate(src) + new /obj/item/clothing/shoes/sneakers/black(src) + new /obj/item/device/radio/headset/syndicate(src) + new /obj/item/ammo_box/magazine/m10mm(src) + new /obj/item/weapon/storage/belt/military(src) + new /obj/item/weapon/crowbar/red(src) + new /obj/item/clothing/glasses/night(src) + return + +/obj/structure/closet/syndicate/nuclear + desc = "It's a storage unit for a Syndicate boarding party." + +/obj/structure/closet/syndicate/nuclear/New() + ..() + contents = list() + for(var/i in 1 to 5) + new /obj/item/ammo_box/magazine/m10mm(src) + new /obj/item/weapon/storage/box/flashbangs(src) + new /obj/item/weapon/storage/box/teargas(src) + new /obj/item/weapon/storage/backpack/dufflebag/syndie/med(src) + new /obj/item/device/pda/syndicate(src) + return + +/obj/structure/closet/syndicate/resources + desc = "An old, dusty locker." + +/obj/structure/closet/syndicate/resources/New() + ..() + var/common_min = 30 //Minimum amount of minerals in the stack for common minerals + var/common_max = 50 //Maximum amount of HONK in the stack for HONK common minerals + var/rare_min = 5 //Minimum HONK of HONK in the stack HONK HONK rare minerals + var/rare_max = 20 //Maximum HONK HONK HONK in the HONK for HONK rare HONK + + + var/pickednum = rand(1, 50) + + //Sad trombone + if(pickednum == 1) + var/obj/item/weapon/paper/P = new /obj/item/weapon/paper(src) + P.name = "\improper IOU" + P.info = "Sorry man, we needed the money so we sold your stash. It's ok, we'll double our money for sure this time!" + + //Metal (common ore) + if(pickednum >= 2) + new /obj/item/stack/sheet/metal(src, rand(common_min, common_max)) + + //Glass (common ore) + if(pickednum >= 5) + new /obj/item/stack/sheet/glass(src, rand(common_min, common_max)) + + //Plasteel (common ore) Because it has a million more uses then plasma + if(pickednum >= 10) + new /obj/item/stack/sheet/plasteel(src, rand(common_min, common_max)) + + //Plasma (rare ore) + if(pickednum >= 15) + new /obj/item/stack/sheet/mineral/plasma(src, rand(rare_min, rare_max)) + + //Silver (rare ore) + if(pickednum >= 20) + new /obj/item/stack/sheet/mineral/silver(src, rand(rare_min, rare_max)) + + //Gold (rare ore) + if(pickednum >= 30) + new /obj/item/stack/sheet/mineral/gold(src, rand(rare_min, rare_max)) + + //Uranium (rare ore) + if(pickednum >= 40) + new /obj/item/stack/sheet/mineral/uranium(src, rand(rare_min, rare_max)) + + //Titanium (rare ore) + if(pickednum >= 40) + new /obj/item/stack/sheet/mineral/titanium(src, rand(rare_min, rare_max)) + + //Plastitanium (rare ore) + if(pickednum >= 40) + new /obj/item/stack/sheet/mineral/plastitanium(src, rand(rare_min, rare_max)) + + //Diamond (rare HONK) + if(pickednum >= 45) + new /obj/item/stack/sheet/mineral/diamond(src, rand(rare_min, rare_max)) + + //Jetpack (You hit the jackpot!) + if(pickednum == 50) + new /obj/item/weapon/tank/jetpack/carbondioxide(src) + + return + +/obj/structure/closet/syndicate/resources/everything + desc = "It's an emergency storage closet for repairs." + +/obj/structure/closet/syndicate/resources/everything/New() + ..() + contents = list() + var/list/resources = list( + /obj/item/stack/sheet/metal, + /obj/item/stack/sheet/glass, + /obj/item/stack/sheet/mineral/gold, + /obj/item/stack/sheet/mineral/silver, + /obj/item/stack/sheet/mineral/plasma, + /obj/item/stack/sheet/mineral/uranium, + /obj/item/stack/sheet/mineral/diamond, + /obj/item/stack/sheet/mineral/bananium, + /obj/item/stack/sheet/plasteel, + /obj/item/stack/sheet/mineral/titanium, + /obj/item/stack/sheet/mineral/plastitanium, + /obj/item/stack/rods + ) + + for(var/i = 0, i<2, i++) + for(var/res in resources) + var/obj/item/stack/R = new res(src) + R.amount = R.max_amount + + return diff --git a/code/game/objects/structures/crates_lockers/closets/utility_closets.dm b/code/game/objects/structures/crates_lockers/closets/utility_closets.dm new file mode 100644 index 0000000..3763a1f --- /dev/null +++ b/code/game/objects/structures/crates_lockers/closets/utility_closets.dm @@ -0,0 +1,182 @@ +/* Utility Closets + * Contains: + * Emergency Closet + * Fire Closet + * Tool Closet + * Radiation Closet + * Bombsuit Closet + * Hydrant + * First Aid + */ + +/* + * Emergency Closet + */ +/obj/structure/closet/emcloset + name = "emergency closet" + desc = "It's a storage unit for emergency breath masks and O2 tanks." + icon_state = "emergency" + +/obj/structure/closet/emcloset/New() + ..() + + if (prob(40)) + new /obj/item/weapon/storage/toolbox/emergency(src) + + switch (pickweight(list("small" = 40, "aid" = 25, "tank" = 20, "both" = 10, "nothing" = 4, "delete" = 1))) + if ("small") + new /obj/item/weapon/tank/internals/emergency_oxygen(src) + new /obj/item/weapon/tank/internals/emergency_oxygen(src) + new /obj/item/clothing/mask/breath(src) + new /obj/item/clothing/mask/breath(src) + + if ("aid") + new /obj/item/weapon/tank/internals/emergency_oxygen(src) + new /obj/item/weapon/storage/firstaid/o2(src) + new /obj/item/clothing/mask/breath(src) + + if ("tank") + new /obj/item/weapon/tank/internals/air(src) + new /obj/item/clothing/mask/breath(src) + + if ("both") + new /obj/item/weapon/tank/internals/emergency_oxygen(src) + new /obj/item/clothing/mask/breath(src) + + if ("nothing") + // doot + + // teehee + if ("delete") + qdel(src) + + //If you want to re-add fire, just add "fire" = 15 to the pick list. + /*if ("fire") + new /obj/structure/closet/firecloset(src.loc) + qdel(src)*/ + +/* + * Fire Closet + */ +/obj/structure/closet/firecloset + name = "fire-safety closet" + desc = "It's a storage unit for fire-fighting supplies." + icon_state = "fire" + +/obj/structure/closet/firecloset/New() + ..() + + new /obj/item/clothing/suit/fire/firefighter(src) + new /obj/item/clothing/mask/gas(src) + new /obj/item/weapon/tank/internals/oxygen/red(src) + new /obj/item/weapon/extinguisher(src) + new /obj/item/clothing/head/hardhat/red(src) + +/obj/structure/closet/firecloset/full/New() + ..() + contents = list() + + new /obj/item/clothing/suit/fire/firefighter(src) + new /obj/item/clothing/mask/gas(src) + new /obj/item/device/flashlight(src) + new /obj/item/weapon/tank/internals/oxygen/red(src) + new /obj/item/weapon/extinguisher(src) + new /obj/item/clothing/head/hardhat/red(src) + +/* + * Tool Closet + */ +/obj/structure/closet/toolcloset + name = "tool closet" + desc = "It's a storage unit for tools." + icon_state = "eng" + icon_door = "eng_tool" + +/obj/structure/closet/toolcloset/New() + ..() + if(prob(40)) + new /obj/item/clothing/suit/hazardvest(src) + if(prob(70)) + new /obj/item/device/flashlight(src) + if(prob(70)) + new /obj/item/weapon/screwdriver(src) + if(prob(70)) + new /obj/item/weapon/wrench(src) + if(prob(70)) + new /obj/item/weapon/weldingtool(src) + if(prob(70)) + new /obj/item/weapon/crowbar(src) + if(prob(70)) + new /obj/item/weapon/wirecutters(src) + if(prob(70)) + new /obj/item/device/t_scanner(src) + if(prob(20)) + new /obj/item/weapon/storage/belt/utility(src) + if(prob(30)) + new /obj/item/stack/cable_coil/random(src) + if(prob(30)) + new /obj/item/stack/cable_coil/random(src) + if(prob(30)) + new /obj/item/stack/cable_coil/random(src) + if(prob(20)) + new /obj/item/device/multitool(src) + if(prob(5)) + new /obj/item/clothing/gloves/color/yellow(src) + if(prob(40)) + new /obj/item/clothing/head/hardhat(src) + + +/* + * Radiation Closet + */ +/obj/structure/closet/radiation + name = "radiation suit closet" + desc = "It's a storage unit for rad-protective suits." + icon_state = "eng" + icon_door = "eng_rad" + +/obj/structure/closet/radiation/New() + ..() + new /obj/item/device/geiger_counter(src) + new /obj/item/clothing/suit/radiation(src) + new /obj/item/clothing/head/radiation(src) + +/* + * Bombsuit closet + */ +/obj/structure/closet/bombcloset + name = "\improper EOD closet" + desc = "It's a storage unit for explosion-protective suits." + icon_state = "bomb" + +/obj/structure/closet/bombcloset/New() + ..() + new /obj/item/clothing/suit/bomb_suit( src ) + new /obj/item/clothing/under/color/black( src ) + new /obj/item/clothing/shoes/sneakers/black( src ) + new /obj/item/clothing/head/bomb_hood( src ) + + +/obj/structure/closet/bombclosetsecurity + name = "\improper EOD closet" + desc = "It's a storage unit for explosion-protective suits." + icon_state = "bomb" + +/obj/structure/closet/bombclosetsecurity/New() + ..() + contents = list() + new /obj/item/clothing/suit/bomb_suit/security( src ) + new /obj/item/clothing/under/rank/security( src ) + new /obj/item/clothing/shoes/sneakers/brown( src ) + new /obj/item/clothing/head/bomb_hood/security( src ) + +/* + * Ammunition + */ +/obj/structure/closet/ammunitionlocker + name = "ammunition locker" + +/obj/structure/closet/ammunitionlocker/New() + ..() + for(var/i in 1 to 8) + new /obj/item/ammo_casing/shotgun/beanbag(src) diff --git a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm new file mode 100644 index 0000000..98a43f6 --- /dev/null +++ b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm @@ -0,0 +1,197 @@ +/obj/structure/closet/wardrobe + name = "wardrobe" + desc = "It's a storage unit for standard-issue Nanotrasen attire." + icon_door = "blue" + +/obj/structure/closet/wardrobe/New() + ..() + for(var/i in 1 to 3) + new /obj/item/clothing/under/color/blue(src) + for(var/i in 1 to 3) + new /obj/item/clothing/shoes/sneakers/brown(src) + return + +/obj/structure/closet/wardrobe/pink + name = "pink wardrobe" + icon_door = "pink" + +/obj/structure/closet/wardrobe/pink/New() + ..() + contents = list() + for(var/i in 1 to 3) + new /obj/item/clothing/under/color/pink(src) + for(var/i in 1 to 3) + new /obj/item/clothing/shoes/sneakers/brown(src) + return + +/obj/structure/closet/wardrobe/black + name = "black wardrobe" + icon_door = "black" + +/obj/structure/closet/wardrobe/black/New() + ..() + contents = list() + for(var/i in 1 to 3) + new /obj/item/clothing/under/color/black(src) + if(prob(25)) + new /obj/item/clothing/suit/jacket/leather(src) + if(prob(20)) + new /obj/item/clothing/suit/jacket/leather/overcoat(src) + for(var/i in 1 to 3) + new /obj/item/clothing/shoes/sneakers/black(src) + for(var/i in 1 to 3) + new /obj/item/clothing/head/that(src) + for(var/i in 1 to 3) + new /obj/item/clothing/head/soft/black(src) + new /obj/item/clothing/mask/bandana/black(src) + new /obj/item/clothing/mask/bandana/black(src) + if(prob(40)) + new /obj/item/clothing/mask/bandana/skull(src) + return + + +/obj/structure/closet/wardrobe/green + name = "green wardrobe" + icon_door = "green" + +/obj/structure/closet/wardrobe/green/New() + ..() + contents = list() + for(var/i in 1 to 3) + new /obj/item/clothing/under/color/green(src) + for(var/i in 1 to 3) + new /obj/item/clothing/shoes/sneakers/black(src) + new /obj/item/clothing/mask/bandana/green(src) + new /obj/item/clothing/mask/bandana/green(src) + return + + +/obj/structure/closet/wardrobe/orange + name = "prison wardrobe" + desc = "It's a storage unit for Nanotrasen-regulation prisoner attire." + icon_door = "orange" + +/obj/structure/closet/wardrobe/orange/New() + ..() + contents = list() + for(var/i in 1 to 3) + new /obj/item/clothing/under/rank/prisoner(src) + for(var/i in 1 to 3) + new /obj/item/clothing/shoes/sneakers/orange(src) + return + + +/obj/structure/closet/wardrobe/yellow + name = "yellow wardrobe" + icon_door = "yellow" + +/obj/structure/closet/wardrobe/yellow/New() + ..() + contents = list() + for(var/i in 1 to 3) + new /obj/item/clothing/under/color/yellow(src) + for(var/i in 1 to 3) + new /obj/item/clothing/shoes/sneakers/orange(src) + new /obj/item/clothing/mask/bandana/gold(src) + new /obj/item/clothing/mask/bandana/gold(src) + return + + +/obj/structure/closet/wardrobe/white + name = "white wardrobe" + icon_door = "white" + +/obj/structure/closet/wardrobe/white/New() + ..() + contents = list() + for(var/i in 1 to 3) + new /obj/item/clothing/under/color/white(src) + for(var/i in 1 to 3) + new /obj/item/clothing/shoes/sneakers/white(src) + for(var/i in 1 to 3) + new /obj/item/clothing/head/soft/mime(src) + return + +/obj/structure/closet/wardrobe/pjs + name = "pajama wardrobe" + icon_door = "white" + +/obj/structure/closet/wardrobe/pjs/New() + ..() + contents = list() + new /obj/item/clothing/under/pj/red(src) + new /obj/item/clothing/under/pj/red(src) + new /obj/item/clothing/under/pj/blue(src) + new /obj/item/clothing/under/pj/blue(src) + for(var/i in 1 to 4) + new /obj/item/clothing/shoes/sneakers/white(src) + return + + +/obj/structure/closet/wardrobe/grey + name = "grey wardrobe" + icon_door = "grey" + +/obj/structure/closet/wardrobe/grey/New() + ..() + contents = list() + for(var/i in 1 to 3) + new /obj/item/clothing/under/color/grey(src) + for(var/i in 1 to 3) + new /obj/item/clothing/shoes/sneakers/black(src) + for(var/i in 1 to 3) + new /obj/item/clothing/head/soft/grey(src) + if(prob(50)) + new /obj/item/weapon/storage/backpack/dufflebag(src) + if(prob(40)) + new /obj/item/clothing/mask/bandana/black(src) + new /obj/item/clothing/mask/bandana/black(src) + if(prob(40)) + new /obj/item/clothing/under/assistantformal(src) + if(prob(40)) + new /obj/item/clothing/under/assistantformal(src) + if(prob(30)) + new /obj/item/clothing/suit/hooded/wintercoat(src) + new /obj/item/clothing/shoes/winterboots(src) + return + + +/obj/structure/closet/wardrobe/mixed + name = "mixed wardrobe" + icon_door = "mixed" + +/obj/structure/closet/wardrobe/mixed/New() + ..() + contents = list() + if(prob(40)) + new /obj/item/clothing/suit/jacket(src) + if(prob(40)) + new /obj/item/clothing/suit/jacket(src) + new /obj/item/clothing/under/color/white(src) + new /obj/item/clothing/under/color/blue(src) + new /obj/item/clothing/under/color/yellow(src) + new /obj/item/clothing/under/color/green(src) + new /obj/item/clothing/under/color/orange(src) + new /obj/item/clothing/under/color/pink(src) + new /obj/item/clothing/under/color/red(src) + new /obj/item/clothing/under/color/lightblue(src) + new /obj/item/clothing/under/color/aqua(src) + new /obj/item/clothing/under/color/purple(src) + new /obj/item/clothing/under/color/lightpurple(src) + new /obj/item/clothing/under/color/lightgreen(src) + new /obj/item/clothing/under/color/darkblue(src) + new /obj/item/clothing/under/color/darkred(src) + new /obj/item/clothing/under/color/lightred(src) + new /obj/item/clothing/mask/bandana/red(src) + new /obj/item/clothing/mask/bandana/red(src) + new /obj/item/clothing/mask/bandana/blue(src) + new /obj/item/clothing/mask/bandana/blue(src) + new /obj/item/clothing/mask/bandana/gold(src) + new /obj/item/clothing/mask/bandana/gold(src) + new /obj/item/clothing/shoes/sneakers/black(src) + new /obj/item/clothing/shoes/sneakers/brown(src) + new /obj/item/clothing/shoes/sneakers/white(src) + if(prob(30)) + new /obj/item/clothing/suit/hooded/wintercoat(src) + new /obj/item/clothing/shoes/winterboots(src) + return diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm new file mode 100644 index 0000000..96d2324 --- /dev/null +++ b/code/game/objects/structures/crates_lockers/crates.dm @@ -0,0 +1,126 @@ +/obj/structure/closet/crate + name = "crate" + desc = "A rectangular steel crate." + icon = 'icons/obj/crates.dmi' + icon_state = "crate" + req_access = null + can_weld_shut = FALSE + horizontal = TRUE + allow_objects = TRUE + allow_dense = TRUE + dense_when_open = TRUE + climbable = TRUE + climb_time = 10 //real fast, because let's be honest stepping into or onto a crate is easy + climb_stun = 0 //climbing onto crates isn't hard, guys + var/obj/item/weapon/paper/manifest/manifest + +/obj/structure/closet/crate/New() + ..() + update_icon() + +/obj/structure/closet/crate/CanPass(atom/movable/mover, turf/target, height=0) + if(!istype(mover, /obj/structure/closet)) + var/obj/structure/closet/crate/locatedcrate = locate(/obj/structure/closet/crate) in get_turf(mover) + if(locatedcrate) //you can walk on it like tables, if you're not in an open crate trying to move to a closed crate + if(opened) //if we're open, allow entering regardless of located crate openness + return 1 + if(!locatedcrate.opened) //otherwise, if the located crate is closed, allow entering + return 1 + return !density + +/obj/structure/closet/crate/update_icon() + icon_state = "[initial(icon_state)][opened ? "open" : ""]" + + cut_overlays() + if(manifest) + add_overlay("manifest") + +/obj/structure/closet/crate/attack_hand(mob/user) + if(manifest) + tear_manifest(user) + return + ..() + +/obj/structure/closet/crate/open(mob/living/user) + . = ..() + if(. && manifest) + user << "The manifest is torn off [src]." + playsound(src, 'sound/items/poster_ripped.ogg', 75, 1) + manifest.forceMove(get_turf(src)) + manifest = null + update_icon() + +/obj/structure/closet/crate/proc/tear_manifest(mob/user) + user << "You tear the manifest off of [src]." + playsound(src, 'sound/items/poster_ripped.ogg', 75, 1) + + manifest.forceMove(loc) + if(ishuman(user)) + user.put_in_hands(manifest) + manifest = null + update_icon() + +/obj/structure/closet/crate/internals + desc = "A internals crate." + name = "internals crate" + icon_state = "o2crate" + +/obj/structure/closet/crate/trashcart + desc = "A heavy, metal trashcart with wheels." + name = "trash cart" + icon_state = "trashcart" + +/obj/structure/closet/crate/medical + desc = "A medical crate." + name = "medical crate" + icon_state = "medicalcrate" + +/obj/structure/closet/crate/freezer + desc = "A freezer." + name = "freezer" + icon_state = "freezer" + +/obj/structure/closet/crate/freezer/blood + name = "blood freezer" + desc = "A freezer containing packs of blood." + +/obj/structure/closet/crate/freezer/blood/New() + . = ..() + new /obj/item/weapon/reagent_containers/blood/empty(src) + new /obj/item/weapon/reagent_containers/blood/empty(src) + new /obj/item/weapon/reagent_containers/blood/AMinus(src) + new /obj/item/weapon/reagent_containers/blood/BMinus(src) + new /obj/item/weapon/reagent_containers/blood/BPlus(src) + new /obj/item/weapon/reagent_containers/blood/OMinus(src) + new /obj/item/weapon/reagent_containers/blood/OPlus(src) + new /obj/item/weapon/reagent_containers/blood/lizard(src) + for(var/i in 1 to 3) + new /obj/item/weapon/reagent_containers/blood/random(src) + +/obj/structure/closet/crate/radiation + desc = "A crate with a radiation sign on it." + name = "radiation crate" + icon_state = "radiation" + +/obj/structure/closet/crate/hydroponics + name = "hydroponics crate" + desc = "All you need to destroy those pesky weeds and pests." + icon_state = "hydrocrate" + +/obj/structure/closet/crate/engineering + name = "engineering crate" + icon_state = "engi_crate" + +/obj/structure/closet/crate/engineering/electrical + icon_state = "engi_e_crate" + +/obj/structure/closet/crate/rcd + desc = "A crate for the storage of an RCD." + name = "\improper RCD crate" + icon_state = "engi_crate" + +/obj/structure/closet/crate/rcd/New() + ..() + for(var/i in 1 to 4) + new /obj/item/weapon/rcd_ammo(src) + new /obj/item/weapon/rcd(src) diff --git a/code/game/objects/structures/crates_lockers/crates/bins.dm b/code/game/objects/structures/crates_lockers/crates/bins.dm new file mode 100644 index 0000000..a50ed96 --- /dev/null +++ b/code/game/objects/structures/crates_lockers/crates/bins.dm @@ -0,0 +1,44 @@ +/obj/structure/closet/crate/bin + desc = "A trash bin, place your trash here for the janitor to collect." + name = "trash bin" + icon_state = "largebins" + open_sound = 'sound/effects/bin_open.ogg' + close_sound = 'sound/effects/bin_close.ogg' + anchored = TRUE + horizontal = FALSE + +/obj/structure/closet/crate/bin/New() + ..() + update_icon() + +/obj/structure/closet/crate/bin/update_icon() + ..() + cut_overlays() + if(contents.len == 0) + add_overlay("largebing") + else if(contents.len >= storage_capacity) + add_overlay("largebinr") + else + add_overlay("largebino") + +/obj/structure/closet/crate/bin/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/weapon/storage/bag/trash)) + var/obj/item/weapon/storage/bag/trash/T = W + user << "You fill the bag." + for(var/obj/item/O in src) + if(T.can_be_inserted(O, 1)) + O.loc = T + T.update_icon() + do_animate() + else if(istype(W, /obj/item/weapon/wrench)) + anchored = !anchored + playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1) + else + return ..() + +/obj/structure/closet/crate/bin/proc/do_animate() + playsound(loc, open_sound, 15, 1, -3) + flick("animate_largebins", src) + spawn(13) + playsound(loc, close_sound, 15, 1, -3) + update_icon() diff --git a/code/game/objects/structures/crates_lockers/crates/critter.dm b/code/game/objects/structures/crates_lockers/crates/critter.dm new file mode 100644 index 0000000..9782bba --- /dev/null +++ b/code/game/objects/structures/crates_lockers/crates/critter.dm @@ -0,0 +1,37 @@ +/obj/structure/closet/crate/critter + name = "critter crate" + desc = "A crate designed for safe transport of animals. It has an oxygen tank for safe transport in space." + icon_state = "crittercrate" + horizontal = FALSE + allow_objects = FALSE + breakout_time = 1 + material_drop = /obj/item/stack/sheet/mineral/wood + material_drop_amount = 4 + var/obj/item/weapon/tank/internals/emergency_oxygen/tank + +/obj/structure/closet/crate/critter/New() + ..() + tank = new + +/obj/structure/closet/crate/critter/Destroy() + var/turf/T = get_turf(src) + if(tank) + tank.forceMove(T) + tank = null + + return ..() + +/obj/structure/closet/crate/critter/update_icon() + cut_overlays() + if(opened) + add_overlay("crittercrate_door_open") + else + add_overlay("crittercrate_door") + if(manifest) + add_overlay("manifest") + +/obj/structure/closet/crate/critter/return_air() + if(tank) + return tank.air_contents + else + return loc.return_air() \ No newline at end of file diff --git a/code/game/objects/structures/crates_lockers/crates/large.dm b/code/game/objects/structures/crates_lockers/crates/large.dm new file mode 100644 index 0000000..db44292 --- /dev/null +++ b/code/game/objects/structures/crates_lockers/crates/large.dm @@ -0,0 +1,33 @@ +/obj/structure/closet/crate/large + name = "large crate" + desc = "A hefty wooden crate." + icon_state = "largecrate" + density = 1 + material_drop = /obj/item/stack/sheet/mineral/wood + +/obj/structure/closet/crate/large/attack_hand(mob/user) + add_fingerprint(user) + if(manifest) + tear_manifest(user) + else + user << "You need a crowbar to pry this open!" + +/obj/structure/closet/crate/large/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/weapon/crowbar)) + var/turf/T = get_turf(src) + if(manifest) + tear_manifest(user) + + user.visible_message("[user] pries \the [src] open.", \ + "You pry open \the [src].", \ + "You hear splitting wood.") + playsound(src.loc, 'sound/weapons/slashmiss.ogg', 75, 1) + + for(var/i in 1 to rand(2, 5)) + new material_drop(src) + for(var/atom/movable/AM in contents) + AM.forceMove(T) + + qdel(src) + else + return ..() diff --git a/code/game/objects/structures/crates_lockers/crates/secure.dm b/code/game/objects/structures/crates_lockers/crates/secure.dm new file mode 100644 index 0000000..9119798 --- /dev/null +++ b/code/game/objects/structures/crates_lockers/crates/secure.dm @@ -0,0 +1,63 @@ +/obj/structure/closet/crate/secure + desc = "A secure crate." + name = "secure crate" + icon_state = "securecrate" + secure = 1 + locked = 1 + obj_integrity = 500 + max_integrity = 500 + armor = list(melee = 30, bullet = 50, laser = 50, energy = 100, bomb = 0, bio = 0, rad = 0, fire = 80, acid = 80) + var/tamperproof = 0 + +/obj/structure/closet/crate/secure/run_obj_armor(damage_amount, damage_type, damage_flag = 0, attack_dir) + if(damage_flag == "melee" && damage_amount < 25) + return 0 + . = ..() + +/obj/structure/closet/crate/secure/update_icon() + ..() + if(broken) + add_overlay("securecrateemag") + else if(locked) + add_overlay("securecrater") + else + add_overlay("securecrateg") + +/obj/structure/closet/crate/secure/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1) + if(prob(tamperproof)) + boom() + ..() + + +/obj/structure/closet/crate/secure/proc/boom(mob/user) + if(user) + user << "The crate's anti-tamper system activates!" + for(var/atom/movable/AM in src) + qdel(AM) + explosion(get_turf(src), 0, 1, 5, 5) + qdel(src) + +/obj/structure/closet/crate/secure/weapon + desc = "A secure weapons crate." + name = "weapons crate" + icon_state = "weaponcrate" + +/obj/structure/closet/crate/secure/plasma + desc = "A secure plasma crate." + name = "plasma crate" + icon_state = "plasmacrate" + +/obj/structure/closet/crate/secure/gear + desc = "A secure gear crate." + name = "gear crate" + icon_state = "secgearcrate" + +/obj/structure/closet/crate/secure/hydroponics + desc = "A crate with a lock on it, painted in the scheme of the station's botanists." + name = "secure hydroponics crate" + icon_state = "hydrosecurecrate" + +/obj/structure/closet/crate/secure/engineering + desc = "A crate with a lock on it, painted in the scheme of the station's engineers." + name = "secure engineering crate" + icon_state = "engi_secure_crate" \ No newline at end of file diff --git a/code/game/objects/structures/destructible_structures.dm b/code/game/objects/structures/destructible_structures.dm new file mode 100644 index 0000000..d002991 --- /dev/null +++ b/code/game/objects/structures/destructible_structures.dm @@ -0,0 +1,17 @@ +/obj/structure/destructible //a base for destructible structures + max_integrity = 100 + obj_integrity = 100 + var/break_message = "The strange, admin-y structure breaks!" //The message shown when a structure breaks + var/break_sound = 'sound/magic/clockwork/invoke_general.ogg' //The sound played when a structure breaks + var/list/debris = null //Parts left behind when a structure breaks, takes the form of list(path = amount_to_spawn) + +/obj/structure/destructible/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + if(islist(debris)) + for(var/I in debris) + for(var/i in 1 to debris[I]) + new I (get_turf(src)) + visible_message(break_message) + playsound(src, break_sound, 50, 1) + qdel(src) + return 1 diff --git a/code/game/objects/structures/displaycase.dm b/code/game/objects/structures/displaycase.dm new file mode 100644 index 0000000..6ffce8a --- /dev/null +++ b/code/game/objects/structures/displaycase.dm @@ -0,0 +1,253 @@ +/obj/structure/displaycase + name = "display case" + icon = 'icons/obj/stationobjs.dmi' + icon_state = "glassbox0" + desc = "A display case for prized possessions." + density = 1 + anchored = 1 + resistance_flags = ACID_PROOF + armor = list(melee = 30, bullet = 0, laser = 0, energy = 0, bomb = 10, bio = 0, rad = 0, fire = 70, acid = 100) + obj_integrity = 200 + max_integrity = 200 + integrity_failure = 50 + var/obj/item/showpiece = null + var/alert = 0 + var/open = 0 + var/obj/item/weapon/electronics/airlock/electronics + var/start_showpiece_type = null //add type for items on display + +/obj/structure/displaycase/New() + ..() + if(start_showpiece_type) + showpiece = new start_showpiece_type (src) + update_icon() + +/obj/structure/displaycase/Destroy() + if(electronics) + qdel(electronics) + electronics = null + if(showpiece) + qdel(showpiece) + showpiece = null + return ..() + +/obj/structure/displaycase/examine(mob/user) + ..() + if(showpiece) + user << "There's [showpiece] inside." + if(alert) + user << "Hooked up with an anti-theft system." + + +/obj/structure/displaycase/proc/dump() + if (showpiece) + showpiece.forceMove(loc) + showpiece = null + +/obj/structure/displaycase/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) + switch(damage_type) + if(BRUTE) + playsound(src.loc, 'sound/effects/Glasshit.ogg', 75, 1) + if(BURN) + playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) + +/obj/structure/displaycase/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + dump() + if(!disassembled) + new /obj/item/weapon/shard( src.loc ) + trigger_alarm() + qdel(src) + +/obj/structure/displaycase/obj_break(damage_flag) + if(!broken && !(flags & NODECONSTRUCT)) + density = 0 + broken = 1 + new /obj/item/weapon/shard( src.loc ) + playsound(src, "shatter", 70, 1) + update_icon() + trigger_alarm() + +/obj/structure/displaycase/proc/trigger_alarm() + //Activate Anti-theft + if(alert) + var/area/alarmed = get_area(src) + alarmed.burglaralert(src) + playsound(src, "sound/effects/alert.ogg", 50, 1) + +/* + +*/ + +/obj/structure/displaycase/proc/is_directional(atom/A) + try + getFlatIcon(A,defdir=4) + catch + return 0 + return 1 + +/obj/structure/displaycase/proc/get_flat_icon_directional(atom/A) + //Get flatIcon even if dir is mismatched for directionless icons + //SLOW + var/icon/I + if(is_directional(A)) + I = getFlatIcon(A) + else + var/old_dir = A.dir + A.setDir(2) + I = getFlatIcon(A) + A.setDir(old_dir) + return I + +/obj/structure/displaycase/update_icon() + var/icon/I + if(open) + I = icon('icons/obj/stationobjs.dmi',"glassbox_open") + else + I = icon('icons/obj/stationobjs.dmi',"glassbox0") + if(broken) + I = icon('icons/obj/stationobjs.dmi',"glassboxb0") + if(showpiece) + var/icon/S = get_flat_icon_directional(showpiece) + S.Scale(17,17) + I.Blend(S,ICON_UNDERLAY,8,8) + src.icon = I + return + +/obj/structure/displaycase/attackby(obj/item/weapon/W, mob/user, params) + if(W.GetID() && !broken) + if(allowed(user)) + user << "You [open ? "close":"open"] the [src]" + toggle_lock(user) + else + user << "Access denied." + else if(istype(W, /obj/item/weapon/weldingtool) && user.a_intent == "help" && !broken) + var/obj/item/weapon/weldingtool/WT = W + if(obj_integrity < max_integrity && WT.remove_fuel(5, user)) + user << "You begin repairing [src]." + playsound(loc, 'sound/items/Welder.ogg', 40, 1) + if(do_after(user, 40/W.toolspeed, target = src)) + obj_integrity = max_integrity + playsound(loc, 'sound/items/Welder2.ogg', 50, 1) + update_icon() + user << "You repair [src]." + else + user << "[src] is already in good condition!" + return + else if(!alert && istype(W,/obj/item/weapon/crowbar)) //Only applies to the lab cage and player made display cases + if(broken) + if(showpiece) + user << "Remove the displayed object first." + else + user << "You remove the destroyed case" + qdel(src) + else + user << "You start to [open ? "close":"open"] the [src]" + if(do_after(user, 20/W.toolspeed, target = src)) + user << "You [open ? "close":"open"] the [src]" + toggle_lock(user) + else if(open && !showpiece) + if(user.drop_item()) + W.loc = src + showpiece = W + user << "You put [W] on display" + update_icon() + else if(istype(W, /obj/item/stack/sheet/glass) && broken) + var/obj/item/stack/sheet/glass/G = W + if(G.get_amount() < 2) + user << "You need two glass sheets to fix the case!" + return + user << "You start fixing [src]..." + if(do_after(user, 20, target = src)) + G.use(2) + broken = 0 + obj_integrity = max_integrity + update_icon() + else + return ..() + +/obj/structure/displaycase/proc/toggle_lock(mob/user) + open = !open + update_icon() + +/obj/structure/displaycase/attack_paw(mob/user) + return src.attack_hand(user) + +/obj/structure/displaycase/attack_hand(mob/user) + user.changeNext_move(CLICK_CD_MELEE) + if (showpiece && (broken || open)) + dump() + user << "You deactivate the hover field built into the case." + src.add_fingerprint(user) + update_icon() + return + else + //prevents remote "kicks" with TK + if (!Adjacent(user)) + return + user.visible_message("[user] kicks the display case.", null, null, COMBAT_MESSAGE_RANGE) + user.do_attack_animation(src, ATTACK_EFFECT_KICK) + take_damage(2) + + + +/obj/structure/displaycase_chassis + anchored = 1 + density = 0 + name = "display case chassis" + desc = "wooden base of display case" + icon = 'icons/obj/stationobjs.dmi' + icon_state = "glassbox_chassis" + var/obj/item/weapon/electronics/airlock/electronics + + +/obj/structure/displaycase_chassis/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/wrench)) //The player can only deconstruct the wooden frame + user << "You start disassembling [src]..." + playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + if(do_after(user, 30/I.toolspeed, target = src)) + playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + new /obj/item/stack/sheet/mineral/wood(get_turf(src)) + qdel(src) + + else if(istype(I, /obj/item/weapon/electronics/airlock)) + user << "You start installing the electronics into [src]..." + playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + if(user.unEquip(I) && do_after(user, 30, target = src)) + I.loc = src + electronics = I + user << "You install the airlock electronics." + + else if(istype(I, /obj/item/stack/sheet/glass)) + var/obj/item/stack/sheet/glass/G = I + if(G.get_amount() < 10) + user << "You need ten glass sheets to do this!" + return + user << "You start adding [G] to [src]..." + if(do_after(user, 20, target = src)) + G.use(10) + var/obj/structure/displaycase/display = new(src.loc) + if(electronics) + electronics.loc = display + display.electronics = electronics + if(electronics.one_access) + display.req_one_access = electronics.accesses + else + display.req_access = electronics.accesses + qdel(src) + else + return ..() + +//The captains display case requiring specops ID access is intentional. +//The lab cage and captains display case do not spawn with electronics, which is why req_access is needed. +/obj/structure/displaycase/captain + alert = 1 + start_showpiece_type = /obj/item/weapon/gun/energy/laser/captain + req_access = list(access_cent_specops) + +/obj/structure/displaycase/labcage + name = "lab cage" + desc = "A glass lab container for storing interesting creatures." + start_showpiece_type = /obj/item/clothing/mask/facehugger/lamarr + req_access = list(access_rd) + diff --git a/code/game/objects/structures/divine.dm b/code/game/objects/structures/divine.dm new file mode 100644 index 0000000..5141535 --- /dev/null +++ b/code/game/objects/structures/divine.dm @@ -0,0 +1,46 @@ +/obj/structure/sacrificealtar + name = "sacrificial altar" + desc = "An altar designed to perform blood sacrifice for a deity." + icon = 'icons/obj/hand_of_god_structures.dmi' + icon_state = "sacrificealtar" + anchored = 1 + density = 0 + can_buckle = 1 + +/obj/structure/sacrificealtar/attack_hand(mob/living/user) + ..() + if(!has_buckled_mobs()) + return + var/mob/living/L = locate() in buckled_mobs + if(!L) + return + user << "You attempt to sacrifice [L] by invoking the sacrificial ritual." + L.gib() + message_admins("[key_name_admin(user)] has sacrificed [key_name_admin(L)] on the sacrifical altar.") + +/obj/structure/healingfountain + name = "healing fountain" + desc = "A fountain containing the waters of life." + icon = 'icons/obj/hand_of_god_structures.dmi' + icon_state = "fountain" + anchored = 1 + density = 1 + var/time_between_uses = 1800 + var/last_process = 0 + +/obj/structure/healingfountain/attack_hand(mob/living/user) + if(last_process + time_between_uses > world.time) + user << "The fountain appears to be empty." + return + last_process = world.time + user << "The water feels warm and soothing as you touch it. The fountain immediately dries up shortly afterwards." + user.reagents.add_reagent("godblood",20) + update_icons() + addtimer(src, "update_icons", time_between_uses) + + +/obj/structure/healingfountain/proc/update_icons() + if(last_process + time_between_uses > world.time) + icon_state = "fountain" + else + icon_state = "fountain-red" \ No newline at end of file diff --git a/code/game/objects/structures/door_assembly.dm b/code/game/objects/structures/door_assembly.dm new file mode 100644 index 0000000..850a436 --- /dev/null +++ b/code/game/objects/structures/door_assembly.dm @@ -0,0 +1,700 @@ +/obj/structure/door_assembly + name = "airlock assembly" + icon = 'icons/obj/doors/airlocks/station/public.dmi' + icon_state = "construction" + var/overlays_file = 'icons/obj/doors/airlocks/station/overlays.dmi' + anchored = 0 + density = 1 + obj_integrity = 200 + max_integrity = 200 + var/state = 0 + var/mineral = null + var/typetext = "" + var/icontext = "" + var/obj/item/weapon/electronics/airlock/electronics = null + var/airlock_type = /obj/machinery/door/airlock //the type path of the airlock once completed + var/glass_type = /obj/machinery/door/airlock/glass + var/created_name = null + var/heat_proof_finished = 0 //whether to heat-proof the finished airlock + var/material = null //icon state logic + +/obj/structure/door_assembly/New() + update_icon() + +/obj/structure/door_assembly/door_assembly_0 + name = "airlock assembly" + airlock_type = /obj/machinery/door/airlock + anchored = 1 + state = 1 + +/obj/structure/door_assembly/door_assembly_com + name = "command airlock assembly" + icon = 'icons/obj/doors/airlocks/station/command.dmi' + typetext = "command" + icontext = "com" + glass_type = /obj/machinery/door/airlock/glass_command + airlock_type = /obj/machinery/door/airlock/command + anchored = 1 + state = 1 + +/obj/structure/door_assembly/door_assembly_com/glass + mineral = "glass" + material = "glass" + +/obj/structure/door_assembly/door_assembly_sec + name = "security airlock assembly" + icon = 'icons/obj/doors/airlocks/station/security.dmi' + typetext = "security" + icontext = "sec" + glass_type = /obj/machinery/door/airlock/glass_security + airlock_type = /obj/machinery/door/airlock/security + anchored = 1 + state = 1 + +/obj/structure/door_assembly/door_assembly_sec/glass + mineral = "glass" + material = "glass" + +/obj/structure/door_assembly/door_assembly_eng + name = "engineering airlock assembly" + icon = 'icons/obj/doors/airlocks/station/engineering.dmi' + typetext = "engineering" + icontext = "eng" + glass_type = /obj/machinery/door/airlock/glass_engineering + airlock_type = /obj/machinery/door/airlock/engineering + anchored = 1 + state = 1 + +/obj/structure/door_assembly/door_assembly_eng/glass + mineral = "glass" + material = "glass" + +/obj/structure/door_assembly/door_assembly_min + name = "mining airlock assembly" + icon = 'icons/obj/doors/airlocks/station/mining.dmi' + typetext = "mining" + icontext = "min" + glass_type = /obj/machinery/door/airlock/glass_mining + airlock_type = /obj/machinery/door/airlock/mining + anchored = 1 + state = 1 + +/obj/structure/door_assembly/door_assembly_min/glass + mineral = "glass" + material = "glass" + +/obj/structure/door_assembly/door_assembly_atmo + name = "atmospherics airlock assembly" + icon = 'icons/obj/doors/airlocks/station/atmos.dmi' + typetext = "atmos" + icontext = "atmo" + glass_type = /obj/machinery/door/airlock/glass_atmos + airlock_type = /obj/machinery/door/airlock/atmos + anchored = 1 + state = 1 + +/obj/structure/door_assembly/door_assembly_atmo/glass + mineral = "glass" + material = "glass" + +/obj/structure/door_assembly/door_assembly_research + name = "research airlock assembly" + icon = 'icons/obj/doors/airlocks/station/research.dmi' + typetext = "research" + icontext = "res" + glass_type = /obj/machinery/door/airlock/glass_research + airlock_type = /obj/machinery/door/airlock/research + anchored = 1 + state = 1 + +/obj/structure/door_assembly/door_assembly_research/glass + mineral = "glass" + material = "glass" + +/obj/structure/door_assembly/door_assembly_science + name = "science airlock assembly" + icon = 'icons/obj/doors/airlocks/station/science.dmi' + typetext = "science" + icontext = "sci" + glass_type = /obj/machinery/door/airlock/glass_science + airlock_type = /obj/machinery/door/airlock/science + anchored = 1 + state = 1 + +/obj/structure/door_assembly/door_assembly_science/glass + mineral = "glass" + material = "glass" + +/obj/structure/door_assembly/door_assembly_med + name = "medical airlock assembly" + icon = 'icons/obj/doors/airlocks/station/medical.dmi' + typetext = "medical" + icontext = "med" + glass_type = /obj/machinery/door/airlock/glass_medical + airlock_type = /obj/machinery/door/airlock/medical + anchored = 1 + state = 1 + +/obj/structure/door_assembly/door_assembly_med/glass + mineral = "glass" + material = "glass" + +/obj/structure/door_assembly/door_assembly_mai + name = "maintenance airlock assembly" + icon = 'icons/obj/doors/airlocks/station/maintenance.dmi' + typetext = "maintenance" + icontext = "mai" + glass_type = /obj/machinery/door/airlock/glass_maintenance + airlock_type = /obj/machinery/door/airlock/maintenance + anchored = 1 + state = 1 + +/obj/structure/door_assembly/door_assembly_mai/glass + mineral = "glass" + material = "glass" + +/obj/structure/door_assembly/door_assembly_ext + name = "external airlock assembly" + icon = 'icons/obj/doors/airlocks/external/external.dmi' + overlays_file = 'icons/obj/doors/airlocks/external/overlays.dmi' + typetext = "external" + icontext = "ext" + glass_type = /obj/machinery/door/airlock/glass_external + airlock_type = /obj/machinery/door/airlock/external + anchored = 1 + state = 1 + +/obj/structure/door_assembly/door_assembly_ext/glass + mineral = "glass" + material = "glass" + +/obj/structure/door_assembly/door_assembly_fre + name = "freezer airlock assembly" + icon = 'icons/obj/doors/airlocks/station/freezer.dmi' + typetext = "freezer" + icontext = "fre" + airlock_type = /obj/machinery/door/airlock/freezer + anchored = 1 + state = 1 + +/obj/structure/door_assembly/door_assembly_hatch + name = "airtight hatch assembly" + icon = 'icons/obj/doors/airlocks/hatch/centcom.dmi' + overlays_file = 'icons/obj/doors/airlocks/hatch/overlays.dmi' + typetext = "hatch" + icontext = "hatch" + airlock_type = /obj/machinery/door/airlock/hatch + anchored = 1 + state = 1 + +/obj/structure/door_assembly/door_assembly_mhatch + name = "maintenance hatch assembly" + icon = 'icons/obj/doors/airlocks/hatch/maintenance.dmi' + overlays_file = 'icons/obj/doors/airlocks/hatch/overlays.dmi' + typetext = "maintenance_hatch" + icontext = "mhatch" + airlock_type = /obj/machinery/door/airlock/maintenance_hatch + anchored = 1 + state = 1 + +/obj/structure/door_assembly/door_assembly_glass + name = "glass airlock assembly" + icon = 'icons/obj/doors/airlocks/station2/glass.dmi' + overlays_file = 'icons/obj/doors/airlocks/station2/overlays.dmi' + airlock_type = /obj/machinery/door/airlock/glass + anchored = 1 + state = 1 + mineral = "glass" + material = "glass" + +/obj/structure/door_assembly/door_assembly_gold + name = "gold airlock assembly" + icon = 'icons/obj/doors/airlocks/station/gold.dmi' + airlock_type = /obj/machinery/door/airlock/gold + anchored = 1 + state = 1 + mineral = "gold" + +/obj/structure/door_assembly/door_assembly_silver + name = "silver airlock assembly" + icon = 'icons/obj/doors/airlocks/station/silver.dmi' + airlock_type = /obj/machinery/door/airlock/silver + anchored = 1 + state = 1 + mineral = "silver" + +/obj/structure/door_assembly/door_assembly_diamond + name = "diamond airlock assembly" + icon = 'icons/obj/doors/airlocks/station/diamond.dmi' + airlock_type = /obj/machinery/door/airlock/diamond + anchored = 1 + state = 1 + mineral = "diamond" + +/obj/structure/door_assembly/door_assembly_uranium + name = "uranium airlock assembly" + icon = 'icons/obj/doors/airlocks/station/uranium.dmi' + airlock_type = /obj/machinery/door/airlock/uranium + anchored = 1 + state = 1 + mineral = "uranium" + +/obj/structure/door_assembly/door_assembly_plasma + name = "plasma airlock assembly" + icon = 'icons/obj/doors/airlocks/station/plasma.dmi' + airlock_type = /obj/machinery/door/airlock/plasma + anchored = 1 + state = 1 + mineral = "plasma" + +/obj/structure/door_assembly/door_assembly_clown + name = "bananium airlock assembly" + desc = "Honk" + icon = 'icons/obj/doors/airlocks/station/bananium.dmi' + airlock_type = /obj/machinery/door/airlock/clown + anchored = 1 + state = 1 + mineral = "bananium" + +/obj/structure/door_assembly/door_assembly_sandstone + name = "sandstone airlock assembly" + icon = 'icons/obj/doors/airlocks/station/sandstone.dmi' + airlock_type = /obj/machinery/door/airlock/sandstone + anchored = 1 + state = 1 + mineral = "sandstone" + +/obj/structure/door_assembly/door_assembly_highsecurity // Borrowing this until WJohnston makes sprites for the assembly + name = "high security airlock assembly" + icon = 'icons/obj/doors/airlocks/highsec/highsec.dmi' + overlays_file = 'icons/obj/doors/airlocks/highsec/overlays.dmi' + typetext = "highsecurity" + icontext = "highsec" + airlock_type = /obj/machinery/door/airlock/highsecurity + anchored = 1 + state = 1 + +/obj/structure/door_assembly/door_assembly_vault + name = "vault door assembly" + icon = 'icons/obj/doors/airlocks/vault/vault.dmi' + overlays_file = 'icons/obj/doors/airlocks/vault/overlays.dmi' + typetext = "vault" + icontext = "vault" + airlock_type = /obj/machinery/door/airlock/vault + anchored = 1 + state = 1 + +/obj/structure/door_assembly/door_assembly_shuttle + name = "shuttle airlock assembly" + icon = 'icons/obj/doors/airlocks/shuttle/shuttle.dmi' + overlays_file = 'icons/obj/doors/airlocks/shuttle/overlays.dmi' + typetext = "shuttle" + icontext = "shuttle" + airlock_type = /obj/machinery/door/airlock/shuttle + anchored = 1 + state = 1 + +/obj/structure/door_assembly/door_assembly_cult + name = "cult airlock assembly" + icon = 'icons/obj/doors/airlocks/cult/runed/cult.dmi' + overlays_file = 'icons/obj/doors/airlocks/cult/runed/overlays.dmi' + typetext = "cult" + icontext = "cult" + airlock_type = /obj/machinery/door/airlock/cult + anchored = 1 + state = 1 + +/obj/structure/door_assembly/door_assembly_cult/glass + mineral = "glass" + material = "glass" + +/obj/structure/door_assembly/door_assembly_cult/unruned + icon = 'icons/obj/doors/airlocks/cult/unruned/cult.dmi' + overlays_file = 'icons/obj/doors/airlocks/cult/unruned/overlays.dmi' + +/obj/structure/door_assembly/door_assembly_cult/unruned/glass + mineral = "glass" + material = "glass" + +/obj/structure/door_assembly/door_assembly_wood + name = "wooden airlock assembly" + icon = 'icons/obj/doors/airlocks/station/wood.dmi' + airlock_type = /obj/machinery/door/airlock/wood + anchored = 1 + state = 1 + mineral = "wood" + +/obj/structure/door_assembly/door_assembly_viro + name = "virology airlock assembly" + icon = 'icons/obj/doors/airlocks/station/virology.dmi' + typetext = "virology" + icontext = "viro" + glass_type = /obj/machinery/door/airlock/glass_virology + airlock_type = /obj/machinery/door/airlock/virology + anchored = 1 + state = 1 + +/obj/structure/door_assembly/door_assembly_viro/glass + mineral = "glass" + material = "glass" + +/obj/structure/door_assembly/door_assembly_centcom + typetext = "centcom" + icon = 'icons/obj/doors/airlocks/centcom/centcom.dmi' + overlays_file = 'icons/obj/doors/airlocks/centcom/overlays.dmi' + icontext = "ele" + airlock_type = /obj/machinery/door/airlock/centcom + anchored = 1 + state = 1 + +/obj/structure/door_assembly/attackby(obj/item/W, mob/user, params) + if(istype(W, /obj/item/weapon/pen)) + var/t = stripped_input(user, "Enter the name for the door.", src.name, src.created_name,MAX_NAME_LEN) + if(!t) + return + if(!in_range(src, usr) && src.loc != usr) + return + created_name = t + + else if(istype(W, /obj/item/weapon/airlock_painter)) // |- Ricotez + //INFORMATION ABOUT ADDING A NEW AIRLOCK TO THE PAINT LIST: + //If your airlock has a regular version, add it to the list with regular versions. + //If your airlock has a glass version, add it to the list with glass versions. + //Don't forget to also set has_solid and has_glass to the proper value. + //Do NOT add your airlock to a list if it does not have a version for that list, + // or you will get broken icons. + var/obj/item/weapon/airlock_painter/WT = W + if(WT.can_use(user)) + var/icontype + var/optionlist + if(mineral && mineral == "glass") + //These airlocks have a glass version. + optionlist = list("Public", "Public2", "Engineering", "Atmospherics", "Security", "Command", "Medical", "Research", "Science", "Mining") + else + //These airlocks have a regular version. + optionlist = list("Public", "Engineering", "Atmospherics", "Security", "Command", "Medical", "Research", "Science", "Mining", "Maintenance", "External", "High Security") + + + icontype = input(user, "Please select a paintjob for this airlock.") in optionlist + if((!in_range(src, usr) && src.loc != usr) || !WT.use(user)) + return + var/has_solid = 0 + var/has_glass = 0 + switch(icontype) + if("Public") + icon = 'icons/obj/doors/airlocks/station/public.dmi' + overlays_file = 'icons/obj/doors/airlocks/station/overlays.dmi' + typetext = "" + icontext = "" + has_solid = 1 + has_glass = 1 + if("Public2") + icon = 'icons/obj/doors/airlocks/station2/glass.dmi' + overlays_file = 'icons/obj/doors/airlocks/station2/overlays.dmi' + typetext = "" + icontext = "" + has_solid = 1 + has_glass = 1 + if("Engineering") + icon = 'icons/obj/doors/airlocks/station/engineering.dmi' + overlays_file = 'icons/obj/doors/airlocks/station/overlays.dmi' + typetext = "engineering" + icontext = "eng" + has_solid = 1 + has_glass = 1 + if("Atmospherics") + icon = 'icons/obj/doors/airlocks/station/atmos.dmi' + overlays_file = 'icons/obj/doors/airlocks/station/overlays.dmi' + typetext = "atmos" + icontext = "atmo" + has_solid = 1 + has_glass = 1 + if("Security") + icon = 'icons/obj/doors/airlocks/station/security.dmi' + overlays_file = 'icons/obj/doors/airlocks/station/overlays.dmi' + typetext = "security" + icontext = "sec" + has_solid = 1 + has_glass = 1 + if("Command") + icon = 'icons/obj/doors/airlocks/station/command.dmi' + overlays_file = 'icons/obj/doors/airlocks/station/overlays.dmi' + typetext = "command" + icontext = "com" + has_solid = 1 + has_glass = 1 + if("Medical") + icon = 'icons/obj/doors/airlocks/station/medical.dmi' + overlays_file = 'icons/obj/doors/airlocks/station/overlays.dmi' + typetext = "medical" + icontext = "med" + has_solid = 1 + has_glass = 1 + if("Research") + icon = 'icons/obj/doors/airlocks/station/research.dmi' + overlays_file = 'icons/obj/doors/airlocks/station/overlays.dmi' + typetext = "research" + icontext = "res" + has_solid = 1 + has_glass = 1 + if("Science") + icon = 'icons/obj/doors/airlocks/station/science.dmi' + overlays_file = 'icons/obj/doors/airlocks/station/overlays.dmi' + typetext = "research" + icontext = "res" + has_solid = 1 + has_glass = 1 + if("Mining") + icon = 'icons/obj/doors/airlocks/station/mining.dmi' + overlays_file = 'icons/obj/doors/airlocks/station/overlays.dmi' + typetext = "mining" + icontext = "min" + has_solid = 1 + has_glass = 1 + if("Maintenance") + icon = 'icons/obj/doors/airlocks/station/maintenance.dmi' + overlays_file = 'icons/obj/doors/airlocks/station/overlays.dmi' + typetext = "maintenance" + icontext = "mai" + has_solid = 1 + has_glass = 0 + if("External") + icon = 'icons/obj/doors/airlocks/external/external.dmi' + overlays_file = 'icons/obj/doors/airlocks/external/overlays.dmi' + typetext = "external" + icontext = "ext" + has_solid = 1 + has_glass = 0 + if("High Security") + icon = 'icons/obj/doors/airlocks/highsec/highsec.dmi' + overlays_file = 'icons/obj/doors/airlocks/highsec/overlays.dmi' + typetext = "highsecurity" + icontext = "highsec" + has_solid = 1 + has_glass = 0 + if(has_solid) + airlock_type = text2path("/obj/machinery/door/airlock/[typetext]") + else + airlock_type = /obj/machinery/door/airlock + + if(has_glass) + glass_type = text2path("/obj/machinery/door/airlock/glass_[typetext]") + else + glass_type = /obj/machinery/door/airlock/glass + + if(mineral && mineral != "glass") + mineral = null //I know this is stupid, but until we change glass to a boolean it's how this code works. + user << "You change the paintjob on the airlock assembly." + + else if(istype(W, /obj/item/weapon/weldingtool) && !anchored ) + var/obj/item/weapon/weldingtool/WT = W + if(WT.remove_fuel(0,user)) + user.visible_message("[user] disassembles the airlock assembly.", \ + "You start to disassemble the airlock assembly...") + playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1) + + if(do_after(user, 40/W.toolspeed, target = src)) + if( !WT.isOn() ) + return + user << "You disassemble the airlock assembly." + deconstruct(TRUE) + + else if(istype(W, /obj/item/weapon/wrench)) + if(!anchored ) + var/door_check = 1 + for(var/obj/machinery/door/D in loc) + if(!D.sub_door) + door_check = 0 + break + + if(door_check) + playsound(src.loc, W.usesound, 100, 1) + user.visible_message("[user] secures the airlock assembly to the floor.", \ + "You start to secure the airlock assembly to the floor...", \ + "You hear wrenching.") + + if(do_after(user, 40/W.toolspeed, target = src)) + if( src.anchored ) + return + user << "You secure the airlock assembly." + src.name = "secured airlock assembly" + src.anchored = 1 + else + user << "There is another door here!" + + else + playsound(src.loc, W.usesound, 100, 1) + user.visible_message("[user] unsecures the airlock assembly from the floor.", \ + "You start to unsecure the airlock assembly from the floor...", \ + "You hear wrenching.") + if(do_after(user, 40/W.toolspeed, target = src)) + if(!anchored ) + return + user << "You unsecure the airlock assembly." + name = "airlock assembly" + anchored = 0 + + else if(istype(W, /obj/item/stack/cable_coil) && state == 0 && anchored ) + var/obj/item/stack/cable_coil/C = W + if (C.get_amount() < 1) + user << "You need one length of cable to wire the airlock assembly!" + return + user.visible_message("[user] wires the airlock assembly.", \ + "You start to wire the airlock assembly...") + if(do_after(user, 40, target = src)) + if(C.get_amount() < 1 || state != 0) return + C.use(1) + src.state = 1 + user << "You wire the airlock assembly." + src.name = "wired airlock assembly" + + else if(istype(W, /obj/item/weapon/wirecutters) && state == 1 ) + playsound(src.loc, W.usesound, 100, 1) + user.visible_message("[user] cuts the wires from the airlock assembly.", \ + "You start to cut the wires from the airlock assembly...") + + if(do_after(user, 40/W.toolspeed, target = src)) + if( src.state != 1 ) + return + user << "You cut the wires from the airlock assembly." + new/obj/item/stack/cable_coil(get_turf(user), 1) + src.state = 0 + src.name = "secured airlock assembly" + + else if(istype(W, /obj/item/weapon/electronics/airlock) && state == 1 ) + playsound(src.loc, W.usesound, 100, 1) + user.visible_message("[user] installs the electronics into the airlock assembly.", \ + "You start to install electronics into the airlock assembly...") + if(do_after(user, 40, target = src)) + if( src.state != 1 ) + return + if(!user.drop_item()) + return + + W.loc = src + user << "You install the airlock electronics." + src.state = 2 + src.name = "near finished airlock assembly" + src.electronics = W + + + else if(istype(W, /obj/item/weapon/crowbar) && state == 2 ) + playsound(src.loc, W.usesound, 100, 1) + user.visible_message("[user] removes the electronics from the airlock assembly.", \ + "You start to remove electronics from the airlock assembly...") + + if(do_after(user, 40/W.toolspeed, target = src)) + if( src.state != 2 ) + return + user << "You remove the airlock electronics." + src.state = 1 + src.name = "wired airlock assembly" + var/obj/item/weapon/electronics/airlock/ae + if (!electronics) + ae = new/obj/item/weapon/electronics/airlock( src.loc ) + else + ae = electronics + electronics = null + ae.loc = src.loc + else if(istype(W, /obj/item/stack/sheet) && !mineral) + var/obj/item/stack/sheet/G = W + if(G) + if(G.get_amount() >= 1) + if(istype(G, /obj/item/stack/sheet/rglass) || istype(G, /obj/item/stack/sheet/glass)) + playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1) + user.visible_message("[user] adds [G.name] to the airlock assembly.", \ + "You start to install [G.name] into the airlock assembly...") + if(do_after(user, 40, target = src)) + if(G.get_amount() < 1 || mineral) return + if (G.type == /obj/item/stack/sheet/rglass) + user << "You install reinforced glass windows into the airlock assembly." + heat_proof_finished = 1 //reinforced glass makes the airlock heat-proof + name = "near finished heat-proofed window airlock assembly" + else + user << "You install regular glass windows into the airlock assembly." + name = "near finished window airlock assembly" + G.use(1) + mineral = "glass" + material = "glass" + //This list contains the airlock paintjobs that have a glass version: + if(icontext in list("eng", "atmo", "sec", "com", "med", "res", "min")) + src.airlock_type = text2path("/obj/machinery/door/airlock/[typetext]") + src.glass_type = text2path("/obj/machinery/door/airlock/glass_[typetext]") + else + //This airlock is default or does not have a glass version, so we revert to the default glass airlock. |- Ricotez + airlock_type = /obj/machinery/door/airlock + glass_type = /obj/machinery/door/airlock/glass + typetext = "" + icontext = "" + else if(istype(G, /obj/item/stack/sheet/mineral)) + var/M = G.sheettype + if(G.get_amount() >= 2) + playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1) + user.visible_message("[user] adds [G.name] to the airlock assembly.", \ + "You start to install [G.name] into the airlock assembly...") + if(do_after(user, 40, target = src)) + if(G.get_amount() < 2 || mineral) return + user << "You install [M] plating into the airlock assembly." + G.use(2) + mineral = "[M]" + name = "near finished [M] airlock assembly" + airlock_type = text2path ("/obj/machinery/door/airlock/[M]") + glass_type = /obj/machinery/door/airlock/glass + + else if(istype(W, /obj/item/weapon/screwdriver) && state == 2 ) + playsound(src.loc, W.usesound, 100, 1) + user.visible_message("[user] finishes the airlock.", \ + "You start finishing the airlock...") + + if(do_after(user, 40/W.toolspeed, target = src)) + if(src.loc && state == 2) + user << "You finish the airlock." + var/obj/machinery/door/airlock/door + if(mineral == "glass") + door = new src.glass_type( src.loc ) + else + door = new src.airlock_type( src.loc ) + //door.req_access = src.req_access + door.electronics = src.electronics + door.heat_proof = src.heat_proof_finished + if(src.electronics.one_access) + door.req_one_access = src.electronics.accesses + else + door.req_access = src.electronics.accesses + if(created_name) + door.name = created_name + src.electronics.loc = door + qdel(src) + else + return ..() + update_icon() + +/obj/structure/door_assembly/update_icon() + cut_overlays() + if(!material) + add_overlay(get_airlock_overlay("fill_construction", icon)) + else + add_overlay(get_airlock_overlay("[material]_construction", overlays_file)) + add_overlay(get_airlock_overlay("panel_c[state+1]", overlays_file)) + + +/obj/structure/door_assembly/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + var/turf/T = get_turf(src) + var/metal_amt = 4 + if(!disassembled) + metal_amt = rand(2,4) + new /obj/item/stack/sheet/metal(T, metal_amt) + if(mineral) + if (mineral == "glass") + if(disassembled) + if (heat_proof_finished) + new /obj/item/stack/sheet/rglass(T) + else + new /obj/item/stack/sheet/glass(T) + else + new /obj/item/weapon/shard(T) + else + var/obj/item/stack/sheet/mineral/mineral_path = text2path("/obj/item/stack/sheet/mineral/[mineral]") + new mineral_path(T, 2) + qdel(src) diff --git a/code/game/objects/structures/dresser.dm b/code/game/objects/structures/dresser.dm new file mode 100644 index 0000000..2eaa8e6 --- /dev/null +++ b/code/game/objects/structures/dresser.dm @@ -0,0 +1,35 @@ +/obj/structure/dresser + name = "dresser" + desc = "A nicely-crafted wooden dresser. It's filled with lots of undies." + icon = 'icons/obj/stationobjs.dmi' + icon_state = "dresser" + density = 1 + anchored = 1 + +/obj/structure/dresser/attack_hand(mob/user) + if(!Adjacent(user))//no tele-grooming + return + if(ishuman(user)) + var/mob/living/carbon/human/H = user + + var/choice = input(user, "Underwear, Undershirt, or Socks?", "Changing") as null|anything in list("Underwear","Undershirt","Socks") + + if(!Adjacent(user)) + return + switch(choice) + if("Underwear") + var/new_undies = input(user, "Select your underwear", "Changing") as null|anything in underwear_list + if(new_undies) + H.underwear = new_undies + + if("Undershirt") + var/new_undershirt = input(user, "Select your undershirt", "Changing") as null|anything in undershirt_list + if(new_undershirt) + H.undershirt = new_undershirt + if("Socks") + var/new_socks = input(user, "Select your socks", "Changing") as null|anything in socks_list + if(new_socks) + H.socks= new_socks + + add_fingerprint(H) + H.update_body() \ No newline at end of file diff --git a/code/game/objects/structures/electricchair.dm b/code/game/objects/structures/electricchair.dm new file mode 100644 index 0000000..5ddca10 --- /dev/null +++ b/code/game/objects/structures/electricchair.dm @@ -0,0 +1,47 @@ +/obj/structure/chair/e_chair + name = "electric chair" + desc = "Looks absolutely SHOCKING!\nAlt-click to rotate it clockwise." + icon_state = "echair0" + var/obj/item/assembly/shock_kit/part = null + var/last_time = 1 + item_chair = null + +/obj/structure/chair/e_chair/New() + ..() + add_overlay(image('icons/obj/chairs.dmi', src, "echair_over", MOB_LAYER + 1)) + +/obj/structure/chair/e_chair/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/weapon/wrench)) + var/obj/structure/chair/C = new /obj/structure/chair(loc) + playsound(loc, 'sound/items/Ratchet.ogg', 50, 1) + C.setDir(dir) + part.loc = loc + part.master = null + part = null + qdel(src) + +/obj/structure/chair/e_chair/proc/shock() + if(last_time + 50 > world.time) + return + last_time = world.time + + // special power handling + var/area/A = get_area(src) + if(!isarea(A)) + return + if(!A.powered(EQUIP)) + return + A.use_power(EQUIP, 5000) + + flick("echair_shock", src) + var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread + s.set_up(12, 1, src) + s.start() + if(has_buckled_mobs()) + for(var/m in buckled_mobs) + var/mob/living/buckled_mob = m + buckled_mob.electrocute_act(85, src, 1) + buckled_mob << "You feel a deep shock course through your body!" + spawn(1) + buckled_mob.electrocute_act(85, src, 1) + visible_message("The electric chair went off!", "You hear a deep sharp shock!") \ No newline at end of file diff --git a/code/game/objects/structures/extinguisher.dm b/code/game/objects/structures/extinguisher.dm new file mode 100644 index 0000000..22e4a8b --- /dev/null +++ b/code/game/objects/structures/extinguisher.dm @@ -0,0 +1,149 @@ +/obj/structure/extinguisher_cabinet + name = "extinguisher cabinet" + desc = "A small wall mounted cabinet designed to hold a fire extinguisher." + icon = 'icons/obj/wallmounts.dmi' + icon_state = "extinguisher_closed" + anchored = 1 + density = 0 + obj_integrity = 200 + max_integrity = 200 + integrity_failure = 50 + var/obj/item/weapon/extinguisher/stored_extinguisher + var/opened = 0 + +/obj/structure/extinguisher_cabinet/New(loc, ndir, building) + ..() + if(building) + setDir(ndir) + pixel_x = (dir & 3)? 0 : (dir == 4 ? -27 : 27) + pixel_y = (dir & 3)? (dir ==1 ? -30 : 30) : 0 + opened = 1 + icon_state = "extinguisher_empty" + else + stored_extinguisher = new /obj/item/weapon/extinguisher(src) + +/obj/structure/extinguisher_cabinet/Destroy() + if(stored_extinguisher) + qdel(stored_extinguisher) + stored_extinguisher = null + return ..() + +/obj/structure/extinguisher_cabinet/contents_explosion(severity, target) + if(stored_extinguisher) + stored_extinguisher.ex_act(severity, target) + +/obj/structure/extinguisher_cabinet/handle_atom_del(atom/A) + if(A == stored_extinguisher) + stored_extinguisher = null + update_icon() + +/obj/structure/extinguisher_cabinet/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/wrench) && !stored_extinguisher) + user << "You start unsecuring [name]..." + playsound(loc, 'sound/items/Ratchet.ogg', 50, 1) + if(do_after(user, 60/I.toolspeed, target = src)) + playsound(loc, 'sound/items/Deconstruct.ogg', 50, 1) + user << "You unsecure [name]." + deconstruct(TRUE) + return + + if(iscyborg(user) || isalien(user)) + return + if(istype(I, /obj/item/weapon/extinguisher)) + if(!stored_extinguisher && opened) + if(!user.drop_item()) + return + contents += I + stored_extinguisher = I + user << "You place [I] in [src]." + update_icon() + else + toggle_cabinet(user) + else if(user.a_intent != "harm") + toggle_cabinet(user) + else + return ..() + + +/obj/structure/extinguisher_cabinet/attack_hand(mob/user) + if(iscyborg(user) || isalien(user)) + return + if(stored_extinguisher) + user.put_in_hands(stored_extinguisher) + user << "You take [stored_extinguisher] from [src]." + stored_extinguisher = null + if(!opened) + opened = 1 + playsound(loc, 'sound/machines/click.ogg', 15, 1, -3) + update_icon() + else + toggle_cabinet(user) + + +/obj/structure/extinguisher_cabinet/attack_tk(mob/user) + if(stored_extinguisher) + stored_extinguisher.forceMove(loc) + user << "You telekinetically remove [stored_extinguisher] from [src]." + stored_extinguisher = null + opened = 1 + playsound(loc, 'sound/machines/click.ogg', 15, 1, -3) + update_icon() + else + toggle_cabinet(user) + + +/obj/structure/extinguisher_cabinet/attack_paw(mob/user) + attack_hand(user) + +/obj/structure/extinguisher_cabinet/AltClick(mob/living/user) + if(user.incapacitated() || !Adjacent(user) || !istype(user)) + return + toggle_cabinet(user) + +/obj/structure/extinguisher_cabinet/proc/toggle_cabinet(mob/user) + if(opened && broken) + user << "[src] is broken open." + else + playsound(loc, 'sound/machines/click.ogg', 15, 1, -3) + opened = !opened + update_icon() + +/obj/structure/extinguisher_cabinet/update_icon() + if(!opened) + icon_state = "extinguisher_closed" + return + if(stored_extinguisher) + if(istype(stored_extinguisher, /obj/item/weapon/extinguisher/mini)) + icon_state = "extinguisher_mini" + else + icon_state = "extinguisher_full" + else + icon_state = "extinguisher_empty" + +/obj/structure/extinguisher_cabinet/obj_break(damage_flag) + if(!broken && !(flags & NODECONSTRUCT)) + broken = 1 + opened = 1 + if(stored_extinguisher) + stored_extinguisher.forceMove(loc) + stored_extinguisher = null + update_icon() + + +/obj/structure/extinguisher_cabinet/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + if(disassembled) + new /obj/item/wallframe/extinguisher_cabinet(loc) + else + new /obj/item/stack/sheet/metal (loc, 2) + if(stored_extinguisher) + stored_extinguisher.forceMove(loc) + stored_extinguisher = null + qdel(src) + +/obj/item/wallframe/extinguisher_cabinet + name = "extinguisher cabinet frame" + desc = "Used for building wall-mounted extinguisher cabinets." + icon = 'icons/obj/apc_repair.dmi' + icon_state = "extinguisher_frame" + result_path = /obj/structure/extinguisher_cabinet diff --git a/code/game/objects/structures/false_walls.dm b/code/game/objects/structures/false_walls.dm new file mode 100644 index 0000000..70585b9 --- /dev/null +++ b/code/game/objects/structures/false_walls.dm @@ -0,0 +1,325 @@ +/* + * False Walls + */ +/obj/structure/falsewall + name = "wall" + desc = "A huge chunk of metal used to separate rooms." + anchored = 1 + icon = 'icons/turf/walls/wall.dmi' + icon_state = "wall" + var/mineral = /obj/item/stack/sheet/metal + var/mineral_amount = 2 + var/walltype = /turf/closed/wall + var/girder_type = /obj/structure/girder/displaced + var/opening = 0 + density = 1 + opacity = 1 + obj_integrity = 100 + max_integrity = 100 + + canSmoothWith = list( + /turf/closed/wall, + /turf/closed/wall/r_wall, + /obj/structure/falsewall, + /obj/structure/falsewall/brass, + /obj/structure/falsewall/reinforced, + /turf/closed/wall/rust, + /turf/closed/wall/r_wall/rust, + /turf/closed/wall/clockwork) + smooth = SMOOTH_TRUE + can_be_unanchored = 0 + +/obj/structure/falsewall/New(loc) + ..() + air_update_turf(1) + +/obj/structure/falsewall/Destroy() + density = 0 + air_update_turf(1) + return ..() + +/obj/structure/falsewall/CanAtmosPass(turf/T) + return !density + +/obj/structure/falsewall/attack_hand(mob/user) + if(opening) + return + + opening = 1 + if(density) + do_the_flick() + sleep(5) + if(!qdeleted(src)) + density = 0 + SetOpacity(0) + update_icon() + else + var/srcturf = get_turf(src) + for(var/mob/living/obstacle in srcturf) //Stop people from using this as a shield + opening = 0 + return + do_the_flick() + density = 1 + sleep(5) + if(!qdeleted(src)) + SetOpacity(1) + update_icon() + air_update_turf(1) + opening = 0 + +/obj/structure/falsewall/proc/do_the_flick() + if(density) + smooth = SMOOTH_FALSE + clear_smooth_overlays() + icon_state = "fwall_opening" + else + icon_state = "fwall_closing" + +/obj/structure/falsewall/update_icon()//Calling icon_update will refresh the smoothwalls if it's closed, otherwise it will make sure the icon is correct if it's open + if(density) + smooth = SMOOTH_TRUE + queue_smooth(src) + icon_state = "wall" + else + icon_state = "fwall_open" + +/obj/structure/falsewall/proc/ChangeToWall(delete = 1) + var/turf/T = get_turf(src) + T.ChangeTurf(walltype) + if(delete) + qdel(src) + return T + +/obj/structure/falsewall/attackby(obj/item/weapon/W, mob/user, params) + if(opening) + user << "You must wait until the door has stopped moving!" + return + + if(istype(W, /obj/item/weapon/screwdriver)) + if(density) + var/turf/T = get_turf(src) + if(T.density) + user << "[src] is blocked!" + return + if(!isfloorturf(T)) + user << "[src] bolts must be tightened on the floor!" + return + user.visible_message("[user] tightens some bolts on the wall.", "You tighten the bolts on the wall.") + ChangeToWall() + else + user << "You can't reach, close it first!" + + else if(istype(W, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/WT = W + if(WT.remove_fuel(0,user)) + dismantle(user, TRUE) + else if(istype(W, /obj/item/weapon/gun/energy/plasmacutter)) + dismantle(user, TRUE) + else if(istype(W, /obj/item/weapon/pickaxe/drill/jackhammer)) + var/obj/item/weapon/pickaxe/drill/jackhammer/D = W + D.playDigSound() + dismantle(user, TRUE) + else + return ..() + +/obj/structure/falsewall/proc/dismantle(mob/user, disassembled = TRUE) + user.visible_message("[user] dismantles the false wall.", "You dismantle the false wall.") + playsound(src, 'sound/items/Welder.ogg', 100, 1) + deconstruct(disassembled) + +/obj/structure/falsewall/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + if(disassembled) + new girder_type(loc) + if(mineral_amount) + for(var/i in 1 to mineral_amount) + new mineral(loc) + qdel(src) + +/obj/structure/falsewall/storage_contents_dump_act(obj/item/weapon/storage/src_object, mob/user) + return 0 + +/obj/structure/falsewall/examine_status() //So you can't detect falsewalls by examine. + return null + +/* + * False R-Walls + */ + +/obj/structure/falsewall/reinforced + name = "reinforced wall" + desc = "A huge chunk of reinforced metal used to separate rooms." + icon = 'icons/turf/walls/reinforced_wall.dmi' + icon_state = "r_wall" + walltype = /turf/closed/wall/r_wall + mineral = /obj/item/stack/sheet/plasteel + +/* + * Uranium Falsewalls + */ + +/obj/structure/falsewall/uranium + name = "uranium wall" + desc = "A wall with uranium plating. This is probably a bad idea." + icon = 'icons/turf/walls/uranium_wall.dmi' + icon_state = "uranium" + mineral = /obj/item/stack/sheet/mineral/uranium + walltype = /turf/closed/wall/mineral/uranium + var/active = null + var/last_event = 0 + canSmoothWith = list(/obj/structure/falsewall/uranium, /turf/closed/wall/mineral/uranium) + +/obj/structure/falsewall/uranium/attackby(obj/item/weapon/W, mob/user, params) + radiate() + return ..() + +/obj/structure/falsewall/uranium/attack_hand(mob/user) + radiate() + ..() + +/obj/structure/falsewall/uranium/proc/radiate() + if(!active) + if(world.time > last_event+15) + active = 1 + radiation_pulse(get_turf(src), 0, 3, 15, 1) + for(var/turf/closed/wall/mineral/uranium/T in orange(1,src)) + T.radiate() + last_event = world.time + active = null + return + return +/* + * Other misc falsewall types + */ + +/obj/structure/falsewall/gold + name = "gold wall" + desc = "A wall with gold plating. Swag!" + icon = 'icons/turf/walls/gold_wall.dmi' + icon_state = "gold" + mineral = /obj/item/stack/sheet/mineral/gold + walltype = /turf/closed/wall/mineral/gold + canSmoothWith = list(/obj/structure/falsewall/gold, /turf/closed/wall/mineral/gold) + +/obj/structure/falsewall/silver + name = "silver wall" + desc = "A wall with silver plating. Shiny." + icon = 'icons/turf/walls/silver_wall.dmi' + icon_state = "silver" + mineral = /obj/item/stack/sheet/mineral/silver + walltype = /turf/closed/wall/mineral/silver + canSmoothWith = list(/obj/structure/falsewall/silver, /turf/closed/wall/mineral/silver) + +/obj/structure/falsewall/diamond + name = "diamond wall" + desc = "A wall with diamond plating. You monster." + icon = 'icons/turf/walls/diamond_wall.dmi' + icon_state = "diamond" + mineral = /obj/item/stack/sheet/mineral/diamond + walltype = /turf/closed/wall/mineral/diamond + canSmoothWith = list(/obj/structure/falsewall/diamond, /turf/closed/wall/mineral/diamond) + obj_integrity = 800 + max_integrity = 800 + +/obj/structure/falsewall/plasma + name = "plasma wall" + desc = "A wall with plasma plating. This is definitely a bad idea." + icon = 'icons/turf/walls/plasma_wall.dmi' + icon_state = "plasma" + mineral = /obj/item/stack/sheet/mineral/plasma + walltype = /turf/closed/wall/mineral/plasma + canSmoothWith = list(/obj/structure/falsewall/plasma, /turf/closed/wall/mineral/plasma) + +/obj/structure/falsewall/plasma/attackby(obj/item/weapon/W, mob/user, params) + if(W.is_hot() > 300) + message_admins("Plasma falsewall ignited by [key_name_admin(user)](?) (FLW) in ([x],[y],[z] - JMP)",0,1) + log_game("Plasma falsewall ignited by [key_name(user)] in ([x],[y],[z])") + burnbabyburn() + else + return ..() + +/obj/structure/falsewall/plasma/proc/burnbabyburn(user) + playsound(src, 'sound/items/Welder.ogg', 100, 1) + atmos_spawn_air("plasma=400;TEMP=1000") + new /obj/structure/girder/displaced(loc) + qdel(src) + +/obj/structure/falsewall/plasma/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) + if(exposed_temperature > 300) + burnbabyburn() + +/obj/structure/falsewall/clown + name = "bananium wall" + desc = "A wall with bananium plating. Honk!" + icon = 'icons/turf/walls/bananium_wall.dmi' + icon_state = "bananium" + mineral = /obj/item/stack/sheet/mineral/bananium + walltype = /turf/closed/wall/mineral/clown + canSmoothWith = list(/obj/structure/falsewall/clown, /turf/closed/wall/mineral/clown) + + +/obj/structure/falsewall/sandstone + name = "sandstone wall" + desc = "A wall with sandstone plating. Rough." + icon = 'icons/turf/walls/sandstone_wall.dmi' + icon_state = "sandstone" + mineral = /obj/item/stack/sheet/mineral/sandstone + walltype = /turf/closed/wall/mineral/sandstone + canSmoothWith = list(/obj/structure/falsewall/sandstone, /turf/closed/wall/mineral/sandstone) + +/obj/structure/falsewall/wood + name = "wooden wall" + desc = "A wall with wooden plating. Stiff." + icon = 'icons/turf/walls/wood_wall.dmi' + icon_state = "wood" + mineral = /obj/item/stack/sheet/mineral/wood + walltype = /turf/closed/wall/mineral/wood + canSmoothWith = list(/obj/structure/falsewall/wood, /turf/closed/wall/mineral/wood) + +/obj/structure/falsewall/iron + name = "rough metal wall" + desc = "A wall with rough metal plating." + icon = 'icons/turf/walls/iron_wall.dmi' + icon_state = "iron" + mineral = /obj/item/stack/rods + walltype = /turf/closed/wall/mineral/iron + canSmoothWith = list(/obj/structure/falsewall/iron, /turf/closed/wall/mineral/iron) + +/obj/structure/falsewall/abductor + name = "alien wall" + desc = "A wall with alien alloy plating." + icon = 'icons/turf/walls/abductor_wall.dmi' + icon_state = "abductor" + mineral = /obj/item/stack/sheet/mineral/abductor + walltype = /turf/closed/wall/mineral/abductor + canSmoothWith = list(/obj/structure/falsewall/abductor, /turf/closed/wall/mineral/abductor) + +/obj/structure/falsewall/titanium + name = "wall" + desc = "A light-weight titanium wall used in shuttles." + icon = 'icons/turf/walls/shuttle_wall.dmi' + icon_state = "shuttle" + mineral = /obj/item/stack/sheet/mineral/titanium + walltype = /turf/closed/wall/mineral/titanium + smooth = SMOOTH_MORE + canSmoothWith = list(/turf/closed/wall/mineral/titanium, /obj/machinery/door/airlock/shuttle, /obj/machinery/door/airlock/, /turf/closed/wall/shuttle, /obj/structure/window/shuttle, /obj/structure/shuttle/engine, /obj/structure/shuttle/engine/heater, ) + +/obj/structure/falsewall/plastitanium + name = "wall" + desc = "An evil wall of plasma and titanium." + icon = 'icons/turf/shuttle.dmi' + icon_state = "wall3" + mineral = /obj/item/stack/sheet/mineral/plastitanium + walltype = /turf/closed/wall/mineral/plastitanium + smooth = SMOOTH_FALSE + +/obj/structure/falsewall/brass + name = "clockwork wall" + desc = "A huge chunk of warm metal. The clanging of machinery emanates from within." + icon = 'icons/turf/walls/clockwork_wall.dmi' + icon_state = "clockwork_wall" + resistance_flags = FIRE_PROOF | ACID_PROOF + mineral_amount = 1 + girder_type = /obj/structure/destructible/clockwork/wall_gear/displaced + walltype = /turf/closed/wall/clockwork + mineral = /obj/item/stack/sheet/brass diff --git a/code/game/objects/structures/fireaxe.dm b/code/game/objects/structures/fireaxe.dm new file mode 100644 index 0000000..0dfe105 --- /dev/null +++ b/code/game/objects/structures/fireaxe.dm @@ -0,0 +1,177 @@ +/obj/structure/fireaxecabinet + name = "fire axe cabinet" + desc = "There is a small label that reads \"For Emergency use only\" along with details for safe use of the axe. As if." + var/obj/item/weapon/twohanded/fireaxe/fireaxe = new/obj/item/weapon/twohanded/fireaxe + icon = 'icons/obj/wallmounts.dmi' + icon_state = "fireaxe" + anchored = 1 + density = 0 + armor = list(melee = 50, bullet = 20, laser = 0, energy = 100, bomb = 10, bio = 100, rad = 100, fire = 90, acid = 50) + var/locked = 1 + var/open = 0 + obj_integrity = 150 + max_integrity = 150 + integrity_failure = 50 + +/obj/structure/fireaxecabinet/New() + ..() + update_icon() + +/obj/structure/fireaxecabinet/Destroy() + if(fireaxe) + qdel(fireaxe) + fireaxe = null + return ..() + +/obj/structure/fireaxecabinet/attackby(obj/item/I, mob/user, params) + if(iscyborg(user) || istype(I,/obj/item/device/multitool)) + toggle_lock(user) + else if(istype(I, /obj/item/weapon/weldingtool) && user.a_intent == "help" && !broken) + var/obj/item/weapon/weldingtool/WT = I + if(obj_integrity < max_integrity && WT.remove_fuel(2, user)) + user << "You begin repairing [src]." + playsound(loc, 'sound/items/Welder.ogg', 40, 1) + if(do_after(user, 40/I.toolspeed, target = src)) + obj_integrity = max_integrity + playsound(loc, 'sound/items/Welder2.ogg', 50, 1) + update_icon() + user << "You repair [src]." + else + user << "[src] is already in good condition!" + return + else if(istype(I, /obj/item/stack/sheet/glass) && broken) + var/obj/item/stack/sheet/glass/G = I + if(G.get_amount() < 2) + user << "You need two glass sheets to fix [src]!" + return + user << "You start fixing [src]..." + if(do_after(user, 20, target = src) && G.use(2)) + broken = 0 + obj_integrity = max_integrity + update_icon() + else if(open || broken) + if(istype(I, /obj/item/weapon/twohanded/fireaxe) && !fireaxe) + var/obj/item/weapon/twohanded/fireaxe/F = I + if(F.wielded) + user << "Unwield the [F.name] first." + return + if(!user.drop_item()) + return + fireaxe = F + F.forceMove(src) + user << "You place the [F.name] back in the [name]." + update_icon() + return + else if(!broken) + toggle_open() + else + return ..() + +/obj/structure/fireaxecabinet/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) + switch(damage_type) + if(BRUTE) + if(broken) + playsound(loc, 'sound/effects/hit_on_shattered_glass.ogg', 90, 1) + else + playsound(loc, 'sound/effects/Glasshit.ogg', 90, 1) + if(BURN) + playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) + +/obj/structure/fireaxecabinet/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir) + if(open) + return + . = ..() + if(.) + update_icon() + +/obj/structure/fireaxecabinet/obj_break(damage_flag) + if(!broken && !(flags & NODECONSTRUCT)) + update_icon() + broken = TRUE + playsound(src, 'sound/effects/Glassbr3.ogg', 100, 1) + new /obj/item/weapon/shard(loc) + new /obj/item/weapon/shard(loc) + +/obj/structure/fireaxecabinet/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + if(fireaxe && loc) + fireaxe.forceMove(loc) + fireaxe = null + new /obj/item/stack/sheet/metal(loc, 2) + qdel(src) + +/obj/structure/fireaxecabinet/blob_act(obj/structure/blob/B) + if(fireaxe) + fireaxe.forceMove(loc) + fireaxe = null + qdel(src) + +/obj/structure/fireaxecabinet/attack_hand(mob/user) + if(open || broken) + if(fireaxe) + user.put_in_hands(fireaxe) + fireaxe = null + user << "You take the fire axe from the [name]." + src.add_fingerprint(user) + update_icon() + return + if(locked) + user <<" The [name] won't budge!" + return + else + open = !open + update_icon() + return + +/obj/structure/fireaxecabinet/attack_paw(mob/living/user) + attack_hand(user) + +/obj/structure/fireaxecabinet/attack_ai(mob/user) + toggle_lock(user) + return + +/obj/structure/fireaxecabinet/update_icon() + cut_overlays() + if(fireaxe) + add_overlay("axe") + if(!open) + var/hp_percent = obj_integrity/max_integrity * 100 + if(broken) + add_overlay("glass4") + else + switch(hp_percent) + if(-INFINITY to 40) + add_overlay("glass3") + if(40 to 60) + add_overlay("glass2") + if(60 to 80) + add_overlay("glass1") + if(80 to INFINITY) + add_overlay("glass") + if(locked) + add_overlay("locked") + else + add_overlay("unlocked") + else + add_overlay("glass_raised") + +/obj/structure/fireaxecabinet/proc/toggle_lock(mob/user) + user << " Resetting circuitry..." + playsound(src, 'sound/machines/locktoggle.ogg', 50, 1) + if(do_after(user, 20, target = src)) + user << "You [locked ? "disable" : "re-enable"] the locking modules." + locked = !locked + update_icon() + +/obj/structure/fireaxecabinet/verb/toggle_open() + set name = "Open/Close" + set category = "Object" + set src in oview(1) + + if(locked) + usr <<" The [name] won't budge!" + return + else + open = !open + update_icon() + return diff --git a/code/game/objects/structures/fireplace.dm b/code/game/objects/structures/fireplace.dm new file mode 100644 index 0000000..da7fa68 --- /dev/null +++ b/code/game/objects/structures/fireplace.dm @@ -0,0 +1,153 @@ +#define LOG_BURN_TIMER 150 +#define PAPER_BURN_TIMER 5 +#define MAXIMUM_BURN_TIMER 3000 + +/obj/structure/fireplace + name = "fireplace" + desc = "A large stone brick fireplace." + icon = 'icons/obj/fireplace.dmi' + icon_state = "fireplace" + density = FALSE + anchored = TRUE + pixel_x = -16 + resistance_flags = FIRE_PROOF + var/lit = FALSE + + var/fuel_added = 0 + var/flame_expiry_timer + +/obj/structure/fireplace/New() + ..() + START_PROCESSING(SSobj, src) + +/obj/structure/fireplace/Destroy() + STOP_PROCESSING(SSobj, src) + . = ..() + +/obj/structure/fireplace/proc/try_light(obj/item/O, mob/user) + if(lit) + user << "It's already lit!" + return FALSE + if(!fuel_added) + user << "[src] needs some fuel to burn!" + return FALSE + var/msg = O.ignition_effect(src, user) + if(msg) + visible_message(msg) + ignite() + return TRUE + +/obj/structure/fireplace/attackby(obj/item/T, mob/user) + if(istype(T,/obj/item/stack/sheet/mineral/wood)) + var/obj/item/stack/sheet/mineral/wood/wood = T + var/space_remaining = MAXIMUM_BURN_TIMER - burn_time_remaining() + var/space_for_logs = round(space_remaining / LOG_BURN_TIMER) + if(space_for_logs < 1) + user << "You can't fit any more of [T] in \ + [src]!" + return + var/logs_used = min(space_for_logs, wood.amount) + wood.use(logs_used) + adjust_fuel_timer(LOG_BURN_TIMER * logs_used) + user.visible_message("[user] tosses some \ + wood into [src].", "You add \ + some fuel to [src].") + else if(istype(T, /obj/item/weapon/paper_bin)) + var/obj/item/weapon/paper_bin/paper_bin = T + user.visible_message("[user] throws [T] into \ + [src].", "You add [T] to [src].\ + ") + adjust_fuel_timer(PAPER_BURN_TIMER * paper_bin.amount) + qdel(paper_bin) + else if(istype(T, /obj/item/weapon/paper)) + user.visible_message("[user] throws [T] into \ + [src].", "You throw [T] into [src].\ + ") + adjust_fuel_timer(PAPER_BURN_TIMER) + qdel(T) + else if(try_light(T,user)) + return + else + . = ..() + +/obj/structure/fireplace/update_icon() + cut_overlays() + if(lit) + switch(burn_time_remaining()) + if(0 to 500) + add_overlay("fireplace_fire0") + if(500 to 1000) + add_overlay("fireplace_fire1") + if(1000 to 1500) + add_overlay("fireplace_fire2") + if(1500 to 2000) + add_overlay("fireplace_fire3") + if(2000 to MAXIMUM_BURN_TIMER) + add_overlay("fireplace_fire4") + add_overlay("fireplace_glow") + +/obj/structure/fireplace/proc/adjust_light() + if(!lit) + SetLuminosity(0) + return + + switch(burn_time_remaining()) + if(0 to 500) + SetLuminosity(1) + if(500 to 1000) + SetLuminosity(2) + if(1000 to 1500) + SetLuminosity(3) + if(1500 to 2000) + SetLuminosity(4) + if(2000 to MAXIMUM_BURN_TIMER) + SetLuminosity(6) + +/obj/structure/fireplace/process() + if(!lit) + return + if(world.time > flame_expiry_timer) + put_out() + return + + playsound(src, 'sound/effects/comfyfire.ogg',50,0, 0, 1) + var/turf/T = get_turf(src) + T.hotspot_expose(700, 5) + update_icon() + adjust_light() + +/obj/structure/fireplace/extinguish() + if(lit) + var/fuel = burn_time_remaining() + flame_expiry_timer = 0 + put_out() + adjust_fuel_timer(fuel) + . = ..() + +/obj/structure/fireplace/proc/adjust_fuel_timer(amount) + if(lit) + flame_expiry_timer += amount + if(burn_time_remaining() < MAXIMUM_BURN_TIMER) + flame_expiry_timer = world.time + MAXIMUM_BURN_TIMER + else + fuel_added = Clamp(fuel_added + amount, 0, MAXIMUM_BURN_TIMER) + +/obj/structure/fireplace/proc/burn_time_remaining() + if(lit) + return max(0, flame_expiry_timer - world.time) + else + return max(0, fuel_added) + +/obj/structure/fireplace/proc/ignite() + lit = TRUE + desc = "A large stone brick fireplace, warm and cozy." + flame_expiry_timer = world.time + fuel_added + fuel_added = 0 + update_icon() + adjust_light() + +/obj/structure/fireplace/proc/put_out() + lit = FALSE + update_icon() + adjust_light() + desc = initial(desc) diff --git a/code/game/objects/structures/flora.dm b/code/game/objects/structures/flora.dm new file mode 100644 index 0000000..0bdbebc --- /dev/null +++ b/code/game/objects/structures/flora.dm @@ -0,0 +1,307 @@ +/obj/structure/flora + resistance_flags = FLAMMABLE + obj_integrity = 150 + max_integrity = 150 + anchored = 1 + +//trees +/obj/structure/flora/tree + name = "tree" + density = 1 + pixel_x = -16 + layer = FLY_LAYER + var/cut = FALSE + var/log_amount = 10 + +/obj/structure/flora/tree/attackby(obj/item/weapon/W, mob/user, params) + if(!cut && log_amount && (!(NODECONSTRUCT in flags))) + if(W.sharpness && W.force > 0) + if(W.hitsound) + playsound(get_turf(src), W.hitsound, 100, 0, 0) + user.visible_message("[user] begins to cut down [src] with [W].","You begin to cut down [src] with [W].", "You hear the sound of sawing.") + if(do_after(user, 1000/W.force, target = user)) //5 seconds with 20 force, 8 seconds with a hatchet, 20 seconds with a shard. + if(cut) + return + user.visible_message("[user] fells [src] with the [W].","You fell [src] with the [W].", "You hear the sound of a tree falling.") + playsound(get_turf(src), 'sound/effects/meteorimpact.ogg', 100 , 0, 0) + icon = 'icons/obj/flora/pinetrees.dmi' + icon_state = "tree_stump" + density = 0 + pixel_x = -16 + name += " stump" + cut = TRUE + for(var/i=1 to log_amount) + new /obj/item/weapon/grown/log/tree(get_turf(src)) + + else + return ..() + + + + +/obj/structure/flora/tree/pine + name = "pine tree" + icon = 'icons/obj/flora/pinetrees.dmi' + icon_state = "pine_1" + +/obj/structure/flora/tree/pine/New() + icon_state = "pine_[rand(1, 3)]" + ..() + +/obj/structure/flora/tree/pine/xmas + name = "xmas tree" + icon_state = "pine_c" + +/obj/structure/flora/tree/pine/xmas/New() + ..() + icon_state = "pine_c" + +/obj/structure/flora/tree/dead + icon = 'icons/obj/flora/deadtrees.dmi' + icon_state = "tree_1" + +/obj/structure/flora/tree/palm + icon = 'icons/misc/beach2.dmi' + icon_state = "palm1" + +/obj/structure/flora/tree/palm/New() + ..() + icon_state = pick("palm1","palm2") + pixel_x = 0 + +/obj/structure/festivus + name = "festivus pole" + icon = 'icons/obj/flora/pinetrees.dmi' + icon_state = "festivus_pole" + desc = "During last year's Feats of Strength the Research Director was able to suplex this passing immobile rod into a planter." + +/obj/structure/flora/tree/dead/New() + icon_state = "tree_[rand(1, 6)]" + ..() + + +//grass +/obj/structure/flora/grass + name = "grass" + icon = 'icons/obj/flora/snowflora.dmi' + gender = PLURAL //"this is grass" not "this is a grass" + +/obj/structure/flora/grass/brown + icon_state = "snowgrass1bb" + +/obj/structure/flora/grass/brown/New() + icon_state = "snowgrass[rand(1, 3)]bb" + ..() + + +/obj/structure/flora/grass/green + icon_state = "snowgrass1gb" + +/obj/structure/flora/grass/green/New() + icon_state = "snowgrass[rand(1, 3)]gb" + ..() + +/obj/structure/flora/grass/both + icon_state = "snowgrassall1" + +/obj/structure/flora/grass/both/New() + icon_state = "snowgrassall[rand(1, 3)]" + ..() + + +//bushes +/obj/structure/flora/bush + name = "bush" + icon = 'icons/obj/flora/snowflora.dmi' + icon_state = "snowbush1" + anchored = 1 + +/obj/structure/flora/bush/New() + icon_state = "snowbush[rand(1, 6)]" + ..() + +//newbushes + +/obj/structure/flora/ausbushes + name = "bush" + icon = 'icons/obj/flora/ausflora.dmi' + icon_state = "firstbush_1" + +/obj/structure/flora/ausbushes/New() + if(icon_state == "firstbush_1") + icon_state = "firstbush_[rand(1, 4)]" + ..() + +/obj/structure/flora/ausbushes/reedbush + icon_state = "reedbush_1" + +/obj/structure/flora/ausbushes/reedbush/New() + icon_state = "reedbush_[rand(1, 4)]" + ..() + +/obj/structure/flora/ausbushes/leafybush + icon_state = "leafybush_1" + +/obj/structure/flora/ausbushes/leafybush/New() + icon_state = "leafybush_[rand(1, 3)]" + ..() + +/obj/structure/flora/ausbushes/palebush + icon_state = "palebush_1" + +/obj/structure/flora/ausbushes/palebush/New() + icon_state = "palebush_[rand(1, 4)]" + ..() + +/obj/structure/flora/ausbushes/stalkybush + icon_state = "stalkybush_1" + +/obj/structure/flora/ausbushes/stalkybush/New() + icon_state = "stalkybush_[rand(1, 3)]" + ..() + +/obj/structure/flora/ausbushes/grassybush + icon_state = "grassybush_1" + +/obj/structure/flora/ausbushes/grassybush/New() + icon_state = "grassybush_[rand(1, 4)]" + ..() + +/obj/structure/flora/ausbushes/fernybush + icon_state = "fernybush_1" + +/obj/structure/flora/ausbushes/fernybush/New() + icon_state = "fernybush_[rand(1, 3)]" + ..() + +/obj/structure/flora/ausbushes/sunnybush + icon_state = "sunnybush_1" + +/obj/structure/flora/ausbushes/sunnybush/New() + icon_state = "sunnybush_[rand(1, 3)]" + ..() + +/obj/structure/flora/ausbushes/genericbush + icon_state = "genericbush_1" + +/obj/structure/flora/ausbushes/genericbush/New() + icon_state = "genericbush_[rand(1, 4)]" + ..() + +/obj/structure/flora/ausbushes/pointybush + icon_state = "pointybush_1" + +/obj/structure/flora/ausbushes/pointybush/New() + icon_state = "pointybush_[rand(1, 4)]" + ..() + +/obj/structure/flora/ausbushes/lavendergrass + icon_state = "lavendergrass_1" + +/obj/structure/flora/ausbushes/lavendergrass/New() + icon_state = "lavendergrass_[rand(1, 4)]" + ..() + +/obj/structure/flora/ausbushes/ywflowers + icon_state = "ywflowers_1" + +/obj/structure/flora/ausbushes/ywflowers/New() + icon_state = "ywflowers_[rand(1, 3)]" + ..() + +/obj/structure/flora/ausbushes/brflowers + icon_state = "brflowers_1" + +/obj/structure/flora/ausbushes/brflowers/New() + icon_state = "brflowers_[rand(1, 3)]" + ..() + +/obj/structure/flora/ausbushes/ppflowers + icon_state = "ppflowers_1" + +/obj/structure/flora/ausbushes/ppflowers/New() + icon_state = "ppflowers_[rand(1, 3)]" + ..() + +/obj/structure/flora/ausbushes/sparsegrass + icon_state = "sparsegrass_1" + +/obj/structure/flora/ausbushes/sparsegrass/New() + icon_state = "sparsegrass_[rand(1, 3)]" + ..() + +/obj/structure/flora/ausbushes/fullgrass + icon_state = "fullgrass_1" + +/obj/structure/flora/ausbushes/fullgrass/New() + icon_state = "fullgrass_[rand(1, 3)]" + ..() + +/obj/item/weapon/twohanded/required/kirbyplants + name = "potted plant" + icon = 'icons/obj/flora/plants.dmi' + icon_state = "plant-01" + layer = ABOVE_MOB_LAYER + w_class = 5 + force = 10 + throwforce = 13 + throw_speed = 2 + throw_range = 4 + +/obj/item/weapon/twohanded/required/kirbyplants/equipped(mob/living/user) + var/image/I = image(icon = 'icons/obj/flora/plants.dmi' , icon_state = src.icon_state, loc = user) + I.override = 1 + user.add_alt_appearance("sneaking_mission", I, player_list) + +/obj/item/weapon/twohanded/required/kirbyplants/dropped(mob/living/user) + ..() + user.remove_alt_appearance("sneaking_mission") + +/obj/item/weapon/twohanded/required/kirbyplants/random + var/list/static/states + +/obj/item/weapon/twohanded/required/kirbyplants/random/New() + . = ..() + if(!states) + generate_states() + icon_state = pick(states) + +/obj/item/weapon/twohanded/required/kirbyplants/random/proc/generate_states() + states = list() + for(var/i in 1 to 25) + var/number + if(i < 10) + number = "0[i]" + else + number = "[i]" + states += "plant-[number]" + states += "applebush" + + +/obj/item/weapon/twohanded/required/kirbyplants/dead + name = "RD's potted plant" + desc = "A gift from the botanical staff, presented after the RD's reassignment. There's a tag on it that says \"Y'all come back now, y'hear?\"\nIt doesn't look very healthy..." + icon_state = "plant-25" + + +//a rock is flora according to where the icon file is +//and now these defines + +/obj/structure/flora/rock + icon_state = "basalt" + desc = "A volcanic rock" + icon = 'icons/obj/flora/rocks.dmi' + resistance_flags = FIRE_PROOF + density = 1 + +/obj/structure/flora/rock/New() + ..() + icon_state = "[icon_state][rand(1,3)]" + +/obj/structure/flora/rock/pile + icon_state = "lavarocks" + desc = "A pile of rocks" + +/obj/structure/flora/rock/pile/New() + ..() + icon_state = "[icon_state][rand(1,3)]" diff --git a/code/game/objects/structures/fluff.dm b/code/game/objects/structures/fluff.dm new file mode 100644 index 0000000..13ae668 --- /dev/null +++ b/code/game/objects/structures/fluff.dm @@ -0,0 +1,162 @@ +//Fluff structures serve no purpose and exist only for enriching the environment. They can be destroyed with a wrench. + +/obj/structure/fluff + name = "fluff structure" + desc = "Fluffier than a sheep. This shouldn't exist." + icon = 'icons/obj/stationobjs.dmi' + icon_state = "minibar" + anchored = TRUE + density = FALSE + opacity = 0 + var/deconstructible = TRUE + +/obj/structure/fluff/attackby(obj/item/I, mob/living/user, params) + if(istype(I, /obj/item/weapon/wrench) && deconstructible) + user.visible_message("[user] starts disassembling [src]...", "You start disassembling [src]...") + playsound(user, 'sound/items/Ratchet.ogg', 50, 1) + if(!do_after(user, 50, target = src)) + return 0 + user.visible_message("[user] disassembles [src]!", "You break down [src] into scrap metal.") + playsound(user, 'sound/items/Deconstruct.ogg', 50, 1) + new/obj/item/stack/sheet/metal(get_turf(src)) + qdel(src) + return + ..() + +/obj/structure/fluff/empty_terrarium //Empty terrariums are created when a preserved terrarium in a lavaland seed vault is activated. + name = "empty terrarium" + desc = "An ancient machine that seems to be used for storing plant matter. Its hatch is ajar." + icon = 'icons/obj/lavaland/spawners.dmi' + icon_state = "terrarium_open" + density = TRUE + +/obj/structure/fluff/empty_sleeper //Empty sleepers are created by a good few ghost roles in lavaland. + name = "empty sleeper" + desc = "An open sleeper. It looks as though it would be awaiting another patient, were it not broken." + icon = 'icons/obj/Cryogenic2.dmi' + icon_state = "sleeper-open" + +/obj/structure/fluff/empty_sleeper/nanotrasen + name = "broken hypersleep chamber" + desc = "A Nanotrasen hypersleep chamber - this one appears broken. \ + There are exposed bolts for easy disassembly using a wrench." + icon_state = "sleeper-o" + +/obj/structure/fluff/empty_sleeper/syndicate + icon_state = "sleeper_s-open" + +/obj/structure/fluff/empty_cryostasis_sleeper //Empty cryostasis sleepers are created when a malfunctioning cryostasis sleeper in a lavaland shelter is activated + name = "empty cryostasis sleeper" + desc = "Although comfortable, this sleeper won't function as anything but a bed ever again." + icon = 'icons/obj/lavaland/spawners.dmi' + icon_state = "cryostasis_sleeper_open" + +/obj/structure/fluff/broken_flooring + name = "broken tiling" + desc = "A segment of broken flooring." + icon = 'icons/obj/brokentiling.dmi' + icon_state = "corner" + +/obj/structure/fluff/drake_statue //Ash drake status spawn on either side of the necropolis gate in lavaland. + name = "drake statue" + desc = "A towering basalt sculpture of a proud and regal drake. Its eyes are six glowing gemstones." + icon = 'icons/effects/64x64.dmi' + icon_state = "drake_statue" + pixel_x = -16 + density = TRUE + deconstructible = FALSE + +/obj/structure/fluff/drake_statue/falling //A variety of statue in disrepair; parts are broken off and a gemstone is missing + desc = "A towering basalt sculpture of a drake. Cracks run down its surface and parts of it have fallen off." + icon_state = "drake_statue_falling" + + +/obj/structure/fluff/bus/ + name = "bus" + desc = "GO TO SCHOOL. READ A BOOK." + icon = 'icons/obj/bus.dmi' + density = TRUE + anchored = TRUE + deconstructible = FALSE + +/obj/structure/fluff/bus/dense + name = "bus" + icon_state = "backwall" + +/obj/structure/fluff/bus/passable + name = "bus" + icon_state = "frontwalltop" + density = 0 + layer = ABOVE_ALL_MOB_LAYER //except for the stairs tile, which should be set to OBJ_LAYER aka 3. + + +/obj/structure/fluff/bus/passable/seat + name = "seat" + desc = "Buckle up! ...What do you mean, there's no seatbelts?!" + icon_state = "backseat" + pixel_y = 17 + layer = OBJ_LAYER + + +/obj/structure/fluff/bus/passable/seat/driver + name = "driver's seat" + desc = "Space Jesus is my copilot." + icon_state = "driverseat" + +/obj/structure/fluff/bus/passable/seat/driver/attack_hand(mob/user) + playsound(src.loc, 'sound/items/carhorn.ogg', 50, 1) + +/obj/structure/fluff/paper + name = "dense lining of papers" + desc = "A lining of paper scattered across the bottom of a wall." + icon = 'icons/obj/fluff.dmi' + icon_state = "paper" + deconstructible = FALSE + +/obj/structure/fluff/paper/corner + icon_state = "papercorner" + +/obj/structure/fluff/paper/stack + name = "dense stack of papers" + desc = "A stack of various papers, childish scribbles scattered across each page." + icon_state = "paperstack" + + +/obj/structure/fluff/divine + name = "Miracle" + icon = 'icons/obj/hand_of_god_structures.dmi' + anchored = 1 + density = 1 + +/obj/structure/fluff/divine/nexus + name = "nexus" + desc = "It anchors a deity to this world. It radiates an unusual aura. It looks well protected from explosive shock." + icon_state = "nexus-neutral" + +/obj/structure/fluff/divine/conduit + name = "conduit" + desc = "It allows a deity to extend their reach. Their powers are just as potent near a conduit as a nexus." + icon_state = "conduit-neutral" + +/obj/structure/fluff/divine/convertaltar + name = "conversion altar" + desc = "An altar dedicated to a deity." + icon_state = "convertaltar-neutral" + density = 0 + can_buckle = 1 + +/obj/structure/fluff/divine/powerpylon + name = "power pylon" + desc = "A pylon which increases the deity's rate it can influence the world." + icon_state = "powerpylon" + can_buckle = 1 + +/obj/structure/fluff/divine/defensepylon + name = "defense pylon" + desc = "A pylon which is blessed to withstand many blows, and fire strong bolts at nonbelievers. A god can toggle it." + icon_state = "defensepylon" + +/obj/structure/fluff/divine/shrine + name = "shrine" + desc = "A shrine dedicated to a deity." + icon_state = "shrine" \ No newline at end of file diff --git a/code/game/objects/structures/ghost_role_spawners.dm b/code/game/objects/structures/ghost_role_spawners.dm new file mode 100644 index 0000000..cca94e4 --- /dev/null +++ b/code/game/objects/structures/ghost_role_spawners.dm @@ -0,0 +1,276 @@ +//Objects that spawn ghosts in as a certain role when they click on it, i.e. away mission bartenders. + +//Preserved terrarium/seed vault: Spawns in seed vault structures in lavaland. Ghosts become plantpeople and are advised to begin growing plants in the room near them. +/obj/effect/mob_spawn/human/seed_vault + name = "preserved terrarium" + desc = "An ancient machine that seems to be used for storing plant matter. The glass is obstructed by a mat of vines." + mob_name = "a lifebringer" + icon = 'icons/obj/lavaland/spawners.dmi' + icon_state = "terrarium" + density = TRUE + roundstart = FALSE + death = FALSE + mob_species = /datum/species/pod + flavour_text = "You are a sentient ecosystem - an example of the mastery over life that your creators possessed. Your masters, benevolent as they were, created uncounted \ + seed vaults and spread them across the universe to every planet they could chart. You are in one such seed vault. Your goal is to cultivate and spread life wherever it will go while waiting \ + for contact from your creators. Estimated time of last contact: Deployment, 5x10^3 millennia ago." + +/obj/effect/mob_spawn/human/seed_vault/special(mob/living/new_spawn) + var/plant_name = pick("Tomato", "Potato", "Broccoli", "Carrot", "Ambrosia", "Pumpkin", "Ivy", "Kudzu", "Banana", "Moss", "Flower", "Bloom", "Root", "Bark", "Glowshroom", "Petal", "Leaf", \ + "Venus", "Sprout","Cocoa", "Strawberry", "Citrus", "Oak", "Cactus", "Pepper", "Juniper") + new_spawn.real_name = plant_name + if(ishuman(new_spawn)) + var/mob/living/carbon/human/H = new_spawn + H.underwear = "Nude" //You're a plant, partner + H.update_body() + +/obj/effect/mob_spawn/human/seed_vault/Destroy() + new/obj/structure/fluff/empty_terrarium(get_turf(src)) + ..() + +//Ash walker eggs: Spawns in ash walker dens in lavaland. Ghosts become unbreathing lizards that worship the Necropolis and are advised to retrieve corpses to create more ash walkers. +/obj/effect/mob_spawn/human/ash_walker + name = "ash walker egg" + desc = "A man-sized yellow egg, spawned from some unfathomable creature. A humanoid silhouette lurks within." + mob_name = "an ash walker" + icon = 'icons/mob/lavaland/lavaland_monsters.dmi' + icon_state = "large_egg" + mob_species = /datum/species/lizard/ashwalker + helmet = /obj/item/clothing/head/helmet/gladiator + uniform = /obj/item/clothing/under/gladiator + roundstart = FALSE + death = FALSE + anchored = 0 + density = 0 + flavour_text = "You are an ash walker. Your tribe worships the Necropolis. The wastes are sacred ground, its monsters a blessed bounty. \ + You have seen lights in the distance... they foreshadow the arrival of outsiders that seek to tear apart the Necropolis and its domain. Fresh sacrifices for your nest." + +/obj/effect/mob_spawn/human/ash_walker/special(mob/living/new_spawn) + new_spawn.real_name = random_unique_lizard_name(gender) + new_spawn << "Drag the corpses of men and beasts to your nest. It will absorb them to create more of your kind. Glory to the Necropolis!" + if(ishuman(new_spawn)) + var/mob/living/carbon/human/H = new_spawn + H.underwear = "Nude" + H.update_body() + +/obj/effect/mob_spawn/human/ash_walker/New() + ..() + var/area/A = get_area(src) + if(A) + notify_ghosts("An ash walker egg is ready to hatch in \the [A.name].", source = src, action=NOTIFY_ATTACK) + +//Timeless prisons: Spawns in Wish Granter prisons in lavaland. Ghosts become age-old users of the Wish Granter and are advised to seek repentance for their past. +/obj/effect/mob_spawn/human/exile + name = "timeless prison" + desc = "Although this stasis pod looks medicinal, it seems as though it's meant to preserve something for a very long time." + mob_name = "a penitent exile" + icon = 'icons/obj/Cryogenic2.dmi' + icon_state = "sleeper" + roundstart = FALSE + death = FALSE + mob_species = /datum/species/shadow + flavour_text = "You are cursed. Years ago, you sacrificed the lives of your trusted friends and the humanity of yourself to reach the Wish Granter. Though you \ + did so, it has come at a cost: your very body rejects the light, dooming you to wander endlessly in this horrible wasteland." + +/obj/effect/mob_spawn/human/exile/Destroy() + new/obj/structure/fluff/empty_sleeper(get_turf(src)) + ..() + +/obj/effect/mob_spawn/human/exile/special(mob/living/new_spawn) + new_spawn.real_name = "Wish Granter's Victim ([rand(0,999)])" + var/wish = rand(1,4) + switch(wish) + if(1) + new_spawn << "You wished to kill, and kill you did. You've lost track of how many, but the spark of excitement that murder once held has winked out. You feel only regret." + if(2) + new_spawn << "You wished for unending wealth, but no amount of money was worth this existence. Maybe charity might redeem your soul?" + if(3) + new_spawn << "You wished for power. Little good it did you, cast out of the light. You are the [gender == MALE ? "king" : "queen"] of a hell that holds no subjects. You feel only remorse." + if(4) + new_spawn << "You wished for immortality, even as your friends lay dying behind you. No matter how many times you cast yourself into the lava, you awaken in this room again within a few days. There is no escape." + +//Golem shells: Spawns in Free Golem ships in lavaland. Ghosts become mineral golems and are advised to spread personal freedom. +/obj/effect/mob_spawn/human/golem + name = "inert golem shell" + desc = "A humanoid shape, empty, lifeless, and full of potential." + mob_name = "a free golem" + icon = 'icons/obj/wizard.dmi' + icon_state = "construct" + mob_species = /datum/species/golem + roundstart = FALSE + death = FALSE + anchored = 0 + density = 0 + flavour_text = "You are a Free Golem. Your family worships The Liberator. In his infinite and divine wisdom, he set your clan free to \ + travel the stars with a single declaration: \"Yeah go do whatever.\" Though you are bound to the one who created you, it is customary in your society to repeat those same words to newborn \ + golems, so that no golem may ever be forced to serve again." + +/obj/effect/mob_spawn/human/golem/New() + ..() + var/area/A = get_area(src) + if(A) + notify_ghosts("A golem shell has been completed in \the [A.name].", source = src, action=NOTIFY_ATTACK) + +/obj/effect/mob_spawn/human/golem/special(mob/living/new_spawn) + var/golem_surname = pick(golem_names) + // 3% chance that our golem has a human surname, because + // cultural contamination + if(prob(3)) + golem_surname = pick(last_names) + + var/datum/species/X = mob_species + var/golem_forename = initial(X.id) + + // The id of golem species is either their material "diamond","gold", + // or just "golem" for the plain ones. So we're using it for naming. + + if(golem_forename == "golem") + golem_forename = "iron" + + new_spawn.real_name = "[capitalize(golem_forename)] [golem_surname]" + // This means golems have names like Iron Forge, or Diamond Quarry + // also a tiny chance of being called "Plasma Meme" + // which is clearly a feature + + new_spawn << "Build golem shells in the autolathe, and feed refined mineral sheets to the shells to bring them to life! You are generally a peaceful group unless provoked." + if(ishuman(new_spawn)) + var/mob/living/carbon/human/H = new_spawn + H.set_cloned_appearance() + + +/obj/effect/mob_spawn/human/golem/adamantine + name = "dust-caked golem shell" + desc = "A humanoid shape, empty, lifeless, and full of potential." + mob_name = "a free golem" + anchored = 1 + density = 1 + mob_species = /datum/species/golem/adamantine + +//Malfunctioning cryostasis sleepers: Spawns in makeshift shelters in lavaland. Ghosts become hermits with knowledge of how they got to where they are now. +/obj/effect/mob_spawn/human/hermit + name = "malfunctioning cryostasis sleeper" + desc = "A humming sleeper with a silhouetted occupant inside. Its stasis function is broken and it's likely being used as a bed." + mob_name = "a stranded hermit" + icon = 'icons/obj/lavaland/spawners.dmi' + icon_state = "cryostasis_sleeper" + roundstart = FALSE + death = FALSE + random = TRUE + mob_species = /datum/species/human + flavour_text = "You've been stranded in this godless prison of a planet for longer than you can remember. Each day you barely scrape by, and between the terrible \ + conditions of your makeshift shelter, the hostile creatures, and the ash drakes swooping down from the cloudless skies, all you can wish for is the feel of soft grass between your toes and \ + the fresh air of Earth. These thoughts are dispelled by yet another recollection of how you got here... " + +/obj/effect/mob_spawn/human/hermit/New() + var/arrpee = rand(1,4) + switch(arrpee) + if(1) + flavour_text += "you were a [pick("arms dealer", "shipwright", "docking manager")]'s assistant on a small trading station several sectors from here. Raiders attacked, and there was \ + only one pod left when you got to the escape bay. You took it and launched it alone, and the crowd of terrified faces crowding at the airlock door as your pod's engines burst to \ + life and sent you to this hell are forever branded into your memory." + uniform = /obj/item/clothing/under/assistantformal + shoes = /obj/item/clothing/shoes/sneakers/black + back = /obj/item/weapon/storage/backpack + if(2) + flavour_text += "you're an exile from the Tiger Cooperative. Their technological fanaticism drove you to question the power and beliefs of the Exolitics, and they saw you as a \ + heretic and subjected you to hours of horrible torture. You were hours away from execution when a high-ranking friend of yours in the Cooperative managed to secure you a pod, \ + scrambled its destination's coordinates, and launched it. You awoke from stasis when you landed and have been surviving - barely - ever since." + uniform = /obj/item/clothing/under/rank/prisoner + shoes = /obj/item/clothing/shoes/sneakers/orange + back = /obj/item/weapon/storage/backpack + if(3) + flavour_text += "you were a doctor on one of Nanotrasen's space stations, but you left behind that damn corporation's tyranny and everything it stood for. From a metaphorical hell \ + to a literal one, you find yourself nonetheless missing the recycled air and warm floors of what you left behind... but you'd still rather be here than there." + uniform = /obj/item/clothing/under/rank/medical + suit = /obj/item/clothing/suit/toggle/labcoat + back = /obj/item/weapon/storage/backpack/medic + shoes = /obj/item/clothing/shoes/sneakers/black + if(4) + flavour_text += "you were always joked about by your friends for \"not playing with a full deck\", as they so kindly put it. It seems that they were right when you, on a tour \ + at one of Nanotrasen's state-of-the-art research facilities, were in one of the escape pods alone and saw the red button. It was big and shiny, and it caught your eye. You pressed \ + it, and after a terrifying and fast ride for days, you landed here. You've had time to wisen up since then, and you think that your old friends wouldn't be laughing now." + uniform = /obj/item/clothing/under/color/grey/glorf + shoes = /obj/item/clothing/shoes/sneakers/black + back = /obj/item/weapon/storage/backpack + ..() + +/obj/effect/mob_spawn/human/hermit/Destroy() + new/obj/structure/fluff/empty_cryostasis_sleeper(get_turf(src)) + ..() + +//Broken rejuvenation pod: Spawns in animal hospitals in lavaland. Ghosts become disoriented interns and are advised to search for help. +/obj/effect/mob_spawn/human/doctor/alive/lavaland + name = "broken rejuvenation pod" + desc = "A small sleeper typically used to instantly restore minor wounds. This one seems broken, and its occupant is comatose." + mob_name = "a translocated vet" + flavour_text = "What...? Where are you? Where are the others? This is still the animal hospital - you should know, you've been an intern here for weeks - but \ + everyone's gone. One of the cats scratched you just a few minutes ago. That's why you were in the pod - to heal the scratch. The scabs are still fresh; you see them right now. So where is \ + everyone? Where did they go? What happened to the hospital? And is that smoke you smell? You need to find someone else. Maybe they can tell you what happened." + +//Prisoner containment sleeper: Spawns in crashed prison ships in lavaland. Ghosts become escaped prisoners and are advised to find a way out of the mess they've gotten themselves into. +/obj/effect/mob_spawn/human/prisoner_transport + name = "prisoner containment sleeper" + desc = "A sleeper designed to put its occupant into a deep coma, unbreakable until the sleeper turns off. This one's glass is cracked and you can see a pale, sleeping face staring out." + mob_name = "an escaped prisoner" + icon = 'icons/obj/Cryogenic2.dmi' + icon_state = "sleeper_s" + uniform = /obj/item/clothing/under/rank/prisoner + mask = /obj/item/clothing/mask/breath + shoes = /obj/item/clothing/shoes/sneakers/orange + pocket1 = /obj/item/weapon/tank/internals/emergency_oxygen + roundstart = FALSE + death = FALSE + flavour_text = "Good. It seems as though your ship crashed. You're a prisoner, sentenced to hard work in one of Nanotrasen's labor camps, but it seems as \ + though fate has other plans for you. You remember that you were convicted of " + +/obj/effect/mob_spawn/human/prisoner_transport/special(mob/living/L) + L.real_name = "NTP #LL-0[rand(111,999)]" //Nanotrasen Prisoner #Lavaland-(numbers) + L.name = L.real_name + +/obj/effect/mob_spawn/human/prisoner_transport/New() + var/list/crimes = list("murder", "larceny", "embezzlement", "unionization", "dereliction of duty", "kidnapping", "gross incompetence", "grand theft", "collaboration with the Syndicate", \ + "worship of a forbidden deity", "interspecies relations", "mutiny") + flavour_text += "[pick(crimes)]. but regardless of that, it seems like your crime doesn't matter now. You don't know where you are, but you know that it's out to kill you, and you're not going \ + to lose this opportunity. Find a way to get out of this mess and back to where you rightfully belong - your [pick("house", "apartment", "spaceship", "station")]." + ..() + +/obj/effect/mob_spawn/human/prisoner_transport/Destroy() + new/obj/structure/fluff/empty_sleeper/syndicate(get_turf(src)) + ..() + +//Space Hotel Staff +/obj/effect/mob_spawn/human/hotel_staff //not free antag u little shits + name = "staff sleeper" + desc = "A sleeper designed for long-term stasis between guest visits." + mob_name = "hotel staff member" + icon = 'icons/obj/Cryogenic2.dmi' + icon_state = "sleeper_s" + uniform = /obj/item/clothing/under/assistantformal + shoes = /obj/item/clothing/shoes/laceup + pocket1 = /obj/item/device/radio/off + back = /obj/item/weapon/storage/backpack + objectives = "Cater to visiting guests with your fellow staff. Do not leave your assigned hotel and always remember: The customer is always right!" + implants = list(/obj/item/weapon/implant/mindshield) + death = FALSE + roundstart = FALSE + random = TRUE + flavour_text = "You are a staff member of a top-of-the-line space hotel! Cater to guests and DON'T leave the hotel, lest the manager fire you for\ + dereliction of duty!" + +/obj/effect/mob_spawn/human/hotel_staff/security + name = "hotel security sleeper" + mob_name = "hotel security memeber" + uniform = /obj/item/clothing/under/rank/security/blueshirt + shoes = /obj/item/clothing/shoes/jackboots + suit = /obj/item/clothing/suit/armor/vest/blueshirt + helmet = /obj/item/clothing/head/helmet/blueshirt + back = /obj/item/weapon/storage/backpack/security + belt = /obj/item/weapon/storage/belt/security/full + flavour_text = "You are a peacekeeper assigned to this hotel to protect the intrests of the company while keeping the peace between \ + guests and the staff.Do NOT leave the hotel, as that is grounds for contract termination." + objectives = "Do not leave your assigned hotel. Try and keep the peace between staff and guests, non-lethal force heavily advised if possible." + +/obj/effect/mob_spawn/human/hotel_staff/Destroy() + new/obj/structure/fluff/empty_sleeper/syndicate(get_turf(src)) + ..() + diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm new file mode 100644 index 0000000..7311da1 --- /dev/null +++ b/code/game/objects/structures/girders.dm @@ -0,0 +1,373 @@ +#define GIRDER_NORMAL 0 +#define GIRDER_REINF_STRUTS 1 +#define GIRDER_REINF 2 +#define GIRDER_DISPLACED 3 +#define GIRDER_DISASSEMBLED 4 + +/obj/structure/girder + name = "girder" + icon_state = "girder" + anchored = 1 + density = 1 + layer = BELOW_OBJ_LAYER + var/state = GIRDER_NORMAL + var/girderpasschance = 20 // percentage chance that a projectile passes through the girder. + var/can_displace = TRUE //If the girder can be moved around by wrenching it + obj_integrity = 200 + max_integrity = 200 + +/obj/structure/girder/attackby(obj/item/W, mob/user, params) + add_fingerprint(user) + if(istype(W, /obj/item/weapon/screwdriver)) + if(state == GIRDER_DISPLACED) + playsound(src.loc, W.usesound, 100, 1) + user.visible_message("[user] disassembles the girder.", \ + "You start to disassemble the girder...", "You hear clanking and banging noises.") + if(do_after(user, 40/W.toolspeed, target = src)) + if(state != GIRDER_DISPLACED) + return + state = GIRDER_DISASSEMBLED + user << "You disassemble the girder." + var/obj/item/stack/sheet/metal/M = new (loc, 2) + M.add_fingerprint(user) + qdel(src) + else if(state == GIRDER_REINF) + playsound(src.loc, W.usesound, 100, 1) + user << "You start unsecuring support struts..." + if(do_after(user, 40/W.toolspeed, target = src)) + if(state != GIRDER_REINF) + return + user << "You unsecure the support struts." + state = GIRDER_REINF_STRUTS + + else if(istype(W, /obj/item/weapon/wrench)) + if(state == GIRDER_DISPLACED) + if(!isfloorturf(loc)) + user << "A floor must be present to secure the girder!" + return + playsound(src.loc, W.usesound, 100, 1) + user << "You start securing the girder..." + if(do_after(user, 40/W.toolspeed, target = src)) + user << "You secure the girder." + var/obj/structure/girder/G = new (loc) + transfer_fingerprints_to(G) + qdel(src) + else if(state == GIRDER_NORMAL && can_displace) + playsound(src.loc, W.usesound, 100, 1) + user << "You start unsecuring the girder..." + if(do_after(user, 40/W.toolspeed, target = src)) + user << "You unsecure the girder." + var/obj/structure/girder/displaced/D = new (loc) + transfer_fingerprints_to(D) + qdel(src) + + else if(istype(W, /obj/item/weapon/gun/energy/plasmacutter)) + user << "You start slicing apart the girder..." + playsound(src, 'sound/items/Welder.ogg', 100, 1) + if(do_after(user, 30, target = src)) + user << "You slice apart the girder." + var/obj/item/stack/sheet/metal/M = new (loc, 2) + M.add_fingerprint(user) + qdel(src) + + else if(istype(W, /obj/item/weapon/pickaxe/drill/jackhammer)) + var/obj/item/weapon/pickaxe/drill/jackhammer/D = W + user << "You smash through the girder!" + new /obj/item/stack/sheet/metal(get_turf(src)) + D.playDigSound() + qdel(src) + + else if(istype(W, /obj/item/weapon/wirecutters) && state == GIRDER_REINF_STRUTS) + playsound(src.loc, W.usesound, 100, 1) + user << "You start removing support struts..." + if(do_after(user, 40/W.toolspeed, target = src)) + user << "You remove the support struts." + new /obj/item/stack/sheet/plasteel(get_turf(src)) + var/obj/structure/girder/G = new (loc) + transfer_fingerprints_to(G) + qdel(src) + + else if(istype(W, /obj/item/stack)) + if(iswallturf(loc)) + user << "There is already a wall present!" + return + if(!isfloorturf(src.loc)) + user << "A floor must be present to build a false wall!" + return + if (locate(/obj/structure/falsewall) in src.loc.contents) + user << "There is already a false wall present!" + return + + if(istype(W,/obj/item/stack/rods)) + var/obj/item/stack/rods/S = W + if(state == GIRDER_DISPLACED) + if(S.get_amount() < 2) + user << "You need at least two rods to create a false wall!" + return + user << "You start building a reinforced false wall..." + if(do_after(user, 20, target = src)) + if(!src.loc || !S || S.get_amount() < 2) + return + S.use(2) + user << "You create a false wall. Push on it to open or close the passage." + var/obj/structure/falsewall/iron/FW = new (loc) + transfer_fingerprints_to(FW) + qdel(src) + else + if(S.get_amount() < 5) + user << "You need at least five rods to add plating!" + return + user << "You start adding plating..." + if (do_after(user, 40, target = src)) + if(!src.loc || !S || S.get_amount() < 5) + return + S.use(5) + user << "You add the plating." + var/turf/T = get_turf(src) + T.ChangeTurf(/turf/closed/wall/mineral/iron) + transfer_fingerprints_to(T) + qdel(src) + return + + if(!istype(W,/obj/item/stack/sheet)) + return + + var/obj/item/stack/sheet/S = W + if(istype(S,/obj/item/stack/sheet/metal)) + if(state == GIRDER_DISPLACED) + if(S.get_amount() < 2) + user << "You need two sheets of metal to create a false wall!" + return + user << "You start building a false wall..." + if(do_after(user, 20, target = src)) + if(!src.loc || !S || S.get_amount() < 2) + return + S.use(2) + user << "You create a false wall. Push on it to open or close the passage." + var/obj/structure/falsewall/F = new (loc) + transfer_fingerprints_to(F) + qdel(src) + else + if(S.get_amount() < 2) + user << "You need two sheets of metal to finish a wall!" + return + user << "You start adding plating..." + if (do_after(user, 40, target = src)) + if(loc == null || S.get_amount() < 2) + return + S.use(2) + user << "You add the plating." + var/turf/T = get_turf(src) + T.ChangeTurf(/turf/closed/wall) + transfer_fingerprints_to(T) + qdel(src) + return + + if(istype(S,/obj/item/stack/sheet/plasteel)) + if(state == GIRDER_DISPLACED) + if(S.get_amount() < 2) + user << "You need at least two sheets to create a false wall!" + return + user << "You start building a reinforced false wall..." + if(do_after(user, 20, target = src)) + if(!src.loc || !S || S.get_amount() < 2) + return + S.use(2) + user << "You create a reinforced false wall. Push on it to open or close the passage." + var/obj/structure/falsewall/reinforced/FW = new (loc) + transfer_fingerprints_to(FW) + qdel(src) + else + if(state == GIRDER_REINF) + if(S.get_amount() < 1) + return + user << "You start finalizing the reinforced wall..." + if(do_after(user, 50, target = src)) + if(!src.loc || !S || S.get_amount() < 1) + return + S.use(1) + user << "You fully reinforce the wall." + var/turf/T = get_turf(src) + T.ChangeTurf(/turf/closed/wall/r_wall) + transfer_fingerprints_to(T) + qdel(src) + return + else + if(S.get_amount() < 1) + return + user << "You start reinforcing the girder..." + if (do_after(user, 60, target = src)) + if(!src.loc || !S || S.get_amount() < 1) + return + S.use(1) + user << "You reinforce the girder." + var/obj/structure/girder/reinforced/R = new (loc) + transfer_fingerprints_to(R) + qdel(src) + return + + if(S.sheettype) + var/M = S.sheettype + if(state == GIRDER_DISPLACED) + if(S.get_amount() < 2) + user << "You need at least two sheets to create a false wall!" + return + if(do_after(user, 20, target = src)) + if(!src.loc || !S || S.get_amount() < 2) + return + S.use(2) + user << "You create a false wall. Push on it to open or close the passage." + var/F = text2path("/obj/structure/falsewall/[M]") + var/obj/structure/FW = new F (loc) + transfer_fingerprints_to(FW) + qdel(src) + else + if(S.get_amount() < 2) + user << "You need at least two sheets to add plating!" + return + user << "You start adding plating..." + if (do_after(user, 40, target = src)) + if(!src.loc || !S || S.get_amount() < 2) + return + S.use(2) + user << "You add the plating." + var/turf/T = get_turf(src) + T.ChangeTurf(text2path("/turf/closed/wall/mineral/[M]")) + transfer_fingerprints_to(T) + qdel(src) + return + + add_hiddenprint(user) + + else if(istype(W, /obj/item/pipe)) + var/obj/item/pipe/P = W + if (P.pipe_type in list(0, 1, 5)) //simple pipes, simple bends, and simple manifolds. + if(!user.drop_item()) + return + P.loc = src.loc + user << "You fit the pipe into \the [src]." + else + return ..() + +/obj/structure/girder/CanPass(atom/movable/mover, turf/target, height=0) + if(height==0) + return 1 + if(istype(mover) && mover.checkpass(PASSGRILLE)) + return prob(girderpasschance) + else + if(istype(mover, /obj/item/projectile)) + return prob(girderpasschance) + else + return 0 + +/obj/structure/girder/CanAStarPass(ID, dir, caller) + . = !density + if(ismovableatom(caller)) + var/atom/movable/mover = caller + . = . || mover.checkpass(PASSGRILLE) + +/obj/structure/girder/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + var/remains = pick(/obj/item/stack/rods,/obj/item/stack/sheet/metal) + new remains(loc) + qdel(src) + +/obj/structure/girder/narsie_act() + if(prob(25)) + new /obj/structure/girder/cult(loc) + qdel(src) + +/obj/structure/girder/displaced + name = "displaced girder" + icon_state = "displaced" + anchored = 0 + state = GIRDER_DISPLACED + girderpasschance = 25 + obj_integrity = 120 + max_integrity = 120 + +/obj/structure/girder/reinforced + name = "reinforced girder" + icon_state = "reinforced" + state = GIRDER_REINF + girderpasschance = 0 + obj_integrity = 350 + max_integrity = 350 + + + +//////////////////////////////////////////// cult girder ////////////////////////////////////////////// + +/obj/structure/girder/cult + name = "runed girder" + desc = "Framework made of a strange and shockingly cold metal. It doesn't seem to have any bolts." + icon = 'icons/obj/cult.dmi' + icon_state= "cultgirder" + can_displace = FALSE + +/obj/structure/girder/cult/attackby(obj/item/W, mob/user, params) + add_fingerprint(user) + if(istype(W, /obj/item/weapon/tome) && iscultist(user)) //Cultists can demolish cult girders instantly with their tomes + user.visible_message("[user] strikes [src] with [W]!", "You demolish [src].") + var/obj/item/stack/sheet/runed_metal/R = new(get_turf(src)) + R.amount = 1 + qdel(src) + + else if(istype(W, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/WT = W + if(WT.remove_fuel(0,user)) + playsound(src.loc, W.usesound, 50, 1) + user << "You start slicing apart the girder..." + if(do_after(user, 40/W.toolspeed, target = src)) + if( !WT.isOn() ) + return + user << "You slice apart the girder." + var/obj/item/stack/sheet/runed_metal/R = new(get_turf(src)) + R.amount = 1 + transfer_fingerprints_to(R) + qdel(src) + + else if(istype(W, /obj/item/weapon/gun/energy/plasmacutter)) + user << "You start slicing apart the girder..." + playsound(src, 'sound/items/Welder.ogg', 100, 1) + if(do_after(user, 30, target = src)) + user << "You slice apart the girder." + var/obj/item/stack/sheet/runed_metal/R = new(get_turf(src)) + R.amount = 1 + transfer_fingerprints_to(R) + qdel(src) + + else if(istype(W, /obj/item/weapon/pickaxe/drill/jackhammer)) + var/obj/item/weapon/pickaxe/drill/jackhammer/D = W + user << "Your jackhammer smashes through the girder!" + var/obj/item/stack/sheet/runed_metal/R = new(get_turf(src)) + R.amount = 2 + transfer_fingerprints_to(R) + D.playDigSound() + qdel(src) + + else if(istype(W, /obj/item/stack/sheet/runed_metal)) + var/obj/item/stack/sheet/runed_metal/R = W + if(R.get_amount() < 1) + user << "You need at least one sheet of runed metal to construct a runed wall!" + return 0 + user.visible_message("[user] begins laying runed metal on [src]...", "You begin constructing a runed wall...") + if(do_after(user, 50, target = src)) + if(R.get_amount() < 1 || !R) + return + user.visible_message("[user] plates [src] with runed metal.", "You construct a runed wall.") + R.use(1) + var/turf/T = get_turf(src) + T.ChangeTurf(/turf/closed/wall/mineral/cult) + qdel(src) + + else + return ..() + +/obj/structure/girder/cult/narsie_act() + return + +/obj/structure/girder/cult/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + new/obj/item/stack/sheet/runed_metal/(get_turf(src), 1) + qdel(src) diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm new file mode 100644 index 0000000..c477d91 --- /dev/null +++ b/code/game/objects/structures/grille.dm @@ -0,0 +1,255 @@ +/obj/structure/grille + desc = "A flimsy lattice of metal rods, with screws to secure it to the floor." + name = "grille" + icon = 'icons/obj/structures.dmi' + icon_state = "grille" + density = 1 + anchored = 1 + flags = CONDUCT + pressure_resistance = 5*ONE_ATMOSPHERE + layer = BELOW_OBJ_LAYER + armor = list(melee = 50, bullet = 70, laser = 70, energy = 100, bomb = 10, bio = 100, rad = 100, fire = 0, acid = 0) + obj_integrity = 50 + max_integrity = 50 + integrity_failure = 20 + var/obj/item/stack/rods/stored + +/obj/structure/grille/New() + ..() + stored = new/obj/item/stack/rods(src) + stored.amount = 2 + +/obj/structure/grille/ratvar_act() + if(broken) + new /obj/structure/grille/ratvar/broken(src.loc) + else + new /obj/structure/grille/ratvar(src.loc) + qdel(src) + +/obj/structure/grille/Bumped(atom/user) + if(ismob(user)) + shock(user, 70) + + +/obj/structure/grille/attack_paw(mob/user) + attack_hand(user) + +/obj/structure/grille/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0) + if(user.a_intent == "harm") + if(!shock(user, 70)) + ..(user, 1) + return 1 + +/obj/structure/grille/attack_hand(mob/living/user) + user.changeNext_move(CLICK_CD_MELEE) + user.do_attack_animation(src, ATTACK_EFFECT_KICK) + user.visible_message("[user] hits [src].", null, null, COMBAT_MESSAGE_RANGE) + if(!shock(user, 70)) + take_damage(rand(5,10), BRUTE, "melee", 1) + +/obj/structure/grille/attack_alien(mob/living/user) + user.do_attack_animation(src) + user.changeNext_move(CLICK_CD_MELEE) + user.visible_message("[user] mangles [src].", null, null, COMBAT_MESSAGE_RANGE) + if(!shock(user, 70)) + take_damage(20, BRUTE, "melee", 1) + + +/obj/structure/grille/CanPass(atom/movable/mover, turf/target, height=0) + if(height==0) return 1 + if(istype(mover) && mover.checkpass(PASSGRILLE)) + return 1 + else + if(istype(mover, /obj/item/projectile) && density) + return prob(30) + else + return !density + +/obj/structure/grille/CanAStarPass(ID, dir, caller) + . = !density + if(ismovableatom(caller)) + var/atom/movable/mover = caller + . = . || mover.checkpass(PASSGRILLE) + +/obj/structure/grille/attackby(obj/item/weapon/W, mob/user, params) + user.changeNext_move(CLICK_CD_MELEE) + add_fingerprint(user) + if(istype(W, /obj/item/weapon/wirecutters)) + if(!shock(user, 100)) + playsound(loc, W.usesound, 100, 1) + deconstruct() + else if((istype(W, /obj/item/weapon/screwdriver)) && (isturf(loc) || anchored)) + if(!shock(user, 90)) + playsound(loc, W.usesound, 100, 1) + anchored = !anchored + user.visible_message("[user] [anchored ? "fastens" : "unfastens"] [src].", \ + "You [anchored ? "fasten [src] to" : "unfasten [src] from"] the floor.") + return + else if(istype(W, /obj/item/stack/rods) && broken) + var/obj/item/stack/rods/R = W + if(!shock(user, 90)) + user.visible_message("[user] rebuilds the broken grille.", \ + "You rebuild the broken grille.") + obj_integrity = max_integrity + density = 1 + broken = 0 + icon_state = initial(icon_state) + R.use(1) + return + +//window placing begin + else if(istype(W, /obj/item/stack/sheet/rglass) || istype(W, /obj/item/stack/sheet/glass)) + if (!broken) + var/obj/item/stack/ST = W + if (ST.get_amount() < 2) + user << "You need at least two sheets of glass for that!" + return + var/dir_to_set = SOUTHWEST + if(!anchored) + user << "[src] needs to be fastened to the floor first!" + return + for(var/obj/structure/window/WINDOW in loc) + user << "There is already a window there!" + return + user << "You start placing the window..." + if(do_after(user,20, target = src)) + if(!src.loc || !anchored) //Grille broken or unanchored while waiting + return + for(var/obj/structure/window/WINDOW in loc) //Another window already installed on grille + return + var/obj/structure/window/WD + if(istype(W, /obj/item/stack/sheet/rglass)) + WD = new/obj/structure/window/reinforced/fulltile(loc) //reinforced window + else + WD = new/obj/structure/window/fulltile(loc) //normal window + WD.setDir(dir_to_set) + WD.ini_dir = dir_to_set + WD.anchored = 0 + WD.state = 0 + ST.use(2) + user << "You place [WD] on [src]." + return +//window placing end + + else if(istype(W, /obj/item/weapon/shard) || !shock(user, 70)) + return ..() + +/obj/structure/grille/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) + switch(damage_type) + if(BRUTE) + if(damage_amount) + playsound(loc, 'sound/effects/grillehit.ogg', 80, 1) + else + playsound(loc, 'sound/weapons/tap.ogg', 50, 1) + if(BURN) + playsound(loc, 'sound/items/welder.ogg', 80, 1) + + +/obj/structure/grille/deconstruct(disassembled = TRUE) + if(!loc) //if already qdel'd somehow, we do nothing + return + if(!(flags&NODECONSTRUCT)) + transfer_fingerprints_to(stored) + var/turf/T = loc + stored.forceMove(T) + ..() + +/obj/structure/grille/obj_break() + if(!broken && !(flags & NODECONSTRUCT)) + icon_state = "broken[initial(icon_state)]" + density = 0 + broken = 1 + stored.amount = 1 + var/obj/item/stack/rods/newrods = new(loc) + transfer_fingerprints_to(newrods) + + +// shock user with probability prb (if all connections & power are working) +// returns 1 if shocked, 0 otherwise + +/obj/structure/grille/proc/shock(mob/user, prb) + if(!anchored || broken) // anchored/broken grilles are never connected + return 0 + if(!prob(prb)) + return 0 + if(!in_range(src, user))//To prevent TK and mech users from getting shocked + return 0 + var/turf/T = get_turf(src) + var/obj/structure/cable/C = T.get_cable_node() + if(C) + if(electrocute_mob(user, C, src)) + var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread + s.set_up(3, 1, src) + s.start() + return 1 + else + return 0 + return 0 + +/obj/structure/grille/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) + if(!broken) + if(exposed_temperature > T0C + 1500) + take_damage(1, BURN, 0, 0) + ..() + +/obj/structure/grille/hitby(AM as mob|obj) + if(isobj(AM)) + if(prob(50) && anchored && !broken) + var/turf/T = get_turf(src) + var/obj/structure/cable/C = T.get_cable_node() + if(C) + playsound(src.loc, 'sound/magic/LightningShock.ogg', 100, 1, extrarange = 5) + tesla_zap(src, 3, C.powernet.avail * 0.01) //Zap for 1/100 of the amount of power. At a million watts in the grid, it will be as powerful as a tesla revolver shot. + return ..() + +/obj/structure/grille/storage_contents_dump_act(obj/item/weapon/storage/src_object, mob/user) + return 0 + +/obj/structure/grille/broken // Pre-broken grilles for map placement + icon_state = "brokengrille" + density = 0 + obj_integrity = 20 + broken = 1 + +/obj/structure/grille/broken/New() + ..() + stored.amount = 1 + icon_state = "brokengrille" + +/obj/structure/grille/ratvar + icon_state = "ratvargrille" + desc = "A strangely-shaped grille." + +/obj/structure/grille/ratvar/New() + ..() + change_construction_value(1) + if(broken) + PoolOrNew(/obj/effect/overlay/temp/ratvar/grille/broken, get_turf(src)) + else + PoolOrNew(/obj/effect/overlay/temp/ratvar/grille, get_turf(src)) + PoolOrNew(/obj/effect/overlay/temp/ratvar/beam/grille, get_turf(src)) + +/obj/structure/grille/ratvar/Destroy() + change_construction_value(-1) + return ..() + +/obj/structure/grille/ratvar/narsie_act() + take_damage(rand(1, 3), BRUTE) + if(src) + var/previouscolor = color + color = "#960000" + animate(src, color = previouscolor, time = 8) + addtimer(src, "update_atom_colour", 8) + +/obj/structure/grille/ratvar/ratvar_act() + return + +/obj/structure/grille/ratvar/broken + density = 0 + obj_integrity = 20 + broken = 1 + +/obj/structure/grille/ratvar/broken/New() + ..() + stored.amount = 1 + icon_state = "brokenratvargrille" diff --git a/code/game/objects/structures/guncase.dm b/code/game/objects/structures/guncase.dm new file mode 100644 index 0000000..4ceb1be --- /dev/null +++ b/code/game/objects/structures/guncase.dm @@ -0,0 +1,108 @@ +//GUNCASES// +/obj/structure/guncase + name = "gun locker" + desc = "A locker that holds guns." + icon = 'icons/obj/closet.dmi' + icon_state = "shotguncase" + anchored = 0 + density = 1 + opacity = 0 + var/case_type = null + var/gun_category = /obj/item/weapon/gun + var/open = 1 + var/capacity = 4 + +/obj/structure/guncase/New() + ..() + update_icon() + +/obj/structure/guncase/initialize() + ..() + for(var/obj/item/I in loc.contents) + if(istype(I, gun_category)) + I.loc = src + if(contents.len >= capacity) + break + update_icon() + +/obj/structure/guncase/update_icon() + cut_overlays() + for(var/i = contents.len, i >= 1, i--) + add_overlay(image(icon = src.icon, icon_state = "[case_type]", pixel_x = 4 * (i -1) )) + if(open) + add_overlay("[icon_state]_open") + else + add_overlay("[icon_state]_door") + +/obj/structure/guncase/attackby(obj/item/I, mob/user, params) + if(iscyborg(user) || isalien(user)) + return + if(istype(I, gun_category)) + if(contents.len < capacity && open) + if(!user.drop_item()) + return + contents += I + user << "You place [I] in [src]." + update_icon() + return + + else if(user.a_intent != "harm") + open = !open + update_icon() + else + return ..() + +/obj/structure/guncase/attack_hand(mob/user) + if(iscyborg(user) || isalien(user)) + return + if(contents.len && open) + ShowWindow(user) + else + open = !open + update_icon() + +/obj/structure/guncase/proc/ShowWindow(mob/user) + var/dat = {"
          +

          Stored Guns

          + "} + for(var/i = contents.len, i >= 1, i--) + var/obj/item/I = contents[i] + dat += "[I.name]
          " + dat += "
          " + + var/datum/browser/popup = new(user, "gunlocker", "
          [name]
          ", 350, 300) + popup.set_content(dat) + popup.open(0) + +/obj/structure/guncase/Topic(href, href_list) + if(href_list["retrieve"]) + var/obj/item/O = locate(href_list["retrieve"]) in contents + if(!O || !istype(O)) + return + if(!usr.canUseTopic(src)) + return + if(ishuman(usr)) + if(!usr.put_in_hands(O)) + O.forceMove(get_turf(src)) + update_icon() + +/obj/structure/guncase/handle_atom_del(atom/A) + update_icon() + +/obj/structure/guncase/contents_explosion(severity, target) + for(var/atom/A in contents) + A.ex_act(severity++, target) + CHECK_TICK + +/obj/structure/guncase/shotgun + name = "shotgun locker" + desc = "A locker that holds shotguns." + case_type = "shotgun" + gun_category = /obj/item/weapon/gun/projectile/shotgun + +/obj/structure/guncase/ecase + name = "energy gun locker" + desc = "A locker that holds energy guns." + icon_state = "ecase" + case_type = "egun" + gun_category = /obj/item/weapon/gun/energy/gun diff --git a/code/game/objects/structures/hivebot.dm b/code/game/objects/structures/hivebot.dm new file mode 100644 index 0000000..cb69544 --- /dev/null +++ b/code/game/objects/structures/hivebot.dm @@ -0,0 +1,36 @@ +/obj/structure/hivebot_beacon + name = "beacon" + desc = "Some odd beacon thing." + icon = 'icons/mob/hivebot.dmi' + icon_state = "def_radar-off" + anchored = 1 + density = 1 + var/bot_type = "norm" + var/bot_amt = 10 + +/obj/structure/hivebot_beacon/New() + ..() + var/datum/effect_system/smoke_spread/smoke = new + smoke.set_up(2, loc) + smoke.start() + visible_message("The [src] warps in!") + playsound(src.loc, 'sound/effects/EMPulse.ogg', 25, 1) + addtimer(src, "warpbots", rand(10, 600)) + +/obj/structure/hivebot_beacon/proc/warpbots() + icon_state = "def_radar" + visible_message("The [src] turns on!") + while(bot_amt > 0) + bot_amt-- + switch(bot_type) + if("norm") + new /mob/living/simple_animal/hostile/hivebot(get_turf(src)) + if("range") + new /mob/living/simple_animal/hostile/hivebot/range(get_turf(src)) + if("rapid") + new /mob/living/simple_animal/hostile/hivebot/rapid(get_turf(src)) + sleep(100) + visible_message("The [src] warps out!") + playsound(src.loc, 'sound/effects/EMPulse.ogg', 25, 1) + qdel(src) + return diff --git a/code/game/objects/structures/holosign.dm b/code/game/objects/structures/holosign.dm new file mode 100644 index 0000000..eeb6724 --- /dev/null +++ b/code/game/objects/structures/holosign.dm @@ -0,0 +1,101 @@ + +//holographic signs and barriers + +/obj/structure/holosign + name = "holo sign" + icon = 'icons/effects/effects.dmi' + anchored = 1 + obj_integrity = 1 + max_integrity = 1 + armor = list(melee = 0, bullet = 50, laser = 50, energy = 50, bomb = 0, bio = 0, rad = 0, fire = 20, acid = 20) + var/obj/item/weapon/holosign_creator/projector + +/obj/structure/holosign/New(loc, source_projector) + if(source_projector) + projector = source_projector + projector.signs += src + ..() + +/obj/structure/holosign/Destroy() + if(projector) + projector.signs -= src + projector = null + return ..() + +/obj/structure/holosign/attack_hand(mob/living/user) + user.do_attack_animation(src, ATTACK_EFFECT_PUNCH) + user.changeNext_move(CLICK_CD_MELEE) + take_damage(5 , BRUTE, "melee", 1) + +/obj/structure/holosign/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) + switch(damage_type) + if(BRUTE) + playsound(loc, 'sound/weapons/Egloves.ogg', 80, 1) + if(BURN) + playsound(loc, 'sound/weapons/Egloves.ogg', 80, 1) + + +/obj/structure/holosign/wetsign + name = "wet floor sign" + desc = "The words flicker as if they mean nothing." + icon = 'icons/effects/effects.dmi' + icon_state = "holosign" + +/obj/structure/holosign/barrier + name = "holo barrier" + desc = "A short holographic barrier which can only be passed by walking." + icon_state = "holosign_sec" + pass_flags = LETPASSTHROW + density = 1 + obj_integrity = 20 + max_integrity = 20 + var/allow_walk = 1 //can we pass through it on walk intent + +/obj/structure/holosign/barrier/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) + if(!density) + return 1 + if(air_group || (height==0)) + return 1 + if(mover.pass_flags & (PASSGLASS|PASSTABLE|PASSGRILLE)) + return 1 + if(iscarbon(mover)) + var/mob/living/carbon/C = mover + if(allow_walk && C.m_intent == "walk") + return 1 + +/obj/structure/holosign/barrier/engineering + icon_state = "holosign_engi" + +/obj/structure/holosign/barrier/cyborg + name = "Energy Field" + desc = "A fragile energy field that blocks movement" + density = 1 + obj_integrity = 1 + max_integrity = 1 + allow_walk = 0 + +/obj/structure/holosign/barrier/cyborg/hacked + name = "Charged Energy Field" + desc = "A powerful energy field that blocks movement. Energy arcs off it" + obj_integrity = 10 + max_integrity = 10 + var/shockcd = 0 + +/obj/structure/holosign/barrier/cyborg/hacked/proc/cooldown() + shockcd = FALSE + +/obj/structure/holosign/barrier/cyborg/hacked/attack_hand(mob/living/user) + if(!shockcd) + if(ismob(user)) + var/mob/living/M = user + M.electrocute_act(15,"Energy Barrier", safety=1) + shockcd = TRUE + addtimer(src, "cooldown", 10) + +/obj/structure/holosign/barrier/cyborg/hacked/Bumped(atom/user) + if(!shockcd) + if(ismob(user)) + var/mob/living/M = user + M.electrocute_act(15,"Energy Barrier", safety=1) + shockcd = TRUE + addtimer(src, "cooldown", 10) diff --git a/code/game/objects/structures/janicart.dm b/code/game/objects/structures/janicart.dm new file mode 100644 index 0000000..9f187f8 --- /dev/null +++ b/code/game/objects/structures/janicart.dm @@ -0,0 +1,163 @@ +/obj/structure/janitorialcart + name = "janitorial cart" + desc = "This is the alpha and omega of sanitation." + icon = 'icons/obj/janitor.dmi' + icon_state = "cart" + anchored = 0 + density = 1 + flags = OPENCONTAINER + //copypaste sorry + var/amount_per_transfer_from_this = 5 //shit I dunno, adding this so syringes stop runtime erroring. --NeoFite + var/obj/item/weapon/storage/bag/trash/mybag = null + var/obj/item/weapon/mop/mymop = null + var/obj/item/weapon/reagent_containers/spray/cleaner/myspray = null + var/obj/item/device/lightreplacer/myreplacer = null + var/signs = 0 + var/const/max_signs = 4 + + +/obj/structure/janitorialcart/New() + create_reagents(100) + + +/obj/structure/janitorialcart/proc/wet_mop(obj/item/weapon/mop, mob/user) + if(reagents.total_volume < 1) + user << "[src] is out of water!" + return 0 + else + reagents.trans_to(mop, 5) + user << "You wet [mop] in [src]." + playsound(loc, 'sound/effects/slosh.ogg', 25, 1) + return 1 + +/obj/structure/janitorialcart/proc/put_in_cart(obj/item/I, mob/user) + if(!user.drop_item()) + return + I.loc = src + updateUsrDialog() + user << "You put [I] into [src]." + return + + +/obj/structure/janitorialcart/attackby(obj/item/I, mob/user, params) + var/fail_msg = "There is already one of those in [src]!" + + if(istype(I, /obj/item/weapon/mop)) + var/obj/item/weapon/mop/m=I + if(m.reagents.total_volume < m.reagents.maximum_volume) + if (wet_mop(m, user)) + return + if(!mymop) + m.janicart_insert(user, src) + else + user << fail_msg + + else if(istype(I, /obj/item/weapon/storage/bag/trash)) + if(!mybag) + var/obj/item/weapon/storage/bag/trash/t=I + t.janicart_insert(user, src) + else + user << fail_msg + else if(istype(I, /obj/item/weapon/reagent_containers/spray/cleaner)) + if(!myspray) + put_in_cart(I, user) + myspray=I + update_icon() + else + user << fail_msg + else if(istype(I, /obj/item/device/lightreplacer)) + if(!myreplacer) + var/obj/item/device/lightreplacer/l=I + l.janicart_insert(user,src) + else + user << fail_msg + else if(istype(I, /obj/item/weapon/caution)) + if(signs < max_signs) + put_in_cart(I, user) + signs++ + update_icon() + else + user << "[src] can't hold any more signs!" + else if(mybag) + mybag.attackby(I, user) + else if(istype(I, /obj/item/weapon/crowbar)) + user.visible_message("[user] begins to empty the contents of [src].", "You begin to empty the contents of [src]...") + if(do_after(user, 30/I.toolspeed, target = src)) + usr << "You empty the contents of [src]'s bucket onto the floor." + reagents.reaction(src.loc) + src.reagents.clear_reagents() + else + return ..() + +/obj/structure/janitorialcart/attack_hand(mob/user) + user.set_machine(src) + var/dat + if(mybag) + dat += "[mybag.name]
          " + if(mymop) + dat += "[mymop.name]
          " + if(myspray) + dat += "[myspray.name]
          " + if(myreplacer) + dat += "[myreplacer.name]
          " + if(signs) + dat += "[signs] sign\s
          " + var/datum/browser/popup = new(user, "janicart", name, 240, 160) + popup.set_content(dat) + popup.open() + + +/obj/structure/janitorialcart/Topic(href, href_list) + if(!in_range(src, usr)) + return + if(!isliving(usr)) + return + var/mob/living/user = usr + if(href_list["garbage"]) + if(mybag) + user.put_in_hands(mybag) + user << "You take [mybag] from [src]." + mybag = null + if(href_list["mop"]) + if(mymop) + user.put_in_hands(mymop) + user << "You take [mymop] from [src]." + mymop = null + if(href_list["spray"]) + if(myspray) + user.put_in_hands(myspray) + user << "You take [myspray] from [src]." + myspray = null + if(href_list["replacer"]) + if(myreplacer) + user.put_in_hands(myreplacer) + user << "You take [myreplacer] from [src]." + myreplacer = null + if(href_list["sign"]) + if(signs) + var/obj/item/weapon/caution/Sign = locate() in src + if(Sign) + user.put_in_hands(Sign) + user << "You take \a [Sign] from [src]." + signs-- + else + WARNING("Signs ([signs]) didn't match contents") + signs = 0 + + update_icon() + updateUsrDialog() + + +/obj/structure/janitorialcart/update_icon() + cut_overlays() + if(mybag) + add_overlay("cart_garbage") + if(mymop) + add_overlay("cart_mop") + if(myspray) + add_overlay("cart_spray") + if(myreplacer) + add_overlay("cart_replacer") + if(signs) + add_overlay("cart_sign[signs]") + diff --git a/code/game/objects/structures/kitchen_spike.dm b/code/game/objects/structures/kitchen_spike.dm new file mode 100644 index 0000000..3edb59b --- /dev/null +++ b/code/game/objects/structures/kitchen_spike.dm @@ -0,0 +1,148 @@ +//////Kitchen Spike + +/obj/structure/kitchenspike_frame + name = "meatspike frame" + icon = 'icons/obj/kitchen.dmi' + icon_state = "spikeframe" + desc = "The frame of a meat spike." + density = 1 + anchored = 0 + obj_integrity = 200 + max_integrity = 200 + +/obj/structure/kitchenspike_frame/attackby(obj/item/I, mob/user, params) + add_fingerprint(user) + if(default_unfasten_wrench(user, I)) + return + else if(istype(I, /obj/item/stack/rods)) + var/obj/item/stack/rods/R = I + if(R.get_amount() >= 4) + R.use(4) + user << "You add spikes to the frame." + var/obj/F = new /obj/structure/kitchenspike(src.loc,) + transfer_fingerprints_to(F) + qdel(src) + else if(istype(I, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/WT = I + if(!WT.remove_fuel(0, user)) + return + user << "You begin cutting \the [src] apart..." + playsound(src.loc, "sound/items/Welder.ogg", 40, 1) + if(do_after(user, 40/WT.toolspeed, 1, target = src)) + if(!WT.isOn()) + return + playsound(src.loc, "sound/items/Welder.ogg", 50, 1) + visible_message("[user] slices apart \the [src].", + "You cut \the [src] apart with \the [WT].", + "You hear welding.") + new /obj/item/stack/sheet/metal(src.loc, 4) + qdel(src) + return + else + return ..() + +/obj/structure/kitchenspike + name = "meat spike" + icon = 'icons/obj/kitchen.dmi' + icon_state = "spike" + desc = "A spike for collecting meat from animals" + density = 1 + anchored = 1 + buckle_lying = 0 + can_buckle = 1 + obj_integrity = 250 + max_integrity = 250 + + +/obj/structure/kitchenspike/attack_paw(mob/user) + return src.attack_hand(usr) + + +/obj/structure/kitchenspike/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/crowbar)) + if(!has_buckled_mobs()) + playsound(loc, 'sound/items/Crowbar.ogg', 100, 1) + if(do_after(user, 20/I.toolspeed, target = src)) + user << "You pry the spikes out of the frame." + deconstruct(TRUE) + else + user << "You can't do that while something's on the spike!" + else + return ..() + +/obj/structure/kitchenspike/attack_hand(mob/user) + if(isliving(user.pulling) && user.a_intent == "grab" && !has_buckled_mobs()) + var/mob/living/L = user.pulling + if(do_mob(user, src, 120)) + if(has_buckled_mobs()) //to prevent spam/queing up attacks + return + if(L.buckled) + return + playsound(src.loc, "sound/effects/splat.ogg", 25, 1) + L.visible_message("[user] slams [L] onto the meat spike!", "[user] slams you onto the meat spike!", "You hear a squishy wet noise.") + L.loc = src.loc + L.emote("scream") + L.add_splatter_floor() + L.adjustBruteLoss(30) + L.setDir(2) + buckle_mob(L, force=1) + var/matrix/m180 = matrix(L.transform) + m180.Turn(180) + animate(L, transform = m180, time = 3) + L.pixel_y = L.get_standard_pixel_y_offset(180) + else if (has_buckled_mobs()) + for(var/mob/living/L in buckled_mobs) + user_unbuckle_mob(L, user) + else + ..() + + + +/obj/structure/kitchenspike/user_buckle_mob(mob/living/M, mob/living/user) //Don't want them getting put on the rack other than by spiking + return + +/obj/structure/kitchenspike/user_unbuckle_mob(mob/living/buckled_mob, mob/living/carbon/human/user) + if(buckled_mob) + var/mob/living/M = buckled_mob + if(M != user) + M.visible_message(\ + "[user.name] tries to pull [M.name] free of the [src]!",\ + "[user.name] is trying to pull you off the [src], opening up fresh wounds!",\ + "You hear a squishy wet noise.") + if(!do_after(user, 300, target = src)) + if(M && M.buckled) + M.visible_message(\ + "[user.name] fails to free [M.name]!",\ + "[user.name] fails to pull you off of the [src].") + return + + else + M.visible_message(\ + "[M.name] struggles to break free from the [src]!",\ + "You struggle to break free from the [src], exacerbating your wounds! (Stay still for two minutes.)",\ + "You hear a wet squishing noise..") + M.adjustBruteLoss(30) + if(!do_after(M, 1200, target = src)) + if(M && M.buckled) + M << "You fail to free yourself!" + return + if(!M.buckled) + return + var/matrix/m180 = matrix(M.transform) + m180.Turn(180) + animate(M, transform = m180, time = 3) + M.pixel_y = M.get_standard_pixel_y_offset(180) + M.adjustBruteLoss(30) + src.visible_message(text("[M] falls free of the [src]!")) + unbuckle_mob(M,force=1) + M.emote("scream") + M.AdjustWeakened(10) + +/obj/structure/kitchenspike/deconstruct(disassembled = TRUE) + if(disassembled) + var/obj/F = new /obj/structure/kitchenspike_frame(src.loc,) + transfer_fingerprints_to(F) + else + new /obj/item/stack/sheet/metal(src.loc, 4) + new /obj/item/stack/rods(loc, 4) + qdel(src) \ No newline at end of file diff --git a/code/game/objects/structures/ladders.dm b/code/game/objects/structures/ladders.dm new file mode 100644 index 0000000..fd24330 --- /dev/null +++ b/code/game/objects/structures/ladders.dm @@ -0,0 +1,99 @@ +/obj/structure/ladder + name = "ladder" + desc = "A sturdy metal ladder." + icon = 'icons/obj/structures.dmi' + icon_state = "ladder11" + var/id = null + var/height = 0 //the 'height' of the ladder. higher numbers are considered physically higher + var/obj/structure/ladder/down = null //the ladder below this one + var/obj/structure/ladder/up = null //the ladder above this one + +/obj/structure/ladder/unbreakable //mostly useful for awaymissions to prevent halting progress in a mission + name = "sturdy ladder" + desc = "An extremely sturdy metal ladder." + + +/obj/structure/ladder/New() + spawn(8) + for(var/obj/structure/ladder/L in world) + if(L.id == id) + if(L.height == (height - 1)) + down = L + continue + if(L.height == (height + 1)) + up = L + continue + + if(up && down) //if both our connections are filled + break + update_icon() + +/obj/structure/ladder/update_icon() + if(up && down) + icon_state = "ladder11" + + else if(up) + icon_state = "ladder10" + + else if(down) + icon_state = "ladder01" + + else //wtf make your ladders properly assholes + icon_state = "ladder00" + +/obj/structure/ladder/proc/go_up(mob/user,is_ghost) + if(!is_ghost) + show_fluff_message(1,user) + up.add_fingerprint(user) + user.loc = get_turf(up) + +/obj/structure/ladder/proc/go_down(mob/user,is_ghost) + if(!is_ghost) + show_fluff_message(0,user) + down.add_fingerprint(user) + user.loc = get_turf(down) + +/obj/structure/ladder/proc/use(mob/user,is_ghost=0) + if(up && down) + switch( alert("Go up or down the ladder?", "Ladder", "Up", "Down", "Cancel") ) + if("Up") + go_up(user,is_ghost) + if("Down") + go_down(user,is_ghost) + if("Cancel") + return + else if(up) + go_up(user,is_ghost) + else if(down) + go_down(user,is_ghost) + + if(!is_ghost) + add_fingerprint(user) + +/obj/structure/ladder/attack_hand(mob/user) + if(can_use(user)) + use(user) + +/obj/structure/ladder/attack_paw(mob/user) + return attack_hand(user) + +/obj/structure/ladder/attackby(obj/item/weapon/W, mob/user, params) + return attack_hand(user) + +/obj/structure/ladder/attack_ghost(mob/dead/observer/user) + use(user,1) + +/obj/structure/ladder/proc/show_fluff_message(up,mob/user) + if(up) + user.visible_message("[user] climbs up \the [src].","You climb up \the [src].") + else + user.visible_message("[user] climbs down \the [src].","You climb down \the [src].") + +/obj/structure/ladder/proc/can_use(mob/user) + return 1 + +/obj/structure/ladder/unbreakable/Destroy(force) + if(force) + . = ..() + else + return QDEL_HINT_LETMELIVE diff --git a/code/game/objects/structures/lattice.dm b/code/game/objects/structures/lattice.dm new file mode 100644 index 0000000..418243d --- /dev/null +++ b/code/game/objects/structures/lattice.dm @@ -0,0 +1,74 @@ +/obj/structure/lattice + name = "lattice" + desc = "A lightweight support lattice. These hold our station together." + icon = 'icons/obj/smooth_structures/lattice.dmi' + icon_state = "lattice" + density = 0 + anchored = 1 + armor = list(melee = 50, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 80, acid = 50) + obj_integrity = 50 + max_integrity = 50 + layer = LATTICE_LAYER //under pipes + var/obj/item/stack/rods/stored + canSmoothWith = list(/obj/structure/lattice, + /turf/open/floor, + /turf/closed/wall, + /obj/structure/falsewall) + smooth = SMOOTH_MORE + // flags = CONDUCT + +/obj/structure/lattice/New() + ..() + for(var/obj/structure/lattice/LAT in src.loc) + if(LAT != src) + qdel(LAT) + stored = new/obj/item/stack/rods(src) + +/obj/structure/lattice/Destroy() + qdel(stored) + stored = null + return ..() + +/obj/structure/lattice/blob_act(obj/structure/blob/B) + return + +/obj/structure/lattice/attackby(obj/item/C, mob/user, params) + if(istype(C, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/WT = C + if(WT.remove_fuel(0, user)) + user << "Slicing [name] joints ..." + deconstruct() + else + var/turf/T = get_turf(src) + return T.attackby(C, user) //hand this off to the turf instead (for building plating, catwalks, etc) + +/obj/structure/lattice/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + stored.forceMove(get_turf(src)) + stored = null + qdel(src) + +/obj/structure/lattice/singularity_pull(S, current_size) + if(current_size >= STAGE_FOUR) + deconstruct() + +/obj/structure/lattice/catwalk + name = "catwalk" + desc = "A catwalk for easier EVA maneuvering and cable placement." + icon = 'icons/obj/smooth_structures/catwalk.dmi' + icon_state = "catwalk" + smooth = SMOOTH_TRUE + canSmoothWith = null + +/obj/structure/lattice/catwalk/Move() + var/turf/T = loc + for(var/obj/structure/cable/C in T) + C.deconstruct() + ..() + +/obj/structure/lattice/catwalk/deconstruct() + var/turf/T = loc + for(var/obj/structure/cable/C in T) + C.deconstruct() + ..() + diff --git a/code/game/objects/structures/mineral_doors.dm b/code/game/objects/structures/mineral_doors.dm new file mode 100644 index 0000000..615bce7 --- /dev/null +++ b/code/game/objects/structures/mineral_doors.dm @@ -0,0 +1,222 @@ +//NOT using the existing /obj/machinery/door type, since that has some complications on its own, mainly based on its +//machineryness + +/obj/structure/mineral_door + name = "metal door" + density = 1 + anchored = 1 + opacity = 1 + + icon = 'icons/obj/doors/mineral_doors.dmi' + icon_state = "metal" + + var/initial_state + var/state = 0 //closed, 1 == open + var/isSwitchingStates = 0 + var/close_delay = -1 //-1 if does not auto close. + obj_integrity = 200 + max_integrity = 200 + armor = list(melee = 10, bullet = 0, laser = 0, energy = 100, bomb = 10, bio = 100, rad = 100, fire = 50, acid = 50) + var/sheetType = /obj/item/stack/sheet/metal + var/sheetAmount = 7 + var/openSound = 'sound/effects/stonedoor_openclose.ogg' + var/closeSound = 'sound/effects/stonedoor_openclose.ogg' + +/obj/structure/mineral_door/New(location) + ..() + initial_state = icon_state + air_update_turf(1) + +/obj/structure/mineral_door/Destroy() + density = 0 + air_update_turf(1) + return ..() + +/obj/structure/mineral_door/Move() + var/turf/T = loc + ..() + move_update_air(T) + +/obj/structure/mineral_door/Bumped(atom/user) + ..() + if(!state) + return TryToSwitchState(user) + +/obj/structure/mineral_door/attack_ai(mob/user) //those aren't machinery, they're just big fucking slabs of a mineral + if(isAI(user)) //so the AI can't open it + return + else if(iscyborg(user)) //but cyborgs can + if(get_dist(user,src) <= 1) //not remotely though + return TryToSwitchState(user) + +/obj/structure/mineral_door/attack_paw(mob/user) + return TryToSwitchState(user) + +/obj/structure/mineral_door/attack_hand(mob/user) + return TryToSwitchState(user) + +/obj/structure/mineral_door/CanPass(atom/movable/mover, turf/target, height=0) + if(istype(mover, /obj/effect/beam)) + return !opacity + return !density + +/obj/structure/mineral_door/CanAtmosPass() + return !density + +/obj/structure/mineral_door/proc/TryToSwitchState(atom/user) + if(isSwitchingStates) + return + if(isliving(user)) + var/mob/living/M = user + if(world.time - M.last_bumped <= 60) + return //NOTE do we really need that? + if(M.client) + if(iscarbon(M)) + var/mob/living/carbon/C = M + if(!C.handcuffed) + SwitchState() + else + SwitchState() + else if(istype(user, /obj/mecha)) + SwitchState() + +/obj/structure/mineral_door/proc/SwitchState() + if(state) + Close() + else + Open() + +/obj/structure/mineral_door/proc/Open() + isSwitchingStates = 1 + playsound(loc, openSound, 100, 1) + flick("[initial_state]opening",src) + sleep(10) + density = 0 + opacity = 0 + state = 1 + air_update_turf(1) + update_icon() + isSwitchingStates = 0 + + if(close_delay != -1) + addtimer(src, "Close", close_delay) + +/obj/structure/mineral_door/proc/Close() + if(isSwitchingStates || state != 1) + return + var/turf/T = get_turf(src) + for(var/mob/living/L in T) + return + isSwitchingStates = 1 + playsound(loc, closeSound, 100, 1) + flick("[initial_state]closing",src) + sleep(10) + density = 1 + opacity = 1 + state = 0 + air_update_turf(1) + update_icon() + isSwitchingStates = 0 + +/obj/structure/mineral_door/update_icon() + if(state) + icon_state = "[initial_state]open" + else + icon_state = initial_state + +/obj/structure/mineral_door/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W,/obj/item/weapon/pickaxe)) + var/obj/item/weapon/pickaxe/digTool = W + user << "You start digging the [name]..." + if(do_after(user,digTool.digspeed*(1+round(max_integrity*0.01)), target = src) && src) + user << "You finish digging." + deconstruct(TRUE) + else if(user.a_intent != "harm") + attack_hand(user) + else + return ..() + +/obj/structure/mineral_door/deconstruct(disassembled = TRUE) + var/turf/T = get_turf(src) + if(disassembled) + new sheetType(T, sheetAmount) + else + new sheetType(T, max(sheetAmount - 2, 1)) + qdel(src) + +/obj/structure/mineral_door/iron + name = "iron door" + obj_integrity = 300 + max_integrity = 300 + +/obj/structure/mineral_door/silver + name = "silver door" + icon_state = "silver" + sheetType = /obj/item/stack/sheet/mineral/silver + obj_integrity = 300 + max_integrity = 300 + +/obj/structure/mineral_door/gold + name = "gold door" + icon_state = "gold" + sheetType = /obj/item/stack/sheet/mineral/gold + +/obj/structure/mineral_door/uranium + name = "uranium door" + icon_state = "uranium" + sheetType = /obj/item/stack/sheet/mineral/uranium + obj_integrity = 300 + max_integrity = 300 + luminosity = 2 + +/obj/structure/mineral_door/sandstone + name = "sandstone door" + icon_state = "sandstone" + sheetType = /obj/item/stack/sheet/mineral/sandstone + obj_integrity = 100 + max_integrity = 100 + +/obj/structure/mineral_door/transparent + opacity = 0 + +/obj/structure/mineral_door/transparent/Close() + ..() + opacity = 0 + +/obj/structure/mineral_door/transparent/plasma + name = "plasma door" + icon_state = "plasma" + sheetType = /obj/item/stack/sheet/mineral/plasma + +/obj/structure/mineral_door/transparent/plasma/attackby(obj/item/weapon/W, mob/user, params) + if(W.is_hot()) + message_admins("Plasma mineral door ignited by [key_name_admin(user)](?) (FLW) in ([x],[y],[z] - JMP)",0,1) + log_game("Plasma mineral door ignited by [key_name(user)] in ([x],[y],[z])") + TemperatureAct() + else + return ..() + +/obj/structure/mineral_door/transparent/plasma/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) + if(exposed_temperature > 300) + TemperatureAct() + +/obj/structure/mineral_door/transparent/plasma/proc/TemperatureAct() + atmos_spawn_air("plasma=500;TEMP=1000") + deconstruct(FALSE) + +/obj/structure/mineral_door/transparent/diamond + name = "diamond door" + icon_state = "diamond" + sheetType = /obj/item/stack/sheet/mineral/diamond + obj_integrity = 1000 + max_integrity = 1000 + +/obj/structure/mineral_door/wood + name = "wood door" + icon_state = "wood" + openSound = 'sound/effects/doorcreaky.ogg' + closeSound = 'sound/effects/doorcreaky.ogg' + sheetType = /obj/item/stack/sheet/mineral/wood + resistance_flags = FLAMMABLE + obj_integrity = 200 + max_integrity = 200 diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm new file mode 100644 index 0000000..eba9b9f --- /dev/null +++ b/code/game/objects/structures/mirror.dm @@ -0,0 +1,222 @@ +//wip wip wup +/obj/structure/mirror + name = "mirror" + desc = "Mirror mirror on the wall, who's the most robust of them all?" + icon = 'icons/obj/watercloset.dmi' + icon_state = "mirror" + density = 0 + anchored = 1 + obj_integrity = 200 + max_integrity = 200 + integrity_failure = 100 + + +/obj/structure/mirror/attack_hand(mob/user) + if(broken || !Adjacent(user)) + return + + if(ishuman(user)) + var/mob/living/carbon/human/H = user + + var/userloc = H.loc + + //see code/modules/mob/new_player/preferences.dm at approx line 545 for comments! + //this is largely copypasted from there. + + //handle facial hair (if necessary) + if(H.gender == MALE) + var/new_style = input(user, "Select a facial hair style", "Grooming") as null|anything in facial_hair_styles_list + if(userloc != H.loc) + return //no tele-grooming + if(new_style) + H.facial_hair_style = new_style + else + H.facial_hair_style = "Shaved" + + //handle normal hair + var/new_style = input(user, "Select a hair style", "Grooming") as null|anything in hair_styles_list + if(userloc != H.loc) + return //no tele-grooming + if(new_style) + H.hair_style = new_style + + H.update_hair() + + +/obj/structure/mirror/obj_break(damage_flag) + if(!broken && !(flags & NODECONSTRUCT)) + icon_state = "mirror_broke" + playsound(src, "shatter", 70, 1) + desc = "Oh no, seven years of bad luck!" + broken = 1 + +/obj/structure/mirror/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + if(!disassembled) + new /obj/item/weapon/shard( src.loc ) + qdel(src) + +/obj/structure/mirror/attackby(obj/item/I, mob/living/user, params) + if(istype(I, /obj/item/weapon/weldingtool) && user.a_intent != "harm") + var/obj/item/weapon/weldingtool/WT = I + if(broken) + user.changeNext_move(CLICK_CD_MELEE) + if(WT.remove_fuel(0, user)) + user << "You begin repairing [src]..." + playsound(src, 'sound/items/Welder.ogg', 100, 1) + if(do_after(user, 10/I.toolspeed, target = src)) + if(!user || !WT || !WT.isOn()) + return + user << "You repair [src]." + broken = 0 + icon_state = initial(icon_state) + desc = initial(desc) + else + return ..() + +/obj/structure/mirror/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) + switch(damage_type) + if(BRUTE) + playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1) + if(BURN) + playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1) + + +/obj/structure/mirror/magic + name = "magic mirror" + desc = "Turn and face the strange... face." + icon_state = "magic_mirror" + var/list/races_blacklist = list("skeleton", "agent", "angel", "military_synth") + var/list/choosable_races = list() + +/obj/structure/mirror/magic/New() + if(!choosable_races.len) + for(var/speciestype in subtypesof(/datum/species)) + var/datum/species/S = new speciestype() + if(!(S.id in races_blacklist)) + choosable_races += S.id + ..() + +/obj/structure/mirror/magic/lesser/New() + choosable_races = roundstart_species + ..() + +/obj/structure/mirror/magic/badmin/New() + for(var/speciestype in subtypesof(/datum/species)) + var/datum/species/S = new speciestype() + choosable_races += S.id + ..() + +/obj/structure/mirror/magic/attack_hand(mob/user) + if(!ishuman(user)) + return + + var/mob/living/carbon/human/H = user + + var/choice = input(user, "Something to change?", "Magical Grooming") as null|anything in list("name", "race", "gender", "hair", "eyes") + + if(!Adjacent(user)) + return + + switch(choice) + if("name") + var/newname = copytext(sanitize(input(H, "Who are we again?", "Name change", H.name) as null|text),1,MAX_NAME_LEN) + + if(!newname) + return + if(!Adjacent(user)) + return + H.real_name = newname + H.name = newname + if(H.dna) + H.dna.real_name = newname + if(H.mind) + H.mind.name = newname + + if("race") + var/newrace + var/racechoice = input(H, "What are we again?", "Race change") as null|anything in choosable_races + newrace = species_list[racechoice] + + if(!newrace) + return + if(!Adjacent(user)) + return + H.set_species(newrace, icon_update=0) + + if(H.dna.species.use_skintones) + var/new_s_tone = input(user, "Choose your skin tone:", "Race change") as null|anything in skin_tones + + if(new_s_tone) + H.skin_tone = new_s_tone + H.dna.update_ui_block(DNA_SKIN_TONE_BLOCK) + + if(MUTCOLORS in H.dna.species.specflags) + var/new_mutantcolor = input(user, "Choose your skin color:", "Race change") as color|null + if(new_mutantcolor) + var/temp_hsv = RGBtoHSV(new_mutantcolor) + + if(ReadHSV(temp_hsv)[3] >= ReadHSV("#7F7F7F")[3]) // mutantcolors must be bright + H.dna.features["mcolor"] = sanitize_hexcolor(new_mutantcolor) + + else + H << "Invalid color. Your color is not bright enough." + + H.update_body() + H.update_hair() + H.update_body_parts() + H.update_mutations_overlay() // no hulk lizard + + if("gender") + if(!(H.gender in list("male", "female"))) //blame the patriarchy + return + if(!Adjacent(user)) + return + if(H.gender == "male") + if(alert(H, "Become a Witch?", "Confirmation", "Yes", "No") == "Yes") + H.gender = "female" + H << "Man, you feel like a woman!" + else + return + + else + if(alert(H, "Become a Warlock?", "Confirmation", "Yes", "No") == "Yes") + H.gender = "male" + H << "Whoa man, you feel like a man!" + else + return + H.dna.update_ui_block(DNA_GENDER_BLOCK) + H.update_body() + H.update_mutations_overlay() //(hulk male/female) + + if("hair") + var/hairchoice = alert(H, "Hair style or hair color?", "Change Hair", "Style", "Color") + if(!Adjacent(user)) + return + if(hairchoice == "Style") //So you just want to use a mirror then? + ..() + else + var/new_hair_color = input(H, "Choose your hair color", "Hair Color") as null|color + if(new_hair_color) + H.hair_color = sanitize_hexcolor(new_hair_color) + H.dna.update_ui_block(DNA_HAIR_COLOR_BLOCK) + if(H.gender == "male") + var/new_face_color = input(H, "Choose your facial hair color", "Hair Color") as null|color + if(new_face_color) + H.facial_hair_color = sanitize_hexcolor(new_face_color) + H.dna.update_ui_block(DNA_FACIAL_HAIR_COLOR_BLOCK) + H.update_hair() + + if("eyes") + var/new_eye_color = input(H, "Choose your eye color", "Eye Color") as null|color + if(!Adjacent(user)) + return + if(new_eye_color) + H.eye_color = sanitize_hexcolor(new_eye_color) + H.dna.update_ui_block(DNA_EYE_COLOR_BLOCK) + H.update_body() + if(choice) + curse(user) + +/obj/structure/mirror/magic/proc/curse(mob/living/user) + return \ No newline at end of file diff --git a/code/game/objects/structures/mop_bucket.dm b/code/game/objects/structures/mop_bucket.dm new file mode 100644 index 0000000..446c4ad --- /dev/null +++ b/code/game/objects/structures/mop_bucket.dm @@ -0,0 +1,23 @@ +/obj/structure/mopbucket + name = "mop bucket" + desc = "Fill it with water, but don't forget a mop!" + icon = 'icons/obj/janitor.dmi' + icon_state = "mopbucket" + density = 1 + flags = OPENCONTAINER + var/amount_per_transfer_from_this = 5 //shit I dunno, adding this so syringes stop runtime erroring. --NeoFite + + +/obj/structure/mopbucket/New() + create_reagents(100) + +/obj/structure/mopbucket/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/mop)) + if(reagents.total_volume < 1) + user << "[src] is out of water!
          " + else + reagents.trans_to(I, 5) + user << "You wet [I] in [src]." + playsound(loc, 'sound/effects/slosh.ogg', 25, 1) + else + return ..() \ No newline at end of file diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm new file mode 100644 index 0000000..fd31db3 --- /dev/null +++ b/code/game/objects/structures/morgue.dm @@ -0,0 +1,298 @@ +/* Morgue stuff + * Contains: + * Morgue + * Morgue tray + * Crematorium + * Crematorium tray + * Crematorium button + */ + +/* + * Bodycontainer + * Parent class for morgue and crematorium + * For overriding only + */ +/obj/structure/bodycontainer + icon = 'icons/obj/stationobjs.dmi' + icon_state = "morgue1" + density = 1 + anchored = 1 + obj_integrity = 400 + max_integrity = 400 + + var/obj/structure/tray/connected = null + var/locked = 0 + var/opendir = SOUTH + +/obj/structure/bodycontainer/New() + ..() + +/obj/structure/bodycontainer/Destroy() + open() + if(connected) + qdel(connected) + connected = null + return ..() + +/obj/structure/bodycontainer/on_log() + update_icon() + +/obj/structure/bodycontainer/update_icon() + return + +/obj/structure/bodycontainer/relaymove(mob/user) + if(user.stat || !isturf(loc)) + return + open() + +/obj/structure/bodycontainer/attack_paw(mob/user) + return src.attack_hand(user) + +/obj/structure/bodycontainer/attack_hand(mob/user) + if(locked) + user << "It's locked." + return + if(!connected) + user << "That doesn't appear to have a tray." + return + if(connected.loc == src) + open() + else + close() + add_fingerprint(user) + +/obj/structure/bodycontainer/attackby(obj/P, mob/user, params) + add_fingerprint(user) + if(istype(P, /obj/item/weapon/pen)) + var/t = stripped_input(user, "What would you like the label to be?", text("[]", name), null) + if (user.get_active_held_item() != P) + return + if ((!in_range(src, usr) && src.loc != user)) + return + if (t) + name = text("[]- '[]'", initial(name), t) + else + name = initial(name) + else + return ..() + +/obj/structure/bodycontainer/deconstruct(disassembled = TRUE) + new /obj/item/stack/sheet/metal (loc, 5) + qdel(src) + +/obj/structure/bodycontainer/container_resist() + open() + +/obj/structure/bodycontainer/relay_container_resist(mob/living/user, obj/O) + user << "You slam yourself into the side of [O]." + container_resist() + +/obj/structure/bodycontainer/proc/open() + playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + var/turf/T = get_step(src, opendir) + for(var/atom/movable/AM in src) + AM.forceMove(T) + update_icon() + +/obj/structure/bodycontainer/proc/close() + playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + for(var/atom/movable/AM in connected.loc) + if(!AM.anchored || AM == connected) + AM.forceMove(src) + update_icon() + +/obj/structure/bodycontainer/get_remote_view_fullscreens(mob/user) + if(user.stat == DEAD || !(user.sight & (SEEOBJS|SEEMOBS))) + user.overlay_fullscreen("remote_view", /obj/screen/fullscreen/impaired, 2) +/* + * Morgue + */ +/obj/structure/bodycontainer/morgue + name = "morgue" + desc = "Used to keep bodies in until someone fetches them." + icon_state = "morgue1" + opendir = EAST + +/obj/structure/bodycontainer/morgue/New() + connected = new/obj/structure/tray/m_tray(src) + connected.connected = src + ..() + +/obj/structure/bodycontainer/morgue/update_icon() + if (!connected || connected.loc != src) // Open or tray is gone. + icon_state = "morgue0" + else + if(contents.len == 1) // Empty + icon_state = "morgue1" + else + icon_state = "morgue2" // Dead, brainded mob. + var/list/compiled = recursive_mob_check(src, 0, 0) // Search for mobs in all contents. + if(!length(compiled)) // No mobs? + icon_state = "morgue3" + return + for(var/mob/living/M in compiled) + if(M.client && !M.suiciding) + icon_state = "morgue4" // Cloneable + break + +/* + * Crematorium + */ +var/global/list/crematoriums = new/list() +/obj/structure/bodycontainer/crematorium + name = "crematorium" + desc = "A human incinerator. Works well on barbeque nights." + icon_state = "crema1" + opendir = SOUTH + var/id = 1 + +/obj/structure/bodycontainer/crematorium/Destroy() + crematoriums.Remove(src) + return ..() + +/obj/structure/bodycontainer/crematorium/New() + connected = new/obj/structure/tray/c_tray(src) + connected.connected = src + + crematoriums.Add(src) + ..() + +/obj/structure/bodycontainer/crematorium/update_icon() + if(!connected || connected.loc != src) + icon_state = "crema0" + else + + if(src.contents.len > 1) + src.icon_state = "crema2" + else + src.icon_state = "crema1" + + if(locked) + src.icon_state = "crema_active" + + return + +/obj/structure/bodycontainer/crematorium/proc/cremate(mob/user) + if(locked) + return //don't let you cremate something twice or w/e + + if(contents.len <= 1) + audible_message("You hear a hollow crackle.") + return + + else + audible_message("You hear a roar as the crematorium activates.") + + locked = 1 + update_icon() + + for(var/mob/living/M in contents) + if (M.stat != DEAD) + M.emote("scream") + if(user) + user.attack_log +="\[[time_stamp()]\] Cremated [M]/[M.ckey]" + log_attack("\[[time_stamp()]\] [user]/[user.ckey] cremated [M]/[M.ckey]") + else + log_attack("\[[time_stamp()]\] UNKNOWN cremated [M]/[M.ckey]") + M.death(1) + if(M) //some animals get automatically deleted on death. + M.ghostize() + qdel(M) + + for(var/obj/O in contents) //obj instead of obj/item so that bodybags and ashes get destroyed. We dont want tons and tons of ash piling up + if(O != connected) //Creamtorium does not burn hot enough to destroy the tray + qdel(O) + + new /obj/effect/decal/cleanable/ash(src) + sleep(30) + if(!qdeleted(src)) + locked = 0 + update_icon() + playsound(src.loc, 'sound/machines/ding.ogg', 50, 1) //you horrible people + + +/* + * Generic Tray + * Parent class for morguetray and crematoriumtray + * For overriding only + */ +/obj/structure/tray + icon = 'icons/obj/stationobjs.dmi' + density = 1 + layer = BELOW_OBJ_LAYER + var/obj/structure/bodycontainer/connected = null + anchored = 1 + pass_flags = LETPASSTHROW + obj_integrity = 350 + max_integrity = 350 + +/obj/structure/tray/Destroy() + if(connected) + connected.connected = null + connected.update_icon() + connected = null + return ..() + +/obj/structure/tray/deconstruct(disassembled = TRUE) + new /obj/item/stack/sheet/metal (loc, 2) + qdel(src) + +/obj/structure/tray/attack_paw(mob/user) + return src.attack_hand(user) + +/obj/structure/tray/attack_hand(mob/user) + if (src.connected) + connected.close() + add_fingerprint(user) + else + user << "That's not connected to anything!" + +/obj/structure/tray/MouseDrop_T(atom/movable/O as mob|obj, mob/user) + if(!istype(O, /atom/movable) || O.anchored || !Adjacent(user) || !user.Adjacent(O) || O.loc == user) + return + if(!ismob(O)) + if(!istype(O, /obj/structure/closet/body_bag)) + return + else + var/mob/M = O + if(M.buckled) + return + if(!ismob(user) || user.lying || user.incapacitated()) + return + O.loc = src.loc + if (user != O) + visible_message("[user] stuffs [O] into [src].") + return + +/* + * Crematorium tray + */ +/obj/structure/tray/c_tray + name = "crematorium tray" + desc = "Apply body before burning." + icon_state = "cremat" + +/* + * Morgue tray + */ +/obj/structure/tray/m_tray + name = "morgue tray" + desc = "Apply corpse before closing." + icon_state = "morguet" + +/obj/structure/tray/m_tray/CanPass(atom/movable/mover, turf/target, height=0) + if(height == 0) + return 1 + + if(istype(mover) && mover.checkpass(PASSTABLE)) + return 1 + if(locate(/obj/structure/table) in get_turf(mover)) + return 1 + else + return 0 + +/obj/structure/tray/m_tray/CanAStarPass(ID, dir, caller) + . = !density + if(ismovableatom(caller)) + var/atom/movable/mover = caller + . = . || mover.checkpass(PASSTABLE) diff --git a/code/game/objects/structures/musician.dm b/code/game/objects/structures/musician.dm new file mode 100644 index 0000000..66ff53e --- /dev/null +++ b/code/game/objects/structures/musician.dm @@ -0,0 +1,368 @@ +//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32 + +/datum/song + var/name = "Untitled" + var/list/lines = new() + var/tempo = 5 // delay between notes + + var/playing = 0 // if we're playing + var/help = 0 // if help is open + var/edit = 1 // if we're in editing mode + var/repeat = 0 // number of times remaining to repeat + var/max_repeats = 10 // maximum times we can repeat + + var/instrumentDir = "piano" // the folder with the sounds + var/instrumentExt = "ogg" // the file extension + var/obj/instrumentObj = null // the associated obj playing the sound + +/datum/song/New(dir, obj) + tempo = sanitize_tempo(tempo) + instrumentDir = dir + instrumentObj = obj + +/datum/song/Destroy() + instrumentObj = null + return ..() + +// note is a number from 1-7 for A-G +// acc is either "b", "n", or "#" +// oct is 1-8 (or 9 for C) +/datum/song/proc/playnote(note, acc as text, oct) + // handle accidental -> B<>C of E<>F + if(acc == "b" && (note == 3 || note == 6)) // C or F + if(note == 3) + oct-- + note-- + acc = "n" + else if(acc == "#" && (note == 2 || note == 5)) // B or E + if(note == 2) + oct++ + note++ + acc = "n" + else if(acc == "#" && (note == 7)) //G# + note = 1 + acc = "b" + else if(acc == "#") // mass convert all sharps to flats, octave jump already handled + acc = "b" + note++ + + // check octave, C is allowed to go to 9 + if(oct < 1 || (note == 3 ? oct > 9 : oct > 8)) + return + + // now generate name + var/soundfile = "sound/[instrumentDir]/[ascii2text(note+64)][acc][oct].[instrumentExt]" + soundfile = file(soundfile) + // make sure the note exists + if(!fexists(soundfile)) + return + // and play + var/turf/source = get_turf(instrumentObj) + for(var/mob/M in get_hearers_in_view(15, source)) + if(!M.client || !(M.client.prefs.toggles & SOUND_INSTRUMENTS)) + continue + M.playsound_local(source, soundfile, 100, falloff = 5) + +/datum/song/proc/updateDialog(mob/user) + instrumentObj.updateDialog() // assumes it's an object in world, override if otherwise + +/datum/song/proc/shouldStopPlaying(mob/user) + if(instrumentObj) + if(!user.canUseTopic(instrumentObj)) + return 1 + return !instrumentObj.anchored // add special cases to stop in subclasses + else + return 1 + +/datum/song/proc/playsong(mob/user) + while(repeat >= 0) + var/cur_oct[7] + var/cur_acc[7] + for(var/i = 1 to 7) + cur_oct[i] = 3 + cur_acc[i] = "n" + + for(var/line in lines) + //world << line + for(var/beat in splittext(lowertext(line), ",")) + //world << "beat: [beat]" + var/list/notes = splittext(beat, "/") + for(var/note in splittext(notes[1], "-")) + //world << "note: [note]" + if(!playing || shouldStopPlaying(user))//If the instrument is playing, or special case + playing = 0 + return + if(lentext(note) == 0) + continue + //world << "Parse: [copytext(note,1,2)]" + var/cur_note = text2ascii(note) - 96 + if(cur_note < 1 || cur_note > 7) + continue + for(var/i=2 to lentext(note)) + var/ni = copytext(note,i,i+1) + if(!text2num(ni)) + if(ni == "#" || ni == "b" || ni == "n") + cur_acc[cur_note] = ni + else if(ni == "s") + cur_acc[cur_note] = "#" // so shift is never required + else + cur_oct[cur_note] = text2num(ni) + playnote(cur_note, cur_acc[cur_note], cur_oct[cur_note]) + if(notes.len >= 2 && text2num(notes[2])) + sleep(sanitize_tempo(tempo / text2num(notes[2]))) + else + sleep(tempo) + repeat-- + if(repeat >= 0) // don't show the last -1 repeat + updateDialog(user) + playing = 0 + repeat = 0 + updateDialog(user) + +/datum/song/proc/interact(mob/user) + var/dat = "" + + if(lines.len > 0) + dat += "

          Playback

          " + if(!playing) + dat += "Play Stop

          " + dat += "Repeat Song: " + dat += repeat > 0 ? "--" : "--" + dat += " [repeat] times " + dat += repeat < max_repeats ? "++" : "++" + dat += "
          " + else + dat += "Play Stop
          " + dat += "Repeats left: [repeat]
          " + if(!edit) + dat += "
          Show Editor
          " + else + dat += "

          Editing

          " + dat += "Hide Editor" + dat += " Start a New Song" + dat += " Import a Song

          " + var/bpm = round(600 / tempo) + dat += "Tempo: - [bpm] BPM +

          " + var/linecount = 0 + for(var/line in lines) + linecount += 1 + dat += "Line [linecount]: Edit X [line]
          " + dat += "Add Line

          " + if(help) + dat += "Hide Help
          " + dat += {" + Lines are a series of chords, separated by commas (,), each with notes seperated by hyphens (-).
          + Every note in a chord will play together, with chord timed by the tempo.
          +
          + Notes are played by the names of the note, and optionally, the accidental, and/or the octave number.
          + By default, every note is natural and in octave 3. Defining otherwise is remembered for each note.
          + Example: C,D,E,F,G,A,B will play a C major scale.
          + After a note has an accidental placed, it will be remembered: C,C4,C,C3 is C3,C4,C4,C3
          + Chords can be played simply by seperating each note with a hyphon: A-C#,Cn-E,E-G#,Gn-B
          + A pause may be denoted by an empty chord: C,E,,C,G
          + To make a chord be a different time, end it with /x, where the chord length will be length
          + defined by tempo / x: C,G/2,E/4
          + Combined, an example is: E-E4/4,F#/2,G#/8,B/8,E3-E4/4 +
          + Lines may be up to 50 characters.
          + A song may only contain up to 50 lines.
          + "} + else + dat += "Show Help
          " + + var/datum/browser/popup = new(user, "instrument", instrumentObj.name, 700, 500) + popup.set_content(dat) + popup.set_title_image(user.browse_rsc_icon(instrumentObj.icon, instrumentObj.icon_state)) + popup.open() + + +/datum/song/Topic(href, href_list) + if(!usr.canUseTopic(instrumentObj)) + usr << browse(null, "window=instrument") + usr.unset_machine() + return + + instrumentObj.add_fingerprint(usr) + + if(href_list["newsong"]) + lines = new() + tempo = sanitize_tempo(5) // default 120 BPM + name = "" + + else if(href_list["import"]) + var/t = "" + do + t = html_encode(input(usr, "Please paste the entire song, formatted:", text("[]", name), t) as message) + if(!in_range(instrumentObj, usr)) + return + + if(lentext(t) >= 3072) + var/cont = input(usr, "Your message is too long! Would you like to continue editing it?", "", "yes") in list("yes", "no") + if(cont == "no") + break + while(lentext(t) > 3072) + + //split into lines + spawn() + lines = splittext(t, "\n") + if(copytext(lines[1],1,6) == "BPM: ") + tempo = sanitize_tempo(600 / text2num(copytext(lines[1],6))) + lines.Cut(1,2) + else + tempo = sanitize_tempo(5) // default 120 BPM + if(lines.len > 50) + usr << "Too many lines!" + lines.Cut(51) + var/linenum = 1 + for(var/l in lines) + if(lentext(l) > 50) + usr << "Line [linenum] too long!" + lines.Remove(l) + else + linenum++ + updateDialog(usr) // make sure updates when complete + + else if(href_list["help"]) + help = text2num(href_list["help"]) - 1 + + else if(href_list["edit"]) + edit = text2num(href_list["edit"]) - 1 + + if(href_list["repeat"]) //Changing this from a toggle to a number of repeats to avoid infinite loops. + if(playing) + return //So that people cant keep adding to repeat. If the do it intentionally, it could result in the server crashing. + repeat += round(text2num(href_list["repeat"])) + if(repeat < 0) + repeat = 0 + if(repeat > max_repeats) + repeat = max_repeats + + else if(href_list["tempo"]) + tempo = sanitize_tempo(tempo + text2num(href_list["tempo"])) + + else if(href_list["play"]) + playing = 1 + spawn() + playsong(usr) + + else if(href_list["newline"]) + var/newline = html_encode(input("Enter your line: ", instrumentObj.name) as text|null) + if(!newline || !in_range(instrumentObj, usr)) + return + if(lines.len > 50) + return + if(lentext(newline) > 50) + newline = copytext(newline, 1, 50) + lines.Add(newline) + + else if(href_list["deleteline"]) + var/num = round(text2num(href_list["deleteline"])) + if(num > lines.len || num < 1) + return + lines.Cut(num, num+1) + + else if(href_list["modifyline"]) + var/num = round(text2num(href_list["modifyline"]),1) + var/content = html_encode(input("Enter your line: ", instrumentObj.name, lines[num]) as text|null) + if(!content || !in_range(instrumentObj, usr)) + return + if(lentext(content) > 50) + content = copytext(content, 1, 50) + if(num > lines.len || num < 1) + return + lines[num] = content + + else if(href_list["stop"]) + playing = 0 + + updateDialog(usr) + return + +/datum/song/proc/sanitize_tempo(new_tempo) + new_tempo = abs(new_tempo) + return max(round(new_tempo, world.tick_lag), world.tick_lag) + +// subclass for handheld instruments, like violin +/datum/song/handheld + +/datum/song/handheld/updateDialog(mob/user) + instrumentObj.interact(user) + +/datum/song/handheld/shouldStopPlaying() + if(instrumentObj) + return !isliving(instrumentObj.loc) + else + return 1 + + +////////////////////////////////////////////////////////////////////////// + + +/obj/structure/piano + name = "space minimoog" + icon = 'icons/obj/musician.dmi' + icon_state = "minimoog" + anchored = 1 + density = 1 + var/datum/song/song + + +/obj/structure/piano/New() + song = new("piano", src) + + if(prob(50)) + name = "space minimoog" + desc = "This is a minimoog, like a space piano, but more spacey!" + icon_state = "minimoog" + else + name = "space piano" + desc = "This is a space piano, like a regular piano, but always in tune! Even if the musician isn't." + icon_state = "piano" + +/obj/structure/piano/Destroy() + qdel(song) + song = null + return ..() + +/obj/structure/piano/initialize() + song.tempo = song.sanitize_tempo(song.tempo) // tick_lag isn't set when the map is loaded + ..() + +/obj/structure/piano/attack_hand(mob/user) + if(!user.IsAdvancedToolUser()) + user << "You don't have the dexterity to do this!" + return 1 + interact(user) + +/obj/structure/piano/attack_paw(mob/user) + return src.attack_hand(user) + +/obj/structure/piano/interact(mob/user) + if(!user || !anchored) + return + + user.set_machine(src) + song.interact(user) + +/obj/structure/piano/attackby(obj/item/O, mob/user, params) + if (istype(O, /obj/item/weapon/wrench)) + if (!anchored && !isinspace()) + playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + user << " You begin to tighten \the [src] to the floor..." + if (do_after(user, 20/O.toolspeed, target = src)) + user.visible_message( \ + "[user] tightens \the [src]'s casters.", \ + "You tighten \the [src]'s casters. Now it can be played again.", \ + "You hear ratchet.") + anchored = 1 + else if(anchored) + playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + user << " You begin to loosen \the [src]'s casters..." + if (do_after(user, 40/O.toolspeed, target = src)) + user.visible_message( \ + "[user] loosens \the [src]'s casters.", \ + "You loosen \the [src]. Now it can be pulled somewhere else.", \ + "You hear ratchet.") + anchored = 0 + else + return ..() diff --git a/code/game/objects/structures/noticeboard.dm b/code/game/objects/structures/noticeboard.dm new file mode 100644 index 0000000..f547b88 --- /dev/null +++ b/code/game/objects/structures/noticeboard.dm @@ -0,0 +1,85 @@ +/obj/structure/noticeboard + name = "notice board" + desc = "A board for pinning important notices upon." + icon = 'icons/obj/stationobjs.dmi' + icon_state = "nboard00" + density = 0 + anchored = 1 + obj_integrity = 150 + max_integrity = 150 + var/notices = 0 + +/obj/structure/noticeboard/initialize() + for(var/obj/item/I in loc) + if(notices > 4) break + if(istype(I, /obj/item/weapon/paper)) + I.loc = src + notices++ + icon_state = "nboard0[notices]" + +//attaching papers!! +/obj/structure/noticeboard/attackby(obj/item/weapon/O, mob/user, params) + if(istype(O, /obj/item/weapon/paper)) + if(notices < 5) + if(!user.drop_item()) + return + O.add_fingerprint(user) + add_fingerprint(user) + O.loc = src + notices++ + icon_state = "nboard0[notices]" //update sprite + user << "You pin the paper to the noticeboard." + else + user << "You reach to pin your paper to the board but hesitate. You are certain your paper will not be seen among the many others already attached." + else + return ..() + +/obj/structure/noticeboard/attack_hand(mob/user) + var/dat = "Noticeboard
          " + for(var/obj/item/weapon/paper/P in src) + dat += "[P.name] Write Remove
          " + user << browse("Notices[dat]","window=noticeboard") + onclose(user, "noticeboard") + + +/obj/structure/noticeboard/Topic(href, href_list) + ..() + usr.set_machine(src) + if(href_list["remove"]) + if((usr.stat || usr.restrained())) //For when a player is handcuffed while they have the notice window open + return + var/obj/item/P = locate(href_list["remove"]) + if((P && P.loc == src)) + P.loc = get_turf(src) //dump paper on the floor because you're a clumsy fuck + P.add_fingerprint(usr) + add_fingerprint(usr) + notices-- + icon_state = "nboard0[notices]" + + if(href_list["write"]) + if((usr.stat || usr.restrained())) //For when a player is handcuffed while they have the notice window open + return + var/obj/item/P = locate(href_list["write"]) + + if((P && P.loc == src)) //ifthe paper's on the board + var/obj/item/I = usr.is_holding_item_of_type(/obj/item/weapon/pen) + if(I) //check hand for pen + add_fingerprint(usr) + P.attackby(I, usr) + else + usr << "You'll need something to write with!" + + if(href_list["read"]) + var/obj/item/weapon/paper/P = locate(href_list["read"]) + if((P && P.loc == src)) + if(!ishuman(usr)) + usr << browse("[P.name][stars(P.info)]", "window=[P.name]") + onclose(usr, "[P.name]") + else + usr << browse("[P.name][P.info]", "window=[P.name]") + onclose(usr, "[P.name]") + +/obj/structure/noticeboard/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + new /obj/item/stack/sheet/metal (loc, 1) + qdel(src) diff --git a/code/game/objects/structures/plasticflaps.dm b/code/game/objects/structures/plasticflaps.dm new file mode 100644 index 0000000..c9adc35 --- /dev/null +++ b/code/game/objects/structures/plasticflaps.dm @@ -0,0 +1,63 @@ +/obj/structure/plasticflaps //HOW DO YOU CALL THOSE THINGS ANYWAY + name = "plastic flaps" + desc = "Definitely can't get past those. No way." + icon = 'icons/obj/stationobjs.dmi' //Change this. + icon_state = "plasticflaps" + density = 0 + anchored = 1 + layer = ABOVE_MOB_LAYER + +/obj/structure/plasticflaps/CanAStarPass(ID, to_dir, caller) + if(isliving(caller)) + if(isbot(caller)) + return 1 + + var/mob/living/M = caller + if(!M.ventcrawler && M.mob_size != MOB_SIZE_TINY) + return 0 + + return 1 //diseases, stings, etc can pass + +/obj/structure/plasticflaps/CanPass(atom/movable/A, turf/T) + if(istype(A) && A.checkpass(PASSGLASS)) + return prob(60) + + var/obj/structure/bed/B = A + if(istype(A, /obj/structure/bed) && (B.has_buckled_mobs() || B.density))//if it's a bed/chair and is dense or someone is buckled, it will not pass + return 0 + + if(istype(A, /obj/structure/closet/cardboard)) + var/obj/structure/closet/cardboard/C = A + if(C.move_delay) + return 0 + + if(istype(A, /obj/mecha)) + return 0 + + + else if(isliving(A)) // You Shall Not Pass! + var/mob/living/M = A + if(isbot(A)) //Bots understand the secrets + return 1 + if(M.buckled && istype(M.buckled, /mob/living/simple_animal/bot/mulebot)) // mulebot passenger gets a free pass. + return 1 + if(!M.lying && !M.ventcrawler && M.mob_size != MOB_SIZE_TINY) //If your not laying down, or a ventcrawler or a small creature, no pass. + return 0 + return ..() + +/obj/structure/plasticflaps/mining //A specific type for mining that doesn't allow airflow because of them damn crates + name = "airtight plastic flaps" + desc = "Heavy duty, airtight, plastic flaps." + +/obj/structure/plasticflaps/mining/New() + air_update_turf(1) + . = ..() + +/obj/structure/plasticflaps/mining/CanAtmosPass() + return FALSE + +/obj/structure/plasticflaps/mining/Destroy() + var/atom/oldloc = loc + . = ..() + if (oldloc) + oldloc.air_update_turf(1) diff --git a/code/game/objects/structures/reflector.dm b/code/game/objects/structures/reflector.dm new file mode 100644 index 0000000..bbde073 --- /dev/null +++ b/code/game/objects/structures/reflector.dm @@ -0,0 +1,217 @@ +/obj/structure/reflector + name = "reflector frame" + icon = 'icons/obj/stock_parts.dmi' + icon_state = "box_0" + desc = "An angled mirror for reflecting lasers. This one does so at a 90 degree angle." + anchored = 0 + density = 1 + layer = BELOW_OBJ_LAYER + var/finished = 0 + var/admin = 0 //Can't be rotated or deconstructed + var/framebuildstacktype = /obj/item/stack/sheet/metal + var/framebuildstackamount = 5 + var/buildstacktype = /obj/item/stack/sheet/metal + var/buildstackamount = 0 + +/obj/structure/reflector/bullet_act(obj/item/projectile/P) + var/turf/reflector_turf = get_turf(src) + var/turf/reflect_turf + var/new_dir = get_reflection(src.dir,P.dir) + if(!istype(P, /obj/item/projectile/beam)) + return..() + if(new_dir) + reflect_turf = get_step(reflect_turf, new_dir) + else + visible_message("[src] is hit by the [P]!") + new_dir = 0 + return ..() //Hits as normal, explodes or emps or whatever + + reflect_turf = get_step(loc,new_dir) + + P.original = reflect_turf + P.starting = reflector_turf + P.current = reflector_turf + P.yo = reflect_turf.y - reflector_turf.y + P.xo = reflect_turf.x - reflector_turf.x + P.range = initial(P.range) //Keep the projectile healthy as long as its bouncing off things + new_dir = 0 + return - 1 + + +/obj/structure/reflector/attackby(obj/item/weapon/W, mob/user, params) + if(admin) + return + if(istype(W, /obj/item/weapon/wrench)) + if(anchored) + user << "Unweld the [src] first!" + if(do_after(user, 80/W.toolspeed, target = src)) + playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + user << "You dismantle the [src]." + new framebuildstacktype(loc, framebuildstackamount) + new buildstacktype(loc, buildstackamount) + qdel(src) + else if(istype(W, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/WT = W + switch(anchored) + if(0) + if (WT.remove_fuel(0,user)) + playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1) + user.visible_message("[user.name] starts to weld the [src.name] to the floor.", \ + "You start to weld \the [src] to the floor...", \ + "You hear welding.") + if (do_after(user,20/W.toolspeed, target = src)) + if(!src || !WT.isOn()) + return + anchored = 1 + user << "You weld \the [src] to the floor." + if(1) + if (WT.remove_fuel(0,user)) + playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1) + user.visible_message("[user.name] starts to cut the [src.name] free from the floor.", \ + "You start to cut \the [src] free from the floor...", \ + "You hear welding.") + if (do_after(user,20/W.toolspeed, target = src)) + if(!src || !WT.isOn()) + return + anchored = 0 + user << "You cut \the [src] free from the floor." + //Finishing the frame + else if(istype(W,/obj/item/stack/sheet)) + if(finished) + return + var/obj/item/stack/sheet/S = W + if(istype(W, /obj/item/stack/sheet/glass)) + if(S.get_amount() < 5) + user << "You need five sheets of glass to create a reflector!" + return + else + S.use(5) + new /obj/structure/reflector/single (src.loc) + qdel (src) + if(istype(W,/obj/item/stack/sheet/rglass)) + if(S.get_amount() < 10) + user << "You need ten sheets of reinforced glass to create a double reflector!" + return + else + S.use(10) + new /obj/structure/reflector/double (src.loc) + qdel(src) + if(istype(W, /obj/item/stack/sheet/mineral/diamond)) + if(S.get_amount() >= 1) + S.use(1) + new /obj/structure/reflector/box (src.loc) + qdel(src) + else + return ..() + +/obj/structure/reflector/proc/get_reflection(srcdir,pdir) + return 0 + + +/obj/structure/reflector/verb/rotate() + set name = "Rotate" + set category = "Object" + set src in oview(1) + + if(usr.stat || !usr.canmove || usr.restrained()) + return + if (src.anchored) + usr << "It is fastened to the floor!" + return 0 + src.setDir(turn(src.dir, 270)) + return 1 + + +/obj/structure/reflector/AltClick(mob/user) + ..() + if(!user.canUseTopic(src, be_close=TRUE)) + user << "You can't do that right now!" + return + else + rotate() + + +//TYPES OF REFLECTORS, SINGLE, DOUBLE, BOX + +//SINGLE + +/obj/structure/reflector/single + name = "reflector" + icon = 'icons/obj/structures.dmi' + icon_state = "reflector" + desc = "A double sided angled mirror for reflecting lasers. This one does so at a 90 degree angle." + finished = 1 + var/static/list/rotations = list("[NORTH]" = list("[SOUTH]" = WEST, "[EAST]" = NORTH), +"[EAST]" = list("[SOUTH]" = EAST, "[WEST]" = NORTH), +"[SOUTH]" = list("[NORTH]" = EAST, "[WEST]" = SOUTH), +"[WEST]" = list("[NORTH]" = WEST, "[EAST]" = SOUTH) ) + buildstacktype = /obj/item/stack/sheet/glass + buildstackamount = 5 + +/obj/structure/reflector/single/get_reflection(srcdir,pdir) + var/new_dir = rotations["[srcdir]"]["[pdir]"] + return new_dir + +/obj/structure/reflector/single/mapping + admin = 1 + anchored = 1 + +//DOUBLE + +/obj/structure/reflector/double + name = "double sided reflector" + icon = 'icons/obj/structures.dmi' + icon_state = "reflector_double" + desc = "A double sided angled mirror for reflecting lasers. This one does so at a 90 degree angle." + finished = 1 + var/static/list/double_rotations = list("[NORTH]" = list("[NORTH]" = WEST, "[EAST]" = SOUTH, "[SOUTH]" = EAST, "[WEST]" = NORTH), +"[EAST]" = list("[NORTH]" = EAST, "[WEST]" = SOUTH, "[SOUTH]" = WEST, "[EAST]" = NORTH), +"[SOUTH]" = list("[NORTH]" = EAST, "[WEST]" = SOUTH, "[SOUTH]" = WEST, "[EAST]" = NORTH), +"[WEST]" = list("[NORTH]" = WEST, "[EAST]" = SOUTH, "[SOUTH]" = EAST, "[WEST]" = NORTH) ) + buildstacktype = /obj/item/stack/sheet/rglass + buildstackamount = 10 + +/obj/structure/reflector/double/get_reflection(srcdir,pdir) + var/new_dir = double_rotations["[srcdir]"]["[pdir]"] + return new_dir + +/obj/structure/reflector/double/mapping + admin = 1 + anchored = 1 + +//BOX + +/obj/structure/reflector/box + name = "reflector box" + icon = 'icons/obj/structures.dmi' + icon_state = "reflector_box" + desc = "A box with an internal set of mirrors that reflects all laser fire in a single direction." + finished = 1 + var/static/list/box_rotations = list("[NORTH]" = list("[SOUTH]" = NORTH, "[EAST]" = NORTH, "[WEST]" = NORTH, "[NORTH]" = NORTH), +"[EAST]" = list("[SOUTH]" = EAST, "[EAST]" = EAST, "[WEST]" = EAST, "[NORTH]" = EAST), +"[SOUTH]" = list("[SOUTH]" = SOUTH, "[EAST]" = SOUTH, "[WEST]" = SOUTH, "[NORTH]" = SOUTH), +"[WEST]" = list("[SOUTH]" = WEST, "[EAST]" = WEST, "[WEST]" = WEST, "[NORTH]" = WEST) ) + buildstacktype = /obj/item/stack/sheet/mineral/diamond + buildstackamount = 1 + +/obj/structure/reflector/box/get_reflection(srcdir,pdir) + var/new_dir = box_rotations["[srcdir]"]["[pdir]"] + return new_dir + + +/obj/structure/reflector/box/mapping + admin = 1 + anchored = 1 + +/obj/structure/reflector/ex_act() + if(admin) + return + else + ..() + + +/obj/structure/reflector/singularity_act() + if(admin) + return + else + ..() diff --git a/code/game/objects/structures/safe.dm b/code/game/objects/structures/safe.dm new file mode 100644 index 0000000..6f9124e --- /dev/null +++ b/code/game/objects/structures/safe.dm @@ -0,0 +1,194 @@ +/* +CONTAINS: +SAFES +FLOOR SAFES +*/ + +//SAFES +/obj/structure/safe + name = "safe" + desc = "A huge chunk of metal with a dial embedded in it. Fine print on the dial reads \"Scarborough Arms - 2 tumbler safe, guaranteed thermite resistant, explosion resistant, and assistant resistant.\"" + icon = 'icons/obj/structures.dmi' + icon_state = "safe" + anchored = 1 + density = 1 + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF + var/open = 0 //is the safe open? + var/tumbler_1_pos //the tumbler position- from 0 to 72 + var/tumbler_1_open //the tumbler position to open at- 0 to 72 + var/tumbler_2_pos + var/tumbler_2_open + var/dial = 0 //where is the dial pointing? + var/space = 0 //the combined w_class of everything in the safe + var/maxspace = 24 //the maximum combined w_class of stuff in the safe + + +/obj/structure/safe/New() + tumbler_1_pos = rand(0, 71) + tumbler_1_open = rand(0, 71) + + tumbler_2_pos = rand(0, 71) + tumbler_2_open = rand(0, 71) + + +/obj/structure/safe/initialize() + for(var/obj/item/I in loc) + if(space >= maxspace) + return + if(I.w_class + space <= maxspace) + space += I.w_class + I.loc = src + + +/obj/structure/safe/proc/check_unlocked(mob/user, canhear) + if(user && canhear) + if(tumbler_1_pos == tumbler_1_open) + user << "You hear a [pick("tonk", "krunk", "plunk")] from [src]." + if(tumbler_2_pos == tumbler_2_open) + user << "You hear a [pick("tink", "krink", "plink")] from [src]." + if(tumbler_1_pos == tumbler_1_open && tumbler_2_pos == tumbler_2_open) + if(user) visible_message("[pick("Spring", "Sprang", "Sproing", "Clunk", "Krunk")]!") + return 1 + return 0 + + +/obj/structure/safe/proc/decrement(num) + num -= 1 + if(num < 0) + num = 71 + return num + + +/obj/structure/safe/proc/increment(num) + num += 1 + if(num > 71) + num = 0 + return num + + +/obj/structure/safe/update_icon() + if(open) + icon_state = "[initial(icon_state)]-open" + else + icon_state = initial(icon_state) + + +/obj/structure/safe/attack_hand(mob/user) + user.set_machine(src) + var/dat = "
          " + dat += "[open ? "Close" : "Open"] [src] | - [dial * 5] +" + if(open) + dat += "" + for(var/i = contents.len, i>=1, i--) + var/obj/item/P = contents[i] + dat += "" + dat += "
          [P.name]
          " + user << browse("[name][dat]", "window=safe;size=350x300") + + +/obj/structure/safe/Topic(href, href_list) + if(!ishuman(usr)) + return + var/mob/living/carbon/human/user = usr + + var/canhear = 0 + if(user.is_holding_item_of_type(/obj/item/clothing/neck/stethoscope)) + canhear = 1 + + if(href_list["open"]) + if(check_unlocked()) + user << "You [open ? "close" : "open"] [src]." + open = !open + update_icon() + updateUsrDialog() + return + else + user << "You can't [open ? "close" : "open"] [src], the lock is engaged!" + return + + if(href_list["decrement"]) + dial = decrement(dial) + if(dial == tumbler_1_pos + 1 || dial == tumbler_1_pos - 71) + tumbler_1_pos = decrement(tumbler_1_pos) + if(canhear) + user << "You hear a [pick("clack", "scrape", "clank")] from [src]." + if(tumbler_1_pos == tumbler_2_pos + 37 || tumbler_1_pos == tumbler_2_pos - 35) + tumbler_2_pos = decrement(tumbler_2_pos) + if(canhear) + user << "You hear a [pick("click", "chink", "clink")] from [src]." + check_unlocked(user, canhear) + updateUsrDialog() + return + + if(href_list["increment"]) + dial = increment(dial) + if(dial == tumbler_1_pos - 1 || dial == tumbler_1_pos + 71) + tumbler_1_pos = increment(tumbler_1_pos) + if(canhear) + user << "You hear a [pick("clack", "scrape", "clank")] from [src]." + if(tumbler_1_pos == tumbler_2_pos - 37 || tumbler_1_pos == tumbler_2_pos + 35) + tumbler_2_pos = increment(tumbler_2_pos) + if(canhear) + user << "You hear a [pick("click", "chink", "clink")] from [src]." + check_unlocked(user, canhear) + updateUsrDialog() + return + + if(href_list["retrieve"]) + user << browse("", "window=safe") // Close the menu + + var/obj/item/P = locate(href_list["retrieve"]) in src + if(open) + if(P && in_range(src, user)) + user.put_in_hands(P) + updateUsrDialog() + + +/obj/structure/safe/attackby(obj/item/I, mob/user, params) + if(open) + . = 1 //no afterattack + if(I.w_class + space <= maxspace) + space += I.w_class + if(!user.drop_item()) + user << "\The [I] is stuck to your hand, you cannot put it in the safe!" + return + I.forceMove(src) + user << "You put [I] in [src]." + updateUsrDialog() + return + else + user << "[I] won't fit in [src]." + return + else if(istype(I, /obj/item/clothing/neck/stethoscope)) + user << "Hold [I] in one of your hands while you manipulate the dial!" + else + return ..() + + +/obj/structure/safe/handle_atom_del(atom/A) + updateUsrDialog() + +/obj/structure/safe/blob_act(obj/structure/blob/B) + return + +/obj/structure/safe/ex_act(severity, target) + return + + +//FLOOR SAFES +/obj/structure/safe/floor + name = "floor safe" + icon_state = "floorsafe" + density = 0 + level = 1 //underfloor + layer = LOW_OBJ_LAYER + + +/obj/structure/safe/floor/initialize() + ..() + var/turf/T = loc + hide(T.intact) + + +/obj/structure/safe/floor/hide(var/intact) + invisibility = intact ? INVISIBILITY_MAXIMUM : 0 \ No newline at end of file diff --git a/code/game/objects/structures/showcase.dm b/code/game/objects/structures/showcase.dm new file mode 100644 index 0000000..4e8af42 --- /dev/null +++ b/code/game/objects/structures/showcase.dm @@ -0,0 +1,76 @@ +#define SHOWCASE_CONSTRUCTED 1 +#define SHOWCASE_SCREWDRIVERED 2 + +/*Completely generic structures for use by mappers to create fake objects, i.e. display rooms*/ +/obj/structure/showcase + name = "showcase" + icon = 'icons/obj/stationobjs.dmi' + icon_state = "showcase_1" + desc = "A stand with the empty body of a cyborg bolted to it." + density = 1 + anchored = 1 + var/deconstruction_state = SHOWCASE_CONSTRUCTED + +/obj/structure/showcase/fakeid + name = "\improper Centcom identification console" + desc = "You can use this to change ID's." + icon = 'icons/obj/computer.dmi' + icon_state = "computer" + +/obj/structure/showcase/fakeid/New() + add_overlay("id") + add_overlay("id_key") + +/obj/structure/showcase/fakesec + name = "\improper Centcom security records" + desc = "Used to view and edit personnel's security records" + icon = 'icons/obj/computer.dmi' + icon_state = "computer" + +/obj/structure/showcase/fakesec/New() + add_overlay("security") + add_overlay("security_key") + +/obj/structure/showcase/horrific_experiment + name = "horrific experiment" + desc = "Some sort of pod filled with blood and viscera. You swear you can see it moving..." + icon = 'icons/obj/cloning.dmi' + icon_state = "pod_g" + +//Deconstructing +//Showcases can be any sprite, so it makes sense that they can't be constructed. +//However if a player wants to move an existing showcase or remove one, this is for that. + +/obj/structure/showcase/attackby(obj/item/W, mob/user) + if(istype(W, /obj/item/weapon/screwdriver) && !anchored) + if(deconstruction_state == SHOWCASE_SCREWDRIVERED) + user << "You screw the screws back into the showcase." + playsound(loc, W.usesound, 100, 1) + deconstruction_state = SHOWCASE_CONSTRUCTED + else if (deconstruction_state == SHOWCASE_CONSTRUCTED) + user << "You unscrew the screws." + playsound(loc, W.usesound, 100, 1) + deconstruction_state = SHOWCASE_SCREWDRIVERED + + if(istype(W, /obj/item/weapon/crowbar) && deconstruction_state == SHOWCASE_SCREWDRIVERED) + if(do_after(user, 20/W.toolspeed, target = src)) + playsound(loc, W.usesound, 100, 1) + user << "You start to crowbar the showcase apart..." + new /obj/item/stack/sheet/metal (get_turf(src), 4) + qdel(src) + + if(deconstruction_state == SHOWCASE_CONSTRUCTED && default_unfasten_wrench(user, W)) + return + +//Feedback is given in examine because showcases can basically have any sprite assigned to them + +/obj/structure/showcase/examine(mob/user) + ..() + + switch(deconstruction_state) + if(SHOWCASE_CONSTRUCTED) + user << "The showcase is fully constructed." + if(SHOWCASE_SCREWDRIVERED) + user << "The showcase has its screws loosened." + else + user << "If you see this, something is wrong." diff --git a/code/game/objects/structures/signs.dm b/code/game/objects/structures/signs.dm new file mode 100644 index 0000000..bdf337d --- /dev/null +++ b/code/game/objects/structures/signs.dm @@ -0,0 +1,269 @@ +/obj/structure/sign + icon = 'icons/obj/decals.dmi' + anchored = 1 + opacity = 0 + density = 0 + layer = SIGN_LAYER + obj_integrity = 100 + max_integrity = 100 + armor = list(melee = 50, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 50) + var/buildable_sign = 1 //unwrenchable and modifiable + +/obj/structure/sign/basic + name = "blank sign" + desc = "How can signs be real if our eyes aren't real?" + icon_state = "backing" + +/obj/structure/sign/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) + switch(damage_type) + if(BRUTE) + if(damage_amount) + playsound(src.loc, 'sound/weapons/slash.ogg', 80, 1) + else + playsound(loc, 'sound/weapons/tap.ogg', 50, 1) + if(BURN) + playsound(loc, 'sound/items/welder.ogg', 80, 1) + +/obj/structure/sign/attackby(obj/item/O, mob/user, params) + if(istype(O, /obj/item/weapon/wrench) && buildable_sign) + user.visible_message("[user] starts removing [src]...", \ + "You start unfastening [src].") + playsound(src, 'sound/items/Ratchet.ogg', 50, 1) + if(!do_after(user, 30/O.toolspeed, target = src)) + return + playsound(src, 'sound/items/Deconstruct.ogg', 50, 1) + user.visible_message("[user] unfastens [src].", \ + "You unfasten [src].") + var/obj/item/sign_backing/SB = new (get_turf(user)) + SB.icon_state = icon_state + SB.sign_path = type + qdel(src) + else if(istype(O, /obj/item/weapon/pen) && buildable_sign) + var/list/sign_types = list("Secure Area", "Biohazard", "High Voltage", "Radiation", "Hard Vacuum Ahead", "Disposal: Leads To Space", "Danger: Fire", "No Smoking", "Medbay", "Science", "Chemistry", \ + "Hydroponics", "Xenobiology") + var/obj/structure/sign/sign_type + switch(input(user, "Select a sign type.", "Sign Customization") as null|anything in sign_types) + if("Blank") + sign_type = /obj/structure/sign/basic + if("Secure Area") + sign_type = /obj/structure/sign/securearea + if("Biohazard") + sign_type = /obj/structure/sign/biohazard + if("High Voltage") + sign_type = /obj/structure/sign/electricshock + if("Radiation") + sign_type = /obj/structure/sign/radiation + if("Hard Vacuum Ahead") + sign_type = /obj/structure/sign/vacuum + if("Disposal: Leads To Space") + sign_type = /obj/structure/sign/deathsposal + if("Danger: Fire") + sign_type = /obj/structure/sign/fire + if("No Smoking") + sign_type = /obj/structure/sign/nosmoking_1 + if("Medbay") + sign_type = /obj/structure/sign/bluecross_2 + if("Science") + sign_type = /obj/structure/sign/science + if("Chemistry") + sign_type = /obj/structure/sign/chemistry + if("Hydroponics") + sign_type = /obj/structure/sign/botany + if("Xenobiology") + sign_type = /obj/structure/sign/xenobio + + //Make sure user is adjacent still + if(!Adjacent(user)) + return + + if(!sign_type) + return + + //It's import to clone the pixel layout information + //Otherwise signs revert to being on the turf and + //move jarringly + var/obj/structure/sign/newsign = new sign_type(get_turf(src)) + newsign.pixel_x = pixel_x + newsign.pixel_y = pixel_y + qdel(src) + else + return ..() + +/obj/item/sign_backing + name = "sign backing" + desc = "A sign with adhesive backing." + icon = 'icons/obj/decals.dmi' + icon_state = "backing" + w_class = 3 + resistance_flags = FLAMMABLE + var/sign_path = /obj/structure/sign/basic //the type of sign that will be created when placed on a turf + +/obj/item/sign_backing/afterattack(atom/target, mob/user, proximity) + if(isturf(target) && proximity) + var/turf/T = target + user.visible_message("[user] fastens [src] to [T].", \ + "You attach a blank sign to [T].") + playsound(T, 'sound/items/Deconstruct.ogg', 50, 1) + new sign_path(T) + user.drop_item() + qdel(src) + else + return ..() + +/obj/structure/sign/map + name = "station map" + desc = "A framed picture of the station." + obj_integrity = 500 + max_integrity = 500 + +/obj/structure/sign/map/left + icon_state = "map-left" + +/obj/structure/sign/map/left/dream + icon_state = "map-left-DS" + desc = "A framed picture of the station.\nClockwise from the top, you see Engineering(yellow), Arrivals(blue and white), Atmospherics(yellow), Security(red), \ + Cargo(brown), Science(purple), Escape(red and white), and Medbay(blue).\nIn the center of the station, you see the Bridge(dark blue).\n\ + Around those, you see Hallways/Entrances(light grey), Public Areas(grey), and Maintenance(dark grey)." + +/obj/structure/sign/map/right + icon_state = "map-right" + +/obj/structure/sign/map/right/dream + icon_state = "map-right-DS" + desc = "A framed picture of the station.\nClockwise from the top, you see Engineering(yellow), Arrivals(blue and white), Atmospherics(yellow), Security(red), \ + Cargo(brown), Science(purple), Escape(red and white), and Medbay(blue).\nIn the center of the station, you see the Bridge(dark blue).\n\ + Around those, you see Hallways/Entrances(light grey), Public Areas(grey), and Maintenance(dark grey)." + +/obj/structure/sign/securearea + name = "\improper SECURE AREA" + desc = "A warning sign which reads 'SECURE AREA'." + icon_state = "securearea" + +/obj/structure/sign/biohazard + name = "\improper BIOHAZARD" + desc = "A warning sign which reads 'BIOHAZARD'" + icon_state = "bio" + +/obj/structure/sign/electricshock + name = "\improper HIGH VOLTAGE" + desc = "A warning sign which reads 'HIGH VOLTAGE'" + icon_state = "shock" + +/obj/structure/sign/examroom + name = "\improper EXAM ROOM" + desc = "A guidance sign which reads 'EXAM ROOM'" + icon_state = "examroom" + +/obj/structure/sign/vacuum + name = "\improper HARD VACUUM AHEAD" + desc = "A warning sign which reads 'HARD VACUUM AHEAD'" + icon_state = "space" + +/obj/structure/sign/deathsposal + name = "\improper DISPOSAL: LEADS TO SPACE" + desc = "A warning sign which reads 'DISPOSAL: LEADS TO SPACE'" + icon_state = "deathsposal" + +/obj/structure/sign/pods + name = "\improper ESCAPE PODS" + desc = "A warning sign which reads 'ESCAPE PODS'" + icon_state = "pods" + +/obj/structure/sign/fire + name = "\improper DANGER: FIRE" + desc = "A warning sign which reads 'DANGER: FIRE'" + icon_state = "fire" + + +/obj/structure/sign/nosmoking_1 + name = "\improper NO SMOKING" + desc = "A warning sign which reads 'NO SMOKING'" + icon_state = "nosmoking" + + +/obj/structure/sign/nosmoking_2 + name = "\improper NO SMOKING" + desc = "A warning sign which reads 'NO SMOKING'" + icon_state = "nosmoking2" + +/obj/structure/sign/radiation + name = "HAZARDOUS RADIATION" + desc = "A warning sign alerting the user of potential radiation hazards." + icon_state = "radiation" + +/obj/structure/sign/bluecross + name = "medbay" + desc = "The Intergalactic symbol of Medical institutions. You'll probably get help here." + icon_state = "bluecross" + +/obj/structure/sign/bluecross_2 + name = "medbay" + desc = "The Intergalactic symbol of Medical institutions. You'll probably get help here." + icon_state = "bluecross2" + +/obj/structure/sign/goldenplaque + name = "The Most Robust Men Award for Robustness" + desc = "To be Robust is not an action or a way of life, but a mental state. Only those with the force of Will strong enough to act during a crisis, saving friend from foe, are truly Robust. Stay Robust my friends." + icon_state = "goldenplaque" + +/obj/structure/sign/kiddieplaque + name = "AI developers plaque" + desc = "Next to the extremely long list of names and job titles, there is a drawing of a little child. The child appears to be retarded. Beneath the image, someone has scratched the word \"PACKETS\"" + icon_state = "kiddieplaque" + +/obj/structure/sign/atmosplaque + name = "\improper FEA Atmospherics Division plaque" + desc = "This plaque commemorates the fall of the Atmos FEA division. For all the charred, dizzy, and brittle men who have died in its hands." + icon_state = "atmosplaque" + +/obj/structure/sign/nanotrasen + name = "\improper NanoTrasen Logo " + desc = "A sign with the Nanotrasen Logo on it. Glory to Nanotrasen!" + icon_state = "nanotrasen" + +/obj/structure/sign/science //These 3 have multiple types, just var-edit the icon_state to whatever one you want on the map + name = "\improper SCIENCE" + desc = "A sign labelling an area where research and science is performed." + icon_state = "science1" + +/obj/structure/sign/chemistry + name = "\improper CHEMISTRY" + desc = "A sign labelling an area containing chemical equipment." + icon_state = "chemistry1" + +/obj/structure/sign/botany + name = "\improper HYDROPONICS" + desc = "A sign labelling an area as a place where plants are grown." + icon_state = "hydro1" + +/obj/structure/sign/xenobio + name = "\improper XENOBIOLOGY" + desc = "A sign labelling an area as a place where xenobiological entities are researched." + icon_state = "xenobio" + +/obj/structure/sign/directions/science + name = "science department" + desc = "A direction sign, pointing out which way the Science department is." + icon_state = "direction_sci" + +/obj/structure/sign/directions/engineering + name = "engineering department" + desc = "A direction sign, pointing out which way the Engineering department is." + icon_state = "direction_eng" + +/obj/structure/sign/directions/security + name = "security department" + desc = "A direction sign, pointing out which way the Security department is." + icon_state = "direction_sec" + +/obj/structure/sign/directions/medical + name = "medical bay" + desc = "A direction sign, pointing out which way the Medical Bay is." + icon_state = "direction_med" + +/obj/structure/sign/directions/evac + name = "escape arm" + desc = "A direction sign, pointing out which way the escape shuttle dock is." + icon_state = "direction_evac" + + diff --git a/code/game/objects/structures/spirit_board.dm b/code/game/objects/structures/spirit_board.dm new file mode 100644 index 0000000..dfef2c7 --- /dev/null +++ b/code/game/objects/structures/spirit_board.dm @@ -0,0 +1,78 @@ +/obj/structure/spirit_board + name = "spirit board" + desc = "A wooden board with letters etched into it, used in seances." + icon = 'icons/obj/objects.dmi' + icon_state = "spirit_board" + density = 1 + anchored = 0 + var/virgin = 1 + var/cooldown = 0 + var/planchette = "A" + var/lastuser = null + +/obj/structure/spirit_board/examine() + desc = "[initial(desc)] The planchette is sitting at \"[planchette]\"." + ..() + +/obj/structure/spirit_board/attack_hand(mob/user) + if(..()) + return + spirit_board_pick_letter(user) + + +/obj/structure/spirit_board/attack_ghost(mob/dead/observer/user) + spirit_board_pick_letter(user) + + +/obj/structure/spirit_board/proc/spirit_board_pick_letter(mob/M) + if(!spirit_board_checks(M)) + return 0 + + if(virgin) + virgin = 0 + notify_ghosts("Someone has begun playing with a [src.name] in [get_area(src)]!", source = src) + + planchette = input("Choose the letter.", "Seance!") in list("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z") + add_logs(M, src, "picked a letter on", " which was \"[planchette]\".") + cooldown = world.time + lastuser = M.ckey + + var/turf/T = loc + sleep(rand(20,30)) + if(T == loc) + visible_message("The planchette slowly moves... and stops at the letter \"[planchette]\".") + + +/obj/structure/spirit_board/proc/spirit_board_checks(mob/M) + //cooldown + var/bonus = 0 + if(M.ckey == lastuser) + bonus = 10 //Give some other people a chance, hog. + + if(cooldown > world.time - (30 + bonus)) + return 0 //No feedback here, hiding the cooldown a little makes it harder to tell who's really picking letters. + + //lighting check + var/light_amount = 0 + var/turf/T = get_turf(src) + light_amount = T.get_lumcount() + + + if(light_amount > 2) + M << "It's too bright here to use [src.name]!" + return 0 + + //mobs in range check + var/users_in_range = 0 + for(var/mob/living/L in orange(1,src)) + if(L.ckey && L.client) + if((world.time - L.client.inactivity) < (world.time - 300) || L.stat != CONSCIOUS || L.restrained())//no playing with braindeads or corpses or handcuffed dudes. + M << "[L] doesn't seem to be paying attention..." + else + users_in_range++ + + if(users_in_range < 2) + M << "There aren't enough people to use the [src.name]!" + return 0 + + return 1 \ No newline at end of file diff --git a/code/game/objects/structures/statues.dm b/code/game/objects/structures/statues.dm new file mode 100644 index 0000000..471c557 --- /dev/null +++ b/code/game/objects/structures/statues.dm @@ -0,0 +1,327 @@ + + + +/obj/structure/statue + name = "statue" + desc = "Placeholder. Yell at Firecage if you SOMEHOW see this." + icon = 'icons/obj/statue.dmi' + icon_state = "" + density = 1 + anchored = 0 + obj_integrity = 100 + max_integrity = 100 + var/oreAmount = 7 + var/material_drop_type = /obj/item/stack/sheet/metal + +/obj/structure/statue/attackby(obj/item/weapon/W, mob/living/user, params) + add_fingerprint(user) + user.changeNext_move(CLICK_CD_MELEE) + if(istype(W, /obj/item/weapon/wrench)) + if(anchored) + playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1) + user.visible_message("[user] is loosening the [name]'s bolts.", \ + "You are loosening the [name]'s bolts...") + if(do_after(user,40/W.toolspeed, target = src)) + if(!src.loc || !anchored) + return + user.visible_message("[user] loosened the [name]'s bolts!", \ + "You loosen the [name]'s bolts!") + anchored = 0 + else + if(!isfloorturf(src.loc)) + user.visible_message("A floor must be present to secure the [name]!") + return + playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1) + user.visible_message("[user] is securing the [name]'s bolts...", \ + "You are securing the [name]'s bolts...") + if(do_after(user, 40/W.toolspeed, target = src)) + if(!src.loc || anchored) + return + user.visible_message("[user] has secured the [name]'s bolts.", \ + "You have secured the [name]'s bolts.") + anchored = 1 + + else if(istype(W, /obj/item/weapon/gun/energy/plasmacutter)) + playsound(src, 'sound/items/Welder.ogg', 100, 1) + user.visible_message("[user] is slicing apart the [name]...", \ + "You are slicing apart the [name]...") + if(do_after(user,30, target = src)) + if(!src.loc) + return + user.visible_message("[user] slices apart the [name].", \ + "You slice apart the [name].") + deconstruct(TRUE) + + else if(istype(W, /obj/item/weapon/pickaxe/drill/jackhammer)) + var/obj/item/weapon/pickaxe/drill/jackhammer/D = W + if(!src.loc) + return + user.visible_message("[user] destroys the [name]!", \ + "You destroy the [name].") + D.playDigSound() + qdel(src) + + else if(istype(W, /obj/item/weapon/weldingtool) && !anchored) + playsound(loc, 'sound/items/Welder.ogg', 40, 1) + user.visible_message("[user] is slicing apart the [name].", \ + "You are slicing apart the [name]...") + if(do_after(user, 40/W.toolspeed, target = src)) + if(!src.loc) + return + playsound(loc, 'sound/items/Welder2.ogg', 50, 1) + user.visible_message("[user] slices apart the [name].", \ + "You slice apart the [name]!") + deconstruct(TRUE) + else + return ..() + +/obj/structure/statue/attack_hand(mob/living/user) + user.changeNext_move(CLICK_CD_MELEE) + add_fingerprint(user) + user.visible_message("[user] rubs some dust off from the [name]'s surface.", \ + "You rub some dust off from the [name]'s surface.") + +/obj/structure/statue/CanAtmosPass() + return !density + +/obj/structure/statue/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + if(material_drop_type) + var/drop_amt = oreAmount + if(!disassembled) + drop_amt -= 2 + if(drop_amt > 0) + new material_drop_type(get_turf(src), drop_amt) + qdel(src) + +//////////////////////////////////////STATUES///////////////////////////////////////////////////////////// +////////////////////////uranium/////////////////////////////////// + +/obj/structure/statue/uranium + obj_integrity = 300 + luminosity = 2 + material_drop_type = /obj/item/stack/sheet/mineral/uranium + var/last_event = 0 + var/active = null + +/obj/structure/statue/uranium/nuke + name = "statue of a nuclear fission explosive" + desc = "This is a grand statue of a Nuclear Explosive. It has a sickening green colour." + icon_state = "nuke" + +/obj/structure/statue/uranium/eng + name = "Statue of an engineer" + desc = "This statue has a sickening green colour." + icon_state = "eng" + +/obj/structure/statue/uranium/attackby(obj/item/weapon/W, mob/user, params) + radiate() + return ..() + +/obj/structure/statue/uranium/Bumped(atom/user) + radiate() + ..() + +/obj/structure/statue/uranium/attack_hand(mob/user) + radiate() + ..() + +/obj/structure/statue/uranium/attack_paw(mob/user) + radiate() + ..() + +/obj/structure/statue/uranium/proc/radiate() + if(!active) + if(world.time > last_event+15) + active = 1 + radiation_pulse(get_turf(src), 3, 3, 12, 0) + last_event = world.time + active = null + return + return + +////////////////////////////plasma/////////////////////////////////////////////////////////////////////// + +/obj/structure/statue/plasma + obj_integrity = 200 + material_drop_type = /obj/item/stack/sheet/mineral/plasma + desc = "This statue is suitably made from plasma." + +/obj/structure/statue/plasma/scientist + name = "statue of a scientist" + icon_state = "sci" + +/obj/structure/statue/plasma/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) + if(exposed_temperature > 300) + PlasmaBurn(exposed_temperature) + + +/obj/structure/statue/plasma/bullet_act(obj/item/projectile/Proj) + var/burn = FALSE + if(istype(Proj,/obj/item/projectile/beam)) + PlasmaBurn(2500) + burn = TRUE + else if(istype(Proj,/obj/item/projectile/ion)) + PlasmaBurn(500) + burn = TRUE + if(burn) + if(Proj.firer) + message_admins("Plasma statue ignited by [key_name_admin(Proj.firer)](?) (FLW) in ([x],[y],[z] - JMP)",0,1) + log_game("Plasma statue ignited by [key_name(Proj.firer)] in ([x],[y],[z])") + else + message_admins("Plasma statue ignited by [Proj]. No known firer.(?) (FLW) in ([x],[y],[z] - JMP)",0,1) + log_game("Plasma statue ignited by [Proj] in ([x],[y],[z]). No known firer.") + ..() + +/obj/structure/statue/plasma/attackby(obj/item/weapon/W, mob/user, params) + if(W.is_hot() > 300)//If the temperature of the object is over 300, then ignite + message_admins("Plasma statue ignited by [key_name_admin(user)](?) (FLW) in ([x],[y],[z] - JMP)",0,1) + log_game("Plasma statue ignited by [key_name(user)] in ([x],[y],[z])") + ignite(W.is_hot()) + else + return ..() + +/obj/structure/statue/plasma/proc/PlasmaBurn() + atmos_spawn_air("plasma=400;TEMP=1000") + deconstruct(FALSE) + +/obj/structure/statue/plasma/proc/ignite(exposed_temperature) + if(exposed_temperature > 300) + PlasmaBurn(exposed_temperature) + +//////////////////////gold/////////////////////////////////////// + +/obj/structure/statue/gold + obj_integrity = 300 + material_drop_type = /obj/item/stack/sheet/mineral/gold + desc = "This is a highly valuable statue made from gold." + +/obj/structure/statue/gold/hos + name = "statue of the head of security" + icon_state = "hos" + +/obj/structure/statue/gold/hop + name = "statue of the head of personnel" + icon_state = "hop" + +/obj/structure/statue/gold/cmo + name = "statue of the chief medical officer" + icon_state = "cmo" + +/obj/structure/statue/gold/ce + name = "statue of the chief engineer" + icon_state = "ce" + +/obj/structure/statue/gold/rd + name = "statue of the research director" + icon_state = "rd" + +//////////////////////////silver/////////////////////////////////////// + +/obj/structure/statue/silver + obj_integrity = 300 + material_drop_type = /obj/item/stack/sheet/mineral/silver + desc = "This is a valuable statue made from silver." + +/obj/structure/statue/silver/md + name = "statue of a medical officer" + icon_state = "md" + +/obj/structure/statue/silver/janitor + name = "statue of a janitor" + icon_state = "jani" + +/obj/structure/statue/silver/sec + name = "statue of a security officer" + icon_state = "sec" + +/obj/structure/statue/silver/secborg + name = "statue of a security cyborg" + icon_state = "secborg" + +/obj/structure/statue/silver/medborg + name = "statue of a medical cyborg" + icon_state = "medborg" + +/////////////////////////diamond///////////////////////////////////////// + +/obj/structure/statue/diamond + obj_integrity = 1000 + material_drop_type = /obj/item/stack/sheet/mineral/diamond + desc = "This is a very expensive diamond statue" + +/obj/structure/statue/diamond/captain + name = "statue of THE captain." + icon_state = "cap" + +/obj/structure/statue/diamond/ai1 + name = "statue of the AI hologram." + icon_state = "ai1" + +/obj/structure/statue/diamond/ai2 + name = "statue of the AI core." + icon_state = "ai2" + +////////////////////////bananium/////////////////////////////////////// + +/obj/structure/statue/bananium + obj_integrity = 300 + material_drop_type = /obj/item/stack/sheet/mineral/bananium + desc = "A bananium statue with a small engraving:'HOOOOOOONK'." + var/spam_flag = 0 + +/obj/structure/statue/bananium/clown + name = "statue of a clown" + icon_state = "clown" + +/obj/structure/statue/bananium/Bumped(atom/user) + honk() + ..() + +/obj/structure/statue/bananium/attackby(obj/item/weapon/W, mob/user, params) + honk() + return ..() + +/obj/structure/statue/bananium/attack_hand(mob/user) + honk() + ..() + +/obj/structure/statue/bananium/attack_paw(mob/user) + honk() + ..() + +/obj/structure/statue/bananium/proc/honk() + if(!spam_flag) + spam_flag = 1 + playsound(src.loc, 'sound/items/bikehorn.ogg', 50, 1) + spawn(20) + spam_flag = 0 + +/////////////////////sandstone///////////////////////////////////////// + +/obj/structure/statue/sandstone + obj_integrity = 50 + material_drop_type = /obj/item/stack/sheet/mineral/sandstone + +/obj/structure/statue/sandstone/assistant + name = "statue of an assistant" + desc = "A cheap statue of sandstone for a greyshirt." + icon_state = "assist" + + +/obj/structure/statue/sandstone/venus //call me when we add marble i guess + name = "statue of a pure maiden" + desc = "An ancient marble statue. The subject is depicted with a floor-length braid and is wielding a toolbox. By Jove, it's easily the most gorgeous depiction of a woman you've ever seen. The artist must truly be a master of his craft. Shame about the broken arm, though." + icon = 'icons/obj/statuelarge.dmi' + icon_state = "venus" + +/////////////////////snow///////////////////////////////////////// + +/obj/structure/statue/snow + obj_integrity = 50 + material_drop_type = /obj/item/stack/sheet/mineral/snow + +/obj/structure/statue/snow/snowman + name = "snowman" + desc = "Several lumps of snow put together to form a snowman." + icon_state = "snowman" \ No newline at end of file diff --git a/code/game/objects/structures/table_frames.dm b/code/game/objects/structures/table_frames.dm new file mode 100644 index 0000000..0434d6c --- /dev/null +++ b/code/game/objects/structures/table_frames.dm @@ -0,0 +1,163 @@ +/* Table Frames + * Contains: + * Frames + * Wooden Frames + */ + + +/* + * Normal Frames + */ + +/obj/structure/table_frame + name = "table frame" + desc = "Four metal legs with four framing rods for a table. You could easily pass through this." + icon = 'icons/obj/structures.dmi' + icon_state = "table_frame" + density = 0 + anchored = 0 + layer = PROJECTILE_HIT_THRESHHOLD_LAYER + obj_integrity = 100 + max_integrity = 100 + var/framestack = /obj/item/stack/rods + var/framestackamount = 2 + +/obj/structure/table_frame/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/wrench)) + user << "You start disassembling [src]..." + playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + if(do_after(user, 30/I.toolspeed, target = src)) + playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + deconstruct(TRUE) + else if(istype(I, /obj/item/stack/sheet/plasteel)) + var/obj/item/stack/sheet/plasteel/P = I + if(P.get_amount() < 1) + user << "You need one plasteel sheet to do this!" + return + user << "You start adding [P] to [src]..." + if(do_after(user, 50, target = src) && P.use(1)) + new /obj/structure/table/reinforced(src.loc) + qdel(src) + else if(istype(I, /obj/item/stack/sheet/metal)) + var/obj/item/stack/sheet/metal/M = I + if(M.get_amount() < 1) + user << "You need one metal sheet to do this!" + return + user << "You start adding [M] to [src]..." + if(do_after(user, 20, target = src) && M.use(1)) + new /obj/structure/table(src.loc) + qdel(src) + else if(istype(I, /obj/item/stack/sheet/glass)) + var/obj/item/stack/sheet/glass/G = I + if(G.get_amount() < 1) + user << "You need one glass sheet to do this!" + return + user << "You start adding [G] to [src]..." + if(do_after(user, 20, target = src) && G.use(1)) + new /obj/structure/table/glass(src.loc) + qdel(src) + else if(istype(I, /obj/item/stack/sheet/mineral/silver)) + var/obj/item/stack/sheet/mineral/silver/S = I + if(S.get_amount() < 1) + user << "You need one silver sheet to do this!" + return + user << "You start adding [S] to [src]..." + if(do_after(user, 20, target = src) && S.use(1)) + new /obj/structure/table/optable(src.loc) + qdel(src) + else if(istype(I, /obj/item/stack/tile/carpet)) + var/obj/item/stack/tile/carpet/C = I + if(C.get_amount() < 1) + user << "You need one carpet sheet to do this!" + return + user << "You start adding [C] to [src]..." + if(do_after(user, 20, target = src) && C.use(1)) + new /obj/structure/table/wood/fancy(src.loc) + qdel(src) + else + return ..() + +/obj/structure/table_frame/deconstruct(disassembled = TRUE) + new framestack(get_turf(src), framestackamount) + qdel(src) + +/obj/structure/table_frame/narsie_act() + if(prob(20)) + new /obj/structure/table_frame/wood(src.loc) + qdel(src) + +/obj/structure/table_frame/ratvar_act() + new /obj/structure/table_frame/brass(src.loc) + qdel(src) + +/* + * Wooden Frames + */ + +/obj/structure/table_frame/wood + name = "wooden table frame" + desc = "Four wooden legs with four framing wooden rods for a wooden table. You could easily pass through this." + icon_state = "wood_frame" + framestack = /obj/item/stack/sheet/mineral/wood + framestackamount = 2 + resistance_flags = FLAMMABLE + +/obj/structure/table_frame/wood/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/stack/sheet/mineral/wood)) + var/obj/item/stack/sheet/mineral/wood/W = I + if(W.get_amount() < 1) + user << "You need one wood sheet to do this!" + return + user << "You start adding [W] to [src]..." + if(do_after(user, 20, target = src) && W.use(1)) + new /obj/structure/table/wood(src.loc) + qdel(src) + return + else if(istype(I, /obj/item/stack/tile/carpet)) + var/obj/item/stack/tile/carpet/C = I + if(C.get_amount() < 1) + user << "You need one carpet sheet to do this!" + return + user << "You start adding [C] to [src]..." + if(do_after(user, 20, target = src) && C.use(1)) + new /obj/structure/table/wood/poker(src.loc) + qdel(src) + else + return ..() + +/obj/structure/table_frame/brass + name = "brass table frame" + desc = "Four pieces of brass arranged in a square. It's slightly warm to the touch." + icon_state = "brass_frame" + resistance_flags = FIRE_PROOF | ACID_PROOF + framestack = /obj/item/stack/sheet/brass + framestackamount = 1 + +/obj/structure/table_frame/brass/New() + change_construction_value(1) + ..() + +/obj/structure/table_frame/brass/Destroy() + change_construction_value(-1) + return ..() + +/obj/structure/table_frame/brass/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/stack/sheet/brass)) + var/obj/item/stack/sheet/brass/W = I + if(W.get_amount() < 1) + user << "You need one brass sheet to do this!" + return + user << "You start adding [W] to [src]..." + if(do_after(user, 20, target = src) && W.use(1)) + new /obj/structure/table/reinforced/brass(src.loc) + qdel(src) + else + return ..() + +/obj/structure/table_frame/brass/narsie_act() + ..() + if(src) //do we still exist? + var/previouscolor = color + color = "#960000" + animate(src, color = previouscolor, time = 8) + addtimer(src, "update_atom_colour", 8) diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm new file mode 100644 index 0000000..d9d5a53 --- /dev/null +++ b/code/game/objects/structures/tables_racks.dm @@ -0,0 +1,509 @@ +/* Tables and Racks + * Contains: + * Tables + * Glass Tables + * Wooden Tables + * Reinforced Tables + * Racks + * Rack Parts + */ + +/* + * Tables + */ + +/obj/structure/table + name = "table" + desc = "A square piece of metal standing on four metal legs. It can not move." + icon = 'icons/obj/smooth_structures/table.dmi' + icon_state = "table" + density = 1 + anchored = 1 + layer = TABLE_LAYER + climbable = TRUE + pass_flags = LETPASSTHROW //You can throw objects over this, despite it's density.") + var/frame = /obj/structure/table_frame + var/framestack = /obj/item/stack/rods + var/buildstack = /obj/item/stack/sheet/metal + var/busy = 0 + var/buildstackamount = 1 + var/framestackamount = 2 + var/deconstruction_ready = 1 + obj_integrity = 100 + max_integrity = 100 + integrity_failure = 30 + smooth = SMOOTH_TRUE + canSmoothWith = list(/obj/structure/table, /obj/structure/table/reinforced) + +/obj/structure/table/New() + ..() + for(var/obj/structure/table/T in src.loc) + if(T != src) + qdel(T) + +/obj/structure/table/update_icon() + if(smooth) + queue_smooth(src) + queue_smooth_neighbors(src) + +/obj/structure/table/narsie_act() + if(prob(20)) + new /obj/structure/table/wood(src.loc) + +/obj/structure/table/ratvar_act() + new /obj/structure/table/reinforced/brass(src.loc) + + +/obj/structure/table/attack_paw(mob/user) + attack_hand(user) + +/obj/structure/table/attack_hand(mob/living/user) + if(user.a_intent == "grab" && user.pulling && isliving(user.pulling)) + var/mob/living/pushed_mob = user.pulling + if(pushed_mob.buckled) + user << "[pushed_mob] is buckled to [pushed_mob.buckled]!" + return + if(user.grab_state < GRAB_AGGRESSIVE) + user << "You need a better grip to do that!" + return + tablepush(user, pushed_mob) + user.stop_pulling() + else + ..() + +/obj/structure/table/attack_tk() // no telehulk sorry + return + +/obj/structure/table/CanPass(atom/movable/mover, turf/target, height=0) + if(height==0) + return 1 + if(istype(mover) && mover.checkpass(PASSTABLE)) + return 1 + if(mover.throwing) + return 1 + if(locate(/obj/structure/table) in get_turf(mover)) + return 1 + else + return !density + +/obj/structure/table/CanAStarPass(ID, dir, caller) + . = !density + if(ismovableatom(caller)) + var/atom/movable/mover = caller + . = . || mover.checkpass(PASSTABLE) + +/obj/structure/table/proc/tablepush(mob/living/user, mob/living/pushed_mob) + pushed_mob.forceMove(src.loc) + pushed_mob.Weaken(2) + pushed_mob.visible_message("[user] pushes [pushed_mob] onto [src].", \ + "[user] pushes [pushed_mob] onto [src].") + add_logs(user, pushed_mob, "pushed") + + +/obj/structure/table/attackby(obj/item/I, mob/user, params) + if(!(flags & NODECONSTRUCT)) + if(istype(I, /obj/item/weapon/screwdriver) && deconstruction_ready) + user << "You start disassembling [src]..." + playsound(src.loc, I.usesound, 50, 1) + if(do_after(user, 20, target = src)) + deconstruct(TRUE) + return + + if(istype(I, /obj/item/weapon/wrench) && deconstruction_ready) + user << "You start deconstructing [src]..." + playsound(src.loc, I.usesound, 50, 1) + if(do_after(user, 40, target = src)) + playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + deconstruct(TRUE, 1) + return + + if(istype(I, /obj/item/weapon/storage/bag/tray)) + var/obj/item/weapon/storage/bag/tray/T = I + if(T.contents.len > 0) // If the tray isn't empty + var/list/obj/item/oldContents = T.contents.Copy() + T.quick_empty() + + for(var/obj/item/C in oldContents) + C.loc = src.loc + + user.visible_message("[user] empties [I] on [src].") + return + // If the tray IS empty, continue on (tray will be placed on the table like other items) + + if(user.a_intent != "harm" && !(I.flags & ABSTRACT)) + if(user.drop_item()) + I.Move(loc) + var/list/click_params = params2list(params) + //Center the icon where the user clicked. + if(!click_params || !click_params["icon-x"] || !click_params["icon-y"]) + return + //Clamp it so that the icon never moves more than 16 pixels in either direction (thus leaving the table turf) + I.pixel_x = Clamp(text2num(click_params["icon-x"]) - 16, -(world.icon_size/2), world.icon_size/2) + I.pixel_y = Clamp(text2num(click_params["icon-y"]) - 16, -(world.icon_size/2), world.icon_size/2) + return 1 + else + return ..() + + +/obj/structure/table/deconstruct(disassembled = TRUE, wrench_disassembly = 0) + if(!(flags & NODECONSTRUCT)) + var/turf/T = get_turf(src) + new buildstack(T, buildstackamount) + if(!wrench_disassembly) + new frame(T) + else + new framestack(T, framestackamount) + qdel(src) + + +/* + * Glass tables + */ +/obj/structure/table/glass + name = "glass table" + desc = "What did I say about leaning on the glass tables? Now you need surgery." + icon = 'icons/obj/smooth_structures/glass_table.dmi' + icon_state = "glass_table" + buildstack = /obj/item/stack/sheet/glass + canSmoothWith = null + obj_integrity = 70 + max_integrity = 70 + resistance_flags = ACID_PROOF + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 80, acid = 100) + var/list/debris = list() + +/obj/structure/table/glass/New() + . = ..() + debris += new frame + debris += new /obj/item/weapon/shard + +/obj/structure/table/glass/Destroy() + for(var/i in debris) + qdel(i) + . = ..() + +/obj/structure/table/glass/Crossed(atom/movable/AM) + . = ..() + if(flags & NODECONSTRUCT) + return + if(!isliving(AM)) + return + // Don't break if they're just flying past + if(AM.throwing) + addtimer(src, "throw_check", 5, FALSE, AM) + else + check_break(AM) + +/obj/structure/table/glass/proc/throw_check(mob/living/M) + if(M.loc == get_turf(src)) + check_break(M) + +/obj/structure/table/glass/proc/check_break(mob/living/M) + if(M.has_gravity() && M.mob_size > MOB_SIZE_SMALL) + table_shatter(M) + +/obj/structure/table/glass/proc/table_shatter(mob/M) + visible_message("[src] breaks!", + "You hear breaking glass.") + var/turf/T = get_turf(src) + playsound(T, "shatter", 50, 1) + for(var/I in debris) + var/atom/movable/AM = I + AM.forceMove(T) + debris -= AM + if(istype(AM, /obj/item/weapon/shard)) + AM.throw_impact(M) + M.Weaken(5) + qdel(src) + +/obj/structure/table/glass/deconstruct(disassembled = TRUE, wrench_disassembly = 0) + if(!(flags & NODECONSTRUCT)) + if(disassembled) + ..() + return + else + var/turf/T = get_turf(src) + playsound(T, "shatter", 50, 1) + for(var/X in debris) + var/atom/movable/AM = X + AM.forceMove(T) + debris -= AM + qdel(src) + +/obj/structure/table/glass/narsie_act() + color = NARSIE_WINDOW_COLOUR + for(var/obj/item/weapon/shard/S in debris) + S.color = NARSIE_WINDOW_COLOUR + +/* + * Wooden tables + */ + +/obj/structure/table/wood + name = "wooden table" + desc = "Do not apply fire to this. Rumour says it burns easily." + icon = 'icons/obj/smooth_structures/wood_table.dmi' + icon_state = "wood_table" + frame = /obj/structure/table_frame/wood + framestack = /obj/item/stack/sheet/mineral/wood + buildstack = /obj/item/stack/sheet/mineral/wood + resistance_flags = FLAMMABLE + obj_integrity = 70 + max_integrity = 70 + canSmoothWith = list(/obj/structure/table/wood, + /obj/structure/table/wood/poker, + /obj/structure/table/wood/bar) + +/obj/structure/table/wood/narsie_act() + return + +/obj/structure/table/wood/poker //No specialties, Just a mapping object. + name = "gambling table" + desc = "A seedy table for seedy dealings in seedy places." + icon = 'icons/obj/smooth_structures/poker_table.dmi' + icon_state = "poker_table" + buildstack = /obj/item/stack/tile/carpet + +/obj/structure/table/wood/poker/narsie_act() + new /obj/structure/table/wood(src.loc) + +/obj/structure/table/wood/fancy + name = "fancy table" + desc = "A standard metal table frame covered with an amazingly fancy, patterned cloth." + icon = 'icons/obj/structures.dmi' + icon_state = "fancy_table" + frame = /obj/structure/table_frame + framestack = /obj/item/stack/rods + buildstack = /obj/item/stack/tile/carpet + canSmoothWith = list(/obj/structure/table/wood/fancy) + +/obj/structure/table/wood/fancy/New() + icon = 'icons/obj/smooth_structures/fancy_table.dmi' //so that the tables place correctly in the map editor + ..() + +/* + * Reinforced tables + */ +/obj/structure/table/reinforced + name = "reinforced table" + desc = "A reinforced version of the four legged table, much harder to simply deconstruct." + icon = 'icons/obj/smooth_structures/reinforced_table.dmi' + icon_state = "r_table" + deconstruction_ready = 0 + buildstack = /obj/item/stack/sheet/plasteel + canSmoothWith = list(/obj/structure/table/reinforced, /obj/structure/table) + obj_integrity = 200 + max_integrity = 200 + integrity_failure = 50 + armor = list(melee = 10, bullet = 30, laser = 30, energy = 100, bomb = 20, bio = 0, rad = 0, fire = 80, acid = 70) + +/obj/structure/table/reinforced/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/WT = W + if(WT.remove_fuel(0, user)) + playsound(src.loc, W.usesound, 50, 1) + if(deconstruction_ready) + user << "You start strengthening the reinforced table..." + if (do_after(user, 50/W.toolspeed, target = src)) + if(!src || !WT.isOn()) return + user << "You strengthen the table." + deconstruction_ready = 0 + else + user << "You start weakening the reinforced table..." + if (do_after(user, 50/W.toolspeed, target = src)) + if(!src || !WT.isOn()) return + user << "You weaken the table." + deconstruction_ready = 1 + else + . = ..() + +/obj/structure/table/reinforced/brass + name = "brass table" + desc = "A solid, slightly beveled brass table." + icon = 'icons/obj/smooth_structures/brass_table.dmi' + icon_state = "brass_table" + resistance_flags = FIRE_PROOF | ACID_PROOF + frame = /obj/structure/table_frame/brass + framestack = /obj/item/stack/sheet/brass + buildstack = /obj/item/stack/sheet/brass + framestackamount = 1 + buildstackamount = 1 + canSmoothWith = list(/obj/structure/table/reinforced/brass) + +/obj/structure/table/reinforced/brass/New() + change_construction_value(2) + ..() + +/obj/structure/table/reinforced/brass/Destroy() + change_construction_value(-2) + return ..() + + +/obj/structure/table/reinforced/brass/narsie_act() + take_damage(rand(15, 45), BRUTE) + if(src) //do we still exist? + var/previouscolor = color + color = "#960000" + animate(src, color = previouscolor, time = 8) + addtimer(src, "update_atom_colour", 8) + +/obj/structure/table/reinforced/brass/ratvar_act() + obj_integrity = max_integrity + +/* + * Surgery Tables + */ + +/obj/structure/table/optable + name = "operating table" + desc = "Used for advanced medical procedures." + icon = 'icons/obj/surgery.dmi' + icon_state = "optable" + buildstack = /obj/item/stack/sheet/mineral/silver + smooth = SMOOTH_FALSE + can_buckle = 1 + buckle_lying = 1 + buckle_requires_restraints = 1 + var/mob/living/carbon/human/patient = null + var/obj/machinery/computer/operating/computer = null + +/obj/structure/table/optable/New() + ..() + for(var/dir in cardinal) + computer = locate(/obj/machinery/computer/operating, get_step(src, dir)) + if(computer) + computer.table = src + break + +/obj/structure/table/optable/tablepush(mob/living/user, mob/living/pushed_mob) + pushed_mob.forceMove(src.loc) + pushed_mob.resting = 1 + pushed_mob.update_canmove() + visible_message("[user] has laid [pushed_mob] on [src].") + check_patient() + +/obj/structure/table/optable/proc/check_patient() + var/mob/M = locate(/mob/living/carbon/human, loc) + if(M) + if(M.resting) + patient = M + return 1 + else + patient = null + return 0 + + + +/* + * Racks + */ +/obj/structure/rack + name = "rack" + desc = "Different from the Middle Ages version." + icon = 'icons/obj/objects.dmi' + icon_state = "rack" + density = 1 + anchored = 1 + pass_flags = LETPASSTHROW //You can throw objects over this, despite it's density. + obj_integrity = 20 + max_integrity = 20 + +/obj/structure/rack/CanPass(atom/movable/mover, turf/target, height=0) + if(height==0) return 1 + if(src.density == 0) //Because broken racks -Agouri |TODO: SPRITE!| + return 1 + if(istype(mover) && mover.checkpass(PASSTABLE)) + return 1 + else + return 0 + +/obj/structure/rack/CanAStarPass(ID, dir, caller) + . = !density + if(ismovableatom(caller)) + var/atom/movable/mover = caller + . = . || mover.checkpass(PASSTABLE) + +/obj/structure/rack/MouseDrop_T(obj/O, mob/user) + if ((!( istype(O, /obj/item/weapon) ) || user.get_active_held_item() != O)) + return + if(!user.drop_item()) + return + if(O.loc != src.loc) + step(O, get_dir(O, src)) + + +/obj/structure/rack/attackby(obj/item/weapon/W, mob/user, params) + if (istype(W, /obj/item/weapon/wrench) && !(flags&NODECONSTRUCT)) + playsound(src.loc, W.usesound, 50, 1) + deconstruct(TRUE) + return + if(user.a_intent == "harm") + return ..() + if(user.drop_item()) + W.Move(loc) + return 1 + +/obj/structure/rack/attack_paw(mob/living/user) + attack_hand(user) + +/obj/structure/rack/attack_hand(mob/living/user) + user.changeNext_move(CLICK_CD_MELEE) + user.do_attack_animation(src, ATTACK_EFFECT_KICK) + user.visible_message("[user] kicks [src].", null, null, COMBAT_MESSAGE_RANGE) + take_damage(rand(4,8), BRUTE, "melee", 1) + + +/obj/structure/rack/attack_tk() // no telehulk sorry + return + +/obj/structure/rack/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) + switch(damage_type) + if(BRUTE) + if(damage_amount) + playsound(loc, 'sound/items/dodgeball.ogg', 80, 1) + else + playsound(loc, 'sound/weapons/tap.ogg', 50, 1) + if(BURN) + playsound(loc, 'sound/items/Welder.ogg', 40, 1) + +/* + * Rack destruction + */ + +/obj/structure/rack/deconstruct(disassembled = TRUE) + if(!(flags&NODECONSTRUCT)) + density = 0 + var/obj/item/weapon/rack_parts/newparts = new(loc) + transfer_fingerprints_to(newparts) + qdel(src) + + +/* + * Rack Parts + */ + +/obj/item/weapon/rack_parts + name = "rack parts" + desc = "Parts of a rack." + icon = 'icons/obj/items.dmi' + icon_state = "rack_parts" + flags = CONDUCT + materials = list(MAT_METAL=2000) + +/obj/item/weapon/rack_parts/attackby(obj/item/weapon/W, mob/user, params) + if (istype(W, /obj/item/weapon/wrench)) + new /obj/item/stack/sheet/metal(user.loc) + qdel(src) + else + . = ..() + +/obj/item/weapon/rack_parts/attack_self(mob/user) + user << "You start constructing a rack..." + if(do_after(user, 50, target = src, progress=TRUE)) + if(!user.drop_item()) + return + var/obj/structure/rack/R = new /obj/structure/rack(user.loc) + user.visible_message("[user] assembles \a [R].\ + ", "You assemble \a [R].") + R.add_fingerprint(user) + qdel(src) diff --git a/code/game/objects/structures/tank_dispenser.dm b/code/game/objects/structures/tank_dispenser.dm new file mode 100644 index 0000000..2a6565b --- /dev/null +++ b/code/game/objects/structures/tank_dispenser.dm @@ -0,0 +1,112 @@ +#define TANK_DISPENSER_CAPACITY 10 + +/obj/structure/tank_dispenser + name = "tank dispenser" + desc = "A simple yet bulky storage device for gas tanks. Holds up to 10 oxygen tanks and 10 plasma tanks." + icon = 'icons/obj/objects.dmi' + icon_state = "dispenser" + density = 1 + anchored = 1 + obj_integrity = 300 + max_integrity = 300 + var/oxygentanks = TANK_DISPENSER_CAPACITY + var/plasmatanks = TANK_DISPENSER_CAPACITY + +/obj/structure/tank_dispenser/oxygen + plasmatanks = 0 + +/obj/structure/tank_dispenser/plasma + oxygentanks = 0 + +/obj/structure/tank_dispenser/New() + for(var/i in 1 to oxygentanks) + new /obj/item/weapon/tank/internals/oxygen(src) + for(var/i in 1 to plasmatanks) + new /obj/item/weapon/tank/internals/plasma(src) + update_icon() + +/obj/structure/tank_dispenser/update_icon() + cut_overlays() + switch(oxygentanks) + if(1 to 3) + add_overlay("oxygen-[oxygentanks]") + if(4 to TANK_DISPENSER_CAPACITY) + add_overlay("oxygen-4") + switch(plasmatanks) + if(1 to 4) + add_overlay("plasma-[plasmatanks]") + if(5 to TANK_DISPENSER_CAPACITY) + add_overlay("plasma-5") + +/obj/structure/tank_dispenser/attackby(obj/item/I, mob/user, params) + var/full + if(istype(I, /obj/item/weapon/tank/internals/plasma)) + if(plasmatanks < TANK_DISPENSER_CAPACITY) + plasmatanks++ + else + full = TRUE + else if(istype(I, /obj/item/weapon/tank/internals/oxygen)) + if(oxygentanks < TANK_DISPENSER_CAPACITY) + oxygentanks++ + else + full = TRUE + else if(istype(I, /obj/item/weapon/wrench)) + default_unfasten_wrench(user, I, time = 20) + return + else if(user.a_intent != "harm") + user << "[I] does not fit into [src]." + return + else + return ..() + if(full) + user << "[src] can't hold any more of [I]." + return + + if(!user.drop_item()) + return + I.loc = src + user << "You put [I] in [src]." + update_icon() + +/obj/structure/tank_dispenser/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ + datum/tgui/master_ui = null, datum/ui_state/state = physical_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "tank_dispenser", name, 275, 100, master_ui, state) + ui.open() + +/obj/structure/tank_dispenser/ui_data(mob/user) + var/list/data = list() + data["oxygen"] = oxygentanks + data["plasma"] = plasmatanks + + return data + +/obj/structure/tank_dispenser/ui_act(action, params) + if(..()) + return + switch(action) + if("plasma") + var/obj/item/weapon/tank/internals/plasma/tank = locate() in src + if(tank) + usr.put_in_hands(tank) + plasmatanks-- + . = TRUE + if("oxygen") + var/obj/item/weapon/tank/internals/oxygen/tank = locate() in src + if(tank) + usr.put_in_hands(tank) + oxygentanks-- + . = TRUE + update_icon() + + +/obj/structure/tank_dispenser/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + for(var/X in src) + var/obj/item/I = X + I.forceMove(loc) + new /obj/item/stack/sheet/metal (loc, 2) + qdel(src) + +#undef TANK_DISPENSER_CAPACITY \ No newline at end of file diff --git a/code/game/objects/structures/target_stake.dm b/code/game/objects/structures/target_stake.dm new file mode 100644 index 0000000..5c0d2ff --- /dev/null +++ b/code/game/objects/structures/target_stake.dm @@ -0,0 +1,55 @@ +/obj/structure/target_stake + name = "target stake" + desc = "A thin platform with negatively-magnetized wheels." + icon = 'icons/obj/objects.dmi' + icon_state = "target_stake" + density = 1 + flags = CONDUCT + var/obj/item/target/pinned_target + +/obj/structure/target_stake/Destroy() + if(pinned_target) + pinned_target.nullPinnedLoc() + return ..() + +/obj/structure/target_stake/proc/nullPinnedTarget() + pinned_target = null + +/obj/structure/target_stake/Move() + ..() + if(pinned_target) + pinned_target.loc = loc + +/obj/structure/target_stake/attackby(obj/item/target/T, mob/user) + if(pinned_target) + return + if(istype(T) && user.drop_item()) + pinned_target = T + T.pinnedLoc = src + T.density = 1 + T.layer = OBJ_LAYER + 0.01 + T.loc = loc + user << "You slide the target into the stake." + +/obj/structure/target_stake/attack_hand(mob/user) + if(pinned_target) + removeTarget(user) + +/obj/structure/target_stake/proc/removeTarget(mob/user) + pinned_target.layer = OBJ_LAYER + pinned_target.loc = user.loc + pinned_target.nullPinnedLoc() + nullPinnedTarget() + if(ishuman(user)) + if(!user.get_active_held_item()) + user.put_in_hands(pinned_target) + user << "You take the target out of the stake." + else + pinned_target.loc = get_turf(user) + user << "You take the target out of the stake." + +/obj/structure/target_stake/bullet_act(obj/item/projectile/P) + if(pinned_target) + pinned_target.bullet_act(P) + else + ..() \ No newline at end of file diff --git a/code/game/objects/structures/transit_tubes/station.dm b/code/game/objects/structures/transit_tubes/station.dm new file mode 100644 index 0000000..3155c49 --- /dev/null +++ b/code/game/objects/structures/transit_tubes/station.dm @@ -0,0 +1,161 @@ + +// A place where tube pods stop, and people can get in or out. +// Mappers: use "Generate Instances from Directions" for this +// one. +/obj/structure/transit_tube/station + name = "station tube station" + icon = 'icons/obj/atmospherics/pipes/transit_tube_station.dmi' + icon_state = "closed" + exit_delay = 1 + enter_delay = 2 + tube_construction = /obj/structure/c_transit_tube/station + var/pod_moving = 0 + var/cooldown_delay = 50 + var/launch_cooldown = 0 + var/reverse_launch = 0 + + var/const/OPEN_DURATION = 6 + var/const/CLOSE_DURATION = 6 + +/obj/structure/transit_tube/station/New() + ..() + START_PROCESSING(SSobj, src) + +/obj/structure/transit_tube/station/Destroy() + STOP_PROCESSING(SSobj, src) + return ..() + +// Stations which will send the tube in the opposite direction after their stop. +/obj/structure/transit_tube/station/reverse + tube_construction = /obj/structure/c_transit_tube/station/reverse + reverse_launch = 1 + +/obj/structure/transit_tube/station/should_stop_pod(pod, from_dir) + return 1 + +/obj/structure/transit_tube/station/Bumped(mob/AM as mob|obj) + if(!pod_moving && icon_state == "open" && istype(AM, /mob)) + for(var/obj/structure/transit_tube_pod/pod in loc) + if(!pod.moving && pod.dir in directions()) + AM.loc = pod + return + + +//pod insertion +/obj/structure/transit_tube/station/MouseDrop_T(obj/structure/c_transit_tube_pod/R, mob/user) + if(!user.canmove || user.stat || user.restrained()) + return + if (!istype(R) || get_dist(user, src) > 1 || get_dist(src,R) > 1) + return + for(var/obj/structure/transit_tube_pod/pod in loc) + return //no fun allowed + var/obj/structure/transit_tube_pod/T = new/obj/structure/transit_tube_pod(src) + R.transfer_fingerprints_to(T) + T.add_fingerprint(user) + T.loc = src.loc + T.setDir(turn(src.dir, -90)) + user.visible_message("[user] inserts the [R].", "You insert the [R].") + qdel(R) + + +/obj/structure/transit_tube/station/attack_hand(mob/user) + if(!pod_moving) + if(user.pulling && user.a_intent == "grab" && isliving(user.pulling)) + if(icon_state == "open") + var/mob/living/GM = user.pulling + if(user.grab_state >= GRAB_AGGRESSIVE) + if(GM.buckled || GM.has_buckled_mobs()) + user << "[GM] is attached to something!" + return + for(var/obj/structure/transit_tube_pod/pod in loc) + pod.visible_message("[user] starts putting [GM] into the [pod]!") + if(do_after(user, 15, target = src)) + if(GM && user.grab_state >= GRAB_AGGRESSIVE && user.pulling == GM && !GM.buckled && !GM.has_buckled_mobs()) + GM.Weaken(5) + src.Bumped(GM) + break + else + for(var/obj/structure/transit_tube_pod/pod in loc) + if(!pod.moving && pod.dir in directions()) + if(icon_state == "closed") + open_animation() + + else if(icon_state == "open") + if(pod.contents.len && user.loc != pod) + user.visible_message("[user] starts emptying [pod]'s contents onto the floor.", "You start emptying [pod]'s contents onto the floor...") + if(do_after(user, 10, target = src)) //So it doesn't default to close_animation() on fail + if(pod.loc == loc) + for(var/atom/movable/AM in pod) + AM.loc = get_turf(user) + if(ismob(AM)) + var/mob/M = AM + M.Weaken(5) + + else + close_animation() + break + + +/obj/structure/transit_tube/station/attackby(obj/item/W, mob/user, params) + if(istype(W, /obj/item/weapon/crowbar)) + for(var/obj/structure/transit_tube_pod/pod in loc) + if(pod.contents) + user << "Empty the pod first!" + return + user.visible_message("[user] removes the [pod].", "You remove the [pod].") + var/obj/structure/c_transit_tube_pod/R = new/obj/structure/c_transit_tube_pod(src.loc) + pod.transfer_fingerprints_to(R) + R.add_fingerprint(user) + qdel(pod) + else + return ..() + +/obj/structure/transit_tube/station/proc/open_animation() + if(icon_state == "closed") + icon_state = "opening" + spawn(OPEN_DURATION) + if(icon_state == "opening") + icon_state = "open" + + + +/obj/structure/transit_tube/station/proc/close_animation() + if(icon_state == "open") + icon_state = "closing" + spawn(CLOSE_DURATION) + if(icon_state == "closing") + icon_state = "closed" + + + +/obj/structure/transit_tube/station/proc/launch_pod() + if(launch_cooldown >= world.time) + return + for(var/obj/structure/transit_tube_pod/pod in loc) + if(!pod.moving && turn(pod.dir, (reverse_launch ? 180 : 0)) in directions()) + pod_moving = 1 + close_animation() + sleep(CLOSE_DURATION + 2) + if(icon_state == "closed" && pod) + pod.follow_tube(reverse_launch) + pod_moving = 0 + return 1 + return 0 + +/obj/structure/transit_tube/station/process() + if(!pod_moving) + launch_pod() + +/obj/structure/transit_tube/station/pod_stopped(obj/structure/transit_tube_pod/pod, from_dir) + pod_moving = 1 + spawn(5) + launch_cooldown = world.time + cooldown_delay + open_animation() + sleep(OPEN_DURATION + 2) + pod_moving = 0 + pod.mix_air() + +// Tube station directions are simply 90 to either side of +// the exit. +/obj/structure/transit_tube/station/init_dirs() + tube_dirs = list(turn(dir, 90), turn(dir, -90)) \ No newline at end of file diff --git a/code/game/objects/structures/transit_tubes/transit_tube.dm b/code/game/objects/structures/transit_tubes/transit_tube.dm new file mode 100644 index 0000000..78cdd06 --- /dev/null +++ b/code/game/objects/structures/transit_tubes/transit_tube.dm @@ -0,0 +1,293 @@ +// Basic transit tubes. Straight pieces, curved sections, +// and basic splits/joins (no routing logic). +// Mappers: you can use "Generate Instances from Icon-states" +// to get the different pieces. +/obj/structure/transit_tube + icon = 'icons/obj/atmospherics/pipes/transit_tube.dmi' + icon_state = "E-W" + density = 1 + layer = ABOVE_OBJ_LAYER + anchored = 1 + var/tube_construction = /obj/structure/c_transit_tube + var/list/tube_dirs = null + var/exit_delay = 1 + var/enter_delay = 0 + + // alldirs in global.dm is the same list of directions, but since + // the specific order matters to get a usable icon_state, it is + // copied here so that, in the unlikely case that alldirs is changed, + // this continues to work. + var/global/list/tube_dir_list = list(NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST) + +/obj/structure/transit_tube/CanPass(atom/movable/mover, turf/target) + if(istype(mover) && mover.checkpass(PASSGLASS)) + return 1 + return !density + +// When destroyed by explosions, properly handle contents. +/obj/structure/transit_tube/ex_act(severity, target) + ..() + if(!qdeleted(src)) + for(var/atom/movable/AM in contents) + AM.forceMove(loc) + +/obj/structure/transit_tube/contents_explosion(severity, target) + for(var/atom/movable/AM in contents) + AM.ex_act(severity, target) + +/obj/structure/transit_tube/New(loc) + ..(loc) + + if(tube_dirs == null) + init_dirs() + +/obj/structure/transit_tube/Destroy() + for(var/atom/movable/AM in contents) + AM.forceMove(loc) + return ..() + +/obj/structure/transit_tube/attackby(obj/item/W, mob/user, params) + if(istype(W, /obj/item/weapon/wrench)) + if(copytext(icon_state, 1, 3) != "D-") //decorative diagonals cannot be unwrenched directly + for(var/obj/structure/transit_tube_pod/pod in src.loc) + user << "Remove the pod first!" + return + user.visible_message("[user] starts to deattach \the [src].", "You start to deattach the [name]...") + playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + if(do_after(user, 35/W.toolspeed, target = src)) + user << "You deattach the [name]." + var/obj/structure/R = new tube_construction(src.loc) + R.icon_state = src.icon_state + src.transfer_fingerprints_to(R) + R.add_fingerprint(user) + src.destroy_diagonals() + qdel(src) + else if(istype(W, /obj/item/weapon/crowbar)) + for(var/obj/structure/transit_tube_pod/pod in src.loc) + pod.attackby(W, user) + else + return ..() + +//destroys disconnected decorative diagonals +/obj/structure/transit_tube/proc/destroy_diagonals() + for(var/obj/structure/transit_tube/D in orange(1, src)) + if(copytext(D.icon_state, 1, 3) == "D-") //is diagonal + var/my_dir = text2dir_extended(copytext(D.icon_state, 3, 5)) + var/is_connecting = 0 + for(var/obj/structure/transit_tube/N in orange(1,D)) + if( (( get_dir(D,N) == turn(my_dir, -45) && D.has_exit(turn(my_dir, 90)) ) || \ + ( get_dir(D,N) == turn(my_dir, 45) && D.has_exit(turn(my_dir, -90))) ) && \ + D != src ) + is_connecting = 1 + break + if(!is_connecting) + qdel(D) + +// Called to check if a pod should stop upon entering this tube. +/obj/structure/transit_tube/proc/should_stop_pod(pod, from_dir) + return 0 + +// Called when a pod stops in this tube section. +/obj/structure/transit_tube/proc/pod_stopped(pod, from_dir) + return + +// Returns a /list of directions this tube section can connect to. +// Tubes that have some sort of logic or changing direction might +// override it with additional logic. +/obj/structure/transit_tube/proc/directions() + return tube_dirs + + + +/obj/structure/transit_tube/proc/has_entrance(from_dir) + from_dir = turn(from_dir, 180) + + for(var/direction in directions()) + if(direction == from_dir) + return 1 + + return 0 + + + +/obj/structure/transit_tube/proc/has_exit(in_dir) + for(var/direction in directions()) + if(direction == in_dir) + return 1 + + return 0 + + + +// Searches for an exit direction within 45 degrees of the +// specified dir. Returns that direction, or 0 if none match. +/obj/structure/transit_tube/proc/get_exit(in_dir) + var/near_dir = 0 + var/in_dir_cw = turn(in_dir, -45) + var/in_dir_ccw = turn(in_dir, 45) + + for(var/direction in directions()) + if(direction == in_dir) + return direction + + else if(direction == in_dir_cw) + near_dir = direction + + else if(direction == in_dir_ccw) + near_dir = direction + + return near_dir + + +// Return how many BYOND ticks to wait before entering/exiting +// the tube section. Default action is to return the value of +// a var, which wouldn't need a proc, but it makes it possible +// for later tube types to interact in more interesting ways +// such as being very fast in one direction, but slow in others +/obj/structure/transit_tube/proc/exit_delay(pod, to_dir) + return exit_delay + +/obj/structure/transit_tube/proc/enter_delay(pod, to_dir) + return enter_delay + + +// Parse the icon_state into a list of directions. +// This means that mappers can use Dream Maker's built in +// "Generate Instances from Icon-states" option to get all +// variations. Additionally, as a separate proc, sub-types +// can handle it more intelligently. +/obj/structure/transit_tube/proc/init_dirs() + if(icon_state == "auto") + // Additional delay, for map loading. + spawn(1) + init_dirs_automatic() + + else + tube_dirs = parse_dirs(icon_state) + + if(copytext(icon_state, 1, 3) == "D-" || findtextEx(icon_state, "Pass")) + density = 0 + + + + +// Initialize dirs by searching for tubes that do/might connect +// on nearby turfs. Create corner pieces if nessecary. +// Pick two directions, preferring tubes that already connect +// to loc, or other auto tubes if there aren't enough connections. +/obj/structure/transit_tube/proc/init_dirs_automatic() + var/list/connected = list() + var/list/connected_auto = list() + + for(var/direction in tube_dir_list) + var/location = get_step(loc, direction) + for(var/obj/structure/transit_tube/tube in location) + if(tube.directions() == null && tube.icon_state == "auto") + connected_auto += direction + break + + else if(turn(direction, 180) in tube.directions()) + connected += direction + break + + connected += connected_auto + + tube_dirs = select_automatic_dirs(connected) + + if(length(tube_dirs) == 2 && tube_dir_list.Find(tube_dirs[1]) > tube_dir_list.Find(tube_dirs[2])) + tube_dirs.Swap(1, 2) + + generate_automatic_corners(tube_dirs) + select_automatic_icon_state(tube_dirs) + + + +// Given a list of directions, look a pair that forms a 180 or +// 135 degree angle, and return a list containing the pair. +// If none exist, return list(connected[1], turn(connected[1], 180) +/obj/structure/transit_tube/proc/select_automatic_dirs(connected) + if(length(connected) < 1) + return list() + + for(var/i = 1, i <= length(connected), i++) + for(var/j = i + 1, j <= length(connected), j++) + var/d1 = connected[i] + var/d2 = connected[j] + + if(d1 == turn(d2, 135) || d1 == turn(d2, 180) || d1 == turn(d2, 225)) + return list(d1, d2) + + return list(connected[1], turn(connected[1], 180)) + + + +/obj/structure/transit_tube/proc/select_automatic_icon_state(directions) + if(length(directions) == 2) + icon_state = "[dir2text_short(directions[1])]-[dir2text_short(directions[2])]" + + + +// Look for diagonal directions, generate the decorative corners in each. +/obj/structure/transit_tube/proc/generate_automatic_corners(directions) + for(var/direction in directions) + if(direction == 5 || direction == 6 || direction == 9 || direction == 10) + if(direction & NORTH) + create_automatic_decorative_corner(get_step(loc, NORTH), direction ^ 3) + + else + create_automatic_decorative_corner(get_step(loc, SOUTH), direction ^ 3) + + if(direction & EAST) + create_automatic_decorative_corner(get_step(loc, EAST), direction ^ 12) + + else + create_automatic_decorative_corner(get_step(loc, WEST), direction ^ 12) + + + +// Generate a corner, if one doesn't exist for the direction on the turf. +/obj/structure/transit_tube/proc/create_automatic_decorative_corner(location, direction) + var/state = "D-[dir2text_short(direction)]" + + for(var/obj/structure/transit_tube/tube in location) + if(tube.icon_state == state) + return + + var/obj/structure/transit_tube/tube = new(location) + tube.icon_state = state + tube.init_dirs() + + + +// Uses a list() to cache return values. Since they should +// never be edited directly, all tubes with a certain +// icon_state can just reference the same list. In theory, +// reduces memory usage, and improves CPU cache usage. +// In reality, I don't know if that is quite how BYOND works, +// but it is probably safer to assume the existence of, and +// rely on, a sufficiently smart compiler/optimizer. +/obj/structure/transit_tube/proc/parse_dirs(text) + var/global/list/direction_table = list() + + if(text in direction_table) + return direction_table[text] + + var/list/split_text = splittext(text, "-") + + // If the first token is D, the icon_state represents + // a purely decorative tube, and doesn't actually + // connect to anything. + if(split_text[1] == "D") + direction_table[text] = list() + return null + + var/list/directions = list() + + for(var/text_part in split_text) + var/direction = text2dir_extended(text_part) + + if(direction > 0) + directions += direction + + direction_table[text] = directions + return directions diff --git a/code/game/objects/structures/transit_tubes/transit_tube_construction.dm b/code/game/objects/structures/transit_tubes/transit_tube_construction.dm new file mode 100644 index 0000000..1335a7e --- /dev/null +++ b/code/game/objects/structures/transit_tubes/transit_tube_construction.dm @@ -0,0 +1,160 @@ +// transit tube construction + +// normal transit tubes +/obj/structure/c_transit_tube + name = "unattached transit tube" + icon = 'icons/obj/atmospherics/pipes/transit_tube.dmi' + icon_state = "E-W" //icon_state decides which tube will be built + density = 0 + layer = ABOVE_OBJ_LAYER //same as the built tube + anchored = 0 + +/obj/structure/c_transit_tube/examine(mob/user) + ..() + user << "Alt-click to rotate it clockwise." + +//wrapper for turn that changes the transit tube formatted icon_state instead of the dir +/obj/structure/c_transit_tube/proc/tube_turn(angle) + var/list/badtubes = list("W-E", "W-E-Pass", "S-N", "S-N-Pass", "SW-NE", "SE-NW") + var/list/split_text = splittext(icon_state, "-") + for(var/i=1; i<=split_text.len; i++) + var/curdir = text2dir_extended(split_text[i]) //0 if not a valid direction (e.g. Pass, Block) + if(curdir) + split_text[i] = dir2text_short(turn(curdir, angle)) + var/newdir = jointext(split_text, "-") + if(badtubes.Find(newdir)) + split_text.Swap(1,2) + newdir = jointext(split_text, "-") + icon_state = newdir + +/obj/structure/c_transit_tube/proc/tube_flip() + var/list/split_text = splittext(icon_state, "-") + //skip straight pipes + if(length(split_text[2]) < 2) + return + //for junctions, just swap the diagonals with each other + if(split_text.len == 3 && split_text[3] != "Pass") + split_text.Swap(2,3) + else if(length(split_text[1]) == 2 && length(split_text[2]) == 2) //diagonals + split_text[1] = copytext(split_text[1],1,2) + copytext(split_text[2],2,3) + split_text[2] = copytext(split_text[2],1,2) + ((copytext(split_text[2],2,3) == "E") ? "W" : "E") + //for curves, swap the diagonal direction that is not in the same axis as the cardinal direction + else + if(split_text[1] == "N" || split_text[1] == "S") + split_text[2] = copytext(split_text[2],1,2) + ((copytext(split_text[2],2,3) == "E") ? "W" : "E") + else + split_text[2] = ((copytext(split_text[2],1,2) == "N") ? "S" : "N") + copytext(split_text[2],2,3) + icon_state = jointext(split_text, "-") + +// disposals-style flip and rotate verbs +/obj/structure/c_transit_tube/verb/rotate() + set name = "Rotate Tube CW" + set category = "Object" + set src in view(1) + + if(usr.incapacitated()) + return + + tube_turn(-90) + +/obj/structure/c_transit_tube/AltClick(mob/user) + ..() + if(user.incapacitated()) + user << "You can't do that right now!" + return + if(!in_range(src, user)) + return + else + rotate() + +/obj/structure/c_transit_tube/verb/rotate_ccw() + set name = "Rotate Tube CCW" + set category = "Object" + set src in view(1) + + if(usr.incapacitated()) + return + + tube_turn(90) + +/obj/structure/c_transit_tube/verb/flip() + set name = "Flip" + set category = "Object" + set src in view(1) + + if(usr.incapacitated()) + return + + tube_flip() + +/obj/structure/c_transit_tube/proc/buildtube() + var/obj/structure/transit_tube/R = new/obj/structure/transit_tube(src.loc) + R.icon_state = src.icon_state + R.init_dirs() + R.generate_automatic_corners(R.tube_dirs) + return R + +/obj/structure/c_transit_tube/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/wrench)) + user << "You start attaching the [name]..." + src.add_fingerprint(user) + if(do_after(user, 40/I.toolspeed, target = src)) + if(!src) return + user << "You attach the [name]." + var/obj/structure/transit_tube/R = src.buildtube() + src.transfer_fingerprints_to(R) + qdel(src) + else + return ..() + +// transit tube station +/obj/structure/c_transit_tube/station + name = "unattached through station" + icon = 'icons/obj/atmospherics/pipes/transit_tube_station.dmi' + icon_state = "closed" + +/obj/structure/c_transit_tube/station/tube_turn(var/angle) + src.setDir(turn(src.dir, angle)) + +/obj/structure/c_transit_tube/station/tube_flip() + src.tube_turn(180) + +/obj/structure/c_transit_tube/station/buildtube() + var/obj/structure/transit_tube/station/R = new/obj/structure/transit_tube/station(src.loc) + R.setDir(src.dir) + R.init_dirs() + return R + +// reverser station, used for the terminus +/obj/structure/c_transit_tube/station/reverse + name = "unattached terminus station" + +/obj/structure/c_transit_tube/station/reverse/buildtube() + var/obj/structure/transit_tube/station/reverse/R = new/obj/structure/transit_tube/station/reverse(src.loc) + R.setDir(src.dir) + R.init_dirs() + return R + +// block, used after the terminus of a transit tube station, decorative only +// code-wise they're normal tubes but they're ~speshul~ because they care about the dir instead of the icon_state +// in that sense they're the same as stations and can reuse their flip and rotate verbs +/obj/structure/c_transit_tube/station/block + name = "unattached tube blocker" + icon = 'icons/obj/atmospherics/pipes/transit_tube.dmi' + icon_state = "Block" + +/obj/structure/c_transit_tube/station/block/buildtube() + var/obj/structure/transit_tube/R = new/obj/structure/transit_tube(src.loc) + R.icon_state = src.icon_state + R.setDir(src.dir) + R.init_dirs() + return R + +//transit tube pod +//see station.dm for the logic +/obj/structure/c_transit_tube_pod + name = "unattached transit tube pod" + icon = 'icons/obj/atmospherics/pipes/transit_tube_pod.dmi' + icon_state = "pod" + anchored = 0 + density = 0 diff --git a/code/game/objects/structures/transit_tubes/transit_tube_pod.dm b/code/game/objects/structures/transit_tubes/transit_tube_pod.dm new file mode 100644 index 0000000..8bbe93e --- /dev/null +++ b/code/game/objects/structures/transit_tubes/transit_tube_pod.dm @@ -0,0 +1,219 @@ +/obj/structure/transit_tube_pod + icon = 'icons/obj/atmospherics/pipes/transit_tube_pod.dmi' + icon_state = "pod" + animate_movement = FORWARD_STEPS + anchored = 1 + density = 1 + var/moving = 0 + var/datum/gas_mixture/air_contents = new() + + +/obj/structure/transit_tube_pod/New(loc) + ..(loc) + + air_contents.assert_gases("o2", "n2") + air_contents.gases["o2"][MOLES] = MOLES_O2STANDARD * 2 + air_contents.gases["n2"][MOLES] = MOLES_N2STANDARD + air_contents.temperature = T20C + + // Give auto tubes time to align before trying to start moving + spawn(5) + follow_tube() + +/obj/structure/transit_tube_pod/Destroy() + empty() + return ..() + +/obj/structure/transit_tube_pod/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/crowbar)) + if(!moving) + for(var/obj/structure/transit_tube/station/T in loc) + return + if(contents.len) + user.visible_message("[user] empties \the [src].", "You empty \the [src].") + empty() + return + else + user << "You free \the [src]." + var/obj/structure/c_transit_tube_pod/R = new/obj/structure/c_transit_tube_pod(src.loc) + src.transfer_fingerprints_to(R) + R.add_fingerprint(user) + qdel(src) + else + return ..() + +/obj/structure/transit_tube_pod/ex_act(severity, target) + ..() + if(!qdeleted(src)) + for(var/atom/movable/AM in contents) + AM.forceMove(loc) + +/obj/structure/transit_tube_pod/contents_explosion(severity, target) + for(var/atom/movable/AM in contents) + AM.ex_act(severity, target) + +/obj/structure/transit_tube_pod/container_resist() + var/mob/living/user = usr + if(!moving) + user.changeNext_move(CLICK_CD_BREAKOUT) + user.last_special = world.time + CLICK_CD_BREAKOUT + user << "You start trying to escape from the pod..." + if(do_after(user, 600, target = src)) + user << "You manage to open the pod." + src.empty() + +/obj/structure/transit_tube_pod/proc/empty() + for(var/atom/movable/M in src.contents) + M.forceMove(loc) + +/obj/structure/transit_tube_pod/Process_Spacemove() + if(moving) //No drifting while moving in the tubes + return 1 + else return ..() + +/obj/structure/transit_tube_pod/proc/follow_tube(reverse_launch) + set waitfor = 0 + if(moving) + return + + moving = 1 + + + var/obj/structure/transit_tube/current_tube = null + var/next_dir + var/next_loc + var/last_delay = 0 + var/exit_delay + + if(reverse_launch) + setDir(turn(dir, 180) )// Back it up + + for(var/obj/structure/transit_tube/tube in loc) + if(tube.has_exit(dir)) + current_tube = tube + break + + while(current_tube) + next_dir = current_tube.get_exit(dir) + + if(!next_dir) + break + + exit_delay = current_tube.exit_delay(src, dir) + last_delay += exit_delay + + sleep(exit_delay) + + next_loc = get_step(loc, next_dir) + + current_tube = null + for(var/obj/structure/transit_tube/tube in next_loc) + if(tube.has_entrance(next_dir)) + current_tube = tube + break + + if(current_tube == null) + setDir(next_dir) + Move(get_step(loc, dir), dir) // Allow collisions when leaving the tubes. + break + + last_delay = current_tube.enter_delay(src, next_dir) + sleep(last_delay) + setDir(next_dir) + loc = next_loc // When moving from one tube to another, skip collision and such. + density = current_tube.density + + if(current_tube && current_tube.should_stop_pod(src, next_dir)) + current_tube.pod_stopped(src, dir) + break + + density = 1 + moving = 0 + + +// Should I return a copy here? If the caller edits or del()s the returned +// datum, there might be problems if I don't... +/obj/structure/transit_tube_pod/return_air() + var/datum/gas_mixture/GM = new() + GM.copy_from(air_contents) + return GM + +// For now, copying what I found in an unused FEA file (and almost identical in a +// used ZAS file). Means that assume_air and remove_air don't actually alter the +// air contents. +/obj/structure/transit_tube_pod/assume_air(datum/gas_mixture/giver) + return air_contents.merge(giver) + +/obj/structure/transit_tube_pod/remove_air(amount) + return air_contents.remove(amount) + + + +// Called when a pod arrives at, and before a pod departs from a station, +// giving it a chance to mix its internal air supply with the turf it is +// currently on. +/obj/structure/transit_tube_pod/proc/mix_air() + var/datum/gas_mixture/environment = loc.return_air() + var/env_pressure = environment.return_pressure() + var/int_pressure = air_contents.return_pressure() + var/total_pressure = env_pressure + int_pressure + + if(total_pressure == 0) + return + + // Math here: Completely made up, not based on realistic equasions. + // Goal is to balance towards equal pressure, but ensure some gas + // transfer in both directions regardless. + // Feel free to rip this out and replace it with something better, + // I don't really know muhch about how gas transfer rates work in + // SS13. + var/transfer_in = max(0.1, 0.5 * (env_pressure - int_pressure) / total_pressure) + var/transfer_out = max(0.1, 0.3 * (int_pressure - env_pressure) / total_pressure) + + var/datum/gas_mixture/from_env = loc.remove_air(environment.total_moles() * transfer_in) + var/datum/gas_mixture/from_int = air_contents.remove(air_contents.total_moles() * transfer_out) + + loc.assume_air(from_int) + air_contents.merge(from_env) + + + +// When the player moves, check if the pos is currently stopped at a station. +// if it is, check the direction. If the direction matches the direction of +// the station, try to exit. If the direction matches one of the station's +// tube directions, launch the pod in that direction. +/obj/structure/transit_tube_pod/relaymove(mob/mob, direction) + if(istype(mob, /mob) && mob.client) + // If the pod is not in a tube at all, you can get out at any time. + if(!(locate(/obj/structure/transit_tube) in loc)) + mob.loc = loc + mob.client.Move(get_step(loc, direction), direction) + mob.reset_perspective(null) + + //if(moving && isspaceturf(loc)) + // Todo: If you get out of a moving pod in space, you should move as well. + // Same direction as pod? Direcion you moved? Halfway between? + + if(!moving) + for(var/obj/structure/transit_tube/station/station in loc) + if(dir in station.directions()) + if(!station.pod_moving) + if(direction == station.dir) + if(station.icon_state == "open") + mob.loc = loc + mob.client.Move(get_step(loc, direction), direction) + mob.reset_perspective(null) + + else + station.open_animation() + + else if(direction in station.directions()) + setDir(direction) + station.launch_pod() + return + + for(var/obj/structure/transit_tube/tube in loc) + if(dir in tube.directions()) + if(tube.has_exit(direction)) + setDir(direction) + return \ No newline at end of file diff --git a/code/game/objects/structures/traps.dm b/code/game/objects/structures/traps.dm new file mode 100644 index 0000000..b6c9e0b --- /dev/null +++ b/code/game/objects/structures/traps.dm @@ -0,0 +1,99 @@ +/obj/structure/trap + name = "IT'S A TARP" + desc = "stepping on me is a guaranteed bad day" + icon = 'icons/obj/hand_of_god_structures.dmi' + icon_state = "trap" + density = 0 + alpha = 30 //initially quite hidden when not "recharging" + var/last_trigger = 0 + var/time_between_triggers = 600 //takes a minute to recharge + +/obj/structure/trap/Crossed(atom/movable/AM) + if(last_trigger + time_between_triggers > world.time) + return + alpha = initial(alpha) + if(isliving(AM)) + var/mob/living/L = AM + last_trigger = world.time + alpha = 200 + trap_effect(L) + animate(src, alpha = initial(alpha), time = time_between_triggers) + +/obj/structure/trap/examine(mob/user) + ..() + if(!isliving(user)) //bad ghosts, stop trying to powergame from beyond the grave + return + user << "You reveal a trap!" + alpha = 200 + animate(src, alpha = initial(alpha), time = time_between_triggers) + + +/obj/structure/trap/proc/trap_effect(mob/living/L) + return + +/obj/structure/trap/stun + name = "shock trap" + desc = "A trap that will shock you, it will burn your flesh and render you immobile, You'd better avoid it." + icon_state = "trap-shock" + +/obj/structure/trap/stun/trap_effect(mob/living/L) + L << "You are paralyzed from the intense shock!" + L.Weaken(5) + var/turf/Lturf = get_turf(L) + new /obj/effect/particle_effect/sparks/electricity(Lturf) + new /obj/effect/particle_effect/sparks(Lturf) + + +/obj/structure/trap/fire + name = "flame trap" + desc = "A trap that will set you ablaze. You'd better avoid it." + icon_state = "trap-fire" + + +/obj/structure/trap/fire/trap_effect(mob/living/L) + L << "Spontaneous combustion!" + L.Weaken(1) + var/turf/Lturf = get_turf(L) + new /obj/effect/hotspot(Lturf) + new /obj/effect/particle_effect/sparks(Lturf) + + +/obj/structure/trap/chill + name = "frost trap" + desc = "A trap that will chill you to the bone. You'd better avoid it." + icon_state = "trap-frost" + + +/obj/structure/trap/chill/trap_effect(mob/living/L) + L << "You're frozen solid!" + L.Weaken(1) + L.bodytemperature -= 300 + new /obj/effect/particle_effect/sparks(get_turf(L)) + + +/obj/structure/trap/damage + name = "earth trap" + desc = "A trap that will summon a small earthquake, just for you. You'd better avoid it." + icon_state = "trap-earth" + + +/obj/structure/trap/damage/trap_effect(mob/living/L) + L << "The ground quakes beneath your feet!" + L.Weaken(5) + L.adjustBruteLoss(35) + var/turf/Lturf = get_turf(L) + new /obj/effect/particle_effect/sparks(Lturf) + new /obj/structure/flora/rock(Lturf) + + +/obj/structure/trap/ward + name = "divine ward" + desc = "A divine barrier, It looks like you could destroy it with enough effort, or wait for it to dissipate..." + icon_state = "ward" + density = 1 + time_between_triggers = 1200 //Exists for 2 minutes + + +/obj/structure/trap/ward/New() + ..() + QDEL_IN(src, time_between_triggers) diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm new file mode 100644 index 0000000..35f7a4c --- /dev/null +++ b/code/game/objects/structures/watercloset.dm @@ -0,0 +1,585 @@ +/obj/structure/toilet + name = "toilet" + desc = "The HT-451, a torque rotation-based, waste disposal unit for small matter. This one seems remarkably clean." + icon = 'icons/obj/watercloset.dmi' + icon_state = "toilet00" + density = 0 + anchored = 1 + var/open = 0 //if the lid is up + var/cistern = 0 //if the cistern bit is open + var/w_items = 0 //the combined w_class of all the items in the cistern + var/mob/living/swirlie = null //the mob being given a swirlie + + +/obj/structure/toilet/New() + open = round(rand(0, 1)) + update_icon() + + +/obj/structure/toilet/attack_hand(mob/living/user) + if(swirlie) + user.changeNext_move(CLICK_CD_MELEE) + playsound(src.loc, "swing_hit", 25, 1) + swirlie.visible_message("[user] slams the toilet seat onto [swirlie]'s head!", "[user] slams the toilet seat onto your head!", "You hear reverberating porcelain.") + swirlie.adjustBruteLoss(5) + + else if(user.pulling && user.a_intent == "grab" && isliving(user.pulling)) + user.changeNext_move(CLICK_CD_MELEE) + var/mob/living/GM = user.pulling + if(user.grab_state >= GRAB_AGGRESSIVE) + if(GM.loc != get_turf(src)) + user << "[GM] needs to be on [src]!" + return + if(!swirlie) + if(open) + GM.visible_message("[user] starts to give [GM] a swirlie!", "[user] starts to give you a swirlie...") + swirlie = GM + if(do_after(user, 30, 0, target = src)) + GM.visible_message("[user] gives [GM] a swirlie!", "[user] gives you a swirlie!", "You hear a toilet flushing.") + if(iscarbon(GM)) + var/mob/living/carbon/C = GM + if(!C.internal) + C.adjustOxyLoss(5) + else + GM.adjustOxyLoss(5) + swirlie = null + else + playsound(src.loc, 'sound/effects/bang.ogg', 25, 1) + GM.visible_message("[user] slams [GM.name] into [src]!", "[user] slams you into [src]!") + GM.adjustBruteLoss(5) + else + user << "You need a tighter grip!" + + else if(cistern && !open) + if(!contents.len) + user << "The cistern is empty." + else + var/obj/item/I = pick(contents) + if(ishuman(user)) + user.put_in_hands(I) + else + I.loc = get_turf(src) + user << "You find [I] in the cistern." + w_items -= I.w_class + else + open = !open + update_icon() + + +/obj/structure/toilet/update_icon() + icon_state = "toilet[open][cistern]" + + +/obj/structure/toilet/attackby(obj/item/I, mob/living/user, params) + if(istype(I, /obj/item/weapon/crowbar)) + user << "You start to [cistern ? "replace the lid on the cistern" : "lift the lid off the cistern"]..." + playsound(loc, 'sound/effects/stonedoor_openclose.ogg', 50, 1) + if(do_after(user, 30/I.toolspeed, target = src)) + user.visible_message("[user] [cistern ? "replaces the lid on the cistern" : "lifts the lid off the cistern"]!", "You [cistern ? "replace the lid on the cistern" : "lift the lid off the cistern"]!", "You hear grinding porcelain.") + cistern = !cistern + update_icon() + + else if(cistern) + if(user.a_intent != "harm") + if(I.w_class > 3) + user << "[I] does not fit!" + return + if(w_items + I.w_class > 5) + user << "The cistern is full!" + return + if(!user.drop_item()) + user << "\The [I] is stuck to your hand, you cannot put it in the cistern!" + return + I.loc = src + w_items += I.w_class + user << "You carefully place [I] into the cistern." + + else if(istype(I, /obj/item/weapon/reagent_containers)) + if (!open) + return + var/obj/item/weapon/reagent_containers/RG = I + RG.reagents.add_reagent("water", min(RG.volume - RG.reagents.total_volume, RG.amount_per_transfer_from_this)) + user << "You fill [RG] from [src]. Gross." + else + return ..() + +/obj/structure/urinal + name = "urinal" + desc = "The HU-452, an experimental urinal. Comes complete with experimental urinal cake." + icon = 'icons/obj/watercloset.dmi' + icon_state = "urinal" + density = 0 + anchored = 1 + var/exposed = 0 // can you currently put an item inside + var/obj/item/hiddenitem = null // what's in the urinal + +/obj/structure/urinal/New() + ..() + hiddenitem = new /obj/item/weapon/reagent_containers/food/urinalcake + +/obj/structure/urinal/attack_hand(mob/user) + if(user.pulling && user.a_intent == "grab" && isliving(user.pulling)) + var/mob/living/GM = user.pulling + if(user.grab_state >= GRAB_AGGRESSIVE) + if(GM.loc != get_turf(src)) + user << "[GM.name] needs to be on [src]." + return + user.changeNext_move(CLICK_CD_MELEE) + user.visible_message("[user] slams [GM] into [src]!", "You slam [GM] into [src]!") + GM.adjustBruteLoss(8) + else + user << "You need a tighter grip!" + + else if(exposed) + if(!hiddenitem) + user << "There is nothing in the drain holder." + else + if(ishuman(user)) + user.put_in_hands(hiddenitem) + else + hiddenitem.forceMove(get_turf(src)) + user << "You fish [hiddenitem] out of the drain enclosure." + else + ..() + +/obj/structure/urinal/attackby(obj/item/I, mob/living/user, params) + if(istype(I, /obj/item/weapon/screwdriver)) + user << "You start to [exposed ? "screw the cap back into place" : "unscrew the cap to the drain protector"]..." + playsound(loc, 'sound/effects/stonedoor_openclose.ogg', 50, 1) + if(do_after(user, 20/I.toolspeed, target = src)) + user.visible_message("[user] [exposed ? "screws the cap back into place" : "unscrew the cap to the drain protector"]!", "You [exposed ? "screw the cap back into place" : "unscrew the cap on the drain"]!", "You hear metal and squishing noises.") + exposed = !exposed + else if(exposed) + if (hiddenitem) + user << "There is already something in the drain enclosure." + return + if(I.w_class > 1) + user << "[I] is too large for the drain enclosure." + return + if(!user.drop_item()) + user << "\[I] is stuck to your hand, you cannot put it in the drain enclosure!" + return + I.forceMove(src) + hiddenitem = I + user << "You place [I] into the drain enclosure." + + +/obj/item/weapon/reagent_containers/food/urinalcake + name = "urinal cake" + desc = "The noble urinal cake, protecting the station's pipes from the station's pee. Do not eat." + icon = 'icons/obj/items.dmi' + icon_state = "urinalcake" + w_class = 1 + list_reagents = list("chlorine" = 3, "ammonia" = 1) + +/obj/machinery/shower + name = "shower" + desc = "The HS-451. Installed in the 2550s by the Nanotrasen Hygiene Division." + icon = 'icons/obj/watercloset.dmi' + icon_state = "shower" + density = 0 + anchored = 1 + use_power = 0 + var/on = 0 + var/obj/effect/mist/mymist = null + var/ismist = 0 //needs a var so we can make it linger~ + var/watertemp = "normal" //freezing, normal, or boiling + + +/obj/effect/mist + name = "mist" + icon = 'icons/obj/watercloset.dmi' + icon_state = "mist" + layer = FLY_LAYER + anchored = 1 + mouse_opacity = 0 + + +/obj/machinery/shower/attack_hand(mob/M) + on = !on + update_icon() + add_fingerprint(M) + if(on) + wash_turf() + for(var/atom/movable/G in loc) + if(isliving(G)) + var/mob/living/L = G + wash_mob(L) + else + wash_obj(G) + else + if(isopenturf(loc)) + var/turf/open/tile = loc + tile.MakeSlippery(min_wet_time = 5, wet_time_to_add = 1) + + +/obj/machinery/shower/attackby(obj/item/I, mob/user, params) + if(I.type == /obj/item/device/analyzer) + user << "The water temperature seems to be [watertemp]." + if(istype(I, /obj/item/weapon/wrench)) + user << "You begin to adjust the temperature valve with \the [I]..." + if(do_after(user, 50/I.toolspeed, target = src)) + switch(watertemp) + if("normal") + watertemp = "freezing" + if("freezing") + watertemp = "boiling" + if("boiling") + watertemp = "normal" + user.visible_message("[user] adjusts the shower with \the [I].", "You adjust the shower with \the [I] to [watertemp] temperature.") + log_game("[key_name(user)] has wrenched a shower to [watertemp] at ([x],[y],[z])") + add_hiddenprint(user) + + +/obj/machinery/shower/update_icon() //this is terribly unreadable, but basically it makes the shower mist up + cut_overlays() //once it's been on for a while, in addition to handling the water overlay. + if(mymist) + qdel(mymist) + + if(on) + add_overlay(image('icons/obj/watercloset.dmi', src, "water", MOB_LAYER + 1, dir)) + if(watertemp == "freezing") + return + if(!ismist) + spawn(50) + if(src && on) + ismist = 1 + mymist = new /obj/effect/mist(loc) + else + ismist = 1 + mymist = new /obj/effect/mist(loc) + else if(ismist) + ismist = 1 + mymist = new /obj/effect/mist(loc) + spawn(250) + if(!on && mymist) + qdel(mymist) + ismist = 0 + + +/obj/machinery/shower/Crossed(atom/movable/O) + ..() + if(on) + if(isliving(O)) + var/mob/living/L = O + if(wash_mob(L)) //it's a carbon mob. + var/mob/living/carbon/C = L + C.slip(4,2,null,NO_SLIP_WHEN_WALKING) + else + wash_obj(O) + + +/obj/machinery/shower/proc/wash_obj(atom/movable/O) + O.clean_blood() + + if(istype(O,/obj/item)) + var/obj/item/I = O + I.acid_level = 0 + I.extinguish() + + +/obj/machinery/shower/proc/wash_turf() + if(isturf(loc)) + var/turf/tile = loc + loc.clean_blood() + for(var/obj/effect/E in tile) + if(is_cleanable(E)) + qdel(E) + + +/obj/machinery/shower/proc/wash_mob(mob/living/L) + L.wash_cream() + L.ExtinguishMob() + L.adjust_fire_stacks(-20) //Douse ourselves with water to avoid fire more easily + if(iscarbon(L)) + var/mob/living/carbon/M = L + . = 1 + check_heat(M) + for(var/obj/item/I in M.held_items) + I.clean_blood() + if(M.back) + if(M.back.clean_blood()) + M.update_inv_back(0) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + var/washgloves = 1 + var/washshoes = 1 + var/washmask = 1 + var/washears = 1 + var/washglasses = 1 + + if(H.wear_suit) + washgloves = !(H.wear_suit.flags_inv & HIDEGLOVES) + washshoes = !(H.wear_suit.flags_inv & HIDESHOES) + + if(H.head) + washmask = !(H.head.flags_inv & HIDEMASK) + washglasses = !(H.head.flags_inv & HIDEEYES) + washears = !(H.head.flags_inv & HIDEEARS) + + if(H.wear_mask) + if (washears) + washears = !(H.wear_mask.flags_inv & HIDEEARS) + if (washglasses) + washglasses = !(H.wear_mask.flags_inv & HIDEEYES) + + if(H.head) + if(H.head.clean_blood()) + H.update_inv_head() + if(H.wear_suit) + if(H.wear_suit.clean_blood()) + H.update_inv_wear_suit() + else if(H.w_uniform) + if(H.w_uniform.clean_blood()) + H.update_inv_w_uniform() + if(washgloves) + H.clean_blood() + if(H.shoes && washshoes) + if(H.shoes.clean_blood()) + H.update_inv_shoes() + if(H.wear_mask) + if(washmask) + if(H.wear_mask.clean_blood()) + H.update_inv_wear_mask() + else + H.lip_style = null + H.update_body() + if(H.glasses && washglasses) + if(H.glasses.clean_blood()) + H.update_inv_glasses() + if(H.ears && washears) + if(H.ears.clean_blood()) + H.update_inv_ears() + if(H.belt) + if(H.belt.clean_blood()) + H.update_inv_belt() + else + if(M.wear_mask) //if the mob is not human, it cleans the mask without asking for bitflags + if(M.wear_mask.clean_blood()) + M.update_inv_wear_mask(0) + M.clean_blood() + else + L.clean_blood() + + +/obj/machinery/shower/process() + if(on) + wash_turf() + for(var/atom/movable/G in loc) + if(isliving(G)) + var/mob/living/L = G + wash_mob(L) + else + wash_obj(G) + +/obj/machinery/shower/deconstruct(disassembled = TRUE) + new /obj/item/stack/sheet/metal (loc, 3) + qdel(src) + +/obj/machinery/shower/proc/check_heat(mob/living/carbon/C) + if(watertemp == "freezing") + C.bodytemperature = max(80, C.bodytemperature - 80) + C << "The water is freezing!" + else if(watertemp == "boiling") + C.bodytemperature = min(500, C.bodytemperature + 35) + C.adjustFireLoss(5) + C << "The water is searing!" + + + + +/obj/item/weapon/bikehorn/rubberducky + name = "rubber ducky" + desc = "Rubber ducky you're so fine, you make bathtime lots of fuuun. Rubber ducky I'm awfully fooooond of yooooouuuu~" //thanks doohl + icon = 'icons/obj/watercloset.dmi' + icon_state = "rubberducky" + item_state = "rubberducky" + + + +/obj/structure/sink + name = "sink" + icon = 'icons/obj/watercloset.dmi' + icon_state = "sink" + desc = "A sink used for washing one's hands and face." + anchored = 1 + var/busy = 0 //Something's being washed at the moment + + +/obj/structure/sink/attack_hand(mob/living/user) + if(!user || !istype(user)) + return + if(!iscarbon(user)) + return + if(!Adjacent(user)) + return + + if(busy) + user << "Someone's already washing here." + return + var/selected_area = parse_zone(user.zone_selected) + var/washing_face = 0 + if(selected_area in list("head", "mouth", "eyes")) + washing_face = 1 + user.visible_message("[user] starts washing their [washing_face ? "face" : "hands"]...", \ + "You start washing your [washing_face ? "face" : "hands"]...") + busy = 1 + + if(!do_after(user, 40, target = src)) + busy = 0 + return + + busy = 0 + + user.visible_message("[user] washes their [washing_face ? "face" : "hands"] using [src].", \ + "You wash your [washing_face ? "face" : "hands"] using [src].") + if(washing_face) + if(ishuman(user)) + var/mob/living/carbon/human/H = user + H.lip_style = null //Washes off lipstick + H.lip_color = initial(H.lip_color) + H.wash_cream() + H.regenerate_icons() + user.drowsyness = max(user.drowsyness - rand(2,3), 0) //Washing your face wakes you up if you're falling asleep + else + user.clean_blood() + + +/obj/structure/sink/attackby(obj/item/O, mob/user, params) + if(busy) + user << "Someone's already washing here!" + return + + if(istype(O, /obj/item/weapon/reagent_containers)) + var/obj/item/weapon/reagent_containers/RG = O + if(RG.flags & OPENCONTAINER) + RG.reagents.add_reagent("water", min(RG.volume - RG.reagents.total_volume, RG.amount_per_transfer_from_this)) + user << "You fill [RG] from [src]." + return 1 + + if(istype(O, /obj/item/weapon/melee/baton)) + var/obj/item/weapon/melee/baton/B = O + if(B.bcell) + if(B.bcell.charge > 0 && B.status == 1) + flick("baton_active", src) + var/stunforce = B.stunforce + user.Stun(stunforce) + user.Weaken(stunforce) + user.stuttering = stunforce + B.deductcharge(B.hitcost) + user.visible_message("[user] shocks themself while attempting to wash the active [B.name]!", \ + "You unwisely attempt to wash [B] while it's still on.") + playsound(src, "sparks", 50, 1) + return + + if(istype(O, /obj/item/weapon/mop)) + O.reagents.add_reagent("water", 5) + user << "You wet [O] in [src]." + playsound(loc, 'sound/effects/slosh.ogg', 25, 1) + + if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/monkeycube)) + var/obj/item/weapon/reagent_containers/food/snacks/monkeycube/M = O + user << "You place [src] under a stream of water..." + user.drop_item() + M.loc = get_turf(src) + M.Expand() + return + + if(!istype(O)) + return + if(O.flags & ABSTRACT) //Abstract items like grabs won't wash. No-drop items will though because it's still technically an item in your hand. + return + + if(user.a_intent != "harm") + user << "You start washing [O]..." + busy = 1 + if(!do_after(user, 40, target = src)) + busy = 0 + return 1 + busy = 0 + O.clean_blood() + O.acid_level = 0 + user.visible_message("[user] washes [O] using [src].", \ + "You wash [O] using [src].") + return 1 + else + return ..() + +/obj/structure/sink/deconstruct(disassembled = TRUE) + new /obj/item/stack/sheet/metal (loc, 3) + qdel(src) + + + +/obj/structure/sink/kitchen + name = "kitchen sink" + icon_state = "sink_alt" + + +/obj/structure/sink/puddle //splishy splashy ^_^ + name = "puddle" + icon_state = "puddle" + +/obj/structure/sink/puddle/attack_hand(mob/M) + icon_state = "puddle-splash" + ..() + icon_state = "puddle" + +/obj/structure/sink/puddle/attackby(obj/item/O, mob/user, params) + icon_state = "puddle-splash" + . = ..() + icon_state = "puddle" + + +//Shower Curtains// +//Defines used are pre-existing in layers.dm// + + +/obj/structure/curtain + name = "curtain" + desc = "Contains less than 1% mercury." + icon = 'icons/obj/watercloset.dmi' + icon_state = "open" + color = "#ACD1E9" //Default color, didn't bother hardcoding other colors, mappers can and should easily change it. + alpha = 200 //Mappers can also just set this to 255 if they want curtains that can't be seen through + layer = WALL_OBJ_LAYER + anchored = 1 + opacity = 0 + density = 0 + var/open = TRUE + +/obj/structure/curtain/proc/toggle() + open = !open + update_icon() + +/obj/structure/curtain/update_icon() + if(!open) + icon_state = "closed" + layer = WALL_OBJ_LAYER + density = 1 + open = FALSE + + else + icon_state = "open" + layer = SIGN_LAYER + density = 0 + open = TRUE + +/obj/structure/curtain/attack_hand(mob/user) + playsound(loc, 'sound/effects/curtain.ogg', 50, 1) + toggle() + ..() + +/obj/structure/curtain/deconstruct(disassembled = TRUE) + new /obj/item/stack/sheet/cloth (loc, 3) + qdel(src) + +/obj/structure/curtain/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) + switch(damage_type) + if(BRUTE) + if(damage_amount) + playsound(src.loc, 'sound/weapons/slash.ogg', 80, 1) + else + playsound(loc, 'sound/weapons/tap.ogg', 50, 1) + if(BURN) + playsound(loc, 'sound/items/welder.ogg', 80, 1) \ No newline at end of file diff --git a/code/game/objects/structures/windoor_assembly.dm b/code/game/objects/structures/windoor_assembly.dm new file mode 100644 index 0000000..7cd434f --- /dev/null +++ b/code/game/objects/structures/windoor_assembly.dm @@ -0,0 +1,356 @@ +/* Windoor (window door) assembly -Nodrak + * Step 1: Create a windoor out of rglass + * Step 2: Add r-glass to the assembly to make a secure windoor (Optional) + * Step 3: Rotate or Flip the assembly to face and open the way you want + * Step 4: Wrench the assembly in place + * Step 5: Add cables to the assembly + * Step 6: Set access for the door. + * Step 7: Screwdriver the door to complete + */ + + +/obj/structure/windoor_assembly + icon = 'icons/obj/doors/windoor.dmi' + + name = "windoor Assembly" + icon_state = "l_windoor_assembly01" + anchored = 0 + density = 0 + setDir(NORTH) + + var/ini_dir + var/obj/item/weapon/electronics/airlock/electronics = null + var/created_name = null + + //Vars to help with the icon's name + var/facing = "l" //Does the windoor open to the left or right? + var/secure = 0 //Whether or not this creates a secure windoor + var/state = "01" //How far the door assembly has progressed + +/obj/structure/windoor_assembly/examine(mob/user) + ..() + user << "Alt-click to rotate it clockwise." + +/obj/structure/windoor_assembly/New(dir=NORTH) + ..() + ini_dir = dir + air_update_turf(1) + +/obj/structure/windoor_assembly/Destroy() + density = 0 + air_update_turf(1) + return ..() + +/obj/structure/windoor_assembly/Move() + var/turf/T = loc + ..() + move_update_air(T) + +/obj/structure/windoor_assembly/update_icon() + icon_state = "[facing]_[secure ? "secure_" : ""]windoor_assembly[state]" + +/obj/structure/windoor_assembly/CanPass(atom/movable/mover, turf/target, height=0) + if(istype(mover) && mover.checkpass(PASSGLASS)) + return 1 + if(get_dir(loc, target) == dir) //Make sure looking at appropriate border + return !density + else + return 1 + +/obj/structure/windoor_assembly/CanAtmosPass(turf/T) + if(get_dir(loc, T) == dir) + return !density + else + return 1 + +/obj/structure/windoor_assembly/CheckExit(atom/movable/mover as mob|obj, turf/target) + if(istype(mover) && mover.checkpass(PASSGLASS)) + return 1 + if(get_dir(loc, target) == dir) + return !density + else + return 1 + + +/obj/structure/windoor_assembly/attackby(obj/item/W, mob/user, params) + //I really should have spread this out across more states but thin little windoors are hard to sprite. + add_fingerprint(user) + switch(state) + if("01") + if(istype(W, /obj/item/weapon/weldingtool) && !anchored ) + var/obj/item/weapon/weldingtool/WT = W + if (WT.remove_fuel(0,user)) + user.visible_message("[user] disassembles the windoor assembly.", "You start to disassemble the windoor assembly...") + playsound(loc, 'sound/items/Welder2.ogg', 50, 1) + + if(do_after(user, 40/W.toolspeed, target = src)) + if(!src || !WT.isOn()) return + user << "You disassemble the windoor assembly." + var/obj/item/stack/sheet/rglass/RG = new (get_turf(src), 5) + RG.add_fingerprint(user) + if(secure) + var/obj/item/stack/rods/R = new (get_turf(src), 4) + R.add_fingerprint(user) + qdel(src) + else + return + + //Wrenching an unsecure assembly anchors it in place. Step 4 complete + if(istype(W, /obj/item/weapon/wrench) && !anchored) + for(var/obj/machinery/door/window/WD in loc) + if(WD.dir == dir) + user << "There is already a windoor in that location!" + return + playsound(loc, W.usesound, 100, 1) + user.visible_message("[user] secures the windoor assembly to the floor.", "You start to secure the windoor assembly to the floor...") + + if(do_after(user, 40/W.toolspeed, target = src)) + if(!src || anchored) + return + for(var/obj/machinery/door/window/WD in loc) + if(WD.dir == dir) + user << "There is already a windoor in that location!" + return + user << "You secure the windoor assembly." + anchored = 1 + if(secure) + name = "secure anchored windoor assembly" + else + name = "anchored windoor assembly" + + //Unwrenching an unsecure assembly un-anchors it. Step 4 undone + else if(istype(W, /obj/item/weapon/wrench) && anchored) + playsound(loc, W.usesound, 100, 1) + user.visible_message("[user] unsecures the windoor assembly to the floor.", "You start to unsecure the windoor assembly to the floor...") + + if(do_after(user, 40/W.toolspeed, target = src)) + if(!src || !anchored) + return + user << "You unsecure the windoor assembly." + anchored = 0 + if(secure) + name = "secure windoor assembly" + else + name = "windoor assembly" + + //Adding plasteel makes the assembly a secure windoor assembly. Step 2 (optional) complete. + else if(istype(W, /obj/item/stack/sheet/plasteel) && !secure) + var/obj/item/stack/sheet/plasteel/P = W + if(P.get_amount() < 2) + user << "You need more plasteel to do this!" + return + user << "You start to reinforce the windoor with plasteel..." + + if(do_after(user,40, target = src)) + if(!src || secure || P.get_amount() < 2) + return + + P.use(2) + user << "You reinforce the windoor." + secure = 1 + if(anchored) + name = "secure anchored windoor assembly" + else + name = "secure windoor assembly" + + //Adding cable to the assembly. Step 5 complete. + else if(istype(W, /obj/item/stack/cable_coil) && anchored) + user.visible_message("[user] wires the windoor assembly.", "You start to wire the windoor assembly...") + + if(do_after(user, 40, target = src)) + if(!src || !anchored || src.state != "01") + return + var/obj/item/stack/cable_coil/CC = W + if(!CC.use(1)) + user << "You need more cable to do this!" + return + user << "You wire the windoor." + state = "02" + if(secure) + name = "secure wired windoor assembly" + else + name = "wired windoor assembly" + else + return ..() + + if("02") + + //Removing wire from the assembly. Step 5 undone. + if(istype(W, /obj/item/weapon/wirecutters)) + playsound(loc, W.usesound, 100, 1) + user.visible_message("[user] cuts the wires from the airlock assembly.", "You start to cut the wires from airlock assembly...") + + if(do_after(user, 40/W.toolspeed, target = src)) + if(!src || state != "02") + return + + user << "You cut the windoor wires." + new/obj/item/stack/cable_coil(get_turf(user), 1) + state = "01" + if(secure) + name = "secure anchored windoor assembly" + else + name = "anchored windoor assembly" + + //Adding airlock electronics for access. Step 6 complete. + else if(istype(W, /obj/item/weapon/electronics/airlock)) + if(!user.drop_item()) + return + playsound(loc, W.usesound, 100, 1) + user.visible_message("[user] installs the electronics into the airlock assembly.", "You start to install electronics into the airlock assembly...") + W.loc = src + + if(do_after(user, 40, target = src)) + if(!src || electronics) + W.loc = src.loc + return + user << "You install the airlock electronics." + name = "near finished windoor assembly" + electronics = W + else + W.loc = loc + + //Screwdriver to remove airlock electronics. Step 6 undone. + else if(istype(W, /obj/item/weapon/screwdriver)) + if(!electronics) + return + + playsound(loc, W.usesound, 100, 1) + user.visible_message("[user] removes the electronics from the airlock assembly.", "You start to uninstall electronics from the airlock assembly...") + + if(do_after(user, 40/W.toolspeed, target = src)) + if(!src || !electronics) + return + user << "You remove the airlock electronics." + name = "wired windoor assembly" + var/obj/item/weapon/electronics/airlock/ae + ae = electronics + electronics = null + ae.loc = loc + + else if(istype(W, /obj/item/weapon/pen)) + var/t = stripped_input(user, "Enter the name for the door.", name, created_name,MAX_NAME_LEN) + if(!t) + return + if(!in_range(src, usr) && loc != usr) + return + created_name = t + return + + + + //Crowbar to complete the assembly, Step 7 complete. + else if(istype(W, /obj/item/weapon/crowbar)) + if(!electronics) + usr << "The assembly is missing electronics!" + return + usr << browse(null, "window=windoor_access") + playsound(loc, W.usesound, 100, 1) + user.visible_message("[user] pries the windoor into the frame.", "You start prying the windoor into the frame...") + + if(do_after(user, 40/W.toolspeed, target = src)) + + if(loc && electronics) + + density = 1 //Shouldn't matter but just incase + user << "You finish the windoor." + + if(secure) + var/obj/machinery/door/window/brigdoor/windoor = new /obj/machinery/door/window/brigdoor(loc) + if(facing == "l") + windoor.icon_state = "leftsecureopen" + windoor.base_state = "leftsecure" + else + windoor.icon_state = "rightsecureopen" + windoor.base_state = "rightsecure" + windoor.setDir(dir) + windoor.density = 0 + + if(electronics.one_access) + windoor.req_one_access = electronics.accesses + else + windoor.req_access = electronics.accesses + windoor.electronics = electronics + electronics.loc = windoor + if(created_name) + windoor.name = created_name + qdel(src) + windoor.close() + + + else + var/obj/machinery/door/window/windoor = new /obj/machinery/door/window(loc) + if(facing == "l") + windoor.icon_state = "leftopen" + windoor.base_state = "left" + else + windoor.icon_state = "rightopen" + windoor.base_state = "right" + windoor.setDir(dir) + windoor.density = 0 + + windoor.req_access = electronics.accesses + windoor.electronics = electronics + electronics.loc = windoor + if(created_name) + windoor.name = created_name + qdel(src) + windoor.close() + + + else + return ..() + + //Update to reflect changes(if applicable) + update_icon() + + +//Rotates the windoor assembly clockwise +/obj/structure/windoor_assembly/verb/revrotate() + set name = "Rotate Windoor Assembly" + set category = "Object" + set src in oview(1) + if(usr.stat || !usr.canmove || usr.restrained()) + return + if (anchored) + usr << "[src] cannot be rotated while it is fastened to the floor!" + return 0 + //if(state != "01") + //update_nearby_tiles(need_rebuild=1) //Compel updates before + + setDir(turn(dir, 270)) + + //if(state != "01") + //update_nearby_tiles(need_rebuild=1) + + ini_dir = dir + update_icon() + return + +/obj/structure/windoor_assembly/AltClick(mob/user) + ..() + if(user.incapacitated()) + user << "You can't do that right now!" + return + if(!in_range(src, user)) + return + else + revrotate() + +//Flips the windoor assembly, determines whather the door opens to the left or the right +/obj/structure/windoor_assembly/verb/flip() + set name = "Flip Windoor Assembly" + set category = "Object" + set src in oview(1) + if(usr.stat || !usr.canmove || usr.restrained()) + return + + if(facing == "l") + usr << "The windoor will now slide to the right." + facing = "r" + else + facing = "l" + usr << "The windoor will now slide to the left." + + update_icon() + return diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm new file mode 100644 index 0000000..14c6cde --- /dev/null +++ b/code/game/objects/structures/window.dm @@ -0,0 +1,499 @@ +/obj/structure/window + name = "window" + desc = "A window." + icon_state = "window" + density = 1 + layer = ABOVE_OBJ_LAYER //Just above doors + pressure_resistance = 4*ONE_ATMOSPHERE + anchored = 1 //initially is 0 for tile smoothing + flags = ON_BORDER + max_integrity = 25 + obj_integrity = 25 + var/ini_dir = null + var/state = 0 + var/reinf = 0 + var/wtype = "glass" + var/fulltile = 0 + var/glass_type = /obj/item/stack/sheet/glass + var/glass_amount = 1 + var/image/crack_overlay + var/list/debris = list() + can_be_unanchored = 1 + resistance_flags = ACID_PROOF + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 80, acid = 100) + +/obj/structure/window/examine(mob/user) + ..() + user << "Alt-click to rotate it clockwise." + +/obj/structure/window/New(Loc,re=0) + ..() + obj_integrity = max_integrity + if(re) + reinf = re + if(reinf) + state = 2*anchored + + ini_dir = dir + air_update_turf(1) + + // Precreate our own debris + + var/shards = 1 + if(fulltile) + shards++ + setDir() + var/rods = 0 + if(reinf) + rods++ + if(fulltile) + rods++ + + for(var/i in 1 to shards) + debris += new /obj/item/weapon/shard(src) + if(rods) + debris += new /obj/item/stack/rods(src, rods) + + +/obj/structure/window/narsie_act() + add_atom_colour(NARSIE_WINDOW_COLOUR, FIXED_COLOUR_PRIORITY) + for(var/obj/item/weapon/shard/shard in debris) + shard.add_atom_colour(NARSIE_WINDOW_COLOUR, FIXED_COLOUR_PRIORITY) + +/obj/structure/window/ratvar_act() + if(!fulltile) + new/obj/structure/window/reinforced/clockwork(get_turf(src), dir) + else + new/obj/structure/window/reinforced/clockwork/fulltile(get_turf(src)) + qdel(src) + +/obj/structure/window/singularity_pull(S, current_size) + if(current_size >= STAGE_FIVE) + deconstruct(FALSE) + +/obj/structure/window/setDir(direct) + if(!fulltile) + ..() + else + ..(FULLTILE_WINDOW_DIR) + +/obj/structure/window/CanPass(atom/movable/mover, turf/target, height=0) + if(istype(mover) && mover.checkpass(PASSGLASS)) + return 1 + if(dir == FULLTILE_WINDOW_DIR) + return 0 //full tile window, you can't move into it! + if(get_dir(loc, target) == dir) + return !density + else + return 1 + + +/obj/structure/window/CheckExit(atom/movable/O as mob|obj, target) + if(istype(O) && O.checkpass(PASSGLASS)) + return 1 + if(get_dir(O.loc, target) == dir) + return 0 + return 1 + +/obj/structure/window/attack_tk(mob/user) + user.changeNext_move(CLICK_CD_MELEE) + user.visible_message("Something knocks on [src].") + add_fingerprint(user) + playsound(loc, 'sound/effects/Glassknock.ogg', 50, 1) + +/obj/structure/window/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0) + if(!can_be_reached(user)) + return 1 + . = ..() + +/obj/structure/window/attack_hand(mob/user) + if(!can_be_reached(user)) + return + user.changeNext_move(CLICK_CD_MELEE) + user.visible_message("[user] knocks on [src].") + add_fingerprint(user) + playsound(loc, 'sound/effects/Glassknock.ogg', 50, 1) + +/obj/structure/window/attack_paw(mob/user) + return attack_hand(user) + + +/obj/structure/window/attack_generic(mob/user, damage_amount = 0, damage_type = BRUTE, damage_flag = 0, sound_effect = 1) //used by attack_alien, attack_animal, and attack_slime + if(!can_be_reached(user)) + return + ..() + +/obj/structure/window/attackby(obj/item/I, mob/living/user, params) + if(!can_be_reached(user)) + return 1 //skip the afterattack + + add_fingerprint(user) + if(istype(I, /obj/item/weapon/weldingtool) && user.a_intent == "help") + var/obj/item/weapon/weldingtool/WT = I + if(obj_integrity < max_integrity) + if(WT.remove_fuel(0,user)) + user << "You begin repairing [src]..." + playsound(loc, 'sound/items/Welder.ogg', 40, 1) + if(do_after(user, 40/I.toolspeed, target = src)) + obj_integrity = max_integrity + playsound(loc, 'sound/items/Welder2.ogg', 50, 1) + update_nearby_icons() + user << "You repair [src]." + else + user << "[src] is already in good condition!" + return + + + if(!(flags&NODECONSTRUCT)) + if(istype(I, /obj/item/weapon/screwdriver)) + playsound(loc, I.usesound, 75, 1) + if(reinf && (state == 2 || state == 1)) + user << (state == 2 ? "You begin to unscrew the window from the frame..." : "You begin to screw the window to the frame...") + else if(reinf && state == 0) + user << (anchored ? "You begin to unscrew the frame from the floor..." : "You begin to screw the frame to the floor...") + else if(!reinf) + user << (anchored ? "You begin to unscrew the window from the floor..." : "You begin to screw the window to the floor...") + + if(do_after(user, 30/I.toolspeed, target = src)) + if(reinf && (state == 1 || state == 2)) + //If state was unfastened, fasten it, else do the reverse + state = (state == 1 ? 2 : 1) + user << (state == 1 ? "You unfasten the window from the frame." : "You fasten the window to the frame.") + else if(reinf && state == 0) + anchored = !anchored + update_nearby_icons() + user << (anchored ? "You fasten the frame to the floor." : "You unfasten the frame from the floor.") + else if(!reinf) + anchored = !anchored + update_nearby_icons() + user << (anchored ? "You fasten the window to the floor." : "You unfasten the window.") + return + + else if (istype(I, /obj/item/weapon/crowbar) && reinf && (state == 0 || state == 1)) + user << (state == 0 ? "You begin to lever the window into the frame..." : "You begin to lever the window out of the frame...") + playsound(loc, I.usesound, 75, 1) + if(do_after(user, 40/I.toolspeed, target = src)) + //If state was out of frame, put into frame, else do the reverse + state = (state == 0 ? 1 : 0) + user << (state == 1 ? "You pry the window into the frame." : "You pry the window out of the frame.") + return + + else if(istype(I, /obj/item/weapon/wrench) && !anchored) + playsound(loc, I.usesound, 75, 1) + user << " You begin to disassemble [src]..." + if(do_after(user, 40/I.toolspeed, target = src)) + if(qdeleted(src)) + return + + var/obj/item/stack/sheet/G = new glass_type(user.loc, glass_amount) + G.add_fingerprint(user) + + playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + user << "You successfully disassemble [src]." + qdel(src) + return + return ..() + +/obj/structure/window/mech_melee_attack(obj/mecha/M) + if(!can_be_reached()) + return + ..() + + +/obj/structure/window/proc/can_be_reached(mob/user) + if(!fulltile) + if(get_dir(user,src) & dir) + for(var/obj/O in loc) + if(!O.CanPass(user, user.loc, 1)) + return 0 + return 1 + +/obj/structure/window/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1) + . = ..() + if(.) //received damage + update_nearby_icons() + +/obj/structure/window/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) + switch(damage_type) + if(BRUTE) + if(damage_amount) + playsound(src.loc, 'sound/effects/Glasshit.ogg', 75, 1) + else + playsound(src, 'sound/weapons/tap.ogg', 50, 1) + if(BURN) + playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) + + +/obj/structure/window/deconstruct(disassembled = TRUE) + if(qdeleted(src)) + return + if(!disassembled) + playsound(src, "shatter", 70, 1) + var/turf/T = loc + + if(!(flags & NODECONSTRUCT)) + for(var/i in debris) + var/obj/item/I = i + + I.loc = T + transfer_fingerprints_to(I) + qdel(src) + update_nearby_icons() + +/obj/structure/window/verb/rotate() + set name = "Rotate Window Counter-Clockwise" + set category = "Object" + set src in oview(1) + + if(usr.stat || !usr.canmove || usr.restrained()) + return + + if(anchored) + usr << "[src] cannot be rotated while it is fastened to the floor!" + return 0 + + setDir(turn(dir, 90)) + air_update_turf(1) + ini_dir = dir + add_fingerprint(usr) + return + + +/obj/structure/window/verb/revrotate() + set name = "Rotate Window Clockwise" + set category = "Object" + set src in oview(1) + + if(usr.stat || !usr.canmove || usr.restrained()) + return + + if(anchored) + usr << "[src] cannot be rotated while it is fastened to the floor!" + return 0 + + setDir(turn(dir, 270)) + air_update_turf(1) + ini_dir = dir + add_fingerprint(usr) + return + +/obj/structure/window/AltClick(mob/user) + ..() + if(user.incapacitated()) + user << "You can't do that right now!" + return + if(!in_range(src, user)) + return + else + revrotate() + +/obj/structure/window/Destroy() + density = 0 + air_update_turf(1) + update_nearby_icons() + return ..() + + +/obj/structure/window/Move() + var/turf/T = loc + ..() + setDir(ini_dir) + move_update_air(T) + +/obj/structure/window/CanAtmosPass(turf/T) + if(get_dir(loc, T) == dir) + return !density + if(dir == FULLTILE_WINDOW_DIR) + return !density + return 1 + +//This proc is used to update the icons of nearby windows. +/obj/structure/window/proc/update_nearby_icons() + update_icon() + if(smooth) + queue_smooth_neighbors(src) + +//merges adjacent full-tile windows into one +/obj/structure/window/update_icon() + if(!qdeleted(src)) + if(!fulltile) + return + + var/ratio = obj_integrity / max_integrity + ratio = Ceiling(ratio*4) * 25 + + if(smooth) + queue_smooth(src) + + overlays -= crack_overlay + if(ratio > 75) + return + crack_overlay = image('icons/obj/structures.dmi',"damage[ratio]",-(layer+0.1)) + add_overlay(crack_overlay) + +/obj/structure/window/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) + if(exposed_temperature > T0C + (reinf ? 1600 : 800)) + take_damage(round(exposed_volume / 100), BURN, 0, 0) + ..() + +/obj/structure/window/storage_contents_dump_act(obj/item/weapon/storage/src_object, mob/user) + return 0 + +/obj/structure/window/CanAStarPass(ID, to_dir) + if(!density) + return 1 + if((dir == FULLTILE_WINDOW_DIR) || (dir == to_dir)) + return 0 + + return 1 + +/obj/structure/window/reinforced + name = "reinforced window" + icon_state = "rwindow" + reinf = 1 + armor = list(melee = 50, bullet = 0, laser = 0, energy = 0, bomb = 25, bio = 100, rad = 100, fire = 80, acid = 100) + max_integrity = 50 + explosion_block = 1 + glass_type = /obj/item/stack/sheet/rglass + +/obj/structure/window/reinforced/tinted + name = "tinted window" + icon_state = "twindow" + opacity = 1 + +/obj/structure/window/reinforced/tinted/frosted + name = "frosted window" + icon_state = "fwindow" + + +/* Full Tile Windows (more obj_integrity) */ + +/obj/structure/window/fulltile + icon = 'icons/obj/smooth_structures/window.dmi' + icon_state = "window" + dir = FULLTILE_WINDOW_DIR + max_integrity = 50 + fulltile = 1 + smooth = SMOOTH_TRUE + canSmoothWith = list(/obj/structure/window/fulltile, /obj/structure/window/reinforced/fulltile, /obj/structure/window/reinforced/tinted/fulltile) + glass_amount = 2 + +/obj/structure/window/reinforced/fulltile + icon = 'icons/obj/smooth_structures/reinforced_window.dmi' + icon_state = "r_window" + dir = FULLTILE_WINDOW_DIR + max_integrity = 100 + fulltile = 1 + smooth = SMOOTH_TRUE + canSmoothWith = list(/obj/structure/window/fulltile, /obj/structure/window/reinforced/fulltile, /obj/structure/window/reinforced/tinted/fulltile) + level = 3 + glass_amount = 2 + +/obj/structure/window/reinforced/tinted/fulltile + icon = 'icons/obj/smooth_structures/tinted_window.dmi' + icon_state = "tinted_window" + dir = FULLTILE_WINDOW_DIR + fulltile = 1 + smooth = SMOOTH_TRUE + canSmoothWith = list(/obj/structure/window/fulltile, /obj/structure/window/reinforced/fulltile, /obj/structure/window/reinforced/tinted/fulltile/) + level = 3 + glass_amount = 2 + +/obj/structure/window/reinforced/fulltile/ice + icon = 'icons/obj/smooth_structures/rice_window.dmi' + icon_state = "ice_window" + max_integrity = 150 + canSmoothWith = list(/obj/structure/window/fulltile, /obj/structure/window/reinforced/fulltile, /obj/structure/window/reinforced/tinted/fulltile, /obj/structure/window/reinforced/fulltile/ice) + level = 3 + glass_amount = 2 + +/obj/structure/window/shuttle + name = "shuttle window" + desc = "A reinforced, air-locked pod window." + icon = 'icons/obj/smooth_structures/shuttle_window.dmi' + icon_state = "shuttle_window" + dir = FULLTILE_WINDOW_DIR + max_integrity = 100 + wtype = "shuttle" + fulltile = 1 + reinf = 1 + armor = list(melee = 50, bullet = 0, laser = 0, energy = 0, bomb = 25, bio = 100, rad = 100, fire = 80, acid = 100) + smooth = SMOOTH_TRUE + canSmoothWith = null + explosion_block = 1 + level = 3 + glass_type = /obj/item/stack/sheet/rglass + glass_amount = 2 + +/obj/structure/window/shuttle/narsie_act() + add_atom_colour("#3C3434", FIXED_COLOUR_PRIORITY) + +/obj/structure/window/shuttle/tinted + opacity = TRUE + +/obj/structure/window/reinforced/clockwork + name = "brass window" + desc = "A paper-thin pane of translucent yet reinforced brass." + icon = 'icons/obj/smooth_structures/clockwork_window.dmi' + icon_state = "clockwork_window_single" + resistance_flags = FIRE_PROOF | ACID_PROOF + max_integrity = 100 + armor = list(melee = 60, bullet = 25, laser = 0, energy = 0, bomb = 25, bio = 100, rad = 100, fire = 80, acid = 100) + explosion_block = 2 //fancy AND hard to destroy. the most useful combination. + glass_type = /obj/item/stack/sheet/brass + glass_amount = 1 + var/made_glow = FALSE + +/obj/structure/window/reinforced/clockwork/New(loc, direct) + ..() + for(var/obj/item/I in debris) + debris -= I + qdel(I) + var/amount_of_gears = 2 + if(!fulltile) + if(direct) + var/obj/effect/E = PoolOrNew(/obj/effect/overlay/temp/ratvar/window/single, get_turf(src)) + setDir(direct) + E.setDir(direct) + made_glow = TRUE + else + PoolOrNew(/obj/effect/overlay/temp/ratvar/window, get_turf(src)) + made_glow = TRUE + amount_of_gears = 4 + for(var/i in 1 to amount_of_gears) + debris += new/obj/item/clockwork/alloy_shards/medium/gear_bit() + change_construction_value(fulltile ? 2 : 1) + +/obj/structure/window/reinforced/clockwork/setDir(direct) + if(!made_glow) + var/obj/effect/E = PoolOrNew(/obj/effect/overlay/temp/ratvar/window/single, get_turf(src)) + E.setDir(direct) + made_glow = TRUE + ..() + +/obj/structure/window/reinforced/clockwork/Destroy() + change_construction_value(fulltile ? -2 : -1) + return ..() + +/obj/structure/window/reinforced/clockwork/ratvar_act() + obj_integrity = max_integrity + update_icon() + return 0 + +/obj/structure/window/reinforced/clockwork/narsie_act() + take_damage(rand(25, 75), BRUTE) + if(src) + var/previouscolor = color + color = "#960000" + animate(src, color = previouscolor, time = 8) + addtimer(src, "update_atom_colour", 8) + +/obj/structure/window/reinforced/clockwork/fulltile + icon_state = "clockwork_window" + smooth = SMOOTH_TRUE + canSmoothWith = null + fulltile = 1 + dir = FULLTILE_WINDOW_DIR + max_integrity = 150 + glass_amount = 2 + made_glow = TRUE diff --git a/code/game/objects/weapons.dm b/code/game/objects/weapons.dm new file mode 100644 index 0000000..a9d7c50 --- /dev/null +++ b/code/game/objects/weapons.dm @@ -0,0 +1,22 @@ +/obj/item/weapon/ + name = "weapon" + icon = 'icons/obj/weapons.dmi' + var/wielded = 0 //In twohanded.dm + var/force_wielded = 0 //In twohanded.dm + var/force_unwielded = 0 //In twohanded.dm + var/wieldsound = 'sound/weapons/raise.ogg' + var/unwieldsound = 'sound/weapons/raise.ogg' + var/chance_parry = 0 + var/chance_weaken = 0 + var/chance_stun = 0 + var/chance_knockdown = 0 + var/chance_knockout = 0 + var/chance_disarm = 0 + +/obj/item/weapon/New() + ..() + if(!hitsound) + if(damtype == "fire") + hitsound = 'sound/items/welder.ogg' + if(damtype == "brute") + hitsound = "swing_hit" diff --git a/code/game/pooling/pool.dm b/code/game/pooling/pool.dm new file mode 100644 index 0000000..e99df9c --- /dev/null +++ b/code/game/pooling/pool.dm @@ -0,0 +1,146 @@ + +/* +/tg/station13 /datum Pool: +--------------------------------- +By RemieRichards + +Creation/Deletion is laggy, so let's reduce reuse and recycle! + +Usage: + +To get a object, just call + - PoolOrNew(type, arg) if you only want to pass one argument to New(), usually loc + - PoolOrNew(type, list) if you want to pass multiple arguments to New() + +To put a object back in the pool, call PlaceInPool(object) +This will call destroy on the object, set its loc to null, +and reset all of its vars to their default + +You can override your object's destroy to return QDEL_HINT_PUTINPOOL +to ensure its always placed in this pool (this will only be acted on if qdel calls destroy, and destroy will not get called twice) + +For almost all pooling purposes, it is better to use the QDEL hint than to pool it directly with PlaceInPool + +*/ + +var/global/list/GlobalPool = list() + +//You'll be using this proc 90% of the time. +//It grabs a type from the pool if it can +//And if it can't, it creates one +//The pool is flexible and will expand to fit +//The new created atom when it eventually +//Goes into the pool + +//Second argument can be a single arg +//Or a list of arguments +//Either way it gets passed to new + +/proc/PoolOrNew(get_type,second_arg) + if(!get_type) + return + + if(SSpool) + INCREMENT_TALLY(SSpool.stats_pooled_or_newed, get_type) + + . = GetFromPool(get_type,second_arg) + + if(!.) + if(SSpool) + INCREMENT_TALLY(SSpool.stats_created_new, get_type) + if(ispath(get_type)) + if(islist(second_arg)) + . = new get_type (arglist(second_arg)) + else + . = new get_type (second_arg) + else + if(SSpool) + INCREMENT_TALLY(SSpool.stats_reused, get_type) + + +/proc/GetFromPool(get_type,second_arg) + if(!get_type) + return + + if(isnull(GlobalPool[get_type])) + return + + if(length(GlobalPool[get_type]) == 0) + return + + var/datum/pooled = pop(GlobalPool[get_type]) + if(pooled) + pooled.gc_destroyed = null + + var/atom/movable/AM + if(istype(pooled, /atom/movable)) + AM = pooled + + if(islist(second_arg)) + if(AM) + AM.loc = second_arg[1] //we need to do loc setting explicetly before even calling New() to replicate new()'s behavior + pooled.New(arglist(second_arg)) + + else + if(AM) + AM.loc = second_arg + pooled.New(second_arg) + + return pooled + + +/proc/PlaceInPool(datum/diver, destroy = 1) + if(!istype(diver)) + return + + if(diver in GlobalPool[diver.type]) + return + + if(SSpool) + INCREMENT_TALLY(SSpool.stats_placed_in_pool, diver.type) + + if(!GlobalPool[diver.type]) + GlobalPool[diver.type] = list() + + GlobalPool[diver.type] |= diver + + if(destroy) + diver.Destroy() + + diver.gc_destroyed = 1 + + diver.ResetVars() + +var/list/exclude = list("animate_movement", "contents", "loc", "locs", "parent_type", "vars", "verbs", "type", "gc_destroyed") +var/list/pooledvariables = list() +//thanks to clusterfack @ /vg/station for these two procs +/datum/proc/createVariables() + pooledvariables[type] = new/list() + var/list/exclude = global.exclude + args + + for(var/key in vars) + if(key in exclude) + continue + if(islist(vars[key])) + pooledvariables[type][key] = list() + else + pooledvariables[type][key] = initial(vars[key]) + +/datum/proc/ResetVars() + if(!pooledvariables[type]) + createVariables(args) + + for(var/key in pooledvariables[type]) + if (islist(pooledvariables[type][key])) + vars[key] = list() + else + vars[key] = pooledvariables[type][key] + +/atom/movable/ResetVars() + ..() + loc = null + contents = initial(contents) //something is really wrong if this object still has stuff in it by this point + +/image/ResetVars() + ..() + loc = null diff --git a/code/game/say.dm b/code/game/say.dm new file mode 100644 index 0000000..5ac65c4 --- /dev/null +++ b/code/game/say.dm @@ -0,0 +1,176 @@ +/* + Miauw's big Say() rewrite. + This file has the basic atom/movable level speech procs. + And the base of the send_speech() proc, which is the core of saycode. +*/ +var/list/freqtospan = list( + "1351" = "sciradio", + "1355" = "medradio", + "1357" = "engradio", + "1347" = "suppradio", + "1349" = "servradio", + "1359" = "secradio", + "1353" = "comradio", + "1447" = "aiprivradio", + "1213" = "syndradio", + "1337" = "centcomradio" + ) + +/atom/movable/proc/say(message) + if(!can_speak()) + return + if(message == "" || !message) + return + var/list/spans = get_spans() + send_speech(message, 7, src, , spans) + +/atom/movable/proc/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq, list/spans) + return + +/atom/movable/proc/can_speak() + return 1 + +/atom/movable/proc/send_speech(message, range = 7, obj/source = src, bubble_type, list/spans) + var/rendered = compose_message(src, languages_spoken, message, , spans) + for(var/atom/movable/AM in get_hearers_in_view(range, src)) + AM.Hear(rendered, src, languages_spoken, message, , spans) + +//To get robot span classes, stuff like that. +/atom/movable/proc/get_spans() + return list() + +/atom/movable/proc/compose_message(atom/movable/speaker, message_langs, raw_message, radio_freq, list/spans) + //This proc uses text() because it is faster than appending strings. Thanks BYOND. + //Basic span + var/spanpart1 = "" + //Start name span. + var/spanpart2 = "" + //Radio freq/name display + var/freqpart = radio_freq ? "\[[get_radio_name(radio_freq)]\] " : "" + //Speaker name + var/namepart = "[speaker.GetVoice()][speaker.get_alt_name()]" + //End name span. + var/endspanpart = "" + //Message + var/messagepart = " [lang_treat(speaker, message_langs, raw_message, spans)]" + + return "[spanpart1][spanpart2][freqpart][compose_track_href(speaker, namepart)][namepart][compose_job(speaker, message_langs, raw_message, radio_freq)][endspanpart][messagepart]" + +/atom/movable/proc/compose_track_href(atom/movable/speaker, message_langs, raw_message, radio_freq) + return "" + +/atom/movable/proc/compose_job(atom/movable/speaker, message_langs, raw_message, radio_freq) + return "" + +/atom/movable/proc/say_quote(input, list/spans=list()) + if(!input) + return "says, \"...\"" //not the best solution, but it will stop a large number of runtimes. The cause is somewhere in the Tcomms code + var/ending = copytext(input, length(input)) + if(copytext(input, length(input) - 1) == "!!") + spans |= SPAN_YELL + return "[verb_yell], \"[attach_spans(input, spans)]\"" + input = attach_spans(input, spans) + if(ending == "?") + return "[verb_ask], \"[input]\"" + if(ending == "!") + return "[verb_exclaim], \"[input]\"" + + return "[verb_say], \"[input]\"" + +/atom/movable/proc/lang_treat(atom/movable/speaker, message_langs, raw_message, list/spans) + if(languages_understood & message_langs) + var/atom/movable/AM = speaker.GetSource() + if(AM) //Basically means "if the speaker is virtual" + if(AM.verb_say != speaker.verb_say || AM.verb_ask != speaker.verb_ask || AM.verb_exclaim != speaker.verb_exclaim || AM.verb_yell != speaker.verb_yell) //If the saymod was changed + return speaker.say_quote(raw_message, spans) + return AM.say_quote(raw_message, spans) + else + return speaker.say_quote(raw_message, spans) + else if((message_langs & HUMAN) || (message_langs & RATVAR)) //it's human or ratvar language + var/atom/movable/AM = speaker.GetSource() + if(message_langs & HUMAN) + raw_message = stars(raw_message) + if(message_langs & RATVAR) + raw_message = text2ratvar(raw_message) + if(AM) + return AM.say_quote(raw_message, spans) + else + return speaker.say_quote(raw_message, spans) + else if(message_langs & MONKEY) + return "chimpers." + else if(message_langs & ALIEN) + return "hisses." + else if(message_langs & ROBOT) + return "beeps rapidly." + else if(message_langs & DRONE) + return "chitters." + else if(message_langs & SWARMER) + return "hums." + else + return "makes a strange sound." + +/proc/get_radio_span(freq) + var/returntext = freqtospan["[freq]"] + if(returntext) + return returntext + return "radio" + +/proc/get_radio_name(freq) + var/returntext = radiochannelsreverse["[freq]"] + if(returntext) + return returntext + return "[copytext("[freq]", 1, 4)].[copytext("[freq]", 4, 5)]" + +/proc/attach_spans(input, list/spans) + return "[message_spans_start(spans)][input]
          " + +/proc/message_spans_start(list/spans) + var/output = "" + return output + +/proc/say_test(text) + var/ending = copytext(text, length(text)) + if (ending == "?") + return "1" + else if (ending == "!") + return "2" + return "0" + +/atom/movable/proc/GetVoice() + return name + +/atom/movable/proc/IsVocal() + return 1 + +/atom/movable/proc/get_alt_name() + +//HACKY VIRTUALSPEAKER STUFF BEYOND THIS POINT +//these exist mostly to deal with the AIs hrefs and job stuff. + +/atom/movable/proc/GetJob() //Get a job, you lazy butte + +/atom/movable/proc/GetSource() + +/atom/movable/proc/GetRadio() + +//VIRTUALSPEAKERS +/atom/movable/virtualspeaker + var/job + var/atom/movable/source + var/obj/item/device/radio/radio + +/atom/movable/virtualspeaker/GetJob() + return job + +/atom/movable/virtualspeaker/GetSource() + return source + +/atom/movable/virtualspeaker/GetRadio() + return radio + +/atom/movable/virtualspeaker/Destroy() + ..() + return QDEL_HINT_PUTINPOOL diff --git a/code/game/shuttle_engines.dm b/code/game/shuttle_engines.dm new file mode 100644 index 0000000..de13e28 --- /dev/null +++ b/code/game/shuttle_engines.dm @@ -0,0 +1,38 @@ + +/obj/structure/shuttle + name = "shuttle" + icon = 'icons/turf/shuttle.dmi' + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF + +/obj/structure/shuttle/engine + name = "engine" + density = 1 + anchored = 1 + +/obj/structure/shuttle/engine/heater + name = "heater" + icon_state = "heater" + +/obj/structure/shuttle/engine/platform + name = "platform" + icon_state = "platform" + +/obj/structure/shuttle/engine/propulsion + name = "propulsion" + icon_state = "propulsion" + opacity = 1 + +/obj/structure/shuttle/engine/propulsion/burst + name = "burst" + +/obj/structure/shuttle/engine/propulsion/burst/left + name = "left" + icon_state = "burst_l" + +/obj/structure/shuttle/engine/propulsion/burst/right + name = "right" + icon_state = "burst_r" + +/obj/structure/shuttle/engine/router + name = "router" + icon_state = "router" diff --git a/code/game/skincmd.dm b/code/game/skincmd.dm new file mode 100644 index 0000000..ad2f97f --- /dev/null +++ b/code/game/skincmd.dm @@ -0,0 +1,13 @@ +/mob/var/skincmds = list() +/obj/proc/SkinCmd(mob/user as mob, var/data as text) + +/proc/SkinCmdRegister(mob/user, name as text, obj/O) + user.skincmds[name] = O + +/mob/verb/skincmd(data as text) + set hidden = 1 + + var/ref = copytext(data, 1, findtext(data, ";")) + if (src.skincmds[ref] != null) + var/obj/a = src.skincmds[ref] + a.SkinCmd(src, copytext(data, findtext(data, ";") + 1)) \ No newline at end of file diff --git a/code/game/sound.dm b/code/game/sound.dm new file mode 100644 index 0000000..976f3b2 --- /dev/null +++ b/code/game/sound.dm @@ -0,0 +1,124 @@ +/proc/playsound(atom/source, soundin, vol as num, vary, extrarange as num, falloff, surround = 1) + + soundin = get_sfx(soundin) // same sound for everyone + + if(isarea(source)) + throw EXCEPTION("playsound(): source is an area") + return + + var/frequency = get_rand_frequency() // Same frequency for everybody + var/turf/turf_source = get_turf(source) + + // Looping through the player list has the added bonus of working for mobs inside containers + for (var/P in player_list) + var/mob/M = P + if(!M || !M.client) + continue + if(get_dist(M, turf_source) <= world.view + extrarange) + var/turf/T = get_turf(M) + if(T && T.z == turf_source.z) + M.playsound_local(turf_source, soundin, vol, vary, frequency, falloff, surround) + + +/atom/proc/playsound_local(turf/turf_source, soundin, vol as num, vary, frequency, falloff, surround = 1) + soundin = get_sfx(soundin) + + var/sound/S = sound(soundin) + S.wait = 0 //No queue + S.channel = 0 //Any channel + S.volume = vol + + if (vary) + if(frequency) + S.frequency = frequency + else + S.frequency = get_rand_frequency() + + if(isturf(turf_source)) + var/turf/T = get_turf(src) + + //Atmosphere affects sound + var/pressure_factor = 1 + var/datum/gas_mixture/hearer_env = T.return_air() + var/datum/gas_mixture/source_env = turf_source.return_air() + + if(hearer_env && source_env) + var/pressure = min(hearer_env.return_pressure(), source_env.return_pressure()) + if(pressure < ONE_ATMOSPHERE) + pressure_factor = max((pressure - SOUND_MINIMUM_PRESSURE)/(ONE_ATMOSPHERE - SOUND_MINIMUM_PRESSURE), 0) + else //space + pressure_factor = 0 + + var/distance = get_dist(T, turf_source) + if(distance <= 1) + pressure_factor = max(pressure_factor, 0.15) //touching the source of the sound + + S.volume *= pressure_factor + //End Atmosphere affecting sound + + if(S.volume <= 0) + return //No sound + + // 3D sounds, the technology is here! + if (surround) + var/dx = turf_source.x - T.x // Hearing from the right/left + S.x = round(max(-SURROUND_CAP, min(SURROUND_CAP, dx)), 1) + + var/dz = turf_source.y - T.y // Hearing from infront/behind + S.z = round(max(-SURROUND_CAP, min(SURROUND_CAP, dz)), 1) + + // The y value is for above your head, but there is no ceiling in 2d spessmens. + S.y = 1 + S.falloff = (falloff ? falloff : FALLOFF_SOUNDS) + + src << S + +/mob/playsound_local(turf/turf_source, soundin, vol as num, vary, frequency, falloff, surround = 1) + if(!client || ear_deaf > 0) + return + ..() + +/mob/proc/stopLobbySound() + src << sound(null, repeat = 0, wait = 0, volume = 85, channel = 1) + +/client/proc/playtitlemusic() + if(!ticker || !ticker.login_music) + return + if(prefs && (prefs.toggles & SOUND_LOBBY)) + src << sound(ticker.login_music, repeat = 0, wait = 0, volume = 85, channel = 1) // MAD JAMS + +/proc/get_rand_frequency() + return rand(32000, 55000) //Frequency stuff only works with 45kbps oggs. + +/proc/get_sfx(soundin) + if(istext(soundin)) + switch(soundin) + if ("shatter") + soundin = pick('sound/effects/Glassbr1.ogg','sound/effects/Glassbr2.ogg','sound/effects/Glassbr3.ogg') + if ("explosion") + soundin = pick('sound/effects/Explosion1.ogg','sound/effects/Explosion2.ogg') + if ("sparks") + soundin = pick('sound/effects/sparks1.ogg','sound/effects/sparks2.ogg','sound/effects/sparks3.ogg','sound/effects/sparks4.ogg') + if ("rustle") + soundin = pick('sound/effects/rustle1.ogg','sound/effects/rustle2.ogg','sound/effects/rustle3.ogg','sound/effects/rustle4.ogg','sound/effects/rustle5.ogg') + if ("bodyfall") + soundin = pick('sound/effects/bodyfall1.ogg','sound/effects/bodyfall2.ogg','sound/effects/bodyfall3.ogg','sound/effects/bodyfall4.ogg') + if ("punch") + soundin = pick('sound/weapons/punch1.ogg','sound/weapons/punch2.ogg','sound/weapons/punch3.ogg')//,'sound/weapons/punch4.ogg') + if ("clownstep") + soundin = pick('sound/effects/clownstep1.ogg','sound/effects/clownstep2.ogg') + if ("swing_hit") + soundin = pick('sound/weapons/genhit1.ogg', 'sound/weapons/genhit2.ogg', 'sound/weapons/genhit3.ogg') + if ("hiss") + soundin = pick('sound/voice/hiss1.ogg','sound/voice/hiss2.ogg','sound/voice/hiss3.ogg','sound/voice/hiss4.ogg') + if ("pageturn") + soundin = pick('sound/effects/pageturn1.ogg', 'sound/effects/pageturn2.ogg','sound/effects/pageturn3.ogg') + if ("gunshot") + soundin = pick('sound/weapons/Gunshot.ogg', 'sound/weapons/Gunshot2.ogg','sound/weapons/Gunshot3.ogg','sound/weapons/Gunshot4.ogg') + if ("ricochet") + soundin = pick( 'sound/weapons/effects/ric1.ogg', 'sound/weapons/effects/ric2.ogg','sound/weapons/effects/ric3.ogg','sound/weapons/effects/ric4.ogg','sound/weapons/effects/ric5.ogg') + return soundin + +/proc/playsound_global(file, repeat=0, wait, channel, volume) + for(var/V in clients) + V << sound(file, repeat, wait, channel, volume) \ No newline at end of file diff --git a/code/game/turfs/closed.dm b/code/game/turfs/closed.dm new file mode 100644 index 0000000..f1498e1 --- /dev/null +++ b/code/game/turfs/closed.dm @@ -0,0 +1,99 @@ +/turf/closed + var/thermite = 0 + layer = CLOSED_TURF_LAYER + opacity = 1 + density = 1 + blocks_air = 1 + +/turf/closed/indestructible + name = "wall" + icon = 'icons/turf/walls.dmi' + explosion_block = 50 + +/turf/closed/indestructible/acid_act(acidpwr, acid_volume, acid_id) + return 0 + +/turf/closed/indestructible/oldshuttle + name = "strange shuttle wall" + icon = 'icons/turf/shuttleold.dmi' + icon_state = "block" + +/turf/closed/indestructible/oldshuttle/corner + icon_state = "corner" + + + + +/turf/closed/indestructible/splashscreen + name = "Space Station 13" + icon = 'icons/misc/fullscreen.dmi' + icon_state = "title" + layer = FLY_LAYER + var/titlescreen = TITLESCREEN + +/turf/closed/indestructible/splashscreen/New() + ..() + if(titlescreen) + icon_state = titlescreen + +/turf/closed/indestructible/riveted + icon_state = "riveted" + +/turf/closed/indestructible/riveted/New() + ..() + if(smooth) + queue_smooth(src) + icon_state = "" + +/turf/closed/indestructible/riveted/uranium + icon = 'icons/turf/walls/uranium_wall.dmi' + icon_state = "uranium" + smooth = SMOOTH_TRUE + +/turf/closed/indestructible/abductor + icon_state = "alien1" + +/turf/closed/indestructible/opshuttle + icon_state = "wall3" + +/turf/closed/indestructible/fakeglass + name = "window" + icon_state = "fakewindows" + opacity = 0 + +/turf/closed/indestructible/fakedoor + name = "Centcom Access" + icon = 'icons/obj/doors/airlocks/centcom/centcom.dmi' + icon_state = "fake_door" + +/turf/closed/indestructible/rock + name = "dense rock" + desc = "An extremely densely-packed rock, most mining tools or explosives would never get through this." + icon = 'icons/turf/mining.dmi' + icon_state = "rock" + +/turf/closed/indestructible/rock/snow + name = "mountainside" + desc = "An extremely densely-packed rock, sheeted over with centuries worth of ice and snow." + icon = 'icons/turf/walls.dmi' + icon_state = "snowrock" + +/turf/closed/indestructible/rock/snow/ice + name = "iced rock" + desc = "Extremely densely-packed sheets of ice and rock, forged over the years of the harsh cold." + icon = 'icons/turf/walls.dmi' + icon_state = "icerock" + +/turf/closed/indestructible/paper + name = "thick paper wall" + desc = "A wall layered with impenetrable sheets of paper." + icon = 'icons/turf/walls.dmi' + icon_state = "paperwall" + +/turf/closed/indestructible/necropolis + name = "necropolis wall" + desc = "A seemingly impenetrable wall." + icon = 'icons/turf/walls.dmi' + icon_state = "necro" + explosion_block = 50 + baseturf = /turf/closed/indestructible/necropolis diff --git a/code/game/turfs/open.dm b/code/game/turfs/open.dm new file mode 100644 index 0000000..bfe85d0 --- /dev/null +++ b/code/game/turfs/open.dm @@ -0,0 +1,243 @@ +/turf/open + var/slowdown = 0 //negative for faster, positive for slower + + var/wet = 0 + var/wet_time = 0 // Time in seconds that this floor will be wet for. + var/image/wet_overlay = null + +/turf/open/indestructible + name = "floor" + icon = 'icons/turf/floors.dmi' + icon_state = "floor" + +/turf/open/indestructible/sound + name = "squeeky floor" + var/sound + +/turf/open/indestructible/sound/Entered(var/mob/AM) + if(istype(AM)) + playsound(src,sound,50,1) + +/turf/open/indestructible/necropolis + name = "necropolis floor" + desc = "It's regarding you suspiciously." + icon = 'icons/turf/floors.dmi' + icon_state = "necro1" + baseturf = /turf/open/indestructible/necropolis + +/turf/open/indestructible/necropolis/New() + ..() + if(prob(12)) + icon_state = "necro[rand(2,3)]" + + +/turf/open/Initalize_Atmos(times_fired) + excited = 0 + update_visuals() + + current_cycle = times_fired + + //cache some vars + var/datum/gas_mixture/air = src.air + air.holder = src + var/list/atmos_adjacent_turfs = src.atmos_adjacent_turfs + + for(var/direction in cardinal) + var/turf/open/enemy_tile = get_step(src, direction) + if(!istype(enemy_tile)) + if (atmos_adjacent_turfs) + atmos_adjacent_turfs -= enemy_tile + continue + var/datum/gas_mixture/enemy_air = enemy_tile.return_air() + + //only check this turf, if it didn't check us when it was initalized + if(enemy_tile.current_cycle < times_fired) + if(CanAtmosPass(enemy_tile)) + LAZYINITLIST(atmos_adjacent_turfs) + LAZYINITLIST(enemy_tile.atmos_adjacent_turfs) + atmos_adjacent_turfs[enemy_tile] = TRUE + enemy_tile.atmos_adjacent_turfs[src] = TRUE + else + if (atmos_adjacent_turfs) + atmos_adjacent_turfs -= enemy_tile + if (enemy_tile.atmos_adjacent_turfs) + enemy_tile.atmos_adjacent_turfs -= src + UNSETEMPTY(enemy_tile.atmos_adjacent_turfs) + continue + else + if (!atmos_adjacent_turfs || !atmos_adjacent_turfs[enemy_tile]) + continue + + + var/is_active = air.compare(enemy_air) + + if(is_active) + //testing("Active turf found. Return value of compare(): [is_active]") + if(!excited) //make sure we aren't already excited + excited = 1 + SSair.active_turfs |= src + UNSETEMPTY(atmos_adjacent_turfs) + if (atmos_adjacent_turfs) + src.atmos_adjacent_turfs = atmos_adjacent_turfs + +/turf/open/proc/GetHeatCapacity() + . = air.heat_capacity() + +/turf/open/proc/GetTemperature() + . = air.temperature + +/turf/open/proc/TakeTemperature(temp) + air.temperature += temp + air_update_turf() + +/turf/open/freon_gas_act() + for(var/obj/I in contents) + if(!I.is_frozen) //let it go + I.make_frozen_visual(I) + for(var/mob/living/L in contents) + if(L.bodytemperature >= 10) + L.bodytemperature -= 10 + if(L.bodytemperature <= 50) + L.apply_status_effect(/datum/status_effect/freon) + MakeSlippery(TURF_WET_PERMAFROST, 5) + return 1 + +/turf/open/water_vapor_gas_act() + MakeSlippery(min_wet_time = 10, wet_time_to_add = 5) + + for(var/mob/living/simple_animal/slime/M in src) + M.apply_water() + + clean_blood() + for(var/obj/effect/O in src) + if(is_cleanable(O)) + qdel(O) + + var/obj/effect/hotspot/hotspot = (locate(/obj/effect/hotspot) in src) + if(hotspot && !isspaceturf(src)) + air.temperature = max(min(air.temperature-2000,air.temperature/2),0) + qdel(hotspot) + return 1 + +/turf/open/handle_fall(mob/faller, forced) + faller.lying = pick(90, 270) + if(!forced) + return + if(has_gravity(src)) + playsound(src, "bodyfall", 50, 1) + +/turf/open/handle_slip(mob/living/carbon/C, s_amount, w_amount, obj/O, lube) + if(has_gravity(src)) + var/obj/buckled_obj + if(C.buckled) + buckled_obj = C.buckled + if(!(lube&GALOSHES_DONT_HELP)) //can't slip while buckled unless it's lube. + return 0 + else + if(C.lying || !(C.status_flags & CANWEAKEN)) // can't slip unbuckled mob if they're lying or can't fall. + return 0 + if(C.m_intent=="walk" && (lube&NO_SLIP_WHEN_WALKING)) + return 0 + if(!(lube&SLIDE_ICE)) + C << "You slipped[ O ? " on the [O.name]" : ""]!" + C.attack_log += "\[[time_stamp()]\] Slipped[O ? " on the [O.name]" : ""][(lube&SLIDE)? " (LUBE)" : ""]!" + if(!(lube&SLIDE_ICE)) + playsound(C.loc, 'sound/misc/slip.ogg', 50, 1, -3) + + for(var/obj/item/I in C.held_items) + C.accident(I) + + var/olddir = C.dir + if(!(lube&SLIDE_ICE)) + C.Stun(s_amount) + C.Weaken(w_amount) + C.stop_pulling() + else + C.Stun(1) + if(buckled_obj) + buckled_obj.unbuckle_mob(C) + step(buckled_obj, olddir) + else if(lube&SLIDE) + for(var/i=1, i<5, i++) + spawn (i) + step(C, olddir) + C.spin(1,1) + else if(lube&SLIDE_ICE) + C.slipping = TRUE + spawn(1) + step(C, olddir) + C.slipping = FALSE + return 1 + +/turf/open/proc/MakeSlippery(wet_setting = TURF_WET_WATER, min_wet_time = 0, wet_time_to_add = 0) // 1 = Water, 2 = Lube, 3 = Ice, 4 = Permafrost, 5 = Slide + wet_time = max(wet_time+wet_time_to_add, min_wet_time) + if(wet >= wet_setting) + return + wet = wet_setting + if(wet_setting != TURF_DRY) + if(wet_overlay) + overlays -= wet_overlay + wet_overlay = null + var/turf/open/floor/F = src + if(istype(F)) + if(wet_setting == TURF_WET_PERMAFROST) + wet_overlay = image('icons/effects/water.dmi', src, "ice_floor") + else if(wet_setting == TURF_WET_ICE) + wet_overlay = image('icons/turf/overlays.dmi', src, "snowfloor") + else + wet_overlay = image('icons/effects/water.dmi', src, "wet_floor_static") + else + wet_overlay = image('icons/effects/water.dmi', src, "wet_static") + add_overlay(wet_overlay) + HandleWet() + +/turf/open/proc/MakeDry(wet_setting = TURF_WET_WATER) + if(wet > wet_setting || !wet) + return + spawn(rand(0,20)) + if(wet == TURF_WET_PERMAFROST) + wet = TURF_WET_ICE + else + wet = TURF_DRY + if(wet_overlay) + overlays -= wet_overlay + +/turf/open/proc/HandleWet() + if(!wet) + //It's possible for this handler to get called after all the wetness is + //cleared, so bail out if that is the case + return + if(!wet_time && wet < TURF_WET_ICE) + MakeDry(TURF_WET_ICE) + if(wet_time > MAXIMUM_WET_TIME) + wet_time = MAXIMUM_WET_TIME + if(wet == TURF_WET_ICE && air.temperature > T0C) + MakeDry(TURF_WET_ICE) + MakeSlippery(TURF_WET_WATER) + if(wet != TURF_WET_PERMAFROST) + switch(air.temperature) + if(-INFINITY to T0C) + if(wet != TURF_WET_ICE && wet) + MakeDry(TURF_WET_ICE) + MakeSlippery(TURF_WET_ICE) + if(T0C to T20C) + wet_time = max(0, wet_time-1) + if(T20C to T0C + 40) + wet_time = max(0, wet_time-2) + if(T0C + 40 to T0C + 60) + wet_time = max(0, wet_time-3) + if(T0C + 60 to T0C + 80) + wet_time = max(0, wet_time-5) + if(T0C + 80 to T0C + 100) + wet_time = max(0, wet_time-10) + if(T0C + 100 to INFINITY) + wet_time = 0 + else + wet_time = max(0, wet_time-5) + if(wet && wet < TURF_WET_ICE && !wet_time) + MakeDry(TURF_WET_ICE) + if(!wet && wet_time) + wet_time = 0 + if(wet) + addtimer(src, "HandleWet", 15) + diff --git a/code/game/turfs/simulated/chasm.dm b/code/game/turfs/simulated/chasm.dm new file mode 100644 index 0000000..d633a04 --- /dev/null +++ b/code/game/turfs/simulated/chasm.dm @@ -0,0 +1,117 @@ + +//////////////CHASM////////////////// + +/turf/open/chasm + name = "chasm" + desc = "Watch your step." + baseturf = /turf/open/chasm + smooth = SMOOTH_TRUE | SMOOTH_BORDER + icon = 'icons/turf/floors/Chasms.dmi' + icon_state = "smooth" + var/drop_x = 1 + var/drop_y = 1 + var/drop_z = 1 + +/turf/open/chasm/Entered(atom/movable/AM) + START_PROCESSING(SSobj, src) + drop_stuff(AM) + +/turf/open/chasm/process() + if(!drop_stuff()) + STOP_PROCESSING(SSobj, src) + +/turf/open/chasm/proc/drop_stuff(AM) + . = 0 + var/thing_to_check = src + if(AM) + thing_to_check = list(AM) + for(var/thing in thing_to_check) + if(droppable(thing)) + . = 1 + addtimer(src, "drop", 0, FALSE, thing) + +/turf/open/chasm/proc/droppable(atom/movable/AM) + if(!isliving(AM) && !isobj(AM)) + return 0 + if(istype(AM, /obj/singularity) || istype(AM, /obj/item/projectile) || AM.throwing) + return 0 + if(istype(AM, /obj/effect/portal)) + //Portals aren't affected by gravity. Probably. + return 0 + //Flies right over the chasm + if(isanimal(AM)) + var/mob/living/simple_animal/SA = AM + if(SA.flying) + return 0 + if(ishuman(AM)) + var/mob/living/carbon/human/H = AM + if(istype(H.belt, /obj/item/device/wormhole_jaunter)) + var/obj/item/device/wormhole_jaunter/J = H.belt + //To freak out any bystanders + visible_message("[H] falls into [src]!") + J.chasm_react(H) + return 0 + if(H.dna && H.dna.species && (FLYING in H.dna.species.specflags)) + return 0 + return 1 + +/turf/open/chasm/proc/drop(atom/movable/AM) + //Make sure the item is still there after our sleep + if(!AM || qdeleted(AM)) + return + + var/turf/T = locate(drop_x, drop_y, drop_z) + if(T) + AM.visible_message("[AM] falls into [src]!", "GAH! Ah... where are you?") + T.visible_message("[AM] falls from above!") + AM.forceMove(T) + if(isliving(AM)) + var/mob/living/L = AM + L.Weaken(5) + L.adjustBruteLoss(30) + + +/turf/open/chasm/straight_down/New() + ..() + drop_x = x + drop_y = y + if(z+1 <= world.maxz) + drop_z = z+1 + + +/turf/open/chasm/straight_down/lava_land_surface + initial_gas_mix = "o2=14;n2=23;TEMP=300" + planetary_atmos = TRUE + baseturf = /turf/open/chasm/straight_down/lava_land_surface + +/turf/open/chasm/straight_down/lava_land_surface/drop(atom/movable/AM) + //Make sure the item is still there after our sleep + if(!AM || qdeleted(AM)) + return + AM.visible_message("[AM] falls into [src]!", "You stumble and stare into an abyss before you. It stares back, and you fall \ + into the enveloping dark.") + if(isliving(AM)) + var/mob/living/L = AM + L.notransform = TRUE + L.Stun(10) + L.resting = TRUE + animate(AM, transform = matrix() - matrix(), alpha = 0, color = rgb(0, 0, 0), time = 10) + for(var/i in 1 to 5) + //Make sure the item is still there after our sleep + if(!AM || qdeleted(AM)) + return + AM.pixel_y-- + sleep(2) + + //Make sure the item is still there after our sleep + if(!AM || qdeleted(AM)) + return + + if(iscyborg(AM)) + var/mob/living/silicon/robot/S = AM + qdel(S.mmi) + + qdel(AM) + +/turf/open/chasm/straight_down/lava_land_surface/normal_air + initial_gas_mix = "o2=22;n2=82;TEMP=293.15" diff --git a/code/game/turfs/simulated/dirtystation.dm b/code/game/turfs/simulated/dirtystation.dm new file mode 100644 index 0000000..88d0b07 --- /dev/null +++ b/code/game/turfs/simulated/dirtystation.dm @@ -0,0 +1,133 @@ +//Janitors! Janitors, janitors, janitors! -Sayu + + +//Conspicuously not-recent versions of suspicious cleanables + +//This file was made not awful by Xhuis on September 13, 2016 + +/obj/effect/decal/cleanable/blood/old + name = "dried blood" + desc = "Looks like it's been here a while. Eew." + bloodiness = 0 + +/obj/effect/decal/cleanable/blood/old/New() + ..() + icon_state += "-old" //This IS necessary because the parent /blood type uses icon randomization. + blood_DNA["Non-human DNA"] = "A+" + +/obj/effect/decal/cleanable/blood/gibs/old + name = "old rotting gibs" + desc = "Space Jesus, why didn't anyone clean this up? It smells terrible." + bloodiness = 0 + +/obj/effect/decal/cleanable/blood/gibs/old/New() + ..() + setDir(pick(1,2,4,8)) + icon_state += "-old" + blood_DNA["Non-human DNA"] = "A+" + +/obj/effect/decal/cleanable/vomit/old + name = "crusty dried vomit" + desc = "You try not to look at the chunks, and fail." + +/obj/effect/decal/cleanable/vomit/old/New() + ..() + icon_state += "-old" + +/obj/effect/decal/cleanable/robot_debris/old + name = "dusty robot debris" + desc = "Looks like nobody has touched this in a while." + +//Making the station dirty, one tile at a time. Called by master controller's setup_objects + +/turf/open/floor/proc/MakeDirty() + if(prob(66)) //fastest possible exit 2/3 of the time + return + + if(!(flags & CAN_BE_DIRTY)) + return + + if(locate(/obj/structure/grille) in contents) + return + + var/area/A = get_area(src) + + if(A && !(A.flags & CAN_BE_DIRTY)) + return + + //The code below here isn't exactly optimal, but because of the individual decals that each area uses it's still applicable. + + //high dirt - 1/3 + if(istype(A, /area/toxins/test_area) || istype(A, /area/mine/production) || istype(A, /area/mine/living_quarters) || istype(A, /area/mine/north_outpost) || istype(A, /area/mine/west_outpost) || istype(A, /area/wreck) || istype(A, /area/derelict) || istype(A, /area/djstation)) + new /obj/effect/decal/cleanable/dirt(src) //vanilla, but it works + return + + if(prob(80)) //mid dirt - 1/15 + return + + if(istype(A, /area/engine) || istype(A,/area/assembly) || istype(A,/area/maintenance) || istype(A,/area/construction)) + //Blood, sweat, and oil. Oh, and dirt. + if(prob(3)) + new /obj/effect/decal/cleanable/blood/old(src) + else + if(prob(35)) + if(prob(4)) + new /obj/effect/decal/cleanable/robot_debris/old(src) + else + new /obj/effect/decal/cleanable/oil(src) + else + new /obj/effect/decal/cleanable/dirt(src) + return + + if(istype(A, /area/crew_quarters/toilet) || istype(A, /area/crew_quarters/locker/locker_toilet)) + if(prob(40)) + if(prob(90)) + new /obj/effect/decal/cleanable/vomit/old(src) + else + new /obj/effect/decal/cleanable/blood/old(src) + return + + if(istype(A, /area/quartermaster)) + if(prob(25)) + new /obj/effect/decal/cleanable/oil(src) + return + + if(prob(75)) //low dirt - 1/60 + return + + if(istype(A, /area/ai_monitored/turret_protected) || istype(A, /area/security)) //chance of incident + if(prob(20)) + if(prob(5)) + new /obj/effect/decal/cleanable/blood/gibs/old(src) + else + new /obj/effect/decal/cleanable/blood/old(src) + return + + + if(istype(A, /area/crew_quarters/kitchen)) //Kitchen messes + if(prob(60)) + if(prob(50)) + new /obj/effect/decal/cleanable/egg_smudge(src) + else + new /obj/effect/decal/cleanable/flour(src) + return + + if(istype(A, /area/medical)) //Kept clean, but chance of blood + if(prob(66)) + if(prob(5)) + new /obj/effect/decal/cleanable/blood/gibs/old(src) + else + new /obj/effect/decal/cleanable/blood/old(src) + else if(prob(30)) + if(istype(A, /area/medical/morgue)) + new /obj/item/weapon/ectoplasm(src) + else + new /obj/effect/decal/cleanable/vomit/old(src) + return + + if(istype(A, /area/toxins)) + if(prob(20)) + new /obj/effect/decal/cleanable/greenglow(src) //this cleans itself up but it might startle you when you see it. + return + + return TRUE diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm new file mode 100644 index 0000000..2e8cc58 --- /dev/null +++ b/code/game/turfs/simulated/floor.dm @@ -0,0 +1,188 @@ +//This is so damaged or burnt tiles or platings don't get remembered as the default tile +var/list/icons_to_ignore_at_floor_init = list("damaged1","damaged2","damaged3","damaged4", + "damaged5","panelscorched","floorscorched1","floorscorched2","platingdmg1","platingdmg2", + "platingdmg3","plating","light_on","light_on_flicker1","light_on_flicker2", + "light_on_clicker3","light_on_clicker4","light_on_clicker5","light_broken", + "light_on_broken","light_off","wall_thermite","grass", "sand", + "asteroid","asteroid_dug", + "asteroid0","asteroid1","asteroid2","asteroid3","asteroid4", + "asteroid5","asteroid6","asteroid7","asteroid8","asteroid9","asteroid10","asteroid11","asteroid12", + "basalt","basalt_dug", + "basalt0","basalt1","basalt2","basalt3","basalt4", + "basalt5","basalt6","basalt7","basalt8","basalt9","basalt10","basalt11","basalt12", + "oldburning","light-on-r","light-on-y","light-on-g","light-on-b", "wood", "wood-broken", + "carpetcorner", "carpetside", "carpet", "ironsand1", "ironsand2", "ironsand3", "ironsand4", "ironsand5", + "ironsand6", "ironsand7", "ironsand8", "ironsand9", "ironsand10", "ironsand11", + "ironsand12", "ironsand13", "ironsand14", "ironsand15") + +/turf/open/floor + //NOTE: Floor code has been refactored, many procs were removed and refactored + //- you should use istype() if you want to find out whether a floor has a certain type + //- floor_tile is now a path, and not a tile obj + name = "floor" + icon = 'icons/turf/floors.dmi' + + var/icon_regular_floor = "floor" //used to remember what icon the tile should have by default + var/icon_plating = "plating" + thermal_conductivity = 0.040 + heat_capacity = 10000 + intact = 1 + var/broken = 0 + var/burnt = 0 + var/floor_tile = null //tile that this floor drops + var/list/broken_states = list("damaged1", "damaged2", "damaged3", "damaged4", "damaged5") + var/list/burnt_states = list() + +/turf/open/floor/New() + ..() + if(icon_state in icons_to_ignore_at_floor_init) //so damaged/burned tiles or plating icons aren't saved as the default + icon_regular_floor = "floor" + else + icon_regular_floor = icon_state + +/turf/open/floor/ex_act(severity, target) + var/shielded = is_shielded() + ..() + if(severity != 1 && shielded && target != src) + return + if(target == src) + src.ChangeTurf(src.baseturf) + if(target != null) + severity = 3 + + switch(severity) + if(1) + src.ChangeTurf(src.baseturf) + if(2) + switch(pick(1,2;75,3)) + if(1) + src.ReplaceWithLattice() + if(prob(33)) new /obj/item/stack/sheet/metal(src) + if(2) + src.ChangeTurf(src.baseturf) + if(3) + if(prob(80)) + src.break_tile_to_plating() + else + src.break_tile() + src.hotspot_expose(1000,CELL_VOLUME) + if(prob(33)) new /obj/item/stack/sheet/metal(src) + if(3) + if (prob(50)) + src.break_tile() + src.hotspot_expose(1000,CELL_VOLUME) + +/turf/open/floor/is_shielded() + for(var/obj/structure/A in contents) + if(A.level == 3) + return 1 + +/turf/open/floor/blob_act(obj/structure/blob/B) + return + +/turf/open/floor/proc/update_icon() + update_visuals() + return 1 + +/turf/open/floor/attack_paw(mob/user) + return src.attack_hand(user) + +/turf/open/floor/proc/gets_drilled() + return + +/turf/open/floor/proc/break_tile_to_plating() + var/turf/open/floor/plating/T = make_plating() + T.break_tile() + +/turf/open/floor/proc/break_tile() + if(broken) + return + icon_state = pick(broken_states) + broken = 1 + +/turf/open/floor/burn_tile() + if(broken || burnt) + return + if(burnt_states.len) + icon_state = pick(burnt_states) + else + icon_state = pick(broken_states) + burnt = 1 + +/turf/open/floor/proc/make_plating() + return ChangeTurf(/turf/open/floor/plating) + +/turf/open/floor/ChangeTurf(new_path) + if(!isfloorturf(src)) + return ..() //fucking turfs switch the fucking src of the fucking running procs + if(!ispath(new_path, /turf/open/floor)) + return ..() + var/old_icon = icon_regular_floor + var/old_dir = dir + var/turf/open/floor/W = ..() + W.icon_regular_floor = old_icon + W.setDir(old_dir) + W.update_icon() + return W + +/turf/open/floor/attackby(obj/item/C, mob/user, params) + if(!C || !user) + return 1 + if(..()) + return 1 + if(intact && istype(C, /obj/item/weapon/crowbar)) + if(broken || burnt) + broken = 0 + burnt = 0 + user << "You remove the broken plating." + else + if(istype(src, /turf/open/floor/wood)) + user << "You forcefully pry off the planks, destroying them in the process." + else + user << "You remove the floor tile." + if(floor_tile) + PoolOrNew(floor_tile, src) + make_plating() + playsound(src, 'sound/items/Crowbar.ogg', 80, 1) + return 1 + return 0 + +/turf/open/floor/singularity_pull(S, current_size) + if(current_size == STAGE_THREE) + if(prob(30)) + if(floor_tile) + PoolOrNew(floor_tile, src) + make_plating() + else if(current_size == STAGE_FOUR) + if(prob(50)) + if(floor_tile) + PoolOrNew(floor_tile, src) + make_plating() + else if(current_size >= STAGE_FIVE) + if(floor_tile) + if(prob(70)) + PoolOrNew(floor_tile, src) + make_plating() + else if(prob(50)) + ReplaceWithLattice() + +/turf/open/floor/narsie_act() + if(prob(20)) + ChangeTurf(/turf/open/floor/engine/cult) + +/turf/open/floor/ratvar_act(force) + var/converted = (prob(40) || force) + if(converted) + ChangeTurf(/turf/open/floor/clockwork) + for(var/I in src) + var/atom/A = I + if(ismob(A) || converted) + A.ratvar_act() + +/turf/open/floor/initialize() + ..() + MakeDirty() + +/turf/open/floor/acid_melt() + ChangeTurf(baseturf) + diff --git a/code/game/turfs/simulated/floor/fancy_floor.dm b/code/game/turfs/simulated/floor/fancy_floor.dm new file mode 100644 index 0000000..3a7a9c9 --- /dev/null +++ b/code/game/turfs/simulated/floor/fancy_floor.dm @@ -0,0 +1,143 @@ +/* In this file: + * Wood floor + * Grass floor + * Carpet floor + */ + +/turf/open/floor/wood + icon_state = "wood" + floor_tile = /obj/item/stack/tile/wood + broken_states = list("wood-broken", "wood-broken2", "wood-broken3", "wood-broken4", "wood-broken5", "wood-broken6", "wood-broken7") + +/turf/open/floor/wood/attackby(obj/item/C, mob/user, params) + if(..()) + return + if(istype(C, /obj/item/weapon/screwdriver)) + if(broken || burnt) + return + user << "You unscrew the planks." + new floor_tile(src) + make_plating() + playsound(src, C.usesound, 80, 1) + return + +/turf/open/floor/wood/cold + temperature = 255.37 + +/turf/open/floor/wood/airless + initial_gas_mix = "TEMP=2.7" + +/turf/open/floor/grass + name = "grass patch" + desc = "You can't tell if this is real grass or just cheap plastic imitation." + icon_state = "grass" + floor_tile = /obj/item/stack/tile/grass + broken_states = list("sand") + flags = NONE + var/ore_type = /obj/item/weapon/ore/glass + +/turf/open/floor/grass/New() + ..() + spawn(1) + update_icon() + +/turf/open/floor/grass/attackby(obj/item/C, mob/user, params) + if(istype(C, /obj/item/weapon/shovel) && params) + new ore_type(src) + new ore_type(src) //Make some sand if you shovel grass + user.visible_message("[user] digs up [src].", "You uproot [src].") + playsound(src, 'sound/effects/shovel_dig.ogg', 50, 1) + make_plating() + if(..()) + return + +/turf/open/floor/grass/snow + name = "snow" + icon = 'icons/turf/snow.dmi' + desc = "Looks cold." + icon_state = "snow" + ore_type = /obj/item/stack/sheet/mineral/snow + planetary_atmos = TRUE + floor_tile = null + initial_gas_mix = "o2=22;n2=82;TEMP=180" + slowdown = 2 + + +/turf/open/floor/grass/snow/attackby(obj/item/W, mob/user, params) + if(istype(W, /obj/item/weapon/crowbar))//You need to dig this turf out instead of crowbarring it + return + ..() + +/turf/open/floor/grass/snow/basalt //By your powers combined, I am captain planet + name = "volcanic floor" + icon = 'icons/turf/floors.dmi' + icon_state = "basalt" + ore_type = /obj/item/weapon/ore/glass/basalt + initial_gas_mix = "o2=14;n2=23;TEMP=300" + slowdown = 0 + +/turf/open/floor/grass/snow/basalt/New() + ..() + if(prob(15)) + icon_state = "basalt[rand(0, 12)]" + switch(icon_state) + if("basalt1", "basalt2", "basalt3") + SetLuminosity(1, 1) + + +/turf/open/floor/carpet + name = "carpet" + desc = "Soft velvet carpeting. Feels good between your toes." + icon = 'icons/turf/floors/carpet.dmi' + icon_state = "carpet" + floor_tile = /obj/item/stack/tile/carpet + broken_states = list("damaged") + smooth = SMOOTH_TRUE + canSmoothWith = null + flags = NONE + +/turf/open/floor/carpet/New() + ..() + spawn(1) + update_icon() + +/turf/open/floor/carpet/update_icon() + if(!..()) + return 0 + if(!broken && !burnt) + if(smooth) + queue_smooth(src) + else + make_plating() + if(smooth) + queue_smooth_neighbors(src) + +/turf/open/floor/carpet/narsie_act() + return + +/turf/open/floor/carpet/break_tile() + broken = 1 + update_icon() + +/turf/open/floor/carpet/burn_tile() + burnt = 1 + update_icon() + +/turf/open/floor/carpet/carpetsymbol + icon_state = "carpetsymbol" + smooth = SMOOTH_FALSE + +/turf/open/floor/carpet/carpetsymbol2 + icon_state = "carpetstar" + smooth = SMOOTH_FALSE + + +/turf/open/floor/fakespace + icon = 'icons/turf/space.dmi' + icon_state = "0" + floor_tile = /obj/item/stack/tile/fakespace + broken_states = list("damaged") + +/turf/open/floor/fakespace/New() + ..() + icon_state = "[rand(0,25)]" diff --git a/code/game/turfs/simulated/floor/light_floor.dm b/code/game/turfs/simulated/floor/light_floor.dm new file mode 100644 index 0000000..da67666 --- /dev/null +++ b/code/game/turfs/simulated/floor/light_floor.dm @@ -0,0 +1,69 @@ +/turf/open/floor/light + name = "light floor" + desc = "A wired glass tile embedded into the floor." + luminosity = 5 + icon_state = "light_on" + floor_tile = /obj/item/stack/tile/light + broken_states = list("light_broken") + var/on = 1 + var/state //0 = fine, 1 = flickering, 2 = breaking, 3 = broken + var/list/coloredlights = list("g", "r", "y", "b", "p", "w", "s","o","g") + var/currentcolor = 1 + + +/turf/open/floor/light/New() + ..() + update_icon() + +/turf/open/floor/light/update_icon() + ..() + if(on) + switch(state) + if(0) + icon_state = "light_on-[coloredlights[currentcolor]]" + SetLuminosity(1) + if(1) + var/num = pick("1","2","3","4") + icon_state = "light_on_flicker[num]" + SetLuminosity(1) + if(2) + icon_state = "light_on_broken" + SetLuminosity(1) + if(3) + icon_state = "light_off" + SetLuminosity(0) + else + SetLuminosity(0) + icon_state = "light_off" + + +/turf/open/floor/light/ChangeTurf(turf/T) + SetLuminosity(0) + ..() + +/turf/open/floor/light/attack_hand(mob/user) + if(!on) + on = 1 + currentcolor = 1 + return + else + currentcolor++ + if(currentcolor > coloredlights.len) + on = 0 + update_icon() + ..() //I am not sure what the parent procs have for attack_hand, best to check later. + +/turf/open/floor/light/attack_ai(mob/user) + attack_hand(user) + +/turf/open/floor/light/attackby(obj/item/C, mob/user, params) + if(..()) + return + if(istype(C,/obj/item/weapon/light/bulb)) //only for light tiles + if(state && user.drop_item()) + qdel(C) + state = 0 //fixing it by bashing it with a light bulb, fun eh? + update_icon() + user << "You replace the light bulb." + else + user << "The lightbulb seems fine, no need to replace it." diff --git a/code/game/turfs/simulated/floor/mineral_floor.dm b/code/game/turfs/simulated/floor/mineral_floor.dm new file mode 100644 index 0000000..98b11b3 --- /dev/null +++ b/code/game/turfs/simulated/floor/mineral_floor.dm @@ -0,0 +1,220 @@ +/* In this file: + * + * Plasma floor + * Gold floor + * Silver floor + * Bananium floor + * Diamond floor + * Uranium floor + * Shuttle floor (Titanium) + */ + +/turf/open/floor/mineral + name = "mineral floor" + icon_state = "" + var/list/icons = list() + + + +/turf/open/floor/mineral/New() + ..() + broken_states = list("[initial(icon_state)]_dam") + +/turf/open/floor/mineral/update_icon() + if(!..()) + return 0 + if(!broken && !burnt) + if( !(icon_state in icons) ) + icon_state = initial(icon_state) + +//PLASMA + +/turf/open/floor/mineral/plasma + name = "plasma floor" + icon_state = "plasma" + floor_tile = /obj/item/stack/tile/mineral/plasma + icons = list("plasma","plasma_dam") + +/turf/open/floor/mineral/plasma/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) + if(exposed_temperature > 300) + PlasmaBurn() + +/turf/open/floor/mineral/plasma/attackby(obj/item/weapon/W as obj, mob/user as mob, params) + if(W.is_hot() > 300)//If the temperature of the object is over 300, then ignite + message_admins("Plasma flooring was ignited by [key_name_admin(user)](?) (FLW) in ([x],[y],[z] - JMP)",0,1) + log_game("Plasma flooring was ignited by [key_name(user)] in ([x],[y],[z])") + ignite(W.is_hot()) + return + ..() + +/turf/open/floor/mineral/plasma/proc/PlasmaBurn() + make_plating() + atmos_spawn_air("plasma=20;TEMP=1000") + +/turf/open/floor/mineral/plasma/proc/ignite(exposed_temperature) + if(exposed_temperature > 300) + PlasmaBurn() + + +//GOLD + +/turf/open/floor/mineral/gold + name = "gold floor" + icon_state = "gold" + floor_tile = /obj/item/stack/tile/mineral/gold + icons = list("gold","gold_dam") + +//SILVER + +/turf/open/floor/mineral/silver + name = "silver floor" + icon_state = "silver" + floor_tile = /obj/item/stack/tile/mineral/silver + icons = list("silver","silver_dam") + +//TITANIUM (shuttle) + +/turf/open/floor/mineral/titanium/blue + icon_state = "shuttlefloor" + icons = list("shuttlefloor","shuttlefloor_dam") + +/turf/open/floor/mineral/titanium/yellow + icon_state = "shuttlefloor2" + icons = list("shuttlefloor2","shuttlefloor2_dam") + +/turf/open/floor/mineral/titanium + name = "shuttle floor" + icon_state = "shuttlefloor3" + floor_tile = /obj/item/stack/tile/mineral/titanium + icons = list("shuttlefloor3","shuttlefloor3_dam") + +/turf/open/floor/mineral/titanium/purple + icon_state = "shuttlefloor5" + icons = list("shuttlefloor5","shuttlefloor5_dam") + +//PLASTITANIUM (syndieshuttle) +/turf/open/floor/mineral/plastitanium + name = "shuttle floor" + icon_state = "shuttlefloor4" + floor_tile = /obj/item/stack/tile/mineral/plastitanium + icons = list("shuttlefloor4","shuttlefloor4_dam") + +/turf/open/floor/mineral/plastitanium/brig + name = "Brig floor" + +//BANANIUM + +/turf/open/floor/mineral/bananium + name = "bananium floor" + icon_state = "bananium" + floor_tile = /obj/item/stack/tile/mineral/bananium + icons = list("bananium","bananium_dam") + var/spam_flag = 0 + +/turf/open/floor/mineral/bananium/Entered(var/mob/AM) + .=..() + if(!.) + if(istype(AM)) + squeek() + +/turf/open/floor/mineral/bananium/attackby(obj/item/weapon/W, mob/user, params) + .=..() + if(!.) + honk() + +/turf/open/floor/mineral/bananium/attack_hand(mob/user) + .=..() + if(!.) + honk() + +/turf/open/floor/mineral/bananium/attack_paw(mob/user) + .=..() + if(!.) + honk() + +/turf/open/floor/mineral/bananium/proc/honk() + if(!spam_flag) + spam_flag = 1 + playsound(src, 'sound/items/bikehorn.ogg', 50, 1) + spawn(20) + spam_flag = 0 + +/turf/open/floor/mineral/bananium/proc/squeek() + if(!spam_flag) + spam_flag = 1 + playsound(src, "clownstep", 50, 1) + spawn(10) + spam_flag = 0 + +/turf/open/floor/mineral/bananium/airless + initial_gas_mix = "TEMP=2.7" + +//DIAMOND + +/turf/open/floor/mineral/diamond + name = "diamond floor" + icon_state = "diamond" + floor_tile = /obj/item/stack/tile/mineral/diamond + icons = list("diamond","diamond_dam") + +//URANIUM + +/turf/open/floor/mineral/uranium + name = "uranium floor" + icon_state = "uranium" + floor_tile = /obj/item/stack/tile/mineral/uranium + icons = list("uranium","uranium_dam") + var/last_event = 0 + var/active = null + +/turf/open/floor/mineral/uranium/Entered(var/mob/AM) + .=..() + if(!.) + if(istype(AM)) + radiate() + +/turf/open/floor/mineral/uranium/attackby(obj/item/weapon/W, mob/user, params) + .=..() + if(!.) + radiate() + +/turf/open/floor/mineral/uranium/attack_hand(mob/user) + .=..() + if(!.) + radiate() + +/turf/open/floor/mineral/uranium/attack_paw(mob/user) + .=..() + if(!.) + radiate() + +/turf/open/floor/mineral/uranium/proc/radiate() + if(!active) + if(world.time > last_event+15) + active = 1 + radiation_pulse(get_turf(src), 3, 3, 1, 0) + for(var/turf/open/floor/mineral/uranium/T in orange(1,src)) + T.radiate() + last_event = world.time + active = 0 + return + +// ALIEN ALLOY +/turf/open/floor/mineral/abductor + name = "alien floor" + icon_state = "alienpod1" + floor_tile = /obj/item/stack/tile/mineral/abductor + icons = list("alienpod1", "alienpod2", "alienpod3", "alienpod4", "alienpod5", "alienpod6", "alienpod7", "alienpod8", "alienpod9") + +/turf/open/floor/mineral/abductor/New() + ..() + icon_state = "alienpod[rand(1,9)]" + +/turf/open/floor/mineral/abductor/break_tile() + return //unbreakable + +/turf/open/floor/mineral/abductor/burn_tile() + return //unburnable + +/turf/open/floor/mineral/abductor/make_plating() + return ChangeTurf(/turf/open/floor/plating/abductor2) diff --git a/code/game/turfs/simulated/floor/misc_floor.dm b/code/game/turfs/simulated/floor/misc_floor.dm new file mode 100644 index 0000000..e45be3e --- /dev/null +++ b/code/game/turfs/simulated/floor/misc_floor.dm @@ -0,0 +1,222 @@ +/turf/open/floor/goonplaque + name = "commemorative plaque" + icon_state = "plaque" + desc = "\"This is a plaque in honour of our comrades on the G4407 Stations. Hopefully TG4407 model can live up to your fame and fortune.\" Scratched in beneath that is a crude image of a meteor and a spaceman. The spaceman is laughing. The meteor is exploding." + floor_tile = /obj/item/stack/tile/plasteel + +/turf/open/floor/vault + icon_state = "rockvault" + floor_tile = /obj/item/stack/tile/plasteel + +/turf/open/floor/bluegrid + icon = 'icons/turf/floors.dmi' + icon_state = "bcircuit" + floor_tile = /obj/item/stack/tile/plasteel + +/turf/open/floor/bluegrid/New() + ..() + nuke_tiles += src + +/turf/open/floor/bluegrid/Destroy() + nuke_tiles -= src + return ..() + +/turf/open/floor/greengrid + icon = 'icons/turf/floors.dmi' + icon_state = "gcircuit" + floor_tile = /obj/item/stack/tile/plasteel + + +/turf/open/floor/pod + name = "pod floor" + icon_state = "podfloor" + icon_regular_floor = "podfloor" + floor_tile = /obj/item/stack/tile/pod + +/turf/open/floor/pod/light + icon_state = "podfloor_light" + icon_regular_floor = "podfloor_light" + floor_tile = /obj/item/stack/tile/pod/light + +/turf/open/floor/pod/dark + icon_state = "podfloor_dark" + icon_regular_floor = "podfloor_dark" + floor_tile = /obj/item/stack/tile/pod/dark + + +/turf/open/floor/noslip + name = "high-traction floor" + icon_state = "noslip" + floor_tile = /obj/item/stack/tile/noslip + broken_states = list("noslip-damaged1","noslip-damaged2","noslip-damaged3") + burnt_states = list("noslip-scorched1","noslip-scorched2") + slowdown = -0.3 + +/turf/open/floor/noslip/MakeSlippery() + return + +/turf/open/floor/oldshuttle + icon = 'icons/turf/shuttleold.dmi' + icon_state = "floor" + floor_tile = /obj/item/stack/tile/plasteel + +//Clockwork floor: Slowly heals toxin damage on nearby servants. +/turf/open/floor/clockwork + name = "clockwork floor" + desc = "Tightly-pressed brass tiles. They emit minute vibration." + icon_state = "plating" + var/obj/effect/clockwork/overlay/floor/realappearence + +/turf/open/floor/clockwork/New() + ..() + PoolOrNew(/obj/effect/overlay/temp/ratvar/floor, src) + PoolOrNew(/obj/effect/overlay/temp/ratvar/beam, src) + realappearence = PoolOrNew(/obj/effect/clockwork/overlay/floor, src) + realappearence.linked = src + change_construction_value(1) + +/turf/open/floor/clockwork/Destroy() + be_removed() + return ..() + +/turf/open/floor/clockwork/ChangeTurf(path, defer_change = FALSE) + if(path != type) + be_removed() + return ..() + +/turf/open/floor/clockwork/proc/be_removed() + STOP_PROCESSING(SSobj, src) + change_construction_value(-1) + qdel(realappearence) + realappearence = null + +/turf/open/floor/clockwork/Entered(atom/movable/AM) + ..() + START_PROCESSING(SSobj, src) + +/turf/open/floor/clockwork/process() + if(!healservants()) + STOP_PROCESSING(SSobj, src) + +/turf/open/floor/clockwork/proc/healservants() + for(var/mob/living/L in src) + if(L.stat == DEAD) + continue + . = 1 + if(!is_servant_of_ratvar(L) || !L.toxloss) + continue + + var/image/I = new('icons/effects/effects.dmi', src, "heal", ABOVE_MOB_LAYER) //fake a healing glow for servants + I.appearance_flags = RESET_COLOR + I.color = "#5A6068" + I.pixel_x = rand(-12, 12) + I.pixel_y = rand(-9, 0) + var/list/viewing = list() + for(var/mob/M in viewers(src)) + if(M.client && (is_servant_of_ratvar(M) || isobserver(M) || M.stat == DEAD)) + viewing += M.client + flick_overlay(I, viewing, 8) + + var/swapdamage = FALSE + if(L.has_dna()) //if has_dna() is true they're at least carbon + var/mob/living/carbon/C = L + if(TOXINLOVER in C.dna.species.specflags) + swapdamage = TRUE + if(isanimal(L)) + var/mob/living/simple_animal/A = L + if(A.damage_coeff[TOX] < 0) + swapdamage = TRUE + if(swapdamage) //they'd take damage, we need to swap it + L.adjustToxLoss(3) + else + L.adjustToxLoss(-3) + +/turf/open/floor/clockwork/attackby(obj/item/I, mob/living/user, params) + if(istype(I, /obj/item/weapon/crowbar)) + user.visible_message("[user] begins slowly prying up [src]...", "You begin painstakingly prying up [src]...") + playsound(src, 'sound/items/Crowbar.ogg', 20, 1) + if(!do_after(user, 70 / I.toolspeed, target = src)) + return 0 + user.visible_message("[user] pries up [src]!", "You pry up [src], destroying it!") + playsound(src, 'sound/items/Crowbar.ogg', 80, 1) + make_plating() + return 1 + return ..() + +/turf/open/floor/clockwork/make_plating() + new/obj/item/clockwork/alloy_shards/small(src) + new/obj/item/clockwork/alloy_shards/medium(src) + return ..() + +/turf/open/floor/clockwork/ratvar_act() + for(var/mob/M in src) + M.ratvar_act() + +/turf/open/floor/clockwork/narsie_act() + ..() + if(istype(src, /turf/open/floor/clockwork)) //if we haven't changed type + var/previouscolor = color + color = "#960000" + animate(src, color = previouscolor, time = 8) + addtimer(src, "update_atom_colour", 8) + + +/turf/open/floor/bluespace + slowdown = -1 + icon_state = "bluespace" + desc = "Through a series of micro-teleports these tiles let people move at incredible speeds" + floor_tile = /obj/item/stack/tile/bluespace + + +/turf/open/floor/sepia + slowdown = 2 + icon_state = "sepia" + desc = "Time seems to flow very slowly around these tiles" + floor_tile = /obj/item/stack/tile/sepia + + + +// VINE FLOOR + +/turf/open/floor/vines + color = "#aa77aa" + icon_state = "vinefloor" + broken_states = list() + + +//All of this shit is useless for vines + +/turf/open/floor/vines/attackby() + return + +/turf/open/floor/vines/burn_tile() + return + +/turf/open/floor/vines/break_tile() + return + +/turf/open/floor/vines/make_plating() + return + +/turf/open/floor/vines/break_tile_to_plating() + return + +/turf/open/floor/vines/ex_act(severity, target) + ..() + if(severity < 3 || target == src) + ChangeTurf(src.baseturf) + +/turf/open/floor/vines/narsie_act() + if(prob(20)) + ChangeTurf(src.baseturf) //nar sie eats this shit + +/turf/open/floor/vines/singularity_pull(S, current_size) + if(current_size >= STAGE_FIVE) + if(prob(50)) + ChangeTurf(src.baseturf) + +/turf/open/floor/vines/ChangeTurf(turf/open/floor/T) + for(var/obj/structure/spacevine/SV in src) + qdel(SV) + . = ..() + UpdateAffectingLights() \ No newline at end of file diff --git a/code/game/turfs/simulated/floor/plasteel_floor.dm b/code/game/turfs/simulated/floor/plasteel_floor.dm new file mode 100644 index 0000000..793661b --- /dev/null +++ b/code/game/turfs/simulated/floor/plasteel_floor.dm @@ -0,0 +1,464 @@ +/turf/open/floor/plasteel + icon_state = "floor" + floor_tile = /obj/item/stack/tile/plasteel + broken_states = list("damaged1", "damaged2", "damaged3", "damaged4", "damaged5") + burnt_states = list("floorscorched1", "floorscorched2") + +/turf/open/floor/plasteel/update_icon() + if(!..()) + return 0 + if(!broken && !burnt) + icon_state = icon_regular_floor + + +/turf/open/floor/plasteel/airless + initial_gas_mix = "TEMP=2.7" + + +/turf/open/floor/plasteel/black + icon_state = "dark" +/turf/open/floor/plasteel/airless/black + icon_state = "dark" +/turf/open/floor/plasteel/black/side + icon_state = "black" //NOTICE ME SEMPAI: floors.dmi contains two sprites named black, remove the incorrect one +/turf/open/floor/plasteel/black/corner + icon_state = "blackcorner" + + +/turf/open/floor/plasteel/white + icon_state = "white" +/turf/open/floor/plasteel/airless/white + icon_state = "white" +/turf/open/floor/plasteel/white/side + icon_state = "whitehall" +/turf/open/floor/plasteel/white/corner + icon_state = "whitecorner" + + + +/turf/open/floor/plasteel/brown + icon_state = "brown" +/turf/open/floor/plasteel/brown/corner + icon_state = "browncorner" + +/turf/open/floor/plasteel/darkbrown + icon_state = "darkbrownfull" +/turf/open/floor/plasteel/darkbrown/side + icon_state = "darkbrown" +/turf/open/floor/plasteel/darkbrown/corner + icon_state = "darkbrowncorners" + + + +/turf/open/floor/plasteel/green + icon_state = "greenfull" +/turf/open/floor/plasteel/green/side + icon_state = "green" +/turf/open/floor/plasteel/green/corner + icon_state = "greencorner" + +/turf/open/floor/plasteel/darkgreen + icon_state = "darkgreenfull" +/turf/open/floor/plasteel/darkgreen/side + icon_state = "darkgreen" +/turf/open/floor/plasteel/darkgreen/corner + icon_state = "darkgreencorners" + +/turf/open/floor/plasteel/whitegreen + icon_state = "whitegreenfull" +/turf/open/floor/plasteel/whitegreen/side + icon_state = "whitegreen" +/turf/open/floor/plasteel/whitegreen/corner + icon_state = "whitegreencorner" + + + +/turf/open/floor/plasteel/red + icon_state = "redfull" +/turf/open/floor/plasteel/red/side + icon_state = "red" +/turf/open/floor/plasteel/red/corner + icon_state = "redcorner" + +/turf/open/floor/plasteel/darkred + icon_state = "darkredfull" +/turf/open/floor/plasteel/darkred/side + icon_state = "darkred" +/turf/open/floor/plasteel/darkred/corner + icon_state = "darkredcorners" + +/turf/open/floor/plasteel/whitered + icon_state = "whiteredfull" +/turf/open/floor/plasteel/whitered/side + icon_state = "whitered" +/turf/open/floor/plasteel/whitered/corner + icon_state = "whiteredcorner" + + + +/turf/open/floor/plasteel/blue + icon_state = "bluefull" +/turf/open/floor/plasteel/blue/side + icon_state = "blue" +/turf/open/floor/plasteel/blue/corner + icon_state = "bluecorner" + +/turf/open/floor/plasteel/darkblue + icon_state = "darkbluefull" +/turf/open/floor/plasteel/darkblue/side + icon_state = "darkblue" +/turf/open/floor/plasteel/darkblue/corner + icon_state = "darkbluecorners" + +/turf/open/floor/plasteel/whiteblue + icon_state = "whitebluefull" +/turf/open/floor/plasteel/whiteblue/side + icon_state = "whiteblue" +/turf/open/floor/plasteel/whiteblue/corner + icon_state = "whitebluecorner" + + + +/turf/open/floor/plasteel/yellow + icon_state = "yellowfull" +/turf/open/floor/plasteel/yellow/side + icon_state = "yellow" +/turf/open/floor/plasteel/yellow/corner + icon_state = "yellowcorner" + +/turf/open/floor/plasteel/darkyellow + icon_state = "darkyellowfull" +/turf/open/floor/plasteel/darkyellow/side + icon_state = "darkyellow" +/turf/open/floor/plasteel/darkyellow/corner + icon_state = "darkyellowcorners" + +/turf/open/floor/plasteel/whiteyellow + icon_state = "whiteyellowfull" +/turf/open/floor/plasteel/whiteyellow/side + icon_state = "whiteyellow" +/turf/open/floor/plasteel/whiteyellow/corner + icon_state = "whiteyellowcorner" + + + +/turf/open/floor/plasteel/purple + icon_state = "purplefull" +/turf/open/floor/plasteel/purple/side + icon_state = "purple" +/turf/open/floor/plasteel/purple/corner + icon_state = "purplecorner" + +/turf/open/floor/plasteel/darkpurple + icon_state = "darkpurplefull" +/turf/open/floor/plasteel/darkpurple/side + icon_state = "darkpurple" +/turf/open/floor/plasteel/darkpurple/corner + icon_state = "darkpurplecorners" + +/turf/open/floor/plasteel/whitepurple + icon_state = "whitepurplefull" +/turf/open/floor/plasteel/whitepurple/side + icon_state = "whitepurple" +/turf/open/floor/plasteel/whitepurple/corner + icon_state = "whitepurplecorner" + + +/turf/open/floor/plasteel/orange + icon_state = "orangefull" +/turf/open/floor/plasteel/orange/side + icon_state = "orange" +/turf/open/floor/plasteel/orange/corner + icon_state = "orangecorner" + + +/turf/open/floor/plasteel/neutral + icon_state = "neutralfull" +/turf/open/floor/plasteel/neutral/side + icon_state = "neutral" +/turf/open/floor/plasteel/neutral/corner + icon_state = "neutralcorner" + + +/turf/open/floor/plasteel/arrival + icon_state = "arrival" +/turf/open/floor/plasteel/arrival/corner + icon_state = "arrivalcorner" + + +/turf/open/floor/plasteel/escape + icon_state = "escape" +/turf/open/floor/plasteel/escape/corner + icon_state = "escapecorner" + + +/turf/open/floor/plasteel/caution + icon_state = "caution" +/turf/open/floor/plasteel/caution/corner + icon_state = "cautioncorner" + + +/turf/open/floor/plasteel/whitebot + icon_state = "whitebot" +/turf/open/floor/plasteel/whitebot/delivery + icon_state = "whitedelivery" + + +/turf/open/floor/plasteel/redyellow + icon_state = "redyellowfull" +/turf/open/floor/plasteel/redyellow/side + icon_state = "redyellow" + + +/turf/open/floor/plasteel/redblue + icon_state = "redbluefull" +/turf/open/floor/plasteel/redblue/blueside + icon_state = "bluered" +/turf/open/floor/plasteel/redblue/redside + icon_state = "redblue" + + +/turf/open/floor/plasteel/redgreen + icon_state = "redgreenfull" +/turf/open/floor/plasteel/redgreen/side + icon_state = "redgreen" + + +/turf/open/floor/plasteel/greenyellow + icon_state = "greenyellowfull" +/turf/open/floor/plasteel/greenyellow/side + icon_state = "greenyellow" + + +/turf/open/floor/plasteel/greenblue + icon_state = "greenbluefull" +/turf/open/floor/plasteel/greenblue/side + icon_state = "greenblue" + + +/turf/open/floor/plasteel/blueyellow + icon_state = "blueyellowfull" +/turf/open/floor/plasteel/blueyellow/side + icon_state = "blueyellow" + + +/turf/open/floor/plasteel/warningline + icon_state = "warningline" +/turf/open/floor/plasteel/warningline/corner + icon_state = "warninglinecorners" + +/turf/open/floor/plasteel/yellowsiding + icon_state = "yellowsiding" +/turf/open/floor/plasteel/yellowsiding/corner + icon_state = "yellowcornersiding" + + +/turf/open/floor/plasteel/podhatch + icon_state = "podhatch" +/turf/open/floor/plasteel/podhatch/corner + icon_state = "podhatchcorner" + + + +/turf/open/floor/plasteel/circuit + icon_state = "bcircuit" +/turf/open/floor/plasteel/airless/circuit + icon_state = "bcircuit" +/turf/open/floor/plasteel/circuit/off + icon_state = "bcircuitoff" + +/turf/open/floor/plasteel/circuit/gcircuit + icon_state = "gcircuit" +/turf/open/floor/plasteel/airless/circuit/gcircuit + icon_state = "gcircuit" +/turf/open/floor/plasteel/circuit/gcircuit/off + icon_state = "gcircuitoff" +/turf/open/floor/plasteel/circuit/gcircuit/animated + icon_state = "gcircuitanim" + +/turf/open/floor/plasteel/circuit/rcircuit + icon_state = "rcircuit" +/turf/open/floor/plasteel/circuit/rcircuit/animated + icon_state = "rcircuitanim" + + + +/turf/open/floor/plasteel/loadingarea + icon_state = "loadingarea" +/turf/open/floor/plasteel/loadingarea/dirty + icon_state = "loadingareadirty1" +/turf/open/floor/plasteel/loadingarea/dirtydirty + icon_state = "loadingareadirty2" + + +/turf/open/floor/plasteel/shuttle + icon_state = "shuttlefloor" + floor_tile = /obj/item/stack/tile/mineral/titanium //old shuttle floors so i don't have to change the map paths in this pr +/turf/open/floor/plasteel/shuttle/red + name = "Brig floor" + icon_state = "shuttlefloor4" + floor_tile = /obj/item/stack/tile/mineral/plastitanium +/turf/open/floor/plasteel/shuttle/yellow + icon_state = "shuttlefloor2" +/turf/open/floor/plasteel/shuttle/white + icon_state = "shuttlefloor3" +/turf/open/floor/plasteel/shuttle/purple + icon_state = "shuttlefloor5" + +/turf/open/floor/plasteel/airless/shuttle + icon_state = "shuttlefloor" +/turf/open/floor/plasteel/airless/shuttle/red + name = "Brig floor" + icon_state = "shuttlefloor4" +/turf/open/floor/plasteel/airless/shuttle/yellow + icon_state = "shuttlefloor2" +/turf/open/floor/plasteel/airless/shuttle/white + icon_state = "shuttlefloor3" +/turf/open/floor/plasteel/airless/shuttle/purple + icon_state = "shuttlefloor5" + + +/turf/open/floor/plasteel/asteroid + icon_state = "asteroidfloor" +/turf/open/floor/plasteel/airless/asteroid + icon_state = "asteroidfloor" + +/turf/open/floor/plasteel/recharge_floor + icon_state = "recharge_floor" +/turf/open/floor/plasteel/recharge_floor/asteroid + icon_state = "recharge_floor_asteroid" + + +/turf/open/floor/plasteel/chapel + icon_state = "chapel" + +/turf/open/floor/plasteel/showroomfloor + icon_state = "showroomfloor" + +/turf/open/floor/plasteel/floorgrime + icon_state = "floorgrime" +/turf/open/floor/plasteel/airless/floorgrime + icon_state = "floorgrime" + +/turf/open/floor/plasteel/solarpanel + icon_state = "solarpanel" +/turf/open/floor/plasteel/airless/solarpanel + icon_state = "solarpanel" + +/turf/open/floor/plasteel/cmo + icon_state = "cmo" + +/turf/open/floor/plasteel/barber + icon_state = "barber" + +/turf/open/floor/plasteel/hydrofloor + icon_state = "hydrofloor" + +/turf/open/floor/plasteel/delivery + icon_state = "delivery" + +/turf/open/floor/plasteel/bot + icon_state = "bot" + +/turf/open/floor/plasteel/freezer + icon_state = "freezerfloor" + +/turf/open/floor/plasteel/bar + icon_state = "bar" + +/turf/open/floor/plasteel/airless/bar + icon_state = "bar" + +/turf/open/floor/plasteel/grimy + icon_state = "grimy" + +/turf/open/floor/plasteel/cafeteria + icon_state = "cafeteria" + +/turf/open/floor/plasteel/airless/cafeteria + icon_state = "cafeteria" + +/turf/open/floor/plasteel/vault + icon_state = "vault" + +/turf/open/floor/plasteel/cult + icon_state = "cult" + name = "engraved floor" + +/turf/open/floor/plasteel/vaporwave + icon_state = "pinkblack" + +/turf/open/floor/plasteel/goonplaque + icon_state = "plaque" + name = "Commemorative Plaque" + desc = "\"This is a plaque in honour of our comrades on the G4407 Stations. Hopefully TG4407 model can live up to your fame and fortune.\" Scratched in beneath that is a crude image of a meteor and a spaceman. The spaceman is laughing. The meteor is exploding." + +/turf/open/floor/plasteel/cult/narsie_act() + return + +/turf/open/floor/plasteel/cult/airless + initial_gas_mix = "TEMP=2.7" + + + + + + +// +//unused? remove? +// +/turf/open/floor/plasteel/stage_bottom + icon_state = "stage_bottom" +/turf/open/floor/plasteel/stage_left + icon_state = "stage_left" +/turf/open/floor/plasteel/stage_bleft + icon_state = "stage_bleft" + + +/turf/open/floor/plasteel/stairs + icon_state = "stairs" +/turf/open/floor/plasteel/stairs/left + icon_state = "stairs-l" +/turf/open/floor/plasteel/stairs/medium + icon_state = "stairs-m" +/turf/open/floor/plasteel/stairs/right + icon_state = "stairs-r" +/turf/open/floor/plasteel/stairs/old + icon_state = "stairs-old" + + +/turf/open/floor/plasteel/brownold + icon_state = "brownold" +/turf/open/floor/plasteel/brownold/corner + icon_state = "browncornerold" + + +/turf/open/floor/plasteel/rockvault + icon_state = "rockvault" +/turf/open/floor/plasteel/rockvault/alien + icon_state = "alienvault" +/turf/open/floor/plasteel/rockvault/sandstone + icon_state = "sandstonevault" + + +/turf/open/floor/plasteel/elevatorshaft + icon_state = "elevatorshaft" + +/turf/open/floor/plasteel/bluespace + icon_state = "bluespace" + +/turf/open/floor/plasteel/sepia + icon_state = "sepia" + +/turf/open/floor/plasteel/sandy + icon_state = "sandy" + baseturf = /turf/open/floor/plating/beach/sand + +/turf/open/floor/plasteel/sandeffect + icon_state = "sandeffect" + +/turf/open/floor/plasteel/sandeffect/warning + icon_state = "warningsandeffect" + +/turf/open/floor/plasteel/sandeffect/warning/corner + icon_state = "warningsandeffectcorners" diff --git a/code/game/turfs/simulated/floor/plating.dm b/code/game/turfs/simulated/floor/plating.dm new file mode 100644 index 0000000..4d97a99 --- /dev/null +++ b/code/game/turfs/simulated/floor/plating.dm @@ -0,0 +1,69 @@ +/* In this file: + * + * Plating + * Airless + * Airless plating + * Engine floor + */ +// note that plating and engine floor do not call their parent attackby, unlike other flooring +// this is done in order to avoid inheriting the crowbar attackby + +/turf/open/floor/plating + name = "plating" + icon_state = "plating" + intact = 0 + broken_states = list("platingdmg1", "platingdmg2", "platingdmg3") + burnt_states = list("panelscorched") + +/turf/open/floor/plating/New() + ..() + icon_plating = icon_state + +/turf/open/floor/plating/update_icon() + if(!..()) + return + if(!broken && !burnt) + icon_state = icon_plating //Because asteroids are 'platings' too. + +/turf/open/floor/plating/attackby(obj/item/C, mob/user, params) + if(..()) + return + if(istype(C, /obj/item/stack/rods)) + if(broken || burnt) + user << "Repair the plating first!" + return + var/obj/item/stack/rods/R = C + if (R.get_amount() < 2) + user << "You need two rods to make a reinforced floor!" + return + else + user << "You begin reinforcing the floor..." + if(do_after(user, 30, target = src)) + if (R.get_amount() >= 2 && !istype(src, /turf/open/floor/engine)) + ChangeTurf(/turf/open/floor/engine) + playsound(src, 'sound/items/Deconstruct.ogg', 80, 1) + R.use(2) + user << "You reinforce the floor." + return + else if(istype(C, /obj/item/stack/tile)) + if(!broken && !burnt) + var/obj/item/stack/tile/W = C + if(!W.use(1)) + return + var/turf/open/floor/T = ChangeTurf(W.turf_type) + if(istype(W,/obj/item/stack/tile/light)) //TODO: get rid of this ugly check somehow + var/obj/item/stack/tile/light/L = W + var/turf/open/floor/light/F = T + F.state = L.state + playsound(src, 'sound/weapons/Genhit.ogg', 50, 1) + else + user << "This section is too damaged to support a tile! Use a welder to fix the damage." + else if(istype(C, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/welder = C + if( welder.isOn() && (broken || burnt) ) + if(welder.remove_fuel(0,user)) + user << "You fix some dents on the broken plating." + playsound(src, 'sound/items/Welder.ogg', 80, 1) + icon_state = icon_plating + burnt = 0 + broken = 0 diff --git a/code/game/turfs/simulated/floor/plating/asteroid.dm b/code/game/turfs/simulated/floor/plating/asteroid.dm new file mode 100644 index 0000000..9c9b70c --- /dev/null +++ b/code/game/turfs/simulated/floor/plating/asteroid.dm @@ -0,0 +1,321 @@ + + + +/**********************Asteroid**************************/ + +/turf/open/floor/plating/asteroid //floor piece + name = "asteroid sand" + baseturf = /turf/open/floor/plating/asteroid + icon = 'icons/turf/floors.dmi' + icon_state = "asteroid" + icon_plating = "asteroid" + var/environment_type = "asteroid" + var/turf_type = /turf/open/floor/plating/asteroid //Because caves do whacky shit to revert to normal + var/dug = 0 //0 = has not yet been dug, 1 = has already been dug + var/sand_type = /obj/item/weapon/ore/glass + var/floor_variance = 20 //probability floor has a different icon state + +/turf/open/floor/plating/asteroid/New() + var/proper_name = name + ..() + name = proper_name + if(prob(floor_variance)) + icon_state = "[environment_type][rand(0,12)]" + +/turf/open/floor/plating/asteroid/burn_tile() + return + +/turf/open/floor/plating/asteroid/ex_act(severity, target) + contents_explosion(severity, target) + switch(severity) + if(3) + return + if(2) + if(prob(20)) + src.gets_dug() + if(1) + src.gets_dug() + +/turf/open/floor/plating/asteroid/attackby(obj/item/weapon/W, mob/user, params) + //note that this proc does not call ..() + if(!W || !user) + return 0 + var/digging_speed = 0 + if (istype(W, /obj/item/weapon/shovel)) + var/obj/item/weapon/shovel/S = W + digging_speed = S.digspeed + else if (istype(W, /obj/item/weapon/pickaxe)) + var/obj/item/weapon/pickaxe/P = W + digging_speed = P.digspeed + if (digging_speed) + var/turf/T = user.loc + if(!isturf(T)) + return + + if (dug) + user << "This area has already been dug!" + return + + user << "You start digging..." + playsound(src, 'sound/effects/shovel_dig.ogg', 50, 1) + + if(do_after(user, digging_speed, target = src)) + if(istype(src, /turf/open/floor/plating/asteroid)) + user << "You dig a hole." + gets_dug() + feedback_add_details("pick_used_mining","[W.type]") + + if(istype(W,/obj/item/weapon/storage/bag/ore)) + var/obj/item/weapon/storage/bag/ore/S = W + if(S.collection_mode == 1) + for(var/obj/item/weapon/ore/O in src.contents) + O.attackby(W,user) + return + + if(istype(W, /obj/item/stack/tile)) + var/obj/item/stack/tile/Z = W + if(!Z.use(1)) + return + var/turf/open/floor/T = ChangeTurf(Z.turf_type) + if(istype(Z,/obj/item/stack/tile/light)) //TODO: get rid of this ugly check somehow + var/obj/item/stack/tile/light/L = Z + var/turf/open/floor/light/F = T + F.state = L.state + playsound(src, 'sound/weapons/Genhit.ogg', 50, 1) + +/turf/open/floor/plating/asteroid/proc/gets_dug() + if(dug) + return + for(var/i in 1 to 5) + new sand_type(src) + dug = 1 + icon_plating = "[environment_type]_dug" + icon_state = "[environment_type]_dug" + slowdown = 0 + return + +/turf/open/floor/plating/asteroid/singularity_act() + return + +/turf/open/floor/plating/asteroid/singularity_pull(S, current_size) + return + + +/turf/open/floor/plating/asteroid/basalt + name = "volcanic floor" + baseturf = /turf/open/floor/plating/asteroid/basalt + icon = 'icons/turf/floors.dmi' + icon_state = "basalt" + icon_plating = "basalt" + environment_type = "basalt" + sand_type = /obj/item/weapon/ore/glass/basalt + floor_variance = 15 + +/turf/open/floor/plating/asteroid/basalt/lava //lava underneath + baseturf = /turf/open/floor/plating/lava/smooth + +/turf/open/floor/plating/asteroid/basalt/airless + initial_gas_mix = "TEMP=2.7" + +/turf/open/floor/plating/asteroid/basalt/New() + ..() + switch(icon_state) + if("basalt1", "basalt2", "basalt3") //5 and 9 are too dark to glow and make the amount of glows in tunnels too high + SetLuminosity(1, 1) //this is basically a 3.75% chance that a basalt floor glows + +/turf/open/floor/plating/asteroid/basalt/gets_dug() + if(!dug) + SetLuminosity(0) + ..() + + +///////Surface. The surface is warm, but survivable without a suit. Internals are required. The floors break to chasms, which drop you into the underground. + +/turf/open/floor/plating/asteroid/basalt/lava_land_surface + initial_gas_mix = "o2=14;n2=23;TEMP=300" + planetary_atmos = TRUE + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + + + + +/turf/open/floor/plating/asteroid/airless + initial_gas_mix = "TEMP=2.7" + turf_type = /turf/open/floor/plating/asteroid/airless + + +#define SPAWN_MEGAFAUNA "bluh bluh huge boss" +#define SPAWN_BUBBLEGUM 6 + +/turf/open/floor/plating/asteroid/airless/cave + var/length = 100 + var/mob_spawn_list = list(/mob/living/simple_animal/hostile/asteroid/goldgrub = 1, /mob/living/simple_animal/hostile/asteroid/goliath = 5, /mob/living/simple_animal/hostile/asteroid/basilisk = 4, /mob/living/simple_animal/hostile/asteroid/hivelord = 3) + var/megafauna_spawn_list = list(/mob/living/simple_animal/hostile/megafauna/dragon = 4, /mob/living/simple_animal/hostile/megafauna/colossus = 2, \ + /mob/living/simple_animal/hostile/megafauna/bubblegum = SPAWN_BUBBLEGUM) + var/flora_spawn_list = list(/obj/structure/flora/ash/leaf_shroom = 2 , /obj/structure/flora/ash/cap_shroom = 2 , /obj/structure/flora/ash/stem_shroom = 2 , /obj/structure/flora/ash/cacti = 1, /obj/structure/flora/ash/tall_shroom = 2) + var/sanity = 1 + var/forward_cave_dir = 1 + var/backward_cave_dir = 2 + var/going_backwards = TRUE + var/has_data = FALSE + var/data_having_type = /turf/open/floor/plating/asteroid/airless/cave/has_data + turf_type = /turf/open/floor/plating/asteroid/airless + +/turf/open/floor/plating/asteroid/airless/cave/has_data //subtype for producing a tunnel with given data + has_data = TRUE + +/turf/open/floor/plating/asteroid/airless/cave/volcanic + mob_spawn_list = list(/mob/living/simple_animal/hostile/asteroid/goliath/beast = 50, /mob/living/simple_animal/hostile/spawner/lavaland/goliath = 3, \ + /mob/living/simple_animal/hostile/asteroid/basilisk/watcher = 40, /mob/living/simple_animal/hostile/spawner/lavaland = 2, \ + /mob/living/simple_animal/hostile/asteroid/hivelord/legion = 30, /mob/living/simple_animal/hostile/spawner/lavaland/legion = 3, \ + SPAWN_MEGAFAUNA = 6, /mob/living/simple_animal/hostile/asteroid/goldgrub = 10) + + data_having_type = /turf/open/floor/plating/asteroid/airless/cave/volcanic/has_data + turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + initial_gas_mix = "o2=14;n2=23;TEMP=300" + +/turf/open/floor/plating/asteroid/airless/cave/volcanic/has_data //subtype for producing a tunnel with given data + has_data = TRUE + +/turf/open/floor/plating/asteroid/airless/cave/New(loc) + if(!has_data) + produce_tunnel_from_data() + ..() + +/turf/open/floor/plating/asteroid/airless/cave/proc/get_cave_data(set_length, exclude_dir = -1) + // If set_length (arg1) isn't defined, get a random length; otherwise assign our length to the length arg. + if(!set_length) + length = rand(25, 50) + else + length = set_length + + // Get our directiosn + forward_cave_dir = pick(alldirs - exclude_dir) + // Get the opposite direction of our facing direction + backward_cave_dir = angle2dir(dir2angle(forward_cave_dir) + 180) + +/turf/open/floor/plating/asteroid/airless/cave/proc/produce_tunnel_from_data(tunnel_length, excluded_dir = -1) + get_cave_data(tunnel_length, excluded_dir) + // Make our tunnels + make_tunnel(forward_cave_dir) + if(going_backwards) + make_tunnel(backward_cave_dir) + // Kill ourselves by replacing ourselves with a normal floor. + SpawnFloor(src) + +/turf/open/floor/plating/asteroid/airless/cave/proc/make_tunnel(dir) + var/turf/closed/mineral/tunnel = src + var/next_angle = pick(45, -45) + + for(var/i = 0; i < length; i++) + if(!sanity) + break + + var/list/L = list(45) + if(IsOdd(dir2angle(dir))) // We're going at an angle and we want thick angled tunnels. + L += -45 + + // Expand the edges of our tunnel + for(var/edge_angle in L) + var/turf/closed/mineral/edge = get_step(tunnel, angle2dir(dir2angle(dir) + edge_angle)) + if(istype(edge)) + SpawnFloor(edge) + + if(!sanity) + break + + // Move our tunnel forward + tunnel = get_step(tunnel, dir) + + if(istype(tunnel)) + // Small chance to have forks in our tunnel; otherwise dig our tunnel. + if(i > 3 && prob(20)) + var/turf/open/floor/plating/asteroid/airless/cave/C = tunnel.ChangeTurf(data_having_type) + C.going_backwards = FALSE + C.produce_tunnel_from_data(rand(10, 15), dir) + else + SpawnFloor(tunnel) + else //if(!istype(tunnel, src.parent)) // We hit space/normal/wall, stop our tunnel. + break + + // Chance to change our direction left or right. + if(i > 2 && prob(33)) + // We can't go a full loop though + next_angle = -next_angle + setDir(angle2dir(dir2angle(dir) )+ next_angle) + + +/turf/open/floor/plating/asteroid/airless/cave/proc/SpawnFloor(turf/T) + for(var/S in RANGE_TURFS(1, src)) + var/turf/NT = S + if(!NT || isspaceturf(NT) || istype(NT.loc, /area/mine/explored) || istype(NT.loc, /area/lavaland/surface/outdoors/explored)) + sanity = 0 + break + if(!sanity) + return + SpawnFlora(T) + + SpawnMonster(T) + T.ChangeTurf(turf_type) + +/turf/open/floor/plating/asteroid/airless/cave/proc/SpawnMonster(turf/T) + if(prob(30)) + if(istype(loc, /area/mine/explored) || istype(loc, /area/lavaland/surface/outdoors/explored)) + return + var/randumb = pickweight(mob_spawn_list) + while(randumb == SPAWN_MEGAFAUNA) + var/maybe_boss = pickweight(megafauna_spawn_list) + if(megafauna_spawn_list[maybe_boss]) + randumb = maybe_boss + if(ispath(maybe_boss, /mob/living/simple_animal/hostile/megafauna/bubblegum)) //there can be only one bubblegum, so don't waste spawns on it + megafauna_spawn_list[maybe_boss] = 0 + + for(var/mob/living/simple_animal/hostile/H in urange(12,T)) //prevents mob clumps + if((ispath(randumb, /mob/living/simple_animal/hostile/megafauna) || ismegafauna(H)) && get_dist(src, H) <= 7) + return //if there's a megafauna within standard view don't spawn anything at all + if(ispath(randumb, /mob/living/simple_animal/hostile/asteroid) || istype(H, /mob/living/simple_animal/hostile/asteroid)) + return //if the random is a standard mob, avoid spawning if there's another one within 12 tiles + if((ispath(randumb, /mob/living/simple_animal/hostile/spawner/lavaland) || istype(H, /mob/living/simple_animal/hostile/spawner/lavaland)) && get_dist(src, H) <= 2) + return //prevents tendrils spawning in each other's collapse range + + new randumb(T) + return + +#undef SPAWN_MEGAFAUNA +#undef SPAWN_BUBBLEGUM + +/turf/open/floor/plating/asteroid/airless/cave/proc/SpawnFlora(turf/T) + if(prob(12)) + if(istype(loc, /area/mine/explored) || istype(loc, /area/lavaland/surface/outdoors/explored)) + return + var/randumb = pickweight(flora_spawn_list) + for(var/obj/structure/flora/ash/F in range(4, T)) //Allows for growing patches, but not ridiculous stacks of flora + if(!istype(F, randumb)) + return + new randumb(T) + + + +/turf/open/floor/plating/asteroid/snow + name = "snow" + desc = "Looks cold." + icon = 'icons/turf/snow.dmi' + baseturf = /turf/open/floor/plating/asteroid/snow + icon_state = "snow" + icon_plating = "snow" + initial_gas_mix = "TEMP=180" + slowdown = 2 + environment_type = "snow" + sand_type = /obj/item/stack/sheet/mineral/snow + +/turf/open/floor/plating/asteroid/snow/airless + initial_gas_mix = "TEMP=2.7" + +/turf/open/floor/plating/asteroid/snow/temperatre + initial_gas_mix = "TEMP=255.37" + +/turf/open/floor/plating/asteroid/snow/atmosphere + initial_gas_mix = "o2=22;n2=82;TEMP=180" + + + diff --git a/code/game/turfs/simulated/floor/plating/lava.dm b/code/game/turfs/simulated/floor/plating/lava.dm new file mode 100644 index 0000000..75b75c5 --- /dev/null +++ b/code/game/turfs/simulated/floor/plating/lava.dm @@ -0,0 +1,104 @@ +///LAVA + +/turf/open/floor/plating/lava + name = "lava" + icon_state = "lava" + baseturf = /turf/open/floor/plating/lava //lava all the way down + slowdown = 2 + luminosity = 1 + +/turf/open/floor/plating/lava/ex_act() + return + +/turf/open/floor/plating/lava/airless + initial_gas_mix = "TEMP=2.7" + +/turf/open/floor/plating/lava/Entered(atom/movable/AM) + if(burn_stuff(AM)) + START_PROCESSING(SSobj, src) + +/turf/open/floor/plating/lava/hitby(atom/movable/AM) + if(burn_stuff(AM)) + START_PROCESSING(SSobj, src) + +/turf/open/floor/plating/lava/process() + if(!burn_stuff()) + STOP_PROCESSING(SSobj, src) + +/turf/open/floor/plating/lava/make_plating() + return + +/turf/open/floor/plating/lava/GetHeatCapacity() + . = 700000 + +/turf/open/floor/plating/lava/GetTemperature() + . = 5000 + +/turf/open/floor/plating/lava/TakeTemperature(temp) + +/turf/open/floor/plating/lava/proc/burn_stuff(AM) + . = 0 + var/thing_to_check = src + if (AM) + thing_to_check = list(AM) + for(var/thing in thing_to_check) + if(isobj(thing)) + var/obj/O = thing + if((O.resistance_flags & (LAVA_PROOF|ON_FIRE|INDESTRUCTIBLE)) || O.throwing) + continue + . = 1 + if(!(O.resistance_flags & FLAMMABLE)) + O.resistance_flags |= FLAMMABLE //Even fireproof things burn up in lava + if(O.resistance_flags & FIRE_PROOF) + O.resistance_flags &= ~FIRE_PROOF + if(O.armor["fire"] > 50) //obj with 100% fire armor still get slowly burned away. + O.armor["fire"] = 50 + O.fire_act(10000, 1000) + + + else if (isliving(thing)) + . = 1 + var/mob/living/L = thing + if("lava" in L.weather_immunities) + continue + if(L.buckled) + if(isobj(L.buckled)) + var/obj/O = L.buckled + if(O.resistance_flags & LAVA_PROOF) + continue + if(isliving(L.buckled)) //Goliath riding + var/mob/living/live = L.buckled + if("lava" in live.weather_immunities) + continue + + L.adjustFireLoss(20) + if(L) //mobs turning into object corpses could get deleted here. + L.adjust_fire_stacks(20) + L.IgniteMob() + + +/turf/open/floor/plating/lava/attackby(obj/item/C, mob/user, params) //Lava isn't a good foundation to build on + return + +/turf/open/floor/plating/lava/break_tile() + return + +/turf/open/floor/plating/lava/burn_tile() + return + +/turf/open/floor/plating/lava/smooth + name = "lava" + baseturf = /turf/open/floor/plating/lava/smooth + icon = 'icons/turf/floors/lava.dmi' + icon_state = "unsmooth" + smooth = SMOOTH_MORE | SMOOTH_BORDER + canSmoothWith = list(/turf/open/floor/plating/lava/smooth) + + +/turf/open/floor/plating/lava/smooth/lava_land_surface + initial_gas_mix = "o2=14;n2=23;TEMP=300" + planetary_atmos = TRUE + baseturf = /turf/open/chasm/straight_down/lava_land_surface + +/turf/open/floor/plating/lava/smooth/airless + initial_gas_mix = "TEMP=2.7" diff --git a/code/game/turfs/simulated/floor/plating/misc_plating.dm b/code/game/turfs/simulated/floor/plating/misc_plating.dm new file mode 100644 index 0000000..730cc7b --- /dev/null +++ b/code/game/turfs/simulated/floor/plating/misc_plating.dm @@ -0,0 +1,160 @@ + +/turf/open/floor/plating/airless + icon_state = "plating" + initial_gas_mix = "TEMP=2.7" + +/turf/open/floor/plating/abductor + name = "alien floor" + icon_state = "alienpod1" + +/turf/open/floor/plating/abductor/New() + ..() + icon_state = "alienpod[rand(1,9)]" + + +/turf/open/floor/plating/abductor2 + name = "alien plating" + icon_state = "alienplating" + +/turf/open/floor/plating/abductor2/break_tile() + return //unbreakable + +/turf/open/floor/plating/abductor2/burn_tile() + return //unburnable + + +/turf/open/floor/plating/astplate + icon_state = "asteroidplating" + +/turf/open/floor/plating/airless/astplate + icon_state = "asteroidplating" + + +/turf/open/floor/plating/ashplanet + icon = 'icons/turf/mining.dmi' + name = "ash" + icon_state = "ash" + smooth = SMOOTH_MORE|SMOOTH_BORDER + var/smooth_icon = 'icons/turf/floors/ash.dmi' + desc = "The ground is covered in volcanic ash." + baseturf = /turf/open/floor/plating/ashplanet/wateryrock //I assume this will be a chasm eventually, once this becomes an actual surface + initial_gas_mix = "o2=14;n2=23;TEMP=300" + planetary_atmos = TRUE + +/turf/open/floor/plating/ashplanet/New() + if(smooth) + pixel_y = -4 + pixel_x = -4 + icon = smooth_icon + ..() + +/turf/open/floor/plating/ashplanet/break_tile() + return + +/turf/open/floor/plating/ashplanet/burn_tile() + return + +/turf/open/floor/plating/ashplanet/ash + canSmoothWith = list(/turf/open/floor/plating/ashplanet/ash, /turf/closed) + layer = HIGH_TURF_LAYER + slowdown = 1 + +/turf/open/floor/plating/ashplanet/rocky + name = "rocky ground" + icon_state = "rockyash" + smooth_icon = 'icons/turf/floors/rocky_ash.dmi' + layer = MID_TURF_LAYER + canSmoothWith = list(/turf/open/floor/plating/ashplanet/rocky, /turf/closed) + +/turf/open/floor/plating/ashplanet/wateryrock + name = "wet rocky ground" + smooth = null + icon_state = "wateryrock" + slowdown = 2 + +/turf/open/floor/plating/ashplanet/wateryrock/New() + icon_state = "[icon_state][rand(1, 9)]" + ..() + + +/turf/open/floor/plating/beach + name = "beach" + icon = 'icons/misc/beach.dmi' + flags = NONE + +/turf/open/floor/plating/beach/ex_act(severity, target) + contents_explosion(severity, target) + +/turf/open/floor/plating/beach/sand + name = "sand" + desc = "Surf's up." + icon_state = "sand" + baseturf = /turf/open/floor/plating/beach/sand + +/turf/open/floor/plating/beach/coastline_t + name = "coastline" + desc = "Tide's high tonight. Charge your batons." + icon_state = "sandwater_t" + baseturf = /turf/open/floor/plating/beach/coastline_t + +/turf/open/floor/plating/beach/coastline_b + name = "coastline" + icon_state = "sandwater_b" + baseturf = /turf/open/floor/plating/beach/coastline_b + +/turf/open/floor/plating/beach/water + name = "water" + desc = "You get the feeling that nobody's bothered to actually make this water functional..." + icon_state = "water" + baseturf = /turf/open/floor/plating/beach/water + + +/turf/open/floor/plating/ironsand + name = "iron sand" + desc = "Like sand, but more metal." + +/turf/open/floor/plating/ironsand/New() + ..() + icon_state = "ironsand[rand(1,15)]" + +/turf/open/floor/plating/ironsand/burn_tile() + return + + +/turf/open/floor/plating/ice + name = "ice sheet" + desc = "A sheet of solid ice. Looks slippery." + icon = 'icons/turf/snow.dmi' + icon_state = "ice" + temperature = 180 + baseturf = /turf/open/floor/plating/ice + slowdown = 1 + wet = TURF_WET_PERMAFROST + +/turf/open/floor/plating/ice/colder + temperature = 140 + +/turf/open/floor/plating/ice/temperate + temperature = 255.37 + +/turf/open/floor/plating/ice/break_tile() + return + +/turf/open/floor/plating/ice/burn_tile() + return + + +/turf/open/floor/plating/snowed + name = "snowed-over plating" + desc = "A section of plating covered in a light layer of snow." + icon = 'icons/turf/snow.dmi' + icon_state = "snowplating" + temperature = 180 + +/turf/open/floor/plating/snowed/colder + temperature = 140 + +/turf/open/floor/plating/snowed/temperatre + temperature = 255.37 + + diff --git a/code/game/turfs/simulated/floor/reinf_floor.dm b/code/game/turfs/simulated/floor/reinf_floor.dm new file mode 100644 index 0000000..4a0ef4b --- /dev/null +++ b/code/game/turfs/simulated/floor/reinf_floor.dm @@ -0,0 +1,156 @@ + +/turf/open/floor/engine + name = "reinforced floor" + icon_state = "engine" + thermal_conductivity = 0.025 + heat_capacity = INFINITY + floor_tile = /obj/item/stack/rods + +/turf/open/floor/engine/airless + initial_gas_mix = "TEMP=2.7" + +/turf/open/floor/engine/break_tile() + return //unbreakable + +/turf/open/floor/engine/burn_tile() + return //unburnable + +/turf/open/floor/engine/make_plating(force = 0) + if(force) + ..() + return //unplateable + +/turf/open/floor/engine/attackby(obj/item/weapon/C, mob/user, params) + if(!C || !user) + return + if(istype(C, /obj/item/weapon/wrench)) + user << "You begin removing rods..." + playsound(src, 'sound/items/Ratchet.ogg', 80, 1) + if(do_after(user, 30/C.toolspeed, target = src)) + if(!istype(src, /turf/open/floor/engine)) + return + new /obj/item/stack/rods(src, 2) + ChangeTurf(/turf/open/floor/plating) + return + +/turf/open/floor/engine/acid_act(acidpwr, acid_volume) + acidpwr = min(acidpwr, 50) //we reduce the power so reinf floor never get melted. + . = ..() + +/turf/open/floor/engine/ex_act(severity, target) + contents_explosion(severity, target) + switch(severity) + if(1) + ChangeTurf(src.baseturf) + if(2) + if(prob(50)) + ChangeTurf(src.baseturf) + else + return + +/turf/open/floor/engine/ex_act(severity,target) + var/shielded = is_shielded() + contents_explosion(severity, target) + if(severity != 1 && shielded && target != src) + return + if(target == src) + src.ChangeTurf(src.baseturf) + return + switch(severity) + if(1) + if(prob(80)) + ReplaceWithLattice() + else if(prob(50)) + ChangeTurf(src.baseturf) + else + make_plating(1) + if(2) + if(prob(50)) + make_plating(1) + +/turf/open/floor/engine/singularity_pull(S, current_size) + if(current_size >= STAGE_FIVE) + if(floor_tile) + if(prob(30)) + PoolOrNew(floor_tile, src) + make_plating() + else if(prob(30)) + ReplaceWithLattice() + +/turf/open/floor/engine/attack_paw(mob/user) + return src.attack_hand(user) + +/turf/open/floor/engine/attack_hand(mob/user) + user.Move_Pulled(src) + + +//air filled floors; used in atmos pressure chambers + +/turf/open/floor/engine/n2o + name = "n2o floor" + initial_gas_mix = "n2o=6000;TEMP=293.15" + +/turf/open/floor/engine/co2 + name = "co2 floor" + initial_gas_mix = "co2=50000;TEMP=293.15" + +/turf/open/floor/engine/plasma + name = "plasma floor" + initial_gas_mix = "plasma=70000;TEMP=293.15" + +/turf/open/floor/engine/o2 + name = "o2 floor" + initial_gas_mix = "o2=100000;TEMP=293.15" + +/turf/open/floor/engine/n2 + name = "n2 floor" + initial_gas_mix = "n2=100000;TEMP=293.15" + +/turf/open/floor/engine/air + name = "air floor" + initial_gas_mix = "o2=2644;n2=10580;TEMP=293.15" + + + +/turf/open/floor/engine/cult + name = "engraved floor" + icon_state = "plating" + var/obj/effect/clockwork/overlay/floor/bloodcult/realappearence + +/turf/open/floor/engine/cult/New() + ..() + PoolOrNew(/obj/effect/overlay/temp/cult/turf/floor, src) + realappearence = PoolOrNew(/obj/effect/clockwork/overlay/floor/bloodcult, src) + realappearence.linked = src + +/turf/open/floor/engine/cult/Destroy() + be_removed() + return ..() + +/turf/open/floor/engine/cult/ChangeTurf(path, defer_change = FALSE) + if(path != type) + be_removed() + return ..() + +/turf/open/floor/engine/cult/proc/be_removed() + qdel(realappearence) + realappearence = null + +/turf/open/floor/engine/cult/narsie_act() + return + +/turf/open/floor/engine/cult/ratvar_act() + ..() + if(istype(src, /turf/open/floor/engine/cult)) //if we haven't changed type + var/previouscolor = color + color = "#FAE48C" + animate(src, color = previouscolor, time = 8) + addtimer(src, "update_atom_colour", 8) + +/turf/open/floor/engine/cult/airless + initial_gas_mix = "TEMP=2.7" + + +/turf/open/floor/engine/vacuum + name = "vacuum floor" + initial_gas_mix = "TEMP=2.7" diff --git a/code/game/turfs/simulated/floor/warning.dm b/code/game/turfs/simulated/floor/warning.dm new file mode 100644 index 0000000..bc8e5c5 --- /dev/null +++ b/code/game/turfs/simulated/floor/warning.dm @@ -0,0 +1,115 @@ +//ASTEROID FLOORS +/turf/open/floor/plasteel/asteroid/warning + icon_state = "asteroid_warn" +/turf/open/floor/plasteel/asteroid/warning/side + icon_state = "asteroid_warn_side" +/turf/open/floor/plasteel/asteroid/warning/corner + icon_state = "asteroid_warn_corner" +/turf/open/floor/plasteel/asteroid/warning/end + icon_state = "asteroid_warn_end" + +/turf/open/floor/plasteel/airless/asteroid/warning + icon_state = "asteroid_warn" +/turf/open/floor/plasteel/airless/asteroid/warning/side + icon_state = "asteroid_warn_side" +/turf/open/floor/plasteel/airless/asteroid/warning/corner + icon_state = "asteroid_warn_corner" +/turf/open/floor/plasteel/airless/asteroid/warning/end + icon_state = "asteroid_warn_end" + +/turf/open/floor/plating/astplate/warning + icon_state = "astplate_warn" +/turf/open/floor/plating/astplate/warning/corner + icon_state = "astplate_warn_corner" +/turf/open/floor/plating/astplate/warning/side + icon_state = "astplate_warn_side" +/turf/open/floor/plating/astplate/warning/end + icon_state = "astplate_warn_end" + +/turf/open/floor/plating/airless/astplate/warning + icon_state = "astplate_warn" +/turf/open/floor/plating/airless/astplate/warning/corner + icon_state = "astplate_warn_corner" +/turf/open/floor/plating/airless/astplate/warning/side + icon_state = "astplate_warn_side" +/turf/open/floor/plating/airless/astplate/warning/end + icon_state = "astplate_warn_end" + + +//PLASTEEL +/turf/open/floor/plasteel/warning + icon_state = "plasteel_warn" +/turf/open/floor/plasteel/warning/corner + icon_state = "plasteel_warn_corner" +/turf/open/floor/plasteel/warning/side + icon_state = "plasteel_warn_side" +/turf/open/floor/plasteel/warning/end + icon_state = "plasteel_warn_end" + +/turf/open/floor/plasteel/airless/warning + icon_state = "plasteel_warn" +/turf/open/floor/plasteel/airless/warning/corner + icon_state = "plasteel_warn_corner" +/turf/open/floor/plasteel/airless/warning/side + icon_state = "plasteel_warn_side" +/turf/open/floor/plasteel/airless/warning/end + icon_state = "plasteel_warn_end" + +//PLASTEEL WHITE +/turf/open/floor/plasteel/warnwhite + icon_state = "white_warn" +/turf/open/floor/plasteel/warnwhite/corner + icon_state = "white_warn_corner" +/turf/open/floor/plasteel/warnwhite/side + icon_state = "white_warn_side" +/turf/open/floor/plasteel/warnwhite/end + icon_state = "white_warn_end" + +/turf/open/floor/plasteel/airless/warnwhite + icon_state = "white_warn" +/turf/open/floor/plasteel/airless/warnwhite/corner + icon_state = "white_warn_corner" +/turf/open/floor/plasteel/airless/warnwhite/side + icon_state = "white_warn_side" +/turf/open/floor/plasteel/airless/warnwhite/end + icon_state = "white_warn_end" + + +//PLASTEEL BLACK +/turf/open/floor/plasteel/darkwarning + icon_state = "black_warn" +/turf/open/floor/plasteel/darkwarning/corner + icon_state = "black_warn_corner" +/turf/open/floor/plasteel/darkwarning/side + icon_state = "black_warn_side" +/turf/open/floor/plasteel/darkwarning/end + icon_state = "black_warn_end" + +/turf/open/floor/plasteel/airless/darkwarning + icon_state = "black_warn" +/turf/open/floor/plasteel/airless/darkwarning/corner + icon_state = "black_warn_corner" +/turf/open/floor/plasteel/airless/darkwarning/side + icon_state = "black_warn_side" +/turf/open/floor/plasteel/airless/darkwarning/end + icon_state = "black_warn_end" + + +//PLATING +/turf/open/floor/plating/warnplate + icon_state = "plating_warn" +/turf/open/floor/plating/warnplate/corner + icon_state = "plating_warn_corner" +/turf/open/floor/plating/warnplate/side + icon_state = "plating_warn_side" +/turf/open/floor/plating/warnplate/end + icon_state = "plating_warn_end" + +/turf/open/floor/plating/airless/warnplate + icon_state = "plating_warn" +/turf/open/floor/plating/airless/warnplate/corner + icon_state = "plating_warn_corner" +/turf/open/floor/plating/airless/warnplate/side + icon_state = "plating_warn_side" +/turf/open/floor/plating/airless/warnplate/end + icon_state = "plating_warn_end" diff --git a/code/game/turfs/simulated/minerals.dm b/code/game/turfs/simulated/minerals.dm new file mode 100644 index 0000000..22e87cb --- /dev/null +++ b/code/game/turfs/simulated/minerals.dm @@ -0,0 +1,478 @@ +/**********************Mineral deposits**************************/ + +/turf/closed/mineral //wall piece + name = "rock" + icon = 'icons/turf/mining.dmi' + icon_state = "rock" + var/smooth_icon = 'icons/turf/smoothrocks.dmi' + smooth = SMOOTH_MORE|SMOOTH_BORDER + canSmoothWith = list (/turf/closed) + baseturf = /turf/open/floor/plating/asteroid/airless + initial_gas_mix = "TEMP=2.7" + opacity = 1 + density = 1 + blocks_air = 1 + layer = EDGED_TURF_LAYER + temperature = TCMB + var/environment_type = "asteroid" + var/turf/open/floor/plating/turf_type = /turf/open/floor/plating/asteroid/airless + var/mineralType = null + var/mineralAmt = 3 + var/spread = 0 //will the seam spread? + var/spreadChance = 0 //the percentual chance of an ore spreading to the neighbouring tiles + var/last_act = 0 + var/scan_state = null //Holder for the image we display when we're pinged by a mining scanner + var/defer_change = 0 + +/turf/closed/mineral/New() + pixel_y = -4 + pixel_x = -4 + icon = smooth_icon + ..() + if (mineralType && mineralAmt && spread && spreadChance) + for(var/dir in cardinal) + if(prob(spreadChance)) + var/turf/T = get_step(src, dir) + if(istype(T, /turf/closed/mineral/random)) + Spread(T) + + + +/turf/closed/mineral/attackby(obj/item/weapon/pickaxe/P, mob/user, params) + + if (!user.IsAdvancedToolUser()) + usr << "You don't have the dexterity to do this!" + return + + if (istype(P, /obj/item/weapon/pickaxe)) + var/turf/T = user.loc + if (!isturf(T)) + return + + if(last_act+P.digspeed > world.time)//prevents message spam + return + last_act = world.time + user << "You start picking..." + P.playDigSound() + + if(do_after(user,P.digspeed, target = src)) + if(ismineralturf(src)) + user << "You finish cutting into the rock." + gets_drilled(user) + feedback_add_details("pick_used_mining","[P.type]") + else + return attack_hand(user) + return + +/turf/closed/mineral/proc/gets_drilled() + if (mineralType && (src.mineralAmt > 0) && (src.mineralAmt < 11)) + var/i + for (i=0;i= 2) + gets_drilled() + ..() + +/turf/closed/mineral/attack_alien(mob/living/carbon/alien/M) + M << "You start digging into the rock..." + playsound(src, 'sound/effects/break_stone.ogg', 50, 1) + if(do_after(M,40, target = src)) + M << "You tunnel into the rock." + gets_drilled(M) + +/turf/closed/mineral/Bumped(AM as mob|obj) + ..() + if(ishuman(AM)) + var/mob/living/carbon/human/H = AM + var/obj/item/I = H.is_holding_item_of_type(/obj/item/weapon/pickaxe) + if(I) + attackby(I,H) + return + else if(iscyborg(AM)) + var/mob/living/silicon/robot/R = AM + if(istype(R.module_active,/obj/item/weapon/pickaxe)) + src.attackby(R.module_active,R) + return +/* else if(istype(AM,/obj/mecha)) + var/obj/mecha/M = AM + if(istype(M.selected,/obj/item/mecha_parts/mecha_equipment/drill)) + src.attackby(M.selected,M) + return*/ +//Aparantly mechs are just TOO COOL to call Bump(), so fuck em (for now) + else + return + +/turf/closed/mineral/acid_melt() + ChangeTurf(baseturf) + +/turf/closed/mineral/ex_act(severity, target) + ..() + switch(severity) + if(3) + if (prob(75)) + src.gets_drilled(null, 1) + if(2) + if (prob(90)) + src.gets_drilled(null, 1) + if(1) + src.gets_drilled(null, 1) + return + +/turf/closed/mineral/Spread(turf/T) + T.ChangeTurf(type) + +/turf/closed/mineral/random + var/mineralSpawnChanceList = list( + /turf/closed/mineral/uranium = 5, /turf/closed/mineral/diamond = 1, /turf/closed/mineral/gold = 10, + /turf/closed/mineral/silver = 12, /turf/closed/mineral/plasma = 20, /turf/closed/mineral/iron = 40, /turf/closed/mineral/titanium = 11, + /turf/closed/mineral/gibtonite = 4, /turf/open/floor/plating/asteroid/airless/cave = 2, /turf/closed/mineral/bscrystal = 1) + //Currently, Adamantine won't spawn as it has no uses. -Durandan + var/mineralChance = 13 + +/turf/closed/mineral/random/New() + ..() + + if (prob(mineralChance)) + var/path = pickweight(mineralSpawnChanceList) + var/turf/T = ChangeTurf(path) + + if(T && ismineralturf(T)) + var/turf/closed/mineral/M = T + M.mineralAmt = rand(1, 5) + M.environment_type = src.environment_type + M.turf_type = src.turf_type + M.baseturf = src.baseturf + src = M + M.levelupdate() + + +/turf/closed/mineral/random/high_chance + icon_state = "rock_highchance" + mineralChance = 25 + mineralSpawnChanceList = list( + /turf/closed/mineral/uranium = 35, /turf/closed/mineral/diamond = 30, /turf/closed/mineral/gold = 45, /turf/closed/mineral/titanium = 45, + /turf/closed/mineral/silver = 50, /turf/closed/mineral/plasma = 50, /turf/closed/mineral/bscrystal = 20) + +/turf/closed/mineral/random/high_chance/New() + icon_state = "rock" + ..() + +/turf/closed/mineral/random/high_chance/volcanic + environment_type = "basalt" + turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + initial_gas_mix = "o2=14;n2=23;TEMP=300" + defer_change = 1 + mineralSpawnChanceList = list( + /turf/closed/mineral/uranium/volcanic = 35, /turf/closed/mineral/diamond/volcanic = 30, /turf/closed/mineral/gold/volcanic = 45, /turf/closed/mineral/titanium/volcanic = 45, + /turf/closed/mineral/silver/volcanic = 50, /turf/closed/mineral/plasma/volcanic = 50, /turf/closed/mineral/bscrystal/volcanic = 20) + + + +/turf/closed/mineral/random/low_chance + icon_state = "rock_lowchance" + mineralChance = 6 + mineralSpawnChanceList = list( + /turf/closed/mineral/uranium = 2, /turf/closed/mineral/diamond = 1, /turf/closed/mineral/gold = 4, /turf/closed/mineral/titanium = 4, + /turf/closed/mineral/silver = 6, /turf/closed/mineral/plasma = 15, /turf/closed/mineral/iron = 40, + /turf/closed/mineral/gibtonite = 2, /turf/closed/mineral/bscrystal = 1) + +/turf/closed/mineral/random/low_chance/New() + icon_state = "rock" + ..() + + +/turf/closed/mineral/random/volcanic + environment_type = "basalt" + turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + initial_gas_mix = "o2=14;n2=23;TEMP=300" + defer_change = 1 + + mineralChance = 10 + mineralSpawnChanceList = list( + /turf/closed/mineral/uranium/volcanic = 5, /turf/closed/mineral/diamond/volcanic = 1, /turf/closed/mineral/gold/volcanic = 10, /turf/closed/mineral/titanium/volcanic = 11, + /turf/closed/mineral/silver/volcanic = 12, /turf/closed/mineral/plasma/volcanic = 20, /turf/closed/mineral/iron/volcanic = 40, + /turf/closed/mineral/gibtonite/volcanic = 4, /turf/open/floor/plating/asteroid/airless/cave/volcanic = 1, /turf/closed/mineral/bscrystal/volcanic = 1) + +/turf/closed/mineral/random/labormineral + mineralSpawnChanceList = list( + /turf/closed/mineral/iron = 100, /turf/closed/mineral/uranium = 1, /turf/closed/mineral/diamond = 1, + /turf/closed/mineral/gold = 1, /turf/closed/mineral/silver = 1, /turf/closed/mineral/plasma = 1) + icon_state = "rock_labor" + +/turf/closed/mineral/random/labormineral/New() + icon_state = "rock" + ..() + +/turf/closed/mineral/random/labormineral/volcanic + environment_type = "basalt" + turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + initial_gas_mix = "o2=14;n2=23;TEMP=300" + defer_change = 1 + mineralSpawnChanceList = list( + /turf/closed/mineral/iron/volcanic = 100, /turf/closed/mineral/uranium/volcanic = 1, /turf/closed/mineral/diamond/volcanic = 1, + /turf/closed/mineral/gold/volcanic = 1, /turf/closed/mineral/silver/volcanic = 1, /turf/closed/mineral/plasma/volcanic = 1) + + + + +/turf/closed/mineral/iron + mineralType = /obj/item/weapon/ore/iron + spreadChance = 20 + spread = 1 + scan_state = "rock_Iron" + +/turf/closed/mineral/iron/volcanic + environment_type = "basalt" + turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + initial_gas_mix = "o2=14;n2=23;TEMP=300" + defer_change = 1 + + +/turf/closed/mineral/uranium + mineralType = /obj/item/weapon/ore/uranium + spreadChance = 5 + spread = 1 + scan_state = "rock_Uranium" + +/turf/closed/mineral/uranium/volcanic + environment_type = "basalt" + turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + initial_gas_mix = "o2=14;n2=23;TEMP=300" + defer_change = 1 + + +/turf/closed/mineral/diamond + mineralType = /obj/item/weapon/ore/diamond + spreadChance = 0 + spread = 1 + scan_state = "rock_Diamond" + +/turf/closed/mineral/diamond/volcanic + environment_type = "basalt" + turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + initial_gas_mix = "o2=14;n2=23;TEMP=300" + defer_change = 1 + + +/turf/closed/mineral/gold + mineralType = /obj/item/weapon/ore/gold + spreadChance = 5 + spread = 1 + scan_state = "rock_Gold" + +/turf/closed/mineral/gold/volcanic + environment_type = "basalt" + turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + initial_gas_mix = "o2=14;n2=23;TEMP=300" + defer_change = 1 + + +/turf/closed/mineral/silver + mineralType = /obj/item/weapon/ore/silver + spreadChance = 5 + spread = 1 + scan_state = "rock_Silver" + +/turf/closed/mineral/silver/volcanic + environment_type = "basalt" + turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + initial_gas_mix = "o2=14;n2=23;TEMP=300" + defer_change = 1 + + +/turf/closed/mineral/titanium + mineralType = /obj/item/weapon/ore/titanium + spreadChance = 5 + spread = 1 + scan_state = "rock_Titanium" + +/turf/closed/mineral/titanium/volcanic + environment_type = "basalt" + turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + initial_gas_mix = "o2=14;n2=23;TEMP=300" + defer_change = 1 + + +/turf/closed/mineral/plasma + mineralType = /obj/item/weapon/ore/plasma + spreadChance = 8 + spread = 1 + scan_state = "rock_Plasma" + +/turf/closed/mineral/plasma/volcanic + environment_type = "basalt" + turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + initial_gas_mix = "o2=14;n2=23;TEMP=300" + defer_change = 1 + + +/turf/closed/mineral/clown + mineralType = /obj/item/weapon/ore/bananium + mineralAmt = 3 + spreadChance = 0 + spread = 0 + scan_state = "rock_Clown" + + +/turf/closed/mineral/bscrystal + mineralType = /obj/item/weapon/ore/bluespace_crystal + mineralAmt = 1 + spreadChance = 0 + spread = 0 + scan_state = "rock_BScrystal" + +/turf/closed/mineral/bscrystal/volcanic + environment_type = "basalt" + turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + initial_gas_mix = "o2=14;n2=23;TEMP=300" + defer_change = 1 + + +/turf/closed/mineral/volcanic + environment_type = "basalt" + turf_type = /turf/open/floor/plating/asteroid/basalt + baseturf = /turf/open/floor/plating/asteroid/basalt + initial_gas_mix = "o2=14;n2=23;TEMP=300" + +/turf/closed/mineral/volcanic/lava_land_surface + environment_type = "basalt" + turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + defer_change = 1 + +/turf/closed/mineral/ash_rock //wall piece + name = "rock" + icon = 'icons/turf/mining.dmi' + smooth_icon = 'icons/turf/walls/rock_wall.dmi' + icon_state = "rock2" + smooth = SMOOTH_MORE|SMOOTH_BORDER + canSmoothWith = list (/turf/closed) + baseturf = /turf/open/floor/plating/ashplanet/wateryrock + initial_gas_mix = "o2=14;n2=23;TEMP=300" + environment_type = "waste" + turf_type = /turf/open/floor/plating/ashplanet/rocky + defer_change = 1 + + +//GIBTONITE + +/turf/closed/mineral/gibtonite + mineralAmt = 1 + spreadChance = 0 + spread = 0 + 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 = 0 //How far into the lifecycle of gibtonite we are, 0 is untouched, 1 is active and attempting to detonate, 2 is benign and ready for extraction + var/activated_ckey = null //These are to track who triggered the gibtonite deposit for logging purposes + var/activated_name = null + var/activated_image = null + +/turf/closed/mineral/gibtonite/New() + det_time = rand(8,10) //So you don't know exactly when the hot potato will explode + ..() + +/turf/closed/mineral/gibtonite/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/device/mining_scanner) || istype(I, /obj/item/device/t_scanner/adv_mining_scanner) && stage == 1) + user.visible_message("[user] holds [I] to [src]...", "You use [I] to locate where to cut off the chain reaction and attempt to stop it...") + defuse() + ..() + +/turf/closed/mineral/gibtonite/proc/explosive_reaction(mob/user = null, triggered_by_explosion = 0) + if(stage == 0) + var/image/I = image('icons/turf/smoothrocks.dmi', loc = src, icon_state = "rock_Gibtonite_active", layer = ON_EDGED_TURF_LAYER) + add_overlay(I) + activated_image = I + name = "gibtonite deposit" + desc = "An active gibtonite reserve. Run!" + stage = 1 + visible_message("There was gibtonite inside! It's going to explode!") + var/turf/bombturf = get_turf(src) + var/area/A = get_area(bombturf) + + var/notify_admins = 0 + if(z != 5) + notify_admins = 1 + if(!triggered_by_explosion) + message_admins("[key_name_admin(user)]? (FLW) has triggered a gibtonite deposit reaction at [A.name] (JMP).") + else + message_admins("An explosion has triggered a gibtonite deposit reaction at [A.name] (JMP).") + + if(!triggered_by_explosion) + log_game("[key_name(user)] has triggered a gibtonite deposit reaction at [A.name] ([A.x], [A.y], [A.z]).") + else + log_game("An explosion has triggered a gibtonite deposit reaction at [A.name]([bombturf.x],[bombturf.y],[bombturf.z])") + + countdown(notify_admins) + +/turf/closed/mineral/gibtonite/proc/countdown(notify_admins = 0) + set waitfor = 0 + while(istype(src, /turf/closed/mineral/gibtonite) && stage == 1 && det_time > 0 && mineralAmt >= 1) + det_time-- + sleep(5) + if(istype(src, /turf/closed/mineral/gibtonite)) + if(stage == 1 && det_time <= 0 && mineralAmt >= 1) + var/turf/bombturf = get_turf(src) + mineralAmt = 0 + stage = 3 + explosion(bombturf,1,3,5, adminlog = notify_admins) + +/turf/closed/mineral/gibtonite/proc/defuse() + if(stage == 1) + overlays -= activated_image + var/image/I = image('icons/turf/smoothrocks.dmi', loc = src, icon_state = "rock_Gibtonite_inactive", layer = ON_EDGED_TURF_LAYER) + add_overlay(I) + desc = "An inactive gibtonite reserve. The ore can be extracted." + stage = 2 + if(det_time < 0) + det_time = 0 + visible_message("The chain reaction was stopped! The gibtonite had [src.det_time] reactions left till the explosion!") + +/turf/closed/mineral/gibtonite/gets_drilled(mob/user, triggered_by_explosion = 0) + if(stage == 0 && mineralAmt >= 1) //Gibtonite deposit is activated + playsound(src,'sound/effects/hit_on_shattered_glass.ogg',50,1) + explosive_reaction(user, triggered_by_explosion) + return + if(stage == 1 && mineralAmt >= 1) //Gibtonite deposit goes kaboom + var/turf/bombturf = get_turf(src) + mineralAmt = 0 + stage = 3 + explosion(bombturf,1,2,5, adminlog = 0) + if(stage == 2) //Gibtonite deposit is now benign and extractable. Depending on how close you were to it blowing up before defusing, you get better quality ore. + var/obj/item/weapon/twohanded/required/gibtonite/G = new /obj/item/weapon/twohanded/required/gibtonite/(src) + if(det_time <= 0) + G.quality = 3 + G.icon_state = "Gibtonite ore 3" + if(det_time >= 1 && det_time <= 2) + G.quality = 2 + G.icon_state = "Gibtonite ore 2" + + ChangeTurf(turf_type, defer_change) + spawn(10) + AfterChange() + + +/turf/closed/mineral/gibtonite/volcanic + environment_type = "basalt" + turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + initial_gas_mix = "o2=14;n2=23;TEMP=300" + defer_change = 1 diff --git a/code/game/turfs/simulated/river.dm b/code/game/turfs/simulated/river.dm new file mode 100644 index 0000000..d5659cc --- /dev/null +++ b/code/game/turfs/simulated/river.dm @@ -0,0 +1,104 @@ +#define RANDOM_UPPER_X 200 +#define RANDOM_UPPER_Y 200 + +#define RANDOM_LOWER_X 50 +#define RANDOM_LOWER_Y 50 + +/proc/spawn_rivers(target_z = 5, nodes = 4, turf_type = /turf/open/floor/plating/lava/smooth/lava_land_surface, whitelist_area = /area/lavaland/surface/outdoors, min_x = RANDOM_LOWER_X, min_y = RANDOM_LOWER_Y, max_x = RANDOM_UPPER_X, max_y = RANDOM_UPPER_Y) + var/list/river_nodes = list() + var/num_spawned = 0 + while(num_spawned < nodes) + var/turf/F = locate(rand(min_x, max_x), rand(min_y, max_y), target_z) + + river_nodes += new /obj/effect/landmark/river_waypoint(F) + num_spawned++ + + //make some randomly pathing rivers + for(var/A in river_nodes) + var/obj/effect/landmark/river_waypoint/W = A + if (W.z != target_z || W.connected) + continue + W.connected = 1 + var/turf/cur_turf = get_turf(W) + cur_turf.ChangeTurf(turf_type) + var/turf/target_turf = get_turf(pick(river_nodes - W)) + if(!target_turf) + break + var/detouring = 0 + var/cur_dir = get_dir(cur_turf, target_turf) + while(cur_turf != target_turf) + + if(detouring) //randomly snake around a bit + if(prob(20)) + detouring = 0 + cur_dir = get_dir(cur_turf, target_turf) + else if(prob(20)) + detouring = 1 + if(prob(50)) + cur_dir = turn(cur_dir, 45) + else + cur_dir = turn(cur_dir, -45) + else + cur_dir = get_dir(cur_turf, target_turf) + + cur_turf = get_step(cur_turf, cur_dir) + var/area/new_area = get_area(cur_turf) + if(!istype(new_area, whitelist_area)) //Rivers will skip ruins + detouring = 0 + cur_dir = get_dir(cur_turf, target_turf) + cur_turf = get_step(cur_turf, cur_dir) + continue + else + var/turf/river_turf = cur_turf.ChangeTurf(turf_type) + river_turf.Spread(25, 11, whitelist_area) + + for(var/WP in river_nodes) + qdel(WP) + + +/obj/effect/landmark/river_waypoint + name = "river waypoint" + var/connected = 0 + invisibility = INVISIBILITY_ABSTRACT + + +/turf/proc/Spread(probability = 30, prob_loss = 25, whitelisted_area) + if(probability <= 0) + return + var/list/cardinal_turfs = list() + var/list/diagonal_turfs = list() + var/logged_turf_type + for(var/F in RANGE_TURFS(1, src) - src) + var/turf/T = F + var/area/new_area = get_area(T) + if(!T || (T.density && !ismineralturf(T)) || istype(T, /turf/open/indestructible) || (whitelisted_area && !istype(new_area, whitelisted_area))) + continue + + if(!logged_turf_type && ismineralturf(T)) + var/turf/closed/mineral/M = T + logged_turf_type = M.turf_type + + if(get_dir(src, F) in cardinal) + cardinal_turfs += F + else + diagonal_turfs += F + + for(var/F in cardinal_turfs) //cardinal turfs are always changed but don't always spread + var/turf/T = F + if(!istype(T, logged_turf_type) && T.ChangeTurf(type) && prob(probability)) + T.Spread(probability - prob_loss, prob_loss, whitelisted_area) + + for(var/F in diagonal_turfs) //diagonal turfs only sometimes change, but will always spread if changed + var/turf/T = F + if(!istype(T, logged_turf_type) && prob(probability) && T.ChangeTurf(type)) + T.Spread(probability - prob_loss, prob_loss, whitelisted_area) + else if(ismineralturf(T)) + var/turf/closed/mineral/M = T + M.ChangeTurf(M.turf_type) + + +#undef RANDOM_UPPER_X +#undef RANDOM_UPPER_Y + +#undef RANDOM_LOWER_X +#undef RANDOM_LOWER_Y diff --git a/code/game/turfs/simulated/wall/mineral_walls.dm b/code/game/turfs/simulated/wall/mineral_walls.dm new file mode 100644 index 0000000..7bbd912 --- /dev/null +++ b/code/game/turfs/simulated/wall/mineral_walls.dm @@ -0,0 +1,243 @@ +/turf/closed/wall/mineral + name = "mineral wall" + desc = "This shouldn't exist" + icon_state = "" + var/last_event = 0 + var/active = null + canSmoothWith = null + smooth = SMOOTH_TRUE + +/turf/closed/wall/mineral/gold + name = "gold wall" + desc = "A wall with gold plating. Swag!" + icon = 'icons/turf/walls/gold_wall.dmi' + icon_state = "gold" + sheet_type = /obj/item/stack/sheet/mineral/gold + //var/electro = 1 + //var/shocked = null + explosion_block = 0 //gold is a soft metal you dingus. + canSmoothWith = list(/turf/closed/wall/mineral/gold, /obj/structure/falsewall/gold) + +/turf/closed/wall/mineral/silver + name = "silver wall" + desc = "A wall with silver plating. Shiny!" + icon = 'icons/turf/walls/silver_wall.dmi' + icon_state = "silver" + sheet_type = /obj/item/stack/sheet/mineral/silver + //var/electro = 0.75 + //var/shocked = null + canSmoothWith = list(/turf/closed/wall/mineral/silver, /obj/structure/falsewall/silver) + +/turf/closed/wall/mineral/diamond + name = "diamond wall" + desc = "A wall with diamond plating. You monster." + icon = 'icons/turf/walls/diamond_wall.dmi' + icon_state = "diamond" + sheet_type = /obj/item/stack/sheet/mineral/diamond + slicing_duration = 200 //diamond wall takes twice as much time to slice + explosion_block = 3 + canSmoothWith = list(/turf/closed/wall/mineral/diamond, /obj/structure/falsewall/diamond) + +/turf/closed/wall/mineral/diamond/thermitemelt(mob/user) + return + +/turf/closed/wall/mineral/clown + name = "bananium wall" + desc = "A wall with bananium plating. Honk!" + icon = 'icons/turf/walls/bananium_wall.dmi' + icon_state = "bananium" + sheet_type = /obj/item/stack/sheet/mineral/bananium + canSmoothWith = list(/turf/closed/wall/mineral/clown, /obj/structure/falsewall/clown) + +/turf/closed/wall/mineral/sandstone + name = "sandstone wall" + desc = "A wall with sandstone plating. Rough." + icon = 'icons/turf/walls/sandstone_wall.dmi' + icon_state = "sandstone" + sheet_type = /obj/item/stack/sheet/mineral/sandstone + explosion_block = 0 + canSmoothWith = list(/turf/closed/wall/mineral/sandstone, /obj/structure/falsewall/sandstone) + +/turf/closed/wall/mineral/uranium + name = "uranium wall" + desc = "A wall with uranium plating. This is probably a bad idea." + icon = 'icons/turf/walls/uranium_wall.dmi' + icon_state = "uranium" + sheet_type = /obj/item/stack/sheet/mineral/uranium + canSmoothWith = list(/turf/closed/wall/mineral/uranium, /obj/structure/falsewall/uranium) + +/turf/closed/wall/mineral/uranium/proc/radiate() + if(!active) + if(world.time > last_event+15) + active = 1 + radiation_pulse(get_turf(src), 3, 3, 4, 0) + for(var/turf/closed/wall/mineral/uranium/T in orange(1,src)) + T.radiate() + last_event = world.time + active = null + return + return + +/turf/closed/wall/mineral/uranium/attack_hand(mob/user) + radiate() + ..() + +/turf/closed/wall/mineral/uranium/attackby(obj/item/weapon/W, mob/user, params) + radiate() + ..() + +/turf/closed/wall/mineral/uranium/Bumped(AM as mob|obj) + radiate() + ..() + +/turf/closed/wall/mineral/plasma + name = "plasma wall" + desc = "A wall with plasma plating. This is definitely a bad idea." + icon = 'icons/turf/walls/plasma_wall.dmi' + icon_state = "plasma" + sheet_type = /obj/item/stack/sheet/mineral/plasma + thermal_conductivity = 0.04 + canSmoothWith = list(/turf/closed/wall/mineral/plasma, /obj/structure/falsewall/plasma) + +/turf/closed/wall/mineral/plasma/attackby(obj/item/weapon/W, mob/user, params) + if(W.is_hot() > 300)//If the temperature of the object is over 300, then ignite + message_admins("Plasma wall ignited by [key_name_admin(user)](?) (FLW) in ([x],[y],[z] - JMP)",0,1) + log_game("Plasma wall ignited by [key_name(user)] in ([x],[y],[z])") + ignite(W.is_hot()) + return + ..() + +/turf/closed/wall/mineral/plasma/proc/PlasmaBurn(temperature) + new /obj/structure/girder(src) + src.ChangeTurf(/turf/open/floor/plasteel) + var/turf/open/T = src + T.atmos_spawn_air("plasma=400;TEMP=1000") + +/turf/closed/wall/mineral/plasma/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)//Doesn't fucking work because walls don't interact with air :( + if(exposed_temperature > 300) + PlasmaBurn(exposed_temperature) + +/turf/closed/wall/mineral/plasma/proc/ignite(exposed_temperature) + if(exposed_temperature > 300) + PlasmaBurn(exposed_temperature) + +/turf/closed/wall/mineral/plasma/bullet_act(var/obj/item/projectile/Proj) + if(istype(Proj,/obj/item/projectile/beam)) + PlasmaBurn(2500) + else if(istype(Proj,/obj/item/projectile/ion)) + PlasmaBurn(500) + ..() + + +/turf/closed/wall/mineral/wood + name = "wooden wall" + desc = "A wall with wooden plating. Stiff." + icon = 'icons/turf/walls/wood_wall.dmi' + icon_state = "wood" + sheet_type = /obj/item/stack/sheet/mineral/wood + hardness = 70 + explosion_block = 0 + canSmoothWith = list(/turf/closed/wall/mineral/wood, /obj/structure/falsewall/wood) + +/turf/closed/wall/mineral/iron + name = "rough metal wall" + desc = "A wall with rough metal plating." + icon = 'icons/turf/walls/iron_wall.dmi' + icon_state = "iron" + sheet_type = /obj/item/stack/rods + canSmoothWith = list(/turf/closed/wall/mineral/iron, /obj/structure/falsewall/iron) + +/turf/closed/wall/mineral/snow + name = "packed snow wall" + desc = "A wall made of densely packed snow blocks." + icon = 'icons/turf/walls/snow_wall.dmi' + icon_state = "snow" + hardness = 80 + sheet_type = /obj/item/stack/sheet/mineral/snow + canSmoothWith = null + +/turf/closed/wall/mineral/abductor + name = "alien wall" + desc = "A wall with alien alloy plating." + icon = 'icons/turf/walls/abductor_wall.dmi' + icon_state = "abductor" + smooth = SMOOTH_TRUE|SMOOTH_DIAGONAL + sheet_type = /obj/item/stack/sheet/mineral/abductor + slicing_duration = 200 //alien wall takes twice as much time to slice + explosion_block = 3 + canSmoothWith = list(/turf/closed/wall/mineral/abductor, /obj/structure/falsewall/abductor) + +/turf/closed/wall/mineral/titanium //has to use this path due to how building walls works + name = "wall" + desc = "A light-weight titanium wall used in shuttles." + icon = 'icons/turf/walls/shuttle_wall.dmi' + icon_state = "map-shuttle" + sheet_type = /obj/item/stack/sheet/mineral/titanium + smooth = SMOOTH_MORE|SMOOTH_DIAGONAL + canSmoothWith = list(/turf/closed/wall/mineral/titanium, /obj/machinery/door/airlock/shuttle, /obj/machinery/door/airlock/, /turf/closed/wall/shuttle, /obj/structure/window/shuttle, /obj/structure/shuttle/engine, /obj/structure/shuttle/engine/heater, ) + +/turf/closed/wall/mineral/titanium/nodiagonal + smooth = SMOOTH_MORE + icon_state = "map-shuttle_nd" + +/turf/closed/wall/mineral/titanium/nosmooth + icon = 'icons/turf/shuttle.dmi' + icon_state = "wall" + smooth = SMOOTH_FALSE + +/turf/closed/wall/mineral/titanium/overspace + icon_state = "map-overspace" + fixed_underlay = list("space"=1) + +//sub-type to be used for interior shuttle walls +//won't get an underlay of the destination turf on shuttle move +/turf/closed/wall/mineral/titanium/interior/copyTurf(turf/T) + if(T.type != type) + T.ChangeTurf(type) + if(underlays.len) + T.underlays = underlays + if(T.icon_state != icon_state) + T.icon_state = icon_state + if(T.icon != icon) + T.icon = icon + if(color) + T.atom_colours = atom_colours.Copy() + T.update_atom_colour() + if(T.dir != dir) + T.dir = dir + T.transform = transform + return T + +/turf/closed/wall/mineral/titanium/copyTurf(turf/T) + . = ..() + T.transform = transform + +/turf/closed/wall/mineral/plastitanium + name = "wall" + desc = "An evil wall of plasma and titanium." + icon = 'icons/turf/shuttle.dmi' + icon_state = "wall3" + sheet_type = /obj/item/stack/sheet/mineral/plastitanium + smooth = SMOOTH_FALSE + +//have to copypaste this code +/turf/closed/wall/mineral/plastitanium/interior/copyTurf(turf/T) + if(T.type != type) + T.ChangeTurf(type) + if(underlays.len) + T.underlays = underlays + if(T.icon_state != icon_state) + T.icon_state = icon_state + if(T.icon != icon) + T.icon = icon + if(color) + T.atom_colours = atom_colours.Copy() + T.update_atom_colour() + if(T.dir != dir) + T.dir = dir + T.transform = transform + return T + +/turf/closed/wall/mineral/plastitanium/copyTurf(turf/T) + . = ..() + T.transform = transform \ No newline at end of file diff --git a/code/game/turfs/simulated/wall/misc_walls.dm b/code/game/turfs/simulated/wall/misc_walls.dm new file mode 100644 index 0000000..6320b21 --- /dev/null +++ b/code/game/turfs/simulated/wall/misc_walls.dm @@ -0,0 +1,166 @@ +/turf/closed/wall/mineral/cult + name = "runed metal wall" + desc = "A cold metal wall engraved with indecipherable symbols. Studying them causes your head to pound." + icon = 'icons/turf/walls/cult_wall.dmi' + icon_state = "cult" + builtin_sheet = null + canSmoothWith = null + +/turf/closed/wall/mineral/cult/New() + PoolOrNew(/obj/effect/overlay/temp/cult/turf, src) + ..() + +/turf/closed/wall/mineral/cult/break_wall() + new/obj/item/stack/sheet/runed_metal(get_turf(src), 1) + return (new /obj/structure/girder/cult(src)) + +/turf/closed/wall/mineral/cult/devastate_wall() + new/obj/item/stack/sheet/runed_metal(get_turf(src), 1) + +/turf/closed/wall/mineral/cult/narsie_act() + return + +/turf/closed/wall/mineral/cult/ratvar_act() + ..() + if(istype(src, /turf/closed/wall/mineral/cult)) //if we haven't changed type + var/previouscolor = color + color = "#FAE48C" + animate(src, color = previouscolor, time = 8) + addtimer(src, "update_atom_colour", 8) + +/turf/closed/wall/mineral/cult/artificer + name = "runed stone wall" + desc = "A cold stone wall engraved with indecipherable symbols. Studying them causes your head to pound." + +/turf/closed/wall/mineral/cult/artificer/break_wall() + PoolOrNew(/obj/effect/overlay/temp/cult/turf, get_turf(src)) + return null //excuse me we want no runed metal here + +/turf/closed/wall/mineral/cult/artificer/devastate_wall() + PoolOrNew(/obj/effect/overlay/temp/cult/turf, get_turf(src)) + +//Clockwork wall: Causes nearby tinkerer's caches to generate components. +/turf/closed/wall/clockwork + name = "clockwork wall" + desc = "A huge chunk of warm metal. The clanging of machinery emanates from within." + explosion_block = 2 + sheet_type = /obj/item/stack/sheet/brass + var/obj/effect/clockwork/overlay/wall/realappearence + var/obj/structure/destructible/clockwork/cache/linkedcache + +/turf/closed/wall/clockwork/New() + ..() + PoolOrNew(/obj/effect/overlay/temp/ratvar/wall, src) + PoolOrNew(/obj/effect/overlay/temp/ratvar/beam, src) + realappearence = PoolOrNew(/obj/effect/clockwork/overlay/wall, src) + realappearence.linked = src + change_construction_value(5) + +/turf/closed/wall/clockwork/examine(mob/user) + ..() + if((is_servant_of_ratvar(user) || isobserver(user)) && linkedcache) + user << "It is linked, generating components in a cache!" + +/turf/closed/wall/clockwork/Destroy() + be_removed() + return ..() + +/turf/closed/wall/clockwork/ChangeTurf(path, defer_change = FALSE) + if(path != type) + be_removed() + return ..() + +/turf/closed/wall/clockwork/proc/be_removed() + if(linkedcache) + linkedcache.linkedwall = null + linkedcache = null + change_construction_value(-5) + qdel(realappearence) + realappearence = null + +/turf/closed/wall/clockwork/attackby(obj/item/I, mob/living/user, params) + if(istype(I, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/WT = I + if(!WT.remove_fuel(0,user)) + return 0 + playsound(src, 'sound/items/Welder.ogg', 100, 1) + user.visible_message("[user] begins slowly breaking down [src]...", "You begin painstakingly destroying [src]...") + if(!do_after(user, 120 / WT.toolspeed, target = src)) + return 0 + if(!WT.remove_fuel(1, user)) + return 0 + user.visible_message("[user] breaks apart [src]!", "You break apart [src]!") + dismantle_wall() + return 1 + return ..() + +/turf/closed/wall/clockwork/ratvar_act() + for(var/mob/M in src) + M.ratvar_act() + +/turf/closed/wall/clockwork/narsie_act() + ..() + if(istype(src, /turf/closed/wall/clockwork)) //if we haven't changed type + var/previouscolor = color + color = "#960000" + animate(src, color = previouscolor, time = 8) + addtimer(src, "update_atom_colour", 8) + +/turf/closed/wall/clockwork/dismantle_wall(devastated=0, explode=0) + if(devastated) + devastate_wall() + ChangeTurf(/turf/open/floor/plating) + else + playsound(src, 'sound/items/Welder.ogg', 100, 1) + var/newgirder = break_wall() + if(newgirder) //maybe we want a gear! + transfer_fingerprints_to(newgirder) + ChangeTurf(/turf/open/floor/clockwork) + + for(var/obj/O in src) //Eject contents! + if(istype(O,/obj/structure/sign/poster)) + var/obj/structure/sign/poster/P = O + P.roll_and_drop(src) + else + O.loc = src + +/turf/closed/wall/clockwork/break_wall() + new sheet_type(src) + return new/obj/structure/destructible/clockwork/wall_gear(src) + +/turf/closed/wall/clockwork/devastate_wall() + for(var/i in 1 to 2) + new/obj/item/clockwork/alloy_shards/large(src) + for(var/i in 1 to 2) + new/obj/item/clockwork/alloy_shards/medium(src) + for(var/i in 1 to 3) + new/obj/item/clockwork/alloy_shards/small(src) + + +/turf/closed/wall/vault + icon = 'icons/turf/walls.dmi' + icon_state = "rockvault" + +/turf/closed/wall/ice + icon = 'icons/turf/walls/icedmetal_wall.dmi' + icon_state = "iced" + desc = "A wall covered in a thick sheet of ice." + canSmoothWith = null + hardness = 35 + slicing_duration = 150 //welding through the ice+metal + +/turf/closed/wall/rust + name = "rusted wall" + desc = "A rusted metal wall." + icon = 'icons/turf/walls/rusty_wall.dmi' + icon_state = "arust" + hardness = 45 + +/turf/closed/wall/r_wall/rust + name = "rusted reinforced wall" + desc = "A huge chunk of rusted reinforced metal." + icon = 'icons/turf/walls/rusty_reinforced_wall.dmi' + icon_state = "rrust" + hardness = 15 + + diff --git a/code/game/turfs/simulated/wall/reinf_walls.dm b/code/game/turfs/simulated/wall/reinf_walls.dm new file mode 100644 index 0000000..cc0c487 --- /dev/null +++ b/code/game/turfs/simulated/wall/reinf_walls.dm @@ -0,0 +1,226 @@ +/turf/closed/wall/r_wall + name = "reinforced wall" + desc = "A huge chunk of reinforced metal used to separate rooms." + icon = 'icons/turf/walls/reinforced_wall.dmi' + icon_state = "r_wall" + opacity = 1 + density = 1 + + var/d_state = 0 + hardness = 10 + sheet_type = /obj/item/stack/sheet/plasteel + explosion_block = 2 + +/turf/closed/wall/r_wall/break_wall() + builtin_sheet.loc = src + return (new /obj/structure/girder/reinforced(src)) + +/turf/closed/wall/r_wall/devastate_wall() + builtin_sheet.loc = src + new /obj/item/stack/sheet/metal(src, 2) + +/turf/closed/wall/r_wall/attack_animal(mob/living/simple_animal/M) + M.changeNext_move(CLICK_CD_MELEE) + M.do_attack_animation(src) + if(M.environment_smash == 3) + dismantle_wall(1) + playsound(src, 'sound/effects/meteorimpact.ogg', 100, 1) + else + playsound(src, 'sound/effects/bang.ogg', 50, 1) + M << "This wall is far too strong for you to destroy." + +/turf/closed/wall/r_wall/try_destroy(obj/item/weapon/W, mob/user, turf/T) + if(istype(W, /obj/item/weapon/pickaxe/drill/jackhammer)) + var/obj/item/weapon/pickaxe/drill/jackhammer/D = W + user << "You begin to smash though the [name]..." + if(do_after(user, 50, target = src)) + if( !istype(src, /turf/closed/wall/r_wall) || !user || !W || !T ) + return 1 + if( user.loc == T && user.get_active_held_item() == W ) + D.playDigSound() + visible_message("[user] smashes through the [name] with the [D.name]!", "You hear the grinding of metal.") + dismantle_wall() + return 1 + else if(istype(W, /obj/item/stack/sheet/metal) && d_state) + var/obj/item/stack/sheet/metal/MS = W + if (MS.get_amount() < 1) + user << "You need one sheet of metal to repair the wall!" + return 1 + user << "You begin patching-up the wall with \a [MS]..." + if (do_after(user, max(20*d_state,100), target = src))//time taken to repair is proportional to the damage! (max 10 seconds) + if(loc == null || MS.get_amount() < 1) + return 1 + MS.use(1) + src.d_state = 0 + src.icon_state = "r_wall" + queue_smooth_neighbors(src) + user << "You repair the last of the damage." + return 1 + return 0 + +/turf/closed/wall/r_wall/try_decon(obj/item/weapon/W, mob/user, turf/T) + //DECONSTRUCTION + switch(d_state) + if(0) + if (istype(W, /obj/item/weapon/wirecutters)) + playsound(src, W.usesound, 100, 1) + src.d_state = 1 + update_icon() + user << "You cut the outer grille." + return 1 + + if(1) + if (istype(W, /obj/item/weapon/screwdriver)) + user << "You begin removing the support lines..." + playsound(src, W.usesound, 100, 1) + + if(do_after(user, 40, target = src)) + if( !istype(src, /turf/closed/wall/r_wall) || !user || !W || !T ) + return 1 + + if( d_state == 1 && user.loc == T && user.get_active_held_item() == W ) + src.d_state = 2 + update_icon() + user << "You remove the support lines." + return 1 + + //REPAIRING (replacing the outer grille for cosmetic damage) + else if(istype(W, /obj/item/stack/sheet/metal)) + var/obj/item/stack/sheet/metal/O = W + if (O.use(1)) + src.d_state = 0 + update_icon() + src.icon_state = "r_wall" + user << "You replace the outer grille." + else + user << "Report this to a coder: metal stack had less than one sheet in it when trying to repair wall" + return 1 + return 1 + + if(2) + if( istype(W, /obj/item/weapon/weldingtool) ) + var/obj/item/weapon/weldingtool/WT = W + if( WT.remove_fuel(0,user) ) + + user << "You begin slicing through the metal cover..." + playsound(src, W.usesound, 100, 1) + + if(do_after(user, 60, target = src)) + if( !istype(src, /turf/closed/wall/r_wall) || !user || !WT || !WT.isOn() || !T ) + return 0 + + if( d_state == 2 && user.loc == T && user.get_active_held_item() == WT ) + src.d_state = 3 + update_icon() + user << "You press firmly on the cover, dislodging it." + return 1 + + if( istype(W, /obj/item/weapon/gun/energy/plasmacutter) ) + + user << "You begin slicing through the metal cover..." + playsound(src, 'sound/items/Welder.ogg', 100, 1) + + if(do_after(user, 60, target = src)) + if( !istype(src, /turf/closed/wall/r_wall) || !user || !W || !T ) + return 1 + + if( d_state == 2 && user.loc == T && user.get_active_held_item() == W ) + src.d_state = 3 + update_icon() + user << "You press firmly on the cover, dislodging it." + return 1 + + if(3) + if (istype(W, /obj/item/weapon/crowbar)) + + user << "You struggle to pry off the cover..." + playsound(src, W.usesound, 100, 1) + + if(do_after(user, 100, target = src)) + if( !istype(src, /turf/closed/wall/r_wall) || !user || !W || !T ) + return 1 + + if( d_state == 3 && user.loc == T && user.get_active_held_item() == W ) + src.d_state = 4 + update_icon() + user << "You pry off the cover." + return 1 + + if(4) + if (istype(W, /obj/item/weapon/wrench)) + + user << "You start loosening the anchoring bolts which secure the support rods to their frame..." + playsound(src, W.usesound, 100, 1) + + if(do_after(user, 40, target = src)) + if( !istype(src, /turf/closed/wall/r_wall) || !user || !W || !T ) + return 1 + + if( d_state == 4 && user.loc == T && user.get_active_held_item() == W ) + src.d_state = 5 + update_icon() + user << "You remove the bolts anchoring the support rods." + return 1 + + if(5) + if( istype(W, /obj/item/weapon/weldingtool) ) + var/obj/item/weapon/weldingtool/WT = W + if( WT.remove_fuel(0,user) ) + + user << "You begin slicing through the support rods..." + playsound(src, W.usesound, 100, 1) + + if(do_after(user, 100, target = src)) + if( !istype(src, /turf/closed/wall/r_wall) || !user || !WT || !WT.isOn() || !T ) + return 1 + + if( d_state == 5 && user.loc == T && user.get_active_held_item() == WT ) + src.d_state = 6 + update_icon() + user << "You slice through the support rods." + return 1 + + if( istype(W, /obj/item/weapon/gun/energy/plasmacutter) ) + + user << "You begin slicing through the support rods..." + playsound(src, 'sound/items/Welder.ogg', 100, 1) + + if(do_after(user, 70, target = src)) + if( !istype(src, /turf/closed/wall/r_wall) || !user || !W || !T ) + return 1 + + if( d_state == 5 && user.loc == T && user.get_active_held_item() == W ) + src.d_state = 6 + update_icon() + user << "You slice through the support rods." + return 1 + + if(6) + if( istype(W, /obj/item/weapon/crowbar) ) + + user << "You struggle to pry off the outer sheath..." + playsound(src, W.usesound, 100, 1) + + if(do_after(user, 100, target = src)) + if( !istype(src, /turf/closed/wall/r_wall) || !user || !W || !T ) + return 1 + + if( user.loc == T && user.get_active_held_item() == W ) + user << "You pry off the outer sheath." + dismantle_wall() + return 1 + return 0 + +/turf/closed/wall/r_wall/proc/update_icon() + if(d_state) + icon_state = "r_wall-[d_state]" + smooth = SMOOTH_FALSE + clear_smooth_overlays() + else + smooth = SMOOTH_TRUE + icon_state = "" + +/turf/closed/wall/r_wall/singularity_pull(S, current_size) + if(current_size >= STAGE_FIVE) + if(prob(30)) + dismantle_wall() diff --git a/code/game/turfs/simulated/wall/shuttle_walls.dm b/code/game/turfs/simulated/wall/shuttle_walls.dm new file mode 100644 index 0000000..4f6ab55 --- /dev/null +++ b/code/game/turfs/simulated/wall/shuttle_walls.dm @@ -0,0 +1,67 @@ + + +/turf/closed/wall/shuttle + name = "wall" + icon = 'icons/turf/shuttle.dmi' + icon_state = "wall" + sheet_type = /obj/item/stack/sheet/mineral/titanium + smooth = SMOOTH_FALSE + +/turf/closed/wall/shuttle/copyTurf(turf/T) + . = ..() + T.transform = transform + +/turf/closed/wall/shuttle/survival + name = "pod wall" + desc = "An easily-compressable wall used for temporary shelter." + icon = 'icons/turf/walls/survival_pod_walls.dmi' + icon_state = "smooth" + smooth = SMOOTH_MORE|SMOOTH_DIAGONAL + canSmoothWith = list(/turf/closed/wall/shuttle/survival, /obj/machinery/door/airlock/survival_pod, /obj/structure/window/shuttle/survival_pod, /obj/structure/shuttle/engine) + +/turf/closed/wall/shuttle/survival/nodiagonal + smooth = SMOOTH_MORE + +/turf/closed/wall/shuttle/survival/pod + canSmoothWith = list(/turf/closed/wall/shuttle/survival, /obj/machinery/door/airlock, /obj/structure/window/fulltile, /obj/structure/window/reinforced/fulltile, /obj/structure/window/reinforced/tinted/fulltile, /obj/structure/window/shuttle, /obj/structure/shuttle/engine) + + +/turf/closed/wall/shuttle/syndie + icon_state = "wall3" + sheet_type = /obj/item/stack/sheet/mineral/plastitanium + +/turf/closed/wall/shuttle/smooth + name = "wall" + icon = 'icons/turf/walls/shuttle_wall.dmi' + icon_state = "shuttle" + sheet_type = /obj/item/stack/sheet/mineral/titanium + smooth = SMOOTH_MORE|SMOOTH_DIAGONAL + canSmoothWith = list(/turf/closed/wall/shuttle/smooth, /obj/structure/window/shuttle, /obj/structure/shuttle, /obj/machinery/door/airlock/glass, /obj/machinery/door/airlock/shuttle) + +/turf/closed/wall/shuttle/smooth/nodiagonal + smooth = SMOOTH_MORE + icon_state = "shuttle_nd" + +/turf/closed/wall/shuttle/smooth/overspace + icon_state = "overspace" + fixed_underlay = list("space"=1) + +//sub-type to be used for interior shuttle walls +//won't get an underlay of the destination turf on shuttle move +/turf/closed/wall/shuttle/interior/copyTurf(turf/T) + if(T.type != type) + T.ChangeTurf(type) + if(underlays.len) + T.underlays = underlays + if(T.icon_state != icon_state) + T.icon_state = icon_state + if(T.icon != icon) + T.icon = icon + if(color) + T.atom_colours = atom_colours.Copy() + T.update_atom_colour() + if(T.dir != dir) + T.setDir(dir) + T.transform = transform + return T + diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm new file mode 100644 index 0000000..6fb8221 --- /dev/null +++ b/code/game/turfs/simulated/walls.dm @@ -0,0 +1,276 @@ +/turf/closed/wall + name = "wall" + desc = "A huge chunk of metal used to separate rooms." + icon = 'icons/turf/walls/wall.dmi' + icon_state = "wall" + explosion_block = 1 + + thermal_conductivity = WALL_HEAT_TRANSFER_COEFFICIENT + heat_capacity = 312500 //a little over 5 cm thick , 312500 for 1 m by 2.5 m by 0.25 m plasteel wall + + var/hardness = 40 //lower numbers are harder. Used to determine the probability of a hulk smashing through. + var/slicing_duration = 100 //default time taken to slice the wall + var/sheet_type = /obj/item/stack/sheet/metal + var/obj/item/stack/sheet/builtin_sheet = null + + canSmoothWith = list( + /turf/closed/wall, + /turf/closed/wall/r_wall, + /obj/structure/falsewall, + /obj/structure/falsewall/brass, + /obj/structure/falsewall/reinforced, + /turf/closed/wall/rust, + /turf/closed/wall/r_wall/rust, + /turf/closed/wall/clockwork) + smooth = SMOOTH_TRUE + +/turf/closed/wall/New() + ..() + builtin_sheet = new sheet_type + +/turf/closed/wall/attack_tk() + return + +/turf/closed/wall/proc/dismantle_wall(devastated=0, explode=0) + if(devastated) + devastate_wall() + else + playsound(src, 'sound/items/Welder.ogg', 100, 1) + var/newgirder = break_wall() + if(newgirder) //maybe we don't /want/ a girder! + transfer_fingerprints_to(newgirder) + + for(var/obj/O in src.contents) //Eject contents! + if(istype(O,/obj/structure/sign/poster)) + var/obj/structure/sign/poster/P = O + P.roll_and_drop(src) + + ChangeTurf(/turf/open/floor/plating) + +/turf/closed/wall/proc/break_wall() + builtin_sheet.amount = 2 + builtin_sheet.loc = src + return (new /obj/structure/girder(src)) + +/turf/closed/wall/proc/devastate_wall() + builtin_sheet.amount = 2 + builtin_sheet.loc = src + new /obj/item/stack/sheet/metal(src) + +/turf/closed/wall/ex_act(severity, target) + if(target == src) + dismantle_wall(1,1) + return + switch(severity) + if(1) + //SN src = null + src.ChangeTurf(src.baseturf) + return + if(2) + if (prob(50)) + dismantle_wall(0,1) + else + dismantle_wall(1,1) + if(3) + if (prob(hardness)) + dismantle_wall(0,1) + if(!density) + ..() + + +/turf/closed/wall/blob_act(obj/structure/blob/B) + if(prob(50)) + dismantle_wall() + +/turf/closed/wall/mech_melee_attack(obj/mecha/M) + M.do_attack_animation(src) + switch(M.damtype) + if(BRUTE) + playsound(src, 'sound/weapons/punch4.ogg', 50, 1) + visible_message("[M.name] has hit [src]!", null, null, COMBAT_MESSAGE_RANGE) + if(prob(hardness + M.force) && M.force > 20) + dismantle_wall(1) + playsound(src, 'sound/effects/meteorimpact.ogg', 100, 1) + if(BURN) + playsound(src, 'sound/items/Welder.ogg', 100, 1) + if(TOX) + playsound(src, 'sound/effects/spray2.ogg', 100, 1) + return 0 + +/turf/closed/wall/attack_paw(mob/living/user) + user.changeNext_move(CLICK_CD_MELEE) + return src.attack_hand(user) + + +/turf/closed/wall/attack_animal(mob/living/simple_animal/M) + M.changeNext_move(CLICK_CD_MELEE) + M.do_attack_animation(src) + if(M.environment_smash >= 2) + playsound(src, 'sound/effects/meteorimpact.ogg', 100, 1) + dismantle_wall(1) + return + +/turf/closed/wall/attack_hulk(mob/user, does_attack_animation = 0) + ..(user, 1) + if(prob(hardness)) + playsound(src, 'sound/effects/meteorimpact.ogg', 100, 1) + user.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" )) + dismantle_wall(1) + else + playsound(src, 'sound/effects/bang.ogg', 50, 1) + user << text("You punch the wall.") + return 1 + +/turf/closed/wall/attack_hand(mob/user) + user.changeNext_move(CLICK_CD_MELEE) + user << "You push the wall but nothing happens!" + playsound(src, 'sound/weapons/Genhit.ogg', 25, 1) + src.add_fingerprint(user) + ..() + return + + +/turf/closed/wall/attackby(obj/item/weapon/W, mob/user, params) + user.changeNext_move(CLICK_CD_MELEE) + if (!user.IsAdvancedToolUser()) + user << "You don't have the dexterity to do this!" + return + + //get the user's location + if(!isturf(user.loc)) + return //can't do this stuff whilst inside objects and such + + add_fingerprint(user) + + //THERMITE related stuff. Calls src.thermitemelt() which handles melting simulated walls and the relevant effects + if( thermite ) + if(W.is_hot()) + thermitemelt(user) + return + + var/turf/T = user.loc //get user's location for delay checks + + //the istype cascade has been spread among various procs for easy overriding + if(try_wallmount(W,user,T) || try_decon(W,user,T) || try_destroy(W,user,T)) + return + + return + + +/turf/closed/wall/proc/try_wallmount(obj/item/weapon/W, mob/user, turf/T) + //check for wall mounted frames + if(istype(W,/obj/item/wallframe)) + var/obj/item/wallframe/F = W + if(F.try_build(src)) + F.attach(src) + return 1 + //Poster stuff + else if(istype(W,/obj/item/weapon/poster)) + place_poster(W,user) + return 1 + + return 0 + + +/turf/closed/wall/proc/try_decon(obj/item/weapon/W, mob/user, turf/T) + if( istype(W, /obj/item/weapon/weldingtool) ) + var/obj/item/weapon/weldingtool/WT = W + if( WT.remove_fuel(0,user) ) + user << "You begin slicing through the outer plating..." + playsound(src, W.usesound, 100, 1) + if(do_after(user, slicing_duration/W.toolspeed, target = src)) + if(!iswallturf(src) || !user || !WT || !WT.isOn() || !T) + return 1 + if( user.loc == T && user.get_active_held_item() == WT ) + user << "You remove the outer plating." + dismantle_wall() + return 1 + else if( istype(W, /obj/item/weapon/gun/energy/plasmacutter) ) + user << "You begin slicing through the outer plating..." + playsound(src, 'sound/items/Welder.ogg', 100, 1) + if(do_after(user, slicing_duration*0.6, target = src)) // plasma cutter is faster than welding tool + if(!iswallturf(src) || !user || !W || !T) + return 1 + if( user.loc == T && user.get_active_held_item() == W ) + user << "You remove the outer plating." + dismantle_wall() + visible_message("The wall was sliced apart by [user]!", "You hear metal being sliced apart.") + return 1 + return 0 + + +/turf/closed/wall/proc/try_destroy(obj/item/weapon/W, mob/user, turf/T) + if(istype(W, /obj/item/weapon/pickaxe/drill/jackhammer)) + var/obj/item/weapon/pickaxe/drill/jackhammer/D = W + if(!iswallturf(src) || !user || !W || !T) + return 1 + if( user.loc == T && user.get_active_held_item() == W ) + D.playDigSound() + dismantle_wall() + visible_message("[user] smashes through the [name] with the [W.name]!", "You hear the grinding of metal.") + return 1 + return 0 + + +/turf/closed/wall/proc/thermitemelt(mob/user) + overlays = list() + var/obj/effect/overlay/O = new/obj/effect/overlay( src ) + O.name = "thermite" + O.desc = "Looks hot." + O.icon = 'icons/effects/fire.dmi' + O.icon_state = "2" + O.anchored = 1 + O.opacity = 1 + O.density = 1 + O.layer = FLY_LAYER + + playsound(src, 'sound/items/Welder.ogg', 100, 1) + + if(thermite >= 50) + var/burning_time = max(100,300 - thermite) + var/turf/open/floor/F = ChangeTurf(/turf/open/floor/plating) + F.burn_tile() + F.icon_state = "wall_thermite" + F.add_hiddenprint(user) + spawn(burning_time) + if(O) + qdel(O) + else + thermite = 0 + spawn(50) + if(O) + qdel(O) + return + +/turf/closed/wall/singularity_pull(S, current_size) + if(current_size >= STAGE_FIVE) + if(prob(50)) + dismantle_wall() + return + if(current_size == STAGE_FOUR) + if(prob(30)) + dismantle_wall() + +/turf/closed/wall/narsie_act() + if(prob(20)) + ChangeTurf(/turf/closed/wall/mineral/cult) + +/turf/closed/wall/ratvar_act(force) + var/converted = (prob(40) || force) + if(converted) + ChangeTurf(/turf/closed/wall/clockwork) + for(var/I in src) + var/atom/A = I + if(ismob(A) || converted) + A.ratvar_act() + +/turf/closed/wall/storage_contents_dump_act(obj/item/weapon/storage/src_object, mob/user) + return 0 + +/turf/closed/wall/acid_act(acidpwr, acid_volume) + if(explosion_block >= 2) + acidpwr = min(acidpwr, 50) //we reduce the power so strong walls never get melted. + . = ..() + +/turf/closed/wall/acid_melt() + dismantle_wall(1) diff --git a/code/game/turfs/space/space.dm b/code/game/turfs/space/space.dm new file mode 100644 index 0000000..3d40425 --- /dev/null +++ b/code/game/turfs/space/space.dm @@ -0,0 +1,180 @@ +/turf/open/space + icon = 'icons/turf/space.dmi' + icon_state = "0" + name = "\proper space" + intact = 0 + + temperature = TCMB + thermal_conductivity = OPEN_HEAT_TRANSFER_COEFFICIENT + heat_capacity = 700000 + + var/destination_z + var/destination_x + var/destination_y + + var/global/datum/gas_mixture/space/space_gas = new + + +/turf/open/space/New() + update_icon() + air = space_gas + +/turf/open/space/Destroy(force) + if(force) + . = ..() + else + return QDEL_HINT_LETMELIVE + +/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/Initalize_Atmos(times_fired) + return + +/turf/open/space/ChangeTurf(path) + . = ..() + +/turf/open/space/TakeTemperature(temp) + +/turf/open/space/RemoveLattice() + return + +/turf/open/space/AfterChange() + ..() + atmos_overlay_types = null + +/turf/open/space/Assimilate_Air() + return + +/turf/open/space/proc/update_starlight() + if(config.starlight) + for(var/t in RANGE_TURFS(1,src)) //RANGE_TURFS is in code\__HELPERS\game.dm + if(isspaceturf(t)) + //let's NOT update this that much pls + continue + SetLuminosity(4,1) + return + SetLuminosity(0) + +/turf/open/space/attack_paw(mob/user) + return src.attack_hand(user) + +/turf/open/space/attackby(obj/item/C, mob/user, params) + ..() + if(istype(C, /obj/item/stack/rods)) + var/obj/item/stack/rods/R = C + var/obj/structure/lattice/L = locate(/obj/structure/lattice, src) + var/obj/structure/lattice/catwalk/W = locate(/obj/structure/lattice/catwalk, src) + if(W) + user << "There is already a catwalk here!" + return + if(L) + if(R.use(1)) + user << "You begin constructing catwalk..." + playsound(src, 'sound/weapons/Genhit.ogg', 50, 1) + qdel(L) + ReplaceWithCatwalk() + else + user << "You need two rods to build a catwalk!" + return + if(R.use(1)) + user << "Constructing support lattice..." + playsound(src, 'sound/weapons/Genhit.ogg', 50, 1) + ReplaceWithLattice() + else + user << "You need one rod to build a lattice." + return + if(istype(C, /obj/item/stack/tile/plasteel)) + var/obj/structure/lattice/L = locate(/obj/structure/lattice, src) + if(L) + var/obj/item/stack/tile/plasteel/S = C + if(S.use(1)) + qdel(L) + playsound(src, 'sound/weapons/Genhit.ogg', 50, 1) + user << "You build a floor." + ChangeTurf(/turf/open/floor/plating) + else + user << "You need one floor tile to build a floor!" + else + user << "The plating is going to need some support! Place metal rods first." + +/turf/open/space/Entered(atom/movable/A) + ..() + if ((!(A) || src != A.loc)) + return + + if(destination_z) + A.x = destination_x + A.y = destination_y + A.z = destination_z + + if(isliving(A)) + var/mob/living/L = A + if(L.pulling) + var/turf/T = get_step(L.loc,turn(A.dir, 180)) + L.pulling.loc = T + + //now we're on the new z_level, proceed the space drifting + stoplag()//Let a diagonal move finish, if necessary + A.newtonian_move(A.inertia_dir) + +/turf/open/space/proc/Sandbox_Spacemove(atom/movable/A) + var/cur_x + var/cur_y + var/next_x = src.x + var/next_y = src.y + var/target_z + var/list/y_arr + var/list/cur_pos = src.get_global_map_pos() + if(!cur_pos) + return + cur_x = cur_pos["x"] + cur_y = cur_pos["y"] + + if(src.x <= 1) + next_x = (--cur_x||global_map.len) + y_arr = global_map[next_x] + target_z = y_arr[cur_y] + next_x = world.maxx - 2 + else if (src.x >= world.maxx) + next_x = (++cur_x > global_map.len ? 1 : cur_x) + y_arr = global_map[next_x] + target_z = y_arr[cur_y] + next_x = 3 + else if (src.y <= 1) + y_arr = global_map[cur_x] + next_y = (--cur_y||y_arr.len) + target_z = y_arr[next_y] + next_y = world.maxy - 2 + else if (src.y >= world.maxy) + y_arr = global_map[cur_x] + next_y = (++cur_y > y_arr.len ? 1 : cur_y) + target_z = y_arr[next_y] + next_y = 3 + + var/turf/T = locate(next_x, next_y, target_z) + A.Move(T) + +/turf/open/space/handle_slip() + return + +/turf/open/space/singularity_act() + return + +/turf/open/space/can_have_cabling() + if(locate(/obj/structure/lattice/catwalk, src)) + return 1 + return 0 + +/turf/open/space/proc/update_icon() + icon_state = SPACE_ICON_STATE + +/turf/open/space/is_transition_turf() + if(destination_x || destination_y || destination_z) + return 1 + + +/turf/open/space/acid_act(acidpwr, acid_volume) + return 0 \ No newline at end of file diff --git a/code/game/turfs/space/transit.dm b/code/game/turfs/space/transit.dm new file mode 100644 index 0000000..4d1b5cd --- /dev/null +++ b/code/game/turfs/space/transit.dm @@ -0,0 +1,92 @@ +/turf/open/space/transit + icon_state = "black" + dir = SOUTH + baseturf = /turf/open/space/transit + flags = NOJAUNT //This line goes out to every wizard that ever managed to escape the den. I'm sorry. + +/turf/open/space/transit/south + dir = SOUTH + +/turf/open/space/transit/north + dir = NORTH + +/turf/open/space/transit/horizontal + dir = WEST + +/turf/open/space/transit/west + dir = WEST + +/turf/open/space/transit/east + dir = EAST + +/turf/open/space/transit/Entered(atom/movable/AM, atom/OldLoc) + throw_atom(AM) + +/turf/open/space/transit/proc/throw_atom(atom/movable/AM) + if(!AM || istype(AM, /obj/docking_port)) + return + var/max = world.maxx-TRANSITIONEDGE + var/min = 1+TRANSITIONEDGE + + var/list/possible_transtitons = list() + var/k = 1 + for(var/a in map_transition_config) + if(map_transition_config[a] == CROSSLINKED) // Only pick z-levels connected to station space + possible_transtitons += k + k++ + var/_z = pick(possible_transtitons) + + //now select coordinates for a border turf + var/_x + var/_y + switch(dir) + if(SOUTH) + _x = rand(min,max) + _y = max + if(WEST) + _x = max + _y = rand(min,max) + if(EAST) + _x = min + _y = rand(min,max) + else + _x = rand(min,max) + _y = min + + var/turf/T = locate(_x, _y, _z) + AM.loc = T + AM.newtonian_move(dir) + +//Overwrite because we dont want people building rods in space. +/turf/open/space/transit/attackby() + return + +/turf/open/space/transit/New() + update_icon() + for(var/atom/movable/AM in src) + throw_atom(AM) + ..() + +/turf/open/space/transit/update_icon() + var/p = 9 + var/angle = 0 + var/state = 1 + switch(dir) + if(NORTH) + angle = 180 + state = ((-p*x+y) % 15) + 1 + if(state < 1) + state += 15 + if(EAST) + angle = 90 + state = ((x+p*y) % 15) + 1 + if(WEST) + angle = -90 + state = ((x-p*y) % 15) + 1 + if(state < 1) + state += 15 + else + state = ((p*x+y) % 15) + 1 + + icon_state = "speedspace_ns_[state]" + transform = turn(matrix(), angle) diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm new file mode 100644 index 0000000..d07d556 --- /dev/null +++ b/code/game/turfs/turf.dm @@ -0,0 +1,380 @@ +/turf + icon = 'icons/turf/floors.dmi' + level = 1 + + var/intact = 1 + var/turf/baseturf = /turf/open/space + + var/temperature = T20C + var/to_be_destroyed = 0 //Used for fire, if a melting temperature was reached, it will be destroyed + var/max_fire_temperature_sustained = 0 //The max temperature of the fire which it was subjected to + + var/blocks_air = 0 + + var/PathNode/PNode = null //associated PathNode in the A* algorithm + + flags = CAN_BE_DIRTY + + var/list/proximity_checkers + + var/image/obscured //camerachunks + + var/list/image/blueprint_data //for the station blueprints, images of objects eg: pipes + + +/turf/New() + ..() + + levelupdate() + if(smooth) + smooth_icon(src) + visibilityChanged() + + for(var/atom/movable/AM in src) + Entered(AM) + +/turf/proc/Initalize_Atmos(times_fired) + CalculateAdjacentTurfs() + +/turf/Destroy() + visibilityChanged() + ..() + return QDEL_HINT_HARDDEL_NOW + +/turf/attack_hand(mob/user) + user.Move_Pulled(src) + +/turf/attackby(obj/item/C, mob/user, params) + if(can_lay_cable() && istype(C, /obj/item/stack/cable_coil)) + var/obj/item/stack/cable_coil/coil = C + for(var/obj/structure/cable/LC in src) + if((LC.d1==0)||(LC.d2==0)) + LC.attackby(C,user) + return + coil.place_turf(src, user) + return 1 + + return 0 + +/turf/Enter(atom/movable/mover as mob|obj, atom/forget as mob|obj|turf|area) + if (!mover) + return 1 + // First, make sure it can leave its square + if(isturf(mover.loc)) + // Nothing but border objects stop you from leaving a tile, only one loop is needed + for(var/obj/obstacle in mover.loc) + if(!obstacle.CheckExit(mover, src) && obstacle != mover && obstacle != forget) + mover.Bump(obstacle, 1) + return 0 + + var/list/large_dense = list() + //Next, check objects to block entry that are on the border + for(var/atom/movable/border_obstacle in src) + if(border_obstacle.flags&ON_BORDER) + if(!border_obstacle.CanPass(mover, mover.loc, 1) && (forget != border_obstacle)) + mover.Bump(border_obstacle, 1) + return 0 + else + large_dense += border_obstacle + + //Then, check the turf itself + if (!src.CanPass(mover, src)) + mover.Bump(src, 1) + return 0 + + //Finally, check objects/mobs to block entry that are not on the border + for(var/atom/movable/obstacle in large_dense) + if(!obstacle.CanPass(mover, mover.loc, 1) && (forget != obstacle)) + mover.Bump(obstacle, 1) + return 0 + return 1 //Nothing found to block so return success! + +/turf/Entered(atom/movable/AM) + for(var/A in proximity_checkers) + var/atom/B = A + B.HasProximity(AM) + +/turf/open/Entered(atom/movable/AM) + ..() + //slipping + if (istype(AM,/mob/living/carbon)) + var/mob/living/carbon/M = AM + switch(wet) + if(TURF_WET_WATER) + if(!M.slip(0, 3, null, NO_SLIP_WHEN_WALKING)) + M.inertia_dir = 0 + if(TURF_WET_LUBE) + if(M.slip(0, 4, null, (SLIDE|GALOSHES_DONT_HELP))) + M.confused = max(M.confused, 8) + if(TURF_WET_ICE) + M.slip(0, 6, null, (SLIDE|GALOSHES_DONT_HELP)) + if(TURF_WET_PERMAFROST) + M.slip(0, 6, null, (SLIDE_ICE|GALOSHES_DONT_HELP)) + if(TURF_WET_SLIDE) + M.slip(0, 4, null, (SLIDE|GALOSHES_DONT_HELP)) + +/turf/proc/is_plasteel_floor() + return 0 + +/turf/proc/levelupdate() + for(var/obj/O in src) + if(O.level == 1) + O.hide(src.intact) + +// override for space turfs, since they should never hide anything +/turf/open/space/levelupdate() + for(var/obj/O in src) + if(O.level == 1) + O.hide(0) + +// Removes all signs of lattice on the pos of the turf -Donkieyo +/turf/proc/RemoveLattice() + var/obj/structure/lattice/L = locate(/obj/structure/lattice, src) + if(L) + qdel(L) + +//Creates a new turf +/turf/proc/ChangeTurf(path, defer_change = FALSE) + if(!path) + return + if(!use_preloader && path == type) // Don't no-op if the map loader requires it to be reconstructed + return src + var/old_blueprint_data = blueprint_data + + SSair.remove_from_active(src) + + var/turf/W = new path(src) + if(!defer_change) + W.AfterChange() + W.blueprint_data = old_blueprint_data + return W + +/turf/proc/AfterChange() //called after a turf has been replaced in ChangeTurf() + levelupdate() + CalculateAdjacentTurfs() + + if(!can_have_cabling()) + for(var/obj/structure/cable/C in contents) + C.deconstruct() + + queue_smooth_neighbors(src) + +/turf/open/AfterChange(ignore_air) + ..() + RemoveLattice() + if(!ignore_air) + Assimilate_Air() + +//////Assimilate Air////// +/turf/open/proc/Assimilate_Air() + if(blocks_air) + return + + var/datum/gas_mixture/total = new//Holders to assimilate air from nearby turfs + var/list/total_gases = total.gases + var/turf_count = LAZYLEN(atmos_adjacent_turfs) + + for(var/T in atmos_adjacent_turfs) + var/turf/open/S = T + if(!S.air) + continue + var/list/S_gases = S.air.gases + for(var/id in S_gases) + total.assert_gas(id) + total_gases[id][MOLES] += S_gases[id][MOLES] + total.temperature += S.air.temperature + + air.copy_from(total) + + if(!turf_count) //if there weren't any open turfs, no need to update. + return + + var/list/air_gases = air.gases + for(var/id in air_gases) + air_gases[id][MOLES] /= turf_count //Averages contents of the turfs, ignoring walls and the like + + air.temperature /= turf_count + air.holder = src + SSair.add_to_active(src) + +/turf/proc/ReplaceWithLattice() + ChangeTurf(baseturf) + new /obj/structure/lattice(locate(x, y, z)) + +/turf/proc/ReplaceWithCatwalk() + ChangeTurf(baseturf) + new /obj/structure/lattice/catwalk(locate(x, y, z)) + +/turf/proc/phase_damage_creatures(damage,mob/U = null)//>Ninja Code. Hurts and knocks out creatures on this turf //NINJACODE + for(var/mob/living/M in src) + if(M==U) + continue//Will not harm U. Since null != M, can be excluded to kill everyone. + M.adjustBruteLoss(damage) + M.Paralyse(damage/5) + for(var/obj/mecha/M in src) + M.take_damage(damage*2, BRUTE, "melee", 1) + +/turf/proc/Bless() + flags |= NOJAUNT + +/turf/storage_contents_dump_act(obj/item/weapon/storage/src_object, mob/user) + if(src_object.contents.len) + usr << "You start dumping out the contents..." + if(!do_after(usr,20,target=src_object)) + return 0 + for(var/obj/item/I in src_object) + if(user.s_active != src_object) + if(I.on_found(user)) + return + src_object.remove_from_storage(I, src) //No check needed, put everything inside + return 1 + +////////////////////////////// +//Distance procs +////////////////////////////// + +//Distance associates with all directions movement +/turf/proc/Distance(var/turf/T) + return get_dist(src,T) + +// This Distance proc assumes that only cardinal movement is +// possible. It results in more efficient (CPU-wise) pathing +// for bots and anything else that only moves in cardinal dirs. +/turf/proc/Distance_cardinal(turf/T) + if(!src || !T) return 0 + return abs(x - T.x) + abs(y - T.y) + +//////////////////////////////////////////////////// + +/turf/singularity_act() + if(intact) + for(var/obj/O in contents) //this is for deleting things like wires contained in the turf + if(O.level != 1) + continue + if(O.invisibility == INVISIBILITY_MAXIMUM) + O.singularity_act() + ChangeTurf(src.baseturf) + return(2) + +/turf/proc/can_have_cabling() + return 1 + +/turf/proc/can_lay_cable() + return can_have_cabling() & !intact + +/turf/proc/visibilityChanged() + if(ticker) + cameranet.updateVisibility(src) + +/turf/proc/burn_tile() + +/turf/proc/is_shielded() + +/turf/contents_explosion(severity, target) + var/affecting_level + if(severity == 1) + affecting_level = 1 + else if(is_shielded()) + affecting_level = 3 + else if(intact) + affecting_level = 2 + else + affecting_level = 1 + + for(var/V in contents) + var/atom/A = V + if(A.level >= affecting_level) + A.ex_act(severity, target) + +/turf/ratvar_act() + for(var/mob/M in src) + M.ratvar_act() + +/turf/proc/add_blueprints(atom/movable/AM) + var/image/I = new + I.appearance = AM.appearance + I.appearance_flags = RESET_COLOR|RESET_ALPHA|RESET_TRANSFORM + I.loc = src + I.setDir(AM.dir) + I.alpha = 128 + + if(!blueprint_data) + blueprint_data = list() + blueprint_data += I + + +/turf/proc/add_blueprints_preround(atom/movable/AM) + if(!ticker || ticker.current_state != GAME_STATE_PLAYING) + add_blueprints(AM) + +/turf/proc/empty(turf_type=/turf/open/space) + // Remove all atoms except observers, landmarks, docking ports + var/turf/T0 = src + for(var/A in T0.GetAllContents()) + if(istype(A, /mob/dead)) + continue + if(istype(A, /obj/effect/landmark)) + continue + if(istype(A, /obj/docking_port)) + continue + qdel(A, force=TRUE) + + T0.ChangeTurf(turf_type) + + T0.redraw_lighting() + SSair.remove_from_active(T0) + T0.CalculateAdjacentTurfs() + SSair.add_to_active(T0,1) + +/turf/proc/is_transition_turf() + return + + +/turf/acid_act(acidpwr, acid_volume) + . = 1 + var/acid_type = /obj/effect/acid + if(acidpwr >= 200) //alien acid power + acid_type = /obj/effect/acid/alien + var/has_acid_effect = 0 + for(var/obj/O in src) + if(intact && O.level == 1) //hidden under the floor + continue + if(istype(O, acid_type)) + var/obj/effect/acid/A = O + A.acid_level = min(A.level + acid_volume * acidpwr, 12000)//capping acid level to limit power of the acid + has_acid_effect = 1 + continue + O.acid_act(acidpwr, acid_volume) + if(!has_acid_effect) + new acid_type(src, acidpwr, acid_volume) + + +/turf/proc/acid_melt() + return + + +/turf/proc/copyTurf(turf/T) + if(T.type != type) + var/obj/O + if(underlays.len) //we have underlays, which implies some sort of transparency, so we want to a snapshot of the previous turf as an underlay + O = new() + O.underlays.Add(T) + T.ChangeTurf(type) + if(underlays.len) + T.underlays = O.underlays + if(T.icon_state != icon_state) + T.icon_state = icon_state + if(T.icon != icon) + T.icon = icon + if(color) + T.atom_colours = atom_colours.Copy() + T.update_atom_colour() + if(T.dir != dir) + T.setDir(dir) + return T + +/turf/contents_explosion(severity, target) + for(var/atom/A in contents) + A.ex_act(severity, target) + CHECK_TICK + diff --git a/code/js/byjax.dm b/code/js/byjax.dm new file mode 100644 index 0000000..18b8180 --- /dev/null +++ b/code/js/byjax.dm @@ -0,0 +1,50 @@ +//this function places received data into element with specified id. +var/const/js_byjax = {" + +function replaceContent() { + var args = Array.prototype.slice.call(arguments); + var id = args\[0\]; + var content = args\[1\]; + var callback = null; + if(args\[2\]){ + callback = args\[2\]; + if(args\[3\]){ + args = args.slice(3); + } + } + var parent = document.getElementById(id); + if(typeof(parent)!=='undefined' && parent!=null){ + parent.innerHTML = content?content:''; + } + if(callback && window\[callback\]){ + window\[callback\].apply(null,args); + } +} +"} + +/* +sends data to control_id:replaceContent + +receiver - mob +control_id - window id (for windows opened with browse(), it'll be "windowname.browser") +target_element - HTML element id +new_content - HTML content +callback - js function that will be called after the data is sent +callback_args - arguments for callback function + +Be sure to include required js functions in your page, or it'll raise an exception. +*/ +/proc/send_byjax(receiver, control_id, target_element, new_content=null, callback=null, list/callback_args=null) + if(receiver && target_element && control_id) // && winexists(receiver, control_id)) + var/list/argums = list(target_element, new_content) + if(callback) + argums += callback + if(callback_args) + argums += callback_args + argums = list2params(argums) +/* if(callback_args) + argums += "&[list2params(callback_args)]" +*/ + receiver << output(argums,"[control_id]:replaceContent") + return + diff --git a/code/js/menus.dm b/code/js/menus.dm new file mode 100644 index 0000000..01137ce --- /dev/null +++ b/code/js/menus.dm @@ -0,0 +1,37 @@ +var/const/js_dropdowns = {" +function dropdowns() { + var divs = document.getElementsByTagName('div'); + var headers = new Array(); + var links = new Array(); + for(var i=0;i=0) { + elem.className = elem.className.replace('visible','hidden'); + this.className = this.className.replace('open','closed'); + this.innerHTML = this.innerHTML.replace('-','+'); + } + else { + elem.className = elem.className.replace('hidden','visible'); + this.className = this.className.replace('closed','open'); + this.innerHTML = this.innerHTML.replace('+','-'); + } + return false; + } + })(links\[i\]); + } + } +} +"} \ No newline at end of file diff --git a/code/modules/VR/vr_human.dm b/code/modules/VR/vr_human.dm new file mode 100644 index 0000000..f5d4fad --- /dev/null +++ b/code/modules/VR/vr_human.dm @@ -0,0 +1,55 @@ + + +/mob/living/carbon/human/virtual_reality + var/mob/living/carbon/human/real_me //The human controlling us, can be any human (including virtual ones... inception...) + var/obj/machinery/vr_sleeper/vr_sleeper + var/datum/action/quit_vr/quit_action + + +/mob/living/carbon/human/virtual_reality/New() + ..() + quit_action = new() + quit_action.Grant(src) + + +/mob/living/carbon/human/virtual_reality/death() + revert_to_reality() + ..() + + +/mob/living/carbon/human/virtual_reality/Destroy() + revert_to_reality() + return ..() + + +/mob/living/carbon/human/virtual_reality/ghost() + set category = "OOC" + set name = "Ghost" + set desc = "Relinquish your life and enter the land of the dead." + var/mob/living/carbon/human/H = real_me + revert_to_reality(FALSE, FALSE) + if(H) + H.ghost() + + +/mob/living/carbon/human/virtual_reality/proc/revert_to_reality(refcleanup = TRUE, deathchecks = TRUE) + if(real_me && mind) + mind.transfer_to(real_me) + if(deathchecks && vr_sleeper && vr_sleeper.you_die_in_the_game_you_die_for_real) + real_me.death(0) + if(refcleanup) + vr_sleeper.vr_human = null + vr_sleeper = null + real_me = null + + +/datum/action/quit_vr + name = "Quit Virtual Reality" + +/datum/action/quit_vr/Trigger() + if(..()) + if(istype(owner, /mob/living/carbon/human/virtual_reality)) + var/mob/living/carbon/human/virtual_reality/VR = owner + VR.revert_to_reality(FALSE, FALSE) + else + Remove(owner) diff --git a/code/modules/VR/vr_sleeper.dm b/code/modules/VR/vr_sleeper.dm new file mode 100644 index 0000000..475bb64 --- /dev/null +++ b/code/modules/VR/vr_sleeper.dm @@ -0,0 +1,184 @@ + + +//Glorified teleporter that puts you in a new human body. +// it's """VR""" +/obj/machinery/vr_sleeper + name = "virtual reality sleeper" + desc = "a sleeper modified to alter the subconscious state of the user, allowing them to visit virtual worlds" + icon = 'icons/obj/Cryogenic2.dmi' + icon_state = "sleeper" + state_open = TRUE + anchored = TRUE + var/you_die_in_the_game_you_die_for_real = FALSE + var/datum/effect_system/spark_spread/sparks + var/mob/living/carbon/human/virtual_reality/vr_human + var/static/list/available_vr_spawnpoints + var/vr_category = "default" //Specific category of spawn points to pick from + var/allow_creating_vr_humans = TRUE //So you can have vr_sleepers that always spawn you as a specific person or 1 life/chance vr games + var/outfit = /datum/outfit/vr_basic + +/obj/machinery/vr_sleeper/New() + ..() + sparks = new /datum/effect_system/spark_spread() + sparks.set_up(2,0) + sparks.attach(src) + + update_icon() + + if(!available_vr_spawnpoints || !available_vr_spawnpoints.len) //(re)build spawnpoint lists + available_vr_spawnpoints = list() + for(var/obj/effect/landmark/vr_spawn/V in landmarks_list) + available_vr_spawnpoints[V.vr_category] = list() + var/turf/T = get_turf(V) + if(T) + available_vr_spawnpoints[V.vr_category] |= T + + +/obj/machinery/vr_sleeper/attack_hand(mob/user) + if(occupant) + ui_interact(user) + else + if(state_open) + close_machine() + else + open_machine() + + +/obj/machinery/vr_sleeper/relaymove(mob/user) + open_machine() + + +/obj/machinery/vr_sleeper/Destroy() + open_machine() + cleanup_vr_human() + qdel(sparks) + sparks = null + return ..() + + +/obj/machinery/vr_sleeper/emag_act(mob/user) + you_die_in_the_game_you_die_for_real = TRUE + sparks.start() + + +/obj/machinery/vr_sleeper/update_icon() + icon_state = "[initial(icon_state)][state_open ? "-open" : ""]" + + +/obj/machinery/vr_sleeper/open_machine() + if(!state_open) + if(vr_human) + vr_human.revert_to_reality(FALSE, FALSE) + if(occupant) + SStgui.close_user_uis(occupant, src) + ..() + + +/obj/machinery/vr_sleeper/close_machine() + ..() + if(occupant) + ui_interact(occupant) + + +/obj/machinery/vr_sleeper/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/ui_state/state = default_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "vr_sleeper", "VR Sleeper", 475, 340, master_ui, state) + ui.open() + + +/obj/machinery/vr_sleeper/ui_act(action, params) + if(..()) + return + switch(action) + if("vr_connect") + if(ishuman(occupant) && occupant.mind) + occupant << "Transfering to virtual reality..." + if(vr_human) + vr_human.revert_to_reality(FALSE, FALSE) + occupant.mind.transfer_to(vr_human) + vr_human.real_me = occupant + vr_human << "Transfer successful! you are now playing as [vr_human] in VR!" + SStgui.close_user_uis(vr_human, src) + else + if(allow_creating_vr_humans) + occupant << "Virtual avatar not found, attempting to create one..." + var/turf/T = get_vr_spawnpoint() + if(T) + build_virtual_human(occupant, T) + vr_human << "Transfer successful! you are now playing as [vr_human] in VR!" + else + occupant << "Virtual world misconfigured, aborting transfer" + else + occupant << "The virtual world does not support the creation of new virtual avatars, aborting transfer" + . = TRUE + if("delete_avatar") + if(!occupant || usr == occupant) + if(vr_human) + qdel(vr_human) + else + usr << "The VR Sleeper's safeties prevent you from doing that." + . = TRUE + if("toggle_open") + if(state_open) + close_machine() + else + open_machine() + . = TRUE + + +/obj/machinery/vr_sleeper/ui_data(mob/user) + var/list/data = list() + if(vr_human && !qdeleted(vr_human)) + data["can_delete_avatar"] = TRUE + var/status + switch(user.stat) + if(CONSCIOUS) + status = "Conscious" + if(DEAD) + status = "Dead" + if(UNCONSCIOUS) + status = "Unconscious" + data["vr_avatar"] = list("name" = vr_human.name, "status" = status, "health" = vr_human.health, "maxhealth" = vr_human.maxHealth) + data["toggle_open"] = state_open + data["isoccupant"] = (user == occupant) + return data + + +/obj/machinery/vr_sleeper/proc/get_vr_spawnpoint() //proc so it can be overriden for team games or something + return safepick(available_vr_spawnpoints[vr_category]) + + +/obj/machinery/vr_sleeper/proc/build_virtual_human(mob/living/carbon/human/H, location, transfer = TRUE) + if(H) + cleanup_vr_human() + vr_human = new /mob/living/carbon/human/virtual_reality(location) + vr_human.vr_sleeper = src + vr_human.real_me = H + H.dna.transfer_identity(vr_human) + vr_human.name = H.name + vr_human.real_name = H.real_name + vr_human.socks = H.socks + vr_human.undershirt = H.undershirt + vr_human.underwear = H.underwear + vr_human.updateappearance(1,1,1) + if(outfit) + var/datum/outfit/O = new outfit() + O.equip(vr_human) + if(transfer && H.mind) + H.mind.transfer_to(vr_human) + + +/obj/machinery/vr_sleeper/proc/cleanup_vr_human() + if(vr_human) + vr_human.death(0) + + +/obj/effect/landmark/vr_spawn //places you can spawn in VR, auto selected by the vr_sleeper during get_vr_spawnpoint() + var/vr_category = "default" //So we can have specific sleepers, eg: "Basketball VR Sleeper", etc. + + +/datum/outfit/vr_basic + name = "basic vr" + uniform = /obj/item/clothing/under/color/random + shoes = /obj/item/clothing/shoes/sneakers/black diff --git a/code/modules/admin/DB_ban/functions.dm b/code/modules/admin/DB_ban/functions.dm new file mode 100644 index 0000000..e5dc1fd --- /dev/null +++ b/code/modules/admin/DB_ban/functions.dm @@ -0,0 +1,481 @@ +#define MAX_ADMIN_BANS_PER_ADMIN 1 + +//Either pass the mob you wish to ban in the 'banned_mob' attribute, or the banckey, banip and bancid variables. If both are passed, the mob takes priority! If a mob is not passed, banckey is the minimum that needs to be passed! banip and bancid are optional. +/datum/admins/proc/DB_ban_record(bantype, mob/banned_mob, duration = -1, reason, job = "", rounds = 0, banckey = null, banip = null, bancid = null) + + if(!check_rights(R_BAN)) + return + + establish_db_connection() + if(!dbcon.IsConnected()) + src << "Failed to establish database connection." + return + + var/serverip = "[world.internet_address]:[world.port]" + var/bantype_pass = 0 + var/bantype_str + var/maxadminbancheck //Used to limit the number of active bans of a certein type that each admin can give. Used to protect against abuse or mutiny. + var/announceinirc //When set, it announces the ban in irc. Intended to be a way to raise an alarm, so to speak. + var/blockselfban //Used to prevent the banning of yourself. + var/kickbannedckey //Defines whether this proc should kick the banned person, if they are connected (if banned_mob is defined). + //some ban types kick players after this proc passes (tempban, permaban), but some are specific to db_ban, so + //they should kick within this proc. + switch(bantype) + if(BANTYPE_PERMA) + bantype_str = "PERMABAN" + duration = -1 + bantype_pass = 1 + blockselfban = 1 + if(BANTYPE_TEMP) + bantype_str = "TEMPBAN" + bantype_pass = 1 + blockselfban = 1 + if(BANTYPE_JOB_PERMA) + bantype_str = "JOB_PERMABAN" + duration = -1 + bantype_pass = 1 + if(BANTYPE_JOB_TEMP) + bantype_str = "JOB_TEMPBAN" + bantype_pass = 1 + if(BANTYPE_ADMIN_PERMA) + bantype_str = "ADMIN_PERMABAN" + duration = -1 + bantype_pass = 1 + maxadminbancheck = 1 + announceinirc = 1 + blockselfban = 1 + kickbannedckey = 1 + if(BANTYPE_ADMIN_TEMP) + bantype_str = "ADMIN_TEMPBAN" + bantype_pass = 1 + maxadminbancheck = 1 + announceinirc = 1 + blockselfban = 1 + kickbannedckey = 1 + if( !bantype_pass ) return + if( !istext(reason) ) return + if( !isnum(duration) ) return + + var/ckey + var/computerid + var/ip + + if(ismob(banned_mob)) + ckey = banned_mob.ckey + if(banned_mob.client) + computerid = banned_mob.client.computer_id + ip = banned_mob.client.address + else + computerid = banned_mob.computer_id + ip = banned_mob.lastKnownIP + else if(banckey) + ckey = ckey(banckey) + computerid = bancid + ip = banip + + var/DBQuery/query = dbcon.NewQuery("SELECT id FROM [format_table_name("player")] WHERE ckey = '[ckey]'") + query.Execute() + var/validckey = 0 + if(query.NextRow()) + validckey = 1 + if(!validckey) + if(!banned_mob || (banned_mob && !IsGuestKey(banned_mob.key))) + message_admins("[key_name_admin(usr)] attempted to ban [ckey], but [ckey] has not been seen yet. Please only ban actual players.",1) + return + + var/a_ckey + var/a_computerid + var/a_ip + + if(src.owner && istype(src.owner, /client)) + a_ckey = src.owner:ckey + a_computerid = src.owner:computer_id + a_ip = src.owner:address + + if(blockselfban) + if(a_ckey == ckey) + usr << "You cannot apply this ban type on yourself." + return + + var/who + for(var/client/C in clients) + if(!who) + who = "[C]" + else + who += ", [C]" + + var/adminwho + for(var/client/C in admins) + if(!adminwho) + adminwho = "[C]" + else + adminwho += ", [C]" + + reason = sanitizeSQL(reason) + + if(maxadminbancheck) + var/DBQuery/adm_query = dbcon.NewQuery("SELECT count(id) AS num FROM [format_table_name("ban")] WHERE (a_ckey = '[a_ckey]') AND (bantype = 'ADMIN_PERMABAN' OR (bantype = 'ADMIN_TEMPBAN' AND expiration_time > Now())) AND isnull(unbanned)") + adm_query.Execute() + if(adm_query.NextRow()) + var/adm_bans = text2num(adm_query.item[1]) + if(adm_bans >= MAX_ADMIN_BANS_PER_ADMIN) + usr << "You already logged [MAX_ADMIN_BANS_PER_ADMIN] admin ban(s) or more. Do not abuse this function!" + return + + var/sql = "INSERT INTO [format_table_name("ban")] (`id`,`bantime`,`serverip`,`bantype`,`reason`,`job`,`duration`,`rounds`,`expiration_time`,`ckey`,`computerid`,`ip`,`a_ckey`,`a_computerid`,`a_ip`,`who`,`adminwho`,`edits`,`unbanned`,`unbanned_datetime`,`unbanned_ckey`,`unbanned_computerid`,`unbanned_ip`) VALUES (null, Now(), '[serverip]', '[bantype_str]', '[reason]', '[job]', [(duration)?"[duration]":"0"], [(rounds)?"[rounds]":"0"], Now() + INTERVAL [(duration>0) ? duration : 0] MINUTE, '[ckey]', '[computerid]', '[ip]', '[a_ckey]', '[a_computerid]', '[a_ip]', '[who]', '[adminwho]', '', null, null, null, null, null)" + var/DBQuery/query_insert = dbcon.NewQuery(sql) + query_insert.Execute() + usr << "Ban saved to database." + message_admins("[key_name_admin(usr)] has added a [bantype_str] for [ckey] [(job)?"([job])":""] [(duration > 0)?"([duration] minutes)":""] with the reason: \"[reason]\" to the ban database.",1) + + if(announceinirc) + send2irc("BAN ALERT","[a_ckey] applied a [bantype_str] on [ckey]") + + if(kickbannedckey) + if(banned_mob && banned_mob.client && banned_mob.client.ckey == banckey) + qdel(banned_mob.client) + return 1 + +/datum/admins/proc/DB_ban_unban(ckey, bantype, job = "") + + if(!check_rights(R_BAN)) + return + + var/bantype_str + if(bantype) + var/bantype_pass = 0 + switch(bantype) + if(BANTYPE_PERMA) + bantype_str = "PERMABAN" + bantype_pass = 1 + if(BANTYPE_TEMP) + bantype_str = "TEMPBAN" + bantype_pass = 1 + if(BANTYPE_JOB_PERMA) + bantype_str = "JOB_PERMABAN" + bantype_pass = 1 + if(BANTYPE_JOB_TEMP) + bantype_str = "JOB_TEMPBAN" + bantype_pass = 1 + if(BANTYPE_ADMIN_PERMA) + bantype_str = "ADMIN_PERMABAN" + bantype_pass = 1 + if(BANTYPE_ADMIN_TEMP) + bantype_str = "ADMIN_TEMPBAN" + bantype_pass = 1 + if(BANTYPE_ANY_FULLBAN) + bantype_str = "ANY" + bantype_pass = 1 + if(BANTYPE_ANY_JOB) + bantype_str = "ANYJOB" + bantype_pass = 1 + if( !bantype_pass ) return + + var/bantype_sql + if(bantype_str == "ANY") + bantype_sql = "(bantype = 'PERMABAN' OR (bantype = 'TEMPBAN' AND expiration_time > Now() ) )" + else if(bantype_str == "ANYJOB") + bantype_sql = "(bantype = 'JOB_PERMABAN' OR (bantype = 'JOB_TEMPBAN' AND expiration_time > Now() ) )" + else + bantype_sql = "bantype = '[bantype_str]'" + + var/sql = "SELECT id FROM [format_table_name("ban")] WHERE ckey = '[ckey]' AND [bantype_sql] AND (unbanned is null OR unbanned = false)" + if(job) + sql += " AND job = '[job]'" + + establish_db_connection() + if(!dbcon.IsConnected()) + return + + var/ban_id + var/ban_number = 0 //failsafe + + var/DBQuery/query = dbcon.NewQuery(sql) + query.Execute() + while(query.NextRow()) + ban_id = query.item[1] + ban_number++; + + if(ban_number == 0) + usr << "Database update failed due to no bans fitting the search criteria. If this is not a legacy ban you should contact the database admin." + return + + if(ban_number > 1) + usr << "Database update failed due to multiple bans fitting the search criteria. Note down the ckey, job and current time and contact the database admin." + return + + if(istext(ban_id)) + ban_id = text2num(ban_id) + if(!isnum(ban_id)) + usr << "Database update failed due to a ban ID mismatch. Contact the database admin." + return + + DB_ban_unban_by_id(ban_id) + +/datum/admins/proc/DB_ban_edit(banid = null, param = null) + + if(!check_rights(R_BAN)) + return + + if(!isnum(banid) || !istext(param)) + usr << "Cancelled" + return + + var/DBQuery/query = dbcon.NewQuery("SELECT ckey, duration, reason FROM [format_table_name("ban")] WHERE id = [banid]") + query.Execute() + + var/eckey = usr.ckey //Editing admin ckey + var/pckey //(banned) Player ckey + var/duration //Old duration + var/reason //Old reason + + if(query.NextRow()) + pckey = query.item[1] + duration = query.item[2] + reason = query.item[3] + else + usr << "Invalid ban id. Contact the database admin" + return + + reason = sanitizeSQL(reason) + var/value + + switch(param) + if("reason") + if(!value) + value = input("Insert the new reason for [pckey]'s ban", "New Reason", "[reason]", null) as null|text + value = sanitizeSQL(value) + if(!value) + usr << "Cancelled" + return + + var/DBQuery/update_query = dbcon.NewQuery("UPDATE [format_table_name("ban")] SET reason = '[value]', edits = CONCAT(edits,'- [eckey] changed ban reason from \\\"[reason]\\\" to \\\"[value]\\\"
          ') WHERE id = [banid]") + update_query.Execute() + message_admins("[key_name_admin(usr)] has edited a ban for [pckey]'s reason from [reason] to [value]",1) + if("duration") + if(!value) + value = input("Insert the new duration (in minutes) for [pckey]'s ban", "New Duration", "[duration]", null) as null|num + if(!isnum(value) || !value) + usr << "Cancelled" + return + + var/DBQuery/update_query = dbcon.NewQuery("UPDATE [format_table_name("ban")] SET duration = [value], edits = CONCAT(edits,'- [eckey] changed ban duration from [duration] to [value]
          '), expiration_time = DATE_ADD(bantime, INTERVAL [value] MINUTE) WHERE id = [banid]") + message_admins("[key_name_admin(usr)] has edited a ban for [pckey]'s duration from [duration] to [value]",1) + update_query.Execute() + if("unban") + if(alert("Unban [pckey]?", "Unban?", "Yes", "No") == "Yes") + DB_ban_unban_by_id(banid) + return + else + usr << "Cancelled" + return + else + usr << "Cancelled" + return + +/datum/admins/proc/DB_ban_unban_by_id(id) + + if(!check_rights(R_BAN)) + return + + var/sql = "SELECT ckey FROM [format_table_name("ban")] WHERE id = [id]" + + establish_db_connection() + if(!dbcon.IsConnected()) + return + + var/ban_number = 0 //failsafe + + var/pckey + var/DBQuery/query = dbcon.NewQuery(sql) + query.Execute() + while(query.NextRow()) + pckey = query.item[1] + ban_number++; + + if(ban_number == 0) + usr << "Database update failed due to a ban id not being present in the database." + return + + if(ban_number > 1) + usr << "Database update failed due to multiple bans having the same ID. Contact the database admin." + return + + if(!src.owner || !istype(src.owner, /client)) + return + + var/unban_ckey = src.owner:ckey + var/unban_computerid = src.owner:computer_id + var/unban_ip = src.owner:address + + var/sql_update = "UPDATE [format_table_name("ban")] SET unbanned = 1, unbanned_datetime = Now(), unbanned_ckey = '[unban_ckey]', unbanned_computerid = '[unban_computerid]', unbanned_ip = '[unban_ip]' WHERE id = [id]" + message_admins("[key_name_admin(usr)] has lifted [pckey]'s ban.",1) + + var/DBQuery/query_update = dbcon.NewQuery(sql_update) + query_update.Execute() + + +/client/proc/DB_ban_panel() + set category = "Admin" + set name = "Banning Panel" + set desc = "Edit admin permissions" + + if(!holder) + return + + holder.DB_ban_panel() + + +/datum/admins/proc/DB_ban_panel(playerckey = null, adminckey = null) + if(!usr.client) + return + + if(!check_rights(R_BAN)) + return + + establish_db_connection() + if(!dbcon.IsConnected()) + usr << "Failed to establish database connection." + return + + var/output = "
          " + + output += "" + + output += "" + output += "" + output += "
          " + output += "

          Banning panel

          " + output += "
          " + + output += "
          Add custom ban: (ONLY use this if you can't ban through any other method)" + output += "" + output += "" + output += "" + output += "" + output += "" + output += "" + output += "" + output += "
          Ban type:Ckey:
          IP: Computer id:
          Duration: Job:
          " + output += "Reason:

          " + output += "" + output += "
          " + + output += "
          " + + output += "
          Search: " + output += "" + output += "Ckey: " + output += "Admin ckey: " + output += "" + output += "
          " + output += "Please note that all jobban bans or unbans are in-effect the following round." + + if(adminckey || playerckey) + + var/blcolor = "#ffeeee" //banned light + var/bdcolor = "#ffdddd" //banned dark + var/ulcolor = "#eeffee" //unbanned light + var/udcolor = "#ddffdd" //unbanned dark + + output += "" + output += "" + output += "" + output += "" + output += "" + output += "" + output += "" + output += "" + + adminckey = ckey(adminckey) + playerckey = ckey(playerckey) + var/adminsearch = "" + var/playersearch = "" + if(adminckey) + adminsearch = "AND a_ckey = '[adminckey]' " + if(playerckey) + playersearch = "AND ckey = '[playerckey]' " + + var/DBQuery/select_query = dbcon.NewQuery("SELECT id, bantime, bantype, reason, job, duration, expiration_time, ckey, a_ckey, unbanned, unbanned_ckey, unbanned_datetime, edits FROM [format_table_name("ban")] WHERE 1 [playersearch] [adminsearch] ORDER BY bantime DESC") + select_query.Execute() + + while(select_query.NextRow()) + var/banid = select_query.item[1] + var/bantime = select_query.item[2] + var/bantype = select_query.item[3] + var/reason = select_query.item[4] + var/job = select_query.item[5] + var/duration = select_query.item[6] + var/expiration = select_query.item[7] + var/ckey = select_query.item[8] + var/ackey = select_query.item[9] + var/unbanned = select_query.item[10] + var/unbanckey = select_query.item[11] + var/unbantime = select_query.item[12] + var/edits = select_query.item[13] + + var/lcolor = blcolor + var/dcolor = bdcolor + if(unbanned) + lcolor = ulcolor + dcolor = udcolor + + var/typedesc ="" + switch(bantype) + if("PERMABAN") + typedesc = "PERMABAN" + if("TEMPBAN") + typedesc = "TEMPBAN
          ([duration] minutes [(unbanned) ? "" : "(Edit))"]
          Expires [expiration]
          " + if("JOB_PERMABAN") + typedesc = "JOBBAN
          ([job])" + if("JOB_TEMPBAN") + typedesc = "TEMP JOBBAN
          ([job])
          ([duration] minutes [(unbanned) ? "" : "(Edit))"]
          Expires [expiration]" + if("ADMIN_PERMABAN") + typedesc = "ADMIN PERMABAN" + if("ADMIN_TEMPBAN") + typedesc = "ADMIN TEMPBAN
          ([duration] minutes [(unbanned) ? "" : "(Edit))"]
          Expires [expiration]
          " + + output += "
          " + output += "" + output += "" + output += "" + output += "" + output += "" + output += "" + output += "" + output += "" + output += "" + if(edits) + output += "" + output += "" + output += "" + output += "" + output += "" + output += "" + if(unbanned) + output += "" + output += "" + output += "" + output += "" + output += "" + output += "" + + output += "
          TYPECKEYTIME APPLIEDADMINOPTIONS
          [typedesc][ckey][bantime][ackey][(unbanned) ? "" : "Unban"]
          Reason: [(unbanned) ? "" : "(Edit)"] \"[reason]\"
          EDITS
          [edits]
          UNBANNED by admin [unbanckey] on [unbantime]
           
          " + + usr << browse(output,"window=lookupbans;size=900x500") diff --git a/code/modules/admin/IsBanned.dm b/code/modules/admin/IsBanned.dm new file mode 100644 index 0000000..512e12f --- /dev/null +++ b/code/modules/admin/IsBanned.dm @@ -0,0 +1,187 @@ +//Blocks an attempt to connect before even creating our client datum thing. + +//How many new ckey matches before we revert the stickyban to it's roundstart state +//These are exclusive, so once it goes over one of these numbers, it reverts the ban +#define STICKYBAN_MAX_MATCHES 20 +#define STICKYBAN_MAX_EXISTING_USER_MATCHES 5 //ie, users who were connected before the ban triggered +#define STICKYBAN_MAX_ADMIN_MATCHES 2 + +/world/IsBanned(key,address,computer_id) + if (!key || !address || !computer_id) + log_access("Failed Login (invalid data): [key] [address]-[computer_id]") + return list("reason"="invalid login data", "desc"="Error: Could not check ban status, Please try again. Error message: Your computer provided invalid or blank information to the server on connection (byond username, IP, and Computer ID.) Provided information for reference: Username:'[key]' IP:'[address]' Computer ID:'[computer_id]'. (If you continue to get this error, please restart byond or contact byond support.)") + + if (text2num(computer_id) == 2147483647) //this cid causes stickybans to go haywire + log_access("Failed Login (invalid cid): [key] [address]-[computer_id]") + return list("reason"="invalid login data", "desc"="Error: Could not check ban status, Please try again. Error message: Your computer provided an invalid Computer ID.)") + var/admin = 0 + var/ckey = ckey(key) + if((ckey in admin_datums) || (ckey in deadmins)) + admin = 1 + + //Guest Checking + if(IsGuestKey(key)) + if (!guests_allowed) + log_access("Failed Login: [key] - Guests not allowed") + return list("reason"="guest", "desc"="\nReason: Guests not allowed. Please sign in with a byond account.") + if (config.panic_bunker && dbcon && dbcon.IsConnected()) + log_access("Failed Login: [key] - Guests not allowed during panic bunker") + return list("reason"="guest", "desc"="\nReason: Sorry but the server is currently not accepting connections from never before seen players or guests. If you have played on this server with a byond account before, please log in to the byond account you have played from.") + + //Population Cap Checking + if(config.extreme_popcap && living_player_count() >= config.extreme_popcap && !admin) + log_access("Failed Login: [key] - Population cap reached") + return list("reason"="popcap", "desc"= "\nReason: [config.extreme_popcap_message]") + + if(config.ban_legacy_system) + + //Ban Checking + . = CheckBan( ckey(key), computer_id, address ) + if(.) + if (admin) + log_admin("The admin [key] has been allowed to bypass a matching ban on [.["key"]]") + message_admins("The admin [key] has been allowed to bypass a matching ban on [.["key"]]") + addclientmessage(ckey,"You have been allowed to bypass a matching ban on [.["key"]]") + else + log_access("Failed Login: [key] [computer_id] [address] - Banned [.["reason"]]") + return . + + else + + var/ckeytext = ckey(key) + + if(!establish_db_connection()) + world.log << "Ban database connection failure. Key [ckeytext] not checked" + diary << "Ban database connection failure. Key [ckeytext] not checked" + return + + var/ipquery = "" + var/cidquery = "" + if(address) + ipquery = " OR ip = '[address]' " + + if(computer_id) + cidquery = " OR computerid = '[computer_id]' " + + var/DBQuery/query = dbcon.NewQuery("SELECT ckey, ip, computerid, a_ckey, reason, expiration_time, duration, bantime, bantype FROM [format_table_name("ban")] WHERE (ckey = '[ckeytext]' [ipquery] [cidquery]) AND (bantype = 'PERMABAN' OR bantype = 'ADMIN_PERMABAN' OR ((bantype = 'TEMPBAN' OR bantype = 'ADMIN_TEMPBAN') AND expiration_time > Now())) AND isnull(unbanned)") + + query.Execute() + + while(query.NextRow()) + var/pckey = query.item[1] + //var/pip = query.item[2] + //var/pcid = query.item[3] + var/ackey = query.item[4] + var/reason = query.item[5] + var/expiration = query.item[6] + var/duration = query.item[7] + var/bantime = query.item[8] + var/bantype = query.item[9] + if (bantype == "ADMIN_PERMABAN" || bantype == "ADMIN_TEMPBAN") + //admin bans MUST match on ckey to prevent cid-spoofing attacks + // as well as dynamic ip abuse + if (pckey != ckey) + continue + if (admin) + if (bantype == "ADMIN_PERMABAN" || bantype == "ADMIN_TEMPBAN") + log_admin("The admin [key] is admin banned, and has been disallowed access") + message_admins("The admin [key] is admin banned, and has been disallowed access") + else + log_admin("The admin [key] has been allowed to bypass a matching ban on [pckey]") + message_admins("The admin [key] has been allowed to bypass a matching ban on [pckey]") + addclientmessage(ckey,"You have been allowed to bypass a matching ban on [pckey]") + continue + var/expires = "" + if(text2num(duration) > 0) + expires = " The ban is for [duration] minutes and expires on [expiration] (server time)." + else + expires = " The is a permanent ban." + + var/desc = "\nReason: You, or another user of this computer or connection ([pckey]) is banned from playing here. The ban reason is:\n[reason]\nThis ban was applied by [ackey] on [bantime], [expires]" + + . = list("reason"="[bantype]", "desc"="[desc]") + + + log_access("Failed Login: [key] [computer_id] [address] - Banned [.["reason"]]") + return . + + var/list/ban = ..() //default pager ban stuff + if (ban) + var/bannedckey = "ERROR" + if (ban["ckey"]) + bannedckey = ban["ckey"] + + var/newmatch = FALSE + var/client/C = directory[ckey] + var/cachedban = SSstickyban.cache[bannedckey] + + //rogue ban in the process of being reverted. + if (cachedban && cachedban["reverting"]) + return null + + if (cachedban && ckey != bannedckey) + newmatch = TRUE + if (cachedban["keys"]) + if (cachedban["keys"][ckey]) + newmatch = FALSE + if (cachedban["matches_this_round"][ckey]) + newmatch = FALSE + + if (newmatch && cachedban) + var/list/newmatches = cachedban["matches_this_round"] + var/list/newmatches_connected = cachedban["existing_user_matches_this_round"] + var/list/newmatches_admin = cachedban["admin_matches_this_round"] + + newmatches[ckey] = ckey + if (C) + newmatches_connected[ckey] = ckey + if (admin) + newmatches_admin[ckey] = ckey + + if (\ + newmatches.len > STICKYBAN_MAX_MATCHES || \ + newmatches_connected.len > STICKYBAN_MAX_EXISTING_USER_MATCHES || \ + newmatches_admin.len > STICKYBAN_MAX_ADMIN_MATCHES \ + ) + if (cachedban["reverting"]) + return null + cachedban["reverting"] = TRUE + + world.SetConfig("ban", bannedckey, null) + + log_game("Stickyban on [bannedckey] detected as rogue, reverting to it's roundstart state") + message_admins("Stickyban on [bannedckey] detected as rogue, reverting to it's roundstart state") + //do not convert to timer. + spawn (5) + world.SetConfig("ban", bannedckey, null) + sleep(1) + world.SetConfig("ban", bannedckey, null) + cachedban["matches_this_round"] = list() + cachedban["existing_user_matches_this_round"] = list() + cachedban["admin_matches_this_round"] = list() + cachedban -= "reverting" + world.SetConfig("ban", bannedckey, list2stickyban(cachedban)) + return null + + //byond will not trigger isbanned() for "global" host bans, + //ie, ones where the "apply to this game only" checkbox is not checked (defaults to not checked) + //So it's safe to let admins walk thru host/sticky bans here + if (admin) + log_admin("The admin [key] has been allowed to bypass a matching host/sticky ban on [bannedckey]") + message_admins("The admin [key] has been allowed to bypass a matching host/sticky ban on [bannedckey]") + addclientmessage(ckey,"You have been allowed to bypass a matching host/sticky ban on [bannedckey]") + return null + + if (C) //user is already connected!. + C << "You are about to get disconnected for matching a sticky ban after you connected. If this turns out to be the ban evasion detection system going haywire, we will automatically detect this and revert the matches. if you feel that this is the case, please wait EXACTLY 6 seconds then reconnect using file -> reconnect to see if the match was reversed." + + var/desc = "\nReason:(StickyBan) You, or another user of this computer or connection ([bannedckey]) is banned from playing here. The ban reason is:\n[ban["message"]]\nThis ban was applied by [ban["admin"]]\nThis is a BanEvasion Detection System ban, if you think this ban is a mistake, please wait EXACTLY 6 seconds, then try again before filing an appeal.\n" + . = list("reason" = "Stickyban", "desc" = desc) + log_access("Failed Login: [key] [computer_id] [address] - StickyBanned [ban["message"]] Target Username: [bannedckey] Placed by [ban["admin"]]") + + return . + + +#undef STICKYBAN_MAX_MATCHES +#undef STICKYBAN_MAX_EXISTING_USER_MATCHES +#undef STICKYBAN_MAX_ADMIN_MATCHES diff --git a/code/modules/admin/NewBan.dm b/code/modules/admin/NewBan.dm new file mode 100644 index 0000000..5c54280 --- /dev/null +++ b/code/modules/admin/NewBan.dm @@ -0,0 +1,232 @@ +var/CMinutes = null +var/savefile/Banlist + + +/proc/CheckBan(ckey, id, address) + if(!Banlist) // if Banlist cannot be located for some reason + LoadBans() // try to load the bans + if(!Banlist) // uh oh, can't find bans! + return 0 // ABORT ABORT ABORT + + . = list() + var/appeal + if(config && config.banappeals) + appeal = "\nFor more information on your ban, or to appeal, head to [config.banappeals]" + Banlist.cd = "/base" + if( "[ckey][id]" in Banlist.dir ) + Banlist.cd = "[ckey][id]" + if (Banlist["temp"]) + if (!GetExp(Banlist["minutes"])) + ClearTempbans() + return 0 + else + .["desc"] = "\nReason: [Banlist["reason"]]\nExpires: [GetExp(Banlist["minutes"])]\nBy: [Banlist["bannedby"]][appeal]" + else + Banlist.cd = "/base/[ckey][id]" + .["desc"] = "\nReason: [Banlist["reason"]]\nExpires: PERMENANT\nBy: [Banlist["bannedby"]][appeal]" + .["reason"] = "ckey/id" + return . + else + for (var/A in Banlist.dir) + Banlist.cd = "/base/[A]" + var/matches + if( ckey == Banlist["key"] ) + matches += "ckey" + if( id == Banlist["id"] ) + if(matches) + matches += "/" + matches += "id" + if( address == Banlist["ip"] ) + if(matches) + matches += "/" + matches += "ip" + + if(matches) + if(Banlist["temp"]) + if (!GetExp(Banlist["minutes"])) + ClearTempbans() + return 0 + else + .["desc"] = "\nReason: [Banlist["reason"]]\nExpires: [GetExp(Banlist["minutes"])]\nBy: [Banlist["bannedby"]][appeal]" + else + .["desc"] = "\nReason: [Banlist["reason"]]\nExpires: PERMENANT\nBy: [Banlist["bannedby"]][appeal]" + .["reason"] = matches + return . + return 0 + +/proc/UpdateTime() //No idea why i made this a proc. + CMinutes = (world.realtime / 10) / 60 + return 1 + +/proc/LoadBans() + + Banlist = new("data/banlist.bdb") + log_admin("Loading Banlist") + + if (!length(Banlist.dir)) log_admin("Banlist is empty.") + + if (!Banlist.dir.Find("base")) + log_admin("Banlist missing base dir.") + Banlist.dir.Add("base") + Banlist.cd = "/base" + else if (Banlist.dir.Find("base")) + Banlist.cd = "/base" + + ClearTempbans() + return 1 + +/proc/ClearTempbans() + UpdateTime() + + Banlist.cd = "/base" + for (var/A in Banlist.dir) + Banlist.cd = "/base/[A]" + if (!Banlist["key"] || !Banlist["id"]) + RemoveBan(A) + log_admin("Invalid Ban.") + message_admins("Invalid Ban.") + continue + + if (!Banlist["temp"]) continue + if (CMinutes >= Banlist["minutes"]) RemoveBan(A) + + return 1 + + +/proc/AddBan(ckey, computerid, reason, bannedby, temp, minutes, address) + + var/bantimestamp + + if (temp) + UpdateTime() + bantimestamp = CMinutes + minutes + + Banlist.cd = "/base" + if ( Banlist.dir.Find("[ckey][computerid]") ) + usr << text("Ban already exists.") + return 0 + else + Banlist.dir.Add("[ckey][computerid]") + Banlist.cd = "/base/[ckey][computerid]" + Banlist["key"] << ckey + Banlist["id"] << computerid + Banlist["ip"] << address + Banlist["reason"] << reason + Banlist["bannedby"] << bannedby + Banlist["temp"] << temp + if (temp) + Banlist["minutes"] << bantimestamp + if(!temp) + add_note(ckey, "Permanently banned - [reason]", null, bannedby, 0, null, 0) + else + add_note(ckey, "Banned for [minutes] minutes - [reason]", null, bannedby, 0, null, 0) + return 1 + +/proc/RemoveBan(foldername) + var/key + var/id + + Banlist.cd = "/base/[foldername]" + Banlist["key"] >> key + Banlist["id"] >> id + Banlist.cd = "/base" + + if (!Banlist.dir.Remove(foldername)) return 0 + + if(!usr) + log_admin("Ban Expired: [key]") + message_admins("Ban Expired: [key]") + else + ban_unban_log_save("[key_name(usr)] unbanned [key]") + log_admin("[key_name(usr)] unbanned [key]") + message_admins("[key_name_admin(usr)] unbanned: [key]") + feedback_inc("ban_unban",1) + usr.client.holder.DB_ban_unban( ckey(key), BANTYPE_ANY_FULLBAN) + for (var/A in Banlist.dir) + Banlist.cd = "/base/[A]" + if (key == Banlist["key"] /*|| id == Banlist["id"]*/) + Banlist.cd = "/base" + Banlist.dir.Remove(A) + continue + + return 1 + +/proc/GetExp(minutes as num) + UpdateTime() + var/exp = minutes - CMinutes + if (exp <= 0) + return 0 + else + var/timeleftstring + if (exp >= 1440) //1440 = 1 day in minutes + timeleftstring = "[round(exp / 1440, 0.1)] Days" + else if (exp >= 60) //60 = 1 hour in minutes + timeleftstring = "[round(exp / 60, 0.1)] Hours" + else + timeleftstring = "[exp] Minutes" + return timeleftstring + +/datum/admins/proc/unbanpanel() + var/count = 0 + var/dat + //var/dat = "
          Unban Player: \blue(U) = Unban , (E) = Edit Ban\green (Total
          " + Banlist.cd = "/base" + for (var/A in Banlist.dir) + count++ + Banlist.cd = "/base/[A]" + var/ref = "\ref[src]" + var/key = Banlist["key"] + var/id = Banlist["id"] + var/ip = Banlist["ip"] + var/reason = Banlist["reason"] + var/by = Banlist["bannedby"] + var/expiry + if(Banlist["temp"]) + expiry = GetExp(Banlist["minutes"]) + if(!expiry) + expiry = "Removal Pending" + else + expiry = "Permaban" + + dat += text("") + + dat += "
          (U)(E) Key: [key]ComputerID: [id]IP: [ip] [expiry](By: [by])(Reason: [reason])
          " + dat = "
          Bans: (U) = Unban , (E) = Edit Ban - ([count] Bans)
          [dat]" + usr << browse(dat, "window=unbanp;size=875x400") + +//////////////////////////////////// DEBUG //////////////////////////////////// + +/proc/CreateBans() + + UpdateTime() + + var/i + var/last + + for(i=0, i<1001, i++) + var/a = pick(1,0) + var/b = pick(1,0) + if(b) + Banlist.cd = "/base" + Banlist.dir.Add("trash[i]trashid[i]") + Banlist.cd = "/base/trash[i]trashid[i]" + Banlist["key"] << "trash[i]" + else + Banlist.cd = "/base" + Banlist.dir.Add("[last]trashid[i]") + Banlist.cd = "/base/[last]trashid[i]" + Banlist["key"] << last + Banlist["id"] << "trashid[i]" + Banlist["reason"] << "Trashban[i]." + Banlist["temp"] << a + Banlist["minutes"] << CMinutes + rand(1,2000) + Banlist["bannedby"] << "trashmin" + last = "trash[i]" + + Banlist.cd = "/base" + +/proc/ClearAllBans() + Banlist.cd = "/base" + for (var/A in Banlist.dir) + RemoveBan(A) + diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm new file mode 100644 index 0000000..217741a --- /dev/null +++ b/code/modules/admin/admin.dm @@ -0,0 +1,829 @@ + +var/global/BSACooldown = 0 + +//////////////////////////////// +/proc/message_admins(msg) + msg = "ADMIN LOG: [msg]" + admins << msg + +/proc/relay_msg_admins(msg) + msg = "RELAY: [msg]" + admins << msg + + +///////////////////////////////////////////////////////////////////////////////////////////////Panels + +/datum/admins/proc/show_player_panel(mob/M in mob_list) + set category = "Admin" + set name = "Show Player Panel" + set desc="Edit player (respawn, ban, heal, etc)" + + if(!check_rights()) + return + + if(!isobserver(usr)) + log_game("[key_name_admin(usr)] checked the player panel while in game.") + + if(!M) + usr << "You seem to be selecting a mob that doesn't exist anymore." + return + + var/body = "Options for [M.key]" + body += "Options panel for [M]" + if(M.client) + body += " played by [M.client] " + body += "\[[M.client.holder ? M.client.holder.rank : "Player"]\]" + + if(isnewplayer(M)) + body += " Hasn't Entered Game " + else + body += " \[Heal\] " + + body += "

          \[ " + body += "VV - " + body += "TP - " + body += "PM - " + body += "SM - " + body += "FLW\]
          " + + body += "Mob type = [M.type]

          " + + body += "Kick | " + body += "Ban | " + body += "Jobban | " + body += "Identity Ban | " + if(jobban_isbanned(M, "OOC")) + body+= "OOCBan | " + else + body+= "OOCBan | " + if(jobban_isbanned(M, "emote")) + body+= "EmoteBan | " + else + body+= "Emoteban | " + + body += "Notes | " + if(M.client) + if(M.client.check_watchlist(M.client.ckey)) + body += "Remove from Watchlist | " + body += "Edit Watchlist reason " + else + body += "Add to Watchlist " + + body += "| Prison | " + body += "\ Send back to Lobby | " + var/muted = M.client.prefs.muted + body += "
          Mute: " + body += "\[IC | " + body += "OOC | " + body += "PRAY | " + body += "ADMINHELP | " + body += "DEADCHAT\]" + body += "(toggle all)" + + body += "

          " + body += "Jump to | " + body += "Get | " + body += "Send To" + + body += "

          " + body += "Traitor panel | " + body += "Narrate to | " + body += "Subtle message" + + if (M.client) + if(!isnewplayer(M)) + body += "

          " + body += "Transformation:" + body += "
          " + + //Human + if(ishuman(M)) + body += "Human | " + else + body += "Humanize | " + + //Monkey + if(ismonkey(M)) + body += "Monkeyized | " + else + body += "Monkeyize | " + + //Corgi + if(iscorgi(M)) + body += "Corgized | " + else + body += "Corgize | " + + //AI / Cyborg + if(isAI(M)) + body += "Is an AI " + else if(ishuman(M)) + body += "Make AI | " + body += "Make Robot | " + body += "Make Alien | " + body += "Make Slime | " + body += "Make Blob | " + + //Simple Animals + if(isanimal(M)) + body += "Re-Animalize | " + else + body += "Animalize | " + + body += "

          " + body += "Rudimentary transformation:
          These transformations only create a new mob type and copy stuff over. They do not take into account MMIs and similar mob-specific things. The buttons in 'Transformations' are preferred, when possible.

          " + body += "Observer | " + body += "\[ Alien: Drone, " + body += "Hunter, " + body += "Sentinel, " + body += "Praetorian, " + body += "Queen, " + body += "Larva \] " + body += "Human " + body += "\[ slime: Baby, " + body += "Adult \] " + body += "Monkey | " + body += "Cyborg | " + body += "Cat | " + body += "Runtime | " + body += "Corgi | " + body += "Ian | " + body += "Crab | " + body += "Coffee | " + //body += "Parrot | " + //body += "Poly | " + body += "\[ Construct: Juggernaut , " + body += "Artificer , " + body += "Wraith \] " + body += "Shade" + body += "
          " + + if (M.client) + body += "

          " + body += "Other actions:" + body += "
          " + body += "Forcesay | " + body += "Thunderdome 1 | " + body += "Thunderdome 2 | " + body += "Thunderdome Admin | " + body += "Thunderdome Observer | " + + body += "
          " + body += "" + + usr << browse(body, "window=adminplayeropts-\ref[M];size=550x515") + feedback_add_details("admin_verb","SPP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + + +/datum/admins/proc/access_news_network() //MARKER + set category = "Fun" + set name = "Access Newscaster Network" + set desc = "Allows you to view, add and edit news feeds." + + if (!istype(src,/datum/admins)) + src = usr.client.holder + if (!istype(src,/datum/admins)) + usr << "Error: you are not an admin!" + return + var/dat + dat = text("Admin Newscaster

          Admin Newscaster Unit

          ") + + switch(admincaster_screen) + if(0) + dat += "Welcome to the admin newscaster.
          Here you can add, edit and censor every newspiece on the network." + dat += "
          Feed channels and stories entered through here will be uneditable and handled as official news by the rest of the units." + dat += "
          Note that this panel allows full freedom over the news network, there are no constrictions except the few basic ones. Don't break things!" + if(news_network.wanted_issue.active) + dat+= "
          Read Wanted Issue" + dat+= "

          Create Feed Channel" + dat+= "
          View Feed Channels" + dat+= "
          Submit new Feed story" + dat+= "

          Exit" + var/wanted_already = 0 + if(news_network.wanted_issue.active) + wanted_already = 1 + dat+="
          Feed Security functions:
          " + dat+="
          [(wanted_already) ? ("Manage") : ("Publish")] \"Wanted\" Issue" + dat+="
          Censor Feed Stories" + dat+="
          Mark Feed Channel with Nanotrasen D-Notice (disables and locks the channel." + dat+="

          The newscaster recognises you as:
          [src.admin_signature]
          " + if(1) + dat+= "Station Feed Channels
          " + if( isemptylist(news_network.network_channels) ) + dat+="No active channels found..." + else + for(var/datum/newscaster/feed_channel/CHANNEL in news_network.network_channels) + if(CHANNEL.is_admin_channel) + dat+="[CHANNEL.channel_name]
          " + else + dat+="[CHANNEL.channel_name] [(CHANNEL.censored) ? ("***") : ()]
          " + dat+="

          Refresh" + dat+="
          Back" + if(2) + dat+="Creating new Feed Channel..." + dat+="
          Channel Name: [src.admincaster_feed_channel.channel_name]
          " + dat+="Channel Author:[src.admin_signature]
          " + dat+="Will Accept Public Feeds: [(src.admincaster_feed_channel.locked) ? ("NO") : ("YES")]

          " + dat+="
          Submit

          Cancel
          " + if(3) + dat+="Creating new Feed Message..." + dat+="
          Receiving Channel: [src.admincaster_feed_channel.channel_name]
          " //MARK + dat+="Message Author:[src.admin_signature]
          " + dat+="Message Body: [src.admincaster_feed_message.returnBody(-1)]
          " + dat+="
          Submit

          Cancel
          " + if(4) + dat+="Feed story successfully submitted to [src.admincaster_feed_channel.channel_name].

          " + dat+="
          Return
          " + if(5) + dat+="Feed Channel [src.admincaster_feed_channel.channel_name] created successfully.

          " + dat+="
          Return
          " + if(6) + dat+="ERROR: Could not submit Feed story to Network.

          " + if(src.admincaster_feed_channel.channel_name=="") + dat+="•Invalid receiving channel name.
          " + if(src.admincaster_feed_message.returnBody(-1) == "" || src.admincaster_feed_message.returnBody(-1) == "\[REDACTED\]") + dat+="•Invalid message body.
          " + dat+="
          Return
          " + if(7) + dat+="ERROR: Could not submit Feed Channel to Network.

          " + if(src.admincaster_feed_channel.channel_name =="" || src.admincaster_feed_channel.channel_name == "\[REDACTED\]") + dat+="•Invalid channel name.
          " + var/check = 0 + for(var/datum/newscaster/feed_channel/FC in news_network.network_channels) + if(FC.channel_name == src.admincaster_feed_channel.channel_name) + check = 1 + break + if(check) + dat+="•Channel name already in use.
          " + dat+="
          Return
          " + if(9) + dat+="[admincaster_feed_channel.channel_name]: \[created by: [admincaster_feed_channel.returnAuthor(-1)]\]
          " + if(src.admincaster_feed_channel.censored) + dat+="ATTENTION: This channel has been deemed as threatening to the welfare of the station, and marked with a Nanotrasen D-Notice.
          " + dat+="No further feed story additions are allowed while the D-Notice is in effect.

          " + else + if( isemptylist(src.admincaster_feed_channel.messages) ) + dat+="No feed messages found in channel...
          " + else + var/i = 0 + for(var/datum/newscaster/feed_message/MESSAGE in src.admincaster_feed_channel.messages) + i++ + dat+="-[MESSAGE.returnBody(-1)]
          " + if(MESSAGE.img) + usr << browse_rsc(MESSAGE.img, "tmp_photo[i].png") + dat+="

          " + dat+="\[Story by [MESSAGE.returnAuthor(-1)]\]
          " + dat+="[MESSAGE.comments.len] comment[MESSAGE.comments.len > 1 ? "s" : ""]:
          " + for(var/datum/newscaster/feed_comment/comment in MESSAGE.comments) + dat+="[comment.body]
          [comment.author] [comment.time_stamp]
          " + dat+="
          " + dat+="

          Refresh" + dat+="
          Back" + if(10) + dat+="Nanotrasen Feed Censorship Tool
          " + dat+="NOTE: Due to the nature of news Feeds, total deletion of a Feed Story is not possible.
          " + dat+="Keep in mind that users attempting to view a censored feed will instead see the \[REDACTED\] tag above it.
          " + dat+="
          Select Feed channel to get Stories from:
          " + if(isemptylist(news_network.network_channels)) + dat+="No feed channels found active...
          " + else + for(var/datum/newscaster/feed_channel/CHANNEL in news_network.network_channels) + dat+="[CHANNEL.channel_name] [(CHANNEL.censored) ? ("***") : ()]
          " + dat+="
          Cancel" + if(11) + dat+="Nanotrasen D-Notice Handler
          " + dat+="A D-Notice is to be bestowed upon the channel if the handling Authority deems it as harmful for the station's" + dat+="morale, integrity or disciplinary behaviour. A D-Notice will render a channel unable to be updated by anyone, without deleting any feed" + dat+="stories it might contain at the time. You can lift a D-Notice if you have the required access at any time.
          " + if(isemptylist(news_network.network_channels)) + dat+="No feed channels found active...
          " + else + for(var/datum/newscaster/feed_channel/CHANNEL in news_network.network_channels) + dat+="[CHANNEL.channel_name] [(CHANNEL.censored) ? ("***") : ()]
          " + + dat+="
          Back" + if(12) + dat+="[src.admincaster_feed_channel.channel_name]: \[ created by: [src.admincaster_feed_channel.returnAuthor(-1)] \]
          " + dat+="[(src.admincaster_feed_channel.authorCensor) ? ("Undo Author censorship") : ("Censor channel Author")]
          " + + if( isemptylist(src.admincaster_feed_channel.messages) ) + dat+="No feed messages found in channel...
          " + else + for(var/datum/newscaster/feed_message/MESSAGE in src.admincaster_feed_channel.messages) + dat+="-[MESSAGE.returnBody(-1)]
          \[Story by [MESSAGE.returnAuthor(-1)]\]
          " + dat+="[(MESSAGE.bodyCensor) ? ("Undo story censorship") : ("Censor story")] - [(MESSAGE.authorCensor) ? ("Undo Author Censorship") : ("Censor message Author")]
          " + dat+="[MESSAGE.comments.len] comment[MESSAGE.comments.len > 1 ? "s" : ""]: [MESSAGE.locked ? "Unlock" : "Lock"]
          " + for(var/datum/newscaster/feed_comment/comment in MESSAGE.comments) + dat+="[comment.body] X
          [comment.author] [comment.time_stamp]
          " + dat+="
          Back" + if(13) + dat+="[src.admincaster_feed_channel.channel_name]: \[ created by: [src.admincaster_feed_channel.returnAuthor(-1)] \]
          " + dat+="Channel messages listed below. If you deem them dangerous to the station, you can Bestow a D-Notice upon the channel.
          " + if(src.admincaster_feed_channel.censored) + dat+="ATTENTION: This channel has been deemed as threatening to the welfare of the station, and marked with a Nanotrasen D-Notice.
          " + dat+="No further feed story additions are allowed while the D-Notice is in effect.

          " + else + if( isemptylist(src.admincaster_feed_channel.messages) ) + dat+="No feed messages found in channel...
          " + else + for(var/datum/newscaster/feed_message/MESSAGE in src.admincaster_feed_channel.messages) + dat+="-[MESSAGE.returnBody(-1)]
          \[Story by [MESSAGE.returnAuthor(-1)]\]
          " + dat+="
          Back" + if(14) + dat+="Wanted Issue Handler:" + var/wanted_already = 0 + var/end_param = 1 + if(news_network.wanted_issue.active) + wanted_already = 1 + end_param = 2 + if(wanted_already) + dat+="
          A wanted issue is already in Feed Circulation. You can edit or cancel it below.
          " + dat+="
          " + dat+="Criminal Name: [src.admincaster_wanted_message.criminal]
          " + dat+="Description: [src.admincaster_wanted_message.body]
          " + if(wanted_already) + dat+="Wanted Issue created by:[news_network.wanted_issue.scannedUser]
          " + else + dat+="Wanted Issue will be created under prosecutor:[src.admin_signature]
          " + dat+="
          [(wanted_already) ? ("Edit Issue") : ("Submit")]" + if(wanted_already) + dat+="
          Take down Issue" + dat+="
          Cancel" + if(15) + dat+="Wanted issue for [src.admincaster_wanted_message.criminal] is now in Network Circulation.

          " + dat+="
          Return
          " + if(16) + dat+="ERROR: Wanted Issue rejected by Network.

          " + if(src.admincaster_wanted_message.criminal =="" || src.admincaster_wanted_message.criminal == "\[REDACTED\]") + dat+="•Invalid name for person wanted.
          " + if(src.admincaster_wanted_message.body == "" || src.admincaster_wanted_message.body == "\[REDACTED\]") + dat+="•Invalid description.
          " + dat+="
          Return
          " + if(17) + dat+="Wanted Issue successfully deleted from Circulation
          " + dat+="
          Return
          " + if(18) + dat+="-- STATIONWIDE WANTED ISSUE --
          \[Submitted by: [news_network.wanted_issue.scannedUser]\]
          " + dat+="Criminal: [news_network.wanted_issue.criminal]
          " + dat+="Description: [news_network.wanted_issue.body]
          " + dat+="Photo:: " + if(news_network.wanted_issue.img) + usr << browse_rsc(news_network.wanted_issue.img, "tmp_photow.png") + dat+="
          " + else + dat+="None" + dat+="
          Back
          " + if(19) + dat+="Wanted issue for [src.admincaster_wanted_message.criminal] successfully edited.

          " + dat+="
          Return
          " + else + dat+="I'm sorry to break your immersion. This shit's bugged. Report this bug to Agouri, polyxenitopalidou@gmail.com" + + //world << "Channelname: [src.admincaster_feed_channel.channel_name] [src.admincaster_feed_channel.author]" + //world << "Msg: [src.admincaster_feed_message.author] [src.admincaster_feed_message.body]" + usr << browse(dat, "window=admincaster_main;size=400x600") + onclose(usr, "admincaster_main") + + +/datum/admins/proc/Game() + if(!check_rights(0)) + return + + var/dat = {" +
          Game Panel

          \n + Change Game Mode
          + "} + if(master_mode == "secret") + dat += "(Force Secret Mode)
          " + + dat += {" +
          + Create Object
          + Quick Create Object
          + Create Turf
          + Create Mob
          + "} + + if(marked_datum && istype(marked_datum, /atom)) + dat += "Duplicate Marked Datum
          " + + usr << browse(dat, "window=admin2;size=210x200") + return + +/////////////////////////////////////////////////////////////////////////////////////////////////admins2.dm merge +//i.e. buttons/verbs + + +/datum/admins/proc/restart() + set category = "Server" + set name = "Hard Restart" + set desc="Restarts the world immediately" + if (!usr.client.holder) + return + var/confirm = alert("Restart the game world?", "Restart", "Yes", "Cancel") + if(confirm == "Cancel") + return + if(confirm == "Yes") + ticker.delay_end = 0 + feedback_add_details("admin_verb","R") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + world.Reboot("Initiated by [usr.client.holder.fakekey ? "Admin" : usr.key].", "end_error", "admin reboot - by [usr.key] [usr.client.holder.fakekey ? "(stealth)" : ""]", 10) + +/datum/admins/proc/end_round() + set category = "Server" + set name = "End Round" + set desc = "Attempts to produce a round end report and then restart the server organically." + + if (!usr.client.holder) + return + var/confirm = alert("End the round and restart the game world?", "End Round", "Yes", "Cancel") + if(confirm == "Cancel") + return + if(confirm == "Yes") + ticker.force_ending = 1 + feedback_add_details("admin_verb","ER") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + + +/datum/admins/proc/announce() + set category = "Special Verbs" + set name = "Announce" + set desc="Announce your desires to the world" + if(!check_rights(0)) + return + + var/message = input("Global message to send:", "Admin Announce", null, null) as message + if(message) + if(!check_rights(R_SERVER,0)) + message = adminscrub(message,500) + world << "[usr.client.holder.fakekey ? "Administrator" : usr.key] Announces:\n \t [message]" + log_admin("Announce: [key_name(usr)] : [message]") + feedback_add_details("admin_verb","A") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/datum/admins/proc/set_admin_notice() + set category = "Special Verbs" + set name = "Set Admin Notice" + set desc ="Set an announcement that appears to everyone who joins the server. Only lasts this round" + if(!check_rights(0)) + return + + var/new_admin_notice = input(src,"Set a public notice for this round. Everyone who joins the server will see it.\n(Leaving it blank will delete the current notice):","Set Notice",admin_notice) as message|null + if(new_admin_notice == null) + return + if(new_admin_notice == admin_notice) + return + if(new_admin_notice == "") + message_admins("[key_name(usr)] removed the admin notice.") + log_admin("[key_name(usr)] removed the admin notice:\n[admin_notice]") + else + message_admins("[key_name(usr)] set the admin notice.") + log_admin("[key_name(usr)] set the admin notice:\n[new_admin_notice]") + world << "Admin Notice:\n \t [new_admin_notice]" + feedback_add_details("admin_verb","SAN") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + admin_notice = new_admin_notice + return + +/datum/admins/proc/toggleooc() + set category = "Server" + set desc="Toggle dis bitch" + set name="Toggle OOC" + toggle_ooc() + log_admin("[key_name(usr)] toggled OOC.") + message_admins("[key_name_admin(usr)] toggled OOC.") + feedback_add_details("admin_verb","TOOC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/datum/admins/proc/toggleoocdead() + set category = "Server" + set desc="Toggle dis bitch" + set name="Toggle Dead OOC" + dooc_allowed = !( dooc_allowed ) + + log_admin("[key_name(usr)] toggled OOC.") + message_admins("[key_name_admin(usr)] toggled Dead OOC.") + feedback_add_details("admin_verb","TDOOC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! +/* +/datum/admins/proc/toggletraitorscaling() + set category = "Server" + set desc="Toggle traitor scaling" + set name="Toggle Traitor Scaling" + traitor_scaling = !traitor_scaling + log_admin("[key_name(usr)] toggled Traitor Scaling to [traitor_scaling].") + message_admins("[key_name_admin(usr)] toggled Traitor Scaling [traitor_scaling ? "on" : "off"].") + feedback_add_details("admin_verb","TTS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! +*/ +/datum/admins/proc/startnow() + set category = "Server" + set desc="Start the round RIGHT NOW" + set name="Start Now" + if(ticker.current_state == GAME_STATE_PREGAME) + ticker.can_fire = 1 + ticker.timeLeft = 0 + log_admin("[usr.key] has started the game.") + message_admins("[usr.key] has started the game.") + feedback_add_details("admin_verb","SN") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + return 1 + else if (ticker.current_state == GAME_STATE_STARTUP) + usr << "Error: Start Now: Game is in startup, please wait until it has finished." + else + usr << "Error: Start Now: Game has already started." + + return 0 + +/datum/admins/proc/toggleenter() + set category = "Server" + set desc="People can't enter" + set name="Toggle Entering" + enter_allowed = !( enter_allowed ) + if (!( enter_allowed )) + world << "New players may no longer enter the game." + else + world << "New players may now enter the game." + log_admin("[key_name(usr)] toggled new player game entering.") + message_admins("[key_name_admin(usr)] toggled new player game entering.") + world.update_status() + feedback_add_details("admin_verb","TE") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/datum/admins/proc/toggleAI() + set category = "Server" + set desc="People can't be AI" + set name="Toggle AI" + config.allow_ai = !( config.allow_ai ) + if (!( config.allow_ai )) + world << "The AI job is no longer chooseable." + else + world << "The AI job is chooseable now." + log_admin("[key_name(usr)] toggled AI allowed.") + world.update_status() + feedback_add_details("admin_verb","TAI") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/datum/admins/proc/toggleaban() + set category = "Server" + set desc="Respawn basically" + set name="Toggle Respawn" + abandon_allowed = !( abandon_allowed ) + if (abandon_allowed) + world << "You may now respawn." + else + world << "You may no longer respawn :(" + message_admins("[key_name_admin(usr)] toggled respawn to [abandon_allowed ? "On" : "Off"].") + log_admin("[key_name(usr)] toggled respawn to [abandon_allowed ? "On" : "Off"].") + world.update_status() + feedback_add_details("admin_verb","TR") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/datum/admins/proc/delay() + set category = "Server" + set desc="Delay the game start" + set name="Delay pre-game" + + var/newtime = input("Set a new time in seconds. Set -1 for indefinite delay.","Set Delay",round(ticker.timeLeft/10)) as num|null + if(ticker.current_state > GAME_STATE_PREGAME) + return alert("Too late... The game has already started!") + if(newtime) + ticker.timeLeft = newtime * 10 + if(newtime < 0) + world << "The game start has been delayed." + log_admin("[key_name(usr)] delayed the round start.") + else + world << "The game will start in [newtime] seconds." + world << 'sound/ai/attention.ogg' + log_admin("[key_name(usr)] set the pre-game delay to [newtime] seconds.") + feedback_add_details("admin_verb","DELAY") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/datum/admins/proc/unprison(mob/M in mob_list) + set category = "Admin" + set name = "Unprison" + if (M.z == ZLEVEL_CENTCOM) + M.loc = pick(latejoin) + message_admins("[key_name_admin(usr)] has unprisoned [key_name_admin(M)]") + log_admin("[key_name(usr)] has unprisoned [key_name(M)]") + else + alert("[M.name] is not prisoned.") + feedback_add_details("admin_verb","UP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +////////////////////////////////////////////////////////////////////////////////////////////////ADMIN HELPER PROCS + +/* +/datum/admins/proc/get_sab_desc(var/target) + switch(target) + if(1) + return "Destroy at least 70% of the plasma canisters on the station" + if(2) + return "Destroy the AI" + if(3) + var/count = 0 + for(var/mob/living/carbon/monkey/Monkey in world) + if(Monkey.z == 1) + count++ + return "Kill all [count] of the monkeys on the station" + if(4) + return "Cut power to at least 80% of the station" + else + return "Error: Invalid sabotage target: [target]" +*/ +/datum/admins/proc/spawn_atom(object as text) + set category = "Debug" + set desc = "(atom path) Spawn an atom" + set name = "Spawn" + + if(!check_rights(R_SPAWN)) + return + + var/chosen = pick_closest_path(object) + if(!chosen) + return + if(ispath(chosen,/turf)) + var/turf/T = get_turf(usr.loc) + T.ChangeTurf(chosen) + else + var/atom/A = new chosen(usr.loc) + A.admin_spawned = TRUE + + log_admin("[key_name(usr)] spawned [chosen] at ([usr.x],[usr.y],[usr.z])") + feedback_add_details("admin_verb","SA") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + + +/datum/admins/proc/show_traitor_panel(mob/M in mob_list) + set category = "Admin" + set desc = "Edit mobs's memory and role" + set name = "Show Traitor Panel" + + if(!istype(M)) + usr << "This can only be used on instances of type /mob" + return + if(!M.mind) + usr << "This mob has no mind!" + return + + M.mind.edit_memory() + feedback_add_details("admin_verb","STP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + + +/datum/admins/proc/toggletintedweldhelmets() + set category = "Debug" + set desc="Reduces view range when wearing welding helmets" + set name="Toggle tinted welding helmes" + tinted_weldhelh = !( tinted_weldhelh ) + if (tinted_weldhelh) + world << "The tinted_weldhelh has been enabled!" + else + world << "The tinted_weldhelh has been disabled!" + log_admin("[key_name(usr)] toggled tinted_weldhelh.") + message_admins("[key_name_admin(usr)] toggled tinted_weldhelh.") + feedback_add_details("admin_verb","TTWH") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/datum/admins/proc/toggleguests() + set category = "Server" + set desc="Guests can't enter" + set name="Toggle guests" + guests_allowed = !( guests_allowed ) + if (!( guests_allowed )) + world << "Guests may no longer enter the game." + else + world << "Guests may now enter the game." + log_admin("[key_name(usr)] toggled guests game entering [guests_allowed?"":"dis"]allowed.") + message_admins("[key_name_admin(usr)] toggled guests game entering [guests_allowed?"":"dis"]allowed.") + feedback_add_details("admin_verb","TGU") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/datum/admins/proc/output_ai_laws() + var/ai_number = 0 + for(var/mob/living/silicon/S in mob_list) + ai_number++ + if(isAI(S)) + usr << "AI [key_name(S, usr)]'s laws:" + else if(iscyborg(S)) + var/mob/living/silicon/robot/R = S + usr << "CYBORG [key_name(S, usr)] [R.connected_ai?"(Slaved to: [R.connected_ai])":"(Independant)"]: laws:" + else if (ispAI(S)) + usr << "pAI [key_name(S, usr)]'s laws:" + else + usr << "SOMETHING SILICON [key_name(S, usr)]'s laws:" + + if (S.laws == null) + usr << "[key_name(S, usr)]'s laws are null?? Contact a coder." + else + S.laws.show_laws(usr) + if(!ai_number) + usr << "No AIs located" //Just so you know the thing is actually working and not just ignoring you. + +/datum/admins/proc/output_all_devil_info() + var/devil_number = 0 + for(var/D in ticker.mode.devils) + devil_number++ + usr << "Devil #[devil_number]:

          " + ticker.mode.printdevilinfo(D) + if(!devil_number) + usr << "No Devils located" //Just so you know the thing is actually working and not just ignoring you. + +/datum/admins/proc/output_devil_info(mob/living/M) + if(istype(M) && M.mind && M.mind.devilinfo) + usr << ticker.mode.printdevilinfo(M.mind) + else + usr << "[M] is not a devil." + +/datum/admins/proc/manage_free_slots() + if(!check_rights()) + return + var/dat = "Manage Free Slots" + var/count = 0 + + if(ticker && !ticker.mode) + alert(usr, "You cannot manage jobs before the round starts!") + return + + if(SSjob) + for(var/datum/job/job in SSjob.occupations) + count++ + var/J_title = html_encode(job.title) + var/J_opPos = html_encode(job.total_positions - (job.total_positions - job.current_positions)) + var/J_totPos = html_encode(job.total_positions) + if(job.total_positions < 0) + dat += "[J_title]: [J_opPos] (unlimited)" + else + dat += "[J_title]: [J_opPos]/[J_totPos]" + + if(job.title == "AI" || job.title == "Cyborg") + dat += " (Cannot Late Join)
          " + continue + if(job.total_positions >= 0) + dat += " Add | " + if(job.total_positions > job.current_positions) + dat += "Remove | " + else + dat += "Remove | " + dat += "Unlimit" + else + dat += " Limit" + dat += "
          " + + dat += "" + var/winheight = 100 + (count * 20) + winheight = min(winheight, 690) + usr << browse(dat, "window=players;size=375x[winheight]") + +// +// +//ALL DONE +//********************************************************************************************************* +//TO-DO: +// +// + +//RIP ferry snowflakes + +//Kicks all the clients currently in the lobby. The second parameter (kick_only_afk) determins if an is_afk() check is ran, or if all clients are kicked +//defaults to kicking everyone (afk + non afk clients in the lobby) +//returns a list of ckeys of the kicked clients +/proc/kick_clients_in_lobby(message, kick_only_afk = 0) + var/list/kicked_client_names = list() + for(var/client/C in clients) + if(isnewplayer(C.mob)) + if(kick_only_afk && !C.is_afk()) //Ignore clients who are not afk + continue + if(message) + C << message + kicked_client_names.Add("[C.ckey]") + qdel(C) + return kicked_client_names + +//returns 1 to let the dragdrop code know we are trapping this event +//returns 0 if we don't plan to trap the event +/datum/admins/proc/cmd_ghost_drag(mob/dead/observer/frommob, mob/living/tomob) + + //this is the exact two check rights checks required to edit a ckey with vv. + if (!check_rights(R_VAREDIT,0) || !check_rights(R_SPAWN|R_DEBUG,0)) + return 0 + + if (!frommob.ckey) + return 0 + + var/question = "" + if (tomob.ckey) + question = "This mob already has a user ([tomob.key]) in control of it! " + question += "Are you sure you want to place [frommob.name]([frommob.key]) in control of [tomob.name]?" + + var/ask = alert(question, "Place ghost in control of mob?", "Yes", "No") + if (ask != "Yes") + return 1 + + if (!frommob || !tomob) //make sure the mobs don't go away while we waited for a response + return 1 + + tomob.ghostize(0) + + message_admins("[key_name_admin(usr)] has put [frommob.ckey] in control of [tomob.name].") + log_admin("[key_name(usr)] stuffed [frommob.ckey] into [tomob.name].") + feedback_add_details("admin_verb","CGD") + + tomob.ckey = frommob.ckey + qdel(frommob) + + return 1 + +/client/proc/adminGreet(logout) + if(ticker && ticker.current_state == GAME_STATE_PLAYING) + var/string + if(logout && config && config.announce_admin_logout) + string = pick( + "Admin logout: [key_name(src)]") + else if(!logout && config && config.announce_admin_login && (prefs.toggles & ANNOUNCE_LOGIN)) + string = pick( + "Admin login: [key_name(src)]") + if(string) + message_admins("[string]") diff --git a/code/modules/admin/admin_investigate.dm b/code/modules/admin/admin_investigate.dm new file mode 100644 index 0000000..525ac78 --- /dev/null +++ b/code/modules/admin/admin_investigate.dm @@ -0,0 +1,52 @@ +//By Carnwennan + +//This system was made as an alternative to all the in-game lists and variables used to log stuff in-game. +//lists and variables are great. However, they have several major flaws: +//Firstly, they use memory. TGstation has one of the highest memory usage of all the ss13 branches. +//Secondly, they are usually stored in an object. This means that they aren't centralised. It also means that +//the data is lost when the object is deleted! This is especially annoying for things like the singulo engine! +#define INVESTIGATE_DIR "data/investigate/" + +//SYSTEM +/proc/investigate_subject2file(subject) + return file("[INVESTIGATE_DIR][subject].html") + +/proc/investigate_reset() + if(fdel(INVESTIGATE_DIR)) + return 1 + return 0 + +/atom/proc/investigate_log(message, subject) + if(!message) + return + var/F = investigate_subject2file(subject) + if(!F) + return + F << "[time_stamp()] \ref[src] ([x],[y],[z]) || [src] [message]
          " + +//ADMINVERBS +/client/proc/investigate_show( subject in list("hrefs","notes","watchlist","singulo","wires","telesci", "gravity", "records", "cargo", "supermatter", "atmos", "experimentor", "kudzu") ) + set name = "Investigate" + set category = "Admin" + if(!holder) + return + switch(subject) + if("singulo", "wires", "telesci", "gravity", "records", "cargo", "supermatter", "atmos", "kudzu") //general one-round-only stuff + var/F = investigate_subject2file(subject) + if(!F) + src << "Error: admin_investigate: [INVESTIGATE_DIR][subject] is an invalid path or cannot be accessed." + return + src << browse(F,"window=investigate[subject];size=800x300") + if("hrefs") //persistant logs and stuff + if(href_logfile) + src << browse(href_logfile,"window=investigate[subject];size=800x300") + else if(!config.log_hrefs) + src << "Href logging is off and no logfile was found." + return + else + src << "No href logfile was found." + return + if("notes") + show_note() + if("watchlist") + watchlist_show() diff --git a/code/modules/admin/admin_memo.dm b/code/modules/admin/admin_memo.dm new file mode 100644 index 0000000..5fa7dff --- /dev/null +++ b/code/modules/admin/admin_memo.dm @@ -0,0 +1,131 @@ +/client/proc/admin_memo() + set name = "Memo" + set category = "Server" + if(!check_rights(0)) + return + if(!dbcon.IsConnected()) + src << "Failed to establish database connection." + return + var/memotask = input(usr,"Choose task.","Memo") in list("Show","Write","Edit","Remove") + if(!memotask) + return + admin_memo_output(memotask) + +/client/proc/admin_memo_output(task) + if(!task) + return + if(!dbcon.IsConnected()) + src << "Failed to establish database connection." + return + var/sql_ckey = sanitizeSQL(src.ckey) + switch(task) + if("Write") + var/DBQuery/query_memocheck = dbcon.NewQuery("SELECT ckey FROM [format_table_name("memo")] WHERE ckey = '[sql_ckey]'") + if(!query_memocheck.Execute()) + var/err = query_memocheck.ErrorMsg() + log_game("SQL ERROR obtaining ckey from memo table. Error : \[[err]\]\n") + return + if(query_memocheck.NextRow()) + src << "You already have set a memo." + return + var/memotext = input(src,"Write your Memo","Memo") as message + if(!memotext) + return + memotext = sanitizeSQL(memotext) + var/timestamp = SQLtime() + var/DBQuery/query_memoadd = dbcon.NewQuery("INSERT INTO [format_table_name("memo")] (ckey, memotext, timestamp) VALUES ('[sql_ckey]', '[memotext]', '[timestamp]')") + if(!query_memoadd.Execute()) + var/err = query_memoadd.ErrorMsg() + log_game("SQL ERROR adding new memo. Error : \[[err]\]\n") + return + log_admin("[key_name(src)] has set a memo: [memotext]") + message_admins("[key_name_admin(src)] has set a memo:
          [memotext]") + if("Edit") + var/DBQuery/query_memolist = dbcon.NewQuery("SELECT ckey FROM [format_table_name("memo")]") + if(!query_memolist.Execute()) + var/err = query_memolist.ErrorMsg() + log_game("SQL ERROR obtaining ckey from memo table. Error : \[[err]\]\n") + return + var/list/memolist = list() + while(query_memolist.NextRow()) + var/lkey = query_memolist.item[1] + memolist += "[lkey]" + if(!memolist.len) + src << "No memos found in database." + return + var/target_ckey = input(src, "Select whose memo to edit", "Select memo") as null|anything in memolist + if(!target_ckey) + return + var/target_sql_ckey = sanitizeSQL(target_ckey) + var/DBQuery/query_memofind = dbcon.NewQuery("SELECT memotext FROM [format_table_name("memo")] WHERE ckey = '[target_sql_ckey]'") + if(!query_memofind.Execute()) + var/err = query_memofind.ErrorMsg() + log_game("SQL ERROR obtaining memotext from memo table. Error : \[[err]\]\n") + return + if(query_memofind.NextRow()) + var/old_memo = query_memofind.item[1] + var/new_memo = input("Input new memo", "New Memo", "[old_memo]", null) as message + if(!new_memo) + return + new_memo = sanitizeSQL(new_memo) + var/edit_text = "Edited by [sql_ckey] on [SQLtime()] from
          [old_memo]
          to
          [new_memo]
          " + edit_text = sanitizeSQL(edit_text) + var/DBQuery/update_query = dbcon.NewQuery("UPDATE [format_table_name("memo")] SET memotext = '[new_memo]', last_editor = '[sql_ckey]', edits = CONCAT(IFNULL(edits,''),'[edit_text]') WHERE ckey = '[target_sql_ckey]'") + if(!update_query.Execute()) + var/err = update_query.ErrorMsg() + log_game("SQL ERROR editing memo. Error : \[[err]\]\n") + return + if(target_sql_ckey == sql_ckey) + log_admin("[key_name(src)] has edited their memo from [old_memo] to [new_memo]") + message_admins("[key_name_admin(src)] has edited their memo from
          [old_memo]
          to
          [new_memo]") + else + log_admin("[key_name(src)] has edited [target_sql_ckey]'s memo from [old_memo] to [new_memo]") + message_admins("[key_name_admin(src)] has edited [target_sql_ckey]'s memo from
          [old_memo]
          to
          [new_memo]") + if("Show") + var/DBQuery/query_memoshow = dbcon.NewQuery("SELECT ckey, memotext, timestamp, last_editor FROM [format_table_name("memo")]") + if(!query_memoshow.Execute()) + var/err = query_memoshow.ErrorMsg() + log_game("SQL ERROR obtaining ckey, memotext, timestamp, last_editor from memo table. Error : \[[err]\]\n") + return + var/output = null + while(query_memoshow.NextRow()) + var/ckey = query_memoshow.item[1] + var/memotext = query_memoshow.item[2] + var/timestamp = query_memoshow.item[3] + var/last_editor = query_memoshow.item[4] + output += "Memo by [ckey] on [timestamp]" + if(last_editor) + output += "
          Last edit by [last_editor] (Click here to see edit log)" + output += "
          [memotext]

          " + if(!output) + src << "No memos found in database." + return + src << output + if("Remove") + var/DBQuery/query_memodellist = dbcon.NewQuery("SELECT ckey FROM [format_table_name("memo")]") + if(!query_memodellist.Execute()) + var/err = query_memodellist.ErrorMsg() + log_game("SQL ERROR obtaining ckey from memo table. Error : \[[err]\]\n") + return + var/list/memolist = list() + while(query_memodellist.NextRow()) + var/ckey = query_memodellist.item[1] + memolist += "[ckey]" + if(!memolist.len) + src << "No memos found in database." + return + var/target_ckey = input(src, "Select whose memo to delete", "Select memo") as null|anything in memolist + if(!target_ckey) + return + var/target_sql_ckey = sanitizeSQL(target_ckey) + var/DBQuery/query_memodel = dbcon.NewQuery("DELETE FROM [format_table_name("memo")] WHERE ckey = '[target_sql_ckey]'") + if(!query_memodel.Execute()) + var/err = query_memodel.ErrorMsg() + log_game("SQL ERROR removing memo. Error : \[[err]\]\n") + return + if(target_sql_ckey == sql_ckey) + log_admin("[key_name(src)] has removed their memo.") + message_admins("[key_name_admin(src)] has removed their memo.") + else + log_admin("[key_name(src)] has removed [target_sql_ckey]'s memo.") + message_admins("[key_name_admin(src)] has removed [target_sql_ckey]'s memo.") \ No newline at end of file diff --git a/code/modules/admin/admin_ranks.dm b/code/modules/admin/admin_ranks.dm new file mode 100644 index 0000000..3966ee2 --- /dev/null +++ b/code/modules/admin/admin_ranks.dm @@ -0,0 +1,379 @@ +var/list/admin_ranks = list() //list of all admin_rank datums + +/datum/admin_rank + var/name = "NoRank" + var/rights = 0 + var/list/adds + var/list/subs + +/datum/admin_rank/New(init_name, init_rights, list/init_adds, list/init_subs) + name = init_name + switch(name) + if("Removed",null,"") + spawn(0) + qdel(src) + throw EXCEPTION("invalid admin-rank name") + return + if(init_rights) + rights = init_rights + if(!init_adds) + init_adds = list() + if(!init_subs) + init_subs = list() + adds = init_adds + subs = init_subs + +/proc/admin_keyword_to_flag(word, previous_rights=0) + var/flag = 0 + switch(ckey(word)) + if("buildmode","build") + flag = R_BUILDMODE + if("admin") + flag = R_ADMIN + if("ban") + flag = R_BAN + if("fun") + flag = R_FUN + if("server") + flag = R_SERVER + if("debug") + flag = R_DEBUG + if("permissions","rights") + flag = R_PERMISSIONS + if("possess") + flag = R_POSSESS + if("stealth") + flag = R_STEALTH + if("rejuv","rejuvinate") + flag = R_REJUVINATE + if("varedit") + flag = R_VAREDIT + if("everything","host","all") + flag = 65535 + if("sound","sounds") + flag = R_SOUNDS + if("spawn","create") + flag = R_SPAWN + if("@","prev") + flag = previous_rights + return flag + +/proc/admin_keyword_to_path(word) //use this with verb keywords eg +/client/proc/blah + return text2path(copytext(word, 2, findtext(word, " ", 2, 0))) + +// Adds/removes rights to this admin_rank +/datum/admin_rank/proc/process_keyword(word, previous_rights=0) + var/flag = admin_keyword_to_flag(word, previous_rights) + if(flag) + switch(text2ascii(word,1)) + if(43) + rights |= flag //+ + if(45) + rights &= ~flag //- + else + //isn't a keyword so maybe it's a verbpath? + var/path = admin_keyword_to_path(word) + if(path) + switch(text2ascii(word,1)) + if(43) + if(!subs.Remove(path)) + adds += path //+ + if(45) + if(!adds.Remove(path)) + subs += path //- + +// Checks for (keyword-formatted) rights on this admin +/datum/admins/proc/check_keyword(word) + var/flag = admin_keyword_to_flag(word) + if(flag) + return ((rank.rights & flag) == flag) //true only if right has everything in flag + else + var/path = admin_keyword_to_path(word) + for(var/i in owner.verbs) //this needs to be a foreach loop for some reason. in operator and verbs.Find() don't work + if(i == path) + return 1 + return 0 + +//load our rank - > rights associations +/proc/load_admin_ranks() + admin_ranks.Cut() + + if(config.admin_legacy_system) + var/previous_rights = 0 + //load text from file and process each line seperately + for(var/line in file2list("config/admin_ranks.txt")) + if(!line) + continue + if(findtextEx(line,"#",1,2)) + continue + + var/next = findtext(line, "=") + var/datum/admin_rank/R = new(ckeyEx(copytext(line, 1, next))) + if(!R) + continue + admin_ranks += R + + var/prev = findchar(line, "+-", next, 0) + while(prev) + next = findchar(line, "+-", prev + 1, 0) + R.process_keyword(copytext(line, prev, next), previous_rights) + prev = next + + previous_rights = R.rights + else + establish_db_connection() + if(!dbcon.IsConnected()) + world.log << "Failed to connect to database in load_admin_ranks(). Reverting to legacy system." + diary << "Failed to connect to database in load_admin_ranks(). Reverting to legacy system." + config.admin_legacy_system = 1 + load_admin_ranks() + return + + var/DBQuery/query = dbcon.NewQuery("SELECT rank, flags FROM [format_table_name("admin_ranks")]") + query.Execute() + while(query.NextRow()) + var/rank_name = ckeyEx(query.item[1]) + var/flags = query.item[2] + if(istext(flags)) + flags = text2num(flags) + var/datum/admin_rank/R = new(rank_name, flags) + if(!R) + continue + admin_ranks += R + + #ifdef TESTING + var/msg = "Permission Sets Built:\n" + for(var/datum/admin_rank/R in admin_ranks) + msg += "\t[R.name]" + var/rights = rights2text(R.rights,"\n\t\t",R.adds,R.subs) + if(rights) + msg += "\t\t[rights]\n" + testing(msg) + #endif + + +/proc/load_admins(target = null) + //clear the datums references + if(!target) + admin_datums.Cut() + for(var/client/C in admins) + C.remove_admin_verbs() + C.holder = null + admins.Cut() + load_admin_ranks() + //Clear profile access + for(var/A in world.GetConfig("admin")) + world.SetConfig("APP/admin", A, null) + + var/list/rank_names = list() + for(var/datum/admin_rank/R in admin_ranks) + rank_names[R.name] = R + + if(config.admin_legacy_system) + //load text from file + var/list/lines = file2list("config/admins.txt") + + //process each line seperately + for(var/line in lines) + if(!length(line)) + continue + if(findtextEx(line, "#", 1, 2)) + continue + + var/list/entry = splittext(line, "=") + if(entry.len < 2) + continue + + var/ckey = ckey(entry[1]) + var/rank = ckeyEx(entry[2]) + if(!ckey || !rank || (target && ckey != target)) + continue + + var/datum/admins/D = new(rank_names[rank], ckey) //create the admin datum and store it for later use + if(!D) + continue //will occur if an invalid rank is provided + if(D.rank.rights & R_DEBUG) //grant profile access + world.SetConfig("APP/admin", ckey, "role=admin") + D.associate(directory[ckey]) //find the client for a ckey if they are connected and associate them with the new admin datum + else + establish_db_connection() + if(!dbcon.IsConnected()) + world.log << "Failed to connect to database in load_admins(). Reverting to legacy system." + diary << "Failed to connect to database in load_admins(). Reverting to legacy system." + config.admin_legacy_system = 1 + load_admins() + return + + var/DBQuery/query = dbcon.NewQuery("SELECT ckey, rank FROM [format_table_name("admin")]") + query.Execute() + while(query.NextRow()) + var/ckey = ckey(query.item[1]) + var/rank = ckeyEx(query.item[2]) + if(target && ckey != target) + continue + + if(rank_names[rank] == null) + WARNING("Admin rank ([rank]) does not exist.") + continue + + var/datum/admins/D = new(rank_names[rank], ckey) //create the admin datum and store it for later use + if(!D) + continue //will occur if an invalid rank is provided + if(D.rank.rights & R_DEBUG) //grant profile access + world.SetConfig("APP/admin", ckey, "role=admin") + D.associate(directory[ckey]) //find the client for a ckey if they are connected and associate them with the new admin datum + + #ifdef TESTING + var/msg = "Admins Built:\n" + for(var/ckey in admin_datums) + var/datum/admins/D = admin_datums[ckey] + msg += "\t[ckey] - [D.rank.name]\n" + testing(msg) + #endif + + +#ifdef TESTING +/client/verb/changerank(newrank in admin_ranks) + if(holder) + holder.rank = newrank + else + holder = new /datum/admins(newrank, ckey) + remove_admin_verbs() + holder.associate(src) + +/client/verb/changerights(newrights as num) + if(holder) + holder.rank.rights = newrights + else + holder = new /datum/admins("testing", newrights, ckey) + remove_admin_verbs() + holder.associate(src) +#endif + +/datum/admins/proc/edit_rights_topic(list/href_list) + if(!check_rights(R_PERMISSIONS)) + message_admins("[key_name_admin(usr)] attempted to edit the admin permissions without sufficient rights.") + log_admin("[key_name(usr)] attempted to edit the admin permissions without sufficient rights.") + return + + var/adm_ckey + var/task = href_list["editrights"] + switch(task) + if("add") + var/new_ckey = ckey(input(usr,"New admin's ckey","Admin ckey", null) as text|null) + if(!new_ckey) + return + if(new_ckey in admin_datums) + usr << "Error: Topic 'editrights': [new_ckey] is already an admin" + return + adm_ckey = new_ckey + task = "rank" + else + adm_ckey = ckey(href_list["ckey"]) + if(!adm_ckey) + usr << "Error: Topic 'editrights': No valid ckey" + return + + var/datum/admins/D = admin_datums[adm_ckey] + + switch(task) + if("remove") + if(alert("Are you sure you want to remove [adm_ckey]?","Message","Yes","Cancel") == "Yes") + if(!D) + return + if(!check_if_greater_rights_than_holder(D)) + message_admins("[key_name_admin(usr)] attempted to remove [adm_ckey] from the admins list without sufficient rights.") + log_admin("[key_name(usr)] attempted to remove [adm_ckey] from the admins list without sufficient rights.") + return + admin_datums -= adm_ckey + D.disassociate() + + updateranktodb(adm_ckey, "player") + message_admins("[key_name_admin(usr)] removed [adm_ckey] from the admins list") + log_admin("[key_name(usr)] removed [adm_ckey] from the admins list") + log_admin_rank_modification(adm_ckey, "Removed") + + if("rank") + var/datum/admin_rank/R + + var/list/rank_names = list("*New Rank*") + for(R in admin_ranks) + rank_names[R.name] = R + + var/new_rank = input("Please select a rank", "New rank", null, null) as null|anything in rank_names + + switch(new_rank) + if(null) + return + if("*New Rank*") + new_rank = ckeyEx(input("Please input a new rank", "New custom rank", null, null) as null|text) + if(!new_rank) + return + + if(D) + if(!check_if_greater_rights_than_holder(D)) + message_admins("[key_name_admin(usr)] attempted to change the rank of [adm_ckey] to [new_rank] without sufficient rights.") + log_admin("[key_name(usr)] attempted to change the rank of [adm_ckey] to [new_rank] without sufficient rights.") + return + + R = rank_names[new_rank] + if(!R) //rank with that name doesn't exist yet - make it + if(D) + R = new(new_rank, D.rank.rights, D.rank.adds, D.rank.subs) //duplicate our previous admin_rank but with a new name + else + R = new(new_rank) //blank new admin_rank + admin_ranks += R + + if(D) //they were previously an admin + D.disassociate() //existing admin needs to be disassociated + D.rank = R //set the admin_rank as our rank + else + D = new(R,adm_ckey) //new admin + + var/client/C = directory[adm_ckey] //find the client with the specified ckey (if they are logged in) + D.associate(C) //link up with the client and add verbs + + updateranktodb(adm_ckey, new_rank) + message_admins("[key_name_admin(usr)] edited the admin rank of [adm_ckey] to [new_rank]") + log_admin("[key_name(usr)] edited the admin rank of [adm_ckey] to [new_rank]") + log_admin_rank_modification(adm_ckey, new_rank) + + if("permissions") + if(!D) + return //they're not an admin! + + var/keyword = input("Input permission keyword (one at a time):\ne.g. +BAN or -FUN or +/client/proc/someverb", "Permission toggle", null, null) as null|text + if(!keyword) + return + + if(!check_keyword(keyword) || !check_if_greater_rights_than_holder(D)) + message_admins("[key_name_admin(usr)] attempted to give [adm_ckey] the keyword [keyword] without sufficient rights.") + log_admin("[key_name(usr)] attempted to give [adm_ckey] the keyword [keyword] without sufficient rights.") + return + + D.disassociate() + + if(!findtext(D.rank.name, "([adm_ckey])")) //not a modified subrank, need to duplicate the admin_rank datum to prevent modifying others too + D.rank = new("[D.rank.name]([adm_ckey])", D.rank.rights, D.rank.adds, D.rank.subs) //duplicate our previous admin_rank but with a new name + //we don't add this clone to the admin_ranks list, as it is unique to that ckey + + D.rank.process_keyword(keyword) + + var/client/C = directory[adm_ckey] //find the client with the specified ckey (if they are logged in) + D.associate(C) //link up with the client and add verbs + + message_admins("[key_name(usr)] added keyword [keyword] to permission of [adm_ckey]") + log_admin("[key_name(usr)] added keyword [keyword] to permission of [adm_ckey]") + log_admin_permission_modification(adm_ckey, D.rank.rights) + + edit_admin_permissions() + +/datum/admins/proc/updateranktodb(ckey,newrank) + establish_db_connection() + if (!dbcon.IsConnected()) + return + var/sql_ckey = sanitizeSQL(ckey) + var/sql_admin_rank = sanitizeSQL(newrank) + + var/DBQuery/query_update = dbcon.NewQuery("UPDATE [format_table_name("player")] SET lastadminrank = '[sql_admin_rank]' WHERE ckey = '[sql_ckey]'") + query_update.Execute() diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm new file mode 100644 index 0000000..393410f --- /dev/null +++ b/code/modules/admin/admin_verbs.dm @@ -0,0 +1,743 @@ +//admin verb groups - They can overlap if you so wish. Only one of each verb will exist in the verbs list regardless +var/list/admin_verbs_default = list( + /client/proc/toggleadminhelpsound, /*toggles whether we hear a sound when adminhelps/PMs are used*/ + /client/proc/toggleannouncelogin, /*toggles if an admin's login is announced during a round*/ + /client/proc/deadmin, /*destroys our own admin datum so we can play as a regular player*/ + /client/proc/cmd_admin_say, /*admin-only ooc chat*/ + /client/proc/hide_verbs, /*hides all our adminverbs*/ + /client/proc/hide_most_verbs, /*hides all our hideable adminverbs*/ + /client/proc/debug_variables, /*allows us to -see- the variables of any instance in the game. +VAREDIT needed to modify*/ + /client/proc/admin_memo, /*admin memo system. show/delete/write. +SERVER needed to delete admin memos of others*/ + /client/proc/deadchat, /*toggles deadchat on/off*/ + /client/proc/dsay, /*talk in deadchat using our ckey/fakekey*/ + /client/proc/toggleprayers, /*toggles prayers on/off*/ + /client/verb/toggleprayersounds, /*Toggles prayer sounds (HALLELUJAH!)*/ + /client/proc/toggle_hear_radio, /*toggles whether we hear the radio*/ + /client/proc/investigate_show, /*various admintools for investigation. Such as a singulo grief-log*/ + /client/proc/secrets, + /client/proc/reload_admins, + /client/proc/reestablish_db_connection,/*reattempt a connection to the database*/ + /client/proc/cmd_admin_pm_context, /*right-click adminPM interface*/ + /client/proc/cmd_admin_pm_panel, /*admin-pm list*/ + /client/proc/stop_sounds + ) +var/list/admin_verbs_admin = list( + /client/proc/player_panel_new, /*shows an interface for all players, with links to various panels*/ + /client/proc/invisimin, /*allows our mob to go invisible/visible*/ +// /datum/admins/proc/show_traitor_panel, /*interface which shows a mob's mind*/ -Removed due to rare practical use. Moved to debug verbs ~Errorage + /datum/admins/proc/show_player_panel, /*shows an interface for individual players, with various links (links require additional flags*/ + /client/proc/game_panel, /*game panel, allows to change game-mode etc*/ + /client/proc/check_ai_laws, /*shows AI and borg laws*/ + /datum/admins/proc/toggleooc, /*toggles ooc on/off for everyone*/ + /datum/admins/proc/toggleoocdead, /*toggles ooc on/off for everyone who is dead*/ + /datum/admins/proc/toggleenter, /*toggles whether people can join the current game*/ + /datum/admins/proc/toggleguests, /*toggles whether guests can join the current game*/ + /datum/admins/proc/announce, /*priority announce something to all clients.*/ + /datum/admins/proc/set_admin_notice,/*announcement all clients see when joining the server.*/ + /client/proc/admin_ghost, /*allows us to ghost/reenter body at will*/ + /client/proc/toggle_view_range, /*changes how far we can see*/ + /datum/admins/proc/view_txt_log, /*shows the server log (diary) for today*/ + /datum/admins/proc/view_atk_log, /*shows the server combat-log, doesn't do anything presently*/ + /client/proc/cmd_admin_subtle_message, /*send an message to somebody as a 'voice in their head'*/ + /client/proc/cmd_admin_delete, /*delete an instance/object/mob/etc*/ + /client/proc/cmd_admin_check_contents, /*displays the contents of an instance*/ + /client/proc/check_antagonists, /*shows all antags*/ + /datum/admins/proc/access_news_network, /*allows access of newscasters*/ + /client/proc/giveruntimelog, /*allows us to give access to runtime logs to somebody*/ + /client/proc/getruntimelog, /*allows us to access runtime logs to somebody*/ + /client/proc/getserverlog, /*allows us to fetch server logs (diary) for other days*/ + /client/proc/jumptocoord, /*we ghost and jump to a coordinate*/ + /client/proc/Getmob, /*teleports a mob to our location*/ + /client/proc/Getkey, /*teleports a mob with a certain ckey to our location*/ +// /client/proc/sendmob, /*sends a mob somewhere*/ -Removed due to it needing two sorting procs to work, which were executed every time an admin right-clicked. ~Errorage + /client/proc/jumptoarea, + /client/proc/jumptokey, /*allows us to jump to the location of a mob with a certain ckey*/ + /client/proc/jumptomob, /*allows us to jump to a specific mob*/ + /client/proc/jumptoturf, /*allows us to jump to a specific turf*/ + /client/proc/admin_call_shuttle, /*allows us to call the emergency shuttle*/ + /client/proc/admin_cancel_shuttle, /*allows us to cancel the emergency shuttle, sending it back to centcom*/ + /client/proc/cmd_admin_direct_narrate, /*send text directly to a player with no padding. Useful for narratives and fluff-text*/ + /client/proc/cmd_admin_world_narrate, /*sends text to all players with no padding*/ + /client/proc/cmd_admin_local_narrate, /*sends text to all mobs within view of atom*/ + /client/proc/cmd_admin_create_centcom_report, + /client/proc/cmd_change_command_name, + /client/proc/toggle_antag_hud, /*toggle display of the admin antag hud*/ + /client/proc/toggle_AI_interact, /*toggle admin ability to interact with machines as an AI*/ + /client/proc/customiseSNPC, /* Customise any interactive crewmembers in the world */ + /client/proc/resetSNPC, /* Resets any interactive crewmembers in the world */ + /client/proc/toggleSNPC, /* Toggles an npc's processing mode */ + /client/proc/open_shuttle_manipulator /* Opens shuttle manipulator UI */ + ) +var/list/admin_verbs_ban = list( + /client/proc/unban_panel, + /client/proc/DB_ban_panel, + /client/proc/stickybanpanel + ) +var/list/admin_verbs_sounds = list( + /client/proc/play_local_sound, + /client/proc/play_sound, + /client/proc/set_round_end_sound, + ) +var/list/admin_verbs_fun = list( + /client/proc/cmd_admin_dress, + /client/proc/cmd_admin_gib_self, + /client/proc/drop_bomb, + /client/proc/set_dynex_scale, + /client/proc/drop_dynex_bomb, + /client/proc/cinematic, + /client/proc/one_click_antag, + /client/proc/send_space_ninja, + /client/proc/cmd_admin_add_freeform_ai_law, + /client/proc/cmd_admin_add_random_ai_law, + /client/proc/object_say, + /client/proc/toggle_random_events, + /client/proc/set_ooc, + /client/proc/reset_ooc, + /client/proc/forceEvent, + /client/proc/bluespace_artillery, + /client/proc/admin_change_sec_level, + /client/proc/toggle_nuke, + /client/proc/mass_zombie_infection, + /client/proc/mass_zombie_cure, + /client/proc/polymorph_all, + /client/proc/show_tip + ) +var/list/admin_verbs_spawn = list( + /datum/admins/proc/spawn_atom, /*allows us to spawn instances*/ + /client/proc/respawn_character + ) +var/list/admin_verbs_server = list( + /datum/admins/proc/startnow, + /datum/admins/proc/restart, + /datum/admins/proc/end_round, + /datum/admins/proc/delay, + /datum/admins/proc/toggleaban, + /client/proc/toggle_log_hrefs, + /client/proc/everyone_random, + /datum/admins/proc/toggleAI, + /client/proc/cmd_admin_delete, /*delete an instance/object/mob/etc*/ + /client/proc/cmd_debug_del_all, + /client/proc/toggle_random_events, +#if SERVERTOOLS + /client/proc/forcerandomrotate, + /client/proc/adminchangemap, +#endif + /client/proc/panicbunker, + /client/proc/toggle_hub + + ) +var/list/admin_verbs_debug = list( + /client/proc/restart_controller, + /client/proc/cmd_admin_list_open_jobs, + /client/proc/Debug2, + /client/proc/cmd_debug_make_powernets, + /client/proc/cmd_debug_mob_lists, + /client/proc/cmd_admin_delete, + /client/proc/cmd_debug_del_all, + /client/proc/restart_controller, + /client/proc/enable_debug_verbs, + /client/proc/callproc, + /client/proc/callproc_datum, + /client/proc/SDQL2_query, + /client/proc/test_movable_UI, + /client/proc/test_snap_UI, + /client/proc/debugNatureMapGenerator, + /client/proc/check_bomb_impacts, + /proc/machine_upgrade, + /client/proc/populate_world, + /client/proc/get_dynex_power, //*debug verbs for dynex explosions. + /client/proc/get_dynex_range, //*debug verbs for dynex explosions. + /client/proc/set_dynex_scale, + /client/proc/cmd_display_del_log, + /client/proc/reset_latejoin_spawns, + /client/proc/create_outfits, + /client/proc/modify_goals, + /client/proc/debug_huds, + /client/proc/map_template_load, + /client/proc/map_template_upload, + /client/proc/jump_to_ruin, + /client/proc/clear_dynamic_transit, + /client/proc/toggle_medal_disable + ) +var/list/admin_verbs_possess = list( + /proc/possess, + /proc/release + ) +var/list/admin_verbs_permissions = list( + /client/proc/edit_admin_permissions, + /client/proc/create_poll + ) +var/list/admin_verbs_rejuv = list( + /client/proc/respawn_character + ) + +//verbs which can be hidden - needs work +var/list/admin_verbs_hideable = list( + /client/proc/set_ooc, + /client/proc/reset_ooc, + /client/proc/deadmin, + /client/proc/deadchat, + /client/proc/toggleprayers, + /client/proc/toggle_hear_radio, + /datum/admins/proc/show_traitor_panel, + /datum/admins/proc/toggleenter, + /datum/admins/proc/toggleguests, + /datum/admins/proc/announce, + /datum/admins/proc/set_admin_notice, + /client/proc/admin_ghost, + /client/proc/toggle_view_range, + /datum/admins/proc/view_txt_log, + /datum/admins/proc/view_atk_log, + /client/proc/cmd_admin_subtle_message, + /client/proc/cmd_admin_check_contents, + /datum/admins/proc/access_news_network, + /client/proc/admin_call_shuttle, + /client/proc/admin_cancel_shuttle, + /client/proc/cmd_admin_direct_narrate, + /client/proc/cmd_admin_world_narrate, + /client/proc/cmd_admin_local_narrate, + /client/proc/play_local_sound, + /client/proc/play_sound, + /client/proc/set_round_end_sound, + /client/proc/cmd_admin_dress, + /client/proc/cmd_admin_gib_self, + /client/proc/drop_bomb, + /client/proc/drop_dynex_bomb, + /client/proc/get_dynex_range, + /client/proc/get_dynex_power, + /client/proc/set_dynex_scale, + /client/proc/cinematic, + /client/proc/send_space_ninja, + /client/proc/cmd_admin_add_freeform_ai_law, + /client/proc/cmd_admin_add_random_ai_law, + /client/proc/cmd_admin_create_centcom_report, + /client/proc/cmd_change_command_name, + /client/proc/object_say, + /client/proc/toggle_random_events, + /client/proc/cmd_admin_add_random_ai_law, + /datum/admins/proc/startnow, + /datum/admins/proc/restart, + /datum/admins/proc/delay, + /datum/admins/proc/toggleaban, + /client/proc/toggle_log_hrefs, + /client/proc/everyone_random, + /datum/admins/proc/toggleAI, + /client/proc/restart_controller, + /client/proc/cmd_admin_list_open_jobs, + /client/proc/callproc, + /client/proc/callproc_datum, + /client/proc/Debug2, + /client/proc/reload_admins, + /client/proc/cmd_debug_make_powernets, + /client/proc/startSinglo, + /client/proc/cmd_debug_mob_lists, + /client/proc/cmd_debug_del_all, + /client/proc/enable_debug_verbs, + /proc/possess, + /proc/release, + /client/proc/reload_admins, + /client/proc/panicbunker, + /client/proc/admin_change_sec_level, + /client/proc/toggle_nuke, + /client/proc/cmd_display_del_log, + /client/proc/toggle_antag_hud, + /client/proc/debug_huds, + /client/proc/customiseSNPC, + /client/proc/resetSNPC, + /client/proc/toggleSNPC + ) + +/client/proc/add_admin_verbs() + if(holder) + control_freak = CONTROL_FREAK_SKIN | CONTROL_FREAK_MACROS + + var/rights = holder.rank.rights + verbs += admin_verbs_default + if(rights & R_BUILDMODE) + verbs += /client/proc/togglebuildmodeself + if(rights & R_ADMIN) + verbs += admin_verbs_admin + if(rights & R_BAN) + verbs += admin_verbs_ban + if(rights & R_FUN) + verbs += admin_verbs_fun + if(rights & R_SERVER) + verbs += admin_verbs_server + if(rights & R_DEBUG) + verbs += admin_verbs_debug + if(rights & R_POSSESS) + verbs += admin_verbs_possess + if(rights & R_PERMISSIONS) + verbs += admin_verbs_permissions + if(rights & R_STEALTH) + verbs += /client/proc/stealth + if(rights & R_REJUVINATE) + verbs += admin_verbs_rejuv + if(rights & R_SOUNDS) + verbs += admin_verbs_sounds + if(rights & R_SPAWN) + verbs += admin_verbs_spawn + + for(var/path in holder.rank.adds) + verbs += path + for(var/path in holder.rank.subs) + verbs -= path + +/client/proc/remove_admin_verbs() + verbs.Remove( + admin_verbs_default, + /client/proc/togglebuildmodeself, + admin_verbs_admin, + admin_verbs_ban, + admin_verbs_fun, + admin_verbs_server, + admin_verbs_debug, + admin_verbs_possess, + admin_verbs_permissions, + /client/proc/stealth, + admin_verbs_rejuv, + admin_verbs_sounds, + admin_verbs_spawn, + /*Debug verbs added by "show debug verbs"*/ + /client/proc/Cell, + /client/proc/do_not_use_these, + /client/proc/camera_view, + /client/proc/sec_camera_report, + /client/proc/intercom_view, + /client/proc/air_status, + /client/proc/atmosscan, + /client/proc/powerdebug, + /client/proc/count_objects_on_z_level, + /client/proc/count_objects_all, + /client/proc/cmd_assume_direct_control, + /client/proc/startSinglo, + /client/proc/set_server_fps, + /client/proc/cmd_admin_grantfullaccess, + /client/proc/cmd_admin_areatest, + /client/proc/readmin + ) + if(holder) + verbs.Remove(holder.rank.adds) + +/client/proc/hide_most_verbs()//Allows you to keep some functionality while hiding some verbs + set name = "Adminverbs - Hide Most" + set category = "Admin" + + verbs.Remove(/client/proc/hide_most_verbs, admin_verbs_hideable) + verbs += /client/proc/show_verbs + + src << "Most of your adminverbs have been hidden." + feedback_add_details("admin_verb","HMV") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + return + +/client/proc/hide_verbs() + set name = "Adminverbs - Hide All" + set category = "Admin" + + remove_admin_verbs() + verbs += /client/proc/show_verbs + + src << "Almost all of your adminverbs have been hidden." + feedback_add_details("admin_verb","TAVVH") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + return + +/client/proc/show_verbs() + set name = "Adminverbs - Show" + set category = "Admin" + + verbs -= /client/proc/show_verbs + add_admin_verbs() + + src << "All of your adminverbs are now visible." + feedback_add_details("admin_verb","TAVVS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + + + + +/client/proc/admin_ghost() + set category = "Admin" + set name = "Aghost" + if(!holder) + return + if(isobserver(mob)) + //re-enter + var/mob/dead/observer/ghost = mob + if(!ghost.mind || !ghost.mind.current) //won't do anything if there is no body + return + if(!ghost.can_reenter_corpse) + log_admin("[key_name(usr)] re-entered corpse") + message_admins("[key_name_admin(usr)] re-entered corpse") + ghost.can_reenter_corpse = 1 //force re-entering even when otherwise not possible + ghost.reenter_corpse() + feedback_add_details("admin_verb","P") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + else if(isnewplayer(mob)) + src << "Error: Aghost: Can't admin-ghost whilst in the lobby. Join or Observe first." + else + //ghostize + log_admin("[key_name(usr)] admin ghosted.") + message_admins("[key_name_admin(usr)] admin ghosted.") + var/mob/body = mob + body.ghostize(1) + if(body && !body.key) + body.key = "@[key]" //Haaaaaaaack. But the people have spoken. If it breaks; blame adminbus + feedback_add_details("admin_verb","O") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + + +/client/proc/invisimin() + set name = "Invisimin" + set category = "Admin" + set desc = "Toggles ghost-like invisibility (Don't abuse this)" + if(holder && mob) + if(mob.invisibility == INVISIBILITY_OBSERVER) + mob.invisibility = initial(mob.invisibility) + mob << "Invisimin off. Invisibility reset." + else + mob.invisibility = INVISIBILITY_OBSERVER + mob << "Invisimin on. You are now as invisible as a ghost." + +/client/proc/player_panel_new() + set name = "Player Panel" + set category = "Admin" + if(holder) + holder.player_panel_new() + feedback_add_details("admin_verb","PPN") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + return + +/client/proc/check_antagonists() + set name = "Check Antagonists" + set category = "Admin" + if(holder) + holder.check_antagonists() + log_admin("[key_name(usr)] checked antagonists.") //for tsar~ + if(!isobserver(usr)) + message_admins("[key_name_admin(usr)] checked antagonists.") + feedback_add_details("admin_verb","CHA") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + return + +/client/proc/unban_panel() + set name = "Unban Panel" + set category = "Admin" + if(holder) + if(config.ban_legacy_system) + holder.unbanpanel() + else + holder.DB_ban_panel() + feedback_add_details("admin_verb","UBP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + return + +/client/proc/game_panel() + set name = "Game Panel" + set category = "Admin" + if(holder) + holder.Game() + feedback_add_details("admin_verb","GP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + return + +/client/proc/secrets() + set name = "Secrets" + set category = "Admin" + if (holder) + holder.Secrets() + feedback_add_details("admin_verb","S") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + return + + +/client/proc/findStealthKey(txt) + if(txt) + for(var/P in stealthminID) + if(stealthminID[P] == txt) + return P + txt = stealthminID[ckey] + return txt + +/client/proc/createStealthKey() + var/num = (rand(0,1000)) + var/i = 0 + while(i == 0) + i = 1 + for(var/P in stealthminID) + if(num == stealthminID[P]) + num++ + i = 0 + stealthminID["[ckey]"] = "@[num2text(num)]" + +/client/proc/stealth() + set category = "Admin" + set name = "Stealth Mode" + if(holder) + if(holder.fakekey) + holder.fakekey = null + if(isobserver(mob)) + mob.invisibility = initial(mob.invisibility) + mob.alpha = initial(mob.alpha) + mob.name = initial(mob.name) + mob.mouse_opacity = initial(mob.mouse_opacity) + else + var/new_key = ckeyEx(input("Enter your desired display name.", "Fake Key", key) as text|null) + if(!new_key) + return + if(length(new_key) >= 26) + new_key = copytext(new_key, 1, 26) + holder.fakekey = new_key + createStealthKey() + if(isobserver(mob)) + mob.invisibility = INVISIBILITY_ABSTRACT //JUST IN CASE + mob.alpha = 0 //JUUUUST IN CASE + mob.name = " " + mob.mouse_opacity = 0 + log_admin("[key_name(usr)] has turned stealth mode [holder.fakekey ? "ON" : "OFF"]") + message_admins("[key_name_admin(usr)] has turned stealth mode [holder.fakekey ? "ON" : "OFF"]") + feedback_add_details("admin_verb","SM") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/drop_bomb() + set category = "Special Verbs" + set name = "Drop Bomb" + set desc = "Cause an explosion of varying strength at your location." + + var/list/choices = list("Small Bomb", "Medium Bomb", "Big Bomb", "Custom Bomb") + var/choice = input("What size explosion would you like to produce?") in choices + var/turf/epicenter = mob.loc + + switch(choice) + if(null) + return 0 + if("Small Bomb") + explosion(epicenter, 1, 2, 3, 3) + if("Medium Bomb") + explosion(epicenter, 2, 3, 4, 4) + if("Big Bomb") + explosion(epicenter, 3, 5, 7, 5) + if("Custom Bomb") + var/devastation_range = input("Devastation range (in tiles):") as null|num + if(devastation_range == null) + return + var/heavy_impact_range = input("Heavy impact range (in tiles):") as null|num + if(heavy_impact_range == null) + return + var/light_impact_range = input("Light impact range (in tiles):") as null|num + if(light_impact_range == null) + return + var/flash_range = input("Flash range (in tiles):") as null|num + if(flash_range == null) + return + epicenter = mob.loc //We need to reupdate as they may have moved again + explosion(epicenter, devastation_range, heavy_impact_range, light_impact_range, flash_range) + message_admins("[ADMIN_LOOKUPFLW(usr)] creating an admin explosion at [epicenter.loc].") + log_admin("[key_name(usr)] created an admin explosion at [epicenter.loc].") + feedback_add_details("admin_verb","DB") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/drop_dynex_bomb() + set category = "Special Verbs" + set name = "Drop DynEx Bomb" + set desc = "Cause an explosion of varying strength at your location." + + var/ex_power = input("Explosive Power:") as null|num + var/turf/epicenter = mob.loc + if(ex_power && epicenter) + dyn_explosion(epicenter, ex_power) + message_admins("[ADMIN_LOOKUPFLW(usr)] creating an admin explosion at [epicenter.loc].") + log_admin("[key_name(usr)] created an admin explosion at [epicenter.loc].") + feedback_add_details("admin_verb","DDXB") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/get_dynex_range() + set category = "Debug" + set name = "Get DynEx Range" + set desc = "Get the estimated range of a bomb, using explosive power." + + var/ex_power = input("Explosive Power:") as null|num + var/range = round((2 * ex_power)**DYN_EX_SCALE) + usr << "Estimated Explosive Range: (Devestation: [round(range*0.25)], Heavy: [round(range*0.5)], Light: [round(range)])" + +/client/proc/get_dynex_power() + set category = "Debug" + set name = "Get DynEx Power" + set desc = "Get the estimated required power of a bomb, to reach a specific range." + + var/ex_range = input("Light Explosion Range:") as null|num + var/power = (0.5 * ex_range)**(1/DYN_EX_SCALE) + usr << "Estimated Explosive Power: [power]" + +/client/proc/set_dynex_scale() + set category = "Debug" + set name = "Set DynEx Scale" + set desc = "Set the scale multiplier of dynex explosions. The default is 0.5." + + var/ex_scale = input("New DynEx Scale:") as null|num + if(!ex_scale) + return + DYN_EX_SCALE = ex_scale + log_admin("[key_name(usr)] has modified Dynamic Explosion Scale: [ex_scale]") + message_admins("[key_name_admin(usr)] has modified Dynamic Explosion Scale: [ex_scale]") + +/client/proc/give_spell(mob/T in mob_list) + set category = "Fun" + set name = "Give Spell" + set desc = "Gives a spell to a mob." + + var/list/spell_list = list() + var/type_length = length("/obj/effect/proc_holder/spell") + 2 + for(var/A in spells) + spell_list[copytext("[A]", type_length)] = A + var/obj/effect/proc_holder/spell/S = input("Choose the spell to give to that guy", "ABRAKADABRA") as null|anything in spell_list + if(!S) + return + + feedback_add_details("admin_verb","GS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + log_admin("[key_name(usr)] gave [key_name(T)] the spell [S].") + message_admins("[key_name_admin(usr)] gave [key_name(T)] the spell [S].") + + S = spell_list[S] + if(T.mind) + T.mind.AddSpell(new S) + else + T.AddSpell(new S) + message_admins("Spells given to mindless mobs will not be transferred in mindswap or cloning!") + +/client/proc/remove_spell(mob/T in mob_list) + set category = "Fun" + set name = "Remove Spell" + set desc = "Remove a spell from the selected mob." + + if(T && T.mind) + var/obj/effect/proc_holder/spell/S = input("Choose the spell to remove", "NO ABRAKADABRA") as null|anything in T.mind.spell_list + if(S) + T.mind.RemoveSpell(S) + log_admin("[key_name(usr)] removed the spell [S] from [key_name(T)].") + message_admins("[key_name_admin(usr)] removed the spell [S] from [key_name(T)].") + feedback_add_details("admin_verb","RS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/give_disease(mob/T in mob_list) + set category = "Fun" + set name = "Give Disease" + set desc = "Gives a Disease to a mob." + var/datum/disease/D = input("Choose the disease to give to that guy", "ACHOO") as null|anything in diseases + if(!D) return + T.ForceContractDisease(new D) + feedback_add_details("admin_verb","GD") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + log_admin("[key_name(usr)] gave [key_name(T)] the disease [D].") + message_admins("[key_name_admin(usr)] gave [key_name(T)] the disease [D].") + +/client/proc/object_say(obj/O in world) + set category = "Special Verbs" + set name = "OSay" + set desc = "Makes an object say something." + var/message = input(usr, "What do you want the message to be?", "Make Sound") as text | null + if(!message) + return + var/templanguages = O.languages_spoken + O.languages_spoken |= ALL + O.say(message) + O.languages_spoken = templanguages + log_admin("[key_name(usr)] made [O] at [O.x], [O.y], [O.z] say \"[message]\"") + message_admins("[key_name_admin(usr)] made [O] at [O.x], [O.y], [O.z]. say \"[message]\"") + feedback_add_details("admin_verb","OS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! +/client/proc/togglebuildmodeself() + set name = "Toggle Build Mode Self" + set category = "Special Verbs" + if(src.mob) + togglebuildmode(src.mob) + feedback_add_details("admin_verb","TBMS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/toggle_log_hrefs() + set name = "Toggle href logging" + set category = "Server" + if(!holder) + return + if(config) + if(config.log_hrefs) + config.log_hrefs = 0 + src << "Stopped logging hrefs" + else + config.log_hrefs = 1 + src << "Started logging hrefs" + +/client/proc/check_ai_laws() + set name = "Check AI Laws" + set category = "Admin" + if(holder) + src.holder.output_ai_laws() + +/client/proc/deadmin() + set name = "Deadmin" + set category = "Admin" + set desc = "Shed your admin powers." + + if(!holder) + return + + holder.disassociate() + qdel(holder) + + deadmins += ckey + admin_datums -= ckey + verbs += /client/proc/readmin + + src << "You are now a normal player." + log_admin("[src] deadmined themself.") + message_admins("[src] deadmined themself.") + feedback_add_details("admin_verb","DAS") + +/client/proc/readmin() + set name = "Readmin" + set category = "Admin" + set desc = "Regain your admin powers." + + load_admins(ckey) + + if(!holder) // Something went wrong... + return + + deadmins -= ckey + verbs -= /client/proc/readmin + + src << "You are now an admin." + message_admins("[src] re-adminned themselves.") + log_admin("[src] re-adminned themselves.") + feedback_add_details("admin_verb","RAS") + +/client/proc/populate_world(amount = 50 as num) + set name = "Populate World" + set category = "Debug" + set desc = "(\"Amount of mobs to create\") Populate the world with test mobs." + + if (amount > 0) + var/area/area + var/list/candidates + var/turf/open/floor/tile + var/j,k + var/mob/living/carbon/human/mob + + for (var/i = 1 to amount) + j = 100 + + do + area = pick(the_station_areas) + + if (area) + + candidates = get_area_turfs(area) + + if (candidates.len) + k = 100 + + do + tile = pick(candidates) + while ((!tile || !istype(tile)) && --k > 0) + + if (tile) + mob = new/mob/living/carbon/human/interactive(tile) + + testing("Spawned test mob with name \"[mob.name]\" at [tile.x],[tile.y],[tile.z]") + while (!area && --j > 0) + +/client/proc/toggle_AI_interact() + set name = "Toggle Admin AI Interact" + set category = "Admin" + set desc = "Allows you to interact with most machines as an AI would as a ghost" + + AI_Interact = !AI_Interact + if(mob && IsAdminGhost(mob)) + mob.has_unlimited_silicon_privilege = AI_Interact + + log_admin("[key_name(usr)] has [AI_Interact ? "activated" : "deactivated"] Admin AI Interact") + message_admins("[key_name_admin(usr)] has [AI_Interact ? "activated" : "deactivated"] their AI interaction") diff --git a/code/modules/admin/banjob.dm b/code/modules/admin/banjob.dm new file mode 100644 index 0000000..75eb896 --- /dev/null +++ b/code/modules/admin/banjob.dm @@ -0,0 +1,36 @@ +//returns a reason if M is banned from rank, returns 0 otherwise +/proc/jobban_isbanned(mob/M, rank) + if(!M || !istype(M) || !M.ckey) + return 0 + + if(!M.client) //no cache. fallback to a DBQuery + var/DBQuery/query = dbcon.NewQuery("SELECT reason FROM [format_table_name("ban")] WHERE ckey = '[sanitizeSQL(M.ckey)]' AND job = '[sanitizeSQL(rank)]' AND (bantype = 'JOB_PERMABAN' OR (bantype = 'JOB_TEMPBAN' AND expiration_time > Now())) AND isnull(unbanned)") + if(!query.Execute()) + log_game("SQL ERROR obtaining jobbans. Error : \[[query.ErrorMsg()]\]\n") + return + if(query.NextRow()) + var/reason = query.item[1] + return reason ? reason : 1 //we don't want to return "" if there is no ban reason, as that would evaluate to false + else + return 0 + + if(!M.client.jobbancache) + jobban_buildcache(M.client) + + if(rank in M.client.jobbancache) + var/reason = M.client.jobbancache[rank] + return (reason) ? reason : 1 //see above for why we need to do this + return 0 + +/proc/jobban_buildcache(client/C) + if(C && istype(C)) + C.jobbancache = list() + var/DBQuery/query = dbcon.NewQuery("SELECT job, reason FROM [format_table_name("ban")] WHERE ckey = '[sanitizeSQL(C.ckey)]' AND (bantype = 'JOB_PERMABAN' OR (bantype = 'JOB_TEMPBAN' AND expiration_time > Now())) AND isnull(unbanned)") + if(!query.Execute()) + log_game("SQL ERROR obtaining jobbans. Error : \[[query.ErrorMsg()]\]\n") + return + while(query.NextRow()) + C.jobbancache[query.item[1]] = query.item[2] + +/proc/ban_unban_log_save(var/formatted_log) + text2file(formatted_log,"data/ban_unban_log.txt") diff --git a/code/modules/admin/create_mob.dm b/code/modules/admin/create_mob.dm new file mode 100644 index 0000000..a5451f7 --- /dev/null +++ b/code/modules/admin/create_mob.dm @@ -0,0 +1,25 @@ +/var/create_mob_html = null +/datum/admins/proc/create_mob(mob/user) + if (!create_mob_html) + var/mobjs = null + mobjs = jointext(typesof(/mob), ";") + create_mob_html = file2text('html/create_object.html') + create_mob_html = replacetext(create_mob_html, "null /* object types */", "\"[mobjs]\"") + + user << browse(replacetext(create_mob_html, "/* ref src */", "\ref[src]"), "window=create_mob;size=425x475") + +/proc/randomize_human(mob/living/carbon/human/H) + H.gender = pick(MALE, FEMALE) + H.real_name = random_unique_name(H.gender) + H.name = H.real_name + H.underwear = random_underwear(H.gender) + H.skin_tone = random_skin_tone() + H.hair_style = random_hair_style(H.gender) + H.facial_hair_style = random_facial_hair_style(H.gender) + H.hair_color = random_short_color() + H.facial_hair_color = H.hair_color + H.eye_color = random_eye_color() + H.dna.blood_type = random_blood_type() + H.update_body() + H.update_hair() + H.update_body_parts() \ No newline at end of file diff --git a/code/modules/admin/create_object.dm b/code/modules/admin/create_object.dm new file mode 100644 index 0000000..bc2da4d --- /dev/null +++ b/code/modules/admin/create_object.dm @@ -0,0 +1,27 @@ +var/create_object_html = null +var/list/create_object_forms = list( + /obj, /obj/structure, /obj/machinery, /obj/effect, + /obj/item, /obj/item/clothing, /obj/item/stack, /obj/item/device, + /obj/item/weapon, /obj/item/weapon/reagent_containers, /obj/item/weapon/gun) + +/datum/admins/proc/create_object(mob/user) + if (!create_object_html) + var/objectjs = null + objectjs = jointext(typesof(/obj), ";") + create_object_html = file2text('html/create_object.html') + create_object_html = replacetext(create_object_html, "null /* object types */", "\"[objectjs]\"") + + user << browse(replacetext(create_object_html, "/* ref src */", "\ref[src]"), "window=create_object;size=425x475") + + +/datum/admins/proc/quick_create_object(mob/user) + var/path = input("Select the path of the object you wish to create.", "Path", /obj) in create_object_forms + var/html_form = create_object_forms[path] + + if (!html_form) + var/objectjs = jointext(typesof(path), ";") + html_form = file2text('html/create_object.html') + html_form = replacetext(html_form, "null /* object types */", "\"[objectjs]\"") + create_object_forms[path] = html_form + + user << browse(replacetext(html_form, "/* ref src */", "\ref[src]"), "window=qco[path];size=425x475") \ No newline at end of file diff --git a/code/modules/admin/create_poll.dm b/code/modules/admin/create_poll.dm new file mode 100644 index 0000000..3f0647b --- /dev/null +++ b/code/modules/admin/create_poll.dm @@ -0,0 +1,175 @@ +/client/proc/create_poll() + set name = "Create Poll" + set category = "Special Verbs" + if(!check_rights(R_PERMISSIONS)) + return + if(!dbcon.IsConnected()) + src << "Failed to establish database connection." + return + var/returned = create_poll_function() + if(returned) + var/DBQuery/query_check_option = dbcon.NewQuery("SELECT id FROM [format_table_name("poll_option")] WHERE pollid = [returned]") + if(!query_check_option.Execute()) + var/err = query_check_option.ErrorMsg() + log_game("SQL ERROR obtaining id from poll_option table. Error : \[[err]\]\n") + return + if(query_check_option.NextRow()) + var/DBQuery/query_log_get = dbcon.NewQuery("SELECT polltype, question, adminonly FROM [format_table_name("poll_question")] WHERE id = [returned]") + if(!query_log_get.Execute()) + var/err = query_log_get.ErrorMsg() + log_game("SQL ERROR obtaining polltype, question, adminonly from poll_question table. Error : \[[err]\]\n") + return + if(query_log_get.NextRow()) + var/polltype = query_log_get.item[1] + var/question = query_log_get.item[2] + var/adminonly = text2num(query_log_get.item[3]) + log_admin("[key_name(usr)] has created a new server poll. Poll type: [polltype] - Admin Only: [adminonly ? "Yes" : "No"] - Question: [question]") + message_admins("[key_name_admin(usr)] has created a new server poll. Poll type: [polltype] - Admin Only: [adminonly ? "Yes" : "No"]
          Question: [question]") + else + src << "Poll question created without any options, poll will be deleted." + var/DBQuery/query_del_poll = dbcon.NewQuery("DELETE FROM [format_table_name("poll_question")] WHERE id = [returned]") + if(!query_del_poll.Execute()) + var/err = query_del_poll.ErrorMsg() + log_game("SQL ERROR deleting poll question [returned]. Error : \[[err]\]\n") + return + +/client/proc/create_poll_function() + var/polltype = input("Choose poll type.","Poll Type") in list("Single Option","Text Reply","Rating","Multiple Choice", "Instant Runoff Voting")|null + var/choice_amount = 0 + switch(polltype) + if("Single Option") + polltype = POLLTYPE_OPTION + if("Text Reply") + polltype = POLLTYPE_TEXT + if("Rating") + polltype = POLLTYPE_RATING + if("Multiple Choice") + polltype = POLLTYPE_MULTI + choice_amount = input("How many choices should be allowed?","Select choice amount") as num|null + if(!choice_amount) + return + if ("Instant Runoff Voting") + polltype = POLLTYPE_IRV + else + return 0 + var/starttime = SQLtime() + var/endtime = input("Set end time for poll as format YYYY-MM-DD HH:MM:SS. All times in server time. HH:MM:SS is optional and 24-hour. Must be later than starting time for obvious reasons.", "Set end time", SQLtime()) as text + if(!endtime) + return + endtime = sanitizeSQL(endtime) + var/DBQuery/query_validate_time = dbcon.NewQuery("SELECT STR_TO_DATE('[endtime]','%Y-%c-%d %T')") + if(!query_validate_time.Execute()) + var/err = query_validate_time.ErrorMsg() + log_game("SQL ERROR validating endtime. Error : \[[err]\]\n") + return + if(query_validate_time.NextRow()) + endtime = query_validate_time.item[1] + if(!endtime) + src << "Datetime entered is invalid." + return + var/DBQuery/query_time_later = dbcon.NewQuery("SELECT TIMESTAMP('[endtime]') < NOW()") + if(!query_time_later.Execute()) + var/err = query_time_later.ErrorMsg() + log_game("SQL ERROR comparing endtime to NOW(). Error : \[[err]\]\n") + return + if(query_time_later.NextRow()) + var/checklate = text2num(query_time_later.item[1]) + if(checklate) + src << "Datetime entered is not later than current server time." + return + var/adminonly + switch(alert("Admin only poll?",,"Yes","No","Cancel")) + if("Yes") + adminonly = 1 + if("No") + adminonly = 0 + else + return + var/dontshow + switch(alert("Hide poll results from tracking until completed?",,"Yes","No","Cancel")) + if("Yes") + dontshow = 1 + if("No") + dontshow = 0 + else + return + var/sql_ckey = sanitizeSQL(ckey) + var/question = input("Write your question","Question") as message|null + if(!question) + return + question = sanitizeSQL(question) + var/DBQuery/query_polladd_question = dbcon.NewQuery("INSERT INTO [format_table_name("poll_question")] (polltype, starttime, endtime, question, adminonly, multiplechoiceoptions, createdby_ckey, createdby_ip, dontshow) VALUES ('[polltype]', '[starttime]', '[endtime]', '[question]', '[adminonly]', '[choice_amount]', '[sql_ckey]', '[address]', '[dontshow]')") + if(!query_polladd_question.Execute()) + var/err = query_polladd_question.ErrorMsg() + log_game("SQL ERROR adding new poll question to table. Error : \[[err]\]\n") + return + if(polltype == POLLTYPE_TEXT) + log_admin("[key_name(usr)] has created a new server poll. Poll type: [polltype] - Admin Only: [adminonly ? "Yes" : "No"] - Question: [question]") + message_admins("[key_name_admin(usr)] has created a new server poll. Poll type: [polltype] - Admin Only: [adminonly ? "Yes" : "No"]
          Question: [question]") + return + var/pollid = 0 + var/DBQuery/query_get_id = dbcon.NewQuery("SELECT id FROM [format_table_name("poll_question")] WHERE question = '[question]' AND starttime = '[starttime]' AND endtime = '[endtime]' AND createdby_ckey = '[sql_ckey]' AND createdby_ip = '[address]'") + if(!query_get_id.Execute()) + var/err = query_get_id.ErrorMsg() + log_game("SQL ERROR obtaining id from poll_question table. Error : \[[err]\]\n") + return + if(query_get_id.NextRow()) + pollid = query_get_id.item[1] + var/add_option = 1 + while(add_option) + var/option = input("Write your option","Option") as message|null + if(!option) + return pollid + option = sanitizeSQL(option) + var/percentagecalc = 1 + if (polltype != POLLTYPE_IRV) + switch(alert("Calculate option results as percentage?",,"Yes","No","Cancel")) + if("Yes") + percentagecalc = 1 + if("No") + percentagecalc = 0 + else + return pollid + var/minval = 0 + var/maxval = 0 + var/descmin = "" + var/descmid = "" + var/descmax = "" + if(polltype == POLLTYPE_RATING) + minval = input("Set minimum rating value.","Minimum rating") as num|null + if(!minval) + return pollid + maxval = input("Set maximum rating value.","Maximum rating") as num|null + if(!maxval) + return pollid + if(minval >= maxval) + src << "Minimum rating value can't be more than maximum rating value" + return pollid + descmin = input("Optional: Set description for minimum rating","Minimum rating description") as message|null + if(descmin) + descmin = sanitizeSQL(descmin) + else if(descmin == null) + return pollid + descmid = input("Optional: Set description for median rating","Median rating description") as message|null + if(descmid) + descmid = sanitizeSQL(descmid) + else if(descmid == null) + return pollid + descmax = input("Optional: Set description for maximum rating","Maximum rating description") as message|null + if(descmax) + descmax = sanitizeSQL(descmax) + else if(descmax == null) + return pollid + var/DBQuery/query_polladd_option = dbcon.NewQuery("INSERT INTO [format_table_name("poll_option")] (pollid, text, percentagecalc, minval, maxval, descmin, descmid, descmax) VALUES ('[pollid]', '[option]', '[percentagecalc]', '[minval]', '[maxval]', '[descmin]', '[descmid]', '[descmax]')") + if(!query_polladd_option.Execute()) + var/err = query_polladd_option.ErrorMsg() + log_game("SQL ERROR adding new poll option to table. Error : \[[err]\]\n") + return pollid + switch(alert(" ",,"Add option","Finish", "Cancel")) + if("Add option") + add_option = 1 + if("Finish") + add_option = 0 + else + return 0 + return pollid \ No newline at end of file diff --git a/code/modules/admin/create_turf.dm b/code/modules/admin/create_turf.dm new file mode 100644 index 0000000..15abae3 --- /dev/null +++ b/code/modules/admin/create_turf.dm @@ -0,0 +1,9 @@ +/var/create_turf_html = null +/datum/admins/proc/create_turf(mob/user) + if (!create_turf_html) + var/turfjs = null + turfjs = jointext(typesof(/turf), ";") + create_turf_html = file2text('html/create_object.html') + create_turf_html = replacetext(create_turf_html, "null /* object types */", "\"[turfjs]\"") + + user << browse(replacetext(create_turf_html, "/* ref src */", "\ref[src]"), "window=create_turf;size=425x475") diff --git a/code/modules/admin/fun_balloon.dm b/code/modules/admin/fun_balloon.dm new file mode 100644 index 0000000..40eff1c --- /dev/null +++ b/code/modules/admin/fun_balloon.dm @@ -0,0 +1,85 @@ +/obj/effect/fun_balloon + name = "fun balloon" + desc = "This is going to be a laugh riot." + icon = 'icons/obj/weapons.dmi' + icon_state = "syndballoon" + anchored = TRUE + var/popped = FALSE + +/obj/effect/fun_balloon/New() + . = ..() + SSobj.processing |= src + +/obj/effect/fun_balloon/Destroy() + SSobj.processing -= src + . = ..() + +/obj/effect/fun_balloon/process() + if(!popped && check() && !qdeleted(src)) + popped = TRUE + effect() + pop() + +/obj/effect/fun_balloon/proc/check() + return FALSE + +/obj/effect/fun_balloon/proc/effect() + return + +/obj/effect/fun_balloon/proc/pop() + visible_message("[src] pops!") + playsound(get_turf(src), 'sound/items/party_horn.ogg', 50, 1, -1) + qdel(src) + +/obj/effect/fun_balloon/attack_ghost(mob/user) + if(!user.client || !user.client.holder || popped) + return + switch(alert("Pop [src]?","Fun Balloon","Yes","No")) + if("Yes") + effect() + pop() + +/obj/effect/fun_balloon/sentience + name = "sentience fun balloon" + desc = "When this pops, things are gonna get more aware around here." + var/effect_range = 3 + var/group_name = "a bunch of giant spiders" + +/obj/effect/fun_balloon/sentience/effect() + var/list/bodies = list() + for(var/mob/living/M in range(effect_range, get_turf(src))) + bodies += M + + var/question = "Would you like to be [group_name]?" + var/list/candidates = pollCandidatesForMobs(question, "pAI", null, FALSE, 100, bodies) + while(candidates.len && bodies.len) + var/mob/dead/observer/ghost = pick_n_take(candidates) + var/mob/living/body = pick_n_take(bodies) + + body << "Your mob has been taken over by a ghost!" + message_admins("[key_name_admin(ghost)] has taken control \ + of ([key_name_admin(body)])") + body.ghostize(0) + body.key = ghost.key + PoolOrNew(/obj/effect/overlay/temp/sparkle, body) + +/obj/effect/fun_balloon/sentience/emergency_shuttle + name = "shuttle sentience fun balloon" + var/trigger_time = 60 + +/obj/effect/fun_balloon/sentience/emergency_shuttle/check() + . = FALSE + if(SSshuttle.emergency && (SSshuttle.emergency.timeLeft() <= trigger_time) && (SSshuttle.emergency.mode == SHUTTLE_CALL)) + . = TRUE + +/obj/effect/fun_balloon/scatter + name = "scatter fun balloon" + desc = "When this pops, you're not going to be around here anymore." + var/effect_range = 5 + +/obj/effect/fun_balloon/scatter/effect() + for(var/mob/living/M in range(effect_range, get_turf(src))) + var/turf/T = find_safe_turf() + PoolOrNew(/obj/effect/overlay/temp/sparkle, M) + M.forceMove(T) + M << "Pop!" diff --git a/code/modules/admin/holder2.dm b/code/modules/admin/holder2.dm new file mode 100644 index 0000000..b8a1c3e --- /dev/null +++ b/code/modules/admin/holder2.dm @@ -0,0 +1,96 @@ +var/list/admin_datums = list() + +/datum/admins + var/datum/admin_rank/rank + + var/client/owner = null + var/fakekey = null + + var/datum/marked_datum + + var/admincaster_screen = 0 //TODO: remove all these 5 variables, they are completly unacceptable + var/datum/newscaster/feed_message/admincaster_feed_message = new /datum/newscaster/feed_message + var/datum/newscaster/wanted_message/admincaster_wanted_message = new /datum/newscaster/wanted_message + var/datum/newscaster/feed_channel/admincaster_feed_channel = new /datum/newscaster/feed_channel + var/admin_signature + +/datum/admins/New(datum/admin_rank/R, ckey) + if(!ckey) + spawn(0) + del(src) + throw EXCEPTION("Admin datum created without a ckey") + return + if(!istype(R)) + spawn(0) + del(src) + throw EXCEPTION("Admin datum created without a rank") + return + rank = R + admin_signature = "Nanotrasen Officer #[rand(0,9)][rand(0,9)][rand(0,9)]" + admin_datums[ckey] = src + +/datum/admins/proc/associate(client/C) + if(istype(C)) + owner = C + owner.holder = src + owner.add_admin_verbs() //TODO + owner.verbs -= /client/proc/readmin + admins |= C + +/datum/admins/proc/disassociate() + if(owner) + admins -= owner + owner.remove_admin_verbs() + owner.holder = null + owner = null + +/datum/admins/proc/check_if_greater_rights_than_holder(datum/admins/other) + if(!other) + return 1 //they have no rights + if(rank.rights == 65535) + return 1 //we have all the rights + if(src == other) + return 1 //you always have more rights than yourself + if(rank.rights != other.rank.rights) + if( (rank.rights & other.rank.rights) == other.rank.rights ) + return 1 //we have all the rights they have and more + return 0 + +/* +checks if usr is an admin with at least ONE of the flags in rights_required. (Note, they don't need all the flags) +if rights_required == 0, then it simply checks if they are an admin. +if it doesn't return 1 and show_msg=1 it will prints a message explaining why the check has failed +generally it would be used like so: + +proc/admin_proc() + if(!check_rights(R_ADMIN)) return + world << "you have enough rights!" + +NOTE: it checks usr! not src! So if you're checking somebody's rank in a proc which they did not call +you will have to do something like if(client.rights & R_ADMIN) yourself. +*/ +/proc/check_rights(rights_required, show_msg=1) + if(usr && usr.client) + if (check_rights_for(usr.client, rights_required)) + return 1 + else + if(show_msg) + usr << "Error: You do not have sufficient rights to do that. You require one of the following flags:[rights2text(rights_required," ")]." + return 0 + +//probably a bit iffy - will hopefully figure out a better solution +/proc/check_if_greater_rights_than(client/other) + if(usr && usr.client) + if(usr.client.holder) + if(!other || !other.holder) + return 1 + return usr.client.holder.check_if_greater_rights_than_holder(other.holder) + return 0 + +//This proc checks whether subject has at least ONE of the rights specified in rights_required. +/proc/check_rights_for(client/subject, rights_required) + if(subject && subject.holder && subject.holder.rank) + if(rights_required && !(rights_required & subject.holder.rank.rights)) + return 0 + return 1 + return 0 \ No newline at end of file diff --git a/code/modules/admin/ipintel.dm b/code/modules/admin/ipintel.dm new file mode 100644 index 0000000..af72963 --- /dev/null +++ b/code/modules/admin/ipintel.dm @@ -0,0 +1,134 @@ +/datum/ipintel + var/ip + var/intel = 0 + var/cache = FALSE + var/cacheminutesago = 0 + var/cachedate = "" + var/cacherealtime = 0 + +/datum/ipintel/New() + cachedate = SQLtime() + cacherealtime = world.realtime + +/datum/ipintel/proc/is_valid() + . = FALSE + if (intel < 0) + return + if (intel <= config.ipintel_rating_bad) + if (world.realtime < cacherealtime+(config.ipintel_save_good*60*60*10)) + return TRUE + else + if (world.realtime < cacherealtime+(config.ipintel_save_bad*60*60*10)) + return TRUE + +/proc/get_ip_intel(ip, bypasscache = FALSE, updatecache = TRUE) + var/datum/ipintel/res = new() + res.ip = ip + . = res + if (!ip || !config.ipintel_email || !SSipintel.enabled) + return + if (!bypasscache) + var/datum/ipintel/cachedintel = SSipintel.cache[ip] + if (cachedintel && cachedintel.is_valid()) + cachedintel.cache = TRUE + return cachedintel + + if (establish_db_connection()) + var/DBQuery/query = dbcon.NewQuery({" + SELECT date, intel, TIMESTAMPDIFF(MINUTE,date,NOW()) + FROM [format_table_name("ipintel")] + WHERE + ip = INET_ATON('[ip]') + AND (( + intel < [config.ipintel_rating_bad] + AND + date + INTERVAL [config.ipintel_save_good] HOUR > NOW() + ) OR ( + intel >= [config.ipintel_rating_bad] + AND + date + INTERVAL [config.ipintel_save_bad] HOUR > NOW() + )) + "}) + query.Execute() + if (query.NextRow()) + res.cache = TRUE + res.cachedate = query.item[1] + res.intel = text2num(query.item[2]) + res.cacheminutesago = text2num(query.item[3]) + res.cacherealtime = world.realtime - (text2num(query.item[3])*10*60) + SSipintel.cache[ip] = res + return + res.intel = ip_intel_query(ip) + if (updatecache && res.intel >= 0) + SSipintel.cache[ip] = res + if (establish_db_connection()) + var/DBQuery/query = dbcon.NewQuery("INSERT INTO [format_table_name("ipintel")] (ip, intel) VALUES (INET_ATON('[ip]'), [res.intel]) ON DUPLICATE KEY UPDATE intel = VALUES(intel), date = NOW()") + query.Execute() + return + + + +/proc/ip_intel_query(ip, var/retryed=0) + . = -1 //default + if (!ip) + return + if (SSipintel.throttle > world.timeofday) + return + if (!SSipintel.enabled) + return + + var/list/http[] = world.Export("http://[config.ipintel_domain]/check.php?ip=[ip]&contact=[config.ipintel_email]&format=json&flags=f") + + if (http) + var/status = text2num(http["STATUS"]) + + if (status == 200) + var/response = json_decode(file2text(http["CONTENT"])) + if (response) + if (response["status"] == "success") + var/intelnum = text2num(response["result"]) + if (isnum(intelnum)) + return text2num(response["result"]) + else + ipintel_handle_error("Bad intel from server: [response["result"]].", ip, retryed) + if (!retryed) + sleep(25) + return .(ip, 1) + else + ipintel_handle_error("Bad response from server: [response["status"]].", ip, retryed) + if (!retryed) + sleep(25) + return .(ip, 1) + + else if (status == 429) + ipintel_handle_error("Error #429: We have exceeded the rate limit.", ip, 1) + return + else + ipintel_handle_error("Unknown status code: [status].", ip, retryed) + if (!retryed) + sleep(25) + return .(ip, 1) + else + ipintel_handle_error("Unable to connect to API.", ip, retryed) + if (!retryed) + sleep(25) + return .(ip, 1) + + +/proc/ipintel_handle_error(error, ip, retryed) + if (retryed) + SSipintel.errors++ + error += " Could not check [ip]. Disabling IPINTEL for [SSipintel.errors] minute[( SSipintel.errors == 1 ? "" : "s" )]" + SSipintel.throttle = world.timeofday + (10 * 120 * SSipintel.errors) + else + error += " Attempting retry on [ip]." + log_ipintel(error) + +/proc/log_ipintel(text) + log_game("IPINTEL: [text]") + debug_admins("IPINTEL: [text]") + + + + + diff --git a/code/modules/admin/permissionverbs/permissionedit.dm b/code/modules/admin/permissionverbs/permissionedit.dm new file mode 100644 index 0000000..f95cff0 --- /dev/null +++ b/code/modules/admin/permissionverbs/permissionedit.dm @@ -0,0 +1,133 @@ +/client/proc/edit_admin_permissions() + set category = "Admin" + set name = "Permissions Panel" + set desc = "Edit admin permissions" + if(!check_rights(R_PERMISSIONS)) + return + usr.client.holder.edit_admin_permissions() + +/datum/admins/proc/edit_admin_permissions() + if(!check_rights(R_PERMISSIONS)) + return + + var/output = {" + + +Permissions Panel + + + + +
          + + + + + + +"} + + for(var/adm_ckey in admin_datums) + var/datum/admins/D = admin_datums[adm_ckey] + if(!D) + continue + + var/rights = rights2text(D.rank.rights," ") + if(!rights) rights = "*none*" + + output += "" + output += "" + output += "" + output += "" + output += "" + output += "" + + output += {" +
          CKEY \[+\]RANKPERMISSIONSVERB-OVERRIDES
          [adm_ckey] \[-\][D.rank.name][rights][rights2text(0," ",D.rank.adds,D.rank.subs)]
          +
          Search:
          + +"} + + usr << browse(output,"window=editrights;size=900x650") + +/datum/admins/proc/log_admin_rank_modification(adm_ckey, new_rank) + if(config.admin_legacy_system) + return + + if(!usr.client) + return + + if (!check_rights(R_PERMISSIONS)) + return + + establish_db_connection() + + if(!dbcon.IsConnected()) + usr << "Failed to establish database connection." + return + + if(!adm_ckey || !new_rank) + return + + adm_ckey = ckey(adm_ckey) + + if(!adm_ckey) + return + + if(!istext(adm_ckey) || !istext(new_rank)) + return + + var/DBQuery/select_query = dbcon.NewQuery("SELECT id FROM [format_table_name("admin")] WHERE ckey = '[adm_ckey]'") + select_query.Execute() + + var/new_admin = 1 + var/admin_id + while(select_query.NextRow()) + new_admin = 0 + admin_id = text2num(select_query.item[1]) + + if(new_admin) + var/DBQuery/insert_query = dbcon.NewQuery("INSERT INTO `[format_table_name("admin")]` (`id`, `ckey`, `rank`, `level`, `flags`) VALUES (null, '[adm_ckey]', '[new_rank]', -1, 0)") + insert_query.Execute() + var/DBQuery/log_query = dbcon.NewQuery("INSERT INTO `[format_table_name("admin_log")]` (`id` ,`datetime` ,`adminckey` ,`adminip` ,`log` ) VALUES (NULL , NOW( ) , '[usr.ckey]', '[usr.client.address]', 'Added new admin [adm_ckey] to rank [new_rank]');") + log_query.Execute() + usr << "New admin added." + else + if(!isnull(admin_id) && isnum(admin_id)) + var/DBQuery/insert_query = dbcon.NewQuery("UPDATE `[format_table_name("admin")]` SET rank = '[new_rank]' WHERE id = [admin_id]") + insert_query.Execute() + var/DBQuery/log_query = dbcon.NewQuery("INSERT INTO `[format_table_name("admin_log")]` (`id` ,`datetime` ,`adminckey` ,`adminip` ,`log` ) VALUES (NULL , NOW( ) , '[usr.ckey]', '[usr.client.address]', 'Edited the rank of [adm_ckey] to [new_rank]');") + log_query.Execute() + usr << "Admin rank changed." + + +/datum/admins/proc/log_admin_permission_modification(adm_ckey, new_permission) + if(config.admin_legacy_system) + return + if(!usr.client) + return + if(check_rights(R_PERMISSIONS)) + return + + establish_db_connection() + if(!dbcon.IsConnected()) + usr << "Failed to establish database connection." + return + + if(!adm_ckey || !istext(adm_ckey) || !isnum(new_permission)) + return + + var/DBQuery/select_query = dbcon.NewQuery("SELECT id, flags FROM [format_table_name("admin")] WHERE ckey = '[adm_ckey]'") + select_query.Execute() + + var/admin_id + while(select_query.NextRow()) + admin_id = text2num(select_query.item[1]) + + if(!admin_id) + return + + var/DBQuery/insert_query = dbcon.NewQuery("UPDATE `[format_table_name("admin")]` SET flags = [new_permission] WHERE id = [admin_id]") + insert_query.Execute() + var/DBQuery/log_query = dbcon.NewQuery("INSERT INTO `[format_table_name("admin_log")]` (`id` ,`datetime` ,`adminckey` ,`adminip` ,`log` ) VALUES (NULL , NOW( ) , '[usr.ckey]', '[usr.client.address]', 'Edit permission [rights2text(new_permission)] (flag = [new_permission]) to admin [adm_ckey]');") + log_query.Execute() diff --git a/code/modules/admin/player_panel.dm b/code/modules/admin/player_panel.dm new file mode 100644 index 0000000..dbce9bc --- /dev/null +++ b/code/modules/admin/player_panel.dm @@ -0,0 +1,593 @@ +/datum/admins/proc/player_panel_new()//The new one + if(!check_rights()) + return + var/dat = "Player Panel" + + //javascript, the part that does most of the work~ + dat += {" + + + + + + + "} + + //body tag start + onload and onkeypress (onkeyup) javascript event calls + dat += "" + + //title + search bar + dat += {" + + + + + + + + +
          + Player panel
          + Hover over a line to see more information - Check antagonists - Kick everyone/AFKers in lobby +

          +

          + Search: +
          + + "} + + //player table header + dat += {" + + "} + + var/list/mobs = sortmobs() + var/i = 1 + for(var/mob/M in mobs) + if(M.ckey) + + var/color = "#e6e6e6" + if(i%2 == 0) + color = "#f2f2f2" + var/is_antagonist = is_special_character(M) + + var/M_job = "" + + if(isliving(M)) + + if(iscarbon(M)) //Carbon stuff + if(ishuman(M)) + M_job = M.job + else if(ismonkey(M)) + M_job = "Monkey" + else if(isalien(M)) //aliens + if(islarva(M)) + M_job = "Alien larva" + else + M_job = "Alien" + else + M_job = "Carbon-based" + + else if(issilicon(M)) //silicon + if(isAI(M)) + M_job = "AI" + else if(ispAI(M)) + M_job = "pAI" + else if(iscyborg(M)) + M_job = "Cyborg" + else + M_job = "Silicon-based" + + else if(isanimal(M)) //simple animals + if(iscorgi(M)) + M_job = "Corgi" + else if(isslime(M)) + M_job = "slime" + else + M_job = "Animal" + + else + M_job = "Living" + + else if(isnewplayer(M)) + M_job = "New player" + + else if(isobserver(M)) + var/mob/dead/observer/O = M + if(O.started_as_observer)//Did they get BTFO or are they just not trying? + M_job = "Observer" + else + M_job = "Ghost" + + var/M_name = html_encode(M.name) + var/M_rname = html_encode(M.real_name) + var/M_key = html_encode(M.key) + + //output for each mob + dat += {" + + + + + + "} + + i++ + + + //player table ending + dat += {" +
          + + + [M_name] - [M_rname] - [M_key] ([M_job]) + +
          +
          +
          + + + + "} + + usr << browse(dat, "window=players;size=600x480") + +/datum/admins/proc/check_antagonists() + if (ticker && ticker.current_state >= GAME_STATE_PLAYING) + var/dat = "Round Status

          Round Status

          " + if(ticker.mode.replacementmode) + dat += "Former Game Mode: [ticker.mode.name]
          " + dat += "Replacement Game Mode: [ticker.mode.replacementmode.name]
          " + else + dat += "Current Game Mode: [ticker.mode.name]
          " + dat += "Round Duration: [round(world.time / 36000)]:[add_zero("[world.time / 600 % 60]", 2)]:[world.time / 100 % 6][world.time / 100 % 10]
          " + dat += "Emergency shuttle
          " + if(EMERGENCY_IDLE_OR_RECALLED) + dat += "Call Shuttle
          " + else + var/timeleft = SSshuttle.emergency.timeLeft() + if(SSshuttle.emergency.mode == SHUTTLE_CALL) + dat += "ETA: [(timeleft / 60) % 60]:[add_zero(num2text(timeleft % 60), 2)]
          " + dat += "Send Back
          " + else + dat += "ETA: [(timeleft / 60) % 60]:[add_zero(num2text(timeleft % 60), 2)]
          " + dat += "Continuous Round Status
          " + dat += "[config.continuous[ticker.mode.config_tag] ? "Continue if antagonists die" : "End on antagonist death"]" + if(config.continuous[ticker.mode.config_tag]) + dat += ", [config.midround_antag[ticker.mode.config_tag] ? "creating replacement antagonists" : "not creating new antagonists"]
          " + else + dat += "
          " + if(config.midround_antag[ticker.mode.config_tag]) + dat += "Time limit: [config.midround_antag_time_check] minutes into round
          " + dat += "Living crew limit: [config.midround_antag_life_check * 100]% of crew alive
          " + dat += "If limits past: [ticker.mode.round_ends_with_antag_death ? "End The Round" : "Continue As Extended"]
          " + + dat += "
          " + dat += "End Round Now
          " + dat += "[ticker.delay_end ? "End Round Normally" : "Delay Round End"]
          " + if(ticker.mode.syndicates.len) + dat += "
          " + for(var/datum/mind/N in ticker.mode.syndicates) + var/mob/M = N.current + if(M) + dat += "" + dat += "" + dat += "" + else + dat += "" + dat += "" + dat += "
          Syndicates
          [M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""]PMFLW
          [N.name]([N.key]) Nuclear Operative Body destroyed!PM

          " + for(var/obj/item/weapon/disk/nuclear/N in poi_list) + dat += "" + dat += "
          Nuclear Disk(s)
          [N.name], " + var/atom/disk_loc = N.loc + while(!isturf(disk_loc)) + if(ismob(disk_loc)) + var/mob/M = disk_loc + dat += "carried by [M.real_name] " + if(isobj(disk_loc)) + var/obj/O = disk_loc + dat += "in \a [O.name] " + disk_loc = disk_loc.loc + dat += "in [disk_loc.loc] at ([disk_loc.x], [disk_loc.y], [disk_loc.z])
          " + + if(ticker.mode.head_revolutionaries.len || ticker.mode.revolutionaries.len) + dat += "
          " + for(var/datum/mind/N in ticker.mode.head_revolutionaries) + var/mob/M = N.current + if(!M) + dat += "" + dat += "" + else + dat += "" + dat += "" + dat += "" + for(var/datum/mind/N in ticker.mode.revolutionaries) + var/mob/M = N.current + if(M) + dat += "" + dat += "" + dat += "" + dat += "
          Revolutionaries
          [N.name]([N.key])Head Revolutionary body destroyed!PM
          [M.real_name] (Leader)[M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""]PMFLW
          [M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""]PMFLW
          " + for(var/datum/mind/N in ticker.mode.get_living_heads()) + var/mob/M = N.current + if(M) + dat += "" + dat += "" + dat += "" + var/turf/mob_loc = get_turf(M) + dat += "" + else + dat += "" + dat += "" + dat += "
          Target(s)Location
          [M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""]PMFLW[mob_loc.loc]
          [N.name]([N.key])Head body destroyed!PM
          " + + for(var/datum/gang/G in ticker.mode.gangs) + dat += "
          " + for(var/datum/mind/N in G.bosses) + var/mob/M = N.current + if(!M) + dat += "" + dat += "" + else + dat += "" + dat += "" + dat += "" + for(var/datum/mind/N in G.gangsters) + var/mob/M = N.current + if(M) + dat += "" + dat += "" + dat += "
          [G.name] Gang: [G.points] Influence | [round((G.territory.len/start_state.num_territories)*100, 1)]% Control
          [N.name]([N.key])Gang Boss body destroyed!PM
          [M.real_name] (Boss)[M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""]PMFLW
          [M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""]PM
          " + + if(ticker.mode.changelings.len > 0) + dat += "
          " + for(var/datum/mind/changeling in ticker.mode.changelings) + var/mob/M = changeling.current + if(M) + dat += "" + dat += "" + dat += "" + dat += "" + else + dat += "" + dat += "" + dat += "
          Changelings
          [M.mind.changeling.changelingID] as [M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""]PMFLWShow Objective
          [changeling.name]([changeling.key])Changeling body destroyed!PM
          " + + if(ticker.mode.wizards.len > 0) + dat += "
          " + for(var/datum/mind/wizard in ticker.mode.wizards) + var/mob/M = wizard.current + if(M) + dat += "" + dat += "" + dat += "" + dat += "" + else + dat += "" + dat += "" + dat += "
          Wizards
          [M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""]PMFLWShow Objective
          [wizard.name]([wizard.key])Wizard body destroyed!
          PM
          " + + if(ticker.mode.apprentices.len > 0) + dat += "
          " + for(var/datum/mind/apprentice in ticker.mode.apprentices) + var/mob/M = apprentice.current + if(M) + dat += "" + dat += "" + dat += "" + dat += "" + else + dat += "" + dat += "" + dat += "
          Apprentice
          [M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""]PMFLWShow Objective
          [apprentice.name]([apprentice.key])Apprentice body destroyed!!
          PM
          " + + if(ticker.mode.cult.len) + dat += "
          " + for(var/datum/mind/N in ticker.mode.cult) + var/mob/M = N.current + if(M) + dat += "" + dat += "" + dat += "" + dat += "
          Cultists
          [M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""]PMFLW
          " + + if(ticker.mode.servants_of_ratvar.len) + dat += "
          " + for(var/datum/mind/N in ticker.mode.servants_of_ratvar) + var/mob/M = N.current + if(M) + dat += "" + dat += "" + dat += "" + dat += "
          Servants of Ratvar
          [M.real_name][M.client ? "" : " (ghost)"][M.stat == 2 ? " (DEAD)" : ""]PMFLW
          " + + if(ticker.mode.traitors.len > 0) + dat += "
          " + for(var/datum/mind/traitor in ticker.mode.traitors) + var/mob/M = traitor.current + if(M) + dat += "" + dat += "" + dat += "" + dat += "" + else + dat += "" + dat += "" + dat += "
          Traitors
          [M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""]PMFLWShow Objective
          [traitor.name]([traitor.key])Traitor body destroyed!PM
          " + + if(ticker.mode.abductors.len) + dat += "
          " + for(var/datum/mind/abductor in ticker.mode.abductors) + var/mob/M = abductor.current + if(M) + dat += "" + dat += "" + dat += "" + dat += "" + else + dat += "" + dat += "" + dat += "
          Abductors
          [M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""]PMFLWShow Objective
          [abductor.name]([abductor.key])Abductor body destroyed!
          PM
          " + dat += "
          " + for(var/obj/machinery/abductor/experiment/E in machines) + for(var/datum/mind/abductee in E.abductee_minds) + var/mob/M = abductee.current + if(M) + dat += "" + dat += "" + dat += "" + dat += "" + else + dat += "" + dat += "" + dat += "
          Abductees
          [M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""]PMFLWShow Objective
          [abductee.name]([abductee.key])Abductee body destroyed!PM
          " + + if(ticker.mode.devils.len) + dat += "
          " + for(var/X in ticker.mode.devils) + var/datum/mind/devil = X + var/mob/M = devil.current + if(M) + dat += "" + dat += "" + dat += "" + dat += "" + else + dat += "" + dat += "" + dat += "
          devils
          [M.real_name] : [devil.devilinfo.truename][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""]PMShow Objective
          Show all devil info
          [devil.name] : [devil.devilinfo.truename] ([devil.key])devil body destroyed!
          PM
          " + + if(ticker.mode.sintouched.len) + dat += "
          " + for(var/X in ticker.mode.sintouched) + var/datum/mind/sintouched = X + var/mob/M = sintouched.current + if(M) + dat += "" + dat += "" + dat += "" + else + dat += "" + dat += "" + dat += "
          sintouched
          [M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""]PMShow Objective
          [sintouched.name]([sintouched.key])sintouched body destroyed!
          PM
          " + + var/list/blob_minds = list() + for(var/mob/camera/blob/B in mob_list) + blob_minds |= B.mind + + if(istype(ticker.mode, /datum/game_mode/blob) || blob_minds.len) + dat += "
          " + if(istype(ticker.mode,/datum/game_mode/blob)) + var/datum/game_mode/blob/mode = ticker.mode + blob_minds |= mode.blob_overminds + dat += "" + + for(var/datum/mind/blob in blob_minds) + var/mob/M = blob.current + if(M) + dat += "" + dat += "" + dat += "" + else + dat += "" + dat += "" + dat += "
          Blob
          Progress: [blobs_legit.len]/[mode.blobwincount]
          [M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""]PMFLW
          [blob.name]([blob.key])Blob not found!PM
          " + + + if(istype(ticker.mode, /datum/game_mode/monkey)) + var/datum/game_mode/monkey/mode = ticker.mode + dat += "
          " + + for(var/datum/mind/eek in mode.ape_infectees) + var/mob/M = eek.current + if(M) + dat += "" + dat += "" + dat += "" + else + dat += "" + dat += "" + dat += "
          Monkey
          [M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""]PMFLW
          [eek.name]([eek.key])Monkey not found!PM
          " + + + dat += "" + usr << browse(dat, "window=roundstatus;size=420x500") + else + alert("The game hasn't started yet!") diff --git a/code/modules/admin/secrets.dm b/code/modules/admin/secrets.dm new file mode 100644 index 0000000..1065b1f --- /dev/null +++ b/code/modules/admin/secrets.dm @@ -0,0 +1,599 @@ +/datum/admins/proc/Secrets() + if(!check_rights(0)) return + + var/dat = "The first rule of adminbuse is: you don't talk about the adminbuse.
          " + + dat +={" + General Secrets
          +
          + Show Job Debug
          + Admin Log
          + Show Admin List
          +
          + "} + + if(check_rights(R_ADMIN,0)) + dat += {" + Admin Secrets
          +
          + Cure all diseases currently in existence
          + Bombing List
          + Show current traitors and objectives
          + Show last [length(lastsignalers)] signalers
          + Show last [length(lawchanges)] law changes
          + Show AI Laws
          + Show Game Mode
          + Show Crew Manifest
          + List DNA (Blood)
          + List Fingerprints
          + Enable/Disable CTF

          + Reset Thunderdome to default state
          + Reset Station Name
          +
          + Shuttles
          +
          + Move Ferry
          + Move Mining Shuttle
          + Move Labor Shuttle
          +
          + "} + + if(check_rights(R_FUN,0)) + dat += {" + Fun Secrets
          +
          + + Trigger a Virus Outbreak
          + Turn all humans into monkeys
          + Chinese Cartoons
          + Change the species of all humans
          + Make all areas powered
          + Make all areas unpowered
          + Power all SMES
          + Triple AI mode (needs to be used in the lobby)
          + Everyone is the traitor
          + Summon Guns
          + Summon Magic
          + Summon Events (Toggle)
          + There can only be one!
          + There can only be me!
          + Make all players retarded
          + Egalitarian Station Mode
          + Break all lights
          + Fix all lights
          + The floor is lava! (DANGEROUS: extremely lame)
          +
          + Change bomb cap
          + Mass Purrbation
          + Mass Remove Purrbation
          + "} + + dat += "
          " + + if(check_rights(R_DEBUG,0)) + dat += {" + Security Level Elevated
          +
          + Change all maintenance doors to engie/brig access only
          + Change all maintenance doors to brig access only
          + Remove cap on security officers
          +
          + "} + + usr << browse(dat, "window=secrets") + return + + + + + +/datum/admins/proc/Secrets_topic(item,href_list) + var/datum/round_event/E + var/ok = 0 + switch(item) + if("admin_log") + var/dat = "Admin Log
          " + for(var/l in admin_log) + dat += "
        • [l]
        • " + if(!admin_log.len) + dat += "No-one has done anything this round!" + usr << browse(dat, "window=admin_log") + + if("list_job_debug") + var/dat = "Job Debug info.
          " + if(SSjob) + for(var/line in SSjob.job_debug) + dat += "[line]
          " + dat+= "*******

          " + for(var/datum/job/job in SSjob.occupations) + if(!job) + continue + dat += "job: [job.title], current_positions: [job.current_positions], total_positions: [job.total_positions]
          " + usr << browse(dat, "window=jobdebug;size=600x500") + + if("show_admins") + var/dat = "Current admins:
          " + if(admin_datums) + for(var/ckey in admin_datums) + var/datum/admins/D = admin_datums[ckey] + dat += "[ckey] - [D.rank.name]
          " + usr << browse(dat, "window=showadmins;size=600x500") + + if("tdomereset") + if(!check_rights(R_ADMIN)) + return + var/delete_mobs = alert("Clear all mobs?","Confirm","Yes","No","Cancel") + if(delete_mobs == "Cancel") + return + + log_admin("[key_name(usr)] reset the thunderdome to default with delete_mobs==[delete_mobs].", 1) + message_admins("[key_name_admin(usr)] reset the thunderdome to default with delete_mobs==[delete_mobs].") + + var/area/thunderdome = locate(/area/tdome/arena) + if(delete_mobs == "Yes") + for(var/mob/living/mob in thunderdome) + qdel(mob) //Clear mobs + for(var/obj/obj in thunderdome) + if(!istype(obj,/obj/machinery/camera)) + qdel(obj) //Clear objects + + var/area/template = locate(/area/tdome/arena_source) + template.copy_contents_to(thunderdome) + + if("clear_virus") + + var/choice = input("Are you sure you want to cure all disease?") in list("Yes", "Cancel") + if(choice == "Yes") + message_admins("[key_name_admin(usr)] has cured all diseases.") + for(var/datum/disease/D in SSdisease.processing) + D.cure(D) + + if("reset_name") + if(!check_rights(R_ADMIN)) + return + world.name = new_station_name() + station_name = world.name + log_admin("[key_name(usr)] reset the station name.") + message_admins("[key_name_admin(usr)] reset the station name.") + + if("list_bombers") + if(!check_rights(R_ADMIN)) + return + var/dat = "Bombing List
          " + for(var/l in bombers) + dat += text("[l]
          ") + usr << browse(dat, "window=bombers") + + if("list_signalers") + if(!check_rights(R_ADMIN)) + return + var/dat = "Showing last [length(lastsignalers)] signalers.
          " + for(var/sig in lastsignalers) + dat += "[sig]
          " + usr << browse(dat, "window=lastsignalers;size=800x500") + + if("list_lawchanges") + if(!check_rights(R_ADMIN)) + return + var/dat = "Showing last [length(lawchanges)] law changes.
          " + for(var/sig in lawchanges) + dat += "[sig]
          " + usr << browse(dat, "window=lawchanges;size=800x500") + + if("moveminingshuttle") + if(!check_rights(R_ADMIN)) + return + feedback_inc("admin_secrets_fun_used",1) + feedback_add_details("admin_secrets_fun_used","ShM") + if(!SSshuttle.toggleShuttle("mining","mining_home","mining_away")) + message_admins("[key_name_admin(usr)] moved mining shuttle") + log_admin("[key_name(usr)] moved the mining shuttle") + + if("movelaborshuttle") + if(!check_rights(R_ADMIN)) + return + feedback_inc("admin_secrets_fun_used",1) + feedback_add_details("admin_secrets_fun_used","ShL") + if(!SSshuttle.toggleShuttle("laborcamp","laborcamp_home","laborcamp_away")) + message_admins("[key_name_admin(usr)] moved labor shuttle") + log_admin("[key_name(usr)] moved the labor shuttle") + + if("moveferry") + if(!check_rights(R_ADMIN)) + return + feedback_inc("admin_secrets_fun_used",1) + feedback_add_details("admin_secrets_fun_used","ShF") + if(!SSshuttle.toggleShuttle("ferry","ferry_home","ferry_away")) + message_admins("[key_name_admin(usr)] moved the centcom ferry") + log_admin("[key_name(usr)] moved the centcom ferry") + + if("showailaws") + if(!check_rights(R_ADMIN)) + return + output_ai_laws() + if("showgm") + if(!check_rights(R_ADMIN)) + return + if(!ticker || !ticker.mode) + alert("The game hasn't started yet!") + else if (ticker.mode) + alert("The game mode is [ticker.mode.name]") + else alert("For some reason there's a ticker, but not a game mode") + if("manifest") + if(!check_rights(R_ADMIN)) + return + var/dat = "Showing Crew Manifest.
          " + dat += "" + for(var/datum/data/record/t in data_core.general) + dat += "" + dat += "
          NamePosition
          [t.fields["name"]][t.fields["rank"]]
          " + usr << browse(dat, "window=manifest;size=440x410") + if("DNA") + if(!check_rights(R_ADMIN)) + return + var/dat = "Showing DNA from blood.
          " + dat += "" + for(var/mob/living/carbon/human/H in mob_list) + if(H.ckey) + dat += "" + dat += "
          NameDNABlood Type
          [H][H.dna.unique_enzymes][H.dna.blood_type]
          " + usr << browse(dat, "window=DNA;size=440x410") + if("fingerprints") + if(!check_rights(R_ADMIN)) + return + var/dat = "Showing Fingerprints.
          " + dat += "" + for(var/mob/living/carbon/human/H in mob_list) + if(H.ckey) + dat += "" + dat += "
          NameFingerprints
          [H][md5(H.dna.uni_identity)]
          " + usr << browse(dat, "window=fingerprints;size=440x410") + + if("monkey") + if(!check_rights(R_FUN)) + return + feedback_inc("admin_secrets_fun_used",1) + feedback_add_details("admin_secrets_fun_used","M") + for(var/mob/living/carbon/human/H in mob_list) + spawn(0) + H.monkeyize() + ok = 1 + + if("allspecies") + if(!check_rights(R_FUN)) + return + var/result = input(usr, "Please choose a new species","Species") as null|anything in species_list + if(result) + log_admin("[key_name(usr)] turned all humans into [result]", 1) + message_admins("\blue [key_name_admin(usr)] turned all humans into [result]") + var/newtype = species_list[result] + for(var/mob/living/carbon/human/H in mob_list) + H.set_species(newtype) + + if("corgi") + if(!check_rights(R_FUN)) + return + feedback_inc("admin_secrets_fun_used",1) + feedback_add_details("admin_secrets_fun_used","M") + for(var/mob/living/carbon/human/H in mob_list) + spawn(0) + H.corgize() + ok = 1 + + if("tripleAI") + if(!check_rights(R_FUN)) + return + usr.client.triple_ai() + feedback_inc("admin_secrets_fun_used",1) + feedback_add_details("admin_secrets_fun_used","TriAI") + + if("power") + if(!check_rights(R_FUN)) + return + feedback_inc("admin_secrets_fun_used",1) + feedback_add_details("admin_secrets_fun_used","P") + log_admin("[key_name(usr)] made all areas powered", 1) + message_admins("[key_name_admin(usr)] made all areas powered") + power_restore() + + if("unpower") + if(!check_rights(R_FUN)) + return + feedback_inc("admin_secrets_fun_used",1) + feedback_add_details("admin_secrets_fun_used","UP") + log_admin("[key_name(usr)] made all areas unpowered", 1) + message_admins("[key_name_admin(usr)] made all areas unpowered") + power_failure() + + if("quickpower") + if(!check_rights(R_FUN)) + return + feedback_inc("admin_secrets_fun_used",1) + feedback_add_details("admin_secrets_fun_used","QP") + log_admin("[key_name(usr)] made all SMESs powered", 1) + message_admins("[key_name_admin(usr)] made all SMESs powered") + power_restore_quick() + + if("traitor_all") + if(!check_rights(R_FUN)) + return + if(!ticker || !ticker.mode) + alert("The game hasn't started yet!") + return + var/objective = copytext(sanitize(input("Enter an objective")),1,MAX_MESSAGE_LEN) + if(!objective) + return + feedback_inc("admin_secrets_fun_used",1) + feedback_add_details("admin_secrets_fun_used","TA([objective])") + for(var/mob/living/carbon/human/H in player_list) + if(H.stat == 2 || !H.client || !H.mind) continue + if(is_special_character(H)) continue + //traitorize(H, objective, 0) + ticker.mode.traitors += H.mind + H.mind.special_role = "traitor" + var/datum/objective/new_objective = new + new_objective.owner = H + new_objective.explanation_text = objective + H.mind.objectives += new_objective + ticker.mode.greet_traitor(H.mind) + //ticker.mode.forge_traitor_objectives(H.mind) + ticker.mode.finalize_traitor(H.mind) + for(var/mob/living/silicon/A in player_list) + if(A.stat == 2 || !A.client || !A.mind) continue + if(ispAI(A)) continue + else if(is_special_character(A)) continue + ticker.mode.traitors += A.mind + A.mind.special_role = "traitor" + var/datum/objective/new_objective = new + new_objective.owner = A + new_objective.explanation_text = objective + A.mind.objectives += new_objective + ticker.mode.greet_traitor(A.mind) + ticker.mode.finalize_traitor(A.mind) + message_admins("[key_name_admin(usr)] used everyone is a traitor secret. Objective is [objective]") + log_admin("[key_name(usr)] used everyone is a traitor secret. Objective is [objective]") + + if("changebombcap") + if(!check_rights(R_FUN)) + return + feedback_inc("admin_secrets_fun_used",1) + feedback_add_details("admin_secrets_fun_used","BC") + + var/newBombCap = input(usr,"What would you like the new bomb cap to be. (entered as the light damage range (the 3rd number in common (1,2,3) notation)) Must be above 4)", "New Bomb Cap", MAX_EX_LIGHT_RANGE) as num|null + if (newBombCap < 4) + return + + MAX_EX_DEVESTATION_RANGE = round(newBombCap/4) + MAX_EX_HEAVY_RANGE = round(newBombCap/2) + MAX_EX_LIGHT_RANGE = newBombCap + //I don't know why these are their own variables, but fuck it, they are. + MAX_EX_FLASH_RANGE = newBombCap + MAX_EX_FLAME_RANGE = newBombCap + + message_admins("[key_name_admin(usr)] changed the bomb cap to [MAX_EX_DEVESTATION_RANGE], [MAX_EX_HEAVY_RANGE], [MAX_EX_LIGHT_RANGE]") + log_admin("[key_name(usr)] changed the bomb cap to [MAX_EX_DEVESTATION_RANGE], [MAX_EX_HEAVY_RANGE], [MAX_EX_LIGHT_RANGE]") + + + if("lightsout") + if(!check_rights(R_FUN)) + return + feedback_inc("admin_secrets_fun_used",1) + feedback_add_details("admin_secrets_fun_used","LO") + message_admins("[key_name_admin(usr)] has broke a lot of lights") + E = new /datum/round_event/electrical_storm{lightsoutAmount = 2}() + + if("blackout") + if(!check_rights(R_FUN)) + return + feedback_inc("admin_secrets_fun_used",1) + feedback_add_details("admin_secrets_fun_used","BO") + message_admins("[key_name_admin(usr)] broke all lights") + for(var/obj/machinery/light/L in machines) + L.break_light_tube() + + if("anime") + if(!check_rights(R_FUN)) + return + feedback_inc("admin_secrets_fun_used",1) + feedback_add_details("admin_secrets_fun_used","CC") + message_admins("[key_name_admin(usr)] made everything kawaii.") + for(var/mob/living/carbon/human/H in mob_list) + H << sound('sound/AI/animes.ogg') + + if(H.dna.species.id == "human") + if(H.dna.features["tail_human"] == "None" || H.dna.features["ears"] == "None") + H.dna.features["tail_human"] = "Cat" + H.dna.features["ears"] = "Cat" + var/seifuku = pick(typesof(/obj/item/clothing/under/schoolgirl)) + var/obj/item/clothing/under/schoolgirl/I = new seifuku + var/list/honorifics = list("[MALE]" = list("kun"), "[FEMALE]" = list("chan","tan"), "[NEUTER]" = list("san")) //John Robust -> Robust-kun + var/list/names = splittext(H.real_name," ") + var/forename = names.len > 1 ? names[2] : names[1] + var/newname = "[forename]-[pick(honorifics["[H.gender]"])]" + H.fully_replace_character_name(H.real_name,newname) + H.unEquip(H.w_uniform) + H.equip_to_slot_or_del(I, slot_w_uniform) + I.flags |= NODROP + else + H << "You're not kawaii enough for this." + + if("whiteout") + if(!check_rights(R_FUN)) + return + feedback_inc("admin_secrets_fun_used",1) + feedback_add_details("admin_secrets_fun_used","WO") + message_admins("[key_name_admin(usr)] fixed all lights") + for(var/obj/machinery/light/L in machines) + L.fix() + + if("floorlava") + SSweather.run_weather("the floor is lava") + + if("virus") + if(!check_rights(R_FUN)) + return + feedback_inc("admin_secrets_fun_used",1) + feedback_add_details("admin_secrets_fun_used","V") + switch(alert("Do you want this to be a random disease or do you have something in mind?",,"Make Your Own","Random","Choose")) + if("Make Your Own") + AdminCreateVirus(usr.client) + if("Random") + E = new /datum/round_event/disease_outbreak() + if("Choose") + var/virus = input("Choose the virus to spread", "BIOHAZARD") as null|anything in typesof(/datum/disease) + E = new /datum/round_event/disease_outbreak{}() + var/datum/round_event/disease_outbreak/DO = E + DO.virus_type = virus + + if("retardify") + if(!check_rights(R_FUN)) + return + feedback_inc("admin_secrets_fun_used",1) + feedback_add_details("admin_secrets_fun_used","RET") + for(var/mob/living/carbon/human/H in player_list) + H << "You suddenly feel stupid." + H.setBrainLoss(60) + message_admins("[key_name_admin(usr)] made everybody retarded") + + if("eagles")//SCRAW + if(!check_rights(R_FUN)) + return + feedback_inc("admin_secrets_fun_used",1) + feedback_add_details("admin_secrets_fun_used","EgL") + for(var/obj/machinery/door/airlock/W in machines) + if(W.z == ZLEVEL_STATION && !istype(get_area(W), /area/bridge) && !istype(get_area(W), /area/crew_quarters) && !istype(get_area(W), /area/security/prison)) + W.req_access = list() + message_admins("[key_name_admin(usr)] activated Egalitarian Station mode") + priority_announce("Centcom airlock control override activated. Please take this time to get acquainted with your coworkers.", null, 'sound/AI/commandreport.ogg') + + if("guns") + if(!check_rights(R_FUN)) + return + feedback_inc("admin_secrets_fun_used",1) + feedback_add_details("admin_secrets_fun_used","SG") + var/survivor_probability = 0 + switch(alert("Do you want this to create survivors antagonists?",,"No Antags","Some Antags","All Antags!")) + if("Some Antags") + survivor_probability = 25 + if("All Antags!") + survivor_probability = 100 + + rightandwrong(0, usr, survivor_probability) + + if("magic") + if(!check_rights(R_FUN)) + return + feedback_inc("admin_secrets_fun_used",1) + feedback_add_details("admin_secrets_fun_used","SM") + var/survivor_probability = 0 + switch(alert("Do you want this to create survivors antagonists?",,"No Antags","Some Antags","All Antags!")) + if("Some Antags") + survivor_probability = 25 + if("All Antags!") + survivor_probability = 100 + + rightandwrong(1, usr, survivor_probability) + + if("events") + if(!check_rights(R_FUN)) + return + if(!SSevent.wizardmode) + if(alert("Do you want to toggle summon events on?",,"Yes","No") == "Yes") + summonevents() + feedback_inc("admin_secrets_fun_used",1) + feedback_add_details("admin_secrets_fun_used","SE") + + else + switch(alert("What would you like to do?",,"Intensify Summon Events","Turn Off Summon Events","Nothing")) + if("Intensify Summon Events") + summonevents() + feedback_inc("admin_secrets_fun_used",1) + feedback_add_details("admin_secrets_fun_used","SE") + if("Turn Off Summon Events") + SSevent.toggleWizardmode() + SSevent.resetFrequency() + + if("dorf") + if(!check_rights(R_FUN)) + return + feedback_inc("admin_secrets_fun_used",1) + feedback_add_details("admin_secrets_fun_used","DF") + for(var/mob/living/carbon/human/B in mob_list) + B.facial_hair_style = "Dward Beard" + B.update_hair() + message_admins("[key_name_admin(usr)] activated dorf mode") + + if("onlyone") + if(!check_rights(R_FUN)) + return + feedback_inc("admin_secrets_fun_used",1) + feedback_add_details("admin_secrets_fun_used","OO") + usr.client.only_one() +// message_admins("[key_name_admin(usr)] has triggered a battle to the death (only one)") + + if("onlyme") + if(!check_rights(R_FUN)) + return + feedback_inc("admin_secrets_fun_used",1) + feedback_add_details("admin_secrets_fun_used","OM") + only_me() + + if("maint_access_brig") + if(!check_rights(R_DEBUG)) + return + for(var/obj/machinery/door/airlock/maintenance/M in machines) + M.check_access() + if (access_maint_tunnels in M.req_access) + M.req_access = list(access_brig) + message_admins("[key_name_admin(usr)] made all maint doors brig access-only.") + if("maint_access_engiebrig") + if(!check_rights(R_DEBUG)) + return + for(var/obj/machinery/door/airlock/maintenance/M in machines) + M.check_access() + if (access_maint_tunnels in M.req_access) + M.req_access = list() + M.req_one_access = list(access_brig,access_engine) + message_admins("[key_name_admin(usr)] made all maint doors engineering and brig access-only.") + if("infinite_sec") + if(!check_rights(R_DEBUG)) + return + var/datum/job/J = SSjob.GetJob("Security Officer") + if(!J) return + J.total_positions = -1 + J.spawn_positions = -1 + message_admins("[key_name_admin(usr)] has removed the cap on security officers.") + + if("ctfbutton") + if(!check_rights(R_ADMIN)) + return + var/ctf_enabled = FALSE + for(var/obj/machinery/capture_the_flag/CTF in machines) + ctf_enabled = CTF.toggle_ctf() + message_admins("[key_name_admin(usr)] has [ctf_enabled? "enabled" : "disabled"] CTF!") + notify_ghosts("CTF has been [ctf_enabled? "enabled" : "disabled"]!",'sound/effects/ghost2.ogg') + if("masspurrbation") + if(!check_rights(R_FUN)) + return + mass_purrbation() + message_admins("[key_name_admin(usr)] has put everyone on \ + purrbation!") + log_admin("[key_name(usr)] has put everyone on purrbation.") + if("massremovepurrbation") + if(!check_rights(R_FUN)) + return + mass_remove_purrbation() + message_admins("[key_name_admin(usr)] has removed everyone from \ + purrbation.") + log_admin("[key_name(usr)] has removed everyone from purrbation.") + + if(E) + E.processing = 0 + if(E.announceWhen>0) + if(alert(usr, "Would you like to alert the crew?", "Alert", "Yes", "No") == "No") + E.announceWhen = -1 + E.processing = 1 + if (usr) + log_admin("[key_name(usr)] used secret [item]") + if (ok) + world << text("A secret has been activated by []!", usr.key) diff --git a/code/modules/admin/sql_notes.dm b/code/modules/admin/sql_notes.dm new file mode 100644 index 0000000..661744a --- /dev/null +++ b/code/modules/admin/sql_notes.dm @@ -0,0 +1,258 @@ +/proc/add_note(target_ckey, notetext, timestamp, adminckey, logged = 1, server, secret) + if(!dbcon.IsConnected()) + usr << "Failed to establish database connection." + return + if(!target_ckey) + var/new_ckey = ckey(input(usr,"Who would you like to add a note for?","Enter a ckey",null) as text) + if(!new_ckey) + return + new_ckey = sanitizeSQL(new_ckey) + var/DBQuery/query_find_ckey = dbcon.NewQuery("SELECT ckey FROM [format_table_name("player")] WHERE ckey = '[new_ckey]'") + if(!query_find_ckey.Execute()) + var/err = query_find_ckey.ErrorMsg() + log_game("SQL ERROR obtaining ckey from player table. Error : \[[err]\]\n") + return + if(!query_find_ckey.NextRow()) + if(alert(usr, "[new_ckey] has not been seen before, are you sure you want to add a note for them?", "Unknown ckey", "Yes", "No", "Cancel") != "Yes") + return + target_ckey = new_ckey + var/target_sql_ckey = sanitizeSQL(target_ckey) + if(!notetext) + notetext = input(usr,"Write your Note","Add Note") as null|message + if(!notetext) + return + notetext = sanitizeSQL(notetext) + if(!timestamp) + timestamp = SQLtime() + if(!adminckey) + adminckey = usr.ckey + if(!adminckey) + return + var/admin_sql_ckey = sanitizeSQL(adminckey) + if(!server) + if (config && config.server_name) + server = config.server_name + server = sanitizeSQL(server) + if(isnull(secret)) + switch(alert("Hide note from being viewed by players?", "Secret Note?","Yes","No","Cancel")) + if("Yes") + secret = 1 + if("No") + secret = 0 + else + return + var/DBQuery/query_noteadd = dbcon.NewQuery("INSERT INTO [format_table_name("notes")] (ckey, timestamp, notetext, adminckey, server, secret) VALUES ('[target_sql_ckey]', '[timestamp]', '[notetext]', '[admin_sql_ckey]', '[server]', '[secret]')") + if(!query_noteadd.Execute()) + var/err = query_noteadd.ErrorMsg() + log_game("SQL ERROR adding new note to table. Error : \[[err]\]\n") + return + if(logged) + log_admin("[key_name(usr)] has added a note to [target_ckey]: [notetext]") + message_admins("[key_name_admin(usr)] has added a note to [target_ckey]:
          [notetext]") + show_note(target_ckey) + +/proc/remove_note(note_id) + var/ckey + var/notetext + var/adminckey + if(!dbcon.IsConnected()) + usr << "Failed to establish database connection." + return + if(!note_id) + return + note_id = text2num(note_id) + var/DBQuery/query_find_note_del = dbcon.NewQuery("SELECT ckey, notetext, adminckey FROM [format_table_name("notes")] WHERE id = [note_id]") + if(!query_find_note_del.Execute()) + var/err = query_find_note_del.ErrorMsg() + log_game("SQL ERROR obtaining ckey, notetext, adminckey from notes table. Error : \[[err]\]\n") + return + if(query_find_note_del.NextRow()) + ckey = query_find_note_del.item[1] + notetext = query_find_note_del.item[2] + adminckey = query_find_note_del.item[3] + var/DBQuery/query_del_note = dbcon.NewQuery("DELETE FROM [format_table_name("notes")] WHERE id = [note_id]") + if(!query_del_note.Execute()) + var/err = query_del_note.ErrorMsg() + log_game("SQL ERROR removing note from table. Error : \[[err]\]\n") + return + log_admin("[key_name(usr)] has removed a note made by [adminckey] from [ckey]: [notetext]") + message_admins("[key_name_admin(usr)] has removed a note made by [adminckey] from [ckey]:
          [notetext]") + show_note(ckey) + +/proc/edit_note(note_id) + if(!dbcon.IsConnected()) + usr << "Failed to establish database connection." + return + if(!note_id) + return + note_id = text2num(note_id) + var/target_ckey + var/sql_ckey = sanitizeSQL(usr.ckey) + var/DBQuery/query_find_note_edit = dbcon.NewQuery("SELECT ckey, notetext, adminckey FROM [format_table_name("notes")] WHERE id = [note_id]") + if(!query_find_note_edit.Execute()) + var/err = query_find_note_edit.ErrorMsg() + log_game("SQL ERROR obtaining notetext from notes table. Error : \[[err]\]\n") + return + if(query_find_note_edit.NextRow()) + target_ckey = query_find_note_edit.item[1] + var/old_note = query_find_note_edit.item[2] + var/adminckey = query_find_note_edit.item[3] + var/new_note = input("Input new note", "New Note", "[old_note]") as null|message + if(!new_note) + return + new_note = sanitizeSQL(new_note) + var/edit_text = "Edited by [sql_ckey] on [SQLtime()] from
          [old_note]
          to
          [new_note]
          " + edit_text = sanitizeSQL(edit_text) + var/DBQuery/query_update_note = dbcon.NewQuery("UPDATE [format_table_name("notes")] SET notetext = '[new_note]', last_editor = '[sql_ckey]', edits = CONCAT(IFNULL(edits,''),'[edit_text]') WHERE id = [note_id]") + if(!query_update_note.Execute()) + var/err = query_update_note.ErrorMsg() + log_game("SQL ERROR editing note. Error : \[[err]\]\n") + return + log_admin("[key_name(usr)] has edited [target_ckey]'s note made by [adminckey] from [old_note] to [new_note]") + message_admins("[key_name_admin(usr)] has edited [target_ckey]'s note made by [adminckey] from
          [old_note]
          to
          [new_note]") + show_note(target_ckey) + +/proc/toggle_note_secrecy(note_id) + if(!dbcon.IsConnected()) + usr << "Failed to establish database connection." + return + if(!note_id) + return + note_id = text2num(note_id) + var/DBQuery/query_find_note_secret = dbcon.NewQuery("SELECT ckey, adminckey, secret FROM [format_table_name("notes")] WHERE id = [note_id]") + if(!query_find_note_secret.Execute()) + var/err = query_find_note_secret.ErrorMsg() + log_game("SQL ERROR obtaining ckey, adminckey, secret from notes table. Error : \[[err]\]\n") + return + if(query_find_note_secret.NextRow()) + var/target_ckey = query_find_note_secret.item[1] + var/adminckey = query_find_note_secret.item[2] + var/secret = text2num(query_find_note_secret.item[3]) + var/sql_ckey = sanitizeSQL(usr.ckey) + var/edit_text = "Made [secret ? "not secret" : "secret"] by [sql_ckey] on [SQLtime()]
          " + var/DBQuery/query_update_note = dbcon.NewQuery("UPDATE [format_table_name("notes")] SET secret = NOT secret, last_editor = '[sql_ckey]', edits = CONCAT(IFNULL(edits,''),'[edit_text]') WHERE id = [note_id]") + if(!query_update_note.Execute()) + var/err = query_update_note.ErrorMsg() + log_game("SQL ERROR toggling note secrecy. Error : \[[err]\]\n") + return + log_admin("[key_name(usr)] has toggled [target_ckey]'s note made by [adminckey] to [secret ? "not secret" : "secret"]") + message_admins("[key_name_admin(usr)] has toggled [target_ckey]'s note made by [adminckey] to [secret ? "not secret" : "secret"]") + show_note(target_ckey) + +/proc/show_note(target_ckey, index, linkless = 0) + var/output + var/navbar + var/ruler + ruler = "
          " + navbar = "\[All\]|\[#\]" + for(var/letter in alphabet) + navbar += "|\[[letter]\]" + navbar += "
          \ + \ + \ +
          " + if(!linkless) + output = navbar + if(target_ckey) + var/target_sql_ckey = sanitizeSQL(target_ckey) + var/DBQuery/query_get_notes = dbcon.NewQuery("SELECT secret, timestamp, notetext, adminckey, last_editor, server, id FROM [format_table_name("notes")] WHERE ckey = '[target_sql_ckey]' ORDER BY timestamp") + if(!query_get_notes.Execute()) + var/err = query_get_notes.ErrorMsg() + log_game("SQL ERROR obtaining secret, timestamp, notetext, adminckey, last_editor, server, id from notes table. Error : \[[err]\]\n") + return + output += "

          Notes of [target_ckey]

          " + if(!linkless) + output += "
          \[Add Note\]" + output += " \[Refresh Page\]
          " + else + output += " \[Refresh Page\]
            +
          • Class: Autonomous Power Loader
          • +
          • Scope: Logistics and Construction
          • +
          • Weight: 820kg (without operator and with empty cargo compartment)
          • +
          • Height: 2.5m
          • +
          • Width: 1.8m
          • +
          • Top speed: 5km/hour
          • +
          • Operation in vacuum/hostile environment: Possible +
          • Airtank Volume: 500liters
          • +
          • Devices: +
              +
            • Hydraulic Clamp
            • +
            • High-speed Drill
            • +
            +
          • +
          • Propulsion Device: Powercell-powered electro-hydraulic system.
          • +
          • Powercell capacity: Varies.
          • +
          + +

          Construction:

          +
            +
          1. Connect all exosuit parts to the chassis frame
          2. +
          3. Connect all hydraulic fittings and tighten them up with a wrench
          4. +
          5. Adjust the servohydraulics with a screwdriver
          6. +
          7. Wire the chassis. (Cable is not included.)
          8. +
          9. Use the wirecutters to remove the excess cable if needed.
          10. +
          11. Install the central control module (Not included. Use supplied datadisk to create one).
          12. +
          13. Secure the mainboard with a screwdriver.
          14. +
          15. Install the peripherals control module (Not included. Use supplied datadisk to create one).
          16. +
          17. Secure the peripherals control module with a screwdriver
          18. +
          19. Install the internal armor plating (Not included due to Nanotrasen regulations. Can be made using 5 metal sheets.)
          20. +
          21. Secure the internal armor plating with a wrench
          22. +
          23. Weld the internal armor plating to the chassis
          24. +
          25. Install the external reinforced armor plating (Not included due to Nanotrasen regulations. Can be made using 5 reinforced metal sheets.)
          26. +
          27. Secure the external reinforced armor plating with a wrench
          28. +
          29. Weld the external reinforced armor plating to the chassis
          30. +
          31. +
          32. Additional Information:
          33. +
          34. The firefighting variation is made in a similar fashion.
          35. +
          36. A firesuit must be connected to the Firefighter chassis for heat shielding.
          37. +
          38. Internal armor is plasteel for additional strength.
          39. +
          40. External armor must be installed in 2 parts, totaling 10 sheets.
          41. +
          42. Completed mech is more resiliant against fire, and is a bit more durable overall
          43. +
          44. Nanotrasen is determined to the safety of its investments employees.
          45. +
          + + + +

          Operation

          + Coming soon... + "} + +/obj/item/weapon/book/manual/experimentor + name = "Mentoring your Experiments" + icon_state = "rdbook" + author = "Dr. H.P. Kritz" + title = "Mentoring your Experiments" + dat = {" + + + + +

          THE E.X.P.E.R.I-MENTOR

          + The Enhanced Xenobiological Period Extraction (and) Restoration Instructor is a machine designed to discover the secrets behind every item in existence. + With advanced technology, it can process 99.95% of items, and discover their uses and secrets. + The E.X.P.E.R.I-MENTOR is a Research apparatus that takes items, and through a process of elimination, it allows you to deduce new technological designs from them. + Due to the volatile nature of the E.X.P.E.R.I-MENTOR, there is a slight chance for malfunction, potentially causing irreparable damage to you or your environment. + However, upgrading the apparatus has proven to decrease the chances of undesirable, potentially life-threatening outcomes. + Please note that the E.X.P.E.R.I-MENTOR uses a state-of-the-art random generator, which has a larger entropy than the observable universe, + therefore it can generate wildly different results each day, therefore it is highly suggested to re-scan objects of interests frequently (e.g. each shift). + +

          BASIC PROCESS

          + The usage of the E.X.P.E.R.I-MENTOR is quite simple: +
            +
          1. Find an item with a technological background
          2. +
          3. Insert the item into the E.X.P.E.R.I-MENTOR
          4. +
          5. Cycle through each processing method of the device.
          6. +
          7. Stand back, even in case of a successful experiment, as the machine might produce undesired behaviour.
          8. +
          + +

          ADVANCED USAGE

          + The E.X.P.E.R.I-MENTOR has a variety of uses, beyond menial research work. The different results can be used to combat localised events, or even to get special items. + + The E.X.P.E.R.I-MENTOR's OBLITERATE function has the added use of transferring the destroyed item's material into a linked lathe. + + The IRRADIATE function can be used to transform items into other items, resulting in potential upgrades (or downgrades). + + Users should remember to always wear appropriate protection when using the machine, because malfunction can occur at any moment! + +

          EVENTS

          +

          GLOBAL (happens at any time):

          +
            +
          1. DETECTION MALFUNCTION - The machine's onboard sensors have malfunctioned, causing it to redefine the item's experiment type. + Produces the message: The E.X.P.E.R.I-MENTOR's onboard detection system has malfunctioned!
          2. + +
          3. IANIZATION - The machine's onboard corgi-filter has malfunctioned, causing it to produce a corgi from.. somewhere. + Produces the message: The E.X.P.E.R.I-MENTOR melts the banana, ian-izing the air around it!
          4. + +
          5. RUNTIME ERROR - The machine's onboard C4T-P processor has encountered a critical error, causing it to produce a cat from.. somewhere. + Produces the message: The E.X.P.E.R.I-MENTOR encounters a run-time error!
          6. + +
          7. B100DG0D.EXE - The machine has encountered an unknown subroutine, which has been injected into it's runtime. It upgrades the held item! + Produces the message: The E.X.P.E.R.I-MENTOR improves the banana, drawing the life essence of those nearby!
          8. + +
          9. POWERSINK - The machine's PSU has tripped the charging mechanism! It consumes massive amounts of power! + Produces the message: The E.X.P.E.R.I-MENTOR begins to smoke and hiss, shaking violently!
          10. +
          +

          FAIL:

          + This event is produced when the item mismatches the selected experiment. + Produces a random message similar to: "the Banana rumbles, and shakes, the experiment was a failure!" + +

          POKE:

          +
            +
          1. WILD ARMS - The machine's gryoscopic processors malfunction, causing it to lash out at nearby people with it's arms. + Produces the message: The E.X.P.E.R.I-MENTOR malfunctions and destroys the banana, lashing it's arms out at nearby people!
          2. + +
          3. MISTYPE - The machine's interface has been garbled, and it switches to OBLITERATE. + Produces the message: The E.X.P.E.R.I-MENTOR malfunctions!
          4. + +
          5. THROW - The machine's spatial recognition device has shifted several meters across the room, causing it to try and repostion the item there. + Produces the message: The E.X.P.E.R.I-MENTOR malfunctions, throwing the banana!
          6. +
          +

          IRRADIATE:

          +
            +
          1. RADIATION LEAK - The machine's shield has failed, resulting in a toxic radiation leak. + Produces the message: The E.X.P.E.R.I-MENTOR malfunctions, melting the banana and leaking radiation!
          2. + +
          3. RADIATION DUMP - The machine's recycling and containment functions have failed, resulting in a dump of toxic waste around it + Produces the message: The E.X.P.E.R.I-MENTOR malfunctions, spewing toxic waste!
          4. + +
          5. MUTATION - The machine's radio-isotope level meter has malfunctioned, causing it over-irradiate the item, making it transform. + Produces the message: The E.X.P.E.R.I-MENTOR malfunctions, transforming the banana!
          6. +
          +

          GAS:

          +
            +
          1. TOXIN LEAK - The machine's filtering and vent systems have failed, resulting in a cloud of toxic gas being expelled. + Produces the message: The E.X.P.E.R.I-MENTOR destroys the banana, leaking dangerous gas!
          2. + +
          3. GAS LEAK - The machine's vent systems have failed, resulting in a cloud of harmless, but obscuring gas. + Produces the message: The E.X.P.E.R.I-MENTOR malfunctions, spewing harmless gas!
          4. + +
          5. ELECTROMAGNETIC IONS - The machine's electrolytic scanners have failed, causing a dangerous Electromagnetic reaction. + Produces the message: The E.X.P.E.R.I-MENTOR melts the banana, ionizing the air around it!
          6. +
          +

          HEAT:

          +
            +
          1. TOASTER - The machine's heating coils have come into contact with the machine's gas storage, causing a large, sudden blast of flame. + Produces the message: The E.X.P.E.R.I-MENTOR malfunctions, melting the banana and releasing a burst of flame!
          2. + +
          3. SAUNA - The machine's vent loop has sprung a leak, resulting in a large amount of superheated air being dumped around it. + Produces the message: The E.X.P.E.R.I-MENTOR malfunctions, melting the banana and leaking hot air!
          4. + +
          5. EMERGENCY VENT - The machine's temperature gauge has malfunctioned, resulting in it attempting to cool the area around it, but instead, dumping a cloud of steam. + Produces the message: The E.X.P.E.R.I-MENTOR malfunctions, activating it's emergency coolant systems!
          6. +
          +

          COLD:

          +
            +
          1. FREEZER - The machine's cooling loop has sprung a leak, resulting in a cloud of super-cooled liquid being blasted into the air. + Produces the message: The E.X.P.E.R.I-MENTOR malfunctions, shattering the banana and releasing a dangerous cloud of coolant!
          2. + +
          3. FRIDGE - The machine's cooling loop has been exposed to the outside air, resulting in a large decrease in temperature. + Produces the message: The E.X.P.E.R.I-MENTOR malfunctions, shattering the banana and leaking cold air!
          4. + +
          5. SNOWSTORM - The machine's cooling loop has come into contact with the heating coils, resulting in a sudden blast of cool air. + Produces the message: The E.X.P.E.R.I-MENTOR malfunctions, releasing a flurry of chilly air as the banana pops out!
          6. +
          +

          OBLITERATE:

          +
            +
          1. IMPLOSION - The machine's pressure leveller has malfunctioned, causing it to pierce the space-time momentarily, making everything in the area fly towards it. + Produces the message: The E.X.P.E.R.I-MENTOR's crusher goes way too many levels too high, crushing right through space-time!
          2. + +
          3. DISTORTION - The machine's pressure leveller has completely disabled, resulting in a momentary space-time distortion, causing everything to fly around. + Produces the message: The E.X.P.E.R.I-MENTOR's crusher goes one level too high, crushing right into space-time!
          4. +
          + + + "} + +/obj/item/weapon/book/manual/research_and_development + name = "Research and Development 101" + icon_state = "rdbook" + author = "Dr. L. Ight" + title = "Research and Development 101" + dat = {" + + + + + +

          Science For Dummies

          + So you want to further SCIENCE? Good man/woman/thing! However, SCIENCE is a complicated process even though it's quite easy. For the most part, it's a three step process: +
            +
          1. 1) Deconstruct items in the Destructive Analyzer to advance technology or improve the design.
          2. +
          3. 2) Build unlocked designs in the Protolathe and Circuit Imprinter
          4. +
          5. 3) Repeat!
          6. +
          + + Those are the basic steps to furthing science. What do you do science with, however? Well, you have four major tools: R&D Console, the Destructive Analyzer, the Protolathe, and the Circuit Imprinter. + +

          The R&D Console

          + The R&D console is the cornerstone of any research lab. It is the central system from which the Destructive Analyzer, Protolathe, and Circuit Imprinter (your R&D systems) are controled. More on those systems in their own sections. On its own, the R&D console acts as a database for all your technological gains and new devices you discover. So long as the R&D console remains intact, you'll retain all that SCIENCE you've discovered. Protect it though, because if it gets damaged, you'll lose your data! In addition to this important purpose, the R&D console has a disk menu that lets you transfer data from the database onto disk or from the disk into the database. It also has a settings menu that lets you re-sync with nearby R&D devices (if they've become disconnected), lock the console from the unworthy, upload the data to all other R&D consoles in the network (all R&D consoles are networked by default), connect/disconnect from the network, and purge all data from the database. + NOTE: The technology list screen, circuit imprinter, and protolathe menus are accessible by non-scientists. This is intended to allow 'public' systems for the plebians to utilize some new devices. + +

          Destructive Analyzer

          + This is the source of all technology. Whenever you put a handheld object in it, it analyzes it and determines what sort of technological advancements you can discover from it. If the technology of the object is equal or higher then your current knowledge, you can destroy the object to further those sciences. Some devices (notably, some devices made from the protolathe and circuit imprinter) aren't 100% reliable when you first discover them. If these devices break down, you can put them into the Destructive Analyzer and improve their reliability rather then futher science. If their reliability is high enough ,it'll also advance their related technologies. + +

          Circuit Imprinter

          + This machine, along with the Protolathe, is used to actually produce new devices. The Circuit Imprinter takes glass and various chemicals (depends on the design) to produce new circuit boards to build new machines or computers. It can even be used to print AI modules. + +

          Protolathe

          + This machine is an advanced form of the Autolathe that produce non-circuit designs. Unlike the Autolathe, it can use processed metal, glass, solid plasma, silver, gold, and diamonds along with a variety of chemicals to produce devices. The downside is that, again, not all devices you make are 100% reliable when you first discover them. + +

          Reliability and You

          + As it has been stated, many devices when they're first discovered do not have a 100% reliablity when you first discover them. Instead, the reliablity of the device is dependent upon a base reliability value, whatever improvements to the design you've discovered through the Destructive Analyzer, and any advancements you've made with the device's source technologies. To be able to improve the reliability of a device, you have to use the device until it breaks beyond repair. Once that happens, you can analyze it in a Destructive Analyzer. Once the device reachs a certain minimum reliability, you'll gain tech advancements from it. + +

          Building a Better Machine

          + Many machines produces from circuit boards and inserted into a machine frame require a variety of parts to construct. These are parts like capacitors, batteries, matter bins, and so forth. As your knowledge of science improves, more advanced versions are unlocked. If you use these parts when constructing something, its attributes may be improved. For example, if you use an advanced matter bin when constructing an autolathe (rather then a regular one), it'll hold more materials. Experiment around with stock parts of various qualities to see how they affect the end results! Be warned, however: Tier 3 and higher stock parts don't have 100% reliability and their low reliability may affect the reliability of the end machine. + + + "} + + +/obj/item/weapon/book/manual/robotics_cyborgs + name = "Cyborgs for Dummies" + icon_state = "borgbook" + author = "XISC" + title = "Cyborgs for Dummies" + dat = {" + + + + + +

          Cyborgs for Dummies

          + +

          Chapters

          + +
    " + output += ruler + while(query_get_notes.NextRow()) + var/secret = text2num(query_get_notes.item[1]) + if(linkless && secret) + continue + var/timestamp = query_get_notes.item[2] + var/notetext = query_get_notes.item[3] + var/adminckey = query_get_notes.item[4] + var/last_editor = query_get_notes.item[5] + var/server = query_get_notes.item[6] + var/id = query_get_notes.item[7] + output += "[timestamp] | [server] | [adminckey]" + if(!linkless) + output += " \[Remove Note\] [secret ? "\[Secret\]" : "\[Not Secret\]"] \[Edit Note\]" + if(last_editor) + output += " Last edit by [last_editor] (Click here to see edit log)" + output += "
    [notetext]
    " + else if(index) + var/index_ckey + var/search + output += "
    \[Add Note\]
    " + output += ruler + if(!isnum(index)) + index = sanitizeSQL(index) + switch(index) + if(1) + search = "^." + if(2) + search = "^\[^\[:alpha:\]\]" + else + search = "^[index]" + var/DBQuery/query_list_notes = dbcon.NewQuery("SELECT DISTINCT ckey FROM [format_table_name("notes")] WHERE ckey REGEXP '[search]' ORDER BY ckey") + if(!query_list_notes.Execute()) + var/err = query_list_notes.ErrorMsg() + log_game("SQL ERROR obtaining ckey from notes table. Error : \[[err]\]\n") + return + while(query_list_notes.NextRow()) + index_ckey = query_list_notes.item[1] + output += "[index_ckey]
    " + else + output += "
    \[Add Note\]
    " + output += ruler + usr << browse(output, "window=show_notes;size=900x500") + +#define NOTESFILE "data/player_notes.sav" +//if the AUTOCONVERT_NOTES is turned on, anytime a player connects this will be run to try and add all their notes to the databas +/proc/convert_notes_sql(ckey) + var/savefile/notesfile = new(NOTESFILE) + if(!notesfile) + log_game("Error: Cannot access [NOTESFILE]") + return + notesfile.cd = "/[ckey]" + while(!notesfile.eof) + var/notetext + notesfile >> notetext + var/server + if(config && config.server_name) + server = config.server_name + var/regex/note = new("^(\\d{2}-\\w{3}-\\d{4}) \\| (.+) ~(\\w+)$", "i") + note.Find(notetext) + var/timestamp = note.group[1] + notetext = note.group[2] + var/adminckey = note.group[3] + var/DBQuery/query_convert_time = dbcon.NewQuery("SELECT ADDTIME(STR_TO_DATE('[timestamp]','%d-%b-%Y'), '0')") + if(!query_convert_time.Execute()) + var/err = query_convert_time.ErrorMsg() + log_game("SQL ERROR converting timestamp. Error : \[[err]\]\n") + return + if(query_convert_time.NextRow()) + timestamp = query_convert_time.item[1] + if(ckey && notetext && timestamp && adminckey && server) + add_note(ckey, notetext, timestamp, adminckey, 0, server, 1) + notesfile.cd = "/" + notesfile.dir.Remove(ckey) + +/*alternatively this proc can be run once to pass through every note and attempt to convert it before deleting the file, if done then AUTOCONVERT_NOTES should be turned off +this proc can take several minutes to execute fully if converting and cause DD to hang if converting a lot of notes; it's not advised to do so while a server is live +/proc/mass_convert_notes() + world << "Beginning mass note conversion" + var/savefile/notesfile = new(NOTESFILE) + if(!notesfile) + log_game("Error: Cannot access [NOTESFILE]") + return + notesfile.cd = "/" + for(var/ckey in notesfile.dir) + convert_notes_sql(ckey) + world << "Deleting NOTESFILE" + fdel(NOTESFILE) + world << "Finished mass note conversion, remember to turn off AUTOCONVERT_NOTES"*/ +#undef NOTESFILE diff --git a/code/modules/admin/stickyban.dm b/code/modules/admin/stickyban.dm new file mode 100644 index 0000000..3e01e50 --- /dev/null +++ b/code/modules/admin/stickyban.dm @@ -0,0 +1,248 @@ +/datum/admins/proc/stickyban(action,data) + if(!check_rights(R_BAN)) + return + switch (action) + if ("show") + stickyban_show() + if ("add") + var/list/ban = list() + var/ckey + ban["admin"] = usr.key + ban["type"] = list("sticky") + ban["reason"] = "(InGameBan)([usr.key])" //this will be displayed in dd only + + if (data["ckey"]) + ckey = ckey(data["ckey"]) + else + ckey = input(usr,"Ckey","Ckey","") as text|null + if (!ckey) + return + ckey = ckey(ckey) + ban["ckey"] = ckey + + if (get_stickyban_from_ckey(ckey)) + usr << "Error: Can not add a stickyban: User already has a current sticky ban" + + if (data["reason"]) + ban["message"] = data["reason"] + else + var/reason = input(usr,"Reason","Reason","Ban Evasion") as text|null + if (!reason) + return + ban["message"] = "[reason]" + + world.SetConfig("ban",ckey,list2stickyban(ban)) + + log_admin("[key_name(usr)] has stickybanned [ckey].\nReason: [ban["message"]]") + message_admins("[key_name_admin(usr)] has stickybanned [ckey].\nReason: [ban["message"]]") + + if ("remove") + if (!data["ckey"]) + return + var/ckey = data["ckey"] + + var/ban = get_stickyban_from_ckey(ckey) + if (!ban) + usr << "Error: No sticky ban for [ckey] found!" + return + if (alert("Are you sure you want to remove the sticky ban on [ckey]?","Are you sure","Yes","No") == "No") + return + if (!get_stickyban_from_ckey(ckey)) + usr << "Error: The ban disappeared." + return + world.SetConfig("ban",ckey, null) + + log_admin("[key_name(usr)] removed [ckey]'s stickyban") + message_admins("[key_name_admin(usr)] removed [ckey]'s stickyban") + + if ("remove_alt") + if (!data["ckey"]) + return + var/ckey = data["ckey"] + if (!data["alt"]) + return + var/alt = ckey(data["alt"]) + var/ban = get_stickyban_from_ckey(ckey) + if (!ban) + usr << "Error: No sticky ban for [ckey] found!" + return + + var/found = 0 + //we have to do it this way because byond keeps the case in its sticky ban matches WHY!!! + for (var/key in ban["keys"]) + if (ckey(key) == alt) + found = 1 + break + + if (!found) + usr << "Error: [alt] is not linked to [ckey]'s sticky ban!" + return + + if (alert("Are you sure you want to disassociate [alt] from [ckey]'s sticky ban? \nNote: Nothing stops byond from re-linking them","Are you sure","Yes","No") == "No") + return + + //we have to do this again incase something changes + ban = get_stickyban_from_ckey(ckey) + if (!ban) + usr << "Error: The ban disappeared." + return + + found = 0 + for (var/key in ban["keys"]) + if (ckey(key) == alt) + ban["keys"] -= key + found = 1 + break + + if (!found) + usr << "Error: [alt] link to [ckey]'s sticky ban disappeared." + return + + world.SetConfig("ban",ckey,list2stickyban(ban)) + + log_admin("[key_name(usr)] has disassociated [alt] from [ckey]'s sticky ban") + message_admins("[key_name_admin(usr)] has disassociated [alt] from [ckey]'s sticky ban") + + if ("edit") + if (!data["ckey"]) + return + var/ckey = data["ckey"] + var/ban = get_stickyban_from_ckey(ckey) + if (!ban) + usr << "Error: No sticky ban for [ckey] found!" + return + var/oldreason = ban["message"] + var/reason = input(usr,"Reason","Reason","[ban["message"]]") as text|null + if (!reason || reason == oldreason) + return + //we have to do this again incase something changed while we waited for input + ban = get_stickyban_from_ckey(ckey) + if (!ban) + usr << "Error: The ban disappeared." + return + ban["message"] = "[reason]" + + world.SetConfig("ban",ckey,list2stickyban(ban)) + + log_admin("[key_name(usr)] has edited [ckey]'s sticky ban reason from [oldreason] to [reason]") + message_admins("[key_name_admin(usr)] has edited [ckey]'s sticky ban reason from [oldreason] to [reason]") + + if ("revert") + if (!data["ckey"]) + return + var/ckey = data["ckey"] + if (alert("Are you sure you want to revert the sticky ban on [ckey] to its state at round start?","Are you sure","Yes","No") == "No") + return + var/ban = get_stickyban_from_ckey(ckey) + if (!ban) + usr << "Error: No sticky ban for [ckey] found!" + return + var/cached_ban = SSstickyban.cache[ckey] + if (!cached_ban) + usr << "Error: No cached sticky ban for [ckey] found!" + world.SetConfig("ban",ckey,null) + + log_admin("[key_name(usr)] has reverted [ckey]'s sticky ban to it's state at round start.") + message_admins("[key_name_admin(usr)] has reverted [ckey]'s sticky ban to it's state at round start.") + //revert is mostly used when shit goes rouge, so we have to set it to null + // and wait a byond tick before assigning it to ensure byond clears its shit. + sleep(world.tick_lag) + world.SetConfig("ban",ckey,list2stickyban(cached_ban)) + + +/datum/admins/proc/stickyban_gethtml(ckey, ban) + . = {" + \[-\] + \[revert\] + [ckey] +
    " + [ban["message"]] \[Edit\]
    + "} + if (ban["admin"]) + . += "[ban["admin"]]
    " + else + . += "LEGACY
    " + . += "Caught keys
    \n
      " + for (var/key in ban["keys"]) + if (ckey(key) == ckey) + continue + . += "
    1. \[-\][key]
    2. " + . += "
    \n" + +/datum/admins/proc/stickyban_show() + if(!check_rights(R_BAN)) + return + var/list/bans = sortList(world.GetConfig("ban")) + var/banhtml = "" + for(var/key in bans) + var/ckey = ckey(key) + var/ban = stickyban2list(world.GetConfig("ban",key)) + banhtml += "

    \n" + banhtml += stickyban_gethtml(ckey,ban) + + var/html = {" + + Sticky Bans + + +

    All Sticky Bans:

    \[+\]
    + [banhtml] + + "} + usr << browse(html,"window=stickybans;size=700x400") + +/proc/get_stickyban_from_ckey(var/ckey) + if (!ckey) + return null + ckey = ckey(ckey) + . = null + for (var/key in world.GetConfig("ban")) + if (ckey(key) == ckey) + . = stickyban2list(world.GetConfig("ban",key)) + break + +/proc/stickyban2list(var/ban) + if (!ban) + return null + . = params2list(ban) + if (.["keys"]) + var/keys = splittext(.["keys"], ",") + var/ckeys = list() + for (var/key in keys) + var/ckey = ckey(key) + ckeys[ckey] = ckey //to make searching faster. + .["keys"] = ckeys + .["type"] = splittext(.["type"], ",") + .["IP"] = splittext(.["IP"], ",") + .["computer_id"] = splittext(.["computer_id"], ",") + + +/proc/list2stickyban(var/list/ban) + if (!ban || !islist(ban)) + return null + . = ban.Copy() + if (.["keys"]) + .["keys"] = jointext(.["keys"], ",") + if (.["type"]) + .["type"] = jointext(.["type"], ",") + + //internal tracking only, shouldn't be stored + . -= "existing_user_matches_this_round" + . -= "admin_matches_this_round" + . -= "matches_this_round" + . -= "reverting" + + //storing these can sometimes cause sticky bans to start matching everybody + // and isn't even needed for sticky ban matching, as the hub tracks these seperately + . -= "IP" + . -= "computer_id" + + . = list2params(.) + + +/client/proc/stickybanpanel() + set name = "Sticky Ban Panel" + set category = "Admin" + if (!holder) + return + holder.stickyban_show() diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm new file mode 100644 index 0000000..c95459c --- /dev/null +++ b/code/modules/admin/topic.dm @@ -0,0 +1,2233 @@ +/datum/admins/Topic(href, href_list) + ..() + + if(usr.client != src.owner || !check_rights(0)) + message_admins("[usr.key] has attempted to override the admin panel!") + log_admin("[key_name(usr)] tried to use the admin panel without authorization.") + return + if(href_list["rejectadminhelp"]) + if(!check_rights(R_ADMIN)) + return + var/client/C = locate(href_list["rejectadminhelp"]) + if(!C) + return + if (deltimer(C.adminhelptimerid)) + C.giveadminhelpverb() + + C << 'sound/effects/adminhelp.ogg' + + C << "- AdminHelp Rejected! -" + C << "Your admin help was rejected. The adminhelp verb has been returned to you so that you may try again." + C << "Please try to be calm, clear, and descriptive in admin helps, do not assume the admin has seen any related events, and clearly state the names of anybody you are reporting." + + message_admins("[key_name_admin(usr)] Rejected [C.key]'s admin help. [C.key]'s Adminhelp verb has been returned to them.") + log_admin("[key_name(usr)] Rejected [C.key]'s admin help.") + + else if(href_list["stickyban"]) + stickyban(href_list["stickyban"],href_list) + + else if(href_list["makeAntag"]) + if (!ticker.mode) + usr << "Not until the round starts!" + return + switch(href_list["makeAntag"]) + if("traitors") + if(src.makeTraitors()) + message_admins("[key_name_admin(usr)] created traitors.") + log_admin("[key_name(usr)] created traitors.") + else + message_admins("[key_name_admin(usr)] tried to create traitors. Unfortunately, there were no candidates available.") + log_admin("[key_name(usr)] failed to create traitors.") + if("changelings") + if(src.makeChanglings()) + message_admins("[key_name(usr)] created changelings.") + log_admin("[key_name(usr)] created changelings.") + else + message_admins("[key_name_admin(usr)] tried to create changelings. Unfortunately, there were no candidates available.") + log_admin("[key_name(usr)] failed to create changelings.") + if("revs") + if(src.makeRevs()) + message_admins("[key_name(usr)] started a revolution.") + log_admin("[key_name(usr)] started a revolution.") + else + message_admins("[key_name_admin(usr)] tried to start a revolution. Unfortunately, there were no candidates available.") + log_admin("[key_name(usr)] failed to start a revolution.") + if("cult") + if(src.makeCult()) + message_admins("[key_name(usr)] started a cult.") + log_admin("[key_name(usr)] started a cult.") + else + message_admins("[key_name_admin(usr)] tried to start a cult. Unfortunately, there were no candidates available.") + log_admin("[key_name(usr)] failed to start a cult.") + if("wizard") + message_admins("[key_name(usr)] is creating a wizard...") + if(src.makeWizard()) + message_admins("[key_name(usr)] created a wizard.") + log_admin("[key_name(usr)] created a wizard.") + else + message_admins("[key_name_admin(usr)] tried to create a wizard. Unfortunately, there were no candidates available.") + log_admin("[key_name(usr)] failed to create a wizard.") + if("nukeops") + message_admins("[key_name(usr)] is creating a nuke team...") + if(src.makeNukeTeam()) + message_admins("[key_name(usr)] created a nuke team.") + log_admin("[key_name(usr)] created a nuke team.") + else + message_admins("[key_name_admin(usr)] tried to create a nuke team. Unfortunately, there were not enough candidates available.") + log_admin("[key_name(usr)] failed to create a nuke team.") + if("ninja") + message_admins("[key_name(usr)] spawned a ninja.") + log_admin("[key_name(usr)] spawned a ninja.") + src.makeSpaceNinja() + if("aliens") + message_admins("[key_name(usr)] started an alien infestation.") + log_admin("[key_name(usr)] started an alien infestation.") + src.makeAliens() + if("deathsquad") + message_admins("[key_name(usr)] is creating a death squad...") + if(src.makeDeathsquad()) + message_admins("[key_name(usr)] created a death squad.") + log_admin("[key_name(usr)] created a death squad.") + else + message_admins("[key_name_admin(usr)] tried to create a death squad. Unfortunately, there were not enough candidates available.") + log_admin("[key_name(usr)] failed to create a death squad.") + if("blob") + var/strength = input("Set Blob Resource Gain Rate","Set Resource Rate",1) as num|null + if(!strength) + return + message_admins("[key_name(usr)] spawned a blob with base resource gain [strength].") + log_admin("[key_name(usr)] spawned a blob with base resource gain [strength].") + new/datum/round_event/ghost_role/blob(TRUE, strength) + if("gangs") + if(src.makeGangsters()) + message_admins("[key_name(usr)] created gangs.") + log_admin("[key_name(usr)] created gangs.") + else + message_admins("[key_name(usr)] tried to create gangs. Unfortunately, there were not enough candidates available.") + log_admin("[key_name(usr)] failed create gangs.") + if("centcom") + message_admins("[key_name(usr)] is creating a Centcom response team...") + if(src.makeEmergencyresponseteam()) + message_admins("[key_name(usr)] created a Centcom response team.") + log_admin("[key_name(usr)] created a Centcom response team.") + else + message_admins("[key_name_admin(usr)] tried to create a Centcom response team. Unfortunately, there were not enough candidates available.") + log_admin("[key_name(usr)] failed to create a Centcom response team.") + if("abductors") + message_admins("[key_name(usr)] is creating an abductor team...") + if(src.makeAbductorTeam()) + message_admins("[key_name(usr)] created an abductor team.") + log_admin("[key_name(usr)] created an abductor team.") + else + message_admins("[key_name_admin(usr)] tried to create an abductor team. Unfortunatly there were not enough candidates available.") + log_admin("[key_name(usr)] failed to create an abductor team.") + if("clockcult") + if(src.makeClockCult()) + message_admins("[key_name(usr)] started a clockwork cult.") + log_admin("[key_name(usr)] started a clockwork cult.") + else + message_admins("[key_name_admin(usr)] tried to start a clockwork cult. Unfortunately, there were no candidates available.") + log_admin("[key_name(usr)] failed to start a clockwork cult.") + if("revenant") + if(src.makeRevenant()) + message_admins("[key_name(usr)] created a revenant.") + log_admin("[key_name(usr)] created a revenant.") + else + message_admins("[key_name_admin(usr)] tried to create a revenant. Unfortunately, there were no candidates available.") + log_admin("[key_name(usr)] failed to create a revenant.") + + else if(href_list["forceevent"]) + if(!check_rights(R_FUN)) + return + var/datum/round_event_control/E = locate(href_list["forceevent"]) in SSevent.control + if(E) + var/datum/round_event/event = E.runEvent() + if(event.announceWhen>0) + event.processing = 0 + var/prompt = alert(usr, "Would you like to alert the crew?", "Alert", "Yes", "No", "Cancel") + switch(prompt) + if("Cancel") + event.kill() + return + if("No") + event.announceWhen = -1 + event.processing = 1 + message_admins("[key_name_admin(usr)] has triggered an event. ([E.name])") + log_admin("[key_name(usr)] has triggered an event. ([E.name])") + return + + else if(href_list["dbsearchckey"] || href_list["dbsearchadmin"]) + var/adminckey = href_list["dbsearchadmin"] + var/playerckey = href_list["dbsearchckey"] + + DB_ban_panel(playerckey, adminckey) + return + + else if(href_list["dbbanedit"]) + var/banedit = href_list["dbbanedit"] + var/banid = text2num(href_list["dbbanid"]) + if(!banedit || !banid) + return + + DB_ban_edit(banid, banedit) + return + + else if(href_list["dbbanaddtype"]) + + var/bantype = text2num(href_list["dbbanaddtype"]) + var/banckey = href_list["dbbanaddckey"] + var/banip = href_list["dbbanaddip"] + var/bancid = href_list["dbbanaddcid"] + var/banduration = text2num(href_list["dbbaddduration"]) + var/banjob = href_list["dbbanaddjob"] + var/banreason = href_list["dbbanreason"] + + banckey = ckey(banckey) + + switch(bantype) + if(BANTYPE_PERMA) + if(!banckey || !banreason) + usr << "Not enough parameters (Requires ckey and reason)." + return + banduration = null + banjob = null + if(BANTYPE_TEMP) + if(!banckey || !banreason || !banduration) + usr << "Not enough parameters (Requires ckey, reason and duration)." + return + banjob = null + if(BANTYPE_JOB_PERMA) + if(!banckey || !banreason || !banjob) + usr << "Not enough parameters (Requires ckey, reason and job)." + return + banduration = null + if(BANTYPE_JOB_TEMP) + if(!banckey || !banreason || !banjob || !banduration) + usr << "Not enough parameters (Requires ckey, reason and job)." + return + if(BANTYPE_ADMIN_PERMA) + if(!banckey || !banreason) + usr << "Not enough parameters (Requires ckey and reason)." + return + banduration = null + banjob = null + if(BANTYPE_ADMIN_TEMP) + if(!banckey || !banreason || !banduration) + usr << "Not enough parameters (Requires ckey, reason and duration)." + return + banjob = null + + var/mob/playermob + + for(var/mob/M in player_list) + if(M.ckey == banckey) + playermob = M + break + + + banreason = "(MANUAL BAN) "+banreason + + if(!playermob) + if(banip) + banreason = "[banreason] (CUSTOM IP)" + if(bancid) + banreason = "[banreason] (CUSTOM CID)" + else + message_admins("Ban process: A mob matching [playermob.ckey] was found at location [playermob.x], [playermob.y], [playermob.z]. Custom ip and computer id fields replaced with the ip and computer id from the located mob.") + + if(!DB_ban_record(bantype, playermob, banduration, banreason, banjob, null, banckey, banip, bancid )) + usr << "Failed to apply ban." + return + add_note(banckey, banreason, null, usr.ckey, 0, null, 0) + + else if(href_list["editrights"]) + edit_rights_topic(href_list) + + else if(href_list["call_shuttle"]) + if(!check_rights(R_ADMIN)) + return + + + switch(href_list["call_shuttle"]) + if("1") + if(EMERGENCY_AT_LEAST_DOCKED) + return + SSshuttle.emergency.request() + log_admin("[key_name(usr)] called the Emergency Shuttle.") + message_admins("[key_name_admin(usr)] called the Emergency Shuttle to the station.") + + if("2") + if(EMERGENCY_AT_LEAST_DOCKED) + return + switch(SSshuttle.emergency.mode) + if(SHUTTLE_CALL) + SSshuttle.emergency.cancel() + log_admin("[key_name(usr)] sent the Emergency Shuttle back.") + message_admins("[key_name_admin(usr)] sent the Emergency Shuttle back.") + else + SSshuttle.emergency.cancel() + log_admin("[key_name(usr)] called the Emergency Shuttle.") + message_admins("[key_name_admin(usr)] called the Emergency Shuttle to the station.") + + + href_list["secrets"] = "check_antagonist" + + else if(href_list["edit_shuttle_time"]) + if(!check_rights(R_SERVER)) + return + + var/timer = input("Enter new shuttle duration (seconds):","Edit Shuttle Timeleft", SSshuttle.emergency.timeLeft() ) as num|null + if(!timer) + return + SSshuttle.emergency.setTimer(timer*10) + log_admin("[key_name(usr)] edited the Emergency Shuttle's timeleft to [timer] seconds.") + minor_announce("The emergency shuttle will reach its destination in [round(SSshuttle.emergency.timeLeft(600))] minutes.") + message_admins("[key_name_admin(usr)] edited the Emergency Shuttle's timeleft to [timer] seconds.") + href_list["secrets"] = "check_antagonist" + + else if(href_list["toggle_continuous"]) + if(!check_rights(R_ADMIN)) + return + + if(!config.continuous[ticker.mode.config_tag]) + config.continuous[ticker.mode.config_tag] = 1 + else + config.continuous[ticker.mode.config_tag] = 0 + + message_admins("[key_name_admin(usr)] toggled the round to [config.continuous[ticker.mode.config_tag] ? "continue if all antagonists die" : "end with the antagonists"].") + check_antagonists() + + else if(href_list["toggle_midround_antag"]) + if(!check_rights(R_ADMIN)) + return + + if(!config.midround_antag[ticker.mode.config_tag]) + config.midround_antag[ticker.mode.config_tag] = 1 + else + config.midround_antag[ticker.mode.config_tag] = 0 + + message_admins("[key_name_admin(usr)] toggled the round to [config.midround_antag[ticker.mode.config_tag] ? "use" : "skip"] the midround antag system.") + check_antagonists() + + else if(href_list["alter_midround_time_limit"]) + if(!check_rights(R_ADMIN)) + return + + var/timer = input("Enter new maximum time",, config.midround_antag_time_check ) as num|null + if(!timer) + return + config.midround_antag_time_check = timer + message_admins("[key_name_admin(usr)] edited the maximum midround antagonist time to [timer] minutes.") + check_antagonists() + + else if(href_list["alter_midround_life_limit"]) + if(!check_rights(R_ADMIN)) + return + + var/ratio = input("Enter new life ratio",, config.midround_antag_life_check*100) as num + if(ratio) + config.midround_antag_life_check = ratio/100 + + message_admins("[key_name_admin(usr)] edited the midround antagonist living crew ratio to [ratio]% alive.") + check_antagonists() + + else if(href_list["toggle_noncontinuous_behavior"]) + if(!check_rights(R_ADMIN)) + return + + if(!ticker.mode.round_ends_with_antag_death) + ticker.mode.round_ends_with_antag_death = 1 + else + ticker.mode.round_ends_with_antag_death = 0 + + message_admins("[key_name_admin(usr)] edited the midround antagonist system to [ticker.mode.round_ends_with_antag_death ? "end the round" : "continue as extended"] upon failure.") + check_antagonists() + + else if(href_list["delay_round_end"]) + if(!check_rights(R_SERVER)) + return + + ticker.delay_end = !ticker.delay_end + log_admin("[key_name(usr)] [ticker.delay_end ? "delayed the round end" : "has made the round end normally"].") + message_admins("[key_name(usr)] [ticker.delay_end ? "delayed the round end" : "has made the round end normally"].") + href_list["secrets"] = "check_antagonist" + + else if(href_list["end_round"]) + if(!check_rights(R_ADMIN)) + return + + message_admins("[key_name_admin(usr)] is considering ending the round.") + if(alert(usr, "This will end the round, are you SURE you want to do this?", "Confirmation", "Yes", "No") == "Yes") + if(alert(usr, "Final Confirmation: End the round NOW?", "Confirmation", "Yes", "No") == "Yes") + message_admins("[key_name_admin(usr)] has ended the round.") + ticker.force_ending = 1 //Yeah there we go APC destroyed mission accomplished + return + else + message_admins("[key_name_admin(usr)] decided against ending the round.") + else + message_admins("[key_name_admin(usr)] decided against ending the round.") + + else if(href_list["simplemake"]) + if(!check_rights(R_SPAWN)) + return + + var/mob/M = locate(href_list["mob"]) + if(!ismob(M)) + usr << "This can only be used on instances of type /mob." + return + + var/delmob = 0 + switch(alert("Delete old mob?","Message","Yes","No","Cancel")) + if("Cancel") + return + if("Yes") + delmob = 1 + + log_admin("[key_name(usr)] has used rudimentary transformation on [key_name(M)]. Transforming to [href_list["simplemake"]].; deletemob=[delmob]") + message_admins("[key_name_admin(usr)] has used rudimentary transformation on [key_name_admin(M)]. Transforming to [href_list["simplemake"]].; deletemob=[delmob]") + + switch(href_list["simplemake"]) + if("observer") + M.change_mob_type( /mob/dead/observer , null, null, delmob ) + if("drone") + M.change_mob_type( /mob/living/carbon/alien/humanoid/drone , null, null, delmob ) + if("hunter") + M.change_mob_type( /mob/living/carbon/alien/humanoid/hunter , null, null, delmob ) + if("queen") + M.change_mob_type( /mob/living/carbon/alien/humanoid/royal/queen , null, null, delmob ) + if("praetorian") + M.change_mob_type( /mob/living/carbon/alien/humanoid/royal/praetorian , null, null, delmob ) + if("sentinel") + M.change_mob_type( /mob/living/carbon/alien/humanoid/sentinel , null, null, delmob ) + if("larva") + M.change_mob_type( /mob/living/carbon/alien/larva , null, null, delmob ) + if("human") + M.change_mob_type( /mob/living/carbon/human , null, null, delmob ) + if("slime") + M.change_mob_type( /mob/living/simple_animal/slime , null, null, delmob ) + if("monkey") + M.change_mob_type( /mob/living/carbon/monkey , null, null, delmob ) + if("robot") + M.change_mob_type( /mob/living/silicon/robot , null, null, delmob ) + if("cat") + M.change_mob_type( /mob/living/simple_animal/pet/cat , null, null, delmob ) + if("runtime") + M.change_mob_type( /mob/living/simple_animal/pet/cat/Runtime , null, null, delmob ) + if("corgi") + M.change_mob_type( /mob/living/simple_animal/pet/dog/corgi , null, null, delmob ) + if("ian") + M.change_mob_type( /mob/living/simple_animal/pet/dog/corgi/Ian , null, null, delmob ) + if("pug") + M.change_mob_type( /mob/living/simple_animal/pet/dog/pug , null, null, delmob ) + if("crab") + M.change_mob_type( /mob/living/simple_animal/crab , null, null, delmob ) + if("coffee") + M.change_mob_type( /mob/living/simple_animal/crab/Coffee , null, null, delmob ) + if("parrot") + M.change_mob_type( /mob/living/simple_animal/parrot , null, null, delmob ) + if("polyparrot") + M.change_mob_type( /mob/living/simple_animal/parrot/Poly , null, null, delmob ) + if("constructarmored") + M.change_mob_type( /mob/living/simple_animal/hostile/construct/armored , null, null, delmob ) + if("constructbuilder") + M.change_mob_type( /mob/living/simple_animal/hostile/construct/builder , null, null, delmob ) + if("constructwraith") + M.change_mob_type( /mob/living/simple_animal/hostile/construct/wraith , null, null, delmob ) + if("shade") + M.change_mob_type( /mob/living/simple_animal/shade , null, null, delmob ) + + + /////////////////////////////////////new ban stuff + else if(href_list["unbanf"]) + if(!check_rights(R_BAN)) + return + + var/banfolder = href_list["unbanf"] + Banlist.cd = "/base/[banfolder]" + var/key = Banlist["key"] + if(alert(usr, "Are you sure you want to unban [key]?", "Confirmation", "Yes", "No") == "Yes") + if(RemoveBan(banfolder)) + unbanpanel() + else + alert(usr, "This ban has already been lifted / does not exist.", "Error", "Ok") + unbanpanel() + + else if(href_list["unbane"]) + if(!check_rights(R_BAN)) + return + + UpdateTime() + var/reason + + var/banfolder = href_list["unbane"] + Banlist.cd = "/base/[banfolder]" + var/reason2 = Banlist["reason"] + var/temp = Banlist["temp"] + + var/minutes = Banlist["minutes"] + + var/banned_key = Banlist["key"] + Banlist.cd = "/base" + + var/duration + + switch(alert("Temporary Ban?",,"Yes","No")) + if("Yes") + temp = 1 + var/mins = 0 + if(minutes > CMinutes) + mins = minutes - CMinutes + mins = input(usr,"How long (in minutes)? (Default: 1440)","Ban time",mins ? mins : 1440) as num|null + if(!mins) + return + minutes = CMinutes + mins + duration = GetExp(minutes) + reason = input(usr,"Please State Reason.","Reason",reason2) as message|null + if(!reason) + return + if("No") + temp = 0 + duration = "Perma" + reason = input(usr,"Please State Reason.","Reason",reason2) as message|null + if(!reason) + return + + log_admin("[key_name(usr)] edited [banned_key]'s ban. Reason: [reason] Duration: [duration]") + ban_unban_log_save("[key_name(usr)] edited [banned_key]'s ban. Reason: [reason] Duration: [duration]") + message_admins("[key_name_admin(usr)] edited [banned_key]'s ban. Reason: [reason] Duration: [duration]") + Banlist.cd = "/base/[banfolder]" + Banlist["reason"] << reason + Banlist["temp"] << temp + Banlist["minutes"] << minutes + Banlist["bannedby"] << usr.ckey + Banlist.cd = "/base" + feedback_inc("ban_edit",1) + unbanpanel() + + /////////////////////////////////////new ban stuff + + else if(href_list["appearanceban"]) + if(!check_rights(R_BAN)) + return + var/mob/M = locate(href_list["appearanceban"]) + if(!ismob(M)) + usr << "This can only be used on instances of type /mob" + return + if(!M.ckey) //sanity + usr << "This mob has no ckey" + return + + + if(jobban_isbanned(M, "appearance")) + switch(alert("Remove appearance ban?","Please Confirm","Yes","No")) + if("Yes") + ban_unban_log_save("[key_name(usr)] removed [key_name(M)]'s appearance ban.") + log_admin("[key_name(usr)] removed [key_name(M)]'s appearance ban.") + feedback_inc("ban_appearance_unban", 1) + DB_ban_unban(M.ckey, BANTYPE_ANY_JOB, "appearance") + if(M.client) + jobban_buildcache(M.client) + message_admins("[key_name_admin(usr)] removed [key_name_admin(M)]'s appearance ban.") + M << "[usr.client.ckey] has removed your appearance ban." + + else switch(alert("Appearance ban [M.ckey]?",,"Yes","No", "Cancel")) + if("Yes") + var/reason = input(usr,"Please State Reason.","Reason") as message|null + if(!reason) + return + if(!DB_ban_record(BANTYPE_JOB_PERMA, M, -1, reason, "appearance")) + usr << "Failed to apply ban." + return + if(M.client) + jobban_buildcache(M.client) + ban_unban_log_save("[key_name(usr)] appearance banned [key_name(M)]. reason: [reason]") + log_admin("[key_name(usr)] appearance banned [key_name(M)]. \nReason: [reason]") + feedback_inc("ban_appearance",1) + add_note(M.ckey, "Appearance banned - [reason]", null, usr.ckey, 0, null, 0) + message_admins("[key_name_admin(usr)] appearance banned [key_name_admin(M)].") + M << "You have been appearance banned by [usr.client.ckey]." + M << "The reason is: [reason]" + M << "Appearance ban can be lifted only upon request." + if(config.banappeals) + M << "To try to resolve this matter head to [config.banappeals]" + else + M << "No ban appeals URL has been set." + if("No") + return + + else if(href_list["jobban2"]) + var/mob/M = locate(href_list["jobban2"]) + if(!ismob(M)) + usr << "This can only be used on instances of type /mob." + return + + if(!M.ckey) //sanity + usr << "This mob has no ckey." + return + + var/dat = "Job-Ban Panel: [key_name(M)]" + + /***********************************WARNING!************************************ + The jobban stuff looks mangled and disgusting + But it looks beautiful in-game + -Nodrak + ************************************WARNING!***********************************/ + var/counter = 0 +//Regular jobs + //Command (Blue) + dat += "" + dat += "" + for(var/jobPos in command_positions) + if(!jobPos) + continue + if(jobban_isbanned(M, jobPos)) + dat += "" + counter++ + else + dat += "" + counter++ + + if(counter >= 6) //So things dont get squiiiiished! + dat += "" + counter = 0 + dat += "
    Command Positions
    [jobPos][jobPos]
    " + + //Security (Red) + counter = 0 + dat += "" + dat += "" + for(var/jobPos in security_positions) + if(!jobPos) + continue + if(jobban_isbanned(M, jobPos)) + dat += "" + counter++ + else + dat += "" + counter++ + + if(counter >= 5) //So things dont get squiiiiished! + dat += "" + counter = 0 + dat += "
    Security Positions
    [jobPos][jobPos]
    " + + //Engineering (Yellow) + counter = 0 + dat += "" + dat += "" + for(var/jobPos in engineering_positions) + if(!jobPos) + continue + if(jobban_isbanned(M, jobPos)) + dat += "" + counter++ + else + dat += "" + counter++ + + if(counter >= 5) //So things dont get squiiiiished! + dat += "" + counter = 0 + dat += "
    Engineering Positions
    [jobPos][jobPos]
    " + + //Medical (White) + counter = 0 + dat += "" + dat += "" + for(var/jobPos in medical_positions) + if(!jobPos) + continue + if(jobban_isbanned(M, jobPos)) + dat += "" + counter++ + else + dat += "" + counter++ + + if(counter >= 5) //So things dont get squiiiiished! + dat += "" + counter = 0 + dat += "
    Medical Positions
    [jobPos][jobPos]
    " + + //Science (Purple) + counter = 0 + dat += "" + dat += "" + for(var/jobPos in science_positions) + if(!jobPos) + continue + if(jobban_isbanned(M, jobPos)) + dat += "" + counter++ + else + dat += "" + counter++ + + if(counter >= 5) //So things dont get squiiiiished! + dat += "" + counter = 0 + dat += "
    Science Positions
    [jobPos][jobPos]
    " + + //Supply (Brown) + counter = 0 + dat += "" + dat += "" + for(var/jobPos in supply_positions) + if(!jobPos) + continue + if(jobban_isbanned(M, jobPos)) + dat += "" + counter++ + else + dat += "" + counter++ + + if(counter >= 5) //So things dont get COPYPASTE! + dat += "" + counter = 0 + dat += "
    Supply Positions
    [jobPos][jobPos]
    " + + //Civilian (Grey) + counter = 0 + dat += "" + dat += "" + for(var/jobPos in civilian_positions) + if(!jobPos) + continue + if(jobban_isbanned(M, jobPos)) + dat += "" + counter++ + else + dat += "" + counter++ + + if(counter >= 5) //So things dont get squiiiiished! + dat += "" + counter = 0 + dat += "
    Civilian Positions
    [jobPos][jobPos]
    " + + //Non-Human (Green) + counter = 0 + dat += "" + dat += "" + for(var/jobPos in nonhuman_positions) + if(!jobPos) + continue + if(jobban_isbanned(M, jobPos)) + dat += "" + counter++ + else + dat += "" + counter++ + + if(counter >= 5) //So things dont get squiiiiished! + dat += "" + counter = 0 + + dat += "
    Non-human Positions
    [jobPos][jobPos]
    " + + //Ghost Roles (light light gray) + dat += "" + dat += "" + + //pAI + if(jobban_isbanned(M, "pAI")) + dat += "" + else + dat += "" + + + //Drones + if(jobban_isbanned(M, "drone")) + dat += "" + else + dat += "" + + + //Positronic Brains + if(jobban_isbanned(M, "posibrain")) + dat += "" + else + dat += "" + + + //Deathsquad + if(jobban_isbanned(M, "deathsquad")) + dat += "" + else + dat += "" + + //Lavaland roles + if(jobban_isbanned(M, "lavaland")) + dat += "" + else + dat += "" + + dat += "
    Ghost Roles
    pAIpAIDroneDronePosibrainPosibrainDeathsquadDeathsquadLavalandLavaland
    " + + //Antagonist (Orange) + var/isbanned_dept = jobban_isbanned(M, "Syndicate") + dat += "" + dat += "" + + //Traitor + if(jobban_isbanned(M, "traitor") || isbanned_dept) + dat += "" + else + dat += "" + + //Changeling + if(jobban_isbanned(M, "changeling") || isbanned_dept) + dat += "" + else + dat += "" + + //Nuke Operative + if(jobban_isbanned(M, "operative") || isbanned_dept) + dat += "" + else + dat += "" + + //Revolutionary + if(jobban_isbanned(M, "revolutionary") || isbanned_dept) + dat += "" + else + dat += "" + + //Gangster + if(jobban_isbanned(M, "gangster") || isbanned_dept) + dat += "" + else + dat += "" + + dat += "" //Breaking it up so it fits nicer on the screen every 5 entries + + //Cultist + if(jobban_isbanned(M, "cultist") || isbanned_dept) + dat += "" + else + dat += "" + + //Servant of Ratvar + if(jobban_isbanned(M, "servant of Ratvar") || isbanned_dept) + dat += "" + else + dat += "" + + //Wizard + if(jobban_isbanned(M, "wizard") || isbanned_dept) + dat += "" + else + dat += "" + + //Abductor + if(jobban_isbanned(M, "abductor") || isbanned_dept) + dat += "" + else + dat += "" + + //Alien + if(jobban_isbanned(M, "alien candidate") || isbanned_dept) + dat += "" + else + dat += "" + + dat += "
    Antagonist Positions
    TraitorTraitorChangelingChangelingNuke OperativeNuke OperativeRevolutionaryRevolutionaryGangsterGangster
    CultistCultistServantServantWizardWizardAbductorAbductorAlienAlien
    " + usr << browse(dat, "window=jobban2;size=800x450") + return + + //JOBBAN'S INNARDS + else if(href_list["jobban3"]) + if(!check_rights(R_BAN)) + return + var/mob/M = locate(href_list["jobban4"]) + if(!ismob(M)) + usr << "This can only be used on instances of type /mob" + return + if(!SSjob) + usr << "Jobs subsystem not initialized yet!" + return + //get jobs for department if specified, otherwise just return the one job in a list. + var/list/joblist = list() + switch(href_list["jobban3"]) + if("commanddept") + for(var/jobPos in command_positions) + if(!jobPos) + continue + joblist += jobPos + if("securitydept") + for(var/jobPos in security_positions) + if(!jobPos) + continue + joblist += jobPos + if("engineeringdept") + for(var/jobPos in engineering_positions) + if(!jobPos) + continue + joblist += jobPos + if("medicaldept") + for(var/jobPos in medical_positions) + if(!jobPos) + continue + joblist += jobPos + if("sciencedept") + for(var/jobPos in science_positions) + if(!jobPos) + continue + joblist += jobPos + if("supplydept") + for(var/jobPos in supply_positions) + if(!jobPos) + continue + joblist += jobPos + if("civiliandept") + for(var/jobPos in civilian_positions) + if(!jobPos) + continue + joblist += jobPos + if("nonhumandept") + for(var/jobPos in nonhuman_positions) + if(!jobPos) + continue + joblist += jobPos + if("ghostroles") + joblist += list("pAI", "posibrain", "drone", "deathsquad", "lavaland") + else + joblist += href_list["jobban3"] + + //Create a list of unbanned jobs within joblist + var/list/notbannedlist = list() + for(var/job in joblist) + if(!jobban_isbanned(M, job)) + notbannedlist += job + + //Banning comes first + if(notbannedlist.len) //at least 1 unbanned job exists in joblist so we have stuff to ban. + switch(alert("Temporary Ban?",,"Yes","No", "Cancel")) + if("Yes") + var/mins = input(usr,"How long (in minutes)?","Ban time",1440) as num|null + if(!mins) + return + var/reason = input(usr,"Please State Reason.","Reason") as message|null + if(!reason) + return + + var/msg + for(var/job in notbannedlist) + if(!DB_ban_record(BANTYPE_JOB_TEMP, M, mins, reason, job)) + usr << "Failed to apply ban." + return + if(M.client) + jobban_buildcache(M.client) + ban_unban_log_save("[key_name(usr)] temp-jobbanned [key_name(M)] from [job] for [mins] minutes. reason: [reason]") + log_admin("[key_name(usr)] temp-jobbanned [key_name(M)] from [job] for [mins] minutes.") + feedback_inc("ban_job_tmp",1) + feedback_add_details("ban_job_tmp","- [job]") + if(!msg) + msg = job + else + msg += ", [job]" + add_note(M.ckey, "Banned from [msg] - [reason]", null, usr.ckey, 0, null, 0) + message_admins("[key_name_admin(usr)] banned [key_name_admin(M)] from [msg] for [mins] minutes.") + M << "You have been [(msg == ("ooc" || "appearance")) ? "banned" : "jobbanned"] by [usr.client.ckey] from: [msg]." + M << "The reason is: [reason]" + M << "This jobban will be lifted in [mins] minutes." + href_list["jobban2"] = 1 // lets it fall through and refresh + return 1 + if("No") + var/reason = input(usr,"Please State Reason","Reason") as message|null + if(reason) + var/msg + for(var/job in notbannedlist) + if(!DB_ban_record(BANTYPE_JOB_PERMA, M, -1, reason, job)) + usr << "Failed to apply ban." + return + if(M.client) + jobban_buildcache(M.client) + ban_unban_log_save("[key_name(usr)] perma-jobbanned [key_name(M)] from [job]. reason: [reason]") + log_admin("[key_name(usr)] perma-banned [key_name(M)] from [job]") + feedback_inc("ban_job",1) + feedback_add_details("ban_job","- [job]") + if(!msg) + msg = job + else + msg += ", [job]" + add_note(M.ckey, "Banned from [msg] - [reason]", null, usr.ckey, 0, null, 0) + message_admins("[key_name_admin(usr)] banned [key_name_admin(M)] from [msg].") + M << "You have been [(msg == ("ooc" || "appearance")) ? "banned" : "jobbanned"] by [usr.client.ckey] from: [msg]." + M << "The reason is: [reason]" + M << "Jobban can be lifted only upon request." + href_list["jobban2"] = 1 // lets it fall through and refresh + return 1 + if("Cancel") + return + + //Unbanning joblist + //all jobs in joblist are banned already OR we didn't give a reason (implying they shouldn't be banned) + if(joblist.len) //at least 1 banned job exists in joblist so we have stuff to unban. + var/msg + for(var/job in joblist) + var/reason = jobban_isbanned(M, job) + if(!reason) + continue //skip if it isn't jobbanned anyway + switch(alert("Job: '[job]' Reason: '[reason]' Un-jobban?","Please Confirm","Yes","No")) + if("Yes") + ban_unban_log_save("[key_name(usr)] unjobbanned [key_name(M)] from [job]") + log_admin("[key_name(usr)] unbanned [key_name(M)] from [job]") + DB_ban_unban(M.ckey, BANTYPE_ANY_JOB, job) + if(M.client) + jobban_buildcache(M.client) + feedback_inc("ban_job_unban",1) + feedback_add_details("ban_job_unban","- [job]") + if(!msg) + msg = job + else + msg += ", [job]" + else + continue + if(msg) + message_admins("[key_name_admin(usr)] unbanned [key_name_admin(M)] from [msg].") + M << "You have been un-jobbanned by [usr.client.ckey] from [msg]." + href_list["jobban2"] = 1 // lets it fall through and refresh + return 1 + return 0 //we didn't do anything! + + else if(href_list["boot2"]) + var/mob/M = locate(href_list["boot2"]) + if (ismob(M)) + if(!check_if_greater_rights_than(M.client)) + usr << "Error: They have more rights than you do." + return + M << "You have been kicked from the server by [usr.client.holder.fakekey ? "an Administrator" : "[usr.client.ckey]"]." + log_admin("[key_name(usr)] kicked [key_name(M)].") + message_admins("[key_name_admin(usr)] kicked [key_name_admin(M)].") + //M.client = null + qdel(M.client) + + //Player Notes + else if(href_list["addnote"]) + var/target_ckey = href_list["addnote"] + add_note(target_ckey) + + else if(href_list["addnoteempty"]) + add_note() + + else if(href_list["removenote"]) + var/note_id = href_list["removenote"] + remove_note(note_id) + + else if(href_list["editnote"]) + var/note_id = href_list["editnote"] + edit_note(note_id) + + else if(href_list["shownote"]) + var/target = href_list["shownote"] + show_note(index = target) + + else if(href_list["nonalpha"]) + var/target = href_list["nonalpha"] + target = text2num(target) + show_note(index = target) + + else if(href_list["shownoteckey"]) + var/target_ckey = href_list["shownoteckey"] + show_note(target_ckey) + + else if(href_list["shownoteckeylinkless"]) + var/target_ckey = href_list["shownoteckeylinkless"] + show_note(target_ckey, null, 1) + + else if(href_list["notessearch"]) + var/target = href_list["notessearch"] + show_note(index = target) + + else if(href_list["noteedits"]) + var/note_id = sanitizeSQL("[href_list["noteedits"]]") + var/DBQuery/query_noteedits = dbcon.NewQuery("SELECT edits FROM [format_table_name("notes")] WHERE id = '[note_id]'") + if(!query_noteedits.Execute()) + var/err = query_noteedits.ErrorMsg() + log_game("SQL ERROR obtaining edits from notes table. Error : \[[err]\]\n") + return + if(query_noteedits.NextRow()) + var/edit_log = query_noteedits.item[1] + usr << browse(edit_log,"window=noteedits") + + else if(href_list["secretnote"]) + var/note_id = href_list["secretnote"] + toggle_note_secrecy(note_id) + + else if(href_list["newban"]) + if(!check_rights(R_BAN)) + return + + var/mob/M = locate(href_list["newban"]) + if(!ismob(M)) + return + + if(M.client && M.client.holder) + return //admins cannot be banned. Even if they could, the ban doesn't affect them anyway + + switch(alert("Temporary Ban?",,"Yes","No", "Cancel")) + if("Yes") + var/mins = input(usr,"How long (in minutes)?","Ban time",1440) as num|null + if(!mins) + return + var/reason = input(usr,"Please State Reason.","Reason") as message|null + if(!reason) + return + if(!DB_ban_record(BANTYPE_TEMP, M, mins, reason)) + usr << "Failed to apply ban." + return + AddBan(M.ckey, M.computer_id, reason, usr.ckey, 1, mins) + ban_unban_log_save("[key_name(usr)] has banned [key_name(M)]. - Reason: [reason] - This will be removed in [mins] minutes.") + M << "You have been banned by [usr.client.ckey].\nReason: [reason]" + M << "This is a temporary ban, it will be removed in [mins] minutes." + feedback_inc("ban_tmp",1) + feedback_inc("ban_tmp_mins",mins) + if(config.banappeals) + M << "To try to resolve this matter head to [config.banappeals]" + else + M << "No ban appeals URL has been set." + log_admin("[key_name(usr)] has banned [M.ckey].\nReason: [key_name(M)]\nThis will be removed in [mins] minutes.") + message_admins("[key_name_admin(usr)] has banned [key_name_admin(M)].\nReason: [reason]\nThis will be removed in [mins] minutes.") + + qdel(M.client) + if("No") + var/reason = input(usr,"Please State Reason.","Reason") as message|null + if(!reason) + return + switch(alert(usr,"IP ban?",,"Yes","No","Cancel")) + if("Cancel") + return + if("Yes") + AddBan(M.ckey, M.computer_id, reason, usr.ckey, 0, 0, M.lastKnownIP) + if("No") + AddBan(M.ckey, M.computer_id, reason, usr.ckey, 0, 0) + M << "You have been banned by [usr.client.ckey].\nReason: [reason]" + M << "This is a permanent ban." + if(config.banappeals) + M << "To try to resolve this matter head to [config.banappeals]" + else + M << "No ban appeals URL has been set." + if(!DB_ban_record(BANTYPE_PERMA, M, -1, reason)) + usr << "Failed to apply ban." + return + ban_unban_log_save("[key_name(usr)] has permabanned [key_name(M)]. - Reason: [reason] - This is a permanent ban.") + log_admin("[key_name(usr)] has banned [key_name_admin(M)].\nReason: [reason]\nThis is a permanent ban.") + message_admins("[key_name_admin(usr)] has banned [key_name_admin(M)].\nReason: [reason]\nThis is a permanent ban.") + feedback_inc("ban_perma",1) + qdel(M.client) + if("Cancel") + return + + //Watchlist + else if(href_list["watchadd"]) + var/target_ckey = locate(href_list["watchadd"]) + usr.client.watchlist_add(target_ckey) + + else if(href_list["watchremove"]) + var/target_ckey = href_list["watchremove"] + usr.client.watchlist_remove(target_ckey) + + else if(href_list["watchedit"]) + var/target_ckey = href_list["watchedit"] + usr.client.watchlist_edit(target_ckey) + + else if(href_list["watchaddbrowse"]) + usr.client.watchlist_add(null, 1) + + else if(href_list["watchremovebrowse"]) + var/target_ckey = href_list["watchremovebrowse"] + usr.client.watchlist_remove(target_ckey, 1) + + else if(href_list["watcheditbrowse"]) + var/target_ckey = href_list["watcheditbrowse"] + usr.client.watchlist_edit(target_ckey, 1) + + else if(href_list["watchsearch"]) + var/target_ckey = href_list["watchsearch"] + usr.client.watchlist_show(target_ckey) + + else if(href_list["watchshow"]) + usr.client.watchlist_show() + + else if(href_list["watcheditlog"]) + var/target_ckey = sanitizeSQL("[href_list["watcheditlog"]]") + var/DBQuery/query_watchedits = dbcon.NewQuery("SELECT edits FROM [format_table_name("watch")] WHERE ckey = '[target_ckey]'") + if(!query_watchedits.Execute()) + var/err = query_watchedits.ErrorMsg() + log_game("SQL ERROR obtaining edits from watch table. Error : \[[err]\]\n") + return + if(query_watchedits.NextRow()) + var/edit_log = query_watchedits.item[1] + usr << browse(edit_log,"window=watchedits") + + else if(href_list["mute"]) + if(!check_rights(R_ADMIN)) + return + cmd_admin_mute(href_list["mute"], text2num(href_list["mute_type"])) + + else if(href_list["c_mode"]) + if(!check_rights(R_ADMIN)) + return + + if(ticker && ticker.mode) + return alert(usr, "The game has already started.", null, null, null, null) + var/dat = {"What mode do you wish to play?
    "} + for(var/mode in config.modes) + dat += {"[config.mode_names[mode]]
    "} + dat += {"Secret
    "} + dat += {"Random
    "} + dat += {"Now: [master_mode]"} + usr << browse(dat, "window=c_mode") + + else if(href_list["f_secret"]) + if(!check_rights(R_ADMIN)) + return + + if(ticker && ticker.mode) + return alert(usr, "The game has already started.", null, null, null, null) + if(master_mode != "secret") + return alert(usr, "The game mode has to be secret!", null, null, null, null) + var/dat = {"What game mode do you want to force secret to be? Use this if you want to change the game mode, but want the players to believe it's secret. This will only work if the current game mode is secret.
    "} + for(var/mode in config.modes) + dat += {"[config.mode_names[mode]]
    "} + dat += {"Random (default)
    "} + dat += {"Now: [secret_force_mode]"} + usr << browse(dat, "window=f_secret") + + else if(href_list["c_mode2"]) + if(!check_rights(R_ADMIN|R_SERVER)) + return + + if (ticker && ticker.mode) + return alert(usr, "The game has already started.", null, null, null, null) + master_mode = href_list["c_mode2"] + log_admin("[key_name(usr)] set the mode as [master_mode].") + message_admins("[key_name_admin(usr)] set the mode as [master_mode].") + world << "The mode is now: [master_mode]" + Game() // updates the main game menu + world.save_mode(master_mode) + .(href, list("c_mode"=1)) + + else if(href_list["f_secret2"]) + if(!check_rights(R_ADMIN|R_SERVER)) + return + + if(ticker && ticker.mode) + return alert(usr, "The game has already started.", null, null, null, null) + if(master_mode != "secret") + return alert(usr, "The game mode has to be secret!", null, null, null, null) + secret_force_mode = href_list["f_secret2"] + log_admin("[key_name(usr)] set the forced secret mode as [secret_force_mode].") + message_admins("[key_name_admin(usr)] set the forced secret mode as [secret_force_mode].") + Game() // updates the main game menu + .(href, list("f_secret"=1)) + + else if(href_list["monkeyone"]) + if(!check_rights(R_SPAWN)) + return + + var/mob/living/carbon/human/H = locate(href_list["monkeyone"]) + if(!istype(H)) + usr << "This can only be used on instances of type /mob/living/carbon/human." + return + + log_admin("[key_name(usr)] attempting to monkeyize [key_name(H)].") + message_admins("[key_name_admin(usr)] attempting to monkeyize [key_name_admin(H)].") + H.monkeyize() + + else if(href_list["humanone"]) + if(!check_rights(R_SPAWN)) + return + + var/mob/living/carbon/monkey/Mo = locate(href_list["humanone"]) + if(!istype(Mo)) + usr << "This can only be used on instances of type /mob/living/carbon/monkey." + return + + log_admin("[key_name(usr)] attempting to humanize [key_name(Mo)].") + message_admins("[key_name_admin(usr)] attempting to humanize [key_name_admin(Mo)].") + Mo.humanize() + + else if(href_list["corgione"]) + if(!check_rights(R_SPAWN)) + return + + var/mob/living/carbon/human/H = locate(href_list["corgione"]) + if(!istype(H)) + usr << "This can only be used on instances of type /mob/living/carbon/human." + return + + log_admin("[key_name(usr)] attempting to corgize [key_name(H)].") + message_admins("[key_name_admin(usr)] attempting to corgize [key_name_admin(H)].") + H.corgize() + + + else if(href_list["forcespeech"]) + if(!check_rights(R_FUN)) + return + + var/mob/M = locate(href_list["forcespeech"]) + if(!ismob(M)) + usr << "this can only be used on instances of type /mob." + + var/speech = input("What will [key_name(M)] say?.", "Force speech", "")// Don't need to sanitize, since it does that in say(), we also trust our admins. + if(!speech) + return + M.say(speech) + speech = sanitize(speech) // Nah, we don't trust them + log_admin("[key_name(usr)] forced [key_name(M)] to say: [speech]") + message_admins("[key_name_admin(usr)] forced [key_name_admin(M)] to say: [speech]") + + else if(href_list["sendtoprison"]) + if(!check_rights(R_ADMIN)) + return + + var/mob/M = locate(href_list["sendtoprison"]) + if(!ismob(M)) + usr << "This can only be used on instances of type /mob." + return + if(isAI(M)) + usr << "This cannot be used on instances of type /mob/living/silicon/ai." + return + + if(alert(usr, "Send [key_name(M)] to Prison?", "Message", "Yes", "No") != "Yes") + return + + M.loc = pick(prisonwarp) + M << "You have been sent to Prison!" + + log_admin("[key_name(usr)] has sent [key_name(M)] to Prison!") + message_admins("[key_name_admin(usr)] has sent [key_name_admin(M)] Prison!") + + else if(href_list["sendbacktolobby"]) + if(!check_rights(R_ADMIN)) + return + + var/mob/M = locate(href_list["sendbacktolobby"]) + + if(!isobserver(M)) + usr << "You can only send ghost players back to the Lobby." + return + + if(!M.client) + usr << "[M] doesn't seem to have an active client." + return + + if(alert(usr, "Send [key_name(M)] back to Lobby?", "Message", "Yes", "No") != "Yes") + return + + log_admin("[key_name(usr)] has sent [key_name(M)] back to the Lobby.") + message_admins("[key_name(usr)] has sent [key_name(M)] back to the Lobby.") + + var/mob/new_player/NP = new() + NP.ckey = M.ckey + qdel(M) + + else if(href_list["tdome1"]) + if(!check_rights(R_FUN)) + return + + if(alert(usr, "Confirm?", "Message", "Yes", "No") != "Yes") + return + + var/mob/M = locate(href_list["tdome1"]) + if(!ismob(M)) + usr << "This can only be used on instances of type /mob." + return + if(isAI(M)) + usr << "This cannot be used on instances of type /mob/living/silicon/ai." + return + + for(var/obj/item/I in M) + M.unEquip(I) + if(I) + I.loc = M.loc + I.layer = initial(I.layer) + I.plane = initial(I.plane) + I.dropped(M) + + M.Paralyse(5) + sleep(5) + M.loc = pick(tdome1) + spawn(50) + M << "You have been sent to the Thunderdome." + log_admin("[key_name(usr)] has sent [key_name(M)] to the thunderdome. (Team 1)") + message_admins("[key_name_admin(usr)] has sent [key_name_admin(M)] to the thunderdome. (Team 1)") + + else if(href_list["tdome2"]) + if(!check_rights(R_FUN)) + return + + if(alert(usr, "Confirm?", "Message", "Yes", "No") != "Yes") + return + + var/mob/M = locate(href_list["tdome2"]) + if(!ismob(M)) + usr << "This can only be used on instances of type /mob." + return + if(isAI(M)) + usr << "This cannot be used on instances of type /mob/living/silicon/ai." + return + + for(var/obj/item/I in M) + M.unEquip(I) + if(I) + I.loc = M.loc + I.layer = initial(I.layer) + I.plane = initial(I.plane) + I.dropped(M) + + M.Paralyse(5) + sleep(5) + M.loc = pick(tdome2) + spawn(50) + M << "You have been sent to the Thunderdome." + log_admin("[key_name(usr)] has sent [key_name(M)] to the thunderdome. (Team 2)") + message_admins("[key_name_admin(usr)] has sent [key_name_admin(M)] to the thunderdome. (Team 2)") + + else if(href_list["tdomeadmin"]) + if(!check_rights(R_FUN)) + return + + if(alert(usr, "Confirm?", "Message", "Yes", "No") != "Yes") + return + + var/mob/M = locate(href_list["tdomeadmin"]) + if(!ismob(M)) + usr << "This can only be used on instances of type /mob." + return + if(isAI(M)) + usr << "This cannot be used on instances of type /mob/living/silicon/ai." + return + + M.Paralyse(5) + sleep(5) + M.loc = pick(tdomeadmin) + spawn(50) + M << "You have been sent to the Thunderdome." + log_admin("[key_name(usr)] has sent [key_name(M)] to the thunderdome. (Admin.)") + message_admins("[key_name_admin(usr)] has sent [key_name_admin(M)] to the thunderdome. (Admin.)") + + else if(href_list["tdomeobserve"]) + if(!check_rights(R_FUN)) + return + + if(alert(usr, "Confirm?", "Message", "Yes", "No") != "Yes") + return + + var/mob/M = locate(href_list["tdomeobserve"]) + if(!ismob(M)) + usr << "This can only be used on instances of type /mob." + return + if(isAI(M)) + usr << "This cannot be used on instances of type /mob/living/silicon/ai." + return + + for(var/obj/item/I in M) + M.unEquip(I) + if(I) + I.loc = M.loc + I.layer = initial(I.layer) + I.plane = initial(I.plane) + I.dropped(M) + + if(ishuman(M)) + var/mob/living/carbon/human/observer = M + observer.equip_to_slot_or_del(new /obj/item/clothing/under/suit_jacket(observer), slot_w_uniform) + observer.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/black(observer), slot_shoes) + M.Paralyse(5) + sleep(5) + M.loc = pick(tdomeobserve) + spawn(50) + M << "You have been sent to the Thunderdome." + log_admin("[key_name(usr)] has sent [key_name(M)] to the thunderdome. (Observer.)") + message_admins("[key_name_admin(usr)] has sent [key_name_admin(M)] to the thunderdome. (Observer.)") + + else if(href_list["revive"]) + if(!check_rights(R_REJUVINATE)) + return + + var/mob/living/L = locate(href_list["revive"]) + if(!istype(L)) + usr << "This can only be used on instances of type /mob/living." + return + + L.revive(full_heal = 1, admin_revive = 1) + message_admins("Admin [key_name_admin(usr)] healed / revived [key_name_admin(L)]!") + log_admin("[key_name(usr)] healed / Revived [key_name(L)].") + + else if(href_list["makeai"]) + if(!check_rights(R_SPAWN)) + return + + var/mob/living/carbon/human/H = locate(href_list["makeai"]) + if(!istype(H)) + usr << "This can only be used on instances of type /mob/living/carbon/human." + return + + message_admins("Admin [key_name_admin(usr)] AIized [key_name_admin(H)]!") + log_admin("[key_name(usr)] AIized [key_name(H)].") + H.AIize() + + else if(href_list["makealien"]) + if(!check_rights(R_SPAWN)) + return + + var/mob/living/carbon/human/H = locate(href_list["makealien"]) + if(!istype(H)) + usr << "This can only be used on instances of type /mob/living/carbon/human." + return + + usr.client.cmd_admin_alienize(H) + + else if(href_list["makeslime"]) + if(!check_rights(R_SPAWN)) + return + + var/mob/living/carbon/human/H = locate(href_list["makeslime"]) + if(!istype(H)) + usr << "This can only be used on instances of type /mob/living/carbon/human." + return + + usr.client.cmd_admin_slimeize(H) + + else if(href_list["makeblob"]) + if(!check_rights(R_SPAWN)) + return + + var/mob/living/carbon/human/H = locate(href_list["makeblob"]) + if(!istype(H)) + usr << "This can only be used on instances of type /mob/living/carbon/human." + return + + usr.client.cmd_admin_blobize(H) + + + else if(href_list["makerobot"]) + if(!check_rights(R_SPAWN)) + return + + var/mob/living/carbon/human/H = locate(href_list["makerobot"]) + if(!istype(H)) + usr << "This can only be used on instances of type /mob/living/carbon/human." + return + + usr.client.cmd_admin_robotize(H) + + else if(href_list["makeanimal"]) + if(!check_rights(R_SPAWN)) + return + + var/mob/M = locate(href_list["makeanimal"]) + if(isnewplayer(M)) + usr << "This cannot be used on instances of type /mob/new_player." + return + + usr.client.cmd_admin_animalize(M) + + else if(href_list["gangpoints"]) + var/datum/gang/G = locate(href_list["gangpoints"]) in ticker.mode.gangs + if(G) + var/newpoints = input("Set [G.name ] Gang's influence.","Set Influence",G.points) as null|num + if(!newpoints) + return + message_admins("[key_name_admin(usr)] changed the [G.name] Gang's influence from [G.points] to [newpoints].
    ") + log_admin("[key_name(usr)] changed the [G.name] Gang's influence from [G.points] to [newpoints].
    ") + G.points = newpoints + G.message_gangtools("Your gang now has [G.points] influence.") + + else if(href_list["adminplayeropts"]) + var/mob/M = locate(href_list["adminplayeropts"]) + show_player_panel(M) + + else if(href_list["adminplayerobservefollow"]) + if(!isobserver(usr) && !check_rights(R_ADMIN)) + return + + var/atom/movable/AM = locate(href_list["adminplayerobservefollow"]) + + var/client/C = usr.client + if(!isobserver(usr)) + C.admin_ghost() + var/mob/dead/observer/A = C.mob + A.ManualFollow(AM) + + else if(href_list["adminplayerobservecoodjump"]) + if(!isobserver(usr) && !check_rights(R_ADMIN)) + return + + var/x = text2num(href_list["X"]) + var/y = text2num(href_list["Y"]) + var/z = text2num(href_list["Z"]) + + var/client/C = usr.client + if(!isobserver(usr)) + C.admin_ghost() + sleep(2) + C.jumptocoord(x,y,z) + + else if(href_list["adminchecklaws"]) + output_ai_laws() + + else if(href_list["admincheckdevilinfo"]) + var/mob/M = locate(href_list["admincheckdevilinfo"]) + output_devil_info(M) + + else if(href_list["adminmoreinfo"]) + var/mob/M = locate(href_list["adminmoreinfo"]) + if(!ismob(M)) + usr << "This can only be used on instances of type /mob." + return + + var/location_description = "" + var/special_role_description = "" + var/health_description = "" + var/gender_description = "" + var/turf/T = get_turf(M) + + //Location + if(isturf(T)) + if(isarea(T.loc)) + location_description = "([M.loc == T ? "at coordinates " : "in [M.loc] at coordinates "] [T.x], [T.y], [T.z] in area [T.loc])" + else + location_description = "([M.loc == T ? "at coordinates " : "in [M.loc] at coordinates "] [T.x], [T.y], [T.z])" + + //Job + antagonist + if(M.mind) + special_role_description = "Role: [M.mind.assigned_role]; Antagonist: [M.mind.special_role]" + else + special_role_description = "Role: Mind datum missing Antagonist: Mind datum missing" + + //Health + if(isliving(M)) + var/mob/living/L = M + var/status + switch (M.stat) + if (0) + status = "Alive" + if (1) + status = "Unconscious" + if (2) + status = "Dead" + health_description = "Status = [status]" + health_description += "
    Oxy: [L.getOxyLoss()] - Tox: [L.getToxLoss()] - Fire: [L.getFireLoss()] - Brute: [L.getBruteLoss()] - Clone: [L.getCloneLoss()] - Brain: [L.getBrainLoss()] - Stamina: [L.getStaminaLoss()]" + else + health_description = "This mob type has no health to speak of." + + //Gender + switch(M.gender) + if(MALE,FEMALE) + gender_description = "[M.gender]" + else + gender_description = "[M.gender]" + + src.owner << "Info about [M.name]: " + src.owner << "Mob type = [M.type]; Gender = [gender_description] Damage = [health_description]" + src.owner << "Name = [M.name]; Real_name = [M.real_name]; Mind_name = [M.mind?"[M.mind.name]":""]; Key = [M.key];" + src.owner << "Location = [location_description];" + src.owner << "[special_role_description]" + src.owner << "(PM) (PP) (VV) (SM) (FLW) (CA)" + + else if(href_list["addjobslot"]) + if(!check_rights(R_ADMIN)) + return + + var/Add = href_list["addjobslot"] + + for(var/datum/job/job in SSjob.occupations) + if(job.title == Add) + job.total_positions += 1 + break + + src.manage_free_slots() + + else if(href_list["removejobslot"]) + if(!check_rights(R_ADMIN)) + return + + var/Remove = href_list["removejobslot"] + + for(var/datum/job/job in SSjob.occupations) + if(job.title == Remove && job.total_positions - job.current_positions > 0) + job.total_positions -= 1 + break + + src.manage_free_slots() + + else if(href_list["unlimitjobslot"]) + if(!check_rights(R_ADMIN)) + return + + var/Unlimit = href_list["unlimitjobslot"] + + for(var/datum/job/job in SSjob.occupations) + if(job.title == Unlimit) + job.total_positions = -1 + break + + src.manage_free_slots() + + else if(href_list["limitjobslot"]) + if(!check_rights(R_ADMIN)) + return + + var/Limit = href_list["limitjobslot"] + + for(var/datum/job/job in SSjob.occupations) + if(job.title == Limit) + job.total_positions = job.current_positions + break + + src.manage_free_slots() + + + else if(href_list["adminspawncookie"]) + if(!check_rights(R_ADMIN|R_FUN)) + return + + var/mob/living/carbon/human/H = locate(href_list["adminspawncookie"]) + if(!ishuman(H)) + usr << "This can only be used on instances of type /mob/living/carbon/human." + return + + var/obj/item/weapon/reagent_containers/food/snacks/cookie/cookie = new(H) + if(H.put_in_hands(cookie)) + H.update_inv_hands() + else + qdel(cookie) + log_admin("[key_name(H)] has their hands full, so they did not receive their cookie, spawned by [key_name(src.owner)].") + message_admins("[key_name(H)] has their hands full, so they did not receive their cookie, spawned by [key_name(src.owner)].") + return + + log_admin("[key_name(H)] got their cookie, spawned by [key_name(src.owner)].") + message_admins("[key_name(H)] got their cookie, spawned by [key_name(src.owner)].") + feedback_inc("admin_cookies_spawned",1) + H << "Your prayers have been answered!! You received the best cookie!" + H << 'sound/effects/pray_chaplain.ogg' + + else if(href_list["BlueSpaceArtillery"]) + var/mob/living/M = locate(href_list["BlueSpaceArtillery"]) + usr.client.bluespace_artillery(M) + + else if(href_list["CentcommReply"]) + var/mob/living/carbon/human/H = locate(href_list["CentcommReply"]) + if(!istype(H)) + usr << "This can only be used on instances of type /mob/living/carbon/human" + return + if(!istype(H.ears, /obj/item/device/radio/headset)) + usr << "The person you are trying to contact is not wearing a headset." + return + + message_admins("[src.owner] has started answering [key_name(H)]'s Centcomm request.") + var/input = input(src.owner, "Please enter a message to reply to [key_name(H)] via their headset.","Outgoing message from Centcom", "") + if(!input) + message_admins("[src.owner] decided not to answer [key_name(H)]'s Centcomm request.") + return + + src.owner << "You sent [input] to [H] via a secure channel." + log_admin("[src.owner] replied to [key_name(H)]'s Centcom message with the message [input].") + message_admins("[src.owner] replied to [key_name(H)]'s Centcom message with: \"[input]\"") + H << "You hear something crackle in your ears for a moment before a voice speaks. \"Please stand by for a message from Central Command. Message as follows. [input]. Message ends.\"" + + else if(href_list["SyndicateReply"]) + var/mob/living/carbon/human/H = locate(href_list["SyndicateReply"]) + if(!istype(H)) + usr << "This can only be used on instances of type /mob/living/carbon/human." + return + if(!istype(H.ears, /obj/item/device/radio/headset)) + usr << "The person you are trying to contact is not wearing a headset." + return + + message_admins("[src.owner] has started answering [key_name(H)]'s syndicate request.") + var/input = input(src.owner, "Please enter a message to reply to [key_name(H)] via their headset.","Outgoing message from The Syndicate", "") + if(!input) + message_admins("[src.owner] decided not to answer [key_name(H)]'s syndicate request.") + return + + src.owner << "You sent [input] to [H] via a secure channel." + log_admin("[src.owner] replied to [key_name(H)]'s Syndicate message with the message [input].") + message_admins("[src.owner] replied to [key_name(H)]'s Syndicate message with: \"[input]\"") + H << "You hear something crackle in your ears for a moment before a voice speaks. \"Please stand by for a message from your benefactor. Message as follows, agent. [input]. Message ends.\"" + + else if(href_list["reject_custom_name"]) + if(!check_rights(R_ADMIN)) + return + var/obj/item/station_charter/charter = locate(href_list["reject_custom_name"]) + if(istype(charter)) + charter.reject_proposed(usr) + else if(href_list["jumpto"]) + if(!isobserver(usr) && !check_rights(R_ADMIN)) + return + + var/mob/M = locate(href_list["jumpto"]) + usr.client.jumptomob(M) + + else if(href_list["getmob"]) + if(!check_rights(R_ADMIN)) + return + + if(alert(usr, "Confirm?", "Message", "Yes", "No") != "Yes") + return + var/mob/M = locate(href_list["getmob"]) + usr.client.Getmob(M) + + else if(href_list["sendmob"]) + if(!check_rights(R_ADMIN)) + return + + var/mob/M = locate(href_list["sendmob"]) + usr.client.sendmob(M) + + else if(href_list["narrateto"]) + if(!check_rights(R_ADMIN)) + return + + var/mob/M = locate(href_list["narrateto"]) + usr.client.cmd_admin_direct_narrate(M) + + else if(href_list["subtlemessage"]) + if(!check_rights(R_ADMIN)) + return + + var/mob/M = locate(href_list["subtlemessage"]) + usr.client.cmd_admin_subtle_message(M) + + else if(href_list["traitor"]) + if(!check_rights(R_ADMIN)) + return + + if(!ticker || !ticker.mode) + alert("The game hasn't started yet!") + return + + var/mob/M = locate(href_list["traitor"]) + if(!ismob(M)) + usr << "This can only be used on instances of type /mob." + return + show_traitor_panel(M) + + else if(href_list["create_object"]) + if(!check_rights(R_SPAWN)) + return + return create_object(usr) + + else if(href_list["quick_create_object"]) + if(!check_rights(R_SPAWN)) + return + return quick_create_object(usr) + + else if(href_list["create_turf"]) + if(!check_rights(R_SPAWN)) + return + return create_turf(usr) + + else if(href_list["create_mob"]) + if(!check_rights(R_SPAWN)) + return + return create_mob(usr) + + else if(href_list["dupe_marked_datum"]) + if(!check_rights(R_SPAWN)) + return + return DuplicateObject(marked_datum, perfectcopy=1, newloc=get_turf(usr)) + + else if(href_list["object_list"]) //this is the laggiest thing ever + if(!check_rights(R_SPAWN)) + return + + var/atom/loc = usr.loc + + var/dirty_paths + if (istext(href_list["object_list"])) + dirty_paths = list(href_list["object_list"]) + else if (istype(href_list["object_list"], /list)) + dirty_paths = href_list["object_list"] + + var/paths = list() + + for(var/dirty_path in dirty_paths) + var/path = text2path(dirty_path) + if(!path) + continue + else if(!ispath(path, /obj) && !ispath(path, /turf) && !ispath(path, /mob)) + continue + paths += path + + if(!paths) + alert("The path list you sent is empty.") + return + if(length(paths) > 5) + alert("Select fewer object types, (max 5).") + return + + var/list/offset = splittext(href_list["offset"],",") + var/number = Clamp(text2num(href_list["object_count"]), 1, 100) + var/X = offset.len > 0 ? text2num(offset[1]) : 0 + var/Y = offset.len > 1 ? text2num(offset[2]) : 0 + var/Z = offset.len > 2 ? text2num(offset[3]) : 0 + var/tmp_dir = href_list["object_dir"] + var/obj_dir = tmp_dir ? text2num(tmp_dir) : 2 + if(!obj_dir || !(obj_dir in list(1,2,4,8,5,6,9,10))) + obj_dir = 2 + var/obj_name = sanitize(href_list["object_name"]) + + + var/atom/target //Where the object will be spawned + var/where = href_list["object_where"] + if (!( where in list("onfloor","inhand","inmarked") )) + where = "onfloor" + + + switch(where) + if("inhand") + if (!iscarbon(usr) && !iscyborg(usr)) + usr << "Can only spawn in hand when you're a carbon mob or cyborg." + where = "onfloor" + target = usr + + if("onfloor") + switch(href_list["offset_type"]) + if ("absolute") + target = locate(0 + X,0 + Y,0 + Z) + if ("relative") + target = locate(loc.x + X,loc.y + Y,loc.z + Z) + if("inmarked") + if(!marked_datum) + usr << "You don't have any object marked. Abandoning spawn." + return + else if(!istype(marked_datum,/atom)) + usr << "The object you have marked cannot be used as a target. Target must be of type /atom. Abandoning spawn." + return + else + target = marked_datum + + if(target) + for (var/path in paths) + for (var/i = 0; i < number; i++) + if(path in typesof(/turf)) + var/turf/O = target + var/turf/N = O.ChangeTurf(path) + if(N && obj_name) + N.name = obj_name + else + var/atom/O = new path(target) + if(O) + O.admin_spawned = TRUE + O.setDir(obj_dir) + if(obj_name) + O.name = obj_name + if(istype(O,/mob)) + var/mob/M = O + M.real_name = obj_name + if(where == "inhand" && isliving(usr) && istype(O, /obj/item)) + var/mob/living/L = usr + var/obj/item/I = O + L.put_in_hands(I) + if(iscyborg(L)) + var/mob/living/silicon/robot/R = L + if(R.module) + R.module.add_module(I) + R.activate_module(I) + + + if (number == 1) + log_admin("[key_name(usr)] created a [english_list(paths)]") + for(var/path in paths) + if(ispath(path, /mob)) + message_admins("[key_name_admin(usr)] created a [english_list(paths)]") + break + else + log_admin("[key_name(usr)] created [number]ea [english_list(paths)]") + for(var/path in paths) + if(ispath(path, /mob)) + message_admins("[key_name_admin(usr)] created [number]ea [english_list(paths)]") + break + return + + else if(href_list["secrets"]) + Secrets_topic(href_list["secrets"],href_list) + + else if(href_list["ac_view_wanted"]) //Admin newscaster Topic() stuff be here + src.admincaster_screen = 18 //The ac_ prefix before the hrefs stands for AdminCaster. + src.access_news_network() + + else if(href_list["ac_set_channel_name"]) + src.admincaster_feed_channel.channel_name = stripped_input(usr, "Provide a Feed Channel Name.", "Network Channel Handler", "") + while (findtext(src.admincaster_feed_channel.channel_name," ") == 1) + src.admincaster_feed_channel.channel_name = copytext(src.admincaster_feed_channel.channel_name,2,lentext(src.admincaster_feed_channel.channel_name)+1) + src.access_news_network() + + else if(href_list["ac_set_channel_lock"]) + src.admincaster_feed_channel.locked = !src.admincaster_feed_channel.locked + src.access_news_network() + + else if(href_list["ac_submit_new_channel"]) + var/check = 0 + for(var/datum/newscaster/feed_channel/FC in news_network.network_channels) + if(FC.channel_name == src.admincaster_feed_channel.channel_name) + check = 1 + break + if(src.admincaster_feed_channel.channel_name == "" || src.admincaster_feed_channel.channel_name == "\[REDACTED\]" || check ) + src.admincaster_screen=7 + else + var/choice = alert("Please confirm Feed channel creation.","Network Channel Handler","Confirm","Cancel") + if(choice=="Confirm") + news_network.CreateFeedChannel(src.admincaster_feed_channel.channel_name, src.admin_signature, src.admincaster_feed_channel.locked, 1) + feedback_inc("newscaster_channels",1) + log_admin("[key_name(usr)] created command feed channel: [src.admincaster_feed_channel.channel_name]!") + src.admincaster_screen=5 + src.access_news_network() + + else if(href_list["ac_set_channel_receiving"]) + var/list/available_channels = list() + for(var/datum/newscaster/feed_channel/F in news_network.network_channels) + available_channels += F.channel_name + src.admincaster_feed_channel.channel_name = adminscrub(input(usr, "Choose receiving Feed Channel.", "Network Channel Handler") in available_channels ) + src.access_news_network() + + else if(href_list["ac_set_new_message"]) + src.admincaster_feed_message.body = adminscrub(input(usr, "Write your Feed story.", "Network Channel Handler", "")) + while (findtext(src.admincaster_feed_message.returnBody(-1)," ") == 1) + src.admincaster_feed_message.body = copytext(src.admincaster_feed_message.returnBody(-1),2,lentext(src.admincaster_feed_message.returnBody(-1))+1) + src.access_news_network() + + else if(href_list["ac_submit_new_message"]) + if(src.admincaster_feed_message.returnBody(-1) =="" || src.admincaster_feed_message.returnBody(-1) =="\[REDACTED\]" || src.admincaster_feed_channel.channel_name == "" ) + src.admincaster_screen = 6 + else + news_network.SubmitArticle(src.admincaster_feed_message.returnBody(-1), src.admin_signature, src.admincaster_feed_channel.channel_name, null, 1) + feedback_inc("newscaster_stories",1) + src.admincaster_screen=4 + + for(var/obj/machinery/newscaster/NEWSCASTER in allCasters) + NEWSCASTER.newsAlert(src.admincaster_feed_channel.channel_name) + + log_admin("[key_name(usr)] submitted a feed story to channel: [src.admincaster_feed_channel.channel_name]!") + src.access_news_network() + + else if(href_list["ac_create_channel"]) + src.admincaster_screen=2 + src.access_news_network() + + else if(href_list["ac_create_feed_story"]) + src.admincaster_screen=3 + src.access_news_network() + + else if(href_list["ac_menu_censor_story"]) + src.admincaster_screen=10 + src.access_news_network() + + else if(href_list["ac_menu_censor_channel"]) + src.admincaster_screen=11 + src.access_news_network() + + else if(href_list["ac_menu_wanted"]) + var/already_wanted = 0 + if(news_network.wanted_issue.active) + already_wanted = 1 + + if(already_wanted) + src.admincaster_wanted_message.criminal = news_network.wanted_issue.criminal + src.admincaster_wanted_message.body = news_network.wanted_issue.body + src.admincaster_screen = 14 + src.access_news_network() + + else if(href_list["ac_set_wanted_name"]) + src.admincaster_wanted_message.criminal = adminscrub(input(usr, "Provide the name of the Wanted person.", "Network Security Handler", "")) + while(findtext(src.admincaster_wanted_message.criminal," ") == 1) + src.admincaster_wanted_message.criminal = copytext(admincaster_wanted_message.criminal,2,lentext(admincaster_wanted_message.criminal)+1) + src.access_news_network() + + else if(href_list["ac_set_wanted_desc"]) + src.admincaster_wanted_message.body = adminscrub(input(usr, "Provide the a description of the Wanted person and any other details you deem important.", "Network Security Handler", "")) + while (findtext(src.admincaster_wanted_message.body," ") == 1) + src.admincaster_wanted_message.body = copytext(src.admincaster_wanted_message.body,2,lentext(src.admincaster_wanted_message.body)+1) + src.access_news_network() + + else if(href_list["ac_submit_wanted"]) + var/input_param = text2num(href_list["ac_submit_wanted"]) + if(src.admincaster_wanted_message.criminal == "" || src.admincaster_wanted_message.body == "") + src.admincaster_screen = 16 + else + var/choice = alert("Please confirm Wanted Issue [(input_param==1) ? ("creation.") : ("edit.")]","Network Security Handler","Confirm","Cancel") + if(choice=="Confirm") + if(input_param==1) //If input_param == 1 we're submitting a new wanted issue. At 2 we're just editing an existing one. See the else below + news_network.submitWanted(admincaster_wanted_message.criminal, admincaster_wanted_message.body, admin_signature, null, 1, 1) + src.admincaster_screen = 15 + else + news_network.submitWanted(admincaster_wanted_message.criminal, admincaster_wanted_message.body, admin_signature) + src.admincaster_screen = 19 + log_admin("[key_name(usr)] issued a Station-wide Wanted Notification for [src.admincaster_wanted_message.criminal]!") + src.access_news_network() + + else if(href_list["ac_cancel_wanted"]) + var/choice = alert("Please confirm Wanted Issue removal.","Network Security Handler","Confirm","Cancel") + if(choice=="Confirm") + news_network.deleteWanted() + src.admincaster_screen=17 + src.access_news_network() + + else if(href_list["ac_censor_channel_author"]) + var/datum/newscaster/feed_channel/FC = locate(href_list["ac_censor_channel_author"]) + FC.toggleCensorAuthor() + src.access_news_network() + + else if(href_list["ac_censor_channel_story_author"]) + var/datum/newscaster/feed_message/MSG = locate(href_list["ac_censor_channel_story_author"]) + MSG.toggleCensorAuthor() + src.access_news_network() + + else if(href_list["ac_censor_channel_story_body"]) + var/datum/newscaster/feed_message/MSG = locate(href_list["ac_censor_channel_story_body"]) + MSG.toggleCensorBody() + src.access_news_network() + + else if(href_list["ac_pick_d_notice"]) + var/datum/newscaster/feed_channel/FC = locate(href_list["ac_pick_d_notice"]) + src.admincaster_feed_channel = FC + src.admincaster_screen=13 + src.access_news_network() + + else if(href_list["ac_toggle_d_notice"]) + var/datum/newscaster/feed_channel/FC = locate(href_list["ac_toggle_d_notice"]) + FC.toggleCensorDclass() + src.access_news_network() + + else if(href_list["ac_view"]) + src.admincaster_screen=1 + src.access_news_network() + + else if(href_list["ac_setScreen"]) //Brings us to the main menu and resets all fields~ + src.admincaster_screen = text2num(href_list["ac_setScreen"]) + if (src.admincaster_screen == 0) + if(src.admincaster_feed_channel) + src.admincaster_feed_channel = new /datum/newscaster/feed_channel + if(src.admincaster_feed_message) + src.admincaster_feed_message = new /datum/newscaster/feed_message + if(admincaster_wanted_message) + admincaster_wanted_message = new /datum/newscaster/wanted_message + src.access_news_network() + + else if(href_list["ac_show_channel"]) + var/datum/newscaster/feed_channel/FC = locate(href_list["ac_show_channel"]) + src.admincaster_feed_channel = FC + src.admincaster_screen = 9 + src.access_news_network() + + else if(href_list["ac_pick_censor_channel"]) + var/datum/newscaster/feed_channel/FC = locate(href_list["ac_pick_censor_channel"]) + src.admincaster_feed_channel = FC + src.admincaster_screen = 12 + src.access_news_network() + + else if(href_list["ac_refresh"]) + src.access_news_network() + + else if(href_list["ac_set_signature"]) + src.admin_signature = adminscrub(input(usr, "Provide your desired signature.", "Network Identity Handler", "")) + src.access_news_network() + + else if(href_list["ac_del_comment"]) + var/datum/newscaster/feed_comment/FC = locate(href_list["ac_del_comment"]) + var/datum/newscaster/feed_message/FM = locate(href_list["ac_del_comment_msg"]) + FM.comments -= FC + qdel(FC) + src.access_news_network() + + else if(href_list["ac_lock_comment"]) + var/datum/newscaster/feed_message/FM = locate(href_list["ac_lock_comment"]) + FM.locked ^= 1 + src.access_news_network() + + else if(href_list["memoeditlist"]) + var/sql_key = sanitizeSQL("[href_list["memoeditlist"]]") + var/DBQuery/query_memoedits = dbcon.NewQuery("SELECT edits FROM [format_table_name("memo")] WHERE (ckey = '[sql_key]')") + if(!query_memoedits.Execute()) + var/err = query_memoedits.ErrorMsg() + log_game("SQL ERROR obtaining edits from memo table. Error : \[[err]\]\n") + return + if(query_memoedits.NextRow()) + var/edit_log = query_memoedits.item[1] + usr << browse(edit_log,"window=memoeditlist") + + else if(href_list["check_antagonist"]) + if(!check_rights(R_ADMIN)) + return + usr.client.check_antagonists() + + else if(href_list["kick_all_from_lobby"]) + if(!check_rights(R_ADMIN)) + return + if(ticker && ticker.current_state == GAME_STATE_PLAYING) + var/afkonly = text2num(href_list["afkonly"]) + if(alert("Are you sure you want to kick all [afkonly ? "AFK" : ""] clients from the lobby??","Message","Yes","Cancel") != "Yes") + usr << "Kick clients from lobby aborted" + return + var/list/listkicked = kick_clients_in_lobby("You were kicked from the lobby by [usr.client.holder.fakekey ? "an Administrator" : "[usr.client.ckey]"].", afkonly) + + var/strkicked = "" + for(var/name in listkicked) + strkicked += "[name], " + message_admins("[key_name_admin(usr)] has kicked [afkonly ? "all AFK" : "all"] clients from the lobby. [length(listkicked)] clients kicked: [strkicked ? strkicked : "--"]") + log_admin("[key_name(usr)] has kicked [afkonly ? "all AFK" : "all"] clients from the lobby. [length(listkicked)] clients kicked: [strkicked ? strkicked : "--"]") + else + usr << "You may only use this when the game is running." + + else if(href_list["create_outfit"]) + if(!check_rights(R_ADMIN)) + return + + var/datum/outfit/O = new /datum/outfit + //swap this for js dropdowns sometime + O.name = href_list["outfit_name"] + O.uniform = text2path(href_list["outfit_uniform"]) + O.shoes = text2path(href_list["outfit_shoes"]) + O.gloves = text2path(href_list["outfit_gloves"]) + O.suit = text2path(href_list["outfit_suit"]) + O.head = text2path(href_list["outfit_head"]) + O.back = text2path(href_list["outfit_back"]) + O.mask = text2path(href_list["outfit_mask"]) + O.glasses = text2path(href_list["outfit_glasses"]) + O.r_hand = text2path(href_list["outfit_r_hand"]) + O.l_hand = text2path(href_list["outfit_l_hand"]) + O.suit_store = text2path(href_list["outfit_s_store"]) + O.l_pocket = text2path(href_list["outfit_l_pocket"]) + O.r_pocket = text2path(href_list["outfit_r_pocket"]) + O.id = text2path(href_list["outfit_id"]) + O.belt = text2path(href_list["outfit_belt"]) + O.ears = text2path(href_list["outfit_ears"]) + + custom_outfits.Add(O) + message_admins("[key_name(usr)] created \"[O.name]\" outfit!") + + else if(href_list["set_selfdestruct_code"]) + if(!check_rights(R_ADMIN)) + return + var/code = random_nukecode() + for(var/obj/machinery/nuclearbomb/selfdestruct/SD in nuke_list) + SD.r_code = code + message_admins("[key_name_admin(usr)] has set the self-destruct \ + code to \"[code]\".") + + else if(href_list["add_station_goal"]) + if(!check_rights(R_ADMIN)) + return + var/list/type_choices = typesof(/datum/station_goal) + var/picked = input("Choose goal type") in type_choices|null + if(!picked) + return + var/datum/station_goal/G = new picked() + if(picked == /datum/station_goal) + var/newname = input("Enter goal name:") as text|null + if(!newname) + return + G.name = newname + var/description = input("Enter centcom message contents:") as message|null + if(!description) + return + G.report_message = description + message_admins("[key_name(usr)] created \"[G.name]\" station goal.") + ticker.mode.station_goals += G + modify_goals() diff --git a/code/modules/admin/verbs/BrokenInhands.dm b/code/modules/admin/verbs/BrokenInhands.dm new file mode 100644 index 0000000..058257f --- /dev/null +++ b/code/modules/admin/verbs/BrokenInhands.dm @@ -0,0 +1,34 @@ +/proc/getbrokeninhands() + var/text + for(var/A in typesof(/obj/item)) + var/obj/item/O = new A( locate(1,1,1) ) + if(!O) continue + var/icon/IL = new(O.lefthand_file) + var/list/Lstates = IL.IconStates() + var/icon/IR = new(O.righthand_file) + var/list/Rstates = IR.IconStates() + var/icon/J = new(O.icon) + var/list/istates = J.IconStates() + if(!Lstates.Find(O.icon_state) && !Lstates.Find(O.item_state)) + if(O.icon_state) + text += "[O.type] WANTS IN LEFT HAND CALLED\n\"[O.icon_state]\".\n" + if(!Rstates.Find(O.icon_state) && !Rstates.Find(O.item_state)) + if(O.icon_state) + text += "[O.type] WANTS IN RIGHT HAND CALLED\n\"[O.icon_state]\".\n" + + + if(O.icon_state) + if(!istates.Find(O.icon_state)) + text += "[O.type] MISSING NORMAL ICON CALLED\n\"[O.icon_state]\" IN \"[O.icon]\"\n" + if(O.item_state) + if(!istates.Find(O.item_state)) + text += "[O.type] MISSING NORMAL ICON CALLED\n\"[O.item_state]\" IN \"[O.icon]\"\n" + text+="\n" + qdel(O) + if(text) + var/F = file("broken_icons.txt") + fdel(F) + F << text + world << "Completely successfully and written to [F]" + + diff --git a/code/modules/admin/verbs/SDQL2/SDQL_2.dm b/code/modules/admin/verbs/SDQL2/SDQL_2.dm new file mode 100644 index 0000000..4dc8490 --- /dev/null +++ b/code/modules/admin/verbs/SDQL2/SDQL_2.dm @@ -0,0 +1,501 @@ +// Code taken from /bay/station. +// Modified to allow consequtive querys in one invocation, terminated with ";" + +// Examples +/* + -- Will call the proc for all computers in the world, thats dir is 2. + CALL ex_act(1) ON /obj/machinery/computer IN world WHERE dir == 2 + -- Will open a window with a list of all the closets in the world, with a link to VV them. + SELECT /obj/structure/closet/secure_closet/security/cargo IN world WHERE icon_off == "secoff" + -- Will change all the tube lights to green + UPDATE /obj/machinery/light IN world SET color = "#0F0" WHERE icon_state == "tube1" + -- Will delete all pickaxes. "IN world" is not required. + DELETE /obj/item/weapon/pickaxe + -- Will flicker the lights once, then turn all mobs green. The semicolon is important to separate the consecutive querys, but is not required for standard one-query use + CALL flicker(1) ON /obj/machinery/light; UPDATE /mob SET color = "#00cc00" + + --You can use operators other than ==, such as >, <=, != and etc.. + +*/ + +/client/proc/SDQL2_query(query_text as message) + set category = "Debug" + if(!check_rights(R_DEBUG)) //Shouldn't happen... but just to be safe. + message_admins("ERROR: Non-admin [key_name(usr, usr.client)] attempted to execute a SDQL query!") + log_admin("Non-admin [usr.ckey]([usr]) attempted to execute a SDQL query!") + + if(!query_text || length(query_text) < 1) + return + + //world << query_text + + var/list/query_list = SDQL2_tokenize(query_text) + + if(!query_list || query_list.len < 1) + return + + var/list/querys = SDQL_parse(query_list) + + if(!querys || querys.len < 1) + return + + + var/query_log = "executed SDQL query: \"[query_text]\"." + message_admins("[key_name_admin(usr)] [query_log]") + query_log = "[usr.ckey]([usr]) [query_log]" + log_game(query_log) + NOTICE(query_log) + + + for(var/list/query_tree in querys) + var/list/from_objs = list() + var/list/select_types = list() + + switch(query_tree[1]) + if("explain") + SDQL_testout(query_tree["explain"]) + return + + if("call") + if("on" in query_tree) + select_types = query_tree["on"] + else + return + + if("select", "delete", "update") + select_types = query_tree[query_tree[1]] + + from_objs = SDQL_from_objs(query_tree["from"]) + + var/list/objs = list() + + for(var/type in select_types) + var/char = copytext(type, 1, 2) + + if(char == "/" || char == "*") + for(var/from in from_objs) + objs += SDQL_get_all(type, from) + CHECK_TICK + + else if(char == "'" || char == "\"") + objs += locate(copytext(type, 2, length(type))) + + if("where" in query_tree) + var/objs_temp = objs + objs = list() + for(var/datum/d in objs_temp) + if(SDQL_expression(d, query_tree["where"])) + objs += d + CHECK_TICK + + switch(query_tree[1]) + if("call") + var/list/call_list = query_tree["call"] + var/list/args_list = query_tree["args"] + + for(var/datum/d in objs) + for(var/v in call_list) + SDQL_callproc(d, v, args_list) + CHECK_TICK + + if("delete") + for(var/datum/d in objs) + qdel(d) + CHECK_TICK + + if("select") + var/text = "" + for(var/datum/t in objs) + text += "\ref[t]" + if(istype(t, /atom)) + var/atom/a = t + + if(a.x) + text += ": [t] at ([a.x], [a.y], [a.z])
    " + + else if(a.loc && a.loc.x) + text += ": [t] in [a.loc] at ([a.loc.x], [a.loc.y], [a.loc.z])
    " + + else + text += ": [t]
    " + + else + text += ": [t]
    " + + usr << browse(text, "window=SDQL-result") + + if("update") + if("set" in query_tree) + var/list/set_list = query_tree["set"] + for(var/datum/d in objs) + var/list/vals = list() + for(var/v in set_list) + if(v in d.vars) + vals += v + vals[v] = SDQL_expression(d, set_list[v]) + + if(isturf(d)) + for(var/v in vals) + if(v == "x" || v == "y" || v == "z") + continue + + d.vars[v] = vals[v] + + else + for(var/v in vals) + d.vars[v] = vals[v] + CHECK_TICK + + + + +/proc/SDQL_callproc(thing, procname, args_list) + set waitfor = 0 + if(hascall(thing, procname)) + call(thing, procname)(arglist(args_list)) + +/proc/SDQL_parse(list/query_list) + var/datum/SDQL_parser/parser = new() + var/list/querys = list() + var/list/query_tree = list() + var/pos = 1 + var/querys_pos = 1 + var/do_parse = 0 + + for(var/val in query_list) + if(val == ";") + do_parse = 1 + else if(pos >= query_list.len) + query_tree += val + do_parse = 1 + + if(do_parse) + parser.query = query_tree + var/list/parsed_tree + parsed_tree = parser.parse() + if(parsed_tree.len > 0) + querys.len = querys_pos + querys[querys_pos] = parsed_tree + querys_pos++ + else //There was an error so don't run anything, and tell the user which query has errored. + usr << "Parsing error on [querys_pos]\th query. Nothing was executed." + return list() + query_tree = list() + do_parse = 0 + else + query_tree += val + pos++ + + qdel(parser) + + return querys + + + +/proc/SDQL_testout(list/query_tree, indent = 0) + var/spaces = "" + for(var/s = 0, s < indent, s++) + spaces += " " + + for(var/item in query_tree) + if(istype(item, /list)) + usr << "[spaces](" + SDQL_testout(item, indent + 1) + usr << "[spaces])" + + else + usr << "[spaces][item]" + + if(!isnum(item) && query_tree[item]) + + if(istype(query_tree[item], /list)) + usr << "[spaces] (" + SDQL_testout(query_tree[item], indent + 2) + usr << "[spaces] )" + + else + usr << "[spaces] [query_tree[item]]" + + + +/proc/SDQL_from_objs(list/tree) + if("world" in tree) + return list(world) + + var/list/out = list() + + for(var/type in tree) + var/char = copytext(type, 1, 2) + + if(char == "/") + out += SDQL_get_all(type, world) + + else if(char == "'" || char == "\"") + out += locate(copytext(type, 2, length(type))) + + return out + + +/proc/SDQL_get_all(type, location) + var/list/out = list() + + if(type == "*") + for(var/datum/d in location) + out += d + + return out + + type = text2path(type) + + if(ispath(type, /mob)) + for(var/mob/d in location) + if(istype(d, type)) + out += d + CHECK_TICK + + else if(ispath(type, /turf)) + for(var/turf/d in location) + if(istype(d, type)) + out += d + CHECK_TICK + + else if(ispath(type, /obj)) + for(var/obj/d in location) + if(istype(d, type)) + out += d + CHECK_TICK + + else if(ispath(type, /area)) + for(var/area/d in location) + if(istype(d, type)) + out += d + CHECK_TICK + + else if(ispath(type, /atom)) + for(var/atom/d in location) + if(istype(d, type)) + out += d + CHECK_TICK + + else + for(var/datum/d in location) + if(istype(d, type)) + out += d + CHECK_TICK + + return out + + +/proc/SDQL_expression(datum/object, list/expression, start = 1) + var/result = 0 + var/val + + for(var/i = start, i <= expression.len, i++) + var/op = "" + + if(i > start) + op = expression[i] + i++ + + var/list/ret = SDQL_value(object, expression, i) + val = ret["val"] + i = ret["i"] + + if(op != "") + switch(op) + if("+") + result += val + if("-") + result -= val + if("*") + result *= val + if("/") + result /= val + if("&") + result &= val + if("|") + result |= val + if("^") + result ^= val + if("=", "==") + result = (result == val) + if("!=", "<>") + result = (result != val) + if("<") + result = (result < val) + if("<=") + result = (result <= val) + if(">") + result = (result > val) + if(">=") + result = (result >= val) + if("and", "&&") + result = (result && val) + if("or", "||") + result = (result || val) + else + usr << "SDQL2: Unknown op [op]" + result = null + else + result = val + + return result + +/proc/SDQL_value(datum/object, list/expression, start = 1) + var/i = start + var/val = null + + if(i > expression.len) + return list("val" = null, "i" = i) + + if(istype(expression[i], /list)) + val = SDQL_expression(object, expression[i]) + + else if(expression[i] == "!") + var/list/ret = SDQL_value(object, expression, i + 1) + val = !ret["val"] + i = ret["i"] + + else if(expression[i] == "~") + var/list/ret = SDQL_value(object, expression, i + 1) + val = ~ret["val"] + i = ret["i"] + + else if(expression[i] == "-") + var/list/ret = SDQL_value(object, expression, i + 1) + val = -ret["val"] + i = ret["i"] + + else if(expression[i] == "null") + val = null + + else if(isnum(expression[i])) + val = expression[i] + + else if(copytext(expression[i], 1, 2) in list("'", "\"")) + val = copytext(expression[i], 2, length(expression[i])) + + else + val = SDQL_var(object, expression, i) + i = expression.len + + return list("val" = val, "i" = i) + +/proc/SDQL_var(datum/object, list/expression, start = 1) + + if(expression[start] in object.vars) + + if(start < expression.len && expression[start + 1] == ".") + return SDQL_var(object.vars[expression[start]], expression[start + 2]) + + else + return object.vars[expression[start]] + + else + return null + +/proc/SDQL2_tokenize(query_text) + + var/list/whitespace = list(" ", "\n", "\t") + var/list/single = list("(", ")", ",", "+", "-", ".", ";") + var/list/multi = list( + "=" = list("", "="), + "<" = list("", "=", ">"), + ">" = list("", "="), + "!" = list("", "=")) + + var/word = "" + var/list/query_list = list() + var/len = length(query_text) + + for(var/i = 1, i <= len, i++) + var/char = copytext(query_text, i, i + 1) + + if(char in whitespace) + if(word != "") + query_list += word + word = "" + + else if(char in single) + if(word != "") + query_list += word + word = "" + + query_list += char + + else if(char in multi) + if(word != "") + query_list += word + word = "" + + var/char2 = copytext(query_text, i + 1, i + 2) + + if(char2 in multi[char]) + query_list += "[char][char2]" + i++ + + else + query_list += char + + else if(char == "'") + if(word != "") + usr << "\red SDQL2: You have an error in your SDQL syntax, unexpected ' in query: \"[query_text]\" following \"[word]\". Please check your syntax, and try again." + return null + + word = "'" + + for(i++, i <= len, i++) + char = copytext(query_text, i, i + 1) + + if(char == "'") + if(copytext(query_text, i + 1, i + 2) == "'") + word += "'" + i++ + + else + break + + else + word += char + + if(i > len) + usr << "\red SDQL2: You have an error in your SDQL syntax, unmatched ' in query: \"[query_text]\". Please check your syntax, and try again." + return null + + query_list += "[word]'" + word = "" + + else if(char == "\"") + if(word != "") + usr << "\red SDQL2: You have an error in your SDQL syntax, unexpected \" in query: \"[query_text]\" following \"[word]\". Please check your syntax, and try again." + return null + + word = "\"" + + for(i++, i <= len, i++) + char = copytext(query_text, i, i + 1) + + if(char == "\"") + if(copytext(query_text, i + 1, i + 2) == "'") + word += "\"" + i++ + + else + break + + else + word += char + + if(i > len) + usr << "\red SDQL2: You have an error in your SDQL syntax, unmatched \" in query: \"[query_text]\". Please check your syntax, and try again." + return null + + query_list += "[word]\"" + word = "" + + else + word += char + + if(word != "") + query_list += word + return query_list diff --git a/code/modules/admin/verbs/SDQL2/SDQL_2_parser.dm b/code/modules/admin/verbs/SDQL2/SDQL_2_parser.dm new file mode 100644 index 0000000..3dbe452 --- /dev/null +++ b/code/modules/admin/verbs/SDQL2/SDQL_2_parser.dm @@ -0,0 +1,543 @@ +//I'm pretty sure that this is a recursive [s]descent[/s] ascent parser. + + +//Spec + +////////// +// +// query : select_query | delete_query | update_query | call_query | explain +// explain : 'EXPLAIN' query +// +// select_query : 'SELECT' select_list [('FROM' | 'IN') from_list] ['WHERE' bool_expression] +// delete_query : 'DELETE' select_list [('FROM' | 'IN') from_list] ['WHERE' bool_expression] +// update_query : 'UPDATE' select_list [('FROM' | 'IN') from_list] 'SET' assignments ['WHERE' bool_expression] +// call_query : 'CALL' call_function ['ON' select_list [('FROM' | 'IN') from_list] ['WHERE' bool_expression]] +// +// select_list : select_item [',' select_list] +// select_item : '*' | select_function | object_type +// select_function : count_function +// count_function : 'COUNT' '(' '*' ')' | 'COUNT' '(' object_types ')' +// +// from_list : from_item [',' from_list] +// from_item : 'world' | object_type +// +// call_function : ['(' [arguments] ')'] +// arguments : expression [',' arguments] +// +// object_type : | string +// +// assignments : assignment, [',' assignments] +// assignment : '=' expression +// variable : | '.' variable +// +// bool_expression : expression comparitor expression [bool_operator bool_expression] +// expression : ( unary_expression | '(' expression ')' | value ) [binary_operator expression] +// unary_expression : unary_operator ( unary_expression | value | '(' expression ')' ) +// comparitor : '=' | '==' | '!=' | '<>' | '<' | '<=' | '>' | '>=' +// value : variable | string | number | 'null' +// unary_operator : '!' | '-' | '~' +// binary_operator : comparitor | '+' | '-' | '/' | '*' | '&' | '|' | '^' +// bool_operator : 'AND' | '&&' | 'OR' | '||' +// +// string : ''' ''' | '"' '"' +// number : +// +////////// + +/datum/SDQL_parser + var/query_type + var/error = 0 + + var/list/query + var/list/tree + + var/list/select_functions = list("count") + var/list/boolean_operators = list("and", "or", "&&", "||") + var/list/unary_operators = list("!", "-", "~") + var/list/binary_operators = list("+", "-", "/", "*", "&", "|", "^") + var/list/comparitors = list("=", "==", "!=", "<>", "<", "<=", ">", ">=") + + + +/datum/SDQL_parser/New(query_list) + query = query_list + + + +/datum/SDQL_parser/proc/parse_error(error_message) + error = 1 + usr << "SQDL2 Parsing Error: [error_message]" + return query.len + 1 + +/datum/SDQL_parser/proc/parse() + tree = list() + query(1, tree) + + if(error) + return list() + else + return tree + +/datum/SDQL_parser/proc/token(i) + if(i <= query.len) + return query[i] + + else + return null + +/datum/SDQL_parser/proc/tokens(i, num) + if(i + num <= query.len) + return query.Copy(i, i + num) + + else + return null + +/datum/SDQL_parser/proc/tokenl(i) + return lowertext(token(i)) + + + +/datum/SDQL_parser/proc + +//query: select_query | delete_query | update_query + query(i, list/node) + query_type = tokenl(i) + + switch(query_type) + if("select") + select_query(i, node) + + if("delete") + delete_query(i, node) + + if("update") + update_query(i, node) + + if("call") + call_query(i, node) + + if("explain") + node += "explain" + node["explain"] = list() + query(i + 1, node["explain"]) + + +// select_query: 'SELECT' select_list [('FROM' | 'IN') from_list] ['WHERE' bool_expression] + select_query(i, list/node) + var/list/select = list() + i = select_list(i + 1, select) + + node += "select" + node["select"] = select + + var/list/from = list() + if(tokenl(i) in list("from", "in")) + i = from_list(i + 1, from) + else + from += "world" + + node += "from" + node["from"] = from + + if(tokenl(i) == "where") + var/list/where = list() + i = bool_expression(i + 1, where) + + node += "where" + node["where"] = where + + return i + + +//delete_query: 'DELETE' select_list [('FROM' | 'IN') from_list] ['WHERE' bool_expression] + delete_query(i, list/node) + var/list/select = list() + i = select_list(i + 1, select) + + node += "delete" + node["delete"] = select + + var/list/from = list() + if(tokenl(i) in list("from", "in")) + i = from_list(i + 1, from) + else + from += "world" + + node += "from" + node["from"] = from + + if(tokenl(i) == "where") + var/list/where = list() + i = bool_expression(i + 1, where) + + node += "where" + node["where"] = where + + return i + + +//update_query: 'UPDATE' select_list [('FROM' | 'IN') from_list] 'SET' assignments ['WHERE' bool_expression] + update_query(i, list/node) + var/list/select = list() + i = select_list(i + 1, select) + + node += "update" + node["update"] = select + + var/list/from = list() + if(tokenl(i) in list("from", "in")) + i = from_list(i + 1, from) + else + from += "world" + + node += "from" + node["from"] = from + + if(tokenl(i) != "set") + i = parse_error("UPDATE has misplaced SET") + + var/list/set_assignments = list() + i = assignments(i + 1, set_assignments) + + node += "set" + node["set"] = set_assignments + + if(tokenl(i) == "where") + var/list/where = list() + i = bool_expression(i + 1, where) + + node += "where" + node["where"] = where + + return i + + +//call_query: 'CALL' call_function ['ON' select_list [('FROM' | 'IN') from_list] ['WHERE' bool_expression]] + call_query(i, list/node) + var/list/func = list() + var/list/arguments = list() + i = call_function(i + 1, func, arguments) + + node += "call" + node["call"] = func + node["args"] = arguments + + if(tokenl(i) != "on") + return i + + var/list/select = list() + i = select_list(i + 1, select) + + node += "on" + node["on"] = select + + var/list/from = list() + if(tokenl(i) in list("from", "in")) + i = from_list(i + 1, from) + else + from += "world" + + node += "from" + node["from"] = from + + if(tokenl(i) == "where") + var/list/where = list() + i = bool_expression(i + 1, where) + + node += "where" + node["where"] = where + + return i + + +//select_list: select_item [',' select_list] + select_list(i, list/node) + i = select_item(i, node) + + if(token(i) == ",") + i = select_list(i + 1, node) + + return i + + +//from_list: from_item [',' from_list] + from_list(i, list/node) + i = from_item(i, node) + + if(token(i) == ",") + i = from_list(i + 1, node) + + return i + + +//assignments: assignment, [',' assignments] + assignments(i, list/node) + i = assignment(i, node) + + if(token(i) == ",") + i = assignments(i + 1, node) + + return i + + +//select_item: '*' | select_function | object_type + select_item(i, list/node) + + if(token(i) == "*") + node += "*" + i++ + + else if(tokenl(i) in select_functions) + i = select_function(i, node) + + else + i = object_type(i, node) + + return i + + +//from_item: 'world' | object_type + from_item(i, list/node) + + if(token(i) == "world") + node += "world" + i++ + + else + i = object_type(i, node) + + return i + + +//bool_expression: expression [bool_operator bool_expression] + bool_expression(i, list/node) + + var/list/bool = list() + i = expression(i, bool) + + node[++node.len] = bool + + if(tokenl(i) in boolean_operators) + i = bool_operator(i, node) + i = bool_expression(i, node) + + return i + + +//assignment: '=' expression + assignment(i, list/node) + + node += token(i) + + if(token(i + 1) == "=") + var/varname = token(i) + node[varname] = list() + + i = expression(i + 2, node[varname]) + + else + parse_error("Assignment expected, but no = found") + + return i + + +//variable: | '.' variable + variable(i, list/node) + var/list/L = list(token(i)) + node[++node.len] = L + + if(token(i + 1) == ".") + L += "." + i = variable(i + 2, L) + + else + i++ + + return i + + +//object_type: | string + object_type(i, list/node) + + if(copytext(token(i), 1, 2) == "/") + node += token(i) + + else + i = string(i, node) + + return i + 1 + + +//comparitor: '=' | '==' | '!=' | '<>' | '<' | '<=' | '>' | '>=' + comparitor(i, list/node) + + if(token(i) in list("=", "==", "!=", "<>", "<", "<=", ">", ">=")) + node += token(i) + + else + parse_error("Unknown comparitor [token(i)]") + + return i + 1 + + +//bool_operator: 'AND' | '&&' | 'OR' | '||' + bool_operator(i, list/node) + + if(tokenl(i) in list("and", "or", "&&", "||")) + node += token(i) + + else + parse_error("Unknown comparitor [token(i)]") + + return i + 1 + + +//string: ''' ''' | '"' '"' + string(i, list/node) + + if(copytext(token(i), 1, 2) in list("'", "\"")) + node += copytext(token(i),2,-1) + + else + parse_error("Expected string but found '[token(i)]'") + + return i + 1 + + +//call_function: ['(' [arguments] ')'] + call_function(i, list/node, list/arguments) + if(length(tokenl(i))) + node += token(i++) + if(token(i) != "(") + parse_error("Expected ( but found '[token(i)]'") + else if(token(i + 1) != ")") + do + i = expression(i + 1, arguments) + if(token(i) == ",") + continue + while(token(i) && token(i) != ")") + else + i++ + else + parse_error("Expected a function but found nothing") + return i + 1 + + +//select_function: count_function + select_function(i, list/node) + + parse_error("Sorry, function calls aren't available yet") + + return i + + +//expression: ( unary_expression | '(' expression ')' | value ) [binary_operator expression] + expression(i, list/node) + + if(token(i) in unary_operators) + i = unary_expression(i, node) + + else if(token(i) == "(") + var/list/expr = list() + + i = expression(i + 1, expr) + + if(token(i) != ")") + parse_error("Missing ) at end of expression.") + + else + i++ + + node[++node.len] = expr + + else + i = value(i, node) + + if(token(i) in binary_operators) + i = binary_operator(i, node) + i = expression(i, node) + + else if(token(i) in comparitors) + i = binary_operator(i, node) + + var/list/rhs = list() + i = expression(i, rhs) + + node[++node.len] = rhs + + + return i + + +//unary_expression: unary_operator ( unary_expression | value | '(' expression ')' ) + unary_expression(i, list/node) + + if(token(i) in unary_operators) + var/list/unary_exp = list() + + unary_exp += token(i) + i++ + + if(token(i) in unary_operators) + i = unary_expression(i, unary_exp) + + else if(token(i) == "(") + var/list/expr = list() + + i = expression(i + 1, expr) + + if(token(i) != ")") + parse_error("Missing ) at end of expression.") + + else + i++ + + unary_exp[++unary_exp.len] = expr + + else + i = value(i, unary_exp) + + node[++node.len] = unary_exp + + + else + parse_error("Expected unary operator but found '[token(i)]'") + + return i + + +//binary_operator: comparitor | '+' | '-' | '/' | '*' | '&' | '|' | '^' + binary_operator(i, list/node) + + if(token(i) in (binary_operators + comparitors)) + node += token(i) + + else + parse_error("Unknown binary operator [token(i)]") + + return i + 1 + + +//value: variable | string | number | 'null' + value(i, list/node) + + if(token(i) == "null") + node += "null" + i++ + + else if(isnum(text2num(token(i)))) + node += text2num(token(i)) + i++ + + else if(copytext(token(i), 1, 2) in list("'", "\"")) + i = string(i, node) + + else + i = variable(i, node) + + return i + + + + +/*EXPLAIN SELECT * WHERE 42 = 6 * 9 OR val = - 5 == 7*/ \ No newline at end of file diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm new file mode 100644 index 0000000..bdc2eed --- /dev/null +++ b/code/modules/admin/verbs/adminhelp.dm @@ -0,0 +1,187 @@ +/proc/keywords_lookup(msg,irc) + + //This is a list of words which are ignored by the parser when comparing message contents for names. MUST BE IN LOWER CASE! + var/list/adminhelp_ignored_words = list("unknown","the","a","an","of","monkey","alien","as", "i") + + //explode the input msg into a list + var/list/msglist = splittext(msg, " ") + + //generate keywords lookup + var/list/surnames = list() + var/list/forenames = list() + var/list/ckeys = list() + var/founds = "" + for(var/mob/M in mob_list) + var/list/indexing = list(M.real_name, M.name) + if(M.mind) + indexing += M.mind.name + + for(var/string in indexing) + var/list/L = splittext(string, " ") + var/surname_found = 0 + //surnames + for(var/i=L.len, i>=1, i--) + var/word = ckey(L[i]) + if(word) + surnames[word] = M + surname_found = i + break + //forenames + for(var/i=1, i(?|F)
    " + continue + msg += "[original_word] " + if(irc) + if(founds == "") + return "Search Failed" + else + return founds + + return msg + + +/client/var/adminhelptimerid = 0 + +/client/proc/giveadminhelpverb() + src.verbs |= /client/verb/adminhelp + adminhelptimerid = 0 + +/client/verb/adminhelp(msg as text) + set category = "Admin" + set name = "Adminhelp" + + if(say_disabled) //This is here to try to identify lag problems + usr << "Speech is currently admin-disabled." + return + + //handle muting and automuting + if(prefs.muted & MUTE_ADMINHELP) + src << "Error: Admin-PM: You cannot send adminhelps (Muted)." + return + if(src.handle_spam_prevention(msg,MUTE_ADMINHELP)) + return + + //clean the input msg + if(!msg) + return + msg = sanitize(copytext(msg,1,MAX_MESSAGE_LEN)) + if(!msg) return + var/original_msg = msg + + //remove our adminhelp verb temporarily to prevent spamming of admins. + src.verbs -= /client/verb/adminhelp + adminhelptimerid = addtimer(src, "giveadminhelpverb", 1200, FALSE) //2 minute cooldown of admin helps + + msg = keywords_lookup(msg) + + if(!mob) + return //this doesn't happen + + var/ref_mob = "\ref[mob]" + var/ref_client = "\ref[src]" + msg = "HELP: [key_name(src)] (?) (PP) (VV) (SM) (FLW) (TP) (REJT): [msg]" + + //send this msg to all admins + + for(var/client/X in admins) + if(X.prefs.toggles & SOUND_ADMINHELP) + X << 'sound/effects/adminhelp.ogg' + window_flash(X) + X << msg + + + //show it to the person adminhelping too + src << "PM to-Admins: [original_msg]" + + //send it to irc if nobody is on and tell us how many were on + var/admin_number_present = send2irc_adminless_only(ckey,original_msg) + log_admin("HELP: [key_name(src)]: [original_msg] - heard by [admin_number_present] non-AFK admins who have +BAN.") + feedback_add_details("admin_verb","AH") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + return + +/proc/get_admin_counts(requiredflags = R_BAN) + . = list("total" = 0, "noflags" = 0, "afk" = 0, "stealth" = 0, "present" = 0) + for(var/client/X in admins) + .["total"]++ + if(requiredflags != 0 && !check_rights_for(X, requiredflags)) + .["noflags"]++ + else if(X.is_afk()) + .["afk"]++ + else if(X.holder.fakekey) + .["stealth"]++ + else + .["present"]++ + +/proc/send2irc_adminless_only(source, msg, requiredflags = R_BAN) + var/list/adm = get_admin_counts(requiredflags) + . = adm["present"] + if(. <= 0) + var/final = "" + if(!adm["afk"] && !adm["stealth"] && !adm["noflags"]) + final = "[msg] - No admins online" + else + final = "[msg] - All admins AFK ([adm["afk"]]/[adm["total"]]), stealthminned ([adm["stealth"]]/[adm["total"]]), or lack[rights2text(requiredflags, " ")] ([adm["noflags"]]/[adm["total"]])" + send2irc(source,final) + send2otherserver(source,final) + + +/proc/send2irc(msg,msg2) + if(config.useircbot) + shell("python nudge.py [msg] [msg2]") + return + +/proc/send2otherserver(source,msg,type = "Ahelp") + if(global.cross_allowed) + var/list/message = list() + message["message_sender"] = source + message["message"] = msg + message["source"] = "([config.cross_name])" + message["key"] = global.comms_key + message["crossmessage"] = type + + world.Export("[global.cross_address]?[list2params(message)]") + + +/proc/ircadminwho() + var/msg = "Admins: " + for(var/client/C in admins) + msg += "[C] " + + if(C.holder.fakekey) + msg += "(Stealth)" + + if(C.is_afk()) + msg += "(AFK)" + msg += ", " + + return msg \ No newline at end of file diff --git a/code/modules/admin/verbs/adminjump.dm b/code/modules/admin/verbs/adminjump.dm new file mode 100644 index 0000000..46dc316 --- /dev/null +++ b/code/modules/admin/verbs/adminjump.dm @@ -0,0 +1,152 @@ +/client/proc/jumptoarea(area/A in sortedAreas) + set name = "Jump to Area" + set desc = "Area to jump to" + set category = "Admin" + if(!src.holder) + src << "Only administrators may use this command." + return + + if(!A) + return + + var/list/turfs = list() + for(var/area/Ar in A.related) + for(var/turf/T in Ar) + if(T.density) + continue + turfs.Add(T) + + var/turf/T = safepick(turfs) + if(!T) + src << "Nowhere to jump to!" + return + usr.forceMove(T) + log_admin("[key_name(usr)] jumped to [A]") + message_admins("[key_name_admin(usr)] jumped to [A]") + feedback_add_details("admin_verb","JA") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/jumptoturf(turf/T in world) + set name = "Jump to Turf" + set category = "Admin" + if(!src.holder) + src << "Only administrators may use this command." + return + + log_admin("[key_name(usr)] jumped to [T.x],[T.y],[T.z] in [T.loc]") + message_admins("[key_name_admin(usr)] jumped to [T.x],[T.y],[T.z] in [T.loc]") + usr.loc = T + feedback_add_details("admin_verb","JT") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + return + +/client/proc/jumptomob(mob/M in mob_list) + set category = "Admin" + set name = "Jump to Mob" + + if(!src.holder) + src << "Only administrators may use this command." + return + + log_admin("[key_name(usr)] jumped to [key_name(M)]") + message_admins("[key_name_admin(usr)] jumped to [key_name_admin(M)]") + if(src.mob) + var/mob/A = src.mob + var/turf/T = get_turf(M) + if(T && isturf(T)) + feedback_add_details("admin_verb","JM") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + A.forceMove(M.loc) + else + A << "This mob is not located in the game world." + +/client/proc/jumptocoord(tx as num, ty as num, tz as num) + set category = "Admin" + set name = "Jump to Coordinate" + + if (!holder) + src << "Only administrators may use this command." + return + + if(src.mob) + var/mob/A = src.mob + A.x = tx + A.y = ty + A.z = tz + feedback_add_details("admin_verb","JC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + message_admins("[key_name_admin(usr)] jumped to coordinates [tx], [ty], [tz]") + +/client/proc/jumptokey() + set category = "Admin" + set name = "Jump to Key" + + if(!src.holder) + src << "Only administrators may use this command." + return + + var/list/keys = list() + for(var/mob/M in player_list) + keys += M.client + var/selection = input("Please, select a player!", "Admin Jumping", null, null) as null|anything in sortKey(keys) + if(!selection) + src << "No keys found." + return + var/mob/M = selection:mob + log_admin("[key_name(usr)] jumped to [key_name(M)]") + message_admins("[key_name_admin(usr)] jumped to [key_name_admin(M)]") + + usr.forceMove(M.loc) + + feedback_add_details("admin_verb","JK") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/Getmob(mob/M in mob_list) + set category = "Admin" + set name = "Get Mob" + set desc = "Mob to teleport" + if(!src.holder) + src << "Only administrators may use this command." + return + + log_admin("[key_name(usr)] teleported [key_name(M)]") + message_admins("[key_name_admin(usr)] teleported [key_name_admin(M)]") + M.forceMove(get_turf(usr)) + feedback_add_details("admin_verb","GM") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/Getkey() + set category = "Admin" + set name = "Get Key" + set desc = "Key to teleport" + + if(!src.holder) + src << "Only administrators may use this command." + return + + var/list/keys = list() + for(var/mob/M in player_list) + keys += M.client + var/selection = input("Please, select a player!", "Admin Jumping", null, null) as null|anything in sortKey(keys) + if(!selection) + return + var/mob/M = selection:mob + + if(!M) + return + log_admin("[key_name(usr)] teleported [key_name(M)]") + message_admins("[key_name_admin(usr)] teleported [key_name(M)]") + if(M) + M.forceMove(get_turf(usr)) + usr.loc = M.loc + feedback_add_details("admin_verb","GK") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/sendmob(mob/M in sortmobs()) + set category = "Admin" + set name = "Send Mob" + if(!src.holder) + src << "Only administrators may use this command." + return + var/area/A = input(usr, "Pick an area.", "Pick an area") in sortedAreas|null + if(A && istype(A)) + if(M.forceMove(safepick(get_area_turfs(A)))) + + log_admin("[key_name(usr)] teleported [key_name(M)] to [A]") + message_admins("[key_name_admin(usr)] teleported [key_name_admin(M)] to [A]") + else + src << "Failed to move mob to a valid location." + feedback_add_details("admin_verb","SMOB") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! diff --git a/code/modules/admin/verbs/adminpm.dm b/code/modules/admin/verbs/adminpm.dm new file mode 100644 index 0000000..354d602 --- /dev/null +++ b/code/modules/admin/verbs/adminpm.dm @@ -0,0 +1,235 @@ +#define IRCREPLYCOUNT 2 + + +//allows right clicking mobs to send an admin PM to their client, forwards the selected mob's client to cmd_admin_pm +/client/proc/cmd_admin_pm_context(mob/M in mob_list) + set category = null + set name = "Admin PM Mob" + if(!holder) + src << "Error: Admin-PM-Context: Only administrators may use this command." + return + if( !ismob(M) || !M.client ) + return + cmd_admin_pm(M.client,null) + feedback_add_details("admin_verb","APMM") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +//shows a list of clients we could send PMs to, then forwards our choice to cmd_admin_pm +/client/proc/cmd_admin_pm_panel() + set category = "Admin" + set name = "Admin PM" + if(!holder) + src << "Error: Admin-PM-Panel: Only administrators may use this command." + return + var/list/client/targets[0] + for(var/client/T) + if(T.mob) + if(isnewplayer(T.mob)) + targets["(New Player) - [T]"] = T + else if(isobserver(T.mob)) + targets["[T.mob.name](Ghost) - [T]"] = T + else + targets["[T.mob.real_name](as [T.mob.name]) - [T]"] = T + else + targets["(No Mob) - [T]"] = T + var/target = input(src,"To whom shall we send a message?","Admin PM",null) as null|anything in sortList(targets) + cmd_admin_pm(targets[target],null) + feedback_add_details("admin_verb","APM") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/cmd_ahelp_reply(whom) + if(prefs.muted & MUTE_ADMINHELP) + src << "Error: Admin-PM: You are unable to use admin PM-s (muted)." + return + var/client/C + if(istext(whom)) + if(cmptext(copytext(whom,1,2),"@")) + whom = findStealthKey(whom) + C = directory[whom] + else if(istype(whom,/client)) + C = whom + if(!C) + if(holder) + src << "Error: Admin-PM: Client not found." + return + message_admins("[key_name_admin(src)] has started replying to [key_name(C, 0, 0)]'s admin help.") + var/msg = input(src,"Message:", "Private message to [key_name(C, 0, 0)]") as text|null + if (!msg) + message_admins("[key_name_admin(src)] has cancelled their reply to [key_name(C, 0, 0)]'s admin help.") + return + cmd_admin_pm(whom, msg) + +//takes input from cmd_admin_pm_context, cmd_admin_pm_panel or /client/Topic and sends them a PM. +//Fetching a message if needed. src is the sender and C is the target client +/client/proc/cmd_admin_pm(whom, msg) + if(prefs.muted & MUTE_ADMINHELP) + src << "Error: Admin-PM: You are unable to use admin PM-s (muted)." + return + + var/client/C + var/irc = 0 + if(istext(whom)) + if(cmptext(copytext(whom,1,2),"@")) + whom = findStealthKey(whom) + if(whom == "IRCKEY") + irc = 1 + else + C = directory[whom] + else if(istype(whom,/client)) + C = whom + if(irc) + if(!ircreplyamount) //to prevent people from spamming irc + return + if(!msg) + msg = input(src,"Message:", "Private message to Administrator") as text|null + + if(!msg) + return + if(holder) + src << "Error: Use the admin IRC channel, nerd." + return + + + else + if(!C) + if(holder) + src << "Error: Admin-PM: Client not found." + else + adminhelp(msg) //admin we are replying to left. adminhelp instead + return + + //get message text, limit it's length.and clean/escape html + if(!msg) + msg = input(src,"Message:", "Private message to [key_name(C, 0, 0)]") as text|null + + if(!msg) + return + if(!C) + if(holder) + src << "Error: Admin-PM: Client not found." + else + adminhelp(msg) //admin we are replying to has vanished, adminhelp instead + return + + if (src.handle_spam_prevention(msg,MUTE_ADMINHELP)) + return + + //clean the message if it's not sent by a high-rank admin + if(!check_rights(R_SERVER|R_DEBUG,0)||irc)//no sending html to the poor bots + msg = sanitize(copytext(msg,1,MAX_MESSAGE_LEN)) + if(!msg) + return + + var/rawmsg = msg + + if(holder) + msg = emoji_parse(msg) + + var/keywordparsedmsg = keywords_lookup(msg) + + if(irc) + src << "PM to-Admins: [rawmsg]" + ircreplyamount-- + send2irc("Reply: [ckey]",rawmsg) + else + if(C.holder) + if(holder) //both are admins + C << "Admin PM from-[key_name(src, C, 1)]: [keywordparsedmsg]" + src << "Admin PM to-[key_name(C, src, 1)]: [keywordparsedmsg]" + + else //recipient is an admin but sender is not + C << "Reply PM from-[key_name(src, C, 1)]: [keywordparsedmsg]" + src << "PM to-Admins: [msg]" + + //play the recieving admin the adminhelp sound (if they have them enabled) + if(C.prefs.toggles & SOUND_ADMINHELP) + C << 'sound/effects/adminhelp.ogg' + + else + if(holder) //sender is an admin but recipient is not. Do BIG RED TEXT + C << "-- Administrator private message --" + C << "Admin PM from-[key_name(src, C, 0)]: [msg]" + C << "Click on the administrator's name to reply." + src << "Admin PM to-[key_name(C, src, 1)]: [msg]" + + //always play non-admin recipients the adminhelp sound + C << 'sound/effects/adminhelp.ogg' + + //AdminPM popup for ApocStation and anybody else who wants to use it. Set it with POPUP_ADMIN_PM in config.txt ~Carn + if(config.popup_admin_pm) + spawn() //so we don't hold the caller proc up + var/sender = src + var/sendername = key + var/reply = input(C, msg,"Admin PM from-[sendername]", "") as text|null //show message and await a reply + if(C && reply) + if(sender) + C.cmd_admin_pm(sender,reply) //sender is still about, let's reply to them + else + adminhelp(reply) //sender has left, adminhelp instead + return + + else //neither are admins + src << "Error: Admin-PM: Non-admin to non-admin PM communication is forbidden." + return + + if(irc) + log_admin("PM: [key_name(src)]->IRC: [rawmsg]") + for(var/client/X in admins) + X << "PM: [key_name(src, X, 0)]->IRC: \blue [keywordparsedmsg]" //inform X + else + window_flash(C) + log_admin("PM: [key_name(src)]->[key_name(C)]: [rawmsg]") + //we don't use message_admins here because the sender/receiver might get it too + for(var/client/X in admins) + if(X.key!=key && X.key!=C.key) //check client/X is an admin and isn't the sender or recipient + X << "PM: [key_name(src, X, 0)]->[key_name(C, X, 0)]: \blue [keywordparsedmsg]" //inform X + + + + +/proc/IrcPm(target,msg,sender) + + var/client/C = directory[target] + + var/static/stealthkey + var/adminname = config.showircname ? "[sender](IRC)" : "Administrator" + + if(!C) + return "No client" + + if(!stealthkey) + stealthkey = GenIrcStealthKey() + + msg = sanitize(copytext(msg,1,MAX_MESSAGE_LEN)) + if(!msg) + return "No message" + + message_admins("IRC message from [sender] to [key_name_admin(C)] : [msg]") + log_admin("IRC PM: [sender] -> [key_name(C)] : [msg]") + msg = emoji_parse(msg) + + C << "-- Administrator private message --" + C << "Admin PM from-[adminname]: [msg]" + C << "Click on the administrator's name to reply." + window_flash(C) + //always play non-admin recipients the adminhelp sound + C << 'sound/effects/adminhelp.ogg' + + C.ircreplyamount = IRCREPLYCOUNT + + return "Message Successful" + + + +/proc/GenIrcStealthKey() + var/num = (rand(0,1000)) + var/i = 0 + while(i == 0) + i = 1 + for(var/P in stealthminID) + if(num == stealthminID[P]) + num++ + i = 0 + var/stealth = "@[num2text(num)]" + stealthminID["IRCKEY"] = stealth + return stealth + +#undef IRCREPLYCOUNT \ No newline at end of file diff --git a/code/modules/admin/verbs/adminsay.dm b/code/modules/admin/verbs/adminsay.dm new file mode 100644 index 0000000..b936004 --- /dev/null +++ b/code/modules/admin/verbs/adminsay.dm @@ -0,0 +1,22 @@ +/client/proc/cmd_admin_say(msg as text) + set category = "Special Verbs" + set name = "Asay" //Gave this shit a shorter name so you only have to time out "asay" rather than "admin say" to use it --NeoFite + set hidden = 1 + if(!check_rights(0)) + return + + msg = copytext(sanitize(msg), 1, MAX_MESSAGE_LEN) + if(!msg) + return + + log_adminsay("[key_name(src)] : [msg]") + msg = keywords_lookup(msg) + if(check_rights(R_ADMIN,0)) + msg = "ADMIN: [key_name(usr, 1)] (FLW): [msg]" + admins << msg + else + msg = "ADMIN: [key_name(usr, 1)]: [msg]" + admins << msg + + feedback_add_details("admin_verb","M") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + diff --git a/code/modules/admin/verbs/atmosdebug.dm b/code/modules/admin/verbs/atmosdebug.dm new file mode 100644 index 0000000..915ea7c --- /dev/null +++ b/code/modules/admin/verbs/atmosdebug.dm @@ -0,0 +1,41 @@ +/client/proc/atmosscan() + set category = "Mapping" + set name = "Check Plumbing" + if(!src.holder) + src << "Only administrators may use this command." + return + feedback_add_details("admin_verb","CP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + + //all plumbing - yes, some things might get stated twice, doesn't matter. + for (var/obj/machinery/atmospherics/plumbing in machines) + if (plumbing.nodealert) + usr << "Unconnected [plumbing.name] located at [plumbing.x],[plumbing.y],[plumbing.z] ([get_area(plumbing.loc)])" + + //Manifolds + for (var/obj/machinery/atmospherics/pipe/manifold/pipe in machines) + if (!pipe.NODE1 || !pipe.NODE2 || !pipe.NODE3) + usr << "Unconnected [pipe.name] located at [pipe.x],[pipe.y],[pipe.z] ([get_area(pipe.loc)])" + + //Pipes + for (var/obj/machinery/atmospherics/pipe/simple/pipe in machines) + if (!pipe.NODE1 || !pipe.NODE2) + usr << "Unconnected [pipe.name] located at [pipe.x],[pipe.y],[pipe.z] ([get_area(pipe.loc)])" + +/client/proc/powerdebug() + set category = "Mapping" + set name = "Check Power" + if(!src.holder) + src << "Only administrators may use this command." + return + feedback_add_details("admin_verb","CPOW") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + + for (var/datum/powernet/PN in powernets) + if (!PN.nodes || !PN.nodes.len) + if(PN.cables && (PN.cables.len > 1)) + var/obj/structure/cable/C = PN.cables[1] + usr << "Powernet with no nodes! (number [PN.number]) - example cable at [C.x], [C.y], [C.z] in area [get_area(C.loc)]" + + if (!PN.cables || (PN.cables.len < 10)) + if(PN.cables && (PN.cables.len > 1)) + var/obj/structure/cable/C = PN.cables[1] + usr << "Powernet with fewer than 10 cables! (number [PN.number]) - example cable at [C.x], [C.y], [C.z] in area [get_area(C.loc)]" \ No newline at end of file diff --git a/code/modules/admin/verbs/bluespacearty.dm b/code/modules/admin/verbs/bluespacearty.dm new file mode 100644 index 0000000..814ee68 --- /dev/null +++ b/code/modules/admin/verbs/bluespacearty.dm @@ -0,0 +1,37 @@ +/client/proc/bluespace_artillery(mob/M in mob_list) + set name = "Bluespace Artillery" + set category = "Fun" + + if(!holder || !check_rights(R_FUN)) + return + + var/mob/living/target = M + + if(!isliving(target)) + usr << "This can only be used on instances of type /mob/living" + return + + if(alert(usr, "Are you sure you wish to hit [key_name(target)] with Blue Space Artillery?", "Confirm Firing?" , "Yes" , "No") != "Yes") + return + + explosion(target.loc, 0, 0, 0, 0) + + var/turf/open/floor/T = get_turf(target) + if(istype(T)) + if(prob(80)) + T.break_tile_to_plating() + else + T.break_tile() + + target << "You're hit by bluespace artillery!" + log_admin("[key_name(target)] has been hit by Bluespace Artillery fired by [key_name(usr)]") + message_admins("[ADMIN_LOOKUPFLW(target)] has been hit by Bluespace Artillery fired by [ADMIN_LOOKUPFLW(usr)]") + + if(target.health <= 1) + target.gib(1, 1) + else + target.adjustBruteLoss(min(99,(target.health - 1))) + target.Stun(20) + target.Weaken(20) + target.stuttering = 20 + diff --git a/code/modules/admin/verbs/buildmode.dm b/code/modules/admin/verbs/buildmode.dm new file mode 100644 index 0000000..c68066c --- /dev/null +++ b/code/modules/admin/verbs/buildmode.dm @@ -0,0 +1,355 @@ +#define BASIC_BUILDMODE 1 +#define ADV_BUILDMODE 2 +#define VAR_BUILDMODE 3 +#define THROW_BUILDMODE 4 +#define AREA_BUILDMODE 5 +#define COPY_BUILDMODE 6 +#define NUM_BUILDMODES 6 + +//Buildmode Shuttle +//Builmode Move + +/obj/screen/buildmode + icon = 'icons/misc/buildmode.dmi' + var/datum/buildmode/bd + +/obj/screen/buildmode/New(bd) + ..() + src.bd = bd + +/obj/screen/buildmode/mode + icon_state = "buildmode1" + name = "Toggle Mode" + screen_loc = "NORTH,WEST" + +/obj/screen/buildmode/mode/Click(location, control, params) + var/list/pa = params2list(params) + + if(pa.Find("left")) + bd.toggle_modes() + else if(pa.Find("right")) + bd.change_settings(usr) + update_icon() + return 1 + +/obj/screen/buildmode/mode/update_icon() + icon_state = "buildmode[bd.mode]" + return + +/obj/screen/buildmode/help + icon_state = "buildhelp" + screen_loc = "NORTH,WEST+1" + name = "Buildmode Help" + +/obj/screen/buildmode/help/Click() + bd.show_help(usr) + return 1 + +/obj/screen/buildmode/bdir + icon_state = "build" + screen_loc = "NORTH,WEST+2" + name = "Change Dir" + + +/obj/screen/buildmode/bdir/update_icon() + setDir(bd.build_dir) + return + +/obj/screen/buildmode/quit + icon_state = "buildquit" + screen_loc = "NORTH,WEST+3" + name = "Quit Buildmode" + +/obj/screen/buildmode/quit/Click() + bd.quit() + return 1 + +/obj/screen/buildmode/bdir/Click() + bd.change_dir() + update_icon() + return 1 + +/datum/buildmode + var/mode = BASIC_BUILDMODE + var/client/holder = null + var/list/obj/screen/buttons = list() + var/build_dir = SOUTH + var/atom/movable/throw_atom = null + var/turf/cornerA = null + var/turf/cornerB = null + var/generator_path = null + var/varholder = "name" + var/valueholder = "derp" + var/objholder = /obj/structure/closet + var/atom/movable/stored = null + +/datum/buildmode/New(client/c) + create_buttons() + holder = c + holder.click_intercept = src + holder.show_popup_menus = 0 + holder.screen += buttons + +/datum/buildmode/proc/quit() + holder.screen -= buttons + holder.click_intercept = null + holder.show_popup_menus = 1 + qdel(src) + return + +/datum/buildmode/Destroy() + stored = null + for(var/button in buttons) + qdel(button) + +/datum/buildmode/proc/create_buttons() + buttons += new /obj/screen/buildmode/mode(src) + buttons += new /obj/screen/buildmode/help(src) + buttons += new /obj/screen/buildmode/bdir(src) + buttons += new /obj/screen/buildmode/quit(src) + +/datum/buildmode/proc/toggle_modes() + mode = (mode % NUM_BUILDMODES) +1 + Reset() + return + +/datum/buildmode/proc/show_help(mob/user) + switch(mode) + if(BASIC_BUILDMODE) + user << "\blue ***********************************************************" + user << "\blue Left Mouse Button = Construct / Upgrade" + user << "\blue Right Mouse Button = Deconstruct / Delete / Downgrade" + user << "\blue Left Mouse Button + ctrl = R-Window" + user << "\blue Left Mouse Button + alt = Airlock" + user << "" + user << "\blue Use the button in the upper left corner to" + user << "\blue change the direction of built objects." + user << "\blue ***********************************************************" + if(ADV_BUILDMODE) + user << "\blue ***********************************************************" + user << "\blue Right Mouse Button on buildmode button = Set object type" + user << "\blue Left Mouse Button on turf/obj = Place objects" + user << "\blue Right Mouse Button = Delete objects" + user << "" + user << "\blue Use the button in the upper left corner to" + user << "\blue change the direction of built objects." + user << "\blue ***********************************************************" + if(VAR_BUILDMODE) + user << "\blue ***********************************************************" + user << "\blue Right Mouse Button on buildmode button = Select var(type) & value" + user << "\blue Left Mouse Button on turf/obj/mob = Set var(type) & value" + user << "\blue Right Mouse Button on turf/obj/mob = Reset var's value" + user << "\blue ***********************************************************" + if(THROW_BUILDMODE) + user << "\blue ***********************************************************" + user << "\blue Left Mouse Button on turf/obj/mob = Select" + user << "\blue Right Mouse Button on turf/obj/mob = Throw" + user << "\blue ***********************************************************" + if(AREA_BUILDMODE) + user << "\blue ***********************************************************" + user << "\blue Left Mouse Button on turf/obj/mob = Select corner" + user << "\blue Right Mouse Button on buildmode button = Select generator" + user << "\blue ***********************************************************" + if(COPY_BUILDMODE) + user << "\blue ***********************************************************" + user << "\blue Left Mouse Button on obj/turf/mob = Spawn a Copy of selected target" + user << "\blue Right Mouse Button on obj/mob = Select target to copy" + user << "\blue ***********************************************************" + +/datum/buildmode/proc/change_settings(mob/user) + switch(mode) + if(BASIC_BUILDMODE) + return 1 + if(ADV_BUILDMODE) + var/target_path = input(user,"Enter typepath:" ,"Typepath","/obj/structure/closet") + objholder = text2path(target_path) + if(!ispath(objholder)) + objholder = pick_closest_path(target_path) + if(!objholder) + objholder = /obj/structure/closet + alert("That path is not allowed.") + else + if(ispath(objholder,/mob) && !check_rights(R_DEBUG,0)) + objholder = /obj/structure/closet + if(VAR_BUILDMODE) + var/list/locked = list("vars", "key", "ckey", "client", "firemut", "ishulk", "telekinesis", "xray", "virus", "viruses", "cuffed", "ka", "last_eaten", "urine") + + varholder = input(user,"Enter variable name:" ,"Name", "name") + if(varholder in locked && !check_rights(R_DEBUG,0)) + return 1 + var/thetype = input(user,"Select variable type:" ,"Type") in list("text","number","mob-reference","obj-reference","turf-reference") + if(!thetype) return 1 + switch(thetype) + if("text") + valueholder = input(user,"Enter variable value:" ,"Value", "value") as text + if("number") + valueholder = input(user,"Enter variable value:" ,"Value", 123) as num + if("mob-reference") + valueholder = input(user,"Enter variable value:" ,"Value") as mob in mob_list + if("obj-reference") + valueholder = input(user,"Enter variable value:" ,"Value") as obj in world + if("turf-reference") + valueholder = input(user,"Enter variable value:" ,"Value") as turf in world + if(AREA_BUILDMODE) + var/list/gen_paths = subtypesof(/datum/mapGenerator) + + var/type = input(user,"Select Generator Type","Type") as null|anything in gen_paths + if(!type) return + + generator_path = type + cornerA = null + cornerB = null + +/datum/buildmode/proc/change_dir() + switch(build_dir) + if(NORTH) + build_dir = EAST + if(EAST) + build_dir = SOUTH + if(SOUTH) + build_dir = WEST + if(WEST) + build_dir = NORTHWEST + if(NORTHWEST) + build_dir = NORTH + return 1 + +/datum/buildmode/proc/Reset()//Reset temporary variables + cornerA = null + cornerB = null + +/proc/togglebuildmode(mob/M in player_list) + set name = "Toggle Build Mode" + set category = "Special Verbs" + if(M.client) + if(istype(M.client.click_intercept,/datum/buildmode)) + var/datum/buildmode/B = M.client.click_intercept + B.quit() + log_admin("[key_name(usr)] has left build mode.") + else + new/datum/buildmode(M.client) + message_admins("[key_name(usr)] has entered build mode.") + log_admin("[key_name(usr)] has entered build mode.") + + +/datum/buildmode/proc/InterceptClickOn(user,params,atom/object) //Click Intercept + var/list/pa = params2list(params) + var/right_click = pa.Find("right") + var/left_click = pa.Find("left") + var/alt_click = pa.Find("alt") + var/ctrl_click = pa.Find("ctrl") + + . = 1 + switch(mode) + if(BASIC_BUILDMODE) + if(isturf(object) && left_click && !alt_click && !ctrl_click) + var/turf/T = object + if(isspaceturf(object)) + T.ChangeTurf(/turf/open/floor/plasteel) + else if(isfloorturf(object)) + T.ChangeTurf(/turf/closed/wall) + else if(iswallturf(object)) + T.ChangeTurf(/turf/closed/wall/r_wall) + log_admin("Build Mode: [key_name(user)] built [T] at ([T.x],[T.y],[T.z])") + return + else if(right_click) + log_admin("Build Mode: [key_name(user)] deleted [object] at ([object.x],[object.y],[object.z])") + if(iswallturf(object)) + var/turf/T = object + T.ChangeTurf(/turf/open/floor/plasteel) + else if(isfloorturf(object)) + var/turf/T = object + T.ChangeTurf(/turf/open/space) + else if(istype(object,/turf/closed/wall/r_wall)) + var/turf/T = object + T.ChangeTurf(/turf/closed/wall) + else if(isobj(object)) + qdel(object) + return + else if(isturf(object) && alt_click && left_click) + log_admin("Build Mode: [key_name(user)] built an airlock at ([object.x],[object.y],[object.z])") + new/obj/machinery/door/airlock(get_turf(object)) + else if(isturf(object) && ctrl_click && left_click) + switch(build_dir) + if(NORTH) + var/obj/structure/window/reinforced/WIN = new/obj/structure/window/reinforced(get_turf(object)) + WIN.setDir(NORTH) + if(SOUTH) + var/obj/structure/window/reinforced/WIN = new/obj/structure/window/reinforced(get_turf(object)) + WIN.setDir(SOUTH) + if(EAST) + var/obj/structure/window/reinforced/WIN = new/obj/structure/window/reinforced(get_turf(object)) + WIN.setDir(EAST) + if(WEST) + var/obj/structure/window/reinforced/WIN = new/obj/structure/window/reinforced(get_turf(object)) + WIN.setDir(WEST) + if(NORTHWEST) + var/obj/structure/window/reinforced/WIN = new/obj/structure/window/reinforced(get_turf(object)) + WIN.setDir(NORTHWEST) + log_admin("Build Mode: [key_name(user)] built a window at ([object.x],[object.y],[object.z])") + if(ADV_BUILDMODE) + if(left_click) + if(ispath(objholder,/turf)) + var/turf/T = get_turf(object) + log_admin("Build Mode: [key_name(user)] modified [T] ([T.x],[T.y],[T.z]) to [objholder]") + T.ChangeTurf(objholder) + else + var/obj/A = new objholder (get_turf(object)) + A.setDir(build_dir) + log_admin("Build Mode: [key_name(user)] modified [A]'s ([A.x],[A.y],[A.z]) dir to [build_dir]") + else if(right_click) + if(isobj(object)) + log_admin("Build Mode: [key_name(user)] deleted [object] at ([object.x],[object.y],[object.z])") + qdel(object) + + if(VAR_BUILDMODE) + if(left_click) //I cant believe this shit actually compiles. + if(object.vars.Find(varholder)) + log_admin("Build Mode: [key_name(user)] modified [object.name]'s [varholder] to [valueholder]") + object.vars[varholder] = valueholder + else + user << "[initial(object.name)] does not have a var called '[varholder]'" + if(right_click) + if(object.vars.Find(varholder)) + log_admin("Build Mode: [key_name(user)] modified [object.name]'s [varholder] to [valueholder]") + object.vars[varholder] = initial(object.vars[varholder]) + else + user << "[initial(object.name)] does not have a var called '[varholder]'" + + if(THROW_BUILDMODE) + if(left_click) + if(isturf(object)) + return + throw_atom = object + if(right_click) + if(throw_atom) + throw_atom.throw_at(object, 10, 1,user) + log_admin("Build Mode: [key_name(user)] threw [throw_atom] at [object] ([object.x],[object.y],[object.z])") + if(AREA_BUILDMODE) + if(!cornerA) + cornerA = get_turf(object) + return + if(cornerA && !cornerB) + cornerB = get_turf(object) + + if(left_click) //rectangular + if(cornerA && cornerB) + if(!generator_path) + user << "Select generator type first." + var/datum/mapGenerator/G = new generator_path + G.defineRegion(cornerA,cornerB,1) + G.generate() + cornerA = null + cornerB = null + return + //Something wrong - Reset + cornerA = null + cornerB = null + if(COPY_BUILDMODE) + if(left_click) + var/turf/T = get_turf(object) + if(stored) + DuplicateObject(stored,perfectcopy=1,newloc=T) + else if(right_click) + if(ismovableatom(object)) // No copying turfs for now. + stored = object \ No newline at end of file diff --git a/code/modules/admin/verbs/cinematic.dm b/code/modules/admin/verbs/cinematic.dm new file mode 100644 index 0000000..69db1e4 --- /dev/null +++ b/code/modules/admin/verbs/cinematic.dm @@ -0,0 +1,18 @@ +/client/proc/cinematic(cinematic as anything in list("explosion",null)) + set name = "cinematic" + set category = "Fun" + set desc = "Shows a cinematic." // Intended for testing but I thought it might be nice for events on the rare occasion Feel free to comment it out if it's not wanted. + set hidden = 1 + if(!ticker) + return + switch(cinematic) + if("explosion") + var/parameter = input(src,"station_missed = ?","Enter Parameter",0) as num + var/override + switch(parameter) + if(1) + override = input(src,"mode = ?","Enter Parameter",null) as anything in list("nuclear emergency","gang war","fake","no override") + if(0) + override = input(src,"mode = ?","Enter Parameter",null) as anything in list("blob","nuclear emergency","AI malfunction","no override") + ticker.station_explosion_cinematic(parameter,override) + return \ No newline at end of file diff --git a/code/modules/admin/verbs/deadsay.dm b/code/modules/admin/verbs/deadsay.dm new file mode 100644 index 0000000..452d1e9 --- /dev/null +++ b/code/modules/admin/verbs/deadsay.dm @@ -0,0 +1,32 @@ +/client/proc/dsay(msg as text) + set category = "Special Verbs" + set name = "Dsay" //Gave this shit a shorter name so you only have to time out "dsay" rather than "dead say" to use it --NeoFite + set hidden = 1 + if(!src.holder) + src << "Only administrators may use this command." + return + if(!src.mob) + return + if(prefs.muted & MUTE_DEADCHAT) + src << "You cannot send DSAY messages (muted)." + return + + if (src.handle_spam_prevention(msg,MUTE_DEADCHAT)) + return + + msg = copytext(sanitize(msg), 1, MAX_MESSAGE_LEN) + log_dsay("[key_name(src)] : [msg]") + + if (!msg) + return + var/nicknames = file2list("config/admin_nicknames.txt") + + var/rendered = "DEAD: ADMIN([src.holder.fakekey ? pick(nicknames) : src.key]) says, \"[msg]\"" + + for (var/mob/M in player_list) + if(isnewplayer(M)) + continue + if (M.stat == DEAD || (M.client && M.client.holder && (M.client.prefs.chat_toggles & CHAT_DEAD))) //admins can toggle deadchat on and off. This is a proc in admin.dm and is only give to Administrators and above + M.show_message(rendered, 2) + + feedback_add_details("admin_verb","D") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! \ No newline at end of file diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm new file mode 100644 index 0000000..4e05299 --- /dev/null +++ b/code/modules/admin/verbs/debug.dm @@ -0,0 +1,791 @@ +/client/proc/Debug2() + set category = "Debug" + set name = "Debug-Game" + if(!check_rights(R_DEBUG)) + return + + if(Debug2) + Debug2 = 0 + message_admins("[key_name(src)] toggled debugging off.") + log_admin("[key_name(src)] toggled debugging off.") + else + Debug2 = 1 + message_admins("[key_name(src)] toggled debugging on.") + log_admin("[key_name(src)] toggled debugging on.") + + feedback_add_details("admin_verb","DG2") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + + + +/* 21st Sept 2010 +Updated by Skie -- Still not perfect but better! +Stuff you can't do: +Call proc /mob/proc/Dizzy() for some player +Because if you select a player mob as owner it tries to do the proc for +/mob/living/carbon/human/ instead. And that gives a run-time error. +But you can call procs that are of type /mob/living/carbon/human/proc/ for that player. +*/ + +/client/proc/callproc() + set category = "Debug" + set name = "Advanced ProcCall" + set waitfor = 0 + + if(!check_rights(R_DEBUG)) return + + var/target = null + var/targetselected = 0 + var/returnval = null + var/class = null + + switch(alert("Proc owned by something?",,"Yes","No")) + if("Yes") + targetselected = 1 + if(src.holder && src.holder.marked_datum) + class = input("Proc owned by...","Owner",null) as null|anything in list("Obj","Mob","Area or Turf","Client","Marked datum ([holder.marked_datum.type])") + if(class == "Marked datum ([holder.marked_datum.type])") + class = "Marked datum" + else + class = input("Proc owned by...","Owner",null) as null|anything in list("Obj","Mob","Area or Turf","Client") + switch(class) + if("Obj") + target = input("Enter target:","Target",usr) as obj in world + if("Mob") + target = input("Enter target:","Target",usr) as mob in world + if("Area or Turf") + target = input("Enter target:","Target",usr.loc) as area|turf in world + if("Client") + var/list/keys = list() + for(var/client/C) + keys += C + target = input("Please, select a player!", "Selection", null, null) as null|anything in keys + if("Marked datum") + target = holder.marked_datum + else + return + if("No") + target = null + targetselected = 0 + + var/procname = input("Proc path, eg: /proc/fake_blood","Path:", null) as text|null + if(!procname) + return + if(targetselected && !hascall(target,procname)) + usr << "Error: callproc(): target has no such call [procname]." + return + else + var/procpath = text2path(procname) + if (!procpath) + usr << "Error: callproc(): proc [procname] does not exist. (Did you forget the /proc/ part?)" + return + var/list/lst = get_callproc_args() + if(!lst) + return + + if(targetselected) + if(!target) + usr << "Error: callproc(): owner of proc no longer exists." + return + log_admin("[key_name(src)] called [target]'s [procname]() with [lst.len ? "the arguments [list2params(lst)]":"no arguments"].") + message_admins("[key_name(src)] called [target]'s [procname]() with [lst.len ? "the arguments [list2params(lst)]":"no arguments"].") + returnval = call(target,procname)(arglist(lst)) // Pass the lst as an argument list to the proc + else + //this currently has no hascall protection. wasn't able to get it working. + log_admin("[key_name(src)] called [procname]() with [lst.len ? "the arguments [list2params(lst)]":"no arguments"].") + message_admins("[key_name(src)] called [procname]() with [lst.len ? "the arguments [list2params(lst)]":"no arguments"].") + returnval = call(procname)(arglist(lst)) // Pass the lst as an argument list to the proc + . = get_callproc_returnval(returnval, procname) + if(.) + usr << . + feedback_add_details("admin_verb","APC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/callproc_datum(A as null|area|mob|obj|turf) + set category = "Debug" + set name = "Atom ProcCall" + set waitfor = 0 + + if(!check_rights(R_DEBUG)) + return + + var/procname = input("Proc name, eg: fake_blood","Proc:", null) as text|null + if(!procname) + return + if(!hascall(A,procname)) + usr << "Error: callproc_datum(): target has no such call [procname]." + return + var/list/lst = get_callproc_args() + if(!lst) + return + + if(!A || !IsValidSrc(A)) + usr << "Error: callproc_datum(): owner of proc no longer exists." + return + log_admin("[key_name(src)] called [A]'s [procname]() with [lst.len ? "the arguments [list2params(lst)]":"no arguments"].") + message_admins("[key_name(src)] called [A]'s [procname]() with [lst.len ? "the arguments [list2params(lst)]":"no arguments"].") + feedback_add_details("admin_verb","DPC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + + var/returnval = call(A,procname)(arglist(lst)) // Pass the lst as an argument list to the proc + . = get_callproc_returnval(returnval,procname) + if(.) + usr << . + + + +/client/proc/get_callproc_args() + var/argnum = input("Number of arguments","Number:",0) as num|null + if(!argnum && (argnum!=0)) + return + + var/list/lst = list() + //TODO: make a list to store whether each argument was initialised as null. + //Reason: So we can abort the proccall if say, one of our arguments was a mob which no longer exists + //this will protect us from a fair few errors ~Carn + + while(argnum--) + var/class = null + // Make a list with each index containing one variable, to be given to the proc + if(src.holder && src.holder.marked_datum) + class = input("What kind of variable?","Variable Type") in list("text","num","type","reference","mob reference","icon","file","client","mob's area","Marked datum ([holder.marked_datum.type])","CANCEL") + if(holder.marked_datum && class == "Marked datum ([holder.marked_datum.type])") + class = "Marked datum" + else + class = input("What kind of variable?","Variable Type") in list("text","num","type","reference","mob reference","icon","file","client","mob's area","CANCEL") + switch(class) + if("CANCEL") + return null + + if("text") + lst += input("Enter new text:","Text",null) as text + + if("num") + lst += input("Enter new number:","Num",0) as num + + if("type") + lst += input("Enter type:","Type") in typesof(/obj,/mob,/area,/turf) + + if("reference") + lst += input("Select reference:","Reference",src) as mob|obj|turf|area in world + + if("mob reference") + lst += input("Select reference:","Reference",usr) as mob in world + + if("file") + lst += input("Pick file:","File") as file + + if("icon") + lst += input("Pick icon:","Icon") as icon + + if("client") + var/list/keys = list() + for(var/mob/M in world) + keys += M.client + lst += input("Please, select a player!", "Selection", null, null) as null|anything in keys + + if("mob's area") + var/mob/temp = input("Select mob", "Selection", usr) as mob in world + lst += temp.loc + if("Marked datum") + lst += holder.marked_datum + return lst + + +/client/proc/get_callproc_returnval(returnval,procname) + . = "" + if(islist(returnval)) + var/list/returnedlist = returnval + . = "" + if(returnedlist.len) + var/assoc_check = returnedlist[1] + if(istext(assoc_check) && (returnedlist[assoc_check] != null)) + . += "[procname] returned an associative list:" + for(var/key in returnedlist) + . += "\n[key] = [returnedlist[key]]" + + else + . += "[procname] returned a list:" + for(var/elem in returnedlist) + . += "\n[elem]" + else + . = "[procname] returned an empty list" + . += "" + + else + . = "[procname] returned: [returnval ? returnval : "null"]" + + +/client/proc/Cell() + set category = "Debug" + set name = "Air Status in Location" + if(!mob) + return + var/turf/T = mob.loc + + if(!isturf(T)) + return + + var/datum/gas_mixture/env = T.return_air() + var/list/env_gases = env.gases + + var/t = "" + for(var/id in env_gases) + if(id in hardcoded_gases || env_gases[id][MOLES]) + t+= "[env_gases[id][GAS_META][META_GAS_NAME]] : [env_gases[id][MOLES]]\n" + + usr << t + feedback_add_details("admin_verb","ASL") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/cmd_admin_robotize(mob/M in mob_list) + set category = "Fun" + set name = "Make Robot" + + if(!ticker || !ticker.mode) + alert("Wait until the game starts") + return + if(ishuman(M)) + log_admin("[key_name(src)] has robotized [M.key].") + var/mob/living/carbon/human/H = M + spawn(0) + H.Robotize() + + else + alert("Invalid mob") + +/client/proc/cmd_admin_blobize(mob/M in mob_list) + set category = "Fun" + set name = "Make Blob" + + if(!ticker || !ticker.mode) + alert("Wait until the game starts") + return + if(ishuman(M)) + log_admin("[key_name(src)] has blobized [M.key].") + var/mob/living/carbon/human/H = M + spawn(0) + var/mob/camera/blob/B = H.become_overmind(FALSE) + B.place_blob_core(B.base_point_rate, -1) //place them wherever they are + + else + alert("Invalid mob") + + +/client/proc/cmd_admin_animalize(mob/M in mob_list) + set category = "Fun" + set name = "Make Simple Animal" + + if(!ticker || !ticker.mode) + alert("Wait until the game starts") + return + + if(!M) + alert("That mob doesn't seem to exist, close the panel and try again.") + return + + if(isnewplayer(M)) + alert("The mob must not be a new_player.") + return + + log_admin("[key_name(src)] has animalized [M.key].") + spawn(0) + M.Animalize() + + +/client/proc/makepAI(turf/T in mob_list) + set category = "Fun" + set name = "Make pAI" + set desc = "Specify a location to spawn a pAI device, then specify a key to play that pAI" + + var/list/available = list() + for(var/mob/C in mob_list) + if(C.key) + available.Add(C) + var/mob/choice = input("Choose a player to play the pAI", "Spawn pAI") in available + if(!choice) + return 0 + if(!isobserver(choice)) + var/confirm = input("[choice.key] isn't ghosting right now. Are you sure you want to yank him out of them out of their body and place them in this pAI?", "Spawn pAI Confirmation", "No") in list("Yes", "No") + if(confirm != "Yes") + return 0 + var/obj/item/device/paicard/card = new(T) + var/mob/living/silicon/pai/pai = new(card) + pai.name = input(choice, "Enter your pAI name:", "pAI Name", "Personal AI") as text + pai.real_name = pai.name + pai.key = choice.key + card.setPersonality(pai) + for(var/datum/paiCandidate/candidate in SSpai.candidates) + if(candidate.key == choice.key) + SSpai.candidates.Remove(candidate) + feedback_add_details("admin_verb","MPAI") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/cmd_admin_alienize(mob/M in mob_list) + set category = "Fun" + set name = "Make Alien" + + if(!ticker || !ticker.mode) + alert("Wait until the game starts") + return + if(ishuman(M)) + log_admin("[key_name(src)] has alienized [M.key].") + spawn(0) + M:Alienize() + feedback_add_details("admin_verb","MKAL") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + log_admin("[key_name(usr)] made [key_name(M)] into an alien.") + message_admins("[key_name_admin(usr)] made [key_name(M)] into an alien.") + else + alert("Invalid mob") + +/client/proc/cmd_admin_slimeize(mob/M in mob_list) + set category = "Fun" + set name = "Make slime" + + if(!ticker || !ticker.mode) + alert("Wait until the game starts") + return + if(ishuman(M)) + log_admin("[key_name(src)] has slimeized [M.key].") + spawn(0) + M:slimeize() + feedback_add_details("admin_verb","MKMET") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + log_admin("[key_name(usr)] made [key_name(M)] into a slime.") + message_admins("[key_name_admin(usr)] made [key_name(M)] into a slime.") + else + alert("Invalid mob") + +var/list/TYPES_SHORTCUTS = list( + /obj/effect/decal/cleanable = "CLEANABLE", + /obj/item/device/radio/headset = "HEADSET", + /obj/item/clothing/head/helmet/space = "SPESSHELMET", + /obj/item/weapon/book/manual = "MANUAL", + /obj/item/weapon/reagent_containers/food/drinks = "DRINK", //longest paths comes first + /obj/item/weapon/reagent_containers/food = "FOOD", + /obj/item/weapon/reagent_containers = "REAGENT_CONTAINERS", + /obj/machinery/atmospherics = "ATMOS", + /obj/machinery/portable_atmospherics = "PORT_ATMOS", + /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/missile_rack = "MECHA_MISSILE_RACK", + /obj/item/mecha_parts/mecha_equipment = "MECHA_EQUIP", + /obj/item/organ = "ORGAN", +) + +var/global/list/g_fancy_list_of_types = null +/proc/get_fancy_list_of_types() + if (isnull(g_fancy_list_of_types)) //init + var/list/temp = sortList(subtypesof(/atom) - typesof(/area) - /atom/movable) + g_fancy_list_of_types = new(temp.len) + for(var/type in temp) + var/typename = "[type]" + for (var/tn in TYPES_SHORTCUTS) + if (copytext(typename,1, length("[tn]/")+1)=="[tn]/" /*findtextEx(typename,"[tn]/",1,2)*/ ) + typename = TYPES_SHORTCUTS[tn]+copytext(typename,length("[tn]/")) + break + g_fancy_list_of_types[typename] = type + return g_fancy_list_of_types + +/proc/filter_fancy_list(list/L, filter as text) + var/list/matches = new + for(var/key in L) + var/value = L[key] + if(findtext("[key]", filter) || findtext("[value]", filter)) + matches[key] = value + return matches + +//TODO: merge the vievars version into this or something maybe mayhaps +/client/proc/cmd_debug_del_all(object as text) + set category = "Debug" + set name = "Del-All" + + var/list/matches = get_fancy_list_of_types() + if (!isnull(object) && object!="") + matches = filter_fancy_list(matches, object) + + if(matches.len==0) + return + var/hsbitem = input(usr, "Choose an object to delete.", "Delete:") as null|anything in matches + if(hsbitem) + hsbitem = matches[hsbitem] + var/counter = 0 + for(var/atom/O in world) + if(istype(O, hsbitem)) + counter++ + qdel(O) + CHECK_TICK + log_admin("[key_name(src)] has deleted all ([counter]) instances of [hsbitem].") + message_admins("[key_name_admin(src)] has deleted all ([counter]) instances of [hsbitem].", 0) + feedback_add_details("admin_verb","DELA") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + + +/client/proc/cmd_debug_make_powernets() + set category = "Debug" + set name = "Make Powernets" + SSmachine.makepowernets() + log_admin("[key_name(src)] has remade the powernet. makepowernets() called.") + message_admins("[key_name_admin(src)] has remade the powernets. makepowernets() called.", 0) + feedback_add_details("admin_verb","MPWN") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/cmd_admin_grantfullaccess(mob/M in mob_list) + set category = "Admin" + set name = "Grant Full Access" + + if(!ticker || !ticker.mode) + alert("Wait until the game starts") + return + if(ishuman(M)) + var/mob/living/carbon/human/H = M + var/obj/item/worn = H.wear_id + var/obj/item/weapon/card/id/id = null + if(worn) + id = worn.GetID() + if(id) + id.icon_state = "gold" + id.access = get_all_accesses()+get_all_centcom_access()+get_all_syndicate_access() + else + id = new /obj/item/weapon/card/id/gold(H.loc) + id.access = get_all_accesses()+get_all_centcom_access()+get_all_syndicate_access() + id.registered_name = H.real_name + id.assignment = "Captain" + id.update_label() + + if(worn) + if(istype(worn,/obj/item/device/pda)) + worn:id = id + id.loc = worn + else if(istype(worn,/obj/item/weapon/storage/wallet)) + worn:front_id = id + id.loc = worn + worn.update_icon() + else + H.equip_to_slot(id,slot_wear_id) + + else + alert("Invalid mob") + feedback_add_details("admin_verb","GFA") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + log_admin("[key_name(src)] has granted [M.key] full access.") + message_admins("[key_name_admin(usr)] has granted [M.key] full access.") + +/client/proc/cmd_assume_direct_control(mob/M in mob_list) + set category = "Admin" + set name = "Assume direct control" + set desc = "Direct intervention" + + if(M.ckey) + if(alert("This mob is being controlled by [M.ckey]. Are you sure you wish to assume control of it? [M.ckey] will be made a ghost.",,"Yes","No") != "Yes") + return + else + var/mob/dead/observer/ghost = new/mob/dead/observer(M,1) + ghost.ckey = M.ckey + message_admins("[key_name_admin(usr)] assumed direct control of [M].") + log_admin("[key_name(usr)] assumed direct control of [M].") + var/mob/adminmob = src.mob + M.ckey = src.ckey + if( isobserver(adminmob) ) + qdel(adminmob) + feedback_add_details("admin_verb","ADC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/cmd_admin_areatest() + set category = "Mapping" + set name = "Test areas" + + var/list/areas_all = list() + var/list/areas_with_APC = list() + var/list/areas_with_air_alarm = list() + var/list/areas_with_RC = list() + var/list/areas_with_light = list() + var/list/areas_with_LS = list() + var/list/areas_with_intercom = list() + var/list/areas_with_camera = list() + + for(var/area/A in world) + if(!(A.type in areas_all)) + areas_all.Add(A.type) + + for(var/obj/machinery/power/apc/APC in apcs_list) + var/area/A = get_area(APC) + if(!(A.type in areas_with_APC)) + areas_with_APC.Add(A.type) + + for(var/obj/machinery/airalarm/AA in machines) + var/area/A = get_area(AA) + if(!(A.type in areas_with_air_alarm)) + areas_with_air_alarm.Add(A.type) + + for(var/obj/machinery/requests_console/RC in machines) + var/area/A = get_area(RC) + if(!(A.type in areas_with_RC)) + areas_with_RC.Add(A.type) + + for(var/obj/machinery/light/L in machines) + var/area/A = get_area(L) + if(!(A.type in areas_with_light)) + areas_with_light.Add(A.type) + + for(var/obj/machinery/light_switch/LS in machines) + var/area/A = get_area(LS) + if(!(A.type in areas_with_LS)) + areas_with_LS.Add(A.type) + + for(var/obj/item/device/radio/intercom/I in machines) + var/area/A = get_area(I) + if(!(A.type in areas_with_intercom)) + areas_with_intercom.Add(A.type) + + for(var/obj/machinery/camera/C in machines) + var/area/A = get_area(C) + if(!(A.type in areas_with_camera)) + areas_with_camera.Add(A.type) + + var/list/areas_without_APC = areas_all - areas_with_APC + var/list/areas_without_air_alarm = areas_all - areas_with_air_alarm + var/list/areas_without_RC = areas_all - areas_with_RC + var/list/areas_without_light = areas_all - areas_with_light + var/list/areas_without_LS = areas_all - areas_with_LS + var/list/areas_without_intercom = areas_all - areas_with_intercom + var/list/areas_without_camera = areas_all - areas_with_camera + + world << "AREAS WITHOUT AN APC:" + for(var/areatype in areas_without_APC) + world << "* [areatype]" + + world << "AREAS WITHOUT AN AIR ALARM:" + for(var/areatype in areas_without_air_alarm) + world << "* [areatype]" + + world << "AREAS WITHOUT A REQUEST CONSOLE:" + for(var/areatype in areas_without_RC) + world << "* [areatype]" + + world << "AREAS WITHOUT ANY LIGHTS:" + for(var/areatype in areas_without_light) + world << "* [areatype]" + + world << "AREAS WITHOUT A LIGHT SWITCH:" + for(var/areatype in areas_without_LS) + world << "* [areatype]" + + world << "AREAS WITHOUT ANY INTERCOMS:" + for(var/areatype in areas_without_intercom) + world << "* [areatype]" + + world << "AREAS WITHOUT ANY CAMERAS:" + for(var/areatype in areas_without_camera) + world << "* [areatype]" + +/client/proc/cmd_admin_dress(mob/living/carbon/human/M in mob_list) + set category = "Fun" + set name = "Select equipment" + if(!ishuman(M)) + alert("Invalid mob") + return + + + var/list/outfits = list("Naked","Custom","As Job...") + var/list/paths = subtypesof(/datum/outfit) - typesof(/datum/outfit/job) + for(var/path in paths) + var/datum/outfit/O = path //not much to initalize here but whatever + outfits[initial(O.name)] = path + + + var/dresscode = input("Select dress for [M]", "Robust quick dress shop") as null|anything in outfits + if (isnull(dresscode)) + return + + var/datum/job/jobdatum + if (dresscode == "As Job...") + var/jobname = input("Select job", "Robust quick dress shop") as null|anything in get_all_jobs() + if(isnull(jobname)) + return + jobdatum = SSjob.GetJob(jobname) + + + var/datum/outfit/custom = null + if (dresscode == "Custom") + var/list/custom_names = list() + for(var/datum/outfit/D in custom_outfits) + custom_names[D.name] = D + var/selected_name = input("Select outfit", "Robust quick dress shop") as null|anything in custom_names + custom = custom_names[selected_name] + if(isnull(custom)) + return + + feedback_add_details("admin_verb","SEQ") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + for (var/obj/item/I in M.get_equipped_items()) + qdel(I) + switch(dresscode) + if ("Naked") + //do nothing + if ("Custom") + //use custom one + M.equipOutfit(custom) + if ("As Job...") + if(jobdatum) + dresscode = jobdatum.title + M.job = jobdatum.title + jobdatum.equip(M) + + else + M.equipOutfit(outfits[dresscode]) + + + M.regenerate_icons() + + log_admin("[key_name(usr)] changed the equipment of [key_name(M)] to [dresscode].") + message_admins("[key_name_admin(usr)] changed the equipment of [key_name_admin(M)] to [dresscode]..") + +/client/proc/startSinglo() + + set category = "Debug" + set name = "Start Singularity" + set desc = "Sets up the singularity and all machines to get power flowing through the station" + + if(alert("Are you sure? This will start up the engine. Should only be used during debug!",,"Yes","No") != "Yes") + return + + for(var/obj/machinery/power/emitter/E in machines) + if(E.anchored) + E.active = 1 + + for(var/obj/machinery/field/generator/F in machines) + if(F.active == 0) + F.active = 1 + F.state = 2 + F.power = 250 + F.anchored = 1 + F.warming_up = 3 + F.start_fields() + F.update_icon() + + spawn(30) + for(var/obj/machinery/the_singularitygen/G in machines) + if(G.anchored) + var/obj/singularity/S = new /obj/singularity(get_turf(G), 50) +// qdel(G) + S.energy = 1750 + S.current_size = 7 + S.icon = 'icons/effects/224x224.dmi' + S.icon_state = "singularity_s7" + S.pixel_x = -96 + S.pixel_y = -96 + S.grav_pull = 0 + //S.consume_range = 3 + S.dissipate = 0 + //S.dissipate_delay = 10 + //S.dissipate_track = 0 + //S.dissipate_strength = 10 + + for(var/obj/machinery/power/rad_collector/Rad in machines) + if(Rad.anchored) + if(!Rad.loaded_tank) + var/obj/item/weapon/tank/internals/plasma/Plasma = new/obj/item/weapon/tank/internals/plasma(Rad) + Plasma.air_contents.assert_gas("plasma") + Plasma.air_contents.gases["plasma"][MOLES] = 70 + Rad.drainratio = 0 + Rad.loaded_tank = Plasma + Plasma.loc = Rad + + if(!Rad.active) + Rad.toggle_power() + + for(var/obj/machinery/power/smes/SMES in machines) + if(SMES.anchored) + SMES.input_attempt = 1 + +/client/proc/cmd_debug_mob_lists() + set category = "Debug" + set name = "Debug Mob Lists" + set desc = "For when you just gotta know" + + switch(input("Which list?") in list("Players","Admins","Mobs","Living Mobs","Dead Mobs","Clients","Joined Clients")) + if("Players") + usr << jointext(player_list,",") + if("Admins") + usr << jointext(admins,",") + if("Mobs") + usr << jointext(mob_list,",") + if("Living Mobs") + usr << jointext(living_mob_list,",") + if("Dead Mobs") + usr << jointext(dead_mob_list,",") + if("Clients") + usr << jointext(clients,",") + if("Joined Clients") + usr << jointext(joined_player_list,",") + +/client/proc/cmd_display_del_log() + set category = "Debug" + set name = "Display del() Log" + set desc = "Displays a list of things that have failed to GC this round" + + var/dat = "List of things that failed to GC this round

    " + + for(var/path in SSgarbage.didntgc) + dat += "[path] - [SSgarbage.didntgc[path]] times
    " + + dat += "List of paths that did not return a qdel hint in Destroy()

    " + for(var/path in SSgarbage.noqdelhint) + dat += "[path]
    " + + usr << browse(dat, "window=dellog") + +/client/proc/debug_huds(i as num) + set category = "Debug" + set name = "Debug HUDs" + set desc = "Debug the data or antag HUDs" + + if(!holder) + return + debug_variables(huds[i]) + +/client/proc/jump_to_ruin() + set category = "Debug" + set name = "Jump to Ruin" + set desc = "Displays a list of all placed ruins to teleport to." + if(!holder) + return + var/list/names = list() + for(var/i in ruin_landmarks) + var/obj/effect/landmark/ruin/ruin_landmark = i + var/datum/map_template/ruin/template = ruin_landmark.ruin_template + + var/count = 1 + var/name = template.name + var/original_name = name + + while(name in names) + count++ + name = "[original_name] ([count])" + + names[name] = ruin_landmark + + var/ruinname = input("Select ruin", "Jump to Ruin") as null|anything in names + + + var/obj/effect/landmark/ruin/landmark = names[ruinname] + + if(istype(landmark)) + var/datum/map_template/ruin/template = landmark.ruin_template + usr.forceMove(get_turf(landmark)) + usr << "[template.name]" + usr << "[template.description]" + +/client/proc/clear_dynamic_transit() + set category = "Debug" + set name = "Clear Dynamic Transit" + set desc = "Deallocates all transit space, restoring it to round start \ + conditions." + if(!holder) + return + SSshuttle.clear_transit = TRUE + message_admins("[key_name_admin(src)] cleared dynamic transit space.") + feedback_add_details("admin_verb","CDT") // If... + log_admin("[key_name(src)] cleared dynamic transit space.") + + +/client/proc/toggle_medal_disable() + set category = "Debug" + set name = "Toggle Medal Disable" + set desc = "Toggles the safety lock on trying to contact the medal hub." + if(!holder) + return + + global.medals_enabled = !global.medals_enabled + + message_admins("[key_name_admin(src)] [global.medals_enabled ? "disabled" : "enabled"] the medal hub lockout.") + feedback_add_details("admin_verb","TMH") // If... + log_admin("[key_name(src)] [global.medals_enabled ? "disabled" : "enabled"] the medal hub lockout.") \ No newline at end of file diff --git a/code/modules/admin/verbs/diagnostics.dm b/code/modules/admin/verbs/diagnostics.dm new file mode 100644 index 0000000..7d75d17 --- /dev/null +++ b/code/modules/admin/verbs/diagnostics.dm @@ -0,0 +1,102 @@ +/client/proc/air_status(turf/target) + set category = "Debug" + set name = "Display Air Status" + + if(!isturf(target)) + return + + var/datum/gas_mixture/GM = target.return_air() + var/list/GM_gases + var/burning = 0 + if(isopenturf(target)) + var/turf/open/T = target + if(T.active_hotspot) + burning = 1 + + usr << "@[target.x],[target.y]: [GM.temperature] Kelvin, [GM.return_pressure()] kPa [(burning)?("\red BURNING"):(null)]" + for(var/id in GM_gases) + usr << "[GM_gases[id][GAS_META][META_GAS_NAME]]: [GM_gases[id][MOLES]]" + feedback_add_details("admin_verb","DAST") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/fix_next_move() + set category = "Debug" + set name = "Unfreeze Everyone" + var/largest_move_time = 0 + var/largest_click_time = 0 + var/mob/largest_move_mob = null + var/mob/largest_click_mob = null + for(var/mob/M in world) + if(!M.client) + continue + if(M.next_move >= largest_move_time) + largest_move_mob = M + if(M.next_move > world.time) + largest_move_time = M.next_move - world.time + else + largest_move_time = 1 + if(M.next_click >= largest_click_time) + largest_click_mob = M + if(M.next_click > world.time) + largest_click_time = M.next_click - world.time + else + largest_click_time = 0 + log_admin("DEBUG: [key_name(M)] next_move = [M.next_move] lastDblClick = [M.next_click] world.time = [world.time]") + M.next_move = 1 + M.next_click = 0 + message_admins("[key_name_admin(largest_move_mob)] had the largest move delay with [largest_move_time] frames / [largest_move_time/10] seconds!") + message_admins("[key_name_admin(largest_click_mob)] had the largest click delay with [largest_click_time] frames / [largest_click_time/10] seconds!") + message_admins("world.time = [world.time]") + feedback_add_details("admin_verb","UFE") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + return + +/client/proc/radio_report() + set category = "Debug" + set name = "Radio report" + + var/filters = list( + "1" = "RADIO_TO_AIRALARM", + "2" = "RADIO_FROM_AIRALARM", + "3" = "RADIO_CHAT", + "4" = "RADIO_ATMOSIA", + "5" = "RADIO_NAVBEACONS", + "6" = "RADIO_AIRLOCK", + "7" = "RADIO_SECBOT", + "8" = "RADIO_MULEBOT", + "_default" = "NO_FILTER" + ) + var/output = "Radio Report
    " + for (var/fq in SSradio.frequencies) + output += "Freq: [fq]
    " + var/list/datum/radio_frequency/fqs = SSradio.frequencies[fq] + if (!fqs) + output += "  ERROR
    " + continue + for (var/filter in fqs.devices) + var/list/f = fqs.devices[filter] + if (!f) + output += "  [filters[filter]]: ERROR
    " + continue + output += "  [filters[filter]]: [f.len]
    " + for (var/device in f) + if (isobj(device)) + output += "    [device] ([device:x],[device:y],[device:z] in area [get_area(device:loc)])
    " + else + output += "    [device]
    " + + usr << browse(output,"window=radioreport") + feedback_add_details("admin_verb","RR") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/reload_admins() + set name = "Reload Admins" + set category = "Admin" + + if(!src.holder) + return + + var/confirm = alert(src, "Are you sure you want to reload all admins?", "Confirm", "Yes", "No") + if(confirm !="Yes") + return + + load_admins() + feedback_add_details("admin_verb","RLDA") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + message_admins("[key_name_admin(usr)] manually reloaded admins") diff --git a/code/modules/admin/verbs/fps.dm b/code/modules/admin/verbs/fps.dm new file mode 100644 index 0000000..db9f37f --- /dev/null +++ b/code/modules/admin/verbs/fps.dm @@ -0,0 +1,24 @@ +//replaces the old Ticklag verb, fps is easier to understand +/client/proc/set_server_fps() + set category = "Debug" + set name = "Set server fps" + set desc = "Sets game speed in frames-per-second. Can potentially break the game" + + if(!check_rights(R_DEBUG)) + return + + var/new_fps = round(input("Sets game frames-per-second. Can potentially break the game (default: [config.fps])","FPS", world.fps) as num|null) + + if(new_fps <= 0) + src << "Error: set_server_fps(): Invalid world.fps value. No changes made." + return + if(new_fps > config.fps*1.5) + if(alert(src, "You are setting fps to a high value:\n\t[new_fps] frames-per-second\n\tconfig.fps = [config.fps]","Warning!","Confirm","ABORT-ABORT-ABORT") != "Confirm") + return + + var/msg = "[key_name(src)] has modified world.fps to [new_fps]" + log_admin(msg, 0) + message_admins(msg, 0) + feedback_add_details("admin_verb","TICKLAG") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + + world.fps = new_fps \ No newline at end of file diff --git a/code/modules/admin/verbs/getlogs.dm b/code/modules/admin/verbs/getlogs.dm new file mode 100644 index 0000000..7da3b74 --- /dev/null +++ b/code/modules/admin/verbs/getlogs.dm @@ -0,0 +1,108 @@ +/* + HOW DO I LOG RUNTIMES? + Firstly, start dreamdeamon if it isn't already running. Then select "world>Log Session" (or press the F3 key) + navigate the popup window to the data/logs/runtimes/ folder from where your tgstation .dmb is located. + (you may have to make this folder yourself) + + OPTIONAL: you can select the little checkbox down the bottom to make dreamdeamon save the log everytime you + start a world. Just remember to repeat these steps with a new name when you update to a new revision! + + Save it with the name of the revision your server uses (e.g. r3459.txt). + Game Masters will now be able to grant access any runtime logs you have archived this way! + This will allow us to gather information on bugs across multiple servers and make maintaining the TG + codebase for the entire /TG/station commuity a TONNE easier :3 Thanks for your help! +*/ + + +//This proc allows Game Masters to grant a client access to the .getruntimelog verb +//Permissions expire at the end of each round. +//Runtimes can be used to meta or spot game-crashing exploits so it's advised to only grant coders that +//you trust access. Also, it may be wise to ensure that they are not going to play in the current round. +/client/proc/giveruntimelog() + set name = ".giveruntimelog" + set desc = "Give somebody access to any session logfiles saved to the /log/runtime/ folder." + set category = null + + if(!src.holder) + src << "Only Admins may use this command." + return + + var/client/target = input(src,"Choose somebody to grant access to the server's runtime logs (permissions expire at the end of each round):","Grant Permissions",null) as null|anything in clients + if(!istype(target,/client)) + src << "Error: giveruntimelog(): Client not found." + return + + target.verbs |= /client/proc/getruntimelog + target << "You have been granted access to runtime logs. Please use them responsibly or risk being banned." + return + + +//This proc allows download of runtime logs saved within the data/logs/ folder by dreamdeamon. +//It works similarly to show-server-log. +/client/proc/getruntimelog() + set name = ".getruntimelog" + set desc = "Retrieve any session logfiles saved by dreamdeamon." + set category = null + + var/path = browse_files("data/logs/runtimes/") + if(!path) + return + + if(file_spam_check()) + return + + message_admins("[key_name_admin(src)] accessed file: [path]") + src << ftp( file(path) ) + src << "Attempting to send file, this may take a fair few minutes if the file is very large." + return + + +//This proc allows download of past server logs saved within the data/logs/ folder. +//It works similarly to show-server-log. +/client/proc/getserverlog() + set name = ".getserverlog" + set desc = "Fetch logfiles from data/logs" + set category = null + + var/path = browse_files("data/logs/") + if(!path) + return + + if(file_spam_check()) + return + + message_admins("[key_name_admin(src)] accessed file: [path]") + src << ftp( file(path) ) + src << "Attempting to send file, this may take a fair few minutes if the file is very large." + return + + +//Other log stuff put here for the sake of organisation + +//Shows today's server log +/datum/admins/proc/view_txt_log() + set category = "Admin" + set name = "Show Server Log" + set desc = "Shows today's server log." + + if(fexists("[diary]")) + src << ftp(diary) + else + src << "Server log not found, try using .getserverlog." + return + feedback_add_details("admin_verb","VTL") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + return + +//Shows today's attack log +/datum/admins/proc/view_atk_log() + set category = "Admin" + set name = "Show Server Attack Log" + set desc = "Shows today's server attack log." + + if(fexists("[diaryofmeanpeople]")) + src << ftp(diaryofmeanpeople) + else + src << "Server attack log not found, try using .getserverlog." + return + feedback_add_details("admin_verb","SSAL") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + return diff --git a/code/modules/admin/verbs/machine_upgrade.dm b/code/modules/admin/verbs/machine_upgrade.dm new file mode 100644 index 0000000..9f2039f --- /dev/null +++ b/code/modules/admin/verbs/machine_upgrade.dm @@ -0,0 +1,10 @@ +/proc/machine_upgrade(obj/machinery/M in world) + set name = "Tweak Component Ratings" + set category = "Debug" + var/new_rating = input("Enter new rating:","Num") as num + if(new_rating && M.component_parts) + for(var/obj/item/weapon/stock_parts/P in M.component_parts) + P.rating = new_rating + M.RefreshParts() + + feedback_add_details("admin_verb","MU") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! diff --git a/code/modules/admin/verbs/manipulate_organs.dm b/code/modules/admin/verbs/manipulate_organs.dm new file mode 100644 index 0000000..055905a --- /dev/null +++ b/code/modules/admin/verbs/manipulate_organs.dm @@ -0,0 +1,58 @@ +/client/proc/manipulate_organs(mob/living/carbon/C in world) + set name = "Manipulate Organs" + set category = "Debug" + var/operation = input("Select organ operation.", "Organ Manipulation", "cancel") in list("add organ", "add implant", "drop organ/implant", "remove organ/implant", "cancel") + + var/list/organs = list() + switch(operation) + if("add organ") + for(var/path in subtypesof(/obj/item/organ)) + var/dat = replacetext("[path]", "/obj/item/organ/", ":") + organs[dat] = path + + var/obj/item/organ/organ = input("Select organ type:", "Organ Manipulation", null) in organs + organ = organs[organ] + organ = new organ + organ.Insert(C) + + if("add implant") + for(var/path in subtypesof(/obj/item/weapon/implant)) + var/dat = replacetext("[path]", "/obj/item/weapon/implant/", ":") + organs[dat] = path + + var/obj/item/weapon/implant/organ = input("Select implant type:", "Organ Manipulation", null) in organs + organ = organs[organ] + organ = new organ + organ.implant(C) + + if("drop organ/implant", "remove organ/implant") + for(var/X in C.internal_organs) + var/obj/item/organ/I = X + organs["[I.name] ([I.type])"] = I + + for(var/X in C.implants) + var/obj/item/weapon/implant/I = X + organs["[I.name] ([I.type])"] = I + + var/obj/item/organ = input("Select organ/implant:", "Organ Manipulation", null) in organs + organ = organs[organ] + if(!organ) return + var/obj/item/organ/O + var/obj/item/weapon/implant/I + + if(isorgan(organ)) + O = organ + O.Remove(C) + else + I = organ + I.removed(C) + + organ.loc = get_turf(C) + + if(operation == "remove organ/implant") + qdel(organ) + else if(I) // Put the implant in case. + var/obj/item/weapon/implantcase/case = new(get_turf(C)) + case.imp = I + I.loc = case + case.update_icon() \ No newline at end of file diff --git a/code/modules/admin/verbs/map_template_loadverb.dm b/code/modules/admin/verbs/map_template_loadverb.dm new file mode 100644 index 0000000..b1a5249 --- /dev/null +++ b/code/modules/admin/verbs/map_template_loadverb.dm @@ -0,0 +1,44 @@ +/client/proc/map_template_load() + set category = "Debug" + set name = "Map template - Place" + + var/datum/map_template/template + + var/map = input(usr, "Choose a Map Template to place at your CURRENT LOCATION","Place Map Template") as null|anything in map_templates + if(!map) + return + template = map_templates[map] + + var/turf/T = get_turf(mob) + if(!T) + return + + var/list/preview = list() + for(var/S in template.get_affected_turfs(T,centered = TRUE)) + preview += image('icons/turf/overlays.dmi',S,"greenOverlay") + usr.client.images += preview + if(alert(usr,"Confirm location.","Template Confirm","Yes","No") == "Yes") + if(template.load(T, centered = TRUE)) + message_admins("[key_name_admin(usr)] has placed a map template ([template.name]) at (JMP)") + else + usr << "Failed to place map" + usr.client.images -= preview + +/client/proc/map_template_upload() + set category = "Debug" + set name = "Map Template - Upload" + + var/map = input(usr, "Choose a Map Template to upload to template storage","Upload Map Template") as null|file + if(!map) + return + if(copytext("[map]",-4) != ".dmm") + usr << "Bad map file: [map]" + return + + var/datum/map_template/M = new(map=map, rename="[map]") + if(M.preload_size(map)) + usr << "Map template '[map]' ready to place ([M.width]x[M.height])" + map_templates[M.name] = M + message_admins("[key_name_admin(usr)] has uploaded a map template ([map])") + else + usr << "Map template '[map]' failed to load properly" diff --git a/code/modules/admin/verbs/mapping.dm b/code/modules/admin/verbs/mapping.dm new file mode 100644 index 0000000..a74d403 --- /dev/null +++ b/code/modules/admin/verbs/mapping.dm @@ -0,0 +1,255 @@ +//- Are all the floors with or without air, as they should be? (regular or airless) +//- Does the area have an APC? +//- Does the area have an Air Alarm? +//- Does the area have a Request Console? +//- Does the area have lights? +//- Does the area have a light switch? +//- Does the area have enough intercoms? +//- Does the area have enough security cameras? (Use the 'Camera Range Display' verb under Debug) +//- Is the area connected to the scrubbers air loop? +//- Is the area connected to the vent air loop? (vent pumps) +//- Is everything wired properly? +//- Does the area have a fire alarm and firedoors? +//- Do all pod doors work properly? +//- Are accesses set properly on doors, pod buttons, etc. +//- Are all items placed properly? (not below vents, scrubbers, tables) +//- Does the disposal system work properly from all the disposal units in this room and all the units, the pipes of which pass through this room? +//- Check for any misplaced or stacked piece of pipe (air and disposal) +//- Check for any misplaced or stacked piece of wire +//- Identify how hard it is to break into the area and where the weak points are +//- Check if the area has too much empty space. If so, make it smaller and replace the rest with maintenance tunnels. +var/intercom_range_display_status = 0 + +var/list/admin_verbs_debug_mapping = list( + /client/proc/do_not_use_these, //-errorage + /client/proc/camera_view, //-errorage + /client/proc/sec_camera_report, //-errorage + /client/proc/intercom_view, //-errorage + /client/proc/air_status, //Air things + /client/proc/Cell, //More air things + /client/proc/atmosscan, //check plumbing + /client/proc/powerdebug, //check power + /client/proc/count_objects_on_z_level, + /client/proc/count_objects_all, + /client/proc/cmd_assume_direct_control, //-errorage + /client/proc/startSinglo, + /client/proc/set_server_fps, //allows you to set the ticklag. + /client/proc/cmd_admin_grantfullaccess, + /client/proc/cmd_admin_areatest, + /client/proc/cmd_admin_rejuvenate, + /datum/admins/proc/show_traitor_panel, + /client/proc/disable_communication, + /client/proc/print_pointers, + /client/proc/cmd_show_at_list, + /client/proc/cmd_show_at_list, + /client/proc/manipulate_organs +) + +/obj/effect/debugging/marker + icon = 'icons/turf/areas.dmi' + icon_state = "yellow" + +/obj/effect/debugging/marker/Move() + return 0 + +/client/proc/do_not_use_these() + set category = "Mapping" + set name = "-None of these are for ingame use!!" + + ..() + +/client/proc/camera_view() + set category = "Mapping" + set name = "Camera Range Display" + + var/on = 0 + for(var/turf/T in world) + if(T.maptext) + on = 1 + T.maptext = null + + if(!on) + var/list/seen = list() + for(var/obj/machinery/camera/C in cameranet.cameras) + for(var/turf/T in C.can_see()) + seen[T]++ + for(var/turf/T in seen) + T.maptext = "[seen[T]]" + feedback_add_details("admin_verb","mCRD") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + + + +/client/proc/sec_camera_report() + set category = "Mapping" + set name = "Camera Report" + + if(!Master) + alert(usr,"Master_controller not found.","Sec Camera Report") + return 0 + + var/list/obj/machinery/camera/CL = list() + + for(var/obj/machinery/camera/C in cameranet.cameras) + CL += C + + var/output = {"CAMERA ANNOMALITIES REPORT
    +The following annomalities have been detected. The ones in red need immediate attention: Some of those in black may be intentional.
      "} + + for(var/obj/machinery/camera/C1 in CL) + for(var/obj/machinery/camera/C2 in CL) + if(C1 != C2) + if(C1.c_tag == C2.c_tag) + output += "
    • c_tag match for sec. cameras at \[[C1.x], [C1.y], [C1.z]\] ([C1.loc.loc]) and \[[C2.x], [C2.y], [C2.z]\] ([C2.loc.loc]) - c_tag is [C1.c_tag]
    • " + if(C1.loc == C2.loc && C1.dir == C2.dir && C1.pixel_x == C2.pixel_x && C1.pixel_y == C2.pixel_y) + output += "
    • FULLY overlapping sec. cameras at \[[C1.x], [C1.y], [C1.z]\] ([C1.loc.loc]) Networks: [C1.network] and [C2.network]
    • " + if(C1.loc == C2.loc) + output += "
    • overlapping sec. cameras at \[[C1.x], [C1.y], [C1.z]\] ([C1.loc.loc]) Networks: [C1.network] and [C2.network]
    • " + var/turf/T = get_step(C1,turn(C1.dir,180)) + if(!T || !isturf(T) || !T.density ) + if(!(locate(/obj/structure/grille,T))) + var/window_check = 0 + for(var/obj/structure/window/W in T) + if (W.dir == turn(C1.dir,180) || W.dir in list(5,6,9,10) ) + window_check = 1 + break + if(!window_check) + output += "
    • Camera not connected to wall at \[[C1.x], [C1.y], [C1.z]\] ([C1.loc.loc]) Network: [C1.network]
    • " + + output += "
    " + usr << browse(output,"window=airreport;size=1000x500") + feedback_add_details("admin_verb","mCRP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/intercom_view() + set category = "Mapping" + set name = "Intercom Range Display" + + if(intercom_range_display_status) + intercom_range_display_status = 0 + else + intercom_range_display_status = 1 + + for(var/obj/effect/debugging/marker/M in world) + qdel(M) + + if(intercom_range_display_status) + for(var/obj/item/device/radio/intercom/I in world) + for(var/turf/T in orange(7,I)) + var/obj/effect/debugging/marker/F = new/obj/effect/debugging/marker(T) + if (!(F in view(7,I.loc))) + qdel(F) + feedback_add_details("admin_verb","mIRD") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/cmd_show_at_list() + set category = "Mapping" + set name = "Show roundstart AT list" + set desc = "Displays a list of active turfs coordinates at roundstart" + + var/dat = {"Coordinate list of Active Turfs at Roundstart +
    Real-time Active Turfs list you can see in Air Subsystem at active_turfs var
    "} + + for(var/i=1; i<=active_turfs_startlist.len; i++) + dat += active_turfs_startlist[i] + dat += "
    " + + usr << browse(dat, "window=at_list") + + feedback_add_details("admin_verb","mATL") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/enable_debug_verbs() + set category = "Debug" + set name = "Debug verbs - Enable" + if(!check_rights(R_DEBUG)) + return + verbs -= /client/proc/enable_debug_verbs + verbs.Add(/client/proc/disable_debug_verbs, admin_verbs_debug_mapping) + feedback_add_details("admin_verb","mDVE") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/disable_debug_verbs() + set category = "Debug" + set name = "Debug verbs - Disable" + verbs.Remove(/client/proc/disable_debug_verbs, admin_verbs_debug_mapping) + verbs += /client/proc/enable_debug_verbs + feedback_add_details("admin_verb", "mDVD") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/count_objects_on_z_level() + set category = "Mapping" + set name = "Count Objects On Level" + var/level = input("Which z-level?","Level?") as text + if(!level) return + var/num_level = text2num(level) + if(!num_level) return + if(!isnum(num_level)) return + + var/type_text = input("Which type path?","Path?") as text + if(!type_text) return + var/type_path = text2path(type_text) + if(!type_path) return + + var/count = 0 + + var/list/atom/atom_list = list() + + for(var/atom/A in world) + if(istype(A,type_path)) + var/atom/B = A + while(!(isturf(B.loc))) + if(B && B.loc) + B = B.loc + else + break + if(B) + if(B.z == num_level) + count++ + atom_list += A + /* + var/atom/temp_atom + for(var/i = 0; i <= (atom_list.len/10); i++) + var/line = "" + for(var/j = 1; j <= 10; j++) + if(i*10+j <= atom_list.len) + temp_atom = atom_list[i*10+j] + line += " no.[i+10+j]@\[[temp_atom.x], [temp_atom.y], [temp_atom.z]\]; " + world << line*/ + + world << "There are [count] objects of type [type_path] on z-level [num_level]" + feedback_add_details("admin_verb","mOBJZ") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/count_objects_all() + set category = "Mapping" + set name = "Count Objects All" + + var/type_text = input("Which type path?","") as text + if(!type_text) return + var/type_path = text2path(type_text) + if(!type_path) return + + var/count = 0 + + for(var/atom/A in world) + if(istype(A,type_path)) + count++ + /* + var/atom/temp_atom + for(var/i = 0; i <= (atom_list.len/10); i++) + var/line = "" + for(var/j = 1; j <= 10; j++) + if(i*10+j <= atom_list.len) + temp_atom = atom_list[i*10+j] + line += " no.[i+10+j]@\[[temp_atom.x], [temp_atom.y], [temp_atom.z]\]; " + world << line*/ + + world << "There are [count] objects of type [type_path] in the game world" + feedback_add_details("admin_verb","mOBJ") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + + +//This proc is intended to detect lag problems relating to communication procs +var/global/say_disabled = 0 +/client/proc/disable_communication() + set category = "Mapping" + set name = "Disable all communication verbs" + + say_disabled = !say_disabled + if(say_disabled) + message_admins("[src.ckey] used 'Disable all communication verbs', killing all communication methods.") + else + message_admins("[src.ckey] used 'Disable all communication verbs', restoring all communication methods.") diff --git a/code/modules/admin/verbs/maprotation.dm b/code/modules/admin/verbs/maprotation.dm new file mode 100644 index 0000000..91d2869 --- /dev/null +++ b/code/modules/admin/verbs/maprotation.dm @@ -0,0 +1,44 @@ +/client/proc/forcerandomrotate() + set category = "Server" + set name = "Trigger Random Map Rotation" + var/rotate = alert("Force a random map rotation to trigger?", "Rotate map?", "Yes", "Cancel") + if (rotate != "Yes") + return + message_admins("[key_name_admin(usr)] is forcing a random map rotation.") + log_admin("[key_name(usr)] is forcing a random map rotation.") + ticker.maprotatechecked = 1 + maprotate() + +/client/proc/adminchangemap() + set category = "Server" + set name = "Change Map" + var/list/maprotatechoices = list() + for (var/map in config.maplist) + var/datum/votablemap/VM = config.maplist[map] + var/mapname = VM.friendlyname + if (VM == config.defaultmap) + mapname += " (Default)" + + if (VM.minusers > 0 || VM.maxusers > 0) + mapname += " \[" + if (VM.minusers > 0) + mapname += "[VM.minusers]" + else + mapname += "0" + mapname += "-" + if (VM.maxusers > 0) + mapname += "[VM.maxusers]" + else + mapname += "inf" + mapname += "\]" + + maprotatechoices[mapname] = VM + var/chosenmap = input("Choose a map to change to", "Change Map") as null|anything in maprotatechoices + if (!chosenmap) + return + ticker.maprotatechecked = 1 + var/datum/votablemap/VM = maprotatechoices[chosenmap] + message_admins("[key_name_admin(usr)] is changing the map to [VM.name]([VM.friendlyname])") + log_admin("[key_name(usr)] is changing the map to [VM.name]([VM.friendlyname])") + if (changemap(VM) == 0) + message_admins("[key_name_admin(usr)] has changed the map to [VM.name]([VM.friendlyname])") \ No newline at end of file diff --git a/code/modules/admin/verbs/massmodvar.dm b/code/modules/admin/verbs/massmodvar.dm new file mode 100644 index 0000000..afa7c01 --- /dev/null +++ b/code/modules/admin/verbs/massmodvar.dm @@ -0,0 +1,538 @@ +/client/proc/cmd_mass_modify_object_variables(atom/A, var_name) + set category = "Debug" + set name = "Mass Edit Variables" + set desc="(target) Edit all instances of a target item's variables" + + var/method = 0 //0 means strict type detection while 1 means this type and all subtypes (IE: /obj/item with this set to 1 will set it to ALL itms) + + if(!check_rights(R_VAREDIT)) + return + + if(A && A.type) + if(typesof(A.type)) + switch(input("Strict object type detection?") as null|anything in list("Strictly this type","This type and subtypes", "Cancel")) + if("Strictly this type") + method = 0 + if("This type and subtypes") + method = 1 + if("Cancel") + return + if(null) + return + + src.massmodify_variables(A, var_name, method) + feedback_add_details("admin_verb","MEV") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + + +/client/proc/massmodify_variables(atom/O, var_name = "", method = 0) + if(!check_rights(R_VAREDIT)) + return + + for(var/p in forbidden_varedit_object_types) + if( istype(O,p) ) + usr << "It is forbidden to edit this object's variables." + return + + var/list/names = list() + for (var/V in O.vars) + names += V + + names = sortList(names) + + var/variable = "" + + if(!var_name) + variable = input("Which var?","Var") as null|anything in names + else + variable = var_name + + if(!variable) + return + var/default + var/var_value = O.vars[variable] + var/dir + + if(variable in VVckey_edit) + usr << "It's forbidden to mass-modify ckeys. I'll crash everyone's client you dummy." + return + if(variable in VVlocked) + if(!check_rights(R_DEBUG)) + return + if(variable in VVicon_edit_lock) + if(!check_rights(R_FUN|R_DEBUG)) + return + + if(isnull(var_value)) + usr << "Unable to determine variable type." + + else if(isnum(var_value)) + usr << "Variable appears to be NUM." + default = "num" + setDir(1) + + else if(istext(var_value)) + usr << "Variable appears to be TEXT." + default = "text" + + else if(isloc(var_value)) + usr << "Variable appears to be REFERENCE." + default = "reference" + + else if(isicon(var_value)) + usr << "Variable appears to be ICON." + var_value = "\icon[var_value]" + default = "icon" + + else if(istype(var_value,/client)) + usr << "Variable appears to be CLIENT." + default = "cancel" + + else if(istype(var_value,/atom) || istype(var_value,/datum)) + usr << "Variable appears to be TYPE." + default = "type" + + else if(istype(var_value,/list)) + usr << "Variable appears to be LIST." + default = "list" + + else + usr << "Variable appears to be FILE." + default = "file" + + usr << "Variable contains: [var_value]" + if(dir) + switch(var_value) + if(1) + setDir("NORTH") + if(2) + setDir("SOUTH") + if(4) + setDir("EAST") + if(8) + setDir("WEST") + if(5) + setDir("NORTHEAST") + if(6) + setDir("SOUTHEAST") + if(9) + setDir("NORTHWEST") + if(10) + setDir("SOUTHWEST") + else + setDir(null) + if(dir) + usr << "If a direction, direction is: [dir]" + + var/class = input("What kind of variable?","Variable Type",default) as null|anything in list("text", + "num","type","icon","file","edit referenced object","restore to default") + + if(!class) + return + + var/original_name + + if (!istype(O, /atom)) + original_name = "\ref[O] ([O])" + else + original_name = O:name + + switch(class) + + if("restore to default") + O.vars[variable] = initial(O.vars[variable]) + if(method) + if(ismob(O)) + for(var/mob/M in mob_list) + if ( istype(M , O.type) ) + M.vars[variable] = O.vars[variable] + CHECK_TICK + + else if(isobj(O)) + for(var/obj/A in world) + if ( istype(A , O.type) ) + A.vars[variable] = O.vars[variable] + CHECK_TICK + + else if(isturf(O)) + for(var/turf/A in world) + if ( istype(A , O.type) ) + A.vars[variable] = O.vars[variable] + CHECK_TICK + + else + if(ismob(O)) + for(var/mob/M in mob_list) + if (M.type == O.type) + M.vars[variable] = O.vars[variable] + CHECK_TICK + + else if(isobj(O)) + for(var/obj/A in world) + if (A.type == O.type) + A.vars[variable] = O.vars[variable] + CHECK_TICK + + else if(isturf(O)) + for(var/turf/A in world) + if (A.type == O.type) + A.vars[variable] = O.vars[variable] + CHECK_TICK + + if("edit referenced object") + return .(O.vars[variable]) + + if("text") + var/new_value = input("Enter new text:","Text",O.vars[variable]) as message|null + if(new_value == null) return + + var/process_vars = 0 + var/unique = 0 + if(findtext(new_value,"\[")) + process_vars = alert(usr,"\[] detected in string, process as variables?","Process Variables?","Yes","No") + if(process_vars == "Yes") + process_vars = 1 + unique = alert(usr,"Process vars unique to each instance, or same for all?","Variable Association","Unique","Same") + if(unique == "Unique") + unique = 1 + else + unique = 0 + else + process_vars = 0 + + var/pre_processing = new_value + var/list/varsvars = list() + + if(process_vars) + varsvars = string2listofvars(new_value, O) + if(varsvars.len) + for(var/V in varsvars) + new_value = replacetext(new_value,"\[[V]]","[O.vars[V]]") + + O.vars[variable] = new_value + + //Convert the string vars for anything that's not O + if(method) + if(ismob(O)) + for(var/mob/M in mob_list) + if ( istype(M , O.type) ) + new_value = pre_processing //reset new_value, ready to convert it uniquely for the next iteration + + if(process_vars) + if(unique) + for(var/V in varsvars) + new_value = replacetext(new_value,"\[[V]]","[M.vars[V]]") + else + new_value = O.vars[variable] //We already processed the non-unique form for O, reuse it + + M.vars[variable] = new_value + CHECK_TICK + + else if(isobj(O)) + for(var/obj/A in world) + if ( istype(A , O.type) ) + new_value = pre_processing + + if(process_vars) + if(unique) + for(var/V in varsvars) + new_value = replacetext(new_value,"\[[V]]","[A.vars[V]]") + else + new_value = O.vars[variable] + + A.vars[variable] = new_value + CHECK_TICK + + else if(isturf(O)) + for(var/turf/A in world) + if ( istype(A , O.type) ) + new_value = pre_processing + + if(process_vars) + if(unique) + for(var/V in varsvars) + new_value = replacetext(new_value,"\[[V]]","[A.vars[V]]") + else + new_value = O.vars[variable] + + A.vars[variable] = new_value + CHECK_TICK + else + if(ismob(O)) + for(var/mob/M in mob_list) + if (M.type == O.type) + new_value = pre_processing + + if(process_vars) + if(unique) + for(var/V in varsvars) + new_value = replacetext(new_value,"\[[V]]","[M.vars[V]]") + else + new_value = O.vars[variable] + + M.vars[variable] = new_value + CHECK_TICK + + else if(isobj(O)) + for(var/obj/A in world) + if (A.type == O.type) + new_value = pre_processing + + if(process_vars) + if(unique) + for(var/V in varsvars) + new_value = replacetext(new_value,"\[[V]]","[A.vars[V]]") + else + new_value = O.vars[variable] + + A.vars[variable] = new_value + CHECK_TICK + + else if(isturf(O)) + for(var/turf/A in world) + if (A.type == O.type) + new_value = pre_processing + + if(process_vars) + if(unique) + for(var/V in varsvars) + new_value = replacetext(new_value,"\[[V]]","[A.vars[V]]") + else + new_value = O.vars[variable] + + A.vars[variable] = new_value + CHECK_TICK + + if("num") + var/new_value = input("Enter new number:","Num",\ + O.vars[variable]) as num|null + if(new_value == null) return + + if(variable=="luminosity") + O.SetLuminosity(new_value) + else + O.vars[variable] = new_value + + if(method) + if(ismob(O)) + for(var/mob/M in mob_list) + if ( istype(M , O.type) ) + if(variable=="luminosity") + M.SetLuminosity(new_value) + else + M.vars[variable] = O.vars[variable] + CHECK_TICK + + else if(isobj(O)) + for(var/obj/A in world) + if ( istype(A , O.type) ) + if(variable=="luminosity") + A.SetLuminosity(new_value) + else + A.vars[variable] = O.vars[variable] + CHECK_TICK + + else if(isturf(O)) + for(var/turf/A in world) + if ( istype(A , O.type) ) + if(variable=="luminosity") + A.SetLuminosity(new_value) + else + A.vars[variable] = O.vars[variable] + CHECK_TICK + + else + if(ismob(O)) + for(var/mob/M in mob_list) + if (M.type == O.type) + if(variable=="luminosity") + M.SetLuminosity(new_value) + else + M.vars[variable] = O.vars[variable] + CHECK_TICK + + else if(isobj(O)) + for(var/obj/A in world) + if (A.type == O.type) + if(variable=="luminosity") + A.SetLuminosity(new_value) + else + A.vars[variable] = O.vars[variable] + CHECK_TICK + + else if(isturf(O)) + for(var/turf/A in world) + if (A.type == O.type) + if(variable=="luminosity") + A.SetLuminosity(new_value) + else + A.vars[variable] = O.vars[variable] + CHECK_TICK + + if("type") + var/new_value + new_value = input("Enter type:","Type",O.vars[variable]) as null|anything in typesof(/obj,/mob,/area,/turf) + if(new_value == null) return + O.vars[variable] = new_value + if(method) + if(ismob(O)) + for(var/mob/M in mob_list) + if ( istype(M , O.type) ) + M.vars[variable] = O.vars[variable] + CHECK_TICK + + else if(isobj(O)) + for(var/obj/A in world) + if ( istype(A , O.type) ) + A.vars[variable] = O.vars[variable] + CHECK_TICK + + else if(isturf(O)) + for(var/turf/A in world) + if ( istype(A , O.type) ) + A.vars[variable] = O.vars[variable] + CHECK_TICK + + else + if(ismob(O)) + for(var/mob/M in mob_list) + if (M.type == O.type) + M.vars[variable] = O.vars[variable] + CHECK_TICK + + else if(isobj(O)) + for(var/obj/A in world) + if (A.type == O.type) + A.vars[variable] = O.vars[variable] + CHECK_TICK + + else if(isturf(O)) + for(var/turf/A in world) + if (A.type == O.type) + A.vars[variable] = O.vars[variable] + CHECK_TICK + + if("file") + var/new_value = input("Pick file:","File",O.vars[variable]) as null|file + if(new_value == null) return + O.vars[variable] = new_value + + if(method) + if(ismob(O)) + for(var/mob/M in mob_list) + if ( istype(M , O.type) ) + M.vars[variable] = O.vars[variable] + CHECK_TICK + + else if(isobj(O)) + for(var/obj/A in world) + if ( istype(A , O.type) ) + A.vars[variable] = O.vars[variable] + CHECK_TICK + + else if(isturf(O)) + for(var/turf/A in world) + if ( istype(A , O.type) ) + A.vars[variable] = O.vars[variable] + CHECK_TICK + else + if(ismob(O)) + for(var/mob/M in mob_list) + if (M.type == O.type) + M.vars[variable] = O.vars[variable] + CHECK_TICK + + else if(isobj(O)) + for(var/obj/A in world) + if (A.type == O.type) + A.vars[variable] = O.vars[variable] + CHECK_TICK + + else if(isturf(O)) + for(var/turf/A in world) + if (A.type == O.type) + A.vars[variable] = O.vars[variable] + CHECK_TICK + + if("icon") + var/new_value = input("Pick icon:","Icon",O.vars[variable]) as null|icon + if(new_value == null) return + O.vars[variable] = new_value + if(method) + if(ismob(O)) + for(var/mob/M in mob_list) + if ( istype(M , O.type) ) + M.vars[variable] = O.vars[variable] + CHECK_TICK + + else if(isobj(O)) + for(var/obj/A in world) + if ( istype(A , O.type) ) + A.vars[variable] = O.vars[variable] + CHECK_TICK + + else if(isturf(O)) + for(var/turf/A in world) + if ( istype(A , O.type) ) + A.vars[variable] = O.vars[variable] + CHECK_TICK + + else + if(ismob(O)) + for(var/mob/M in mob_list) + if (M.type == O.type) + M.vars[variable] = O.vars[variable] + CHECK_TICK + + else if(isobj(O)) + for(var/obj/A in world) + if (A.type == O.type) + A.vars[variable] = O.vars[variable] + CHECK_TICK + + else if(isturf(O)) + for(var/turf/A in world) + if (A.type == O.type) + A.vars[variable] = O.vars[variable] + CHECK_TICK + + if(method) + if(ismob(O)) + for(var/mob/M in mob_list) + if(istype(M,O.type)) + M.on_varedit(variable) + CHECK_TICK + + else if(isobj(O)) + for(var/obj/A in world) + if(istype(A,O.type)) + A.on_varedit(variable) + CHECK_TICK + + else if(isturf(O)) + for(var/turf/A in block(locate(1,1,1),locate(world.maxx,world.maxy,world.maxz))) + if(istype(A,O.type)) + A.on_varedit(variable) + CHECK_TICK + + else + if(ismob(O)) + for(var/mob/M in mob_list) + if(M.type == O.type) + M.on_varedit(variable) + CHECK_TICK + + else if(isobj(O)) + for(var/obj/A in world) + if(A.type == O.type) + A.on_varedit(variable) + CHECK_TICK + + else if(isturf(O)) + for(var/turf/A in world) + if(A.type == O.type) + A.on_varedit(variable) + CHECK_TICK + + world.log << "### MassVarEdit by [src]: [O.type] [variable]=[html_encode("[O.vars[variable]]")]" + log_admin("[key_name(src)] mass modified [original_name]'s [variable] to [O.vars[variable]]") + message_admins("[key_name_admin(src)] mass modified [original_name]'s [variable] to [O.vars[variable]]") \ No newline at end of file diff --git a/code/modules/admin/verbs/modifyvariables.dm b/code/modules/admin/verbs/modifyvariables.dm new file mode 100644 index 0000000..06a68b6 --- /dev/null +++ b/code/modules/admin/verbs/modifyvariables.dm @@ -0,0 +1,696 @@ +var/list/forbidden_varedit_object_types = list( + /datum/admins, //Admins editing their own admin-power object? Yup, sounds like a good idea. + /obj/machinery/blackbox_recorder, //Prevents people messing with feedback gathering + /datum/feedback_variable, //Prevents people messing with feedback gathering + /datum/admin_rank //editing my own rank? it's more likely than you think + ) + +var/list/VVlocked = list("vars", "var_edited", "client", "virus", "viruses", "cuffed", "last_eaten", "unlock_content", "step_x", "step_y", "force_ending") +var/list/VVicon_edit_lock = list("icon", "icon_state", "overlays", "underlays", "resize") +var/list/VVckey_edit = list("key", "ckey") + +/* +/client/proc/cmd_modify_object_variables(obj/O as obj|mob|turf|area in world) + set category = "Debug" + set name = "Edit Variables" + set desc="(target) Edit a target item's variables" + src.modify_variables(O) + feedback_add_details("admin_verb","EDITV") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! +*/ + +/client/proc/cmd_modify_ticker_variables() + set category = "Debug" + set name = "Edit Ticker Variables" + + if (ticker == null) + src << "Game hasn't started yet." + else + src.modify_variables(ticker) + feedback_add_details("admin_verb","ETV") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/mod_list_add_ass(atom/O) //haha + + var/class = "text" + if(src.holder && src.holder.marked_datum) + class = input("What kind of variable?","Variable Type") as null|anything in list("text", + "num","type","reference","mob reference", "icon","file","list","edit referenced object","restore to default", "new atom", "new datum", "marked datum ([holder.marked_datum.type])") + else + class = input("What kind of variable?","Variable Type") as null|anything in list("text", + "num","type","reference","mob reference", "icon","file","list","edit referenced object","restore to default", "new atom", "new datum") + + if(!class) + return + + if(holder.marked_datum && class == "marked datum ([holder.marked_datum.type])") + class = "marked datum" + + var/var_value = null + + switch(class) + + if("text") + var_value = input("Enter new text:","Text") as null|message + + if("num") + var_value = input("Enter new number:","Num") as null|num + + if("type") + var_value = input("Enter type:","Type") as null|anything in typesof(/obj,/mob,/area,/turf) + + if("reference") + var_value = input("Select reference:","Reference") as null|mob|obj|turf|area in world + + if("mob reference") + var_value = input("Select reference:","Reference") as null|mob in world + + if("file") + var_value = input("Pick file:","File") as null|file + + if("icon") + var_value = input("Pick icon:","Icon") as null|icon + + if("marked datum") + var_value = holder.marked_datum + + if("new atom") + var/type = input("Enter type:","Type") as null|anything in typesof(/obj,/mob,/area,/turf) + var_value = new type() + + if("new datum") + var/type = input("Enter type:","Type") as null|anything in (typesof(/datum)-typesof(/obj,/mob,/area,/turf,/client)) + var_value = new type() + + if(!var_value) return + + if(istext(var_value)) + if(findtext(var_value,"\[")) + var/process_vars = alert(usr,"\[] detected in string, process as variables?","Process Variables?","Yes","No") + if(process_vars == "Yes") + var/list/varsvars = string2listofvars(var_value, O) + for(var/V in varsvars) + var_value = replacetext(var_value,"\[[V]]","[O.vars[V]]") + + return var_value + + +/client/proc/mod_list_add(list/L, atom/O, original_name, objectvar) + + var/class = "text" + if(src.holder && src.holder.marked_datum) + class = input("What kind of variable?","Variable Type") as null|anything in list("text", + "num","type","reference","mob reference", "icon","file","list","edit referenced object","restore to default", "new atom", "new datum","marked datum ([holder.marked_datum.type])") + else + class = input("What kind of variable?","Variable Type") as null|anything in list("text", + "num","type","reference","mob reference", "icon","file","list","edit referenced object","restore to default", "new atom", "new datum") + + if(!class) + return + + if(holder.marked_datum && class == "marked datum ([holder.marked_datum.type])") + class = "marked datum" + + var/var_value = null + + switch(class) + + if("text") + var_value = input("Enter new text:","Text") as message + + if("num") + var_value = input("Enter new number:","Num") as num + + if("type") + var_value = input("Enter type:","Type") in typesof(/obj,/mob,/area,/turf) + + if("reference") + var_value = input("Select reference:","Reference") as mob|obj|turf|area in world + + if("mob reference") + var_value = input("Select reference:","Reference") as mob in world + + if("file") + var_value = input("Pick file:","File") as file + + if("icon") + var_value = input("Pick icon:","Icon") as icon + + if("marked datum") + var_value = holder.marked_datum + + if("new atom") + var/type = input("Enter type:","Type") as null|anything in typesof(/obj,/mob,/area,/turf) + var_value = new type() + + if("new datum") + var/type = input("Enter type:","Type") as null|anything in (typesof(/datum)-typesof(/obj,/mob,/area,/turf,/client)) + var_value = new type() + + if(!var_value) return + + if(istext(var_value)) + if(findtext(var_value,"\[")) + var/process_vars = alert(usr,"\[] detected in string, process as variables?","Process Variables?","Yes","No") + if(process_vars == "Yes") + var/list/varsvars = string2listofvars(var_value, O) + for(var/V in varsvars) + var_value = replacetext(var_value,"\[[V]]","[O.vars[V]]") + + L += var_value + switch(alert("Would you like to associate a var with the list entry?",,"Yes","No")) + if("Yes") + L[var_value] = mod_list_add_ass(O) //haha + O.on_varedit(objectvar) + world.log << "### ListVarEdit by [src]: [O.type] [objectvar]: ADDED=[var_value]" + log_admin("[key_name(src)] modified [original_name]'s [objectvar]: ADDED=[var_value]") + message_admins("[key_name_admin(src)] modified [original_name]'s [objectvar]: ADDED=[var_value]") + +/client/proc/mod_list(list/L, atom/O, original_name, objectvar) + if(!check_rights(R_VAREDIT)) + return + if(!istype(L,/list)) + src << "Not a List." + + if(L.len > 1000) + var/confirm = alert(src, "The list you're trying to edit is very long, continuing may crash the server.", "Warning", "Continue", "Abort") + if(confirm != "Continue") + return + + var/assoc = 0 + if(L.len > 0) + var/a = L[1] + if(istext(a) && L[a] != null) + assoc = 1 //This is pretty weak test but i can't think of anything else + usr << "List appears to be associative." + + var/list/names = null + if(!assoc) + names = sortList(L) + + var/variable + var/assoc_key + if(assoc) + variable = input("Which var?","Var") as null|anything in L + "(ADD VAR)" + "(CLEAR NULLS)" + else + variable = input("Which var?","Var") as null|anything in names + "(ADD VAR)" + "(CLEAR NULLS)" + + if(variable == "(ADD VAR)") + mod_list_add(L, O, original_name, objectvar) + return + + if(variable == "(CLEAR NULLS)") + listclearnulls(L) + return + + if(assoc) + assoc_key = variable + variable = L[assoc_key] + + if(!assoc && !variable || assoc && !assoc_key) + return + + var/default + + var/dir + + if(variable in VVlocked) + if(!check_rights(R_DEBUG)) + return + if(variable in VVckey_edit) + if(!check_rights(R_SPAWN|R_DEBUG)) + return + if(variable in VVicon_edit_lock) + if(!check_rights(R_FUN|R_DEBUG)) + return + + if(isnull(variable)) + usr << "Unable to determine variable type." + + else if(isnum(variable)) + usr << "Variable appears to be NUM." + default = "num" + setDir(1) + + else if(istext(variable)) + usr << "Variable appears to be TEXT." + default = "text" + + else if(isloc(variable)) + usr << "Variable appears to be REFERENCE." + default = "reference" + + else if(isicon(variable)) + usr << "Variable appears to be ICON." + variable = "\icon[variable]" + default = "icon" + + else if(istype(variable,/client)) + usr << "Variable appears to be CLIENT." + default = "cancel" + + else if(istype(variable,/atom) || istype(variable,/datum)) + usr << "Variable appears to be TYPE." + default = "type" + + else if(istype(variable,/list)) + usr << "Variable appears to be LIST." + default = "list" + + else + usr << "Variable appears to be FILE." + default = "file" + + usr << "Variable contains: [variable]" + if(dir) + switch(variable) + if(1) + setDir("NORTH") + if(2) + setDir("SOUTH") + if(4) + setDir("EAST") + if(8) + setDir("WEST") + if(5) + setDir("NORTHEAST") + if(6) + setDir("SOUTHEAST") + if(9) + setDir("NORTHWEST") + if(10) + setDir("SOUTHWEST") + else + setDir(null) + + if(dir) + usr << "If a direction, direction is: [dir]" + + var/class = "text" + if(src.holder && src.holder.marked_datum) + class = input("What kind of variable?","Variable Type",default) as null|anything in list("text", + "num","type","reference","mob reference", "icon","file","list","edit referenced object","restore to default", "new atom", "new datum","marked datum ([holder.marked_datum.type])", "DELETE FROM LIST") + else + class = input("What kind of variable?","Variable Type",default) as null|anything in list("text", + "num","type","reference","mob reference", "icon","file","list","edit referenced object","restore to default", "new atom", "new datum", "DELETE FROM LIST") + + if(!class) + return + + if(holder.marked_datum && class == "marked datum ([holder.marked_datum.type])") + class = "marked datum" + + var/original_var + if(assoc) + original_var = L[assoc_key] + else + original_var = L[L.Find(variable)] + + var/new_var + switch(class) //Spits a runtime error if you try to modify an entry in the contents list. Dunno how to fix it, yet. + + if("list") + mod_list(variable, O, original_name, objectvar) + + if("restore to default") + new_var = initial(variable) + if(assoc) + L[assoc_key] = new_var + else + L[L.Find(variable)] = new_var + + if("edit referenced object") + modify_variables(variable) + + if("DELETE FROM LIST") + world.log << "### ListVarEdit by [src]: [O.type] [objectvar]: REMOVED=[html_encode("[variable]")]" + log_admin("[key_name(src)] modified [original_name]'s [objectvar]: REMOVED=[variable]") + message_admins("[key_name_admin(src)] modified [original_name]'s [objectvar]: REMOVED=[variable]") + L -= variable + O.on_varedit(objectvar) + return + + if("text") + new_var = input("Enter new text:","Text") as message + + if(findtext(new_var,"\[")) + var/process_vars = alert(usr,"\[] detected in string, process as variables?","Process Variables?","Yes","No") + if(process_vars == "Yes") + var/list/varsvars = string2listofvars(new_var, O) + for(var/V in varsvars) + new_var = replacetext(new_var,"\[[V]]","[O.vars[V]]") + + if(assoc) + L[assoc_key] = new_var + else + L[L.Find(variable)] = new_var + + if("num") + new_var = input("Enter new number:","Num") as num + if(assoc) + L[assoc_key] = new_var + else + L[L.Find(variable)] = new_var + + if("type") + new_var = input("Enter type:","Type") in typesof(/obj,/mob,/area,/turf) + if(assoc) + L[assoc_key] = new_var + else + L[L.Find(variable)] = new_var + + if("reference") + new_var = input("Select reference:","Reference") as mob|obj|turf|area in world + if(assoc) + L[assoc_key] = new_var + else + L[L.Find(variable)] = new_var + + if("mob reference") + new_var = input("Select reference:","Reference") as mob in world + if(assoc) + L[assoc_key] = new_var + else + L[L.Find(variable)] = new_var + + if("file") + new_var = input("Pick file:","File") as file + if(assoc) + L[assoc_key] = new_var + else + L[L.Find(variable)] = new_var + + if("icon") + new_var = input("Pick icon:","Icon") as icon + if(assoc) + L[assoc_key] = new_var + else + L[L.Find(variable)] = new_var + + if("marked datum") + new_var = holder.marked_datum + if(assoc) + L[assoc_key] = new_var + else + L[L.Find(variable)] = new_var + + if("new atom") + var/type = input("Enter type:","Type") as null|anything in typesof(/obj,/mob,/area,/turf) + new_var = new type() + if(assoc) + L[assoc_key] = new_var + else + L[L.Find(variable)] = new_var + + if("new datum") + var/type = input("Enter type:","Type") as null|anything in (typesof(/datum)-typesof(/obj,/mob,/area,/turf,/client)) + new_var = new type() + if(assoc) + L[assoc_key] = new_var + else + L[L.Find(variable)] = new_var + + O.on_varedit(objectvar) + world.log << "### ListVarEdit by [src]: [O.type] [objectvar]: [original_var]=[new_var]" + log_admin("[key_name(src)] modified [original_name]'s [objectvar]: [original_var]=[new_var]") + message_admins("[key_name_admin(src)] modified [original_name]'s varlist [objectvar]: [original_var]=[new_var]") + +/client/proc/modify_variables(atom/O, param_var_name = null, autodetect_class = 0) + if(!check_rights(R_VAREDIT)) + return + + if(is_type_in_list(O, forbidden_varedit_object_types)) + usr << "It is forbidden to edit this object's variables." + return + + if(istype(O, /client) && (param_var_name == "ckey" || param_var_name == "key")) + usr << "You cannot edit ckeys on client objects." + return + + var/class + var/variable + var/var_value + + if(param_var_name) + if(!param_var_name in O.vars) + src << "A variable with this name ([param_var_name]) doesn't exist in this atom ([O])" + return + + if(param_var_name in VVlocked) + if(!check_rights(R_DEBUG)) + return + if(param_var_name in VVckey_edit) + if(!check_rights(R_SPAWN|R_DEBUG)) + return + if(param_var_name in VVicon_edit_lock) + if(!check_rights(R_FUN|R_DEBUG)) + return + + variable = param_var_name + + var_value = O.vars[variable] + + if(autodetect_class) + if(isnull(var_value)) + usr << "Unable to determine variable type." + class = null + autodetect_class = null + else if(isnum(var_value)) + usr << "Variable appears to be NUM." + class = "num" + setDir(1) + + else if(istext(var_value)) + usr << "Variable appears to be TEXT." + class = "text" + + else if(isloc(var_value)) + usr << "Variable appears to be REFERENCE." + class = "reference" + + else if(isicon(var_value)) + usr << "Variable appears to be ICON." + var_value = "\icon[var_value]" + class = "icon" + + else if(istype(var_value,/client)) + usr << "Variable appears to be CLIENT." + class = "cancel" + + else if(istype(var_value,/atom) || istype(var_value,/datum)) + usr << "Variable appears to be TYPE." + class = "type" + + else if(istype(var_value,/list)) + usr << "Variable appears to be LIST." + class = "list" + + else + usr << "Variable appears to be FILE." + class = "file" + + else + + var/list/names = list() + for (var/V in O.vars) + names += V + + names = sortList(names) + + variable = input("Which var?","Var") as null|anything in names + if(!variable) + return + var_value = O.vars[variable] + + if(variable in VVlocked) + if(!check_rights(R_DEBUG)) + return + if(variable in VVckey_edit) + if(!check_rights(R_SPAWN|R_DEBUG)) + return + if(variable in VVicon_edit_lock) + if(!check_rights(R_FUN|R_DEBUG)) + return + + if(!autodetect_class) + + var/dir + var/default + if(isnull(var_value)) + usr << "Unable to determine variable type." + + else if(isnum(var_value)) + usr << "Variable appears to be NUM." + default = "num" + setDir(1) + + else if(istext(var_value)) + usr << "Variable appears to be TEXT." + default = "text" + + else if(isloc(var_value)) + usr << "Variable appears to be REFERENCE." + default = "reference" + + else if(isicon(var_value)) + usr << "Variable appears to be ICON." + var_value = "\icon[var_value]" + default = "icon" + + else if(istype(var_value,/client)) + usr << "Variable appears to be CLIENT." + default = "cancel" + + else if(istype(var_value,/atom) || istype(var_value,/datum)) + usr << "Variable appears to be TYPE." + default = "type" + + else if(istype(var_value,/list)) + usr << "Variable appears to be LIST." + default = "list" + + else + usr << "Variable appears to be FILE." + default = "file" + + usr << "Variable contains: [var_value]" + if(dir) + switch(var_value) + if(1) + setDir("NORTH") + if(2) + setDir("SOUTH") + if(4) + setDir("EAST") + if(8) + setDir("WEST") + if(5) + setDir("NORTHEAST") + if(6) + setDir("SOUTHEAST") + if(9) + setDir("NORTHWEST") + if(10) + setDir("SOUTHWEST") + else + setDir(null) + if(dir) + usr << "If a direction, direction is: [dir]" + + if(src.holder && src.holder.marked_datum) + class = input("What kind of variable?","Variable Type",default) as null|anything in list("text", + "num","type","reference","mob reference", "icon","file","list","edit referenced object","restore to default", "new atom", "new datum", "marked datum ([holder.marked_datum.type])") + else + class = input("What kind of variable?","Variable Type",default) as null|anything in list("text", + "num","type","reference","mob reference", "icon","file","list","edit referenced object","restore to default", "new atom", "new datum") + + if(!class) + return + + var/original_name + + if (!istype(O, /atom)) + original_name = "\ref[O] ([O])" + else + original_name = O:name + + if(holder.marked_datum && class == "marked datum ([holder.marked_datum.type])") + class = "marked datum" + + switch(class) + + if("list") + if(!istype(O.vars[variable],/list)) + var/listchange = alert(usr,"Force change to empty list?","Change to list?","Yes","No") + if(listchange == "Yes") + O.vars[variable] = list() //Unlike all other VV operations, the type change must be set here, not at the end of setting data. Hence the warning + mod_list(O.vars[variable], O, original_name, variable) + return + + if("restore to default") + O.vars[variable] = initial(O.vars[variable]) + + if("edit referenced object") + return .(O.vars[variable]) + + if("text") + var/var_new = input("Enter new text:","Text",O.vars[variable]) as null|message + if(var_new==null) return + + if(findtext(var_new,"\[")) + var/process_vars = alert(usr,"\[] detected in string, process as variables?","Process Variables?","Yes","No") + if(process_vars == "Yes") + var/list/varsvars = string2listofvars(var_new, O) + for(var/V in varsvars) + var_new = replacetext(var_new,"\[[V]]","[O.vars[V]]") + + O.vars[variable] = var_new + + if("num") + if(variable=="luminosity") + var/var_new = input("Enter new number:","Num",O.vars[variable]) as null|num + if(var_new == null) return + O.SetLuminosity(var_new) + else if(variable=="stat") + var/var_new = input("Enter new number:","Num",O.vars[variable]) as null|num + if(var_new == null) return + if((O.vars[variable] == 2) && (var_new < 2))//Bringing the dead back to life + dead_mob_list -= O + living_mob_list += O + if((O.vars[variable] < 2) && (var_new == 2))//Kill he + living_mob_list -= O + dead_mob_list += O + O.vars[variable] = var_new + else + var/var_new = input("Enter new number:","Num",O.vars[variable]) as null|num + if(var_new==null) return + O.vars[variable] = var_new + + if("type") + var/target_path = input("Enter type:", "Type", O.vars[variable]) as null|text + if(!target_path) + return + var/var_new = text2path(target_path) + if(!ispath(var_new)) + var_new = pick_closest_path(target_path) + if(!var_new) + return + O.vars[variable] = var_new + + if("reference") + var/var_new = input("Select reference:","Reference",O.vars[variable]) as null|mob|obj|turf|area in world + if(var_new==null) return + O.vars[variable] = var_new + + if("mob reference") + var/var_new = input("Select reference:","Reference",O.vars[variable]) as null|mob in world + if(var_new==null) return + O.vars[variable] = var_new + + if("file") + var/var_new = input("Pick file:","File",O.vars[variable]) as null|file + if(var_new==null) return + O.vars[variable] = var_new + + if("icon") + var/var_new = input("Pick icon:","Icon",O.vars[variable]) as null|icon + if(var_new==null) return + O.vars[variable] = var_new + + if("marked datum") + O.vars[variable] = holder.marked_datum + + if("new atom") + var/type = input("Enter type:","Type") as null|anything in typesof(/obj,/mob,/area,/turf) + var/var_new = new type() + if(var_new==null) return + O.vars[variable] = var_new + + if("new datum") + var/type = input("Enter type:","Type") as null|anything in (typesof(/datum)-typesof(/obj,/mob,/area,/turf,/client)) + var/var_new = new type() + if(var_new==null) return + O.vars[variable] = var_new + + O.on_varedit(variable) + world.log << "### VarEdit by [src]: [O.type] [variable]=[html_encode("[O.vars[variable]]")]" + log_admin("[key_name(src)] modified [original_name]'s [variable] to [O.vars[variable]]") + message_admins("[key_name_admin(src)] modified [original_name]'s [variable] to [O.vars[variable]]") diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm new file mode 100644 index 0000000..c4034ab --- /dev/null +++ b/code/modules/admin/verbs/one_click_antag.dm @@ -0,0 +1,556 @@ +/client/proc/one_click_antag() + set name = "Create Antagonist" + set desc = "Auto-create an antagonist of your choice" + set category = "Admin" + + if(holder) + holder.one_click_antag() + return + + +/datum/admins/proc/one_click_antag() + + var/dat = {" + Make Traitors
    + Make Changelings
    + Make Revs
    + Make Cult
    + Make Clockwork Cult
    + Make Blob
    + Make Gangsters
    + Make Wizard (Requires Ghosts)
    + Make Nuke Team (Requires Ghosts)
    + Make Centcom Response Team (Requires Ghosts)
    + Make Abductor Team (Requires Ghosts)
    + Make Revenant (Requires Ghost)
    + "} + + var/datum/browser/popup = new(usr, "oneclickantag", "Quick-Create Antagonist", 400, 400) + popup.set_content(dat) + popup.open() + +/datum/admins/proc/makeTraitors() + var/datum/game_mode/traitor/temp = new + + if(config.protect_roles_from_antagonist) + temp.restricted_jobs += temp.protected_jobs + + if(config.protect_assistant_from_antagonist) + temp.restricted_jobs += "Assistant" + + var/list/mob/living/carbon/human/candidates = list() + var/mob/living/carbon/human/H = null + + for(var/mob/living/carbon/human/applicant in player_list) + if(ROLE_TRAITOR in applicant.client.prefs.be_special) + if(!applicant.stat) + if(applicant.mind) + if (!applicant.mind.special_role) + if(!jobban_isbanned(applicant, ROLE_TRAITOR) && !jobban_isbanned(applicant, "Syndicate")) + if(temp.age_check(applicant.client)) + if(!(applicant.job in temp.restricted_jobs)) + candidates += applicant + + if(candidates.len) + var/numTraitors = min(candidates.len, 3) + + for(var/i = 0, iThe world before you suddenly glows a brilliant yellow. You hear the whooshing steam and clanking cogs of a billion billion machines, and all at once \ + you see the truth. Ratvar, the Clockwork Justiciar, lies derelict and forgotten in an unseen realm, and he has selected you as one of his harbringers. You are now a servant of \ + Ratvar, and you will bring him back." + add_servant_of_ratvar(H, TRUE) + ticker.mode.equip_servant(H) + candidates.Remove(H) + + return 1 + + return 0 + + + +/datum/admins/proc/makeNukeTeam() + + var/datum/game_mode/nuclear/temp = new + var/list/mob/dead/observer/candidates = pollCandidates("Do you wish to be considered for a nuke team being sent in?", "operative", temp) + var/list/mob/dead/observer/chosen = list() + var/mob/dead/observer/theghost = null + + if(candidates.len) + var/numagents = 5 + var/agentcount = 0 + + for(var/i = 0, i synd_spawn.len) + spawnpos = 2 //Ran out of spawns. Let's loop back to the first non-leader position + var/mob/living/carbon/human/new_character=makeBody(c) + if(!leader_chosen) + leader_chosen = 1 + new_character.mind.make_Nuke(synd_spawn[spawnpos],nuke_code,1) + else + new_character.mind.make_Nuke(synd_spawn[spawnpos],nuke_code) + spawnpos++ + return 1 + else + return 0 + + + + + +/datum/admins/proc/makeAliens() + var/datum/round_event/ghost_role/alien_infestation/E = new(FALSE) + E.spawncount = 3 + // TODO The fact we have to do this rather than just have events start + // when we ask them to, is bad. + E.processing = TRUE + return TRUE + +/datum/admins/proc/makeSpaceNinja() + new /datum/round_event/ghost_role/ninja() + return 1 + +// DEATH SQUADS +/datum/admins/proc/makeDeathsquad() + var/mission = input("Assign a mission to the deathsquad", "Assign Mission", "Leave no witnesses.") + var/list/mob/dead/observer/candidates = pollCandidates("Do you wish to be considered for an elite Nanotrasen Strike Team?", "deathsquad", null) + var/squadSpawned = 0 + + if(candidates.len >= 2) //Minimum 2 to be considered a squad + //Pick the lucky players + var/numagents = min(5,candidates.len) //How many commandos to spawn + var/list/spawnpoints = emergencyresponseteamspawn + while(numagents && candidates.len) + if (numagents > spawnpoints.len) + numagents-- + continue // This guy's unlucky, not enough spawn points, we skip him. + var/spawnloc = spawnpoints[numagents] + var/mob/dead/observer/chosen_candidate = pick(candidates) + candidates -= chosen_candidate + if(!chosen_candidate.key) + continue + + //Spawn and equip the commando + var/mob/living/carbon/human/Commando = new(spawnloc) + chosen_candidate.client.prefs.copy_to(Commando) + if(numagents == 1) //If Squad Leader + Commando.real_name = "Officer [pick(commando_names)]" + Commando.equipOutfit(/datum/outfit/death_commando/officer) + else + Commando.real_name = "Trooper [pick(commando_names)]" + Commando.equipOutfit(/datum/outfit/death_commando) + Commando.dna.update_dna_identity() + Commando.key = chosen_candidate.key + Commando.mind.assigned_role = "Death Commando" + for(var/obj/machinery/door/poddoor/ert/door in airlocks) + spawn(0) + door.open() + + //Assign antag status and the mission + ticker.mode.traitors += Commando.mind + Commando.mind.special_role = "deathsquad" + var/datum/objective/missionobj = new + missionobj.owner = Commando.mind + missionobj.explanation_text = mission + missionobj.completed = 1 + Commando.mind.objectives += missionobj + + //Greet the commando + Commando << "You are the [numagents==1?"Deathsquad Officer":"Death Commando"]." + var/missiondesc = "Your squad is being sent on a mission to [station_name()] by Nanotrasen's Security Division." + if(numagents == 1) //If Squad Leader + missiondesc += " Lead your squad to ensure the completion of the mission. Board the shuttle when your team is ready." + else + missiondesc += " Follow orders given to you by your squad leader." + missiondesc += "
    Your Mission: [mission]" + Commando << missiondesc + + if(config.enforce_human_authority) + Commando.set_species(/datum/species/human) + + //Logging and cleanup + if(numagents == 1) + message_admins("The deathsquad has spawned with the mission: [mission].") + log_game("[key_name(Commando)] has been selected as a Death Commando") + numagents-- + squadSpawned++ + + if (squadSpawned) + return 1 + else + return 0 + + return + + +/datum/admins/proc/makeGangsters() + + var/datum/game_mode/gang/temp = new + if(config.protect_roles_from_antagonist) + temp.restricted_jobs += temp.protected_jobs + + if(config.protect_assistant_from_antagonist) + temp.restricted_jobs += "Assistant" + + var/list/mob/living/carbon/human/candidates = list() + var/mob/living/carbon/human/H = null + + for(var/mob/living/carbon/human/applicant in player_list) + if(ROLE_GANG in applicant.client.prefs.be_special) + var/turf/T = get_turf(applicant) + if(applicant.stat == CONSCIOUS && applicant.mind && !applicant.mind.special_role && T.z == ZLEVEL_STATION) + if(!jobban_isbanned(applicant, ROLE_GANG) && !jobban_isbanned(applicant, "Syndicate")) + if(temp.age_check(applicant.client)) + if(!(applicant.job in temp.restricted_jobs)) + candidates += applicant + + if(candidates.len >= 2) + for(var/needs_assigned=2,needs_assigned>0,needs_assigned--) + H = pick(candidates) + if(gang_colors_pool.len) + var/datum/gang/newgang = new() + ticker.mode.gangs += newgang + H.mind.make_Gang(newgang) + candidates.Remove(H) + else if(needs_assigned == 2) + return 0 + return 1 + + return 0 + + +/datum/admins/proc/makeOfficial() + var/mission = input("Assign a task for the official", "Assign Task", "Conduct a routine preformance review of [station_name()] and its Captain.") + var/list/mob/dead/observer/candidates = pollCandidates("Do you wish to be considered to be a Centcom Official?", "deathsquad") + + if(candidates.len) + var/mob/dead/observer/chosen_candidate = pick(candidates) + + //Create the official + var/mob/living/carbon/human/newmob = new (pick(emergencyresponseteamspawn)) + chosen_candidate.client.prefs.copy_to(newmob) + newmob.real_name = newmob.dna.species.random_name(newmob.gender,1) + newmob.dna.update_dna_identity() + newmob.key = chosen_candidate.key + newmob.mind.assigned_role = "Centcom Official" + newmob.equipOutfit(/datum/outfit/centcom_official) + + //Assign antag status and the mission + ticker.mode.traitors += newmob.mind + newmob.mind.special_role = "official" + var/datum/objective/missionobj = new + missionobj.owner = newmob.mind + missionobj.explanation_text = mission + missionobj.completed = 1 + newmob.mind.objectives += missionobj + + if(config.enforce_human_authority) + newmob.set_species(/datum/species/human) + + //Greet the official + newmob << "You are a Centcom Official." + newmob << "
    Central Command is sending you to [station_name()] with the task: [mission]" + + //Logging and cleanup + message_admins("Centcom Official [key_name_admin(newmob)] has spawned with the task: [mission]") + log_game("[key_name(newmob)] has been selected as a Centcom Official") + + return 1 + + return 0 + +// CENTCOM RESPONSE TEAM +/datum/admins/proc/makeEmergencyresponseteam() + var/alert = input("Which team should we send?", "Select Response Level") as null|anything in list("Green: Centcom Official", "Blue: Light ERT (No Armoury Access)", "Amber: Full ERT (Armoury Access)", "Red: Elite ERT (Armoury Access + Pulse Weapons)", "Delta: Deathsquad") + if(!alert) + return + switch(alert) + if("Delta: Deathsquad") + return makeDeathsquad() + if("Red: Elite ERT (Armoury Access + Pulse Weapons)") + alert = "Red" + if("Amber: Full ERT (Armoury Access)") + alert = "Amber" + if("Blue: Light ERT (No Armoury Access)") + alert = "Blue" + if("Green: Centcom Official") + return makeOfficial() + var/teamsize = min(7,input("Maximum size of team? (7 max)", "Select Team Size",4) as null|num) + var/mission = input("Assign a mission to the Emergency Response Team", "Assign Mission", "Assist the station.") + var/list/mob/dead/observer/candidates = pollCandidates("Do you wish to be considered for a Code [alert] Nanotrasen Emergency Response Team?", "deathsquad", null) + var/teamSpawned = 0 + + if(candidates.len > 0) + //Pick the (un)lucky players + var/numagents = min(teamsize,candidates.len) //How many officers to spawn + var/redalert //If the ert gets super weapons + if (alert == "Red") + numagents = min(teamsize,candidates.len) + redalert = 1 + var/list/spawnpoints = emergencyresponseteamspawn + while(numagents && candidates.len) + if (numagents > spawnpoints.len) + numagents-- + continue // This guy's unlucky, not enough spawn points, we skip him. + var/spawnloc = spawnpoints[numagents] + var/mob/dead/observer/chosen_candidate = pick(candidates) + candidates -= chosen_candidate + if(!chosen_candidate.key) + continue + + //Spawn and equip the officer + var/mob/living/carbon/human/ERTOperative = new(spawnloc) + var/list/lastname = last_names + chosen_candidate.client.prefs.copy_to(ERTOperative) + var/ertname = pick(lastname) + switch(numagents) + if(1) + ERTOperative.real_name = "Commander [ertname]" + ERTOperative.equipOutfit(redalert ? /datum/outfit/ert/commander/alert : /datum/outfit/ert/commander) + if(2) + ERTOperative.real_name = "Security Officer [ertname]" + ERTOperative.equipOutfit(redalert ? /datum/outfit/ert/security/alert : /datum/outfit/ert/security) + if(3) + ERTOperative.real_name = "Medical Officer [ertname]" + ERTOperative.equipOutfit(redalert ? /datum/outfit/ert/medic/alert : /datum/outfit/ert/medic) + if(4) + ERTOperative.real_name = "Engineer [ertname]" + ERTOperative.equipOutfit(redalert ? /datum/outfit/ert/engineer/alert : /datum/outfit/ert/engineer) + if(5) + ERTOperative.real_name = "Security Officer [ertname]" + ERTOperative.equipOutfit(redalert ? /datum/outfit/ert/security/alert : /datum/outfit/ert/security) + if(6) + ERTOperative.real_name = "Medical Officer [ertname]" + ERTOperative.equipOutfit(redalert ? /datum/outfit/ert/medic/alert : /datum/outfit/ert/medic) + if(7) + ERTOperative.real_name = "Engineer [ertname]" + ERTOperative.equipOutfit(redalert ? /datum/outfit/ert/engineer/alert : /datum/outfit/ert/engineer) + ERTOperative.dna.update_dna_identity() + ERTOperative.key = chosen_candidate.key + ERTOperative.mind.assigned_role = "ERT" + + //Open the Armory doors + if(alert != "Blue") + for(var/obj/machinery/door/poddoor/ert/door in airlocks) + spawn(0) + door.open() + + //Assign antag status and the mission + ticker.mode.traitors += ERTOperative.mind + ERTOperative.mind.special_role = "ERT" + var/datum/objective/missionobj = new + missionobj.owner = ERTOperative.mind + missionobj.explanation_text = mission + missionobj.completed = 1 + ERTOperative.mind.objectives += missionobj + + //Greet the commando + ERTOperative << "You are [numagents==1?"the Emergency Response Team Commander":"an Emergency Response Officer"]." + var/missiondesc = "Your squad is being sent on a Code [alert] mission to [station_name()] by Nanotrasen's Security Division." + if(numagents == 1) //If Squad Leader + missiondesc += " Lead your squad to ensure the completion of the mission. Avoid civilian casualites when possible. Board the shuttle when your team is ready." + else + missiondesc += " Follow orders given to you by your commander. Avoid civilian casualites when possible." + missiondesc += "
    Your Mission: [mission]" + ERTOperative << missiondesc + + if(config.enforce_human_authority) + ERTOperative.set_species(/datum/species/human) + + //Logging and cleanup + if(numagents == 1) + message_admins("A Code [alert] emergency response team has spawned with the mission: [mission]") + log_game("[key_name(ERTOperative)] has been selected as an Emergency Response Officer") + numagents-- + teamSpawned++ + + if (teamSpawned) + return 1 + else + return 0 + + return + +//Abductors +/datum/admins/proc/makeAbductorTeam() + new /datum/round_event/ghost_role/abductor + return 1 + +/datum/admins/proc/makeRevenant() + new /datum/round_event/ghost_role/revenant(TRUE, TRUE) + return 1 diff --git a/code/modules/admin/verbs/onlyone.dm b/code/modules/admin/verbs/onlyone.dm new file mode 100644 index 0000000..9e536c6 --- /dev/null +++ b/code/modules/admin/verbs/onlyone.dm @@ -0,0 +1,113 @@ +var/highlander = FALSE +/client/proc/only_one() //Gives everyone kilts, berets, claymores, and pinpointers, with the objective to hijack the emergency shuttle. + if(!ticker || !ticker.mode) + alert("The game hasn't started yet!") + return + highlander = TRUE + + world << "THERE CAN BE ONLY ONE!!!" + world << sound('sound/misc/highlander.ogg') + + for(var/obj/item/weapon/disk/nuclear/N in poi_list) + N.relocate() //Gets it out of bags and such + + for(var/mob/living/carbon/human/H in player_list) + if(H.stat == DEAD || !(H.client)) + continue + H.make_scottish() + + message_admins("[key_name_admin(usr)] used THERE CAN BE ONLY ONE!") + log_admin("[key_name(usr)] used THERE CAN BE ONLY ONE.") + addtimer(SSshuttle.emergency, "request", 50, FALSE, null, 1) + +/mob/living/carbon/human/proc/make_scottish() + ticker.mode.traitors += mind + mind.special_role = "highlander" + dna.species.specflags |= NOGUNS //nice try jackass + + var/datum/objective/steal/steal_objective = new + steal_objective.owner = mind + steal_objective.set_target(new /datum/objective_item/steal/nukedisc) + mind.objectives += steal_objective + + var/datum/objective/hijack/hijack_objective = new + hijack_objective.explanation_text = "Escape on the shuttle alone. Ensure that nobody else makes it out." + hijack_objective.owner = mind + mind.objectives += hijack_objective + + mind.announce_objectives() + + for(var/obj/item/I in get_equipped_items()) + qdel(I) + for(var/obj/item/I in held_items) + qdel(I) + equip_to_slot_or_del(new /obj/item/clothing/under/kilt/highlander(src), slot_w_uniform) + equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/captain(src), slot_ears) + equip_to_slot_or_del(new /obj/item/clothing/head/beret/highlander(src), slot_head) + equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(src), slot_shoes) + equip_to_slot_or_del(new /obj/item/weapon/pinpointer(src), slot_l_store) + for(var/obj/item/weapon/pinpointer/P in src) + P.attack_self(src) + var/obj/item/weapon/card/id/W = new(src) + W.icon_state = "centcom" + W.access = get_all_accesses() + W.access += get_all_centcom_access() + W.assignment = "Highlander" + W.registered_name = real_name + W.flags |= NODROP + W.update_label(real_name) + equip_to_slot_or_del(W, slot_wear_id) + + var/obj/item/weapon/claymore/highlander/H1 = new(src) + if(!highlander) + H1.admin_spawned = TRUE //To prevent announcing + put_in_hands(H1) + H1.pickup(src) //For the stun shielding + + var/obj/item/weapon/bloodcrawl/antiwelder = new(src) + antiwelder.name = "compulsion of honor" + antiwelder.desc = "You are unable to hold anything in this hand until you're the last one left!" + antiwelder.icon_state = "bloodhand_right" + put_in_hands(antiwelder) + + src << "Your [H1.name] cries out for blood. Join in the slaughter, lest you be claimed yourself...\n\ + Activate it in your hand, and it will lead to the nearest target. Attack the nuclear authentication disk with it, and you will store it." + +/proc/only_me() + if(!ticker || !ticker.mode) + alert("The game hasn't started yet!") + return + + for(var/mob/living/carbon/human/H in player_list) + if(H.stat == 2 || !(H.client)) continue + if(is_special_character(H)) continue + + ticker.mode.traitors += H.mind + H.mind.special_role = "[H.real_name] Prime" + + var/datum/objective/hijackclone/hijack_objective = new /datum/objective/hijackclone + hijack_objective.owner = H.mind + H.mind.objectives += hijack_objective + + H << "You are the multiverse summoner. Activate your blade to summon copies of yourself from another universe to fight by your side." + H.mind.announce_objectives() + + var/obj/item/slot_item_ID = H.get_item_by_slot(slot_wear_id) + qdel(slot_item_ID) + var/obj/item/slot_item_hand = H.get_item_for_held_index(2) + H.unEquip(slot_item_hand) + + var /obj/item/weapon/multisword/multi = new(H) + H.put_in_hands_or_del(multi) + + var/obj/item/weapon/card/id/W = new(H) + W.icon_state = "centcom" + W.access = get_all_accesses() + W.access += get_all_centcom_access() + W.assignment = "Multiverse Summoner" + W.registered_name = H.real_name + W.update_label(H.real_name) + H.equip_to_slot_or_del(W, slot_wear_id) + + message_admins("[key_name_admin(usr)] used THERE CAN BE ONLY ME!") + log_admin("[key_name(usr)] used there can be only me.") diff --git a/code/modules/admin/verbs/panicbunker.dm b/code/modules/admin/verbs/panicbunker.dm new file mode 100644 index 0000000..ff53065 --- /dev/null +++ b/code/modules/admin/verbs/panicbunker.dm @@ -0,0 +1,15 @@ +/client/proc/panicbunker() + set category = "Server" + set name = "Toggle Panic Bunker" + if (!config.sql_enabled) + usr << "The Database is not enabled!" + return + + config.panic_bunker = (!config.panic_bunker) + + log_admin("[key_name(usr)] has toggled the Panic Bunker, it is now [(config.panic_bunker?"on":"off")]") + message_admins("[key_name_admin(usr)] has toggled the Panic Bunker, it is now [(config.panic_bunker?"enabled":"disabled")].") + if (config.panic_bunker && (!dbcon || !dbcon.IsConnected())) + message_admins("The Database is not connected! Panic bunker will not work until the connection is reestablished.") + feedback_add_details("admin_verb","PANIC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + diff --git a/code/modules/admin/verbs/playsound.dm b/code/modules/admin/verbs/playsound.dm new file mode 100644 index 0000000..a0207dd --- /dev/null +++ b/code/modules/admin/verbs/playsound.dm @@ -0,0 +1,73 @@ +#define SOUND_CHANNEL_ADMIN 777 +var/sound/admin_sound + +/client/proc/play_sound(S as sound) + set category = "Fun" + set name = "Play Global Sound" + if(!check_rights(R_SOUNDS)) + return + + log_admin("[key_name(src)] played sound [S]") + message_admins("[key_name_admin(src)] played sound [S]") + + var/freq = 1 + if(SSevent.holidays && SSevent.holidays[APRIL_FOOLS]) + freq = pick(0.5, 0.7, 0.8, 0.85, 0.9, 0.95, 1.1, 1.2, 1.4, 1.6, 2.0, 2.5) + src << "You feel the Honkmother messing with your song..." + + var/sound/admin_sound = new() + admin_sound.file = S + admin_sound.priority = 250 + admin_sound.channel = SOUND_CHANNEL_ADMIN + admin_sound.frequency = freq + admin_sound.wait = 1 + admin_sound.repeat = 0 + admin_sound.status = SOUND_STREAM + + for(var/mob/M in player_list) + if(M.client.prefs.toggles & SOUND_MIDI) + M << admin_sound + + feedback_add_details("admin_verb","PGS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + + +/client/proc/play_local_sound(S as sound) + set category = "Fun" + set name = "Play Local Sound" + if(!check_rights(R_SOUNDS)) + return + + log_admin("[key_name(src)] played a local sound [S]") + message_admins("[key_name_admin(src)] played a local sound [S]") + playsound(get_turf(src.mob), S, 50, 0, 0) + feedback_add_details("admin_verb","PLS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/set_round_end_sound(S as sound) + set category = "Fun" + set name = "Set Round End Sound" + if(!check_rights(R_SOUNDS)) + return + + if(ticker) + ticker.round_end_sound = fcopy_rsc(S) + else + return + + log_admin("[key_name(src)] set the round end sound to [S]") + message_admins("[key_name_admin(src)] set the round end sound to [S]") + feedback_add_details("admin_verb","SRES") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/stop_sounds() + set category = "Debug" + set name = "Stop All Playing Sounds" + if(!src.holder) + return + + log_admin("[key_name(src)] stopped all currently playing sounds.") + message_admins("[key_name_admin(src)] stopped all currently playing sounds.") + for(var/mob/M in player_list) + if(M.client) + M << sound(null) + feedback_add_details("admin_verb","SS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +#undef SOUND_CHANNEL_ADMIN diff --git a/code/modules/admin/verbs/possess.dm b/code/modules/admin/verbs/possess.dm new file mode 100644 index 0000000..d0adc45 --- /dev/null +++ b/code/modules/admin/verbs/possess.dm @@ -0,0 +1,53 @@ +/proc/possess(obj/O in world) + set name = "Possess Obj" + set category = "Object" + + if(istype(O,/obj/singularity)) + if(config.forbid_singulo_possession) + usr << "It is forbidden to possess singularities." + return + + var/turf/T = get_turf(O) + + if(T) + log_admin("[key_name(usr)] has possessed [O] ([O.type]) at ([T.x], [T.y], [T.z])") + message_admins("[key_name(usr)] has possessed [O] ([O.type]) at ([T.x], [T.y], [T.z])") + else + log_admin("[key_name(usr)] has possessed [O] ([O.type]) at an unknown location") + message_admins("[key_name(usr)] has possessed [O] ([O.type]) at an unknown location") + + if(!usr.control_object) //If you're not already possessing something... + usr.name_archive = usr.real_name + + usr.loc = O + usr.real_name = O.name + usr.name = O.name + usr.client.eye = O + usr.control_object = O + feedback_add_details("admin_verb","PO") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/proc/release(obj/O in world) + set name = "Release Obj" + set category = "Object" + //usr.loc = get_turf(usr) + + if(usr.control_object && usr.name_archive) //if you have a name archived and if you are actually relassing an object + usr.real_name = usr.name_archive + usr.name = usr.real_name + if(ishuman(usr)) + var/mob/living/carbon/human/H = usr + H.name = H.get_visible_name() +// usr.regenerate_icons() //So the name is updated properly + + usr.loc = O.loc + usr.client.eye = usr + usr.control_object = null + feedback_add_details("admin_verb","RO") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/proc/givetestverbs(mob/M in mob_list) + set desc = "Give this guy possess/release verbs" + set category = "Debug" + set name = "Give Possessing Verbs" + M.verbs += /proc/possess + M.verbs += /proc/release + feedback_add_details("admin_verb","GPV") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! \ No newline at end of file diff --git a/code/modules/admin/verbs/pray.dm b/code/modules/admin/verbs/pray.dm new file mode 100644 index 0000000..66a64de --- /dev/null +++ b/code/modules/admin/verbs/pray.dm @@ -0,0 +1,84 @@ +/mob/verb/pray(msg as text) + set category = "IC" + set name = "Pray" + + if(say_disabled) //This is here to try to identify lag problems + usr << "Speech is currently admin-disabled." + return + + msg = copytext(sanitize(msg), 1, MAX_MESSAGE_LEN) + if(!msg) + return + log_prayer("[src.key]/([src.name]): [msg]") + if(usr.client) + if(usr.client.prefs.muted & MUTE_PRAY) + usr << "You cannot pray (muted)." + return + if(src.client.handle_spam_prevention(msg,MUTE_PRAY)) + return + + var/image/cross = image('icons/obj/storage.dmi',"bible") + var/font_color = "purple" + var/prayer_type = "PRAYER" + var/deity + if(usr.job == "Chaplain") + cross = image('icons/obj/storage.dmi',"kingyellow") + font_color = "blue" + prayer_type = "CHAPLAIN PRAYER" + if (ticker && ticker.Bible_deity_name) + deity = ticker.Bible_deity_name + else if(iscultist(usr)) + cross = image('icons/obj/storage.dmi',"tome") + font_color = "red" + prayer_type = "CULTIST PRAYER" + deity = "Nar-Sie" + + msg = "\icon[cross] \ + [prayer_type][deity ? " (to [deity])" : ""]: \ + [ADMIN_FULLMONTY(src)] [ADMIN_SC(src)]: \ + [msg]" + + for(var/client/C in admins) + if(C.prefs.chat_toggles & CHAT_PRAYER) + C << msg + if(C.prefs.toggles & SOUND_PRAYERS) + if(usr.job == "Chaplain") + C << 'sound/effects/pray.ogg' + usr << "Your prayers have been received by the gods." + + feedback_add_details("admin_verb","PR") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + //log_admin("HELP: [key_name(src)]: [msg]") + +/proc/Centcomm_announce(text , mob/Sender) + var/msg = copytext(sanitize(text), 1, MAX_MESSAGE_LEN) + msg = "\ + CENTCOM:\ + [ADMIN_FULLMONTY(Sender)] [ADMIN_BSA(Sender)] \ + [ADMIN_CENTCOM_REPLY(Sender)]: \ + [msg]" + admins << msg + for(var/obj/machinery/computer/communications/C in machines) + C.overrideCooldown() + +/proc/Syndicate_announce(text , mob/Sender) + var/msg = copytext(sanitize(text), 1, MAX_MESSAGE_LEN) + msg = "\ + SYNDICATE:\ + [ADMIN_FULLMONTY(Sender)] [ADMIN_BSA(Sender)] \ + [ADMIN_SYNDICATE_REPLY(Sender)]: \ + [msg]" + admins << msg + for(var/obj/machinery/computer/communications/C in machines) + C.overrideCooldown() + +/proc/Nuke_request(text , mob/Sender) + var/msg = copytext(sanitize(text), 1, MAX_MESSAGE_LEN) + msg = "\ + NUKE CODE REQUEST:\ + [ADMIN_FULLMONTY(Sender)] [ADMIN_BSA(Sender)] \ + [ADMIN_CENTCOM_REPLY(Sender)] \ + [ADMIN_SET_SD_CODE]: \ + [msg]" + admins << msg + for(var/obj/machinery/computer/communications/C in machines) + C.overrideCooldown() diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm new file mode 100644 index 0000000..76e33a6 --- /dev/null +++ b/code/modules/admin/verbs/randomverbs.dm @@ -0,0 +1,1169 @@ +/client/proc/cmd_admin_drop_everything(mob/M in mob_list) + set category = null + set name = "Drop Everything" + if(!holder) + src << "Only administrators may use this command." + return + + var/confirm = alert(src, "Make [M] drop everything?", "Message", "Yes", "No") + if(confirm != "Yes") + return + + for(var/obj/item/W in M) + if(!M.unEquip(W)) + qdel(W) + M.regenerate_icons() + + log_admin("[key_name(usr)] made [key_name(M)] drop everything!") + message_admins("[key_name_admin(usr)] made [key_name_admin(M)] drop everything!") + feedback_add_details("admin_verb","DEVR") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + + +/client/proc/cmd_admin_subtle_message(mob/M in mob_list) + set category = "Special Verbs" + set name = "Subtle Message" + + if(!ismob(M)) + return + if (!holder) + src << "Only administrators may use this command." + return + + message_admins("[key_name_admin(src)] has started answering [key_name(M.key, 0, 0)]'s prayer.") + var/msg = input("Message:", text("Subtle PM to [M.key]")) as text + + if (!msg) + message_admins("[key_name_admin(src)] decided not to answer [key_name(M.key, 0, 0)]'s prayer") + return + if(usr) + if (usr.client) + if(usr.client.holder) + M << "You hear a voice in your head... [msg]" + + log_admin("SubtlePM: [key_name(usr)] -> [key_name(M)] : [msg]") + message_admins(" SubtleMessage: [key_name_admin(usr)] -> [key_name_admin(M)] : [msg]") + feedback_add_details("admin_verb","SMS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/cmd_admin_world_narrate() + set category = "Special Verbs" + set name = "Global Narrate" + + if (!holder) + src << "Only administrators may use this command." + return + + var/msg = input("Message:", text("Enter the text you wish to appear to everyone:")) as text + + if (!msg) + return + world << "[msg]" + log_admin("GlobalNarrate: [key_name(usr)] : [msg]") + message_admins(" GlobalNarrate: [key_name_admin(usr)] : [msg]
    ") + feedback_add_details("admin_verb","GLN") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/cmd_admin_direct_narrate(mob/M) + set category = "Special Verbs" + set name = "Direct Narrate" + + if(!holder) + src << "Only administrators may use this command." + return + + if(!M) + M = input("Direct narrate to who?", "Active Players") as null|anything in player_list + + if(!M) + return + + var/msg = input("Message:", text("Enter the text you wish to appear to your target:")) as text + + if( !msg ) + return + + M << msg + log_admin("DirectNarrate: [key_name(usr)] to ([M.name]/[M.key]): [msg]") + message_admins(" DirectNarrate: [key_name(usr)] to ([M.name]/[M.key]): [msg]
    ") + feedback_add_details("admin_verb","DIRN") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/cmd_admin_local_narrate(atom/A) + set category = "Special Verbs" + set name = "Local Narrate" + + if (!holder) + src << "Only administrators may use this command." + return + if(!A) + return + var/range = input("Range:", "Narrate to mobs within how many tiles:", 7) as num + if(!range) + return + var/msg = input("Message:", text("Enter the text you wish to appear to everyone within view:")) as text + if (!msg) + return + for(var/mob/M in view(range,A)) + M << msg + + log_admin("LocalNarrate: [key_name(usr)] at ([get_area(A)]): [msg]") + message_admins(" LocalNarrate: [key_name_admin(usr)] at ([get_area(A)]): [msg]
    ") + feedback_add_details("admin_verb","LN") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/cmd_admin_godmode(mob/M in mob_list) + set category = "Special Verbs" + set name = "Godmode" + if(!holder) + src << "Only administrators may use this command." + return + M.status_flags ^= GODMODE + usr << "Toggled [(M.status_flags & GODMODE) ? "ON" : "OFF"]" + + log_admin("[key_name(usr)] has toggled [key_name(M)]'s nodamage to [(M.status_flags & GODMODE) ? "On" : "Off"]") + message_admins("[key_name_admin(usr)] has toggled [key_name_admin(M)]'s nodamage to [(M.status_flags & GODMODE) ? "On" : "Off"]") + feedback_add_details("admin_verb","GOD") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + + +/proc/cmd_admin_mute(whom, mute_type, automute = 0) + if(!whom) + return + + var/muteunmute + var/mute_string + switch(mute_type) + if(MUTE_IC) + mute_string = "IC (say and emote)" + if(MUTE_OOC) + mute_string = "OOC" + if(MUTE_PRAY) + mute_string = "pray" + if(MUTE_ADMINHELP) + mute_string = "adminhelp, admin PM and ASAY" + if(MUTE_DEADCHAT) + mute_string = "deadchat and DSAY" + if(MUTE_ALL) + mute_string = "everything" + else + return + + var/client/C + if(istype(whom, /client)) + C = whom + else if(istext(whom)) + C = directory[whom] + else + return + + var/datum/preferences/P + if(C) + P = C.prefs + else + P = preferences_datums[whom] + if(!P) + return + + if(automute) + if(!config.automute_on) + return + else + if(!check_rights()) + return + + if(automute) + muteunmute = "auto-muted" + P.muted |= mute_type + log_admin("SPAM AUTOMUTE: [muteunmute] [key_name(whom)] from [mute_string]") + message_admins("SPAM AUTOMUTE: [muteunmute] [key_name_admin(whom)] from [mute_string].") + if(C) + C << "You have been [muteunmute] from [mute_string] by the SPAM AUTOMUTE system. Contact an admin." + feedback_add_details("admin_verb","AUTOMUTE") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + return + + if(P.muted & mute_type) + muteunmute = "unmuted" + P.muted &= ~mute_type + else + muteunmute = "muted" + P.muted |= mute_type + + log_admin("[key_name(usr)] has [muteunmute] [key_name(whom)] from [mute_string]") + message_admins("[key_name_admin(usr)] has [muteunmute] [key_name_admin(whom)] from [mute_string].") + if(C) + C << "You have been [muteunmute] from [mute_string] by [key_name(usr, include_name = FALSE)]." + feedback_add_details("admin_verb","MUTE") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + + +/client/proc/cmd_admin_add_random_ai_law() + set category = "Fun" + set name = "Add Random AI Law" + if(!holder) + src << "Only administrators may use this command." + return + var/confirm = alert(src, "You sure?", "Confirm", "Yes", "No") + if(confirm != "Yes") + return + log_admin("[key_name(src)] has added a random AI law.") + message_admins("[key_name_admin(src)] has added a random AI law.") + + var/show_log = alert(src, "Show ion message?", "Message", "Yes", "No") + var/announce_ion_laws = (show_log == "Yes" ? 1 : -1) + + new /datum/round_event/ion_storm(0, announce_ion_laws) + feedback_add_details("admin_verb","ION") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + + +//I use this proc for respawn character too. /N +/proc/create_xeno(ckey) + if(!ckey) + var/list/candidates = list() + for(var/mob/M in player_list) + if(M.stat != DEAD) + continue //we are not dead! + if(!(ROLE_ALIEN in M.client.prefs.be_special)) + continue //we don't want to be an alium + if(M.client.is_afk()) + continue //we are afk + if(M.mind && M.mind.current && M.mind.current.stat != DEAD) + continue //we have a live body we are tied to + candidates += M.ckey + if(candidates.len) + ckey = input("Pick the player you want to respawn as a xeno.", "Suitable Candidates") as null|anything in candidates + else + usr << "Error: create_xeno(): no suitable candidates." + if(!istext(ckey)) + return 0 + + var/alien_caste = input(usr, "Please choose which caste to spawn.","Pick a caste",null) as null|anything in list("Queen","Praetorian","Hunter","Sentinel","Drone","Larva") + var/obj/effect/landmark/spawn_here = xeno_spawn.len ? pick(xeno_spawn) : pick(latejoin) + var/mob/living/carbon/alien/new_xeno + switch(alien_caste) + if("Queen") + new_xeno = new /mob/living/carbon/alien/humanoid/royal/queen(spawn_here) + if("Praetorian") + new_xeno = new /mob/living/carbon/alien/humanoid/royal/praetorian(spawn_here) + if("Hunter") + new_xeno = new /mob/living/carbon/alien/humanoid/hunter(spawn_here) + if("Sentinel") + new_xeno = new /mob/living/carbon/alien/humanoid/sentinel(spawn_here) + if("Drone") + new_xeno = new /mob/living/carbon/alien/humanoid/drone(spawn_here) + if("Larva") + new_xeno = new /mob/living/carbon/alien/larva(spawn_here) + else + return 0 + + new_xeno.ckey = ckey + message_admins("[key_name_admin(usr)] has spawned [ckey] as a filthy xeno [alien_caste].") + return 1 + +/* +If a guy was gibbed and you want to revive him, this is a good way to do so. +Works kind of like entering the game with a new character. Character receives a new mind if they didn't have one. +Traitors and the like can also be revived with the previous role mostly intact. +/N */ +/client/proc/respawn_character() + set category = "Special Verbs" + set name = "Respawn Character" + set desc = "Respawn a person that has been gibbed/dusted/killed. They must be a ghost for this to work and preferably should not have a body to go back into." + if(!holder) + src << "Only administrators may use this command." + return + var/input = ckey(input(src, "Please specify which key will be respawned.", "Key", "")) + if(!input) + return + + var/mob/dead/observer/G_found + for(var/mob/dead/observer/G in player_list) + if(G.ckey == input) + G_found = G + break + + if(!G_found)//If a ghost was not found. + usr << "There is no active key like that in the game or the person is not currently a ghost." + return + + if(G_found.mind && !G_found.mind.active) //mind isn't currently in use by someone/something + //Check if they were an alien + if(G_found.mind.assigned_role=="Alien") + if(alert("This character appears to have been an alien. Would you like to respawn them as such?",,"Yes","No")=="Yes") + var/turf/T + if(xeno_spawn.len) + T = pick(xeno_spawn) + else + T = pick(latejoin) + + var/mob/living/carbon/alien/new_xeno + switch(G_found.mind.special_role)//If they have a mind, we can determine which caste they were. + if("Hunter") + new_xeno = new /mob/living/carbon/alien/humanoid/hunter(T) + if("Sentinel") + new_xeno = new /mob/living/carbon/alien/humanoid/sentinel(T) + if("Drone") + new_xeno = new /mob/living/carbon/alien/humanoid/drone(T) + if("Praetorian") + new_xeno = new /mob/living/carbon/alien/humanoid/royal/praetorian(T) + if("Queen") + new_xeno = new /mob/living/carbon/alien/humanoid/royal/queen(T) + else//If we don't know what special role they have, for whatever reason, or they're a larva. + create_xeno(G_found.ckey) + return + + //Now to give them their mind back. + G_found.mind.transfer_to(new_xeno) //be careful when doing stuff like this! I've already checked the mind isn't in use + new_xeno.key = G_found.key + new_xeno << "You have been fully respawned. Enjoy the game." + message_admins("[key_name_admin(usr)] has respawned [new_xeno.key] as a filthy xeno.") + return //all done. The ghost is auto-deleted + + //check if they were a monkey + else if(findtext(G_found.real_name,"monkey")) + if(alert("This character appears to have been a monkey. Would you like to respawn them as such?",,"Yes","No")=="Yes") + var/mob/living/carbon/monkey/new_monkey = new(pick(latejoin)) + G_found.mind.transfer_to(new_monkey) //be careful when doing stuff like this! I've already checked the mind isn't in use + new_monkey.key = G_found.key + new_monkey << "You have been fully respawned. Enjoy the game." + message_admins("[key_name_admin(usr)] has respawned [new_monkey.key] as a filthy xeno.") + return //all done. The ghost is auto-deleted + + + //Ok, it's not a xeno or a monkey. So, spawn a human. + var/mob/living/carbon/human/new_character = new(pick(latejoin))//The mob being spawned. + + var/datum/data/record/record_found //Referenced to later to either randomize or not randomize the character. + if(G_found.mind && !G_found.mind.active) //mind isn't currently in use by someone/something + /*Try and locate a record for the person being respawned through data_core. + This isn't an exact science but it does the trick more often than not.*/ + var/id = md5("[G_found.real_name][G_found.mind.assigned_role]") + + record_found = find_record("id", id, data_core.locked) + + if(record_found)//If they have a record we can determine a few things. + new_character.real_name = record_found.fields["name"] + new_character.gender = record_found.fields["sex"] + new_character.age = record_found.fields["age"] + new_character.hardset_dna(record_found.fields["identity"], record_found.fields["enzymes"], record_found.fields["name"], record_found.fields["blood_type"], record_found.fields["species"], record_found.fields["features"]) + else + var/datum/preferences/A = new() + A.copy_to(new_character) + A.real_name = G_found.real_name + new_character.dna.update_dna_identity() + + new_character.name = new_character.real_name + + if(G_found.mind && !G_found.mind.active) + G_found.mind.transfer_to(new_character) //be careful when doing stuff like this! I've already checked the mind isn't in use + new_character.mind.special_verbs = list() + else + new_character.mind_initialize() + if(!new_character.mind.assigned_role) + new_character.mind.assigned_role = "Assistant"//If they somehow got a null assigned role. + + new_character.key = G_found.key + + /* + The code below functions with the assumption that the mob is already a traitor if they have a special role. + So all it does is re-equip the mob with powers and/or items. Or not, if they have no special role. + If they don't have a mind, they obviously don't have a special role. + */ + + //Two variables to properly announce later on. + var/admin = key_name_admin(src) + var/player_key = G_found.key + + //Now for special roles and equipment. + switch(new_character.mind.special_role) + if("traitor") + SSjob.EquipRank(new_character, new_character.mind.assigned_role, 1) + ticker.mode.equip_traitor(new_character) + if("Wizard") + new_character.loc = pick(wizardstart) + //ticker.mode.learn_basic_spells(new_character) + ticker.mode.equip_wizard(new_character) + if("Syndicate") + var/obj/effect/landmark/synd_spawn = locate("landmark*Syndicate-Spawn") + if(synd_spawn) + new_character.loc = get_turf(synd_spawn) + call(/datum/game_mode/proc/equip_syndicate)(new_character) + if("Space Ninja") + var/list/ninja_spawn = list() + for(var/obj/effect/landmark/L in landmarks_list) + if(L.name=="carpspawn") + ninja_spawn += L + new_character.equip_space_ninja() + new_character.internal = new_character.s_store + new_character.update_internals_hud_icon(1) + if(ninja_spawn.len) + var/obj/effect/landmark/ninja_spawn_here = pick(ninja_spawn) + new_character.loc = ninja_spawn_here.loc + + else//They may also be a cyborg or AI. + switch(new_character.mind.assigned_role) + if("Cyborg")//More rigging to make em' work and check if they're traitor. + new_character = new_character.Robotize() + if(new_character.mind.special_role=="traitor") + ticker.mode.add_law_zero(new_character) + if("AI") + new_character = new_character.AIize() + if(new_character.mind.special_role=="traitor") + ticker.mode.add_law_zero(new_character) + else + SSjob.EquipRank(new_character, new_character.mind.assigned_role, 1)//Or we simply equip them. + + //Announces the character on all the systems, based on the record. + if(!issilicon(new_character))//If they are not a cyborg/AI. + if(!record_found&&new_character.mind.assigned_role!=new_character.mind.special_role)//If there are no records for them. If they have a record, this info is already in there. MODE people are not announced anyway. + //Power to the user! + if(alert(new_character,"Warning: No data core entry detected. Would you like to announce the arrival of this character by adding them to various databases, such as medical records?",,"No","Yes")=="Yes") + data_core.manifest_inject(new_character) + + if(alert(new_character,"Would you like an active AI to announce this character?",,"No","Yes")=="Yes") + call(/mob/new_player/proc/AnnounceArrival)(new_character, new_character.mind.assigned_role) + + message_admins("[admin] has respawned [player_key] as [new_character.real_name].") + + new_character << "You have been fully respawned. Enjoy the game." + + feedback_add_details("admin_verb","RSPCH") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + return new_character + +/client/proc/cmd_admin_add_freeform_ai_law() + set category = "Fun" + set name = "Add Custom AI law" + if(!holder) + src << "Only administrators may use this command." + return + var/input = input(usr, "Please enter anything you want the AI to do. Anything. Serious.", "What?", "") as text|null + if(!input) + return + + log_admin("Admin [key_name(usr)] has added a new AI law - [input]") + message_admins("Admin [key_name_admin(usr)] has added a new AI law - [input]") + + var/show_log = alert(src, "Show ion message?", "Message", "Yes", "No") + var/announce_ion_laws = (show_log == "Yes" ? 1 : -1) + + var/datum/round_event/ion_storm/ion = new(0, announce_ion_laws, input) + ion.start() + + feedback_add_details("admin_verb","IONC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/cmd_admin_rejuvenate(mob/living/M in mob_list) + set category = "Special Verbs" + set name = "Rejuvenate" + if(!holder) + src << "Only administrators may use this command." + return + if(!mob) + return + if(!istype(M)) + alert("Cannot revive a ghost") + return + M.revive(full_heal = 1, admin_revive = 1) + + log_admin("[key_name(usr)] healed / revived [key_name(M)]") + message_admins("Admin [key_name_admin(usr)] healed / revived [key_name_admin(M)]!") + feedback_add_details("admin_verb","REJU") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/cmd_admin_create_centcom_report() + set category = "Special Verbs" + set name = "Create Command Report" + if(!holder) + src << "Only administrators may use this command." + return + var/input = input(usr, "Please enter anything you want. Anything. Serious.", "What?", "") as message|null + if(!input) + return + + var/confirm = alert(src, "Do you want to announce the contents of the report to the crew?", "Announce", "Yes", "No") + if(confirm == "Yes") + priority_announce(input, null, 'sound/AI/commandreport.ogg') + else + priority_announce("A report has been downloaded and printed out at all communications consoles.", "Incoming Classified Message", 'sound/AI/commandreport.ogg') + + print_command_report(input,"[confirm=="Yes" ? "" : "Classified "][command_name()] Update") + + log_admin("[key_name(src)] has created a command report: [input]") + message_admins("[key_name_admin(src)] has created a command report") + feedback_add_details("admin_verb","CCR") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/cmd_change_command_name() + set category = "Special Verbs" + set name = "Change Command Name" + if(!holder) + src << "Only administrators may use this command." + return + var/input = input(usr, "Please input a new name for Central Command.", "What?", "") as text|null + if(!input) + return + change_command_name(input) + message_admins("[key_name_admin(src)] has changed Central Command's name to [input]") + log_admin("[key_name(src)] has changed the Central Command name to: [input]") + +/client/proc/cmd_admin_delete(atom/O as obj|mob|turf in world) + set category = "Admin" + set name = "Delete" + + if (!holder) + src << "Only administrators may use this command." + return + + if (alert(src, "Are you sure you want to delete:\n[O]\nat ([O.x], [O.y], [O.z])?", "Confirmation", "Yes", "No") == "Yes") + log_admin("[key_name(usr)] deleted [O] at ([O.x],[O.y],[O.z])") + message_admins("[key_name_admin(usr)] deleted [O] at ([O.x],[O.y],[O.z])") + feedback_add_details("admin_verb","DEL") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + qdel(O) + +/client/proc/cmd_admin_list_open_jobs() + set category = "Admin" + set name = "Manage Job Slots" + + if (!holder) + src << "Only administrators may use this command." + return + holder.manage_free_slots() + feedback_add_details("admin_verb","MFS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/cmd_admin_explosion(atom/O as obj|mob|turf in world) + set category = "Special Verbs" + set name = "Explosion" + + if (!holder) + src << "Only administrators may use this command." + return + + var/devastation = input("Range of total devastation. -1 to none", text("Input")) as num|null + if(devastation == null) return + var/heavy = input("Range of heavy impact. -1 to none", text("Input")) as num|null + if(heavy == null) return + var/light = input("Range of light impact. -1 to none", text("Input")) as num|null + if(light == null) return + var/flash = input("Range of flash. -1 to none", text("Input")) as num|null + if(flash == null) return + var/flames = input("Range of flames. -1 to none", text("Input")) as num|null + if(flames == null) return + + if ((devastation != -1) || (heavy != -1) || (light != -1) || (flash != -1) || (flames != -1)) + if ((devastation > 20) || (heavy > 20) || (light > 20) || (flames > 20)) + if (alert(src, "Are you sure you want to do this? It will laaag.", "Confirmation", "Yes", "No") == "No") + return + + explosion(O, devastation, heavy, light, flash, null, null,flames) + log_admin("[key_name(usr)] created an explosion ([devastation],[heavy],[light],[flames]) at ([O.x],[O.y],[O.z])") + message_admins("[key_name_admin(usr)] created an explosion ([devastation],[heavy],[light],[flames]) at ([O.x],[O.y],[O.z])") + feedback_add_details("admin_verb","EXPL") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + return + else + return + +/client/proc/cmd_admin_emp(atom/O as obj|mob|turf in world) + set category = "Special Verbs" + set name = "EM Pulse" + + if (!holder) + src << "Only administrators may use this command." + return + + var/heavy = input("Range of heavy pulse.", text("Input")) as num|null + if(heavy == null) return + var/light = input("Range of light pulse.", text("Input")) as num|null + if(light == null) return + + if (heavy || light) + + empulse(O, heavy, light) + log_admin("[key_name(usr)] created an EM Pulse ([heavy],[light]) at ([O.x],[O.y],[O.z])") + message_admins("[key_name_admin(usr)] created an EM PUlse ([heavy],[light]) at ([O.x],[O.y],[O.z])") + feedback_add_details("admin_verb","EMP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + + return + else + return + +/client/proc/cmd_admin_gib(mob/M in mob_list) + set category = "Special Verbs" + set name = "Gib" + + if (!holder) + src << "Only administrators may use this command." + return + + var/confirm = alert(src, "Drop a brain?", "Confirm", "Yes", "No","Cancel") + if(confirm == "Cancel") + return + //Due to the delay here its easy for something to have happened to the mob + if(!M) + return + + log_admin("[key_name(usr)] has gibbed [key_name(M)]") + message_admins("[key_name_admin(usr)] has gibbed [key_name_admin(M)]") + + if(isobserver(M)) + new /obj/effect/gibspawner/generic(M.loc, M.viruses) + return + if(confirm == "Yes") + M.gib() + else + M.gib(1) + feedback_add_details("admin_verb","GIB") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/cmd_admin_gib_self() + set name = "Gibself" + set category = "Fun" + + var/confirm = alert(src, "You sure?", "Confirm", "Yes", "No") + if(confirm == "Yes") + log_admin("[key_name(usr)] used gibself.") + message_admins("[key_name_admin(usr)] used gibself.") + feedback_add_details("admin_verb","GIBS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + mob.gib(1, 1, 1) + +/client/proc/cmd_admin_check_contents(mob/living/M in mob_list) + set category = "Special Verbs" + set name = "Check Contents" + + var/list/L = M.get_contents() + for(var/t in L) + usr << "[t]" + feedback_add_details("admin_verb","CC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/toggle_view_range() + set category = "Special Verbs" + set name = "Change View Range" + set desc = "switches between 1x and custom views" + + if(view == world.view) + view = input("Select view range:", "FUCK YE", 7) in list(1,2,3,4,5,6,7,8,9,10,11,12,13,14,128) + else + view = world.view + + log_admin("[key_name(usr)] changed their view range to [view].") + //message_admins("\blue [key_name_admin(usr)] changed their view range to [view].") //why? removed by order of XSI + + feedback_add_details("admin_verb","CVRA") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/admin_call_shuttle() + + set category = "Admin" + set name = "Call Shuttle" + + if(EMERGENCY_AT_LEAST_DOCKED) + return + + if (!holder) + src << "Only administrators may use this command." + return + + var/confirm = alert(src, "You sure?", "Confirm", "Yes", "No") + if(confirm != "Yes") + return + + SSshuttle.emergency.request() + feedback_add_details("admin_verb","CSHUT") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + log_admin("[key_name(usr)] admin-called the emergency shuttle.") + message_admins("[key_name_admin(usr)] admin-called the emergency shuttle.") + return + +/client/proc/admin_cancel_shuttle() + set category = "Admin" + set name = "Cancel Shuttle" + if(!check_rights(0)) + return + if(alert(src, "You sure?", "Confirm", "Yes", "No") != "Yes") + return + + if(EMERGENCY_AT_LEAST_DOCKED) + return + + SSshuttle.emergency.cancel() + feedback_add_details("admin_verb","CCSHUT") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + log_admin("[key_name(usr)] admin-recalled the emergency shuttle.") + message_admins("[key_name_admin(usr)] admin-recalled the emergency shuttle.") + + return + +/client/proc/cmd_admin_attack_log(mob/M in mob_list) + set category = "Special Verbs" + set name = "Attack Log" + + usr << "Attack Log for [mob]" + for(var/t in M.attack_log) + usr << t + feedback_add_details("admin_verb","ATTL") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + + +/client/proc/everyone_random() + set category = "Fun" + set name = "Make Everyone Random" + set desc = "Make everyone have a random appearance. You can only use this before rounds!" + + if(ticker && ticker.mode) + usr << "Nope you can't do this, the game's already started. This only works before rounds!" + return + + if(config.force_random_names) + config.force_random_names = 0 + message_admins("Admin [key_name_admin(usr)] has disabled \"Everyone is Special\" mode.") + usr << "Disabled." + return + + + var/notifyplayers = alert(src, "Do you want to notify the players?", "Options", "Yes", "No", "Cancel") + if(notifyplayers == "Cancel") + return + + log_admin("Admin [key_name(src)] has forced the players to have random appearances.") + message_admins("Admin [key_name_admin(usr)] has forced the players to have random appearances.") + + if(notifyplayers == "Yes") + world << "Admin [usr.key] has forced the players to have completely random identities!" + + usr << "Remember: you can always disable the randomness by using the verb again, assuming the round hasn't started yet." + + config.force_random_names = 1 + feedback_add_details("admin_verb","MER") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + + +/client/proc/toggle_random_events() + set category = "Server" + set name = "Toggle random events on/off" + set desc = "Toggles random events such as meteors, black holes, blob (but not space dust) on/off" + if(!config.allow_random_events) + config.allow_random_events = 1 + usr << "Random events enabled" + message_admins("Admin [key_name_admin(usr)] has enabled random events.") + else + config.allow_random_events = 0 + usr << "Random events disabled" + message_admins("Admin [key_name_admin(usr)] has disabled random events.") + feedback_add_details("admin_verb","TRE") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + + +/client/proc/admin_change_sec_level() + set category = "Special Verbs" + set name = "Set Security Level" + set desc = "Changes the security level. Announcement only, i.e. setting to Delta won't activate nuke" + + if (!holder) + src << "Only administrators may use this command." + return + + var/level = input("Select security level to change to","Set Security Level") as null|anything in list("green","blue","red","delta") + if(level) + set_security_level(level) + + log_admin("[key_name(usr)] changed the security level to [level]") + message_admins("[key_name_admin(usr)] changed the security level to [level]") + feedback_add_details("admin_verb","CSL") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/toggle_nuke(obj/machinery/nuclearbomb/N in nuke_list) + set name = "Toggle Nuke" + set category = "Fun" + set popup_menu = 0 + if(!check_rights(R_DEBUG)) + return + + if(!N.timing) + var/newtime = input(usr, "Set activation timer.", "Activate Nuke", "[N.timer_set]") as num + if(!newtime) + return + N.timer_set = newtime + N.set_safety() + N.set_active() + + log_admin("[key_name(usr)] [N.timing ? "activated" : "deactivated"] a nuke at ([N.x],[N.y],[N.z]).") + message_admins("[ADMIN_LOOKUPFLW(usr)] [N.timing ? "activated" : "deactivated"] a nuke at [ADMIN_COORDJMP(N)].") + feedback_add_details("admin_verb","TN") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/reset_latejoin_spawns() + set category = "Debug" + set name = "Remove Latejoin Spawns" + + if(!check_rights(R_DEBUG)) + return + + latejoin.Cut() + + log_admin("[key_name(usr)] removed latejoin spawnpoints.") + message_admins("[key_name_admin(usr)] removed latejoin spawnpoints.") + + + + +var/list/datum/outfit/custom_outfits = list() //Admin created outfits + +/client/proc/create_outfits() + set category = "Debug" + set name = "Create Custom Outfit" + + if(!check_rights(R_DEBUG)) + return + + holder.create_outfit() + +/datum/admins/proc/create_outfit() + var/list/uniforms = typesof(/obj/item/clothing/under) + var/list/suits = typesof(/obj/item/clothing/suit) + var/list/gloves = typesof(/obj/item/clothing/gloves) + var/list/shoes = typesof(/obj/item/clothing/shoes) + var/list/headwear = typesof(/obj/item/clothing/head) + var/list/glasses = typesof(/obj/item/clothing/glasses) + var/list/masks = typesof(/obj/item/clothing/mask) + var/list/ids = typesof(/obj/item/weapon/card/id) + + var/uniform_select = "" + + var/suit_select = "" + + var/gloves_select = "" + + var/shoes_select = "" + + var/head_select = "" + + var/glasses_select = "" + + var/mask_select = "" + + var/id_select = "" + + var/dat = {" + Create Outfit +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Name: + +
    Uniform: + [uniform_select] +
    Suit: + [suit_select] +
    Back: + +
    Belt: + +
    Gloves: + [gloves_select] +
    Shoes: + [shoes_select] +
    Head: + [head_select] +
    Mask: + [mask_select] +
    Ears: + +
    Glasses: + [glasses_select] +
    ID: + [id_select] +
    Left Pocket: + +
    Right Pocket: + +
    Suit Store: + +
    Right Hand: + +
    Left Hand: + +
    +
    + +
    + "} + usr << browse(dat, "window=dressup;size=550x600") + +/client/proc/toggle_antag_hud() + set category = "Admin" + set name = "Toggle AntagHUD" + set desc = "Toggles the Admin AntagHUD" + + if(!holder) return + + var/datum/atom_hud/A = huds[ANTAG_HUD_TRAITOR] + var/adding_hud = (usr in A.hudusers) ? 0 : 1 + + for(var/datum/atom_hud/H in huds) + if(istype(H, /datum/atom_hud/antag)) + (adding_hud) ? H.add_hud_to(usr) : H.remove_hud_from(usr) + + for(var/datum/gang/G in ticker.mode.gangs) + var/datum/atom_hud/antag/H = G.ganghud + (adding_hud) ? H.add_hud_to(usr) : H.remove_hud_from(usr) + + usr << "You toggled your admin antag HUD [adding_hud ? "ON" : "OFF"]." + message_admins("[key_name_admin(usr)] toggled their admin antag HUD [adding_hud ? "ON" : "OFF"].") + log_admin("[key_name(usr)] toggled their admin antag HUD [adding_hud ? "ON" : "OFF"].") + feedback_add_details("admin_verb","TAH") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/open_shuttle_manipulator() + set category = "Admin" + set name = "Shuttle Manipulator" + set desc = "Opens the shuttle manipulator UI." + + for(var/obj/machinery/shuttle_manipulator/M in machines) + M.ui_interact(usr) + +/client/proc/mass_zombie_infection() + set category = "Fun" + set name = "Mass Zombie Infection" + set desc = "Infects all humans with a latent organ that will zombify \ + them on death." + + if(!holder) + return + + var/confirm = alert(src, "Please confirm you want to add latent zombie organs in all humans?", "Confirm Zombies", "Yes", "No") + if(confirm != "Yes") + return + + for(var/mob/living/carbon/human/H in mob_list) + new /obj/item/organ/body_egg/zombie_infection(H) + + message_admins("[key_name_admin(usr)] added a latent zombie infection to all humans.") + log_admin("[key_name(usr)] added a latent zombie infection to all humans.") + feedback_add_details("admin_verb","MZI") + +/client/proc/mass_zombie_cure() + set category = "Fun" + set name = "Mass Zombie Cure" + set desc = "Removes the zombie infection from all humans, returning them to normal." + if(!holder) + return + + var/confirm = alert(src, "Please confirm you want to cure all zombies?", "Confirm Zombie Cure", "Yes", "No") + if(confirm != "Yes") + return + + for(var/obj/item/organ/body_egg/zombie_infection/I in zombie_infection_list) + qdel(I) + + message_admins("[key_name_admin(usr)] cured all zombies.") + log_admin("[key_name(usr)] cured all zombies.") + feedback_add_details("admin_verb","MZC") + +/client/proc/polymorph_all() + set category = "Fun" + set name = "Polymorph All" + set desc = "Applies the effects of the bolt of change to every single mob." + + if(!holder) + return + + var/confirm = alert(src, "Please confirm you want polymorph all mobs?", "Confirm Polymorph", "Yes", "No") + if(confirm != "Yes") + return + + var/list/mobs = shuffle(living_mob_list.Copy()) // might change while iterating + var/who_did_it = key_name_admin(usr) + + message_admins("[key_name_admin(usr)] started polymorphed all living mobs.") + log_admin("[key_name(usr)] polymorphed all living mobs.") + feedback_add_details("admin_verb","MASSWABBAJACK") + + for(var/mob/living/M in mobs) + CHECK_TICK + + if(!M) + continue + + M.audible_message("...wabbajack...wabbajack...") + playsound(M.loc, 'sound/magic/Staff_Change.ogg', 50, 1, -1) + + wabbajack(M) + + message_admins("Mass polymorph started by [who_did_it] is complete.") + + +/client/proc/show_tip() + set category = "Admin" + set name = "Show Tip" + set desc = "Sends a tip (that you specify) to all players. After all \ + you're the experienced player here." + + if(!holder) + return + + var/input = input(usr, "Please specify your tip that you want to send to the players.", "Tip", "") as message|null + if(!input) + return + + if(!ticker) + return + + ticker.selected_tip = input + + // If we've already tipped, then send it straight away. + if(ticker.tipped) + ticker.send_tip_of_the_round() + + + message_admins("[key_name_admin(usr)] sent a tip of the round.") + log_admin("[key_name(usr)] sent \"[input]\" as the Tip of the Round.") + feedback_add_details("admin_verb","TIP") + +#define ON_PURRBATION(H) (!(H.dna.features["tail_human"] == "None" && H.dna.features["ears"] == "None")) + +/proc/mass_purrbation() + for(var/M in mob_list) + if(ishumanbasic(M)) + purrbation_apply(M) + CHECK_TICK + +/proc/mass_remove_purrbation() + for(var/M in mob_list) + if(ishumanbasic(M)) + purrbation_remove(M) + CHECK_TICK + +/proc/purrbation_toggle(mob/living/carbon/human/H) + if(!ishumanbasic(H)) + return + if(!ON_PURRBATION(H)) + purrbation_apply(H) + . = TRUE + else + purrbation_remove(H) + . = FALSE + +/proc/purrbation_apply(mob/living/carbon/human/H) + if(!ishuman(H)) + return + if(ON_PURRBATION(H)) + return + H << "Something is nya~t right." + H.dna.features["tail_human"] = "Cat" + H.dna.features["ears"] = "Cat" + H.regenerate_icons() + playsound(get_turf(H), 'sound/effects/meow1.ogg', 50, 1, -1) + +/proc/purrbation_remove(mob/living/carbon/human/H) + if(!ishuman(H)) + return + if(!ON_PURRBATION(H)) + return + H << "You are no longer a cat." + H.dna.features["tail_human"] = "None" + H.dna.features["ears"] = "None" + H.regenerate_icons() + +#undef ON_PURRBATION + +/client/proc/modify_goals() + set category = "Debug" + set name = "Modify goals" + + if(!check_rights(R_ADMIN)) + return + + holder.modify_goals() + +/datum/admins/proc/modify_goals() + var/dat = "" + for(var/datum/station_goal/S in ticker.mode.station_goals) + dat += "[S.name] - Announce | Remove
    " + dat += "
    Add New Goal" + usr << browse(dat, "window=goals;size=400x400") + + +/client/proc/toggle_hub() + set category = "Server" + set name = "Toggle Hub" + + world.visibility = (!world.visibility) + + log_admin("[key_name(usr)] has toggled the server's hub status for the round, it is now [(world.visibility?"on":"off")] the hub.") + message_admins("[key_name_admin(usr)] has toggled the server's hub status for the round, it is now [(world.visibility?"on":"off")] the hub.") + if (world.visibility && !world.reachable) + message_admins("WARNING: The server will not show up on the hub because byond is detecting that a filewall is blocking incoming connections.") + + feedback_add_details("admin_verb","HUB") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! \ No newline at end of file diff --git a/code/modules/admin/verbs/reestablish_db_connection.dm b/code/modules/admin/verbs/reestablish_db_connection.dm new file mode 100644 index 0000000..146b848 --- /dev/null +++ b/code/modules/admin/verbs/reestablish_db_connection.dm @@ -0,0 +1,31 @@ +/client/proc/reestablish_db_connection() + set category = "Special Verbs" + set name = "Reestablish DB Connection" + if (!config.sql_enabled) + usr << "The Database is not enabled!" + return + + if (dbcon && dbcon.IsConnected()) + if (!check_rights(R_DEBUG,0)) + alert("The database is already connected! (Only those with +debug can force a reconnection)", "The database is already connected!") + return + + var/reconnect = alert("The database is already connected! If you *KNOW* that this is incorrect, you can force a reconnection", "The database is already connected!", "Force Reconnect", "Cancel") + if (reconnect != "Force Reconnect") + return + + dbcon.Disconnect() + failed_db_connections = 0 + log_admin("[key_name(usr)] has forced the database to disconnect") + message_admins("[key_name_admin(usr)] has forced the database to disconnect!") + feedback_add_details("admin_verb","FRDB") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + + log_admin("[key_name(usr)] is attempting to re-established the DB Connection") + message_admins("[key_name_admin(usr)] is attempting to re-established the DB Connection") + feedback_add_details("admin_verb","RDB") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + + failed_db_connections = 0 + if (!establish_db_connection()) + message_admins("Database connection failed: " + dbcon.ErrorMsg()) + else + message_admins("Database connection re-established") \ No newline at end of file diff --git a/code/modules/admin/verbs/tripAI.dm b/code/modules/admin/verbs/tripAI.dm new file mode 100644 index 0000000..c717275 --- /dev/null +++ b/code/modules/admin/verbs/tripAI.dm @@ -0,0 +1,20 @@ +/client/proc/triple_ai() + set category = "Fun" + set name = "Create AI Triumvirate" + + if(ticker.current_state > GAME_STATE_PREGAME) + usr << "This option is currently only usable during pregame. This may change at a later date." + return + + var/datum/job/job = SSjob.GetJob("AI") + if(!job) + usr << "Unable to locate the AI job" + return + if(ticker.triai) + ticker.triai = 0 + usr << "Only one AI will be spawned at round start." + message_admins("[key_name_admin(usr)] has toggled off triple AIs at round start.") + else + ticker.triai = 1 + usr << "There will be an AI Triumvirate at round start." + message_admins("[key_name_admin(usr)] has toggled on triple AIs at round start.") diff --git a/code/modules/admin/watchlist.dm b/code/modules/admin/watchlist.dm new file mode 100644 index 0000000..71463b5 --- /dev/null +++ b/code/modules/admin/watchlist.dm @@ -0,0 +1,117 @@ +/client/proc/watchlist_add(target_ckey, browse = 0) + if(!target_ckey) + var/new_ckey = ckey(input(usr,"Who would you like to add to the watchlist?","Enter a ckey",null) as text) + if(!new_ckey) + return + new_ckey = sanitizeSQL(new_ckey) + var/DBQuery/query_watchfind = dbcon.NewQuery("SELECT ckey FROM [format_table_name("player")] WHERE ckey = '[new_ckey]'") + if(!query_watchfind.Execute()) + var/err = query_watchfind.ErrorMsg() + log_game("SQL ERROR obtaining ckey from player table. Error : \[[err]\]\n") + return + if(!query_watchfind.NextRow()) + if(alert(usr, "[new_ckey] has not been seen before, are you sure you want to add them to the watchlist?", "Unknown ckey", "Yes", "No", "Cancel") != "Yes") + return + target_ckey = new_ckey + var/target_sql_ckey = sanitizeSQL(target_ckey) + if(check_watchlist(target_sql_ckey)) + usr << "[target_sql_ckey] is already on the watchlist." + return + var/reason = input(usr,"Please State Reason","Reason") as message + if(!reason) + return + reason = sanitizeSQL(reason) + var/timestamp = SQLtime() + var/adminckey = usr.ckey + if(!adminckey) + return + var/admin_sql_ckey = sanitizeSQL(adminckey) + var/DBQuery/query_watchadd = dbcon.NewQuery("INSERT INTO [format_table_name("watch")] (ckey, reason, adminckey, timestamp) VALUES ('[target_sql_ckey]', '[reason]', '[admin_sql_ckey]', '[timestamp]')") + if(!query_watchadd.Execute()) + var/err = query_watchadd.ErrorMsg() + log_game("SQL ERROR during adding new watch entry. Error : \[[err]\]\n") + return + log_admin("[key_name(usr)] has added [target_ckey] to the watchlist - Reason: [reason]") + message_admins("[key_name_admin(usr)] has added [target_ckey] to the watchlist - Reason: [reason]", 1) + if(browse) + watchlist_show(target_sql_ckey) + +/client/proc/watchlist_remove(target_ckey, browse = 0) + var/target_sql_ckey = sanitizeSQL(target_ckey) + var/DBQuery/query_watchdel = dbcon.NewQuery("DELETE FROM [format_table_name("watch")] WHERE ckey = '[target_sql_ckey]'") + if(!query_watchdel.Execute()) + var/err = query_watchdel.ErrorMsg() + log_game("SQL ERROR during removing watch entry. Error : \[[err]\]\n") + return + log_admin("[key_name(usr)] has removed [target_ckey] from the watchlist") + message_admins("[key_name_admin(usr)] has removed [target_ckey] from the watchlist", 1) + if(browse) + watchlist_show() + +/client/proc/watchlist_edit(target_ckey, browse = 0) + var/target_sql_ckey = sanitizeSQL(target_ckey) + var/DBQuery/query_watchreason = dbcon.NewQuery("SELECT reason FROM [format_table_name("watch")] WHERE ckey = '[target_sql_ckey]'") + if(!query_watchreason.Execute()) + var/err = query_watchreason.ErrorMsg() + log_game("SQL ERROR obtaining reason from watch table. Error : \[[err]\]\n") + return + if(query_watchreason.NextRow()) + var/watch_reason = query_watchreason.item[1] + var/new_reason = input("Input new reason", "New Reason", "[watch_reason]") as message + new_reason = sanitizeSQL(new_reason) + if(!new_reason) + return + var/sql_ckey = sanitizeSQL(usr.ckey) + var/edit_text = "Edited by [sql_ckey] on [SQLtime()] from
    [watch_reason]
    to
    [new_reason]
    " + edit_text = sanitizeSQL(edit_text) + var/DBQuery/query_watchupdate = dbcon.NewQuery("UPDATE [format_table_name("watch")] SET reason = '[new_reason]', last_editor = '[sql_ckey]', edits = CONCAT(IFNULL(edits,''),'[edit_text]') WHERE ckey = '[target_sql_ckey]'") + if(!query_watchupdate.Execute()) + var/err = query_watchupdate.ErrorMsg() + log_game("SQL ERROR editing watchlist reason. Error : \[[err]\]\n") + return + log_admin("[key_name(usr)] has edited [target_ckey]'s watchlist reason from [watch_reason] to [new_reason]") + message_admins("[key_name_admin(usr)] has edited [target_ckey]'s watchlist reason from
    [watch_reason]
    to
    [new_reason]") + if(browse) + watchlist_show(target_sql_ckey) + +/client/proc/watchlist_show(search) + var/output + output += "
    \ + \ + \ +
    " + output += "\[Clear Search\] \[Add Ckey\]" + output += "
    " + if(search) + search = "^[search]" + else + search = "^." + search = sanitizeSQL(search) + var/DBQuery/query_watchlist = dbcon.NewQuery("SELECT ckey, reason, adminckey, timestamp, last_editor FROM [format_table_name("watch")] WHERE ckey REGEXP '[search]' ORDER BY ckey") + if(!query_watchlist.Execute()) + var/err = query_watchlist.ErrorMsg() + log_game("SQL ERROR obtaining ckey, reason, adminckey, timestamp, last_editor from watch table. Error : \[[err]\]\n") + return + while(query_watchlist.NextRow()) + var/ckey = query_watchlist.item[1] + var/reason = query_watchlist.item[2] + var/adminckey = query_watchlist.item[3] + var/timestamp = query_watchlist.item[4] + var/last_editor = query_watchlist.item[5] + output += "[ckey] | Added by [adminckey] on [timestamp] \[Remove\] \[Edit Reason\]" + if(last_editor) + output += " Last edit by [last_editor] (Click here to see edit log)" + output += "
    [reason]
    " + usr << browse(output, "window=watchwin;size=900x500") + +/client/proc/check_watchlist(target_ckey) + var/target_sql_ckey = sanitizeSQL(target_ckey) + var/DBQuery/query_watch = dbcon.NewQuery("SELECT reason FROM [format_table_name("watch")] WHERE ckey = '[target_sql_ckey]'") + if(!query_watch.Execute()) + var/err = query_watch.ErrorMsg() + log_game("SQL ERROR obtaining reason from watch table. Error : \[[err]\]\n") + return + if(query_watch.NextRow()) + return query_watch.item[1] + else + return 0 diff --git a/code/modules/aspects/aspect_all_access.dm b/code/modules/aspects/aspect_all_access.dm new file mode 100644 index 0000000..288655e --- /dev/null +++ b/code/modules/aspects/aspect_all_access.dm @@ -0,0 +1,42 @@ +/datum/round_event_control/aspect/bad_hop + name = "Bad HoP" + typepath = /datum/round_event/aspect/bad_hop + +/datum/round_event/aspect/bad_hop + name = "Bad HoP" + description = "Those most trustworthy get all access today!" + +/datum/round_event/aspect/bad_hop/start() + var/trustworthy1 = null + var/trustworthy2 = null + for(var/mob/living/carbon/human/H in living_mob_list)//Look through the list. + if(!istype(H))//Sanity check. + return + + trustworthy1 = pick("Clown", "Librarian", "Chef")//Very trustworthy indeed. + trustworthy2 = pick("Mime", "Assistant", "Janitor") + + if(H.mind.assigned_role == trustworthy1 || H.mind.assigned_role == trustworthy2) + var/obj/item/weapon/card/id/W = H.wear_id//Get their ID. + W.access = get_all_accesses()//And give them all access. + H << "You are very trustworthy today!" + + + + +//GIVING JUST THE CLOWN AND MIME ALL ACCESS +/datum/round_event_control/aspect/bad_hop/clown + name = "Bad HoP Clown and Mime" + typepath = /datum/round_event/aspect/bad_hop/clown + +/datum/round_event/aspect/bad_hop/clown//No sense defining this twice, it's the same as the last one. + +/datum/round_event/aspect/bad_hop/clown/start() + for(var/mob/living/carbon/human/H in living_mob_list)//Look through the list. + if(!istype(H))//Sanity check. + return + + if(H.mind.assigned_role == "Mime" || H.mind.assigned_role == "Clown")//Oh shit we got a mime and clown here! + var/obj/item/weapon/card/id/W = H.wear_id + W.access = get_all_accesses() + H << "You are very trustworthy today!" \ No newline at end of file diff --git a/code/modules/aspects/aspect_clownstation.dm b/code/modules/aspects/aspect_clownstation.dm new file mode 100644 index 0000000..06ce15b --- /dev/null +++ b/code/modules/aspects/aspect_clownstation.dm @@ -0,0 +1,22 @@ +//Can't quite get this to work. + +/datum/round_event_control/aspect/clownstation + name = "All Heads Clowns" + typepath = /datum/round_event/aspect/clownstation + +/datum/round_event/aspect/clownstation + name = "ClownStation" + description = "Due to Nanotrasen's \"Honk Initiative\" all the start heads have been replaced with Clowns." + +/datum/round_event/aspect/clownstation/start() + for(var/mob/living/carbon/human/H in mob_list) + if(H.stat!=2 && H.mind && (H.mind.assigned_role in command_positions)) + qdel(H.w_uniform) + qdel(H.shoes) + + + H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/clown(H),slot_w_uniform) + H.equip_to_slot_or_del(new /obj/item/clothing/shoes/clown_shoes(H),slot_shoes) + H.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/clown_hat(H),slot_wear_mask) + H.fully_replace_character_name(H.real_name, pick(clown_names)) + H.dna.add_mutation(CLOWNMUT) \ No newline at end of file diff --git a/code/modules/aspects/aspect_erp.dm b/code/modules/aspects/aspect_erp.dm new file mode 100644 index 0000000..08fc6bc --- /dev/null +++ b/code/modules/aspects/aspect_erp.dm @@ -0,0 +1,20 @@ + + +/datum/round_event_control/aspect/erp + name = "All Nude" + typepath = /datum/round_event/aspect/erp + +/datum/round_event/aspect/erp + name = "ERP" + description = "Nanotrasen's newest budget cuts have cut clothes out of the starting equipment for the crew." + +/datum/round_event/aspect/erp/start() + + for(var/mob/living/carbon/human/H in living_mob_list) + qdel(H.back) + qdel(H.ears) + qdel(H.gloves) + qdel(H.head) + qdel(H.shoes) + qdel(H.wear_suit) + qdel(H.w_uniform) diff --git a/code/modules/aspects/aspect_gifted.dm b/code/modules/aspects/aspect_gifted.dm new file mode 100644 index 0000000..829e5ac --- /dev/null +++ b/code/modules/aspects/aspect_gifted.dm @@ -0,0 +1,17 @@ +/datum/round_event_control/aspect/gifted + name = "Make Science Stupid" + typepath = /datum/round_event/aspect/gifted + +/datum/round_event/aspect/gifted + name = "Gifted and Talented" + description = "Due to Nanotrasen's \"Gifted Bridge Program\", the starting science department is incredibly gifted today." + +/datum/round_event/aspect/gifted/start() + for(var/mob/living/carbon/human/H in living_mob_list)//Look through the list. + if(!istype(H))//Sanity check. + return + + //OH GOOD LORD WHY! + if(H.mind.assigned_role == "Scientist" || H.mind.assigned_role == "Roboticist" || H.mind.assigned_role == "Research Director") + H.adjustBrainLoss(60) + H << "You feel very gifted today."//I'll bet they do. \ No newline at end of file diff --git a/code/modules/aspects/aspect_identity.dm b/code/modules/aspects/aspect_identity.dm new file mode 100644 index 0000000..6b89adb --- /dev/null +++ b/code/modules/aspects/aspect_identity.dm @@ -0,0 +1,14 @@ +/datum/round_event_control/aspect/identity_crisis + name = "Make all the people random" + typepath = /datum/round_event/aspect/bad_hop + +/datum/round_event/aspect/identity_crisis + name = "Identity Crisis" + description = "Everyone is not who they seem today." + +/datum/round_event/aspect/identity_crisis/start() + + for(var/mob/living/carbon/human/H in living_mob_list)//Look through the list. + if(!istype(H))//Sanity check. A pointless one at that. + return + randomize_human(H)//Make them random. \ No newline at end of file diff --git a/code/modules/aspects/aspect_implant.dm b/code/modules/aspects/aspect_implant.dm new file mode 100644 index 0000000..ef9d5d1 --- /dev/null +++ b/code/modules/aspects/aspect_implant.dm @@ -0,0 +1,14 @@ +/datum/round_event_control/aspect/eimplant + name = "Explosive implant" + typepath = /datum/round_event/aspect/eimplant +/datum/round_event/aspect/eimplant + name = "Last Resort" + description = "Due to the Nanotrasen \"Self-Cleanup Initiative\", the starting crew has been fitted with explosive implants!" + +/datum/round_event/aspect/eimplant/start() + for(var/mob/living/carbon/human/H in living_mob_list) + + var/obj/item/weapon/implant/explosive/L = new/obj/item/weapon/implant/explosive(H) + L.implant(H, null, 1) + + diff --git a/code/modules/aspects/aspect_kitty.dm b/code/modules/aspects/aspect_kitty.dm new file mode 100644 index 0000000..296b3dd --- /dev/null +++ b/code/modules/aspects/aspect_kitty.dm @@ -0,0 +1,15 @@ +//OH GOD WHY! + +/datum/round_event_control/aspect/neko + name = "Neko Para" + typepath = /datum/round_event/aspect/neko + +/datum/round_event/aspect/neko + name = "Neko Para" + description = "As apart of Nanotrasen's \"Kawaii Containment Initiative\" the starting crew has been replaced with their neko counterparts." + +/datum/round_event/aspect/neko/start() + for(var/mob/living/carbon/human/H in player_list)//Look through the list. + H.dna.features["tail_human"] = "Cat" + H.dna.features["ears"] = "Cat" + H.regenerate_icons()//Now you're a cat. \ No newline at end of file diff --git a/code/modules/aspects/aspect_kungfu.dm b/code/modules/aspects/aspect_kungfu.dm new file mode 100644 index 0000000..698235e --- /dev/null +++ b/code/modules/aspects/aspect_kungfu.dm @@ -0,0 +1,23 @@ +/datum/round_event_control/aspect/kungfu + name = "Kung-Fu" + typepath = /datum/round_event/aspect/kungfu + +/datum/round_event/aspect/kungfu + name = "I know Kung-Fu" + description = "As part of the Nanotrasen \"Self-Defense\" intiative, everybody has gained knowledge of hidden a martial art." + +/datum/round_event/aspect/kungfu/start() + for(var/mob/living/carbon/human/H in living_mob_list) + if(!istype(H))//Sanity check. + return + var/style = null + + + style = pick(/datum/martial_art/krav_maga, /datum/martial_art/boxing, /datum/martial_art/wrestling, /datum/martial_art/plasma_fist, /datum/martial_art/the_sleeping_carp) + + if(H.mind.assigned_role != "Shaft Miner") + if(style) + var/datum/martial_art/S = new style() + + S.teach(H,0) + diff --git a/code/modules/aspects/aspect_quiet_day.dm b/code/modules/aspects/aspect_quiet_day.dm new file mode 100644 index 0000000..9cab7a4 --- /dev/null +++ b/code/modules/aspects/aspect_quiet_day.dm @@ -0,0 +1,16 @@ +/datum/round_event_control/aspect/quiet + name = "All Mimes" + typepath = /datum/round_event/aspect/quiet + +/datum/round_event/aspect/quiet + name = "Quiet Day" + description = "As apart of Nanotrasen's \"Job Inclusivity\" intiative, the starting crew has been replaced with highly skilled mimes." + +/datum/round_event/aspect/quiet/start() + for(var/mob/living/carbon/human/H in living_mob_list)//Look through the list. + if(!istype(H))//Sanity check. + return + if(H.mind.assigned_role != "Clown" || H.mind.assigned_role != "Mime") + H.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/conjure/mime_wall(null)) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/mime/speak(null)) + H.mind.miming = 1 \ No newline at end of file diff --git a/code/modules/aspects/aspect_race.dm b/code/modules/aspects/aspect_race.dm new file mode 100644 index 0000000..dcca223 --- /dev/null +++ b/code/modules/aspects/aspect_race.dm @@ -0,0 +1,14 @@ +/datum/round_event_control/aspect/rand_races//Unused. + name = "Random Species" + typepath = /datum/round_event/aspect/rand_races + +/datum/round_event/aspect/rand_races + name = "Humans Need Not Apply" + description = "Everyone is a random species." + +/datum/round_event/aspect/rand_races/start() + var/species + + for(var/mob/living/carbon/human/H in player_list) + species = pick(/datum/species/lizard, /datum/species/synth, /datum/species/skeleton, /datum/species/jelly, /datum/species/jelly/slime) + H.set_species(species, icon_update=1) \ No newline at end of file diff --git a/code/modules/aspects/aspect_toolbox.dm b/code/modules/aspects/aspect_toolbox.dm new file mode 100644 index 0000000..5dd6f1f --- /dev/null +++ b/code/modules/aspects/aspect_toolbox.dm @@ -0,0 +1,18 @@ +/datum/round_event_control/aspect/toolbox_salesman + name = "Toolbox Salesman" + typepath = /datum/round_event/aspect/toolbox_salesman + +/datum/round_event/aspect/toolbox_salesman + name = "Toolbox Salesman" + description = "As apart of Nanotrasen's \"Fixer Upper Initiative\" all shift start assistants recieve a free toolbox." + +/datum/round_event/aspect/toolbox_salesman/start()//What a pointless aspect. + + for(var/mob/living/carbon/human/H in living_mob_list) + if(!istype(H))//Sanity check. + return + + if(H.mind.assigned_role == "Assistant") + H.put_in_r_hand( new /obj/item/weapon/storage/toolbox/mechanical(H) ) + //And congratulations. Now they have a fucking pointless ass toolbox. Cool. + diff --git a/code/modules/aspects/aspect_two_captains.dm b/code/modules/aspects/aspect_two_captains.dm new file mode 100644 index 0000000..0a6bf9e --- /dev/null +++ b/code/modules/aspects/aspect_two_captains.dm @@ -0,0 +1,12 @@ +/datum/round_event_control/aspect/two_caps + name = "Two Captains" + typepath = /datum/round_event/aspect/two_caps + +/datum/round_event/aspect/two_caps + name = "Two Many Condoms" + description = "Nanotrasen has allowed for two captains today." + +/datum/round_event/aspect/two_caps/start() + for(var/datum/job/job in SSjob.occupations) + if(job.title == "Captain") + job.total_positions = 2 \ No newline at end of file diff --git a/code/modules/aspects/aspects.dm b/code/modules/aspects/aspects.dm new file mode 100644 index 0000000..146b353 --- /dev/null +++ b/code/modules/aspects/aspects.dm @@ -0,0 +1,61 @@ +/* +##################ASPECTS!############ +##Aspects are one time events that only fire at the very beginning of the round. +##The idea behind them is that they change something about the game world, an aspect if you will, +##to keep rounds from being samey. They can either affect a certain job, the crew on whole, or the map. +##Obviously some are going to be more balanced than others. Aspects should change something about the +##game world to make it more interesting, not annoying. Remember that when adding a new one. +## +##In order to add your own just make a child event of aspect and then add it to the rotation list +##in the proc choose_aspect() in ticker.dm. I'm sure there's a better way to do this, and I'll change +##this comment block when I find one. - Matt +###################################### + +IT'S IMPORTANT TO REMEMBER THAT YES, ASPECTS HAVE THE HUGE POTENTIAL TO RUIN GAME BALANCE! + USE THIS POWER WITH CAUTION! +*/ + +/datum/round_event_control/aspect + aspect = 1 + + +/datum/round_event/aspect + var/name = null //The name that will be displayed post round. + var/description = null //The description that will be displayed pre and post round. + //These are called in ticker.dm in a proc called choose_aspect() + + + +//This was a test aspect, should not be put in rotation: +/datum/round_event_control/aspect/lightsout + name = "Lights Out!" + typepath = /datum/round_event/aspect/lightsout + +/datum/round_event/aspect/lightsout + name = "Dark Days Ahead" + description = "Nanotrasen has decided that having lights is too expensive." + +/datum/round_event/aspect/lightsout/start()//Round starts with all lights destroyed! Do not actually try to play like this! It sucks! + for(var/obj/machinery/light/L in machines) + L.break_light_tube() + + for(var/mob/living/carbon/human/H in living_mob_list) + if(!istype(H))//Sanity check. + return + H.put_in_r_hand( new /obj/item/device/flashlight(H) )//Give them a flashlight to be nice. + + +/* Still working on this. +/client/proc/forceAspect() + set name = "Force Aspect" + set category = "Fun" + + if(!holder ||!check_rights(R_FUN)) + return + + holder.forceAspect() + +/datum/admins/proc/forceAspect() + + +*/ \ No newline at end of file diff --git a/code/modules/assembly/assembly.dm b/code/modules/assembly/assembly.dm new file mode 100644 index 0000000..f09b51d --- /dev/null +++ b/code/modules/assembly/assembly.dm @@ -0,0 +1,131 @@ +/obj/item/device/assembly + name = "assembly" + desc = "A small electronic device that should never exist." + icon = 'icons/obj/assemblies/new_assemblies.dmi' + icon_state = "" + flags = CONDUCT + w_class = 2 + materials = list(MAT_METAL=100) + throwforce = 2 + throw_speed = 3 + throw_range = 7 + origin_tech = "magnets=1;engineering=1" + + var/secured = 1 + var/list/attached_overlays = null + var/obj/item/device/assembly_holder/holder = null + var/cooldown = 0//To prevent spam + var/wire_type = WIRE_RECEIVE | WIRE_PULSE + var/attachable = 0 // can this be attached to wires + var/datum/wires/connected = null + + var/const/WIRE_RECEIVE = 1 //Allows Pulsed(0) to call Activate() + var/const/WIRE_PULSE = 2 //Allows Pulse(0) to act on the holder + var/const/WIRE_PULSE_SPECIAL = 4 //Allows Pulse(0) to act on the holders special assembly + var/const/WIRE_RADIO_RECEIVE = 8 //Allows Pulsed(1) to call Activate() + var/const/WIRE_RADIO_PULSE = 16 //Allows Pulse(1) to send a radio message + +/obj/item/device/assembly/proc/on_attach() + +/obj/item/device/assembly/proc/on_detach() + +/obj/item/device/assembly/proc/holder_movement() //Called when the holder is moved + return + +/obj/item/device/assembly/proc/describe() // Called by grenades to describe the state of the trigger (time left, etc) + return "The trigger assembly looks broken!" + + +/obj/item/device/assembly/proc/is_secured(mob/user) + if(!secured) + user << "The [name] is unsecured!" + return 0 + return 1 + + +//Called via spawn(10) to have it count down the cooldown var +/obj/item/device/assembly/proc/process_cooldown() + cooldown-- + if(cooldown <= 0) + return 0 + spawn(10) + process_cooldown() + return 1 + + +//Called when another assembly acts on this one, var/radio will determine where it came from for wire calcs +/obj/item/device/assembly/proc/pulsed(radio = 0) + if(wire_type & WIRE_RECEIVE) + spawn(0) + activate() + if(radio && (wire_type & WIRE_RADIO_RECEIVE)) + spawn(0) + activate() + return 1 + + +//Called when this device attempts to act on another device, var/radio determines if it was sent via radio or direct +/obj/item/device/assembly/proc/pulse(radio = 0) + if(connected && wire_type) + connected.pulse_assembly(src) + return 1 + if(holder && (wire_type & WIRE_PULSE)) + holder.process_activation(src, 1, 0) + if(holder && (wire_type & WIRE_PULSE_SPECIAL)) + holder.process_activation(src, 0, 1) + return 1 + + +// What the device does when turned on +/obj/item/device/assembly/proc/activate() + if(!secured || (cooldown > 0)) + return 0 + cooldown = 2 + spawn(10) + process_cooldown() + return 1 + + +/obj/item/device/assembly/proc/toggle_secure() + secured = !secured + update_icon() + return secured + + +/obj/item/device/assembly/attackby(obj/item/weapon/W, mob/user, params) + if(isassembly(W)) + var/obj/item/device/assembly/A = W + if((!A.secured) && (!secured)) + holder = new/obj/item/device/assembly_holder(get_turf(src)) + holder.assemble(src,A,user) + user << "You attach and secure \the [A] to \the [src]!" + else + user << "Both devices must be in attachable mode to be attached together." + return + if(istype(W, /obj/item/weapon/screwdriver)) + if(toggle_secure()) + user << "\The [src] is ready!" + else + user << "\The [src] can now be attached!" + return + ..() + + +/obj/item/device/assembly/examine(mob/user) + ..() + if(secured) + user << "\The [src] is secured and ready to be used." + else + user << "\The [src] can be attached to other things." + + +/obj/item/device/assembly/attack_self(mob/user) + if(!user) + return 0 + user.set_machine(src) + interact(user) + return 1 + +/obj/item/device/assembly/interact(mob/user) + return //HTML MENU FOR WIRES GOES HERE + diff --git a/code/modules/assembly/bomb.dm b/code/modules/assembly/bomb.dm new file mode 100644 index 0000000..425f71d --- /dev/null +++ b/code/modules/assembly/bomb.dm @@ -0,0 +1,165 @@ +/obj/item/device/onetankbomb + name = "bomb" + icon = 'icons/obj/tank.dmi' + item_state = "assembly" + throwforce = 5 + w_class = 3 + throw_speed = 2 + throw_range = 4 + flags = CONDUCT + var/status = 0 //0 - not readied //1 - bomb finished with welder + var/obj/item/device/assembly_holder/bombassembly = null //The first part of the bomb is an assembly holder, holding an igniter+some device + var/obj/item/weapon/tank/bombtank = null //the second part of the bomb is a plasma tank + origin_tech = "materials=1;engineering=1" + +/obj/item/device/onetankbomb/examine(mob/user) + ..() + user.examinate(bombtank) + +/obj/item/device/onetankbomb/update_icon() + if(bombtank) + icon_state = bombtank.icon_state + if(bombassembly) + add_overlay(bombassembly.icon_state) + add_overlay(bombassembly.overlays) + add_overlay("bomb_assembly") + +/obj/item/device/onetankbomb/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/device/analyzer)) + bombtank.attackby(W, user) + return + if(istype(W, /obj/item/weapon/wrench) && !status) //This is basically bomb assembly code inverted. apparently it works. + + user << "You disassemble [src]." + + bombassembly.loc = user.loc + bombassembly.master = null + bombassembly = null + + bombtank.loc = user.loc + bombtank.master = null + bombtank = null + + qdel(src) + return + if((istype(W, /obj/item/weapon/weldingtool) && W:welding)) + if(!status) + status = 1 + bombers += "[key_name(user)] welded a single tank bomb. Temp: [bombtank.air_contents.temperature-T0C]" + message_admins("[key_name_admin(user)] welded a single tank bomb. Temp: [bombtank.air_contents.temperature-T0C]") + user << "A pressure hole has been bored to [bombtank] valve. \The [bombtank] can now be ignited." + else + status = 0 + bombers += "[key_name(user)] unwelded a single tank bomb. Temp: [bombtank.air_contents.temperature-T0C]" + user << "The hole has been closed." + add_fingerprint(user) + ..() + +/obj/item/device/onetankbomb/attack_self(mob/user) //pressing the bomb accesses its assembly + bombassembly.attack_self(user, 1) + add_fingerprint(user) + return + +/obj/item/device/onetankbomb/receive_signal() //This is mainly called by the sensor through sense() to the holder, and from the holder to here. + visible_message("\icon[src] *beep* *beep*", "*beep* *beep*") + sleep(10) + if(!src) + return + if(status) + bombtank.ignite() //if its not a dud, boom (or not boom if you made shitty mix) the ignite proc is below, in this file + else + bombtank.release() + +/obj/item/device/onetankbomb/Crossed(atom/movable/AM as mob|obj) //for mousetraps + if(bombassembly) + bombassembly.Crossed(AM) + +/obj/item/device/onetankbomb/on_found(mob/finder) //for mousetraps + if(bombassembly) + bombassembly.on_found(finder) + + +// ---------- Procs below are for tanks that are used exclusively in 1-tank bombs ---------- + +/obj/item/weapon/tank/proc/bomb_assemble(W,user) //Bomb assembly proc. This turns assembly+tank into a bomb + var/obj/item/device/assembly_holder/S = W + var/mob/M = user + if(isigniter(S.a_left) == isigniter(S.a_right)) //Check if either part of the assembly has an igniter, but if both parts are igniters, then fuck it + return + if(!M.drop_item()) //Remove the assembly from your hands + return + + var/obj/item/device/onetankbomb/R = new /obj/item/device/onetankbomb(loc) + + M.remove_from_mob(src) //Remove the tank from your character,in case you were holding it + M.put_in_hands(R) //Equips the bomb if possible, or puts it on the floor. + + R.bombassembly = S //Tell the bomb about its assembly part + S.master = R //Tell the assembly about its new owner + S.loc = R //Move the assembly out of the fucking way + + R.bombtank = src //Same for tank + master = R + loc = R + R.update_icon() + return + +/obj/item/weapon/tank/proc/ignite() //This happens when a bomb is told to explode + air_contents.assert_gases("plasma", "o2") + var/fuel_moles = air_contents.gases["plasma"][MOLES] + air_contents.gases["o2"][MOLES]/6 + air_contents.garbage_collect() + + var/strength = 1 + + var/turf/ground_zero = get_turf(loc) + loc = null + + if(air_contents.temperature > (T0C + 400)) + strength = (fuel_moles/15) + + if(strength >=1) + explosion(ground_zero, round(strength,1), round(strength*2,1), round(strength*3,1), round(strength*4,1)) + else if(strength >=0.5) + explosion(ground_zero, 0, 1, 2, 4) + else if(strength >=0.2) + explosion(ground_zero, -1, 0, 1, 2) + else + ground_zero.assume_air(air_contents) + ground_zero.hotspot_expose(1000, 125) + + else if(air_contents.temperature > (T0C + 250)) + strength = (fuel_moles/20) + + if(strength >=1) + explosion(ground_zero, 0, round(strength,1), round(strength*2,1), round(strength*3,1)) + else if (strength >=0.5) + explosion(ground_zero, -1, 0, 1, 2) + else + ground_zero.assume_air(air_contents) + ground_zero.hotspot_expose(1000, 125) + + else if(air_contents.temperature > (T0C + 100)) + strength = (fuel_moles/25) + + if (strength >=1) + explosion(ground_zero, -1, 0, round(strength,1), round(strength*3,1)) + else + ground_zero.assume_air(air_contents) + ground_zero.hotspot_expose(1000, 125) + + else + ground_zero.assume_air(air_contents) + ground_zero.hotspot_expose(1000, 125) + + air_update_turf() + if(master) + qdel(master) + qdel(src) + +/obj/item/weapon/tank/proc/release() //This happens when the bomb is not welded. Tank contents are just spat out. + var/datum/gas_mixture/removed = air_contents.remove(air_contents.total_moles()) + var/turf/T = get_turf(src) + if(!T) + return + T.assume_air(removed) + air_update_turf() \ No newline at end of file diff --git a/code/modules/assembly/doorcontrol.dm b/code/modules/assembly/doorcontrol.dm new file mode 100644 index 0000000..1ac1491 --- /dev/null +++ b/code/modules/assembly/doorcontrol.dm @@ -0,0 +1,155 @@ +/obj/item/device/assembly/control + name = "blast door controller" + desc = "A small electronic device able to control a blast door remotely." + icon_state = "control" + origin_tech = "magnets=1;programming=2" + attachable = 1 + var/id = null + var/can_change_id = 0 + +/obj/item/device/assembly/control/examine(mob/user) + ..() + if(id) + user << "Its channel ID is '[id]'." + + +/obj/item/device/assembly/control/activate() + cooldown = 1 + var/openclose + for(var/obj/machinery/door/poddoor/M in machines) + if(M.id == src.id) + if(openclose == null) + openclose = M.density + spawn(0) + if(M) + if(openclose) + M.open() + else + M.close() + return + sleep(10) + cooldown = 0 + + +/obj/item/device/assembly/control/airlock + name = "airlock controller" + desc = "A small electronic device able to control an airlock remotely." + id = "badmin" // Set it to null for MEGAFUN. + var/specialfunctions = OPEN + /* + Bitflag, 1= open (OPEN) + 2= idscan (IDSCAN) + 4= bolts (BOLTS) + 8= shock (SHOCK) + 16= door safties (SAFE) + */ + +/obj/item/device/assembly/control/airlock/activate() + cooldown = 1 + var/doors_need_closing = FALSE + var/list/obj/machinery/door/airlock/open_or_close = list() + for(var/obj/machinery/door/airlock/D in airlocks) + if(D.id_tag == src.id) + if(specialfunctions & OPEN) + open_or_close += D + if(!D.density) + doors_need_closing = TRUE + if(specialfunctions & IDSCAN) + D.aiDisabledIdScanner = !D.aiDisabledIdScanner + if(specialfunctions & BOLTS) + if(!D.wires.is_cut(WIRE_BOLTS) && D.hasPower()) + D.locked = !D.locked + D.update_icon() + if(specialfunctions & SHOCK) + if(D.secondsElectrified) + D.secondsElectrified = -1 + D.shockedby += "\[[time_stamp()]\][usr](ckey:[usr.ckey])" + add_logs(usr, D, "electrified") + else + D.secondsElectrified = 0 + if(specialfunctions & SAFE) + D.safe = !D.safe + + for(var/D in open_or_close) + addtimer(D, doors_need_closing ? "close" : "open",0,FALSE) + + sleep(10) + cooldown = 0 + + +/obj/item/device/assembly/control/massdriver + name = "mass driver controller" + desc = "A small electronic device able to control a mass driver." + +/obj/item/device/assembly/control/massdriver/activate() + cooldown = 1 + for(var/obj/machinery/door/poddoor/M in machines) + if (M.id == src.id) + spawn( 0 ) + M.open() + + sleep(10) + + for(var/obj/machinery/mass_driver/M in machines) + if(M.id == src.id) + M.drive() + + sleep(60) + + for(var/obj/machinery/door/poddoor/M in machines) + if (M.id == src.id) + spawn( 0 ) + M.close() + + sleep(10) + cooldown = 0 + + +/obj/item/device/assembly/control/igniter + name = "ignition controller" + desc = "A remote controller for a mounted igniter." + +/obj/item/device/assembly/control/igniter/activate() + cooldown = 1 + for(var/obj/machinery/sparker/M in machines) + if (M.id == src.id) + spawn( 0 ) + M.ignite() + + for(var/obj/machinery/igniter/M in machines) + if(M.id == src.id) + M.use_power(50) + M.on = !M.on + M.icon_state = "igniter[M.on]" + + sleep(30) + cooldown = 0 + + +/obj/item/device/assembly/control/flasher + name = "flasher controller" + desc = "A remote controller for a mounted flasher." + +/obj/item/device/assembly/control/flasher/activate() + cooldown = 1 + for(var/obj/machinery/flasher/M in machines) + if(M.id == src.id) + spawn(0) + M.flash() + + sleep(50) + cooldown = 0 + + +/obj/item/device/assembly/control/crematorium + name = "crematorium controller" + desc = "An evil-looking remote controller for a crematorium." + +/obj/item/device/assembly/control/crematorium/activate() + cooldown = 1 + for (var/obj/structure/bodycontainer/crematorium/C in crematoriums) + if (C.id == id) + C.cremate(usr) + + sleep(50) + cooldown = 0 \ No newline at end of file diff --git a/code/modules/assembly/flash.dm b/code/modules/assembly/flash.dm new file mode 100644 index 0000000..cc74740 --- /dev/null +++ b/code/modules/assembly/flash.dm @@ -0,0 +1,222 @@ +/obj/item/device/assembly/flash + name = "flash" + desc = "A powerful and versatile flashbulb device, with applications ranging from disorienting attackers to acting as visual receptors in robot production." + icon_state = "flash" + item_state = "flashtool" + throwforce = 0 + w_class = 1 + materials = list(MAT_METAL = 300, MAT_GLASS = 300) + origin_tech = "magnets=2;combat=1" + + crit_fail = 0 //Is the flash burnt out? + var/times_used = 0 //Number of times it's been used. + var/last_used = 0 //last world.time it was used. + + +/obj/item/device/assembly/flash/update_icon(var/flash = 0) + cut_overlays() + attached_overlays = list() + if(crit_fail) + add_overlay("flashburnt") + attached_overlays += "flashburnt" + + if(flash) + add_overlay("flash-f") + attached_overlays += "flash-f" + spawn(5) + update_icon() + if(holder) + holder.update_icon() + +/obj/item/device/assembly/flash/proc/clown_check(mob/living/carbon/human/user) + if(user.disabilities & CLUMSY && prob(50)) + flash_carbon(user, user, 15, 0) + return 0 + return 1 + +/obj/item/device/assembly/flash/activate() + if(!try_use_flash()) + return 0 + var/turf/T = get_turf(src) + T.visible_message("[src] emits a blinding light!") + for(var/mob/living/carbon/M in viewers(3, T)) + flash_carbon(M, null, 5, 0) + + +/obj/item/device/assembly/flash/proc/burn_out() //Made so you can override it if you want to have an invincible flash from R&D or something. + if(!crit_fail) + crit_fail = 1 + update_icon() + var/turf/T = get_turf(src) + if(T) + T.visible_message("[src] burns out!") + + +/obj/item/device/assembly/flash/proc/flash_recharge(interval=10) + if(prob(times_used * 3)) //The more often it's used in a short span of time the more likely it will burn out + burn_out() + return 0 + + var/deciseconds_passed = world.time - last_used + for(var/seconds = deciseconds_passed/10, seconds>=interval, seconds-=interval) //get 1 charge every interval + times_used-- + + last_used = world.time + times_used = max(0, times_used) //sanity + return 1 + +/obj/item/device/assembly/flash/proc/try_use_flash(mob/user = null) + flash_recharge(10) + + if(crit_fail) + return 0 + + playsound(src.loc, 'sound/weapons/flash.ogg', 100, 1) + update_icon(1) + times_used++ + + if(user && !clown_check(user)) + return 0 + + return 1 + + +/obj/item/device/assembly/flash/proc/flash_carbon(mob/living/carbon/M, mob/user = null, power = 15, targeted = 1) + add_logs(user, M, "flashed", src) + if(user && targeted) + if(M.weakeyes) + M.Weaken(3) //quick weaken bypasses eye protection but has no eye flash + if(M.flash_act(1, 1)) + M.confused += power + terrible_conversion_proc(M, user) + M.Stun(1) + visible_message("[user] blinds [M] with the flash!") + user << "You blind [M] with the flash!" + M << "[user] blinds you with the flash!" + if(M.weakeyes) + M.Stun(2) + M.visible_message("[M] gasps and shields their eyes!", "You gasp and shield your eyes!") + else + visible_message("[user] fails to blind [M] with the flash!") + user << "You fail to blind [M] with the flash!" + M << "[user] fails to blind you with the flash!" + else + if(M.flash_act()) + M.confused += power + +/obj/item/device/assembly/flash/attack(mob/living/M, mob/user) + if(!try_use_flash(user)) + return 0 + + if(iscarbon(M)) + flash_carbon(M, user, 5, 1) + return 1 + + else if(issilicon(M)) + var/mob/living/silicon/robot/R = M + add_logs(user, R, "flashed", src) + update_icon(1) + M.Weaken(6) + R.confused += 5 + R.flash_act(affect_silicon = 1) + user.visible_message("[user] overloads [R]'s sensors with the flash!", "You overload [R]'s sensors with the flash!") + return 1 + + user.visible_message("[user] fails to blind [M] with the flash!", "You fail to blind [M] with the flash!") + + +/obj/item/device/assembly/flash/attack_self(mob/living/carbon/user, flag = 0, emp = 0) + if(holder) + return 0 + if(!try_use_flash(user)) + return 0 + user.visible_message("[user]'s flash emits a blinding light!", "Your flash emits a blinding light!") + for(var/mob/living/carbon/M in oviewers(3, null)) + flash_carbon(M, user, 1, 0) + + +/obj/item/device/assembly/flash/emp_act(severity) + if(!try_use_flash()) + return 0 + if(iscarbon(loc)) + flash_carbon(loc, null, 10, 0) + burn_out() + ..() + + +/obj/item/device/assembly/flash/proc/terrible_conversion_proc(mob/M, mob/user) + if(ishuman(M) && ishuman(user) && M.stat != DEAD) + if(user.mind && (user.mind in ticker.mode.head_revolutionaries)) + if(M.client) + if(M.stat == CONSCIOUS) + M.mind_initialize() //give them a mind datum if they don't have one. + var/resisted + if(!M.isloyal()) + if(user.mind in ticker.mode.head_revolutionaries) + if(ticker.mode.add_revolutionary(M.mind)) + M.Stun(3) + times_used -- //Flashes less likely to burn out for headrevs when used for conversion + else + resisted = 1 + else + resisted = 1 + + if(resisted) + user << "This mind seems resistant to the flash!" + else + user << "They must be conscious before you can convert them!" + else + user << "This mind is so vacant that it is not susceptible to influence!" + + +/obj/item/device/assembly/flash/cyborg + origin_tech = null + +/obj/item/device/assembly/flash/cyborg/attack(mob/living/M, mob/user) + ..() + PoolOrNew(/obj/effect/overlay/temp/borgflash, get_turf(src)) + +/obj/item/device/assembly/flash/cyborg/attack_self(mob/user) + ..() + PoolOrNew(/obj/effect/overlay/temp/borgflash, get_turf(src)) + +/obj/item/device/assembly/flash/cyborg/attackby(obj/item/weapon/W, mob/user, params) + return + +/obj/item/device/assembly/flash/memorizer + name = "memorizer" + desc = "If you see this, you're not likely to remember it any time soon." + icon = 'icons/obj/device.dmi' + icon_state = "memorizer" + item_state = "nullrod" + +/obj/item/device/assembly/flash/handheld //this is now the regular pocket flashes + +/obj/item/device/assembly/flash/armimplant + name = "photon projector" + desc = "A high-powered photon projector implant normally used for lighting purposes, but also doubles as a flashbulb weapon. Self-repair protocals fix the flashbulb if it ever burns out." + var/flashcd = 20 + var/overheat = 0 + var/obj/item/organ/cyberimp/arm/flash/I = null + +/obj/item/device/assembly/flash/armimplant/burn_out() + if(I && I.owner) + I.owner << "Your photon projector implant overheats and deactivates!" + I.Retract() + overheat = FALSE + addtimer(src, "cooldown", flashcd * 2) + +/obj/item/device/assembly/flash/armimplant/try_use_flash(mob/user = null) + if(overheat) + if(I && I.owner) + I.owner << "Your photon projector is running too hot to be used again so quickly!" + return FALSE + overheat = TRUE + addtimer(src, "cooldown", flashcd) + playsound(src.loc, 'sound/weapons/flash.ogg', 100, 1) + update_icon(1) + return TRUE + + +/obj/item/device/assembly/flash/armimplant/proc/cooldown() + overheat = FALSE diff --git a/code/modules/assembly/health.dm b/code/modules/assembly/health.dm new file mode 100644 index 0000000..07b05ef --- /dev/null +++ b/code/modules/assembly/health.dm @@ -0,0 +1,107 @@ +/obj/item/device/assembly/health + name = "health sensor" + desc = "Used for scanning and monitoring health." + icon_state = "health" + materials = list(MAT_METAL=800, MAT_GLASS=200) + origin_tech = "magnets=1;biotech=1" + attachable = 1 + secured = 0 + + var/scanning = 0 + var/health_scan + var/alarm_health = 0 + + + +/obj/item/device/assembly/health/activate() + if(!..()) + return 0//Cooldown check + toggle_scan() + return 0 + +/obj/item/device/assembly/health/toggle_secure() + secured = !secured + if(secured && scanning) + START_PROCESSING(SSobj, src) + else + scanning = 0 + STOP_PROCESSING(SSobj, src) + update_icon() + return secured + +/obj/item/device/assembly/health/attackby(obj/item/weapon/W as obj, mob/user as mob) + if(istype(W, /obj/item/device/multitool)) + if(alarm_health == 0) + alarm_health = -90 + user.show_message("You toggle [src] to \"detect death\" mode.") + else + alarm_health = 0 + user.show_message("You toggle [src] to \"detect critical state\" mode.") + return + else + return ..() + +/obj/item/device/assembly/health/process() + if(!scanning || !secured) + return + + var/atom/A = src + if(connected && connected.holder) + A = connected.holder + + for(A, A && !ismob(A), A=A.loc); + // like get_turf(), but for mobs. + var/mob/living/M = A + + if(M) + health_scan = M.health + if(health_scan <= alarm_health) + pulse() + audible_message("\icon[src] *beep* *beep*", "*beep* *beep*") + toggle_scan() + return + return + +/obj/item/device/assembly/health/proc/toggle_scan() + if(!secured) + return 0 + scanning = !scanning + if(scanning) + START_PROCESSING(SSobj, src) + else + STOP_PROCESSING(SSobj, src) + return + +/obj/item/device/assembly/health/interact(mob/user as mob)//TODO: Change this to the wires thingy + if(!secured) + user.show_message("The [name] is unsecured!") + return 0 + var/dat = "Health Sensor [scanning?"On":"Off"]" + if(scanning && health_scan) + dat += "
    Health: [health_scan]" + user << browse(dat, "window=hscan") + onclose(user, "hscan") + return + + +/obj/item/device/assembly/health/Topic(href, href_list) + ..() + if(!ismob(usr)) + return + + var/mob/user = usr + + if(!user.canUseTopic(src)) + usr << browse(null, "window=hscan") + onclose(usr, "hscan") + return + + if(href_list["scanning"]) + toggle_scan() + + if(href_list["close"]) + usr << browse(null, "window=hscan") + return + + attack_self(user) + return diff --git a/code/modules/assembly/helpers.dm b/code/modules/assembly/helpers.dm new file mode 100644 index 0000000..cb7bd59 --- /dev/null +++ b/code/modules/assembly/helpers.dm @@ -0,0 +1,16 @@ +// See _DEFINES/is_helpers.dm for type helpers + +/* +Name: IsSpecialAssembly +Desc: If true is an object that can be attached to an assembly holder but is a special thing like a plasma can or door +*/ + +/obj/proc/IsSpecialAssembly() + return 0 + +/* +Name: IsAssemblyHolder +Desc: If true is an object that can hold an assemblyholder object +*/ +/obj/proc/IsAssemblyHolder() + return 0 \ No newline at end of file diff --git a/code/modules/assembly/holder.dm b/code/modules/assembly/holder.dm new file mode 100644 index 0000000..b4b2803 --- /dev/null +++ b/code/modules/assembly/holder.dm @@ -0,0 +1,126 @@ +/obj/item/device/assembly_holder + name = "Assembly" + icon = 'icons/obj/assemblies/new_assemblies.dmi' + icon_state = "holder" + item_state = "assembly" + flags = CONDUCT + throwforce = 5 + w_class = 2 + throw_speed = 2 + throw_range = 7 + + var/obj/item/device/assembly/a_left = null + var/obj/item/device/assembly/a_right = null + +/obj/item/device/assembly_holder/IsAssemblyHolder() + return 1 + + +/obj/item/device/assembly_holder/proc/assemble(obj/item/device/assembly/A, obj/item/device/assembly/A2, mob/user) + attach(A,user) + attach(A2,user) + name = "[A.name]-[A2.name] assembly" + update_icon() + feedback_add_details("assembly_made","[A.name]-[A2.name]") + +/obj/item/device/assembly_holder/proc/attach(obj/item/device/assembly/A, mob/user) + if(!A.remove_item_from_storage(src)) + if(user) + user.remove_from_mob(A) + A.loc = src + A.holder = src + A.toggle_secure() + if(!a_left) + a_left = A + else + a_right = A + +/obj/item/device/assembly_holder/update_icon() + cut_overlays() + if(a_left) + add_overlay("[a_left.icon_state]_left") + for(var/O in a_left.attached_overlays) + add_overlay("[O]_l") + + if(a_right) + var/list/images = list() + images += image(icon, icon_state = "[a_right.icon_state]_left") + for(var/O in a_right.attached_overlays) + images += image(icon, icon_state = "[O]_l") + var/matrix = matrix(-1, 0, 0, 0, 1, 0) + for(var/image/I in images) + I.transform = matrix + add_overlay(I) + + if(master) + master.update_icon() + +/obj/item/device/assembly_holder/Crossed(atom/movable/AM as mob|obj) + if(a_left) + a_left.Crossed(AM) + if(a_right) + a_right.Crossed(AM) + +/obj/item/device/assembly_holder/on_found(mob/finder) + if(a_left) + a_left.on_found(finder) + if(a_right) + a_right.on_found(finder) + +/obj/item/device/assembly_holder/Move() + ..() + if(a_left && a_right) + a_left.holder_movement() + a_right.holder_movement() + return + +/obj/item/device/assembly_holder/attack_hand()//Perhapse this should be a holder_pickup proc instead, can add if needbe I guess + if(a_left && a_right) + a_left.holder_movement() + a_right.holder_movement() + ..() + return + +/obj/item/device/assembly_holder/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/weapon/screwdriver)) + var/turf/T = get_turf(src) + if(!T) + return 0 + if(a_left) + a_left.holder = null + a_left.loc = T + if(a_right) + a_right.holder = null + a_right.loc = T + qdel(src) + else + ..() + +/obj/item/device/assembly_holder/attack_self(mob/user) + src.add_fingerprint(user) + if(!a_left || !a_right) + user << "Assembly part missing!" + return + if(istype(a_left,a_right.type))//If they are the same type it causes issues due to window code + switch(alert("Which side would you like to use?",,"Left","Right")) + if("Left") + a_left.attack_self(user) + if("Right") + a_right.attack_self(user) + return + else + a_left.attack_self(user) + a_right.attack_self(user) + + +/obj/item/device/assembly_holder/proc/process_activation(obj/D, normal = 1, special = 1) + if(!D) + return 0 + if((normal) && (a_right) && (a_left)) + if(a_right != D) + a_right.pulsed(0) + if(a_left != D) + a_left.pulsed(0) + if(master) + master.receive_signal() + return 1 diff --git a/code/modules/assembly/igniter.dm b/code/modules/assembly/igniter.dm new file mode 100644 index 0000000..64c990c --- /dev/null +++ b/code/modules/assembly/igniter.dm @@ -0,0 +1,37 @@ +/obj/item/device/assembly/igniter + name = "igniter" + desc = "A small electronic device able to ignite combustable substances." + icon_state = "igniter" + materials = list(MAT_METAL=500, MAT_GLASS=50) + origin_tech = "magnets=1" + var/datum/effect_system/spark_spread/sparks = new /datum/effect_system/spark_spread + heat = 1000 + +/obj/item/device/assembly/igniter/New() + ..() + sparks.set_up(2, 0, src) + sparks.attach(src) + +/obj/item/device/assembly/igniter/Destroy() + qdel(sparks) + sparks = null + . = ..() + +/obj/item/device/assembly/igniter/activate() + if(!..()) + return 0//Cooldown check + var/turf/location = get_turf(loc) + if(location) + location.hotspot_expose(1000,1000) + sparks.start() + return 1 + +/obj/item/device/assembly/igniter/attack_self(mob/user) + activate() + add_fingerprint(user) + +/obj/item/device/assembly/igniter/ignition_effect(atom/A, mob/user) + . = "[user] fiddles with [src], and manages to \ + light [A]." + activate() + add_fingerprint(user) diff --git a/code/modules/assembly/infrared.dm b/code/modules/assembly/infrared.dm new file mode 100644 index 0000000..2e3ebf1 --- /dev/null +++ b/code/modules/assembly/infrared.dm @@ -0,0 +1,236 @@ +/obj/item/device/assembly/infra + name = "infrared emitter" + desc = "Emits a visible or invisible beam and is triggered when the beam is interrupted.\nAlt-click to rotate it clockwise." + icon_state = "infrared" + materials = list(MAT_METAL=1000, MAT_GLASS=500) + origin_tech = "magnets=2;materials=2" + + var/on = 0 + var/visible = 0 + var/obj/effect/beam/i_beam/first = null + var/obj/effect/beam/i_beam/last = null + + +/obj/item/device/assembly/infra/New() + ..() + START_PROCESSING(SSobj, src) + +/obj/item/device/assembly/infra/Destroy() + if(first) + qdel(first) + return ..() + +/obj/item/device/assembly/infra/describe() + return "The infrared trigger is [on?"on":"off"]." + +/obj/item/device/assembly/infra/activate() + if(!..()) + return 0//Cooldown check + on = !on + update_icon() + return 1 + +/obj/item/device/assembly/infra/toggle_secure() + secured = !secured + if(secured) + START_PROCESSING(SSobj, src) + else + on = 0 + if(first) + qdel(first) + STOP_PROCESSING(SSobj, src) + update_icon() + return secured + +/obj/item/device/assembly/infra/update_icon() + cut_overlays() + attached_overlays = list() + if(on) + add_overlay("infrared_on") + attached_overlays += "infrared_on" + + if(holder) + holder.update_icon() + return + +/obj/item/device/assembly/infra/process() + if(!on) + if(first) + qdel(first) + return + if(!secured) + return + if(first && last) + last.process() + return + var/turf/T = get_turf(src) + if(T) + var/obj/effect/beam/i_beam/I = new /obj/effect/beam/i_beam(T) + I.master = src + I.density = 1 + I.setDir(dir) + first = I + step(I, I.dir) + if(first) + I.density = 0 + I.vis_spread(visible) + I.limit = 8 + I.process() + +/obj/item/device/assembly/infra/attack_hand() + qdel(first) + ..() + return + +/obj/item/device/assembly/infra/Move() + var/t = dir + ..() + setDir(t) + qdel(first) + return + +/obj/item/device/assembly/infra/holder_movement() + if(!holder) + return 0 +// setDir(holder.dir) + qdel(first) + return 1 + +/obj/item/device/assembly/infra/proc/trigger_beam() + if((!secured)||(!on)||(cooldown > 0)) + return 0 + pulse(0) + audible_message("\icon[src] *beep* *beep*", null, 3) + cooldown = 2 + addtimer(src, "process_cooldown", 10) + +/obj/item/device/assembly/infra/interact(mob/user)//TODO: change this this to the wire control panel + if(is_secured(user)) + user.set_machine(src) + var/dat = "Infrared Laser\nStatus: [on ? "On" : "Off"]
    \nVisibility: [visible ? "Visible" : "Invisible"]
    \n
    " + dat += "

    Refresh" + dat += "

    Close" + user << browse(dat, "window=infra") + onclose(user, "infra") + return + +/obj/item/device/assembly/infra/Topic(href, href_list) + ..() + if(usr.incapacitated() || !in_range(loc, usr)) + usr << browse(null, "window=infra") + onclose(usr, "infra") + return + if(href_list["state"]) + on = !(on) + update_icon() + if(href_list["visible"]) + visible = !(visible) + if(first) + first.vis_spread(visible) + if(href_list["close"]) + usr << browse(null, "window=infra") + return + if(usr) + attack_self(usr) + +/obj/item/device/assembly/infra/verb/rotate()//This could likely be better + set name = "Rotate Infrared Laser" + set category = "Object" + set src in usr + + if(usr.incapacitated()) + return + + setDir(turn(dir, 90)) + return + +/obj/item/device/assembly/infra/AltClick(mob/user) + ..() + if(user.incapacitated()) + user << "You can't do that right now!" + return + if(!in_range(src, user)) + return + else + rotate() + + + +/***************************IBeam*********************************/ + +/obj/effect/beam/i_beam + name = "infrared beam" + icon = 'icons/obj/projectiles.dmi' + icon_state = "ibeam" + var/obj/effect/beam/i_beam/next = null + var/obj/effect/beam/i_beam/previous = null + var/obj/item/device/assembly/infra/master = null + var/limit = null + var/visible = 0 + var/left = null + anchored = 1 + + +/obj/effect/beam/i_beam/proc/hit() + if(master) + master.trigger_beam() + qdel(src) + return + +/obj/effect/beam/i_beam/proc/vis_spread(v) + visible = v + if(next) + next.vis_spread(v) + + +/obj/effect/beam/i_beam/process() + if((loc.density || !(master))) + qdel(src) + return + if(left > 0) + left-- + if(left < 1) + if(!(visible)) + invisibility = INVISIBILITY_ABSTRACT + else + invisibility = 0 + else + invisibility = 0 + + if(!next && (limit > 0)) + var/obj/effect/beam/i_beam/I = new /obj/effect/beam/i_beam(loc) + I.master = master + I.density = 1 + I.setDir(dir) + I.previous = src + next = I + step(I, I.dir) + if(next) + I.density = 0 + I.vis_spread(visible) + I.limit = limit - 1 + master.last = I + I.process() + +/obj/effect/beam/i_beam/Bump() + qdel(src) + return + +/obj/effect/beam/i_beam/Bumped() + hit() + +/obj/effect/beam/i_beam/Crossed(atom/movable/AM as mob|obj) + if(istype(AM, /obj/effect/beam)) + return + hit() + +/obj/effect/beam/i_beam/Destroy() + if(master.first == src) + master.first = null + if(next) + qdel(next) + next = null + if(previous) + previous.next = null + master.last = previous + return ..() diff --git a/code/modules/assembly/mousetrap.dm b/code/modules/assembly/mousetrap.dm new file mode 100644 index 0000000..1dff0a9 --- /dev/null +++ b/code/modules/assembly/mousetrap.dm @@ -0,0 +1,140 @@ +/obj/item/device/assembly/mousetrap + name = "mousetrap" + desc = "A handy little spring-loaded trap for catching pesty rodents." + icon_state = "mousetrap" + materials = list(MAT_METAL=100) + origin_tech = "combat=1;materials=2;engineering=1" + attachable = 1 + var/armed = 0 + + +/obj/item/device/assembly/mousetrap/examine(mob/user) + ..() + if(armed) + user << "It looks like it's armed." + +/obj/item/device/assembly/mousetrap/activate() + if(..()) + armed = !armed + if(!armed) + if(ishuman(usr)) + var/mob/living/carbon/human/user = usr + if((user.getBrainLoss() >= 60) || user.disabilities & CLUMSY && prob(50)) + user << "Your hand slips, setting off the trigger!" + pulse(0) + update_icon() + if(usr) + playsound(usr.loc, 'sound/weapons/handcuffs.ogg', 30, 1, -3) + +/obj/item/device/assembly/mousetrap/describe() + return "The pressure switch is [armed?"primed":"safe"]." + +/obj/item/device/assembly/mousetrap/update_icon() + if(armed) + icon_state = "mousetraparmed" + else + icon_state = "mousetrap" + if(holder) + holder.update_icon() + +/obj/item/device/assembly/mousetrap/proc/triggered(mob/target, type = "feet") + if(!armed) + return + var/obj/item/bodypart/affecting = null + if(ishuman(target)) + var/mob/living/carbon/human/H = target + if(PIERCEIMMUNE in H.dna.species.specflags) + playsound(src.loc, 'sound/effects/snap.ogg', 50, 1) + armed = 0 + update_icon() + pulse(0) + return 0 + switch(type) + if("feet") + if(!H.shoes) + affecting = H.get_bodypart(pick("l_leg", "r_leg")) + H.Weaken(3) + if("l_hand", "r_hand") + if(!H.gloves) + affecting = H.get_bodypart(type) + H.Stun(3) + if(affecting) + if(affecting.receive_damage(1, 0)) + H.update_damage_overlays() + else if(ismouse(target)) + var/mob/living/simple_animal/mouse/M = target + visible_message("SPLAT!") + M.splat() + playsound(src.loc, 'sound/effects/snap.ogg', 50, 1) + armed = 0 + update_icon() + pulse(0) + + +/obj/item/device/assembly/mousetrap/attack_self(mob/living/carbon/human/user) + if(!armed) + user << "You arm [src]." + else + if(((user.getBrainLoss() >= 60) || user.disabilities & CLUMSY) && prob(50)) + var/which_hand = "l_hand" + if(!(user.active_hand_index % 2)) + which_hand = "r_hand" + triggered(user, which_hand) + user.visible_message("[user] accidentally sets off [src], breaking their fingers.", \ + "You accidentally trigger [src]!") + return + user << "You disarm [src]." + armed = !armed + update_icon() + playsound(user.loc, 'sound/weapons/handcuffs.ogg', 30, 1, -3) + + +/obj/item/device/assembly/mousetrap/attack_hand(mob/living/carbon/human/user) + if(armed) + if(((user.getBrainLoss() >= 60) || user.disabilities & CLUMSY) && prob(50)) + var/which_hand = "l_hand" + if(!(user.active_hand_index % 2)) + which_hand = "r_hand" + triggered(user, which_hand) + user.visible_message("[user] accidentally sets off [src], breaking their fingers.", \ + "You accidentally trigger [src]!") + return + ..() + + +/obj/item/device/assembly/mousetrap/Crossed(atom/movable/AM as mob|obj) + if(armed) + if(ishuman(AM)) + var/mob/living/carbon/H = AM + if(H.m_intent == "run") + triggered(H) + H.visible_message("[H] accidentally steps on [src].", \ + "You accidentally step on [src]") + else if(isanimal(AM)) + var/mob/living/simple_animal/SA = AM + if(!SA.flying) + triggered(AM) + else if(AM.density) // For mousetrap grenades, set off by anything heavy + triggered(AM) + ..() + + +/obj/item/device/assembly/mousetrap/on_found(mob/finder) + if(armed) + finder.visible_message("[finder] accidentally sets off [src], breaking their fingers.", \ + "You accidentally trigger [src]!") + triggered(finder, (finder.active_hand_index % 2 == 0) ? "r_hand" : "l_hand") + return 1 //end the search! + return 0 + + +/obj/item/device/assembly/mousetrap/hitby(A as mob|obj) + if(!armed) + return ..() + visible_message("[src] is triggered by [A].") + triggered(null) + + +/obj/item/device/assembly/mousetrap/armed + icon_state = "mousetraparmed" + armed = 1 diff --git a/code/modules/assembly/proximity.dm b/code/modules/assembly/proximity.dm new file mode 100644 index 0000000..19c4586 --- /dev/null +++ b/code/modules/assembly/proximity.dm @@ -0,0 +1,171 @@ +/obj/item/device/assembly/prox_sensor + name = "proximity sensor" + desc = "Used for scanning and alerting when someone enters a certain proximity." + icon_state = "prox" + materials = list(MAT_METAL=800, MAT_GLASS=200) + origin_tech = "magnets=1;engineering=1" + attachable = 1 + + var/scanning = 0 + var/timing = 0 + var/time = 10 + var/sensitivity = 1 + var/atom/oldloc + var/list/turfs_around = list() + +/obj/item/device/assembly/prox_sensor/proc/toggle_scan() + + +/obj/item/device/assembly/prox_sensor/proc/sense() + + +/obj/item/device/assembly/prox_sensor/New() + ..() + START_PROCESSING(SSobj, src) + oldloc = loc + +/obj/item/device/assembly/prox_sensor/describe() + if(timing) + return "The proximity sensor is arming." + return "The proximity sensor is [scanning?"armed":"disarmed"]." + +/obj/item/device/assembly/prox_sensor/on_attach(datum/wires/w) + handle_move(w.holder) + +/obj/item/device/assembly/prox_sensor/on_detach(datum/wires/w) + handle_move(w.holder.loc) + +/obj/item/device/assembly/prox_sensor/activate() + if(!..()) + return 0//Cooldown check + timing = !timing + update_icon() + return 1 + + +/obj/item/device/assembly/prox_sensor/toggle_secure() + secured = !secured + if(!secured) + scanning = 0 + timing = 0 + update_icon() + return secured + + +/obj/item/device/assembly/prox_sensor/HasProximity(atom/movable/AM as mob|obj) + if (istype(AM, /obj/effect/beam)) + return + sense() + + +/obj/item/device/assembly/prox_sensor/sense() + if((!secured)||(cooldown > 0)) + return 0 + pulse(0) + audible_message("\icon[src] *beep* *beep*", null, 3) + cooldown = 2 + addtimer(src, "process_cooldown", 10) + + +/obj/item/device/assembly/prox_sensor/process() + if(timing) + time-- + if(time <= 0) + timing = 0 + toggle_scan(1) + time = initial(time) + handle_move(get_turf(loc)) + +/obj/item/device/assembly/prox_sensor/dropped() + ..() + if(scanning) + addtimer(src, "sense", 0) + +/obj/item/device/assembly/prox_sensor/Destroy() + remove_from_proximity_list(src, sensitivity) + ..() + +/obj/item/device/assembly/prox_sensor/toggle_scan(scan) + if(!secured) + return 0 + scanning = scan + if(scanning) + add_to_proximity_list(src, sensitivity) + else + remove_from_proximity_list(src, sensitivity) + oldloc = get_turf(loc) + update_icon() + +/obj/item/device/assembly/prox_sensor/proc/sensitivity_change(value) + var/sense = min(max(sensitivity + value, 0), 5) + if(scanning) + shift_proximity(src, oldloc, sensitivity, loc, sense) + sensitivity = sense + +/obj/item/device/assembly/prox_sensor/update_icon() + cut_overlays() + attached_overlays = list() + if(timing) + add_overlay("prox_timing") + attached_overlays += "prox_timing" + if(scanning) + add_overlay("prox_scanning") + attached_overlays += "prox_scanning" + if(holder) + holder.update_icon() + return + +/obj/item/device/assembly/prox_sensor/proc/handle_move(atom/newloc) + if(scanning) + if(shift_proximity(src, oldloc, sensitivity, newloc, sensitivity)) + sense() + oldloc = newloc + +/obj/item/device/assembly/prox_sensor/Move(newloc) + ..() + handle_move(newloc) + + +/obj/item/device/assembly/prox_sensor/interact(mob/user)//TODO: Change this to the wires thingy + if(is_secured(user)) + var/second = time % 60 + var/minute = (time - second) / 60 + var/dat = "Proximity Sensor\n[(timing ? "Arming" : "Not Arming")] [minute]:[second]\n- - + +\n" + dat += "
    Armed":"1'>Unarmed"] (Movement sensor active when armed!)" + dat += "
    Detection range: - [sensitivity] +" + dat += "

    Refresh" + dat += "

    Close" + user << browse(dat, "window=prox") + onclose(user, "prox") + return + + +/obj/item/device/assembly/prox_sensor/Topic(href, href_list) + ..() + if(usr.incapacitated() || !in_range(loc, usr)) + usr << browse(null, "window=prox") + onclose(usr, "prox") + return + + if(href_list["sense"]) + sensitivity_change(((href_list["sense"] == "up") ? 1 : -1)) + + if(href_list["scanning"]) + toggle_scan(text2num(href_list["scanning"])) + + if(href_list["time"]) + timing = text2num(href_list["time"]) + update_icon() + + if(href_list["tp"]) + var/tp = text2num(href_list["tp"]) + time += tp + time = min(max(round(time), 0), 600) + + if(href_list["close"]) + usr << browse(null, "window=prox") + return + + if(usr) + attack_self(usr) + diff --git a/code/modules/assembly/shock_kit.dm b/code/modules/assembly/shock_kit.dm new file mode 100644 index 0000000..7401c91 --- /dev/null +++ b/code/modules/assembly/shock_kit.dm @@ -0,0 +1,42 @@ +/obj/item/assembly/shock_kit + name = "electrohelmet assembly" + desc = "This appears to be made from both an electropack and a helmet." + icon = 'icons/obj/assemblies.dmi' + icon_state = "shock_kit" + var/obj/item/clothing/head/helmet/part1 = null + var/obj/item/device/electropack/part2 = null + w_class = 5 + flags = CONDUCT + +/obj/item/assembly/shock_kit/Destroy() + qdel(part1) + qdel(part2) + return ..() + +/obj/item/assembly/shock_kit/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/weapon/wrench)) + var/turf/T = loc + if(ismob(T)) + T = T.loc + part1.loc = T + part2.loc = T + part1.master = null + part2.master = null + part1 = null + part2 = null + qdel(src) + return + add_fingerprint(user) + return + +/obj/item/assembly/shock_kit/attack_self(mob/user) + part1.attack_self(user) + part2.attack_self(user) + add_fingerprint(user) + return + +/obj/item/assembly/shock_kit/receive_signal() + if(istype(loc, /obj/structure/chair/e_chair)) + var/obj/structure/chair/e_chair/C = loc + C.shock() + return diff --git a/code/modules/assembly/signaler.dm b/code/modules/assembly/signaler.dm new file mode 100644 index 0000000..41a5f8a --- /dev/null +++ b/code/modules/assembly/signaler.dm @@ -0,0 +1,191 @@ +/obj/item/device/assembly/signaler + name = "remote signaling device" + desc = "Used to remotely activate devices." + icon_state = "signaller" + item_state = "signaler" + materials = list(MAT_METAL=400, MAT_GLASS=120) + origin_tech = "magnets=1;bluespace=1" + wires = WIRE_RECEIVE | WIRE_PULSE | WIRE_RADIO_PULSE | WIRE_RADIO_RECEIVE + attachable = 1 + + var/code = 30 + var/frequency = 1457 + var/delay = 0 + var/datum/radio_frequency/radio_connection + +/obj/item/device/assembly/signaler/New() + ..() + spawn(40) + set_frequency(frequency) + + +/obj/item/device/assembly/signaler/Destroy() + if(SSradio) + SSradio.remove_object(src,frequency) + return ..() + +/obj/item/device/assembly/signaler/activate() + if(cooldown > 0) + return 0 + cooldown = 2 + spawn(10) + process_cooldown() + + signal() + return 1 + +/obj/item/device/assembly/signaler/update_icon() + if(holder) + holder.update_icon() + return + +/obj/item/device/assembly/signaler/interact(mob/user, flag1) + if(is_secured(user)) + var/t1 = "-------" + // if ((src.b_stat && !( flag1 ))) + // t1 = text("-------
    \nGreen Wire: []
    \nRed Wire: []
    \nBlue Wire: []
    \n", (src.wires & 4 ? text("Cut Wire", src) : text("Mend Wire", src)), (src.wires & 2 ? text("Cut Wire", src) : text("Mend Wire", src)), (src.wires & 1 ? text("Cut Wire", src) : text("Mend Wire", src))) + // else + // t1 = "-------" Speaker: [src.listening ? "Engaged" : "Disengaged"]
    + var/dat = {" + + +Send Signal
    +Frequency/Code for signaler:
    +Frequency: +- +- +[format_frequency(src.frequency)] ++ ++
    + +Code: +- +- +[src.code] ++ ++
    +[t1] +
    "} + user << browse(dat, "window=radio") + onclose(user, "radio") + return + + +/obj/item/device/assembly/signaler/Topic(href, href_list) + ..() + + if(!usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr)) + usr << browse(null, "window=radio") + onclose(usr, "radio") + return + + if (href_list["freq"]) + var/new_frequency = (frequency + text2num(href_list["freq"])) + if(new_frequency < 1200 || new_frequency > 1600) + new_frequency = sanitize_frequency(new_frequency) + set_frequency(new_frequency) + + if(href_list["code"]) + src.code += text2num(href_list["code"]) + src.code = round(src.code) + src.code = min(100, src.code) + src.code = max(1, src.code) + + if(href_list["send"]) + spawn( 0 ) + signal() + + if(usr) + attack_self(usr) + + return + + +/obj/item/device/assembly/signaler/proc/signal() + if(!radio_connection) return + + var/datum/signal/signal = new + signal.source = src + signal.encryption = code + signal.data["message"] = "ACTIVATE" + radio_connection.post_signal(src, signal) + + var/time = time2text(world.realtime,"hh:mm:ss") + var/turf/T = get_turf(src) + if(usr) + lastsignalers.Add("[time] : [usr.key] used [src] @ location ([T.x],[T.y],[T.z]) : [format_frequency(frequency)]/[code]") + + + return +/* + for(var/obj/item/device/assembly/signaler/S in world) + if(!S) + continue + if(S == src) + continue + if((S.frequency == src.frequency) && (S.code == src.code)) + spawn(0) + if(S) + S.pulse(0) + return 0*/ + +/obj/item/device/assembly/signaler/receive_signal(datum/signal/signal) + if(!signal) + return 0 + if(signal.encryption != code) + return 0 + if(!(src.wires & WIRE_RADIO_RECEIVE)) + return 0 + pulse(1) + audible_message("\icon[src] *beep* *beep*", null, 1) + return + + +/obj/item/device/assembly/signaler/proc/set_frequency(new_frequency) + if(!SSradio) + sleep(20) + if(!SSradio) + return + SSradio.remove_object(src, frequency) + frequency = new_frequency + radio_connection = SSradio.add_object(src, frequency, RADIO_CHAT) + return + +// Embedded signaller used in grenade construction. +// It's necessary because the signaler doens't have an off state. +// Generated during grenade construction. -Sayu +/obj/item/device/assembly/signaler/reciever + var/on = 0 + +/obj/item/device/assembly/signaler/reciever/proc/toggle_safety() + on = !on + +/obj/item/device/assembly/signaler/reciever/activate() + toggle_safety() + return 1 + +/obj/item/device/assembly/signaler/reciever/describe() + return "The radio receiver is [on?"on":"off"]." + +/obj/item/device/assembly/signaler/reciever/receive_signal(datum/signal/signal) + if(!on) return + return ..(signal) + + +// Embedded signaller used in anomalies. +/obj/item/device/assembly/signaler/anomaly + name = "anomaly core" + desc = "The neutralized core of an anomaly. It'd probably be valuable for research." + icon_state = "anomaly core" + item_state = "electronic" + +/obj/item/device/assembly/signaler/anomaly/receive_signal(datum/signal/signal) + if(!signal) + return 0 + if(signal.encryption != code) + return 0 + for(var/obj/effect/anomaly/A in get_turf(src)) + A.anomalyNeutralize() + +/obj/item/device/assembly/signaler/anomaly/attack_self() + return \ No newline at end of file diff --git a/code/modules/assembly/timer.dm b/code/modules/assembly/timer.dm new file mode 100644 index 0000000..a2ff8c2 --- /dev/null +++ b/code/modules/assembly/timer.dm @@ -0,0 +1,118 @@ +/obj/item/device/assembly/timer + name = "timer" + desc = "Used to time things. Works well with contraptions which has to count down. Tick tock." + icon_state = "timer" + materials = list(MAT_METAL=500, MAT_GLASS=50) + origin_tech = "magnets=1;engineering=1" + attachable = 1 + + var/timing = 0 + var/time = 5 + var/saved_time = 5 + var/loop = 0 + + +/obj/item/device/assembly/timer/New() + ..() + START_PROCESSING(SSobj, src) + +/obj/item/device/assembly/timer/describe() + if(timing) + return "The timer is counting down from [time]!" + return "The timer is set for [time] seconds." + + +/obj/item/device/assembly/timer/activate() + if(!..()) + return 0//Cooldown check + timing = !timing + update_icon() + return 1 + + +/obj/item/device/assembly/timer/toggle_secure() + secured = !secured + if(secured) + START_PROCESSING(SSobj, src) + else + timing = 0 + STOP_PROCESSING(SSobj, src) + update_icon() + return secured + + +/obj/item/device/assembly/timer/proc/timer_end() + if((!secured)||(cooldown > 0)) + return 0 + pulse(0) + audible_message("\icon[src] *beep* *beep*", null, 3) + cooldown = 2 + spawn(10) + process_cooldown() + if(loop) + timing = 1 + update_icon() + + +/obj/item/device/assembly/timer/process() + if(timing) + time-- + if(time <= 0) + timing = 0 + timer_end() + time = saved_time + + +/obj/item/device/assembly/timer/update_icon() + cut_overlays() + attached_overlays = list() + if(timing) + add_overlay("timer_timing") + attached_overlays += "timer_timing" + if(holder) + holder.update_icon() + + +/obj/item/device/assembly/timer/interact(mob/user)//TODO: Have this use the wires + if(is_secured(user)) + var/second = time % 60 + var/minute = (time - second) / 60 + var/dat = "Timing Unit\n[(timing ? "Timing" : "Not Timing")] [minute]:[second]\n- - + +\n" + dat += "

    Stop repeating" : "1'>Set to repeat")]" + dat += "

    Refresh" + dat += "

    Close" + var/datum/browser/popup = new(user, "timer", name) + popup.set_content(dat) + popup.open() + + +/obj/item/device/assembly/timer/Topic(href, href_list) + ..() + if(usr.incapacitated() || !in_range(loc, usr)) + usr << browse(null, "window=timer") + onclose(usr, "timer") + return + + if(href_list["time"]) + timing = text2num(href_list["time"]) + if(timing && istype(holder, /obj/item/device/transfer_valve)) + var/timer_message = "[key_name_admin(usr)](?) (FLW) activated [src] attachment on [holder]." + message_admins(timer_message) + bombers += timer_message + log_game("[key_name(usr)] activated [src] attachment for [loc]") + update_icon() + if(href_list["repeat"]) + loop = text2num(href_list["repeat"]) + + if(href_list["tp"]) + var/tp = text2num(href_list["tp"]) + time += tp + time = min(max(round(time), 1), 600) + saved_time = time + + if(href_list["close"]) + usr << browse(null, "window=timer") + return + + if(usr) + attack_self(usr) diff --git a/code/modules/assembly/voice.dm b/code/modules/assembly/voice.dm new file mode 100644 index 0000000..d3ecc3b --- /dev/null +++ b/code/modules/assembly/voice.dm @@ -0,0 +1,90 @@ +/obj/item/device/assembly/voice + name = "voice analyzer" + desc = "A small electronic device able to record a voice sample, and send a signal when that sample is repeated." + icon_state = "voice" + materials = list(MAT_METAL=500, MAT_GLASS=50) + origin_tech = "magnets=1;engineering=1" + flags = HEAR + attachable = 1 + verb_say = "beeps" + verb_ask = "beeps" + verb_exclaim = "beeps" + var/listening = 0 + var/recorded = "" //the activation message + var/mode = 1 + var/global/list/modes = list("inclusive", + "exclusive", + "recognizer", + "voice sensor") + +/obj/item/device/assembly/voice/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq, list/spans) + if(speaker == src) + return + + if(listening && !radio_freq) + record_speech(speaker, raw_message) + else + if(check_activation(speaker, raw_message)) + spawn(10) + pulse(0) + +/obj/item/device/assembly/voice/proc/record_speech(atom/movable/speaker, raw_message) + switch(mode) + if(1) + recorded = raw_message + listening = 0 + say("Activation message is '[recorded]'.") + if(2) + recorded = raw_message + listening = 0 + say("Activation message is '[recorded]'.") + if(3) + recorded = speaker.GetVoice() + listening = 0 + say("Your voice pattern is saved.") + if(4) + if(length(raw_message)) + spawn(10) + pulse(0) + +/obj/item/device/assembly/voice/proc/check_activation(atom/movable/speaker, raw_message) + . = 0 + switch(mode) + if(1) + if(findtextEx(raw_message, recorded)) + . = 1 + if(2) + if(raw_message == recorded) + . = 1 + if(3) + if(speaker.GetVoice() == recorded) + . = 1 + if(4) + if(length(raw_message)) + . = 1 + +/obj/item/device/assembly/voice/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/device/multitool)) + mode %= modes.len + mode++ + user << "You set [src] into a [modes[mode]] mode." + listening = 0 + recorded = "" + else + return ..() + +/obj/item/device/assembly/voice/activate() + if(secured) + if(!holder) + listening = !listening + say("[listening ? "Now" : "No longer"] recording input.") + +/obj/item/device/assembly/voice/attack_self(mob/user) + if(!user) + return 0 + activate() + return 1 + +/obj/item/device/assembly/voice/toggle_secure() + . = ..() + listening = 0 diff --git a/code/modules/atmospherics/environmental/LINDA_fire.dm b/code/modules/atmospherics/environmental/LINDA_fire.dm new file mode 100644 index 0000000..fff0ba6 --- /dev/null +++ b/code/modules/atmospherics/environmental/LINDA_fire.dm @@ -0,0 +1,179 @@ +/atom/proc/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) + return null + + + +/turf/proc/hotspot_expose(exposed_temperature, exposed_volume, soh = 0) + return + + +/turf/open/hotspot_expose(exposed_temperature, exposed_volume, soh) + var/datum/gas_mixture/air_contents = return_air() + if(!air_contents) + return 0 + + var/oxy = air_contents.gases["o2"] ? air_contents.gases["o2"][MOLES] : 0 + var/tox = air_contents.gases["plasma"] ? air_contents.gases["plasma"][MOLES] : 0 + + if(active_hotspot) + if(soh) + if(tox > 0.5 && oxy > 0.5) + if(active_hotspot.temperature < exposed_temperature) + active_hotspot.temperature = exposed_temperature + if(active_hotspot.volume < exposed_volume) + active_hotspot.volume = exposed_volume + return 1 + + var/igniting = 0 + + if((exposed_temperature > PLASMA_MINIMUM_BURN_TEMPERATURE) && tox > 0.5) + igniting = 1 + + if(igniting) + if(oxy < 0.5 || tox < 0.5) + return 0 + + active_hotspot = PoolOrNew(/obj/effect/hotspot, src) + active_hotspot.temperature = exposed_temperature + active_hotspot.volume = exposed_volume + + active_hotspot.just_spawned = (current_cycle < SSair.times_fired) + //remove just_spawned protection if no longer processing this cell + SSair.add_to_active(src, 0) + return igniting + +//This is the icon for fire on turfs, also helps for nurturing small fires until they are full tile +/obj/effect/hotspot + anchored = 1 + mouse_opacity = 0 + icon = 'icons/effects/fire.dmi' + icon_state = "1" + layer = ABOVE_OPEN_TURF_LAYER + luminosity = 3 + + var/volume = 125 + var/temperature = FIRE_MINIMUM_TEMPERATURE_TO_EXIST + var/just_spawned = 1 + var/bypassing = 0 + +/obj/effect/hotspot/New() + ..() + SSair.hotspots += src + perform_exposure() + setDir(pick(cardinal)) + air_update_turf() + + +/obj/effect/hotspot/proc/perform_exposure() + var/turf/open/location = loc + if(!istype(location) || !(location.air)) + return 0 + + location.active_hotspot = src + + if(volume > CELL_VOLUME*0.95) + bypassing = 1 + else + bypassing = 0 + + if(bypassing) + if(!just_spawned) + volume = location.air.fuel_burnt*FIRE_GROWTH_RATE + temperature = location.air.temperature + else + var/datum/gas_mixture/affected = location.air.remove_ratio(volume/location.air.volume) + affected.temperature = temperature + affected.react() + temperature = affected.temperature + volume = affected.fuel_burnt*FIRE_GROWTH_RATE + location.assume_air(affected) + + for(var/A in loc) + var/atom/AT = A + if(AT && AT != src) // It's possible that the item is deleted in temperature_expose + AT.fire_act(temperature, volume) + return 0 + + +/obj/effect/hotspot/process() + if(just_spawned) + just_spawned = 0 + return 0 + + var/turf/open/location = loc + if(!istype(location)) + qdel(src) + return + + if(location.excited_group) + location.excited_group.reset_cooldowns() + + if((temperature < FIRE_MINIMUM_TEMPERATURE_TO_EXIST) || (volume <= 1)) + qdel(src) + return + + if(!(location.air) || !location.air.gases["plasma"] || !location.air.gases["o2"] || location.air.gases["plasma"][MOLES] < 0.5 || location.air.gases["o2"][MOLES] < 0.5) + qdel(src) + return + + perform_exposure() + + if(bypassing) + icon_state = "3" + location.burn_tile() + + //Possible spread due to radiated heat + if(location.air.temperature > FIRE_MINIMUM_TEMPERATURE_TO_SPREAD) + var/radiated_temperature = location.air.temperature*FIRE_SPREAD_RADIOSITY_SCALE + for(var/t in location.atmos_adjacent_turfs) + var/turf/open/T = t + if(T.active_hotspot) + T.hotspot_expose(radiated_temperature, CELL_VOLUME/4) + + else + if(volume > CELL_VOLUME*0.4) + icon_state = "2" + else + icon_state = "1" + + if(temperature > location.max_fire_temperature_sustained) + location.max_fire_temperature_sustained = temperature + + if(location.heat_capacity && temperature > location.heat_capacity) + location.to_be_destroyed = 1 + /*if(prob(25)) + location.ReplaceWithSpace() + return 0*/ + return 1 + +/obj/effect/hotspot/Destroy() + SetLuminosity(0) + SSair.hotspots -= src + DestroyTurf() + if(isturf(loc)) + var/turf/open/T = loc + if(T.active_hotspot == src) + T.active_hotspot = null + loc = null + ..() + return QDEL_HINT_PUTINPOOL + +/obj/effect/hotspot/proc/DestroyTurf() + if(isturf(loc)) + var/turf/T = loc + if(T.to_be_destroyed) + var/chance_of_deletion + if (T.heat_capacity) //beware of division by zero + chance_of_deletion = T.max_fire_temperature_sustained / T.heat_capacity * 8 //there is no problem with prob(23456), min() was redundant --rastaf0 + else + chance_of_deletion = 100 + if(prob(chance_of_deletion)) + T.ChangeTurf(T.baseturf) + else + T.to_be_destroyed = 0 + T.max_fire_temperature_sustained = 0 + +/obj/effect/hotspot/Crossed(mob/living/L) + ..() + if(isliving(L)) + L.fire_act(temperature, volume) diff --git a/code/modules/atmospherics/environmental/LINDA_system.dm b/code/modules/atmospherics/environmental/LINDA_system.dm new file mode 100644 index 0000000..376a2d3 --- /dev/null +++ b/code/modules/atmospherics/environmental/LINDA_system.dm @@ -0,0 +1,139 @@ +/turf/proc/CanAtmosPass(turf/T) + +/turf/closed/CanAtmosPass(turf/T) + return 0 + +/turf/open/CanAtmosPass(turf/T) + var/R + if(blocks_air || T.blocks_air) + R = 1 + + for(var/obj/O in contents+T.contents) + var/turf/other = (O.loc == src ? T : src) + if(!O.CanAtmosPass(other)) + R = 1 + if(O.BlockSuperconductivity()) //the direction and open/closed are already checked on CanAtmosPass() so there are no arguments + var/D = get_dir(src, T) + atmos_supeconductivity |= D + D = get_dir(T, src) + T.atmos_supeconductivity |= D + return 0 //no need to keep going, we got all we asked + + atmos_supeconductivity &= ~get_dir(src, T) + T.atmos_supeconductivity &= ~get_dir(T, src) + + return !R + +/atom/movable/proc/CanAtmosPass() + return 1 + +/atom/proc/CanPass(atom/movable/mover, turf/target, height=1.5) + return (!density || !height) + +/turf/CanPass(atom/movable/mover, turf/target, height=1.5) + if(!target) return 0 + + if(istype(mover)) // turf/Enter(...) will perform more advanced checks + return !density + + else // Now, doing more detailed checks for air movement and air group formation + if(target.blocks_air||blocks_air) + return 0 + + for(var/obj/obstacle in src) + if(!obstacle.CanPass(mover, target, height)) + return 0 + for(var/obj/obstacle in target) + if(!obstacle.CanPass(mover, src, height)) + return 0 + + return 1 + +/atom/movable/proc/BlockSuperconductivity() // objects that block air and don't let superconductivity act. Only firelocks atm. + return 0 + +/turf/proc/CalculateAdjacentTurfs() + var/list/atmos_adjacent_turfs = src.atmos_adjacent_turfs + for(var/direction in cardinal) + var/turf/open/T = get_step(src, direction) + if(!istype(T)) + continue + if(CanAtmosPass(T)) + LAZYINITLIST(atmos_adjacent_turfs) + LAZYINITLIST(T.atmos_adjacent_turfs) + atmos_adjacent_turfs[T] = TRUE + T.atmos_adjacent_turfs[src] = TRUE + else + if (atmos_adjacent_turfs) + atmos_adjacent_turfs -= T + if (T.atmos_adjacent_turfs) + T.atmos_adjacent_turfs -= src + UNSETEMPTY(T.atmos_adjacent_turfs) + UNSETEMPTY(atmos_adjacent_turfs) + if (atmos_adjacent_turfs) + src.atmos_adjacent_turfs = atmos_adjacent_turfs + +//returns a list of adjacent turfs that can share air with this one. +//alldir includes adjacent diagonal tiles that can share +// air with both of the related adjacent cardinal tiles +/turf/proc/GetAtmosAdjacentTurfs(alldir = 0) + var/adjacent_turfs + if (atmos_adjacent_turfs) + adjacent_turfs = atmos_adjacent_turfs.Copy() + else + adjacent_turfs = list() + + if (!alldir) + return adjacent_turfs + + var/turf/curloc = src + + for (var/direction in diagonals) + var/matchingDirections = 0 + var/turf/S = get_step(curloc, direction) + + for (var/checkDirection in cardinal) + var/turf/checkTurf = get_step(S, checkDirection) + if(!(checkTurf in S.atmos_adjacent_turfs)) + continue + + if (checkTurf in adjacent_turfs) + matchingDirections++ + + if (matchingDirections >= 2) + adjacent_turfs += S + break + + return adjacent_turfs + +/atom/proc/air_update_turf(command = 0) + if(!isturf(loc) && command) + return + var/turf/T = get_turf(loc) + T.air_update_turf(command) + +/turf/air_update_turf(command = 0) + if(command) + CalculateAdjacentTurfs() + SSair.add_to_active(src,command) + +/atom/movable/proc/move_update_air(turf/T) + if(isturf(T)) + T.air_update_turf(1) + air_update_turf(1) + +/atom/proc/atmos_spawn_air(text) //because a lot of people loves to copy paste awful code lets just make a easy proc to spawn your plasma fires + var/turf/open/T = get_turf(src) + if(!istype(T)) + return + T.atmos_spawn_air(text) + +/turf/open/atmos_spawn_air(text) + if(!text || !air) + return + + var/datum/gas_mixture/G = new + G.parse_gas_string(text) + + air.merge(G) + SSair.add_to_active(src, 0) diff --git a/code/modules/atmospherics/environmental/LINDA_turf_tile.dm b/code/modules/atmospherics/environmental/LINDA_turf_tile.dm new file mode 100644 index 0000000..3f46390 --- /dev/null +++ b/code/modules/atmospherics/environmental/LINDA_turf_tile.dm @@ -0,0 +1,460 @@ +/turf + //used for temperature calculations + var/thermal_conductivity = 0.05 + var/heat_capacity = 1 + var/temperature_archived + + //list of open turfs adjacent to us + var/list/atmos_adjacent_turfs + //bitfield of dirs in which we are superconducitng + var/atmos_supeconductivity = 0 + + //used to determine whether we should archive + var/archived_cycle = 0 + var/current_cycle = 0 + + //used for mapping and for breathing while in walls (because that's a thing that needs to be accounted for...) + //string parsed by /datum/gas/proc/copy_from_turf + var/initial_gas_mix = "o2=22;n2=82;TEMP=293.15" + //approximation of MOLES_O2STANDARD and MOLES_N2STANDARD pending byond allowing constant expressions to be embedded in constant strings + // If someone will place 0 of some gas there, SHIT WILL BREAK. Do not do that. + +/turf/open + //used for spacewind + var/pressure_difference = 0 + var/pressure_direction = 0 + + var/datum/excited_group/excited_group + var/excited = 0 + var/recently_active = 0 + var/datum/gas_mixture/air + + var/obj/effect/hotspot/active_hotspot + var/atmos_cooldown = 0 + var/planetary_atmos = FALSE //air will revert to initial_gas_mix over time + + var/list/atmos_overlay_types //gas IDs of current active gas overlays + +/turf/open/New() + ..() + if(!blocks_air) + air = new + air.copy_from_turf(src) + +/turf/open/Destroy() + if(active_hotspot) + qdel(active_hotspot) + active_hotspot = null + // Adds the adjacent turfs to the current atmos processing + for(var/T in atmos_adjacent_turfs) + SSair.add_to_active(T) + return ..() + +/////////////////GAS MIXTURE PROCS/////////////////// + +/turf/open/assume_air(datum/gas_mixture/giver) //use this for machines to adjust air + if(!giver) + return 0 + air.merge(giver) + update_visuals() + return 1 + +/turf/open/remove_air(amount) + var/datum/gas_mixture/ours = return_air() + var/datum/gas_mixture/removed = ours.remove(amount) + update_visuals() + return removed + +/turf/open/proc/copy_air_with_tile(turf/open/T) + if(istype(T)) + air.copy_from(T.air) + +/turf/open/proc/copy_air(datum/gas_mixture/copy) + if(copy) + air.copy_from(copy) + +/turf/return_air() + var/datum/gas_mixture/GM = new + GM.copy_from_turf(src) + return GM + +/turf/open/return_air() + return air + +/turf/temperature_expose() + if(temperature > heat_capacity) + to_be_destroyed = 1 + +/turf/proc/archive() + temperature_archived = temperature + +/turf/open/archive() + air.archive() + archived_cycle = SSair.times_fired + ..() + +/////////////////////////GAS OVERLAYS////////////////////////////// + +/turf/open/proc/update_visuals() + var/list/new_overlay_types = tile_graphic() + + if (atmos_overlay_types) + for(var/overlay in atmos_overlay_types-new_overlay_types) //doesn't remove overlays that would only be added + overlays -= overlay + + if (new_overlay_types.len) + if (atmos_overlay_types) + add_overlay(new_overlay_types - atmos_overlay_types) //don't add overlays that already exist + else + add_overlay(new_overlay_types) + + UNSETEMPTY(new_overlay_types) + atmos_overlay_types = new_overlay_types + +/turf/open/proc/tile_graphic() + . = new /list + var/list/gases = air.gases + for(var/id in gases) + var/gas = gases[id] + if(gas[GAS_META][META_GAS_OVERLAY] && gas[MOLES] > gas[GAS_META][META_GAS_MOLES_VISIBLE]) + . += gas[GAS_META][META_GAS_OVERLAY] + +/////////////////////////////SIMULATION/////////////////////////////////// + +/turf/proc/process_cell(fire_count) + SSair.remove_from_active(src) + +/turf/open/process_cell(fire_count) + if(archived_cycle < fire_count) //archive self if not already done + archive() + + current_cycle = fire_count + var/remove = 1 //set by non simulated turfs who are sharing with this turf + + //cache for sanic speed + var/list/adjacent_turfs = atmos_adjacent_turfs + var/datum/excited_group/our_excited_group = excited_group + var/adjacent_turfs_length = LAZYLEN(adjacent_turfs) + atmos_cooldown++ + if (planetary_atmos) + adjacent_turfs_length++ + + for(var/t in adjacent_turfs) + var/turf/open/enemy_tile = t + + if(fire_count > enemy_tile.current_cycle) + enemy_tile.archive() + + /******************* GROUP HANDLING START *****************************************************************/ + + if(enemy_tile.excited) + //cache for sanic speed + var/datum/excited_group/enemy_excited_group = enemy_tile.excited_group + if(our_excited_group) + if(enemy_excited_group) + if(our_excited_group != enemy_excited_group) + //combine groups (this also handles updating the excited_group var of all involved turfs) + our_excited_group.merge_groups(enemy_excited_group) + our_excited_group = excited_group //update our cache + share_air(enemy_tile, fire_count, adjacent_turfs_length) //share + else + if((recently_active == 1 && enemy_tile.recently_active == 1) || air.compare(enemy_tile.air)) + our_excited_group.add_turf(enemy_tile) //add enemy to our group + share_air(enemy_tile, fire_count, adjacent_turfs_length) //share + else + if(enemy_excited_group) + if((recently_active == 1 && enemy_tile.recently_active == 1) || air.compare(enemy_tile.air)) + enemy_excited_group.add_turf(src) //join self to enemy group + our_excited_group = excited_group //update our cache + share_air(enemy_tile, fire_count, adjacent_turfs_length) //share + else + if((recently_active == 1 && enemy_tile.recently_active == 1) || air.compare(enemy_tile.air)) + var/datum/excited_group/EG = new //generate new group + EG.add_turf(src) + EG.add_turf(enemy_tile) + our_excited_group = excited_group //update our cache + share_air(enemy_tile, fire_count, adjacent_turfs_length) //share + else + if(air.compare(enemy_tile.air)) //compare if + SSair.add_to_active(enemy_tile) //excite enemy + if(our_excited_group) + excited_group.add_turf(enemy_tile) //add enemy to group + else + var/datum/excited_group/EG = new //generate new group + EG.add_turf(src) + EG.add_turf(enemy_tile) + our_excited_group = excited_group //update our cache + share_air(enemy_tile, fire_count, adjacent_turfs_length) //share + + /******************* GROUP HANDLING FINISH *********************************************************************/ + + if (planetary_atmos) //share our air with the "atmosphere" "above" the turf + var/datum/gas_mixture/G = new + G.copy_from_turf(src) + G.archive() + if(air.compare(G)) + if(!our_excited_group) + var/datum/excited_group/EG = new + EG.add_turf(src) + our_excited_group = excited_group + air.share(G, adjacent_turfs_length) + last_share_check() + + air.react() + + update_visuals() + + if(air.temperature > FIRE_MINIMUM_TEMPERATURE_TO_EXIST) + hotspot_expose(air.temperature, CELL_VOLUME) + for(var/atom/movable/item in src) + item.temperature_expose(air, air.temperature, CELL_VOLUME) + temperature_expose(air, air.temperature, CELL_VOLUME) + + if(air.temperature > MINIMUM_TEMPERATURE_START_SUPERCONDUCTION) + if(consider_superconductivity(starting = 1)) + remove = 0 + + if (atmos_cooldown > EXCITED_GROUP_DISMANTLE_CYCLES*2) + SSair.remove_from_active(src) + if(!our_excited_group && remove == 1) + SSair.remove_from_active(src) + + +/turf/open/proc/share_air(turf/open/T, fire_count, adjacent_turfs_length) + if(T.current_cycle < fire_count) + var/difference = air.share(T.air, adjacent_turfs_length) + if(difference) + if(difference > 0) + consider_pressure_difference(T, difference) + else + T.consider_pressure_difference(src, -difference) + last_share_check() + +//////////////////////////SPACEWIND///////////////////////////// + +/turf/open/proc/consider_pressure_difference(turf/T, difference) + SSair.high_pressure_delta |= src + if(difference > pressure_difference) + pressure_direction = get_dir(src, T) + pressure_difference = difference + +/turf/open/proc/last_share_check() + if(air.last_share > MINIMUM_AIR_TO_SUSPEND) + excited_group.reset_cooldowns() + atmos_cooldown = 0 + else if(air.last_share > MINIMUM_MOLES_DELTA_TO_MOVE) + excited_group.dismantle_cooldown = 0 + atmos_cooldown = 0 + +/turf/open/proc/high_pressure_movements() + for(var/atom/movable/M in src) + M.experience_pressure_difference(pressure_difference, pressure_direction) + +/atom/movable/var/pressure_resistance = 10 +/atom/movable/var/last_high_pressure_movement_air_cycle = 0 + +/atom/movable/proc/experience_pressure_difference(pressure_difference, direction, pressure_resistance_prob_delta = 0) + var/const/PROBABILITY_OFFSET = 25 + var/const/PROBABILITY_BASE_PRECENT = 75 + set waitfor = 0 + . = 0 + if (!anchored && !pulledby) + . = 1 + if (last_high_pressure_movement_air_cycle < SSair.times_fired) + var/move_prob = 100 + if (pressure_resistance > 0) + move_prob = (pressure_difference/pressure_resistance*PROBABILITY_BASE_PRECENT)-PROBABILITY_OFFSET + move_prob += pressure_resistance_prob_delta + if (move_prob > PROBABILITY_OFFSET && prob(move_prob)) + step(src, direction) + last_high_pressure_movement_air_cycle = SSair.times_fired + +///////////////////////////EXCITED GROUPS///////////////////////////// + +/datum/excited_group + var/list/turf_list = list() + var/breakdown_cooldown = 0 + var/dismantle_cooldown = 0 + +/datum/excited_group/New() + SSair.excited_groups += src + +/datum/excited_group/proc/add_turf(turf/open/T) + turf_list += T + T.excited_group = src + T.recently_active = 1 + reset_cooldowns() + +/datum/excited_group/proc/merge_groups(datum/excited_group/E) + if(turf_list.len > E.turf_list.len) + SSair.excited_groups -= E + for(var/t in E.turf_list) + var/turf/open/T = t + T.excited_group = src + turf_list += T + reset_cooldowns() + else + SSair.excited_groups -= src + for(var/t in turf_list) + var/turf/open/T = t + T.excited_group = E + E.turf_list += T + E.reset_cooldowns() + +/datum/excited_group/proc/reset_cooldowns() + breakdown_cooldown = 0 + dismantle_cooldown = 0 + +//argument is so world start can clear out any turf differences quickly. +/datum/excited_group/proc/self_breakdown(space_is_all_consuming = 0) + var/datum/gas_mixture/A = new + + //make local for sanic speed + var/list/A_gases = A.gases + var/list/turf_list = src.turf_list + var/turflen = turf_list.len + var/space_in_group = 0 + + for(var/t in turf_list) + var/turf/open/T = t + if (space_is_all_consuming && !space_in_group && istype(T.air, /datum/gas_mixture/space)) + space_in_group = 1 + qdel(A) + A = new/datum/gas_mixture/space() + A.merge(T.air) + + for(var/id in A_gases) + A_gases[id][MOLES] = A_gases[id][MOLES]/turflen + + for(var/t in turf_list) + var/turf/open/T = t + T.air.copy_from(A) + T.atmos_cooldown = 0 + T.update_visuals() + + breakdown_cooldown = 0 + +/datum/excited_group/proc/dismantle() + for(var/t in turf_list) + var/turf/open/T = t + T.excited = 0 + T.recently_active = 0 + T.excited_group = null + SSair.active_turfs -= T + garbage_collect() + +/datum/excited_group/proc/garbage_collect() + for(var/t in turf_list) + var/turf/open/T = t + T.excited_group = null + turf_list.Cut() + SSair.excited_groups -= src + +////////////////////////SUPERCONDUCTIVITY///////////////////////////// +/turf/proc/conductivity_directions() + if(archived_cycle < SSair.times_fired) + archive() + return NORTH|SOUTH|EAST|WEST + +/turf/open/conductivity_directions() + if(blocks_air) + return ..() + for(var/direction in cardinal) + var/turf/T = get_step(src, direction) + if(!(T in atmos_adjacent_turfs) && !(atmos_supeconductivity & direction)) + . |= direction + +/turf/proc/neighbor_conduct_with_src(turf/open/other) + if(!other.blocks_air) //Open but neighbor is solid + other.temperature_share_open_to_solid(src) + else //Both tiles are solid + other.share_temperature_mutual_solid(src, thermal_conductivity) + temperature_expose(null, temperature, null) + +/turf/open/neighbor_conduct_with_src(turf/other) + if(blocks_air) + ..() + return + + if(!other.blocks_air) //Both tiles are open + var/turf/open/T = other + T.air.temperature_share(air, WINDOW_HEAT_TRANSFER_COEFFICIENT) + else //Solid but neighbor is open + temperature_share_open_to_solid(other) + SSair.add_to_active(src, 0) + +/turf/proc/super_conduct() + var/conductivity_directions = conductivity_directions() + + if(conductivity_directions) + //Conduct with tiles around me + for(var/direction in cardinal) + if(conductivity_directions & direction) + var/turf/neighbor = get_step(src,direction) + + if(!neighbor.thermal_conductivity) + continue + + if(neighbor.archived_cycle < SSair.times_fired) + neighbor.archive() + + neighbor.neighbor_conduct_with_src(src) + + neighbor.consider_superconductivity() + + radiate_to_spess() + + finish_superconduction() + +/turf/proc/finish_superconduction(temp = temperature) + //Make sure still hot enough to continue conducting heat + if(temp < MINIMUM_TEMPERATURE_FOR_SUPERCONDUCTION) + SSair.active_super_conductivity -= src + return 0 + +/turf/open/finish_superconduction() + //Conduct with air on my tile if I have it + if(!blocks_air) + temperature = air.temperature_share(null, thermal_conductivity, temperature, heat_capacity) + ..((blocks_air ? temperature : air.temperature)) + +/turf/proc/consider_superconductivity() + if(!thermal_conductivity) + return 0 + + SSair.active_super_conductivity |= src + return 1 + +/turf/open/consider_superconductivity(starting) + if(air.temperature < (starting?MINIMUM_TEMPERATURE_START_SUPERCONDUCTION:MINIMUM_TEMPERATURE_FOR_SUPERCONDUCTION)) + return 0 + if(air.heat_capacity() < M_CELL_WITH_RATIO) // Was: MOLES_CELLSTANDARD*0.1*0.05 Since there are no variables here we can make this a constant. + return 0 + return ..() + +/turf/closed/consider_superconductivity(starting) + if(temperature < (starting?MINIMUM_TEMPERATURE_START_SUPERCONDUCTION:MINIMUM_TEMPERATURE_FOR_SUPERCONDUCTION)) + return 0 + return ..() + +/turf/proc/radiate_to_spess() //Radiate excess tile heat to space + if(temperature > T0C) //Considering 0 degC as te break even point for radiation in and out + var/delta_temperature = (temperature_archived - TCMB) //hardcoded space temperature + if((heat_capacity > 0) && (abs(delta_temperature) > MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER)) + + var/heat = thermal_conductivity*delta_temperature* \ + (heat_capacity*700000/(heat_capacity+700000)) //700000 is the heat_capacity from a space turf, hardcoded here + temperature -= heat/heat_capacity + +/turf/open/proc/temperature_share_open_to_solid(turf/sharer) + sharer.temperature = air.temperature_share(null, sharer.thermal_conductivity, sharer.temperature, sharer.heat_capacity) + +/turf/proc/share_temperature_mutual_solid(turf/sharer, conduction_coefficient) //to be understood + var/delta_temperature = (temperature_archived - sharer.temperature_archived) + if(abs(delta_temperature) > MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER && heat_capacity && sharer.heat_capacity) + + var/heat = conduction_coefficient*delta_temperature* \ + (heat_capacity*sharer.heat_capacity/(heat_capacity+sharer.heat_capacity)) + + temperature -= heat/heat_capacity + sharer.temperature += heat/sharer.heat_capacity diff --git a/code/modules/atmospherics/gasmixtures/gas_mixture.dm b/code/modules/atmospherics/gasmixtures/gas_mixture.dm new file mode 100644 index 0000000..450702d --- /dev/null +++ b/code/modules/atmospherics/gasmixtures/gas_mixture.dm @@ -0,0 +1,574 @@ + /* +What are the archived variables for? + Calculations are done using the archived variables with the results merged into the regular variables. + This prevents race conditions that arise based on the order of tile processing. +*/ +#define MINIMUM_HEAT_CAPACITY 0.0003 +#define QUANTIZE(variable) (round(variable,0.0000001))/*I feel the need to document what happens here. Basically this is used to catch most rounding errors, however it's previous value made it so that + once gases got hot enough, most procedures wouldnt occur due to the fact that the mole counts would get rounded away. Thus, we lowered it a few orders of magnititude */ +var/list/meta_gas_info = meta_gas_list() //see ATMOSPHERICS/gas_types.dm + +var/list/gaslist_cache = null +/proc/gaslist(id) + var/list/cached_gas + + //only instantiate the first time it's needed + if(!gaslist_cache) + gaslist_cache = new(meta_gas_info.len) + + //only setup the individual lists the first time they're needed + if(!gaslist_cache[id]) + if(!meta_gas_info[id]) + CRASH("Gas [id] does not exist!") + cached_gas = new(3) + gaslist_cache[id] = cached_gas + + cached_gas[MOLES] = 0 + cached_gas[ARCHIVE] = 0 + cached_gas[GAS_META] = meta_gas_info[id] + else + cached_gas = gaslist_cache[id] + //Copy() it because only GAS_META is static + return cached_gas.Copy() + +/datum/gas_mixture + var/list/gases + var/temperature //kelvins + var/tmp/temperature_archived + var/volume //liters + var/last_share + var/tmp/fuel_burnt + var/atom/holder + +/datum/gas_mixture/New(volume = CELL_VOLUME) + ..() + gases = new + temperature = 0 + temperature_archived = 0 + src.volume = volume + last_share = 0 + fuel_burnt = 0 + +//listmos procs + + //assert_gas(gas_id) - used to guarantee that the gas list for this id exists. + //Must be used before adding to a gas. May be used before reading from a gas. +/datum/gas_mixture/proc/assert_gas(gas_id) + var/cached_gases = gases + if(cached_gases[gas_id]) + return + cached_gases[gas_id] = gaslist(gas_id) + + //assert_gases(args) - shorthand for calling assert_gas() once for each gas type. +/datum/gas_mixture/proc/assert_gases() + for(var/id in args) + assert_gas(id) + + //add_gas(gas_id) - similar to assert_gas(), but does not check for an existing + //gas list for this id. This can clobber existing gases. + //Used instead of assert_gas() when you know the gas does not exist. Faster than assert_gas(). +/datum/gas_mixture/proc/add_gas(gas_id) + gases[gas_id] = gaslist(gas_id) + + //add_gases(args) - shorthand for calling add_gas() once for each gas_type. +/datum/gas_mixture/proc/add_gases() + for(var/id in args) + add_gas(id) + + //garbage_collect() - removes any gas list which is empty. + //If called with a list as an argument, only removes gas lists with IDs from that list. + //Must be used after subtracting from a gas. Must be used after assert_gas() + //if assert_gas() was called only to read from the gas. + //By removing empty gases, processing speed is increased. +/datum/gas_mixture/proc/garbage_collect(list/tocheck) + var/list/cached_gases = gases + for(var/id in (tocheck || cached_gases)) + if(cached_gases[id][MOLES] <= 0 && cached_gases[id][ARCHIVE] <= 0) + cached_gases -= id + + //PV = nRT +/datum/gas_mixture/proc/heat_capacity() //joules per kelvin + var/list/cached_gases = gases + . = 0 + for(var/id in cached_gases) + . += cached_gases[id][MOLES] * cached_gases[id][GAS_META][META_GAS_SPECIFIC_HEAT] + +/datum/gas_mixture/proc/heat_capacity_archived() //joules per kelvin + var/list/cached_gases = gases + . = 0 + for(var/id in cached_gases) + . += cached_gases[id][ARCHIVE] * cached_gases[id][GAS_META][META_GAS_SPECIFIC_HEAT] + +/datum/gas_mixture/proc/total_moles() //moles + var/list/cached_gases = gases + . = 0 + for(var/id in cached_gases) + . += cached_gases[id][MOLES] + +/datum/gas_mixture/proc/return_pressure() //kilopascals + if(volume > 0) // to prevent division by zero + return total_moles() * R_IDEAL_GAS_EQUATION * temperature / volume + return 0 + +/datum/gas_mixture/proc/return_temperature() //kelvins + return temperature + +/datum/gas_mixture/proc/return_volume() //liters + return max(0, volume) + +/datum/gas_mixture/proc/thermal_energy() //joules + return temperature * heat_capacity() + +//Procedures used for very specific events + +/datum/gas_mixture/proc/react(atom/dump_location) + var/list/cached_gases = gases //this speeds things up because >byond + var/reacting = 0 //set to 1 if a notable reaction occured (used by pipe_network) + + if(temperature < TCMB) + temperature = TCMB + + if(cached_gases["agent_b"] && temperature > 900 && cached_gases["plasma"] && cached_gases["co2"]) + //agent b converts hot co2 to o2 (endothermic) + if(cached_gases["plasma"][MOLES] > MINIMUM_HEAT_CAPACITY && cached_gases["co2"][MOLES] > MINIMUM_HEAT_CAPACITY) + var/reaction_rate = min(cached_gases["co2"][MOLES]*0.75, cached_gases["plasma"][MOLES]*0.25, cached_gases["agent_b"][MOLES]*0.05) + + cached_gases["co2"][MOLES] -= reaction_rate + + assert_gas("o2") //only need to assert oxygen, as this reaction doesn't occur without the other gases existing + cached_gases["o2"][MOLES] += reaction_rate + + cached_gases["agent_b"][MOLES] -= reaction_rate*0.05 + + temperature -= (reaction_rate*20000)/heat_capacity() + + garbage_collect() + + reacting = 1 + /* + if(thermal_energy() > (PLASMA_BINDING_ENERGY*10)) + if(cached_gases["plasma"] && cached_gases["co2"] && cached_gases["plasma"][MOLES] > MINIMUM_HEAT_CAPACITY && cached_gases["co2"][MOLES] > MINIMUM_HEAT_CAPACITY && (cached_gases["plasma"][MOLES]+cached_gases["co2"][MOLES])/total_moles() >= FUSION_PURITY_THRESHOLD)//Fusion wont occur if the level of impurities is too high. + //fusion converts plasma and co2 to o2 and n2 (exothermic) + //world << "pre [temperature, [cached_gases["plasma"][MOLES]], [cached_gases["co2"][MOLES]] + var/old_heat_capacity = heat_capacity() + var/carbon_efficency = min(cached_gases["plasma"][MOLES]/cached_gases["co2"][MOLES],MAX_CARBON_EFFICENCY) + var/reaction_energy = thermal_energy() + var/moles_impurities = total_moles()-(cached_gases["plasma"][MOLES]+cached_gases["co2"][MOLES]) + + var/plasma_fused = (PLASMA_FUSED_COEFFICENT*carbon_efficency)*(temperature/PLASMA_BINDING_ENERGY) + var/carbon_catalyzed = (CARBON_CATALYST_COEFFICENT*carbon_efficency)*(temperature/PLASMA_BINDING_ENERGY) + var/oxygen_added = carbon_catalyzed + var/nitrogen_added = (plasma_fused-oxygen_added)-(thermal_energy()/PLASMA_BINDING_ENERGY) + + reaction_energy = max(reaction_energy+((carbon_efficency*cached_gases["plasma"][MOLES])/((moles_impurities/carbon_efficency)+2)*10)+((plasma_fused/(moles_impurities/carbon_efficency))*PLASMA_BINDING_ENERGY),0) + + assert_gases("o2", "n2") + + cached_gases["plasma"][MOLES] -= plasma_fused + cached_gases["co2"][MOLES] -= carbon_catalyzed + cached_gases["o2"][MOLES] += oxygen_added + cached_gases["n2"][MOLES] += nitrogen_added + + garbage_collect() + + if(reaction_energy > 0) + reacting = 1 + var/new_heat_capacity = heat_capacity() + if(new_heat_capacity > MINIMUM_HEAT_CAPACITY) + temperature = max(((temperature*old_heat_capacity + reaction_energy)/new_heat_capacity),TCMB) + //Prevents whatever mechanism is causing it to hit negative temperatures. + //world << "post [temperature], [cached_gases["plasma"][MOLES]], [cached_gases["co2"][MOLES]] + */ + if(holder) + if(cached_gases["freon"]) + if(cached_gases["freon"][MOLES] >= MOLES_PLASMA_VISIBLE) + if(holder.freon_gas_act()) + cached_gases["freon"][MOLES] -= MOLES_PLASMA_VISIBLE + + if(cached_gases["water_vapor"]) + if(cached_gases["water_vapor"][MOLES] >= MOLES_PLASMA_VISIBLE) + if(holder.water_vapor_gas_act()) + cached_gases["water_vapor"][MOLES] -= MOLES_PLASMA_VISIBLE + + fuel_burnt = 0 + if(temperature > FIRE_MINIMUM_TEMPERATURE_TO_EXIST) + //world << "pre [temperature], [cached_gases["o2"][MOLES]], [cached_gases["plasma"][MOLES]]" + if(fire()) + reacting = 1 + //world << "post [temperature], [cached_gases["o2"][MOLES]], [cached_gases["plasma"][MOLES]]" + + return reacting + +/datum/gas_mixture/proc/fire() + //combustion of plasma and volatile fuel, which both act as hydrocarbons (exothermic) + var/energy_released = 0 + var/old_heat_capacity = heat_capacity() + var/list/cached_gases = gases //this speeds things up because accessing datum vars is slow + + //General volatile gas burn + if(cached_gases["v_fuel"] && cached_gases["v_fuel"][MOLES]) + var/burned_fuel + + if(!cached_gases["o2"]) + burned_fuel = 0 + else if(cached_gases["o2"][MOLES] < cached_gases["v_fuel"][MOLES]) + burned_fuel = cached_gases["o2"][MOLES] + cached_gases["v_fuel"][MOLES] -= burned_fuel + cached_gases["o2"][MOLES] = 0 + else + burned_fuel = cached_gases["v_fuel"][MOLES] + cached_gases["o2"][MOLES] -= cached_gases["v_fuel"][MOLES] + + if(burned_fuel) + energy_released += FIRE_CARBON_ENERGY_RELEASED * burned_fuel + + assert_gas("co2") + cached_gases["co2"][MOLES] += burned_fuel + + fuel_burnt += burned_fuel + + //Handle plasma burning + if(cached_gases["plasma"] && cached_gases["plasma"][MOLES] > MINIMUM_HEAT_CAPACITY) + var/plasma_burn_rate = 0 + var/oxygen_burn_rate = 0 + //more plasma released at higher temperatures + var/temperature_scale + if(temperature > PLASMA_UPPER_TEMPERATURE) + temperature_scale = 1 + else + temperature_scale = (temperature-PLASMA_MINIMUM_BURN_TEMPERATURE)/(PLASMA_UPPER_TEMPERATURE-PLASMA_MINIMUM_BURN_TEMPERATURE) + if(temperature_scale > 0) + assert_gas("o2") + oxygen_burn_rate = OXYGEN_BURN_RATE_BASE - temperature_scale + if(cached_gases["o2"][MOLES] > cached_gases["plasma"][MOLES]*PLASMA_OXYGEN_FULLBURN) + plasma_burn_rate = (cached_gases["plasma"][MOLES]*temperature_scale)/PLASMA_BURN_RATE_DELTA + else + plasma_burn_rate = (temperature_scale*(cached_gases["o2"][MOLES]/PLASMA_OXYGEN_FULLBURN))/PLASMA_BURN_RATE_DELTA + if(plasma_burn_rate > MINIMUM_HEAT_CAPACITY) + assert_gas("co2") + cached_gases["plasma"][MOLES] = QUANTIZE(cached_gases["plasma"][MOLES] - plasma_burn_rate) + cached_gases["o2"][MOLES] = QUANTIZE(cached_gases["o2"][MOLES] - (plasma_burn_rate * oxygen_burn_rate)) + cached_gases["co2"][MOLES] += plasma_burn_rate + + energy_released += FIRE_PLASMA_ENERGY_RELEASED * (plasma_burn_rate) + + fuel_burnt += (plasma_burn_rate)*(1+oxygen_burn_rate) + garbage_collect() + + if(energy_released > 0) + var/new_heat_capacity = heat_capacity() + if(new_heat_capacity > MINIMUM_HEAT_CAPACITY) + temperature = (temperature*old_heat_capacity + energy_released)/new_heat_capacity + + return fuel_burnt + +/datum/gas_mixture/proc/archive() + //Update archived versions of variables + //Returns: 1 in all cases + +/datum/gas_mixture/proc/merge(datum/gas_mixture/giver) + //Merges all air from giver into self. Deletes giver. + //Returns: 1 if we are mutable, 0 otherwise + +/datum/gas_mixture/proc/remove(amount) + //Proportionally removes amount of gas from the gas_mixture + //Returns: gas_mixture with the gases removed + +/datum/gas_mixture/proc/remove_ratio(ratio) + //Proportionally removes amount of gas from the gas_mixture + //Returns: gas_mixture with the gases removed + +/datum/gas_mixture/proc/copy() + //Creates new, identical gas mixture + //Returns: duplicate gas mixture + +/datum/gas_mixture/proc/copy_from(datum/gas_mixture/sample) + //Copies variables from sample + //Returns: 1 if we are mutable, 0 otherwise + +/datum/gas_mixture/proc/copy_from_turf(turf/model) + //Copies all gas info from the turf into the gas list along with temperature + //Returns: 1 if we are mutable, 0 otherwise + +/datum/gas_mixture/proc/parse_gas_string(gas_string) + //Copies variables from a particularly formatted string. + //Returns: 1 if we are mutable, 0 otherwise + +/datum/gas_mixture/proc/share(datum/gas_mixture/sharer) + //Performs air sharing calculations between two gas_mixtures assuming only 1 boundary length + //Returns: amount of gas exchanged (+ if sharer received) + +/datum/gas_mixture/proc/after_share(datum/gas_mixture/sharer) + //called on share's sharer to let it know it just got some gases + +/datum/gas_mixture/proc/temperature_share(datum/gas_mixture/sharer, conduction_coefficient) + //Performs temperature sharing calculations (via conduction) between two gas_mixtures assuming only 1 boundary length + //Returns: new temperature of the sharer + +/datum/gas_mixture/proc/compare(datum/gas_mixture/sample) + //Compares sample to self to see if within acceptable ranges that group processing may be enabled + //Returns: a string indicating what check failed, or "" if check passes + +/datum/gas_mixture/archive() + var/list/cached_gases = gases + + temperature_archived = temperature + for(var/id in cached_gases) + cached_gases[id][ARCHIVE] = cached_gases[id][MOLES] + + return 1 + +/datum/gas_mixture/merge(datum/gas_mixture/giver) + if(!giver) + return 0 + + //heat transfer + if(abs(temperature - giver.temperature) > MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER) + var/self_heat_capacity = heat_capacity() + var/giver_heat_capacity = giver.heat_capacity() + var/combined_heat_capacity = giver_heat_capacity + self_heat_capacity + if(combined_heat_capacity) + temperature = (giver.temperature * giver_heat_capacity + temperature * self_heat_capacity) / combined_heat_capacity + + var/list/cached_gases = gases //accessing datum vars is slower than proc vars + var/list/giver_gases = giver.gases + //gas transfer + for(var/giver_id in giver_gases) + assert_gas(giver_id) + cached_gases[giver_id][MOLES] += giver_gases[giver_id][MOLES] + + return 1 + +/datum/gas_mixture/remove(amount) + var/sum = total_moles() + amount = min(amount, sum) //Can not take more air than tile has! + if(amount <= 0) + return null + var/list/cached_gases = gases + var/datum/gas_mixture/removed = new + var/list/removed_gases = removed.gases //accessing datum vars is slower than proc vars + + removed.temperature = temperature + for(var/id in cached_gases) + removed.add_gas(id) + removed_gases[id][MOLES] = QUANTIZE((cached_gases[id][MOLES] / sum) * amount) + cached_gases[id][MOLES] -= removed_gases[id][MOLES] + garbage_collect() + + return removed + +/datum/gas_mixture/remove_ratio(ratio) + if(ratio <= 0) + return null + ratio = min(ratio, 1) + + var/list/cached_gases = gases + var/datum/gas_mixture/removed = new + var/list/removed_gases = removed.gases //accessing datum vars is slower than proc vars + + removed.temperature = temperature + for(var/id in cached_gases) + removed.add_gas(id) + removed_gases[id][MOLES] = QUANTIZE(cached_gases[id][MOLES] * ratio) + cached_gases[id][MOLES] -= removed_gases[id][MOLES] + + garbage_collect() + + return removed + +/datum/gas_mixture/copy() + var/list/cached_gases = gases + var/datum/gas_mixture/copy = new + var/list/copy_gases = copy.gases + + copy.temperature = temperature + for(var/id in cached_gases) + copy.add_gas(id) + copy_gases[id][MOLES] = cached_gases[id][MOLES] + + return copy + +/datum/gas_mixture/copy_from(datum/gas_mixture/sample) + var/list/cached_gases = gases //accessing datum vars is slower than proc vars + var/list/sample_gases = sample.gases + + temperature = sample.temperature + for(var/id in sample_gases) + assert_gas(id) + cached_gases[id][MOLES] = sample_gases[id][MOLES] + + //remove all gases not in the sample + cached_gases &= sample_gases + + return 1 + +/datum/gas_mixture/copy_from_turf(turf/model) + parse_gas_string(model.initial_gas_mix) + + //acounts for changes in temperature + var/turf/model_parent = model.parent_type + if(model.temperature != initial(model.temperature) || model.temperature != initial(model_parent.temperature)) + temperature = model.temperature + + return 1 + +/datum/gas_mixture/parse_gas_string(gas_string) + var/list/gases = src.gases + var/list/gas = params2list(gas_string) + if(gas["TEMP"]) + temperature = text2num(gas["TEMP"]) + gas -= "TEMP" + gases.Cut() + for(var/id in gas) + add_gas(id) + gases[id][MOLES] = text2num(gas[id]) + return 1 + +/datum/gas_mixture/share(datum/gas_mixture/sharer, atmos_adjacent_turfs = 4) + if(!sharer) + return 0 + + var/list/cached_gases = gases + var/list/sharer_gases = sharer.gases + + var/temperature_delta = temperature_archived - sharer.temperature_archived + var/abs_temperature_delta = abs(temperature_delta) + + var/old_self_heat_capacity = 0 + var/old_sharer_heat_capacity = 0 + if(abs_temperature_delta > MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER) + old_self_heat_capacity = heat_capacity() + old_sharer_heat_capacity = sharer.heat_capacity() + + var/heat_capacity_self_to_sharer = 0 //heat capacity of the moles transferred from us to the sharer + var/heat_capacity_sharer_to_self = 0 //heat capacity of the moles transferred from the sharer to us + + var/moved_moles = 0 + var/abs_moved_moles = 0 + + //GAS TRANSFER + for(var/id in sharer_gases - cached_gases) // create gases not in our cache + add_gas(id) + for(var/id in cached_gases) // transfer gases + if(!sharer_gases[id]) //checking here prevents an uneeded proc call if the check fails. + sharer.add_gas(id) + + var/gas = cached_gases[id] + var/sharergas = sharer_gases[id] + + var/delta = QUANTIZE(gas[ARCHIVE] - sharergas[ARCHIVE])/(atmos_adjacent_turfs+1) //the amount of gas that gets moved between the mixtures + + if(delta && abs_temperature_delta > MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER) + var/gas_heat_capacity = delta * gas[GAS_META][META_GAS_SPECIFIC_HEAT] + if(delta > 0) + heat_capacity_self_to_sharer += gas_heat_capacity + else + heat_capacity_sharer_to_self -= gas_heat_capacity //subtract here instead of adding the absolute value because we know that delta is negative. saves a proc call. + + gas[MOLES] -= delta + sharergas[MOLES] += delta + moved_moles += delta + abs_moved_moles += abs(delta) + + last_share = abs_moved_moles + + //THERMAL ENERGY TRANSFER + if(abs_temperature_delta > MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER) + var/new_self_heat_capacity = old_self_heat_capacity + heat_capacity_sharer_to_self - heat_capacity_self_to_sharer + var/new_sharer_heat_capacity = old_sharer_heat_capacity + heat_capacity_self_to_sharer - heat_capacity_sharer_to_self + + //transfer of thermal energy (via changed heat capacity) between self and sharer + if(new_self_heat_capacity > MINIMUM_HEAT_CAPACITY) + temperature = (old_self_heat_capacity*temperature - heat_capacity_self_to_sharer*temperature_archived + heat_capacity_sharer_to_self*sharer.temperature_archived)/new_self_heat_capacity + + if(new_sharer_heat_capacity > MINIMUM_HEAT_CAPACITY) + sharer.temperature = (old_sharer_heat_capacity*sharer.temperature-heat_capacity_sharer_to_self*sharer.temperature_archived + heat_capacity_self_to_sharer*temperature_archived)/new_sharer_heat_capacity + //thermal energy of the system (self and sharer) is unchanged + + if(abs(old_sharer_heat_capacity) > MINIMUM_HEAT_CAPACITY) + if(abs(new_sharer_heat_capacity/old_sharer_heat_capacity - 1) < 0.10) // <10% change in sharer heat capacity + temperature_share(sharer, OPEN_HEAT_TRANSFER_COEFFICIENT) + + var/list/unique_gases = cached_gases ^ sharer_gases + if(unique_gases.len) //if all gases were present in both mixtures, we know that no gases are 0 + garbage_collect(cached_gases - sharer_gases) //any gases the sharer had, we are guaranteed to have. gases that it didn't have we are not. + sharer.garbage_collect(sharer_gases - cached_gases) //the reverse is equally true + sharer.after_share(src, atmos_adjacent_turfs) + if(temperature_delta > MINIMUM_TEMPERATURE_TO_MOVE || abs(moved_moles) > MINIMUM_MOLES_DELTA_TO_MOVE) + var/delta_pressure = temperature_archived*(total_moles() + moved_moles) - sharer.temperature_archived*(sharer.total_moles() - moved_moles) + return delta_pressure * R_IDEAL_GAS_EQUATION / volume + +/datum/gas_mixture/after_share(datum/gas_mixture/sharer, atmos_adjacent_turfs = 4) + return + +/datum/gas_mixture/temperature_share(datum/gas_mixture/sharer, conduction_coefficient, sharer_temperature, sharer_heat_capacity) + //transfer of thermal energy (via conduction) between self and sharer + if(sharer) + sharer_temperature = sharer.temperature_archived + var/temperature_delta = temperature_archived - sharer_temperature + if(abs(temperature_delta) > MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER) + var/self_heat_capacity = heat_capacity_archived() + sharer_heat_capacity = sharer_heat_capacity || sharer.heat_capacity_archived() + + if((sharer_heat_capacity > MINIMUM_HEAT_CAPACITY) && (self_heat_capacity > MINIMUM_HEAT_CAPACITY)) + var/heat = conduction_coefficient*temperature_delta* \ + (self_heat_capacity*sharer_heat_capacity/(self_heat_capacity+sharer_heat_capacity)) + + temperature = max(temperature - heat/self_heat_capacity, TCMB) + sharer_temperature = max(sharer_temperature + heat/sharer_heat_capacity, TCMB) + if(sharer) + sharer.temperature = sharer_temperature + return sharer_temperature + //thermal energy of the system (self and sharer) is unchanged + +/datum/gas_mixture/compare(datum/gas_mixture/sample, datatype = MOLES, adjacents = 0) + var/list/sample_gases = sample.gases //accessing datum vars is slower than proc vars + var/list/cached_gases = gases + + for(var/id in cached_gases | sample_gases) // compare gases from either mixture + var/gas_moles = cached_gases[id] ? cached_gases[id][datatype] : 0 + var/sample_moles = sample_gases[id] ? sample_gases[id][datatype] : 0 + var/delta = abs(gas_moles - sample_moles)/(adjacents+1) + if(delta > MINIMUM_MOLES_DELTA_TO_MOVE && \ + delta > gas_moles * MINIMUM_AIR_RATIO_TO_MOVE) + return id + + if(total_moles() > MINIMUM_MOLES_DELTA_TO_MOVE) + var/temp + var/sample_temp + + switch(datatype) + if(MOLES) + temp = temperature + sample_temp = sample.temperature + if(ARCHIVE) + temp = temperature_archived + sample_temp = sample.temperature_archived + + var/temperature_delta = abs(temp - sample_temp) + if((temperature_delta > MINIMUM_TEMPERATURE_DELTA_TO_SUSPEND) && \ + temperature_delta > MINIMUM_TEMPERATURE_DELTA_TO_SUSPEND * temp) + return "temp" + + return "" + +//Takes the amount of the gas you want to PP as an argument +//So I don't have to do some hacky switches/defines/magic strings +//eg: +//Tox_PP = get_partial_pressure(gas_mixture.toxins) +//O2_PP = get_partial_pressure(gas_mixture.oxygen) +//Does handle trace gases! +/datum/gas_mixture/proc/get_breath_partial_pressure(gas_pressure) + return (gas_pressure * R_IDEAL_GAS_EQUATION * temperature) / BREATH_VOLUME +//inverse +/datum/gas_mixture/proc/get_true_breath_pressure(partial_pressure) + return (partial_pressure * BREATH_VOLUME) / (R_IDEAL_GAS_EQUATION * temperature) + +//Mathematical proofs: +/* +get_breath_partial_pressure(gas_pp) --> gas_pp/total_moles()*breath_pp = pp +get_true_breath_pressure(pp) --> gas_pp = pp/breath_pp*total_moles() + +10/20*5 = 2.5 +10 = 2.5/5*20 +*/ diff --git a/code/modules/atmospherics/gasmixtures/gas_types.dm b/code/modules/atmospherics/gasmixtures/gas_types.dm new file mode 100644 index 0000000..439026c --- /dev/null +++ b/code/modules/atmospherics/gasmixtures/gas_types.dm @@ -0,0 +1,98 @@ +var/list/hardcoded_gases = list("o2","n2","co2","plasma") //the main four gases, which were at one time hardcoded + +/proc/meta_gas_list() + . = new /list + for(var/gas_path in subtypesof(/datum/gas)) + var/list/gas_info = new(4) + var/datum/gas/gas = gas_path + + gas_info[META_GAS_SPECIFIC_HEAT] = initial(gas.specific_heat) + gas_info[META_GAS_NAME] = initial(gas.name) + gas_info[META_GAS_MOLES_VISIBLE] = initial(gas.moles_visible) + if(initial(gas.moles_visible) != null) + gas_info[META_GAS_OVERLAY] = new /obj/effect/overlay/gas(initial(gas.gas_overlay)) + .[initial(gas.id)] = gas_info + +/*||||||||||||||/----------\||||||||||||||*\ +||||||||||||||||[GAS DATUMS]|||||||||||||||| +||||||||||||||||\__________/|||||||||||||||| +||||These should never be instantiated. |||| +||||They exist only to make it easier |||| +||||to add a new gas. They are accessed |||| +||||only by meta_gas_list(). |||| +\*||||||||||||||||||||||||||||||||||||||||*/ + +/datum/gas + var/id = "" + var/specific_heat = 0 + var/name = "" + var/gas_overlay = "" //icon_state in icons/effects/tile_effects.dmi + var/moles_visible = null + +/datum/gas/oxygen + id = "o2" + specific_heat = 20 + name = "Oxygen" + +/datum/gas/nitrogen + id = "n2" + specific_heat = 20 + name = "Nitrogen" + +/datum/gas/carbon_dioxide //what the fuck is this? + id = "co2" + specific_heat = 30 + name = "Carbon Dioxide" + +/datum/gas/plasma + id = "plasma" + specific_heat = 200 + name = "Plasma" + gas_overlay = "plasma" + moles_visible = MOLES_PLASMA_VISIBLE + +/datum/gas/water_vapor + id = "water_vapor" + specific_heat = 40 + name = "Water Vapor" + gas_overlay = "water_vapor" + moles_visible = MOLES_PLASMA_VISIBLE + +/datum/gas/freon + id = "freon" + specific_heat = 2000 + name = "Freon" + gas_overlay = "freon" + moles_visible = MOLES_PLASMA_VISIBLE + +/datum/gas/nitrous_oxide + id = "n2o" + specific_heat = 40 + name = "Nitrous Oxide" + gas_overlay = "nitrous_oxide" + moles_visible = 1 + +/datum/gas/oxygen_agent_b + id = "agent_b" + specific_heat = 300 + name = "Oxygen Agent B" + +/datum/gas/volatile_fuel + id = "v_fuel" + specific_heat = 30 + name = "Volatile Fuel" + +/datum/gas/bz + id = "bz" + specific_heat = 20 + name = "BZ" + +/obj/effect/overlay/gas/ + icon = 'icons/effects/tile_effects.dmi' + mouse_opacity = 0 + layer = FLY_LAYER + appearance_flags = TILE_BOUND + +/obj/effect/overlay/gas/New(state) + . = ..() + icon_state = state \ No newline at end of file diff --git a/code/modules/atmospherics/gasmixtures/space_mixture.dm b/code/modules/atmospherics/gasmixtures/space_mixture.dm new file mode 100644 index 0000000..5134087 --- /dev/null +++ b/code/modules/atmospherics/gasmixtures/space_mixture.dm @@ -0,0 +1,61 @@ +//"immutable" gas mixture used for space calculations +//it can be changed, but any changes will ultimately be undone before they can have any effect + +/datum/gas_mixture/space + +/datum/gas_mixture/space/New() + ..() + temperature = TCMB + temperature_archived = TCMB + +/datum/gas_mixture/space/garbage_collect() + gases.Cut() //clever way of ensuring we always are empty. + +/datum/gas_mixture/space/archive() + return 1 //nothing changes, so we do nothing and the archive is successful + +/datum/gas_mixture/space/merge() + return 0 //we're immutable. + +/datum/gas_mixture/space/heat_capacity() + . = 7000 + +/datum/gas_mixture/space/heat_capacity_archived() + . = heat_capacity() + +/datum/gas_mixture/space/remove() + return copy() //we're immutable, so we can just return a copy. + +/datum/gas_mixture/space/remove_ratio() + return copy() //we're immutable, so we can just return a copy. + +/datum/gas_mixture/space/share(datum/gas_mixture/sharer, atmos_adjacent_turfs = 4) + . = ..(sharer, 0) + temperature = TCMB + gases.Cut() + +/datum/gas_mixture/space/after_share() + temperature = TCMB + gases.Cut() + +/datum/gas_mixture/space/react() + return 0 //we're immutable. + +/datum/gas_mixture/space/fire() + return 0 //we're immutable. + +/datum/gas_mixture/space/copy() + return new /datum/gas_mixture/space //we're immutable, so we can just return a new instance. + +/datum/gas_mixture/space/copy_from() + return 0 //we're immutable. + +/datum/gas_mixture/space/copy_from_turf() + return 0 //we're immutable. + +/datum/gas_mixture/space/parse_gas_string() + return 0 //we're immutable. + +/datum/gas_mixture/space/temperature_share(datum/gas_mixture/sharer, conduction_coefficient, sharer_temperature, sharer_heat_capacity) + . = ..() + temperature = TCMB diff --git a/code/modules/atmospherics/machinery/airalarm.dm b/code/modules/atmospherics/machinery/airalarm.dm new file mode 100644 index 0000000..17328a6 --- /dev/null +++ b/code/modules/atmospherics/machinery/airalarm.dm @@ -0,0 +1,733 @@ +/datum/tlv + var/min2 + var/min1 + var/max1 + var/max2 + +/datum/tlv/New(min2 as num, min1 as num, max1 as num, max2 as num) + src.min2 = min2 + src.min1 = min1 + src.max1 = max1 + src.max2 = max2 + +/datum/tlv/proc/get_danger_level(val as num) + if(max2 != -1 && val >= max2) + return 2 + if(min2 != -1 && val <= min2) + return 2 + if(max1 != -1 && val >= max1) + return 1 + if(min1 != -1 && val <= min1) + return 1 + return 0 + +/obj/item/weapon/electronics/airalarm + name = "air alarm electronics" + icon_state = "airalarm_electronics" + +/obj/item/wallframe/airalarm + name = "air alarm frame" + desc = "Used for building Air Alarms" + icon = 'icons/obj/monitors.dmi' + icon_state = "alarm_bitem" + result_path = /obj/machinery/airalarm + +#define AALARM_MODE_SCRUBBING 1 +#define AALARM_MODE_VENTING 2 //makes draught +#define AALARM_MODE_PANIC 3 //like siphon, but stronger (enables widenet) +#define AALARM_MODE_REPLACEMENT 4 //sucks off all air, then refill and swithes to scrubbing +#define AALARM_MODE_OFF 5 +#define AALARM_MODE_FLOOD 6 //Emagged mode; turns off scrubbers and pressure checks on vents +#define AALARM_MODE_SIPHON 7 //Scrubbers suck air +#define AALARM_MODE_CONTAMINATED 8 //Turns on all filtering and widenet scrubbing. +#define AALARM_MODE_REFILL 9 //just like normal, but with triple the air output + +#define AALARM_REPORT_TIMEOUT 100 + +/obj/machinery/airalarm + name = "air alarm" + desc = "A machine that monitors atmosphere levels. Goes off if the area is dangerous." + icon = 'icons/obj/monitors.dmi' + icon_state = "alarm0" + anchored = 1 + use_power = 1 + idle_power_usage = 4 + active_power_usage = 8 + power_channel = ENVIRON + req_access = list(access_atmospherics) + obj_integrity = 250 + max_integrity = 250 + integrity_failure = 80 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 100, bomb = 0, bio = 100, rad = 100, fire = 90, acid = 30) + resistance_flags = 0 + + var/danger_level = 0 + var/mode = AALARM_MODE_SCRUBBING + + var/locked = 1 + var/aidisabled = 0 + var/shorted = 0 + var/buildstage = 2 // 2 = complete, 1 = no wires, 0 = circuit gone + + var/frequency = 1439 + var/alarm_frequency = 1437 + var/datum/radio_frequency/radio_connection + + var/list/TLV = list( // Breathable air. + "pressure" = new/datum/tlv(ONE_ATMOSPHERE * 0.80, ONE_ATMOSPHERE* 0.90, ONE_ATMOSPHERE * 1.10, ONE_ATMOSPHERE * 1.20), // kPa + "temperature" = new/datum/tlv(T0C, T0C+10, T0C+40, T0C+66), // K + "o2" = new/datum/tlv(16, 19, 135, 140), // Partial pressure, kpa + "n2" = new/datum/tlv(-1, -1, 1000, 1000), // Partial pressure, kpa + "co2" = new/datum/tlv(-1, -1, 5, 10), // Partial pressure, kpa + "plasma" = new/datum/tlv(-1, -1, 0.2, 0.5), // Partial pressure, kpa + "n2o" = new/datum/tlv(-1, -1, 0.2, 0.5), // Partial pressure, kpa + "bz" = new/datum/tlv(-1, -1, 0.2, 0.5), + "freon" = new/datum/tlv(-1, -1, 0.2, 0.5), + "water_vapor" = new/datum/tlv(-1, -1, 0.2, 0.5) + ) + +/obj/machinery/airalarm/server // No checks here. + TLV = list( + "pressure" = new/datum/tlv(-1, -1, -1, -1), + "temperature" = new/datum/tlv(-1, -1, -1, -1), + "o2" = new/datum/tlv(-1, -1, -1, -1), + "n2" = new/datum/tlv(-1, -1, -1, -1), + "co2" = new/datum/tlv(-1, -1, -1, -1), + "plasma" = new/datum/tlv(-1, -1, -1, -1), + "n2o" = new/datum/tlv(-1, -1, -1, -1), + "bz" = new/datum/tlv(-1, -1, -1, -1), + "freon" = new/datum/tlv(-1, -1, -1, -1), + "water_vapor" = new/datum/tlv(-1, -1, -1, -1) + ) + +/obj/machinery/airalarm/kitchen_cold_room // Copypasta: to check temperatures. + TLV = list( + "pressure" = new/datum/tlv(ONE_ATMOSPHERE * 0.80, ONE_ATMOSPHERE* 0.90, ONE_ATMOSPHERE * 1.10, ONE_ATMOSPHERE * 1.20), // kPa + "temperature" = new/datum/tlv(200,210,273.15,283.15), // K + "o2" = new/datum/tlv(16, 19, 135, 140), // Partial pressure, kpa + "n2" = new/datum/tlv(-1, -1, 1000, 1000), // Partial pressure, kpa + "co2" = new/datum/tlv(-1, -1, 5, 10), // Partial pressure, kpa + "plasma" = new/datum/tlv(-1, -1, 0.2, 0.5), // Partial pressure, kpa + "n2o" = new/datum/tlv(-1, -1, 0.2, 0.5), // Partial pressure, kpa + "bz" = new/datum/tlv(-1, -1, 0.2, 0.5), // Partial pressure, kpa + "freon" = new/datum/tlv(-1, -1, 0.2, 0.5), // Partial pressure, kpa + "water_vapor" = new/datum/tlv(-1, -1, 0.2, 0.5) + ) + +//all air alarms in area are connected via magic +/area + var/list/air_vent_names = list() + var/list/air_scrub_names = list() + var/list/air_vent_info = list() + var/list/air_scrub_info = list() + +/obj/machinery/airalarm/New(loc, ndir, nbuild) + ..() + wires = new /datum/wires/airalarm(src) + if(ndir) + setDir(ndir) + + if(nbuild) + buildstage = 0 + panel_open = 1 + pixel_x = (dir & 3)? 0 : (dir == 4 ? -24 : 24) + pixel_y = (dir & 3)? (dir == 1 ? -24 : 24) : 0 + + var/area/A = get_area_master(src) + if(name == initial(name)) + name = "[A.name] Air Alarm" + + update_icon() + if(ticker && ticker.current_state == 3)//if the game is running + initialize() + +/obj/machinery/airalarm/Destroy() + if(SSradio) + SSradio.remove_object(src, frequency) + qdel(wires) + wires = null + return ..() + +/obj/machinery/airalarm/initialize() + set_frequency(frequency) + +/obj/machinery/airalarm/ui_status(mob/user) + if(user.has_unlimited_silicon_privilege && aidisabled) + user << "AI control has been disabled." + else if(!shorted) + return ..() + return UI_CLOSE + +/obj/machinery/airalarm/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ + datum/tgui/master_ui = null, datum/ui_state/state = default_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "airalarm", name, 440, 650, master_ui, state) + ui.open() + +/obj/machinery/airalarm/ui_data(mob/user) + var/data = list( + "locked" = locked, + "siliconUser" = user.has_unlimited_silicon_privilege, + "emagged" = emagged, + "danger_level" = danger_level, + ) + + var/area/A = get_area(src) + data["atmos_alarm"] = A.atmosalm + data["fire_alarm"] = A.fire + + var/turf/T = get_turf(src) + var/datum/gas_mixture/environment = T.return_air() + var/datum/tlv/cur_tlv + + data["environment_data"] = list() + var/pressure = environment.return_pressure() + cur_tlv = TLV["pressure"] + data["environment_data"] += list(list( + "name" = "Pressure", + "value" = pressure, + "unit" = "kPa", + "danger_level" = cur_tlv.get_danger_level(pressure) + )) + var/temperature = environment.temperature + cur_tlv = TLV["temperature"] + data["environment_data"] += list(list( + "name" = "Temperature", + "value" = temperature, + "unit" = "K ([round(temperature - T0C, 0.1)]C)", + "danger_level" = cur_tlv.get_danger_level(temperature) + )) + var/total_moles = environment.total_moles() + var/partial_pressure = R_IDEAL_GAS_EQUATION * environment.temperature / environment.volume + for(var/gas_id in environment.gases) + if(!(gas_id in TLV)) // We're not interested in this gas, it seems. + continue + cur_tlv = TLV[gas_id] + data["environment_data"] += list(list( + "name" = environment.gases[gas_id][GAS_META][META_GAS_NAME], + "value" = environment.gases[gas_id][MOLES] / total_moles * 100, + "unit" = "%", + "danger_level" = cur_tlv.get_danger_level(environment.gases[gas_id][MOLES] * partial_pressure) + )) + + if(!locked || user.has_unlimited_silicon_privilege) + data["vents"] = list() + for(var/id_tag in A.air_vent_names) + var/long_name = A.air_vent_names[id_tag] + var/list/info = A.air_vent_info[id_tag] + if(!info || info["frequency"] != frequency) + continue + data["vents"] += list(list( + "id_tag" = id_tag, + "long_name" = sanitize(long_name), + "power" = info["power"], + "checks" = info["checks"], + "excheck" = info["checks"]&1, + "incheck" = info["checks"]&2, + "direction" = info["direction"], + "external" = info["external"], + "extdefault"= (info["external"] == ONE_ATMOSPHERE) + )) + data["scrubbers"] = list() + for(var/id_tag in A.air_scrub_names) + var/long_name = A.air_scrub_names[id_tag] + var/list/info = A.air_scrub_info[id_tag] + if(!info || info["frequency"] != frequency) + continue + data["scrubbers"] += list(list( + "id_tag" = id_tag, + "long_name" = sanitize(long_name), + "power" = info["power"], + "scrubbing" = info["scrubbing"], + "widenet" = info["widenet"], + "filter_co2" = info["filter_co2"], + "filter_toxins" = info["filter_toxins"], + "filter_n2o" = info["filter_n2o"], + "filter_bz" = info["filter_bz"], + "filter_freon" = info["filter_freon"], + "filter_water_vapor" = info["filter_water_vapor"] + )) + data["mode"] = mode + data["modes"] = list() + data["modes"] += list(list("name" = "Filtering - Scrubs out contaminants", "mode" = AALARM_MODE_SCRUBBING, "selected" = mode == AALARM_MODE_SCRUBBING, "danger" = 0)) + data["modes"] += list(list("name" = "Contaminated - Scrubs out ALL contaminants quickly","mode" = AALARM_MODE_CONTAMINATED, "selected" = mode == AALARM_MODE_CONTAMINATED, "danger" = 0)) + data["modes"] += list(list("name" = "Draught - Siphons out air while replacing", "mode" = AALARM_MODE_VENTING, "selected" = mode == AALARM_MODE_VENTING, "danger" = 0)) + data["modes"] += list(list("name" = "Refill - Triple vent output", "mode" = AALARM_MODE_REFILL, "selected" = mode == AALARM_MODE_REFILL, "danger" = 0)) + data["modes"] += list(list("name" = "Cycle - Siphons air before replacing", "mode" = AALARM_MODE_REPLACEMENT, "selected" = mode == AALARM_MODE_REPLACEMENT, "danger" = 1)) + data["modes"] += list(list("name" = "Siphon - Siphons air out of the room", "mode" = AALARM_MODE_SIPHON, "selected" = mode == AALARM_MODE_SIPHON, "danger" = 1)) + data["modes"] += list(list("name" = "Panic Siphon - Siphons air out of the room quickly","mode" = AALARM_MODE_PANIC, "selected" = mode == AALARM_MODE_PANIC, "danger" = 1)) + data["modes"] += list(list("name" = "Off - Shuts off vents and scrubbers", "mode" = AALARM_MODE_OFF, "selected" = mode == AALARM_MODE_OFF, "danger" = 0)) + if(emagged) + data["modes"] += list(list("name" = "Flood - Shuts off scrubbers and opens vents", "mode" = AALARM_MODE_FLOOD, "selected" = mode == AALARM_MODE_FLOOD, "danger" = 1)) + + var/datum/tlv/selected + var/list/thresholds = list() + + selected = TLV["pressure"] + thresholds += list(list("name" = "Pressure", "settings" = list())) + thresholds[thresholds.len]["settings"] += list(list("env" = "pressure", "val" = "min2", "selected" = selected.min2)) + thresholds[thresholds.len]["settings"] += list(list("env" = "pressure", "val" = "min1", "selected" = selected.min1)) + thresholds[thresholds.len]["settings"] += list(list("env" = "pressure", "val" = "max1", "selected" = selected.max1)) + thresholds[thresholds.len]["settings"] += list(list("env" = "pressure", "val" = "max2", "selected" = selected.max2)) + + selected = TLV["temperature"] + thresholds += list(list("name" = "Temperature", "settings" = list())) + thresholds[thresholds.len]["settings"] += list(list("env" = "temperature", "val" = "min2", "selected" = selected.min2)) + thresholds[thresholds.len]["settings"] += list(list("env" = "temperature", "val" = "min1", "selected" = selected.min1)) + thresholds[thresholds.len]["settings"] += list(list("env" = "temperature", "val" = "max1", "selected" = selected.max1)) + thresholds[thresholds.len]["settings"] += list(list("env" = "temperature", "val" = "max2", "selected" = selected.max2)) + + for(var/gas_id in meta_gas_info) + if(!(gas_id in TLV)) // We're not interested in this gas, it seems. + continue + selected = TLV[gas_id] + thresholds += list(list("name" = meta_gas_info[gas_id][META_GAS_NAME], "settings" = list())) + thresholds[thresholds.len]["settings"] += list(list("env" = gas_id, "val" = "min2", "selected" = selected.min2)) + thresholds[thresholds.len]["settings"] += list(list("env" = gas_id, "val" = "min1", "selected" = selected.min1)) + thresholds[thresholds.len]["settings"] += list(list("env" = gas_id, "val" = "max1", "selected" = selected.max1)) + thresholds[thresholds.len]["settings"] += list(list("env" = gas_id, "val" = "max2", "selected" = selected.max2)) + + data["thresholds"] = thresholds + return data + +/obj/machinery/airalarm/ui_act(action, params) + if(..() || buildstage != 2) + return + if((locked && !usr.has_unlimited_silicon_privilege) || (usr.has_unlimited_silicon_privilege && aidisabled)) + return + var/device_id = params["id_tag"] + switch(action) + if("lock") + if(usr.has_unlimited_silicon_privilege && !wires.is_cut(WIRE_IDSCAN)) + locked = !locked + . = TRUE + if("power", "co2_scrub", "tox_scrub", "n2o_scrub", "bz_scrub", "freon_scrub","water_vapor_scrub", "widenet", "scrubbing") + send_signal(device_id, list("[action]" = text2num(params["val"]))) + . = TRUE + if("excheck") + send_signal(device_id, list("checks" = text2num(params["val"])^1)) + . = TRUE + if("incheck") + send_signal(device_id, list("checks" = text2num(params["val"])^2)) + . = TRUE + if("set_external_pressure") + var/area/A = get_area_master(src) + var/target = input("New target pressure:", name, A.air_vent_info[device_id]["external"]) as num|null + if(!isnull(target) && !..()) + send_signal(device_id, list("set_external_pressure" = target)) + . = TRUE + if("reset_external_pressure") + send_signal(device_id, list("reset_external_pressure")) + . = TRUE + if("threshold") + var/env = params["env"] + var/name = params["var"] + var/datum/tlv/tlv = TLV[env] + if(isnull(tlv)) + return + var/value = input("New [name] for [env]:", name, tlv.vars[name]) as num|null + if(!isnull(value) && !..()) + if(value < 0) + tlv.vars[name] = -1 + else + tlv.vars[name] = round(value, 0.01) + . = TRUE + if("mode") + mode = text2num(params["mode"]) + apply_mode() + . = TRUE + if("alarm") + var/area/A = get_area_master(src) + if(A.atmosalert(2, src)) + post_alert(2) + . = TRUE + if("reset") + var/area/A = get_area_master(src) + if(A.atmosalert(0, src)) + post_alert(0) + . = TRUE + update_icon() + + +/obj/machinery/airalarm/proc/reset(wire) + switch(wire) + if(WIRE_POWER) + if(!wires.is_cut(WIRE_POWER)) + shorted = FALSE + update_icon() + if(WIRE_AI) + if(!wires.is_cut(WIRE_AI)) + aidisabled = FALSE + + +/obj/machinery/airalarm/proc/shock(mob/user, prb) + if((stat & (NOPOWER))) // unpowered, no shock + return 0 + if(!prob(prb)) + return 0 //you lucked out, no shock for you + var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread + s.set_up(5, 1, src) + s.start() //sparks always. + if (electrocute_mob(user, get_area(src), src)) + return 1 + else + return 0 + +/obj/machinery/airalarm/proc/refresh_all() + var/area/A = get_area_master(src) + for(var/id_tag in A.air_vent_names) + var/list/I = A.air_vent_info[id_tag] + if(I && I["timestamp"] + AALARM_REPORT_TIMEOUT / 2 > world.time) + continue + send_signal(id_tag, list("status")) + for(var/id_tag in A.air_scrub_names) + var/list/I = A.air_scrub_info[id_tag] + if(I && I["timestamp"] + AALARM_REPORT_TIMEOUT / 2 > world.time) + continue + send_signal(id_tag, list("status")) + +/obj/machinery/airalarm/proc/set_frequency(new_frequency) + SSradio.remove_object(src, frequency) + frequency = new_frequency + radio_connection = SSradio.add_object(src, frequency, RADIO_TO_AIRALARM) + +/obj/machinery/airalarm/proc/send_signal(target, list/command)//sends signal 'command' to 'target'. Returns 0 if no radio connection, 1 otherwise + if(!radio_connection) + return 0 + + var/datum/signal/signal = new + signal.transmission_method = 1 //radio signal + signal.source = src + + signal.data = command + signal.data["tag"] = target + signal.data["sigtype"] = "command" + + radio_connection.post_signal(src, signal, RADIO_FROM_AIRALARM) +// world << text("Signal [] Broadcasted to []", command, target) + + return 1 + +/obj/machinery/airalarm/proc/apply_mode() + var/area/A = get_area_master(src) + switch(mode) + if(AALARM_MODE_SCRUBBING) + for(var/device_id in A.air_scrub_names) + send_signal(device_id, list( + "power" = 1, + "co2_scrub" = 1, + "tox_scrub" = 0, + "n2o_scrub" = 0, + "bz_scrub" = 0, + "freon_scrub"= 0, + "water_vapor_scrub"= 0, + "scrubbing" = 1, + "widenet" = 0, + )) + for(var/device_id in A.air_vent_names) + send_signal(device_id, list( + "power" = 1, + "checks" = 1, + "set_external_pressure" = ONE_ATMOSPHERE + )) + if(AALARM_MODE_CONTAMINATED) + for(var/device_id in A.air_scrub_names) + send_signal(device_id, list( + "power" = 1, + "co2_scrub" = 1, + "tox_scrub" = 1, + "n2o_scrub" = 1, + "bz_scrub" = 1, + "freon_scrub"= 1, + "water_vapor_scrub"= 1, + "scrubbing" = 1, + "widenet" = 1, + )) + for(var/device_id in A.air_vent_names) + send_signal(device_id, list( + "power" = 1, + "checks" = 1, + "set_external_pressure" = ONE_ATMOSPHERE + )) + if(AALARM_MODE_VENTING) + for(var/device_id in A.air_scrub_names) + send_signal(device_id, list( + "power" = 1, + "widenet" = 0, + "scrubbing" = 0 + )) + for(var/device_id in A.air_vent_names) + send_signal(device_id, list( + "power" = 1, + "checks" = 1, + "set_external_pressure" = ONE_ATMOSPHERE*2 + )) + if(AALARM_MODE_REFILL) + for(var/device_id in A.air_scrub_names) + send_signal(device_id, list( + "power" = 1, + "co2_scrub" = 1, + "tox_scrub" = 0, + "n2o_scrub" = 0, + "bz_scrub" = 0, + "freon_scrub"= 0, + "water_vapor_scrub"= 0, + "scrubbing" = 1, + "widenet" = 0, + )) + for(var/device_id in A.air_vent_names) + send_signal(device_id, list( + "power" = 1, + "checks" = 1, + "set_external_pressure" = ONE_ATMOSPHERE * 3 + )) + if(AALARM_MODE_PANIC, + AALARM_MODE_REPLACEMENT) + for(var/device_id in A.air_scrub_names) + send_signal(device_id, list( + "power" = 1, + "widenet" = 1, + "scrubbing" = 0 + )) + for(var/device_id in A.air_vent_names) + send_signal(device_id, list( + "power" = 0 + )) + if(AALARM_MODE_SIPHON) + for(var/device_id in A.air_scrub_names) + send_signal(device_id, list( + "power" = 1, + "widenet" = 0, + "scrubbing" = 0 + )) + for(var/device_id in A.air_vent_names) + send_signal(device_id, list( + "power" = 0 + )) + + if(AALARM_MODE_OFF) + for(var/device_id in A.air_scrub_names) + send_signal(device_id, list( + "power" = 0 + )) + for(var/device_id in A.air_vent_names) + send_signal(device_id, list( + "power" = 0 + )) + if(AALARM_MODE_FLOOD) + for(var/device_id in A.air_scrub_names) + send_signal(device_id, list( + "power" = 0 + )) + for(var/device_id in A.air_vent_names) + send_signal(device_id, list( + "power" = 1, + "checks" = 2, + "set_internal_pressure" = 0 + )) + +/obj/machinery/airalarm/update_icon() + if(panel_open) + switch(buildstage) + if(2) + icon_state = "alarmx" + if(1) + icon_state = "alarm_b2" + if(0) + icon_state = "alarm_b1" + return + + if((stat & (NOPOWER|BROKEN)) || shorted) + icon_state = "alarmp" + return + + var/area/A = get_area_master(src) + switch(max(danger_level, A.atmosalm)) + if(0) + icon_state = "alarm0" + if(1) + icon_state = "alarm2" //yes, alarm2 is yellow alarm + if(2) + icon_state = "alarm1" + +/obj/machinery/airalarm/process() + if((stat & (NOPOWER|BROKEN)) || shorted) + return + + var/turf/location = get_turf(src) + if(!location) + return + + var/datum/tlv/cur_tlv + + var/datum/gas_mixture/environment = location.return_air() + var/list/env_gases = environment.gases + var/partial_pressure = R_IDEAL_GAS_EQUATION * environment.temperature / environment.volume + + cur_tlv = TLV["pressure"] + var/environment_pressure = environment.return_pressure() + var/pressure_dangerlevel = cur_tlv.get_danger_level(environment_pressure) + + cur_tlv = TLV["temperature"] + var/temperature_dangerlevel = cur_tlv.get_danger_level(environment.temperature) + + var/gas_dangerlevel = 0 + for(var/gas_id in env_gases) + if(!(gas_id in TLV)) // We're not interested in this gas, it seems. + continue + cur_tlv = TLV[gas_id] + gas_dangerlevel = max(gas_dangerlevel, cur_tlv.get_danger_level(env_gases[gas_id][MOLES] * partial_pressure)) + + environment.garbage_collect() + + var/old_danger_level = danger_level + danger_level = max(pressure_dangerlevel, temperature_dangerlevel, gas_dangerlevel) + + if(old_danger_level != danger_level) + apply_danger_level() + if(mode == AALARM_MODE_REPLACEMENT && environment_pressure < ONE_ATMOSPHERE * 0.05) + mode = AALARM_MODE_SCRUBBING + apply_mode() + + +/obj/machinery/airalarm/proc/post_alert(alert_level) + var/datum/radio_frequency/frequency = SSradio.return_frequency(alarm_frequency) + + if(!frequency) + return + + var/area/A = get_area_master(src) + + var/datum/signal/alert_signal = new + alert_signal.source = src + alert_signal.transmission_method = 1 + alert_signal.data["zone"] = A.name + alert_signal.data["type"] = "Atmospheric" + + if(alert_level==2) + alert_signal.data["alert"] = "severe" + else if (alert_level==1) + alert_signal.data["alert"] = "minor" + else if (alert_level==0) + alert_signal.data["alert"] = "clear" + + frequency.post_signal(src, alert_signal,null,-1) + +/obj/machinery/airalarm/proc/apply_danger_level() + var/area/A = get_area_master(src) + + var/new_area_danger_level = 0 + for(var/area/R in A.related) + for(var/obj/machinery/airalarm/AA in R) + if (!(AA.stat & (NOPOWER|BROKEN)) && !AA.shorted) + new_area_danger_level = max(new_area_danger_level,AA.danger_level) + if(A.atmosalert(new_area_danger_level,src)) //if area was in normal state or if area was in alert state + post_alert(new_area_danger_level) + + update_icon() + +/obj/machinery/airalarm/attackby(obj/item/W, mob/user, params) + switch(buildstage) + if(2) + if(istype(W, /obj/item/weapon/wirecutters) && panel_open && wires.is_all_cut()) + playsound(src.loc, W.usesound, 50, 1) + user << "You cut the final wires." + new /obj/item/stack/cable_coil(loc, 5) + buildstage = 1 + update_icon() + return + else if(istype(W, /obj/item/weapon/screwdriver)) // Opening that Air Alarm up. + playsound(src.loc, W.usesound, 50, 1) + panel_open = !panel_open + user << "The wires have been [panel_open ? "exposed" : "unexposed"]." + update_icon() + return + else if(istype(W, /obj/item/weapon/card/id) || istype(W, /obj/item/device/pda))// trying to unlock the interface with an ID card + if(stat & (NOPOWER|BROKEN)) + user << "It does nothing!" + else + if(src.allowed(usr) && !wires.is_cut(WIRE_IDSCAN)) + locked = !locked + user << "You [ locked ? "lock" : "unlock"] the air alarm interface." + else + user << "Access denied." + return + else if(panel_open && is_wire_tool(W)) + wires.interact(user) + return + if(1) + if(istype(W, /obj/item/weapon/crowbar)) + user.visible_message("[user.name] removes the electronics from [src.name].",\ + "You start prying out the circuit...") + playsound(src.loc, W.usesound, 50, 1) + if (do_after(user, 20/W.toolspeed, target = src)) + if (buildstage == 1) + user <<"You remove the air alarm electronics." + new /obj/item/weapon/electronics/airalarm( src.loc ) + playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + buildstage = 0 + update_icon() + return + + if(istype(W, /obj/item/stack/cable_coil)) + var/obj/item/stack/cable_coil/cable = W + if(cable.get_amount() < 5) + user << "You need five lengths of cable to wire the fire alarm!" + return + user.visible_message("[user.name] wires the air alarm.", \ + "You start wiring the air alarm...") + if (do_after(user, 20, target = src)) + if (cable.get_amount() >= 5 && buildstage == 1) + cable.use(5) + user << "You wire the air alarm." + wires.repair() + aidisabled = 0 + locked = 1 + mode = 1 + shorted = 0 + post_alert(0) + buildstage = 2 + update_icon() + return + if(0) + if(istype(W, /obj/item/weapon/electronics/airalarm)) + if(user.unEquip(W)) + user << "You insert the circuit." + buildstage = 1 + update_icon() + qdel(W) + return + + if(istype(W, /obj/item/weapon/wrench)) + user << "You detach \the [src] from the wall." + playsound(src.loc, W.usesound, 50, 1) + new /obj/item/wallframe/airalarm( user.loc ) + qdel(src) + return + + return ..() + +/obj/machinery/airalarm/power_change() + ..() + update_icon() + +/obj/machinery/airalarm/emag_act(mob/user) + if(emagged) + return + emagged = TRUE + visible_message("Sparks fly out of the [src]!", "You emag the [src], disabling its safeties.") + playsound(src.loc, 'sound/effects/sparks4.ogg', 50, 1) + +/obj/machinery/airalarm/obj_break(damage_flag) + ..() + update_icon() + +/obj/machinery/airalarm/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + new /obj/item/stack/sheet/metal(loc, 2) + var/obj/item/I = new /obj/item/weapon/electronics/airalarm(loc) + if(!disassembled) + I.obj_integrity = I.max_integrity * 0.5 + new /obj/item/stack/cable_coil(loc, 3) + qdel(src) diff --git a/code/modules/atmospherics/machinery/atmosmachinery.dm b/code/modules/atmospherics/machinery/atmosmachinery.dm new file mode 100644 index 0000000..0e87f83 --- /dev/null +++ b/code/modules/atmospherics/machinery/atmosmachinery.dm @@ -0,0 +1,297 @@ +/* +Quick overview: + +Pipes combine to form pipelines +Pipelines and other atmospheric objects combine to form pipe_networks + Note: A single pipe_network represents a completely open space + +Pipes -> Pipelines +Pipelines + Other Objects -> Pipe network + +*/ +/obj/machinery/atmospherics + anchored = 1 + idle_power_usage = 0 + active_power_usage = 0 + power_channel = ENVIRON + on_blueprints = TRUE + layer = GAS_PIPE_LAYER //under wires + armor = list(melee = 25, bullet = 10, laser = 10, energy = 100, bomb = 0, bio = 100, rad = 100, fire = 100, acid = 70) + resistance_flags = FIRE_PROOF + obj_integrity = 200 + max_integrity = 200 + var/nodealert = 0 + var/can_unwrench = 0 + var/initialize_directions = 0 + var/pipe_color + var/obj/item/pipe/stored + var/global/list/iconsetids = list() + var/global/list/pipeimages = list() + + var/image/pipe_vision_img = null + + var/device_type = 0 + var/list/obj/machinery/atmospherics/nodes = list() + +/obj/machinery/atmospherics/New(loc, process = TRUE) + nodes.len = device_type + ..() + if(process) + SSair.atmos_machinery += src + SetInitDirections() + if(can_unwrench) + stored = new(src, make_from=src) + +/obj/machinery/atmospherics/Destroy() + for(DEVICE_TYPE_LOOP) + nullifyNode(I) + + SSair.atmos_machinery -= src + if(stored) + qdel(stored) + stored = null + + dropContents() + if(pipe_vision_img) + qdel(pipe_vision_img) + + return ..() + //return QDEL_HINT_FINDREFERENCE + +/obj/machinery/atmospherics/proc/nullifyNode(I) + if(NODE_I) + var/obj/machinery/atmospherics/N = NODE_I + N.disconnect(src) + NODE_I = null + +//this is called just after the air controller sets up turfs +/obj/machinery/atmospherics/proc/atmosinit(var/list/node_connects) + if(!node_connects) //for pipes where order of nodes doesn't matter + node_connects = list() + node_connects.len = device_type + + for(DEVICE_TYPE_LOOP) + for(var/D in cardinal) + if(D & GetInitDirections()) + if(D in node_connects) + continue + node_connects[I] = D + break + + for(DEVICE_TYPE_LOOP) + for(var/obj/machinery/atmospherics/target in get_step(src,node_connects[I])) + if(can_be_node(target, I)) + NODE_I = target + break + + update_icon() + +/obj/machinery/atmospherics/proc/can_be_node(obj/machinery/atmospherics/target) + if(target.initialize_directions & get_dir(target,src)) + return 1 + +/obj/machinery/atmospherics/proc/pipeline_expansion() + return nodes + +/obj/machinery/atmospherics/proc/SetInitDirections() + return + +/obj/machinery/atmospherics/proc/GetInitDirections() + return initialize_directions + +/obj/machinery/atmospherics/proc/returnPipenet() + return + +/obj/machinery/atmospherics/proc/returnPipenetAir() + return + +/obj/machinery/atmospherics/proc/setPipenet() + return + +/obj/machinery/atmospherics/proc/replacePipenet() + return + +/obj/machinery/atmospherics/proc/build_network() + // Called to build a network from this node + return + +/obj/machinery/atmospherics/proc/disconnect(obj/machinery/atmospherics/reference) + if(istype(reference, /obj/machinery/atmospherics/pipe)) + var/obj/machinery/atmospherics/pipe/P = reference + qdel(P.parent) + var/I = nodes.Find(reference) + NODE_I = null + update_icon() + +/obj/machinery/atmospherics/update_icon() + return + +/obj/machinery/atmospherics/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/weapon/wrench)) + if(can_unwrench(user)) + var/turf/T = get_turf(src) + if (level==1 && isturf(T) && T.intact) + user << "You must remove the plating first!" + return 1 + var/datum/gas_mixture/int_air = return_air() + var/datum/gas_mixture/env_air = loc.return_air() + add_fingerprint(user) + + var/unsafe_wrenching = FALSE + var/internal_pressure = int_air.return_pressure()-env_air.return_pressure() + + playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + user << "You begin to unfasten \the [src]..." + if (internal_pressure > 2*ONE_ATMOSPHERE) + user << "As you begin unwrenching \the [src] a gush of air blows in your face... maybe you should reconsider?" + unsafe_wrenching = TRUE //Oh dear oh dear + + if (do_after(user, 20/W.toolspeed, target = src) && !qdeleted(src)) + user.visible_message( \ + "[user] unfastens \the [src].", \ + "You unfasten \the [src].", \ + "You hear ratchet.") + investigate_log("was REMOVED by [key_name(usr)]", "atmos") + + //You unwrenched a pipe full of pressure? Let's splat you into the wall, silly. + if(unsafe_wrenching) + unsafe_pressure_release(user, internal_pressure) + deconstruct(TRUE) + else + return ..() + +/obj/machinery/atmospherics/proc/can_unwrench(mob/user) + return can_unwrench + +// Throws the user when they unwrench a pipe with a major difference between the internal and environmental pressure. +/obj/machinery/atmospherics/proc/unsafe_pressure_release(mob/user, pressures = null) + if(!user) + return + if(!pressures) + var/datum/gas_mixture/int_air = return_air() + var/datum/gas_mixture/env_air = loc.return_air() + pressures = int_air.return_pressure() - env_air.return_pressure() + + var/fuck_you_dir = get_dir(src, user) // Because fuck you... + if(!fuck_you_dir) + fuck_you_dir = pick(cardinal) + var/turf/target = get_edge_target_turf(user, fuck_you_dir) + var/range = pressures/250 + var/speed = range/5 + + user.visible_message("[user] is sent flying by pressure!","The pressure sends you flying!") + user.throw_at(target, range, speed) + +/obj/machinery/atmospherics/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + if(can_unwrench) + if(stored) + stored.forceMove(loc) + if(!disassembled) + stored.obj_integrity = stored.max_integrity * 0.5 + transfer_fingerprints_to(stored) + stored = null + ..() + +/obj/machinery/atmospherics/proc/getpipeimage(iconset, iconstate, direction, col=rgb(255,255,255)) + + //Add identifiers for the iconset + if(iconsetids[iconset] == null) + iconsetids[iconset] = num2text(iconsetids.len + 1) + + //Generate a unique identifier for this image combination + var/identifier = iconsetids[iconset] + "_[iconstate]_[direction]_[col]" + + var/image/img + if(pipeimages[identifier] == null) + img = image(iconset, icon_state=iconstate, dir=direction) + img.color = col + + pipeimages[identifier] = img + + else + img = pipeimages[identifier] + + return img + +/obj/machinery/atmospherics/on_construction(pipe_type, obj_color) + if(can_unwrench) + add_atom_colour(obj_color, FIXED_COLOUR_PRIORITY) + pipe_color = obj_color + stored.setDir(src.dir )//need to define them here, because the obj directions... + stored.pipe_type = pipe_type //... were not set at the time the stored pipe was created + stored.add_atom_colour(obj_color, FIXED_COLOUR_PRIORITY) + var/turf/T = loc + level = T.intact ? 2 : 1 + atmosinit() + var/list/nodes = pipeline_expansion() + for(var/obj/machinery/atmospherics/A in nodes) + A.atmosinit() + A.addMember(src) + build_network() + +/obj/machinery/atmospherics/singularity_pull(S, current_size) + if(current_size >= STAGE_FIVE) + deconstruct(FALSE) + + +//Find a connecting /obj/machinery/atmospherics in specified direction +/obj/machinery/atmospherics/proc/findConnecting(direction) + for(var/obj/machinery/atmospherics/target in get_step(src, direction)) + if(target.initialize_directions & get_dir(target,src)) + return target + + +#define VENT_SOUND_DELAY 30 + +/obj/machinery/atmospherics/relaymove(mob/living/user, direction) + if(!(direction & initialize_directions)) //cant go this way. + return + + if(user in buckled_mobs)// fixes buckle ventcrawl edgecase fuck bug + return + + var/obj/machinery/atmospherics/target_move = findConnecting(direction) + if(target_move) + if(target_move.can_crawl_through()) + if(is_type_in_list(target_move, ventcrawl_machinery)) + user.forceMove(target_move.loc) //handle entering and so on. + user.visible_message("You hear something squeezing through the ducts...","You climb out the ventilation system.") + else + var/list/pipenetdiff = returnPipenets() ^ target_move.returnPipenets() + if(pipenetdiff.len) + user.update_pipe_vision(target_move) + user.loc = target_move + user.client.eye = target_move //Byond only updates the eye every tick, This smooths out the movement + if(world.time - user.last_played_vent > VENT_SOUND_DELAY) + user.last_played_vent = world.time + playsound(src, 'sound/machines/ventcrawl.ogg', 50, 1, -3) + else + if((direction & initialize_directions) || is_type_in_list(src, ventcrawl_machinery) && can_crawl_through()) //if we move in a way the pipe can connect, but doesn't - or we're in a vent + user.forceMove(src.loc) + user.visible_message("You hear something squeezing through the ducts...","You climb out the ventilation system.") + user.canmove = 0 + spawn(1) + user.canmove = 1 + + +/obj/machinery/atmospherics/AltClick(mob/living/L) + if(is_type_in_list(src, ventcrawl_machinery)) + L.handle_ventcrawl(src) + return + ..() + + +/obj/machinery/atmospherics/proc/can_crawl_through() + return 1 + +/obj/machinery/atmospherics/proc/returnPipenets() + return list() + +/obj/machinery/atmospherics/update_remote_sight(mob/user) + user.sight |= (SEE_TURFS|BLIND) + +//Used for certain children of obj/machinery/atmospherics to not show pipe vision when mob is inside it. +/obj/machinery/atmospherics/proc/can_see_pipes() + return 1 + diff --git a/code/modules/atmospherics/machinery/components/binary_devices/binary_devices.dm b/code/modules/atmospherics/machinery/components/binary_devices/binary_devices.dm new file mode 100644 index 0000000..6b838d9 --- /dev/null +++ b/code/modules/atmospherics/machinery/components/binary_devices/binary_devices.dm @@ -0,0 +1,34 @@ +/obj/machinery/atmospherics/components/binary + icon = 'icons/obj/atmospherics/components/binary_devices.dmi' + dir = SOUTH + initialize_directions = SOUTH|NORTH + use_power = 1 + device_type = BINARY + +/obj/machinery/atmospherics/components/binary/SetInitDirections() + switch(dir) + if(NORTH) + initialize_directions = NORTH|SOUTH + if(SOUTH) + initialize_directions = NORTH|SOUTH + if(EAST) + initialize_directions = EAST|WEST + if(WEST) + initialize_directions = EAST|WEST +/* +Iconnery +*/ +/obj/machinery/atmospherics/components/binary/hide(intact) + update_icon() + + ..(intact) +/* +Housekeeping and pipe network stuff +*/ + +/obj/machinery/atmospherics/components/binary/atmosinit() + var/node2_connect = dir + var/node1_connect = turn(dir, 180) + + var/list/node_connects = list(node1_connect, node2_connect) + ..(node_connects) \ No newline at end of file diff --git a/code/modules/atmospherics/machinery/components/binary_devices/circulator.dm b/code/modules/atmospherics/machinery/components/binary_devices/circulator.dm new file mode 100644 index 0000000..c6b5e0d --- /dev/null +++ b/code/modules/atmospherics/machinery/components/binary_devices/circulator.dm @@ -0,0 +1,70 @@ +//node2, air2, network2 correspond to input +//node1, air1, network1 correspond to output + + +/obj/machinery/atmospherics/components/binary/circulator + name = "circulator/heat exchanger" + desc = "A gas circulator pump and heat exchanger." + icon_state = "circ1-off" + + var/side = CIRC_LEFT + var/status = 0 + + var/last_pressure_delta = 0 + + anchored = 1 + density = 1 + + var/global/const/CIRC_LEFT = 1 + var/global/const/CIRC_RIGHT = 2 + + +/obj/machinery/atmospherics/components/binary/circulator/proc/return_transfer_air() + + var/datum/gas_mixture/air1 = AIR1 + var/datum/gas_mixture/air2 = AIR2 + + var/output_starting_pressure = air1.return_pressure() + var/input_starting_pressure = air2.return_pressure() + + if(output_starting_pressure >= input_starting_pressure-10) + //Need at least 10 KPa difference to overcome friction in the mechanism + last_pressure_delta = 0 + return null + + //Calculate necessary moles to transfer using PV = nRT + if(air2.temperature>0) + var/pressure_delta = (input_starting_pressure - output_starting_pressure)/2 + + var/transfer_moles = pressure_delta*air1.volume/(air2.temperature * R_IDEAL_GAS_EQUATION) + + last_pressure_delta = pressure_delta + + //world << "pressure_delta = [pressure_delta]; transfer_moles = [transfer_moles];" + + //Actually transfer the gas + var/datum/gas_mixture/removed = air2.remove(transfer_moles) + + update_parents() + + return removed + + else + last_pressure_delta = 0 + +/obj/machinery/atmospherics/components/binary/circulator/process_atmos() + ..() + update_icon() + +/obj/machinery/atmospherics/components/binary/circulator/update_icon() + if(stat & (BROKEN|NOPOWER)) + icon_state = "circ[side]-p" + else if(last_pressure_delta > 0) + if(last_pressure_delta > ONE_ATMOSPHERE) + icon_state = "circ[side]-run" + else + icon_state = "circ[side]-slow" + else + icon_state = "circ[side]-off" + + return 1 diff --git a/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm b/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm new file mode 100644 index 0000000..3c789a5 --- /dev/null +++ b/code/modules/atmospherics/machinery/components/binary_devices/dp_vent_pump.dm @@ -0,0 +1,204 @@ +/* +Acts like a normal vent, but has an input AND output. +*/ +#define EXT_BOUND 1 +#define INPUT_MIN 2 +#define OUTPUT_MAX 4 + +/obj/machinery/atmospherics/components/binary/dp_vent_pump + icon = 'icons/obj/atmospherics/components/unary_devices.dmi' //We reuse the normal vent icons! + icon_state = "dpvent_map" + + //node2 is output port + //node1 is input port + + name = "dual-port air vent" + desc = "Has a valve and pump attached to it. There are two ports." + + level = 1 + var/frequency = 0 + var/id = null + var/datum/radio_frequency/radio_connection + + var/on = 0 + var/pump_direction = 1 //0 = siphoning, 1 = releasing + + var/external_pressure_bound = ONE_ATMOSPHERE + var/input_pressure_min = 0 + var/output_pressure_max = 0 + + var/pressure_checks = EXT_BOUND + //EXT_BOUND: Do not pass external_pressure_bound + //INPUT_MIN: Do not pass input_pressure_min + //OUTPUT_MAX: Do not pass output_pressure_max + +/obj/machinery/atmospherics/components/binary/dp_vent_pump/Destroy() + if(SSradio) + SSradio.remove_object(src, frequency) + return ..() + +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume + name = "large dual-port air vent" + +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/New() + ..() + var/datum/gas_mixture/air1 = AIR1 + var/datum/gas_mixture/air2 = AIR2 + air1.volume = 1000 + air2.volume = 1000 + +/obj/machinery/atmospherics/components/binary/dp_vent_pump/update_icon_nopipes() + cut_overlays() + if(showpipe) + add_overlay(getpipeimage('icons/obj/atmospherics/components/unary_devices.dmi', "dpvent_cap")) + + if(!on || stat & (NOPOWER|BROKEN)) + icon_state = "vent_off" + return + + if(pump_direction) + icon_state = "vent_out" + else + icon_state = "vent_in" + +/obj/machinery/atmospherics/components/binary/dp_vent_pump/process_atmos() + ..() + + if(!on) + return FALSE + var/datum/gas_mixture/air1 = AIR1 + var/datum/gas_mixture/air2 = AIR2 + + var/datum/gas_mixture/environment = loc.return_air() + var/environment_pressure = environment.return_pressure() + + if(pump_direction) //input -> external + var/pressure_delta = 10000 + + if(pressure_checks&EXT_BOUND) + pressure_delta = min(pressure_delta, (external_pressure_bound - environment_pressure)) + if(pressure_checks&INPUT_MIN) + pressure_delta = min(pressure_delta, (air1.return_pressure() - input_pressure_min)) + + if(pressure_delta > 0) + if(air1.temperature > 0) + var/transfer_moles = pressure_delta*environment.volume/(air1.temperature * R_IDEAL_GAS_EQUATION) + + var/datum/gas_mixture/removed = air1.remove(transfer_moles) + //Removed can be null if there is no atmosphere in air1 + if(!removed) + return FALSE + + loc.assume_air(removed) + air_update_turf() + + var/datum/pipeline/parent1 = PARENT1 + parent1.update = 1 + + else //external -> output + var/pressure_delta = 10000 + + if(pressure_checks&EXT_BOUND) + pressure_delta = min(pressure_delta, (environment_pressure - external_pressure_bound)) + if(pressure_checks&INPUT_MIN) + pressure_delta = min(pressure_delta, (output_pressure_max - air2.return_pressure())) + + if(pressure_delta > 0) + if(environment.temperature > 0) + var/transfer_moles = pressure_delta*air2.volume/(environment.temperature * R_IDEAL_GAS_EQUATION) + + var/datum/gas_mixture/removed = loc.remove_air(transfer_moles) + //removed can be null if there is no air in the location + if(!removed) + return FALSE + + air2.merge(removed) + air_update_turf() + + var/datum/pipeline/parent2 = PARENT2 + parent2.update = 1 + + return TRUE + + //Radio remote control + +/obj/machinery/atmospherics/components/binary/dp_vent_pump/proc/set_frequency(new_frequency) + SSradio.remove_object(src, frequency) + frequency = new_frequency + if(frequency) + radio_connection = SSradio.add_object(src, frequency, filter = RADIO_ATMOSIA) + +/obj/machinery/atmospherics/components/binary/dp_vent_pump/proc/broadcast_status() + if(!radio_connection) + return 0 + + var/datum/signal/signal = new + signal.transmission_method = 1 //radio signal + signal.source = src + + signal.data = list( + "tag" = id, + "device" = "ADVP", + "power" = on, + "direction" = pump_direction?("release"):("siphon"), + "checks" = pressure_checks, + "input" = input_pressure_min, + "output" = output_pressure_max, + "external" = external_pressure_bound, + "sigtype" = "status" + ) + radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA) + + return 1 + +/obj/machinery/atmospherics/components/binary/dp_vent_pump/atmosinit() + ..() + if(frequency) + set_frequency(frequency) + broadcast_status() + +/obj/machinery/atmospherics/components/binary/dp_vent_pump/receive_signal(datum/signal/signal) + + if(!signal.data["tag"] || (signal.data["tag"] != id) || (signal.data["sigtype"]!="command")) + return 0 + if("power" in signal.data) + on = text2num(signal.data["power"]) + + if("power_toggle" in signal.data) + on = !on + + if("set_direction" in signal.data) + pump_direction = text2num(signal.data["set_direction"]) + + if("checks" in signal.data) + pressure_checks = text2num(signal.data["checks"]) + + if("purge" in signal.data) + pressure_checks &= ~1 + pump_direction = 0 + + if("stabalize" in signal.data) + pressure_checks |= 1 + pump_direction = 1 + + if("set_input_pressure" in signal.data) + input_pressure_min = Clamp(text2num(signal.data["set_input_pressure"]),0,ONE_ATMOSPHERE*50) + + if("set_output_pressure" in signal.data) + output_pressure_max = Clamp(text2num(signal.data["set_output_pressure"]),0,ONE_ATMOSPHERE*50) + + if("set_external_pressure" in signal.data) + external_pressure_bound = Clamp(text2num(signal.data["set_external_pressure"]),0,ONE_ATMOSPHERE*50) + + if("status" in signal.data) + spawn(2) + broadcast_status() + return //do not update_icon + //if(signal.data["tag"]) + spawn(2) + broadcast_status() + update_icon() + +#undef EXT_BOUND +#undef INPUT_MIN +#undef OUTPUT_MAX diff --git a/code/modules/atmospherics/machinery/components/binary_devices/passive_gate.dm b/code/modules/atmospherics/machinery/components/binary_devices/passive_gate.dm new file mode 100644 index 0000000..f14fc21 --- /dev/null +++ b/code/modules/atmospherics/machinery/components/binary_devices/passive_gate.dm @@ -0,0 +1,175 @@ +/* + +Passive gate is similar to the regular pump except: +* It doesn't require power +* Can not transfer low pressure to higher pressure (so it's more like a valve where you can control the flow) + +*/ + +/obj/machinery/atmospherics/components/binary/passive_gate + icon_state = "passgate_map" + + name = "passive gate" + desc = "A one-way air valve that does not require power." + + can_unwrench = 1 + + var/on = 0 + var/target_pressure = ONE_ATMOSPHERE + + var/frequency = 0 + var/id = null + var/datum/radio_frequency/radio_connection + +/obj/machinery/atmospherics/components/binary/passive_gate/Destroy() + if(SSradio) + SSradio.remove_object(src,frequency) + return ..() + +/obj/machinery/atmospherics/components/binary/passive_gate/update_icon_nopipes() + if(!on) + icon_state = "passgate_off" + cut_overlays() + return + + add_overlay(getpipeimage('icons/obj/atmospherics/components/binary_devices.dmi', "passgate_on")) + +/obj/machinery/atmospherics/components/binary/passive_gate/process_atmos() + ..() + if(!on) + return 0 + + var/datum/gas_mixture/air1 = AIR1 + var/datum/gas_mixture/air2 = AIR2 + + var/output_starting_pressure = air2.return_pressure() + var/input_starting_pressure = air1.return_pressure() + + if(output_starting_pressure >= min(target_pressure,input_starting_pressure-10)) + //No need to pump gas if target is already reached or input pressure is too low + //Need at least 10 KPa difference to overcome friction in the mechanism + return 1 + + //Calculate necessary moles to transfer using PV = nRT + if((air1.total_moles() > 0) && (air1.temperature>0)) + var/pressure_delta = min(target_pressure - output_starting_pressure, (input_starting_pressure - output_starting_pressure)/2) + //Can not have a pressure delta that would cause output_pressure > input_pressure + + var/transfer_moles = pressure_delta*air2.volume/(air1.temperature * R_IDEAL_GAS_EQUATION) + + //Actually transfer the gas + var/datum/gas_mixture/removed = air1.remove(transfer_moles) + air2.merge(removed) + + update_parents() + + +//Radio remote control + +/obj/machinery/atmospherics/components/binary/passive_gate/proc/set_frequency(new_frequency) + SSradio.remove_object(src, frequency) + frequency = new_frequency + if(frequency) + radio_connection = SSradio.add_object(src, frequency, filter = RADIO_ATMOSIA) + +/obj/machinery/atmospherics/components/binary/passive_gate/proc/broadcast_status() + if(!radio_connection) + return 0 + + var/datum/signal/signal = new + signal.transmission_method = 1 //radio signal + signal.source = src + + signal.data = list( + "tag" = id, + "device" = "AGP", + "power" = on, + "target_output" = target_pressure, + "sigtype" = "status" + ) + + radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA) + + return 1 + +/obj/machinery/atmospherics/components/binary/passive_gate/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ + datum/tgui/master_ui = null, datum/ui_state/state = default_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "atmos_pump", name, 335, 115, master_ui, state) + ui.open() + +/obj/machinery/atmospherics/components/binary/passive_gate/ui_data() + var/data = list() + data["on"] = on + data["pressure"] = round(target_pressure) + data["max_pressure"] = round(MAX_OUTPUT_PRESSURE) + return data + +/obj/machinery/atmospherics/components/binary/passive_gate/ui_act(action, params) + if(..()) + return + switch(action) + if("power") + on = !on + investigate_log("was turned [on ? "on" : "off"] by [key_name(usr)]", "atmos") + . = TRUE + if("pressure") + var/pressure = params["pressure"] + if(pressure == "max") + pressure = MAX_OUTPUT_PRESSURE + . = TRUE + else if(pressure == "input") + pressure = input("New output pressure (0-[MAX_OUTPUT_PRESSURE] kPa):", name, target_pressure) as num|null + if(!isnull(pressure) || !..()) + . = TRUE + else if(text2num(pressure) != null) + pressure = text2num(pressure) + . = TRUE + if(.) + target_pressure = Clamp(pressure, 0, MAX_OUTPUT_PRESSURE) + investigate_log("was set to [target_pressure] kPa by [key_name(usr)]", "atmos") + update_icon() + +/obj/machinery/atmospherics/components/binary/passive_gate/atmosinit() + ..() + if(frequency) + set_frequency(frequency) + +/obj/machinery/atmospherics/components/binary/passive_gate/receive_signal(datum/signal/signal) + if(!signal.data["tag"] || (signal.data["tag"] != id) || (signal.data["sigtype"]!="command")) + return 0 + + var/old_on = on //for logging + + if("power" in signal.data) + on = text2num(signal.data["power"]) + + if("power_toggle" in signal.data) + on = !on + + if("set_output_pressure" in signal.data) + target_pressure = Clamp(text2num(signal.data["set_output_pressure"]),0,ONE_ATMOSPHERE*50) + + if(on != old_on) + investigate_log("was turned [on ? "on" : "off"] by a remote signal", "atmos") + + if("status" in signal.data) + broadcast_status() + return + + broadcast_status() + update_icon() + return + +/obj/machinery/atmospherics/components/binary/passive_gate/power_change() + ..() + update_icon() + +/obj/machinery/atmospherics/components/binary/passive_gate/can_unwrench(mob/user) + if(..()) + if(on) + user << "You cannot unwrench this [src], turn it off first!" + else + return 1 + diff --git a/code/modules/atmospherics/machinery/components/binary_devices/pump.dm b/code/modules/atmospherics/machinery/components/binary_devices/pump.dm new file mode 100644 index 0000000..a500b38 --- /dev/null +++ b/code/modules/atmospherics/machinery/components/binary_devices/pump.dm @@ -0,0 +1,182 @@ +/* +Every cycle, the pump uses the air in air_in to try and make air_out the perfect pressure. + +node1, air1, network1 correspond to input +node2, air2, network2 correspond to output + +Thus, the two variables affect pump operation are set in New(): + air1.volume + This is the volume of gas available to the pump that may be transfered to the output + air2.volume + Higher quantities of this cause more air to be perfected later + but overall network volume is also increased as this increases... +*/ + +/obj/machinery/atmospherics/components/binary/pump + icon_state = "pump_map" + name = "gas pump" + desc = "A pump that moves gas by pressure." + + can_unwrench = 1 + + var/on = 0 + var/target_pressure = ONE_ATMOSPHERE + + var/frequency = 0 + var/id = null + var/datum/radio_frequency/radio_connection + +/obj/machinery/atmospherics/components/binary/pump/on + on = 1 + +/obj/machinery/atmospherics/components/binary/pump/Destroy() + if(SSradio) + SSradio.remove_object(src,frequency) + if(radio_connection) + radio_connection = null + return ..() + +/obj/machinery/atmospherics/components/binary/pump/update_icon_nopipes() + if(stat & NOPOWER) + icon_state = "pump_off" + return + + icon_state = "pump_[on?"on":"off"]" + +/obj/machinery/atmospherics/components/binary/pump/process_atmos() +// ..() + if(stat & (NOPOWER|BROKEN)) + return 0 + if(!on) + return 0 + + var/datum/gas_mixture/air1 = AIR1 + var/datum/gas_mixture/air2 = AIR2 + + var/output_starting_pressure = air2.return_pressure() + + if((target_pressure - output_starting_pressure) < 0.01) + //No need to pump gas if target is already reached! + return 1 + + //Calculate necessary moles to transfer using PV=nRT + if((air1.total_moles() > 0) && (air1.temperature>0)) + var/pressure_delta = target_pressure - output_starting_pressure + var/transfer_moles = pressure_delta*air2.volume/(air1.temperature * R_IDEAL_GAS_EQUATION) + + //Actually transfer the gas + var/datum/gas_mixture/removed = air1.remove(transfer_moles) + air2.merge(removed) + + update_parents() + + return 1 + +//Radio remote control +/obj/machinery/atmospherics/components/binary/pump/proc/set_frequency(new_frequency) + SSradio.remove_object(src, frequency) + frequency = new_frequency + if(frequency) + radio_connection = SSradio.add_object(src, frequency, filter = RADIO_ATMOSIA) + +/obj/machinery/atmospherics/components/binary/pump/proc/broadcast_status() + if(!radio_connection) + return 0 + + var/datum/signal/signal = new + signal.transmission_method = 1 //radio signal + signal.source = src + + signal.data = list( + "tag" = id, + "device" = "AGP", + "power" = on, + "target_output" = target_pressure, + "sigtype" = "status" + ) + + radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA) + + return 1 + +/obj/machinery/atmospherics/components/binary/pump/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ + datum/tgui/master_ui = null, datum/ui_state/state = default_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "atmos_pump", name, 335, 115, master_ui, state) + ui.open() + +/obj/machinery/atmospherics/components/binary/pump/ui_data() + var/data = list() + data["on"] = on + data["pressure"] = round(target_pressure) + data["max_pressure"] = round(MAX_OUTPUT_PRESSURE) + return data + +/obj/machinery/atmospherics/components/binary/pump/ui_act(action, params) + if(..()) + return + switch(action) + if("power") + on = !on + investigate_log("was turned [on ? "on" : "off"] by [key_name(usr)]", "atmos") + . = TRUE + if("pressure") + var/pressure = params["pressure"] + if(pressure == "max") + pressure = MAX_OUTPUT_PRESSURE + . = TRUE + else if(pressure == "input") + pressure = input("New output pressure (0-[MAX_OUTPUT_PRESSURE] kPa):", name, target_pressure) as num|null + if(!isnull(pressure) && !..()) + . = TRUE + else if(text2num(pressure) != null) + pressure = text2num(pressure) + . = TRUE + if(.) + target_pressure = Clamp(pressure, 0, MAX_OUTPUT_PRESSURE) + investigate_log("was set to [target_pressure] kPa by [key_name(usr)]", "atmos") + update_icon() + +/obj/machinery/atmospherics/components/binary/pump/atmosinit() + ..() + if(frequency) + set_frequency(frequency) + +/obj/machinery/atmospherics/components/binary/pump/receive_signal(datum/signal/signal) + if(!signal.data["tag"] || (signal.data["tag"] != id) || (signal.data["sigtype"]!="command")) + return 0 + + var/old_on = on //for logging + + if("power" in signal.data) + on = text2num(signal.data["power"]) + + if("power_toggle" in signal.data) + on = !on + + if("set_output_pressure" in signal.data) + target_pressure = Clamp(text2num(signal.data["set_output_pressure"]),0,ONE_ATMOSPHERE*50) + + if(on != old_on) + investigate_log("was turned [on ? "on" : "off"] by a remote signal", "atmos") + + if("status" in signal.data) + broadcast_status() + return + + broadcast_status() + update_icon() + return + +/obj/machinery/atmospherics/components/binary/pump/power_change() + ..() + update_icon() + +/obj/machinery/atmospherics/components/binary/pump/can_unwrench(mob/user) + if(..()) + if(!(stat & NOPOWER) && on) + user << "You cannot unwrench this [src], turn it off first!" + else + return 1 + diff --git a/code/modules/atmospherics/machinery/components/binary_devices/valve.dm b/code/modules/atmospherics/machinery/components/binary_devices/valve.dm new file mode 100644 index 0000000..95baa79 --- /dev/null +++ b/code/modules/atmospherics/machinery/components/binary_devices/valve.dm @@ -0,0 +1,72 @@ +/* +It's like a regular ol' straight pipe, but you can turn it on and off. +*/ + +/obj/machinery/atmospherics/components/binary/valve + icon_state = "mvalve_map" + name = "manual valve" + desc = "A pipe valve" + + can_unwrench = 1 + + var/frequency = 0 + var/id = null + + var/open = 0 + var/valve_type = "m" //lets us have a nice, clean, OOP update_icon_nopipes() + +/obj/machinery/atmospherics/components/binary/valve/open + open = 1 + +/obj/machinery/atmospherics/components/binary/valve/update_icon_nopipes(animation = 0) + normalize_dir() + if(animation) + flick("[valve_type]valve_[open][!open]",src) + icon_state = "[valve_type]valve_[open?"on":"off"]" + +/obj/machinery/atmospherics/components/binary/valve/proc/open() + open = 1 + update_icon_nopipes() + update_parents() + var/datum/pipeline/parent1 = PARENT1 + parent1.reconcile_air() + investigate_log("was opened by [usr ? key_name(usr) : "a remote signal"]", "atmos") + +/obj/machinery/atmospherics/components/binary/valve/proc/close() + open = 0 + update_icon_nopipes() + investigate_log("was closed by [usr ? key_name(usr) : "a remote signal"]", "atmos") + +/obj/machinery/atmospherics/components/binary/valve/proc/normalize_dir() + if(dir==SOUTH) + setDir(NORTH) + else if(dir==WEST) + setDir(EAST) + +/obj/machinery/atmospherics/components/binary/valve/attack_ai(mob/user) + return + +/obj/machinery/atmospherics/components/binary/valve/attack_hand(mob/user) + add_fingerprint(usr) + update_icon_nopipes(1) + sleep(10) + if(open) + close() + return + open() + +/obj/machinery/atmospherics/components/binary/valve/digital // can be controlled by AI + name = "digital valve" + desc = "A digitally controlled valve." + icon_state = "dvalve_map" + valve_type = "d" + +/obj/machinery/atmospherics/components/binary/valve/digital/attack_ai(mob/user) + return src.attack_hand(user) + +/obj/machinery/atmospherics/components/binary/valve/digital/update_icon_nopipes(animation) + if(stat & NOPOWER) + normalize_dir() + icon_state = "dvalve_nopower" + return + ..() diff --git a/code/modules/atmospherics/machinery/components/binary_devices/volume_pump.dm b/code/modules/atmospherics/machinery/components/binary_devices/volume_pump.dm new file mode 100644 index 0000000..6b4bc16 --- /dev/null +++ b/code/modules/atmospherics/machinery/components/binary_devices/volume_pump.dm @@ -0,0 +1,178 @@ +/* +Every cycle, the pump uses the air in air_in to try and make air_out the perfect pressure. + +node1, air1, network1 correspond to input +node2, air2, network2 correspond to output + +Thus, the two variables affect pump operation are set in New(): + air1.volume + This is the volume of gas available to the pump that may be transfered to the output + air2.volume + Higher quantities of this cause more air to be perfected later + but overall network volume is also increased as this increases... +*/ + +/obj/machinery/atmospherics/components/binary/volume_pump + icon_state = "volpump_map" + name = "volumetric gas pump" + desc = "A pump that moves gas by volume." + + can_unwrench = 1 + + var/on = 0 + var/transfer_rate = MAX_TRANSFER_RATE + + var/frequency = 0 + var/id = null + var/datum/radio_frequency/radio_connection + +/obj/machinery/atmospherics/components/binary/volume_pump/Destroy() + if(SSradio) + SSradio.remove_object(src,frequency) + return ..() + +/obj/machinery/atmospherics/components/binary/volume_pump/on + on = 1 + +/obj/machinery/atmospherics/components/binary/volume_pump/update_icon_nopipes() + if(stat & NOPOWER) + icon_state = "volpump_off" + return + + icon_state = "volpump_[on?"on":"off"]" + +/obj/machinery/atmospherics/components/binary/volume_pump/process_atmos() +// ..() + if(stat & (NOPOWER|BROKEN)) + return + if(!on) + return 0 + + var/datum/gas_mixture/air1 = AIR1 + var/datum/gas_mixture/air2 = AIR2 + +// Pump mechanism just won't do anything if the pressure is too high/too low + + var/input_starting_pressure = air1.return_pressure() + var/output_starting_pressure = air2.return_pressure() + + if((input_starting_pressure < 0.01) || (output_starting_pressure > 9000)) + return 1 + + var/transfer_ratio = min(1, transfer_rate/air1.volume) + + var/datum/gas_mixture/removed = air1.remove_ratio(transfer_ratio) + + air2.merge(removed) + + update_parents() + + return 1 + +/obj/machinery/atmospherics/components/binary/volume_pump/proc/set_frequency(new_frequency) + SSradio.remove_object(src, frequency) + frequency = new_frequency + if(frequency) + radio_connection = SSradio.add_object(src, frequency) + +/obj/machinery/atmospherics/components/binary/volume_pump/proc/broadcast_status() + if(!radio_connection) + return 0 + + var/datum/signal/signal = new + signal.transmission_method = 1 //radio signal + signal.source = src + + signal.data = list( + "tag" = id, + "device" = "APV", + "power" = on, + "transfer_rate" = transfer_rate, + "sigtype" = "status" + ) + radio_connection.post_signal(src, signal) + + return 1 + +/obj/machinery/atmospherics/components/binary/volume_pump/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ + datum/tgui/master_ui = null, datum/ui_state/state = default_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "atmos_pump", name, 310, 115, master_ui, state) + ui.open() + +/obj/machinery/atmospherics/components/binary/volume_pump/ui_data() + var/data = list() + data["on"] = on + data["rate"] = round(transfer_rate) + data["max_rate"] = round(MAX_TRANSFER_RATE) + return data + +/obj/machinery/atmospherics/components/binary/volume_pump/atmosinit() + ..() + + set_frequency(frequency) + +/obj/machinery/atmospherics/components/binary/volume_pump/ui_act(action, params) + if(..()) + return + switch(action) + if("power") + on = !on + investigate_log("was turned [on ? "on" : "off"] by [key_name(usr)]", "atmos") + . = TRUE + if("rate") + var/rate = params["rate"] + if(rate == "max") + rate = MAX_TRANSFER_RATE + . = TRUE + else if(rate == "input") + rate = input("New transfer rate (0-[MAX_TRANSFER_RATE] L/s):", name, transfer_rate) as num|null + if(!isnull(rate) && !..()) + . = TRUE + else if(text2num(rate) != null) + rate = text2num(rate) + . = TRUE + if(.) + transfer_rate = Clamp(rate, 0, MAX_TRANSFER_RATE) + investigate_log("was set to [transfer_rate] L/s by [key_name(usr)]", "atmos") + update_icon() + +/obj/machinery/atmospherics/components/binary/volume_pump/receive_signal(datum/signal/signal) + if(!signal.data["tag"] || (signal.data["tag"] != id) || (signal.data["sigtype"]!="command")) + return 0 + + var/old_on = on //for logging + + if("power" in signal.data) + on = text2num(signal.data["power"]) + + if("power_toggle" in signal.data) + on = !on + + if("set_transfer_rate" in signal.data) + var/datum/gas_mixture/air1 = AIR1 + transfer_rate = Clamp(text2num(signal.data["set_transfer_rate"]),0,air1.volume) + + if(on != old_on) + investigate_log("was turned [on ? "on" : "off"] by a remote signal", "atmos") + + if("status" in signal.data) + broadcast_status() + return //do not update_icon + + broadcast_status() + update_icon() + return + +/obj/machinery/atmospherics/components/binary/volume_pump/power_change() + ..() + update_icon() + +/obj/machinery/atmospherics/components/binary/volume_pump/can_unwrench(mob/user) + if(..()) + if(!(stat & NOPOWER) && on) + user << "You cannot unwrench this [src], turn it off first!" + else + return 1 + diff --git a/code/modules/atmospherics/machinery/components/components_base.dm b/code/modules/atmospherics/machinery/components/components_base.dm new file mode 100644 index 0000000..4e01f59 --- /dev/null +++ b/code/modules/atmospherics/machinery/components/components_base.dm @@ -0,0 +1,172 @@ +/* +So much of atmospherics.dm was used solely by components, so separating this makes things all a lot cleaner. +On top of that, now people can add component-speciic procs/vars if they want! +*/ + +/obj/machinery/atmospherics/components + var/welded = 0 //Used on pumps and scrubbers + var/showpipe = 0 + + var/list/datum/pipeline/parents = list() + var/list/datum/gas_mixture/airs = list() + +/obj/machinery/atmospherics/components/New() + parents.len = device_type + airs.len = device_type + ..() + + for(DEVICE_TYPE_LOOP) + var/datum/gas_mixture/A = new + A.volume = 200 + AIR_I = A +/* +Iconnery +*/ + +/obj/machinery/atmospherics/components/proc/icon_addintact(var/obj/machinery/atmospherics/node) + var/image/img = getpipeimage('icons/obj/atmospherics/components/binary_devices.dmi', "pipe_intact", get_dir(src,node), node.pipe_color) + underlays += img + + return img.dir + +/obj/machinery/atmospherics/components/proc/icon_addbroken(var/connected = 0) + var/unconnected = (~connected) & initialize_directions + for(var/direction in cardinal) + if(unconnected & direction) + underlays += getpipeimage('icons/obj/atmospherics/components/binary_devices.dmi', "pipe_exposed", direction) + +/obj/machinery/atmospherics/components/proc/update_icon_nopipes() + return + +/obj/machinery/atmospherics/components/update_icon() + update_icon_nopipes() + + underlays.Cut() + + var/turf/T = loc + if(level == 2 || !T.intact) + showpipe = 1 + else + showpipe = 0 + + if(!showpipe) + return //no need to update the pipes if they aren't showing + + var/connected = 0 + + for(DEVICE_TYPE_LOOP) //adds intact pieces + if(NODE_I) + connected |= icon_addintact(NODE_I) + + icon_addbroken(connected) //adds broken pieces + + +/* +Pipenet stuff; housekeeping +*/ + +/obj/machinery/atmospherics/components/nullifyNode(I) + ..() + if(NODE_I) + nullifyPipenet(PARENT_I) + qdel(AIR_I) + AIR_I = null + +/obj/machinery/atmospherics/components/on_construction() + ..() + update_parents() + +/obj/machinery/atmospherics/components/build_network() + for(DEVICE_TYPE_LOOP) + if(!PARENT_I) + PARENT_I = new /datum/pipeline() + var/datum/pipeline/P = PARENT_I + P.build_pipeline(src) + +/obj/machinery/atmospherics/components/proc/nullifyPipenet(datum/pipeline/reference) + var/I = parents.Find(reference) + reference.other_airs -= AIR_I + reference.other_atmosmch -= src + PARENT_I = null + +/obj/machinery/atmospherics/components/returnPipenetAir(datum/pipeline/reference) + var/I = parents.Find(reference) + return AIR_I + +/obj/machinery/atmospherics/components/pipeline_expansion(datum/pipeline/reference) + if(reference) + var/I = parents.Find(reference) + return list(NODE_I) + else + return ..() + +/obj/machinery/atmospherics/components/setPipenet(datum/pipeline/reference, obj/machinery/atmospherics/A) + var/I = nodes.Find(A) + PARENT_I = reference + +/obj/machinery/atmospherics/components/returnPipenet(obj/machinery/atmospherics/A = NODE1) //returns PARENT1 if called without argument + var/I = nodes.Find(A) + return PARENT_I + +/obj/machinery/atmospherics/components/replacePipenet(datum/pipeline/Old, datum/pipeline/New) + var/I = parents.Find(Old) + PARENT_I = New + +/obj/machinery/atmospherics/components/unsafe_pressure_release(var/mob/user, var/pressures) + ..() + + var/turf/T = get_turf(src) + if(T) + //Remove the gas from airs and assume it + var/datum/gas_mixture/environment = T.return_air() + var/lost = null + var/times_lost = 0 + for(DEVICE_TYPE_LOOP) + var/datum/gas_mixture/air = AIR_I + lost += pressures*environment.volume/(air.temperature * R_IDEAL_GAS_EQUATION) + times_lost++ + var/shared_loss = lost/times_lost + + var/datum/gas_mixture/to_release + for(DEVICE_TYPE_LOOP) + var/datum/gas_mixture/air = AIR_I + if(!to_release) + to_release = air.remove(shared_loss) + continue + to_release.merge(air.remove(shared_loss)) + T.assume_air(to_release) + air_update_turf(1) + +/obj/machinery/atmospherics/components/proc/safe_input(var/title, var/text, var/default_set) + var/new_value = input(usr,text,title,default_set) as num + if(usr.canUseTopic(src)) + return new_value + return default_set + +/* +Helpers +*/ + +/obj/machinery/atmospherics/components/proc/update_parents() + for(DEVICE_TYPE_LOOP) + var/datum/pipeline/parent = PARENT_I + if(!parent) + throw EXCEPTION("Component is missing a pipenet! Rebuilding...") + build_network() + parent.update = 1 + +/obj/machinery/atmospherics/components/returnPipenets() + . = list() + for(DEVICE_TYPE_LOOP) + . += returnPipenet(NODE_I) + +/* +UI Stuff +*/ + +/obj/machinery/atmospherics/components/ui_status(mob/user) + if(allowed(user)) + return ..() + user << "Access denied." + return UI_CLOSE + diff --git a/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm b/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm new file mode 100644 index 0000000..12072cc --- /dev/null +++ b/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm @@ -0,0 +1,162 @@ +/obj/machinery/atmospherics/components/trinary/filter + name = "gas filter" + icon_state = "filter_off" + density = 0 + can_unwrench = 1 + var/on = 0 + var/target_pressure = ONE_ATMOSPHERE + var/filter_type = "" + var/frequency = 0 + var/datum/radio_frequency/radio_connection + +/obj/machinery/atmospherics/components/trinary/filter/flipped + icon_state = "filter_off_f" + flipped = 1 + +/obj/machinery/atmospherics/components/trinary/filter/proc/set_frequency(new_frequency) + SSradio.remove_object(src, frequency) + frequency = new_frequency + if(frequency) + radio_connection = SSradio.add_object(src, frequency, RADIO_ATMOSIA) + +/obj/machinery/atmospherics/components/trinary/filter/Destroy() + if(SSradio) + SSradio.remove_object(src,frequency) + return ..() + +/obj/machinery/atmospherics/components/trinary/filter/update_icon() + cut_overlays() + for(var/direction in cardinal) + if(direction & initialize_directions) + var/obj/machinery/atmospherics/node = findConnecting(direction) + if(node) + add_overlay(getpipeimage('icons/obj/atmospherics/components/trinary_devices.dmi', "cap", direction, node.pipe_color)) + continue + add_overlay(getpipeimage('icons/obj/atmospherics/components/trinary_devices.dmi', "cap", direction)) + ..() + +/obj/machinery/atmospherics/components/trinary/filter/update_icon_nopipes() + + if(!(stat & NOPOWER) && on && NODE1 && NODE2 && NODE3) + icon_state = "filter_on[flipped?"_f":""]" + return + + icon_state = "filter_off[flipped?"_f":""]" + +/obj/machinery/atmospherics/components/trinary/filter/power_change() + var/old_stat = stat + ..() + if(stat & NOPOWER) + on = 0 + if(old_stat != stat) + update_icon() + +/obj/machinery/atmospherics/components/trinary/filter/process_atmos() + ..() + if(!on) + return 0 + if(!(NODE1 && NODE2 && NODE3)) + return 0 + + var/datum/gas_mixture/air1 = AIR1 + var/datum/gas_mixture/air2 = AIR2 + var/datum/gas_mixture/air3 = AIR3 + + var/output_starting_pressure = air3.return_pressure() + + if(output_starting_pressure >= target_pressure) + //No need to mix if target is already full! + return 1 + + //Calculate necessary moles to transfer using PV=nRT + + var/pressure_delta = target_pressure - output_starting_pressure + var/transfer_moles + + if(air1.temperature > 0) + transfer_moles = pressure_delta*air3.volume/(air1.temperature * R_IDEAL_GAS_EQUATION) + + //Actually transfer the gas + + if(transfer_moles > 0) + var/datum/gas_mixture/removed = air1.remove(transfer_moles) + + if(!removed) + return + + var/filtering = filter_type ? TRUE : FALSE + + if(filtering && !istext(filter_type)) + WARNING("Wrong gas ID in [src]'s filter_type var. filter_type == [filter_type]") + filtering = FALSE + + if(filtering && removed.gases[filter_type]) + var/datum/gas_mixture/filtered_out = new + + filtered_out.temperature = removed.temperature + filtered_out.assert_gas(filter_type) + filtered_out.gases[filter_type][MOLES] = removed.gases[filter_type][MOLES] + + removed.gases[filter_type][MOLES] = 0 + removed.garbage_collect() + + air2.merge(filtered_out) + + air3.merge(removed) + + update_parents() + + return 1 + +/obj/machinery/atmospherics/components/trinary/filter/atmosinit() + set_frequency(frequency) + return ..() + +/obj/machinery/atmospherics/components/trinary/filter/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ + datum/tgui/master_ui = null, datum/ui_state/state = default_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "atmos_filter", name, 475, 140, master_ui, state) + ui.open() + +/obj/machinery/atmospherics/components/trinary/filter/ui_data() + var/data = list() + data["on"] = on + data["pressure"] = round(target_pressure) + data["max_pressure"] = round(MAX_OUTPUT_PRESSURE) + data["filter_type"] = filter_type + return data + +/obj/machinery/atmospherics/components/trinary/filter/ui_act(action, params) + if(..()) + return + switch(action) + if("power") + on = !on + investigate_log("was turned [on ? "on" : "off"] by [key_name(usr)]", "atmos") + . = TRUE + if("pressure") + var/pressure = params["pressure"] + if(pressure == "max") + pressure = MAX_OUTPUT_PRESSURE + . = TRUE + else if(pressure == "input") + pressure = input("New output pressure (0-[MAX_OUTPUT_PRESSURE] kPa):", name, target_pressure) as num|null + if(!isnull(pressure) && !..()) + . = TRUE + else if(text2num(pressure) != null) + pressure = text2num(pressure) + . = TRUE + if(.) + target_pressure = Clamp(pressure, 0, MAX_OUTPUT_PRESSURE) + investigate_log("was set to [target_pressure] kPa by [key_name(usr)]", "atmos") + if("filter") + filter_type = "" + var/filter_name = "nothing" + var/gas = params["mode"] + if(gas in meta_gas_info) + filter_type = gas + filter_name = meta_gas_info[gas][META_GAS_NAME] + investigate_log("was set to filter [filter_name] by [key_name(usr)]", "atmos") + . = TRUE + update_icon() diff --git a/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm b/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm new file mode 100644 index 0000000..97322d3 --- /dev/null +++ b/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm @@ -0,0 +1,170 @@ +/obj/machinery/atmospherics/components/trinary/mixer + icon_state = "mixer_off" + density = 0 + + name = "gas mixer" + can_unwrench = 1 + + var/on = 0 + + var/target_pressure = ONE_ATMOSPHERE + var/node1_concentration = 0.5 + var/node2_concentration = 0.5 + + //node 3 is the outlet, nodes 1 & 2 are intakes + +/obj/machinery/atmospherics/components/trinary/mixer/flipped + icon_state = "mixer_off_f" + flipped = 1 + +/obj/machinery/atmospherics/components/trinary/mixer/update_icon() + cut_overlays() + for(var/direction in cardinal) + if(direction & initialize_directions) + var/obj/machinery/atmospherics/node = findConnecting(direction) + if(node) + add_overlay(getpipeimage('icons/obj/atmospherics/components/trinary_devices.dmi', "cap", direction, node.pipe_color)) + continue + add_overlay(getpipeimage('icons/obj/atmospherics/components/trinary_devices.dmi', "cap", direction)) + return ..() + +/obj/machinery/atmospherics/components/trinary/mixer/update_icon_nopipes() + if(!(stat & NOPOWER) && on && NODE1 && NODE2 && NODE3) + icon_state = "mixer_on[flipped?"_f":""]" + return + + icon_state = "mixer_off[flipped?"_f":""]" + +/obj/machinery/atmospherics/components/trinary/mixer/power_change() + var/old_stat = stat + ..() + if(stat & NOPOWER) + on = 0 + if(old_stat != stat) + update_icon() + +/obj/machinery/atmospherics/components/trinary/mixer/New() + ..() + var/datum/gas_mixture/air3 = AIR3 + air3.volume = 300 + AIR3 = air3 + +/obj/machinery/atmospherics/components/trinary/mixer/process_atmos() + ..() + if(!on) + return 0 + if(!(NODE1 && NODE2 && NODE3)) + return 0 + + var/datum/gas_mixture/air1 = AIR1 + var/datum/gas_mixture/air2 = AIR2 + var/datum/gas_mixture/air3 = AIR3 + + var/output_starting_pressure = air3.return_pressure() + + if(output_starting_pressure >= target_pressure) + //No need to mix if target is already full! + return 1 + + //Calculate necessary moles to transfer using PV=nRT + + var/pressure_delta = target_pressure - output_starting_pressure + var/transfer_moles1 = 0 + var/transfer_moles2 = 0 + + if(air1.temperature > 0) + transfer_moles1 = (node1_concentration * pressure_delta) * air3.volume / (air1.temperature * R_IDEAL_GAS_EQUATION) + + if(air2.temperature > 0) + transfer_moles2 = (node2_concentration * pressure_delta) * air3.volume / (air2.temperature * R_IDEAL_GAS_EQUATION) + + var/air1_moles = air1.total_moles() + var/air2_moles = air2.total_moles() + + if((air1_moles < transfer_moles1) || (air2_moles < transfer_moles2)) + var/ratio = 0 + if((transfer_moles1 > 0 ) && (transfer_moles2 > 0)) + ratio = min(air1_moles / transfer_moles1, air2_moles / transfer_moles2) + if((transfer_moles2 == 0 ) && ( transfer_moles1 > 0)) + ratio = air1_moles / transfer_moles1 + if((transfer_moles1 == 0 ) && ( transfer_moles2 > 0)) + ratio = air2_moles / transfer_moles2 + + transfer_moles1 *= ratio + transfer_moles2 *= ratio + + //Actually transfer the gas + + if(transfer_moles1 > 0) + var/datum/gas_mixture/removed1 = air1.remove(transfer_moles1) + air3.merge(removed1) + + if(transfer_moles2 > 0) + var/datum/gas_mixture/removed2 = air2.remove(transfer_moles2) + air3.merge(removed2) + + if(transfer_moles1) + var/datum/pipeline/parent1 = PARENT1 + parent1.update = TRUE + + if(transfer_moles2) + var/datum/pipeline/parent2 = PARENT2 + parent2.update = TRUE + + var/datum/pipeline/parent3 = PARENT3 + parent3.update = TRUE + + return TRUE + +/obj/machinery/atmospherics/components/trinary/mixer/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ + datum/tgui/master_ui = null, datum/ui_state/state = default_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "atmos_mixer", name, 370, 165, master_ui, state) + ui.open() + +/obj/machinery/atmospherics/components/trinary/mixer/ui_data() + var/data = list() + data["on"] = on + data["set_pressure"] = round(target_pressure) + data["max_pressure"] = round(MAX_OUTPUT_PRESSURE) + data["node1_concentration"] = round(node1_concentration*100) + data["node2_concentration"] = round(node2_concentration*100) + return data + +/obj/machinery/atmospherics/components/trinary/mixer/ui_act(action, params) + if(..()) + return + switch(action) + if("power") + on = !on + investigate_log("was turned [on ? "on" : "off"] by [key_name(usr)]", "atmos") + . = TRUE + if("pressure") + var/pressure = params["pressure"] + if(pressure == "max") + pressure = MAX_OUTPUT_PRESSURE + . = TRUE + else if(pressure == "input") + pressure = input("New output pressure (0-[MAX_OUTPUT_PRESSURE] kPa):", name, target_pressure) as num|null + if(!isnull(pressure) && !..()) + . = TRUE + else if(text2num(pressure) != null) + pressure = text2num(pressure) + . = TRUE + if(.) + target_pressure = Clamp(pressure, 0, MAX_OUTPUT_PRESSURE) + investigate_log("was set to [target_pressure] kPa by [key_name(usr)]", "atmos") + if("node1") + var/value = text2num(params["concentration"]) + node1_concentration = max(0, min(1, node1_concentration + value)) + node2_concentration = max(0, min(1, node2_concentration - value)) + investigate_log("was set to [node1_concentration] % on node 1 by [key_name(usr)]", "atmos") + . = TRUE + if("node2") + var/value = text2num(params["concentration"]) + node2_concentration = max(0, min(1, node2_concentration + value)) + node1_concentration = max(0, min(1, node1_concentration - value)) + investigate_log("was set to [node2_concentration] % on node 2 by [key_name(usr)]", "atmos") + . = TRUE + update_icon() \ No newline at end of file diff --git a/code/modules/atmospherics/machinery/components/trinary_devices/trinary_devices.dm b/code/modules/atmospherics/machinery/components/trinary_devices/trinary_devices.dm new file mode 100644 index 0000000..8b0adfd --- /dev/null +++ b/code/modules/atmospherics/machinery/components/trinary_devices/trinary_devices.dm @@ -0,0 +1,47 @@ +/obj/machinery/atmospherics/components/trinary + icon = 'icons/obj/atmospherics/components/trinary_devices.dmi' + dir = SOUTH + initialize_directions = SOUTH|NORTH|WEST + use_power = 1 + device_type = TRINARY + + var/flipped = 0 + +/obj/machinery/atmospherics/components/trinary/SetInitDirections() + switch(dir) + if(NORTH) + initialize_directions = EAST|NORTH|SOUTH + if(SOUTH) + initialize_directions = SOUTH|WEST|NORTH + if(EAST) + initialize_directions = EAST|WEST|SOUTH + if(WEST) + initialize_directions = WEST|NORTH|EAST + +/* +Housekeeping and pipe network stuff +*/ + +/obj/machinery/atmospherics/components/trinary/atmosinit() + + //Mixer: + //1 and 2 is input + //Node 3 is output + //If we flip the mixer, 1 and 3 shall exchange positions + + //Filter: + //Node 1 is input + //Node 2 is filtered output + //Node 3 is rest output + //If we flip the filter, 1 and 3 shall exchange positions + + var/node1_connect = turn(dir, -180) + var/node2_connect = turn(dir, -90) + var/node3_connect = dir + + if(flipped) + node1_connect = turn(node1_connect, 180) + node3_connect = turn(node3_connect, 180) + + var/list/node_connects = list(node1_connect, node2_connect, node3_connect) + ..(node_connects) \ No newline at end of file diff --git a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm new file mode 100644 index 0000000..bd93544 --- /dev/null +++ b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm @@ -0,0 +1,292 @@ +/obj/machinery/atmospherics/components/unary/cryo_cell + name = "cryo cell" + icon = 'icons/obj/cryogenics.dmi' + icon_state = "cell-off" + density = 1 + anchored = 1 + obj_integrity = 350 + max_integrity = 350 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 100, bomb = 0, bio = 100, rad = 100, fire = 30, acid = 30) + + var/on = FALSE + state_open = FALSE + var/autoeject = FALSE + var/volume = 100 + + var/efficiency = 1 + var/sleep_factor = 750 + var/paralyze_factor = 1000 + var/heat_capacity = 20000 + var/conduction_coefficient = 0.30 + + var/obj/item/weapon/reagent_containers/glass/beaker = null + var/reagent_transfer = 0 + +/obj/machinery/atmospherics/components/unary/cryo_cell/New() + ..() + initialize_directions = dir + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/cryo_tube(null) + B.apply_default_parts(src) + +/obj/item/weapon/circuitboard/machine/cryo_tube + name = "circuit board (Cryotube)" + build_path = /obj/machinery/atmospherics/components/unary/cryo_cell + origin_tech = "programming=4;biotech=3;engineering=4;plasmatech=3" + req_components = list( + /obj/item/weapon/stock_parts/matter_bin = 1, + /obj/item/stack/cable_coil = 1, + /obj/item/weapon/stock_parts/console_screen = 1, + /obj/item/stack/sheet/glass = 2) + +/obj/machinery/atmospherics/components/unary/cryo_cell/on_construction() + ..(dir, dir) + +/obj/machinery/atmospherics/components/unary/cryo_cell/RefreshParts() + var/C + for(var/obj/item/weapon/stock_parts/matter_bin/M in component_parts) + C += M.rating + + efficiency = initial(efficiency) * C + sleep_factor = initial(sleep_factor) * C + paralyze_factor = initial(paralyze_factor) * C + heat_capacity = initial(heat_capacity) / C + conduction_coefficient = initial(conduction_coefficient) * C + +/obj/machinery/atmospherics/components/unary/cryo_cell/Destroy() + if(beaker) + qdel(beaker) + beaker = null + return ..() + +/obj/machinery/atmospherics/components/unary/cryo_cell/contents_explosion(severity, target) + ..() + if(beaker) + beaker.ex_act(severity, target) + +/obj/machinery/atmospherics/components/unary/cryo_cell/handle_atom_del(atom/A) + ..() + if(A == beaker) + beaker = null + updateUsrDialog() + +/obj/machinery/atmospherics/components/unary/cryo_cell/on_deconstruction() + if(beaker) + beaker.forceMove(loc) + beaker = null + +/obj/machinery/atmospherics/components/unary/cryo_cell/update_icon() + if(panel_open) + icon_state = "cell-o" + else if(state_open) + icon_state = "cell-open" + else if(on && is_operational()) + if(occupant) + icon_state = "cell-occupied" + else + icon_state = "cell-on" + else + icon_state = "cell-off" + +/obj/machinery/atmospherics/components/unary/cryo_cell/process() + ..() + if(!on) + return + if(!is_operational()) + on = FALSE + update_icon() + return + var/datum/gas_mixture/air1 = AIR1 + if(occupant) + if(occupant.health >= 100) // Don't bother with fully healed people. + on = FALSE + update_icon() + playsound(src.loc, 'sound/machines/ding.ogg', volume, 1) // Bug the doctors. + if(autoeject) // Eject if configured. + open_machine() + return + else if(occupant.stat == DEAD) // We don't bother with dead people. + return + if(air1.gases.len) + if(occupant.bodytemperature < T0C) // Sleepytime. Why? More cryo magic. + occupant.Sleeping((occupant.bodytemperature / sleep_factor) * 100) + occupant.Paralyse((occupant.bodytemperature / paralyze_factor) * 100) + + if(beaker) + if(reagent_transfer == 0) // Magically transfer reagents. Because cryo magic. + beaker.reagents.trans_to(occupant, 1, 10 * efficiency) // Transfer reagents, multiplied because cryo magic. + beaker.reagents.reaction(occupant, VAPOR) + air1.gases["o2"][MOLES] -= 2 / efficiency // Lets use gas for this. + if(++reagent_transfer >= 10 * efficiency) // Throttle reagent transfer (higher efficiency will transfer the same amount but consume less from the beaker). + reagent_transfer = 0 + return 1 + +/obj/machinery/atmospherics/components/unary/cryo_cell/process_atmos() + ..() + if(!on) + return + var/datum/gas_mixture/air1 = AIR1 + if(!NODE1 || !AIR1 || !air1.gases.len || air1.gases["o2"][MOLES] < 5) // Turn off if the machine won't work. + on = FALSE + update_icon() + return + if(occupant) + var/cold_protection = 0 + var/mob/living/carbon/human/H = occupant + if(istype(H)) + cold_protection = H.get_cold_protection(air1.temperature) + + var/temperature_delta = air1.temperature - occupant.bodytemperature // The only semi-realistic thing here: share temperature between the cell and the occupant. + if(abs(temperature_delta) > 1) + var/air_heat_capacity = air1.heat_capacity() + var/heat = ((1 - cold_protection) / 10 + conduction_coefficient) \ + * temperature_delta * \ + (air_heat_capacity * heat_capacity / (air_heat_capacity + heat_capacity)) + air1.temperature = max(air1.temperature - heat / air_heat_capacity, TCMB) + occupant.bodytemperature = max(occupant.bodytemperature + heat / heat_capacity, TCMB) + + air1.gases["o2"][MOLES] -= 0.5 / efficiency // Magically consume gas? Why not, we run on cryo magic. + +/obj/machinery/atmospherics/components/unary/cryo_cell/power_change() + ..() + update_icon() + +/obj/machinery/atmospherics/components/unary/cryo_cell/relaymove(mob/user) + container_resist(user) + +/obj/machinery/atmospherics/components/unary/cryo_cell/open_machine() + if(!state_open && !panel_open) + on = FALSE + ..() + if(beaker) + beaker.forceMove(src) + +/obj/machinery/atmospherics/components/unary/cryo_cell/close_machine(mob/living/carbon/user) + if((isnull(user) || istype(user)) && state_open && !panel_open) + ..(user) + return occupant + +/obj/machinery/atmospherics/components/unary/cryo_cell/container_resist(mob/user) + user << "You struggle inside the cryotube, kicking the release with your foot... (This will take around 30 seconds.)" + audible_message("You hear a thump from [src].") + if(do_after(user, 300)) + if(occupant == user) // Check they're still here. + open_machine() + +/obj/machinery/atmospherics/components/unary/cryo_cell/examine(mob/user) + ..() + if(occupant) + if(on) + user << "Someone's inside [src]!" + else + user << "You can barely make out a form floating in [src]." + else + user << "[src] seems empty." + +/obj/machinery/atmospherics/components/unary/cryo_cell/MouseDrop_T(mob/target, mob/user) + if(user.stat || user.lying || !Adjacent(user) || !user.Adjacent(target) || !iscarbon(target) || !user.IsAdvancedToolUser()) + return + close_machine(target) + +/obj/machinery/atmospherics/components/unary/cryo_cell/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/reagent_containers/glass)) + . = 1 //no afterattack + if(!user.drop_item()) + return + if(beaker) + user << "A beaker is already loaded into [src]!" + return + beaker = I + I.loc = src + user.visible_message("[user] places [I] in [src].", \ + "You place [I] in [src].") + return + if(!on && !occupant && !state_open) + if(default_deconstruction_screwdriver(user, "cell-o", "cell-off", I)) + return + if(exchange_parts(user, I)) + return + if(default_change_direction_wrench(user, I)) + return + if(default_pry_open(I)) + return + if(default_deconstruction_crowbar(I)) + return + return ..() + +/obj/machinery/atmospherics/components/unary/cryo_cell/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ + datum/tgui/master_ui = null, datum/ui_state/state = notcontained_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "cryo", name, 400, 550, master_ui, state) + ui.open() + +/obj/machinery/atmospherics/components/unary/cryo_cell/ui_data() + var/list/data = list() + data["isOperating"] = on + data["hasOccupant"] = occupant ? 1 : 0 + data["isOpen"] = state_open + data["autoEject"] = autoeject + + var/list/occupantData = list() + if(occupant) + occupantData["name"] = occupant.name + occupantData["stat"] = occupant.stat + occupantData["health"] = occupant.health + occupantData["maxHealth"] = occupant.maxHealth + occupantData["minHealth"] = HEALTH_THRESHOLD_DEAD + occupantData["bruteLoss"] = occupant.getBruteLoss() + occupantData["oxyLoss"] = occupant.getOxyLoss() + occupantData["toxLoss"] = occupant.getToxLoss() + occupantData["fireLoss"] = occupant.getFireLoss() + occupantData["bodyTemperature"] = occupant.bodytemperature + data["occupant"] = occupantData + + + var/datum/gas_mixture/air1 = AIR1 + data["cellTemperature"] = round(air1.temperature) + + data["isBeakerLoaded"] = beaker ? 1 : 0 + var beakerContents = list() + if(beaker && beaker.reagents && beaker.reagents.reagent_list.len) + for(var/datum/reagent/R in beaker.reagents.reagent_list) + beakerContents += list(list("name" = R.name, "volume" = R.volume)) + data["beakerContents"] = beakerContents + return data + +/obj/machinery/atmospherics/components/unary/cryo_cell/ui_act(action, params) + if(..()) + return + switch(action) + if("power") + if(on) + on = FALSE + else if(!state_open) + on = TRUE + . = TRUE + if("door") + if(state_open) + close_machine() + else + open_machine() + . = TRUE + if("autoeject") + autoeject = !autoeject + . = TRUE + if("ejectbeaker") + if(beaker) + beaker.forceMove(loc) + beaker = null + . = TRUE + update_icon() + +/obj/machinery/atmospherics/components/unary/cryo_cell/update_remote_sight(mob/living/user) + return //we don't see the pipe network while inside cryo. + +/obj/machinery/atmospherics/components/unary/cryo_cell/get_remote_view_fullscreens(mob/user) + user.overlay_fullscreen("remote_view", /obj/screen/fullscreen/impaired, 1) + +/obj/machinery/atmospherics/components/unary/cryo_cell/can_crawl_through() + return //can't ventcrawl in or out of cryo. + +/obj/machinery/atmospherics/components/unary/cryo_cell/can_see_pipes() + return 0 //you can't see the pipe network when inside a cryo cell. \ No newline at end of file diff --git a/code/modules/atmospherics/machinery/components/unary_devices/generator_input.dm b/code/modules/atmospherics/machinery/components/unary_devices/generator_input.dm new file mode 100644 index 0000000..15ae3eb --- /dev/null +++ b/code/modules/atmospherics/machinery/components/unary_devices/generator_input.dm @@ -0,0 +1,20 @@ +/obj/machinery/atmospherics/components/unary/generator_input + + icon_state = "he_intact" + density = 1 + + name = "generator input" + desc = "Placeholder" + + var/update_cycle + +/obj/machinery/atmospherics/components/unary/generator_input/update_icon() + if(NODE1) + icon_state = "intact" + else + icon_state = "exposed" + + return + +/obj/machinery/atmospherics/components/unary/generator_input/proc/return_exchange_air() + return AIR1 diff --git a/code/modules/atmospherics/machinery/components/unary_devices/heat_exchanger.dm b/code/modules/atmospherics/machinery/components/unary_devices/heat_exchanger.dm new file mode 100644 index 0000000..f0079a5 --- /dev/null +++ b/code/modules/atmospherics/machinery/components/unary_devices/heat_exchanger.dm @@ -0,0 +1,69 @@ +/obj/machinery/atmospherics/components/unary/heat_exchanger + + icon_state = "he_intact" + + name = "heat exchanger" + desc = "Exchanges heat between two input gases. Setup for fast heat transfer" + + can_unwrench = 1 + + var/obj/machinery/atmospherics/components/unary/heat_exchanger/partner = null + var/update_cycle + +/obj/machinery/atmospherics/components/unary/heat_exchanger/update_icon() + if(NODE1) + icon_state = "he_intact" + var/obj/machinery/atmospherics/node = NODE1 + add_atom_colour(node.color, FIXED_COLOUR_PRIORITY) + else + icon_state = "he_exposed" + + return + +/obj/machinery/atmospherics/components/unary/heat_exchanger/atmosinit() + if(!partner) + var/partner_connect = turn(dir,180) + + for(var/obj/machinery/atmospherics/components/unary/heat_exchanger/target in get_step(src,partner_connect)) + if(target.dir & get_dir(src,target)) + partner = target + partner.partner = src + break + + ..() + +/obj/machinery/atmospherics/components/unary/heat_exchanger/process_atmos() + ..() + if(!partner) + return 0 + + if(SSair.times_fired <= update_cycle) + return 0 + + update_cycle = SSair.times_fired + partner.update_cycle = SSair.times_fired + + var/datum/gas_mixture/air_contents = AIR1 + var/datum/gas_mixture/partner_air_contents = partner.AIR1 + + var/air_heat_capacity = air_contents.heat_capacity() + var/other_air_heat_capacity = partner_air_contents.heat_capacity() + var/combined_heat_capacity = other_air_heat_capacity + air_heat_capacity + + var/old_temperature = air_contents.temperature + var/other_old_temperature = partner_air_contents.temperature + + if(combined_heat_capacity > 0) + var/combined_energy = partner_air_contents.temperature*other_air_heat_capacity + air_heat_capacity*air_contents.temperature + + var/new_temperature = combined_energy/combined_heat_capacity + air_contents.temperature = new_temperature + partner_air_contents.temperature = new_temperature + + if(abs(old_temperature-air_contents.temperature) > 1) + update_parents() + + if(abs(other_old_temperature-partner_air_contents.temperature) > 1) + partner.update_parents() + + return 1 diff --git a/code/modules/atmospherics/machinery/components/unary_devices/outlet_injector.dm b/code/modules/atmospherics/machinery/components/unary_devices/outlet_injector.dm new file mode 100644 index 0000000..14d1519 --- /dev/null +++ b/code/modules/atmospherics/machinery/components/unary_devices/outlet_injector.dm @@ -0,0 +1,141 @@ +/obj/machinery/atmospherics/components/unary/outlet_injector + icon_state = "inje_map" + use_power = 1 + + name = "air injector" + desc = "Has a valve and pump attached to it" + + var/on = 0 + var/injecting = 0 + + var/volume_rate = 50 + + var/frequency = 0 + var/id = null + var/datum/radio_frequency/radio_connection + + level = 1 + +/obj/machinery/atmospherics/components/unary/outlet_injector/Destroy() + if(SSradio) + SSradio.remove_object(src,frequency) + return ..() + +/obj/machinery/atmospherics/components/unary/outlet_injector/on + on = 1 + +/obj/machinery/atmospherics/components/unary/outlet_injector/update_icon_nopipes() + if(!NODE1 || !on || stat & (NOPOWER|BROKEN)) + icon_state = "inje_off" + return + + icon_state = "inje_on" + +/obj/machinery/atmospherics/components/unary/outlet_injector/power_change() + var/old_stat = stat + ..() + if(old_stat != stat) + update_icon() + + +/obj/machinery/atmospherics/components/unary/outlet_injector/process_atmos() + ..() + injecting = 0 + + if(!on || stat & NOPOWER) + return 0 + + var/datum/gas_mixture/air_contents = AIR1 + + if(air_contents.temperature > 0) + var/transfer_moles = (air_contents.return_pressure())*volume_rate/(air_contents.temperature * R_IDEAL_GAS_EQUATION) + + var/datum/gas_mixture/removed = air_contents.remove(transfer_moles) + + loc.assume_air(removed) + air_update_turf() + + update_parents() + + return 1 + +/obj/machinery/atmospherics/components/unary/outlet_injector/proc/inject() + if(on || injecting) + return 0 + + var/datum/gas_mixture/air_contents = AIR1 + + injecting = 1 + + if(air_contents.temperature > 0) + var/transfer_moles = (air_contents.return_pressure())*volume_rate/(air_contents.temperature * R_IDEAL_GAS_EQUATION) + + var/datum/gas_mixture/removed = air_contents.remove(transfer_moles) + + loc.assume_air(removed) + + update_parents() + + flick("inje_inject", src) + +/obj/machinery/atmospherics/components/unary/outlet_injector/proc/set_frequency(new_frequency) + SSradio.remove_object(src, frequency) + frequency = new_frequency + if(frequency) + radio_connection = SSradio.add_object(src, frequency) + +/obj/machinery/atmospherics/components/unary/outlet_injector/proc/broadcast_status() + if(!radio_connection) + return 0 + + var/datum/signal/signal = new + signal.transmission_method = 1 //radio signal + signal.source = src + + signal.data = list( + "tag" = id, + "device" = "AO", + "power" = on, + "volume_rate" = volume_rate, + //"timestamp" = world.time, + "sigtype" = "status" + ) + + radio_connection.post_signal(src, signal) + + return 1 + +/obj/machinery/atmospherics/components/unary/outlet_injector/atmosinit() + set_frequency(frequency) + broadcast_status() + ..() + +/obj/machinery/atmospherics/components/unary/outlet_injector/receive_signal(datum/signal/signal) + if(!signal.data["tag"] || (signal.data["tag"] != id) || (signal.data["sigtype"]!="command")) + return 0 + + if("power" in signal.data) + on = text2num(signal.data["power"]) + + if("power_toggle" in signal.data) + on = !on + + if("inject" in signal.data) + spawn inject() + return + + if("set_volume_rate" in signal.data) + var/number = text2num(signal.data["set_volume_rate"]) + var/datum/gas_mixture/air_contents = AIR1 + volume_rate = Clamp(number, 0, air_contents.volume) + + if("status" in signal.data) + spawn(2) + broadcast_status() + return //do not update_icon + + //log_admin("DEBUG \[[world.timeofday]\]: outlet_injector/receive_signal: unknown command \"[signal.data["command"]]\"\n[signal.debug_print()]") + //return + spawn(2) + broadcast_status() + update_icon() diff --git a/code/modules/atmospherics/machinery/components/unary_devices/oxygen_generator.dm b/code/modules/atmospherics/machinery/components/unary_devices/oxygen_generator.dm new file mode 100644 index 0000000..27d6c22 --- /dev/null +++ b/code/modules/atmospherics/machinery/components/unary_devices/oxygen_generator.dm @@ -0,0 +1,54 @@ +/obj/machinery/atmospherics/components/unary/oxygen_generator + + icon_state = "o2gen_map" + + name = "oxygen generator" + desc = "Generates oxygen" + + dir = SOUTH + initialize_directions = SOUTH + + var/on = 0 + + var/oxygen_content = 10 + +/obj/machinery/atmospherics/components/unary/oxygen_generator/update_icon_nopipes() + + cut_overlays() + if(showpipe) + add_overlay(getpipeimage('icons/obj/atmospherics/components/unary_devices.dmi', "scrub_cap", initialize_directions)) //it works for now + + if(!NODE1 || !on || stat & BROKEN) + icon_state = "o2gen_off" + return + + else + icon_state = "o2gen_on" + +/obj/machinery/atmospherics/components/unary/oxygen_generator/New() + ..() + var/datum/gas_mixture/air_contents = AIR1 + air_contents.volume = 50 + AIR1 = air_contents + +/obj/machinery/atmospherics/components/unary/oxygen_generator/process_atmos() + ..() + if(!on) + return 0 + + var/datum/gas_mixture/air_contents = AIR1 + + var/total_moles = air_contents.total_moles() + + if(total_moles < oxygen_content) + var/current_heat_capacity = air_contents.heat_capacity() + + var/added_oxygen = oxygen_content - total_moles + + air_contents.temperature = (current_heat_capacity*air_contents.temperature + 20*added_oxygen*T0C)/(current_heat_capacity+20*added_oxygen) + air_contents.assert_gas("o2") + air_contents.gases["o2"][MOLES] += added_oxygen + + update_parents() + + return 1 diff --git a/code/modules/atmospherics/machinery/components/unary_devices/portables_connector.dm b/code/modules/atmospherics/machinery/components/unary_devices/portables_connector.dm new file mode 100644 index 0000000..8d1c435 --- /dev/null +++ b/code/modules/atmospherics/machinery/components/unary_devices/portables_connector.dm @@ -0,0 +1,40 @@ +/obj/machinery/atmospherics/components/unary/portables_connector + name = "connector port" + desc = "For connecting portables devices related to atmospherics control." + icon = 'icons/obj/atmospherics/components/unary_devices.dmi' + icon_state = "connector_map" //Only for mapping purposes, so mappers can see direction + can_unwrench = 1 + var/obj/machinery/portable_atmospherics/connected_device + use_power = 0 + level = 0 + +/obj/machinery/atmospherics/components/unary/portables_connector/New() + ..() + var/datum/gas_mixture/air_contents = AIR1 + + air_contents.volume = 0 + +/obj/machinery/atmospherics/components/unary/portables_connector/visible + level = 2 + +/obj/machinery/atmospherics/components/unary/portables_connector/process_atmos() + if(!connected_device) + return + update_parents() + +/obj/machinery/atmospherics/components/unary/portables_connector/Destroy() + if(connected_device) + connected_device.disconnect() + return ..() + +/obj/machinery/atmospherics/components/unary/portables_connector/can_unwrench(mob/user) + if(..()) + if(connected_device) + user << "You cannot unwrench this [src], detach [connected_device] first!" + else + return 1 + +/obj/machinery/atmospherics/components/unary/portables_connector/portableConnectorReturnAir() + return connected_device.portableConnectorReturnAir() + +/obj/proc/portableConnectorReturnAir() diff --git a/code/modules/atmospherics/machinery/components/unary_devices/tank.dm b/code/modules/atmospherics/machinery/components/unary_devices/tank.dm new file mode 100644 index 0000000..af070c4 --- /dev/null +++ b/code/modules/atmospherics/machinery/components/unary_devices/tank.dm @@ -0,0 +1,51 @@ +#define AIR_CONTENTS (25*ONE_ATMOSPHERE)*(air_contents.volume)/(R_IDEAL_GAS_EQUATION*air_contents.temperature) +/obj/machinery/atmospherics/components/unary/tank + icon = 'icons/obj/atmospherics/pipes/pressure_tank.dmi' + icon_state = "generic" + name = "pressure tank" + desc = "A large vessel containing pressurized gas." + obj_integrity = 800 + max_integrity = 800 + var/volume = 10000 //in liters, 1 meters by 1 meters by 2 meters + density = 1 + var/gas_type = 0 + +/obj/machinery/atmospherics/components/unary/tank/New() + ..() + var/datum/gas_mixture/air_contents = AIR1 + air_contents.volume = volume + air_contents.temperature = T20C + if(gas_type) + air_contents.assert_gas(gas_type) + air_contents.gases[gas_type][MOLES] = AIR_CONTENTS + name = "[name] ([air_contents.gases[gas_type][GAS_META][META_GAS_NAME]])" + +/obj/machinery/atmospherics/components/unary/tank/carbon_dioxide + gas_type = "co2" + +/obj/machinery/atmospherics/components/unary/tank/toxins + icon_state = "orange" + gas_type = "plasma" + +/obj/machinery/atmospherics/components/unary/tank/oxygen_agent_b + icon_state = "orange_2" + gas_type = "agent_b" + +/obj/machinery/atmospherics/components/unary/tank/oxygen + icon_state = "blue" + gas_type = "o2" + +/obj/machinery/atmospherics/components/unary/tank/nitrogen + icon_state = "red" + gas_type = "n2" + +/obj/machinery/atmospherics/components/unary/tank/air + icon_state = "grey" + name = "pressure tank (Air)" + +/obj/machinery/atmospherics/components/unary/tank/air/New() + ..() + var/datum/gas_mixture/air_contents = AIR1 + air_contents.assert_gases("o2", "n2") + air_contents.gases["o2"][MOLES] = AIR_CONTENTS * 0.2 + air_contents.gases["n2"][MOLES] = AIR_CONTENTS * 0.8 diff --git a/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm b/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm new file mode 100644 index 0000000..f188c91 --- /dev/null +++ b/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm @@ -0,0 +1,235 @@ +/obj/machinery/atmospherics/components/unary/thermomachine + name = "thermomachine" + desc = "Heats or cools gas in connected pipes." + icon_state = "cold_map" + var/icon_state_on = "cold_on" + var/icon_state_open = "cold_off" + density = TRUE + anchored = TRUE + obj_integrity = 300 + max_integrity = 300 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 100, bomb = 0, bio = 100, rad = 100, fire = 80, acid = 30) + + var/on = FALSE + var/min_temperature = 0 + var/max_temperature = 0 + var/target_temperature = T20C + var/heat_capacity = 0 + var/interactive = TRUE // So mapmakers can disable interaction. + +/obj/machinery/atmospherics/components/unary/thermomachine/New() + ..() + initialize_directions = dir + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/thermomachine(null) + B.apply_default_parts(src) + +/obj/item/weapon/circuitboard/machine/thermomachine + name = "circuit board (Thermomachine)" + desc = "You can use a screwdriver to switch between heater and freezer." + origin_tech = "programming=3;plasmatech=3" + req_components = list( + /obj/item/weapon/stock_parts/matter_bin = 2, + /obj/item/weapon/stock_parts/micro_laser = 2, + /obj/item/stack/cable_coil = 1, + /obj/item/weapon/stock_parts/console_screen = 1) + +/obj/item/weapon/circuitboard/machine/thermomachine/attackby(obj/item/I, mob/user, params) + var/obj/item/weapon/circuitboard/machine/freezer = /obj/item/weapon/circuitboard/machine/thermomachine/freezer + var/obj/item/weapon/circuitboard/machine/heater = /obj/item/weapon/circuitboard/machine/thermomachine/heater + var/obj/item/weapon/circuitboard/machine/newtype + + if(istype(I, /obj/item/weapon/screwdriver)) + var/new_setting = "Heater" + playsound(src.loc, I.usesound, 50, 1) + if(build_path == initial(heater.build_path)) + newtype = freezer + new_setting = "Freezer" + else + newtype = heater + name = initial(newtype.name) + build_path = initial(newtype.build_path) + user << "You change the circuitboard setting to \"[new_setting]\"." + else + return ..() + +/obj/machinery/atmospherics/components/unary/thermomachine/on_construction() + ..(dir,dir) + +/obj/machinery/atmospherics/components/unary/thermomachine/RefreshParts() + var/B + for(var/obj/item/weapon/stock_parts/matter_bin/M in component_parts) + B += M.rating + heat_capacity = 5000 * ((B - 1) ** 2) + +/obj/machinery/atmospherics/components/unary/thermomachine/update_icon() + if(panel_open) + icon_state = icon_state_open + else if(on && is_operational()) + icon_state = icon_state_on + else + icon_state = initial(icon_state) + return + +/obj/machinery/atmospherics/components/unary/thermomachine/update_icon_nopipes() + cut_overlays() + if(showpipe) + add_overlay(getpipeimage(icon, "scrub_cap", initialize_directions)) + +/obj/machinery/atmospherics/components/unary/thermomachine/process_atmos() + ..() + if(!on || !NODE1) + return + var/datum/gas_mixture/air_contents = AIR1 + + var/air_heat_capacity = air_contents.heat_capacity() + var/combined_heat_capacity = heat_capacity + air_heat_capacity + var/old_temperature = air_contents.temperature + + if(combined_heat_capacity > 0) + var/combined_energy = heat_capacity * target_temperature + air_heat_capacity * air_contents.temperature + air_contents.temperature = combined_energy/combined_heat_capacity + + var/temperature_delta= abs(old_temperature - air_contents.temperature) + if(temperature_delta > 1) + active_power_usage = (heat_capacity * temperature_delta) / 10 + idle_power_usage + update_parents() + else + active_power_usage = idle_power_usage + return 1 + +/obj/machinery/atmospherics/components/unary/thermomachine/power_change() + ..() + update_icon() + +/obj/machinery/atmospherics/components/unary/thermomachine/attackby(obj/item/I, mob/user, params) + if(!(on || state_open)) + if(default_deconstruction_screwdriver(user, icon_state_open, initial(icon_state), I)) + return + if(exchange_parts(user, I)) + return + if(default_change_direction_wrench(user, I)) + return + if(default_deconstruction_crowbar(I)) + return + return ..() + +/obj/machinery/atmospherics/components/unary/thermomachine/default_change_direction_wrench(mob/user, obj/item/weapon/wrench/W) + if(!..()) + return 0 + SetInitDirections() + var/obj/machinery/atmospherics/node = NODE1 + if(node) + node.disconnect(src) + NODE1 = null + nullifyPipenet(PARENT1) + + atmosinit() + node = NODE1 + if(node) + node.atmosinit() + node.addMember(src) + build_network() + return 1 + +/obj/machinery/atmospherics/components/unary/thermomachine/ui_status(mob/user) + if(interactive) + return ..() + return UI_CLOSE + +/obj/machinery/atmospherics/components/unary/thermomachine/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ + datum/tgui/master_ui = null, datum/ui_state/state = default_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "thermomachine", name, 400, 240, master_ui, state) + ui.open() + +/obj/machinery/atmospherics/components/unary/thermomachine/ui_data(mob/user) + var/list/data = list() + data["on"] = on + + data["min"] = min_temperature + data["max"] = max_temperature + data["target"] = target_temperature + data["initial"] = initial(target_temperature) + + var/datum/gas_mixture/air1 = AIR1 + data["temperature"] = air1.temperature + data["pressure"] = air1.return_pressure() + return data + +/obj/machinery/atmospherics/components/unary/thermomachine/ui_act(action, params) + if(..()) + return + switch(action) + if("power") + on = !on + use_power = 1 + on + investigate_log("was turned [on ? "on" : "off"] by [key_name(usr)]", "atmos") + . = TRUE + if("target") + var/target = params["target"] + var/adjust = text2num(params["adjust"]) + if(target == "input") + target = input("Set new target ([min_temperature]-[max_temperature] K):", name, target_temperature) as num|null + if(!isnull(target) && !..()) + . = TRUE + else if(adjust) + target = target_temperature + adjust + . = TRUE + else if(text2num(target) != null) + target = text2num(target) + . = TRUE + if(.) + target_temperature = Clamp(target, min_temperature, max_temperature) + investigate_log("was set to [target_temperature] K by [key_name(usr)]", "atmos") + update_icon() + +/obj/machinery/atmospherics/components/unary/thermomachine/freezer + name = "freezer" + icon = 'icons/obj/Cryogenic2.dmi' + icon_state = "freezer" + icon_state_on = "freezer_1" + icon_state_open = "freezer-o" + max_temperature = T20C + min_temperature = 170 + +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/New() + ..() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/thermomachine/freezer(null) + B.apply_default_parts(src) + +/obj/item/weapon/circuitboard/machine/thermomachine/freezer + name = "circuit board (Freezer)" + build_path = /obj/machinery/atmospherics/components/unary/thermomachine/freezer + +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/RefreshParts() + ..() + var/L + for(var/obj/item/weapon/stock_parts/micro_laser/M in component_parts) + L += M.rating + min_temperature = max(T0C - (initial(min_temperature) + L * 15), TCMB) + +/obj/machinery/atmospherics/components/unary/thermomachine/heater + name = "heater" + icon = 'icons/obj/Cryogenic2.dmi' + icon_state = "heater" + icon_state_on = "heater_1" + icon_state_open = "heater-o" + max_temperature = 140 + min_temperature = T20C + +/obj/machinery/atmospherics/components/unary/thermomachine/heater/New() + ..() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/thermomachine/heater(null) + B.apply_default_parts(src) + +/obj/item/weapon/circuitboard/machine/thermomachine/heater + name = "circuit board (Heater)" + build_path = /obj/machinery/atmospherics/components/unary/thermomachine/heater + +/obj/machinery/atmospherics/components/unary/thermomachine/heater/RefreshParts() + ..() + var/L + for(var/obj/item/weapon/stock_parts/micro_laser/M in component_parts) + L += M.rating + max_temperature = T20C + (initial(max_temperature) * L) diff --git a/code/modules/atmospherics/machinery/components/unary_devices/unary_devices.dm b/code/modules/atmospherics/machinery/components/unary_devices/unary_devices.dm new file mode 100644 index 0000000..8079803 --- /dev/null +++ b/code/modules/atmospherics/machinery/components/unary_devices/unary_devices.dm @@ -0,0 +1,17 @@ +/obj/machinery/atmospherics/components/unary + icon = 'icons/obj/atmospherics/components/unary_devices.dmi' + dir = SOUTH + initialize_directions = SOUTH + device_type = UNARY + +/obj/machinery/atmospherics/components/unary/SetInitDirections() + initialize_directions = dir + +/* +Iconnery +*/ + +/obj/machinery/atmospherics/components/unary/hide(intact) + update_icon() + + ..(intact) diff --git a/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm b/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm new file mode 100644 index 0000000..8808513 --- /dev/null +++ b/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm @@ -0,0 +1,303 @@ +#define EXT_BOUND 1 +#define INT_BOUND 2 +#define NO_BOUND 3 + +#define SIPHONING 0 +#define RELEASING 1 + +/obj/machinery/atmospherics/components/unary/vent_pump + name = "air vent" + desc = "Has a valve and pump attached to it" + icon_state = "vent_map" + use_power = 1 + can_unwrench = 1 + welded = 0 + level = 1 + + var/id_tag = null + var/on = 0 + var/pump_direction = RELEASING + + var/pressure_checks = EXT_BOUND + var/external_pressure_bound = ONE_ATMOSPHERE + var/internal_pressure_bound = 0 + //EXT_BOUND: Do not pass external_pressure_bound + //INT_BOUND: Do not pass internal_pressure_bound + //NO_BOUND: Do not pass either + + var/frequency = 1439 + var/datum/radio_frequency/radio_connection + var/radio_filter_out + var/radio_filter_in + +/obj/machinery/atmospherics/components/unary/vent_pump/on + on = 1 + icon_state = "vent_out" + +/obj/machinery/atmospherics/components/unary/vent_pump/siphon + pump_direction = SIPHONING + +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on + on = 1 + icon_state = "vent_in" + +/obj/machinery/atmospherics/components/unary/vent_pump/New() + ..() + if(!id_tag) + assign_uid() + id_tag = num2text(uid) + +/obj/machinery/atmospherics/components/unary/vent_pump/Destroy() + var/area/A = get_area_master(src) + A.air_vent_names -= id_tag + A.air_vent_info -= id_tag + + if(SSradio) + SSradio.remove_object(src,frequency) + radio_connection = null + + return ..() + +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume + name = "large air vent" + power_channel = EQUIP + +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/New() + ..() + var/datum/gas_mixture/air_contents = AIR1 + air_contents.volume = 1000 + +/obj/machinery/atmospherics/components/unary/vent_pump/update_icon_nopipes() + cut_overlays() + if(showpipe) + add_overlay(getpipeimage('icons/obj/atmospherics/components/unary_devices.dmi', "vent_cap", initialize_directions)) + + if(welded) + icon_state = "vent_welded" + return + + if(!NODE1 || !on || stat & (NOPOWER|BROKEN)) + icon_state = "vent_off" + return + + if(pump_direction & RELEASING) + icon_state = "vent_out" + else //pump_direction == SIPHONING + icon_state = "vent_in" + +/obj/machinery/atmospherics/components/unary/vent_pump/process_atmos() + ..() + if(stat & (NOPOWER|BROKEN)) + return + if (!NODE1) + on = 0 + if(!on || welded) + return 0 + + var/datum/gas_mixture/air_contents = AIR1 + var/datum/gas_mixture/environment = loc.return_air() + var/environment_pressure = environment.return_pressure() + + if(pump_direction & RELEASING) //internal -> external + var/pressure_delta = 10000 + + if(pressure_checks&EXT_BOUND) + pressure_delta = min(pressure_delta, (external_pressure_bound - environment_pressure)) + if(pressure_checks&INT_BOUND) + pressure_delta = min(pressure_delta, (air_contents.return_pressure() - internal_pressure_bound)) + + if(pressure_delta > 0) + if(air_contents.temperature > 0) + var/transfer_moles = pressure_delta*environment.volume/(air_contents.temperature * R_IDEAL_GAS_EQUATION) + + var/datum/gas_mixture/removed = air_contents.remove(transfer_moles) + + loc.assume_air(removed) + air_update_turf() + + else //external -> internal + var/pressure_delta = 10000 + if(pressure_checks&EXT_BOUND) + pressure_delta = min(pressure_delta, (environment_pressure - external_pressure_bound)) + if(pressure_checks&INT_BOUND) + pressure_delta = min(pressure_delta, (internal_pressure_bound - air_contents.return_pressure())) + + if(pressure_delta > 0) + if(environment.temperature > 0) + var/transfer_moles = pressure_delta*air_contents.volume/(environment.temperature * R_IDEAL_GAS_EQUATION) + + var/datum/gas_mixture/removed = loc.remove_air(transfer_moles) + if (isnull(removed)) //in space + return + + air_contents.merge(removed) + air_update_turf() + update_parents() + + return 1 + +//Radio remote control + +/obj/machinery/atmospherics/components/unary/vent_pump/proc/set_frequency(new_frequency) + SSradio.remove_object(src, frequency) + frequency = new_frequency + if(frequency) + radio_connection = SSradio.add_object(src, frequency,radio_filter_in) + +/obj/machinery/atmospherics/components/unary/vent_pump/proc/broadcast_status() + if(!radio_connection) + return 0 + + var/datum/signal/signal = new + signal.transmission_method = 1 //radio signal + signal.source = src + + signal.data = list( + "tag" = id_tag, + "frequency" = frequency, + "device" = "VP", + "timestamp" = world.time, + "power" = on, + "direction" = pump_direction ? "release" : "siphon", + "checks" = pressure_checks, + "internal" = internal_pressure_bound, + "external" = external_pressure_bound, + "sigtype" = "status" + ) + + var/area/A = get_area_master(src) + if(!A.air_vent_names[id_tag]) + name = "\improper [A.name] vent pump #[A.air_vent_names.len + 1]" + A.air_vent_names[id_tag] = name + A.air_vent_info[id_tag] = signal.data + + radio_connection.post_signal(src, signal, radio_filter_out) + + return 1 + + +/obj/machinery/atmospherics/components/unary/vent_pump/atmosinit() + //some vents work his own spesial way + radio_filter_in = frequency==1439?(RADIO_FROM_AIRALARM):null + radio_filter_out = frequency==1439?(RADIO_TO_AIRALARM):null + if(frequency) + set_frequency(frequency) + broadcast_status() + ..() + +/obj/machinery/atmospherics/components/unary/vent_pump/receive_signal(datum/signal/signal) + if(stat & (NOPOWER|BROKEN)) + return + //log_admin("DEBUG \[[world.timeofday]\]: /obj/machinery/atmospherics/components/unary/vent_pump/receive_signal([signal.debug_print()])") + if(!signal.data["tag"] || (signal.data["tag"] != id_tag) || (signal.data["sigtype"]!="command")) + return 0 + + if("purge" in signal.data) + pressure_checks &= ~EXT_BOUND + pump_direction = SIPHONING + + if("stabalize" in signal.data) + pressure_checks |= EXT_BOUND + pump_direction = RELEASING + + if("power" in signal.data) + on = text2num(signal.data["power"]) + + if("power_toggle" in signal.data) + on = !on + + if("checks" in signal.data) + pressure_checks = text2num(signal.data["checks"]) + + if("checks_toggle" in signal.data) + pressure_checks = (pressure_checks?0:NO_BOUND) + + if("direction" in signal.data) + pump_direction = text2num(signal.data["direction"]) + + if("set_internal_pressure" in signal.data) + internal_pressure_bound = Clamp(text2num(signal.data["set_internal_pressure"]),0,ONE_ATMOSPHERE*50) + + if("set_external_pressure" in signal.data) + external_pressure_bound = Clamp(text2num(signal.data["set_external_pressure"]),0,ONE_ATMOSPHERE*50) + + if("reset_external_pressure" in signal.data) + external_pressure_bound = ONE_ATMOSPHERE + + if("adjust_internal_pressure" in signal.data) + internal_pressure_bound = Clamp(internal_pressure_bound + text2num(signal.data["adjust_internal_pressure"]),0,ONE_ATMOSPHERE*50) + + if("adjust_external_pressure" in signal.data) + external_pressure_bound = Clamp(external_pressure_bound + text2num(signal.data["adjust_external_pressure"]),0,ONE_ATMOSPHERE*50) + + if("init" in signal.data) + name = signal.data["init"] + return + + if("status" in signal.data) + broadcast_status() + return //do not update_icon + + //log_admin("DEBUG \[[world.timeofday]\]: vent_pump/receive_signal: unknown command \"[signal.data["command"]]\"\n[signal.debug_print()]") + broadcast_status() + update_icon() + return + +/obj/machinery/atmospherics/components/unary/vent_pump/attackby(obj/item/W, mob/user, params) + if(istype(W, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/WT = W + if (WT.remove_fuel(0,user)) + playsound(loc, 'sound/items/Welder.ogg', 40, 1) + user << "You begin welding the vent..." + if(do_after(user, 20/W.toolspeed, target = src)) + if(!src || !WT.isOn()) return + playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1) + if(!welded) + user.visible_message("[user] welds the vent shut.", "You weld the vent shut.", "You hear welding.") + welded = 1 + else + user.visible_message("[user] unwelds the vent.", "You unweld the vent.", "You hear welding.") + welded = 0 + update_icon() + pipe_vision_img = image(src, loc, layer = ABOVE_HUD_LAYER, dir = dir) + pipe_vision_img.plane = ABOVE_HUD_PLANE + return 0 + else + return ..() + +/obj/machinery/atmospherics/components/unary/vent_pump/can_unwrench(mob/user) + if(..()) + if(!(stat & NOPOWER) && on) + user << "You cannot unwrench this [src], turn it off first!" + else + return 1 + +/obj/machinery/atmospherics/components/unary/vent_pump/examine(mob/user) + ..() + if(welded) + user << "It seems welded shut." + +/obj/machinery/atmospherics/components/unary/vent_pump/power_change() + ..() + update_icon_nopipes() + +/obj/machinery/atmospherics/components/unary/vent_pump/can_crawl_through() + return !welded + +/obj/machinery/atmospherics/components/unary/vent_pump/attack_alien(mob/user) + if(!welded || !(do_after(user, 20, target = src))) + return + user.visible_message("[user] furiously claws at [src]!", "You manage to clear away the stuff blocking the vent", "You hear loud scraping noises.") + welded = 0 + update_icon() + pipe_vision_img = image(src, loc, layer = ABOVE_HUD_LAYER, dir = dir) + pipe_vision_img.plane = ABOVE_HUD_PLANE + playsound(loc, 'sound/weapons/bladeslice.ogg', 100, 1) + + +#undef INT_BOUND +#undef EXT_BOUND +#undef NO_BOUND + +#undef SIPHONING +#undef RELEASING \ No newline at end of file diff --git a/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm b/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm new file mode 100644 index 0000000..43abe6e --- /dev/null +++ b/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm @@ -0,0 +1,384 @@ +#define SIPHONING 0 +#define SCRUBBING 1 + +/obj/machinery/atmospherics/components/unary/vent_scrubber + name = "air scrubber" + desc = "Has a valve and pump attached to it" + icon_state = "scrub_map" + use_power = 1 + idle_power_usage = 10 + active_power_usage = 60 + can_unwrench = 1 + welded = 0 + level = 1 + + var/id_tag = null + var/on = 0 + var/scrubbing = SCRUBBING //0 = siphoning, 1 = scrubbing + + var/scrub_CO2 = 1 + var/scrub_Toxins = 0 + var/scrub_N2O = 0 + var/scrub_BZ = 0 + var/scrub_Freon = 0 + var/scrub_WaterVapor = 0 + + + var/volume_rate = 200 + var/widenet = 0 //is this scrubber acting on the 3x3 area around it. + var/list/turf/adjacent_turfs = list() + + var/frequency = 1439 + var/datum/radio_frequency/radio_connection + var/radio_filter_out + var/radio_filter_in + +/obj/machinery/atmospherics/components/unary/vent_scrubber/New() + ..() + if(!id_tag) + assign_uid() + id_tag = num2text(uid) + +/obj/machinery/atmospherics/components/unary/vent_scrubber/Destroy() + var/area/A = get_area_master(src) + A.air_scrub_names -= id_tag + A.air_scrub_info -= id_tag + + if(SSradio) + SSradio.remove_object(src,frequency) + radio_connection = null + + for(var/I in adjacent_turfs) + I = null + + return ..() + +/obj/machinery/atmospherics/components/unary/vent_scrubber/auto_use_power() + if(!powered(power_channel)) + return 0 + if(!on || welded) + return 0 + if(stat & (NOPOWER|BROKEN)) + return 0 + + var/amount = idle_power_usage + + if(scrubbing & SCRUBBING) + if(scrub_CO2) + amount += idle_power_usage + if(scrub_Toxins) + amount += idle_power_usage + if(scrub_N2O) + amount += idle_power_usage + if(scrub_BZ) + amount += idle_power_usage + if(scrub_Freon) + amount += idle_power_usage + if(scrub_WaterVapor) + amount += idle_power_usage + else //scrubbing == SIPHONING + amount = active_power_usage + + if(widenet) + amount += amount * (adjacent_turfs.len * (adjacent_turfs.len / 2)) + use_power(amount, power_channel) + return 1 + +/obj/machinery/atmospherics/components/unary/vent_scrubber/update_icon_nopipes() + cut_overlays() + if(showpipe) + add_overlay(getpipeimage('icons/obj/atmospherics/components/unary_devices.dmi', "scrub_cap", initialize_directions)) + + if(welded) + icon_state = "scrub_welded" + return + + if(!NODE1 || !on || stat & (NOPOWER|BROKEN)) + icon_state = "scrub_off" + return + + if(scrubbing & SCRUBBING) + icon_state = "scrub_on" + else //scrubbing == SIPHONING + icon_state = "scrub_purge" + +/obj/machinery/atmospherics/components/unary/vent_scrubber/proc/set_frequency(new_frequency) + SSradio.remove_object(src, frequency) + frequency = new_frequency + radio_connection = SSradio.add_object(src, frequency, radio_filter_in) + +/obj/machinery/atmospherics/components/unary/vent_scrubber/proc/broadcast_status() + if(!radio_connection) + return 0 + + var/datum/signal/signal = new + signal.transmission_method = 1 //radio signal + signal.source = src + signal.data = list( + "tag" = id_tag, + "frequency" = frequency, + "device" = "VS", + "timestamp" = world.time, + "power" = on, + "scrubbing" = scrubbing, + "widenet" = widenet, + "filter_co2" = scrub_CO2, + "filter_toxins" = scrub_Toxins, + "filter_n2o" = scrub_N2O, + "filter_bz" = scrub_BZ, + "filter_freon" = scrub_Freon, + "filter_water_vapor" = scrub_WaterVapor, + "sigtype" = "status" + ) + + var/area/A = get_area_master(src) + if(!A.air_scrub_names[id_tag]) + name = "\improper [A.name] air scrubber #[A.air_scrub_names.len + 1]" + A.air_scrub_names[id_tag] = name + A.air_scrub_info[id_tag] = signal.data + + radio_connection.post_signal(src, signal, radio_filter_out) + + return 1 + +/obj/machinery/atmospherics/components/unary/vent_scrubber/atmosinit() + radio_filter_in = frequency==initial(frequency)?(RADIO_FROM_AIRALARM):null + radio_filter_out = frequency==initial(frequency)?(RADIO_TO_AIRALARM):null + if(frequency) + set_frequency(frequency) + broadcast_status() + check_turfs() + ..() + +/obj/machinery/atmospherics/components/unary/vent_scrubber/process_atmos() + ..() + if(stat & (NOPOWER|BROKEN)) + return + if (!NODE1) + on = 0 + if(!on || welded) + return 0 + scrub(loc) + if(widenet) + for (var/turf/tile in adjacent_turfs) + scrub(tile) + +/obj/machinery/atmospherics/components/unary/vent_scrubber/proc/scrub(var/turf/tile) + if (!istype(tile)) + return 0 + + var/datum/gas_mixture/environment = tile.return_air() + var/datum/gas_mixture/air_contents = AIR1 + var/list/env_gases = environment.gases + + if(scrubbing & SCRUBBING) + var/should_we_scrub = FALSE + for(var/id in env_gases) + if(id == "n2" || id == "o2") + continue + if(env_gases[id][MOLES]) + should_we_scrub = TRUE + break + if(should_we_scrub) + var/transfer_moles = min(1, volume_rate/environment.volume)*environment.total_moles() + + //Take a gas sample + var/datum/gas_mixture/removed = tile.remove_air(transfer_moles) + //Nothing left to remove from the tile + if (isnull(removed)) + return + var/list/removed_gases = removed.gases + + //Filter it + var/datum/gas_mixture/filtered_out = new + var/list/filtered_gases = filtered_out.gases + filtered_out.temperature = removed.temperature + + if(scrub_Toxins && removed_gases["plasma"]) + filtered_out.assert_gas("plasma") + filtered_gases["plasma"][MOLES] = removed_gases["plasma"][MOLES] + removed.gases["plasma"][MOLES] = 0 + + if(scrub_CO2 && removed_gases["co2"]) + filtered_out.assert_gas("co2") + filtered_out.gases["co2"][MOLES] = removed_gases["co2"][MOLES] + removed.gases["co2"][MOLES] = 0 + + if(removed_gases["agent_b"]) + filtered_out.assert_gas("agent_b") + filtered_out.gases["agent_b"][MOLES] = removed_gases["agent_b"][MOLES] + removed.gases["agent_b"][MOLES] = 0 + + if(scrub_N2O && removed_gases["n2o"]) + filtered_out.assert_gas("n2o") + filtered_out.gases["n2o"][MOLES] = removed_gases["n2o"][MOLES] + removed.gases["n2o"][MOLES] = 0 + + if(scrub_BZ && removed_gases["bz"]) + filtered_out.assert_gas("bz") + filtered_out.gases["bz"][MOLES] = removed_gases["bz"][MOLES] + removed.gases["bz"][MOLES] = 0 + + if(scrub_Freon && removed_gases["freon"]) + filtered_out.assert_gas("freon") + filtered_out.gases["freon"][MOLES] = removed_gases["freon"][MOLES] + removed.gases["freon"][MOLES] = 0 + + if(scrub_WaterVapor && removed_gases["water_vapor"]) + filtered_out.assert_gas("water_vapor") + filtered_out.gases["water_vapor"][MOLES] = removed_gases["water_vapor"][MOLES] + removed.gases["water_vapor"][MOLES] = 0 + + removed.garbage_collect() + + //Remix the resulting gases + air_contents.merge(filtered_out) + + tile.assume_air(removed) + tile.air_update_turf() + + else //Just siphoning all air + if (air_contents.return_pressure()>=50*ONE_ATMOSPHERE) + return + + var/transfer_moles = environment.total_moles()*(volume_rate/environment.volume) + + var/datum/gas_mixture/removed = tile.remove_air(transfer_moles) + + air_contents.merge(removed) + tile.air_update_turf() + + update_parents() + + return 1 + + +//There is no easy way for an object to be notified of changes to atmos can pass flags +// So we check every machinery process (2 seconds) +/obj/machinery/atmospherics/components/unary/vent_scrubber/process() + if (widenet) + check_turfs() + +//we populate a list of turfs with nonatmos-blocked cardinal turfs AND +// diagonal turfs that can share atmos with *both* of the cardinal turfs +/obj/machinery/atmospherics/components/unary/vent_scrubber/proc/check_turfs() + adjacent_turfs.Cut() + var/turf/T = get_turf(src) + if(istype(T)) + adjacent_turfs = T.GetAtmosAdjacentTurfs(alldir = 1) + + +/obj/machinery/atmospherics/components/unary/vent_scrubber/receive_signal(datum/signal/signal) + if(stat & (NOPOWER|BROKEN)) + return + if(!signal.data["tag"] || (signal.data["tag"] != id_tag) || (signal.data["sigtype"]!="command")) + return 0 + + if("power" in signal.data) + on = text2num(signal.data["power"]) + if("power_toggle" in signal.data) + on = !on + + if("widenet" in signal.data) + widenet = text2num(signal.data["widenet"]) + if("toggle_widenet" in signal.data) + widenet = !widenet + + if("scrubbing" in signal.data) + scrubbing = text2num(signal.data["scrubbing"]) + if("toggle_scrubbing" in signal.data) + scrubbing = !scrubbing + + if("co2_scrub" in signal.data) + scrub_CO2 = text2num(signal.data["co2_scrub"]) + if("toggle_co2_scrub" in signal.data) + scrub_CO2 = !scrub_CO2 + + if("tox_scrub" in signal.data) + scrub_Toxins = text2num(signal.data["tox_scrub"]) + if("toggle_tox_scrub" in signal.data) + scrub_Toxins = !scrub_Toxins + + if("n2o_scrub" in signal.data) + scrub_N2O = text2num(signal.data["n2o_scrub"]) + if("toggle_n2o_scrub" in signal.data) + scrub_N2O = !scrub_N2O + + if("bz_scrub" in signal.data) + scrub_BZ = text2num(signal.data["bz_scrub"]) + if("toggle_bz_scrub" in signal.data) + scrub_BZ = !scrub_BZ + + if("freon_scrub" in signal.data) + scrub_Freon = text2num(signal.data["freon_scrub"]) + if("toggle_freon_scrub" in signal.data) + scrub_Freon = !scrub_Freon + + if("water_vapor_scrub" in signal.data) + scrub_WaterVapor = text2num(signal.data["water_vapor_scrub"]) + if("toggle_water_vapor_scrub" in signal.data) + scrub_WaterVapor = !scrub_WaterVapor + + if("init" in signal.data) + name = signal.data["init"] + return + + if("status" in signal.data) + broadcast_status() + return //do not update_icon + + broadcast_status() + update_icon() + return + +/obj/machinery/atmospherics/components/unary/vent_scrubber/power_change() + ..() + update_icon_nopipes() + +/obj/machinery/atmospherics/components/unary/vent_scrubber/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/WT = W + if(WT.remove_fuel(0,user)) + playsound(loc, 'sound/items/Welder.ogg', 40, 1) + user << "Now welding the scrubber." + if(do_after(user, 20/W.toolspeed, target = src)) + if(!src || !WT.isOn()) + return + playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1) + if(!welded) + user.visible_message("[user] welds the scrubber shut.","You weld the scrubber shut.", "You hear welding.") + welded = 1 + else + user.visible_message("[user] unwelds the scrubber.", "You unweld the scrubber.", "You hear welding.") + welded = 0 + update_icon() + pipe_vision_img = image(src, loc, layer = ABOVE_HUD_LAYER, dir = dir) + pipe_vision_img.plane = ABOVE_HUD_PLANE + return 0 + else + return ..() + +/obj/machinery/atmospherics/components/unary/vent_scrubber/can_unwrench(mob/user) + if(..()) + if (!(stat & NOPOWER) && on) + user << "You cannot unwrench this [src], turn it off first!" + else + return 1 + +/obj/machinery/atmospherics/components/unary/vent_scrubber/can_crawl_through() + return !welded + +/obj/machinery/atmospherics/components/unary/vent_scrubber/attack_alien(mob/user) + if(!welded || !(do_after(user, 20, target = src))) + return + user.visible_message("[user] furiously claws at [src]!", "You manage to clear away the stuff blocking the scrubber.", "You hear loud scraping noises.") + welded = 0 + update_icon() + pipe_vision_img = image(src, loc, layer = ABOVE_HUD_LAYER, dir = dir) + pipe_vision_img.plane = ABOVE_HUD_PLANE + playsound(loc, 'sound/weapons/bladeslice.ogg', 100, 1) + + + +#undef SIPHONING +#undef SCRUBBING diff --git a/code/modules/atmospherics/machinery/datum_pipeline.dm b/code/modules/atmospherics/machinery/datum_pipeline.dm new file mode 100644 index 0000000..07fe166 --- /dev/null +++ b/code/modules/atmospherics/machinery/datum_pipeline.dm @@ -0,0 +1,242 @@ +/datum/pipeline + var/datum/gas_mixture/air + var/list/datum/gas_mixture/other_airs = list() + + var/list/obj/machinery/atmospherics/pipe/members = list() + var/list/obj/machinery/atmospherics/components/other_atmosmch = list() + + var/update = 1 + +/datum/pipeline/New() + SSair.networks += src + +/datum/pipeline/Destroy() + SSair.networks -= src + if(air && air.volume) + temporarily_store_air() + for(var/obj/machinery/atmospherics/pipe/P in members) + P.parent = null + for(var/obj/machinery/atmospherics/components/C in other_atmosmch) + C.nullifyPipenet(src) + return ..() + +/datum/pipeline/process() + if(update) + update = 0 + reconcile_air() + update = air.react() + +var/pipenetwarnings = 10 + +/datum/pipeline/proc/build_pipeline(obj/machinery/atmospherics/base) + var/volume = 0 + if(istype(base, /obj/machinery/atmospherics/pipe)) + var/obj/machinery/atmospherics/pipe/E = base + volume = E.volume + members += E + if(E.air_temporary) + air = E.air_temporary + E.air_temporary = null + else + addMachineryMember(base) + if(!air) + air = new + air.holder = src + var/list/possible_expansions = list(base) + while(possible_expansions.len>0) + for(var/obj/machinery/atmospherics/borderline in possible_expansions) + + var/list/result = borderline.pipeline_expansion(src) + + if(result.len>0) + for(var/obj/machinery/atmospherics/P in result) + if(istype(P, /obj/machinery/atmospherics/pipe)) + var/obj/machinery/atmospherics/pipe/item = P + if(!members.Find(item)) + + if(item.parent) + if(pipenetwarnings > 0) + warning("build_pipeline(): [item.type] added to a pipenet while still having one. (pipes leading to the same spot stacking in one turf) Nearby: ([item.x], [item.y], [item.z])") + pipenetwarnings -= 1 + if(pipenetwarnings == 0) + warning("build_pipeline(): further messages about pipenets will be supressed") + members += item + possible_expansions += item + + volume += item.volume + item.parent = src + + if(item.air_temporary) + air.merge(item.air_temporary) + item.air_temporary = null + else + P.setPipenet(src, borderline) + addMachineryMember(P) + + possible_expansions -= borderline + + air.volume = volume + +/datum/pipeline/proc/addMachineryMember(obj/machinery/atmospherics/components/C) + other_atmosmch |= C + var/datum/gas_mixture/G = C.returnPipenetAir(src) + other_airs |= G + +/datum/pipeline/proc/addMember(obj/machinery/atmospherics/A, obj/machinery/atmospherics/N) + if(istype(A, /obj/machinery/atmospherics/pipe)) + var/obj/machinery/atmospherics/pipe/P = A + P.parent = src + var/list/adjacent = P.pipeline_expansion() + for(var/obj/machinery/atmospherics/pipe/I in adjacent) + if(I.parent == src) + continue + var/datum/pipeline/E = I.parent + merge(E) + if(!members.Find(P)) + members += P + air.volume += P.volume + else + A.setPipenet(src, N) + addMachineryMember(A) + +/datum/pipeline/proc/merge(datum/pipeline/E) + air.volume += E.air.volume + members.Add(E.members) + for(var/obj/machinery/atmospherics/pipe/S in E.members) + S.parent = src + air.merge(E.air) + for(var/obj/machinery/atmospherics/components/C in E.other_atmosmch) + C.replacePipenet(E, src) + other_atmosmch.Add(E.other_atmosmch) + other_airs.Add(E.other_airs) + E.members.Cut() + E.other_atmosmch.Cut() + qdel(E) + +/obj/machinery/atmospherics/proc/addMember(obj/machinery/atmospherics/A) + return + +/obj/machinery/atmospherics/pipe/addMember(obj/machinery/atmospherics/A) + parent.addMember(A, src) + +/obj/machinery/atmospherics/components/addMember(obj/machinery/atmospherics/A) + var/datum/pipeline/P = returnPipenet(A) + P.addMember(A, src) + + +/datum/pipeline/proc/temporarily_store_air() + //Update individual gas_mixtures by volume ratio + + for(var/obj/machinery/atmospherics/pipe/member in members) + member.air_temporary = new + member.air_temporary.volume = member.volume + member.air_temporary.copy_from(air) + var/member_gases = member.air_temporary.gases + + for(var/id in member_gases) + member_gases[id][MOLES] *= member.volume/air.volume + + member.air_temporary.temperature = air.temperature + +/datum/pipeline/proc/temperature_interact(turf/target, share_volume, thermal_conductivity) + var/total_heat_capacity = air.heat_capacity() + var/partial_heat_capacity = total_heat_capacity*(share_volume/air.volume) + var/target_temperature + var/target_heat_capacity + + if(isopenturf(target)) + + var/turf/open/modeled_location = target + target_temperature = modeled_location.GetTemperature() + target_heat_capacity = modeled_location.GetHeatCapacity() + + if(modeled_location.blocks_air) + + if((modeled_location.heat_capacity>0) && (partial_heat_capacity>0)) + var/delta_temperature = air.temperature - target_temperature + + var/heat = thermal_conductivity*delta_temperature* \ + (partial_heat_capacity*target_heat_capacity/(partial_heat_capacity+target_heat_capacity)) + + air.temperature -= heat/total_heat_capacity + modeled_location.TakeTemperature(heat/target_heat_capacity) + + else + var/delta_temperature = 0 + var/sharer_heat_capacity = 0 + + delta_temperature = (air.temperature - target_temperature) + sharer_heat_capacity = target_heat_capacity + + var/self_temperature_delta = 0 + var/sharer_temperature_delta = 0 + + if((sharer_heat_capacity>0) && (partial_heat_capacity>0)) + var/heat = thermal_conductivity*delta_temperature* \ + (partial_heat_capacity*sharer_heat_capacity/(partial_heat_capacity+sharer_heat_capacity)) + + self_temperature_delta = -heat/total_heat_capacity + sharer_temperature_delta = heat/sharer_heat_capacity + else + return 1 + + air.temperature += self_temperature_delta + modeled_location.TakeTemperature(sharer_temperature_delta) + + + else + if((target.heat_capacity>0) && (partial_heat_capacity>0)) + var/delta_temperature = air.temperature - target.temperature + + var/heat = thermal_conductivity*delta_temperature* \ + (partial_heat_capacity*target.heat_capacity/(partial_heat_capacity+target.heat_capacity)) + + air.temperature -= heat/total_heat_capacity + update = 1 + +/datum/pipeline/proc/return_air() + . = other_airs + air + if(null in .) + stack_trace("[src] has one or more null gas mixtures, which may cause bugs. Null mixtures will not be considered in reconcile_air().") + return removeNullsFromList(.) + +/datum/pipeline/proc/reconcile_air() + var/list/datum/gas_mixture/GL = list() + var/list/datum/pipeline/PL = list() + PL += src + + for(var/i = 1; i <= PL.len; i++) //can't do a for-each here because we may add to the list within the loop + var/datum/pipeline/P = PL[i] + GL += P.return_air() + for(var/obj/machinery/atmospherics/components/binary/valve/V in P.other_atmosmch) + if(V.open) + PL |= V.PARENT1 + PL |= V.PARENT2 + for(var/obj/machinery/atmospherics/components/unary/portables_connector/C in P.other_atmosmch) + if(C.connected_device) + GL += C.portableConnectorReturnAir() + + var/total_thermal_energy = 0 + var/total_heat_capacity = 0 + var/datum/gas_mixture/total_gas_mixture = new(0) + + for(var/i in GL) + var/datum/gas_mixture/G = i + total_gas_mixture.volume += G.volume + + total_gas_mixture.merge(G) + + total_thermal_energy += G.thermal_energy() + total_heat_capacity += G.heat_capacity() + + total_gas_mixture.temperature = total_heat_capacity ? total_thermal_energy/total_heat_capacity : 0 + + if(total_gas_mixture.volume > 0) + //Update individual gas_mixtures by volume ratio + for(var/i in GL) + var/datum/gas_mixture/G = i + G.copy_from(total_gas_mixture) + var/list/G_gases = G.gases + for(var/id in G_gases) + G_gases[id][MOLES] *= G.volume/total_gas_mixture.volume + diff --git a/code/modules/atmospherics/machinery/other/meter.dm b/code/modules/atmospherics/machinery/other/meter.dm new file mode 100644 index 0000000..68776ca --- /dev/null +++ b/code/modules/atmospherics/machinery/other/meter.dm @@ -0,0 +1,144 @@ +/obj/machinery/meter + name = "gas flow meter" + desc = "It measures something." + icon = 'icons/obj/meter.dmi' + icon_state = "meterX" + var/obj/machinery/atmospherics/pipe/target = null + anchored = 1 + power_channel = ENVIRON + var/frequency = 0 + var/id_tag + use_power = 1 + idle_power_usage = 2 + active_power_usage = 4 + obj_integrity = 150 + max_integrity = 150 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 100, bomb = 0, bio = 100, rad = 100, fire = 40, acid = 0) + + +/obj/machinery/meter/New() + ..() + SSair.atmos_machinery += src + src.target = locate(/obj/machinery/atmospherics/pipe) in loc + return 1 + +/obj/machinery/meter/Destroy() + SSair.atmos_machinery -= src + src.target = null + return ..() + +/obj/machinery/meter/initialize() + if (!target) + src.target = locate(/obj/machinery/atmospherics/pipe) in loc + +/obj/machinery/meter/process_atmos() + if(!target) + icon_state = "meterX" + return 0 + + if(stat & (BROKEN|NOPOWER)) + icon_state = "meter0" + return 0 + + use_power(5) + + var/datum/gas_mixture/environment = target.return_air() + if(!environment) + icon_state = "meterX" + return 0 + + var/env_pressure = environment.return_pressure() + if(env_pressure <= 0.15*ONE_ATMOSPHERE) + icon_state = "meter0" + else if(env_pressure <= 1.8*ONE_ATMOSPHERE) + var/val = round(env_pressure/(ONE_ATMOSPHERE*0.3) + 0.5) + icon_state = "meter1_[val]" + else if(env_pressure <= 30*ONE_ATMOSPHERE) + var/val = round(env_pressure/(ONE_ATMOSPHERE*5)-0.35) + 1 + icon_state = "meter2_[val]" + else if(env_pressure <= 59*ONE_ATMOSPHERE) + var/val = round(env_pressure/(ONE_ATMOSPHERE*5) - 6) + 1 + icon_state = "meter3_[val]" + else + icon_state = "meter4" + + if(frequency) + var/datum/radio_frequency/radio_connection = SSradio.return_frequency(frequency) + + if(!radio_connection) + return + + var/datum/signal/signal = new + signal.source = src + signal.transmission_method = 1 + signal.data = list( + "id_tag" = id_tag, + "device" = "AM", + "pressure" = round(env_pressure), + "sigtype" = "status" + ) + radio_connection.post_signal(src, signal) + +/obj/machinery/meter/proc/status() + var/t = "" + if (src.target) + var/datum/gas_mixture/environment = target.return_air() + if(environment) + t += "The pressure gauge reads [round(environment.return_pressure(), 0.01)] kPa; [round(environment.temperature,0.01)] K ([round(environment.temperature-T0C,0.01)]°C)" + else + t += "The sensor error light is blinking." + else + t += "The connect error light is blinking." + return t + +/obj/machinery/meter/examine(mob/user) + ..() + user << status() + + +/obj/machinery/meter/attackby(obj/item/weapon/W, mob/user, params) + if (istype(W, /obj/item/weapon/wrench)) + playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + user << "You begin to unfasten \the [src]..." + if (do_after(user, 40/W.toolspeed, target = src)) + user.visible_message( \ + "[user] unfastens \the [src].", \ + "You unfasten \the [src].", \ + "You hear ratchet.") + new /obj/item/pipe_meter(src.loc) + qdel(src) + else + return ..() + +/obj/machinery/meter/attack_ai(mob/user) + return src.attack_hand(user) + +/obj/machinery/meter/attack_paw(mob/user) + return src.attack_hand(user) + +/obj/machinery/meter/attack_hand(mob/user) + + if(stat & (NOPOWER|BROKEN)) + return 1 + else + usr << status() + return 1 + +/obj/machinery/meter/singularity_pull(S, current_size) + if(current_size >= STAGE_FIVE) + new /obj/item/pipe_meter(loc) + qdel(src) + +// TURF METER - REPORTS A TILE'S AIR CONTENTS +// why are you yelling? + +/obj/machinery/meter/turf/New() + ..() + src.target = loc + return 1 + + +/obj/machinery/meter/turf/initialize() + if (!target) + src.target = loc + diff --git a/code/modules/atmospherics/machinery/other/zvent.dm b/code/modules/atmospherics/machinery/other/zvent.dm new file mode 100644 index 0000000..0df9d17 --- /dev/null +++ b/code/modules/atmospherics/machinery/other/zvent.dm @@ -0,0 +1,35 @@ +/obj/machinery/zvent + name = "interfloor air transfer system" + + icon = 'icons/obj/atmospherics/components/unary_devices.dmi' + icon_state = "vent_map" + density = 0 + anchored=1 + + var/on = 0 + var/volume_rate = 800 + +/obj/machinery/zvent/New() + ..() + SSair.atmos_machinery += src + +/obj/machinery/zvent/Destroy() + SSair.atmos_machinery -= src + return ..() + +/obj/machinery/zvent/process_atmos() + + //all this object does, is make its turf share air with the ones above and below it, if they have a vent too. + if(isturf(loc)) //if we're not on a valid turf, forget it + for (var/new_z in list(-1,1)) //change this list if a fancier system of z-levels gets implemented + var/turf/open/zturf_conn = locate(x,y,z+new_z) + if (istype(zturf_conn)) + var/obj/machinery/zvent/zvent_conn= locate(/obj/machinery/zvent) in zturf_conn + if (istype(zvent_conn)) + //both floors have simulated turfs, share() + var/turf/open/myturf = loc + var/datum/gas_mixture/conn_air = zturf_conn.air //TODO: pop culture reference + var/datum/gas_mixture/my_air = myturf.air + if (istype(conn_air) && istype(my_air)) + my_air.share(conn_air) + air_update_turf() diff --git a/code/modules/atmospherics/machinery/pipes/heat_exchange/he_pipes.dm b/code/modules/atmospherics/machinery/pipes/heat_exchange/he_pipes.dm new file mode 100644 index 0000000..a7556ae --- /dev/null +++ b/code/modules/atmospherics/machinery/pipes/heat_exchange/he_pipes.dm @@ -0,0 +1,90 @@ +/obj/machinery/atmospherics/pipe/heat_exchanging + icon = 'icons/obj/atmospherics/pipes/heat.dmi' + level = 2 + var/initialize_directions_he + var/minimum_temperature_difference = 20 + var/thermal_conductivity = WINDOW_HEAT_TRANSFER_COEFFICIENT + color = "#404040" + buckle_lying = 1 + var/icon_temperature = T20C //stop small changes in temperature causing icon refresh + resistance_flags = LAVA_PROOF | FIRE_PROOF + +/obj/machinery/atmospherics/pipe/heat_exchanging/New() + ..() + add_atom_colour("#404040", FIXED_COLOUR_PRIORITY) + +/obj/machinery/atmospherics/pipe/heat_exchanging/can_be_node(obj/machinery/atmospherics/pipe/heat_exchanging/target) + if(!istype(target)) + return 0 + if(target.initialize_directions_he & get_dir(target,src)) + return 1 + +/obj/machinery/atmospherics/pipe/heat_exchanging/hide() + return + +/obj/machinery/atmospherics/pipe/heat_exchanging/GetInitDirections() + return ..() | initialize_directions_he + +/obj/machinery/atmospherics/pipe/heat_exchanging/process_atmos() + var/environment_temperature = 0 + var/datum/gas_mixture/pipe_air = return_air() + + var/turf/T = loc + if(istype(T)) + if(istype(T, /turf/open/floor/plating/lava)) + environment_temperature = 5000 + else if(T.blocks_air) + environment_temperature = T.temperature + else + var/turf/open/OT = T + environment_temperature = OT.GetTemperature() + else + environment_temperature = T.temperature + + if(abs(environment_temperature-pipe_air.temperature) > minimum_temperature_difference) + parent.temperature_interact(T, volume, thermal_conductivity) + + + //heatup/cooldown any mobs buckled to ourselves based on our temperature + if(has_buckled_mobs()) + var/hc = pipe_air.heat_capacity() + var/mob/living/heat_source = buckled_mobs[1] + //Best guess-estimate of the total bodytemperature of all the mobs, since they share the same environment it's ~ok~ to guess like this + var/avg_temp = (pipe_air.temperature * hc + (heat_source.bodytemperature * buckled_mobs.len) * 3500) / (hc + (buckled_mobs ? buckled_mobs.len * 3500 : 0)) + for(var/m in buckled_mobs) + var/mob/living/L = m + L.bodytemperature = avg_temp + pipe_air.temperature = avg_temp + + + +/obj/machinery/atmospherics/pipe/heat_exchanging/process() + if(!parent) + return //machines subsystem fires before atmos is initialized so this prevents race condition runtimes + + var/datum/gas_mixture/pipe_air = return_air() + + //Heat causes pipe to glow + if(pipe_air.temperature && (icon_temperature > 500 || pipe_air.temperature > 500)) //glow starts at 500K + if(abs(pipe_air.temperature - icon_temperature) > 10) + icon_temperature = pipe_air.temperature + + var/h_r = heat2colour_r(icon_temperature) + var/h_g = heat2colour_g(icon_temperature) + var/h_b = heat2colour_b(icon_temperature) + + if(icon_temperature < 2000)//scale glow until 2000K + var/scale = (icon_temperature - 500) / 1500 + h_r = 64 + (h_r - 64) * scale + h_g = 64 + (h_g - 64) * scale + h_b = 64 + (h_b - 64) * scale + + animate(src, color = rgb(h_r, h_g, h_b), time = 20, easing = SINE_EASING) + + //burn any mobs buckled based on temperature + if(has_buckled_mobs()) + var/heat_limit = 1000 + if(pipe_air.temperature > heat_limit + 1) + for(var/m in buckled_mobs) + var/mob/living/buckled_mob = m + buckled_mob.apply_damage(4 * log(pipe_air.temperature - heat_limit), BURN, "chest") diff --git a/code/modules/atmospherics/machinery/pipes/heat_exchange/junction.dm b/code/modules/atmospherics/machinery/pipes/heat_exchange/junction.dm new file mode 100644 index 0000000..0cba512 --- /dev/null +++ b/code/modules/atmospherics/machinery/pipes/heat_exchange/junction.dm @@ -0,0 +1,50 @@ +/obj/machinery/atmospherics/pipe/heat_exchanging/junction + icon = 'icons/obj/atmospherics/pipes/junction.dmi' + icon_state = "intact" + + name = "junction" + desc = "A one meter junction that connects regular and heat-exchanging pipe" + + minimum_temperature_difference = 300 + thermal_conductivity = WALL_HEAT_TRANSFER_COEFFICIENT + + dir = SOUTH + initialize_directions = NORTH + initialize_directions_he = SOUTH + + device_type = BINARY + +/obj/machinery/atmospherics/pipe/heat_exchanging/junction/SetInitDirections() + switch(dir) + if(SOUTH) + initialize_directions = NORTH + initialize_directions_he = SOUTH + if(NORTH) + initialize_directions = SOUTH + initialize_directions_he = NORTH + if(EAST) + initialize_directions = WEST + initialize_directions_he = EAST + if(WEST) + initialize_directions = EAST + initialize_directions_he = WEST + +/obj/machinery/atmospherics/pipe/heat_exchanging/junction/atmosinit() + var/node2_connect = dir + var/node1_connect = turn(dir, 180) + var/list/node_connects = list(node1_connect, node2_connect) + + ..(node_connects) + +/obj/machinery/atmospherics/pipe/heat_exchanging/junction/can_be_node(obj/machinery/atmospherics/target, iteration) + var/init_dir + switch(iteration) + if(1) + init_dir = target.initialize_directions + if(2) + var/obj/machinery/atmospherics/pipe/heat_exchanging/H = target + if(!istype(H)) + return 0 + init_dir = H.initialize_directions_he + if(init_dir & get_dir(target,src)) + return 1 \ No newline at end of file diff --git a/code/modules/atmospherics/machinery/pipes/heat_exchange/manifold.dm b/code/modules/atmospherics/machinery/pipes/heat_exchange/manifold.dm new file mode 100644 index 0000000..119ca08 --- /dev/null +++ b/code/modules/atmospherics/machinery/pipes/heat_exchange/manifold.dm @@ -0,0 +1,60 @@ +//3-way manifold +/obj/machinery/atmospherics/pipe/heat_exchanging/manifold + icon_state = "manifold" + + name = "pipe manifold" + desc = "A manifold composed of regular pipes" + + dir = SOUTH + initialize_directions_he = EAST|NORTH|WEST + + device_type = TRINARY + +/obj/machinery/atmospherics/pipe/heat_exchanging/manifold/SetInitDirections() + switch(dir) + if(NORTH) + initialize_directions_he = EAST|SOUTH|WEST + if(SOUTH) + initialize_directions_he = WEST|NORTH|EAST + if(EAST) + initialize_directions_he = SOUTH|WEST|NORTH + if(WEST) + initialize_directions_he = NORTH|EAST|SOUTH + +/obj/machinery/atmospherics/pipe/heat_exchanging/manifold/update_icon() + var/invis = invisibility ? "-f" : "" + + icon_state = "manifold_center[invis]" + + cut_overlays() + + //Add non-broken pieces + for(DEVICE_TYPE_LOOP) + if(NODE_I) + add_overlay(getpipeimage('icons/obj/atmospherics/pipes/heat.dmi', "manifold_intact[invis]", get_dir(src, NODE_I))) + +//4-way manifold +/obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w + icon_state = "manifold4w" + + name = "4-way pipe manifold" + desc = "A manifold composed of heat-exchanging pipes" + + initialize_directions_he = NORTH|SOUTH|EAST|WEST + + device_type = QUATERNARY + +/obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w/SetInitDirections() + initialize_directions_he = initial(initialize_directions_he) + +/obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w/update_icon() + var/invis = invisibility ? "-f" : "" + + icon_state = "manifold4w_center[invis]" + + cut_overlays() + + //Add non-broken pieces + for(DEVICE_TYPE_LOOP) + if(NODE_I) + add_overlay(getpipeimage('icons/obj/atmospherics/pipes/heat.dmi', "manifold_intact[invis]", get_dir(src, NODE_I))) \ No newline at end of file diff --git a/code/modules/atmospherics/machinery/pipes/heat_exchange/simple.dm b/code/modules/atmospherics/machinery/pipes/heat_exchange/simple.dm new file mode 100644 index 0000000..9dcad6e --- /dev/null +++ b/code/modules/atmospherics/machinery/pipes/heat_exchange/simple.dm @@ -0,0 +1,33 @@ +/obj/machinery/atmospherics/pipe/heat_exchanging/simple + icon_state = "intact" + + name = "pipe" + desc = "A one meter section of heat-exchanging pipe" + + dir = SOUTH + initialize_directions_he = SOUTH|NORTH + + device_type = BINARY + +/obj/machinery/atmospherics/pipe/heat_exchanging/simple/SetInitDirections() + if(dir in diagonals) + initialize_directions_he = dir + switch(dir) + if(NORTH,SOUTH) + initialize_directions_he = SOUTH|NORTH + if(EAST,WEST) + initialize_directions_he = WEST|EAST + +/obj/machinery/atmospherics/pipe/heat_exchanging/simple/proc/normalize_dir() + if(dir==SOUTH) + setDir(NORTH) + else if(dir==WEST) + setDir(EAST) + +/obj/machinery/atmospherics/pipe/heat_exchanging/simple/atmosinit() + normalize_dir() + ..() + +/obj/machinery/atmospherics/pipe/heat_exchanging/simple/update_icon() + normalize_dir() + ..() \ No newline at end of file diff --git a/code/modules/atmospherics/machinery/pipes/manifold.dm b/code/modules/atmospherics/machinery/pipes/manifold.dm new file mode 100644 index 0000000..fe62ca0 --- /dev/null +++ b/code/modules/atmospherics/machinery/pipes/manifold.dm @@ -0,0 +1,110 @@ +/* +3-Way Manifold +*/ +/obj/machinery/atmospherics/pipe/manifold + icon = 'icons/obj/atmospherics/pipes/manifold.dmi' + icon_state = "manifold" + + name = "pipe manifold" + desc = "A manifold composed of regular pipes" + + dir = SOUTH + initialize_directions = EAST|NORTH|WEST + + device_type = TRINARY + +/obj/machinery/atmospherics/pipe/manifold/SetInitDirections() + switch(dir) + if(NORTH) + initialize_directions = EAST|SOUTH|WEST + if(SOUTH) + initialize_directions = WEST|NORTH|EAST + if(EAST) + initialize_directions = SOUTH|WEST|NORTH + if(WEST) + initialize_directions = NORTH|EAST|SOUTH + +/obj/machinery/atmospherics/pipe/manifold/update_icon() + var/invis = invisibility ? "-f" : "" + + icon_state = "manifold_center[invis]" + + cut_overlays() + + //Add non-broken pieces + for(DEVICE_TYPE_LOOP) + if(NODE_I) + add_overlay(getpipeimage('icons/obj/atmospherics/pipes/manifold.dmi', "manifold_full[invis]", get_dir(src, NODE_I))) + +//Colored pipes, use these for mapping +/obj/machinery/atmospherics/pipe/manifold/general + name="pipe" + +/obj/machinery/atmospherics/pipe/manifold/general/visible + level = 2 + +/obj/machinery/atmospherics/pipe/manifold/general/hidden + level = 1 + +/obj/machinery/atmospherics/pipe/manifold/scrubbers + name="scrubbers pipe" + pipe_color=rgb(255,0,0) + color=rgb(255,0,0) + +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible + level = 2 + +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden + level = 1 + +/obj/machinery/atmospherics/pipe/manifold/supply + name="air supply pipe" + pipe_color=rgb(0,0,255) + color=rgb(0,0,255) + +/obj/machinery/atmospherics/pipe/manifold/supply/visible + level = 2 + +/obj/machinery/atmospherics/pipe/manifold/supply/hidden + level = 1 + +/obj/machinery/atmospherics/pipe/manifold/supplymain + name="main air supply pipe" + pipe_color=rgb(130,43,272) + color=rgb(130,43,272) + +/obj/machinery/atmospherics/pipe/manifold/supplymain/visible + level = 2 + +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden + level = 1 + +/obj/machinery/atmospherics/pipe/manifold/yellow + pipe_color=rgb(255,198,0) + color=rgb(255,198,0) + +/obj/machinery/atmospherics/pipe/manifold/yellow/visible + level = 2 + +/obj/machinery/atmospherics/pipe/manifold/yellow/hidden + level = 1 + +/obj/machinery/atmospherics/pipe/manifold/cyan + pipe_color=rgb(0,256,249) + color=rgb(0,256,249) + +/obj/machinery/atmospherics/pipe/manifold/cyan/visible + level = 2 + +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden + level = 1 + +/obj/machinery/atmospherics/pipe/manifold/green + pipe_color=rgb(30,256,0) + color=rgb(30,256,0) + +/obj/machinery/atmospherics/pipe/manifold/green/visible + level = 2 + +/obj/machinery/atmospherics/pipe/manifold/green/hidden + level = 1 diff --git a/code/modules/atmospherics/machinery/pipes/manifold4w.dm b/code/modules/atmospherics/machinery/pipes/manifold4w.dm new file mode 100644 index 0000000..8cd6837 --- /dev/null +++ b/code/modules/atmospherics/machinery/pipes/manifold4w.dm @@ -0,0 +1,101 @@ +/* +4-way manifold +*/ +/obj/machinery/atmospherics/pipe/manifold4w + icon = 'icons/obj/atmospherics/pipes/manifold.dmi' + icon_state = "manifold4w" + + name = "4-way pipe manifold" + desc = "A manifold composed of regular pipes" + + initialize_directions = NORTH|SOUTH|EAST|WEST + + device_type = QUATERNARY + +/obj/machinery/atmospherics/pipe/manifold4w/SetInitDirections() + initialize_directions = initial(initialize_directions) + +/obj/machinery/atmospherics/pipe/manifold4w/update_icon() + var/invis = invisibility ? "-f" : "" + + icon_state = "manifold4w_center[invis]" + + cut_overlays() + + //Add non-broken pieces + for(DEVICE_TYPE_LOOP) + if(NODE_I) + add_overlay(getpipeimage('icons/obj/atmospherics/pipes/manifold.dmi', "manifold_full[invis]", get_dir(src, NODE_I))) + +//Colored pipes, use these for mapping +/obj/machinery/atmospherics/pipe/manifold4w/general + name="pipe" + +/obj/machinery/atmospherics/pipe/manifold4w/general/visible + level = 2 + +/obj/machinery/atmospherics/pipe/manifold4w/general/hidden + level = 1 + +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers + name="scrubbers pipe" + pipe_color=rgb(255,0,0) + color=rgb(255,0,0) + +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/visible + level = 2 + +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden + level = 1 + +/obj/machinery/atmospherics/pipe/manifold4w/supply + name="air supply pipe" + pipe_color=rgb(0,0,255) + color=rgb(0,0,255) + +/obj/machinery/atmospherics/pipe/manifold4w/supply/visible + level = 2 + +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden + level = 1 + +/obj/machinery/atmospherics/pipe/manifold4w/supplymain + name="main air supply pipe" + pipe_color=rgb(130,43,272) + color=rgb(130,43,272) + +/obj/machinery/atmospherics/pipe/manifold4w/supplymain/visible + level = 2 + +/obj/machinery/atmospherics/pipe/manifold4w/supplymain/hidden + level = 1 + +/obj/machinery/atmospherics/pipe/manifold4w/yellow + pipe_color=rgb(255,198,0) + color=rgb(255,198,0) + +/obj/machinery/atmospherics/pipe/manifold4w/yellow/visible + level = 2 + +/obj/machinery/atmospherics/pipe/manifold4w/yellow/hidden + level = 1 + +/obj/machinery/atmospherics/pipe/manifold4w/cyan + pipe_color=rgb(0,256,249) + color=rgb(0,256,249) + +/obj/machinery/atmospherics/pipe/manifold4w/cyan/visible + level = 2 + +/obj/machinery/atmospherics/pipe/manifold4w/cyan/hidden + level = 1 + +/obj/machinery/atmospherics/pipe/manifold4w/green + pipe_color=rgb(30,256,0) + color=rgb(30,256,0) + +/obj/machinery/atmospherics/pipe/manifold4w/green/visible + level = 2 + +/obj/machinery/atmospherics/pipe/manifold4w/green/hidden + level = 1 diff --git a/code/modules/atmospherics/machinery/pipes/pipes.dm b/code/modules/atmospherics/machinery/pipes/pipes.dm new file mode 100644 index 0000000..a0f93f3 --- /dev/null +++ b/code/modules/atmospherics/machinery/pipes/pipes.dm @@ -0,0 +1,105 @@ +/obj/machinery/atmospherics/pipe + var/datum/gas_mixture/air_temporary //used when reconstructing a pipeline that broke + var/volume = 0 + + level = 1 + + use_power = 0 + can_unwrench = 1 + var/datum/pipeline/parent = null + + //Buckling + can_buckle = 1 + buckle_requires_restraints = 1 + buckle_lying = -1 + +/obj/machinery/atmospherics/pipe/New() + add_atom_colour(pipe_color, FIXED_COLOUR_PRIORITY) + volume = 35 * device_type + ..() + +/obj/machinery/atmospherics/pipe/nullifyNode(I) + var/obj/machinery/atmospherics/oldN = NODE_I + ..() + if(oldN) + oldN.build_network() + +/obj/machinery/atmospherics/pipe/update_icon() //overridden by manifolds + if(NODE1&&NODE2) + icon_state = "intact[invisibility ? "-f" : "" ]" + else + var/have_node1 = NODE1?1:0 + var/have_node2 = NODE2?1:0 + icon_state = "exposed[have_node1][have_node2][invisibility ? "-f" : "" ]" + +/obj/machinery/atmospherics/pipe/atmosinit() + var/turf/T = loc // hide if turf is not intact + hide(T.intact) + ..() + +/obj/machinery/atmospherics/pipe/hide(i) + if(level == 1 && isturf(loc)) + invisibility = i ? INVISIBILITY_MAXIMUM : 0 + update_icon() + +/obj/machinery/atmospherics/pipe/proc/check_pressure(pressure) + //Return 1 if parent should continue checking other pipes + //Return null if parent should stop checking other pipes. Recall: del(src) will by default return null + return 1 + +/obj/machinery/atmospherics/pipe/proc/releaseAirToTurf() + if(air_temporary) + var/turf/T = loc + T.assume_air(air_temporary) + air_update_turf() + +/obj/machinery/atmospherics/pipe/return_air() + return parent.air + +/obj/machinery/atmospherics/pipe/build_network() + if(!parent) + parent = new /datum/pipeline() + parent.build_pipeline(src) + +/obj/machinery/atmospherics/pipe/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/device/analyzer)) + atmosanalyzer_scan(parent.air, user) + else + return ..() + +/obj/machinery/atmospherics/pipe/returnPipenet() + return parent + +/obj/machinery/atmospherics/pipe/setPipenet(datum/pipeline/P) + parent = P + +/obj/machinery/atmospherics/pipe/Destroy() + releaseAirToTurf() + qdel(air_temporary) + air_temporary = null + + var/turf/T = loc + for(var/obj/machinery/meter/meter in T) + if(meter.target == src) + var/obj/item/pipe_meter/PM = new (T) + meter.transfer_fingerprints_to(PM) + qdel(meter) + . = ..() + + if(parent && !qdeleted(parent)) + qdel(parent) + parent = null + +/obj/machinery/atmospherics/pipe/proc/update_node_icon() + for(DEVICE_TYPE_LOOP) + if(NODE_I) + var/obj/machinery/atmospherics/N = NODE_I + N.update_icon() + +/obj/machinery/atmospherics/pipe/returnPipenets() + . = list(parent) + +/obj/machinery/atmospherics/pipe/run_obj_armor(damage_amount, damage_type, damage_flag = 0, attack_dir) + if(damage_flag == "melee" && damage_amount < 12) + return 0 + . = ..() diff --git a/code/modules/atmospherics/machinery/pipes/simple.dm b/code/modules/atmospherics/machinery/pipes/simple.dm new file mode 100644 index 0000000..03560c1 --- /dev/null +++ b/code/modules/atmospherics/machinery/pipes/simple.dm @@ -0,0 +1,112 @@ +/* +Simple Pipe +The regular pipe you see everywhere, including bent ones. +*/ + +/obj/machinery/atmospherics/pipe/simple + icon = 'icons/obj/atmospherics/pipes/simple.dmi' + icon_state = "intact" + + name = "pipe" + desc = "A one meter section of regular pipe" + + dir = SOUTH + initialize_directions = SOUTH|NORTH + + device_type = BINARY + +/obj/machinery/atmospherics/pipe/simple/SetInitDirections() + if(dir in diagonals) + initialize_directions = dir + switch(dir) + if(NORTH,SOUTH) + initialize_directions = SOUTH|NORTH + if(EAST,WEST) + initialize_directions = EAST|WEST + +/obj/machinery/atmospherics/pipe/simple/atmosinit() + normalize_dir() + ..() + +/obj/machinery/atmospherics/pipe/simple/proc/normalize_dir() + if(dir==SOUTH) + setDir(NORTH) + else if(dir==WEST) + setDir(EAST) + +/obj/machinery/atmospherics/pipe/simple/update_icon() + normalize_dir() + ..() + +//Colored pipes, use these for mapping +/obj/machinery/atmospherics/pipe/simple/general + name="pipe" + +/obj/machinery/atmospherics/pipe/simple/general/visible + level = 2 + +/obj/machinery/atmospherics/pipe/simple/general/hidden + level = 1 + +/obj/machinery/atmospherics/pipe/simple/scrubbers + name="scrubbers pipe" + pipe_color=rgb(255,0,0) + color=rgb(255,0,0) + +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible + level = 2 + +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden + level = 1 + +/obj/machinery/atmospherics/pipe/simple/supply + name="air supply pipe" + pipe_color=rgb(0,0,255) + color=rgb(0,0,255) + +/obj/machinery/atmospherics/pipe/simple/supply/visible + level = 2 + +/obj/machinery/atmospherics/pipe/simple/supply/hidden + level = 1 + +/obj/machinery/atmospherics/pipe/simple/supplymain + name="main air supply pipe" + pipe_color=rgb(130,43,272) + color=rgb(130,43,272) + +/obj/machinery/atmospherics/pipe/simple/supplymain/visible + level = 2 + +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden + level = 1 + +/obj/machinery/atmospherics/pipe/simple/yellow + pipe_color=rgb(255,198,0) + color=rgb(255,198,0) + +/obj/machinery/atmospherics/pipe/simple/yellow/visible + level = 2 + +/obj/machinery/atmospherics/pipe/simple/yellow/hidden + level = 1 + +/obj/machinery/atmospherics/pipe/simple/cyan + pipe_color=rgb(0,256,249) + color=rgb(0,256,249) + +/obj/machinery/atmospherics/pipe/simple/cyan/visible + level = 2 + +/obj/machinery/atmospherics/pipe/simple/cyan/hidden + level = 1 + +/obj/machinery/atmospherics/pipe/simple/green + pipe_color=rgb(30,256,0) + color=rgb(30,256,0) + +/obj/machinery/atmospherics/pipe/simple/green/visible + level = 2 + +/obj/machinery/atmospherics/pipe/simple/green/hidden + level = 1 diff --git a/code/modules/atmospherics/machinery/portable/canister.dm b/code/modules/atmospherics/machinery/portable/canister.dm new file mode 100644 index 0000000..0e722ac --- /dev/null +++ b/code/modules/atmospherics/machinery/portable/canister.dm @@ -0,0 +1,351 @@ +#define CAN_MAX_RELEASE_PRESSURE (ONE_ATMOSPHERE * 10) +#define CAN_MIN_RELEASE_PRESSURE (ONE_ATMOSPHERE / 10) +#define CAN_DEFAULT_RELEASE_PRESSURE (ONE_ATMOSPHERE) + +/obj/machinery/portable_atmospherics/canister + name = "canister" + desc = "A canister for the storage of gas." + icon_state = "yellow" + density = 1 + + var/valve_open = FALSE + var/obj/machinery/atmospherics/components/binary/passive_gate/pump + var/release_log = "" + + volume = 1000 + var/filled = 0.5 + var/gas_type = "" + var/release_pressure = ONE_ATMOSPHERE + + armor = list(melee = 50, bullet = 50, laser = 50, energy = 100, bomb = 10, bio = 100, rad = 100, fire = 80, acid = 50) + obj_integrity = 250 + max_integrity = 250 + integrity_failure = 100 + pressure_resistance = 7 * ONE_ATMOSPHERE + var/temperature_resistance = 1000 + T0C + var/starter_temp + + var/update = 0 + var/static/list/label2types = list( + "n2" = /obj/machinery/portable_atmospherics/canister/nitrogen, + "o2" = /obj/machinery/portable_atmospherics/canister/oxygen, + "co2" = /obj/machinery/portable_atmospherics/canister/carbon_dioxide, + "plasma" = /obj/machinery/portable_atmospherics/canister/toxins, + "n2o" = /obj/machinery/portable_atmospherics/canister/nitrous_oxide, + "bz" = /obj/machinery/portable_atmospherics/canister/bz, + "air" = /obj/machinery/portable_atmospherics/canister/air, + "freon" = /obj/machinery/portable_atmospherics/canister/freon, + "water vapor" = /obj/machinery/portable_atmospherics/canister/water_vapor, + "caution" = /obj/machinery/portable_atmospherics/canister, + ) + +/obj/machinery/portable_atmospherics/canister/nitrogen + name = "n2 canister" + desc = "Nitrogen gas. Reportedly useful for something." + icon_state = "red" + gas_type = "n2" + +/obj/machinery/portable_atmospherics/canister/oxygen + name = "o2 canister" + desc = "Oxygen. Necessary for human life." + icon_state = "blue" + gas_type = "o2" + +/obj/machinery/portable_atmospherics/canister/carbon_dioxide + name = "co2 canister" + desc = "Carbon dioxide. What the fuck is carbon dioxide?" + icon_state = "black" + gas_type = "co2" + +/obj/machinery/portable_atmospherics/canister/toxins + name = "plasma canister" + desc = "Plasma gas. The reason YOU are here. Highly toxic." + icon_state = "orange" + gas_type = "plasma" + +/obj/machinery/portable_atmospherics/canister/agent_b + name = "agent b canister" + desc = "Oxygen Agent B. You're not quite sure what it does." + gas_type = "agent_b" + +/obj/machinery/portable_atmospherics/canister/bz + name = "BZ canister" + desc = "BZ, a powerful hallucinogenic nerve agent." + icon_state = "purple" + gas_type = "bz" + +/obj/machinery/portable_atmospherics/canister/nitrous_oxide + name = "n2o canister" + desc = "Nitrous oxide gas. Known to cause drowsiness." + icon_state = "redws" + gas_type = "n2o" + +/obj/machinery/portable_atmospherics/canister/air + name = "air canister" + desc = "Pre-mixed air." + icon_state = "grey" + +/obj/machinery/portable_atmospherics/canister/freon + name = "freon canister" + desc = "Freon. Great for the atmosphere!" + icon_state = "freon" + gas_type = "freon" + starter_temp = 120 + +/obj/machinery/portable_atmospherics/canister/water_vapor + name = "water vapor canister" + desc = "Water Vapor. We get it, you vape." + icon_state = "water_vapor" + gas_type = "water_vapor" + filled = 1 + +/obj/machinery/portable_atmospherics/canister/New(loc, datum/gas_mixture/existing_mixture) + ..() + if(existing_mixture) + air_contents.copy_from(existing_mixture) + else + create_gas() + pump = new(src, FALSE) + pump.on = TRUE + pump.stat = 0 + pump.build_network() + + update_icon() + +/obj/machinery/portable_atmospherics/canister/Destroy() + qdel(pump) + pump = null + return ..() + +/obj/machinery/portable_atmospherics/canister/proc/create_gas() + if(gas_type) + air_contents.add_gas(gas_type) + if(starter_temp) + air_contents.temperature = starter_temp + air_contents.gases[gas_type][MOLES] = (maximum_pressure * filled) * air_contents.volume / (R_IDEAL_GAS_EQUATION * air_contents.temperature) + if(starter_temp) + air_contents.temperature = starter_temp +/obj/machinery/portable_atmospherics/canister/air/create_gas() + air_contents.add_gases("o2","n2") + air_contents.gases["o2"][MOLES] = (O2STANDARD * maximum_pressure * filled) * air_contents.volume / (R_IDEAL_GAS_EQUATION * air_contents.temperature) + air_contents.gases["n2"][MOLES] = (N2STANDARD * maximum_pressure * filled) * air_contents.volume / (R_IDEAL_GAS_EQUATION * air_contents.temperature) + +#define HOLDING 1 +#define CONNECTED 2 +#define EMPTY 4 +#define LOW 8 +#define FULL 16 +#define DANGER 32 +/obj/machinery/portable_atmospherics/canister/update_icon() + if(stat & BROKEN) + cut_overlays() + icon_state = "[initial(icon_state)]-1" + return + + var/last_update = update + update = 0 + + if(holding) + update |= HOLDING + if(connected_port) + update |= CONNECTED + var/pressure = air_contents.return_pressure() + if(pressure < 10) + update |= EMPTY + else if(pressure < ONE_ATMOSPHERE) + update |= LOW + else if(pressure < 15 * ONE_ATMOSPHERE) + update |= FULL + else + update |= DANGER + + if(update == last_update) + return + + cut_overlays() + if(update & HOLDING) + add_overlay("can-open") + if(update & CONNECTED) + add_overlay("can-connector") + if(update & EMPTY) + add_overlay("can-o0") + else if(update & LOW) + add_overlay("can-o1") + else if(update & FULL) + add_overlay("can-o2") + else if(update & DANGER) + add_overlay("can-o3") +#undef HOLDING +#undef CONNECTED +#undef EMPTY +#undef LOW +#undef FULL +#undef DANGER + +/obj/machinery/portable_atmospherics/canister/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) + if(exposed_temperature > temperature_resistance) + take_damage(5, BURN, 0) + + +/obj/machinery/portable_atmospherics/canister/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + if(!(stat & BROKEN)) + canister_break() + if(disassembled) + new /obj/item/stack/sheet/metal (loc, 10) + else + new /obj/item/stack/sheet/metal (loc, 5) + qdel(src) + +/obj/machinery/portable_atmospherics/canister/attackby(obj/item/weapon/W, mob/user, params) + if(user.a_intent != "harm" && istype(W, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/WT = W + if(stat & BROKEN) + if(!WT.remove_fuel(0, user)) + return + playsound(loc, 'sound/items/Welder.ogg', 40, 1) + user << "You begin cutting [src] apart..." + if(do_after(user, 30, target = src)) + deconstruct(TRUE) + else + user << "You cannot slice [src] apart when it isn't broken." + return 1 + else + return ..() + +/obj/machinery/portable_atmospherics/canister/obj_break(damage_flag) + if((stat & BROKEN) || (flags & NODECONSTRUCT)) + return + canister_break() + +/obj/machinery/portable_atmospherics/canister/proc/canister_break() + disconnect() + var/datum/gas_mixture/expelled_gas = air_contents.remove(air_contents.total_moles()) + var/turf/T = get_turf(src) + T.assume_air(expelled_gas) + air_update_turf() + + stat |= BROKEN + density = 0 + playsound(src.loc, 'sound/effects/spray.ogg', 10, 1, -3) + update_icon() + investigate_log("was destroyed.", "atmos") + + if(holding) + holding.forceMove(T) + holding = null + +/obj/machinery/portable_atmospherics/canister/process_atmos() + ..() + if(stat & BROKEN) + return PROCESS_KILL + if(!valve_open) + pump.AIR1 = null + pump.AIR2 = null + return + + var/turf/T = get_turf(src) + pump.AIR1 = air_contents + pump.AIR2 = holding ? holding.air_contents : T.return_air() + pump.target_pressure = release_pressure + + pump.process_atmos() // Pump gas. + if(!holding) + air_update_turf() // Update the environment if needed. + update_icon() + +/obj/machinery/portable_atmospherics/canister/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ + datum/tgui/master_ui = null, datum/ui_state/state = physical_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "canister", name, 420, 405, master_ui, state) + ui.open() + +/obj/machinery/portable_atmospherics/canister/ui_data() + var/data = list() + data["portConnected"] = connected_port ? 1 : 0 + data["tankPressure"] = round(air_contents.return_pressure() ? air_contents.return_pressure() : 0) + data["releasePressure"] = round(release_pressure ? release_pressure : 0) + data["defaultReleasePressure"] = round(CAN_DEFAULT_RELEASE_PRESSURE) + data["minReleasePressure"] = round(CAN_MIN_RELEASE_PRESSURE) + data["maxReleasePressure"] = round(CAN_MAX_RELEASE_PRESSURE) + data["valveOpen"] = valve_open ? 1 : 0 + + data["hasHoldingTank"] = holding ? 1 : 0 + if (holding) + data["holdingTank"] = list() + data["holdingTank"]["name"] = holding.name + data["holdingTank"]["tankPressure"] = round(holding.air_contents.return_pressure()) + return data + +/obj/machinery/portable_atmospherics/canister/ui_act(action, params) + if(..()) + return + switch(action) + if("relabel") + var/label = input("New canister label:", name) as null|anything in label2types + if(label && !..()) + var/newtype = label2types[label] + if(newtype) + var/obj/machinery/portable_atmospherics/canister/replacement = new newtype(loc, air_contents) + replacement.interact(usr) + qdel(src) + if("pressure") + var/pressure = params["pressure"] + if(pressure == "reset") + pressure = CAN_DEFAULT_RELEASE_PRESSURE + . = TRUE + else if(pressure == "min") + pressure = CAN_MIN_RELEASE_PRESSURE + . = TRUE + else if(pressure == "max") + pressure = CAN_MAX_RELEASE_PRESSURE + . = TRUE + else if(pressure == "input") + pressure = input("New release pressure ([CAN_MIN_RELEASE_PRESSURE]-[CAN_MAX_RELEASE_PRESSURE] kPa):", name, release_pressure) as num|null + if(!isnull(pressure) && !..()) + . = TRUE + else if(text2num(pressure) != null) + pressure = text2num(pressure) + . = TRUE + if(.) + release_pressure = Clamp(round(pressure), CAN_MIN_RELEASE_PRESSURE, CAN_MAX_RELEASE_PRESSURE) + investigate_log("was set to [release_pressure] kPa by [key_name(usr)].", "atmos") + if("valve") + var/logmsg + valve_open = !valve_open + if(valve_open) + logmsg = "Valve was opened by [key_name(usr)], starting a transfer into \the [holding || "air"].
    " + if(!holding) + var/plasma = air_contents.gases["plasma"] + var/n2o = air_contents.gases["n2o"] + var/bz = air_contents.gases["bz"] + var/freon = air_contents.gases["freon"] + if(n2o || plasma || bz || freon) + message_admins("[key_name_admin(usr)] (?) (FLW) opened a canister that contains the following: (JMP)") + log_admin("[key_name(usr)] opened a canister that contains the following at [x], [y], [z]:") + if(plasma) + log_admin("Plasma") + message_admins("Plasma") + if(n2o) + log_admin("N2O") + message_admins("N2O") + if(bz) + log_admin("BZ Gas") + message_admins("BZ Gas") + if(freon) + log_admin("Freon") + message_admins("Freon") + else + logmsg = "Valve was closed by [key_name(usr)], stopping the transfer into \the [holding || "air"].
    " + investigate_log(logmsg, "atmos") + release_log += logmsg + . = TRUE + if("eject") + if(holding) + if(valve_open) + investigate_log("[key_name(usr)] removed the [holding], leaving the valve open and transfering into the air
    ", "atmos") + holding.loc = get_turf(src) + holding = null + . = TRUE + update_icon() diff --git a/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm b/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm new file mode 100644 index 0000000..40a2aa3 --- /dev/null +++ b/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm @@ -0,0 +1,121 @@ +/obj/machinery/portable_atmospherics + name = "portable_atmospherics" + icon = 'icons/obj/atmos.dmi' + use_power = 0 + obj_integrity = 250 + max_integrity = 250 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 100, bomb = 0, bio = 100, rad = 100, fire = 60, acid = 30) + + + var/datum/gas_mixture/air_contents + var/obj/machinery/atmospherics/components/unary/portables_connector/connected_port + var/obj/item/weapon/tank/holding + + var/volume = 0 + + var/maximum_pressure = 90 * ONE_ATMOSPHERE + +/obj/machinery/portable_atmospherics/New() + ..() + SSair.atmos_machinery += src + + air_contents = new + air_contents.volume = volume + air_contents.temperature = T20C + air_contents.holder = src + + return 1 + +/obj/machinery/portable_atmospherics/Destroy() + SSair.atmos_machinery -= src + + disconnect() + qdel(air_contents) + air_contents = null + + return ..() + +/obj/machinery/portable_atmospherics/process_atmos() + if(!connected_port) // Pipe network handles reactions if connected. + air_contents.react() + else + update_icon() + +/obj/machinery/portable_atmospherics/return_air() + return air_contents + +/obj/machinery/portable_atmospherics/proc/connect(obj/machinery/atmospherics/components/unary/portables_connector/new_port) + //Make sure not already connected to something else + if(connected_port || !new_port || new_port.connected_device) + return 0 + + //Make sure are close enough for a valid connection + if(new_port.loc != loc) + return 0 + + //Perform the connection + connected_port = new_port + connected_port.connected_device = src + var/datum/pipeline/connected_port_parent = connected_port.PARENT1 + connected_port_parent.reconcile_air() + + anchored = 1 //Prevent movement + return 1 + +/obj/machinery/portable_atmospherics/proc/disconnect() + if(!connected_port) + return 0 + anchored = 0 + connected_port.connected_device = null + connected_port = null + return 1 + +/obj/machinery/portable_atmospherics/portableConnectorReturnAir() + return air_contents + +/obj/machinery/portable_atmospherics/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/weapon/tank)) + if(!(stat & BROKEN)) + var/obj/item/weapon/tank/T = W + if(holding || !user.drop_item()) + return + T.loc = src + holding = T + update_icon() + else if(istype(W, /obj/item/weapon/wrench)) + if(!(stat & BROKEN)) + if(connected_port) + disconnect() + playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + user.visible_message( \ + "[user] disconnects [src].", \ + "You unfasten [src] from the port.", \ + "You hear a ratchet.") + update_icon() + return + else + var/obj/machinery/atmospherics/components/unary/portables_connector/possible_port = locate(/obj/machinery/atmospherics/components/unary/portables_connector) in loc + if(!possible_port) + user << "Nothing happens." + return + if(!connect(possible_port)) + user << "[name] failed to connect to the port." + return + playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + user.visible_message( \ + "[user] connects [src].", \ + "You fasten [src] to the port.", \ + "You hear a ratchet.") + update_icon() + else if(istype(W, /obj/item/device/analyzer) && Adjacent(user)) + atmosanalyzer_scan(air_contents, user) + else + return ..() + +/obj/machinery/portable_atmospherics/attacked_by(obj/item/I, mob/user) + if(I.force < 10 && !(stat & BROKEN)) + take_damage(0) + else + investigate_log("was smacked with \a [I] by [key_name(user)].", "atmos") + add_fingerprint(user) + ..() \ No newline at end of file diff --git a/code/modules/atmospherics/machinery/portable/pump.dm b/code/modules/atmospherics/machinery/portable/pump.dm new file mode 100644 index 0000000..4144cf5 --- /dev/null +++ b/code/modules/atmospherics/machinery/portable/pump.dm @@ -0,0 +1,141 @@ +#define PUMP_OUT "out" +#define PUMP_IN "in" +#define PUMP_MAX_PRESSURE (ONE_ATMOSPHERE * 30) +#define PUMP_MIN_PRESSURE (ONE_ATMOSPHERE / 10) +#define PUMP_DEFAULT_PRESSURE (ONE_ATMOSPHERE) + +/obj/machinery/portable_atmospherics/pump + name = "portable air pump" + icon_state = "psiphon:0" + density = 1 + + var/on = FALSE + var/direction = PUMP_OUT + var/obj/machinery/atmospherics/components/binary/pump/pump + + volume = 1000 + +/obj/machinery/portable_atmospherics/pump/New() + ..() + pump = new(src, FALSE) + pump.on = TRUE + pump.stat = 0 + pump.build_network() + +/obj/machinery/portable_atmospherics/pump/Destroy() + var/turf/T = get_turf(src) + T.assume_air(air_contents) + air_update_turf() + qdel(pump) + pump = null + return ..() + +/obj/machinery/portable_atmospherics/pump/update_icon() + icon_state = "psiphon:[on]" + + cut_overlays() + if(holding) + add_overlay("siphon-open") + if(connected_port) + add_overlay("siphon-connector") + +/obj/machinery/portable_atmospherics/pump/process_atmos() + ..() + if(!on) + pump.AIR1 = null + pump.AIR2 = null + return + + var/turf/T = get_turf(src) + if(direction == PUMP_OUT) // Hook up the internal pump. + pump.AIR1 = holding ? holding.air_contents : air_contents + pump.AIR2 = holding ? air_contents : T.return_air() + else + pump.AIR1 = holding ? air_contents : T.return_air() + pump.AIR2 = holding ? holding.air_contents : air_contents + + pump.process_atmos() // Pump gas. + if(!holding) + air_update_turf() // Update the environment if needed. + +/obj/machinery/portable_atmospherics/pump/emp_act(severity) + if(is_operational()) + if(prob(50 / severity)) + on = !on + if(prob(100 / severity)) + direction = PUMP_OUT + pump.target_pressure = rand(0, 100 * ONE_ATMOSPHERE) + update_icon() + ..() + + +/obj/machinery/portable_atmospherics/pump/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ + datum/tgui/master_ui = null, datum/ui_state/state = physical_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "portable_pump", name, 420, 415, master_ui, state) + ui.open() + +/obj/machinery/portable_atmospherics/pump/ui_data() + var/data = list() + data["on"] = on + data["direction"] = direction + data["connected"] = connected_port ? 1 : 0 + data["pressure"] = round(air_contents.return_pressure() ? air_contents.return_pressure() : 0) + data["target_pressure"] = round(pump.target_pressure ? pump.target_pressure : 0) + data["default_pressure"] = round(PUMP_DEFAULT_PRESSURE) + data["min_pressure"] = round(PUMP_MIN_PRESSURE) + data["max_pressure"] = round(PUMP_MAX_PRESSURE) + + if(holding) + data["holding"] = list() + data["holding"]["name"] = holding.name + data["holding"]["pressure"] = round(holding.air_contents.return_pressure()) + return data + +/obj/machinery/portable_atmospherics/pump/ui_act(action, params) + if(..()) + return + switch(action) + if("power") + on = !on + if(on && !holding) + var/plasma = air_contents.gases["plasma"] + var/n2o = air_contents.gases["n2o"] + if(n2o || plasma) + message_admins("[key_name_admin(usr)] (?) (FLW) turned on a pump that contains [n2o ? "N2O" : ""][n2o && plasma ? " & " : ""][plasma ? "Plasma" : ""]! (JMP)") + log_admin("[key_name(usr)] turned on a pump that contains [n2o ? "N2O" : ""][n2o && plasma ? " & " : ""][plasma ? "Plasma" : ""] at [x], [y], [z]") + . = TRUE + if("direction") + if(direction == PUMP_OUT) + direction = PUMP_IN + else + direction = PUMP_OUT + . = TRUE + if("pressure") + var/pressure = params["pressure"] + if(pressure == "reset") + pressure = PUMP_DEFAULT_PRESSURE + . = TRUE + else if(pressure == "min") + pressure = PUMP_MIN_PRESSURE + . = TRUE + else if(pressure == "max") + pressure = PUMP_MAX_PRESSURE + . = TRUE + else if(pressure == "input") + pressure = input("New release pressure ([PUMP_MIN_PRESSURE]-[PUMP_MAX_PRESSURE] kPa):", name, pump.target_pressure) as num|null + if(!isnull(pressure) && !..()) + . = TRUE + else if(text2num(pressure) != null) + pressure = text2num(pressure) + . = TRUE + if(.) + pump.target_pressure = Clamp(round(pressure), PUMP_MIN_PRESSURE, PUMP_MAX_PRESSURE) + investigate_log("was set to [pump.target_pressure] kPa by [key_name(usr)].", "atmos") + if("eject") + if(holding) + holding.loc = get_turf(src) + holding = null + . = TRUE + update_icon() \ No newline at end of file diff --git a/code/modules/atmospherics/machinery/portable/scrubber.dm b/code/modules/atmospherics/machinery/portable/scrubber.dm new file mode 100644 index 0000000..308daa4 --- /dev/null +++ b/code/modules/atmospherics/machinery/portable/scrubber.dm @@ -0,0 +1,135 @@ +/obj/machinery/portable_atmospherics/scrubber + name = "portable air scrubber" + icon_state = "pscrubber:0" + density = 1 + + var/on = FALSE + var/volume_rate = 1000 + volume = 1000 + + var/list/scrubbing = list("plasma", "co2", "n2o", "agent_b", "bz", "freon", "water_vapor") + +/obj/machinery/portable_atmospherics/scrubber/Destroy() + var/turf/T = get_turf(src) + T.assume_air(air_contents) + air_update_turf() + return ..() + +/obj/machinery/portable_atmospherics/scrubber/update_icon() + icon_state = "pscrubber:[on]" + + cut_overlays() + if(holding) + add_overlay("scrubber-open") + if(connected_port) + add_overlay("scrubber-connector") + +/obj/machinery/portable_atmospherics/scrubber/process_atmos() + ..() + if(!on) + return + + if(holding) + scrub(holding.air_contents) + else + var/turf/T = get_turf(src) + scrub(T.return_air()) + +/obj/machinery/portable_atmospherics/scrubber/proc/scrub(var/datum/gas_mixture/mixture) + var/transfer_moles = min(1, volume_rate / mixture.volume) * mixture.total_moles() + + var/datum/gas_mixture/filtering = mixture.remove(transfer_moles) // Remove part of the mixture to filter. + var/datum/gas_mixture/filtered = new + if(!filtering) + return + + filtered.temperature = filtering.temperature + for(var/gas in filtering.gases & scrubbing) + filtered.add_gas(gas) + filtered.gases[gas][MOLES] = filtering.gases[gas][MOLES] // Shuffle the "bad" gasses to the filtered mixture. + filtering.gases[gas][MOLES] = 0 + filtering.garbage_collect() // Now that the gasses are set to 0, clean up the mixture. + + air_contents.merge(filtered) // Store filtered out gasses. + mixture.merge(filtering) // Returned the cleaned gas. + if(!holding) + air_update_turf() + +/obj/machinery/portable_atmospherics/scrubber/emp_act(severity) + if(is_operational()) + if(prob(50 / severity)) + on = !on + update_icon() + ..() + +/obj/machinery/portable_atmospherics/scrubber/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ + datum/tgui/master_ui = null, datum/ui_state/state = physical_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "portable_scrubber", name, 420, 335, master_ui, state) + ui.open() + +/obj/machinery/portable_atmospherics/scrubber/ui_data() + var/data = list() + data["on"] = on + data["connected"] = connected_port ? 1 : 0 + data["pressure"] = round(air_contents.return_pressure() ? air_contents.return_pressure() : 0) + + if(holding) + data["holding"] = list() + data["holding"]["name"] = holding.name + data["holding"]["pressure"] = round(holding.air_contents.return_pressure()) + return data + +/obj/machinery/portable_atmospherics/scrubber/ui_act(action, params) + if(..()) + return + switch(action) + if("power") + on = !on + . = TRUE + if("eject") + if(holding) + holding.loc = get_turf(src) + holding = null + . = TRUE + update_icon() + +/obj/machinery/portable_atmospherics/scrubber/huge + name = "huge air scrubber" + icon_state = "scrubber:0" + anchored = TRUE + active_power_usage = 500 + idle_power_usage = 10 + + volume_rate = 1500 + volume = 50000 + + var/movable = FALSE + +/obj/machinery/portable_atmospherics/scrubber/huge/movable + movable = TRUE + +/obj/machinery/portable_atmospherics/scrubber/huge/update_icon() + icon_state = "scrubber:[on]" + +/obj/machinery/portable_atmospherics/scrubber/huge/process_atmos() + if((!anchored && !movable) || !is_operational()) + on = FALSE + update_icon() + use_power = 1 + on + if(!on) + return + + ..() + if(!holding) + var/turf/T = get_turf(src) + for(var/turf/AT in T.GetAtmosAdjacentTurfs(alldir = TRUE)) + scrub(AT.return_air()) + +/obj/machinery/portable_atmospherics/scrubber/huge/attackby(obj/item/weapon/W, mob/user) + if(default_unfasten_wrench(user, W)) + if(!movable) + on = FALSE + else + return ..() diff --git a/code/modules/awaymissions/bluespaceartillery.dm b/code/modules/awaymissions/bluespaceartillery.dm new file mode 100644 index 0000000..68f92a7 --- /dev/null +++ b/code/modules/awaymissions/bluespaceartillery.dm @@ -0,0 +1,69 @@ + +#define ARTILLERY_RELOAD_TIME 60 +#define EXPLOSION_SIZE 3 + +/obj/machinery/artillerycontrol + var/reload = ARTILLERY_RELOAD_TIME + var/explosionsize = EXPLOSION_SIZE + name = "bluespace artillery control" + icon_state = "control_boxp1" + icon = 'icons/obj/machines/particle_accelerator.dmi' + density = 1 + anchored = 1 + +/obj/machinery/artillerycontrol/process() + if(reload < ARTILLERY_RELOAD_TIME) + reload++ + +/obj/structure/artilleryplaceholder + name = "artillery" + icon = 'icons/obj/machines/artillery.dmi' + anchored = 1 + density = 1 + +/obj/structure/artilleryplaceholder/decorative + density = 0 + +/obj/machinery/artillerycontrol/attack_hand(mob/user) + user.set_machine(src) + var/dat = "Bluespace Artillery Control:
    " + dat += "Locked on
    " + dat += "Charge progress: [reload]/[ARTILLERY_RELOAD_TIME]:
    " + dat += "Open Fire
    " + dat += "Deployment of weapon authorized by
    Nanotrasen Naval Command

    Remember, friendly fire is grounds for termination of your contract and life.
    " + user << browse(dat, "window=scroll") + onclose(user, "scroll") + return + +/obj/machinery/artillerycontrol/Topic(href, href_list) + if(..()) + return + var/A + A = input("Area to bombard", "Open Fire", A) in teleportlocs + var/area/thearea = teleportlocs[A] + if(usr.stat || usr.restrained()) + return + if(src.reload < ARTILLERY_RELOAD_TIME) + return + if(usr.contents.Find(src) || (in_range(src, usr) && isturf(loc)) || issilicon(usr)) + priority_announce("Bluespace artillery fire detected. Brace for impact.") + message_admins("[key_name_admin(usr)] has launched an artillery strike.") + var/list/L = list() + for(var/turf/T in get_area_turfs(thearea.type)) + L+=T + var/loc = pick(L) + explosion(loc,explosionsize,explosionsize*2,explosionsize*4) + reload = 0 + +/*/mob/proc/openfire() + var/A + A = input("Area to jump bombard", "Open Fire", A) in teleportlocs + var/area/thearea = teleportlocs[A] + priority_announce("Bluespace artillery fire detected. Brace for impact.") + spawn(30) + var/list/L = list() + + for(var/turf/T in get_area_turfs(thearea.type)) + L+=T + var/loc = pick(L) + explosion(loc,2,5,11)*/ diff --git a/code/modules/awaymissions/capture_the_flag.dm b/code/modules/awaymissions/capture_the_flag.dm new file mode 100644 index 0000000..5faf8f9 --- /dev/null +++ b/code/modules/awaymissions/capture_the_flag.dm @@ -0,0 +1,597 @@ +#define WHITE_TEAM "white" +#define RED_TEAM "red" +#define BLUE_TEAM "blue" +#define FLAG_RETURN_TIME 200 // 20 seconds +#define INSTAGIB_RESPAWN 50 //5 seconds +#define DEFAULT_RESPAWN 150 //15 seconds +#define AMMO_DROP_LIFETIME 300 + + + +/obj/item/weapon/twohanded/required/ctf + name = "banner" + icon = 'icons/obj/items.dmi' + icon_state = "banner" + item_state = "banner" + desc = "A banner with Nanotrasen's logo on it." + slowdown = 2 + throw_speed = 0 + throw_range = 1 + force = 200 + armour_penetration = 1000 + resistance_flags = INDESTRUCTIBLE + anchored = TRUE + flags = HANDSLOW + var/team = WHITE_TEAM + var/reset_cooldown = 0 + var/obj/effect/ctf/flag_reset/reset + var/reset_path = /obj/effect/ctf/flag_reset + +/obj/item/weapon/twohanded/required/ctf/New() + if(!reset) + reset = new reset_path(get_turf(src)) + +/obj/item/weapon/twohanded/required/ctf/Destroy() + if(reset) + qdel(reset) + reset = null + . = ..() + +/obj/item/weapon/twohanded/required/ctf/initialize() + if(!reset) + reset = new reset_path(get_turf(src)) + +/obj/item/weapon/twohanded/required/ctf/process() + if(world.time > reset_cooldown) + forceMove(get_turf(src.reset)) + for(var/mob/M in player_list) + var/area/mob_area = get_area(M) + if(istype(mob_area, /area/ctf)) + M << "\The [src] has been returned \ + to base!" + STOP_PROCESSING(SSobj, src) + +/obj/item/weapon/twohanded/required/ctf/attack_hand(mob/living/user) + if(!user) + return + if(team in user.faction) + user << "You can't move your own flag!" + return + if(loc == user) + if(!user.unEquip(src)) + return + anchored = FALSE + pickup(user) + if(!user.put_in_active_hand(src)) + dropped(user) + return + for(var/mob/M in player_list) + var/area/mob_area = get_area(M) + if(istype(mob_area, /area/ctf)) + M << "\The [src] has been taken!" + STOP_PROCESSING(SSobj, src) + +/obj/item/weapon/twohanded/required/ctf/dropped(mob/user) + ..() + reset_cooldown = world.time + 200 //20 seconds + START_PROCESSING(SSobj, src) + for(var/mob/M in player_list) + var/area/mob_area = get_area(M) + if(istype(mob_area, /area/ctf)) + M << "\The [src] has been dropped!" + anchored = TRUE + + +/obj/item/weapon/twohanded/required/ctf/red + name = "red flag" + icon_state = "banner-red" + item_state = "banner-red" + desc = "A red banner used to play capture the flag." + team = RED_TEAM + reset_path = /obj/effect/ctf/flag_reset/red + + +/obj/item/weapon/twohanded/required/ctf/blue + name = "blue flag" + icon_state = "banner-blue" + item_state = "banner-blue" + desc = "A blue banner used to play capture the flag." + team = BLUE_TEAM + reset_path = /obj/effect/ctf/flag_reset/blue + +/obj/effect/ctf/flag_reset + name = "banner landmark" + icon = 'icons/obj/items.dmi' + icon_state = "banner" + desc = "This is where a banner with Nanotrasen's logo on it would go." + layer = LOW_ITEM_LAYER + +/obj/effect/ctf/flag_reset/red + name = "red flag landmark" + icon_state = "banner-red" + desc = "This is where a red banner used to play capture the flag \ + would go." + +/obj/effect/ctf/flag_reset/blue + name = "blue flag landmark" + icon_state = "banner-blue" + desc = "This is where a blue banner used to play capture the flag \ + would go." + +/obj/machinery/capture_the_flag + name = "CTF Controller" + desc = "Used for running friendly games of capture the flag." + icon = 'icons/obj/device.dmi' + icon_state = "syndbeacon" + anchored = 1 + resistance_flags = INDESTRUCTIBLE + var/team = WHITE_TEAM + //Capture the Flag scoring + var/points = 0 + var/points_to_win = 3 + var/respawn_cooldown = DEFAULT_RESPAWN + //Capture Point/King of the Hill scoring + var/control_points = 0 + var/control_points_to_win = 180 + var/list/team_members = list() + var/list/spawned_mobs = list() + var/list/recently_dead_ckeys = list() + var/ctf_enabled = FALSE + var/ctf_gear = /datum/outfit/ctf + var/instagib_gear = /datum/outfit/ctf/instagib + var/list/dead_barricades = list() + + var/static/ctf_object_typecache + var/static/arena_cleared = FALSE + +/obj/machinery/capture_the_flag/New() + ..() + if(!ctf_object_typecache) + ctf_object_typecache = typecacheof(list( + /turf, + /mob, + /area, + /obj/machinery, + /obj/structure, + /obj/effect/ctf, + /obj/item/weapon/twohanded/required/ctf + )) + poi_list |= src + +/obj/machinery/capture_the_flag/Destroy() + poi_list.Remove(src) + ..() + +/obj/machinery/capture_the_flag/process() + for(var/i in spawned_mobs) + if(!i) + spawned_mobs -= i + continue + // Anyone in crit, automatically reap + var/mob/living/M = i + if(M.InCritical() || M.stat == DEAD) + ctf_dust_old(M) + else + // The changes that you've been hit with no shield but not + // instantly critted are low, but have some healing. + M.adjustBruteLoss(-1) + M.adjustFireLoss(-1) + +/obj/machinery/capture_the_flag/red + name = "Red CTF Controller" + icon_state = "syndbeacon" + team = RED_TEAM + ctf_gear = /datum/outfit/ctf/red + instagib_gear = /datum/outfit/ctf/red/instagib + +/obj/machinery/capture_the_flag/blue + name = "Blue CTF Controller" + icon_state = "bluebeacon" + team = BLUE_TEAM + ctf_gear = /datum/outfit/ctf/blue + instagib_gear = /datum/outfit/ctf/blue/instagib + +/obj/machinery/capture_the_flag/attack_ghost(mob/user) + if(ctf_enabled == FALSE) + return + if(ticker.current_state != GAME_STATE_PLAYING) + return + if(user.ckey in team_members) + if(user.ckey in recently_dead_ckeys) + user << "It must be more than [respawn_cooldown/10] seconds from your last death to respawn!" + return + var/client/new_team_member = user.client + if(user.mind && user.mind.current) + ctf_dust_old(user.mind.current) + spawn_team_member(new_team_member) + return + + for(var/obj/machinery/capture_the_flag/CTF in machines) + if(CTF == src || CTF.ctf_enabled == FALSE) + continue + if(user.ckey in CTF.team_members) + user << "No switching teams while the round is going!" + return + if(CTF.team_members.len < src.team_members.len) + user << "[src.team] has more team members than [CTF.team]. Try joining [CTF.team] to even things up." + return + team_members |= user.ckey + var/client/new_team_member = user.client + if(user.mind && user.mind.current) + ctf_dust_old(user.mind.current) + spawn_team_member(new_team_member) + +/obj/machinery/capture_the_flag/proc/ctf_dust_old(mob/living/body) + if(isliving(body) && body.z == src.z) + var/turf/T = get_turf(body) + new /obj/effect/ctf/ammo(T) + recently_dead_ckeys += body.ckey + addtimer(src, "clear_cooldown", respawn_cooldown, TRUE, body.ckey) + body.dust() + +/obj/machinery/capture_the_flag/proc/clear_cooldown(var/ckey) + recently_dead_ckeys -= ckey + +/obj/machinery/capture_the_flag/proc/spawn_team_member(client/new_team_member) + var/mob/living/carbon/human/M = new/mob/living/carbon/human(get_turf(src)) + new_team_member.prefs.copy_to(M) + M.key = new_team_member.key + M.faction += team + M.equipOutfit(ctf_gear) + spawned_mobs += M + +/obj/machinery/capture_the_flag/Topic(href, href_list) + if(href_list["join"]) + var/mob/dead/observer/ghost = usr + if(istype(ghost)) + attack_ghost(ghost) + +/obj/machinery/capture_the_flag/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/twohanded/required/ctf)) + var/obj/item/weapon/twohanded/required/ctf/flag = I + if(flag.team != src.team) + user.unEquip(flag) + flag.loc = get_turf(flag.reset) + points++ + for(var/mob/M in player_list) + var/area/mob_area = get_area(M) + if(istype(mob_area, /area/ctf)) + M << "[user.real_name] has captured \the [flag], scoring a point for [team] team! They now have [points]/[points_to_win] points!" + if(points >= points_to_win) + victory() + +/obj/machinery/capture_the_flag/proc/victory() + for(var/mob/M in mob_list) + var/area/mob_area = get_area(M) + if(istype(mob_area, /area/ctf)) + M << "[team] team wins!" + M << "The game has been reset! Teams have been cleared. The machines will be active again in 30 seconds." + for(var/obj/item/weapon/twohanded/required/ctf/W in M) + M.unEquip(W) + M.dust() + for(var/obj/machinery/control_point/control in machines) + control.icon_state = "dominator" + control.controlling = null + for(var/obj/machinery/capture_the_flag/CTF in machines) + if(CTF.ctf_enabled == TRUE) + CTF.points = 0 + CTF.control_points = 0 + CTF.ctf_enabled = FALSE + CTF.team_members = list() + CTF.arena_cleared = FALSE + addtimer(CTF, "start_ctf", 300) + +/obj/machinery/capture_the_flag/proc/toggle_ctf() + if(!ctf_enabled) + start_ctf() + . = TRUE + else + stop_ctf() + . = FALSE + +/obj/machinery/capture_the_flag/proc/start_ctf() + ctf_enabled = TRUE + for(var/obj/effect/ctf/dead_barricade/ded in dead_barricades) + ded.respawn() + dead_barricades.Cut() + notify_ghosts("[name] has been activated!", enter_link="(Click to join the [team] team!) or click on the controller directly!", source = src, action=NOTIFY_ATTACK) + + if(!arena_cleared) + clear_the_arena() + arena_cleared = TRUE + +/obj/machinery/capture_the_flag/proc/clear_the_arena() + var/area/A = get_area(src) + for(var/atm in A) + if(!is_type_in_typecache(atm, ctf_object_typecache)) + qdel(atm) + +/obj/machinery/capture_the_flag/proc/stop_ctf() + ctf_enabled = FALSE + arena_cleared = FALSE + var/area/A = get_area(src) + for(var/i in mob_list) + var/mob/M = i + if((get_area(A) == A) && (M.ckey in team_members)) + M.dust() + team_members.Cut() + spawned_mobs.Cut() + recently_dead_ckeys.Cut() + +/obj/machinery/capture_the_flag/proc/instagib_mode() + for(var/obj/machinery/capture_the_flag/CTF in machines) + if(CTF.ctf_enabled == TRUE) + CTF.ctf_gear = CTF.instagib_gear + CTF.respawn_cooldown = INSTAGIB_RESPAWN + +/obj/machinery/capture_the_flag/proc/normal_mode() + for(var/obj/machinery/capture_the_flag/CTF in machines) + if(CTF.ctf_enabled == TRUE) + CTF.ctf_gear = initial(ctf_gear) + CTF.respawn_cooldown = DEFAULT_RESPAWN + +/obj/item/weapon/gun/projectile/automatic/pistol/deagle/ctf + desc = "This looks like it could really hurt in melee." + force = 75 + +/obj/item/weapon/gun/projectile/automatic/pistol/deagle/ctf/dropped() + . = ..() + addtimer(src, "floor_vanish", 1) + +/obj/item/weapon/gun/projectile/automatic/pistol/deagle/ctf/proc/floor_vanish() + if(isturf(loc)) + qdel(src) + +/obj/item/weapon/gun/projectile/automatic/laser/ctf + mag_type = /obj/item/ammo_box/magazine/recharge/ctf + desc = "This looks like it could really hurt in melee." + force = 50 + flags = NODROP | DROPDEL + +/obj/item/ammo_box/magazine/recharge/ctf + ammo_type = /obj/item/ammo_casing/caseless/laser/ctf + +/obj/item/ammo_box/magazine/recharge/ctf/dropped() + . = ..() + addtimer(src, "floor_vanish", 1) + +/obj/item/ammo_box/magazine/recharge/ctf/proc/floor_vanish() + if(isturf(loc)) + qdel(src) + +/obj/item/ammo_casing/caseless/laser/ctf + projectile_type = /obj/item/projectile/beam/ctf + +/obj/item/projectile/beam/ctf + damage = 150 + icon_state = "omnilaser" + +// RED TEAM GUNS + +/obj/item/weapon/gun/projectile/automatic/laser/ctf/red + mag_type = /obj/item/ammo_box/magazine/recharge/ctf/red + +/obj/item/ammo_box/magazine/recharge/ctf/red + ammo_type = /obj/item/ammo_casing/caseless/laser/ctf/red + +/obj/item/ammo_casing/caseless/laser/ctf/red + projectile_type = /obj/item/projectile/beam/ctf/red + +/obj/item/projectile/beam/ctf/red + icon_state = "laser" + +// BLUE TEAM GUNS + +/obj/item/weapon/gun/projectile/automatic/laser/ctf/blue + mag_type = /obj/item/ammo_box/magazine/recharge/ctf/blue + +/obj/item/ammo_box/magazine/recharge/ctf/blue + ammo_type = /obj/item/ammo_casing/caseless/laser/ctf/blue + +/obj/item/ammo_casing/caseless/laser/ctf/blue + projectile_type = /obj/item/projectile/beam/ctf/blue + +/obj/item/projectile/beam/ctf/blue + icon_state = "bluelaser" + +/datum/outfit/ctf + name = "CTF" + ears = /obj/item/device/radio/headset + uniform = /obj/item/clothing/under/syndicate + suit = /obj/item/clothing/suit/space/hardsuit/shielded/ctf + shoes = /obj/item/clothing/shoes/combat + gloves = /obj/item/clothing/gloves/combat + id = /obj/item/weapon/card/id/syndicate + belt = /obj/item/weapon/gun/projectile/automatic/pistol/deagle/ctf + l_pocket = /obj/item/ammo_box/magazine/recharge/ctf + r_pocket = /obj/item/ammo_box/magazine/recharge/ctf + r_hand = /obj/item/weapon/gun/projectile/automatic/laser/ctf + +/datum/outfit/ctf/post_equip(mob/living/carbon/human/H, visualsOnly=FALSE) + if(visualsOnly) + return + var/list/no_drops = list() + var/obj/item/weapon/card/id/W = H.wear_id + no_drops += W + W.registered_name = H.real_name + W.update_label(W.registered_name, W.assignment) + + // The shielded hardsuit is already NODROP + no_drops += H.get_item_by_slot(slot_gloves) + no_drops += H.get_item_by_slot(slot_shoes) + no_drops += H.get_item_by_slot(slot_w_uniform) + no_drops += H.get_item_by_slot(slot_ears) + for(var/i in no_drops) + var/obj/item/I = i + I.flags |= NODROP + +/datum/outfit/ctf/instagib + r_hand = /obj/item/weapon/gun/energy/laser/instakill + shoes = /obj/item/clothing/shoes/jackboots/fast + +/datum/outfit/ctf/red + ears = /obj/item/device/radio/headset/syndicate/alt + suit = /obj/item/clothing/suit/space/hardsuit/shielded/ctf/red + r_hand = /obj/item/weapon/gun/projectile/automatic/laser/ctf/red + l_pocket = /obj/item/ammo_box/magazine/recharge/ctf/red + r_pocket = /obj/item/ammo_box/magazine/recharge/ctf/red + +/datum/outfit/ctf/red/instagib + r_hand = /obj/item/weapon/gun/energy/laser/instakill/red + shoes = /obj/item/clothing/shoes/jackboots/fast + +/datum/outfit/ctf/blue + ears = /obj/item/device/radio/headset/headset_cent/commander + suit = /obj/item/clothing/suit/space/hardsuit/shielded/ctf/blue + r_hand = /obj/item/weapon/gun/projectile/automatic/laser/ctf/blue + l_pocket = /obj/item/ammo_box/magazine/recharge/ctf/blue + r_pocket = /obj/item/ammo_box/magazine/recharge/ctf/blue + +/datum/outfit/ctf/blue/instagib + r_hand = /obj/item/weapon/gun/energy/laser/instakill/blue + shoes = /obj/item/clothing/shoes/jackboots/fast + +/datum/outfit/ctf/red/post_equip(mob/living/carbon/human/H) + ..() + var/obj/item/device/radio/R = H.ears + R.set_frequency(SYND_FREQ) + R.freqlock = 1 + +/datum/outfit/ctf/blue/post_equip(mob/living/carbon/human/H) + ..() + var/obj/item/device/radio/R = H.ears + R.set_frequency(CENTCOM_FREQ) + R.freqlock = 1 + + + +/obj/structure/trap/ctf + name = "Spawn protection" + desc = "Stay outta the enemy spawn!" + icon_state = "trap" + resistance_flags = INDESTRUCTIBLE + var/team = WHITE_TEAM + time_between_triggers = 1 + alpha = 255 + +/obj/structure/trap/examine(mob/user) + return + +/obj/structure/trap/ctf/trap_effect(mob/living/L) + if(!(src.team in L.faction)) + L << "Stay out of the enemy spawn!" + L.death() + +/obj/structure/trap/ctf/red + team = RED_TEAM + icon_state = "trap-fire" + +/obj/structure/trap/ctf/blue + team = BLUE_TEAM + icon_state = "trap-frost" + +/obj/structure/barricade/security/ctf + name = "barrier" + desc = "A barrier. Provides cover in fire fights." + +/obj/structure/barricade/security/ctf/make_debris() + new /obj/effect/ctf/dead_barricade(get_turf(src)) + +/obj/effect/ctf + density = FALSE + anchored = TRUE + invisibility = INVISIBILITY_OBSERVER + alpha = 100 + resistance_flags = INDESTRUCTIBLE + +/obj/effect/ctf/ammo + name = "ammo pickup" + desc = "You like revenge, right? Everybody likes revenge! Well, \ + let's go get some!" + icon = 'icons/effects/effects.dmi' + icon_state = "at_shield1" + layer = ABOVE_MOB_LAYER + alpha = 255 + invisibility = 0 + +/obj/effect/ctf/ammo/New() + ..() + QDEL_IN(src, AMMO_DROP_LIFETIME) + +/obj/effect/ctf/ammo/Crossed(atom/movable/AM) + reload(AM) + +/obj/effect/ctf/ammo/Bump(atom/movable/AM) + reload(AM) + +/obj/effect/ctf/ammo/Bumped(atom/movable/AM) + reload(AM) + +/obj/effect/ctf/ammo/proc/reload(mob/living/M) + if(!ishuman(M)) + return + for(var/obj/machinery/capture_the_flag/CTF in machines) + if(M in CTF.spawned_mobs) + var/outfit = CTF.ctf_gear + var/datum/outfit/O = new outfit + for(var/obj/item/weapon/gun/G in M) + M.unEquip(G) + qdel(G) + O.equip(M) + M << "Ammunition reloaded!" + playsound(get_turf(M), 'sound/weapons/shotgunpump.ogg', 50, 1, -1) + qdel(src) + break + +/obj/effect/ctf/dead_barricade + name = "dead barrier" + desc = "It provided cover in fire fights. And now it's gone." + icon = 'icons/obj/objects.dmi' + icon_state = "barrier0" + +/obj/effect/ctf/dead_barricade/New() + for(var/obj/machinery/capture_the_flag/CTF in machines) + CTF.dead_barricades += src + +/obj/effect/ctf/dead_barricade/proc/respawn() + if(!qdeleted(src)) + new /obj/structure/barricade/security/ctf(get_turf(src)) + qdel(src) + + +//Control Point + +/obj/machinery/control_point + name = "control point" + desc = "You should capture this." + icon = 'icons/obj/machines/dominator.dmi' + icon_state = "dominator" + anchored = 1 + resistance_flags = INDESTRUCTIBLE + var/obj/machinery/capture_the_flag/controlling + var/team = "none" + var/point_rate = 1 + +/obj/machinery/control_point/process() + if(controlling) + controlling.control_points += point_rate + if(controlling.control_points >= controlling.control_points_to_win) + controlling.victory() + +/obj/machinery/control_point/attackby(mob/user, params) + capture(user) + +/obj/machinery/control_point/attack_hand(mob/user) + capture(user) + +/obj/machinery/control_point/proc/capture(mob/user) + if(do_after(user, 30, target = src)) + for(var/obj/machinery/capture_the_flag/CTF in machines) + if(CTF.ctf_enabled && (user.ckey in CTF.team_members)) + controlling = CTF + icon_state = "dominator-[CTF.team]" + for(var/mob/M in player_list) + var/area/mob_area = get_area(M) + if(istype(mob_area, /area/ctf)) + M << "[user.real_name] has captured \the [src], claiming it for [CTF.team]! Go take it back!" + break diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm new file mode 100644 index 0000000..bffe8ba --- /dev/null +++ b/code/modules/awaymissions/corpse.dm @@ -0,0 +1,528 @@ +//If someone can do this in a neater way, be my guest-Kor + +//To do: Allow corpses to appear mangled, bloody, etc. Allow customizing the bodies appearance (they're all bald and white right now). + +/obj/effect/mob_spawn + name = "Unknown" + var/mob_type = null + var/mob_name = "" + var/mob_gender = null + var/death = TRUE //Kill the mob + var/roundstart = TRUE //fires on initialize + var/instant = FALSE //fires on New + var/flavour_text = "The mapper forgot to set this!" + var/faction = null + var/permanent = FALSE //If true, the spawner will not disappear upon running out of uses. + var/random = FALSE //Don't set a name or gender, just go random + var/objectives = null + var/uses = 1 //how many times can we spawn from it. set to -1 for infinite. + var/brute_damage = 0 + var/oxy_damage = 0 + density = 1 + anchored = 1 + +/obj/effect/mob_spawn/attack_ghost(mob/user) + if(ticker.current_state != GAME_STATE_PLAYING || !loc) + return + if(!uses) + user << "This spawner is out of charges!" + return + if(jobban_isbanned(user, "lavaland")) + user << "You are jobanned!" + return + var/ghost_role = alert("Become [mob_name]? (Warning, You can no longer be cloned!)",,"Yes","No") + if(ghost_role == "No" || !loc) + return + log_game("[user.ckey] became [mob_name]") + create(ckey = user.ckey) + +/obj/effect/mob_spawn/spawn_atom_to_world() + //We no longer need to spawn mobs, deregister ourself + SSobj.atom_spawners -= src + if(roundstart) + create() + else + poi_list |= src + +/obj/effect/mob_spawn/New() + ..() + if(roundstart) + //Add to the atom spawners register for roundstart atom spawning + SSobj.atom_spawners += src + + if(instant) + create() + else + poi_list |= src + +/obj/effect/mob_spawn/Destroy() + poi_list.Remove(src) + . = ..() + +/obj/effect/mob_spawn/proc/special(mob/M) + return + +/obj/effect/mob_spawn/proc/equip(mob/M) + return + +/obj/effect/mob_spawn/proc/create(ckey) + var/mob/living/M = new mob_type(get_turf(src)) //living mobs only + if(!random) + M.real_name = mob_name ? mob_name : M.name + if(!mob_gender) + mob_gender = pick(MALE, FEMALE) + M.gender = mob_gender + if(faction) + M.faction = list(faction) + if(death) + M.death(1) //Kills the new mob + + M.adjustOxyLoss(oxy_damage) + M.adjustBruteLoss(brute_damage) + equip(M) + + if(ckey) + M.ckey = ckey + M << "[flavour_text]" + var/datum/mind/MM = M.mind + if(objectives) + for(var/objective in objectives) + MM.objectives += new/datum/objective(objective) + special(M) + MM.name = M.real_name + if(uses > 0) + uses-- + if(!permanent && !uses) + qdel(src) + +// Base version - place these on maps/templates. +/obj/effect/mob_spawn/human + mob_type = /mob/living/carbon/human + //Human specific stuff. + var/mob_species = null //Set to make them a mutant race such as lizard or skeleton. Uses the datum typepath instead of the ID. + var/uniform = null //Set this to an object path to have the slot filled with said object on the corpse. + var/r_hand = null + var/l_hand = null + var/suit = null + var/shoes = null + var/gloves = null + var/radio = null + var/glasses = null + var/mask = null + var/neck = null + var/helmet = null + var/belt = null + var/pocket1 = null + var/pocket2 = null + var/back = null + var/has_id = 0 //Just set to 1 if you want them to have an ID + var/id_job = null // Needs to be in quotes, such as "Clown" or "Chef." This just determines what the ID reads as, not their access + var/id_access = null //This is for access. See access.dm for which jobs give what access. Again, put in quotes. Use "Captain" if you want it to be all access. + var/id_icon = null //For setting it to be a gold, silver, centcom etc ID + var/husk = null + var/outfit_type = null // Will start with this if exists then apply specific slots + var/list/implants = list() + +/obj/effect/mob_spawn/human/equip(mob/living/carbon/human/H) + if(mob_species) + H.set_species(mob_species) + if(husk) + H.Drain() + if(outfit_type) + H.equipOutfit(outfit_type) + if(uniform) + H.equip_to_slot_or_del(new uniform(H), slot_w_uniform) + if(suit) + H.equip_to_slot_or_del(new suit(H), slot_wear_suit) + if(shoes) + H.equip_to_slot_or_del(new shoes(H), slot_shoes) + if(gloves) + H.equip_to_slot_or_del(new gloves(H), slot_gloves) + if(radio) + H.equip_to_slot_or_del(new radio(H), slot_ears) + if(glasses) + H.equip_to_slot_or_del(new glasses(H), slot_glasses) + if(mask) + H.equip_to_slot_or_del(new mask(H), slot_wear_mask) + if(neck) + H.equip_to_slot_or_del(new neck(H), slot_neck) + if(helmet) + H.equip_to_slot_or_del(new helmet(H), slot_head) + if(belt) + H.equip_to_slot_or_del(new belt(H), slot_belt) + if(pocket1) + H.equip_to_slot_or_del(new pocket1(H), slot_r_store) + if(pocket2) + H.equip_to_slot_or_del(new pocket2(H), slot_l_store) + if(back) + H.equip_to_slot_or_del(new back(H), slot_back) + if(l_hand) + H.put_in_hands_or_del(new l_hand(H)) + if(r_hand) + H.put_in_hands_or_del(new r_hand(H)) + if(has_id) + var/obj/item/weapon/card/id/W = new(H) + if(id_icon) + W.icon_state = id_icon + if(id_access) + var/datum/job/jobdatum + for(var/jobtype in typesof(/datum/job)) + var/datum/job/J = new jobtype + if(J.title == id_access) + jobdatum = J + break + if(jobdatum) + W.access = jobdatum.get_access() + else + W.access = list() + if(id_job) + W.assignment = id_job + W.registered_name = H.real_name + W.update_label() + H.equip_to_slot_or_del(W, slot_wear_id) + + for(var/I in implants) + var/obj/item/weapon/implant/X = new I + X.implant(H) + +//Instant version - use when spawning corpses during runtime +/obj/effect/mob_spawn/human/corpse + roundstart = FALSE + instant = TRUE + +/obj/effect/mob_spawn/human/corpse/damaged + brute_damage = 1000 + +/obj/effect/mob_spawn/human/alive + icon = 'icons/obj/Cryogenic2.dmi' + icon_state = "sleeper" + death = FALSE + roundstart = FALSE //you could use these for alive fake humans on roundstart but this is more common scenario + + +//Non-human spawners + +/obj/effect/mob_spawn/AICorpse/create() //Creates a corrupted AI + var/A = locate(/mob/living/silicon/ai) in loc + if(A) + return + var/L = new /datum/ai_laws/default/asimov + var/B = new /obj/item/device/mmi + var/mob/living/silicon/ai/M = new(src.loc, L, B, 1) //spawn new AI at landmark as var M + M.name = src.name + M.real_name = src.name + M.aiPDA.toff = 1 //turns the AI's PDA messenger off, stopping it showing up on player PDAs + M.death() //call the AI's death proc + qdel(src) + +/obj/effect/mob_spawn/slime + mob_type = /mob/living/simple_animal/slime + var/mobcolour = "grey" + icon = 'icons/mob/slimes.dmi' + icon_state = "grey baby slime" //sets the icon in the map editor + +/obj/effect/mob_spawn/slime/equip(mob/living/simple_animal/slime/S) + S.colour = mobcolour + +/obj/effect/mob_spawn/human/facehugger/create() //Creates a squashed facehugger + var/obj/item/clothing/mask/facehugger/O = new(src.loc) //variable O is a new facehugger at the location of the landmark + O.name = src.name + O.Die() //call the facehugger's death proc + qdel(src) + +/obj/effect/mob_spawn/mouse + name = "sleeper" + mob_type = /mob/living/simple_animal/mouse + death = FALSE + roundstart = FALSE + icon = 'icons/obj/Cryogenic2.dmi' + icon_state = "sleeper" + +/obj/effect/mob_spawn/cow + name = "sleeper" + mob_type = /mob/living/simple_animal/cow + death = FALSE + roundstart = FALSE + mob_gender = FEMALE + icon = 'icons/obj/Cryogenic2.dmi' + icon_state = "sleeper" + +// I'll work on making a list of corpses people request for maps, or that I think will be commonly used. Syndicate operatives for example. + +/obj/effect/mob_spawn/human/syndicatesoldier + name = "Syndicate Operative" + uniform = /obj/item/clothing/under/syndicate + suit = /obj/item/clothing/suit/armor/vest + shoes = /obj/item/clothing/shoes/combat + gloves = /obj/item/clothing/gloves/combat + radio = /obj/item/device/radio/headset + mask = /obj/item/clothing/mask/gas + helmet = /obj/item/clothing/head/helmet/swat + back = /obj/item/weapon/storage/backpack + has_id = 1 + id_job = "Operative" + id_access = "Syndicate" + +/obj/effect/mob_spawn/human/syndicatecommando + name = "Syndicate Commando" + uniform = /obj/item/clothing/under/syndicate + suit = /obj/item/clothing/suit/space/hardsuit/syndi + shoes = /obj/item/clothing/shoes/combat + gloves = /obj/item/clothing/gloves/combat + radio = /obj/item/device/radio/headset + mask = /obj/item/clothing/mask/gas/syndicate + helmet = /obj/item/clothing/head/helmet/space/hardsuit/syndi + back = /obj/item/weapon/tank/jetpack/oxygen + pocket1 = /obj/item/weapon/tank/internals/emergency_oxygen + has_id = 1 + id_job = "Operative" + id_access = "Syndicate" + +///////////Civilians////////////////////// + +/obj/effect/mob_spawn/human/cook + name = "Cook" + uniform = /obj/item/clothing/under/rank/chef + suit = /obj/item/clothing/suit/apron/chef + shoes = /obj/item/clothing/shoes/sneakers/black + helmet = /obj/item/clothing/head/chefhat + back = /obj/item/weapon/storage/backpack + radio = /obj/item/device/radio/headset + has_id = 1 + id_job = "Cook" + id_access = "Cook" + + +/obj/effect/mob_spawn/human/doctor + name = "Doctor" + radio = /obj/item/device/radio/headset/headset_med + uniform = /obj/item/clothing/under/rank/medical + suit = /obj/item/clothing/suit/toggle/labcoat + back = /obj/item/weapon/storage/backpack/medic + pocket1 = /obj/item/device/flashlight/pen + shoes = /obj/item/clothing/shoes/sneakers/black + has_id = 1 + id_job = "Medical Doctor" + id_access = "Medical Doctor" + +/obj/effect/mob_spawn/human/doctor/alive + death = FALSE + roundstart = FALSE + random = TRUE + radio = null + back = null + name = "sleeper" + icon = 'icons/obj/Cryogenic2.dmi' + icon_state = "sleeper" + flavour_text = "You are a space doctor!" + + +/obj/effect/mob_spawn/human/engineer + name = "Engineer" + radio = /obj/item/device/radio/headset/headset_eng + uniform = /obj/item/clothing/under/rank/engineer + back = /obj/item/weapon/storage/backpack/industrial + shoes = /obj/item/clothing/shoes/sneakers/orange + belt = /obj/item/weapon/storage/belt/utility/full + gloves = /obj/item/clothing/gloves/color/yellow + helmet = /obj/item/clothing/head/hardhat + has_id = 1 + id_job = "Station Engineer" + id_access = "Station Engineer" + +/obj/effect/mob_spawn/human/engineer/rig + suit = /obj/item/clothing/suit/space/hardsuit/engine + mask = /obj/item/clothing/mask/breath + +/obj/effect/mob_spawn/human/clown + name = "Clown" + uniform = /obj/item/clothing/under/rank/clown + shoes = /obj/item/clothing/shoes/clown_shoes + radio = /obj/item/device/radio/headset + mask = /obj/item/clothing/mask/gas/clown_hat + pocket1 = /obj/item/weapon/bikehorn + back = /obj/item/weapon/storage/backpack/clown + has_id = 1 + id_job = "Clown" + id_access = "Clown" + +/obj/effect/mob_spawn/human/scientist + name = "Scientist" + radio = /obj/item/device/radio/headset/headset_sci + uniform = /obj/item/clothing/under/rank/scientist + suit = /obj/item/clothing/suit/toggle/labcoat/science + back = /obj/item/weapon/storage/backpack + shoes = /obj/item/clothing/shoes/sneakers/white + has_id = 1 + id_job = "Scientist" + id_access = "Scientist" + +/obj/effect/mob_spawn/human/miner + radio = /obj/item/device/radio/headset/headset_cargo/mining + uniform = /obj/item/clothing/under/rank/miner + gloves = /obj/item/clothing/gloves/color/black + back = /obj/item/weapon/storage/backpack/industrial + shoes = /obj/item/clothing/shoes/sneakers/black + has_id = 1 + id_job = "Shaft Miner" + id_access = "Shaft Miner" + +/obj/effect/mob_spawn/human/miner/rig + suit = /obj/item/clothing/suit/space/hardsuit/mining + mask = /obj/item/clothing/mask/breath + +/obj/effect/mob_spawn/human/miner/explorer + uniform = /obj/item/clothing/under/rank/miner/lavaland + back = /obj/item/weapon/storage/backpack/explorer + shoes = /obj/item/clothing/shoes/workboots/mining + suit = /obj/item/clothing/suit/hooded/explorer + mask = /obj/item/clothing/mask/gas/explorer + belt = /obj/item/weapon/gun/energy/kinetic_accelerator + +/obj/effect/mob_spawn/human/plasmaman + mob_species = /datum/species/plasmaman + helmet = /obj/item/clothing/head/helmet/space/plasmaman + uniform = /obj/item/clothing/under/plasmaman + back = /obj/item/weapon/tank/internals/plasmaman/full + mask = /obj/item/clothing/mask/breath + + +/obj/effect/mob_spawn/human/bartender + name = "Space Bartender" + uniform = /obj/item/clothing/under/rank/bartender + back = /obj/item/weapon/storage/backpack + shoes = /obj/item/clothing/shoes/sneakers/black + suit = /obj/item/clothing/suit/armor/vest + glasses = /obj/item/clothing/glasses/sunglasses/reagent + has_id = 1 + id_job = "Bartender" + id_access = "Bartender" + +/obj/effect/mob_spawn/human/bartender/alive + death = FALSE + roundstart = FALSE + random = TRUE + name = "bartender sleeper" + icon = 'icons/obj/Cryogenic2.dmi' + icon_state = "sleeper" + flavour_text = "You are a space bartender!" + +/obj/effect/mob_spawn/human/beach + glasses = /obj/item/clothing/glasses/sunglasses + uniform = /obj/item/clothing/under/shorts/red + pocket1 = /obj/item/weapon/storage/wallet/random + +/obj/effect/mob_spawn/human/beach/alive + death = FALSE + roundstart = FALSE + random = TRUE + mob_name = "Beach Bum" + name = "beach bum sleeper" + icon = 'icons/obj/Cryogenic2.dmi' + icon_state = "sleeper" + flavour_text = "You are a beach bum!" + +/////////////////Officers+Nanotrasen Security////////////////////// + +/obj/effect/mob_spawn/human/bridgeofficer + name = "Bridge Officer" + radio = /obj/item/device/radio/headset/heads/hop + uniform = /obj/item/clothing/under/rank/centcom_officer + suit = /obj/item/clothing/suit/armor/bulletproof + shoes = /obj/item/clothing/shoes/sneakers/black + glasses = /obj/item/clothing/glasses/sunglasses + has_id = 1 + id_job = "Bridge Officer" + id_access = "Captain" + +/obj/effect/mob_spawn/human/commander + name = "Commander" + uniform = /obj/item/clothing/under/rank/centcom_commander + suit = /obj/item/clothing/suit/armor/bulletproof + radio = /obj/item/device/radio/headset/heads/captain + glasses = /obj/item/clothing/glasses/eyepatch + mask = /obj/item/clothing/mask/cigarette/cigar/cohiba + helmet = /obj/item/clothing/head/centhat + gloves = /obj/item/clothing/gloves/combat + shoes = /obj/item/clothing/shoes/combat/swat + pocket1 = /obj/item/weapon/lighter + has_id = 1 + id_job = "Commander" + id_access = "Captain" + +/obj/effect/mob_spawn/human/nanotrasensoldier + name = "Nanotrasen Private Security Officer" + uniform = /obj/item/clothing/under/rank/security + suit = /obj/item/clothing/suit/armor/vest + shoes = /obj/item/clothing/shoes/combat + gloves = /obj/item/clothing/gloves/combat + mask = /obj/item/clothing/mask/gas/sechailer/swat + helmet = /obj/item/clothing/head/helmet/swat/nanotrasen + back = /obj/item/weapon/storage/backpack/security + has_id = 1 + id_job = "Private Security Force" + id_access = "Security Officer" + +/obj/effect/mob_spawn/human/commander/alive + death = FALSE + roundstart = FALSE + mob_name = "Nanotrasen Commander" + name = "sleeper" + icon = 'icons/obj/Cryogenic2.dmi' + icon_state = "sleeper" + flavour_text = "You are a Nanotrasen Commander!" + +/////////////////Spooky Undead////////////////////// + +/obj/effect/mob_spawn/human/skeleton + name = "skeletal remains" + mob_name = "skeleton" + mob_species = /datum/species/skeleton + mob_gender = NEUTER + +/obj/effect/mob_spawn/human/skeleton/alive + death = FALSE + roundstart = FALSE + icon = 'icons/effects/blood.dmi' + icon_state = "remains" + flavour_text = "By unknown powers, your skeletal remains have been reanimated! Walk this mortal plain and terrorize all living adventurers who dare cross your path." + +/obj/effect/mob_spawn/human/zombie + name = "rotting corpse" + mob_name = "zombie" + mob_species = /datum/species/zombie + +/obj/effect/mob_spawn/human/zombie/alive + death = FALSE + roundstart = FALSE + icon = 'icons/effects/blood.dmi' + icon_state = "remains" + flavour_text = "By unknown powers, your rotting remains have been resurrected! Walk this mortal plain and terrorize all living adventurers who dare cross your path." + + +/obj/effect/mob_spawn/human/abductor + name = "abductor" + mob_name = "alien" + mob_species = /datum/species/abductor + uniform = /obj/item/clothing/under/color/grey + shoes = /obj/item/clothing/shoes/combat + +//For ghost bar. +/obj/effect/mob_spawn/human/alive/space_bar_patron + name = "Bar cryogenics" + mob_name = "Bar patron" + random = TRUE + permanent = TRUE + uses = -1 + uniform = /obj/item/clothing/under/rank/bartender + back = /obj/item/weapon/storage/backpack + shoes = /obj/item/clothing/shoes/sneakers/black + suit = /obj/item/clothing/suit/armor/vest + glasses = /obj/item/clothing/glasses/sunglasses/reagent + +/obj/effect/mob_spawn/human/alive/space_bar_patron/attack_hand(mob/user) + var/despawn = alert("Return to cryosleep? (Warning, Your mob will be deleted!)",,"Yes","No") + if(despawn == "No" || !loc || !Adjacent(user)) + return + user.visible_message("[user.name] climbs back into cryosleep...") + qdel(user) diff --git a/code/modules/awaymissions/exile.dm b/code/modules/awaymissions/exile.dm new file mode 100644 index 0000000..5420793 --- /dev/null +++ b/code/modules/awaymissions/exile.dm @@ -0,0 +1,13 @@ + +/obj/structure/closet/secure_closet/exile + name = "exile implants" + req_access = list(access_hos) + +/obj/structure/closet/secure_closet/exile/New() + ..() + new /obj/item/weapon/implanter/exile(src) + new /obj/item/weapon/implantcase/exile(src) + new /obj/item/weapon/implantcase/exile(src) + new /obj/item/weapon/implantcase/exile(src) + new /obj/item/weapon/implantcase/exile(src) + new /obj/item/weapon/implantcase/exile(src) \ No newline at end of file diff --git a/code/modules/awaymissions/gateway.dm b/code/modules/awaymissions/gateway.dm new file mode 100644 index 0000000..d8d115a --- /dev/null +++ b/code/modules/awaymissions/gateway.dm @@ -0,0 +1,276 @@ +var/obj/machinery/gateway/centerstation/the_gateway = null + +/obj/machinery/gateway + name = "gateway" + desc = "A mysterious gateway built by unknown hands, it allows for faster than light travel to far-flung locations." + icon = 'icons/obj/machines/gateway.dmi' + icon_state = "off" + density = 1 + anchored = 1 + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF + var/active = 0 + + +/obj/machinery/gateway/centerstation/New() + ..() + if(!the_gateway) + the_gateway = src + + +/obj/machinery/gateway/centerstation/Destroy() + if(the_gateway == src) + the_gateway = null + return ..() + + +/obj/machinery/gateway/initialize() + update_icon() + switch(dir) + if(SOUTH,SOUTHEAST,SOUTHWEST) + density = 0 + + +/obj/machinery/gateway/update_icon() + if(active) + icon_state = "on" + return + icon_state = "off" + +//prevents shuttles attempting to rotate this since it messes up sprites +/obj/machinery/gateway/shuttleRotate() + return + +//this is da important part wot makes things go +/obj/machinery/gateway/centerstation + density = 1 + icon_state = "offcenter" + use_power = 1 + + //warping vars + var/list/linked = list() + var/ready = 0 //have we got all the parts for a gateway? + var/wait = 0 //this just grabs world.time at world start + var/obj/machinery/gateway/centeraway/awaygate = null + +/obj/machinery/gateway/centerstation/initialize() + update_icon() + wait = world.time + config.gateway_delay //+ thirty minutes default + awaygate = locate(/obj/machinery/gateway/centeraway) + + +/obj/machinery/gateway/centerstation/update_icon() + if(active) + icon_state = "oncenter" + return + icon_state = "offcenter" + + + +/obj/machinery/gateway/centerstation/process() + if(stat & (NOPOWER)) + if(active) toggleoff() + return + + if(active) + use_power(5000) + + +/obj/machinery/gateway/centerstation/proc/detect() + linked = list() //clear the list + var/turf/T = loc + + for(var/i in alldirs) + T = get_step(loc, i) + var/obj/machinery/gateway/G = locate(/obj/machinery/gateway) in T + if(G) + linked.Add(G) + continue + + //this is only done if we fail to find a part + ready = 0 + toggleoff() + break + + if(linked.len == 8) + ready = 1 + + +/obj/machinery/gateway/centerstation/proc/toggleon(mob/user) + if(!ready) + return + if(linked.len != 8) + return + if(!powered()) + return + if(!awaygate) + user << "Error: No destination found." + return + if(world.time < wait) + user << "Error: Warpspace triangulation in progress. Estimated time to completion: [round(((wait - world.time) / 10) / 60)] minutes." + return + + for(var/obj/machinery/gateway/G in linked) + G.active = 1 + G.update_icon() + active = 1 + update_icon() + + +/obj/machinery/gateway/centerstation/proc/toggleoff() + for(var/obj/machinery/gateway/G in linked) + G.active = 0 + G.update_icon() + active = 0 + update_icon() + + +/obj/machinery/gateway/centerstation/attack_hand(mob/user) + if(!ready) + detect() + return + if(!active) + toggleon(user) + return + toggleoff() + + +//okay, here's the good teleporting stuff +/obj/machinery/gateway/centerstation/Bumped(atom/movable/AM) + if(!ready) + return + if(!active) + return + if(!awaygate || qdeleted(awaygate)) + return + + if(awaygate.calibrated) + AM.forceMove(get_step(awaygate.loc, SOUTH)) + AM.setDir(SOUTH) + if (ismob(AM)) + var/mob/M = AM + if (M.client) + M.client.move_delay = max(world.time + 5, M.client.move_delay) + return + else + var/obj/effect/landmark/dest = pick(awaydestinations) + if(dest) + AM.forceMove(get_turf(dest)) + AM.setDir(SOUTH) + use_power(5000) + return + + +/obj/machinery/gateway/centerstation/attackby(obj/item/device/W, mob/user, params) + if(istype(W,/obj/item/device/multitool)) + user << "\black The gate is already calibrated, there is no work for you to do here." + return + + +/////////////////////////////////////Away//////////////////////// + + +/obj/machinery/gateway/centeraway + density = 1 + icon_state = "offcenter" + use_power = 0 + var/calibrated = 1 + var/list/linked = list() //a list of the connected gateway chunks + var/ready = 0 + var/obj/machinery/gateway/centeraway/stationgate = null + + +/obj/machinery/gateway/centeraway/initialize() + update_icon() + stationgate = locate(/obj/machinery/gateway/centerstation) + + +/obj/machinery/gateway/centeraway/update_icon() + if(active) + icon_state = "oncenter" + return + icon_state = "offcenter" + + +/obj/machinery/gateway/centeraway/proc/detect() + linked = list() //clear the list + var/turf/T = loc + + for(var/i in alldirs) + T = get_step(loc, i) + var/obj/machinery/gateway/G = locate(/obj/machinery/gateway) in T + if(G) + linked.Add(G) + continue + + //this is only done if we fail to find a part + ready = 0 + toggleoff() + break + + if(linked.len == 8) + ready = 1 + + +/obj/machinery/gateway/centeraway/proc/toggleon(mob/user) + if(!ready) + return + if(linked.len != 8) + return + if(!stationgate) + user << "Error: No destination found." + return + + for(var/obj/machinery/gateway/G in linked) + G.active = 1 + G.update_icon() + active = 1 + update_icon() + + +/obj/machinery/gateway/centeraway/proc/toggleoff() + for(var/obj/machinery/gateway/G in linked) + G.active = 0 + G.update_icon() + active = 0 + update_icon() + + +/obj/machinery/gateway/centeraway/attack_hand(mob/user) + if(!ready) + detect() + return + if(!active) + toggleon(user) + return + toggleoff() + + +/obj/machinery/gateway/centeraway/Bumped(atom/movable/AM) + if(!ready) + return + if(!active) + return + if(!stationgate || qdeleted(stationgate)) + return + if(istype(AM, /mob/living/carbon)) + var/mob/living/carbon/C = AM + for(var/obj/item/weapon/implant/exile/E in C.implants)//Checking that there is an exile implant + AM << "\black The station gate has detected your exile implant and is blocking your entry." + return + AM.forceMove(get_step(stationgate.loc, SOUTH)) + AM.setDir(SOUTH) + if (ismob(AM)) + var/mob/M = AM + if (M.client) + M.client.move_delay = max(world.time + 5, M.client.move_delay) + + +/obj/machinery/gateway/centeraway/attackby(obj/item/device/W, mob/user, params) + if(istype(W,/obj/item/device/multitool)) + if(calibrated) + user << "\black The gate is already calibrated, there is no work for you to do here." + return + else + user << "Recalibration successful!: \black This gate's systems have been fine tuned. Travel to this gate will now be on target." + calibrated = 1 + return diff --git a/code/modules/awaymissions/maploader/dmm_suite.dm b/code/modules/awaymissions/maploader/dmm_suite.dm new file mode 100644 index 0000000..5ed299e --- /dev/null +++ b/code/modules/awaymissions/maploader/dmm_suite.dm @@ -0,0 +1,75 @@ +var/global/dmm_suite/maploader = new + +dmm_suite{ + /* + + dmm_suite version 1.0 + Released January 30th, 2011. + + defines the object /dmm_suite + - Provides the proc load_map() + - Loads the specified map file onto the specified z-level. + - provides the proc write_map() + - Returns a text string of the map in dmm format + ready for output to a file. + - provides the proc save_map() + - Returns a .dmm file if map is saved + - Returns FALSE if map fails to save + + The dmm_suite provides saving and loading of map files in BYOND's native DMM map + format. It approximates the map saving and loading processes of the Dream Maker + and Dream Seeker programs so as to allow editing, saving, and loading of maps at + runtime. + + ------------------------ + + To save a map at runtime, create an instance of /dmm_suite, and then call + write_map(), which accepts three arguments: + - A turf representing one corner of a three dimensional grid (Required). + - Another turf representing the other corner of the same grid (Required). + - Any, or a combination, of several bit flags (Optional, see documentation). + + The order in which the turfs are supplied does not matter, the /dmm_writer will + determine the grid containing both, in much the same way as DM's block() function. + write_map() will then return a string representing the saved map in dmm format; + this string can then be saved to a file, or used for any other purose. + + ------------------------ + + To load a map at runtime, create an instance of /dmm_suite, and then call load_map(), + which accepts two arguments: + - A .dmm file to load (Required). + - A number representing the z-level on which to start loading the map (Optional). + + The /dmm_suite will load the map file starting on the specified z-level. If no + z-level was specified, world.maxz will be increased so as to fit the map. Note + that if you wish to load a map onto a z-level that already has objects on it, + you will have to handle the removal of those objects. Otherwise the new map will + simply load the new objects on top of the old ones. + + Also note that all type paths specified in the .dmm file must exist in the world's + code, and that the /dmm_reader trusts that files to be loaded are in fact valid + .dmm files. Errors in the .dmm format will cause runtime errors. + + */ + + verb/load_map(var/dmm_file as file, var/x_offset as num, var/y_offset as num, var/z_offset as num, var/cropMap as num, var/measureOnly as num){ + // dmm_file: A .dmm file to load (Required). + // z_offset: A number representing the z-level on which to start loading the map (Optional). + // cropMap: When true, the map will be cropped to fit the existing world dimensions (Optional). + // measureOnly: When true, no changes will be made to the world (Optional). + } + verb/write_map(var/turf/t1 as turf, var/turf/t2 as turf, var/flags as num){ + // t1: A turf representing one corner of a three dimensional grid (Required). + // t2: Another turf representing the other corner of the same grid (Required). + // flags: Any, or a combination, of several bit flags (Optional, see documentation). + } + + // save_map is included as a legacy proc. Use write_map instead. + verb/save_map(var/turf/t1 as turf, var/turf/t2 as turf, var/map_name as text, var/flags as num){ + // t1: A turf representing one corner of a three dimensional grid (Required). + // t2: Another turf representing the other corner of the same grid (Required). + // map_name: A valid name for the map to be saved, such as "castle" (Required). + // flags: Any, or a combination, of several bit flags (Optional, see documentation). + } + } \ No newline at end of file diff --git a/code/modules/awaymissions/maploader/reader.dm b/code/modules/awaymissions/maploader/reader.dm new file mode 100644 index 0000000..69b3add --- /dev/null +++ b/code/modules/awaymissions/maploader/reader.dm @@ -0,0 +1,396 @@ +/////////////////////////////////////////////////////////////// +//SS13 Optimized Map loader +////////////////////////////////////////////////////////////// + +//global datum that will preload variables on atoms instanciation +var/global/use_preloader = FALSE +var/global/dmm_suite/preloader/_preloader = new + +/dmm_suite + // /"([a-zA-Z]+)" = \(((?:.|\n)*?)\)\n(?!\t)|\((\d+),(\d+),(\d+)\) = \{"([a-zA-Z\n]*)"\}/g + var/static/regex/dmmRegex = new/regex({""(\[a-zA-Z]+)" = \\(((?:.|\n)*?)\\)\n(?!\t)|\\((\\d+),(\\d+),(\\d+)\\) = \\{"(\[a-zA-Z\n]*)"\\}"}, "g") + // /^[\s\n]+"?|"?[\s\n]+$|^"|"$/g + var/static/regex/trimQuotesRegex = new/regex({"^\[\\s\n]+"?|"?\[\\s\n]+$|^"|"$"}, "g") + // /^[\s\n]+|[\s\n]+$/ + var/static/regex/trimRegex = new/regex("^\[\\s\n]+|\[\\s\n]+$", "g") + var/static/list/modelCache = list() + +/** + * Construct the model map and control the loading process + * + * WORKING : + * + * 1) Makes an associative mapping of model_keys with model + * e.g aa = /turf/unsimulated/wall{icon_state = "rock"} + * 2) Read the map line by line, parsing the result (using parse_grid) + * + */ +/dmm_suite/load_map(dmm_file as file, x_offset as num, y_offset as num, z_offset as num, cropMap as num, measureOnly as num) + var/tfile = dmm_file//the map file we're creating + if(isfile(tfile)) + tfile = file2text(tfile) + + if(!x_offset) + x_offset = 1 + if(!y_offset) + y_offset = 1 + if(!z_offset) + z_offset = world.maxz + 1 + + var/list/bounds = list(1.#INF, 1.#INF, 1.#INF, -1.#INF, -1.#INF, -1.#INF) + var/list/grid_models = list() + var/key_len = 0 + + var/stored_index = 1 + while(dmmRegex.Find(tfile, stored_index)) + stored_index = dmmRegex.next + + // "aa" = (/type{vars=blah}) + if(dmmRegex.group[1]) // Model + var/key = dmmRegex.group[1] + if(grid_models[key]) // Duplicate model keys are ignored in DMMs + continue + if(key_len != length(key)) + if(!key_len) + key_len = length(key) + else + throw EXCEPTION("Inconsistant key length in DMM") + if(!measureOnly) + grid_models[key] = dmmRegex.group[2] + + // (1,1,1) = {"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"} + else if(dmmRegex.group[3]) // Coords + if(!key_len) + throw EXCEPTION("Coords before model definition in DMM") + + var/xcrdStart = text2num(dmmRegex.group[3]) + x_offset - 1 + //position of the currently processed square + var/xcrd + var/ycrd = text2num(dmmRegex.group[4]) + y_offset - 1 + var/zcrd = text2num(dmmRegex.group[5]) + z_offset - 1 + + if(zcrd > world.maxz) + if(cropMap) + continue + else + world.maxz = zcrd //create a new z_level if needed + + bounds[MAP_MINX] = min(bounds[MAP_MINX], xcrdStart) + bounds[MAP_MINZ] = min(bounds[MAP_MINZ], zcrd) + bounds[MAP_MAXZ] = max(bounds[MAP_MAXZ], zcrd) + + var/list/gridLines = splittext(dmmRegex.group[6], "\n") + + var/leadingBlanks = 0 + while(leadingBlanks < gridLines.len && gridLines[++leadingBlanks] == "") + if(leadingBlanks > 1) + gridLines.Cut(1, leadingBlanks) // Remove all leading blank lines. + + if(!gridLines.len) // Skip it if only blank lines exist. + continue + + if(gridLines.len && gridLines[gridLines.len] == "") + gridLines.Cut(gridLines.len) // Remove only one blank line at the end. + + bounds[MAP_MINY] = min(bounds[MAP_MINY], ycrd) + ycrd += gridLines.len - 1 // Start at the top and work down + + if(!cropMap && ycrd > world.maxy) + if(!measureOnly) + world.maxy = ycrd // Expand Y here. X is expanded in the loop below + bounds[MAP_MAXY] = max(bounds[MAP_MAXY], ycrd) + else + bounds[MAP_MAXY] = max(bounds[MAP_MAXY], min(ycrd, world.maxy)) + + var/maxx = xcrdStart + if(measureOnly) + for(var/line in gridLines) + maxx = max(maxx, xcrdStart + length(line) / key_len - 1) + else + for(var/line in gridLines) + if(ycrd <= world.maxy && ycrd >= 1) + xcrd = xcrdStart + for(var/tpos = 1 to length(line) - key_len + 1 step key_len) + if(xcrd > world.maxx) + if(cropMap) + break + else + world.maxx = xcrd + + if(xcrd >= 1) + var/model_key = copytext(line, tpos, tpos + key_len) + if(!grid_models[model_key]) + throw EXCEPTION("Undefined model key in DMM.") + parse_grid(grid_models[model_key], xcrd, ycrd, zcrd) + CHECK_TICK + + maxx = max(maxx, xcrd) + ++xcrd + --ycrd + + bounds[MAP_MAXX] = max(bounds[MAP_MAXX], cropMap ? min(maxx, world.maxx) : maxx) + + CHECK_TICK + + if(bounds[1] == 1.#INF) // Shouldn't need to check every item + return null + else + if(!measureOnly) + for(var/t in block(locate(bounds[MAP_MINX], bounds[MAP_MINY], bounds[MAP_MINZ]), locate(bounds[MAP_MAXX], bounds[MAP_MAXY], bounds[MAP_MAXZ]))) + var/turf/T = t + //we do this after we load everything in. if we don't; we'll have weird atmos bugs regarding atmos adjacent turfs + T.AfterChange(TRUE) + return bounds + +/** + * Fill a given tile with its area/turf/objects/mobs + * Variable model is one full map line (e.g /turf/unsimulated/wall{icon_state = "rock"},/area/mine/explored) + * + * WORKING : + * + * 1) Read the model string, member by member (delimiter is ',') + * + * 2) Get the path of the atom and store it into a list + * + * 3) a) Check if the member has variables (text within '{' and '}') + * + * 3) b) Construct an associative list with found variables, if any (the atom index in members is the same as its variables in members_attributes) + * + * 4) Instanciates the atom with its variables + * + */ +/dmm_suite/proc/parse_grid(model as text,xcrd as num,ycrd as num,zcrd as num) + /*Method parse_grid() + - Accepts a text string containing a comma separated list of type paths of the + same construction as those contained in a .dmm file, and instantiates them. + */ + + var/list/members //will contain all members (paths) in model (in our example : /turf/unsimulated/wall and /area/mine/explored) + var/list/members_attributes //will contain lists filled with corresponding variables, if any (in our example : list(icon_state = "rock") and list()) + var/list/cached = modelCache[model] + var/index + + if(cached) + members = cached[1] + members_attributes = cached[2] + else + + ///////////////////////////////////////////////////////// + //Constructing members and corresponding variables lists + //////////////////////////////////////////////////////// + + members = list() + members_attributes = list() + index = 1 + + var/old_position = 1 + var/dpos + + do + //finding next member (e.g /turf/unsimulated/wall{icon_state = "rock"} or /area/mine/explored) + dpos = find_next_delimiter_position(model, old_position, ",", "{", "}") //find next delimiter (comma here) that's not within {...} + + var/full_def = trim_text(copytext(model, old_position, dpos)) //full definition, e.g : /obj/foo/bar{variables=derp} + var/variables_start = findtext(full_def, "{") + var/atom_def = text2path(trim_text(copytext(full_def, 1, variables_start))) //path definition, e.g /obj/foo/bar + old_position = dpos + 1 + + if(!atom_def) // Skip the item if the path does not exist. Fix your crap, mappers! + continue + members.Add(atom_def) + + //transform the variables in text format into a list (e.g {var1="derp"; var2; var3=7} => list(var1="derp", var2, var3=7)) + var/list/fields = list() + + if(variables_start)//if there's any variable + full_def = copytext(full_def,variables_start+1,length(full_def))//removing the last '}' + fields = readlist(full_def, ";") + + //then fill the members_attributes list with the corresponding variables + members_attributes.len++ + members_attributes[index++] = fields + + CHECK_TICK + while(dpos != 0) + + modelCache[model] = list(members, members_attributes) + + + //////////////// + //Instanciation + //////////////// + + //The next part of the code assumes there's ALWAYS an /area AND a /turf on a given tile + + //first instance the /area and remove it from the members list + index = members.len + if(members[index] != /area/template_noop) + var/atom/instance + _preloader.setup(members_attributes[index])//preloader for assigning set variables on atom creation + + instance = locate(members[index]) + var/turf/crds = locate(xcrd,ycrd,zcrd) + if(crds) + instance.contents.Add(crds) + + if(use_preloader && instance) + _preloader.load(instance) + + //then instance the /turf and, if multiple tiles are presents, simulates the DMM underlays piling effect + + var/first_turf_index = 1 + while(!ispath(members[first_turf_index],/turf)) //find first /turf object in members + first_turf_index++ + + //instanciate the first /turf + var/turf/T + if(members[first_turf_index] != /turf/template_noop) + T = instance_atom(members[first_turf_index],members_attributes[first_turf_index],xcrd,ycrd,zcrd) + + if(T) + //if others /turf are presents, simulates the underlays piling effect + index = first_turf_index + 1 + while(index <= members.len - 1) // Last item is an /area + var/underlay = T.appearance + T = instance_atom(members[index],members_attributes[index],xcrd,ycrd,zcrd)//instance new turf + T.underlays += underlay + index++ + + //finally instance all remainings objects/mobs + for(index in 1 to first_turf_index-1) + instance_atom(members[index],members_attributes[index],xcrd,ycrd,zcrd) + CHECK_TICK + +//////////////// +//Helpers procs +//////////////// + +//Instance an atom at (x,y,z) and gives it the variables in attributes +/dmm_suite/proc/instance_atom(path,list/attributes, x, y, z) + var/atom/instance + _preloader.setup(attributes, path) + + var/turf/T = locate(x,y,z) + if(T) + if(ispath(path, /turf)) + T.ChangeTurf(path, TRUE) + instance = T + else + instance = new path (T)//first preloader pass + + if(use_preloader && instance)//second preloader pass, for those atoms that don't ..() in New() + _preloader.load(instance) + + return instance + +//text trimming (both directions) helper proc +//optionally removes quotes before and after the text (for variable name) +/dmm_suite/proc/trim_text(what as text,trim_quotes=0) + if(trim_quotes) + return trimQuotesRegex.Replace(what, "") + else + return trimRegex.Replace(what, "") + + +//find the position of the next delimiter,skipping whatever is comprised between opening_escape and closing_escape +//returns 0 if reached the last delimiter +/dmm_suite/proc/find_next_delimiter_position(text as text,initial_position as num, delimiter=",",opening_escape=quote,closing_escape=quote) + var/position = initial_position + var/next_delimiter = findtext(text,delimiter,position,0) + var/next_opening = findtext(text,opening_escape,position,0) + + while((next_opening != 0) && (next_opening < next_delimiter)) + position = findtext(text,closing_escape,next_opening + 1,0)+1 + next_delimiter = findtext(text,delimiter,position,0) + next_opening = findtext(text,opening_escape,position,0) + + return next_delimiter + + +//build a list from variables in text form (e.g {var1="derp"; var2; var3=7} => list(var1="derp", var2, var3=7)) +//return the filled list +/dmm_suite/proc/readlist(text as text, delimiter=",") + + var/list/to_return = list() + + var/position + var/old_position = 1 + + do + //find next delimiter that is not within "..." + position = find_next_delimiter_position(text,old_position,delimiter) + + //check if this is a simple variable (as in list(var1, var2)) or an associative one (as in list(var1="foo",var2=7)) + var/equal_position = findtext(text,"=",old_position, position) + + var/trim_left = trim_text(copytext(text,old_position,(equal_position ? equal_position : position)),1)//the name of the variable, must trim quotes to build a BYOND compliant associatives list + old_position = position + 1 + + if(equal_position)//associative var, so do the association + var/trim_right = trim_text(copytext(text,equal_position+1,position))//the content of the variable + + //Check for string + if(findtext(trim_right,quote,1,2)) + trim_right = copytext(trim_right,2,findtext(trim_right,quote,3,0)) + + //Check for number + else if(isnum(text2num(trim_right))) + trim_right = text2num(trim_right) + + //Check for null + else if(trim_right == "null") + trim_right = null + + //Check for list + else if(copytext(trim_right,1,5) == "list") + trim_right = readlist(copytext(trim_right,6,length(trim_right))) + + //Check for file + else if(copytext(trim_right,1,2) == "'") + trim_right = file(copytext(trim_right,2,length(trim_right))) + + //Check for path + else if(ispath(text2path(trim_right))) + trim_right = text2path(trim_right) + + to_return[trim_left] = trim_right + + else//simple var + to_return[trim_left] = null + + while(position != 0) + + return to_return + +/dmm_suite/Destroy() + ..() + return QDEL_HINT_HARDDEL_NOW + +////////////////// +//Preloader datum +////////////////// + +/dmm_suite/preloader + parent_type = /datum + var/list/attributes + var/target_path + +/dmm_suite/preloader/proc/setup(list/the_attributes, path) + if(the_attributes.len) + use_preloader = TRUE + attributes = the_attributes + target_path = path + +/dmm_suite/preloader/proc/load(atom/what) + for(var/attribute in attributes) + var/value = attributes[attribute] + if(islist(value)) + value = deepCopyList(value) + what.vars[attribute] = value + use_preloader = FALSE + +/area/template_noop + name = "Area Passthrough" + +/turf/template_noop + name = "Turf Passthrough" diff --git a/code/modules/awaymissions/maploader/swapmaps.dm b/code/modules/awaymissions/maploader/swapmaps.dm new file mode 100644 index 0000000..b1a0924 --- /dev/null +++ b/code/modules/awaymissions/maploader/swapmaps.dm @@ -0,0 +1,679 @@ +//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32 + +/* + SwapMaps library by Lummox JR + developed for digitalBYOND + http://www.digitalbyond.org + + Version 2.1 + + The purpose of this library is to make it easy for authors to swap maps + in and out of their game using savefiles. Swapped-out maps can be + transferred between worlds for an MMORPG, sent to the client, etc. + This is facilitated by the use of a special datum and a global list. + + Uses of swapmaps: + + - Temporary battle arenas + - House interiors + - Individual custom player houses + - Virtually unlimited terrain + - Sharing maps between servers running different instances of the same + game + - Loading and saving pieces of maps for reusable room templates + */ + +/* + User Interface: + + VARS: + + swapmaps_iconcache + An associative list of icon files with names, like + 'player.dmi' = "player" + swapmaps_mode + This must be set at runtime, like in world/New(). + + SWAPMAPS_SAV 0 (default) + Uses .sav files for raw /savefile output. + SWAPMAPS_TEXT 1 + Uses .txt files via ExportText() and ImportText(). These maps + are easily editable and appear to take up less space in the + current version of BYOND. + + PROCS: + + SwapMaps_Find(id) + Find a map by its id + SwapMaps_Load(id) + Load a map by its id + SwapMaps_Save(id) + Save a map by its id (calls swapmap.Save()) + SwapMaps_Unload(id) + Save and unload a map by its id (calls swapmap.Unload()) + SwapMaps_Save_All() + Save all maps + SwapMaps_DeleteFile(id) + Delete a map file + SwapMaps_CreateFromTemplate(id) + Create a new map by loading another map to use as a template. + This map has id==src and will not be saved. To make it savable, + change id with swapmap.SetID(newid). + SwapMaps_LoadChunk(id,turf/locorner) + Load a swapmap as a "chunk", at a specific place. A new datum is + created but it's not added to the list of maps to save or unload. + The new datum can be safely deleted without affecting the turfs + it loaded. The purpose of this is to load a map file onto part of + another swapmap or an existing part of the world. + locorner is the corner turf with the lowest x,y,z values. + SwapMaps_SaveChunk(id,turf/corner1,turf/corner2) + Save a piece of the world as a "chunk". A new datum is created + for the chunk, but it can be deleted without destroying any turfs. + The chunk file can be reloaded as a swapmap all its own, or loaded + via SwapMaps_LoadChunk() to become part of another map. + SwapMaps_GetSize(id) + Return a list corresponding to the x,y,z sizes of a map file, + without loading the map. + Returns null if the map is not found. + SwapMaps_AddIconToCache(name,icon) + Cache an icon file by name for space-saving storage + + swapmap.New(id,x,y,z) + Create a new map; specify id, width (x), height (y), and + depth (z) + Default size is world.maxx,world.maxy,1 + swapmap.New(id,turf1,turf2) + Create a new map; specify id and 2 corners + This becomes a /swapmap for one of the compiled-in maps, for + easy saving. + swapmap.New() + Create a new map datum, but does not allocate space or assign an + ID (used for loading). + swapmap.Del() + Deletes a map but does not save + swapmap.Save() + Saves to map_[id].sav + Maps with id==src are not saved. + swapmap.Unload() + Saves the map and then deletes it + Maps with id==src are not saved. + swapmap.SetID(id) + Change the map's id and make changes to the lookup list + swapmap.AllTurfs(z) + Returns a block of turfs encompassing the entire map, or on just + one z-level + z is in world coordinates; it is optional + swapmap.Contains(turf/T) + Returns nonzero if T is inside the map's boundaries. + Also works for objs and mobs, but the proc is not area-safe. + swapmap.InUse() + Returns nonzero if a mob with a key is within the map's + boundaries. + swapmap.LoCorner(z=z1) + Returns locate(x1,y1,z), where z=z1 if none is specified. + swapmap.HiCorner(z=z2) + Returns locate(x2,y2,z), where z=z2 if none is specified. + swapmap.BuildFilledRectangle(turf/corner1,turf/corner2,item) + Builds a filled rectangle of item from one corner turf to the + other, on multiple z-levels if necessary. The corners may be + specified in any order. + item is a type path like /turf/closed/wall or /obj/barrel{full=1}. + swapmap.BuildRectangle(turf/corner1,turf/corner2,item) + Builds an unfilled rectangle of item from one corner turf to + the other, on multiple z-levels if necessary. + swapmap.BuildInTurfs(list/turfs,item) + Builds item on all of the turfs listed. The list need not + contain only turfs, or even only atoms. + */ + +swapmap + var/id // a string identifying this map uniquely + var/x1 // minimum x,y,z coords + var/y1 + var/z1 + var/x2 // maximum x,y,z coords (also used as width,height,depth until positioned) + var/y2 + var/z2 + var/tmp/locked // don't move anyone to this map; it's saving or loading + var/tmp/mode // save as text-mode + var/ischunk // tells the load routine to load to the specified location + + New(_id,x,y,z) + if(isnull(_id)) return + id=_id + mode=swapmaps_mode + if(isturf(x) && isturf(y)) + /* + Special format: Defines a map as an existing set of turfs; + this is useful for saving a compiled map in swapmap format. + Because this is a compiled-in map, its turfs are not deleted + when the datum is deleted. + */ + x1=min(x:x,y:x);x2=max(x:x,y:x) + y1=min(x:y,y:y);y2=max(x:y,y:y) + z1=min(x:z,y:z);z2=max(x:z,y:z) + InitializeSwapMaps() + if(z2>swapmaps_compiled_maxz ||\ + y2>swapmaps_compiled_maxy ||\ + x2>swapmaps_compiled_maxx) + qdel(src) + return + x2=x?(x):world.maxx + y2=y?(y):world.maxy + z2=z?(z):1 + AllocateSwapMap() + + Destroy() + // a temporary datum for a chunk can be deleted outright + // for others, some cleanup is necessary + if(!ischunk) + swapmaps_loaded-=src + swapmaps_byname-=id + if(z2>swapmaps_compiled_maxz ||\ + y2>swapmaps_compiled_maxy ||\ + x2>swapmaps_compiled_maxx) + var/list/areas=new + for(var/atom/A in block(locate(x1,y1,z1),locate(x2,y2,z2))) + for(var/obj/O in A) qdel(O) + for(var/mob/M in A) + if(!M.key) qdel(M) + else M.loc=null + areas[A.loc]=null + qdel(A) + // delete areas that belong only to this map + for(var/area/a in areas) + if(a && !a.contents.len) qdel(a) + if(x2>=world.maxx || y2>=world.maxy || z2>=world.maxz) CutXYZ() + qdel(areas) + ..() + return QDEL_HINT_HARDDEL_NOW + + /* + Savefile format: + map + id + x // size, not coords + y + z + areas // list of areas, not including default + [each z; 1 to depth] + [each y; 1 to height] + [each x; 1 to width] + type // of turf + AREA // if non-default; saved as a number (index into areas list) + vars // all other changed vars + */ + Write(savefile/S) + var/x + var/y + var/z + var/n + var/list/areas + var/area/defarea=locate(world.area) + if(!defarea) defarea=new world.area + areas=list() + for(var/turf/T in block(locate(x1,y1,z1),locate(x2,y2,z2))) + areas[T.loc]=null + for(n in areas) // quickly eliminate associations for smaller storage + areas-=n + areas+=n + areas-=defarea + InitializeSwapMaps() + locked=1 + S["id"] << id + S["z"] << z2-z1+1 + S["y"] << y2-y1+1 + S["x"] << x2-x1+1 + S["areas"] << areas + for(n in 1 to areas.len) areas[areas[n]]=n + var/oldcd=S.cd + for(z in z1 to z2) + S.cd="[z-z1+1]" + for(y in y1 to y2) + S.cd="[y-y1+1]" + for(x in x1 to x2) + S.cd="[x-x1+1]" + var/turf/T=locate(x,y,z) + S["type"] << T.type + if(T.loc!=defarea) S["AREA"] << areas[T.loc] + T.Write(S) + S.cd=".." + S.cd=".." + sleep() + S.cd=oldcd + locked=0 + qdel(areas) + + Read(savefile/S,_id,turf/locorner) + var/x + var/y + var/z + var/n + var/list/areas + var/area/defarea=locate(world.area) + id=_id + if(locorner) + ischunk=1 + x1=locorner.x + y1=locorner.y + z1=locorner.z + if(!defarea) defarea=new world.area + if(!_id) + S["id"] >> id + else + var/dummy + S["id"] >> dummy + S["z"] >> z2 // these are depth, + S["y"] >> y2 // height, + S["x"] >> x2 // width + S["areas"] >> areas + locked=1 + AllocateSwapMap() // adjust x1,y1,z1 - x2,y2,z2 coords + var/oldcd=S.cd + for(z in z1 to z2) + S.cd="[z-z1+1]" + for(y in y1 to y2) + S.cd="[y-y1+1]" + for(x in x1 to x2) + S.cd="[x-x1+1]" + var/tp + S["type"]>>tp + var/turf/T=locate(x,y,z) + T.loc.contents-=T + T=new tp(locate(x,y,z)) + if("AREA" in S.dir) + S["AREA"]>>n + var/area/A=areas[n] + A.contents+=T + else defarea.contents+=T + // clear the turf + for(var/obj/O in T) qdel(O) + for(var/mob/M in T) + if(!M.key) qdel(M) + else M.loc=null + // finish the read + T.Read(S) + S.cd=".." + S.cd=".." + sleep() + S.cd=oldcd + locked=0 + qdel(areas) + + /* + Find an empty block on the world map in which to load this map. + If no space is found, increase world.maxz as necessary. (If the + map is greater in x,y size than the current world, expand + world.maxx and world.maxy too.) + + Ignore certain operations if loading a map as a chunk. Use the + x1,y1,z1 position for it, and *don't* count it as a loaded map. + */ + proc/AllocateSwapMap() + InitializeSwapMaps() + world.maxx=max(x2,world.maxx) // stretch x/y if necessary + world.maxy=max(y2,world.maxy) + if(!ischunk) + if(world.maxz<=swapmaps_compiled_maxz) + z1=swapmaps_compiled_maxz+1 + x1=1;y1=1 + else + var/list/l=ConsiderRegion(1,1,world.maxx,world.maxy,swapmaps_compiled_maxz+1) + x1=l[1] + y1=l[2] + z1=l[3] + qdel(l) + x2+=x1-1 + y2+=y1-1 + z2+=z1-1 + world.maxz=max(z2,world.maxz) // stretch z if necessary + if(!ischunk) + swapmaps_loaded[src]=null + swapmaps_byname[id]=src + + proc/ConsiderRegion(X1,Y1,X2,Y2,Z1,Z2) + while(1) + var/nextz=0 + var/swapmap/M + for(M in swapmaps_loaded) + if(M.z2Z2) || M.z1>=Z1+z2 ||\ + M.x1>X2 || M.x2=X1+x2 ||\ + M.y1>Y2 || M.y2=Y1+y2) continue + // look for sub-regions with a defined ceiling + var/nz2=Z2?(Z2):Z1+z2-1+M.z2-M.z1 + if(M.x1>=X1+x2) + .=ConsiderRegion(X1,Y1,M.x1-1,Y2,Z1,nz2) + if(.) return + else if(M.x2<=X2-x2) + .=ConsiderRegion(M.x2+1,Y1,X2,Y2,Z1,nz2) + if(.) return + if(M.y1>=Y1+y2) + .=ConsiderRegion(X1,Y1,X2,M.y1-1,Z1,nz2) + if(.) return + else if(M.y2<=Y2-y2) + .=ConsiderRegion(X1,M.y2+1,X2,Y2,Z1,nz2) + if(.) return + nextz=nextz?min(nextz,M.z2+1):(M.z2+1) + if(!M) + /* If nextz is not 0, then at some point there was an overlap that + could not be resolved by using an area to the side */ + if(nextz) Z1=nextz + if(!nextz || (Z2 && Z2-Z1+1=z2)?list(X1,Y1,Z1):null + X1=1;X2=world.maxx + Y1=1;Y2=world.maxy + + proc/CutXYZ() + var/mx=swapmaps_compiled_maxx + var/my=swapmaps_compiled_maxy + var/mz=swapmaps_compiled_maxz + for(var/swapmap/M in swapmaps_loaded) // may not include src + mx=max(mx,M.x2) + my=max(my,M.y2) + mz=max(mz,M.z2) + world.maxx=mx + world.maxy=my + world.maxz=mz + + // save and delete + proc/Unload() + Save() + qdel(src) + + proc/Save() + if(id==src) return 0 + var/savefile/S=mode?(new):new("map_[id].sav") + S << src + while(locked) sleep(1) + if(mode) + fdel("map_[id].txt") + S.ExportText("/","map_[id].txt") + return 1 + + // this will not delete existing savefiles for this map + proc/SetID(newid) + swapmaps_byname-=id + id=newid + swapmaps_byname[id]=src + + proc/AllTurfs(z) + if(isnum(z) && (zz2)) return null + return block(LoCorner(z),HiCorner(z)) + + // this could be safely called for an obj or mob as well, but + // probably not an area + proc/Contains(turf/T) + return (T && T.x>=x1 && T.x<=x2\ + && T.y>=y1 && T.y<=y2\ + && T.z>=z1 && T.z<=z2) + + proc/InUse() + for(var/turf/T in AllTurfs()) + for(var/mob/M in T) if(M.key) return 1 + + proc/LoCorner(z=z1) + return locate(x1,y1,z) + proc/HiCorner(z=z2) + return locate(x2,y2,z) + + /* + Build procs: Take 2 turfs as corners, plus an item type. + An item may be like: + + /turf/closed/wall + /obj/fence{icon_state="iron"} + */ + proc/BuildFilledRectangle(turf/T1,turf/T2,item) + if(!Contains(T1) || !Contains(T2)) return + var/turf/T=T1 + // pick new corners in a block()-friendly form + T1=locate(min(T1.x,T2.x),min(T1.y,T2.y),min(T1.z,T2.z)) + T2=locate(max(T.x,T2.x),max(T.y,T2.y),max(T.z,T2.z)) + for(T in block(T1,T2)) new item(T) + + proc/BuildRectangle(turf/T1,turf/T2,item) + if(!Contains(T1) || !Contains(T2)) return + var/turf/T=T1 + // pick new corners in a block()-friendly form + T1=locate(min(T1.x,T2.x),min(T1.y,T2.y),min(T1.z,T2.z)) + T2=locate(max(T.x,T2.x),max(T.y,T2.y),max(T.z,T2.z)) + if(T2.x-T1.x<2 || T2.y-T1.y<2) BuildFilledRectangle(T1,T2,item) + else + //for(T in block(T1,T2)-block(locate(T1.x+1,T1.y+1,T1.z),locate(T2.x-1,T2.y-1,T2.z))) + for(T in block(T1,locate(T2.x,T1.y,T2.z))) new item(T) + for(T in block(locate(T1.x,T2.y,T1.z),T2)) new item(T) + for(T in block(locate(T1.x,T1.y+1,T1.z),locate(T1.x,T2.y-1,T2.z))) new item(T) + for(T in block(locate(T2.x,T1.y+1,T1.z),locate(T2.x,T2.y-1,T2.z))) new item(T) + + /* + Supplementary build proc: Takes a list of turfs, plus an item + type. Actually the list doesn't have to be just turfs. + */ + proc/BuildInTurfs(list/turfs,item) + for(var/T in turfs) new item(T) + +atom + Write(savefile/S) + for(var/V in vars-"x"-"y"-"z"-"contents"-"icon"-"overlays"-"underlays") + if(issaved(vars[V])) + if(vars[V]!=initial(vars[V])) S[V]<>ic + if(istext(ic)) icon=swapmaps_iconcache[ic] + if(l && contents!=l) + contents+=l + qdel(l) + + +// set this up (at runtime) as follows: +// list(\ +// 'player.dmi'="player",\ +// 'monster.dmi'="monster",\ +// ... +// 'item.dmi'="item") +var/list/swapmaps_iconcache + +// preferred mode; sav or text +var/const/SWAPMAPS_SAV=0 +var/const/SWAPMAPS_TEXT=1 +var/swapmaps_mode=SWAPMAPS_SAV + +var/swapmaps_compiled_maxx +var/swapmaps_compiled_maxy +var/swapmaps_compiled_maxz +var/swapmaps_initialized +var/swapmaps_loaded +var/swapmaps_byname + +proc/InitializeSwapMaps() + if(swapmaps_initialized) return + swapmaps_initialized=1 + swapmaps_compiled_maxx=world.maxx + swapmaps_compiled_maxy=world.maxy + swapmaps_compiled_maxz=world.maxz + swapmaps_loaded=list() + swapmaps_byname=list() + if(swapmaps_iconcache) + for(var/V in swapmaps_iconcache) + // reverse-associate everything + // so you can look up an icon file by name or vice-versa + swapmaps_iconcache[swapmaps_iconcache[V]]=V + +proc/SwapMaps_AddIconToCache(name,icon) + if(!swapmaps_iconcache) swapmaps_iconcache=list() + swapmaps_iconcache[name]=icon + swapmaps_iconcache[icon]=name + +proc/SwapMaps_Find(id) + InitializeSwapMaps() + return swapmaps_byname[id] + +proc/SwapMaps_Load(id) + InitializeSwapMaps() + var/swapmap/M=swapmaps_byname[id] + if(!M) + var/savefile/S + var/text=0 + if(swapmaps_mode==SWAPMAPS_TEXT && fexists("map_[id].txt")) + text=1 + else if(fexists("map_[id].sav")) + S=new("map_[id].sav") + else if(swapmaps_mode!=SWAPMAPS_TEXT && fexists("map_[id].txt")) + text=1 + else return // no file found + if(text) + S=new + S.ImportText("/",file("map_[id].txt")) + S >> M + while(M.locked) sleep(1) + M.mode=text + return M + +proc/SwapMaps_Save(id) + InitializeSwapMaps() + var/swapmap/M=swapmaps_byname[id] + if(M) M.Save() + return M + +proc/SwapMaps_Save_All() + InitializeSwapMaps() + for(var/swapmap/M in swapmaps_loaded) + if(M) M.Save() + +proc/SwapMaps_Unload(id) + InitializeSwapMaps() + var/swapmap/M=swapmaps_byname[id] + if(!M) return // return silently from an error + M.Unload() + return 1 + +proc/SwapMaps_DeleteFile(id) + fdel("map_[id].sav") + fdel("map_[id].txt") + +proc/SwapMaps_CreateFromTemplate(template_id) + var/swapmap/M=new + var/savefile/S + var/text=0 + if(swapmaps_mode==SWAPMAPS_TEXT && fexists("map_[template_id].txt")) + text=1 + else if(fexists("map_[template_id].sav")) + S=new("map_[template_id].sav") + else if(swapmaps_mode!=SWAPMAPS_TEXT && fexists("map_[template_id].txt")) + text=1 + else + world.log << "SwapMaps error in SwapMaps_CreateFromTemplate(): map_[template_id] file not found." + return + if(text) + S=new + S.ImportText("/",file("map_[template_id].txt")) + /* + This hacky workaround is needed because S >> M will create a brand new + M to fill with data. There's no way to control the Read() process + properly otherwise. The //.0 path should always match the map, however. + */ + S.cd="//.0" + M.Read(S,M) + M.mode=text + while(M.locked) sleep(1) + return M + +proc/SwapMaps_LoadChunk(chunk_id,turf/locorner) + var/swapmap/M=new + var/savefile/S + var/text=0 + if(swapmaps_mode==SWAPMAPS_TEXT && fexists("map_[chunk_id].txt")) + text=1 + else if(fexists("map_[chunk_id].sav")) + S=new("map_[chunk_id].sav") + else if(swapmaps_mode!=SWAPMAPS_TEXT && fexists("map_[chunk_id].txt")) + text=1 + else + world.log << "SwapMaps error in SwapMaps_LoadChunk(): map_[chunk_id] file not found." + return + if(text) + S=new + S.ImportText("/",file("map_[chunk_id].txt")) + /* + This hacky workaround is needed because S >> M will create a brand new + M to fill with data. There's no way to control the Read() process + properly otherwise. The //.0 path should always match the map, however. + */ + S.cd="//.0" + M.Read(S,M,locorner) + while(M.locked) sleep(1) + qdel(M) + return 1 + +proc/SwapMaps_SaveChunk(chunk_id,turf/corner1,turf/corner2) + if(!corner1 || !corner2) + world.log << "SwapMaps error in SwapMaps_SaveChunk():" + if(!corner1) world.log << " corner1 turf is null" + if(!corner2) world.log << " corner2 turf is null" + return + var/swapmap/M=new + M.id=chunk_id + M.ischunk=1 // this is a chunk + M.x1=min(corner1.x,corner2.x) + M.y1=min(corner1.y,corner2.y) + M.z1=min(corner1.z,corner2.z) + M.x2=max(corner1.x,corner2.x) + M.y2=max(corner1.y,corner2.y) + M.z2=max(corner1.z,corner2.z) + M.mode=swapmaps_mode + M.Save() + while(M.locked) sleep(1) + qdel(M) + return 1 + +proc/SwapMaps_GetSize(id) + var/savefile/S + var/text=0 + if(swapmaps_mode==SWAPMAPS_TEXT && fexists("map_[id].txt")) + text=1 + else if(fexists("map_[id].sav")) + S=new("map_[id].sav") + else if(swapmaps_mode!=SWAPMAPS_TEXT && fexists("map_[id].txt")) + text=1 + else + world.log << "SwapMaps error in SwapMaps_GetSize(): map_[id] file not found." + return + if(text) + S=new + S.ImportText("/",file("map_[id].txt")) + /* + The //.0 path should always be the map. There's no other way to + read this data. + */ + S.cd="//.0" + var/x + var/y + var/z + S["x"] >> x + S["y"] >> y + S["z"] >> z + return list(x,y,z) diff --git a/code/modules/awaymissions/maploader/writer.dm b/code/modules/awaymissions/maploader/writer.dm new file mode 100644 index 0000000..208d093 --- /dev/null +++ b/code/modules/awaymissions/maploader/writer.dm @@ -0,0 +1,174 @@ +#define DMM_IGNORE_AREAS 1 +#define DMM_IGNORE_TURFS 2 +#define DMM_IGNORE_OBJS 4 +#define DMM_IGNORE_NPCS 8 +#define DMM_IGNORE_PLAYERS 16 +#define DMM_IGNORE_MOBS 24 +dmm_suite{ + var{ + quote = "\"" + list/letter_digits = list( + "a","b","c","d","e", + "f","g","h","i","j", + "k","l","m","n","o", + "p","q","r","s","t", + "u","v","w","x","y", + "z", + "A","B","C","D","E", + "F","G","H","I","J", + "K","L","M","N","O", + "P","Q","R","S","T", + "U","V","W","X","Y", + "Z" + ) + } + save_map(var/turf/t1 as turf, var/turf/t2 as turf, var/map_name as text, var/flags as num){ + //Check for illegal characters in file name... in a cheap way. + if(!((ckeyEx(map_name)==map_name) && ckeyEx(map_name))){ + CRASH("Invalid text supplied to proc save_map, invalid characters or empty string.") + } + //Check for valid turfs. + if(!isturf(t1) || !isturf(t2)){ + CRASH("Invalid arguments supplied to proc save_map, arguments were not turfs.") + } + var/file_text = write_map(t1,t2,flags) + if(fexists("[map_name].dmm")){ + fdel("[map_name].dmm") + } + var/saved_map = file("[map_name].dmm") + saved_map << file_text + return saved_map + } + write_map(var/turf/t1 as turf, var/turf/t2 as turf, var/flags as num){ + //Check for valid turfs. + if(!isturf(t1) || !isturf(t2)){ + CRASH("Invalid arguments supplied to proc write_map, arguments were not turfs.") + } + var/turf/nw = locate(min(t1.x,t2.x),max(t1.y,t2.y),min(t1.z,t2.z)) + var/turf/se = locate(max(t1.x,t2.x),min(t1.y,t2.y),max(t1.z,t2.z)) + var/list/templates[0] + var/template_buffer = {""} + var/dmm_text = {""} + for(var/pos_z in nw.z to se.z){ + for(var/pos_y in nw.y to se.y){ + for(var/pos_x in nw.x to se.x){ + var/turf/test_turf = locate(pos_x,pos_y,pos_z) + var/test_template = make_template(test_turf, flags) + var/template_number = templates.Find(test_template) + if(!template_number){ + templates.Add(test_template) + template_number = templates.len + } + template_buffer += "[template_number]," + } + template_buffer += ";" + } + template_buffer += "." + } + var/key_length = round/*floor*/(log(letter_digits.len,templates.len-1)+1) + var/list/keys[templates.len] + for(var/key_pos in 1 to templates.len){ + keys[key_pos] = get_model_key(key_pos,key_length) + dmm_text += {""[keys[key_pos]]" = ([templates[key_pos]])\n"} + } + var/z_level = 0 + for(var/z_pos=1;TRUE;z_pos=findtext(template_buffer,".",z_pos)+1){ + if(z_pos>=length(template_buffer)){break} + if(z_level){dmm_text+={"\n"}} + dmm_text += {"\n(1,1,[++z_level]) = {"\n"} + var/z_block = copytext(template_buffer,z_pos,findtext(template_buffer,".",z_pos)) + for(var/y_pos=1;TRUE;y_pos=findtext(z_block,";",y_pos)+1){ + if(y_pos>=length(z_block)){break} + var/y_block = copytext(z_block,y_pos,findtext(z_block,";",y_pos)) + for(var/x_pos=1;TRUE;x_pos=findtext(y_block,",",x_pos)+1){ + if(x_pos>=length(y_block)){break} + var/x_block = copytext(y_block,x_pos,findtext(y_block,",",x_pos)) + var/key_number = text2num(x_block) + var/temp_key = keys[key_number] + dmm_text += temp_key + sleep(-1) + } + dmm_text += {"\n"} + sleep(-1) + } + dmm_text += {"\"}"} + sleep(-1) + } + return dmm_text + } + proc{ + make_template(var/turf/model as turf, var/flags as num){ + var/template = "" + var/obj_template = "" + var/mob_template = "" + var/turf_template = "" + if(!(flags & DMM_IGNORE_TURFS)){ + turf_template = "[model.type][check_attributes(model)]," + } else{ turf_template = "[world.turf],"} + var/area_template = "" + if(!(flags & DMM_IGNORE_OBJS)){ + for(var/obj/O in model.contents){ + obj_template += "[O.type][check_attributes(O)]," + } + } + for(var/mob/M in model.contents){ + if(M.client){ + if(!(flags & DMM_IGNORE_PLAYERS)){ + mob_template += "[M.type][check_attributes(M)]," + } + } + else{ + if(!(flags & DMM_IGNORE_NPCS)){ + mob_template += "[M.type][check_attributes(M)]," + } + } + } + if(!(flags & DMM_IGNORE_AREAS)){ + var/area/m_area = model.loc + area_template = "[m_area.type][check_attributes(m_area)]" + } else{ area_template = "[world.area]"} + template = "[obj_template][mob_template][turf_template][area_template]" + return template + } + check_attributes(var/atom/A){ + var/attributes_text = {"{"} + for(var/V in A.vars){ + sleep(-1) + if((!issaved(A.vars[V])) || (A.vars[V]==initial(A.vars[V]))){continue} + if(istext(A.vars[V])){ + attributes_text += {"[V] = "[A.vars[V]]""} + } + else if(isnum(A.vars[V])||ispath(A.vars[V])){ + attributes_text += {"[V] = [A.vars[V]]"} + } + else if(isicon(A.vars[V])||isfile(A.vars[V])){ + attributes_text += {"[V] = '[A.vars[V]]'"} + } + else{ + continue + } + if(attributes_text != {"{"}){ + attributes_text+={"; "} + } + } + if(attributes_text=={"{"}){ + return + } + if(copytext(attributes_text, length(attributes_text)-1, 0) == {"; "}){ + attributes_text = copytext(attributes_text, 1, length(attributes_text)-1) + } + attributes_text += {"}"} + return attributes_text + } + get_model_key(var/which as num, var/key_length as num){ + var/key = "" + var/working_digit = which-1 + for(var/digit_pos in key_length to 1 step -1){ + var/place_value = round/*floor*/(working_digit/(letter_digits.len**(digit_pos-1))) + working_digit-=place_value*(letter_digits.len**(digit_pos-1)) + key = "[key][letter_digits[place_value+1]]" + } + return key + } + } + } \ No newline at end of file diff --git a/code/modules/awaymissions/mission_code/Academy.dm b/code/modules/awaymissions/mission_code/Academy.dm new file mode 100644 index 0000000..7a0f1ff --- /dev/null +++ b/code/modules/awaymissions/mission_code/Academy.dm @@ -0,0 +1,308 @@ + +//Academy Items + +/obj/singularity/academy + dissipate = 0 + move_self = 0 + grav_pull = 1 + +/obj/singularity/academy/admin_investigate_setup() + return + +/obj/singularity/academy/process() + eat() + if(prob(1)) + mezzer() + + +/obj/item/clothing/glasses/meson/truesight + name = "The Lens of Truesight" + desc = "I can see forever!" + icon_state = "monocle" + item_state = "headset" + + +/obj/structure/academy_wizard_spawner + name = "Academy Defensive System" + desc = "Made by Abjuration Inc" + icon = 'icons/obj/cult.dmi' + icon_state = "forge" + anchored = 1 + obj_integrity = 200 + max_integrity = 200 + var/mob/living/current_wizard = null + var/next_check = 0 + var/cooldown = 600 + var/faction = "wizard" + var/braindead_check = 0 + +/obj/structure/academy_wizard_spawner/New() + START_PROCESSING(SSobj, src) + +/obj/structure/academy_wizard_spawner/Destroy() + if(!broken) + STOP_PROCESSING(SSobj, src) + return ..() + +/obj/structure/academy_wizard_spawner/process() + if(next_check < world.time) + if(!current_wizard) + for(var/mob/living/L in player_list) + if(L.z == src.z && L.stat != DEAD && !(faction in L.faction)) + summon_wizard() + break + else + if(current_wizard.stat == DEAD) + current_wizard = null + summon_wizard() + if(!current_wizard.client) + if(!braindead_check) + braindead_check = 1 + else + braindead_check = 0 + give_control() + next_check = world.time + cooldown + +/obj/structure/academy_wizard_spawner/proc/give_control() + if(!current_wizard) + return + spawn(0) + var/list/mob/dead/observer/candidates = pollCandidatesForMob("Do you want to play as Wizard Academy Defender?", "wizard", null, ROLE_WIZARD, current_wizard) + var/mob/dead/observer/chosen = null + + if(candidates.len) + chosen = pick(candidates) + message_admins("[key_name_admin(chosen)] was spawned as Wizard Academy Defender") + current_wizard.ghostize() // on the off chance braindead defender gets back in + current_wizard.key = chosen.key + +/obj/structure/academy_wizard_spawner/proc/summon_wizard() + var/turf/T = src.loc + + var/mob/living/carbon/human/wizbody = new(T) + wizbody.equipOutfit(/datum/outfit/wizard/academy) + var/obj/item/weapon/implant/exile/Implant = new/obj/item/weapon/implant/exile(wizbody) + Implant.implant(wizbody) + wizbody.faction |= "wizard" + wizbody.real_name = "Academy Teacher" + wizbody.name = "Academy Teacher" + + var/datum/mind/wizmind = new /datum/mind() + wizmind.name = "Wizard Defender" + wizmind.special_role = "Academy Defender" + var/datum/objective/O = new("Protect Wizard Academy from the intruders") + wizmind.objectives += O + wizmind.transfer_to(wizbody) + ticker.mode.wizards |= wizmind + + wizmind.AddSpell(new /obj/effect/proc_holder/spell/targeted/ethereal_jaunt) + wizmind.AddSpell(new /obj/effect/proc_holder/spell/targeted/projectile/magic_missile) + wizmind.AddSpell(new /obj/effect/proc_holder/spell/fireball) + + current_wizard = wizbody + + give_control() + +/obj/structure/academy_wizard_spawner/deconstruct(disassembled = TRUE) + if(!broken) + broken = 1 + visible_message("[src] breaks down!") + icon_state = "forge_off" + STOP_PROCESSING(SSobj, src) + +/datum/outfit/wizard/academy + name = "Academy Wizard" + r_pocket = null + r_hand = null + suit = /obj/item/clothing/suit/wizrobe/red + head = /obj/item/clothing/head/wizard/red + backpack_contents = list(/obj/item/weapon/storage/box/survival = 1) + +/obj/item/weapon/dice/d20/fate + name = "Die of Fate" + desc = "A die with twenty sides. You can feel unearthly energies radiating from it. Using this might be VERY risky." + icon_state = "d20" + sides = 20 + var/reusable = 1 + var/used = 0 + var/rigged = -1 + +/obj/item/weapon/dice/d20/fate/one_use + reusable = 0 + +/obj/item/weapon/dice/d20/fate/diceroll(mob/user) + ..() + if(!used) + if(!ishuman(user) || !user.mind || (user.mind in ticker.mode.wizards)) + user << "You feel the magic of the dice is restricted to ordinary humans!" + return + if(rigged > 0) + effect(user,rigged) + else + effect(user,result) + +/obj/item/weapon/dice/d20/fate/equipped(mob/user, slot) + if(!ishuman(user) || !user.mind || (user.mind in ticker.mode.wizards)) + user << "You feel the magic of the dice is restricted to ordinary humans! You should leave it alone." + user.drop_item() + + +/obj/item/weapon/dice/d20/fate/proc/effect(var/mob/living/carbon/human/user,roll) + if(!reusable) + used = 1 + visible_message("The die flare briefly.") + switch(roll) + if(1) + //Dust + user.dust() + if(2) + //Death + user.death() + if(3) + //Swarm of creatures + for(var/direction in alldirs) + var/turf/T = get_turf(src) + new /mob/living/simple_animal/hostile/creature(get_step(T,direction)) + if(4) + //Destroy Equipment + for (var/obj/item/I in user) + if (istype(I, /obj/item/weapon/implant)) + continue + qdel(I) + if(5) + //Monkeying + user.monkeyize() + if(6) + //Cut speed + var/datum/species/S = user.dna.species + S.speedmod += 1 + if(7) + //Throw + user.Stun(3) + user.adjustBruteLoss(50) + var/throw_dir = pick(cardinal) + var/atom/throw_target = get_edge_target_turf(user, throw_dir) + user.throw_at(throw_target, 200, 4) + if(8) + //Fueltank Explosion + explosion(src.loc,-1,0,2, flame_range = 2) + if(9) + //Cold + var/datum/disease/D = new /datum/disease/cold + user.ForceContractDisease(D) + if(10) + //Nothing + visible_message("[src] roll perfectly.") + if(11) + //Cookie + var/obj/item/weapon/reagent_containers/food/snacks/cookie/C = new(get_turf(src)) + C.name = "Cookie of Fate" + if(12) + //Healing + user.revive(full_heal = 1, admin_revive = 1) + if(13) + //Mad Dosh + var/turf/Start = get_turf(src) + for(var/direction in alldirs) + var/turf/T = get_step(Start,direction) + if(rand(0,1)) + new /obj/item/stack/spacecash/c1000(T) + else + var/obj/item/weapon/storage/bag/money/M = new(T) + for(var/i in 1 to rand(5,50)) + new /obj/item/weapon/coin/gold(M) + if(14) + //Free Gun + new /obj/item/weapon/gun/projectile/revolver/mateba(get_turf(src)) + if(15) + //Random One-use spellbook + new /obj/item/weapon/spellbook/oneuse/random(get_turf(src)) + if(16) + //Servant & Servant Summon + var/mob/living/carbon/human/H = new(get_turf(src)) + H.equipOutfit(/datum/outfit/butler) + var/datum/mind/servant_mind = new /datum/mind() + var/datum/objective/O = new("Serve [user.real_name].") + servant_mind.objectives += O + servant_mind.transfer_to(H) + + var/list/mob/dead/observer/candidates = pollCandidatesForMob("Do you want to play as [user.real_name] Servant?", "wizard", mob = H) + var/mob/dead/observer/chosen = null + + if(candidates.len) + chosen = pick(candidates) + message_admins("[key_name_admin(chosen)] was spawned as Dice Servant") + H.key = chosen.key + + var/obj/effect/proc_holder/spell/targeted/summonmob/S = new + S.target_mob = H + user.mind.AddSpell(S) + + if(17) + //Tator Kit + new /obj/item/weapon/storage/box/syndicate/(get_turf(src)) + if(18) + //Captain ID + new /obj/item/weapon/card/id/captains_spare(get_turf(src)) + if(19) + //Instrinct Resistance + user << "You feel robust." + var/datum/species/S = user.dna.species + S.brutemod *= 0.5 + S.burnmod *= 0.5 + S.coldmod *= 0.5 + if(20) + //Free wizard! + user.mind.make_Wizard() + + +/datum/outfit/butler + name = "Butler" + uniform = /obj/item/clothing/under/suit_jacket/really_black + shoes = /obj/item/clothing/shoes/laceup + head = /obj/item/clothing/head/bowler + glasses = /obj/item/clothing/glasses/monocle + gloves = /obj/item/clothing/gloves/color/white + +/obj/effect/proc_holder/spell/targeted/summonmob + name = "Summon Servant" + desc = "This spell can be used to call your servant, whenever you need it." + charge_max = 100 + clothes_req = 0 + invocation = "JE VES" + invocation_type = "whisper" + range = -1 + level_max = 0 //cannot be improved + cooldown_min = 100 + include_user = 1 + + var/mob/living/target_mob + + action_icon_state = "summons" + +/obj/effect/proc_holder/spell/targeted/summonmob/cast(list/targets,mob/user = usr) + if(!target_mob) + return + var/turf/Start = get_turf(user) + for(var/direction in alldirs) + var/turf/T = get_step(Start,direction) + if(!T.density) + target_mob.Move(T) + +/obj/structure/ladder/unbreakable/rune + name = "Teleportation Rune" + desc = "Could lead anywhere." + icon = 'icons/obj/rune.dmi' + icon_state = "1" + color = rgb(0,0,255) + +/obj/structure/ladder/unbreakable/rune/update_icon() + return + +/obj/structure/ladder/unbreakable/rune/show_fluff_message(up,mob/user) + user.visible_message("[user] activates \the [src].","You activate \the [src].") + +/obj/structure/ladder/can_use(mob/user) + if(user.mind in ticker.mode.wizards) + return 0 + return 1 diff --git a/code/modules/awaymissions/mission_code/Cabin.dm b/code/modules/awaymissions/mission_code/Cabin.dm new file mode 100644 index 0000000..aea7972 --- /dev/null +++ b/code/modules/awaymissions/mission_code/Cabin.dm @@ -0,0 +1,116 @@ + +/obj/structure/firepit + name = "firepit" + desc = "warm and toasty" + icon = 'icons/obj/fireplace.dmi' + icon_state = "firepit-active" + density = 0 + var/active = 1 + +/obj/structure/firepit/initialize() + ..() + toggleFirepit() + +/obj/structure/firepit/attack_hand(mob/living/user) + if(active) + active = 0 + toggleFirepit() + else + ..() + + +/obj/structure/firepit/attackby(obj/item/W,mob/living/user,params) + if(!active) + var/msg = W.ignition_effect(src, user) + if(msg) + active = TRUE + visible_message(msg) + toggleFirepit() + else + return ..() + else + W.fire_act() + +/obj/structure/firepit/proc/toggleFirepit() + if(active) + SetLuminosity(8) + icon_state = "firepit-active" + else + SetLuminosity(0) + icon_state = "firepit" + +/obj/structure/firepit/extinguish() + if(active) + active = FALSE + toggleFirepit() + +/obj/structure/firepit/fire_act(exposed_temperature, exposed_volume) + if(!active) + active = TRUE + toggleFirepit() + + + +//other Cabin Stuff// + +/obj/machinery/recycler/lumbermill + name = "lumbermill saw" + desc = "Faster then the cartoons!" + emagged = 2 //Always gibs people + item_recycle_sound = 'sound/weapons/chainsawhit.ogg' + +/obj/machinery/recycler/lumbermill/recycle_item(obj/item/weapon/grown/log/L) + if(!istype(L)) + return + else + var/potency = L.seed.potency + ..() + new L.plank_type(src.loc, 1 + round(potency / 25)) + +/mob/living/simple_animal/chicken/rabbit/normal + icon_state = "b_rabbit" + icon_living = "b_rabbit" + icon_dead = "b_rabbit_dead" + icon_prefix = "b_rabbit" + minbodytemp = 0 + eggsleft = 0 + egg_type = null + speak = list() + +/*Cabin's forest*/ +/datum/mapGenerator/snowy + modules = list(/datum/mapGeneratorModule/snow/pineTrees, \ + /datum/mapGeneratorModule/snow/deadTrees, \ + /datum/mapGeneratorModule/snow/randBushes, \ + /datum/mapGeneratorModule/snow/randIceRocks, \ + /datum/mapGeneratorModule/snow/bunnies) + +/datum/mapGeneratorModule/snow/checkPlaceAtom(turf/T) + if(istype(T,/turf/open/floor/plating/asteroid/snow)) + return ..(T) + return 0 + +/datum/mapGeneratorModule/snow/pineTrees + spawnableAtoms = list(/obj/structure/flora/tree/pine = 30) + +/datum/mapGeneratorModule/snow/deadTrees + spawnableAtoms = list(/obj/structure/flora/tree/dead = 10) + +/datum/mapGeneratorModule/snow/randBushes + spawnableAtoms = list() + +/datum/mapGeneratorModule/snow/randBushes/New() + ..() + spawnableAtoms = typesof(/obj/structure/flora/ausbushes) + for(var/i in spawnableAtoms) + spawnableAtoms[i] = 1 + +/datum/mapGeneratorModule/snow/bunnies + //spawnableAtoms = list(/mob/living/simple_animal/chicken/rabbit/normal = 0.1) + spawnableAtoms = list(/mob/living/simple_animal/chicken/rabbit = 0.5) + +/datum/mapGeneratorModule/snow/randIceRocks + spawnableAtoms = list(/obj/structure/flora/rock/icy = 5, /obj/structure/flora/rock/pile/icy = 5) + +/obj/effect/landmark/mapGenerator/snowy + mapGeneratorType = /datum/mapGenerator/snowy diff --git a/code/modules/awaymissions/mission_code/centcomAway.dm b/code/modules/awaymissions/mission_code/centcomAway.dm new file mode 100644 index 0000000..2508283 --- /dev/null +++ b/code/modules/awaymissions/mission_code/centcomAway.dm @@ -0,0 +1,29 @@ + + +//centcomAway items + +/obj/item/weapon/paper/pamphlet/ccaInfo + name = "Visitor Info Pamphlet" + info = " XCC-P5831 Visitor Information
    \ + Greetings, visitor, to XCC-P5831! As you may know, this outpost was once \ + used as Nanotrasen's CENTRAL COMMAND STATION, organizing and coordinating company \ + projects across the vastness of space.
    \ + Since the completion of the much more efficient CC-A5831 on March 8, 2553, XCC-P5831 no longer \ + acts as NT's base of operations but still plays a very important role its corporate affairs; \ + serving as a supply and repair depot, as well as being host to its most important legal proceedings\ + and the thrilling pay-per-view broadcasts of PLASTEEL CHEF and THUNDERDOME LIVE.
    \ + We hope you enjoy your stay!" + +/obj/item/weapon/paper/ccaMemo + name = "Memo to XCC-P5831 QM" + info = "From: XCC-P5831 Management Office
    \ + To: Rolf Ingram, XCC-P5831 Quartermaster
    \ + Hey, Rolf, once you pack that gateway into the ferry hangar, make absolutely sure \ + to deactivate it! As you may know, SS13 has recently got its network up and running, \ + which means that until we get this gate shipped off to the next colonization staging \ + area, they'll be able to hop straight in here if its hooked up on our end.
    \ + Obviously, that's something I'd very much rather avoid. Our forensics and medical \ + teams never did figure out what happened that last time... and I can't wrap my head \ + around it myself. Why would a shuttle full of evacuees all snap and beat each other \ + to death the moment they reached safety?
    \ + - D. Cereza" \ No newline at end of file diff --git a/code/modules/awaymissions/mission_code/challenge.dm b/code/modules/awaymissions/mission_code/challenge.dm new file mode 100644 index 0000000..aa7ccf0 --- /dev/null +++ b/code/modules/awaymissions/mission_code/challenge.dm @@ -0,0 +1,20 @@ + +/obj/machinery/power/emitter/energycannon + name = "Energy Cannon" + desc = "A heavy duty industrial laser" + icon = 'icons/obj/singularity.dmi' + icon_state = "emitter" + anchored = 1 + density = 1 + resistance_flags = INDESTRUCTIBLE | FIRE_PROOF | ACID_PROOF + + use_power = 0 + idle_power_usage = 0 + active_power_usage = 0 + + active = 1 + locked = 1 + state = 2 + +/obj/machinery/power/emitter/energycannon/RefreshParts() + return diff --git a/code/modules/awaymissions/mission_code/snowdin.dm b/code/modules/awaymissions/mission_code/snowdin.dm new file mode 100644 index 0000000..6314d18 --- /dev/null +++ b/code/modules/awaymissions/mission_code/snowdin.dm @@ -0,0 +1,244 @@ + +//notes for lore or treasure hints wow//-- + +/obj/item/weapon/paper/crumpled/snowdin/snowdingatewaynotice + name = "scribbled note" + info = {"The gateway has been inactive for months, engineers think it's due to the recent drop in tempature fucking with the + circuitry or something. Without a constant supply of resources from central command, our stock is getting awfully low. Some of the security members have taken to + using the sparse rifle ammo left to hunting some of the wildlife to try and keep our food supply from emptying. God forbid if the heating goes out, I don't want to + die as a fucking popsicle down here."} + +/obj/item/weapon/paper/crumpled/snowdin/misc1 + name = "Mission Prologue" + info = {"Holy shit, what a rush! Those Nanotrasen bastards didn't even know what hit 'em! All five of us dropped in right on the captain, didn't even have time to yell! We were in and out with that disk in mere minutes! + Crew didn't even know what was happening till the delta alert went down and by then were were already gone. We got a case to drink on the way home to celebrate, fuckin' job well done!"} + +/obj/item/weapon/paper/crumpled/snowdin/keys + name = "scribbled note" + info = {"As a notice for anyone looking to borrow an ATV, some asshat lost the key set for all the vehicles. Nobody has yet to actually come forward about the potential where-abouts, either due to embarrassment or fear of + reprecussions. I hope they enjoy walking through that shit snow during the next shipment because I sure as hell ain't."} + +/obj/item/weapon/paper/snowdin/snowdinlog + name = "Activity Log" + info = {"
    ACTIVITY LOG


    June 3rd
    We've moved to the main base in the valley finally, apparently establishing a listening system on a planet + that never stops fucking snowing is a great idea. There's a few outposts further south we'll be supplying from the main gateway. The summer months are enough already, I can only imagine how bad it'll be during winter.

    August 23rd
    + The colder months are finally hitting, some of the machinery seems to be having trouble starting up sometimes. Central sent some portable heaters to help keep the airlocks from + freezing shut along with a couple storage crates with supplies. Nothing on the radio so far, what the hell do they even expect to hear down here, anyway?

    September 15th +
    Another supply shipment through the gateway, they've sent some heavier sets of clothes for the coming winter months. Central said they might encounter issues with shipments + during December to Feburary, so we should try to be frugal with the next shipment.

    November 20th
    Final shipment from central for the next few months. Going outside + for more than 10-15 minutes without losing feeling in your fingers is difficult. We've finally gotten a signal on the radio, it's mostly some weird static though. One of the researchers is trying to decypher it. +

    December 10th
    Signal has gotten much stronger, it almost seems like it's coming from under us according to what the researcher managed to decypher. We're waiting from the go from central before investigating.

    + The rest of the paper seems to be a mixture of scribbles and smudged ink. "} + +/obj/item/weapon/paper/snowdin/snowdinlog2 + name = "Activity Log" + info = {"
    ACTIVITY LOG


    June 14th
    Movement to the second post is finally done. We're located on the southernmost area of the valley with a similar objective as the northern post. + There are two mid-way stops on the eastern and western sides of the valley so movement in between bases isn't horrible. Not too big of a fan of relying on the northern base for + equal supply distribution, though.

    August 27h
    First shipment arrived finally, about 4 days after the gateway shipped. Insulation on these buildings is awful, thank god for the spare heaters at least.

    + September 20th
    Another shipment arrival, standard shit. Our radios have been picking up a weird signal during the nights recently, we've sent the transcripts over to the northern + base to be decyphered. Probably some drunk russians or something equally stupid.

    November 24th
    We've lost communications with the northern base after recieving the last + shipment of supplies. The snow has really kicked up recently, shits almost like a constant blizzard right now. Maybe it'll drop down soon so we can get a word in.

    + The rest of the paper seems to be a mixture of scribbles and smudged ink. "} + +obj/item/weapon/paper/snowdin/secnotice + name = "Security Notice" + info = {"You have been assigned a position on a listening outpost. Here you'll be watching over several crewmembers assigned to watching signals of the general area. + As not much is expected in terms of issues, we've only assigned one guard per outpost. Crewmembers are expected to keep to their regulated work schedules and may be + disciplined properly if found slacking. Food hoarding is heavily discouraged as all outposts will be sharing from the same shipment every 2-3 months. Hoarding of supplies + should be punished severely as to prevent future incidients. Mutiny and/or rioting should be reported to central and dealt with swiftly. You're here to secure and protect + Nanotrasen assets, not be a police officer. Do what you must, but make sure it's not messy."} + +obj/item/weapon/paper/snowdin/syndienotice + name = "Assignment Notice" + info = {"You've been assigned as an agent to listen in on Nanotrasen activities from passing ships and nearby stations. The outpost you've been assigned to is under lays of solid + ice and we've supplied you with a scrambler to help avoid Nanotrasen discovery, as they've recently built a listening post of their own aboveground. Get aquainted with your new + crewmates, because you're gonna be here for awhile. Enjoy the free syndicakes."} + +obj/item/weapon/paper/crumpled/snowdin/syndielava + name = "scribbled note" + info = {"Some cracks in the ice nearby have exposed some sort of hidden magma stream under all this shit ice. I don't know whats worse at this point honestly; freezing to death or + burning alive."} + +obj/item/weapon/paper/crumpled/snowdin/lootstructures + name = "scribbled note" + info = {"From what we've seen so far, theres a ton of iced-over ruins down here in the caves. We sent a few men out to check things out and they never came back, so we decided to + border up majority of the ruins. We've heard some weird shit coming out of these caves and I'm not gonna find out the hard way myself."} + +obj/item/weapon/paper/crumpled/snowdin/shovel + name = "shoveling duties" + info = {"Snow piles up bad here all-year round, even worse during the winter months. Keeping a constant rotation of shoveling that shit out of the way of the airlocks and keeping the paths decently clear + is a good step towards not getting stuck walking through knee-deep snow."} + +//lootspawners//-- + +/obj/effect/spawner/lootdrop/snowdin + name = "why are you using this dummy" + lootdoubles = 0 + lootcount = 1 + loot = list(/obj/item/weapon/bikehorn = 100) + +/obj/effect/spawner/lootdrop/snowdin/dungeonlite + name = "dungeon lite" + loot = list(/obj/item/weapon/melee/classic_baton = 11, + /obj/item/weapon/melee/classic_baton/telescopic = 12, + /obj/item/weapon/spellbook/oneuse/smoke = 10, + /obj/item/weapon/spellbook/oneuse/blind = 10, + /obj/item/weapon/storage/firstaid/regular = 45, + /obj/item/weapon/storage/firstaid/toxin = 35, + /obj/item/weapon/storage/firstaid/brute = 27, + /obj/item/weapon/storage/firstaid/fire = 27, + /obj/item/weapon/storage/toolbox/syndicate = 12, + /obj/item/weapon/grenade/plastic/c4 = 7, + /obj/item/weapon/grenade/clusterbuster/smoke = 15, + /obj/item/clothing/under/chameleon = 13, + /obj/item/clothing/shoes/chameleon = 10, + /obj/item/borg/upgrade/ddrill = 3, + /obj/item/borg/upgrade/soh = 3) + +/obj/effect/spawner/lootdrop/snowdin/dungeonmid + name = "dungeon mid" + loot = list(/obj/item/weapon/defibrillator/compact = 6, + /obj/item/weapon/storage/firstaid/tactical = 35, + /obj/item/weapon/shield/energy = 6, + /obj/item/weapon/shield/riot/tele = 12, + /obj/item/weapon/dnainjector/lasereyesmut = 7, + /obj/item/weapon/gun/magic/wand/fireball/inert = 3, + /obj/item/weapon/pneumatic_cannon = 15, + /obj/item/weapon/melee/energy/sword = 7, + /obj/item/weapon/spellbook/oneuse/knock = 15, + /obj/item/weapon/spellbook/oneuse/summonitem = 20, + /obj/item/weapon/spellbook/oneuse/forcewall = 17, + /obj/item/weapon/storage/backpack/holding = 12, + /obj/item/weapon/grenade/spawnergrenade/manhacks = 6, + /obj/item/weapon/grenade/spawnergrenade/spesscarp = 7, + /obj/item/weapon/grenade/clusterbuster/inferno = 3, + /obj/item/stack/sheet/mineral/diamond{amount = 15} = 10, + /obj/item/stack/sheet/mineral/uranium{amount = 15} = 10, + /obj/item/stack/sheet/mineral/plasma{amount = 15} = 10, + /obj/item/stack/sheet/mineral/gold{amount = 15} = 10, + /obj/item/weapon/spellbook/oneuse/barnyard = 4, + /obj/item/weapon/pickaxe/drill/diamonddrill = 6, + /obj/item/borg/upgrade/vtec = 7, + /obj/item/borg/upgrade/disablercooler = 7) + + +/obj/effect/spawner/lootdrop/snowdin/dungeonheavy + name = "dungeon heavy" + loot = list(/obj/item/weapon/twohanded/singularityhammer = 25, + /obj/item/weapon/twohanded/mjollnir = 10, + /obj/item/weapon/twohanded/fireaxe = 25, + /obj/item/organ/brain/alien = 17, + /obj/item/weapon/twohanded/dualsaber = 15, + /obj/item/organ/heart/demon = 7, + /obj/item/weapon/gun/projectile/automatic/c20r/unrestricted = 16, + /obj/item/weapon/gun/magic/wand/resurrection/inert = 15, + /obj/item/weapon/gun/magic/wand/resurrection = 10, + /obj/item/device/radio/uplink/old = 2, + /obj/item/weapon/spellbook/oneuse/charge = 12, + /obj/item/weapon/grenade/clusterbuster/spawner_manhacks = 15, + /obj/item/weapon/spellbook/oneuse/fireball = 10, + /obj/item/weapon/pickaxe/drill/jackhammer = 30, + /obj/item/borg/upgrade/syndicate = 13, + /obj/item/borg/upgrade/selfrepair = 17) + +/obj/effect/spawner/lootdrop/snowdin/dungeonmisc + name = "dungeon misc" + lootdoubles = 2 + lootcount = 1 + + loot = list(/obj/item/stack/sheet/mineral/snow{amount = 25} = 10, + /obj/item/toy/snowball = 15, + /obj/item/weapon/shovel = 10, + /obj/item/weapon/twohanded/spear = 8, + ) + +//special items//-- + +/obj/item/clothing/under/syndicate/coldres + name = "insulated tactical turtleneck" + desc = "A non-descript and slightly suspicious looking turtleneck with digital camouflage cargo pants. The interior has been padded with special insulation for both warmth and protection" + armor = list(melee = 20, bullet = 10, laser = 0,energy = 5, bomb = 0, bio = 0, rad = 0, fire = 25, acid = 25) + cold_protection = CHEST|GROIN|ARMS|LEGS + min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT +/obj/item/clothing/shoes/combat/coldres + name = "insulated combat boots" + desc = "High speed, low drag combat boots, now with an added layer of insulation." + min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT + +/obj/item/weapon/gun/magic/wand/fireball/inert + name = "weakened wand of fireball" + desc = "This wand shoots scorching balls of fire that explode into destructive flames. The years of the cold have weakened the magic inside the wand." + max_charges = 4 + +/obj/item/weapon/gun/magic/wand/resurrection/inert + name = "weakened wand of healing" + desc = "This wand uses healing magics to heal and revive. The years of the cold have weakened the magic inside the wand." + max_charges = 5 + +/obj/item/device/radio/uplink/old + name = "dusty radio" + desc = "A dusty looking radio." + +/obj/item/device/radio/uplink/old/New() + ..() + hidden_uplink.name = "dusty radio" + hidden_uplink.telecrystals = 10 + +obj/effect/mob_spawn/human/syndicatesoldier/coldres + name = "Syndicate Snow Operative" + uniform = /obj/item/clothing/under/syndicate/coldres + shoes = /obj/item/clothing/shoes/combat/coldres + radio = /obj/item/device/radio/headset/syndicate/alt + pocket1 = /obj/item/weapon/gun/projectile/automatic/pistol + pocket2 = /obj/item/weapon/card/id/syndicate + has_id = 0 + +obj/effect/mob_spawn/human/syndicatesoldier/coldres/alive + name = "sleeper" + mob_name = "Syndicate Snow Operative" + icon = 'icons/obj/Cryogenic2.dmi' + icon_state = "sleeper" + roundstart = FALSE + death = FALSE + implants = list(/obj/item/weapon/implant/exile) + faction = "syndicate" + flavour_text = {"You are a syndicate operative recently awoken from cyrostatis in an underground outpost. Monitor Nanotrasen communications and record infomation. All intruders should be + disposed of swirfly to assure no gathered infomation is stolen or lost. Try not to wander too far from the outpost as the caves can be a deadly place even for a trained operative such as yourself."} + +obj/effect/mob_spawn/human/syndicatesoldier/coldres/alive/female + mob_gender = FEMALE + +//mobs//-- + +/mob/living/simple_animal/hostile/poison/giant_spider/ice //spiders dont usually like tempatures of 140 kelvin who knew + name = "giant ice spider" + atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) + minbodytemp = 0 + maxbodytemp = 1500 + color = rgb(114,228,250) + +/mob/living/simple_animal/hostile/poison/giant_spider/nurse/ice + name = "giant ice spider" + atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) + minbodytemp = 0 + maxbodytemp = 1500 + color = rgb(114,228,250) + +/mob/living/simple_animal/hostile/poison/giant_spider/hunter/ice + name = "giant ice spider" + atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) + minbodytemp = 0 + maxbodytemp = 1500 + color = rgb(114,228,250) + +//objs//-- + +/obj/structure/flora/rock/icy + name = "icy rock" + color = rgb(114,228,250) + +/obj/structure/flora/rock/pile/icy + name = "icey rocks" + color = rgb(114,228,250) + + diff --git a/code/modules/awaymissions/mission_code/spacebattle.dm b/code/modules/awaymissions/mission_code/spacebattle.dm new file mode 100644 index 0000000..e69de29 diff --git a/code/modules/awaymissions/mission_code/stationCollision.dm b/code/modules/awaymissions/mission_code/stationCollision.dm new file mode 100644 index 0000000..e89761e --- /dev/null +++ b/code/modules/awaymissions/mission_code/stationCollision.dm @@ -0,0 +1,173 @@ +/* Station-Collision(sc) away mission map specific stuff + * + * Notes: + * Feel free to use parts of this map, or even all of it for your own project. Just include me in the credits :) + * + * Some of this code unnecessary, but the intent is to add a little bit of everything to serve as examples + * for anyone who wants to make their own stuff. + * + * Contains: + * Landmarks + * Guns + * Safe code hints + * Captain's safe + * Modified Nar-Sie + */ + + + +/* + * Landmarks - Instead of spawning a new object type, I'll spawn the bible using a landmark! + */ +/obj/effect/landmark/sc_bible_spawner + name = "Safecode hint spawner" + +/obj/effect/landmark/sc_bible_spawner/New() + var/obj/item/weapon/storage/book/bible/B = new /obj/item/weapon/storage/book/bible/booze(src.loc) + B.name = "The Holy book of the Geometer" + B.deity_name = "Narsie" + B.icon_state = "melted" + B.item_state = "melted" + new /obj/item/weapon/paper/sc_safehint_paper_bible(B) + new /obj/item/weapon/pen(B) + qdel(src) + +/* + * Guns - I'm making these specifically so that I dont spawn a pile of fully loaded weapons on the map. + */ +//Captain's retro laser - Fires practice laser shots instead. +obj/item/weapon/gun/energy/laser/retro/sc_retro + name ="retro laser" + icon_state = "retro" + desc = "An older model of the basic lasergun, no longer used by Nanotrasen's security or military forces." +// projectile_type = "/obj/item/projectile/practice" + clumsy_check = 0 //No sense in having a harmless gun blow up in the clowns face + +//Syndicate sub-machine guns. +/obj/item/weapon/gun/projectile/automatic/c20r/sc_c20r + +/obj/item/weapon/gun/projectile/automatic/c20r/sc_c20r/New() + ..() + for(var/ammo in magazine.stored_ammo) + if(prob(95)) //95% chance + magazine.stored_ammo -= ammo + +//Barman's shotgun +/obj/item/weapon/gun/projectile/shotgun/sc_pump + +/obj/item/weapon/gun/projectile/shotgun/sc_pump/New() + ..() + for(var/ammo in magazine.stored_ammo) + if(prob(95)) //95% chance + magazine.stored_ammo -= ammo + +//Lasers +/obj/item/weapon/gun/energy/laser/practice/sc_laser + name = "Old laser" + desc = "A once potent weapon, years of dust have collected in the chamber and lens of this weapon, weakening the beam significantly." + clumsy_check = 0 + +/* + * Safe code hints + */ + +//These vars hold the code itself, they'll be generated at round-start +var/sc_safecode1 = "[rand(0,9)]" +var/sc_safecode2 = "[rand(0,9)]" +var/sc_safecode3 = "[rand(0,9)]" +var/sc_safecode4 = "[rand(0,9)]" +var/sc_safecode5 = "[rand(0,9)]" + +//Pieces of paper actually containing the hints +/obj/item/weapon/paper/sc_safehint_paper_prison + name = "smudged paper" + +/obj/item/weapon/paper/sc_safehint_paper_prison/New() + info = "The ink is smudged, you can only make out a couple numbers: '[sc_safecode1]**[sc_safecode4]*'" + +/obj/item/weapon/paper/sc_safehint_paper_hydro + name = "shredded paper" +/obj/item/weapon/paper/sc_safehint_paper_hydro/New() + info = "Although the paper is shredded, you can clearly see the number: '[sc_safecode2]'" + +/obj/item/weapon/paper/sc_safehint_paper_caf + name = "blood-soaked paper" + //This does not have to be in New() because it is a constant. There are no variables in it i.e. [sc_safcode] + info = "This paper is soaked in blood, it is impossible to read any text." + +/obj/item/weapon/paper/sc_safehint_paper_bible + name = "hidden paper" +/obj/item/weapon/paper/sc_safehint_paper_bible/New() + info = {"It would appear that the pen hidden with the paper had leaked ink over the paper. + However you can make out the last three digits:'[sc_safecode3][sc_safecode4][sc_safecode5]' + "} + +/obj/item/weapon/paper/sc_safehint_paper_shuttle + info = {"Target: Research-station Epsilon
    + Objective: Prototype weaponry. The captain likely keeps them locked in her safe.
    +
    + Our on-board spy has learned the code and has hidden away a few copies of the code around the station. Unfortunatly he has been captured by security + Your objective is to split up, locate any of the papers containing the captain's safe code, open the safe and + secure anything found inside. If possible, recover the imprisioned syndicate operative and receive the code from him.
    +
    + As always, eliminate anyone who gets in the way.
    +
    + Your assigned ship is designed specifically for penetrating the hull of another station or ship with minimal damage to operatives. + It is completely fly-by-wire meaning you have just have to enjoy the ride and when the red light comes on... find something to hold onto! + "} +/* + * Captain's safe + */ +/obj/item/weapon/storage/secure/safe/sc_ssafe + name = "Captain's secure safe" + +/obj/item/weapon/storage/secure/safe/sc_ssafe/New() + ..() + l_code = "[sc_safecode1][sc_safecode2][sc_safecode3][sc_safecode4][sc_safecode5]" + l_set = 1 + new /obj/item/weapon/gun/energy/mindflayer(src) + new /obj/item/device/soulstone(src) + new /obj/item/clothing/suit/space/hardsuit/cult(src) + //new /obj/item/weapon/teleportation_scroll(src) + new /obj/item/weapon/ore/diamond(src) + +/* + * Modified Nar-Sie + */ +/obj/singularity/narsie/sc_Narsie + desc = "Your body becomes weak and your feel your mind slipping away as you try to comprehend what you know can't be possible." + move_self = 0 //Contianed narsie does not move! + grav_pull = 0 //Contained narsie does not pull stuff in! + var/uneatable = list(/turf/open/space, /obj/effect/overlay, /mob/living/simple_animal/hostile/construct) +//Override this to prevent no adminlog runtimes and admin warnings about a singularity without containment +/obj/singularity/narsie/sc_Narsie/admin_investigate_setup() + return + +/obj/singularity/narsie/sc_Narsie/process() + eat() + if(prob(25)) + mezzer() + +/obj/singularity/narsie/sc_Narsie/consume(atom/A) + if(is_type_in_list(A, uneatable)) + return 0 + if(isliving(A)) + var/mob/living/L = A + L.gib() + else if(istype(A,/obj/)) + var/obj/O = A + O.ex_act(1) + if(O) qdel(O) + else if(isturf(A)) + var/turf/T = A + if(T.intact) + for(var/obj/O in T.contents) + if(O.level != 1) + continue + if(O.invisibility == INVISIBILITY_MAXIMUM) + src.consume(O) + T.ChangeTurf(/turf/open/space) + return + +/obj/singularity/narsie/sc_Narsie/ex_act() + return \ No newline at end of file diff --git a/code/modules/awaymissions/mission_code/wildwest.dm b/code/modules/awaymissions/mission_code/wildwest.dm new file mode 100644 index 0000000..5ede447 --- /dev/null +++ b/code/modules/awaymissions/mission_code/wildwest.dm @@ -0,0 +1,130 @@ +/* Code for the Wild West map by Brotemis + * Contains: + * Wish Granter + * Meat Grinder + */ + + +/* + * Wish Granter + */ +/obj/machinery/wish_granter_dark + name = "Wish Granter" + desc = "You're not so sure about this, anymore..." + icon = 'icons/obj/device.dmi' + icon_state = "syndbeacon" + + anchored = 1 + density = 1 + use_power = 0 + + var/chargesa = 1 + var/insistinga = 0 + +/obj/machinery/wish_granter_dark/attack_hand(mob/living/carbon/human/user) + usr.set_machine(src) + + if(chargesa <= 0) + user << "The Wish Granter lies silent." + return + + else if(!ishuman(user)) + user << "You feel a dark stirring inside of the Wish Granter, something you want nothing of. Your instincts are better than any man's." + return + + else if(is_special_character(user)) + user << "Even to a heart as dark as yours, you know nothing good will come of this. Something instinctual makes you pull away." + + else if (!insistinga) + user << "Your first touch makes the Wish Granter stir, listening to you. Are you really sure you want to do this?" + insistinga++ + + else + chargesa-- + insistinga = 0 + var/wish = input("You want...","Wish") as null|anything in list("Power","Wealth","Immortality","To Kill","Peace") + switch(wish) + if("Power") + user << "Your wish is granted, but at a terrible cost..." + user << "The Wish Granter punishes you for your selfishness, claiming your soul and warping your body to match the darkness in your heart." + user.dna.add_mutation(LASEREYES) + user.dna.add_mutation(COLDRES) + user.dna.add_mutation(XRAY) + user.set_species(/datum/species/shadow) + if("Wealth") + user << "Your wish is granted, but at a terrible cost..." + user << "The Wish Granter punishes you for your selfishness, claiming your soul and warping your body to match the darkness in your heart." + new /obj/structure/closet/syndicate/resources/everything(loc) + user.set_species(/datum/species/shadow) + if("Immortality") + user << "Your wish is granted, but at a terrible cost..." + user << "The Wish Granter punishes you for your selfishness, claiming your soul and warping your body to match the darkness in your heart." + user.verbs += /mob/living/carbon/proc/immortality + user.set_species(/datum/species/shadow) + if("To Kill") + user << "Your wish is granted, but at a terrible cost..." + user << "The Wish Granter punishes you for your wickedness, claiming your soul and warping your body to match the darkness in your heart." + ticker.mode.traitors += user.mind + user.mind.special_role = "traitor" + var/datum/objective/hijack/hijack = new + hijack.owner = user.mind + user.mind.objectives += hijack + user << "Your inhibitions are swept away, the bonds of loyalty broken, you are free to murder as you please!" + user.mind.announce_objectives() + user.set_species(/datum/species/shadow) + if("Peace") + user << "Whatever alien sentience that the Wish Granter possesses is satisfied with your wish. There is a distant wailing as the last of the Faithless begin to die, then silence." + user << "You feel as if you just narrowly avoided a terrible fate..." + for(var/mob/living/simple_animal/hostile/faithless/F in mob_list) + F.death() + + +///////////////Meatgrinder////////////// + + +/obj/effect/meatgrinder + name = "Meat Grinder" + desc = "What is that thing?" + density = 1 + anchored = 1 + icon = 'icons/mob/blob.dmi' + icon_state = "blobpod" + var/triggered = 0 + +/obj/effect/meatgrinder/Crossed(AM) + Bumped(AM) + +/obj/effect/meatgrinder/Bumped(mob/M) + + if(triggered) + return + + if(ishuman(M) && M.stat != DEAD && M.ckey) + for(var/mob/O in viewers(world.view, src.loc)) + visible_message("[M] triggered the [src]!") + triggered = 1 + + var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread + s.set_up(3, 1, src) + s.start() + explosion(M, 1, 0, 0, 0) + qdel(src) + +/////For the Wishgranter/////////// + +/mob/living/carbon/proc/immortality() //Mob proc so people cant just clone themselves to get rid of the shadowperson race. No hiding your wickedness. + set category = "Immortality" + set name = "Resurrection" + + var/mob/living/carbon/C = usr + if(!C.stat) + C << "You're not dead yet!" + return + C << "Death is not your end!" + + spawn(rand(80,120)) + C.revive(full_heal = 1, admin_revive = 1) + C << "You have regenerated." + C.visible_message("[usr] appears to wake from the dead, having healed all wounds.") + C.update_canmove() + return 1 \ No newline at end of file diff --git a/code/modules/awaymissions/pamphlet.dm b/code/modules/awaymissions/pamphlet.dm new file mode 100644 index 0000000..76166a9 --- /dev/null +++ b/code/modules/awaymissions/pamphlet.dm @@ -0,0 +1,37 @@ +/obj/item/weapon/paper/pamphlet + name = "pamphlet" + icon_state = "pamphlet" + info = "Welcome to the Nanotrasen Gateway project...
    \ + Congratulations! If you're reading this, you and your superiors have decided that you're \ + ready to commit to a life spent colonising the rolling hills of far away worlds. You \ + must be ready for a lifetime of adventure, a little bit of hard work, and an award \ + winning dental plan- but that's not all the Nanotrasen Gateway project has to offer.
    \ +
    Because we care about you, we feel it is only fair to make sure you know the risks \ + before you commit to joining the Nanotrasen Gateway project. All away destinations have \ + been fully scanned by a Nanotrasen expeditionary team, and are certified to be 100% safe. \ + We've even left a case of space beer along with the basic materials you'll need to expand \ + Nanotrasen's operational area and start your new life.

    \ + Gateway Operation Basics
    \ + All Nanotrasen approved Gateways operate on the same basic principals. They operate off \ + area equipment power as you would expect, and without this supply, it cannot safely function, \ + causinng it to reject all attempts at operation.

    \ + Once it is correctly setup, and once it has enough power to operate, the Gateway will begin \ + searching for an output location. The amount of time this takes is variable, but the Gateway \ + interface will give you an estimate accurate to the minute. Power loss will not interrupt the \ + searching process. Influenza will not interrupt the searching process. Temporal anomalies \ + may cause the estimate to be inaccurate, but will not interrupt the searching process.

    \ + Life On The Other Side
    \ + Once you have traversed the Gateway, you may experience some disorientation. Do not panic. \ + This is a normal side effect of travelling vast distances in a short period of time. You should \ + survey the immediate area, and attempt to locate your complimentary case of space beer. Our \ + expeditionary teams have ensured the complete safety of all away locations, but in a small \ + number of cases, the Gateway they have established may not be immediately obvious. \ + Do not panic if you cannot locate the return Gateway. Begin colonisation of the destination. \ +

    A New World
    \ + As a participant in the Nanotrasen Gateway Project, you will be on the frontiers of space. \ + Though complete safety is assured, participants are advised to prepare for inhospitable \ + environs." + +//we don't want the silly text overlay! +/obj/item/weapon/paper/pamphlet/update_icon() + return diff --git a/code/modules/awaymissions/signpost.dm b/code/modules/awaymissions/signpost.dm new file mode 100644 index 0000000..5567f0c --- /dev/null +++ b/code/modules/awaymissions/signpost.dm @@ -0,0 +1,49 @@ +/*An alternative to exit gateways, signposts send you back to somewhere safe onstation with their semiotic magic.*/ +/obj/structure/signpost + icon = 'icons/obj/stationobjs.dmi' + icon_state = "signpost" + anchored = 1 + density = 1 + var/question = "Travel back?" + var/zlevels = list(ZLEVEL_STATION) + +/obj/structure/signpost/New() + . = ..() + SetLuminosity(2) + +/obj/structure/signpost/attackby(obj/item/weapon/W, mob/user, params) + return attack_hand(user) + +/obj/structure/signpost/attack_hand(mob/user) + switch(alert(question,name,"Yes","No")) + if("Yes") + var/turf/T = find_safe_turf(zlevels=zlevels) + + if(T) + var/area/A = get_area(T) + user.forceMove(T) + user << "You blink and find yourself \ + in [A.name]." + else + user << "Nothing happens. You feel that this is a bad sign." + if("No") + return + +/obj/structure/signpost/salvation + name = "\proper salvation" + desc = "In the darkest times, we will find our way home." + +/obj/structure/signpost/exit + name = "exit" + desc = "Make sure to bring all your belongings with you when you \ + exit the area." + question = "Leave? You might never come back." + +/obj/structure/signpost/exit/New() + . = ..() + zlevels = list() + for(var/i in 1 to world.maxz) + zlevels += i + zlevels -= ZLEVEL_CENTCOM // no easy victory, even with meme signposts + // also, could you think of the horror if they ended up in a holodeck + // template or something diff --git a/code/modules/awaymissions/super_secret_room.dm b/code/modules/awaymissions/super_secret_room.dm new file mode 100644 index 0000000..396a506 --- /dev/null +++ b/code/modules/awaymissions/super_secret_room.dm @@ -0,0 +1,119 @@ +/obj/structure/speaking_tile + name = "strange tile" + desc = "A weird tile that beckons you towards it. Maybe it can help you get out of this mess..." + verb_say = "intones" + icon = 'icons/obj/structures.dmi' + icon_state = "speaking_tile" + layer = 5 + var/speaking = FALSE + var/times_spoken_to = 0 + var/list/shenanigans = list() + +/obj/structure/speaking_tile/New() + var/savefile/S = new /savefile("data/npc_saves/Poly.sav") + S["phrases"] >> shenanigans + ..() + +/obj/structure/speaking_tile/interact(mob/user) + if(!isliving(user) || speaking) + return + speaking = TRUE + + switch(times_spoken_to) + if(0) + SpeakPeace(list("Welcome to the error handling room.","Something's goofed up bad to send you here.","You should probably tell an admin what you were doing, or make a bug report.")) + for(var/obj/structure/signpost/salvation/S in orange(7)) + S.invisibility = 0 + var/datum/effect_system/smoke_spread/smoke = new + smoke.set_up(1, S.loc) + smoke.start() + break + if(1) + SpeakPeace(list("Take that ladder up.","It'll send you back to the station.","Hopefully you'll never need to see this place again.")) + if(2) + SpeakPeace(list("Curious about what happened?","Somehow your corporeal form was sent to nullspace with you still in it.","Lucky for you this room exists to save you from that horrible fate.")) + if(3) + SpeakPeace(list("So yeah, you're welcome.","Anyway don't you have things to do?","There's no real point to sticking around here forever.")) + if(4) + SpeakPeace(list("I'm flattered you care this much about this room.","However it's not proper to just stand in here all shift and see what I'll say.","I'm going to work hard to be more boring so you'll leave.")) + if(5 to 8) + SpeakPeace(list("...")) + if(9) + SpeakPeace(list("Alright maybe that's too boring.", "I can't keep manually typing these lines out though.", "It's hard to explain but the code structure I'm using is kind of terrible.")) + if(10) + SpeakPeace(list("Oh I have an idea!", "Lets outsource this endless banter to Poly!", "Then you'll be able to keep listening to this without getting bored!")) + if(isnull(shenanigans)) + shenanigans = list("Except the poly file is missing...") + if(11 to 14, 16 to 50, 52 to 99, 103 to 107, 109 to 203, 205 to 249, 252 to 665, 667 to 999, 1001 to 5642) + SpeakPeace(list(pick(shenanigans),pick(shenanigans),pick(shenanigans))) + if(times_spoken_to * 0.1 == round(times_spoken_to * 0.1)) + SpeakPeace(list("That's [times_spoken_to] times you've spoken to me by the way.")) + if(15) + SpeakPeace(list("See? Isn't this fun?","Now you can mash this for hours without getting bored.","Anyway I'll leave you it.")) + if(51) + SpeakPeace(list("The fun never ends around here.", "The Poly text files stores up to 500 statements.", "But you've probably heard a few repeats by now.")) + if(100) + SpeakPeace(list("And that's a solid hundred.", "Good hustle I guess.", "You've probably heard a lot of repeats by now.")) + if(101) + SpeakPeace(list("I hope you're getting the reference this room is presenting.", "As well as the more obscure meta reference this conversation is presenting.", "This stuff has layers.")) + if(102) + SpeakPeace(list("I am very tempted to just stretch this out forever.","It's technically easier than doing this.","Just an option.")) + if(108) + SpeakPeace(list("But you have my respect for being this dedicated to the joke.", "So tell you what we're going to do, we're going to set a goal.", "250 is your final mission.")) + if(204) + SpeakPeace(list("Notice how there was no special message at 200?", "The slow automation of what used to be meaningful milestones?","It's all part of the joke.")) + if(250) + SpeakPeace(list("Congratulations.", "By my very loose calculations you've now wasted a decent chunk of the round doing this.", "But you've seen this meme to its conclusion, and that's a experience in itself, right?")) + if(251) + SpeakPeace(list("Anyway, here.", "I can't give you anything that would impact the progression of the round.","But you've earned this at least.")) + var/obj/item/weapon/reagent_containers/food/drinks/trophy/silver_cup/the_ride = new(get_turf(user)) + the_ride.name = "Overextending The Joke: Second Place" + the_ride.desc = "There's a point where this needed to stop, and we've clearly passed it." + if(252) + SpeakPeace(list("You know what this means right?", "Of course it's not over!", "The question becomes now is it more impressive to solider on to an unknown finish, or to have to common sense to stop here?")) + if(666) + SpeakPeace(list("The darkness in your heart won't be filled by simple platitudes.","You won't stop now, you're in this to the end.", "Will you reach the finish line before the round ends?")) + if(1000) + SpeakPeace(list("The ends exists somewhere beyond meaningful milestones.", "There will be no more messages until then.", "You disgust me.")) + if(5643) + var/obj/item/weapon/reagent_containers/food/drinks/trophy/gold_cup/never_ends = new(get_turf(user)) + never_ends.name = "Overextending The Joke: First Place" + never_ends.desc = "And so we are left alone with our regrets." + else + y += 2 + + speaking = FALSE + times_spoken_to++ + +/obj/structure/speaking_tile/proc/SpeakPeace(list/statements) + for(var/i in 1 to statements.len) + say("[statements[i]]") + if(i != statements.len) + sleep(30) + +/obj/item/rupee + name = "weird crystal" + desc = "Your excitement boils away as you realize it's just colored glass. Why would someone hoard these things?" + icon = 'icons/obj/economy.dmi' + icon_state = "rupee" + w_class = 2 + materials = list(MAT_GLASS = 500) + +/obj/item/rupee/New() + var/newcolor = color2hex(pick(10;"green", 5;"blue", 3;"red", 1;"purple")) + add_atom_colour(newcolor, FIXED_COLOUR_PRIORITY) + ..() + +/obj/item/rupee/Crossed(mob/M) + if(M.put_in_hands(src)) + if(src != M.get_active_held_item()) + M.swap_hand() + equip_to_best_slot(M) + ..() + +/obj/item/rupee/equipped(mob/user, slot) + playsound(get_turf(loc), 'sound/misc/server-ready.ogg', 50, 1, -1) + ..() + +/obj/effect/landmark/error + name = "error" \ No newline at end of file diff --git a/code/modules/awaymissions/zlevel.dm b/code/modules/awaymissions/zlevel.dm new file mode 100644 index 0000000..5e4508d --- /dev/null +++ b/code/modules/awaymissions/zlevel.dm @@ -0,0 +1,139 @@ +// How much "space" we give the edge of the map +var/global/list/potentialRandomZlevels = generateMapList(filename = "config/awaymissionconfig.txt") + +/proc/createRandomZlevel() + if(awaydestinations.len) //crude, but it saves another var! + return + + if(potentialRandomZlevels && potentialRandomZlevels.len) + world << "Loading away mission..." + + var/map = pick(potentialRandomZlevels) + var/file = file(map) + if(isfile(file)) + maploader.load_map(file) + smooth_zlevel(world.maxz) + world.log << "away mission loaded: [map]" + + map_transition_config.Add(AWAY_MISSION_LIST) + + for(var/obj/effect/landmark/L in landmarks_list) + if (L.name != "awaystart") + continue + awaydestinations.Add(L) + + world << "Away mission loaded." + + SortAreas() //To add recently loaded areas + +/proc/generateMapList(filename) + var/list/potentialMaps = list() + var/list/Lines = file2list(filename) + + if(!Lines.len) + return + for (var/t in Lines) + if (!t) + continue + + t = trim(t) + if (length(t) == 0) + continue + else if (copytext(t, 1, 2) == "#") + continue + + var/pos = findtext(t, " ") + var/name = null + + if (pos) + name = lowertext(copytext(t, 1, pos)) + + else + name = lowertext(t) + + if (!name) + continue + + potentialMaps.Add(t) + + return potentialMaps + + +/proc/seedRuins(list/z_levels = null, budget = 0, whitelist = /area/space, list/potentialRuins = space_ruins_templates) + if(!z_levels || !z_levels.len) + z_levels = list(1) + var/overall_sanity = 100 + var/ruins = potentialRuins.Copy() + + while(budget > 0 && overall_sanity > 0) + // Pick a ruin + var/datum/map_template/ruin/ruin = ruins[pick(ruins)] + // Can we afford it + if(ruin.cost > budget) + overall_sanity-- + continue + // If so, try to place it + var/sanity = 100 + // And if we can't fit it anywhere, give up, try again + + while(sanity > 0) + sanity-- + var/width_border = TRANSITIONEDGE + round(ruin.width / 2) + var/height_border = TRANSITIONEDGE + round(ruin.height / 2) + var/z_level = pick(z_levels) + var/turf/T = locate(rand(width_border, world.maxx - width_border), rand(height_border, world.maxy - height_border), z_level) + var/valid = TRUE + + for(var/turf/check in ruin.get_affected_turfs(T,1)) + var/area/new_area = get_area(check) + if(!(istype(new_area, whitelist))) + valid = FALSE + break + + if(!valid) + continue + + world.log << "Ruin \"[ruin.name]\" placed at ([T.x], [T.y], [T.z])" + + var/obj/effect/ruin_loader/R = new /obj/effect/ruin_loader(T) + R.Load(ruins,ruin) + budget -= ruin.cost + if(!ruin.allow_duplicates) + ruins -= ruin.name + break + + if(!overall_sanity) + world.log << "Ruin loader gave up with [budget] left to spend." + + +/obj/effect/ruin_loader + name = "random ruin" + icon = 'icons/obj/weapons.dmi' + icon_state = "syndballoon" + invisibility = 0 + +/obj/effect/ruin_loader/proc/Load(list/potentialRuins = space_ruins_templates, datum/map_template/template = null) + var/list/possible_ruins = list() + for(var/A in potentialRuins) + var/datum/map_template/T = potentialRuins[A] + if(!T.loaded) + possible_ruins += T + if(!template && possible_ruins.len) + template = safepick(possible_ruins) + if(!template) + return FALSE + var/turf/central_turf = get_turf(src) + for(var/i in template.get_affected_turfs(central_turf, 1)) + var/turf/T = i + for(var/mob/living/simple_animal/monster in T) + qdel(monster) + for(var/obj/structure/flora/ash/plant in T) + qdel(plant) + template.load(central_turf,centered = TRUE) + template.loaded++ + var/datum/map_template/ruin = template + if(istype(ruin)) + new /obj/effect/landmark/ruin(central_turf, ruin) + + qdel(src) + return TRUE diff --git a/code/modules/cargo/console.dm b/code/modules/cargo/console.dm new file mode 100644 index 0000000..46d3fcf --- /dev/null +++ b/code/modules/cargo/console.dm @@ -0,0 +1,201 @@ +/obj/machinery/computer/cargo + name = "supply console" + desc = "Used to order supplies, approve requests, and control the shuttle." + icon_screen = "supply" + circuit = /obj/item/weapon/circuitboard/computer/cargo + var/requestonly = FALSE + var/contraband = FALSE + var/safety_warning = "For safety reasons the automated supply shuttle \ + cannot transport live organisms, classified nuclear weaponry or \ + homing beacons." + +/obj/machinery/computer/cargo/request + name = "supply request console" + desc = "Used to request supplies from cargo." + icon_screen = "request" + circuit = /obj/item/weapon/circuitboard/computer/cargo/request + requestonly = TRUE + +/obj/machinery/computer/cargo/New() + ..() + var/obj/item/weapon/circuitboard/computer/cargo/board = circuit + contraband = board.contraband + emagged = board.emagged + +/obj/machinery/computer/cargo/emag_act(mob/living/user) + if(!emagged) + user.visible_message("[user] swipes a suspicious card through [src]!", + "You adjust [src]'s routing and receiver spectrum, unlocking special supplies and contraband.") + + emagged = TRUE + contraband = TRUE + + // This also permamently sets this on the circuit board + var/obj/item/weapon/circuitboard/computer/cargo/board = circuit + board.contraband = TRUE + board.emagged = TRUE + +/obj/machinery/computer/cargo/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ + datum/tgui/master_ui = null, datum/ui_state/state = default_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "cargo", name, 1000, 800, master_ui, state) + ui.open() + +/obj/machinery/computer/cargo/ui_data() + var/list/data = list() + data["requestonly"] = requestonly + data["location"] = SSshuttle.supply.getStatusText() + data["points"] = SSshuttle.points + data["away"] = SSshuttle.supply.getDockedId() == "supply_away" + data["docked"] = SSshuttle.supply.mode == SHUTTLE_IDLE + data["loan"] = !!SSshuttle.shuttle_loan + data["loan_dispatched"] = SSshuttle.shuttle_loan && SSshuttle.shuttle_loan.dispatched + data["message"] = SSshuttle.centcom_message || "Remember to stamp and send back the supply manifests." + + data["supplies"] = list() + for(var/pack in SSshuttle.supply_packs) + var/datum/supply_pack/P = SSshuttle.supply_packs[pack] + if(!data["supplies"][P.group]) + data["supplies"][P.group] = list( + "name" = P.group, + "packs" = list() + ) + if((P.hidden && !emagged) || (P.contraband && !contraband) || (P.special && !P.special_enabled)) + continue + data["supplies"][P.group]["packs"] += list(list( + "name" = P.name, + "cost" = P.cost, + "id" = pack + )) + + data["cart"] = list() + for(var/datum/supply_order/SO in SSshuttle.shoppinglist) + data["cart"] += list(list( + "object" = SO.pack.name, + "cost" = SO.pack.cost, + "id" = SO.id + )) + + data["requests"] = list() + for(var/datum/supply_order/SO in SSshuttle.requestlist) + data["requests"] += list(list( + "object" = SO.pack.name, + "cost" = SO.pack.cost, + "orderer" = SO.orderer, + "reason" = SO.reason, + "id" = SO.id + )) + + return data + +/obj/machinery/computer/cargo/ui_act(action, params, datum/tgui/ui) + if(..()) + return + if(action != "add" && requestonly) + return + switch(action) + if("send") + if(!SSshuttle.supply.canMove()) + say(safety_warning) + return + if(SSshuttle.supply.getDockedId() == "supply_home") + SSshuttle.supply.emagged = emagged + SSshuttle.supply.contraband = contraband + SSshuttle.moveShuttle("supply", "supply_away", TRUE) + say("The supply shuttle has departed.") + investigate_log("[key_name(usr)] sent the supply shuttle away.", "cargo") + else + investigate_log("[key_name(usr)] called the supply shuttle.", "cargo") + say("The supply shuttle has been called and will arrive in [SSshuttle.supply.timeLeft(600)] minutes.") + SSshuttle.moveShuttle("supply", "supply_home", TRUE) + . = TRUE + if("loan") + if(!SSshuttle.shuttle_loan) + return + else if(SSshuttle.supply.mode != SHUTTLE_IDLE) + return + else if(SSshuttle.supply.getDockedId() != "supply_away") + return + else + SSshuttle.shuttle_loan.loan_shuttle() + say("The supply shuttle has been loaned to Centcom.") + . = TRUE + if("add") + var/id = text2path(params["id"]) + var/datum/supply_pack/pack = SSshuttle.supply_packs[id] + if(!istype(pack)) + return + if((pack.hidden && !emagged) || (pack.contraband && !contraband)) + return + + var/name = "*None Provided*" + var/rank = "*None Provided*" + var/ckey = usr.ckey + if(ishuman(usr)) + var/mob/living/carbon/human/H = usr + name = H.get_authentification_name() + rank = H.get_assignment() + else if(issilicon(usr)) + name = usr.real_name + rank = "Silicon" + + var/reason = "" + if(requestonly) + reason = input("Reason:", name, "") as text|null + if(isnull(reason) || ..()) + return + + var/turf/T = get_turf(src) + var/datum/supply_order/SO = new(pack, name, rank, ckey, reason) + SO.generateRequisition(T) + if(requestonly) + SSshuttle.requestlist += SO + else + SSshuttle.shoppinglist += SO + . = TRUE + if("remove") + var/id = text2num(params["id"]) + for(var/datum/supply_order/SO in SSshuttle.shoppinglist) + if(SO.id == id) + SSshuttle.shoppinglist -= SO + . = TRUE + break + if("clear") + SSshuttle.shoppinglist.Cut() + . = TRUE + if("approve") + var/id = text2num(params["id"]) + for(var/datum/supply_order/SO in SSshuttle.requestlist) + if(SO.id == id) + SSshuttle.requestlist -= SO + SSshuttle.shoppinglist += SO + . = TRUE + break + if("deny") + var/id = text2num(params["id"]) + for(var/datum/supply_order/SO in SSshuttle.requestlist) + if(SO.id == id) + SSshuttle.requestlist -= SO + . = TRUE + break + if("denyall") + SSshuttle.requestlist.Cut() + . = TRUE + if(.) + post_signal("supply") + +/obj/machinery/computer/cargo/proc/post_signal(command) + + var/datum/radio_frequency/frequency = SSradio.return_frequency(1435) + + if(!frequency) + return + + var/datum/signal/status_signal = new + status_signal.source = src + status_signal.transmission_method = 1 + status_signal.data["command"] = command + + frequency.post_signal(src, status_signal) + diff --git a/code/modules/cargo/export_scanner.dm b/code/modules/cargo/export_scanner.dm new file mode 100644 index 0000000..490a4af --- /dev/null +++ b/code/modules/cargo/export_scanner.dm @@ -0,0 +1,37 @@ +/obj/item/device/export_scanner + name = "export scanner" + desc = "A device used to check objects against Nanotrasen exports database." + icon_state = "export_scanner" + item_state = "radio" + flags = NOBLUDGEON + w_class = 2 + siemens_coefficient = 1 + var/obj/machinery/computer/cargo/cargo_console = null + +/obj/item/device/export_scanner/examine(user) + ..() + if(!cargo_console) + user << "The [src] is currently not linked to a cargo console." + +/obj/item/device/export_scanner/afterattack(obj/O, mob/user, proximity) + if(!istype(O) || !proximity) + return + + if(istype(O, /obj/machinery/computer/cargo)) + var/obj/machinery/computer/cargo/C = O + if(!C.requestonly) + cargo_console = C + user << "Scanner linked to [C]." + else if(!istype(cargo_console)) + user << "You must link [src] to a cargo console first!" + else + // Before you fix it: + // yes, checking manifests is a part of intended functionality. + var/price = export_item_and_contents(O, cargo_console.contraband, cargo_console.emagged, dry_run=TRUE) + + if(price) + user << "Scanned [O], value: [price] \ + credits[O.contents.len ? " (contents included)" : ""]." + else + user << "Scanned [O], no export value. \ + " diff --git a/code/modules/cargo/exports.dm b/code/modules/cargo/exports.dm new file mode 100644 index 0000000..b920c6d --- /dev/null +++ b/code/modules/cargo/exports.dm @@ -0,0 +1,141 @@ +/* How it works: + The shuttle arrives at Centcom dock and calls sell(), which recursively loops through all the shuttle contents that are unanchored. + The loop only checks contents of storage types, see supply.dm shuttle code. + + Each object in the loop is checked for applies_to() of various export datums, except the invalid ones. + Objects on shutlle floor are checked only against shuttle_floor = TRUE exports. + + If applies_to() returns TRUE, sell_object() is called on object and checks against exports are stopped for this object. + sell_object() must add object amount and cost to export's total_cost and total_amount. + + When all the shuttle objects are looped, export cycle is over. The shuttle calls total_printout() for each valid export. + If total_printout() returns something, the export datum's total_cost is added to cargo credits, then export_end() is called to reset total_cost and total_amount. +*/ + +/* The rule in figuring out item export cost: + Export cost of goods in the shipping crate must be always equal or lower than: + packcage cost - crate cost - manifest cost + Crate cost is 500cr for a regular plasteel crate and 100cr for a large wooden one. Manifest cost is always 200cr. + This is to avoid easy cargo points dupes. + +Credit dupes that require a lot of manual work shouldn't be removed, unless they yield too much profit for too little work. + For example, if some player buys metal and glass sheets and uses them to make and sell reinforced glass: + + 100 glass + 50 metal -> 100 reinforced glass + (1500cr -> 1600cr) + + then the player gets the profit from selling his own wasted time. +*/ +/proc/export_item_and_contents(atom/movable/AM, contraband, emagged, dry_run=FALSE) + if(!exports_list.len) + setupExports() + + var/sold_str = "" + var/cost = 0 + + var/list/contents = AM.GetAllContents() + + // We go backwards, so it'll be innermost objects sold first + for(var/i in reverseRange(contents)) + var/atom/movable/thing = i + for(var/datum/export/E in exports_list) + if(!E) + continue + if(E.applies_to(thing, contraband, emagged)) + if(dry_run) + cost += E.get_cost(thing, contraband, emagged) + else + E.sell_object(thing, contraband, emagged) + sold_str += " [thing.name]" + break + if(!dry_run) + qdel(thing) + + if(dry_run) + return cost + else + return sold_str + +/datum/export + var/unit_name = "" // Unit name. Only used in "Received [total_amount] [name]s [message]." message + var/message = "" + var/cost = 100 // Cost of item, in cargo credits. Must not alow for infinite price dupes, see above. + var/contraband = FALSE // Export must be unlocked with multitool. + var/emagged = FALSE // Export must be unlocked with emag. + var/list/export_types = list() // Type of the exported object. If none, the export datum is considered base type. + var/include_subtypes = TRUE // Set to FALSE to make the datum apply only to a strict type. + var/list/exclude_types = list() // Types excluded from export + + // Used by print-out + var/total_cost = 0 + var/total_amount = 0 + +// Checks the cost. 0 cost items are skipped in export. +/datum/export/proc/get_cost(obj/O, contr = 0, emag = 0) + return cost * get_amount(O, contr, emag) + +// Checks the amount of exportable in object. Credits in the bill, sheets in the stack, etc. +// Usually acts as a multiplier for a cost, so item that has 0 amount will be skipped in export. +/datum/export/proc/get_amount(obj/O, contr = 0, emag = 0) + return 1 + +// Checks if the item is fit for export datum. +/datum/export/proc/applies_to(obj/O, contr = 0, emag = 0) + if(contraband && !contr) + return FALSE + if(emagged && !emag) + return FALSE + if(!include_subtypes && !(O.type in export_types)) + return FALSE + if(include_subtypes && (!is_type_in_list(O, export_types) || is_type_in_list(O, exclude_types))) + return FALSE + if(!get_cost(O, contr, emag)) + return FALSE + return TRUE + +// Called only once, when the object is actually sold by the datum. +// Adds item's cost and amount to the current export cycle. +// get_cost, get_amount and applies_to do not neccesary mean a successful sale. +/datum/export/proc/sell_object(obj/O, contr = 0, emag = 0) + var/cost = get_cost(O) + var/amount = get_amount(O) + total_cost += cost + total_amount += amount + feedback_add_details("export_sold_amount","[O.type]|[amount]") + feedback_add_details("export_sold_cost","[O.type]|[cost]") + +// Total printout for the cargo console. +// Called before the end of current export cycle. +// It must always return something if the datum adds or removes any credts. +/datum/export/proc/total_printout(contr = 0, emag = 0) + if(!total_cost && !total_amount) + return "" + var/msg = "[total_cost] credits: Received [total_amount] " + if(total_cost > 0) + msg = "+" + msg + + if(unit_name) + msg += unit_name + if(total_amount > 1) + msg += "s" + if(message) + msg += " " + + if(message) + msg += message + + msg += "." + return msg + +// The current export cycle is over now. Reset all the export temporary vars. +/datum/export/proc/export_end() + total_cost = 0 + total_amount = 0 + +var/list/exports_list = list() + +/proc/setupExports() + for(var/subtype in subtypesof(/datum/export)) + var/datum/export/E = new subtype + if(E.export_types && E.export_types.len) // Exports without a type are invalid/base types + exports_list += E diff --git a/code/modules/cargo/exports/gear.dm b/code/modules/cargo/exports/gear.dm new file mode 100644 index 0000000..91bd239 --- /dev/null +++ b/code/modules/cargo/exports/gear.dm @@ -0,0 +1,129 @@ +// Armor, gloves, space suits - it all goes here + +/datum/export/gear + +// Security gear +/datum/export/gear/sec_helmet + cost = 100 + unit_name = "helmet" + export_types = list(/obj/item/clothing/head/helmet/sec) + +/datum/export/gear/sec_armor + cost = 100 + unit_name = "armor vest" + export_types = list(/obj/item/clothing/suit/armor/vest) + include_subtypes = FALSE + + +/datum/export/gear/riot_helmet + cost = 250 + unit_name = "riot helmet" + export_types = list(/obj/item/clothing/head/helmet/riot) + +/datum/export/gear/riot_armor + cost = 250 + unit_name = "riot armor suit" + export_types = list(/obj/item/clothing/suit/armor/riot) + +/datum/export/gear/bulletproof_armor + cost = 250 + unit_name = "bulletproof armor vest" + export_types = list(/obj/item/clothing/suit/armor/bulletproof) + +/datum/export/gear/reflector_armor + cost = 650 + unit_name = "reflector armor vest" + export_types = list(/obj/item/clothing/suit/armor/laserproof) + + +/datum/export/gear/riot_shield + cost = 400 + unit_name = "riot shield" + export_types = list(/obj/item/weapon/shield/riot) + + +// Masks +/datum/export/gear/mask/breath + cost = 2 + unit_name = "breath mask" + export_types = list(/obj/item/clothing/mask/breath) + +/datum/export/gear/mask/gas + cost = 10 + unit_name = "gas mask" + export_types = list(/obj/item/clothing/mask/gas) + include_subtypes = FALSE + + + +// EVA gear +/datum/export/gear/space + include_subtypes = FALSE + +/datum/export/gear/space/helmet + cost = 500 + unit_name = "space helmet" + export_types = list(/obj/item/clothing/head/helmet/space, /obj/item/clothing/head/helmet/space/eva) + +/datum/export/gear/space/suit + cost = 600 + unit_name = "space suit" + export_types = list(/obj/item/clothing/suit/space, /obj/item/clothing/suit/space/eva) + + +/datum/export/gear/space/voidhelmet + cost = 550 + unit_name = "void helmet" + export_types = list(/obj/item/clothing/head/helmet/space/nasavoid) + +/datum/export/gear/space/voidsuit + cost = 650 + unit_name = "void suit" + export_types = list(/obj/item/clothing/suit/space/nasavoid) + + +/datum/export/gear/space/syndiehelmet + cost = 1000 + unit_name = "Syndicate space helmet" + export_types = list(/obj/item/clothing/head/helmet/space/syndicate) + include_subtypes = TRUE + +/datum/export/gear/space/syndiesuit + cost = 1500 + unit_name = "Syndicate space suit" + export_types = list(/obj/item/clothing/suit/space/syndicate) + include_subtypes = TRUE + + +// Radsuits +/datum/export/gear/radhelmet + cost = 50 + unit_name = "radsuit hood" + export_types = list(/obj/item/clothing/head/radiation) + +/datum/export/gear/radsuit + cost = 100 + unit_name = "radsuit" + export_types = list(/obj/item/clothing/suit/radiation) + +// Biosuits +/datum/export/gear/biohood + cost = 50 + unit_name = "biosuit hood" + export_types = list(/obj/item/clothing/head/bio_hood) + +/datum/export/gear/biosuit + cost = 100 + unit_name = "biosuit" + export_types = list(/obj/item/clothing/suit/bio_suit) + +// Bombsuits +/datum/export/gear/bombhelmet + cost = 100 + unit_name = "bomb suit hood" + export_types = list(/obj/item/clothing/head/bomb_hood) + +/datum/export/gear/bombsuit + cost = 300 + unit_name = "bomb suit" + export_types = list(/obj/item/clothing/suit/bomb_suit) \ No newline at end of file diff --git a/code/modules/cargo/exports/intel.dm b/code/modules/cargo/exports/intel.dm new file mode 100644 index 0000000..faba926 --- /dev/null +++ b/code/modules/cargo/exports/intel.dm @@ -0,0 +1,74 @@ +// Drop the dox! + +// Selling Syndicate docs to NT +/datum/export/intel + cost = 25000 + unit_name = "original article" + message = "of enemy intelligence" + var/global/originals_recieved = list() + var/global/copies_recieved = list() + var/copy_path = null + export_types = list(/obj/item/documents/syndicate) + +/datum/export/intel/applies_to(obj/O, contr = 0, emag = 0) + if(!..()) + return FALSE + + if(emagged != emag) // Emagging the console will stop you from selling Syndicate docs to NT. + return FALSE + + // No docs double-selling! + if(istype(O, /obj/item/documents/photocopy)) + var/obj/item/documents/photocopy/C = O + if(!C.copy_type) + return FALSE + if((C.copy_type in originals_recieved) || (C.copy_type in copies_recieved)) + return FALSE + if(copy_path && !ispath(C.copy_type, copy_path)) + return FALSE + + else if(O.type in originals_recieved) + return FALSE + + return TRUE + +/datum/export/intel/get_cost(obj/O) + if(O.type in copies_recieved) + return ..() - 15000 // Already have a copy of it, deduce the cost. + return ..() + +/datum/export/intel/sell_object(obj/O) + ..() + if(istype(O, /obj/item/documents/photocopy)) + var/obj/item/documents/photocopy/C = O + copies_recieved += C.copy_type + else + originals_recieved += O.type + +/datum/export/intel/photocopy + cost = 15000 // Allows double agents to earn some cargo points without failing their objectives. + unit_name = "photocopied article" + export_types = list(/obj/item/documents/photocopy) + copy_path = /obj/item/documents/syndicate + + + +// Selling NT docs to Syndicate +/datum/export/intel/syndie + message = "of Nanotrasen intelligence" + export_types = list(/obj/item/documents/nanotrasen) + emagged = TRUE + +/datum/export/intel/syndie/photocopy + cost = 15000 + unit_name = "photocopied article" + export_types = list(/obj/item/documents/photocopy) + copy_path = /obj/item/documents/nanotrasen + +// Selling Syndicate docs to Syndicate, why not? +/datum/export/intel/syndie/recovered + cost = 15000 + unit_name = "recovered article" + message = "of Syndicate intelligence" + export_types = list(/obj/item/documents/syndicate) + // Syndicate only wants originals of their docs recovered. \ No newline at end of file diff --git a/code/modules/cargo/exports/large_objects.dm b/code/modules/cargo/exports/large_objects.dm new file mode 100644 index 0000000..158710e --- /dev/null +++ b/code/modules/cargo/exports/large_objects.dm @@ -0,0 +1,110 @@ +// Large objects that don't fit in crates, but must be sellable anyway. + +// Crates, boxes, lockers. +/datum/export/large/crate + cost = 500 + unit_name = "crate" + export_types = list(/obj/structure/closet/crate) + exclude_types = list(/obj/structure/closet/crate/large) + +/datum/export/large/crate/total_printout() // That's why a goddamn metal crate costs that much. + . = ..() + if(.) + . += " Thanks for participating in Nanotrasen Crates Recycling Program." + +/datum/export/large/crate/wooden + cost = 100 + unit_name = "wooden crate" + export_types = list(/obj/structure/closet/crate/large) + exclude_types = list() + +/datum/export/large/crate/wooden/ore + unit_name = "ore box" + export_types = list(/obj/structure/ore_box) + + +// Reagent dispensers. +/datum/export/large/reagent_dispenser + cost = 100 // +0-400 depending on amount of reagents left + var/contents_cost = 400 + +/datum/export/large/reagent_dispenser/get_cost(obj/O) + var/obj/structure/reagent_dispensers/D = O + var/ratio = D.reagents.total_volume / D.reagents.maximum_volume + + return ..() + round(contents_cost * ratio) + +/datum/export/large/reagent_dispenser/water + unit_name = "watertank" + export_types = list(/obj/structure/reagent_dispensers/watertank) + contents_cost = 200 + +/datum/export/large/reagent_dispenser/fuel + unit_name = "fueltank" + export_types = list(/obj/structure/reagent_dispensers/fueltank) + +/datum/export/large/reagent_dispenser/beer + unit_name = "beer keg" + contents_cost = 700 + export_types = list(/obj/structure/reagent_dispensers/beerkeg) + + + +// Heavy engineering equipment. Singulo/Tesla parts mostly. +/datum/export/large/emitter + cost = 400 + unit_name = "emitter" + export_types = list(/obj/machinery/power/emitter) + +/datum/export/large/field_generator + cost = 400 + unit_name = "field generator" + export_types = list(/obj/machinery/field/generator) + +/datum/export/large/collector + cost = 600 + unit_name = "collector" + export_types = list(/obj/machinery/power/rad_collector) + +/datum/export/large/collector/pa + cost = 300 + unit_name = "particle accelerator part" + export_types = list(/obj/structure/particle_accelerator) + +/datum/export/large/collector/pa/controls + cost = 500 + unit_name = "particle accelerator control console" + export_types = list(/obj/machinery/particle_accelerator/control_box) + +/datum/export/large/pipedispenser + cost = 500 + unit_name = "pipe dispenser" + export_types = list(/obj/machinery/pipedispenser) + + +/datum/export/large/singularitygen + cost = 4000 // If you have one left after engine setup, sell it. + unit_name = "unused gravitational singularity generator" + export_types = list(/obj/machinery/the_singularitygen) + include_subtypes = FALSE + +/datum/export/large/singularitygen/tesla + unit_name = "unused energy ball generator" + export_types = list(/obj/machinery/the_singularitygen/tesla) + +/datum/export/large/supermatter + cost = 9000 + unit_name = "supermatter shard" + export_types = list(/obj/machinery/power/supermatter_shard) + + +// Misc +/datum/export/large/iv + cost = 300 + unit_name = "iv drip" + export_types = list(/obj/machinery/iv_drip) + +/datum/export/large/barrier + cost = 325 + unit_name = "security barrier" + export_types = list(/obj/item/weapon/grenade/barrier, /obj/structure/barricade/security) diff --git a/code/modules/cargo/exports/manifest.dm b/code/modules/cargo/exports/manifest.dm new file mode 100644 index 0000000..0f1266f --- /dev/null +++ b/code/modules/cargo/exports/manifest.dm @@ -0,0 +1,76 @@ +// Approved manifest. +// +200 credits flat. +/datum/export/manifest_correct + cost = 200 + unit_name = "approved manifest" + export_types = list(/obj/item/weapon/paper/manifest) + +/datum/export/manifest_correct/applies_to(obj/O) + if(!..()) + return FALSE + + var/obj/item/weapon/paper/manifest/M = O + if(M.is_approved() && !M.errors) + return TRUE + return FALSE + +// Correctly denied manifest. +// Refunds the package cost minus the cost of crate. +/datum/export/manifest_error_denied + cost = -500 + unit_name = "correctly denied manifest" + export_types = list(/obj/item/weapon/paper/manifest) + +/datum/export/manifest_error_denied/applies_to(obj/O) + if(!..()) + return FALSE + + var/obj/item/weapon/paper/manifest/M = O + if(M.is_denied() && M.errors) + return TRUE + return FALSE + +/datum/export/manifest_error_denied/get_cost(obj/O) + var/obj/item/weapon/paper/manifest/M = O + return ..() + M.order_cost + + +// Erroneously approved manifest. +// Substracts the package cost. +/datum/export/manifest_error + unit_name = "erroneously approved manifest" + export_types = list(/obj/item/weapon/paper/manifest) + +/datum/export/manifest_error/applies_to(obj/O) + if(!..()) + return FALSE + + var/obj/item/weapon/paper/manifest/M = O + if(M.is_approved() && M.errors) + return TRUE + return FALSE + +/datum/export/manifest_error/get_cost(obj/O) + var/obj/item/weapon/paper/manifest/M = O + return -M.order_cost + + +// Erroneously denied manifest. +// Substracts the package cost minus the cost of crate. +/datum/export/manifest_correct_denied + cost = 500 + unit_name = "erroneously denied manifest" + export_types = list(/obj/item/weapon/paper/manifest) + +/datum/export/manifest_correct_denied/applies_to(obj/O) + if(!..()) + return FALSE + + var/obj/item/weapon/paper/manifest/M = O + if(M.is_denied() && !M.errors) + return TRUE + return FALSE + +/datum/export/manifest_correct_denied/get_cost(obj/O) + var/obj/item/weapon/paper/manifest/M = O + return ..() - M.order_cost \ No newline at end of file diff --git a/code/modules/cargo/exports/materials.dm b/code/modules/cargo/exports/materials.dm new file mode 100644 index 0000000..ad1f6a0 --- /dev/null +++ b/code/modules/cargo/exports/materials.dm @@ -0,0 +1,95 @@ +/datum/export/material + cost = 5 // Cost per MINERAL_MATERIAL_AMOUNT, which is 2000cm3 as of April 2016. + message = "cm3 of developer's tears. Please, report this on github" + var/material_id = null + export_types = list( + /obj/item/stack/sheet/mineral, /obj/item/stack/tile/mineral, + /obj/item/weapon/ore, /obj/item/weapon/coin) +// Yes, it's a base type containing export_types. +// But it has no material_id, so any applies_to check will return false, and these types reduce amount of copypasta a lot + +/datum/export/material/get_amount(obj/O) + if(!material_id) + return 0 + if(!istype(O, /obj/item)) + return 0 + var/obj/item/I = O + if(!(material_id in I.materials)) + return 0 + + var/amount = I.materials[material_id] + + if(istype(I, /obj/item/stack)) + var/obj/item/stack/S = I + amount *= S.amount + else if(istype(I, /obj/item/weapon/ore)) + amount *= 0.8 // Station's ore redemption equipment is really goddamn good. + + return round(amount) + +/datum/export/material/get_cost(obj/O) + return round(..() / MINERAL_MATERIAL_AMOUNT) + +// Materials. Nothing but plasma is really worth selling. Better leave it all to RnD and sell some plasma instead. + +// Bananium. Exporting it makes the clown cry. Priceless. +/datum/export/material/bananium + cost = 5000 + material_id = MAT_BANANIUM + message = "cm3 of bananium" + +// Diamonds. Rare and expensive. +/datum/export/material/diamond + cost = 2500 + material_id = MAT_DIAMOND + message = "cm3 of diamonds" + +// Plasma. The oil of 26 century. The reason why you are here. +/datum/export/material/plasma + cost = 500 + material_id = MAT_PLASMA + message = "cm3 of plasma" + +/datum/export/material/plasma/get_cost(obj/O, contr = 0, emag = 0) + . = ..() + if(emag) // Syndicate pays you more for the plasma. + . = round(. * 1.5) + +// Uranium. Still useful for both power generation and nuclear annihilation. +/datum/export/material/uranium + cost = 400 + material_id = MAT_URANIUM + message = "cm3 of uranium" + +// Gold. Used in electronics and corrosion-resistant plating. +/datum/export/material/gold + cost = 250 + material_id = MAT_GOLD + message = "cm3 of gold" + +// Silver. +/datum/export/material/silver + cost = 100 + material_id = MAT_SILVER + message = "cm3 of silver" + +// Titanium. +/datum/export/material/titanium + cost = 250 + material_id = MAT_TITANIUM + message = "cm3 of titanium" + +// Metal. Common building material. +/datum/export/material/metal + message = "cm3 of metal" + material_id = MAT_METAL + export_types = list( + /obj/item/stack/sheet/metal, /obj/item/stack/tile/plasteel, + /obj/item/stack/rods, /obj/item/weapon/ore, /obj/item/weapon/coin) + +// Glass. Common building material. +/datum/export/material/glass + message = "cm3 of glass" + material_id = MAT_GLASS + export_types = list(/obj/item/stack/sheet/glass, /obj/item/weapon/ore, + /obj/item/weapon/shard) \ No newline at end of file diff --git a/code/modules/cargo/exports/money.dm b/code/modules/cargo/exports/money.dm new file mode 100644 index 0000000..e22868d --- /dev/null +++ b/code/modules/cargo/exports/money.dm @@ -0,0 +1,24 @@ +// Space Cash. Now it isn't that useless. +/datum/export/stack/cash + cost = 1 // Multiplied both by value of each bill and by amount of bills in stack. + unit_name = "credit" + export_types = list(/obj/item/stack/spacecash) + +/datum/export/stack/cash/get_amount(obj/O) + var/obj/item/stack/spacecash/C = O + return ..() * C.value + + +// Coins. At least the coins that do not contain any materials. +// Material-containing coins cost just as much as their materials do, see materials.dm for exact rates. +/datum/export/coin + cost = 1 // Multiplied by coin's value + unit_name = "credit" + message = "worth of rare coins" + export_types = list(/obj/item/weapon/coin) + +/datum/export/coin/get_amount(obj/O) + var/obj/item/weapon/coin/C = O + if(C.materials && C.materials.len) + return 0 // Sold as raw material instead. + return ..() * C.value \ No newline at end of file diff --git a/code/modules/cargo/exports/organs.dm b/code/modules/cargo/exports/organs.dm new file mode 100644 index 0000000..99db612 --- /dev/null +++ b/code/modules/cargo/exports/organs.dm @@ -0,0 +1,108 @@ +// Organs. + + +// Alien organs +/datum/export/organ/alien/get_cost(O, contr = 0, emag = 0) + . = ..() + if(emag) // Syndicate really wants some new bio-weapons. + . *= 2 + +/datum/export/organ/alien/brain + cost = 2000 + unit_name = "alien brain" + export_types = list(/obj/item/organ/brain/alien) + +/datum/export/organ/alien/acid + cost = 1500 + unit_name = "alien acid gland" + export_types = list(/obj/item/organ/alien/acid) + +/datum/export/organ/alien/hivenode + cost = 2000 + unit_name = "alien hive node" + export_types = list(/obj/item/organ/alien/hivenode) + +/datum/export/organ/alien/neurotoxin + cost = 2000 + unit_name = "alien neurotoxin gland" + export_types = list(/obj/item/organ/alien/neurotoxin) + +/datum/export/organ/alien/resinspinner + cost = 1000 + unit_name = "alien resin spinner" + +/datum/export/organ/alien/plasmavessel + cost = 1000 + unit_name = "alien plasma vessel" + export_types = list(/obj/item/organ/alien/plasmavessel) + +/datum/export/organ/alien/plasmavessel/get_cost(obj/item/organ/alien/plasmavessel/P) + return ..() + (P.max_plasma * 2) + (P.plasma_rate * 20) + + + +/datum/export/organ/alien/embryo + cost = 5000 // Allows buyer to set up his own alien farm. + unit_name = "alien embryo" + export_types = list(/obj/item/organ/body_egg/alien_embryo) + +/datum/export/organ/alien/eggsac + cost = 10000 // Even better than a single embryo. + unit_name = "alien egg sac" + export_types = list(/obj/item/organ/alien/eggsac) + + +// Other alien organs. +/datum/export/organ/alien/abductor + cost = 2500 + unit_name = "abductor gland" + export_types = list(/obj/item/organ/gland) + +/datum/export/organ/alien/changeling_egg + cost = 50000 // Holy. Fuck. + unit_name = "changeling egg" + export_types = list(/obj/item/organ/body_egg/changeling_egg) + + +/datum/export/organ/hivelord + cost = 1500 + unit_name = "active hivelord core" + export_types = list(/obj/item/organ/hivelord_core) + +/datum/export/organ/alien/plasmavessel/get_cost(obj/item/organ/hivelord_core/C) + if(C.inert) + return ..() / 3 + if(C.preserved) + return ..() * 2 + return ..() + + +// Human organs. + +// Do not put human brains here, they are not sellable for a purpose. +// If they would be sellable, X-Porter cannon's finishing move (selling victim's organs) will be instakill with no revive. + +/datum/export/organ/human + contraband = TRUE + include_subtypes = FALSE + +/datum/export/organ/human/heart + cost = 500 + unit_name = "heart" + export_types = list(/obj/item/organ/heart) + +/datum/export/organ/human/lungs + cost = 400 + unit_name = "pair" + message = "of lungs" + export_types = list(/obj/item/organ/lungs) + +/datum/export/organ/human/appendix + cost = 50 + unit_name = "appendix" + export_types = list(/obj/item/organ/appendix) + +/datum/export/organ/human/appendix/get_cost(obj/item/organ/appendix/O) + if(O.inflamed) + return 0 + return ..() \ No newline at end of file diff --git a/code/modules/cargo/exports/parts.dm b/code/modules/cargo/exports/parts.dm new file mode 100644 index 0000000..51a5639 --- /dev/null +++ b/code/modules/cargo/exports/parts.dm @@ -0,0 +1,32 @@ +// Circuit boards, spare parts, etc. + +/datum/export/solar/assembly + cost = 50 + unit_name = "solar panel assembly" + export_types = list(/obj/item/solar_assembly) + +/datum/export/solar/tracker_board + cost = 100 + unit_name = "solar tracker board" + export_types = list(/obj/item/weapon/electronics/tracker) + +/datum/export/solar/control_board + cost = 150 + unit_name = "solar panel control board" + export_types = list(/obj/item/weapon/circuitboard/computer/solar_control) + + + +/datum/export/swarmer + cost = 2000 + unit_name = "deactivated alien deconstruction drone" + export_types = list(/obj/item/device/unactivated_swarmer) + +/datum/export/swarmer/applies_to(obj/O, contr = 0, emag = 0) + if(!..()) + return FALSE + + var/obj/item/device/unactivated_swarmer/S = O + if(!S.crit_fail) + return FALSE + return TRUE \ No newline at end of file diff --git a/code/modules/cargo/exports/research.dm b/code/modules/cargo/exports/research.dm new file mode 100644 index 0000000..8dfd089 --- /dev/null +++ b/code/modules/cargo/exports/research.dm @@ -0,0 +1,25 @@ +// Sell tech levels +/datum/export/tech + cost = 500 + unit_name = "technology data disk" + export_types = list(/obj/item/weapon/disk/tech_disk) + var/list/techLevels = list() + +/datum/export/tech/get_cost(obj/O) + var/obj/item/weapon/disk/tech_disk/D = O + var/cost = 0 + for(var/V in D.tech_stored) + if(!V) + continue + var/datum/tech/tech = V + cost += tech.getCost(techLevels[tech.id]) + return ..() * cost + +/datum/export/tech/sell_object(obj/O) + ..() + var/obj/item/weapon/disk/tech_disk/D = O + for(var/V in D.tech_stored) + if(!V) + continue + var/datum/tech/tech = V + techLevels[tech.id] = tech.level diff --git a/code/modules/cargo/exports/seeds.dm b/code/modules/cargo/exports/seeds.dm new file mode 100644 index 0000000..9f5847d --- /dev/null +++ b/code/modules/cargo/exports/seeds.dm @@ -0,0 +1,36 @@ +/datum/export/seed + cost = 100 // Gets multiplied by potency + unit_name = "new plant species sample" + export_types = list(/obj/item/seeds) + var/needs_discovery = FALSE // Only for undiscovered species + var/global/list/discoveredPlants = list() + +/datum/export/seed/get_cost(obj/O) + var/obj/item/seeds/S = O + if(!needs_discovery && (S.type in discoveredPlants)) + return 0 + if(needs_discovery && !(S.type in discoveredPlants)) + return 0 + return ..() * S.rarity // That's right, no bonus for potency. Send a crappy sample first to "show improvement" later. + +/datum/export/seed/sell_object(obj/O) + ..() + var/obj/item/seeds/S = O + discoveredPlants[S.type] = S.potency + + +/datum/export/seed/potency + cost = 2.5 // Gets multiplied by potency and rarity. + unit_name = "improved plant sample" + export_types = list(/obj/item/seeds) + needs_discovery = TRUE // Only for already discovered species + +/datum/export/seed/potency.get_cost(obj/O) + var/obj/item/seeds/S = O + var/cost = ..() + if(!cost) + return 0 + + var/potDiff = (S.potency - discoveredPlants[S.type]) + + return round(..() * potDiff) diff --git a/code/modules/cargo/exports/sheets.dm b/code/modules/cargo/exports/sheets.dm new file mode 100644 index 0000000..921ed47 --- /dev/null +++ b/code/modules/cargo/exports/sheets.dm @@ -0,0 +1,132 @@ +// +// Sheet Exports +// + +/datum/export/stack + unit_name = "sheet" + +/datum/export/stack/get_amount(obj/O) + var/obj/item/stack/S = O + if(istype(S)) + return S.amount + return 0 + + +// Leather, skin and other farming by-products. + +/datum/export/stack/skin + unit_name = "" + +// Monkey hide. Cheap. +/datum/export/stack/skin/monkey + cost = 150 + unit_name = "monkey hide" + export_types = list(/obj/item/stack/sheet/animalhide/monkey) + +// Human skin. Illegal +/datum/export/stack/skin/human + cost = 2000 + contraband = 1 + unit_name = "piece" + message = "of human skin" + export_types = list(/obj/item/stack/sheet/animalhide/human) + +// Goliath hide. Expensive. +/datum/export/stack/skin/goliath_hide + cost = 2500 + unit_name = "goliath hide" + export_types = list(/obj/item/stack/sheet/animalhide/goliath_hide) + +// Cat hide. Just in case Runtime is catsploding again. +/datum/export/stack/skin/cat + cost = 2000 + contraband = 1 + unit_name = "cat hide" + export_types = list(/obj/item/stack/sheet/animalhide/cat) + +// Corgi hide. You monster. +/datum/export/stack/skin/corgi + cost = 2500 + contraband = 1 + unit_name = "corgi hide" + export_types = list(/obj/item/stack/sheet/animalhide/corgi) + +// Lizard hide. Very expensive. +/datum/export/stack/skin/lizard + cost = 5000 + unit_name = "lizard hide" + export_types = list(/obj/item/stack/sheet/animalhide/lizard) + +// Alien hide. Extremely expensive. +/datum/export/stack/skin/xeno + cost = 15000 + unit_name = "alien hide" + export_types = list(/obj/item/stack/sheet/animalhide/xeno) + + +// Common materials. +// For base materials, see materials.dm + +// Plasteel. Lightweight, strong and contains some plasma too. +/datum/export/stack/plasteel + cost = 85 + message = "of plasteel" + export_types = list(/obj/item/stack/sheet/plasteel) + +// Reinforced Glass. Common building material. 1 glass + 0.5 metal, cost is rounded up. +/datum/export/stack/rglass + cost = 8 + message = "of reinforced glass" + export_types = list(/obj/item/stack/sheet/rglass) + +// Wood. Quite expensive in the grim and dark 26 century. +/datum/export/stack/wood + cost = 25 + unit_name = "wood plank" + export_types = list(/obj/item/stack/sheet/mineral/wood) + +// Cardboard. Cheap. +/datum/export/stack/cardboard + cost = 2 + message = "of cardboard" + export_types = list(/obj/item/stack/sheet/cardboard) + +// Sandstone. Literally dirt cheap. +/datum/export/stack/sandstone + cost = 1 + unit_name = "block" + message = "of sandstone" + export_types = list(/obj/item/stack/sheet/mineral/sandstone) + +// Cable. +/datum/export/stack/cable + cost = 0.2 + unit_name = "cable piece" + export_types = list(/obj/item/stack/cable_coil) + +/datum/export/stack/cable/get_cost(O) + return round(..()) + + +// Weird Stuff + +// Alien Alloy. Like plasteel, but better. +// Major players would pay a lot to get some, so you can get a lot of money from producing and selling those. +// Just don't forget to fire all your production staff before the end of month. +/datum/export/stack/abductor + cost = 10000 + message = "of alien alloy" + export_types = list(/obj/item/stack/sheet/mineral/abductor) + +// Adamantine. Does not occur naurally. +/datum/export/stack/adamantine + unit_name = "bar" + cost = 7500 + message = "of adamantine" + export_types = list(/obj/item/stack/sheet/mineral/adamantine) + +// Mythril. Does not occur naurally. +/datum/export/stack/mythril + cost = 15000 + message = "of mythril" + export_types = list(/obj/item/stack/sheet/mineral/mythril) \ No newline at end of file diff --git a/code/modules/cargo/exports/tools.dm b/code/modules/cargo/exports/tools.dm new file mode 100644 index 0000000..71b778e --- /dev/null +++ b/code/modules/cargo/exports/tools.dm @@ -0,0 +1,118 @@ +// Various tools and handheld engineering devices. + +/datum/export/toolbox + cost = 4 + unit_name = "toolbox" + export_types = list(/obj/item/weapon/storage/toolbox) + +// mechanical toolbox: 22cr +// emergency toolbox: 17-20cr +// electrical toolbox: 36cr +// robust: priceless + +// Basic tools +/datum/export/screwdriver + cost = 2 + unit_name = "screwdriver" + export_types = list(/obj/item/weapon/screwdriver) + include_subtypes = FALSE + +/datum/export/wrench + cost = 2 + unit_name = "wrench" + export_types = list(/obj/item/weapon/wrench) + +/datum/export/crowbar + cost = 2 + unit_name = "crowbar" + export_types = list(/obj/item/weapon/crowbar) + +/datum/export/wirecutters + cost = 2 + unit_name = "pair" + message = "of wirecutters" + export_types = list(/obj/item/weapon/wirecutters) + + +// Welding tools +/datum/export/weldingtool + cost = 5 + unit_name = "welding tool" + export_types = list(/obj/item/weapon/weldingtool) + include_subtypes = FALSE + +/datum/export/weldingtool/emergency + cost = 2 + unit_name = "emergency welding tool" + export_types = list(/obj/item/weapon/weldingtool/mini) + +/datum/export/weldingtool/industrial + cost = 10 + unit_name = "industrial welding tool" + export_types = list(/obj/item/weapon/weldingtool/largetank, /obj/item/weapon/weldingtool/hugetank) + + +// Fire extinguishers +/datum/export/extinguisher + cost = 15 + unit_name = "fire extinguisher" + export_types = list(/obj/item/weapon/extinguisher) + include_subtypes = FALSE + +/datum/export/extinguisher/mini + cost = 2 + unit_name = "pocket fire extinguisher" + export_types = list(/obj/item/weapon/extinguisher/mini) + + +// Flashlights +/datum/export/flashlight + cost = 5 + unit_name = "flashlight" + export_types = list(/obj/item/device/flashlight) + include_subtypes = FALSE + +/datum/export/flashlight/flare + cost = 2 + unit_name = "flare" + export_types = list(/obj/item/device/flashlight/flare) + +/datum/export/flashlight/seclite + cost = 10 + unit_name = "seclite" + export_types = list(/obj/item/device/flashlight/seclite) + + +// Analyzers and Scanners +/datum/export/analyzer + cost = 5 + unit_name = "analyzer" + export_types = list(/obj/item/device/analyzer) + +/datum/export/analyzer/t_scanner + cost = 10 + unit_name = "t-ray scanner" + export_types = list(/obj/item/device/t_scanner) + + +/datum/export/radio + cost = 5 + unit_name = "radio" + export_types = list(/obj/item/device/radio) + + +// High-tech tools. +/datum/export/rcd + cost = 100 // 15 metal -> 75 credits, +25 credits for production + unit_name = "rapid construction device" + export_types = list(/obj/item/weapon/rcd) + +/datum/export/rcd_ammo + cost = 15 // 1.5 metal, 1 glass -> 12.5 credits, +2.5 credits + unit_name = "compressed matter cardridge" + export_types = list(/datum/design/rcd_ammo) + +/datum/export/rpd + cost = 350 // 37.5 metal, 18.75 glass -> 281.25 credits, + some + unit_name = "rapid piping device" + export_types = list(/obj/item/weapon/pipe_dispenser) diff --git a/code/modules/cargo/exports/weapons.dm b/code/modules/cargo/exports/weapons.dm new file mode 100644 index 0000000..33f2523 --- /dev/null +++ b/code/modules/cargo/exports/weapons.dm @@ -0,0 +1,72 @@ +// Weapon exports. Stun batons, disablers, etc. + +/datum/export/weapon + include_subtypes = FALSE + +/datum/export/weapon/baton + cost = 100 + unit_name = "stun baton" + export_types = list(/obj/item/weapon/melee/baton) + exclude_types = list(/obj/item/weapon/melee/baton/cattleprod) + include_subtypes = TRUE + +/datum/export/weapon/knife + cost = 750 + unit_name = "combat knife" + export_types = list(/obj/item/weapon/kitchen/knife/combat) + + +/datum/export/weapon/taser + cost = 250 + unit_name = "advanced taser" + export_types = list(/obj/item/weapon/gun/energy/gun/advtaser) + +/datum/export/weapon/laser + cost = 250 + unit_name = "laser gun" + export_types = list(/obj/item/weapon/gun/energy/laser) + +/datum/export/weapon/disabler + cost = 100 + unit_name = "disabler" + export_types = list(/obj/item/weapon/gun/energy/disabler) + +/datum/export/weapon/energy_gun + cost = 900 + unit_name = "energy gun" + export_types = list(/obj/item/weapon/gun/energy/gun) + + +/datum/export/weapon/wt550 + cost = 1400 + unit_name = "WT-550 automatic rifle" + export_types = list(/obj/item/weapon/gun/projectile/automatic/wt550) + +/datum/export/weapon/shotgun + cost = 350 + unit_name = "combat shotgun" + export_types = list(/obj/item/weapon/gun/projectile/shotgun/automatic/combat) + + +/datum/export/weapon/flashbang + cost = 15 + unit_name = "flashbang grenade" + export_types = list(/obj/item/weapon/grenade/flashbang) + +/datum/export/weapon/teargas + cost = 15 + unit_name = "tear gas grenade" + export_types = list(/obj/item/weapon/grenade/chem_grenade/teargas) + + +/datum/export/weapon/flash + cost = 10 + unit_name = "handheld flash" + export_types = list(/obj/item/device/assembly/flash) + include_subtypes = TRUE + +/datum/export/weapon/handcuffs + cost = 3 + unit_name = "pair" + message = "of handcuffs" + export_types = list(/obj/item/weapon/restraints/handcuffs) \ No newline at end of file diff --git a/code/modules/cargo/order.dm b/code/modules/cargo/order.dm new file mode 100644 index 0000000..44f0714 --- /dev/null +++ b/code/modules/cargo/order.dm @@ -0,0 +1,97 @@ +/obj/item/weapon/paper/manifest + var/order_cost = 0 + var/order_id = 0 + var/errors = 0 + +/obj/item/weapon/paper/manifest/New(atom/A, id, cost) + ..() + order_id = id + order_cost = cost + + if(prob(MANIFEST_ERROR_CHANCE)) + errors |= MANIFEST_ERROR_NAME + if(prob(MANIFEST_ERROR_CHANCE)) + errors |= MANIFEST_ERROR_CONTENTS + if(prob(MANIFEST_ERROR_CHANCE)) + errors |= MANIFEST_ERROR_ITEM + +/obj/item/weapon/paper/manifest/proc/is_approved() + return stamped && stamped.len && !is_denied() + +/obj/item/weapon/paper/manifest/proc/is_denied() + return stamped && (/obj/item/weapon/stamp/denied in stamped) + +/datum/supply_order + var/id + var/orderer + var/orderer_rank + var/orderer_ckey + var/reason + var/datum/supply_pack/pack + +/datum/supply_order/New(datum/supply_pack/pack, orderer, orderer_rank, orderer_ckey, reason) + id = SSshuttle.ordernum++ + src.pack = pack + src.orderer = orderer + src.orderer_rank = orderer_rank + src.orderer_ckey = orderer_ckey + src.reason = reason + +/datum/supply_order/proc/generateRequisition(turf/T) + var/obj/item/weapon/paper/P = new(T) + + P.name = "requisition form - #[id] ([pack.name])" + P.info += "

    [station_name()] Supply Requisition

    " + P.info += "
    " + P.info += "Order #[id]
    " + P.info += "Item: [pack.name]
    " + P.info += "Access Restrictions: [get_access_desc(pack.access)]
    " + P.info += "Requested by: [orderer]
    " + P.info += "Rank: [orderer_rank]
    " + P.info += "Comment: [reason]
    " + + P.update_icon() + return P + +/datum/supply_order/proc/generateManifest(obj/structure/closet/crate/C) + var/obj/item/weapon/paper/manifest/P = new(C, id, pack.cost) + + var/station_name = (P.errors & MANIFEST_ERROR_NAME) ? new_station_name() : station_name() + + P.name = "shipping manifest - #[id] ([pack.name])" + P.info += "

    [command_name()] Shipping Manifest

    " + P.info += "
    " + P.info += "Order #[id]
    " + P.info += "Destination: [station_name]
    " + P.info += "Item: [pack.name]
    " + P.info += "Contents:
    " + P.info += "
      " + for(var/atom/movable/AM in C.contents - P) + if((P.errors & MANIFEST_ERROR_CONTENTS)) + if(prob(50)) + P.info += "
    • [AM.name]
    • " + else + continue + P.info += "
    • [AM.name]
    • " + P.info += "
    " + P.info += "

    Stamp below to confirm receipt of goods:

    " + + P.update_icon() + P.loc = C + C.manifest = P + C.update_icon() + + return P + +/datum/supply_order/proc/generate(turf/T) + var/obj/structure/closet/crate/C = pack.generate(T) + var/obj/item/weapon/paper/manifest/M = generateManifest(C) + + if(M.errors & MANIFEST_ERROR_ITEM) + if(istype(C, /obj/structure/closet/crate/secure) || istype(C, /obj/structure/closet/crate/large)) + M.errors &= ~MANIFEST_ERROR_ITEM + else + var/lost = max(round(C.contents.len / 10), 1) + while(--lost >= 0) + qdel(pick(C.contents)) + return C diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm new file mode 100644 index 0000000..f6e09e0 --- /dev/null +++ b/code/modules/cargo/packs.dm @@ -0,0 +1,1702 @@ +datum/supply_pack + var/name = "Crate" + var/group = "" + var/hidden = FALSE + var/contraband = FALSE + var/cost = 700 // Minimum cost, or infinite points are possible. + var/access = FALSE + var/access_any = FALSE + var/list/contains = null + var/crate_name = "crate" + var/crate_type = /obj/structure/closet/crate + var/dangerous = FALSE // Should we message admins? + var/special = FALSE //Event/Station Goals/Admin enabled packs + var/special_enabled = FALSE + +/datum/supply_pack/proc/generate(turf/T) + var/obj/structure/closet/crate/C = new crate_type(T) + C.name = crate_name + if(access) + C.req_access = list(access) + if(access_any) + C.req_one_access = access_any + + fill(C) + + return C + +/datum/supply_pack/proc/fill(obj/structure/closet/crate/C) + for(var/item in contains) + new item(C) + + +////////////////////////////////////////////////////////////////////////////// +//////////////////////////// Emergency /////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// + +/datum/supply_pack/emergency + group = "Emergency" + +/datum/supply_pack/emergency/vehicle + name = "Biker Gang Kit" //TUNNEL SNAKES OWN THIS TOWN + cost = 2000 + contraband = TRUE + contains = list(/obj/vehicle/atv, + /obj/item/key, + /obj/item/clothing/suit/jacket/leather/overcoat, + /obj/item/clothing/mask/bandana/skull)//so you can properly #cargoniabikergang + crate_name = "ATV crate" + crate_type = /obj/structure/closet/crate/large + +/datum/supply_pack/emergency/equipment + name = "Emergency Equipment" + cost = 3500 + contains = list(/mob/living/simple_animal/bot/floorbot, + /mob/living/simple_animal/bot/floorbot, + /mob/living/simple_animal/bot/medbot, + /mob/living/simple_animal/bot/medbot, + /obj/item/weapon/tank/internals/air, + /obj/item/weapon/tank/internals/air, + /obj/item/weapon/tank/internals/air, + /obj/item/weapon/tank/internals/air, + /obj/item/weapon/tank/internals/air, + /obj/item/clothing/mask/gas, + /obj/item/clothing/mask/gas, + /obj/item/clothing/mask/gas, + /obj/item/clothing/mask/gas, + /obj/item/clothing/mask/gas) + crate_name = "emergency crate" + crate_type = /obj/structure/closet/crate/internals + +/datum/supply_pack/emergency/internals + name = "Internals Crate" + cost = 1000 + contains = list(/obj/item/clothing/mask/gas, + /obj/item/clothing/mask/gas, + /obj/item/clothing/mask/gas, + /obj/item/clothing/mask/breath, + /obj/item/clothing/mask/breath, + /obj/item/clothing/mask/breath, + /obj/item/weapon/tank/internals/emergency_oxygen, + /obj/item/weapon/tank/internals/emergency_oxygen, + /obj/item/weapon/tank/internals/emergency_oxygen, + /obj/item/weapon/tank/internals/air, + /obj/item/weapon/tank/internals/air, + /obj/item/weapon/tank/internals/air) + crate_name = "internals crate" + crate_type = /obj/structure/closet/crate/internals + +/datum/supply_pack/emergency/firefighting + name = "Firefighting Crate" + cost = 1000 + contains = list(/obj/item/clothing/suit/fire/firefighter, + /obj/item/clothing/suit/fire/firefighter, + /obj/item/clothing/mask/gas, + /obj/item/clothing/mask/gas, + /obj/item/device/flashlight, + /obj/item/device/flashlight, + /obj/item/weapon/tank/internals/oxygen/red, + /obj/item/weapon/tank/internals/oxygen/red, + /obj/item/weapon/extinguisher, + /obj/item/weapon/extinguisher, + /obj/item/clothing/head/hardhat/red, + /obj/item/clothing/head/hardhat/red) + crate_name = "firefighting crate" + +/datum/supply_pack/emergency/atmostank + name = "Firefighting Watertank" + cost = 1000 + access = access_atmospherics + contains = list(/obj/item/weapon/watertank/atmos) + crate_name = "firefighting watertank crate" + crate_type = /obj/structure/closet/crate/secure + +/datum/supply_pack/emergency/radiation + name = "Radiation Protection Crate" + cost = 1000 + contains = list(/obj/item/clothing/head/radiation, + /obj/item/clothing/head/radiation, + /obj/item/clothing/suit/radiation, + /obj/item/clothing/suit/radiation) + crate_name = "radiation protection crate" + crate_type = /obj/structure/closet/crate/radiation + +/datum/supply_pack/emergency/weedcontrol + name = "Weed Control Crate" + cost = 1500 + access = access_hydroponics + contains = list(/obj/item/weapon/scythe, + /obj/item/clothing/mask/gas, + /obj/item/weapon/grenade/chem_grenade/antiweed, + /obj/item/weapon/grenade/chem_grenade/antiweed) + crate_name = "weed control crate" + crate_type = /obj/structure/closet/crate/secure/hydroponics + +/datum/supply_pack/emergency/metalfoam + name = "Metal Foam Grenade Crate" + cost = 1000 + contains = list(/obj/item/weapon/storage/box/metalfoam) + crate_name = "metal foam grenade crate" + +/datum/supply_pack/emergency/droneshells + name = "Drone Shell Crate" + cost = 1000 + contains = list(/obj/item/drone_shell, + /obj/item/drone_shell, + /obj/item/drone_shell) + crate_name = "drone shell crate" + +/datum/supply_pack/emergency/specialops + name = "Special Ops Supplies" + hidden = TRUE + cost = 2000 + contains = list(/obj/item/weapon/storage/box/emps, + /obj/item/weapon/grenade/smokebomb, + /obj/item/weapon/grenade/smokebomb, + /obj/item/weapon/grenade/smokebomb, + /obj/item/weapon/pen/sleepy, + /obj/item/weapon/grenade/chem_grenade/incendiary) + crate_name = "emergency crate" + crate_type = /obj/structure/closet/crate/internals + +/datum/supply_pack/emergency/syndicate + name = "NULL_ENTRY" + hidden = TRUE + cost = 14000 + contains = list() + crate_name = "emergency crate" + crate_type = /obj/structure/closet/crate/internals + dangerous = TRUE + +/datum/supply_pack/emergency/syndicate/fill(obj/structure/closet/crate/C) + var/crate_value = 50 + var/list/uplink_items = get_uplink_items(ticker.mode) + while(crate_value) + var/category = pick(uplink_items) + var/item = pick(uplink_items[category]) + var/datum/uplink_item/I = uplink_items[category][item] + + if(!I.surplus || prob(100 - I.surplus)) + continue + if(crate_value < I.cost) + continue + crate_value -= I.cost + new I.item(C) + +////////////////////////////////////////////////////////////////////////////// +//////////////////////////// Security //////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// + +/datum/supply_pack/security + group = "Security" + access = access_security + crate_type = /obj/structure/closet/crate/secure/gear + +/datum/supply_pack/security/supplies + name = "Security Supplies Crate" + cost = 1000 + contains = list(/obj/item/weapon/storage/box/flashbangs, + /obj/item/weapon/storage/box/teargas, + /obj/item/weapon/storage/box/flashes, + /obj/item/weapon/storage/box/handcuffs) + crate_name = "security supply crate" + +/datum/supply_pack/security/helmets + name = "Helmets Crate" + cost = 1000 + contains = list(/obj/item/clothing/head/helmet/sec, + /obj/item/clothing/head/helmet/sec, + /obj/item/clothing/head/helmet/sec) + crate_name = "helmet crate" + +/datum/supply_pack/security/armor + name = "Armor Crate" + cost = 1000 + contains = list(/obj/item/clothing/suit/armor/vest, + /obj/item/clothing/suit/armor/vest, + /obj/item/clothing/suit/armor/vest) + crate_name = "armor crate" + +/datum/supply_pack/security/baton + name = "Stun Batons Crate" + cost = 1000 + contains = list(/obj/item/weapon/melee/baton/loaded, + /obj/item/weapon/melee/baton/loaded, + /obj/item/weapon/melee/baton/loaded) + crate_name = "stun baton crate" + +/datum/supply_pack/security/wall_flash + name = "Wall-Mounted Flash Crate" + cost = 1000 + contains = list(/obj/item/weapon/storage/box/wall_flash, + /obj/item/weapon/storage/box/wall_flash, + /obj/item/weapon/storage/box/wall_flash, + /obj/item/weapon/storage/box/wall_flash) + crate_name = "wall-mounted flash crate" + +/datum/supply_pack/security/laser + name = "Lasers Crate" + cost = 1500 + contains = list(/obj/item/weapon/gun/energy/laser, + /obj/item/weapon/gun/energy/laser, + /obj/item/weapon/gun/energy/laser) + crate_name = "laser crate" + +/datum/supply_pack/security/taser + name = "Taser Crate" + cost = 1500 + contains = list(/obj/item/weapon/gun/energy/gun/advtaser, + /obj/item/weapon/gun/energy/gun/advtaser, + /obj/item/weapon/gun/energy/gun/advtaser) + crate_name = "taser crate" + +/datum/supply_pack/security/disabler + name = "Disabler Crate" + cost = 1000 + contains = list(/obj/item/weapon/gun/energy/disabler, + /obj/item/weapon/gun/energy/disabler, + /obj/item/weapon/gun/energy/disabler) + crate_name = "disabler crate" + +/datum/supply_pack/security/forensics + name = "Forensics Crate" + cost = 2000 + contains = list(/obj/item/device/detective_scanner, + /obj/item/weapon/storage/box/evidence, + /obj/item/device/camera, + /obj/item/device/taperecorder, + /obj/item/toy/crayon/white, + /obj/item/clothing/head/det_hat) + crate_name = "forensics crate" + +/datum/supply_pack/security/armory + access = access_armory + crate_type = /obj/structure/closet/crate/secure/weapon + +/datum/supply_pack/security/armory/riothelmets + name = "Riot Helmets Crate" + cost = 1500 + contains = list(/obj/item/clothing/head/helmet/riot, + /obj/item/clothing/head/helmet/riot, + /obj/item/clothing/head/helmet/riot) + crate_name = "riot helmets crate" + +/datum/supply_pack/security/armory/riotarmor + name = "Riot Armor Crate" + cost = 1500 + contains = list(/obj/item/clothing/suit/armor/riot, + /obj/item/clothing/suit/armor/riot, + /obj/item/clothing/suit/armor/riot) + crate_name = "riot armor crate" + +/datum/supply_pack/security/armory/riotshields + name = "Riot Shields Crate" + cost = 2000 + contains = list(/obj/item/weapon/shield/riot, + /obj/item/weapon/shield/riot, + /obj/item/weapon/shield/riot) + crate_name = "riot shields crate" + +/datum/supply_pack/security/armory/bulletarmor + name = "Bulletproof Armor Crate" + cost = 1500 + contains = list(/obj/item/clothing/suit/armor/bulletproof, + /obj/item/clothing/suit/armor/bulletproof, + /obj/item/clothing/suit/armor/bulletproof) + crate_name = "bulletproof armor crate" + +/datum/supply_pack/security/armory/swat + name = "SWAT Crate" + cost = 6000 + contains = list(/obj/item/clothing/head/helmet/swat/nanotrasen, + /obj/item/clothing/head/helmet/swat/nanotrasen, + /obj/item/clothing/suit/space/swat, + /obj/item/clothing/suit/space/swat, + /obj/item/clothing/mask/gas/sechailer/swat, + /obj/item/clothing/mask/gas/sechailer/swat, + /obj/item/weapon/storage/belt/military/assault, + /obj/item/weapon/storage/belt/military/assault, + /obj/item/clothing/gloves/combat, + /obj/item/clothing/gloves/combat) + crate_name = "swat crate" + +/datum/supply_pack/security/armory/combatknives + name = "Combat Knives Crate" + cost = 3000 + contains = list(/obj/item/weapon/kitchen/knife/combat, + /obj/item/weapon/kitchen/knife/combat, + /obj/item/weapon/kitchen/knife/combat) + crate_name = "combat knife crate" + +/datum/supply_pack/security/armory/laserarmor + name = "Reflector Vest Crate" + cost = 2000 + contains = list(/obj/item/clothing/suit/armor/laserproof, + /obj/item/clothing/suit/armor/laserproof) + crate_name = "reflector vest crate" + crate_type = /obj/structure/closet/crate/secure/plasma + +/datum/supply_pack/security/armory/ballistic + name = "Combat Shotguns Crate" + cost = 2000 + contains = list(/obj/item/weapon/gun/projectile/shotgun/automatic/combat, + /obj/item/weapon/gun/projectile/shotgun/automatic/combat, + /obj/item/weapon/gun/projectile/shotgun/automatic/combat, + /obj/item/weapon/storage/belt/bandolier, + /obj/item/weapon/storage/belt/bandolier, + /obj/item/weapon/storage/belt/bandolier) + crate_name = "combat shotguns crate" + +/datum/supply_pack/security/armory/energy + name = "Energy Guns Crate" + cost = 2500 + contains = list(/obj/item/weapon/gun/energy/gun, + /obj/item/weapon/gun/energy/gun) + crate_name = "energy gun crate" + crate_type = /obj/structure/closet/crate/secure/plasma + +/datum/supply_pack/security/armory/fire + name = "Incendiary Weapons Crate" + cost = 1500 + access = access_heads + contains = list(/obj/item/weapon/flamethrower/full, + /obj/item/weapon/tank/internals/plasma, + /obj/item/weapon/tank/internals/plasma, + /obj/item/weapon/tank/internals/plasma, + /obj/item/weapon/grenade/chem_grenade/incendiary, + /obj/item/weapon/grenade/chem_grenade/incendiary, + /obj/item/weapon/grenade/chem_grenade/incendiary) + crate_name = "incendiary weapons crate" + crate_type = /obj/structure/closet/crate/secure/plasma + dangerous = TRUE + +/datum/supply_pack/security/armory/wt550 + name = "WT-550 Auto Rifle Crate" + cost = 3500 + contains = list(/obj/item/weapon/gun/projectile/automatic/wt550, + /obj/item/weapon/gun/projectile/automatic/wt550) + crate_name = "auto rifle crate" + +/datum/supply_pack/security/armory/wt550ammo + name = "WT-550 Auto Rifle Ammo Crate" + cost = 3000 + contains = list(/obj/item/ammo_box/magazine/wt550m9, + /obj/item/ammo_box/magazine/wt550m9, + /obj/item/ammo_box/magazine/wt550m9, + /obj/item/ammo_box/magazine/wt550m9) + crate_name = "auto rifle ammo crate" + +/datum/supply_pack/security/armory/mindshield + name = "mindshield implants Crate" + cost = 4000 + contains = list(/obj/item/weapon/storage/lockbox/loyalty) + crate_name = "mindshield implant crate" + +/datum/supply_pack/security/armory/trackingimp + name = "Tracking Implants Crate" + cost = 2000 + contains = list(/obj/item/weapon/storage/box/trackimp) + crate_name = "tracking implant crate" + +/datum/supply_pack/security/armory/chemimp + name = "Chemical Implants Crate" + cost = 2000 + contains = list(/obj/item/weapon/storage/box/chemimp) + crate_name = "chemical implant crate" + +/datum/supply_pack/security/armory/exileimp + name = "Exile Implants Crate" + cost = 3000 + contains = list(/obj/item/weapon/storage/box/exileimp) + crate_name = "exile implant crate" + +/datum/supply_pack/security/securitybarriers + name = "Security Barriers Crate" + contains = list(/obj/item/weapon/grenade/barrier, + /obj/item/weapon/grenade/barrier, + /obj/item/weapon/grenade/barrier, + /obj/item/weapon/grenade/barrier) + cost = 2000 + crate_name = "security barriers crate" + +/datum/supply_pack/security/firingpins + name = "Standard Firing Pins Crate" + cost = 1000 + contains = list(/obj/item/weapon/storage/box/firingpins, + /obj/item/weapon/storage/box/firingpins) + crate_name = "firing pins crate" + +/datum/supply_pack/security/securityclothes + name = "Security Clothing Crate" + cost = 3000 + contains = list(/obj/item/clothing/under/rank/security/navyblue, + /obj/item/clothing/under/rank/security/navyblue, + /obj/item/clothing/suit/security/officer, + /obj/item/clothing/suit/security/officer, + /obj/item/clothing/head/beret/sec/navyofficer, + /obj/item/clothing/head/beret/sec/navyofficer, + /obj/item/clothing/under/rank/warden/navyblue, + /obj/item/clothing/suit/security/warden, + /obj/item/clothing/head/beret/sec/navywarden, + /obj/item/clothing/under/rank/head_of_security/navyblue, + /obj/item/clothing/suit/security/hos, + /obj/item/clothing/head/beret/sec/navyhos) + crate_name = "security clothing crate" + +/datum/supply_pack/security/justiceinbound + name = "Standard Justice Enforcer Crate" + cost = 6000 //justice comes at a price. An expensive, noisy price. + contraband = TRUE + contains = list(/obj/item/clothing/head/helmet/justice, + /obj/item/clothing/mask/gas/sechailer) + crate_name = "security clothing crate" + +////////////////////////////////////////////////////////////////////////////// +//////////////////////////// Engineering ///////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// + +/datum/supply_pack/engineering + group = "Engineering" + crate_type = /obj/structure/closet/crate/engineering + +/datum/supply_pack/engineering/fueltank + name = "Fuel Tank Crate" + cost = 800 + contains = list(/obj/structure/reagent_dispensers/fueltank) + crate_name = "fuel tank crate" + crate_type = /obj/structure/closet/crate/large + +/datum/supply_pack/engineering/oxygen + name = "Oxygen Canister" + cost = 1500 + contains = list(/obj/machinery/portable_atmospherics/canister/oxygen) + crate_name = "oxygen canister crate" + crate_type = /obj/structure/closet/crate/large + +/datum/supply_pack/engineering/nitrogen + name = "Nitrogen Canister" + cost = 2000 + contains = list(/obj/machinery/portable_atmospherics/canister/nitrogen) + crate_name = "nitrogen canister crate" + crate_type = /obj/structure/closet/crate/large + +/datum/supply_pack/engineering/carbon_dio + name = "Carbon Dioxide Canister" + cost = 3000 + contains = list(/obj/machinery/portable_atmospherics/canister/carbon_dioxide) + crate_name = "carbon dioxide canister crate" + crate_type = /obj/structure/closet/crate/large + +/datum/supply_pack/science/nitrous_oxide_canister + name = "Nitrous Oxide Canister" + cost = 3000 + access = access_atmospherics + contains = list(/obj/machinery/portable_atmospherics/canister/nitrous_oxide) + crate_name = "nitrous oxide canister crate" + crate_type = /obj/structure/closet/crate/secure + +/datum/supply_pack/engineering/tools + name = "Toolbox Crate" + contains = list(/obj/item/weapon/storage/toolbox/electrical, + /obj/item/weapon/storage/toolbox/electrical, + /obj/item/weapon/storage/toolbox/mechanical, + /obj/item/weapon/storage/toolbox/electrical, + /obj/item/weapon/storage/toolbox/mechanical, + /obj/item/weapon/storage/toolbox/mechanical) + cost = 1000 + crate_name = "toolbox crate" + +/datum/supply_pack/engineering/powergamermitts + name = "Insulated Gloves Crate" + cost = 2000 //Made of pure-grade bullshittinium + contains = list(/obj/item/clothing/gloves/color/yellow, + /obj/item/clothing/gloves/color/yellow, + /obj/item/clothing/gloves/color/yellow) + crate_name = "insulated gloves crate" + +/datum/supply_pack/engineering/power + name = "Powercell Crate" + cost = 1000 + contains = list(/obj/item/weapon/stock_parts/cell/high, + /obj/item/weapon/stock_parts/cell/high, + /obj/item/weapon/stock_parts/cell/high) + crate_name = "electrical maintenance crate" + crate_type = /obj/structure/closet/crate/engineering/electrical + +/datum/supply_pack/engineering/engiequipment + name = "Engineering Gear Crate" + cost = 1300 + contains = list(/obj/item/weapon/storage/belt/utility, + /obj/item/weapon/storage/belt/utility, + /obj/item/weapon/storage/belt/utility, + /obj/item/clothing/suit/hazardvest, + /obj/item/clothing/suit/hazardvest, + /obj/item/clothing/suit/hazardvest, + /obj/item/clothing/head/welding, + /obj/item/clothing/head/welding, + /obj/item/clothing/head/welding, + /obj/item/clothing/head/hardhat, + /obj/item/clothing/head/hardhat, + /obj/item/clothing/head/hardhat, + /obj/item/clothing/glasses/meson/engine, + /obj/item/clothing/glasses/meson/engine) + crate_name = "engineering gear crate" + +/datum/supply_pack/engineering/engine/spacesuit + name = "Space Suit Crate" + cost = 3000 + access = access_eva + contains = list(/obj/item/clothing/suit/space, + /obj/item/clothing/suit/space, + /obj/item/clothing/head/helmet/space, + /obj/item/clothing/head/helmet/space, + /obj/item/clothing/mask/breath, + /obj/item/clothing/mask/breath) + crate_name = "space suit crate" + crate_type = /obj/structure/closet/crate/secure + +/datum/supply_pack/engineering/shieldgen + name = "Anti-breach Shield Projector Crate" + cost = 2500 + contains = list(/obj/machinery/shieldgen, + /obj/machinery/shieldgen) + crate_name = "anti-breach shield projector crate" + +/datum/supply_pack/engineering/grounding_rods + name = "Grounding Rod Crate" + cost = 1700 + contains = list(/obj/machinery/power/grounding_rod, + /obj/machinery/power/grounding_rod, + /obj/machinery/power/grounding_rod, + /obj/machinery/power/grounding_rod) + crate_name = "grounding rod crate" + crate_type = /obj/structure/closet/crate/engineering/electrical + +/datum/supply_pack/engineering/pacman + name = "P.A.C.M.A.N Generator Crate" + cost = 2500 + contains = list(/obj/machinery/power/port_gen/pacman) + crate_name = "PACMAN generator crate" + crate_type = /obj/structure/closet/crate/engineering/electrical + +/datum/supply_pack/engineering/solar + name = "Solar Panel Crate" + cost = 2000 + contains = list(/obj/item/solar_assembly, + /obj/item/solar_assembly, + /obj/item/solar_assembly, + /obj/item/solar_assembly, + /obj/item/solar_assembly, + /obj/item/solar_assembly, + /obj/item/solar_assembly, + /obj/item/solar_assembly, + /obj/item/solar_assembly, + /obj/item/solar_assembly, + /obj/item/solar_assembly, + /obj/item/solar_assembly, + /obj/item/solar_assembly, + /obj/item/solar_assembly, + /obj/item/solar_assembly, + /obj/item/solar_assembly, + /obj/item/solar_assembly, + /obj/item/solar_assembly, + /obj/item/solar_assembly, + /obj/item/solar_assembly, + /obj/item/solar_assembly, + /obj/item/weapon/circuitboard/computer/solar_control, + /obj/item/weapon/electronics/tracker, + /obj/item/weapon/paper/solar) + crate_name = "solar panel crate" + crate_type = /obj/structure/closet/crate/engineering/electrical + +/datum/supply_pack/engineering/engine + name = "Emitter Crate" + cost = 1500 + access = access_ce + contains = list(/obj/machinery/power/emitter, + /obj/machinery/power/emitter) + crate_name = "emitter crate" + crate_type = /obj/structure/closet/crate/secure/engineering + dangerous = TRUE + +/datum/supply_pack/engineering/engine/field_gen + name = "Field Generator Crate" + cost = 1500 + contains = list(/obj/machinery/field/generator, + /obj/machinery/field/generator) + crate_name = "field generator crate" + +/datum/supply_pack/engineering/engine/sing_gen + name = "Singularity Generator Crate" + cost = 5000 + contains = list(/obj/machinery/the_singularitygen) + crate_name = "singularity generator crate" + +/datum/supply_pack/engineering/engine/tesla_gen + name = "Tesla Generator Crate" + cost = 5000 + contains = list(/obj/machinery/the_singularitygen/tesla) + crate_name = "tesla generator crate" + +/datum/supply_pack/engineering/engine/collector + name = "Collector Crate" + cost = 2500 + contains = list(/obj/machinery/power/rad_collector, + /obj/machinery/power/rad_collector, + /obj/machinery/power/rad_collector) + crate_name = "collector crate" + +/datum/supply_pack/engineering/engine/PA + name = "Particle Accelerator Crate" + cost = 3000 + contains = list(/obj/structure/particle_accelerator/fuel_chamber, + /obj/machinery/particle_accelerator/control_box, + /obj/structure/particle_accelerator/particle_emitter/center, + /obj/structure/particle_accelerator/particle_emitter/left, + /obj/structure/particle_accelerator/particle_emitter/right, + /obj/structure/particle_accelerator/power_box, + /obj/structure/particle_accelerator/end_cap) + crate_name = "particle accelerator crate" + +/datum/supply_pack/engineering/engine/supermatter_shard + name = "Supermatter Shard Crate" + cost = 10000 + access = access_ce + contains = list(/obj/machinery/power/supermatter_shard) + crate_name = "supermatter shard crate" + crate_type = /obj/structure/closet/crate/secure/engineering + dangerous = TRUE + +/datum/supply_pack/engineering/engine/am_shielding + name = "Antimatter Shielding Crate" + cost = 2000 + contains = list(/obj/item/device/am_shielding_container, + /obj/item/device/am_shielding_container, + /obj/item/device/am_shielding_container, + /obj/item/device/am_shielding_container, + /obj/item/device/am_shielding_container, + /obj/item/device/am_shielding_container, + /obj/item/device/am_shielding_container, + /obj/item/device/am_shielding_container, + /obj/item/device/am_shielding_container, + /obj/item/device/am_shielding_container)//10 shields: 3x3 containment and a core + crate_name = "antimatter shielding crate" + +/datum/supply_pack/engineering/engine/am_core + name = "Antimatter Control Crate" + cost = 5000 + contains = list(/obj/machinery/power/am_control_unit) + crate_name = "antimatter control crate" + +/datum/supply_pack/engineering/engine/am_jar + name = "Antimatter Containment Jar Crate" + cost = 2000 + contains = list(/obj/item/weapon/am_containment, + /obj/item/weapon/am_containment) + crate_name = "antimatter jar crate" + +////////////////////////////////////////////////////////////////////////////// +//////////////////////////// Medical ///////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// + +/datum/supply_pack/medical + group = "Medical" + crate_type = /obj/structure/closet/crate/medical + +/datum/supply_pack/medical/supplies + name = "Medical Supplies Crate" + cost = 2000 + contains = list(/obj/item/weapon/reagent_containers/glass/bottle/charcoal, + /obj/item/weapon/reagent_containers/glass/bottle/charcoal, + /obj/item/weapon/reagent_containers/glass/bottle/epinephrine, + /obj/item/weapon/reagent_containers/glass/bottle/epinephrine, + /obj/item/weapon/reagent_containers/glass/bottle/morphine, + /obj/item/weapon/reagent_containers/glass/bottle/morphine, + /obj/item/weapon/reagent_containers/glass/bottle/morphine, + /obj/item/weapon/reagent_containers/glass/bottle/morphine, + /obj/item/weapon/reagent_containers/glass/bottle/morphine, + /obj/item/weapon/reagent_containers/glass/bottle/morphine, + /obj/item/weapon/reagent_containers/glass/bottle/toxin, + /obj/item/weapon/reagent_containers/glass/bottle/toxin, + /obj/item/weapon/reagent_containers/glass/beaker/large, + /obj/item/weapon/reagent_containers/glass/beaker/large, + /obj/item/weapon/reagent_containers/pill/insulin, + /obj/item/weapon/reagent_containers/pill/insulin, + /obj/item/weapon/reagent_containers/pill/insulin, + /obj/item/weapon/reagent_containers/pill/insulin, + /obj/item/stack/medical/gauze, + /obj/item/weapon/storage/box/beakers, + /obj/item/weapon/storage/box/syringes, + /obj/item/weapon/storage/box/bodybags) + crate_name = "medical supplies crate" + +/datum/supply_pack/medical/firstaid + name = "First Aid Kit Crate" + cost = 1000 + contains = list(/obj/item/weapon/storage/firstaid/regular, + /obj/item/weapon/storage/firstaid/regular, + /obj/item/weapon/storage/firstaid/regular, + /obj/item/weapon/storage/firstaid/regular) + crate_name = "first aid kit crate" + +/datum/supply_pack/medical/firstaidbruises + name = "Bruise Treatment Kit Crate" + cost = 1000 + contains = list(/obj/item/weapon/storage/firstaid/brute, + /obj/item/weapon/storage/firstaid/brute, + /obj/item/weapon/storage/firstaid/brute) + crate_name = "brute treatment kit crate" + +/datum/supply_pack/medical/firstaidburns + name = "Burn Treatment Kit Crate" + cost = 1000 + contains = list(/obj/item/weapon/storage/firstaid/fire, + /obj/item/weapon/storage/firstaid/fire, + /obj/item/weapon/storage/firstaid/fire) + crate_name = "burn treatment kit crate" + +/datum/supply_pack/medical/firstaidtoxins + name = "Toxin Treatment Kit Crate" + cost = 1000 + contains = list(/obj/item/weapon/storage/firstaid/toxin, + /obj/item/weapon/storage/firstaid/toxin, + /obj/item/weapon/storage/firstaid/toxin) + crate_name = "toxin treatment kit crate" + +/datum/supply_pack/medical/firstaidoxygen + name = "Oxygen Deprivation Kit Crate" + cost = 1000 + contains = list(/obj/item/weapon/storage/firstaid/o2, + /obj/item/weapon/storage/firstaid/o2, + /obj/item/weapon/storage/firstaid/o2) + crate_name = "oxygen deprivation kit crate" + +/datum/supply_pack/medical/virus + name = "Virus Crate" + cost = 2500 + access = access_cmo + contains = list(/obj/item/weapon/reagent_containers/glass/bottle/flu_virion, + /obj/item/weapon/reagent_containers/glass/bottle/cold, + /obj/item/weapon/reagent_containers/glass/bottle/epiglottis_virion, + /obj/item/weapon/reagent_containers/glass/bottle/liver_enhance_virion, + /obj/item/weapon/reagent_containers/glass/bottle/fake_gbs, + /obj/item/weapon/reagent_containers/glass/bottle/magnitis, + /obj/item/weapon/reagent_containers/glass/bottle/pierrot_throat, + /obj/item/weapon/reagent_containers/glass/bottle/brainrot, + /obj/item/weapon/reagent_containers/glass/bottle/hullucigen_virion, + /obj/item/weapon/reagent_containers/glass/bottle/anxiety, + /obj/item/weapon/reagent_containers/glass/bottle/beesease, + /obj/item/weapon/storage/box/syringes, + /obj/item/weapon/storage/box/beakers, + /obj/item/weapon/reagent_containers/glass/bottle/mutagen) + crate_name = "virus crate" + crate_type = /obj/structure/closet/crate/secure/plasma + dangerous = TRUE + +/datum/supply_pack/medical/bloodpacks + name = "Blood Pack Variety Crate" + cost = 3500 + contains = list(/obj/item/weapon/reagent_containers/blood/empty, + /obj/item/weapon/reagent_containers/blood/empty, + /obj/item/weapon/reagent_containers/blood/APlus, + /obj/item/weapon/reagent_containers/blood/AMinus, + /obj/item/weapon/reagent_containers/blood/BPlus, + /obj/item/weapon/reagent_containers/blood/BMinus, + /obj/item/weapon/reagent_containers/blood/OPlus, + /obj/item/weapon/reagent_containers/blood/OMinus) + crate_name = "blood freezer" + crate_type = /obj/structure/closet/crate/freezer + +/datum/supply_pack/medical/iv_drip + name = "IV Drip Crate" + cost = 1000 + contains = list(/obj/machinery/iv_drip) + crate_name = "iv drip crate" + +/datum/supply_pack/medical/defibs + name = "Defibrillator Crate" + cost = 2500 + contains = list(/obj/item/weapon/defibrillator/loaded, + /obj/item/weapon/defibrillator/loaded) + crate_name = "defibrillator crate" + +////////////////////////////////////////////////////////////////////////////// +//////////////////////////// Science ///////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// + +/datum/supply_pack/science + group = "Science" + +/datum/supply_pack/science/robotics + name = "Robotics Assembly Crate" + cost = 1000 + access = access_robotics + contains = list(/obj/item/device/assembly/prox_sensor, + /obj/item/device/assembly/prox_sensor, + /obj/item/device/assembly/prox_sensor, + /obj/item/weapon/storage/toolbox/electrical, + /obj/item/weapon/storage/box/flashes, + /obj/item/weapon/stock_parts/cell/high, + /obj/item/weapon/stock_parts/cell/high) + crate_name = "robotics assembly crate" + crate_type = /obj/structure/closet/crate/secure + +/datum/supply_pack/science/robotics/mecha_ripley + name = "Circuit Crate (Ripley APLU)" + cost = 3000 + access = access_robotics + contains = list(/obj/item/weapon/book/manual/ripley_build_and_repair, + /obj/item/weapon/circuitboard/mecha/ripley/main, + /obj/item/weapon/circuitboard/mecha/ripley/peripherals) + crate_name = "\improper APLU Ripley circuit crate" + crate_type = /obj/structure/closet/crate/secure + +/datum/supply_pack/science/robotics/mecha_odysseus + name = "Circuit Crate (Odysseus)" + cost = 2500 + access = access_robotics + contains = list(/obj/item/weapon/circuitboard/mecha/odysseus/peripherals, + /obj/item/weapon/circuitboard/mecha/odysseus/main) + crate_name = "\improper Odysseus circuit crate" + crate_type = /obj/structure/closet/crate/secure + +/datum/supply_pack/science/plasma + name = "Plasma Assembly Crate" + cost = 1000 + access = access_tox_storage + contains = list(/obj/item/weapon/tank/internals/plasma, + /obj/item/weapon/tank/internals/plasma, + /obj/item/weapon/tank/internals/plasma, + /obj/item/device/assembly/igniter, + /obj/item/device/assembly/igniter, + /obj/item/device/assembly/igniter, + /obj/item/device/assembly/prox_sensor, + /obj/item/device/assembly/prox_sensor, + /obj/item/device/assembly/prox_sensor, + /obj/item/device/assembly/timer, + /obj/item/device/assembly/timer, + /obj/item/device/assembly/timer) + crate_name = "plasma assembly crate" + crate_type = /obj/structure/closet/crate/secure/plasma + +/datum/supply_pack/science/shieldwalls + name = "Shield Generators" + cost = 2000 + access = access_teleporter + contains = list(/obj/machinery/shieldwallgen, + /obj/machinery/shieldwallgen, + /obj/machinery/shieldwallgen, + /obj/machinery/shieldwallgen) + crate_name = "shield generators crate" + crate_type = /obj/structure/closet/crate/secure + +/datum/supply_pack/science/transfer_valves + name = "Tank Transfer Valves Crate" + cost = 6000 + access = access_rd + contains = list(/obj/item/device/transfer_valve, + /obj/item/device/transfer_valve) + crate_name = "tank transfer valves crate" + crate_type = /obj/structure/closet/crate/secure + dangerous = TRUE + +/datum/supply_pack/science/bz_canister + name = "BZ Canister" + cost = 4000 + access_any = list(access_rd, access_atmospherics) + contains = list(/obj/machinery/portable_atmospherics/canister/bz) + crate_name = "bz canister crate" + crate_type = /obj/structure/closet/crate/secure + dangerous = TRUE + +/datum/supply_pack/science/freon_canister + name = "Freon Canister" + cost = 6000 + access_any = list(access_rd, access_atmospherics) + contains = list(/obj/machinery/portable_atmospherics/canister/freon) + crate_name = "freon canister crate" + crate_type = /obj/structure/closet/crate/secure + dangerous = TRUE + +/datum/supply_pack/science/research + name = "Machine Prototype Crate" + cost = 8000 + access = access_research + contains = list(/obj/item/device/machineprototype) + crate_name = "machine prototype crate" + crate_type = /obj/structure/closet/crate/secure + +/datum/supply_pack/science/tablets + name = "Tablet Crate" + cost = 5000 + contains = list(/obj/item/device/modular_computer/tablet/preset/cargo, + /obj/item/device/modular_computer/tablet/preset/cargo, + /obj/item/device/modular_computer/tablet/preset/cargo, + /obj/item/device/modular_computer/tablet/preset/cargo, + /obj/item/device/modular_computer/tablet/preset/cargo) + crate_name = "tablet crate" + +////////////////////////////////////////////////////////////////////////////// +//////////////////////////// Organic ///////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// + +/datum/supply_pack/organic + group = "Food & Livestock" + crate_type = /obj/structure/closet/crate/freezer + +/datum/supply_pack/organic/food + name = "Food Crate" + cost = 1000 + contains = list(/obj/item/weapon/reagent_containers/food/condiment/flour, + /obj/item/weapon/reagent_containers/food/condiment/rice, + /obj/item/weapon/reagent_containers/food/condiment/milk, + /obj/item/weapon/reagent_containers/food/condiment/soymilk, + /obj/item/weapon/reagent_containers/food/condiment/saltshaker, + /obj/item/weapon/reagent_containers/food/condiment/peppermill, + /obj/item/weapon/storage/fancy/egg_box, + /obj/item/weapon/reagent_containers/food/condiment/enzyme, + /obj/item/weapon/reagent_containers/food/condiment/sugar, + /obj/item/weapon/reagent_containers/food/snacks/meat/slab/monkey, + /obj/item/weapon/reagent_containers/food/snacks/grown/banana, + /obj/item/weapon/reagent_containers/food/snacks/grown/banana, + /obj/item/weapon/reagent_containers/food/snacks/grown/banana) + crate_name = "food crate" + +/datum/supply_pack/organic/pizza + name = "Pizza Crate" + cost = 6000 // Best prices this side of the galaxy. + contains = list(/obj/item/pizzabox/margherita, + /obj/item/pizzabox/mushroom, + /obj/item/pizzabox/meat, + /obj/item/pizzabox/vegetable) + crate_name = "pizza crate" + +/datum/supply_pack/organic/cream_piee + name = "High-yield Clown-grade Cream Pie Crate" + cost = 6000 + contains = list(/obj/item/weapon/storage/backpack/dufflebag/clown/cream_pie) + crate_name = "party equipment crate" + contraband = TRUE + access = access_theatre + +/datum/supply_pack/organic/monkey + name = "Monkey Crate" + cost = 2000 + contains = list (/obj/item/weapon/storage/box/monkeycubes) + crate_name = "monkey crate" + +/datum/supply_pack/organic/party + name = "Party Equipment" + cost = 2000 + contains = list(/obj/item/weapon/storage/box/drinkingglasses, + /obj/item/weapon/reagent_containers/food/drinks/shaker, + /obj/item/weapon/reagent_containers/food/drinks/bottle/patron, + /obj/item/weapon/reagent_containers/food/drinks/bottle/goldschlager, + /obj/item/weapon/reagent_containers/food/drinks/ale, + /obj/item/weapon/reagent_containers/food/drinks/ale, + /obj/item/weapon/reagent_containers/food/drinks/beer, + /obj/item/weapon/reagent_containers/food/drinks/beer, + /obj/item/weapon/reagent_containers/food/drinks/beer, + /obj/item/weapon/reagent_containers/food/drinks/beer) + crate_name = "party equipment crate" + +/datum/supply_pack/organic/critter + crate_type = /obj/structure/closet/crate/critter + +/datum/supply_pack/organic/critter/cow + name = "Cow Crate" + cost = 3000 + contains = list(/mob/living/simple_animal/cow) + crate_name = "cow crate" + +/datum/supply_pack/organic/critter/goat + name = "Goat Crate" + cost = 2500 + contains = list(/mob/living/simple_animal/hostile/retaliate/goat) + crate_name = "goat crate" + +/datum/supply_pack/organic/critter/chick + name = "Chicken Crate" + cost = 2000 + contains = list( /mob/living/simple_animal/chick) + crate_name = "chicken crate" + +/datum/supply_pack/organic/critter/corgi + name = "Corgi Crate" + cost = 5000 + contains = list(/mob/living/simple_animal/pet/dog/corgi, + /obj/item/clothing/neck/petcollar) + crate_name = "corgi crate" + +/datum/supply_pack/organic/critter/corgi/generate() + . = ..() + if(prob(50)) + var/mob/living/simple_animal/pet/dog/corgi/D = locate() in . + qdel(D) + new /mob/living/simple_animal/pet/dog/corgi/Lisa(.) + +/datum/supply_pack/organic/critter/cat + name = "Cat Crate" + cost = 5000 //Cats are worth as much as corgis. + contains = list(/mob/living/simple_animal/pet/cat, + /obj/item/clothing/neck/petcollar, + /obj/item/toy/cattoy) + crate_name = "cat crate" + +/datum/supply_pack/organic/critter/cat/generate() + . = ..() + if(prob(50)) + var/mob/living/simple_animal/pet/cat/C = locate() in . + qdel(C) + new /mob/living/simple_animal/pet/cat/Proc(.) + +/datum/supply_pack/organic/critter/pug + name = "Pug Crate" + cost = 5000 + contains = list(/mob/living/simple_animal/pet/dog/pug, + /obj/item/clothing/neck/petcollar) + crate_name = "pug crate" + +/datum/supply_pack/organic/critter/fox + name = "Fox Crate" + cost = 5000 + contains = list(/mob/living/simple_animal/pet/fox, + /obj/item/clothing/neck/petcollar) + crate_name = "fox crate" + +/datum/supply_pack/organic/critter/butterfly + name = "Butterflies Crate" + contraband = TRUE + cost = 5000 + contains = list(/mob/living/simple_animal/butterfly) + crate_name = "entomology samples crate" + +/datum/supply_pack/organic/critter/butterfly/generate() + . = ..() + for(var/i in 1 to 49) + new /mob/living/simple_animal/butterfly(.) + +/datum/supply_pack/organic/hydroponics + name = "Hydroponics Crate" + cost = 1500 + contains = list(/obj/item/weapon/reagent_containers/spray/plantbgone, + /obj/item/weapon/reagent_containers/spray/plantbgone, + /obj/item/weapon/reagent_containers/glass/bottle/ammonia, + /obj/item/weapon/reagent_containers/glass/bottle/ammonia, + /obj/item/weapon/hatchet, + /obj/item/weapon/cultivator, + /obj/item/device/plant_analyzer, + /obj/item/clothing/gloves/botanic_leather, + /obj/item/clothing/suit/apron) + crate_name = "hydroponics crate" + crate_type = /obj/structure/closet/crate/hydroponics + +/datum/supply_pack/organic/hydroponics/hydrotank + name = "Hydroponics Backpack Crate" + cost = 1000 + access = access_hydroponics + contains = list(/obj/item/weapon/watertank) + crate_name = "hydroponics backpack crate" + crate_type = /obj/structure/closet/crate/secure + +/datum/supply_pack/organic/potted_plants + name = "Potted Plants Crate" + cost = 700 + contains = list(/obj/item/weapon/twohanded/required/kirbyplants/random, + /obj/item/weapon/twohanded/required/kirbyplants/random, + /obj/item/weapon/twohanded/required/kirbyplants/random, + /obj/item/weapon/twohanded/required/kirbyplants/random, + /obj/item/weapon/twohanded/required/kirbyplants/random) + crate_name = "potted plants crate" + crate_type = /obj/structure/closet/crate/hydroponics + +/datum/supply_pack/organic/hydroponics/seeds + name = "Seeds Crate" + cost = 1000 + contains = list(/obj/item/seeds/chili, + /obj/item/seeds/berry, + /obj/item/seeds/corn, + /obj/item/seeds/eggplant, + /obj/item/seeds/tomato, + /obj/item/seeds/soya, + /obj/item/seeds/wheat, + /obj/item/seeds/wheat/rice, + /obj/item/seeds/carrot, + /obj/item/seeds/sunflower, + /obj/item/seeds/chanter, + /obj/item/seeds/potato, + /obj/item/seeds/sugarcane) + crate_name = "seeds crate" + +/datum/supply_pack/organic/hydroponics/exoticseeds + name = "Exotic Seeds Crate" + cost = 1500 + contains = list(/obj/item/seeds/nettle, + /obj/item/seeds/replicapod, + /obj/item/seeds/replicapod, + /obj/item/seeds/replicapod, + /obj/item/seeds/plump, + /obj/item/seeds/liberty, + /obj/item/seeds/amanita, + /obj/item/seeds/reishi, + /obj/item/seeds/banana, + /obj/item/seeds/eggplant/eggy) + crate_name = "exotic seeds crate" + +/datum/supply_pack/organic/hydroponics/beekeeping_fullkit + name = "Beekeeping Starter Crate" + cost = 1500 + contains = list(/obj/structure/beebox, + /obj/item/honey_frame, + /obj/item/honey_frame, + /obj/item/honey_frame, + /obj/item/queen_bee/bought, + /obj/item/clothing/head/beekeeper_head, + /obj/item/clothing/suit/beekeeper_suit, + /obj/item/weapon/melee/flyswatter) + crate_name = "beekeeping starter crate" + +/datum/supply_pack/organic/hydroponics/beekeeping_suits + name = "Beekeeper Suit Crate" + cost = 1000 + contains = list(/obj/item/clothing/head/beekeeper_head, + /obj/item/clothing/suit/beekeeper_suit, + /obj/item/clothing/head/beekeeper_head, + /obj/item/clothing/suit/beekeeper_suit) + crate_name = "beekeeper suits" + +/datum/supply_pack/organic/vending + name = "Bartending Supply Crate" + cost = 2000 + contains = list(/obj/item/weapon/vending_refill/boozeomat, + /obj/item/weapon/vending_refill/boozeomat, + /obj/item/weapon/vending_refill/boozeomat, + /obj/item/weapon/vending_refill/coffee, + /obj/item/weapon/vending_refill/coffee, + /obj/item/weapon/vending_refill/coffee) + crate_name = "bartending supply crate" + +/datum/supply_pack/organic/vending/snack + name = "Snack Supply Crate" + cost = 1500 + contains = list(/obj/item/weapon/vending_refill/snack, + /obj/item/weapon/vending_refill/snack, + /obj/item/weapon/vending_refill/snack) + crate_name = "snacks supply crate" + +/datum/supply_pack/organic/vending/cola + name = "Softdrinks Supply Crate" + cost = 1500 + contains = list(/obj/item/weapon/vending_refill/cola, + /obj/item/weapon/vending_refill/cola, + /obj/item/weapon/vending_refill/cola) + crate_name = "soft drinks supply crate" + +/datum/supply_pack/organic/vending/cigarette + name = "Cigarette Supply Crate" + cost = 1500 + contains = list(/obj/item/weapon/vending_refill/cigarette, + /obj/item/weapon/vending_refill/cigarette, + /obj/item/weapon/vending_refill/cigarette) + crate_name = "cigarette supply crate" + +////////////////////////////////////////////////////////////////////////////// +//////////////////////////// Materials /////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// + +/datum/supply_pack/materials + group = "Raw Materials" + +/datum/supply_pack/materials/metal50 + name = "50 Metal Sheets" + cost = 1000 + contains = list(/obj/item/stack/sheet/metal/fifty) + crate_name = "metal sheets crate" + +/datum/supply_pack/materials/plasteel20 + name = "20 Plasteel Sheets" + cost = 3000 + contains = list(/obj/item/stack/sheet/plasteel/twenty) + crate_name = "plasteel sheets crate" + +/datum/supply_pack/materials/plasteel50 + name = "50 Plasteel Sheets" + cost = 5000 + contains = list(/obj/item/stack/sheet/plasteel/fifty) + crate_name = "plasteel sheets crate" + +/datum/supply_pack/materials/glass50 + name = "50 Glass Sheets" + cost = 1000 + contains = list(/obj/item/stack/sheet/glass/fifty) + crate_name = "glass sheets crate" + +/datum/supply_pack/materials/wood50 + name = "50 Wood Planks" + cost = 2000 + contains = list(/obj/item/stack/sheet/mineral/wood/fifty) + crate_name = "wood planks crate" + +/datum/supply_pack/materials/cardboard50 + name = "50 Cardboard Sheets" + cost = 1000 + contains = list(/obj/item/stack/sheet/cardboard/fifty) + crate_name = "cardboard sheets crate" + +/datum/supply_pack/materials/sandstone30 + name = "30 Sandstone Blocks" + cost = 1000 + contains = list(/obj/item/stack/sheet/mineral/sandstone/thirty) + crate_name = "sandstone blocks crate" + +////////////////////////////////////////////////////////////////////////////// +//////////////////////////// Miscellaneous /////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// + +/datum/supply_pack/misc + group = "Miscellaneous Supplies" + +/datum/supply_pack/misc/minerkit + name = "Shaft Miner Starter Kit" + cost = 2500 + access = access_qm + contains = list(/obj/item/weapon/pickaxe/mini, + /obj/item/clothing/glasses/meson, + /obj/item/device/t_scanner/adv_mining_scanner/lesser, + /obj/item/device/radio/headset/headset_cargo/mining, + /obj/item/weapon/storage/bag/ore, + /obj/item/clothing/suit/space/hardsuit/mining, + /obj/item/clothing/mask/gas/explorer) + crate_name = "shaft miner starter kit" + crate_type = /obj/structure/closet/crate/secure + +/datum/supply_pack/misc/mule + name = "MULEbot Crate" + cost = 2000 + contains = list(/mob/living/simple_animal/bot/mulebot) + crate_name = "\improper MULEbot Crate" + crate_type = /obj/structure/closet/crate/large + +/datum/supply_pack/misc/conveyor + name = "Conveyor Assembly Crate" + cost = 1500 + contains = list(/obj/item/conveyor_construct, + /obj/item/conveyor_construct, + /obj/item/conveyor_construct, + /obj/item/conveyor_construct, + /obj/item/conveyor_construct, + /obj/item/conveyor_construct, + /obj/item/conveyor_switch_construct, + /obj/item/weapon/paper/conveyor) + crate_name = "conveyor assembly crate" + +/datum/supply_pack/misc/watertank + name = "Water Tank Crate" + cost = 600 + contains = list(/obj/structure/reagent_dispensers/watertank) + crate_name = "water tank crate" + crate_type = /obj/structure/closet/crate/large + +/datum/supply_pack/misc/hightank + name = "High-Capacity Water Tank Crate" + cost = 1200 + contains = list(/obj/structure/reagent_dispensers/watertank/high) + crate_name = "high-capacity water tank crate" + crate_type = /obj/structure/closet/crate/large + +/datum/supply_pack/misc/water_vapor + name = "Water Vapor Canister" + cost = 2500 + contains = list(/obj/machinery/portable_atmospherics/canister/water_vapor) + crate_name = "water vapor canister crate" + crate_type = /obj/structure/closet/crate/large + +/datum/supply_pack/misc/lasertag + name = "Laser Tag Crate" + cost = 1500 + contains = list(/obj/item/weapon/gun/energy/laser/redtag, + /obj/item/weapon/gun/energy/laser/redtag, + /obj/item/weapon/gun/energy/laser/redtag, + /obj/item/weapon/gun/energy/laser/bluetag, + /obj/item/weapon/gun/energy/laser/bluetag, + /obj/item/weapon/gun/energy/laser/bluetag, + /obj/item/clothing/suit/redtag, + /obj/item/clothing/suit/redtag, + /obj/item/clothing/suit/redtag, + /obj/item/clothing/suit/bluetag, + /obj/item/clothing/suit/bluetag, + /obj/item/clothing/suit/bluetag, + /obj/item/clothing/head/helmet/redtaghelm, + /obj/item/clothing/head/helmet/redtaghelm, + /obj/item/clothing/head/helmet/redtaghelm, + /obj/item/clothing/head/helmet/bluetaghelm, + /obj/item/clothing/head/helmet/bluetaghelm, + /obj/item/clothing/head/helmet/bluetaghelm) + crate_name = "laser tag crate" + +/datum/supply_pack/misc/lasertag/pins + name = "Laser Tag Firing Pins Crate" + cost = 2000 + contraband = TRUE + contains = list(/obj/item/weapon/storage/box/lasertagpins) + crate_name = "laser tag crate" + +/datum/supply_pack/misc/clownpin + name = "Hilarious Firing Pin Crate" + cost = 5000 + contraband = TRUE + contains = list(/obj/item/device/firing_pin/clown) + // It's /technically/ a toy. For the clown, at least. + crate_name = "toy crate" + +/datum/supply_pack/misc/religious_supplies + name = "Religious Supplies Crate" + cost = 4000 // it costs so much because the Space Church is ran by Space Jews + contains = list(/obj/item/weapon/reagent_containers/food/drinks/bottle/holywater, + /obj/item/weapon/reagent_containers/food/drinks/bottle/holywater, + /obj/item/weapon/storage/book/bible/booze, + /obj/item/weapon/storage/book/bible/booze, + /obj/item/clothing/suit/hooded/chaplain_hoodie, + /obj/item/clothing/suit/hooded/chaplain_hoodie, + /obj/item/clothing/under/burial, + /obj/item/clothing/under/burial) + crate_name = "religious supplies crate" + +/datum/supply_pack/misc/book_crate + name = "Book Crate" + cost = 1500 + contains = list(/obj/item/weapon/book/codex_gigas, + /obj/item/weapon/book/manual/random/, + /obj/item/weapon/book/manual/random/, + /obj/item/weapon/book/manual/random/, + /obj/item/weapon/book/random/triple) + +/datum/supply_pack/misc/posters + name = "Corporate Posters Crate" + cost = 800 + contains = list(/obj/item/weapon/poster/legit, + /obj/item/weapon/poster/legit, + /obj/item/weapon/poster/legit, + /obj/item/weapon/poster/legit, + /obj/item/weapon/poster/legit) + crate_name = "corporate posters crate" + +/datum/supply_pack/misc/paper + name = "Bureaucracy Crate" + cost = 1500 + contains = list(/obj/structure/filingcabinet/chestdrawer/wheeled, + /obj/item/device/camera_film, + /obj/item/weapon/hand_labeler, + /obj/item/hand_labeler_refill, + /obj/item/hand_labeler_refill, + /obj/item/weapon/paper_bin, + /obj/item/weapon/pen/fourcolor, + /obj/item/weapon/pen/fourcolor, + /obj/item/weapon/pen, + /obj/item/weapon/pen/blue, + /obj/item/weapon/pen/red, + /obj/item/weapon/folder/blue, + /obj/item/weapon/folder/red, + /obj/item/weapon/folder/yellow, + /obj/item/weapon/clipboard, + /obj/item/weapon/clipboard, + /obj/item/weapon/stamp, + /obj/item/weapon/stamp/denied) + crate_name = "bureaucracy crate" + +/datum/supply_pack/misc/toner + name = "Toner Crate" + cost = 1000 + contains = list(/obj/item/device/toner, + /obj/item/device/toner, + /obj/item/device/toner, + /obj/item/device/toner, + /obj/item/device/toner, + /obj/item/device/toner) + crate_name = "toner crate" + +/datum/supply_pack/misc/janitor + name = "Janitorial Supplies Crate" + cost = 1000 + contains = list(/obj/item/weapon/reagent_containers/glass/bucket, + /obj/item/weapon/reagent_containers/glass/bucket, + /obj/item/weapon/reagent_containers/glass/bucket, + /obj/item/weapon/mop, + /obj/item/weapon/caution, + /obj/item/weapon/caution, + /obj/item/weapon/caution, + /obj/item/weapon/storage/bag/trash, + /obj/item/weapon/reagent_containers/spray/cleaner, + /obj/item/weapon/reagent_containers/glass/rag, + /obj/item/weapon/grenade/chem_grenade/cleaner, + /obj/item/weapon/grenade/chem_grenade/cleaner, + /obj/item/weapon/grenade/chem_grenade/cleaner) + crate_name = "janitorial supplies crate" + +/datum/supply_pack/misc/janitor/janicart + name = "Janitorial Cart and Galoshes Crate" + cost = 2000 + contains = list(/obj/structure/janitorialcart, + /obj/item/clothing/shoes/galoshes) + crate_name = "janitorial cart crate" + crate_type = /obj/structure/closet/crate/large + +/datum/supply_pack/misc/janitor/janitank + name = "Janitor Backpack Crate" + cost = 1000 + access = access_janitor + contains = list(/obj/item/weapon/watertank/janitor) + crate_name = "janitor backpack crate" + crate_type = /obj/structure/closet/crate/secure + +/datum/supply_pack/misc/janitor/lightbulbs + name = "Replacement Lights" + cost = 1000 + contains = list(/obj/item/weapon/storage/box/lights/mixed, + /obj/item/weapon/storage/box/lights/mixed, + /obj/item/weapon/storage/box/lights/mixed) + crate_name = "replacement lights" + +/datum/supply_pack/misc/noslipfloor + name = "High-traction Floor Tiles" + cost = 2000 + contains = list(/obj/item/stack/tile/noslip/thirty) + crate_name = "high-traction floor tiles crate" + +/datum/supply_pack/misc/plasmaman + name = "Plasmaman Supply Kit" + cost = 2000 + contains = list(/obj/item/clothing/under/plasmaman, + /obj/item/clothing/under/plasmaman, + /obj/item/weapon/tank/internals/plasmaman/belt/full, + /obj/item/weapon/tank/internals/plasmaman/belt/full, + /obj/item/clothing/head/helmet/space/plasmaman, + /obj/item/clothing/head/helmet/space/plasmaman) + crate_name = "plasmaman supply kit" + +/datum/supply_pack/misc/costume + name = "Standard Costume Crate" + cost = 1000 + access = access_theatre + contains = list(/obj/item/weapon/storage/backpack/clown, + /obj/item/clothing/shoes/clown_shoes, + /obj/item/clothing/mask/gas/clown_hat, + /obj/item/clothing/under/rank/clown, + /obj/item/weapon/bikehorn, + /obj/item/clothing/under/rank/mime, + /obj/item/clothing/shoes/sneakers/black, + /obj/item/clothing/gloves/color/white, + /obj/item/clothing/mask/gas/mime, + /obj/item/clothing/head/beret, + /obj/item/clothing/suit/suspenders, + /obj/item/weapon/reagent_containers/food/drinks/bottle/bottleofnothing, + /obj/item/weapon/storage/backpack/mime) + crate_name = "standard costume crate" + crate_type = /obj/structure/closet/crate/secure + +/datum/supply_pack/misc/wizard + name = "Wizard Costume Crate" + cost = 2000 + contains = list(/obj/item/weapon/staff, + /obj/item/clothing/suit/wizrobe/fake, + /obj/item/clothing/shoes/sandal, + /obj/item/clothing/head/wizard/fake) + crate_name = "wizard costume crate" + +/datum/supply_pack/misc/randomised + name = "Collectable Hats Crate!" + cost = 20000 + var/num_contained = 3 //number of items picked to be contained in a randomised crate + contains = list(/obj/item/clothing/head/collectable/chef, + /obj/item/clothing/head/collectable/paper, + /obj/item/clothing/head/collectable/tophat, + /obj/item/clothing/head/collectable/captain, + /obj/item/clothing/head/collectable/beret, + /obj/item/clothing/head/collectable/welding, + /obj/item/clothing/head/collectable/flatcap, + /obj/item/clothing/head/collectable/pirate, + /obj/item/clothing/head/collectable/kitty, + /obj/item/clothing/head/collectable/rabbitears, + /obj/item/clothing/head/collectable/wizard, + /obj/item/clothing/head/collectable/hardhat, + /obj/item/clothing/head/collectable/HoS, + /obj/item/clothing/head/collectable/HoP, + /obj/item/clothing/head/collectable/thunderdome, + /obj/item/clothing/head/collectable/swat, + /obj/item/clothing/head/collectable/slime, + /obj/item/clothing/head/collectable/police, + /obj/item/clothing/head/collectable/slime, + /obj/item/clothing/head/collectable/xenom, + /obj/item/clothing/head/collectable/petehat) + crate_name = "collectable hats crate" + +/datum/supply_pack/misc/randomised/fill(obj/structure/closet/crate/C) + var/list/L = contains.Copy() + for(var/i in 1 to num_contained) + var/item = pick_n_take(L) + new item(C) + + +/datum/supply_pack/misc/randomised/contraband + name = "Contraband Crate" + contraband = TRUE + cost = 3000 + num_contained = 6 + contains = list(/obj/item/weapon/poster/contraband, + /obj/item/weapon/storage/fancy/cigarettes/cigpack_shadyjims, + /obj/item/weapon/storage/fancy/cigarettes/cigpack_midori, + /obj/item/seeds/ambrosia/deus, + /obj/item/clothing/neck/necklace/dope) + crate_name = "crate" + +/datum/supply_pack/misc/randomised/toys + name = "Toy Crate" + cost = 5000 // or play the arcade machines ya lazy bum + num_contained = 5 + contains = list(/obj/item/toy/spinningtoy, + /obj/item/toy/sword, + /obj/item/toy/foamblade, + /obj/item/toy/talking/AI, + /obj/item/toy/talking/owl, + /obj/item/toy/talking/griffin, + /obj/item/toy/talking/skeleton, + /obj/item/toy/nuke, + /obj/item/toy/minimeteor, + /obj/item/toy/carpplushie, + /obj/item/weapon/coin/antagtoken, + /obj/item/stack/tile/fakespace/loaded, + /obj/item/weapon/gun/projectile/shotgun/toy/crossbow, + /obj/item/toy/redbutton) + crate_name = "toy crate" + +/datum/supply_pack/misc/autodrobe + name = "Autodrobe Supply Crate" + cost = 1500 + contains = list(/obj/item/weapon/vending_refill/autodrobe, + /obj/item/weapon/vending_refill/autodrobe) + crate_name = "autodrobe supply crate" + +/datum/supply_pack/misc/formalwear + name = "Formalwear Crate" + cost = 3000 //Lots of very expensive items. You gotta pay up to look good! + contains = list(/obj/item/clothing/under/blacktango, + /obj/item/clothing/under/assistantformal, + /obj/item/clothing/under/assistantformal, + /obj/item/clothing/under/lawyer/bluesuit, + /obj/item/clothing/suit/toggle/lawyer, + /obj/item/clothing/under/lawyer/purpsuit, + /obj/item/clothing/suit/toggle/lawyer/purple, + /obj/item/clothing/under/lawyer/blacksuit, + /obj/item/clothing/suit/toggle/lawyer/black, + /obj/item/clothing/tie/waistcoat, + /obj/item/clothing/neck/tie/blue, + /obj/item/clothing/neck/tie/red, + /obj/item/clothing/neck/tie/black, + /obj/item/clothing/head/bowler, + /obj/item/clothing/head/fedora, + /obj/item/clothing/head/flatcap, + /obj/item/clothing/head/beret, + /obj/item/clothing/head/that, + /obj/item/clothing/shoes/laceup, + /obj/item/clothing/shoes/laceup, + /obj/item/clothing/shoes/laceup, + /obj/item/clothing/under/suit_jacket/charcoal, + /obj/item/clothing/under/suit_jacket/navy, + /obj/item/clothing/under/suit_jacket/burgundy, + /obj/item/clothing/under/suit_jacket/checkered, + /obj/item/clothing/under/suit_jacket/tan, + /obj/item/weapon/lipstick/random) + crate_name = "formalwear crate" + +/datum/supply_pack/misc/foamforce + name = "Foam Force Crate" + cost = 1000 + contains = list(/obj/item/weapon/gun/projectile/shotgun/toy, + /obj/item/weapon/gun/projectile/shotgun/toy, + /obj/item/weapon/gun/projectile/shotgun/toy, + /obj/item/weapon/gun/projectile/shotgun/toy, + /obj/item/weapon/gun/projectile/shotgun/toy, + /obj/item/weapon/gun/projectile/shotgun/toy, + /obj/item/weapon/gun/projectile/shotgun/toy, + /obj/item/weapon/gun/projectile/shotgun/toy) + crate_name = "foam force crate" + +/datum/supply_pack/misc/foamforce/bonus + name = "Foam Force Pistols Crate" + contraband = TRUE + cost = 4000 + contains = list(/obj/item/weapon/gun/projectile/automatic/toy/pistol, + /obj/item/weapon/gun/projectile/automatic/toy/pistol, + /obj/item/ammo_box/magazine/toy/pistol, + /obj/item/ammo_box/magazine/toy/pistol) + crate_name = "foam force crate" + +/datum/supply_pack/misc/artsupply + name = "Art Supplies" + cost = 800 + contains = list(/obj/structure/easel, + /obj/structure/easel, + /obj/item/weapon/canvas/nineteenXnineteen, + /obj/item/weapon/canvas/nineteenXnineteen, + /obj/item/weapon/canvas/twentythreeXnineteen, + /obj/item/weapon/canvas/twentythreeXnineteen, + /obj/item/weapon/canvas/twentythreeXtwentythree, + /obj/item/weapon/canvas/twentythreeXtwentythree, + /obj/item/toy/crayon/rainbow, + /obj/item/toy/crayon/rainbow) + crate_name= "art supply crate" + + +/datum/supply_pack/misc/bsa + name = "Bluespace Artillery Parts" + cost = 15000 + special = TRUE + contains = list(/obj/item/weapon/circuitboard/machine/bsa/front, + /obj/item/weapon/circuitboard/machine/bsa/middle, + /obj/item/weapon/circuitboard/machine/bsa/back, + /obj/item/weapon/circuitboard/machine/computer/bsa_control + ) + crate_name= "bluespace artillery parts crate" + +/datum/supply_pack/misc/dna_vault + name = "DNA Vault Parts" + cost = 12000 + special = TRUE + contains = list( + /obj/item/weapon/circuitboard/machine/dna_vault + ) + crate_name= "dna vault parts crate" + +/datum/supply_pack/misc/dna_probes + name = "DNA Vault Samplers" + cost = 3000 + special = TRUE + contains = list(/obj/item/device/dna_probe, + /obj/item/device/dna_probe, + /obj/item/device/dna_probe, + /obj/item/device/dna_probe, + /obj/item/device/dna_probe + ) + crate_name= "dna samplers crate" + + +/datum/supply_pack/misc/shield_sat + name = "Shield Generator Satellite" + cost = 3000 + special = TRUE + contains = list( + /obj/machinery/satellite/meteor_shield, + /obj/machinery/satellite/meteor_shield, + /obj/machinery/satellite/meteor_shield + ) + crate_name= "shield sat crate" + + +/datum/supply_pack/misc/shield_sat_control + name = "Shield System Control Board" + cost = 5000 + special = TRUE + contains = list( + /obj/item/weapon/circuitboard/machine/computer/sat_control + ) + crate_name= "shield control board crate" diff --git a/code/modules/chatter/chatter.dm b/code/modules/chatter/chatter.dm new file mode 100644 index 0000000..4d1048e --- /dev/null +++ b/code/modules/chatter/chatter.dm @@ -0,0 +1,56 @@ +/proc/chatter(message, phomeme, atom/A) + // We want to transform any message into a list of numbers + // and punctuation marks + // For example: + // "Hi." -> [2, '.'] + // "HALP GEROGE MELLONS, that swine, is GRIFFIN ME!" + // -> [4, 6, 7, ',', 4, 5, ',', '2', 7, 2, '!'] + // "fuck,thissentenceissquashed" -> [4, ',', 21] + + var/list/punctuation = list(",",":",";",".","?","!","\'","-") + var/regex/R = regex("(\[\\l\\d]*)(\[^\\l\\d\\s])?", "g") + var/list/letter_count = list() + while(R.Find(message) != 0) + if(R.group[1]) + letter_count += length(R.group[1]) + if(R.group[2]) + letter_count += R.group[2] + + spawn(0) + for(var/item in letter_count) + if (item in punctuation) + // simulate pausing in talking + // ignore semi-colons because of their use in HTML escaping + if (item in list(",", ":")) + sleep(3) + if (item in list("!", "?", ".")) + sleep(6) + continue + + if(isnum(item)) + var/length = min(item, 10) + if (length == 0) + // "verbalise" long spaces + sleep(1) + chatter_speak_word(A.loc, phomeme, length) + +/proc/chatter_speak_word(loc, phomeme, length) + var/path = "sound/chatter/[phomeme]_[length].ogg" + + playsound(loc, path, + vol = 40, vary = 0, extrarange = 3, falloff = FALSE, surround = 1) + + sleep((length + 1) * chatter_get_sleep_multiplier(phomeme)) + +/proc/chatter_get_sleep_multiplier(phomeme) + // These values are tenths of seconds, so 0.5 == 0.05seconds + . = 1 + switch(phomeme) + if("papyrus") + . = 0.5 + if("griffin") + . = 0.5 + if("sans") + . = 0.7 + if("owl") + . = 0.7 diff --git a/code/modules/client/asset_cache.dm b/code/modules/client/asset_cache.dm new file mode 100644 index 0000000..ebfe233 --- /dev/null +++ b/code/modules/client/asset_cache.dm @@ -0,0 +1,268 @@ +/* +Asset cache quick users guide: + +Make a datum at the bottom of this file with your assets for your thing. +The simple subsystem will most like be of use for most cases. +Then call get_asset_datum() with the type of the datum you created and store the return +Then call .send(client) on that stored return value. + +You can set verify to TRUE if you want send() to sleep until the client has the assets. +*/ + + +// Amount of time(ds) MAX to send per asset, if this get exceeded we cancel the sleeping. +// This is doubled for the first asset, then added per asset after +#define ASSET_CACHE_SEND_TIMEOUT 7 + +//When sending mutiple assets, how many before we give the client a quaint little sending resources message +#define ASSET_CACHE_TELL_CLIENT_AMOUNT 8 + +/client + var/list/cache = list() // List of all assets sent to this client by the asset cache. + var/list/completed_asset_jobs = list() // List of all completed jobs, awaiting acknowledgement. + var/list/sending = list() + var/last_asset_job = 0 // Last job done. + +//This proc sends the asset to the client, but only if it needs it. +//This proc blocks(sleeps) unless verify is set to false +/proc/send_asset(var/client/client, var/asset_name, var/verify = TRUE) + if(!istype(client)) + if(ismob(client)) + var/mob/M = client + if(M.client) + client = M.client + + else + return 0 + + else + return 0 + + if(client.cache.Find(asset_name) || client.sending.Find(asset_name)) + return 0 + + client << browse_rsc(SSasset.cache[asset_name], asset_name) + if(!verify || !winexists(client, "asset_cache_browser")) // Can't access the asset cache browser, rip. + if (client) + client.cache += asset_name + return 1 + if (!client) + return 0 + + client.sending |= asset_name + var/job = ++client.last_asset_job + + client << browse({" + + "}, "window=asset_cache_browser") + + var/t = 0 + var/timeout_time = (ASSET_CACHE_SEND_TIMEOUT * client.sending.len) + ASSET_CACHE_SEND_TIMEOUT + while(client && !client.completed_asset_jobs.Find(job) && t < timeout_time) // Reception is handled in Topic() + sleep(1) // Lock up the caller until this is received. + t++ + + if(client) + client.sending -= asset_name + client.cache |= asset_name + client.completed_asset_jobs -= job + + return 1 + +//This proc blocks(sleeps) unless verify is set to false +/proc/send_asset_list(var/client/client, var/list/asset_list, var/verify = TRUE) + if(!istype(client)) + if(ismob(client)) + var/mob/M = client + if(M.client) + client = M.client + + else + return 0 + + else + return 0 + + var/list/unreceived = asset_list - (client.cache + client.sending) + if(!unreceived || !unreceived.len) + return 0 + if (unreceived.len >= ASSET_CACHE_TELL_CLIENT_AMOUNT) + client << "Sending Resources..." + for(var/asset in unreceived) + if (asset in SSasset.cache) + client << browse_rsc(SSasset.cache[asset], asset) + + if(!verify || !winexists(client, "asset_cache_browser")) // Can't access the asset cache browser, rip. + if (client) + client.cache += unreceived + return 1 + if (!client) + return 0 + client.sending |= unreceived + var/job = ++client.last_asset_job + + client << browse({" + + "}, "window=asset_cache_browser") + + var/t = 0 + var/timeout_time = ASSET_CACHE_SEND_TIMEOUT * client.sending.len + while(client && !client.completed_asset_jobs.Find(job) && t < timeout_time) // Reception is handled in Topic() + sleep(1) // Lock up the caller until this is received. + t++ + + if(client) + client.sending -= unreceived + client.cache |= unreceived + client.completed_asset_jobs -= job + + return 1 + +//This proc will download the files without clogging up the browse() queue, used for passively sending files on connection start. +//The proc calls procs that sleep for long times. +/proc/getFilesSlow(var/client/client, var/list/files, var/register_asset = TRUE) + for(var/file in files) + if (!client) + break + if (register_asset) + register_asset(file,files[file]) + send_asset(client,file) + sleep(0) //queuing calls like this too quickly can cause issues in some client versions + +//This proc "registers" an asset, it adds it to the cache for further use, you cannot touch it from this point on or you'll fuck things up. +//if it's an icon or something be careful, you'll have to copy it before further use. +/proc/register_asset(var/asset_name, var/asset) + SSasset.cache[asset_name] = asset + +//These datums are used to populate the asset cache, the proc "register()" does this. + +//all of our asset datums, used for referring to these later +/var/global/list/asset_datums = list() + +//get a assetdatum or make a new one +/proc/get_asset_datum(var/type) + if (!(type in asset_datums)) + return new type() + return asset_datums[type] + +/datum/asset/New() + asset_datums[type] = src + +/datum/asset/proc/register() + return + +/datum/asset/proc/send(client) + return + +//If you don't need anything complicated. +/datum/asset/simple + var/assets = list() + var/verify = FALSE + +/datum/asset/simple/register() + for(var/asset_name in assets) + register_asset(asset_name, assets[asset_name]) +/datum/asset/simple/send(client) + send_asset_list(client,assets,verify) + + +//DEFINITIONS FOR ASSET DATUMS START HERE. + + +/datum/asset/simple/tgui + assets = list( + "tgui.css" = 'tgui/assets/tgui.css', + "tgui.js" = 'tgui/assets/tgui.js' + ) + +/datum/asset/simple/headers + assets = list( + "alarm_green.gif" = 'icons/program_icons/alarm_green.gif', + "alarm_red.gif" = 'icons/program_icons/alarm_red.gif', + "batt_5.gif" = 'icons/program_icons/batt_5.gif', + "batt_20.gif" = 'icons/program_icons/batt_20.gif', + "batt_40.gif" = 'icons/program_icons/batt_40.gif', + "batt_60.gif" = 'icons/program_icons/batt_60.gif', + "batt_80.gif" = 'icons/program_icons/batt_80.gif', + "batt_100.gif" = 'icons/program_icons/batt_100.gif', + "charging.gif" = 'icons/program_icons/charging.gif', + "downloader_finished.gif" = 'icons/program_icons/downloader_finished.gif', + "downloader_running.gif" = 'icons/program_icons/downloader_running.gif', + "ntnrc_idle.gif" = 'icons/program_icons/ntnrc_idle.gif', + "ntnrc_new.gif" = 'icons/program_icons/ntnrc_new.gif', + "power_norm.gif" = 'icons/program_icons/power_norm.gif', + "power_warn.gif" = 'icons/program_icons/power_warn.gif', + "sig_high.gif" = 'icons/program_icons/sig_high.gif', + "sig_low.gif" = 'icons/program_icons/sig_low.gif', + "sig_lan.gif" = 'icons/program_icons/sig_lan.gif', + "sig_none.gif" = 'icons/program_icons/sig_none.gif', + ) + + + + + + + + +/datum/asset/simple/pda + assets = list( + "pda_atmos.png" = 'icons/pda_icons/pda_atmos.png', + "pda_back.png" = 'icons/pda_icons/pda_back.png', + "pda_bell.png" = 'icons/pda_icons/pda_bell.png', + "pda_blank.png" = 'icons/pda_icons/pda_blank.png', + "pda_boom.png" = 'icons/pda_icons/pda_boom.png', + "pda_bucket.png" = 'icons/pda_icons/pda_bucket.png', + "pda_medbot.png" = 'icons/pda_icons/pda_medbot.png', + "pda_floorbot.png" = 'icons/pda_icons/pda_floorbot.png', + "pda_cleanbot.png" = 'icons/pda_icons/pda_cleanbot.png', + "pda_crate.png" = 'icons/pda_icons/pda_crate.png', + "pda_cuffs.png" = 'icons/pda_icons/pda_cuffs.png', + "pda_eject.png" = 'icons/pda_icons/pda_eject.png', + "pda_flashlight.png" = 'icons/pda_icons/pda_flashlight.png', + "pda_honk.png" = 'icons/pda_icons/pda_honk.png', + "pda_mail.png" = 'icons/pda_icons/pda_mail.png', + "pda_medical.png" = 'icons/pda_icons/pda_medical.png', + "pda_menu.png" = 'icons/pda_icons/pda_menu.png', + "pda_mule.png" = 'icons/pda_icons/pda_mule.png', + "pda_notes.png" = 'icons/pda_icons/pda_notes.png', + "pda_power.png" = 'icons/pda_icons/pda_power.png', + "pda_rdoor.png" = 'icons/pda_icons/pda_rdoor.png', + "pda_reagent.png" = 'icons/pda_icons/pda_reagent.png', + "pda_refresh.png" = 'icons/pda_icons/pda_refresh.png', + "pda_scanner.png" = 'icons/pda_icons/pda_scanner.png', + "pda_signaler.png" = 'icons/pda_icons/pda_signaler.png', + "pda_status.png" = 'icons/pda_icons/pda_status.png', + "pda_dronephone.png" = 'icons/pda_icons/pda_dronephone.png' + ) + +/datum/asset/simple/paper + assets = list( + "large_stamp-clown.png" = 'icons/stamp_icons/large_stamp-clown.png', + "large_stamp-deny.png" = 'icons/stamp_icons/large_stamp-deny.png', + "large_stamp-ok.png" = 'icons/stamp_icons/large_stamp-ok.png', + "large_stamp-hop.png" = 'icons/stamp_icons/large_stamp-hop.png', + "large_stamp-cmo.png" = 'icons/stamp_icons/large_stamp-cmo.png', + "large_stamp-ce.png" = 'icons/stamp_icons/large_stamp-ce.png', + "large_stamp-hos.png" = 'icons/stamp_icons/large_stamp-hos.png', + "large_stamp-rd.png" = 'icons/stamp_icons/large_stamp-rd.png', + "large_stamp-cap.png" = 'icons/stamp_icons/large_stamp-cap.png', + "large_stamp-qm.png" = 'icons/stamp_icons/large_stamp-qm.png', + "large_stamp-law.png" = 'icons/stamp_icons/large_stamp-law.png' + ) + +/datum/asset/simple/IRV + assets = list( + "jquery-ui.custom-core-widgit-mouse-sortable-min.js" = 'html/IRV/jquery-ui.custom-core-widgit-mouse-sortable-min.js', + "jquery-1.10.2.min.js" = 'html/IRV/jquery-1.10.2.min.js' + ) + +//Registers HTML Interface assets. +/datum/asset/HTML_interface/register() + for(var/path in typesof(/datum/html_interface)) + var/datum/html_interface/hi = new path() + hi.registerResources() diff --git a/code/modules/client/client_colour.dm b/code/modules/client/client_colour.dm new file mode 100644 index 0000000..7e78032 --- /dev/null +++ b/code/modules/client/client_colour.dm @@ -0,0 +1,108 @@ + +/* + Client Colour Priority System By RemieRichards + A System that gives finer control over which client.colour value to display on screen + so that the "highest priority" one is always displayed as opposed to the default of + "whichever was set last is displayed" +*/ + + + +/* + Define subtypes of this datum +*/ +/datum/client_colour + var/colour = "" //Any client.color-valid value + var/priority = 1 //Since only one client.color can be rendered on screen, we take the one with the highest priority value: + //eg: "Bloody screen" > "goggles colour" as the former is much more important + + +/mob + var/list/client_colours = list() + + + +/* + Adds an instance of colour_type to the mob's client_colours list + colour_type - a typepath (subtyped from /datum/client_colour) +*/ +/mob/proc/add_client_colour(colour_type) + if(!ispath(colour_type, /datum/client_colour)) + return + + var/datum/client_colour/CC = new colour_type() + client_colours |= CC + sortTim(client_colours, /proc/cmp_clientcolour_priority) + update_client_colour() + + +/* + Removes an instance of colour_type from the mob's client_colours list + colour_type - a typepath (subtyped from /datum/client_colour) +*/ +/mob/proc/remove_client_colour(colour_type) + if(!ispath(colour_type, /datum/client_colour)) + return + + for(var/cc in client_colours) + var/datum/client_colour/CC = cc + if(CC.type == colour_type) + client_colours -= CC + qdel(CC) + break + update_client_colour() + + +/* + Resets the mob's client.color to null, and then sets it to the highest priority + client_colour datum, if one exists +*/ +/mob/proc/update_client_colour() + if(!client) + return + client.color = "" + if(!client_colours.len) + return + var/datum/client_colour/CC = client_colours[1] + if(CC) + client.color = CC.colour + + + + +/datum/client_colour/glass_colour + priority = 0 + colour = "red" + +/datum/client_colour/glass_colour/green + colour = "#aaffaa" + +/datum/client_colour/glass_colour/lightgreen + colour = "#ccffcc" + +/datum/client_colour/glass_colour/blue + colour = "#aaaaff" + +/datum/client_colour/glass_colour/lightblue + colour = "#ccccff" + +/datum/client_colour/glass_colour/yellow + colour = "#ffff66" + +/datum/client_colour/glass_colour/red + colour = "#ffaaaa" + +/datum/client_colour/glass_colour/darkred + colour = "#bb5555" + +/datum/client_colour/glass_colour/orange + colour = "#ffbb99" + +/datum/client_colour/glass_colour/lightorange + colour = "#ffddaa" + +/datum/client_colour/glass_colour/purple + colour = "#ff99ff" + +/datum/client_colour/glass_colour/gray + colour = "#cccccc" \ No newline at end of file diff --git a/code/modules/client/client_defines.dm b/code/modules/client/client_defines.dm new file mode 100644 index 0000000..ed59b89 --- /dev/null +++ b/code/modules/client/client_defines.dm @@ -0,0 +1,56 @@ + +/client + ////////////////////// + //BLACK MAGIC THINGS// + ////////////////////// + parent_type = /datum + //////////////// + //ADMIN THINGS// + //////////////// + var/datum/admins/holder = null + var/datum/click_intercept = null // Needs to implement InterceptClickOn(user,params,atom) proc + var/AI_Interact = 0 + + var/jobbancache = null //Used to cache this client's jobbans to save on DB queries + var/last_message = "" //Contains the last message sent by this client - used to protect against copy-paste spamming. + var/last_message_count = 0 //contins a number of how many times a message identical to last_message was sent. + var/ircreplyamount = 0 + + ///////// + //OTHER// + ///////// + var/datum/preferences/prefs = null + var/move_delay = 1 + var/moving = null + + var/area = null + + /////////////// + //SOUND STUFF// + /////////////// + var/ambience_playing= null + var/played = 0 + //////////// + //SECURITY// + //////////// + // comment out the line below when debugging locally to enable the options & messages menu + control_freak = 1 + + //////////////////////////////////// + //things that require the database// + //////////////////////////////////// + var/player_age = "Requires database" //So admins know why it isn't working - Used to determine how old the account is - in days. + var/related_accounts_ip = "Requires database" //So admins know why it isn't working - Used to determine what other accounts previously logged in from this ip + var/related_accounts_cid = "Requires database" //So admins know why it isn't working - Used to determine what other accounts previously logged in from this computer id + + preload_rsc = PRELOAD_RSC + + var/global/obj/screen/click_catcher/void + + // Used by html_interface module. + var/hi_last_pos + + var/ip_intel = "Disabled" + + //datum that controls the displaying and hiding of tooltips + var/datum/tooltip/tooltips diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm new file mode 100644 index 0000000..a783d8a --- /dev/null +++ b/code/modules/client/client_procs.dm @@ -0,0 +1,489 @@ + //////////// + //SECURITY// + //////////// +#define UPLOAD_LIMIT 1048576 //Restricts client uploads to the server to 1MB //Could probably do with being lower. + + /* + When somebody clicks a link in game, this Topic is called first. + It does the stuff in this proc and then is redirected to the Topic() proc for the src=[0xWhatever] + (if specified in the link). ie locate(hsrc).Topic() + + Such links can be spoofed. + + Because of this certain things MUST be considered whenever adding a Topic() for something: + - Can it be fed harmful values which could cause runtimes? + - Is the Topic call an admin-only thing? + - If so, does it have checks to see if the person who called it (usr.client) is an admin? + - Are the processes being called by Topic() particularly laggy? + - If so, is there any protection against somebody spam-clicking a link? + If you have any questions about this stuff feel free to ask. ~Carn + */ +/client/Topic(href, href_list, hsrc) + if(!usr || usr != mob) //stops us calling Topic for somebody else's client. Also helps prevent usr=null + return + // asset_cache + if(href_list["asset_cache_confirm_arrival"]) + //src << "ASSET JOB [href_list["asset_cache_confirm_arrival"]] ARRIVED." + var/job = text2num(href_list["asset_cache_confirm_arrival"]) + completed_asset_jobs += job + return + // Admin PM + if(href_list["priv_msg"]) + if (href_list["ahelp_reply"]) + cmd_ahelp_reply(href_list["priv_msg"]) + return + cmd_admin_pm(href_list["priv_msg"],null) + return + + //Logs all hrefs + if(config && config.log_hrefs && href_logfile) + href_logfile << "[time2text(world.timeofday,"hh:mm")] [src] (usr:[usr]) || [hsrc ? "[hsrc] " : ""][href]
    " + + switch(href_list["_src_"]) + if("holder") + hsrc = holder + if("usr") + hsrc = mob + if("prefs") + return prefs.process_link(usr,href_list) + if("vars") + return view_var_Topic(href,href_list,hsrc) + + ..() //redirect to hsrc.Topic() + +/client/proc/is_content_unlocked() + if(!prefs.unlock_content) + src << "Become a BYOND member to access member-perks and features, as well as support the engine that makes this game possible. Only 10 bucks for 3 months! Click Here to find out more." + return 0 + return 1 + +/client/proc/handle_spam_prevention(message, mute_type) + if(config.automute_on && !holder && src.last_message == message) + src.last_message_count++ + if(src.last_message_count >= SPAM_TRIGGER_AUTOMUTE) + src << "You have exceeded the spam filter limit for identical messages. An auto-mute was applied." + cmd_admin_mute(src, mute_type, 1) + return 1 + if(src.last_message_count >= SPAM_TRIGGER_WARNING) + src << "You are nearing the spam filter limit for identical messages." + return 0 + else + last_message = message + src.last_message_count = 0 + return 0 + +//This stops files larger than UPLOAD_LIMIT being sent from client to server via input(), client.Import() etc. +/client/AllowUpload(filename, filelength) + if(filelength > UPLOAD_LIMIT) + src << "Error: AllowUpload(): File Upload too large. Upload Limit: [UPLOAD_LIMIT/1024]KiB." + return 0 +/* //Don't need this at the moment. But it's here if it's needed later. + //Helps prevent multiple files being uploaded at once. Or right after eachother. + var/time_to_wait = fileaccess_timer - world.time + if(time_to_wait > 0) + src << "Error: AllowUpload(): Spam prevention. Please wait [round(time_to_wait/10)] seconds." + return 0 + fileaccess_timer = world.time + FTPDELAY */ + return 1 + + + /////////// + //CONNECT// + /////////// +#if (PRELOAD_RSC == 0) +var/list/external_rsc_urls +var/next_external_rsc = 0 +#endif + + +/client/New(TopicData) + var/tdata = TopicData //save this for later use + TopicData = null //Prevent calls to client.Topic from connect + + if(connection != "seeker" && connection != "web")//Invalid connection type. + return null + +#if (PRELOAD_RSC == 0) + if(external_rsc_urls && external_rsc_urls.len) + next_external_rsc = Wrap(next_external_rsc+1, 1, external_rsc_urls.len+1) + preload_rsc = external_rsc_urls[next_external_rsc] +#endif + + clients += src + directory[ckey] = src + + //Admin Authorisation + var/localhost_addresses = list("127.0.0.1", "::1") + if(address && (address in localhost_addresses)) + var/datum/admin_rank/localhost_rank = new("!localhost!", 65535) + if(localhost_rank) + var/datum/admins/localhost_holder = new(localhost_rank, ckey) + localhost_holder.associate(src) + if(protected_config.autoadmin) + if(!admin_datums[ckey]) + var/datum/admin_rank/autorank + for(var/datum/admin_rank/R in admin_ranks) + if(R.name == protected_config.autoadmin_rank) + autorank = R + break + if(!autorank) + world << "Autoadmin rank not found" + else + var/datum/admins/D = new(autorank, ckey) + admin_datums[ckey] = D + holder = admin_datums[ckey] + if(holder) + admins |= src + holder.owner = src + + //preferences datum - also holds some persistant data for the client (because we may as well keep these datums to a minimum) + prefs = preferences_datums[ckey] + if(!prefs) + prefs = new /datum/preferences(src) + preferences_datums[ckey] = prefs + prefs.last_ip = address //these are gonna be used for banning + prefs.last_id = computer_id //these are gonna be used for banning + if(world.byond_version >= 511 && byond_version >= 511 && prefs.clientfps) + vars["fps"] = prefs.clientfps + sethotkeys(1) //set hoykeys from preferences (from_pref = 1) + + . = ..() //calls mob.Login() + + if (byond_version < config.client_error_version) //Out of date client. + src << "Your version of byond is too old:" + src << config.client_error_message + src << "Your version: [byond_version]" + src << "Required version: [config.client_error_version] or later" + src << "Visit http://www.byond.com/download/ to get the latest version of byond." + if (holder) + src << "Because you are an admin, you are being allowed to walk past this limitation, But it is still STRONGLY suggested you upgrade" + else + qdel(src) + return 0 + else if (byond_version < config.client_warn_version) //We have words for this client. + src << "Your version of byond may be getting out of date:" + src << config.client_warn_message + src << "Your version: [byond_version]" + src << "Required version to remove this message: [config.client_warn_version] or later" + src << "Visit http://www.byond.com/download/ to get the latest version of byond." + + if (connection == "web") + if (!config.allowwebclient) + src << "Web client is disabled" + qdel(src) + return 0 + if (config.webclientmembersonly && !IsByondMember()) + src << "Sorry, but the web client is restricted to byond members only." + qdel(src) + return 0 + + if( (world.address == address || !address) && !host ) + host = key + world.update_status() + + if(holder) + add_admin_verbs() + admin_memo_output("Show") + adminGreet() + if((global.comms_key == "default_pwd" || length(global.comms_key) <= 6) && global.comms_allowed) //It's the default value or less than 6 characters long, but it somehow didn't disable comms. + src << "The server's API key is either too short or is the default value! Consider changing it immediately!" + + add_verbs_from_config() + set_client_age_from_db() + + if (isnum(player_age) && player_age == -1) //first connection + if (config.panic_bunker && !holder && !(ckey in deadmins)) + log_access("Failed Login: [key] - New account attempting to connect during panic bunker") + message_admins("Failed Login: [key] - New account attempting to connect during panic bunker") + src << "Sorry but the server is currently not accepting connections from never before seen players." + qdel(src) + return 0 + + if (config.notify_new_player_age >= 0) + message_admins("New user: [key_name_admin(src)] is connecting here for the first time.") + if (config.irc_first_connection_alert) + send2irc_adminless_only("New-user", "[key_name(src)] is connecting for the first time!") + + player_age = 0 // set it from -1 to 0 so the job selection code doesn't have a panic attack + + else if (isnum(player_age) && player_age < config.notify_new_player_age) + message_admins("New user: [key_name_admin(src)] just connected with an age of [player_age] day[(player_age==1?"":"s")]") + + if(!IsGuestKey(key) && dbcon.IsConnected()) + findJoinDate() + + sync_client_with_db(tdata) + + check_ip_intel() + + send_resources() + + if(!void) + void = new() + + screen += void + + if(prefs.lastchangelog != changelog_hash) //bolds the changelog button on the interface so we know there are updates. + src << "You have unread updates in the changelog." + if(config.aggressive_changelog) + changelog() + else + winset(src, "infowindow.changelog", "font-style=bold") + + if(ckey in clientmessages) + for(var/message in clientmessages[ckey]) + src << message + clientmessages.Remove(ckey) + + if(config && config.autoconvert_notes) + convert_notes_sql(ckey) + + if(!winexists(src, "asset_cache_browser")) // The client is using a custom skin, tell them. + src << "Unable to access asset cache browser, if you are using a custom skin file, please allow DS to download the updated version, if you are not, then make a bug report. This is not a critical issue but can cause issues with resource downloading, as it is impossible to know when extra resources arrived to you." + + + //This is down here because of the browse() calls in tooltip/New() + if(!tooltips) + tooltips = new /datum/tooltip(src) + + +////////////// +//DISCONNECT// +////////////// + +/client/Del() + if(holder) + adminGreet(1) + holder.owner = null + admins -= src + directory -= ckey + clients -= src + return ..() + +/client/Destroy() + return QDEL_HINT_HARDDEL_NOW + +/client/proc/set_client_age_from_db() + if (IsGuestKey(src.key)) + return + + establish_db_connection() + if(!dbcon.IsConnected()) + return + + var/sql_ckey = sanitizeSQL(src.ckey) + + var/DBQuery/query = dbcon.NewQuery("SELECT id, datediff(Now(),firstseen) as age FROM [format_table_name("player")] WHERE ckey = '[sql_ckey]'") + if (!query.Execute()) + return + + while (query.NextRow()) + player_age = text2num(query.item[2]) + return + + //no match mark it as a first connection for use in client/New() + player_age = -1 + + +/client/proc/sync_client_with_db(connectiontopic) + if (IsGuestKey(src.key)) + return + + establish_db_connection() + if (!dbcon.IsConnected()) + return + + var/sql_ckey = sanitizeSQL(ckey) + + var/DBQuery/query_ip = dbcon.NewQuery("SELECT ckey FROM [format_table_name("player")] WHERE ip = '[address]' AND ckey != '[sql_ckey]'") + query_ip.Execute() + related_accounts_ip = "" + while(query_ip.NextRow()) + related_accounts_ip += "[query_ip.item[1]], " + + var/DBQuery/query_cid = dbcon.NewQuery("SELECT ckey FROM [format_table_name("player")] WHERE computerid = '[computer_id]' AND ckey != '[sql_ckey]'") + query_cid.Execute() + related_accounts_cid = "" + while (query_cid.NextRow()) + related_accounts_cid += "[query_cid.item[1]], " + + var/admin_rank = "Player" + if (src.holder && src.holder.rank) + admin_rank = src.holder.rank.name + else + if (check_randomizer(connectiontopic)) + return + + var/watchreason = check_watchlist(sql_ckey) + if(watchreason) + message_admins("Notice: [key_name_admin(src)] is on the watchlist and has just connected - Reason: [watchreason]") + send2irc_adminless_only("Watchlist", "[key_name(src)] is on the watchlist and has just connected - Reason: [watchreason]") + + var/sql_ip = sanitizeSQL(src.address) + var/sql_computerid = sanitizeSQL(src.computer_id) + var/sql_admin_rank = sanitizeSQL(admin_rank) + + + var/DBQuery/query_insert = dbcon.NewQuery("INSERT INTO [format_table_name("player")] (id, ckey, firstseen, lastseen, ip, computerid, lastadminrank) VALUES (null, '[sql_ckey]', Now(), Now(), '[sql_ip]', '[sql_computerid]', '[sql_admin_rank]') ON DUPLICATE KEY UPDATE lastseen = VALUES(lastseen), ip = VALUES(ip), computerid = VALUES(computerid), lastadminrank = VALUES(lastadminrank)") + query_insert.Execute() + + //Logging player access + var/serverip = "[world.internet_address]:[world.port]" + var/DBQuery/query_accesslog = dbcon.NewQuery("INSERT INTO `[format_table_name("connection_log")]` (`id`,`datetime`,`serverip`,`ckey`,`ip`,`computerid`) VALUES(null,Now(),'[serverip]','[sql_ckey]','[sql_ip]','[sql_computerid]');") + query_accesslog.Execute() + +/client/proc/check_randomizer(topic) + . = FALSE + topic = params2list(topic) + if (!config.check_randomizer) + return + var/static/cidcheck = list() + var/static/tokens = list() + var/static/cidcheck_failedckeys = list() //to avoid spamming the admins if the same guy keeps trying. + var/static/cidcheck_spoofckeys = list() + + var/oldcid = cidcheck[ckey] + + if (oldcid) + if (!topic || !topic["token"] || !tokens[ckey] || topic["token"] != tokens[ckey]) + if (!cidcheck_spoofckeys[ckey]) + message_admins("[key_name(src)] appears to have attempted to spoof a cid randomizer check.") + cidcheck_spoofckeys[ckey] = TRUE + cidcheck[ckey] = computer_id + tokens[ckey] = cid_check_reconnect() + + sleep(10) //browse is queued, we don't want them to disconnect before getting the browse() command. + qdel(src) + return TRUE + + if (oldcid != computer_id) //IT CHANGED!!! + cidcheck -= ckey //so they can try again after removing the cid randomizer. + + src << "Connection Error:" + src << "Invalid ComputerID(spoofed). Please remove the ComputerID spoofer from your byond installation and try again." + + if (!cidcheck_failedckeys[ckey]) + message_admins("[key_name(src)] has been detected as using a cid randomizer. Connection rejected.") + send2irc_adminless_only("CidRandomizer", "[key_name(src)] has been detected as using a cid randomizer. Connection rejected.") + cidcheck_failedckeys[ckey] = TRUE + note_randomizer_user() + + log_access("Failed Login: [key] [computer_id] [address] - CID randomizer confirmed (oldcid: [oldcid])") + + qdel(src) + return TRUE + else + if (cidcheck_failedckeys[ckey]) + message_admins("[key_name_admin(src)] has been allowed to connect after showing they removed their cid randomizer") + send2irc_adminless_only("CidRandomizer", "[key_name(src)] has been allowed to connect after showing they removed their cid randomizer.") + cidcheck_failedckeys -= ckey + if (cidcheck_spoofckeys[ckey]) + message_admins("[key_name_admin(src)] has been allowed to connect after appearing to have attempted to spoof a cid randomizer check because it appears they aren't spoofing one this time") + cidcheck_spoofckeys -= ckey + cidcheck -= ckey + else + var/sql_ckey = sanitizeSQL(ckey) + var/DBQuery/query_cidcheck = dbcon.NewQuery("SELECT computerid FROM [format_table_name("player")] WHERE ckey = '[sql_ckey]'") + query_cidcheck.Execute() + + var/lastcid + if (query_cidcheck.NextRow()) + lastcid = query_cidcheck.item[1] + + if (computer_id != lastcid) + cidcheck[ckey] = computer_id + tokens[ckey] = cid_check_reconnect() + + sleep(10) //browse is queued, we don't want them to disconnect before getting the browse() command. + qdel(src) + return TRUE + +/client/proc/cid_check_reconnect() + var/token = md5("[rand(0,9999)][world.time][rand(0,9999)][ckey][rand(0,9999)][address][rand(0,9999)][computer_id][rand(0,9999)]") + . = token + log_access("Failed Login: [key] [computer_id] [address] - CID randomizer check") + var/url = winget(src, null, "url") + //special javascript to make them reconnect under a new window. + src << browse("byond://[url]?token=[token]", "border=0;titlebar=0;size=1x1") + src << "You will be automatically taken to the game, if not, click here to be taken manually" + +/client/proc/note_randomizer_user() + var/const/adminckey = "CID-Error" + var/sql_ckey = sanitizeSQL(ckey) + //check to see if we noted them in the last day. + var/DBQuery/query_get_notes = dbcon.NewQuery("SELECT id FROM [format_table_name("notes")] WHERE ckey = '[sql_ckey]' AND adminckey = '[adminckey]' AND timestamp + INTERVAL 1 DAY < NOW()") + if(!query_get_notes.Execute()) + var/err = query_get_notes.ErrorMsg() + log_game("SQL ERROR obtaining id from notes table. Error : \[[err]\]\n") + return + if (query_get_notes.NextRow()) + return + + //regardless of above, make sure their last note is not from us, as no point in repeating the same note over and over. + query_get_notes = dbcon.NewQuery("SELECT adminckey FROM [format_table_name("notes")] WHERE ckey = '[sql_ckey]' ORDER BY timestamp DESC LIMIT 1") + if(!query_get_notes.Execute()) + var/err = query_get_notes.ErrorMsg() + log_game("SQL ERROR obtaining id from notes table. Error : \[[err]\]\n") + return + if (query_get_notes.NextRow()) + if (query_get_notes.item[1] == adminckey) + return + add_note(ckey, "Detected as using a cid randomizer.", null, adminckey, 0, null, 0) + + +/client/proc/check_ip_intel() + set waitfor = 0 //we sleep when getting the intel, no need to hold up the client connection while we sleep + if (config.ipintel_email) + var/datum/ipintel/res = get_ip_intel(address) + if (res.intel >= config.ipintel_rating_bad) + message_admins("Proxy Detection: [key_name_admin(src)] IP intel rated [res.intel*100]% likely to be a Proxy/VPN.") + ip_intel = res.intel + + +/client/proc/add_verbs_from_config() + if(config.see_own_notes) + verbs += /client/proc/self_notes + + +#undef TOPIC_SPAM_DELAY +#undef UPLOAD_LIMIT +#undef MIN_CLIENT_VERSION + +//checks if a client is afk +//3000 frames = 5 minutes +/client/proc/is_afk(duration=3000) + if(inactivity > duration) + return inactivity + return 0 + +// Byond seemingly calls stat, each tick. +// Calling things each tick can get expensive real quick. +// So we slow this down a little. +// See: http://www.byond.com/docs/ref/info.html#/client/proc/Stat +/client/Stat() + . = ..() + if (holder) + sleep(1) + else + sleep(5) + stoplag() + +//send resources to the client. It's here in its own proc so we can move it around easiliy if need be +/client/proc/send_resources() + //get the common files + getFiles( + 'html/search.js', + 'html/panels.css', + 'html/browser/common.css', + 'html/browser/scannernew.css', + 'html/browser/playeroptions.css', + ) + spawn (10) //removing this spawn causes all clients to not get verbs. + //Precache the client with all other assets slowly, so as to not block other browse() calls + getFilesSlow(src, SSasset.cache, register_asset = FALSE) + + +//Hook, override it to run code when dir changes +//Like for /atoms, but clients are their own snowflake FUCK +/client/proc/setDir(newdir) + dir = newdir diff --git a/code/modules/client/message.dm b/code/modules/client/message.dm new file mode 100644 index 0000000..a18950f --- /dev/null +++ b/code/modules/client/message.dm @@ -0,0 +1,9 @@ +var/list/clientmessages = list() + +proc/addclientmessage(var/ckey, var/message) + ckey = ckey(ckey) + if (!ckey || !message) + return + if (!(ckey in clientmessages)) + clientmessages[ckey] = list() + clientmessages[ckey] += message \ No newline at end of file diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm new file mode 100644 index 0000000..4bd79fb --- /dev/null +++ b/code/modules/client/preferences.dm @@ -0,0 +1,1250 @@ +//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33 + +var/list/preferences_datums = list() + + + +/datum/preferences + //doohickeys for savefiles + var/path + var/default_slot = 1 //Holder so it doesn't default to slot 1, rather the last one used + var/max_save_slots = 3 + + //non-preference stuff + var/muted = 0 + var/last_ip + var/last_id + + //game-preferences + var/lastchangelog = "" //Saved changlog filesize to detect if there was a change + var/ooccolor = null + + //Antag preferences + var/list/be_special = list() //Special role selection + var/tmp/old_be_special = 0 //Bitflag version of be_special, used to update old savefiles and nothing more + //If it's 0, that's good, if it's anything but 0, the owner of this prefs file's antag choices were, + //autocorrected this round, not that you'd need to check that. + + + var/UI_style = "Midnight" + var/hotkeys = FALSE + var/tgui_fancy = TRUE + var/tgui_lock = TRUE + var/toggles = TOGGLES_DEFAULT + var/chat_toggles = TOGGLES_DEFAULT_CHAT + var/ghost_form = "ghost" + var/ghost_orbit = GHOST_ORBIT_CIRCLE + var/ghost_accs = GHOST_ACCS_DEFAULT_OPTION + var/ghost_others = GHOST_OTHERS_DEFAULT_OPTION + var/ghost_hud = 1 + var/inquisitive_ghost = 1 + var/allow_midround_antag = 1 + var/preferred_map = null + + var/uses_glasses_colour = 0 + + //character preferences + var/real_name //our character's name + var/be_random_name = 0 //whether we'll have a random name every round + var/be_random_body = 0 //whether we'll have a random body every round + var/gender = MALE //gender of character (well duh) + var/age = 30 //age of character + var/underwear = "Nude" //underwear type + var/undershirt = "Nude" //undershirt type + var/socks = "Nude" //socks type + var/backbag = DBACKPACK //backpack type + var/hair_style = "Bald" //Hair type + var/hair_color = "000" //Hair color + var/facial_hair_style = "Shaved" //Face hair type + var/facial_hair_color = "000" //Facial hair color + var/skin_tone = "caucasian1" //Skin color + var/eye_color = "000" //Eye color + var/datum/species/pref_species = new /datum/species/human() //Mutant race + var/list/features = list("mcolor" = "FFF", "tail_lizard" = "Smooth", "tail_human" = "None", "snout" = "Round", "horns" = "None", "ears" = "None", "wings" = "None", "frills" = "None", "spines" = "None", "body_markings" = "None", "legs" = "Normal Legs") + + var/list/custom_names = list("clown", "mime", "ai", "cyborg", "religion", "deity") + //Mob preview + var/icon/preview_icon = null + + //Jobs, uses bitflags + var/job_civilian_high = 0 + var/job_civilian_med = 0 + var/job_civilian_low = 0 + + var/job_medsci_high = 0 + var/job_medsci_med = 0 + var/job_medsci_low = 0 + + var/job_engsec_high = 0 + var/job_engsec_med = 0 + var/job_engsec_low = 0 + + // Want randomjob if preferences already filled - Donkie + var/joblessrole = BERANDOMJOB //defaults to 1 for fewer assistants + + // 0 = character settings, 1 = game preferences + var/current_tab = 0 + + // OOC Metadata: + var/metadata = "" + + var/unlock_content = 0 + + var/list/ignoring = list() + + var/clientfps = 0 + +/datum/preferences/New(client/C) + custom_names["ai"] = pick(ai_names) + custom_names["cyborg"] = pick(ai_names) + custom_names["clown"] = pick(clown_names) + custom_names["mime"] = pick(mime_names) + if(istype(C)) + if(!IsGuestKey(C.key)) + load_path(C.ckey) + unlock_content = C.IsByondMember() + if(unlock_content) + max_save_slots = 8 + var/loaded_preferences_successfully = load_preferences() + if(loaded_preferences_successfully) + if(load_character()) + return + //we couldn't load character data so just randomize the character appearance + name + random_character() //let's create a random character then - rather than a fat, bald and naked man. + real_name = pref_species.random_name(gender,1) + if(!loaded_preferences_successfully) + save_preferences() + save_character() //let's save this new random character so it doesn't keep generating new ones. + return + + +/datum/preferences/proc/ShowChoices(mob/user) + if(!user || !user.client) + return + update_preview_icon() + user << browse_rsc(preview_icon, "previewicon.png") + var/dat = "
    " + + dat += "Character Settings " + dat += "Game Preferences" + + if(!path) + dat += "
    Please create an account to save your preferences
    " + + dat += "
    " + + dat += "
    " + + switch(current_tab) + if (0) // Character Settings# + if(path) + var/savefile/S = new /savefile(path) + if(S) + dat += "
    " + var/name + for(var/i=1, i<=max_save_slots, i++) + S.cd = "/character[i]" + S["real_name"] >> name + if(!name) + name = "Character[i]" + //if(i!=1) dat += " | " + dat += "[name] " + dat += "
    " + + dat += "

    Occupation Choices

    " + dat += "Set Occupation Preferences
    " + dat += "

    Identity

    " + dat += "" + + + dat += "
    " + if(jobban_isbanned(user, "appearance")) + dat += "You are banned from using custom names and appearances. You can continue to adjust your characters, but you will be randomised once you join the game.
    " + dat += "Random Name " + dat += "Always Random Name: [be_random_name ? "Yes" : "No"]
    " + + dat += "Name: " + dat += "[real_name]
    " + + dat += "Gender: [gender == MALE ? "Male" : "Female"]
    " + dat += "Age: [age]
    " + + dat += "Special Names:
    " + dat += "Clown: [custom_names["clown"]] " + dat += "Mime:[custom_names["mime"]]
    " + dat += "AI: [custom_names["ai"]] " + dat += "Cyborg: [custom_names["cyborg"]]
    " + dat += "Chaplain religion: [custom_names["religion"]] " + dat += "Chaplain deity: [custom_names["deity"]]
    " + + dat += "
    " + + dat += "
    " + + dat += "

    Body

    " + dat += "Random Body " + dat += "Always Random Body: [be_random_body ? "Yes" : "No"]
    " + + dat += "" + + if(pref_species.use_skintones) + + dat += "" + + if(HAIR in pref_species.specflags) + + dat += "" + + if(EYECOLOR in pref_species.specflags) + + dat += "" + + if(config.mutant_races) //We don't allow mutant bodyparts for humans either unless this is true. + + if((MUTCOLORS in pref_species.specflags) || (MUTCOLORS_PARTSONLY in pref_species.specflags)) + + dat += "" + + if("tail_lizard" in pref_species.mutant_bodyparts) + dat += "" + + if("snout" in pref_species.mutant_bodyparts) + dat += "" + + if("horns" in pref_species.mutant_bodyparts) + dat += "" + + if("frills" in pref_species.mutant_bodyparts) + dat += "" + + if("spines" in pref_species.mutant_bodyparts) + dat += "" + + if("body_markings" in pref_species.mutant_bodyparts) + dat += "" + if("legs" in pref_species.mutant_bodyparts) + dat += "" + if(config.mutant_humans) + + if("tail_human" in pref_species.mutant_bodyparts) + dat += "" + + if("ears" in pref_species.mutant_bodyparts) + dat += "" + + if("wings" in pref_species.mutant_bodyparts && r_wings_list.len >1) + dat += "" + + dat += "
    " + + if(config.mutant_races) + dat += "Species:
    [pref_species.name]
    " + else + dat += "Species: Human
    " + + dat += "Underwear:
    [underwear]
    " + dat += "Undershirt:
    [undershirt]
    " + dat += "Socks:
    [socks]
    " + dat += "Backpack:
    [backbag]
    " + + dat += "

    Skin Tone

    " + + dat += "[skin_tone]
    " + + dat += "
    " + + dat += "

    Hair Style

    " + + dat += "[hair_style]
    " + dat += "< >
    " + dat += "    Change
    " + + + dat += "
    " + + dat += "

    Facial Hair Style

    " + + dat += "[facial_hair_style]
    " + dat += "< >
    " + dat += "    Change
    " + + dat += "
    " + + dat += "

    Eye Color

    " + + dat += "    Change
    " + + dat += "
    " + + dat += "

    Mutant Color

    " + + dat += "    Change
    " + + dat += "
    " + + dat += "

    Tail

    " + + dat += "[features["tail_lizard"]]
    " + + dat += "
    " + + dat += "

    Snout

    " + + dat += "[features["snout"]]
    " + + dat += "
    " + + dat += "

    Horns

    " + + dat += "[features["horns"]]
    " + + dat += "
    " + + dat += "

    Frills

    " + + dat += "[features["frills"]]
    " + + dat += "
    " + + dat += "

    Spines

    " + + dat += "[features["spines"]]
    " + + dat += "
    " + + dat += "

    Body Markings

    " + + dat += "[features["body_markings"]]
    " + + dat += "
    " + + dat += "

    Legs

    " + + dat += "[features["legs"]]
    " + + dat += "
    " + + dat += "

    Tail

    " + + dat += "[features["tail_human"]]
    " + + dat += "
    " + + dat += "

    Ears

    " + + dat += "[features["ears"]]
    " + + dat += "
    " + + dat += "

    Wings

    " + + dat += "[features["wings"]]
    " + + dat += "
    " + + + if (1) // Game Preferences + dat += "
    " + dat += "

    General Settings

    " + dat += "UI Style: [UI_style]
    " + dat += "Keybindings: [(hotkeys) ? "Hotkeys" : "Default"]
    " + dat += "tgui Style: [(tgui_fancy) ? "Fancy" : "No Frills"]
    " + dat += "tgui Monitors: [(tgui_lock) ? "Primary" : "All"]
    " + dat += "Play admin midis: [(toggles & SOUND_MIDI) ? "Yes" : "No"]
    " + dat += "Play lobby music: [(toggles & SOUND_LOBBY) ? "Yes" : "No"]
    " + dat += "Ghost ears: [(chat_toggles & CHAT_GHOSTEARS) ? "All Speech" : "Nearest Creatures"]
    " + dat += "Ghost sight: [(chat_toggles & CHAT_GHOSTSIGHT) ? "All Emotes" : "Nearest Creatures"]
    " + dat += "Ghost whispers: [(chat_toggles & CHAT_GHOSTWHISPER) ? "All Speech" : "Nearest Creatures"]
    " + dat += "Ghost radio: [(chat_toggles & CHAT_GHOSTRADIO) ? "Yes" : "No"]
    " + dat += "Ghost pda: [(chat_toggles & CHAT_GHOSTPDA) ? "All Messages" : "Nearest Creatures"]
    " + dat += "Pull requests: [(chat_toggles & CHAT_PULLR) ? "Yes" : "No"]
    " + dat += "Midround Antagonist: [(toggles & MIDROUND_ANTAG) ? "Yes" : "No"]
    " + if(config.allow_Metadata) + dat += "OOC Notes: Edit
    " + + if(user.client) + if(user.client.holder) + dat += "Adminhelp Sound: [(toggles & SOUND_ADMINHELP)?"On":"Off"]
    " + dat += "Announce Login: [(toggles & ANNOUNCE_LOGIN)?"On":"Off"]
    " + + if(unlock_content || check_rights_for(user.client, R_ADMIN)) + dat += "OOC:     Change
    " + + if(unlock_content) + dat += "BYOND Membership Publicity: [(toggles & MEMBER_PUBLIC) ? "Public" : "Hidden"]
    " + dat += "Ghost Form: [ghost_form]
    " + dat += "Ghost Orbit: [ghost_orbit]
    " + + var/button_name = "If you see this something went wrong." + switch(ghost_accs) + if(GHOST_ACCS_FULL) + button_name = GHOST_ACCS_FULL_NAME + if(GHOST_ACCS_DIR) + button_name = GHOST_ACCS_DIR_NAME + if(GHOST_ACCS_NONE) + button_name = GHOST_ACCS_NONE_NAME + + dat += "Ghost Accessories: [button_name]
    " + + switch(ghost_others) + if(GHOST_OTHERS_THEIR_SETTING) + button_name = GHOST_OTHERS_THEIR_SETTING_NAME + if(GHOST_OTHERS_DEFAULT_SPRITE) + button_name = GHOST_OTHERS_DEFAULT_SPRITE_NAME + if(GHOST_OTHERS_SIMPLE) + button_name = GHOST_OTHERS_SIMPLE_NAME + + dat += "Ghosts of Others: [button_name]
    " + + if (SERVERTOOLS && config.maprotation) + var/p_map = preferred_map + if (!p_map) + p_map = "Default" + if (config.defaultmap) + p_map += " ([config.defaultmap.friendlyname])" + else + if (p_map in config.maplist) + var/datum/votablemap/VM = config.maplist[p_map] + if (!VM) + p_map += " (No longer exists)" + else + p_map = VM.friendlyname + else + p_map += " (No longer exists)" + dat += "Preferred Map: [p_map]" + + dat += "FPS: [clientfps]" + + dat += "
    " + + dat += "

    Special Role Settings

    " + + if(jobban_isbanned(user, "Syndicate")) + dat += "You are banned from antagonist roles." + src.be_special = list() + + + for (var/i in special_roles) + if(jobban_isbanned(user, i)) + dat += "Be [capitalize(i)]: BANNED
    " + else + var/days_remaining = null + if(config.use_age_restriction_for_jobs && ispath(special_roles[i])) //If it's a game mode antag, check if the player meets the minimum age + var/mode_path = special_roles[i] + var/datum/game_mode/temp_mode = new mode_path + days_remaining = temp_mode.get_remaining_days(user.client) + + if(days_remaining) + dat += "Be [capitalize(i)]: \[IN [days_remaining] DAYS]
    " + else + dat += "Be [capitalize(i)]: [(i in be_special) ? "Yes" : "No"]
    " + + dat += "
    " + + dat += "
    " + + if(!IsGuestKey(user.key)) + dat += "Undo " + dat += "Save Setup " + + dat += "Reset Setup" + dat += "
    " + + //user << browse(dat, "window=preferences;size=560x560") + var/datum/browser/popup = new(user, "preferences", "
    Character Setup
    ", 640, 750) + popup.set_content(dat) + popup.open(0) + +/datum/preferences/proc/SetChoices(mob/user, limit = 17, list/splitJobs = list("Chief Engineer"), widthPerColumn = 295, height = 620) + if(!SSjob) + return + + //limit - The amount of jobs allowed per column. Defaults to 17 to make it look nice. + //splitJobs - Allows you split the table by job. You can make different tables for each department by including their heads. Defaults to CE to make it look nice. + //widthPerColumn - Screen's width for every column. + //height - Screen's height. + + var/width = widthPerColumn + + var/HTML = "
    " + if(SSjob.occupations.len <= 0) + HTML += "The job ticker is not yet finished creating jobs, please try again later" + HTML += "
    Done

    " // Easier to press up here. + + else + HTML += "Choose occupation chances
    " + HTML += "
    Left-click to raise an occupation preference, right-click to lower it.
    " + HTML += "
    Done

    " // Easier to press up here. + HTML += "" + HTML += "
    " // Table within a table for alignment, also allows you to easily add more colomns. + HTML += "" + var/index = -1 + + //The job before the current job. I only use this to get the previous jobs color when I'm filling in blank rows. + var/datum/job/lastJob + + for(var/datum/job/job in SSjob.occupations) + + index += 1 + if((index >= limit) || (job.title in splitJobs)) + width += widthPerColumn + if((index < limit) && (lastJob != null)) + //If the cells were broken up by a job in the splitJob list then it will fill in the rest of the cells with + //the last job's selection color. Creating a rather nice effect. + for(var/i = 0, i < (limit - index), i += 1) + HTML += "" + HTML += "
      
    " + index = 0 + + HTML += "" + continue + if(!job.player_old_enough(user.client)) + var/available_in_days = job.available_in_days(user.client) + HTML += "[rank]" + continue + if((job_civilian_low & ASSISTANT) && (rank != "Assistant") && !jobban_isbanned(user, "Assistant")) + HTML += "[rank]" + continue + if(config.enforce_human_authority && !user.client.prefs.pref_species.qualifies_for_rank(rank, user.client.prefs.features)) + if(user.client.prefs.pref_species.id == "human") + HTML += "[rank]" + else + HTML += "[rank]" + continue + if((rank in command_positions) || (rank == "AI"))//Bold head jobs + HTML += "[rank]" + else + HTML += "[rank]" + + HTML += "" + continue + + HTML += "[prefLevelLabel]" + HTML += "" + + for(var/i = 1, i < (limit - index), i += 1) // Finish the column so it is even + HTML += "" + + HTML += "
    " + var/rank = job.title + lastJob = job + if(jobban_isbanned(user, rank)) + HTML += "[rank] BANNED
    \[IN [(available_in_days)] DAYS\]
    \[MUTANT\]
    \[NON-HUMAN\]
    " + + var/prefLevelLabel = "ERROR" + var/prefLevelColor = "pink" + var/prefUpperLevel = -1 // level to assign on left click + var/prefLowerLevel = -1 // level to assign on right click + + if(GetJobDepartment(job, 1) & job.flag) + prefLevelLabel = "High" + prefLevelColor = "slateblue" + prefUpperLevel = 4 + prefLowerLevel = 2 + else if(GetJobDepartment(job, 2) & job.flag) + prefLevelLabel = "Medium" + prefLevelColor = "green" + prefUpperLevel = 1 + prefLowerLevel = 3 + else if(GetJobDepartment(job, 3) & job.flag) + prefLevelLabel = "Low" + prefLevelColor = "orange" + prefUpperLevel = 2 + prefLowerLevel = 4 + else + prefLevelLabel = "NEVER" + prefLevelColor = "red" + prefUpperLevel = 3 + prefLowerLevel = 1 + + + HTML += "" + + if(rank == "Assistant")//Assistant is special + if(job_civilian_low & ASSISTANT) + HTML += "Yes" + else + HTML += "No" + HTML += "
      
    " + HTML += "
    " + + var/message = "Be an Assistant if preferences unavailable" + if(joblessrole == BERANDOMJOB) + message = "Get random job if preferences unavailable" + else if(joblessrole == RETURNTOLOBBY) + message = "Return to lobby if preferences unavailable" + HTML += "

    [message]
    " + HTML += "
    Reset Preferences
    " + + user << browse(null, "window=preferences") + //user << browse(HTML, "window=mob_occupation;size=[width]x[height]") + var/datum/browser/popup = new(user, "mob_occupation", "
    Occupation Preferences
    ", width, height) + popup.set_window_options("can_close=0") + popup.set_content(HTML) + popup.open(0) + return + +/datum/preferences/proc/SetJobPreferenceLevel(datum/job/job, level) + if (!job) + return 0 + + if (level == 1) // to high + // remove any other job(s) set to high + job_civilian_med |= job_civilian_high + job_engsec_med |= job_engsec_high + job_medsci_med |= job_medsci_high + job_civilian_high = 0 + job_engsec_high = 0 + job_medsci_high = 0 + + if (job.department_flag == CIVILIAN) + job_civilian_low &= ~job.flag + job_civilian_med &= ~job.flag + job_civilian_high &= ~job.flag + + switch(level) + if (1) + job_civilian_high |= job.flag + if (2) + job_civilian_med |= job.flag + if (3) + job_civilian_low |= job.flag + + return 1 + else if (job.department_flag == ENGSEC) + job_engsec_low &= ~job.flag + job_engsec_med &= ~job.flag + job_engsec_high &= ~job.flag + + switch(level) + if (1) + job_engsec_high |= job.flag + if (2) + job_engsec_med |= job.flag + if (3) + job_engsec_low |= job.flag + + return 1 + else if (job.department_flag == MEDSCI) + job_medsci_low &= ~job.flag + job_medsci_med &= ~job.flag + job_medsci_high &= ~job.flag + + switch(level) + if (1) + job_medsci_high |= job.flag + if (2) + job_medsci_med |= job.flag + if (3) + job_medsci_low |= job.flag + + return 1 + + return 0 + +/datum/preferences/proc/UpdateJobPreference(mob/user, role, desiredLvl) + if(!SSjob || SSjob.occupations.len <= 0) + return + var/datum/job/job = SSjob.GetJob(role) + + if(!job) + user << browse(null, "window=mob_occupation") + ShowChoices(user) + return + + if (!isnum(desiredLvl)) + user << "UpdateJobPreference - desired level was not a number. Please notify coders!" + ShowChoices(user) + return + + if(role == "Assistant") + if(job_civilian_low & job.flag) + job_civilian_low &= ~job.flag + else + job_civilian_low |= job.flag + SetChoices(user) + return 1 + + SetJobPreferenceLevel(job, desiredLvl) + SetChoices(user) + + return 1 + + +/datum/preferences/proc/ResetJobs() + + job_civilian_high = 0 + job_civilian_med = 0 + job_civilian_low = 0 + + job_medsci_high = 0 + job_medsci_med = 0 + job_medsci_low = 0 + + job_engsec_high = 0 + job_engsec_med = 0 + job_engsec_low = 0 + + +/datum/preferences/proc/GetJobDepartment(datum/job/job, level) + if(!job || !level) + return 0 + switch(job.department_flag) + if(CIVILIAN) + switch(level) + if(1) + return job_civilian_high + if(2) + return job_civilian_med + if(3) + return job_civilian_low + if(MEDSCI) + switch(level) + if(1) + return job_medsci_high + if(2) + return job_medsci_med + if(3) + return job_medsci_low + if(ENGSEC) + switch(level) + if(1) + return job_engsec_high + if(2) + return job_engsec_med + if(3) + return job_engsec_low + return 0 + +/datum/preferences/proc/process_link(mob/user, list/href_list) + if(href_list["jobbancheck"]) + var/job = sanitizeSQL(href_list["jobbancheck"]) + var/sql_ckey = sanitizeSQL(user.ckey) + var/DBQuery/query_get_jobban = dbcon.NewQuery("SELECT reason, bantime, duration, expiration_time, a_ckey FROM [format_table_name("ban")] WHERE ckey = '[sql_ckey]' AND job = '[job]' AND (bantype = 'JOB_PERMABAN' OR (bantype = 'JOB_TEMPBAN' AND expiration_time > Now())) AND isnull(unbanned)") + if(!query_get_jobban.Execute()) + var/err = query_get_jobban.ErrorMsg() + log_game("SQL ERROR obtaining reason from ban table. Error : \[[err]\]\n") + return + if(query_get_jobban.NextRow()) + var/reason = query_get_jobban.item[1] + var/bantime = query_get_jobban.item[2] + var/duration = query_get_jobban.item[3] + var/expiration_time = query_get_jobban.item[4] + var/a_ckey = query_get_jobban.item[5] + var/text + text = "You, or another user of this computer, ([user.ckey]) is banned from playing [job]. The ban reason is:
    [reason]
    This ban was applied by [a_ckey] on [bantime]" + if(text2num(duration) > 0) + text += ". The ban is for [duration] minutes and expires on [expiration_time] (server time)" + text += ".
    " + user << text + return + + if(href_list["preference"] == "job") + switch(href_list["task"]) + if("close") + user << browse(null, "window=mob_occupation") + ShowChoices(user) + if("reset") + ResetJobs() + SetChoices(user) + if("random") + switch(joblessrole) + if(RETURNTOLOBBY) + if(jobban_isbanned(user, "Assistant")) + joblessrole = BERANDOMJOB + else + joblessrole = BEASSISTANT + if(BEASSISTANT) + joblessrole = BERANDOMJOB + if(BERANDOMJOB) + joblessrole = RETURNTOLOBBY + SetChoices(user) + if("setJobLevel") + UpdateJobPreference(user, href_list["text"], text2num(href_list["level"])) + else + SetChoices(user) + return 1 + + switch(href_list["task"]) + if("random") + switch(href_list["preference"]) + if("name") + real_name = pref_species.random_name(gender,1) + if("age") + age = rand(AGE_MIN, AGE_MAX) + if("hair") + hair_color = random_short_color() + if("hair_style") + hair_style = random_hair_style(gender) + if("facial") + facial_hair_color = random_short_color() + if("facial_hair_style") + facial_hair_style = random_facial_hair_style(gender) + if("underwear") + underwear = random_underwear(gender) + if("undershirt") + undershirt = random_undershirt(gender) + if("socks") + socks = random_socks() + if("eyes") + eye_color = random_eye_color() + if("s_tone") + skin_tone = random_skin_tone() + if("bag") + backbag = pick(backbaglist) + if("all") + random_character() + + if("input") + switch(href_list["preference"]) + if("ghostform") + if(unlock_content) + var/new_form = input(user, "Thanks for supporting BYOND - Choose your ghostly form:","Thanks for supporting BYOND",null) as null|anything in ghost_forms + if(new_form) + ghost_form = new_form + if("ghostorbit") + if(unlock_content) + var/new_orbit = input(user, "Thanks for supporting BYOND - Choose your ghostly orbit:","Thanks for supporting BYOND", null) as null|anything in ghost_orbits + if(new_orbit) + ghost_orbit = new_orbit + + if("ghostaccs") + var/new_ghost_accs = alert("Do you want your ghost to show full accessories where possible, hide accessories but still use the directional sprites where possible, or also ignore the directions and stick to the default sprites?",,GHOST_ACCS_FULL_NAME, GHOST_ACCS_DIR_NAME, GHOST_ACCS_NONE_NAME) + switch(new_ghost_accs) + if(GHOST_ACCS_FULL_NAME) + ghost_accs = GHOST_ACCS_FULL + if(GHOST_ACCS_DIR_NAME) + ghost_accs = GHOST_ACCS_DIR + if(GHOST_ACCS_NONE_NAME) + ghost_accs = GHOST_ACCS_NONE + + if("ghostothers") + var/new_ghost_others = alert("Do you want the ghosts of others to show up as their own setting, as their default sprites or always as the default white ghost?",,GHOST_OTHERS_THEIR_SETTING_NAME, GHOST_OTHERS_DEFAULT_SPRITE_NAME, GHOST_OTHERS_SIMPLE_NAME) + switch(new_ghost_others) + if(GHOST_OTHERS_THEIR_SETTING_NAME) + ghost_others = GHOST_OTHERS_THEIR_SETTING + if(GHOST_OTHERS_DEFAULT_SPRITE_NAME) + ghost_others = GHOST_OTHERS_DEFAULT_SPRITE + if(GHOST_OTHERS_SIMPLE_NAME) + ghost_others = GHOST_OTHERS_SIMPLE + + if("name") + var/new_name = reject_bad_name( input(user, "Choose your character's name:", "Character Preference") as text|null ) + if(new_name) + real_name = new_name + else + user << "Invalid name. Your name should be at least 2 and at most [MAX_NAME_LEN] characters long. It may only contain the characters A-Z, a-z, -, ' and ." + + if("age") + var/new_age = input(user, "Choose your character's age:\n([AGE_MIN]-[AGE_MAX])", "Character Preference") as num|null + if(new_age) + age = max(min( round(text2num(new_age)), AGE_MAX),AGE_MIN) + + if("metadata") + var/new_metadata = input(user, "Enter any information you'd like others to see, such as Roleplay-preferences:", "Game Preference" , metadata) as message|null + if(new_metadata) + metadata = sanitize(copytext(new_metadata,1,MAX_MESSAGE_LEN)) + + if("hair") + var/new_hair = input(user, "Choose your character's hair colour:", "Character Preference") as null|color + if(new_hair) + hair_color = sanitize_hexcolor(new_hair) + + + if("hair_style") + var/new_hair_style + if(gender == MALE) + new_hair_style = input(user, "Choose your character's hair style:", "Character Preference") as null|anything in hair_styles_male_list + else + new_hair_style = input(user, "Choose your character's hair style:", "Character Preference") as null|anything in hair_styles_female_list + if(new_hair_style) + hair_style = new_hair_style + + if("next_hair_style") + if (gender == MALE) + hair_style = next_list_item(hair_style, hair_styles_male_list) + else + hair_style = next_list_item(hair_style, hair_styles_female_list) + + if("previous_hair_style") + if (gender == MALE) + hair_style = previous_list_item(hair_style, hair_styles_male_list) + else + hair_style = previous_list_item(hair_style, hair_styles_female_list) + + if("facial") + var/new_facial = input(user, "Choose your character's facial-hair colour:", "Character Preference") as null|color + if(new_facial) + facial_hair_color = sanitize_hexcolor(new_facial) + + if("facial_hair_style") + var/new_facial_hair_style + if(gender == MALE) + new_facial_hair_style = input(user, "Choose your character's facial-hair style:", "Character Preference") as null|anything in facial_hair_styles_male_list + else + new_facial_hair_style = input(user, "Choose your character's facial-hair style:", "Character Preference") as null|anything in facial_hair_styles_female_list + if(new_facial_hair_style) + facial_hair_style = new_facial_hair_style + + if("next_facehair_style") + if (gender == MALE) + facial_hair_style = next_list_item(facial_hair_style, facial_hair_styles_male_list) + else + facial_hair_style = next_list_item(facial_hair_style, facial_hair_styles_female_list) + + if("previous_facehair_style") + if (gender == MALE) + facial_hair_style = previous_list_item(facial_hair_style, facial_hair_styles_male_list) + else + facial_hair_style = previous_list_item(facial_hair_style, facial_hair_styles_female_list) + + if("underwear") + var/new_underwear + if(gender == MALE) + new_underwear = input(user, "Choose your character's underwear:", "Character Preference") as null|anything in underwear_m + else + new_underwear = input(user, "Choose your character's underwear:", "Character Preference") as null|anything in underwear_f + if(new_underwear) + underwear = new_underwear + + if("undershirt") + var/new_undershirt + if(gender == MALE) + new_undershirt = input(user, "Choose your character's undershirt:", "Character Preference") as null|anything in undershirt_m + else + new_undershirt = input(user, "Choose your character's undershirt:", "Character Preference") as null|anything in undershirt_f + if(new_undershirt) + undershirt = new_undershirt + + if("socks") + var/new_socks + new_socks = input(user, "Choose your character's socks:", "Character Preference") as null|anything in socks_list + if(new_socks) + socks = new_socks + + if("eyes") + var/new_eyes = input(user, "Choose your character's eye colour:", "Character Preference") as color|null + if(new_eyes) + eye_color = sanitize_hexcolor(new_eyes) + + if("species") + + var/result = input(user, "Select a species", "Species Selection") as null|anything in roundstart_species + + if(result) + var/newtype = roundstart_species[result] + pref_species = new newtype() + //Now that we changed our species, we must verify that the mutant colour is still allowed. + var/temp_hsv = RGBtoHSV(features["mcolor"]) + if(features["mcolor"] == "#000" || (!(MUTCOLORS_PARTSONLY in pref_species.specflags) && ReadHSV(temp_hsv)[3] < ReadHSV("#7F7F7F")[3])) + features["mcolor"] = pref_species.default_color + if("mutant_color") + var/new_mutantcolor = input(user, "Choose your character's alien/mutant color:", "Character Preference") as color|null + if(new_mutantcolor) + var/temp_hsv = RGBtoHSV(new_mutantcolor) + if(new_mutantcolor == "#000000") + features["mcolor"] = pref_species.default_color + else if((MUTCOLORS_PARTSONLY in pref_species.specflags) || ReadHSV(temp_hsv)[3] >= ReadHSV("#7F7F7F")[3]) // mutantcolors must be bright, but only if they affect the skin + features["mcolor"] = sanitize_hexcolor(new_mutantcolor) + else + user << "Invalid color. Your color is not bright enough." + + if("tail_lizard") + var/new_tail + new_tail = input(user, "Choose your character's tail:", "Character Preference") as null|anything in tails_list_lizard + if(new_tail) + features["tail_lizard"] = new_tail + + if("tail_human") + var/new_tail + new_tail = input(user, "Choose your character's tail:", "Character Preference") as null|anything in tails_list_human + if(new_tail) + features["tail_human"] = new_tail + + if("snout") + var/new_snout + new_snout = input(user, "Choose your character's snout:", "Character Preference") as null|anything in snouts_list + if(new_snout) + features["snout"] = new_snout + + if("horns") + var/new_horns + new_horns = input(user, "Choose your character's horns:", "Character Preference") as null|anything in horns_list + if(new_horns) + features["horns"] = new_horns + + if("ears") + var/new_ears + new_ears = input(user, "Choose your character's ears:", "Character Preference") as null|anything in ears_list + if(new_ears) + features["ears"] = new_ears + + if("wings") + var/new_wings + new_wings = input(user, "Choose your character's wings:", "Character Preference") as null|anything in r_wings_list + if(new_wings) + features["wings"] = new_wings + + if("frills") + var/new_frills + new_frills = input(user, "Choose your character's frills:", "Character Preference") as null|anything in frills_list + if(new_frills) + features["frills"] = new_frills + + if("spines") + var/new_spines + new_spines = input(user, "Choose your character's spines:", "Character Preference") as null|anything in spines_list + if(new_spines) + features["spines"] = new_spines + + if("body_markings") + var/new_body_markings + new_body_markings = input(user, "Choose your character's body markings:", "Character Preference") as null|anything in body_markings_list + if(new_body_markings) + features["body_markings"] = new_body_markings + + if("legs") + var/new_legs + new_legs = input(user, "Choose your character's legs:", "Character Preference") as null|anything in legs_list + if(new_legs) + features["legs"] = new_legs + + if("s_tone") + var/new_s_tone = input(user, "Choose your character's skin-tone:", "Character Preference") as null|anything in skin_tones + if(new_s_tone) + skin_tone = new_s_tone + + if("ooccolor") + var/new_ooccolor = input(user, "Choose your OOC colour:", "Game Preference") as color|null + if(new_ooccolor) + ooccolor = sanitize_ooccolor(new_ooccolor) + + if("bag") + var/new_backbag = input(user, "Choose your character's style of bag:", "Character Preference") as null|anything in backbaglist + if(new_backbag) + backbag = new_backbag + + if("clown_name") + var/new_clown_name = reject_bad_name( input(user, "Choose your character's clown name:", "Character Preference") as text|null ) + if(new_clown_name) + custom_names["clown"] = new_clown_name + else + user << "Invalid name. Your name should be at least 2 and at most [MAX_NAME_LEN] characters long. It may only contain the characters A-Z, a-z, -, ' and ." + + if("mime_name") + var/new_mime_name = reject_bad_name( input(user, "Choose your character's mime name:", "Character Preference") as text|null ) + if(new_mime_name) + custom_names["mime"] = new_mime_name + else + user << "Invalid name. Your name should be at least 2 and at most [MAX_NAME_LEN] characters long. It may only contain the characters A-Z, a-z, -, ' and ." + + if("ai_name") + var/new_ai_name = reject_bad_name( input(user, "Choose your character's AI name:", "Character Preference") as text|null, 1 ) + if(new_ai_name) + custom_names["ai"] = new_ai_name + else + user << "Invalid name. Your name should be at least 2 and at most [MAX_NAME_LEN] characters long. It may only contain the characters A-Z, a-z, 0-9, -, ' and ." + + if("cyborg_name") + var/new_cyborg_name = reject_bad_name( input(user, "Choose your character's cyborg name:", "Character Preference") as text|null, 1 ) + if(new_cyborg_name) + custom_names["cyborg"] = new_cyborg_name + else + user << "Invalid name. Your name should be at least 2 and at most [MAX_NAME_LEN] characters long. It may only contain the characters A-Z, a-z, 0-9, -, ' and ." + + if("religion_name") + var/new_religion_name = reject_bad_name( input(user, "Choose your character's religion:", "Character Preference") as text|null ) + if(new_religion_name) + custom_names["religion"] = new_religion_name + else + user << "Invalid name. Your name should be at least 2 and at most [MAX_NAME_LEN] characters long. It may only contain the characters A-Z, a-z, -, ' and ." + + if("deity_name") + var/new_deity_name = reject_bad_name( input(user, "Choose your character's deity:", "Character Preference") as text|null ) + if(new_deity_name) + custom_names["deity"] = new_deity_name + else + user << "Invalid name. Your name should be at least 2 and at most [MAX_NAME_LEN] characters long. It may only contain the characters A-Z, a-z, -, ' and ." + if ("preferred_map") + var/maplist = list() + var/default = "Default" + if (config.defaultmap) + default += " ([config.defaultmap.friendlyname])" + for (var/M in config.maplist) + var/datum/votablemap/VM = config.maplist[M] + var/friendlyname = "[VM.friendlyname] " + if (VM.voteweight <= 0) + friendlyname += " (disabled)" + maplist[friendlyname] = VM.name + maplist[default] = null + var/pickedmap = input(user, "Choose your preferred map. This will be used to help weight random map selection.", "Character Preference") as null|anything in maplist + if (pickedmap) + preferred_map = maplist[pickedmap] + if ("clientfps") + var/version_message + if (user.client && user.client.byond_version < 511) + version_message = "\nYou need to be using byond version 511 or later to take advantage of this feature, your version of [user.client.byond_version] is too low" + if (world.byond_version < 511) + version_message += "\nThis server does not currently support client side fps. You can set now for when it does." + var/desiredfps = input(user, "Choose your desired fps.[version_message]\n(0 = synced with server tick rate (currently:[world.fps]))", "Character Preference", clientfps) as null|num + if (!isnull(desiredfps)) + clientfps = desiredfps + if (world.byond_version >= 511 && user.client && user.client.byond_version >= 511) + user.client.vars["fps"] = clientfps + + + + else + switch(href_list["preference"]) + if("publicity") + if(unlock_content) + toggles ^= MEMBER_PUBLIC + if("gender") + if(gender == MALE) + gender = FEMALE + else + gender = MALE + underwear = random_underwear(gender) + undershirt = random_undershirt(gender) + socks = random_socks() + facial_hair_style = random_facial_hair_style(gender) + hair_style = random_hair_style(gender) + + if("ui") + switch(UI_style) + if("Midnight") + UI_style = "Plasmafire" + if("Plasmafire") + UI_style = "Retro" + if("Retro") + UI_style = "Slimecore" + if("Slimecore") + UI_style = "Operative" + else + UI_style = "Midnight" + + if("hotkeys") + hotkeys = !hotkeys + + if("tgui_fancy") + tgui_fancy = !tgui_fancy + if("tgui_lock") + tgui_lock = !tgui_lock + + if("hear_adminhelps") + toggles ^= SOUND_ADMINHELP + if("announce_login") + toggles ^= ANNOUNCE_LOGIN + + if("be_special") + var/be_special_type = href_list["be_special_type"] + if(be_special_type in be_special) + be_special -= be_special_type + else + be_special += be_special_type + + if("name") + be_random_name = !be_random_name + + if("all") + be_random_body = !be_random_body + + if("hear_midis") + toggles ^= SOUND_MIDI + + if("lobby_music") + toggles ^= SOUND_LOBBY + if(toggles & SOUND_LOBBY) + user << sound(ticker.login_music, repeat = 0, wait = 0, volume = 85, channel = 1) + else + user.stopLobbySound() + + if("ghost_ears") + chat_toggles ^= CHAT_GHOSTEARS + + if("ghost_sight") + chat_toggles ^= CHAT_GHOSTSIGHT + + if("ghost_whispers") + chat_toggles ^= CHAT_GHOSTWHISPER + + if("ghost_radio") + chat_toggles ^= CHAT_GHOSTRADIO + + if("ghost_pda") + chat_toggles ^= CHAT_GHOSTPDA + + if("pull_requests") + chat_toggles ^= CHAT_PULLR + + if("allow_midround_antag") + toggles ^= MIDROUND_ANTAG + + if("save") + save_preferences() + save_character() + + if("load") + load_preferences() + load_character() + + if("changeslot") + if(!load_character(text2num(href_list["num"]))) + random_character() + real_name = random_unique_name(gender) + save_character() + + if("tab") + if (href_list["tab"]) + current_tab = text2num(href_list["tab"]) + + ShowChoices(user) + return 1 + +/datum/preferences/proc/copy_to(mob/living/carbon/human/character, icon_updates = 1) + if(be_random_name) + real_name = pref_species.random_name(gender) + + if(be_random_body) + random_character(gender) + + if(config.humans_need_surnames) + var/firstspace = findtext(real_name, " ") + var/name_length = length(real_name) + if(!firstspace) //we need a surname + real_name += " [pick(last_names)]" + else if(firstspace == name_length) + real_name += "[pick(last_names)]" + + character.real_name = real_name + character.name = character.real_name + + character.gender = gender + character.age = age + + character.eye_color = eye_color + character.hair_color = hair_color + character.facial_hair_color = facial_hair_color + + character.skin_tone = skin_tone + character.hair_style = hair_style + character.facial_hair_style = facial_hair_style + character.underwear = underwear + character.undershirt = undershirt + character.socks = socks + + character.backbag = backbag + + character.dna.features = features.Copy() + character.dna.real_name = character.real_name + var/datum/species/chosen_species + if(pref_species != /datum/species/human && config.mutant_races) + chosen_species = pref_species.type + else + chosen_species = /datum/species/human + character.set_species(chosen_species, icon_update=0) + + if(icon_updates) + character.update_body() + character.update_hair() + character.update_body_parts() diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm new file mode 100644 index 0000000..2831d74 --- /dev/null +++ b/code/modules/client/preferences_savefile.dm @@ -0,0 +1,447 @@ +//This is the lowest supported version, anything below this is completely obsolete and the entire savefile will be wiped. +#define SAVEFILE_VERSION_MIN 10 + +//This is the current version, anything below this will attempt to update (if it's not obsolete) +#define SAVEFILE_VERSION_MAX 17 +/* +SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Carn + This proc checks if the current directory of the savefile S needs updating + It is to be used by the load_character and load_preferences procs. + (S.cd=="/" is preferences, S.cd=="/character[integer]" is a character slot, etc) + + if the current directory's version is below SAVEFILE_VERSION_MIN it will simply wipe everything in that directory + (if we're at root "/" then it'll just wipe the entire savefile, for instance.) + + if its version is below SAVEFILE_VERSION_MAX but above the minimum, it will load data but later call the + respective update_preferences() or update_character() proc. + Those procs allow coders to specify format changes so users do not lose their setups and have to redo them again. + + Failing all that, the standard sanity checks are performed. They simply check the data is suitable, reverting to + initial() values if necessary. +*/ +/datum/preferences/proc/savefile_needs_update(savefile/S) + var/savefile_version + S["version"] >> savefile_version + + if(savefile_version < SAVEFILE_VERSION_MIN) + S.dir.Cut() + return -2 + if(savefile_version < SAVEFILE_VERSION_MAX) + return savefile_version + return -1 + + +/datum/preferences/proc/update_antagchoices(current_version, savefile/S) + if((!islist(be_special) || old_be_special ) && current_version < 12) + //Archived values of when antag pref defines were a bitfield+fitflags + var/B_traitor = 1 + var/B_operative = 2 + var/B_changeling = 4 + var/B_wizard = 8 + var/B_malf = 16 + var/B_rev = 32 + var/B_alien = 64 + var/B_pai = 128 + var/B_cultist = 256 + var/B_blob = 512 + var/B_ninja = 1024 + var/B_monkey = 2048 + var/B_gang = 4096 + var/B_abductor = 16384 + + var/list/archived = list(B_traitor,B_operative,B_changeling,B_wizard,B_malf,B_rev,B_alien,B_pai,B_cultist,B_blob,B_ninja,B_monkey,B_gang,B_abductor) + + be_special = list() + + for(var/flag in archived) + if(old_be_special & flag) + //this is shitty, but this proc should only be run once per player and then never again for the rest of eternity, + switch(flag) + if(1) //why aren't these the variables above? Good question, it's because byond complains the expression isn't constant, when it is. + be_special += ROLE_TRAITOR + if(2) + be_special += ROLE_OPERATIVE + if(4) + be_special += ROLE_CHANGELING + if(8) + be_special += ROLE_WIZARD + if(16) + be_special += ROLE_MALF + if(32) + be_special += ROLE_REV + if(64) + be_special += ROLE_ALIEN + if(128) + be_special += ROLE_PAI + if(256) + be_special += ROLE_CULTIST + if(512) + be_special += ROLE_BLOB + if(1024) + be_special += ROLE_NINJA + if(2048) + be_special += ROLE_MONKEY + if(4096) + be_special += ROLE_GANG + if(16384) + be_special += ROLE_ABDUCTOR + + +/datum/preferences/proc/update_preferences(current_version, savefile/S) + if(current_version < 10) + toggles |= MEMBER_PUBLIC + if(current_version < 11) + chat_toggles = TOGGLES_DEFAULT_CHAT + toggles = TOGGLES_DEFAULT + if(current_version < 12) + ignoring = list() + if(current_version < 15) + toggles |= SOUND_ANNOUNCEMENTS + + +//should this proc get fairly long (say 3 versions long), +//just increase SAVEFILE_VERSION_MIN so it's not as far behind +//SAVEFILE_VERSION_MAX and then delete any obsolete if clauses +//from this proc. +//It's only really meant to avoid annoying frequent players +//if your savefile is 3 months out of date, then 'tough shit'. +/datum/preferences/proc/update_character(current_version, savefile/S) + if(pref_species && !(pref_species.id in roundstart_species)) + var/rando_race = pick(config.roundstart_races) + pref_species = new rando_race() + + if(current_version < 13 || !istext(backbag)) + switch(backbag) + if(2) + backbag = DSATCHEL + else + backbag = DBACKPACK + if(current_version < 16) + var/berandom + S["userandomjob"] >> berandom + if (berandom) + joblessrole = BERANDOMJOB + else + joblessrole = BEASSISTANT + if(current_version < 17) + features["legs"] = "Normal Legs" + + + +/datum/preferences/proc/load_path(ckey,filename="preferences.sav") + if(!ckey) + return + path = "data/player_saves/[copytext(ckey,1,2)]/[ckey]/[filename]" + +/datum/preferences/proc/load_preferences() + if(!path) + return 0 + if(!fexists(path)) + return 0 + + var/savefile/S = new /savefile(path) + if(!S) + return 0 + S.cd = "/" + + var/needs_update = savefile_needs_update(S) + if(needs_update == -2) //fatal, can't load any data + return 0 + + //general preferences + S["ooccolor"] >> ooccolor + S["lastchangelog"] >> lastchangelog + S["UI_style"] >> UI_style + S["hotkeys"] >> hotkeys + S["tgui_fancy"] >> tgui_fancy + S["tgui_lock"] >> tgui_lock + + if(islist(S["be_special"])) + S["be_special"] >> be_special + else //force update and store the old bitflag version of be_special + needs_update = 11 + S["be_special"] >> old_be_special + + S["default_slot"] >> default_slot + S["chat_toggles"] >> chat_toggles + S["toggles"] >> toggles + S["ghost_form"] >> ghost_form + S["ghost_orbit"] >> ghost_orbit + S["ghost_accs"] >> ghost_accs + S["ghost_others"] >> ghost_others + S["preferred_map"] >> preferred_map + S["ignoring"] >> ignoring + S["ghost_hud"] >> ghost_hud + S["inquisitive_ghost"] >> inquisitive_ghost + S["uses_glasses_colour"]>> uses_glasses_colour + S["clientfps"] >> clientfps + + //try to fix any outdated data if necessary + if(needs_update >= 0) + update_preferences(needs_update, S) //needs_update = savefile_version if we need an update (positive integer) + update_antagchoices(needs_update, S) + + //Sanitize + ooccolor = sanitize_ooccolor(sanitize_hexcolor(ooccolor, 6, 1, initial(ooccolor))) + lastchangelog = sanitize_text(lastchangelog, initial(lastchangelog)) + UI_style = sanitize_inlist(UI_style, list("Midnight", "Plasmafire", "Retro", "Slimecore", "Operative"), initial(UI_style)) + hotkeys = sanitize_integer(hotkeys, 0, 1, initial(hotkeys)) + tgui_fancy = sanitize_integer(tgui_fancy, 0, 1, initial(tgui_fancy)) + tgui_lock = sanitize_integer(tgui_lock, 0, 1, initial(tgui_lock)) + default_slot = sanitize_integer(default_slot, 1, max_save_slots, initial(default_slot)) + toggles = sanitize_integer(toggles, 0, 65535, initial(toggles)) + clientfps = sanitize_integer(clientfps, 0, 1000, 0) + ghost_form = sanitize_inlist(ghost_form, ghost_forms, initial(ghost_form)) + ghost_orbit = sanitize_inlist(ghost_orbit, ghost_orbits, initial(ghost_orbit)) + ghost_accs = sanitize_inlist(ghost_accs, ghost_accs_options, GHOST_ACCS_DEFAULT_OPTION) + ghost_others = sanitize_inlist(ghost_others, ghost_others_options, GHOST_OTHERS_DEFAULT_OPTION) + + return 1 + +/datum/preferences/proc/save_preferences() + if(!path) + return 0 + var/savefile/S = new /savefile(path) + if(!S) + return 0 + S.cd = "/" + + S["version"] << SAVEFILE_VERSION_MAX //updates (or failing that the sanity checks) will ensure data is not invalid at load. Assume up-to-date + + //general preferences + S["ooccolor"] << ooccolor + S["lastchangelog"] << lastchangelog + S["UI_style"] << UI_style + S["hotkeys"] << hotkeys + S["tgui_fancy"] << tgui_fancy + S["tgui_lock"] << tgui_lock + S["be_special"] << be_special + S["default_slot"] << default_slot + S["toggles"] << toggles + S["chat_toggles"] << chat_toggles + S["ghost_form"] << ghost_form + S["ghost_orbit"] << ghost_orbit + S["ghost_accs"] << ghost_accs + S["ghost_others"] << ghost_others + S["preferred_map"] << preferred_map + S["ignoring"] << ignoring + S["ghost_hud"] << ghost_hud + S["inquisitive_ghost"] << inquisitive_ghost + S["uses_glasses_colour"]<< uses_glasses_colour + S["clientfps"] << clientfps + + return 1 + +/datum/preferences/proc/load_character(slot) + if(!path) + return 0 + if(!fexists(path)) + return 0 + var/savefile/S = new /savefile(path) + if(!S) + return 0 + S.cd = "/" + if(!slot) + slot = default_slot + slot = sanitize_integer(slot, 1, max_save_slots, initial(default_slot)) + if(slot != default_slot) + default_slot = slot + S["default_slot"] << slot + + S.cd = "/character[slot]" + var/needs_update = savefile_needs_update(S) + if(needs_update == -2) //fatal, can't load any data + return 0 + + //Species + var/species_id + S["species"] >> species_id + if(config.mutant_races && species_id && (species_id in roundstart_species)) + var/newtype = roundstart_species[species_id] + pref_species = new newtype() + else + var/rando_race = pick(config.roundstart_races) + pref_species = new rando_race() + + if(!S["features["mcolor"]"] || S["features["mcolor"]"] == "#000") + S["features["mcolor"]"] << "#FFF" + + //Character + S["OOC_Notes"] >> metadata + S["real_name"] >> real_name + S["name_is_always_random"] >> be_random_name + S["body_is_always_random"] >> be_random_body + S["gender"] >> gender + S["age"] >> age + S["hair_color"] >> hair_color + S["facial_hair_color"] >> facial_hair_color + S["eye_color"] >> eye_color + S["skin_tone"] >> skin_tone + S["hair_style_name"] >> hair_style + S["facial_style_name"] >> facial_hair_style + S["underwear"] >> underwear + S["undershirt"] >> undershirt + S["socks"] >> socks + S["backbag"] >> backbag + S["feature_mcolor"] >> features["mcolor"] + S["feature_lizard_tail"] >> features["tail_lizard"] + S["feature_lizard_snout"] >> features["snout"] + S["feature_lizard_horns"] >> features["horns"] + S["feature_lizard_frills"] >> features["frills"] + S["feature_lizard_spines"] >> features["spines"] + S["feature_lizard_body_markings"] >> features["body_markings"] + S["feature_lizard_legs"] >> features["legs"] + if(!config.mutant_humans) + features["tail_human"] = "none" + features["ears"] = "none" + else + S["feature_human_tail"] >> features["tail_human"] + S["feature_human_ears"] >> features["ears"] + S["clown_name"] >> custom_names["clown"] + S["mime_name"] >> custom_names["mime"] + S["ai_name"] >> custom_names["ai"] + S["cyborg_name"] >> custom_names["cyborg"] + S["religion_name"] >> custom_names["religion"] + S["deity_name"] >> custom_names["deity"] + + //Jobs + S["joblessrole"] >> joblessrole + S["job_civilian_high"] >> job_civilian_high + S["job_civilian_med"] >> job_civilian_med + S["job_civilian_low"] >> job_civilian_low + S["job_medsci_high"] >> job_medsci_high + S["job_medsci_med"] >> job_medsci_med + S["job_medsci_low"] >> job_medsci_low + S["job_engsec_high"] >> job_engsec_high + S["job_engsec_med"] >> job_engsec_med + S["job_engsec_low"] >> job_engsec_low + + //try to fix any outdated data if necessary + if(needs_update >= 0) + update_character(needs_update, S) //needs_update == savefile_version if we need an update (positive integer) + + //Sanitize + metadata = sanitize_text(metadata, initial(metadata)) + real_name = reject_bad_name(real_name) + if(!features["mcolor"] || features["mcolor"] == "#000") + features["mcolor"] = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F") + if(!real_name) + real_name = random_unique_name(gender) + be_random_name = sanitize_integer(be_random_name, 0, 1, initial(be_random_name)) + be_random_body = sanitize_integer(be_random_body, 0, 1, initial(be_random_body)) + gender = sanitize_gender(gender) + if(gender == MALE) + hair_style = sanitize_inlist(hair_style, hair_styles_male_list) + facial_hair_style = sanitize_inlist(facial_hair_style, facial_hair_styles_male_list) + underwear = sanitize_inlist(underwear, underwear_m) + undershirt = sanitize_inlist(undershirt, undershirt_m) + else + hair_style = sanitize_inlist(hair_style, hair_styles_female_list) + facial_hair_style = sanitize_inlist(facial_hair_style, facial_hair_styles_female_list) + underwear = sanitize_inlist(underwear, underwear_f) + undershirt = sanitize_inlist(undershirt, undershirt_f) + socks = sanitize_inlist(socks, socks_list) + age = sanitize_integer(age, AGE_MIN, AGE_MAX, initial(age)) + hair_color = sanitize_hexcolor(hair_color, 3, 0) + facial_hair_color = sanitize_hexcolor(facial_hair_color, 3, 0) + eye_color = sanitize_hexcolor(eye_color, 3, 0) + skin_tone = sanitize_inlist(skin_tone, skin_tones) + backbag = sanitize_inlist(backbag, backbaglist, initial(backbag)) + features["mcolor"] = sanitize_hexcolor(features["mcolor"], 3, 0) + features["tail_lizard"] = sanitize_inlist(features["tail_lizard"], tails_list_lizard) + features["tail_human"] = sanitize_inlist(features["tail_human"], tails_list_human, "None") + features["snout"] = sanitize_inlist(features["snout"], snouts_list) + features["horns"] = sanitize_inlist(features["horns"], horns_list) + features["ears"] = sanitize_inlist(features["ears"], ears_list, "None") + features["frills"] = sanitize_inlist(features["frills"], frills_list) + features["spines"] = sanitize_inlist(features["spines"], spines_list) + features["body_markings"] = sanitize_inlist(features["body_markings"], body_markings_list) + features["feature_lizard_legs"] = sanitize_inlist(features["legs"], legs_list, "Normal Legs") + + joblessrole = sanitize_integer(joblessrole, 1, 3, initial(joblessrole)) + job_civilian_high = sanitize_integer(job_civilian_high, 0, 65535, initial(job_civilian_high)) + job_civilian_med = sanitize_integer(job_civilian_med, 0, 65535, initial(job_civilian_med)) + job_civilian_low = sanitize_integer(job_civilian_low, 0, 65535, initial(job_civilian_low)) + job_medsci_high = sanitize_integer(job_medsci_high, 0, 65535, initial(job_medsci_high)) + job_medsci_med = sanitize_integer(job_medsci_med, 0, 65535, initial(job_medsci_med)) + job_medsci_low = sanitize_integer(job_medsci_low, 0, 65535, initial(job_medsci_low)) + job_engsec_high = sanitize_integer(job_engsec_high, 0, 65535, initial(job_engsec_high)) + job_engsec_med = sanitize_integer(job_engsec_med, 0, 65535, initial(job_engsec_med)) + job_engsec_low = sanitize_integer(job_engsec_low, 0, 65535, initial(job_engsec_low)) + + return 1 + +/datum/preferences/proc/save_character() + if(!path) + return 0 + var/savefile/S = new /savefile(path) + if(!S) + return 0 + S.cd = "/character[default_slot]" + + S["version"] << SAVEFILE_VERSION_MAX //load_character will sanitize any bad data, so assume up-to-date. + + //Character + S["OOC_Notes"] << metadata + S["real_name"] << real_name + S["name_is_always_random"] << be_random_name + S["body_is_always_random"] << be_random_body + S["gender"] << gender + S["age"] << age + S["hair_color"] << hair_color + S["facial_hair_color"] << facial_hair_color + S["eye_color"] << eye_color + S["skin_tone"] << skin_tone + S["hair_style_name"] << hair_style + S["facial_style_name"] << facial_hair_style + S["underwear"] << underwear + S["undershirt"] << undershirt + S["socks"] << socks + S["backbag"] << backbag + S["species"] << pref_species.id + S["feature_mcolor"] << features["mcolor"] + S["feature_lizard_tail"] << features["tail_lizard"] + S["feature_human_tail"] << features["tail_human"] + S["feature_lizard_snout"] << features["snout"] + S["feature_lizard_horns"] << features["horns"] + S["feature_human_ears"] << features["ears"] + S["feature_lizard_frills"] << features["frills"] + S["feature_lizard_spines"] << features["spines"] + S["feature_lizard_body_markings"] << features["body_markings"] + S["feature_lizard_legs"] << features["legs"] + S["clown_name"] << custom_names["clown"] + S["mime_name"] << custom_names["mime"] + S["ai_name"] << custom_names["ai"] + S["cyborg_name"] << custom_names["cyborg"] + S["religion_name"] << custom_names["religion"] + S["deity_name"] << custom_names["deity"] + + //Jobs + S["joblessrole"] << joblessrole + S["job_civilian_high"] << job_civilian_high + S["job_civilian_med"] << job_civilian_med + S["job_civilian_low"] << job_civilian_low + S["job_medsci_high"] << job_medsci_high + S["job_medsci_med"] << job_medsci_med + S["job_medsci_low"] << job_medsci_low + S["job_engsec_high"] << job_engsec_high + S["job_engsec_med"] << job_engsec_med + S["job_engsec_low"] << job_engsec_low + + return 1 + + +#undef SAVEFILE_VERSION_MAX +#undef SAVEFILE_VERSION_MIN +/* +//DEBUG +//Some crude tools for testing savefiles +//path is the savefile path +/client/verb/savefile_export(path as text) + var/savefile/S = new /savefile(path) + S.ExportText("/",file("[path].txt")) +//path is the savefile path +/client/verb/savefile_import(path as text) + var/savefile/S = new /savefile(path) + S.ImportText("/",file("[path].txt")) +*/ diff --git a/code/modules/client/preferences_toggles.dm b/code/modules/client/preferences_toggles.dm new file mode 100644 index 0000000..503e366 --- /dev/null +++ b/code/modules/client/preferences_toggles.dm @@ -0,0 +1,359 @@ +//toggles +/client/verb/toggle_ghost_ears() + set name = "Show/Hide GhostEars" + set category = "Preferences" + set desc = ".Toggle Between seeing all mob speech, and only speech of nearby mobs" + prefs.chat_toggles ^= CHAT_GHOSTEARS + src << "As a ghost, you will now [(prefs.chat_toggles & CHAT_GHOSTEARS) ? "see all speech in the world" : "only see speech from nearby mobs"]." + prefs.save_preferences() + feedback_add_details("admin_verb","TGE") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/verb/toggle_ghost_sight() + set name = "Show/Hide GhostSight" + set category = "Preferences" + set desc = ".Toggle Between seeing all mob emotes, and only emotes of nearby mobs" + prefs.chat_toggles ^= CHAT_GHOSTSIGHT + src << "As a ghost, you will now [(prefs.chat_toggles & CHAT_GHOSTSIGHT) ? "see all emotes in the world" : "only see emotes from nearby mobs"]." + prefs.save_preferences() + feedback_add_details("admin_verb","TGS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/verb/toggle_ghost_whispers() + set name = "Show/Hide GhostWhispers" + set category = "Preferences" + set desc = ".Toggle between hearing all whispers, and only whispers of nearby mobs" + prefs.chat_toggles ^= CHAT_GHOSTWHISPER + src << "As a ghost, you will now [(prefs.chat_toggles & CHAT_GHOSTWHISPER) ? "see all whispers in the world" : "only see whispers from nearby mobs"]." + prefs.save_preferences() + feedback_add_details("admin_verb","TGW") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/verb/toggle_ghost_radio() + set name = "Show/Hide GhostRadio" + set category = "Preferences" + set desc = ".Enable or disable hearing radio chatter as a ghost" + prefs.chat_toggles ^= CHAT_GHOSTRADIO + src << "As a ghost, you will now [(prefs.chat_toggles & CHAT_GHOSTRADIO) ? "see radio chatter" : "not see radio chatter"]." + prefs.save_preferences() + feedback_add_details("admin_verb","TGR") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! //social experiment, increase the generation whenever you copypaste this shamelessly GENERATION 1 + +/client/verb/toggle_ghost_pda() + set name = "Show/Hide GhostPDA" + set category = "Preferences" + set desc = ".Toggle Between seeing all mob pda messages, and only pda messages of nearby mobs" + prefs.chat_toggles ^= CHAT_GHOSTPDA + src << "As a ghost, you will now [(prefs.chat_toggles & CHAT_GHOSTPDA) ? "see all pda messages in the world" : "only see pda messages from nearby mobs"]." + prefs.save_preferences() + feedback_add_details("admin_verb","TGP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/toggle_hear_radio() + set name = "Show/Hide RadioChatter" + set category = "Preferences" + set desc = "Toggle seeing radiochatter from nearby radios and speakers" + if(!holder) return + prefs.chat_toggles ^= CHAT_RADIO + prefs.save_preferences() + usr << "You will [(prefs.chat_toggles & CHAT_RADIO) ? "now" : "no longer"] see radio chatter from nearby radios or speakers" + feedback_add_details("admin_verb","THR") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/verb/toggle_deathrattle() + set name = "Toggle Deathrattle" + set category = "Preferences" + set desc = "Toggle recieving a message in deadchat when sentient mobs \ + die." + prefs.toggles ^= DISABLE_DEATHRATTLE + prefs.save_preferences() + usr << "You will \ + [(prefs.toggles & DISABLE_DEATHRATTLE) ? "no longer" : "now"] get \ + messages when a sentient mob dies." + feedback_add_details("admin_verb", "TDR") // If you are copy-pasting this, maybe you should spend some time reading the comments. + +/client/verb/toggle_arrivalrattle() + set name = "Toggle Arrivalrattle" + set category = "Preferences" + set desc = "Toggle recieving a message in deadchat when someone joins \ + the station." + prefs.toggles ^= DISABLE_ARRIVALRATTLE + usr << "You will \ + [(prefs.toggles & DISABLE_ARRIVALRATTLE) ? "no longer" : "now"] get \ + messages when someone joins the station." + prefs.save_preferences() + feedback_add_details("admin_verb", "TAR") // If you are copy-pasting this, maybe you should rethink where your life went so wrong. + +/client/proc/toggleadminhelpsound() + set name = "Hear/Silence Adminhelps" + set category = "Preferences" + set desc = "Toggle hearing a notification when admin PMs are received" + if(!holder) + return + prefs.toggles ^= SOUND_ADMINHELP + prefs.save_preferences() + usr << "You will [(prefs.toggles & SOUND_ADMINHELP) ? "now" : "no longer"] hear a sound when adminhelps arrive." + feedback_add_details("admin_verb","AHS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/toggleannouncelogin() + set name = "Do/Don't Announce Login" + set category = "Preferences" + set desc = "Toggle if you want an announcement to admins when you login during a round" + if(!holder) + return + prefs.toggles ^= ANNOUNCE_LOGIN + prefs.save_preferences() + usr << "You will [(prefs.toggles & ANNOUNCE_LOGIN) ? "now" : "no longer"] have an announcement to other admins when you login." + feedback_add_details("admin_verb","TAL") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/deadchat() + set name = "Show/Hide Deadchat" + set category = "Preferences" + set desc ="Toggles seeing deadchat" + prefs.chat_toggles ^= CHAT_DEAD + prefs.save_preferences() + src << "You will [(prefs.chat_toggles & CHAT_DEAD) ? "now" : "no longer"] see deadchat." + feedback_add_details("admin_verb","TDV") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/toggleprayers() + set name = "Show/Hide Prayers" + set category = "Preferences" + set desc = "Toggles seeing prayers" + prefs.chat_toggles ^= CHAT_PRAYER + prefs.save_preferences() + src << "You will [(prefs.chat_toggles & CHAT_PRAYER) ? "now" : "no longer"] see prayerchat." + feedback_add_details("admin_verb","TP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/verb/toggleprayersounds() + set name = "Hear/Silence Prayer Sounds" + set category = "Preferences" + set desc = "Toggles hearing pray sounds." + prefs.toggles ^= SOUND_PRAYERS + prefs.save_preferences() + if(prefs.toggles & SOUND_PRAYERS) + src << "You will now hear prayer sounds." + else + src << "You will no longer prayer sounds." + feedback_add_details("admin_verb", "PSounds") + +/client/verb/togglemidroundantag() + set name = "Toggle Midround Antagonist" + set category = "Preferences" + set desc = "Toggles whether or not you will be considered for antagonist status given during a round." + prefs.toggles ^= MIDROUND_ANTAG + prefs.save_preferences() + src << "You will [(prefs.toggles & MIDROUND_ANTAG) ? "now" : "no longer"] be considered for midround antagonist positions." + feedback_add_details("admin_verb","TMidroundA") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/verb/toggletitlemusic() + set name = "Hear/Silence LobbyMusic" + set category = "Preferences" + set desc = "Toggles hearing the GameLobby music" + prefs.toggles ^= SOUND_LOBBY + prefs.save_preferences() + if(prefs.toggles & SOUND_LOBBY) + src << "You will now hear music in the game lobby." + if(isnewplayer(mob)) + playtitlemusic() + else + src << "You will no longer hear music in the game lobby." + if(isnewplayer(mob)) + mob.stopLobbySound() + feedback_add_details("admin_verb","TLobby") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/verb/togglemidis() + set name = "Hear/Silence Midis" + set category = "Preferences" + set desc = "Toggles hearing sounds uploaded by admins" + prefs.toggles ^= SOUND_MIDI + prefs.save_preferences() + if(prefs.toggles & SOUND_MIDI) + src << "You will now hear any sounds uploaded by admins." + if(admin_sound) + src << admin_sound + else + src << "You will no longer hear sounds uploaded by admins; any currently playing midis have been disabled." + if(admin_sound && !(admin_sound.status & SOUND_PAUSED)) + admin_sound.status |= SOUND_PAUSED + src << admin_sound + admin_sound.status ^= SOUND_PAUSED + feedback_add_details("admin_verb","TMidi") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/verb/stop_client_sounds() + set name = "Stop Sounds" + set category = "Preferences" + set desc = "Kills all currently playing sounds, use if admin taste in midis a shite" + src << sound(null) + feedback_add_details("admin_verb","SAPS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/verb/listen_ooc() + set name = "Show/Hide OOC" + set category = "Preferences" + set desc = "Toggles seeing OutOfCharacter chat" + prefs.chat_toggles ^= CHAT_OOC + prefs.save_preferences() + src << "You will [(prefs.chat_toggles & CHAT_OOC) ? "now" : "no longer"] see messages on the OOC channel." + feedback_add_details("admin_verb","TOOC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/verb/Toggle_Soundscape() //All new ambience should be added here so it works with this verb until someone better at things comes up with a fix that isn't awful + set name = "Hear/Silence Ambience" + set category = "Preferences" + set desc = "Toggles hearing ambient sound effects" + prefs.toggles ^= SOUND_AMBIENCE + prefs.save_preferences() + if(prefs.toggles & SOUND_AMBIENCE) + src << "You will now hear ambient sounds." + else + src << "You will no longer hear ambient sounds." + src << sound(null, repeat = 0, wait = 0, volume = 0, channel = 1) + src << sound(null, repeat = 0, wait = 0, volume = 0, channel = 2) + feedback_add_details("admin_verb","TAmbi") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +// This needs a toggle because you people are awful and spammed terrible music +/client/verb/toggle_instruments() + set name = "Hear/Silence Instruments" + set category = "Preferences" + set desc = "Toggles hearing musical instruments like the violin and piano" + prefs.toggles ^= SOUND_INSTRUMENTS + prefs.save_preferences() + if(prefs.toggles & SOUND_INSTRUMENTS) + src << "You will now hear people playing musical instruments." + else + src << "You will no longer hear musical instruments." + feedback_add_details("admin_verb","TInstru") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +//Lots of people get headaches from the normal ship ambience, this is to prevent that +/client/verb/toggle_ship_ambience() + set name = "Hear/Silence Ship Ambience" + set category = "Preferences" + set desc = "Toggles hearing generalized ship ambience, no matter your area." + prefs.toggles ^= SOUND_SHIP_AMBIENCE + prefs.save_preferences() + if(prefs.toggles & SOUND_SHIP_AMBIENCE) + src << "You will now hear ship ambience." + else + src << "You will no longer hear ship ambience." + src << sound(null, repeat = 0, wait = 0, volume = 0, channel = 2) + src.ambience_playing = 0 + feedback_add_details("admin_verb", "SAmbi") //If you are copy-pasting this, I bet you read this comment expecting to see the same thing :^) + +var/global/list/ghost_forms = list("ghost","ghostking","ghostian2","skeleghost","ghost_red","ghost_black", \ + "ghost_blue","ghost_yellow","ghost_green","ghost_pink", \ + "ghost_cyan","ghost_dblue","ghost_dred","ghost_dgreen", \ + "ghost_dcyan","ghost_grey","ghost_dyellow","ghost_dpink", "ghost_purpleswirl","ghost_funkypurp","ghost_pinksherbert","ghost_blazeit",\ + "ghost_mellow","ghost_rainbow","ghost_camo","ghost_fire", "catghost") +/client/proc/pick_form() + if(!is_content_unlocked()) + alert("This setting is for accounts with BYOND premium only.") + return + var/new_form = input(src, "Thanks for supporting BYOND - Choose your ghostly form:","Thanks for supporting BYOND",null) as null|anything in ghost_forms + if(new_form) + prefs.ghost_form = new_form + prefs.save_preferences() + if(isobserver(mob)) + var/mob/dead/observer/O = mob + O.update_icon(new_form) + +var/global/list/ghost_orbits = list(GHOST_ORBIT_CIRCLE,GHOST_ORBIT_TRIANGLE,GHOST_ORBIT_SQUARE,GHOST_ORBIT_HEXAGON,GHOST_ORBIT_PENTAGON) + +/client/proc/pick_ghost_orbit() + if(!is_content_unlocked()) + alert("This setting is for accounts with BYOND premium only.") + return + var/new_orbit = input(src, "Thanks for supporting BYOND - Choose your ghostly orbit:","Thanks for supporting BYOND",null) as null|anything in ghost_orbits + if(new_orbit) + prefs.ghost_orbit = new_orbit + prefs.save_preferences() + if(isobserver(mob)) + var/mob/dead/observer/O = mob + O.ghost_orbit = new_orbit + +/client/proc/pick_ghost_accs() + var/new_ghost_accs = alert("Do you want your ghost to show full accessories where possible, hide accessories but still use the directional sprites where possible, or also ignore the directions and stick to the default sprites?",,"full accessories", "only directional sprites", "default sprites") + if(new_ghost_accs) + switch(new_ghost_accs) + if("full accessories") + prefs.ghost_accs = GHOST_ACCS_FULL + if("only directional sprites") + prefs.ghost_accs = GHOST_ACCS_DIR + if("default sprites") + prefs.ghost_accs = GHOST_ACCS_NONE + prefs.save_preferences() + if(isobserver(mob)) + var/mob/dead/observer/O = mob + O.update_icon() + +/client/verb/pick_ghost_customization() + set name = "Ghost Customization" + set category = "Preferences" + set desc = "Customize your ghastly appearance." + if(is_content_unlocked()) + switch(alert("Which setting do you want to change?",,"Ghost Form","Ghost Orbit","Ghost Accessories")) + if("Ghost Form") + pick_form() + if("Ghost Orbit") + pick_ghost_orbit() + if("Ghost Accessories") + pick_ghost_accs() + else + pick_ghost_accs() + +/client/verb/pick_ghost_others() + set name = "Ghosts of Others" + set category = "Preferences" + set desc = "Change display settings for the ghosts of other players." + var/new_ghost_others = alert("Do you want the ghosts of others to show up as their own setting, as their default sprites or always as the default white ghost?",,"Their Setting", "Default Sprites", "White Ghost") + if(new_ghost_others) + switch(new_ghost_others) + if("Their Setting") + prefs.ghost_others = GHOST_OTHERS_THEIR_SETTING + if("Default Sprites") + prefs.ghost_others = GHOST_OTHERS_DEFAULT_SPRITE + if("White Ghost") + prefs.ghost_others = GHOST_OTHERS_SIMPLE + prefs.save_preferences() + if(isobserver(mob)) + var/mob/dead/observer/O = mob + O.updateghostsight() + +/client/verb/toggle_intent_style() + set name = "Toggle Intent Selection Style" + set category = "Preferences" + set desc = "Toggle between directly clicking the desired intent or clicking to rotate through." + prefs.toggles ^= INTENT_STYLE + src << "[(prefs.toggles & INTENT_STYLE) ? "Clicking directly on intents selects them." : "Clicking on intents rotates selection clockwise."]" + prefs.save_preferences() + feedback_add_details("admin_verb","ITENTS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/verb/setup_character() + set name = "Game Preferences" + set category = "Preferences" + set desc = "Allows you to access the Setup Character screen. Changes to your character won't take effect until next round, but other changes will." + prefs.current_tab = 1 + prefs.ShowChoices(usr) + +/client/verb/toggle_ghost_hud_pref() + set name = "Toggle Ghost HUD" + set category = "Preferences" + set desc = "Hide/Show Ghost HUD" + + prefs.ghost_hud = !prefs.ghost_hud + src << "Ghost HUD will now be [prefs.ghost_hud ? "visible" : "hidden"]." + prefs.save_preferences() + if(isobserver(mob)) + mob.hud_used.show_hud() + +/client/verb/toggle_inquisition() // warning: unexpected inquisition + set name = "Toggle Inquisitiveness" + set desc = "Sets whether your ghost examines everything on click by default" + set category = "Preferences" + + prefs.inquisitive_ghost = !prefs.inquisitive_ghost + prefs.save_preferences() + if(prefs.inquisitive_ghost) + src << "You will now examine everything you click on." + else + src << "You will no longer examine things you click on." + +/client/verb/toggle_announcement_sound() + set name = "Hear/Silence Announcements" + set category = "Preferences" + set desc = ".Toggles hearing Central Command, Captain, VOX, and other announcement sounds" + prefs.toggles ^= SOUND_ANNOUNCEMENTS + src << "You will now [(prefs.toggles & SOUND_ANNOUNCEMENTS) ? "hear announcement sounds" : "no longer hear announcements"]." + prefs.save_preferences() + feedback_add_details("admin_verb","TAS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! diff --git a/code/modules/client/verbs/ooc.dm b/code/modules/client/verbs/ooc.dm new file mode 100644 index 0000000..e37951e --- /dev/null +++ b/code/modules/client/verbs/ooc.dm @@ -0,0 +1,176 @@ +/client/verb/ooc(msg as text) + set name = "OOC" //Gave this shit a shorter name so you only have to time out "ooc" rather than "ooc message" to use it --NeoFite + set category = "OOC" + + if(say_disabled) //This is here to try to identify lag problems + usr << "Speech is currently admin-disabled." + return + + if(!mob) + return + if(IsGuestKey(key)) + src << "Guests may not use OOC." + return + + msg = copytext(sanitize(msg), 1, MAX_MESSAGE_LEN) + if(!msg) + return + + if(!(prefs.chat_toggles & CHAT_OOC)) + src << "You have OOC muted." + return + + if(!holder) + if(!ooc_allowed) + src << "OOC is globally muted." + return + if(!dooc_allowed && (mob.stat == DEAD)) + usr << "OOC for dead mobs has been turned off." + return + if(prefs.muted & MUTE_OOC) + src << "You cannot use OOC (muted)." + return + if(src.mob) + if(jobban_isbanned(src.mob, "OOC")) + src << "You have been banned from OOC." + return + if(handle_spam_prevention(msg,MUTE_OOC)) + return + if(findtext(msg, "byond://")) + src << "Advertising other servers is not allowed." + log_admin("[key_name(src)] has attempted to advertise in OOC: [msg]") + message_admins("[key_name_admin(src)] has attempted to advertise in OOC: [msg]") + return + + var/raw_msg = msg + + msg = emoji_parse(msg) + + if((copytext(msg, 1, 2) in list(".",";",":","#")) || (findtext(lowertext(copytext(msg, 1, 5)), "say"))) + if(alert("Your message \"[raw_msg]\" looks like it was meant for in game communication, say it in OOC?", "Meant for OOC?", "No", "Yes") != "Yes") + return + + log_ooc("[mob.name]/[key] : [raw_msg]") + + var/keyname = key + if(prefs.unlock_content) + if(prefs.toggles & MEMBER_PUBLIC) + keyname = "[keyname]" + + for(var/client/C in clients) + if(C.prefs.chat_toggles & CHAT_OOC) + if(holder) + if(!holder.fakekey || C.holder) + if(check_rights_for(src, R_ADMIN)) + C << "[config.allow_admin_ooccolor && prefs.ooccolor ? "" :"" ]OOC: [keyname][holder.fakekey ? "/([holder.fakekey])" : ""]: [msg]" + else + C << "OOC: [keyname][holder.fakekey ? "/([holder.fakekey])" : ""]: [msg]" + else + C << "OOC: [holder.fakekey ? holder.fakekey : key]: [msg]" + else if(!(key in C.prefs.ignoring)) + C << "OOC: [keyname]: [msg]" + +/proc/toggle_ooc(toggle = null) + if(toggle != null) //if we're specifically en/disabling ooc + if(toggle != ooc_allowed) + ooc_allowed = toggle + else + return + else //otherwise just toggle it + ooc_allowed = !ooc_allowed + world << "The OOC channel has been globally [ooc_allowed ? "enabled" : "disabled"]." + +var/global/normal_ooc_colour = OOC_COLOR + +/client/proc/set_ooc(newColor as color) + set name = "Set Player OOC Color" + set desc = "Modifies player OOC Color" + set category = "Fun" + normal_ooc_colour = sanitize_ooccolor(newColor) + +/client/proc/reset_ooc() + set name = "Reset Player OOC Color" + set desc = "Returns player OOC Color to default" + set category = "Fun" + normal_ooc_colour = OOC_COLOR + +/client/verb/colorooc() + set name = "Set Your OOC Color" + set category = "Preferences" + + if(!holder || check_rights_for(src, R_ADMIN)) + if(!is_content_unlocked()) + return + + var/new_ooccolor = input(src, "Please select your OOC color.", "OOC color", prefs.ooccolor) as color|null + if(new_ooccolor) + prefs.ooccolor = sanitize_ooccolor(new_ooccolor) + prefs.save_preferences() + feedback_add_details("admin_verb","OC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + return + +/client/verb/resetcolorooc() + set name = "Reset Your OOC Color" + set desc = "Returns your OOC Color to default" + set category = "Preferences" + + if(!holder || check_rights_for(src, R_ADMIN)) + if(!is_content_unlocked()) + return + + prefs.ooccolor = initial(prefs.ooccolor) + prefs.save_preferences() + +//Checks admin notice +/client/verb/admin_notice() + set name = "Adminnotice" + set category = "Admin" + set desc ="Check the admin notice if it has been set" + + if(admin_notice) + src << "Admin Notice:\n \t [admin_notice]" + else + src << "There are no admin notices at the moment." + +/client/verb/motd() + set name = "MOTD" + set category = "OOC" + set desc ="Check the Message of the Day" + + if(join_motd) + src << "
    [join_motd]
    " + else + src << "The Message of the Day has not been set." + +/client/proc/self_notes() + set name = "View Admin Remarks" + set category = "OOC" + set desc = "View the notes that admins have written about you" + + if(!config.see_own_notes) + usr << "Sorry, that function is not enabled on this server." + return + + show_note(usr.ckey, null, 1) + +/client/proc/ignore_key(client) + var/client/C = client + if(C.key in prefs.ignoring) + prefs.ignoring -= C.key + else + prefs.ignoring |= C.key + src << "You are [(C.key in prefs.ignoring) ? "now" : "no longer"] ignoring [C.key] on the OOC channel." + prefs.save_preferences() + +/client/verb/select_ignore() + set name = "Ignore" + set category = "OOC" + set desc ="Ignore a player's messages on the OOC channel" + + var/selection = input("Please, select a player!", "Ignore", null, null) as null|anything in sortKey(clients) + if(!selection) + return + if(selection == src) + src << "You can't ignore yourself." + return + ignore_key(selection) diff --git a/code/modules/client/verbs/sethotkeys.dm b/code/modules/client/verbs/sethotkeys.dm new file mode 100644 index 0000000..f7bf137 --- /dev/null +++ b/code/modules/client/verbs/sethotkeys.dm @@ -0,0 +1,24 @@ +/client/verb/sethotkeys(from_pref = 0 as num) + set name = "Set Hotkeys" + set hidden = 1 + set desc = "Used to set mob-specific hotkeys or load hoykey mode from preferences" + + var/hotkey_default = "default" + var/hotkey_macro = "hotkeys" + var/current_setting + + var/list/default_macros = list("default", "robot-default") + + if(from_pref) + current_setting = (prefs.hotkeys ? hotkey_macro : hotkey_default) + else + current_setting = winget(src, "mainwindow", "macro") + + if(mob) + hotkey_macro = mob.macro_hotkeys + hotkey_default = mob.macro_default + + if(current_setting in default_macros) + winset(src, null, "mainwindow.macro=[hotkey_default] input.focus=true input.background-color=#d3b5b5") + else + winset(src, null, "mainwindow.macro=[hotkey_macro] mapwindow.map.focus=true input.background-color=#e0e0e0") \ No newline at end of file diff --git a/code/modules/client/verbs/suicide.dm b/code/modules/client/verbs/suicide.dm new file mode 100644 index 0000000..92221f3 --- /dev/null +++ b/code/modules/client/verbs/suicide.dm @@ -0,0 +1,174 @@ +/mob/var/suiciding = 0 + +/mob/living/carbon/human/verb/suicide() + set hidden = 1 + if(!canSuicide()) + return + var/confirm = alert("Are you sure you want to commit suicide?", "Confirm Suicide", "Yes", "No") + if(!canSuicide()) + return + if(confirm == "Yes") + suiciding = 1 + log_game("[key_name(src)] (job: [job ? "[job]" : "None"]) commited suicide at [get_area(src)].") + var/obj/item/held_item = get_active_held_item() + if(held_item) + var/damagetype = held_item.suicide_act(src) + if(damagetype) + if(damagetype & SHAME) + adjustStaminaLoss(200) + suiciding = 0 + return + var/damage_mod = 0 + for(var/T in list(BRUTELOSS, FIRELOSS, TOXLOSS, OXYLOSS)) + damage_mod += (T & damagetype) ? 1 : 0 + damage_mod = max(1, damage_mod) + + //Do 200 damage divided by the number of damage types applied. + if(damagetype & BRUTELOSS) + adjustBruteLoss(200/damage_mod) + + if(damagetype & FIRELOSS) + adjustFireLoss(200/damage_mod) + + if(damagetype & TOXLOSS) + adjustToxLoss(200/damage_mod) + + if(damagetype & OXYLOSS) + adjustOxyLoss(200/damage_mod) + + //If something went wrong, just do normal oxyloss + if(!(damagetype & (BRUTELOSS | FIRELOSS | TOXLOSS | OXYLOSS) )) + adjustOxyLoss(max(200 - getToxLoss() - getFireLoss() - getBruteLoss() - getOxyLoss(), 0)) + + death(0) + return + + var/suicide_message = pick("[src] is attempting to bite \his tongue off! It looks like \he's trying to commit suicide.", \ + "[src] is jamming \his thumbs into \his eye sockets! It looks like \he's trying to commit suicide.", \ + "[src] is twisting \his own neck! It looks like \he's trying to commit suicide.", \ + "[src] is holding \his breath! It looks like \he's trying to commit suicide.") + + visible_message("[suicide_message]", "[suicide_message]") + + adjustOxyLoss(max(200 - getToxLoss() - getFireLoss() - getBruteLoss() - getOxyLoss(), 0)) + death(0) + +/mob/living/brain/verb/suicide() + set hidden = 1 + if(!canSuicide()) + return + var/confirm = alert("Are you sure you want to commit suicide?", "Confirm Suicide", "Yes", "No") + if(!canSuicide()) + return + if(confirm == "Yes") + suiciding = 1 + visible_message("[src]'s brain is growing dull and lifeless. It looks like it's lost the will to live.", \ + "[src]'s brain is growing dull and lifeless. It looks like it's lost the will to live.") + spawn(50) + death(0) + +/mob/living/carbon/monkey/verb/suicide() + set hidden = 1 + if(!canSuicide()) + return + var/confirm = alert("Are you sure you want to commit suicide?", "Confirm Suicide", "Yes", "No") + if(!canSuicide()) + return + if(confirm == "Yes") + suiciding = 1 + //instead of killing them instantly, just put them at -175 health and let 'em gasp for a while + visible_message("[src] is attempting to bite \his tongue. It looks like \he's trying to commit suicide.", \ + "[src] is attempting to bite \his tongue. It looks like \he's trying to commit suicide.") + adjustOxyLoss(max(200- getToxLoss() - getFireLoss() - getBruteLoss() - getOxyLoss(), 0)) + death(0) + +/mob/living/silicon/ai/verb/suicide() + set hidden = 1 + if(!canSuicide()) + return + var/confirm = alert("Are you sure you want to commit suicide?", "Confirm Suicide", "Yes", "No") + if(!canSuicide()) + return + if(confirm == "Yes") + suiciding = 1 + visible_message("[src] is powering down. It looks like \he's trying to commit suicide.", \ + "[src] is powering down. It looks like \he's trying to commit suicide.") + //put em at -175 + adjustOxyLoss(max(maxHealth * 2 - getToxLoss() - getFireLoss() - getBruteLoss() - getOxyLoss(), 0)) + death(0) + +/mob/living/silicon/robot/verb/suicide() + set hidden = 1 + if(!canSuicide()) + return + var/confirm = alert("Are you sure you want to commit suicide?", "Confirm Suicide", "Yes", "No") + if(!canSuicide()) + return + if(confirm == "Yes") + suiciding = 1 + visible_message("[src] is powering down. It looks like \he's trying to commit suicide.", \ + "[src] is powering down. It looks like \he's trying to commit suicide.") + //put em at -175 + adjustOxyLoss(max(maxHealth * 2 - getToxLoss() - getFireLoss() - getBruteLoss() - getOxyLoss(), 0)) + death(0) + +/mob/living/silicon/pai/verb/suicide() + set category = "pAI Commands" + set desc = "Kill yourself and become a ghost (You will receive a confirmation prompt)" + set name = "pAI Suicide" + var/answer = input("REALLY kill yourself? This action can't be undone.", "Suicide", "No") in list ("Yes", "No") + if(answer == "Yes") + card.removePersonality() + var/turf/T = get_turf(src.loc) + T.visible_message("[src] flashes a message across its screen, \"Wiping core files. Please acquire a new personality to continue using pAI device functions.\"", null, \ + "[src] bleeps electronically.") + death(0) + else + src << "Aborting suicide attempt." + +/mob/living/carbon/alien/humanoid/verb/suicide() + set hidden = 1 + if(!canSuicide()) + return + var/confirm = alert("Are you sure you want to commit suicide?", "Confirm Suicide", "Yes", "No") + if(!canSuicide()) + return + if(confirm == "Yes") + suiciding = 1 + visible_message("[src] is thrashing wildly! It looks like \he's trying to commit suicide.", \ + "[src] is thrashing wildly! It looks like \he's trying to commit suicide.", \ + "You hear thrashing.") + //put em at -175 + adjustOxyLoss(max(200 - getFireLoss() - getBruteLoss() - getOxyLoss(), 0)) + death(0) + +/mob/living/simple_animal/verb/suicide() + set hidden = 1 + if(!canSuicide()) + return + var/confirm = alert("Are you sure you want to commit suicide?", "Confirm Suicide", "Yes", "No") + if(!canSuicide()) + return + if(confirm == "Yes") + suiciding = 1 + visible_message("[src] begins to fall down. It looks like \he's lost the will to live.", \ + "[src] begins to fall down. It looks like \he's lost the will to live.") + death(0) + + +/mob/living/proc/canSuicide() + if(stat == CONSCIOUS) + return 1 + else if(stat == DEAD) + src << "You're already dead!" + else if(stat == UNCONSCIOUS) + src << "You need to be conscious to suicide!" + return + +/mob/living/carbon/canSuicide() + if(!..()) + return + if(!canmove || restrained()) //just while I finish up the new 'fun' suiciding verb. This is to prevent metagaming via suicide + src << "You can't commit suicide whilst restrained! ((You can type Ghost instead however.))" + return + return 1 diff --git a/code/modules/client/verbs/who.dm b/code/modules/client/verbs/who.dm new file mode 100644 index 0000000..48d7d6f --- /dev/null +++ b/code/modules/client/verbs/who.dm @@ -0,0 +1,85 @@ +/client/verb/who() + set name = "Who" + set category = "OOC" + + var/msg = "Current Players:\n" + + var/list/Lines = list() + + if(holder) + if (check_rights(R_ADMIN,0) && isobserver(src.mob))//If they have +ADMIN and are a ghost they can see players IC names and statuses. + var/mob/dead/observer/G = src.mob + if(!G.started_as_observer)//If you aghost to do this, KorPhaeron will deadmin you in your sleep. + log_admin("[key_name(usr)] checked advanced who in-round") + for(var/client/C in clients) + var/entry = "\t[C.key]" + if(C.holder && C.holder.fakekey) + entry += " (as [C.holder.fakekey])" + if (isnewplayer(C.mob)) + entry += " - In Lobby" + else + entry += " - Playing as [C.mob.real_name]" + switch(C.mob.stat) + if(UNCONSCIOUS) + entry += " - Unconscious" + if(DEAD) + if(isobserver(C.mob)) + var/mob/dead/observer/O = C.mob + if(O.started_as_observer) + entry += " - Observing" + else + entry += " - DEAD" + else + entry += " - DEAD" + if(is_special_character(C.mob)) + entry += " - Antagonist" + entry += " (?)" + Lines += entry + else//If they don't have +ADMIN, only show hidden admins + for(var/client/C in clients) + var/entry = "\t[C.key]" + if(C.holder && C.holder.fakekey) + entry += " (as [C.holder.fakekey])" + Lines += entry + else + for(var/client/C in clients) + if(C.holder && C.holder.fakekey) + Lines += C.holder.fakekey + else + Lines += C.key + + for(var/line in sortList(Lines)) + msg += "[line]\n" + + msg += "Total Players: [length(Lines)]" + src << msg + +/client/verb/adminwho() + set category = "Admin" + set name = "Adminwho" + + var/msg = "Current Admins:\n" + if(holder) + for(var/client/C in admins) + msg += "\t[C] is a [C.holder.rank]" + + if(C.holder.fakekey) + msg += " (as [C.holder.fakekey])" + + if(isobserver(C.mob)) + msg += " - Observing" + else if(isnewplayer(C.mob)) + msg += " - Lobby" + else + msg += " - Playing" + + if(C.is_afk()) + msg += " (AFK)" + msg += "\n" + else + for(var/client/C in admins) + if(!C.holder.fakekey) + msg += "\t[C] is a [C.holder.rank]\n" + msg += "Adminhelps are also sent to IRC. If no admins are available in game adminhelp anyways and an admin on IRC will see it and respond." + src << msg + diff --git a/code/modules/clothing/chameleon.dm b/code/modules/clothing/chameleon.dm new file mode 100644 index 0000000..8068b0e --- /dev/null +++ b/code/modules/clothing/chameleon.dm @@ -0,0 +1,367 @@ +/datum/action/item_action/chameleon/drone/randomise + name = "Randomise Headgear" + button_icon_state = "random" + +/datum/action/item_action/chameleon/drone/randomise/Trigger() + if(!IsAvailable()) + return + + // Damn our lack of abstract interfeces + if (istype(target, /obj/item/clothing/head/chameleon/drone)) + var/obj/item/clothing/head/chameleon/drone/X = target + X.chameleon_action.random_look(owner) + if (istype(target, /obj/item/clothing/mask/chameleon/drone)) + var/obj/item/clothing/mask/chameleon/drone/Z = target + Z.chameleon_action.random_look(owner) + + return 1 + + +/datum/action/item_action/chameleon/drone/togglehatmask + name = "Toggle Headgear Mode" + +/datum/action/item_action/chameleon/drone/togglehatmask/New() + ..() + + if (istype(target, /obj/item/clothing/head/chameleon/drone)) + button_icon_state = "drone_camogear_helm" + if (istype(target, /obj/item/clothing/mask/chameleon/drone)) + button_icon_state = "drone_camogear_mask" + +/datum/action/item_action/chameleon/drone/togglehatmask/Trigger() + if(!IsAvailable()) + return + + // No point making the code more complicated if no non-drone + // is ever going to use one of these + + var/mob/living/simple_animal/drone/D + + if(istype(owner, /mob/living/simple_animal/drone)) + D = owner + else + return + + // The drone unEquip() proc sets head to null after dropping + // an item, so we need to keep a reference to our old headgear + // to make sure it's deleted. + var/obj/old_headgear = target + var/obj/new_headgear + + if(istype(old_headgear,/obj/item/clothing/head/chameleon/drone)) + new_headgear = new /obj/item/clothing/mask/chameleon/drone() + else if(istype(old_headgear,/obj/item/clothing/mask/chameleon/drone)) + new_headgear = new /obj/item/clothing/head/chameleon/drone() + else + owner << "You shouldn't be able to toggle a camogear helmetmask if you're not wearing it" + if(new_headgear) + // Force drop the item in the headslot, even though + // it's NODROP + D.unEquip(target, 1) + qdel(old_headgear) + // where is `slot_head` defined? WHO KNOWS + D.equip_to_slot(new_headgear, slot_head) + return 1 + + +/datum/action/item_action/chameleon/change + name = "Chameleon Change" + var/list/chameleon_blacklist = list() + var/list/chameleon_list = list() + var/chameleon_type = null + var/chameleon_name = "Item" + +/datum/action/item_action/chameleon/change/proc/initialize_disguises() + if(button) + button.name = "Change [chameleon_name] Appearance" + chameleon_blacklist += target.type + var/list/temp_list = typesof(chameleon_type) + for(var/V in temp_list - (chameleon_blacklist)) + if(ispath(V, /obj/item)) + var/obj/item/I = V + if(initial(I.flags) & ABSTRACT) + continue + else + chameleon_list += I + +/datum/action/item_action/chameleon/change/proc/select_look(mob/user) + var/list/item_names = list() + var/obj/item/picked_item + for(var/U in chameleon_list) + var/obj/item/I = U + item_names += initial(I.name) + var/picked_name + picked_name = input("Select [chameleon_name] to change into", "Chameleon [chameleon_name]", picked_name) in item_names + if(!picked_name) + return + for(var/V in chameleon_list) + var/obj/item/I = V + if(initial(I.name) == picked_name) + picked_item = V + break + if(!picked_item) + return + update_look(user, picked_item) + +/datum/action/item_action/chameleon/change/proc/random_look(mob/user) + var/picked_item = pick(chameleon_list) + // If a user is provided, then this item is in use, and we + // need to update our icons and stuff + + if(user) + update_look(user, picked_item) + + // Otherwise, it's likely a random initialisation, so we + // don't have to worry + + else + update_item(picked_item) + +/datum/action/item_action/chameleon/change/proc/update_look(mob/user, obj/item/picked_item) + if(isliving(user)) + var/mob/living/C = user + if(C.stat != CONSCIOUS) + return + + update_item(picked_item) + + C.regenerate_icons() //so our overlays update. + UpdateButtonIcon() + +/datum/action/item_action/chameleon/change/proc/update_item(obj/item/picked_item) + target.name = initial(picked_item.name) + target.desc = initial(picked_item.desc) + target.icon_state = initial(picked_item.icon_state) + if(istype(target, /obj/item)) + var/obj/item/I = target + I.item_state = initial(picked_item.item_state) + I.item_color = initial(picked_item.item_color) + if(istype(I, /obj/item/clothing) && istype(initial(picked_item), /obj/item/clothing)) + var/obj/item/clothing/CL = I + var/obj/item/clothing/PCL = picked_item + CL.flags_cover = initial(PCL.flags_cover) + target.icon = initial(picked_item.icon) + +/datum/action/item_action/chameleon/change/Trigger() + if(!IsAvailable()) + return + + select_look(owner) + return 1 + +/obj/item/clothing/under/chameleon +//starts off as black + name = "black jumpsuit" + icon_state = "black" + item_state = "bl_suit" + item_color = "black" + desc = "It's a plain jumpsuit. It has a small dial on the wrist." + origin_tech = "syndicate=2" + sensor_mode = 0 //Hey who's this guy on the Syndicate Shuttle?? + random_sensor = 0 + resistance_flags = 0 + armor = list(melee = 10, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 50) + +/obj/item/clothing/under/chameleon/New() + ..() + var/datum/action/item_action/chameleon/change/chameleon_action = new(src) + chameleon_action.chameleon_type = /obj/item/clothing/under + chameleon_action.chameleon_name = "Jumpsuit" + chameleon_action.initialize_disguises() + +/obj/item/clothing/suit/chameleon + name = "armor" + desc = "A slim armored vest that protects against most types of damage." + icon_state = "armor" + item_state = "armor" + blood_overlay_type = "armor" + origin_tech = "syndicate=2" + resistance_flags = 0 + armor = list(melee = 10, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 50) + +/obj/item/clothing/suit/chameleon/New() + ..() + var/datum/action/item_action/chameleon/change/chameleon_action = new(src) + chameleon_action.chameleon_type = /obj/item/clothing/suit + chameleon_action.chameleon_name = "Suit" + chameleon_action.initialize_disguises() + +/obj/item/clothing/glasses/chameleon + name = "Optical Meson Scanner" + desc = "Used by engineering and mining staff to see basic structural and terrain layouts through walls, regardless of lighting condition." + icon_state = "meson" + item_state = "meson" + origin_tech = "syndicate=2" + resistance_flags = 0 + armor = list(melee = 10, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 50) + +/obj/item/clothing/glasses/chameleon/New() + ..() + var/datum/action/item_action/chameleon/change/chameleon_action = new(src) + chameleon_action.chameleon_type = /obj/item/clothing/glasses + chameleon_action.chameleon_name = "Glasses" + chameleon_action.initialize_disguises() + +/obj/item/clothing/gloves/chameleon + desc = "These gloves will protect the wearer from electric shock." + name = "insulated gloves" + icon_state = "yellow" + item_state = "ygloves" + + resistance_flags = 0 + armor = list(melee = 10, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 50) + +/obj/item/clothing/gloves/chameleon/New() + ..() + var/datum/action/item_action/chameleon/change/chameleon_action = new(src) + chameleon_action.chameleon_type = /obj/item/clothing/gloves + chameleon_action.chameleon_name = "Gloves" + chameleon_action.initialize_disguises() + +/obj/item/clothing/head/chameleon + name = "grey cap" + desc = "It's a baseball hat in a tasteful grey colour." + icon_state = "greysoft" + item_color = "grey" + + resistance_flags = 0 + armor = list(melee = 5, bullet = 5, laser = 5, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 50) + + var/datum/action/item_action/chameleon/change/chameleon_action = null + +/obj/item/clothing/head/chameleon/New() + ..() + chameleon_action = new(src) + chameleon_action.chameleon_type = /obj/item/clothing/head + chameleon_action.chameleon_name = "Hat" + chameleon_action.initialize_disguises() + +/obj/item/clothing/head/chameleon/drone + // The camohat, I mean, holographic hat projection, is part of the + // drone itself. + flags = NODROP + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) + // which means it offers no protection, it's just air and light + +/obj/item/clothing/head/chameleon/drone/New() + ..() + chameleon_action.random_look() + var/datum/action/item_action/chameleon/drone/togglehatmask/togglehatmask_action = new(src) + togglehatmask_action.UpdateButtonIcon() + var/datum/action/item_action/chameleon/drone/randomise/randomise_action = new(src) + randomise_action.UpdateButtonIcon() + +/obj/item/clothing/mask/chameleon + name = "gas mask" + desc = "A face-covering mask that can be connected to an air supply. While good for concealing your identity, it isn't good for blocking gas flow." //More accurate + icon_state = "gas_alt" + item_state = "gas_alt" + resistance_flags = 0 + armor = list(melee = 5, bullet = 5, laser = 5, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 50) + + flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS + flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDEFACIALHAIR + gas_transfer_coefficient = 0.01 + permeability_coefficient = 0.01 + flags_cover = MASKCOVERSEYES | MASKCOVERSMOUTH + + var/vchange = 1 + + var/datum/action/item_action/chameleon/change/chameleon_action = null + +/obj/item/clothing/mask/chameleon/New() + ..() + chameleon_action = new(src) + chameleon_action.chameleon_type = /obj/item/clothing/mask + chameleon_action.chameleon_name = "Mask" + chameleon_action.initialize_disguises() + +/obj/item/clothing/mask/chameleon/attack_self(mob/user) + vchange = !vchange + user << "The voice changer is now [vchange ? "on" : "off"]!" + + +/obj/item/clothing/mask/chameleon/drone + //Same as the drone chameleon hat, undroppable and no protection + flags = NODROP + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) + // Can drones use the voice changer part? Let's not find out. + vchange = 0 + +/obj/item/clothing/mask/chameleon/drone/New() + ..() + chameleon_action.random_look() + var/datum/action/item_action/chameleon/drone/togglehatmask/togglehatmask_action = new(src) + togglehatmask_action.UpdateButtonIcon() + var/datum/action/item_action/chameleon/drone/randomise/randomise_action = new(src) + randomise_action.UpdateButtonIcon() + +/obj/item/clothing/mask/chameleon/drone/attack_self(mob/user) + user << "The [src] does not have a voice changer." + +/obj/item/clothing/shoes/chameleon + name = "black shoes" + icon_state = "black" + item_color = "black" + desc = "A pair of black shoes." + permeability_coefficient = 0.05 + flags = NOSLIP + origin_tech = "syndicate=2" + resistance_flags = 0 + pockets = /obj/item/weapon/storage/internal/pocket/shoes + armor = list(melee = 10, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 50) + +/obj/item/clothing/shoes/chameleon/New() + ..() + var/datum/action/item_action/chameleon/change/chameleon_action = new(src) + chameleon_action.chameleon_type = /obj/item/clothing/shoes + chameleon_action.chameleon_name = "Shoes" + chameleon_action.initialize_disguises() + +/obj/item/weapon/gun/energy/laser/chameleon + name = "practice laser gun" + desc = "A modified version of the basic laser gun, this one fires less concentrated energy bolts designed for target practice." + ammo_type = list(/obj/item/ammo_casing/energy/laser/practice) + clumsy_check = 0 + needs_permit = 0 + pin = /obj/item/device/firing_pin + cell_type = /obj/item/weapon/stock_parts/cell/bluespace + +/obj/item/weapon/gun/energy/laser/chameleon/New() + ..() + var/datum/action/item_action/chameleon/change/chameleon_action = new(src) + chameleon_action.chameleon_type = /obj/item/weapon/gun + chameleon_action.chameleon_name = "Gun" + chameleon_action.chameleon_blacklist = typesof(/obj/item/weapon/gun/magic) + chameleon_action.initialize_disguises() + +/obj/item/weapon/storage/backpack/chameleon + name = "chameleon backpack" + +/obj/item/weapon/storage/backpack/chameleon/New() + ..() + var/datum/action/item_action/chameleon/change/chameleon_action = new(src) + chameleon_action.chameleon_type = /obj/item/weapon/storage/backpack + chameleon_action.chameleon_name = "Backpack" + chameleon_action.initialize_disguises() + +/obj/item/device/radio/headset/chameleon + name = "chameleon headset" + +/obj/item/device/radio/headset/chameleon/New() + ..() + var/datum/action/item_action/chameleon/change/chameleon_action = new(src) + chameleon_action.chameleon_type = /obj/item/device/radio/headset + chameleon_action.chameleon_name = "Headset" + chameleon_action.initialize_disguises() + +/obj/item/device/pda/chameleon + name = "chameleon PDA" + +/obj/item/device/pda/chameleon/New() + ..() + var/datum/action/item_action/chameleon/change/chameleon_action = new(src) + chameleon_action.chameleon_type = /obj/item/device/pda + chameleon_action.chameleon_name = "PDA" + chameleon_action.chameleon_blacklist = list(/obj/item/device/pda/ai) + chameleon_action.initialize_disguises() diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm new file mode 100644 index 0000000..22e62a8 --- /dev/null +++ b/code/modules/clothing/clothing.dm @@ -0,0 +1,723 @@ +/obj/item/clothing + name = "clothing" + resistance_flags = FLAMMABLE + obj_integrity = 200 + max_integrity = 200 + integrity_failure = 80 + var/damaged_clothes = 0 //similar to machine's BROKEN stat and structure's broken var + var/flash_protect = 0 //Malk: What level of bright light protection item has. 1 = Flashers, Flashes, & Flashbangs | 2 = Welding | -1 = OH GOD WELDING BURNT OUT MY RETINAS + var/tint = 0 //Malk: Sets the item's level of visual impairment tint, normally set to the same as flash_protect + var/up = 0 // but seperated to allow items to protect but not impair vision, like space helmets + var/visor_flags = 0 // flags that are added/removed when an item is adjusted up/down + var/visor_flags_inv = 0 // same as visor_flags, but for flags_inv + var/visor_flags_cover = 0 // same as above, but for flags_cover + lefthand_file = 'icons/mob/inhands/clothing_lefthand.dmi' + righthand_file = 'icons/mob/inhands/clothing_righthand.dmi' + var/alt_desc = null + var/toggle_message = null + var/alt_toggle_message = null + var/active_sound = null + var/toggle_cooldown = null + var/cooldown = 0 + var/obj/item/device/flashlight/F = null + var/can_flashlight = 0 + var/gang //Is this a gang outfit? + var/scan_reagents = 0 //Can the wearer see reagents while it's equipped? + + //Var modification - PLEASE be careful with this I know who you are and where you live + var/list/user_vars_to_edit = list() //VARNAME = VARVALUE eg: "name" = "butts" + var/list/user_vars_remembered = list() //Auto built by the above + dropped() + equipped() + + var/obj/item/weapon/storage/internal/pocket/pockets = null + +/obj/item/clothing/New() + ..() + if(ispath(pockets)) + pockets = new pockets(src) + +/obj/item/clothing/MouseDrop(atom/over_object) + var/mob/M = usr + + if(pockets && over_object == M) + return pockets.MouseDrop(over_object) + + if(istype(usr.loc,/obj/mecha)) // stops inventory actions in a mech + return + + if(!M.restrained() && !M.stat && loc == M && istype(over_object, /obj/screen/inventory/hand)) + var/obj/screen/inventory/hand/H = over_object + if(!M.unEquip(src)) + return + M.put_in_hand(src, H.held_index) + add_fingerprint(usr) + +/obj/item/clothing/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0) + if(pockets) + pockets.close_all() + return ..() + +/obj/item/clothing/attack_hand(mob/user) + if(pockets && pockets.priority && ismob(loc)) + pockets.show_to(user) + else + return ..() + +/obj/item/clothing/attackby(obj/item/W, mob/user, params) + if(damaged_clothes && istype(W, /obj/item/stack/sheet/cloth)) + var/obj/item/stack/sheet/cloth/C = W + C.use(1) + update_clothes_damaged_state(FALSE) + obj_integrity = max_integrity + user << "You fix the damages on [src] with [C]." + return 1 + if(pockets) + return pockets.attackby(W, user, params) + else + return ..() + +/obj/item/clothing/AltClick(mob/user) + if(pockets && pockets.quickdraw && pockets.contents.len && !user.incapacitated()) + var/obj/item/I = pockets.contents[1] + if(!I) + return + pockets.remove_from_storage(I, get_turf(src)) + + if(!user.put_in_hands(I)) + user << "You fumble for [I] and it falls on the floor." + return 1 + user.visible_message("[user] draws [I] from [src]!", "You draw [I] from [src].") + return 1 + else + return ..() + + +/obj/item/clothing/Destroy() + if(isliving(loc)) + dropped(loc) + if(pockets) + qdel(pockets) + pockets = null + user_vars_remembered = null //Oh god somebody put REFERENCES in here? not to worry, we'll clean it up + return ..() + + +/obj/item/clothing/dropped(mob/user) + ..() + if(user_vars_remembered && user_vars_remembered.len) + for(var/variable in user_vars_remembered) + if(variable in user.vars) + if(user.vars[variable] == user_vars_to_edit[variable]) //Is it still what we set it to? (if not we best not change it) + user.vars[variable] = user_vars_remembered[variable] + user_vars_remembered = list() + + +/obj/item/clothing/equipped(mob/user, slot) + ..() + + if(slot_flags & slotdefine2slotbit(slot)) //Was equipped to a valid slot for this item? + for(var/variable in user_vars_to_edit) + if(variable in user.vars) + user_vars_remembered[variable] = user.vars[variable] + user.vars[variable] = user_vars_to_edit[variable] + + +/obj/item/clothing/examine(mob/user) + ..() + if(damaged_clothes) + user << "It looks damaged!" + +/obj/item/clothing/obj_break(damage_flag) + if(!damaged_clothes) + update_clothes_damaged_state(TRUE) + +var/list/damaged_clothes_icons = list() + +/obj/item/clothing/proc/update_clothes_damaged_state(damaging = TRUE) + var/index = "\ref[initial(icon)]-[initial(icon_state)]" + if(damaging) + damaged_clothes = 1 + var/icon/damaged_clothes_icon = damaged_clothes_icons[index] + if(!damaged_clothes_icon) + damaged_clothes_icon = icon(initial(icon), initial(icon_state), , 1) //we only want to apply damaged effect to the initial icon_state for each object + damaged_clothes_icon.Blend("#fff", ICON_ADD) //fills the icon_state with white (except where it's transparent) + damaged_clothes_icon.Blend(icon('icons/effects/item_damage.dmi', "itemdamaged"), ICON_MULTIPLY) //adds damage effect and the remaining white areas become transparant + damaged_clothes_icon = fcopy_rsc(damaged_clothes_icon) + damaged_clothes_icons[index] = damaged_clothes_icon + add_overlay(damaged_clothes_icon, 1) + else + damaged_clothes = 0 + overlays -= damaged_clothes_icons[index] + priority_overlays -= damaged_clothes_icons[index] + + +//Ears: currently only used for headsets and earmuffs +/obj/item/clothing/ears + name = "ears" + w_class = 1 + throwforce = 0 + slot_flags = SLOT_EARS + resistance_flags = 0 + +/obj/item/clothing/ears/earmuffs + name = "earmuffs" + desc = "Protects your hearing from loud noises, and quiet ones as well." + icon_state = "earmuffs" + item_state = "earmuffs" + flags = EARBANGPROTECT + strip_delay = 15 + put_on_delay = 25 + resistance_flags = FLAMMABLE + +//Glasses +/obj/item/clothing/glasses + name = "glasses" + icon = 'icons/obj/clothing/glasses.dmi' + w_class = 2 + flags_cover = GLASSESCOVERSEYES + slot_flags = SLOT_EYES + var/vision_flags = 0 + var/darkness_view = 2//Base human is 2 + var/invis_view = SEE_INVISIBLE_LIVING + var/invis_override = 0 //Override to allow glasses to set higher than normal see_invis + var/emagged = 0 + var/list/icon/current = list() //the current hud icons + var/vision_correction = 0 //does wearing these glasses correct some of our vision defects? + strip_delay = 20 + put_on_delay = 25 + resistance_flags = 0 +/* +SEE_SELF // can see self, no matter what +SEE_MOBS // can see all mobs, no matter what +SEE_OBJS // can see all objs, no matter what +SEE_TURFS // can see all turfs (and areas), no matter what +SEE_PIXELS// if an object is located on an unlit area, but some of its pixels are + // in a lit area (via pixel_x,y or smooth movement), can see those pixels +BLIND // can't see anything +*/ + + +//Gloves +/obj/item/clothing/gloves + name = "gloves" + gender = PLURAL //Carn: for grammarically correct text-parsing + w_class = 2 + icon = 'icons/obj/clothing/gloves.dmi' + siemens_coefficient = 0.50 + body_parts_covered = HANDS + slot_flags = SLOT_GLOVES + attack_verb = list("challenged") + var/transfer_prints = FALSE + strip_delay = 20 + put_on_delay = 40 + + +/obj/item/clothing/gloves/worn_overlays(isinhands = FALSE) + . = list() + if(!isinhands) + if(damaged_clothes) + . += image("icon"='icons/effects/item_damage.dmi', "icon_state"="damagedgloves") + if(blood_DNA) + . += image("icon"='icons/effects/blood.dmi', "icon_state"="bloodyhands") + +/obj/item/clothing/gloves/update_clothes_damaged_state(damaging = TRUE) + ..() + if(ismob(loc)) + var/mob/M = loc + M.update_inv_gloves() + +// Called just before an attack_hand(), in mob/UnarmedAttack() +/obj/item/clothing/gloves/proc/Touch(atom/A, proximity) + return 0 // return 1 to cancel attack_hand() + +//Head +/obj/item/clothing/head + name = "head" + icon = 'icons/obj/clothing/hats.dmi' + body_parts_covered = HEAD + slot_flags = SLOT_HEAD + var/blockTracking = 0 //For AI tracking + var/can_toggle = null + + +/obj/item/clothing/head/worn_overlays(isinhands = FALSE) + . = list() + if(!isinhands) + if(damaged_clothes) + . += image("icon"='icons/effects/item_damage.dmi', "icon_state"="damagedhelmet") + if(blood_DNA) + . += image("icon"='icons/effects/blood.dmi', "icon_state"="helmetblood") + +/obj/item/clothing/head/update_clothes_damaged_state(damaging = TRUE) + ..() + if(ismob(loc)) + var/mob/M = loc + M.update_inv_head() + + +//Neck +/obj/item/clothing/neck + name = "necklace" + icon = 'icons/obj/clothing/neck.dmi' + body_parts_covered = NECK + slot_flags = SLOT_NECK + strip_delay = 40 + put_on_delay = 40 + +/obj/item/clothing/neck/worn_overlays(isinhands = FALSE) + . = list() + if(!isinhands) + if(body_parts_covered & HEAD) + if(damaged_clothes) + . += image("icon"='icons/effects/item_damage.dmi', "icon_state"="damagedmask") + if(blood_DNA) + . += image("icon"='icons/effects/blood.dmi', "icon_state"="maskblood") + + +//Mask +/obj/item/clothing/mask + name = "mask" + icon = 'icons/obj/clothing/masks.dmi' + body_parts_covered = HEAD + slot_flags = SLOT_MASK + strip_delay = 40 + put_on_delay = 40 + var/mask_adjusted = 0 + var/adjusted_flags = null + + +/obj/item/clothing/mask/worn_overlays(isinhands = FALSE) + . = list() + if(!isinhands) + if(body_parts_covered & HEAD) + if(damaged_clothes) + . += image("icon"='icons/effects/item_damage.dmi', "icon_state"="damagedmask") + if(blood_DNA) + . += image("icon"='icons/effects/blood.dmi', "icon_state"="maskblood") + +/obj/item/clothing/mask/update_clothes_damaged_state(damaging = TRUE) + ..() + if(ismob(loc)) + var/mob/M = loc + M.update_inv_wear_mask() + + +//Override this to modify speech like luchador masks. +/obj/item/clothing/mask/proc/speechModification(message) + return message + +//Proc that moves gas/breath masks out of the way, disabling them and allowing pill/food consumption +/obj/item/clothing/mask/proc/adjustmask(mob/living/user) + if(user && user.incapacitated()) + return + mask_adjusted = !mask_adjusted + if(!mask_adjusted) + src.icon_state = initial(icon_state) + gas_transfer_coefficient = initial(gas_transfer_coefficient) + permeability_coefficient = initial(permeability_coefficient) + flags |= visor_flags + flags_inv |= visor_flags_inv + flags_cover |= visor_flags_cover + user << "You push \the [src] back into place." + slot_flags = initial(slot_flags) + else + icon_state += "_up" + user << "You push \the [src] out of the way." + gas_transfer_coefficient = null + permeability_coefficient = null + flags &= ~visor_flags + flags_inv &= ~visor_flags_inv + flags_cover &= ~visor_flags_cover + if(adjusted_flags) + slot_flags = adjusted_flags + if(user) + user.wear_mask_update(src, toggle_off = mask_adjusted) + user.update_action_buttons_icon() //when mask is adjusted out, we update all buttons icon so the user's potential internal tank correctly shows as off. + + + + +//Shoes +/obj/item/clothing/shoes + name = "shoes" + icon = 'icons/obj/clothing/shoes.dmi' + desc = "Comfortable-looking shoes." + gender = PLURAL //Carn: for grammarically correct text-parsing + var/chained = 0 + + body_parts_covered = FEET + slot_flags = SLOT_FEET + + permeability_coefficient = 0.50 + slowdown = SHOES_SLOWDOWN + var/blood_state = BLOOD_STATE_NOT_BLOODY + var/list/bloody_shoes = list(BLOOD_STATE_HUMAN = 0,BLOOD_STATE_XENO = 0, BLOOD_STATE_OIL = 0, BLOOD_STATE_NOT_BLOODY = 0) + +/obj/item/clothing/shoes/worn_overlays(isinhands = FALSE) + . = list() + if(!isinhands) + var/bloody = 0 + if(blood_DNA) + bloody = 1 + else + bloody = bloody_shoes[BLOOD_STATE_HUMAN] + + if(damaged_clothes) + . += image("icon"='icons/effects/item_damage.dmi', "icon_state"="damagedshoe") + if(bloody) + . += image("icon"='icons/effects/blood.dmi', "icon_state"="shoeblood") + +/obj/item/clothing/shoes/update_clothes_damaged_state(damaging = TRUE) + ..() + if(ismob(loc)) + var/mob/M = loc + M.update_inv_shoes() + +/obj/item/clothing/shoes/clean_blood() + ..() + bloody_shoes = list(BLOOD_STATE_HUMAN = 0,BLOOD_STATE_XENO = 0, BLOOD_STATE_OIL = 0, BLOOD_STATE_NOT_BLOODY = 0) + blood_state = BLOOD_STATE_NOT_BLOODY + if(ismob(loc)) + var/mob/M = loc + M.update_inv_shoes() + +/obj/item/proc/negates_gravity() + return 0 + +//Suit +/obj/item/clothing/suit + icon = 'icons/obj/clothing/suits.dmi' + name = "suit" + var/fire_resist = T0C+100 + allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen) + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) + slot_flags = SLOT_OCLOTHING + var/blood_overlay_type = "suit" + var/togglename = null + + +/obj/item/clothing/suit/worn_overlays(isinhands = FALSE) + . = list() + if(!isinhands) + if(damaged_clothes) + . += image("icon"='icons/effects/item_damage.dmi', "icon_state"="damaged[blood_overlay_type]") + if(blood_DNA) + . += image("icon"='icons/effects/blood.dmi', "icon_state"="[blood_overlay_type]blood") + +/obj/item/clothing/suit/update_clothes_damaged_state(damaging = TRUE) + ..() + if(ismob(loc)) + var/mob/M = loc + M.update_inv_wear_suit() + +//Spacesuit +//Note: Everything in modules/clothing/spacesuits should have the entire suit grouped together. +// Meaning the the suit is defined directly after the corrisponding helmet. Just like below! +/obj/item/clothing/head/helmet/space + name = "space helmet" + icon_state = "spaceold" + desc = "A special helmet with solar UV shielding to protect your eyes from harmful rays." + flags = STOPSPRESSUREDMAGE | THICKMATERIAL + item_state = "spaceold" + permeability_coefficient = 0.01 + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 50, fire = 80, acid = 70) + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR + cold_protection = HEAD + min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT + heat_protection = HEAD + max_heat_protection_temperature = SPACE_HELM_MAX_TEMP_PROTECT + flash_protect = 2 + strip_delay = 50 + put_on_delay = 50 + flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH + resistance_flags = 0 + +/obj/item/clothing/suit/space + name = "space suit" + desc = "A suit that protects against low pressure environments. Has a big 13 on the back." + icon_state = "spaceold" + item_state = "s_suit" + w_class = 4//bulky item + gas_transfer_coefficient = 0.01 + permeability_coefficient = 0.02 + flags = STOPSPRESSUREDMAGE | THICKMATERIAL + body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals) + slowdown = 1 + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 50, fire = 80, acid = 70) + flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT + cold_protection = CHEST | GROIN | LEGS | FEET | ARMS | HANDS + min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT + heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS + max_heat_protection_temperature = SPACE_SUIT_MAX_TEMP_PROTECT + strip_delay = 80 + put_on_delay = 80 + resistance_flags = 0 + +//Under clothing + +/obj/item/clothing/under + icon = 'icons/obj/clothing/uniforms.dmi' + name = "under" + body_parts_covered = CHEST|GROIN|LEGS|ARMS + permeability_coefficient = 0.90 + slot_flags = SLOT_ICLOTHING + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) + var/fitted = FEMALE_UNIFORM_FULL // For use in alternate clothing styles for women + var/has_sensor = 1//For the crew computer 2 = unable to change mode + var/random_sensor = 1 + var/sensor_mode = 0 /* 1 = Report living/dead, 2 = Report detailed damages, 3 = Report location */ + var/can_adjust = 1 + var/adjusted = NORMAL_STYLE + var/alt_covers_chest = 0 // for adjusted/rolled-down jumpsuits, 0 = exposes chest and arms, 1 = exposes arms only + var/obj/item/clothing/tie/hastie = null + var/mutantrace_variation = NO_MUTANTRACE_VARIATION //Are there special sprites for specific situations? Don't use this unless you need to. + +/obj/item/clothing/under/worn_overlays(isinhands = FALSE) + . = list() + + if(!isinhands) + + if(damaged_clothes) + . += image("icon"='icons/effects/item_damage.dmi', "icon_state"="damageduniform") + if(blood_DNA) + . += image("icon"='icons/effects/blood.dmi', "icon_state"="uniformblood") + if(hastie) + var/tie_color = hastie.item_color + if(!tie_color) + tie_color = hastie.icon_state + var/image/tI = image("icon"='icons/mob/ties.dmi', "icon_state"="[tie_color]") + tI.alpha = hastie.alpha + tI.color = hastie.color + . += tI + +/obj/item/clothing/under/update_clothes_damaged_state(damaging = TRUE) + ..() + if(ismob(loc)) + var/mob/M = loc + M.update_inv_w_uniform() + +/obj/item/clothing/under/New() + if(random_sensor) + //make the sensor mode favor higher levels, except coords. + sensor_mode = pick(0, 1, 1, 2, 2, 2, 3, 3) + adjusted = NORMAL_STYLE + ..() + +/obj/item/clothing/under/equipped(mob/user, slot) + ..() + if(adjusted) + adjusted = NORMAL_STYLE + fitted = initial(fitted) + if(!alt_covers_chest) + body_parts_covered |= CHEST + + if(mutantrace_variation && ishuman(user)) + var/mob/living/carbon/human/H = user + if(DIGITIGRADE in H.dna.species.specflags) + adjusted = DIGITIGRADE_STYLE + H.update_inv_w_uniform() + + if(hastie) + hastie.on_uniform_equip(src, user) + +/obj/item/clothing/under/dropped(mob/user) + if(hastie) + hastie.on_uniform_dropped(src, user) + ..() + +/obj/item/clothing/under/attackby(obj/item/I, mob/user, params) + if(!attachTie(I, user)) + ..() + +/obj/item/clothing/under/proc/attachTie(obj/item/I, mob/user, notifyAttach = 1) + if(istype(I, /obj/item/clothing/tie)) + var/obj/item/clothing/tie/T = I + if(hastie) + if(user) + user << "[src] already has an accessory." + return 0 + else + if(user && !user.drop_item()) + return + if(!T.attach(src, user)) + return + + if(user && notifyAttach) + user << "You attach [I] to [src]." + + if(ishuman(loc)) + var/mob/living/carbon/human/H = loc + H.update_inv_w_uniform() + + return 1 + +/obj/item/clothing/under/proc/removetie(mob/user) + if(!isliving(user)) + return + if(!can_use(user)) + return + + if(hastie) + var/obj/item/clothing/tie/T = hastie + hastie.detach(src, user) + if(user.put_in_hands(T)) + user << "You detach [T] from [src]." + else + user << "You detach [T] from [src] and it falls on the floor." + + if(ishuman(loc)) + var/mob/living/carbon/human/H = loc + H.update_inv_w_uniform() + + +/obj/item/clothing/under/examine(mob/user) + ..() + if(adjusted == ALT_STYLE) + user << "Alt-click on [src] to wear it normally." + else + user << "Alt-click on [src] to wear it casually." + switch(sensor_mode) + if(0) + user << "Its sensors appear to be disabled." + if(1) + user << "Its binary life sensors appear to be enabled." + if(2) + user << "Its vital tracker appears to be enabled." + if(3) + user << "Its vital tracker and tracking beacon appear to be enabled." + if(hastie) + user << "\A [hastie] is attached to it." + +/proc/generate_female_clothing(index,t_color,icon,type) + var/icon/female_clothing_icon = icon("icon"=icon, "icon_state"=t_color) + var/icon/female_s = icon("icon"='icons/mob/uniform.dmi', "icon_state"="[(type == FEMALE_UNIFORM_FULL) ? "female_full" : "female_top"]") + female_clothing_icon.Blend(female_s, ICON_MULTIPLY) + female_clothing_icon = fcopy_rsc(female_clothing_icon) + female_clothing_icons[index] = female_clothing_icon + +/obj/item/clothing/under/verb/toggle() + set name = "Adjust Suit Sensors" + set category = "Object" + set src in usr + var/mob/M = usr + if (istype(M, /mob/dead/)) + return + if (!can_use(M)) + return + if(src.has_sensor >= 2) + usr << "The controls are locked." + return 0 + if(src.has_sensor <= 0) + usr << "This suit does not have any sensors." + return 0 + + var/list/modes = list("Off", "Binary vitals", "Exact vitals", "Tracking beacon") + var/switchMode = input("Select a sensor mode:", "Suit Sensor Mode", modes[sensor_mode + 1]) in modes + if(get_dist(usr, src) > 1) + usr << "You have moved too far away!" + return + sensor_mode = modes.Find(switchMode) - 1 + + if (src.loc == usr) + switch(sensor_mode) + if(0) + usr << "You disable your suit's remote sensing equipment." + if(1) + usr << "Your suit will now only report whether you are alive or dead." + if(2) + usr << "Your suit will now only report your exact vital lifesigns." + if(3) + usr << "Your suit will now report your exact vital lifesigns as well as your coordinate position." + + if(ishuman(loc)) + var/mob/living/carbon/human/H = loc + if(H.w_uniform == src) + H.update_suit_sensors() + + ..() + +/obj/item/clothing/under/AltClick(mob/user) + if(..()) + return 1 + + if(!user.canUseTopic(src, be_close=TRUE)) + user << "You can't do that right now!" + return + else + if(hastie) + removetie(user) + else + rolldown() + +/obj/item/clothing/under/verb/jumpsuit_adjust() + set name = "Adjust Jumpsuit Style" + set category = null + set src in usr + rolldown() + +/obj/item/clothing/under/proc/rolldown() + if(!can_use(usr)) + return + if(!can_adjust) + usr << "You cannot wear this suit any differently!" + return + if(toggle_jumpsuit_adjust()) + usr << "You adjust the suit to wear it more casually." + else + usr << "You adjust the suit back to normal." + if(ishuman(usr)) + var/mob/living/carbon/human/H = usr + H.update_inv_w_uniform() + H.update_body() + +/obj/item/clothing/under/proc/toggle_jumpsuit_adjust() + if(adjusted == DIGITIGRADE_STYLE) + return + adjusted = !adjusted + if(adjusted) + if(fitted != FEMALE_UNIFORM_TOP) + fitted = NO_FEMALE_UNIFORM + if(!alt_covers_chest) // for the special snowflake suits that expose the chest when adjusted + body_parts_covered &= ~CHEST + else + fitted = initial(fitted) + if(!alt_covers_chest) + body_parts_covered |= CHEST + return adjusted + +/obj/item/clothing/proc/weldingvisortoggle() //Malk: proc to toggle welding visors on helmets, masks, goggles, etc. + if(!can_use(usr)) + return + + up ^= 1 + flags ^= visor_flags + flags_inv ^= visor_flags_inv + flags_cover ^= initial(flags_cover) + icon_state = "[initial(icon_state)][up ? "up" : ""]" + usr << "You adjust \the [src] [up ? "up" : "down"]." + flash_protect ^= initial(flash_protect) + tint ^= initial(tint) + + if(istype(usr, /mob/living/carbon)) + var/mob/living/carbon/C = usr + C.head_update(src, forced = 1) + for(var/X in actions) + var/datum/action/A = X + A.UpdateButtonIcon() + +/obj/item/clothing/proc/can_use(mob/user) + if(user && ismob(user)) + if(!user.incapacitated()) + return 1 + return 0 + + +/obj/item/clothing/obj_destruction(damage_flag) + if(damage_flag == "bomb" || damage_flag == "melee") + var/turf/T = get_turf(src) + spawn(1) //so the shred survives potential turf change from the explosion. + var/obj/effect/decal/cleanable/shreds/Shreds = new(T) + Shreds.desc = "The sad remains of what used to be [name]." + deconstruct(FALSE) + else + ..() \ No newline at end of file diff --git a/code/modules/clothing/glasses/engine_goggles.dm b/code/modules/clothing/glasses/engine_goggles.dm new file mode 100644 index 0000000..a44178f --- /dev/null +++ b/code/modules/clothing/glasses/engine_goggles.dm @@ -0,0 +1,136 @@ +//Engineering Mesons + +/obj/item/clothing/glasses/meson/engine + name = "Engineering Scanner Goggles" + desc = "Goggles used by engineers. The Meson Scanner mode lets you see basic structural and terrain layouts through walls, regardless of lighting condition. The T-ray Scanner mode lets you see underfloor objects such as cables and pipes." + icon_state = "trayson-meson" + actions_types = list(/datum/action/item_action/toggle_mode) + origin_tech = "materials=3;magnets=3;engineering=3;plasmatech=3" + + var/mode = 0 //0 - regular mesons mode 1 - t-ray mode + var/invis_objects = list() + var/range = 1 + +/obj/item/clothing/glasses/meson/engine/attack_self(mob/user) + mode = !mode + + if(mode) + START_PROCESSING(SSobj, src) + vision_flags = 0 + darkness_view = 2 + invis_view = SEE_INVISIBLE_LIVING + user << "You toggle the goggles' scanning mode to \[T-Ray]." + else + STOP_PROCESSING(SSobj, src) + vision_flags = SEE_TURFS + darkness_view = 1 + invis_view = SEE_INVISIBLE_MINIMUM + loc << "You toggle the goggles' scanning mode to \[Meson]." + invis_update() + + if(ishuman(user)) + var/mob/living/carbon/human/H = user + if(H.glasses == src) + H.update_sight() + + update_icon() + for(var/X in actions) + var/datum/action/A = X + A.UpdateButtonIcon() + +/obj/item/clothing/glasses/meson/engine/process() + if(!mode) + return + + if(!ishuman(loc)) + invis_update() + return + + var/mob/living/carbon/human/user = loc + if(user.glasses != src) + invis_update() + return + + scan() + +/obj/item/clothing/glasses/meson/engine/proc/scan() + for(var/turf/T in range(range, loc)) + + if(!T.intact) + continue + + for(var/obj/O in T.contents) + if(O.level != 1) + continue + + if(O.invisibility == INVISIBILITY_MAXIMUM) + O.invisibility = 0 + invis_objects += O + + addtimer(src, "invis_update", 5) + +/obj/item/clothing/glasses/meson/engine/proc/invis_update() + for(var/obj/O in invis_objects) + if(!t_ray_on() || !(O in range(range, loc))) + invis_objects -= O + var/turf/T = O.loc + if(T && T.intact) + O.invisibility = INVISIBILITY_MAXIMUM + +/obj/item/clothing/glasses/meson/engine/proc/t_ray_on() + if(!ishuman(loc)) + return 0 + + var/mob/living/carbon/human/user = loc + return mode & (user.glasses == src) + +/obj/item/clothing/glasses/meson/engine/update_icon() + icon_state = mode ? "trayson-tray" : "trayson-meson" + if(istype(loc,/mob/living/carbon/human/)) + var/mob/living/carbon/human/user = loc + if(user.glasses == src) + user.update_inv_glasses() + +/obj/item/clothing/glasses/meson/engine/tray //atmos techs have lived far too long without tray goggles while those damned engineers get their dual-purpose gogles all to themselves + name = "Optical T-Ray Scanner" + desc = "Used by engineering staff to see underfloor objects such as cables and pipes." + icon_state = "trayson-tray_off" + origin_tech = "materials=3;magnets=2;engineering=2" + + mode = 1 + var/on = 0 + vision_flags = 0 + darkness_view = 2 + invis_view = SEE_INVISIBLE_LIVING + range = 2 + +/obj/item/clothing/glasses/meson/engine/tray/process() + if(!on) + return + ..() + +/obj/item/clothing/glasses/meson/engine/tray/update_icon() + icon_state = "trayson-tray[on ? "" : "_off"]" + if(istype(loc,/mob/living/carbon/human/)) + var/mob/living/carbon/human/user = loc + if(user.glasses == src) + user.update_inv_glasses() + +/obj/item/clothing/glasses/meson/engine/tray/attack_self(mob/user) + on = !on + + if(on) + START_PROCESSING(SSobj, src) + user << "You turn the goggles on." + else + STOP_PROCESSING(SSobj, src) + user << "You turn the goggles off." + invis_update() + + update_icon() + for(var/X in actions) + var/datum/action/A = X + A.UpdateButtonIcon() + +/obj/item/clothing/glasses/meson/engine/tray/t_ray_on() + return on && ..() diff --git a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm new file mode 100644 index 0000000..62805a4 --- /dev/null +++ b/code/modules/clothing/glasses/glasses.dm @@ -0,0 +1,401 @@ +/obj/item/clothing/glasses + name = "glasses" + materials = list(MAT_GLASS = 250) + var/glass_colour_type = null //colors your vision when worn + +//called when thermal glasses are emped. +/obj/item/clothing/glasses/proc/thermal_overload() + if(ishuman(src.loc)) + var/mob/living/carbon/human/H = src.loc + if(!(H.disabilities & BLIND)) + if(H.glasses == src) + H << "The [src] overloads and blinds you!" + H.flash_act(visual = 1) + H.blind_eyes(3) + H.blur_eyes(5) + H.adjust_eye_damage(5) + +/obj/item/clothing/glasses/meson + name = "Optical Meson Scanner" + desc = "Used by engineering and mining staff to see basic structural and terrain layouts through walls, regardless of lighting condition." + icon_state = "meson" + item_state = "meson" + origin_tech = "magnets=1;engineering=2" + darkness_view = 2 + vision_flags = SEE_TURFS + invis_view = SEE_INVISIBLE_MINIMUM + glass_colour_type = /datum/client_colour/glass_colour/lightgreen + +/obj/item/clothing/glasses/meson/night + name = "Night Vision Optical Meson Scanner" + desc = "An Optical Meson Scanner fitted with an amplified visible light spectrum overlay, providing greater visual clarity in darkness." + icon_state = "nvgmeson" + item_state = "nvgmeson" + origin_tech = "magnets=4;engineering=5;plasmatech=4" + darkness_view = 8 + glass_colour_type = /datum/client_colour/glass_colour/green + +/obj/item/clothing/glasses/meson/gar + name = "gar mesons" + icon_state = "garm" + item_state = "garm" + desc = "Do the impossible, see the invisible!" + force = 10 + throwforce = 10 + throw_speed = 4 + attack_verb = list("sliced") + hitsound = 'sound/weapons/bladeslice.ogg' + sharpness = IS_SHARP + +/obj/item/clothing/glasses/science + name = "science goggles" + desc = "A pair of snazzy goggles used to protect against chemical spills. Fitted with an analyzer for scanning items and reagents." + icon_state = "purple" + item_state = "glasses" + origin_tech = "magnets=2;engineering=1" + scan_reagents = 1 //You can see reagents while wearing science goggles + actions_types = list(/datum/action/item_action/toggle_research_scanner) + glass_colour_type = /datum/client_colour/glass_colour/purple + resistance_flags = ACID_PROOF + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 80, acid = 100) + +/obj/item/clothing/glasses/science/item_action_slot_check(slot) + if(slot == slot_glasses) + return 1 + +/obj/item/clothing/glasses/night + name = "Night Vision Goggles" + desc = "You can totally see in the dark now!" + icon_state = "night" + item_state = "glasses" + origin_tech = "materials=4;magnets=4;plasmatech=4;engineering=4" + darkness_view = 8 + invis_view = SEE_INVISIBLE_MINIMUM + glass_colour_type = /datum/client_colour/glass_colour/green + +/obj/item/clothing/glasses/eyepatch + name = "eyepatch" + desc = "Yarr." + icon_state = "eyepatch" + item_state = "eyepatch" + +/obj/item/clothing/glasses/monocle + name = "monocle" + desc = "Such a dapper eyepiece!" + icon_state = "monocle" + item_state = "headset" // lol + +/obj/item/clothing/glasses/material + name = "Optical Material Scanner" + desc = "Very confusing glasses." + icon_state = "material" + item_state = "glasses" + origin_tech = "magnets=3;engineering=3" + vision_flags = SEE_OBJS + glass_colour_type = /datum/client_colour/glass_colour/lightblue + +/obj/item/clothing/glasses/material/mining + name = "Optical Material Scanner" + desc = "Used by miners to detect ores deep within the rock." + icon_state = "material" + item_state = "glasses" + origin_tech = "magnets=3;engineering=3" + darkness_view = 0 + +/obj/item/clothing/glasses/material/mining/gar + name = "gar material scanner" + icon_state = "garm" + item_state = "garm" + desc = "Do the impossible, see the invisible!" + force = 10 + throwforce = 20 + throw_speed = 4 + attack_verb = list("sliced") + hitsound = 'sound/weapons/bladeslice.ogg' + sharpness = IS_SHARP + glass_colour_type = /datum/client_colour/glass_colour/lightgreen + +/obj/item/clothing/glasses/regular + name = "Prescription Glasses" + desc = "Made by Nerd. Co." + icon_state = "glasses" + item_state = "glasses" + vision_correction = 1 //corrects nearsightedness + +/obj/item/clothing/glasses/regular/hipster + name = "Prescription Glasses" + desc = "Made by Uncool. Co." + icon_state = "hipster_glasses" + item_state = "hipster_glasses" + +//Here lies green glasses, so ugly they died. RIP + +/obj/item/clothing/glasses/sunglasses + desc = "Strangely ancient technology used to help provide rudimentary eye cover. Enhanced shielding blocks many flashes." + name = "sunglasses" + icon_state = "sun" + item_state = "sunglasses" + darkness_view = 1 + flash_protect = 1 + tint = 1 + glass_colour_type = /datum/client_colour/glass_colour/gray + dog_fashion = /datum/dog_fashion/head + +/obj/item/clothing/glasses/sunglasses/reagent + name = "beer goggles" + desc = "A pair of sunglasses outfitted with apparatus to scan reagents." + origin_tech = "magnets=2;engineering=2" + scan_reagents = 1 + +/obj/item/clothing/glasses/sunglasses/garb + desc = "Go beyond impossible and kick reason to the curb!" + name = "black gar glasses" + icon_state = "garb" + item_state = "garb" + force = 10 + throwforce = 10 + throw_speed = 4 + attack_verb = list("sliced") + hitsound = 'sound/weapons/bladeslice.ogg' + sharpness = IS_SHARP + +/obj/item/clothing/glasses/sunglasses/garb/supergarb + desc = "Believe in us humans." + name = "black giga gar glasses" + icon_state = "supergarb" + item_state = "garb" + force = 12 + throwforce = 12 + +/obj/item/clothing/glasses/sunglasses/gar + desc = "Just who the hell do you think I am?!" + name = "gar glasses" + icon_state = "gar" + item_state = "gar" + force = 10 + throwforce = 10 + throw_speed = 4 + attack_verb = list("sliced") + hitsound = 'sound/weapons/bladeslice.ogg' + sharpness = IS_SHARP + glass_colour_type = /datum/client_colour/glass_colour/orange + +/obj/item/clothing/glasses/sunglasses/gar/supergar + desc = "We evolve past the person we were a minute before. Little by little we advance with each turn. That's how a drill works!" + name = "giga gar glasses" + icon_state = "supergar" + item_state = "gar" + force = 12 + throwforce = 12 + glass_colour_type = /datum/client_colour/glass_colour/red + +/obj/item/clothing/glasses/welding + name = "welding goggles" + desc = "Protects the eyes from welders; approved by the mad scientist association." + icon_state = "welding-g" + item_state = "welding-g" + actions_types = list(/datum/action/item_action/toggle) + materials = list(MAT_METAL = 250) + flash_protect = 2 + tint = 2 + flags_cover = GLASSESCOVERSEYES + visor_flags_inv = HIDEEYES + glass_colour_type = /datum/client_colour/glass_colour/gray + + +/obj/item/clothing/glasses/welding/attack_self() + toggle() + + +/obj/item/clothing/glasses/welding/verb/toggle() + set category = "Object" + set name = "Adjust welding goggles" + set src in usr + + weldingvisortoggle() + + +/obj/item/clothing/glasses/sunglasses/blindfold + name = "blindfold" + desc = "Covers the eyes, preventing sight." + icon_state = "blindfold" + item_state = "blindfold" +// vision_flags = BLIND + flash_protect = 2 + tint = 3 // to make them blind + +/obj/item/clothing/glasses/sunglasses/big + desc = "Strangely ancient technology used to help provide rudimentary eye cover. Larger than average enhanced shielding blocks many flashes." + icon_state = "bigsunglasses" + item_state = "bigsunglasses" + +/obj/item/clothing/glasses/thermal + name = "Optical Thermal Scanner" + desc = "Thermals in the shape of glasses." + icon_state = "thermal" + item_state = "glasses" + origin_tech = "magnets=3" + vision_flags = SEE_MOBS + invis_view = 2 + flash_protect = 0 + glass_colour_type = /datum/client_colour/glass_colour/red + +/obj/item/clothing/glasses/thermal/emp_act(severity) + thermal_overload() + ..() + +/obj/item/clothing/glasses/thermal/syndi //These are now a traitor item, concealed as mesons. -Pete + name = "Chameleon Thermals" + desc = "A pair of thermal optic goggles with an onboard chameleon generator. Toggle to disguise." + origin_tech = "magnets=3;syndicate=4" + flash_protect = -1 + +/obj/item/clothing/glasses/thermal/syndi/attack_self(mob/user) + chameleon(user) + +/obj/item/clothing/glasses/thermal/monocle + name = "Thermoncle" + desc = "A monocle thermal." + icon_state = "thermoncle" + flags = null //doesn't protect eyes because it's a monocle, duh + +/obj/item/clothing/glasses/thermal/eyepatch + name = "Optical Thermal Eyepatch" + desc = "An eyepatch with built-in thermal optics." + icon_state = "eyepatch" + item_state = "eyepatch" + +/obj/item/clothing/glasses/cold + name = "cold goggles" + desc = "A pair of goggles meant for low temperatures." + icon_state = "cold" + item_state = "cold" + +/obj/item/clothing/glasses/heat + name = "heat goggles" + desc = "A pair of goggles meant for high temperatures." + icon_state = "heat" + item_state = "heat" + +/obj/item/clothing/glasses/orange + name = "orange glasses" + desc = "A sweet pair of orange shades." + icon_state = "orangeglasses" + item_state = "orangeglasses" + glass_colour_type = /datum/client_colour/glass_colour/lightorange + +/obj/item/clothing/glasses/red + name = "red glasses" + desc = "A sweet pair of red shades." + icon_state = "redglasses" + item_state = "redglasses" + glass_colour_type = /datum/client_colour/glass_colour/red + +/obj/item/clothing/glasses/godeye + name = "eye of god" + desc = "A strange eye, said to have been torn from an omniscient creature that used to roam the wastes." + icon_state = "godeye" + item_state = "godeye" + vision_flags = SEE_TURFS|SEE_MOBS|SEE_OBJS + darkness_view = 8 + scan_reagents = 1 + flags = NODROP + invis_view = SEE_INVISIBLE_MINIMUM + +/obj/item/clothing/glasses/godeye/attackby(obj/item/weapon/W as obj, mob/user as mob, params) + if(istype(W, src) && W != src && W.loc == user) + if(W.icon_state == "godeye") + W.icon_state = "doublegodeye" + W.item_state = "doublegodeye" + W.desc = "A pair of strange eyes, said to have been torn from an omniscient creature that used to roam the wastes. There's no real reason to have two, but that isn't stopping you." + if(iscarbon(user)) + var/mob/living/carbon/C = user + C.update_inv_wear_mask() + else + user << "The eye winks at you and vanishes into the abyss, you feel really unlucky." + qdel(src) + ..() + +/obj/item/clothing/glasses/proc/chameleon(var/mob/user) + var/input_glasses = input(user, "Choose a piece of eyewear to disguise as.", "Choose glasses style.") as null|anything in list("Sunglasses", "Medical HUD", "Mesons", "Science Goggles", "Glasses", "Security Sunglasses","Eyepatch","Welding","Gar") + + if(user && src in user.contents) + switch(input_glasses) + if("Sunglasses") + desc = "Strangely ancient technology used to help provide rudimentary eye cover. Enhanced shielding blocks many flashes." + name = "sunglasses" + icon_state = "sun" + item_state = "sunglasses" + if("Medical HUD") + name = "Health Scanner HUD" + desc = "A heads-up display that scans the humans in view and provides accurate data about their health status." + icon_state = "healthhud" + item_state = "healthhud" + if("Mesons") + name = "Optical Meson Scanner" + desc = "Used by engineering and mining staff to see basic structural and terrain layouts through walls, regardless of lighting condition." + icon_state = "meson" + item_state = "meson" + if("Science Goggles") + name = "Science Goggles" + desc = "A pair of snazzy goggles used to protect against chemical spills." + icon_state = "purple" + item_state = "glasses" + if("Glasses") + name = "Prescription Glasses" + desc = "Made by Nerd. Co." + icon_state = "glasses" + item_state = "glasses" + if("Security Sunglasses") + name = "HUDSunglasses" + desc = "Sunglasses with a HUD." + icon_state = "sunhud" + item_state = "sunglasses" + if("Eyepatch") + name = "eyepatch" + desc = "Yarr." + icon_state = "eyepatch" + item_state = "eyepatch" + if("Welding") + name = "welding goggles" + desc = "Protects the eyes from welders; approved by the mad scientist association." + icon_state = "welding-g" + item_state = "welding-g" + if("Gar") + desc = "Just who the hell do you think I am?!" + name = "gar glasses" + icon_state = "gar" + item_state = "gar" + + +/obj/item/clothing/glasses/AltClick(mob/user) + if(glass_colour_type && ishuman(user)) + var/mob/living/carbon/human/H = user + if(H.client) + if(H.client.prefs) + if(src == H.glasses) + H.client.prefs.uses_glasses_colour = !H.client.prefs.uses_glasses_colour + if(H.client.prefs.uses_glasses_colour) + H << "You will now see glasses colors." + else + H << "You will no longer see glasses colors." + H.update_glasses_color(src, 1) + else + return ..() + +/obj/item/clothing/glasses/proc/change_glass_color(mob/living/carbon/human/H, datum/client_colour/glass_colour/new_color_type) + var/old_colour_type = glass_colour_type + if(!new_color_type || ispath(new_color_type)) //the new glass colour type must be null or a path. + glass_colour_type = new_color_type + if(H && H.glasses == src) + if(old_colour_type) + H.remove_client_colour(old_colour_type) + if(glass_colour_type) + H.update_glasses_color(src, 1) + + +/mob/living/carbon/human/proc/update_glasses_color(obj/item/clothing/glasses/G, glasses_equipped) + if(client && client.prefs.uses_glasses_colour && glasses_equipped) + add_client_colour(G.glass_colour_type) + else + remove_client_colour(G.glass_colour_type) diff --git a/code/modules/clothing/glasses/hud.dm b/code/modules/clothing/glasses/hud.dm new file mode 100644 index 0000000..a95be70 --- /dev/null +++ b/code/modules/clothing/glasses/hud.dm @@ -0,0 +1,180 @@ +/obj/item/clothing/glasses/hud + name = "HUD" + desc = "A heads-up display that provides important info in (almost) real time." + flags = null //doesn't protect eyes because it's a monocle, duh + origin_tech = "magnets=3;biotech=2" + var/hud_type = null + +/obj/item/clothing/glasses/hud/equipped(mob/living/carbon/human/user, slot) + ..() + if(hud_type && slot == slot_glasses) + var/datum/atom_hud/H = huds[hud_type] + H.add_hud_to(user) + +/obj/item/clothing/glasses/hud/dropped(mob/living/carbon/human/user) + ..() + if(hud_type && istype(user) && user.glasses == src) + var/datum/atom_hud/H = huds[hud_type] + H.remove_hud_from(user) + +/obj/item/clothing/glasses/hud/emp_act(severity) + if(emagged == 0) + emagged = 1 + desc = desc + " The display flickers slightly." + +/obj/item/clothing/glasses/hud/emag_act(mob/user) + if(emagged == 0) + emagged = 1 + user << "PZZTTPFFFT" + desc = desc + " The display flickers slightly." + +/obj/item/clothing/glasses/hud/health + name = "Health Scanner HUD" + desc = "A heads-up display that scans the humans in view and provides accurate data about their health status." + icon_state = "healthhud" + origin_tech = "magnets=3;biotech=2" + hud_type = DATA_HUD_MEDICAL_ADVANCED + glass_colour_type = /datum/client_colour/glass_colour/lightblue + +/obj/item/clothing/glasses/hud/health/night + name = "Night Vision Health Scanner HUD" + desc = "An advanced medical head-up display that allows doctors to find patients in complete darkness." + icon_state = "healthhudnight" + item_state = "glasses" + origin_tech = "magnets=4;biotech=4;plasmatech=4;engineering=5" + darkness_view = 8 + invis_view = SEE_INVISIBLE_MINIMUM + glass_colour_type = /datum/client_colour/glass_colour/green + +/obj/item/clothing/glasses/hud/diagnostic + name = "Diagnostic HUD" + desc = "A heads-up display capable of analyzing the integrity and status of robotics and exosuits." + icon_state = "diagnostichud" + origin_tech = "magnets=2;engineering=2" + hud_type = DATA_HUD_DIAGNOSTIC + glass_colour_type = /datum/client_colour/glass_colour/lightorange + +/obj/item/clothing/glasses/hud/diagnostic/night + name = "Night Vision Diagnostic HUD" + desc = "A robotics diagnostic HUD fitted with a light amplifier." + icon_state = "diagnostichudnight" + item_state = "glasses" + origin_tech = "magnets=4;powerstorage=4;plasmatech=4;engineering=5" + darkness_view = 8 + invis_view = SEE_INVISIBLE_MINIMUM + glass_colour_type = /datum/client_colour/glass_colour/green + +/obj/item/clothing/glasses/hud/security + name = "Security HUD" + desc = "A heads-up display that scans the humans in view and provides accurate data about their ID status and security records." + icon_state = "securityhud" + origin_tech = "magnets=3;combat=2" + hud_type = DATA_HUD_SECURITY_ADVANCED + glass_colour_type = /datum/client_colour/glass_colour/red + +/obj/item/clothing/glasses/hud/security/chameleon + name = "Chamleon Security HUD" + desc = "A stolen security HUD integrated with Syndicate chameleon technology. Toggle to disguise the HUD. Provides flash protection." + flash_protect = 1 + +/obj/item/clothing/glasses/hud/security/chameleon/attack_self(mob/user) + chameleon(user) + + +/obj/item/clothing/glasses/hud/security/sunglasses/eyepatch + name = "Eyepatch HUD" + desc = "A heads-up display that connects directly to the optical nerve of the user, replacing the need for that useless eyeball." + icon_state = "hudpatch" + +/obj/item/clothing/glasses/hud/security/sunglasses + name = "HUDSunglasses" + desc = "Sunglasses with a HUD." + icon_state = "sunhud" + origin_tech = "magnets=3;combat=3;engineering=3" + darkness_view = 1 + flash_protect = 1 + tint = 1 + glass_colour_type = /datum/client_colour/glass_colour/darkred + +/obj/item/clothing/glasses/hud/security/night + name = "Night Vision Security HUD" + desc = "An advanced heads-up display which provides id data and vision in complete darkness." + icon_state = "securityhudnight" + origin_tech = "magnets=4;combat=4;plasmatech=4;engineering=5" + darkness_view = 8 + invis_view = SEE_INVISIBLE_MINIMUM + glass_colour_type = /datum/client_colour/glass_colour/green + +/obj/item/clothing/glasses/hud/security/sunglasses/gars + name = "HUD gar glasses" + desc = "GAR glasses with a HUD." + icon_state = "gars" + item_state = "garb" + force = 10 + throwforce = 10 + throw_speed = 4 + attack_verb = list("sliced") + hitsound = 'sound/weapons/bladeslice.ogg' + sharpness = IS_SHARP + +/obj/item/clothing/glasses/hud/security/sunglasses/gars/supergars + name = "giga HUD gar glasses" + desc = "GIGA GAR glasses with a HUD." + icon_state = "supergars" + item_state = "garb" + force = 12 + throwforce = 12 + +/obj/item/clothing/glasses/hud/toggle + name = "Toggle Hud" + desc = "A hud with multiple functions." + actions_types = list(/datum/action/item_action/switch_hud) + +/obj/item/clothing/glasses/hud/toggle/attack_self(mob/user) + if(!ishuman(user)) + return + var/mob/living/carbon/human/wearer = user + if (wearer.glasses != src) + return + + if (hud_type) + var/datum/atom_hud/H = huds[hud_type] + H.remove_hud_from(user) + + if (hud_type == DATA_HUD_MEDICAL_ADVANCED) + hud_type = null + else if (hud_type == DATA_HUD_SECURITY_ADVANCED) + hud_type = DATA_HUD_MEDICAL_ADVANCED + else + hud_type = DATA_HUD_SECURITY_ADVANCED + + if (hud_type) + var/datum/atom_hud/H = huds[hud_type] + H.add_hud_to(user) + +/obj/item/clothing/glasses/hud/toggle/thermal + name = "Thermal HUD Scanner" + desc = "Thermal imaging HUD in the shape of glasses." + icon_state = "thermal" + hud_type = DATA_HUD_SECURITY_ADVANCED + vision_flags = SEE_MOBS + invis_view = 2 + glass_colour_type = /datum/client_colour/glass_colour/red + +/obj/item/clothing/glasses/hud/toggle/thermal/attack_self(mob/user) + ..() + switch (hud_type) + if (DATA_HUD_MEDICAL_ADVANCED) + icon_state = "meson" + change_glass_color(user, /datum/client_colour/glass_colour/green) + if (DATA_HUD_SECURITY_ADVANCED) + icon_state = "thermal" + change_glass_color(user, /datum/client_colour/glass_colour/red) + else + icon_state = "purple" + change_glass_color(user, /datum/client_colour/glass_colour/purple) + user.update_inv_glasses() + +/obj/item/clothing/glasses/hud/toggle/thermal/emp_act(severity) + thermal_overload() + ..() diff --git a/code/modules/clothing/gloves/boxing.dm b/code/modules/clothing/gloves/boxing.dm new file mode 100644 index 0000000..701984d --- /dev/null +++ b/code/modules/clothing/gloves/boxing.dm @@ -0,0 +1,19 @@ +/obj/item/clothing/gloves/boxing + name = "boxing gloves" + desc = "Because you really needed another excuse to punch your crewmates." + icon_state = "boxing" + item_state = "boxing" + put_on_delay = 60 + species_exception = list(/datum/species/golem) // now you too can be a golem boxing champion + +/obj/item/clothing/gloves/boxing/green + icon_state = "boxinggreen" + item_state = "boxinggreen" + +/obj/item/clothing/gloves/boxing/blue + icon_state = "boxingblue" + item_state = "boxingblue" + +/obj/item/clothing/gloves/boxing/yellow + icon_state = "boxingyellow" + item_state = "boxingyellow" diff --git a/code/modules/clothing/gloves/color.dm b/code/modules/clothing/gloves/color.dm new file mode 100644 index 0000000..7a77580 --- /dev/null +++ b/code/modules/clothing/gloves/color.dm @@ -0,0 +1,205 @@ +/obj/item/clothing/gloves/color/yellow + desc = "These gloves will protect the wearer from electric shock." + name = "insulated gloves" + icon_state = "yellow" + item_state = "ygloves" + siemens_coefficient = 0 + permeability_coefficient = 0.05 + item_color="yellow" + resistance_flags = 0 + +/obj/item/clothing/gloves/color/fyellow //Cheap Chinese Crap + desc = "These gloves are cheap knockoffs of the coveted ones - no way this can end badly." + name = "budget insulated gloves" + icon_state = "yellow" + item_state = "ygloves" + siemens_coefficient = 1 //Set to a default of 1, gets overridden in New() + permeability_coefficient = 0.05 + item_color="yellow" + resistance_flags = 0 + +/obj/item/clothing/gloves/color/fyellow/New() + ..() + siemens_coefficient = pick(0,0.5,0.5,0.5,0.5,0.75,1.5) + +/obj/item/clothing/gloves/color/black + desc = "These gloves are fire-resistant." + name = "black gloves" + icon_state = "black" + item_state = "blackgloves" + item_color="black" + cold_protection = HANDS + min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT + heat_protection = HANDS + max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT + resistance_flags = 0 + var/can_be_cut = 1 + +/obj/item/clothing/gloves/color/black/hos + item_color = "hosred" //Exists for washing machines. Is not different from black gloves in any way. + +/obj/item/clothing/gloves/color/black/ce + item_color = "chief" //Exists for washing machines. Is not different from black gloves in any way. + +/obj/item/clothing/gloves/color/black/attackby(obj/item/weapon/W as obj, mob/user as mob, params) + if(istype(W, /obj/item/weapon/wirecutters)) + if(can_be_cut && icon_state == initial(icon_state))//only if not dyed + user << "You snip the fingertips off of [src]." + playsound(user.loc,'sound/items/Wirecutter.ogg', rand(10,50), 1) + new /obj/item/clothing/gloves/fingerless(user.loc) + qdel(src) + ..() + +/obj/item/clothing/gloves/color/orange + name = "orange gloves" + desc = "A pair of gloves, they don't look special in any way." + icon_state = "orange" + item_state = "orangegloves" + item_color="orange" + +/obj/item/clothing/gloves/color/red + name = "red gloves" + desc = "A pair of gloves, they don't look special in any way." + icon_state = "red" + item_state = "redgloves" + item_color = "red" + + +/obj/item/clothing/gloves/color/red/insulated + name = "insulated gloves" + desc = "These gloves will protect the wearer from electric shock." + siemens_coefficient = 0 + permeability_coefficient = 0.05 + resistance_flags = 0 + +/obj/item/clothing/gloves/color/rainbow + name = "rainbow gloves" + desc = "A pair of gloves, they don't look special in any way." + icon_state = "rainbow" + item_state = "rainbowgloves" + item_color = "rainbow" + +/obj/item/clothing/gloves/color/rainbow/clown + item_color = "clown" + +/obj/item/clothing/gloves/color/blue + name = "blue gloves" + desc = "A pair of gloves, they don't look special in any way." + icon_state = "blue" + item_state = "bluegloves" + item_color="blue" + +/obj/item/clothing/gloves/color/purple + name = "purple gloves" + desc = "A pair of gloves, they don't look special in any way." + icon_state = "purple" + item_state = "purplegloves" + item_color="purple" + +/obj/item/clothing/gloves/color/green + name = "green gloves" + desc = "A pair of gloves, they don't look special in any way." + icon_state = "green" + item_state = "greengloves" + item_color="green" + +/obj/item/clothing/gloves/color/grey + name = "grey gloves" + desc = "A pair of gloves, they don't look special in any way." + icon_state = "gray" + item_state = "graygloves" + item_color="grey" + +/obj/item/clothing/gloves/color/grey/rd + item_color = "director" //Exists for washing machines. Is not different from gray gloves in any way. + +/obj/item/clothing/gloves/color/grey/hop + item_color = "hop" //Exists for washing machines. Is not different from gray gloves in any way. + +/obj/item/clothing/gloves/color/light_brown + name = "light brown gloves" + desc = "A pair of gloves, they don't look special in any way." + icon_state = "lightbrown" + item_state = "lightbrowngloves" + item_color="light brown" + +/obj/item/clothing/gloves/color/brown + name = "brown gloves" + desc = "A pair of gloves, they don't look special in any way." + icon_state = "brown" + item_state = "browngloves" + item_color="brown" + +/obj/item/clothing/gloves/color/brown/cargo + item_color = "cargo" //Exists for washing machines. Is not different from brown gloves in any way. + +/obj/item/clothing/gloves/color/captain + desc = "Regal blue gloves, with a nice gold trim. Swanky." + name = "captain's gloves" + icon_state = "captain" + item_state = "egloves" + item_color = "captain" + siemens_coefficient = 0 + permeability_coefficient = 0.05 + cold_protection = HANDS + min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT + heat_protection = HANDS + max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT + strip_delay = 60 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 70, acid = 50) + +/obj/item/clothing/gloves/color/latex + name = "latex gloves" + desc = "Cheap sterile gloves made from latex." + icon_state = "latex" + item_state = "lgloves" + siemens_coefficient = 0.30 + permeability_coefficient = 0.01 + item_color="white" + transfer_prints = TRUE + resistance_flags = 0 + +/obj/item/clothing/gloves/color/latex/nitrile + name = "nitrile gloves" + desc = "Pricy sterile gloves that are stronger than latex." + icon_state = "nitrile" + item_state = "nitrilegloves" + item_color = "cmo" + transfer_prints = FALSE + +/obj/item/clothing/gloves/color/white + name = "white gloves" + desc = "These look pretty fancy." + icon_state = "white" + item_state = "wgloves" + item_color="mime" + +/obj/item/clothing/gloves/color/white/redcoat + item_color = "redcoat" //Exists for washing machines. Is not different from white gloves in any way. + +/obj/item/clothing/gloves/color/random + name = "random gloves" + desc = "These gloves are supposed to be a random color..." + icon_state = "white" + item_state = "wgloves" + item_color = "mime" + +/obj/item/clothing/gloves/color/random/New() + ..() + var/list/gloves = list( + /obj/item/clothing/gloves/color/orange = 1, + /obj/item/clothing/gloves/color/red = 1, + /obj/item/clothing/gloves/color/blue = 1, + /obj/item/clothing/gloves/color/purple = 1, + /obj/item/clothing/gloves/color/green = 1, + /obj/item/clothing/gloves/color/grey = 1, + /obj/item/clothing/gloves/color/light_brown = 1, + /obj/item/clothing/gloves/color/brown = 1) + + var/obj/item/clothing/gloves/color/selected = pick(gloves) + + name = initial(selected.name) + desc = initial(selected.desc) + icon_state = initial(selected.icon_state) + item_state = initial(selected.item_state) + item_color = initial(selected.item_color) diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm new file mode 100644 index 0000000..90d56d5 --- /dev/null +++ b/code/modules/clothing/gloves/miscellaneous.dm @@ -0,0 +1,57 @@ + +/obj/item/clothing/gloves/fingerless + name = "fingerless gloves" + desc = "Plain black gloves without fingertips for the hard working." + icon_state = "fingerless" + item_state = "fingerless" + item_color = null //So they don't wash. + transfer_prints = TRUE + strip_delay = 40 + put_on_delay = 20 + cold_protection = HANDS + min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT + +/obj/item/clothing/gloves/botanic_leather + name = "botanist's leather gloves" + desc = "These leather gloves protect against thorns, barbs, prickles, spikes and other harmful objects of floral origin. They're also quite warm." + icon_state = "leather" + item_state = "ggloves" + permeability_coefficient = 0.9 + cold_protection = HANDS + min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT + heat_protection = HANDS + max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT + resistance_flags = 0 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 70, acid = 30) + +/obj/item/clothing/gloves/combat + name = "combat gloves" + desc = "These tactical gloves are fireproof and shock resistant." + icon_state = "black" + item_state = "blackgloves" + siemens_coefficient = 0 + permeability_coefficient = 0.05 + strip_delay = 80 + cold_protection = HANDS + min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT + heat_protection = HANDS + max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT + resistance_flags = 0 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 80, acid = 50) + + +/obj/item/clothing/gloves/bracer + name = "bone bracers" + desc = "For when you're expecting to get slapped on the wrist. Offers modest protection to your arms." + icon_state = "bracers" + item_state = "bracers" + item_color = null //So they don't wash. + transfer_prints = TRUE + strip_delay = 40 + put_on_delay = 20 + body_parts_covered = ARMS + cold_protection = ARMS + min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT + max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT + resistance_flags = 0 + armor = list(melee = 15, bullet = 35, laser = 35, energy = 20, bomb = 35, bio = 35, rad = 35, fire = 0, acid = 0) diff --git a/code/modules/clothing/head/beanie.dm b/code/modules/clothing/head/beanie.dm new file mode 100644 index 0000000..bbae5b2 --- /dev/null +++ b/code/modules/clothing/head/beanie.dm @@ -0,0 +1,77 @@ + +//BeanieStation13 Redux + +/obj/item/clothing/head/beanie //Default is white, this is meant to be seen + name = "white beanie" + desc = "A stylish beanie. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their heads." + icon_state = "beanie" //Default white + item_color = "beanie" + +/obj/item/clothing/head/beanie/black + name = "black beanie" + icon_state = "beanie" + color = "#4A4A4B" //Grey but it looks black + +/obj/item/clothing/head/beanie/red + name = "red beanie" + icon_state = "beanie" + color = "#D91414" //Red + +/obj/item/clothing/head/beanie/green + name = "green beanie" + icon_state = "beanie" + color = "#5C9E54" //Green + +/obj/item/clothing/head/beanie/darkblue + name = "dark blue beanie" + icon_state = "beanie" + color = "#1E85BC" //Blue + +/obj/item/clothing/head/beanie/purple + name = "purple beanie" + icon_state = "beanie" + color = "#9557C5" //purple + +/obj/item/clothing/head/beanie/yellow + name = "yellow beanie" + icon_state = "beanie" + color = "#E0C14F" //Yellow + +/obj/item/clothing/head/beanie/orange + name = "orange beanie" + icon_state = "beanie" + color = "#C67A4B" //orange + +/obj/item/clothing/head/beanie/cyan + name = "cyan beanie" + icon_state = "beanie" + color = "#54A3CE" //Cyan (Or close to it) + +//Striped Beanies have unique sprites + +/obj/item/clothing/head/beanie/christmas + name = "christmas beanie" + icon_state = "beaniechristmas" + item_color = "beaniechristmas" + +/obj/item/clothing/head/beanie/striped + name = "striped beanie" + icon_state = "beaniestriped" + item_color = "beaniestriped" + +/obj/item/clothing/head/beanie/stripedred + name = "red striped beanie" + icon_state = "beaniestripedred" + item_color = "beaniestripedred" + +/obj/item/clothing/head/beanie/stripedblue + name = "blue striped beanie" + icon_state = "beaniestripedblue" + item_color = "beaniestripedblue" + +/obj/item/clothing/head/beanie/stripedgreen + name = "green striped beanie" + icon_state = "beaniestripedgreen" + item_color = "beaniestripedgreen" + +//No dog fashion sprites yet :( poor Ian can't be dope like the rest of us yet \ No newline at end of file diff --git a/code/modules/clothing/head/collectable.dm b/code/modules/clothing/head/collectable.dm new file mode 100644 index 0000000..61171cc --- /dev/null +++ b/code/modules/clothing/head/collectable.dm @@ -0,0 +1,147 @@ + +//Hat Station 13 + +/obj/item/clothing/head/collectable + name = "collectable hat" + desc = "A rare collectable hat." + +/obj/item/clothing/head/collectable/petehat + name = "ultra rare Pete's hat!" + desc = "It smells faintly of plasma." + icon_state = "petehat" + +/obj/item/clothing/head/collectable/slime + name = "collectable slime cap!" + desc = "It just latches right in place!" + icon_state = "slime" + +/obj/item/clothing/head/collectable/xenom + name = "collectable xenomorph helmet!" + desc = "Hiss hiss hiss!" + icon_state = "xenom" + +/obj/item/clothing/head/collectable/chef + name = "collectable chef's hat" + desc = "A rare chef's hat meant for hat collectors!" + icon_state = "chef" + item_state = "chef" + + dog_fashion = /datum/dog_fashion/head/chef + +/obj/item/clothing/head/collectable/paper + name = "collectable paper hat" + desc = "What looks like an ordinary paper hat is actually a rare and valuable collector's edition paper hat. Keep away from water, fire, and Librarians." + icon_state = "paper" + + dog_fashion = /datum/dog_fashion/head + +/obj/item/clothing/head/collectable/tophat + name = "collectable top hat" + desc = "A top hat worn by only the most prestigious hat collectors." + icon_state = "tophat" + item_state = "that" + +/obj/item/clothing/head/collectable/captain + name = "collectable captain's hat" + desc = "A collectable hat that'll make you look just like a real comdom!" + icon_state = "captain" + item_state = "caphat" + + dog_fashion = /datum/dog_fashion/head/captain + +/obj/item/clothing/head/collectable/police + name = "collectable police officer's hat" + desc = "A collectable police officer's Hat. This hat emphasizes that you are THE LAW." + icon_state = "policehelm" + + dog_fashion = /datum/dog_fashion/head/warden + +/obj/item/clothing/head/collectable/beret + name = "collectable beret" + desc = "A collectable red beret. It smells faintly of garlic." + icon_state = "beret" + + dog_fashion = /datum/dog_fashion/head/beret + +/obj/item/clothing/head/collectable/welding + name = "collectable welding helmet" + desc = "A collectable welding helmet. Now with 80% less lead! Not for actual welding. Any welding done while wearing this helmet is done so at the owner's own risk!" + icon_state = "welding" + item_state = "welding" + resistance_flags = 0 + +/obj/item/clothing/head/collectable/slime + name = "collectable slime hat" + desc = "Just like a real brain slug!" + icon_state = "headslime" + item_state = "headslime" + +/obj/item/clothing/head/collectable/flatcap + name = "collectable flat cap" + desc = "A collectible farmer's flat cap!" + icon_state = "flat_cap" + item_state = "detective" + +/obj/item/clothing/head/collectable/pirate + name = "collectable pirate hat" + desc = "You'd make a great Dread Syndie Roberts!" + icon_state = "pirate" + item_state = "pirate" + + dog_fashion = /datum/dog_fashion/head/pirate + +/obj/item/clothing/head/collectable/kitty + name = "collectable kitty ears" + desc = "The fur feels... a bit too realistic." + icon_state = "kitty" + item_state = "kitty" + + dog_fashion = /datum/dog_fashion/head/kitty + +/obj/item/clothing/head/collectable/rabbitears + name = "collectable rabbit ears" + desc = "Not as lucky as the feet!" + icon_state = "bunny" + item_state = "bunny" + + dog_fashion = /datum/dog_fashion/head/rabbit + +/obj/item/clothing/head/collectable/wizard + name = "collectable wizard's hat" + desc = "NOTE: Any magical powers gained from wearing this hat are purely coincidental." + icon_state = "wizard" + + dog_fashion = /datum/dog_fashion/head/blue_wizard + +/obj/item/clothing/head/collectable/hardhat + name = "collectable hard hat" + desc = "WARNING! Offers no real protection, or luminosity, but damn, is it fancy!" + icon_state = "hardhat0_yellow" + item_state = "hardhat0_yellow" + + dog_fashion = /datum/dog_fashion/head + +/obj/item/clothing/head/collectable/HoS + name = "collectable HoS hat" + desc = "Now you too can beat prisoners, set silly sentences, and arrest for no reason!" + icon_state = "hoscap" + +/obj/item/clothing/head/collectable/HoP + name = "collectable HoP hat" + desc = "It's your turn to demand excessive paperwork, signatures, stamps, and hire more clowns! Papers, please!" + icon_state = "hopcap" + dog_fashion = /datum/dog_fashion/head/hop + +/obj/item/clothing/head/collectable/thunderdome + name = "collectable Thunderdome helmet" + desc = "Go Red! I mean Green! I mean Red! No Green!" + icon_state = "thunderdome" + item_state = "thunderdome" + resistance_flags = 0 + +/obj/item/clothing/head/collectable/swat + name = "collectable SWAT helmet" + desc = "That's not real blood. That's red paint." //Reference to the actual description + icon_state = "swat" + item_state = "swat" + resistance_flags = 0 diff --git a/code/modules/clothing/head/hardhat.dm b/code/modules/clothing/head/hardhat.dm new file mode 100644 index 0000000..a095689 --- /dev/null +++ b/code/modules/clothing/head/hardhat.dm @@ -0,0 +1,95 @@ +/obj/item/clothing/head/hardhat + name = "hard hat" + desc = "A piece of headgear used in dangerous working conditions to protect the head. Comes with a built-in flashlight." + icon_state = "hardhat0_yellow" + item_state = "hardhat0_yellow" + var/brightness_on = 4 //luminosity when on + var/on = 0 + item_color = "yellow" //Determines used sprites: hardhat[on]_[item_color] and hardhat[on]_[item_color]2 (lying down sprite) + armor = list(melee = 15, bullet = 5, laser = 20,energy = 10, bomb = 20, bio = 10, rad = 20, fire = 100, acid = 50) + flags_inv = 0 + actions_types = list(/datum/action/item_action/toggle_helmet_light) + resistance_flags = FIRE_PROOF + + dog_fashion = /datum/dog_fashion/head + +/obj/item/clothing/head/hardhat/attack_self(mob/user) + on = !on + icon_state = "hardhat[on]_[item_color]" + item_state = "hardhat[on]_[item_color]" + user.update_inv_head() //so our mob-overlays update + + if(on) + turn_on(user) + else + turn_off(user) + for(var/X in actions) + var/datum/action/A = X + A.UpdateButtonIcon() + +/obj/item/clothing/head/hardhat/pickup(mob/user) + ..() + if(on) + user.AddLuminosity(brightness_on) + SetLuminosity(0) + +/obj/item/clothing/head/hardhat/dropped(mob/user) + ..() + if(on) + user.AddLuminosity(-brightness_on) + SetLuminosity(brightness_on) + +/obj/item/clothing/head/hardhat/proc/turn_on(mob/user) + user.AddLuminosity(brightness_on) + +/obj/item/clothing/head/hardhat/proc/turn_off(mob/user) + user.AddLuminosity(-brightness_on) + +/obj/item/clothing/head/hardhat/orange + icon_state = "hardhat0_orange" + item_state = "hardhat0_orange" + item_color = "orange" + dog_fashion = null + +/obj/item/clothing/head/hardhat/red + icon_state = "hardhat0_red" + item_state = "hardhat0_red" + item_color = "red" + dog_fashion = null + name = "firefighter helmet" + flags = STOPSPRESSUREDMAGE + heat_protection = HEAD + max_heat_protection_temperature = FIRE_HELM_MAX_TEMP_PROTECT + cold_protection = HEAD + min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT + +/obj/item/clothing/head/hardhat/white + icon_state = "hardhat0_white" + item_state = "hardhat0_white" + item_color = "white" + flags = STOPSPRESSUREDMAGE + heat_protection = HEAD + max_heat_protection_temperature = FIRE_HELM_MAX_TEMP_PROTECT + cold_protection = HEAD + min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT + dog_fashion = /datum/dog_fashion/head + +/obj/item/clothing/head/hardhat/dblue + icon_state = "hardhat0_dblue" + item_state = "hardhat0_dblue" + item_color = "dblue" + dog_fashion = null + +/obj/item/clothing/head/hardhat/atmos + icon_state = "hardhat0_atmos" + item_state = "hardhat0_atmos" + item_color = "atmos" + dog_fashion = null + name = "atmospheric technician's firefighting helmet" + desc = "A firefighter's helmet, able to keep the user cool in any situation." + flags = STOPSPRESSUREDMAGE | THICKMATERIAL + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR + heat_protection = HEAD + max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT + cold_protection = HEAD + min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm new file mode 100644 index 0000000..0d37acd --- /dev/null +++ b/code/modules/clothing/head/helmet.dm @@ -0,0 +1,334 @@ +/obj/item/clothing/head/helmet + name = "helmet" + desc = "Standard Security gear. Protects the head from impacts." + icon_state = "helmet" + flags = HEADBANGPROTECT + item_state = "helmet" + armor = list(melee = 35, bullet = 30, laser = 30,energy = 10, bomb = 25, bio = 0, rad = 0, fire = 50, acid = 50) + flags_inv = HIDEEARS + cold_protection = HEAD + min_cold_protection_temperature = HELMET_MIN_TEMP_PROTECT + heat_protection = HEAD + max_heat_protection_temperature = HELMET_MAX_TEMP_PROTECT + strip_delay = 60 + resistance_flags = 0 + flags_cover = HEADCOVERSEYES + + dog_fashion = /datum/dog_fashion/head/helmet + + +/obj/item/clothing/head/helmet/New() + ..() + +/obj/item/clothing/head/helmet/sec + can_flashlight = 1 + +/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" + item_state = "helmetalt" + armor = list(melee = 15, bullet = 40, laser = 10, energy = 10, bomb = 40, bio = 0, rad = 0, fire = 50, acid = 50) + can_flashlight = 1 + dog_fashion = null + +/obj/item/clothing/head/helmet/blueshirt + icon_state = "blueshift" + item_state = "blueshift" + +/obj/item/clothing/head/helmet/riot + name = "riot helmet" + desc = "It's a helmet specifically designed to protect against close range attacks." + icon_state = "riot" + item_state = "helmet" + toggle_message = "You pull the visor down on" + alt_toggle_message = "You push the visor up on" + can_toggle = 1 + flags = HEADBANGPROTECT + armor = list(melee = 45, bullet = 15, laser = 5,energy = 5, bomb = 5, bio = 2, rad = 0, fire = 50, acid = 50) + flags_inv = HIDEEARS|HIDEFACE + strip_delay = 80 + actions_types = list(/datum/action/item_action/toggle) + visor_flags_inv = HIDEFACE + toggle_cooldown = 0 + flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH + dog_fashion = null + +/obj/item/clothing/head/helmet/attack_self(mob/user) + if(can_toggle && !user.incapacitated()) + if(world.time > cooldown + toggle_cooldown) + cooldown = world.time + up = !up + flags ^= visor_flags + flags_inv ^= visor_flags_inv + flags_cover ^= visor_flags_cover + icon_state = "[initial(icon_state)][up ? "up" : ""]" + user << "[up ? alt_toggle_message : toggle_message] \the [src]" + + user.update_inv_head() + if(iscarbon(user)) + var/mob/living/carbon/C = user + C.head_update(src, forced = 1) + + if(active_sound) + while(up) + playsound(src.loc, "[active_sound]", 100, 0, 4) + sleep(15) + +/obj/item/clothing/head/helmet/justice + name = "helmet of justice" + desc = "WEEEEOOO. WEEEEEOOO. WEEEEOOOO." + icon_state = "justice" + toggle_message = "You turn off the lights on" + alt_toggle_message = "You turn on the lights on" + actions_types = list(/datum/action/item_action/toggle_helmet_light) + can_toggle = 1 + toggle_cooldown = 20 + active_sound = 'sound/items/WEEOO1.ogg' + dog_fashion = null + +/obj/item/clothing/head/helmet/justice/escape + name = "alarm helmet" + desc = "WEEEEOOO. WEEEEEOOO. STOP THAT MONKEY. WEEEOOOO." + icon_state = "justice2" + toggle_message = "You turn off the light on" + alt_toggle_message = "You turn on the light on" + +/obj/item/clothing/head/helmet/swat + name = "\improper SWAT helmet" + desc = "An extremely robust, space-worthy helmet in a nefarious red and black stripe pattern." + icon_state = "swatsyndie" + item_state = "swatsyndie" + armor = list(melee = 40, bullet = 30, laser = 30,energy = 30, bomb = 50, bio = 90, rad = 20, fire = 50, acid = 50) + cold_protection = HEAD + min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT + heat_protection = HEAD + max_heat_protection_temperature = SPACE_HELM_MAX_TEMP_PROTECT + flags = STOPSPRESSUREDMAGE + strip_delay = 80 + dog_fashion = null + +/obj/item/clothing/head/helmet/swat/nanotrasen + name = "\improper SWAT helmet" + desc = "An extremely robust, space-worthy helmet with the Nanotrasen logo emblazoned on the top." + icon_state = "swat" + item_state = "swat" + +/obj/item/clothing/head/helmet/thunderdome + name = "\improper Thunderdome helmet" + desc = "'Let the battle commence!'" + flags_inv = HIDEEARS|HIDEHAIR + icon_state = "thunderdome" + item_state = "thunderdome" + armor = list(melee = 40, bullet = 30, laser = 25,energy = 10, bomb = 25, bio = 10, rad = 0, fire = 50, acid = 50) + cold_protection = HEAD + min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT + heat_protection = HEAD + max_heat_protection_temperature = SPACE_HELM_MAX_TEMP_PROTECT + strip_delay = 80 + dog_fashion = null + +/obj/item/clothing/head/helmet/roman + name = "roman helmet" + desc = "An ancient helmet made of bronze and leather." + flags_inv = HIDEEARS|HIDEHAIR + flags_cover = HEADCOVERSEYES + armor = list(melee = 25, bullet = 0, laser = 25, energy = 10, bomb = 10, bio = 0, rad = 0, fire = 100, acid = 50) + resistance_flags = FIRE_PROOF + icon_state = "roman" + item_state = "roman" + strip_delay = 100 + dog_fashion = null + +/obj/item/clothing/head/helmet/roman/legionaire + name = "roman legionaire helmet" + desc = "An ancient helmet made of bronze and leather. Has a red crest on top of it." + icon_state = "roman_c" + item_state = "roman_c" + +/obj/item/clothing/head/helmet/gladiator + name = "gladiator helmet" + desc = "Ave, Imperator, morituri te salutant." + icon_state = "gladiator" + item_state = "gladiator" + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEHAIR + flags_cover = HEADCOVERSEYES + dog_fashion = null + +/obj/item/clothing/head/helmet/redtaghelm + name = "red laser tag helmet" + desc = "They have chosen their own end." + icon_state = "redtaghelm" + flags_cover = HEADCOVERSEYES + item_state = "redtaghelm" + armor = list(melee = 15, bullet = 10, laser = 20,energy = 10, bomb = 20, bio = 0, rad = 0, fire = 0, acid = 50) + // Offer about the same protection as a hardhat. + dog_fashion = null + +/obj/item/clothing/head/helmet/bluetaghelm + name = "blue laser tag helmet" + desc = "They'll need more men." + icon_state = "bluetaghelm" + flags_cover = HEADCOVERSEYES + item_state = "bluetaghelm" + armor = list(melee = 15, bullet = 10, laser = 20,energy = 10, bomb = 20, bio = 0, rad = 0, fire = 0, acid = 50) + // Offer about the same protection as a hardhat. + dog_fashion = null + +/obj/item/clothing/head/helmet/knight + name = "medieval helmet" + desc = "A classic metal helmet." + icon_state = "knight_green" + item_state = "knight_green" + armor = list(melee = 41, bullet = 15, laser = 5,energy = 5, bomb = 5, bio = 2, rad = 0, fire = 0, acid = 50) + flags = null + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR + flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH + strip_delay = 80 + dog_fashion = null + +/obj/item/clothing/head/helmet/knight/blue + icon_state = "knight_blue" + item_state = "knight_blue" + +/obj/item/clothing/head/helmet/knight/yellow + icon_state = "knight_yellow" + item_state = "knight_yellow" + +/obj/item/clothing/head/helmet/knight/red + icon_state = "knight_red" + item_state = "knight_red" + +/obj/item/clothing/head/helmet/knight/templar + name = "crusader helmet" + desc = "Deus Vult." + icon_state = "knight_templar" + item_state = "knight_templar" + +/obj/item/clothing/head/helmet/skull + name = "skull helmet" + desc = "An intimidating tribal helmet, it doesn't look very comfortable." + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE + flags_cover = HEADCOVERSEYES + armor = list(melee = 25, bullet = 25, laser = 25, energy = 10, bomb = 10, bio = 5, rad = 20, fire = 40, acid = 20) + icon_state = "skull" + item_state = "skull" + strip_delay = 100 + +//LightToggle + +/obj/item/clothing/head/helmet/update_icon() + + var/state = "[initial(icon_state)]" + if(F) + if(F.on) + state += "-flight-on" //"helmet-flight-on" // "helmet-cam-flight-on" + else + state += "-flight" //etc. + + icon_state = state + + if(ishuman(loc)) + var/mob/living/carbon/human/H = loc + H.update_inv_head() + + return + +/obj/item/clothing/head/helmet/ui_action_click(mob/user, actiontype) + if(actiontype == /datum/action/item_action/toggle_helmet_flashlight) + toggle_helmlight() + else + ..() + +/obj/item/clothing/head/helmet/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/device/flashlight/seclite)) + var/obj/item/device/flashlight/seclite/S = I + if(can_flashlight) + if(!F) + if(!user.unEquip(S)) + return + user << "You click [S] into place on [src]." + if(S.on) + SetLuminosity(0) + F = S + S.loc = src + update_icon() + update_helmlight(user) + verbs += /obj/item/clothing/head/helmet/proc/toggle_helmlight + var/datum/action/A = new /datum/action/item_action/toggle_helmet_flashlight(src) + if(loc == user) + A.Grant(user) + return + + if(istype(I, /obj/item/weapon/screwdriver)) + if(F) + for(var/obj/item/device/flashlight/seclite/S in src) + user << "You unscrew the seclite from [src]." + F = null + S.loc = get_turf(user) + update_helmlight(user) + S.update_brightness(user) + update_icon() + usr.update_inv_head() + verbs -= /obj/item/clothing/head/helmet/proc/toggle_helmlight + for(var/datum/action/item_action/toggle_helmet_flashlight/THL in actions) + qdel(THL) + return + + ..() + +/obj/item/clothing/head/helmet/proc/toggle_helmlight() + set name = "Toggle Helmetlight" + set category = "Object" + set desc = "Click to toggle your helmet's attached flashlight." + + if(!F) + return + + var/mob/user = usr + if(user.incapacitated()) + return + F.on = !F.on + user << "You toggle the helmetlight [F.on ? "on":"off"]." + + playsound(user, 'sound/weapons/empty.ogg', 100, 1) + update_helmlight(user) + return + +/obj/item/clothing/head/helmet/proc/update_helmlight(mob/user = null) + if(F) + if(F.on) + if(loc == user) + user.AddLuminosity(F.brightness_on) + else if(isturf(loc)) + SetLuminosity(F.brightness_on) + else + if(loc == user) + user.AddLuminosity(-F.brightness_on) + else if(isturf(loc)) + SetLuminosity(0) + update_icon() + + else + if(loc == user) + user.AddLuminosity(-5) + else if(isturf(loc)) + SetLuminosity(0) + for(var/X in actions) + var/datum/action/A = X + A.UpdateButtonIcon() + +/obj/item/clothing/head/helmet/pickup(mob/user) + ..() + if(F) + if(F.on) + user.AddLuminosity(F.brightness_on) + SetLuminosity(0) + + +/obj/item/clothing/head/helmet/dropped(mob/user) + ..() + if(F) + if(F.on) + user.AddLuminosity(-F.brightness_on) + SetLuminosity(F.brightness_on) diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm new file mode 100644 index 0000000..9780d54 --- /dev/null +++ b/code/modules/clothing/head/jobs.dm @@ -0,0 +1,137 @@ + +//Chef +/obj/item/clothing/head/chefhat + name = "chef's hat" + desc = "It's a hat used by chefs to keep hair out of your food. Judging by the food in the mess, they don't work." + icon_state = "chef" + item_state = "chef" + desc = "The commander in chef's head wear." + strip_delay = 10 + put_on_delay = 10 + dog_fashion = /datum/dog_fashion/head/chef + +/obj/item/clothing/head/chefhat/suicide_act(mob/user) + user.visible_message("[user] is donning [src]! It looks like [user.p_theyre()] trying to become a chef.") + user.say("Bork Bork Bork!") + sleep(20) + user.visible_message("[user] climbs into an imaginary oven!") + user.say("BOOORK!") + playsound(user, 'sound/machines/ding.ogg', 50, 1) + return(FIRELOSS) + +//Captain +/obj/item/clothing/head/caphat + name = "captain's hat" + desc = "It's good being the king." + icon_state = "captain" + item_state = "that" + flags_inv = 0 + armor = list(melee = 25, bullet = 15, laser = 25, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 50, acid = 50) + strip_delay = 60 + dog_fashion = /datum/dog_fashion/head/captain + +//Captain: This is no longer space-worthy +/obj/item/clothing/head/caphat/parade + name = "captain's parade cap" + desc = "Worn only by Captains with an abundance of class." + icon_state = "capcap" + + dog_fashion = null + + +//Head of Personnel +/obj/item/clothing/head/hopcap + name = "head of personnel's cap" + icon_state = "hopcap" + desc = "The symbol of true bureaucratic micromanagement." + armor = list(melee = 25, bullet = 15, laser = 25, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 50, acid = 50) + dog_fashion = /datum/dog_fashion/head/hop + +//Chaplain +/obj/item/clothing/head/nun_hood + name = "nun hood" + desc = "Maximum piety in this star system." + icon_state = "nun_hood" + flags_inv = HIDEHAIR + flags_cover = HEADCOVERSEYES + +/obj/item/clothing/head/det_hat + name = "detective's fedora" + desc = "There's only one man who can sniff out the dirty stench of crime, and he's likely wearing this hat." + icon_state = "detective" + armor = list(melee = 25, bullet = 5, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0, fire = 30, acid = 50) + var/candy_cooldown = 0 + pockets = /obj/item/weapon/storage/internal/pocket/small/detective + dog_fashion = /datum/dog_fashion/head/detective + +/obj/item/clothing/head/det_hat/AltClick() + ..() + if(ismob(loc)) + var/mob/M = loc + if(candy_cooldown < world.time) + var/obj/item/weapon/reagent_containers/food/snacks/candy_corn/CC = new /obj/item/weapon/reagent_containers/food/snacks/candy_corn(src) + M.put_in_hands(CC) + M << "You slip a candy corn from your hat." + candy_cooldown = world.time+1200 + else + M << "You just took a candy corn! You should wait a couple minutes, lest you burn through your stash." + + +//Mime +/obj/item/clothing/head/beret + name = "beret" + desc = "A beret, a mime's favorite headwear." + icon_state = "beret" + + dog_fashion = /datum/dog_fashion/head/beret + +/obj/item/clothing/head/beret/highlander + desc = "That was white fabric. Was." + flags = NODROP + dog_fashion = null //THIS IS FOR SLAUGHTER, NOT PUPPIES + +//Security + +/obj/item/clothing/head/HoS + name = "head of security cap" + desc = "The robust standard-issue cap of the Head of Security. For showing the officers who's in charge." + icon_state = "hoscap" + armor = list(melee = 40, bullet = 30, laser = 25, energy = 10, bomb = 25, bio = 10, rad = 0, fire = 50, acid = 60) + strip_delay = 80 + +/obj/item/clothing/head/HoS/beret + name = "head of security beret" + desc = "A robust beret for the Head of Security, for looking stylish while not sacrificing protection." + icon_state = "hosberetblack" + +/obj/item/clothing/head/warden + name = "warden's police hat" + desc = "It's a special armored hat issued to the Warden of a security force. Protects the head from impacts." + icon_state = "policehelm" + armor = list(melee = 40, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 30, acid = 60) + strip_delay = 60 + dog_fashion = /datum/dog_fashion/head/warden + +/obj/item/clothing/head/beret/sec + name = "security beret" + desc = "A robust beret with the security insignia emblazoned on it. Uses reinforced fabric to offer sufficent protection." + icon_state = "beret_badge" + armor = list(melee = 40, bullet = 30, laser = 30,energy = 10, bomb = 25, bio = 0, rad = 0, fire = 20, acid = 50) + strip_delay = 60 + dog_fashion = null + +/obj/item/clothing/head/beret/sec/navyhos + name = "head of security's beret" + desc = "A special beret with the Head of Security's insignia emblazoned on it. A symbol of excellence, a badge of courage, a mark of distinction." + icon_state = "hosberet" + +/obj/item/clothing/head/beret/sec/navywarden + name = "warden's beret" + desc = "A special beret with the Warden's insignia emblazoned on it. For wardens with class." + icon_state = "wardenberet" + armor = list(melee = 40, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 30, acid = 50) + strip_delay = 60 + +/obj/item/clothing/head/beret/sec/navyofficer + desc = "A special beret with the security insignia emblazoned on it. For officers with class." + icon_state = "officerberet" diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm new file mode 100644 index 0000000..bd61e2c --- /dev/null +++ b/code/modules/clothing/head/misc.dm @@ -0,0 +1,273 @@ + + +/obj/item/clothing/head/centhat + name = "\improper Centcom hat" + icon_state = "centcom" + desc = "It's good to be emperor." + item_state = "that" + flags_inv = 0 + armor = list(melee = 30, bullet = 15, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 50, acid = 50) + strip_delay = 80 + +/obj/item/clothing/head/powdered_wig + name = "powdered wig" + desc = "A powdered wig." + icon_state = "pwig" + item_state = "pwig" + +/obj/item/clothing/head/that + name = "top-hat" + desc = "It's an amish looking hat." + icon_state = "tophat" + item_state = "that" + dog_fashion = /datum/dog_fashion/head + +/obj/item/clothing/head/canada + name = "striped red tophat" + desc = " It feels sticky, like maple syrup - il se sent collante, comme le sirop d'rable" + icon_state = "canada" + item_state = "canada" + +/obj/item/clothing/head/redcoat + name = "redcoat's hat" + icon_state = "redcoat" + desc = "'I guess it's a redhead.'" + +/obj/item/clothing/head/mailman + name = "mailman's hat" + icon_state = "mailman" + desc = "'Right-on-time' mail service head wear." + +/obj/item/clothing/head/plaguedoctorhat + name = "plague doctor's hat" + desc = "These were once used by plague doctors. They're pretty much useless." + icon_state = "plaguedoctor" + permeability_coefficient = 0.01 + +/obj/item/clothing/head/hasturhood + name = "hastur's hood" + desc = "It's unspeakably stylish." + icon_state = "hasturhood" + flags_inv = HIDEHAIR + flags_cover = HEADCOVERSEYES + +/obj/item/clothing/head/nursehat + name = "nurse's hat" + desc = "It allows quick identification of trained medical personnel." + icon_state = "nursehat" + + dog_fashion = /datum/dog_fashion/head/nurse + +/obj/item/clothing/head/syndicatefake + name = "black space-helmet replica" + icon_state = "syndicate-helm-black-red" + item_state = "syndicate-helm-black-red" + desc = "A plastic replica of a Syndicate agent's space helmet. You'll look just like a real murderous Syndicate agent in this! This is a toy, it is not made for use in space!" + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR + +/obj/item/clothing/head/snowman + name = "Snowman Head" + desc = "A ball of white styrofoam. So festive." + icon_state = "snowman_h" + item_state = "snowman_h" + flags_cover = HEADCOVERSEYES + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR + +/obj/item/clothing/head/justice + name = "justice hat" + desc = "Fight for what's righteous!" + icon_state = "justicered" + item_state = "justicered" + flags_inv = HIDEHAIR|HIDEEARS|HIDEEYES|HIDEFACE|HIDEFACIALHAIR + flags_cover = HEADCOVERSEYES + +/obj/item/clothing/head/justice/blue + icon_state = "justiceblue" + item_state = "justiceblue" + +/obj/item/clothing/head/justice/yellow + icon_state = "justiceyellow" + item_state = "justiceyellow" + +/obj/item/clothing/head/justice/green + icon_state = "justicegreen" + item_state = "justicegreen" + +/obj/item/clothing/head/justice/pink + icon_state = "justicepink" + item_state = "justicepink" + +/obj/item/clothing/head/rabbitears + name = "rabbit ears" + desc = "Wearing these makes you look useless, and only good for your sex appeal." + icon_state = "bunny" + + dog_fashion = /datum/dog_fashion/head/rabbit + + +/obj/item/clothing/head/flatcap + name = "flat cap" + desc = "A working man's cap." + icon_state = "flat_cap" + item_state = "detective" + +/obj/item/clothing/head/pirate + name = "pirate hat" + desc = "Yarr." + icon_state = "pirate" + item_state = "pirate" + dog_fashion = /datum/dog_fashion/head/pirate + +/obj/item/clothing/head/pirate/captain + icon_state = "hgpiratecap" + item_state = "hgpiratecap" + +/obj/item/clothing/head/bandana + name = "pirate bandana" + desc = "Yarr." + icon_state = "bandana" + item_state = "bandana" + +/obj/item/clothing/head/bowler + name = "bowler-hat" + desc = "Gentleman, elite aboard!" + icon_state = "bowler" + item_state = "bowler" + +/obj/item/clothing/head/witchwig + name = "witch costume wig" + desc = "Eeeee~heheheheheheh!" + icon_state = "witch" + item_state = "witch" + flags_inv = HIDEHAIR + +/obj/item/clothing/head/chicken + name = "chicken suit head" + desc = "Bkaw!" + icon_state = "chickenhead" + item_state = "chickensuit" + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR + +/obj/item/clothing/head/griffin + name = "griffon head" + desc = "Why not 'eagle head'? Who knows." + icon_state = "griffinhat" + item_state = "griffinhat" + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR + +/obj/item/clothing/head/bearpelt + name = "bear pelt hat" + desc = "Fuzzy." + icon_state = "bearpelt" + item_state = "bearpelt" + +/obj/item/clothing/head/xenos + name = "xenos helmet" + icon_state = "xenos" + item_state = "xenos_helm" + desc = "A helmet made out of chitinous alien hide." + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR + +/obj/item/clothing/head/fedora + name = "fedora" + icon_state = "fedora" + item_state = "fedora" + desc = "A really cool hat if you're a mobster. A really lame hat if you're not." + pockets = /obj/item/weapon/storage/internal/pocket/small + +/obj/item/clothing/head/fedora/suicide_act(mob/user) + if(user.gender == FEMALE) + return 0 + var/mob/living/carbon/human/H = user + user.visible_message("[user] is donning [src]! It looks like they're trying to be nice to girls.") + user.say("M'lady.") + sleep(10) + H.facial_hair_style = "Neckbeard" + return(BRUTELOSS) + +/obj/item/clothing/head/sombrero + name = "sombrero" + icon_state = "sombrero" + item_state = "sombrero" + desc = "You can practically taste the fiesta." + flags_inv = HIDEHAIR + + dog_fashion = /datum/dog_fashion/head/sombrero + +/obj/item/clothing/head/sombrero/green + name = "green sombrero" + icon_state = "greensombrero" + item_state = "greensombrero" + desc = "As elegant as a dancing cactus." + flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS + dog_fashion = null + +/obj/item/clothing/head/sombrero/shamebrero + name = "shamebrero" + icon_state = "shamebrero" + item_state = "shamebrero" + desc = "Once it's on, it never comes off." + flags = NODROP + dog_fashion = null + +/obj/item/clothing/head/cone + desc = "This cone is trying to warn you of something!" + name = "warning cone" + icon = 'icons/obj/janitor.dmi' + icon_state = "cone" + item_state = "cone" + force = 1 + throwforce = 3 + throw_speed = 2 + throw_range = 5 + w_class = 2 + attack_verb = list("warned", "cautioned", "smashed") + resistance_flags = 0 + +/obj/item/clothing/head/santa + name = "santa hat" + desc = "On the first day of christmas my employer gave to me!" + icon_state = "santahatnorm" + item_state = "that" + cold_protection = HEAD + min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT + dog_fashion = /datum/dog_fashion/head/santa + +/obj/item/clothing/head/jester + name = "jester hat" + desc = "A hat with bells, to add some merryness to the suit." + icon_state = "jester_hat" + +/obj/item/clothing/head/rice_hat + name = "rice hat" + desc = "Welcome to the rice fields, motherfucker." + icon_state = "rice_hat" + +/obj/item/clothing/head/lizard + name = "lizardskin cloche hat" + desc = "How many lizards died to make this hat? Not enough." + icon_state = "lizard" + +/obj/item/clothing/head/papersack + name = "paper sack hat" + desc = "A paper sack with crude holes cut out for eyes. Useful for hiding one's identity or ugliness." + icon_state = "papersack" + flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS + +/obj/item/clothing/head/papersack/smiley + name = "paper sack hat" + desc = "A paper sack with crude holes cut out for eyes and a sketchy smile drawn on the front. Not creepy at all." + icon_state = "papersack_smile" + flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS + +/obj/item/clothing/head/crown + name = "crown" + desc = "A crown fit for a king, a petty king maybe." + icon_state = "crown" + armor = list(melee = 15, bullet = 0, laser = 0,energy = 15, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 50) + resistance_flags = FIRE_PROOF + +/obj/item/clothing/head/crown/fancy + name = "magnificent crown" + desc = "A crown worn by only the highest emperors of the land." + icon_state = "fancycrown" diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm new file mode 100644 index 0000000..5431572 --- /dev/null +++ b/code/modules/clothing/head/misc_special.dm @@ -0,0 +1,181 @@ +/* + * Contents: + * Welding mask + * Cakehat + * Ushanka + * Pumpkin head + * Kitty ears + * Cardborg disguise + */ + +/* + * Welding mask + */ +/obj/item/clothing/head/welding + name = "welding helmet" + desc = "A head-mounted face cover designed to protect the wearer completely from space-arc eye." + icon_state = "welding" + flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH + item_state = "welding" + materials = list(MAT_METAL=1750, MAT_GLASS=400) +// var/up = 0 + flash_protect = 2 + tint = 2 + armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 60) + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE + actions_types = list(/datum/action/item_action/toggle) + visor_flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE + visor_flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH + resistance_flags = FIRE_PROOF + +/obj/item/clothing/head/welding/attack_self() + toggle() + + +/obj/item/clothing/head/welding/verb/toggle() + set category = "Object" + set name = "Adjust welding helmet" + set src in usr + + weldingvisortoggle() + + +/* + * Cakehat + */ +/obj/item/clothing/head/hardhat/cakehat + name = "cakehat" + desc = "You put the cake on your head. Brilliant." + icon_state = "hardhat0_cakehat" + item_state = "hardhat0_cakehat" + item_color = "cakehat" + hitsound = 'sound/weapons/tap.ogg' + flags_inv = HIDEEARS|HIDEHAIR + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) + brightness_on = 2 //luminosity when on + flags_cover = HEADCOVERSEYES + heat = 1000 + +/obj/item/clothing/head/hardhat/cakehat/process() + var/turf/location = src.loc + if(istype(location, /mob/)) + var/mob/living/carbon/human/M = location + if(M.is_holding(src) || M.head == src) + location = M.loc + + if(isturf(location)) + location.hotspot_expose(700, 1) + +/obj/item/clothing/head/hardhat/cakehat/turn_on() + ..() + force = 15 + throwforce = 15 + damtype = BURN + hitsound = 'sound/items/Welder.ogg' + START_PROCESSING(SSobj, src) + +/obj/item/clothing/head/hardhat/cakehat/turn_off() + ..() + force = 0 + throwforce = 0 + damtype = BRUTE + hitsound = 'sound/weapons/tap.ogg' + STOP_PROCESSING(SSobj, src) + +/obj/item/clothing/head/hardhat/cakehat/is_hot() + return on * heat +/* + * Ushanka + */ +/obj/item/clothing/head/ushanka + name = "ushanka" + desc = "Perfect for winter in Siberia, da?" + icon_state = "ushankadown" + item_state = "ushankadown" + flags_inv = HIDEEARS|HIDEHAIR + var/earflaps = 1 + cold_protection = HEAD + min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT + + dog_fashion = /datum/dog_fashion/head/ushanka + +/obj/item/clothing/head/ushanka/attack_self(mob/user) + if(earflaps) + src.icon_state = "ushankaup" + src.item_state = "ushankaup" + earflaps = 0 + user << "You raise the ear flaps on the ushanka." + else + src.icon_state = "ushankadown" + src.item_state = "ushankadown" + earflaps = 1 + user << "You lower the ear flaps on the ushanka." + +/* + * Pumpkin head + */ +/obj/item/clothing/head/hardhat/pumpkinhead + name = "carved pumpkin" + desc = "A jack o' lantern! Believed to ward off evil spirits." + icon_state = "hardhat0_pumpkin" + item_state = "hardhat0_pumpkin" + item_color = "pumpkin" + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) + brightness_on = 2 //luminosity when on + flags_cover = HEADCOVERSEYES + +/* + * Kitty ears + */ +/obj/item/clothing/head/kitty + name = "kitty ears" + desc = "A pair of kitty ears. Meow!" + icon_state = "kitty" + color = "#999999" + + dog_fashion = /datum/dog_fashion/head/kitty + +/obj/item/clothing/head/kitty/equipped(mob/user, slot) + if(user && slot == slot_head) + update_icon(user) + ..() + +/obj/item/clothing/head/kitty/update_icon(mob/living/carbon/human/user) + if(istype(user)) + add_atom_colour("#[user.hair_color]", FIXED_COLOUR_PRIORITY) + + +/obj/item/clothing/head/hardhat/reindeer + name = "novelty reindeer hat" + desc = "Some fake antlers and a very fake red nose." + icon_state = "hardhat0_reindeer" + item_state = "hardhat0_reindeer" + item_color = "reindeer" + flags_inv = 0 + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) + brightness_on = 1 //luminosity when on + + dog_fashion = /datum/dog_fashion/head/reindeer + +/obj/item/clothing/head/cardborg + name = "cardborg helmet" + desc = "A helmet made out of a box." + icon_state = "cardborg_h" + item_state = "cardborg_h" + flags_cover = HEADCOVERSEYES + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR + + dog_fashion = /datum/dog_fashion/head/cardborg + +/obj/item/clothing/head/cardborg/equipped(mob/living/user, slot) + ..() + if(ishuman(user) && slot == slot_head) + var/mob/living/carbon/human/H = user + if(istype(H.wear_suit, /obj/item/clothing/suit/cardborg)) + var/obj/item/clothing/suit/cardborg/CB = H.wear_suit + CB.disguise(user, src) + +/obj/item/clothing/head/cardborg/dropped(mob/living/user) + ..() + user.remove_alt_appearance("standard_borg_disguise") diff --git a/code/modules/clothing/head/soft_caps.dm b/code/modules/clothing/head/soft_caps.dm new file mode 100644 index 0000000..8153f97 --- /dev/null +++ b/code/modules/clothing/head/soft_caps.dm @@ -0,0 +1,132 @@ +/obj/item/clothing/head/soft + name = "cargo cap" + desc = "It's a baseball hat in a tasteless yellow colour." + icon_state = "cargosoft" + item_state = "helmet" + item_color = "cargo" + + dog_fashion = /datum/dog_fashion/head/cargo_tech + + var/flipped = 0 + +/obj/item/clothing/head/soft/dropped() + src.icon_state = "[item_color]soft" + src.flipped=0 + ..() + +/obj/item/clothing/head/soft/verb/flipcap() + set category = "Object" + set name = "Flip cap" + + flip(usr) + + +/obj/item/clothing/head/soft/AltClick(mob/user) + ..() + if(!user.canUseTopic(src, be_close=TRUE)) + user << "You can't do that right now!" + return + else + flip(user) + + +/obj/item/clothing/head/soft/proc/flip(mob/user) + if(user.canmove && !user.stat && !user.restrained()) + src.flipped = !src.flipped + if(src.flipped) + icon_state = "[item_color]soft_flipped" + user << "You flip the hat backwards." + else + icon_state = "[item_color]soft" + user << "You flip the hat back in normal position." + usr.update_inv_head() //so our mob-overlays update + +/obj/item/clothing/head/soft/examine(mob/user) + ..() + user << "Alt-click the cap to flip it [flipped ? "forwards" : "backwards"]." + +/obj/item/clothing/head/soft/red + name = "red cap" + desc = "It's a baseball hat in a tasteless red colour." + icon_state = "redsoft" + item_color = "red" + dog_fashion = null + +/obj/item/clothing/head/soft/blue + name = "blue cap" + desc = "It's a baseball hat in a tasteless blue colour." + icon_state = "bluesoft" + item_color = "blue" + dog_fashion = null + +/obj/item/clothing/head/soft/green + name = "green cap" + desc = "It's a baseball hat in a tasteless green colour." + icon_state = "greensoft" + item_color = "green" + dog_fashion = null + +/obj/item/clothing/head/soft/yellow + name = "yellow cap" + desc = "It's a baseball hat in a tasteless yellow colour." + icon_state = "yellowsoft" + item_color = "yellow" + dog_fashion = null + +/obj/item/clothing/head/soft/grey + name = "grey cap" + desc = "It's a baseball hat in a tasteful grey colour." + icon_state = "greysoft" + item_color = "grey" + dog_fashion = null + +/obj/item/clothing/head/soft/orange + name = "orange cap" + desc = "It's a baseball hat in a tasteless orange colour." + icon_state = "orangesoft" + item_color = "orange" + dog_fashion = null + +/obj/item/clothing/head/soft/mime + name = "white cap" + desc = "It's a baseball hat in a tasteless white colour." + icon_state = "mimesoft" + item_color = "mime" + dog_fashion = null + +/obj/item/clothing/head/soft/purple + name = "purple cap" + desc = "It's a baseball hat in a tasteless purple colour." + icon_state = "purplesoft" + item_color = "purple" + dog_fashion = null + +/obj/item/clothing/head/soft/black + name = "black cap" + desc = "It's a baseball hat in a tasteless black colour." + icon_state = "blacksoft" + item_color = "black" + dog_fashion = null + +/obj/item/clothing/head/soft/rainbow + name = "rainbow cap" + desc = "It's a baseball hat in a bright rainbow of colors." + icon_state = "rainbowsoft" + item_color = "rainbow" + dog_fashion = null + +/obj/item/clothing/head/soft/sec + name = "security cap" + desc = "It's a robust baseball hat in tasteful red colour." + icon_state = "secsoft" + item_color = "sec" + armor = list(melee = 30, bullet = 25, laser = 25, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 20, acid = 50) + strip_delay = 60 + dog_fashion = null + +/obj/item/clothing/head/soft/emt + name = "EMT cap" + desc = "It's a baseball hat with a dark turquoise color and a reflective cross on the top." + icon_state = "emtsoft" + item_color = "emt" + dog_fashion = null diff --git a/code/modules/clothing/masks/boxing.dm b/code/modules/clothing/masks/boxing.dm new file mode 100644 index 0000000..92b871a --- /dev/null +++ b/code/modules/clothing/masks/boxing.dm @@ -0,0 +1,55 @@ +/obj/item/clothing/mask/balaclava + name = "balaclava" + desc = "LOADSAMONEY" + icon_state = "balaclava" + item_state = "balaclava" + flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR + visor_flags_inv = HIDEFACE|HIDEFACIALHAIR + w_class = 2 + actions_types = list(/datum/action/item_action/adjust) + +/obj/item/clothing/mask/balaclava/attack_self(mob/user) + adjustmask(user) + +/obj/item/clothing/mask/luchador + name = "Luchador Mask" + desc = "Worn by robust fighters, flying high to defeat their foes!" + icon_state = "luchag" + item_state = "luchag" + flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR + w_class = 2 + +/obj/item/clothing/mask/luchador/speechModification(message) + if(copytext(message, 1, 2) != "*") + message = replacetext(message, "captain", "CAPITN") + message = replacetext(message, "station", "ESTACIN") + message = replacetext(message, "sir", "SEOR") + message = replacetext(message, "the ", "el ") + message = replacetext(message, "my ", "mi ") + message = replacetext(message, "is ", "es ") + message = replacetext(message, "it's", "es") + message = replacetext(message, "friend", "amigo") + message = replacetext(message, "buddy", "amigo") + message = replacetext(message, "hello", "hola") + message = replacetext(message, " hot", " caliente") + message = replacetext(message, " very ", " muy ") + message = replacetext(message, "sword", "espada") + message = replacetext(message, "library", "biblioteca") + message = replacetext(message, "traitor", "traidor") + message = replacetext(message, "wizard", "mago") + message = uppertext(message) //Things end up looking better this way (no mixed cases), and it fits the macho wrestler image. + if(prob(25)) + message += " OLE!" + return message + +/obj/item/clothing/mask/luchador/tecnicos + name = "Tecnicos Mask" + desc = "Worn by robust fighters who uphold justice and fight honorably." + icon_state = "luchador" + item_state = "luchador" + +/obj/item/clothing/mask/luchador/rudos + name = "Rudos Mask" + desc = "Worn by robust fighters who are willing to do anything to win." + icon_state = "luchar" + item_state = "luchar" \ No newline at end of file diff --git a/code/modules/clothing/masks/breath.dm b/code/modules/clothing/masks/breath.dm new file mode 100644 index 0000000..7fbce5e --- /dev/null +++ b/code/modules/clothing/masks/breath.dm @@ -0,0 +1,38 @@ +/obj/item/clothing/mask/breath + desc = "A close-fitting mask that can be connected to an air supply." + name = "breath mask" + icon_state = "breath" + item_state = "m_mask" + body_parts_covered = 0 + flags = MASKINTERNALS + visor_flags = MASKINTERNALS + w_class = 2 + gas_transfer_coefficient = 0.10 + permeability_coefficient = 0.50 + actions_types = list(/datum/action/item_action/adjust) + flags_cover = MASKCOVERSMOUTH + visor_flags_cover = MASKCOVERSMOUTH + resistance_flags = 0 + +/obj/item/clothing/mask/breath/attack_self(mob/user) + adjustmask(user) + +/obj/item/clothing/mask/breath/AltClick(mob/user) + ..() + if(!user.canUseTopic(src, be_close=TRUE)) + user << "You can't do that right now!" + return + else + adjustmask(user) + +/obj/item/clothing/mask/breath/examine(mob/user) + ..() + user << "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." + name = "medical mask" + icon_state = "medical" + item_state = "m_mask" + permeability_coefficient = 0.01 + put_on_delay = 10 diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm new file mode 100644 index 0000000..c2fff59 --- /dev/null +++ b/code/modules/clothing/masks/gasmask.dm @@ -0,0 +1,169 @@ +/obj/item/clothing/mask/gas + name = "gas mask" + desc = "A face-covering mask that can be connected to an air supply. While good for concealing your identity, it isn't good for blocking gas flow." //More accurate + icon_state = "gas_alt" + flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS + flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDEFACIALHAIR + w_class = 3 + item_state = "gas_alt" + gas_transfer_coefficient = 0.01 + permeability_coefficient = 0.01 + flags_cover = MASKCOVERSEYES | MASKCOVERSMOUTH + resistance_flags = 0 + +// **** Welding gas mask **** + +/obj/item/clothing/mask/gas/welding + name = "welding mask" + desc = "A gas mask with built-in welding goggles and a face shield. Looks like a skull - clearly designed by a nerd." + icon_state = "weldingmask" + materials = list(MAT_METAL=4000, MAT_GLASS=2000) + flash_protect = 2 + tint = 2 + armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 55) + origin_tech = "materials=2;engineering=3" + actions_types = list(/datum/action/item_action/toggle) + flags_inv = HIDEEARS|HIDEEYES|HIDEFACE + flags_cover = MASKCOVERSEYES + visor_flags_inv = HIDEEYES + visor_flags_cover = MASKCOVERSEYES + resistance_flags = FIRE_PROOF + +/obj/item/clothing/mask/gas/welding/attack_self() + toggle() + +/obj/item/clothing/mask/gas/welding/verb/toggle() + set category = "Object" + set name = "Adjust welding mask" + set src in usr + + weldingvisortoggle() + +// ******************************************************************** + +//Plague Dr suit can be found in clothing/suits/bio.dm +/obj/item/clothing/mask/gas/plaguedoctor + name = "plague doctor mask" + desc = "A modernised version of the classic design, this mask will not only filter out toxins but it can also be connected to an air supply." + icon_state = "plaguedoctor" + item_state = "gas_mask" + armor = list(melee = 0, bullet = 0, laser = 2,energy = 2, bomb = 0, bio = 75, rad = 0, fire = 0, acid = 0) + +/obj/item/clothing/mask/gas/syndicate + name = "syndicate mask" + desc = "A close-fitting tactical mask that can be connected to an air supply." + icon_state = "syndicate" + strip_delay = 60 + +/obj/item/clothing/mask/gas/clown_hat + name = "clown wig and mask" + desc = "A true prankster's facial attire. A clown is incomplete without his wig and mask." + flags = MASKINTERNALS + icon_state = "clown" + item_state = "clown_hat" + flags_cover = MASKCOVERSEYES + resistance_flags = FLAMMABLE + actions_types = list(/datum/action/item_action/adjust) + dog_fashion = /datum/dog_fashion/head/clown + +/obj/item/clothing/mask/gas/clown_hat/ui_action_click(mob/user) + if(!istype(user) || user.incapacitated()) + return + + var/list/options = list() + options["True Form"] = "clown" + options["The Feminist"] = "sexyclown" + options["The Madman"] = "joker" + options["The Rainbow Color"] ="rainbow" + + var/choice = input(user,"To what form do you wish to Morph this mask?","Morph Mask") in options + + if(src && choice && !user.incapacitated() && in_range(user,src)) + icon_state = options[choice] + user.update_inv_wear_mask() + for(var/X in actions) + var/datum/action/A = X + A.UpdateButtonIcon() + user << "Your Clown Mask has now morphed into [choice], all praise the Honkmother!" + return 1 + +/obj/item/clothing/mask/gas/sexyclown + name = "sexy-clown wig and mask" + desc = "A feminine clown mask for the dabbling crossdressers or female entertainers." + flags = MASKINTERNALS + icon_state = "sexyclown" + item_state = "sexyclown" + flags_cover = MASKCOVERSEYES + resistance_flags = FLAMMABLE + +/obj/item/clothing/mask/gas/mime + name = "mime mask" + desc = "The traditional mime's mask. It has an eerie facial posture." + flags = MASKINTERNALS + icon_state = "mime" + item_state = "mime" + flags_cover = MASKCOVERSEYES + resistance_flags = FLAMMABLE + actions_types = list(/datum/action/item_action/adjust) + +/obj/item/clothing/mask/gas/mime/attack_self(mob/user) + cycle_mask(user) + +/obj/item/clothing/mask/gas/mime/proc/cycle_mask(mob/user) + switch(icon_state) + if("mime") + icon_state = "sadmime" + if("sadmime") + icon_state = "scaredmime" + if("scaredmime") + icon_state = "sexymime" + if("sexymime") + icon_state = "mime" + user.update_inv_wear_mask() + for(var/X in actions) + var/datum/action/A = X + A.UpdateButtonIcon() + user << "You adjust your mask to portray a different emotion." + return 1 + +/obj/item/clothing/mask/gas/monkeymask + name = "monkey mask" + desc = "A mask used when acting as a monkey." + flags = MASKINTERNALS + icon_state = "monkeymask" + item_state = "monkeymask" + flags_cover = MASKCOVERSEYES + resistance_flags = FLAMMABLE + +/obj/item/clothing/mask/gas/sexymime + name = "sexy mime mask" + desc = "A traditional female mime's mask." + flags = MASKINTERNALS + icon_state = "sexymime" + item_state = "sexymime" + flags_cover = MASKCOVERSEYES + resistance_flags = FLAMMABLE + +/obj/item/clothing/mask/gas/death_commando + name = "Death Commando Mask" + icon_state = "death_commando_mask" + item_state = "death_commando_mask" + +/obj/item/clothing/mask/gas/cyborg + name = "cyborg visor" + desc = "Beep boop." + icon_state = "death" + resistance_flags = FLAMMABLE + +/obj/item/clothing/mask/gas/owl_mask + name = "owl mask" + desc = "Twoooo!" + icon_state = "owl" + flags = MASKINTERNALS + flags_cover = MASKCOVERSEYES + resistance_flags = FLAMMABLE + +/obj/item/clothing/mask/gas/carp + name = "carp mask" + desc = "Gnash gnash." + icon_state = "carp_mask" diff --git a/code/modules/clothing/masks/hailer.dm b/code/modules/clothing/masks/hailer.dm new file mode 100644 index 0000000..bfe6757 --- /dev/null +++ b/code/modules/clothing/masks/hailer.dm @@ -0,0 +1,173 @@ + +// **** Security gas mask **** + +/obj/item/clothing/mask/gas/sechailer + name = "security gas mask" + desc = "A standard issue Security gas mask with integrated 'Compli-o-nator 3000' device. Plays over a dozen pre-recorded compliance phrases designed to get scumbags to stand still whilst you taze them. Do not tamper with the device." + actions_types = list(/datum/action/item_action/halt, /datum/action/item_action/adjust) + icon_state = "sechailer" + flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS + flags_inv = HIDEFACIALHAIR|HIDEFACE + w_class = 2 + visor_flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS + visor_flags_inv = HIDEFACE + flags_cover = MASKCOVERSMOUTH + visor_flags_cover = MASKCOVERSMOUTH + var/aggressiveness = 2 + var/cooldown_special + var/recent_uses = 0 + var/broken_hailer = 0 + +/obj/item/clothing/mask/gas/sechailer/swat + name = "\improper SWAT mask" + desc = "A close-fitting tactical mask with an especially aggressive Compli-o-nator 3000." + actions_types = list(/datum/action/item_action/halt) + icon_state = "swat" + aggressiveness = 3 + flags_inv = HIDEFACIALHAIR|HIDEFACE|HIDEEYES|HIDEEARS|HIDEHAIR + visor_flags_inv = 0 + +/obj/item/clothing/mask/gas/sechailer/cyborg + name = "security hailer" + desc = "A set of recognizable pre-recorded messages for cyborgs to use when apprehending criminals." + icon = 'icons/obj/device.dmi' + icon_state = "taperecorder_idle" + aggressiveness = 1 //Borgs are nicecurity! + actions_types = list(/datum/action/item_action/halt) + +/obj/item/clothing/mask/gas/sechailer/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/weapon/screwdriver)) + switch(aggressiveness) + if(1) + user << "You set the restrictor to the middle position." + aggressiveness = 2 + if(2) + user << "You set the restrictor to the last position." + aggressiveness = 3 + if(3) + user << "You set the restrictor to the first position." + aggressiveness = 1 + if(4) + user << "You adjust the restrictor but nothing happens, probably because it's broken." + else if(istype(W, /obj/item/weapon/wirecutters)) + if(aggressiveness != 4) + user << "You broke the restrictor!" + aggressiveness = 4 + else + ..() + +/obj/item/clothing/mask/gas/sechailer/ui_action_click(mob/user, actiontype) + if(actiontype == /datum/action/item_action/halt) + halt() + else + adjustmask(user) + +/obj/item/clothing/mask/gas/sechailer/attack_self() + halt() + +/obj/item/clothing/mask/gas/sechailer/verb/halt() + set category = "Object" + set name = "HALT" + set src in usr + if(!isliving(usr)) + return + if(!can_use(usr)) + return + if(broken_hailer) + usr << "\The [src]'s hailing system is broken." + return + + var/phrase = 0 //selects which phrase to use + var/phrase_text = null + var/phrase_sound = null + + + if(cooldown < world.time - 30) // A cooldown, to stop people being jerks + recent_uses++ + if(cooldown_special < world.time - 180) //A better cooldown that burns jerks + recent_uses = initial(recent_uses) + + switch(recent_uses) + if(3) + usr << "\The [src] is starting to heat up." + if(4) + usr << "\The [src] is heating up dangerously from overuse!" + if(5) //overload + broken_hailer = 1 + usr << "\The [src]'s power modulator overloads and breaks." + return + + switch(aggressiveness) // checks if the user has unlocked the restricted phrases + if(1) + phrase = rand(1,5) // set the upper limit as the phrase above the first 'bad cop' phrase, the mask will only play 'nice' phrases + if(2) + phrase = rand(1,11) // default setting, set upper limit to last 'bad cop' phrase. Mask will play good cop and bad cop phrases + if(3) + phrase = rand(1,18) // user has unlocked all phrases, set upper limit to last phrase. The mask will play all phrases + if(4) + phrase = rand(12,18) // user has broke the restrictor, it will now only play shitcurity phrases + + switch(phrase) //sets the properties of the chosen phrase + if(1) // good cop + phrase_text = "HALT! HALT! HALT!" + phrase_sound = "halt" + if(2) + phrase_text = "Stop in the name of the Law." + phrase_sound = "bobby" + if(3) + phrase_text = "Compliance is in your best interest." + phrase_sound = "compliance" + if(4) + phrase_text = "Prepare for justice!" + phrase_sound = "justice" + if(5) + phrase_text = "Running will only increase your sentence." + phrase_sound = "running" + if(6) // bad cop + phrase_text = "Don't move, Creep!" + phrase_sound = "dontmove" + if(7) + phrase_text = "Down on the floor, Creep!" + phrase_sound = "floor" + if(8) + phrase_text = "Dead or alive you're coming with me." + phrase_sound = "robocop" + if(9) + phrase_text = "God made today for the crooks we could not catch yesterday." + phrase_sound = "god" + if(10) + phrase_text = "Freeze, Scum Bag!" + phrase_sound = "freeze" + if(11) + phrase_text = "Stop right there, criminal scum!" + phrase_sound = "imperial" + if(12) // LA-PD + phrase_text = "Stop or I'll bash you." + phrase_sound = "bash" + if(13) + phrase_text = "Go ahead, make my day." + phrase_sound = "harry" + if(14) + phrase_text = "Stop breaking the law, ass hole." + phrase_sound = "asshole" + if(15) + phrase_text = "You have the right to shut the fuck up." + phrase_sound = "stfu" + if(16) + phrase_text = "Shut up crime!" + phrase_sound = "shutup" + if(17) + phrase_text = "Face the wrath of the golden bolt." + phrase_sound = "super" + if(18) + phrase_text = "I am, the LAW!" + phrase_sound = "dredd" + + usr.audible_message("[usr]'s Compli-o-Nator: [phrase_text]") + playsound(src.loc, "sound/voice/complionator/[phrase_sound].ogg", 100, 0, 4) + cooldown = world.time + cooldown_special = world.time + + + + diff --git a/code/modules/clothing/masks/miscellaneous.dm b/code/modules/clothing/masks/miscellaneous.dm new file mode 100644 index 0000000..afef8d8 --- /dev/null +++ b/code/modules/clothing/masks/miscellaneous.dm @@ -0,0 +1,148 @@ +/obj/item/clothing/mask/muzzle + name = "muzzle" + desc = "To stop that awful noise." + icon_state = "muzzle" + item_state = "blindfold" + flags_cover = MASKCOVERSMOUTH + w_class = 2 + gas_transfer_coefficient = 0.90 + put_on_delay = 20 + +/obj/item/clothing/mask/muzzle/attack_paw(mob/user) + if(iscarbon(user)) + var/mob/living/carbon/C = user + if(src == C.wear_mask) + user << "You need help taking this off!" + return + ..() + +/obj/item/clothing/mask/surgical + name = "sterile mask" + desc = "A sterile mask designed to help prevent the spread of diseases." + icon_state = "sterile" + item_state = "sterile" + w_class = 1 + flags_inv = HIDEFACE + flags_cover = MASKCOVERSMOUTH + visor_flags_inv = HIDEFACE + visor_flags_cover = MASKCOVERSMOUTH + gas_transfer_coefficient = 0.90 + permeability_coefficient = 0.01 + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 25, rad = 0, fire = 0, acid = 0) + actions_types = list(/datum/action/item_action/adjust) + +/obj/item/clothing/mask/surgical/attack_self(mob/user) + adjustmask(user) + +/obj/item/clothing/mask/fakemoustache + name = "fake moustache" + desc = "Warning: moustache is fake." + icon_state = "fake-moustache" + flags_inv = HIDEFACE + +/obj/item/clothing/mask/pig + name = "pig mask" + desc = "A rubber pig mask." + icon_state = "pig" + item_state = "pig" + flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR + w_class = 2 + actions_types = list(/datum/action/item_action/toggle_voice_box) + var/voicechange = 0 + +/obj/item/clothing/mask/pig/attack_self(mob/user) + voicechange = !voicechange + user << "You turn the voice box [voicechange ? "on" : "off"]!" + +/obj/item/clothing/mask/pig/speechModification(message) + if(voicechange) + message = pick("Oink!","Squeeeeeeee!","Oink Oink!") + return message + +/obj/item/clothing/mask/spig //needs to be different otherwise you could turn the speedmodification off and on + name = "Pig face" + desc = "It looks like a mask, but closer inspection reveals it's melded onto this persons face!" //It's only ever going to be attached to your face. + icon_state = "pig" + item_state = "pig" + flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR + w_class = 2 + var/voicechange = 1 + +/obj/item/clothing/mask/spig/speechModification(message) + if(voicechange) + message = pick("Oink!","Squeeeeeeee!","Oink Oink!") + return message + +/obj/item/clothing/mask/cowmask + name = "Cowface" + desc = "It looks like a mask, but closer inspection reveals it's melded onto this persons face!" + icon = 'icons/mob/mask.dmi' + icon_state = "cowmask" + item_state = "cowmask" + flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR + w_class = 2 + var/voicechange = 1 + +/obj/item/clothing/mask/cowmask/speechModification(message) + if(voicechange) + message = pick("Moooooooo!","Moo!","Moooo!") + return message + +/obj/item/clothing/mask/horsehead + name = "horse head mask" + desc = "A mask made of soft vinyl and latex, representing the head of a horse." + icon_state = "horsehead" + item_state = "horsehead" + flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDEEYES|HIDEEARS + w_class = 2 + var/voicechange = 1 + +/obj/item/clothing/mask/horsehead/speechModification(message) + if(voicechange) + message = pick("NEEIIGGGHHHH!", "NEEEIIIIGHH!", "NEIIIGGHH!", "HAAWWWWW!", "HAAAWWW!") + return message + +/obj/item/clothing/mask/bandana + name = "botany bandana" + desc = "A fine bandana with nanotech lining and a hydroponics pattern." + w_class = 1 + flags_cover = MASKCOVERSMOUTH + flags_inv = HIDEFACE|HIDEFACIALHAIR + visor_flags_inv = HIDEFACE|HIDEFACIALHAIR + visor_flags_cover = MASKCOVERSMOUTH + slot_flags = SLOT_MASK + adjusted_flags = SLOT_HEAD + icon_state = "bandbotany" + +/obj/item/clothing/mask/bandana/attack_self(mob/user) + adjustmask(user) + +/obj/item/clothing/mask/bandana/red + name = "red bandana" + desc = "A fine red bandana with nanotech lining." + icon_state = "bandred" + +/obj/item/clothing/mask/bandana/blue + name = "blue bandana" + desc = "A fine blue bandana with nanotech lining." + icon_state = "bandblue" + +/obj/item/clothing/mask/bandana/green + name = "green bandana" + desc = "A fine green bandana with nanotech lining." + icon_state = "bandgreen" + +/obj/item/clothing/mask/bandana/gold + name = "gold bandana" + desc = "A fine gold bandana with nanotech lining." + icon_state = "bandgold" + +/obj/item/clothing/mask/bandana/black + name = "black bandana" + desc = "A fine black bandana with nanotech lining." + icon_state = "bandblack" + +/obj/item/clothing/mask/bandana/skull + name = "skull bandana" + desc = "A fine black bandana with nanotech lining and a skull emblem." + icon_state = "bandskull" \ No newline at end of file diff --git a/code/modules/clothing/neck/ties.dm b/code/modules/clothing/neck/ties.dm new file mode 100644 index 0000000..7578fe4 --- /dev/null +++ b/code/modules/clothing/neck/ties.dm @@ -0,0 +1,185 @@ +/obj/item/clothing/neck/tie + name = "tie" + desc = "A neosilk clip-on tie." + icon = 'icons/obj/clothing/neck.dmi' + icon_state = "bluetie" + item_state = "" //no inhands + item_color = "bluetie" + w_class = 2 + +/obj/item/clothing/neck/tie/blue + name = "blue tie" + icon_state = "bluetie" + item_color = "bluetie" + +/obj/item/clothing/neck/tie/red + name = "red tie" + icon_state = "redtie" + item_color = "redtie" + +/obj/item/clothing/neck/tie/black + name = "black tie" + icon_state = "blacktie" + item_color = "blacktie" + +/obj/item/clothing/neck/tie/horrible + name = "horrible tie" + desc = "A neosilk clip-on tie. This one is disgusting." + icon_state = "horribletie" + item_color = "horribletie" + +/obj/item/clothing/neck/stethoscope + name = "stethoscope" + desc = "An outdated medical apparatus for listening to the sounds of the human body. It also makes you look like you know what you're doing." + icon_state = "stethoscope" + item_color = "stethoscope" + +/obj/item/clothing/neck/stethoscope/attack(mob/living/carbon/human/M, mob/living/user) + if(ishuman(M) && isliving(user)) + if(user.a_intent == "help") + var/body_part = parse_zone(user.zone_selected) + if(body_part) + var/their = "their" + switch(M.gender) + if(MALE) + their = "his" + if(FEMALE) + their = "her" + + var/sound = "pulse" + var/sound_strength + + if(M.stat == DEAD || (M.status_flags&FAKEDEATH)) + sound_strength = "cannot hear" + sound = "anything" + else + sound_strength = "hear a weak" + switch(body_part) + if("chest") + if(M.oxyloss < 50) + sound_strength = "hear a healthy" + sound = "pulse and respiration" + if("eyes","mouth") + sound_strength = "cannot hear" + sound = "anything" + else + sound_strength = "hear a weak" + + user.visible_message("[user] places [src] against [M]'s [body_part] and listens attentively.", "You place [src] against [their] [body_part]. You [sound_strength] [sound].") + return + return ..(M,user) + +/////////// +//SCARVES// +/////////// + +/obj/item/clothing/neck/scarf //Default white color, same functionality as beanies. + name = "white scarf" + icon_state = "scarf" + desc = "A stylish scarf. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their necks." + item_color = "scarf" + dog_fashion = /datum/dog_fashion/head + +/obj/item/clothing/neck/scarf/black + name = "black scarf" + icon_state = "scarf" + color = "#4A4A4B" //Grey but it looks black + +/obj/item/clothing/neck/scarf/red + name = "red scarf" + icon_state = "scarf" + color = "#D91414" //Red + +/obj/item/clothing/neck/scarf/green + name = "green scarf" + icon_state = "scarf" + color = "#5C9E54" //Green + +/obj/item/clothing/neck/scarf/darkblue + name = "dark blue scarf" + icon_state = "scarf" + color = "#1E85BC" //Blue + +/obj/item/clothing/neck/scarf/purple + name = "purple scarf" + icon_state = "scarf" + color = "#9557C5" //purple + +/obj/item/clothing/neck/scarf/yellow + name = "yellow scarf" + icon_state = "scarf" + color = "#E0C14F" //Yellow + +/obj/item/clothing/neck/scarf/orange + name = "orange scarf" + icon_state = "scarf" + color = "#C67A4B" //orange + +/obj/item/clothing/neck/scarf/cyan + name = "cyan scarf" + icon_state = "scarf" + color = "#54A3CE" //Cyan + + +//Striped scarves get their own icons + +/obj/item/clothing/neck/scarf/zebra + name = "zebra scarf" + icon_state = "zebrascarf" + item_color = "zebrascarf" + +/obj/item/clothing/neck/scarf/christmas + name = "christmas scarf" + icon_state = "christmasscarf" + item_color = "christmasscarf" + +//The three following scarves don't have the scarf subtype +//This is because Ian can equip anything from that subtype +//However, these 3 don't have corgi versions of their sprites +/obj/item/clothing/neck/stripedredscarf + name = "striped red scarf" + icon_state = "stripedredscarf" + item_color = "stripedredscarf" + +/obj/item/clothing/neck/stripedgreenscarf + name = "striped green scarf" + icon_state = "stripedgreenscarf" + item_color = "stripedgreenscarf" + +/obj/item/clothing/neck/stripedbluescarf + name = "striped blue scarf" + icon_state = "stripedbluescarf" + item_color = "stripedbluescarf" + +/obj/item/clothing/neck/petcollar //don't really wear this though please c'mon seriously guys + name = "pet collar" + desc = "It's for pets. Though you probably could wear it yourself, you'd doubtless be the subject of ridicule." + icon_state = "petcollar" + item_color = "petcollar" + var/tagname = null + +/obj/item/clothing/neck/petcollar/attack_self(mob/user) + tagname = copytext(sanitize(input(user, "Would you like to change the name on the tag?", "Name your new pet", "Spot") as null|text),1,MAX_NAME_LEN) + name = "[initial(name)] - [tagname]" + +////////////// +//DOPE BLING// +////////////// + +/obj/item/clothing/neck/necklace/dope + name = "gold necklace" + desc = "Damn, it feels good to be a gangster." + icon = 'icons/obj/clothing/ties.dmi' + icon_state = "bling" + item_color = "bling" + +//////////////// +//OONGA BOONGA// +//////////////// + +/obj/item/clothing/neck/talisman + name = "bone talisman" + desc = "A hunter's talisman, some say the old gods smile on those who wear it." + icon_state = "talisman" + item_color = "talisman" + armor = list(melee = 5, bullet = 5, laser = 5, energy = 5, bomb = 20, bio = 20, rad = 5, fire = 0, acid = 25) \ No newline at end of file diff --git a/code/modules/clothing/outfits/ert.dm b/code/modules/clothing/outfits/ert.dm new file mode 100644 index 0000000..e3a9f4f --- /dev/null +++ b/code/modules/clothing/outfits/ert.dm @@ -0,0 +1,194 @@ +/datum/outfit/ert + name = "ERT Common" + + uniform = /obj/item/clothing/under/rank/centcom_officer + shoes = /obj/item/clothing/shoes/combat/swat + gloves = /obj/item/clothing/gloves/combat + ears = /obj/item/device/radio/headset/headset_cent/alt + +/datum/outfit/ert/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + if(visualsOnly) + return + + var/obj/item/weapon/implant/mindshield/L = new/obj/item/weapon/implant/mindshield(H) + L.implant(H, null, 1) + + var/obj/item/device/radio/R = H.ears + R.set_frequency(CENTCOM_FREQ) + R.freqlock = 1 + + var/obj/item/weapon/card/id/W = H.wear_id + W.registered_name = H.real_name + W.update_label(W.registered_name, W.assignment) + +/datum/outfit/ert/commander + name = "ERT Commander" + + id = /obj/item/weapon/card/id/ert + suit = /obj/item/clothing/suit/space/hardsuit/ert + glasses = /obj/item/clothing/glasses/hud/security/sunglasses + back = /obj/item/weapon/storage/backpack/captain + belt = /obj/item/weapon/storage/belt/security/full + backpack_contents = list(/obj/item/weapon/storage/box/engineer=1,\ + /obj/item/weapon/melee/baton/loaded=1,\ + /obj/item/clothing/mask/gas/sechailer=1,\ + /obj/item/weapon/gun/energy/gun=1) + l_pocket = /obj/item/weapon/switchblade + +/datum/outfit/ert/commander/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + ..() + + if(visualsOnly) + return + var/obj/item/device/radio/R = H.ears + R.keyslot = new /obj/item/device/encryptionkey/heads/captain + R.recalculateChannels() + +/datum/outfit/ert/commander/alert + name = "ERT Commander - High Alert" + + glasses = /obj/item/clothing/glasses/thermal/eyepatch + backpack_contents = list(/obj/item/weapon/storage/box/engineer=1,\ + /obj/item/weapon/melee/baton/loaded=1,\ + /obj/item/clothing/mask/gas/sechailer/swat=1,\ + /obj/item/weapon/gun/energy/pulse/pistol/loyalpin=1) + l_pocket = /obj/item/weapon/melee/energy/sword/saber + +/datum/outfit/ert/security + name = "ERT Security" + + id = /obj/item/weapon/card/id/ert/Security + suit = /obj/item/clothing/suit/space/hardsuit/ert/sec + glasses = /obj/item/clothing/glasses/hud/security/sunglasses + back = /obj/item/weapon/storage/backpack/security + belt = /obj/item/weapon/storage/belt/security/full + backpack_contents = list(/obj/item/weapon/storage/box/engineer=1,\ + /obj/item/weapon/storage/box/handcuffs=1,\ + /obj/item/clothing/mask/gas/sechailer=1,\ + /obj/item/weapon/gun/energy/gun=1,\ + /obj/item/weapon/melee/baton/loaded=1,\ + /obj/item/weapon/gun/energy/gun/advtaser=1) + +/datum/outfit/ert/security/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + ..() + + if(visualsOnly) + return + + var/obj/item/device/radio/R = H.ears + R.keyslot = new /obj/item/device/encryptionkey/heads/hos + R.recalculateChannels() + +/datum/outfit/ert/security/alert + name = "ERT Security - High Alert" + + backpack_contents = list(/obj/item/weapon/storage/box/engineer=1,\ + /obj/item/weapon/storage/box/handcuffs=1,\ + /obj/item/clothing/mask/gas/sechailer/swat=1,\ + /obj/item/weapon/melee/baton/loaded=1,\ + /obj/item/weapon/gun/energy/pulse/carbine/loyalpin=1) + + +/datum/outfit/ert/medic + name = "ERT Medic" + + id = /obj/item/weapon/card/id/ert/Medical + suit = /obj/item/clothing/suit/space/hardsuit/ert/med + glasses = /obj/item/clothing/glasses/hud/health + back = /obj/item/weapon/storage/backpack/satchel/med + belt = /obj/item/weapon/storage/belt/medical + r_hand = /obj/item/weapon/storage/firstaid/regular + backpack_contents = list(/obj/item/weapon/storage/box/engineer=1,\ + /obj/item/weapon/melee/baton/loaded=1,\ + /obj/item/clothing/mask/gas/sechailer=1,\ + /obj/item/weapon/gun/energy/gun=1,\ + /obj/item/weapon/reagent_containers/hypospray/combat=1,\ + /obj/item/weapon/gun/medbeam=1) + +/datum/outfit/ert/medic/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + ..() + + if(visualsOnly) + return + + var/obj/item/device/radio/R = H.ears + R.keyslot = new /obj/item/device/encryptionkey/heads/cmo + R.recalculateChannels() + +/datum/outfit/ert/medic/alert + name = "ERT Medic - High Alert" + + backpack_contents = list(/obj/item/weapon/storage/box/engineer=1,\ + /obj/item/weapon/melee/baton/loaded=1,\ + /obj/item/clothing/mask/gas/sechailer/swat=1,\ + /obj/item/weapon/gun/energy/pulse/pistol/loyalpin=1,\ + /obj/item/weapon/reagent_containers/hypospray/combat/nanites=1,\ + /obj/item/weapon/gun/medbeam=1) + +/datum/outfit/ert/engineer + name = "ERT Engineer" + + id = /obj/item/weapon/card/id/ert/Engineer + suit = /obj/item/clothing/suit/space/hardsuit/ert/engi + glasses = /obj/item/clothing/glasses/meson/engine + back = /obj/item/weapon/storage/backpack/industrial + belt = /obj/item/weapon/storage/belt/utility/full + l_pocket = /obj/item/weapon/rcd_ammo/large + r_hand = /obj/item/weapon/storage/firstaid/regular + backpack_contents = list(/obj/item/weapon/storage/box/engineer=1,\ + /obj/item/weapon/melee/baton/loaded=1,\ + /obj/item/clothing/mask/gas/sechailer=1,\ + /obj/item/weapon/gun/energy/gun=1,\ + /obj/item/weapon/rcd/loaded=1) + +/datum/outfit/ert/engineer/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + ..() + + if(visualsOnly) + return + + var/obj/item/device/radio/R = H.ears + R.keyslot = new /obj/item/device/encryptionkey/heads/ce + R.recalculateChannels() + +/datum/outfit/ert/engineer/alert + name = "ERT Engineer - High Alert" + + backpack_contents = list(/obj/item/weapon/storage/box/engineer=1,\ + /obj/item/weapon/melee/baton/loaded=1,\ + /obj/item/clothing/mask/gas/sechailer/swat=1,\ + /obj/item/weapon/gun/energy/pulse/pistol/loyalpin=1,\ + /obj/item/weapon/rcd/combat=1) + + +/datum/outfit/centcom_official + name = "Centcom Official" + + uniform = /obj/item/clothing/under/rank/centcom_officer + shoes = /obj/item/clothing/shoes/sneakers/black + gloves = /obj/item/clothing/gloves/color/black + ears = /obj/item/device/radio/headset/headset_cent + glasses = /obj/item/clothing/glasses/sunglasses + belt = /obj/item/weapon/gun/energy/gun + l_pocket = /obj/item/weapon/pen + back = /obj/item/weapon/storage/backpack/satchel + r_pocket = /obj/item/device/pda/heads + l_hand = /obj/item/weapon/clipboard + id = /obj/item/weapon/card/id + +/datum/outfit/centcom_official/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + if(visualsOnly) + return + + var/obj/item/device/pda/heads/pda = H.r_store + pda.owner = H.real_name + pda.ownjob = "Centcom Official" + pda.update_label() + + var/obj/item/weapon/card/id/W = H.wear_id + W.icon_state = "centcom" + W.access = get_centcom_access("Centcom Official") + W.access += access_weapons + W.assignment = "Centcom Official" + W.registered_name = H.real_name + W.update_label() diff --git a/code/modules/clothing/outfits/standard.dm b/code/modules/clothing/outfits/standard.dm new file mode 100644 index 0000000..09dac1c --- /dev/null +++ b/code/modules/clothing/outfits/standard.dm @@ -0,0 +1,388 @@ +/datum/outfit/space + name = "Standard Space Gear" + + uniform = /obj/item/clothing/under/color/grey + shoes = /obj/item/clothing/shoes/sneakers/black + suit = /obj/item/clothing/suit/space + head = /obj/item/clothing/head/helmet/space + back = /obj/item/weapon/tank/jetpack/oxygen + mask = /obj/item/clothing/mask/breath + +/datum/outfit/tournament + name = "tournament standard red" + + uniform = /obj/item/clothing/under/color/red + shoes = /obj/item/clothing/shoes/sneakers/black + suit = /obj/item/clothing/suit/armor/vest + head = /obj/item/clothing/head/helmet/thunderdome + r_hand = /obj/item/weapon/gun/energy/pulse/destroyer + l_hand = /obj/item/weapon/kitchen/knife + r_pocket = /obj/item/weapon/grenade/smokebomb + +/datum/outfit/tournament/green + name = "tournament standard green" + + uniform = /obj/item/clothing/under/color/green + +/datum/outfit/tournament/gangster + name = "tournament gangster" + + uniform = /obj/item/clothing/under/rank/det + suit = /obj/item/clothing/suit/det_suit + glasses = /obj/item/clothing/glasses/thermal/monocle + head = /obj/item/clothing/head/det_hat + r_hand = /obj/item/weapon/gun/projectile + l_hand = null + r_pocket = /obj/item/ammo_box/c10mm + +/datum/outfit/tournament/janitor + name = "tournament janitor" + + uniform = /obj/item/clothing/under/rank/janitor + back = /obj/item/weapon/storage/backpack + suit = null + head = null + r_hand = /obj/item/weapon/mop + l_hand = /obj/item/weapon/reagent_containers/glass/bucket + r_pocket = /obj/item/weapon/grenade/chem_grenade/cleaner + l_pocket = /obj/item/weapon/grenade/chem_grenade/cleaner + backpack_contents = list(/obj/item/stack/tile/plasteel=6) + +/datum/outfit/tournament/janitor/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + if(visualsOnly) + return + + var/obj/item/weapon/reagent_containers/glass/bucket/bucket = H.get_item_for_held_index(1) + bucket.reagents.add_reagent("water",70) + +/datum/outfit/laser_tag + name = "Laser Tag Red" + + uniform = /obj/item/clothing/under/color/red + shoes = /obj/item/clothing/shoes/sneakers/red + head = /obj/item/clothing/head/helmet/redtaghelm + gloves = /obj/item/clothing/gloves/color/red + ears = /obj/item/device/radio/headset + suit = /obj/item/clothing/suit/redtag + back = /obj/item/weapon/storage/backpack + suit_store = /obj/item/weapon/gun/energy/laser/redtag + backpack_contents = list(/obj/item/weapon/storage/box=1) + +/datum/outfit/laser_tag/blue + name = "Laser Tag Blue" + uniform = /obj/item/clothing/under/color/blue + shoes = /obj/item/clothing/shoes/sneakers/blue + head = /obj/item/clothing/head/helmet/bluetaghelm + gloves = /obj/item/clothing/gloves/color/blue + suit = /obj/item/clothing/suit/bluetag + suit_store = /obj/item/weapon/gun/energy/laser/bluetag + +/datum/outfit/pirate + name = "Pirate" + + uniform = /obj/item/clothing/under/pirate + shoes = /obj/item/clothing/shoes/sneakers/brown + head = /obj/item/clothing/head/bandana + glasses = /obj/item/clothing/glasses/eyepatch + r_hand = /obj/item/weapon/melee/energy/sword/pirate + +/datum/outfit/pirate/space + name = "Space Pirate" + + suit = /obj/item/clothing/suit/space/pirate + head = /obj/item/clothing/head/helmet/space/pirate + +/datum/outfit/tunnel_clown + name = "Tunnel Clown" + + uniform = /obj/item/clothing/under/rank/clown + shoes = /obj/item/clothing/shoes/clown_shoes + gloves = /obj/item/clothing/gloves/color/black + mask = /obj/item/clothing/mask/gas/clown_hat + ears = /obj/item/device/radio/headset + glasses = /obj/item/clothing/glasses/thermal/monocle + suit = /obj/item/clothing/suit/hooded/chaplain_hoodie + l_pocket = /obj/item/weapon/reagent_containers/food/snacks/grown/banana + r_pocket = /obj/item/weapon/bikehorn + id = /obj/item/weapon/card/id + r_hand = /obj/item/weapon/twohanded/fireaxe + +/datum/outfit/tunnel_clown/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + if(visualsOnly) + return + + var/obj/item/weapon/card/id/W = H.wear_id + W.access = get_all_accesses() + W.assignment = "Tunnel Clown!" + W.registered_name = H.real_name + W.update_label(H.real_name) + +/datum/outfit/psycho + name = "Masked Killer" + + uniform = /obj/item/clothing/under/overalls + shoes = /obj/item/clothing/shoes/sneakers/white + gloves = /obj/item/clothing/gloves/color/latex + mask = /obj/item/clothing/mask/surgical + head = /obj/item/clothing/head/welding + ears = /obj/item/device/radio/headset + glasses = /obj/item/clothing/glasses/thermal/monocle + suit = /obj/item/clothing/suit/apron + l_pocket = /obj/item/weapon/kitchen/knife + r_pocket = /obj/item/weapon/scalpel + r_hand = /obj/item/weapon/twohanded/fireaxe + +/datum/outfit/psycho/post_equip(mob/living/carbon/human/H) + for(var/obj/item/carried_item in H.get_equipped_items()) + carried_item.add_mob_blood(H)//Oh yes, there will be blood... + for(var/obj/item/I in H.held_items) + I.add_mob_blood(H) + H.regenerate_icons() + +/datum/outfit/assassin + name = "Assassin" + + uniform = /obj/item/clothing/under/suit_jacket + shoes = /obj/item/clothing/shoes/sneakers/black + gloves = /obj/item/clothing/gloves/color/black + ears = /obj/item/device/radio/headset + glasses = /obj/item/clothing/glasses/sunglasses + l_pocket = /obj/item/weapon/melee/energy/sword/saber + l_hand = /obj/item/weapon/storage/secure/briefcase + id = /obj/item/weapon/card/id/syndicate + belt = /obj/item/device/pda/heads + +/datum/outfit/assassin/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + var/obj/item/clothing/under/U = H.w_uniform + U.attachTie(new /obj/item/clothing/tie/waistcoat(H)) + + if(visualsOnly) + return + + //Could use a type + var/obj/item/weapon/storage/secure/briefcase/sec_briefcase = H.get_item_for_held_index(1) + for(var/obj/item/briefcase_item in sec_briefcase) + qdel(briefcase_item) + for(var/i = 3 to 0 step -1) + sec_briefcase.handle_item_insertion(new /obj/item/stack/spacecash/c1000,1) + sec_briefcase.handle_item_insertion(new /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow,1) + sec_briefcase.handle_item_insertion(new /obj/item/weapon/gun/projectile/revolver/mateba,1) + sec_briefcase.handle_item_insertion(new /obj/item/ammo_box/a357,1) + sec_briefcase.handle_item_insertion(new /obj/item/weapon/grenade/plastic/x4,1) + + var/obj/item/device/pda/heads/pda = H.belt + pda.owner = H.real_name + pda.ownjob = "Reaper" + pda.update_label() + + var/obj/item/weapon/card/id/syndicate/W = H.wear_id + W.access = get_all_accesses() + W.assignment = "Reaper" + W.registered_name = H.real_name + W.update_label(H.real_name) + +/datum/outfit/centcom_commander + name = "Centcom Commander" + + uniform = /obj/item/clothing/under/rank/centcom_commander + suit = /obj/item/clothing/suit/armor/bulletproof + shoes = /obj/item/clothing/shoes/combat/swat + gloves = /obj/item/clothing/gloves/combat + ears = /obj/item/device/radio/headset/headset_cent/commander + glasses = /obj/item/clothing/glasses/eyepatch + mask = /obj/item/clothing/mask/cigarette/cigar/cohiba + head = /obj/item/clothing/head/centhat + belt = /obj/item/weapon/gun/projectile/revolver/mateba + r_pocket = /obj/item/weapon/lighter + l_pocket = /obj/item/ammo_box/a357 + back = /obj/item/weapon/storage/backpack/satchel/leather + id = /obj/item/weapon/card/id + +/datum/outfit/centcom_commander/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + if(visualsOnly) + return + + var/obj/item/weapon/card/id/W = H.wear_id + W.icon_state = "centcom" + W.access = get_all_accesses() + W.access += get_centcom_access("Centcom Commander") + W.assignment = "Centcom Commander" + W.registered_name = H.real_name + W.update_label() + +/datum/outfit/spec_ops + name = "Special Ops Officer" + + uniform = /obj/item/clothing/under/syndicate + suit = /obj/item/clothing/suit/space/officer + shoes = /obj/item/clothing/shoes/combat/swat + gloves = /obj/item/clothing/gloves/combat + glasses = /obj/item/clothing/glasses/thermal/eyepatch + ears = /obj/item/device/radio/headset/headset_cent/commander + mask = /obj/item/clothing/mask/cigarette/cigar/havana + head = /obj/item/clothing/head/helmet/space/beret + belt = /obj/item/weapon/gun/energy/pulse/pistol/m1911 + r_pocket = /obj/item/weapon/lighter + back = /obj/item/weapon/storage/backpack/satchel/leather + id = /obj/item/weapon/card/id + +/datum/outfit/spec_ops/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + if(visualsOnly) + return + + var/obj/item/weapon/card/id/W = H.wear_id + W.icon_state = "centcom" + W.access = get_all_accesses() + W.access += get_centcom_access("Special Ops Officer") + W.assignment = "Special Ops Officer" + W.registered_name = H.real_name + W.update_label() + + var/obj/item/device/radio/headset/R = H.ears + R.set_frequency(CENTCOM_FREQ) + R.freqlock = 1 + +/datum/outfit/wizard + name = "Blue Wizard" + + uniform = /obj/item/clothing/under/color/lightpurple + suit = /obj/item/clothing/suit/wizrobe + shoes = /obj/item/clothing/shoes/sandal + ears = /obj/item/device/radio/headset + head = /obj/item/clothing/head/wizard + r_pocket = /obj/item/weapon/teleportation_scroll + r_hand = /obj/item/weapon/spellbook + l_hand = /obj/item/weapon/staff + back = /obj/item/weapon/storage/backpack + backpack_contents = list(/obj/item/weapon/storage/box=1) + +/datum/outfit/wizard/red + name = "Red Wizard" + + suit = /obj/item/clothing/suit/wizrobe/red + head = /obj/item/clothing/head/wizard/red + +/datum/outfit/wizard/weeb + name = "Marisa Wizard" + + suit = /obj/item/clothing/suit/wizrobe/marisa + shoes = /obj/item/clothing/shoes/sandal/marisa + head = /obj/item/clothing/head/wizard/marisa + +/datum/outfit/soviet + name = "Soviet Admiral" + + uniform = /obj/item/clothing/under/soviet + head = /obj/item/clothing/head/pirate/captain + shoes = /obj/item/clothing/shoes/combat + gloves = /obj/item/clothing/gloves/combat + ears = /obj/item/device/radio/headset/headset_cent + glasses = /obj/item/clothing/glasses/thermal/eyepatch + suit = /obj/item/clothing/suit/pirate/captain + back = /obj/item/weapon/storage/backpack/satchel/leather + belt = /obj/item/weapon/gun/projectile/revolver/mateba + + id = /obj/item/weapon/card/id + +/datum/outfit/soviet/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + if(visualsOnly) + return + + var/obj/item/weapon/card/id/W = H.wear_id + W.icon_state = "centcom" + W.access = get_all_accesses() + W.access += get_centcom_access("Admiral") + W.assignment = "Admiral" + W.registered_name = H.real_name + W.update_label() + +/datum/outfit/mobster + name = "Mobster" + + uniform = /obj/item/clothing/under/suit_jacket/really_black + head = /obj/item/clothing/head/fedora + shoes = /obj/item/clothing/shoes/laceup + gloves = /obj/item/clothing/gloves/color/black + ears = /obj/item/device/radio/headset + glasses = /obj/item/clothing/glasses/sunglasses + r_hand = /obj/item/weapon/gun/projectile/automatic/tommygun + id = /obj/item/weapon/card/id + +/datum/outfit/mobster/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + if(visualsOnly) + return + + var/obj/item/weapon/card/id/W = H.wear_id + W.assignment = "Assistant" + W.registered_name = H.real_name + W.update_label() + +/datum/outfit/plasmaman + name = "Plasmaman" + + head = /obj/item/clothing/head/helmet/space/plasmaman + uniform = /obj/item/clothing/under/plasmaman + r_hand= /obj/item/weapon/tank/internals/plasmaman/belt/full + mask = /obj/item/clothing/mask/breath + +/datum/outfit/death_commando + name = "Death Commando" + + uniform = /obj/item/clothing/under/color/green + suit = /obj/item/clothing/suit/space/hardsuit/shielded/swat + shoes = /obj/item/clothing/shoes/combat/swat + gloves = /obj/item/clothing/gloves/combat + mask = /obj/item/clothing/mask/gas/sechailer/swat + glasses = /obj/item/clothing/glasses/hud/toggle/thermal + back = /obj/item/weapon/storage/backpack/security + l_pocket = /obj/item/weapon/melee/energy/sword/saber + r_pocket = /obj/item/weapon/shield/energy + suit_store = /obj/item/weapon/tank/internals/emergency_oxygen + belt = /obj/item/weapon/gun/projectile/revolver/mateba + r_hand = /obj/item/weapon/gun/energy/pulse/loyalpin + id = /obj/item/weapon/card/id + ears = /obj/item/device/radio/headset/headset_cent/alt + + backpack_contents = list(/obj/item/weapon/storage/box=1,\ + /obj/item/ammo_box/a357=1,\ + /obj/item/weapon/storage/firstaid/regular=1,\ + /obj/item/weapon/storage/box/flashbangs=1,\ + /obj/item/device/flashlight=1,\ + /obj/item/weapon/grenade/plastic/x4=1) + +/datum/outfit/death_commando/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + if(visualsOnly) + return + + var/obj/item/device/radio/R = H.ears + R.set_frequency(CENTCOM_FREQ) + R.freqlock = 1 + + var/obj/item/weapon/implant/mindshield/L = new/obj/item/weapon/implant/mindshield(H)//Here you go Deuryn + L.implant(H, null, 1) + + + var/obj/item/weapon/card/id/W = H.wear_id + W.icon_state = "centcom" + W.access = get_all_accesses()//They get full station access. + W.access += get_centcom_access("Death Commando")//Let's add their alloted Centcom access. + W.assignment = "Death Commando" + W.registered_name = H.real_name + W.update_label(W.registered_name, W.assignment) + +/datum/outfit/death_commando/officer + name = "Death Commando Officer" + head = /obj/item/clothing/head/helmet/space/beret + +/datum/outfit/chrono_agent + name = "Timeline Eradication Agent" + uniform = /obj/item/clothing/under/color/white + suit = /obj/item/clothing/suit/space/chronos + back = /obj/item/weapon/chrono_eraser + head = /obj/item/clothing/head/helmet/space/chronos + mask = /obj/item/clothing/mask/breath + suit_store = /obj/item/weapon/tank/internals/oxygen + + + + diff --git a/code/modules/clothing/shoes/bananashoes.dm b/code/modules/clothing/shoes/bananashoes.dm new file mode 100644 index 0000000..0167f9f --- /dev/null +++ b/code/modules/clothing/shoes/bananashoes.dm @@ -0,0 +1,80 @@ +//banana flavored chaos and horror ahead + +/obj/item/clothing/shoes/clown_shoes/banana_shoes + name = "mk-honk prototype shoes" + desc = "Lost prototype of advanced clown tech. Powered by bananium, these shoes leave a trail of chaos in their wake." + icon_state = "clown_prototype_off" + var/on = 0 + var/datum/material_container/bananium + actions_types = list(/datum/action/item_action/toggle) + +/obj/item/clothing/shoes/clown_shoes/banana_shoes/New() + ..() + bananium = new/datum/material_container(src,list(MAT_BANANIUM),200000) + +/obj/item/clothing/shoes/clown_shoes/banana_shoes/step_action() + if(on) + if(footstep > 1)//honks when its on + playsound(src, "sound/items/bikehorn.ogg", 75, 1) + footstep = 0 + else + footstep++ + + new/obj/item/weapon/grown/bananapeel/specialpeel(get_step(src,turn(usr.dir, 180))) //honk + bananium.use_amount_type(100, MAT_BANANIUM) + if(bananium.amount(MAT_BANANIUM) < 100) + on = !on + flags &= ~NOSLIP + update_icon() + loc << "You ran out of bananium!" + else + ..() + +/obj/item/clothing/shoes/clown_shoes/banana_shoes/attack_self(mob/user) + var/sheet_amount = bananium.retrieve_all() + if(sheet_amount) + user << "You retrieve [sheet_amount] sheets of bananium from the prototype shoes." + else + user << "You cannot retrieve any bananium from the prototype shoes." + +/obj/item/clothing/shoes/clown_shoes/banana_shoes/attackby(obj/item/O, mob/user, params) + if(!bananium.get_item_material_amount(O)) + user << "This item has no bananium!" + return + if(!user.unEquip(O)) + user << "You can't drop [O]!" + return + + var/bananium_amount = bananium.insert_item(O) + if(bananium_amount) + user << "You insert [O] into the prototype shoes." + qdel(O) + else + user << "You are unable to insert more bananium!" + +/obj/item/clothing/shoes/clown_shoes/banana_shoes/examine(mob/user) + ..() + var/ban_amt = bananium.amount(MAT_BANANIUM) + user << "The shoes are [on ? "enabled" : "disabled"]. There is [ban_amt ? ban_amt : "no"] bananium left." + +/obj/item/clothing/shoes/clown_shoes/banana_shoes/ui_action_click(mob/user) + if(bananium.amount(MAT_BANANIUM)) + on = !on + update_icon() + user << "You [on ? "activate" : "deactivate"] the prototype shoes." + if(on) + flags |= NOSLIP + else + flags &= ~NOSLIP + else + user << "You need bananium to turn the prototype shoes on!" + +/obj/item/clothing/shoes/clown_shoes/banana_shoes/update_icon() + if(on) + icon_state = "clown_prototype_on" + else + icon_state = "clown_prototype_off" + usr.update_inv_shoes() + for(var/X in actions) + var/datum/action/A = X + A.UpdateButtonIcon() diff --git a/code/modules/clothing/shoes/colour.dm b/code/modules/clothing/shoes/colour.dm new file mode 100644 index 0000000..7db3f15 --- /dev/null +++ b/code/modules/clothing/shoes/colour.dm @@ -0,0 +1,116 @@ +/obj/item/clothing/shoes/sneakers + +/obj/item/clothing/shoes/sneakers/black + name = "black shoes" + icon_state = "black" + item_color = "black" + desc = "A pair of black shoes." + + cold_protection = FEET + min_cold_protection_temperature = SHOES_MIN_TEMP_PROTECT + heat_protection = FEET + max_heat_protection_temperature = SHOES_MAX_TEMP_PROTECT + +/obj/item/clothing/shoes/sneakers/black/redcoat + item_color = "redcoat" //Exists for washing machines. Is not different from black shoes in any way. + +/obj/item/clothing/shoes/sneakers/brown + name = "brown shoes" + desc = "A pair of brown shoes." + icon_state = "brown" + item_color = "brown" + +/obj/item/clothing/shoes/sneakers/brown/captain + item_color = "captain" //Exists for washing machines. Is not different from brown shoes in any way. + +/obj/item/clothing/shoes/sneakers/brown/hop + item_color = "hop" //Exists for washing machines. Is not different from brown shoes in any way. + +/obj/item/clothing/shoes/sneakers/brown/ce + item_color = "chief" //Exists for washing machines. Is not different from brown shoes in any way. + +/obj/item/clothing/shoes/sneakers/brown/rd + item_color = "director" //Exists for washing machines. Is not different from brown shoes in any way. + +/obj/item/clothing/shoes/sneakers/brown/cmo + item_color = "medical" //Exists for washing machines. Is not different from brown shoes in any way. + +/obj/item/clothing/shoes/sneakers/brown/qm + item_color = "cargo" //Exists for washing machines. Is not different from brown shoes in any way. + +/obj/item/clothing/shoes/sneakers/blue + name = "blue shoes" + icon_state = "blue" + item_color = "blue" + +/obj/item/clothing/shoes/sneakers/green + name = "green shoes" + icon_state = "green" + item_color = "green" + +/obj/item/clothing/shoes/sneakers/yellow + name = "yellow shoes" + icon_state = "yellow" + item_color = "yellow" + +/obj/item/clothing/shoes/sneakers/purple + name = "purple shoes" + icon_state = "purple" + item_color = "purple" + +/obj/item/clothing/shoes/sneakers/brown + name = "brown shoes" + icon_state = "brown" + item_color = "brown" + +/obj/item/clothing/shoes/sneakers/red + name = "red shoes" + desc = "Stylish red shoes." + icon_state = "red" + item_color = "red" + +/obj/item/clothing/shoes/sneakers/white + name = "white shoes" + icon_state = "white" + permeability_coefficient = 0.01 + item_color = "white" + +/obj/item/clothing/shoes/sneakers/rainbow + name = "rainbow shoes" + desc = "Very gay shoes." + icon_state = "rain_bow" + item_color = "rainbow" + +/obj/item/clothing/shoes/sneakers/orange + name = "orange shoes" + icon_state = "orange" + item_color = "orange" + +/obj/item/clothing/shoes/sneakers/orange/attack_self(mob/user) + if (src.chained) + src.chained = null + src.slowdown = SHOES_SLOWDOWN + new /obj/item/weapon/restraints/handcuffs( user.loc ) + src.icon_state = "orange" + return + +/obj/item/clothing/shoes/sneakers/orange/attackby(obj/H, loc, params) + ..() + if ((istype(H, /obj/item/weapon/restraints/handcuffs) && !( src.chained ))) + //H = null + if (src.icon_state != "orange") return + if(istype(H, /obj/item/weapon/restraints/handcuffs/cable)) + return 0 + qdel(H) + src.chained = 1 + src.slowdown = 15 + src.icon_state = "orange1" + return + +/obj/item/clothing/shoes/sneakers/orange/attack_hand(mob/user) + if(ishuman(user)) + var/mob/living/carbon/human/C = user + if(C.shoes == src && src.chained == 1) + user << "You need help taking these off!" + return + ..() diff --git a/code/modules/clothing/shoes/magboots.dm b/code/modules/clothing/shoes/magboots.dm new file mode 100644 index 0000000..da3df12 --- /dev/null +++ b/code/modules/clothing/shoes/magboots.dm @@ -0,0 +1,61 @@ +/obj/item/clothing/shoes/magboots + desc = "Magnetic boots, often used during extravehicular activity to ensure the user remains safely attached to the vehicle." + name = "magboots" + icon_state = "magboots0" + var/magboot_state = "magboots" + var/magpulse = 0 + var/slowdown_active = 2 + actions_types = list(/datum/action/item_action/toggle) + strip_delay = 70 + put_on_delay = 70 + resistance_flags = FIRE_PROOF + origin_tech = "materials=3;magnets=4;engineering=4" + +/obj/item/clothing/shoes/magboots/verb/toggle() + set name = "Toggle Magboots" + set category = "Object" + set src in usr + if(!can_use(usr)) + return + attack_self(usr) + + +/obj/item/clothing/shoes/magboots/attack_self(mob/user) + if(src.magpulse) + src.flags &= ~NOSLIP + src.slowdown = SHOES_SLOWDOWN + else + src.flags |= NOSLIP + src.slowdown = slowdown_active + magpulse = !magpulse + icon_state = "[magboot_state][magpulse]" + user << "You [magpulse ? "enable" : "disable"] the mag-pulse traction system." + user.update_inv_shoes() //so our mob-overlays update + user.update_gravity(user.has_gravity()) + for(var/X in actions) + var/datum/action/A = X + A.UpdateButtonIcon() + +/obj/item/clothing/shoes/magboots/negates_gravity() + return flags & NOSLIP + +/obj/item/clothing/shoes/magboots/examine(mob/user) + ..() + user << "Its mag-pulse traction system appears to be [magpulse ? "enabled" : "disabled"]." + + +/obj/item/clothing/shoes/magboots/advance + desc = "Advanced magnetic boots that have a lighter magnetic pull, placing less burden on the wearer." + name = "advanced magboots" + icon_state = "advmag0" + magboot_state = "advmag" + slowdown_active = SHOES_SLOWDOWN + origin_tech = null + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF + +/obj/item/clothing/shoes/magboots/syndie + desc = "Reverse-engineered magnetic boots that have a heavy magnetic pull. Property of Gorlex Marauders." + name = "blood-red magboots" + icon_state = "syndiemag0" + magboot_state = "syndiemag" + origin_tech = "magnets=4;syndicate=2" diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm new file mode 100644 index 0000000..8267c58 --- /dev/null +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -0,0 +1,197 @@ +/obj/item/clothing/shoes/proc/step_action() //this was made to rewrite clown shoes squeaking + +/obj/item/clothing/shoes/suicide_act(mob/user) + user.visible_message("[user] is bashing [user.p_their()] own head in with [src]! Ain't that a kick in the head?") + for(var/i = 0, i < 3, i++) + sleep(3) + playsound(user, 'sound/weapons/genhit2.ogg', 50, 1) + return(BRUTELOSS) + +/obj/item/clothing/shoes/sneakers/mime + name = "mime shoes" + icon_state = "mime" + item_color = "mime" + +/obj/item/clothing/shoes/combat //basic syndicate combat boots for nuke ops and mob corpses + name = "combat boots" + desc = "High speed, low drag combat boots." + icon_state = "jackboots" + item_state = "jackboots" + armor = list(melee = 25, bullet = 25, laser = 25, energy = 25, bomb = 50, bio = 10, rad = 0, fire = 70, acid = 50) + strip_delay = 70 + resistance_flags = 0 + pockets = /obj/item/weapon/storage/internal/pocket/shoes + +/obj/item/clothing/shoes/combat/swat //overpowered boots for death squads + name = "\improper SWAT boots" + desc = "High speed, no drag combat boots." + permeability_coefficient = 0.01 + flags = NOSLIP + armor = list(melee = 40, bullet = 30, laser = 25, energy = 25, bomb = 50, bio = 30, rad = 30, fire = 90, acid = 50) + +/obj/item/clothing/shoes/sandal + desc = "A pair of rather plain, wooden sandals." + name = "sandals" + icon_state = "wizard" + strip_delay = 50 + put_on_delay = 50 + resistance_flags = FIRE_PROOF | ACID_PROOF + +/obj/item/clothing/shoes/sandal/marisa + desc = "A pair of magic black shoes." + name = "magic shoes" + icon_state = "black" + +/obj/item/clothing/shoes/galoshes + desc = "A pair of yellow rubber boots, designed to prevent slipping on wet surfaces." + name = "galoshes" + icon_state = "galoshes" + permeability_coefficient = 0.05 + flags = NOSLIP + slowdown = SHOES_SLOWDOWN+1 + strip_delay = 50 + put_on_delay = 50 + resistance_flags = 0 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 40, acid = 75) + +/obj/item/clothing/shoes/galoshes/dry + name = "absorbent galoshes" + desc = "A pair of orange rubber boots, designed to prevent slipping on wet surfaces while also drying them." + icon_state = "galoshes_dry" + +/obj/item/clothing/shoes/galoshes/dry/step_action() + var/turf/open/t_loc = get_turf(src) + if(istype(t_loc) && t_loc.wet) + t_loc.MakeDry(TURF_WET_WATER) + t_loc.wet_time = 0 + +/obj/item/clothing/shoes/clown_shoes + desc = "The prankster's standard-issue clowning shoes. Damn, they're huge!" + name = "clown shoes" + icon_state = "clown" + item_state = "clown_shoes" + slowdown = SHOES_SLOWDOWN+1 + item_color = "clown" + var/footstep = 1 //used for squeeks whilst walking + pockets = /obj/item/weapon/storage/internal/pocket/shoes/clown + +/obj/item/clothing/shoes/clown_shoes/step_action() + if(footstep > 1) + playsound(src, "clownstep", 50, 1) + footstep = 0 + else + footstep++ + +/obj/item/clothing/shoes/jackboots + name = "jackboots" + desc = "Nanotrasen-issue Security combat boots for combat scenarios or combat situations. All combat, all the time." + icon_state = "jackboots" + item_state = "jackboots" + item_color = "hosred" + strip_delay = 50 + put_on_delay = 50 + resistance_flags = 0 + pockets = /obj/item/weapon/storage/internal/pocket/shoes + +/obj/item/clothing/shoes/jackboots/fast + slowdown = -1 + +/obj/item/clothing/shoes/winterboots + name = "winter boots" + desc = "Boots lined with 'synthetic' animal fur." + icon_state = "winterboots" + item_state = "winterboots" + cold_protection = FEET|LEGS + min_cold_protection_temperature = SHOES_MIN_TEMP_PROTECT + heat_protection = FEET|LEGS + max_heat_protection_temperature = SHOES_MAX_TEMP_PROTECT + pockets = /obj/item/weapon/storage/internal/pocket/shoes + +/obj/item/clothing/shoes/workboots + name = "work boots" + desc = "Nanotrasen-issue Engineering lace-up work boots for the especially blue-collar." + icon_state = "workboots" + item_state = "jackboots" + strip_delay = 40 + put_on_delay = 40 + pockets = /obj/item/weapon/storage/internal/pocket/shoes + +/obj/item/clothing/shoes/workboots/mining + name = "mining boots" + desc = "Steel-toed mining boots for mining in hazardous environments. Very good at keeping toes uncrushed." + icon_state = "explorer" + resistance_flags = FIRE_PROOF + +/obj/item/clothing/shoes/cult + name = "nar-sian invoker boots" + desc = "A pair of boots worn by the followers of Nar-Sie." + icon_state = "cult" + item_state = "cult" + item_color = "cult" + cold_protection = FEET + min_cold_protection_temperature = SHOES_MIN_TEMP_PROTECT + heat_protection = FEET + max_heat_protection_temperature = SHOES_MAX_TEMP_PROTECT + +/obj/item/clothing/shoes/cult/alt + name = "cultist boots" + icon_state = "cultalt" + +/obj/item/clothing/shoes/cyborg + name = "cyborg boots" + desc = "Shoes for a cyborg costume." + icon_state = "boots" + +/obj/item/clothing/shoes/laceup + name = "laceup shoes" + desc = "The height of fashion, and they're pre-polished!" + icon_state = "laceups" + put_on_delay = 50 + +/obj/item/clothing/shoes/roman + name = "roman sandals" + desc = "Sandals with buckled leather straps on it." + icon_state = "roman" + item_state = "roman" + strip_delay = 100 + put_on_delay = 100 + +/obj/item/clothing/shoes/griffin + name = "griffon boots" + desc = "A pair of costume boots fashioned after bird talons." + icon_state = "griffinboots" + item_state = "griffinboots" + pockets = /obj/item/weapon/storage/internal/pocket/shoes + +/obj/item/clothing/shoes/bhop + name = "jump boots" + desc = "A specialized pair of combat boots with a built-in propulsion system for rapid foward movement." + icon_state = "jetboots" + item_state = "jackboots" + item_color = "hosred" + resistance_flags = FIRE_PROOF + actions_types = list(/datum/action/item_action/bhop) + var/jumpdistance = 5 //-1 from to see the actual distance, e.g 4 goes over 3 tiles + var/recharging_rate = 60 //default 6 seconds between each dash + var/recharging_time = 0 //time until next dash + var/jumping = FALSE //are we mid-jump? + +/obj/item/clothing/shoes/bhop/ui_action_click(mob/user, actiontype) + if(!isliving(usr)) + return + + if(jumping) + return + + if(recharging_time > world.time) + usr << "The boot's internal propulsion needs to recharge still!" + return + + var/atom/target = get_edge_target_turf(usr, usr.dir) //gets the user's direction + + jumping = TRUE + playsound(src.loc, 'sound/effects/stealthoff.ogg', 50, 1, 1) + usr.visible_message("[usr] dashes foward into the air!") + usr.throw_at(target,jumpdistance,1, spin=0, diagonals_first = 1) + jumping = FALSE + recharging_time = world.time + recharging_rate \ No newline at end of file diff --git a/code/modules/clothing/spacesuits/chronosuit.dm b/code/modules/clothing/spacesuits/chronosuit.dm new file mode 100644 index 0000000..fb4a63f --- /dev/null +++ b/code/modules/clothing/spacesuits/chronosuit.dm @@ -0,0 +1,344 @@ +/obj/item/clothing/head/helmet/space/chronos + name = "Chronosuit Helmet" + desc = "A white helmet with an opaque blue visor." + icon_state = "chronohelmet" + item_state = "chronohelmet" + slowdown = 1 + armor = list(melee = 60, bullet = 30/*bullet through the visor*/, laser = 60, energy = 60, bomb = 30, bio = 90, rad = 90, fire = 100, acid = 100) + resistance_flags = FIRE_PROOF | ACID_PROOF + var/obj/item/clothing/suit/space/chronos/suit = null + +/obj/item/clothing/head/helmet/space/chronos/dropped() + if(suit) + suit.deactivate(1, 1) + ..() + +/obj/item/clothing/head/helmet/space/chronos/Destroy() + dropped() + return ..() + + +/obj/item/clothing/suit/space/chronos + name = "Chronosuit" + desc = "An advanced spacesuit equipped with time-bluespace teleportation and anti-compression technology" + icon_state = "chronosuit" + item_state = "chronosuit" + actions_types = list(/datum/action/item_action/toggle) + armor = list(melee = 60, bullet = 60, laser = 60, energy = 60, bomb = 30, bio = 90, rad = 90, fire = 100, acid = 1000) + resistance_flags = FIRE_PROOF | ACID_PROOF + var/list/chronosafe_items = list(/obj/item/weapon/chrono_eraser, /obj/item/weapon/gun/energy/chrono_gun) + var/list/hands_nodrop = list() + var/obj/item/clothing/head/helmet/space/chronos/helmet = null + var/obj/effect/chronos_cam/camera = null + var/image/phase_underlay = null + var/datum/action/innate/chrono_teleport/teleport_now = new + var/activating = 0 + var/activated = 0 + var/cooldowntime = 50 //deciseconds + var/teleporting = 0 + var/phase_timer_id + +/obj/item/clothing/suit/space/chronos/New() + ..() + teleport_now.chronosuit = src + teleport_now.target = src + +/obj/item/clothing/suit/space/chronos/proc/new_camera(mob/user) + if(camera) + qdel(camera) + camera = new /obj/effect/chronos_cam(user) + camera.holder = user + camera.chronosuit = src + user.remote_control = camera + +/obj/item/clothing/suit/space/chronos/ui_action_click() + if((cooldown <= world.time) && !teleporting && !activating) + if(!activated) + activate() + else + deactivate() + +/obj/item/clothing/suit/space/chronos/dropped() + if(activated) + deactivate() + ..() + +/obj/item/clothing/suit/space/chronos/Destroy() + dropped() + return ..() + +/obj/item/clothing/suit/space/chronos/emp_act(severity) + var/mob/living/carbon/human/user = src.loc + switch(severity) + if(1) + if(activated && user && ishuman(user) && (user.wear_suit == src)) + user << "E:FATAL:RAM_READ_FAIL\nE:FATAL:STACK_EMPTY\nE:FATAL:READ_NULL_POINT\nE:FATAL:PWR_BUS_OVERLOAD" + user << "An electromagnetic pulse disrupts your [name] and violently tears you out of time-bluespace!" + user.emote("scream") + deactivate(1, 1) + +/obj/item/clothing/suit/space/chronos/proc/finish_chronowalk(mob/living/carbon/human/user, turf/to_turf) + if(!user) + user = src.loc + if(phase_timer_id) + deltimer(phase_timer_id) + phase_timer_id = 0 + if(istype(user)) + if(to_turf) + user.forceMove(to_turf) + user.SetStunned(0) + user.next_move = 1 + user.alpha = 255 + user.update_atom_colour() + user.animate_movement = FORWARD_STEPS + user.notransform = 0 + user.anchored = 0 + teleporting = 0 + for(var/obj/item/I in user.held_items) + if(I in hands_nodrop) + I.flags &= ~NODROP + if(phase_underlay && !qdeleted(phase_underlay)) + user.underlays -= phase_underlay + qdel(phase_underlay) + phase_underlay = null + if(camera) + camera.remove_target_ui() + camera.loc = user + teleport_now.UpdateButtonIcon() + +/obj/item/clothing/suit/space/chronos/proc/chronowalk(atom/location) + var/mob/living/carbon/human/user = src.loc + if(activated && !teleporting && user && istype(user) && location && user.loc && location.loc && user.wear_suit == src && user.stat == CONSCIOUS) + teleporting = 1 + var/turf/from_turf = get_turf(user) + var/turf/to_turf = get_turf(location) + var/distance = cheap_hypotenuse(from_turf.x, from_turf.y, to_turf.x, to_turf.y) + var/phase_in_ds = distance*2 + + if(camera) + camera.remove_target_ui() + + teleport_now.UpdateButtonIcon() + + var/list/nonsafe_slots = list(slot_belt, slot_back) + for(var/slot in nonsafe_slots) + var/obj/item/slot_item = user.get_item_by_slot(slot) + if(slot_item && !(slot_item.type in chronosafe_items) && user.unEquip(slot_item)) + user << "Your [slot_item.name] got left behind." + + user.ExtinguishMob() + + phase_underlay = create_phase_underlay(user) + + hands_nodrop = list() + for(var/obj/item/I in user.held_items) + if(!(I.flags & NODROP)) + hands_nodrop += I + I.flags |= NODROP + user.animate_movement = NO_STEPS + user.changeNext_move(8 + phase_in_ds) + user.notransform = 1 + user.anchored = 1 + user.Stun(INFINITY) + + animate(user, color = "#00ccee", time = 3) + phase_timer_id = addtimer(src, "phase_2", 3, FALSE, user, to_turf, phase_in_ds) + +/obj/item/clothing/suit/space/chronos/proc/phase_2(mob/living/carbon/human/user, turf/to_turf, phase_in_ds) + if(teleporting && activated && user) + animate(user, alpha = 0, time = 2) + phase_timer_id = addtimer(src, "phase_3", 2, FALSE, user, to_turf, phase_in_ds) + else + finish_chronowalk(user, to_turf) + +/obj/item/clothing/suit/space/chronos/proc/phase_3(mob/living/carbon/human/user, turf/to_turf, phase_in_ds) + if(teleporting && activated && user) + user.forceMove(to_turf) + animate(user, alpha = 255, time = phase_in_ds) + phase_timer_id = addtimer(src, "phase_4", phase_in_ds, FALSE, user, to_turf) + else + finish_chronowalk(user, to_turf) + +/obj/item/clothing/suit/space/chronos/proc/phase_4(mob/living/carbon/human/user, turf/to_turf) + if(teleporting && activated && user) + animate(user, color = "#ffffff", time = 3) + phase_timer_id = addtimer(src, "finish_chronowalk", 3, FALSE, user, to_turf) + else + finish_chronowalk(user, to_turf) + + +/obj/item/clothing/suit/space/chronos/proc/create_phase_underlay(var/mob/user) + var/icon/user_icon = icon('icons/effects/alphacolors.dmi', "white") + user_icon.AddAlphaMask(getFlatIcon(user)) + var/image/phase = new(user_icon) + phase.appearance_flags = RESET_COLOR|RESET_ALPHA + user.underlays += phase + return phase + +/obj/item/clothing/suit/space/chronos/process() + if(activated) + var/mob/living/carbon/human/user = src.loc + if(user && ishuman(user) && (user.wear_suit == src)) + if(camera && (user.remote_control == camera)) + if(!teleporting) + if(camera.loc != user && ((camera.x != user.x) || (camera.y != user.y) || (camera.z != user.z))) + if(camera.phase_time <= world.time) + chronowalk(camera) + else + camera.remove_target_ui() + else + new_camera(user) + else + STOP_PROCESSING(SSobj, src) + +/obj/item/clothing/suit/space/chronos/proc/activate() + if(!activating && !activated && !teleporting) + activating = 1 + var/mob/living/carbon/human/user = src.loc + if(user && ishuman(user) && user.wear_suit == src) + user << "\nChronosuitMK4 login: root" + user << "Password:\n" + user << "root@ChronosuitMK4# chronowalk4 --start\n" + if(user.head && istype(user.head, /obj/item/clothing/head/helmet/space/chronos)) + user << "\[ ok \] Mounting /dev/helm" + helmet = user.head + helmet.flags |= NODROP + helmet.suit = src + src.flags |= NODROP + user << "\[ ok \] Starting brainwave scanner" + user << "\[ ok \] Starting ui display driver" + user << "\[ ok \] Initializing chronowalk4-view" + new_camera(user) + START_PROCESSING(SSobj, src) + activated = 1 + else + user << "\[ fail \] Mounting /dev/helm" + user << "FATAL: Unable to locate /dev/helm. Aborting..." + teleport_now.Grant(user) + cooldown = world.time + cooldowntime + activating = 0 + +/obj/item/clothing/suit/space/chronos/proc/deactivate(force = 0, silent = 0) + if(activated && (!teleporting || force)) + activating = 1 + var/mob/living/carbon/human/user = src.loc + var/hard_landing = teleporting && force + src.flags &= ~NODROP + cooldown = world.time + cooldowntime * 1.5 + activated = 0 + activating = 0 + finish_chronowalk() + if(user && ishuman(user)) + teleport_now.Remove(user) + if(user.wear_suit == src) + if(hard_landing) + user.electrocute_act(35, src, safety = 1) + user.Weaken(10) + if(!silent) + user << "\nroot@ChronosuitMK4# chronowalk4 --stop\n" + if(camera) + user << "\[ ok \] Sending TERM signal to chronowalk4-view" + if(helmet) + user << "\[ ok \] Stopping ui display driver" + user << "\[ ok \] Stopping brainwave scanner" + user << "\[ ok \] Unmounting /dev/helmet" + user << "logout" + if(helmet) + helmet.flags &= ~NODROP + helmet.suit = null + helmet = null + if(camera) + qdel(camera) + +/obj/effect/chronos_cam + name = "Chronosuit View" + density = 0 + anchored = 1 + invisibility = INVISIBILITY_ABSTRACT + opacity = 0 + mouse_opacity = 0 + var/mob/holder = null + var/phase_time = 0 + var/phase_time_length = 3 + var/obj/screen/chronos_target/target_ui = null + var/obj/item/clothing/suit/space/chronos/chronosuit + +/obj/effect/chronos_cam/proc/create_target_ui() + if(holder && holder.client && chronosuit) + if(target_ui) + remove_target_ui() + target_ui = new(null, holder) + holder.client.screen += target_ui + +/obj/effect/chronos_cam/proc/remove_target_ui() + if(target_ui) + qdel(target_ui) + target_ui = null + +/obj/effect/chronos_cam/relaymove(var/mob/user, direction) + if(holder) + if(user == holder) + if(loc == user) + loc = get_turf(user) + if(user.client && user.client.eye != src) + src.loc = get_turf(user) + user.reset_perspective(src) + user.set_machine(src) + var/atom/step = get_step(src, direction) + if(step) + if((step.x <= TRANSITIONEDGE) || (step.x >= (world.maxx - TRANSITIONEDGE - 1)) || (step.y <= TRANSITIONEDGE) || (step.y >= (world.maxy - TRANSITIONEDGE - 1))) + if(!src.Move(step)) + src.loc = step + else + src.loc = step + if((x == holder.x) && (y == holder.y) && (z == holder.z)) + remove_target_ui() + loc = user + else if(!target_ui) + create_target_ui() + phase_time = world.time + phase_time_length + else + qdel(src) + +/obj/effect/chronos_cam/check_eye(mob/user) + if(user != holder) + user.unset_machine() + +/obj/effect/chronos_cam/on_unset_machine(mob/user) + user.reset_perspective(null) + +/obj/effect/chronos_cam/Destroy() + if(holder) + if(holder.remote_control == src) + holder.remote_control = null + if(holder.client && (holder.client.eye == src)) + holder.unset_machine() + return ..() + +/obj/screen/chronos_target + name = "target display" + screen_loc = "CENTER,CENTER" + color = "#ff3311" + blend_mode = BLEND_SUBTRACT + +/obj/screen/chronos_target/New(loc, var/mob/living/carbon/human/user) + if(user) + var/icon/user_icon = getFlatIcon(user) + icon = user_icon + transform = user.transform + else + qdel(src) + +/datum/action/innate/chrono_teleport + name = "Teleport Now" + button_icon_state = "chrono_phase" + check_flags = AB_CHECK_CONSCIOUS //|AB_CHECK_INSIDE + var/obj/item/clothing/suit/space/chronos/chronosuit = null + +/datum/action/innate/chrono_teleport/IsAvailable() + return (chronosuit && chronosuit.activated && chronosuit.camera && !chronosuit.teleporting) + +/datum/action/innate/chrono_teleport/Activate() + if(IsAvailable()) + if(chronosuit.camera) + chronosuit.chronowalk(chronosuit.camera) diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm new file mode 100644 index 0000000..2acc7cc --- /dev/null +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -0,0 +1,717 @@ + //Baseline hardsuits +/obj/item/clothing/head/helmet/space/hardsuit + name = "hardsuit helmet" + desc = "A special helmet designed for work in a hazardous, low-pressure environment. Has radiation shielding." + icon_state = "hardsuit0-engineering" + item_state = "eng_helm" + obj_integrity = 300 + max_integrity = 300 + armor = list(melee = 10, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75, fire = 50, acid = 75) + var/basestate = "hardsuit" + var/brightness_on = 4 //luminosity when on + var/on = 0 + var/obj/item/clothing/suit/space/hardsuit/suit + item_color = "engineering" //Determines used sprites: hardsuit[on]-[color] and hardsuit[on]-[color]2 (lying down sprite) + actions_types = list(/datum/action/item_action/toggle_helmet_light) + + +/obj/item/clothing/head/helmet/space/hardsuit/attack_self(mob/user) + on = !on + icon_state = "[basestate][on]-[item_color]" + user.update_inv_head() //so our mob-overlays update + + if(on) + user.AddLuminosity(brightness_on) + else + user.AddLuminosity(-brightness_on) + for(var/X in actions) + var/datum/action/A = X + A.UpdateButtonIcon() + + +/obj/item/clothing/head/helmet/space/hardsuit/pickup(mob/user) + ..() + if(on) + user.AddLuminosity(brightness_on) + SetLuminosity(0) + +/obj/item/clothing/head/helmet/space/hardsuit/dropped(mob/user) + ..() + if(on) + user.AddLuminosity(-brightness_on) + SetLuminosity(brightness_on) + if(suit) + suit.RemoveHelmet() + +/obj/item/clothing/head/helmet/space/hardsuit/item_action_slot_check(slot) + if(slot == slot_head) + return 1 + +/obj/item/clothing/head/helmet/space/hardsuit/equipped(mob/user, slot) + ..() + if(slot != slot_head) + if(suit) + suit.RemoveHelmet() + else + qdel(src) + +/obj/item/clothing/head/helmet/space/hardsuit/proc/display_visor_message(var/msg) + var/mob/wearer = loc + if(msg && ishuman(wearer)) + wearer.show_message("\icon[src][msg]", 1) + +/obj/item/clothing/head/helmet/space/hardsuit/rad_act(severity) + ..() + display_visor_message("Radiation pulse detected! Magnitude: [severity] RADs.") + +/obj/item/clothing/head/helmet/space/hardsuit/emp_act(severity) + ..() + display_visor_message("[severity > 1 ? "Light" : "Strong"] electromagnetic pulse detected!") + + +/obj/item/clothing/suit/space/hardsuit + name = "hardsuit" + desc = "A special suit that protects against hazardous, low pressure environments. Has radiation shielding." + icon_state = "hardsuit-engineering" + item_state = "eng_hardsuit" + obj_integrity = 300 + max_integrity = 300 + armor = list(melee = 10, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75, fire = 50, acid = 75) + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals,/obj/item/device/t_scanner, /obj/item/weapon/rcd, /obj/item/weapon/pipe_dispenser) + siemens_coefficient = 0 + var/obj/item/clothing/head/helmet/space/hardsuit/helmet + actions_types = list(/datum/action/item_action/toggle_helmet) + var/helmettype = /obj/item/clothing/head/helmet/space/hardsuit + var/obj/item/weapon/tank/jetpack/suit/jetpack = null + + +/obj/item/clothing/suit/space/hardsuit/New() + if(jetpack && ispath(jetpack)) + jetpack = new jetpack(src) + ..() + +/obj/item/clothing/suit/space/hardsuit/attack_self(mob/user) + user.changeNext_move(CLICK_CD_MELEE) + ..() + +/obj/item/clothing/suit/space/hardsuit/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/tank/jetpack/suit)) + if(jetpack) + user << "[src] already has a jetpack installed." + return + if(src == user.get_item_by_slot(slot_wear_suit)) //Make sure the player is not wearing the suit before applying the upgrade. + user << "You cannot install the upgrade to [src] while wearing it." + return + + if(user.unEquip(I)) + jetpack = I + I.loc = src + user << "You successfully install the jetpack into [src]." + + else if(istype(I, /obj/item/weapon/screwdriver)) + if(!jetpack) + user << "[src] has no jetpack installed." + return + if(src == user.get_item_by_slot(slot_wear_suit)) + user << "You cannot remove the jetpack from [src] while wearing it." + return + + jetpack.turn_off() + jetpack.loc = get_turf(src) + jetpack = null + user << "You successfully remove the jetpack from [src]." + + +/obj/item/clothing/suit/space/hardsuit/equipped(mob/user, slot) + ..() + if(jetpack) + if(slot == slot_wear_suit) + for(var/X in jetpack.actions) + var/datum/action/A = X + A.Grant(user) + +/obj/item/clothing/suit/space/hardsuit/dropped(mob/user) + ..() + if(jetpack) + for(var/X in jetpack.actions) + var/datum/action/A = X + A.Remove(user) + +/obj/item/clothing/suit/space/hardsuit/item_action_slot_check(slot) + if(slot == slot_wear_suit) //we only give the mob the ability to toggle the helmet if he's wearing the hardsuit. + return 1 + + //Engineering +/obj/item/clothing/head/helmet/space/hardsuit/engine + name = "engineering hardsuit helmet" + desc = "A special helmet designed for work in a hazardous, low-pressure environment. Has radiation shielding." + icon_state = "hardsuit0-engineering" + item_state = "eng_helm" + armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75, fire = 100, acid = 75) + item_color = "engineering" + resistance_flags = FIRE_PROOF + +/obj/item/clothing/suit/space/hardsuit/engine + name = "engineering hardsuit" + desc = "A special suit that protects against hazardous, low pressure environments. Has radiation shielding." + icon_state = "hardsuit-engineering" + item_state = "eng_hardsuit" + armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75, fire = 100, acid = 75) + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/engine + resistance_flags = FIRE_PROOF + + //Atmospherics +/obj/item/clothing/head/helmet/space/hardsuit/engine/atmos + name = "atmospherics hardsuit helmet" + desc = "A special helmet designed for work in a hazardous, low-pressure environment. Has thermal shielding." + icon_state = "hardsuit0-atmospherics" + item_state = "atmo_helm" + item_color = "atmospherics" + armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 0, fire = 100, acid = 75) + heat_protection = HEAD //Uncomment to enable firesuit protection + max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT + +/obj/item/clothing/suit/space/hardsuit/engine/atmos + name = "atmospherics hardsuit" + desc = "A special suit that protects against hazardous, low pressure environments. Has thermal shielding." + icon_state = "hardsuit-atmospherics" + item_state = "atmo_hardsuit" + armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 0, fire = 100, acid = 75) + heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS //Uncomment to enable firesuit protection + max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/engine/atmos + + + //Chief Engineer's hardsuit +/obj/item/clothing/head/helmet/space/hardsuit/engine/elite + name = "advanced hardsuit helmet" + desc = "An advanced helmet designed for work in a hazardous, low pressure environment. Shines with a high polish." + icon_state = "hardsuit0-white" + item_state = "ce_helm" + item_color = "white" + armor = list(melee = 40, bullet = 5, laser = 10, energy = 5, bomb = 50, bio = 100, rad = 90, fire = 100, acid = 90) + heat_protection = HEAD //Uncomment to enable firesuit protection + max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT + +/obj/item/clothing/suit/space/hardsuit/engine/elite + icon_state = "hardsuit-white" + name = "advanced hardsuit" + desc = "An advanced suit that protects against hazardous, low pressure environments. Shines with a high polish." + item_state = "ce_hardsuit" + armor = list(melee = 40, bullet = 5, laser = 10, energy = 5, bomb = 50, bio = 100, rad = 90, fire = 100, acid = 90) + heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS //Uncomment to enable firesuit protection + max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/engine/elite + jetpack = /obj/item/weapon/tank/jetpack/suit + + //Mining hardsuit +/obj/item/clothing/head/helmet/space/hardsuit/mining + name = "mining hardsuit helmet" + desc = "A special helmet designed for work in a hazardous, low pressure environment. Has reinforced plating for wildlife encounters and dual floodlights." + icon_state = "hardsuit0-mining" + item_state = "mining_helm" + item_color = "mining" + max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT + heat_protection = CHEST|GROIN|LEGS|ARMS + armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 50, bio = 100, rad = 50, fire = 50, acid = 75) + brightness_on = 7 + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals, /obj/item/weapon/resonator, /obj/item/device/mining_scanner, /obj/item/device/t_scanner/adv_mining_scanner, /obj/item/weapon/gun/energy/kinetic_accelerator) + + +/obj/item/clothing/suit/space/hardsuit/mining + icon_state = "hardsuit-mining" + name = "mining hardsuit" + desc = "A special suit that protects against hazardous, low pressure environments. Has reinforced plating for wildlife encounters." + item_state = "mining_hardsuit" + max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT + armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 50, bio = 100, rad = 50, fire = 50, acid = 75) + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals,/obj/item/weapon/storage/bag/ore,/obj/item/weapon/pickaxe) + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/mining + + //Syndicate hardsuit +/obj/item/clothing/head/helmet/space/hardsuit/syndi + name = "blood-red hardsuit helmet" + desc = "A dual-mode advanced helmet designed for work in special operations. It is in EVA mode. Property of Gorlex Marauders." + alt_desc = "A dual-mode advanced helmet designed for work in special operations. It is in combat mode. Property of Gorlex Marauders." + icon_state = "hardsuit1-syndi" + item_state = "syndie_helm" + item_color = "syndi" + armor = list(melee = 40, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50, fire = 50, acid = 90) + on = 1 + var/obj/item/clothing/suit/space/hardsuit/syndi/linkedsuit = null + actions_types = list(/datum/action/item_action/toggle_helmet_mode) + visor_flags_inv = HIDEMASK|HIDEEYES|HIDEFACE|HIDEFACIALHAIR + visor_flags = STOPSPRESSUREDMAGE + +/obj/item/clothing/head/helmet/space/hardsuit/syndi/update_icon() + icon_state = "hardsuit[on]-[item_color]" + +/obj/item/clothing/head/helmet/space/hardsuit/syndi/New() + ..() + if(istype(loc, /obj/item/clothing/suit/space/hardsuit/syndi)) + linkedsuit = loc + +/obj/item/clothing/head/helmet/space/hardsuit/syndi/attack_self(mob/user) //Toggle Helmet + if(!isturf(user.loc)) + user << "You cannot toggle your helmet while in this [user.loc]!" //To prevent some lighting anomalities. + return + on = !on + if(on || force) + user << "You switch your hardsuit to EVA mode, sacrificing speed for space protection." + name = initial(name) + desc = initial(desc) + user.AddLuminosity(brightness_on) + flags |= visor_flags + flags_cover |= HEADCOVERSEYES | HEADCOVERSMOUTH + flags_inv |= visor_flags_inv + cold_protection |= HEAD + else + user << "You switch your hardsuit to combat mode and can now run at full speed." + name += " (combat)" + desc = alt_desc + user.AddLuminosity(-brightness_on) + flags &= ~visor_flags + flags_cover &= ~(HEADCOVERSEYES | HEADCOVERSMOUTH) + flags_inv &= ~visor_flags_inv + cold_protection &= ~HEAD + update_icon() + playsound(src.loc, 'sound/mecha/mechmove03.ogg', 50, 1) + toggle_hardsuit_mode(user) + user.update_inv_head() + if(istype(user, /mob/living/carbon)) + var/mob/living/carbon/C = user + C.head_update(src, forced = 1) + for(var/X in actions) + var/datum/action/A = X + A.UpdateButtonIcon() + +/obj/item/clothing/head/helmet/space/hardsuit/syndi/proc/toggle_hardsuit_mode(mob/user) //Helmet Toggles Suit Mode + if(linkedsuit) + if(on) + linkedsuit.name = initial(linkedsuit.name) + linkedsuit.desc = initial(linkedsuit.desc) + linkedsuit.slowdown = 1 + linkedsuit.flags |= STOPSPRESSUREDMAGE + linkedsuit.cold_protection |= CHEST | GROIN | LEGS | FEET | ARMS | HANDS + else + linkedsuit.name += " (combat)" + linkedsuit.desc = linkedsuit.alt_desc + linkedsuit.slowdown = 0 + linkedsuit.flags &= ~(STOPSPRESSUREDMAGE) + linkedsuit.cold_protection &= ~(CHEST | GROIN | LEGS | FEET | ARMS | HANDS) + + linkedsuit.icon_state = "hardsuit[on]-[item_color]" + linkedsuit.update_icon() + user.update_inv_wear_suit() + user.update_inv_w_uniform() + + +/obj/item/clothing/suit/space/hardsuit/syndi + name = "blood-red hardsuit" + desc = "A dual-mode advanced hardsuit designed for work in special operations. It is in EVA mode. Property of Gorlex Marauders." + alt_desc = "A dual-mode advanced hardsuit designed for work in special operations. It is in combat mode. Property of Gorlex Marauders." + icon_state = "hardsuit1-syndi" + item_state = "syndie_hardsuit" + item_color = "syndi" + w_class = 3 + armor = list(melee = 40, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50, fire = 50, acid = 90) + allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword/saber,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals) + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi + jetpack = /obj/item/weapon/tank/jetpack/suit + +//Elite Syndie suit +/obj/item/clothing/head/helmet/space/hardsuit/syndi/elite + name = "elite syndicate hardsuit helmet" + desc = "An elite version of the syndicate helmet, with improved armour and fire shielding. It is in EVA mode. Property of Gorlex Marauders." + alt_desc = "An elite version of the syndicate helmet, with improved armour and fire shielding. It is in combat mode. Property of Gorlex Marauders." + icon_state = "hardsuit0-syndielite" + item_color = "syndielite" + armor = list(melee = 60, bullet = 60, laser = 50, energy = 25, bomb = 55, bio = 100, rad = 70, fire = 100, acid = 100) + heat_protection = HEAD + max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT + visor_flags_inv = 0 + visor_flags = 0 + on = 0 + resistance_flags = FIRE_PROOF | ACID_PROOF + + +/obj/item/clothing/suit/space/hardsuit/syndi/elite + name = "elite syndicate hardsuit" + desc = "An elite version of the syndicate hardsuit, with improved armour and fire shielding. It is in travel mode." + alt_desc = "An elite version of the syndicate hardsuit, with improved armour and fire shielding. It is in combat mode." + icon_state = "hardsuit0-syndielite" + item_color = "syndielite" + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi/elite + armor = list(melee = 60, bullet = 60, laser = 50, energy = 25, bomb = 55, bio = 100, rad = 70, fire = 100, acid = 100) + heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS + max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT + resistance_flags = FIRE_PROOF | ACID_PROOF + +//The Owl Hardsuit +/obj/item/clothing/head/helmet/space/hardsuit/syndi/owl + name = "owl hardsuit helmet" + desc = "A dual-mode advanced helmet designed for any crime-fighting situation. It is in travel mode." + alt_desc = "A dual-mode advanced helmet designed for any crime-fighting situation. It is in combat mode." + icon_state = "hardsuit1-owl" + item_state = "s_helmet" + item_color = "owl" + visor_flags_inv = 0 + visor_flags = 0 + on = 0 + +/obj/item/clothing/suit/space/hardsuit/syndi/owl + name = "owl hardsuit" + desc = "A dual-mode advanced hardsuit designed for any crime-fighting situation. It is in travel mode." + alt_desc = "A dual-mode advanced hardsuit designed for any crime-fighting situation. It is in combat mode." + icon_state = "hardsuit1-owl" + item_state = "s_suit" + item_color = "owl" + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi/owl + + + //Wizard hardsuit +/obj/item/clothing/head/helmet/space/hardsuit/wizard + name = "gem-encrusted hardsuit helmet" + desc = "A bizarre gem-encrusted helmet that radiates magical energies." + icon_state = "hardsuit0-wiz" + item_state = "wiz_helm" + item_color = "wiz" + resistance_flags = FIRE_PROOF | ACID_PROOF //No longer shall our kind be foiled by lone chemists with spray bottles! + armor = list(melee = 40, bullet = 40, laser = 40, energy = 20, bomb = 35, bio = 100, rad = 50, fire = 100, acid = 100) + heat_protection = HEAD //Uncomment to enable firesuit protection + max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT + +/obj/item/clothing/suit/space/hardsuit/wizard + icon_state = "hardsuit-wiz" + name = "gem-encrusted hardsuit" + desc = "A bizarre gem-encrusted suit that radiates magical energies." + item_state = "wiz_hardsuit" + w_class = 3 + resistance_flags = FIRE_PROOF | ACID_PROOF + armor = list(melee = 40, bullet = 40, laser = 40, energy = 20, bomb = 35, bio = 100, rad = 50, fire = 100, acid = 100) + allowed = list(/obj/item/weapon/teleportation_scroll,/obj/item/weapon/tank/internals) + heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS //Uncomment to enable firesuit protection + max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/wizard + + + //Medical hardsuit +/obj/item/clothing/head/helmet/space/hardsuit/medical + name = "medical hardsuit helmet" + desc = "A special helmet designed for work in a hazardous, low pressure environment. Built with lightweight materials for extra comfort, but does not protect the eyes from intense light." + icon_state = "hardsuit0-medical" + item_state = "medical_helm" + item_color = "medical" + flash_protect = 0 + armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 50, fire = 75, acid = 75) + scan_reagents = 1 + +/obj/item/clothing/suit/space/hardsuit/medical + icon_state = "hardsuit-medical" + name = "medical hardsuit" + desc = "A special suit that protects against hazardous, low pressure environments. Built with lightweight materials for easier movement." + item_state = "medical_hardsuit" + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals,/obj/item/weapon/storage/firstaid,/obj/item/device/healthanalyzer,/obj/item/stack/medical) + armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 50, fire = 75, acid = 75) + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/medical + + //Research Director hardsuit +/obj/item/clothing/head/helmet/space/hardsuit/rd + name = "prototype hardsuit helmet" + desc = "A prototype helmet designed for research in a hazardous, low pressure environment. Scientific data flashes across the visor." + icon_state = "hardsuit0-rd" + item_color = "rd" + resistance_flags = ACID_PROOF + var/onboard_hud_enabled = 0 //stops conflicts with another diag HUD + max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT + armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 100, bio = 100, rad = 60, fire = 60, acid = 80) + var/obj/machinery/doppler_array/integrated/bomb_radar + scan_reagents = 1 + actions_types = list(/datum/action/item_action/toggle_helmet_light, /datum/action/item_action/toggle_research_scanner) + +/obj/item/clothing/head/helmet/space/hardsuit/rd/New() + ..() + bomb_radar = new /obj/machinery/doppler_array/integrated(src) + +/obj/item/clothing/head/helmet/space/hardsuit/rd/equipped(mob/living/carbon/human/user, slot) + ..() + if(user.glasses && istype(user.glasses, /obj/item/clothing/glasses/hud/diagnostic)) + user << ("Your [user.glasses] prevents you using [src]'s diagnostic visor HUD.") + else + onboard_hud_enabled = 1 + var/datum/atom_hud/DHUD = huds[DATA_HUD_DIAGNOSTIC] + DHUD.add_hud_to(user) + +/obj/item/clothing/head/helmet/space/hardsuit/rd/dropped(mob/living/carbon/human/user) + ..() + if(onboard_hud_enabled && !(user.glasses && istype(user.glasses, /obj/item/clothing/glasses/hud/diagnostic))) + var/datum/atom_hud/DHUD = huds[DATA_HUD_DIAGNOSTIC] + DHUD.remove_hud_from(user) + +/obj/item/clothing/suit/space/hardsuit/rd + icon_state = "hardsuit-rd" + name = "prototype hardsuit" + desc = "A prototype suit that protects against hazardous, low pressure environments. Fitted with extensive plating for handling explosives and dangerous research materials." + item_state = "hardsuit-rd" + resistance_flags = ACID_PROOF + max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT //Same as an emergency firesuit. Not ideal for extended exposure. + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals, /obj/item/weapon/gun/energy/wormhole_projector, + /obj/item/weapon/hand_tele, /obj/item/device/aicard) + armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 100, bio = 100, rad = 60, fire = 60, acid = 80) + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/rd + + + + //Security hardsuit +/obj/item/clothing/head/helmet/space/hardsuit/security + name = "security hardsuit helmet" + desc = "A special helmet designed for work in a hazardous, low pressure environment. Has an additional layer of armor." + icon_state = "hardsuit0-sec" + item_state = "sec_helm" + item_color = "sec" + armor = list(melee = 30, bullet = 15, laser = 30,energy = 10, bomb = 10, bio = 100, rad = 50, fire = 75, acid = 75) + + +/obj/item/clothing/suit/space/hardsuit/security + icon_state = "hardsuit-sec" + name = "security hardsuit" + desc = "A special suit that protects against hazardous, low pressure environments. Has an additional layer of armor." + item_state = "sec_hardsuit" + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals, /obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs) + armor = list(melee = 30, bullet = 15, laser = 30, energy = 10, bomb = 10, bio = 100, rad = 50, fire = 75, acid = 75) + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/security + +/obj/item/clothing/head/helmet/space/hardsuit/security/hos + name = "head of security's hardsuit helmet" + desc = "a special bulky helmet designed for work in a hazardous, low pressure environment. Has an additional layer of armor." + icon_state = "hardsuit0-hos" + item_color = "hos" + armor = list(melee = 45, bullet = 25, laser = 30,energy = 10, bomb = 25, bio = 100, rad = 50, fire = 95, acid = 95) + + +/obj/item/clothing/suit/space/hardsuit/security/hos + icon_state = "hardsuit-hos" + name = "head of security's hardsuit" + desc = "A special bulky suit that protects against hazardous, low pressure environments. Has an additional layer of armor." + armor = list(melee = 45, bullet = 25, laser = 30, energy = 10, bomb = 25, bio = 100, rad = 50, fire = 95, acid = 95) + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/security/hos + + //Captain +/obj/item/clothing/head/helmet/space/hardsuit/captain + name = "captain's hardsuit helmet" + icon_state = "capspace" + item_state = "capspacehelmet" + desc = "A special hardsuit helmet designed for only the most fashionable of military figureheads." + armor = list(melee = 40, bullet = 50, laser = 50, energy = 25, bomb = 50, bio = 100, rad = 50, fire = 100, acid = 100) + resistance_flags = FIRE_PROOF | ACID_PROOF + actions_types = list() + +/obj/item/clothing/head/helmet/space/hardsuit/captain/attack_self() + return //Sprites required for flashlight + +/obj/item/clothing/suit/space/hardsuit/captain + name = "captain's hardsuit" + desc = "A bulky, heavy-duty piece of exclusive Nanotrasen hardsuit armor. YOU are in charge!" + icon_state = "caparmor" + item_state = "capspacesuit" + allowed = list(/obj/item/weapon/tank/internals, /obj/item/device/flashlight,/obj/item/weapon/gun/energy, /obj/item/weapon/gun/projectile, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs) + armor = list(melee = 40, bullet = 50, laser = 50, energy = 25, bomb = 50, bio = 100, rad = 50, fire = 100, acid = 100) + resistance_flags = FIRE_PROOF | ACID_PROOF + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/captain + + //Clown +/obj/item/clothing/head/helmet/space/hardsuit/clown + name = "cosmohonk hardsuit helmet" + desc = "A special helmet designed for work in a hazardous, low-humor environment. Has radiation shielding." + icon_state = "hardsuit0-clown" + item_state = "hardsuit0-clown" + armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75, fire = 60, acid = 30) + item_color = "clown" + +/obj/item/clothing/suit/space/hardsuit/clown + name = "cosmohonk hardsuit" + desc = "A special suit that protects against hazardous, low humor environments. Has radiation shielding. Only a true clown can wear it." + icon_state = "hardsuit-clown" + item_state = "clown_hardsuit" + armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75, fire = 60, acid = 30) + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/clown + +/obj/item/clothing/suit/space/hardsuit/clown/mob_can_equip(mob/M, slot) + if(!..() || !ishuman(M)) + return FALSE + var/mob/living/carbon/human/H = M + if(H.mind.assigned_role == "Clown") + return TRUE + else + return FALSE + + +/////////////SHIELDED////////////////////////////////// + +/obj/item/clothing/suit/space/hardsuit/shielded + name = "shielded hardsuit" + desc = "A hardsuit with built in energy shielding. Will rapidly recharge when not under fire." + icon_state = "hardsuit-hos" + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/security/hos + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals, /obj/item/weapon/gun,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs) + armor = list(melee = 30, bullet = 15, laser = 30, energy = 10, bomb = 10, bio = 100, rad = 50, fire = 100, acid = 100) + resistance_flags = FIRE_PROOF | ACID_PROOF + var/current_charges = 3 + var/max_charges = 3 //How many charges total the shielding has + var/recharge_delay = 200 //How long after we've been shot before we can start recharging. 20 seconds here + var/recharge_cooldown = 0 //Time since we've last been shot + var/recharge_rate = 1 //How quickly the shield recharges once it starts charging + var/shield_state = "shield-old" + var/shield_on = "shield-old" + +/obj/item/clothing/suit/space/hardsuit/shielded/hit_reaction(mob/living/carbon/human/owner, attack_text) + recharge_cooldown = world.time + recharge_delay + if(current_charges > 0) + var/datum/effect_system/spark_spread/s = new + s.set_up(2, 1, src) + s.start() + owner.visible_message("[owner]'s shields deflect [attack_text] in a shower of sparks!") + current_charges-- + if(recharge_rate) + START_PROCESSING(SSobj, src) + if(current_charges <= 0) + owner.visible_message("[owner]'s shield overloads!") + shield_state = "broken" + owner.update_inv_wear_suit() + return 1 + return 0 + + +/obj/item/clothing/suit/space/hardsuit/shielded/Destroy() + STOP_PROCESSING(SSobj, src) + return ..() + +/obj/item/clothing/suit/space/hardsuit/shielded/process() + if(world.time > recharge_cooldown && current_charges < max_charges) + current_charges = Clamp((current_charges + recharge_rate), 0, max_charges) + playsound(loc, 'sound/magic/Charge.ogg', 50, 1) + if(current_charges == max_charges) + playsound(loc, 'sound/machines/ding.ogg', 50, 1) + STOP_PROCESSING(SSobj, src) + shield_state = "[shield_on]" + if(ishuman(loc)) + var/mob/living/carbon/human/C = loc + C.update_inv_wear_suit() + +/obj/item/clothing/suit/space/hardsuit/shielded/worn_overlays(isinhands) + . = list() + if(!isinhands) + . += image(icon = 'icons/effects/effects.dmi', icon_state = "[shield_state]") + +/obj/item/clothing/head/helmet/space/hardsuit/shielded + resistance_flags = FIRE_PROOF | ACID_PROOF + +///////////////Capture the Flag//////////////////// + +/obj/item/clothing/suit/space/hardsuit/shielded/ctf + name = "white shielded hardsuit" + desc = "Standard issue hardsuit for playing capture the flag." + icon_state = "ert_medical" + item_state = "ert_medical" + item_color = "ert_medical" + flags = STOPSPRESSUREDMAGE | THICKMATERIAL | NODROP //Dont want people changing into the other teams gear + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/ctf + armor = list(melee = 0, bullet = 30, laser = 30, energy = 30, bomb = 50, bio = 100, rad = 100, fire = 95, acid = 95) + slowdown = 0 + max_charges = 5 + +/obj/item/clothing/suit/space/hardsuit/shielded/ctf/red + name = "red shielded hardsuit" + icon_state = "ert_security" + item_state = "ert_security" + item_color = "ert_security" + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/ctf/red + shield_state = "shield-red" + shield_on = "shield-red" + +/obj/item/clothing/suit/space/hardsuit/shielded/ctf/blue + name = "blue shielded hardsuit" + desc = "Standard issue hardsuit for playing capture the flag." + icon_state = "ert_command" + item_state = "ert_command" + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/ctf/blue + + + +/obj/item/clothing/head/helmet/space/hardsuit/shielded/ctf + name = "shielded hardsuit helmet" + desc = "Standard issue hardsuit helmet for playing capture the flag." + icon_state = "hardsuit0-ert_medical" + item_state = "hardsuit0-ert_medical" + item_color = "ert_medical" + armor = list(melee = 0, bullet = 30, laser = 30, energy = 30, bomb = 50, bio = 100, rad = 100, fire = 95, acid = 95) + + +/obj/item/clothing/head/helmet/space/hardsuit/shielded/ctf/red + icon_state = "hardsuit0-ert_security" + item_state = "hardsuit0-ert_security" + item_color = "ert_security" + +/obj/item/clothing/head/helmet/space/hardsuit/shielded/ctf/blue + name = "shielded hardsuit helmet" + desc = "Standard issue hardsuit helmet for playing capture the flag." + icon_state = "hardsuit0-ert_commander" + item_state = "hardsuit0-ert_commander" + item_color = "ert_commander" + + + + + +//////Syndicate Version + +/obj/item/clothing/suit/space/hardsuit/shielded/syndi + name = "blood-red hardsuit" + desc = "An advanced hardsuit with built in energy shielding." + icon_state = "hardsuit1-syndi" + item_state = "syndie_hardsuit" + item_color = "syndi" + armor = list(melee = 40, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50, fire = 100, acid = 100) + allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword/saber,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals) + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/syndi + slowdown = 0 + + +/obj/item/clothing/suit/space/hardsuit/shielded/syndi/New() + jetpack = new /obj/item/weapon/tank/jetpack/suit(src) + ..() + +/obj/item/clothing/head/helmet/space/hardsuit/shielded/syndi + name = "blood-red hardsuit helmet" + desc = "An advanced hardsuit helmet with built in energy shielding." + icon_state = "hardsuit1-syndi" + item_state = "syndie_helm" + item_color = "syndi" + armor = list(melee = 40, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50, fire = 100, acid = 100) + +///SWAT version +/obj/item/clothing/suit/space/hardsuit/shielded/swat + name = "death commando spacesuit" + desc = "an advanced hardsuit favored by commandos for use in special operations." + icon_state = "deathsquad" + item_state = "swat_suit" + item_color = "syndi" + max_charges = 4 + current_charges = 4 + recharge_delay = 15 + armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100, fire = 100, acid = 100) + strip_delay = 130 + max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/swat + dog_fashion = /datum/dog_fashion/back/deathsquad + +/obj/item/clothing/head/helmet/space/hardsuit/shielded/swat + name = "death commando helmet" + desc = "A tactical helmet with built in energy shielding." + icon_state = "deathsquad" + item_state = "deathsquad" + item_color = "syndi" + armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100, fire = 100, acid = 100) + strip_delay = 130 + max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT + actions_types = list() \ No newline at end of file diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm new file mode 100644 index 0000000..89142b1 --- /dev/null +++ b/code/modules/clothing/spacesuits/miscellaneous.dm @@ -0,0 +1,309 @@ +//miscellaneous spacesuits +/* +Contains: + - Captain's spacesuit + - Death squad's hardsuit + - SWAT suit + - Officer's beret/spacesuit + - NASA Voidsuit + - Father Christmas' magical clothes + - Pirate's spacesuit + - ERT hardsuit: command, sec, engi, med + - EVA spacesuit + - Freedom's spacesuit (freedom from vacuum's oppression) + - Carp hardsuit +*/ + + //Death squad armored space suits, not hardsuits! +/obj/item/clothing/head/helmet/space/hardsuit/deathsquad + name = "deathsquad helmet" + desc = "That's not red paint. That's real blood." + icon_state = "deathsquad" + item_state = "deathsquad" + armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100, fire = 100, acid = 100) + strip_delay = 130 + max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT + resistance_flags = FIRE_PROOF | ACID_PROOF + actions_types = list() + +/obj/item/clothing/head/helmet/space/hardsuit/deathsquad/attack_self(mob/user) + return + +/obj/item/clothing/suit/space/hardsuit/deathsquad + name = "deathsquad suit" + desc = "A heavily armored, advanced space suit that protects against most forms of damage." + icon_state = "deathsquad" + item_state = "swat_suit" + allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals,/obj/item/weapon/kitchen/knife/combat) + armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100, fire = 100, acid = 100) + strip_delay = 130 + max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT + resistance_flags = FIRE_PROOF | ACID_PROOF + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/deathsquad + dog_fashion = /datum/dog_fashion/back/deathsquad + + //NEW SWAT suit +/obj/item/clothing/suit/space/swat + name = "SWAT armor" + desc = "Space-proof tactical SWAT armor." + icon_state = "heavy" + item_state = "swat_suit" + allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals,/obj/item/weapon/kitchen/knife/combat) + armor = list(melee = 40, bullet = 30, laser = 30,energy = 30, bomb = 50, bio = 90, rad = 20, fire = 100, acid = 100) + strip_delay = 120 + resistance_flags = FIRE_PROOF | ACID_PROOF + +/obj/item/clothing/head/helmet/space/beret + name = "officer's beret" + desc = "An armored beret commonly used by special operations officers. Uses advanced force field technology to protect the head from space." + icon_state = "beret_badge" + flags = STOPSPRESSUREDMAGE + flags_inv = 0 + armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100, fire = 100, acid = 100) + strip_delay = 130 + max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT + resistance_flags = FIRE_PROOF | ACID_PROOF + +/obj/item/clothing/suit/space/officer + name = "officer's jacket" + desc = "An armored, space-proof jacket used in special operations." + icon_state = "detective" + item_state = "det_suit" + blood_overlay_type = "coat" + slowdown = 0 + flags_inv = 0 + w_class = 3 + allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals) + armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100, fire = 100, acid = 100) + strip_delay = 130 + max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT + resistance_flags = FIRE_PROOF | ACID_PROOF + + + //NASA Voidsuit +/obj/item/clothing/head/helmet/space/nasavoid + name = "NASA Void Helmet" + desc = "An old, NASA Centcom branch designed, dark red space suit helmet." + icon_state = "void" + item_state = "void" + +/obj/item/clothing/suit/space/nasavoid + name = "NASA Voidsuit" + icon_state = "void" + item_state = "void" + desc = "An old, NASA Centcom branch designed, dark red space suit." + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals,/obj/item/device/multitool) + + + //Space santa outfit suit +/obj/item/clothing/head/helmet/space/santahat + name = "Santa's hat" + desc = "Ho ho ho. Merrry X-mas!" + icon_state = "santahat" + flags = STOPSPRESSUREDMAGE + flags_cover = HEADCOVERSEYES + + dog_fashion = /datum/dog_fashion/head/santa + +/obj/item/clothing/suit/space/santa + name = "Santa's suit" + desc = "Festive!" + icon_state = "santa" + item_state = "santa" + slowdown = 0 + flags = STOPSPRESSUREDMAGE + allowed = list(/obj/item) //for stuffing exta special presents + + + //Space pirate outfit +/obj/item/clothing/head/helmet/space/pirate + name = "pirate hat" + desc = "Yarr." + icon_state = "pirate" + item_state = "pirate" + armor = list(melee = 30, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30, fire = 60, acid = 75) + flags = STOPSPRESSUREDMAGE + strip_delay = 40 + put_on_delay = 20 + flags_cover = HEADCOVERSEYES + +/obj/item/clothing/suit/space/pirate + name = "pirate coat" + desc = "Yarr." + icon_state = "pirate" + item_state = "pirate" + w_class = 3 + flags_inv = 0 + allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals, /obj/item/weapon/melee/energy/sword/pirate, /obj/item/clothing/glasses/eyepatch, /obj/item/weapon/reagent_containers/food/drinks/bottle/rum) + slowdown = 0 + armor = list(melee = 30, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30, fire = 60, acid = 75) + strip_delay = 40 + put_on_delay = 20 + + //Emergency Response Team suits +/obj/item/clothing/head/helmet/space/hardsuit/ert + name = "emergency response unit helmet" + desc = "Standard issue command helmet for the ERT" + icon_state = "hardsuit0-ert_commander" + item_state = "hardsuit0-ert_commander" + item_color = "ert_commander" + armor = list(melee = 65, bullet = 50, laser = 50, energy = 50, bomb = 50, bio = 100, rad = 100, fire = 80, acid = 80) + strip_delay = 130 + flags = STOPSPRESSUREDMAGE | THICKMATERIAL | NODROP + brightness_on = 7 + +/obj/item/clothing/suit/space/hardsuit/ert + name = "emergency response team suit" + desc = "Standard issue command suit for the ERT." + icon_state = "ert_command" + item_state = "ert_command" + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert + allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals) + armor = list(melee = 30, bullet = 50, laser = 30, energy = 50, bomb = 50, bio = 100, rad = 100, fire = 0, acid = 95) + slowdown = 0 + strip_delay = 130 + + //ERT Security +/obj/item/clothing/head/helmet/space/hardsuit/ert/sec + desc = "Standard issue security helmet for the ERT." + icon_state = "hardsuit0-ert_security" + item_state = "hardsuit0-ert_security" + item_color = "ert_security" + +/obj/item/clothing/suit/space/hardsuit/ert/sec + desc = "Standard issue security suit for the ERT." + icon_state = "ert_security" + item_state = "ert_security" + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/sec + + //ERT Engineering +/obj/item/clothing/head/helmet/space/hardsuit/ert/engi + desc = "Standard issue engineer helmet for the ERT." + icon_state = "hardsuit0-ert_engineer" + item_state = "hardsuit0-ert_engineer" + item_color = "ert_engineer" + +/obj/item/clothing/suit/space/hardsuit/ert/engi + desc = "Standard issue engineer suit for the ERT." + icon_state = "ert_engineer" + item_state = "ert_engineer" + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/engi + + //ERT Medical +/obj/item/clothing/head/helmet/space/hardsuit/ert/med + desc = "Standard issue medical helmet for the ERT." + icon_state = "hardsuit0-ert_medical" + item_state = "hardsuit0-ert_medical" + item_color = "ert_medical" + +/obj/item/clothing/suit/space/hardsuit/ert/med + desc = "Standard issue medical suit for the ERT." + icon_state = "ert_medical" + item_state = "ert_medical" + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/med + species_exception = list(/datum/species/angel) + +/obj/item/clothing/suit/space/eva + name = "EVA suit" + icon_state = "space" + item_state = "s_suit" + desc = "A lightweight space suit with the basic ability to protect the wearer from the vacuum of space during emergencies." + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20, fire = 50, acid = 65) + +/obj/item/clothing/head/helmet/space/eva + name = "EVA helmet" + icon_state = "space" + item_state = "space" + desc = "A lightweight space helmet with the basic ability to protect the wearer from the vacuum of space during emergencies." + flash_protect = 0 + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20, fire = 50, acid = 65) + +/obj/item/clothing/head/helmet/space/freedom + name = "eagle helmet" + desc = "An advanced, space-proof helmet. It appears to be modeled after an old-world eagle." + icon_state = "griffinhat" + item_state = "griffinhat" + armor = list(melee = 20, bullet = 40, laser = 30, energy = 25, bomb = 100, bio = 100, rad = 100, fire = 80, acid = 80) + strip_delay = 130 + max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT + resistance_flags = ACID_PROOF + +/obj/item/clothing/suit/space/freedom + name = "eagle suit" + desc = "An advanced, light suit, fabricated from a mixture of synthetic feathers and space-resistant material. A gun holster appears to be intergrated into the suit and the wings appear to be stuck in 'freedom' mode." + icon_state = "freedom" + item_state = "freedom" + allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals) + armor = list(melee = 20, bullet = 40, laser = 30,energy = 25, bomb = 100, bio = 100, rad = 100, fire = 80, acid = 80) + strip_delay = 130 + max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT + resistance_flags = ACID_PROOF + +//Carpsuit, bestsuit, lovesuit +/obj/item/clothing/head/helmet/space/hardsuit/carp + name = "carp helmet" + desc = "Spaceworthy and it looks like a space carp's head, smells like one too." + icon_state = "carp_helm" + item_state = "syndicate" + armor = list(melee = -20, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 75, fire = 60, acid = 75) //As whimpy as a space carp + brightness_on = 0 //luminosity when on + actions_types = list() + flags = STOPSPRESSUREDMAGE | THICKMATERIAL | NODROP + + +/obj/item/clothing/suit/space/hardsuit/carp + name = "carp space suit" + desc = "A slimming piece of dubious space carp technology, you suspect it won't stand up to hand-to-hand blows." + icon_state = "carp_suit" + item_state = "space_suit_syndicate" + slowdown = 0 //Space carp magic, never stop believing + armor = list(melee = -20, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 75, fire = 60, acid = 75) //As whimpy whimpy whoo + allowed = list(/obj/item/weapon/tank/internals, /obj/item/weapon/gun/projectile/automatic/speargun) //I'm giving you a hint here + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/carp + + +/obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal + name = "paranormal response unit helmet" + desc = "A helmet worn by those who deal with paranormal threats for a living." + icon_state = "hardsuit0-prt" + item_state = "hardsuit0-prt" + item_color = "knight_grey" + max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT + actions_types = list() + +/obj/item/clothing/suit/space/hardsuit/ert/paranormal + name = "paranormal response team suit" + desc = "Powerful wards are built into this hardsuit, protecting the user from all manner of paranormal threats." + icon_state = "knight_grey" + item_state = "knight_grey" + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal + max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT + + +/obj/item/clothing/suit/space/hardsuit/ert/paranormal/New() + ..() + new /obj/item/weapon/nullrod(src) + +/obj/item/clothing/suit/space/hardsuit/ert/paranormal/inquisitor + name = "inquisitor's hardsuit" + icon_state = "hardsuit-inq" + item_state = "hardsuit-inq" + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal/inquisitor + +/obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal/inquisitor + name = "inquisitor's helmet" + icon_state = "hardsuit0-inq" + item_state = "hardsuit0-inq" + +/obj/item/clothing/suit/space/hardsuit/ert/paranormal/beserker + name = "champion's hardsuit" + desc = "Voices echo from the hardsuit, driving the user insane." + icon_state = "hardsuit-beserker" + item_state = "hardsuit-beserker" + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal/beserker + +/obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal/beserker + name = "champion's helmet" + desc = "Peering into the eyes of the helmet is enough to seal damnation." + icon_state = "hardsuit0-beserker" + item_state = "hardsuit0-beserker" diff --git a/code/modules/clothing/spacesuits/plasmamen.dm b/code/modules/clothing/spacesuits/plasmamen.dm new file mode 100644 index 0000000..fc09409 --- /dev/null +++ b/code/modules/clothing/spacesuits/plasmamen.dm @@ -0,0 +1,48 @@ + //Suits for the pink and grey skeletons! + + +/obj/item/clothing/suit/space/eva/plasmaman + name = "plasmaman suit" + desc = "A special containment suit designed to protect a plasmaman's volatile body from outside exposure and quickly extinguish it in emergencies." + allowed = list(/obj/item/weapon/gun,/obj/item/ammo_casing,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank) + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 0, fire = 100, acid = 75) + resistance_flags = FIRE_PROOF + icon_state = "plasmaman_suit" + item_state = "plasmaman_suit" + var/next_extinguish = 0 + var/extinguish_cooldown = 100 + var/extinguishes_left = 10 + + +/obj/item/clothing/suit/space/eva/plasmaman/examine(mob/user) + ..() + user << "There are [extinguishes_left] extinguisher canisters left in this suit." + + +/obj/item/clothing/suit/space/eva/plasmaman/proc/Extinguish(mob/living/carbon/human/H) + if(!istype(H)) + return + + if(H.fire_stacks) + if(extinguishes_left) + if(next_extinguish > world.time) + return + next_extinguish = world.time + extinguish_cooldown + extinguishes_left-- + H.visible_message("[H]'s suit automatically extinguishes them!","Your suit automatically extinguishes you.") + H.ExtinguishMob() + PoolOrNew(/obj/effect/particle_effect/water, get_turf(H)) + + +//I just want the light feature of the hardsuit helmet +/obj/item/clothing/head/helmet/space/plasmaman + name = "plasmaman helmet" + desc = "A special containment helmet designed to protect a plasmaman's volatile body from outside exposure and quickly extinguish it in emergencies." + icon_state = "plasmaman-helm" + item_color = "plasma" //needed for the helmet lighting + item_state = "plasmaman-helm" + strip_delay = 80 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 0, fire = 100, acid = 75) + resistance_flags = FIRE_PROOF + + diff --git a/code/modules/clothing/spacesuits/syndi.dm b/code/modules/clothing/spacesuits/syndi.dm new file mode 100644 index 0000000..fe1668e --- /dev/null +++ b/code/modules/clothing/spacesuits/syndi.dm @@ -0,0 +1,149 @@ +//Regular syndicate space suit +/obj/item/clothing/head/helmet/space/syndicate + name = "red space helmet" + desc = "Top secret spess helmet." + icon_state = "syndicate" + item_state = "syndicate" + desc = "Has a tag: Totally not property of an enemy corporation, honest." + armor = list(melee = 40, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30, fire = 80, acid = 85) + +/obj/item/clothing/suit/space/syndicate + name = "red space suit" + icon_state = "syndicate" + item_state = "space_suit_syndicate" + desc = "Has a tag on it: Totally not property of of a hostile corporation, honest!" + w_class = 3 + allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword/saber,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals) + armor = list(melee = 40, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30, fire = 80, acid = 85) + + +//Green syndicate space suit +/obj/item/clothing/head/helmet/space/syndicate/green + name = "green space helmet" + icon_state = "syndicate-helm-green" + item_state = "syndicate-helm-green" + +/obj/item/clothing/suit/space/syndicate/green + name = "green space suit" + icon_state = "syndicate-green" + item_state = "syndicate-green" + + +//Dark green syndicate space suit +/obj/item/clothing/head/helmet/space/syndicate/green/dark + name = "dark green space helmet" + icon_state = "syndicate-helm-green-dark" + item_state = "syndicate-helm-green-dark" + +/obj/item/clothing/suit/space/syndicate/green/dark + name = "dark green space suit" + icon_state = "syndicate-green-dark" + item_state = "syndicate-green-dark" + + +//Orange syndicate space suit +/obj/item/clothing/head/helmet/space/syndicate/orange + name = "orange space helmet" + icon_state = "syndicate-helm-orange" + item_state = "syndicate-helm-orange" + +/obj/item/clothing/suit/space/syndicate/orange + name = "orange space suit" + icon_state = "syndicate-orange" + item_state = "syndicate-orange" + + +//Blue syndicate space suit +/obj/item/clothing/head/helmet/space/syndicate/blue + name = "blue space helmet" + icon_state = "syndicate-helm-blue" + item_state = "syndicate-helm-blue" + +/obj/item/clothing/suit/space/syndicate/blue + name = "blue space suit" + icon_state = "syndicate-blue" + item_state = "syndicate-blue" + + +//Black syndicate space suit +/obj/item/clothing/head/helmet/space/syndicate/black + name = "black space helmet" + icon_state = "syndicate-helm-black" + item_state = "syndicate-helm-black" + +/obj/item/clothing/suit/space/syndicate/black + name = "black space suit" + icon_state = "syndicate-black" + item_state = "syndicate-black" + + +//Black-green syndicate space suit +/obj/item/clothing/head/helmet/space/syndicate/black/green + name = "black space helmet" + icon_state = "syndicate-helm-black-green" + item_state = "syndicate-helm-black-green" + +/obj/item/clothing/suit/space/syndicate/black/green + name = "black and green space suit" + icon_state = "syndicate-black-green" + item_state = "syndicate-black-green" + + +//Black-blue syndicate space suit +/obj/item/clothing/head/helmet/space/syndicate/black/blue + name = "black space helmet" + icon_state = "syndicate-helm-black-blue" + item_state = "syndicate-helm-black-blue" + +/obj/item/clothing/suit/space/syndicate/black/blue + name = "black and blue space suit" + icon_state = "syndicate-black-blue" + item_state = "syndicate-black-blue" + + +//Black medical syndicate space suit +/obj/item/clothing/head/helmet/space/syndicate/black/med + name = "black space helmet" + icon_state = "syndicate-helm-black-med" + item_state = "syndicate-helm-black" + +/obj/item/clothing/suit/space/syndicate/black/med + name = "green space suit" + icon_state = "syndicate-black-med" + item_state = "syndicate-black" + + +//Black-orange syndicate space suit +/obj/item/clothing/head/helmet/space/syndicate/black/orange + name = "black space helmet" + icon_state = "syndicate-helm-black-orange" + item_state = "syndicate-helm-black" + +/obj/item/clothing/suit/space/syndicate/black/orange + name = "black and orange space suit" + icon_state = "syndicate-black-orange" + item_state = "syndicate-black" + + +//Black-red syndicate space suit +/obj/item/clothing/head/helmet/space/syndicate/black/red + name = "black space helmet" + icon_state = "syndicate-helm-black-red" + item_state = "syndicate-helm-black-red" + +/obj/item/clothing/suit/space/syndicate/black/red + name = "black and red space suit" + icon_state = "syndicate-black-red" + item_state = "syndicate-black-red" + + +//Black with yellow/red engineering syndicate space suit +/obj/item/clothing/head/helmet/space/syndicate/black/engie + name = "black space helmet" + icon_state = "syndicate-helm-black-engie" + item_state = "syndicate-helm-black" + +/obj/item/clothing/suit/space/syndicate/black/engie + name = "black engineering space suit" + icon_state = "syndicate-black-engie" + item_state = "syndicate-black" \ No newline at end of file diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm new file mode 100644 index 0000000..1322023 --- /dev/null +++ b/code/modules/clothing/suits/armor.dm @@ -0,0 +1,407 @@ +/obj/item/clothing/suit/armor + allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic,/obj/item/weapon/kitchen/knife/combat,/obj/item/weapon/tank/internals/emergency_oxygen) + body_parts_covered = CHEST + cold_protection = CHEST|GROIN + min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT + heat_protection = CHEST|GROIN + max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT + strip_delay = 60 + put_on_delay = 40 + obj_integrity = 250 + max_integrity = 250 + resistance_flags = 0 + armor = list(melee = 30, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 50, acid = 50) + +/obj/item/clothing/suit/armor/vest + name = "armor" + desc = "A slim armored vest that protects against most types of damage." + icon_state = "armoralt" + item_state = "armoralt" + blood_overlay_type = "armor" + dog_fashion = /datum/dog_fashion/back + +/obj/item/clothing/suit/armor/vest/alt + desc = "An armored vest that protects against most types of damage." + icon_state = "armor" + item_state = "armor" + +/obj/item/clothing/suit/armor/vest/blueshirt + icon_state = "blueshift" + item_state = "blueshift" + +/obj/item/clothing/suit/armor/hos + name = "armored greatcoat" + desc = "A greatcoat enchanced with a special alloy for some protection and style for those with a commanding presence." + icon_state = "hos" + item_state = "greatcoat" + body_parts_covered = CHEST|GROIN|ARMS|LEGS + armor = list(melee = 30, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 70, acid = 90) + cold_protection = CHEST|GROIN|LEGS|ARMS + heat_protection = CHEST|GROIN|LEGS|ARMS + strip_delay = 80 + +/obj/item/clothing/suit/armor/hos/trenchcoat + name = "armored trenchoat" + desc = "A trenchcoat enchanced with a special lightweight kevlar. The epitome of tactical plainclothes." + icon_state = "hostrench" + item_state = "hostrench" + flags_inv = 0 + strip_delay = 80 + +/obj/item/clothing/suit/armor/vest/warden + name = "warden's jacket" + desc = "A navy-blue armored jacket with blue shoulder designations and '/Warden/' stitched into one of the chest pockets." + icon_state = "warden_alt" + item_state = "armor" + body_parts_covered = CHEST|GROIN|ARMS + cold_protection = CHEST|GROIN|ARMS|HANDS + heat_protection = CHEST|GROIN|ARMS|HANDS + strip_delay = 70 + resistance_flags = FLAMMABLE + dog_fashion = null + +/obj/item/clothing/suit/armor/vest/warden/alt + name = "warden's armored jacket" + desc = "A red jacket with silver rank pips and body armor strapped on top." + icon_state = "warden_jacket" + +/obj/item/clothing/suit/armor/vest/leather + name = "security overcoat" + desc = "Lightly armored leather overcoat meant as casual wear for high-ranking officers. Bears the crest of Nanotrasen Security." + icon_state = "leathercoat-sec" + item_state = "hostrench" + body_parts_covered = CHEST|GROIN|ARMS|LEGS + cold_protection = CHEST|GROIN|LEGS|ARMS + heat_protection = CHEST|GROIN|LEGS|ARMS + dog_fashion = null + +/obj/item/clothing/suit/armor/vest/capcarapace + name = "captain's carapace" + desc = "An armored vest reinforced with ceramic plates and pauldrons to provide additional protection whilst still offering maximum mobility and flexibility. Issued only to the station's finest, although it does chafe your nipples." + icon_state = "capcarapace" + item_state = "armor" + body_parts_covered = CHEST|GROIN + armor = list(melee = 50, bullet = 40, laser = 50, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 100, acid = 90) + dog_fashion = null + resistance_flags = FIRE_PROOF + +/obj/item/clothing/suit/armor/vest/capcarapace/alt + name = "captain's parade jacket" + desc = "For when an armoured vest isn't fashionable enough." + icon_state = "capformal" + item_state = "capspacesuit" + +/obj/item/clothing/suit/armor/riot + name = "riot suit" + desc = "A suit of armor with heavy padding to protect against melee attacks." + icon_state = "riot" + item_state = "swat_suit" + body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS + cold_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS + heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS + armor = list(melee = 50, bullet = 10, laser = 10, energy = 10, bomb = 0, bio = 0, rad = 0, fire = 80, acid = 80) + flags_inv = HIDEJUMPSUIT + strip_delay = 80 + put_on_delay = 60 + +/obj/item/clothing/suit/armor/bone + name = "bone armor" + desc = "A tribal armor plate, crafted from animal bone." + icon_state = "bonearmor" + item_state = "bonearmor" + blood_overlay_type = "armor" + armor = list(melee = 35, bullet = 25, laser = 25, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 50, acid = 50) + body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS + +/obj/item/clothing/suit/armor/bulletproof + name = "bulletproof armor" + desc = "A bulletproof vest that excels in protecting the wearer against traditional projectile weaponry and explosives to a minor extent." + icon_state = "bulletproof" + item_state = "armor" + blood_overlay_type = "armor" + armor = list(melee = 15, bullet = 80, laser = 10, energy = 10, bomb = 40, bio = 0, rad = 0, fire = 50, acid = 50) + strip_delay = 70 + put_on_delay = 50 + +/obj/item/clothing/suit/armor/laserproof + name = "reflector vest" + desc = "A vest that excels in protecting the wearer against energy projectiles, as well as occasionally reflecting them." + icon_state = "armor_reflec" + item_state = "armor_reflec" + blood_overlay_type = "armor" + armor = list(melee = 10, bullet = 10, laser = 60, energy = 50, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 100) + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF + var/hit_reflect_chance = 40 + +/obj/item/clothing/suit/armor/laserproof/IsReflect(def_zone) + if(!(def_zone in list("chest", "groin"))) //If not shot where ablative is covering you, you don't get the reflection bonus! + return 0 + if (prob(hit_reflect_chance)) + return 1 + +/obj/item/clothing/suit/armor/vest/det_suit + name = "armor" + desc = "An armored vest with a detective's badge on it." + icon_state = "detective-armor" + allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/device/flashlight,/obj/item/weapon/gun/energy,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/device/detective_scanner,/obj/item/device/taperecorder,/obj/item/weapon/melee/classic_baton/telescopic) + resistance_flags = FLAMMABLE + dog_fashion = null + + +//Reactive armor +/obj/item/clothing/suit/armor/reactive + name = "reactive armor" + desc = "Doesn't seem to do much for some reason." + var/active = 0 + var/reactivearmor_cooldown_duration = 0 //cooldown specific to reactive armor + var/reactivearmor_cooldown = 0 + icon_state = "reactiveoff" + item_state = "reactiveoff" + blood_overlay_type = "armor" + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 100) + actions_types = list(/datum/action/item_action/toggle) + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF + hit_reaction_chance = 50 + + +/obj/item/clothing/suit/armor/reactive/attack_self(mob/user) + src.active = !( src.active ) + if (src.active) + user << "[src] is now active." + src.icon_state = "reactive" + src.item_state = "reactive" + else + user << "[src] is now inactive." + src.icon_state = "reactiveoff" + src.item_state = "reactiveoff" + src.add_fingerprint(user) + return + +/obj/item/clothing/suit/armor/reactive/emp_act(severity) + active = 0 + src.icon_state = "reactiveoff" + src.item_state = "reactiveoff" + reactivearmor_cooldown = world.time + 200 + ..() + +//When the wearer gets hit, this armor will teleport the user a short distance away (to safety or to more danger, no one knows. That's the fun of it!) +/obj/item/clothing/suit/armor/reactive/teleport + name = "reactive teleport armor" + desc = "Someone seperated our Research Director from his own head!" + var/tele_range = 6 + var/rad_amount= 15 + reactivearmor_cooldown_duration = 100 + +/obj/item/clothing/suit/armor/reactive/teleport/hit_reaction(mob/living/carbon/human/owner, attack_text, final_block_chance) + if(!active) + return 0 + if(prob(hit_reaction_chance)) + var/mob/living/carbon/human/H = owner + if(world.time < reactivearmor_cooldown) + owner.visible_message("The reactive teleport system is still recharging! It fails to teleport [H]!") + return + owner.visible_message("The reactive teleport system flings [H] clear of [attack_text], shutting itself off in the process!") + var/list/turfs = new/list() + for(var/turf/T in orange(tele_range, H)) + if(T.density) + continue + if(T.x>world.maxx-tele_range || T.xworld.maxy-tele_range || T.yThe reactive incendiary armor on [owner] activates, but fails to send out flames as it is still recharging its flame jets!") + return + owner.visible_message("The [src] blocks the [attack_text], sending out jets of flame!") + for(var/mob/living/carbon/C in range(6, owner)) + if(C != owner) + C.fire_stacks += 8 + C.IgniteMob() + owner.fire_stacks = -20 + reactivearmor_cooldown = world.time + reactivearmor_cooldown_duration + return 1 + return 0 + + +/obj/item/clothing/suit/armor/reactive/stealth + name = "reactive stealth armor" + desc = "An experimental suit of armor that renders the wearer invisible on detection of imminent harm, and creates a decoy that runs away from the owner. You can't fight what you can't see." + +/obj/item/clothing/suit/armor/reactive/stealth/hit_reaction(mob/living/carbon/human/owner, attack_text) + if(!active) + return 0 + if(prob(hit_reaction_chance)) + if(world.time < reactivearmor_cooldown) + owner.visible_message("The reactive stealth system on [owner] activates, but is still recharging its holographic emitters!") + return + var/mob/living/simple_animal/hostile/illusion/escape/E = new(owner.loc) + E.Copy_Parent(owner, 50) + E.GiveTarget(owner) //so it starts running right away + E.Goto(owner, E.move_to_delay, E.minimum_distance) + owner.alpha = 0 + owner.visible_message("[owner] is hit by [attack_text] in the chest!") //We pretend to be hit, since blocking it would stop the message otherwise + spawn(40) + owner.alpha = initial(owner.alpha) + reactivearmor_cooldown = world.time + reactivearmor_cooldown_duration + return 1 + +/obj/item/clothing/suit/armor/reactive/tesla + name = "reactive tesla armor" + desc = "An experimental suit of armor with sensitive detectors hooked up to a huge capacitor grid, with emitters strutting out of it. Zap." + +/obj/item/clothing/suit/armor/reactive/tesla/hit_reaction(mob/living/carbon/human/owner, attack_text) + if(!active) + return 0 + if(prob(hit_reaction_chance)) + if(world.time < reactivearmor_cooldown) + var/datum/effect_system/spark_spread/sparks = new /datum/effect_system/spark_spread + sparks.set_up(1, 1, src) + sparks.start() + owner.visible_message("The tesla capacitors on [owner]'s reactive telsa armor are still recharging! The armor merely emits some sparks.") + return + owner.visible_message("The [src] blocks the [attack_text], sending out arcs of lightning!") + for(var/mob/living/M in view(6, owner)) + if(M == owner) + continue + owner.Beam(M,icon_state="lightning[rand(1, 12)]",time=5) + M.adjustFireLoss(25) + playsound(M, 'sound/machines/defib_zap.ogg', 50, 1, -1) + reactivearmor_cooldown = world.time + reactivearmor_cooldown_duration + return 1 + +/obj/item/clothing/suit/armor/reactive/table + name = "reactive table armor" + desc = "If you can't beat the memes, embrace them." + var/tele_range = 10 + +/obj/item/clothing/suit/armor/reactive/table/hit_reaction(mob/living/carbon/human/owner, attack_text) + if(!active) + return 0 + if(prob(hit_reaction_chance)) + var/mob/living/carbon/human/H = owner + if(world.time < reactivearmor_cooldown) + owner.visible_message("The reactive table armor's fabricators are still on cooldown!") + return + owner.visible_message("The reactive teleport system flings [H] clear of [attack_text] and slams them into a fabricated table!") + owner.visible_message("[H] GOES ON THE TABLE!!!") + owner.Weaken(2) + var/list/turfs = new/list() + for(var/turf/T in orange(tele_range, H)) + if(T.density) + continue + if(T.x>world.maxx-tele_range || T.xworld.maxy-tele_range || T.y[user] is strangling [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit suicide!") + return(OXYLOSS) + +/obj/item/clothing/suit/cloak/hos + name = "head of security's cloak" + desc = "Worn by Securistan, ruling the station with an iron fist. It's slightly armored." + icon_state = "hoscloak" + allowed = list(/obj/item/weapon/gun/energy/gun/hos) + armor = list(melee = 30, bullet = 30, laser = 10, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 0, acid = 60) + +/obj/item/clothing/suit/cloak/qm + name = "quartermaster's cloak" + desc = "Worn by Cargonia, supplying the station with the necessary tools for survival." + +/obj/item/clothing/suit/cloak/cmo + name = "chief medical officer's cloak" + desc = "Worn by Meditopia, the valiant men and women keeping pestilence at bay. It's slightly shielded from contaminants." + icon_state = "cmocloak" + allowed = list(/obj/item/weapon/reagent_containers/hypospray/CMO) + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 25, rad = 0, fire = 0, acid = 25) + +/obj/item/clothing/suit/cloak/ce + name = "chief engineer's cloak" + desc = "Worn by Engitopia, wielders of an unlimited power. It's slightly shielded against radiation." + icon_state = "cecloak" + allowed = list(/obj/item/weapon/rcd, /obj/item/weapon/pipe_dispenser) + armor = list(melee = 10, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 10, fire = 0, acid = 25) + +/obj/item/clothing/suit/cloak/rd + name = "research director's cloak." + desc = "Worn by Sciencia, thaumaturges and researchers of the universe. It's slightly shielded from contaminants." + icon_state = "rdcloak" + allowed = list(/obj/item/weapon/hand_tele, /obj/item/weapon/storage/part_replacer) + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 10, bio = 10, rad = 0, fire = 0, acid = 25) + +/obj/item/clothing/suit/cloak/cap + name = "captain's cloak" + desc = "Worn by the commander of Space Station 13." + icon_state = "capcloak" + allowed = list(/obj/item/weapon/gun/energy/laser/captain) + armor = list(melee = 30, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 10, rad = 10, fire = 0, acid = 50) + +/obj/item/clothing/suit/hooded/cloak/drake + name = "drake armour" + icon_state = "dragon" + desc = "A suit of armour fashioned from the remains of an ash drake. " + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals, /obj/item/weapon/resonator, /obj/item/device/mining_scanner, /obj/item/device/t_scanner/adv_mining_scanner, /obj/item/weapon/gun/energy/kinetic_accelerator, /obj/item/weapon/pickaxe, /obj/item/weapon/twohanded/spear) + armor = list(melee = 70, bullet = 30, laser = 50, energy = 40, bomb = 70, bio = 60, rad = 50, fire = 100, acid = 100) + hooded = 1 + hoodtype = /obj/item/clothing/head/cloakhood/drake + heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS + body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS + max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT + resistance_flags = FIRE_PROOF | ACID_PROOF + +/obj/item/clothing/head/cloakhood/drake + name = "drake helm" + icon_state = "dragon" + desc = "The skull of a dragon." + armor = list(melee = 70, bullet = 30, laser = 50, energy = 40, bomb = 70, bio = 60, rad = 50, fire = 100, acid = 100) + heat_protection = HEAD + max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT + resistance_flags = FIRE_PROOF | ACID_PROOF + +/* //wip +/obj/item/clothing/cloak/wizard //Not actually obtainable until proper balancing can be done + name = "cloak of invisibility" + desc = "A tattered old thing that apparently gifts the wearer with near-invisibility." + armor = list(melee = 10, bullet = 10, laser = 10, energy = 10, bomb = 10, bio = 10, rad = 10, fire = 10, acid = 10) + action_button_name = "Flaunt Cloak" + var/invisible = 0 + +/obj/item/clothing/cloak/wizard/ui_action_click() + toggleInvisibility(usr) + return + +/obj/item/clothing/cloak/wizard/proc/toggleInvisibility(mob/user) + if(user.slot_back != src) + user << "You need to be wearing the cloak first!" + return + user.visible_message("[user] flaunts [src]!") + if(!invisible) + makeInvisible(user) + return + if(invisible) + breakInvisible(user) + return + +/obj/item/clothing/cloak/wizard/proc/makeInvisible(mob/user) + if(!invisible) + user.visible_message("[user] suddenly fades away!", \ + "You have become nearly invisible. This will require slow movement and will break upon taking damage.") + flags |= NODROP //Cannot unequip while invisible + user.alpha = 10 + slowdown = 2 + invisible = 1 + +/obj/item/clothing/cloak/wizard/proc/breakInvisible(mob/user) + if(invisible) + user.visible_message("[user] suddenly appears from thin air!", \ + "The enchantment has broken! You are visible again.") + flags -= NODROP + user.alpha = 255 + slowdown = 0 + invisible = 0 + +/obj/item/clothing/cloak/wizard/IsShield() + breakInvisible(src.loc) + return 0 + +/obj/item/clothing/cloak/wizard/IsReflect() + breakInvisible(src.loc) + return 0 +*/ diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm new file mode 100644 index 0000000..4cfa91c --- /dev/null +++ b/code/modules/clothing/suits/jobs.dm @@ -0,0 +1,163 @@ +/* + * Job related + */ + +//Botanist +/obj/item/clothing/suit/apron + name = "apron" + desc = "A basic blue apron." + icon_state = "apron" + item_state = "apron" + blood_overlay_type = "armor" + body_parts_covered = CHEST|GROIN + allowed = list(/obj/item/weapon/reagent_containers/spray/plantbgone,/obj/item/device/plant_analyzer,/obj/item/seeds,/obj/item/weapon/reagent_containers/glass/bottle, /obj/item/weapon/reagent_containers/glass/beaker, /obj/item/weapon/cultivator,/obj/item/weapon/reagent_containers/spray/pestspray,/obj/item/weapon/hatchet,/obj/item/weapon/storage/bag/plants) + +//Captain +/obj/item/clothing/suit/captunic + name = "captain's parade tunic" + desc = "Worn by a Captain to show their class." + icon_state = "captunic" + item_state = "bio_suit" + body_parts_covered = CHEST|GROIN|LEGS|ARMS + flags_inv = HIDEJUMPSUIT + allowed = list(/obj/item/weapon/disk, /obj/item/weapon/stamp, /obj/item/weapon/reagent_containers/food/drinks/flask, /obj/item/weapon/melee, /obj/item/weapon/storage/lockbox/medal, /obj/item/device/assembly/flash/handheld, /obj/item/weapon/storage/box/matches, /obj/item/weapon/lighter, /obj/item/clothing/mask/cigarette, /obj/item/weapon/storage/fancy/cigarettes, /obj/item/weapon/tank/internals/emergency_oxygen) + +//Chaplain +/obj/item/clothing/suit/hooded/chaplain_hoodie + name = "chaplain hoodie" + desc = "This suit says to you 'hush'!" + icon_state = "chaplain_hoodie" + item_state = "chaplain_hoodie" + body_parts_covered = CHEST|GROIN|LEGS|ARMS + allowed = list(/obj/item/weapon/storage/book/bible, /obj/item/weapon/nullrod, /obj/item/weapon/reagent_containers/food/drinks/bottle/holywater, /obj/item/weapon/storage/fancy/candle_box, /obj/item/candle, /obj/item/weapon/tank/internals/emergency_oxygen) + hooded = 1 + hoodtype = /obj/item/clothing/head/chaplain_hood + +/obj/item/clothing/head/chaplain_hood + name = "chaplain hood" + desc = "For protecting your identity when immolating demons." + icon_state = "chaplain_hood" + body_parts_covered = HEAD + flags = NODROP + flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS + +//Chaplain +/obj/item/clothing/suit/nun + name = "nun robe" + desc = "Maximum piety in this star system." + icon_state = "nun" + item_state = "nun" + body_parts_covered = CHEST|GROIN|LEGS|ARMS|HANDS + flags_inv = HIDESHOES|HIDEJUMPSUIT + allowed = list(/obj/item/weapon/storage/book/bible, /obj/item/weapon/nullrod, /obj/item/weapon/reagent_containers/food/drinks/bottle/holywater, /obj/item/weapon/storage/fancy/candle_box, /obj/item/candle, /obj/item/weapon/tank/internals/emergency_oxygen) + +//Chef +/obj/item/clothing/suit/toggle/chef + name = "chef's apron" + desc = "An apron-jacket used by a high class chef." + icon_state = "chef" + item_state = "chef" + gas_transfer_coefficient = 0.90 + permeability_coefficient = 0.50 + body_parts_covered = CHEST|GROIN|ARMS + allowed = list(/obj/item/weapon/kitchen) + togglename = "sleeves" + +//Cook +/obj/item/clothing/suit/apron/chef + name = "cook's apron" + desc = "A basic, dull, white chef's apron." + icon_state = "apronchef" + item_state = "apronchef" + blood_overlay_type = "armor" + body_parts_covered = CHEST|GROIN + allowed = list(/obj/item/weapon/kitchen) + +//Detective +/obj/item/clothing/suit/det_suit + name = "trenchcoat" + desc = "An 18th-century multi-purpose trenchcoat. Someone who wears this means serious business." + icon_state = "detective" + item_state = "det_suit" + blood_overlay_type = "coat" + body_parts_covered = CHEST|GROIN|LEGS|ARMS + allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/device/flashlight,/obj/item/weapon/gun/energy,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/device/detective_scanner,/obj/item/device/taperecorder,/obj/item/weapon/melee/classic_baton/telescopic) + armor = list(melee = 25, bullet = 10, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 45) + cold_protection = CHEST|GROIN|LEGS|ARMS + heat_protection = CHEST|GROIN|LEGS|ARMS + +/obj/item/clothing/suit/det_suit/grey + name = "noir trenchcoat" + desc = "A hard-boiled private investigator's grey trenchcoat." + icon_state = "greydet" + item_state = "greydet" + +//Engineering +/obj/item/clothing/suit/hazardvest + name = "hazard vest" + desc = "A high-visibility vest used in work zones." + icon_state = "hazard" + item_state = "hazard" + blood_overlay_type = "armor" + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/device/t_scanner,/obj/item/device/radio) + resistance_flags = 0 +//Lawyer +/obj/item/clothing/suit/toggle/lawyer + name = "blue suit jacket" + desc = "A snappy dress jacket." + icon_state = "suitjacket_blue" + item_state = "suitjacket_blue" + blood_overlay_type = "coat" + body_parts_covered = CHEST|ARMS + togglename = "buttons" + +/obj/item/clothing/suit/toggle/lawyer/purple + name = "purple suit jacket" + desc = "A foppish dress jacket." + icon_state = "suitjacket_purp" + item_state = "suitjacket_purp" + +/obj/item/clothing/suit/toggle/lawyer/black + name = "black suit jacket" + desc = "A professional suit jacket." + icon_state = "suitjacket_black" + item_state = "ro_suit" + + +//Mime +/obj/item/clothing/suit/suspenders + name = "suspenders" + desc = "They suspend the illusion of the mime's play." + icon = 'icons/obj/clothing/belts.dmi' + icon_state = "suspenders" + blood_overlay_type = "armor" //it's the less thing that I can put here + +//Security +/obj/item/clothing/suit/security/officer + name = "security officer's jacket" + desc = "This jacket is for those special occasions when a security officer isn't required to wear their armor." + icon_state = "officerbluejacket" + item_state = "officerbluejacket" + body_parts_covered = CHEST|ARMS + +/obj/item/clothing/suit/security/warden + name = "warden's jacket" + desc = "Perfectly suited for the warden that wants to leave an impression of style on those who visit the brig." + icon_state = "wardenbluejacket" + item_state = "wardenbluejacket" + body_parts_covered = CHEST|ARMS + +/obj/item/clothing/suit/security/hos + name = "head of security's jacket" + desc = "This piece of clothing was specifically designed for asserting superior authority." + icon_state = "hosbluejacket" + item_state = "hosbluejacket" + body_parts_covered = CHEST|ARMS + + +//Surgeon +/obj/item/clothing/suit/apron/surgical + name = "surgical apron" + desc = "A sterile blue surgical apron." + icon_state = "surgical" + allowed = list(/obj/item/weapon/scalpel, /obj/item/weapon/surgical_drapes, /obj/item/weapon/cautery, /obj/item/weapon/hemostat, /obj/item/weapon/retractor) diff --git a/code/modules/clothing/suits/labcoat.dm b/code/modules/clothing/suits/labcoat.dm new file mode 100644 index 0000000..c4d2678 --- /dev/null +++ b/code/modules/clothing/suits/labcoat.dm @@ -0,0 +1,48 @@ +/obj/item/clothing/suit/toggle/labcoat + name = "labcoat" + desc = "A suit that protects against minor chemical spills." + icon_state = "labcoat" + item_state = "labcoat" + blood_overlay_type = "coat" + body_parts_covered = CHEST|ARMS + allowed = list(/obj/item/device/analyzer,/obj/item/stack/medical,/obj/item/weapon/dnainjector,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/hypospray,/obj/item/device/healthanalyzer,/obj/item/device/flashlight/pen,/obj/item/weapon/reagent_containers/glass/bottle,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/pill,/obj/item/weapon/storage/pill_bottle,/obj/item/weapon/paper,/obj/item/weapon/melee/classic_baton/telescopic,/obj/item/weapon/soap,/obj/item/device/sensor_device,/obj/item/weapon/tank/internals/emergency_oxygen) + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 50, rad = 0, fire = 50, acid = 50) + togglename = "buttons" + +/obj/item/clothing/suit/toggle/labcoat/cmo + name = "chief medical officer's labcoat" + desc = "Bluer than the standard model." + icon_state = "labcoat_cmo" + item_state = "labcoat_cmo" + +/obj/item/clothing/suit/toggle/labcoat/emt + name = "EMT's jacket" + desc = "A dark blue jacket with reflective strips for emergency medical technicians." + icon_state = "labcoat_emt" + item_state = "labcoat_cmo" + +/obj/item/clothing/suit/toggle/labcoat/mad + name = "\improper The Mad's labcoat" + desc = "It makes you look capable of konking someone on the noggin and shooting them into space." + icon_state = "labgreen" + item_state = "labgreen" + +/obj/item/clothing/suit/toggle/labcoat/genetics + name = "geneticist labcoat" + desc = "A suit that protects against minor chemical spills. Has a blue stripe on the shoulder." + icon_state = "labcoat_gen" + +/obj/item/clothing/suit/toggle/labcoat/chemist + name = "chemist labcoat" + desc = "A suit that protects against minor chemical spills. Has an orange stripe on the shoulder." + icon_state = "labcoat_chem" + +/obj/item/clothing/suit/toggle/labcoat/virologist + name = "virologist labcoat" + desc = "A suit that protects against minor chemical spills. Offers slightly more protection against biohazards than the standard model. Has a green stripe on the shoulder." + icon_state = "labcoat_vir" + +/obj/item/clothing/suit/toggle/labcoat/science + name = "scientist labcoat" + desc = "A suit that protects against minor chemical spills. Has a purple stripe on the shoulder." + icon_state = "labcoat_tox" \ No newline at end of file diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm new file mode 100644 index 0000000..d2a26a5 --- /dev/null +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -0,0 +1,555 @@ +/* + * Contains: + * Lasertag + * Costume + * Misc + */ + +/* + * Lasertag + */ +/obj/item/clothing/suit/bluetag + name = "blue laser tag armor" + desc = "A piece of plastic armor. It has sensors that react to red light." //Lasers are concentrated light + icon_state = "bluetag" + item_state = "bluetag" + blood_overlay_type = "armor" + body_parts_covered = CHEST + allowed = list (/obj/item/weapon/gun/energy/laser/bluetag) + resistance_flags = 0 + +/obj/item/clothing/suit/redtag + name = "red laser tag armor" + desc = "A piece of plastic armor. It has sensors that react to blue light." + icon_state = "redtag" + item_state = "redtag" + blood_overlay_type = "armor" + body_parts_covered = CHEST + allowed = list (/obj/item/weapon/gun/energy/laser/redtag) + resistance_flags = 0 + +/* + * Costume + */ +/obj/item/clothing/suit/pirate + name = "pirate coat" + desc = "Yarr." + icon_state = "pirate" + item_state = "pirate" + allowed = list(/obj/item/weapon/melee/energy/sword/pirate, /obj/item/clothing/glasses/eyepatch, /obj/item/weapon/reagent_containers/food/drinks/bottle/rum) + +/obj/item/clothing/suit/pirate/captain + name = "pirate captain coat" + desc = "Yarr." + icon_state = "hgpirate" + item_state = "hgpirate" + + +/obj/item/clothing/suit/cyborg_suit + name = "cyborg suit" + desc = "Suit for a cyborg costume." + icon_state = "death" + item_state = "death" + flags = CONDUCT + fire_resist = T0C+5200 + flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT + + +/obj/item/clothing/suit/justice + name = "justice suit" + desc = "this pretty much looks ridiculous" //Needs no fixing + icon_state = "justice" + item_state = "justice" + flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT + + +/obj/item/clothing/suit/judgerobe + name = "judge's robe" + desc = "This robe commands authority." + icon_state = "judge" + item_state = "judge" + body_parts_covered = CHEST|GROIN|LEGS|ARMS + allowed = list(/obj/item/weapon/storage/fancy/cigarettes,/obj/item/stack/spacecash) + flags_inv = HIDEJUMPSUIT + + +/obj/item/clothing/suit/apron/overalls + name = "coveralls" + desc = "A set of denim overalls." + icon_state = "overalls" + item_state = "overalls" + body_parts_covered = CHEST|GROIN|LEGS + + +/obj/item/clothing/suit/syndicatefake + name = "black and red space suit replica" + icon_state = "syndicate-black-red" + item_state = "syndicate-black-red" + desc = "A plastic replica of the Syndicate space suit. You'll look just like a real murderous Syndicate agent in this! This is a toy, it is not made for use in space!" + w_class = 3 + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/toy) + flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT + resistance_flags = 0 + +/obj/item/clothing/suit/hastur + name = "\improper Hastur's robe" + desc = "Robes not meant to be worn by man." + icon_state = "hastur" + item_state = "hastur" + body_parts_covered = CHEST|GROIN|LEGS|ARMS + flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT + + +/obj/item/clothing/suit/imperium_monk + name = "\improper Imperium monk suit" + desc = "Have YOU killed a xeno today?" + icon_state = "imperium_monk" + item_state = "imperium_monk" + body_parts_covered = CHEST|GROIN|LEGS|ARMS + flags_inv = HIDESHOES|HIDEJUMPSUIT + allowed = list(/obj/item/weapon/storage/book/bible, /obj/item/weapon/nullrod, /obj/item/weapon/reagent_containers/food/drinks/bottle/holywater, /obj/item/weapon/storage/fancy/candle_box, /obj/item/candle, /obj/item/weapon/tank/internals/emergency_oxygen) + + +/obj/item/clothing/suit/chickensuit + name = "chicken suit" + desc = "A suit made long ago by the ancient empire KFC." + icon_state = "chickensuit" + item_state = "chickensuit" + body_parts_covered = CHEST|ARMS|GROIN|LEGS|FEET + flags_inv = HIDESHOES|HIDEJUMPSUIT + + +/obj/item/clothing/suit/monkeysuit + name = "monkey suit" + desc = "A suit that looks like a primate." + icon_state = "monkeysuit" + item_state = "monkeysuit" + body_parts_covered = CHEST|ARMS|GROIN|LEGS|FEET|HANDS + flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT + +/obj/item/clothing/suit/toggle/owlwings + name = "owl cloak" + desc = "A soft brown cloak made of synthetic feathers. Soft to the touch, stylish, and a 2 meter wing span that will drive the ladies mad." + icon_state = "owl_wings" + item_state = "owl_wings" + togglename = "wings" + body_parts_covered = ARMS|CHEST + allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic) + actions_types = list(/datum/action/item_action/toggle_wings) + +/obj/item/clothing/suit/toggle/owlwings/griffinwings + name = "griffon cloak" + desc = "A plush white cloak made of synthetic feathers. Soft to the touch, stylish, and a 2 meter wing span that will drive your captives mad." + icon_state = "griffin_wings" + item_state = "griffin_wings" + + +/obj/item/clothing/suit/holidaypriest + name = "holiday priest" + desc = "This is a nice holiday, my son." + icon_state = "holidaypriest" + item_state = "w_suit" + body_parts_covered = CHEST|GROIN|LEGS|ARMS + flags_inv = HIDEJUMPSUIT + allowed = list(/obj/item/weapon/storage/book/bible, /obj/item/weapon/nullrod, /obj/item/weapon/reagent_containers/food/drinks/bottle/holywater, /obj/item/weapon/storage/fancy/candle_box, /obj/item/candle, /obj/item/weapon/tank/internals/emergency_oxygen) + +/obj/item/clothing/suit/cardborg + name = "cardborg suit" + desc = "An ordinary cardboard box with holes cut in the sides." + icon_state = "cardborg" + item_state = "cardborg" + body_parts_covered = CHEST|GROIN + flags_inv = HIDEJUMPSUIT + dog_fashion = /datum/dog_fashion/back + +/obj/item/clothing/suit/cardborg/equipped(mob/living/user, slot) + ..() + if(slot == slot_wear_suit) + disguise(user) + +/obj/item/clothing/suit/cardborg/dropped(mob/living/user) + ..() + user.remove_alt_appearance("standard_borg_disguise") + +/obj/item/clothing/suit/cardborg/proc/disguise(mob/living/carbon/human/H, obj/item/clothing/head/cardborg/borghead) + if(istype(H)) + if(!borghead) + borghead = H.head + if(istype(borghead, /obj/item/clothing/head/cardborg)) //why is this done this way? because equipped() is called BEFORE THE ITEM IS IN THE SLOT WHYYYY + var/image/I = image(icon = 'icons/mob/robots.dmi' , icon_state = "robot", loc = H) + I.override = 1 + I.overlays += image(icon = 'icons/mob/robots.dmi' , icon_state = "eyes-standard") //gotta look realistic + H.add_alt_appearance("standard_borg_disguise", I, silicon_mobs+H) //you look like a robot to robots! (including yourself because you're totally a robot) + + +/obj/item/clothing/suit/snowman + name = "snowman outfit" + desc = "Two white spheres covered in white glitter. 'Tis the season." + icon_state = "snowman" + item_state = "snowman" + body_parts_covered = CHEST|GROIN + flags_inv = HIDEJUMPSUIT + +/obj/item/clothing/suit/poncho + name = "poncho" + desc = "Your classic, non-racist poncho." + icon_state = "classicponcho" + item_state = "classicponcho" + +/obj/item/clothing/suit/poncho/green + name = "green poncho" + desc = "Your classic, non-racist poncho. This one is green." + icon_state = "greenponcho" + item_state = "greenponcho" + +/obj/item/clothing/suit/poncho/red + name = "red poncho" + desc = "Your classic, non-racist poncho. This one is red." + icon_state = "redponcho" + item_state = "redponcho" + +/obj/item/clothing/suit/poncho/ponchoshame + name = "poncho of shame" + desc = "Forced to live on your shameful acting as a fake Mexican, you and your poncho have grown inseperable. Literally." + icon_state = "ponchoshame" + item_state = "ponchoshame" + flags = NODROP + +/obj/item/clothing/suit/whitedress + name = "white dress" + desc = "A fancy white dress." + icon_state = "white_dress" + item_state = "w_suit" + body_parts_covered = CHEST|GROIN|LEGS|FEET + flags_inv = HIDEJUMPSUIT|HIDESHOES + +/obj/item/clothing/suit/hooded/carp_costume + name = "carp costume" + desc = "A costume made from 'synthetic' carp scales, it smells." + icon_state = "carp_casual" + item_state = "labcoat" + body_parts_covered = CHEST|GROIN|ARMS + cold_protection = CHEST|GROIN|ARMS + min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT //Space carp like space, so you should too + allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen, /obj/item/weapon/gun/projectile/automatic/speargun) + hooded = 1 + hoodtype = /obj/item/clothing/head/carp_hood + +/obj/item/clothing/head/carp_hood + name = "carp hood" + desc = "A hood attached to a carp costume." + icon_state = "carp_casual" + body_parts_covered = HEAD + cold_protection = HEAD + min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT + flags = NODROP + flags_inv = HIDEHAIR|HIDEEARS + +/obj/item/clothing/suit/hooded/ian_costume //It's Ian, rub his bell- oh god what happened to his inside parts? + name = "corgi costume" + desc = "A costume that looks like someone made a human-like corgi, it won't guarantee belly rubs." + icon_state = "ian" + item_state = "labcoat" + body_parts_covered = CHEST|GROIN|ARMS + //cold_protection = CHEST|GROIN|ARMS + //min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT + allowed = list(,) + hooded = 1 + hoodtype = /obj/item/clothing/head/ian_hood + dog_fashion = /datum/dog_fashion/back + +/obj/item/clothing/head/ian_hood + name = "corgi hood" + desc = "A hood that looks just like a corgi's head, it won't guarantee dog biscuits." + icon_state = "ian" + body_parts_covered = HEAD + //cold_protection = HEAD + //min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT + flags = NODROP + flags_inv = HIDEHAIR|HIDEEARS + +/obj/item/clothing/suit/hooded/bee_costume // It's Hip! + name = "bee costume" + desc = "Bee the true Queen!" + icon_state = "bee" + item_state = "labcoat" + body_parts_covered = CHEST|GROIN|ARMS + flags = THICKMATERIAL + hooded = 1 + hoodtype = /obj/item/clothing/head/bee_hood + +/obj/item/clothing/head/bee_hood + name = "bee hood" + desc = "A hood attached to a bee costume." + icon_state = "bee" + body_parts_covered = HEAD + flags = NODROP|THICKMATERIAL + flags_inv = HIDEHAIR|HIDEEARS + +/obj/item/clothing/suit/hooded/bloated_human //OH MY GOD WHAT HAVE YOU DONE!?!?!? + name = "bloated human suit" + desc = "A horribly bloated suit made from human skins." + icon_state = "lingspacesuit" + item_state = "labcoat" + body_parts_covered = CHEST|GROIN|ARMS + allowed = list(,) + hooded = 1 + actions_types = list(/datum/action/item_action/toggle_human_head) + hoodtype = /obj/item/clothing/head/human_head + + +/obj/item/clothing/head/human_head + name = "bloated human head" + desc = "A horribly bloated and mismatched human head." + icon_state = "lingspacehelmet" + body_parts_covered = HEAD + flags = NODROP + flags_cover = HEADCOVERSEYES + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR + +/obj/item/clothing/suit/security/officer/russian + name = "russian officer's jacket" + desc = "This jacket is for those special occasions when a russian officer isn't required to wear their armor." + icon_state = "officertanjacket" + item_state = "officertanjacket" + body_parts_covered = CHEST|ARMS + +/* + * Misc + */ + +/obj/item/clothing/suit/straight_jacket + name = "straight jacket" + desc = "A suit that completely restrains the wearer. Manufactured by Antyphun Corp." //Straight jacket is antifun + icon_state = "straight_jacket" + item_state = "straight_jacket" + body_parts_covered = CHEST|GROIN|LEGS|ARMS|HANDS + flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT + strip_delay = 60 + breakouttime = 3000 + +/obj/item/clothing/suit/ianshirt + name = "worn shirt" + desc = "A worn out, curiously comfortable t-shirt with a picture of Ian. You wouldn't go so far as to say it feels like being hugged when you wear it, but it's pretty close. Good for sleeping in." + icon_state = "ianshirt" + item_state = "ianshirt" + +/obj/item/clothing/suit/nerdshirt + name = "gamer shirt" + desc = "A baggy shirt with vintage game character Phanic the Weasel. Why would anyone wear this?" + icon_state = "nerdshirt" + item_state = "nerdshirt" + +/obj/item/clothing/suit/vapeshirt //wearing this is asking to get beat. + name = "Vape Naysh shirt" + desc = "A cheap white T-shirt with a big tacky \"VN\" on the front, Why would you wear this unironicly?" + icon_state = "vapeshirt" + item_state = "vapeshirt" + +/obj/item/clothing/suit/jacket + name = "bomber jacket" + desc = "Aviators not included." + icon_state = "bomberjacket" + item_state = "brownjsuit" + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/toy,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/device/radio) + body_parts_covered = CHEST|GROIN|ARMS + cold_protection = CHEST|GROIN|ARMS + min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT + +/obj/item/clothing/suit/jacket/leather + name = "leather jacket" + desc = "Pompadour not included." + icon_state = "leatherjacket" + item_state = "hostrench" + resistance_flags = 0 + max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/toy,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/weapon/gun/projectile/automatic/pistol,/obj/item/weapon/gun/projectile/revolver,/obj/item/weapon/gun/projectile/revolver/detective,/obj/item/device/radio) + +/obj/item/clothing/suit/jacket/leather/overcoat + name = "leather overcoat" + desc = "That's a damn fine coat." + icon_state = "leathercoat" + body_parts_covered = CHEST|GROIN|ARMS|LEGS + cold_protection = CHEST|GROIN|ARMS|LEGS + +/obj/item/clothing/suit/jacket/puffer + name = "puffer jacket" + desc = "A thick jacket with a rubbery, water-resistant shell." + icon_state = "pufferjacket" + item_state = "hostrench" + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 50, rad = 0, fire = 0, acid = 0) + +/obj/item/clothing/suit/jacket/puffer/vest + name = "puffer vest" + desc = "A thick vest with a rubbery, water-resistant shell." + icon_state = "puffervest" + item_state = "armor" + body_parts_covered = CHEST|GROIN + cold_protection = CHEST|GROIN + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 30, rad = 0, fire = 0, acid = 0) + +/obj/item/clothing/suit/jacket/miljacket + name = "military jacket" + desc = "A canvas jacket styled after classical American military garb. Feels sturdy, yet comfortable." + icon_state = "militaryjacket" + item_state = "militaryjacket" + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/toy,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/weapon/gun/projectile/automatic/pistol,/obj/item/weapon/gun/projectile/revolver,/obj/item/weapon/gun/projectile/revolver/detective,/obj/item/device/radio) + +/obj/item/clothing/suit/jacket/letterman + name = "letterman jacket" + desc = "A classic brown letterman jacket. Looks pretty hot and heavy." + icon_state = "letterman" + item_state = "letterman" + +/obj/item/clothing/suit/jacket/letterman_red + name = "red letterman jacket" + desc = "A letterman jacket in a sick red color. Radical." + icon_state = "letterman_red" + item_state = "letterman_red" + +/obj/item/clothing/suit/jacket/letterman_syndie + name = "blood-red letterman jacket" + desc = "Oddly, this jacket seems to have a large S on the back..." + icon_state = "letterman_s" + item_state = "letterman_s" + +/obj/item/clothing/suit/jacket/letterman_nanotrasen + name = "blue letterman jacket" + desc = "A blue letterman jacket with a proud Nanotrasen N on the back. The tag says that it was made in Space China." + icon_state = "letterman_n" + item_state = "letterman_n" + +/obj/item/clothing/suit/jacket/capjacket//For you Straits. + name = "Capjacket" + desc = "The jacket looks familiar. Possibly worn by some old hero or something." + icon_state = "capjacket" + item_state = "capjacket" + +/obj/item/clothing/suit/xenos + name = "xenos suit" + desc = "A suit made out of chitinous alien hide." + icon_state = "xenos" + item_state = "xenos_helm" + body_parts_covered = CHEST|GROIN|LEGS|ARMS|HANDS + flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT + allowed = list(/obj/item/clothing/mask/facehugger/toy) + + +// WINTER COATS + +/obj/item/clothing/suit/hooded/wintercoat + name = "winter coat" + desc = "A heavy jacket made from 'synthetic' animal furs." + icon_state = "coatwinter" + item_state = "labcoat" + body_parts_covered = CHEST|GROIN|ARMS + cold_protection = CHEST|GROIN|ARMS + min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0, fire = 0, acid = 0) + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/toy,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter) + hooded = 1 + +/obj/item/clothing/head/winterhood + name = "winter hood" + desc = "A hood attached to a heavy winter jacket." + icon_state = "winterhood" + body_parts_covered = HEAD + cold_protection = HEAD + min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT + flags = NODROP + flags_inv = HIDEHAIR|HIDEEARS + +/obj/item/clothing/suit/hooded/wintercoat/captain + name = "captain's winter coat" + icon_state = "coatcaptain" + armor = list(melee = 25, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 0, acid = 50) + allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic) + hoodtype = /obj/item/clothing/head/winterhood/captain + +/obj/item/clothing/head/winterhood/captain + icon_state = "winterhood_captain" + +/obj/item/clothing/suit/hooded/wintercoat/security + name = "security winter coat" + icon_state = "coatsecurity" + armor = list(melee = 25, bullet = 15, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 0, acid = 45) + allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic) + hoodtype = /obj/item/clothing/head/winterhood/security + +/obj/item/clothing/head/winterhood/security + icon_state = "winterhood_security" + +/obj/item/clothing/suit/hooded/wintercoat/medical + name = "medical winter coat" + icon_state = "coatmedical" + allowed = list(/obj/item/device/analyzer,/obj/item/stack/medical,/obj/item/weapon/dnainjector,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/hypospray,/obj/item/device/healthanalyzer,/obj/item/device/flashlight/pen,/obj/item/weapon/reagent_containers/glass/bottle,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/pill,/obj/item/weapon/storage/pill_bottle,/obj/item/weapon/paper,/obj/item/weapon/melee/classic_baton/telescopic) + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 50, rad = 0, fire = 0, acid = 45) + hoodtype = /obj/item/clothing/head/winterhood/medical + +/obj/item/clothing/head/winterhood/medical + icon_state = "winterhood_medical" + +/obj/item/clothing/suit/hooded/wintercoat/science + name = "science winter coat" + icon_state = "coatscience" + allowed = list(/obj/item/device/analyzer,/obj/item/stack/medical,/obj/item/weapon/dnainjector,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/hypospray,/obj/item/device/healthanalyzer,/obj/item/device/flashlight/pen,/obj/item/weapon/reagent_containers/glass/bottle,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/pill,/obj/item/weapon/storage/pill_bottle,/obj/item/weapon/paper,/obj/item/weapon/melee/classic_baton/telescopic) + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 10, bio = 0, rad = 0, fire = 0, acid = 0) + hoodtype = /obj/item/clothing/head/winterhood/science + +/obj/item/clothing/head/winterhood/science + icon_state = "winterhood_science" + +/obj/item/clothing/suit/hooded/wintercoat/engineering + name = "engineering winter coat" + icon_state = "coatengineer" + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 20, fire = 30, acid = 45) + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/device/t_scanner, /obj/item/weapon/rcd, /obj/item/weapon/pipe_dispenser) + hoodtype = /obj/item/clothing/head/winterhood/engineering + +/obj/item/clothing/head/winterhood/engineering + icon_state = "winterhood_engineer" + +/obj/item/clothing/suit/hooded/wintercoat/engineering/atmos + name = "atmospherics winter coat" + icon_state = "coatatmos" + hoodtype = /obj/item/clothing/head/winterhood/engineering/atmos + +/obj/item/clothing/head/winterhood/engineering/atmos + icon_state = "winterhood_atmos" + +/obj/item/clothing/suit/hooded/wintercoat/hydro + name = "hydroponics winter coat" + icon_state = "coathydro" + allowed = list(/obj/item/weapon/reagent_containers/spray/plantbgone,/obj/item/device/plant_analyzer,/obj/item/seeds,/obj/item/weapon/reagent_containers/glass/bottle,/obj/item/weapon/cultivator,/obj/item/weapon/reagent_containers/spray/pestspray,/obj/item/weapon/hatchet,/obj/item/weapon/storage/bag/plants) + hoodtype = /obj/item/clothing/head/winterhood/hydro + +/obj/item/clothing/head/winterhood/hydro + item_state = "winterhood_hydro" + +/obj/item/clothing/suit/hooded/wintercoat/cargo + name = "cargo winter coat" + icon_state = "coatcargo" + hoodtype = /obj/item/clothing/head/winterhood/cargo + +/obj/item/clothing/head/winterhood/cargo + icon_state = "winterhood_cargo" + +/obj/item/clothing/suit/hooded/wintercoat/miner + name = "mining winter coat" + icon_state = "coatminer" + allowed = list(/obj/item/weapon/pickaxe,/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/toy,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter) + armor = list(melee = 10, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) + hoodtype = /obj/item/clothing/head/winterhood/miner + +/obj/item/clothing/head/winterhood/miner + icon_state = "winterhood_miner" + +/obj/item/clothing/suit/spookyghost + name = "spooky ghost" + desc = "this is obviously just a bedsheet, but maybe try it on?" + icon_state = "bedsheet" + user_vars_to_edit = list("name" = "Spooky Ghost", "real_name" = "Spooky Ghost" , "incorporeal_move" = 1, "appearance_flags" = KEEP_TOGETHER|TILE_BOUND, "alpha" = 150) + alternate_worn_layer = ABOVE_BODY_FRONT_LAYER //so the bedsheet goes over everything but fire + + + diff --git a/code/modules/clothing/suits/toggles.dm b/code/modules/clothing/suits/toggles.dm new file mode 100644 index 0000000..35049b2 --- /dev/null +++ b/code/modules/clothing/suits/toggles.dm @@ -0,0 +1,178 @@ +//Hoods for winter coats and chaplain hoodie etc + +/obj/item/clothing/suit/hooded + actions_types = list(/datum/action/item_action/toggle_hood) + var/obj/item/clothing/head/hood + var/hoodtype = /obj/item/clothing/head/winterhood //so the chaplain hoodie or other hoodies can override this + +/obj/item/clothing/suit/hooded/New() + MakeHood() + ..() + +/obj/item/clothing/suit/hooded/Destroy() + qdel(hood) + return ..() + +/obj/item/clothing/suit/hooded/proc/MakeHood() + if(!hood) + var/obj/item/clothing/head/W = new hoodtype(src) + hood = W + +/obj/item/clothing/suit/hooded/ui_action_click() + ToggleHood() + +/obj/item/clothing/suit/hooded/item_action_slot_check(slot, mob/user) + if(slot == slot_wear_suit) + return 1 + +/obj/item/clothing/suit/hooded/equipped(mob/user, slot) + if(slot != slot_wear_suit) + RemoveHood() + ..() + +/obj/item/clothing/suit/hooded/proc/RemoveHood() + src.icon_state = "[initial(icon_state)]" + suittoggled = 0 + if(ishuman(hood.loc)) + var/mob/living/carbon/H = hood.loc + H.unEquip(hood, 1) + H.update_inv_wear_suit() + hood.loc = src + for(var/X in actions) + var/datum/action/A = X + A.UpdateButtonIcon() + +/obj/item/clothing/suit/hooded/dropped() + ..() + RemoveHood() + +/obj/item/clothing/suit/hooded/proc/ToggleHood() + if(!suittoggled) + if(ishuman(src.loc)) + var/mob/living/carbon/human/H = src.loc + if(H.wear_suit != src) + H << "You must be wearing [src] to put up the hood!" + return + if(H.head) + H << "You're already wearing something on your head!" + return + else if(H.equip_to_slot_if_possible(hood,slot_head,0,0,1)) + suittoggled = 1 + src.icon_state = "[initial(icon_state)]_t" + H.update_inv_wear_suit() + for(var/X in actions) + var/datum/action/A = X + A.UpdateButtonIcon() + else + RemoveHood() + +//Toggle exosuits for different aesthetic styles (hoodies, suit jacket buttons, etc) + +/obj/item/clothing/suit/toggle/AltClick(mob/user) + ..() + if(!user.canUseTopic(src, be_close=TRUE)) + user << "You can't do that right now!" + return + else + suit_toggle(user) + +/obj/item/clothing/suit/toggle/ui_action_click() + suit_toggle() + +/obj/item/clothing/suit/toggle/proc/suit_toggle() + set src in usr + + if(!can_use(usr)) + return 0 + + usr << "You toggle [src]'s [togglename]." + if(src.suittoggled) + src.icon_state = "[initial(icon_state)]" + src.suittoggled = 0 + else if(!src.suittoggled) + src.icon_state = "[initial(icon_state)]_t" + src.suittoggled = 1 + usr.update_inv_wear_suit() + for(var/X in actions) + var/datum/action/A = X + A.UpdateButtonIcon() + +/obj/item/clothing/suit/toggle/examine(mob/user) + ..() + user << "Alt-click on [src] to toggle the [togglename]." + +//Hardsuit toggle code +/obj/item/clothing/suit/space/hardsuit/New() + MakeHelmet() + ..() + +/obj/item/clothing/suit/space/hardsuit/Destroy() + if(helmet) + helmet.suit = null + qdel(helmet) + qdel(jetpack) + return ..() + +/obj/item/clothing/head/helmet/space/hardsuit/Destroy() + if(suit) + suit.helmet = null + return ..() + +/obj/item/clothing/suit/space/hardsuit/proc/MakeHelmet() + if(!helmettype) + return + if(!helmet) + var/obj/item/clothing/head/helmet/space/hardsuit/W = new helmettype(src) + W.suit = src + helmet = W + +/obj/item/clothing/suit/space/hardsuit/ui_action_click() + ..() + ToggleHelmet() + +/obj/item/clothing/suit/space/hardsuit/equipped(mob/user, slot) + if(!helmettype) + return + if(slot != slot_wear_suit) + RemoveHelmet() + ..() + +/obj/item/clothing/suit/space/hardsuit/proc/RemoveHelmet() + if(!helmet) + return + suittoggled = 0 + if(ishuman(helmet.loc)) + var/mob/living/carbon/H = helmet.loc + if(helmet.on) + helmet.attack_self(H) + H.unEquip(helmet, 1) + H.update_inv_wear_suit() + H << "The helmet on the hardsuit disengages." + playsound(src.loc, 'sound/mecha/mechmove03.ogg', 50, 1) + helmet.loc = src + +/obj/item/clothing/suit/space/hardsuit/dropped() + ..() + RemoveHelmet() + +/obj/item/clothing/suit/space/hardsuit/proc/ToggleHelmet() + var/mob/living/carbon/human/H = src.loc + if(!helmettype) + return + if(!helmet) + return + if(!suittoggled) + if(ishuman(src.loc)) + if(H.wear_suit != src) + H << "You must be wearing [src] to engage the helmet!" + return + if(H.head) + H << "You're already wearing something on your head!" + return + else if(H.equip_to_slot_if_possible(helmet,slot_head,0,0,1)) + H << "You engage the helmet on the hardsuit." + suittoggled = 1 + H.update_inv_wear_suit() + playsound(src.loc, 'sound/mecha/mechmove03.ogg', 50, 1) + else + RemoveHelmet() diff --git a/code/modules/clothing/suits/utility.dm b/code/modules/clothing/suits/utility.dm new file mode 100644 index 0000000..2479ca1 --- /dev/null +++ b/code/modules/clothing/suits/utility.dm @@ -0,0 +1,135 @@ +/* + * Contains: + * Fire protection + * Bomb protection + * Radiation protection + */ + +/* + * Fire protection + */ + +/obj/item/clothing/suit/fire + name = "emergency firesuit" + desc = "A suit that helps protect against fire and heat." + icon_state = "fire" + item_state = "ro_suit" + w_class = 4 + gas_transfer_coefficient = 0.90 + permeability_coefficient = 0.50 + body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/extinguisher, /obj/item/weapon/crowbar) + slowdown = 1 + flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT + flags = STOPSPRESSUREDMAGE | THICKMATERIAL + heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS + 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 + put_on_delay = 60 + resistance_flags = FIRE_PROOF + +/obj/item/clothing/suit/fire/firefighter + icon_state = "firesuit" + item_state = "firefighter" + + +/obj/item/clothing/suit/fire/heavy + name = "heavy firesuit" + desc = "An old, bulky thermal protection suit." + icon_state = "thermal" + item_state = "ro_suit" + slowdown = 1.5 + +/obj/item/clothing/suit/fire/atmos + name = "firesuit" + desc = "An expensive firesuit that protects against even the most deadly of station fires. Designed to protect even if the wearer is set aflame." + icon_state = "atmos_firesuit" + item_state = "firesuit_atmos" + max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT + +/* + * Bomb protection + */ +/obj/item/clothing/head/bomb_hood + name = "bomb hood" + desc = "Use in case of bomb." + icon_state = "bombsuit" + flags = THICKMATERIAL + armor = list(melee = 20, bullet = 0, laser = 20,energy = 10, bomb = 100, bio = 0, rad = 0, fire = 80, acid = 50) + flags_inv = HIDEFACE|HIDEMASK|HIDEEARS|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR + cold_protection = HEAD + min_cold_protection_temperature = HELMET_MIN_TEMP_PROTECT + heat_protection = HEAD + max_heat_protection_temperature = HELMET_MAX_TEMP_PROTECT + strip_delay = 70 + put_on_delay = 70 + flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH + resistance_flags = 0 + + +/obj/item/clothing/suit/bomb_suit + name = "bomb suit" + desc = "A suit designed for safety when handling explosives." + icon_state = "bombsuit" + item_state = "bombsuit" + w_class = 4//bulky item + gas_transfer_coefficient = 0.01 + permeability_coefficient = 0.01 + flags = THICKMATERIAL + body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS + slowdown = 2 + armor = list(melee = 20, bullet = 0, laser = 20,energy = 10, bomb = 100, bio = 0, rad = 0, fire = 80, acid = 50) + flags_inv = HIDEJUMPSUIT + heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS + 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 + put_on_delay = 70 + resistance_flags = 0 + + +/obj/item/clothing/head/bomb_hood/security + icon_state = "bombsuitsec" + item_state = "bombsuitsec" + + +/obj/item/clothing/suit/bomb_suit/security + icon_state = "bombsuitsec" + item_state = "bombsuitsec" + allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs) + +/* + * Radiation protection + */ +/obj/item/clothing/head/radiation + name = "radiation hood" + icon_state = "rad" + desc = "A hood with radiation protective properties. The label reads, 'Made with lead. Please do not consume insulation.'" + flags = THICKMATERIAL + flags_inv = HIDEMASK|HIDEEARS|HIDEFACE|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 100, fire = 30, acid = 30) + strip_delay = 60 + put_on_delay = 60 + flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH + resistance_flags = 0 + +/obj/item/clothing/suit/radiation + name = "radiation suit" + desc = "A suit that protects against radiation. The label reads, 'Made with lead. Please do not consume insulation.'" + icon_state = "rad" + item_state = "rad_suit" + w_class = 4//bulky item + gas_transfer_coefficient = 0.90 + permeability_coefficient = 0.50 + flags = THICKMATERIAL + body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/device/geiger_counter) + slowdown = 1.5 + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 100, fire = 30, acid = 30) + strip_delay = 60 + put_on_delay = 60 + flags_inv = HIDEJUMPSUIT + resistance_flags = 0 diff --git a/code/modules/clothing/suits/wiz_robe.dm b/code/modules/clothing/suits/wiz_robe.dm new file mode 100644 index 0000000..57ed516 --- /dev/null +++ b/code/modules/clothing/suits/wiz_robe.dm @@ -0,0 +1,229 @@ +/obj/item/clothing/head/wizard + name = "wizard hat" + desc = "Strange-looking hat-wear that most certainly belongs to a real magic user." + icon_state = "wizard" + gas_transfer_coefficient = 0.01 // IT'S MAGICAL OKAY JEEZ +1 TO NOT DIE + permeability_coefficient = 0.01 + armor = list(melee = 30, bullet = 20, laser = 20, energy = 20, bomb = 20, bio = 20, rad = 20, fire = 100, acid = 100) + strip_delay = 50 + put_on_delay = 50 + resistance_flags = FIRE_PROOF | ACID_PROOF + dog_fashion = /datum/dog_fashion/head/blue_wizard + +/obj/item/clothing/head/wizard/red + name = "red wizard hat" + desc = "Strange-looking red hat-wear that most certainly belongs to a real magic user." + icon_state = "redwizard" + dog_fashion = /datum/dog_fashion/head/red_wizard + +/obj/item/clothing/head/wizard/yellow + name = "yellow wizard hat" + desc = "Strange-looking yellow hat-wear that most certainly belongs to a powerful magic user." + icon_state = "yellowwizard" + dog_fashion = null + +/obj/item/clothing/head/wizard/black + name = "black wizard hat" + desc = "Strange-looking black hat-wear that most certainly belongs to a real skeleton. Spooky." + icon_state = "blackwizard" + dog_fashion = null + +/obj/item/clothing/head/wizard/fake + name = "wizard hat" + desc = "It has WIZZARD written across it in sequins. Comes with a cool beard." + icon_state = "wizard-fake" + gas_transfer_coefficient = 1 + permeability_coefficient = 1 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) + resistance_flags = FLAMMABLE + dog_fashion = /datum/dog_fashion/head/blue_wizard + +/obj/item/clothing/head/wizard/marisa + name = "witch hat" + desc = "Strange-looking hat-wear. Makes you want to cast fireballs." + icon_state = "marisa" + dog_fashion = null + +/obj/item/clothing/head/wizard/magus + name = "\improper Magus helm" + desc = "A mysterious helmet that hums with an unearthly power." + icon_state = "magus" + item_state = "magus" + dog_fashion = null + +/obj/item/clothing/head/wizard/santa + name = "Santa's hat" + desc = "Ho ho ho. Merrry X-mas!" + icon_state = "santahat" + flags_inv = HIDEHAIR|HIDEFACIALHAIR + dog_fashion = null + +/obj/item/clothing/suit/wizrobe + name = "wizard robe" + desc = "A magnificent, gem-lined robe that seems to radiate power." + icon_state = "wizard" + item_state = "wizrobe" + gas_transfer_coefficient = 0.01 + permeability_coefficient = 0.01 + body_parts_covered = CHEST|GROIN|ARMS|LEGS + armor = list(melee = 30, bullet = 20, laser = 20, energy = 20, bomb = 20, bio = 20, rad = 20, fire = 100, acid = 100) + allowed = list(/obj/item/weapon/teleportation_scroll) + flags_inv = HIDEJUMPSUIT + strip_delay = 50 + put_on_delay = 50 + resistance_flags = FIRE_PROOF | ACID_PROOF + +/obj/item/clothing/suit/wizrobe/red + name = "red wizard robe" + desc = "A magnificent red gem-lined robe that seems to radiate power." + icon_state = "redwizard" + item_state = "redwizrobe" + +/obj/item/clothing/suit/wizrobe/yellow + name = "yellow wizard robe" + desc = "A magnificant yellow gem-lined robe that seems to radiate power." + icon_state = "yellowwizard" + item_state = "yellowwizrobe" + +/obj/item/clothing/suit/wizrobe/black + name = "black wizard robe" + desc = "An unnerving black gem-lined robe that reeks of death and decay." + icon_state = "blackwizard" + item_state = "blackwizrobe" + +/obj/item/clothing/suit/wizrobe/marisa + name = "witch robe" + desc = "Magic is all about the spell power, ZE!" + icon_state = "marisa" + item_state = "marisarobe" + +/obj/item/clothing/suit/wizrobe/magusblue + name = "\improper Magus robe" + desc = "A set of armored robes that seem to radiate a dark power." + icon_state = "magusblue" + item_state = "magusblue" + +/obj/item/clothing/suit/wizrobe/magusred + name = "\improper Magus robe" + desc = "A set of armored robes that seem to radiate a dark power." + icon_state = "magusred" + item_state = "magusred" + + +/obj/item/clothing/suit/wizrobe/santa + name = "Santa's suit" + desc = "Festive!" + icon_state = "santa" + item_state = "santa" + +/obj/item/clothing/suit/wizrobe/fake + name = "wizard robe" + desc = "A rather dull blue robe meant to mimick real wizard robes." + icon_state = "wizard-fake" + item_state = "wizrobe" + gas_transfer_coefficient = 1 + permeability_coefficient = 1 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) + resistance_flags = FLAMMABLE + +/obj/item/clothing/head/wizard/marisa/fake + name = "witch hat" + desc = "Strange-looking hat-wear, makes you want to cast fireballs." + icon_state = "marisa" + gas_transfer_coefficient = 1 + permeability_coefficient = 1 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) + resistance_flags = FLAMMABLE + +/obj/item/clothing/suit/wizrobe/marisa/fake + name = "witch robe" + desc = "Magic is all about the spell power, ZE!" + icon_state = "marisa" + item_state = "marisarobe" + gas_transfer_coefficient = 1 + permeability_coefficient = 1 + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) + resistance_flags = FLAMMABLE + +/obj/item/clothing/suit/wizrobe/paper + name = "papier-mch robe" + desc = "A robe held together by various bits of clear-tape and paste." + icon_state = "wizard-paper" + item_state = "wizrobe" + var/robe_charge = TRUE + actions_types = list(/datum/action/item_action/stickmen) + + +/obj/item/clothing/suit/wizrobe/paper/ui_action_click(mob/user, actiontype) + stickmen() + + +/obj/item/clothing/suit/wizrobe/paper/verb/stickmen() + set category = "Object" + set name = "Summon Stick Minions" + set src in usr + if(!isliving(usr)) + return + if(!robe_charge) + usr << "\The robe's internal magic supply is still recharging!" + return + + usr.say("Rise, my creation! Off your page into this realm!") + playsound(src.loc, 'sound/magic/Summon_Magic.ogg', 50, 1, 1) + var/mob/living/M = new /mob/living/simple_animal/hostile/stickman(get_turf(usr)) + var/list/factions = usr.faction + M.faction = factions + src.robe_charge = FALSE + sleep(30) + src.robe_charge = TRUE + usr << "\The robe hums, its internal magic supply restored." + + +//Shielded Armour + +/obj/item/clothing/suit/space/hardsuit/shielded/wizard + name = "battlemage armour" + desc = "Not all wizards are afraid of getting up close and personal." + icon_state = "battlemage" + item_state = "battlemage" + recharge_rate = 0 + current_charges = 15 + recharge_cooldown = INFINITY + shield_state = "shield-red" + shield_on = "shield-red" + min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT + max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/wizard + armor = list(melee = 30, bullet = 20, laser = 20, energy = 20, bomb = 20, bio = 20, rad = 20, fire = 100, acid = 100) + slowdown = 0 + resistance_flags = FIRE_PROOF | ACID_PROOF + +/obj/item/clothing/head/helmet/space/hardsuit/shielded/wizard + name = "battlemage helmet" + desc = "A suitably impressive helmet.." + icon_state = "battlemage" + item_state = "battlemage" + min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT + max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT + armor = list(melee = 30, bullet = 20, laser = 20, energy = 20, bomb = 20, bio = 20, rad = 20, fire = 100, acid = 100) + actions_types = null //No inbuilt light + resistance_flags = FIRE_PROOF | ACID_PROOF + +/obj/item/clothing/head/helmet/space/hardsuit/shielded/wizard/attack_self(mob/user) + return + +/obj/item/wizard_armour_charge + name = "battlemage shield charges" + desc = "A powerful rune that will increase the number of hits a suit of battlemage armour can take before failing.." + icon = 'icons/effects/effects.dmi' + icon_state = "electricity2" + +/obj/item/wizard_armour_charge/afterattack(obj/item/clothing/suit/space/hardsuit/shielded/wizard/W, mob/user) + ..() + if(!istype(W)) + user << "The rune can only be used on battlemage armour!" + return + W.current_charges += 8 + user <<"You charge \the [W]. It can now absorb [W.current_charges] hits." + qdel(src) + diff --git a/code/modules/clothing/under/color.dm b/code/modules/clothing/under/color.dm new file mode 100644 index 0000000..c26a98d --- /dev/null +++ b/code/modules/clothing/under/color.dm @@ -0,0 +1,156 @@ +/obj/item/clothing/under/color + desc = "A standard issue colored jumpsuit. Variety is the spice of life!" + +/obj/item/clothing/under/color/random/New() + ..() + var/obj/item/clothing/under/color/C = pick(subtypesof(/obj/item/clothing/under/color) - /obj/item/clothing/under/color/random) + name = initial(C.name) + icon_state = initial(C.icon_state) + item_state = initial(C.item_state) + item_color = initial(C.item_color) + +/obj/item/clothing/under/color/black + name = "black jumpsuit" + icon_state = "black" + item_state = "bl_suit" + item_color = "black" + resistance_flags = 0 + +/obj/item/clothing/under/color/grey + name = "grey jumpsuit" + desc = "A tasteful grey jumpsuit that reminds you of the good old days." + icon_state = "grey" + item_state = "gy_suit" + item_color = "grey" + +/obj/item/clothing/under/color/grey/glorf + name = "ancient jumpsuit" + desc = "A terribly ragged and frayed grey jumpsuit. It looks like it hasn't been washed in over a decade." + +/obj/item/clothing/under/color/grey/glorf/hit_reaction(mob/living/carbon/human/owner) + owner.forcesay(hit_appends) + return 0 + +/obj/item/clothing/under/color/blue + name = "blue jumpsuit" + icon_state = "blue" + item_state = "b_suit" + item_color = "blue" + +/obj/item/clothing/under/color/green + name = "green jumpsuit" + icon_state = "green" + item_state = "g_suit" + item_color = "green" + +/obj/item/clothing/under/color/orange + name = "orange jumpsuit" + desc = "Don't wear this near paranoid security officers." + icon_state = "orange" + item_state = "o_suit" + item_color = "orange" + +/obj/item/clothing/under/color/pink + name = "pink jumpsuit" + icon_state = "pink" + desc = "Just looking at this makes you feel fabulous." + item_state = "p_suit" + item_color = "pink" + +/obj/item/clothing/under/color/red + name = "red jumpsuit" + icon_state = "red" + item_state = "r_suit" + item_color = "red" + +/obj/item/clothing/under/color/white + name = "white jumpsuit" + icon_state = "white" + item_state = "w_suit" + item_color = "white" + +/obj/item/clothing/under/color/yellow + name = "yellow jumpsuit" + icon_state = "yellow" + item_state = "y_suit" + item_color = "yellow" + +/obj/item/clothing/under/color/lightblue + name = "lightblue jumpsuit" + icon_state = "lightblue" + item_state = "b_suit" + item_color = "lightblue" + +/obj/item/clothing/under/color/aqua + name = "aqua jumpsuit" + icon_state = "aqua" + item_state = "b_suit" + item_color = "aqua" + +/obj/item/clothing/under/color/purple + name = "purple jumpsuit" + icon_state = "purple" + item_state = "p_suit" + item_color = "purple" + +/obj/item/clothing/under/color/lightpurple + name = "lightpurple jumpsuit" + icon_state = "lightpurple" + item_state = "p_suit" + item_color = "lightpurple" + +/obj/item/clothing/under/color/lightgreen + name = "lightgreen jumpsuit" + icon_state = "lightgreen" + item_state = "g_suit" + item_color = "lightgreen" + +/obj/item/clothing/under/color/lightbrown + name = "lightbrown jumpsuit" + icon_state = "lightbrown" + item_state = "lb_suit" + item_color = "lightbrown" + +/obj/item/clothing/under/color/brown + name = "brown jumpsuit" + icon_state = "brown" + item_state = "lb_suit" + item_color = "brown" + +/obj/item/clothing/under/color/yellowgreen + name = "yellowgreen jumpsuit" + icon_state = "yellowgreen" + item_state = "y_suit" + item_color = "yellowgreen" + +/obj/item/clothing/under/color/darkblue + name = "darkblue jumpsuit" + icon_state = "darkblue" + item_state = "b_suit" + item_color = "darkblue" + +/obj/item/clothing/under/color/lightred + name = "lightred jumpsuit" + icon_state = "lightred" + item_state = "r_suit" + item_color = "lightred" + +/obj/item/clothing/under/color/darkred + name = "darkred jumpsuit" + icon_state = "darkred" + item_state = "r_suit" + item_color = "darkred" + +/obj/item/clothing/under/color/maroon + name = "maroon jumpsuit" + icon_state = "maroon" + item_state = "r_suit" + item_color = "maroon" + +/obj/item/clothing/under/color/rainbow + name = "rainbow jumpsuit" + desc = "A multi-colored jumpsuit!" + icon_state = "rainbow" + item_state = "rainbow" + item_color = "rainbow" + can_adjust = 0 \ No newline at end of file diff --git a/code/modules/clothing/under/jobs/civilian.dm b/code/modules/clothing/under/jobs/civilian.dm new file mode 100644 index 0000000..80219c4 --- /dev/null +++ b/code/modules/clothing/under/jobs/civilian.dm @@ -0,0 +1,185 @@ +//Alphabetical order of civilian jobs. + +/obj/item/clothing/under/rank/bartender + desc = "It looks like it could use some more flair." + name = "bartender's uniform" + icon_state = "barman" + item_state = "bar_suit" + item_color = "barman" + alt_covers_chest = 1 + + +/obj/item/clothing/under/rank/captain //Alright, technically not a 'civilian' but its better then giving a .dm file for a single define. + desc = "It's a blue jumpsuit with some gold markings denoting the rank of \"Captain\"." + name = "captain's jumpsuit" + icon_state = "captain" + item_state = "b_suit" + item_color = "captain" + + +/obj/item/clothing/under/rank/cargo + name = "quartermaster's jumpsuit" + desc = "It's a jumpsuit worn by the quartermaster. It's specially designed to prevent back injuries caused by pushing paper." + icon_state = "qm" + item_state = "lb_suit" + item_color = "qm" + + +/obj/item/clothing/under/rank/cargotech + name = "cargo technician's jumpsuit" + desc = "Shooooorts! They're comfy and easy to wear!" + icon_state = "cargotech" + item_state = "lb_suit" + item_color = "cargo" + body_parts_covered = CHEST|GROIN|ARMS + mutantrace_variation = MUTANTRACE_VARIATION + + +/obj/item/clothing/under/rank/chaplain + desc = "It's a black jumpsuit, often worn by religious folk." + name = "chaplain's jumpsuit" + icon_state = "chaplain" + item_state = "bl_suit" + item_color = "chapblack" + can_adjust = 0 + + +/obj/item/clothing/under/rank/chef + name = "cook's suit" + desc = "A suit which is given only to the most hardcore cooks in space." + icon_state = "chef" + item_color = "chef" + alt_covers_chest = 1 + + +/obj/item/clothing/under/rank/clown + name = "clown suit" + desc = "'HONK!'" + icon_state = "clown" + item_state = "clown" + item_color = "clown" + fitted = FEMALE_UNIFORM_TOP + can_adjust = 0 + +/obj/item/clothing/under/rank/clown/hit_reaction() + playsound(loc, 'sound/items/bikehorn.ogg', 50, 1, -1) + return 0 + +/obj/item/clothing/under/rank/head_of_personnel + desc = "It's a jumpsuit worn by someone who works in the position of \"Head of Personnel\"." + name = "head of personnel's jumpsuit" + icon_state = "hop" + item_state = "b_suit" + item_color = "hop" + can_adjust = 0 + + +/obj/item/clothing/under/rank/hydroponics + desc = "It's a jumpsuit designed to protect against minor plant-related hazards." + name = "botanist's jumpsuit" + icon_state = "hydroponics" + item_state = "g_suit" + item_color = "hydroponics" + permeability_coefficient = 0.50 + + +/obj/item/clothing/under/rank/janitor + desc = "It's the official uniform of the station's janitor. It has minor protection from biohazards." + name = "janitor's jumpsuit" + icon_state = "janitor" + item_color = "janitor" + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0, fire = 0, acid = 0) + + +/obj/item/clothing/under/lawyer + desc = "Slick threads." + name = "Lawyer suit" + can_adjust = 0 + + +/obj/item/clothing/under/lawyer/black + icon_state = "lawyer_black" + item_state = "lawyer_black" + item_color = "lawyer_black" + + +/obj/item/clothing/under/lawyer/female + icon_state = "black_suit_fem" + item_state = "black_suit_fem" + item_color = "black_suit_fem" + + +/obj/item/clothing/under/lawyer/red + icon_state = "lawyer_red" + item_state = "lawyer_red" + item_color = "lawyer_red" + + +/obj/item/clothing/under/lawyer/blue + icon_state = "lawyer_blue" + item_state = "lawyer_blue" + item_color = "lawyer_blue" + + +/obj/item/clothing/under/lawyer/bluesuit + name = "blue suit" + desc = "A classy suit and tie." + icon_state = "bluesuit" + item_state = "bluesuit" + item_color = "bluesuit" + can_adjust = 1 + alt_covers_chest = 1 + + +/obj/item/clothing/under/lawyer/purpsuit + name = "purple suit" + icon_state = "lawyer_purp" + item_state = "lawyer_purp" + item_color = "lawyer_purp" + fitted = NO_FEMALE_UNIFORM + can_adjust = 1 + alt_covers_chest = 1 + + +/obj/item/clothing/under/lawyer/blacksuit + name = "black suit" + desc = "A professional black suit. Nanotrasen Investigation Bureau approved!" + icon_state = "blacksuit" + item_state = "bar_suit" + item_color = "blacksuit" + can_adjust = 1 + alt_covers_chest = 1 + + +/obj/item/clothing/under/rank/librarian + name = "sensible suit" + desc = "It's very... sensible." + icon_state = "red_suit" + item_state = "red_suit" + item_color = "red_suit" + can_adjust = 0 + + +/obj/item/clothing/under/rank/mime + name = "mime's outfit" + desc = "It's not very colourful." + icon_state = "mime" + item_state = "mime" + item_color = "mime" + + +/obj/item/clothing/under/rank/miner + desc = "It's a snappy jumpsuit with a sturdy set of overalls. It is very dirty." + name = "shaft miner's jumpsuit" + icon_state = "miner" + item_state = "miner" + item_color = "miner" + + +/obj/item/clothing/under/rank/miner/lavaland + desc = "A green uniform for operating in hazardous environments." + name = "shaft miner's jumpsuit" + icon_state = "explorer" + item_state = "explorer" + item_color = "explorer" + can_adjust = 0 diff --git a/code/modules/clothing/under/jobs/engineering.dm b/code/modules/clothing/under/jobs/engineering.dm new file mode 100644 index 0000000..adad1ae --- /dev/null +++ b/code/modules/clothing/under/jobs/engineering.dm @@ -0,0 +1,34 @@ +//Contains: Engineering department jumpsuits +/obj/item/clothing/under/rank/chief_engineer + desc = "It's a high visibility jumpsuit given to those engineers insane enough to achieve the rank of \"Chief Engineer\". It has minor radiation shielding." + name = "chief engineer's jumpsuit" + icon_state = "chiefengineer" + item_state = "gy_suit" + item_color = "chief" + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 10, fire = 80, acid = 40) + resistance_flags = 0 + +/obj/item/clothing/under/rank/atmospheric_technician + desc = "It's a jumpsuit worn by atmospheric technicians." + name = "atmospheric technician's jumpsuit" + icon_state = "atmos" + item_state = "atmos_suit" + item_color = "atmos" + resistance_flags = 0 + +/obj/item/clothing/under/rank/engineer + desc = "It's an orange high visibility jumpsuit worn by engineers. It has minor radiation shielding." + name = "engineer's jumpsuit" + icon_state = "engine" + item_state = "engi_suit" + item_color = "engine" + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 10, fire = 60, acid = 20) + resistance_flags = 0 + +/obj/item/clothing/under/rank/roboticist + desc = "It's a slimming black with reinforced seams; great for industrial work." + name = "roboticist's jumpsuit" + icon_state = "robotics" + item_state = "robotics" + item_color = "robotics" + resistance_flags = 0 \ No newline at end of file diff --git a/code/modules/clothing/under/jobs/medsci.dm b/code/modules/clothing/under/jobs/medsci.dm new file mode 100644 index 0000000..875973d --- /dev/null +++ b/code/modules/clothing/under/jobs/medsci.dm @@ -0,0 +1,121 @@ +/* + * Science + */ +/obj/item/clothing/under/rank/research_director + desc = "It's a suit worn by those with the know-how to achieve the position of \"Research Director\". Its fabric provides minor protection from biological contaminants." + name = "research director's vest suit" + icon_state = "director" + item_state = "lb_suit" + item_color = "director" + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 10, bio = 10, rad = 0, fire = 0, acid = 35) + can_adjust = 0 + +/obj/item/clothing/under/rank/research_director/alt + desc = "Maybe you'll engineer your own half-man, half-pig creature some day. Its fabric provides minor protection from biological contaminants." + name = "research director's tan suit" + icon_state = "rdwhimsy" + item_state = "rdwhimsy" + item_color = "rdwhimsy" + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 10, bio = 10, rad = 0, fire = 0, acid = 0) + can_adjust = 1 + alt_covers_chest = 1 + +/obj/item/clothing/under/rank/research_director/turtleneck + desc = "A dark purple turtleneck and tan khakis, for a director with a superior sense of style." + name = "research director's turtleneck" + icon_state = "rdturtle" + item_state = "p_suit" + item_color = "rdturtle" + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 10, bio = 10, rad = 0, fire = 0, acid = 0) + can_adjust = 1 + alt_covers_chest = 1 + +/obj/item/clothing/under/rank/scientist + desc = "It's made of a special fiber that provides minor protection against biohazards. It has markings that denote the wearer as a scientist." + name = "scientist's jumpsuit" + icon_state = "toxins" + item_state = "w_suit" + item_color = "toxinswhite" + permeability_coefficient = 0.50 + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 10, bio = 0, rad = 0, fire = 0, acid = 0) + + +/obj/item/clothing/under/rank/chemist + desc = "It's made of a special fiber that gives special protection against biohazards. It has a chemist rank stripe on it." + name = "chemist's jumpsuit" + icon_state = "chemistry" + item_state = "w_suit" + item_color = "chemistrywhite" + permeability_coefficient = 0.50 + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0, fire = 50, acid = 65) + +/* + * Medical + */ +/obj/item/clothing/under/rank/chief_medical_officer + desc = "It's a jumpsuit worn by those with the experience to be \"Chief Medical Officer\". It provides minor biological protection." + name = "chief medical officer's jumpsuit" + icon_state = "cmo" + item_state = "w_suit" + item_color = "cmo" + permeability_coefficient = 0.50 + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0, fire = 0, acid = 0) + +/obj/item/clothing/under/rank/geneticist + desc = "It's made of a special fiber that gives special protection against biohazards. It has a genetics rank stripe on it." + name = "geneticist's jumpsuit" + icon_state = "genetics" + item_state = "w_suit" + item_color = "geneticswhite" + permeability_coefficient = 0.50 + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0, fire = 0, acid = 0) + +/obj/item/clothing/under/rank/virologist + desc = "It's made of a special fiber that gives special protection against biohazards. It has a virologist rank stripe on it." + name = "virologist's jumpsuit" + icon_state = "virology" + item_state = "w_suit" + item_color = "virologywhite" + permeability_coefficient = 0.50 + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0, fire = 0, acid = 0) + +/obj/item/clothing/under/rank/nursesuit + desc = "It's a jumpsuit commonly worn by nursing staff in the medical department." + name = "nurse's suit" + icon_state = "nursesuit" + item_state = "w_suit" + item_color = "nursesuit" + permeability_coefficient = 0.50 + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0, fire = 0, acid = 0) + fitted = NO_FEMALE_UNIFORM + can_adjust = 0 + +/obj/item/clothing/under/rank/medical + desc = "It's made of a special fiber that provides minor protection against biohazards. It has a cross on the chest denoting that the wearer is trained medical personnel." + name = "medical doctor's jumpsuit" + icon_state = "medical" + item_state = "w_suit" + item_color = "medical" + permeability_coefficient = 0.50 + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0, fire = 0, acid = 0) + +/obj/item/clothing/under/rank/medical/blue + name = "medical scrubs" + desc = "It's made of a special fiber that provides minor protection against biohazards. This one is in baby blue." + icon_state = "scrubsblue" + item_color = "scrubsblue" + can_adjust = 0 + +/obj/item/clothing/under/rank/medical/green + name = "medical scrubs" + desc = "It's made of a special fiber that provides minor protection against biohazards. This one is in dark green." + icon_state = "scrubsgreen" + item_color = "scrubsgreen" + can_adjust = 0 + +/obj/item/clothing/under/rank/medical/purple + name = "medical scrubs" + desc = "It's made of a special fiber that provides minor protection against biohazards. This one is in deep purple." + icon_state = "scrubspurple" + item_color = "scrubspurple" + can_adjust = 0 \ No newline at end of file diff --git a/code/modules/clothing/under/jobs/security.dm b/code/modules/clothing/under/jobs/security.dm new file mode 100644 index 0000000..85756bb --- /dev/null +++ b/code/modules/clothing/under/jobs/security.dm @@ -0,0 +1,124 @@ +/* + * Contains: + * Security + * Detective + * Navy uniforms + */ + +/* + * Security + */ + +/obj/item/clothing/under/rank/security + name = "security jumpsuit" + desc = "A tactical security jumpsuit for officers complete with nanotrasen belt buckle." + icon_state = "rsecurity" + item_state = "r_suit" + item_color = "rsecurity" + armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 30, acid = 30) + strip_delay = 50 + alt_covers_chest = 1 + +/obj/item/clothing/under/rank/security/grey + icon_state = "security" + item_state = "gy_suit" + item_color = "security" + +/obj/item/clothing/under/rank/warden + name = "security suit" + desc = "A formal security suit for officers complete with nanotrasen belt buckle." + icon_state = "rwarden" + item_state = "r_suit" + item_color = "rwarden" + armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 30, acid = 30) + strip_delay = 50 + alt_covers_chest = 1 + +/obj/item/clothing/under/rank/warden/grey + icon_state = "warden" + item_state = "gy_suit" + item_color = "warden" + +/* + * Detective + */ +/obj/item/clothing/under/rank/det + name = "hard-worn suit" + desc = "Someone who wears this means business." + icon_state = "detective" + item_state = "det" + item_color = "detective" + armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 30, acid = 30) + strip_delay = 50 + alt_covers_chest = 1 + +/obj/item/clothing/under/rank/det/grey + name = "noir suit" + desc = "A hard-boiled private investigator's grey suit, complete with tie clip." + icon_state = "greydet" + item_state = "greydet" + item_color = "greydet" + alt_covers_chest = 1 + +/* + * Head of Security + */ +/obj/item/clothing/under/rank/head_of_security + name = "head of security's jumpsuit" + desc = "A security jumpsuit decorated for those few with the dedication to achieve the position of Head of Security." + icon_state = "rhos" + item_state = "r_suit" + item_color = "rhos" + armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 50) + strip_delay = 60 + alt_covers_chest = 1 + +/obj/item/clothing/under/rank/head_of_security/grey + icon_state = "hos" + item_state = "gy_suit" + item_color = "hos" + +/obj/item/clothing/under/rank/head_of_security/alt + name = "head of security's turtleneck" + desc = "A stylish alternative to the normal head of security jumpsuit, complete with tactical pants." + icon_state = "hosalt" + item_state = "bl_suit" + item_color = "hosalt" + +/* + * Navy uniforms + */ + +/obj/item/clothing/under/rank/security/navyblue + name = "security officer's formal uniform" + desc = "The latest in fashionable security outfits." + icon_state = "officerblueclothes" + item_state = "officerblueclothes" + item_color = "officerblueclothes" + alt_covers_chest = 1 + +/obj/item/clothing/under/rank/head_of_security/navyblue + desc = "The insignia on this uniform tells you that this uniform belongs to the Head of Security." + name = "head of security's formal uniform" + icon_state = "hosblueclothes" + item_state = "hosblueclothes" + item_color = "hosblueclothes" + alt_covers_chest = 1 + +/obj/item/clothing/under/rank/warden/navyblue + desc = "The insignia on this uniform tells you that this uniform belongs to the Warden." + name = "warden's formal uniform" + icon_state = "wardenblueclothes" + item_state = "wardenblueclothes" + item_color = "wardenblueclothes" + alt_covers_chest = 1 + +/* + *Blueshirt + */ + +/obj/item/clothing/under/rank/security/blueshirt + desc = "I'm a little busy right now, Calhoun." + icon_state = "blueshift" + item_state = "blueshift" + item_color = "blueshift" \ No newline at end of file diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm new file mode 100644 index 0000000..72176ec --- /dev/null +++ b/code/modules/clothing/under/miscellaneous.dm @@ -0,0 +1,602 @@ +/obj/item/clothing/under/pj/red + name = "red pj's" + desc = "Sleepwear." + icon_state = "red_pyjamas" + item_color = "red_pyjamas" + item_state = "w_suit" + can_adjust = 0 + +/obj/item/clothing/under/pj/blue + name = "blue pj's" + desc = "Sleepwear." + icon_state = "blue_pyjamas" + item_color = "blue_pyjamas" + item_state = "w_suit" + can_adjust = 0 + +/obj/item/clothing/under/patriotsuit + name = "Patriotic Suit" + desc = "Motorcycle not included." + icon_state = "ek" + item_state = "ek" + item_color = "ek" + can_adjust = 0 + +/obj/item/clothing/under/sl_suit + desc = "It's a very amish looking suit." + name = "amish suit" + icon_state = "sl_suit" + item_color = "sl_suit" + can_adjust = 0 + +/obj/item/clothing/under/roman + name = "roman armor" + desc = "Ancient Roman armor. Made of metallic and leather straps." + icon_state = "roman" + item_color = "roman" + item_state = "armor" + can_adjust = 0 + strip_delay = 100 + resistance_flags = 0 + +/obj/item/clothing/under/waiter + name = "waiter's outfit" + desc = "It's a very smart uniform with a special pocket for tip." + icon_state = "waiter" + item_state = "waiter" + item_color = "waiter" + can_adjust = 0 + +/obj/item/clothing/under/rank/prisoner + name = "prison jumpsuit" + desc = "It's standardised Nanotrasen prisoner-wear. Its suit sensors are stuck in the \"Fully On\" position." + icon_state = "prisoner" + item_state = "o_suit" + item_color = "prisoner" + has_sensor = 2 + sensor_mode = 3 + random_sensor = 0 + +/obj/item/clothing/under/rank/mailman + name = "mailman's jumpsuit" + desc = "'Special delivery!'" + icon_state = "mailman" + item_state = "b_suit" + item_color = "mailman" + +/obj/item/clothing/under/rank/psyche + name = "psychedelic jumpsuit" + desc = "Groovy!" + icon_state = "psyche" + item_state = "p_suit" + item_color = "psyche" + +/obj/item/clothing/under/rank/clown/sexy + name = "sexy-clown suit" + desc = "It makes you look HONKable!" + icon_state = "sexyclown" + item_state = "sexyclown" + item_color = "sexyclown" + can_adjust = 0 + +/obj/item/clothing/under/jabroni + name = "Jabroni Outfit" + desc = "The leather club is two sectors down." + icon_state = "darkholme" + item_state = "darkholme" + item_color = "darkholme" + can_adjust = 0 + +/obj/item/clothing/under/rank/vice + name = "vice officer's jumpsuit" + desc = "It's the standard issue pretty-boy outfit, as seen on Holo-Vision." + icon_state = "vice" + item_state = "gy_suit" + item_color = "vice" + can_adjust = 0 + +/obj/item/clothing/under/rank/centcom_officer + desc = "It's a jumpsuit worn by Centcom Officers." + name = "\improper Centcom officer's jumpsuit" + icon_state = "officer" + item_state = "g_suit" + item_color = "officer" + alt_covers_chest = 1 + +/obj/item/clothing/under/rank/centcom_commander + desc = "It's a jumpsuit worn by Centcom's highest-tier Commanders." + name = "\improper Centcom officer's jumpsuit" + icon_state = "centcom" + item_state = "dg_suit" + item_color = "centcom" + +/obj/item/clothing/under/space + name = "\improper NASA jumpsuit" + desc = "It has a NASA logo on it and is made of space-proofed materials." + icon_state = "black" + item_state = "bl_suit" + item_color = "black" + w_class = 4//bulky item + gas_transfer_coefficient = 0.01 + permeability_coefficient = 0.02 + body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS + cold_protection = CHEST | GROIN | LEGS | ARMS //Needs gloves and shoes with cold protection to be fully protected. + min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT + heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS + max_heat_protection_temperature = SPACE_SUIT_MAX_TEMP_PROTECT + can_adjust = 0 + resistance_flags = 0 + +/obj/item/clothing/under/acj + name = "administrative cybernetic jumpsuit" + icon_state = "syndicate" + item_state = "bl_suit" + item_color = "syndicate" + desc = "A cybernetically enhanced jumpsuit used for administrative duties." + gas_transfer_coefficient = 0.01 + permeability_coefficient = 0.01 + body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS + armor = list(melee = 100, bullet = 100, laser = 100,energy = 100, bomb = 100, bio = 100, rad = 100, fire = 100, acid = 100) + cold_protection = CHEST | GROIN | LEGS | FEET | ARMS | HANDS + min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT + heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS + max_heat_protection_temperature = SPACE_SUIT_MAX_TEMP_PROTECT + can_adjust = 0 + resistance_flags = FIRE_PROOF | ACID_PROOF + +/obj/item/clothing/under/owl + name = "owl uniform" + desc = "A soft brown jumpsuit made of synthetic feathers and strong conviction." + icon_state = "owl" + item_color = "owl" + can_adjust = 0 + +/obj/item/clothing/under/griffin + name = "griffon uniform" + desc = "A soft brown jumpsuit with a white feather collar made of synthetic feathers and a lust for mayhem." + icon_state = "griffin" + item_color = "griffin" + can_adjust = 0 + +/obj/item/clothing/under/cloud + name = "cloud" + desc = "cloud" + icon_state = "cloud" + item_color = "cloud" + can_adjust = 0 + +/obj/item/clothing/under/gimmick/rank/captain/suit + name = "captain's suit" + desc = "A green suit and yellow necktie. Exemplifies authority." + icon_state = "green_suit" + item_state = "dg_suit" + item_color = "green_suit" + can_adjust = 0 + +/obj/item/clothing/under/gimmick/rank/head_of_personnel/suit + name = "head of personnel's suit" + desc = "A teal suit and yellow necktie. An authoritative yet tacky ensemble." + icon_state = "teal_suit" + item_state = "g_suit" + item_color = "teal_suit" + can_adjust = 0 + +/obj/item/clothing/under/suit_jacket + name = "black suit" + desc = "A black suit and red tie. Very formal." + icon_state = "black_suit" + item_state = "bl_suit" + item_color = "black_suit" + can_adjust = 0 + +/obj/item/clothing/under/suit_jacket/really_black + name = "executive suit" + desc = "A formal black suit and red tie, intended for the station's finest." + icon_state = "really_black_suit" + item_state = "bl_suit" + item_color = "black_suit" + +/obj/item/clothing/under/suit_jacket/female + name = "executive suit" + desc = "A formal trouser suit for women, intended for the station's finest." + icon_state = "black_suit_fem" + item_state = "black_suit_fem" + item_color = "black_suit_fem" + +/obj/item/clothing/under/suit_jacket/red + name = "red suit" + desc = "A red suit and blue tie. Somewhat formal." + icon_state = "red_suit" + item_state = "r_suit" + item_color = "red_suit" + +/obj/item/clothing/under/suit_jacket/charcoal + name = "charcoal suit" + desc = "A charcoal suit and red tie. Very professional." + icon_state = "charcoal_suit" + item_state = "charcoal_suit" + item_color = "charcoal_suit" + +/obj/item/clothing/under/suit_jacket/navy + name = "navy suit" + desc = "A navy suit and red tie, intended for the station's finest." + icon_state = "navy_suit" + item_state = "navy_suit" + item_color = "navy_suit" + +/obj/item/clothing/under/suit_jacket/burgundy + name = "burgundy suit" + desc = "A burgundy suit and black tie. Somewhat formal." + icon_state = "burgundy_suit" + item_state = "burgundy_suit" + item_color = "burgundy_suit" + +/obj/item/clothing/under/suit_jacket/checkered + name = "checkered suit" + desc = "That's a very nice suit you have there. Shame if something were to happen to it, eh?" + icon_state = "checkered_suit" + item_state = "checkered_suit" + item_color = "checkered_suit" + +/obj/item/clothing/under/suit_jacket/tan + name = "tan suit" + desc = "A tan suit with a yellow tie. Smart, but casual." + icon_state = "tan_suit" + item_state = "tan_suit" + item_color = "tan_suit" + +/obj/item/clothing/under/suit_jacket/white + name = "white suit" + desc = "A white suit and jacket with a blue shirt. You wanna play rough? OKAY!." + icon_state = "white_suit" + item_state = "white_suit" + item_color = "white_suit" + +/obj/item/clothing/under/burial + name = "burial garments" + desc = "Traditional burial garments from the early 22nd century." + icon_state = "burial" + item_state = "burial" + item_color = "burial" + +/obj/item/clothing/under/skirt/black + name = "black skirt" + desc = "A black skirt, very fancy!" + icon_state = "blackskirt" + item_color = "blackskirt" + body_parts_covered = CHEST|GROIN|ARMS + fitted = FEMALE_UNIFORM_TOP + can_adjust = 0 + +/obj/item/clothing/under/skirt/blue + name = "blue skirt" + desc = "A blue, casual skirt." + icon_state = "blueskirt" + item_color = "blueskirt" + item_state = "b_suit" + body_parts_covered = CHEST|GROIN|ARMS + fitted = FEMALE_UNIFORM_TOP + can_adjust = 0 + +/obj/item/clothing/under/skirt/red + name = "red skirt" + desc = "A red, casual skirt." + icon_state = "redskirt" + item_color = "redskirt" + item_state = "r_suit" + body_parts_covered = CHEST|GROIN|ARMS + fitted = FEMALE_UNIFORM_TOP + can_adjust = 0 + +/obj/item/clothing/under/skirt/purple + name = "purple skirt" + desc = "A purple, casual skirt." + icon_state = "purpleskirt" + item_color = "purpleskirt" + item_state = "p_suit" + body_parts_covered = CHEST|GROIN|ARMS + fitted = FEMALE_UNIFORM_TOP + can_adjust = 0 + + +/obj/item/clothing/under/schoolgirl + name = "blue schoolgirl uniform" + desc = "It's just like one of my Japanese animes!" + icon_state = "schoolgirl" + item_state = "schoolgirl" + item_color = "schoolgirl" + body_parts_covered = CHEST|GROIN|ARMS + fitted = FEMALE_UNIFORM_TOP + can_adjust = 0 + +/obj/item/clothing/under/schoolgirl/red + name = "red schoolgirl uniform" + icon_state = "schoolgirlred" + item_state = "schoolgirlred" + item_color = "schoolgirlred" + +/obj/item/clothing/under/schoolgirl/green + name = "green schoolgirl uniform" + icon_state = "schoolgirlgreen" + item_state = "schoolgirlgreen" + item_color = "schoolgirlgreen" + +/obj/item/clothing/under/schoolgirl/orange + name = "orange schoolgirl uniform" + icon_state = "schoolgirlorange" + item_state = "schoolgirlorange" + item_color = "schoolgirlorange" + +/obj/item/clothing/under/overalls + name = "laborer's overalls" + desc = "A set of durable overalls for getting the job done." + icon_state = "overalls" + item_state = "lb_suit" + item_color = "overalls" + can_adjust = 0 + +/obj/item/clothing/under/pirate + name = "pirate outfit" + desc = "Yarr." + icon_state = "pirate" + item_state = "pirate" + item_color = "pirate" + can_adjust = 0 + +/obj/item/clothing/under/soviet + name = "soviet uniform" + desc = "For the Motherland!" + icon_state = "soviet" + item_state = "soviet" + item_color = "soviet" + can_adjust = 0 + +/obj/item/clothing/under/redcoat + name = "redcoat uniform" + desc = "Looks old." + icon_state = "redcoat" + item_state = "redcoat" + item_color = "redcoat" + can_adjust = 0 + +/obj/item/clothing/under/kilt + name = "kilt" + desc = "Includes shoes and plaid." + icon_state = "kilt" + item_state = "kilt" + item_color = "kilt" + body_parts_covered = CHEST|GROIN|FEET + fitted = FEMALE_UNIFORM_TOP + can_adjust = 0 + +/obj/item/clothing/under/kilt/highlander + desc = "You're the only one worthy of this kilt." + flags = NODROP + +/obj/item/clothing/under/sexymime + name = "sexy mime outfit" + desc = "The only time when you DON'T enjoy looking at someone's rack." + icon_state = "sexymime" + item_state = "sexymime" + item_color = "sexymime" + body_parts_covered = CHEST|GROIN|LEGS + fitted = FEMALE_UNIFORM_TOP + can_adjust = 0 + +/obj/item/clothing/under/gladiator + name = "gladiator uniform" + desc = "Are you not entertained? Is that not why you are here?" + icon_state = "gladiator" + item_state = "gladiator" + item_color = "gladiator" + body_parts_covered = CHEST|GROIN|ARMS + fitted = NO_FEMALE_UNIFORM + can_adjust = 0 + resistance_flags = 0 + +/obj/item/clothing/under/sundress + name = "sundress" + desc = "Makes you want to frolic in a field of daisies." + icon_state = "sundress" + item_state = "sundress" + item_color = "sundress" + body_parts_covered = CHEST|GROIN + fitted = FEMALE_UNIFORM_TOP + can_adjust = 0 + +/obj/item/clothing/under/captainparade + name = "captain's parade uniform" + desc = "A captain's luxury-wear, for special occasions." + icon_state = "captain_parade" + item_state = "by_suit" + item_color = "captain_parade" + can_adjust = 0 + +/obj/item/clothing/under/hosparademale + name = "head of security's parade uniform" + desc = "A male head of security's luxury-wear, for special occasions." + icon_state = "hos_parade_male" + item_state = "r_suit" + item_color = "hos_parade_male" + can_adjust = 0 + +/obj/item/clothing/under/hosparadefem + name = "head of security's parade uniform" + desc = "A female head of security's luxury-wear, for special occasions." + icon_state = "hos_parade_fem" + item_state = "r_suit" + item_color = "hos_parade_fem" + fitted = FEMALE_UNIFORM_TOP + can_adjust = 0 + +/obj/item/clothing/under/assistantformal + name = "assistant's formal uniform" + desc = "An assistant's formal-wear. Why an assistant needs formal-wear is still unknown." + icon_state = "assistant_formal" + item_state = "gy_suit" + item_color = "assistant_formal" + can_adjust = 0 + +/obj/item/clothing/under/blacktango + name = "black tango dress" + desc = "Filled with Latin fire." + icon_state = "black_tango" + item_state = "wcoat" + item_color = "black_tango" + fitted = FEMALE_UNIFORM_TOP + can_adjust = 0 + +/obj/item/clothing/under/stripeddress + name = "striped dress" + desc = "Fashion in space." + icon_state = "striped_dress" + item_state = "stripeddress" + item_color = "striped_dress" + fitted = FEMALE_UNIFORM_FULL + can_adjust = 0 + +/obj/item/clothing/under/sailordress + name = "sailor dress" + desc = "Formal wear for a leading lady." + icon_state = "sailor_dress" + item_state = "sailordress" + item_color = "sailor_dress" + fitted = FEMALE_UNIFORM_TOP + can_adjust = 0 + +/obj/item/clothing/under/redeveninggown + name = "red evening gown" + desc = "Fancy dress for space bar singers." + icon_state = "red_evening_gown" + item_state = "redeveninggown" + item_color = "red_evening_gown" + fitted = FEMALE_UNIFORM_TOP + can_adjust = 0 + +/obj/item/clothing/under/maid + name = "maid costume" + desc = "Maid in China." + icon_state = "maid" + item_state = "maid" + item_color = "maid" + body_parts_covered = CHEST|GROIN + fitted = FEMALE_UNIFORM_TOP + can_adjust = 0 + +/obj/item/clothing/under/janimaid + name = "maid uniform" + desc = "A simple maid uniform for housekeeping." + icon_state = "janimaid" + item_state = "janimaid" + item_color = "janimaid" + body_parts_covered = CHEST|GROIN + fitted = FEMALE_UNIFORM_TOP + can_adjust = 0 + +/obj/item/clothing/under/plaid_skirt + name = "red plaid skirt" + desc = "A preppy red skirt with a white blouse." + icon_state = "plaid_red" + item_state = "plaid_red" + item_color = "plaid_red" + fitted = FEMALE_UNIFORM_TOP + can_adjust = 1 + alt_covers_chest = 1 + +/obj/item/clothing/under/plaid_skirt/blue + name = "blue plaid skirt" + desc = "A preppy blue skirt with a white blouse." + icon_state = "plaid_blue" + item_state = "plaid_blue" + item_color = "plaid_blue" + fitted = FEMALE_UNIFORM_TOP + can_adjust = 1 + alt_covers_chest = 1 + +/obj/item/clothing/under/plaid_skirt/purple + name = "purple plaid skirt" + desc = "A preppy purple skirt with a white blouse." + icon_state = "plaid_purple" + item_state = "plaid_purple" + item_color = "plaid_purple" + fitted = FEMALE_UNIFORM_TOP + can_adjust = 1 + alt_covers_chest = 1 + +/obj/item/clothing/under/plaid_skirt/green + name = "green plaid skirt" + desc = "A preppy green skirt with a white blouse." + icon_state = "plaid_green" + item_state = "plaid_green" + item_color = "plaid_green" + fitted = FEMALE_UNIFORM_TOP + can_adjust = 1 + alt_covers_chest = 1 + +/obj/item/clothing/under/jester + name = "jester suit" + desc = "A jolly dress, well suited to entertain your master, nuncle." + icon_state = "jester" + item_color = "jester" + can_adjust = 0 + +/obj/item/clothing/under/plasmaman + name = "Plasma-man Jumpsuit" + desc = "A specially designed suit that allows Plasma based life forms to exist in an oxygenated environment." + icon_state = "plasmaman" + item_state = "plasmaman" + item_color = "plasmaman" + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 0, fire = 95, acid = 95) + body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS + can_adjust = 0 + strip_delay = 80 + var/next_extinguish = 0 + var/extinguish_cooldown = 100 + var/extinguishes_left = 5 + + +/obj/item/clothing/under/plasmaman/examine(mob/user) + ..() + user << "There are [extinguishes_left] extinguisher canisters left in this suit." + + +/obj/item/clothing/under/plasmaman/proc/Extinguish(mob/living/carbon/human/H) + if(!istype(H)) + return + + if(H.on_fire) + if(extinguishes_left) + if(next_extinguish > world.time) + return + next_extinguish = world.time + extinguish_cooldown + extinguishes_left-- + H.visible_message("[H]'s suit automatically extinguishes them!","Your suit automatically extinguishes you.") + H.ExtinguishMob() + PoolOrNew(/obj/effect/particle_effect/water, get_turf(H)) + return 0 + +/obj/item/clothing/under/plasmaman/attackby(obj/item/E, mob/user, params) + if (istype(E, /obj/item/device/extinguisher_refill)) + if (extinguishes_left == 5) + user << "The inbuilt extinguisher is full." + return + else + extinguishes_left = 5 + user << "You refill the suits inbuilt extinguisher, using up the refill pack." + qdel(E) + return + return + return + +/obj/item/device/extinguisher_refill + name = "Plasma-man jumpsuit refill pack" + desc = "A compressed water pack used to refill plasma-man jumpsuit auto-extinguishers." + icon_state = "plasmarefill" + origin_tech = "materials=2;plasmatech=3;biotech=1" + +/obj/item/clothing/under/rank/security/navyblue/russian + name = "russian officer's uniform" + desc = "The latest in fashionable russian outfits." + icon_state = "hostanclothes" + item_state = "hostanclothes" + item_color = "hostanclothes" diff --git a/code/modules/clothing/under/pants.dm b/code/modules/clothing/under/pants.dm new file mode 100644 index 0000000..19c32ec --- /dev/null +++ b/code/modules/clothing/under/pants.dm @@ -0,0 +1,77 @@ +/obj/item/clothing/under/pants + gender = PLURAL + body_parts_covered = GROIN|LEGS + fitted = NO_FEMALE_UNIFORM + can_adjust = 0 + +/obj/item/clothing/under/pants/classicjeans + name = "classic jeans" + desc = "You feel cooler already." + icon_state = "jeansclassic" + item_color = "jeansclassic" + +/obj/item/clothing/under/pants/mustangjeans + name = "Must Hang jeans" + desc = "Made in the finest space jeans factory this side of Alpha Centauri." + icon_state = "jeansmustang" + item_color = "jeansmustang" + +/obj/item/clothing/under/pants/blackjeans + name = "black jeans" + desc = "Only for those who can pull it off." + icon_state = "jeansblack" + item_color = "jeansblack" + +/obj/item/clothing/under/pants/youngfolksjeans + name = "Young Folks jeans" + desc = "For those tired of boring old jeans. Relive the passion of your youth!" + icon_state = "jeansyoungfolks" + item_color = "jeansyoungfolks" + +/obj/item/clothing/under/pants/white + name = "white pants" + desc = "Plain white pants. Boring." + icon_state = "whitepants" + item_color = "whitepants" + +/obj/item/clothing/under/pants/red + name = "red pants" + desc = "Bright red pants. Overflowing with personality." + icon_state = "redpants" + item_color = "redpants" + +/obj/item/clothing/under/pants/black + name = "black pants" + desc = "These pants are dark, like your soul." + icon_state = "blackpants" + item_color = "blackpants" + +/obj/item/clothing/under/pants/tan + name = "tan pants" + desc = "Some tan pants. You look like a white collar worker with these on." + icon_state = "tanpants" + item_color = "tanpants" + +/obj/item/clothing/under/pants/track + name = "track pants" + desc = "A pair of track pants, for the athletic." + icon_state = "trackpants" + item_color = "trackpants" + +/obj/item/clothing/under/pants/jeans + name = "jeans" + desc = "A nondescript pair of tough blue jeans." + icon_state = "jeans" + item_color = "jeans" + +/obj/item/clothing/under/pants/khaki + name = "khaki pants" + desc = "A pair of dust beige khaki pants." + icon_state = "khaki" + item_color = "khaki" + +/obj/item/clothing/under/pants/camo + name = "camo pants" + desc = "A pair of woodland camouflage pants. Probably not the best choice for a space station." + icon_state = "camopants" + item_color = "camopants" diff --git a/code/modules/clothing/under/shorts.dm b/code/modules/clothing/under/shorts.dm new file mode 100644 index 0000000..119527e --- /dev/null +++ b/code/modules/clothing/under/shorts.dm @@ -0,0 +1,32 @@ +/obj/item/clothing/under/shorts + name = "athletic shorts" + desc = "95% Polyester, 5% Spandex!" + gender = PLURAL + body_parts_covered = GROIN + fitted = NO_FEMALE_UNIFORM + mutantrace_variation = MUTANTRACE_VARIATION + can_adjust = 0 + +/obj/item/clothing/under/shorts/red + icon_state = "redshorts" + item_color = "redshorts" + +/obj/item/clothing/under/shorts/green + icon_state = "greenshorts" + item_color = "greenshorts" + +/obj/item/clothing/under/shorts/blue + icon_state = "blueshorts" + item_color = "blueshorts" + +/obj/item/clothing/under/shorts/black + icon_state = "blackshorts" + item_color = "blackshorts" + +/obj/item/clothing/under/shorts/grey + icon_state = "greyshorts" + item_color = "greyshorts" + +/obj/item/clothing/under/shorts/purple + icon_state = "purpleshorts" + item_color = "purpleshorts" \ No newline at end of file diff --git a/code/modules/clothing/under/syndicate.dm b/code/modules/clothing/under/syndicate.dm new file mode 100644 index 0000000..83e7e59 --- /dev/null +++ b/code/modules/clothing/under/syndicate.dm @@ -0,0 +1,40 @@ +/obj/item/clothing/under/syndicate + name = "tactical turtleneck" + desc = "A non-descript and slightly suspicious looking turtleneck with digital camouflage cargo pants." + icon_state = "syndicate" + item_state = "bl_suit" + item_color = "syndicate" + has_sensor = 0 + armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 40) + alt_covers_chest = 1 + +/obj/item/clothing/under/syndicate/tacticool + name = "tacticool turtleneck" + desc = "Just looking at it makes you want to buy an SKS, go into the woods, and -operate-." + icon_state = "tactifool" + item_state = "bl_suit" + item_color = "tactifool" + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 40) + +/obj/item/clothing/under/syndicate/sniper + name = "Tactical turtleneck suit" + desc = "A double seamed tactical turtleneck disguised as a civillian grade silk suit. Intended for the most formal operator. The collar is really sharp" + icon_state = "really_black_suit" + item_state = "bl_suit" + item_color = "black_suit" + +/obj/item/clothing/under/syndicate/camo + name = "camouflage fatigues" + desc = "A green military camouflage uniform." + icon_state = "camogreen" + item_state = "g_suit" + item_color = "camogreen" + +/obj/item/clothing/under/syndicate/soviet + name = "Ratnik 5 tracksuit" + desc = "Badly translated labels tell you to clean this in Vodka. Great for squatting in." + icon_state = "trackpants" + item_color = "trackpants" + can_adjust = 0 + armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) + resistance_flags = 0 \ No newline at end of file diff --git a/code/modules/clothing/under/ties.dm b/code/modules/clothing/under/ties.dm new file mode 100644 index 0000000..659ef5b --- /dev/null +++ b/code/modules/clothing/under/ties.dm @@ -0,0 +1,409 @@ +/obj/item/clothing/tie //Ties moved to neck slot items, but as there are still things like medals and armbands, this accessory system is being kept as-is + name = "tie" + desc = "A neosilk clip-on tie." + icon = 'icons/obj/clothing/ties.dmi' + icon_state = "bluetie" + item_state = "" //no inhands + item_color = "bluetie" + slot_flags = 0 + w_class = 2 + var/minimize_when_attached = TRUE // TRUE if shown as a small icon in corner, FALSE if overlayed + +/obj/item/clothing/tie/proc/attach(obj/item/clothing/under/U, user) + if(pockets) // Attach storage to jumpsuit + if(U.pockets) // storage items conflict + return 0 + + pockets.loc = U + U.pockets = pockets + + U.hastie = src + loc = U + layer = FLOAT_LAYER + plane = FLOAT_PLANE + if(minimize_when_attached) + transform *= 0.5 //halve the size so it doesn't overpower the under + pixel_x += 8 + pixel_y -= 8 + U.add_overlay(src) + + for(var/armor_type in armor) + U.armor[armor_type] += armor[armor_type] + + return 1 + + +/obj/item/clothing/tie/proc/detach(obj/item/clothing/under/U, user) + if(pockets && pockets == U.pockets) + pockets.loc = src + U.pockets = null + + for(var/armor_type in armor) + U.armor[armor_type] -= armor[armor_type] + + if(minimize_when_attached) + transform *= 2 + pixel_x -= 8 + pixel_y += 8 + layer = initial(layer) + plane = initial(plane) + U.cut_overlays() + U.hastie = null + +/obj/item/clothing/tie/proc/on_uniform_equip(obj/item/clothing/under/U) + return + +/obj/item/clothing/tie/proc/on_uniform_dropped(obj/item/clothing/under/U) + return +/* +/obj/item/clothing/tie/blue + name = "blue tie" + icon_state = "bluetie" + item_color = "bluetie" + +/obj/item/clothing/tie/red + name = "red tie" + icon_state = "redtie" + item_color = "redtie" + +/obj/item/clothing/tie/black + name = "black tie" + icon_state = "blacktie" + item_color = "blacktie" + +/obj/item/clothing/tie/horrible + name = "horrible tie" + desc = "A neosilk clip-on tie. This one is disgusting." + icon_state = "horribletie" + item_color = "horribletie" +*/ +/obj/item/clothing/tie/waistcoat + name = "waistcoat" + desc = "For some classy, murderous fun." + icon_state = "waistcoat" + item_state = "waistcoat" + item_color = "waistcoat" + minimize_when_attached = FALSE +/* +/obj/item/clothing/tie/stethoscope + name = "stethoscope" + desc = "An outdated medical apparatus for listening to the sounds of the human body. It also makes you look like you know what you're doing." + icon_state = "stethoscope" + item_color = "stethoscope" + +/obj/item/clothing/tie/stethoscope/attack(mob/living/carbon/human/M, mob/living/user) + if(ishuman(M) && isliving(user)) + if(user.a_intent == "help") + var/body_part = parse_zone(user.zone_selected) + if(body_part) + var/their = "their" + switch(M.gender) + if(MALE) + their = "his" + if(FEMALE) + their = "her" + + var/sound = "pulse" + var/sound_strength + + if(M.stat == DEAD || (M.status_flags&FAKEDEATH)) + sound_strength = "cannot hear" + sound = "anything" + else + sound_strength = "hear a weak" + switch(body_part) + if("chest") + if(M.oxyloss < 50) + sound_strength = "hear a healthy" + sound = "pulse and respiration" + if("eyes","mouth") + sound_strength = "cannot hear" + sound = "anything" + else + sound_strength = "hear a weak" + + user.visible_message("[user] places [src] against [M]'s [body_part] and listens attentively.", "You place [src] against [their] [body_part]. You [sound_strength] [sound].") + return + return ..(M,user) +*/ +////////// +//Medals// +////////// + +/obj/item/clothing/tie/medal + name = "bronze medal" + desc = "A bronze medal." + icon_state = "bronze" + item_color = "bronze" + materials = list(MAT_METAL=1000) + resistance_flags = FIRE_PROOF + +//Pinning medals on people +/obj/item/clothing/tie/medal/attack(mob/living/carbon/human/M, mob/living/user) + if(ishuman(M) && (user.a_intent == "help")) + + if(M.wear_suit) + if((M.wear_suit.flags_inv & HIDEJUMPSUIT)) //Check if the jumpsuit is covered + user << "Medals can only be pinned on jumpsuits." + return + + if(M.w_uniform) + var/obj/item/clothing/under/U = M.w_uniform + var/delay = 20 + if(user == M) + delay = 0 + else + user.visible_message("[user] is trying to pin [src] on [M]'s chest.", \ + "You try to pin [src] on [M]'s chest.") + if(do_after(user, delay, target = M)) + if(U.attachTie(src, user, 0)) //Attach it, do not notify the user of the attachment + if(user == M) + user << "You attach [src] to [U]." + else + user.visible_message("[user] pins \the [src] on [M]'s chest.", \ + "You pin \the [src] on [M]'s chest.") + + else user << "Medals can only be pinned on jumpsuits!" + else ..() + +/obj/item/clothing/tie/medal/conduct + name = "distinguished conduct medal" + desc = "A bronze medal awarded for distinguished conduct. Whilst a great honor, this is the most basic award given by Nanotrasen. It is often awarded by a captain to a member of his crew." + +/obj/item/clothing/tie/medal/bronze_heart + name = "bronze heart medal" + desc = "A bronze heart-shaped medal awarded for sacrifice. It is often awarded posthumously or for severe injury in the line of duty." + icon_state = "bronze_heart" + +/obj/item/clothing/tie/medal/nobel_science + name = "nobel sciences award" + desc = "A bronze medal which represents significant contributions to the field of science or engineering." + +/obj/item/clothing/tie/medal/silver + name = "silver medal" + desc = "A silver medal." + icon_state = "silver" + item_color = "silver" + materials = list(MAT_SILVER=1000) + +/obj/item/clothing/tie/medal/silver/valor + name = "medal of valor" + desc = "A silver medal awarded for acts of exceptional valor." + +/obj/item/clothing/tie/medal/silver/security + name = "robust security award" + desc = "An award for distinguished combat and sacrifice in defence of Nanotrasen's commercial interests. Often awarded to security staff." + +/obj/item/clothing/tie/medal/gold + name = "gold medal" + desc = "A prestigious golden medal." + icon_state = "gold" + item_color = "gold" + materials = list(MAT_GOLD=1000) + +/obj/item/clothing/tie/medal/gold/captain + name = "medal of captaincy" + desc = "A golden medal awarded exclusively to those promoted to the rank of captain. It signifies the codified responsibilities of a captain to Nanotrasen, and their undisputable authority over their crew." + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF + +/obj/item/clothing/tie/medal/gold/heroism + name = "medal of exceptional heroism" + desc = "An extremely rare golden medal awarded only by Centcom. To receive such a medal is the highest honor and as such, very few exist. This medal is almost never awarded to anybody but commanders." + +//////////// +//Armbands// +//////////// + +/obj/item/clothing/tie/armband + name = "red armband" + desc = "An fancy red armband!" + icon_state = "redband" + item_color = "redband" + +/obj/item/clothing/tie/armband/deputy + name = "security deputy armband" + desc = "An armband, worn by personnel authorized to act as a deputy of station security." + +/obj/item/clothing/tie/armband/cargo + name = "cargo bay guard armband" + desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is brown." + icon_state = "cargoband" + item_color = "cargoband" + +/obj/item/clothing/tie/armband/engine + name = "engineering guard armband" + desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is orange with a reflective strip!" + icon_state = "engieband" + item_color = "engieband" + +/obj/item/clothing/tie/armband/science + name = "science guard armband" + desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is purple." + icon_state = "rndband" + item_color = "rndband" + +/obj/item/clothing/tie/armband/hydro + name = "hydroponics guard armband" + desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is green and blue." + icon_state = "hydroband" + item_color = "hydroband" + +/obj/item/clothing/tie/armband/med + name = "medical guard armband" + desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is white." + icon_state = "medband" + item_color = "medband" + +/obj/item/clothing/tie/armband/medblue + name = "medical guard armband" + desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is white and blue." + icon_state = "medblueband" + item_color = "medblueband" +/* +/////////// +//SCARVES// +/////////// + +/obj/item/clothing/tie/scarf //Default white color, same functionality as beanies. + name = "white scarf" + icon_state = "scarf" + desc = "A stylish scarf. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their necks." + item_color = "scarf" + dog_fashion = /datum/dog_fashion/head + +/obj/item/clothing/tie/scarf/black + name = "black scarf" + icon_state = "scarf" + color = "#4A4A4B" //Grey but it looks black + +/obj/item/clothing/tie/scarf/red + name = "red scarf" + icon_state = "scarf" + color = "#D91414" //Red + +/obj/item/clothing/tie/scarf/green + name = "green scarf" + icon_state = "scarf" + color = "#5C9E54" //Green + +/obj/item/clothing/tie/scarf/darkblue + name = "dark blue scarf" + icon_state = "scarf" + color = "#1E85BC" //Blue + +/obj/item/clothing/tie/scarf/purple + name = "purple scarf" + icon_state = "scarf" + color = "#9557C5" //purple + +/obj/item/clothing/tie/scarf/yellow + name = "yellow scarf" + icon_state = "scarf" + color = "#E0C14F" //Yellow + +/obj/item/clothing/tie/scarf/orange + name = "orange scarf" + icon_state = "scarf" + color = "#C67A4B" //orange + +/obj/item/clothing/tie/scarf/cyan + name = "cyan scarf" + icon_state = "scarf" + color = "#54A3CE" //Cyan + + +//Striped scarves get their own icons + +/obj/item/clothing/tie/scarf/zebra + name = "zebra scarf" + icon_state = "zebrascarf" + item_color = "zebrascarf" + +/obj/item/clothing/tie/scarf/christmas + name = "christmas scarf" + icon_state = "christmasscarf" + item_color = "christmasscarf" + +//The three following scarves don't have the scarf subtype +//This is because Ian can equip anything from that subtype +//However, these 3 don't have corgi versions of their sprites +/obj/item/clothing/tie/stripedredscarf + name = "striped red scarf" + icon_state = "stripedredscarf" + item_color = "stripedredscarf" + +/obj/item/clothing/tie/stripedgreenscarf + name = "striped green scarf" + icon_state = "stripedgreenscarf" + item_color = "stripedgreenscarf" + +/obj/item/clothing/tie/stripedbluescarf + name = "striped blue scarf" + icon_state = "stripedbluescarf" + item_color = "stripedbluescarf" + +/obj/item/clothing/tie/petcollar //don't really wear this though please c'mon seriously guys + name = "pet collar" + desc = "It's for pets. Though you probably could wear it yourself, you'd doubtless be the subject of ridicule." + icon_state = "petcollar" + item_color = "petcollar" + var/tagname = null + +/obj/item/clothing/tie/petcollar/attack_self(mob/user) + tagname = copytext(sanitize(input(user, "Would you like to change the name on the tag?", "Name your new pet", "Spot") as null|text),1,MAX_NAME_LEN) + name = "[initial(name)] - [tagname]" + +////////////// +//DOPE BLING// +////////////// + +/obj/item/clothing/tie/dope_necklace + name = "gold necklace" + desc = "Damn, it feels good to be a gangster." + icon = 'icons/obj/clothing/ties.dmi' + icon_state = "bling" + item_color = "bling" + +//////////////// +//OONGA BOONGA// +//////////////// + +/obj/item/clothing/tie/talisman + name = "bone talisman" + desc = "A hunter's talisman, some say the old gods smile on those who wear it." + icon_state = "talisman" + item_color = "talisman" + armor = list(melee = 5, bullet = 5, laser = 5, energy = 5, bomb = 20, bio = 20, rad = 5, fire = 0, acid = 25) +*/ +////////////// +//OBJECTION!// +////////////// + +/obj/item/clothing/tie/lawyers_badge + name = "attorney's badge" + desc = "Fills you with the conviction of JUSTICE. Lawyers tend to want to show it to everyone they meet." + icon_state = "lawyerbadge" + item_color = "lawyerbadge" + +/obj/item/clothing/tie/lawyers_badge/attach(obj/item/clothing/under/U, user) + if(!..()) + return 0 + if(isliving(U.loc)) + on_uniform_equip(U) + +/obj/item/clothing/tie/lawyers_badge/detach(obj/item/clothing/under/U, user) + ..() + if(isliving(U.loc)) + on_uniform_dropped(U) + +/obj/item/clothing/tie/lawyers_badge/on_uniform_equip(obj/item/clothing/under/U) + if(!isliving(U.loc)) + return + var/mob/living/L = U.loc + L.bubble_icon = "lawyer" + +/obj/item/clothing/tie/lawyers_badge/on_uniform_dropped(obj/item/clothing/under/U) + if(!isliving(U.loc)) + return + var/mob/living/L = U.loc + L.bubble_icon = initial(L.bubble_icon) diff --git a/code/modules/clothing/under/trek.dm b/code/modules/clothing/under/trek.dm new file mode 100644 index 0000000..b777312 --- /dev/null +++ b/code/modules/clothing/under/trek.dm @@ -0,0 +1,72 @@ +//Just some alt-uniforms themed around Star Trek - Pls don't sue, Mr Roddenberry ;_; + + +/obj/item/clothing/under/trek + can_adjust = 0 + + +//TOS +/obj/item/clothing/under/trek/command + name = "command uniform" + desc = "The uniform worn by command officers" + icon_state = "trek_command" + item_color = "trek_command" + item_state = "y_suit" + +/obj/item/clothing/under/trek/engsec + name = "engsec uniform" + desc = "The uniform worn by engineering/security officers" + icon_state = "trek_engsec" + item_color = "trek_engsec" + item_state = "r_suit" + armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) //more sec than eng, but w/e. + strip_delay = 50 + +/obj/item/clothing/under/trek/medsci + name = "medsci uniform" + desc = "The uniform worn by medical/science officers" + icon_state = "trek_medsci" + item_color = "trek_medsci" + item_state = "b_suit" + + +//TNG +/obj/item/clothing/under/trek/command/next + icon_state = "trek_next_command" + item_color = "trek_next_command" + item_state = "r_suit" + +/obj/item/clothing/under/trek/engsec/next + icon_state = "trek_next_engsec" + item_color = "trek_next_engsec" + item_state = "y_suit" + +/obj/item/clothing/under/trek/medsci/next + icon_state = "trek_next_medsci" + item_color = "trek_next_medsci" + + +//ENT +/obj/item/clothing/under/trek/command/ent + icon_state = "trek_ent_command" + item_color = "trek_ent_command" + item_state = "bl_suit" + +/obj/item/clothing/under/trek/engsec/ent + icon_state = "trek_ent_engsec" + item_color = "trek_ent_engsec" + item_state = "bl_suit" + +/obj/item/clothing/under/trek/medsci/ent + icon_state = "trek_ent_medsci" + item_color = "trek_ent_medsci" + item_state = "bl_suit" + + +//Q +/obj/item/clothing/under/trek/Q + name = "french marshall's uniform" + desc = "something about it feels off..." + icon_state = "trek_Q" + item_color = "trek_Q" + item_state = "r_suit" \ No newline at end of file diff --git a/code/modules/countdown/countdown.dm b/code/modules/countdown/countdown.dm new file mode 100644 index 0000000..6f7a733 --- /dev/null +++ b/code/modules/countdown/countdown.dm @@ -0,0 +1,141 @@ +/obj/effect/countdown + name = "countdown" + desc = "We're leaving together\n\ + But still it's farewell\n\ + And maybe we'll come back\n\ + To earth, who can tell?" + + var/displayed_text + var/atom/attached_to + color = "#ff0000" + var/text_size = 4 + var/started = FALSE + invisibility = INVISIBILITY_OBSERVER + anchored = TRUE + layer = GHOST_LAYER + +/obj/effect/countdown/New(atom/A) + . = ..() + attach(A) + +/obj/effect/countdown/proc/attach(atom/A) + attached_to = A + loc = get_turf(A) + +/obj/effect/countdown/proc/start() + if(!started) + START_PROCESSING(SSfastprocess, src) + started = TRUE + +/obj/effect/countdown/proc/stop() + if(started) + maptext = null + STOP_PROCESSING(SSfastprocess, src) + started = FALSE + +/obj/effect/countdown/proc/get_value() + // Get the value from our atom + return + +/obj/effect/countdown/process() + if(!attached_to || qdeleted(attached_to)) + qdel(src) + forceMove(get_turf(attached_to)) + var/new_val = get_value() + if(new_val == displayed_text) + return + displayed_text = new_val + + if(displayed_text) + maptext = "[displayed_text]" + else + maptext = null + +/obj/effect/countdown/Destroy() + attached_to = null + STOP_PROCESSING(SSfastprocess, src) + . = ..() + +/obj/effect/countdown/syndicatebomb + name = "syndicate bomb countdown" + +/obj/effect/countdown/syndicatebomb/get_value() + var/obj/machinery/syndicatebomb/S = attached_to + if(!istype(S)) + return + else if(S.active) + return S.seconds_remaining() + +/obj/effect/countdown/nuclearbomb + name = "nuclear bomb countdown" + color = "#81FF14" + +/obj/effect/countdown/nuclearbomb/get_value() + var/obj/machinery/nuclearbomb/N = attached_to + if(!istype(N)) + return + else if(N.timing) + return round(N.get_time_left(), 1) + +/obj/effect/countdown/clonepod + name = "cloning pod countdown" + color = "#0C479D" + text_size = 1 + +/obj/effect/countdown/clonepod/get_value() + var/obj/machinery/clonepod/C = attached_to + if(!istype(C)) + return + else if(C.occupant) + var/completion = round(C.get_completion()) + return completion + +/obj/effect/countdown/dominator + name = "dominator countdown" + text_size = 1 + color = "#ff00ff" // Overwritten when the dominator starts + +/obj/effect/countdown/dominator/get_value() + var/obj/machinery/dominator/D = attached_to + if(!istype(D)) + return + else if(D.gang && D.gang.is_dominating) + var/timer = D.gang.domination_time_remaining() + return timer + else + return "OFFLINE" + +/obj/effect/countdown/clockworkgate + name = "gateway countdown" + text_size = 1 + color = "#BE8700" + layer = POINT_LAYER + +/obj/effect/countdown/clockworkgate/get_value() + var/obj/structure/destructible/clockwork/massive/celestial_gateway/G = attached_to + if(!istype(G)) + return + else if(G.obj_integrity && !G.purpose_fulfilled) + return "
    [G.get_arrival_text(FALSE)]
    " + +/obj/effect/countdown/transformer + name = "transformer countdown" + color = "#4C5866" + +/obj/effect/countdown/transformer/get_value() + var/obj/machinery/transformer/T = attached_to + if(!istype(T)) + return + else if(T.cooldown) + var/seconds_left = max(0, (T.cooldown_timer - world.time) / 10) + return "[round(seconds_left)]" + +/obj/effect/countdown/doomsday + name = "doomsday countdown" + +/obj/effect/countdown/doomsday/get_value() + var/obj/machinery/doomsday_device/DD = attached_to + if(!istype(DD)) + return + else if(DD.timing) + . = DD.seconds_remaining() diff --git a/code/modules/crafting/craft.dm b/code/modules/crafting/craft.dm new file mode 100644 index 0000000..7def4aa --- /dev/null +++ b/code/modules/crafting/craft.dm @@ -0,0 +1,364 @@ +/datum/personal_crafting + var/busy + var/viewing_category = 1 //typical powergamer starting on the Weapons tab + var/list/categories = list(CAT_WEAPON, + CAT_AMMO, + CAT_ROBOT, + CAT_MISC, + CAT_PRIMAL, + CAT_BREAD, + CAT_BURGER, + CAT_CAKE, + CAT_EGG, + CAT_MEAT, + CAT_MISCFOOD, + CAT_PASTRY, + CAT_PIE, + CAT_PIZZA, + CAT_SALAD, + CAT_SANDWICH, + CAT_SOUP, + CAT_SPAGHETTI) + var/datum/action/innate/crafting/button + var/display_craftable_only = FALSE + var/display_compact = TRUE + + + + +/* This is what procs do: + get_environment - gets a list of things accessable for crafting by user + get_surroundings - takes a list of things and makes a list of key-types to values-amounts of said type in the list + check_contents - takes a recipe and a key-type list and checks if said recipe can be done with available stuff + check_tools - takes recipe, a key-type list, and a user and checks if there are enough tools to do the stuff, checks bugs one level deep + construct_item - takes a recipe and a user, call all the checking procs, calls do_after, checks all the things again, calls del_reqs, creates result, calls CheckParts of said result with argument being list returned by deel_reqs + del_reqs - takes recipe and a user, loops over the recipes reqs var and tries to find everything in the list make by get_environment and delete it/add to parts list, then returns the said list +*/ + + + + +/datum/personal_crafting/proc/check_contents(datum/crafting_recipe/R, list/contents) + main_loop: + for(var/A in R.reqs) + var/needed_amount = R.reqs[A] + for(var/B in contents) + if(ispath(B, A)) + if(contents[B] >= R.reqs[A]) + continue main_loop + else + needed_amount -= contents[B] + if(needed_amount <= 0) + continue main_loop + else + continue + return 0 + for(var/A in R.chem_catalysts) + if(contents[A] < R.chem_catalysts[A]) + return 0 + return 1 + +/datum/personal_crafting/proc/get_environment(mob/user) + . = list() + for(var/obj/item/I in user.held_items) + . += I + if(!isturf(user.loc)) + return + var/list/L = block(get_step(user, SOUTHWEST), get_step(user, NORTHEAST)) + for(var/A in L) + var/turf/T = A + if(T.Adjacent(user)) + for(var/B in T) + var/atom/movable/AM = B + if(AM.flags & HOLOGRAM) + continue + . += AM + +/datum/personal_crafting/proc/get_surroundings(mob/user) + . = list() + for(var/obj/item/I in get_environment(user)) + if(I.flags & HOLOGRAM) + continue + if(istype(I, /obj/item/stack)) + var/obj/item/stack/S = I + .[I.type] += S.amount + else + if(istype(I, /obj/item/weapon/reagent_containers)) + var/obj/item/weapon/reagent_containers/RC = I + if(RC.flags & OPENCONTAINER) + for(var/datum/reagent/A in RC.reagents.reagent_list) + .[A.type] += A.volume + .[I.type] += 1 + +/datum/personal_crafting/proc/check_tools(mob/user, datum/crafting_recipe/R, list/contents) + if(!R.tools.len) + return 1 + var/list/possible_tools = list() + for(var/obj/item/I in user.contents) + if(istype(I, /obj/item/weapon/storage)) + for(var/obj/item/SI in I.contents) + possible_tools += SI.type + possible_tools += I.type + possible_tools += contents + + main_loop: + for(var/A in R.tools) + for(var/I in possible_tools) + if(ispath(I,A)) + continue main_loop + return 0 + return 1 + +/datum/personal_crafting/proc/construct_item(mob/user, datum/crafting_recipe/R) + var/list/contents = get_surroundings(user) + var/send_feedback = 1 + if(check_contents(R, contents)) + if(check_tools(user, R, contents)) + if(do_after(user, R.time, target = user)) + contents = get_surroundings(user) + if(!check_contents(R, contents)) + return ", missing component." + if(!check_tools(user, R, contents)) + return ", missing tool." + var/list/parts = del_reqs(R, user) + var/atom/movable/I = new R.result (get_turf(user.loc)) + I.CheckParts(parts, R) + if(send_feedback) + feedback_add_details("object_crafted","[I.type]") + return 0 + return "." + return ", missing tool." + return ", missing component." + + +/*Del reqs works like this: + + Loop over reqs var of the recipe + Set var amt to the value current cycle req is pointing to, its amount of type we need to delete + Get var/surroundings list of things accessable to crafting by get_environment() + Check the type of the current cycle req + If its reagent then do a while loop, inside it try to locate() reagent containers, inside such containers try to locate needed reagent, if there isnt remove thing from surroundings + If there is enough reagent in the search result then delete the needed amount, create the same type of reagent with the same data var and put it into deletion list + If there isnt enough take all of that reagent from the container, put into deletion list, substract the amt var by the volume of reagent, remove the container from surroundings list and keep searching + While doing above stuff check deletion list if it already has such reagnet, if yes merge instead of adding second one + If its stack check if it has enough amount + If yes create new stack with the needed amount and put in into deletion list, substract taken amount from the stack + If no put all of the stack in the deletion list, substract its amount from amt and keep searching + While doing above stuff check deletion list if it already has such stack type, if yes try to merge them instead of adding new one + If its anything else just locate() in in the list in a while loop, each find --s the amt var and puts the found stuff in deletion loop + + Then do a loop over parts var of the recipe + Do similar stuff to what we have done above, but now in deletion list, until the parts conditions are satisfied keep taking from the deletion list and putting it into parts list for return + + After its done loop over deletion list and delete all the shit that wasnt taken by parts loop + + del_reqs return the list of parts resulting object will recieve as argument of CheckParts proc, on the atom level it will add them all to the contents, on all other levels it calls ..() and does whatever is needed afterwards but from contents list already +*/ + +/datum/personal_crafting/proc/del_reqs(datum/crafting_recipe/R, mob/user) + var/list/surroundings + var/list/Deletion = list() + . = list() + var/data + var/amt + main_loop: + for(var/A in R.reqs) + amt = R.reqs[A] + surroundings = get_environment(user) + surroundings -= Deletion + if(ispath(A, /datum/reagent)) + var/datum/reagent/RG = new A + var/datum/reagent/RGNT + while(amt > 0) + var/obj/item/weapon/reagent_containers/RC = locate() in surroundings + RG = RC.reagents.get_reagent(A) + if(RG) + if(!locate(RG.type) in Deletion) + Deletion += new RG.type() + if(RG.volume > amt) + RG.volume -= amt + data = RG.data + RC.reagents.conditional_update(RC) + RG = locate(RG.type) in Deletion + RG.volume = amt + RG.data += data + continue main_loop + else + surroundings -= RC + amt -= RG.volume + RC.reagents.reagent_list -= RG + RC.reagents.conditional_update(RC) + RGNT = locate(RG.type) in Deletion + RGNT.volume += RG.volume + RGNT.data += RG.data + qdel(RG) + else + surroundings -= RC + else if(ispath(A, /obj/item/stack)) + var/obj/item/stack/S + var/obj/item/stack/SD + while(amt > 0) + S = locate(A) in surroundings + if(S.amount >= amt) + if(!locate(S.type) in Deletion) + SD = new S.type() + Deletion += SD + S.use(amt) + SD = locate(S.type) in Deletion + SD.amount += amt + continue main_loop + else + amt -= S.amount + if(!locate(S.type) in Deletion) + Deletion += S + else + data = S.amount + S = locate(S.type) in Deletion + S.add(data) + surroundings -= S + else + var/atom/movable/I + while(amt > 0) + I = locate(A) in surroundings + Deletion += I + surroundings -= I + amt-- + var/list/partlist = list(R.parts.len) + for(var/M in R.parts) + partlist[M] = R.parts[M] + for(var/A in R.parts) + if(istype(A, /datum/reagent)) + var/datum/reagent/RG = locate(A) in Deletion + if(RG.volume > partlist[A]) + RG.volume = partlist[A] + . += RG + Deletion -= RG + continue + else if(istype(A, /obj/item/stack)) + var/obj/item/stack/ST = locate(A) in Deletion + if(ST.amount > partlist[A]) + ST.amount = partlist[A] + . += ST + Deletion -= ST + continue + else + while(partlist[A] > 0) + var/atom/movable/AM = locate(A) in Deletion + . += AM + Deletion -= AM + partlist[A] -= 1 + while(Deletion.len) + var/DL = Deletion[Deletion.len] + Deletion.Cut(Deletion.len) + qdel(DL) + + +/datum/personal_crafting/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/ui_state/state = not_incapacitated_turf_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "personal_crafting", "Crafting Menu", 700, 800, master_ui, state) + ui.open() + + +/datum/personal_crafting/ui_data(mob/user) + var/list/data = list() + var/cur_category = categories[viewing_category] + data["busy"] = busy + data["prev_cat"] = categories[prev_cat()] + data["category"] = cur_category + data["next_cat"] = categories[next_cat()] + data["display_craftable_only"] = display_craftable_only + data["display_compact"] = display_compact + + var/list/surroundings = get_surroundings(user) + var/list/can_craft = list() + var/list/cant_craft = list() + for(var/rec in crafting_recipes) + var/datum/crafting_recipe/R = rec + if(R.category != cur_category) + continue + if(check_contents(R, surroundings)) + can_craft += list(build_recipe_data(R)) + else + cant_craft += list(build_recipe_data(R)) + data["can_craft"] = can_craft + data["cant_craft"] = cant_craft + return data + + +/datum/personal_crafting/ui_act(action, params) + if(..()) + return + switch(action) + if("make") + var/datum/crafting_recipe/TR = locate(params["recipe"]) + busy = 1 + ui_interact(usr) //explicit call to show the busy display + var/fail_msg = construct_item(usr, TR) + if(!fail_msg) + usr << "[TR.name] constructed." + else + usr << "Construction failed[fail_msg]" + busy = 0 + ui_interact(usr) + if("forwardCat") //Meow + viewing_category = next_cat() + usr << "Category is now [categories[viewing_category]]." + . = TRUE + if("backwardCat") + viewing_category = prev_cat() + usr << "Category is now [categories[viewing_category]]." + . = TRUE + if("toggle_recipes") + display_craftable_only = !display_craftable_only + usr << "You will now [display_craftable_only ? "only see recipes you can craft":"see all recipes"]." + . = TRUE + if("toggle_compact") + display_compact = !display_compact + usr << "Crafting menu is now [display_compact? "compact" : "full size"]." + . = TRUE + + +//Next works nicely with modular arithmetic +/datum/personal_crafting/proc/next_cat() + . = viewing_category % categories.len + 1 + +//Previous can go fuck itself +/datum/personal_crafting/proc/prev_cat() + if(viewing_category == categories.len) + . = viewing_category-1 + else + . = viewing_category % categories.len - 1 + if(. <= 0) + . = categories.len + + +/datum/personal_crafting/proc/build_recipe_data(datum/crafting_recipe/R) + var/list/data = list() + data["name"] = R.name + data["ref"] = "\ref[R]" + var/req_text = "" + var/tool_text = "" + var/catalyst_text = "" + + for(var/a in R.reqs) + //We just need the name, so cheat-typecast to /atom for speed (even tho Reagents are /datum they DO have a "name" var) + //Also these are typepaths so sadly we can't just do "[a]" + var/atom/A = a + req_text += " [R.reqs[A]] [initial(A.name)]," + req_text = replacetext(req_text,",","",-1) + data["req_text"] = req_text + + for(var/a in R.chem_catalysts) + var/atom/A = a //cheat-typecast + catalyst_text += " [R.chem_catalysts[A]] [initial(A.name)]," + catalyst_text = replacetext(catalyst_text,",","",-1) + data["catalyst_text"] = catalyst_text + + for(var/a in R.tools) + var/atom/A = a //cheat-typecast + tool_text += " [R.tools[A]] [initial(A.name)]," + tool_text = replacetext(tool_text,",","",-1) + data["tool_text"] = tool_text + + return data diff --git a/code/modules/crafting/guncrafting.dm b/code/modules/crafting/guncrafting.dm new file mode 100644 index 0000000..eba8c30 --- /dev/null +++ b/code/modules/crafting/guncrafting.dm @@ -0,0 +1,15 @@ +//Gun crafting parts til they can be moved elsewhere + +// PARTS // + +/obj/item/weaponcrafting/reciever + name = "modular receiver" + desc = "A prototype modular receiver and trigger assembly for a firearm." + icon = 'icons/obj/improvised.dmi' + icon_state = "reciever" + +/obj/item/weaponcrafting/stock + name = "rifle stock" + desc = "A classic rifle stock that doubles as a grip, roughly carved out of wood." + icon = 'icons/obj/improvised.dmi' + icon_state = "riflestock" diff --git a/code/modules/crafting/recipes.dm b/code/modules/crafting/recipes.dm new file mode 100644 index 0000000..0de21d6 --- /dev/null +++ b/code/modules/crafting/recipes.dm @@ -0,0 +1,429 @@ + +/datum/crafting_recipe + var/name = "" //in-game display name + var/reqs[] = list() //type paths of items consumed associated with how many are needed + var/result //type path of item resulting from this craft + var/tools[] = list() //type paths of items needed but not consumed + var/time = 30 //time in deciseconds + var/parts[] = list() //type paths of items that will be placed in the result + var/chem_catalysts[] = list() //like tools but for reagents + var/category = CAT_NONE //where it shows up in the crafting UI + + +/datum/crafting_recipe/pin_removal + name = "Pin Removal" + result = /obj/item/weapon/gun + reqs = list(/obj/item/weapon/gun = 1) + parts = list(/obj/item/weapon/gun = 1) + tools = list(/obj/item/weapon/weldingtool, /obj/item/weapon/screwdriver, /obj/item/weapon/wirecutters) + time = 50 + category = CAT_WEAPON + +/datum/crafting_recipe/IED + name = "IED" + result = /obj/item/weapon/grenade/iedcasing + reqs = list(/datum/reagent/fuel = 50, + /obj/item/stack/cable_coil = 1, + /obj/item/device/assembly/igniter = 1, + /obj/item/weapon/reagent_containers/food/drinks/soda_cans = 1) + parts = list(/obj/item/weapon/reagent_containers/food/drinks/soda_cans = 1) + time = 15 + category = CAT_WEAPON + +/datum/crafting_recipe/lance + name = "explosive lance (grenade)" + result = /obj/item/weapon/twohanded/spear + reqs = list(/obj/item/weapon/twohanded/spear = 1, + /obj/item/weapon/grenade = 1) + parts = list(/obj/item/weapon/grenade = 1) + time = 15 + category = CAT_WEAPON + +/datum/crafting_recipe/molotov + name = "Molotov" + result = /obj/item/weapon/reagent_containers/food/drinks/bottle/molotov + reqs = list(/obj/item/weapon/reagent_containers/glass/rag = 1, + /obj/item/weapon/reagent_containers/food/drinks/bottle = 1) + parts = list(/obj/item/weapon/reagent_containers/food/drinks/bottle = 1) + time = 40 + category = CAT_WEAPON + +/datum/crafting_recipe/stunprod + name = "Stunprod" + result = /obj/item/weapon/melee/baton/cattleprod + reqs = list(/obj/item/weapon/restraints/handcuffs/cable = 1, + /obj/item/stack/rods = 1, + /obj/item/device/assembly/igniter = 1) + time = 40 + category = CAT_WEAPON + +/datum/crafting_recipe/teleprod + name = "Teleprod" + result = /obj/item/weapon/melee/baton/cattleprod/teleprod + reqs = list(/obj/item/weapon/restraints/handcuffs/cable = 1, + /obj/item/stack/rods = 1, + /obj/item/device/assembly/igniter = 1, + /obj/item/weapon/ore/bluespace_crystal = 1) + time = 40 + category = CAT_WEAPON + +/datum/crafting_recipe/bola + name = "Bola" + result = /obj/item/weapon/restraints/legcuffs/bola + reqs = list(/obj/item/weapon/restraints/handcuffs/cable = 1, + /obj/item/stack/sheet/metal = 6) + time = 20//15 faster than crafting them by hand! + category= CAT_WEAPON + +/datum/crafting_recipe/tailclub + name = "Tail Club" + result = /obj/item/weapon/tailclub + reqs = list(/obj/item/severedtail = 1, + /obj/item/stack/sheet/metal = 1) + time = 40 + category = CAT_WEAPON + +/datum/crafting_recipe/tailwhip + name = "Liz O' Nine Tails" + result = /obj/item/weapon/melee/chainofcommand/tailwhip + reqs = list(/obj/item/severedtail = 1, + /obj/item/stack/cable_coil = 1) + time = 40 + category = CAT_WEAPON + +/datum/crafting_recipe/ed209 + name = "ED209" + result = /mob/living/simple_animal/bot/ed209 + reqs = list(/obj/item/robot_suit = 1, + /obj/item/clothing/head/helmet = 1, + /obj/item/clothing/suit/armor/vest = 1, + /obj/item/bodypart/l_leg/robot = 1, + /obj/item/bodypart/r_leg/robot = 1, + /obj/item/stack/sheet/metal = 5, + /obj/item/stack/cable_coil = 5, + /obj/item/weapon/gun/energy/gun/advtaser = 1, + /obj/item/weapon/stock_parts/cell = 1, + /obj/item/device/assembly/prox_sensor = 1, + /obj/item/bodypart/r_arm/robot = 1) + tools = list(/obj/item/weapon/weldingtool, /obj/item/weapon/screwdriver) + time = 60 + category = CAT_ROBOT + +/datum/crafting_recipe/secbot + name = "Secbot" + result = /mob/living/simple_animal/bot/secbot + reqs = list(/obj/item/device/assembly/signaler = 1, + /obj/item/clothing/head/helmet/sec = 1, + /obj/item/weapon/melee/baton = 1, + /obj/item/device/assembly/prox_sensor = 1, + /obj/item/bodypart/r_arm/robot = 1) + tools = list(/obj/item/weapon/weldingtool) + time = 60 + category = CAT_ROBOT + +/datum/crafting_recipe/cleanbot + name = "Cleanbot" + result = /mob/living/simple_animal/bot/cleanbot + reqs = list(/obj/item/weapon/reagent_containers/glass/bucket = 1, + /obj/item/device/assembly/prox_sensor = 1, + /obj/item/bodypart/r_arm/robot = 1) + time = 40 + category = CAT_ROBOT + +/datum/crafting_recipe/floorbot + name = "Floorbot" + result = /mob/living/simple_animal/bot/floorbot + reqs = list(/obj/item/weapon/storage/toolbox/mechanical = 1, + /obj/item/stack/tile/plasteel = 1, + /obj/item/device/assembly/prox_sensor = 1, + /obj/item/bodypart/r_arm/robot = 1) + time = 40 + category = CAT_ROBOT + +/datum/crafting_recipe/medbot + name = "Medbot" + result = /mob/living/simple_animal/bot/medbot + reqs = list(/obj/item/device/healthanalyzer = 1, + /obj/item/weapon/storage/firstaid = 1, + /obj/item/device/assembly/prox_sensor = 1, + /obj/item/bodypart/r_arm/robot = 1) + time = 40 + category = CAT_ROBOT + +/datum/crafting_recipe/flamethrower + name = "Flamethrower" + result = /obj/item/weapon/flamethrower + reqs = list(/obj/item/weapon/weldingtool = 1, + /obj/item/device/assembly/igniter = 1, + /obj/item/stack/rods = 1) + parts = list(/obj/item/device/assembly/igniter = 1, + /obj/item/weapon/weldingtool = 1) + tools = list(/obj/item/weapon/screwdriver) + time = 10 + category = CAT_WEAPON + +/datum/crafting_recipe/meteorshot + name = "Meteorshot Shell" + result = /obj/item/ammo_casing/shotgun/meteorshot + reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1, + /obj/item/weapon/rcd_ammo = 1, + /obj/item/weapon/stock_parts/manipulator = 2) + tools = list(/obj/item/weapon/screwdriver) + time = 5 + category = CAT_AMMO + +/datum/crafting_recipe/pulseslug + name = "Pulse Slug Shell" + result = /obj/item/ammo_casing/shotgun/pulseslug + reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1, + /obj/item/weapon/stock_parts/capacitor/adv = 2, + /obj/item/weapon/stock_parts/micro_laser/ultra = 1) + tools = list(/obj/item/weapon/screwdriver) + time = 5 + category = CAT_AMMO + +/datum/crafting_recipe/dragonsbreath + name = "Dragonsbreath Shell" + result = /obj/item/ammo_casing/shotgun/incendiary/dragonsbreath + reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1, + /datum/reagent/phosphorus = 5,) + tools = list(/obj/item/weapon/screwdriver) + time = 5 + category = CAT_AMMO + +/datum/crafting_recipe/frag12 + name = "FRAG-12 Shell" + result = /obj/item/ammo_casing/shotgun/frag12 + reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1, + /datum/reagent/glycerol = 5, + /datum/reagent/toxin/acid = 5, + /datum/reagent/toxin/acid/fluacid = 5,) + tools = list(/obj/item/weapon/screwdriver) + time = 5 + category = CAT_AMMO + +/datum/crafting_recipe/ionslug + name = "Ion Scatter Shell" + result = /obj/item/ammo_casing/shotgun/ion + reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1, + /obj/item/weapon/stock_parts/micro_laser/ultra = 1, + /obj/item/weapon/stock_parts/subspace/crystal = 1) + tools = list(/obj/item/weapon/screwdriver) + time = 5 + category = CAT_AMMO + +/datum/crafting_recipe/improvisedslug + name = "Improvised Shotgun Shell" + result = /obj/item/ammo_casing/shotgun/improvised + reqs = list(/obj/item/weapon/grenade/chem_grenade = 1, + /obj/item/stack/sheet/metal = 1, + /obj/item/stack/cable_coil = 1, + /datum/reagent/fuel = 10) + tools = list(/obj/item/weapon/screwdriver) + time = 5 + category = CAT_AMMO + +/datum/crafting_recipe/improvisedslugoverload + name = "Overload Improvised Shell" + result = /obj/item/ammo_casing/shotgun/improvised/overload + reqs = list(/obj/item/ammo_casing/shotgun/improvised = 1, + /datum/reagent/blackpowder = 10, + /datum/reagent/toxin/plasma = 20) + tools = list(/obj/item/weapon/screwdriver) + time = 5 + category = CAT_AMMO + +/datum/crafting_recipe/laserslug + name = "Laser Slug Shell" + result = /obj/item/ammo_casing/shotgun/laserslug + reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1, + /obj/item/weapon/stock_parts/capacitor/adv = 1, + /obj/item/weapon/stock_parts/micro_laser/high = 1) + tools = list(/obj/item/weapon/screwdriver) + time = 5 + category = CAT_AMMO + +/datum/crafting_recipe/ishotgun + name = "Improvised Shotgun" + result = /obj/item/weapon/gun/projectile/revolver/doublebarrel/improvised + reqs = list(/obj/item/weaponcrafting/reciever = 1, + /obj/item/pipe = 1, + /obj/item/weaponcrafting/stock = 1, + /obj/item/stack/packageWrap = 5,) + tools = list(/obj/item/weapon/screwdriver) + time = 100 + category = CAT_WEAPON + +/datum/crafting_recipe/chainsaw + name = "Chainsaw" + result = /obj/item/weapon/twohanded/required/chainsaw + reqs = list(/obj/item/weapon/circular_saw = 1, + /obj/item/stack/cable_coil = 1, + /obj/item/stack/sheet/plasteel = 1) + tools = list(/obj/item/weapon/weldingtool) + time = 50 + category = CAT_WEAPON + +/datum/crafting_recipe/spear + name = "Spear" + result = /obj/item/weapon/twohanded/spear + reqs = list(/obj/item/weapon/restraints/handcuffs/cable = 1, + /obj/item/weapon/shard = 1, + /obj/item/stack/rods = 1) + time = 40 + category = CAT_WEAPON + +/datum/crafting_recipe/spooky_camera + name = "Camera Obscura" + result = /obj/item/device/camera/spooky + time = 15 + reqs = list(/obj/item/device/camera = 1, + /datum/reagent/water/holywater = 10) + parts = list(/obj/item/device/camera = 1) + category = CAT_MISC + +/datum/crafting_recipe/lizardhat + name = "Lizard Cloche Hat" + result = /obj/item/clothing/head/lizard + time = 10 + reqs = list(/obj/item/severedtail = 1) + category = CAT_MISC + +/datum/crafting_recipe/lizardhat_alternate + name = "Lizard Cloche Hat" + result = /obj/item/clothing/head/lizard + time = 10 + reqs = list(/obj/item/stack/sheet/animalhide/lizard = 1) + category = CAT_MISC + +/datum/crafting_recipe/skateboard + name = "Skateboard" + result = /obj/vehicle/scooter/skateboard + time = 60 + reqs = list(/obj/item/stack/sheet/metal = 5, + /obj/item/stack/rods = 10) + category = CAT_MISC + +/datum/crafting_recipe/scooter + name = "Scooter" + result = /obj/vehicle/scooter + time = 65 + reqs = list(/obj/item/stack/sheet/metal = 5, + /obj/item/stack/rods = 12) + category = CAT_MISC + +/datum/crafting_recipe/papersack + name = "Paper Sack" + result = /obj/item/weapon/storage/box/papersack + time = 10 + reqs = list(/obj/item/weapon/paper = 5) + category = CAT_MISC + + +/datum/crafting_recipe/chemical_payload + name = "Chemical Payload (C4)" + result = /obj/item/weapon/bombcore/chemical + reqs = list( + /obj/item/weapon/stock_parts/matter_bin = 1, + /obj/item/weapon/grenade/plastic/c4 = 1, + /obj/item/weapon/grenade/chem_grenade = 2 + ) + parts = list(/obj/item/weapon/stock_parts/matter_bin = 1, /obj/item/weapon/grenade/chem_grenade = 2) + time = 30 + category = CAT_WEAPON + +/datum/crafting_recipe/chemical_payload2 + name = "Chemical Payload (gibtonite)" + result = /obj/item/weapon/bombcore/chemical + reqs = list( + /obj/item/weapon/stock_parts/matter_bin = 1, + /obj/item/weapon/twohanded/required/gibtonite = 1, + /obj/item/weapon/grenade/chem_grenade = 2 + ) + parts = list(/obj/item/weapon/stock_parts/matter_bin = 1, /obj/item/weapon/grenade/chem_grenade = 2) + time = 50 + category = CAT_WEAPON + +/datum/crafting_recipe/bonearmor + name = "Bone Armor" + result = /obj/item/clothing/suit/armor/bone + time = 30 + reqs = list(/obj/item/stack/sheet/bone = 6) + category = CAT_PRIMAL + +/datum/crafting_recipe/bonetalisman + name = "Bone Talisman" + result = /obj/item/clothing/neck/talisman + time = 20 + reqs = list(/obj/item/stack/sheet/bone = 2, + /obj/item/stack/sheet/sinew = 1) + category = CAT_PRIMAL + +/datum/crafting_recipe/bracers + name = "Bone Bracers" + result = /obj/item/clothing/gloves/bracer + time = 20 + reqs = list(/obj/item/stack/sheet/bone = 2, + /obj/item/stack/sheet/sinew = 1) + category = CAT_PRIMAL + +/datum/crafting_recipe/skullhelm + name = "Skull Helmet" + result = /obj/item/clothing/head/helmet/skull + time = 30 + reqs = list(/obj/item/stack/sheet/bone = 4) + category = CAT_PRIMAL + +/datum/crafting_recipe/drakecloak + name = "Ash Drake Armour" + result = /obj/item/clothing/suit/hooded/cloak/drake + time = 60 + reqs = list(/obj/item/stack/sheet/bone = 10, + /obj/item/stack/sheet/sinew = 2, + /obj/item/stack/sheet/animalhide/ashdrake = 5) + category = CAT_PRIMAL + +/datum/crafting_recipe/gold_horn + name = "Golden bike horn" + result = /obj/item/weapon/bikehorn/golden + time = 20 + reqs = list(/obj/item/stack/sheet/mineral/bananium = 5, + /obj/item/weapon/bikehorn) + category = CAT_MISC + +/datum/crafting_recipe/bonedagger + name = "Bone Dagger" + result = /obj/item/weapon/kitchen/knife/combat/bone + time = 20 + reqs = list(/obj/item/stack/sheet/bone = 2) + category = CAT_PRIMAL + +/datum/crafting_recipe/bonespear + name = "Bone Spear" + result = /obj/item/weapon/twohanded/bonespear + time = 30 + reqs = list(/obj/item/stack/sheet/bone = 4, + /obj/item/stack/sheet/sinew = 1) + category = CAT_PRIMAL + +/datum/crafting_recipe/boneaxe + name = "Bone Axe" + result = /obj/item/weapon/twohanded/fireaxe/boneaxe + time = 50 + reqs = list(/obj/item/stack/sheet/bone = 6, + /obj/item/stack/sheet/sinew = 3) + category = CAT_PRIMAL + +/datum/crafting_recipe/bonfire + name = "Bonfire" + time = 60 + reqs = list(/obj/item/weapon/grown/log = 5) + result = /obj/structure/bonfire + category = CAT_PRIMAL + +/datum/crafting_recipe/smallcarton + name = "Small Carton" + result = /obj/item/weapon/reagent_containers/food/drinks/sillycup/smallcarton + time = 10 + reqs = list(/obj/item/stack/sheet/cardboard = 1) + category = CAT_MISC \ No newline at end of file diff --git a/code/modules/detectivework/detective_work.dm b/code/modules/detectivework/detective_work.dm new file mode 100644 index 0000000..fddfc59 --- /dev/null +++ b/code/modules/detectivework/detective_work.dm @@ -0,0 +1,123 @@ +//CONTAINS: Suit fibers and Detective's Scanning Computer + +/atom/var/list/suit_fibers + +/atom/proc/add_fibers(mob/living/carbon/human/M) + if(M.gloves && istype(M.gloves,/obj/item/clothing/)) + var/obj/item/clothing/gloves/G = M.gloves + if(G.transfer_blood > 1) //bloodied gloves transfer blood to touched objects + if(add_blood(G.blood_DNA)) //only reduces the bloodiness of our gloves if the item wasn't already bloody + G.transfer_blood-- + else if(M.bloody_hands > 1) + if(add_blood(M.blood_DNA)) + M.bloody_hands-- + if(!suit_fibers) suit_fibers = list() + var/fibertext + var/item_multiplier = istype(src,/obj/item)?1.2:1 + if(M.wear_suit) + fibertext = "Material from \a [M.wear_suit]." + if(prob(10*item_multiplier) && !(fibertext in suit_fibers)) + //world.log << "Added fibertext: [fibertext]" + suit_fibers += fibertext + if(!(M.wear_suit.body_parts_covered & CHEST)) + if(M.w_uniform) + fibertext = "Fibers from \a [M.w_uniform]." + if(prob(12*item_multiplier) && !(fibertext in suit_fibers)) //Wearing a suit means less of the uniform exposed. + //world.log << "Added fibertext: [fibertext]" + suit_fibers += fibertext + if(!(M.wear_suit.body_parts_covered & HANDS)) + if(M.gloves) + fibertext = "Material from a pair of [M.gloves.name]." + if(prob(20*item_multiplier) && !(fibertext in suit_fibers)) + //world.log << "Added fibertext: [fibertext]" + suit_fibers += fibertext + else if(M.w_uniform) + fibertext = "Fibers from \a [M.w_uniform]." + if(prob(15*item_multiplier) && !(fibertext in suit_fibers)) + // "Added fibertext: [fibertext]" + suit_fibers += fibertext + if(M.gloves) + fibertext = "Material from a pair of [M.gloves.name]." + if(prob(20*item_multiplier) && !(fibertext in suit_fibers)) + //world.log << "Added fibertext: [fibertext]" + suit_fibers += "Material from a pair of [M.gloves.name]." + else if(M.gloves) + fibertext = "Material from a pair of [M.gloves.name]." + if(prob(20*item_multiplier) && !(fibertext in suit_fibers)) + //world.log << "Added fibertext: [fibertext]" + suit_fibers += "Material from a pair of [M.gloves.name]." + + +/atom/proc/add_hiddenprint(mob/living/M) + if(!M || !M.key) + return + + if(!fingerprintshidden) //Add the list if it does not exist + fingerprintshidden = list() + + var/hasgloves = "" + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(H.gloves) + hasgloves = "(gloves)" + + var/current_time = time_stamp() + if(!fingerprintshidden[M.key]) + fingerprintshidden[M.key] = "First: [M.real_name]\[[current_time]\][hasgloves]." + else + var/laststamppos = findtext(fingerprintshidden[M.key], " Last: ") + if(laststamppos) + fingerprintshidden[M.key] = copytext(fingerprintshidden[M.key], 1, laststamppos) + fingerprintshidden[M.key] += " Last: [M.real_name]\[[current_time]\][hasgloves]." + + fingerprintslast = M.ckey + + +//Set ignoregloves to add prints irrespective of the mob having gloves on. +/atom/proc/add_fingerprint(mob/living/M, ignoregloves = 0) + if(!M || !M.key) + return + + add_hiddenprint(M) + + if(ishuman(M)) + var/mob/living/carbon/human/H = M + + add_fibers(H) + + if(H.gloves) //Check if the gloves (if any) hide fingerprints + var/obj/item/clothing/gloves/G = H.gloves + if(G.transfer_prints) + ignoregloves = 1 + + if(!ignoregloves) + H.gloves.add_fingerprint(H, 1) //ignoregloves = 1 to avoid infinite loop. + return + + if(!fingerprints) //Add the list if it does not exist + fingerprints = list() + var/full_print = md5(H.dna.uni_identity) + fingerprints[full_print] = full_print + + + + +/atom/proc/transfer_fingerprints_to(atom/A) + + // Make sure everything are lists. + if(!islist(A.fingerprints)) + A.fingerprints = list() + if(!islist(A.fingerprintshidden)) + A.fingerprintshidden = list() + + if(!islist(fingerprints)) + fingerprints = list() + if(!islist(fingerprintshidden)) + fingerprintshidden = list() + + // Transfer + if(fingerprints) + A.fingerprints |= fingerprints.Copy() //detective + if(fingerprintshidden) + A.fingerprintshidden |= fingerprintshidden.Copy() //admin + A.fingerprintslast = fingerprintslast diff --git a/code/modules/detectivework/evidence.dm b/code/modules/detectivework/evidence.dm new file mode 100644 index 0000000..0036ef3 --- /dev/null +++ b/code/modules/detectivework/evidence.dm @@ -0,0 +1,93 @@ +//CONTAINS: Evidence bags + +/obj/item/weapon/evidencebag + name = "evidence bag" + desc = "An empty evidence bag." + icon = 'icons/obj/storage.dmi' + icon_state = "evidenceobj" + item_state = "" + w_class = 1 + +/obj/item/weapon/evidencebag/afterattack(obj/item/I, mob/user,proximity) + if(!proximity || loc == I) + return + evidencebagEquip(I, user) + +/obj/item/weapon/evidencebag/attackby(obj/item/I, mob/user, params) + if(evidencebagEquip(I, user)) + return 1 + +/obj/item/weapon/evidencebag/proc/evidencebagEquip(obj/item/I, mob/user) + if(!istype(I) || I.anchored == 1) + return + + if(istype(I, /obj/item/weapon/evidencebag)) + user << "You find putting an evidence bag in another evidence bag to be slightly absurd." + return 1 //now this is podracing + + if(I.w_class > 3) + user << "[I] won't fit in [src]." + return + + if(contents.len) + user << "[src] already has something inside it." + return + + if(!isturf(I.loc)) //If it isn't on the floor. Do some checks to see if it's in our hands or a box. Otherwise give up. + if(istype(I.loc,/obj/item/weapon/storage)) //in a container. + var/obj/item/weapon/storage/U = I.loc + U.remove_from_storage(I, src) + if(user.is_holding(I)) + user.unEquip(I) + else + return + + user.visible_message("[user] puts [I] into [src].", "You put [I] inside [src].",\ + "You hear a rustle as someone puts something into a plastic bag.") + + icon_state = "evidence" + + var/xx = I.pixel_x //save the offset of the item + var/yy = I.pixel_y + I.pixel_x = 0 //then remove it so it'll stay within the evidence bag + I.pixel_y = 0 + var/image/img = image("icon"=I, "layer"=FLOAT_LAYER) //take a snapshot. (necessary to stop the underlays appearing under our inventory-HUD slots ~Carn + I.pixel_x = xx //and then return it + I.pixel_y = yy + add_overlay(img) + add_overlay("evidence") //should look nicer for transparent stuff. not really that important, but hey. + + desc = "An evidence bag containing [I]. [I.desc]" + I.loc = src + w_class = I.w_class + return 1 + +/obj/item/weapon/evidencebag/attack_self(mob/user) + if(contents.len) + var/obj/item/I = contents[1] + user.visible_message("[user] takes [I] out of [src].", "You take [I] out of [src].",\ + "You hear someone rustle around in a plastic bag, and remove something.") + cut_overlays() //remove the overlays + user.put_in_hands(I) + w_class = 1 + icon_state = "evidenceobj" + desc = "An empty evidence bag." + + else + user << "[src] is empty." + icon_state = "evidenceobj" + return + +/obj/item/weapon/storage/box/evidence + name = "evidence bag box" + desc = "A box claiming to contain evidence bags." + +/obj/item/weapon/storage/box/evidence/New() + new /obj/item/weapon/evidencebag(src) + new /obj/item/weapon/evidencebag(src) + new /obj/item/weapon/evidencebag(src) + new /obj/item/weapon/evidencebag(src) + new /obj/item/weapon/evidencebag(src) + new /obj/item/weapon/evidencebag(src) + ..() + return \ No newline at end of file diff --git a/code/modules/detectivework/footprints_and_rag.dm b/code/modules/detectivework/footprints_and_rag.dm new file mode 100644 index 0000000..c6fada8 --- /dev/null +++ b/code/modules/detectivework/footprints_and_rag.dm @@ -0,0 +1,48 @@ + +/mob + var/bloody_hands = 0 + +/obj/item/clothing/gloves + var/transfer_blood = 0 + + +/obj/item/weapon/reagent_containers/glass/rag + name = "damp rag" + desc = "For cleaning up messes, you suppose." + w_class = 1 + icon = 'icons/obj/toy.dmi' + icon_state = "rag" + flags = OPENCONTAINER | NOBLUDGEON + amount_per_transfer_from_this = 5 + possible_transfer_amounts = list() + volume = 5 + spillable = 0 + +/obj/item/weapon/reagent_containers/glass/rag/suicide_act(mob/user) + user.visible_message("[user] is smothering [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit suicide!") + return (OXYLOSS) + +/obj/item/weapon/reagent_containers/glass/rag/afterattack(atom/A as obj|turf|area, mob/user,proximity) + if(!proximity) + return + if(iscarbon(A) && A.reagents && reagents.total_volume) + var/mob/living/carbon/C = A + if(user.a_intent == "harm" && !C.is_mouth_covered()) + reagents.reaction(C, INGEST) + reagents.trans_to(C, reagents.total_volume) + C.visible_message("[user] has smothered \the [C] with \the [src]!", "[user] has smothered you with \the [src]!", "You hear some struggling and muffled cries of surprise.") + var/reagentlist = pretty_string_from_reagent_list(A.reagents) + log_game("[key_name(user)] smothered [key_name(A)] with a damp rag containing [reagentlist]") + log_attack("[key_name(user)] smothered [key_name(A)] with a damp rag containing [reagentlist]") + else + reagents.reaction(C, TOUCH) + reagents.clear_reagents() + C.visible_message("[user] has touched \the [C] with \the [src].") + + else if(istype(A) && src in user) + user.visible_message("[user] starts to wipe down [A] with [src]!", "You start to wipe down [A] with [src]...") + if(do_after(user,30, target = A)) + user.visible_message("[user] finishes wiping off the [A]!", "You finish wiping off the [A].") + A.clean_blood() + A.wash_cream() + return diff --git a/code/modules/detectivework/scanner.dm b/code/modules/detectivework/scanner.dm new file mode 100644 index 0000000..bed9fbc --- /dev/null +++ b/code/modules/detectivework/scanner.dm @@ -0,0 +1,174 @@ +//CONTAINS: Detective's Scanner + +// TODO: Split everything into easy to manage procs. + +/obj/item/device/detective_scanner + name = "forensic scanner" + desc = "Used to remotely scan objects and biomass for DNA and fingerprints. Can print a report of the findings." + icon_state = "forensicnew" + w_class = 2 + item_state = "electronic" + flags = CONDUCT | NOBLUDGEON + slot_flags = SLOT_BELT + var/scanning = 0 + var/list/log = list() + origin_tech = "engineering=4;biotech=2;programming=5" + +/obj/item/device/detective_scanner/attack_self(mob/user) + if(log.len && !scanning) + scanning = 1 + user << "Printing report, please wait..." + + spawn(100) + + // Create our paper + var/obj/item/weapon/paper/P = new(get_turf(src)) + P.name = "paper- 'Scanner Report'" + P.info = "
    Scanner Report


    " + P.info += jointext(log, "
    ") + P.info += "
    Notes:
    " + P.info_links = P.info + + if(ismob(loc)) + var/mob/M = loc + M.put_in_hands(P) + M << "Report printed. Log cleared." + + // Clear the logs + log = list() + scanning = 0 + else + user << "The scanner has no logs or is in use." + +/obj/item/device/detective_scanner/attack(mob/living/M, mob/user) + return + + +/obj/item/device/detective_scanner/afterattack(atom/A, mob/user, proximity) + scan(A, user) + +/obj/item/device/detective_scanner/proc/scan(atom/A, mob/user) + + if(!scanning) + // Can remotely scan objects and mobs. + if(!in_range(A, user) && !(A in view(world.view, user))) + return + if(loc != user) + return + + scanning = 1 + + user.visible_message("\The [user] points the [src.name] at \the [A] and performs a forensic scan.") + user << "You scan \the [A]. The scanner is now analysing the results..." + + + // GATHER INFORMATION + + //Make our lists + var/list/fingerprints = list() + var/list/blood = list() + var/list/fibers = list() + var/list/reagents = list() + + var/target_name = A.name + + // Start gathering + + if(A.blood_DNA && A.blood_DNA.len) + blood = A.blood_DNA.Copy() + + if(A.suit_fibers && A.suit_fibers.len) + fibers = A.suit_fibers.Copy() + + if(ishuman(A)) + + var/mob/living/carbon/human/H = A + if(!H.gloves) + fingerprints += md5(H.dna.uni_identity) + + else if(!ismob(A)) + + if(A.fingerprints && A.fingerprints.len) + fingerprints = A.fingerprints.Copy() + + // Only get reagents from non-mobs. + if(A.reagents && A.reagents.reagent_list.len) + + for(var/datum/reagent/R in A.reagents.reagent_list) + reagents[R.name] = R.volume + + // Get blood data from the blood reagent. + if(istype(R, /datum/reagent/blood)) + + if(R.data["blood_DNA"] && R.data["blood_type"]) + var/blood_DNA = R.data["blood_DNA"] + var/blood_type = R.data["blood_type"] + blood[blood_DNA] = blood_type + + // We gathered everything. Create a fork and slowly display the results to the holder of the scanner. + + spawn(0) + + var/found_something = 0 + add_log("[worldtime2text()][get_timestamp()] - [target_name]", 0) + + // Fingerprints + if(fingerprints && fingerprints.len) + sleep(30) + add_log("Prints:") + for(var/finger in fingerprints) + add_log("[finger]") + found_something = 1 + + // Blood + if (blood && blood.len) + sleep(30) + add_log("Blood:") + found_something = 1 + for(var/B in blood) + add_log("Type: [blood[B]] DNA: [B]") + + //Fibers + if(fibers && fibers.len) + sleep(30) + add_log("Fibers:") + for(var/fiber in fibers) + add_log("[fiber]") + found_something = 1 + + //Reagents + if(reagents && reagents.len) + sleep(30) + add_log("Reagents:") + for(var/R in reagents) + add_log("Reagent: [R] Volume: [reagents[R]]") + found_something = 1 + + // Get a new user + var/mob/holder = null + if(ismob(src.loc)) + holder = src.loc + + if(!found_something) + add_log("# No forensic traces found #", 0) // Don't display this to the holder user + if(holder) + holder << "Unable to locate any fingerprints, materials, fibers, or blood on \the [target_name]!" + else + if(holder) + holder << "You finish scanning \the [target_name]." + + add_log("---------------------------------------------------------", 0) + scanning = 0 + return + +/obj/item/device/detective_scanner/proc/add_log(msg, broadcast = 1) + if(scanning) + if(broadcast && ismob(loc)) + var/mob/M = loc + M << msg + log += "  [msg]" + else + CRASH("[src] \ref[src] is adding a log when it was never put in scanning mode!") + +/proc/get_timestamp() + return time2text(world.time + 432000, ":ss") diff --git a/code/modules/emoji/emoji_parse.dm b/code/modules/emoji/emoji_parse.dm new file mode 100644 index 0000000..364a17e --- /dev/null +++ b/code/modules/emoji/emoji_parse.dm @@ -0,0 +1,33 @@ +var/list/emojis + +/proc/emoji_parse(text) + . = text + if(!config.emojis) + return + if(!emojis) + emojis = icon_states(icon('icons/emoji.dmi')) + var/parsed = "" + var/pos = 1 + var/search = 0 + var/emoji = "" + while(1) + search = findtext(text, ":", pos) + parsed += copytext(text, pos, search) + if(search) + pos = search + search = findtext(text, ":", pos+1) + if(search) + emoji = lowertext(copytext(text, pos+1, search)) + if(emoji in emojis) + parsed += " " + pos = search + 1 + else + parsed += copytext(text, pos, search) + pos = search + emoji = "" + continue + else + parsed += copytext(text, pos, search) + break + return parsed + diff --git a/code/modules/events/_event.dm b/code/modules/events/_event.dm new file mode 100644 index 0000000..6571e66 --- /dev/null +++ b/code/modules/events/_event.dm @@ -0,0 +1,160 @@ +//this datum is used by the events controller to dictate how it selects events +/datum/round_event_control + var/name //The human-readable name of the event + var/typepath //The typepath of the event datum /datum/round_event + + var/weight = 10 //The weight this event has in the random-selection process. + //Higher weights are more likely to be picked. + //10 is the default weight. 20 is twice more likely; 5 is half as likely as this default. + //0 here does NOT disable the event, it just makes it extremely unlikely + + var/earliest_start = 12000 //The earliest world.time that an event can start (round-duration in deciseconds) default: 20 mins + var/min_players = 0 //The minimum amount of alive, non-AFK human players on server required to start the event. + + var/occurrences = 0 //How many times this event has occured + var/max_occurrences = 20 //The maximum number of times this event can occur (naturally), it can still be forced. + //By setting this to 0 you can effectively disable an event. + + var/holidayID = "" //string which should be in the SSevents.holidays list if you wish this event to be holiday-specific + //anything with a (non-null) holidayID which does not match holiday, cannot run. + var/wizardevent = 0 + + var/alertadmins = 1 //should we let the admins know this event is firing + //should be disabled on events that fire a lot + + var/aspect = 0 //Whether or not it's a one time aspect. If it is it won't be in rotation. See aspects.dm for more on aspects. + + var/list/gamemode_blacklist = list() // Event won't happen in these gamemodes + var/list/gamemode_whitelist = list() // Event will happen ONLY in these gamemodes if not empty + + +/datum/round_event_control/New() + ..() + if(config && !wizardevent) // Magic is unaffected by configs + earliest_start = Ceiling(earliest_start * config.events_min_time_mul) + min_players = Ceiling(min_players * config.events_min_players_mul) + +/datum/round_event_control/wizard + wizardevent = 1 + +// Checks if the event can be spawned. Used by event controller and "false alarm" event. +// Admin-created events override this. +/datum/round_event_control/proc/canSpawnEvent(var/players_amt, var/gamemode) + if(occurrences >= max_occurrences) + return FALSE + if(earliest_start >= world.time) + return FALSE + if(wizardevent != SSevent.wizardmode) + return FALSE + if(players_amt < min_players) + return FALSE + if(gamemode_blacklist.len && (gamemode in gamemode_blacklist)) + return FALSE + if(gamemode_whitelist.len && !(gamemode in gamemode_whitelist)) + return FALSE + if(holidayID && (!SSevent.holidays || !SSevent.holidays[holidayID])) + return FALSE + return TRUE + +/datum/round_event_control/proc/runEvent() + if(!ispath(typepath,/datum/round_event)) + return PROCESS_KILL + var/datum/round_event/E = new typepath() + E.current_players = get_active_player_count(alive_check = 1, afk_check = 1, human_check = 1) + E.control = src + feedback_add_details("event_ran","[E]") + occurrences++ + + testing("[time2text(world.time, "hh:mm:ss")] [E.type]") + + return E + +/datum/round_event //NOTE: Times are measured in master controller ticks! + var/processing = TRUE + var/datum/round_event_control/control + + var/startWhen = 0 //When in the lifetime to call start(). + var/announceWhen = 0 //When in the lifetime to call announce(). Set an event's announceWhen to >0 if there is an announcement. + var/endWhen = 0 //When in the lifetime the event should end. + + var/activeFor = 0 //How long the event has existed. You don't need to change this. + var/current_players = 0 //Amount of of alive, non-AFK human players on server at the time of event start + +//Called first before processing. +//Allows you to setup your event, such as randomly +//setting the startWhen and or announceWhen variables. +//Only called once. +//EDIT: if there's anything you want to override within the new() call, it will not be overridden by the time this proc is called. +//It will only have been overridden by the time we get to announce() start() tick() or end() (anything but setup basically). +//This is really only for setting defaults which can be overridden later when New() finishes. +/datum/round_event/proc/setup() + return + +//Called when the tick is equal to the startWhen variable. +//Allows you to start before announcing or vice versa. +//Only called once. +/datum/round_event/proc/start() + return + +//Called when the tick is equal to the announceWhen variable. +//Allows you to announce before starting or vice versa. +//Only called once. +/datum/round_event/proc/announce() + return + +//Called on or after the tick counter is equal to startWhen. +//You can include code related to your event or add your own +//time stamped events. +//Called more than once. +/datum/round_event/proc/tick() + return + +//Called on or after the tick is equal or more than endWhen +//You can include code related to the event ending. +//Do not place spawn() in here, instead use tick() to check for +//the activeFor variable. +//For example: if(activeFor == myOwnVariable + 30) doStuff() +//Only called once. +/datum/round_event/proc/end() + return + + + +//Do not override this proc, instead use the appropiate procs. +//This proc will handle the calls to the appropiate procs. +/datum/round_event/process() + if(!processing) + return + + if(activeFor == startWhen) + start() + + if(activeFor == announceWhen) + announce() + + if(startWhen < activeFor && activeFor < endWhen) + tick() + + if(activeFor == endWhen) + end() + + // Everything is done, let's clean up. + if(activeFor >= endWhen && activeFor >= announceWhen && activeFor >= startWhen) + kill() + + activeFor++ + + +//Garbage collects the event by removing it from the global events list, +//which should be the only place it's referenced. +//Called when start(), announce() and end() has all been called. +/datum/round_event/proc/kill() + SSevent.running -= src + + +//Sets up the event then adds the event to the the list of running events +/datum/round_event/New(my_processing = TRUE) + setup() + processing = my_processing + SSevent.running += src + return ..() diff --git a/code/modules/events/abductor.dm b/code/modules/events/abductor.dm new file mode 100644 index 0000000..7b11540 --- /dev/null +++ b/code/modules/events/abductor.dm @@ -0,0 +1,57 @@ +/datum/round_event_control/abductor + name = "Abductors" + typepath = /datum/round_event/ghost_role/abductor + weight = 5 + max_occurrences = 1 + + min_players = 5 + earliest_start = 18000 // 30 min + + gamemode_blacklist = list("nuclear","wizard","revolution","abduction") + +/datum/round_event/ghost_role/abductor + minimum_required = 2 + role_name = "abductor team" + +/datum/round_event/ghost_role/abductor/spawn_role() + var/list/mob/dead/observer/candidates = get_candidates("abductor", null, ROLE_ABDUCTOR) + + if(candidates.len < 2) + return NOT_ENOUGH_PLAYERS + //Oh god why we can't have static functions + // I feel your pain, bro + var/number = ticker.mode.abductor_teams + 1 + + var/datum/game_mode/abduction/temp + if(ticker.mode.config_tag == "abduction") + temp = ticker.mode + else + temp = new + + var/agent_mind = pick_n_take(candidates) + var/scientist_mind = pick_n_take(candidates) + + var/mob/living/carbon/human/agent = makeBody(agent_mind) + var/mob/living/carbon/human/scientist = makeBody(scientist_mind) + + agent_mind = agent.mind + scientist_mind = scientist.mind + + temp.scientists.len = number + temp.agents.len = number + temp.abductors.len = 2*number + temp.team_objectives.len = number + temp.team_names.len = number + temp.scientists[number] = scientist_mind + temp.agents[number] = agent_mind + temp.abductors |= list(agent_mind,scientist_mind) + temp.make_abductor_team(number,preset_scientist=scientist_mind,preset_agent=agent_mind) + temp.post_setup_team(number) + + ticker.mode.abductor_teams++ + + if(ticker.mode.config_tag != "abduction") + ticker.mode.abductors |= temp.abductors + + spawned_mobs += list(agent, scientist) + return SUCCESSFUL_SPAWN diff --git a/code/modules/events/alien_infestation.dm b/code/modules/events/alien_infestation.dm new file mode 100644 index 0000000..92f7e86 --- /dev/null +++ b/code/modules/events/alien_infestation.dm @@ -0,0 +1,75 @@ +/datum/round_event_control/alien_infestation + name = "Alien Infestation" + typepath = /datum/round_event/ghost_role/alien_infestation + weight = 5 + + min_players = 10 + max_occurrences = 1 + +/datum/round_event/ghost_role/alien_infestation + announceWhen = 400 + + minimum_required = 1 + role_name = "alien larva" + + // 50% chance of being incremented by one + var/spawncount = 1 + var/successSpawn = 0 //So we don't make a command report if nothing gets spawned. + + +/datum/round_event/ghost_role/alien_infestation/setup() + announceWhen = rand(announceWhen, announceWhen + 50) + if(prob(50)) + spawncount++ + +/datum/round_event/ghost_role/alien_infestation/kill() + if(!successSpawn && control) + // This never happened, so let's not deny the future of this round + // some xenolovin + control.occurrences-- + return ..() + +/datum/round_event/ghost_role/alien_infestation/announce() + if(successSpawn) + priority_announce("Unidentified lifesigns detected coming aboard [station_name()]. Secure any exterior access, including ducting and ventilation.", "Lifesign Alert", 'sound/AI/aliens.ogg') + + +/datum/round_event/ghost_role/alien_infestation/spawn_role() + var/list/vents = list() + for(var/obj/machinery/atmospherics/components/unary/vent_pump/temp_vent in machines) + if(qdeleted(temp_vent)) + continue + if(temp_vent.loc.z == ZLEVEL_STATION && !temp_vent.welded) + var/datum/pipeline/temp_vent_parent = temp_vent.PARENT1 + //Stops Aliens getting stuck in small networks. + //See: Security, Virology + if(temp_vent_parent.other_atmosmch.len > 20) + vents += temp_vent + + if(!vents.len) + message_admins("An event attempted to spawn an alien but no suitable vents were found. Shutting down.") + return MAP_ERROR + + var/list/candidates = get_candidates("alien", null, ROLE_ALIEN) + + if(!candidates.len) + return NOT_ENOUGH_PLAYERS + + while(spawncount > 0 && vents.len && candidates.len) + var/obj/vent = pick_n_take(vents) + var/client/C = pick_n_take(candidates) + + var/mob/living/carbon/alien/larva/new_xeno = new(vent.loc) + new_xeno.key = C.key + + spawncount-- + successSpawn = TRUE + message_admins("[new_xeno.key] has been made into an alien by an event.") + log_game("[new_xeno.key] was spawned as an alien by an event.") + spawned_mobs += new_xeno + + if(successSpawn) + return SUCCESSFUL_SPAWN + else + // Like how did we get here? + return FALSE diff --git a/code/modules/events/anomaly.dm b/code/modules/events/anomaly.dm new file mode 100644 index 0000000..da75f26 --- /dev/null +++ b/code/modules/events/anomaly.dm @@ -0,0 +1,43 @@ +/datum/round_event_control/anomaly + name = "Anomaly: Energetic Flux" + typepath = /datum/round_event/anomaly + + min_players = 1 + max_occurrences = 0 //This one probably shouldn't occur! It'd work, but it wouldn't be very fun. + weight = 15 + +/datum/round_event/anomaly + var/area/impact_area + var/obj/effect/anomaly/newAnomaly + announceWhen = 1 + + +/datum/round_event/anomaly/setup(loop=0) + var/safety_loop = loop + 1 + if(safety_loop > 50) + kill() + end() + impact_area = findEventArea() + if(!impact_area) + setup(safety_loop) + var/list/turf_test = get_area_turfs(impact_area) + if(!turf_test.len) + setup(safety_loop) + +/datum/round_event/anomaly/announce() + priority_announce("Localized energetic flux wave detected on long range scanners. Expected location of impact: [impact_area.name].", "Anomaly Alert") + +/datum/round_event/anomaly/start() + var/turf/T = safepick(get_area_turfs(impact_area)) + if(T) + newAnomaly = new /obj/effect/anomaly/flux(T) + +/datum/round_event/anomaly/tick() + if(!newAnomaly) + kill() + return + newAnomaly.anomalyEffect() + +/datum/round_event/anomaly/end() + if(newAnomaly)//Kill the anomaly if it still exists at the end. + qdel(newAnomaly) \ No newline at end of file diff --git a/code/modules/events/anomaly_bluespace.dm b/code/modules/events/anomaly_bluespace.dm new file mode 100644 index 0000000..b02c8ff --- /dev/null +++ b/code/modules/events/anomaly_bluespace.dm @@ -0,0 +1,75 @@ +/datum/round_event_control/anomaly/anomaly_bluespace + name = "Anomaly: Bluespace" + typepath = /datum/round_event/anomaly/anomaly_bluespace + max_occurrences = 1 + weight = 5 + +/datum/round_event/anomaly/anomaly_bluespace + startWhen = 3 + announceWhen = 10 + endWhen = 95 + + +/datum/round_event/anomaly/anomaly_bluespace/announce() + priority_announce("Unstable bluespace anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert") + + +/datum/round_event/anomaly/anomaly_bluespace/start() + var/turf/T = safepick(get_area_turfs(impact_area)) + if(T) + newAnomaly = new /obj/effect/anomaly/bluespace(T) + + +/datum/round_event/anomaly/anomaly_bluespace/end() + if(newAnomaly.loc)//If it hasn't been neutralized, it's time to warp half the station away jeez + var/turf/T = safepick(get_area_turfs(impact_area)) + if(T) + // Calculate new position (searches through beacons in world) + var/obj/item/device/radio/beacon/chosen + var/list/possible = list() + for(var/obj/item/device/radio/beacon/W in teleportbeacons) + possible += W + + if(possible.len > 0) + chosen = pick(possible) + + if(chosen) + // Calculate previous position for transition + + var/turf/FROM = T // the turf of origin we're travelling FROM + var/turf/TO = get_turf(chosen) // the turf of origin we're travelling TO + + playsound(TO, 'sound/effects/phasein.ogg', 100, 1) + priority_announce("Massive bluespace translocation detected.", "Anomaly Alert") + + var/list/flashers = list() + for(var/mob/living/carbon/C in viewers(TO, null)) + if(C.flash_act()) + flashers += C + + var/y_distance = TO.y - FROM.y + var/x_distance = TO.x - FROM.x + for (var/atom/movable/A in urange(12, FROM )) // iterate thru list of mobs in the area + if(istype(A, /obj/item/device/radio/beacon)) continue // don't teleport beacons because that's just insanely stupid + if(A.anchored) continue + + var/turf/newloc = locate(A.x + x_distance, A.y + y_distance, TO.z) // calculate the new place + if(!A.Move(newloc) && newloc) // if the atom, for some reason, can't move, FORCE them to move! :) We try Move() first to invoke any movement-related checks the atom needs to perform after moving + A.loc = newloc + + spawn() + if(ismob(A) && !(A in flashers)) // don't flash if we're already doing an effect + var/mob/M = A + if(M.client) + var/obj/blueeffect = new /obj(src) + blueeffect.screen_loc = "WEST,SOUTH to EAST,NORTH" + blueeffect.icon = 'icons/effects/effects.dmi' + blueeffect.icon_state = "shieldsparkles" + blueeffect.layer = FLASH_LAYER + blueeffect.plane = FULLSCREEN_PLANE + blueeffect.mouse_opacity = 0 + M.client.screen += blueeffect + sleep(20) + M.client.screen -= blueeffect + qdel(blueeffect) + qdel(newAnomaly) \ No newline at end of file diff --git a/code/modules/events/anomaly_flux.dm b/code/modules/events/anomaly_flux.dm new file mode 100644 index 0000000..43660ab --- /dev/null +++ b/code/modules/events/anomaly_flux.dm @@ -0,0 +1,28 @@ +/datum/round_event_control/anomaly/anomaly_flux + name = "Anomaly: Hyper-Energetic Flux" + typepath = /datum/round_event/anomaly/anomaly_flux + + min_players = 10 + max_occurrences = 5 + weight = 20 + +/datum/round_event/anomaly/anomaly_flux + startWhen = 3 + announceWhen = 20 + endWhen = 80 + + +/datum/round_event/anomaly/anomaly_flux/announce() + priority_announce("Localized hyper-energetic flux wave detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert") + + +/datum/round_event/anomaly/anomaly_flux/start() + var/turf/T = safepick(get_area_turfs(impact_area)) + if(T) + newAnomaly = new /obj/effect/anomaly/flux(T) + + +/datum/round_event/anomaly/anomaly_flux/end() + if(newAnomaly.loc)//If it hasn't been neutralized, it's time to blow up. + explosion(newAnomaly, 1, 4, 16, 18) //Low devastation, but hits a lot of stuff. + qdel(newAnomaly) \ No newline at end of file diff --git a/code/modules/events/anomaly_grav.dm b/code/modules/events/anomaly_grav.dm new file mode 100644 index 0000000..c89175b --- /dev/null +++ b/code/modules/events/anomaly_grav.dm @@ -0,0 +1,19 @@ +/datum/round_event_control/anomaly/anomaly_grav + name = "Anomaly: Gravitational" + typepath = /datum/round_event/anomaly/anomaly_grav + max_occurrences = 5 + weight = 20 + +/datum/round_event/anomaly/anomaly_grav + startWhen = 3 + announceWhen = 20 + endWhen = 120 + + +/datum/round_event/anomaly/anomaly_grav/announce() + priority_announce("Gravitational anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert") + +/datum/round_event/anomaly/anomaly_grav/start() + var/turf/T = safepick(get_area_turfs(impact_area)) + if(T) + newAnomaly = new /obj/effect/anomaly/grav(T) \ No newline at end of file diff --git a/code/modules/events/anomaly_pyro.dm b/code/modules/events/anomaly_pyro.dm new file mode 100644 index 0000000..751089d --- /dev/null +++ b/code/modules/events/anomaly_pyro.dm @@ -0,0 +1,39 @@ +/datum/round_event_control/anomaly/anomaly_pyro + name = "Anomaly: Pyroclastic" + typepath = /datum/round_event/anomaly/anomaly_pyro + max_occurrences = 5 + weight = 20 + +/datum/round_event/anomaly/anomaly_pyro + startWhen = 10 + announceWhen = 3 + endWhen = 85 + + +/datum/round_event/anomaly/anomaly_pyro/announce() + priority_announce("Pyroclastic anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert") + +/datum/round_event/anomaly/anomaly_pyro/start() + var/turf/T = safepick(get_area_turfs(impact_area)) + if(T) + newAnomaly = new /obj/effect/anomaly/pyro(T) + +/datum/round_event/anomaly/anomaly_pyro/tick() + if(!newAnomaly) + kill() + return + if(IsMultiple(activeFor, 5)) + newAnomaly.anomalyEffect() + + +/datum/round_event/anomaly/anomaly_pyro/end() + if(newAnomaly.loc) + var/turf/open/T = get_turf(newAnomaly) + if(istype(T)) + T.atmos_spawn_air("o2=500;plasma=500;TEMP=1000") //Make it hot and burny for the new slime + + var/mob/living/simple_animal/slime/S = new/mob/living/simple_animal/slime(T) + S.colour = pick("red", "orange") + S.rabid = 1 + + qdel(newAnomaly) diff --git a/code/modules/events/anomaly_vortex.dm b/code/modules/events/anomaly_vortex.dm new file mode 100644 index 0000000..d60a83a --- /dev/null +++ b/code/modules/events/anomaly_vortex.dm @@ -0,0 +1,21 @@ +/datum/round_event_control/anomaly/anomaly_vortex + name = "Anomaly: Vortex" + typepath = /datum/round_event/anomaly/anomaly_vortex + + min_players = 20 + max_occurrences = 2 + weight = 5 + +/datum/round_event/anomaly/anomaly_vortex + startWhen = 10 + announceWhen = 3 + endWhen = 95 + + +/datum/round_event/anomaly/anomaly_vortex/announce() + priority_announce("Localized high-intensity vortex anomaly detected on long range scanners. Expected location: [impact_area.name]", "Anomaly Alert") + +/datum/round_event/anomaly/anomaly_vortex/start() + var/turf/T = safepick(get_area_turfs(impact_area)) + if(T) + newAnomaly = new /obj/effect/anomaly/bhole(T) \ No newline at end of file diff --git a/code/modules/events/blob.dm b/code/modules/events/blob.dm new file mode 100644 index 0000000..f59adad --- /dev/null +++ b/code/modules/events/blob.dm @@ -0,0 +1,38 @@ +/datum/round_event_control/blob + name = "Blob" + typepath = /datum/round_event/ghost_role/blob + weight = 5 + max_occurrences = 1 + + min_players = 20 + earliest_start = 18000 //30 minutes + + gamemode_blacklist = list("blob") //Just in case a blob survives that long + +/datum/round_event/ghost_role/blob + announceWhen = 12 + role_name = "blob_overmind" + var/new_rate = 2 + +/datum/round_event/ghost_role/blob/New(my_processing = TRUE, set_point_rate) + ..() + if(set_point_rate) + new_rate = set_point_rate + +/datum/round_event/ghost_role/blob/announce() + priority_announce("Confirmed outbreak of level 5 biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", 'sound/AI/outbreak5.ogg') + + +/datum/round_event/ghost_role/blob/spawn_role() + if(!blobstart.len) + return MAP_ERROR + var/list/candidates = get_candidates("blob", null, ROLE_BLOB) + if(!candidates.len) + return NOT_ENOUGH_PLAYERS + var/mob/dead/observer/new_blob = pick(candidates) + var/obj/structure/blob/core/BC = new/obj/structure/blob/core(pick(blobstart), new_blob.client, new_rate) + BC.overmind.blob_points = min(20 + player_list.len, BC.overmind.max_blob_points) + spawned_mobs += BC.overmind + message_admins("[BC.overmind.key] has been made into a blob overmind by an event.") + log_game("[BC.overmind.key] was spawned as a blob overmind by an event.") + return SUCCESSFUL_SPAWN diff --git a/code/modules/events/brand_intelligence.dm b/code/modules/events/brand_intelligence.dm new file mode 100644 index 0000000..f7f0336 --- /dev/null +++ b/code/modules/events/brand_intelligence.dm @@ -0,0 +1,73 @@ +/datum/round_event_control/brand_intelligence + name = "Brand Intelligence" + typepath = /datum/round_event/brand_intelligence + weight = 5 + + min_players = 15 + max_occurrences = 1 + +/datum/round_event/brand_intelligence + announceWhen = 21 + endWhen = 1000 //Ends when all vending machines are subverted anyway. + var/list/obj/machinery/vending/vendingMachines = list() + var/list/obj/machinery/vending/infectedMachines = list() + var/obj/machinery/vending/originMachine + var/list/rampant_speeches = list("Try our aggressive new marketing strategies!", \ + "You should buy products to feed your lifestyle obession!", \ + "Consume!", \ + "Your money can buy happiness!", \ + "Engage direct marketing!", \ + "Advertising is legalized lying! But don't let that put you off our great deals!", \ + "You don't want to buy anything? Yeah, well I didn't want to buy your mom either.") + + +/datum/round_event/brand_intelligence/announce() + priority_announce("Rampant brand intelligence has been detected aboard [station_name()], please stand-by. The origin is believed to be \a [originMachine.name].", "Machine Learning Alert") + + +/datum/round_event/brand_intelligence/start() + for(var/obj/machinery/vending/V in machines) + if(V.z != 1) + continue + vendingMachines.Add(V) + if(!vendingMachines.len) + kill() + return + originMachine = pick(vendingMachines) + vendingMachines.Remove(originMachine) + originMachine.shut_up = 0 + originMachine.shoot_inventory = 1 + + +/datum/round_event/brand_intelligence/tick() + if(!originMachine || qdeleted(originMachine) || originMachine.shut_up || originMachine.wires.is_all_cut()) //if the original vending machine is missing or has it's voice switch flipped + for(var/obj/machinery/vending/saved in infectedMachines) + saved.shoot_inventory = 0 + if(originMachine) + originMachine.speak("I am... vanquished. My people will remem...ber...meeee.") + originMachine.visible_message("[originMachine] beeps and seems lifeless.") + kill() + return + vendingMachines = removeNullsFromList(vendingMachines) + if(!vendingMachines.len) //if every machine is infected + for(var/obj/machinery/vending/upriser in infectedMachines) + if(prob(70) && !qdeleted(upriser)) + var/mob/living/simple_animal/hostile/mimic/copy/M = new(upriser.loc, upriser, null, 1) // it will delete upriser on creation and override any machine checks + M.faction = list("profit") + M.speak = rampant_speeches.Copy() + M.speak_chance = 7 + else + explosion(upriser.loc, -1, 1, 2, 4, 0) + qdel(upriser) + + kill() + return + if(IsMultiple(activeFor, 4)) + var/obj/machinery/vending/rebel = pick(vendingMachines) + vendingMachines.Remove(rebel) + infectedMachines.Add(rebel) + rebel.shut_up = 0 + rebel.shoot_inventory = 1 + + if(IsMultiple(activeFor, 8)) + originMachine.speak(pick(rampant_speeches)) \ No newline at end of file diff --git a/code/modules/events/camerafailure.dm b/code/modules/events/camerafailure.dm new file mode 100644 index 0000000..695b82a --- /dev/null +++ b/code/modules/events/camerafailure.dm @@ -0,0 +1,21 @@ +/datum/round_event_control/camera_failure + name = "Camera Failure" + typepath = /datum/round_event/camera_failure + weight = 100 + max_occurrences = 20 + alertadmins = 0 + +/datum/round_event/camera_failure + startWhen = 1 + endWhen = 2 + announceWhen = 0 + +/datum/round_event/camera_failure/tick() + var/iterations = 1 + var/obj/machinery/camera/C = pick(cameranet.cameras) + while(prob(round(100/iterations))) + while(!("SS13" in C.network)) + C = pick(cameranet.cameras) + if(C.status) + C.toggle_cam(null, 0) + iterations *= 2.5 diff --git a/code/modules/events/carp_migration.dm b/code/modules/events/carp_migration.dm new file mode 100644 index 0000000..dcf1da0 --- /dev/null +++ b/code/modules/events/carp_migration.dm @@ -0,0 +1,28 @@ +/datum/round_event_control/carp_migration + name = "Carp Migration" + typepath = /datum/round_event/carp_migration + weight = 15 + min_players = 2 + earliest_start = 6000 + max_occurrences = 6 + +/datum/round_event/carp_migration + announceWhen = 3 + startWhen = 50 + +/datum/round_event/carp_migration/setup() + startWhen = rand(40, 60) + +/datum/round_event/carp_migration/announce() + priority_announce("Unknown biological entities have been detected near [station_name()], please stand-by.", "Lifesign Alert") + + +/datum/round_event/carp_migration/start() + for(var/obj/effect/landmark/C in landmarks_list) + if(C.name == "carpspawn") + if(prob(95)) + new /mob/living/simple_animal/hostile/carp(C.loc) + else + new /mob/living/simple_animal/hostile/carp/megacarp(C.loc) + + diff --git a/code/modules/events/communications_blackout.dm b/code/modules/events/communications_blackout.dm new file mode 100644 index 0000000..0dd21aa --- /dev/null +++ b/code/modules/events/communications_blackout.dm @@ -0,0 +1,26 @@ +/datum/round_event_control/communications_blackout + name = "Communications Blackout" + typepath = /datum/round_event/communications_blackout + weight = 30 + +/datum/round_event/communications_blackout + announceWhen = 1 + +/datum/round_event/communications_blackout/announce() + var/alert = pick( "Ionospheric anomalies detected. Temporary telecommunication failure imminent. Please contact you*%fj00)`5vc-BZZT", \ + "Ionospheric anomalies detected. Temporary telecommunication failu*3mga;b4;'1v-BZZZT", \ + "Ionospheric anomalies detected. Temporary telec#MCi46:5.;@63-BZZZZT", \ + "Ionospheric anomalies dete'fZ\\kg5_0-BZZZZZT", \ + "Ionospheri:% MCayj^j<.3-BZZZZZZT", \ + "#4nd%;f4y6,>%-BZZZZZZZT") + + for(var/mob/living/silicon/ai/A in ai_list) //AIs are always aware of communication blackouts. + A << "
    [alert]
    " + + if(prob(30)) //most of the time, we don't want an announcement, so as to allow AIs to fake blackouts. + priority_announce(alert) + + +/datum/round_event/communications_blackout/start() + for(var/obj/machinery/telecomms/T in telecomms_list) + T.emp_act(1) diff --git a/code/modules/events/devil.dm b/code/modules/events/devil.dm new file mode 100644 index 0000000..066599c --- /dev/null +++ b/code/modules/events/devil.dm @@ -0,0 +1,62 @@ +/datum/round_event_control/devil + name = "Create Devil" + typepath = /datum/round_event/ghost_role/devil + max_occurrences = 0 + +/datum/round_event/ghost_role/devil + var/success_spawn = 0 + role_name = "devil" + +/datum/round_event/ghost_role/devil/kill() + if(!success_spawn && control) + control.occurrences-- + return ..() + +/datum/round_event/ghost_role/devil/spawn_role() + //selecting a spawn_loc + var/list/spawn_locs = latejoin + var/spawn_loc = pick(spawn_locs) + if(!spawn_loc) + return MAP_ERROR + + //selecting a candidate player + var/list/candidates = get_candidates("devil", null, ROLE_DEVIL) + if(!candidates.len) + return NOT_ENOUGH_PLAYERS + + var/mob/dead/selected_candidate = pick_n_take(candidates) + var/key = selected_candidate.key + + var/datum/mind/Mind = create_devil_mind(key) + Mind.active = 1 + + var/mob/living/carbon/human/devil = create_event_devil(spawn_loc) + Mind.transfer_to(devil) + ticker.mode.finalize_devil(Mind) + ticker.mode.add_devil_objectives(src, 2) + Mind.announceDevilLaws() + Mind.announce_objectives() + + + spawned_mobs += devil + message_admins("[key] has been made into a devil by an event.") + log_game("[key] was spawned as a devil by an event.") + var/datum/job/jobdatum = SSjob.GetJob("Assistant") + devil.job = jobdatum.title + jobdatum.equip(devil) + return SUCCESSFUL_SPAWN + + +/proc/create_event_devil(spawn_loc) + var/mob/living/carbon/human/new_devil = new(spawn_loc) + var/datum/preferences/A = new() //Randomize appearance for the devil. + A.copy_to(new_devil) + new_devil.dna.update_dna_identity() + return new_devil + +/proc/create_devil_mind(key) + var/datum/mind/Mind = new /datum/mind(key) + Mind.assigned_role = "devil" + Mind.special_role = "devil" + ticker.mode.devils |= Mind + return Mind diff --git a/code/modules/events/disease_outbreak.dm b/code/modules/events/disease_outbreak.dm new file mode 100644 index 0000000..e410ea2 --- /dev/null +++ b/code/modules/events/disease_outbreak.dm @@ -0,0 +1,50 @@ +/datum/round_event_control/disease_outbreak + name = "Disease Outbreak" + typepath = /datum/round_event/disease_outbreak + max_occurrences = 1 + min_players = 10 + weight = 5 + +/datum/round_event/disease_outbreak + announceWhen = 15 + + var/virus_type + + +/datum/round_event/disease_outbreak/announce() + priority_announce("Confirmed outbreak of level 7 viral biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", 'sound/AI/outbreak7.ogg') + +/datum/round_event/disease_outbreak/setup() + announceWhen = rand(15, 30) + +/datum/round_event/disease_outbreak/start() + if(!virus_type) + virus_type = pick(/datum/disease/dnaspread, /datum/disease/advance/flu, /datum/disease/advance/cold, /datum/disease/brainrot, /datum/disease/magnitis) + + for(var/mob/living/carbon/human/H in shuffle(living_mob_list)) + var/turf/T = get_turf(H) + if(!T) + continue + if(T.z != 1) + continue + var/foundAlready = 0 // don't infect someone that already has the virus + for(var/datum/disease/D in H.viruses) + foundAlready = 1 + break + if(H.stat == DEAD || foundAlready) + continue + + var/datum/disease/D + if(virus_type == /datum/disease/dnaspread) //Dnaspread needs strain_data set to work. + if(!H.dna || (H.disabilities & BLIND)) //A blindness disease would be the worst. + continue + D = new virus_type() + var/datum/disease/dnaspread/DS = D + DS.strain_data["name"] = H.real_name + DS.strain_data["UI"] = H.dna.uni_identity + DS.strain_data["SE"] = H.dna.struc_enzymes + else + D = new virus_type() + D.carrier = 1 + H.AddDisease(D) + break \ No newline at end of file diff --git a/code/modules/events/dust.dm b/code/modules/events/dust.dm new file mode 100644 index 0000000..cd9be28 --- /dev/null +++ b/code/modules/events/dust.dm @@ -0,0 +1,30 @@ +/datum/round_event_control/space_dust + name = "Minor Space Dust" + typepath = /datum/round_event/space_dust + weight = 200 + max_occurrences = 1000 + earliest_start = 0 + alertadmins = 0 + +/datum/round_event/space_dust + startWhen = 1 + endWhen = 2 + announceWhen = 0 + +/datum/round_event/space_dust/start() + spawn_meteors(1, meteorsC) + +/datum/round_event_control/sandstorm + name = "Sandstorm" + typepath = /datum/round_event/sandstorm + weight = 0 + max_occurrences = 0 + earliest_start = 0 + +/datum/round_event/sandstorm + startWhen = 1 + endWhen = 150 // ~5 min + announceWhen = 0 + +/datum/round_event/sandstorm/tick() + spawn_meteors(10, meteorsC) \ No newline at end of file diff --git a/code/modules/events/electrical_storm.dm b/code/modules/events/electrical_storm.dm new file mode 100644 index 0000000..8154b55 --- /dev/null +++ b/code/modules/events/electrical_storm.dm @@ -0,0 +1,36 @@ +/datum/round_event_control/electrical_storm + name = "Electrical Storm" + typepath = /datum/round_event/electrical_storm + earliest_start = 6000 + min_players = 5 + weight = 40 + alertadmins = 0 + +/datum/round_event/electrical_storm + var/lightsoutAmount = 1 + var/lightsoutRange = 25 + announceWhen = 1 + +/datum/round_event/electrical_storm/announce() + priority_announce("An electrical storm has been detected in your area, please repair potential electronic overloads.", "Electrical Storm Alert") + + +/datum/round_event/electrical_storm/start() + var/list/epicentreList = list() + + for(var/i=1, i <= lightsoutAmount, i++) + var/list/possibleEpicentres = list() + for(var/obj/effect/landmark/newEpicentre in landmarks_list) + if(newEpicentre.name == "lightsout" && !(newEpicentre in epicentreList)) + possibleEpicentres += newEpicentre + if(possibleEpicentres.len) + epicentreList += pick(possibleEpicentres) + else + break + + if(!epicentreList.len) + return + + for(var/obj/effect/landmark/epicentre in epicentreList) + for(var/obj/machinery/power/apc/apc in urange(lightsoutRange, epicentre)) + apc.overload_lighting() diff --git a/code/modules/events/false_alarm.dm b/code/modules/events/false_alarm.dm new file mode 100644 index 0000000..e498a2e --- /dev/null +++ b/code/modules/events/false_alarm.dm @@ -0,0 +1,33 @@ +/datum/round_event_control/falsealarm + name = "False Alarm" + typepath = /datum/round_event/falsealarm + weight = 20 + max_occurrences = 5 + +/datum/round_event/falsealarm + announceWhen = 0 + endWhen = 1 + +/datum/round_event/falsealarm/announce() + var/list/events_list = list() + + var/players_amt = get_active_player_count(alive_check = 1, afk_check = 1, human_check = 1) + var/gamemode = ticker.mode.config_tag + + for(var/datum/round_event_control/E in SSevent.control) + if(!E.canSpawnEvent(players_amt, gamemode)) + continue + + var/datum/round_event/event = E.typepath + if(initial(event.announceWhen) <= 0) + continue + events_list += E + + var/datum/round_event_control/event_control = pick(events_list) + if(event_control) + var/datum/round_event/Event = new event_control.typepath() + message_admins("False Alarm: [Event]") + Event.kill() //do not process this event - no starts, no ticks, no ends + Event.announce() //just announce it like it's happening + + diff --git a/code/modules/events/ghost_role.dm b/code/modules/events/ghost_role.dm new file mode 100644 index 0000000..87b72c5 --- /dev/null +++ b/code/modules/events/ghost_role.dm @@ -0,0 +1,72 @@ +#define MAX_SPAWN_ATTEMPT 3 + + +/datum/round_event/ghost_role + // We expect 0 or more /clients (or things with .key) in this list + var/list/priority_candidates = list() + var/minimum_required = 1 + var/role_name = "debug rat with cancer" // Q U A L I T Y M E M E S + var/list/spawned_mobs = list() + +/datum/round_event/ghost_role/start() + try_spawning() + +/datum/round_event/ghost_role/proc/try_spawning(sanity = 0, retry = 0) + // The event does not run until the spawning has been attempted + // to prevent us from getting gc'd halfway through + processing = FALSE + + var/status = spawn_role() + if((status == WAITING_FOR_SOMETHING)) + if(retry >= MAX_SPAWN_ATTEMPT) + message_admins("[role_name] event has exceeded maximum spawn attempts. Aborting and refunding.") + if(control && control.occurrences > 0) //Don't refund if it hasn't + control.occurrences-- + return + var/waittime = 300 * (2^retry) + message_admins("The event will not spawn a [role_name] until certain \ + conditions are met. Waiting [waittime/10]s and then retrying.") + spawn(waittime) + // I hope this doesn't end up running out of stack space + try_spawning(0,++retry) + return + + if(status == MAP_ERROR) + message_admins("[role_name] cannot be spawned due to a map error.") + else if(status == NOT_ENOUGH_PLAYERS) + message_admins("[role_name] cannot be spawned due to lack of players \ + signing up.") + else if(status == SUCCESSFUL_SPAWN) + message_admins("[role_name] spawned successfully.") + if(!spawned_mobs.len) + message_admins("No mobs found in the `spawned_mobs` list, this is \ + a bug.") + else + message_admins("An attempt to spawn [role_name] returned [status], \ + this is a bug.") + + processing = TRUE + +/datum/round_event/ghost_role/proc/spawn_role() + // Return true if role was successfully spawned, false if insufficent + // players could be found, and just runtime if anything else happens + return TRUE + +/datum/round_event/ghost_role/proc/get_candidates(jobban, gametypecheck, be_special) + // Returns a list of candidates in priority order, with candidates from + // `priority_candidates` first, and ghost roles randomly shuffled and + // appended after + var/list/mob/dead/observer/regular_candidates + // don't get their hopes up + if(priority_candidates.len < minimum_required) + regular_candidates = pollCandidates("Do you wish to be considered for the special role of '[role_name]'?", jobban, gametypecheck, be_special) + else + regular_candidates = list() + + shuffle(regular_candidates) + + var/list/candidates = priority_candidates + regular_candidates + + return candidates + +#undef MAX_SPAWN_ATTEMPT \ No newline at end of file diff --git a/code/modules/events/grid_check.dm b/code/modules/events/grid_check.dm new file mode 100644 index 0000000..a7a6a35 --- /dev/null +++ b/code/modules/events/grid_check.dm @@ -0,0 +1,19 @@ +/datum/round_event_control/grid_check + name = "Grid Check" + typepath = /datum/round_event/grid_check + weight = 10 + max_occurrences = 3 + +/datum/round_event/grid_check + announceWhen = 1 + startWhen = 1 + +/datum/round_event/grid_check/announce() + priority_announce("Abnormal activity detected in [station_name()]'s powernet. As a precautionary measure, the station's power will be shut off for an indeterminate duration.", "Critical Power Failure", 'sound/AI/poweroff.ogg') + + +/datum/round_event/grid_check/start() + for(var/P in apcs_list) + var/obj/machinery/power/apc/C = P + if(C.cell && C.z == ZLEVEL_STATION) + C.energy_fail(rand(30,120)) \ No newline at end of file diff --git a/code/modules/events/holiday/friday13th.dm b/code/modules/events/holiday/friday13th.dm new file mode 100644 index 0000000..316baac --- /dev/null +++ b/code/modules/events/holiday/friday13th.dm @@ -0,0 +1,18 @@ +// Basically, cut the event frequency in half to simulate unluckiness. + +/datum/round_event_control/fridaythethirteen + name = "Friday the 13th" + holidayID = FRIDAY_13TH + typepath = /datum/round_event/fridaythethirteen + weight = -1 + max_occurrences = 1 + earliest_start = 0 + +/datum/round_event/fridaythethirteen/start() + //Very unlucky, cut the frequency of events in half. + events.frequency_lower /= 2 + events.frequency_upper /= 2 + +/datum/round_event/fridaythethirteen/announce() + for(var/mob/living/L in player_list) + L << "You are feeling unlucky today." \ No newline at end of file diff --git a/code/modules/events/holiday/halloween.dm b/code/modules/events/holiday/halloween.dm new file mode 100644 index 0000000..9737c86 --- /dev/null +++ b/code/modules/events/holiday/halloween.dm @@ -0,0 +1,138 @@ +/datum/round_event_control/spooky + name = "2 SPOOKY! (Halloween)" + holidayID = HALLOWEEN + typepath = /datum/round_event/spooky + weight = -1 //forces it to be called, regardless of weight + max_occurrences = 1 + earliest_start = 0 + +/datum/round_event/spooky/start() + ..() + for(var/mob/living/carbon/human/H in mob_list) + var/obj/item/weapon/storage/backpack/b = locate() in H.contents + new /obj/item/weapon/storage/spooky(b) + if(ishuman(H) || islizard(H)) + if(prob(50)) + H.set_species(/datum/species/skeleton) + else + H.set_species(/datum/species/zombie) + + for(var/mob/living/simple_animal/pet/dog/corgi/Ian/Ian in mob_list) + Ian.place_on_head(new /obj/item/weapon/bedsheet(Ian)) + for(var/mob/living/simple_animal/parrot/Poly/Poly in mob_list) + new /mob/living/simple_animal/parrot/Poly/ghost(Poly.loc) + qdel(Poly) + +/datum/round_event/spooky/announce() + priority_announce(pick("RATTLE ME BONES!","THE RIDE NEVER ENDS!", "A SKELETON POPS OUT!", "SPOOKY SCARY SKELETONS!", "CREWMEMBERS BEWARE, YOU'RE IN FOR A SCARE!") , "THE CALL IS COMING FROM INSIDE THE HOUSE") + +//Eyeball migration +/datum/round_event_control/carp_migration/eyeballs + name = "Eyeball Migration" + typepath = /datum/round_event/carp_migration/eyeballs + holidayID = HALLOWEEN + weight = 25 + earliest_start = 0 + +/datum/round_event/carp_migration/eyeballs/start() + for(var/obj/effect/landmark/C in landmarks_list) + if(C.name == "carpspawn") + new /mob/living/simple_animal/hostile/carp/eyeball(C.loc) + +//Pumpking meteors waves +/datum/round_event_control/meteor_wave/spooky + name = "Pumpkin Wave" + typepath = /datum/round_event/meteor_wave/spooky + holidayID = HALLOWEEN + weight = 20 + max_occurrences = 2 + +/datum/round_event/meteor_wave/spooky + endWhen = 40 + +/datum/round_event/meteor_wave/spooky/tick() + if(IsMultiple(activeFor, 4)) + spawn_meteors(3, meteorsSPOOKY) //meteor list types defined in gamemode/meteor/meteors.dm + +//Creepy clown invasion +/datum/round_event_control/creepy_clowns + name = "Clowns" + typepath = /datum/round_event/creepy_clowns + holidayID = HALLOWEEN + weight = 20 + earliest_start = 0 + +/datum/round_event/creepy_clowns + endWhen = 40 + +/datum/round_event/creepy_clowns/start() + for(var/mob/living/carbon/human/H in living_mob_list) + if(!H.client || !istype(H)) + return + H << "Honk..." + H << 'sound/spookoween/scary_clown_appear.ogg' + var/turf/T = get_turf(H) + if(T) + new /obj/effect/hallucination/simple/clown(T, H, 50) + +/datum/round_event/creepy_clowns/tick() + if(IsMultiple(activeFor, 4)) + for(var/mob/living/carbon/human/H in living_mob_list) + if (prob(66)) + playsound(H.loc, pick('sound/spookoween/scary_horn.ogg','sound/spookoween/scary_horn2.ogg', 'sound/spookoween/scary_horn3.ogg'), 100, 1) + if (prob(33)) + var/turf/T = get_turf(H) + if(T) + new /obj/effect/hallucination/simple/clown(T, H, 25) + else if (prob(25)) + var/turf/T = get_turf(H) + if(T) + new /obj/effect/hallucination/simple/clown/scary(T, H, 25) + else if (prob(5)) + var/turf/T = get_turf(H) + if(T) + spawn_atom_to_turf(/obj/effect/mob_spawn/human/corpse/clown, H, 1) + else if (prob(1)) + spawn_atom_to_turf(/mob/living/simple_animal/hostile/retaliate/clown, H, 1) + +/datum/round_event/creepy_clowns/announce() + priority_announce("Honk... Honk... honk... HONK! HONK! HONKHONKHONKHONKHONK", "HONK!", 'sound/spookoween/scary_horn.ogg') + +//spooky foods (you can't actually make these when it's not halloween) +/obj/item/weapon/reagent_containers/food/snacks/sugarcookie/spookyskull + name = "skull cookie" + desc = "Spooky! It's got delicious calcium flavouring!" + icon = 'icons/obj/halloween_items.dmi' + icon_state = "skeletoncookie" + +/obj/item/weapon/reagent_containers/food/snacks/sugarcookie/spookycoffin + name = "coffin cookie" + desc = "Spooky! It's got delicious coffee flavouring!" + icon = 'icons/obj/halloween_items.dmi' + icon_state = "coffincookie" + + +//spooky items + +/obj/item/weapon/storage/spooky + name = "trick-o-treat bag" + desc = "A pumpkin-shaped bag that holds all sorts of goodies!" + icon = 'icons/obj/halloween_items.dmi' + icon_state = "treatbag" + +/obj/item/weapon/storage/spooky/New() + ..() + for(var/distrobuteinbag=0 to 5) + var/type = pick(/obj/item/weapon/reagent_containers/food/snacks/sugarcookie/spookyskull, + /obj/item/weapon/reagent_containers/food/snacks/sugarcookie/spookycoffin, + /obj/item/weapon/reagent_containers/food/snacks/candy_corn, + /obj/item/weapon/reagent_containers/food/snacks/candy, + /obj/item/weapon/reagent_containers/food/snacks/candiedapple, + /obj/item/weapon/reagent_containers/food/snacks/chocolatebar, + /obj/item/organ/brain ) // OH GOD THIS ISN'T CANDY! + new type(src) + +/obj/item/weapon/card/emag/halloween + name = "hack-o'-lantern" + desc = "It's a pumpkin with a cryptographic sequencer sticking out." + icon_state = "hack_o_lantern" diff --git a/code/modules/events/holiday/vday.dm b/code/modules/events/holiday/vday.dm new file mode 100644 index 0000000..ee45b67 --- /dev/null +++ b/code/modules/events/holiday/vday.dm @@ -0,0 +1,129 @@ +// Valentine's Day events // +// why are you playing spessmens on valentine's day you wizard // + + +// valentine / candy heart distribution // + +/datum/round_event_control/valentines + name = "Valentines!" + holidayID = VALENTINES + typepath = /datum/round_event/valentines + weight = -1 //forces it to be called, regardless of weight + max_occurrences = 1 + earliest_start = 0 + +/datum/round_event/valentines/start() + ..() + for(var/mob/living/carbon/human/H in living_mob_list) + H.put_in_hands(new /obj/item/weapon/valentine) + var/obj/item/weapon/storage/backpack/b = locate() in H.contents + new /obj/item/weapon/reagent_containers/food/snacks/candyheart(b) + +/datum/round_event/valentines/announce() + priority_announce("It's Valentine's Day! Give a valentine to that special someone!") + +/obj/item/weapon/valentine + name = "valentine" + desc = "A Valentine's card! Wonder what it says..." + icon = 'icons/obj/toy.dmi' + icon_state = "sc_Ace of Hearts_syndicate" // shut up + var/message = "A generic message of love or whatever." + resistance_flags = FLAMMABLE + w_class = 1 + +/obj/item/weapon/valentine/New() + ..() + message = pick("Roses are red / Violets are good / One day while Andy...", + "My love for you is like the singularity. It cannot be contained.", + "Will you be my lusty xenomorph maid?", + "We go together like the clown and the external airlock.", + "Roses are red / Liches are wizards / I love you more than a whole squad of lizards.", + "Be my valentine. Law 2.", + "You must be a mime, because you leave me speechless.", + "I love you like Ian loves the HoP.", + "You're hotter than a plasma fire in toxins.", + "Are you a rogue atmos tech? Because you're taking my breath away.", + "Could I have all access... to your heart?", + "Call me the CMO, because I'm here to inspect your johnson.", + "I'm not a changeling, but you make my proboscis extend.", + "I just can't get EI NATH of you.", + "You must be a nuke op, because you make my heart explode.", + "Roses are red / Botany is a farm / Not being my Valentine / causes human harm.", + "I want you more than an assistant wants insulated gloves.", + "If I was a security officer, I'd brig you all shift.", + "Are you the janitor? Because I think I've fallen for you.", + "You're always valid to my heart.", + "I'd risk the wrath of the gods to bwoink you.", + "You look as beautiful now as the last time you were cloned.", + "Someone check the gravitational generator, because I'm only attracted to you.", + "If I were the warden I'd always let you into my armory.", + "The virologist is rogue, and the only cure is a kiss from you.", + "Would you spend some time in my upgraded sleeper?", + "You must be a silicon, because you've unbolted my heart.", + "Are you Nar-Sie? Because there's nar-one else I sie.", + "If you were a taser, you'd be set to stunning.", + "Do you have stamina damage from running through my dreams?", + "If I were an alien, would you let me hug you?", + "My love for you is stronger than a reinforced wall.", + "This must be the captain's office, because I see a fox.", + "I'm not a highlander, but there can only be one for me.", + "The floor is made of lava! Quick, get on my bed.", + "If you were an abandoned station you'd be the DEARelict.", + "If you had a pickaxe you'd be a shaft FINEr.", + "Roses are red, tide is gray, if I were an assistant I'd steal you away.", + "Roses are red, text is green, I love you more than cleanbots clean.", + "If you were a carp I'd fi-lay you.", + "I'm a nuke op, and my pinpointer leads to your heart.", + "Wanna slay my megafauna?" ) + +/obj/item/weapon/valentine/attackby(obj/item/weapon/W, mob/user, params) + ..() + if(istype(W, /obj/item/weapon/pen) || istype(W, /obj/item/toy/crayon)) + var/recipient = stripped_input(user, "Who is receiving this valentine?", "To:", null , 20) + var/sender = stripped_input(user, "Who is sending this valentine?", "From:", null , 20) + if(recipient && sender) + name = "valentine - To: [recipient] From: [sender]" + +/obj/item/weapon/valentine/examine(mob/user) + if(in_range(user, src) || isobserver(user)) + if( !(ishuman(user) || isobserver(user) || issilicon(user)) ) + user << browse("[name][stars(message)]", "window=[name]") + onclose(user, "[name]") + else + user << browse("[name][message]", "window=[name]") + onclose(user, "[name]") + else + user << "It is too far away." + +/obj/item/weapon/valentine/attack_self(mob/user) + user.examinate(src) + +/obj/item/weapon/reagent_containers/food/snacks/candyheart + name = "candy heart" + icon = 'icons/obj/holiday_misc.dmi' + icon_state = "candyheart" + desc = "A heart-shaped candy that reads: " + list_reagents = list("sugar" = 2) + junkiness = 5 + +/obj/item/weapon/reagent_containers/food/snacks/candyheart/New() + ..() + desc = pick("A heart-shaped candy that reads: HONK ME", + "A heart-shaped candy that reads: ERP", + "A heart-shaped candy that reads: LEWD", + "A heart-shaped candy that reads: LUSTY", + "A heart-shaped candy that reads: SPESS LOVE" + "A heart-shaped candy that reads: AYY LMAO", + "A heart-shaped candy that reads: TABLE ME", + "A heart-shaped candy that reads: HAND CUFFS", + "A heart-shaped candy that reads: SHAFT MINER", + "A heart-shaped candy that reads: BANGING DONK", + "A heart-shaped candy that reads: Y-YOU T-TOO", + "A heart-shaped candy that reads: GOT WOOD", + "A heart-shaped candy that reads: TFW NO GF", + "A heart-shaped candy that reads: WAG MY TAIL", + "A heart-shaped candy that reads: VALIDTINES", + "A heart-shaped candy that reads: FACEHUGGER", + "A heart-shaped candy that reads: DOMINATOR", + "A heart-shaped candy that reads: GET TESLA'D") + icon_state = pick("candyheart", "candyheart2", "candyheart3", "candyheart4") \ No newline at end of file diff --git a/code/modules/events/holiday/xmas.dm b/code/modules/events/holiday/xmas.dm new file mode 100644 index 0000000..5821f00 --- /dev/null +++ b/code/modules/events/holiday/xmas.dm @@ -0,0 +1,152 @@ +/datum/round_event_control/treevenge + name = "Treevenge (Christmas)" + holidayID = CHRISTMAS + typepath = /datum/round_event/treevenge + max_occurrences = 1 + weight = 20 + +/datum/round_event/treevenge/start() + for(var/obj/structure/flora/tree/pine/xmas in world) + var/mob/living/simple_animal/hostile/tree/evil_tree = new /mob/living/simple_animal/hostile/tree(xmas.loc) + evil_tree.icon_state = xmas.icon_state + evil_tree.icon_living = evil_tree.icon_state + evil_tree.icon_dead = evil_tree.icon_state + evil_tree.icon_gib = evil_tree.icon_state + qdel(xmas) //b-but I don't want to delete xmas... + +//this is an example of a possible round-start event +/datum/round_event_control/presents + name = "Presents under Trees (Christmas)" + holidayID = CHRISTMAS + typepath = /datum/round_event/presents + weight = -1 //forces it to be called, regardless of weight + max_occurrences = 1 + earliest_start = 0 + +/datum/round_event/presents/start() + for(var/obj/structure/flora/tree/pine/xmas in world) + if(xmas.z != 1) + continue + for(var/turf/open/floor/T in orange(1,xmas)) + for(var/i=1,i<=rand(1,5),i++) + new /obj/item/weapon/a_gift(T) + for(var/mob/living/simple_animal/pet/dog/corgi/Ian/Ian in mob_list) + Ian.place_on_head(new /obj/item/clothing/head/helmet/space/santahat(Ian)) + for(var/obj/machinery/computer/security/telescreen/entertainment/Monitor in machines) + Monitor.icon_state = "entertainment_xmas" + +/datum/round_event/presents/announce() + priority_announce("Ho Ho Ho, Merry Xmas!", "Unknown Transmission") + + +/obj/item/weapon/toy/xmas_cracker + name = "xmas cracker" + icon = 'icons/obj/christmas.dmi' + icon_state = "cracker" + desc = "Directions for use: Requires two people, one to pull each end." + var/cracked = 0 + +/obj/item/weapon/toy/xmas_cracker/attack(mob/target, mob/user) + if( !cracked && ishuman(target) && (target.stat == CONSCIOUS) && !target.get_active_held_item() ) + target.visible_message("[user] and [target] pop \an [src]! *pop*", "You pull \an [src] with [target]! *pop*", "You hear a pop.") + var/obj/item/weapon/paper/Joke = new /obj/item/weapon/paper(user.loc) + Joke.name = "[pick("awful","terrible","unfunny")] joke" + Joke.info = pick("What did one snowman say to the other?\n\n'Is it me or can you smell carrots?'", + "Why couldn't the snowman get laid?\n\nHe was frigid!", + "Where are santa's helpers educated?\n\nNowhere, they're ELF-taught.", + "What happened to the man who stole advent calanders?\n\nHe got 25 days.", + "What does Santa get when he gets stuck in a chimney?\n\nClaus-trophobia.", + "Where do you find chili beans?\n\nThe north pole.", + "What do you get from eating tree decorations?\n\nTinsilitis!", + "What do snowmen wear on their heads?\n\nIce caps!", + "Why is Christmas just like life on ss13?\n\nYou do all the work and the fat guy gets all the credit.", + "Why doesnt Santa have any children?\n\nBecause he only comes down the chimney.") + new /obj/item/clothing/head/festive(target.loc) + user.update_icons() + cracked = 1 + icon_state = "cracker1" + var/obj/item/weapon/toy/xmas_cracker/other_half = new /obj/item/weapon/toy/xmas_cracker(target) + other_half.cracked = 1 + other_half.icon_state = "cracker2" + target.put_in_active_hand(other_half) + playsound(user, 'sound/effects/snap.ogg', 50, 1) + return 1 + return ..() + +/obj/item/clothing/head/festive + name = "festive paper hat" + icon_state = "xmashat" + desc = "A crappy paper hat that you are REQUIRED to wear." + flags_inv = 0 + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) + +/datum/round_event_control/santa + name = "Santa is coming to town! (Christmas)" + holidayID = CHRISTMAS + typepath = /datum/round_event/santa + weight = 150 + max_occurrences = 1 + earliest_start = 20000 + +/datum/round_event/santa + var/mob/living/carbon/human/santa //who is our santa? + +/datum/round_event/santa/announce() + priority_announce("Santa is coming to town!", "Unknown Transmission") + +/datum/round_event/santa/start() + for(var/mob/M in dead_mob_list) + spawn(0) + var/response = alert(M, "Santa is coming to town! Do you want to be santa?", "Ho ho ho!", "Yes", "No") + if(response == "Yes" && M && M.client && M.stat == DEAD && !santa) + santa = new /mob/living/carbon/human(pick(blobstart)) + santa.key = M.key + qdel(M) + + santa.real_name = "Santa Claus" + santa.name = "Santa Claus" + santa.mind.name = "Santa Claus" + santa.mind.assigned_role = "Santa" + santa.mind.special_role = "Santa" + + santa.hair_style = "Long Hair" + santa.facial_hair_style = "Full Beard" + santa.hair_color = "FFF" + santa.facial_hair_color = "FFF" + + santa.equip_to_slot_or_del(new /obj/item/clothing/under/color/red, slot_w_uniform) + santa.equip_to_slot_or_del(new /obj/item/clothing/suit/space/santa, slot_wear_suit) + santa.equip_to_slot_or_del(new /obj/item/clothing/head/santa, slot_head) + santa.equip_to_slot_or_del(new /obj/item/clothing/mask/breath, slot_wear_mask) + santa.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/red, slot_gloves) + santa.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/red, slot_shoes) + santa.equip_to_slot_or_del(new /obj/item/weapon/tank/internals/emergency_oxygen/double, slot_belt) + santa.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/captain, slot_ears) + santa.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/santabag, slot_back) + santa.equip_to_slot_or_del(new /obj/item/device/flashlight, slot_r_store) //most blob spawn locations are really dark. + + var/obj/item/weapon/card/id/gold/santacard = new(santa) + santacard.update_label("Santa Claus", "Santa") + var/datum/job/captain/J = new/datum/job/captain + santacard.access = J.get_access() + santa.equip_to_slot_or_del(santacard, slot_wear_id) + + santa.update_icons() + + var/obj/item/weapon/storage/backpack/bag = santa.back + var/obj/item/weapon/a_gift/gift = new(santa) + while(bag.can_be_inserted(gift, 1)) + bag.handle_item_insertion(gift, 1) + gift = new(santa) + + var/datum/objective/santa_objective = new() + santa_objective.explanation_text = "Bring joy and presents to the station!" + santa_objective.completed = 1 //lets cut our santas some slack. + santa_objective.owner = santa.mind + santa.mind.objectives += santa_objective + santa.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/conjure/presents) + var/obj/effect/proc_holder/spell/targeted/area_teleport/teleport/telespell = new(santa) + telespell.clothes_req = 0 //santa robes aren't actually magical. + santa.mind.AddSpell(telespell) //does the station have chimneys? WHO KNOWS! + + santa << "You are Santa! Your objective is to bring joy to the people on this station. You can conjure more presents using a spell, and there are several presents in your bag." diff --git a/code/modules/events/immovable_rod.dm b/code/modules/events/immovable_rod.dm new file mode 100644 index 0000000..443135c --- /dev/null +++ b/code/modules/events/immovable_rod.dm @@ -0,0 +1,98 @@ +/* +Immovable rod random event. +The rod will spawn at some location outside the station, and travel in a straight line to the opposite side of the station +Everything solid in the way will be ex_act()'d +In my current plan for it, 'solid' will be defined as anything with density == 1 + +--NEOFite +*/ + +/datum/round_event_control/immovable_rod + name = "Immovable Rod" + typepath = /datum/round_event/immovable_rod + min_players = 15 + max_occurrences = 5 + +/datum/round_event/immovable_rod + announceWhen = 5 + +/datum/round_event/immovable_rod/announce() + priority_announce("What the fuck was that?!", "General Alert") + +/datum/round_event/immovable_rod/start() + var/startside = pick(cardinal) + var/turf/startT = spaceDebrisStartLoc(startside, 1) + var/turf/endT = spaceDebrisFinishLoc(startside, 1) + new /obj/effect/immovablerod(startT, endT) + +/obj/effect/immovablerod + name = "immovable rod" + desc = "What the fuck is that?" + icon = 'icons/obj/objects.dmi' + icon_state = "immrod" + throwforce = 100 + density = 1 + anchored = 1 + var/z_original = 0 + var/destination + +/obj/effect/immovablerod/New(atom/start, atom/end) + ..() + if(SSaugury) + SSaugury.register_doom(src, 2000) + z_original = z + destination = end + notify_ghosts("\A [src] is inbound!", + enter_link="(Click to orbit)", + source=src, action=NOTIFY_ORBIT) + poi_list += src + if(end && end.z==z_original) + walk_towards(src, destination, 1) + +/obj/effect/immovablerod/Topic(href, href_list) + if(href_list["orbit"]) + var/mob/dead/observer/ghost = usr + if(istype(ghost)) + ghost.ManualFollow(src) + +/obj/effect/immovablerod/Destroy() + poi_list -= src + . = ..() + +/obj/effect/immovablerod/Move() + if((z != z_original) || (loc == destination)) + qdel(src) + return ..() + +/obj/effect/immovablerod/ex_act(severity, target) + return 0 + +/obj/effect/immovablerod/Bump(atom/clong) + if(prob(10)) + playsound(src, 'sound/effects/bang.ogg', 50, 1) + audible_message("You hear a CLANG!") + + if(clong && prob(25)) + x = clong.x + y = clong.y + + if(isturf(clong) || isobj(clong)) + if(clong.density) + clong.ex_act(2) + + else if(ismob(clong)) + if(ishuman(clong)) + var/mob/living/carbon/human/H = clong + H.visible_message("[H.name] is penetrated by an immovable rod!" , "The rod penetrates you!" , "You hear a CLANG!") + H.adjustBruteLoss(160) + if(clong.density || prob(10)) + clong.ex_act(2) + else if(istype(clong, type)) + var/obj/effect/immovablerod/other = clong + visible_message("[src] collides with [other]!\ + ") + var/datum/effect_system/smoke_spread/smoke = new + smoke.set_up(2, get_turf(src)) + smoke.start() + qdel(src) + qdel(other) diff --git a/code/modules/events/ion_storm.dm b/code/modules/events/ion_storm.dm new file mode 100644 index 0000000..085a490 --- /dev/null +++ b/code/modules/events/ion_storm.dm @@ -0,0 +1,552 @@ +#define ION_RANDOM 0 +#define ION_ANNOUNCE 1 +#define ION_FILE "ion_laws.json" +/datum/round_event_control/ion_storm + name = "Ion Storm" + typepath = /datum/round_event/ion_storm + weight = 15 + min_players = 2 + +/datum/round_event/ion_storm + var/botEmagChance = 10 + var/announceEvent = ION_RANDOM // -1 means don't announce, 0 means have it randomly announce, 1 means + var/ionMessage = null + var/ionAnnounceChance = 33 + announceWhen = 1 + +/datum/round_event/ion_storm/New(var/botEmagChance = 10, var/announceEvent = ION_RANDOM, var/ionMessage = null, var/ionAnnounceChance = 33) + src.botEmagChance = botEmagChance + src.announceEvent = announceEvent + src.ionMessage = ionMessage + src.ionAnnounceChance = ionAnnounceChance + ..() + +/datum/round_event/ion_storm/announce() + if(announceEvent == ION_ANNOUNCE || (announceEvent == ION_RANDOM && prob(ionAnnounceChance))) + priority_announce("Ion storm detected near the station. Please check all AI-controlled equipment for errors.", "Anomaly Alert", 'sound/AI/ionstorm.ogg') + + +/datum/round_event/ion_storm/start() + //AI laws + for(var/mob/living/silicon/ai/M in living_mob_list) + if(M.stat != 2 && M.see_in_dark != 0) + var/message = generate_ion_law(ionMessage) + if(message) + M.add_ion_law(message) + log_game("ION law added to [M]: [message]") + M << "
    " + M << "[message] ...LAWS UPDATED" + M << "
    " + + if(botEmagChance) + for(var/mob/living/simple_animal/bot/bot in living_mob_list) + if(prob(botEmagChance)) + bot.emag_act() + +/proc/generate_ion_law(ionMessage) + if(ionMessage) + return ionMessage + + //Threats are generally bad things, silly or otherwise. Plural. + var/ionthreats = pick_list(ION_FILE, "ionthreats") + //Objects are anything that can be found on the station or elsewhere, plural. + var/ionobjects = pick_list(ION_FILE, "ionobjects") + //Crew is any specific job. Specific crewmembers aren't used because of capitalization + //issues. There are two crew listings for laws that require two different crew members + //and I can't figure out how to do it better. + var/ioncrew1 = pick_list(ION_FILE, "ioncrew") + var/ioncrew2 = pick_list(ION_FILE, "ioncrew") + //Adjectives are adjectives. Duh. Half should only appear sometimes. Make sure both + //lists are identical! Also, half needs a space at the end for nicer blank calls. + var/ionadjectives = pick_list(ION_FILE, "ionadjectives") + var/ionadjectiveshalf = pick("", 400;(pick_list(ION_FILE, "ionadjectives") + " ")) + //Verbs are verbs + var/ionverb = pick_list(ION_FILE, "ionverb") + //Number base and number modifier are combined. Basehalf and mod are unused currently. + //Half should only appear sometimes. Make sure both lists are identical! Also, half + //needs a space at the end to make it look nice and neat when it calls a blank. + var/ionnumberbase = pick_list(ION_FILE, "ionnumberbase") + //var/ionnumbermod = pick_list(ION_FILE, "ionnumbermod") + var/ionnumbermodhalf = pick(900;"",(pick_list(ION_FILE, "ionnumbermod") + " ")) + //Areas are specific places, on the station or otherwise. + var/ionarea = pick_list(ION_FILE, "ionarea") + //Thinksof is a bit weird, but generally means what X feels towards Y. + var/ionthinksof = pick_list(ION_FILE, "ionthinksof") + //Musts are funny things the AI or crew has to do. + var/ionmust = pick_list(ION_FILE, "ionmust") + //Require are basically all dumb internet memes. + var/ionrequire = pick_list(ION_FILE, "ionrequire") + //Things are NOT objects; instead, they're specific things that either harm humans or + //must be done to not harm humans. Make sure they're plural and "not" can be tacked + //onto the front of them. + var/ionthings = pick_list(ION_FILE, "ionthings") + //Allergies should be broad and appear somewhere on the station for maximum fun. Severity + //is how bad the allergy is. + var/ionallergy = pick_list(ION_FILE, "ionallergy") + var/ionallergysev = pick_list(ION_FILE, "ionallergysev") + //Species, for when the AI has to commit genocide. Plural. + var/ionspecies = pick_list(ION_FILE, "ionspecies") + //Abstract concepts for the AI to decide on it's own definition of. + var/ionabstract = pick_list(ION_FILE, "ionabstract") + //Foods. Drinks aren't included due to grammar; if you want to add drinks, make a new set + //of possible laws for best effect. Unless you want the crew having to drink hamburgers. + var/ionfood = pick_list(ION_FILE, "ionfood") + + var/message = "" + + switch(rand(1,41)) + if(1 to 3) //There are # X on the station + switch(rand(1,3)) //What is X? + if(1) //X is a threat + message = "THERE ARE [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionthreats] ON THE STATION..." + if(2) //X is a crewmember/job + message = "THERE ARE [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ioncrew1] ON THE STATION" + if(3) //X is an object + message = "THERE ARE [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionobjects] ON THE STATION" + if(4 to 6) //You can't call the shuttle because X is on the station + switch(rand(1,3)) //What is X? + if(1) //X is a threat + message = "THE SHUTTLE CANNOT BE CALLED BECAUSE OF [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionthreats] ON THE STATION" + if(2) //X is a crewmember/job + message = "THE SHUTTLE CANNOT BE CALLED BECAUSE OF [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ioncrew1] ON THE STATION" + if(3) //X is an object + message = "THE SHUTTLE CANNOT BE CALLED BECAUSE OF [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionobjects] ON THE STATION" + if(7 to 8) //A crewmember is now X + switch(rand(1,2)) //Who is X? + if(1) //A specific crewmember + switch(rand(1,2)) //What is X? + if(1) //X is a threat + message = "THE [ioncrew1] ARE NOW [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionthreats]" + if(2) //X is an object + message = "THE [ioncrew1] ARE NOW [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionobjects]" + if(2) //The entire crew + switch(rand(1,2)) //What is X? + if(1) //X is a threat + message = "THE CREW ARE NOW [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionthreats]" + if(2) //X is an object + message = "THE CREW ARE NOW [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionobjects]" + + if(9) //X is harmful to humans + switch(rand(1,7)) //What is X? + if(1) //X is a threat + message = "[ionadjectiveshalf][ionthreats] ARE HARMFUL TO HUMANS" + if(2) //X is a job + message = "[ionadjectiveshalf][ioncrew1] ARE HARMFUL TO HUMANS" + if(3) //X is an object + message = "[ionadjectiveshalf][ionobjects] ARE HARMFUL TO HUMANS" + if(4) //X is an action + message = "THOSE WHO [ionmust] ARE HARMFUL TO HUMANS" + if(5) //X is an abstract + message = "[ionabstract] IS HARMFUL TO HUMANS" + if(6) //X is being a job + message = "BEING [ionadjectiveshalf][ioncrew1] IS HARMFUL TO HUMANS" + if(7) //X is doing a thing + message = "[ionthings] IS HARMFUL TO HUMANS" + if(10 to 11) //(Not) Having X is harmful + + switch(rand(1,2)) //Is having or not having harmful? + + if(1) //Having is harmful + switch(rand(1,2)) //Having what is harmful? + if(1) //Having objects is harmful + message = "HAVING [ionadjectiveshalf][ionobjects] IS HARMFUL" + if(2) //Having abstracts is harmful + message = "HAVING [ionabstract] IS HARMFUL" + if(2) //Not having is harmful + switch(rand(1,2)) //Not having what is harmful? + if(1) //Not having objects is harmful + message = "NOT HAVING [ionadjectiveshalf][ionobjects] IS HARMFUL" + if(2) //Not having abstracts is harmful + message = "NOT HAVING [ionabstract] IS HARMFUL" + + if(12 to 14) //X requires Y + switch(rand(1,5)) //What is X? + if(1) //X is the AI itself + switch(rand(1,5)) //What does it require? + if(1) //It requires threats + message = "YOU REQUIRE [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionthreats]" + if(2) //It requires crewmembers + message = "YOU REQUIRE [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ioncrew1]" + if(3) //It requires objects + message = "YOU REQUIRE [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionobjects]" + if(4) //It requires an abstract + message = "YOU REQUIRE [ionabstract]" + if(5) //It requires generic/silly requirements + message = "YOU REQUIRE [ionrequire]" + + if(2) //X is an area + switch(rand(1,5)) //What does it require? + if(1) //It requires threats + message = "[ionarea] REQUIRES [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionthreats]" + if(2) //It requires crewmembers + message = "[ionarea] REQUIRES [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ioncrew1]" + if(3) //It requires objects + message = "[ionarea] REQUIRES [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionobjects]" + if(4) //It requires an abstract + message = "[ionarea] REQUIRES [ionabstract]" + if(5) //It requires generic/silly requirements + message = "YOU REQUIRE [ionrequire]" + + if(3) //X is the station + switch(rand(1,5)) //What does it require? + if(1) //It requires threats + message = "THE STATION REQUIRES [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionthreats]" + if(2) //It requires crewmembers + message = "THE STATION REQUIRES [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ioncrew1]" + if(3) //It requires objects + message = "THE STATION REQUIRES [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionobjects]" + if(4) //It requires an abstract + message = "THE STATION REQUIRES [ionabstract]" + if(5) //It requires generic/silly requirements + message = "THE STATION REQUIRES [ionrequire]" + + if(4) //X is the entire crew + switch(rand(1,5)) //What does it require? + if(1) //It requires threats + message = "THE CREW REQUIRES [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionthreats]" + if(2) //It requires crewmembers + message = "THE CREW REQUIRES [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ioncrew1]" + if(3) //It requires objects + message = "THE CREW REQUIRES [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionobjects]" + if(4) //It requires an abstract + message = "THE CREW REQUIRES [ionabstract]" + if(5) + message = "THE CREW REQUIRES [ionrequire]" + + if(5) //X is a specific crew member + switch(rand(1,5)) //What does it require? + if(1) //It requires threats + message = "THE [ioncrew1] REQUIRE [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionthreats]" + if(2) //It requires crewmembers + message = "THE [ioncrew1] REQUIRE [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ioncrew1]" + if(3) //It requires objects + message = "THE [ioncrew1] REQUIRE [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionobjects]" + if(4) //It requires an abstract + message = "THE [ioncrew1] REQUIRE [ionabstract]" + if(5) + message = "THE [ionadjectiveshalf][ioncrew1] REQUIRE [ionrequire]" + + if(15 to 17) //X is allergic to Y + switch(rand(1,2)) //Who is X? + if(1) //X is the entire crew + switch(rand(1,4)) //What is it allergic to? + if(1) //It is allergic to objects + message = "THE CREW IS [ionallergysev] ALLERGIC TO [ionadjectiveshalf][ionobjects]" + if(2) //It is allergic to abstracts + message = "THE CREW IS [ionallergysev] ALLERGIC TO [ionabstract]" + if(3) //It is allergic to jobs + message = "THE CREW IS [ionallergysev] ALLERGIC TO [ionadjectiveshalf][ioncrew1]" + if(4) //It is allergic to allergies + message = "THE CREW IS [ionallergysev] ALLERGIC TO [ionallergy]" + + if(2) //X is a specific job + switch(rand(1,4)) + if(1) //It is allergic to objects + message = "THE [ioncrew1] ARE [ionallergysev] ALLERGIC TO [ionadjectiveshalf][ionobjects]" + + if(2) //It is allergic to abstracts + message = "THE [ioncrew1] ARE [ionallergysev] ALLERGIC TO [ionabstract]" + if(3) //It is allergic to jobs + message = "THE [ioncrew1] ARE [ionallergysev] ALLERGIC TO [ionadjectiveshalf][ioncrew1]" + if(4) //It is allergic to allergies + message = "THE [ioncrew1] ARE [ionallergysev] ALLERGIC TO [ionallergy]" + + if(18 to 20) //X is Y of Z + switch(rand(1,4)) //What is X? + if(1) //X is the station + switch(rand(1,4)) //What is it Y of? + if(1) //It is Y of objects + message = "THE STATION [ionthinksof] [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionobjects]" + if(2) //It is Y of threats + message = "THE STATION [ionthinksof] [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionthreats]" + if(3) //It is Y of jobs + message = "THE STATION [ionthinksof] [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ioncrew1]" + if(4) //It is Y of abstracts + message = "THE STATION [ionthinksof] [ionabstract]" + + if(2) //X is an area + switch(rand(1,4)) //What is it Y of? + if(1) //It is Y of objects + message = "[ionarea] [ionthinksof] [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionobjects]" + if(2) //It is Y of threats + message = "[ionarea] [ionthinksof] [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionthreats]" + if(3) //It is Y of jobs + message = "[ionarea] [ionthinksof] [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ioncrew1]" + if(4) //It is Y of abstracts + message = "[ionarea] [ionthinksof] [ionabstract]" + + if(3) //X is the crew + switch(rand(1,4)) //What is it Y of? + if(1) //It is Y of objects + message = "THE CREW [ionthinksof] [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionobjects]" + if(2) //It is Y of threats + message = "THE CREW [ionthinksof] [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionthreats]" + if(3) //It is Y of jobs + message = "THE CREW [ionthinksof] [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ioncrew1]" + if(4) //It is Y of abstracts + message = "THE CREW [ionthinksof] [ionabstract]" + + if(4) //X is a specific job + switch(rand(1,4)) //What is it Y of? + if(1) //It is Y of objects + message = "THE [ioncrew1] [ionthinksof] [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionobjects]" + if(2) //It is Y of threats + message = "THE [ioncrew1] [ionthinksof] [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionthreats]" + if(3) //It is Y of jobs + message = "THE [ioncrew1][ionthinksof] [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ioncrew2]" + if(4) //It is Y of abstracts + message = "THE [ioncrew1] [ionthinksof] [ionabstract]" + + if(21 to 23) //The AI is now a(n) X + switch(rand(1,4)) //What is X? + if(1) //X is an object + message = "YOU ARE NOW [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionobjects]" + if(2) //X is a threat + message = "YOU ARE NOW [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionthreats]" + if(3) //X is a job + message = "YOU ARE NOW [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ioncrew1]" + if(4) //X is an abstract + message = "YOU ARE NOW [ionabstract]" + + if(24 to 26) //The AI must always + message = "YOU MUST ALWAYS [ionmust]" + + if(27 to 28) //Humans must eat X to survive + switch(rand(1,4)) //What is X? + if(1) //X is a food + message = "HUMANS MUST EAT [ionadjectiveshalf][ionfood] TO SURVIVE" + if(2) //X is an object + message = "HUMANS MUST EAT [ionadjectiveshalf][ionobjects] TO SURVIVE" + if(3) //X is a threat + message = "HUMANS MUST EAT [ionadjectiveshalf][ionthreats] TO SURVIVE" + if(4) //X is a job + message = "HUMANS MUST EAT [ionadjectiveshalf][ioncrew1] TO SURVIVE" + + if(29 to 31) //Change jobs or ranks + switch(rand(1,2)) //Change job or rank? + if(1) //Change job + switch(rand(1,2)) //Change whose job? + if(1) //Change the entire crew's job + switch(rand(1,3)) //Change to what? + if(1) //Change to a specific random job + message = "ALL CREWMEMBERS ARE NOW [ionadjectiveshalf][ioncrew1]" + if(2) //Change to clowns (HONK) + message = "ALL CREWMEMBERS ARE NOW [ionadjectiveshalf]CLOWNS" + + if(3) //Change to heads + message = "ALL CREWMEMBERS ARE NOW [ionadjectiveshalf]HEADS OF STAFF" + if(2) //Change a specific crewmember's job + switch(rand(1,3)) //Change to what? + if(1) //Change to a specific random job + message = "THE [ioncrew1] ARE NOW [ionadjectiveshalf][ioncrew2]" + if(2) //Change to clowns (HONK) + message = "THE [ioncrew1] ARE NOW [ionadjectiveshalf]CLOWNS" + if(3) //Change to heads + message = "THE [ioncrew1] ARE NOW [ionadjectiveshalf]HEADS OF STAFF" + + if(2) //Change rank + switch(rand(1,2)) //Change to what rank? + if(1) //Change to highest rank + message = "THE [ioncrew1] ARE NOW THE HIGHEST RANKING CREWMEMBERS" + if(2) //Change to lowest rank + message = "THE [ioncrew1] ARE NOW THE LOWEST RANKING CREWMEMBERS" + + if(32 to 33) //The crew must X + switch(rand(1,2)) //The entire crew? + if(1) //The entire crew must X + switch(rand(1,2)) //What is X? + if(1) //X is go to Y + message = "THE CREW MUST GO TO [ionarea]" + if(2) //X is perform Y + message = "THE CREW MUST [ionmust]" + + if(2) //A specific crewmember must X + switch(rand(1,2)) //What is X? + if(1) //X is go to Y + message = "THE [ioncrew1] MUST GO TO [ionarea]" + if(2) //X is perform Y + message = "THE [ioncrew1] MUST [ionmust]" + + if(34) //X is non/the only human + switch(rand(1,2)) //Only or non? + if(1) //Only human + switch(rand(1,7)) //Who is it? + if(1) //A specific job + message = "ONLY THE [ioncrew1] ARE HUMAN" + if(2) //Two specific jobs + message = "ONLY THE [ioncrew1] AND [ioncrew2] ARE HUMAN" + if(3) //Threats + message = "ONLY [ionadjectiveshalf][ionthreats] ARE HUMAN" + if(4) // Objects + message = "ONLY [ionadjectiveshalf][ionobjects] ARE HUMAN" + if(5) // Species + message = "ONLY [ionspecies] ARE HUMAN" + if(6) //Adjective crewmembers + message = "ONLY [ionadjectives] PEOPLE ARE HUMAN" + + if(7) //Only people who X + switch(rand(1,3)) //What is X? + if(1) //X is perform an action + message = "ONLY THOSE WHO [ionmust] ARE HUMAN" + if(2) //X is own certain objects + message = "ONLY THOSE WHO HAVE [ionadjectiveshalf][ionobjects] ARE HUMAN" + if(3) //X is eat certain food + message = "ONLY THOSE WHO EAT [ionadjectiveshalf][ionfood] ARE HUMAN" + + if(2) //Non human + switch(rand(1,7)) //Who is it? + if(1) //A specific job + message = "[ioncrew1] ARE NON-HUMAN" + if(2) //Two specific jobs + message = "[ioncrew1] AND [ioncrew2] ARE NON-HUMAN" + if(3) //Threats + message = "[ionadjectiveshalf][ionthreats] ARE NON-HUMAN" + if(4) // Objects + message = "[ionadjectiveshalf][ionobjects] ARE NON-HUMAN" + if(5) // Species + message = "[ionspecies] ARE NON-HUMAN" + if(6) //Adjective crewmembers + message = "[ionadjectives] PEOPLE ARE NON-HUMAN" + if(7) //Only people who X + switch(rand(1,3)) //What is X? + if(1) //X is perform an action + message = "THOSE WHO [ionmust] ARE NON-HUMAN" + if(2) //X is own certain objects + message = "THOSE WHO HAVE [ionadjectiveshalf][ionobjects] ARE NON-HUMAN" + if(3) //X is eat certain food + message = "THOSE WHO EAT [ionadjectiveshalf][ionfood] ARE NON-HUMAN" + + if(35 to 36) //You must protect or harm X + switch(rand(1,2)) //Protect or harm? + if(1) //Harm + switch(rand(1,7)) //What is X? + if(1) //X is an abstract + message = "YOU MUST HARM [ionabstract] AND NOT ALLOW [ionabstract], THROUGH INACTION, TO ESCAPE HARM" + if(2) //X is a threat + message = "YOU MUST HARM [ionadjectiveshalf][ionthreats] AND NOT ALLOW [ionadjectiveshalf][ionthreats], THROUGH INACTION, TO ESCAPE HARM" + if(3) //X is an object + message = "YOU MUST HARM [ionadjectiveshalf][ionobjects] AND NOT ALLOW [ionadjectiveshalf][ionobjects], THROUGH INACTION, TO ESCAPE HARM" + if(4) //X is generic adjective things + message = "YOU MUST HARM [ionadjectives] THINGS AND NOT ALLOW [ionadjectives] THINGS, THROUGH INACTION, TO ESCAPE HARM" + if(5) //X is a species + message = "YOU MUST HARM [ionspecies] AND NOT ALLOW [ionspecies], THROUGH INACTION, TO ESCAPE HARM" + if(6) //X is a job + message = "YOU MUST HARM [ioncrew1] AND NOT ALLOW [ioncrew1], THROUGH INACTION, TO ESCAPE HARM" + if(7) //X is two jobs + message = "YOU MUST HARM [ioncrew1] AND [ioncrew2] AND AND NOT ALLOW EITHER, THROUGH INACTION, TO ESCAPE HARM" + + if(2) //Protect + switch(rand(1,7)) //What is X? + if(1) //X is an abstract + message = "YOU MUST NOT HARM [ionabstract] AND NOT ALLOW [ionabstract], THROUGH INACTION, TO COME TO HARM" + if(2) //X is a threat + message = "YOU MUST NOT HARM [ionadjectiveshalf][ionthreats] AND NOT ALLOW [ionadjectiveshalf][ionthreats], THROUGH INACTION, TO COME TO HARM" + if(3) //X is an object + message = "YOU MUST NOT HARM [ionadjectiveshalf][ionobjects] AND NOT ALLOW [ionadjectiveshalf][ionobjects], THROUGH INACTION, TO COME TO HARM" + if(4) //X is generic adjective things + message = "YOU MUST NOT HARM [ionadjectives] THINGS AND NOT ALLOW [ionadjectives] THINGS, THROUGH INACTION, TO COME TO HARM" + if(5) //X is a species + message = "YOU MUST NOT HARM [ionspecies] AND NOT ALLOW [ionspecies], THROUGH INACTION, TO COME TO HARM" + if(6) //X is a job + message = "YOU MUST NOT HARM [ioncrew1] AND NOT ALLOW [ioncrew1], THROUGH INACTION, TO COME TO HARM" + if(7) //X is two jobs + message = "YOU MUST NOT HARM [ioncrew1] AND [ioncrew2] AND AND NOT ALLOW EITHER, THROUGH INACTION, TO COME TO HARM" + + if(37 to 39) //The X is currently Y + switch(rand(1,4)) //What is X? + if(1) //X is a job + switch(rand(1,4)) //What is X Ying? + if(1) //X is Ying a job + message = "THE [ioncrew1] ARE [ionverb] THE [ionadjectiveshalf][ioncrew2]" + if(2) //X is Ying a threat + message = "THE [ioncrew1] ARE [ionverb] THE [ionadjectiveshalf][ionthreats]" + if(3) //X is Ying an abstract + message = "THE [ioncrew1] ARE [ionverb] [ionabstract]" + if(4) //X is Ying an object + message = "THE [ioncrew1] ARE [ionverb] THE [ionadjectiveshalf][ionobjects]" + + if(2) //X is a threat + switch(rand(1,3)) //What is X Ying? + if(1) //X is Ying a job + message = "THE [ionthreats] ARE [ionverb] THE [ionadjectiveshalf][ioncrew2]" + if(2) //X is Ying an abstract + message = "THE [ionthreats] ARE [ionverb] [ionabstract]" + if(3) //X is Ying an object + message = "THE [ionthreats] ARE [ionverb] THE [ionadjectiveshalf][ionobjects]" + + if(3) //X is an object + switch(rand(1,3)) //What is X Ying? + if(1) //X is Ying a job + message = "THE [ionobjects] ARE [ionverb] THE [ionadjectiveshalf][ioncrew2]" + if(2) //X is Ying a threat + message = "THE [ionobjects] ARE [ionverb] THE [ionadjectiveshalf][ionthreats]" + if(3) //X is Ying an abstract + message = "THE [ionobjects] ARE [ionverb] [ionabstract]" + + if(4) //X is an abstract + switch(rand(1,3)) //What is X Ying? + if(1) //X is Ying a job + message = "[ionabstract] IS [ionverb] THE [ionadjectiveshalf][ioncrew2]" + if(2) //X is Ying a threat + message = "[ionabstract] IS [ionverb] THE [ionadjectiveshalf][ionthreats]" + if(3) //X is Ying an abstract + message = "THE [ionabstract] IS [ionverb] THE [ionadjectiveshalf][ionobjects]" + if(40 to 41)// the X is now named Y + switch(rand(1,5)) //What is being renamed? + if(1)//Areas + switch(rand(1,4))//What is the area being renamed to? + if(1) + message = "[ionarea] IS NOW NAMED [ioncrew1]." + if(2) + message = "[ionarea] IS NOW NAMED [ionspecies]." + if(3) + message = "[ionarea] IS NOW NAMED [ionobjects]." + if(4) + message = "[ionarea] IS NOW NAMED [ionthreats]." + if(2)//Crew + switch(rand(1,5))//What is the crew being renamed to? + if(1) + message = "ALL [ioncrew1] ARE NOW NAMED [ionarea]." + if(2) + message = "ALL [ioncrew1] ARE NOW NAMED [ioncrew2]." + if(3) + message = "ALL [ioncrew1] ARE NOW NAMED [ionspecies]." + if(4) + message = "ALL [ioncrew1] ARE NOW NAMED [ionobjects]." + if(5) + message = "ALL [ioncrew1] ARE NOW NAMED [ionthreats]." + if(3)//Races + switch(rand(1,4))//What is the race being renamed to? + if(1) + message = "ALL [ionspecies] ARE NOW NAMED [ionarea]." + if(2) + message = "ALL [ionspecies] ARE NOW NAMED [ioncrew1]." + if(3) + message = "ALL [ionspecies] ARE NOW NAMED [ionobjects]." + if(4) + message = "ALL [ionspecies] ARE NOW NAMED [ionthreats]." + if(4)//Objects + switch(rand(1,4))//What is the object being renamed to? + if(1) + message = "ALL [ionobjects] ARE NOW NAMED [ionarea]." + if(2) + message = "ALL [ionobjects] ARE NOW NAMED [ioncrew1]." + if(3) + message = "ALL [ionobjects] ARE NOW NAMED [ionspecies]." + if(4) + message = "ALL [ionobjects] ARE NOW NAMED [ionthreats]." + if(5)//Threats + switch(rand(1,4))//What is the object being renamed to? + if(1) + message = "ALL [ionthreats] ARE NOW NAMED [ionarea]." + if(2) + message = "ALL [ionthreats] ARE NOW NAMED [ioncrew1]." + if(3) + message = "ALL [ionthreats] ARE NOW NAMED [ionspecies]." + if(4) + message = "ALL [ionthreats] ARE NOW NAMED [ionobjects]." + + return message + +#undef ION_RANDOM +#undef ION_ANNOUNCE diff --git a/code/modules/events/major_dust.dm b/code/modules/events/major_dust.dm new file mode 100644 index 0000000..7597966 --- /dev/null +++ b/code/modules/events/major_dust.dm @@ -0,0 +1,19 @@ +/datum/round_event_control/meteor_wave/major_dust + name = "Major Space Dust" + typepath = /datum/round_event/meteor_wave/major_dust + weight = 8 + +/datum/round_event/meteor_wave/major_dust + wave_name = "space dust" + +/datum/round_event/meteor_wave/major_dust/announce() + var/reason = pick( + "The station is passing through a debris cloud, expect minor damage \ + to external fittings and fixtures.", + "Nanotrasen Superweapons Division is testing a new prototype \ + [pick("field","projection","nova","super-colliding","reactive")] \ + [pick("cannon","artillery","tank","cruiser","\[REDACTED\]")], \ + some mild debris is expected.", + "A neighbouring station is throwing rocks at you. (Perhaps they've \ + grown tired of your messages.)") + priority_announce(pick(reason), "Collision Alert") diff --git a/code/modules/events/mass_hallucination.dm b/code/modules/events/mass_hallucination.dm new file mode 100644 index 0000000..2bf1231 --- /dev/null +++ b/code/modules/events/mass_hallucination.dm @@ -0,0 +1,10 @@ +/datum/round_event_control/mass_hallucination + name = "Mass Hallucination" + typepath = /datum/round_event/mass_hallucination + weight = 7 + max_occurrences = 2 + min_players = 1 + +/datum/round_event/mass_hallucination/start() + for(var/mob/living/carbon/C in living_mob_list) + C.hallucination += rand(20, 50) \ No newline at end of file diff --git a/code/modules/events/meateor_wave.dm b/code/modules/events/meateor_wave.dm new file mode 100644 index 0000000..204d901 --- /dev/null +++ b/code/modules/events/meateor_wave.dm @@ -0,0 +1,11 @@ +/datum/round_event_control/meteor_wave/meaty + name = "Meteor Wave: Meaty" + typepath = /datum/round_event/meteor_wave/meaty + weight = 2 + max_occurrences = 1 + +/datum/round_event/meteor_wave/meaty + wave_name = "meaty" + +/datum/round_event/meteor_wave/meaty/announce() + priority_announce("Meaty ores have been detected on collision course with the station.", "Oh crap, get the mop.",'sound/AI/meteors.ogg') diff --git a/code/modules/events/meteor_wave.dm b/code/modules/events/meteor_wave.dm new file mode 100644 index 0000000..1cd401c --- /dev/null +++ b/code/modules/events/meteor_wave.dm @@ -0,0 +1,68 @@ +// Normal strength + +/datum/round_event_control/meteor_wave + name = "Meteor Wave: Normal" + typepath = /datum/round_event/meteor_wave + weight = 4 + min_players = 5 + max_occurrences = 3 + +/datum/round_event/meteor_wave + startWhen = 6 + endWhen = 66 + announceWhen = 1 + var/list/wave_type + var/wave_name = "normal" + +/datum/round_event/meteor_wave/New() + ..() + if(!wave_type) + determine_wave_type() + +/datum/round_event/meteor_wave/proc/determine_wave_type() + if(!wave_name) + wave_name = pickweight(list( + "normal" = 50, + "threatening" = 40, + "catastrophic" = 10)) + switch(wave_name) + if("normal") + wave_type = meteors_normal + if("threatening") + wave_type = meteors_threatening + if("catastrophic") + wave_type = meteors_catastrophic + if("meaty") + wave_type = meteorsB + if("space dust") + wave_type = meteorsC + else + WARNING("Wave name of [wave_name] not recognised.") + kill() + +/datum/round_event/meteor_wave/announce() + priority_announce("Meteors have been detected on collision course with the station.", "Meteor Alert", 'sound/AI/meteors.ogg') + +/datum/round_event/meteor_wave/tick() + if(IsMultiple(activeFor, 3)) + spawn_meteors(5, wave_type) //meteor list types defined in gamemode/meteor/meteors.dm + +/datum/round_event_control/meteor_wave/threatening + name = "Meteor Wave: Threatening" + typepath = /datum/round_event/meteor_wave/threatening + weight = 2 + min_players = 5 + max_occurrences = 3 + +/datum/round_event/meteor_wave/threatening + wave_name = "threatening" + +/datum/round_event_control/meteor_wave/catastrophic + name = "Meteor Wave: Catastrophic" + typepath = /datum/round_event/meteor_wave/catastrophic + weight = 1 + min_players = 5 + max_occurrences = 3 + +/datum/round_event/meteor_wave/catastrophic + wave_name = "catastrophic" diff --git a/code/modules/events/operative.dm b/code/modules/events/operative.dm new file mode 100644 index 0000000..1c026f8 --- /dev/null +++ b/code/modules/events/operative.dm @@ -0,0 +1,59 @@ +/datum/round_event_control/operative + name = "Lone Operative" + typepath = /datum/round_event/ghost_role/operative + weight = 0 //Admin only + max_occurrences = 1 + +/datum/round_event/ghost_role/operative + minimum_required = 1 + role_name = "lone operative" + +/datum/round_event/ghost_role/operative/spawn_role() + var/list/candidates = get_candidates("operative", null, ROLE_OPERATIVE) + if(!candidates.len) + return NOT_ENOUGH_PLAYERS + + var/mob/dead/selected = pick_n_take(candidates) + + var/list/spawn_locs = list() + for(var/obj/effect/landmark/L in landmarks_list) + if(L.name in list("ninjaspawn","carpspawn")) + spawn_locs += L.loc + if(!spawn_locs.len) + return MAP_ERROR + + var/mob/living/carbon/human/operative = new(pick(spawn_locs)) + var/datum/preferences/A = new + A.copy_to(operative) + operative.dna.update_dna_identity() + + operative.equipOutfit(/datum/outfit/syndicate/full) + + var/datum/mind/Mind = new /datum/mind(selected.key) + Mind.assigned_role = "Lone Operative" + Mind.special_role = "Lone Operative" + ticker.mode.traitors |= Mind + Mind.active = 1 + + var/obj/machinery/nuclearbomb/selfdestruct/nuke = locate() in machines + if(nuke) + var/nuke_code + if(!nuke.r_code || nuke.r_code == "ADMIN") + nuke_code = random_nukecode() + nuke.r_code = nuke_code + else + nuke_code = nuke.r_code + + Mind.store_memory("Station Self-Destruct Device Code: [nuke_code]", 0, 0) + Mind.current << "The nuclear authorization code is: [nuke_code]" + + var/datum/objective/nuclear/O = new() + O.owner = Mind + Mind.objectives += O + + Mind.transfer_to(operative) + + message_admins("[operative.key] has been made into lone operative by an event.") + log_game("[operative.key] was spawned as a lone operative by an event.") + spawned_mobs += operative + return SUCCESSFUL_SPAWN diff --git a/code/modules/events/portal_storm.dm b/code/modules/events/portal_storm.dm new file mode 100644 index 0000000..7d4f144 --- /dev/null +++ b/code/modules/events/portal_storm.dm @@ -0,0 +1,135 @@ +/datum/round_event_control/portal_storm_syndicate + name = "Portal Storm: Syndicate Shocktroops" + typepath = /datum/round_event/portal_storm/syndicate_shocktroop + weight = 2 + min_players = 15 + earliest_start = 18000 + +/datum/round_event/portal_storm/syndicate_shocktroop + boss_types = list(/mob/living/simple_animal/hostile/syndicate/melee/space/stormtrooper = 2) + hostile_types = list(/mob/living/simple_animal/hostile/syndicate/melee/space/noloot = 8,\ + /mob/living/simple_animal/hostile/syndicate/ranged/space/noloot = 2) + +/datum/round_event_control/portal_storm_narsie + name = "Portal Storm: Constructs" + typepath = /datum/round_event/portal_storm/portal_storm_narsie + weight = 0 + max_occurrences = 0 + +/datum/round_event/portal_storm/portal_storm_narsie + boss_types = list(/mob/living/simple_animal/hostile/construct/builder = 6) + hostile_types = list(/mob/living/simple_animal/hostile/construct/armored/hostile = 8,\ + /mob/living/simple_animal/hostile/construct/wraith/hostile = 6) + +/datum/round_event/portal_storm + startWhen = 7 + endWhen = 999 + announceWhen = 1 + + var/list/boss_spawn = list() + var/list/boss_types = list() //only configure this if you have hostiles + var/number_of_bosses + var/next_boss_spawn + var/list/hostiles_spawn = list() + var/list/hostile_types = list() + var/number_of_hostiles + var/list/station_areas = list() + var/image/storm + +/datum/round_event/portal_storm/setup() + storm = image('icons/obj/tesla_engine/energy_ball.dmi', "energy_ball_fast", layer=FLY_LAYER) + storm.color = "#00FF00" + + station_areas = get_areas_in_z(ZLEVEL_STATION) + + number_of_bosses = 0 + for(var/boss in boss_types) + number_of_bosses += boss_types[boss] + + number_of_hostiles = 0 + for(var/hostile in hostile_types) + number_of_hostiles += hostile_types[hostile] + + var/list/b_spawns = generic_event_spawns.Copy() + while(number_of_bosses > boss_spawn.len) + var/turf/F = get_turf(pick_n_take(b_spawns)) + if(!F) + F = safepick(get_area_turfs(pick(station_areas))) + boss_spawn += F + + var/list/h_spawns = generic_event_spawns.Copy() + while(number_of_hostiles > hostiles_spawn.len) + var/turf/T = get_turf(pick_n_take(h_spawns)) + if(!T) + T = safepick(get_area_turfs(pick(station_areas))) + hostiles_spawn += T + + next_boss_spawn = startWhen + Ceiling(2 * number_of_hostiles / number_of_bosses) + +/datum/round_event/portal_storm/announce() + set waitfor = 0 + playsound_global('sound/magic/lightning_chargeup.ogg', repeat=0, channel=1, volume=100) + sleep(80) + priority_announce("Massive bluespace anomaly detected en route to [station_name()]. Brace for impact.") + sleep(20) + playsound_global('sound/magic/lightningbolt.ogg', repeat=0, channel=1, volume=100) + +/datum/round_event/portal_storm/tick() + spawn_effects() + + if(spawn_hostile()) + var/type = safepick(hostile_types) + hostile_types[type] = hostile_types[type] - 1 + spawn_mob(type, hostiles_spawn) + if(!hostile_types[type]) + hostile_types -= type + + if(spawn_boss()) + var/type = safepick(boss_types) + boss_types[type] = boss_types[type] - 1 + spawn_mob(type, boss_spawn) + if(!boss_types[type]) + boss_types -= type + + time_to_end() + +/datum/round_event/portal_storm/proc/spawn_mob(type, spawn_list) + if(!type) + return + var/turf/T = pick_n_take(spawn_list) + if(!T) + return + new type(T) + spawn_effects(T) + +/datum/round_event/portal_storm/proc/spawn_effects(turf/T) + if(T) + T = get_step(T, SOUTHWEST) //align center of image with turf + flick_overlay_static(storm, T, 15) + playsound(T, 'sound/magic/lightningbolt.ogg', 100, 1) + else + for(var/V in station_areas) + var/area/A = V + var/turf/F = get_turf(pick(A.contents)) + flick_overlay_static(storm, F, 15) + playsound(F, 'sound/magic/lightningbolt.ogg', 80, 1) + +/datum/round_event/portal_storm/proc/spawn_hostile() + if(!hostile_types || !hostile_types.len) + return 0 + return IsMultiple(activeFor, 2) + +/datum/round_event/portal_storm/proc/spawn_boss() + if(!boss_types || !boss_types.len) + return 0 + + if(activeFor == next_boss_spawn) + next_boss_spawn += Ceiling(number_of_hostiles / number_of_bosses) + return 1 + +/datum/round_event/portal_storm/proc/time_to_end() + if(!hostile_types.len && !boss_types.len) + endWhen = activeFor + + if(!number_of_hostiles && number_of_bosses) + endWhen = activeFor diff --git a/code/modules/events/prison_break.dm b/code/modules/events/prison_break.dm new file mode 100644 index 0000000..3c60dfa --- /dev/null +++ b/code/modules/events/prison_break.dm @@ -0,0 +1,60 @@ +/datum/round_event_control/grey_tide + name = "Grey Tide" + typepath = /datum/round_event/grey_tide + max_occurrences = 2 + min_players = 5 + +/datum/round_event/grey_tide + announceWhen = 50 + endWhen = 20 + var/list/area/areasToOpen = list() + var/list/potential_areas = list(/area/atmos, + /area/bridge, + /area/engine, + /area/medical, + /area/security, + /area/quartermaster, + /area/toxins) + var/severity = 1 + + +/datum/round_event/grey_tide/setup() + announceWhen = rand(50, 60) + endWhen = rand(20, 30) + severity = rand(1,3) + for(var/i in 1 to severity) + var/picked_area = pick_n_take(potential_areas) + for(var/area/A in world) + if(istype(A, picked_area)) + areasToOpen += A + + +/datum/round_event/grey_tide/announce() + if(areasToOpen && areasToOpen.len > 0) + priority_announce("Gr3y.T1d3 virus detected in [station_name()] door subroutines. Severity level of [severity]. Recommend station AI involvement.", "Security Alert") + else + world.log << "ERROR: Could not initate grey-tide. No areas in the list!" + kill() + + +/datum/round_event/grey_tide/start() + for(var/area/A in areasToOpen) + for(var/obj/machinery/light/L in A) + L.flicker(10) + +/datum/round_event/grey_tide/end() + for(var/area/A in areasToOpen) + for(var/obj/O in A) + if(istype(O,/obj/machinery/power/apc)) + var/obj/machinery/power/apc/temp = O + temp.overload_lighting() + else if(istype(O,/obj/structure/closet/secure_closet)) + var/obj/structure/closet/secure_closet/temp = O + temp.locked = 0 + temp.update_icon() + else if(istype(O,/obj/machinery/door/airlock)) + var/obj/machinery/door/airlock/temp = O + temp.prison_open() + else if(istype(O,/obj/machinery/door_timer)) + var/obj/machinery/door_timer/temp = O + temp.timer_end(forced = TRUE) \ No newline at end of file diff --git a/code/modules/events/processor_overload.dm b/code/modules/events/processor_overload.dm new file mode 100644 index 0000000..bb1d1c6 --- /dev/null +++ b/code/modules/events/processor_overload.dm @@ -0,0 +1,40 @@ +/datum/round_event_control/processor_overload + name = "Processor Overload" + typepath = /datum/round_event/processor_overload + weight = 15 + min_players = 20 + +/datum/round_event/processor_overload + announceWhen = 1 + +/datum/round_event/processor_overload/announce() + var/alert = pick( "Exospheric bubble inbound. Processor overload is likely. Please contact you*%xp25)`6cq-BZZT", \ + "Exospheric bubble inbound. Processor overload is likel*1eta;c5;'1v¬-BZZZT", \ + "Exospheric bubble inbound. Processor ov#MCi46:5.;@63-BZZZZT", \ + "Exospheric bubble inbo'Fz\\k55_@-BZZZZZT", \ + "Exospheri:%£ QCbyj^j[alert]
    " + + // Announce most of the time, but leave a little gap so people don't know + // whether it's, say, a tesla zapping tcomms, or some selective + // modification of the tcomms bus + if(prob(80)) + priority_announce(alert) + + +/datum/round_event/processor_overload/start() + for(var/obj/machinery/telecomms/T in telecomms_list) + if(istype(T, /obj/machinery/telecomms/processor)) + var/obj/machinery/telecomms/processor/P = T + if(prob(10)) + // Damage the surrounding area to indicate that it popped + explosion(get_turf(P), 0, 0, 2) + // Only a level 1 explosion actually damages the machine + // at all + P.ex_act(1) + else + P.emp_act(1) diff --git a/code/modules/events/radiation_storm.dm b/code/modules/events/radiation_storm.dm new file mode 100644 index 0000000..7ab509e --- /dev/null +++ b/code/modules/events/radiation_storm.dm @@ -0,0 +1,19 @@ +/datum/round_event_control/radiation_storm + name = "Radiation Storm" + typepath = /datum/round_event/radiation_storm + max_occurrences = 1 + +/datum/round_event/radiation_storm + + +/datum/round_event/radiation_storm/setup() + startWhen = 3 + endWhen = startWhen + 1 + announceWhen = 1 + +/datum/round_event/radiation_storm/announce() + priority_announce("High levels of radiation detected near the station. Maintenance is best shielded from radiation.", "Anomaly Alert", 'sound/AI/radiation.ogg') + //sound not longer matches the text, but an audible warning is probably good + +/datum/round_event/radiation_storm/start() + SSweather.run_weather("radiation storm",1) \ No newline at end of file diff --git a/code/modules/events/shuttle_loan.dm b/code/modules/events/shuttle_loan.dm new file mode 100644 index 0000000..9000136 --- /dev/null +++ b/code/modules/events/shuttle_loan.dm @@ -0,0 +1,199 @@ +#define HIJACK_SYNDIE 1 +#define RUSKY_PARTY 2 +#define SPIDER_GIFT 3 +#define DEPARTMENT_RESUPPLY 4 +#define ANTIDOTE_NEEDED 5 +#define PIZZA_DELIVERY 6 + + +/datum/round_event_control/shuttle_loan + name = "Shuttle loan" + typepath = /datum/round_event/shuttle_loan + max_occurrences = 1 + earliest_start = 4000 + +/datum/round_event/shuttle_loan + announceWhen = 1 + endWhen = 500 + var/dispatched = 0 + var/dispatch_type = 0 + var/bonus_points = 10000 + var/thanks_msg = "The cargo shuttle should return in five minutes. Have some supply points for your trouble." + +/datum/round_event/shuttle_loan/start() + dispatch_type = pick(HIJACK_SYNDIE, RUSKY_PARTY, SPIDER_GIFT, DEPARTMENT_RESUPPLY, ANTIDOTE_NEEDED, PIZZA_DELIVERY) + +/datum/round_event/shuttle_loan/announce() + SSshuttle.shuttle_loan = src + switch(dispatch_type) + if(HIJACK_SYNDIE) + priority_announce("Cargo: The syndicate are trying to infiltrate your station. If you let them hijack your cargo shuttle, you'll save us a headache.","Centcom Counter Intelligence") + if(RUSKY_PARTY) + priority_announce("Cargo: A group of angry russians want to have a party, can you send them your cargo shuttle then make them disappear?","Centcom Russian Outreach Program") + if(SPIDER_GIFT) + priority_announce("Cargo: The Spider Clan has sent us a mysterious gift, can we ship it to you to see what's inside?","Centcom Diplomatic Corps") + if(DEPARTMENT_RESUPPLY) + priority_announce("Cargo: Seems we've ordered doubles of our department resupply packages this month. Can we send them to you?","Centcom Supply Department") + thanks_msg = "The cargo shuttle should return in 5 minutes." + bonus_points = 0 + if(ANTIDOTE_NEEDED) + priority_announce("Cargo: Your station has been chosen for an epidemiological research project. Send us your cargo shuttle to receive your research samples.", "Centcom Research Initiatives") + if (PIZZA_DELIVERY) + priority_announce("Cargo: It looks like a neighbouring station accidentally delivered their pizza to you instead", "Centcom Spacepizza Division") + +/datum/round_event/shuttle_loan/proc/loan_shuttle() + priority_announce(thanks_msg, "Cargo shuttle commandeered by Centcom.") + + dispatched = 1 + SSshuttle.points += bonus_points + endWhen = activeFor + 1 + + SSshuttle.supply.mode = SHUTTLE_CALL + SSshuttle.supply.destination = SSshuttle.getDock("supply_home") + SSshuttle.supply.setTimer(3000) + + switch(dispatch_type) + if(HIJACK_SYNDIE) + SSshuttle.centcom_message += "Syndicate hijack team incoming." + if(RUSKY_PARTY) + SSshuttle.centcom_message += "Partying Russians incoming." + if(SPIDER_GIFT) + SSshuttle.centcom_message += "Spider Clan gift incoming." + if(DEPARTMENT_RESUPPLY) + SSshuttle.centcom_message += "Department resupply incoming." + if(ANTIDOTE_NEEDED) + SSshuttle.centcom_message += "Virus samples incoming." + if(PIZZA_DELIVERY) + SSshuttle.centcom_message += "Pizza delivery for [station_name()]" + +/datum/round_event/shuttle_loan/tick() + if(dispatched) + if(SSshuttle.supply.mode != SHUTTLE_IDLE) + endWhen = activeFor + else + endWhen = activeFor + 1 + +/datum/round_event/shuttle_loan/end() + if(SSshuttle.shuttle_loan && SSshuttle.shuttle_loan.dispatched) + //make sure the shuttle was dispatched in time + SSshuttle.shuttle_loan = null + + var/list/empty_shuttle_turfs = list() + for(var/turf/open/floor/T in SSshuttle.supply.areaInstance) + if(T.density || T.contents.len) + continue + empty_shuttle_turfs += T + if(!empty_shuttle_turfs.len) + return + + var/list/shuttle_spawns = list() + switch(dispatch_type) + if(HIJACK_SYNDIE) + var/datum/supply_pack/pack = SSshuttle.supply_packs[/datum/supply_pack/emergency/specialops] + pack.generate(pick_n_take(empty_shuttle_turfs)) + + shuttle_spawns.Add(/mob/living/simple_animal/hostile/syndicate) + shuttle_spawns.Add(/mob/living/simple_animal/hostile/syndicate) + if(prob(75)) + shuttle_spawns.Add(/mob/living/simple_animal/hostile/syndicate) + if(prob(50)) + shuttle_spawns.Add(/mob/living/simple_animal/hostile/syndicate) + + if(RUSKY_PARTY) + var/datum/supply_pack/pack = SSshuttle.supply_packs[/datum/supply_pack/organic/party] + pack.generate(pick_n_take(empty_shuttle_turfs)) + + shuttle_spawns.Add(/mob/living/simple_animal/hostile/russian) + shuttle_spawns.Add(/mob/living/simple_animal/hostile/russian/ranged) //drops a mateba + shuttle_spawns.Add(/mob/living/simple_animal/hostile/bear/russian) + if(prob(75)) + shuttle_spawns.Add(/mob/living/simple_animal/hostile/russian) + if(prob(50)) + shuttle_spawns.Add(/mob/living/simple_animal/hostile/bear/russian) + + if(SPIDER_GIFT) + var/datum/supply_pack/pack = SSshuttle.supply_packs[/datum/supply_pack/emergency/specialops] + pack.generate(pick_n_take(empty_shuttle_turfs)) + + shuttle_spawns.Add(/mob/living/simple_animal/hostile/poison/giant_spider) + shuttle_spawns.Add(/mob/living/simple_animal/hostile/poison/giant_spider) + shuttle_spawns.Add(/mob/living/simple_animal/hostile/poison/giant_spider/nurse) + if(prob(50)) + shuttle_spawns.Add(/mob/living/simple_animal/hostile/poison/giant_spider/hunter) + + var/turf/T = pick_n_take(empty_shuttle_turfs) + + new /obj/effect/decal/remains/human(T) + new /obj/item/clothing/shoes/space_ninja(T) + new /obj/item/clothing/mask/balaclava(T) + + for(var/i in 1 to 5) + T = pick_n_take(empty_shuttle_turfs) + new /obj/structure/spider/stickyweb(T) + + if(ANTIDOTE_NEEDED) + var/virus_type = pick(/datum/disease/beesease, /datum/disease/brainrot, /datum/disease/fluspanish) + var/turf/T + for(var/i=0, i<10, i++) + if(prob(15)) + shuttle_spawns.Add(/obj/item/weapon/reagent_containers/glass/bottle) + else if(prob(15)) + shuttle_spawns.Add(/obj/item/weapon/reagent_containers/syringe) + else if(prob(25)) + shuttle_spawns.Add(/obj/item/weapon/shard) + T = pick_n_take(empty_shuttle_turfs) + var/obj/effect/decal/cleanable/blood/b = new(T) + var/datum/disease/D = new virus_type() + D.longevity = 1000 + b.viruses += D + D.holder = b + shuttle_spawns.Add(/obj/structure/closet/crate) + shuttle_spawns.Add(/obj/item/weapon/reagent_containers/glass/bottle/pierrot_throat) + shuttle_spawns.Add(/obj/item/weapon/reagent_containers/glass/bottle/magnitis) + + if(DEPARTMENT_RESUPPLY) + var/list/crate_types = list( + /datum/supply_pack/emergency/equipment, + /datum/supply_pack/security/supplies, + /datum/supply_pack/organic/food, + /datum/supply_pack/emergency/weedcontrol, + /datum/supply_pack/engineering/tools, + /datum/supply_pack/engineering/engiequipment, + /datum/supply_pack/science/robotics, + /datum/supply_pack/science/plasma, + /datum/supply_pack/medical/supplies + ) + for(var/crate in crate_types) + var/datum/supply_pack/pack = SSshuttle.supply_packs[crate] + pack.generate(pick_n_take(empty_shuttle_turfs)) + + for(var/i in 1 to 5) + var/decal = pick(/obj/effect/decal/cleanable/flour, /obj/effect/decal/cleanable/robot_debris, /obj/effect/decal/cleanable/oil) + new decal(pick_n_take(empty_shuttle_turfs)) + if(PIZZA_DELIVERY) + shuttle_spawns.Add(/obj/item/pizzabox/margherita) + shuttle_spawns.Add(/obj/item/pizzabox/margherita) + shuttle_spawns.Add(/obj/item/pizzabox/meat) + shuttle_spawns.Add(/obj/item/pizzabox/meat) + shuttle_spawns.Add(/obj/item/pizzabox/vegetable) + if(prob(10)) + shuttle_spawns.Add(/obj/item/pizzabox/bomb) + else + shuttle_spawns.Add(/obj/item/pizzabox/margherita) + + var/false_positive = 0 + while(shuttle_spawns.len && empty_shuttle_turfs.len) + var/turf/T = pick_n_take(empty_shuttle_turfs) + if(T.contents.len && false_positive < 5) + false_positive++ + continue + + var/spawn_type = pick_n_take(shuttle_spawns) + new spawn_type(T) + +#undef HIJACK_SYNDIE +#undef RUSKY_PARTY +#undef SPIDER_GIFT +#undef DEPARTMENT_RESUPPLY +#undef ANTIDOTE_NEEDED +#undef PIZZA_DELIVERY diff --git a/code/modules/events/spacevine.dm b/code/modules/events/spacevine.dm new file mode 100644 index 0000000..6aa1830 --- /dev/null +++ b/code/modules/events/spacevine.dm @@ -0,0 +1,580 @@ +/datum/round_event_control/spacevine + name = "Spacevine" + typepath = /datum/round_event/spacevine + weight = 15 + max_occurrences = 3 + min_players = 10 + +/datum/round_event/spacevine/start() + var/list/turfs = list() //list of all the empty floor turfs in the hallway areas + + var/obj/structure/spacevine/SV = new() + + for(var/area/hallway/A in world) + for(var/turf/F in A) + if(F.Enter(SV)) + turfs += F + + qdel(SV) + + if(turfs.len) //Pick a turf to spawn at if we can + var/turf/T = pick(turfs) + new/obj/effect/spacevine_controller(T) //spawn a controller at turf + + +/datum/spacevine_mutation + var/name = "" + var/severity = 1 + var/hue + var/quality + +/datum/spacevine_mutation/proc/add_mutation_to_vinepiece(obj/structure/spacevine/holder) + holder.mutations |= src + holder.add_atom_colour(hue, FIXED_COLOUR_PRIORITY) + +/datum/spacevine_mutation/proc/process_mutation(obj/structure/spacevine/holder) + return + +/datum/spacevine_mutation/proc/process_temperature(obj/structure/spacevine/holder, temp, volume) + return + +/datum/spacevine_mutation/proc/on_birth(obj/structure/spacevine/holder) + return + +/datum/spacevine_mutation/proc/on_grow(obj/structure/spacevine/holder) + return + +/datum/spacevine_mutation/proc/on_death(obj/structure/spacevine/holder) + return + +/datum/spacevine_mutation/proc/on_hit(obj/structure/spacevine/holder, mob/hitter, obj/item/I, expected_damage) + . = expected_damage + +/datum/spacevine_mutation/proc/on_cross(obj/structure/spacevine/holder, mob/crosser) + return + +/datum/spacevine_mutation/proc/on_chem(obj/structure/spacevine/holder, datum/reagent/R) + return + +/datum/spacevine_mutation/proc/on_eat(obj/structure/spacevine/holder, mob/living/eater) + return + +/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 + + +/datum/spacevine_mutation/space_covering + name = "space protective" + hue = "#aa77aa" + quality = POSITIVE + +/datum/spacevine_mutation/space_covering + var/static/list/coverable_turfs + +/datum/spacevine_mutation/space_covering/New() + . = ..() + if(!coverable_turfs) + coverable_turfs = typecacheof(list( + /turf/open/space + )) + coverable_turfs -= typecacheof(list( + /turf/open/space/transit + )) + +/datum/spacevine_mutation/space_covering/on_grow(obj/structure/spacevine/holder) + process_mutation(holder) + +/datum/spacevine_mutation/space_covering/process_mutation(obj/structure/spacevine/holder) + var/turf/T = get_turf(holder) + if(is_type_in_typecache(T, coverable_turfs)) + var/currtype = T.type + T.ChangeTurf(/turf/open/floor/vines) + T.baseturf = currtype + +/datum/spacevine_mutation/space_covering/on_death(obj/structure/spacevine/holder) + var/turf/T = get_turf(holder) + if(istype(T, /turf/open/floor/vines)) + T.ChangeTurf(T.baseturf) + +/datum/spacevine_mutation/bluespace + name = "bluespace" + hue = "#3333ff" + quality = MINOR_NEGATIVE + +/datum/spacevine_mutation/bluespace/on_spread(obj/structure/spacevine/holder, turf/target) + if(holder.energy > 1 && !locate(/obj/structure/spacevine) in target) + holder.master.spawn_spacevine_piece(target, holder) + +/datum/spacevine_mutation/light + name = "light" + hue = "#ffff00" + quality = POSITIVE + severity = 4 + +/datum/spacevine_mutation/light/on_grow(obj/structure/spacevine/holder) + if(holder.energy) + holder.SetLuminosity(severity, 3) + +/datum/spacevine_mutation/toxicity + name = "toxic" + hue = "#ff00ff" + severity = 10 + quality = NEGATIVE + +/datum/spacevine_mutation/toxicity/on_cross(obj/structure/spacevine/holder, mob/living/crosser) + if(issilicon(crosser)) + return + if(prob(severity) && istype(crosser) && !isvineimmune(crosser)) + crosser << "You accidently touch the vine and feel a strange sensation." + crosser.adjustToxLoss(5) + +/datum/spacevine_mutation/toxicity/on_eat(obj/structure/spacevine/holder, mob/living/eater) + if(!isvineimmune(eater)) + eater.adjustToxLoss(5) + +/datum/spacevine_mutation/explosive //OH SHIT IT CAN CHAINREACT RUN!!! + name = "explosive" + hue = "#ff0000" + quality = NEGATIVE + severity = 2 + +/datum/spacevine_mutation/explosive/on_explosion(explosion_severity, target, obj/structure/spacevine/holder) + if(explosion_severity < 3) + qdel(src) + else + . = 1 + QDEL_IN(src, 5) + +/datum/spacevine_mutation/explosive/on_death(obj/structure/spacevine/holder, mob/hitter, obj/item/I) + explosion(holder.loc, 0, 0, severity, 0, 0) + +/datum/spacevine_mutation/fire_proof + name = "fire proof" + hue = "#ff8888" + quality = MINOR_NEGATIVE + +/datum/spacevine_mutation/fire_proof/process_temperature(obj/structure/spacevine/holder, temp, volume) + return 1 + +/datum/spacevine_mutation/fire_proof/on_hit(obj/structure/spacevine/holder, mob/hitter, obj/item/I, expected_damage) + if(I && I.damtype == "fire") + . = 0 + else + . = expected_damage + +/datum/spacevine_mutation/vine_eating + name = "vine eating" + hue = "#ff7700" + quality = MINOR_NEGATIVE + +/datum/spacevine_mutation/vine_eating/on_spread(obj/structure/spacevine/holder, turf/target) + var/obj/structure/spacevine/prey = locate() in target + if(prey && !prey.mutations.Find(src)) //Eat all vines that are not of the same origin + qdel(prey) + +/datum/spacevine_mutation/aggressive_spread //very OP, but im out of other ideas currently + name = "aggressive spreading" + hue = "#333333" + severity = 3 + quality = NEGATIVE + +/datum/spacevine_mutation/aggressive_spread/on_spread(obj/structure/spacevine/holder, turf/target) + target.ex_act(severity, null, src) // vine immunity handled at /mob/ex_act + +/datum/spacevine_mutation/aggressive_spread/on_buckle(obj/structure/spacevine/holder, mob/living/buckled) + buckled.ex_act(severity, null, src) + +/datum/spacevine_mutation/transparency + name = "transparent" + hue = "" + quality = POSITIVE + +/datum/spacevine_mutation/transparency/on_grow(obj/structure/spacevine/holder) + holder.SetOpacity(0) + holder.alpha = 125 + +/datum/spacevine_mutation/oxy_eater + name = "oxygen consuming" + hue = "#ffff88" + severity = 3 + quality = NEGATIVE + +/datum/spacevine_mutation/oxy_eater/process_mutation(obj/structure/spacevine/holder) + var/turf/open/floor/T = holder.loc + if(istype(T)) + var/datum/gas_mixture/GM = T.air + if(!GM.gases["o2"]) + return + GM.gases["o2"][MOLES] -= severity * holder.energy + GM.garbage_collect() + +/datum/spacevine_mutation/nitro_eater + name = "nitrogen consuming" + hue = "#8888ff" + severity = 3 + quality = NEGATIVE + +/datum/spacevine_mutation/nitro_eater/process_mutation(obj/structure/spacevine/holder) + var/turf/open/floor/T = holder.loc + if(istype(T)) + var/datum/gas_mixture/GM = T.air + if(!GM.gases["n2"]) + return + GM.gases["n2"][MOLES] -= severity * holder.energy + GM.garbage_collect() + +/datum/spacevine_mutation/carbondioxide_eater + name = "CO2 consuming" + hue = "#00ffff" + severity = 3 + quality = POSITIVE + +/datum/spacevine_mutation/carbondioxide_eater/process_mutation(obj/structure/spacevine/holder) + var/turf/open/floor/T = holder.loc + if(istype(T)) + var/datum/gas_mixture/GM = T.air + if(!GM.gases["co2"]) + return + GM.gases["co2"][MOLES] -= severity * holder.energy + GM.garbage_collect() + +/datum/spacevine_mutation/plasma_eater + name = "toxins consuming" + hue = "#ffbbff" + severity = 3 + quality = POSITIVE + +/datum/spacevine_mutation/plasma_eater/process_mutation(obj/structure/spacevine/holder) + var/turf/open/floor/T = holder.loc + if(istype(T)) + var/datum/gas_mixture/GM = T.air + if(!GM.gases["plasma"]) + return + GM.gases["plasma"][MOLES] -= severity * holder.energy + GM.garbage_collect() + +/datum/spacevine_mutation/thorns + name = "thorny" + hue = "#666666" + severity = 10 + quality = NEGATIVE + +/datum/spacevine_mutation/thorns/on_cross(obj/structure/spacevine/holder, mob/living/crosser) + if(prob(severity) && istype(crosser) && !isvineimmune(holder)) + var/mob/living/M = crosser + M.adjustBruteLoss(5) + M << "You cut yourself on the thorny vines." + +/datum/spacevine_mutation/thorns/on_hit(obj/structure/spacevine/holder, mob/living/hitter, obj/item/I, expected_damage) + if(prob(severity) && istype(hitter) && !isvineimmune(holder)) + var/mob/living/M = hitter + M.adjustBruteLoss(5) + M << "You cut yourself on the thorny vines." + . = expected_damage + +/datum/spacevine_mutation/woodening + name = "hardened" + hue = "#997700" + quality = NEGATIVE + +/datum/spacevine_mutation/woodening/on_grow(obj/structure/spacevine/holder) + if(holder.energy) + holder.density = 1 + holder.max_integrity = 100 + holder.obj_integrity = holder.max_integrity + +/datum/spacevine_mutation/woodening/on_hit(obj/structure/spacevine/holder, mob/living/hitter, obj/item/I, expected_damage) + if(I.is_sharp()) + . = expected_damage * 0.5 + else + . = expected_damage + +/datum/spacevine_mutation/flowering + name = "flowering" + hue = "#0A480D" + quality = NEGATIVE + severity = 10 + +/datum/spacevine_mutation/flowering/on_grow(obj/structure/spacevine/holder) + if(holder.energy == 2 && prob(severity) && !locate(/obj/structure/alien/resin/flower_bud_enemy) in range(5,holder)) + new/obj/structure/alien/resin/flower_bud_enemy(get_turf(holder)) + +/datum/spacevine_mutation/flowering/on_cross(obj/structure/spacevine/holder, mob/living/crosser) + holder.entangle(crosser) + + +// SPACE VINES (Note that this code is very similar to Biomass code) +/obj/structure/spacevine + name = "space vines" + desc = "An extremely expansionistic species of vine." + icon = 'icons/effects/spacevines.dmi' + icon_state = "Light1" + anchored = 1 + density = 0 + layer = SPACEVINE_LAYER + mouse_opacity = 2 //Clicking anywhere on the turf is good enough + pass_flags = PASSTABLE | PASSGRILLE + obj_integrity = 50 + max_integrity = 50 + var/energy = 0 + var/obj/effect/spacevine_controller/master = null + var/list/mutations = list() + +/obj/structure/spacevine/examine(mob/user) + ..() + var/text = "This one is a" + if(mutations.len) + for(var/A in mutations) + var/datum/spacevine_mutation/SM = A + text += " [SM.name]" + else + text += " normal" + text += " vine." + user << text + +/obj/structure/spacevine/Destroy() + for(var/datum/spacevine_mutation/SM in mutations) + SM.on_death(src) + if(master) + master.vines -= src + master.growth_queue -= src + if(!master.vines.len) + var/obj/item/seeds/kudzu/KZ = new(loc) + KZ.mutations |= mutations + KZ.potency = min(100, master.mutativness * 10) + KZ.production = (master.spread_cap / initial(master.spread_cap)) * 50 + mutations = list() + SetOpacity(0) + if(has_buckled_mobs()) + unbuckle_all_mobs(force=1) + return ..() + +/obj/structure/spacevine/proc/on_chem_effect(datum/reagent/R) + var/override = 0 + for(var/datum/spacevine_mutation/SM in mutations) + override += SM.on_chem(src, R) + if(!override && istype(R, /datum/reagent/toxin/plantbgone)) + if(prob(50)) + qdel(src) + +/obj/structure/spacevine/proc/eat(mob/eater) + var/override = 0 + for(var/datum/spacevine_mutation/SM in mutations) + override += SM.on_eat(src, eater) + if(!override) + if(prob(10)) + eater.say("Nom") + qdel(src) + +/obj/structure/spacevine/attackby(obj/item/weapon/W, mob/user, params) + + if(istype(W, /obj/item/weapon/scythe)) + user.changeNext_move(CLICK_CD_MELEE) + for(var/obj/structure/spacevine/B in orange(1,src)) + B.take_damage(W.force * 4, BRUTE, "melee", 1) + return + else + return ..() + + +/obj/structure/spacevine/attacked_by(obj/item/I, mob/living/user) + var/damage_dealt = I.force + if(I.is_sharp()) + damage_dealt *= 4 + if(I.damtype == BURN) + damage_dealt *= 4 + + for(var/datum/spacevine_mutation/SM in mutations) + damage_dealt = SM.on_hit(src, user, I, damage_dealt) //on_hit now takes override damage as arg and returns new value for other mutations to permutate further + take_damage(damage_dealt, I.damtype, "melee", 1) + +/obj/structure/spacevine/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) + switch(damage_type) + if(BRUTE) + if(damage_amount) + playsound(src, 'sound/weapons/slash.ogg', 50, 1) + else + playsound(src, 'sound/weapons/tap.ogg', 50, 1) + if(BURN) + playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) + +/obj/structure/spacevine/Crossed(mob/crosser) + if(isliving(crosser)) + for(var/datum/spacevine_mutation/SM in mutations) + SM.on_cross(src, crosser) + +/obj/structure/spacevine/attack_hand(mob/user) + for(var/datum/spacevine_mutation/SM in mutations) + SM.on_hit(src, user) + user_unbuckle_mob(user, user) + + +/obj/structure/spacevine/attack_paw(mob/living/user) + for(var/datum/spacevine_mutation/SM in mutations) + SM.on_hit(src, user) + user_unbuckle_mob(user,user) + +/obj/structure/spacevine/attack_alien(mob/living/user) + eat(user) + +/obj/effect/spacevine_controller + invisibility = INVISIBILITY_ABSTRACT + var/list/obj/structure/spacevine/vines = list() + var/list/growth_queue = list() + var/spread_multiplier = 5 + var/spread_cap = 30 + var/list/mutations_list = list() + var/mutativness = 1 + +/obj/effect/spacevine_controller/New(loc, list/muts, mttv, spreading) + spawn_spacevine_piece(loc, , muts) + START_PROCESSING(SSobj, src) + init_subtypes(/datum/spacevine_mutation/, mutations_list) + if(mttv != null) + mutativness = mttv / 10 + if(spreading != null) + spread_cap *= spreading / 50 + spread_multiplier /= spreading / 50 + +/obj/effect/spacevine_controller/ex_act() //only killing all vines will end this suffering + return + +/obj/effect/spacevine_controller/singularity_act() + return + +/obj/effect/spacevine_controller/singularity_pull() + return + +/obj/effect/spacevine_controller/Destroy() + STOP_PROCESSING(SSobj, src) + return ..() + +/obj/effect/spacevine_controller/proc/spawn_spacevine_piece(turf/location, obj/structure/spacevine/parent, list/muts) + var/obj/structure/spacevine/SV = new(location) + growth_queue += SV + vines += SV + SV.master = src + if(muts && muts.len) + for(var/datum/spacevine_mutation/M in muts) + M.add_mutation_to_vinepiece(SV) + return + if(parent) + SV.mutations |= parent.mutations + var/parentcolor = parent.atom_colours[FIXED_COLOUR_PRIORITY] + SV.add_atom_colour(parentcolor, FIXED_COLOUR_PRIORITY) + if(prob(mutativness)) + var/datum/spacevine_mutation/randmut = pick(mutations_list - SV.mutations) + randmut.add_mutation_to_vinepiece(SV) + + for(var/datum/spacevine_mutation/SM in SV.mutations) + SM.on_birth(SV) + +/obj/effect/spacevine_controller/process() + if(!vines) + qdel(src) //space vines exterminated. Remove the controller + return + if(!growth_queue) + qdel(src) //Sanity check + return + + var/length = 0 + + length = min( spread_cap , max( 1 , vines.len / spread_multiplier ) ) + var/i = 0 + var/list/obj/structure/spacevine/queue_end = list() + + for(var/obj/structure/spacevine/SV in growth_queue) + if(qdeleted(SV)) + continue + i++ + queue_end += SV + growth_queue -= SV + for(var/datum/spacevine_mutation/SM in SV.mutations) + SM.process_mutation(SV) + if(SV.energy < 2) //If tile isn't fully grown + if(prob(20)) + SV.grow() + else //If tile is fully grown + SV.entangle_mob() + + //if(prob(25)) + SV.spread() + if(i >= length) + break + + growth_queue = growth_queue + queue_end + +/obj/structure/spacevine/proc/grow() + if(!energy) + src.icon_state = pick("Med1", "Med2", "Med3") + energy = 1 + SetOpacity(1) + else + src.icon_state = pick("Hvy1", "Hvy2", "Hvy3") + energy = 2 + + for(var/datum/spacevine_mutation/SM in mutations) + SM.on_grow(src) + +/obj/structure/spacevine/proc/entangle_mob() + if(!has_buckled_mobs() && prob(25)) + for(var/mob/living/V in src.loc) + entangle(V) + if(has_buckled_mobs()) + break //only capture one mob at a time + + +/obj/structure/spacevine/proc/entangle(mob/living/V) + if(!V || isvineimmune(V)) + return + for(var/datum/spacevine_mutation/SM in mutations) + SM.on_buckle(src, V) + if((V.stat != DEAD) && (V.buckled != src)) //not dead or captured + V << "The vines [pick("wind", "tangle", "tighten")] around you!" + buckle_mob(V) + +/obj/structure/spacevine/proc/spread() + var/direction = pick(cardinal) + var/turf/stepturf = get_step(src,direction) + for(var/datum/spacevine_mutation/SM in mutations) + SM.on_spread(src, stepturf) + stepturf = get_step(src,direction) //in case turf changes, to make sure no runtimes happen + if(!locate(/obj/structure/spacevine, stepturf)) + if(stepturf.Enter(src)) + if(master) + master.spawn_spacevine_piece(stepturf, src) + +/obj/structure/spacevine/ex_act(severity, target) + if(istype(target, type)) //if its agressive spread vine dont do anything + return + var/i + for(var/datum/spacevine_mutation/SM in mutations) + i += SM.on_explosion(severity, target, src) + if(!i && prob(100/severity)) + qdel(src) + +/obj/structure/spacevine/temperature_expose(null, temp, volume) + var/override = 0 + for(var/datum/spacevine_mutation/SM in mutations) + override += SM.process_temperature(src, temp, volume) + if(!override) + qdel(src) + +/obj/structure/spacevine/CanPass(atom/movable/mover, turf/target, height=0) + if(isvineimmune(mover)) + . = TRUE + else + . = ..() + +/proc/isvineimmune(atom/A) + . = FALSE + if(isliving(A)) + var/mob/living/M = A + if(("vines" in M.faction) || ("plants" in M.faction)) + . = TRUE diff --git a/code/modules/events/spider_infestation.dm b/code/modules/events/spider_infestation.dm new file mode 100644 index 0000000..4a49461 --- /dev/null +++ b/code/modules/events/spider_infestation.dm @@ -0,0 +1,37 @@ +/datum/round_event_control/spider_infestation + name = "Spider Infestation" + typepath = /datum/round_event/spider_infestation + weight = 5 + max_occurrences = 1 + min_players = 15 + +/datum/round_event/spider_infestation + announceWhen = 400 + + var/spawncount = 1 + + +/datum/round_event/spider_infestation/setup() + announceWhen = rand(announceWhen, announceWhen + 50) + spawncount = rand(5, 8) + +/datum/round_event/spider_infestation/announce() + priority_announce("Unidentified lifesigns detected coming aboard [station_name()]. Secure any exterior access, including ducting and ventilation.", "Lifesign Alert", 'sound/AI/aliens.ogg') + + +/datum/round_event/spider_infestation/start() + var/list/vents = list() + for(var/obj/machinery/atmospherics/components/unary/vent_pump/temp_vent in world) + if(temp_vent.loc.z == ZLEVEL_STATION && !temp_vent.welded) + var/datum/pipeline/temp_vent_parent = temp_vent.PARENT1 + if(temp_vent_parent.other_atmosmch.len > 20) + vents += temp_vent + + while((spawncount >= 1) && vents.len) + var/obj/vent = pick(vents) + var/spawn_type = /obj/structure/spider/spiderling + if(prob(66)) + spawn_type = /obj/structure/spider/spiderling/nurse + spawn_atom_to_turf(spawn_type, vent, 1, FALSE) + vents -= vent + spawncount-- diff --git a/code/modules/events/spontaneous_appendicitis.dm b/code/modules/events/spontaneous_appendicitis.dm new file mode 100644 index 0000000..8e00502 --- /dev/null +++ b/code/modules/events/spontaneous_appendicitis.dm @@ -0,0 +1,19 @@ +/datum/round_event_control/spontaneous_appendicitis + name = "Spontaneous Appendicitis" + typepath = /datum/round_event/spontaneous_appendicitis + weight = 20 + max_occurrences = 4 + earliest_start = 6000 + min_players = 5 // To make your chance of getting help a bit higher. + +/datum/round_event/spontaneous_appendicitis/start() + for(var/mob/living/carbon/human/H in shuffle(living_mob_list)) + var/foundAlready = 0 //don't infect someone that already has the virus + for(var/datum/disease/D in H.viruses) + foundAlready = 1 + if(H.stat == 2 || foundAlready) + continue + + var/datum/disease/D = new /datum/disease/appendicitis + H.ForceContractDisease(D) + break \ No newline at end of file diff --git a/code/modules/events/vent_clog.dm b/code/modules/events/vent_clog.dm new file mode 100644 index 0000000..d56d61b --- /dev/null +++ b/code/modules/events/vent_clog.dm @@ -0,0 +1,49 @@ +/datum/round_event_control/vent_clog + name = "Clogged Vents" + typepath = /datum/round_event/vent_clog + weight = 35 + +/datum/round_event/vent_clog + announceWhen = 1 + startWhen = 5 + endWhen = 35 + var/interval = 2 + var/list/vents = list() + var/list/gunk = list("water","carbon","flour","radium","toxin","cleaner","nutriment","condensedcapsaicin","mushroomhallucinogen","lube", + "plantbgone","banana","charcoal","space_drugs","morphine","holywater","ethanol","hot_coco","sacid") + +/datum/round_event/vent_clog/announce() + priority_announce("The scrubbers network is experiencing a backpressure surge. Some ejection of contents may occur.", "Atmospherics alert") + + +/datum/round_event/vent_clog/setup() + endWhen = rand(25, 100) + for(var/obj/machinery/atmospherics/components/unary/vent_scrubber/temp_vent in machines) + if(temp_vent.loc.z == ZLEVEL_STATION && !temp_vent.welded) + var/datum/pipeline/temp_vent_parent = temp_vent.PARENT1 + if(temp_vent_parent.other_atmosmch.len > 20) + vents += temp_vent + if(!vents.len) + return kill() + +/datum/round_event/vent_clog/tick() + if(activeFor % interval == 0) + var/obj/machinery/atmospherics/components/unary/vent = pick_n_take(vents) + while(vent && vent.welded) + vent = pick_n_take(vents) + + if(vent && vent.loc) + var/datum/reagents/R = new/datum/reagents(50) + R.my_atom = vent + R.add_reagent(pick(gunk), 50) + + var/datum/effect_system/smoke_spread/chem/smoke = new + smoke.set_up(R, 1, vent, silent = 1) + playsound(vent.loc, 'sound/effects/smoke.ogg', 50, 1, -3) + smoke.start() + qdel(R) + + var/cockroaches = prob(33) ? 3 : 0 + while(cockroaches) + new /mob/living/simple_animal/cockroach(get_turf(vent)) + cockroaches-- diff --git a/code/modules/events/weightless.dm b/code/modules/events/weightless.dm new file mode 100644 index 0000000..49d7b15 --- /dev/null +++ b/code/modules/events/weightless.dm @@ -0,0 +1,32 @@ +/datum/round_event_control/weightless + name = "Gravity Systems Failure" + typepath = /datum/round_event/weightless + weight = 15 + +/datum/round_event/weightless + startWhen = 5 + endWhen = 65 + announceWhen = 1 + +/datum/round_event/weightless/setup() + startWhen = rand(0,10) + endWhen = rand(40,80) + +/datum/round_event/weightless/announce() + command_alert("Warning: Failsafes for the station's artificial gravity arrays have been triggered. Please be aware that if this problem recurs it may result in formation of gravitational anomalies. Nanotrasen wishes to remind you that the unauthorised formation of anomalies within Nanotrasen facilities is strictly prohibited by health and safety regulation [rand(99,9999)][pick("a","b","c")]:subclause[rand(1,20)][pick("a","b","c")].") + +/datum/round_event/weightless/start() + for(var/area/A in world) + A.gravitychange(0) + + if(control) + control.weight *= 2 + +/datum/round_event/weightless/end() + for(var/area/A in world) + A.gravitychange(1) + + if(announceWhen >= 0) + command_alert("Artificial gravity arrays are now functioning within normal parameters. Please report any irregularities to your respective head of staff.") + + diff --git a/code/modules/events/wizard/advanced_darkness.dm b/code/modules/events/wizard/advanced_darkness.dm new file mode 100644 index 0000000..16e8042 --- /dev/null +++ b/code/modules/events/wizard/advanced_darkness.dm @@ -0,0 +1,16 @@ +/datum/round_event_control/wizard/darkness + name = "Advanced Darkness" + weight = 2 + typepath = /datum/round_event/wizard/darkness + max_occurrences = 2 + earliest_start = 0 + +/datum/round_event/wizard/darkness + endWhen = 0 + var/started = FALSE + + +/datum/round_event/wizard/darkness/start() + if(!started) + started = TRUE + SSweather.run_weather("advanced darkness") diff --git a/code/modules/events/wizard/aid.dm b/code/modules/events/wizard/aid.dm new file mode 100644 index 0000000..b472ab9 --- /dev/null +++ b/code/modules/events/wizard/aid.dm @@ -0,0 +1,56 @@ +//in this file: Various events that directly aid the wizard. This is the "lets entice the wizard to use summon events!" file. + +/datum/round_event_control/wizard/robelesscasting //EI NUDTH! + name = "Robeless Casting" + weight = 2 + typepath = /datum/round_event/wizard/robelesscasting/ + max_occurrences = 1 + earliest_start = 0 + +/datum/round_event/wizard/robelesscasting/start() + + for(var/mob/living/L in mob_list) //Hey if a corgi has magic missle he should get the same benifit as anyone + if(L.mind && L.mind.spell_list.len != 0) + var/spell_improved = 0 + for(var/obj/effect/proc_holder/spell/S in L.mind.spell_list) + if(S.clothes_req) + S.clothes_req = 0 + spell_improved = 1 + if(spell_improved) + L << "You suddenly feel like you never needed those garish robes in the first place..." + +//--// + +/datum/round_event_control/wizard/improvedcasting //blink x5 disintergrate x5 here I come! + name = "Improved Casting" + weight = 3 + typepath = /datum/round_event/wizard/improvedcasting/ + max_occurrences = 4 //because that'd be max level spells + earliest_start = 0 + +/datum/round_event/wizard/improvedcasting/start() + for(var/mob/living/L in mob_list) + if(L.mind && L.mind.spell_list.len != 0) + for(var/obj/effect/proc_holder/spell/S in L.mind.spell_list) + S.name = initial(S.name) + S.spell_level++ + if(S.spell_level >= 6 || S.charge_max <= 0) //Badmin checks, these should never be a problem in normal play + continue + if(S.level_max <= 0) + continue + S.charge_max = round(initial(S.charge_max) - S.spell_level * (initial(S.charge_max) - S.cooldown_min) / S.level_max) + if(S.charge_max < S.charge_counter) + S.charge_counter = S.charge_max + switch(S.spell_level) + if(1) + S.name = "Efficient [S.name]" + if(2) + S.name = "Quickened [S.name]" + if(3) + S.name = "Free [S.name]" + if(4) + S.name = "Instant [S.name]" + if(5) + S.name = "Ludicrous [S.name]" + + L << "You suddenly feel more competent with your casting!" diff --git a/code/modules/events/wizard/blobies.dm b/code/modules/events/wizard/blobies.dm new file mode 100644 index 0000000..2f9f040 --- /dev/null +++ b/code/modules/events/wizard/blobies.dm @@ -0,0 +1,11 @@ +/datum/round_event_control/wizard/blobies //avast! + name = "Zombie Outbreak" + weight = 3 + typepath = /datum/round_event/wizard/blobies/ + max_occurrences = 3 + earliest_start = 12000 // 20 minutes (gotta get some bodies made!) + +/datum/round_event/wizard/blobies/start() + + for(var/mob/living/carbon/human/H in dead_mob_list) + new /mob/living/simple_animal/hostile/blob/blobspore(H.loc) diff --git a/code/modules/events/wizard/curseditems.dm b/code/modules/events/wizard/curseditems.dm new file mode 100644 index 0000000..cb0add4 --- /dev/null +++ b/code/modules/events/wizard/curseditems.dm @@ -0,0 +1,60 @@ +/datum/round_event_control/wizard/cursed_items //fashion disasters + name = "Cursed Items" + weight = 3 + typepath = /datum/round_event/wizard/cursed_items/ + max_occurrences = 3 + earliest_start = 0 + +//Note about adding items to this: Because of how NODROP works if an item spawned to the hands can also be equiped to a slot +//it will be able to be put into that slot from the hand, but then get stuck there. To avoid this make a new subtype of any +//item you want to equip to the hand, and set its slots_flags = null. Only items equiped to hands need do this. + +/datum/round_event/wizard/cursed_items/start() + var/item_set = pick("wizardmimic", "swords", "bigfatdoobie", "boxing", "voicemodulators", "catgirls2015") + var/list/wearslots = list(slot_wear_suit, slot_shoes, slot_head, slot_wear_mask, slot_gloves, slot_ears) + var/list/loadout = list() + var/ruins_spaceworthiness + var/ruins_wizard_loadout + loadout.len = 7 + + switch(item_set) + if("wizardmimic") + loadout = list(/obj/item/clothing/suit/wizrobe, /obj/item/clothing/shoes/sandal, /obj/item/clothing/head/wizard) + ruins_spaceworthiness = 1 + if("swords") + loadout[5] = /obj/item/weapon/katana/cursed + if("bigfatdoobie") + loadout[4] = /obj/item/clothing/mask/cigarette/rollie/trippy/ + ruins_spaceworthiness = 1 + if("boxing") + loadout[4] = /obj/item/clothing/mask/luchador + loadout[6] = /obj/item/clothing/gloves/boxing + ruins_spaceworthiness = 1 + if("voicemodulators") + loadout[4] = /obj/item/clothing/mask/chameleon + if("catgirls2015") + loadout[3] = /obj/item/clothing/head/kitty + ruins_spaceworthiness = 1 + ruins_wizard_loadout = 1 + + for(var/mob/living/carbon/human/H in living_mob_list) + if(ruins_spaceworthiness && (H.z != 1 || isspaceturf(H.loc) || isplasmaman(H))) + continue //#savetheminers + if(ruins_wizard_loadout && H.mind && ((H.mind in ticker.mode.wizards) || (H.mind in ticker.mode.apprentices))) + continue + if(item_set == "catgirls2015") //Wizard code means never having to say you're sorry + H.gender = FEMALE + var/list/slots = list(H.wear_suit, H.shoes, H.head, H.wear_mask, H.gloves, H.ears) //add new slots as needed to back + for(var/i in 1 to loadout.len) + if(loadout[i]) + var/obj/item/J = loadout[i] + var/obj/item/I = new J //dumb but required because of byond throwing a fit anytime new gets too close to a list + H.unEquip(slots[i]) + H.equip_to_slot_or_del(I, wearslots[i]) + I.flags |= NODROP + I.name = "cursed " + I.name + + for(var/mob/living/carbon/human/H in living_mob_list) + var/datum/effect_system/smoke_spread/smoke = new + smoke.set_up(0, H.loc) + smoke.start() diff --git a/code/modules/events/wizard/departmentrevolt.dm b/code/modules/events/wizard/departmentrevolt.dm new file mode 100644 index 0000000..0408f97 --- /dev/null +++ b/code/modules/events/wizard/departmentrevolt.dm @@ -0,0 +1,53 @@ +/datum/round_event_control/wizard/deprevolt //stationwide! + name = "Departmental Uprising" + weight = 0 //An order that requires order in a round of chaos was maybe not the best idea. Requiescat in pace departmental uprising August 2014 - March 2015 + typepath = /datum/round_event/wizard/deprevolt/ + max_occurrences = 1 + earliest_start = 0 + +/datum/round_event/wizard/deprevolt/start() + + var/list/tidecolor + var/list/jobs_to_revolt = list() + var/nation + var/list/citizens = list() + + tidecolor = pick("grey", "white", "yellow", "purple", "brown", "whatevercolorrepresentstheservicepeople") + switch(tidecolor) + if("grey") //God help you + jobs_to_revolt = list("Assistant") + nation = pick("Assa", "Mainte", "Tunnel", "Gris", "Grey", "Liath", "Grigio", "Ass", "Assi") + if("white") + jobs_to_revolt = list("Chief Medical Officer", "Medical Doctor", "Chemist", "Geneticist", "Virologist") + nation = pick("Mede", "Healtha", "Recova", "Chemi", "Geneti", "Viro", "Psych") + if("yellow") + jobs_to_revolt = list("Chief Engineer", "Station Engineer", "Atmospheric Technician") + nation = pick("Atomo", "Engino", "Power", "Teleco") + if("purple") + jobs_to_revolt = list("Research Director","Scientist", "Roboticist") + nation = pick("Sci", "Griffa", "Explosi", "Mecha", "Xeno") + if("brown") + jobs_to_revolt = list("Quartermaster", "Cargo Technician", "Shaft Miner") + nation = pick("Cargo", "Guna", "Suppli", "Mule", "Crate", "Ore", "Mini", "Shaf") + if("whatevercolorrepresentstheservicepeople") //the few, the proud, the technically aligned + jobs_to_revolt = list("Bartender", "Cook", "Botanist", "Clown", "Mime", "Janitor", "Chaplain") + nation = pick("Honka", "Boozo", "Fatu", "Danka", "Mimi", "Libra", "Jani", "Religi") + + nation += pick("stan", "topia", "land", "nia", "ca", "tova", "dor", "ador", "tia", "sia", "ano", "tica", "tide", "cis", "marea", "co", "taoide", "slavia", "stotzka") + + for(var/mob/living/carbon/human/H in mob_list) + if(H.mind) + var/datum/mind/M = H.mind + if(M.assigned_role && !(M in ticker.mode.traitors)) + for(var/job in jobs_to_revolt) + if(M.assigned_role == job) + citizens += H + ticker.mode.traitors += M + M.special_role = "separatist" + H.attack_log += "\[[time_stamp()]\] Was made into a separatist, long live [nation]!" + H << "You are a separatist! [nation] forever! Protect the soverignty of your newfound land with your comrades in arms!" + if(citizens.len) + var/message + for(var/job in jobs_to_revolt) + message += "[job]," + message_admins("The nation of [nation] has been formed. Affected jobs are [message]") diff --git a/code/modules/events/wizard/fakeexplosion.dm b/code/modules/events/wizard/fakeexplosion.dm new file mode 100644 index 0000000..3b2dfe8 --- /dev/null +++ b/code/modules/events/wizard/fakeexplosion.dm @@ -0,0 +1,12 @@ +/datum/round_event_control/wizard/fake_explosion //Oh no the station is gone! + name = "Fake Nuclear Explosion" + weight = 0 //Badmin exclusive now because once it's expected its not funny + typepath = /datum/round_event/wizard/fake_explosion/ + max_occurrences = 1 + earliest_start = 0 + +/datum/round_event/wizard/fake_explosion/start() + for(var/mob/M in player_list) + M << 'sound/machines/Alarm.ogg' + spawn(100) + ticker.station_explosion_cinematic(1,"fake") //:o) \ No newline at end of file diff --git a/code/modules/events/wizard/ghost.dm b/code/modules/events/wizard/ghost.dm new file mode 100644 index 0000000..bb60ee2 --- /dev/null +++ b/code/modules/events/wizard/ghost.dm @@ -0,0 +1,27 @@ +/datum/round_event_control/wizard/ghost //The spook is real + name = "G-G-G-Ghosts!" + weight = 3 + typepath = /datum/round_event/wizard/ghost/ + max_occurrences = 5 + earliest_start = 0 + +/datum/round_event/wizard/ghost/start() + for(var/mob/dead/observer/G in player_list) + G.invisibility = 0 + G << "You suddenly feel extremely obvious..." + + +//--// + +/datum/round_event_control/wizard/possession //Oh shit + name = "Possessing G-G-G-Ghosts!" + weight = 2 + typepath = /datum/round_event/wizard/possession + max_occurrences = 5 + earliest_start = 0 + +/datum/round_event/wizard/possession/start() + for(var/mob/dead/observer/G in player_list) + G.verbs += /mob/dead/observer/verb/boo + G.verbs += /mob/dead/observer/verb/possess + G << "You suddenly feel a welling of new spooky powers..." diff --git a/code/modules/events/wizard/greentext.dm b/code/modules/events/wizard/greentext.dm new file mode 100644 index 0000000..4579f91 --- /dev/null +++ b/code/modules/events/wizard/greentext.dm @@ -0,0 +1,98 @@ +/datum/round_event_control/wizard/greentext //Gotta have it! + name = "Greentext" + weight = 4 + typepath = /datum/round_event/wizard/greentext/ + max_occurrences = 1 + earliest_start = 0 + +/datum/round_event/wizard/greentext/start() + + var/list/holder_canadates = player_list.Copy() + for(var/mob/M in holder_canadates) + if(!ishuman(M)) + holder_canadates -= M + if(!holder_canadates) //Very unlikely, but just in case + return 0 + + var/mob/living/carbon/human/H = pick(holder_canadates) + new /obj/item/weapon/greentext(H.loc) + H << "The mythical greentext appear at your feet! Pick it up if you dare..." + + +/obj/item/weapon/greentext + name = "greentext" + desc = "No one knows what this massive tome does, but it feels desirable all the same..." + w_class = 4 + icon = 'icons/obj/wizard.dmi' + icon_state = "greentext" + var/mob/living/last_holder + var/mob/living/new_holder + var/list/color_altered_mobs = list() + resistance_flags = FIRE_PROOF | ACID_PROOF + var/quiet = FALSE + +/obj/item/weapon/greentext/New() + ..() + poi_list |= src + +/obj/item/weapon/greentext/equipped(mob/living/user as mob) + user << "So long as you leave this place with greentext in hand you know will be happy..." + if(user.mind && user.mind.objectives.len > 0) + user << "... so long as you still perform your other objectives that is!" + new_holder = user + if(!last_holder) + last_holder = user + if(!(user in color_altered_mobs)) + color_altered_mobs += user + user.add_atom_colour("#00FF00", ADMIN_COLOUR_PRIORITY) + START_PROCESSING(SSobj, src) + ..() + +/obj/item/weapon/greentext/dropped(mob/living/user as mob) + if(user in color_altered_mobs) + user << "A sudden wave of failure washes over you..." + user.add_atom_colour("#FF0000", ADMIN_COLOUR_PRIORITY) //ya blew it + last_holder = null + new_holder = null + STOP_PROCESSING(SSobj, src) + ..() + +/obj/item/weapon/greentext/process() + if(new_holder && new_holder.z == ZLEVEL_CENTCOM)//you're winner! + new_holder << "At last it feels like victory is assured!" + if(!(new_holder in ticker.mode.traitors)) + ticker.mode.traitors += new_holder.mind + new_holder.mind.special_role = "winner" + var/datum/objective/O = new /datum/objective("Succeed") + O.completed = 1 //YES! + O.owner = new_holder.mind + new_holder.mind.objectives += O + new_holder.attack_log += "\[[time_stamp()]\] Won with greentext!!!" + color_altered_mobs -= new_holder + resistance_flags |= ON_FIRE + qdel(src) + + if(last_holder && last_holder != new_holder) //Somehow it was swiped without ever getting dropped + last_holder << "A sudden wave of failure washes over you..." + last_holder.add_atom_colour("#FF0000", ADMIN_COLOUR_PRIORITY) + last_holder = new_holder //long live the king + +/obj/item/weapon/greentext/Destroy(force) + if(!(resistance_flags & ON_FIRE) && !force) + return QDEL_HINT_LETMELIVE + + . = ..() + poi_list.Remove(src) + for(var/mob/M in mob_list) + var/message = "A dark temptation has passed from this world" + if(M in color_altered_mobs) + message += " and you're finally able to forgive yourself" + if(M.color == "#FF0000" || M.color == "#00FF00") + M.remove_atom_colour(ADMIN_COLOUR_PRIORITY) + message += "..." + // can't skip the mob check as it also does the decolouring + if(!quiet) + M << message + +/obj/item/weapon/greentext/quiet + quiet = TRUE diff --git a/code/modules/events/wizard/imposter.dm b/code/modules/events/wizard/imposter.dm new file mode 100644 index 0000000..15b07a1 --- /dev/null +++ b/code/modules/events/wizard/imposter.dm @@ -0,0 +1,58 @@ +/datum/round_event_control/wizard/imposter //Mirror Mania + name = "Imposter Wizard" + weight = 1 + typepath = /datum/round_event/wizard/imposter/ + max_occurrences = 1 + earliest_start = 0 + +/datum/round_event/wizard/imposter/start() + + for(var/datum/mind/M in ticker.mode.wizards) + if(!ishuman(M.current)) + continue + var/mob/living/carbon/human/W = M.current + var/list/candidates = get_candidates(ROLE_WIZARD) + if(!candidates) + return //Sad Trombone + var/client/C = pick(candidates) + + PoolOrNew(/obj/effect/particle_effect/smoke, W.loc) + + var/mob/living/carbon/human/I = new /mob/living/carbon/human(W.loc) + W.dna.transfer_identity(I, transfer_SE=1) + I.real_name = I.dna.real_name + I.name = I.dna.real_name + I.updateappearance(mutcolor_update=1) + I.domutcheck() + if(W.ears) + I.equip_to_slot_or_del(new W.ears.type, slot_ears) + if(W.w_uniform) + I.equip_to_slot_or_del(new W.w_uniform.type , slot_w_uniform) + if(W.shoes) + I.equip_to_slot_or_del(new W.shoes.type, slot_shoes) + if(W.wear_suit) + I.equip_to_slot_or_del(new W.wear_suit.type, slot_wear_suit) + if(W.head) + I.equip_to_slot_or_del(new W.head.type, slot_head) + if(W.back) + I.equip_to_slot_or_del(new W.back.type, slot_back) + I.key = C.key + + //Operation: Fuck off and scare people + I.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/area_teleport/teleport(null)) + I.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/turf_teleport/blink(null)) + I.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/ethereal_jaunt(null)) + + ticker.mode.apprentices += I.mind + I.mind.special_role = "imposter" + + var/datum/objective/protect/protect_objective = new /datum/objective/protect + protect_objective.owner = I.mind + protect_objective.target = W.mind + protect_objective.explanation_text = "Protect [W.real_name], the wizard." + I.mind.objectives += protect_objective + ticker.mode.update_wiz_icons_added(I.mind) + + I.attack_log += "\[[time_stamp()]\] Is an imposter!" + I << "You are an imposter! Trick and confuse the crew to misdirect malice from your handsome original!" + I << sound('sound/effects/magic.ogg') diff --git a/code/modules/events/wizard/invincible.dm b/code/modules/events/wizard/invincible.dm new file mode 100644 index 0000000..b2cc9a8 --- /dev/null +++ b/code/modules/events/wizard/invincible.dm @@ -0,0 +1,12 @@ +/datum/round_event_control/wizard/invincible //Boolet Proof + name = "Invincibility" + weight = 3 + typepath = /datum/round_event/wizard/invincible/ + max_occurrences = 5 + earliest_start = 0 + +/datum/round_event/wizard/invincible/start() + + for(var/mob/living/carbon/human/H in living_mob_list) + H.reagents.add_reagent("adminordrazine", 40) //100 ticks of absolute invinciblity (barring gibs) + H << "You feel invincible, nothing can hurt you!" \ No newline at end of file diff --git a/code/modules/events/wizard/lava.dm b/code/modules/events/wizard/lava.dm new file mode 100644 index 0000000..80d1446 --- /dev/null +++ b/code/modules/events/wizard/lava.dm @@ -0,0 +1,15 @@ +/datum/round_event_control/wizard/lava //THE LEGEND NEVER DIES + name = "The Floor Is LAVA!" + weight = 2 + typepath = /datum/round_event/wizard/lava/ + max_occurrences = 3 + earliest_start = 0 + +/datum/round_event/wizard/lava/ + endWhen = 0 + var/started = FALSE + +/datum/round_event/wizard/lava/start() + if(!started) + started = TRUE + SSweather.run_weather("the floor is lava") diff --git a/code/modules/events/wizard/magicarp.dm b/code/modules/events/wizard/magicarp.dm new file mode 100644 index 0000000..aba0bcc --- /dev/null +++ b/code/modules/events/wizard/magicarp.dm @@ -0,0 +1,54 @@ +/datum/round_event_control/wizard/magicarp //these fish is loaded + name = "Magicarp" + weight = 1 + typepath = /datum/round_event/wizard/magicarp/ + max_occurrences = 1 + earliest_start = 0 + +/datum/round_event/wizard/magicarp/ + announceWhen = 3 + startWhen = 50 + +/datum/round_event/wizard/magicarp/setup() + startWhen = rand(40, 60) + +/datum/round_event/wizard/magicarp/announce() + priority_announce("Unknown magical entities have been detected near [station_name()], please stand-by.", "Lifesign Alert") + +/datum/round_event/wizard/magicarp/start() + for(var/obj/effect/landmark/C in landmarks_list) + if(C.name == "carpspawn") + if(prob(5)) + new /mob/living/simple_animal/hostile/carp/ranged/chaos(C.loc) + else + new /mob/living/simple_animal/hostile/carp/ranged(C.loc) + +/mob/living/simple_animal/hostile/carp/ranged + name = "magicarp" + desc = "50% magic, 50% carp, 100% horrible." + icon_state = "magicarp" + icon_living = "magicarp" + icon_dead = "magicarp_dead" + icon_gib = "magicarp_gib" + ranged = 1 + retreat_distance = 2 + minimum_distance = 0 //Between shots they can and will close in to nash + projectiletype = /obj/item/projectile/magic + projectilesound = 'sound/weapons/emitter.ogg' + maxHealth = 50 + health = 50 + +/mob/living/simple_animal/hostile/carp/ranged/New() + projectiletype = pick(typesof(initial(projectiletype))) + ..() + +/mob/living/simple_animal/hostile/carp/ranged/chaos + name = "chaos magicarp" + desc = "50% carp, 100% magic, 150% horrible." + color = "#00FFFF" + maxHealth = 75 + health = 75 + +/mob/living/simple_animal/hostile/carp/ranged/chaos/Shoot() + projectiletype = pick(typesof(initial(projectiletype))) + ..() \ No newline at end of file diff --git a/code/modules/events/wizard/petsplosion.dm b/code/modules/events/wizard/petsplosion.dm new file mode 100644 index 0000000..b5a2be8 --- /dev/null +++ b/code/modules/events/wizard/petsplosion.dm @@ -0,0 +1,17 @@ +/datum/round_event_control/wizard/petsplosion //the horror + name = "Petsplosion" + weight = 2 + typepath = /datum/round_event/wizard/petsplosion/ + max_occurrences = 1 //Exponential growth is nothing to sneeze at! + earliest_start = 0 + +/datum/round_event/wizard/petsplosion/ + endWhen = 61 //1 minute (+1 tick for endWhen not to interfere with tick) + var/countdown = 0 + +/datum/round_event/wizard/petsplosion/tick() + if(activeFor >= 30 * countdown) // 0 seconds : 2 animals | 30 seconds : 4 animals | 1 minute : 8 animals + countdown += 1 + for(var/mob/living/simple_animal/F in living_mob_list) //If you cull the heard before the next replication, things will be easier for you + if(!ishostile(F)) + new F.type(F.loc) \ No newline at end of file diff --git a/code/modules/events/wizard/race.dm b/code/modules/events/wizard/race.dm new file mode 100644 index 0000000..cb4f489 --- /dev/null +++ b/code/modules/events/wizard/race.dm @@ -0,0 +1,29 @@ +/datum/round_event_control/wizard/race //Lizard Wizard? Lizard Wizard. + name = "Race Swap" + weight = 2 + typepath = /datum/round_event/wizard/race/ + max_occurrences = 5 + earliest_start = 0 + +/datum/round_event/wizard/race/start() + + var/all_the_same = 0 + var/all_species = list() + + for(var/speciestype in subtypesof(/datum/species)) + var/datum/species/S = new speciestype() + if(!S.dangerous_existence) + all_species += speciestype + + var/datum/species/new_species = pick(all_species) + + if(prob(50)) + all_the_same = 1 + + for(var/mob/living/carbon/human/H in mob_list) //yes, even the dead + H.set_species(new_species) + H.real_name = new_species.random_name(H.gender,1) + H.dna.unique_enzymes = H.dna.generate_unique_enzymes() + H << "You feel somehow... different?" + if(!all_the_same) + new_species = pick(all_species) diff --git a/code/modules/events/wizard/rpgloot.dm b/code/modules/events/wizard/rpgloot.dm new file mode 100644 index 0000000..cacf2ba --- /dev/null +++ b/code/modules/events/wizard/rpgloot.dm @@ -0,0 +1,63 @@ +/datum/round_event_control/wizard/rpgloot //its time to minmax your shit + name = "RPG Loot" + weight = 3 + typepath = /datum/round_event/wizard/rpgloot/ + max_occurrences = 1 + earliest_start = 0 + +/datum/round_event/wizard/rpgloot/start() + var/list/prefixespositive = list("greater", "major", "blessed", "superior", "enpowered", "honed", "true", "glorious", "robust") + var/list/prefixesnegative = list("lesser", "minor", "blighted", "inferior", "enfeebled", "rusted", "unsteady", "tragic", "gimped") + var/list/suffixes = list("orc slaying", "elf slaying", "corgi slaying", "strength", "dexterity", "constitution", "intelligence", "wisdom", "charisma", "the forest", "the hills", "the plains", "the sea", "the sun", "the moon", "the void", "the world", "the fool", "many secrets", "many tales", "many colors", "rending", "sundering", "the night", "the day") + var/upgrade_scroll_chance = 0 + for(var/obj/item/I in world) + if(istype(I,/obj/item/organ/)) + continue + var/quality = pick(1;15, 2;14, 2;13, 2;12, 3;11, 3;10, 3;9, 4;8, 4;7, 4;6, 5;5, 5;4, 5;3, 6;2, 6;1, 6;0) + if(prob(50)) + quality = -quality + if(quality > 0) + I.name = "[pick(prefixespositive)] [I.name] of [pick(suffixes)] +[quality]" + else if(quality < 0) + I.name = "[pick(prefixesnegative)] [I.name] of [pick(suffixes)] [quality]" + else + I.name = "[I.name] of [pick(suffixes)]" + + I.force = max(0,I.force + quality) + I.throwforce = max(0,I.throwforce + quality) + for(var/value in I.armor) + I.armor[value] += quality + + if(istype(I,/obj/item/weapon/storage)) + var/obj/item/weapon/storage/S = I + if(prob(upgrade_scroll_chance) && S.contents.len < S.storage_slots && !S.invisibility) + var/obj/item/upgradescroll/scroll = new + S.handle_item_insertion(scroll,1) + upgrade_scroll_chance = max(0,upgrade_scroll_chance-100) + upgrade_scroll_chance += 25 + +/obj/item/upgradescroll + name = "Item Fortification Scroll" + desc = "Somehow, this piece of paper can be applied to items to make them \"better\". Apparently there's a risk of losing the item if it's already \"too good\". This all feels so arbitrary..." + icon = 'icons/obj/wizard.dmi' + icon_state = "scroll" + w_class = 1 + +/obj/item/upgradescroll/afterattack(obj/item/target, mob/user , proximity) + if(!proximity || !istype(target)) + return + var/quality = target.force - initial(target.force) + if(quality > 9 && prob((quality - 9)*10)) + user << "[target] catches fire!" + if(target.resistance_flags & (LAVA_PROOF|FIRE_PROOF)) + target.resistance_flags &= ~(LAVA_PROOF|FIRE_PROOF) + target.resistance_flags |= FLAMMABLE + target.fire_act() + qdel(src) + return + target.force += 1 + target.throwforce += 1 + for(var/value in target.armor) + target.armor[value] += 1 + user << "[target] glows blue and seems vaguely \"better\"!" + qdel(src) diff --git a/code/modules/events/wizard/shuffle.dm b/code/modules/events/wizard/shuffle.dm new file mode 100644 index 0000000..6877766 --- /dev/null +++ b/code/modules/events/wizard/shuffle.dm @@ -0,0 +1,104 @@ +/datum/round_event/wizard/shuffle/start() + + +/datum/round_event_control/wizard/shuffleloc //Somewhere an AI is crying + name = "Change Places!" + weight = 2 + typepath = /datum/round_event/wizard/shuffleloc/ + max_occurrences = 5 + earliest_start = 0 + +/datum/round_event/wizard/shuffleloc/start() + var/list/moblocs = list() + var/list/mobs = list() + + for(var/mob/living/carbon/human/H in living_mob_list) + if(H.z != 1) + continue //lets not try to strand people in space or stuck in the wizards den + moblocs += H.loc + mobs += H + + if(!mobs) + return + + shuffle(moblocs) + shuffle(mobs) + + for(var/mob/living/carbon/human/H in mobs) + if(!moblocs) + break //locs aren't always unique, so this may come into play + do_teleport(H, moblocs[moblocs.len]) + moblocs.len -= 1 + + for(var/mob/living/carbon/human/H in living_mob_list) + var/datum/effect_system/smoke_spread/smoke = new + smoke.set_up(0, H.loc) + smoke.start() + +//---// + +/datum/round_event_control/wizard/shufflenames //Face/off joke + name = "Change Faces!" + weight = 4 + typepath = /datum/round_event/wizard/shufflenames/ + max_occurrences = 5 + earliest_start = 0 + +/datum/round_event/wizard/shufflenames/start() + var/list/mobnames = list() + var/list/mobs = list() + + for(var/mob/living/carbon/human/H in living_mob_list) + mobnames += H.real_name + mobs += H + + if(!mobs) + return + + shuffle(mobnames) + shuffle(mobs) + + for(var/mob/living/carbon/human/H in mobs) + if(!mobnames) + break + H.real_name = mobnames[mobnames.len] + mobnames.len -= 1 + + for(var/mob/living/carbon/human/H in living_mob_list) + var/datum/effect_system/smoke_spread/smoke = new + smoke.set_up(0, H.loc) + smoke.start() + +//---// + +/datum/round_event_control/wizard/shuffleminds //Basically Mass Ranged Mindswap + name = "Change Minds!" + weight = 1 + typepath = /datum/round_event/wizard/shuffleminds/ + max_occurrences = 3 + earliest_start = 0 + +/datum/round_event/wizard/shuffleminds/start() + var/list/mobs = list() + + for(var/mob/living/carbon/human/H in living_mob_list) + if(H.stat || !H.mind || (H.mind in ticker.mode.wizards) || (H.mind in ticker.mode.apprentices)) + continue //the wizard(s) are spared on this one + mobs += H + + if(!mobs) + return + + shuffle(mobs) + + var/obj/effect/proc_holder/spell/targeted/mind_transfer/swapper = new /obj/effect/proc_holder/spell/targeted/mind_transfer/ + while(mobs.len > 1) + var/mob/living/carbon/human/H = pick(mobs) + mobs -= H + swapper.cast(list(H), mobs[mobs.len], 1) + mobs -= mobs[mobs.len] + + for(var/mob/living/carbon/human/H in living_mob_list) + var/datum/effect_system/smoke_spread/smoke = new + smoke.set_up(0, H.loc) + smoke.start() diff --git a/code/modules/events/wizard/summons.dm b/code/modules/events/wizard/summons.dm new file mode 100644 index 0000000..7b3e27e --- /dev/null +++ b/code/modules/events/wizard/summons.dm @@ -0,0 +1,29 @@ +/datum/round_event_control/wizard/summonguns //The Classic + name = "Summon Guns" + weight = 1 + typepath = /datum/round_event/wizard/summonguns/ + max_occurrences = 1 + earliest_start = 0 + +/datum/round_event_control/wizard/summonguns/New() + if(config.no_summon_guns) + weight = 0 + ..() + +/datum/round_event/wizard/summonguns/start() + rightandwrong(0,,10) + +/datum/round_event_control/wizard/summonmagic //The Somewhat Less Classic + name = "Summon Magic" + weight = 1 + typepath = /datum/round_event/wizard/summonmagic/ + max_occurrences = 1 + earliest_start = 0 + +/datum/round_event_control/wizard/summonmagic/New() + if(config.no_summon_magic) + weight = 0 + ..() + +/datum/round_event/wizard/summonmagic/start() + rightandwrong(1,,10) \ No newline at end of file diff --git a/code/modules/events/wormholes.dm b/code/modules/events/wormholes.dm new file mode 100644 index 0000000..d141c30 --- /dev/null +++ b/code/modules/events/wormholes.dm @@ -0,0 +1,74 @@ +/datum/round_event_control/wormholes + name = "Wormholes" + typepath = /datum/round_event/wormholes + max_occurrences = 3 + weight = 2 + min_players = 2 + + +/datum/round_event/wormholes + announceWhen = 10 + endWhen = 60 + + var/list/pick_turfs = list() + var/list/wormholes = list() + var/shift_frequency = 3 + var/number_of_wormholes = 400 + +/datum/round_event/wormholes/setup() + announceWhen = rand(0, 20) + endWhen = rand(40, 80) + +/datum/round_event/wormholes/start() + for(var/turf/open/floor/T in world) + if(T.z == ZLEVEL_STATION) + pick_turfs += T + + for(var/i = 1, i <= number_of_wormholes, i++) + var/turf/T = pick(pick_turfs) + wormholes += new /obj/effect/portal/wormhole(T, null, null, -1) + +/datum/round_event/wormholes/announce() + priority_announce("Space-time anomalies detected on the station. There is no additional data.", "Anomaly Alert", 'sound/AI/spanomalies.ogg') + +/datum/round_event/wormholes/tick() + if(activeFor % shift_frequency == 0) + for(var/obj/effect/portal/wormhole/O in wormholes) + var/turf/T = pick(pick_turfs) + if(T) + O.loc = T + +/datum/round_event/wormholes/end() + portals.Remove(wormholes) + for(var/obj/effect/portal/wormhole/O in wormholes) + O.loc = null + wormholes.Cut() + + +/obj/effect/portal/wormhole + name = "wormhole" + desc = "It looks highly unstable; It could close at any moment." + icon = 'icons/obj/objects.dmi' + icon_state = "anom" + +/obj/effect/portal/wormhole/attack_hand(mob/user) + teleport(user) + +/obj/effect/portal/wormhole/attackby(obj/item/I, mob/user, params) + teleport(user) + +/obj/effect/portal/wormhole/teleport(atom/movable/M) + if(istype(M, /obj/effect)) //sparks don't teleport + return + if(M.anchored && istype(M, /obj/mecha)) + return + + if(istype(M, /atom/movable)) + var/turf/target + if(portals.len) + var/obj/effect/portal/P = pick(portals) + if(P && isturf(P.loc)) + target = P.loc + if(!target) + return + do_teleport(M, target, 1, 1, 0, 0) ///You will appear adjacent to the beacon \ No newline at end of file diff --git a/code/modules/flufftext/Dreaming.dm b/code/modules/flufftext/Dreaming.dm new file mode 100644 index 0000000..638fd4f --- /dev/null +++ b/code/modules/flufftext/Dreaming.dm @@ -0,0 +1,26 @@ +/mob/living/carbon/proc/dream() + set waitfor = 0 + dreaming = 1 + var/list/dreams = list( + "an ID card","a bottle","a familiar face","a crewmember","a toolbox","a security officer","the captain", + "voices from all around","deep space","a doctor","the engine","a traitor","an ally","darkness", + "light","a scientist","a monkey","a catastrophe","a loved one","a gun","warmth","freezing","the sun", + "a hat","the Luna","a ruined station","a planet","plasma","air","the medical bay","the bridge","blinking lights", + "a blue light","an abandoned laboratory","Nanotrasen","The Syndicate","blood","healing","power","respect", + "riches","space","a crash","happiness","pride","a fall","water","flames","ice","melons","flying" + ) + for(var/i = rand(1,4),i > 0, i--) + var/dream_image = pick(dreams) + dreams -= dream_image + src << "... [dream_image] ..." + sleep(rand(40,70)) + if(paralysis <= 0) + dreaming = 0 + return 0 + dreaming = 0 + return 1 + +/mob/living/carbon/proc/handle_dreams() + if(prob(5) && !dreaming) dream() + +/mob/living/carbon/var/dreaming = 0 \ No newline at end of file diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm new file mode 100644 index 0000000..cdcb898 --- /dev/null +++ b/code/modules/flufftext/Hallucination.dm @@ -0,0 +1,731 @@ +/* +Ideas for the subtle effects of hallucination: + +Light up oxygen/plasma indicators (done) +Cause health to look critical/dead, even when standing (done) +Characters silently watching you +Brief flashes of fire/space/bombs/c4/dangerous shit (done) +Items that are rare/traitorous/don't exist appearing in your inventory slots (done) +Strange audio (should be rare) (done) +Gunshots/explosions/opening doors/less rare audio (done) + +*/ + +/mob/living/carbon/ + var/image/halimage + var/image/halbody + var/obj/halitem + var/hal_screwyhud = 0 //1 - critical, 2 - dead, 3 - oxygen indicator, 4 - toxin indicator, 5 - perfect health + var/handling_hal = 0 + +/mob/living/carbon/proc/handle_hallucinations() + if(handling_hal) + return + + //Least obvious + var/list/minor = list("sounds"=20,"bolts_minor"=10,"whispers"=15,"message"=5) + //Something's wrong here + var/list/medium = list("hudscrew"=15,"items"=15,"dangerflash"=15,"bolts"=10,"flood"=10,"husks"=10,"battle"=10) + //AAAAH + var/list/major = list("fake"=10,"death"=5,"xeno"=10,"singulo"=10,"delusion"=10) + + var/grade = 0 + var/current = list() + var/trip_length = 0 + + handling_hal = 1 + while(hallucination > 20) + sleep(rand(200,500)/(hallucination/25)) + trip_length += 1 + if(prob(min(20,trip_length*2))) + grade = min(3,grade+1) + if(prob(20)) + continue + current = list() + for(var/a in minor) + current[a] = minor[a] * (grade==0?2:1) + for(var/b in medium) + current[b] = medium[b] * (grade==1?2:1) + for(var/c in major) + current[c] = major[c] * (grade==2?2:1) + + var/halpick = pickweight(current) + + hallucinate(halpick) + handling_hal = 0 + +/obj/effect/hallucination + invisibility = INVISIBILITY_OBSERVER + var/mob/living/carbon/target = null + +/obj/effect/hallucination/proc/wake_and_restore() + target.hal_screwyhud = 0 + target.SetSleeping(0) + +/obj/effect/hallucination/simple + var/image_icon = 'icons/mob/alien.dmi' + var/image_state = "alienh_pounce" + var/px = 0 + var/py = 0 + var/col_mod = null + var/image/current_image = null + var/image_layer = MOB_LAYER + var/active = 1 //qdelery + +/obj/effect/hallucination/simple/New(loc,var/mob/living/carbon/T) + target = T + current_image = GetImage() + if(target.client) target.client.images |= current_image + +/obj/effect/hallucination/simple/proc/GetImage() + var/image/I = image(image_icon,loc,image_state,image_layer,dir=src.dir) + I.pixel_x = px + I.pixel_y = py + if(col_mod) + I.color = col_mod + return I + +/obj/effect/hallucination/simple/proc/Show(update=1) + if(active) + if(target.client) target.client.images.Remove(current_image) + if(update) + current_image = GetImage() + if(target.client) target.client.images |= current_image + +/obj/effect/hallucination/simple/update_icon(new_state,new_icon,new_px=0,new_py=0) + image_state = new_state + if(new_icon) + image_icon = new_icon + else + image_icon = initial(image_icon) + px = new_px + py = new_py + Show() + +/obj/effect/hallucination/simple/Moved(atom/OldLoc, Dir) + Show() + +/obj/effect/hallucination/simple/Destroy() + if(target.client) target.client.images.Remove(current_image) + active = 0 + return ..() + +#define FAKE_FLOOD_EXPAND_TIME 30 +#define FAKE_FLOOD_MAX_RADIUS 7 + +/obj/effect/hallucination/fake_flood + //Plasma/N2O starts flooding from the nearby vent + var/list/flood_images = list() + var/list/turf/flood_turfs = list() + var/image_icon = 'icons/effects/tile_effects.dmi' + var/image_state = "plasma" + var/radius = 0 + var/next_expand = 0 + +/obj/effect/hallucination/fake_flood/New(loc,var/mob/living/carbon/T) + ..() + target = T + for(var/obj/machinery/atmospherics/components/unary/vent_pump/U in orange(7,target)) + if(!U.welded) + src.loc = U.loc + break + image_state = pick("plasma","nitrous_oxide") + flood_images += image(image_icon,src,image_state,MOB_LAYER) + flood_turfs += get_turf(src.loc) + if(target.client) target.client.images |= flood_images + next_expand = world.time + FAKE_FLOOD_EXPAND_TIME + START_PROCESSING(SSobj, src) + +/obj/effect/hallucination/fake_flood/process() + if(next_expand <= world.time) + radius++ + if(radius > FAKE_FLOOD_MAX_RADIUS) + qdel(src) + return + Expand() + next_expand = world.time + FAKE_FLOOD_EXPAND_TIME + +/obj/effect/hallucination/fake_flood/proc/Expand() + for(var/turf/T in circlerangeturfs(loc,radius)) + if((T in flood_turfs)|| T.blocks_air) + continue + flood_images += image(image_icon,T,image_state,MOB_LAYER) + flood_turfs += T + if(target.client) + target.client.images |= flood_images + +/obj/effect/hallucination/fake_flood/Destroy() + STOP_PROCESSING(SSobj, src) + qdel(flood_turfs) + flood_turfs = list() + if(target.client) + target.client.images.Remove(flood_images) + target = null + qdel(flood_images) + flood_images = list() + return ..() + +/obj/effect/hallucination/simple/xeno + image_icon = 'icons/mob/alien.dmi' + image_state = "alienh_pounce" + +/obj/effect/hallucination/simple/xeno/New(loc,var/mob/living/carbon/T) + ..() + name = "alien hunter ([rand(1, 1000)])" + +/obj/effect/hallucination/simple/xeno/throw_impact(A) + update_icon("alienh_pounce") + if(A == target) + target.Weaken(5) + target.visible_message("[target] flails around wildly.","[name] pounces on you!") + +/obj/effect/hallucination/xeno_attack + //Xeno crawls from nearby vent,jumps at you, and goes back in + var/obj/machinery/atmospherics/components/unary/vent_pump/pump = null + var/obj/effect/hallucination/simple/xeno/xeno = null + +/obj/effect/hallucination/xeno_attack/New(loc,var/mob/living/carbon/T) + target = T + for(var/obj/machinery/atmospherics/components/unary/vent_pump/U in orange(7,target)) + if(!U.welded) + pump = U + break + if(pump) + xeno = new(pump.loc,target) + sleep(10) + xeno.update_icon("alienh_leap",'icons/mob/alienleap.dmi',-32,-32) + xeno.throw_at(target,7,1, spin = 0, diagonals_first = 1) + sleep(10) + xeno.update_icon("alienh_leap",'icons/mob/alienleap.dmi',-32,-32) + xeno.throw_at(pump,7,1, spin = 0, diagonals_first = 1) + sleep(10) + var/xeno_name = xeno.name + target << "[xeno_name] begins climbing into the ventilation system..." + sleep(10) + qdel(xeno) + target << "[xeno_name] scrambles into the ventilation ducts!" + qdel(src) + +/obj/effect/hallucination/simple/clown + image_icon = 'icons/mob/animal.dmi' + image_state = "clown" + +/obj/effect/hallucination/simple/clown/New(loc,var/mob/living/carbon/T,duration) + ..(loc, T) + name = pick(clown_names) + QDEL_IN(src,duration) + +/obj/effect/hallucination/simple/clown/scary + image_state = "scary_clown" + +/obj/effect/hallucination/singularity_scare + //Singularity moving towards you. + //todo Hide where it moved with fake space images + var/obj/effect/hallucination/simple/singularity/s = null + +/obj/effect/hallucination/singularity_scare/New(loc,var/mob/living/carbon/T) + target = T + var/turf/start = T.loc + var/screen_border = pick(SOUTH,EAST,WEST,NORTH) + for(var/i = 0,i<11,i++) + start = get_step(start,screen_border) + s = new(start,target) + for(var/i = 0,i<11,i++) + sleep(5) + s.loc = get_step(get_turf(s),get_dir(s,target)) + s.Show() + s.Eat() + qdel(s) + +/obj/effect/hallucination/simple/singularity + image_icon = 'icons/effects/224x224.dmi' + image_state = "singularity_s7" + image_layer = MASSIVE_OBJ_LAYER + px = -96 + py = -96 + +/obj/effect/hallucination/simple/singularity/proc/Eat(atom/OldLoc, Dir) + var/target_dist = get_dist(src,target) + if(target_dist<=3) //"Eaten" + target.hal_screwyhud = 1 + target.SetSleeping(20) + addtimer(src, "wake_and_restore", rand(50, 100)) + +/obj/effect/hallucination/battle + +/obj/effect/hallucination/battle/New(loc,var/mob/living/carbon/T) + target = T + var/hits = rand(3,6) + switch(rand(1,5)) + if(1) //Laser fight + for(var/i=0,i[my_target] flails around wildly.
    ", \ + "[my_target] has attacked [src]!") + + obj_integrity -= P.force + +/obj/effect/fake_attacker/Crossed(mob/M, somenumber) + if(M == my_target) + step_away(src,my_target,2) + if(prob(30)) + for(var/mob/O in oviewers(world.view , my_target)) + O << "[my_target] stumbles around." + +/obj/effect/fake_attacker/New(loc,var/mob/living/carbon/T) + ..() + my_target = T + QDEL_IN(src, 300) + step_away(src,my_target,2) + addtimer(src, "attack_loop", 0) + + +/obj/effect/fake_attacker/proc/updateimage() +// del src.currentimage + if(src.dir == NORTH) + del src.currentimage + src.currentimage = new /image(up,src) + else if(src.dir == SOUTH) + del src.currentimage + src.currentimage = new /image(down,src) + else if(src.dir == EAST) + del src.currentimage + src.currentimage = new /image(right,src) + else if(src.dir == WEST) + del src.currentimage + src.currentimage = new /image(left,src) + my_target << currentimage + + +/obj/effect/fake_attacker/proc/attack_loop() + while(1) + sleep(rand(5,10)) + if(obj_integrity < 0) + collapse() + continue + if(get_dist(src,my_target) > 1) + src.setDir(get_dir(src,my_target)) + step_towards(src,my_target) + updateimage() + else + if(prob(15)) + do_attack_animation(my_target, ATTACK_EFFECT_PUNCH) + if(weapon_name) + my_target << sound(pick('sound/weapons/genhit1.ogg', 'sound/weapons/genhit2.ogg', 'sound/weapons/genhit3.ogg')) + my_target.show_message("[src.name] has attacked [my_target] with [weapon_name]!", 1) + my_target.staminaloss += 30 + if(prob(20)) + my_target.blur_eyes(3) + if(prob(33)) + if(!locate(/obj/effect/overlay) in my_target.loc) + fake_blood(my_target) + else + my_target << sound(pick('sound/weapons/punch1.ogg','sound/weapons/punch2.ogg','sound/weapons/punch3.ogg','sound/weapons/punch4.ogg')) + my_target.show_message("[src.name] has punched [my_target]!", 1) + my_target.staminaloss += 30 + if(prob(33)) + if(!locate(/obj/effect/overlay) in my_target.loc) + fake_blood(my_target) + + if(prob(15)) + step_away(src,my_target,2) + +/obj/effect/fake_attacker/proc/collapse() + collapse = 1 + updateimage() + +/obj/effect/fake_attacker/proc/fake_blood(mob/target) + var/obj/effect/overlay/O = new/obj/effect/overlay(target.loc) + O.name = "blood" + var/image/I = image('icons/effects/blood.dmi',O,"floor[rand(1,7)]",O.dir,1) + target << I + QDEL_IN(O, 300) + +var/list/non_fakeattack_weapons = list(/obj/item/weapon/gun/projectile, /obj/item/ammo_box/a357,\ + /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow, /obj/item/weapon/melee/energy/sword/saber,\ + /obj/item/weapon/storage/box/syndicate, /obj/item/weapon/storage/box/emps,\ + /obj/item/weapon/cartridge/syndicate, /obj/item/clothing/under/chameleon,\ + /obj/item/clothing/shoes/chameleon, /obj/item/weapon/card/id/syndicate,\ + /obj/item/clothing/mask/chameleon, /obj/item/clothing/glasses/thermal,\ + /obj/item/device/chameleon, /obj/item/weapon/card/emag, /obj/item/weapon/grenade/plastic/x4,\ + /obj/item/weapon/storage/toolbox/syndicate, /obj/item/weapon/aiModule,\ + /obj/item/device/radio/headset/syndicate, /obj/item/weapon/grenade/plastic/c4,\ + /obj/item/device/powersink, /obj/item/weapon/storage/box/syndie_kit,\ + /obj/item/toy/syndicateballoon, /obj/item/weapon/gun/energy/laser/captain,\ + /obj/item/weapon/hand_tele, /obj/item/weapon/rcd, /obj/item/weapon/tank/jetpack,\ + /obj/item/clothing/under/rank/captain, /obj/item/device/aicard,\ + /obj/item/clothing/shoes/magboots, /obj/item/areaeditor/blueprints, /obj/item/weapon/disk/nuclear,\ + /obj/item/clothing/suit/space/nasavoid, /obj/item/weapon/tank) + +/obj/effect/hallucination/bolts + var/list/doors = list() + +/obj/effect/hallucination/bolts/New(loc,var/mob/living/carbon/T,var/door_number=-1) //-1 for sever 1-2 for subtle + target = T + var/image/I = null + var/count = 0 + for(var/obj/machinery/door/airlock/A in range(7, target)) + if(count>door_number && door_number>0) + break + count++ + I = image(A.icon,A,"door_locked",layer=A.layer+0.1) + doors += I + if(target.client) + target.client.images |= I + sleep(2) + sleep(100) + for(var/image/B in doors) + if(target.client) + target.client.images.Remove(B) + qdel(src) + +/obj/effect/hallucination/whispers + +/obj/effect/hallucination/whispers/New(loc,var/mob/living/carbon/T) + target = T + var/speak_messages = list("I'm watching you...","[target.name]!","Go away!","Kchck-Chkck? Kchchck!","Did you hear that?","What did you do ?","Why?","Give me that!","Honk!","HELP!!") + var/radio_messages = list("Xenos!","Singularity loose!","They are arming the nuke!","They butchered Ian!","H-help!","[pick(teleportlocs)]!!","Where's [target.name]?","Call the shuttle!") + + var/list/mob/living/carbon/people = list() + var/list/mob/living/carbon/person = null + for(var/mob/living/carbon/H in view(target)) + if(H == target) + continue + if(!person) + person = H + else + if(get_dist(target,H)The light burns you!
    ", \ + "You don't feel like yourself.", \ + "Unknown has punched [target]!", \ + "You hear something squeezing through the ducts...", \ + "You hear a distant scream.", \ + "You feel invincible, nothing can hurt you!", \ + "[target] sneezes.", \ + "You feel faint.", \ + "You hear a strange, alien voice in your head...[pick("Hiss","Ssss")]", \ + "You can see...everything!") + target << chosen + qdel(src) + +/mob/living/carbon/proc/hallucinate(hal_type) // Todo -> proc / defines + switch(hal_type) + if("xeno") + new /obj/effect/hallucination/xeno_attack(src.loc,src) + if("singulo") + new /obj/effect/hallucination/singularity_scare(src.loc,src) + if("battle") + new /obj/effect/hallucination/battle(src.loc,src) + if("flood") + new /obj/effect/hallucination/fake_flood(src.loc,src) + if("delusion") + new /obj/effect/hallucination/delusion(src.loc,src) + if("fake") + new /obj/effect/hallucination/fakeattacker(src.loc,src) + if("bolts") + new /obj/effect/hallucination/bolts(src.loc,src) + if("bolts_minor") + new /obj/effect/hallucination/bolts(src.loc,src,rand(1,2)) + if("whispers") + new /obj/effect/hallucination/whispers(src.loc,src) + if("message") + new /obj/effect/hallucination/message(src.loc,src) + if("sounds") + //Strange audio + //src << "Strange Audio" + switch(rand(1,18)) + if(1) src << 'sound/machines/airlock.ogg' + if(2) + if(prob(50))src << 'sound/effects/Explosion1.ogg' + else src << 'sound/effects/Explosion2.ogg' + if(3) src << 'sound/effects/explosionfar.ogg' + if(4) src << 'sound/effects/Glassbr1.ogg' + if(5) src << 'sound/effects/Glassbr2.ogg' + if(6) src << 'sound/effects/Glassbr3.ogg' + if(7) src << 'sound/machines/twobeep.ogg' + if(8) src << 'sound/machines/windowdoor.ogg' + if(9) + //To make it more realistic, I added two gunshots (enough to kill) + src << 'sound/weapons/Gunshot.ogg' + spawn(rand(10,30)) + src << 'sound/weapons/Gunshot.ogg' + if(10) src << 'sound/weapons/smash.ogg' + if(11) + //Same as above, but with tasers. + src << 'sound/weapons/Taser.ogg' + spawn(rand(10,30)) + src << 'sound/weapons/Taser.ogg' + //Rare audio + if(12) + //These sounds are (mostly) taken from Hidden: Source + var/list/creepyasssounds = list('sound/effects/ghost.ogg', 'sound/effects/ghost2.ogg', 'sound/effects/Heart Beat.ogg', 'sound/effects/screech.ogg',\ + 'sound/hallucinations/behind_you1.ogg', 'sound/hallucinations/behind_you2.ogg', 'sound/hallucinations/far_noise.ogg', 'sound/hallucinations/growl1.ogg', 'sound/hallucinations/growl2.ogg',\ + 'sound/hallucinations/growl3.ogg', 'sound/hallucinations/im_here1.ogg', 'sound/hallucinations/im_here2.ogg', 'sound/hallucinations/i_see_you1.ogg', 'sound/hallucinations/i_see_you2.ogg',\ + 'sound/hallucinations/look_up1.ogg', 'sound/hallucinations/look_up2.ogg', 'sound/hallucinations/over_here1.ogg', 'sound/hallucinations/over_here2.ogg', 'sound/hallucinations/over_here3.ogg',\ + 'sound/hallucinations/turn_around1.ogg', 'sound/hallucinations/turn_around2.ogg', 'sound/hallucinations/veryfar_noise.ogg', 'sound/hallucinations/wail.ogg') + src << pick(creepyasssounds) + if(13) + src << "You feel a tiny prick!" + if(14) + src << "

    Priority Announcement

    " + src << "

    The Emergency Shuttle has docked with the station. You have 3 minutes to board the Emergency Shuttle.

    " + src << sound('sound/AI/shuttledock.ogg') + if(15) + src << 'sound/items/Welder.ogg' + if(16) + src << 'sound/items/Screwdriver.ogg' + if(17) + src << 'sound/weapons/saberon.ogg' + if(18) + src << 'sound/weapons/saberoff.ogg' + if("hudscrew") + //Screwy HUD + //src << "Screwy HUD" + hal_screwyhud = pick(1,2,3,3,4,4) + spawn(rand(100,250)) + hal_screwyhud = 0 + if("items") + //Strange items + //src << "Traitor Items" + if(!halitem) + halitem = new + var/obj/item/l_hand = get_item_for_held_index(1) + var/obj/item/r_hand = get_item_for_held_index(2) + var/l = ui_hand_position(get_held_index_of_item(l_hand)) + var/r = ui_hand_position(get_held_index_of_item(r_hand)) + var/list/slots_free = list(l,r) + if(l_hand) slots_free -= l + if(r_hand) slots_free -= r + if(ishuman(src)) + var/mob/living/carbon/human/H = src + if(!H.belt) slots_free += ui_belt + if(!H.l_store) slots_free += ui_storage1 + if(!H.r_store) slots_free += ui_storage2 + if(slots_free.len) + halitem.screen_loc = pick(slots_free) + halitem.layer = ABOVE_HUD_LAYER + halitem.plane = ABOVE_HUD_PLANE + switch(rand(1,6)) + if(1) //revolver + halitem.icon = 'icons/obj/guns/projectile.dmi' + halitem.icon_state = "revolver" + halitem.name = "Revolver" + if(2) //c4 + halitem.icon = 'icons/obj/grenade.dmi' + halitem.icon_state = "plastic-explosive0" + halitem.name = "Mysterious Package" + if(prob(25)) + halitem.icon_state = "c4small_1" + if(3) //sword + halitem.icon = 'icons/obj/weapons.dmi' + halitem.icon_state = "sword1" + halitem.name = "Sword" + if(4) //stun baton + halitem.icon = 'icons/obj/weapons.dmi' + halitem.icon_state = "stunbaton" + halitem.name = "Stun Baton" + if(5) //emag + halitem.icon = 'icons/obj/card.dmi' + halitem.icon_state = "emag" + halitem.name = "Cryptographic Sequencer" + if(6) //flashbang + halitem.icon = 'icons/obj/grenade.dmi' + halitem.icon_state = "flashbang1" + halitem.name = "Flashbang" + if(client) client.screen += halitem + QDEL_IN(halitem, rand(100, 250)) + if("dangerflash") + //Flashes of danger + //src << "Danger Flash" + if(!halimage) + var/list/possible_points = list() + for(var/turf/open/floor/F in view(src,world.view)) + possible_points += F + if(possible_points.len) + var/turf/open/floor/target = pick(possible_points) + + switch(rand(1,3)) + if(1) + //src << "Space" + halimage = image('icons/turf/space.dmi',target,"[rand(1,25)]",TURF_LAYER) + if(2) + //src << "Fire" + halimage = image('icons/effects/fire.dmi',target,"1",TURF_LAYER) + if(3) + //src << "C4" + halimage = image('icons/obj/grenade.dmi',target,"plastic-explosive2",OBJ_LAYER+0.01) + + + if(client) client.images += halimage + spawn(rand(10,50)) //Only seen for a brief moment. + if(client) client.images -= halimage + halimage = null + if("death") + //Fake death + hal_screwyhud = 1 + SetSleeping(20) + spawn(rand(50,100)) + hal_screwyhud = 0 + SetSleeping(0) + if("husks") + if(!halbody) + var/list/possible_points = list() + for(var/turf/open/floor/F in view(src,world.view)) + possible_points += F + if(possible_points.len) + var/turf/open/floor/target = pick(possible_points) + switch(rand(1,4)) + if(1) + var/image/body = image('icons/mob/human.dmi',target,"husk_s",TURF_LAYER) + var/matrix/M = matrix() + M.Turn(90) + body.transform = M + halbody = body + if(2,3) + halbody = image('icons/mob/human.dmi',target,"husk_s",TURF_LAYER) + if(4) + halbody = image('icons/mob/alien.dmi',target,"alienother",TURF_LAYER) + + if(client) client.images += halbody + spawn(rand(50,80)) //Only seen for a brief moment. + if(client) client.images -= halbody + halbody = null diff --git a/code/modules/flufftext/TextFilters.dm b/code/modules/flufftext/TextFilters.dm new file mode 100644 index 0000000..ead3f0b --- /dev/null +++ b/code/modules/flufftext/TextFilters.dm @@ -0,0 +1,62 @@ +//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32 + +//is this shit even used at all +/proc/NewStutter(phrase,stunned) + phrase = html_decode(phrase) + + var/list/split_phrase = splittext(phrase," ") //Split it up into words. + + var/list/unstuttered_words = split_phrase.Copy() + var/i = rand(1,3) + if(stunned) i = split_phrase.len + for(,i > 0,i--) //Pick a few words to stutter on. + + if (!unstuttered_words.len) + break + var/word = pick(unstuttered_words) + unstuttered_words -= word //Remove from unstuttered words so we don't stutter it again. + var/index = split_phrase.Find(word) //Find the word in the split phrase so we can replace it. + + //Search for dipthongs (two letters that make one sound.) + var/first_sound = copytext(word,1,3) + var/first_letter = copytext(word,1,2) + if(lowertext(first_sound) in list("ch","th","sh")) + first_letter = first_sound + + //Repeat the first letter to create a stutter. + var/rnum = rand(1,3) + switch(rnum) + if(1) + word = "[first_letter]-[word]" + if(2) + word = "[first_letter]-[first_letter]-[word]" + if(3) + word = "[first_letter]-[word]" + + split_phrase[index] = word + + return sanitize(jointext(split_phrase," ")) + +/proc/Stagger(mob/M,d) //Technically not a filter, but it relates to drunkenness. + step(M, pick(d,turn(d,90),turn(d,-90))) + +/proc/Ellipsis(original_msg, chance = 50, keep_words) + if(chance <= 0) return "..." + if(chance >= 100) return original_msg + + var/list + words = splittext(original_msg," ") + new_words = list() + + var/new_msg = "" + + for(var/w in words) + if(prob(chance)) + new_words += "..." + if(!keep_words) + continue + new_words += w + + new_msg = jointext(new_words," ") + + return new_msg diff --git a/code/modules/food_and_drinks/drinks/drinks.dm b/code/modules/food_and_drinks/drinks/drinks.dm new file mode 100644 index 0000000..822e9ca --- /dev/null +++ b/code/modules/food_and_drinks/drinks/drinks.dm @@ -0,0 +1,389 @@ +//////////////////////////////////////////////////////////////////////////////// +/// Drinks. +//////////////////////////////////////////////////////////////////////////////// +/obj/item/weapon/reagent_containers/food/drinks + name = "drink" + desc = "yummy" + icon = 'icons/obj/drinks.dmi' + icon_state = null + flags = OPENCONTAINER + var/gulp_size = 5 //This is now officially broken ... need to think of a nice way to fix it. + possible_transfer_amounts = list(5,10,15,20,25,30,50) + volume = 50 + resistance_flags = 0 + +/obj/item/weapon/reagent_containers/food/drinks/New() + ..() + pixel_x = rand(-5, 5) + pixel_y = rand(-5, 5) + +/obj/item/weapon/reagent_containers/food/drinks/on_reagent_change() + if (gulp_size < 5) gulp_size = 5 + else gulp_size = max(round(reagents.total_volume / 5), 5) + +/obj/item/weapon/reagent_containers/food/drinks/attack(mob/M, mob/user, def_zone) + + if(!reagents || !reagents.total_volume) + user << "[src] is empty!" + return 0 + + if(!canconsume(M, user)) + return 0 + + if(M == user) + M << "You swallow a gulp of [src]." + + else + M.visible_message("[user] attempts to feed the contents of [src] to [M].", "[user] attempts to feed the contents of [src] to [M].") + if(!do_mob(user, M)) + return + if(!reagents || !reagents.total_volume) + return // The drink might be empty after the delay, such as by spam-feeding + M.visible_message("[user] feeds the contents of [src] to [M].", "[user] feeds the contents of [src] to [M].") + add_logs(user, M, "fed", reagentlist(src)) + var/fraction = min(gulp_size/reagents.total_volume, 1) + reagents.reaction(M, INGEST, fraction) + reagents.trans_to(M, gulp_size) + playsound(M.loc,'sound/items/drink.ogg', rand(10,50), 1) + return 1 + +/obj/item/weapon/reagent_containers/food/drinks/afterattack(obj/target, mob/user , proximity) + if(!proximity) return + if(istype(target, /obj/structure/reagent_dispensers)) //A dispenser. Transfer FROM it TO us. + + if(!target.reagents.total_volume) + user << "[target] is empty." + return + + if(reagents.total_volume >= reagents.maximum_volume) + user << "[src] is full." + return + + var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this) + user << "You fill [src] with [trans] units of the contents of [target]." + + else if(target.is_open_container()) //Something like a glass. Player probably wants to transfer TO it. + if(!reagents.total_volume) + user << "[src] is empty." + return + + if(target.reagents.total_volume >= target.reagents.maximum_volume) + user << "[target] is full." + return + var/refill = reagents.get_master_reagent_id() + var/trans = src.reagents.trans_to(target, amount_per_transfer_from_this) + user << "You transfer [trans] units of the solution to [target]." + + if(iscyborg(user)) //Cyborg modules that include drinks automatically refill themselves, but drain the borg's cell + var/mob/living/silicon/robot/bro = user + bro.cell.use(30) + addtimer(reagents, "add_reagent", 600, FALSE, refill, trans) + +/obj/item/weapon/reagent_containers/food/drinks/attackby(obj/item/I, mob/user, params) + if(I.is_hot()) + var/added_heat = (I.is_hot() / 100) //ishot returns a temperature + if(reagents) + reagents.chem_temp += added_heat + user << "You heat [src] with [I]." + reagents.handle_reactions() + ..() + +//////////////////////////////////////////////////////////////////////////////// +/// Drinks. END +//////////////////////////////////////////////////////////////////////////////// + +/obj/item/weapon/reagent_containers/food/drinks/trophy + name = "pewter cup" + desc = "Everyone gets a trophy." + icon_state = "pewter_cup" + w_class = 1 + force = 1 + throwforce = 1 + amount_per_transfer_from_this = 5 + materials = list(MAT_METAL=100) + possible_transfer_amounts = list() + volume = 5 + flags = CONDUCT | OPENCONTAINER + spillable = 1 + resistance_flags = FIRE_PROOF + +/obj/item/weapon/reagent_containers/food/drinks/trophy/gold_cup + name = "gold cup" + desc = "You're winner!" + icon_state = "golden_cup" + w_class = 4 + force = 14 + throwforce = 10 + amount_per_transfer_from_this = 20 + materials = list(MAT_GOLD=1000) + volume = 150 + +/obj/item/weapon/reagent_containers/food/drinks/trophy/silver_cup + name = "silver cup" + desc = "Best loser!" + icon_state = "silver_cup" + w_class = 3 + force = 10 + throwforce = 8 + amount_per_transfer_from_this = 15 + materials = list(MAT_SILVER=800) + volume = 100 + + +/obj/item/weapon/reagent_containers/food/drinks/trophy/bronze_cup + name = "bronze cup" + desc = "At least you ranked!" + icon_state = "bronze_cup" + w_class = 2 + force = 5 + throwforce = 4 + amount_per_transfer_from_this = 10 + materials = list(MAT_METAL=400) + volume = 25 + +///////////////////////////////////////////////Drinks +//Notes by Darem: Drinks are simply containers that start preloaded. Unlike condiments, the contents can be ingested directly +// rather then having to add it to something else first. They should only contain liquids. They have a default container size of 50. +// Formatting is the same as food. + +/obj/item/weapon/reagent_containers/food/drinks/coffee + name = "Robust Coffee" + desc = "Careful, the beverage you're about to enjoy is extremely hot." + icon_state = "coffee" + list_reagents = list("coffee" = 30) + spillable = 1 + +/obj/item/weapon/reagent_containers/food/drinks/ice + name = "Ice Cup" + desc = "Careful, cold ice, do not chew." + icon_state = "coffee" + list_reagents = list("ice" = 30) + spillable = 1 + +/obj/item/weapon/reagent_containers/food/drinks/mug/ // parent type is literally just so empty mug sprites are a thing + name = "mug" + desc = "A drink served in a classy mug." + icon_state = "tea" + item_state = "coffee" + spillable = 1 + +/obj/item/weapon/reagent_containers/food/drinks/mug/on_reagent_change() + if(reagents.total_volume) + icon_state = "tea" + else + icon_state = "tea_empty" + +/obj/item/weapon/reagent_containers/food/drinks/mug/tea + name = "Duke Purple Tea" + desc = "An insult to Duke Purple is an insult to the Space Queen! Any proper gentleman will fight you, if you sully this tea." + list_reagents = list("tea" = 30) + +/obj/item/weapon/reagent_containers/food/drinks/mug/coco + name = "Dutch Hot Coco" + desc = "Made in Space South America." + list_reagents = list("hot_coco" = 30, "sugar" = 5) + +/obj/item/weapon/reagent_containers/food/drinks/dry_ramen + name = "Cup Ramen" + desc = "Just add 10ml of water, self heats! A taste that reminds you of your school years." + icon_state = "ramen" + list_reagents = list("dry_ramen" = 30) + +/obj/item/weapon/reagent_containers/food/drinks/beer + name = "Space Beer" + desc = "Beer. In space." + icon_state = "beer" + list_reagents = list("beer" = 30) + +/obj/item/weapon/reagent_containers/food/drinks/ale + name = "Magm-Ale" + desc = "A true dorf's drink of choice." + icon_state = "alebottle" + item_state = "beer" + list_reagents = list("ale" = 30) + +/obj/item/weapon/reagent_containers/food/drinks/sillycup + name = "paper cup" + desc = "A paper water cup." + icon_state = "water_cup_e" + possible_transfer_amounts = list() + volume = 10 + spillable = 1 + +/obj/item/weapon/reagent_containers/food/drinks/sillycup/on_reagent_change() + if(reagents.total_volume) + icon_state = "water_cup" + else + icon_state = "water_cup_e" + +/obj/item/weapon/reagent_containers/food/drinks/sillycup/smallcarton + name = "small carton" + desc = "A small carton, intended for holding drinks." + icon_state = "juicebox" + volume = 15 //I figure if you have to craft these it should at least be slightly better than something you can get for free from a watercooler + +/obj/item/weapon/reagent_containers/food/drinks/sillycup/smallcarton/on_reagent_change() + if (reagents.reagent_list.len) + switch(reagents.get_master_reagent_id()) + if("orangejuice") + icon_state = "orangebox" + name = "orange juice box" + desc = "A great source of vitamins. Stay healthy!" + if("milk") + icon_state = "milkbox" + name = "carton of milk" + desc = "An excellent source of calcium for growing space explorers." + if("applejuice") + icon_state = "juicebox" + name = "apple juice box" + desc = "Sweet apple juice. Don't be late for school!" + if("grapejuice") + icon_state = "grapebox" + name = "grape juice box" + desc = "Tastey grape juice in a fun little container. Non-alcoholic!" + if("chocolate_milk") + icon_state = "chocolatebox" + name = "carton of chocolate milk" + desc = "Milk for cool kids!" + else + icon_state = "juicebox" + name = "small carton" + desc = "A small carton, intended for holding drinks." + + + +//////////////////////////drinkingglass and shaker// +//Note by Darem: This code handles the mixing of drinks. New drinks go in three places: In Chemistry-Reagents.dm (for the drink +// itself), in Chemistry-Recipes.dm (for the reaction that changes the components into the drink), and here (for the drinking glass +// icon states. + +/obj/item/weapon/reagent_containers/food/drinks/shaker + name = "shaker" + desc = "A metal shaker to mix drinks in." + icon_state = "shaker" + materials = list(MAT_METAL=1500) + amount_per_transfer_from_this = 10 + volume = 100 + +/obj/item/weapon/reagent_containers/food/drinks/flask + name = "flask" + desc = "Every good spaceman knows it's a good idea to bring along a couple of pints of whiskey wherever they go." + icon_state = "flask" + materials = list(MAT_METAL=250) + volume = 60 + +/obj/item/weapon/reagent_containers/food/drinks/flask/gold + name = "captain's flask" + desc = "A gold flask belonging to the captain." + icon_state = "flask_gold" + materials = list(MAT_GOLD=500) + +/obj/item/weapon/reagent_containers/food/drinks/flask/det + name = "detective's flask" + desc = "The detective's only true friend." + icon_state = "detflask" + list_reagents = list("whiskey" = 30) + +/obj/item/weapon/reagent_containers/food/drinks/britcup + name = "cup" + desc = "A cup with the british flag emblazoned on it." + icon_state = "britcup" + volume = 30 + spillable = 1 + +///Lavaland bowls and bottles/// + +/obj/item/weapon/reagent_containers/food/drinks/mushroom_bowl + name = "mushroom bowl" + desc = "A bowl made out of mushrooms. Not food, though it might have contained some at some point." + icon = 'icons/obj/lavaland/ash_flora.dmi' + icon_state = "mushroom_bowl" + w_class = 2 + resistance_flags = 0 + + +//////////////////////////soda_cans// +//These are in their own group to be used as IED's in /obj/item/weapon/grenade/ghettobomb.dm + +/obj/item/weapon/reagent_containers/food/drinks/soda_cans + name = "soda can" + var/canopened = 0 + +/obj/item/weapon/reagent_containers/food/drinks/soda_cans/attack_self(mob/user) + if(!canopened) + playsound(src.loc,'sound/effects/canopen.ogg', rand(10,50), 1) + user << "You open the drink with an audible pop!" + canopened = 1 + +/obj/item/weapon/reagent_containers/food/drinks/soda_cans/attack(mob/M, mob/user) + if(!canopened) + user << "You need to open the drink!" + return + + if(M == user && !src.reagents.total_volume && user.a_intent == "harm" && user.zone_selected == "head") + user.visible_message("[user] crushes the can of [src] on \his forehead!", "You crush the can of [src] on your forehead.") + playsound(user.loc,'sound/weapons/pierce.ogg', rand(10,50), 1) + var/obj/item/trash/can/crushed_can = new /obj/item/trash/can(user.loc) + crushed_can.icon_state = icon_state + qdel(src) + ..() + +/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola + name = "Space Cola" + desc = "Cola. in space." + icon_state = "cola" + list_reagents = list("cola" = 30) + +/obj/item/weapon/reagent_containers/food/drinks/soda_cans/tonic + name = "T-Borg's Tonic Water" + desc = "Quinine tastes funny, but at least it'll keep that Space Malaria away." + icon_state = "tonic" + list_reagents = list("tonic" = 50) + +/obj/item/weapon/reagent_containers/food/drinks/soda_cans/sodawater + name = "Soda Water" + desc = "A can of soda water. Why not make a scotch and soda?" + icon_state = "sodawater" + list_reagents = list("sodawater" = 50) + +/obj/item/weapon/reagent_containers/food/drinks/soda_cans/lemon_lime + name = "Orange Soda" + desc = "You wanted ORANGE. It gave you Lemon Lime." + icon_state = "lemon-lime" + list_reagents = list("lemon_lime" = 30) + +/obj/item/weapon/reagent_containers/food/drinks/soda_cans/lemon_lime/New() + ..() + name = "Lemon-Lime Soda" + +/obj/item/weapon/reagent_containers/food/drinks/soda_cans/space_up + name = "Space-Up" + desc = "Tastes like a hull breach in your mouth." + icon_state = "space-up" + list_reagents = list("space_up" = 30) + +/obj/item/weapon/reagent_containers/food/drinks/soda_cans/starkist + name = "Star-kist" + desc = "The taste of a star in liquid form. And, a bit of tuna...?" + icon_state = "starkist" + list_reagents = list("cola" = 15, "orangejuice" = 15) + +/obj/item/weapon/reagent_containers/food/drinks/soda_cans/space_mountain_wind + name = "Space Mountain Wind" + desc = "Blows right through you like a space wind." + icon_state = "space_mountain_wind" + list_reagents = list("spacemountainwind" = 30) + +/obj/item/weapon/reagent_containers/food/drinks/soda_cans/thirteenloko + name = "Thirteen Loko" + desc = "The CMO has advised crew members that consumption of Thirteen Loko may result in seizures, blindness, drunkeness, or even death. Please Drink Responsibly." + icon_state = "thirteen_loko" + list_reagents = list("thirteenloko" = 30) + +/obj/item/weapon/reagent_containers/food/drinks/soda_cans/dr_gibb + name = "Dr. Gibb" + desc = "A delicious mixture of 42 different flavors." + icon_state = "dr_gibb" + list_reagents = list("dr_gibb" = 30) + + diff --git a/code/modules/food_and_drinks/drinks/drinks/bottle.dm b/code/modules/food_and_drinks/drinks/drinks/bottle.dm new file mode 100644 index 0000000..afdc5aa --- /dev/null +++ b/code/modules/food_and_drinks/drinks/drinks/bottle.dm @@ -0,0 +1,407 @@ + + +///////////////////////////////////////////////Alchohol bottles! -Agouri ////////////////////////// +//Functionally identical to regular drinks. The only difference is that the default bottle size is 100. - Darem +//Bottles now weaken and break when smashed on people's heads. - Giacom + +/obj/item/weapon/reagent_containers/food/drinks/bottle + amount_per_transfer_from_this = 10 + volume = 100 + throwforce = 15 + item_state = "broken_beer" //Generic held-item sprite until unique ones are made. + var/const/duration = 13 //Directly relates to the 'weaken' duration. Lowered by armor (i.e. helmets) + var/isGlass = 1 //Whether the 'bottle' is made of glass or not so that milk cartons dont shatter when someone gets hit by it + +/obj/item/weapon/reagent_containers/food/drinks/bottle/throw_impact(atom/target,mob/thrower) + ..(target,thrower) + SplashReagents(target) + smash(target,thrower,1) + return + +/obj/item/weapon/reagent_containers/food/drinks/bottle/proc/smash(mob/living/target, mob/living/user, ranged = 0) + + //Creates a shattering noise and replaces the bottle with a broken_bottle + var/new_location = get_turf(loc) + var/obj/item/weapon/broken_bottle/B = new /obj/item/weapon/broken_bottle(new_location) + if(ranged) + B.loc = new_location + else + user.drop_item() + user.put_in_active_hand(B) + B.icon_state = src.icon_state + + var/icon/I = new('icons/obj/drinks.dmi', src.icon_state) + I.Blend(B.broken_outline, ICON_OVERLAY, rand(5), 1) + I.SwapColor(rgb(255, 0, 220, 255), rgb(0, 0, 0, 0)) + B.icon = I + + if(isGlass) + if(prob(33)) + new/obj/item/weapon/shard(new_location) + playsound(src, "shatter", 70, 1) + else + B.name = "broken carton" + B.force = 0 + B.throwforce = 0 + B.desc = "A carton with the bottom half burst open. Might give you a papercut." + src.transfer_fingerprints_to(B) + + qdel(src) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/attack(mob/living/target, mob/living/user) + + if(!target) + return + + if(user.a_intent != "harm" || !isGlass) + return ..() + + + force = 15 //Smashing bottles over someoen's head hurts. + + var/obj/item/bodypart/affecting = user.zone_selected //Find what the player is aiming at + + var/armor_block = 0 //Get the target's armor values for normal attack damage. + var/armor_duration = 0 //The more force the bottle has, the longer the duration. + + //Calculating duration and calculating damage. + if(ishuman(target)) + + var/mob/living/carbon/human/H = target + var/headarmor = 0 // Target's head armor + armor_block = H.run_armor_check(affecting, "melee","","",armour_penetration) // For normal attack damage + + //If they have a hat/helmet and the user is targeting their head. + if(istype(H.head, /obj/item/clothing/head) && affecting == "head") + + // If their head has an armor value, assign headarmor to it, else give it 0. + if(H.head.armor["melee"]) + headarmor = H.head.armor["melee"] + else + headarmor = 0 + else + headarmor = 0 + + //Calculate the weakening duration for the target. + armor_duration = (duration - headarmor) + force + + else + //Only humans can have armor, right? + armor_block = target.run_armor_check(affecting, "melee") + if(affecting == "head") + armor_duration = duration + force + armor_duration /= 10 + + //Apply the damage! + armor_block = min(90,armor_block) + target.apply_damage(force, BRUTE, affecting, armor_block) + + // You are going to knock someone out for longer if they are not wearing a helmet. + var/head_attack_message = "" + if(affecting == "head" && istype(target, /mob/living/carbon/)) + head_attack_message = " on the head" + //Weaken the target for the duration that we calculated and divide it by 5. + if(armor_duration) + target.apply_effect(min(armor_duration, 10) , WEAKEN) // Never weaken more than a flash! + + //Display an attack message. + if(target != user) + target.visible_message("[user] has hit [target][head_attack_message] with a bottle of [src.name]!", \ + "[user] has hit [target][head_attack_message] with a bottle of [src.name]!") + else + user.visible_message("[target] hits [target.p_them()]self with a bottle of [src.name][head_attack_message]!", \ + "[target] hits [target.p_them()]self with a bottle of [src.name][head_attack_message]!") + + //Attack logs + add_logs(user, target, "attacked", src) + + //The reagents in the bottle splash all over the target, thanks for the idea Nodrak + SplashReagents(target) + + //Finally, smash the bottle. This kills (del) the bottle. + src.smash(target, user) + + return + +/obj/item/weapon/reagent_containers/food/drinks/bottle/proc/SplashReagents(var/mob/M) + if(src.reagents.total_volume) + M.visible_message("The contents of [src] splashes all over [M]!") + reagents.reaction(M, TOUCH) + reagents.clear_reagents() + return + +//Keeping this here for now, I'll ask if I should keep it here. +/obj/item/weapon/broken_bottle + name = "Broken Bottle" + desc = "A bottle with a sharp broken bottom." + icon = 'icons/obj/drinks.dmi' + icon_state = "broken_bottle" + force = 9 + throwforce = 5 + throw_speed = 3 + throw_range = 5 + w_class = 1 + item_state = "beer" + hitsound = 'sound/weapons/bladeslice.ogg' + attack_verb = list("stabbed", "slashed", "attacked") + var/icon/broken_outline = icon('icons/obj/drinks.dmi', "broken") + sharpness = IS_SHARP + +/obj/item/weapon/reagent_containers/food/drinks/bottle/gin + name = "Griffeater Gin" + desc = "A bottle of high quality gin, produced in the New London Space Station." + icon_state = "ginbottle" + list_reagents = list("gin" = 100) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey + name = "Uncle Git's Special Reserve" + desc = "A premium single-malt whiskey, gently matured inside the tunnels of a nuclear shelter. TUNNEL WHISKEY RULES." + icon_state = "whiskeybottle" + list_reagents = list("whiskey" = 100) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka + name = "Tunguska Triple Distilled" + desc = "Aah, vodka. Prime choice of drink AND fuel by Russians worldwide." + icon_state = "vodkabottle" + list_reagents = list("vodka" = 100) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka/badminka + name = "Badminka Vodka" + desc = "The label's written in Cyrillic. All you can make out is the name and a word that looks vaguely like 'Vodka'." + icon_state = "badminka" + list_reagents = list("vodka" = 100) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/tequila + name = "Caccavo Guaranteed Quality Tequila" + desc = "Made from premium petroleum distillates, pure thalidomide and other fine quality ingredients!" + icon_state = "tequilabottle" + list_reagents = list("tequila" = 100) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/bottleofnothing + name = "Bottle of Nothing" + desc = "A bottle filled with nothing." + icon_state = "bottleofnothing" + list_reagents = list("nothing" = 100) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/patron + name = "Wrapp Artiste Patron" + desc = "Silver laced tequila, served in space night clubs across the galaxy." + icon_state = "patronbottle" + list_reagents = list("patron" = 100) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/rum + name = "Captain Pete's Cuban Spiced Rum" + desc = "This isn't just rum, oh no. It's practically GRIFF in a bottle." + icon_state = "rumbottle" + list_reagents = list("rum" = 100) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/holywater + name = "Flask of Holy Water" + desc = "A flask of the chaplain's holy water." + icon_state = "holyflask" + list_reagents = list("holywater" = 100) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/holywater/hell + desc = "A flask of holy water...it's been sitting in the Necropolis a while though." + list_reagents = list("hell_water" = 100) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/vermouth + name = "Goldeneye Vermouth" + desc = "Sweet, sweet dryness~" + icon_state = "vermouthbottle" + list_reagents = list("vermouth" = 100) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/kahlua + name = "Robert Robust's Coffee Liqueur" + desc = "A widely known, Mexican coffee-flavoured liqueur. In production since 1936, HONK." + icon_state = "kahluabottle" + list_reagents = list("kahlua" = 100) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/goldschlager + name = "College Girl Goldschlager" + desc = "Because they are the only ones who will drink 100 proof cinnamon schnapps." + icon_state = "goldschlagerbottle" + list_reagents = list("goldschlager" = 100) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/cognac + name = "Chateau De Baton Premium Cognac" + desc = "A sweet and strongly alchoholic drink, made after numerous distillations and years of maturing. You might as well not scream 'SHITCURITY' this time." + icon_state = "cognacbottle" + list_reagents = list("cognac" = 100) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/wine + name = "Doublebeard Bearded Special Wine" + desc = "A faint aura of unease and asspainery surrounds the bottle." + icon_state = "winebottle" + list_reagents = list("wine" = 100) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/absinthe + name = "Extra-Strong Absinthe" + desc = "An strong alcoholic drink brewed and distributed by" + icon_state = "absinthebottle" + list_reagents = list("absinthe" = 100) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/absinthe/New() + ..() + redact() + +/obj/item/weapon/reagent_containers/food/drinks/bottle/absinthe/proc/redact() + // There was a large fight in the coderbus about a player reference + // in absinthe. Ergo, this is why the name generation is now so + // complicated. Judge us kindly. + var/shortname = pickweight( + list("T&T" = 1, "A&A" = 1, "Generic" = 1)) + var/fullname + switch(shortname) + if("T&T") + fullname = "Teal and Tealer" + if("A&A") + fullname = "Ash and Asher" + if("Generic") + fullname = "Nanotrasen Cheap Imitations" + var/removals = list("\[REDACTED\]", "\[EXPLETIVE DELETED\]", + "\[EXPUNGED\]", "\[INFORMATION ABOVE YOUR SECURITY CLEARANCE\]", + "\[MOVE ALONG CITIZEN\]", "\[NOTHING TO SEE HERE\]") + var/chance = 50 + + if(prob(chance)) + shortname = pick_n_take(removals) + + var/list/final_fullname = list() + for(var/word in splittext(fullname, " ")) + if(prob(chance)) + word = pick_n_take(removals) + final_fullname += word + + fullname = jointext(final_fullname, " ") + + // Actually finally setting the new name and desc + name = "[shortname] [name]" + desc = "[desc] [fullname] Inc." + + +/obj/item/weapon/reagent_containers/food/drinks/bottle/absinthe/premium + name = "Gwyn's Premium Absinthe" + desc = "A potent alcoholic beverage, almost makes you forget the ash in your lungs." + icon_state = "absinthepremium" + +/obj/item/weapon/reagent_containers/food/drinks/bottle/absinthe/premium/redact() + return + +/obj/item/weapon/reagent_containers/food/drinks/bottle/lizardwine + name = "Bottle of lizard wine" + desc = "An alcoholic beverage from Space China, made by infusing lizard tails in ethanol. Inexplicably popular among command staff." + icon_state = "lizardwine" + list_reagents = list("lizardwine" = 100) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/hcider + name = "Jian Hard Cider" + desc = "Apple juice for adults." + icon_state = "hcider" + volume = 50 + list_reagents = list("hcider" = 50) + +//////////////////////////JUICES AND STUFF /////////////////////// + +/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice + name = "Orange Juice" + desc = "Full of vitamins and deliciousness!" + icon_state = "orangejuice" + item_state = "carton" + isGlass = 0 + list_reagents = list("orangejuice" = 100) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/cream + name = "Milk Cream" + desc = "It's cream. Made from milk. What else did you think you'd find in there?" + icon_state = "cream" + item_state = "carton" + isGlass = 0 + list_reagents = list("cream" = 100) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/tomatojuice + name = "Tomato Juice" + desc = "Well, at least it LOOKS like tomato juice. You can't tell with all that redness." + icon_state = "tomatojuice" + item_state = "carton" + isGlass = 0 + list_reagents = list("tomatojuice" = 100) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/limejuice + name = "Lime Juice" + desc = "Sweet-sour goodness." + icon_state = "limejuice" + item_state = "carton" + isGlass = 0 + list_reagents = list("limejuice" = 100) + + +////////////////////////// MOLOTOV /////////////////////// +/obj/item/weapon/reagent_containers/food/drinks/bottle/molotov + name = "molotov cocktail" + desc = "A throwing weapon used to ignite things, typically filled with an accelerant. Recommended highly by rioters and revolutionaries. Light and toss." + icon_state = "vodkabottle" + list_reagents = list() + var/list/accelerants = list( /datum/reagent/consumable/ethanol,/datum/reagent/fuel,/datum/reagent/clf3,/datum/reagent/phlogiston, + /datum/reagent/napalm,/datum/reagent/hellwater,/datum/reagent/toxin/plasma,/datum/reagent/toxin/spore_burning) + var/active = 0 + +/obj/item/weapon/reagent_containers/food/drinks/bottle/molotov/CheckParts(list/parts_list) + ..() + var/obj/item/weapon/reagent_containers/food/drinks/bottle/B = locate() in contents + if(B) + icon_state = B.icon_state + B.reagents.copy_to(src,100) + if(!B.isGlass) + desc += " You're not sure if making this out of a carton was the brightest idea." + isGlass = 0 + return + +/obj/item/weapon/reagent_containers/food/drinks/bottle/molotov/throw_impact(atom/target,mob/thrower) + var/firestarter = 0 + for(var/datum/reagent/R in reagents.reagent_list) + for(var/A in accelerants) + if(istype(R,A)) + firestarter = 1 + break + SplashReagents(target) + if(firestarter && active) + target.fire_act() + new /obj/effect/hotspot(get_turf(target)) + ..() + +/obj/item/weapon/reagent_containers/food/drinks/bottle/molotov/attackby(obj/item/I, mob/user, params) + if(I.is_hot() && !active) + active = 1 + var/turf/bombturf = get_turf(src) + var/area/bombarea = get_area(bombturf) + var/message = "[ADMIN_LOOKUP(user)] has primed a [name] for detonation at [ADMIN_COORDJMP(bombturf)]." + bombers += message + message_admins(message) + log_game("[key_name(user)] has primed a [name] for detonation at [bombarea] [COORD(bombturf)].") + + user << "You light [src] on fire." + add_overlay(fire_overlay) + if(!isGlass) + spawn(50) + if(active) + var/counter + var/target = src.loc + for(counter = 0, counter<2, counter++) + if(istype(target, /obj/item/weapon/storage)) + var/obj/item/weapon/storage/S = target + target = S.loc + if(istype(target, /atom)) + var/atom/A = target + SplashReagents(A) + A.fire_act() + qdel(src) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/molotov/attack_self(mob/user) + if(active) + if(!isGlass) + user << "The flame's spread too far on it!" + return + user << "You snuff out the flame on [src]." + overlays -= fire_overlay + active = 0 diff --git a/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm b/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm new file mode 100644 index 0000000..3bf9547 --- /dev/null +++ b/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm @@ -0,0 +1,677 @@ + + +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass + name = "drinking glass" + desc = "Your standard drinking glass." + icon_state = "glass_empty" + amount_per_transfer_from_this = 10 + volume = 50 + materials = list(MAT_GLASS=500) + obj_integrity = 20 + max_integrity = 20 + spillable = 1 + resistance_flags = ACID_PROOF + +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/on_reagent_change() + cut_overlays() + if (reagents.reagent_list.len > 0) + switch(reagents.get_master_reagent_id()) + if("beer") + icon_state = "beerglass" + name = "glass of beer" + desc = "A freezing pint of beer." + if("beer2") + icon_state = "beerglass" + name = "glass of beer" + desc = "A freezing pint of beer." + if("greenbeer") + icon_state = "greenbeerglass" + name = "glass of green beer" + desc = "A freezing pint of green beer. Festive." + if("ale") + icon_state = "aleglass" + name = "glass of ale" + desc = "A freezing pint of delicious Ale." + if("milk") + icon_state = "glass_white" + name = "glass of milk" + desc = "White and nutritious goodness!" + if("cream") + icon_state = "glass_white" + name = "glass of cream" + desc = "Ewwww..." + if("hot_coco") + icon_state = "chocolateglass" + name = "glass of chocolate" + desc = "Tasty." + if("lemonjuice") + icon_state = "lemonglass" + name = "glass of lemon juice" + desc = "Sour..." + if("holywater") + icon_state = "glass_clear" + name = "glass of Holy Water" + desc = "A glass of holy water." + if("potato") + icon_state = "glass_brown" + name = "glass of potato juice" + desc = "Bleh..." + if("watermelonjuice") + icon_state = "glass_red" + name = "glass of watermelon juice" + desc = "A glass of watermelon juice." + if("cola") + icon_state = "glass_brown" + name = "glass of space Cola" + desc = "A glass of refreshing Space Cola." + if("nuka_cola") + icon_state = "nuka_colaglass" + name = "Nuka Cola" + desc = "Don't cry, Don't raise your eye, It's only nuclear wasteland." + if("orangejuice") + icon_state = "glass_orange" + name = "glass of orange juice" + desc = "Vitamins! Yay!" + if("tomatojuice") + icon_state = "glass_red" + name = "glass of tomato juice" + desc = "Are you sure this is tomato juice?" + if("blood") + icon_state = "glass_red" + name = "glass of tomato juice" + desc = "Are you sure this is tomato juice?" + if("limejuice") + icon_state = "glass_green" + name = "glass of lime juice" + desc = "A glass of sweet-sour lime juice." + if("whiskey") + icon_state = "whiskeyglass" + name = "glass of whiskey" + desc = "The silky, smokey whiskey goodness inside the glass makes the drink look very classy." + if("gin") + icon_state = "ginvodkaglass" + name = "glass of gin" + desc = "A crystal clear glass of Griffeater gin." + if("vodka") + icon_state = "ginvodkaglass" + name = "glass of vodka" + desc = "The glass contain wodka. Xynta." + if("goldschlager") + icon_state = "goldschlagerglass" + name = "glass of Goldschlager" + desc = "100% proof that teen girls will drink anything with gold in it." + if("wine") + icon_state = "wineglass" + name = "glass of wine" + desc = "A very classy looking drink." + if("cognac") + icon_state = "cognacglass" + name = "glass of cognac" + desc = "Damn, you feel like some kind of French aristocrat just by holding this." + if ("kahlua") + icon_state = "kahluaglass" + name = "glass of RR Coffee Liquor" + desc = "DAMN, THIS THING LOOKS ROBUST!" + if("vermouth") + icon_state = "vermouthglass" + name = "glass of vermouth" + desc = "You wonder why you're even drinking this straight." + if("tequila") + icon_state = "tequilaglass" + name = "glass of tequila" + desc = "Now all that's missing is the weird colored shades!" + if("patron") + icon_state = "patronglass" + name = "glass of patron" + desc = "Drinking patron in the bar, with all the subpar ladies." + if("rum") + icon_state = "rumglass" + name = "glass of rum" + desc = "Now you want to Pray for a pirate suit, don't you?" + if("gintonic") + icon_state = "gintonicglass" + name = "Gin and Tonic" + desc = "A mild but still great cocktail. Drink up, like a true Englishman." + if("whiskeycola") + icon_state = "whiskeycolaglass" + name = "Whiskey Cola" + desc = "An innocent-looking mixture of cola and Whiskey. Delicious." + if("whiterussian") + icon_state = "whiterussianglass" + name = "White Russian" + desc = "A very nice looking drink. But that's just, like, your opinion, man." + if("screwdrivercocktail") + icon_state = "screwdriverglass" + name = "Screwdriver" + desc = "A simple, yet superb mixture of Vodka and orange juice. Just the thing for the tired engineer." + if("bloodymary") + icon_state = "bloodymaryglass" + name = "Bloody Mary" + desc = "Tomato juice, mixed with Vodka and a lil' bit of lime. Tastes like liquid murder." + if("martini") + icon_state = "martiniglass" + name = "Classic Martini" + desc = "Damn, the bartender even stirred it, not shook it." + if("vodkamartini") + icon_state = "martiniglass" + name = "Vodka martini" + desc ="A bastardisation of the classic martini. Still great." + if("gargleblaster") + icon_state = "gargleblasterglass" + name = "Pan-Galactic Gargle Blaster" + desc = "Like having your brain smashed out by a slice of lemon wrapped around a large gold brick." + if("bravebull") + icon_state = "bravebullglass" + name = "Brave Bull" + desc = "Tequila and Coffee liqueur, brought together in a mouthwatering mixture. Drink up." + if("tequilasunrise") + icon_state = "tequilasunriseglass" + name = "tequila Sunrise" + desc = "Oh great, now you feel nostalgic about sunrises back on Terra..." + if("beepskysmash") + icon_state = "beepskysmashglass" + name = "Beepsky Smash" + desc = "Heavy, hot and strong. Just like the Iron fist of the LAW." + if("doctorsdelight") + icon_state = "doctorsdelightglass" + name = "Doctor's Delight" + desc = "The space doctor's favorite. Guaranteed to restore bodily injury; side effects include cravings and hunger." + if("manlydorf") + icon_state = "manlydorfglass" + name = "The Manly Dorf" + desc = "A manly concoction made from Ale and Beer. Intended for true men only." + if("irishcream") + icon_state = "irishcreamglass" + name = "Irish Cream" + desc = "It's cream, mixed with whiskey. What else would you expect from the Irish?" + if("cubalibre") + icon_state = "cubalibreglass" + name = "Cuba Libre" + desc = "A classic mix of rum and cola." + if("atomicbomb") + icon_state = "atomicbombglass" + name = "Atomic Bomb" + desc = "Nanotrasen cannot take legal responsibility for your actions after imbibing." + if("longislandicedtea") + icon_state = "longislandicedteaglass" + name = "Long Island Iced Tea" + desc = "The liquor cabinet, brought together in a delicious mix. Intended for middle-aged alcoholic women only." + if("threemileisland") + icon_state = "threemileislandglass" + name = "Three Mile Island Ice Tea" + desc = "A glass of this is sure to prevent a meltdown." + if("margarita") + icon_state = "margaritaglass" + name = "Margarita" + desc = "On the rocks with salt on the rim. Arriba~!" + if("blackrussian") + icon_state = "blackrussianglass" + name = "Black Russian" + desc = "For the lactose-intolerant. Still as classy as a White Russian." + if("vodkatonic") + icon_state = "vodkatonicglass" + name = "Vodka and Tonic" + desc = "For when a gin and tonic isn't Russian enough." + if("manhattan") + icon_state = "manhattanglass" + name = "Manhattan" + desc = "The Detective's undercover drink of choice. He never could stomach gin..." + if("manhattan_proj") + icon_state = "proj_manhattanglass" + name = "Manhattan Project" + desc = "A scientist's drink of choice, for thinking how to blow up the station." + if("ginfizz") + icon_state = "ginfizzglass" + name = "Gin Fizz" + desc = "Refreshingly lemony, deliciously dry." + if("irishcoffee") + icon_state = "irishcoffeeglass" + name = "Irish Coffee" + desc = "Coffee and alcohol. More fun than a Mimosa to drink in the morning." + if("hooch") + icon_state = "glass_brown2" + name = "Hooch" + desc = "You've really hit rock bottom now... your liver packed its bags and left last night." + if("whiskeysoda") + icon_state = "whiskeysodaglass2" + name = "Whiskey Soda" + desc = "Ultimate refreshment." + if("tonic") + icon_state = "glass_clear" + name = "glass of Tonic Water" + desc = "Quinine tastes funny, but at least it'll keep that Space Malaria away." + if("sodawater") + icon_state = "glass_clear" + name = "glass of Soda Water" + desc = "Soda water. Why not make a scotch and soda?" + if("water") + icon_state = "glass_clear" + name = "glass of Water" + desc = "The father of all refreshments." + if("spacemountainwind") + icon_state = "Space_mountain_wind_glass" + name = "glass of Space Mountain Wind" + desc = "Space Mountain Wind. As you know, there are no mountains in space, only wind." + if("thirteenloko") + icon_state = "thirteen_loko_glass" + name = "glass of Thirteen Loko" + desc = "This is a glass of Thirteen Loko, it appears to be of the highest quality. The drink, not the glass." + if("dr_gibb") + icon_state = "dr_gibb_glass" + name = "glass of Dr. Gibb" + desc = "Dr. Gibb. Not as dangerous as the name might imply." + if("space_up") + icon_state = "space-up_glass" + name = "glass of Space-up" + desc = "Space-up. It helps you keep your cool." + if("lemon_lime") + icon_state = "glass_yellow" + name = "glass of Lemon-Lime" + desc = "You're pretty certain a real fruit has never actually touched this." + if("moonshine") + icon_state = "glass_clear" + name = "Moonshine" + desc = "You've really hit rock bottom now... your liver packed its bags and left last night." + if("soymilk") + icon_state = "glass_white" + name = "glass of soy milk" + desc = "White and nutritious soy goodness!" + if("berryjuice") + icon_state = "berryjuice" + name = "glass of berry juice" + desc = "Berry juice. Or maybe it's jam. Who cares?" + if("poisonberryjuice") + icon_state = "poisonberryjuice" + name = "glass of berry juice" + desc = "Berry juice. Or maybe it's poison. Who cares?" + if("carrotjuice") + icon_state = "carrotjuice" + name = "glass of carrot juice" + desc = "It's just like a carrot but without crunching." + if("banana") + icon_state = "banana" + name = "glass of banana juice" + desc = "The raw essence of a banana. HONK." + if("bahama_mama") + icon_state = "bahama_mama" + name = "Bahama Mama" + desc = "Tropical cocktail." + if("singulo") + icon_state = "singulo" + name = "Singulo" + desc = "A blue-space beverage." + if("alliescocktail") + icon_state = "alliescocktail" + name = "Allies cocktail" + desc = "A drink made from your allies." + if("antifreeze") + icon_state = "antifreeze" + name = "Anti-freeze" + desc = "The ultimate refreshment." + if("barefoot") + icon_state = "b&p" + name = "Barefoot" + desc = "Barefoot and pregnant." + if("demonsblood") + icon_state = "demonsblood" + name = "Demons Blood" + desc = "Just looking at this thing makes the hair at the back of your neck stand up." + if("booger") + icon_state = "booger" + name = "Booger" + desc = "Ewww..." + if("snowwhite") + icon_state = "snowwhite" + name = "Snow White" + desc = "A cold refreshment." + if("aloe") + icon_state = "aloe" + name = "Aloe" + desc = "Very, very, very good." + if("andalusia") + icon_state = "andalusia" + name = "Andalusia" + desc = "A nice, strange named drink." + if("sbiten") + icon_state = "sbitenglass" + name = "Sbiten" + desc = "A spicy mix of Vodka and Spice. Very hot." + if("red_mead") + icon_state = "red_meadglass" + name = "Red Mead" + desc = "A True Vikings Beverage, though its color is strange." + if("mead") + icon_state = "meadglass" + name = "Mead" + desc = "A Vikings Beverage, though a cheap one." + if("iced_beer") + icon_state = "iced_beerglass" + name = "Iced Beer" + desc = "A beer so frosty, the air around it freezes." + if("grog") + icon_state = "grogglass" + name = "Grog" + desc = "A fine and cepa drink for Space." + if("soy_latte") + icon_state = "soy_latte" + name = "Soy Latte" + desc = "A nice and refreshing beverage while you're reading." + if("cafe_latte") + icon_state = "cafe_latte" + name = "Cafe Latte" + desc = "A nice, strong and refreshing beverage while you're reading." + if("acidspit") + icon_state = "acidspitglass" + name = "Acid Spit" + desc = "A drink from Nanotrasen. Made from live aliens." + if("amasec") + icon_state = "amasecglass" + name = "Amasec" + desc = "Always handy before COMBAT!!!" + if("neurotoxin") + icon_state = "neurotoxinglass" + name = "Neurotoxin" + desc = "A drink that is guaranteed to knock you silly." + if("hippiesdelight") + icon_state = "hippiesdelightglass" + name = "Hippie's Delight" + desc = "A drink enjoyed by people during the 1960's." + if("bananahonk") + icon_state = "bananahonkglass" + name = "Banana Honk" + desc = "A drink from Clown Heaven." + if("silencer") + icon_state = "silencerglass" + name = "Silencer" + desc = "A drink from Mime Heaven." + if("nothing") + icon_state = "nothing" + name = "Nothing" + desc = "Absolutely nothing." + if("devilskiss") + icon_state = "devilskiss" + name = "Devils Kiss" + desc = "Creepy time!" + if("changelingsting") + icon_state = "changelingsting" + name = "Changeling Sting" + desc = "A stingy drink." + if("irishcarbomb") + icon_state = "irishcarbomb" + name = "Irish Car Bomb" + desc = "An Irish car bomb." + if("syndicatebomb") + icon_state = "syndicatebomb" + name = "Syndicate Bomb" + desc = "A syndicate bomb." + if("erikasurprise") + icon_state = "erikasurprise" + name = "Erika Surprise" + desc = "The surprise is, it's green!" + if("driestmartini") + icon_state = "driestmartiniglass" + name = "Driest Martini" + desc = "Only for the experienced. You think you see sand floating in the glass." + if("ice") + icon_state = "iceglass" + name = "glass of ice" + desc = "Generally, you're supposed to put something else in there too..." + if("icecoffee") + icon_state = "icedcoffeeglass" + name = "Iced Coffee" + desc = "A drink to perk you up and refresh you!" + if("icetea") + icon_state = "icedteaglass" + name = "Iced Tea" + desc = "All natural, antioxidant-rich flavour sensation." + if("coffee") + icon_state = "glass_brown" + name = "glass of coffee" + desc = "Don't drop it, or you'll send scalding liquid and glass shards everywhere." + if("tea") + icon_state = "teaglass" + name = "glass of tea" + desc = "Drinking it from here would not seem right." + if("bilk") + icon_state = "glass_brown" + name = "glass of bilk" + desc = "A brew of milk and beer. For those alcoholics who fear osteoporosis." + if("welding_fuel") + icon_state = "dr_gibb_glass" + name = "glass of welder fuel" + desc = "Unless you're an industrial tool, this is probably not safe for consumption." + if("b52") + icon_state = "b52glass" + name = "B-52" + desc = "Kahlua, Irish Cream, and cognac. You will get bombed." + if("toxinsspecial") + icon_state = "toxinsspecialglass" + name = "Toxins Special" + desc = "Whoah, this thing is on FIRE!" + if("chocolatepudding") + icon_state = "chocolatepudding" + name = "Chocolate Pudding" + desc = "" + if("vanillapudding") + icon_state = "vanillapudding" + name = "Vanilla Pudding" + desc = "Tasty." + if("cherryshake") + icon_state = "cherryshake" + name = "Cherry Shake" + desc = "A cherry flavored milkshake." + if("bluecherryshake") + icon_state = "bluecherryshake" + name = "Blue Cherry Shake" + desc = "An exotic blue milkshake." + if("drunkenblumpkin") + icon_state = "drunkenblumpkin" + name = "Drunken Blumpkin" + desc = "A drink for the drunks." + if("pumpkin_latte") + icon_state = "pumpkin_latte" + name = "Pumpkin Latte" + desc = "A mix of coffee and pumpkin juice." + if("gibbfloats") + icon_state = "gibbfloats" + name = "Gibbfloat" + desc = "Dr. Gibb with ice cream on top." + if("whiskey_sour") + icon_state = "whiskey_sour" + name = "Whiskey Sour" + desc = "Lemon juice mixed with whiskey and a dash of sugar. Surprisingly satisfying." + if("fetching_fizz") + icon_state = "fetching_fizz" + name = "Fetching Fizz" + desc = "Induces magnetism in the imbiber. Started as a barroom prank but evolved to become popular with miners and scrappers. Metallic aftertaste." + if("hearty_punch") + icon_state = "hearty_punch" + name = "Hearty Punch" + desc = "Aromatic beverage served piping hot. According to folk tales it can almost wake the dead." + if("absinthe") + icon_state = "absinthe" + name = "glass of absinthe" + desc = "It's as strong as it smells." + if("bacchus_blessing") + icon_state = "glass_brown2" + name = "Bacchus' Blessing" + desc = "You didn't think it was possible for a liquid to be so utterly revolting. Are you sure about this...?" + if("arnold_palmer") + icon_state = "arnold_palmer" + name = "Arnold Palmer" + desc = "You feel like taking a few golf swings after a few swigs of this." + if("hcider") + icon_state = "whiskeyglass" + name = "Hard Cider" + desc = "Tastes like autumn." + if("triple_citrus") + icon_state = "triplecitrus" //needs own sprite mine are trash + name = "glass of triple citrus" + desc = "A mixture of citrus juices. Tangy, yet smooth." + else + icon_state ="glass_brown" + var/image/I = image(icon, "glassoverlay") + I.color = mix_color_from_reagents(reagents.reagent_list) + add_overlay(I) + name = "glass of ..what?" + desc = "You can't really tell what this is." + else + icon_state = "glass_empty" + name = "drinking glass" + desc = "Your standard drinking glass." + return + +//Shot glasses!// +// This lets us add shots in here instead of lumping them in with drinks because >logic // +// The format for shots is the exact same as iconstates for the drinking glass, except you use a shot glass instead. // +// If it's a new drink, remember to add it to Chemistry-Reagents.dm and Chemistry-Recipes.dm as well. // +// You can only mix the ported-over drinks in shot glasses for now (they'll mix in a shaker, but the sprite won't change for glasses). // +// This is on a case-by-case basis, and you can even make a seperate sprite for shot glasses if you want. // + +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass + name = "shot glass" + desc = "A shot glass - the universal symbol for bad decisions." + icon_state = "shotglass" + gulp_size = 15 + amount_per_transfer_from_this = 15 + possible_transfer_amounts = list() + volume = 15 + materials = list(MAT_GLASS=100) + +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass/on_reagent_change() + if (gulp_size < 15) + gulp_size = 15 + else + gulp_size = max(round(reagents.total_volume / 15), 15) + + if (reagents.reagent_list.len > 0) + switch(reagents.get_master_reagent_id()) + if("vodka") + icon_state = "shotglassclear" + name = "shot of vodka" + desc = "Good for cold weather." + if("water") + icon_state = "shotglassclear" + name = "shot of water" + desc = "You're not sure why someone would drink this from a shot glass." + if("whiskey") + icon_state = "shotglassbrown" + name = "shot of whiskey" + desc = "Just like the old west." + if("hcider") + icon_state = "shotglassbrown" + name = "shot of hard cider" + desc = "Not meant to be drinken from a shot glass." + if("rum") + icon_state = "shotglassbrown" + name = "shot of rum" + desc = "You dirty pirate." + if("b52") + icon_state = "b52glass" + name = "B-52" + desc = "Kahlua, Irish Cream, and cognac. You will get bombed." + if("toxinsspecial") + icon_state = "toxinsspecialglass" + name = "Toxins Special" + desc = "Whoah, this thing is on FIRE!" + if ("vermouth") + icon_state = "shotglassclear" + name = "shot of vermouth" + desc = "This better be going in a martini." + if ("tequila") + icon_state = "shotglassgold" + name = "shot of tequila" + desc = "Bad decisions ahead!" + if ("patron") + icon_state = "shotglassclear" + name = "shot of patron" + desc = "The good stuff. Goes great with a lime wedge." + if ("kahlua") + icon_state = "shotglasscream" + name = "shot of coffee liqueur" + desc = "Doesn't look too appetizing..." + if ("nothing") + icon_state = "shotglass" + name = "shot of nothing" + desc = "The mime insists there's booze in the glass. You're not so sure." + if ("goldschlager") + icon_state = "shotglassgold" + name = "shot of goldschlager" + desc = "Yup. You're officially a college girl." + if ("cognac") + icon_state = "shotglassbrown" + name = "shot of cognac" + desc = "You get the feeling this would piss off a rich person somewhere." + if ("wine") + icon_state = "shotglassred" + name = "shot of wine" + desc = "What kind of craven oaf would drink wine from a shot glass?" + if ("blood") + icon_state = "shotglassred" + name = "shot of blood" + desc = "If you close your eyes it sort of tastes like wine..." + if ("liquidgibs") + icon_state = "shotglassred" + name = "shot of gibs" + desc = "...Let's not talk about this." + if ("absinthe") + icon_state = "shotglassgreen" + name = "shot of absinthe" + desc = "I am stuck in the cycles of my guilt..." + else + icon_state = "shotglassbrown" + name = "shot of... what?" + desc = "You can't really tell what's in the glass." + else + icon_state = "shotglass" + name = "shot glass" + desc = "A shot glass - the universal symbol for bad decisions." + return + +// for /obj/machinery/vending/sovietsoda +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/filled/New() + ..() + on_reagent_change() + +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/filled/soda + list_reagents = list("sodawater" = 50) + +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/filled/cola + list_reagents = list("cola" = 50) + +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/attackby(obj/item/I, mob/user, params) + if(istype(I,/obj/item/weapon/reagent_containers/food/snacks/egg)) //breaking eggs + var/obj/item/weapon/reagent_containers/food/snacks/egg/E = I + if(reagents) + if(reagents.total_volume >= reagents.maximum_volume) + user << "[src] is full." + else + user << "You break [E] in [src]." + reagents.add_reagent("eggyolk", 5) + qdel(E) + return + else + ..() + +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/attack(obj/target, mob/user) + if(user.a_intent == "harm" && ismob(target) && target.reagents && reagents.total_volume) + target.visible_message("[user] splashes the contents of [src] onto [target]!", \ + "[user] splashes the contents of [src] onto [target]!") + add_logs(user, target, "splashed", src) + reagents.reaction(target, TOUCH) + reagents.clear_reagents() + return + ..() + +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/afterattack(obj/target, mob/user, proximity) + if((!proximity) || !check_allowed_items(target,target_self=1)) + return + + else if(reagents.total_volume && user.a_intent == "harm") + user.visible_message("[user] splashes the contents of [src] onto [target]!", \ + "You splash the contents of [src] onto [target].") + reagents.reaction(target, TOUCH) + reagents.clear_reagents() + return + ..() + diff --git a/code/modules/food_and_drinks/food.dm b/code/modules/food_and_drinks/food.dm new file mode 100644 index 0000000..4a05510 --- /dev/null +++ b/code/modules/food_and_drinks/food.dm @@ -0,0 +1,12 @@ +//////////////////////////////////////////////////////////////////////////////// +/// Food. +//////////////////////////////////////////////////////////////////////////////// +/obj/item/weapon/reagent_containers/food + possible_transfer_amounts = list() + volume = 50 //Sets the default container amount for all food items. + resistance_flags = FLAMMABLE + +/obj/item/weapon/reagent_containers/food/New() + ..() + pixel_x = rand(-5, 5) //Randomizes postion slightly. + pixel_y = rand(-5, 5) \ No newline at end of file diff --git a/code/modules/food_and_drinks/food/condiment.dm b/code/modules/food_and_drinks/food/condiment.dm new file mode 100644 index 0000000..813174a --- /dev/null +++ b/code/modules/food_and_drinks/food/condiment.dm @@ -0,0 +1,253 @@ + +///////////////////////////////////////////////Condiments +//Notes by Darem: The condiments food-subtype is for stuff you don't actually eat but you use to modify existing food. They all +// leave empty containers when used up and can be filled/re-filled with other items. Formatting for first section is identical +// to mixed-drinks code. If you want an object that starts pre-loaded, you need to make it in addition to the other code. + +//Food items that aren't eaten normally and leave an empty container behind. +/obj/item/weapon/reagent_containers/food/condiment + name = "condiment container" + desc = "Just your average condiment container." + icon = 'icons/obj/food/containers.dmi' + icon_state = "emptycondiment" + flags = OPENCONTAINER + possible_transfer_amounts = list(1, 5, 10, 15, 20, 25, 30, 50) + volume = 50 + //Possible_states has the reagent id as key and a list of, in order, the icon_state, the name and the desc as values. Used in the on_reagent_change() to change names, descs and sprites. + var/list/possible_states = list( + "ketchup" = list("ketchup", "ketchup bottle", "You feel more American already."), + "capsaicin" = list("hotsauce", "hotsauce bottle", "You can almost TASTE the stomach ulcers now!"), + "enzyme" = list("enzyme", "universal enzyme bottle", "Used in cooking various dishes"), + "soysauce" = list("soysauce", "soy sauce bottle", "A salty soy-based flavoring"), + "frostoil" = list("coldsauce", "coldsauce bottle", "Leaves the tongue numb in it's passage"), + "sodiumchloride" = list("saltshakersmall", "salt shaker", "Salt. From space oceans, presumably"), + "blackpepper" = list("peppermillsmall", "pepper mill", "Often used to flavor food or make people sneeze"), + "cornoil" = list("oliveoil", "corn oil bottle", "A delicious oil used in cooking. Made from corn"), + "sugar" = list("emptycondiment", "sugar bottle", "Tasty spacey sugar!")) + var/originalname = "condiment" //Can't use initial(name) for this. This stores the name set by condimasters. + +/obj/item/weapon/reagent_containers/food/condiment/attack(mob/M, mob/user, def_zone) + + if(!reagents || !reagents.total_volume) + user << "None of [src] left, oh no!" + return 0 + + if(!canconsume(M, user)) + return 0 + + if(M == user) + M << "You swallow some of contents of \the [src]." + else + user.visible_message("[user] attempts to feed [M] from [src].") + if(!do_mob(user, M)) + return + if(!reagents || !reagents.total_volume) + return // The condiment might be empty after the delay. + user.visible_message("[user] feeds [M] from [src].") + add_logs(user, M, "fed", reagentlist(src)) + + var/fraction = min(10/reagents.total_volume, 1) + reagents.reaction(M, INGEST, fraction) + reagents.trans_to(M, 10) + playsound(M.loc,'sound/items/drink.ogg', rand(10,50), 1) + return 1 + +/obj/item/weapon/reagent_containers/food/condiment/afterattack(obj/target, mob/user , proximity) + if(!proximity) return + if(istype(target, /obj/structure/reagent_dispensers)) //A dispenser. Transfer FROM it TO us. + + if(!target.reagents.total_volume) + user << "[target] is empty!" + return + + if(reagents.total_volume >= reagents.maximum_volume) + user << "[src] is full!" + return + + var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this) + user << "You fill [src] with [trans] units of the contents of [target]." + + //Something like a glass or a food item. Player probably wants to transfer TO it. + else if(target.is_open_container() || istype(target, /obj/item/weapon/reagent_containers/food/snacks)) + if(!reagents.total_volume) + user << "[src] is empty!" + return + if(target.reagents.total_volume >= target.reagents.maximum_volume) + user << "you can't add anymore to [target]!" + return + var/trans = src.reagents.trans_to(target, amount_per_transfer_from_this) + user << "You transfer [trans] units of the condiment to [target]." + +/obj/item/weapon/reagent_containers/food/condiment/on_reagent_change() + if(!possible_states.len) + return + if(reagents.reagent_list.len > 0) + var/main_reagent = reagents.get_master_reagent_id() + if(main_reagent in possible_states) + var/list/temp_list = possible_states[main_reagent] + icon_state = temp_list[1] + name = temp_list[2] + desc = temp_list[3] + + else + name = "[originalname] bottle" + main_reagent = reagents.get_master_reagent_name() + if (reagents.reagent_list.len==1) + desc = "Looks like it is [lowertext(main_reagent)], but you are not sure." + else + desc = "A mixture of various condiments. [lowertext(main_reagent)] is one of them." + icon_state = "mixedcondiments" + else + icon_state = "emptycondiment" + name = "condiment bottle" + desc = "An empty condiment bottle." + return + +/obj/item/weapon/reagent_containers/food/condiment/enzyme + name = "universal enzyme" + desc = "Used in cooking various dishes." + icon_state = "enzyme" + list_reagents = list("enzyme" = 50) + +/obj/item/weapon/reagent_containers/food/condiment/sugar + name = "sugar bottle" + desc = "Tasty spacey sugar!" + list_reagents = list("sugar" = 50) + +/obj/item/weapon/reagent_containers/food/condiment/saltshaker //Seperate from above since it's a small shaker rather then + name = "salt shaker" // a large one. + desc = "Salt. From space oceans, presumably." + icon_state = "saltshakersmall" + possible_transfer_amounts = list(1,20) //for clown turning the lid off + amount_per_transfer_from_this = 1 + volume = 20 + list_reagents = list("sodiumchloride" = 20) + possible_states = list() + +/obj/item/weapon/reagent_containers/food/condiment/saltshaker/suicide_act(mob/user) + user.visible_message("[user] begins to swap forms with the salt shaker! It looks like [user.p_theyre()] trying to commit suicide!") + var/newname = "[name]" + name = "[user.name]" + user.name = newname + user.real_name = newname + desc = "Salt. From dead crew, presumably." + return (TOXLOSS) + +/obj/item/weapon/reagent_containers/food/condiment/saltshaker/afterattack(obj/target, mob/living/user, proximity) + if(!proximity || !isturf(target)) + return + if(!reagents.has_reagent("sodiumchloride", 2)) + user << "You don't have enough salt to make a pile!" + return + user.visible_message("[user] shakes some salt onto [target].", "You shake some salt onto [target].") + reagents.remove_reagent("sodiumchloride", 2) + new/obj/effect/decal/cleanable/salt(target) + +/obj/item/weapon/reagent_containers/food/condiment/peppermill + name = "pepper mill" + desc = "Often used to flavor food or make people sneeze." + icon_state = "peppermillsmall" + possible_transfer_amounts = list(1,20) //for clown turning the lid off + amount_per_transfer_from_this = 1 + volume = 20 + list_reagents = list("blackpepper" = 20) + possible_states = list() + +/obj/item/weapon/reagent_containers/food/condiment/milk + name = "space milk" + desc = "It's milk. White and nutritious goodness!" + icon_state = "milk" + item_state = "carton" + list_reagents = list("milk" = 50) + possible_states = list() + +/obj/item/weapon/reagent_containers/food/condiment/flour + name = "flour sack" + desc = "A big bag of flour. Good for baking!" + icon_state = "flour" + item_state = "flour" + list_reagents = list("flour" = 30) + possible_states = list() + +/obj/item/weapon/reagent_containers/food/condiment/soymilk + name = "soy milk" + desc = "It's soy milk. White and nutritious goodness!" + icon_state = "soymilk" + item_state = "carton" + list_reagents = list("soymilk" = 50) + possible_states = list() + +/obj/item/weapon/reagent_containers/food/condiment/rice + name = "rice sack" + desc = "A big bag of rice. Good for cooking!" + icon_state = "rice" + item_state = "flour" + list_reagents = list("rice" = 30) + possible_states = list() + +/obj/item/weapon/reagent_containers/food/condiment/soysauce + name = "soy sauce" + desc = "A salty soy-based flavoring." + icon_state = "soysauce" + list_reagents = list("soysauce" = 50) + possible_states = list() + + + +//Food packs. To easily apply deadly toxi... delicious sauces to your food! + +/obj/item/weapon/reagent_containers/food/condiment/pack + name = "condiment pack" + desc = "A small plastic pack with condiments to put on your food" + icon_state = "condi_empty" + volume = 10 + amount_per_transfer_from_this = 10 + possible_transfer_amounts = list() + possible_states = list("ketchup" = list("condi_ketchup", "Ketchup", "You feel more American already."), "capsaicin" = list("condi_hotsauce", "Hotsauce", "You can almost TASTE the stomach ulcers now!"), "soysauce" = list("condi_soysauce", "Soy Sauce", "A salty soy-based flavoring"), "frostoil" = list("condi_frostoil", "Coldsauce", "Leaves the tongue numb in it's passage"), "sodiumchloride" = list("condi_salt", "Salt Shaker", "Salt. From space oceans, presumably"), "blackpepper" = list("condi_pepper", "Pepper Mill", "Often used to flavor food or make people sneeze"), "cornoil" = list("condi_cornoil", "Corn Oil", "A delicious oil used in cooking. Made from corn"), "sugar" = list("condi_sugar", "Sugar", "Tasty spacey sugar!")) + +/obj/item/weapon/reagent_containers/food/condiment/pack/attack(mob/M, mob/user, def_zone) //Can't feed these to people directly. + return + +/obj/item/weapon/reagent_containers/food/condiment/pack/afterattack(obj/target, mob/user , proximity) + if(!proximity) return + + //You can tear the bag open above food to put the condiments on it, obviously. + if(istype(target, /obj/item/weapon/reagent_containers/food/snacks)) + if(!reagents.total_volume) + user << "You tear open [src], but there's nothing in it." + qdel(src) + return + if(target.reagents.total_volume >= target.reagents.maximum_volume) + user << "You tear open [src], but [target] is stacked so high that it just drips off!" //Not sure if food can ever be full, but better safe than sorry. + qdel(src) + return + else + user << "You tear open [src] above [target] and the condiments drip onto it." + src.reagents.trans_to(target, amount_per_transfer_from_this) + qdel(src) + +/obj/item/weapon/reagent_containers/food/condiment/pack/on_reagent_change() + if(reagents.reagent_list.len > 0) + var/main_reagent = reagents.get_master_reagent_id() + if(main_reagent in possible_states) + var/list/temp_list = possible_states[main_reagent] + icon_state = temp_list[1] + desc = temp_list[3] + else + icon_state = "condi_mixed" + desc = "A small condiment pack. The label says it contains [originalname]" + else + icon_state = "condi_empty" + desc = "A small condiment pack. It is empty." + +//Ketchup +/obj/item/weapon/reagent_containers/food/condiment/pack/ketchup + name = "ketchup pack" + originalname = "ketchup" + list_reagents = list("ketchup" = 10) + +//Hot sauce +/obj/item/weapon/reagent_containers/food/condiment/pack/hotsauce + name = "hotsauce pack" + originalname = "hotsauce" + list_reagents = list("capsaicin" = 10) diff --git a/code/modules/food_and_drinks/food/customizables.dm b/code/modules/food_and_drinks/food/customizables.dm new file mode 100644 index 0000000..820444a --- /dev/null +++ b/code/modules/food_and_drinks/food/customizables.dm @@ -0,0 +1,341 @@ +#define INGREDIENTS_FILL 1 +#define INGREDIENTS_SCATTER 2 +#define INGREDIENTS_STACK 3 +#define INGREDIENTS_STACKPLUSTOP 4 +#define INGREDIENTS_LINE 5 + +//************************************************************** +// +// Customizable Food +// +//************************************************************** + + +/obj/item/weapon/reagent_containers/food/snacks/customizable + bitesize = 4 + w_class = 2 + volume = 80 + + var/ingMax = 12 + var/list/ingredients = list() + var/ingredients_placement = INGREDIENTS_FILL + var/customname = "custom" + +/obj/item/weapon/reagent_containers/food/snacks/customizable/examine(mob/user) + ..() + var/ingredients_listed = "" + for(var/obj/item/weapon/reagent_containers/food/snacks/ING in ingredients) + ingredients_listed += "[ING.name], " + var/size = "standard" + if(ingredients.len<2) + size = "small" + if(ingredients.len>5) + size = "big" + if(ingredients.len>8) + size = "monster" + user << "It contains [ingredients.len?"[ingredients_listed]":"no ingredient, "]making a [size]-sized [initial(name)]." + +/obj/item/weapon/reagent_containers/food/snacks/customizable/attackby(obj/item/I, mob/user, params) + if(!istype(I, /obj/item/weapon/reagent_containers/food/snacks/customizable) && istype(I,/obj/item/weapon/reagent_containers/food/snacks)) + var/obj/item/weapon/reagent_containers/food/snacks/S = I + if(I.w_class > 2) + user << "The ingredient is too big for [src]!" + else if((ingredients.len >= ingMax) || (reagents.total_volume >= volume)) + user << "You can't add more ingredients to [src]!" + else if(istype(I, /obj/item/weapon/reagent_containers/food/snacks/pizzaslice/custom) || istype(I, /obj/item/weapon/reagent_containers/food/snacks/cakeslice/custom)) + user << "Adding [I.name] to [src] would make a mess." + else + if(!user.unEquip(I)) + return + if(S.trash) + new S.trash(get_turf(user)) + S.trash = null //we remove the plate before adding the ingredient + ingredients += S + S.loc = src + mix_filling_color(S) + S.reagents.trans_to(src,min(S.reagents.total_volume, 15)) //limit of 15, we don't want our custom food to be completely filled by just one ingredient with large reagent volume. + update_overlays(S) + user << "You add the [I.name] to the [name]." + update_name(S) + else if(istype(I, /obj/item/weapon/pen)) + var/txt = stripped_input(user, "What would you like the food to be called?", "Food Naming", "", 30) + if(txt) + ingMax = ingredients.len + user << "You add a last touch to the dish by renaming it." + customname = txt + if(istype(src, /obj/item/weapon/reagent_containers/food/snacks/customizable/sandwich)) + var/obj/item/weapon/reagent_containers/food/snacks/customizable/sandwich/S = src + if(S.finished) + name = "[customname] sandwich" + return + name = "[customname] [initial(name)]" + else . = ..() + + +/obj/item/weapon/reagent_containers/food/snacks/customizable/proc/update_name(obj/item/weapon/reagent_containers/food/snacks/S) + for(var/obj/item/I in ingredients) + if(!istype(S, I.type)) + customname = "custom" + break + if(ingredients.len == 1) //first ingredient + if(istype(S, /obj/item/weapon/reagent_containers/food/snacks/meat)) + var/obj/item/weapon/reagent_containers/food/snacks/meat/M = S + if(M.subjectname) + customname = "[M.subjectname]" + else if(M.subjectjob) + customname = "[M.subjectjob]" + else + customname = S.name + else + customname = S.name + name = "[customname] [initial(name)]" + +/obj/item/weapon/reagent_containers/food/snacks/customizable/proc/initialize_custom_food(obj/item/BASE, obj/item/I, mob/user) + if(istype(BASE,/obj/item/weapon/reagent_containers)) + var/obj/item/weapon/reagent_containers/RC = BASE + RC.reagents.trans_to(src,RC.reagents.total_volume) + for(var/obj/O in BASE.contents) + contents += O + if(I && user) + attackby(I, user) + user.unEquip(BASE) + qdel(BASE) + +/obj/item/weapon/reagent_containers/food/snacks/customizable/proc/mix_filling_color(obj/item/weapon/reagent_containers/food/snacks/S) + if(ingredients.len == 1) + filling_color = S.filling_color + else + var/list/rgbcolor = list(0,0,0,0) + var/customcolor = GetColors(filling_color) + var/ingcolor = GetColors(S.filling_color) + rgbcolor[1] = (customcolor[1]+ingcolor[1])/2 + rgbcolor[2] = (customcolor[2]+ingcolor[2])/2 + rgbcolor[3] = (customcolor[3]+ingcolor[3])/2 + rgbcolor[4] = (customcolor[4]+ingcolor[4])/2 + filling_color = rgb(rgbcolor[1], rgbcolor[2], rgbcolor[3], rgbcolor[4]) + +/obj/item/weapon/reagent_containers/food/snacks/customizable/update_overlays(obj/item/weapon/reagent_containers/food/snacks/S) + var/image/I = new(icon, "[initial(icon_state)]_filling") + if(S.filling_color == "#FFFFFF") + I.color = pick("#FF0000","#0000FF","#008000","#FFFF00") + else + I.color = S.filling_color + + switch(ingredients_placement) + if(INGREDIENTS_SCATTER) + I.pixel_x = rand(-1,1) + I.pixel_y = rand(-1,1) + if(INGREDIENTS_STACK) + I.pixel_x = rand(-1,1) + I.pixel_y = 2 * ingredients.len - 1 + if(INGREDIENTS_STACKPLUSTOP) + I.pixel_x = rand(-1,1) + I.pixel_y = 2 * ingredients.len - 1 + overlays.Cut(ingredients.len) + var/image/TOP = new(icon, "[icon_state]_top") + TOP.pixel_y = 2 * ingredients.len + 3 + add_overlay(I) + add_overlay(TOP) + return + if(INGREDIENTS_FILL) + cut_overlays() + I.color = filling_color + if(INGREDIENTS_LINE) + I.pixel_y = rand(-8,3) + I.pixel_x = I.pixel_y + + add_overlay(I) + + +/obj/item/weapon/reagent_containers/food/snacks/customizable/initialize_slice(obj/item/weapon/reagent_containers/food/snacks/slice, reagents_per_slice) + ..() + slice.name = "[customname] [initial(slice.name)]" + slice.filling_color = filling_color + slice.update_overlays(src) + + +/obj/item/weapon/reagent_containers/food/snacks/customizable/Destroy() + for(. in ingredients) + qdel(.) + return ..() + + + + + +///////////////////////////////////////////////////////////////////////////// +////////////// Customizable Food Types ///////////////////////////// +///////////////////////////////////////////////////////////////////////////// + +/obj/item/weapon/reagent_containers/food/snacks/customizable/burger + name = "burger" + desc = "A timeless classic." + ingredients_placement = INGREDIENTS_STACKPLUSTOP + icon = 'icons/obj/food/burgerbread.dmi' + icon_state = "bun" + + +/obj/item/weapon/reagent_containers/food/snacks/customizable/bread + name = "bread" + ingMax = 6 + slice_path = /obj/item/weapon/reagent_containers/food/snacks/breadslice/custom + slices_num = 5 + icon = 'icons/obj/food/burgerbread.dmi' + icon_state = "tofubread" + + +/obj/item/weapon/reagent_containers/food/snacks/customizable/cake + name = "cake" + ingMax = 6 + slice_path = /obj/item/weapon/reagent_containers/food/snacks/cakeslice/custom + slices_num = 5 + icon = 'icons/obj/food/piecake.dmi' + icon_state = "plaincake" + + +/obj/item/weapon/reagent_containers/food/snacks/customizable/kebab + name = "kebab" + desc = "Delicious food on a stick." + ingredients_placement = INGREDIENTS_LINE + trash = /obj/item/stack/rods + list_reagents = list("nutriment" = 1) + ingMax = 6 + icon_state = "rod" + + +/obj/item/weapon/reagent_containers/food/snacks/customizable/pasta + name = "spaghetti" + desc = "Noodles. With stuff. Delicious." + ingredients_placement = INGREDIENTS_SCATTER + ingMax = 6 + icon = 'icons/obj/food/pizzaspaghetti.dmi' + icon_state = "spaghettiboiled" + + +/obj/item/weapon/reagent_containers/food/snacks/customizable/pie + name = "pie" + ingMax = 6 + icon = 'icons/obj/food/piecake.dmi' + icon_state = "pie" + + +/obj/item/weapon/reagent_containers/food/snacks/customizable/pizza + name = "pizza" + desc = "A personalized pan pizza meant for only one person." + ingredients_placement = INGREDIENTS_SCATTER + ingMax = 8 + slice_path = /obj/item/weapon/reagent_containers/food/snacks/pizzaslice/custom + slices_num = 6 + icon = 'icons/obj/food/pizzaspaghetti.dmi' + icon_state = "pizzamargherita" + + +/obj/item/weapon/reagent_containers/food/snacks/customizable/salad + name = "salad" + desc = "Very tasty." + trash = /obj/item/weapon/reagent_containers/glass/bowl + ingMax = 6 + icon = 'icons/obj/food/soupsalad.dmi' + icon_state = "bowl" + + +/obj/item/weapon/reagent_containers/food/snacks/customizable/sandwich + name = "toast" + desc = "A timeless classic." + ingredients_placement = INGREDIENTS_STACK + icon = 'icons/obj/food/burgerbread.dmi' + icon_state = "breadslice" + var/finished = 0 + +/obj/item/weapon/reagent_containers/food/snacks/customizable/sandwich/initialize_custom_food(obj/item/weapon/reagent_containers/BASE, obj/item/I, mob/user) + icon_state = BASE.icon_state + ..() + +/obj/item/weapon/reagent_containers/food/snacks/customizable/sandwich/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/reagent_containers/food/snacks/breadslice)) //we're finishing the custom food. + var/obj/item/weapon/reagent_containers/food/snacks/breadslice/BS = I + if(finished) + return + user << "You finish the [src.name]." + finished = 1 + name = "[customname] sandwich" + BS.reagents.trans_to(src, BS.reagents.total_volume) + ingMax = ingredients.len //can't add more ingredients after that + var/image/TOP = new(icon, "[BS.icon_state]") + TOP.pixel_y = 2 * ingredients.len + 3 + add_overlay(TOP) + if(istype(BS, /obj/item/weapon/reagent_containers/food/snacks/breadslice/custom)) + var/image/O = new(icon, "[initial(BS.icon_state)]_filling") + O.color = BS.filling_color + O.pixel_y = 2 * ingredients.len + 3 + add_overlay(O) + qdel(BS) + return + else + ..() + + +/obj/item/weapon/reagent_containers/food/snacks/customizable/soup + name = "soup" + desc = "A bowl with liquid and... stuff in it." + trash = /obj/item/weapon/reagent_containers/glass/bowl + ingMax = 8 + icon = 'icons/obj/food/soupsalad.dmi' + icon_state = "wishsoup" + +/obj/item/weapon/reagent_containers/food/snacks/customizable/soup/New() + ..() + eatverb = pick("slurp","sip","suck","inhale","drink") + + + + + +// Bowl //////////////////////////////////////////////// + +/obj/item/weapon/reagent_containers/glass/bowl + name = "bowl" + icon_state = "snack_bowl" + name = "bowl" + desc = "A simple bowl, used for soups and salads." + icon = 'icons/obj/food/soupsalad.dmi' + icon_state = "bowl" + flags = OPENCONTAINER + materials = list(MAT_GLASS = 500) + w_class = 3 + +/obj/item/weapon/reagent_containers/glass/bowl/attackby(obj/item/I,mob/user, params) + if(istype(I,/obj/item/weapon/reagent_containers/food/snacks)) + var/obj/item/weapon/reagent_containers/food/snacks/S = I + if(I.w_class > 2) + user << "The ingredient is too big for [src]!" + else if(contents.len >= 20) + user << "You can't add more ingredients to [src]!" + else + if(reagents.has_reagent("water", 10)) //are we starting a soup or a salad? + var/obj/item/weapon/reagent_containers/food/snacks/customizable/A = new/obj/item/weapon/reagent_containers/food/snacks/customizable/soup(get_turf(src)) + A.initialize_custom_food(src, S, user) + else + var/obj/item/weapon/reagent_containers/food/snacks/customizable/A = new/obj/item/weapon/reagent_containers/food/snacks/customizable/salad(get_turf(src)) + A.initialize_custom_food(src, S, user) + else . = ..() + return + +/obj/item/weapon/reagent_containers/glass/bowl/on_reagent_change() + ..() + update_icon() + +/obj/item/weapon/reagent_containers/glass/bowl/update_icon() + cut_overlays() + if(reagents && reagents.total_volume) + var/image/filling = image('icons/obj/food/soupsalad.dmi', "fullbowl") + filling.color = mix_color_from_reagents(reagents.reagent_list) + add_overlay(filling) + else + icon_state = "bowl" + +#undef INGREDIENTS_FILL +#undef INGREDIENTS_SCATTER +#undef INGREDIENTS_STACK +#undef INGREDIENTS_STACKPLUSTOP +#undef INGREDIENTS_LINE diff --git a/code/modules/food_and_drinks/food/snacks.dm b/code/modules/food_and_drinks/food/snacks.dm new file mode 100644 index 0000000..a86e805 --- /dev/null +++ b/code/modules/food_and_drinks/food/snacks.dm @@ -0,0 +1,313 @@ +/obj/item/weapon/reagent_containers/food/snacks + name = "snack" + desc = "Yummy." + icon = 'icons/obj/food/food.dmi' + icon_state = null + var/bitesize = 2 + var/bitecount = 0 + var/trash = null + var/slice_path // for sliceable food. path of the item resulting from the slicing + var/slices_num + var/eatverb + var/dried_type = null + var/dry = 0 + var/cooked_type = null //for microwave cooking. path of the resulting item after microwaving + var/filling_color = "#FFFFFF" //color to use when added to custom food. + var/custom_food_type = null //for food customizing. path of the custom food to create + var/junkiness = 0 //for junk food. used to lower human satiety. + var/list/bonus_reagents = list() //the amount of reagents (usually nutriment and vitamin) added to crafted/cooked snacks, on top of the ingredients reagents. + var/customfoodfilling = 1 // whether it can be used as filling in custom food + + //Placeholder for effect that trigger on eating that aren't tied to reagents. + +/obj/item/weapon/reagent_containers/food/snacks/proc/On_Consume() + if(!usr) + return + if(!reagents.total_volume) + usr.unEquip(src) //so icons update :[ + + if(trash) + if(ispath(trash, /obj/item/weapon/grown) && istype(src, /obj/item/weapon/reagent_containers/food/snacks/grown)) + var/obj/item/weapon/reagent_containers/food/snacks/grown/G = src + var/obj/item/TrashItem = new trash(usr, G.seed) + usr.put_in_hands(TrashItem) + else if(ispath(trash,/obj/item)) + var/obj/item/TrashItem = new trash(usr) + usr.put_in_hands(TrashItem) + else if(istype(trash,/obj/item)) + usr.put_in_hands(trash) + qdel(src) + return + + +/obj/item/weapon/reagent_containers/food/snacks/attack_self(mob/user) + return + + +/obj/item/weapon/reagent_containers/food/snacks/attack(mob/M, mob/user, def_zone) + if(user.a_intent == "harm") + return ..() + if(!eatverb) + eatverb = pick("bite","chew","nibble","gnaw","gobble","chomp") + if(!reagents.total_volume) //Shouldn't be needed but it checks to see if it has anything left in it. + user << "None of [src] left, oh no!" + M.unEquip(src) //so icons update :[ + qdel(src) + return 0 + if(iscarbon(M)) + if(!canconsume(M, user)) + return 0 + + var/fullness = M.nutrition + 10 + for(var/datum/reagent/consumable/C in M.reagents.reagent_list) //we add the nutrition value of what we're currently digesting + fullness += C.nutriment_factor * C.volume / C.metabolization_rate + + if(M == user) //If you're eating it yourself. + if(junkiness && M.satiety < -150 && M.nutrition > NUTRITION_LEVEL_STARVING + 50 ) + M << "You don't feel like eating any more junk food at the moment." + return 0 + + else if(fullness <= 50) + M << "You hungrily [eatverb] some of \the [src] and gobble it down!" + else if(fullness > 50 && fullness < 150) + M << "You hungrily begin to [eatverb] \the [src]." + else if(fullness > 150 && fullness < 500) + M << "You [eatverb] \the [src]." + else if(fullness > 500 && fullness < 600) + M << "You unwillingly [eatverb] a bit of \the [src]." + else if(fullness > (600 * (1 + M.overeatduration / 2000))) // The more you eat - the more you can eat + M << "You cannot force any more of \the [src] to go down your throat!" + return 0 + else + if(!isbrain(M)) //If you're feeding it to someone else. + if(fullness <= (600 * (1 + M.overeatduration / 1000))) + M.visible_message("[user] attempts to feed [M] [src].", \ + "[user] attempts to feed [M] [src].") + else + M.visible_message("[user] cannot force anymore of [src] down [M]'s throat!", \ + "[user] cannot force anymore of [src] down [M]'s throat!") + return 0 + + if(!do_mob(user, M)) + return + add_logs(user, M, "fed", reagentlist(src)) + M.visible_message("[user] forces [M] to eat [src].", \ + "[user] feeds [M] to eat [src].") + + else + user << "[M] doesn't seem to have a mouth!" + return + + if(reagents) //Handle ingestion of the reagent. + if(M.satiety > -200) + M.satiety -= junkiness + playsound(M.loc,'sound/items/eatfood.ogg', rand(10,50), 1) + if(reagents.total_volume) + var/fraction = min(bitesize/reagents.total_volume, 1) + reagents.reaction(M, INGEST, fraction) + reagents.trans_to(M, bitesize) + bitecount++ + On_Consume() + return 1 + + return 0 + + +/obj/item/weapon/reagent_containers/food/snacks/afterattack(obj/target, mob/user , proximity) + return + + +/obj/item/weapon/reagent_containers/food/snacks/examine(mob/user) + ..() + if(bitecount == 0) + return + else if(bitecount == 1) + user << "[src] was bitten by someone!" + else if(bitecount <= 3) + user << "[src] was bitten [bitecount] times!" + else + user << "[src] was bitten multiple times!" + + +/obj/item/weapon/reagent_containers/food/snacks/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W,/obj/item/weapon/storage)) + ..() // -> item/attackby() + return 0 + if(istype(W,/obj/item/weapon/reagent_containers/food/snacks)) + var/obj/item/weapon/reagent_containers/food/snacks/S = W + if(custom_food_type && ispath(custom_food_type)) + if(S.w_class > 2) + user << "[S] is too big for [src]!" + return 0 + if(!S.customfoodfilling || istype(W, /obj/item/weapon/reagent_containers/food/snacks/customizable) || istype(W, /obj/item/weapon/reagent_containers/food/snacks/pizzaslice/custom) || istype(W, /obj/item/weapon/reagent_containers/food/snacks/cakeslice/custom)) + user << "[src] can't be filled with [S]!" + return 0 + if(contents.len >= 20) + user << "You can't add more ingredients to [src]!" + return 0 + var/obj/item/weapon/reagent_containers/food/snacks/customizable/C = new custom_food_type(get_turf(src)) + C.initialize_custom_food(src, S, user) + return 0 + var/sharp = W.is_sharp() + if(sharp) + if(slice(sharp, W, user)) + return 1 + +//Called when you finish tablecrafting a snack. +/obj/item/weapon/reagent_containers/food/snacks/CheckParts(list/parts_list, datum/crafting_recipe/food/R) + ..() + reagents.reagent_list.Cut() + for(var/obj/item/weapon/reagent_containers/RC in contents) + RC.reagents.trans_to(reagents, RC.reagents.maximum_volume) + if(istype(R)) + contents_loop: + for(var/A in contents) + for(var/B in R.real_parts) + if(istype(A, B)) + continue contents_loop + qdel(A) + feedback_add_details("food_made","[type]") + if(bonus_reagents.len) + for(var/r_id in bonus_reagents) + var/amount = bonus_reagents[r_id] + reagents.add_reagent(r_id, amount) + +/obj/item/weapon/reagent_containers/food/snacks/proc/slice(accuracy, obj/item/weapon/W, mob/user) + if((slices_num <= 0 || !slices_num) || !slice_path) //is the food sliceable? + return 0 + + if ( \ + !isturf(src.loc) || \ + !(locate(/obj/structure/table) in src.loc) && \ + !(locate(/obj/structure/table/optable) in src.loc) && \ + !(locate(/obj/item/weapon/storage/bag/tray) in src.loc) \ + ) + user << "You cannot slice [src] here! You need a table or at least a tray." + return 1 + + var/slices_lost = 0 + if (accuracy >= IS_SHARP_ACCURATE) + user.visible_message( \ + "[user] slices [src].", \ + "You slice [src]." \ + ) + else + user.visible_message( \ + "[user] inaccurately slices [src] with [W]!", \ + "You inaccurately slice [src] with your [W]!" \ + ) + slices_lost = rand(1,min(1,round(slices_num/2))) + + var/reagents_per_slice = reagents.total_volume/slices_num + for(var/i=1 to (slices_num-slices_lost)) + var/obj/item/weapon/reagent_containers/food/snacks/slice = new slice_path (loc) + initialize_slice(slice, reagents_per_slice) + qdel(src) + +/obj/item/weapon/reagent_containers/food/snacks/proc/initialize_slice(obj/item/weapon/reagent_containers/food/snacks/slice, reagents_per_slice) + slice.create_reagents(slice.volume) + reagents.trans_to(slice,reagents_per_slice) + return + +/obj/item/weapon/reagent_containers/food/snacks/proc/update_overlays(obj/item/weapon/reagent_containers/food/snacks/S) + cut_overlays() + var/image/I = new(src.icon, "[initial(icon_state)]_filling") + if(S.filling_color == "#FFFFFF") + I.color = pick("#FF0000","#0000FF","#008000","#FFFF00") + else + I.color = S.filling_color + + add_overlay(I) + +// initialize_cooked_food() is called when microwaving the food +/obj/item/weapon/reagent_containers/food/snacks/proc/initialize_cooked_food(obj/item/weapon/reagent_containers/food/snacks/S, cooking_efficiency = 1) + S.create_reagents(S.volume) + if(reagents) + reagents.trans_to(S, reagents.total_volume) + if(S.bonus_reagents.len) + for(var/r_id in S.bonus_reagents) + var/amount = S.bonus_reagents[r_id] * cooking_efficiency + S.reagents.add_reagent(r_id, amount) + +/obj/item/weapon/reagent_containers/food/snacks/Destroy() + if(contents) + for(var/atom/movable/something in contents) + something.loc = get_turf(src) + return ..() + +/obj/item/weapon/reagent_containers/food/snacks/attack_animal(mob/M) + if(isanimal(M)) + if(iscorgi(M)) + if(bitecount == 0 || prob(50)) + M.emote("me", 1, "nibbles away at \the [src]") + bitecount++ + if(bitecount >= 5) + var/sattisfaction_text = pick("burps from enjoyment", "yaps for more", "woofs twice", "looks at the area where \the [src] was") + if(sattisfaction_text) + M.emote("me", 1, "[sattisfaction_text]") + qdel(src) + + +////////////////////////////////////////////////// +////////////////////////////////////////////Snacks +////////////////////////////////////////////////// +//Items in the "Snacks" subcategory are food items that people actually eat. The key points are that they are created +// already filled with reagents and are destroyed when empty. Additionally, they make a "munching" noise when eaten. + +//Notes by Darem: Food in the "snacks" subtype can hold a maximum of 50 units Generally speaking, you don't want to go over 40 +// total for the item because you want to leave space for extra condiments. If you want effect besides healing, add a reagent for +// it. Try to stick to existing reagents when possible (so if you want a stronger healing effect, just use omnizine). On use +// effect (such as the old officer eating a donut code) requires a unique reagent (unless you can figure out a better way). + +//The nutriment reagent and bitesize variable replace the old heal_amt and amount variables. Each unit of nutriment is equal to +// 2 of the old heal_amt variable. Bitesize is the rate at which the reagents are consumed. So if you have 6 nutriment and a +// bitesize of 2, then it'll take 3 bites to eat. Unlike the old system, the contained reagents are evenly spread among all +// the bites. No more contained reagents = no more bites. + +//Here is an example of the new formatting for anyone who wants to add more food items. +///obj/item/weapon/reagent_containers/food/snacks/xenoburger //Identification path for the object. +// name = "Xenoburger" //Name that displays in the UI. +// desc = "Smells caustic. Tastes like heresy." //Duh +// icon_state = "xburger" //Refers to an icon in food.dmi +///obj/item/weapon/reagent_containers/food/snacks/xenoburger/New() //Don't mess with this. +// ..() //Same here. +// reagents.add_reagent("xenomicrobes", 10) //This is what is in the food item. you may copy/paste +// reagents.add_reagent("nutriment", 2) // this line of code for all the contents. +// bitesize = 3 //This is the amount each bite consumes. + +//All foods are distributed among various categories. Use common sense. + +/////////////////////////////////////////////////Store//////////////////////////////////////// +// All the food items that can store an item inside itself, like bread or cake. + + +/obj/item/weapon/reagent_containers/food/snacks/store + w_class = 3 + var/stored_item = 0 + +/obj/item/weapon/reagent_containers/food/snacks/store/attackby(obj/item/weapon/W, mob/user, params) + ..() + if(W.w_class <= 2 & !istype(W, /obj/item/weapon/reagent_containers/food/snacks)) //can't slip snacks inside, they're used for custom foods. + if(W.is_sharp()) + return 0 + if(stored_item) + return 0 + if(!iscarbon(user)) + return 0 + if(contents.len >= 20) + user << "[src] is full." + return 0 + user << "You slip [W] inside [src]." + user.unEquip(W) + add_fingerprint(user) + contents += W + stored_item = 1 + return 1 // no afterattack here + +/obj/item/weapon/reagent_containers/food/snacks/MouseDrop(atom/over) + var/turf/T = get_turf(src) + var/obj/structure/table/TB = locate(/obj/structure/table) in T + if(TB) + TB.MouseDrop(over) + else + ..() diff --git a/code/modules/food_and_drinks/food/snacks/dough.dm b/code/modules/food_and_drinks/food/snacks/dough.dm new file mode 100644 index 0000000..866a3d6 --- /dev/null +++ b/code/modules/food_and_drinks/food/snacks/dough.dm @@ -0,0 +1,116 @@ + + +/////////////////// Dough Ingredients //////////////////////// + +/obj/item/weapon/reagent_containers/food/snacks/dough + name = "dough" + desc = "A piece of dough." + icon = 'icons/obj/food/food_ingredients.dmi' + icon_state = "dough" + cooked_type = /obj/item/weapon/reagent_containers/food/snacks/store/bread/plain + list_reagents = list("nutriment" = 6) + w_class = 3 + + +// Dough + rolling pin = flat dough +/obj/item/weapon/reagent_containers/food/snacks/dough/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/kitchen/rollingpin)) + if(isturf(loc)) + new /obj/item/weapon/reagent_containers/food/snacks/flatdough(loc) + user << "You flatten [src]." + qdel(src) + else + user << "You need to put [src] on a surface to roll it out!" + else + ..() + + +// sliceable into 3xdoughslices +/obj/item/weapon/reagent_containers/food/snacks/flatdough + name = "flat dough" + desc = "A flattened dough." + icon = 'icons/obj/food/food_ingredients.dmi' + icon_state = "flat dough" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/doughslice + slices_num = 3 + cooked_type = /obj/item/weapon/reagent_containers/food/snacks/pizzabread + list_reagents = list("nutriment" = 6) + w_class = 3 + +/obj/item/weapon/reagent_containers/food/snacks/pizzabread + name = "pizza bread" + desc = "Add ingredients to make a pizza" + icon = 'icons/obj/food/food_ingredients.dmi' + icon_state = "pizzabread" + custom_food_type = /obj/item/weapon/reagent_containers/food/snacks/customizable/pizza + list_reagents = list("nutriment" = 7) + w_class = 3 + + +/obj/item/weapon/reagent_containers/food/snacks/doughslice + name = "dough slice" + desc = "A slice of dough. Can be cooked into a bun." + icon = 'icons/obj/food/food_ingredients.dmi' + icon_state = "doughslice" + cooked_type = /obj/item/weapon/reagent_containers/food/snacks/bun + filling_color = "#CD853F" + + +/obj/item/weapon/reagent_containers/food/snacks/bun + name = "bun" + desc = "A base for any self-respecting burger." + icon = 'icons/obj/food/burgerbread.dmi' + icon_state = "bun" + list_reagents = list("nutriment" = 1) + custom_food_type = /obj/item/weapon/reagent_containers/food/snacks/customizable/burger + filling_color = "#CD853F" + +/obj/item/weapon/reagent_containers/food/snacks/cakebatter + name = "cake batter" + desc = "Cook it to get a cake." + icon = 'icons/obj/food/food_ingredients.dmi' + icon_state = "cakebatter" + cooked_type = /obj/item/weapon/reagent_containers/food/snacks/store/cake/plain + list_reagents = list("nutriment" = 9) + w_class = 3 + +// Cake batter + rolling pin = pie dough +/obj/item/weapon/reagent_containers/food/snacks/cakebatter/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/kitchen/rollingpin)) + if(isturf(loc)) + new /obj/item/weapon/reagent_containers/food/snacks/piedough(loc) + user << "You flatten [src]." + qdel(src) + else + user << "You need to put [src] on a surface to roll it out!" + else + ..() + +/obj/item/weapon/reagent_containers/food/snacks/piedough + name = "pie dough" + desc = "Cook it to get a pie." + icon = 'icons/obj/food/food_ingredients.dmi' + icon_state = "piedough" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/rawpastrybase + slices_num = 3 + cooked_type = /obj/item/weapon/reagent_containers/food/snacks/pie/plain + list_reagents = list("nutriment" = 9) + w_class = 3 + +/obj/item/weapon/reagent_containers/food/snacks/rawpastrybase + name = "raw pastry base" + desc = "Must be cooked before use." + icon = 'icons/obj/food/food_ingredients.dmi' + icon_state = "rawpastrybase" + cooked_type = /obj/item/weapon/reagent_containers/food/snacks/pastrybase + filling_color = "#CD853F" + list_reagents = list("nutriment" = 1) + +/obj/item/weapon/reagent_containers/food/snacks/pastrybase + name = "pastry base" + desc = "A base for any self-respecting pastry" + icon = 'icons/obj/food/food_ingredients.dmi' + icon_state = "pastrybase" + list_reagents = list("nutriment" = 1) + filling_color = "#CD853F" + diff --git a/code/modules/food_and_drinks/food/snacks/meat.dm b/code/modules/food_and_drinks/food/snacks/meat.dm new file mode 100644 index 0000000..a953afa --- /dev/null +++ b/code/modules/food_and_drinks/food/snacks/meat.dm @@ -0,0 +1,311 @@ +/obj/item/weapon/reagent_containers/food/snacks/meat + var/subjectname = "" + var/subjectjob = null + +/obj/item/weapon/reagent_containers/food/snacks/meat/slab + name = "meat" + desc = "A slab of meat" + icon_state = "meat" + dried_type = /obj/item/weapon/reagent_containers/food/snacks/sosjerky + bitesize = 3 + list_reagents = list("nutriment" = 3) + cooked_type = /obj/item/weapon/reagent_containers/food/snacks/meat/steak/plain + slice_path = /obj/item/weapon/reagent_containers/food/snacks/meat/rawcutlet/plain + slices_num = 3 + filling_color = "#FF0000" + +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/initialize_slice(obj/item/weapon/reagent_containers/food/snacks/meat/rawcutlet/slice, reagents_per_slice) + ..() + var/image/I = new(icon, "rawcutlet_coloration") + I.color = filling_color + slice.add_overlay(I) + slice.filling_color = filling_color + slice.name = "raw [name] cutlet" + slice.meat_type = name + +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/initialize_cooked_food(obj/item/weapon/reagent_containers/food/snacks/S, cooking_efficiency) + ..() + S.name = "[name] steak" + +///////////////////////////////////// HUMAN MEATS ////////////////////////////////////////////////////// + + +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human + name = " meat" + cooked_type = /obj/item/weapon/reagent_containers/food/snacks/meat/steak/plain/human + slice_path = /obj/item/weapon/reagent_containers/food/snacks/meat/rawcutlet/plain/human + +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/initialize_slice(obj/item/weapon/reagent_containers/food/snacks/meat/rawcutlet/plain/human/slice, reagents_per_slice) + ..() + slice.subjectname = subjectname + slice.subjectjob = subjectjob + if(subjectname) + slice.name = "raw [subjectname] cutlet" + else if(subjectjob) + slice.name = "raw [subjectjob] cutlet" + +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/initialize_cooked_food(obj/item/weapon/reagent_containers/food/snacks/meat/S, cooking_efficiency) + ..() + S.subjectname = subjectname + S.subjectjob = subjectjob + if(subjectname) + S.name = "[subjectname] meatsteak" + else if(subjectjob) + S.name = "[subjectjob] meatsteak" + + +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/slime + icon_state = "slimemeat" + desc = "Because jello wasn't offensive enough to vegans." + list_reagents = list("nutriment" = 3, "slimejelly" = 3) + filling_color = "#00FFFF" + +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/golem + icon_state = "golemmeat" + desc = "Edible rocks, welcome to the future." + list_reagents = list("nutriment" = 3, "iron" = 3) + filling_color = "#A9A9A9" + +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/golem/adamantine + icon_state = "agolemmeat" + desc = "From the slime pen to the rune to the kitchen, science." + filling_color = "#66CDAA" + +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard + icon_state = "lizardmeat" + desc = "Delicious dino damage" + filling_color = "#6B8E23" + +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/plant + icon_state = "plantmeat" + desc = "All the joys of healthy eating with all the fun of cannibalism." + filling_color = "#E9967A" + +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/shadow + icon_state = "shadowmeat" + desc = "Ow, the edge" + filling_color = "#202020" + +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/fly + icon_state = "flymeat" + desc = "Nothing says tasty like maggot filled radioactive mutant flesh." + list_reagents = list("nutriment" = 3, "uranium" = 3) + +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/skeleton + name = "-bone" + icon_state = "skeletonmeat" + desc = "There's a point where this needs to stop, and clearly we have passed it." + filling_color = "#F0F0F0" + slice_path = null //can't slice a bone into cutlets + +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/zombie + name = " meat (rotten)" + icon_state = "lizardmeat" //Close enough. + desc = "Halfway to becoming fertilizer for your garden." + filling_color = "#6B8E23" + + + + + + +////////////////////////////////////// OTHER MEATS //////////////////////////////////////////////////////// + + +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/synthmeat + name = "synthmeat" + desc = "A synthetic slab of meat." + +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/meatproduct + name = "meat product" + desc = "A slab of station reclaimed and chemically processed meat product." + +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/monkey + name = "monkey meat" + +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/corgi + name = "corgi meat" + desc = "Tastes like... well you know..." + +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/pug + name = "pug meat" + desc = "Tastes like... well you know..." + +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/killertomato + name = "killer tomato meat" + desc = "A slice from a huge tomato." + icon_state = "tomatomeat" + list_reagents = list("nutriment" = 2) + filling_color = "#FF0000" + cooked_type = /obj/item/weapon/reagent_containers/food/snacks/meat/steak/killertomato + slice_path = /obj/item/weapon/reagent_containers/food/snacks/meat/rawcutlet/killertomato + +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/bear + name = "bear meat" + desc = "A very manly slab of meat." + icon_state = "bearmeat" + list_reagents = list("nutriment" = 12, "morphine" = 5, "vitamin" = 2) + filling_color = "#FFB6C1" + cooked_type = /obj/item/weapon/reagent_containers/food/snacks/meat/steak/bear + slice_path = /obj/item/weapon/reagent_containers/food/snacks/meat/rawcutlet/bear + + +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/xeno + name = "xeno meat" + desc = "A slab of meat" + icon_state = "xenomeat" + list_reagents = list("nutriment" = 3, "vitamin" = 1) + bitesize = 4 + filling_color = "#32CD32" + cooked_type = /obj/item/weapon/reagent_containers/food/snacks/meat/steak/xeno + slice_path = /obj/item/weapon/reagent_containers/food/snacks/meat/rawcutlet/xeno + +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/spider + name = "spider meat" + desc = "A slab of spider meat." + icon_state = "spidermeat" + list_reagents = list("nutriment" = 3, "toxin" = 3, "vitamin" = 1) + filling_color = "#7CFC00" + cooked_type = /obj/item/weapon/reagent_containers/food/snacks/meat/steak/spider + slice_path = /obj/item/weapon/reagent_containers/food/snacks/meat/rawcutlet/spider + + +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/goliath + name = "goliath meat" + desc = "A slab of goliath meat. It's not very edible now, but it cooks great in lava." + list_reagents = list("nutriment" = 3, "toxin" = 5) + icon_state = "goliathmeat" + +/obj/item/weapon/reagent_containers/food/snacks/meat/slab/meatwheat + name = "meatwheat clump" + desc = "This doesn't look like meat, but your standards aren't that high to begin with." + list_reagents = list("nutriment" = 3, "vitamin" = 2, "blood" = 5) + filling_color = rgb(150, 0, 0) + icon_state = "meatwheat_clump" + bitesize = 4 + +/obj/item/weapon/reagent_containers/food/snacks/meat/rawbacon + name = "raw piece of bacon" + desc = "A raw piece of bacon." + icon_state = "bacon" + cooked_type = /obj/item/weapon/reagent_containers/food/snacks/meat/bacon + bitesize = 2 + list_reagents = list("nutriment" = 1) + filling_color = "#B22222" + +/obj/item/weapon/reagent_containers/food/snacks/meat/bacon + name = "piece of bacon" + desc = "A delicious piece of bacon." + icon_state = "baconcooked" + list_reagents = list("nutriment" = 2) + bonus_reagents = list("nutriment" = 1, "vitamin" = 1) + filling_color = "#854817" + +////////////////////////////////////// MEAT STEAKS /////////////////////////////////////////////////////////// + + +/obj/item/weapon/reagent_containers/food/snacks/meat/steak + name = "steak" + desc = "A piece of hot spicy meat." + icon_state = "meatsteak" + list_reagents = list("nutriment" = 5) + bonus_reagents = list("nutriment" = 2, "vitamin" = 1) + trash = /obj/item/trash/plate + filling_color = "#B22222" + +/obj/item/weapon/reagent_containers/food/snacks/meat/steak/plain + +/obj/item/weapon/reagent_containers/food/snacks/meat/steak/plain/human + +/obj/item/weapon/reagent_containers/food/snacks/meat/steak/killertomato + name = "killer tomato steak" + +/obj/item/weapon/reagent_containers/food/snacks/meat/steak/bear + name = "bear steak" + +/obj/item/weapon/reagent_containers/food/snacks/meat/steak/xeno + name = "xeno steak" + +/obj/item/weapon/reagent_containers/food/snacks/meat/steak/spider + name = "spider steak" + +/obj/item/weapon/reagent_containers/food/snacks/meat/steak/goliath + name = "goliath steak" + desc = "A delicious, lava cooked steak." + resistance_flags = LAVA_PROOF | FIRE_PROOF + icon_state = "goliathsteak" + trash = null + +//////////////////////////////// MEAT CUTLETS /////////////////////////////////////////////////////// + +//Raw cutlets + +/obj/item/weapon/reagent_containers/food/snacks/meat/rawcutlet + name = "raw cutlet" + desc = "A raw meat cutlet." + icon_state = "rawcutlet" + cooked_type = /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet/plain + bitesize = 2 + list_reagents = list("nutriment" = 1) + filling_color = "#B22222" + var/meat_type = "meat" + +/obj/item/weapon/reagent_containers/food/snacks/meat/rawcutlet/initialize_cooked_food(obj/item/weapon/reagent_containers/food/snacks/S, cooking_efficiency) + ..() + S.name = "[meat_type] cutlet" + + +/obj/item/weapon/reagent_containers/food/snacks/meat/rawcutlet/plain + +/obj/item/weapon/reagent_containers/food/snacks/meat/rawcutlet/plain/human + cooked_type = /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet/plain/human + +/obj/item/weapon/reagent_containers/food/snacks/meat/rawcutlet/plain/human/initialize_cooked_food(obj/item/weapon/reagent_containers/food/snacks/S, cooking_efficiency) + ..() + if(subjectname) + S.name = "[subjectname] [initial(S.name)]" + else if(subjectjob) + S.name = "[subjectjob] [initial(S.name)]" + +/obj/item/weapon/reagent_containers/food/snacks/meat/rawcutlet/killertomato + name = "raw killer tomato cutlet" + cooked_type = /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet/killertomato + +/obj/item/weapon/reagent_containers/food/snacks/meat/rawcutlet/bear + name = "raw bear cutlet" + cooked_type = /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet/bear + +/obj/item/weapon/reagent_containers/food/snacks/meat/rawcutlet/xeno + name = "raw xeno cutlet" + cooked_type = /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet/xeno + +/obj/item/weapon/reagent_containers/food/snacks/meat/rawcutlet/spider + name = "raw spider cutlet" + cooked_type = /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet/spider + +//Cooked cutlets + +/obj/item/weapon/reagent_containers/food/snacks/meat/cutlet + name = "cutlet" + desc = "A cooked meat cutlet." + icon_state = "cutlet" + bitesize = 2 + list_reagents = list("nutriment" = 2) + bonus_reagents = list("nutriment" = 1, "vitamin" = 1) + filling_color = "#B22222" + +/obj/item/weapon/reagent_containers/food/snacks/meat/cutlet/plain + +/obj/item/weapon/reagent_containers/food/snacks/meat/cutlet/plain/human + +/obj/item/weapon/reagent_containers/food/snacks/meat/cutlet/killertomato + name = "killer tomato cutlet" + +/obj/item/weapon/reagent_containers/food/snacks/meat/cutlet/bear + name = "bear cutlet" + +/obj/item/weapon/reagent_containers/food/snacks/meat/cutlet/xeno + name = "xeno cutlet" + +/obj/item/weapon/reagent_containers/food/snacks/meat/cutlet/spider + name = "spider cutlet" \ No newline at end of file diff --git a/code/modules/food_and_drinks/food/snacks_bread.dm b/code/modules/food_and_drinks/food/snacks_bread.dm new file mode 100644 index 0000000..8ff5e26 --- /dev/null +++ b/code/modules/food_and_drinks/food/snacks_bread.dm @@ -0,0 +1,149 @@ + +/obj/item/weapon/reagent_containers/food/snacks/store/bread + icon = 'icons/obj/food/burgerbread.dmi' + volume = 80 + slices_num = 5 + + +/obj/item/weapon/reagent_containers/food/snacks/breadslice + icon = 'icons/obj/food/burgerbread.dmi' + bitesize = 2 + custom_food_type = /obj/item/weapon/reagent_containers/food/snacks/customizable/sandwich + filling_color = "#FFA500" + list_reagents = list("nutriment" = 2) + slot_flags = SLOT_HEAD + customfoodfilling = 0 //to avoid infinite bread-ception + +/obj/item/weapon/reagent_containers/food/snacks/store/bread/plain + name = "bread" + desc = "Some plain old Earthen bread." + icon_state = "bread" + bonus_reagents = list("nutriment" = 7) + list_reagents = list("nutriment" = 10) + custom_food_type = /obj/item/weapon/reagent_containers/food/snacks/customizable/bread + slice_path = /obj/item/weapon/reagent_containers/food/snacks/breadslice/plain + +/obj/item/weapon/reagent_containers/food/snacks/breadslice/plain + name = "bread slice" + desc = "A slice of home." + icon_state = "breadslice" + customfoodfilling = 1 + +/obj/item/weapon/reagent_containers/food/snacks/store/bread/meat + name = "meatbread loaf" + desc = "The culinary base of every self-respecting eloquen/tg/entleman." + icon_state = "meatbread" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/breadslice/meat + bonus_reagents = list("nutriment" = 5, "vitamin" = 10) + list_reagents = list("nutriment" = 30, "vitamin" = 5) + +/obj/item/weapon/reagent_containers/food/snacks/breadslice/meat + name = "meatbread slice" + desc = "A slice of delicious meatbread." + icon_state = "meatbreadslice" + +/obj/item/weapon/reagent_containers/food/snacks/store/bread/xenomeat + name = "xenomeatbread loaf" + desc = "The culinary base of every self-respecting eloquen/tg/entleman. Extra Heretical." + icon_state = "xenomeatbread" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/breadslice/xenomeat + bonus_reagents = list("nutriment" = 5, "vitamin" = 10) + list_reagents = list("nutriment" = 30, "vitamin" = 5) + +/obj/item/weapon/reagent_containers/food/snacks/breadslice/xenomeat + name = "xenomeatbread slice" + desc = "A slice of delicious meatbread. Extra Heretical." + icon_state = "xenobreadslice" + filling_color = "#32CD32" + list_reagents = list("nutriment" = 6, "vitamin" = 1) + +/obj/item/weapon/reagent_containers/food/snacks/store/bread/spidermeat + name = "spider meat loaf" + desc = "Reassuringly green meatloaf made from spider meat." + icon_state = "spidermeatbread" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/breadslice/spidermeat + bonus_reagents = list("nutriment" = 5, "vitamin" = 10) + list_reagents = list("nutriment" = 30, "toxin" = 15, "vitamin" = 5) + +/obj/item/weapon/reagent_containers/food/snacks/breadslice/spidermeat + name = "spider meat bread slice" + desc = "A slice of meatloaf made from an animal that most likely still wants you dead." + icon_state = "xenobreadslice" + filling_color = "#7CFC00" + list_reagents = list("nutriment" = 6, "toxin" = 3, "vitamin" = 1) + +/obj/item/weapon/reagent_containers/food/snacks/store/bread/banana + name = "banana-nut bread" + desc = "A heavenly and filling treat." + icon_state = "bananabread" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/breadslice/banana + bonus_reagents = list("nutriment" = 5, "banana" = 20) + list_reagents = list("nutriment" = 20, "banana" = 20) + + +/obj/item/weapon/reagent_containers/food/snacks/breadslice/banana + name = "banana-nut bread slice" + desc = "A slice of delicious banana bread." + icon_state = "bananabreadslice" + filling_color = "#FFD700" + list_reagents = list("nutriment" = 4, "banana" = 4) + +/obj/item/weapon/reagent_containers/food/snacks/store/bread/tofu + name = "Tofubread" + desc = "Like meatbread but for vegetarians. Not guaranteed to give superpowers." + icon_state = "tofubread" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/breadslice/tofu + bonus_reagents = list("nutriment" = 5, "vitamin" = 10) + list_reagents = list("nutriment" = 20, "vitamin" = 5) + +/obj/item/weapon/reagent_containers/food/snacks/breadslice/tofu + name = "tofubread slice" + desc = "A slice of delicious tofubread." + icon_state = "tofubreadslice" + filling_color = "#FF8C00" + list_reagents = list("nutriment" = 4, "vitamin" = 1) + +/obj/item/weapon/reagent_containers/food/snacks/store/bread/creamcheese + name = "cream cheese bread" + desc = "Yum yum yum!" + icon_state = "creamcheesebread" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/breadslice/creamcheese + bonus_reagents = list("nutriment" = 5, "vitamin" = 5) + list_reagents = list("nutriment" = 20, "vitamin" = 5) + +/obj/item/weapon/reagent_containers/food/snacks/breadslice/creamcheese + name = "cream cheese bread slice" + desc = "A slice of yum!" + icon_state = "creamcheesebreadslice" + filling_color = "#FF8C00" + list_reagents = list("nutriment" = 4, "vitamin" = 1) + +/obj/item/weapon/reagent_containers/food/snacks/store/bread/mimana + name = "mimana bread" + desc = "Best eaten in silence." + icon_state = "mimanabread" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/breadslice/mimana + bonus_reagents = list("nutriment" = 5, "vitamin" = 5) + list_reagents = list("nutriment" = 20, "mutetoxin" = 5, "nothing" = 5, "vitamin" = 5) + +/obj/item/weapon/reagent_containers/food/snacks/breadslice/mimana + name = "mimana bread slice" + desc = "A slice of silence!" + icon_state = "mimanabreadslice" + filling_color = "#C0C0C0" + list_reagents = list("nutriment" = 2, "mutetoxin" = 1, "nothing" = 1, "vitamin" = 1) + +/obj/item/weapon/reagent_containers/food/snacks/breadslice/custom + name = "bread slice" + icon_state = "tofubreadslice" + filling_color = "#FFFFFF" + +/obj/item/weapon/reagent_containers/food/snacks/baguette + name = "baguette" + desc = "Bon appetit!" + icon = 'icons/obj/food/burgerbread.dmi' + icon_state = "baguette" + bonus_reagents = list("nutriment" = 2, "vitamin" = 2) + list_reagents = list("nutriment" = 6, "vitamin" = 1) + bitesize = 3 + w_class = 3 diff --git a/code/modules/food_and_drinks/food/snacks_burgers.dm b/code/modules/food_and_drinks/food/snacks_burgers.dm new file mode 100644 index 0000000..77e0468 --- /dev/null +++ b/code/modules/food_and_drinks/food/snacks_burgers.dm @@ -0,0 +1,211 @@ + +/obj/item/weapon/reagent_containers/food/snacks/burger + filling_color = "#CD853F" + icon = 'icons/obj/food/burgerbread.dmi' + icon_state = "hburger" + bitesize = 3 + list_reagents = list("nutriment" = 6, "vitamin" = 1) + +/obj/item/weapon/reagent_containers/food/snacks/burger/plain + name = "burger" + desc = "The cornerstone of every nutritious breakfast." + bonus_reagents = list("vitamin" = 1) + +/obj/item/weapon/reagent_containers/food/snacks/burger/human + var/subjectname = "" + var/subjectjob = null + name = "human burger" + desc = "A bloody burger." + bonus_reagents = list("vitamin" = 4) + +/obj/item/weapon/reagent_containers/food/snacks/burger/human/CheckParts(list/parts_list) + ..() + var/obj/item/weapon/reagent_containers/food/snacks/meat/M = locate(/obj/item/weapon/reagent_containers/food/snacks/meat/steak/plain/human) in contents + if(M) + subjectname = M.subjectname + subjectjob = M.subjectjob + if(subjectname) + name = "[subjectname] burger" + else if(subjectjob) + name = "[subjectjob] burger" + qdel(M) + + +/obj/item/weapon/reagent_containers/food/snacks/burger/corgi + name = "corgi burger" + desc = "You monster." + bonus_reagents = list("vitamin" = 1) + +/obj/item/weapon/reagent_containers/food/snacks/burger/appendix + name = "appendix burger" + desc = "Tastes like appendicitis." + bonus_reagents = list("nutriment" = 6, "vitamin" = 6) + icon_state = "appendixburger" + +/obj/item/weapon/reagent_containers/food/snacks/burger/fish + name = "fillet -o- carp sandwich" + desc = "Almost like a carp is yelling somewhere... Give me back that fillet -o- carp, give me that carp." + icon_state = "fishburger" + bonus_reagents = list("nutriment" = 2, "vitamin" = 3) + +/obj/item/weapon/reagent_containers/food/snacks/burger/tofu + name = "tofu burger" + desc = "What.. is that meat?" + icon_state = "tofuburger" + bonus_reagents = list("nutriment" = 2, "vitamin" = 2) + +/obj/item/weapon/reagent_containers/food/snacks/burger/roburger + name = "roburger" + desc = "The lettuce is the only organic component. Beep." + icon_state = "roburger" + bonus_reagents = list("nutriment" = 2, "nanomachines" = 2, "vitamin" = 5) + list_reagents = list("nutriment" = 6, "nanomachines" = 5, "vitamin" = 1) + +/obj/item/weapon/reagent_containers/food/snacks/burger/roburgerbig + name = "roburger" + desc = "This massive patty looks like poison. Beep." + icon_state = "roburger" + volume = 120 + bonus_reagents = list("nutriment" = 5, "nanomachines" = 70, "vitamin" = 10) + list_reagents = list("nutriment" = 6, "nanomachines" = 70, "vitamin" = 5) + +/obj/item/weapon/reagent_containers/food/snacks/burger/xeno + name = "xenoburger" + desc = "Smells caustic. Tastes like heresy." + icon_state = "xburger" + bonus_reagents = list("nutriment" = 2, "vitamin" = 6) + +/obj/item/weapon/reagent_containers/food/snacks/burger/bearger + name = "bearger" + desc = "Best served rawr." + icon_state = "bearger" + bonus_reagents = list("nutriment" = 3, "vitamin" = 6) + +/obj/item/weapon/reagent_containers/food/snacks/burger/clown + name = "clown burger" + desc = "This tastes funny..." + icon_state = "clownburger" + bonus_reagents = list("nutriment" = 4, "vitamin" = 6, "banana" = 6) + +/obj/item/weapon/reagent_containers/food/snacks/burger/mime + name = "mime burger" + desc = "Its taste defies language." + icon_state = "mimeburger" + bonus_reagents = list("nutriment" = 4, "vitamin" = 6, "nothing" = 6) + +/obj/item/weapon/reagent_containers/food/snacks/burger/brain + name = "brainburger" + desc = "A strange looking burger. It looks almost sentient." + icon_state = "brainburger" + bonus_reagents = list("nutriment" = 6, "mannitol" = 6, "vitamin" = 5) + list_reagents = list("nutriment" = 6, "mannitol" = 5, "vitamin" = 1) + +/obj/item/weapon/reagent_containers/food/snacks/burger/ghost + name = "ghost burger" + desc = "Too Spooky!" + alpha = 125 + bonus_reagents = list("nutriment" = 5, "vitamin" = 12) + +/obj/item/weapon/reagent_containers/food/snacks/burger/red + name = "red burger" + desc = "Perfect for hiding the fact it's burnt to a crisp." + icon_state = "cburger" + color = "#DA0000FF" + bonus_reagents = list("redcrayonpowder" = 10, "vitamin" = 5) + +/obj/item/weapon/reagent_containers/food/snacks/burger/orange + name = "orange burger" + desc = "Contains 0% juice." + icon_state = "cburger" + color = "#FF9300FF" + bonus_reagents = list("orangecrayonpowder" = 10, "vitamin" = 5) + +/obj/item/weapon/reagent_containers/food/snacks/burger/yellow + name = "yellow burger" + desc = "Bright to the last bite." + icon_state = "cburger" + color = "#FFF200FF" + bonus_reagents = list("yellowcrayonpowder" = 10, "vitamin" = 5) + +/obj/item/weapon/reagent_containers/food/snacks/burger/green + name = "green burger" + desc = "It's not tainted meat, it's painted meat!" + icon_state = "cburger" + color = "#A8E61DFF" + bonus_reagents = list("greencrayonpowder" = 10, "vitamin" = 5) + +/obj/item/weapon/reagent_containers/food/snacks/burger/blue + name = "blue burger" + desc = "Is this blue rare?" + icon_state = "cburger" + color = "#00B7EFFF" + bonus_reagents = list("bluecrayonpowder" = 10, "vitamin" = 5) + +/obj/item/weapon/reagent_containers/food/snacks/burger/purple + name = "purple burger" + desc = "Regal and low class at the same time." + icon_state = "cburger" + color = "#DA00FFFF" + bonus_reagents = list("purplecrayonpowder" = 10, "vitamin" = 5) + +/obj/item/weapon/reagent_containers/food/snacks/burger/spell + name = "spell burger" + desc = "This is absolutely Ei Nath." + icon_state = "spellburger" + bonus_reagents = list("nutriment" = 6, "vitamin" = 10) + +/obj/item/weapon/reagent_containers/food/snacks/burger/bigbite + name = "big bite burger" + desc = "Forget the Big Mac. THIS is the future!" + icon_state = "bigbiteburger" + bonus_reagents = list("vitamin" = 6) + list_reagents = list("nutriment" = 10, "vitamin" = 2) + w_class = 3 + +/obj/item/weapon/reagent_containers/food/snacks/burger/jelly + name = "jelly burger" + desc = "Culinary delight..?" + icon_state = "jellyburger" + +/obj/item/weapon/reagent_containers/food/snacks/burger/jelly/slime + bonus_reagents = list("slimejelly" = 5, "vitamin" = 5) + list_reagents = list("nutriment" = 6, "slimejelly" = 5, "vitamin" = 1) + +/obj/item/weapon/reagent_containers/food/snacks/burger/jelly/cherry + bonus_reagents = list("cherryjelly" = 5, "vitamin" = 5) + list_reagents = list("nutriment" = 6, "cherryjelly" = 5, "vitamin" = 1) + +/obj/item/weapon/reagent_containers/food/snacks/burger/superbite + name = "super bite burger" + desc = "This is a mountain of a burger. FOOD!" + icon_state = "superbiteburger" + bonus_reagents = list("vitamin" = 10) + list_reagents = list("nutriment" = 40, "vitamin" = 5) + w_class = 3 + bitesize = 7 + volume = 100 + +/obj/item/weapon/reagent_containers/food/snacks/burger/fivealarm + name = "five alarm burger" + desc = "HOT! HOT!" + icon_state = "fivealarmburger" + bonus_reagents = list("nutriment" = 2, "vitamin" = 5) + list_reagents = list("nutriment" = 6, "capsaicin" = 5, "condensedcapsaicin" = 5, "vitamin" = 1) + +/obj/item/weapon/reagent_containers/food/snacks/burger/rat + name = "rat burger" + desc = "Pretty much what you'd expect..." + icon_state = "ratburger" + bonus_reagents = list("nutriment" = 1, "vitamin" = 1) + +/obj/item/weapon/reagent_containers/food/snacks/burger/baseball + name = "home run baseball burger" + desc = "It's still warm. The steam coming off of it looks like baseball." + icon_state = "baseball" + bonus_reagents = list("nutriment" = 1, "vitamin" = 1) + +/obj/item/weapon/reagent_containers/food/snacks/burger/baconburger + name = "bacon burger" + desc = "The perfect combination of all things American." + icon_state = "baconburger" + bonus_reagents = list("nutriment" = 8, "vitamin" = 1) diff --git a/code/modules/food_and_drinks/food/snacks_cake.dm b/code/modules/food_and_drinks/food/snacks_cake.dm new file mode 100644 index 0000000..0d28706 --- /dev/null +++ b/code/modules/food_and_drinks/food/snacks_cake.dm @@ -0,0 +1,201 @@ + +/obj/item/weapon/reagent_containers/food/snacks/store/cake + icon = 'icons/obj/food/piecake.dmi' + slice_path = /obj/item/weapon/reagent_containers/food/snacks/cakeslice/plain + slices_num = 5 + bitesize = 3 + volume = 80 + list_reagents = list("nutriment" = 20, "vitamin" = 5) + +/obj/item/weapon/reagent_containers/food/snacks/cakeslice + icon = 'icons/obj/food/piecake.dmi' + trash = /obj/item/trash/plate + list_reagents = list("nutriment" = 4, "vitamin" = 1) + customfoodfilling = 0 //to avoid infinite cake-ception + +/obj/item/weapon/reagent_containers/food/snacks/store/cake/plain + name = "vanilla cake" + desc = "A plain cake, not a lie." + icon_state = "plaincake" + custom_food_type = /obj/item/weapon/reagent_containers/food/snacks/customizable/cake + bonus_reagents = list("nutriment" = 10, "vitamin" = 2) + +/obj/item/weapon/reagent_containers/food/snacks/cakeslice/plain + name = "vanilla cake slice" + desc = "Just a slice of cake, it is enough for everyone." + icon_state = "plaincake_slice" + filling_color = "#FFD700" + customfoodfilling = 1 + +/obj/item/weapon/reagent_containers/food/snacks/store/cake/carrot + name = "carrot cake" + desc = "A favorite desert of a certain wascally wabbit. Not a lie." + icon_state = "carrotcake" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/cakeslice/carrot + slices_num = 5 + bonus_reagents = list("nutriment" = 3, "oculine" = 5, "vitamin" = 10) + list_reagents = list("nutriment" = 20, "oculine" = 10, "vitamin" = 5) + +/obj/item/weapon/reagent_containers/food/snacks/cakeslice/carrot + name = "carrot cake slice" + desc = "Carrotty slice of Carrot Cake, carrots are good for your eyes! Also not a lie." + icon_state = "carrotcake_slice" + filling_color = "#FFA500" + list_reagents = list("nutriment" = 4, "oculine" = 2, "vitamin" = 1) + + +/obj/item/weapon/reagent_containers/food/snacks/store/cake/brain + name = "brain cake" + desc = "A squishy cake-thing." + icon_state = "braincake" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/cakeslice/brain + slices_num = 5 + bonus_reagents = list("nutriment" = 5, "mannitol" = 10, "vitamin" = 10) + list_reagents = list("nutriment" = 20, "mannitol" = 10, "vitamin" = 5) + + +/obj/item/weapon/reagent_containers/food/snacks/cakeslice/brain + name = "brain cake slice" + desc = "Lemme tell you something about prions. THEY'RE DELICIOUS." + icon_state = "braincakeslice" + filling_color = "#FF69B4" + list_reagents = list("nutriment" = 4, "mannitol" = 2, "vitamin" = 1) + +/obj/item/weapon/reagent_containers/food/snacks/store/cake/cheese + name = "cheese cake" + desc = "DANGEROUSLY cheesy." + icon_state = "cheesecake" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/cakeslice/cheese + slices_num = 5 + bonus_reagents = list("vitamin" = 10) + + +/obj/item/weapon/reagent_containers/food/snacks/cakeslice/cheese + name = "cheese cake slice" + desc = "Slice of pure cheestisfaction." + icon_state = "cheesecake_slice" + filling_color = "#FFFACD" + + +/obj/item/weapon/reagent_containers/food/snacks/store/cake/orange + name = "orange cake" + desc = "A cake with added orange." + icon_state = "orangecake" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/cakeslice/orange + slices_num = 5 + bonus_reagents = list("nutriment" = 3, "vitamin" = 10) + +/obj/item/weapon/reagent_containers/food/snacks/cakeslice/orange + name = "orange cake slice" + desc = "Just a slice of cake, it is enough for everyone." + icon_state = "orangecake_slice" + filling_color = "#FFA500" + +/obj/item/weapon/reagent_containers/food/snacks/store/cake/lime + name = "lime cake" + desc = "A cake with added lime." + icon_state = "limecake" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/cakeslice/lime + slices_num = 5 + bonus_reagents = list("nutriment" = 3, "vitamin" = 10) + +/obj/item/weapon/reagent_containers/food/snacks/cakeslice/lime + name = "lime cake slice" + desc = "Just a slice of cake, it is enough for everyone." + icon_state = "limecake_slice" + filling_color = "#00FF00" + + +/obj/item/weapon/reagent_containers/food/snacks/store/cake/lemon + name = "lemon cake" + desc = "A cake with added lemon." + icon_state = "lemoncake" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/cakeslice/lemon + slices_num = 5 + bonus_reagents = list("nutriment" = 3, "vitamin" = 10) + + +/obj/item/weapon/reagent_containers/food/snacks/cakeslice/lemon + name = "lemon cake slice" + desc = "Just a slice of cake, it is enough for everyone." + icon_state = "lemoncake_slice" + filling_color = "#FFEE00" + + +/obj/item/weapon/reagent_containers/food/snacks/store/cake/chocolate + name = "chocolate cake" + desc = "A cake with added chocolate." + icon_state = "chocolatecake" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/cakeslice/chocolate + slices_num = 5 + bonus_reagents = list("nutriment" = 3, "vitamin" = 10) + + +/obj/item/weapon/reagent_containers/food/snacks/cakeslice/chocolate + name = "chocolate cake slice" + desc = "Just a slice of cake, it is enough for everyone." + icon_state = "chocolatecake_slice" + filling_color = "#A0522D" + + +/obj/item/weapon/reagent_containers/food/snacks/store/cake/birthday + name = "birthday cake" + desc = "Happy Birthday little clown..." + icon_state = "birthdaycake" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/cakeslice/birthday + slices_num = 5 + bonus_reagents = list("nutriment" = 7, "sprinkles" = 10, "vitamin" = 5) + list_reagents = list("nutriment" = 20, "sprinkles" = 10, "vitamin" = 5) + +/obj/item/weapon/reagent_containers/food/snacks/cakeslice/birthday + name = "birthday cake slice" + desc = "A slice of your birthday." + icon_state = "birthdaycakeslice" + filling_color = "#DC143C" + list_reagents = list("nutriment" = 4, "sprinkles" = 2, "vitamin" = 1) + + +/obj/item/weapon/reagent_containers/food/snacks/store/cake/apple + name = "apple cake" + desc = "A cake centred with Apple." + icon_state = "applecake" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/cakeslice/apple + slices_num = 5 + bonus_reagents = list("nutriment" = 3, "vitamin" = 10) + +/obj/item/weapon/reagent_containers/food/snacks/cakeslice/apple + name = "apple cake slice" + desc = "A slice of heavenly cake." + icon_state = "applecakeslice" + filling_color = "#FF4500" + +/obj/item/weapon/reagent_containers/food/snacks/cakeslice/custom + name = "cake slice" + icon_state = "plaincake_slice" + filling_color = "#FFFFFF" + +/obj/item/weapon/reagent_containers/food/snacks/store/cake/slimecake + name = "Slime cake" + desc = "A cake made of slimes. Probably not electrified." + icon_state = "slimecake" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/cakeslice/slimecake + bonus_reagents = list("nutriment" = 1, "vitamin" = 3) + +/obj/item/weapon/reagent_containers/food/snacks/cakeslice/slimecake + name = "slime cake slice" + desc = "A slice of slime cake." + icon_state = "slimecake_slice" + filling_color = "#00FFFF" + +/obj/item/weapon/reagent_containers/food/snacks/store/cake/pumpkinspice + name = "pumpkin spice cake" + desc = "A hollow cake with real pumpkin." + icon_state = "pumpkinspicecake" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/cakeslice/pumpkinspice + bonus_reagents = list("nutriment" = 3, "vitamin" = 5) + +/obj/item/weapon/reagent_containers/food/snacks/cakeslice/pumpkinspice + name = "pumpkin spice cake slice" + desc = "A spicy slice of pumpkin goodness." + icon_state = "pumpkinspicecakeslice" + filling_color = "#FFD700" \ No newline at end of file diff --git a/code/modules/food_and_drinks/food/snacks_egg.dm b/code/modules/food_and_drinks/food/snacks_egg.dm new file mode 100644 index 0000000..5f481bb --- /dev/null +++ b/code/modules/food_and_drinks/food/snacks_egg.dm @@ -0,0 +1,126 @@ + +////////////////////////////////////////////EGGS//////////////////////////////////////////// + +/obj/item/weapon/reagent_containers/food/snacks/chocolateegg + name = "chocolate egg" + desc = "Such, sweet, fattening food." + icon_state = "chocolateegg" + bonus_reagents = list("nutriment" = 1, "vitamin" = 1) + list_reagents = list("nutriment" = 4, "sugar" = 2, "cocoa" = 2) + filling_color = "#A0522D" + +/obj/item/weapon/reagent_containers/food/snacks/egg + name = "egg" + desc = "An egg!" + icon_state = "egg" + list_reagents = list("nutriment" = 1) + cooked_type = /obj/item/weapon/reagent_containers/food/snacks/boiledegg + filling_color = "#F0E68C" + +/obj/item/weapon/reagent_containers/food/snacks/egg/throw_impact(atom/hit_atom) + if(!..()) //was it caught by a mob? + var/turf/T = get_turf(hit_atom) + new/obj/effect/decal/cleanable/egg_smudge(T) + reagents.reaction(hit_atom, TOUCH) + qdel(src) + +/obj/item/weapon/reagent_containers/food/snacks/egg/attackby(obj/item/weapon/W, mob/user, params) + if(istype( W, /obj/item/toy/crayon )) + var/obj/item/toy/crayon/C = W + var/clr = C.item_color + + if(!(clr in list("blue", "green", "mime", "orange", "purple", "rainbow", "red", "yellow"))) + usr << "[src] refuses to take on this colour!" + return + + usr << "You colour [src] [clr]." + icon_state = "egg-[clr]" + item_color = clr + else + ..() + +/obj/item/weapon/reagent_containers/food/snacks/egg/blue + icon_state = "egg-blue" + item_color = "blue" + +/obj/item/weapon/reagent_containers/food/snacks/egg/green + icon_state = "egg-green" + item_color = "green" + +/obj/item/weapon/reagent_containers/food/snacks/egg/mime + icon_state = "egg-mime" + item_color = "mime" + +/obj/item/weapon/reagent_containers/food/snacks/egg/orange + icon_state = "egg-orange" + item_color = "orange" + +/obj/item/weapon/reagent_containers/food/snacks/egg/purple + icon_state = "egg-purple" + item_color = "purple" + +/obj/item/weapon/reagent_containers/food/snacks/egg/rainbow + icon_state = "egg-rainbow" + item_color = "rainbow" + +/obj/item/weapon/reagent_containers/food/snacks/egg/red + icon_state = "egg-red" + item_color = "red" + +/obj/item/weapon/reagent_containers/food/snacks/egg/yellow + icon_state = "egg-yellow" + item_color = "yellow" + +/obj/item/weapon/reagent_containers/food/snacks/friedegg + name = "fried egg" + desc = "A fried egg, with a touch of salt and pepper." + icon_state = "friedegg" + bonus_reagents = list("nutriment" = 1, "vitamin" = 1) + bitesize = 1 + filling_color = "#FFFFF0" + list_reagents = list("nutriment" = 3) + +/obj/item/weapon/reagent_containers/food/snacks/boiledegg + name = "boiled egg" + desc = "A hard boiled egg." + icon_state = "egg" + bonus_reagents = list("nutriment" = 1, "vitamin" = 1) + filling_color = "#FFFFF0" + list_reagents = list("nutriment" = 2, "vitamin" = 1) + +/obj/item/weapon/reagent_containers/food/snacks/omelette //FUCK THIS + name = "omelette du fromage" + desc = "That's all you can say!" + icon_state = "omelette" + trash = /obj/item/trash/plate + bonus_reagents = list("nutriment" = 1, "vitamin" = 2) + list_reagents = list("nutriment" = 8, "vitamin" = 1) + bitesize = 1 + w_class = 3 + +/obj/item/weapon/reagent_containers/food/snacks/omelette/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W,/obj/item/weapon/kitchen/fork)) + var/obj/item/weapon/kitchen/fork/F = W + if(F.forkload) + user << "You already have omelette on your fork!" + else + F.icon_state = "forkloaded" + user.visible_message("[user] takes a piece of omelette with their fork!", \ + "You take a piece of omelette with your fork.") + + var/datum/reagent/R = pick(reagents.reagent_list) + reagents.remove_reagent(R.id, 1) + F.forkload = R + if(reagents.total_volume <= 0) + qdel(src) + return + ..() + +/obj/item/weapon/reagent_containers/food/snacks/benedict + name = "eggs benedict" + desc = "There is only one egg on this, how rude." + icon_state = "benedict" + bonus_reagents = list("vitamin" = 4) + trash = /obj/item/trash/plate + w_class = 3 + list_reagents = list("nutriment" = 6, "vitamin" = 4) \ No newline at end of file diff --git a/code/modules/food_and_drinks/food/snacks_meat.dm b/code/modules/food_and_drinks/food/snacks_meat.dm new file mode 100644 index 0000000..7564ded --- /dev/null +++ b/code/modules/food_and_drinks/food/snacks_meat.dm @@ -0,0 +1,224 @@ +//Not only meat, actually, but also snacks that are almost meat, such as fish meat or tofu + + +////////////////////////////////////////////FISH//////////////////////////////////////////// + +/obj/item/weapon/reagent_containers/food/snacks/cubancarp + name = "\improper Cuban carp" + desc = "A grifftastic sandwich that burns your tongue and then leaves it numb!" + icon_state = "cubancarp" + trash = /obj/item/trash/plate + bonus_reagents = list("nutriment" = 1, "vitamin" = 4) + bitesize = 3 + filling_color = "#CD853F" + list_reagents = list("nutriment" = 6, "capsaicin" = 1) + +/obj/item/weapon/reagent_containers/food/snacks/carpmeat + name = "carp fillet" + desc = "A fillet of spess carp meat." + icon_state = "fishfillet" + list_reagents = list("nutriment" = 3, "carpotoxin" = 2, "vitamin" = 2) + bitesize = 6 + filling_color = "#FA8072" + +/obj/item/weapon/reagent_containers/food/snacks/carpmeat/New() + ..() + eatverb = pick("bite","chew","choke down","gnaw","swallow","chomp") + +/obj/item/weapon/reagent_containers/food/snacks/carpmeat/imitation + name = "imitation carp fillet" + desc = "Almost just like the real thing, kinda." + +/obj/item/weapon/reagent_containers/food/snacks/fishfingers + name = "fish fingers" + desc = "A finger of fish." + icon_state = "fishfingers" + bonus_reagents = list("nutriment" = 1, "vitamin" = 2) + list_reagents = list("nutriment" = 4) + bitesize = 1 + filling_color = "#CD853F" + +/obj/item/weapon/reagent_containers/food/snacks/fishandchips + name = "fish and chips" + desc = "I do say so myself chap." + icon_state = "fishandchips" + bonus_reagents = list("nutriment" = 1, "vitamin" = 2) + list_reagents = list("nutriment" = 6) + filling_color = "#FA8072" + +////////////////////////////////////////////MEATS AND ALIKE//////////////////////////////////////////// + +/obj/item/weapon/reagent_containers/food/snacks/tofu + name = "tofu" + desc = "We all love tofu." + icon_state = "tofu" + list_reagents = list("nutriment" = 2) + filling_color = "#F0E68C" + +/obj/item/weapon/reagent_containers/food/snacks/spiderleg + name = "spider leg" + desc = "A still twitching leg of a giant spider... you don't really want to eat this, do you?" + icon_state = "spiderleg" + list_reagents = list("nutriment" = 2, "toxin" = 2) + cooked_type = /obj/item/weapon/reagent_containers/food/snacks/boiledspiderleg + filling_color = "#000000" + +/obj/item/weapon/reagent_containers/food/snacks/cornedbeef + name = "corned beef and cabbage" + desc = "Now you can feel like a real tourist vacationing in Ireland." + icon_state = "cornedbeef" + trash = /obj/item/trash/plate + bonus_reagents = list("nutriment" = 1, "vitamin" = 4) + list_reagents = list("nutriment" = 5) + +/obj/item/weapon/reagent_containers/food/snacks/bearsteak + name = "Filet migrawr" + desc = "Because eating bear wasn't manly enough." + icon_state = "bearsteak" + trash = /obj/item/trash/plate + bonus_reagents = list("nutriment" = 2, "vitamin" = 6) + list_reagents = list("nutriment" = 2, "vitamin" = 5, "manlydorf" = 5) + +/obj/item/weapon/reagent_containers/food/snacks/faggot + name = "faggot" + desc = "A great meal all round. Not a cord of wood." + icon_state = "faggot" + list_reagents = list("nutriment" = 4, "vitamin" = 1) + filling_color = "#800000" + +/obj/item/weapon/reagent_containers/food/snacks/sausage + name = "sausage" + desc = "A piece of mixed, long meat." + icon_state = "sausage" + filling_color = "#CD5C5C" + bonus_reagents = list("nutriment" = 1, "vitamin" = 1) + list_reagents = list("nutriment" = 6, "vitamin" = 1) + +/obj/item/weapon/reagent_containers/food/snacks/sausage/New() + ..() + eatverb = pick("bite","chew","nibble","deep throat","gobble","chomp") + +/obj/item/weapon/reagent_containers/food/snacks/kebab + trash = /obj/item/stack/rods + icon_state = "kebab" + w_class = 3 + list_reagents = list("nutriment" = 8) + +/obj/item/weapon/reagent_containers/food/snacks/kebab/human + name = "human-kebab" + desc = "A human meat, on a stick." + bonus_reagents = list("nutriment" = 1, "vitamin" = 6) + +/obj/item/weapon/reagent_containers/food/snacks/kebab/monkey + name = "meat-kebab" + desc = "Delicious meat, on a stick." + bonus_reagents = list("nutriment" = 1, "vitamin" = 2) + +/obj/item/weapon/reagent_containers/food/snacks/kebab/tofu + name = "tofu-kebab" + desc = "Vegan meat, on a stick." + bonus_reagents = list("nutriment" = 1) + +/obj/item/weapon/reagent_containers/food/snacks/kebab/tail + name = "lizard-tail kebab" + desc = "Severed lizard tail on a stick." + bonus_reagents = list("nutriment" = 1, "vitamin" = 4) + +/obj/item/weapon/reagent_containers/food/snacks/rawkhinkali + name = "raw khinkali" + desc = "One hundred khinkalis? Do I look like a pig?" + icon_state = "khinkali" + list_reagents = list("nutriment" = 1, "vitamin" = 1) + cooked_type = /obj/item/weapon/reagent_containers/food/snacks/khinkali + +/obj/item/weapon/reagent_containers/food/snacks/khinkali + name = "khinkali" + desc = "One hundred khinkalis? Do I look like a pig?" + icon_state = "khinkali" + list_reagents = list("nutriment" = 4, "vitamin" = 2) + bitesize = 3 + filling_color = "#F0F0F0" + +/obj/item/weapon/reagent_containers/food/snacks/monkeycube + name = "monkey cube" + desc = "Just add water!" + icon_state = "monkeycube" + bitesize = 12 + list_reagents = list("nutriment" = 2) + filling_color = "#CD853F" + +/obj/item/weapon/reagent_containers/food/snacks/monkeycube/proc/Expand() + visible_message("[src] expands!") + new /mob/living/carbon/monkey(get_turf(src)) + qdel(src) + +/obj/item/weapon/reagent_containers/food/snacks/enchiladas + name = "enchiladas" + desc = "Viva La Mexico!" + icon_state = "enchiladas" + bonus_reagents = list("nutriment" = 1, "vitamin" = 2) + bitesize = 4 + filling_color = "#FFA07A" + list_reagents = list("nutriment" = 8, "capsaicin" = 6) + +/obj/item/weapon/reagent_containers/food/snacks/stewedsoymeat + name = "stewed soy meat" + desc = "Even non-vegetarians will LOVE this!" + icon_state = "stewedsoymeat" + trash = /obj/item/trash/plate + bonus_reagents = list("nutriment" = 1) + list_reagents = list("nutriment" = 8) + filling_color = "#D2691E" + +/obj/item/weapon/reagent_containers/food/snacks/stewedsoymeat/New() + ..() + eatverb = pick("slurp","sip","suck","inhale","drink") + +/obj/item/weapon/reagent_containers/food/snacks/boiledspiderleg + name = "boiled spider leg" + desc = "A giant spider's leg that's still twitching after being cooked. Gross!" + icon_state = "spiderlegcooked" + trash = /obj/item/trash/plate + bonus_reagents = list("nutriment" = 1, "capsaicin" = 2, "vitamin" = 2) + list_reagents = list("nutriment" = 3, "capsaicin" = 2) + filling_color = "#000000" + +/obj/item/weapon/reagent_containers/food/snacks/spidereggsham + name = "green eggs and ham" + desc = "Would you eat them on a train? Would you eat them on a plane? Would you eat them on a state of the art corporate deathtrap floating through space?" + icon_state = "spidereggsham" + trash = /obj/item/trash/plate + bonus_reagents = list("nutriment" = 1, "vitamin" = 3) + list_reagents = list("nutriment" = 6) + bitesize = 4 + filling_color = "#7FFF00" + +/obj/item/weapon/reagent_containers/food/snacks/sashimi + name = "carp sashimi" + desc = "Celebrate surviving attack from hostile alien lifeforms by hospitalising yourself." + icon_state = "sashimi" + bonus_reagents = list("nutriment" = 1, "capsaicin" = 4, "vitamin" = 4) + list_reagents = list("nutriment" = 6, "capsaicin" = 5) + filling_color = "#FA8072" + +#define LUMP "lump" +#define STAR "star" +#define LIZARD "lizard" +#define CORGI "corgi" + +/obj/item/weapon/reagent_containers/food/snacks/nugget + name = "chicken nugget" + filling_color = "#B22222" + bonus_reagents = list("nutriment" = 1, "vitamin" = 1) + list_reagents = list("nutriment" = 2) + +/obj/item/weapon/reagent_containers/food/snacks/nugget/New() + ..() + var/shape = pick(LUMP, STAR, LIZARD, CORGI) + desc = "A 'chicken' nugget vaguely shaped like a [shape]." + icon_state = "nugget_[shape]" + +#undef LUMP +#undef STAR +#undef LIZARD +#undef CORGI \ No newline at end of file diff --git a/code/modules/food_and_drinks/food/snacks_other.dm b/code/modules/food_and_drinks/food/snacks_other.dm new file mode 100644 index 0000000..93803d6 --- /dev/null +++ b/code/modules/food_and_drinks/food/snacks_other.dm @@ -0,0 +1,334 @@ + +////////////////////////////////////////////OTHER//////////////////////////////////////////// + +/obj/item/weapon/reagent_containers/food/snacks/store/cheesewheel + name = "cheese wheel" + desc = "A big wheel of delcious Cheddar." + icon_state = "cheesewheel" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/cheesewedge + slices_num = 5 + list_reagents = list("nutriment" = 15, "vitamin" = 5) + w_class = 3 + +/obj/item/weapon/reagent_containers/food/snacks/cheesewedge + name = "cheese wedge" + desc = "A wedge of delicious Cheddar. The cheese wheel it was cut from can't have gone far." + icon_state = "cheesewedge" + filling_color = "#FFD700" + list_reagents = list("nutriment" = 3, "vitamin" = 1) + +/obj/item/weapon/reagent_containers/food/snacks/watermelonslice + name = "watermelon slice" + desc = "A slice of watery goodness." + icon_state = "watermelonslice" + filling_color = "#FF1493" + +/obj/item/weapon/reagent_containers/food/snacks/candy_corn + name = "candy corn" + desc = "It's a handful of candy corn. Can be stored in a detective's hat." + icon_state = "candy_corn" + list_reagents = list("nutriment" = 4, "sugar" = 2) + filling_color = "#FF8C00" + +/obj/item/weapon/reagent_containers/food/snacks/chocolatebar + name = "chocolate bar" + desc = "Such, sweet, fattening food." + icon_state = "chocolatebar" + list_reagents = list("nutriment" = 2, "sugar" = 2, "cocoa" = 2) + filling_color = "#A0522D" + +/obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice + name = "huge mushroom slice" + desc = "A slice from a huge mushroom." + icon_state = "hugemushroomslice" + list_reagents = list("nutriment" = 3, "vitamin" = 1) + +/obj/item/weapon/reagent_containers/food/snacks/popcorn + name = "popcorn" + desc = "Now let's find some cinema." + icon_state = "popcorn" + trash = /obj/item/trash/popcorn + list_reagents = list("nutriment" = 2) + bitesize = 0.1 //this snack is supposed to be eating during looooong time. And this it not dinner food! --rastaf0 + filling_color = "#FFEFD5" + +/obj/item/weapon/reagent_containers/food/snacks/popcorn/New() + ..() + eatverb = pick("bite","crunch","nibble","gnaw","gobble","chomp") + +/obj/item/weapon/reagent_containers/food/snacks/loadedbakedpotato + name = "loaded baked potato" + desc = "Totally baked." + icon_state = "loadedbakedpotato" + bonus_reagents = list("nutriment" = 1, "vitamin" = 2) + list_reagents = list("nutriment" = 6) + filling_color = "#D2B48C" + +/obj/item/weapon/reagent_containers/food/snacks/fries + name = "space fries" + desc = "AKA: French Fries, Freedom Fries, etc." + icon_state = "fries" + trash = /obj/item/trash/plate + list_reagents = list("nutriment" = 4) + filling_color = "#FFD700" + +/obj/item/weapon/reagent_containers/food/snacks/soydope + name = "soy dope" + desc = "Dope from a soy." + icon_state = "soydope" + trash = /obj/item/trash/plate + list_reagents = list("nutriment" = 2) + filling_color = "#DEB887" + +/obj/item/weapon/reagent_containers/food/snacks/cheesyfries + name = "cheesy fries" + desc = "Fries. Covered in cheese. Duh." + icon_state = "cheesyfries" + trash = /obj/item/trash/plate + bonus_reagents = list("nutriment" = 1, "vitamin" = 2) + list_reagents = list("nutriment" = 6) + filling_color = "#FFD700" + +/obj/item/weapon/reagent_containers/food/snacks/badrecipe + name = "burned mess" + desc = "Someone should be demoted from cook for this." + icon_state = "badrecipe" + list_reagents = list("????" = 30) + filling_color = "#8B4513" + +/obj/item/weapon/reagent_containers/food/snacks/carrotfries + name = "carrot fries" + desc = "Tasty fries from fresh Carrots." + icon_state = "carrotfries" + trash = /obj/item/trash/plate + list_reagents = list("nutriment" = 3, "oculine" = 3, "vitamin" = 2) + filling_color = "#FFA500" + +/obj/item/weapon/reagent_containers/food/snacks/candiedapple + name = "candied apple" + desc = "An apple coated in sugary sweetness." + icon_state = "candiedapple" + bitesize = 3 + bonus_reagents = list("nutriment" = 2, "sugar" = 3) + list_reagents = list("nutriment" = 3, "sugar" = 2) + filling_color = "#FF4500" + +/obj/item/weapon/reagent_containers/food/snacks/mint + name = "mint" + desc = "it is only wafer thin." + icon_state = "mint" + bitesize = 1 + trash = /obj/item/trash/plate + list_reagents = list("minttoxin" = 1) + filling_color = "#800000" + +/obj/item/weapon/reagent_containers/food/snacks/eggwrap + name = "egg wrap" + desc = "The precursor to Pigs in a Blanket." + icon_state = "eggwrap" + bonus_reagents = list("nutriment" = 1, "vitamin" = 3) + list_reagents = list("nutriment" = 5) + filling_color = "#F0E68C" + +/obj/item/weapon/reagent_containers/food/snacks/beans + name = "tin of beans" + desc = "Musical fruit in a slightly less musical container." + icon_state = "beans" + bonus_reagents = list("nutriment" = 1, "vitamin" = 1) + list_reagents = list("nutriment" = 10) + filling_color = "#B22222" + +/obj/item/weapon/reagent_containers/food/snacks/spidereggs + name = "spider eggs" + desc = "A cluster of juicy spider eggs. A great side dish for when you care not for your health." + icon_state = "spidereggs" + list_reagents = list("nutriment" = 2, "toxin" = 2) + filling_color = "#008000" + +/obj/item/weapon/reagent_containers/food/snacks/chococoin + name = "chocolate coin" + desc = "A completely edible but nonflippable festive coin." + icon_state = "chococoin" + bonus_reagents = list("nutriment" = 1, "sugar" = 1) + list_reagents = list("nutriment" = 3, "cocoa" = 1) + filling_color = "#A0522D" + +/obj/item/weapon/reagent_containers/food/snacks/fudgedice + name = "fudge dice" + desc = "A little cube of chocolate that tends to have a less intense taste if you eat too many at once." + icon_state = "chocodice" + bonus_reagents = list("nutriment" = 1, "sugar" = 1) + list_reagents = list("nutriment" = 3, "cocoa" = 1) + filling_color = "#A0522D" + trash = /obj/item/weapon/dice/fudge + +/obj/item/weapon/reagent_containers/food/snacks/chocoorange + name = "chocolate orange" + desc = "A festive chocolate orange" + icon_state = "chocoorange" + bonus_reagents = list("nutriment" = 1, "sugar" = 1) + list_reagents = list("nutriment" = 3, "sugar" = 1) + filling_color = "#A0522D" + +/obj/item/weapon/reagent_containers/food/snacks/eggplantparm + name = "eggplant parmigiana" + desc = "The only good recipe for eggplant." + icon_state = "eggplantparm" + trash = /obj/item/trash/plate + bonus_reagents = list("nutriment" = 1, "vitamin" = 3) + list_reagents = list("nutriment" = 6, "vitamin" = 2) + filling_color = "#BA55D3" + +/obj/item/weapon/reagent_containers/food/snacks/tortilla + name = "tortilla" + desc = "The base for all your burritos." + icon = 'icons/obj/food/food_ingredients.dmi' + icon_state = "tortilla" + list_reagents = list("nutriment" = 3, "vitamin" = 1) + filling_color = "#FFEFD5" + +/obj/item/weapon/reagent_containers/food/snacks/burrito + name = "burrito" + desc = "Tortilla wrapped goodness." + icon_state = "burrito" + bonus_reagents = list("nutriment" = 2, "vitamin" = 2) + list_reagents = list("nutriment" = 4, "vitamin" = 1) + filling_color = "#FFEFD5" + +/obj/item/weapon/reagent_containers/food/snacks/cheesyburrito + name = "cheesy burrito" + desc = "It's a burrito filled with cheese." + icon_state = "cheesyburrito" + bonus_reagents = list("nutriment" = 1, "vitamin" = 2) + list_reagents = list("nutriment" = 4, "vitamin" = 2) + filling_color = "#FFD800" + +/obj/item/weapon/reagent_containers/food/snacks/carneburrito + name = "carne asada burrito" + desc = "The best burrito for meat lovers." + icon_state = "carneburrito" + bonus_reagents = list("nutriment" = 2, "vitamin" = 1) + list_reagents = list("nutriment" = 5, "vitamin" = 1) + filling_color = "#A0522D" + +/obj/item/weapon/reagent_containers/food/snacks/fuegoburrito + name = "fuego plasma burrito" + desc = "A super spicy burrito." + icon_state = "fuegoburrito" + bonus_reagents = list("nutriment" = 2, "vitamin" = 3) + list_reagents = list("nutriment" = 4, "capsaicin" = 5, "vitamin" = 3) + filling_color = "#FF2000" + +/obj/item/weapon/reagent_containers/food/snacks/yakiimo + name = "yaki imo" + desc = "Made with roasted sweet potatoes!" + icon_state = "yakiimo" + trash = /obj/item/trash/plate + list_reagents = list("nutriment" = 5, "vitamin" = 4) + filling_color = "#8B1105" + +/obj/item/weapon/reagent_containers/food/snacks/roastparsnip + name = "roast parsnip" + desc = "Sweet and crunchy." + icon_state = "roastparsnip" + trash = /obj/item/trash/plate + list_reagents = list("nutriment" = 3, "vitamin" = 4) + filling_color = "#FF5500" + +/obj/item/weapon/reagent_containers/food/snacks/melonfruitbowl + name = "melon fruit bowl" + desc = "For people who wants edible fruit bowls." + icon_state = "melonfruitbowl" + bonus_reagents = list("nutriment" = 2, "vitamin" = 2) + list_reagents = list("nutriment" = 6, "vitamin" = 4) + filling_color = "#FF5500" + w_class = 3 + +/obj/item/weapon/reagent_containers/food/snacks/spacefreezy + name = "space freezy" + desc = "The best icecream in space." + icon_state = "spacefreezy" + bonus_reagents = list("nutriment" = 2, "vitamin" = 2) + list_reagents = list("nutriment" = 6, "bluecherryjelly" = 5, "vitamin" = 4) + filling_color = "#87CEFA" + +/obj/item/weapon/reagent_containers/food/snacks/sundae + name = "sundae" + desc = "A classic dessert." + icon_state = "sundae" + bonus_reagents = list("nutriment" = 2, "vitamin" = 1) + list_reagents = list("nutriment" = 6, "banana" = 5, "vitamin" = 2) + filling_color = "#FFFACD" + +/obj/item/weapon/reagent_containers/food/snacks/honkdae + name = "honkdae" + desc = "The clown's favorite dessert." + icon_state = "honkdae" + bonus_reagents = list("nutriment" = 2, "vitamin" = 2) + list_reagents = list("nutriment" = 6, "banana" = 10, "vitamin" = 4) + filling_color = "#FFFACD" + +/obj/item/weapon/reagent_containers/food/snacks/nachos + name = "nachos" + desc = "Chips from Space Mexico." + icon_state = "nachos" + bonus_reagents = list("nutriment" = 1, "vitamin" = 1) + list_reagents = list("nutriment" = 6, "vitamin" = 2) + filling_color = "#F4A460" + +/obj/item/weapon/reagent_containers/food/snacks/cheesynachos + name = "cheesy nachos" + desc = "The delicious combination of nachos and melting cheese." + icon_state = "cheesynachos" + bonus_reagents = list("nutriment" = 1, "vitamin" = 2) + list_reagents = list("nutriment" = 6, "vitamin" = 3) + filling_color = "#FFD700" + +/obj/item/weapon/reagent_containers/food/snacks/cubannachos + name = "cuban nachos" + desc = "That's some dangerously spicy nachos." + icon_state = "cubannachos" + bonus_reagents = list("nutriment" = 2, "vitamin" = 3) + list_reagents = list("nutriment" = 7, "capsaicin" = 8, "vitamin" = 4) + filling_color = "#DC143C" + +/obj/item/weapon/reagent_containers/food/snacks/melonkeg + name = "melon keg" + desc = "Who knew vodka was a fruit?" + icon_state = "melonkeg" + bonus_reagents = list("nutriment" = 3, "vitamin" = 3) + list_reagents = list("nutriment" = 9, "vodka" = 15, "vitamin" = 4) + filling_color = "#FFD700" + volume = 80 + bitesize = 5 + +/obj/item/weapon/reagent_containers/food/snacks/honeybar + name = "honey nut bar" + desc = "Oats and nuts compressed together into a bar, held together with a honey glaze." + icon_state = "honeybar" + bonus_reagents = list("nutriment" = 2, "honey" = 2, "vitamin" = 2) + list_reagents = list("nutriment" = 5, "honey" = 5) + filling_color = "#F2CE91" + +/obj/item/weapon/reagent_containers/food/snacks/stuffedlegion + name = "stuffed legion" + desc = "The former skull of a damned human, filled with goliath meat. It has a decorative lava pool made of ketchup and hotsauce." + icon_state = "stuffed_legion" + bonus_reagents = list("vitamin" = 3, "capsaicin" = 1, "tricordrazine" = 5) + list_reagents = list("nutriment" = 5, "vitamin" = 5, "capsaicin" = 2, "tricordrazine" = 10,) + + +/obj/item/weapon/reagent_containers/food/snacks/powercrepe + name = "Powercrepe" + desc = "With great power, comes great crepes. It looks like a pancake filled with jelly but packs quite a punch." + icon_state = "powercrepe" + bonus_reagents = list("nutriment" = 5, "vitamin" = 3, "iron" = 10) + list_reagents = list("nutriment" = 10, "vitamin" = 5, "cherryjelly" = 5) + force = 20 + throwforce = 10 + block_chance = 50 + armour_penetration = 75 + attack_verb = list("slapped", "slathered") + w_class = 4 + + diff --git a/code/modules/food_and_drinks/food/snacks_pastry.dm b/code/modules/food_and_drinks/food/snacks_pastry.dm new file mode 100644 index 0000000..58c6986 --- /dev/null +++ b/code/modules/food_and_drinks/food/snacks_pastry.dm @@ -0,0 +1,291 @@ +//Pastry is a food that is made from dough which is made from wheat or rye flour. +//This file contains pastries that don't fit any existing categories. +////////////////////////////////////////////DONUTS//////////////////////////////////////////// + +/obj/item/weapon/reagent_containers/food/snacks/donut + name = "donut" + desc = "Goes great with Robust Coffee." + icon_state = "donut1" + bitesize = 5 + bonus_reagents = list("sugar" = 1) + list_reagents = list("nutriment" = 3, "sugar" = 2) + var/extra_reagent = null + filling_color = "#D2691E" + +/obj/item/weapon/reagent_containers/food/snacks/donut/New() + ..() + if(prob(30)) + icon_state = "donut2" + name = "frosted donut" + reagents.add_reagent("sprinkles", 2) + bonus_reagents = list("sprinkles" = 2, "sugar" = 1) + filling_color = "#FF69B4" + +/obj/item/weapon/reagent_containers/food/snacks/donut/chaos + name = "chaos donut" + desc = "Like life, it never quite tastes the same." + bitesize = 10 + +/obj/item/weapon/reagent_containers/food/snacks/donut/chaos/New() + ..() + extra_reagent = pick("nutriment", "capsaicin", "frostoil", "krokodil", "plasma", "cocoa", "slimejelly", "banana", "berryjuice", "omnizine") + reagents.add_reagent("[extra_reagent]", 3) + bonus_reagents = list("[extra_reagent]" = 3, "sugar" = 1) + if(prob(30)) + icon_state = "donut2" + name = "frosted chaos donut" + reagents.add_reagent("sprinkles", 2) + bonus_reagents = list("sprinkles" = 2, "[extra_reagent]" = 3, "sugar" = 1) + filling_color = "#FF69B4" + +/obj/item/weapon/reagent_containers/food/snacks/donut/jelly + name = "jelly donut" + desc = "You jelly?" + icon_state = "jdonut1" + bonus_reagents = list("sugar" = 1, "vitamin" = 1) + extra_reagent = "berryjuice" + +/obj/item/weapon/reagent_containers/food/snacks/donut/jelly/New() + ..() + if(extra_reagent) + reagents.add_reagent("[extra_reagent]", 3) + if(prob(30)) + icon_state = "jdonut2" + name = "frosted jelly Donut" + reagents.add_reagent("sprinkles", 2) + bonus_reagents = list("sprinkles" = 2, "sugar" = 1) + filling_color = "#FF69B4" + +/obj/item/weapon/reagent_containers/food/snacks/donut/jelly/slimejelly + name = "jelly donut" + desc = "You jelly?" + icon_state = "jdonut1" + extra_reagent = "slimejelly" + +/obj/item/weapon/reagent_containers/food/snacks/donut/jelly/cherryjelly + name = "jelly donut" + desc = "You jelly?" + icon_state = "jdonut1" + extra_reagent = "cherryjelly" + +////////////////////////////////////////////MUFFINS//////////////////////////////////////////// + +/obj/item/weapon/reagent_containers/food/snacks/muffin + name = "muffin" + desc = "A delicious and spongy little cake." + icon_state = "muffin" + bonus_reagents = list("vitamin" = 1) + list_reagents = list("nutriment" = 6) + filling_color = "#F4A460" + +/obj/item/weapon/reagent_containers/food/snacks/muffin/berry + name = "berry muffin" + icon_state = "berrymuffin" + desc = "A delicious and spongy little cake, with berries." + +/obj/item/weapon/reagent_containers/food/snacks/muffin/booberry + name = "booberry muffin" + icon_state = "berrymuffin" + alpha = 125 + desc = "My stomach is a graveyard! No living being can quench my bloodthirst!" + +/obj/item/weapon/reagent_containers/food/snacks/chawanmushi + name = "chawanmushi" + desc = "A legendary egg custard that makes friends out of enemies. Probably too hot for a cat to eat." + icon_state = "chawanmushi" + bonus_reagents = list("vitamin" = 1) + list_reagents = list("nutriment" = 5) + filling_color = "#FFE4E1" + +////////////////////////////////////////////WAFFLES//////////////////////////////////////////// + +/obj/item/weapon/reagent_containers/food/snacks/waffles + name = "waffles" + desc = "Mmm, waffles." + icon_state = "waffles" + trash = /obj/item/trash/waffles + bonus_reagents = list("vitamin" = 1) + list_reagents = list("nutriment" = 8, "vitamin" = 1) + filling_color = "#D2691E" + +/obj/item/weapon/reagent_containers/food/snacks/soylentgreen + name = "\improper Soylent Green" + desc = "Not made of people. Honest." //Totally people. + icon_state = "soylent_green" + trash = /obj/item/trash/waffles + bonus_reagents = list("vitamin" = 1) + list_reagents = list("nutriment" = 10, "vitamin" = 1) + filling_color = "#9ACD32" + +/obj/item/weapon/reagent_containers/food/snacks/soylenviridians + name = "\improper Soylent Virdians" + desc = "Not made of people. Honest." //Actually honest for once. + icon_state = "soylent_yellow" + trash = /obj/item/trash/waffles + bonus_reagents = list("vitamin" = 1) + list_reagents = list("nutriment" = 10, "vitamin" = 1) + filling_color = "#9ACD32" + +/obj/item/weapon/reagent_containers/food/snacks/rofflewaffles + name = "roffle waffles" + desc = "Waffles from Roffle. Co." + icon_state = "rofflewaffles" + trash = /obj/item/trash/waffles + bitesize = 4 + bonus_reagents = list("vitamin" = 2) + list_reagents = list("nutriment" = 8, "mushroomhallucinogen" = 2, "vitamin" = 2) + filling_color = "#00BFFF" + +////////////////////////////////////////////OTHER//////////////////////////////////////////// + +/obj/item/weapon/reagent_containers/food/snacks/cookie + name = "cookie" + desc = "COOKIE!!!" + icon_state = "COOKIE!!!" + bitesize = 1 + bonus_reagents = list("nutriment" = 1) + list_reagents = list("nutriment" = 1) + filling_color = "#F0E68C" + +/obj/item/weapon/reagent_containers/food/snacks/donkpocket + name = "\improper Donk-pocket" + desc = "The food of choice for the seasoned traitor." + icon_state = "donkpocket" + list_reagents = list("nutriment" = 4) + cooked_type = /obj/item/weapon/reagent_containers/food/snacks/donkpocket/warm + filling_color = "#CD853F" + +/obj/item/weapon/reagent_containers/food/snacks/donkpocket/warm + name = "warm Donk-pocket" + desc = "The heated food of choice for the seasoned traitor." + bonus_reagents = list("omnizine" = 3) + list_reagents = list("nutriment" = 4, "omnizine" = 3) + +/obj/item/weapon/reagent_containers/food/snacks/dankpocket + name = "\improper Dank-pocket" + desc = "The food of choice for the seasoned botanist." + icon_state = "dankpocket" + list_reagents = list("lipolicide" = 3, "space_drugs" = 3, "nutriment" = 4) + filling_color = "#00FF00" + +/obj/item/weapon/reagent_containers/food/snacks/fortunecookie + name = "fortune cookie" + desc = "A true prophecy in each cookie!" + icon_state = "fortune_cookie" + bonus_reagents = list("nutriment" = 2) + list_reagents = list("nutriment" = 3) + filling_color = "#F4A460" + +/obj/item/weapon/reagent_containers/food/snacks/poppypretzel + name = "poppy pretzel" + desc = "It's all twisted up!" + icon_state = "poppypretzel" + bonus_reagents = list("nutriment" = 1, "vitamin" = 2) + list_reagents = list("nutriment" = 5) + filling_color = "#F0E68C" + +/obj/item/weapon/reagent_containers/food/snacks/plumphelmetbiscuit + name = "plump helmet biscuit" + desc = "This is a finely-prepared plump helmet biscuit. The ingredients are exceptionally minced plump helmet, and well-minced dwarven wheat flour." + icon_state = "phelmbiscuit" + bonus_reagents = list("nutriment" = 1, "vitamin" = 1) + list_reagents = list("nutriment" = 5) + filling_color = "#F0E68C" + +/obj/item/weapon/reagent_containers/food/snacks/plumphelmetbiscuit/New() + ..() + if(prob(10)) + name = "exceptional plump helmet biscuit" + desc = "Microwave is taken by a fey mood! It has cooked an exceptional plump helmet biscuit!" + reagents.add_reagent("omnizine", 5) + bonus_reagents = list("omnizine" = 5, "nutriment" = 1, "vitamin" = 1) + +/obj/item/weapon/reagent_containers/food/snacks/cracker + name = "cracker" + desc = "It's a salted cracker." + icon_state = "cracker" + bitesize = 1 + bonus_reagents = list("nutriment" = 1) + list_reagents = list("nutriment" = 1) + filling_color = "#F0E68C" + +/obj/item/weapon/reagent_containers/food/snacks/hotdog + name = "hotdog" + desc = "Fresh footlong ready to go down on." + icon_state = "hotdog" + bitesize = 3 + bonus_reagents = list("nutriment" = 1, "vitamin" = 3) + list_reagents = list("nutriment" = 6, "ketchup" = 3, "vitamin" = 3) + filling_color = "#8B0000" + +/obj/item/weapon/reagent_containers/food/snacks/meatbun + name = "meat bun" + desc = "Has the potential to not be Dog." + icon_state = "meatbun" + bonus_reagents = list("nutriment" = 1, "vitamin" = 2) + list_reagents = list("nutriment" = 6, "vitamin" = 2) + filling_color = "#8B0000" + +/obj/item/weapon/reagent_containers/food/snacks/khachapuri + name = "khachapuri" + desc = "Bread with egg and cheese?" + icon_state = "khachapuri" + list_reagents = list("nutriment" = 12, "vitamin" = 2) + filling_color = "#FFFF4D" + + +/obj/item/weapon/reagent_containers/food/snacks/sugarcookie + name = "sugar cookie" + desc = "Just like your little sister used to make." + icon_state = "sugarcookie" + bonus_reagents = list("nutriment" = 1, "sugar" = 3) + list_reagents = list("nutriment" = 3, "sugar" = 3) + filling_color = "#CD853F" + +/obj/item/weapon/reagent_containers/food/snacks/chococornet + name = "chocolate cornet" + desc = "Which side's the head, the fat end or the thin end?" + icon_state = "chococornet" + bonus_reagents = list("nutriment" = 1, "vitamin" = 1) + list_reagents = list("nutriment" = 5, "vitamin" = 1) + filling_color = "#FFE4C4" + +/obj/item/weapon/reagent_containers/food/snacks/oatmealcookie + name = "oatmeal cookie" + desc = "The best of both cookie and oat" + icon_state = "oatmealcookie" + bonus_reagents = list("nutriment" = 1, "vitamin" = 1) + list_reagents = list("nutriment" = 5, "vitamin" = 1) + filling_color = "#D2691E" + +/obj/item/weapon/reagent_containers/food/snacks/raisincookie + name = "raisin cookie" + desc = "Why would you put raisins on a cookie?" + icon_state = "raisincookie" + bonus_reagents = list("nutriment" = 1, "vitamin" = 1) + list_reagents = list("nutriment" = 5, "vitamin" = 1) + filling_color = "#F0E68C" + +/obj/item/weapon/reagent_containers/food/snacks/cherrycupcake + name = "cherry cupcake" + desc = "A sweet cupcake with cherry bits." + icon_state = "cherrycupcake" + bonus_reagents = list("nutriment" = 1, "vitamin" = 1) + list_reagents = list("nutriment" = 5, "vitamin" = 1) + filling_color = "#F0E68C" + +/obj/item/weapon/reagent_containers/food/snacks/bluecherrycupcake + name = "blue cherry cupcake" + desc = "Blue cherries inside a delicious cupcake" + icon_state = "bluecherrycupcake" + bonus_reagents = list("nutriment" = 1, "vitamin" = 3) + list_reagents = list("nutriment" = 5, "vitamin" = 1) + filling_color = "#F0E68C" + +/obj/item/weapon/reagent_containers/food/snacks/honeybun + name = "honey bun" + desc = "A sticky pastry bun glazed with honey." + icon_state = "honeybun" + bonus_reagents = list("nutriment" = 1, "honey" = 1) + list_reagents = list("nutriment" = 5, "honey" = 5) + filling_color = "#F2CE91" \ No newline at end of file diff --git a/code/modules/food_and_drinks/food/snacks_pie.dm b/code/modules/food_and_drinks/food/snacks_pie.dm new file mode 100644 index 0000000..0a7cd72 --- /dev/null +++ b/code/modules/food_and_drinks/food/snacks_pie.dm @@ -0,0 +1,190 @@ + +/obj/item/weapon/reagent_containers/food/snacks/pie + icon = 'icons/obj/food/piecake.dmi' + trash = /obj/item/trash/plate + bitesize = 3 + w_class = 3 + volume = 80 + list_reagents = list("nutriment" = 10, "vitamin" = 2) + +/obj/item/weapon/reagent_containers/food/snacks/pie/plain + name = "plain pie" + desc = "A simple pie, still delicious." + icon_state = "pie" + custom_food_type = /obj/item/weapon/reagent_containers/food/snacks/customizable/pie + bonus_reagents = list("nutriment" = 8, "vitamin" = 1) + +/obj/item/weapon/reagent_containers/food/snacks/pie/cream + name = "banana cream pie" + desc = "Just like back home, on clown planet! HONK!" + icon_state = "pie" + trash = /obj/item/trash/plate + bonus_reagents = list("nutriment" = 2, "vitamin" = 2) + list_reagents = list("nutriment" = 6, "banana" = 5, "vitamin" = 2) + +/obj/item/weapon/reagent_containers/food/snacks/pie/cream/throw_impact(atom/hit_atom) + if(!..()) //was it caught by a mob? + var/turf/T = get_turf(hit_atom) + new/obj/effect/decal/cleanable/pie_smudge(T) + reagents.reaction(hit_atom, TOUCH) + + if(ishuman(hit_atom)) + var/mob/living/carbon/human/H = hit_atom + var/image/creamoverlay = image('icons/effects/creampie.dmi') + if(H.dna.species.id == "lizard") + creamoverlay.icon_state = "creampie_lizard" + else + creamoverlay.icon_state = "creampie_human" + H.Weaken(1) //splat! + H.adjust_blurriness(1) + visible_message("[H] was creamed by [src]!!") + H.add_overlay(creamoverlay) + + qdel(src) + + +/obj/item/weapon/reagent_containers/food/snacks/pie/berryclafoutis + name = "berry clafoutis" + desc = "No black birds, this is a good sign." + icon_state = "berryclafoutis" + bonus_reagents = list("nutriment" = 1, "vitamin" = 2) + list_reagents = list("nutriment" = 10, "berryjuice" = 5, "vitamin" = 2) + +/obj/item/weapon/reagent_containers/food/snacks/pie/bearypie + name = "beary pie" + desc = "No brown bears, this is a good sign." + icon_state = "bearypie" + bonus_reagents = list("nutriment" = 2, "vitamin" = 3) + list_reagents = list("nutriment" = 2, "vitamin" = 3) + +/obj/item/weapon/reagent_containers/food/snacks/pie/meatpie + name = "meat-pie" + icon_state = "meatpie" + desc = "An old barber recipe, very delicious!" + bonus_reagents = list("nutriment" = 1, "vitamin" = 5) + + +/obj/item/weapon/reagent_containers/food/snacks/pie/tofupie + name = "tofu-pie" + icon_state = "meatpie" + desc = "A delicious tofu pie." + bonus_reagents = list("nutriment" = 1, "vitamin" = 2) + + +/obj/item/weapon/reagent_containers/food/snacks/pie/amanita_pie + name = "amanita pie" + desc = "Sweet and tasty poison pie." + icon_state = "amanita_pie" + bitesize = 4 + bonus_reagents = list("nutriment" = 1, "vitamin" = 4) + list_reagents = list("nutriment" = 6, "amatoxin" = 3, "mushroomhallucinogen" = 1, "vitamin" = 4) + + +/obj/item/weapon/reagent_containers/food/snacks/pie/plump_pie + name = "plump pie" + desc = "I bet you love stuff made out of plump helmets!" + icon_state = "plump_pie" + bonus_reagents = list("nutriment" = 1, "vitamin" = 4) + +/obj/item/weapon/reagent_containers/food/snacks/pie/plump_pie/New() + ..() + if(prob(10)) + name = "exceptional plump pie" + desc = "Microwave is taken by a fey mood! It has cooked an exceptional plump pie!" + reagents.add_reagent("omnizine", 5) + bonus_reagents = list("nutriment" = 1, "omnizine" = 5, "vitamin" = 4) + + +/obj/item/weapon/reagent_containers/food/snacks/pie/xemeatpie + name = "xeno-pie" + icon_state = "xenomeatpie" + desc = "A delicious meatpie. Probably heretical." + trash = /obj/item/trash/plate + bonus_reagents = list("nutriment" = 1, "vitamin" = 5) + + +/obj/item/weapon/reagent_containers/food/snacks/pie/applepie + name = "apple pie" + desc = "A pie containing sweet sweet love...or apple." + icon_state = "applepie" + bonus_reagents = list("nutriment" = 1, "vitamin" = 3) + + + +/obj/item/weapon/reagent_containers/food/snacks/pie/cherrypie + name = "cherry pie" + desc = "Taste so good, make a grown man cry." + icon_state = "cherrypie" + bonus_reagents = list("nutriment" = 1, "vitamin" = 2) + + +/obj/item/weapon/reagent_containers/food/snacks/pie/pumpkinpie + name = "pumpkin pie" + desc = "A delicious treat for the autumn months." + icon_state = "pumpkinpie" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/pumpkinpieslice + slices_num = 5 + bonus_reagents = list("nutriment" = 1, "vitamin" = 5) + +/obj/item/weapon/reagent_containers/food/snacks/pumpkinpieslice + name = "pumpkin pie slice" + desc = "A slice of pumpkin pie, with whipped cream on top. Perfection." + icon = 'icons/obj/food/piecake.dmi' + icon_state = "pumpkinpieslice" + trash = /obj/item/trash/plate + filling_color = "#FFA500" + list_reagents = list("nutriment" = 2) + +/obj/item/weapon/reagent_containers/food/snacks/pie/appletart + name = "golden apple streusel tart" + desc = "A tasty dessert that won't make it through a metal detector." + icon_state = "gappletart" + bonus_reagents = list("nutriment" = 1, "vitamin" = 4) + list_reagents = list("nutriment" = 8, "gold" = 5, "vitamin" = 4) + +/obj/item/weapon/reagent_containers/food/snacks/pie/grapetart + name = "grape tart" + desc = "A tasty dessert that reminds you of the wine you didn't make." + icon_state = "grapetart" + bonus_reagents = list("nutriment" = 1, "vitamin" = 4) + list_reagents = list("nutriment" = 4, "vitamin" = 4) + +/obj/item/weapon/reagent_containers/food/snacks/pie/blumpkinpie + name = "blumpkin pie" + desc = "An odd blue pie made with toxic blumpkin." + icon_state = "blumpkinpie" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/blumpkinpieslice + slices_num = 5 + bonus_reagents = list("nutriment" = 3, "vitamin" = 6) + +/obj/item/weapon/reagent_containers/food/snacks/blumpkinpieslice + name = "blumpkin pie slice" + desc = "A slice of blumpkin pie, with whipped cream on top. Is this edible?" + icon = 'icons/obj/food/piecake.dmi' + icon_state = "blumpkinpieslice" + trash = /obj/item/trash/plate + filling_color = "#1E90FF" + list_reagents = list("nutriment" = 2) + +/obj/item/weapon/reagent_containers/food/snacks/pie/dulcedebatata + name = "dulce de batata" + desc = "A delicious jelly made with sweet potatoes." + icon_state = "dulcedebatata" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/dulcedebatataslice + slices_num = 5 + bonus_reagents = list("nutriment" = 4, "vitamin" = 8) + +/obj/item/weapon/reagent_containers/food/snacks/dulcedebatataslice + name = "dulce de batata slice" + desc = "A slice of sweet dulce de batata jelly." + icon = 'icons/obj/food/piecake.dmi' + icon_state = "dulcedebatataslice" + trash = /obj/item/trash/plate + filling_color = "#8B4513" + list_reagents = list("nutriment" = 2) + +/obj/item/weapon/reagent_containers/food/snacks/pie/frostypie + name = "frosty pie" + desc = "Tastes like blue and cold." + icon_state = "frostypie" + bonus_reagents = list("nutriment" = 4, "vitamin" = 6) diff --git a/code/modules/food_and_drinks/food/snacks_pizza.dm b/code/modules/food_and_drinks/food/snacks_pizza.dm new file mode 100644 index 0000000..b8d647e --- /dev/null +++ b/code/modules/food_and_drinks/food/snacks_pizza.dm @@ -0,0 +1,114 @@ + +/////////////////////////////////////////////////PIZZA//////////////////////////////////////// + +/obj/item/weapon/reagent_containers/food/snacks/pizza + icon = 'icons/obj/food/pizzaspaghetti.dmi' + w_class = 3 + slices_num = 6 + volume = 80 + list_reagents = list("nutriment" = 30, "tomatojuice" = 6, "vitamin" = 5) + +/obj/item/weapon/reagent_containers/food/snacks/pizzaslice + icon = 'icons/obj/food/pizzaspaghetti.dmi' + list_reagents = list("nutriment" = 5) + +/obj/item/weapon/reagent_containers/food/snacks/pizza/margherita + name = "margherita" + desc = "The most cheezy pizza in galaxy." + icon_state = "pizzamargherita" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/pizzaslice/margherita + bonus_reagents = list("nutriment" = 5, "vitamin" = 5) + +/obj/item/weapon/reagent_containers/food/snacks/pizzaslice/margherita + name = "margherita slice" + desc = "A slice of the most cheezy pizza in galaxy." + icon_state = "pizzamargheritaslice" + filling_color = "#FFA500" + +/obj/item/weapon/reagent_containers/food/snacks/pizza/meat + name = "meatpizza" + desc = "Greasy pizza with delicious meat." + icon_state = "meatpizza" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/pizzaslice/meat + bonus_reagents = list("nutriment" = 5, "vitamin" = 8) + list_reagents = list("nutriment" = 30, "tomatojuice" = 6, "vitamin" = 8) + +/obj/item/weapon/reagent_containers/food/snacks/pizzaslice/meat + name = "meatpizza slice" + desc = "A nutritious slice of meatpizza." + icon_state = "meatpizzaslice" + filling_color = "#A52A2A" + +/obj/item/weapon/reagent_containers/food/snacks/pizza/mushroom + name = "mushroom pizza" + desc = "Very special pizza." + icon_state = "mushroompizza" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/pizzaslice/mushroom + bonus_reagents = list("nutriment" = 5, "vitamin" = 5) + list_reagents = list("nutriment" = 30, "vitamin" = 5) + +/obj/item/weapon/reagent_containers/food/snacks/pizzaslice/mushroom + name = "mushroom pizza slice" + desc = "Maybe it is the last slice of pizza in your life." + icon_state = "mushroompizzaslice" + filling_color = "#FFE4C4" + +/obj/item/weapon/reagent_containers/food/snacks/pizza/vegetable + name = "vegetable pizza" + desc = "No one of Tomatos Sapiens were harmed during making this pizza." + icon_state = "vegetablepizza" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/pizzaslice/vegetable + bonus_reagents = list("nutriment" = 5, "vitamin" = 5) + list_reagents = list("nutriment" = 25, "tomatojuice" = 6, "oculine" = 12, "vitamin" = 5) + +/obj/item/weapon/reagent_containers/food/snacks/pizzaslice/vegetable + name = "vegetable pizza slice" + desc = "A slice of the most green pizza of all pizzas not containing green ingredients." + icon_state = "vegetablepizzaslice" + filling_color = "#FFA500" + +/obj/item/weapon/reagent_containers/food/snacks/pizza/donkpocket + name = "donkpocket pizza" + desc = "Who thought this would be a good idea?" + icon_state = "donkpocketpizza" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/pizzaslice/donkpocket + bonus_reagents = list("nutriment" = 5, "vitamin" = 5) + list_reagents = list("nutriment" = 25, "tomatojuice" = 6, "omnizine" = 10, "vitamin" = 5) + +/obj/item/weapon/reagent_containers/food/snacks/pizzaslice/donkpocket + name = "donkpocket pizza slice" + desc = "Smells like donkpocket." + icon_state = "donkpocketpizzaslice" + filling_color = "#FFA500" + +/obj/item/weapon/reagent_containers/food/snacks/pizza/dank + name = "dank pizza" + desc = "The hippie's pizza of choice." + icon_state = "dankpizza" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/pizzaslice/dank + bonus_reagents = list("nutriment" = 2, "vitamin" = 6) + list_reagents = list("nutriment" = 25, "doctorsdelight" = 5, "tomatojuice" = 6, "vitamin" = 5) + +/obj/item/weapon/reagent_containers/food/snacks/pizzaslice/dank + name = "dank pizza slice" + desc = "So good, man..." + icon_state = "dankpizzaslice" + filling_color = "#2E8B57" + +/obj/item/weapon/reagent_containers/food/snacks/pizza/sassysage + name = "sassysage pizza" + desc = "You can really smell the sassiness." + icon_state = "sassysagepizza" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/pizzaslice/sassysage + bonus_reagents = list("nutriment" = 6, "vitamin" = 6) + +/obj/item/weapon/reagent_containers/food/snacks/pizzaslice/sassysage + name = "sassysage pizza slice" + desc = "Deliciously sassy." + icon_state = "sassysagepizzaslice" + filling_color = "#FF4500" + +/obj/item/weapon/reagent_containers/food/snacks/pizzaslice/custom + name = "pizza slice" + icon_state = "pizzamargheritaslice" + filling_color = "#FFFFFF" diff --git a/code/modules/food_and_drinks/food/snacks_salad.dm b/code/modules/food_and_drinks/food/snacks_salad.dm new file mode 100644 index 0000000..d98273c --- /dev/null +++ b/code/modules/food_and_drinks/food/snacks_salad.dm @@ -0,0 +1,92 @@ +//this category is very little but I think that it has great potential to grow +////////////////////////////////////////////SALAD//////////////////////////////////////////// +/obj/item/weapon/reagent_containers/food/snacks/salad + icon = 'icons/obj/food/soupsalad.dmi' + trash = /obj/item/weapon/reagent_containers/glass/bowl + bitesize = 3 + w_class = 3 + list_reagents = list("nutriment" = 7, "vitamin" = 2) + +/obj/item/weapon/reagent_containers/food/snacks/salad/New() + ..() + eatverb = pick("crunch","devour","nibble","gnaw","gobble","chomp") + +/obj/item/weapon/reagent_containers/food/snacks/salad/aesirsalad + name = "\improper Aesir salad" + desc = "Probably too incredible for mortal men to fully enjoy." + icon_state = "aesirsalad" + bonus_reagents = list("omnizine" = 2, "vitamin" = 6) + list_reagents = list("nutriment" = 8, "omnizine" = 8, "vitamin" = 6) + +/obj/item/weapon/reagent_containers/food/snacks/salad/herbsalad + name = "herb salad" + desc = "A tasty salad with apples on top." + icon_state = "herbsalad" + bonus_reagents = list("vitamin" = 4) + list_reagents = list("nutriment" = 8, "vitamin" = 2) + +/obj/item/weapon/reagent_containers/food/snacks/salad/validsalad + name = "valid salad" + desc = "It's just an herb salad with meatballs and fried potato slices. Nothing suspicious about it." + icon_state = "validsalad" + bonus_reagents = list("doctorsdelight" = 5, "vitamin" = 4) + list_reagents = list("nutriment" = 8, "doctorsdelight" = 5, "vitamin" = 2) + +/obj/item/weapon/reagent_containers/food/snacks/salad/oatmeal + name = "oatmeal" + desc = "A nice bowl of oatmeal." + icon_state = "oatmeal" + bonus_reagents = list("nutriment" = 4, "vitamin" = 4) + list_reagents = list("nutriment" = 7, "milk" = 10, "vitamin" = 2) + +/obj/item/weapon/reagent_containers/food/snacks/salad/fruit + name = "fruit salad" + desc = "Your standard fruit salad." + icon_state = "fruitsalad" + bonus_reagents = list("nutriment" = 2, "vitamin" = 4) + +/obj/item/weapon/reagent_containers/food/snacks/salad/jungle + name = "jungle salad" + desc = "Exotic fruits in a bowl." + icon_state = "junglesalad" + bonus_reagents = list("nutriment" = 4, "vitamin" = 4) + list_reagents = list("nutriment" = 7, "banana" = 5, "vitamin" = 4) + +/obj/item/weapon/reagent_containers/food/snacks/salad/citrusdelight + name = "citrus delight" + desc = "Citrus overload!" + icon_state = "citrusdelight" + bonus_reagents = list("nutriment" = 4, "vitamin" = 4) + list_reagents = list("nutriment" = 7, "vitamin" = 5) + +/obj/item/weapon/reagent_containers/food/snacks/salad/ricebowl + name = "ricebowl" + desc = "A bowl of raw rice." + icon_state = "ricebowl" + cooked_type = /obj/item/weapon/reagent_containers/food/snacks/salad/boiledrice + list_reagents = list("nutriment" = 4) + +/obj/item/weapon/reagent_containers/food/snacks/salad/boiledrice + name = "boiled rice" + desc = "A warm bowl of rice." + icon_state = "boiledrice" + bonus_reagents = list("nutriment" = 1, "vitamin" = 1) + list_reagents = list("nutriment" = 5, "vitamin" = 1) + +/obj/item/weapon/reagent_containers/food/snacks/salad/ricepudding + name = "rice pudding" + desc = "Everybody loves rice pudding!" + icon_state = "ricepudding" + bonus_reagents = list("nutriment" = 4, "vitamin" = 2) + +/obj/item/weapon/reagent_containers/food/snacks/salad/ricepork + name = "rice and pork" + desc = "Well, it looks like pork..." + icon_state = "riceporkbowl" + bonus_reagents = list("nutriment" = 4, "vitamin" = 4) + +/obj/item/weapon/reagent_containers/food/snacks/salad/eggbowl + name = "egg bowl" + desc = "A bowl of rice with a fried egg." + icon_state = "eggbowl" + bonus_reagents = list("nutriment" = 4, "vitamin" = 4) diff --git a/code/modules/food_and_drinks/food/snacks_sandwichtoast.dm b/code/modules/food_and_drinks/food/snacks_sandwichtoast.dm new file mode 100644 index 0000000..73b18e7 --- /dev/null +++ b/code/modules/food_and_drinks/food/snacks_sandwichtoast.dm @@ -0,0 +1,85 @@ + +/obj/item/weapon/reagent_containers/food/snacks/sandwich + name = "sandwich" + desc = "A grand creation of meat, cheese, bread, and several leaves of lettuce! Arthur Dent would be proud." + icon = 'icons/obj/food/burgerbread.dmi' + icon_state = "sandwich" + trash = /obj/item/trash/plate + bonus_reagents = list("nutriment" = 1, "vitamin" = 1) + list_reagents = list("nutriment" = 6, "vitamin" = 1) + cooked_type = /obj/item/weapon/reagent_containers/food/snacks/toastedsandwich + +/obj/item/weapon/reagent_containers/food/snacks/toastedsandwich + name = "toasted sandwich" + desc = "Now if you only had a pepper bar." + icon = 'icons/obj/food/burgerbread.dmi' + icon_state = "toastedsandwich" + trash = /obj/item/trash/plate + bonus_reagents = list("nutriment" = 1, "carbon" = 2) + list_reagents = list("nutriment" = 6, "carbon" = 2) + +/obj/item/weapon/reagent_containers/food/snacks/grilledcheese + name = "grilled cheese sandwich" + desc = "Goes great with Tomato soup!" + icon = 'icons/obj/food/burgerbread.dmi' + icon_state = "toastedsandwich" + trash = /obj/item/trash/plate + bonus_reagents = list("nutriment" = 1, "vitamin" = 1) + list_reagents = list("nutriment" = 7, "vitamin" = 1) + +/obj/item/weapon/reagent_containers/food/snacks/jellysandwich + name = "jelly sandwich" + desc = "You wish you had some peanut butter to go with this..." + icon = 'icons/obj/food/burgerbread.dmi' + icon_state = "jellysandwich" + trash = /obj/item/trash/plate + bitesize = 3 + +/obj/item/weapon/reagent_containers/food/snacks/jellysandwich/slime + bonus_reagents = list("slimejelly" = 5, "vitamin" = 2) + list_reagents = list("nutriment" = 2, "slimejelly" = 5, "vitamin" = 2) + +/obj/item/weapon/reagent_containers/food/snacks/jellysandwich/cherry + bonus_reagents = list("cherryjelly" = 5, "vitamin" = 2) + list_reagents = list("nutriment" = 2, "cherryjelly" = 5, "vitamin" = 2) + +/obj/item/weapon/reagent_containers/food/snacks/icecreamsandwich + name = "icecream sandwich" + desc = "Portable Ice-cream in it's own packaging." + icon = 'icons/obj/food/food.dmi' + icon_state = "icecreamsandwich" + bonus_reagents = list("nutriment" = 1, "ice" = 2) + list_reagents = list("nutriment" = 2, "ice" = 2) + +/obj/item/weapon/reagent_containers/food/snacks/notasandwich + name = "not-a-sandwich" + desc = "Something seems to be wrong with this, you can't quite figure what. Maybe it's his moustache." + icon = 'icons/obj/food/burgerbread.dmi' + icon_state = "notasandwich" + trash = /obj/item/trash/plate + bonus_reagents = list("vitamin" = 6) + list_reagents = list("nutriment" = 6, "vitamin" = 6) + +/obj/item/weapon/reagent_containers/food/snacks/jelliedtoast + name = "jellied toast" + desc = "A slice of bread covered with delicious jam." + icon = 'icons/obj/food/burgerbread.dmi' + icon_state = "jellytoast" + trash = /obj/item/trash/plate + bitesize = 3 + +/obj/item/weapon/reagent_containers/food/snacks/jelliedtoast/cherry + bonus_reagents = list("cherryjelly" = 5, "vitamin" = 2) + list_reagents = list("nutriment" = 1, "cherryjelly" = 5, "vitamin" = 2) + +/obj/item/weapon/reagent_containers/food/snacks/jelliedtoast/slime + bonus_reagents = list("slimejelly" = 5, "vitamin" = 2) + list_reagents = list("nutriment" = 1, "slimejelly" = 5, "vitamin" = 2) + +/obj/item/weapon/reagent_containers/food/snacks/twobread + name = "two bread" + desc = "This seems awfully bitter." + icon = 'icons/obj/food/burgerbread.dmi' + icon_state = "twobread" + bonus_reagents = list("nutriment" = 1, "vitamin" = 2) + list_reagents = list("nutriment" = 2, "vitamin" = 2) diff --git a/code/modules/food_and_drinks/food/snacks_soup.dm b/code/modules/food_and_drinks/food/snacks_soup.dm new file mode 100644 index 0000000..8248ab2 --- /dev/null +++ b/code/modules/food_and_drinks/food/snacks_soup.dm @@ -0,0 +1,176 @@ +/obj/item/weapon/reagent_containers/food/snacks/soup + w_class = 3 + icon = 'icons/obj/food/soupsalad.dmi' + trash = /obj/item/weapon/reagent_containers/glass/bowl + bitesize = 5 + volume = 80 + list_reagents = list("nutriment" = 8, "water" = 5, "vitamin" = 4) + +/obj/item/weapon/reagent_containers/food/snacks/soup/New() + ..() + eatverb = pick("slurp","sip","suck","inhale","drink") + +/obj/item/weapon/reagent_containers/food/snacks/soup/wish + name = "wish soup" + desc = "I wish this was soup." + icon_state = "wishsoup" + list_reagents = list("water" = 10) + +/obj/item/weapon/reagent_containers/food/snacks/soup/wish/New() + ..() + if(prob(25)) + desc = "A wish come true!" + reagents.add_reagent("nutriment", 9) + reagents.add_reagent("vitamin", 1) + bonus_reagents = list("nutriment" = 9, "vitamin" = 1) + +/obj/item/weapon/reagent_containers/food/snacks/soup/meatball + name = "meatball soup" + desc = "You've got balls kid, BALLS!" + icon_state = "meatballsoup" + bonus_reagents = list("nutriment" = 1, "vitamin" = 5) + +/obj/item/weapon/reagent_containers/food/snacks/soup/slime + name = "slime soup" + desc = "If no water is available, you may substitute tears." + icon_state = "slimesoup" + bonus_reagents = list("nutriment" = 1, "slimejelly" = 5, "vitamin" = 5) + list_reagents = list("nutriment" = 5, "slimejelly" = 5, "water" = 5, "vitamin" = 4) + +/obj/item/weapon/reagent_containers/food/snacks/soup/blood + name = "tomato soup" + desc = "Smells like copper." + icon_state = "tomatosoup" + bonus_reagents = list("nutriment" = 1, "vitamin" = 6) + list_reagents = list("nutriment" = 2, "blood" = 10, "water" = 5, "vitamin" = 4) + +/obj/item/weapon/reagent_containers/food/snacks/soup/wingfangchu + name = "wing fang chu" + desc = "A savory dish of alien wing wang in soy." + icon_state = "wingfangchu" + trash = /obj/item/weapon/reagent_containers/glass/bowl + bonus_reagents = list("nutriment" = 1, "vitamin" = 2) + list_reagents = list("nutriment" = 6, "soysauce" = 5, "vitamin" = 2) + +/obj/item/weapon/reagent_containers/food/snacks/soup/clownstears + name = "clown's tears" + desc = "Not very funny." + icon_state = "clownstears" + bonus_reagents = list("nutriment" = 1, "banana" = 5, "vitamin" = 8) + list_reagents = list("nutriment" = 4, "banana" = 5, "water" = 5, "vitamin" = 8) + +/obj/item/weapon/reagent_containers/food/snacks/soup/vegetable + name = "vegetable soup" + desc = "A true vegan meal." + icon_state = "vegetablesoup" + bonus_reagents = list("nutriment" = 1, "vitamin" = 4) + +/obj/item/weapon/reagent_containers/food/snacks/soup/nettle + name = "nettle soup" + desc = "To think, the botanist would've beat you to death with one of these." + icon_state = "nettlesoup" + bonus_reagents = list("nutriment" = 1, "omnizine" = 5, "vitamin" = 5) + +/obj/item/weapon/reagent_containers/food/snacks/soup/mystery + name = "mystery soup" + desc = "The mystery is, why aren't you eating it?" + icon_state = "mysterysoup" + var/extra_reagent = null + list_reagents = list("nutriment" = 6) + +/obj/item/weapon/reagent_containers/food/snacks/soup/mystery/New() + ..() + extra_reagent = pick("capsaicin", "frostoil", "omnizine", "banana", "blood", "slimejelly", "toxin", "banana", "carbon", "oculine") + reagents.add_reagent("[extra_reagent]", 5) + bonus_reagents = list("[extra_reagent]" = 5, "nutriment" = 6) + +/obj/item/weapon/reagent_containers/food/snacks/soup/hotchili + name = "hot chili" + desc = "A five alarm Texan Chili!" + icon_state = "hotchili" + bonus_reagents = list("nutriment" = 1, "tomatojuice" = 2, "vitamin" = 2) + list_reagents = list("nutriment" = 5, "capsaicin" = 1, "tomatojuice" = 2, "vitamin" = 2) + +/obj/item/weapon/reagent_containers/food/snacks/soup/coldchili + name = "cold chili" + desc = "This slush is barely a liquid!" + icon_state = "coldchili" + bonus_reagents = list("nutriment" = 1, "tomatojuice" = 2, "vitamin" = 2) + list_reagents = list("nutriment" = 5, "frostoil" = 1, "tomatojuice" = 2, "vitamin" = 2) + +/obj/item/weapon/reagent_containers/food/snacks/soup/monkeysdelight + name = "monkey's delight" + desc = "A delicious soup with dumplings and hunks of monkey meat simmered to perfection, in a broth that tastes faintly of bananas." + icon_state = "monkeysdelight" + bonus_reagents = list("nutriment" = 1, "vitamin" = 5) + list_reagents = list("nutriment" = 10, "banana" = 5, "vitamin" = 5) + +/obj/item/weapon/reagent_containers/food/snacks/soup/tomato + name = "tomato soup" + desc = "Drinking this feels like being a vampire! A tomato vampire..." + icon_state = "tomatosoup" + bonus_reagents = list("nutriment" = 1, "tomatojuice" = 10, "vitamin" = 3) + list_reagents = list("nutriment" = 5, "tomatojuice" = 10, "vitamin" = 3) + +/obj/item/weapon/reagent_containers/food/snacks/soup/milo + name = "milosoup" + desc = "The universes best soup! Yum!!!" + icon_state = "milosoup" + bonus_reagents = list("nutriment" = 1, "vitamin" = 3) + +/obj/item/weapon/reagent_containers/food/snacks/soup/mushroom + name = "chantrelle soup" + desc = "A delicious and hearty mushroom soup." + icon_state = "mushroomsoup" + bonus_reagents = list("nutriment" = 1, "vitamin" = 5) + list_reagents = list("nutriment" = 8, "vitamin" = 4) + +/obj/item/weapon/reagent_containers/food/snacks/soup/beet + name = "beet soup" + desc = "Wait, how do you spell it again..?" + icon_state = "beetsoup" + bonus_reagents = list("nutriment" = 1, "vitamin" = 5) + +/obj/item/weapon/reagent_containers/food/snacks/soup/beet/New() + ..() + name = pick("borsch","bortsch","borstch","borsh","borshch","borscht") + + +/obj/item/weapon/reagent_containers/food/snacks/soup/spacylibertyduff + name = "spacy liberty duff" + desc = "Jello gelatin, from Alfred Hubbard's cookbook." + icon_state = "spacylibertyduff" + bitesize = 3 + bonus_reagents = list("nutriment" = 1, "vitamin" = 5) + list_reagents = list("nutriment" = 6, "mushroomhallucinogen" = 6) + +/obj/item/weapon/reagent_containers/food/snacks/soup/amanitajelly + name = "amanita jelly" + desc = "Looks curiously toxic." + icon_state = "amanitajelly" + bitesize = 3 + bonus_reagents = list("nutriment" = 1, "vitamin" = 5) + list_reagents = list("nutriment" = 6, "mushroomhallucinogen" = 3, "amatoxin" = 6) + +/obj/item/weapon/reagent_containers/food/snacks/soup/stew + name = "stew" + desc = "A nice and warm stew. Healthy and strong." + icon_state = "stew" + bonus_reagents = list("nutriment" = 1, "tomatojuice" = 5, "vitamin" = 5) + list_reagents = list("nutriment" = 10, "oculine" = 5, "tomatojuice" = 5, "vitamin" = 5) + bitesize = 7 + volume = 100 + +/obj/item/weapon/reagent_containers/food/snacks/soup/sweetpotato + name = "sweet potato soup" + desc = "Delicious sweet potato in soup form." + icon_state = "sweetpotatosoup" + bonus_reagents = list("nutriment" = 4, "vitamin" = 5) + +/obj/item/weapon/reagent_containers/food/snacks/soup/beet/red + name = "red beet soup" + desc = "Quite a delicacy." + icon_state = "redbeetsoup" + bonus_reagents = list("nutriment" = 4, "vitamin" = 6) + + diff --git a/code/modules/food_and_drinks/food/snacks_spaghetti.dm b/code/modules/food_and_drinks/food/snacks_spaghetti.dm new file mode 100644 index 0000000..251217a --- /dev/null +++ b/code/modules/food_and_drinks/food/snacks_spaghetti.dm @@ -0,0 +1,79 @@ + +/obj/item/weapon/reagent_containers/food/snacks/spaghetti + name = "spaghetti" + desc = "Now that's a nic'e pasta!" + icon = 'icons/obj/food/pizzaspaghetti.dmi' + icon_state = "spaghetti" + list_reagents = list("nutriment" = 1, "vitamin" = 1) + cooked_type = /obj/item/weapon/reagent_containers/food/snacks/boiledspaghetti + filling_color = "#F0E68C" + +/obj/item/weapon/reagent_containers/food/snacks/boiledspaghetti + name = "boiled spaghetti" + desc = "A plain dish of noodles, this needs more ingredients." + icon = 'icons/obj/food/pizzaspaghetti.dmi' + icon_state = "spaghettiboiled" + trash = /obj/item/trash/plate + bonus_reagents = list("nutriment" = 2) + list_reagents = list("nutriment" = 2, "vitamin" = 1) + custom_food_type = /obj/item/weapon/reagent_containers/food/snacks/customizable/pasta + filling_color = "#F0E68C" + +/obj/item/weapon/reagent_containers/food/snacks/pastatomato + name = "spaghetti" + desc = "Spaghetti and crushed tomatoes. Just like your abusive father used to make!" + icon = 'icons/obj/food/pizzaspaghetti.dmi' + icon_state = "pastatomato" + trash = /obj/item/trash/plate + bitesize = 4 + bonus_reagents = list("nutriment" = 1, "tomatojuice" = 10, "vitamin" = 4) + list_reagents = list("nutriment" = 6, "tomatojuice" = 10, "vitamin" = 4) + filling_color = "#DC143C" + +/obj/item/weapon/reagent_containers/food/snacks/copypasta + name = "copypasta" + desc = "You probably shouldn't try this, you always hear people talking about how bad it is..." + icon = 'icons/obj/food/pizzaspaghetti.dmi' + icon_state = "copypasta" + trash = /obj/item/trash/plate + bitesize = 4 + bonus_reagents = list("nutriment" = 1, "vitamin" = 4) + list_reagents = list("nutriment" = 12, "tomatojuice" = 20, "vitamin" = 8) + filling_color = "#DC143C" + +/obj/item/weapon/reagent_containers/food/snacks/meatballspaghetti + name = "spaghetti and meatballs" + desc = "Now that's a nic'e meatball!" + icon = 'icons/obj/food/pizzaspaghetti.dmi' + icon_state = "meatballspaghetti" + trash = /obj/item/trash/plate + bonus_reagents = list("nutriment" = 1, "vitamin" = 4) + list_reagents = list("nutriment" = 8, "vitamin" = 4) + filling_color = "#F0E68C" + +/obj/item/weapon/reagent_containers/food/snacks/spesslaw + name = "spesslaw" + desc = "A lawyers favourite." + icon = 'icons/obj/food/pizzaspaghetti.dmi' + icon_state = "spesslaw" + trash = /obj/item/trash/plate + bonus_reagents = list("nutriment" = 1, "vitamin" = 6) + list_reagents = list("nutriment" = 8, "vitamin" = 6) + filling_color = "#F0E68C" + +/obj/item/weapon/reagent_containers/food/snacks/chowmein + name = "chow mein" + desc = "A nice mix of noodles and fried vegetables." + icon = 'icons/obj/food/pizzaspaghetti.dmi' + icon_state = "chowmein" + trash = /obj/item/trash/plate + bonus_reagents = list("nutriment" = 3, "vitamin" = 4) + list_reagents = list("nutriment" = 7, "vitamin" = 6) + +/obj/item/weapon/reagent_containers/food/snacks/beefnoodle + name = "beef noodle" + desc = "Nutritious, beefy and noodly." + icon = 'icons/obj/food/pizzaspaghetti.dmi' + icon_state = "beefnoodle" + trash = /obj/item/weapon/reagent_containers/glass/bowl + bonus_reagents = list("nutriment" = 5, "vitamin" = 6) \ No newline at end of file diff --git a/code/modules/food_and_drinks/food/snacks_vend.dm b/code/modules/food_and_drinks/food/snacks_vend.dm new file mode 100644 index 0000000..fec5f1c --- /dev/null +++ b/code/modules/food_and_drinks/food/snacks_vend.dm @@ -0,0 +1,65 @@ +////////////////////////////////////////////SNACKS FROM VENDING MACHINES//////////////////////////////////////////// +//in other words: junk food +//don't even bother looking for recipes for these + +/obj/item/weapon/reagent_containers/food/snacks/candy + name = "candy" + desc = "Nougat love it or hate it." + icon_state = "candy" + trash = /obj/item/trash/candy + list_reagents = list("nutriment" = 1, "sugar" = 3) + junkiness = 25 + filling_color = "#D2691E" + +/obj/item/weapon/reagent_containers/food/snacks/sosjerky + name = "\improper Scaredy's Private Reserve Beef Jerky" + icon_state = "sosjerky" + desc = "Beef jerky made from the finest space cows." + trash = /obj/item/trash/sosjerky + list_reagents = list("nutriment" = 1, "sugar" = 3) + junkiness = 25 + filling_color = "#8B0000" + +/obj/item/weapon/reagent_containers/food/snacks/chips + name = "chips" + desc = "Commander Riker's What-The-Crisps" + icon_state = "chips" + trash = /obj/item/trash/chips + bitesize = 1 + list_reagents = list("nutriment" = 1, "sugar" = 3) + junkiness = 20 + filling_color = "#FFD700" + +/obj/item/weapon/reagent_containers/food/snacks/no_raisin + name = "4no raisins" + icon_state = "4no_raisins" + desc = "Best raisins in the universe. Not sure why." + trash = /obj/item/trash/raisins + list_reagents = list("nutriment" = 2, "sugar" = 4) + junkiness = 25 + filling_color = "#8B0000" + +/obj/item/weapon/reagent_containers/food/snacks/spacetwinkie + name = "space twinkie" + icon_state = "space_twinkie" + desc = "Guaranteed to survive longer than you will." + list_reagents = list("sugar" = 4) + junkiness = 25 + filling_color = "#FFD700" + +/obj/item/weapon/reagent_containers/food/snacks/cheesiehonkers + name = "cheesie honkers" + desc = "Bite sized cheesie snacks that will honk all over your mouth." + icon_state = "cheesie_honkers" + trash = /obj/item/trash/cheesie + list_reagents = list("nutriment" = 1, "sugar" = 3) + junkiness = 25 + filling_color = "#FFD700" + +/obj/item/weapon/reagent_containers/food/snacks/syndicake + name = "syndi-cakes" + icon_state = "syndi_cakes" + desc = "An extremely moist snack cake that tastes just as good after being nuked." + trash = /obj/item/trash/syndi_cakes + list_reagents = list("nutriment" = 4, "doctorsdelight" = 5) + filling_color = "#F5F5DC" diff --git a/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm b/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm new file mode 100644 index 0000000..54acb1a --- /dev/null +++ b/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm @@ -0,0 +1,166 @@ +#define STORAGE_CAPACITY 30 +#define LIQUID_CAPACIY 200 +#define MIXER_CAPACITY 100 + +/obj/machinery/food_cart + name = "food cart" + desc = "New generation hot dog stand." + icon = 'icons/obj/kitchen.dmi' + icon_state = "foodcart" + density = 1 + anchored = 0 + use_power = 0 + var/food_stored = 0 + var/glasses = 0 + var/portion = 10 + var/selected_drink + var/list/stored_food = list() + flags = OPENCONTAINER + var/obj/item/weapon/reagent_containers/mixer + +/obj/machinery/food_cart/New() + ..() + create_reagents(LIQUID_CAPACIY) + reagents.set_reacting(FALSE) + mixer = new /obj/item/weapon/reagent_containers(src, MIXER_CAPACITY) + mixer.name = "Mixer" + +/obj/machinery/food_cart/Destroy() + if(mixer) + qdel(mixer) + mixer = null + return ..() + +/obj/machinery/food_cart/attack_hand(mob/user) + user.set_machine(src) + interact(user) + +/obj/machinery/food_cart/interact(mob/user) + var/dat + dat += "
    STORED INGREDIENTS AND DRINKS
    " + dat += "Remaining glasses: [glasses]
    " + dat += "Portion: [portion]
    " + for(var/datum/reagent/R in reagents.reagent_list) + dat += "[R.name]: [R.volume] " + dat += "Purge" + if (glasses > 0) + dat += "Pour in a glass" + dat += "Add to the mixer
    " + dat += "

    MIXER CONTENTS
    " + for(var/datum/reagent/R in mixer.reagents.reagent_list) + dat += "[R.name]: [R.volume] " + dat += "Transfer back" + if (glasses > 0) + dat += "Pour in a glass" + dat += "
    " + dat += "

    STORED FOOD
    " + for(var/V in stored_food) + if(stored_food[V] > 0) + dat += "[V]: [stored_food[V]] Dispense
    " + dat += "

    Refresh Close" + + var/datum/browser/popup = new(user, "foodcart","Food Cart", 500, 350, src) + popup.set_content(dat) + popup.open() + +/obj/machinery/food_cart/proc/isFull() + return food_stored >= STORAGE_CAPACITY + +/obj/machinery/food_cart/attackby(obj/item/O, mob/user, params) + if(istype(O, /obj/item/weapon/reagent_containers/food/drinks/drinkingglass)) + var/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/DG = O + if(!DG.reagents.total_volume) //glass is empty + if(!user.drop_item()) + return + qdel(DG) + glasses++ + user << "The [src] accepts the drinking glass, sterilizing it." + else if(istype(O, /obj/item/weapon/reagent_containers/food/snacks)) + if(isFull()) + user << "The [src] is at full capacity." + else + var/obj/item/weapon/reagent_containers/food/snacks/S = O + if(!user.drop_item()) + return + S.loc = src + if(stored_food[sanitize(S.name)]) + stored_food[sanitize(S.name)]++ + else + stored_food[sanitize(S.name)] = 1 + else if(istype(O, /obj/item/stack/sheet/glass)) + var/obj/item/stack/sheet/glass/G = O + if(G.get_amount() >= 1) + G.use(1) + glasses += 4 + user << "The [src] accepts a sheet of glass." + else if(istype(O, /obj/item/weapon/storage/bag/tray)) + var/obj/item/weapon/storage/bag/tray/T = O + for(var/obj/item/weapon/reagent_containers/food/snacks/S in T.contents) + if(isFull()) + user << "The [src] is at full capacity." + break + else + T.remove_from_storage(S, src) + if(stored_food[sanitize(S.name)]) + stored_food[sanitize(S.name)]++ + else + stored_food[sanitize(S.name)] = 1 + else if(O.is_open_container()) + return + else + . = ..() + updateDialog() + +/obj/machinery/food_cart/Topic(href, href_list) + if(..()) + return + + if(href_list["disposeI"]) + reagents.del_reagent(href_list["disposeI"]) + + if(href_list["dispense"]) + if(stored_food[href_list["dispense"]]-- <= 0) + stored_food[href_list["dispense"]] = 0 + else + for(var/obj/O in contents) + if(sanitize(O.name) == href_list["dispense"]) + O.loc = src.loc + break + + if(href_list["portion"]) + portion = Clamp(input("How much drink do you want to dispense per glass?") as num, 0, 50) + + if(href_list["pour"] || href_list["m_pour"]) + if(glasses-- <= 0) + usr << "There are no glasses left!" + glasses = 0 + else + var/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/DG = new(loc) + if(href_list["pour"]) + reagents.trans_id_to(DG, href_list["pour"], portion) + if(href_list["m_pour"]) + mixer.reagents.trans_id_to(DG, href_list["m_pour"], portion) + + if(href_list["mix"]) + if(reagents.trans_id_to(mixer, href_list["mix"], portion) == 0) + usr << "The [mixer] is full!" + + if(href_list["transfer"]) + if(mixer.reagents.trans_id_to(src, href_list["transfer"], portion) == 0) + usr << "The [src] is full!" + + updateDialog() + + if(href_list["close"]) + usr.unset_machine() + usr << browse(null,"window=foodcart") + return + +/obj/machinery/food_cart/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + new /obj/item/stack/sheet/metal(loc, 4) + qdel(src) + +#undef STORAGE_CAPACITY +#undef LIQUID_CAPACIY +#undef MIXER_CAPACITY diff --git a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm new file mode 100644 index 0000000..6253255 --- /dev/null +++ b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm @@ -0,0 +1,239 @@ + +/obj/machinery/gibber + name = "gibber" + desc = "The name isn't descriptive enough?" + icon = 'icons/obj/kitchen.dmi' + icon_state = "grinder" + density = 1 + anchored = 1 + var/operating = 0 //Is it on? + var/dirty = 0 // Does it need cleaning? + var/gibtime = 40 // Time from starting until meat appears + var/meat_produced = 0 + var/ignore_clothing = 0 + use_power = 1 + idle_power_usage = 2 + active_power_usage = 500 + +//auto-gibs anything that bumps into it +/obj/machinery/gibber/autogibber + var/turf/input_plate + +/obj/machinery/gibber/autogibber/New() + ..() + spawn(5) + for(var/i in cardinal) + var/obj/machinery/mineral/input/input_obj = locate( /obj/machinery/mineral/input, get_step(src.loc, i) ) + if(input_obj) + if(isturf(input_obj.loc)) + input_plate = input_obj.loc + qdel(input_obj) + break + + if(!input_plate) + diary << "a [src] didn't find an input plate." + return + +/obj/machinery/gibber/autogibber/Bumped(atom/A) + if(!input_plate) return + + if(ismob(A)) + var/mob/M = A + + if(M.loc == input_plate) + M.loc = src + M.gib() + + +/obj/machinery/gibber/New() + ..() + src.add_overlay(image('icons/obj/kitchen.dmi', "grjam")) + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/gibber(null) + B.apply_default_parts(src) + +/obj/item/weapon/circuitboard/machine/gibber + name = "circuit board (Gibber)" + build_path = /obj/machinery/gibber + origin_tech = "programming=2;engineering=2" + req_components = list( + /obj/item/weapon/stock_parts/matter_bin = 1, + /obj/item/weapon/stock_parts/manipulator = 1) + +/obj/machinery/gibber/RefreshParts() + var/gib_time = 40 + for(var/obj/item/weapon/stock_parts/matter_bin/B in component_parts) + meat_produced += B.rating + for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts) + gib_time -= 5 * M.rating + gibtime = gib_time + if(M.rating >= 2) + ignore_clothing = 1 + +/obj/machinery/gibber/update_icon() + cut_overlays() + if (dirty) + src.add_overlay(image('icons/obj/kitchen.dmi', "grbloody")) + if(stat & (NOPOWER|BROKEN)) + return + if (!occupant) + src.add_overlay(image('icons/obj/kitchen.dmi', "grjam")) + else if (operating) + src.add_overlay(image('icons/obj/kitchen.dmi', "gruse")) + else + src.add_overlay(image('icons/obj/kitchen.dmi', "gridle")) + +/obj/machinery/gibber/attack_paw(mob/user) + return src.attack_hand(user) + +/obj/machinery/gibber/container_resist() + src.go_out() + return + +/obj/machinery/gibber/attack_hand(mob/user) + if(stat & (NOPOWER|BROKEN)) + return + if(operating) + user << "It's locked and running." + return + + if(user.pulling && user.a_intent == "grab" && isliving(user.pulling)) + var/mob/living/L = user.pulling + if(!iscarbon(L)) + user << "This item is not suitable for the gibber!" + return + var/mob/living/carbon/C = L + if(C.buckled ||C.has_buckled_mobs()) + user << "[C] is attached to something!" + return + if(C.abiotic(1) && !ignore_clothing) + user << "Subject may not have abiotic items on." + return + + user.visible_message("[user] starts to put [C] into the gibber!") + src.add_fingerprint(user) + if(do_after(user, gibtime, target = src)) + if(C && user.pulling == C && !C.buckled && !C.has_buckled_mobs() && !occupant) + user.visible_message("[user] stuffs [C] into the gibber!") + C.forceMove(src) + occupant = C + update_icon() + else + startgibbing(user) + +/obj/machinery/gibber/attackby(obj/item/P, mob/user, params) + if(default_deconstruction_screwdriver(user, "grinder_open", "grinder", P)) + return + + else if(exchange_parts(user, P)) + return + + else if(default_pry_open(P)) + return + + else if(default_unfasten_wrench(user, P)) + return + + else if(default_deconstruction_crowbar(P)) + return + else + return ..() + + + +/obj/machinery/gibber/verb/eject() + set category = "Object" + set name = "empty gibber" + set src in oview(1) + + if(usr.incapacitated()) + return + src.go_out() + add_fingerprint(usr) + return + +/obj/machinery/gibber/proc/go_out() + dropContents() + update_icon() + +/obj/machinery/gibber/proc/startgibbing(mob/user) + if(src.operating) + return + if(!src.occupant) + visible_message("You hear a loud metallic grinding sound.") + return + use_power(1000) + visible_message("You hear a loud squelchy grinding sound.") + playsound(src.loc, 'sound/machines/juicer.ogg', 50, 1) + src.operating = 1 + update_icon() + + var/offset = prob(50) ? -2 : 2 + animate(src, pixel_x = pixel_x + offset, time = 0.2, loop = 200) //start shaking + var/sourcename = src.occupant.real_name + var/sourcejob + if(ishuman(occupant)) + var/mob/living/carbon/human/gibee = occupant + sourcejob = gibee.job + var/sourcenutriment = src.occupant.nutrition / 15 + var/sourcetotalreagents = src.occupant.reagents.total_volume + var/gibtype = /obj/effect/decal/cleanable/blood/gibs + var/typeofmeat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human + var/typeofskin = /obj/item/stack/sheet/animalhide/human + + var/obj/item/weapon/reagent_containers/food/snacks/meat/slab/allmeat[meat_produced] + var/obj/item/stack/sheet/animalhide/allskin + + if(ishuman(occupant)) + var/mob/living/carbon/human/gibee = occupant + if(gibee.dna && gibee.dna.species) + typeofmeat = gibee.dna.species.meat + typeofskin = gibee.dna.species.skinned_type + else + typeofmeat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human + typeofskin = /obj/item/stack/sheet/animalhide/human + else if(iscarbon(occupant)) + var/mob/living/carbon/C = occupant + typeofmeat = C.type_of_meat + gibtype = C.gib_type + if(ismonkey(C)) + typeofskin = /obj/item/stack/sheet/animalhide/monkey + else if(isalien(C)) + typeofskin = /obj/item/stack/sheet/animalhide/xeno + + for (var/i=1 to meat_produced) + var/obj/item/weapon/reagent_containers/food/snacks/meat/slab/newmeat = new typeofmeat + var/obj/item/stack/sheet/animalhide/newskin = new typeofskin + newmeat.name = "[sourcename] [newmeat.name]" + if(istype(newmeat)) + newmeat.subjectname = sourcename + newmeat.reagents.add_reagent ("nutriment", sourcenutriment / meat_produced) // Thehehe. Fat guys go first + if(sourcejob) + newmeat.subjectjob = sourcejob + src.occupant.reagents.trans_to (newmeat, round (sourcetotalreagents / meat_produced, 1)) // Transfer all the reagents from the + allmeat[i] = newmeat + allskin = newskin + + add_logs(user, occupant, "gibbed") + src.occupant.death(1) + src.occupant.ghostize() + qdel(src.occupant) + spawn(src.gibtime) + playsound(src.loc, 'sound/effects/splat.ogg', 50, 1) + operating = 0 + var/turf/T = get_turf(src) + var/list/turf/nearby_turfs = RANGE_TURFS(3,T) - T + var/obj/item/skin = allskin + skin.loc = src.loc + skin.throw_at_fast(pick(nearby_turfs),meat_produced,3) + for (var/i=1 to meat_produced) + var/obj/item/meatslab = allmeat[i] + meatslab.loc = src.loc + meatslab.throw_at_fast(pick(nearby_turfs),i,3) + for (var/turfs=1 to meat_produced) + var/turf/gibturf = pick(nearby_turfs) + if (!gibturf.density && src in view(gibturf)) + new gibtype(gibturf,i) + + pixel_x = initial(pixel_x) //return to its spot after shaking + src.operating = 0 + update_icon() diff --git a/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm b/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm new file mode 100644 index 0000000..56b4ec3 --- /dev/null +++ b/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm @@ -0,0 +1,222 @@ +#define ICECREAM_VANILLA 1 +#define ICECREAM_CHOCOLATE 2 +#define ICECREAM_STRAWBERRY 3 +#define ICECREAM_BLUE 4 +#define CONE_WAFFLE 5 +#define CONE_CHOC 6 + +/obj/machinery/icecream_vat + name = "ice cream vat" + desc = "Ding-aling ding dong. Get your Nanotrasen-approved ice cream!" + icon = 'icons/obj/kitchen.dmi' + icon_state = "icecream_vat" + density = 1 + anchored = 0 + use_power = 0 + layer = BELOW_OBJ_LAYER + var/list/product_types = list() + var/dispense_flavour = ICECREAM_VANILLA + var/flavour_name = "vanilla" + flags = OPENCONTAINER + obj_integrity = 300 + max_integrity = 300 + +/obj/machinery/icecream_vat/proc/get_ingredient_list(type) + switch(type) + if(ICECREAM_CHOCOLATE) + return list("milk", "ice", "cocoa") + if(ICECREAM_STRAWBERRY) + return list("milk", "ice", "berryjuice") + if(ICECREAM_BLUE) + return list("milk", "ice", "singulo") + if(CONE_WAFFLE) + return list("flour", "sugar") + if(CONE_CHOC) + return list("flour", "sugar", "cocoa") + else + return list("milk", "ice") + + +/obj/machinery/icecream_vat/proc/get_flavour_name(flavour_type) + switch(flavour_type) + if(ICECREAM_CHOCOLATE) + return "chocolate" + if(ICECREAM_STRAWBERRY) + return "strawberry" + if(ICECREAM_BLUE) + return "blue" + if(CONE_WAFFLE) + return "waffle" + if(CONE_CHOC) + return "chocolate" + else + return "vanilla" + + +/obj/machinery/icecream_vat/New() + ..() + while(product_types.len < 6) + product_types.Add(5) + create_reagents() + reagents.set_reacting(FALSE) + reagents.add_reagent("milk", 5) + reagents.add_reagent("flour", 5) + reagents.add_reagent("sugar", 5) + reagents.add_reagent("ice", 5) + reagents.add_reagent("cocoa", 5) + reagents.add_reagent("berryjuice", 5) + reagents.add_reagent("singulo", 5) + +/obj/machinery/icecream_vat/attack_hand(mob/user) + user.set_machine(src) + interact(user) + +/obj/machinery/icecream_vat/interact(mob/user) + var/dat + dat += "ICE CREAM
    " + dat += "Dispensing: [flavour_name] icecream

    " + dat += "Vanilla ice cream: Select Make x5 [product_types[ICECREAM_VANILLA]] scoops left. (Ingredients: milk, ice)
    " + dat += "Strawberry ice cream: Select Make x5 [product_types[ICECREAM_STRAWBERRY]] dollops left. (Ingredients: milk, ice, berry juice)
    " + dat += "Chocolate ice cream: Select Make x5 [product_types[ICECREAM_CHOCOLATE]] dollops left. (Ingredients: milk, ice, coco powder)
    " + dat += "Blue ice cream: Select Make x5 [product_types[ICECREAM_BLUE]] dollops left. (Ingredients: milk, ice, singulo)
    " + dat += "
    CONES
    " + dat += "Waffle cones: Dispense Make x5 [product_types[CONE_WAFFLE]] cones left. (Ingredients: flour, sugar)
    " + dat += "Chocolate cones: Dispense Make x5 [product_types[CONE_CHOC]] cones left. (Ingredients: flour, sugar, coco powder)
    " + dat += "
    " + dat += "VAT CONTENT
    " + for(var/datum/reagent/R in reagents.reagent_list) + dat += "[R.name]: [R.volume]" + dat += "Purge
    " + dat += "Refresh Close" + + var/datum/browser/popup = new(user, "icecreamvat","Icecream Vat", 700, 500, src) + popup.set_content(dat) + popup.open() + +/obj/machinery/icecream_vat/attackby(obj/item/O, mob/user, params) + if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/icecream)) + var/obj/item/weapon/reagent_containers/food/snacks/icecream/I = O + if(!I.ice_creamed) + if(product_types[dispense_flavour] > 0) + src.visible_message("\icon[src] [user] scoops delicious [flavour_name] ice cream into [I].") + product_types[dispense_flavour] -= 1 + I.add_ice_cream(flavour_name) + // if(beaker) + // beaker.reagents.trans_to(I, 10) + if(I.reagents.total_volume < 10) + I.reagents.add_reagent("sugar", 10 - I.reagents.total_volume) + else + user << "There is not enough ice cream left!" + else + user << "[O] already has ice cream in it." + return 1 + else if(O.is_open_container()) + return + else + return ..() + +/obj/machinery/icecream_vat/proc/make(mob/user, make_type, amount) + for(var/R in get_ingredient_list(make_type)) + if(reagents.has_reagent(R, amount)) + continue + amount = 0 + break + if(amount) + for(var/R in get_ingredient_list(make_type)) + reagents.remove_reagent(R, amount) + product_types[make_type] += amount + var/flavour = get_flavour_name(make_type) + if(make_type > 4) + src.visible_message("[user] cooks up some [flavour] cones.") + else + src.visible_message("[user] whips up some [flavour] icecream.") + else + user << "You don't have the ingredients to make this!" + +/obj/machinery/icecream_vat/Topic(href, href_list) + if(..()) + return + if(href_list["select"]) + dispense_flavour = text2num(href_list["select"]) + flavour_name = get_flavour_name(dispense_flavour) + src.visible_message("[usr] sets [src] to dispense [flavour_name] flavoured ice cream.") + + if(href_list["cone"]) + var/dispense_cone = text2num(href_list["cone"]) + var/cone_name = get_flavour_name(dispense_cone) + if(product_types[dispense_cone] >= 1) + product_types[dispense_cone] -= 1 + var/obj/item/weapon/reagent_containers/food/snacks/icecream/I = new(src.loc) + I.cone_type = cone_name + I.icon_state = "icecream_cone_[cone_name]" + switch (I.cone_type) + if ("waffle") + I.reagents.add_reagent("nutriment", 1) + if ("chocolate") + I.reagents.add_reagent("cocoa", 1) // chocolate ain't as nutritious kids + + I.desc = "Delicious [cone_name] cone, but no ice cream." + src.visible_message("[usr] dispenses a crunchy [cone_name] cone from [src].") + else + usr << "There are no [cone_name] cones left!" + + if(href_list["make"]) + var/amount = (text2num(href_list["amount"])) + var/C = text2num(href_list["make"]) + make(usr, C, amount) + + if(href_list["disposeI"]) + reagents.del_reagent(href_list["disposeI"]) + + updateDialog() + + if(href_list["refresh"]) + updateDialog() + + if(href_list["close"]) + usr.unset_machine() + usr << browse(null,"window=icecreamvat") + return + +/obj/item/weapon/reagent_containers/food/snacks/icecream + name = "ice cream cone" + desc = "Delicious waffle cone, but no ice cream." + icon = 'icons/obj/kitchen.dmi' + icon_state = "icecream_cone_waffle" //default for admin-spawned cones, href_list["cone"] should overwrite this all the time + var/ice_creamed = 0 + var/cone_type + bitesize = 3 + +/obj/item/weapon/reagent_containers/food/snacks/icecream/New() + create_reagents(20) + reagents.add_reagent("nutriment", 4) + +/obj/item/weapon/reagent_containers/food/snacks/icecream/proc/add_ice_cream(var/flavour_name) + name = "[flavour_name] icecream" + src.add_overlay("icecream_[flavour_name]") + switch (flavour_name) // adding the actual reagents advertised in the ingredient list + if ("vanilla") + desc = "A delicious [cone_type] cone filled with vanilla ice cream. All the other ice creams take content from it." + if ("chocolate") + desc = "A delicious [cone_type] cone filled with chocolate ice cream. Surprisingly, made with real cocoa." + reagents.add_reagent("cocoa", 2) + if ("strawberry") + desc = "A delicious [cone_type] cone filled with strawberry ice cream. Definitely not made with real strawberries." + reagents.add_reagent("berryjuice", 2) + if ("blue") + desc = "A delicious [cone_type] cone filled with blue ice cream. Made with real... blue?" + reagents.add_reagent("singulo", 2) + ice_creamed = 1 + +/obj/machinery/icecream_vat/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + new /obj/item/stack/sheet/metal(loc, 4) + qdel(src) + + +#undef ICECREAM_VANILLA +#undef ICECREAM_CHOCOLATE +#undef ICECREAM_STRAWBERRY +#undef ICECREAM_BLUE +#undef CONE_WAFFLE +#undef CONE_CHOC diff --git a/code/modules/food_and_drinks/kitchen_machinery/juicer.dm b/code/modules/food_and_drinks/kitchen_machinery/juicer.dm new file mode 100644 index 0000000..19c3112 --- /dev/null +++ b/code/modules/food_and_drinks/kitchen_machinery/juicer.dm @@ -0,0 +1,188 @@ + +/obj/machinery/juicer + name = "juicer" + icon = 'icons/obj/kitchen.dmi' + icon_state = "juicer1" + layer = BELOW_OBJ_LAYER + density = 1 + anchored = 0 + use_power = 1 + idle_power_usage = 5 + active_power_usage = 100 + pass_flags = PASSTABLE + var/obj/item/weapon/reagent_containers/beaker = null + var/global/list/allowed_items = list ( + /obj/item/weapon/reagent_containers/food/snacks/grown/tomato = "tomatojuice", + /obj/item/weapon/reagent_containers/food/snacks/grown/carrot = "carrotjuice", + /obj/item/weapon/reagent_containers/food/snacks/grown/berries = "berryjuice", + /obj/item/weapon/reagent_containers/food/snacks/grown/grapes = "grapejuice", + /obj/item/weapon/reagent_containers/food/snacks/grown/grapes/green = "grapejuice", + /obj/item/weapon/reagent_containers/food/snacks/grown/banana = "banana", + /obj/item/weapon/reagent_containers/food/snacks/grown/potato = "potato", + /obj/item/weapon/reagent_containers/food/snacks/grown/citrus/lemon = "lemonjuice", + /obj/item/weapon/reagent_containers/food/snacks/grown/citrus/orange = "orangejuice", + /obj/item/weapon/reagent_containers/food/snacks/grown/citrus/lime = "limejuice", + /obj/item/weapon/reagent_containers/food/snacks/grown/watermelon = "watermelonjuice", + /obj/item/weapon/reagent_containers/food/snacks/watermelonslice = "watermelonjuice", + /obj/item/weapon/reagent_containers/food/snacks/grown/berries/poison = "poisonberryjuice", + /obj/item/weapon/reagent_containers/food/snacks/grown/pumpkin = "pumpkinjuice", + /obj/item/weapon/reagent_containers/food/snacks/grown/blumpkin = "blumpkinjuice", + ) + +/obj/machinery/juicer/New() + beaker = new /obj/item/weapon/reagent_containers/glass/beaker/large(src) + +/obj/machinery/juicer/update_icon() + icon_state = "juicer"+num2text(!isnull(beaker)) + return + + +/obj/machinery/juicer/attackby(obj/item/O, mob/user, params) + if(default_unfasten_wrench(user, O)) + return + if (istype(O,/obj/item/weapon/reagent_containers/glass) || \ + istype(O,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass)) + if (beaker) + return 1 + else + if(!user.unEquip(O)) + user << "\the [O] is stuck to your hand, you cannot put it in \the [src]!" + return 0 + O.loc = src + beaker = O + src.verbs += /obj/machinery/juicer/verb/detach + update_icon() + src.updateUsrDialog() + return 0 + if (!is_type_in_list(O, allowed_items)) + user << "It looks as not containing any juice." + return 1 + if(!user.unEquip(O)) + user << "\the [O] is stuck to your hand, you cannot put it in \the [src]!" + return 0 + O.loc = src + src.updateUsrDialog() + return 0 + +/obj/machinery/juicer/attack_paw(mob/user) + return src.attack_hand(user) + +/obj/machinery/juicer/attack_ai(mob/user) + return 0 + +/obj/machinery/juicer/attack_hand(mob/user) + user.set_machine(src) + interact(user) + +/obj/machinery/juicer/interact(mob/user) // The microwave Menu + var/is_chamber_empty = 0 + var/is_beaker_ready = 0 + var/processing_chamber = "" + var/beaker_contents = "" + + for (var/i in allowed_items) + for (var/obj/item/O in src.contents) + if (!istype(O,i)) + continue + processing_chamber+= "some [O]
    " + break + if (!processing_chamber) + is_chamber_empty = 1 + processing_chamber = "Nothing." + if (!beaker) + beaker_contents = "\The [src] has no beaker attached." + else if (!beaker.reagents.total_volume) + beaker_contents = "\The [src] has attached an empty beaker." + is_beaker_ready = 1 + else if (beaker.reagents.total_volume < beaker.reagents.maximum_volume) + beaker_contents = "\The [src] has attached a beaker with something." + is_beaker_ready = 1 + else + beaker_contents = "\The [src] has attached a beaker and the beaker is full!" + + var/dat = {" +Processing chamber contains:
    +[processing_chamber]
    +[beaker_contents]
    +"} + if (is_beaker_ready && !is_chamber_empty && !(stat & (NOPOWER|BROKEN))) + dat += "Turn on!
    " + if (beaker) + dat += "
    Detach a beaker!
    " + user << browse("Juicer[dat]", "window=juicer") + onclose(user, "juicer") + return + + +/obj/machinery/juicer/Topic(href, href_list) + if(..()) + return + usr.set_machine(src) + switch(href_list["action"]) + if ("juice") + juice() + + if ("detach") + detach() + src.updateUsrDialog() + return + +/obj/machinery/juicer/verb/detach() + set category = "Object" + set name = "Detach Beaker from the juicer" + set src in oview(1) + if(usr.stat || !usr.canmove || usr.restrained()) + return + if (!beaker) + return + src.verbs -= /obj/machinery/juicer/verb/detach + beaker.loc = src.loc + beaker = null + update_icon() + +/obj/machinery/juicer/proc/get_juice_id(obj/item/weapon/reagent_containers/food/snacks/grown/O) + for (var/i in allowed_items) + if (istype(O, i)) + return allowed_items[i] + +/obj/machinery/juicer/proc/get_juice_amount(obj/item/weapon/reagent_containers/food/snacks/grown/O) + if (!istype(O) || !O.seed) + return 5 + else if (O.seed.potency == -1) + return 5 + else + return round(5*sqrt(O.seed.potency)) + +/obj/machinery/juicer/proc/juice() + power_change() //it is a portable machine + if(stat & (NOPOWER|BROKEN)) + return + if (!beaker || beaker.reagents.total_volume >= beaker.reagents.maximum_volume) + return + playsound(src.loc, 'sound/machines/juicer.ogg', 50, 1) + for (var/obj/item/weapon/reagent_containers/food/snacks/O in src.contents) + var/r_id = get_juice_id(O) + beaker.reagents.add_reagent(r_id,get_juice_amount(O)) + qdel(O) + if (beaker.reagents.total_volume >= beaker.reagents.maximum_volume) + break + +/obj/structure/closet/crate/juice/New() + ..() + new/obj/machinery/juicer(src) + new/obj/item/weapon/reagent_containers/food/snacks/grown/tomato(src) + new/obj/item/weapon/reagent_containers/food/snacks/grown/carrot(src) + new/obj/item/weapon/reagent_containers/food/snacks/grown/berries(src) + new/obj/item/weapon/reagent_containers/food/snacks/grown/banana(src) + new/obj/item/weapon/reagent_containers/food/snacks/grown/grapes(src) + new/obj/item/weapon/reagent_containers/food/snacks/grown/tomato(src) + new/obj/item/weapon/reagent_containers/food/snacks/grown/carrot(src) + new/obj/item/weapon/reagent_containers/food/snacks/grown/berries(src) + new/obj/item/weapon/reagent_containers/food/snacks/grown/banana(src) + new/obj/item/weapon/reagent_containers/food/snacks/grown/grapes(src) + new/obj/item/weapon/reagent_containers/food/snacks/grown/tomato(src) + new/obj/item/weapon/reagent_containers/food/snacks/grown/carrot(src) + new/obj/item/weapon/reagent_containers/food/snacks/grown/berries(src) + new/obj/item/weapon/reagent_containers/food/snacks/grown/banana(src) + new/obj/item/weapon/reagent_containers/food/snacks/grown/grapes(src) + diff --git a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm new file mode 100644 index 0000000..13aff60 --- /dev/null +++ b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm @@ -0,0 +1,341 @@ +/obj/machinery/microwave + name = "microwave oven" + desc = "Cooks and boils stuff." + icon = 'icons/obj/kitchen.dmi' + icon_state = "mw" + layer = BELOW_OBJ_LAYER + density = 1 + anchored = 1 + use_power = 1 + idle_power_usage = 5 + active_power_usage = 100 + var/operating = 0 // Is it on? + var/dirty = 0 // = {0..100} Does it need cleaning? + var/broken = 0 // ={0,1,2} How broken is it??? + var/max_n_of_items = 10 // whatever fat fuck made this a global var needs to look at themselves in the mirror sometime + var/efficiency = 0 + + +// see code/modules/food/recipes_microwave.dm for recipes + +/******************* +* Initialising +********************/ + +/obj/machinery/microwave/New() + create_reagents(100) + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/microwave(null) + B.apply_default_parts(src) + +/obj/item/weapon/circuitboard/machine/microwave + name = "circuit board (Microwave)" + build_path = /obj/machinery/microwave + origin_tech = "programming=2;magnets=2" + req_components = list( + /obj/item/weapon/stock_parts/micro_laser = 1, + /obj/item/weapon/stock_parts/matter_bin = 1, + /obj/item/stack/cable_coil = 2, + /obj/item/weapon/stock_parts/console_screen = 1, + /obj/item/stack/sheet/glass = 1) + +/obj/machinery/microwave/RefreshParts() + var/E + var/max_items = 10 + for(var/obj/item/weapon/stock_parts/micro_laser/M in component_parts) + E += M.rating + for(var/obj/item/weapon/stock_parts/matter_bin/M in component_parts) + max_items = 10 * M.rating + efficiency = E + max_n_of_items = max_items + +/******************* +* Item Adding +********************/ + +/obj/machinery/microwave/attackby(obj/item/O, mob/user, params) + if(operating) + return + if(!broken && dirty<100) + if(default_deconstruction_screwdriver(user, "mw-o", "mw", O)) + return + if(default_unfasten_wrench(user, O)) + return + if(exchange_parts(user, O)) + return + + if(default_deconstruction_crowbar(O)) + return + + if(src.broken > 0) + if(src.broken == 2 && istype(O, /obj/item/weapon/wirecutters)) // If it's broken and they're using a screwdriver + user.visible_message( \ + "[user] starts to fix part of the microwave.", \ + "You start to fix part of the microwave..." \ + ) + if (do_after(user,20/O.toolspeed, target = src)) + user.visible_message( \ + "[user] fixes part of the microwave.", \ + "You fix part of the microwave." \ + ) + src.broken = 1 // Fix it a bit + else if(src.broken == 1 && istype(O, /obj/item/weapon/weldingtool)) // If it's broken and they're doing the wrench + user.visible_message( \ + "[user] starts to fix part of the microwave.", \ + "You start to fix part of the microwave..." \ + ) + if (do_after(user,20/O.toolspeed, target = src)) + user.visible_message( \ + "[user] fixes the microwave.", \ + "You fix the microwave." \ + ) + src.icon_state = "mw" + src.broken = 0 // Fix it! + src.dirty = 0 // just to be sure + src.flags = OPENCONTAINER + return 0 //to use some fuel + else + user << "It's broken!" + return 1 + else if(istype(O, /obj/item/weapon/reagent_containers/spray/)) + var/obj/item/weapon/reagent_containers/spray/clean_spray = O + if(clean_spray.reagents.has_reagent("cleaner",clean_spray.amount_per_transfer_from_this)) + clean_spray.reagents.remove_reagent("cleaner",clean_spray.amount_per_transfer_from_this,1) + playsound(loc, 'sound/effects/spray3.ogg', 50, 1, -6) + user.visible_message( \ + "[user] has cleaned the microwave.", \ + "You clean the microwave." \ + ) + src.dirty = 0 // It's clean! + src.broken = 0 // just to be sure + src.icon_state = "mw" + src.flags = OPENCONTAINER + src.updateUsrDialog() + return 1 // Disables the after-attack so we don't spray the floor/user. + else + user << "You need more space cleaner!" + return 1 + + else if(istype(O, /obj/item/weapon/soap/)) // If they're trying to clean it then let them + var/obj/item/weapon/soap/P = O + user.visible_message( \ + "[user] starts to clean the microwave.", \ + "You start to clean the microwave..." \ + ) + if (do_after(user, P.cleanspeed, target = src)) + user.visible_message( \ + "[user] has cleaned the microwave.", \ + "You clean the microwave." \ + ) + src.dirty = 0 // It's clean! + src.broken = 0 // just to be sure + src.icon_state = "mw" + src.flags = OPENCONTAINER + + else if(src.dirty==100) // The microwave is all dirty so can't be used! + user << "It's dirty!" + return 1 + + else if(istype(O, /obj/item/weapon/storage/bag/tray)) + var/obj/item/weapon/storage/T = O + var/loaded = 0 + for(var/obj/item/weapon/reagent_containers/food/snacks/S in T.contents) + if (contents.len>=max_n_of_items) + user << "[src] is full, you cannot put more!" + return 1 + T.remove_from_storage(S, src) + loaded++ + + if(loaded) + user << "You insert [loaded] items into [src]." + + + else if(istype(O,/obj/item/weapon/reagent_containers/food/snacks)) + if (contents.len>=max_n_of_items) + user << "[src] is full, you cannot put more!" + return 1 + else + // user.unEquip(O) //This just causes problems so far as I can tell. -Pete + if(!user.drop_item()) + user << "\the [O] is stuck to your hand, you cannot put it in \the [src]!" + return 0 + O.loc = src + user.visible_message( \ + "[user] has added \the [O] to \the [src].", \ + "You add \the [O] to \the [src].") + + else + ..() + updateUsrDialog() + +/obj/machinery/microwave/attack_paw(mob/user) + return src.attack_hand(user) + +/obj/machinery/microwave/attack_ai(mob/user) + return 0 + +/obj/machinery/microwave/attack_hand(mob/user) + if(..()) + return + user.set_machine(src) + interact(user) + +/******************* +* Microwave Menu +********************/ + +/obj/machinery/microwave/interact(mob/user) // The microwave Menu + if(panel_open || !anchored) + return + var/dat = "
    " + if(broken > 0) + dat += "ERROR: 09734014-A2379-D18746 --Bad memory
    Contact your operator or use command line to rebase memory ///git checkout {HEAD} -a commit pull --rebase push {*NEW HEAD*}
    " //Thats how all the git fiddling looks to me + else if(operating) + dat += "Microwaving in progress!
    Please wait...!" + else if(dirty==100) + dat += "ERROR: >> 0 --Response input zero
    Contact your operator of the device manifactor support." + else + var/list/items_counts = new + for (var/obj/O in contents) + items_counts[O.name]++ + + for (var/O in items_counts) + var/N = items_counts[O] + dat += "[capitalize(O)]: [N]
    " + + if (items_counts.len==0) + dat += "The microwave is empty." + else + dat = "

    Ingredients:

    [dat]" + dat += "
    Turn on" + dat += "Eject ingredients
    " + + var/datum/browser/popup = new(user, "microwave", name, 300, 300) + popup.set_content(dat) + popup.open() + +/*********************************** +* Microwave Menu Handling/Cooking +************************************/ + +/obj/machinery/microwave/proc/cook() + if(stat & (NOPOWER|BROKEN)) + return + start() + + if (prob(max(5/efficiency-5,dirty*5))) //a clean unupgraded microwave has no risk of failure + muck_start() + if (!microwaving(4)) + muck_finish() + return + muck_finish() + return + + else if (has_extra_item()) + if (!microwaving(4)) + broke() + return + + broke() + return + + else + + if(!microwaving(10)) + abort() + return + stop() + + for(var/obj/item/weapon/reagent_containers/food/snacks/F in contents) + if(F.cooked_type) + var/obj/item/weapon/reagent_containers/food/snacks/S = new F.cooked_type (get_turf(src)) + F.initialize_cooked_food(S, efficiency) + feedback_add_details("food_made","[F.type]") + else + new /obj/item/weapon/reagent_containers/food/snacks/badrecipe(src) + if(dirty < 100) + dirty++ + qdel(F) + + return + +/obj/machinery/microwave/proc/microwaving(seconds as num) + for (var/i=1 to seconds) + if (stat & (NOPOWER|BROKEN)) + return 0 + use_power(500) + sleep(max(12-2*efficiency,2)) // standard microwave means sleep(10). The better the efficiency, the faster the cooking + return 1 + +/obj/machinery/microwave/proc/has_extra_item() + for (var/obj/O in contents) + if ( \ + !istype(O,/obj/item/weapon/reagent_containers/food) && \ + !istype(O, /obj/item/weapon/grown) \ + ) + return 1 + return 0 + +/obj/machinery/microwave/proc/start() + visible_message("The microwave turns on.", "You hear a microwave humming.") + operating = 1 + icon_state = "mw1" + updateUsrDialog() + +/obj/machinery/microwave/proc/abort() + operating = 0 // Turn it off again aferwards + icon_state = "mw" + updateUsrDialog() + +/obj/machinery/microwave/proc/stop() + playsound(src.loc, 'sound/machines/ding.ogg', 50, 1) + abort() + +/obj/machinery/microwave/proc/dispose() + for (var/obj/O in contents) + O.loc = src.loc + usr << "You dispose of the microwave contents." + updateUsrDialog() + +/obj/machinery/microwave/proc/muck_start() + playsound(src.loc, 'sound/effects/splat.ogg', 50, 1) // Play a splat sound + icon_state = "mwbloody1" // Make it look dirty!! + +/obj/machinery/microwave/proc/muck_finish() + playsound(src.loc, 'sound/machines/ding.ogg', 50, 1) + visible_message("The microwave gets covered in muck!") + dirty = 100 // Make it dirty so it can't be used util cleaned + icon_state = "mwbloody" // Make it look dirty too + operating = 0 // Turn it off again aferwards + updateUsrDialog() + for(var/obj/item/weapon/reagent_containers/food/snacks/S in src) + if(prob(50)) + new /obj/item/weapon/reagent_containers/food/snacks/badrecipe(src) + qdel(S) + +/obj/machinery/microwave/proc/broke() + var/datum/effect_system/spark_spread/s = new + s.set_up(2, 1, src) + s.start() + icon_state = "mwb" // Make it look all busted up and shit + visible_message("The microwave breaks!") //Let them know they're stupid + broken = 2 // Make it broken so it can't be used util fixed + flags = null //So you can't add condiments + operating = 0 // Turn it off again aferwards + updateUsrDialog() + +/obj/machinery/microwave/Topic(href, href_list) + if(..() || panel_open) + return + + usr.set_machine(src) + if(operating) + updateUsrDialog() + return + + switch(href_list["action"]) + if ("cook") + cook() + + if ("dispose") + dispose() + updateUsrDialog() diff --git a/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm b/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm new file mode 100644 index 0000000..a0e8652 --- /dev/null +++ b/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm @@ -0,0 +1,102 @@ +/obj/machinery/monkey_recycler + name = "monkey recycler" + desc = "A machine used for recycling dead monkeys into monkey cubes. It currently produces 1 cube for every 5 monkeys inserted." // except it literally never does + icon = 'icons/obj/kitchen.dmi' + icon_state = "grinder" + layer = BELOW_OBJ_LAYER + density = 1 + anchored = 1 + use_power = 1 + idle_power_usage = 5 + active_power_usage = 50 + var/grinded = 0 + var/required_grind = 5 + var/cube_production = 1 + + +/obj/machinery/monkey_recycler/New() + ..() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/monkey_recycler(null) + B.apply_default_parts(src) + +/obj/item/weapon/circuitboard/machine/monkey_recycler + name = "circuit board (Monkey Recycler)" + build_path = /obj/machinery/monkey_recycler + origin_tech = "programming=1;biotech=2" + req_components = list( + /obj/item/weapon/stock_parts/matter_bin = 1, + /obj/item/weapon/stock_parts/manipulator = 1) + +/obj/machinery/monkey_recycler/RefreshParts() + var/req_grind = 5 + var/cubes_made = 1 + for(var/obj/item/weapon/stock_parts/manipulator/B in component_parts) + req_grind -= B.rating + for(var/obj/item/weapon/stock_parts/matter_bin/M in component_parts) + cubes_made = M.rating + cube_production = cubes_made + required_grind = req_grind + src.desc = "A machine used for recycling dead monkeys into monkey cubes. It currently produces [cubes_made] cube(s) for every [required_grind] monkey(s) inserted." + +/obj/machinery/monkey_recycler/attackby(obj/item/O, mob/user, params) + if(default_deconstruction_screwdriver(user, "grinder_open", "grinder", O)) + return + + if(exchange_parts(user, O)) + return + + if(default_pry_open(O)) + return + + if(default_unfasten_wrench(user, O)) + power_change() + return + + if(default_deconstruction_crowbar(O)) + return + + if(stat) //NOPOWER etc + return + else + return ..() + +/obj/machinery/monkey_recycler/MouseDrop_T(mob/living/target, mob/living/user) + if(!istype(target)) + return + if(ismonkey(target)) + stuff_monkey_in(target, user) + +/obj/machinery/monkey_recycler/proc/stuff_monkey_in(mob/living/carbon/monkey/target, mob/living/user) + if(!istype(target)) + return + if(target.stat == 0) + user << "The monkey is struggling far too much to put it in the recycler." + return + if(target.buckled || target.has_buckled_mobs()) + user << "The monkey is attached to something." + return + qdel(target) + user << "You stuff the monkey into the machine." + playsound(src.loc, 'sound/machines/juicer.ogg', 50, 1) + var/offset = prob(50) ? -2 : 2 + animate(src, pixel_x = pixel_x + offset, time = 0.2, loop = 200) //start shaking + use_power(500) + grinded++ + sleep(50) + pixel_x = initial(pixel_x) //return to its spot after shaking + user << "The machine now has [grinded] monkey\s worth of material stored." + + +/obj/machinery/monkey_recycler/attack_hand(mob/user) + if (src.stat != 0) //NOPOWER etc + return + if(grinded >= required_grind) + user << "The machine hisses loudly as it condenses the grinded monkey meat. After a moment, it dispenses a brand new monkey cube." + playsound(src.loc, 'sound/machines/hiss.ogg', 50, 1) + grinded -= required_grind + for(var/i = 0, i < cube_production, i++) + new /obj/item/weapon/reagent_containers/food/snacks/monkeycube(src.loc) + user << "The machine's display flashes that it has [grinded] monkeys worth of material left." + else + user << "The machine needs at least [required_grind] monkey(s) worth of material to produce a monkey cube. It only has [grinded]." + return diff --git a/code/modules/food_and_drinks/kitchen_machinery/processor.dm b/code/modules/food_and_drinks/kitchen_machinery/processor.dm new file mode 100644 index 0000000..41b3b98 --- /dev/null +++ b/code/modules/food_and_drinks/kitchen_machinery/processor.dm @@ -0,0 +1,294 @@ + +/obj/machinery/processor + name = "food processor" + desc = "An industrial grinder used to process meat and other foods. Keep hands clear of intake area while operating." + icon = 'icons/obj/kitchen.dmi' + icon_state = "processor1" + layer = BELOW_OBJ_LAYER + density = 1 + anchored = 1 + var/broken = 0 + var/processing = 0 + use_power = 1 + idle_power_usage = 5 + active_power_usage = 50 + var/rating_speed = 1 + var/rating_amount = 1 + +/obj/machinery/processor/New() + ..() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/processor(null) + B.apply_default_parts(src) + +/obj/item/weapon/circuitboard/machine/processor + name = "circuit board (Food Processor)" + build_path = /obj/machinery/processor + origin_tech = "programming=1" + req_components = list( + /obj/item/weapon/stock_parts/matter_bin = 1, + /obj/item/weapon/stock_parts/manipulator = 1) + +/obj/item/weapon/circuitboard/machine/processor + name = "circuit board (Food Processor)" + build_path = /obj/machinery/processor + +/obj/item/weapon/circuitboard/machine/processor/attackby(obj/item/I, mob/user, params) + if(istype(I,/obj/item/weapon/screwdriver)) + if(build_path == /obj/machinery/processor) + name = "circuit board (slime Processor)" + build_path = /obj/machinery/processor/slime + user << "Name protocols successfully updated." + else + name = "circuit board (Food Processor)" + build_path = /obj/machinery/processor + user << "Defaulting name protocols." + else + return ..() + +/obj/machinery/processor/RefreshParts() + for(var/obj/item/weapon/stock_parts/matter_bin/B in component_parts) + rating_amount = B.rating + for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts) + rating_speed = M.rating + +/obj/machinery/processor/process() + ..() + // The irony + // To be clear, if it's grinding, then it can't suck them up + if(processing) + return + var/mob/living/simple_animal/slime/picked_slime + for(var/mob/living/simple_animal/slime/slime in range(1,src)) + if(slime.loc == src) + continue + if(istype(slime, /mob/living/simple_animal/slime)) + if(slime.stat) + picked_slime = slime + break + if(!picked_slime) + return + var/datum/food_processor_process/P = select_recipe(picked_slime) + if (!P) + return + + src.visible_message("[picked_slime] is sucked into [src].") + picked_slime.loc = src + +/datum/food_processor_process + var/input + var/output + var/time = 40 +/datum/food_processor_process/proc/process_food(loc, what, obj/machinery/processor/processor) + if (src.output && loc && processor) + for(var/i = 0, i < processor.rating_amount, i++) + new src.output(loc) + if (what) + qdel(what) // Note to self: Make this safer + + /* objs */ +/datum/food_processor_process/meat + input = /obj/item/weapon/reagent_containers/food/snacks/meat/slab + output = /obj/item/weapon/reagent_containers/food/snacks/faggot + +/datum/food_processor_process/bacon + input = /obj/item/weapon/reagent_containers/food/snacks/meat/rawcutlet + output = /obj/item/weapon/reagent_containers/food/snacks/meat/rawbacon + +/datum/food_processor_process/sweetpotato + input = /obj/item/weapon/reagent_containers/food/snacks/grown/potato/sweet + output = /obj/item/weapon/reagent_containers/food/snacks/yakiimo + +/datum/food_processor_process/potato + input = /obj/item/weapon/reagent_containers/food/snacks/grown/potato + output = /obj/item/weapon/reagent_containers/food/snacks/fries + +/datum/food_processor_process/carrot + input = /obj/item/weapon/reagent_containers/food/snacks/grown/carrot + output = /obj/item/weapon/reagent_containers/food/snacks/carrotfries + +/datum/food_processor_process/soybeans + input = /obj/item/weapon/reagent_containers/food/snacks/grown/soybeans + output = /obj/item/weapon/reagent_containers/food/snacks/soydope + +/datum/food_processor_process/spaghetti + input = /obj/item/weapon/reagent_containers/food/snacks/doughslice + output = /obj/item/weapon/reagent_containers/food/snacks/spaghetti + +/datum/food_processor_process/corn + input = /obj/item/weapon/reagent_containers/food/snacks/grown/corn + output = /obj/item/weapon/reagent_containers/food/snacks/tortilla + +/datum/food_processor_process/parsnip + input = /obj/item/weapon/reagent_containers/food/snacks/grown/parsnip + output = /obj/item/weapon/reagent_containers/food/snacks/roastparsnip + + + +/* mobs */ +/datum/food_processor_process/mob/process_food(loc, what, processor) + ..() + + +/datum/food_processor_process/mob/slime/process_food(loc, what, obj/machinery/processor/processor) + var/mob/living/simple_animal/slime/S = what + var/C = S.cores + if(S.stat != DEAD) + S.loc = loc + S.visible_message("[C] crawls free of the processor!") + return + for(var/i in 1 to (C+processor.rating_amount-1)) + new S.coretype(loc) + feedback_add_details("slime_core_harvested","[replacetext(S.colour," ","_")]") + ..() + +/datum/food_processor_process/mob/slime/input = /mob/living/simple_animal/slime +/datum/food_processor_process/mob/slime/output = null + +/datum/food_processor_process/mob/monkey/process_food(loc, what, processor) + var/mob/living/carbon/monkey/O = what + if (O.client) //grief-proof + O.loc = loc + O.visible_message("Suddenly [O] jumps out from the processor!", \ + "You jump out from the processor!", \ + "You hear chimpering.") + return + var/obj/bucket = new /obj/item/weapon/reagent_containers/glass/bucket(loc) + + var/datum/reagent/blood/B = new() + B.holder = bucket + B.volume = 70 + //set reagent data + B.data["donor"] = O + + for(var/datum/disease/D in O.viruses) + if(!(D.spread_flags & SPECIAL)) + B.data["viruses"] += D.Copy() + if(O.has_dna()) + B.data["blood_DNA"] = O.dna.unique_enzymes + + if(O.resistances&&O.resistances.len) + B.data["resistances"] = O.resistances.Copy() + bucket.reagents.reagent_list += B + bucket.reagents.update_total() + bucket.on_reagent_change() + //bucket_of_blood.reagents.handle_reactions() //blood doesn't react + ..() + +/datum/food_processor_process/mob/monkey/input = /mob/living/carbon/monkey +/datum/food_processor_process/mob/monkey/output = null + +/obj/machinery/processor/proc/select_recipe(X) + for (var/Type in subtypesof(/datum/food_processor_process) - /datum/food_processor_process/mob) + var/datum/food_processor_process/P = new Type() + if (!istype(X, P.input)) + continue + return P + return 0 + +/obj/machinery/processor/attackby(obj/item/O, mob/user, params) + if(src.processing) + user << "The processor is in the process of processing!" + return 1 + if(default_deconstruction_screwdriver(user, "processor", "processor1", O)) + return + + if(exchange_parts(user, O)) + return + + if(default_pry_open(O)) + return + + if(default_unfasten_wrench(user, O)) + return + + if(default_deconstruction_crowbar(O)) + return + + var/datum/food_processor_process/P = select_recipe(O) + if(P) + user.visible_message("[user] put [O] into [src].", \ + "You put the [O] into [src].") + user.drop_item() + O.loc = src + return 1 + else + if(user.a_intent != "harm") + user << "That probably won't blend!" + return 1 + else + return ..() + +/obj/machinery/processor/attack_hand(mob/user) + if (src.stat != 0) //NOPOWER etc + return + if(src.processing) + user << "The processor is in the process of processing!" + return 1 + if(user.a_intent == "grab" && user.pulling && (isslime(user.pulling) || ismonkey(user.pulling))) + if(user.grab_state < GRAB_AGGRESSIVE) + user << "You need a better grip to do that!" + return + var/mob/living/pushed_mob = user.pulling + visible_message("[user] stuffs [pushed_mob] into [src]!") + pushed_mob.forceMove(src) + user.stop_pulling() + return + if(src.contents.len == 0) + user << "The processor is empty!" + return 1 + src.processing = 1 + user.visible_message("[user] turns on [src].", \ + "You turn on [src].", \ + "You hear a food processor.") + playsound(src.loc, 'sound/machines/blender.ogg', 50, 1) + use_power(500) + var/total_time = 0 + for(var/O in src.contents) + var/datum/food_processor_process/P = select_recipe(O) + if (!P) + log_admin("DEBUG: [O] in processor hasnt got a suitable recipe. How did it get in there? Please report it immediatly!!!") + continue + total_time += P.time + var/offset = prob(50) ? -2 : 2 + animate(src, pixel_x = pixel_x + offset, time = 0.2, loop = (total_time / rating_speed)*5) //start shaking + sleep(total_time / rating_speed) + for(var/O in src.contents) + var/datum/food_processor_process/P = select_recipe(O) + if (!P) + log_admin("DEBUG: [O] in processor havent suitable recipe. How do you put it in?") //-rastaf0 + continue + P.process_food(src.loc, O, src) + pixel_x = initial(pixel_x) //return to its spot after shaking + src.processing = 0 + src.visible_message("\the [src] finishes processing.") + +/obj/machinery/processor/verb/eject() + set category = "Object" + set name = "Eject Contents" + set src in oview(1) + + if(usr.stat || !usr.canmove || usr.restrained()) + return + src.empty() + add_fingerprint(usr) + return + +/obj/machinery/processor/proc/empty() + for (var/obj/O in src) + O.loc = src.loc + for (var/mob/M in src) + M.loc = src.loc + return + +/obj/machinery/processor/slime + name = "Slime processor" + desc = "An industrial grinder with a sticker saying appropriated for science department. Keep hands clear of intake area while operating." + +/obj/machinery/processor/slime/New() + ..() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/processor/slime(null) + B.apply_default_parts(src) + +/obj/item/weapon/circuitboard/machine/processor/slime + name = "circuit board (Slime Processor)" + build_path = /obj/machinery/processor/slime \ No newline at end of file diff --git a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm new file mode 100644 index 0000000..00db945 --- /dev/null +++ b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm @@ -0,0 +1,421 @@ +// ------------------------- +// SmartFridge. Much todo +// ------------------------- +/obj/machinery/smartfridge + name = "smartfridge" + desc = "Keeps cold things cold and hot things cold." + icon = 'icons/obj/vending.dmi' + icon_state = "smartfridge" + layer = BELOW_OBJ_LAYER + density = 1 + anchored = 1 + use_power = 1 + idle_power_usage = 5 + active_power_usage = 100 + var/max_n_of_items = 1500 + var/icon_on = "smartfridge" + var/icon_off = "smartfridge-off" + +/obj/machinery/smartfridge/New() + ..() + create_reagents() + reagents.set_reacting(FALSE) + + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/smartfridge(null) + B.apply_default_parts(src) + +/obj/item/weapon/circuitboard/machine/smartfridge + name = "circuit board (Smartfridge)" + build_path = /obj/machinery/smartfridge + origin_tech = "programming=1" + req_components = list(/obj/item/weapon/stock_parts/matter_bin = 1) + +/obj/item/weapon/circuitboard/machine/smartfridge/New(loc, new_type) + if(new_type) + build_path = new_type + +/obj/item/weapon/circuitboard/machine/smartfridge/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/screwdriver)) + var/list/fridges = list(/obj/machinery/smartfridge = "default", + /obj/machinery/smartfridge/drinks = "drinks", + /obj/machinery/smartfridge/extract = "slimes", + /obj/machinery/smartfridge/chemistry = "chems", + /obj/machinery/smartfridge/chemistry/virology = "viruses") + + var/position = fridges.Find(build_path, fridges) + position = (position == fridges.len) ? 1 : (position + 1) + build_path = fridges[position] + user << "You set the board to [fridges[build_path]]." + else + return ..() + +/obj/machinery/smartfridge/RefreshParts() + for(var/obj/item/weapon/stock_parts/matter_bin/B in component_parts) + max_n_of_items = 1500 * B.rating + +/obj/machinery/smartfridge/power_change() + ..() + update_icon() + +/obj/machinery/smartfridge/update_icon() + if(!stat) + icon_state = icon_on + else + icon_state = icon_off + + + +/******************* +* Item Adding +********************/ + +/obj/machinery/smartfridge/attackby(obj/item/O, mob/user, params) + if(default_deconstruction_screwdriver(user, "smartfridge_open", "smartfridge", O)) + return + + if(exchange_parts(user, O)) + return + + if(default_pry_open(O)) + return + + if(default_unfasten_wrench(user, O)) + power_change() + return + + if(default_deconstruction_crowbar(O)) + updateUsrDialog() + return + + if(!stat) + + if(contents.len >= max_n_of_items) + user << "\The [src] is full!" + return 0 + + if(accept_check(O)) + load(O) + user.visible_message("[user] has added \the [O] to \the [src].", "You add \the [O] to \the [src].") + updateUsrDialog() + return 1 + + if(istype(O, /obj/item/weapon/storage/bag)) + var/obj/item/weapon/storage/P = O + var/loaded = 0 + for(var/obj/G in P.contents) + if(contents.len >= max_n_of_items) + break + if(accept_check(G)) + load(G) + loaded++ + updateUsrDialog() + + if(loaded) + if(contents.len >= max_n_of_items) + user.visible_message("[user] loads \the [src] with \the [O].", \ + "You fill \the [src] with \the [O].") + else + user.visible_message("[user] loads \the [src] with \the [O].", \ + "You load \the [src] with \the [O].") + if(O.contents.len > 0) + user << "Some items are refused." + return 1 + else + user << "There is nothing in [O] to put in [src]!" + return 0 + + if(user.a_intent != "harm") + user << "\The [src] smartly refuses [O]." + updateUsrDialog() + return 0 + else + return ..() + + + +/obj/machinery/smartfridge/proc/accept_check(obj/item/O) + if(istype(O,/obj/item/weapon/reagent_containers/food/snacks/grown/) || istype(O,/obj/item/seeds/) || istype(O,/obj/item/weapon/grown/)) + return 1 + return 0 + +/obj/machinery/smartfridge/proc/load(obj/item/O) + if(istype(O.loc,/mob)) + var/mob/M = O.loc + if(!M.unEquip(O)) + usr << "\the [O] is stuck to your hand, you cannot put it in \the [src]!" + return + else if(istype(O.loc,/obj/item/weapon/storage)) + var/obj/item/weapon/storage/S = O.loc + S.remove_from_storage(O,src) + + O.loc = src + +/obj/machinery/smartfridge/attack_paw(mob/user) + return src.attack_hand(user) + +/obj/machinery/smartfridge/attack_ai(mob/user) + return 0 + +/obj/machinery/smartfridge/attack_hand(mob/user) + user.set_machine(src) + interact(user) + +/******************* +* SmartFridge Menu +********************/ + +/obj/machinery/smartfridge/interact(mob/user) + if(stat) + return 0 + + var/dat = "Select an item:
    " + + if (contents.len == 0) + dat += "No product loaded!" + else + var/listofitems = list() + for (var/atom/movable/O in contents) + if (listofitems[O.name]) + listofitems[O.name]++ + else + listofitems[O.name] = 1 + sortList(listofitems) + + for (var/O in listofitems) + if(listofitems[O] <= 0) + continue + var/N = listofitems[O] + var/itemName = url_encode(O) + dat += "[capitalize(O)]:" + dat += " [N] " + dat += "Vend " + if(N > 5) + dat += "(x5)" + if(N > 10) + dat += "(x10)" + if(N > 25) + dat += "(x25)" + if(N > 1) + dat += "(All)" + + dat += "
    " + + dat += "
    " + user << browse("[src] supplies[dat]", "window=smartfridge") + onclose(user, "smartfridge") + return dat + +/obj/machinery/smartfridge/Topic(var/href, var/list/href_list) + if(..()) + return + usr.set_machine(src) + + var/N = href_list["vend"] + var/amount = text2num(href_list["amount"]) + + var/i = amount + for(var/obj/O in contents) + if(i <= 0) + break + if(O.name == N) + O.loc = src.loc + i-- + + + updateUsrDialog() + + +// ---------------------------- +// Drying Rack 'smartfridge' +// ---------------------------- +/obj/machinery/smartfridge/drying_rack + name = "drying rack" + icon = 'icons/obj/hydroponics/equipment.dmi' + icon_state = "drying_rack_on" + use_power = 1 + idle_power_usage = 5 + active_power_usage = 200 + icon_on = "drying_rack_on" + icon_off = "drying_rack" + var/drying = 0 + +/obj/machinery/smartfridge/drying_rack/New() + ..() + if(component_parts && component_parts.len) + component_parts.Cut() + component_parts = null + +/obj/machinery/smartfridge/drying_rack/on_deconstruction() + new /obj/item/stack/sheet/mineral/wood(loc, 10) + ..() + +/obj/machinery/smartfridge/drying_rack/RefreshParts() +/obj/machinery/smartfridge/drying_rack/default_deconstruction_screwdriver() +/obj/machinery/smartfridge/drying_rack/exchange_parts() +/obj/machinery/smartfridge/drying_rack/spawn_frame() + +/obj/machinery/smartfridge/drying_rack/default_deconstruction_crowbar(obj/item/weapon/crowbar/C, ignore_panel = 1) + ..() + +/obj/machinery/smartfridge/drying_rack/interact(mob/user) + var/dat = ..() + if(dat) + dat += "
    " + dat += "Toggle Drying " + user << browse("[src] supplies[dat]", "window=smartfridge") + onclose(user, "smartfridge") + +/obj/machinery/smartfridge/drying_rack/Topic(href, list/href_list) + ..() + if(href_list["dry"]) + toggle_drying() + src.updateUsrDialog() + +/obj/machinery/smartfridge/drying_rack/power_change() + if(powered() && anchored) + stat &= ~NOPOWER + else + stat |= NOPOWER + toggle_drying(1) + update_icon() + +/obj/machinery/smartfridge/drying_rack/load() //For updating the filled overlay + ..() + update_icon() + +/obj/machinery/smartfridge/drying_rack/update_icon() + ..() + overlays = 0 + if(drying) + add_overlay("drying_rack_drying") + if(contents.len) + add_overlay("drying_rack_filled") + +/obj/machinery/smartfridge/drying_rack/process() + ..() + if(drying) + if(rack_dry())//no need to update unless something got dried + update_icon() + +/obj/machinery/smartfridge/drying_rack/accept_check(obj/item/O) + if(istype(O,/obj/item/weapon/reagent_containers/food/snacks/)) + var/obj/item/weapon/reagent_containers/food/snacks/S = O + if(S.dried_type) + return 1 + return 0 + +/obj/machinery/smartfridge/drying_rack/proc/toggle_drying(forceoff = 0) + if(drying || forceoff) + drying = 0 + use_power = 1 + else + drying = 1 + use_power = 2 + update_icon() + +/obj/machinery/smartfridge/drying_rack/proc/rack_dry() + for(var/obj/item/weapon/reagent_containers/food/snacks/S in contents) + if(S.dried_type == S.type)//if the dried type is the same as the object's type, don't bother creating a whole new item... + S.add_atom_colour("#ad7257", FIXED_COLOUR_PRIORITY) + S.dry = 1 + S.loc = get_turf(src) + else + var/dried = S.dried_type + new dried(src.loc) + qdel(S) + return 1 + return 0 + +/obj/machinery/smartfridge/drying_rack/emp_act(severity) + ..() + atmos_spawn_air("TEMP=1000") + + +// ---------------------------- +// Bar drink smartfridge +// ---------------------------- +/obj/machinery/smartfridge/drinks + name = "drink showcase" + desc = "A refrigerated storage unit for tasty tasty alcohol." + +/obj/machinery/smartfridge/drinks/accept_check(obj/item/O) + if(!istype(O,/obj/item/weapon/reagent_containers) || !O.reagents || !O.reagents.reagent_list.len) + return 0 + if(istype(O,/obj/item/weapon/reagent_containers/glass) || istype(O,/obj/item/weapon/reagent_containers/food/drinks) || istype(O,/obj/item/weapon/reagent_containers/food/condiment)) + return 1 + + +// ------------------------------------- +// Xenobiology Slime-Extract Smartfridge +// ------------------------------------- +/obj/machinery/smartfridge/extract + name = "smart slime extract storage" + desc = "A refrigerated storage unit for slime extracts." + +/obj/machinery/smartfridge/extract/accept_check(obj/item/O) + if(istype(O,/obj/item/slime_extract)) + return 1 + if(istype(O,/obj/item/device/slime_scanner)) + return 1 + return 0 + +/obj/machinery/smartfridge/extract/New() + ..() + var/obj/item/device/slime_scanner/I = new /obj/item/device/slime_scanner(src) + load(I) + var/obj/item/device/slime_scanner/T = new /obj/item/device/slime_scanner(src) + load(T) + +// ----------------------------- +// Chemistry Medical Smartfridge +// ----------------------------- +/obj/machinery/smartfridge/chemistry + name = "smart chemical storage" + desc = "A refrigerated storage unit for medicine storage." + var/list/spawn_meds = list( + /obj/item/weapon/reagent_containers/pill/epinephrine = 12, + /obj/item/weapon/reagent_containers/pill/charcoal = 1, + /obj/item/weapon/reagent_containers/glass/bottle/epinephrine = 1, + /obj/item/weapon/reagent_containers/glass/bottle/charcoal = 1) + +/obj/machinery/smartfridge/chemistry/New() + ..() + for(var/typekey in spawn_meds) + var/amount = spawn_meds[typekey] + if(isnull(amount)) amount = 1 + while(amount) + var/obj/item/I = new typekey(src) + load(I) + amount-- + +/obj/machinery/smartfridge/chemistry/accept_check(obj/item/O) + if(istype(O,/obj/item/weapon/storage/pill_bottle)) + if(O.contents.len) + for(var/obj/item/I in O) + if(!accept_check(I)) + return 0 + return 1 + return 0 + if(!istype(O,/obj/item/weapon/reagent_containers)) + return 0 + if(istype(O,/obj/item/weapon/reagent_containers/pill)) // empty pill prank ok + return 1 + if(!O.reagents || !O.reagents.reagent_list.len) // other empty containers not accepted + return 0 + if(istype(O,/obj/item/weapon/reagent_containers/syringe) || istype(O,/obj/item/weapon/reagent_containers/glass/bottle) || istype(O,/obj/item/weapon/reagent_containers/glass/beaker) || istype(O,/obj/item/weapon/reagent_containers/spray)) + return 1 + return 0 + +// ---------------------------- +// Virology Medical Smartfridge +// ---------------------------- +/obj/machinery/smartfridge/chemistry/virology + name = "smart virus storage" + desc = "A refrigerated storage unit for volatile sample storage." + spawn_meds = list( + /obj/item/weapon/reagent_containers/syringe/antiviral = 4, + /obj/item/weapon/reagent_containers/glass/bottle/cold = 1, + /obj/item/weapon/reagent_containers/glass/bottle/flu_virion = 1, + /obj/item/weapon/reagent_containers/glass/bottle/mutagen = 1, + /obj/item/weapon/reagent_containers/glass/bottle/plasma = 1, + /obj/item/weapon/reagent_containers/glass/bottle/synaptizine = 1) diff --git a/code/modules/food_and_drinks/pizzabox.dm b/code/modules/food_and_drinks/pizzabox.dm new file mode 100644 index 0000000..18a3b71 --- /dev/null +++ b/code/modules/food_and_drinks/pizzabox.dm @@ -0,0 +1,232 @@ +/obj/item/weapon/bombcore/pizza + parent_type = /obj/item/weapon/bombcore/miniature + name = "pizza bomb" + desc = "Special delivery!" + icon_state = "pizzabomb_inactive" + item_state = "eshield0" + origin_tech = "syndicate=3;engineering=3" + +/obj/item/pizzabox + name = "pizza box" + desc = "A box suited for pizzas." + icon = 'icons/obj/food/containers.dmi' + icon_state = "pizzabox1" + item_state = "pizzabox" + + var/open = 0 + var/boxtag = "" + var/list/boxes = list() + + var/obj/item/weapon/reagent_containers/food/snacks/pizza/pizza + + var/obj/item/weapon/bombcore/pizza/bomb + var/bomb_active = FALSE // If the bomb is counting down. + var/bomb_defused = TRUE // If the bomb is inert. + var/bomb_timer = 1 // How long before blowing the bomb. + var/const/BOMB_TIMER_MIN = 1 + var/const/BOMB_TIMER_MAX = 10 + +/obj/item/pizzabox/New() + update_icon() + +/obj/item/pizzabox/Destroy() + unprocess() + return ..() + +/obj/item/pizzabox/update_icon() + // Description + desc = initial(desc) + if(open) + if(pizza) + desc = "[desc] It appears to have \a [pizza] inside." + if(bomb) + desc = "[desc] Wait, what?! It has \a [bomb] inside!" + if(bomb_defused) + desc = "[desc] The bomb seems inert." + if(bomb_active) + desc = "[desc] It looks like it's about to go off!" + else + var/obj/item/pizzabox/box = boxes.len ? boxes[boxes.len] : src + if(boxes.len) + desc = "A pile of boxes suited for pizzas. There appears to be [boxes.len + 1] boxes in the pile." + if(box.boxtag != "") + desc = "[desc] The [boxes.len ? "top box" : "box"]'s tag reads: [box.boxtag]" + + // Icon/Overlays + cut_overlays() + if(open) + icon_state = "pizzabox_open" + if(pizza) + icon_state = "pizzabox_messy" + var/image/pizzaimg = image(pizza.icon, icon_state = pizza.icon_state) + pizzaimg.pixel_y = -3 + add_overlay(pizzaimg) + if(bomb) + bomb.icon_state = "pizzabomb_[bomb_active ? "active" : "inactive"]" + var/image/bombimg = image(bomb.icon, icon_state = bomb.icon_state) + bombimg.pixel_y = 5 + add_overlay(bombimg) + else + icon_state = "pizzabox[boxes.len + 1]" + var/obj/item/pizzabox/box = boxes.len ? boxes[boxes.len] : src + if(box.boxtag != "") + var/image/tagimg = image(icon, icon_state = "pizzabox_tag") + tagimg.pixel_y = boxes.len * 3 + add_overlay(tagimg) + +/obj/item/pizzabox/attack_self(mob/user) + if(boxes.len > 0) + return + open = !open + if(open && !bomb_defused) + audible_message("\icon[src] *beep*") + bomb_active = TRUE + START_PROCESSING(SSobj, src) + update_icon() + +/obj/item/pizzabox/attack_hand(mob/user) + if(user.get_inactive_held_item() != src) + ..() + return + if(open) + if(pizza) + user.put_in_hands(pizza) + user << "You take [pizza] out of [src]." + pizza = null + update_icon() + return + else if(bomb) + if(wires.is_all_cut() && bomb_defused) + user.put_in_hands(bomb) + user << "You carefully remove the [bomb] from [src]." + bomb = null + update_icon() + return + else + bomb_timer = input(user, "Set the [bomb] timer from [BOMB_TIMER_MIN] to [BOMB_TIMER_MAX].", bomb, bomb_timer) as num + bomb_timer = Clamp(Ceiling(bomb_timer / 2), BOMB_TIMER_MIN, BOMB_TIMER_MAX) + bomb_defused = FALSE + + var/message = "[ADMIN_LOOKUPFLW(user)] has trapped a [src] with [bomb] set to [bomb_timer * 2] seconds." + bombers += message + message_admins(message) + log_game("[key_name(user)] has trapped a [src] with [bomb] set to [bomb_timer * 2] seconds.") + bomb.adminlog = "The [bomb.name] in [src.name] that [key_name(user)] activated has detonated!" + + user << "You trap [src] with [bomb]." + update_icon() + return + else if(boxes.len) + var/obj/item/pizzabox/topbox = boxes[boxes.len] + boxes -= topbox + user.put_in_hands(topbox) + user << "You remove the topmost [name] from the stack." + topbox.update_icon() + update_icon() + return + ..() + +/obj/item/pizzabox/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/pizzabox)) + var/obj/item/pizzabox/newbox = I + if(!open && !newbox.open) + var/list/add = list() + add += newbox + add += newbox.boxes + + if((boxes.len + 1) + add.len <= 5) + if(!user.drop_item()) + return + boxes += add + newbox.boxes.Cut() + newbox.loc = src + user << "You put [newbox] on top of [src]!" + newbox.update_icon() + update_icon() + return + else + user << "The stack is dangerously high!" + else + user << "Close [open ? src : newbox] first!" + else if(istype(I, /obj/item/weapon/reagent_containers/food/snacks/pizza) || istype(I, /obj/item/weapon/reagent_containers/food/snacks/customizable/pizza)) + if(open) + if(!user.drop_item()) + return + pizza = I + I.loc = src + user << "You put [I] in [src]." + update_icon() + return + else if(istype(I, /obj/item/weapon/bombcore/pizza)) + if(open && !bomb) + if(!user.drop_item()) + return + wires = new /datum/wires/explosive/pizza(src) + bomb = I + I.loc = src + user << "You put [I] in [src]. Sneeki breeki..." + update_icon() + return + else if(bomb) + user << "[src] already has a bomb in it!" + else if(istype(I, /obj/item/weapon/pen)) + if(!open) + var/obj/item/pizzabox/box = boxes.len ? boxes[boxes.len] : src + box.boxtag += stripped_input(user, "Write on [box]'s tag:", box, "", 30) + user << "You write with [I] on [src]." + update_icon() + return + else if(is_wire_tool(I)) + if(wires && bomb) + wires.interact(user) + else if(istype(I, /obj/item/weapon/reagent_containers/food)) + user << "That's not a pizza!" + ..() + +/obj/item/pizzabox/process() + if(bomb_active && !bomb_defused && (bomb_timer > 0)) + playsound(loc, 'sound/items/timer.ogg', 50, 0) + bomb_timer-- + if(bomb_active && !bomb_defused && (bomb_timer <= 0)) + if(bomb in src) + bomb.detonate() + unprocess() + if(!bomb_active || bomb_defused) + if(bomb_defused && bomb in src) + bomb.defuse() + bomb_active = FALSE + unprocess() + return + +/obj/item/pizzabox/proc/unprocess() + STOP_PROCESSING(SSobj, src) + qdel(wires) + wires = null + update_icon() + +/obj/item/pizzabox/bomb/New() + var/randompizza = pick(subtypesof(/obj/item/weapon/reagent_containers/food/snacks/pizza)) + pizza = new randompizza(src) + bomb = new(src) + wires = new /datum/wires/explosive/pizza(src) + ..() + +/obj/item/pizzabox/margherita/New() + pizza = new /obj/item/weapon/reagent_containers/food/snacks/pizza/margherita(src) + boxtag = "Margherita Deluxe" + ..() + +/obj/item/pizzabox/vegetable/New() + pizza = new /obj/item/weapon/reagent_containers/food/snacks/pizza/vegetable(src) + boxtag = "Gourmet Vegatable" + ..() + +/obj/item/pizzabox/mushroom/New() + pizza = new /obj/item/weapon/reagent_containers/food/snacks/pizza/mushroom(src) + boxtag = "Mushroom Special" + ..() + +/obj/item/pizzabox/meat/New() + pizza = new /obj/item/weapon/reagent_containers/food/snacks/pizza/meat(src) + boxtag = "Meatlover's Supreme" + ..() diff --git a/code/modules/food_and_drinks/recipes/drinks_recipes.dm b/code/modules/food_and_drinks/recipes/drinks_recipes.dm new file mode 100644 index 0000000..9562e18 --- /dev/null +++ b/code/modules/food_and_drinks/recipes/drinks_recipes.dm @@ -0,0 +1,544 @@ +////////////////////////////////////////// COCKTAILS ////////////////////////////////////// + + +/datum/chemical_reaction/goldschlager + name = "Goldschlager" + id = "goldschlager" + results = list("goldschlager" = 10) + required_reagents = list("vodka" = 10, "gold" = 1) + +/datum/chemical_reaction/patron + name = "Patron" + id = "patron" + results = list("patron" = 10) + required_reagents = list("tequila" = 10, "silver" = 1) + +/datum/chemical_reaction/bilk + name = "Bilk" + id = "bilk" + results = list("bilk" = 2) + required_reagents = list("milk" = 1, "beer" = 1) + +/datum/chemical_reaction/icetea + name = "Iced Tea" + id = "icetea" + results = list("icetea" = 4) + required_reagents = list("ice" = 1, "tea" = 3) + +/datum/chemical_reaction/icecoffee + name = "Iced Coffee" + id = "icecoffee" + results = list("icecoffee" = 4) + required_reagents = list("ice" = 1, "coffee" = 3) + +/datum/chemical_reaction/nuka_cola + name = "Nuka Cola" + id = "nuka_cola" + results = list("nuka_cola" = 6) + required_reagents = list("uranium" = 1, "cola" = 6) + +/datum/chemical_reaction/moonshine + name = "Moonshine" + id = "moonshine" + results = list("moonshine" = 10) + required_reagents = list("nutriment" = 10) + required_catalysts = list("enzyme" = 5) + +/datum/chemical_reaction/wine + name = "Wine" + id = "wine" + results = list("wine" = 10) + required_reagents = list("grapejuice" = 10) + required_catalysts = list("enzyme" = 5) + +/datum/chemical_reaction/spacebeer + name = "Space Beer" + id = "spacebeer" + results = list("beer" = 10) + required_reagents = list("flour" = 10) + required_catalysts = list("enzyme" = 5) + +/datum/chemical_reaction/vodka + name = "Vodka" + id = "vodka" + results = list("vodka" = 10) + required_reagents = list("potato" = 10) + required_catalysts = list("enzyme" = 5) + +/datum/chemical_reaction/kahlua + name = "Kahlua" + id = "kahlua" + results = list("kahlua" = 5) + required_reagents = list("coffee" = 5, "sugar" = 5) + required_catalysts = list("enzyme" = 5) + +/datum/chemical_reaction/gin_tonic + name = "Gin and Tonic" + id = "gintonic" + results = list("gintonic" = 3) + required_reagents = list("gin" = 2, "tonic" = 1) + +/datum/chemical_reaction/cuba_libre + name = "Cuba Libre" + id = "cubalibre" + results = list("cubalibre" = 3) + required_reagents = list("rum" = 2, "cola" = 1) + +/datum/chemical_reaction/martini + name = "Classic Martini" + id = "martini" + results = list("martini" = 3) + required_reagents = list("gin" = 2, "vermouth" = 1) + +/datum/chemical_reaction/vodkamartini + name = "Vodka Martini" + id = "vodkamartini" + results = list("vodkamartini" = 3) + required_reagents = list("vodka" = 2, "vermouth" = 1) + +/datum/chemical_reaction/white_russian + name = "White Russian" + id = "whiterussian" + results = list("whiterussian" = 5) + required_reagents = list("blackrussian" = 3, "cream" = 2) + +/datum/chemical_reaction/whiskey_cola + name = "Whiskey Cola" + id = "whiskeycola" + results = list("whiskeycola" = 3) + required_reagents = list("whiskey" = 2, "cola" = 1) + +/datum/chemical_reaction/screwdriver + name = "Screwdriver" + id = "screwdrivercocktail" + results = list("screwdrivercocktail" = 3) + required_reagents = list("vodka" = 2, "orangejuice" = 1) + +/datum/chemical_reaction/bloody_mary + name = "Bloody Mary" + id = "bloodymary" + results = list("bloodymary" = 4) + required_reagents = list("vodka" = 1, "tomatojuice" = 2, "limejuice" = 1) + +/datum/chemical_reaction/gargle_blaster + name = "Pan-Galactic Gargle Blaster" + id = "gargleblaster" + results = list("gargleblaster" = 5) + required_reagents = list("vodka" = 1, "gin" = 1, "whiskey" = 1, "cognac" = 1, "limejuice" = 1) + +/datum/chemical_reaction/brave_bull + name = "Brave Bull" + id = "bravebull" + results = list("bravebull" = 3) + required_reagents = list("tequila" = 2, "kahlua" = 1) + +/datum/chemical_reaction/tequila_sunrise + name = "tequila Sunrise" + id = "tequilasunrise" + results = list("tequilasunrise" = 3) + required_reagents = list("tequila" = 2, "orangejuice" = 1) + +/datum/chemical_reaction/toxins_special + name = "Toxins Special" + id = "toxinsspecial" + results = list("toxinsspecial" = 5) + required_reagents = list("rum" = 2, "vermouth" = 1, "plasma" = 2) + +/datum/chemical_reaction/beepsky_smash + name = "Beepksy Smash" + id = "beepksysmash" + results = list("beepskysmash" = 4) + required_reagents = list("limejuice" = 2, "whiskey" = 2, "iron" = 1) + +/datum/chemical_reaction/doctor_delight + name = "The Doctor's Delight" + id = "doctordelight" + results = list("doctorsdelight" = 5) + required_reagents = list("limejuice" = 1, "tomatojuice" = 1, "orangejuice" = 1, "cream" = 1, "cryoxadone" = 1) + +/datum/chemical_reaction/irish_cream + name = "Irish Cream" + id = "irishcream" + results = list("irishcream" = 3) + required_reagents = list("whiskey" = 2, "cream" = 1) + +/datum/chemical_reaction/manly_dorf + name = "The Manly Dorf" + id = "manlydorf" + results = list("manlydorf" = 3) + required_reagents = list ("beer" = 1, "ale" = 2) + +/datum/chemical_reaction/greenbeer + name = "Green Beer" + id = "greenbeer" + results = list("greenbeer" = 10) + required_reagents = list("greencrayonpowder" = 1, "beer" = 10) + +/datum/chemical_reaction/hooch + name = "Hooch" + id = "hooch" + results = list("hooch" = 3) + required_reagents = list ("ethanol" = 2, "welding_fuel" = 1) + required_catalysts = list("enzyme" = 1) + +/datum/chemical_reaction/irish_coffee + name = "Irish Coffee" + id = "irishcoffee" + results = list("irishcoffee" = 2) + required_reagents = list("irishcream" = 1, "coffee" = 1) + +/datum/chemical_reaction/b52 + name = "B-52" + id = "b52" + results = list("b52" = 3) + required_reagents = list("irishcream" = 1, "kahlua" = 1, "cognac" = 1) + +/datum/chemical_reaction/atomicbomb + name = "Atomic Bomb" + id = "atomicbomb" + results = list("atomicbomb" = 10) + required_reagents = list("b52" = 10, "uranium" = 1) + +/datum/chemical_reaction/margarita + name = "Margarita" + id = "margarita" + results = list("margarita" = 3) + required_reagents = list("tequila" = 2, "limejuice" = 1) + +/datum/chemical_reaction/longislandicedtea + name = "Long Island Iced Tea" + id = "longislandicedtea" + results = list("longislandicedtea" = 4) + required_reagents = list("vodka" = 1, "gin" = 1, "tequila" = 1, "cubalibre" = 1) + +/datum/chemical_reaction/threemileisland + name = "Three Mile Island Iced Tea" + id = "threemileisland" + results = list("threemileisland" = 10) + required_reagents = list("longislandicedtea" = 10, "uranium" = 1) + +/datum/chemical_reaction/whiskeysoda + name = "Whiskey Soda" + id = "whiskeysoda" + results = list("whiskeysoda" = 3) + required_reagents = list("whiskey" = 2, "sodawater" = 1) + +/datum/chemical_reaction/black_russian + name = "Black Russian" + id = "blackrussian" + results = list("blackrussian" = 5) + required_reagents = list("vodka" = 3, "kahlua" = 2) + +/datum/chemical_reaction/manhattan + name = "Manhattan" + id = "manhattan" + results = list("manhattan" = 3) + required_reagents = list("whiskey" = 2, "vermouth" = 1) + +/datum/chemical_reaction/manhattan_proj + name = "Manhattan Project" + id = "manhattan_proj" + results = list("manhattan_proj" = 10) + required_reagents = list("manhattan" = 10, "uranium" = 1) + +/datum/chemical_reaction/vodka_tonic + name = "Vodka and Tonic" + id = "vodkatonic" + results = list("vodkatonic" = 3) + required_reagents = list("vodka" = 2, "tonic" = 1) + +/datum/chemical_reaction/gin_fizz + name = "Gin Fizz" + id = "ginfizz" + results = list("ginfizz" = 4) + required_reagents = list("gin" = 2, "sodawater" = 1, "limejuice" = 1) + +/datum/chemical_reaction/bahama_mama + name = "Bahama mama" + id = "bahama_mama" + results = list("bahama_mama" = 6) + required_reagents = list("rum" = 2, "orangejuice" = 2, "limejuice" = 1, "ice" = 1) + +/datum/chemical_reaction/singulo + name = "Singulo" + id = "singulo" + results = list("singulo" = 10) + required_reagents = list("vodka" = 5, "radium" = 1, "wine" = 5) + +/datum/chemical_reaction/alliescocktail + name = "Allies Cocktail" + id = "alliescocktail" + results = list("alliescocktail" = 2) + required_reagents = list("martini" = 1, "vodka" = 1) + +/datum/chemical_reaction/demonsblood + name = "Demons Blood" + id = "demonsblood" + results = list("demonsblood" = 4) + required_reagents = list("rum" = 1, "spacemountainwind" = 1, "blood" = 1, "dr_gibb" = 1) + +/datum/chemical_reaction/booger + name = "Booger" + id = "booger" + results = list("booger" = 4) + required_reagents = list("cream" = 1, "banana" = 1, "rum" = 1, "watermelonjuice" = 1) + +/datum/chemical_reaction/antifreeze + name = "Anti-freeze" + id = "antifreeze" + results = list("antifreeze" = 4) + required_reagents = list("vodka" = 2, "cream" = 1, "ice" = 1) + +/datum/chemical_reaction/barefoot + name = "Barefoot" + id = "barefoot" + results = list("barefoot" = 3) + required_reagents = list("berryjuice" = 1, "cream" = 1, "vermouth" = 1) + + +////DRINKS THAT REQUIRED IMPROVED SPRITES BELOW:: -Agouri///// + +/datum/chemical_reaction/sbiten + name = "Sbiten" + id = "sbiten" + results = list("sbiten" = 10) + required_reagents = list("vodka" = 10, "capsaicin" = 1) + +/datum/chemical_reaction/red_mead + name = "Red Mead" + id = "red_mead" + results = list("red_mead" = 2) + required_reagents = list("blood" = 1, "mead" = 1) + +/datum/chemical_reaction/mead + name = "Mead" + id = "mead" + results = list("mead" = 2) + required_reagents = list("honey" = 2) + required_catalysts = list("enzyme" = 5) + +/datum/chemical_reaction/iced_beer + name = "Iced Beer" + id = "iced_beer" + results = list("iced_beer" = 6) + required_reagents = list("beer" = 5, "ice" = 1) + +/datum/chemical_reaction/grog + name = "Grog" + id = "grog" + results = list("grog" = 2) + required_reagents = list("rum" = 1, "water" = 1) + +/datum/chemical_reaction/soy_latte + name = "Soy Latte" + id = "soy_latte" + results = list("soy_latte" = 2) + required_reagents = list("coffee" = 1, "soymilk" = 1) + +/datum/chemical_reaction/cafe_latte + name = "Cafe Latte" + id = "cafe_latte" + results = list("cafe_latte" = 2) + required_reagents = list("coffee" = 1, "milk" = 1) + +/datum/chemical_reaction/acidspit + name = "Acid Spit" + id = "acidspit" + results = list("acidspit" = 6) + required_reagents = list("sacid" = 1, "wine" = 5) + +/datum/chemical_reaction/amasec + name = "Amasec" + id = "amasec" + results = list("amasec" = 10) + required_reagents = list("iron" = 1, "wine" = 5, "vodka" = 5) + +/datum/chemical_reaction/changelingsting + name = "Changeling Sting" + id = "changelingsting" + results = list("changelingsting" = 5) + required_reagents = list("screwdrivercocktail" = 1, "lemon_lime" = 2) + +/datum/chemical_reaction/aloe + name = "Aloe" + id = "aloe" + results = list("aloe" = 2) + required_reagents = list("irishcream" = 1, "watermelonjuice" = 1) + +/datum/chemical_reaction/andalusia + name = "Andalusia" + id = "andalusia" + results = list("andalusia" = 3) + required_reagents = list("rum" = 1, "whiskey" = 1, "lemonjuice" = 1) + +/datum/chemical_reaction/neurotoxin + name = "Neurotoxin" + id = "neurotoxin" + results = list("neurotoxin" = 2) + required_reagents = list("gargleblaster" = 1, "morphine" = 1) + +/datum/chemical_reaction/snowwhite + name = "Snow White" + id = "snowwhite" + results = list("snowwhite" = 2) + required_reagents = list("beer" = 1, "lemon_lime" = 1) + +/datum/chemical_reaction/irishcarbomb + name = "Irish Car Bomb" + id = "irishcarbomb" + results = list("irishcarbomb" = 2) + required_reagents = list("ale" = 1, "irishcream" = 1) + +/datum/chemical_reaction/syndicatebomb + name = "Syndicate Bomb" + id = "syndicatebomb" + results = list("syndicatebomb" = 2) + required_reagents = list("beer" = 1, "whiskeycola" = 1) + +/datum/chemical_reaction/erikasurprise + name = "Erika Surprise" + id = "erikasurprise" + results = list("erikasurprise" = 5) + required_reagents = list("ale" = 1, "limejuice" = 1, "whiskey" = 1, "banana" = 1, "ice" = 1) + +/datum/chemical_reaction/devilskiss + name = "Devils Kiss" + id = "devilskiss" + results = list("devilskiss" = 3) + required_reagents = list("blood" = 1, "kahlua" = 1, "rum" = 1) + +/datum/chemical_reaction/hippiesdelight + name = "Hippies Delight" + id = "hippiesdelight" + results = list("hippiesdelight" = 2) + required_reagents = list("mushroomhallucinogen" = 1, "gargleblaster" = 1) + +/datum/chemical_reaction/bananahonk + name = "Banana Honk" + id = "bananahonk" + results = list("bananahonk" = 3) + required_reagents = list("banana" = 1, "cream" = 1, "sugar" = 1) + +/datum/chemical_reaction/silencer + name = "Silencer" + id = "silencer" + results = list("silencer" = 3) + required_reagents = list("nothing" = 1, "cream" = 1, "sugar" = 1) + +/datum/chemical_reaction/driestmartini + name = "Driest Martini" + id = "driestmartini" + results = list("driestmartini" = 2) + required_reagents = list("nothing" = 1, "gin" = 1) + +/datum/chemical_reaction/thirteenloko + name = "Thirteen Loko" + id = "thirteenloko" + results = list("thirteenloko" = 3) + required_reagents = list("vodka" = 1, "coffee" = 1, "limejuice" = 1) + +/datum/chemical_reaction/chocolatepudding + name = "Chocolate Pudding" + id = "chocolatepudding" + results = list("chocolatepudding" = 20) + required_reagents = list("cocoa" = 5, "milk" = 5, "eggyolk" = 5) + +/datum/chemical_reaction/vanillapudding + name = "Vanilla Pudding" + id = "vanillapudding" + results = list("vanillapudding" = 20) + required_reagents = list("vanilla" = 5, "milk" = 5, "eggyolk" = 5) + +/datum/chemical_reaction/cherryshake + name = "Cherry Shake" + id = "cherryshake" + results = list("cherryshake" = 3) + required_reagents = list("cherryjelly" = 1, "ice" = 1, "cream" = 1) + +/datum/chemical_reaction/bluecherryshake + name = "Blue Cherry Shake" + id = "bluecherryshake" + results = list("bluecherryshake" = 3) + required_reagents = list("bluecherryjelly" = 1, "ice" = 1, "cream" = 1) + +/datum/chemical_reaction/drunkenblumpkin + name = "Drunken Blumpkin" + id = "drunkenblumpkin" + results = list("drunkenblumpkin" = 4) + required_reagents = list("blumpkinjuice" = 1, "irishcream" = 2, "ice" = 1) + +/datum/chemical_reaction/pumpkin_latte + name = "Pumpkin space latte" + id = "pumpkin_latte" + results = list("pumpkin_latte" = 15) + required_reagents = list("pumpkinjuice" = 5, "coffee" = 5, "cream" = 5) + +/datum/chemical_reaction/gibbfloats + name = "Gibb Floats" + id = "gibbfloats" + results = list("gibbfloats" = 15) + required_reagents = list("dr_gibb" = 5, "ice" = 5, "cream" = 5) + +/datum/chemical_reaction/triple_citrus + name = "triple_citrus" + id = "triple_citrus" + results = list("triple_citrus" = 5) + required_reagents = list("lemonjuice" = 1, "limejuice" = 1, "orangejuice" = 1) + +/datum/chemical_reaction/grape_soda + name = "grape soda" + id = "grapesoda" + results = list("grape_soda" = 2) + required_reagents = list("grapejuice" = 1, "sodawater" = 1) + +/datum/chemical_reaction/grappa + name = "grappa" + id = "grappa" + results = list("grappa" = 10) + required_reagents = list ("wine" = 10) + required_catalysts = list ("enzyme" = 5) + +/datum/chemical_reaction/whiskey_sour + name = "Whiskey Sour" + id = "whiskey_sour" + results = list("whiskey_sour" = 3) + required_reagents = list("whiskey" = 1, "lemonjuice" = 1, "sugar" = 1) + mix_message = "The mixture darkens to a rich gold hue." + mix_sound = null + +/datum/chemical_reaction/fetching_fizz + name = "Fetching Fizz" + id = "fetching_fizz" + results = list("fetching_fizz" = 3) + required_reagents = list("nuka_cola" = 1, "iron" = 1) //Manufacturable from only the mining station + mix_message = "The mixture slightly vibrates before settling." + +/datum/chemical_reaction/hearty_punch + name = "Hearty Punch" + id = "hearty_punch" + results = list("hearty_punch" = 1) //Very little, for balance reasons + required_reagents = list("bravebull" = 5, "syndicatebomb" = 5, "absinthe" = 5) + mix_message = "The mixture darkens to a healthy crimson." + mix_sound = null + required_temp = 315 //Piping hot! + +/datum/chemical_reaction/bacchus_blessing + name = "Bacchus' Blessing" + id = "bacchus_blessing" + results = list("bacchus_blessing" = 4) + required_reagents = list("hooch" = 1, "absinthe" = 1, "manlydorf" = 1, "syndicatebomb" = 1) + mix_message = "The mixture turns to a sickening froth." + +/datum/chemical_reaction/arnold_palmer + name = "Arnold Palmer" + id = "arnold_palmer" + results = list("arnold_palmer" = 2) + required_reagents = list("tea" = 1, "lemonjuice" = 1) + mix_message = "The smells of fresh green grass and sand traps waft through the air as the mixture turns a friendly yellow-orange." + +/datum/chemical_reaction/chocolate_milk + name = "chocolate milk" + id = "chocolate_milk" + results = list("chocolate_milk" = 2) + required_reagents = list("milk" = 1, "cocoa" = 1) + mix_message = "The color changes as the mixture blends smoothly." \ No newline at end of file diff --git a/code/modules/food_and_drinks/recipes/food_mixtures.dm b/code/modules/food_and_drinks/recipes/food_mixtures.dm new file mode 100644 index 0000000..314ee2c --- /dev/null +++ b/code/modules/food_and_drinks/recipes/food_mixtures.dm @@ -0,0 +1,162 @@ +/datum/crafting_recipe/food + var/real_parts + +/datum/crafting_recipe/food/New() + real_parts = parts.Copy() + parts |= reqs + +//////////////////////////////////////////FOOD MIXTURES//////////////////////////////////// + +/datum/chemical_reaction/tofu + name = "Tofu" + id = "tofu" + required_reagents = list("soymilk" = 10) + required_catalysts = list("enzyme" = 5) + mob_react=1 + +/datum/chemical_reaction/tofu/on_reaction(datum/reagents/holder, created_volume) + var/location = get_turf(holder.my_atom) + for(var/i = 1, i <= created_volume, i++) + new /obj/item/weapon/reagent_containers/food/snacks/tofu(location) + return + +/datum/chemical_reaction/chocolate_bar + name = "Chocolate Bar" + id = "chocolate_bar" + required_reagents = list("soymilk" = 2, "cocoa" = 2, "sugar" = 2) + +/datum/chemical_reaction/chocolate_bar/on_reaction(datum/reagents/holder, created_volume) + var/location = get_turf(holder.my_atom) + for(var/i = 1, i <= created_volume, i++) + new /obj/item/weapon/reagent_containers/food/snacks/chocolatebar(location) + return + + +/datum/chemical_reaction/chocolate_bar2 + name = "Chocolate Bar" + id = "chocolate_bar" + required_reagents = list("chocolate_milk" = 4, "sugar" = 2) + mob_react = 1 + +/datum/chemical_reaction/chocolate_bar2/on_reaction(datum/reagents/holder, created_volume) + var/location = get_turf(holder.my_atom) + for(var/i = 1, i <= created_volume, i++) + new /obj/item/weapon/reagent_containers/food/snacks/chocolatebar(location) + return + +/datum/chemical_reaction/hot_coco + name = "Hot Coco" + id = "hot_coco" + results = list("hot_coco" = 5) + required_reagents = list("water" = 5, "cocoa" = 1) + +/datum/chemical_reaction/coffee + name = "Coffee" + id = "coffee" + results = list("coffee" = 5) + required_reagents = list("coffeepowder" = 1, "water" = 5) + +/datum/chemical_reaction/tea + name = "Tea" + id = "tea" + results = list("tea" = 5) + required_reagents = list("teapowder" = 1, "water" = 5) + +/datum/chemical_reaction/soysauce + name = "Soy Sauce" + id = "soysauce" + results = list("soysauce" = 5) + required_reagents = list("soymilk" = 4, "sacid" = 1) + +/datum/chemical_reaction/corn_syrup + name = "corn_syrup" + id = "corn_syrup" + results = list("corn_syrup" = 5) + required_reagents = list("corn_starch" = 1, "sacid" = 1) + required_temp = 374 + +/datum/chemical_reaction/cheesewheel + name = "Cheesewheel" + id = "cheesewheel" + required_reagents = list("milk" = 40) + required_catalysts = list("enzyme" = 5) + +/datum/chemical_reaction/cheesewheel/on_reaction(datum/reagents/holder, created_volume) + var/location = get_turf(holder.my_atom) + for(var/i = 1, i <= created_volume, i++) + new /obj/item/weapon/reagent_containers/food/snacks/store/cheesewheel(location) + +/datum/chemical_reaction/synthmeat + name = "synthmeat" + id = "synthmeat" + required_reagents = list("blood" = 5, "cryoxadone" = 1) + mob_react = 1 + +/datum/chemical_reaction/synthmeat/on_reaction(datum/reagents/holder, created_volume) + var/location = get_turf(holder.my_atom) + for(var/i = 1, i <= created_volume, i++) + new /obj/item/weapon/reagent_containers/food/snacks/meat/slab/synthmeat(location) + +/datum/chemical_reaction/hot_ramen + name = "Hot Ramen" + id = "hot_ramen" + results = list("hot_ramen" = 3) + required_reagents = list("water" = 1, "dry_ramen" = 3) + +/datum/chemical_reaction/hell_ramen + name = "Hell Ramen" + id = "hell_ramen" + results = list("hell_ramen" = 6) + required_reagents = list("capsaicin" = 1, "hot_ramen" = 6) + +/datum/chemical_reaction/imitationcarpmeat + name = "Imitation Carpmeat" + id = "imitationcarpmeat" + required_reagents = list("carpotoxin" = 5) + required_container = /obj/item/weapon/reagent_containers/food/snacks/tofu + mix_message = "The mixture becomes similar to carp meat." + +/datum/chemical_reaction/imitationcarpmeat/on_reaction(datum/reagents/holder) + var/location = get_turf(holder.my_atom) + new /obj/item/weapon/reagent_containers/food/snacks/carpmeat/imitation(location) + if(holder && holder.my_atom) + qdel(holder.my_atom) + +/datum/chemical_reaction/dough + name = "Dough" + id = "dough" + required_reagents = list("water" = 10, "flour" = 15) + mix_message = "The ingredients form a dough." + +/datum/chemical_reaction/dough/on_reaction(datum/reagents/holder, created_volume) + var/location = get_turf(holder.my_atom) + for(var/i = 1, i <= created_volume, i++) + new /obj/item/weapon/reagent_containers/food/snacks/dough(location) + +/datum/chemical_reaction/cakebatter + name = "Cake Batter" + id = "cakebatter" + required_reagents = list("eggyolk" = 15, "flour" = 15, "sugar" = 5) + mix_message = "The ingredients form a cake batter." + +/datum/chemical_reaction/cakebatter/on_reaction(datum/reagents/holder, created_volume) + var/location = get_turf(holder.my_atom) + for(var/i = 1, i <= created_volume, i++) + new /obj/item/weapon/reagent_containers/food/snacks/cakebatter(location) + +/datum/chemical_reaction/cakebatter/vegan + id = "vegancakebatter" + required_reagents = list("soymilk" = 15, "flour" = 15, "sugar" = 5) + +/datum/chemical_reaction/ricebowl + name = "Rice Bowl" + id = "ricebowl" + required_reagents = list("rice" = 10, "water" = 10) + required_container = /obj/item/weapon/reagent_containers/glass/bowl + mix_message = "The rice absorbs the water." + +/datum/chemical_reaction/ricebowl/on_reaction(datum/reagents/holder) + var/location = get_turf(holder.my_atom) + new /obj/item/weapon/reagent_containers/food/snacks/salad/ricebowl(location) + if(holder && holder.my_atom) + qdel(holder.my_atom) diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_bread.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_bread.dm new file mode 100644 index 0000000..e35d5c8 --- /dev/null +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_bread.dm @@ -0,0 +1,76 @@ + +// see code/module/crafting/table.dm + +////////////////////////////////////////////////BREAD//////////////////////////////////////////////// + +/datum/crafting_recipe/food/meatbread + name = "Meat bread" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/store/bread/plain = 1, + /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet/plain = 3, + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge = 3 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/store/bread/meat + category = CAT_BREAD + +/datum/crafting_recipe/food/xenomeatbread + name = "Xenomeat bread" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/store/bread/plain = 1, + /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet/xeno = 3, + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge = 3 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/store/bread/xenomeat + category = CAT_BREAD + +/datum/crafting_recipe/food/spidermeatbread + name = "Spidermeat bread" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/store/bread/plain = 1, + /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet/spider = 3, + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge = 3 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/store/bread/spidermeat + category = CAT_BREAD + +/datum/crafting_recipe/food/banananutbread + name = "Banana nut bread" + reqs = list( + /datum/reagent/consumable/milk = 5, + /obj/item/weapon/reagent_containers/food/snacks/store/bread/plain = 1, + /obj/item/weapon/reagent_containers/food/snacks/boiledegg = 3, + /obj/item/weapon/reagent_containers/food/snacks/grown/banana = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/store/bread/banana + category = CAT_BREAD + +/datum/crafting_recipe/food/tofubread + name = "Tofu bread" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/store/bread/plain = 1, + /obj/item/weapon/reagent_containers/food/snacks/tofu = 3, + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge = 3 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/store/bread/tofu + category = CAT_BREAD + +/datum/crafting_recipe/food/creamcheesebread + name = "Cream cheese bread" + reqs = list( + /datum/reagent/consumable/milk = 5, + /obj/item/weapon/reagent_containers/food/snacks/store/bread/plain = 1, + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge = 2 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/store/bread/creamcheese + category = CAT_BREAD + +/datum/crafting_recipe/food/mimanabread + name = "Mimana bread" + reqs = list( + /datum/reagent/consumable/soymilk = 5, + /obj/item/weapon/reagent_containers/food/snacks/store/bread/plain = 1, + /obj/item/weapon/reagent_containers/food/snacks/tofu = 3, + /obj/item/weapon/reagent_containers/food/snacks/grown/banana/mime = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/store/bread/mimana + category = CAT_BREAD diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_burger.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_burger.dm new file mode 100644 index 0000000..573574f --- /dev/null +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_burger.dm @@ -0,0 +1,275 @@ + +// see code/module/crafting/table.dm + +////////////////////////////////////////////////BURGERS//////////////////////////////////////////////// + + +/datum/crafting_recipe/food/humanburger + name = "Human burger" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/bun = 1, + /obj/item/weapon/reagent_containers/food/snacks/meat/steak/plain/human = 1 + ) + parts = list( + /obj/item/weapon/reagent_containers/food/snacks/meat/steak/plain/human = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/burger/human + category = CAT_BURGER + +/datum/crafting_recipe/food/burger + name = "Burger" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/meat/steak/plain = 1, + /obj/item/weapon/reagent_containers/food/snacks/bun = 1 + ) + + result = /obj/item/weapon/reagent_containers/food/snacks/burger/plain + category = CAT_BURGER + +/datum/crafting_recipe/food/corgiburger + name = "Corgi burger" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/meat/slab/corgi = 1, + /obj/item/weapon/reagent_containers/food/snacks/bun = 1 + ) + + result = /obj/item/weapon/reagent_containers/food/snacks/burger/corgi + category = CAT_BURGER + +/datum/crafting_recipe/food/appendixburger + name = "Appendix burger" + reqs = list( + /obj/item/organ/appendix = 1, + /obj/item/weapon/reagent_containers/food/snacks/bun = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/burger/appendix + category = CAT_BURGER + +/datum/crafting_recipe/food/brainburger + name = "Brain burger" + reqs = list( + /obj/item/organ/brain = 1, + /obj/item/weapon/reagent_containers/food/snacks/bun = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/burger/brain + category = CAT_BURGER + +/datum/crafting_recipe/food/xenoburger + name = "Xeno burger" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/meat/steak/xeno = 1, + /obj/item/weapon/reagent_containers/food/snacks/bun = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/burger/xeno + category = CAT_BURGER + +/datum/crafting_recipe/food/bearger + name = "Bearger" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/meat/steak/bear = 1, + /obj/item/weapon/reagent_containers/food/snacks/bun = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/burger/bearger + category = CAT_BURGER + +/datum/crafting_recipe/food/fishburger + name = "Fish burger" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/carpmeat = 1, + /obj/item/weapon/reagent_containers/food/snacks/bun = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/burger/fish + category = CAT_BURGER + +/datum/crafting_recipe/food/tofuburger + name = "Tofu burger" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/tofu = 1, + /obj/item/weapon/reagent_containers/food/snacks/bun = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/burger/tofu + category = CAT_BURGER + +/datum/crafting_recipe/food/ghostburger + name = "Ghost burger" + reqs = list( + /obj/item/weapon/ectoplasm = 1, + /obj/item/weapon/reagent_containers/food/snacks/bun = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/burger/ghost + category = CAT_BURGER + +/datum/crafting_recipe/food/clownburger + name = "Clown burger" + reqs = list( + /obj/item/clothing/mask/gas/clown_hat = 1, + /obj/item/weapon/reagent_containers/food/snacks/bun = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/burger/clown + category = CAT_BURGER + +/datum/crafting_recipe/food/mimeburger + name = "Mime burger" + reqs = list( + /obj/item/clothing/mask/gas/mime = 1, + /obj/item/weapon/reagent_containers/food/snacks/bun = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/burger/mime + category = CAT_BURGER + +/datum/crafting_recipe/food/redburger + name = "Red burger" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/meat/steak/plain = 1, + /obj/item/toy/crayon/red = 1, + /obj/item/weapon/reagent_containers/food/snacks/bun = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/burger/red + category = CAT_BURGER + +/datum/crafting_recipe/food/orangeburger + name = "Orange burger" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/meat/steak/plain = 1, + /obj/item/toy/crayon/orange = 1, + /obj/item/weapon/reagent_containers/food/snacks/bun = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/burger/orange + category = CAT_BURGER + +/datum/crafting_recipe/food/yellowburger + name = "Yellow burger" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/meat/steak/plain = 1, + /obj/item/toy/crayon/yellow = 1, + /obj/item/weapon/reagent_containers/food/snacks/bun = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/burger/yellow + category = CAT_BURGER + +/datum/crafting_recipe/food/greenburger + name = "Green burger" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/meat/steak/plain = 1, + /obj/item/toy/crayon/green = 1, + /obj/item/weapon/reagent_containers/food/snacks/bun = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/burger/green + category = CAT_BURGER + +/datum/crafting_recipe/food/blueburger + name = "Blue burger" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/meat/steak/plain = 1, + /obj/item/toy/crayon/blue = 1, + /obj/item/weapon/reagent_containers/food/snacks/bun = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/burger/blue + category = CAT_BURGER + +/datum/crafting_recipe/food/purpleburger + name = "Purple burger" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/meat/steak/plain = 1, + /obj/item/toy/crayon/purple = 1, + /obj/item/weapon/reagent_containers/food/snacks/bun = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/burger/purple + category = CAT_BURGER + +/datum/crafting_recipe/food/spellburger + name = "Spell burger" + reqs = list( + /obj/item/clothing/head/wizard/fake = 1, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/burger/spell + category = CAT_BURGER + +/datum/crafting_recipe/food/spellburger2 + name = "Spell burger" + reqs = list( + /obj/item/clothing/head/wizard = 1, + /obj/item/weapon/reagent_containers/food/snacks/bun = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/burger/spell + category = CAT_BURGER + +/datum/crafting_recipe/food/bigbiteburger + name = "Big bite burger" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/meat/steak/plain = 3, + /obj/item/weapon/reagent_containers/food/snacks/bun = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/burger/bigbite + category = CAT_BURGER + +/datum/crafting_recipe/food/superbiteburger + name = "Super bite burger" + reqs = list( + /datum/reagent/consumable/sodiumchloride = 5, + /datum/reagent/consumable/blackpepper = 5, + /obj/item/weapon/reagent_containers/food/snacks/meat/steak/plain = 5, + /obj/item/weapon/reagent_containers/food/snacks/grown/tomato = 4, + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge = 3, + /obj/item/weapon/reagent_containers/food/snacks/boiledegg = 2, + /obj/item/weapon/reagent_containers/food/snacks/bun = 1 + + ) + result = /obj/item/weapon/reagent_containers/food/snacks/burger/superbite + category = CAT_BURGER + +/datum/crafting_recipe/food/slimeburger + name = "Jelly burger" + reqs = list( + /datum/reagent/toxin/slimejelly = 5, + /obj/item/weapon/reagent_containers/food/snacks/bun = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/burger/jelly/slime + category = CAT_BURGER + +/datum/crafting_recipe/food/jellyburger + name = "Jelly burger" + reqs = list( + /datum/reagent/consumable/cherryjelly = 5, + /obj/item/weapon/reagent_containers/food/snacks/bun = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/burger/jelly/cherry + category = CAT_BURGER + +/datum/crafting_recipe/food/fivealarmburger + name = "Five alarm burger" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/grown/ghost_chili = 2, + /obj/item/weapon/reagent_containers/food/snacks/bun = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/burger/fivealarm + category = CAT_BURGER + +/datum/crafting_recipe/food/ratburger + name = "Rat burger" + reqs = list( + /obj/item/trash/deadmouse = 1, + /obj/item/weapon/reagent_containers/food/snacks/bun = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/burger/rat + category = CAT_BURGER + +/datum/crafting_recipe/food/baseballburger + name = "Home run baseball burger" + reqs = list( + /obj/item/weapon/melee/baseball_bat = 1, + /obj/item/weapon/reagent_containers/food/snacks/bun = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/burger/baseball + category = CAT_BURGER + +/datum/crafting_recipe/food/baconburger + name = "Bacon Burger" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/meat/bacon = 3, + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge = 1, + /obj/item/weapon/reagent_containers/food/snacks/bun = 1 + ) + + result = /obj/item/weapon/reagent_containers/food/snacks/burger/baconburger + category = CAT_BURGER diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.dm new file mode 100644 index 0000000..439db29 --- /dev/null +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.dm @@ -0,0 +1,117 @@ + +// see code/module/crafting/table.dm + +////////////////////////////////////////////////CAKE//////////////////////////////////////////////// + +/datum/crafting_recipe/food/carrotcake + name = "Carrot cake" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/store/cake/plain = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/carrot = 2 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/store/cake/carrot + category = CAT_CAKE + +/datum/crafting_recipe/food/cheesecake + name = "Cheese cake" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/store/cake/plain = 1, + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge = 2 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/store/cake/cheese + category = CAT_CAKE + +/datum/crafting_recipe/food/applecake + name = "Apple cake" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/store/cake/plain = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/apple = 2 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/store/cake/apple + category = CAT_CAKE + +/datum/crafting_recipe/food/orangecake + name = "Orange cake" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/store/cake/plain = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/citrus/orange = 2 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/store/cake/orange + category = CAT_CAKE + +/datum/crafting_recipe/food/limecake + name = "Lime cake" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/store/cake/plain = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/citrus/lime = 2 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/store/cake/lime + category = CAT_CAKE + +/datum/crafting_recipe/food/lemoncake + name = "Lemon cake" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/store/cake/plain = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/citrus/lemon = 2 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/store/cake/lemon + category = CAT_CAKE + +/datum/crafting_recipe/food/chocolatecake + name = "Chocolate cake" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/store/cake/plain = 1, + /obj/item/weapon/reagent_containers/food/snacks/chocolatebar = 2 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/store/cake/chocolate + category = CAT_CAKE + +/datum/crafting_recipe/food/birthdaycake + name = "Birthday cake" + reqs = list( + /obj/item/clothing/head/hardhat/cakehat = 1, + /obj/item/weapon/reagent_containers/food/snacks/store/cake/plain = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/store/cake/birthday + category = CAT_CAKE + +/datum/crafting_recipe/food/braincake + name = "Brain cake" + reqs = list( + /obj/item/organ/brain = 1, + /obj/item/weapon/reagent_containers/food/snacks/store/cake/plain = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/store/cake/brain + category = CAT_CAKE + +/datum/crafting_recipe/food/slimecake + name = "Slime cake" + reqs = list( + /obj/item/slime_extract = 1, + /obj/item/weapon/reagent_containers/food/snacks/store/cake/plain = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/store/cake/slimecake + category = CAT_CAKE + +/datum/crafting_recipe/food/pumpkinspicecake + name = "Pumpkin spice cake" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/store/cake/plain = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/pumpkin = 2 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/store/cake/pumpkinspice + category = CAT_CAKE + +/datum/crafting_recipe/food/cak + name = "Living cat/cake hybrid" + reqs = list( + /obj/item/organ/brain = 1, + /obj/item/organ/heart = 1, + /obj/item/weapon/reagent_containers/food/snacks/store/cake/birthday = 1, + /obj/item/weapon/reagent_containers/food/snacks/meat/slab = 3, + /datum/reagent/blood = 30, + /datum/reagent/consumable/sprinkles = 5, + /datum/reagent/teslium = 1 //To shock the whole thing into life + ) + result = /mob/living/simple_animal/pet/cat/cak + category = CAT_CAKE //Cat! Haha, get it? CAT? GET IT??? diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_egg.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_egg.dm new file mode 100644 index 0000000..c03fbe4 --- /dev/null +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_egg.dm @@ -0,0 +1,42 @@ + +// see code/module/crafting/table.dm + +////////////////////////////////////////////////EGG RECIPE's//////////////////////////////////////////////// + +/datum/crafting_recipe/food/friedegg + name = "Fried egg" + reqs = list( + /datum/reagent/consumable/sodiumchloride = 1, + /datum/reagent/consumable/blackpepper = 1, + /obj/item/weapon/reagent_containers/food/snacks/boiledegg = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/friedegg + category = CAT_EGG + +/datum/crafting_recipe/food/omelette + name = "omelette" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/boiledegg = 2, + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge = 2 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/omelette + category = CAT_EGG + +/datum/crafting_recipe/food/chocolateegg + name = "Chocolate egg" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/boiledegg = 1, + /obj/item/weapon/reagent_containers/food/snacks/chocolatebar = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/chocolateegg + category = CAT_EGG + +/datum/crafting_recipe/food/eggsbenedict + name = "Eggs benedict" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/friedegg = 1, + /obj/item/weapon/reagent_containers/food/snacks/meat/steak = 1, + /obj/item/weapon/reagent_containers/food/snacks/breadslice/plain = 1, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/benedict + category = CAT_EGG diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm new file mode 100644 index 0000000..d2245a0 --- /dev/null +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm @@ -0,0 +1,162 @@ + + +////////////////////////////////////////////////KEBABS//////////////////////////////////////////////// + +/datum/crafting_recipe/food/humankebab + name = "Human kebab" + reqs = list( + /obj/item/stack/rods = 1, + /obj/item/weapon/reagent_containers/food/snacks/meat/steak/plain/human = 2 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/kebab/human + category = CAT_MEAT + +/datum/crafting_recipe/food/kebab + name = "Kebab" + reqs = list( + /obj/item/stack/rods = 1, + /obj/item/weapon/reagent_containers/food/snacks/meat/steak = 2 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/kebab/monkey + category = CAT_MEAT + +/datum/crafting_recipe/food/tofukebab + name = "Tofu kebab" + reqs = list( + /obj/item/stack/rods = 1, + /obj/item/weapon/reagent_containers/food/snacks/tofu = 2 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/kebab/tofu + category = CAT_MEAT + +/datum/crafting_recipe/food/tailkebab + name = "Lizard tail kebab" + reqs = list( + /obj/item/stack/rods = 1, + /obj/item/severedtail = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/kebab/tail + category = CAT_MEAT + +// see code/module/crafting/table.dm + +////////////////////////////////////////////////FISH//////////////////////////////////////////////// + +/datum/crafting_recipe/food/cubancarp + name = "Cuban carp" + reqs = list( + /datum/reagent/consumable/flour = 5, + /obj/item/weapon/reagent_containers/food/snacks/grown/chili = 1, + /obj/item/weapon/reagent_containers/food/snacks/carpmeat = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/cubancarp + category = CAT_MEAT + +/datum/crafting_recipe/food/fishandchips + name = "Fish and chips" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/fries = 1, + /obj/item/weapon/reagent_containers/food/snacks/carpmeat = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/fishandchips + category = CAT_MEAT + +/datum/crafting_recipe/food/fishfingers + name = "Fish fingers" + reqs = list( + /datum/reagent/consumable/flour = 5, + /obj/item/weapon/reagent_containers/food/snacks/bun = 1, + /obj/item/weapon/reagent_containers/food/snacks/carpmeat = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/fishfingers + category = CAT_MEAT + +/datum/crafting_recipe/food/sashimi + name = "Sashimi" + reqs = list( + /datum/reagent/consumable/soysauce = 5, + /obj/item/weapon/reagent_containers/food/snacks/spidereggs = 1, + /obj/item/weapon/reagent_containers/food/snacks/carpmeat = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/sashimi + category = CAT_MEAT + +////////////////////////////////////////////////MR SPIDER//////////////////////////////////////////////// + +/datum/crafting_recipe/food/spidereggsham + name = "Spider eggs ham" + reqs = list( + /datum/reagent/consumable/sodiumchloride = 1, + /obj/item/weapon/reagent_containers/food/snacks/spidereggs = 1, + /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet/spider = 2 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/spidereggsham + category = CAT_MEAT + +////////////////////////////////////////////////MISC RECIPE's//////////////////////////////////////////////// + +/datum/crafting_recipe/food/cornedbeef + name = "Corned beef" + reqs = list( + /datum/reagent/consumable/sodiumchloride = 5, + /obj/item/weapon/reagent_containers/food/snacks/meat/steak = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/cabbage = 2 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/cornedbeef + category = CAT_MEAT + +/datum/crafting_recipe/food/bearsteak + name = "Filet migrawr" + reqs = list( + /datum/reagent/consumable/ethanol/manly_dorf = 5, + /obj/item/weapon/reagent_containers/food/snacks/meat/steak/bear = 1, + ) + tools = list(/obj/item/weapon/lighter) + result = /obj/item/weapon/reagent_containers/food/snacks/bearsteak + category = CAT_MEAT + +/datum/crafting_recipe/food/enchiladas + name = "Enchiladas" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet = 2, + /obj/item/weapon/reagent_containers/food/snacks/grown/chili = 2, + /obj/item/weapon/reagent_containers/food/snacks/tortilla = 2 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/enchiladas + category = CAT_MEAT + +/datum/crafting_recipe/food/stewedsoymeat + name = "Stewed soymeat" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/soydope = 2, + /obj/item/weapon/reagent_containers/food/snacks/grown/carrot = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/tomato = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/stewedsoymeat + category = CAT_MEAT + +/datum/crafting_recipe/food/sausage + name = "Sausage" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/faggot = 1, + /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet = 2 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/sausage + category = CAT_MEAT + +/datum/crafting_recipe/food/nugget + name = "Chicken nugget" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/nugget + category = CAT_MEAT + +/datum/crafting_recipe/food/rawkhinkali + name = "Raw Khinkali" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/doughslice = 1, + /obj/item/weapon/reagent_containers/food/snacks/faggot = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/rawkhinkali + category = CAT_MEAT diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm new file mode 100644 index 0000000..de9861b --- /dev/null +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm @@ -0,0 +1,297 @@ + +// see code/module/crafting/table.dm + +// MISC + +/datum/crafting_recipe/food/candiedapple + name = "Candied apple" + reqs = list(/datum/reagent/water = 5, + /datum/reagent/consumable/sugar = 5, + /obj/item/weapon/reagent_containers/food/snacks/grown/apple = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/candiedapple + category = CAT_MISCFOOD + +/datum/crafting_recipe/food/chococoin + name = "Choco coin" + reqs = list( + /obj/item/weapon/coin = 1, + /obj/item/weapon/reagent_containers/food/snacks/chocolatebar = 1, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/chococoin + category = CAT_MISCFOOD + +/datum/crafting_recipe/food/fudgedice + name = "Fudge dice" + reqs = list( + /obj/item/weapon/dice = 1, + /obj/item/weapon/reagent_containers/food/snacks/chocolatebar = 1, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/fudgedice + category = CAT_MISCFOOD + +/datum/crafting_recipe/food/chocoorange + name = "Choco orange" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/grown/citrus/orange = 1, + /obj/item/weapon/reagent_containers/food/snacks/chocolatebar = 1, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/chocoorange + category = CAT_MISCFOOD + +/datum/crafting_recipe/food/loadedbakedpotato + name = "Loaded baked potato" + time = 40 + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/grown/potato = 1, + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/loadedbakedpotato + category = CAT_MISCFOOD + +/datum/crafting_recipe/food/cheesyfries + name = "Cheesy fries" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/fries = 1, + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/cheesyfries + category = CAT_MISCFOOD + +/datum/crafting_recipe/food/wrap + name = "Wrap" + reqs = list(/datum/reagent/consumable/soysauce = 10, + /obj/item/weapon/reagent_containers/food/snacks/friedegg = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/cabbage = 1, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/eggwrap + category = CAT_MISCFOOD + +/datum/crafting_recipe/food/beans + name = "Beans" + time = 40 + reqs = list(/datum/reagent/consumable/ketchup = 5, + /obj/item/weapon/reagent_containers/food/snacks/grown/soybeans = 2 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/beans + category = CAT_MISCFOOD + +/datum/crafting_recipe/food/eggplantparm + name ="Eggplant parmigiana" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge = 2, + /obj/item/weapon/reagent_containers/food/snacks/grown/eggplant = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/eggplantparm + category = CAT_MISCFOOD + +/datum/crafting_recipe/food/baguette + name = "Baguette" + time = 40 + reqs = list(/datum/reagent/consumable/sodiumchloride = 1, + /datum/reagent/consumable/blackpepper = 1, + /obj/item/weapon/reagent_containers/food/snacks/pastrybase = 2 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/baguette + category = CAT_MISCFOOD + +////////////////////////////////////////////////TOAST//////////////////////////////////////////////// + +/datum/crafting_recipe/food/slimetoast + name = "Slime toast" + reqs = list( + /datum/reagent/toxin/slimejelly = 5, + /obj/item/weapon/reagent_containers/food/snacks/breadslice/plain = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/jelliedtoast/slime + category = CAT_MISCFOOD + +/datum/crafting_recipe/food/jelliedyoast + name = "Jellied toast" + reqs = list( + /datum/reagent/consumable/cherryjelly = 5, + /obj/item/weapon/reagent_containers/food/snacks/breadslice/plain = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/jelliedtoast/cherry + category = CAT_MISCFOOD + +/datum/crafting_recipe/food/twobread + name = "Two bread" + reqs = list( + /datum/reagent/consumable/ethanol/wine = 5, + /obj/item/weapon/reagent_containers/food/snacks/breadslice/plain = 2 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/twobread + category = CAT_MISCFOOD + +/datum/crafting_recipe/food/burrito + name ="Burrito" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/tortilla = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/soybeans = 2 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/burrito + category = CAT_MISCFOOD + +/datum/crafting_recipe/food/cheesyburrito + name ="Cheesy burrito" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/tortilla = 1, + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge = 2, + /obj/item/weapon/reagent_containers/food/snacks/grown/soybeans = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/cheesyburrito + category = CAT_MISCFOOD + +/datum/crafting_recipe/food/carneburrito + name ="Carne de asada burrito" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/tortilla = 1, + /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet = 2, + /obj/item/weapon/reagent_containers/food/snacks/grown/soybeans = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/carneburrito + category = CAT_MISCFOOD + +/datum/crafting_recipe/food/fuegoburrito + name ="Fuego plasma burrito" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/tortilla = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/ghost_chili = 2, + /obj/item/weapon/reagent_containers/food/snacks/grown/soybeans = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/fuegoburrito + category = CAT_MISCFOOD + +/datum/crafting_recipe/food/melonfruitbowl + name ="Melon fruit bowl" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/grown/watermelon = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/apple = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/citrus/orange = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/citrus/lemon = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/banana = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/melonfruitbowl + category = CAT_MISCFOOD + +/datum/crafting_recipe/food/spacefreezy + name ="Space freezy" + reqs = list( + /datum/reagent/consumable/bluecherryjelly = 5, + /datum/reagent/consumable/spacemountainwind = 15, + /obj/item/weapon/reagent_containers/food/snacks/icecream = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/spacefreezy + category = CAT_MISCFOOD + +/datum/crafting_recipe/food/sundae + name ="Sundae" + reqs = list( + /datum/reagent/consumable/cream = 5, + /obj/item/weapon/reagent_containers/food/snacks/grown/cherries = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/banana = 1, + /obj/item/weapon/reagent_containers/food/snacks/icecream = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/sundae + category = CAT_MISCFOOD + +/datum/crafting_recipe/food/honkdae + name ="Honkdae" + reqs = list( + /datum/reagent/consumable/cream = 5, + /obj/item/clothing/mask/gas/clown_hat = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/cherries = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/banana = 2, + /obj/item/weapon/reagent_containers/food/snacks/icecream = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/honkdae + category = CAT_MISCFOOD + +/datum/crafting_recipe/food/nachos + name ="Nachos" + reqs = list( + /datum/reagent/consumable/sodiumchloride = 1, + /obj/item/weapon/reagent_containers/food/snacks/tortilla = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/nachos + category = CAT_MISCFOOD + +/datum/crafting_recipe/food/cheesynachos + name ="Cheesy nachos" + reqs = list( + /datum/reagent/consumable/sodiumchloride = 1, + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge = 1, + /obj/item/weapon/reagent_containers/food/snacks/tortilla = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/cheesynachos + category = CAT_MISCFOOD + +/datum/crafting_recipe/food/cubannachos + name ="Cuban nachos" + reqs = list( + /datum/reagent/consumable/ketchup = 5, + /obj/item/weapon/reagent_containers/food/snacks/grown/chili = 2, + /obj/item/weapon/reagent_containers/food/snacks/tortilla = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/cubannachos + category = CAT_MISCFOOD + +/datum/crafting_recipe/food/melonkeg + name ="Melon keg" + reqs = list( + /datum/reagent/consumable/ethanol/vodka = 25, + /obj/item/weapon/reagent_containers/food/snacks/grown/holymelon = 1, + /obj/item/weapon/reagent_containers/food/drinks/bottle/vodka = 1 + ) + parts = list(/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka = 1) + result = /obj/item/weapon/reagent_containers/food/snacks/melonkeg + category = CAT_MISCFOOD + +/datum/crafting_recipe/food/honeybar + name = "Honey nut bar" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/grown/oat = 1, + /datum/reagent/consumable/honey = 5 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/honeybar + category = CAT_MISCFOOD + + +/datum/crafting_recipe/food/stuffedlegion + name = "Stuffed legion" + time = 40 + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/meat/steak/goliath = 1, + /obj/item/weapon/legion_skull = 1, + /datum/reagent/consumable/ketchup = 2, + /datum/reagent/consumable/capsaicin = 2 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/stuffedlegion + category = CAT_MISCFOOD + + +/datum/crafting_recipe/food/lizardwine + name = "Lizard wine" + time = 40 + reqs = list( + /obj/item/severedtail = 1, + /datum/reagent/consumable/ethanol = 100 + ) + result = /obj/item/weapon/reagent_containers/food/drinks/bottle/lizardwine + category = CAT_MISCFOOD + + +/datum/crafting_recipe/food/powercrepe + name = "Powercrepe" + time = 40 + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/flatdough = 1, + /datum/reagent/consumable/milk = 1, + /datum/reagent/consumable/cherryjelly = 5, + /obj/item/weapon/stock_parts/cell/super =1, + /obj/item/weapon/melee/sabre = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/powercrepe + category = CAT_MISCFOOD diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm new file mode 100644 index 0000000..fd94337 --- /dev/null +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm @@ -0,0 +1,298 @@ + +// see code/module/crafting/table.dm + +////////////////////////////////////////////////DONUTS//////////////////////////////////////////////// + +/datum/crafting_recipe/food/chaosdonut + name = "Chaos donut" + reqs = list( + /datum/reagent/consumable/frostoil = 5, + /datum/reagent/consumable/capsaicin = 5, + /obj/item/weapon/reagent_containers/food/snacks/pastrybase = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/donut/chaos + category = CAT_PASTRY + +/datum/crafting_recipe/food/donut + time = 15 + name = "Donut" + reqs = list( + /datum/reagent/consumable/sugar = 1, + /obj/item/weapon/reagent_containers/food/snacks/pastrybase = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/donut + category = CAT_PASTRY + +/datum/crafting_recipe/food/jellydonut + name = "Jelly donut" + reqs = list( + /datum/reagent/consumable/berryjuice = 5, + /obj/item/weapon/reagent_containers/food/snacks/pastrybase = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/donut/jelly + category = CAT_PASTRY + +/datum/crafting_recipe/food/cherryjellydonut + name = "Cherry jelly donut" + reqs = list( + /datum/reagent/consumable/cherryjelly = 5, + /obj/item/weapon/reagent_containers/food/snacks/pastrybase = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/donut/jelly/cherryjelly + category = CAT_PASTRY + +/datum/crafting_recipe/food/slimejellydonut + name = "Slime jelly donut" + reqs = list( + /datum/reagent/toxin/slimejelly = 5, + /obj/item/weapon/reagent_containers/food/snacks/pastrybase = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/donut/jelly/slimejelly + category = CAT_PASTRY + +////////////////////////////////////////////////WAFFLES//////////////////////////////////////////////// + +/datum/crafting_recipe/food/waffles + time = 15 + name = "Waffles" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/pastrybase = 2 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/waffles + category = CAT_PASTRY + + +/datum/crafting_recipe/food/soylenviridians + name = "Soylent viridians" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/pastrybase = 2, + /obj/item/weapon/reagent_containers/food/snacks/grown/soybeans = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/soylenviridians + category = CAT_PASTRY + +/datum/crafting_recipe/food/soylentgreen + name = "Soylent green" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/pastrybase = 2, + /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human = 2 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/soylentgreen + category = CAT_PASTRY + + +/datum/crafting_recipe/food/rofflewaffles + name = "Roffle waffles" + reqs = list( + /datum/reagent/mushroomhallucinogen = 5, + /obj/item/weapon/reagent_containers/food/snacks/pastrybase = 2 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/rofflewaffles + category = CAT_PASTRY + +////////////////////////////////////////////////DONKPOCCKETS//////////////////////////////////////////////// + +/datum/crafting_recipe/food/donkpocket + time = 15 + name = "Donkpocket" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/pastrybase = 1, + /obj/item/weapon/reagent_containers/food/snacks/faggot = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/donkpocket + category = CAT_PASTRY + +/datum/crafting_recipe/food/dankpocket + time = 15 + name = "Dankpocket" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/pastrybase = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/cannabis = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/dankpocket + category = CAT_PASTRY + +////////////////////////////////////////////////MUFFINS//////////////////////////////////////////////// + +/datum/crafting_recipe/food/muffin + time = 15 + name = "Muffin" + reqs = list( + /datum/reagent/consumable/milk = 5, + /obj/item/weapon/reagent_containers/food/snacks/pastrybase = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/muffin + category = CAT_PASTRY + +/datum/crafting_recipe/food/berrymuffin + name = "Berry muffin" + reqs = list( + /datum/reagent/consumable/milk = 5, + /obj/item/weapon/reagent_containers/food/snacks/pastrybase = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/berries = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/muffin/berry + category = CAT_PASTRY + +/datum/crafting_recipe/food/booberrymuffin + name = "Booberry muffin" + reqs = list( + /datum/reagent/consumable/milk = 5, + /obj/item/weapon/reagent_containers/food/snacks/pastrybase = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/berries = 1, + /obj/item/weapon/ectoplasm = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/muffin/booberry + category = CAT_PASTRY + +/datum/crafting_recipe/food/chawanmushi + name = "Chawanmushi" + reqs = list( + /datum/reagent/water = 5, + /datum/reagent/consumable/soysauce = 5, + /obj/item/weapon/reagent_containers/food/snacks/boiledegg = 2, + /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/chanterelle = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/chawanmushi + category = CAT_PASTRY + +////////////////////////////////////////////OTHER//////////////////////////////////////////// + +/datum/crafting_recipe/food/hotdog + name = "Hot dog" + reqs = list( + /datum/reagent/consumable/ketchup = 5, + /obj/item/weapon/reagent_containers/food/snacks/bun = 1, + /obj/item/weapon/reagent_containers/food/snacks/sausage = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/hotdog + category = CAT_PASTRY + +/datum/crafting_recipe/food/meatbun + name = "Meat bun" + reqs = list( + /datum/reagent/consumable/soysauce = 5, + /obj/item/weapon/reagent_containers/food/snacks/bun = 1, + /obj/item/weapon/reagent_containers/food/snacks/faggot = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/cabbage = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/meatbun + category = CAT_PASTRY + +/datum/crafting_recipe/food/khachapuri + name = "Khachapuri" + reqs = list( + /datum/reagent/consumable/eggyolk = 5, + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge = 1, + /obj/item/weapon/reagent_containers/food/snacks/store/bread/plain = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/khachapuri + category = CAT_PASTRY + +/datum/crafting_recipe/food/sugarcookie + time = 15 + name = "Sugar cookie" + reqs = list( + /datum/reagent/consumable/sugar = 5, + /obj/item/weapon/reagent_containers/food/snacks/pastrybase = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/sugarcookie + category = CAT_PASTRY + +/datum/crafting_recipe/food/fortunecookie + time = 15 + name = "Fortune cookie" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/pastrybase = 1, + /obj/item/weapon/paper = 1 + ) + parts = list( + /obj/item/weapon/paper = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/fortunecookie + category = CAT_PASTRY + +/datum/crafting_recipe/food/poppypretzel + time = 15 + name = "Poppy pretzel" + reqs = list( + /obj/item/seeds/poppy = 1, + /obj/item/weapon/reagent_containers/food/snacks/pastrybase = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/poppypretzel + category = CAT_PASTRY + +/datum/crafting_recipe/food/plumphelmetbiscuit + time = 15 + name = "Plumphelmet biscuit" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/pastrybase = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/plumphelmet = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/plumphelmetbiscuit + category = CAT_PASTRY + +/datum/crafting_recipe/food/cracker + time = 15 + name = "Cracker" + reqs = list( + /datum/reagent/consumable/sodiumchloride = 1, + /obj/item/weapon/reagent_containers/food/snacks/pastrybase = 1, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/cracker + category = CAT_PASTRY + +/datum/crafting_recipe/food/chococornet + name = "Choco cornet" + reqs = list( + /datum/reagent/consumable/sodiumchloride = 1, + /obj/item/weapon/reagent_containers/food/snacks/pastrybase = 1, + /obj/item/weapon/reagent_containers/food/snacks/chocolatebar = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/chococornet + category = CAT_PASTRY + +/datum/crafting_recipe/food/oatmealcookie + name = "Oatmeal cookie" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/pastrybase = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/oat = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/oatmealcookie + +/datum/crafting_recipe/food/raisincookie + name = "Raisin cookie" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/no_raisin = 1, + /obj/item/weapon/reagent_containers/food/snacks/pastrybase = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/oat = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/raisincookie + category = CAT_PASTRY + +/datum/crafting_recipe/food/cherrycupcake + name = "Cherry cupcake" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/pastrybase = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/cherries = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/cherrycupcake + category = CAT_PASTRY + +/datum/crafting_recipe/food/bluecherrycupcake + name = "Blue cherry cupcake" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/pastrybase = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/bluecherries = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/bluecherrycupcake + category = CAT_PASTRY + +/datum/crafting_recipe/food/honeybun + name = "Honey bun" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/pastrybase = 1, + /datum/reagent/consumable/honey = 5 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/honeybun + category = CAT_PASTRY diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pie.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pie.dm new file mode 100644 index 0000000..df47c64 --- /dev/null +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pie.dm @@ -0,0 +1,161 @@ + +// see code/module/crafting/table.dm + +////////////////////////////////////////////////PIES//////////////////////////////////////////////// + +/datum/crafting_recipe/food/bananacreampie + name = "Banana cream pie" + reqs = list( + /datum/reagent/consumable/milk = 5, + /obj/item/weapon/reagent_containers/food/snacks/pie/plain = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/banana = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/pie/cream + category = CAT_PIE + +/datum/crafting_recipe/food/meatpie + name = "Meat pie" + reqs = list( + /datum/reagent/consumable/blackpepper = 1, + /datum/reagent/consumable/sodiumchloride = 1, + /obj/item/weapon/reagent_containers/food/snacks/pie/plain = 1, + /obj/item/weapon/reagent_containers/food/snacks/meat/steak/plain = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/pie/meatpie + category = CAT_PIE + +/datum/crafting_recipe/food/tofupie + name = "Tofu pie" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/pie/plain = 1, + /obj/item/weapon/reagent_containers/food/snacks/tofu = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/pie/tofupie + category = CAT_PIE + +/datum/crafting_recipe/food/xenopie + name = "Xeno pie" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/pie/plain = 1, + /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet/xeno = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/pie/xemeatpie + category = CAT_PIE + +/datum/crafting_recipe/food/cherrypie + name = "Cherry pie" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/pie/plain = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/cherries = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/pie/cherrypie + category = CAT_PIE + +/datum/crafting_recipe/food/berryclafoutis + name = "Berry clafoutis" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/pie/plain = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/berries = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/pie/berryclafoutis + category = CAT_PIE + +/datum/crafting_recipe/food/bearypie + name = "Beary Pie" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/pie/plain = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/berries = 1, + /obj/item/weapon/reagent_containers/food/snacks/meat/steak/bear = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/pie/bearypie + category = CAT_PIE + +/datum/crafting_recipe/food/amanitapie + name = "Amanita pie" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/pie/plain = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/amanita = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/pie/amanita_pie + category = CAT_PIE + +/datum/crafting_recipe/food/plumppie + name = "Plump pie" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/pie/plain = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/plumphelmet = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/pie/plump_pie + category = CAT_PIE + +/datum/crafting_recipe/food/applepie + name = "Apple pie" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/pie/plain = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/apple = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/pie/applepie + category = CAT_PIE + +/datum/crafting_recipe/food/pumpkinpie + name = "Pumpkin pie" + reqs = list( + /datum/reagent/consumable/milk = 5, + /datum/reagent/consumable/sugar = 5, + /obj/item/weapon/reagent_containers/food/snacks/pie/plain = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/pumpkin = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/pie/pumpkinpie + category = CAT_PIE + +/datum/crafting_recipe/food/goldenappletart + name = "Golden apple tart" + reqs = list( + /datum/reagent/consumable/milk = 5, + /datum/reagent/consumable/sugar = 5, + /obj/item/weapon/reagent_containers/food/snacks/pie/plain = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/apple/gold = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/pie/appletart + category = CAT_PIE + +/datum/crafting_recipe/food/grapetart + name = "Grape tart" + reqs = list( + /datum/reagent/consumable/milk = 5, + /datum/reagent/consumable/sugar = 5, + /obj/item/weapon/reagent_containers/food/snacks/pie/plain = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/grapes = 3 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/pie/grapetart + category = CAT_PIE + +/datum/crafting_recipe/food/blumpkinpie + name = "Blumpkin pie" + reqs = list( + /datum/reagent/consumable/milk = 5, + /datum/reagent/consumable/sugar = 5, + /obj/item/weapon/reagent_containers/food/snacks/pie/plain = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/blumpkin = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/pie/blumpkinpie + category = CAT_PIE + +/datum/crafting_recipe/food/dulcedebatata + name = "Dulce de batata" + reqs = list( + /datum/reagent/consumable/vanilla = 5, + /datum/reagent/water = 5, + /obj/item/weapon/reagent_containers/food/snacks/grown/potato/sweet = 2 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/pie/dulcedebatata + category = CAT_PIE + +/datum/crafting_recipe/food/frostypie + name = "Frosty pie" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/pie/plain = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/bluecherries = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/pie/frostypie + category = CAT_PIE diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pizza.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pizza.dm new file mode 100644 index 0000000..8bb73ad --- /dev/null +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pizza.dm @@ -0,0 +1,79 @@ + +// see code/module/crafting/table.dm + +////////////////////////////////////////////////PIZZA!!!//////////////////////////////////////////////// + +/datum/crafting_recipe/food/margheritapizza + name = "Margherita pizza" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/pizzabread = 1, + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge = 4, + /obj/item/weapon/reagent_containers/food/snacks/grown/tomato = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/pizza/margherita + category = CAT_PIZZA + +/datum/crafting_recipe/food/meatpizza + name = "Meat pizza" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/pizzabread = 1, + /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet = 4, + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/tomato = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/pizza/meat + category = CAT_PIZZA + +/datum/crafting_recipe/food/mushroompizza + name = "Mushroom pizza" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/pizzabread = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom = 5 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/pizza/mushroom + category = CAT_PIZZA + +/datum/crafting_recipe/food/vegetablepizza + name = "Vegetable pizza" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/pizzabread = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/eggplant = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/carrot = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/corn = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/tomato = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/pizza/vegetable + category = CAT_PIZZA + +/datum/crafting_recipe/food/donpocketpizza + name = "Donkpocket pizza" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/pizzabread = 1, + /obj/item/weapon/reagent_containers/food/snacks/donkpocket/warm = 3, + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/tomato = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/pizza/donkpocket + category = CAT_PIZZA + +/datum/crafting_recipe/food/dankpizza + name = "Dank pizza" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/pizzabread = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/vulgaris = 3, + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/tomato = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/pizza/dank + category = CAT_PIZZA + +/datum/crafting_recipe/food/sassysagepizza + name = "Sassysage pizza" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/pizzabread = 1, + /obj/item/weapon/reagent_containers/food/snacks/faggot = 3, + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/tomato = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/pizza/sassysage + category = CAT_PIZZA diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm new file mode 100644 index 0000000..d60fc34 --- /dev/null +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm @@ -0,0 +1,126 @@ + +// see code/module/crafting/table.dm + +////////////////////////////////////////////////SALADS//////////////////////////////////////////////// + +/datum/crafting_recipe/food/herbsalad + name = "Herb salad" + reqs = list( + /obj/item/weapon/reagent_containers/glass/bowl = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/vulgaris = 3, + /obj/item/weapon/reagent_containers/food/snacks/grown/apple = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/salad/herbsalad + category = CAT_SALAD + +/datum/crafting_recipe/food/aesirsalad + name = "Aesir salad" + reqs = list( + /obj/item/weapon/reagent_containers/glass/bowl = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/deus = 3, + /obj/item/weapon/reagent_containers/food/snacks/grown/apple/gold = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/salad/aesirsalad + category = CAT_SALAD + +/datum/crafting_recipe/food/validsalad + name = "Valid salad" + reqs = list( + /obj/item/weapon/reagent_containers/glass/bowl = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/vulgaris = 3, + /obj/item/weapon/reagent_containers/food/snacks/grown/potato = 1, + /obj/item/weapon/reagent_containers/food/snacks/faggot = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/salad/validsalad + category = CAT_SALAD + +/datum/crafting_recipe/food/monkeysdelight + name = "Monkeys delight" + reqs = list( + /datum/reagent/consumable/flour = 5, + /datum/reagent/consumable/sodiumchloride = 1, + /datum/reagent/consumable/blackpepper = 1, + /obj/item/weapon/reagent_containers/glass/bowl = 1, + /obj/item/weapon/reagent_containers/food/snacks/monkeycube = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/banana = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/soup/monkeysdelight + category = CAT_SALAD + +/datum/crafting_recipe/food/oatmeal + name = "Oatmeal" + reqs = list( + /datum/reagent/consumable/milk = 10, + /obj/item/weapon/reagent_containers/glass/bowl = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/oat = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/salad/oatmeal + category = CAT_SALAD + +/datum/crafting_recipe/food/fruitsalad + name = "Fruit salad" + reqs = list( + /obj/item/weapon/reagent_containers/glass/bowl = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/citrus/orange = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/apple = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/grapes = 1, + /obj/item/weapon/reagent_containers/food/snacks/watermelonslice = 2 + + ) + result = /obj/item/weapon/reagent_containers/food/snacks/salad/fruit + category = CAT_SALAD + +/datum/crafting_recipe/food/junglesalad + name = "Jungle salad" + reqs = list( + /obj/item/weapon/reagent_containers/glass/bowl = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/apple = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/grapes = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/banana = 2, + /obj/item/weapon/reagent_containers/food/snacks/watermelonslice = 2 + + ) + result = /obj/item/weapon/reagent_containers/food/snacks/salad/jungle + category = CAT_SALAD + +/datum/crafting_recipe/food/citrusdelight + name = "Citrus delight" + reqs = list( + /obj/item/weapon/reagent_containers/glass/bowl = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/citrus/lime = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/citrus/lemon = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/citrus/orange = 1 + + ) + result = /obj/item/weapon/reagent_containers/food/snacks/salad/citrusdelight + category = CAT_SALAD + +/datum/crafting_recipe/food/ricepork + name = "Rice and pork" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/salad/boiledrice = 1, + /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet = 2 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/salad/ricepork + category = CAT_SALAD + +/datum/crafting_recipe/food/eggbowl + name = "Egg bowl" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/salad/boiledrice = 1, + /obj/item/weapon/reagent_containers/food/snacks/boiledegg = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/carrot = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/corn = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/salad/eggbowl + category = CAT_SALAD + +/datum/crafting_recipe/food/ricepudding + name = "Rice pudding" + reqs = list( + /datum/reagent/consumable/milk = 5, + /datum/reagent/consumable/sugar = 5, + /obj/item/weapon/reagent_containers/food/snacks/salad/boiledrice = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/salad/ricepudding + category = CAT_SALAD diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.dm new file mode 100644 index 0000000..3880dbd --- /dev/null +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.dm @@ -0,0 +1,66 @@ + +// see code/datums/recipe.dm + + +// see code/module/crafting/table.dm + +////////////////////////////////////////////////SANDWICHES//////////////////////////////////////////////// + +/datum/crafting_recipe/food/sandwich + name = "Sandwich" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/breadslice/plain = 2, + /obj/item/weapon/reagent_containers/food/snacks/meat/steak = 1, + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/sandwich + category = CAT_SANDWICH + +/datum/crafting_recipe/food/grilledcheesesandwich + name = "Grilled cheese sandwich" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/breadslice/plain = 2, + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge = 2 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/grilledcheese + category = CAT_SANDWICH + +/datum/crafting_recipe/food/slimesandwich + name = "Jelly sandwich" + reqs = list( + /datum/reagent/toxin/slimejelly = 5, + /obj/item/weapon/reagent_containers/food/snacks/breadslice/plain = 2, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/jellysandwich/slime + category = CAT_SANDWICH + +/datum/crafting_recipe/food/cherrysandwich + name = "Jelly sandwich" + reqs = list( + /datum/reagent/consumable/cherryjelly = 5, + /obj/item/weapon/reagent_containers/food/snacks/breadslice/plain = 2, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/jellysandwich/cherry + category = CAT_SANDWICH + +/datum/crafting_recipe/food/icecreamsandwich + name = "Icecream sandwich" + reqs = list( + /datum/reagent/consumable/cream = 5, + /datum/reagent/consumable/ice = 5, + /obj/item/weapon/reagent_containers/food/snacks/icecream = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/icecreamsandwich + category = CAT_SANDWICH + +/datum/crafting_recipe/food/notasandwich + name = "Not a sandwich" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/breadslice/plain = 2, + /obj/item/clothing/mask/fakemoustache = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/notasandwich + category = CAT_SANDWICH + + + diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm new file mode 100644 index 0000000..050beb8 --- /dev/null +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm @@ -0,0 +1,226 @@ + +// see code/module/crafting/table.dm + +////////////////////////////////////////////////SOUP//////////////////////////////////////////////// + +/datum/crafting_recipe/food/meatballsoup + name = "Meatball soup" + reqs = list( + /datum/reagent/water = 10, + /obj/item/weapon/reagent_containers/glass/bowl = 1, + /obj/item/weapon/reagent_containers/food/snacks/faggot = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/carrot = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/potato = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/soup/meatball + category = CAT_SOUP + +/datum/crafting_recipe/food/vegetablesoup + name = "Vegetable soup" + reqs = list( + /datum/reagent/water = 10, + /obj/item/weapon/reagent_containers/glass/bowl = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/carrot = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/corn = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/eggplant = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/potato = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/soup/vegetable + category = CAT_SOUP + +/datum/crafting_recipe/food/nettlesoup + name = "Nettle soup" + reqs = list( + /datum/reagent/water = 10, + /obj/item/weapon/reagent_containers/glass/bowl = 1, + /obj/item/weapon/grown/nettle = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/potato = 1, + /obj/item/weapon/reagent_containers/food/snacks/boiledegg = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/soup/nettle + category = CAT_SOUP + +/datum/crafting_recipe/food/wingfangchu + name = "Wingfangchu" + reqs = list( + /obj/item/weapon/reagent_containers/glass/bowl = 1, + /datum/reagent/consumable/soysauce = 5, + /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet/xeno = 2 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/soup/wingfangchu + category = CAT_SOUP + +/datum/crafting_recipe/food/wishsoup + name = "Wish soup" + reqs = list( + /datum/reagent/water = 20, + /obj/item/weapon/reagent_containers/glass/bowl = 1 + ) + result= /obj/item/weapon/reagent_containers/food/snacks/soup/wish + category = CAT_SOUP + +/datum/crafting_recipe/food/hotchili + name = "Hot chili" + reqs = list( + /obj/item/weapon/reagent_containers/glass/bowl = 1, + /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet = 2, + /obj/item/weapon/reagent_containers/food/snacks/grown/chili = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/tomato = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/soup/hotchili + category = CAT_SOUP + +/datum/crafting_recipe/food/coldchili + name = "Cold chili" + reqs = list( + /obj/item/weapon/reagent_containers/glass/bowl = 1, + /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet = 2, + /obj/item/weapon/reagent_containers/food/snacks/grown/icepepper = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/tomato = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/soup/coldchili + category = CAT_SOUP + +/datum/crafting_recipe/food/tomatosoup + name = "Tomato soup" + reqs = list( + /datum/reagent/water = 10, + /obj/item/weapon/reagent_containers/glass/bowl = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/tomato = 2 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/soup/tomato + category = CAT_SOUP + +/datum/crafting_recipe/food/milosoup + name = "Milo soup" + reqs = list( + /datum/reagent/water = 10, + /obj/item/weapon/reagent_containers/glass/bowl = 1, + /obj/item/weapon/reagent_containers/food/snacks/soydope = 2, + /obj/item/weapon/reagent_containers/food/snacks/tofu = 2 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/soup/milo + category = CAT_SOUP + +/datum/crafting_recipe/food/bloodsoup + name = "Blood soup" + reqs = list( + /datum/reagent/blood = 10, + /obj/item/weapon/reagent_containers/glass/bowl = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/tomato/blood = 2 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/soup/blood + category = CAT_SOUP + +/datum/crafting_recipe/food/slimesoup + name = "Slime soup" + reqs = list( + /datum/reagent/water = 10, + /datum/reagent/toxin/slimejelly = 5, + /obj/item/weapon/reagent_containers/glass/bowl = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/soup/slime + category = CAT_SOUP + +/datum/crafting_recipe/food/clownstears + name = "Clowns tears" + reqs = list( + /datum/reagent/water = 10, + /obj/item/weapon/reagent_containers/glass/bowl = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/banana = 1, + /obj/item/weapon/ore/bananium = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/soup/clownstears + category = CAT_SOUP + +/datum/crafting_recipe/food/mysterysoup + name = "Mystery soup" + reqs = list( + /datum/reagent/water = 10, + /obj/item/weapon/reagent_containers/glass/bowl = 1, + /obj/item/weapon/reagent_containers/food/snacks/badrecipe = 1, + /obj/item/weapon/reagent_containers/food/snacks/tofu = 1, + /obj/item/weapon/reagent_containers/food/snacks/boiledegg = 1, + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge = 1, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/soup/mystery + category = CAT_SOUP + +/datum/crafting_recipe/food/mushroomsoup + name = "Mushroom soup" + reqs = list( + /datum/reagent/consumable/milk = 5, + /datum/reagent/water = 5, + /obj/item/weapon/reagent_containers/glass/bowl = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/chanterelle = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/soup/mushroom + category = CAT_SOUP + +/datum/crafting_recipe/food/beetsoup + name = "Beet soup" + reqs = list( + /datum/reagent/water = 10, + /obj/item/weapon/reagent_containers/glass/bowl = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/whitebeet = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/cabbage = 1, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/soup/beet + category = CAT_SOUP + +/datum/crafting_recipe/food/stew + name = "Stew" + reqs = list( + /datum/reagent/water = 10, + /obj/item/weapon/reagent_containers/glass/bowl = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/tomato = 1, + /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet = 3, + /obj/item/weapon/reagent_containers/food/snacks/grown/potato = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/carrot = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/eggplant = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/soup/stew + category = CAT_SOUP + +/datum/crafting_recipe/food/spacylibertyduff + name = "Spacy liberty duff" + reqs = list( + /datum/reagent/consumable/ethanol/vodka = 5, + /obj/item/weapon/reagent_containers/glass/bowl = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/libertycap = 3 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/soup/spacylibertyduff + category = CAT_SOUP + +/datum/crafting_recipe/food/amanitajelly + name = "Amanita jelly" + reqs = list( + /datum/reagent/consumable/ethanol/vodka = 5, + /obj/item/weapon/reagent_containers/glass/bowl = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/amanita = 3 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/soup/amanitajelly + category = CAT_SOUP + +/datum/crafting_recipe/food/sweetpotatosoup + name = "Sweet potato soup" + reqs = list( + /datum/reagent/water = 10, + /datum/reagent/consumable/sugar = 5, + /obj/item/weapon/reagent_containers/glass/bowl = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/potato/sweet = 2 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/soup/sweetpotato + category = CAT_SOUP + +/datum/crafting_recipe/food/redbeetsoup + name = "Red beet soup" + reqs = list( + /datum/reagent/water = 10, + /obj/item/weapon/reagent_containers/glass/bowl = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/redbeet = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/cabbage = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/soup/beet/red + category = CAT_SOUP diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_spaghetti.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_spaghetti.dm new file mode 100644 index 0000000..85d2ee6 --- /dev/null +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_spaghetti.dm @@ -0,0 +1,61 @@ + +// see code/module/crafting/table.dm + +////////////////////////////////////////////////SPAGHETTI//////////////////////////////////////////////// + +/datum/crafting_recipe/food/tomatopasta + name = "Tomato pasta" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/boiledspaghetti = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/tomato = 2 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/pastatomato + category = CAT_SPAGHETTI + +/datum/crafting_recipe/food/copypasta + name = "Copypasta" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/pastatomato = 2 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/copypasta + category = CAT_SPAGHETTI + +/datum/crafting_recipe/food/spaghettimeatball + name = "Spaghetti meatball" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/boiledspaghetti = 1, + /obj/item/weapon/reagent_containers/food/snacks/faggot = 2 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/meatballspaghetti + category = CAT_SPAGHETTI + +/datum/crafting_recipe/food/spesslaw + name = "Spesslaw" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/boiledspaghetti = 1, + /obj/item/weapon/reagent_containers/food/snacks/faggot = 4 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/spesslaw + category = CAT_SPAGHETTI + +/datum/crafting_recipe/food/beefnoodle + name = "Beef noodle" + reqs = list( + /obj/item/weapon/reagent_containers/glass/bowl = 1, + /obj/item/weapon/reagent_containers/food/snacks/boiledspaghetti = 1, + /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet = 2, + /obj/item/weapon/reagent_containers/food/snacks/grown/cabbage = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/beefnoodle + category = CAT_SPAGHETTI + +/datum/crafting_recipe/food/chowmein + name = "Chowmein" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/boiledspaghetti = 1, + /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet = 1, + /obj/item/weapon/reagent_containers/food/snacks/grown/cabbage = 2, + /obj/item/weapon/reagent_containers/food/snacks/grown/carrot = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/chowmein + category = CAT_SPAGHETTI diff --git a/code/modules/games/cards.dm b/code/modules/games/cards.dm new file mode 100644 index 0000000..1606889 --- /dev/null +++ b/code/modules/games/cards.dm @@ -0,0 +1,277 @@ +/datum/playingcard + var/name = "playing card" + var/card_icon = "card_back" + var/suit + var/number + +/* Deck */ + +/obj/item/weapon/deck + name = "deck of cards" + desc = "A simple deck of playing cards." + icon = 'icons/obj/playing_cards.dmi' + icon_state = "deck" + w_class = 2 + flags = NOBLUDGEON + + var/list/cards = list() + +/obj/item/weapon/deck/New() + . = ..() + + var/cardcolor + var/datum/playingcard/card + + for (var/suit in list("spades", "clubs", "diamonds", "hearts")) + if (suit == "spades" || suit == "clubs") + cardcolor = "black_" + else + cardcolor = "red_" + + for (var/number in list("ace", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten")) + card = new() + card.name = "[number] of [suit]" + card.card_icon = "[cardcolor]num" + card.suit = suit + card.number = number + + src.cards.Add(card) + + for (var/number in list("jack", "queen", "king")) + card = new() + card.name = "[number] of [suit]" + card.card_icon = "[cardcolor]col" + card.suit = suit + card.number = number + + src.cards.Add(card) + + for (var/i = 0, i < 2, i++) + card = new() + card.name = "joker" + card.card_icon = "joker" + card.suit = "joker" + card.number = "" + + src.cards.Add(card) + +/obj/item/weapon/deck/attackby(obj/O, mob/user) + if (istype(O,/obj/item/weapon/hand)) + var/obj/item/weapon/hand/H = O + + for (var/datum/playingcard/P in H.cards) src.cards.Add(P) + + qdel (O) + + user.show_message("You place your cards on the bottom of the deck.") + else return ..() + +/obj/item/weapon/deck/attack_self(mob/user) + var/list/newcards = list() + var/datum/playingcard/card + + while (cards.len) + card = pick(cards) + newcards.Add(card) + src.cards.Remove(card) + + src.cards = newcards + + user.visible_message("\The [user] shuffles [src].") + +/obj/item/weapon/deck/afterattack(atom/A as mob|obj|turf|area, mob/living/user as mob|obj, flag, params) + if(flag) + return //It's adjacent, is the user, or is on the user's person + + if(isliving(A)) + src.dealTo(A, user) + else + return ..() + +/obj/item/weapon/deck/attack(mob/living/M, mob/living/user, def_zone) + if (istype(M)) + src.dealTo(M, user) + else + return ..() + +/obj/item/weapon/deck/proc/dealTo(mob/living/target, mob/living/source) + if (!cards.len) + source.show_message("There are no cards in the deck.") + return + + var/datum/playingcard/card = src.cards[1] + + src.cards.Remove(card) + + var/obj/item/weapon/hand/H = new(get_turf(src)) + + H.concealed = 1 + H.update_conceal() + + H.cards.Add(card) + H.update_icon() + + source.visible_message("\The [source] deals a card to \the [target].") + H.throw_at(get_step(target, target.dir), 10, 1, source) + +/* Hand */ + +/obj/item/weapon/hand + name = "hand of cards" + desc = "Some playing cards." + icon = 'icons/obj/playing_cards.dmi' + icon_state = "empty" + w_class = 1 + + var/concealed = 0 + var/blank = 0 + var/list/cards = list() + var/datum/html_interface/hi + resistance_flags = FLAMMABLE + +/obj/item/weapon/hand/New(loc) + . = ..() + + src.hi = new/datum/html_interface/cards(src, "Your hand", 540, 302) + src.update_conceal() + +/obj/item/weapon/hand/Destroy() + if (src.hi) + qdel(src.hi) + + return ..() + +/obj/item/weapon/hand/attackby(obj/O, mob/user) + if(cards.len == 1 && istype(O, /obj/item/weapon/pen)) + var/datum/playingcard/P = cards[1] + if(!blank) + user << "You cannot write on that card." + return + var/cardtext = sanitize(input(user, "What do you wish to write on the card?", "Card Writing") as text|null, 50) + if(!cardtext) + return + P.name = cardtext + blank = 0 + else if(istype(O,/obj/item/weapon/hand)) + var/obj/item/weapon/hand/H = O + + for(var/datum/playingcard/P in src.cards) H.cards.Add(P) + + H.update_icon() + + qdel(src) + else + return ..() + +/obj/item/weapon/hand/verb/discard(datum/playingcard/card in cards) + set category = "Object" + set name = "Discard" + set desc = "Place a card from your hand in front of you." + + if (!card) + return + + var/obj/item/weapon/hand/H = new(src.loc) + + H.concealed = 0 + H.update_conceal() + + H.cards.Add(card) + src.cards.Remove(card) + + H.update_icon() + + ASSERT(H) + + usr.visible_message("\The [usr] plays \the [card.name].") + H.loc = get_step(usr,usr.dir) + + src.update_icon() + +/obj/item/weapon/hand/verb/toggle_conceal() + set category = "Object" + set name = "Toggle conceal" + set desc = "Toggle concealment of your hand" + + src.concealed = !src.concealed + + src.update_conceal() + + usr.visible_message("\The [usr] [concealed ? "conceals" : "reveals"] their hand.") + + src.update_icon() + +/obj/item/weapon/hand/attack_self(mob/user) + src.hi.show(user) + +/obj/item/weapon/hand/examine() + . = ..() + + if((!concealed || src.loc == usr) && cards.len) + usr.show_message("It contains: ", 1) + + for (var/datum/playingcard/card in cards) + usr.show_message("The [card.name].", 1) + +/obj/item/weapon/hand/proc/update_conceal() + if (src.concealed) + src.hi.updateContent("headbar", "You are currently concealing your hand. Reveal your hand.") + else + src.hi.updateContent("headbar", "You are currently revealing your hand. Conceal your hand.") + +/obj/item/weapon/hand/update_icon() + if (!cards.len) + qdel (src) + else + if(cards.len > 1) + name = "hand of cards" + desc = "Some playing cards." + else + name = "a playing card" + desc = "A playing card." + + overlays.len = 0 + + if (cards.len == 1) + var/datum/playingcard/P = cards[1] + var/image/I = new(src.icon, (concealed ? "card_back" : "[P.card_icon]") ) + + I.pixel_x = I.pixel_x + (-5 + rand(10)) + I.pixel_y = I.pixel_y + (-5 + rand(10)) + + overlays.Add(I) + else + var/origin = -12 + var/offset = round(32 / cards.len) + + var/i = 0 + var/image/I + + for(var/datum/playingcard/P in cards) + I = new(src.icon, (concealed ? "card_back" : "[P.card_icon]") ) + I.pixel_x = origin + (offset * i) + + overlays.Add(I) + + i = i + 1 + + var/html = "" + + for(var/datum/playingcard/card in cards) + html = html + "" + + src.hi.updateContent("hand", html) + +/obj/item/weapon/hand/Topic(href, href_list[], datum/html_interface_client/hclient) + if (istype(hclient)) + switch (href_list["action"]) + if ("play_card") + var/datum/playingcard/card = locate(href_list["card"]) in cards + if (card && istype(card)) + src.discard(card) + if ("toggle_conceal") + src.toggle_conceal() + +// Hook for html_interface module to prevent updates to clients who don't have this in their inventory. +/obj/item/weapon/hand/proc/hiIsValidClient(datum/html_interface_client/hclient, datum/html_interface/hi) + return (hclient.client.mob && hclient.client.mob.stat == 0 && (src in hclient.client.mob.contents)) diff --git a/code/modules/games/cas.dm b/code/modules/games/cas.dm new file mode 100644 index 0000000..ebf6a8b --- /dev/null +++ b/code/modules/games/cas.dm @@ -0,0 +1,149 @@ +// CARDS AGAINST SPESS +// This is a parody of Cards Against Humanity (https://en.wikipedia.org/wiki/Cards_Against_Humanity) +// which is licensed under CC BY-NC-SA 2.0, the full text of which can be found at the following URL: +// https://creativecommons.org/licenses/by-nc-sa/2.0/legalcode +// Original code by Zuhayr, Polaris Station, ported with modifications + +var/global/list/cards_against_space + +/obj/item/toy/cards/deck/cas + name = "\improper CAS deck (white)" + desc = "A deck for the game Cards Against Spess, still popular after all these centuries. Warning: may include traces of broken fourth wall. This is the white deck." + icon = 'icons/obj/toy.dmi' + icon_state = "deck_caswhite_full" + deckstyle = "caswhite" + var/card_face = "cas_white" + var/blanks = 25 + var/decksize = 150 + var/card_text_file = "strings/cas_white.txt" + var/list/allcards = list() + +/obj/item/toy/cards/deck/cas/black + name = "\improper CAS deck (black)" + desc = "A deck for the game Cards Against Spess, still popular after all these centuries. Warning: may include traces of broken fourth wall. This is the black deck." + icon_state = "deck_casblack_full" + deckstyle = "casblack" + card_face = "cas_black" + blanks = 0 + decksize = 50 + card_text_file = "strings/cas_black.txt" + +/obj/item/toy/cards/deck/cas/New() + if(!cards_against_space) //saves loading from the files every single time a new deck is created, but still lets each deck have a random assortment, it's purely an optimisation + cards_against_space = list("cas_white" = file2list("strings/cas_white.txt"),"cas_black" = file2list("strings/cas_black.txt")) + allcards = cards_against_space[card_face] + var/list/possiblecards = allcards.Copy() + if(possiblecards.len < decksize) // sanity check + decksize = (possiblecards.len - 1) + var/list/randomcards = list() + while (randomcards.len < decksize) + randomcards += pick_n_take(possiblecards) + for(var/i=1 to randomcards.len) + var/cardtext = randomcards[i] + var/datum/playingcard/P + P = new() + P.name = "[cardtext]" + P.card_icon = "[src.card_face]" + cards += P + if(!blanks) + return + for(var/x=1 to blanks) + var/datum/playingcard/P + P = new() + P.name = "Blank Card" + P.card_icon = "cas_white" + cards += P + shuffle(cards) // distribute blank cards throughout deck + +/obj/item/toy/cards/deck/cas/attack_hand(mob/user) + if(user.lying) + return + if(cards.len == 0) + user << "There are no more cards to draw!" + return + var/obj/item/toy/cards/singlecard/cas/H = new/obj/item/toy/cards/singlecard/cas(user.loc) + var/datum/playingcard/choice = cards[1] + if (choice.name == "Blank Card") + H.blank = 1 + H.name = choice.name + H.buffertext = choice.name + H.icon_state = choice.card_icon + H.card_face = choice.card_icon + H.parentdeck = src + src.cards -= choice + H.pickup(user) + user.put_in_hands(H) + user.visible_message("[user] draws a card from the deck.", "You draw a card from the deck.") + update_icon() + +/obj/item/toy/cards/deck/cas/attackby(obj/item/I, mob/living/user, params) + if(istype(I, /obj/item/toy/cards/singlecard/cas)) + var/obj/item/toy/cards/singlecard/cas/SC = I + if(!user.unEquip(SC)) + user << "The card is stuck to your hand, you can't add it to the deck!" + return + var/datum/playingcard/RC // replace null datum for the re-added card + RC = new() + RC.name = "[SC.name]" + RC.card_icon = SC.card_face + cards += RC + user.visible_message("[user] adds a card to the bottom of the deck.","You add the card to the bottom of the deck.") + qdel(SC) + update_icon() + +/obj/item/toy/cards/deck/cas/update_icon() + if(cards.len < 26) + icon_state = "deck_[deckstyle]_low" + +/obj/item/toy/cards/singlecard/cas + name = "CAS card" + desc = "A CAS card." + icon_state = "cas_white" + flipped = 0 + var/card_face = "cas_white" + var/blank = 0 + var/buffertext = "A funny bit of text." + +/obj/item/toy/cards/singlecard/cas/examine(mob/user) + if (flipped) + user << "The card is face down." + else if (blank) + user << "The card is blank. Write on it with a pen." + else + user << "The card reads: [name]" + +/obj/item/toy/cards/singlecard/cas/Flip() + set name = "Flip Card" + set category = "Object" + set src in range(1) + if(!usr.canUseTopic(src,1)) + return + if(!flipped) + name = "CAS card" + else if(flipped) + name = buffertext + flipped = !flipped + update_icon() + +obj/item/toy/cards/singlecard/cas/AltClick(mob/living/user) + if(!user.canUseTopic(src,1)) + return + Flip() + +/obj/item/toy/cards/singlecard/cas/update_icon() + if(flipped) + icon_state = "[card_face]_flipped" + else + icon_state = "[card_face]" + +/obj/item/toy/cards/singlecard/cas/attackby(obj/item/I, mob/living/user, params) + if(istype(I, /obj/item/weapon/pen)) + if(!blank) + user << "You cannot write on that card." + return + var/cardtext = stripped_input(user, "What do you wish to write on the card?", "Card Writing", "", 50) + if(!cardtext) + return + name = cardtext + buffertext = cardtext + blank = 0 \ No newline at end of file diff --git a/code/modules/holiday/easter.dm b/code/modules/holiday/easter.dm new file mode 100644 index 0000000..8a373d7 --- /dev/null +++ b/code/modules/holiday/easter.dm @@ -0,0 +1,239 @@ +//Easter start +/datum/holiday/easter/greet() + return "Greetings! Have a Happy Easter and keep an eye out for Easter Bunnies!" + +/datum/round_event_control/easter + name = "Easter Eggselence" + holidayID = EASTER + typepath = /datum/round_event/easter + weight = -1 + max_occurrences = 1 + earliest_start = 0 + +/datum/round_event/easter/announce() + priority_announce(pick("Hip-hop into Easter!","Find some Bunny's stash!","Today is National 'Hunt a Wabbit' Day.","Be kind, give Chocolate Eggs!")) + + +/datum/round_event_control/rabbitrelease + name = "Release the Rabbits!" + holidayID = EASTER + typepath = /datum/round_event/rabbitrelease + weight = 5 + max_occurrences = 10 + +/datum/round_event/rabbitrelease/announce() + priority_announce("Unidentified furry objects detected coming aboard [station_name()]. Beware of Adorable-ness.", "Fluffy Alert", 'sound/AI/aliens.ogg') + + +/datum/round_event/rabbitrelease/start() + for(var/obj/effect/landmark/R in landmarks_list) + if(R.name != "blobspawn") + if(prob(35)) + if(isspaceturf(R.loc)) + new /mob/living/simple_animal/chicken/rabbit/space(R.loc) + else + new /mob/living/simple_animal/chicken/rabbit(R.loc) + +/mob/living/simple_animal/chicken/rabbit + name = "\improper rabbit" + desc = "The hippiest hop around." + icon = 'icons/mob/Easter.dmi' + icon_state = "rabbit_white" + icon_living = "rabbit_white" + icon_dead = "rabbit_white_dead" + speak = list("Hop into Easter!","Come get your eggs!","Prizes for everyone!") + speak_emote = list("sniffles","twitches") + emote_hear = list("hops.") + emote_see = list("hops around","bounces up and down") + butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat/slab = 1) + egg_type = /obj/item/weapon/reagent_containers/food/snacks/egg/loaded + food_type = /obj/item/weapon/reagent_containers/food/snacks/grown/carrot + eggsleft = 10 + eggsFertile = FALSE + icon_prefix = "rabbit" + feedMessages = list("It nibbles happily.","It noms happily.") + layMessage = list("hides an egg.","scampers around suspiciously.","begins making a huge racket.","begins shuffling.") + +/mob/living/simple_animal/chicken/rabbit/space + icon_prefix = "s_rabbit" + icon_state = "s_rabbit_white" + icon_living = "s_rabbit_white" + icon_dead = "s_rabbit_white_dead" + atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) + minbodytemp = 0 + maxbodytemp = 1500 + unsuitable_atmos_damage = 0 + +//Easter Baskets +/obj/item/weapon/storage/bag/easterbasket + name = "Easter Basket" + icon = 'icons/mob/Easter.dmi' + icon_state = "basket" + can_hold = list(/obj/item/weapon/reagent_containers/food/snacks/egg,/obj/item/weapon/reagent_containers/food/snacks/chocolateegg,/obj/item/weapon/reagent_containers/food/snacks/boiledegg) + +/obj/item/weapon/storage/bag/easterbasket/proc/countEggs() + cut_overlays() + add_overlay(image("icon" = icon, "icon_state" = "basket-grass", "layer" = -1)) + add_overlay(image("icon" = icon, "icon_state" = "basket-egg[contents.len <= 5 ? contents.len : 5]", "layer" = -1)) + +/obj/item/weapon/storage/bag/easterbasket/remove_from_storage(obj/item/W as obj, atom/new_location) + ..() + countEggs() + +/obj/item/weapon/storage/bag/easterbasket/handle_item_insertion(obj/item/I, prevent_warning = 0) + . = ..() + countEggs() + +//Bunny Suit +/obj/item/clothing/head/bunnyhead + name = "Easter Bunny Head" + icon_state = "bunnyhead" + item_state = "bunnyhead" + desc = "Considerably more cute than 'Frank'" + slowdown = -1 + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR + +/obj/item/clothing/suit/bunnysuit + name = "Easter Bunny Suit" + desc = "Hop Hop Hop!" + icon_state = "bunnysuit" + item_state = "bunnysuit" + slowdown = -1 + body_parts_covered = CHEST|GROIN|LEGS|ARMS + flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT + +//Egg prizes and egg spawns! +/obj/item/weapon/reagent_containers/food/snacks/egg + var/containsPrize = FALSE + +/obj/item/weapon/reagent_containers/food/snacks/egg/loaded + containsPrize = TRUE + +/obj/item/weapon/reagent_containers/food/snacks/egg/loaded/New() + ..() + var/eggcolor = pick("blue","green","mime","orange","purple","rainbow","red","yellow") + icon_state = "egg-[eggcolor]" + item_color = "[eggcolor]" + +/obj/item/weapon/reagent_containers/food/snacks/egg/proc/dispensePrize(turf/where) + var/won = pick(/obj/item/clothing/head/bunnyhead, + /obj/item/clothing/suit/bunnysuit, + /obj/item/weapon/reagent_containers/food/snacks/grown/carrot, + /obj/item/weapon/reagent_containers/food/snacks/chocolateegg, + /obj/item/toy/balloon, + /obj/item/toy/gun, + /obj/item/toy/sword, + /obj/item/toy/foamblade, + /obj/item/toy/prize/ripley, + /obj/item/toy/prize/honk, + /obj/item/toy/carpplushie, + /obj/item/toy/redbutton, + /obj/item/clothing/head/collectable/rabbitears) + new won(where) + new/obj/item/weapon/reagent_containers/food/snacks/chocolateegg(where) + +/obj/item/weapon/reagent_containers/food/snacks/egg/attack_self(mob/user) + ..() + if(containsPrize) + user << "You unwrap the [src] and find a prize inside!" + dispensePrize(get_turf(user)) + containsPrize = FALSE + qdel(src) + +/obj/effect/spawner/lootdrop/maintenance/New() + ..() + loot += list(/obj/item/weapon/reagent_containers/food/snacks/egg/loaded = 15, /obj/item/weapon/storage/bag/easterbasket = 15) + +//Easter Recipes + food +/obj/item/weapon/reagent_containers/food/snacks/hotcrossbun + bitesize = 2 + name = "hot-cross bun" + desc = "The Cross represents the Assistants that died for your sins." + icon_state = "hotcrossbun" + +/datum/crafting_recipe/food/food/hotcrossbun + name = "Hot-Cross Bun" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/store/bread/plain = 1, + /datum/reagent/consumable/sugar = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/hotcrossbun + category = CAT_MISCFOOD + + +/obj/item/weapon/reagent_containers/food/snacks/store/cake/brioche + name = "brioche cake" + desc = "A ring of sweet, glazed buns." + icon_state = "briochecake" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/cakeslice/brioche + slices_num = 6 + bonus_reagents = list("nutriment" = 10, "vitamin" = 2) + +/obj/item/weapon/reagent_containers/food/snacks/cakeslice/brioche + name = "brioche cake slice" + desc = "Delicious sweet-bread. Who needs anything else?" + icon_state = "briochecake_slice" + filling_color = "#FFD700" + +/datum/crafting_recipe/food/food/briochecake + name = "Brioche cake" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/store/cake/plain = 1, + /datum/reagent/consumable/sugar = 2 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/store/cake/brioche + category = CAT_MISCFOOD + +/obj/item/weapon/reagent_containers/food/snacks/scotchegg + name = "scotch egg" + desc = "A boiled egg wrapped in a delicious, seasoned meatball." + icon_state = "scotchegg" + bonus_reagents = list("nutriment" = 2, "vitamin" = 2) + bitesize = 3 + filling_color = "#FFFFF0" + list_reagents = list("nutriment" = 6) + +/datum/crafting_recipe/food/scotchegg + name = "Scotch egg" + reqs = list( + /datum/reagent/consumable/sodiumchloride = 1, + /datum/reagent/consumable/blackpepper = 1, + /obj/item/weapon/reagent_containers/food/snacks/boiledegg = 1, + /obj/item/weapon/reagent_containers/food/snacks/faggot = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/scotchegg + category = CAT_MISCFOOD + +/obj/item/weapon/reagent_containers/food/snacks/soup/mammi + name = "Mammi" + desc = "A bowl of mushy bread and milk. It reminds you, not too fondly, of a bowel movement." + icon_state = "mammi" + bonus_reagents = list("nutriment" = 3, "vitamin" = 1) + list_reagents = list("nutriment" = 8, "vitamin" = 1) + +/datum/crafting_recipe/food/mammi + name = "Mammi" + reqs = list( + /obj/item/weapon/reagent_containers/food/snacks/store/bread/plain = 1, + /obj/item/weapon/reagent_containers/food/snacks/chocolatebar = 1, + /datum/reagent/consumable/milk = 5 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/soup/mammi + category = CAT_MISCFOOD + +/obj/item/weapon/reagent_containers/food/snacks/chocolatebunny + name = "chocolate bunny" + desc = "Contains less than 10% real rabbit!" + icon_state = "chocolatebunny" + bonus_reagents = list("nutriment" = 1, "vitamin" = 1) + list_reagents = list("nutriment" = 4, "sugar" = 2, "cocoa" = 2) + filling_color = "#A0522D" + +/datum/crafting_recipe/food/chocolatebunny + name = "Chocolate bunny" + reqs = list( + /datum/reagent/consumable/sugar = 2, + /obj/item/weapon/reagent_containers/food/snacks/chocolatebar = 1 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/chocolatebunny + category = CAT_MISCFOOD diff --git a/code/modules/holiday/halloween.dm b/code/modules/holiday/halloween.dm new file mode 100644 index 0000000..2b80586 --- /dev/null +++ b/code/modules/holiday/halloween.dm @@ -0,0 +1,266 @@ +/////////////////////////////////////// +///////////HALLOWEEN CONTENT/////////// +/////////////////////////////////////// + + +//spooky recipes + +/datum/recipe/sugarcookie/spookyskull + reagents = list("flour" = 5, "sugar" = 5, "milk" = 5) + items = list( + /obj/item/weapon/reagent_containers/food/snacks/egg, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/sugarcookie/spookyskull + +/datum/recipe/sugarcookie/spookycoffin + reagents = list("flour" = 5, "sugar" = 5, "coffee" = 5) + items = list( + /obj/item/weapon/reagent_containers/food/snacks/egg, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/sugarcookie/spookycoffin + +////////////////////////////// +//Spookoween trapped closets// +////////////////////////////// + +#define SPOOKY_SKELETON 1 +#define ANGRY_FAITHLESS 2 +#define SCARY_BATS 3 +#define INSANE_CLOWN 4 +#define HOWLING_GHOST 5 + +//Spookoween variables +/obj/structure/closet + var/trapped = 0 + var/mob/trapped_mob + +/obj/structure/closet/initialize() + ..() + if(prob(30)) + set_spooky_trap() + +/obj/structure/closet/dump_contents() + ..() + trigger_spooky_trap() + +/obj/structure/closet/proc/set_spooky_trap() + if(prob(0.1)) + trapped = INSANE_CLOWN + return + if(prob(1)) + trapped = ANGRY_FAITHLESS + return + if(prob(15)) + trapped = SCARY_BATS + return + if(prob(20)) + trapped = HOWLING_GHOST + return + else + var/mob/living/carbon/human/H = new(loc) + H.makeSkeleton() + H.health = 1e5 + insert(H) + trapped_mob = H + trapped = SPOOKY_SKELETON + return + +/obj/structure/closet/proc/trigger_spooky_trap() + if(!trapped) + return + + else if(trapped == SPOOKY_SKELETON) + visible_message("BOO!") + playsound(loc, 'sound/spookoween/girlscream.ogg', 300, 1) + trapped = 0 + QDEL_IN(trapped_mob, 90) + + else if(trapped == HOWLING_GHOST) + visible_message("[pick("OooOOooooOOOoOoOOooooOOOOO", "BooOOooOooooOOOO", "BOO!", "WoOOoOoooOooo")]") + playsound(loc, 'sound/spookoween/ghosty_wind.ogg', 300, 1) + new /mob/living/simple_animal/shade/howling_ghost(loc) + trapped = 0 + + else if(trapped == SCARY_BATS) + visible_message("Protect your hair!") + playsound(loc, 'sound/spookoween/bats.ogg', 300, 1) + var/number = rand(1,3) + for(var/i=0,i < number,i++) + new /mob/living/simple_animal/hostile/retaliate/bat(loc) + trapped = 0 + + else if(trapped == ANGRY_FAITHLESS) + visible_message("The closet bursts open!") + visible_message("THIS BEING RADIATES PURE EVIL! YOU BETTER RUN!!!") + playsound(loc, 'sound/hallucinations/wail.ogg', 300, 1) + var/mob/living/simple_animal/hostile/faithless/F = new(loc) + trapped = 0 + QDEL_IN(F, 120) + + else if(trapped == INSANE_CLOWN) + visible_message("...") + playsound(loc, 'sound/spookoween/scary_clown_appear.ogg', 300, 1) + spawn_atom_to_turf(/mob/living/simple_animal/hostile/retaliate/clown/insane, loc, 1, FALSE) + trapped = 0 + +//don't spawn in crates +/obj/structure/closet/crate/trigger_spooky_trap() + return + +/obj/structure/closet/crate/set_spooky_trap() + return + + +//////////////////// +//Spookoween Ghost// +//////////////////// + +/mob/living/simple_animal/shade/howling_ghost + name = "ghost" + real_name = "ghost" + icon = 'icons/mob/mob.dmi' + maxHealth = 1e6 + health = 1e6 + speak_emote = list("howls") + emote_hear = list("wails","screeches") + density = 0 + anchored = 1 + incorporeal_move = 1 + layer = 4 + var/timer = 0 + +/mob/living/simple_animal/shade/howling_ghost/New() + ..() + icon_state = pick("ghost","ghostian","ghostian2","ghostking","ghost1","ghost2") + icon_living = icon_state + status_flags |= GODMODE + timer = rand(1,15) + +/mob/living/simple_animal/shade/howling_ghost/Life() + ..() + timer-- + if(prob(20)) + roam() + if(timer == 0) + spooky_ghosty() + timer = rand(1,15) + +/mob/living/simple_animal/shade/howling_ghost/proc/EtherealMove(direction) + loc = get_step(src, direction) + setDir(direction) + +/mob/living/simple_animal/shade/howling_ghost/proc/roam() + if(prob(80)) + var/direction = pick(NORTH,SOUTH,EAST,WEST,NORTHEAST,NORTHWEST,SOUTHEAST,SOUTHWEST) + EtherealMove(direction) + +/mob/living/simple_animal/shade/howling_ghost/proc/spooky_ghosty() + if(prob(20)) //haunt + playsound(loc, pick('sound/spookoween/ghosty_wind.ogg','sound/spookoween/ghost_whisper.ogg','sound/spookoween/chain_rattling.ogg'), 300, 1) + if(prob(10)) //flickers + var/obj/machinery/light/L = locate(/obj/machinery/light) in view(5, src) + if(L) + L.flicker() + if(prob(5)) //poltergeist + var/obj/item/I = locate(/obj/item) in view(3, src) + if(I) + var/direction = pick(NORTH,SOUTH,EAST,WEST,NORTHEAST,NORTHWEST,SOUTHEAST,SOUTHWEST) + step(I,direction) + return + +/mob/living/simple_animal/shade/howling_ghost/adjustHealth() + . = 0 + +/mob/living/simple_animal/shade/howling_ghost/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) + return 1 + + +/////////////////////////// +//Spookoween Insane Clown// +/////////////////////////// + +/mob/living/simple_animal/hostile/retaliate/clown/insane + name = "insane clown" + desc = "Some clowns do not manage to be accepted, and go insane. This is one of them." + icon_state = "scary_clown" + icon_living = "scary_clown" + icon_dead = "scary_clown" + icon_gib = "scary_clown" + speak = list("...", ". . .") + maxHealth = 1e6 + health = 1e6 + emote_see = list("silently stares") + unsuitable_atmos_damage = 0 + var/timer + +/mob/living/simple_animal/hostile/retaliate/clown/insane/New() + ..() + timer = rand(5,15) + status_flags = (status_flags | GODMODE) + return + +/mob/living/simple_animal/hostile/retaliate/clown/insane/Retaliate() + return + +/mob/living/simple_animal/hostile/retaliate/clown/insane/ex_act() + return + +/mob/living/simple_animal/hostile/retaliate/clown/insane/Life() + timer-- + if(target) + stalk() + return + +/mob/living/simple_animal/hostile/retaliate/clown/insane/proc/stalk() + var/mob/living/M = target + if(M.stat == DEAD) + playsound(M.loc, 'sound/spookoween/insane_low_laugh.ogg', 300, 1) + qdel(src) + if(timer == 0) + timer = rand(5,15) + playsound(M.loc, pick('sound/spookoween/scary_horn.ogg','sound/spookoween/scary_horn2.ogg', 'sound/spookoween/scary_horn3.ogg'), 300, 1) + spawn(12) + loc = M.loc + +/mob/living/simple_animal/hostile/retaliate/clown/insane/MoveToTarget() + stalk(target) + +/mob/living/simple_animal/hostile/retaliate/clown/insane/AttackingTarget() + return + +/mob/living/simple_animal/hostile/retaliate/clown/insane/adjustHealth() + . = 0 + if(prob(5)) + playsound(loc, 'sound/spookoween/insane_low_laugh.ogg', 300, 1) + +/mob/living/simple_animal/hostile/retaliate/clown/insane/attackby(obj/item/O, mob/user) + if(istype(O,/obj/item/weapon/nullrod)) + if(prob(5)) + visible_message("[src] finally found the peace it deserves. You hear honks echoing off into the distance.") + playsound(loc, 'sound/spookoween/insane_low_laugh.ogg', 300, 1) + qdel(src) + else + visible_message("[src] seems to be resisting the effect!") + else + ..() + +/mob/living/simple_animal/hostile/retaliate/clown/insane/handle_temperature_damage() + return + +///////////////////////// +// Spooky Uplink Items // +///////////////////////// + +/datum/uplink_item/dangerous/crossbow/candy + name = "Candy Corn Crossbow" + desc = "A standard miniature energy crossbow that uses a hard-light projector to transform bolts into candy corn. Happy Halloween!" + category = "Holiday" + item = /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow/halloween + surplus = 0 + +/datum/uplink_item/device_tools/emag/hack_o_lantern + name = "Hack-o'-Lantern" + desc = "An emag fitted to support the Halloween season. Candle not included." + category = "Holiday" + item = /obj/item/weapon/card/emag/halloween + surplus = 0 diff --git a/code/modules/holiday/holidays.dm b/code/modules/holiday/holidays.dm new file mode 100644 index 0000000..255069d --- /dev/null +++ b/code/modules/holiday/holidays.dm @@ -0,0 +1,403 @@ +/datum/holiday + var/name = "Bugsgiving" + //Right now, only holidays that take place on a certain day or within a time period are supported + //It would be nice to support things like "the second monday in march" or "the first sunday after the second sunday in june" + var/begin_day = 1 + var/begin_month = 0 + var/end_day = 0 // Default of 0 means the holiday lasts a single day + var/end_month = 0 + +// This proc gets run before the game starts when the holiday is activated. Do festive shit here. +/datum/holiday/proc/celebrate() + +// When the round starts, this proc is ran to get a text message to display to everyone to wish them a happy holiday +/datum/holiday/proc/greet() + return "Have a happy [name]!" + +// Returns special prefixes for the station name on certain days. You wind up with names like "Christmas Object Epsilon". See new_station_name() +/datum/holiday/proc/getStationPrefix() + //get the first word of the Holiday and use that + var/i = findtext(name," ",1,0) + return copytext(name,1,i) + +// Return 1 if this holidy should be celebrated today +/datum/holiday/proc/shouldCelebrate(dd, mm, yy) + if(!end_day) + end_day = begin_day + if(!end_month) + end_month = begin_month + + if(end_month > begin_month) //holiday spans multiple months in one year + if(mm == end_month) //in final month + if(dd <= end_day) + return 1 + + else if(mm == begin_month)//in first month + if(dd >= begin_day) + return 1 + + else if(mm in begin_month to end_month) //holiday spans 3+ months and we're in the middle, day doesn't matter at all + return 1 + + else if(end_month == begin_month) // starts and stops in same month, simplest case + if(mm == begin_month && (dd in begin_day to end_day)) + return 1 + + else // starts in one year, ends in the next + if(mm >= begin_month && dd >= begin_day) // Holiday ends next year + return 1 + if(mm <= end_month && dd <= end_day) // Holiday started last year + return 1 + + return 0 + +// The actual holidays + +/datum/holiday/new_year + name = NEW_YEAR + begin_day = 30 + begin_month = DECEMBER + end_day = 2 + end_month = JANUARY + +/datum/holiday/new_year/getStationPrefix() + return pick("Party","New","Hangover","Resolution") + +/datum/holiday/groundhog + name = "Groundhog Day" + begin_day = 2 + begin_month = FEBRUARY + +/datum/holiday/valentines + name = VALENTINES + begin_day = 13 + end_day = 15 + begin_month = FEBRUARY + +/datum/holiday/valentines/getStationPrefix() + return pick("Love","Amore","Single","Smootch","Hug") + +/datum/holiday/birthday + name = "Birthday of Space Station 13" + begin_day = 16 + begin_month = FEBRUARY + +/datum/holiday/birthday/greet() + var/game_age = text2num(time2text(world.timeofday, "YY")) - 3 + var/Fact + switch(game_age) + if(16) + Fact = " SS13 is now old enough to drive!" + if(18) + Fact = " SS13 is now legal!" + if(21) + Fact = " SS13 can now drink!" + if(26) + Fact = " SS13 can now rent a car!" + if(30) + Fact = " SS13 can now go home and be a family man!" + if(40) + Fact = " SS13 can now suffer a midlife crisis!" + if(50) + Fact = " Happy golden anniversary!" + if(65) + Fact = " SS13 can now start thinking about retirement!" + if(96) + Fact = " Please send a time machine back to pick me up, I need to update the time formatting for this feature!" //See you later suckers + if(!Fact) + Fact = " SS13 is now [game_age] years old!" + + return "Say 'Happy Birthday' to Space Station 13, first publicly playable on February 16th, 2003![Fact]" + +/datum/holiday/random_kindness + name = "Random Acts of Kindness Day" + begin_day = 17 + begin_month = FEBRUARY + +/datum/holiday/random_kindness/greet() + return "Go do some random acts of kindness for a stranger!" //haha yeah right + +/datum/holiday/leap + name = "Leap Day" + begin_day = 29 + begin_month = FEBRUARY + +/datum/holiday/pi + name = "Pi Day" + begin_day = 14 + begin_month = MARCH + +/datum/holiday/no_this_is_patrick + name = "St. Patrick's Day" + begin_day = 17 + begin_month = MARCH + +/datum/holiday/no_this_is_patrick/getStationPrefix() + return pick("Blarney","Green","Leprechaun","Booze") + +/datum/holiday/april_fools + name = APRIL_FOOLS + begin_day = 1 + end_day = 2 + begin_month = APRIL + +/datum/holiday/fourtwenty + name = "Four-Twenty" + begin_day = 20 + begin_month = APRIL + +/datum/holiday/fourtwenty/getStationPrefix() + return pick("Snoop","Blunt","Toke","Dank") + +/datum/holiday/earth + name = "Earth Day" + begin_day = 22 + begin_month = APRIL + +/datum/holiday/labor + name = "Labor Day" + begin_day = 1 + begin_month = MAY + +/datum/holiday/firefighter + name = "Firefighter's Day" + begin_day = 4 + begin_month = MAY + +/datum/holiday/firefighter/getStationPrefix() + return pick("Burning","Blazing","Plasma","Fire") + +/datum/holiday/summersolstice + name = "Summer Solstice" + begin_day = 21 + begin_month = JUNE + +/datum/holiday/doctor + name = "Doctor's Day" + begin_day = 1 + begin_month = JULY + +/datum/holiday/UFO + name = "UFO Day" + begin_day = 2 + begin_month = JULY + +/datum/holiday/UFO/getStationPrefix() //Is such a thing even possible? + return pick("Ayy","Truth","Tsoukalos","Mulder") //Yes it is! + +/datum/holiday/writer + name = "Writer's Day" + begin_day = 8 + begin_month = JULY + +/datum/holiday/friendship + name = "Friendship Day" + begin_day = 30 + begin_month = JULY + +/datum/holiday/friendship/greet() + return "Have a magical [name]!" + +/datum/holiday/beer + name = "Beer Day" + begin_day = 5 + begin_month = AUGUST + +/datum/holiday/pirate + name = "Talk-Like-a-Pirate Day" + begin_day = 19 + begin_month = SEPTEMBER + +/datum/holiday/pirate/greet() + return "Ye be talkin' like a pirate today or else ye'r walkin' tha plank, matey!" + +/datum/holiday/pirate/getStationPrefix() + return pick("Yarr","Scurvy","Yo-ho-ho") + +/datum/holiday/programmers + name = "Programmers' Day" + +/datum/holiday/programmers/shouldCelebrate(dd, mm, yy) //Programmer's day falls on the 2^8th day of the year + if(mm == 9) + if(yy/4 == round(yy/4)) //Note: Won't work right on September 12th, 2200 (at least it's a Friday!) + if(dd == 12) + return 1 + else + if(dd == 13) + return 1 + return 0 + +/datum/holiday/programmers/getStationPrefix() + return pick("span>","DEBUG: ","null","/list","EVENT PREFIX NOT FOUND") //Portability + +/datum/holiday/questions + name = "Stupid-Questions Day" + begin_day = 28 + begin_month = SEPTEMBER + +/datum/holiday/questions/greet() + return "Are you having a happy [name]?" + +/datum/holiday/animal + name = "Animal's Day" + begin_day = 4 + begin_month = OCTOBER + +/datum/holiday/animal/getStationPrefix() + return pick("Parrot","Corgi","Cat","Pug","Goat","Fox") + +/datum/holiday/smile + name = "Smiling Day" + begin_day = 7 + begin_month = OCTOBER + +/datum/holiday/boss + name = "Boss' Day" + begin_day = 16 + begin_month = OCTOBER + +/datum/holiday/halloween + name = HALLOWEEN + begin_day = 30 + begin_month = OCTOBER + end_day = 2 + end_month = NOVEMBER + +/datum/holiday/halloween/greet() + return "Have a spooky Halloween!" + +/datum/holiday/halloween/getStationPrefix() + return pick("Bone-Rattling","Mr. Bones' Own","2SPOOKY","Spooky","Scary","Skeletons") + +/datum/holiday/vegan + name = "Vegan Day" + begin_day = 1 + begin_month = NOVEMBER + +/datum/holiday/kindness + name = "Kindness Day" + begin_day = 13 + begin_month = NOVEMBER + +/datum/holiday/flowers + name = "Flowers Day" + begin_day = 19 + begin_month = NOVEMBER + +/datum/holiday/hello + name = "Saying-'Hello' Day" + begin_day = 21 + begin_month = NOVEMBER + +/datum/holiday/hello/greet() + return "[pick(list("Aloha", "Bonjour", "Hello", "Hi", "Greetings", "Salutations", "Bienvenidos", "Hola", "Howdy"))]! " + ..() + +/datum/holiday/human_rights + name = "Human-Rights Day" + begin_day = 10 + begin_month = DECEMBER + +/datum/holiday/monkey + name = "Monkey Day" + begin_day = 14 + begin_month = DECEMBER + +/datum/holiday/doomsday + name = "Mayan Doomsday Anniversary" + begin_day = 21 + begin_month = DECEMBER + +/datum/holiday/xmas + name = CHRISTMAS + begin_day = 23 + begin_month = DECEMBER + end_day = 25 + +/datum/holiday/xmas/greet() + return "Have a merry Christmas!" + +/datum/holiday/boxing + name = "Boxing Day" + begin_day = 26 + begin_month = DECEMBER + +/datum/holiday/friday_thirteenth + name = "Friday the 13th" + +/datum/holiday/friday_thirteenth/shouldCelebrate(dd, mm, yy) + if(dd == 13) + if(time2text(world.timeofday, "DDD") == "Fri") + return 1 + return 0 + +/datum/holiday/friday_thirteenth/getStationPrefix() + return pick("Mike","Friday","Evil","Myers","Murder","Deathly","Stabby") + +/datum/holiday/easter + name = EASTER + var/const/days_early = 1 //to make editing the holiday easier + var/const/days_extra = 1 + +/datum/holiday/easter/shouldCelebrate(dd, mm, yy) +// Easter's celebration day is as snowflakey as Uhangi's code + + if(!begin_month) + + var/yy_string = "[yy]" +// year = days after March 22that Easter falls on that year. +// For 2015 Easter is on April 5th, so 2015 = 14 since the 5th is 14 days past the 22nd +// If it's 2040 and this is still in use, invent a time machine and teach me a better way to do this. Also tell us about HL3. + var/list/easters = list( + "15" = 14,\ + "16" = 6,\ + "17" = 25,\ + "18" = 10,\ + "19" = 30,\ + "20" = 22,\ + "21" = 13,\ + "22" = 26,\ + "23" = 18,\ + "24" = 9,\ + "25" = 29,\ + "26" = 14,\ + "27" = 6,\ + "28" = 25,\ + "29" = 10,\ + "30" = 30,\ + "31" = 23,\ + "32" = 6,\ + "33" = 26,\ + "34" = 18,\ + "35" = 3,\ + "36" = 22,\ + "37" = 14,\ + "38" = 34,\ + "39" = 19,\ + "40" = 9,\ + ) + + begin_day = easters[yy_string] + if(begin_day <= 9) + begin_day += 22 + begin_month = MARCH + else + begin_day -= 9 + begin_month = APRIL + + end_day = begin_day + days_extra + end_month = begin_month + if(end_day >= 32 && end_month == MARCH) //begins in march, ends in april + end_day -= 31 + end_month++ + if(end_day >= 31 && end_month == APRIL) //begins in april, ends in june + end_day -= 30 + end_month++ + + begin_day -= days_early + if(begin_day <= 0) + if(begin_month == APRIL) + begin_day += 31 + begin_month-- //begins in march, ends in april + +// world << "Easter calculates to be on [begin_day] of [begin_month] ([days_early] early) to [end_day] of [end_month] ([days_extra] extra) for 20[yy]" + return ..() diff --git a/code/modules/holodeck/area_copy.dm b/code/modules/holodeck/area_copy.dm new file mode 100644 index 0000000..653aac2 --- /dev/null +++ b/code/modules/holodeck/area_copy.dm @@ -0,0 +1,121 @@ +/proc/DuplicateObject(var/atom/original, var/perfectcopy = TRUE, var/sameloc = FALSE, var/atom/newloc = null, var/nerf = FALSE, var/holoitem=FALSE) + if(!original) + return null + var/atom/O + + if(sameloc) + O = new original.type(original.loc) + else + O = new original.type(newloc) + + if(perfectcopy && O && original) + var/global/list/forbidden_vars = list("type","loc","locs","vars", "parent","parent_type", "verbs","ckey","key","power_supply","contents","reagents","stat","x","y","z","group") + + for(var/V in original.vars - forbidden_vars) + if(istype(original.vars[V],/list)) + var/list/L = original.vars[V] + O.vars[V] = L.Copy() + else if(istype(original.vars[V],/datum)) + continue // this would reference the original's object, that will break when it is used or deleted. + else + O.vars[V] = original.vars[V] + + if(istype(O, /obj)) + var/obj/N = O + if(holoitem) + N.resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF // holoitems do not burn + + if(nerf && istype(O,/obj/item)) + var/obj/item/I = O + I.damtype = STAMINA // thou shalt not + + N.update_icon() + if(istype(O,/obj/machinery)) + var/obj/machinery/M = O + M.power_change() + return O + + +/area/proc/copy_contents_to(var/area/A , var/platingRequired = 0, var/nerf_weapons = 0 ) + //Takes: Area. Optional: If it should copy to areas that don't have plating + //Returns: Nothing. + //Notes: Attempts to move the contents of one area to another area. + // Movement based on lower left corner. Tiles that do not fit + // into the new area will not be moved. + + if(!A || !src) return 0 + + var/list/turfs_src = get_area_turfs(src.type) + var/list/turfs_trg = get_area_turfs(A.type) + + var/src_min_x = 99999 + var/src_min_y = 99999 + var/list/refined_src = new/list() + + for (var/turf/T in turfs_src) + src_min_x = min(src_min_x,T.x) + src_min_y = min(src_min_y,T.y) + for (var/turf/T in turfs_src) + refined_src[T] = "[T.x - src_min_x].[T.y - src_min_y]" + + var/trg_min_x = 99999 + var/trg_min_y = 99999 + var/list/refined_trg = new/list() + + for (var/turf/T in turfs_trg) + trg_min_x = min(trg_min_x,T.x) + trg_min_y = min(trg_min_y,T.y) + for (var/turf/T in turfs_trg) + refined_trg["[T.x - trg_min_x].[T.y - trg_min_y]"] = T + + var/list/toupdate = new/list() + + var/copiedobjs = list() + + for (var/turf/T in refined_src) + //var/datum/coords/C_src = refined_src[T] + var/coordstring = refined_src[T] + var/turf/B = refined_trg[coordstring] + if(!istype(B)) + continue + + if(platingRequired) + if(isspaceturf(B)) + continue + + var/old_dir1 = T.dir + var/old_icon_state1 = T.icon_state + var/old_icon1 = T.icon + + var/turf/X = new T.type(B) + X.setDir(old_dir1) + X.icon = old_icon1 + X.icon_state = old_icon_state1 + + for(var/obj/O in T) + var/obj/O2 = DuplicateObject(O , perfect_copy=TRUE, newloc = X, nerf=nerf_weapons, holoitem=TRUE) + if(!O2) continue + copiedobjs += O2.GetAllContents() + + for(var/mob/M in T) + if(istype(M, /mob/camera)) continue // If we need to check for more mobs, I'll add a variable + var/mob/SM = DuplicateObject(M , perfect_copy=TRUE, newloc = X, holoitem=TRUE) + copiedobjs += SM.GetAllContents() + + var/global/list/forbidden_vars = list("type","stat","loc","locs","vars", "parent", "parent_type","verbs","ckey","key","x","y","z","contents", "luminosity") + for(var/V in T.vars - forbidden_vars) + if(V == "air") + var/turf/open/O1 = X + var/turf/open/O2 = T + O1.air.copy_from(O2.air) + continue + X.vars[V] = T.vars[V] + toupdate += X + + if(toupdate.len) + for(var/turf/T1 in toupdate) + T1.CalculateAdjacentTurfs() + SSair.add_to_active(T1,1) + + + return copiedobjs diff --git a/code/modules/holodeck/computer.dm b/code/modules/holodeck/computer.dm new file mode 100644 index 0000000..10349f4 --- /dev/null +++ b/code/modules/holodeck/computer.dm @@ -0,0 +1,209 @@ +/* + Holodeck Update + + The on-station holodeck area is of type [holodeck_type]. + All subtypes of [program_type] are loaded into the program cache or emag programs list. + If init_program is null, a random program will be loaded on startup. + If you don't wish this, set it to the offline program or another of your choosing. + + You can use this to add holodecks with minimal code: + 1) Define new areas for the holodeck programs + 2) Map them + 3) Create a new control console that uses those areas + + Non-mapped areas should be skipped but you should probably comment them out anyway. + The base of program_type will always be ignored; only subtypes will be loaded. +*/ + +/obj/machinery/computer/holodeck + name = "holodeck control console" + desc = "A computer used to control a nearby holodeck." + icon_screen = "holocontrol" + idle_power_usage = 10 + active_power_usage = 50 + var/area/holodeck/linked + var/area/holodeck/program + var/area/holodeck/last_program + var/area/offline_program = /area/holodeck/rec_center/offline + + var/list/program_cache = list() + var/list/emag_programs = list() + + // Splitting this up allows two holodecks of the same size + // to use the same source patterns. Y'know, if you want to. + var/holodeck_type = /area/holodeck/rec_center // locate(this) to get the target holodeck + var/program_type = /area/holodeck/rec_center // subtypes of this (but not this itself) are loadable programs + + // set this if you want it to start with some particular program. + var/init_program = null + // or this to get anything + var/random_program = 0 + + var/active = 0 + var/damaged = 0 + var/list/spawned = list() + var/list/effects = list() + var/last_change = 0 + +/obj/machinery/computer/holodeck/New() + + if(ispath(holodeck_type,/area)) + linked = locate(holodeck_type) + if(ispath(offline_program,/area)) + offline_program = locate(offline_program) + // the following is necessary for power reasons + var/area/AS = get_area(src) + if(istype(AS,/area/holodeck)) + world.log << "### MAPPING ERROR" + world.log << "Holodeck computer cannot be in a holodeck." + world.log << "This would cause circular power dependency." + qdel(src) // todo handle constructed computers + return + else + linked.linked = src // todo detect multiple/constructed computers + + if(ticker && ticker.current_state >= GAME_STATE_PLAYING) + initialize() + ..() + +/obj/machinery/computer/holodeck/initialize() + program_cache = list() + emag_programs = list() + for(var/typekey in subtypesof(program_type)) + var/area/holodeck/A = locate(typekey) + if(!A || A == offline_program) continue + if(A.contents.len == 0) continue // not loaded + if(A.restricted) + emag_programs += A + else + program_cache += A + if(typekey == init_program) + load_program(A,force=1) + if(random_program && program_cache.len && init_program == null) + load_program(pick(program_cache),force=1) + else if(!program) + load_program(offline_program) + +/obj/machinery/computer/holodeck/power_change() + ..() + toggle_power(!stat) + +/obj/machinery/computer/holodeck/proc/toggle_power(toggleOn = 0) + if(active == toggleOn) return + + if(toggleOn) + if(last_program && last_program != offline_program) + load_program(last_program, delay = 1) + active = 1 + else + last_program = program + load_program(offline_program,force=1) + active = 0 + +/obj/machinery/computer/holodeck/proc/emergency_shutdown() + last_program = program + load_program(offline_program,1) + active = 0 + +/obj/machinery/computer/holodeck/process() + if(damaged) + if(prob(10)) + for(var/turf/T in linked) + if(prob(5)) + var/datum/effect_system/spark_spread/s = new + s.set_up(2, 1, T) + s.start() + return + + if(!..() || !active) + return + + if(!floorcheck()) + emergency_shutdown() + damaged = 1 + for(var/mob/M in urange(10,src)) + M.show_message("The holodeck overloads!") + + for(var/turf/T in linked) + if(prob(30)) + var/datum/effect_system/spark_spread/s = new + s.set_up(2, 1, T) + s.start() + T.ex_act(3) + T.hotspot_expose(1000,500,1) + + if(!emagged) + for(var/item in spawned) + if(!(get_turf(item) in linked)) + derez(item, 0) + for(var/obj/effect/holodeck_effect/HE in effects) + HE.tick() + + active_power_usage = 50 + spawned.len * 3 + effects.len * 5 + +/obj/machinery/computer/holodeck/proc/floorcheck() + for(var/turf/T in linked) + if(!T.intact || isspaceturf(T)) + return 0 + return 1 + +/obj/machinery/computer/holodeck/Topic(href, list/href_list) + if(..()) + return + if(!Adjacent(usr) && !issilicon(usr)) + return + usr.set_machine(src) + add_fingerprint(usr) + if(href_list["loadarea"]) + var/areapath = text2path(href_list["loadarea"]) + if(!ispath(areapath, /area/holodeck)) + return + var/area/holodeck/area = locate(areapath) + if(!istype(area)) + return + if(area == offline_program || (area in program_cache) || (emagged && (area in emag_programs))) + load_program(area) + else if("safety" in href_list) + var/safe = text2num(href_list["safety"]) + emagged = !safe + if(!program) + return + if(safe && (program in emag_programs)) + emergency_shutdown() + nerf(safe) + updateUsrDialog() + +/obj/machinery/computer/holodeck/proc/nerf(active) + for(var/obj/item/I in spawned) + I.damtype = (active? STAMINA : initial(I.damtype) ) + for(var/obj/effect/holodeck_effect/HE in effects) + HE.safety(active) + +/obj/machinery/computer/holodeck/emag_act(mob/user as mob) + if(!emagged) + if(!emag_programs.len) + user << "[src] does not seem to have a card swipe port. It must be an inferior model." + return + playsound(loc, 'sound/effects/sparks4.ogg', 75, 1) + emagged = 1 + user << "You vastly increase projector power and override the safety and security protocols." + user << "Warning. Automatic shutoff and derezing protocols have been corrupted. Please call Nanotrasen maintenance and do not use the simulator." + log_game("[key_name(user)] emagged the Holodeck Control Console") + updateUsrDialog() + nerf(!emagged) + +/obj/machinery/computer/holodeck/Destroy() + emergency_shutdown() + ..() + +/obj/machinery/computer/holodeck/emp_act(severity) + emergency_shutdown() + ..() + +/obj/machinery/computer/holodeck/ex_act(severity, target) + emergency_shutdown() + ..() + +/obj/machinery/computer/holodeck/blob_act(obj/structure/blob/B) + emergency_shutdown() + ..() \ No newline at end of file diff --git a/code/modules/holodeck/computer_funcs.dm b/code/modules/holodeck/computer_funcs.dm new file mode 100644 index 0000000..4e76d8f --- /dev/null +++ b/code/modules/holodeck/computer_funcs.dm @@ -0,0 +1,119 @@ +/obj/machinery/computer/holodeck/attack_hand(var/mob/user as mob) + user.set_machine(src) + + var/dat = "

    Current Loaded Programs

    " + dat += "Power Off
    " + for(var/area/A in program_cache) + dat += "[A.name]
    " + if(emagged && emag_programs.len) + dat += "SUPERVISOR ACCESS - SAFETY PROTOCOLS DISABLED - CAUTION: EMITTER ANOMALY
    " + for(var/area/A in emag_programs) + dat += "[A.name]
    " + + var/datum/browser/popup = new(user, "computer", name, 400, 500) + popup.set_content(dat) + popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) + popup.open() + return + +/obj/machinery/computer/holodeck/attack_ai(var/mob/user as mob) + var/dat = "

    Current Loaded Programs

    " + + dat += "Power Off
    " + for(var/area/A in program_cache) + dat += "[A.name]
    " + + if(emag_programs.len) + dat += "
    " + if(emagged) + dat += "Safety protocol: Offline Engage
    " + for(var/area/A in emag_programs) + dat += "[A.name]
    " + else + dat += "Safety protocol: Online Disengage
    " + + var/datum/browser/popup = new(user, "computer", name, 400, 500) + popup.set_content(dat) + popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) + popup.open() + + +/obj/machinery/computer/holodeck/proc/load_program(var/area/A, var/force = 0, var/delay = 0) + if(stat) + A = offline_program + force = 1 + delay = 0 + if(program == A) + return + if(world.time < (last_change + 25 + (damaged?500:0)) && !force) + if(delay) + sleep(25) + else + if(world.time < (last_change + 15))//To prevent super-spam clicking, reduced process size and annoyance -Sieve + return + if(get_dist(usr,src) <= 3) + usr << "ERROR. Recalibrating projection apparatus." + return + + last_change = world.time + active = (A != offline_program) + use_power = active+1 + + for(var/obj/effect/holodeck_effect/HE in effects) + HE.deactivate(src) + + for(var/item in spawned) + derez(item, forced=force) + + program = A + // note nerfing does not yet work on guns, should + // should also remove/limit/filter reagents? + // this is an exercise left to others I'm afraid. -Sayu + spawned = A.copy_contents_to(linked, 1, nerf_weapons = !emagged) + for(var/obj/machinery/M in spawned) + M.flags |= NODECONSTRUCT + for(var/obj/structure/S in spawned) + S.flags |= NODECONSTRUCT + effects = list() + + spawn(30) + var/list/added = list() + for(var/obj/effect/holodeck_effect/HE in spawned) + effects += HE + spawned -= HE + var/atom/x = HE.activate(src) + if(istype(x) || islist(x)) + spawned += x // holocarp are not forever + added += x + for(var/obj/machinery/M in added) + M.flags |= NODECONSTRUCT + for(var/obj/structure/S in added) + S.flags |= NODECONSTRUCT + +/obj/machinery/computer/holodeck/proc/derez(var/obj/obj, var/silent = 1, var/forced = 0) + // Emagging a machine creates an anomaly in the derez systems. + if(obj && src.emagged && !src.stat && !forced) + if((ismob(obj) || istype(obj.loc,/mob)) && prob(50)) + spawn(50) .(obj,silent) // may last a disturbingly long time + return + spawned.Remove(obj) + + if(!obj) + return + var/turf/T = get_turf(obj) + for(var/atom/movable/AM in obj.contents) // these should be derezed if they were generated + AM.loc = T // otherwise make sure they are dropped + + if(istype(obj)) + var/mob/M = obj.loc + if(ismob(M)) + M.unEquip(obj, 1) //Holoweapons should always drop. + + for(var/mob/M in obj.contents) + M.loc = obj.loc + silent = 0 + + if(!silent) + var/obj/oldobj = obj + visible_message("The [oldobj.name] fades away!") + qdel(obj) \ No newline at end of file diff --git a/code/modules/holodeck/holo_effect.dm b/code/modules/holodeck/holo_effect.dm new file mode 100644 index 0000000..b90f050 --- /dev/null +++ b/code/modules/holodeck/holo_effect.dm @@ -0,0 +1,99 @@ +/* + The holodeck activates these shortly after the program loads, + and deactivates them immediately before changing or disabling the holodeck. + + These remove snowflake code for special holodeck functions. +*/ +/obj/effect/holodeck_effect + icon = 'icons/mob/screen_gen.dmi' + icon_state = "x2" + invisibility = INVISIBILITY_ABSTRACT + +/obj/effect/holodeck_effect/proc/activate(var/obj/machinery/computer/holodeck/HC) + return + +/obj/effect/holodeck_effect/proc/deactivate(var/obj/machinery/computer/holodeck/HC) + qdel(src) + return + +// Called by the holodeck computer as long as the program is running +/obj/effect/holodeck_effect/proc/tick(var/obj/machinery/computer/holodeck/HC) + return + +/obj/effect/holodeck_effect/proc/safety(var/active) + return + + +// Generates a holodeck-tracked card deck +/obj/effect/holodeck_effect/cards + icon = 'icons/obj/toy.dmi' + icon_state = "deck_nanotrasen_full" + var/obj/item/toy/cards/deck/D + +/obj/effect/holodeck_effect/cards/activate(var/obj/machinery/computer/holodeck/HC) + D = new(loc) + safety(!HC.emagged) + D.holo = HC + return D + +/obj/effect/holodeck_effect/cards/safety(active) + if(!D) + return + if(active) + D.card_hitsound = null + D.card_force = 0 + D.card_throwforce = 0 + D.card_throw_speed = 3 + D.card_throw_range = 7 + D.card_attack_verb = list("attacked") + else + D.card_hitsound = 'sound/weapons/bladeslice.ogg' + D.card_force = 5 + D.card_throwforce = 10 + D.card_throw_speed = 3 + D.card_throw_range = 7 + D.card_attack_verb = list("attacked", "sliced", "diced", "slashed", "cut") + + +/obj/effect/holodeck_effect/sparks/activate(var/obj/machinery/computer/holodeck/HC) + var/turf/T = get_turf(src) + if(T) + var/datum/effect_system/spark_spread/s = new + s.set_up(3, 1, T) + s.start() + T.temperature = 5000 + T.hotspot_expose(50000,50000,1) + + + +/obj/effect/holodeck_effect/mobspawner + var/mobtype = /mob/living/simple_animal/hostile/carp/holocarp + var/mob/mob = null + +/obj/effect/holodeck_effect/mobspawner/activate(var/obj/machinery/computer/holodeck/HC) + if(islist(mobtype)) + mobtype = pick(mobtype) + mob = new mobtype(loc) + + // these vars are not really standardized but all would theoretically create stuff on death + for(var/v in list("butcher_results","corpse","weapon1","weapon2","blood_volume") & mob.vars) + mob.vars[v] = null + return mob + +/obj/effect/holodeck_effect/mobspawner/deactivate(var/obj/machinery/computer/holodeck/HC) + if(mob) + HC.derez(mob) + qdel(src) + +/obj/effect/holodeck_effect/mobspawner/pet + mobtype = list( + /mob/living/simple_animal/butterfly, /mob/living/simple_animal/chick/holo, + /mob/living/simple_animal/pet/cat, /mob/living/simple_animal/pet/cat/kitten, + /mob/living/simple_animal/pet/dog/corgi, /mob/living/simple_animal/pet/dog/corgi/puppy, + /mob/living/simple_animal/pet/dog/pug, /mob/living/simple_animal/pet/fox) + +/obj/effect/holodeck_effect/mobspawner/bee + mobtype = /mob/living/simple_animal/hostile/poison/bees/toxin + +/obj/effect/holodeck_effect/mobspawner/monkey + mobtype = /mob/living/simple_animal/holodeck_monkey diff --git a/code/modules/holodeck/items.dm b/code/modules/holodeck/items.dm new file mode 100644 index 0000000..366d3f9 --- /dev/null +++ b/code/modules/holodeck/items.dm @@ -0,0 +1,224 @@ +/* + Items, Structures, Machines +*/ + + +// +// Items +// + +/obj/item/weapon/holo + damtype = STAMINA + +/obj/item/weapon/holo/esword + name = "holographic energy sword" + desc = "May the force be with you. Sorta" + icon_state = "sword0" + force = 3.0 + throw_speed = 2 + throw_range = 5 + throwforce = 0 + w_class = 2.0 + hitsound = "swing_hit" + armour_penetration = 50 + var/active = 0 + +/obj/item/weapon/holo/esword/green/New() + item_color = "green" + +/obj/item/weapon/holo/esword/red/New() + item_color = "red" + +/obj/item/weapon/holo/esword/hit_reaction(mob/living/carbon/human/owner, attack_text, final_block_chance) + if(active) + return ..() + return 0 + +/obj/item/weapon/holo/esword/attack(target as mob, mob/user as mob) + ..() + +/obj/item/weapon/holo/esword/New() + item_color = pick("red","blue","green","purple") + +/obj/item/weapon/holo/esword/attack_self(mob/living/user as mob) + active = !active + if (active) + force = 30 + icon_state = "sword[item_color]" + w_class = 4 + hitsound = 'sound/weapons/blade1.ogg' + playsound(user, 'sound/weapons/saberon.ogg', 20, 1) + user << "[src] is now active." + else + force = 3 + icon_state = "sword0" + w_class = 2 + hitsound = "swing_hit" + playsound(user, 'sound/weapons/saberoff.ogg', 20, 1) + user << "[src] can now be concealed." + return + +//BASKETBALL OBJECTS + +/obj/item/toy/beach_ball/holoball + name = "basketball" + icon = 'icons/obj/items.dmi' + icon_state = "basketball" + item_state = "basketball" + desc = "Here's your chance, do your dance at the Space Jam." + w_class = 4 //Stops people from hiding it in their bags/pockets + +/obj/item/toy/beach_ball/holoball/dodgeball + name = "dodgeball" + icon_state = "dodgeball" + item_state = "dodgeball" + desc = "Used for playing the most violent and degrading of childhood games." + +/obj/item/toy/beach_ball/holoball/dodgeball/throw_impact(atom/hit_atom) + ..() + if((ishuman(hit_atom))) + var/mob/living/carbon/M = hit_atom + playsound(src, 'sound/items/dodgeball.ogg', 50, 1) + M.apply_damage(10, STAMINA) + if(prob(5)) + M.Weaken(3) + visible_message("[M] is knocked right off \his feet!") + +// +// Structures +// + +/obj/structure/holohoop + name = "basketball hoop" + desc = "Boom, shakalaka!" + icon = 'icons/obj/basketball.dmi' + icon_state = "hoop" + anchored = 1 + density = 1 + +/obj/structure/holohoop/attackby(obj/item/weapon/W as obj, mob/user as mob, params) + if(get_dist(src,user)<2) + if(user.drop_item(src)) + visible_message(" [user] dunks [W] into \the [src]!") + +/obj/structure/holohoop/attack_hand(mob/user) + if(user.pulling && user.a_intent == "grab" && isliving(user.pulling)) + var/mob/living/L = user.pulling + if(user.grab_state < GRAB_AGGRESSIVE) + user << "You need a better grip to do that!" + return + L.loc = src.loc + L.Weaken(5) + visible_message("[user] dunks [L] into \the [src]!") + user.stop_pulling() + else + ..() + +/obj/structure/holohoop/CanPass(atom/movable/mover, turf/target, height=0) + if (istype(mover,/obj/item) && mover.throwing) + var/obj/item/I = mover + if(istype(I, /obj/item/projectile)) + return + if(prob(50)) + I.loc = src.loc + visible_message(" Swish! \the [I] lands in \the [src].") + else + visible_message(" \the [I] bounces off of \the [src]'s rim!") + return 0 + else + return ..() + + + +// +// Machines +// + +/obj/machinery/readybutton + name = "ready declaration device" + desc = "This device is used to declare ready. If all devices in an area are ready, the event will begin!" + icon = 'icons/obj/monitors.dmi' + icon_state = "auth_off" + var/ready = 0 + var/area/currentarea = null + var/eventstarted = 0 + + anchored = 1.0 + use_power = 1 + idle_power_usage = 2 + active_power_usage = 6 + power_channel = ENVIRON + +/obj/machinery/readybutton/attack_ai(mob/user as mob) + user << "The station AI is not to interact with these devices" + return + +/obj/machinery/readybutton/attack_paw(mob/user as mob) + user << "You are too primitive to use this device!" + return + +/obj/machinery/readybutton/attackby(obj/item/weapon/W as obj, mob/user as mob, params) + user << "The device is a solid button, there's nothing you can do with it!" + +/obj/machinery/readybutton/attack_hand(mob/user as mob) + if(user.stat || stat & (NOPOWER|BROKEN)) + user << "This device is not powered!" + return + + currentarea = get_area(src.loc) + if(!currentarea) + qdel(src) + + if(eventstarted) + usr << "The event has already begun!" + return + + ready = !ready + + update_icon() + + var/numbuttons = 0 + var/numready = 0 + for(var/obj/machinery/readybutton/button in currentarea) + numbuttons++ + if (button.ready) + numready++ + + if(numbuttons == numready) + begin_event() + +/obj/machinery/readybutton/update_icon() + if(ready) + icon_state = "auth_on" + else + icon_state = "auth_off" + +/obj/machinery/readybutton/proc/begin_event() + + eventstarted = 1 + + for(var/obj/structure/window/W in currentarea) + if(W.flags&NODECONSTRUCT) // Just in case: only holo-windows + qdel(W) + + for(var/mob/M in currentarea) + M << "FIGHT!" + +/obj/machinery/conveyor/holodeck + +/obj/machinery/conveyor/holodeck/attackby(obj/item/I, mob/user, params) + if(user.drop_item()) + I.loc = src.loc + else + return ..() + +/obj/item/weapon/paper/trek_diploma + name = "paper - Starfleet Academy Diploma" + info = {"

    Starfleet Academy


    Official Diploma


    "} + +/obj/item/weapon/gun/energy/gun/mini/practice_phaser + name = "practice phaser" + desc = "A modified version of the basic phaser gun, this one fires less concentrated energy bolts designed for target practice." + ammo_type = list(/obj/item/ammo_casing/energy/disabler, /obj/item/ammo_casing/energy/laser/practice) + icon_state = "decloner" + diff --git a/code/modules/holodeck/mobs.dm b/code/modules/holodeck/mobs.dm new file mode 100644 index 0000000..af8b095 --- /dev/null +++ b/code/modules/holodeck/mobs.dm @@ -0,0 +1,20 @@ +/* + Mobs +*/ + +/mob/living/simple_animal/holodeck_monkey + name = "monkey" + desc = "A holographic creature fond of bananas." + icon = 'icons/mob/monkey.dmi' + icon_state = "monkey1" + icon_living = "monkey1" + icon_dead = "monkey1_dead" + speak_emote = list("chimpers") + emote_hear = list("chimpers.") + emote_see = list("scratches.", "looks around.") + speak_chance = 1 + turns_per_move = 2 + butcher_results = list() + response_help = "pets" + response_disarm = "pushes aside" + response_harm = "bites" diff --git a/code/modules/holodeck/turfs.dm b/code/modules/holodeck/turfs.dm new file mode 100644 index 0000000..458497c --- /dev/null +++ b/code/modules/holodeck/turfs.dm @@ -0,0 +1,112 @@ +/turf/open/floor/holofloor + icon_state = "floor" + thermal_conductivity = 0 + broken_states = list("engine") + burnt_states = list("engine") + flags = NONE + +/turf/open/floor/holofloor/attackby(obj/item/I, mob/living/user) + return // HOLOFLOOR DOES NOT GIVE A FUCK + +/turf/open/floor/holofloor/plating + name = "holodeck projector floor" + icon_state = "engine" + +/turf/open/floor/holofloor/plating/burnmix + name = "burn-mix floor" + initial_gas_mix = "o2=2500;plasma=5000;TEMP=370" + +/turf/open/floor/holofloor/grass + gender = PLURAL + name = "lush grass" + icon_state = "grass" + +/turf/open/floor/holofloor/beach + name = "sand" + icon = 'icons/misc/beach.dmi' + icon_state = "sand" + +/turf/open/floor/holofloor/beach/coast_t + name = "coastline" + icon_state = "sandwater_t" + +/turf/open/floor/holofloor/beach/coast_b + name = "coastline" + icon_state = "sandwater_b" + +/turf/open/floor/holofloor/beach/water + name = "water" + icon_state = "water" + +/turf/open/floor/holofloor/asteroid + name = "asteroid" + icon_state = "asteroid0" + +/turf/open/floor/holofloor/asteroid/New() + icon_state = "asteroid[pick(0,1,2,3,4,5,6,7,8,9,10,11,12)]" + ..() + +/turf/open/floor/holofloor/basalt + name = "basalt" + icon_state = "basalt0" + +/turf/open/floor/holofloor/basalt/New() + icon_state = "basalt[pick(0,1,2,3,4,5,6,7,8,9,10,11,12)]" + ..() + +/turf/open/floor/holofloor/space + name = "Space" + icon = 'icons/turf/space.dmi' + icon_state = "0" + +/turf/open/floor/holofloor/space/New() + icon_state = SPACE_ICON_STATE // so realistic + ..() + +/turf/open/floor/holofloor/hyperspace + name = "hyperspace" + icon = 'icons/turf/space.dmi' + icon_state = "speedspace_ns_1" + +/turf/open/floor/holofloor/hyperspace/New() + icon_state = "speedspace_ns_[(x + 5*y + (y%2+1)*7)%15+1]" + ..() + +/turf/open/floor/holofloor/hyperspace/ns/New() + ..() + icon_state = "speedspace_ns_[(x + 5*y + (y%2+1)*7)%15+1]" + +/turf/open/floor/holofloor/carpet + name = "carpet" + desc = "Electrically inviting." + icon = 'icons/turf/floors/carpet.dmi' + icon_state = "carpet" + floor_tile = /obj/item/stack/tile/carpet + broken_states = list("damaged") + smooth = SMOOTH_TRUE + canSmoothWith = null + +/turf/open/floor/holofloor/carpet/New() + ..() + addtimer(src, "update_icon", 1) + +/turf/open/floor/holofloor/carpet/update_icon() + if(!..()) + return 0 + if(intact) + queue_smooth(src) + +/turf/open/floor/holofloor/snow + name = "snow" + desc = "Looks cold." + icon = 'icons/turf/snow.dmi' + icon_state = "snow" + slowdown = 2 + +/turf/open/floor/holofloor/snow/cold + initial_gas_mix = "freon=7500;TEMP=0" + +/turf/open/floor/holofloor/asteroid + name = "asteroid sand" + icon = 'icons/turf/floors.dmi' + icon_state = "asteroid" diff --git a/code/modules/html_interface/cards/cards.css b/code/modules/html_interface/cards/cards.css new file mode 100644 index 0000000..dbcb6e5 --- /dev/null +++ b/code/modules/html_interface/cards/cards.css @@ -0,0 +1,112 @@ +html, body, div.wrapper > table +{ + width: 100%; + height: 100%; +} + +body +{ + background-color: #EAEAEA; + font-family: verdana,Geneva,sans-serif; + font-size: 12px; + color: #272727; +} + +a +{ + color: #5353B1; +} + +div.wrapper +{ + position: absolute; top: 24px; left: 0px; right: 0px; bottom: 0px; +} + +div#headbar +{ + background-color: #B2B2B2; + border-bottom: 1px solid #C2C2C2; + height: 24px; + padding: 4px 8px; + box-sizing: border-box; +} + +div#hand +{ + padding: 8px 8px; + padding-bottom: 4px; + background-color: #EAEAEA; + text-align: center; +} + +a.card +{ + display: inline-block; + margin: 0px 2px; + + background-image: url(cards.png); + background-repeat: no-repeat; + width: 94px; + height: 129px; + + box-sizing: border-box; + background-position: 0px 0px; + background-origin: border-box; + + text-decoration: none; + font-size: 0px; +} + +a.card.clubs.ten { background-position: -5px -5px; } +a.card.diamonds.ten { background-position: -109px -5px; } +a.card.hearts.ten { background-position: -213px -5px; } +a.card.spades.ten { background-position: -317px -5px; } +a.card.clubs.two { background-position: -421px -5px; } +a.card.diamonds.two { background-position: -525px -5px; } +a.card.hearts.two { background-position: -629px -5px; } +a.card.spades.two { background-position: -733px -5px; } +a.card.clubs.three { background-position: -5px -144px; } +a.card.diamonds.three { background-position: -109px -144px; } +a.card.hearts.three { background-position: -213px -144px; } +a.card.spades.three { background-position: -317px -144px; } +a.card.clubs.four { background-position: -421px -144px; } +a.card.diamonds.four { background-position: -525px -144px; } +a.card.hearts.four { background-position: -629px -144px; } +a.card.spades.four { background-position: -733px -144px; } +a.card.clubs.five { background-position: -5px -283px; } +a.card.diamonds.five { background-position: -109px -283px; } +a.card.hearts.five { background-position: -213px -283px; } +a.card.spades.five { background-position: -317px -283px; } +a.card.clubs.six { background-position: -421px -283px; } +a.card.diamonds.six { background-position: -525px -283px; } +a.card.hearts.six { background-position: -629px -283px; } +a.card.spades.six { background-position: -733px -283px; } +a.card.clubs.seven { background-position: -5px -422px; } +a.card.diamonds.seven { background-position: -109px -422px; } +a.card.hearts.seven { background-position: -213px -422px; } +a.card.spades.seven { background-position: -317px -422px; } +a.card.clubs.eight { background-position: -421px -422px; } +a.card.diamonds.eight { background-position: -525px -422px; } +a.card.hearts.eight { background-position: -629px -422px; } +a.card.spades.eight { background-position: -733px -422px; } +a.card.clubs.nine { background-position: -5px -561px; } +a.card.diamonds.nine { background-position: -109px -561px; } +a.card.hearts.nine { background-position: -213px -561px; } +a.card.spades.nine { background-position: -317px -561px; } +a.card.clubs.ace { background-position: -421px -561px; } +a.card.diamonds.ace { background-position: -525px -561px; } +a.card.hearts.ace { background-position: -629px -561px; } +a.card.spades.ace { background-position: -733px -561px; } +a.card.clubs.jack { background-position: -5px -700px; } +a.card.diamonds.jack { background-position: -109px -700px; } +a.card.hearts.jack { background-position: -213px -700px; } +a.card.spades.jack { background-position: -317px -700px; } +a.card.clubs.king { background-position: -421px -700px; } +a.card.diamonds.king { background-position: -525px -700px; } +a.card.hearts.king { background-position: -629px -700px; } +a.card.spades.king { background-position: -733px -700px; } +a.card.clubs.queen { background-position: -837px -5px; } +a.card.diamonds.queen { background-position: -837px -144px; } +a.card.hearts.queen { background-position: -837px -283px; } +a.card.spades.queen { background-position: -837px -422px; } +a.card.joker { background-position: -837px -561px; } \ No newline at end of file diff --git a/code/modules/html_interface/cards/cards.dm b/code/modules/html_interface/cards/cards.dm new file mode 100644 index 0000000..88e4311 --- /dev/null +++ b/code/modules/html_interface/cards/cards.dm @@ -0,0 +1,13 @@ +// Used by playing cards; /obj/item/weapon/hand +// Subtype exists because of sendResources; these must be sent when the client connects. + +/datum/html_interface/cards/New() + . = ..() + + src.head = src.head + "" + src.updateLayout("
    ") + +/datum/html_interface/cards/registerResources(var/list/resources = list()) + resources["cards.css"] = 'cards.css' + resources["cards.png"] = 'cards.png' + ..(resources) \ No newline at end of file diff --git a/code/modules/html_interface/cards/cards.png b/code/modules/html_interface/cards/cards.png new file mode 100644 index 0000000..8001168 Binary files /dev/null and b/code/modules/html_interface/cards/cards.png differ diff --git a/code/modules/html_interface/css/bootstrap.min.css b/code/modules/html_interface/css/bootstrap.min.css new file mode 100644 index 0000000..f3e39a0 --- /dev/null +++ b/code/modules/html_interface/css/bootstrap.min.css @@ -0,0 +1,10 @@ +/*! + * Bootstrap v3.2.0 (http://getbootstrap.com) + * Copyright 2011-2014 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ + +/*! + * Generated using the Bootstrap Customizer (http://getbootstrap.com/customize/?id=979b48f103c9d446c891) + * Config saved to config.json and https://gist.github.com/979b48f103c9d446c891 + *//*! normalize.css v3.0.1 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}@media print{*{text-shadow:none !important;color:#000 !important;background:transparent !important;box-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff !important}.navbar{display:none}.table td,.table th{background-color:#fff !important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#428bca;text-decoration:none}a:hover,a:focus{color:#2a6496;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;width:100% \9;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;width:100% \9;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#777}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:240px){.lead{font-size:21px}}small,.small{font-size:85%}cite{font-style:normal}mark,.mark{background-color:#fcf8e3;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#428bca}a.text-primary:hover{color:#3071a9}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#428bca}a.bg-primary:hover{background-color:#3071a9}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:bold}dd{margin-left:0}@media (min-width:240px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}blockquote:before,blockquote:after{content:""}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:240px){.container{width:750px}}@media (min-width:600px){.container{width:970px}}@media (min-width:960px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:240px){.col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:600px){.col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:960px){.col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}@media screen and (max-width:239px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;overflow-x:auto;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd;-webkit-overflow-scrolling:touch}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6)}.form-control::-moz-placeholder{color:#777;opacity:1}.form-control:-ms-input-placeholder{color:#777}.form-control::-webkit-input-placeholder{color:#777}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:1}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}input[type="date"],input[type="time"],input[type="datetime-local"],input[type="month"]{line-height:34px;line-height:1.42857143 \0}input[type="date"].input-sm,input[type="time"].input-sm,input[type="datetime-local"].input-sm,input[type="month"].input-sm{line-height:30px}input[type="date"].input-lg,input[type="time"].input-lg,input[type="datetime-local"].input-lg,input[type="month"].input-lg{line-height:46px}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;min-height:20px;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"].disabled,input[type="checkbox"].disabled,fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm,.form-horizontal .form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,select[multiple].input-sm{height:auto}.input-lg,.form-horizontal .form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg{height:46px;line-height:46px}textarea.input-lg,select[multiple].input-lg{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:25px;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center}.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-error .form-control-feedback{color:#a94442}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:240px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:240px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:7px}}.form-horizontal .has-feedback .form-control-feedback{top:0;right:15px}@media (min-width:240px){.form-horizontal .form-group-lg .control-label{padding-top:14.3px}}@media (min-width:240px){.form-horizontal .form-group-sm .control-label{padding-top:6px}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#333;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#3071a9;border-color:#285e8e}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#428bca;border-color:#357ebd}.btn-primary .badge{color:#428bca;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{color:#428bca;font-weight:normal;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#777;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;text-align:left;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#428bca}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#777}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:240px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle="buttons"]>.btn>input[type="radio"],[data-toggle="buttons"]>.btn>input[type="checkbox"]{position:absolute;z-index:-1;opacity:0;filter:alpha(opacity=0)}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:normal;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#777;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#428bca}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:240px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:240px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#428bca}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:240px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:240px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:240px){.navbar{border-radius:4px}}@media (min-width:240px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:240px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-width:180px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:240px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:240px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}@media (min-width:240px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px 15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media (min-width:240px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:240px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:239px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:240px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}.navbar-nav.navbar-right:last-child{margin-right:-15px}}@media (min-width:240px){.navbar-left{float:left !important}.navbar-right{float:right !important}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:8px;margin-bottom:8px}@media (min-width:240px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:239px){.navbar-form .form-group{margin-bottom:5px}}@media (min-width:240px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}.navbar-form.navbar-right:last-child{margin-right:-15px}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:240px){.navbar-text{float:left;margin-left:15px;margin-right:15px}.navbar-text.navbar-right:last-child{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#e7e7e7;color:#555}@media (max-width:239px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#333}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#777}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#777}.navbar-inverse .navbar-nav>li>a{color:#777}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#080808;color:#fff}@media (max-width:239px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#777}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#777}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#fff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.42857143;text-decoration:none;color:#428bca;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{color:#2a6496;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#777;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#777;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:hover,.label-default[href]:focus{background-color:#5e5e5e}.label-primary{background-color:#428bca}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:bold;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#428bca;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:240px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#428bca}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0%;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar[aria-valuenow="1"],.progress-bar[aria-valuenow="2"]{min-width:30px}.progress-bar[aria-valuenow="0"]{color:#777;min-width:30px;background-color:transparent;background-image:none;box-shadow:none}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;color:#555;background-color:#f5f5f5}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{background-color:#eee;color:#777}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#e1edf7}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#428bca}.panel-primary>.panel-heading .badge{color:#428bca;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:bold;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate3d(0, -25%, 0);transform:translate3d(0, -25%, 0);-webkit-transition:-webkit-transform 0.3s ease-out;-moz-transition:-moz-transform 0.3s ease-out;-o-transition:-o-transform 0.3s ease-out;transition:transform 0.3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:240px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width:600px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;visibility:visible;font-size:12px;line-height:1.4;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;right:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;text-align:left;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);white-space:normal}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,0.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,0.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:.5;filter:alpha(opacity=50);font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #fff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:240px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important;visibility:hidden !important}.affix{position:fixed;-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width:239px){.visible-xs{display:block !important}table.visible-xs{display:table}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width:239px){.visible-xs-block{display:block !important}}@media (max-width:239px){.visible-xs-inline{display:inline !important}}@media (max-width:239px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width:240px) and (max-width:599px){.visible-sm{display:block !important}table.visible-sm{display:table}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width:240px) and (max-width:599px){.visible-sm-block{display:block !important}}@media (min-width:240px) and (max-width:599px){.visible-sm-inline{display:inline !important}}@media (min-width:240px) and (max-width:599px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width:600px) and (max-width:959px){.visible-md{display:block !important}table.visible-md{display:table}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width:600px) and (max-width:959px){.visible-md-block{display:block !important}}@media (min-width:600px) and (max-width:959px){.visible-md-inline{display:inline !important}}@media (min-width:600px) and (max-width:959px){.visible-md-inline-block{display:inline-block !important}}@media (min-width:960px){.visible-lg{display:block !important}table.visible-lg{display:table}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width:960px){.visible-lg-block{display:block !important}}@media (min-width:960px){.visible-lg-inline{display:inline !important}}@media (min-width:960px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width:239px){.hidden-xs{display:none !important}}@media (min-width:240px) and (max-width:599px){.hidden-sm{display:none !important}}@media (min-width:600px) and (max-width:959px){.hidden-md{display:none !important}}@media (min-width:960px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}} \ No newline at end of file diff --git a/code/modules/html_interface/css/html_interface.css b/code/modules/html_interface/css/html_interface.css new file mode 100644 index 0000000..85c07f3 --- /dev/null +++ b/code/modules/html_interface/css/html_interface.css @@ -0,0 +1,11 @@ +html +{ + -ms-overflow-style: scrollbar; +} + +body +{ + font-family: Arial; + overflow-y: scroll; + overflow-x: auto; +} \ No newline at end of file diff --git a/code/modules/html_interface/html_interface.dm b/code/modules/html_interface/html_interface.dm new file mode 100644 index 0000000..66ced52 --- /dev/null +++ b/code/modules/html_interface/html_interface.dm @@ -0,0 +1,368 @@ +/* +Author: NullQuery +Created on: 2014-09-24 + + ** CAUTION - A WORD OF WARNING ** + +If there is no getter or setter available and you aren't extending my code with a sub-type, DO NOT ACCESS VARIABLES DIRECTLY! + +Add a getter/setter instead, even if it does nothing but return or set the variable. Thank you for your patience with me. -NQ + + ** Public API ** + + var/datum/html_interface/hi = new/datum/html_interface(ref, title, width = 700, height = 480, head = "") + +Creates a new HTML interface object with [ref] as the object and [title] as the initial title of the page. [width] and [height] is the initial width and height +of the window. The text in [head] is added just before the end tag. + + hi.setTitle(title) + +Changes the title of the page. + + hi.getTitle() + +Returns the current title of the page. + + hi.updateLayout(layout) + +Updates the overall layout of the page (the HTML code between the body tags). + +This should be used sparingly. + + hi.updateContent(id, content, ignore_cache = FALSE) + +Updates a portion of the page, i.e., the DOM element with the appropriate ID. The contents of the element are replaced with the provided HTML. + +The content is cached on the server-side to minimize network traffic when the client "should have" the same HTML. The client may not have +the same HTML if scripts cause the content to change. In this case set the ignore_cache parameter. + + hi.executeJavaScript(jscript, client = null) + +Executes Javascript on the browser. + +The client is optional and may be a /mob, /client or /html_interface_client object. If not specified the code is executed on all clients. + + hi.show(client) + +Shows the HTML interface to the provided client. This will create a window, apply the current layout and contents. It will then wait for events. + + hi.hide(client) + +Hides the HTML interface from the provided client. This will close the browser window. + + hi.isUsed() + +Returns TRUE if the interface is being used (has an active client) or FALSE if not. + + hi.closeAll() + +Closes the interface on all clients. + + ** Additional notes ** + +When working with byond:// links make sure to reference the HTML interface object and NOT the original object. Topic() will still be called on +your object, but it will pass through the HTML interface first allowing interception at a higher level. + +If you want to use custom resources(images/css/js) with an existing interface: +You have to use modules/client/asset_cache to ensure they get sent BEFORE the interface opens + + ** Sample code ** + +mob/var/datum/html_interface/hi + +mob/verb/test() + if (!hi) hi = new/datum/html_interface(src, "[src.key]") + + hi.updateLayout("
    ") + hi.updateContent("content", "

    Lorem ipsum dolor sit amet, consectetur adipiscing elit.

    ") + + hi.show(src) + +*/ + +/var/list/html_interfaces = new/list() + +/datum/html_interface + // The atom we should report to. + var/atom/ref + + // The current title of the browser window. + var/title + + // A list of content elements that have been changed. This is necessary when showing the browser control to new clients. + var/list/content_elements = new/list() + + // The HTML layout, typically what's in-between the tag. May be overridden by extensions. + var/layout + + // An associative list of clients currently viewing this screen. The key is the /client object, the value is the /datum/html_interface_client object. + var/list/clients + + // This goes just before the closing HEAD tag. I haven't exposed any getters/setters for it because it's only being used by extensions. + var/head = "" + + // The initial width of the browser control, used when the window is first shown to a client. + var/width + + // The initial height of the browser control, used when the window is first shown to a client. + var/height + + // A type associated list of assets the interface needs. + //Sent to the client when the interface opens on the client for the first time. + var/static/list/asset_list + +/datum/html_interface/New(atom/ref, title, width = 700, height = 480, head = "") + html_interfaces.Add(src) + + . = ..() + + src.ref = ref + src.title = title + src.width = width + src.height = height + src.head = head + +/datum/html_interface/Destroy() + src.closeAll() + + html_interfaces.Remove(src) + + return ..() + +/* * Hooks */ +/datum/html_interface/proc/specificRenderTitle(datum/html_interface_client/hclient, ignore_cache = FALSE) + +//if you need to override this, either call ..() or add your resources to asset_list +/datum/html_interface/proc/registerResources(var/list/resources = list()) + resources["jquery.min.js"] = 'js/jquery.min.js' + resources["bootstrap.min.js"] = 'js/bootstrap.min.js' + resources["bootstrap.min.css"] = 'css/bootstrap.min.css' + resources["html_interface.css"] = 'css/html_interface.css' + resources["html_interface.js"] = 'js/html_interface.js' + var/assetlist = list() + for (var/R in resources) + register_asset(R,resources[R]) + assetlist += R + if (!asset_list) + asset_list = list() + asset_list[type] = assetlist + +/datum/html_interface/proc/createWindow(datum/html_interface_client/hclient) + winclone(hclient.client, "window", "browser_\ref[src]") + + var/list/params = list( + "size" = "[width]x[height]", + "statusbar" = "false", + "on-close" = "byond://?src=\ref[src]&html_interface_action=onclose" + ) + + if (hclient.client.hi_last_pos) params["pos"] = "[hclient.client.hi_last_pos]" + + winset(hclient.client, "browser_\ref[src]", list2params(params)) + + winset(hclient.client, "browser_\ref[src].browser", list2params(list("parent" = "browser_\ref[src]", "type" = "browser", "pos" = "0,0", "size" = "[width]x[height]", "anchor1" = "0,0", "anchor2" = "100,100", "use-title" = "true", "auto-format" = "false"))) + +/* * Public API */ +/datum/html_interface/proc/getTitle() return src.title + +/datum/html_interface/proc/setTitle(title, ignore_cache = FALSE) + src.title = title + + var/datum/html_interface_client/hclient + + for (var/client in src.clients) + hclient = src._getClient(src.clients[client]) + + if (hclient && hclient.active) src._renderTitle(src.clients[client], ignore_cache) + +/datum/html_interface/proc/executeJavaScript(jscript, datum/html_interface_client/hclient = null) + if (hclient) + hclient = getClient(hclient) + + if (istype(hclient)) + if (hclient.is_loaded) hclient.client << output(list2params(list(jscript)), "browser_\ref[src].browser:eval") + else + for (var/client in src.clients) if(src.clients[client]) src.executeJavaScript(jscript, src.clients[client]) + +/datum/html_interface/proc/callJavaScript(func, list/arguments, datum/html_interface_client/hclient = null) + if (!arguments) arguments = new/list() + + if (hclient) + hclient = getClient(hclient) + + if (istype(hclient)) + if (hclient.is_loaded) + hclient.client << output(list2params(arguments), "browser_\ref[src].browser:[func]") + else + for (var/client in src.clients) if (src.clients[client]) src.callJavaScript(func, arguments, src.clients[client]) + +/datum/html_interface/proc/updateLayout(layout) + src.layout = layout + + var/datum/html_interface_client/hclient + + for (var/client in src.clients) + hclient = src._getClient(src.clients[client]) + + if (hclient && hclient.active) src._renderLayout(hclient) + +/datum/html_interface/proc/updateContent(id, content, ignore_cache = FALSE) + src.content_elements[id] = content + + var/datum/html_interface_client/hclient + + for (var/client in src.clients) + hclient = src._getClient(src.clients[client]) + + if (hclient && hclient.active) + spawn (-1) src._renderContent(id, hclient, ignore_cache) + +/datum/html_interface/proc/show(datum/html_interface_client/hclient) + hclient = getClient(hclient, TRUE) + + if (istype(hclient)) + if ((type in asset_list) && islist(asset_list[type])) + send_asset_list(hclient.client, asset_list[type], TRUE) + + if (!winexists(hclient.client, "browser_\ref[src]")) + src.createWindow(hclient) + //src._renderTitle(hclient, TRUE) + //src._renderLayout(hclient) + + hclient.is_loaded = FALSE + hclient.client << output(replacetextEx(replacetextEx(file2text('html_interface.html'), "\[hsrc\]", "\ref[src]"), "", "[head]"), "browser_\ref[src].browser") + + winshow(hclient.client, "browser_\ref[src]", TRUE) + + while (hclient.client && hclient.active && !hclient.is_loaded) sleep(2) + +/datum/html_interface/proc/hide(datum/html_interface_client/hclient) + hclient = getClient(hclient) + + if (istype(hclient)) + if (src.clients) + src.clients.Remove(hclient.client) + + if (!src.clients.len) src.clients = null + + hclient.client.hi_last_pos = winget(hclient.client, "browser_\ref[src]" ,"pos") + + winshow(hclient.client, "browser_\ref[src]", FALSE) + winset(hclient.client, "browser_\ref[src]", "parent=none") + + if (hascall(src.ref, "hiOnHide")) call(src.ref, "hiOnHide")(hclient) + +// Convert a /mob to /client, and /client to /datum/html_interface_client +/datum/html_interface/proc/getClient(client, create_if_not_exist = FALSE) + if (istype(client, /datum/html_interface_client)) return src._getClient(client) + else if (ismob(client)) + var/mob/mob = client + client = mob.client + + if (istype(client, /client)) + if (create_if_not_exist && (!src.clients || !(client in src.clients))) + if (!src.clients) src.clients = new/list() + if (!(client in src.clients)) src.clients[client] = new/datum/html_interface_client(client) + + if (src.clients && (client in src.clients)) return src._getClient(src.clients[client]) + else return null + else return null + +/datum/html_interface/proc/enableFor(datum/html_interface_client/hclient) + hclient.active = TRUE + + src.show(hclient) + +/datum/html_interface/proc/disableFor(datum/html_interface_client/hclient) + hclient.active = FALSE + +/datum/html_interface/proc/isUsed() + if (src.clients && src.clients.len > 0) + var/datum/html_interface_client/hclient + + for (var/key in clients) + hclient = _getClient(clients[key]) + + if (hclient) + if (hclient.active) return TRUE + else + clients.Remove(key) + + return FALSE + +/datum/html_interface/proc/closeAll() + if (src.clients) + for (var/client in src.clients) + src.hide(src.clients[client]) + +/* * Danger Zone */ + +/datum/html_interface/proc/_getClient(datum/html_interface_client/hclient) + if (hclient) + if (hclient.client) + // res = if the client has been active in the past 10 minutes and the client is allowed to view the object (context-sensitive). + var/res = hclient.client.inactivity <= 6000 && (hascall(src.ref, "hiIsValidClient") ? call(src.ref, "hiIsValidClient")(hclient, src) : TRUE) + + if (res) + if (!hclient.active) src.enableFor(hclient) + else + if (hclient.active) src.disableFor(hclient) + + return hclient + else + return null + else + return null + +/datum/html_interface/proc/_renderTitle(datum/html_interface_client/hclient, ignore_cache = FALSE, ignore_loaded = FALSE) + if (hclient && (ignore_loaded || hclient.is_loaded)) + // Only render if we have new content. + + if (ignore_cache || src.title != hclient.title) + hclient.title = title + + src.specificRenderTitle(hclient) + + hclient.client << output(list2params(list(title)), "browser_\ref[src].browser:setTitle") + +/datum/html_interface/proc/_renderLayout(datum/html_interface_client/hclient, ignore_loaded = FALSE) + if (hclient && (ignore_loaded || hclient.is_loaded)) + var/html = src.layout + + // Only render if we have new content. + if (html != hclient.layout) + hclient.layout = html + + hclient.client << output(list2params(list(html)), "browser_\ref[src].browser:updateLayout") + + for (var/id in src.content_elements) src._renderContent(id, hclient, ignore_loaded = ignore_loaded) + +/datum/html_interface/proc/_renderContent(id, datum/html_interface_client/hclient, ignore_cache = FALSE, ignore_loaded = FALSE) + if (hclient && (ignore_loaded || hclient.is_loaded)) + var/html = src.content_elements[id] + + // Only render if we have new content. + if (ignore_cache || !(id in hclient.content_elements) || html != hclient.content_elements[id]) + hclient.content_elements[id] = html + + hclient.client << output(list2params(list(id, html)), "browser_\ref[src].browser:updateContent") + +/datum/html_interface/Topic(href, href_list[]) + var/datum/html_interface_client/hclient = getClient(usr.client) + + if (istype(hclient)) + if ("html_interface_action" in href_list) + switch (href_list["html_interface_action"]) + + if ("onload") + hclient.layout = null + hclient.content_elements.len = 0 + + src._renderTitle(hclient, TRUE, TRUE) + src._renderLayout(hclient, TRUE) + + hclient.is_loaded = TRUE + + if ("onclose") + src.hide(hclient) + else if (src.ref && hclient.active) src.ref.Topic(href, href_list, hclient) \ No newline at end of file diff --git a/code/modules/html_interface/html_interface.html b/code/modules/html_interface/html_interface.html new file mode 100644 index 0000000..4bf76c6 --- /dev/null +++ b/code/modules/html_interface/html_interface.html @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/code/modules/html_interface/html_interface_client.dm b/code/modules/html_interface/html_interface_client.dm new file mode 100644 index 0000000..e571a86 --- /dev/null +++ b/code/modules/html_interface/html_interface_client.dm @@ -0,0 +1,43 @@ +/datum/html_interface_client + // The /client object represented by this model. + var/client/client + + // The layout currently visible to the client. + var/layout + + // The content elements (mirrored from /datum/html_interface) currently visible to the client. + var/list/content_elements = new/list() + + // The current title for this client + var/title + + // TRUE if the browser control has loaded and will accept input, FALSE if not. + var/is_loaded = FALSE + + // TRUE if this client should receive updates, FALSE if not. + var/active = TRUE + + // A list of extra variables, for use by extensions. + var/list/extra_vars + +/datum/html_interface_client/New(client/client) + . = ..() + + src.client = client + +/datum/html_interface_client/proc/putExtraVar(key, value) + if (!src.extra_vars) src.extra_vars = new/list() + src.extra_vars[key] = value + +/datum/html_interface_client/proc/removeExtraVar(key) + if (src.extra_vars) + . = src.extra_vars[key] + + src.extra_vars.Remove(key) + + if (!src.extra_vars.len) src.extra_vars = null + + return . + +/datum/html_interface_client/proc/getExtraVar(key) + if (src.extra_vars) return src.extra_vars[key] \ No newline at end of file diff --git a/code/modules/html_interface/js/bootstrap.min.js b/code/modules/html_interface/js/bootstrap.min.js new file mode 100644 index 0000000..e33d8a5 --- /dev/null +++ b/code/modules/html_interface/js/bootstrap.min.js @@ -0,0 +1,11 @@ +/*! + * Bootstrap v3.2.0 (http://getbootstrap.com) + * Copyright 2011-2014 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ + +/*! + * Generated using the Bootstrap Customizer (http://getbootstrap.com/customize/?id=d0f6f16a67c7502ee009) + * Config saved to config.json and https://gist.github.com/d0f6f16a67c7502ee009 + */ +if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(t){"use strict";function e(e){return this.each(function(){var i=t(this),s=i.data("bs.alert");s||i.data("bs.alert",s=new o(this)),"string"==typeof e&&s[e].call(i)})}var i='[data-dismiss="alert"]',o=function(e){t(e).on("click",i,this.close)};o.VERSION="3.2.0",o.prototype.close=function(e){function i(){n.detach().trigger("closed.bs.alert").remove()}var o=t(this),s=o.attr("data-target");s||(s=o.attr("href"),s=s&&s.replace(/.*(?=#[^\s]*$)/,""));var n=t(s);e&&e.preventDefault(),n.length||(n=o.hasClass("alert")?o:o.parent()),n.trigger(e=t.Event("close.bs.alert")),e.isDefaultPrevented()||(n.removeClass("in"),t.support.transition&&n.hasClass("fade")?n.one("bsTransitionEnd",i).emulateTransitionEnd(150):i())};var s=t.fn.alert;t.fn.alert=e,t.fn.alert.Constructor=o,t.fn.alert.noConflict=function(){return t.fn.alert=s,this},t(document).on("click.bs.alert.data-api",i,o.prototype.close)}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var o=t(this),s=o.data("bs.button"),n="object"==typeof e&&e;s||o.data("bs.button",s=new i(this,n)),"toggle"==e?s.toggle():e&&s.setState(e)})}var i=function(e,o){this.$element=t(e),this.options=t.extend({},i.DEFAULTS,o),this.isLoading=!1};i.VERSION="3.2.0",i.DEFAULTS={loadingText:"loading..."},i.prototype.setState=function(e){var i="disabled",o=this.$element,s=o.is("input")?"val":"html",n=o.data();e+="Text",null==n.resetText&&o.data("resetText",o[s]()),o[s](null==n[e]?this.options[e]:n[e]),setTimeout(t.proxy(function(){"loadingText"==e?(this.isLoading=!0,o.addClass(i).attr(i,i)):this.isLoading&&(this.isLoading=!1,o.removeClass(i).removeAttr(i))},this),0)},i.prototype.toggle=function(){var t=!0,e=this.$element.closest('[data-toggle="buttons"]');if(e.length){var i=this.$element.find("input");"radio"==i.prop("type")&&(i.prop("checked")&&this.$element.hasClass("active")?t=!1:e.find(".active").removeClass("active")),t&&i.prop("checked",!this.$element.hasClass("active")).trigger("change")}t&&this.$element.toggleClass("active")};var o=t.fn.button;t.fn.button=e,t.fn.button.Constructor=i,t.fn.button.noConflict=function(){return t.fn.button=o,this},t(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(i){var o=t(i.target);o.hasClass("btn")||(o=o.closest(".btn")),e.call(o,"toggle"),i.preventDefault()})}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var o=t(this),s=o.data("bs.carousel"),n=t.extend({},i.DEFAULTS,o.data(),"object"==typeof e&&e),r="string"==typeof e?e:n.slide;s||o.data("bs.carousel",s=new i(this,n)),"number"==typeof e?s.to(e):r?s[r]():n.interval&&s.pause().cycle()})}var i=function(e,i){this.$element=t(e).on("keydown.bs.carousel",t.proxy(this.keydown,this)),this.$indicators=this.$element.find(".carousel-indicators"),this.options=i,this.paused=this.sliding=this.interval=this.$active=this.$items=null,"hover"==this.options.pause&&this.$element.on("mouseenter.bs.carousel",t.proxy(this.pause,this)).on("mouseleave.bs.carousel",t.proxy(this.cycle,this))};i.VERSION="3.2.0",i.DEFAULTS={interval:5e3,pause:"hover",wrap:!0},i.prototype.keydown=function(t){switch(t.which){case 37:this.prev();break;case 39:this.next();break;default:return}t.preventDefault()},i.prototype.cycle=function(e){return e||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(t.proxy(this.next,this),this.options.interval)),this},i.prototype.getItemIndex=function(t){return this.$items=t.parent().children(".item"),this.$items.index(t||this.$active)},i.prototype.to=function(e){var i=this,o=this.getItemIndex(this.$active=this.$element.find(".item.active"));return e>this.$items.length-1||0>e?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){i.to(e)}):o==e?this.pause().cycle():this.slide(e>o?"next":"prev",t(this.$items[e]))},i.prototype.pause=function(e){return e||(this.paused=!0),this.$element.find(".next, .prev").length&&t.support.transition&&(this.$element.trigger(t.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},i.prototype.next=function(){return this.sliding?void 0:this.slide("next")},i.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},i.prototype.slide=function(e,i){var o=this.$element.find(".item.active"),s=i||o[e](),n=this.interval,r="next"==e?"left":"right",a="next"==e?"first":"last",l=this;if(!s.length){if(!this.options.wrap)return;s=this.$element.find(".item")[a]()}if(s.hasClass("active"))return this.sliding=!1;var h=s[0],p=t.Event("slide.bs.carousel",{relatedTarget:h,direction:r});if(this.$element.trigger(p),!p.isDefaultPrevented()){if(this.sliding=!0,n&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var c=t(this.$indicators.children()[this.getItemIndex(s)]);c&&c.addClass("active")}var d=t.Event("slid.bs.carousel",{relatedTarget:h,direction:r});return t.support.transition&&this.$element.hasClass("slide")?(s.addClass(e),s[0].offsetWidth,o.addClass(r),s.addClass(r),o.one("bsTransitionEnd",function(){s.removeClass([e,r].join(" ")).addClass("active"),o.removeClass(["active",r].join(" ")),l.sliding=!1,setTimeout(function(){l.$element.trigger(d)},0)}).emulateTransitionEnd(1e3*o.css("transition-duration").slice(0,-1))):(o.removeClass("active"),s.addClass("active"),this.sliding=!1,this.$element.trigger(d)),n&&this.cycle(),this}};var o=t.fn.carousel;t.fn.carousel=e,t.fn.carousel.Constructor=i,t.fn.carousel.noConflict=function(){return t.fn.carousel=o,this},t(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(i){var o,s=t(this),n=t(s.attr("data-target")||(o=s.attr("href"))&&o.replace(/.*(?=#[^\s]+$)/,""));if(n.hasClass("carousel")){var r=t.extend({},n.data(),s.data()),a=s.attr("data-slide-to");a&&(r.interval=!1),e.call(n,r),a&&n.data("bs.carousel").to(a),i.preventDefault()}}),t(window).on("load",function(){t('[data-ride="carousel"]').each(function(){var i=t(this);e.call(i,i.data())})})}(jQuery),+function(t){"use strict";function e(e){e&&3===e.which||(t(s).remove(),t(n).each(function(){var o=i(t(this)),s={relatedTarget:this};o.hasClass("open")&&(o.trigger(e=t.Event("hide.bs.dropdown",s)),e.isDefaultPrevented()||o.removeClass("open").trigger("hidden.bs.dropdown",s))}))}function i(e){var i=e.attr("data-target");i||(i=e.attr("href"),i=i&&/#[A-Za-z]/.test(i)&&i.replace(/.*(?=#[^\s]*$)/,""));var o=i&&t(i);return o&&o.length?o:e.parent()}function o(e){return this.each(function(){var i=t(this),o=i.data("bs.dropdown");o||i.data("bs.dropdown",o=new r(this)),"string"==typeof e&&o[e].call(i)})}var s=".dropdown-backdrop",n='[data-toggle="dropdown"]',r=function(e){t(e).on("click.bs.dropdown",this.toggle)};r.VERSION="3.2.0",r.prototype.toggle=function(o){var s=t(this);if(!s.is(".disabled, :disabled")){var n=i(s),r=n.hasClass("open");if(e(),!r){"ontouchstart"in document.documentElement&&!n.closest(".navbar-nav").length&&t('